From f28a27fc0d4048f60598862a59e3168607297009 Mon Sep 17 00:00:00 2001 From: Mariotaku Date: Tue, 9 May 2023 00:02:49 +0900 Subject: [PATCH 01/95] fix(sdl): destroy texture after use if not stored in cache (#4173) --- src/draw/sdl/lv_draw_sdl_arc.c | 9 +++- src/draw/sdl/lv_draw_sdl_composite.c | 24 +++++++-- src/draw/sdl/lv_draw_sdl_composite.h | 13 ++++- src/draw/sdl/lv_draw_sdl_img.c | 58 +++++++++++++++----- src/draw/sdl/lv_draw_sdl_img.h | 16 +++++- src/draw/sdl/lv_draw_sdl_label.c | 17 +++++- src/draw/sdl/lv_draw_sdl_layer.c | 8 ++- src/draw/sdl/lv_draw_sdl_layer.h | 1 + src/draw/sdl/lv_draw_sdl_line.c | 4 +- src/draw/sdl/lv_draw_sdl_polygon.c | 8 ++- src/draw/sdl/lv_draw_sdl_priv.h | 1 + src/draw/sdl/lv_draw_sdl_rect.c | 68 ++++++++++++++++++++---- src/draw/sdl/lv_draw_sdl_rect.h | 30 +++++++++-- src/draw/sdl/lv_draw_sdl_texture_cache.c | 16 +++--- src/draw/sdl/lv_draw_sdl_texture_cache.h | 10 +++- 15 files changed, 232 insertions(+), 51 deletions(-) diff --git a/src/draw/sdl/lv_draw_sdl_arc.c b/src/draw/sdl/lv_draw_sdl_arc.c index 5786eaeb9..f43fef641 100644 --- a/src/draw/sdl/lv_draw_sdl_arc.c +++ b/src/draw/sdl/lv_draw_sdl_arc.c @@ -104,7 +104,9 @@ void lv_draw_sdl_draw_arc(lv_draw_ctx_t * draw_ctx, const lv_draw_arc_dsc_t * ds } lv_coord_t w = lv_area_get_width(&draw_area), h = lv_area_get_height(&draw_area); - SDL_Texture * texture = lv_draw_sdl_composite_texture_obtain(ctx, LV_DRAW_SDL_COMPOSITE_TEXTURE_ID_STREAM1, w, h); + bool texture_cached = false; + SDL_Texture * texture = lv_draw_sdl_composite_texture_obtain(ctx, LV_DRAW_SDL_COMPOSITE_TEXTURE_ID_STREAM1, w, h, + &texture_cached); SDL_SetTextureBlendMode(texture, SDL_BLENDMODE_BLEND); dump_masks(texture, &draw_area, mask_ids, mask_ids_count, cap_ids[0] != LV_MASK_ID_INV ? cap_ids : NULL); @@ -135,6 +137,11 @@ void lv_draw_sdl_draw_arc(lv_draw_ctx_t * draw_ctx, const lv_draw_arc_dsc_t * ds SDL_SetTextureColorMod(texture, color.r, color.g, color.b); SDL_SetTextureAlphaMod(texture, dsc->opa); SDL_RenderCopy(ctx->renderer, texture, &srcrect, &dstrect); + + if(!texture_cached) { + LV_LOG_WARN("Texture is not cached, this will impact performance."); + SDL_DestroyTexture(texture); + } } /********************** diff --git a/src/draw/sdl/lv_draw_sdl_composite.c b/src/draw/sdl/lv_draw_sdl_composite.c index 4d0603d70..e155570d8 100644 --- a/src/draw/sdl/lv_draw_sdl_composite.c +++ b/src/draw/sdl/lv_draw_sdl_composite.c @@ -86,7 +86,8 @@ bool lv_draw_sdl_composite_begin(lv_draw_sdl_ctx_t * ctx, const lv_area_t * coor LV_ASSERT(internals->mask == NULL && internals->composition == NULL && internals->target_backup == NULL); lv_coord_t w = lv_area_get_width(apply_area), h = lv_area_get_height(apply_area); - internals->composition = lv_draw_sdl_composite_texture_obtain(ctx, LV_DRAW_SDL_COMPOSITE_TEXTURE_ID_TARGET0, w, h); + internals->composition = lv_draw_sdl_composite_texture_obtain(ctx, LV_DRAW_SDL_COMPOSITE_TEXTURE_ID_TARGET0, w, h, + &internals->composition_cached); /* Don't need to worry about integral overflow */ lv_coord_t ofs_x = (lv_coord_t) - apply_area->x1, ofs_y = (lv_coord_t) - apply_area->y1; /* Offset draw area to start with (0,0) of coords */ @@ -174,19 +175,23 @@ void lv_draw_sdl_composite_end(lv_draw_sdl_ctx_t * ctx, const lv_area_t * apply_ break; } SDL_RenderCopy(ctx->renderer, internals->composition, &src_rect, &dst_rect); + if(!internals->composition_cached) { + LV_LOG_WARN("Texture is not cached, this will impact performance."); + SDL_DestroyTexture(internals->composition); + } } internals->mask = internals->composition = internals->target_backup = NULL; } SDL_Texture * lv_draw_sdl_composite_texture_obtain(lv_draw_sdl_ctx_t * ctx, lv_draw_sdl_composite_texture_id_t id, - lv_coord_t w, lv_coord_t h) + lv_coord_t w, lv_coord_t h, bool * texture_in_cache) { lv_point_t * tex_size = NULL; composite_key_t mask_key = mask_key_create(id); SDL_Texture * result = lv_draw_sdl_texture_cache_get_with_userdata(ctx, &mask_key, sizeof(composite_key_t), NULL, (void **) &tex_size); - if(!result || tex_size->x < w || tex_size->y < h) { + if(result == NULL || tex_size->x < w || tex_size->y < h) { lv_coord_t size = next_pow_of_2(LV_MAX(w, h)); int access = SDL_TEXTUREACCESS_STREAMING; if(id >= LV_DRAW_SDL_COMPOSITE_TEXTURE_ID_TRANSFORM0) { @@ -198,8 +203,19 @@ SDL_Texture * lv_draw_sdl_composite_texture_obtain(lv_draw_sdl_ctx_t * ctx, lv_d result = SDL_CreateTexture(ctx->renderer, LV_DRAW_SDL_TEXTURE_FORMAT, access, size, size); tex_size = lv_mem_alloc(sizeof(lv_point_t)); tex_size->x = tex_size->y = size; - lv_draw_sdl_texture_cache_put_advanced(ctx, &mask_key, sizeof(composite_key_t), result, tex_size, lv_mem_free, 0); + bool in_cache = lv_draw_sdl_texture_cache_put_advanced(ctx, &mask_key, sizeof(composite_key_t), result, + tex_size, lv_mem_free, 0); + if(!in_cache) { + lv_mem_free(tex_size); + } + if(texture_in_cache != NULL) { + *texture_in_cache = in_cache; + } } + else if(texture_in_cache != NULL) { + *texture_in_cache = true; + } + return result; } diff --git a/src/draw/sdl/lv_draw_sdl_composite.h b/src/draw/sdl/lv_draw_sdl_composite.h index 72a2daef7..57191bbce 100644 --- a/src/draw/sdl/lv_draw_sdl_composite.h +++ b/src/draw/sdl/lv_draw_sdl_composite.h @@ -45,6 +45,7 @@ typedef enum lv_draw_sdl_composite_texture_id_t { /** * Begin drawing with mask. Render target will be switched to a temporary texture, * and drawing coordinates may get clipped or translated + * @param ctx Drawing context * @param coords_in Original coordinates * @param clip_in Original clip area * @param extension Useful for shadows or outlines, can be NULL @@ -59,8 +60,18 @@ bool lv_draw_sdl_composite_begin(lv_draw_sdl_ctx_t * ctx, const lv_area_t * coor void lv_draw_sdl_composite_end(lv_draw_sdl_ctx_t * ctx, const lv_area_t * apply_area, lv_blend_mode_t blend_mode); +/** + * + * @param ctx Drawing context + * @param id Texture ID + * @param w Maximum width needed + * @param h Maximum height needed + * @param texture_in_cache output to query if the texture is in cache. If it's not in cache, you'll need to destroy it + * by yourself + * @return Obtained texture + */ SDL_Texture * lv_draw_sdl_composite_texture_obtain(lv_draw_sdl_ctx_t * ctx, lv_draw_sdl_composite_texture_id_t id, - lv_coord_t w, lv_coord_t h); + lv_coord_t w, lv_coord_t h, bool * texture_in_cache); /********************** * MACROS diff --git a/src/draw/sdl/lv_draw_sdl_img.c b/src/draw/sdl/lv_draw_sdl_img.c index 3c955d840..4dddc8c60 100644 --- a/src/draw/sdl/lv_draw_sdl_img.c +++ b/src/draw/sdl/lv_draw_sdl_img.c @@ -72,7 +72,8 @@ static void draw_img_rounded(lv_draw_sdl_ctx_t * ctx, SDL_Texture * texture, con lv_coord_t radius); static SDL_Texture * img_rounded_frag_obtain(lv_draw_sdl_ctx_t * ctx, SDL_Texture * texture, - const lv_draw_sdl_img_header_t * header, int w, int h, lv_coord_t radius); + const lv_draw_sdl_img_header_t * header, int w, int h, lv_coord_t radius, + bool * in_cache); static lv_draw_img_rounded_key_t rounded_key_create(const SDL_Texture * texture, lv_coord_t w, lv_coord_t h, lv_coord_t radius); @@ -106,11 +107,16 @@ lv_res_t lv_draw_sdl_img_core(lv_draw_ctx_t * draw_ctx, const lv_draw_img_dsc_t lv_draw_sdl_img_header_t * header = NULL; SDL_Texture * texture = lv_draw_sdl_texture_cache_get_with_userdata(ctx, key, key_size, &texture_found, (void **) &header); + bool texture_in_cache = false; if(!texture_found) { - lv_draw_sdl_img_load_texture(ctx, key, key_size, src, draw_dsc->frame_id, &texture, &header); + lv_draw_sdl_img_load_texture(ctx, key, key_size, src, draw_dsc->frame_id, &texture, &header, + &texture_in_cache); + } + else { + texture_in_cache = true; } SDL_free(key); - if(!texture) { + if(!texture || !header) { return LV_RES_INV; } @@ -148,6 +154,14 @@ lv_res_t lv_draw_sdl_img_core(lv_draw_ctx_t * draw_ctx, const lv_draw_img_dsc_t lv_draw_sdl_composite_end(ctx, &apply_area, draw_dsc->blend_mode); + if(!texture_in_cache) { + LV_LOG_WARN("Texture is not cached, this will impact performance."); + if(!header->managed) { + SDL_DestroyTexture(texture); + } + lv_mem_free(header); + } + return LV_RES_OK; } @@ -185,7 +199,7 @@ static void calc_draw_part(SDL_Texture * texture, const lv_draw_sdl_img_header_t bool lv_draw_sdl_img_load_texture(lv_draw_sdl_ctx_t * ctx, lv_draw_sdl_cache_key_head_img_t * key, size_t key_size, const void * src, int32_t frame_id, SDL_Texture ** texture, - lv_draw_sdl_img_header_t ** header) + lv_draw_sdl_img_header_t ** header, bool * texture_in_cache) { _lv_img_cache_entry_t * cdsc = _lv_img_cache_open(src, lv_color_white(), frame_id); lv_draw_sdl_cache_flag_t tex_flags = 0; @@ -210,16 +224,18 @@ bool lv_draw_sdl_img_load_texture(lv_draw_sdl_ctx_t * ctx, lv_draw_sdl_cache_key #endif } if(texture && cdsc) { - *header = SDL_malloc(sizeof(lv_draw_sdl_img_header_t)); + *header = lv_mem_alloc(sizeof(lv_draw_sdl_img_header_t)); SDL_memcpy(&(*header)->base, &cdsc->dec_dsc.header, sizeof(lv_img_header_t)); (*header)->rect = rect; - lv_draw_sdl_texture_cache_put_advanced(ctx, key, key_size, *texture, *header, SDL_free, tex_flags); + (*header)->managed = (tex_flags & LV_DRAW_SDL_CACHE_FLAG_MANAGED) != 0; + *texture_in_cache = lv_draw_sdl_texture_cache_put_advanced(ctx, key, key_size, *texture, *header, SDL_free, + tex_flags); + return true; } else { - lv_draw_sdl_texture_cache_put(ctx, key, key_size, NULL); + *texture_in_cache = lv_draw_sdl_texture_cache_put(ctx, key, key_size, NULL); return false; } - return true; } /********************** @@ -320,7 +336,8 @@ static void draw_img_rounded(lv_draw_sdl_ctx_t * ctx, SDL_Texture * texture, con { const int w = lv_area_get_width(coords), h = lv_area_get_height(coords); lv_coord_t real_radius = LV_MIN3(radius, w, h); - SDL_Texture * frag = img_rounded_frag_obtain(ctx, texture, header, w, h, real_radius); + bool frag_in_cache = false; + SDL_Texture * frag = img_rounded_frag_obtain(ctx, texture, header, w, h, real_radius, &frag_in_cache); apply_recolor_opa(frag, draw_dsc); lv_draw_sdl_rect_bg_frag_draw_corners(ctx, frag, real_radius, coords, clip, true); @@ -360,6 +377,11 @@ static void draw_img_rounded(lv_draw_sdl_ctx_t * ctx, SDL_Texture * texture, con SDL_RenderCopy(ctx->renderer, texture, &src_rect, &dst_rect); } SDL_RenderSetClipRect(ctx->renderer, NULL); + + if(!frag_in_cache) { + LV_LOG_WARN("Texture is not cached, this will impact performance."); + SDL_DestroyTexture(frag); + } } static void apply_recolor_opa(SDL_Texture * texture, const lv_draw_img_dsc_t * draw_dsc) @@ -377,15 +399,18 @@ static void apply_recolor_opa(SDL_Texture * texture, const lv_draw_img_dsc_t * d } static SDL_Texture * img_rounded_frag_obtain(lv_draw_sdl_ctx_t * ctx, SDL_Texture * texture, - const lv_draw_sdl_img_header_t * header, int w, int h, lv_coord_t radius) + const lv_draw_sdl_img_header_t * header, int w, int h, lv_coord_t radius, + bool * in_cache) { lv_draw_img_rounded_key_t key = rounded_key_create(texture, w, h, radius); - SDL_Texture * mask_frag = lv_draw_sdl_rect_bg_frag_obtain(ctx, radius); + bool mask_frag_in_cache = false; + SDL_Texture * mask_frag = lv_draw_sdl_rect_bg_frag_obtain(ctx, radius, &mask_frag_in_cache); SDL_Texture * img_frag = lv_draw_sdl_texture_cache_get(ctx, &key, sizeof(key), NULL); if(img_frag == NULL) { const lv_coord_t full_frag_size = radius * 2 + 3; img_frag = SDL_CreateTexture(ctx->renderer, LV_DRAW_SDL_TEXTURE_FORMAT, SDL_TEXTUREACCESS_TARGET, full_frag_size, full_frag_size); + SDL_assert(img_frag); SDL_SetTextureBlendMode(img_frag, SDL_BLENDMODE_BLEND); SDL_Texture * old_target = SDL_GetRenderTarget(ctx->renderer); SDL_SetRenderTarget(ctx->renderer, img_frag); @@ -395,7 +420,7 @@ static SDL_Texture * img_rounded_frag_obtain(lv_draw_sdl_ctx_t * ctx, SDL_Textur SDL_RenderFillRect(ctx->renderer, NULL); SDL_SetRenderDrawBlendMode(ctx->renderer, SDL_BLENDMODE_BLEND); - lv_area_t coords = {0, 0, w - 1, h - 1}, clip; + lv_area_t coords = {0, 0, w - 1, h - 1}; lv_area_t frag_coords = {0, 0, full_frag_size - 1, full_frag_size - 1}; lv_draw_sdl_rect_bg_frag_draw_corners(ctx, mask_frag, radius, &frag_coords, NULL, false); @@ -446,7 +471,14 @@ static SDL_Texture * img_rounded_frag_obtain(lv_draw_sdl_ctx_t * ctx, SDL_Textur SDL_SetTextureBlendMode(texture, SDL_BLENDMODE_BLEND); SDL_SetRenderTarget(ctx->renderer, old_target); - lv_draw_sdl_texture_cache_put(ctx, &key, sizeof(key), img_frag); + *in_cache = lv_draw_sdl_texture_cache_put(ctx, &key, sizeof(key), img_frag); + } + else { + *in_cache = true; + } + if(!mask_frag_in_cache) { + LV_LOG_WARN("Texture is not cached, this will impact performance."); + SDL_DestroyTexture(mask_frag); } return img_frag; } diff --git a/src/draw/sdl/lv_draw_sdl_img.h b/src/draw/sdl/lv_draw_sdl_img.h index 0e2702772..6233913d8 100644 --- a/src/draw/sdl/lv_draw_sdl_img.h +++ b/src/draw/sdl/lv_draw_sdl_img.h @@ -35,6 +35,7 @@ extern "C" { typedef struct lv_draw_sdl_img_header_t { lv_img_header_t base; SDL_Rect rect; + bool managed; } lv_draw_sdl_img_header_t; /********************** @@ -56,9 +57,22 @@ typedef struct lv_draw_sdl_img_header_t { /*===================== * Other functions *====================*/ +/** + * + * @param ctx Drawing context + * @param key Texture cache key + * @param key_size Size of texture cache key + * @param src Image source pointer + * @param frame_id Frame ID for animated image + * @param texture Texture for render + * @param header Header also holds sdl image info + * @param texture_in_cache Whether the texture has been put in the cache. Please note for managed texture, + * this will be false too. So you'll need to check header.managed too. + * @return Whether the image has been loaded successfully + */ bool lv_draw_sdl_img_load_texture(lv_draw_sdl_ctx_t * ctx, lv_draw_sdl_cache_key_head_img_t * key, size_t key_size, const void * src, int32_t frame_id, SDL_Texture ** texture, - lv_draw_sdl_img_header_t ** header); + lv_draw_sdl_img_header_t ** header, bool * texture_in_cache); /********************** * MACROS **********************/ diff --git a/src/draw/sdl/lv_draw_sdl_label.c b/src/draw/sdl/lv_draw_sdl_label.c index b8c79ae4a..d043c510b 100644 --- a/src/draw/sdl/lv_draw_sdl_label.c +++ b/src/draw/sdl/lv_draw_sdl_label.c @@ -54,7 +54,7 @@ static lv_font_glyph_key_t font_key_glyph_create(const lv_font_t * font_p, uint3 * GLOBAL FUNCTIONS **********************/ -void lv_draw_sdl_draw_letter(lv_draw_ctx_t * draw_ctx, const lv_draw_label_dsc_t * dsc, const lv_point_t * pos_p, +void lv_draw_sdl_draw_letter(lv_draw_ctx_t * draw_ctx, const lv_draw_label_dsc_t * dsc, const lv_point_t * pos_p, uint32_t letter) { const lv_area_t * clip_area = draw_ctx->clip_area; @@ -117,6 +117,7 @@ void lv_draw_sdl_draw_letter(lv_draw_ctx_t * draw_ctx, const lv_draw_label_dsc_t lv_font_glyph_key_t glyph_key = font_key_glyph_create(font_p, letter); bool glyph_found = false; SDL_Texture * texture = lv_draw_sdl_texture_cache_get(ctx, &glyph_key, sizeof(glyph_key), &glyph_found); + bool in_cache = false; if(!glyph_found) { if(g.resolved_font) { font_p = g.resolved_font; @@ -128,7 +129,10 @@ void lv_draw_sdl_draw_letter(lv_draw_ctx_t * draw_ctx, const lv_draw_label_dsc_t texture = SDL_CreateTextureFromSurface(renderer, mask); SDL_FreeSurface(mask); lv_mem_free(buf); - lv_draw_sdl_texture_cache_put(ctx, &glyph_key, sizeof(glyph_key), texture); + in_cache = lv_draw_sdl_texture_cache_put(ctx, &glyph_key, sizeof(glyph_key), texture); + } + else { + in_cache = true; } if(!texture) { return; @@ -142,6 +146,10 @@ void lv_draw_sdl_draw_letter(lv_draw_ctx_t * draw_ctx, const lv_draw_label_dsc_t /*If the letter is completely out of mask don't draw it*/ if(!_lv_area_intersect(&draw_area, &t_letter, &t_clip)) { + if(!in_cache) { + LV_LOG_WARN("Texture is not cached, this will impact performance."); + SDL_DestroyTexture(texture); + } return; } SDL_Rect srcrect, dstrect; @@ -156,6 +164,11 @@ void lv_draw_sdl_draw_letter(lv_draw_ctx_t * draw_ctx, const lv_draw_label_dsc_t SDL_RenderCopy(renderer, texture, &srcrect, &dstrect); lv_draw_sdl_composite_end(ctx, &apply_area, dsc->blend_mode); + + if(!in_cache) { + LV_LOG_WARN("Texture is not cached, this will impact performance."); + SDL_DestroyTexture(texture); + } } /********************** diff --git a/src/draw/sdl/lv_draw_sdl_layer.c b/src/draw/sdl/lv_draw_sdl_layer.c index ae5c327ac..d517636d9 100644 --- a/src/draw/sdl/lv_draw_sdl_layer.c +++ b/src/draw/sdl/lv_draw_sdl_layer.c @@ -58,7 +58,8 @@ lv_draw_layer_ctx_t * lv_draw_sdl_layer_init(lv_draw_ctx_t * draw_ctx, lv_draw_l enum lv_draw_sdl_composite_texture_id_t texture_id = LV_DRAW_SDL_COMPOSITE_TEXTURE_ID_TRANSFORM0 + ctx->internals->transform_count; - transform_ctx->target = lv_draw_sdl_composite_texture_obtain(ctx, texture_id, target_w, target_h); + transform_ctx->target = lv_draw_sdl_composite_texture_obtain(ctx, texture_id, target_w, target_h, + &transform_ctx->target_in_cache); transform_ctx->target_rect.x = 0; transform_ctx->target_rect.y = 0; transform_ctx->target_rect.w = target_w; @@ -117,6 +118,11 @@ void lv_draw_sdl_layer_blend(lv_draw_ctx_t * draw_ctx, lv_draw_layer_ctx_t * lay void lv_draw_sdl_layer_destroy(lv_draw_ctx_t * draw_ctx, lv_draw_layer_ctx_t * layer_ctx) { lv_draw_sdl_ctx_t * ctx = (lv_draw_sdl_ctx_t *) draw_ctx; + lv_draw_sdl_layer_ctx_t * transform_ctx = (lv_draw_sdl_layer_ctx_t *) layer_ctx; + if(!transform_ctx->target_in_cache && transform_ctx->target != NULL) { + LV_LOG_WARN("Texture is not cached, this will impact performance."); + SDL_DestroyTexture(transform_ctx->target); + } ctx->internals->transform_count -= 1; } diff --git a/src/draw/sdl/lv_draw_sdl_layer.h b/src/draw/sdl/lv_draw_sdl_layer.h index b60303c47..f6aa66867 100644 --- a/src/draw/sdl/lv_draw_sdl_layer.h +++ b/src/draw/sdl/lv_draw_sdl_layer.h @@ -28,6 +28,7 @@ typedef struct _lv_draw_sdl_layer_ctx_t { SDL_Texture * orig_target; SDL_Texture * target; SDL_Rect target_rect; + bool target_in_cache; lv_draw_layer_flags_t flags; } lv_draw_sdl_layer_ctx_t; /********************** diff --git a/src/draw/sdl/lv_draw_sdl_line.c b/src/draw/sdl/lv_draw_sdl_line.c index 3a15d6d33..204e1a3d8 100644 --- a/src/draw/sdl/lv_draw_sdl_line.c +++ b/src/draw/sdl/lv_draw_sdl_line.c @@ -53,7 +53,7 @@ static SDL_Texture * line_texture_create(lv_draw_sdl_ctx_t * sdl_ctx, const lv_d * GLOBAL FUNCTIONS **********************/ void lv_draw_sdl_draw_line(lv_draw_ctx_t * draw_ctx, const lv_draw_line_dsc_t * dsc, const lv_point_t * point1, - const lv_point_t * point2) + const lv_point_t * point2, bool * in_cache) { lv_draw_sdl_ctx_t * sdl_ctx = (lv_draw_sdl_ctx_t *) draw_ctx; SDL_Renderer * renderer = sdl_ctx->renderer; @@ -68,7 +68,7 @@ void lv_draw_sdl_draw_line(lv_draw_ctx_t * draw_ctx, const lv_draw_line_dsc_t * SDL_Texture * texture = lv_draw_sdl_texture_cache_get(sdl_ctx, &key, sizeof(key), NULL); if(!texture) { texture = line_texture_create(sdl_ctx, dsc, (lv_coord_t) length); - lv_draw_sdl_texture_cache_put(sdl_ctx, &key, sizeof(key), texture); + *in_cache = lv_draw_sdl_texture_cache_put(sdl_ctx, &key, sizeof(key), texture); } lv_area_t coords = {x1, y1, x2, y2}; diff --git a/src/draw/sdl/lv_draw_sdl_polygon.c b/src/draw/sdl/lv_draw_sdl_polygon.c index c5df50cb9..68305c7c8 100644 --- a/src/draw/sdl/lv_draw_sdl_polygon.c +++ b/src/draw/sdl/lv_draw_sdl_polygon.c @@ -77,7 +77,9 @@ void lv_draw_sdl_polygon(lv_draw_ctx_t * draw_ctx, const lv_draw_rect_dsc_t * dr int16_t mask_id = lv_draw_mask_add(&polygon_param, NULL); lv_coord_t w = lv_area_get_width(&draw_area), h = lv_area_get_height(&draw_area); - SDL_Texture * texture = lv_draw_sdl_composite_texture_obtain(ctx, LV_DRAW_SDL_COMPOSITE_TEXTURE_ID_STREAM1, w, h); + bool texture_in_cache = false; + SDL_Texture * texture = lv_draw_sdl_composite_texture_obtain(ctx, LV_DRAW_SDL_COMPOSITE_TEXTURE_ID_STREAM1, w, h, + &texture_in_cache); SDL_SetTextureBlendMode(texture, SDL_BLENDMODE_BLEND); dump_masks(texture, &draw_area); @@ -91,6 +93,10 @@ void lv_draw_sdl_polygon(lv_draw_ctx_t * draw_ctx, const lv_draw_rect_dsc_t * dr SDL_SetTextureColorMod(texture, color.r, color.g, color.b); SDL_SetTextureAlphaMod(texture, draw_dsc->bg_opa); SDL_RenderCopy(ctx->renderer, texture, &srcrect, &dstrect); + if(!texture_in_cache) { + LV_LOG_WARN("Texture is not cached, this will impact performance."); + SDL_DestroyTexture(texture); + } } /********************** diff --git a/src/draw/sdl/lv_draw_sdl_priv.h b/src/draw/sdl/lv_draw_sdl_priv.h index 24a876218..ffc191b0a 100644 --- a/src/draw/sdl/lv_draw_sdl_priv.h +++ b/src/draw/sdl/lv_draw_sdl_priv.h @@ -35,6 +35,7 @@ typedef struct lv_draw_sdl_context_internals_t { lv_lru_t * texture_cache; SDL_Texture * mask; SDL_Texture * composition; + bool composition_cached; SDL_Texture * target_backup; uint8_t transform_count; } lv_draw_sdl_context_internals_t; diff --git a/src/draw/sdl/lv_draw_sdl_rect.c b/src/draw/sdl/lv_draw_sdl_rect.c index 6418a0af6..149dcbf67 100644 --- a/src/draw/sdl/lv_draw_sdl_rect.c +++ b/src/draw/sdl/lv_draw_sdl_rect.c @@ -175,7 +175,7 @@ void lv_draw_sdl_draw_rect(lv_draw_ctx_t * draw_ctx, const lv_draw_rect_dsc_t * lv_draw_sdl_composite_end(ctx, &apply_area, dsc->blend_mode); } -SDL_Texture * lv_draw_sdl_rect_bg_frag_obtain(lv_draw_sdl_ctx_t * ctx, lv_coord_t radius) +SDL_Texture * lv_draw_sdl_rect_bg_frag_obtain(lv_draw_sdl_ctx_t * ctx, lv_coord_t radius, bool * in_cache) { lv_draw_rect_bg_key_t key = rect_bg_key_create(radius, radius); SDL_Texture * texture = lv_draw_sdl_texture_cache_get(ctx, &key, sizeof(key), NULL); @@ -188,13 +188,16 @@ SDL_Texture * lv_draw_sdl_rect_bg_frag_obtain(lv_draw_sdl_ctx_t * ctx, lv_coord_ texture = lv_draw_sdl_mask_dump_texture(ctx->renderer, &coords_frag, &mask_id, 1); SDL_assert(texture != NULL); lv_draw_mask_remove_id(mask_id); - lv_draw_sdl_texture_cache_put(ctx, &key, sizeof(key), texture); + *in_cache = lv_draw_sdl_texture_cache_put(ctx, &key, sizeof(key), texture); + } + else { + *in_cache = true; } return texture; } SDL_Texture * lv_draw_sdl_rect_grad_frag_obtain(lv_draw_sdl_ctx_t * ctx, const lv_grad_dsc_t * grad, lv_coord_t w, - lv_coord_t h, lv_coord_t radius) + lv_coord_t h, lv_coord_t radius, bool * in_cache) { lv_draw_rect_grad_frag_key_t key = rect_grad_frag_key_create(grad, w, h, radius); SDL_Texture * texture = lv_draw_sdl_texture_cache_get(ctx, &key, sizeof(key), NULL); @@ -240,12 +243,15 @@ SDL_Texture * lv_draw_sdl_rect_grad_frag_obtain(lv_draw_sdl_ctx_t * ctx, const l draw_bg_grad_simple(ctx, &blend_coords, &draw_area, grad, true); SDL_SetRenderTarget(ctx->renderer, target_backup); - lv_draw_sdl_texture_cache_put(ctx, &key, sizeof(key), texture); + *in_cache = lv_draw_sdl_texture_cache_put(ctx, &key, sizeof(key), texture); + } + else { + *in_cache = true; } return texture; } -SDL_Texture * lv_draw_sdl_rect_grad_strip_obtain(lv_draw_sdl_ctx_t * ctx, const lv_grad_dsc_t * grad) +SDL_Texture * lv_draw_sdl_rect_grad_strip_obtain(lv_draw_sdl_ctx_t * ctx, const lv_grad_dsc_t * grad, bool * in_cache) { lv_draw_rect_grad_strip_key_t key = rect_grad_strip_key_create(grad); SDL_Texture * texture = lv_draw_sdl_texture_cache_get(ctx, &key, sizeof(key), NULL); @@ -265,7 +271,10 @@ SDL_Texture * lv_draw_sdl_rect_grad_strip_obtain(lv_draw_sdl_ctx_t * ctx, const texture = SDL_CreateTextureFromSurface(ctx->renderer, surface); SDL_assert(texture != NULL); SDL_FreeSurface(surface); - lv_draw_sdl_texture_cache_put(ctx, &key, sizeof(key), texture); + *in_cache = lv_draw_sdl_texture_cache_put(ctx, &key, sizeof(key), texture); + } + else { + *in_cache = true; } return texture; } @@ -388,7 +397,8 @@ static void draw_bg_color(lv_draw_sdl_ctx_t * ctx, const lv_area_t * coords, con /*A small texture with a quarter of the rect is enough*/ lv_coord_t bg_w = lv_area_get_width(coords), bg_h = lv_area_get_height(coords); lv_coord_t real_radius = LV_MIN3(bg_w / 2, bg_h / 2, radius); - SDL_Texture * texture = lv_draw_sdl_rect_bg_frag_obtain(ctx, real_radius); + bool texture_in_cache = false; + SDL_Texture * texture = lv_draw_sdl_rect_bg_frag_obtain(ctx, real_radius, &texture_in_cache); SDL_SetTextureBlendMode(texture, SDL_BLENDMODE_BLEND); SDL_SetTextureAlphaMod(texture, dsc->bg_opa); @@ -396,6 +406,11 @@ static void draw_bg_color(lv_draw_sdl_ctx_t * ctx, const lv_area_t * coords, con lv_draw_sdl_rect_bg_frag_draw_corners(ctx, texture, real_radius, coords, draw_area, false); frag_render_borders(ctx->renderer, texture, real_radius, coords, draw_area, false); frag_render_center(ctx->renderer, texture, real_radius, coords, draw_area, false); + + if(!texture_in_cache) { + LV_LOG_WARN("Texture is not cached, this will impact performance."); + SDL_DestroyTexture(texture); + } } static void draw_bg_grad_simple(lv_draw_sdl_ctx_t * ctx, const lv_area_t * coords, const lv_area_t * draw_area, @@ -427,7 +442,8 @@ static void draw_bg_grad_simple(lv_draw_sdl_ctx_t * ctx, const lv_area_t * coord } } - SDL_Texture * grad_texture = lv_draw_sdl_rect_grad_strip_obtain(ctx, grad); + bool grad_texture_in_cache = false; + SDL_Texture * grad_texture = lv_draw_sdl_rect_grad_strip_obtain(ctx, grad, &grad_texture_in_cache); if(blend_mod) { SDL_SetTextureBlendMode(grad_texture, SDL_BLENDMODE_MOD); } @@ -436,6 +452,11 @@ static void draw_bg_grad_simple(lv_draw_sdl_ctx_t * ctx, const lv_area_t * coord } SDL_RenderCopy(ctx->renderer, grad_texture, &srcrect, &dstrect); + + if(!grad_texture_in_cache) { + LV_LOG_WARN("Texture is not cached, this will impact performance."); + SDL_DestroyTexture(grad_texture); + } } static void draw_bg_grad_radius(lv_draw_sdl_ctx_t * ctx, const lv_area_t * coords, const lv_area_t * draw_area, @@ -445,7 +466,9 @@ static void draw_bg_grad_radius(lv_draw_sdl_ctx_t * ctx, const lv_area_t * coord /*A small texture with a quarter of the rect is enough*/ lv_coord_t bg_w = lv_area_get_width(coords), bg_h = lv_area_get_height(coords); lv_coord_t real_radius = LV_MIN3(bg_w / 2, bg_h / 2, radius); - SDL_Texture * grad_texture = lv_draw_sdl_rect_grad_frag_obtain(ctx, &dsc->bg_grad, bg_w, bg_h, radius); + bool grad_texture_in_cache = false; + SDL_Texture * grad_texture = lv_draw_sdl_rect_grad_frag_obtain(ctx, &dsc->bg_grad, bg_w, bg_h, radius, + &grad_texture_in_cache); SDL_SetTextureBlendMode(grad_texture, SDL_BLENDMODE_BLEND); lv_draw_sdl_rect_bg_frag_draw_corners(ctx, grad_texture, real_radius, coords, draw_area, true); @@ -497,6 +520,11 @@ static void draw_bg_grad_radius(lv_draw_sdl_ctx_t * ctx, const lv_area_t * coord _lv_area_intersect(&part_area, &part_coords, draw_area); draw_bg_grad_simple(ctx, coords, &part_area, &dsc->bg_grad, false); } + + if(!grad_texture_in_cache) { + LV_LOG_WARN("Texture is not cached, this will impact performance."); + SDL_DestroyTexture(grad_texture); + } } static void draw_bg_img(lv_draw_sdl_ctx_t * ctx, const lv_area_t * coords, const lv_area_t * draw_area, @@ -632,6 +660,7 @@ static void draw_shadow(lv_draw_sdl_ctx_t * ctx, const lv_area_t * coords, const lv_draw_rect_shadow_key_t key = rect_shadow_key_create(radius, frag_size, sw); SDL_Texture * texture = lv_draw_sdl_texture_cache_get(ctx, &key, sizeof(key), NULL); + bool texture_in_cache = false; if(texture == NULL) { lv_area_t mask_area = {blur_growth, blur_growth}, mask_area_blurred = {0, 0}; lv_area_set_width(&mask_area, frag_size * 2); @@ -650,7 +679,10 @@ static void draw_shadow(lv_draw_sdl_ctx_t * ctx, const lv_area_t * coords, const lv_mem_buf_release(mask_buf); lv_draw_mask_remove_id(mask_id); SDL_assert(texture); - lv_draw_sdl_texture_cache_put(ctx, &key, sizeof(key), texture); + texture_in_cache = lv_draw_sdl_texture_cache_put(ctx, &key, sizeof(key), texture); + } + else { + texture_in_cache = true; } SDL_Color shadow_color; @@ -662,6 +694,11 @@ static void draw_shadow(lv_draw_sdl_ctx_t * ctx, const lv_area_t * coords, const lv_draw_sdl_rect_bg_frag_draw_corners(ctx, texture, blur_frag_size, &shadow_area, clip, false); frag_render_borders(ctx->renderer, texture, blur_frag_size, &shadow_area, clip, false); frag_render_center(ctx->renderer, texture, blur_frag_size, &shadow_area, clip, false); + + if(!texture_in_cache) { + LV_LOG_WARN("Texture is not cached, this will impact performance."); + SDL_DestroyTexture(texture); + } } @@ -743,6 +780,7 @@ static void draw_border_generic(lv_draw_sdl_ctx_t * ctx, const lv_area_t * outer lv_coord_t max_side = LV_MAX4(key.offsets.x1, key.offsets.y1, -key.offsets.x2, -key.offsets.y2); lv_coord_t frag_size = LV_MAX(radius, max_side); SDL_Texture * texture = lv_draw_sdl_texture_cache_get(ctx, &key, sizeof(key), NULL); + bool texture_in_cache; if(texture == NULL) { /* Create a mask texture with size of (frag_size * 2 + FRAG_SPACING) */ const lv_area_t frag_area = {0, 0, frag_size * 2 + FRAG_SPACING - 1, frag_size * 2 + FRAG_SPACING - 1}; @@ -769,7 +807,10 @@ static void draw_border_generic(lv_draw_sdl_ctx_t * ctx, const lv_area_t * outer lv_draw_mask_remove_id(mask_ids[1]); lv_draw_mask_remove_id(mask_ids[0]); SDL_assert(texture); - lv_draw_sdl_texture_cache_put(ctx, &key, sizeof(key), texture); + texture_in_cache = lv_draw_sdl_texture_cache_put(ctx, &key, sizeof(key), texture); + } + else { + texture_in_cache = true; } SDL_Rect outer_rect; @@ -783,6 +824,11 @@ static void draw_border_generic(lv_draw_sdl_ctx_t * ctx, const lv_area_t * outer lv_draw_sdl_rect_bg_frag_draw_corners(ctx, texture, frag_size, outer_area, clip, true); frag_render_borders(renderer, texture, frag_size, outer_area, clip, true); + + if(!texture_in_cache) { + LV_LOG_WARN("Texture is not cached, this will impact performance."); + SDL_DestroyTexture(texture); + } } static void frag_render_borders(SDL_Renderer * renderer, SDL_Texture * frag, lv_coord_t frag_size, diff --git a/src/draw/sdl/lv_draw_sdl_rect.h b/src/draw/sdl/lv_draw_sdl_rect.h index 3472af31b..c3262d5f1 100644 --- a/src/draw/sdl/lv_draw_sdl_rect.h +++ b/src/draw/sdl/lv_draw_sdl_rect.h @@ -57,12 +57,36 @@ typedef struct lv_draw_sdl_rect_header_t { * Other functions *====================*/ -SDL_Texture * lv_draw_sdl_rect_bg_frag_obtain(lv_draw_sdl_ctx_t * ctx, lv_coord_t radius); +/** + * + * @param ctx Drawing context + * @param radius Corner radius of the rectangle + * @param in_cache Whether the texture has been put in the cache + * @return Background fragment texture + */ +SDL_Texture * lv_draw_sdl_rect_bg_frag_obtain(lv_draw_sdl_ctx_t * ctx, lv_coord_t radius, bool * in_cache); +/** + * + * @param ctx Drawing context + * @param grad Gradient info + * @param w Width of the rectangle + * @param h Height of the rectangle + * @param radius Corner radius of the rectangle + * @param in_cache Whether the texture has been put in the cache + * @return Gradient fragment texture + */ SDL_Texture * lv_draw_sdl_rect_grad_frag_obtain(lv_draw_sdl_ctx_t * ctx, const lv_grad_dsc_t * grad, lv_coord_t w, - lv_coord_t h, lv_coord_t radius); + lv_coord_t h, lv_coord_t radius, bool * in_cache); -SDL_Texture * lv_draw_sdl_rect_grad_strip_obtain(lv_draw_sdl_ctx_t * ctx, const lv_grad_dsc_t * grad); +/** + * + * @param ctx Drawing context + * @param grad Gradient info + * @param in_cache Whether the texture has been put in the cache + * @return Gradient strip texture + */ +SDL_Texture * lv_draw_sdl_rect_grad_strip_obtain(lv_draw_sdl_ctx_t * ctx, const lv_grad_dsc_t * grad, bool * in_cache); void lv_draw_sdl_rect_bg_frag_draw_corners(lv_draw_sdl_ctx_t * ctx, SDL_Texture * frag, lv_coord_t frag_size, const lv_area_t * coords, const lv_area_t * clip, bool full); diff --git a/src/draw/sdl/lv_draw_sdl_texture_cache.c b/src/draw/sdl/lv_draw_sdl_texture_cache.c index 6845addf5..406741783 100644 --- a/src/draw/sdl/lv_draw_sdl_texture_cache.c +++ b/src/draw/sdl/lv_draw_sdl_texture_cache.c @@ -81,12 +81,12 @@ SDL_Texture * lv_draw_sdl_texture_cache_get_with_userdata(lv_draw_sdl_ctx_t * ct return value->texture; } -void lv_draw_sdl_texture_cache_put(lv_draw_sdl_ctx_t * ctx, const void * key, size_t key_length, SDL_Texture * texture) +bool lv_draw_sdl_texture_cache_put(lv_draw_sdl_ctx_t * ctx, const void * key, size_t key_length, SDL_Texture * texture) { - lv_draw_sdl_texture_cache_put_advanced(ctx, key, key_length, texture, NULL, NULL, 0); + return lv_draw_sdl_texture_cache_put_advanced(ctx, key, key_length, texture, NULL, NULL, 0); } -void lv_draw_sdl_texture_cache_put_advanced(lv_draw_sdl_ctx_t * ctx, const void * key, size_t key_length, +bool lv_draw_sdl_texture_cache_put_advanced(lv_draw_sdl_ctx_t * ctx, const void * key, size_t key_length, SDL_Texture * texture, void * userdata, void userdata_free(void *), lv_draw_sdl_cache_flag_t flags) { @@ -97,22 +97,20 @@ void lv_draw_sdl_texture_cache_put_advanced(lv_draw_sdl_ctx_t * ctx, const void value->userdata_free = userdata_free; value->flags = flags; if(!texture) { - lv_lru_set(lru, key, key_length, value, 1); - return; + return lv_lru_set(lru, key, key_length, value, 1) == LV_LRU_OK; } if(flags & LV_DRAW_SDL_CACHE_FLAG_MANAGED) { /* Managed texture doesn't count into cache size */ LV_LOG_INFO("cache texture %p", texture); - lv_lru_set(lru, key, key_length, value, 1); - return; + return lv_lru_set(lru, key, key_length, value, 1) == LV_LRU_OK; } Uint32 format; int access, width, height; if(SDL_QueryTexture(texture, &format, &access, &width, &height) != 0) { - return; + return false; } LV_LOG_INFO("cache texture %p, %d*%d@%dbpp", texture, width, height, SDL_BITSPERPIXEL(format)); - lv_lru_set(lru, key, key_length, value, width * height * SDL_BITSPERPIXEL(format) / 8); + return lv_lru_set(lru, key, key_length, value, width * height * SDL_BITSPERPIXEL(format) / 8) == LV_LRU_OK; } lv_draw_sdl_cache_key_head_img_t * lv_draw_sdl_texture_img_key_create(const void * src, int32_t frame_id, size_t * size) diff --git a/src/draw/sdl/lv_draw_sdl_texture_cache.h b/src/draw/sdl/lv_draw_sdl_texture_cache.h index 1bbf17cd8..3a799f58b 100644 --- a/src/draw/sdl/lv_draw_sdl_texture_cache.h +++ b/src/draw/sdl/lv_draw_sdl_texture_cache.h @@ -82,9 +82,15 @@ SDL_Texture * lv_draw_sdl_texture_cache_get(lv_draw_sdl_ctx_t * ctx, const void SDL_Texture * lv_draw_sdl_texture_cache_get_with_userdata(lv_draw_sdl_ctx_t * ctx, const void * key, size_t key_length, bool * found, void ** userdata); -void lv_draw_sdl_texture_cache_put(lv_draw_sdl_ctx_t * ctx, const void * key, size_t key_length, SDL_Texture * texture); +/** + * @return Whether the texture has been put in the cache + */ +bool lv_draw_sdl_texture_cache_put(lv_draw_sdl_ctx_t * ctx, const void * key, size_t key_length, SDL_Texture * texture); -void lv_draw_sdl_texture_cache_put_advanced(lv_draw_sdl_ctx_t * ctx, const void * key, size_t key_length, +/** + * @return Whether the texture has been put in the cache + */ +bool lv_draw_sdl_texture_cache_put_advanced(lv_draw_sdl_ctx_t * ctx, const void * key, size_t key_length, SDL_Texture * texture, void * userdata, void userdata_free(void *), lv_draw_sdl_cache_flag_t flags); From fee3cd5ad914cf258285693337f3a7fcea508289 Mon Sep 17 00:00:00 2001 From: jadergn Date: Tue, 9 May 2023 15:27:54 -0300 Subject: [PATCH 02/95] fix(img): fix getting the image type on big endian systems (#4215) --- src/draw/lv_draw_img.c | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/src/draw/lv_draw_img.c b/src/draw/lv_draw_img.c index 1deb39e0c..1e83eaf65 100644 --- a/src/draw/lv_draw_img.c +++ b/src/draw/lv_draw_img.c @@ -198,11 +198,19 @@ lv_img_src_t lv_img_src_get_type(const void * src) if(src == NULL) return img_src_type; const uint8_t * u8_p = src; - /*The first byte shows the type of the image source*/ + /*The first or fourth byte depending on platform endianess shows the type of the image source*/ +#if LV_BIG_ENDIAN_SYSTEM + if(u8_p[3] >= 0x20 && u8_p[3] <= 0x7F) { +#else if(u8_p[0] >= 0x20 && u8_p[0] <= 0x7F) { +#endif img_src_type = LV_IMG_SRC_FILE; /*If it's an ASCII character then it's file name*/ } +#if LV_BIG_ENDIAN_SYSTEM + else if(u8_p[3] >= 0x80) { +#else else if(u8_p[0] >= 0x80) { +#endif img_src_type = LV_IMG_SRC_SYMBOL; /*Symbols begins after 0x7F*/ } else { From 72585635c146ba25dca8b072486d524974689e76 Mon Sep 17 00:00:00 2001 From: Gabor Kiss-Vamosi Date: Wed, 10 May 2023 08:25:04 +0200 Subject: [PATCH 03/95] fix(flex): register LV_STYLE_FLEX_GROW fixes #4214 --- src/extra/layouts/flex/lv_flex.c | 1 + 1 file changed, 1 insertion(+) diff --git a/src/extra/layouts/flex/lv_flex.c b/src/extra/layouts/flex/lv_flex.c index a53c95e88..8f0b4d290 100644 --- a/src/extra/layouts/flex/lv_flex.c +++ b/src/extra/layouts/flex/lv_flex.c @@ -97,6 +97,7 @@ void lv_flex_init(void) LV_STYLE_FLEX_MAIN_PLACE = lv_style_register_prop(LV_STYLE_PROP_LAYOUT_REFR); LV_STYLE_FLEX_CROSS_PLACE = lv_style_register_prop(LV_STYLE_PROP_LAYOUT_REFR); LV_STYLE_FLEX_TRACK_PLACE = lv_style_register_prop(LV_STYLE_PROP_LAYOUT_REFR); + LV_STYLE_FLEX_GROW = lv_style_register_prop(LV_STYLE_PROP_LAYOUT_REFR); } void lv_obj_set_flex_flow(lv_obj_t * obj, lv_flex_flow_t flow) From c83ba8607a7e18138e8b2f4073d66abdaee46f61 Mon Sep 17 00:00:00 2001 From: Gabor Kiss-Vamosi Date: Thu, 18 May 2023 11:14:12 +0200 Subject: [PATCH 04/95] fix(disp): fix memory leak lv_scr_load_anim with auto_del and time=0 fixes: #4212 --- src/core/lv_disp.c | 1 + 1 file changed, 1 insertion(+) diff --git a/src/core/lv_disp.c b/src/core/lv_disp.c index a1022b56c..dd0f7898e 100644 --- a/src/core/lv_disp.c +++ b/src/core/lv_disp.c @@ -262,6 +262,7 @@ void lv_scr_load_anim(lv_obj_t * new_scr, lv_scr_load_anim_t anim_type, uint32_t /*Shortcut for immediate load*/ if(time == 0 && delay == 0) { scr_load_internal(new_scr); + if(auto_del) lv_obj_del(act_scr); return; } From ea13b5df513588c998c7ce3143d2773301e2ccb9 Mon Sep 17 00:00:00 2001 From: Gabor Kiss-Vamosi Date: Thu, 18 May 2023 11:53:56 +0200 Subject: [PATCH 05/95] fix(msgbox): add missing lv_obj_class_init_obj fixes #4226 --- src/extra/widgets/msgbox/lv_msgbox.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/extra/widgets/msgbox/lv_msgbox.c b/src/extra/widgets/msgbox/lv_msgbox.c index 8db5df7ee..03a2be210 100644 --- a/src/extra/widgets/msgbox/lv_msgbox.c +++ b/src/extra/widgets/msgbox/lv_msgbox.c @@ -106,6 +106,9 @@ lv_obj_t * lv_msgbox_create(lv_obj_t * parent, const char * title, const char * } mbox->content = lv_obj_class_create_obj(&lv_msgbox_content_class, obj); + LV_ASSERT_MALLOC(obj); + if(obj == NULL) return NULL; + lv_obj_class_init_obj(obj); bool has_txt = txt && strlen(txt) > 0; if(has_txt) { From 0fd7d81f8d427f17344a43307295ab9f93be6bdc Mon Sep 17 00:00:00 2001 From: Gabor Kiss-Vamosi Date: Thu, 18 May 2023 13:01:17 +0200 Subject: [PATCH 06/95] fix(msgbox): fix typo --- src/extra/widgets/msgbox/lv_msgbox.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/extra/widgets/msgbox/lv_msgbox.c b/src/extra/widgets/msgbox/lv_msgbox.c index 03a2be210..54d65e353 100644 --- a/src/extra/widgets/msgbox/lv_msgbox.c +++ b/src/extra/widgets/msgbox/lv_msgbox.c @@ -106,9 +106,9 @@ lv_obj_t * lv_msgbox_create(lv_obj_t * parent, const char * title, const char * } mbox->content = lv_obj_class_create_obj(&lv_msgbox_content_class, obj); - LV_ASSERT_MALLOC(obj); - if(obj == NULL) return NULL; - lv_obj_class_init_obj(obj); + LV_ASSERT_MALLOC(mbox->content); + if(mbox->content == NULL) return NULL; + lv_obj_class_init_obj(mbox->content); bool has_txt = txt && strlen(txt) > 0; if(has_txt) { From 69087eda86971513e5f83a951ac09f9abbd808cc Mon Sep 17 00:00:00 2001 From: nicusorcitu <97085059+nicusorcitu@users.noreply.github.com> Date: Thu, 18 May 2023 23:43:19 +0300 Subject: [PATCH 07/95] perf(pxp, vglite): improve performance and add more features (#4222) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Nicușor Cîțu Signed-off-by: Stefan Babatie Signed-off-by: Jason Yu Co-authored-by: Stefan Babatie Co-authored-by: Jason Yu --- docs/get-started/platforms/nxp.md | 4 + src/draw/nxp/pxp/lv_draw_pxp.c | 47 +++-- src/draw/nxp/pxp/lv_draw_pxp_blend.c | 84 +++++++-- src/draw/nxp/pxp/lv_draw_pxp_blend.h | 16 +- src/draw/nxp/pxp/lv_gpu_nxp_pxp.h | 2 +- src/draw/nxp/vglite/lv_draw_vglite.c | 123 ++++++++---- src/draw/nxp/vglite/lv_draw_vglite_arc.c | 4 + src/draw/nxp/vglite/lv_draw_vglite_blend.c | 207 ++++++++++++--------- src/draw/nxp/vglite/lv_draw_vglite_blend.h | 62 +++++- src/draw/nxp/vglite/lv_draw_vglite_line.c | 4 + src/draw/nxp/vglite/lv_draw_vglite_rect.c | 16 +- src/draw/nxp/vglite/lv_vglite_buf.c | 36 ++-- src/draw/nxp/vglite/lv_vglite_buf.h | 11 ++ src/draw/nxp/vglite/lv_vglite_utils.h | 34 ++++ 14 files changed, 471 insertions(+), 179 deletions(-) diff --git a/docs/get-started/platforms/nxp.md b/docs/get-started/platforms/nxp.md index 22587c54f..48e25d254 100644 --- a/docs/get-started/platforms/nxp.md +++ b/docs/get-started/platforms/nxp.md @@ -23,6 +23,7 @@ Supported draw callbacks are available in "src/draw/nxp/pxp/lv_draw_pxp.c": pxp_draw_ctx->base_draw.draw_img_decoded = lv_draw_pxp_img_decoded; pxp_draw_ctx->blend = lv_draw_pxp_blend; pxp_draw_ctx->base_draw.wait_for_finish = lv_draw_pxp_wait_for_finish; + pxp_draw_ctx->base_draw.buffer_copy = lv_draw_pxp_buffer_copy; ``` #### Features supported: @@ -35,6 +36,7 @@ Supported draw callbacks are available in "src/draw/nxp/pxp/lv_draw_pxp.c": - Color keying - Recoloring (color tint) - Image Rotation (90, 180, 270 degree) + - Buffer copy - RTOS integration layer - Default FreeRTOS and bare metal code provided @@ -114,6 +116,7 @@ Supported draw callbacks are available in "src/draw/nxp/vglite/lv_draw_vglite.c" vglite_draw_ctx->base_draw.draw_img_decoded = lv_draw_vglite_img_decoded; vglite_draw_ctx->blend = lv_draw_vglite_blend; vglite_draw_ctx->base_draw.wait_for_finish = lv_draw_vglite_wait_for_finish; + vglite_draw_ctx->base_draw.buffer_copy = lv_draw_vglite_buffer_copy; ``` #### Features supported: @@ -129,6 +132,7 @@ Supported draw callbacks are available in "src/draw/nxp/vglite/lv_draw_vglite.c" - Draw rectangle border/outline with optional rounded corners - Draw arc with optional rounded ending - Draw line or dashed line with optional rounded ending + - Buffer copy #### Known limitations: - Source image alignment: diff --git a/src/draw/nxp/pxp/lv_draw_pxp.c b/src/draw/nxp/pxp/lv_draw_pxp.c index a7084b408..cd70f48b2 100644 --- a/src/draw/nxp/pxp/lv_draw_pxp.c +++ b/src/draw/nxp/pxp/lv_draw_pxp.c @@ -59,10 +59,14 @@ static void lv_draw_pxp_wait_for_finish(lv_draw_ctx_t * draw_ctx); +static void lv_draw_pxp_blend(lv_draw_ctx_t * draw_ctx, const lv_draw_sw_blend_dsc_t * dsc); + static void lv_draw_pxp_img_decoded(lv_draw_ctx_t * draw_ctx, const lv_draw_img_dsc_t * dsc, const lv_area_t * coords, const uint8_t * map_p, lv_img_cf_t cf); -static void lv_draw_pxp_blend(lv_draw_ctx_t * draw_ctx, const lv_draw_sw_blend_dsc_t * dsc); +static void lv_draw_pxp_buffer_copy(lv_draw_ctx_t * draw_ctx, + void * dest_buf, lv_coord_t dest_stride, const lv_area_t * dest_area, + void * src_buf, lv_coord_t src_stride, const lv_area_t * src_area); /********************** * STATIC VARIABLES @@ -84,6 +88,7 @@ void lv_draw_pxp_ctx_init(lv_disp_drv_t * drv, lv_draw_ctx_t * draw_ctx) pxp_draw_ctx->base_draw.draw_img_decoded = lv_draw_pxp_img_decoded; pxp_draw_ctx->blend = lv_draw_pxp_blend; pxp_draw_ctx->base_draw.wait_for_finish = lv_draw_pxp_wait_for_finish; + pxp_draw_ctx->base_draw.buffer_copy = lv_draw_pxp_buffer_copy; } void lv_draw_pxp_ctx_deinit(lv_disp_drv_t * drv, lv_draw_ctx_t * draw_ctx) @@ -184,22 +189,28 @@ static void lv_draw_pxp_img_decoded(lv_draw_ctx_t * draw_ctx, const lv_draw_img_ return; } - lv_area_t blend_area; - /*Let's get the blend area which is the intersection of the area to draw and the clip area.*/ - if(!_lv_area_intersect(&blend_area, coords, draw_ctx->clip_area)) - return; /*Fully clipped, nothing to do*/ + lv_area_t rel_coords; + lv_area_copy(&rel_coords, coords); + lv_area_move(&rel_coords, -draw_ctx->buf_area->x1, -draw_ctx->buf_area->y1); - /*Make the blend area relative to the buffer*/ - lv_area_move(&blend_area, -draw_ctx->buf_area->x1, -draw_ctx->buf_area->y1); + lv_area_t rel_clip_area; + lv_area_copy(&rel_clip_area, draw_ctx->clip_area); + lv_area_move(&rel_clip_area, -draw_ctx->buf_area->x1, -draw_ctx->buf_area->y1); - lv_coord_t src_width = lv_area_get_width(coords); - lv_coord_t src_height = lv_area_get_height(coords); - - bool has_mask = lv_draw_mask_is_any(&blend_area); bool has_scale = (dsc->zoom != LV_IMG_ZOOM_NONE); bool has_rotation = (dsc->angle != 0); bool unsup_rotation = false; + lv_area_t blend_area; + if(has_rotation) + lv_area_copy(&blend_area, &rel_coords); + else if(!_lv_area_intersect(&blend_area, &rel_coords, &rel_clip_area)) + return; /*Fully clipped, nothing to do*/ + + bool has_mask = lv_draw_mask_is_any(&blend_area); + lv_coord_t src_width = lv_area_get_width(coords); + lv_coord_t src_height = lv_area_get_height(coords); + if(has_rotation) { /* * PXP can only rotate at 90x angles. @@ -247,4 +258,18 @@ static void lv_draw_pxp_img_decoded(lv_draw_ctx_t * draw_ctx, const lv_draw_img_ dsc, cf); } +static void lv_draw_pxp_buffer_copy(lv_draw_ctx_t * draw_ctx, + void * dest_buf, lv_coord_t dest_stride, const lv_area_t * dest_area, + void * src_buf, lv_coord_t src_stride, const lv_area_t * src_area) +{ + LV_UNUSED(draw_ctx); + + if(lv_area_get_size(dest_area) < LV_GPU_NXP_PXP_SIZE_LIMIT) { + lv_draw_sw_buffer_copy(draw_ctx, dest_buf, dest_stride, dest_area, src_buf, src_stride, src_area); + return; + } + + lv_gpu_nxp_pxp_buffer_copy(dest_buf, dest_area, dest_stride, src_buf, src_area, src_stride); +} + #endif /*LV_USE_GPU_NXP_PXP*/ diff --git a/src/draw/nxp/pxp/lv_draw_pxp_blend.c b/src/draw/nxp/pxp/lv_draw_pxp_blend.c index a32c91710..82925769a 100644 --- a/src/draw/nxp/pxp/lv_draw_pxp_blend.c +++ b/src/draw/nxp/pxp/lv_draw_pxp_blend.c @@ -40,8 +40,6 @@ * DEFINES *********************/ -#define PXP_TEMP_BUF_SIZE LCD_WIDTH * LCD_HEIGHT * LCD_FB_BYTE_PER_PIXEL - #if LV_COLOR_16_SWAP #error Color swap not implemented. Disable LV_COLOR_16_SWAP feature. #endif @@ -50,10 +48,17 @@ #define PXP_OUT_PIXEL_FORMAT kPXP_OutputPixelFormatRGB565 #define PXP_AS_PIXEL_FORMAT kPXP_AsPixelFormatRGB565 #define PXP_PS_PIXEL_FORMAT kPXP_PsPixelFormatRGB565 + #define PXP_TEMP_BUF_SIZE LCD_WIDTH * LCD_HEIGHT * 2U #elif LV_COLOR_DEPTH == 32 #define PXP_OUT_PIXEL_FORMAT kPXP_OutputPixelFormatARGB8888 #define PXP_AS_PIXEL_FORMAT kPXP_AsPixelFormatARGB8888 - #define PXP_PS_PIXEL_FORMAT kPXP_PsPixelFormatRGB888 + #if (!(defined(FSL_FEATURE_PXP_HAS_NO_EXTEND_PIXEL_FORMAT) && FSL_FEATURE_PXP_HAS_NO_EXTEND_PIXEL_FORMAT)) && \ + (!(defined(FSL_FEATURE_PXP_V3) && FSL_FEATURE_PXP_V3)) + #define PXP_PS_PIXEL_FORMAT kPXP_PsPixelFormatARGB8888 + #else + #define PXP_PS_PIXEL_FORMAT kPXP_PsPixelFormatRGB888 + #endif + #define PXP_TEMP_BUF_SIZE LCD_WIDTH * LCD_HEIGHT * 4U #elif #error Only 16bit and 32bit color depth are supported. Set LV_COLOR_DEPTH to 16 or 32. #endif @@ -100,7 +105,7 @@ static void lv_pxp_blit_opa(lv_color_t * dest_buf, const lv_area_t * dest_area, * @param[in] dsc Image descriptor * @param[in] cf Color format */ -static void lv_pxp_blit_cover(lv_color_t * dest_buf, const lv_area_t * dest_area, lv_coord_t dest_stride, +static void lv_pxp_blit_cover(lv_color_t * dest_buf, lv_area_t * dest_area, lv_coord_t dest_stride, const lv_color_t * src_buf, const lv_area_t * src_area, lv_coord_t src_stride, const lv_draw_img_dsc_t * dsc, lv_img_cf_t cf); @@ -286,7 +291,7 @@ void lv_gpu_nxp_pxp_blit(lv_color_t * dest_buf, const lv_area_t * dest_area, lv_ lv_gpu_nxp_pxp_run(); } -void lv_gpu_nxp_pxp_blit_transform(lv_color_t * dest_buf, const lv_area_t * dest_area, lv_coord_t dest_stride, +void lv_gpu_nxp_pxp_blit_transform(lv_color_t * dest_buf, lv_area_t * dest_area, lv_coord_t dest_stride, const lv_color_t * src_buf, const lv_area_t * src_area, lv_coord_t src_stride, const lv_draw_img_dsc_t * dsc, lv_img_cf_t cf) { @@ -308,6 +313,33 @@ void lv_gpu_nxp_pxp_blit_transform(lv_color_t * dest_buf, const lv_area_t * dest lv_pxp_blit_cf(dest_buf, dest_area, dest_stride, src_buf, src_area, src_stride, dsc, cf); } +void lv_gpu_nxp_pxp_buffer_copy(lv_color_t * dest_buf, const lv_area_t * dest_area, lv_coord_t dest_stride, + const lv_color_t * src_buf, const lv_area_t * src_area, lv_coord_t src_stride) +{ + lv_coord_t src_width = lv_area_get_width(src_area); + lv_coord_t src_height = lv_area_get_height(src_area); + + lv_gpu_nxp_pxp_reset(); + + const pxp_pic_copy_config_t picCopyConfig = { + .srcPicBaseAddr = (uint32_t)src_buf, + .srcPitchBytes = src_stride * sizeof(lv_color_t), + .srcOffsetX = src_area->x1, + .srcOffsetY = src_area->y1, + .destPicBaseAddr = (uint32_t)dest_buf, + .destPitchBytes = dest_stride * sizeof(lv_color_t), + .destOffsetX = dest_area->x1, + .destOffsetY = dest_area->y1, + .width = src_width, + .height = src_height, + .pixelFormat = PXP_AS_PIXEL_FORMAT + }; + + PXP_StartPictureCopy(LV_GPU_NXP_PXP_ID, &picCopyConfig); + + lv_gpu_nxp_pxp_wait(); +} + /********************** * STATIC FUNCTIONS **********************/ @@ -316,22 +348,25 @@ static void lv_pxp_blit_opa(lv_color_t * dest_buf, const lv_area_t * dest_area, const lv_color_t * src_buf, const lv_area_t * src_area, lv_coord_t src_stride, const lv_draw_img_dsc_t * dsc, lv_img_cf_t cf) { - lv_coord_t temp_area_w = lv_area_get_width(dest_area); - lv_coord_t temp_area_h = lv_area_get_height(dest_area); - const lv_area_t temp_area = { - .x1 = 0, - .y1 = 0, - .x2 = temp_area_w - 1, - .y2 = temp_area_h - 1 - }; + lv_area_t temp_area; + lv_area_copy(&temp_area, dest_area); + lv_coord_t temp_stride = dest_stride; + lv_coord_t temp_w = lv_area_get_width(&temp_area); + lv_coord_t temp_h = lv_area_get_height(&temp_area); /*Step 1: Transform with full opacity to temporary buffer*/ - lv_pxp_blit_cover((lv_color_t *)temp_buf, &temp_area, temp_area_w, src_buf, src_area, src_stride, dsc, cf); + lv_pxp_blit_cover((lv_color_t *)temp_buf, &temp_area, temp_stride, src_buf, src_area, src_stride, dsc, cf); + + /*Switch width and height if angle requires it*/ + if(dsc->angle == 900 || dsc->angle == 2700) { + temp_area.x2 = temp_area.x1 + temp_h - 1; + temp_area.y2 = temp_area.y1 + temp_w - 1; + } /*Step 2: Blit temporary result with required opacity to output*/ - lv_pxp_blit_cf(dest_buf, dest_area, dest_stride, (lv_color_t *)temp_buf, &temp_area, temp_area_w, dsc, cf); + lv_pxp_blit_cf(dest_buf, &temp_area, dest_stride, (lv_color_t *)temp_buf, &temp_area, temp_stride, dsc, cf); } -static void lv_pxp_blit_cover(lv_color_t * dest_buf, const lv_area_t * dest_area, lv_coord_t dest_stride, +static void lv_pxp_blit_cover(lv_color_t * dest_buf, lv_area_t * dest_area, lv_coord_t dest_stride, const lv_color_t * src_buf, const lv_area_t * src_area, lv_coord_t src_stride, const lv_draw_img_dsc_t * dsc, lv_img_cf_t cf) { @@ -343,28 +378,43 @@ static void lv_pxp_blit_cover(lv_color_t * dest_buf, const lv_area_t * dest_area bool has_recolor = (dsc->recolor_opa != LV_OPA_TRANSP); bool has_rotation = (dsc->angle != 0); + lv_point_t pivot = dsc->pivot; + lv_coord_t piv_offset_x; + lv_coord_t piv_offset_y; + lv_gpu_nxp_pxp_reset(); if(has_rotation) { - /*Convert rotation angle*/ + /*Convert rotation angle and calculate offsets caused by pivot*/ pxp_rotate_degree_t pxp_angle; switch(dsc->angle) { case 0: pxp_angle = kPXP_Rotate0; + piv_offset_x = 0; + piv_offset_y = 0; break; case 900: + piv_offset_x = pivot.x + pivot.y - dest_h; + piv_offset_y = pivot.y - pivot.x; pxp_angle = kPXP_Rotate90; break; case 1800: + piv_offset_x = 2 * pivot.x - dest_w; + piv_offset_y = 2 * pivot.y - dest_h; pxp_angle = kPXP_Rotate180; break; case 2700: + piv_offset_x = pivot.x - pivot.y; + piv_offset_y = pivot.x + pivot.y - dest_w; pxp_angle = kPXP_Rotate270; break; default: + piv_offset_x = 0; + piv_offset_y = 0; pxp_angle = kPXP_Rotate0; } PXP_SetRotateConfig(LV_GPU_NXP_PXP_ID, kPXP_RotateOutputBuffer, pxp_angle, kPXP_FlipDisable); + lv_area_move(dest_area, piv_offset_x, piv_offset_y); } /*AS buffer - source image*/ diff --git a/src/draw/nxp/pxp/lv_draw_pxp_blend.h b/src/draw/nxp/pxp/lv_draw_pxp_blend.h index 9fe9192f7..961566726 100644 --- a/src/draw/nxp/pxp/lv_draw_pxp_blend.h +++ b/src/draw/nxp/pxp/lv_draw_pxp_blend.h @@ -99,10 +99,24 @@ void lv_gpu_nxp_pxp_blit(lv_color_t * dest_buf, const lv_area_t * dest_area, lv_ * @param[in] dsc Image descriptor * @param[in] cf Color format */ -void lv_gpu_nxp_pxp_blit_transform(lv_color_t * dest_buf, const lv_area_t * dest_area, lv_coord_t dest_stride, +void lv_gpu_nxp_pxp_blit_transform(lv_color_t * dest_buf, lv_area_t * dest_area, lv_coord_t dest_stride, const lv_color_t * src_buf, const lv_area_t * src_area, lv_coord_t src_stride, const lv_draw_img_dsc_t * dsc, lv_img_cf_t cf); +/** + * BLock Image Transfer - copy rectangular image from src_buf to dst_buf, no transformation or blending. + * + * + * @param[in/out] dest_buf Destination buffer + * @param[in] dest_area Area with relative coordinates of destination buffer + * @param[in] dest_stride Stride of destination buffer in pixels + * @param[in] src_buf Source buffer + * @param[in] src_area Area with relative coordinates of source buffer + * @param[in] src_stride Stride of source buffer in pixels + */ +void lv_gpu_nxp_pxp_buffer_copy(lv_color_t * dest_buf, const lv_area_t * dest_area, lv_coord_t dest_stride, + const lv_color_t * src_buf, const lv_area_t * src_area, lv_coord_t src_stride); + /********************** * MACROS **********************/ diff --git a/src/draw/nxp/pxp/lv_gpu_nxp_pxp.h b/src/draw/nxp/pxp/lv_gpu_nxp_pxp.h index 10a67215a..46f4a0ba1 100644 --- a/src/draw/nxp/pxp/lv_gpu_nxp_pxp.h +++ b/src/draw/nxp/pxp/lv_gpu_nxp_pxp.h @@ -149,7 +149,7 @@ void lv_gpu_nxp_pxp_wait(void); #if LV_GPU_NXP_PXP_LOG_TRACES #define PXP_LOG_TRACE(fmt, ...) \ do { \ - LV_LOG_ERROR(fmt, ##__VA_ARGS__); \ + LV_LOG(fmt, ##__VA_ARGS__); \ } while (0) #else #define PXP_LOG_TRACE(fmt, ...) \ diff --git a/src/draw/nxp/vglite/lv_draw_vglite.c b/src/draw/nxp/vglite/lv_draw_vglite.c index eae1b8a58..031f57e4e 100644 --- a/src/draw/nxp/vglite/lv_draw_vglite.c +++ b/src/draw/nxp/vglite/lv_draw_vglite.c @@ -69,6 +69,10 @@ static void lv_draw_vglite_wait_for_finish(lv_draw_ctx_t * draw_ctx); static void lv_draw_vglite_img_decoded(lv_draw_ctx_t * draw_ctx, const lv_draw_img_dsc_t * dsc, const lv_area_t * coords, const uint8_t * map_p, lv_img_cf_t cf); +static void lv_draw_vglite_buffer_copy(lv_draw_ctx_t * draw_ctx, + void * dest_buf, lv_coord_t dest_stride, const lv_area_t * dest_area, + void * src_buf, lv_coord_t src_stride, const lv_area_t * src_area); + static void lv_draw_vglite_blend(lv_draw_ctx_t * draw_ctx, const lv_draw_sw_blend_dsc_t * dsc); static void lv_draw_vglite_line(lv_draw_ctx_t * draw_ctx, const lv_draw_line_dsc_t * dsc, const lv_point_t * point1, @@ -111,6 +115,7 @@ void lv_draw_vglite_ctx_init(lv_disp_drv_t * drv, lv_draw_ctx_t * draw_ctx) vglite_draw_ctx->base_draw.draw_img_decoded = lv_draw_vglite_img_decoded; vglite_draw_ctx->blend = lv_draw_vglite_blend; vglite_draw_ctx->base_draw.wait_for_finish = lv_draw_vglite_wait_for_finish; + vglite_draw_ctx->base_draw.buffer_copy = lv_draw_vglite_buffer_copy; } void lv_draw_vglite_ctx_deinit(lv_disp_drv_t * drv, lv_draw_ctx_t * draw_ctx) @@ -166,11 +171,9 @@ static void lv_draw_vglite_blend(lv_draw_ctx_t * draw_ctx, const lv_draw_sw_blen } lv_area_t blend_area; - /*Let's get the blend area which is the intersection of the area to draw and the clip area*/ if(!_lv_area_intersect(&blend_area, dsc->blend_area, draw_ctx->clip_area)) return; /*Fully clipped, nothing to do*/ - /*Make the blend area relative to the buffer*/ lv_area_move(&blend_area, -draw_ctx->buf_area->x1, -draw_ctx->buf_area->y1); bool done = false; @@ -185,9 +188,6 @@ static void lv_draw_vglite_blend(lv_draw_ctx_t * draw_ctx, const lv_draw_sw_blen VG_LITE_LOG_TRACE("VG-Lite fill failed. Fallback."); } else { - lv_color_t * dest_buf = draw_ctx->buf; - lv_coord_t dest_stride = lv_area_get_width(draw_ctx->buf_area); - lv_area_t src_area; src_area.x1 = blend_area.x1 - (dsc->blend_area->x1 - draw_ctx->buf_area->x1); src_area.y1 = blend_area.y1 - (dsc->blend_area->y1 - draw_ctx->buf_area->y1); @@ -195,8 +195,15 @@ static void lv_draw_vglite_blend(lv_draw_ctx_t * draw_ctx, const lv_draw_sw_blen src_area.y2 = src_area.y1 + lv_area_get_height(dsc->blend_area) - 1; lv_coord_t src_stride = lv_area_get_width(dsc->blend_area); - done = (lv_gpu_nxp_vglite_blit(dest_buf, &blend_area, dest_stride, - src_buf, &src_area, src_stride, dsc->opa) == LV_RES_OK); +#if VG_LITE_BLIT_SPLIT_ENABLED + lv_color_t * dest_buf = draw_ctx->buf; + lv_coord_t dest_stride = lv_area_get_width(draw_ctx->buf_area); + + done = (lv_gpu_nxp_vglite_blit_split(dest_buf, &blend_area, dest_stride, + src_buf, &src_area, src_stride, dsc->opa) == LV_RES_OK); +#else + done = (lv_gpu_nxp_vglite_blit(&blend_area, src_buf, &src_area, src_stride, dsc->opa) == LV_RES_OK); +#endif if(!done) VG_LITE_LOG_TRACE("VG-Lite blit failed. Fallback."); @@ -224,13 +231,21 @@ static void lv_draw_vglite_img_decoded(lv_draw_ctx_t * draw_ctx, const lv_draw_i return; } + lv_area_t rel_coords; + lv_area_copy(&rel_coords, coords); + lv_area_move(&rel_coords, -draw_ctx->buf_area->x1, -draw_ctx->buf_area->y1); + + lv_area_t rel_clip_area; + lv_area_copy(&rel_clip_area, draw_ctx->clip_area); + lv_area_move(&rel_clip_area, -draw_ctx->buf_area->x1, -draw_ctx->buf_area->y1); + lv_area_t blend_area; - /*Let's get the blend area which is the intersection of the area to draw and the clip area*/ - if(!_lv_area_intersect(&blend_area, coords, draw_ctx->clip_area)) - return; /*Fully clipped, nothing to do*/ + bool has_transform = dsc->angle != 0 || dsc->zoom != LV_IMG_ZOOM_NONE; - /*Make the blend area relative to the buffer*/ - lv_area_move(&blend_area, -draw_ctx->buf_area->x1, -draw_ctx->buf_area->y1); + if(has_transform) + lv_area_copy(&blend_area, &rel_coords); + else if(!_lv_area_intersect(&blend_area, &rel_coords, &rel_clip_area)) + return; /*Fully clipped, nothing to do*/ bool has_mask = lv_draw_mask_is_any(&blend_area); bool has_recolor = (dsc->recolor_opa != LV_OPA_TRANSP); @@ -242,9 +257,6 @@ static void lv_draw_vglite_img_decoded(lv_draw_ctx_t * draw_ctx, const lv_draw_i && !lv_img_cf_has_alpha(cf) #endif ) { - lv_color_t * dest_buf = draw_ctx->buf; - lv_coord_t dest_stride = lv_area_get_width(draw_ctx->buf_area); - lv_area_t src_area; src_area.x1 = blend_area.x1 - (coords->x1 - draw_ctx->buf_area->x1); src_area.y1 = blend_area.y1 - (coords->y1 - draw_ctx->buf_area->y1); @@ -252,17 +264,48 @@ static void lv_draw_vglite_img_decoded(lv_draw_ctx_t * draw_ctx, const lv_draw_i src_area.y2 = src_area.y1 + lv_area_get_height(coords) - 1; lv_coord_t src_stride = lv_area_get_width(coords); - done = (lv_gpu_nxp_vglite_blit_transform(dest_buf, &blend_area, dest_stride, - src_buf, &src_area, src_stride, dsc) == LV_RES_OK); +#if VG_LITE_BLIT_SPLIT_ENABLED + lv_color_t * dest_buf = draw_ctx->buf; + lv_coord_t dest_stride = lv_area_get_width(draw_ctx->buf_area); + + if(has_transform) + /* VG-Lite blit split with transformation is not supported! */ + done = false; + else + done = (lv_gpu_nxp_vglite_blit_split(dest_buf, &blend_area, dest_stride, + src_buf, &src_area, src_stride, dsc->opa) == LV_RES_OK); +#else + if(has_transform) + done = (lv_gpu_nxp_vglite_blit_transform(&blend_area, &rel_clip_area, + src_buf, &src_area, src_stride, dsc) == LV_RES_OK); + else + done = (lv_gpu_nxp_vglite_blit(&blend_area, src_buf, &src_area, src_stride, dsc->opa) == LV_RES_OK); +#endif if(!done) - VG_LITE_LOG_TRACE("VG-Lite blit transform failed. Fallback."); + VG_LITE_LOG_TRACE("VG-Lite blit %sfailed. Fallback.", has_transform ? "transform " : ""); } if(!done) lv_draw_sw_img_decoded(draw_ctx, dsc, coords, map_p, cf); } +static void lv_draw_vglite_buffer_copy(lv_draw_ctx_t * draw_ctx, + void * dest_buf, lv_coord_t dest_stride, const lv_area_t * dest_area, + void * src_buf, lv_coord_t src_stride, const lv_area_t * src_area) +{ + bool done = false; + + if(lv_area_get_size(dest_area) >= LV_GPU_NXP_VG_LITE_SIZE_LIMIT) { + done = lv_gpu_nxp_vglite_buffer_copy(dest_buf, dest_area, dest_stride, src_buf, src_area, src_stride); + if(!done) + VG_LITE_LOG_TRACE("VG-Lite buffer copy failed. Fallback."); + } + + if(!done) + lv_draw_sw_buffer_copy(draw_ctx, dest_buf, dest_stride, dest_area, src_buf, src_stride, src_area); +} + static void lv_draw_vglite_line(lv_draw_ctx_t * draw_ctx, const lv_draw_line_dsc_t * dsc, const lv_point_t * point1, const lv_point_t * point2) { @@ -284,21 +327,19 @@ static void lv_draw_vglite_line(lv_draw_ctx_t * draw_ctx, const lv_draw_line_dsc rel_clip_area.y1 = LV_MIN(point1->y, point2->y) - dsc->width / 2; rel_clip_area.y2 = LV_MAX(point1->y, point2->y) + dsc->width / 2; - bool is_common; - is_common = _lv_area_intersect(&rel_clip_area, &rel_clip_area, draw_ctx->clip_area); - if(!is_common) - return; + lv_area_t clipped_coords; + if(!_lv_area_intersect(&clipped_coords, &rel_clip_area, draw_ctx->clip_area)) + return; /*Fully clipped, nothing to do*/ - /* Make coordinates relative to the draw buffer */ lv_area_move(&rel_clip_area, -draw_ctx->buf_area->x1, -draw_ctx->buf_area->y1); lv_point_t rel_point1 = { point1->x - draw_ctx->buf_area->x1, point1->y - draw_ctx->buf_area->y1 }; lv_point_t rel_point2 = { point2->x - draw_ctx->buf_area->x1, point2->y - draw_ctx->buf_area->y1 }; bool done = false; - bool mask_any = lv_draw_mask_is_any(&rel_clip_area); + bool has_mask = lv_draw_mask_is_any(&rel_clip_area); - if(!mask_any) { + if(!has_mask) { done = (lv_gpu_nxp_vglite_draw_line(&rel_point1, &rel_point2, &rel_clip_area, dsc) == LV_RES_OK); if(!done) VG_LITE_LOG_TRACE("VG-Lite draw line failed. Fallback."); @@ -369,8 +410,6 @@ static lv_res_t lv_draw_vglite_bg(lv_draw_ctx_t * draw_ctx, const lv_draw_rect_d rel_coords.x2 -= (dsc->border_side & LV_BORDER_SIDE_RIGHT) ? 1 : 0; rel_coords.y2 -= (dsc->border_side & LV_BORDER_SIDE_BOTTOM) ? 1 : 0; } - - /* Make coordinates relative to draw buffer */ lv_area_move(&rel_coords, -draw_ctx->buf_area->x1, -draw_ctx->buf_area->y1); lv_area_t rel_clip_area; @@ -379,9 +418,9 @@ static lv_res_t lv_draw_vglite_bg(lv_draw_ctx_t * draw_ctx, const lv_draw_rect_d lv_area_t clipped_coords; if(!_lv_area_intersect(&clipped_coords, &rel_coords, &rel_clip_area)) - return LV_RES_INV; + return LV_RES_OK; /*Fully clipped, nothing to do*/ - bool mask_any = lv_draw_mask_is_any(&rel_coords); + bool has_mask = lv_draw_mask_is_any(&rel_coords); lv_grad_dir_t grad_dir = dsc->bg_grad.dir; lv_color_t bg_color = (grad_dir == (lv_grad_dir_t)LV_GRAD_DIR_NONE) ? dsc->bg_color : dsc->bg_grad.stops[0].color; @@ -394,7 +433,7 @@ static lv_res_t lv_draw_vglite_bg(lv_draw_ctx_t * draw_ctx, const lv_draw_rect_d * * Complex case: gradient or radius but no mask. */ - if(!mask_any && ((dsc->radius != 0) || (grad_dir != (lv_grad_dir_t)LV_GRAD_DIR_NONE))) { + if(!has_mask && ((dsc->radius != 0) || (grad_dir != (lv_grad_dir_t)LV_GRAD_DIR_NONE))) { lv_res_t res = lv_gpu_nxp_vglite_draw_bg(&rel_coords, &rel_clip_area, dsc); if(res != LV_RES_OK) VG_LITE_LOG_TRACE("VG-Lite draw bg failed. Fallback."); @@ -426,13 +465,16 @@ static lv_res_t lv_draw_vglite_border(lv_draw_ctx_t * draw_ctx, const lv_draw_re rel_coords.y1 = coords->y1 + ceil(border_width / 2.0f); rel_coords.y2 = coords->y2 - floor(border_width / 2.0f); - /* Make coordinates relative to the draw buffer */ lv_area_move(&rel_coords, -draw_ctx->buf_area->x1, -draw_ctx->buf_area->y1); lv_area_t rel_clip_area; lv_area_copy(&rel_clip_area, draw_ctx->clip_area); lv_area_move(&rel_clip_area, -draw_ctx->buf_area->x1, -draw_ctx->buf_area->y1); + lv_area_t clipped_coords; + if(!_lv_area_intersect(&clipped_coords, &rel_coords, &rel_clip_area)) + return LV_RES_OK; /*Fully clipped, nothing to do*/ + lv_res_t res = lv_gpu_nxp_vglite_draw_border_generic(&rel_coords, &rel_clip_area, dsc, true); if(res != LV_RES_OK) VG_LITE_LOG_TRACE("VG-Lite draw border failed. Fallback."); @@ -456,13 +498,16 @@ static lv_res_t lv_draw_vglite_outline(lv_draw_ctx_t * draw_ctx, const lv_draw_r rel_coords.y1 = coords->y1 - outline_pad - floor(dsc->outline_width / 2.0f); rel_coords.y2 = coords->y2 + outline_pad + ceil(dsc->outline_width / 2.0f); - /* Make coordinates relative to the draw buffer */ lv_area_move(&rel_coords, -draw_ctx->buf_area->x1, -draw_ctx->buf_area->y1); lv_area_t rel_clip_area; lv_area_copy(&rel_clip_area, draw_ctx->clip_area); lv_area_move(&rel_clip_area, -draw_ctx->buf_area->x1, -draw_ctx->buf_area->y1); + lv_area_t clipped_coords; + if(!_lv_area_intersect(&clipped_coords, &rel_coords, &rel_clip_area)) + return LV_RES_OK; /*Fully clipped, nothing to do*/ + lv_res_t res = lv_gpu_nxp_vglite_draw_border_generic(&rel_coords, &rel_clip_area, dsc, false); if(res != LV_RES_OK) VG_LITE_LOG_TRACE("VG-Lite draw outline failed. Fallback."); @@ -488,17 +533,21 @@ static void lv_draw_vglite_arc(lv_draw_ctx_t * draw_ctx, const lv_draw_arc_dsc_t return; } - /* Make coordinates relative to the draw buffer */ lv_point_t rel_center = {center->x - draw_ctx->buf_area->x1, center->y - draw_ctx->buf_area->y1}; lv_area_t rel_clip_area; lv_area_copy(&rel_clip_area, draw_ctx->clip_area); lv_area_move(&rel_clip_area, -draw_ctx->buf_area->x1, -draw_ctx->buf_area->y1); - done = (lv_gpu_nxp_vglite_draw_arc(&rel_center, (int32_t)radius, (int32_t)start_angle, (int32_t)end_angle, - &rel_clip_area, dsc) == LV_RES_OK); - if(!done) - VG_LITE_LOG_TRACE("VG-Lite draw arc failed. Fallback."); + bool has_mask = lv_draw_mask_is_any(&rel_clip_area); + + if(!has_mask) { + done = (lv_gpu_nxp_vglite_draw_arc(&rel_center, (int32_t)radius, (int32_t)start_angle, (int32_t)end_angle, + &rel_clip_area, dsc) == LV_RES_OK); + if(!done) + VG_LITE_LOG_TRACE("VG-Lite draw arc failed. Fallback."); + } + #endif/*LV_DRAW_COMPLEX*/ if(!done) diff --git a/src/draw/nxp/vglite/lv_draw_vglite_arc.c b/src/draw/nxp/vglite/lv_draw_vglite_arc.c index 775bf734b..39470527d 100644 --- a/src/draw/nxp/vglite/lv_draw_vglite_arc.c +++ b/src/draw/nxp/vglite/lv_draw_vglite_arc.c @@ -216,6 +216,8 @@ lv_res_t lv_gpu_nxp_vglite_draw_arc(const lv_point_t * center, int32_t radius, i vg_lite_matrix_t matrix; vg_lite_identity(&matrix); + lv_vglite_set_scissor(clip_area); + /*** Draw arc ***/ err = vg_lite_draw(vgbuf, &path, VG_LITE_FILL_NON_ZERO, &matrix, VG_LITE_BLEND_SRC_OVER, vgcol); VG_LITE_ERR_RETURN_INV(err, "Draw arc failed."); @@ -223,6 +225,8 @@ lv_res_t lv_gpu_nxp_vglite_draw_arc(const lv_point_t * center, int32_t radius, i if(lv_vglite_run() != LV_RES_OK) VG_LITE_RETURN_INV("Run failed."); + lv_vglite_disable_scissor(); + err = vg_lite_clear_path(&path); VG_LITE_ERR_RETURN_INV(err, "Clear path failed."); diff --git a/src/draw/nxp/vglite/lv_draw_vglite_blend.c b/src/draw/nxp/vglite/lv_draw_vglite_blend.c index e1408b760..4a15fd55c 100644 --- a/src/draw/nxp/vglite/lv_draw_vglite_blend.c +++ b/src/draw/nxp/vglite/lv_draw_vglite_blend.c @@ -35,6 +35,7 @@ #if LV_USE_GPU_NXP_VG_LITE #include "lv_vglite_buf.h" +#include "lv_vglite_utils.h" /********************* * DEFINES @@ -43,21 +44,6 @@ /** Stride in px required by VG-Lite HW*/ #define LV_GPU_NXP_VG_LITE_STRIDE_ALIGN_PX 16U -/** - * Enable BLIT quality degradation workaround for RT595, - * recommended for screen's dimension > 352 pixels. - */ -#define RT595_BLIT_WRKRND_ENABLED 1 - -/* Internal compound symbol */ -#if (defined(CPU_MIMXRT595SFFOB) || defined(CPU_MIMXRT595SFFOB_cm33) || \ - defined(CPU_MIMXRT595SFFOC) || defined(CPU_MIMXRT595SFFOC_cm33)) && \ - RT595_BLIT_WRKRND_ENABLED -#define VG_LITE_BLIT_SPLIT_ENABLED 1 -#else -#define VG_LITE_BLIT_SPLIT_ENABLED 0 -#endif - #if VG_LITE_BLIT_SPLIT_ENABLED /** * BLIT split threshold - BLITs with width or height higher than this value will be done @@ -75,16 +61,15 @@ **********************/ /** - * Blit single image, with optional opacity. + * Blit image, with optional opacity. * - * @param[in] dest_area Area with relative coordinates of destination buffer * @param[in] src_area Source area with relative coordinates of source buffer * @param[in] opa Opacity * * @retval LV_RES_OK Transfer complete * @retval LV_RES_INV Error occurred (\see LV_GPU_NXP_VG_LITE_LOG_ERRORS) */ -static lv_res_t lv_vglite_blit_single(const lv_area_t * dest_area, const lv_area_t * src_area, lv_opa_t opa); +static lv_res_t lv_vglite_blit(const lv_area_t * src_area, lv_opa_t opa); /** * Check source memory and stride alignment. @@ -113,7 +98,6 @@ static inline void lv_vglite_set_translation_matrix(const lv_area_t * dest_area) static inline void lv_vglite_set_transformation_matrix(const lv_area_t * dest_area, const lv_draw_img_dsc_t * dsc); #if VG_LITE_BLIT_SPLIT_ENABLED - /** * Move buffer pointer as close as possible to area, but with respect to alignment requirements. X-axis only. * @@ -148,7 +132,7 @@ static void align_y(lv_area_t * area, lv_color_t ** buf, lv_coord_t stride); static lv_res_t lv_vglite_blit_split(lv_color_t * dest_buf, lv_area_t * dest_area, lv_coord_t dest_stride, const lv_color_t * src_buf, lv_area_t * src_area, lv_coord_t src_stride, lv_opa_t opa); -#endif +#endif /*VG_LITE_BLIT_SPLIT_ENABLED*/ /********************** * STATIC VARIABLES @@ -223,17 +207,14 @@ lv_res_t lv_gpu_nxp_vglite_fill(const lv_area_t * dest_area, lv_color_t color, l return LV_RES_OK; } -lv_res_t lv_gpu_nxp_vglite_blit(lv_color_t * dest_buf, lv_area_t * dest_area, lv_coord_t dest_stride, - const lv_color_t * src_buf, lv_area_t * src_area, lv_coord_t src_stride, - lv_opa_t opa) +#if VG_LITE_BLIT_SPLIT_ENABLED +lv_res_t lv_gpu_nxp_vglite_blit_split(lv_color_t * dest_buf, lv_area_t * dest_area, lv_coord_t dest_stride, + const lv_color_t * src_buf, lv_area_t * src_area, lv_coord_t src_stride, + lv_opa_t opa) { - /* Set vgmatrix. */ - lv_vglite_set_translation_matrix(dest_area); - /* Set src_vgbuf structure. */ lv_vglite_set_src_buf(src_buf, src_area, src_stride); -#if VG_LITE_BLIT_SPLIT_ENABLED lv_color_t * orig_dest_buf = dest_buf; lv_res_t rv = lv_vglite_blit_split(dest_buf, dest_area, dest_stride, src_buf, src_area, src_stride, opa); @@ -242,45 +223,112 @@ lv_res_t lv_gpu_nxp_vglite_blit(lv_color_t * dest_buf, lv_area_t * dest_area, lv lv_vglite_set_dest_buf_ptr(orig_dest_buf); return rv; +} #else - LV_UNUSED(dest_buf); - LV_UNUSED(dest_stride); - +lv_res_t lv_gpu_nxp_vglite_blit(const lv_area_t * dest_area, + const lv_color_t * src_buf, const lv_area_t * src_area, lv_coord_t src_stride, + lv_opa_t opa) +{ if(check_src_alignment(src_buf, src_stride) != LV_RES_OK) VG_LITE_RETURN_INV("Check src alignment failed."); - return lv_vglite_blit_single(dest_area, src_area, opa); -#endif + /* Set src_vgbuf structure. */ + lv_vglite_set_src_buf(src_buf, src_area, src_stride); + + /* Set scissor. */ + lv_vglite_set_scissor(dest_area); + + /* Set vgmatrix. */ + lv_vglite_set_translation_matrix(dest_area); + + /* Start blit. */ + lv_res_t rv = lv_vglite_blit(src_area, opa); + + /* Disable scissor. */ + lv_vglite_disable_scissor(); + + return rv; } -lv_res_t lv_gpu_nxp_vglite_blit_transform(lv_color_t * dest_buf, lv_area_t * dest_area, lv_coord_t dest_stride, - const lv_color_t * src_buf, lv_area_t * src_area, lv_coord_t src_stride, +lv_res_t lv_gpu_nxp_vglite_blit_transform(const lv_area_t * dest_area, const lv_area_t * clip_area, + const lv_color_t * src_buf, const lv_area_t * src_area, lv_coord_t src_stride, const lv_draw_img_dsc_t * dsc) { - /* Set vgmatrix. */ - lv_vglite_set_transformation_matrix(dest_area, dsc); + lv_res_t rv = LV_RES_INV; + + if(check_src_alignment(src_buf, src_stride) != LV_RES_OK) + VG_LITE_RETURN_INV("Check src alignment failed."); /* Set src_vgbuf structure. */ lv_vglite_set_src_buf(src_buf, src_area, src_stride); -#if VG_LITE_BLIT_SPLIT_ENABLED - lv_color_t * orig_dest_buf = dest_buf; + /* Set scissor */ + lv_vglite_set_scissor(clip_area); - lv_res_t rv = lv_vglite_blit_split(dest_buf, dest_area, dest_stride, src_buf, src_area, src_stride, dsc->opa); + /* Set vgmatrix. */ + lv_vglite_set_transformation_matrix(dest_area, dsc); - /* Restore the original dest_vgbuf memory address. */ - lv_vglite_set_dest_buf_ptr(orig_dest_buf); + /* Start blit. */ + rv = lv_vglite_blit(src_area, dsc->opa); + + /* Disable scissor. */ + lv_vglite_disable_scissor(); return rv; -#else - LV_UNUSED(dest_buf); - LV_UNUSED(dest_stride); +} +#endif /*VG_LITE_BLIT_SPLIT_ENABLED*/ + +lv_res_t lv_gpu_nxp_vglite_buffer_copy(lv_color_t * dest_buf, const lv_area_t * dest_area, lv_coord_t dest_stride, + const lv_color_t * src_buf, const lv_area_t * src_area, lv_coord_t src_stride) +{ + vg_lite_error_t err = VG_LITE_SUCCESS; if(check_src_alignment(src_buf, src_stride) != LV_RES_OK) VG_LITE_RETURN_INV("Check src alignment failed."); - return lv_vglite_blit_single(dest_area, src_area, dsc->opa); -#endif + vg_lite_buffer_t src_vgbuf; + /* Set src_vgbuf structure. */ + lv_vglite_set_buf(&src_vgbuf, src_buf, src_area, src_stride); + + vg_lite_buffer_t dest_vgbuf; + /* Set dest_vgbuf structure. */ + lv_vglite_set_buf(&dest_vgbuf, dest_buf, dest_area, dest_stride); + + uint32_t rect[] = { + (uint32_t)src_area->x1, /* start x */ + (uint32_t)src_area->y1, /* start y */ + (uint32_t)lv_area_get_width(src_area), /* width */ + (uint32_t)lv_area_get_height(src_area) /* height */ + }; + + /* Set scissor. */ + lv_vglite_set_scissor(dest_area); + + /* Set vgmatrix. */ + lv_vglite_set_translation_matrix(dest_area); + + err = vg_lite_blit_rect(&dest_vgbuf, &src_vgbuf, rect, &vgmatrix, + VG_LITE_BLEND_NONE, 0xFFFFFFFFU, VG_LITE_FILTER_POINT); + if(err != VG_LITE_SUCCESS) { + LV_LOG_ERROR("Blit rectangle failed."); + /* Disable scissor. */ + lv_vglite_disable_scissor(); + + return LV_RES_INV; + } + + if(lv_vglite_run() != LV_RES_OK) { + LV_LOG_ERROR("Run failed."); + /* Disable scissor. */ + lv_vglite_disable_scissor(); + + return LV_RES_INV; + } + + /* Disable scissor. */ + lv_vglite_disable_scissor(); + + return LV_RES_OK; } /********************** @@ -320,10 +368,17 @@ static lv_res_t lv_vglite_blit_split(lv_color_t * dest_buf, lv_area_t * dest_are lv_vglite_set_dest_buf_ptr(dest_buf); lv_vglite_set_src_buf_ptr(src_buf); + /* Set scissor */ + lv_vglite_set_scissor(dest_area); + /* Set vgmatrix. */ lv_vglite_set_translation_matrix(dest_area); - rv = lv_vglite_blit_single(dest_area, src_area, opa); + /* Start blit. */ + rv = lv_vglite_blit(src_area, opa); + + /* Disable scissor. */ + lv_vglite_disable_scissor(); VG_LITE_LOG_TRACE("Single " "Area: ([%d,%d], [%d,%d]) -> ([%d,%d], [%d,%d]) | " @@ -426,14 +481,21 @@ static lv_res_t lv_vglite_blit_split(lv_color_t * dest_buf, lv_area_t * dest_are if(check_src_alignment(tile_src_buf, src_stride) != LV_RES_OK) VG_LITE_RETURN_INV("Check src alignment failed."); - /* Set vgmatrix. */ - lv_vglite_set_translation_matrix(&tile_dest_area); - /* Set new dest_vgbuf and src_vgbuf memory addresses. */ lv_vglite_set_dest_buf_ptr(tile_dest_buf); lv_vglite_set_src_buf_ptr(tile_src_buf); - rv = lv_vglite_blit_single(&tile_dest_area, &tile_src_area, opa); + /* Set scissor */ + lv_vglite_set_scissor(&tile_dest_area); + + /* Set vgmatrix. */ + lv_vglite_set_translation_matrix(&tile_dest_area); + + /* Start blit. */ + rv = lv_vglite_blit(&tile_src_area, opa); + + /* Disable scissor. */ + lv_vglite_disable_scissor(); VG_LITE_LOG_TRACE("Tile [%d, %d] " "Area: ([%d,%d], [%d,%d]) -> ([%d,%d], [%d,%d]) | " @@ -455,9 +517,9 @@ static lv_res_t lv_vglite_blit_split(lv_color_t * dest_buf, lv_area_t * dest_are return rv; } -#endif /* VG_LITE_BLIT_SPLIT_ENABLED */ +#endif /*VG_LITE_BLIT_SPLIT_ENABLED*/ -static lv_res_t lv_vglite_blit_single(const lv_area_t * dest_area, const lv_area_t * src_area, lv_opa_t opa) +static lv_res_t lv_vglite_blit(const lv_area_t * src_area, lv_opa_t opa) { vg_lite_error_t err = VG_LITE_SUCCESS; vg_lite_buffer_t * dst_vgbuf = lv_vglite_get_dest_buf(); @@ -489,30 +551,11 @@ static lv_res_t lv_vglite_blit_single(const lv_area_t * dest_area, const lv_area src_vgbuf->transparency_mode = VG_LITE_IMAGE_TRANSPARENT; } - bool scissoring = lv_area_get_width(dest_area) < lv_area_get_width(src_area) || - lv_area_get_height(dest_area) < lv_area_get_height(src_area); - if(scissoring) { - vg_lite_enable_scissor(); - vg_lite_set_scissor((int32_t)dest_area->x1, (int32_t)dest_area->y1, - (int32_t)lv_area_get_width(dest_area), - (int32_t)lv_area_get_height(dest_area)); - } - err = vg_lite_blit_rect(dst_vgbuf, src_vgbuf, rect, &vgmatrix, blend, color, VG_LITE_FILTER_POINT); - if(err != VG_LITE_SUCCESS) { - if(scissoring) - vg_lite_disable_scissor(); - VG_LITE_RETURN_INV("Blit rectangle failed."); - } + VG_LITE_ERR_RETURN_INV(err, "Blit rectangle failed."); - if(lv_vglite_run() != LV_RES_OK) { - if(scissoring) - vg_lite_disable_scissor(); + if(lv_vglite_run() != LV_RES_OK) VG_LITE_RETURN_INV("Run failed."); - } - - if(scissoring) - vg_lite_disable_scissor(); return LV_RES_OK; } @@ -546,16 +589,14 @@ static inline void lv_vglite_set_transformation_matrix(const lv_area_t * dest_ar bool has_scale = (dsc->zoom != LV_IMG_ZOOM_NONE); bool has_rotation = (dsc->angle != 0); - if(has_scale || has_rotation) { - vg_lite_translate(dsc->pivot.x, dsc->pivot.y, &vgmatrix); - if(has_rotation) - vg_lite_rotate(dsc->angle / 10.0f, &vgmatrix); /* angle is 1/10 degree */ - if(has_scale) { - vg_lite_float_t scale = 1.0f * dsc->zoom / LV_IMG_ZOOM_NONE; - vg_lite_scale(scale, scale, &vgmatrix); - } - vg_lite_translate(0.0f - dsc->pivot.x, 0.0f - dsc->pivot.y, &vgmatrix); + vg_lite_translate(dsc->pivot.x, dsc->pivot.y, &vgmatrix); + if(has_rotation) + vg_lite_rotate(dsc->angle / 10.0f, &vgmatrix); /* angle is 1/10 degree */ + if(has_scale) { + vg_lite_float_t scale = 1.0f * dsc->zoom / LV_IMG_ZOOM_NONE; + vg_lite_scale(scale, scale, &vgmatrix); } + vg_lite_translate(0.0f - dsc->pivot.x, 0.0f - dsc->pivot.y, &vgmatrix); } #if VG_LITE_BLIT_SPLIT_ENABLED diff --git a/src/draw/nxp/vglite/lv_draw_vglite_blend.h b/src/draw/nxp/vglite/lv_draw_vglite_blend.h index 025d2b5cc..1aae34bd9 100644 --- a/src/draw/nxp/vglite/lv_draw_vglite_blend.h +++ b/src/draw/nxp/vglite/lv_draw_vglite_blend.h @@ -47,6 +47,21 @@ extern "C" { * DEFINES *********************/ +/** + * Enable BLIT quality degradation workaround for RT595, + * recommended for screen's dimension > 352 pixels. + */ +#define RT595_BLIT_WRKRND_ENABLED 1 + +/* Internal compound symbol */ +#if (defined(CPU_MIMXRT595SFFOB) || defined(CPU_MIMXRT595SFFOB_cm33) || \ + defined(CPU_MIMXRT595SFFOC) || defined(CPU_MIMXRT595SFFOC_cm33)) && \ + RT595_BLIT_WRKRND_ENABLED +#define VG_LITE_BLIT_SPLIT_ENABLED 1 +#else +#define VG_LITE_BLIT_SPLIT_ENABLED 0 +#endif + /********************** * TYPEDEFS **********************/ @@ -67,6 +82,7 @@ extern "C" { */ lv_res_t lv_gpu_nxp_vglite_fill(const lv_area_t * dest_area, lv_color_t color, lv_opa_t opa); +#if VG_LITE_BLIT_SPLIT_ENABLED /** * BLock Image Transfer - copy rectangular image from src_buf to dst_buf with effects. * By default, image is copied directly, with optional opacity. @@ -82,17 +98,33 @@ lv_res_t lv_gpu_nxp_vglite_fill(const lv_area_t * dest_area, lv_color_t color, l * @retval LV_RES_OK Transfer complete * @retval LV_RES_INV Error occurred (\see LV_GPU_NXP_VG_LITE_LOG_ERRORS) */ -lv_res_t lv_gpu_nxp_vglite_blit(lv_color_t * dest_buf, lv_area_t * dest_area, lv_coord_t dest_stride, - const lv_color_t * src_buf, lv_area_t * src_area, lv_coord_t src_stride, +lv_res_t lv_gpu_nxp_vglite_blit_split(lv_color_t * dest_buf, lv_area_t * dest_area, lv_coord_t dest_stride, + const lv_color_t * src_buf, lv_area_t * src_area, lv_coord_t src_stride, + lv_opa_t opa); +#else +/** + * BLock Image Transfer - copy rectangular image from src_buf to dst_buf with effects. + * By default, image is copied directly, with optional opacity. + * + * @param[in] dest_stride Stride of destination buffer in pixels + * @param[in] src_buf Source buffer + * @param[in] src_area Source area with relative coordinates of source buffer + * @param[in] src_stride Stride of source buffer in pixels + * @param[in] opa Opacity + * + * @retval LV_RES_OK Transfer complete + * @retval LV_RES_INV Error occurred (\see LV_GPU_NXP_VG_LITE_LOG_ERRORS) + */ +lv_res_t lv_gpu_nxp_vglite_blit(const lv_area_t * dest_area, + const lv_color_t * src_buf, const lv_area_t * src_area, lv_coord_t src_stride, lv_opa_t opa); /** * BLock Image Transfer - copy rectangular image from src_buf to dst_buf with transformation. * By default, image is copied directly, with optional opacity. * - * @param[in/out] dest_buf Destination buffer * @param[in] dest_area Area with relative coordinates of destination buffer - * @param[in] dest_stride Stride of destination buffer in pixels + * @param[in] clip_area Clip area with relative coordinates of destination buffer * @param[in] src_buf Source buffer * @param[in] src_area Source area with relative coordinates of source buffer * @param[in] src_stride Stride of source buffer in pixels @@ -101,10 +133,28 @@ lv_res_t lv_gpu_nxp_vglite_blit(lv_color_t * dest_buf, lv_area_t * dest_area, lv * @retval LV_RES_OK Transfer complete * @retval LV_RES_INV Error occurred (\see LV_GPU_NXP_VG_LITE_LOG_ERRORS) */ -lv_res_t lv_gpu_nxp_vglite_blit_transform(lv_color_t * dest_buf, lv_area_t * dest_area, lv_coord_t dest_stride, - const lv_color_t * src_buf, lv_area_t * src_area, lv_coord_t src_stride, +lv_res_t lv_gpu_nxp_vglite_blit_transform(const lv_area_t * dest_area, const lv_area_t * clip_area, + const lv_color_t * src_buf, const lv_area_t * src_area, lv_coord_t src_stride, const lv_draw_img_dsc_t * dsc); +#endif /*VG_LITE_BLIT_SPLIT_ENABLED*/ + +/** + * BLock Image Transfer - simple copy of rectangular image from source to destination. + * + * @param[in] dest_buf Destination buffer + * @param[in] dest_area Area with relative coordinates of destination buffer + * @param[in] dest_stride Stride of destination buffer in pixels + * @param[in] src_buf Source buffer + * @param[in] src_area Source area with relative coordinates of source buffer + * @param[in] src_stride Stride of source buffer in pixels + * + * @retval LV_RES_OK Transfer complete + * @retval LV_RES_INV Error occurred (\see LV_GPU_NXP_VG_LITE_LOG_ERRORS) + */ +lv_res_t lv_gpu_nxp_vglite_buffer_copy(lv_color_t * dest_buf, const lv_area_t * dest_area, lv_coord_t dest_stride, + const lv_color_t * src_buf, const lv_area_t * src_area, lv_coord_t src_stride); + /********************** * MACROS **********************/ diff --git a/src/draw/nxp/vglite/lv_draw_vglite_line.c b/src/draw/nxp/vglite/lv_draw_vglite_line.c index f6e1c4352..bf7bee11a 100644 --- a/src/draw/nxp/vglite/lv_draw_vglite_line.c +++ b/src/draw/nxp/vglite/lv_draw_vglite_line.c @@ -119,12 +119,16 @@ lv_res_t lv_gpu_nxp_vglite_draw_line(const lv_point_t * point1, const lv_point_t err = vg_lite_update_stroke(&path); VG_LITE_ERR_RETURN_INV(err, "Update stroke failed."); + lv_vglite_set_scissor(clip_area); + err = vg_lite_draw(vgbuf, &path, VG_LITE_FILL_NON_ZERO, &matrix, vglite_blend_mode, vgcol); VG_LITE_ERR_RETURN_INV(err, "Draw line failed."); if(lv_vglite_run() != LV_RES_OK) VG_LITE_RETURN_INV("Run failed."); + lv_vglite_disable_scissor(); + err = vg_lite_clear_path(&path); VG_LITE_ERR_RETURN_INV(err, "Clear path failed."); diff --git a/src/draw/nxp/vglite/lv_draw_vglite_rect.c b/src/draw/nxp/vglite/lv_draw_vglite_rect.c index 39ccaa481..e9db57da9 100644 --- a/src/draw/nxp/vglite/lv_draw_vglite_rect.c +++ b/src/draw/nxp/vglite/lv_draw_vglite_rect.c @@ -166,6 +166,8 @@ lv_res_t lv_gpu_nxp_vglite_draw_bg(const lv_area_t * coords, const lv_area_t * c if(lv_vglite_premult_and_swizzle(&vgcol, bg_col32, dsc->bg_opa, color_format) != LV_RES_OK) VG_LITE_RETURN_INV("Premultiplication and swizzle failed."); + lv_vglite_set_scissor(clip_area); + /*** Draw rectangle ***/ if(dsc->bg_grad.dir == (lv_grad_dir_t)LV_GRAD_DIR_NONE) { err = vg_lite_draw(vgbuf, &path, VG_LITE_FILL_EVEN_ODD, &matrix, VG_LITE_BLEND_SRC_OVER, vgcol); @@ -178,6 +180,8 @@ lv_res_t lv_gpu_nxp_vglite_draw_bg(const lv_area_t * coords, const lv_area_t * c if(lv_vglite_run() != LV_RES_OK) VG_LITE_RETURN_INV("Run failed."); + lv_vglite_disable_scissor(); + err = vg_lite_clear_path(&path); VG_LITE_ERR_RETURN_INV(err, "Clear path failed."); @@ -263,12 +267,16 @@ lv_res_t lv_gpu_nxp_vglite_draw_border_generic(const lv_area_t * coords, const l err = vg_lite_update_stroke(&path); VG_LITE_ERR_RETURN_INV(err, "Update stroke failed."); + lv_vglite_set_scissor(clip_area); + err = vg_lite_draw(vgbuf, &path, VG_LITE_FILL_NON_ZERO, &matrix, vglite_blend_mode, vgcol); VG_LITE_ERR_RETURN_INV(err, "Draw border failed."); if(lv_vglite_run() != LV_RES_OK) VG_LITE_RETURN_INV("Run failed."); + lv_vglite_disable_scissor(); + err = vg_lite_clear_path(&path); VG_LITE_ERR_RETURN_INV(err, "Clear path failed."); @@ -276,6 +284,10 @@ lv_res_t lv_gpu_nxp_vglite_draw_border_generic(const lv_area_t * coords, const l } +/********************** + * STATIC FUNCTIONS + **********************/ + static void lv_vglite_create_rect_path_data(int32_t * path_data, uint32_t * path_data_size, lv_coord_t radius, const lv_area_t * coords) @@ -444,8 +456,4 @@ static void lv_vglite_create_rect_path_data(int32_t * path_data, uint32_t * path *path_data_size = pidx * sizeof(int32_t); } -/********************** - * STATIC FUNCTIONS - **********************/ - #endif /*LV_USE_GPU_NXP_VG_LITE*/ diff --git a/src/draw/nxp/vglite/lv_vglite_buf.c b/src/draw/nxp/vglite/lv_vglite_buf.c index f6325ab2a..e1ff6a297 100644 --- a/src/draw/nxp/vglite/lv_vglite_buf.c +++ b/src/draw/nxp/vglite/lv_vglite_buf.c @@ -57,8 +57,6 @@ static inline void lv_vglite_set_dest_buf(const lv_color_t * buf, const lv_area_t * area, lv_coord_t stride); static inline void lv_vglite_set_buf_ptr(vg_lite_buffer_t * vgbuf, const lv_color_t * buf); -static inline void lv_vglite_set_buf(vg_lite_buffer_t * vgbuf, const lv_color_t * buf, - const lv_area_t * area, lv_coord_t stride); /********************** * STATIC VARIABLES @@ -106,23 +104,8 @@ void lv_vglite_set_src_buf(const lv_color_t * buf, const lv_area_t * area, lv_co lv_vglite_set_buf(&src_vgbuf, buf, area, stride); } -/********************** - * STATIC FUNCTIONS - **********************/ - -static inline void lv_vglite_set_dest_buf(const lv_color_t * buf, const lv_area_t * area, lv_coord_t stride) -{ - lv_vglite_set_buf(&dest_vgbuf, buf, area, stride); -} - -static inline void lv_vglite_set_buf_ptr(vg_lite_buffer_t * vgbuf, const lv_color_t * buf) -{ - vgbuf->memory = (void *)buf; - vgbuf->address = (uint32_t)vgbuf->memory; -} - -static inline void lv_vglite_set_buf(vg_lite_buffer_t * vgbuf, const lv_color_t * buf, - const lv_area_t * area, lv_coord_t stride) +void lv_vglite_set_buf(vg_lite_buffer_t * vgbuf, const lv_color_t * buf, + const lv_area_t * area, lv_coord_t stride) { vgbuf->format = VG_LITE_PX_FMT; vgbuf->tiled = VG_LITE_LINEAR; @@ -140,4 +123,19 @@ static inline void lv_vglite_set_buf(vg_lite_buffer_t * vgbuf, const lv_color_t vgbuf->handle = NULL; } +/********************** + * STATIC FUNCTIONS + **********************/ + +static inline void lv_vglite_set_dest_buf(const lv_color_t * buf, const lv_area_t * area, lv_coord_t stride) +{ + lv_vglite_set_buf(&dest_vgbuf, buf, area, stride); +} + +static inline void lv_vglite_set_buf_ptr(vg_lite_buffer_t * vgbuf, const lv_color_t * buf) +{ + vgbuf->memory = (void *)buf; + vgbuf->address = (uint32_t)vgbuf->memory; +} + #endif /*LV_USE_GPU_NXP_VG_LITE*/ diff --git a/src/draw/nxp/vglite/lv_vglite_buf.h b/src/draw/nxp/vglite/lv_vglite_buf.h index 9219dca05..e89af1c87 100644 --- a/src/draw/nxp/vglite/lv_vglite_buf.h +++ b/src/draw/nxp/vglite/lv_vglite_buf.h @@ -100,6 +100,17 @@ void lv_vglite_set_src_buf_ptr(const lv_color_t * buf); */ void lv_vglite_set_src_buf(const lv_color_t * buf, const lv_area_t * area, lv_coord_t stride); +/** + * Set vglite buffer. + * + * @param[in] vgbuf Address of the VGLite buffer object + * @param[in] buf Address of the memory for the VGLite buffer + * @param[in] area buffer area (for width and height) + * @param[in] stride buffer stride + */ +void lv_vglite_set_buf(vg_lite_buffer_t * vgbuf, const lv_color_t * buf, + const lv_area_t * area, lv_coord_t stride); + /********************** * MACROS **********************/ diff --git a/src/draw/nxp/vglite/lv_vglite_utils.h b/src/draw/nxp/vglite/lv_vglite_utils.h index 9ff4de02f..219396b10 100644 --- a/src/draw/nxp/vglite/lv_vglite_utils.h +++ b/src/draw/nxp/vglite/lv_vglite_utils.h @@ -71,6 +71,23 @@ extern "C" { * TYPEDEFS **********************/ +/********************** + * STATIC PROTOTYPES + **********************/ + +/** + * Enable scissor and set the clipping box. + * + * @param[in] clip_area Clip area with relative coordinates of destination buffer + */ +static inline void lv_vglite_set_scissor(const lv_area_t * clip_area); + +/** + * Disable scissor. + */ +static inline void lv_vglite_disable_scissor(void); + + /********************** * GLOBAL PROTOTYPES **********************/ @@ -157,6 +174,23 @@ lv_res_t lv_vglite_run(void); }while(0) #endif /*LV_GPU_NXP_VG_LITE_LOG_TRACES*/ +/********************** + * STATIC FUNCTIONS + **********************/ + +static inline void lv_vglite_set_scissor(const lv_area_t * clip_area) +{ + vg_lite_enable_scissor(); + vg_lite_set_scissor((int32_t)clip_area->x1, (int32_t)clip_area->y1, + (int32_t)lv_area_get_width(clip_area), + (int32_t)lv_area_get_height(clip_area)); +} + +static inline void lv_vglite_disable_scissor(void) +{ + vg_lite_disable_scissor(); +} + #endif /*LV_USE_GPU_NXP_VG_LITE*/ #ifdef __cplusplus From f909cf7919d90309874d2635cde2a57a28bb8841 Mon Sep 17 00:00:00 2001 From: Gabor Kiss-Vamosi Date: Fri, 19 May 2023 10:25:11 +0200 Subject: [PATCH 08/95] fix(chart): fix division by zero if there are no ticks --- src/extra/widgets/chart/lv_chart.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/extra/widgets/chart/lv_chart.c b/src/extra/widgets/chart/lv_chart.c index c5afb8b94..2d53adb20 100644 --- a/src/extra/widgets/chart/lv_chart.c +++ b/src/extra/widgets/chart/lv_chart.c @@ -1382,8 +1382,10 @@ static void draw_y_ticks(lv_obj_t * obj, lv_draw_ctx_t * draw_ctx, lv_chart_axis lv_chart_tick_dsc_t * t = get_tick_gsc(obj, axis); - if(t->major_cnt <= 1) return; if(!t->label_en && !t->major_len && !t->minor_len) return; + if(t->major_cnt <= 1) return; + uint32_t total_tick_num = (t->major_cnt - 1) * (t->minor_cnt); + if(total_tick_num == 0) return; uint8_t sec_axis = axis == LV_CHART_AXIS_PRIMARY_Y ? 0 : 1; @@ -1433,7 +1435,6 @@ static void draw_y_ticks(lv_obj_t * obj, lv_draw_ctx_t * draw_ctx, lv_chart_axis part_draw_dsc.line_dsc = &line_dsc; part_draw_dsc.label_dsc = &label_dsc; - uint32_t total_tick_num = (t->major_cnt - 1) * (t->minor_cnt); for(i = 0; i <= total_tick_num; i++) { /*draw a line at moving y position*/ p2.y = p1.y = y_ofs + (int32_t)((int32_t)(h - line_dsc.width) * i) / total_tick_num; @@ -1514,6 +1515,8 @@ static void draw_x_ticks(lv_obj_t * obj, lv_draw_ctx_t * draw_ctx, lv_chart_axis lv_chart_tick_dsc_t * t = get_tick_gsc(obj, axis); if(t->major_cnt <= 1) return; if(!t->label_en && !t->major_len && !t->minor_len) return; + uint32_t total_tick_num = (t->major_cnt - 1) * (t->minor_cnt); + if(total_tick_num == 0) return; uint32_t i; lv_point_t p1; @@ -1571,7 +1574,6 @@ static void draw_x_ticks(lv_obj_t * obj, lv_draw_ctx_t * draw_ctx, lv_chart_axis } p1.y = y_ofs; - uint32_t total_tick_num = (t->major_cnt - 1) * t->minor_cnt; for(i = 0; i <= total_tick_num; i++) { /*one extra loop - it may not exist in the list, empty label*/ bool major = false; if(i % t->minor_cnt == 0) major = true; From edf7e58d9b9d668020060982496847cf19179562 Mon Sep 17 00:00:00 2001 From: Lorenzo Arena Date: Wed, 24 May 2023 10:00:07 +0200 Subject: [PATCH 09/95] fix(bidi): add more Hebrew checks to RTL characters set (#4171) (#4239) --- src/misc/lv_bidi.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/misc/lv_bidi.c b/src/misc/lv_bidi.c index 3dc3ce7f1..70af1c4b4 100644 --- a/src/misc/lv_bidi.c +++ b/src/misc/lv_bidi.c @@ -376,7 +376,6 @@ static bool lv_bidi_letter_is_weak(uint32_t letter) */ static bool lv_bidi_letter_is_rtl(uint32_t letter) { - if(letter >= 0x5d0 && letter <= 0x5ea) return true; if(letter == 0x202E) return true; /*Unicode of LV_BIDI_RLO*/ /*Check for Persian and Arabic characters [https://en.wikipedia.org/wiki/Arabic_script_in_Unicode]*/ @@ -384,6 +383,10 @@ static bool lv_bidi_letter_is_rtl(uint32_t letter) if(letter >= 0xFB50 && letter <= 0xFDFF) return true; if(letter >= 0xFE70 && letter <= 0xFEFF) return true; + /*Check for Hebrew characters [https://en.wikipedia.org/wiki/Unicode_and_HTML_for_the_Hebrew_alphabet]*/ + if(letter >= 0x590 && letter <= 0x5FF) return true; + if(letter >= 0xFB1D && letter <= 0xFB4F) return true; + return false; } From 54b030aba5a161fcbd1c7350d417e91e6c9da844 Mon Sep 17 00:00:00 2001 From: Gabor Kiss-Vamosi Date: Wed, 24 May 2023 11:08:07 +0200 Subject: [PATCH 10/95] fix(arduino): fix messed up variable types --- .../arduino/LVGL_Arduino/LVGL_Arduino.ino | 45 +++++++++---------- 1 file changed, 22 insertions(+), 23 deletions(-) diff --git a/examples/arduino/LVGL_Arduino/LVGL_Arduino.ino b/examples/arduino/LVGL_Arduino/LVGL_Arduino.ino index 548b97bd0..7aeccbb9c 100644 --- a/examples/arduino/LVGL_Arduino/LVGL_Arduino.ino +++ b/examples/arduino/LVGL_Arduino/LVGL_Arduino.ino @@ -14,7 +14,7 @@ static const uint16_t screenWidth = 480; static const uint16_t screenHeight = 320; static lv_disp_draw_buf_t draw_buf; -static lv_color_t buf[ screenWidth * 10 ]; +static lv_color_t buf[ screenWidth * screenHeight / 10 ]; TFT_eSPI tft = TFT_eSPI(screenWidth, screenHeight); /* TFT instance */ @@ -28,7 +28,7 @@ void my_print(const char * buf) #endif /* Display flushing */ -void my_disp_flush( lv_disp_t *disp, const lv_area_t *area, lv_color_t *color_p ) +void my_disp_flush( lv_disp_drv_t *disp_drv, const lv_area_t *area, lv_color_t *color_p ) { uint32_t w = ( area->x2 - area->x1 + 1 ); uint32_t h = ( area->y2 - area->y1 + 1 ); @@ -38,11 +38,11 @@ void my_disp_flush( lv_disp_t *disp, const lv_area_t *area, lv_color_t *color_p tft.pushColors( ( uint16_t * )&color_p->full, w * h, true ); tft.endWrite(); - lv_disp_flush_ready( disp ); + lv_disp_flush_ready( disp_drv ); } /*Read the touchpad*/ -void my_touchpad_read( lv_indev_t * indev_driver, lv_indev_data_t * data ) +void my_touchpad_read( lv_indev_drv_t * indev_drv, lv_indev_data_t * data ) { uint16_t touchX, touchY; @@ -93,10 +93,10 @@ void setup() uint16_t calData[5] = { 275, 3620, 264, 3532, 1 }; tft.setTouch( calData ); - lv_disp_draw_buf_init( &draw_buf, buf, NULL, screenWidth * 10 ); + lv_disp_draw_buf_init( &draw_buf, buf, NULL, screenWidth * screenHeight / 10 ); /*Initialize the display*/ - static lv_disp_t disp_drv; + static lv_disp_drv_t disp_drv; lv_disp_drv_init( &disp_drv ); /*Change the following line to your display resolution*/ disp_drv.hor_res = screenWidth; @@ -106,31 +106,30 @@ void setup() lv_disp_drv_register( &disp_drv ); /*Initialize the (dummy) input device driver*/ - static lv_indev_t indev_drv; + static lv_indev_drv_t indev_drv; lv_indev_drv_init( &indev_drv ); indev_drv.type = LV_INDEV_TYPE_POINTER; indev_drv.read_cb = my_touchpad_read; lv_indev_drv_register( &indev_drv ); - -#if 0 + /* Create simple label */ lv_obj_t *label = lv_label_create( lv_scr_act() ); - lv_label_set_text( label, LVGL_Arduino.c_str() ); + lv_label_set_text( label, "Hello Ardino and LVGL!"); lv_obj_align( label, LV_ALIGN_CENTER, 0, 0 ); -#else - /* Try an example from the lv_examples Arduino library - make sure to include it as written above. - lv_example_btn_1(); - */ - - // uncomment one of these demos - lv_demo_widgets(); // OK - // lv_demo_benchmark(); // OK - // lv_demo_keypad_encoder(); // works, but I haven't an encoder - // lv_demo_music(); // NOK + + /* Try an example. See all the examples + * online: https://docs.lvgl.io/master/examples.html + * source codes: https://github.com/lvgl/lvgl/tree/e7f88efa5853128bf871dde335c0ca8da9eb7731/examples */ + //lv_example_btn_1(); + + /*Or try out a demo. Don't forget to enable the demos in lv_conf.h. E.g. LV_USE_DEMOS_WIDGETS*/ + //lv_demo_widgets(); + // lv_demo_benchmark(); + // lv_demo_keypad_encoder(); + // lv_demo_music(); // lv_demo_printer(); - // lv_demo_stress(); // seems to be OK -#endif + // lv_demo_stress(); + Serial.println( "Setup done" ); } From 4d4b286124615f58e05bccb0c743a5835ba384d0 Mon Sep 17 00:00:00 2001 From: Lorenzo Arena Date: Mon, 29 May 2023 10:43:49 +0200 Subject: [PATCH 11/95] fix(png): fix decode image size and some warnings (#4248) --- src/extra/libs/png/lv_png.c | 38 ++++++++++++++++++++++++++++--------- 1 file changed, 29 insertions(+), 9 deletions(-) diff --git a/src/extra/libs/png/lv_png.c b/src/extra/libs/png/lv_png.c index d067ef508..9228e29c8 100644 --- a/src/extra/libs/png/lv_png.c +++ b/src/extra/libs/png/lv_png.c @@ -103,13 +103,33 @@ static lv_res_t decoder_info(struct _lv_img_decoder_t * decoder, const void * sr else if(src_type == LV_IMG_SRC_VARIABLE) { const lv_img_dsc_t * img_dsc = src; const uint32_t data_size = img_dsc->data_size; + const uint32_t * size = ((uint32_t *)img_dsc->data) + 4; const uint8_t magic[] = {0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a}; if(data_size < sizeof(magic)) return LV_RES_INV; if(memcmp(magic, img_dsc->data, sizeof(magic))) return LV_RES_INV; header->always_zero = 0; - header->cf = img_dsc->header.cf; /*Save the color format*/ - header->w = img_dsc->header.w; /*Save the color width*/ - header->h = img_dsc->header.h; /*Save the color height*/ + + if(img_dsc->header.cf) { + header->cf = img_dsc->header.cf; /*Save the color format*/ + } + else { + header->cf = LV_IMG_CF_TRUE_COLOR_ALPHA; + } + + if(img_dsc->header.w) { + header->w = img_dsc->header.w; /*Save the image width*/ + } + else { + header->w = (lv_coord_t)((size[0] & 0xff000000) >> 24) + ((size[0] & 0x00ff0000) >> 8); + } + + if(img_dsc->header.h) { + header->h = img_dsc->header.h; /*Save the color height*/ + } + else { + header->h = (lv_coord_t)((size[1] & 0xff000000) >> 24) + ((size[1] & 0x00ff0000) >> 8); + } + return LV_RES_OK; } @@ -142,13 +162,13 @@ static lv_res_t decoder_open(lv_img_decoder_t * decoder, lv_img_decoder_dsc_t * error = lodepng_load_file(&png_data, &png_data_size, fn); /*Load the file*/ if(error) { - LV_LOG_WARN("error %u: %s\n", error, lodepng_error_text(error)); + LV_LOG_WARN("error %" LV_PRIu32 ": %s\n", error, lodepng_error_text(error)); return LV_RES_INV; } /*Decode the PNG image*/ - uint32_t png_width; /*Will be the width of the decoded image*/ - uint32_t png_height; /*Will be the width of the decoded image*/ + unsigned png_width; /*Will be the width of the decoded image*/ + unsigned png_height; /*Will be the width of the decoded image*/ /*Decode the loaded image in ARGB8888 */ error = lodepng_decode32(&img_data, &png_width, &png_height, png_data, png_data_size); @@ -157,7 +177,7 @@ static lv_res_t decoder_open(lv_img_decoder_t * decoder, lv_img_decoder_dsc_t * if(img_data != NULL) { lv_mem_free(img_data); } - LV_LOG_WARN("error %u: %s\n", error, lodepng_error_text(error)); + LV_LOG_WARN("error %" LV_PRIu32 ": %s\n", error, lodepng_error_text(error)); return LV_RES_INV; } @@ -170,8 +190,8 @@ static lv_res_t decoder_open(lv_img_decoder_t * decoder, lv_img_decoder_dsc_t * /*If it's a PNG file in a C array...*/ else if(dsc->src_type == LV_IMG_SRC_VARIABLE) { const lv_img_dsc_t * img_dsc = dsc->src; - uint32_t png_width; /*No used, just required by he decoder*/ - uint32_t png_height; /*No used, just required by he decoder*/ + unsigned png_width; /*No used, just required by he decoder*/ + unsigned png_height; /*No used, just required by he decoder*/ /*Decode the image in ARGB8888 */ error = lodepng_decode32(&img_data, &png_width, &png_height, img_dsc->data, img_dsc->data_size); From 1e2a540d2a01ad4e494e98603de11db2abf9b593 Mon Sep 17 00:00:00 2001 From: Gabor Kiss-Vamosi Date: Wed, 31 May 2023 22:49:35 +0200 Subject: [PATCH 12/95] fix(btnmatrix): fix using > 7 as button width --- src/widgets/lv_btnmatrix.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/widgets/lv_btnmatrix.c b/src/widgets/lv_btnmatrix.c index 92a4d2fe3..8902d8b93 100644 --- a/src/widgets/lv_btnmatrix.c +++ b/src/widgets/lv_btnmatrix.c @@ -23,7 +23,7 @@ #define MY_CLASS &lv_btnmatrix_class #define BTN_EXTRA_CLICK_AREA_MAX (LV_DPI_DEF / 10) -#define LV_BTNMATRIX_WIDTH_MASK 0x0007 +#define LV_BTNMATRIX_WIDTH_MASK 0x000F /********************** * TYPEDEFS From 3e7ff2a3ae2449f4e716d5f3e1b9f10c58d66c18 Mon Sep 17 00:00:00 2001 From: Rbb666 <64397326+Rbb666@users.noreply.github.com> Date: Thu, 8 Jun 2023 16:42:34 +0800 Subject: [PATCH 13/95] add(gpu): add renesas-ra6m3 gpu adaptation (#4270) --- Kconfig | 10 + lv_conf_template.h | 8 + src/core/lv_obj.c | 9 + src/draw/renesas/lv_draw_renesas.mk | 7 + src/draw/renesas/lv_gpu_d2_draw_label.c | 292 ++++++++++ src/draw/renesas/lv_gpu_d2_ra6m3.c | 742 ++++++++++++++++++++++++ src/draw/renesas/lv_gpu_d2_ra6m3.h | 56 ++ src/hal/lv_hal_disp.c | 8 +- src/lv_conf_internal.h | 20 + 9 files changed, 1150 insertions(+), 2 deletions(-) create mode 100644 src/draw/renesas/lv_draw_renesas.mk create mode 100644 src/draw/renesas/lv_gpu_d2_draw_label.c create mode 100644 src/draw/renesas/lv_gpu_d2_ra6m3.c create mode 100644 src/draw/renesas/lv_gpu_d2_ra6m3.h diff --git a/Kconfig b/Kconfig index da9fef970..3af38596e 100644 --- a/Kconfig +++ b/Kconfig @@ -229,6 +229,16 @@ menu "LVGL configuration" Must be defined to include path of CMSIS header of target processor e.g. "stm32f769xx.h" or "stm32f429xx.h" + config LV_USE_GPU_RA6M3_G2D + bool "Enable RA6M3 G2D GPU." + config LV_GPU_RA6M3_G2D_INCLUDE + string "include path of target processor" + depends on LV_USE_GPU_RA6M3_G2D + default "hal_data.h" + help + Must be defined to include path of target processor + e.g. "hal_data.h" + config LV_USE_GPU_SWM341_DMA2D bool "Enable SWM341 DMA2D GPU." config LV_GPU_SWM341_DMA2D_INCLUDE diff --git a/lv_conf_template.h b/lv_conf_template.h index 86ca20764..1e31047e9 100644 --- a/lv_conf_template.h +++ b/lv_conf_template.h @@ -187,6 +187,14 @@ #define LV_GPU_DMA2D_CMSIS_INCLUDE #endif +/*Enable RA6M3 G2D GPU*/ +#define LV_USE_GPU_RA6M3_G2D 0 +#if LV_USE_GPU_RA6M3_G2D + /*include path of target processor + e.g. "hal_data.h"*/ + #define LV_GPU_RA6M3_G2D_INCLUDE "hal_data.h" +#endif + /*Use SWM341's DMA2D GPU*/ #define LV_USE_GPU_SWM341_DMA2D 0 #if LV_USE_GPU_SWM341_DMA2D diff --git a/src/core/lv_obj.c b/src/core/lv_obj.c index 8890fcbe0..d7bd04545 100644 --- a/src/core/lv_obj.c +++ b/src/core/lv_obj.c @@ -30,6 +30,10 @@ #include "../draw/stm32_dma2d/lv_gpu_stm32_dma2d.h" #endif +#if LV_USE_GPU_RA6M3_G2D + #include "../draw/renesas/lv_gpu_d2_ra6m3.h" +#endif + #if LV_USE_GPU_SWM341_DMA2D #include "../draw/swm341_dma2d/lv_gpu_swm341_dma2d.h" #endif @@ -119,6 +123,11 @@ void lv_init(void) lv_draw_stm32_dma2d_init(); #endif +#if LV_USE_GPU_RA6M3_G2D + /*Initialize G2D GPU*/ + lv_draw_ra6m3_g2d_init(); +#endif + #if LV_USE_GPU_SWM341_DMA2D /*Initialize DMA2D GPU*/ lv_draw_swm341_dma2d_init(); diff --git a/src/draw/renesas/lv_draw_renesas.mk b/src/draw/renesas/lv_draw_renesas.mk new file mode 100644 index 000000000..b5e3ad100 --- /dev/null +++ b/src/draw/renesas/lv_draw_renesas.mk @@ -0,0 +1,7 @@ +CSRCS += lv_gpu_d2_ra6m3.c +CSRCS += lv_gpu_d2_draw_label.c + +DEPPATH += --dep-path $(LVGL_DIR)/$(LVGL_DIR_NAME)/src/draw/renesas +VPATH += :$(LVGL_DIR)/$(LVGL_DIR_NAME)/src/draw/renesas + +CFLAGS += "-I$(LVGL_DIR)/$(LVGL_DIR_NAME)/src/draw/renesas" diff --git a/src/draw/renesas/lv_gpu_d2_draw_label.c b/src/draw/renesas/lv_gpu_d2_draw_label.c new file mode 100644 index 000000000..b12866de5 --- /dev/null +++ b/src/draw/renesas/lv_gpu_d2_draw_label.c @@ -0,0 +1,292 @@ +/** + * @file lv_gpu_d2_draw_label.c + * + * @description HAL layer for display driver + * + */ + +/********************* + * INCLUDES + *********************/ +#include "../../draw/lv_draw_label.h" +#include "../../misc/lv_assert.h" +#include "../../core/lv_refr.h" +#include "lv_gpu_d2_ra6m3.h" + +#if LV_USE_GPU_RA6M3_G2D +#include LV_GPU_RA6M3_G2D_INCLUDE + +/********************** + * STATIC VARIABLES + **********************/ + +/********************** + * GLOBAL VARIABLES + **********************/ +extern const uint8_t _lv_bpp1_opa_table[2]; +extern const uint8_t _lv_bpp2_opa_table[4]; +extern const uint8_t _lv_bpp4_opa_table[16]; +extern const uint8_t _lv_bpp8_opa_table[256]; + +/********************** + * MACROS + **********************/ + +/********************** + * GLOBAL FUNCTIONS + **********************/ + +/********************** + * STATIC FUNCTIONS + **********************/ + +LV_ATTRIBUTE_FAST_MEM static void draw_letter_normal(lv_draw_ctx_t * draw_ctx, const lv_draw_label_dsc_t * dsc, + const lv_point_t * pos, lv_font_glyph_dsc_t * g, const uint8_t * map_p) +{ + + const uint8_t * bpp_opa_table_p; + uint32_t bitmask_init; + uint32_t bitmask; + uint32_t bpp = g->bpp; + lv_opa_t opa = dsc->opa; + uint32_t shades; + if(bpp == 3) bpp = 4; + +#if LV_USE_IMGFONT + if(bpp == LV_IMGFONT_BPP) { //is imgfont + lv_area_t fill_area; + fill_area.x1 = pos->x; + fill_area.y1 = pos->y; + fill_area.x2 = pos->x + g->box_w - 1; + fill_area.y2 = pos->y + g->box_h - 1; + lv_draw_img_dsc_t img_dsc; + lv_draw_img_dsc_init(&img_dsc); + img_dsc.angle = 0; + img_dsc.zoom = LV_IMG_ZOOM_NONE; + img_dsc.opa = dsc->opa; + img_dsc.blend_mode = dsc->blend_mode; + lv_draw_img(draw_ctx, &img_dsc, &fill_area, map_p); + return; + } +#endif + + switch(bpp) { + case 1: + bpp_opa_table_p = _lv_bpp1_opa_table; + bitmask_init = 0x80; + shades = 2; + break; + case 2: + bpp_opa_table_p = _lv_bpp2_opa_table; + bitmask_init = 0xC0; + shades = 4; + break; + case 4: + bpp_opa_table_p = _lv_bpp4_opa_table; + bitmask_init = 0xF0; + shades = 16; + break; + case 8: + bpp_opa_table_p = _lv_bpp8_opa_table; + bitmask_init = 0xFF; + shades = 256; + break; /*No opa table, pixel value will be used directly*/ + default: + LV_LOG_WARN("lv_draw_letter: invalid bpp"); + return; /*Invalid bpp. Can't render the letter*/ + } + + static lv_opa_t opa_table[256]; + static lv_opa_t prev_opa = LV_OPA_TRANSP; + static uint32_t prev_bpp = 0; + if(opa < LV_OPA_MAX) { + if(prev_opa != opa || prev_bpp != bpp) { + uint32_t i; + for(i = 0; i < shades; i++) { + opa_table[i] = bpp_opa_table_p[i] == LV_OPA_COVER ? opa : ((bpp_opa_table_p[i] * opa) >> 8); + } + } + bpp_opa_table_p = opa_table; + prev_opa = opa; + prev_bpp = bpp; + } + + int32_t col, row; + int32_t box_w = g->box_w; + int32_t box_h = g->box_h; + int32_t width_bit = box_w * bpp; /*Letter width in bits*/ + + /*Calculate the col/row start/end on the map*/ + int32_t col_start = pos->x >= draw_ctx->clip_area->x1 ? 0 : draw_ctx->clip_area->x1 - pos->x; + int32_t col_end = pos->x + box_w <= draw_ctx->clip_area->x2 ? box_w : draw_ctx->clip_area->x2 - pos->x + 1; + int32_t row_start = pos->y >= draw_ctx->clip_area->y1 ? 0 : draw_ctx->clip_area->y1 - pos->y; + int32_t row_end = pos->y + box_h <= draw_ctx->clip_area->y2 ? box_h : draw_ctx->clip_area->y2 - pos->y + 1; + + /*Move on the map too*/ + uint32_t bit_ofs = (row_start * width_bit) + (col_start * bpp); + map_p += bit_ofs >> 3; + + uint8_t letter_px; + uint32_t col_bit; + col_bit = bit_ofs & 0x7; /*"& 0x7" equals to "% 8" just faster*/ + + lv_draw_sw_blend_dsc_t blend_dsc; + lv_memset_00(&blend_dsc, sizeof(blend_dsc)); + blend_dsc.color = dsc->color; + blend_dsc.opa = LV_OPA_COVER; + blend_dsc.blend_mode = dsc->blend_mode; + + lv_coord_t hor_res = lv_disp_get_hor_res(_lv_refr_get_disp_refreshing()); + uint32_t mask_buf_size = box_w * box_h > hor_res ? hor_res : box_w * box_h; + lv_opa_t * mask_buf = lv_mem_buf_get(mask_buf_size); + blend_dsc.mask_buf = mask_buf; + int32_t mask_p = 0; + + lv_area_t fill_area; + fill_area.x1 = col_start + pos->x; + fill_area.x2 = col_end + pos->x - 1; + fill_area.y1 = row_start + pos->y; + fill_area.y2 = fill_area.y1; +#if LV_DRAW_COMPLEX + lv_coord_t fill_w = lv_area_get_width(&fill_area); + lv_area_t mask_area; + lv_area_copy(&mask_area, &fill_area); + mask_area.y2 = mask_area.y1 + row_end; + bool mask_any = lv_draw_mask_is_any(&mask_area); +#endif + blend_dsc.blend_area = &fill_area; + blend_dsc.mask_area = &fill_area; + + uint32_t col_bit_max = 8 - bpp; + uint32_t col_bit_row_ofs = (box_w + col_start - col_end) * bpp; + + for(row = row_start ; row < row_end; row++) { +#if LV_DRAW_COMPLEX + int32_t mask_p_start = mask_p; +#endif + bitmask = bitmask_init >> col_bit; + for(col = col_start; col < col_end; col++) { + /*Load the pixel's opacity into the mask*/ + letter_px = (*map_p & bitmask) >> (col_bit_max - col_bit); + if(letter_px) { + mask_buf[mask_p] = bpp_opa_table_p[letter_px]; + } + else { + mask_buf[mask_p] = 0; + } + + /*Go to the next column*/ + if(col_bit < col_bit_max) { + col_bit += bpp; + bitmask = bitmask >> bpp; + } + else { + col_bit = 0; + bitmask = bitmask_init; + map_p++; + } + + /*Next mask byte*/ + mask_p++; + } + +#if LV_DRAW_COMPLEX + /*Apply masks if any*/ + if(mask_any) { + blend_dsc.mask_res = lv_draw_mask_apply(mask_buf + mask_p_start, fill_area.x1, fill_area.y2, + fill_w); + if(blend_dsc.mask_res == LV_DRAW_MASK_RES_TRANSP) { + lv_memset_00(mask_buf + mask_p_start, fill_w); + } + } +#endif + + if((uint32_t) mask_p + (col_end - col_start) < mask_buf_size) { + fill_area.y2 ++; + } + else { + blend_dsc.mask_res = LV_DRAW_MASK_RES_CHANGED; + lv_draw_ra6m3_2d_blend(draw_ctx, &blend_dsc); + + fill_area.y1 = fill_area.y2 + 1; + fill_area.y2 = fill_area.y1; + mask_p = 0; + } + + col_bit += col_bit_row_ofs; + map_p += (col_bit >> 3); + col_bit = col_bit & 0x7; + } + + /*Flush the last part*/ + if(fill_area.y1 != fill_area.y2) { + fill_area.y2--; + blend_dsc.mask_res = LV_DRAW_MASK_RES_CHANGED; + lv_draw_ra6m3_2d_blend(draw_ctx, &blend_dsc); + mask_p = 0; + } + + lv_mem_buf_release(mask_buf); +} + +void lv_draw_gpu_letter(lv_draw_ctx_t * draw_ctx, const lv_draw_label_dsc_t * dsc, const lv_point_t * pos_p, + uint32_t letter) +{ + const lv_font_t * font_p = dsc->font; + + lv_opa_t opa = dsc->opa; + if(opa < LV_OPA_MIN) return; + if(opa > LV_OPA_MAX) opa = LV_OPA_COVER; + + if(font_p == NULL) { + LV_LOG_WARN("lv_draw_letter: font is NULL"); + return; + } + + lv_font_glyph_dsc_t g; + bool g_ret = lv_font_get_glyph_dsc(font_p, &g, letter, '\0'); + if(g_ret == false) { + /*Add warning if the dsc is not found + *but do not print warning for non printable ASCII chars (e.g. '\n')*/ + if(letter >= 0x20 && + letter != 0xf8ff && /*LV_SYMBOL_DUMMY*/ + letter != 0x200c) { /*ZERO WIDTH NON-JOINER*/ + LV_LOG_WARN("lv_draw_letter: glyph dsc. not found for U+%X", letter); + } + return; + } + + /*Don't draw anything if the character is empty. E.g. space*/ + if((g.box_h == 0) || (g.box_w == 0)) return; + + lv_point_t gpos; + gpos.x = pos_p->x + g.ofs_x; + gpos.y = pos_p->y + (dsc->font->line_height - dsc->font->base_line) - g.box_h - g.ofs_y; + + /*If the letter is completely out of mask don't draw it*/ + if(gpos.x + g.box_w < draw_ctx->clip_area->x1 || + gpos.x > draw_ctx->clip_area->x2 || + gpos.y + g.box_h < draw_ctx->clip_area->y1 || + gpos.y > draw_ctx->clip_area->y2) { + return; + } + + const uint8_t * map_p = lv_font_get_glyph_bitmap(font_p, letter); + if(map_p == NULL) { + LV_LOG_WARN("lv_draw_letter: character's bitmap not found"); + return; + } + + if(font_p->subpx) { +#if LV_DRAW_COMPLEX && LV_USE_FONT_SUBPX + draw_letter_subpx(pos_x, pos_y, &g, clip_area, map_p, color, opa, blend_mode); +#else + LV_LOG_WARN("Can't draw sub-pixel rendered letter because LV_USE_FONT_SUBPX == 0 in lv_conf.h"); +#endif + } + else { + draw_letter_normal(draw_ctx, dsc, &gpos, &g, map_p); + } +} + +#endif diff --git a/src/draw/renesas/lv_gpu_d2_ra6m3.c b/src/draw/renesas/lv_gpu_d2_ra6m3.c new file mode 100644 index 000000000..ba4c08425 --- /dev/null +++ b/src/draw/renesas/lv_gpu_d2_ra6m3.c @@ -0,0 +1,742 @@ +/** + * @file lv_gpu_d2_ra6m3.c + * + */ + +/********************* + * INCLUDES + *********************/ +#include "lv_gpu_d2_ra6m3.h" +#include "../../core/lv_refr.h" +#include + +#if LV_USE_GPU_RA6M3_G2D + +#include LV_GPU_RA6M3_G2D_INCLUDE + +/********************* + * DEFINES + *********************/ +#define LOG_ERRORS +#ifdef LOG_ERRORS + #define STRINGIFY(x) #x + #define TOSTRING(x) STRINGIFY(x) + + #define ERROR_LIST_SIZE (4) + #define D2_EXEC(a) lv_port_gpu_log_error(a, __func__, __LINE__) +#else + /* here is error logging not enabled */ + #define D2_EXEC(a) a; +#endif + +/********************** + * TYPEDEFS + **********************/ +typedef struct { + d2_s32 error; + const char * func; + int line; +} log_error_entry; + +/********************** + * STATIC PROTOTYPES + **********************/ +#ifdef LOG_ERRORS + static void lv_port_gpu_log_error(d2_s32 status, const char * func, int line); +#endif +static void invalidate_cache(void); + +void lv_draw_gpu_letter(lv_draw_ctx_t * draw_ctx, const lv_draw_label_dsc_t * dsc, const lv_point_t * pos_p, + uint32_t letter); + +/********************** + * STATIC VARIABLES + **********************/ +#ifdef LOG_ERRORS + static log_error_entry log_error_list[ERROR_LIST_SIZE]; + static int error_list_index; + static int error_count; +#endif + +static d2_device * _d2_handle; +static d2_renderbuffer * renderbuffer; + +static d2_s32 src_cf_val, dst_cf_val; +static lv_draw_img_dsc_t img_dsc; +static bool color_key_enabled, alpha_enabled, blend_enabled, colorize_enabled; + +/********************** + * STATIC FUNCTIONS + **********************/ +static d2_s32 lv_port_gpu_cf_lv_to_d2(lv_img_cf_t cf) +{ + d2_s32 d2_cf; + +#if (DLG_LVGL_CF == 1) + switch(cf & ~(1 << 5)) { +#else + switch(cf) { +#endif /* (DLG_LVGL_CF == 1) */ + case LV_IMG_CF_TRUE_COLOR: + d2_cf = d2_mode_rgb565; + break; + case LV_IMG_CF_TRUE_COLOR_CHROMA_KEYED: + d2_cf = d2_mode_rgb565; + break; + case LV_IMG_CF_ALPHA_1BIT: + d2_cf = d2_mode_alpha1; + break; + case LV_IMG_CF_ALPHA_2BIT: + d2_cf = d2_mode_alpha2; + break; + case LV_IMG_CF_ALPHA_4BIT: + d2_cf = d2_mode_alpha4; + break; + case LV_IMG_CF_ALPHA_8BIT: + d2_cf = d2_mode_alpha8; + break; + case LV_IMG_CF_INDEXED_1BIT: + d2_cf = d2_mode_i1 | d2_mode_clut; + break; + case LV_IMG_CF_INDEXED_2BIT: + d2_cf = d2_mode_i2 | d2_mode_clut; + break; + case LV_IMG_CF_INDEXED_4BIT: + d2_cf = d2_mode_i4 | d2_mode_clut; + break; + case LV_IMG_CF_INDEXED_8BIT: + d2_cf = d2_mode_i8 | d2_mode_clut; + break; +#if (DLG_LVGL_CF == 1) + case LV_IMG_CF_RGB565: + d2_cf = d2_mode_rgb565; + break; + case LV_IMG_CF_RGB888: + d2_cf = d2_mode_rgb888; + break; + case LV_IMG_CF_RGBA8888: + d2_cf = d2_mode_rgba8888; + break; +#endif /* DLG_LVGL_CF */ + default: + return -1; + } + +#if (DLG_LVGL_CF == 1) + return d2_cf | (cf & (1 << 5) ? d2_mode_rle : 0); +#else + return d2_cf; +#endif /* (DLG_LVGL_CF == 1) */ +} + +static bool lv_port_gpu_cf_fb_valid(d2_s32 cf) +{ + if((cf & (d2_mode_rle | d2_mode_clut)) || cf < 0) { + return false; + } + + switch(cf) { + case d2_mode_alpha8: + case d2_mode_rgb565: + case d2_mode_argb8888: + case d2_mode_argb4444: + case d2_mode_rgba8888: + case d2_mode_rgba4444: + return true; + default: + return false; + } +} + +static bool lv_port_gpu_cf_has_alpha(d2_s32 cf) +{ + switch(cf & ~(d2_mode_clut | d2_mode_rle)) { + case d2_mode_argb8888: + case d2_mode_rgba8888: + case d2_mode_argb4444: + case d2_mode_rgba4444: + case d2_mode_argb1555: + case d2_mode_rgba5551: + case d2_mode_ai44: + case d2_mode_i8: + case d2_mode_i4: + case d2_mode_i2: + case d2_mode_i1: + case d2_mode_alpha8: + case d2_mode_alpha4: + case d2_mode_alpha2: + case d2_mode_alpha1: + return true; + default: + return false; + } +} + +static bool lv_port_gpu_cf_is_alpha(d2_s32 cf) +{ + switch(cf & ~d2_mode_rle) { + case d2_mode_alpha8: + case d2_mode_alpha4: + case d2_mode_alpha2: + case d2_mode_alpha1: + return true; + default: + return false; + } +} + +static d2_color lv_port_gpu_color_lv_to_d2(lv_color_t color) +{ + uint8_t alpha, red, green, blue; + + alpha = 0xFF; + red = color.ch.red << 3 | color.ch.red >> 2; + green = color.ch.green << 2 | color.ch.green >> 4; + blue = color.ch.blue << 3 | color.ch.blue >> 2; + + return (alpha) << 24UL + | (red) << 16UL + | (green) << 8UL + | (blue) << 0UL; +} + +static void lv_port_gpu_get_recolor_consts(d2_color * cl, d2_color * ch) +{ + d2_color c = lv_port_gpu_color_lv_to_d2(img_dsc.recolor); + d2_alpha r, g, b, opa = img_dsc.recolor_opa > LV_OPA_MAX ? LV_OPA_COVER : img_dsc.recolor_opa; + + r = ((uint32_t)((uint8_t)(c >> 16UL)) * opa) / 255; + g = ((uint32_t)((uint8_t)(c >> 8UL)) * opa) / 255; + b = ((uint32_t)((uint8_t)(c >> 0UL)) * opa) / 255; + *cl = r << 16UL | g << 8UL | b << 0UL; + + r += 255 - opa; + g += 255 - opa; + b += 255 - opa; + *ch = r << 16UL | g << 8UL | b << 0UL; +} + +static int lv_port_gpu_handle_indexed_color(const lv_color_t ** src, const d2_color ** clut, d2_s32 cf) +{ + int clut_len = 0; + + if(cf & d2_mode_clut) { + /* Calculate CLUT length in entries */ + switch(cf & ~(d2_mode_clut | d2_mode_rle)) { + case d2_mode_i1: + clut_len = 2; + break; + case d2_mode_i2: + clut_len = 4; + break; + case d2_mode_i4: + clut_len = 16; + break; + case d2_mode_i8: + clut_len = 256; + break; + case d2_mode_ai44: + clut_len = 16; + break; + default: + return 0; + } + + *clut = (const d2_color *)*src; + *src = (const lv_color_t *)((const uint32_t *)*src + clut_len); + } + return clut_len; +} + +static int lv_port_gpu_cf_bpp(d2_s32 cf) +{ + switch(cf & ~(d2_mode_clut | d2_mode_rle)) { + case d2_mode_argb8888: + return 32; + case d2_mode_rgba8888: + return 32; + case d2_mode_rgb888: + return 32; + case d2_mode_argb4444: + return 16; + case d2_mode_rgba4444: + return 16; + case d2_mode_argb1555: + return 16; + case d2_mode_rgba5551: + return 16; + case d2_mode_rgb565: + return 16; + case d2_mode_ai44: + return 8; + case d2_mode_i8: + return 8; + case d2_mode_i4: + return 4; + case d2_mode_i2: + return 2; + case d2_mode_i1: + return 1; + case d2_mode_alpha8: + return 8; + case d2_mode_alpha4: + return 4; + case d2_mode_alpha2: + return 2; + case d2_mode_alpha1: + return 1; + default: + return 0; + } +} + +static d2_s32 lv_port_gpu_cf_get_default(void) +{ + return d2_mode_rgb565; +} + +static void lv_port_gpu_config_blit_clear(void) +{ + alpha_enabled = false; + color_key_enabled = false; + blend_enabled = true; + colorize_enabled = false; + + lv_draw_img_dsc_init(&img_dsc); + + src_cf_val = lv_port_gpu_cf_get_default(); + dst_cf_val = lv_port_gpu_cf_get_default(); +} + +void lv_port_gpu_init(void) +{ + lv_port_gpu_config_blit_clear(); +} + +static void lv_port_gpu_rotate_point(int * x, int * y, float cos_angle, float sin_angle, int pivot_x, int pivot_y) +{ + float fx, fy; + + *x -= pivot_x; + *y -= pivot_y; + + fx = ((float) * x) / 16.0f; + fy = ((float) * y) / 16.0f; + + *x = (int)(((fx * cos_angle) - (fy * sin_angle)) * 16.0f); + *y = (int)(((fx * sin_angle) + (fy * cos_angle)) * 16.0f); + + *x += pivot_x; + *y += pivot_y; +} + +void lv_draw_ra6m3_g2d_init(void) +{ + if(_d2_handle != NULL) { + return; + } + + _d2_handle = d2_opendevice(0); + + if(_d2_handle == NULL) + return; + + /* set blocksize for default displaylist */ + if(d2_setdlistblocksize(_d2_handle, 25) != D2_OK) { + LV_LOG_ERROR("Could NOT d2_setdlistblocksize\n"); + d2_closedevice(_d2_handle); + + return; + } + + /* bind the hardware */ + if(d2_inithw(_d2_handle, 0) != D2_OK) { + LV_LOG_ERROR("Could NOT d2_inithw\n"); + d2_closedevice(_d2_handle); + + return; + } + + renderbuffer = d2_newrenderbuffer(_d2_handle, 20, 20); + if(!renderbuffer) { + LV_LOG_ERROR("NO renderbuffer\n"); + d2_closedevice(_d2_handle); + + return; + } +} + +static void lv_port_gpu_hw_deinit(void) +{ + if(_d2_handle == NULL) + return; + + D2_EXEC(d2_freerenderbuffer(_d2_handle, renderbuffer)); + D2_EXEC(d2_closedevice(_d2_handle)); + + renderbuffer = NULL; + _d2_handle = NULL; +} + +void lv_port_gpu_flush(void) +{ + lv_port_gpu_hw_deinit(); +} + +static void lv_port_gpu_start_render(void) +{ + D2_EXEC(d2_selectrenderbuffer(_d2_handle, renderbuffer)); +} + +static void lv_port_gpu_complete_render(void) +{ + D2_EXEC(d2_flushframe(_d2_handle)); +} + +void lv_port_gpu_wait(lv_draw_ctx_t * draw_ctx) +{ + lv_port_gpu_complete_render(); + + lv_draw_sw_wait_for_finish(draw_ctx); +} + +static void lv_port_gpu_execute_render(void) +{ + if(_d2_handle) { + D2_EXEC(d2_executerenderbuffer(_d2_handle, renderbuffer, 0)); + } +} + +void lv_port_gpu_blit(int32_t x, int32_t y, lv_color_t * dst, const lv_area_t * fill_area) +{ + uint32_t ModeSrc; + + ModeSrc = d2_mode_rgb565; + + lv_coord_t dst_width, dst_hight; + dst_width = lv_area_get_width(fill_area); + dst_hight = lv_area_get_height(fill_area); + + d2_selectrenderbuffer(_d2_handle, renderbuffer); + + // Generate render operations + d2_framebuffer(_d2_handle, (uint16_t *)&fb_background[0], LV_HOR_RES_MAX, LV_HOR_RES_MAX, + MAX(fill_area->y2 + 1, 2), lv_port_gpu_cf_get_default()); + + d2_cliprect(_d2_handle, 0, 0, LV_HOR_RES_MAX - 1, fill_area->y2); + d2_setblitsrc(_d2_handle, (void *) dst, dst_width, dst_width, dst_hight, ModeSrc); + d2_blitcopy(_d2_handle, dst_width, dst_hight, 0, 0, D2_FIX4(dst_width), D2_FIX4(dst_hight), + D2_FIX4(fill_area->x1), D2_FIX4(fill_area->y1), 0); + + // Execute render operations + d2_executerenderbuffer(_d2_handle, renderbuffer, 0); +} + +void lv_port_gpu_fill(lv_color_t * dest_buf, const lv_area_t * fill_area, lv_coord_t dst_width, + lv_color_t color, lv_opa_t opa) +{ + invalidate_cache(); + + lv_port_gpu_start_render(); + + D2_EXEC(d2_framebuffer(_d2_handle, d1_maptovidmem(_d2_handle, dest_buf), MAX(dst_width, 2), MAX(dst_width, 2), + MAX(fill_area->y2 + 1, 2), lv_port_gpu_cf_get_default())); + + D2_EXEC(d2_cliprect(_d2_handle, 0, 0, dst_width - 1, fill_area->y2)); + D2_EXEC(d2_setalpha(_d2_handle, opa > LV_OPA_MAX ? 0xFF : opa)); + D2_EXEC(d2_setcolor(_d2_handle, 0, lv_port_gpu_color_lv_to_d2(color))); + D2_EXEC(d2_renderbox(_d2_handle, D2_FIX4(fill_area->x1), D2_FIX4(fill_area->y1), + D2_FIX4(lv_area_get_width(fill_area)), D2_FIX4(lv_area_get_height(fill_area)))); + + lv_port_gpu_execute_render(); +} + +bool lv_port_gpu_config_blit(const lv_draw_img_dsc_t * draw_dsc, lv_img_cf_t dst_cf, + lv_img_cf_t src_cf, bool alpha_en, bool color_key_en, bool blend_en, bool colorize_en) +{ + d2_s32 d2_src_cf, d2_dst_cf; + + if(blend_en && draw_dsc->blend_mode != LV_BLEND_MODE_NORMAL + && draw_dsc->blend_mode != LV_BLEND_MODE_ADDITIVE) { + return false; + } + + d2_src_cf = lv_port_gpu_cf_lv_to_d2(src_cf); + d2_dst_cf = lv_port_gpu_cf_lv_to_d2(dst_cf); + if(d2_src_cf < 0 || !lv_port_gpu_cf_fb_valid(d2_dst_cf)) { + return false; + } + src_cf_val = d2_src_cf; + dst_cf_val = d2_dst_cf; + + img_dsc = *draw_dsc; + + /* Disable alpha if alpha channel does not exist */ + alpha_enabled = lv_port_gpu_cf_has_alpha(src_cf_val) ? alpha_en : 0; + color_key_enabled = color_key_en; + blend_enabled = blend_en; + colorize_enabled = colorize_en | lv_port_gpu_cf_is_alpha(src_cf_val); + + return true; +} + +static void lv_port_gpu_blit_internal(const lv_area_t * dest_area, const lv_color_t * src_buf, + const lv_area_t * src_area, d2_u32 flags) +{ + const lv_area_t * img_area = src_area; + lv_area_t img_area_scaled; + lv_coord_t w, h, img_w, img_h; + d2_s32 pitch; + int bpp = lv_port_gpu_cf_bpp(src_cf_val); + + D2_EXEC(d2_cliprect(_d2_handle, dest_area->x1, dest_area->y1, dest_area->x2, dest_area->y2)); + + pitch = w = lv_area_get_width(src_area); + h = lv_area_get_height(src_area); + + if(img_dsc.zoom != LV_IMG_ZOOM_NONE) { + img_area_scaled.x1 = src_area->x1 + ((((int32_t)0 - img_dsc.pivot.x) * img_dsc.zoom) >> 8) + img_dsc.pivot.x; + img_area_scaled.x2 = src_area->x1 + ((((int32_t)w - img_dsc.pivot.x) * img_dsc.zoom) >> 8) + img_dsc.pivot.x; + img_area_scaled.y1 = src_area->y1 + ((((int32_t)0 - img_dsc.pivot.y) * img_dsc.zoom) >> 8) + img_dsc.pivot.y; + img_area_scaled.y2 = src_area->y1 + ((((int32_t)h - img_dsc.pivot.y) * img_dsc.zoom) >> 8) + img_dsc.pivot.y; + img_area = &img_area_scaled; + } + + img_w = lv_area_get_width(img_area); + img_h = lv_area_get_height(img_area); + + if(0 < bpp && bpp < 8) { + pitch = (w + (8 - bpp)) & (~(8 - bpp)); + } + + if(img_dsc.angle == 0) { + D2_EXEC(d2_setblitsrc(_d2_handle, (void *) src_buf, pitch, w, h, src_cf_val)); + + D2_EXEC(d2_blitcopy(_d2_handle, w, h, 0, 0, + D2_FIX4(img_w), D2_FIX4(img_h), D2_FIX4(img_area->x1), D2_FIX4(img_area->y1), flags)); + } + else { + int x, y, x1, y1, x2, y2, x3, y3, x4, y4, dxu, dxv, dyu, dyv, xx, xy, yx, yy; + int pivot_scaled_x, pivot_scaled_y; + int tex_offset = (flags & d2_bf_filter) ? -32767 : 0; + d2_u8 amode, cmode = d2_to_copy; + float angle = ((float)img_dsc.angle / 10) * M_PI / 180; + float cos_angle = cosf(angle); + float sin_angle = sinf(angle); + d2_u8 fillmode_backup; + + /* setup texture params */ + fillmode_backup = d2_getfillmode(_d2_handle); + D2_EXEC(d2_setfillmode(_d2_handle, d2_fm_texture)); + D2_EXEC(d2_settexture(_d2_handle, (void *) src_buf, pitch, w, h, src_cf_val)); + D2_EXEC(d2_settexturemode(_d2_handle, flags & (d2_bf_filter | d2_bf_wrap))); + amode = flags & d2_bf_usealpha ? d2_to_copy : d2_to_one; + cmode = flags & d2_bf_colorize2 ? d2_to_blend : d2_to_copy; + D2_EXEC(d2_settextureoperation(_d2_handle, amode, cmode, cmode, cmode)); + if(flags & d2_bf_colorize2) { + d2_color cl = d2_getcolor(_d2_handle, 0), ch = d2_getcolor(_d2_handle, 1); + D2_EXEC(d2_settexopparam(_d2_handle, d2_cc_red, (uint8_t)(cl >> 16UL), + (uint8_t)(ch >> 16UL))); + D2_EXEC(d2_settexopparam(_d2_handle, d2_cc_green, (uint8_t)(cl >> 8UL), + (uint8_t)(ch >> 8UL))); + D2_EXEC(d2_settexopparam(_d2_handle, d2_cc_blue, (uint8_t)(cl >> 0UL), + (uint8_t)(ch >> 0UL))); + } + + x = D2_FIX4(img_area->x1); + y = D2_FIX4(img_area->y1); + + /* define quad points */ + x1 = D2_FIX4(0); + y1 = D2_FIX4(0); + x2 = D2_FIX4(img_w); + y2 = D2_FIX4(0); + x3 = D2_FIX4(img_w); + y3 = D2_FIX4(img_h); + x4 = D2_FIX4(0); + y4 = D2_FIX4(img_h); + + /* rotate points for quad */ + pivot_scaled_x = (img_dsc.pivot.x * img_dsc.zoom) >> 4; + pivot_scaled_y = (img_dsc.pivot.y * img_dsc.zoom) >> 4; + + lv_port_gpu_rotate_point(&x1, &y1, cos_angle, sin_angle, pivot_scaled_x, pivot_scaled_y); + lv_port_gpu_rotate_point(&x2, &y2, cos_angle, sin_angle, pivot_scaled_x, pivot_scaled_y); + lv_port_gpu_rotate_point(&x3, &y3, cos_angle, sin_angle, pivot_scaled_x, pivot_scaled_y); + lv_port_gpu_rotate_point(&x4, &y4, cos_angle, sin_angle, pivot_scaled_x, pivot_scaled_y); + + /* compute texture increments */ + xx = (int)(cos_angle * 65536.0f); + xy = (int)(sin_angle * 65536.0f); + yx = (int)(-sin_angle * 65536.0f); + yy = (int)(cos_angle * 65536.0f); + dxu = ((D2_FIX16(w) / D2_FIX4(img_w)) * xx) >> 12; + dxv = ((D2_FIX16(w) / D2_FIX4(img_w)) * xy) >> 12; + dyu = ((D2_FIX16(h) / D2_FIX4(img_h)) * yx) >> 12; + dyv = ((D2_FIX16(h) / D2_FIX4(img_h)) * yy) >> 12; + + /* map texture exactly to rotated quad, so texel center is always (0/0) top-left */ + D2_EXEC(d2_settexelcenter(_d2_handle, 0, 0)); + D2_EXEC(d2_settexturemapping(_d2_handle, (d2_point)(x + x1), (d2_point)(y + y1), + tex_offset, tex_offset, dxu, dxv, dyu, dyv)); + + int minx = MAX(dest_area->x1, D2_INT4(x + MIN(x1, MIN(x2, MIN(x3, x4))))); + int maxx = MIN(dest_area->x2, D2_INT4(x + MAX(x1, MAX(x2, MAX(x3, x4))))); + int slice = (flags & d2_bf_filter) ? 6 : 8; + + /* Perform render operation in slices to acheive better performance */ + for(int posx = minx; posx < maxx; posx += slice) { + D2_EXEC(d2_cliprect(_d2_handle, posx, dest_area->y1, MIN(posx + slice - 1, maxx), dest_area->y2)); + D2_EXEC(d2_renderquad(_d2_handle, (d2_point)(x + x1), (d2_point)(y + y1), + (d2_point)(x + x2), (d2_point)(y + y2), + (d2_point)(x + x3), (d2_point)(y + y3), + (d2_point)(x + x4), (d2_point)(y + y4), 0)); + } + D2_EXEC(d2_setfillmode(_d2_handle, fillmode_backup)); + } +} + +void lv_port_ra_gpu_blit(lv_color_t * dst, const lv_area_t * dst_area, lv_coord_t dest_stride, + const lv_color_t * src, const lv_area_t * src_area, lv_opa_t opa) +{ + d2_u32 flags = 0; + const d2_color * clut = NULL; + int clut_len = 0; + + invalidate_cache(); + + clut_len = lv_port_gpu_handle_indexed_color(&src, &clut, src_cf_val); + + lv_port_gpu_start_render(); + + D2_EXEC(d2_framebuffer(_d2_handle, d1_maptovidmem(_d2_handle, dst), MAX(dest_stride, 2), + MAX(dst_area->x2 + 1, 2), MAX(dst_area->y2 + 1, 2), dst_cf_val)); + + flags |= alpha_enabled ? d2_bf_usealpha : 0; + + D2_EXEC(d2_setalpha(_d2_handle, opa > LV_OPA_MAX ? LV_OPA_COVER : opa)); + + if(clut) { + D2_EXEC(d2_writetexclut_direct(_d2_handle, clut, 0, clut_len)); + } + + flags |= color_key_enabled ? d2_bf_usealpha : 0; + flags |= (colorize_enabled || img_dsc.recolor_opa != LV_OPA_TRANSP) ? d2_bf_colorize2 : 0; + if(colorize_enabled) { + D2_EXEC(d2_setcolor(_d2_handle, 0, lv_port_gpu_color_lv_to_d2(img_dsc.recolor))); + D2_EXEC(d2_setcolor(_d2_handle, 1, lv_port_gpu_color_lv_to_d2(img_dsc.recolor))); + } + else if(img_dsc.recolor_opa != LV_OPA_TRANSP) { + d2_color cl = 0, ch = 0; + lv_port_gpu_get_recolor_consts(&cl, &ch); + D2_EXEC(d2_setcolor(_d2_handle, 0, cl)); + D2_EXEC(d2_setcolor(_d2_handle, 1, ch)); + } + + flags |= ((img_dsc.angle || img_dsc.zoom != LV_IMG_ZOOM_NONE) && img_dsc.antialias) ? d2_bf_filter : 0; + + if(blend_enabled) { + D2_EXEC(d2_setblendmode(_d2_handle, d2_bm_alpha, + img_dsc.blend_mode != LV_BLEND_MODE_NORMAL ? d2_bm_one : d2_bm_one_minus_alpha)); + D2_EXEC(d2_setalphablendmode(_d2_handle, d2_bm_one, d2_bm_one_minus_alpha)); + } + else { + D2_EXEC(d2_setblendmode(_d2_handle, d2_bm_one, d2_bm_zero)); + D2_EXEC(d2_setalphablendmode(_d2_handle, d2_bm_one, d2_bm_zero)); + } + + lv_port_gpu_blit_internal(dst_area, src, src_area, flags); + + lv_port_gpu_execute_render(); +} + +void lv_draw_ra6m3_2d_blend(lv_draw_ctx_t * draw_ctx, const lv_draw_sw_blend_dsc_t * dsc) +{ + lv_area_t blend_area; + if(!_lv_area_intersect(&blend_area, dsc->blend_area, draw_ctx->clip_area)) return; + + bool done = false; + + if(dsc->mask_buf == NULL && dsc->blend_mode == LV_BLEND_MODE_NORMAL && lv_area_get_size(&blend_area) > 100) { + lv_coord_t dest_stride = lv_area_get_width(draw_ctx->buf_area); + + lv_color_t * dest_buf = draw_ctx->buf; + + const lv_color_t * src_buf = dsc->src_buf; + if(src_buf) { + lv_draw_sw_blend_basic(draw_ctx, dsc); + + lv_area_t src_area; + src_area.x1 = blend_area.x1 - (dsc->blend_area->x1 - draw_ctx->buf_area->x1); + src_area.y1 = blend_area.y1 - (dsc->blend_area->y1 - draw_ctx->buf_area->y1); + src_area.x2 = src_area.x1 + lv_area_get_width(dsc->blend_area) - 1; + src_area.y2 = src_area.y1 + lv_area_get_height(dsc->blend_area) - 1; + + lv_port_ra_gpu_blit(dest_buf, &blend_area, dest_stride, src_buf, &src_area, dsc->opa); + done = true; + } + else if(dsc->opa >= LV_OPA_MAX) { + lv_area_move(&blend_area, -draw_ctx->buf_area->x1, -draw_ctx->buf_area->y1); + lv_port_gpu_fill(dest_buf, &blend_area, dest_stride, dsc->color, dsc->opa); + done = true; + } + } + + if(!done) lv_draw_sw_blend_basic(draw_ctx, dsc); +} + +static void lv_port_gpu_img_decoded(lv_draw_ctx_t * draw_ctx, const lv_draw_img_dsc_t * dsc, + const lv_area_t * coords, const uint8_t * map_p, lv_img_cf_t color_format) +{ + /*TODO basic ARGB8888 image can be handles here*/ + + lv_draw_sw_img_decoded(draw_ctx, dsc, coords, map_p, color_format); +} + +void lv_draw_ra6m3_2d_ctx_init(lv_disp_drv_t * drv, lv_draw_ctx_t * draw_ctx) +{ + lv_draw_sw_init_ctx(drv, draw_ctx); + + lv_draw_ra6m3_dma2d_ctx_t * ra_2d_draw_ctx = (lv_draw_sw_ctx_t *)draw_ctx; + + ra_2d_draw_ctx->blend = lv_draw_ra6m3_2d_blend; + ra_2d_draw_ctx->base_draw.draw_img_decoded = lv_port_gpu_img_decoded; + ra_2d_draw_ctx->base_draw.wait_for_finish = lv_port_gpu_wait; + ra_2d_draw_ctx->base_draw.draw_letter = lv_draw_gpu_letter; + //ra_2d_draw_ctx->base_draw.buffer_copy = lv_draw_ra6m3_2d_buffer_copy; +} + +void lv_draw_stm32_dma2d_ctx_deinit(lv_disp_t * disp, lv_draw_ctx_t * draw_ctx) +{ + LV_UNUSED(disp); + LV_UNUSED(draw_ctx); +} + +static void invalidate_cache(void) +{ + lv_disp_t * disp = _lv_refr_get_disp_refreshing(); + if(disp->driver->clean_dcache_cb) disp->driver->clean_dcache_cb(disp->driver); +} + +#ifdef LOG_ERRORS +static void lv_port_gpu_log_error(d2_s32 status, const char * func, int line) +{ + if(status) { + log_error_list[error_list_index].error = status; + log_error_list[error_list_index].func = func; + log_error_list[error_list_index].line = line; + LV_LOG_ERROR("%s\r\n", d2_geterrorstring(_d2_handle)); + LV_LOG_ERROR("%d:\t%d - %s : %d\r\n", error_count, + log_error_list[error_list_index].error, + log_error_list[error_list_index].func, + log_error_list[error_list_index].line); + + error_count++; + error_list_index++; + if(error_list_index >= ERROR_LIST_SIZE) { + error_list_index = 0; + } + } +} +#endif +#endif /* LV_USE_GPU_RA6M3_G2D */ diff --git a/src/draw/renesas/lv_gpu_d2_ra6m3.h b/src/draw/renesas/lv_gpu_d2_ra6m3.h new file mode 100644 index 000000000..5d37ce45e --- /dev/null +++ b/src/draw/renesas/lv_gpu_d2_ra6m3.h @@ -0,0 +1,56 @@ +/** + * @file lv_gpu_d2_ra6m3.h + * + */ +#ifndef LV_GPU_D2_RA6M3_H +#define LV_GPU_D2_RA6M3_H + +#ifdef __cplusplus +extern "C" { +#endif + +/********************* + * INCLUDES + *********************/ +#include "../../misc/lv_color.h" + +#if LV_USE_GPU_RA6M3_G2D +#include "../../core/lv_disp.h" +#include "../sw/lv_draw_sw.h" + +/********************** + * DEFINE + **********************/ +#define MIN(A, B) ((A) < (B) ? (A) : (B)) +#define MAX(A, B) ((A) > (B) ? (A) : (B)) +#define M_PI 3.1415926 + +/********************** + * TYPEDEFS + **********************/ +typedef lv_draw_sw_ctx_t lv_draw_ra6m3_dma2d_ctx_t; + +/********************** + * GLOBAL PROTOTYPES + **********************/ +void lv_draw_ra6m3_g2d_init(void); + +void lv_port_gpu_init(void); + +void lv_port_gpu_flush(void); + +void lv_port_gpu_blit(int32_t x, int32_t y, lv_color_t * dst, const lv_area_t * fill_area); + +void lv_draw_ra6m3_2d_blend(lv_draw_ctx_t * draw_ctx, const lv_draw_sw_blend_dsc_t * dsc); + +void lv_draw_ra6m3_2d_ctx_init(lv_disp_drv_t * drv, lv_draw_ctx_t * draw_ctx); + +void lv_draw_ra6m3_2d_ctx_deinit(lv_disp_drv_t * disp, lv_draw_ctx_t * draw_ctx); + +#endif /*LV_USE_GPU_GD32_IPA*/ + +#ifdef __cplusplus +} /*extern "C"*/ +#endif + +#endif diff --git a/src/hal/lv_hal_disp.c b/src/hal/lv_hal_disp.c index 10640a28a..0cebc3354 100644 --- a/src/hal/lv_hal_disp.c +++ b/src/hal/lv_hal_disp.c @@ -25,6 +25,7 @@ #include "../draw/arm2d/lv_gpu_arm2d.h" #include "../draw/nxp/vglite/lv_draw_vglite.h" #include "../draw/nxp/pxp/lv_draw_pxp.h" +#include "../draw/renesas/lv_gpu_d2_ra6m3.h" #if LV_USE_THEME_DEFAULT #include "../extra/themes/default/lv_theme_default.h" @@ -95,8 +96,11 @@ void lv_disp_drv_init(lv_disp_drv_t * driver) driver->dpi = LV_DPI_DEF; driver->color_chroma_key = LV_COLOR_CHROMA_KEY; - -#if LV_USE_GPU_STM32_DMA2D +#if LV_USE_GPU_RA6M3_G2D + driver->draw_ctx_init = lv_draw_ra6m3_2d_ctx_init; + driver->draw_ctx_deinit = lv_draw_ra6m3_2d_ctx_init; + driver->draw_ctx_size = sizeof(lv_draw_ra6m3_dma2d_ctx_t); +#elif LV_USE_GPU_STM32_DMA2D driver->draw_ctx_init = lv_draw_stm32_dma2d_ctx_init; driver->draw_ctx_deinit = lv_draw_stm32_dma2d_ctx_init; driver->draw_ctx_size = sizeof(lv_draw_stm32_dma2d_ctx_t); diff --git a/src/lv_conf_internal.h b/src/lv_conf_internal.h index 4cd3895f2..a625ba960 100644 --- a/src/lv_conf_internal.h +++ b/src/lv_conf_internal.h @@ -445,6 +445,26 @@ #endif #endif +/*Enable RA6M3 G2D GPU*/ +#ifndef LV_USE_GPU_RA6M3_G2D + #ifdef CONFIG_LV_USE_GPU_RA6M3_G2D + #define LV_USE_GPU_RA6M3_G2D CONFIG_LV_USE_GPU_RA6M3_G2D + #else + #define LV_USE_GPU_RA6M3_G2D 0 + #endif +#endif +#if LV_USE_GPU_RA6M3_G2D + /*include path of target processor + e.g. "hal_data.h"*/ + #ifndef LV_GPU_RA6M3_G2D_INCLUDE + #ifdef CONFIG_LV_GPU_RA6M3_G2D_INCLUDE + #define LV_GPU_RA6M3_G2D_INCLUDE CONFIG_LV_GPU_RA6M3_G2D_INCLUDE + #else + #define LV_GPU_RA6M3_G2D_INCLUDE "hal_data.h" + #endif + #endif +#endif + /*Use SWM341's DMA2D GPU*/ #ifndef LV_USE_GPU_SWM341_DMA2D #ifdef CONFIG_LV_USE_GPU_SWM341_DMA2D From a7eb4dd0e37b6d8c86d5b9856dd37c2d379f49ad Mon Sep 17 00:00:00 2001 From: jacquesdmernok <77278820+jacquesdmernok@users.noreply.github.com> Date: Mon, 12 Jun 2023 12:12:12 +0200 Subject: [PATCH 14/95] fix(stm32): static function prototypes moved from .h to .c (#4276) --- src/draw/stm32_dma2d/lv_gpu_stm32_dma2d.c | 42 ++++++++++++++++++++--- src/draw/stm32_dma2d/lv_gpu_stm32_dma2d.h | 34 ------------------ 2 files changed, 38 insertions(+), 38 deletions(-) diff --git a/src/draw/stm32_dma2d/lv_gpu_stm32_dma2d.c b/src/draw/stm32_dma2d/lv_gpu_stm32_dma2d.c index 908909df8..715cdd2c0 100644 --- a/src/draw/stm32_dma2d/lv_gpu_stm32_dma2d.c +++ b/src/draw/stm32_dma2d/lv_gpu_stm32_dma2d.c @@ -34,6 +34,41 @@ #error "Cannot use DMA2D with LV_COLOR_DEPTH other than 16 or 32" #endif +/********************** + * STATIC PROTOTYPES + **********************/ +static void lv_draw_stm32_dma2d_blend(lv_draw_ctx_t * draw_ctx, const lv_draw_sw_blend_dsc_t * dsc); +static void lv_draw_stm32_dma2d_buffer_copy(lv_draw_ctx_t * draw_ctx, + void * dest_buf, lv_coord_t dest_stride, const lv_area_t * dest_area, + void * src_buf, lv_coord_t src_stride, const lv_area_t * src_area); +static void lv_draw_stm32_dma2d_img_decoded(lv_draw_ctx_t * draw_ctx, const lv_draw_img_dsc_t * img_dsc, + const lv_area_t * coords, const uint8_t * src_buf, lv_img_cf_t color_format); +static dma2d_color_format_t lv_color_format_to_dma2d_color_format(lv_img_cf_t color_format); +static lv_point_t lv_area_get_offset(const lv_area_t * area1, const lv_area_t * area2); + +LV_STM32_DMA2D_STATIC void lv_gpu_stm32_dma2d_wait_cb(lv_draw_ctx_t * draw_ctx); +LV_STM32_DMA2D_STATIC lv_res_t lv_draw_stm32_dma2d_img(lv_draw_ctx_t * draw_ctx, const lv_draw_img_dsc_t * img_dsc, + const lv_area_t * src_area, const void * src); +LV_STM32_DMA2D_STATIC void _lv_draw_stm32_dma2d_blend_fill(const lv_color_t * dst_buf, lv_coord_t dst_stride, + const lv_area_t * draw_area, lv_color_t color, lv_opa_t opa); +LV_STM32_DMA2D_STATIC void _lv_draw_stm32_dma2d_blend_map(const lv_color_t * dest_buf, lv_coord_t dest_stride, + const lv_area_t * draw_area, const void * src_buf, lv_coord_t src_stride, const lv_point_t * src_offset, lv_opa_t opa, + dma2d_color_format_t src_color_format, bool ignore_src_alpha); +LV_STM32_DMA2D_STATIC void _lv_draw_stm32_dma2d_blend_paint(const lv_color_t * dst_buf, lv_coord_t dst_stride, + const lv_area_t * draw_area, const lv_opa_t * mask_buf, lv_coord_t mask_stride, const lv_point_t * mask_offset, + lv_color_t color, lv_opa_t opa); +LV_STM32_DMA2D_STATIC void _lv_draw_stm32_dma2d_copy_buffer(const lv_color_t * dest_buf, lv_coord_t dest_stride, + const lv_area_t * draw_area, const lv_color_t * src_buf, lv_coord_t src_stride, const lv_point_t * src_offset); +LV_STM32_DMA2D_STATIC void _lv_gpu_stm32_dma2d_await_dma_transfer_finish(lv_disp_drv_t * disp_drv); +LV_STM32_DMA2D_STATIC void _lv_gpu_stm32_dma2d_start_dma_transfer(void); +LV_STM32_DMA2D_STATIC void _lv_gpu_stm32_dma2d_invalidate_cache(uint32_t address, lv_coord_t offset, + lv_coord_t width, lv_coord_t height, uint8_t pixel_size); +LV_STM32_DMA2D_STATIC void _lv_gpu_stm32_dma2d_clean_cache(uint32_t address, lv_coord_t offset, lv_coord_t width, + lv_coord_t height, uint8_t pixel_size); +LV_STM32_DMA2D_STATIC bool _lv_gpu_stm32_dwt_init(void); +LV_STM32_DMA2D_STATIC void _lv_gpu_stm32_dwt_reset(void); +LV_STM32_DMA2D_STATIC uint32_t _lv_gpu_stm32_dwt_get_us(void); + static bool isDma2dInProgess = false; // indicates whether DMA2D transfer *initiated here* is in progress /** @@ -276,9 +311,8 @@ static dma2d_color_format_t lv_color_format_to_dma2d_color_format(lv_img_cf_t co } } -static lv_res_t lv_draw_stm32_dma2d_img(lv_draw_ctx_t * draw_ctx, const lv_draw_img_dsc_t * img_dsc, - const lv_area_t * src_area, - const void * src) +LV_STM32_DMA2D_STATIC lv_res_t lv_draw_stm32_dma2d_img(lv_draw_ctx_t * draw_ctx, const lv_draw_img_dsc_t * img_dsc, + const lv_area_t * src_area, const void * src) { //if(lv_img_src_get_type(src) != LV_IMG_SRC_VARIABLE) return LV_RES_INV; return LV_RES_INV; @@ -315,7 +349,7 @@ static lv_res_t lv_draw_stm32_dma2d_img(lv_draw_ctx_t * draw_ctx, const lv_draw_ return LV_RES_OK; } -static void lv_gpu_stm32_dma2d_wait_cb(lv_draw_ctx_t * draw_ctx) +LV_STM32_DMA2D_STATIC void lv_gpu_stm32_dma2d_wait_cb(lv_draw_ctx_t * draw_ctx) { lv_disp_t * disp = _lv_refr_get_disp_refreshing(); _lv_gpu_stm32_dma2d_await_dma_transfer_finish(disp->driver); diff --git a/src/draw/stm32_dma2d/lv_gpu_stm32_dma2d.h b/src/draw/stm32_dma2d/lv_gpu_stm32_dma2d.h index 5ecce6deb..0a970426d 100644 --- a/src/draw/stm32_dma2d/lv_gpu_stm32_dma2d.h +++ b/src/draw/stm32_dma2d/lv_gpu_stm32_dma2d.h @@ -53,40 +53,6 @@ struct _lv_disp_drv_t; void lv_draw_stm32_dma2d_init(void); void lv_draw_stm32_dma2d_ctx_init(struct _lv_disp_drv_t * drv, lv_draw_ctx_t * draw_ctx); void lv_draw_stm32_dma2d_ctx_deinit(struct _lv_disp_drv_t * drv, lv_draw_ctx_t * draw_ctx); -static void lv_draw_stm32_dma2d_blend(lv_draw_ctx_t * draw_ctx, const lv_draw_sw_blend_dsc_t * dsc); -static void lv_draw_stm32_dma2d_buffer_copy(lv_draw_ctx_t * draw_ctx, - void * dest_buf, lv_coord_t dest_stride, const lv_area_t * dest_area, - void * src_buf, lv_coord_t src_stride, const lv_area_t * src_area); -static lv_res_t lv_draw_stm32_dma2d_img(lv_draw_ctx_t * draw_ctx, const lv_draw_img_dsc_t * img_dsc, - const lv_area_t * src_area, const void * src); -static void lv_gpu_stm32_dma2d_wait_cb(lv_draw_ctx_t * draw_ctx); -static void lv_draw_stm32_dma2d_img_decoded(lv_draw_ctx_t * draw_ctx, const lv_draw_img_dsc_t * img_dsc, - const lv_area_t * coords, const uint8_t * src_buf, lv_img_cf_t color_format); -static dma2d_color_format_t lv_color_format_to_dma2d_color_format(lv_img_cf_t color_format); -static lv_point_t lv_area_get_offset(const lv_area_t * area1, const lv_area_t * area2); - -/********************** - * STATIC PROTOTYPES - **********************/ -LV_STM32_DMA2D_STATIC void _lv_draw_stm32_dma2d_blend_fill(const lv_color_t * dst_buf, lv_coord_t dst_stride, - const lv_area_t * draw_area, lv_color_t color, lv_opa_t opa); -LV_STM32_DMA2D_STATIC void _lv_draw_stm32_dma2d_blend_map(const lv_color_t * dest_buf, lv_coord_t dest_stride, - const lv_area_t * draw_area, const void * src_buf, lv_coord_t src_stride, const lv_point_t * src_offset, lv_opa_t opa, - dma2d_color_format_t src_color_format, bool ignore_src_alpha); -LV_STM32_DMA2D_STATIC void _lv_draw_stm32_dma2d_blend_paint(const lv_color_t * dst_buf, lv_coord_t dst_stride, - const lv_area_t * draw_area, const lv_opa_t * mask_buf, lv_coord_t mask_stride, const lv_point_t * mask_offset, - lv_color_t color, lv_opa_t opa); -LV_STM32_DMA2D_STATIC void _lv_draw_stm32_dma2d_copy_buffer(const lv_color_t * dest_buf, lv_coord_t dest_stride, - const lv_area_t * draw_area, const lv_color_t * src_buf, lv_coord_t src_stride, const lv_point_t * src_offset); -LV_STM32_DMA2D_STATIC void _lv_gpu_stm32_dma2d_await_dma_transfer_finish(lv_disp_drv_t * disp_drv); -LV_STM32_DMA2D_STATIC void _lv_gpu_stm32_dma2d_start_dma_transfer(void); -LV_STM32_DMA2D_STATIC void _lv_gpu_stm32_dma2d_invalidate_cache(uint32_t address, lv_coord_t offset, - lv_coord_t width, lv_coord_t height, uint8_t pixel_size); -LV_STM32_DMA2D_STATIC void _lv_gpu_stm32_dma2d_clean_cache(uint32_t address, lv_coord_t offset, lv_coord_t width, - lv_coord_t height, uint8_t pixel_size); -LV_STM32_DMA2D_STATIC bool _lv_gpu_stm32_dwt_init(void); -LV_STM32_DMA2D_STATIC void _lv_gpu_stm32_dwt_reset(void); -LV_STM32_DMA2D_STATIC uint32_t _lv_gpu_stm32_dwt_get_us(void); /********************** * MACROS From 58b5258244c5328d364e29f76e709f8603753a50 Mon Sep 17 00:00:00 2001 From: Rbb666 <64397326+Rbb666@users.noreply.github.com> Date: Mon, 12 Jun 2023 18:21:46 +0800 Subject: [PATCH 15/95] add(docs): add renesas-ra6m3 get-started document (#4278) --- docs/get-started/platforms/index.md | 1 + docs/get-started/platforms/renesas.md | 129 ++++++++++++++++++++++++++ 2 files changed, 130 insertions(+) create mode 100644 docs/get-started/platforms/renesas.md diff --git a/docs/get-started/platforms/index.md b/docs/get-started/platforms/index.md index 7ed6a0163..7fba95113 100644 --- a/docs/get-started/platforms/index.md +++ b/docs/get-started/platforms/index.md @@ -9,6 +9,7 @@ nxp stm32 espressif + renesas arduino tasmota-berry cmake diff --git a/docs/get-started/platforms/renesas.md b/docs/get-started/platforms/renesas.md new file mode 100644 index 000000000..b33095fdc --- /dev/null +++ b/docs/get-started/platforms/renesas.md @@ -0,0 +1,129 @@ +# Renesas +The [HMI-Board](https://bit.ly/3I9nfUo) development board SDK now comes with LVGL integration for quick evaluation. Simply download the [SDK](https://github.com/RT-Thread-Studio/sdk-bsp-ra6m3-hmi-board/tree/main/projects/hmi-board-lvgl) for the supported motherboard and you’ll be on your way to creating your next GUI application in no time. For more information, check out the [Software design description](https://github.com/RT-Thread-Studio/sdk-bsp-ra6m3-hmi-board/blob/main/projects/hmi-board-lvgl/README.md). + +## Creating new project with LVGL +It is recommended to start your project by downloading the HMI-Board SDK example project. It comes fully equipped with LVGL and dave-2d support (if the modules are present), so you won’t need to do any additional integration work. + +## HW acceleration for Renesas RA6M3 platforms +For RA6M3 platforms, hardware acceleration can be achieved using the dave-2d GPU, depending on the platform used. Each accelerator has its own context, allowing them to be used individually or simultaneously in LVGL’s multithreading mode. + +### Dave-2d accelerator +LVGL can offload several drawing features to the dave-2d engine, freeing up the CPU for other operations while dave-2d runs. An RTOS is required to block the LVGL drawing thread and switch to another task or suspend the CPU for power savings. Supported draw callbacks can be found in “src/draw/renesas/lv_gpu_d2_ra6m3.c”. + +LVGL can offload several drawing features to the dave-2d engine, freeing up the CPU for other operations while dave-2d runs. An RTOS is required to block the LVGL drawing thread and switch to another task or suspend the CPU for power savings. Supported draw callbacks can be found in “src/draw/renesas/lv_gpu_d2_ra6m3.c”. + +```c + ra_2d_draw_ctx->blend = lv_draw_ra6m3_2d_blend; + ra_2d_draw_ctx->base_draw.draw_img_decoded = lv_port_gpu_img_decoded; + ra_2d_draw_ctx->base_draw.wait_for_finish = lv_port_gpu_wait; + ra_2d_draw_ctx->base_draw.draw_letter = lv_draw_gpu_letter; +``` + +### Features supported: + All operations can be used in conjunction with optional transparency. + + - RGB565 and ARGB8888 color formats + - Area fill with color + - BLIT (BLock Image Transfer) + - Color conversion + - Rotate and scale + - Alpha blending + - Bilinear filtering + - RTOS integration layer + - Default RT-Thread code provided + - Subpixel exact placement + +### Basic configuration: + - Select Renesas dave-2d engine in lv_conf.h: Set `LV_USE_GPU_RA6M3_G2D` to 1 + - Set referenced header file in lv_conf.h: `#define LV_GPU_RA6M3_G2D_INCLUDE "hal_data.h"` + +### RT-Thread Example: + +```c +#define COLOR_BUFFER (LV_HOR_RES_MAX * LV_VER_RES_MAX) + +static lv_disp_drv_t disp_drv; + +/*A static or global variable to store the buffers*/ +static lv_color_t buf_1[COLOR_BUFFER]; +``` + +- After initializing your peripherals (such as SPI, GPIOs, and LCD) in the `lv_port_disp_init()` function, you can initialize LVGL using [`lv_init()`.](https://docs.lvgl.io/master/API/core/lv_obj.html#_CPPv47lv_initv) Next, register the frame buffers using `lv_disp_draw_buf_init()` and create a new display driver using `lv_disp_drv_init()`. + +```c +/*Initialize `disp_buf` with the buffer(s). With only one buffer use NULL instead buf_2 */ +lv_disp_draw_buf_init(&disp_buf, buf_1, RT_NULL, COLOR_BUFFER); +lv_disp_drv_init(&disp_drv); /*Basic initialization*/ + +/*Set the resolution of the display*/ +disp_drv.hor_res = LV_HOR_RES_MAX; +disp_drv.ver_res = LV_VER_RES_MAX; + +/*Set a display buffer*/ +disp_drv.draw_buf = &disp_buf; + +/*Used to copy the buffer's content to the display*/ +disp_drv.flush_cb = disp_flush; + +/* Initialize GPU module */ +lv_port_gpu_hw_init(); + +/*Finally register the driver*/ +lv_disp_drv_register(&disp_drv); +``` + +* To run LVGL, you’ll need to create a thread. You can find examples of how to do this using RT-Thread in the `env_support/rt-thread/lv_rt_thread_port.c` file. + +```c +static void lvgl_thread_entry(void *parameter) +{ +#if LV_USE_LOG + lv_log_register_print_cb(lv_rt_log); +#endif /* LV_USE_LOG */ + lv_init(); + lv_port_disp_init(); + lv_port_indev_init(); + lv_user_gui_init(); + + /* handle the tasks of LVGL */ + while(1) + { + lv_task_handler(); + rt_thread_mdelay(LV_DISP_DEF_REFR_PERIOD); + } +} + +static int lvgl_thread_init(void) +{ + rt_err_t err; + + /* create lvgl thread */ + err = rt_thread_init(&lvgl_thread, "LVGL", lvgl_thread_entry, RT_NULL, + &lvgl_thread_stack[0], sizeof(lvgl_thread_stack), PKG_LVGL_THREAD_PRIO, 10); + if(err != RT_EOK) + { + LOG_E("Failed to create LVGL thread"); + return -1; + } + rt_thread_startup(&lvgl_thread); + + return 0; +} +INIT_ENV_EXPORT(lvgl_thread_init); +``` + +- The last step is to create a function to output the frame buffer to your LCD. The specifics of this function will depend on the features of your MCU. Here’s an example for a typical MCU interface: `my_flush_cb`. + +```c +static void my_flush_cb(lv_disp_drv_t *disp_drv, const lv_area_t *area, lv_color_t *color_p) +{ +#ifdef PKG_USING_ILI9341 + lcd_fill_array_spi(area->x1, area->y1, area->x2, area->y2, color_p); +#elif LV_USE_GPU_RA6M3_G2D + lv_port_gpu_blit(area->x1, area->y1, color_p, area); +#else + ...... +#endif + lv_disp_flush_ready(disp_drv); +} +``` From 38c549da8237a718557405483c704694c87c9104 Mon Sep 17 00:00:00 2001 From: pete-pjb Date: Fri, 16 Jun 2023 17:31:34 +0100 Subject: [PATCH 16/95] fix:(BtnMatrix) Backport https://github.com/lvgl/lvgl/pull/4185 Stop Button Matrix getting stuck in loop if buttons disable/hidden --- src/core/lv_refr.c | 64 +++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 63 insertions(+), 1 deletion(-) diff --git a/src/core/lv_refr.c b/src/core/lv_refr.c index 45ff2e0e7..270333c6a 100644 --- a/src/core/lv_refr.c +++ b/src/core/lv_refr.c @@ -52,6 +52,7 @@ typedef struct { * STATIC PROTOTYPES **********************/ static void lv_refr_join_area(void); +static void refr_sync_areas(void); static void refr_invalid_areas(void); static void refr_area(const lv_area_t * area_p); static void refr_area_part(lv_draw_ctx_t * draw_ctx); @@ -321,12 +322,26 @@ void _lv_disp_refr_timer(lv_timer_t * tmr) lv_refr_join_area(); + refr_sync_areas(); + refr_invalid_areas(); /*If refresh happened ...*/ if(disp_refr->inv_p != 0) { - /*Clean up*/ + /*Copy invalid areas for sync next refresh*/ + if (disp_refr->driver->direct_mode) + { + uint16_t i; + for(i = 0; i < disp_refr->inv_p; i++) { + if (disp_refr->inv_area_joined[i]) + continue; + + disp_refr->sync_areas[disp_refr->sync_p++] = disp_refr->inv_areas[i]; + } + } + + /*Clean up*/ lv_memset_00(disp_refr->inv_areas, sizeof(disp_refr->inv_areas)); lv_memset_00(disp_refr->inv_area_joined, sizeof(disp_refr->inv_area_joined)); disp_refr->inv_p = 0; @@ -495,6 +510,53 @@ static void lv_refr_join_area(void) } } +static void refr_sync_areas(void) +{ + /*Do not sync if no sync areas*/ + if (disp_refr->sync_p == 0) return; + + /*Do not sync if not double buffered*/ + if (!disp_refr->driver->direct_mode) return; + + /*The buffers are already swapped. + *So the active buffer is the off screen buffer where LVGL will render*/ + void * buf_off_screen = disp_refr->driver->draw_buf->buf_act; + void * buf_on_screen = disp_refr->driver->draw_buf->buf_act == disp_refr->driver->draw_buf->buf1 + ? disp_refr->driver->draw_buf->buf2 + : disp_refr->driver->draw_buf->buf1; + + /*Iterate through invalidated areas to see if sync area should be copied*/ + bool sync; + lv_coord_t stride = lv_disp_get_hor_res(disp_refr); + uint32_t i, j; + for(i = 0; i < disp_refr->sync_p; i++) { + sync = true; + for(j = 0; j < disp_refr->inv_p; j++) { + + /*Skip joined areas*/ + if (disp_refr->inv_area_joined[j]) continue; + + /*Sync area is fully inside inv area; Do not sync*/ + if (_lv_area_is_in(&disp_refr->sync_areas[i], &disp_refr->inv_areas[j], 0)) { + sync = false; + break; + } + } + + /*Sync area should be copied*/ + if (sync) { + disp_refr->driver->draw_ctx->buffer_copy( + disp_refr->driver->draw_ctx, + buf_off_screen, stride, &disp_refr->sync_areas[i], + buf_on_screen, stride, &disp_refr->sync_areas[i] + ); + } + } + + /*Reset sync area count*/ + disp_refr->sync_p = 0; +} + /** * Refresh the joined areas */ From 9197c5da7a6f7f4f00755b9eafed0cc6a3339f7e Mon Sep 17 00:00:00 2001 From: pete-pjb Date: Fri, 16 Jun 2023 17:42:08 +0100 Subject: [PATCH 17/95] Revert "fix:(BtnMatrix) Backport https://github.com/lvgl/lvgl/pull/4185" This reverts commit cb602ea7785de21a187ef5ee5f7de4e3aa3f7e0e. --- src/core/lv_refr.c | 64 +--------------------------------------------- 1 file changed, 1 insertion(+), 63 deletions(-) diff --git a/src/core/lv_refr.c b/src/core/lv_refr.c index 270333c6a..45ff2e0e7 100644 --- a/src/core/lv_refr.c +++ b/src/core/lv_refr.c @@ -52,7 +52,6 @@ typedef struct { * STATIC PROTOTYPES **********************/ static void lv_refr_join_area(void); -static void refr_sync_areas(void); static void refr_invalid_areas(void); static void refr_area(const lv_area_t * area_p); static void refr_area_part(lv_draw_ctx_t * draw_ctx); @@ -322,26 +321,12 @@ void _lv_disp_refr_timer(lv_timer_t * tmr) lv_refr_join_area(); - refr_sync_areas(); - refr_invalid_areas(); /*If refresh happened ...*/ if(disp_refr->inv_p != 0) { - /*Copy invalid areas for sync next refresh*/ - if (disp_refr->driver->direct_mode) - { - uint16_t i; - for(i = 0; i < disp_refr->inv_p; i++) { - if (disp_refr->inv_area_joined[i]) - continue; - - disp_refr->sync_areas[disp_refr->sync_p++] = disp_refr->inv_areas[i]; - } - } - - /*Clean up*/ + /*Clean up*/ lv_memset_00(disp_refr->inv_areas, sizeof(disp_refr->inv_areas)); lv_memset_00(disp_refr->inv_area_joined, sizeof(disp_refr->inv_area_joined)); disp_refr->inv_p = 0; @@ -510,53 +495,6 @@ static void lv_refr_join_area(void) } } -static void refr_sync_areas(void) -{ - /*Do not sync if no sync areas*/ - if (disp_refr->sync_p == 0) return; - - /*Do not sync if not double buffered*/ - if (!disp_refr->driver->direct_mode) return; - - /*The buffers are already swapped. - *So the active buffer is the off screen buffer where LVGL will render*/ - void * buf_off_screen = disp_refr->driver->draw_buf->buf_act; - void * buf_on_screen = disp_refr->driver->draw_buf->buf_act == disp_refr->driver->draw_buf->buf1 - ? disp_refr->driver->draw_buf->buf2 - : disp_refr->driver->draw_buf->buf1; - - /*Iterate through invalidated areas to see if sync area should be copied*/ - bool sync; - lv_coord_t stride = lv_disp_get_hor_res(disp_refr); - uint32_t i, j; - for(i = 0; i < disp_refr->sync_p; i++) { - sync = true; - for(j = 0; j < disp_refr->inv_p; j++) { - - /*Skip joined areas*/ - if (disp_refr->inv_area_joined[j]) continue; - - /*Sync area is fully inside inv area; Do not sync*/ - if (_lv_area_is_in(&disp_refr->sync_areas[i], &disp_refr->inv_areas[j], 0)) { - sync = false; - break; - } - } - - /*Sync area should be copied*/ - if (sync) { - disp_refr->driver->draw_ctx->buffer_copy( - disp_refr->driver->draw_ctx, - buf_off_screen, stride, &disp_refr->sync_areas[i], - buf_on_screen, stride, &disp_refr->sync_areas[i] - ); - } - } - - /*Reset sync area count*/ - disp_refr->sync_p = 0; -} - /** * Refresh the joined areas */ From 888835031f393df6ee8a0d52b359dc21259ceb5a Mon Sep 17 00:00:00 2001 From: pete-pjb Date: Fri, 16 Jun 2023 17:51:49 +0100 Subject: [PATCH 18/95] fix:(BtnMatrix) Backport https://github.com/lvgl/lvgl/pull/4185 Stop disabled/hidden button matrix keys from getting stuck in a loop --- src/widgets/lv_btnmatrix.c | 22 ++++++++++++++++++++-- 1 file changed, 20 insertions(+), 2 deletions(-) diff --git a/src/widgets/lv_btnmatrix.c b/src/widgets/lv_btnmatrix.c index 8902d8b93..00fb36f65 100644 --- a/src/widgets/lv_btnmatrix.c +++ b/src/widgets/lv_btnmatrix.c @@ -563,9 +563,15 @@ static void lv_btnmatrix_event(const lv_obj_class_t * class_p, lv_event_t * e) else btnm->btn_id_sel++; if(btnm->btn_id_sel >= btnm->btn_cnt) btnm->btn_id_sel = 0; + uint16_t btn_id_start = btnm->btn_id_sel; while(button_is_hidden(btnm->ctrl_bits[btnm->btn_id_sel]) || button_is_inactive(btnm->ctrl_bits[btnm->btn_id_sel])) { btnm->btn_id_sel++; if(btnm->btn_id_sel >= btnm->btn_cnt) btnm->btn_id_sel = 0; + + if(btnm->btn_id_sel == btn_id_start) { + btnm->btn_id_sel = LV_BTNMATRIX_BTN_NONE; + break; + } } } else if(c == LV_KEY_LEFT) { @@ -574,9 +580,15 @@ static void lv_btnmatrix_event(const lv_obj_class_t * class_p, lv_event_t * e) if(btnm->btn_id_sel == 0) btnm->btn_id_sel = btnm->btn_cnt - 1; else if(btnm->btn_id_sel > 0) btnm->btn_id_sel--; + uint16_t btn_id_start = btnm->btn_id_sel; while(button_is_hidden(btnm->ctrl_bits[btnm->btn_id_sel]) || button_is_inactive(btnm->ctrl_bits[btnm->btn_id_sel])) { if(btnm->btn_id_sel > 0) btnm->btn_id_sel--; else btnm->btn_id_sel = btnm->btn_cnt - 1; + + if(btnm->btn_id_sel == btn_id_start) { + btnm->btn_id_sel = LV_BTNMATRIX_BTN_NONE; + break; + } } } else if(c == LV_KEY_DOWN) { @@ -586,7 +598,10 @@ static void lv_btnmatrix_event(const lv_obj_class_t * class_p, lv_event_t * e) btnm->btn_id_sel = 0; while(button_is_hidden(btnm->ctrl_bits[btnm->btn_id_sel]) || button_is_inactive(btnm->ctrl_bits[btnm->btn_id_sel])) { btnm->btn_id_sel++; - if(btnm->btn_id_sel >= btnm->btn_cnt) btnm->btn_id_sel = 0; + if(btnm->btn_id_sel >= btnm->btn_cnt) { + btnm->btn_id_sel = LV_BTNMATRIX_BTN_NONE; + break; + } } } else { @@ -614,7 +629,10 @@ static void lv_btnmatrix_event(const lv_obj_class_t * class_p, lv_event_t * e) btnm->btn_id_sel = 0; while(button_is_hidden(btnm->ctrl_bits[btnm->btn_id_sel]) || button_is_inactive(btnm->ctrl_bits[btnm->btn_id_sel])) { btnm->btn_id_sel++; - if(btnm->btn_id_sel >= btnm->btn_cnt) btnm->btn_id_sel = 0; + if(btnm->btn_id_sel >= btnm->btn_cnt) { + btnm->btn_id_sel = LV_BTNMATRIX_BTN_NONE; + break; + } } } else { From 6b7f085cccccadec0f678c0cec898498d94a6f29 Mon Sep 17 00:00:00 2001 From: Gabor Kiss-Vamosi Date: Mon, 19 Jun 2023 10:28:23 +0200 Subject: [PATCH 19/95] fix(btnmatrix): fix array out of bounds addressing with groups and no buttons --- src/widgets/lv_btnmatrix.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/widgets/lv_btnmatrix.c b/src/widgets/lv_btnmatrix.c index 00fb36f65..923f19afb 100644 --- a/src/widgets/lv_btnmatrix.c +++ b/src/widgets/lv_btnmatrix.c @@ -520,6 +520,8 @@ static void lv_btnmatrix_event(const lv_obj_class_t * class_p, lv_event_t * e) btnm->btn_id_sel = LV_BTNMATRIX_BTN_NONE; } else if(code == LV_EVENT_FOCUSED) { + if(btnm->btn_cnt == 0) return; + lv_indev_t * indev = lv_event_get_param(e); lv_indev_type_t indev_type = lv_indev_get_type(indev); From 9bf2fe876ff37e5d3857abc3cded0b5993d14781 Mon Sep 17 00:00:00 2001 From: Gabor Kiss-Vamosi Date: Tue, 20 Jun 2023 07:53:34 +0200 Subject: [PATCH 20/95] feat(rt-thread): make the rt-thread env recursively glob the UI files --- env_support/rt-thread/squareline/SConscript | 27 ++++++++++++++++----- 1 file changed, 21 insertions(+), 6 deletions(-) diff --git a/env_support/rt-thread/squareline/SConscript b/env_support/rt-thread/squareline/SConscript index 51edf228e..2818830b5 100644 --- a/env_support/rt-thread/squareline/SConscript +++ b/env_support/rt-thread/squareline/SConscript @@ -1,10 +1,25 @@ from building import * cwd = GetCurrentDir() -src = ['lv_ui_entry.c'] - -src += Glob(cwd + '/ui/*.c') - -group = DefineGroup('LVGL-SquareLine', src, depend = ['PKG_USING_LVGL_SQUARELINE']) - +src = Glob('*.c') +inc = [cwd] + +# check if .h or .hpp files exsit +def check_h_hpp_exsit(path): + file_dirs = os.listdir(path) + for file_dir in file_dirs: + if os.path.splitext(file_dir)[1] in ['.h', '.hpp']: + return True + return False + +sls_src_cwd = cwd +for root, dirs, files in os.walk(sls_src_cwd): + for dir in dirs: + current_path = os.path.join(root, dir) + src = src + Glob(os.path.join(current_path,'*.c')) # add all .c files + if check_h_hpp_exsit(current_path): # add .h and .hpp path + inc = inc + [current_path] + +group = DefineGroup('LVGL-SquareLine', src, depend = ['PKG_USING_LVGL_SQUARELINE'], CPPPATH = inc) + Return('group') From b39a8bd7058ab7455cbb1be910946ddcba944551 Mon Sep 17 00:00:00 2001 From: Gabor Kiss-Vamosi Date: Fri, 23 Jun 2023 09:52:25 +0200 Subject: [PATCH 21/95] docs(faq): don't say 24 bit is support as LVGL can't render in RGB888 directly --- docs/intro/index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/intro/index.md b/docs/intro/index.md index 0d20b28c3..62508d116 100644 --- a/docs/intro/index.md +++ b/docs/intro/index.md @@ -132,7 +132,7 @@ LVGL needs just one simple driver function to copy an array of pixels into a giv If you can do this with your display then you can use it with LVGL. Some examples of the supported display types: -- TFTs with 16 or 24 bit color depth +- TFTs with 16 or 32 bit color depth - Monitors with an HDMI port - Small monochrome displays - Gray-scale displays From 4d5d22acdcbc14fac05a3cebb6a5efc2195abbe8 Mon Sep 17 00:00:00 2001 From: kolliemo <130751986+kolliemo@users.noreply.github.com> Date: Fri, 23 Jun 2023 22:39:10 +0200 Subject: [PATCH 22/95] docs: mention incompatibility between software rotation and `direct_mode` or `full_refresh` (#4308) --- docs/porting/display.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docs/porting/display.md b/docs/porting/display.md index f06d48d08..f69eb1086 100644 --- a/docs/porting/display.md +++ b/docs/porting/display.md @@ -204,6 +204,8 @@ The default rotation of your display when it is initialized can be set using the Display rotation can also be changed at runtime using the `lv_disp_set_rotation(disp, rot)` API. +Note that when using software rotation, you cannot use neither `direct_mode` nor `full_refresh` in the driver. When using either of these, you will have to rotate the pixels yourself e.g. in the `flush_cb`. + Support for software rotation is a new feature, so there may be some glitches/bugs depending on your configuration. If you encounter a problem please open an issue on [GitHub](https://github.com/lvgl/lvgl/issues). ### Decoupling the display refresh timer From ae89c7dbd466f271f8db523ed7cef1e923b18c06 Mon Sep 17 00:00:00 2001 From: Gabor Kiss-Vamosi Date: Mon, 26 Jun 2023 10:33:13 +0200 Subject: [PATCH 23/95] fix(tabview): remove the animation if the tab is selected by clicking the button on the header --- src/extra/widgets/tabview/lv_tabview.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/extra/widgets/tabview/lv_tabview.c b/src/extra/widgets/tabview/lv_tabview.c index 81addc663..b77e0be3e 100755 --- a/src/extra/widgets/tabview/lv_tabview.c +++ b/src/extra/widgets/tabview/lv_tabview.c @@ -308,7 +308,7 @@ static void btns_value_changed_event_cb(lv_event_t * e) lv_obj_t * tv = lv_obj_get_parent(btns); uint32_t id = lv_btnmatrix_get_selected_btn(btns); - lv_tabview_set_act(tv, id, LV_ANIM_ON); + lv_tabview_set_act(tv, id, LV_ANIM_OFF); } static void cont_scroll_end_event_cb(lv_event_t * e) From b687470d1144471b89f73b716a9cb589fc850a88 Mon Sep 17 00:00:00 2001 From: Gabor Kiss-Vamosi Date: Mon, 26 Jun 2023 13:50:43 +0200 Subject: [PATCH 24/95] example(tabview): fix tabview disable scrollig example there is no animatin after selecting a tab by clicking anymore --- examples/widgets/tabview/lv_example_tabview_2.c | 10 ---------- examples/widgets/tabview/lv_example_tabview_2.py | 9 --------- 2 files changed, 19 deletions(-) diff --git a/examples/widgets/tabview/lv_example_tabview_2.c b/examples/widgets/tabview/lv_example_tabview_2.c index 026604266..79f306b06 100644 --- a/examples/widgets/tabview/lv_example_tabview_2.c +++ b/examples/widgets/tabview/lv_example_tabview_2.c @@ -1,21 +1,11 @@ #include "../../lv_examples.h" #if LV_USE_TABVIEW && LV_BUILD_EXAMPLES -static void scroll_begin_event(lv_event_t * e) -{ - /*Disable the scroll animations. Triggered when a tab button is clicked */ - if(lv_event_get_code(e) == LV_EVENT_SCROLL_BEGIN) { - lv_anim_t * a = lv_event_get_param(e); - if(a) a->time = 0; - } -} - void lv_example_tabview_2(void) { /*Create a Tab view object*/ lv_obj_t * tabview; tabview = lv_tabview_create(lv_scr_act(), LV_DIR_LEFT, 80); - lv_obj_add_event_cb(lv_tabview_get_content(tabview), scroll_begin_event, LV_EVENT_SCROLL_BEGIN, NULL); lv_obj_set_style_bg_color(tabview, lv_palette_lighten(LV_PALETTE_RED, 2), 0); diff --git a/examples/widgets/tabview/lv_example_tabview_2.py b/examples/widgets/tabview/lv_example_tabview_2.py index f1604be95..ee0360e6f 100644 --- a/examples/widgets/tabview/lv_example_tabview_2.py +++ b/examples/widgets/tabview/lv_example_tabview_2.py @@ -1,15 +1,6 @@ -def scroll_begin_event(e): - - #Disable the scroll animations. Triggered when a tab button is clicked */ - if e.get_code() == lv.EVENT.SCROLL_BEGIN: - a = lv.anim_t.__cast__(e.get_param()) - if a: - a.time = 0 # Create a Tab view object tabview = lv.tabview(lv.scr_act(), lv.DIR.LEFT, 80) -tabview.get_content().add_event_cb(scroll_begin_event, lv.EVENT.SCROLL_BEGIN, None) - tabview.set_style_bg_color(lv.palette_lighten(lv.PALETTE.RED, 2), 0) tab_btns = tabview.get_tab_btns() From 9b27cd14516fc8a98b4f03684e6053505ddcecd5 Mon Sep 17 00:00:00 2001 From: Gabor Kiss-Vamosi Date: Tue, 4 Jul 2023 11:12:46 +0200 Subject: [PATCH 25/95] demos: add lv_demo_..._close() functions for each demo --- demos/benchmark/lv_demo_benchmark.c | 26 ++++++++++++++----- demos/benchmark/lv_demo_benchmark.h | 2 ++ demos/keypad_encoder/lv_demo_keypad_encoder.c | 13 ++++++++-- demos/keypad_encoder/lv_demo_keypad_encoder.h | 1 + demos/music/lv_demo_music.c | 25 +++++++++++++++++- demos/music/lv_demo_music.h | 2 ++ demos/music/lv_demo_music_list.c | 13 ++++++++++ demos/music/lv_demo_music_list.h | 2 ++ demos/music/lv_demo_music_main.c | 16 +++++++++--- demos/music/lv_demo_music_main.h | 2 ++ demos/stress/lv_demo_stress.c | 15 ++++++++--- demos/stress/lv_demo_stress.h | 2 ++ demos/widgets/lv_demo_widgets.c | 21 ++++++++++++++- demos/widgets/lv_demo_widgets.h | 1 + src/core/lv_obj.h | 1 + src/core/lv_obj_tree.c | 2 ++ src/extra/widgets/tabview/lv_tabview.c | 6 +++-- src/extra/widgets/tabview/lv_tabview.h | 2 +- 18 files changed, 132 insertions(+), 20 deletions(-) diff --git a/demos/benchmark/lv_demo_benchmark.c b/demos/benchmark/lv_demo_benchmark.c index 4c49a1dc5..63e30bad1 100644 --- a/demos/benchmark/lv_demo_benchmark.c +++ b/demos/benchmark/lv_demo_benchmark.c @@ -89,7 +89,7 @@ LV_FONT_DECLARE(lv_font_benchmark_montserrat_16_compr_az); LV_FONT_DECLARE(lv_font_benchmark_montserrat_28_compr_az); static void monitor_cb(lv_disp_drv_t * drv, uint32_t time, uint32_t px); -static void scene_next_task_cb(lv_timer_t * timer); +static void next_scene_timer_cb(lv_timer_t * timer); static void rect_create(lv_style_t * style); static void img_create(lv_style_t * style, const void * src, bool rotate, bool zoom, bool aa); static void txt_create(lv_style_t * style); @@ -636,7 +636,7 @@ static lv_obj_t * scene_bg; static lv_obj_t * title; static lv_obj_t * subtitle; static uint32_t rnd_act; - +static lv_timer_t * next_scene_timer; static const uint32_t rnd_map[] = { 0xbd13204f, 0x67d8167f, 0x20211c99, 0xb0a7cc05, @@ -708,9 +708,21 @@ void lv_demo_benchmark(void) benchmark_init(); /*Manually start scenes*/ - scene_next_task_cb(NULL); + next_scene_timer_cb(NULL); } +void lv_demo_benchmark_close(void) +{ + if(next_scene_timer) lv_timer_del(next_scene_timer); + next_scene_timer = NULL; + + lv_anim_del(NULL, NULL); + + lv_style_reset(&style_common); + + lv_obj_clean(lv_scr_act()); + +} void lv_demo_benchmark_run_scene(int_fast16_t scene_no) { @@ -973,11 +985,13 @@ static void report_cb(lv_timer_t * timer) } } -static void scene_next_task_cb(lv_timer_t * timer) +static void next_scene_timer_cb(lv_timer_t * timer) { LV_UNUSED(timer); lv_obj_clean(scene_bg); + next_scene_timer = NULL; + if(opa_mode) { if(scene_act >= 0) { if(scenes[scene_act].time_sum_opa == 0) scenes[scene_act].time_sum_opa = 1; @@ -1014,8 +1028,8 @@ static void scene_next_task_cb(lv_timer_t * timer) rnd_reset(); scenes[scene_act].create_cb(); - lv_timer_t * t = lv_timer_create(scene_next_task_cb, SCENE_TIME, NULL); - lv_timer_set_repeat_count(t, 1); + next_scene_timer = lv_timer_create(next_scene_timer_cb, SCENE_TIME, NULL); + lv_timer_set_repeat_count(next_scene_timer, 1); } /*Ready*/ diff --git a/demos/benchmark/lv_demo_benchmark.h b/demos/benchmark/lv_demo_benchmark.h index 6a0a4f649..71a7589aa 100644 --- a/demos/benchmark/lv_demo_benchmark.h +++ b/demos/benchmark/lv_demo_benchmark.h @@ -30,6 +30,8 @@ typedef void finished_cb_t(void); **********************/ void lv_demo_benchmark(void); +void lv_demo_benchmark_close(void); + void lv_demo_benchmark_run_scene(int_fast16_t scene_no); void lv_demo_benchmark_set_finished_cb(finished_cb_t * finished_cb); diff --git a/demos/keypad_encoder/lv_demo_keypad_encoder.c b/demos/keypad_encoder/lv_demo_keypad_encoder.c index fdb9b94f8..0f4006e0d 100644 --- a/demos/keypad_encoder/lv_demo_keypad_encoder.c +++ b/demos/keypad_encoder/lv_demo_keypad_encoder.c @@ -46,8 +46,11 @@ static lv_obj_t * t2; void lv_demo_keypad_encoder(void) { - g = lv_group_create(); - lv_group_set_default(g); + g = lv_group_get_default(); + if(g == NULL) { + g = lv_group_create(); + lv_group_set_default(g); + } lv_indev_t * cur_drv = NULL; for(;;) { @@ -76,6 +79,12 @@ void lv_demo_keypad_encoder(void) msgbox_create(); } +void lv_demo_keypad_encoder_close(void) +{ + lv_obj_clean(lv_scr_act()); + lv_obj_clean(lv_layer_top()); +} + /********************** * STATIC FUNCTIONS **********************/ diff --git a/demos/keypad_encoder/lv_demo_keypad_encoder.h b/demos/keypad_encoder/lv_demo_keypad_encoder.h index c509d662e..1916670bc 100644 --- a/demos/keypad_encoder/lv_demo_keypad_encoder.h +++ b/demos/keypad_encoder/lv_demo_keypad_encoder.h @@ -27,6 +27,7 @@ extern "C" { * GLOBAL PROTOTYPES **********************/ void lv_demo_keypad_encoder(void); +void lv_demo_keypad_encoder_close(void); /********************** * MACROS diff --git a/demos/music/lv_demo_music.c b/demos/music/lv_demo_music.c index cb72ed162..25bfd95f8 100644 --- a/demos/music/lv_demo_music.c +++ b/demos/music/lv_demo_music.c @@ -103,6 +103,12 @@ static const uint32_t time_list[] = { 2 * 60 + 19, }; +#if LV_DEMO_MUSIC_AUTO_PLAY +static lv_timer_t * auto_step_timer; +#endif + +static lv_color_t original_screen_bg_color; + /********************** * MACROS **********************/ @@ -113,14 +119,31 @@ static const uint32_t time_list[] = { void lv_demo_music(void) { + original_screen_bg_color = lv_obj_get_style_bg_color(lv_scr_act(), 0); lv_obj_set_style_bg_color(lv_scr_act(), lv_color_hex(0x343247), 0); list = _lv_demo_music_list_create(lv_scr_act()); ctrl = _lv_demo_music_main_create(lv_scr_act()); #if LV_DEMO_MUSIC_AUTO_PLAY - lv_timer_create(auto_step_cb, 1000, NULL); + auto_step_timer = lv_timer_create(auto_step_cb, 1000, NULL); +#endif +} + +void lv_demo_music_close(void) +{ + /*Delete all aniamtions*/ + lv_anim_del(NULL, NULL); + +#if LV_DEMO_MUSIC_AUTO_PLAY + lv_timer_del(auto_step_timer); #endif + _lv_demo_music_list_close(); + _lv_demo_music_main_close(); + + lv_obj_clean(lv_scr_act()); + + lv_obj_set_style_bg_color(lv_scr_act(), original_screen_bg_color, 0); } const char * _lv_demo_music_get_title(uint32_t track_id) diff --git a/demos/music/lv_demo_music.h b/demos/music/lv_demo_music.h index 82917fb52..3c393d66f 100644 --- a/demos/music/lv_demo_music.h +++ b/demos/music/lv_demo_music.h @@ -36,6 +36,8 @@ extern "C" { **********************/ void lv_demo_music(void); +void lv_demo_music_close(void); + const char * _lv_demo_music_get_title(uint32_t track_id); const char * _lv_demo_music_get_artist(uint32_t track_id); const char * _lv_demo_music_get_genre(uint32_t track_id); diff --git a/demos/music/lv_demo_music_list.c b/demos/music/lv_demo_music_list.c index 88e79ecab..942baeb24 100644 --- a/demos/music/lv_demo_music_list.c +++ b/demos/music/lv_demo_music_list.c @@ -130,6 +130,19 @@ lv_obj_t * _lv_demo_music_list_create(lv_obj_t * parent) return list; } + +void _lv_demo_music_list_close(void) +{ + lv_style_reset(&style_scrollbar); + lv_style_reset(&style_btn); + lv_style_reset(&style_btn_pr); + lv_style_reset(&style_btn_chk); + lv_style_reset(&style_btn_dis); + lv_style_reset(&style_title); + lv_style_reset(&style_artist); + lv_style_reset(&style_time); +} + void _lv_demo_music_list_btn_check(uint32_t track_id, bool state) { lv_obj_t * btn = lv_obj_get_child(list, track_id); diff --git a/demos/music/lv_demo_music_list.h b/demos/music/lv_demo_music_list.h index 48e6e1704..d03c6d178 100644 --- a/demos/music/lv_demo_music_list.h +++ b/demos/music/lv_demo_music_list.h @@ -28,6 +28,8 @@ extern "C" { * GLOBAL PROTOTYPES **********************/ lv_obj_t * _lv_demo_music_list_create(lv_obj_t * parent); +void _lv_demo_music_list_close(void); + void _lv_demo_music_list_btn_check(uint32_t track_id, bool state); /********************** diff --git a/demos/music/lv_demo_music_main.c b/demos/music/lv_demo_music_main.c index f7bc4b8fe..415af8155 100644 --- a/demos/music/lv_demo_music_main.c +++ b/demos/music/lv_demo_music_main.c @@ -60,7 +60,7 @@ static void prev_click_event_cb(lv_event_t * e); static void next_click_event_cb(lv_event_t * e); static void timer_cb(lv_timer_t * t); static void track_load(uint32_t id); -static void stop_start_anim(lv_timer_t * t); +static void stop_start_anim_timer_cb(lv_timer_t * t); static void spectrum_end_cb(lv_anim_t * a); static void album_fade_anim_cb(void * var, int32_t v); static int32_t get_cos(int32_t deg, int32_t a); @@ -84,6 +84,7 @@ static uint32_t spectrum_lane_ofs_start = 0; static uint32_t bar_rot = 0; static uint32_t time_act; static lv_timer_t * sec_counter_timer; +static lv_timer_t * stop_start_anim_timer; static const lv_font_t * font_small; static const lv_font_t * font_large; static uint32_t track_id; @@ -232,8 +233,8 @@ lv_obj_t * _lv_demo_music_main_create(lv_obj_t * parent) start_anim = true; - lv_timer_t * timer = lv_timer_create(stop_start_anim, INTRO_TIME + 6000, NULL); - lv_timer_set_repeat_count(timer, 1); + stop_start_anim_timer = lv_timer_create(stop_start_anim_timer_cb, INTRO_TIME + 6000, NULL); + lv_timer_set_repeat_count(stop_start_anim_timer, 1); lv_anim_init(&a); lv_anim_set_path_cb(&a, lv_anim_path_bounce); @@ -292,6 +293,12 @@ lv_obj_t * _lv_demo_music_main_create(lv_obj_t * parent) return main_cont; } +void _lv_demo_music_main_close(void) +{ + if(stop_start_anim_timer) lv_timer_del(stop_start_anim_timer); + lv_timer_del(sec_counter_timer); +} + void _lv_demo_music_album_next(bool next) { uint32_t id = track_id; @@ -990,10 +997,11 @@ static void spectrum_end_cb(lv_anim_t * a) } -static void stop_start_anim(lv_timer_t * t) +static void stop_start_anim_timer_cb(lv_timer_t * t) { LV_UNUSED(t); start_anim = false; + stop_start_anim_timer = NULL; lv_obj_refresh_ext_draw_size(spectrum_obj); } diff --git a/demos/music/lv_demo_music_main.h b/demos/music/lv_demo_music_main.h index a2cf93994..04e8a7fbc 100644 --- a/demos/music/lv_demo_music_main.h +++ b/demos/music/lv_demo_music_main.h @@ -28,6 +28,8 @@ extern "C" { * GLOBAL PROTOTYPES **********************/ lv_obj_t * _lv_demo_music_main_create(lv_obj_t * parent); +void _lv_demo_music_main_close(void); + void _lv_demo_music_play(uint32_t id); void _lv_demo_music_resume(void); void _lv_demo_music_pause(void); diff --git a/demos/stress/lv_demo_stress.c b/demos/stress/lv_demo_stress.c index b24744307..f6e708935 100644 --- a/demos/stress/lv_demo_stress.c +++ b/demos/stress/lv_demo_stress.c @@ -25,7 +25,7 @@ static void msgbox_del(lv_timer_t * tmr); static void set_y_anim(void * obj, int32_t v); static void set_width_anim(void * obj, int32_t v); static void arc_set_end_angle_anim(void * obj, int32_t v); -static void obj_test_task_cb(lv_timer_t * tmr); +static void obj_test_timer_cb(lv_timer_t * tmr); /********************** * STATIC VARIABLES @@ -34,6 +34,8 @@ static lv_obj_t * main_page; static lv_obj_t * ta; static const char * mbox_btns[] = {"Ok", "Cancel", ""}; static uint32_t mem_free_start = 0; +static lv_timer_t * obj_test_timer; + /********************** * MACROS **********************/ @@ -45,14 +47,21 @@ static uint32_t mem_free_start = 0; void lv_demo_stress(void) { LV_LOG_USER("Starting stress test. (< 100 bytes permanent memory leak is normal due to fragmentation)"); - lv_timer_create(obj_test_task_cb, LV_DEMO_STRESS_TIME_STEP, NULL); + obj_test_timer = lv_timer_create(obj_test_timer_cb, LV_DEMO_STRESS_TIME_STEP, NULL); +} + +void lv_demo_stress_close(void) +{ + lv_timer_del(obj_test_timer); + lv_obj_clean(lv_scr_act()); + lv_obj_clean(lv_layer_top()); } /********************** * STATIC FUNCTIONS **********************/ -static void obj_test_task_cb(lv_timer_t * tmr) +static void obj_test_timer_cb(lv_timer_t * tmr) { (void) tmr; /*Unused*/ static int16_t state = -1; diff --git a/demos/stress/lv_demo_stress.h b/demos/stress/lv_demo_stress.h index f71836662..aacc9e1cc 100644 --- a/demos/stress/lv_demo_stress.h +++ b/demos/stress/lv_demo_stress.h @@ -30,6 +30,8 @@ extern "C" { **********************/ void lv_demo_stress(void); +void lv_demo_stress_close(void); + /********************** * MACROS **********************/ diff --git a/demos/widgets/lv_demo_widgets.c b/demos/widgets/lv_demo_widgets.c index 839b999c0..44567e420 100644 --- a/demos/widgets/lv_demo_widgets.c +++ b/demos/widgets/lv_demo_widgets.c @@ -86,6 +86,8 @@ static uint32_t session_desktop = 1000; static uint32_t session_tablet = 1000; static uint32_t session_mobile = 1000; +static lv_timer_t * meter2_timer; + /********************** * MACROS **********************/ @@ -196,6 +198,22 @@ void lv_demo_widgets(void) color_changer_create(tv); } +void lv_demo_widgets_close(void) +{ + /*Delete all animation*/ + lv_anim_del(NULL, NULL); + + lv_timer_del(meter2_timer); + meter2_timer = NULL; + + lv_obj_clean(lv_scr_act()); + + lv_style_reset(&style_text_muted); + lv_style_reset(&style_title); + lv_style_reset(&style_icon); + lv_style_reset(&style_bullet); +} + /********************** * STATIC FUNCTIONS **********************/ @@ -205,6 +223,7 @@ static void profile_create(lv_obj_t * parent) lv_obj_t * panel1 = lv_obj_create(parent); lv_obj_set_height(panel1, LV_SIZE_CONTENT); + LV_IMG_DECLARE(img_demo_widgets_avatar); lv_obj_t * avatar = lv_img_create(panel1); lv_img_set_src(avatar, &img_demo_widgets_avatar); @@ -698,7 +717,7 @@ static void analytics_create(lv_obj_t * parent) lv_meter_set_indicator_start_value(meter2, meter2_indic[2], 70); lv_meter_set_indicator_end_value(meter2, meter2_indic[2], 99); - lv_timer_create(meter2_timer_cb, 100, meter2_indic); + meter2_timer = lv_timer_create(meter2_timer_cb, 100, meter2_indic); meter3 = create_meter_box(parent, "Network Speed", "Low speed", "Normal Speed", "High Speed"); if(disp_size < DISP_LARGE) lv_obj_add_flag(lv_obj_get_parent(meter3), LV_OBJ_FLAG_FLEX_IN_NEW_TRACK); diff --git a/demos/widgets/lv_demo_widgets.h b/demos/widgets/lv_demo_widgets.h index 66dddafc6..8d70df168 100644 --- a/demos/widgets/lv_demo_widgets.h +++ b/demos/widgets/lv_demo_widgets.h @@ -27,6 +27,7 @@ extern "C" { * GLOBAL PROTOTYPES **********************/ void lv_demo_widgets(void); +void lv_demo_widgets_close(void); /********************** * MACROS diff --git a/src/core/lv_obj.h b/src/core/lv_obj.h index c89e46099..a6a9ac38c 100644 --- a/src/core/lv_obj.h +++ b/src/core/lv_obj.h @@ -188,6 +188,7 @@ typedef struct _lv_obj_t { uint16_t style_cnt : 6; uint16_t h_layout : 1; uint16_t w_layout : 1; + uint16_t being_deleted : 1; } lv_obj_t; diff --git a/src/core/lv_obj_tree.c b/src/core/lv_obj_tree.c index d3ad16ae3..dbd350a46 100644 --- a/src/core/lv_obj_tree.c +++ b/src/core/lv_obj_tree.c @@ -360,6 +360,8 @@ static void obj_del_core(lv_obj_t * obj) lv_res_t res = lv_event_send(obj, LV_EVENT_DELETE, NULL); if(res == LV_RES_INV) return; + obj->being_deleted = 1; + /*Recursively delete the children*/ lv_obj_t * child = lv_obj_get_child(obj, 0); while(child) { diff --git a/src/extra/widgets/tabview/lv_tabview.c b/src/extra/widgets/tabview/lv_tabview.c index b77e0be3e..edd1f749f 100755 --- a/src/extra/widgets/tabview/lv_tabview.c +++ b/src/extra/widgets/tabview/lv_tabview.c @@ -77,8 +77,8 @@ lv_obj_t * lv_tabview_add_tab(lv_obj_t * obj, const char * name) lv_obj_t * btns = lv_tabview_get_tab_btns(obj); - char ** old_map = tabview->map; - char ** new_map; + const char ** old_map = (const char **)tabview->map; + const char ** new_map; /*top or bottom dir*/ if(tabview->tab_pos & LV_DIR_VER) { @@ -138,6 +138,8 @@ void lv_tabview_rename_tab(lv_obj_t * obj, uint32_t id, const char * new_name) void lv_tabview_set_act(lv_obj_t * obj, uint32_t id, lv_anim_enable_t anim_en) { LV_ASSERT_OBJ(obj, MY_CLASS); + if(obj->being_deleted) return; + lv_tabview_t * tabview = (lv_tabview_t *)obj; if(id >= tabview->tab_cnt) { diff --git a/src/extra/widgets/tabview/lv_tabview.h b/src/extra/widgets/tabview/lv_tabview.h index 388c65477..ee7d7ce41 100644 --- a/src/extra/widgets/tabview/lv_tabview.h +++ b/src/extra/widgets/tabview/lv_tabview.h @@ -27,7 +27,7 @@ extern "C" { typedef struct { lv_obj_t obj; - char ** map; + const char ** map; uint16_t tab_cnt; uint16_t tab_cur; lv_dir_t tab_pos; From 0fc55689929cded9fb67d73a07973d29973cdce1 Mon Sep 17 00:00:00 2001 From: Gabriel Wang Date: Wed, 5 Jul 2023 12:39:10 +0100 Subject: [PATCH 26/95] chore(cmsis-pack): update cmsis-pack for v8.3.8 (#4340) --- ...L.lvgl.8.3.7.pack => LVGL.lvgl.8.3.8.pack} | Bin 4971308 -> 4986798 bytes env_support/cmsis-pack/LVGL.lvgl.pdsc | 48 ++++++++++++++++-- env_support/cmsis-pack/LVGL.pidx | 4 +- env_support/cmsis-pack/lv_conf_cmsis.h | 8 ++- library.json | 2 +- library.properties | 2 +- lv_conf_template.h | 2 +- lvgl.h | 2 +- 8 files changed, 57 insertions(+), 11 deletions(-) rename env_support/cmsis-pack/{LVGL.lvgl.8.3.7.pack => LVGL.lvgl.8.3.8.pack} (93%) diff --git a/env_support/cmsis-pack/LVGL.lvgl.8.3.7.pack b/env_support/cmsis-pack/LVGL.lvgl.8.3.8.pack similarity index 93% rename from env_support/cmsis-pack/LVGL.lvgl.8.3.7.pack rename to env_support/cmsis-pack/LVGL.lvgl.8.3.8.pack index e6c23f54a6af4827b01039e20b4b8104d20e4b5c..69ed80d425f5f9304fca8d19e5c0f06f14a23a7b 100644 GIT binary patch delta 268498 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

Jf21GcXdu2I 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®aJDS5k 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�V?ax7B+-b1I#T-}kNY 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 QbBa!}E26opFW`Uu4>Bb2T>t<8 delta 281145 zcmY(p1CTCD6Rtb9ZQHi7#ZX&j_Q0OE3>OQI-;T? z-}>sW2dS;A2SHGj0R=+?`uEb+K2}deAVSvp$Ntap|2&Y=8;U?s|F6J*0}>6H!Tz-k zsccaHgQgiM$J+l$xb4IHf7B+x0&I!!A65zhKLq}V`GdfBbpIO$Veg?_m=g%--$wWE zFgWP|cp3P%(K}!j&i{h(DM7Gl|3e;S5OkRTh;e{_m^P_gX}OEJ*g)(W{=uSxJ#n6snh6fE1t!RZRGM4S)%H;pxbcsE;rzQ8)X! zbob=w$j5~pw}h?O656{Oa`CQ-(B9ybH{eEo<$`?wxo)Y$``oLTq@WJ?Ic$C@;x zxa15gZihNNR|NCE#~pu1H~qCt(N(97;^gi~@OOSlQY9Ka`qK@(JM!T=FK8ao;0Ygx znd-2dpNDWb1^S?i7zvXR1SJ_6_2C7|M?oYyO}>AB4L~aa4faVT%lNQn;`3vd89&~= zak_Y$;FtY25@JMOM)`h%*?vnzOPNU}$*J_#L7D2x z{D?l0gH#w!*0pe=5e-Ox4(>IRwbD1`&q4O90*sFaHzmLRYKwBvZ*?o#9w>}f7+2Hl zDAt;yme-u5y7w}BW**rIz8Mivo zhd;^M8A(rWx+^9(9w}n3rA4F9Koh$XzvPx0=x-#v>(`^%)ksyANWKb}Iy0L8*|?YF z0_4k^qpCWGh0*J@x`Ff3rup?P7Z|>3Fssv=`0WEv!<$e8r7unf{2eU>f>;pgIGxef zp72O=tFfX9pgS%(2?jn}tf7?y9}=SW30hN2^yLoV@aMFZHqB{R{T14`ea!`FaZ~+C{J;e84lXp%Cy>w=m1`q1`#-%c1hB?+d@47P(_G31hjIF zp?3-B>N9J~0(0$f$lfcEiR6`MwH=S#x8cO#_pV*>7MzqFtDdm4StZfyIADvPR*J>t z4N8`luA@X-o3$08uaLx$Zqrqs8RRx|(P5*;{*0eo!KSlDHnv~2oa@M(#Gw0>VxR6o0|Ooc{Zw2ZYF zZBDdCYb)p*Ff@o8)A@czE+uq`@O=9nAod7RL4hJIexv9_5gDe2pExir%g%l&S5f$$ z2oTB@T%9RCbtyNuzfDwUkHU)qyFrpRmEy$Tssz;+^1GLPPWh90! z7A)_vLh^AbT$?BBzKM6foowioEaHo^`0P)}D`q)r1v7RD zTB=5rnqAeRnR|!kNA9sGUMbExo^z`oN?Pj$E4u?GC4!T+7;?+r-z91sirfzBm;@5`8BMg?gF%~E?R*~F&p}cSSY_Ix~QOgfzslK{a_;Vo1`?? z_MxmJemUw@2fPK`k$KLcoXQApmmdk9a5uwc8th0-{?%0DRDL&C1F&O8E>~vBktnFq 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[yf}iw(NbK!sC5e#!lL-&J_1Gt{ipINl?uG% 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 E08#28s{jB1 diff --git a/env_support/cmsis-pack/LVGL.lvgl.pdsc b/env_support/cmsis-pack/LVGL.lvgl.pdsc index 3f0f32f62..1b027f402 100644 --- a/env_support/cmsis-pack/LVGL.lvgl.pdsc +++ b/env_support/cmsis-pack/LVGL.lvgl.pdsc @@ -36,7 +36,12 @@ https://github.com/lvgl/lvgl.git - + + - LVGL 8.3.9 + - Add snapshot, fragment, imgfont, gridnav, msg and monkey + - Other minor fixes + + - LVGL 8.3.8 - Add renesas-ra6m3 gpu adaptation - Improve performance and add more features for PXP and VGLite @@ -294,7 +299,7 @@ --> - + LVGL (Light and Versatile Graphics Library) is a free and open-source graphics library providing everything you need to create an embedded GUI with easy-to-use graphical elements, beautiful visual effects and a low memory footprint. @@ -761,6 +766,97 @@ + + Add the Snapshot service + + + + + + + +/*! \brief enable snapshot support */ +#define LV_USE_SNAPSHOT 1 + + + + + + Add the Fragment service + + + + + + + + +/*! \brief enable fragment support */ +#define LV_USE_FRAGMENT 1 + + + + + + Add the Grid Navigation service + + + + + + + +/*! \brief enable the Grid Navigation support*/ +#define LV_USE_GRIDNAV 1 + + + + + + Add the Image Font service + + + + + + + +/*! \brief enable the image font support*/ +#define LV_USE_IMGFONT 1 + + + + + + Add the Monkey service + + + + + + + +/*! \brief enable the monkey service support*/ +#define LV_USE_MONKEY 1 + + + + + + Add the Message service + + + + + + + +/*! \brief enable the message service support*/ +#define LV_USE_MSG 1 + + + + Add the official benchmark. diff --git a/env_support/cmsis-pack/LVGL.pidx b/env_support/cmsis-pack/LVGL.pidx index 076f837ac..24160e993 100644 --- a/env_support/cmsis-pack/LVGL.pidx +++ b/env_support/cmsis-pack/LVGL.pidx @@ -2,8 +2,8 @@ LVGL https://raw.githubusercontent.com/lvgl/lvgl/master/env_support/cmsis-pack/ - 2023-07-04 + 2023-08-04 - + \ No newline at end of file diff --git a/env_support/cmsis-pack/lv_conf_cmsis.h b/env_support/cmsis-pack/lv_conf_cmsis.h index c7cd87d37..93d8a6323 100644 --- a/env_support/cmsis-pack/lv_conf_cmsis.h +++ b/env_support/cmsis-pack/lv_conf_cmsis.h @@ -1,6 +1,6 @@ /** * @file lv_conf.h - * Configuration file for v8.3.8 + * Configuration file for v8.3.9 */ /* clang-format off */ diff --git a/library.json b/library.json index a55772d53..723d30246 100644 --- a/library.json +++ b/library.json @@ -1,6 +1,6 @@ { "name": "lvgl", - "version": "8.3.8", + "version": "8.3.9", "keywords": "graphics, gui, embedded, tft, lvgl", "description": "Graphics library to create embedded GUI with easy-to-use graphical elements, beautiful visual effects and low memory footprint. It offers anti-aliasing, opacity, and animations using only one frame buffer.", "repository": { diff --git a/library.properties b/library.properties index ddea9b42f..2fe2dd2ba 100644 --- a/library.properties +++ b/library.properties @@ -1,5 +1,5 @@ name=lvgl -version=8.3.8 +version=8.3.9 author=kisvegabor maintainer=kisvegabor,embeddedt,pete-pjb sentence=Full-featured Graphics Library for Embedded Systems diff --git a/lv_conf_template.h b/lv_conf_template.h index cb3887d34..66535138d 100644 --- a/lv_conf_template.h +++ b/lv_conf_template.h @@ -1,6 +1,6 @@ /** * @file lv_conf.h - * Configuration file for v8.3.8 + * Configuration file for v8.3.9 */ /* diff --git a/lvgl.h b/lvgl.h index 85782a066..99ce263d2 100644 --- a/lvgl.h +++ b/lvgl.h @@ -15,7 +15,7 @@ extern "C" { ***************************/ #define LVGL_VERSION_MAJOR 8 #define LVGL_VERSION_MINOR 3 -#define LVGL_VERSION_PATCH 8 +#define LVGL_VERSION_PATCH 9 #define LVGL_VERSION_INFO "" /********************* From ca5c1fa47f86d2a336ae681e882d0480aaf0e782 Mon Sep 17 00:00:00 2001 From: Gabor Kiss-Vamosi Date: Sun, 6 Aug 2023 22:28:22 +0200 Subject: [PATCH 44/95] docs: update changelog --- docs/CHANGELOG.md | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/docs/CHANGELOG.md b/docs/CHANGELOG.md index c271563af..984ba1089 100644 --- a/docs/CHANGELOG.md +++ b/docs/CHANGELOG.md @@ -1,5 +1,35 @@ # Changelog + +## [v8.3.9](https://github.com/lvgl/lvgl/compare/v8.3.9...v8.3.8) 6 August 2023 + + +### Fixes + +- fix(decoder): fix LV_IMG_CF_ALPHA_8BIT bin file decoder [`4406`](https://github.com/lvgl/lvgl/pull/4406) +- fix(config): fix typo in LV_USE_PERF_MONITOR and LV_USE_MEM_MONITOR [`4403`](https://github.com/lvgl/lvgl/pull/4403) +- fix(attr): refactor LV_ATTRIBUTE_* for function attributes [`4404`](https://github.com/lvgl/lvgl/pull/4404) +- fix(font): fix optimizer issue in lv_font_fmt_txt.c [`4385`](https://github.com/lvgl/lvgl/pull/4385) +- fix(btnmatrix): Hide button matrix when all buttons hidden [`65f1c93`](https://github.com/lvgl/lvgl/commit/65f1c9305e1b13356010524da4764fe20fe93030) +- fix(obj) prevent hidden objects keeping focus [`375b3b5`](https://github.com/lvgl/lvgl/commit/375b3b5d3ef2ea8c52f971a1bf20998be7940d5e) +- fix(btnmatrix): Fix typo in previous commit! [`29ed7c5`](https://github.com/lvgl/lvgl/commit/29ed7c5717f6cfbca5ce888bf4497221525aae85) +- fix(tabview): fix warning [`223dc1c`](https://github.com/lvgl/lvgl/commit/223dc1cf9d1cad0f40caf244eb435af0871f4153) +- fix(indev): fix warnings when loggin coordinates is enabled [`645006e`](https://github.com/lvgl/lvgl/commit/645006e35195cab3354f34a1a8cbc8c5ed0fdfad) +- fix: use const lv_img_dsc_t * dsc function parameter in lv_img_buf.h/ [`4f102d7`](https://github.com/lvgl/lvgl/commit/4f102d7b6b2e9f9fa68ab7b976d93762107549a4) +- fix(chart): fix lv_chart_get_point_pos_by_id [`f9ffcc9`](https://github.com/lvgl/lvgl/commit/f9ffcc9d8e11beb369dcbab0945ca85eab8f77b2) +- fix(imgbtn): support LV_OBJ_FLAG_CHECKABLE [`385d999`](https://github.com/lvgl/lvgl/commit/385d999a4a8164fcde6ae05f6a5daa5d5c209dd3) + + +### Docs + +- docs(disp): metined that rotation rotates the touch coordinates too [`810852b`](https://github.com/lvgl/lvgl/commit/810852b41be5df66fd7b80f8af69f8b579d142ea) + + +### Others + +- demos: add lv_demo_..._close() functions for each demo [`91038a9`](https://github.com/lvgl/lvgl/commit/91038a99e82a2522f693c7cdc77e9e7a672ee9ed) + + ## [v8.3.8](https://github.com/lvgl/lvgl/compare/v8.3.8...v8.3.7) 5 July 2023 ### New Features From 3e204db5f1eb12f119e9bcf34d0e18b88fc29775 Mon Sep 17 00:00:00 2001 From: BurkerA <87374013+BurkerA@users.noreply.github.com> Date: Wed, 9 Aug 2023 14:43:21 +0200 Subject: [PATCH 45/95] fix(btnmatrix): fix tapping just outside a button in a buttonmatrix See #4439 --- src/widgets/lv_btnmatrix.c | 1 + 1 file changed, 1 insertion(+) diff --git a/src/widgets/lv_btnmatrix.c b/src/widgets/lv_btnmatrix.c index 1d2df0d8c..b0dc8df3f 100644 --- a/src/widgets/lv_btnmatrix.c +++ b/src/widgets/lv_btnmatrix.c @@ -440,6 +440,7 @@ static void lv_btnmatrix_event(const lv_obj_class_t * class_p, lv_event_t * e) lv_indev_get_point(param, &p); btn_pr = get_button_from_point(obj, &p); /*Handle the case where there is no button there*/ + btnm->btn_id_sel = LV_BTNMATRIX_BTN_NONE; if(btn_pr != LV_BTNMATRIX_BTN_NONE) { if(button_is_inactive(btnm->ctrl_bits[btn_pr]) == false && button_is_hidden(btnm->ctrl_bits[btn_pr]) == false) { From c408e9906bcec5bdeaa9927a891b9a03ab6abc95 Mon Sep 17 00:00:00 2001 From: Gabor Kiss-Vamosi Date: Sun, 13 Aug 2023 22:13:47 +0200 Subject: [PATCH 46/95] docs(simulator): remove SDL support from the Visual Studio project --- docs/get-started/platforms/pc-simulator.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/get-started/platforms/pc-simulator.md b/docs/get-started/platforms/pc-simulator.md index 3bdc49591..95c35ff30 100644 --- a/docs/get-started/platforms/pc-simulator.md +++ b/docs/get-started/platforms/pc-simulator.md @@ -15,7 +15,7 @@ The simulator is ported to various IDEs (Integrated Development Environments). C - [Eclipse with SDL driver](https://github.com/lvgl/lv_sim_eclipse_sdl): Recommended on Linux and Mac - [CodeBlocks](https://github.com/lvgl/lv_sim_codeblocks_win): Recommended on Windows -- [VisualStudio with SDL driver](https://github.com/lvgl/lv_sim_visual_studio_sdl): For Windows +- [VisualStudio](https://github.com/lvgl/lv_sim_visual_studio_sdl): For Windows - [VSCode with SDL driver](https://github.com/lvgl/lv_sim_vscode_sdl): Recommended on Linux and Mac - [PlatformIO with SDL driver](https://github.com/lvgl/lv_platformio): Recommended on Linux and Mac - [MDK with FastModel](https://github.com/lvgl/lv_port_an547_cm55_sim): For Windows From 5a0979e966da3c06b45d90240f293088d581af65 Mon Sep 17 00:00:00 2001 From: Gabor Kiss-Vamosi Date: Fri, 25 Aug 2023 13:25:22 +0200 Subject: [PATCH 47/95] fix(dropdown): position to the selected item in lv_dropdown_set_selected --- src/widgets/lv_dropdown.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/widgets/lv_dropdown.c b/src/widgets/lv_dropdown.c index 241d17776..974435b2d 100644 --- a/src/widgets/lv_dropdown.c +++ b/src/widgets/lv_dropdown.c @@ -285,6 +285,10 @@ void lv_dropdown_set_selected(lv_obj_t * obj, uint16_t sel_opt) dropdown->sel_opt_id = sel_opt < dropdown->option_cnt ? sel_opt : dropdown->option_cnt - 1; dropdown->sel_opt_id_orig = dropdown->sel_opt_id; + if(dropdown->list) { + position_to_selected(obj); + } + lv_obj_invalidate(obj); } From e467feb74e59ec7c5903f84e586f86ebb05f1775 Mon Sep 17 00:00:00 2001 From: Gabor Kiss-Vamosi Date: Fri, 25 Aug 2023 14:24:49 +0200 Subject: [PATCH 48/95] ci(dropdown): fix test --- tests/ref_imgs/dropdown_1.png | Bin 12395 -> 12588 bytes tests/src/test_cases/test_dropdown.c | 2 +- 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/ref_imgs/dropdown_1.png b/tests/ref_imgs/dropdown_1.png index 30bf0bb75d32354ffeaa4919458518c951386279..27930149676c8d532026aaa49f59b0ab56720cbc 100644 GIT binary patch literal 12588 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 QL6}8Ul{6J|6)bN2A8H@eQ~&?~ literal 12395 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 Date: Fri, 25 Aug 2023 14:25:15 +0200 Subject: [PATCH 49/95] ci: update screenshot compare from v9 to automatically create missing reference images --- tests/unity/unity_support.c | 288 ++++++++++++++++++++++-------------- 1 file changed, 179 insertions(+), 109 deletions(-) diff --git a/tests/unity/unity_support.c b/tests/unity/unity_support.c index 6906bd22b..39aea99a1 100644 --- a/tests/unity/unity_support.c +++ b/tests/unity/unity_support.c @@ -28,6 +28,8 @@ *********************/ //#define REF_IMGS_PATH "lvgl/tests/lv_test_ref_imgs/" #define REF_IMGS_PATH "ref_imgs/" +#define ERR_FILE_NOT_FOUND -1 +#define ERR_PNG -2 /********************** * TYPEDEFS @@ -41,12 +43,13 @@ typedef struct { png_infop info_ptr; int number_of_passes; png_bytep * row_pointers; -}png_img_t; +} png_img_t; /********************** * STATIC PROTOTYPES **********************/ -static int read_png_file(png_img_t * p, const char* file_name); +static int read_png_file(png_img_t * p, const char * file_name); +static int write_png_file(void * raw_img, uint32_t width, uint32_t height, char * file_name); static void png_release(png_img_t * p); /********************** @@ -63,95 +66,74 @@ static void png_release(png_img_t * p); bool lv_test_assert_img_eq(const char * fn_ref) { - char fn_ref_full[512]; - sprintf(fn_ref_full, "%s%s", REF_IMGS_PATH, fn_ref); - - png_img_t p; - int res = read_png_file(&p, fn_ref_full); - if(res < 0) return false; - uint8_t * screen_buf; - - lv_obj_invalidate(lv_scr_act()); - lv_refr_now(NULL); - - extern lv_color_t test_fb[]; - - screen_buf = (uint8_t *)test_fb; - - uint8_t * ptr_act = NULL; - const png_byte* ptr_ref = NULL; - - bool err = false; - int x, y, i_buf = 0; - for (y = 0; y < p.height; y++) { - png_byte* row = p.row_pointers[y]; - - for (x = 0; x < p.width; x++) { - ptr_ref = &(row[x*3]); - ptr_act = &(screen_buf[i_buf*4]); - - uint32_t ref_px = 0; - uint32_t act_px = 0; - memcpy(&ref_px, ptr_ref, 3); - memcpy(&act_px, ptr_act, 3); - //printf("0xFF%06x, ", act_px); - - uint8_t act_swap[3] = {ptr_act[2], ptr_act[1], ptr_act[0]}; - - if(memcmp(act_swap, ptr_ref, 3) != 0) { - err = true; - break; - } - i_buf++; - } - if(err) break; - } - - if(err) { - uint32_t ref_px = 0; - uint32_t act_px = 0; - memcpy(&ref_px, ptr_ref, 3); - memcpy(&act_px, ptr_act, 3); - - FILE * f = fopen("../test_screenshot_error.h", "w"); - - fprintf(f, "//Diff in %s at (%d;%d), %x instead of %x)\n\n", fn_ref, x, y, act_px, ref_px); - fprintf(f, "static const uint32_t test_screenshot_error_data[] = {\n"); - - i_buf = 0; - for (y = 0; y < 480; y++) { - fprintf(f, "\n"); - for (x = 0; x < 800; x++) { - ptr_act = &(screen_buf[i_buf * 4]); - act_px = 0; - memcpy(&act_px, ptr_act, 3); - fprintf(f, "0xFF%06X, ", act_px); - i_buf++; - } - } - fprintf(f, "};\n\n"); + char fn_ref_full[512]; + sprintf(fn_ref_full, "%s%s", REF_IMGS_PATH, fn_ref); + + uint8_t * screen_buf; + + lv_obj_invalidate(lv_scr_act()); + lv_refr_now(NULL); + + extern lv_color32_t test_fb[]; + + screen_buf = (uint8_t *)test_fb; + + png_img_t p; + int res = read_png_file(&p, fn_ref_full); + if(res == ERR_FILE_NOT_FOUND) { + TEST_PRINTF("%s%s", fn_ref_full, " was not found, creating is now from the rendered screen"); + fflush(stderr); + write_png_file(screen_buf, 800, 480, fn_ref_full); + + return true; + } + else if(res == ERR_PNG) { + return false; + } - fprintf(f, "static lv_img_dsc_t test_screenshot_error_dsc = { \n" - " .header.w = 800,\n" - " .header.h = 480,\n" - " .header.always_zero = 0,\n" - " .header.cf = LV_IMG_CF_TRUE_COLOR,\n" - " .data_size = 800 * 480 * 4,\n" - " .data = test_screenshot_error_data};\n\n" - "static inline void test_screenshot_error_show(void)\n" - "{\n" - " lv_obj_t * img = lv_img_create(lv_scr_act());\n" - " lv_img_set_src(img, &test_screenshot_error_dsc);\n" - "}\n"); + uint8_t * ptr_act = NULL; + const png_byte * ptr_ref = NULL; - fclose(f); + bool err = false; + int x, y, i_buf = 0; + for(y = 0; y < p.height; y++) { + png_byte * row = p.row_pointers[y]; - } + for(x = 0; x < p.width; x++) { + ptr_ref = &(row[x * 3]); + ptr_act = &(screen_buf[i_buf * 4]); + uint32_t ref_px = 0; + uint32_t act_px = 0; + memcpy(&ref_px, ptr_ref, 3); + memcpy(&act_px, ptr_act, 3); + //printf("0xFF%06x, ", act_px); + + uint8_t act_swap[3] = {ptr_act[2], ptr_act[1], ptr_act[0]}; + + if(memcmp(act_swap, ptr_ref, 3) != 0) { + err = true; + break; + } + i_buf++; + } + if(err) break; + } + + if(err) { + char fn_ref_no_ext[64]; + strcpy(fn_ref_no_ext, fn_ref); + fn_ref_no_ext[strlen(fn_ref_no_ext) - 4] = '\0'; + + char fn_err_full[512]; + sprintf(fn_err_full, "%s%s_err.png", REF_IMGS_PATH, fn_ref_no_ext); + + write_png_file(screen_buf, 800, 480, fn_err_full); + } - png_release(&p); + png_release(&p); - return !err; + return !err; } @@ -159,39 +141,39 @@ bool lv_test_assert_img_eq(const char * fn_ref) * STATIC FUNCTIONS **********************/ -static int read_png_file(png_img_t * p, const char* file_name) +static int read_png_file(png_img_t * p, const char * file_name) { char header[8]; // 8 is the maximum size that can be checked /*open file and test for it being a png*/ - FILE *fp = fopen(file_name, "rb"); - if (!fp) { - TEST_PRINTF("%s", "PNG file %s could not be opened for reading"); - return -1; + FILE * fp = fopen(file_name, "rb"); + if(!fp) { + TEST_PRINTF("[read_png_file %s] could not be opened for reading", file_name); + return ERR_FILE_NOT_FOUND; } size_t rcnt = fread(header, 1, 8, fp); - if (rcnt != 8 || png_sig_cmp((png_const_bytep)header, 0, 8)) { - TEST_PRINTF("%s is not recognized as a PNG file", file_name); - return -1; + if(rcnt != 8 || png_sig_cmp((png_const_bytep)header, 0, 8)) { + TEST_PRINTF("[read_png_file %s] not recognized as a PNG file", file_name); + return ERR_PNG; } /*initialize stuff*/ p->png_ptr = png_create_read_struct(PNG_LIBPNG_VER_STRING, NULL, NULL, NULL); - if (!p->png_ptr) { - TEST_PRINTF("%s", "png_create_read_struct failed"); - return -1; + if(!p->png_ptr) { + TEST_PRINTF("[read_png_file %s] png_create_read_struct failed", file_name); + return ERR_PNG; } p->info_ptr = png_create_info_struct(p->png_ptr); - if (!p->info_ptr) { - TEST_PRINTF("%s", "png_create_info_struct failed"); - return -1; + if(!p->info_ptr) { + TEST_PRINTF("[read_png_file %s] png_create_info_struct failed", file_name); + return ERR_PNG; } - if (setjmp(png_jmpbuf(p->png_ptr))) { - TEST_PRINTF("%s", "Error during init_io"); - return -1; + if(setjmp(png_jmpbuf(p->png_ptr))) { + TEST_PRINTF("[read_png_file %s] Error during init_io", file_name); + return ERR_PNG; } png_init_io(p->png_ptr, fp); png_set_sig_bytes(p->png_ptr, 8); @@ -207,15 +189,15 @@ static int read_png_file(png_img_t * p, const char* file_name) png_read_update_info(p->png_ptr, p->info_ptr); /*read file*/ - if (setjmp(png_jmpbuf(p->png_ptr))) { - TEST_PRINTF("%s", "Error during read_image"); - return -1; + if(setjmp(png_jmpbuf(p->png_ptr))) { + TEST_PRINTF("[read_png_file %s] Error during read_image", file_name); + return ERR_PNG; } - p->row_pointers = (png_bytep*) malloc(sizeof(png_bytep) * p->height); + p->row_pointers = (png_bytep *) malloc(sizeof(png_bytep) * p->height); int y; - for (y=0; yheight; y++) - p->row_pointers[y] = (png_byte*) malloc(png_get_rowbytes(p->png_ptr,p->info_ptr)); + for(y = 0; y < p->height; y++) + p->row_pointers[y] = (png_byte *) malloc(png_get_rowbytes(p->png_ptr, p->info_ptr)); png_read_image(p->png_ptr, p->row_pointers); @@ -223,10 +205,98 @@ static int read_png_file(png_img_t * p, const char* file_name) return 0; } + +static int write_png_file(void * raw_img, uint32_t width, uint32_t height, char * file_name) +{ + png_structp png_ptr; + png_infop info_ptr; + + /* create file */ + FILE * fp = fopen(file_name, "wb"); + if(!fp) { + printf("###### %s\n", file_name); + fflush(stdout); + TEST_PRINTF("[write_png_file %s] could not be opened for writing", file_name); + TEST_PRINTF("%s", file_name); + return -1; + } + + /* initialize stuff */ + png_ptr = png_create_write_struct(PNG_LIBPNG_VER_STRING, NULL, NULL, NULL); + + if(!png_ptr) { + TEST_PRINTF("[write_png_file %s] png_create_write_struct failed", file_name); + return -1; + } + + info_ptr = png_create_info_struct(png_ptr); + if(!info_ptr) { + TEST_PRINTF("[write_png_file %s] png_create_info_struct failed", file_name); + return -1; + } + + if(setjmp(png_jmpbuf(png_ptr))) { + TEST_PRINTF("[write_png_file %s] Error during init_io", file_name); + return -1; + } + + png_init_io(png_ptr, fp); + + /* write header */ + if(setjmp(png_jmpbuf(png_ptr))) { + TEST_PRINTF("[write_png_file %s] Error during writing header", file_name); + return -1; + } + + png_set_IHDR(png_ptr, info_ptr, width, height, + 8, PNG_COLOR_TYPE_RGB, PNG_INTERLACE_NONE, + PNG_COMPRESSION_TYPE_BASE, PNG_FILTER_TYPE_BASE); + + png_write_info(png_ptr, info_ptr); + + + /* write bytes */ + if(setjmp(png_jmpbuf(png_ptr))) { + TEST_PRINTF("[write_png_file %s] Error during writing bytes", file_name); + return -1; + } + + uint8_t * raw_img8 = (uint8_t *)raw_img; + png_bytep * row_pointers = (png_bytep *) malloc(sizeof(png_bytep) * height); + for(uint32_t y = 0; y < height; y++) { + row_pointers[y] = malloc(3 * width); + uint8_t * line = raw_img8 + y * width * 4; + for(uint32_t x = 0; x < width; x++) { + row_pointers[y][x * 3 + 0] = line[x * 4 + 2]; + row_pointers[y][x * 3 + 1] = line[x * 4 + 1]; + row_pointers[y][x * 3 + 2] = line[x * 4 + 0]; + } + } + png_write_image(png_ptr, row_pointers); + + + /* end write */ + if(setjmp(png_jmpbuf(png_ptr))) { + TEST_PRINTF("[write_png_file %s] Error during end of write", file_name); + return -1; + } + png_write_end(png_ptr, NULL); + + /* cleanup heap allocation */ + for(uint32_t y = 0; y < height; y++) free(row_pointers[y]); + free(row_pointers); + + png_destroy_write_struct(&png_ptr, &info_ptr); + + fclose(fp); + return 0; +} + + static void png_release(png_img_t * p) { int y; - for (y=0; yheight; y++) free(p->row_pointers[y]); + for(y = 0; y < p->height; y++) free(p->row_pointers[y]); free(p->row_pointers); From de8d1e97936229bcbb73e3f8ff090cfb5ae507bc Mon Sep 17 00:00:00 2001 From: Xiaosheng An <36487580+ONLYA@users.noreply.github.com> Date: Fri, 25 Aug 2023 22:02:35 +0100 Subject: [PATCH 50/95] fix(sdl): add missing parameter in lv_draw_sdl_composite_texture_obtain (#4490) --- src/draw/sdl/lv_draw_sdl_composite.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/draw/sdl/lv_draw_sdl_composite.c b/src/draw/sdl/lv_draw_sdl_composite.c index e155570d8..9bf6385e5 100644 --- a/src/draw/sdl/lv_draw_sdl_composite.c +++ b/src/draw/sdl/lv_draw_sdl_composite.c @@ -101,7 +101,8 @@ bool lv_draw_sdl_composite_begin(lv_draw_sdl_ctx_t * ctx, const lv_area_t * coor SDL_RenderFillRect(ctx->renderer, NULL); SDL_SetRenderDrawBlendMode(ctx->renderer, SDL_BLENDMODE_BLEND); #if LV_GPU_SDL_CUSTOM_BLEND_MODE - internals->mask = lv_draw_sdl_composite_texture_obtain(ctx, LV_DRAW_SDL_COMPOSITE_TEXTURE_ID_STREAM0, w, h); + internals->mask = lv_draw_sdl_composite_texture_obtain(ctx, LV_DRAW_SDL_COMPOSITE_TEXTURE_ID_STREAM0, w, h, + &internals->composition_cached); dump_masks(internals->mask, apply_area); #endif } From e9383b612db1203a5c09d8449b5260d4a723940e Mon Sep 17 00:00:00 2001 From: Gabor Kiss-Vamosi Date: Sun, 27 Aug 2023 21:17:30 +0200 Subject: [PATCH 51/95] demo(sress): fix issues when the stress test is opened/clsoed multiple times --- demos/stress/lv_demo_stress.c | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/demos/stress/lv_demo_stress.c b/demos/stress/lv_demo_stress.c index f6e708935..24a953443 100644 --- a/demos/stress/lv_demo_stress.c +++ b/demos/stress/lv_demo_stress.c @@ -35,6 +35,8 @@ static lv_obj_t * ta; static const char * mbox_btns[] = {"Ok", "Cancel", ""}; static uint32_t mem_free_start = 0; static lv_timer_t * obj_test_timer; +static int16_t state; +static lv_timer_t * msgbox_tmr; /********************** * MACROS @@ -48,11 +50,18 @@ void lv_demo_stress(void) { LV_LOG_USER("Starting stress test. (< 100 bytes permanent memory leak is normal due to fragmentation)"); obj_test_timer = lv_timer_create(obj_test_timer_cb, LV_DEMO_STRESS_TIME_STEP, NULL); + state = -1; } void lv_demo_stress_close(void) { lv_timer_del(obj_test_timer); + obj_test_timer = NULL; + if(msgbox_tmr) { + lv_timer_del(msgbox_tmr); + msgbox_tmr = NULL; + } + lv_obj_clean(lv_scr_act()); lv_obj_clean(lv_layer_top()); } @@ -64,13 +73,10 @@ void lv_demo_stress_close(void) static void obj_test_timer_cb(lv_timer_t * tmr) { (void) tmr; /*Unused*/ - static int16_t state = -1; lv_anim_t a; lv_obj_t * obj; - // printf("step start: %d\n", state); - switch(state) { case -1: { lv_res_t res = lv_mem_test(); @@ -255,8 +261,7 @@ static void obj_test_timer_cb(lv_timer_t * tmr) case 14: obj = lv_msgbox_create(NULL, "Title", "Some text on the message box with average length", mbox_btns, true); - - lv_timer_t * msgbox_tmr = lv_timer_create(msgbox_del, LV_DEMO_STRESS_TIME_STEP * 5 + 30, obj); + msgbox_tmr = lv_timer_create(msgbox_del, LV_DEMO_STRESS_TIME_STEP * 5 + 30, obj); lv_timer_set_repeat_count(msgbox_tmr, 1); lv_obj_align(obj, LV_ALIGN_RIGHT_MID, -10, 0); break; @@ -448,6 +453,7 @@ static void auto_del(lv_obj_t * obj, uint32_t delay) static void msgbox_del(lv_timer_t * tmr) { + msgbox_tmr = NULL; lv_msgbox_close(tmr->user_data); } From cf688803d622ab4fe865f63ce2e1b8867f13abb2 Mon Sep 17 00:00:00 2001 From: Brandon Holland <97706724+bhspyder@users.noreply.github.com> Date: Tue, 29 Aug 2023 11:23:50 -0700 Subject: [PATCH 52/95] feat(disp): add double buffered direct-mode efficient sync algorithm (v8.3) (#4497) Co-authored-by: Gabor Kiss-Vamosi --- src/core/lv_refr.c | 87 ++++++++++++++++++++++++++++++++++++++++++- src/hal/lv_hal_disp.c | 3 ++ src/hal/lv_hal_disp.h | 4 ++ src/misc/lv_area.c | 72 +++++++++++++++++++++++++++++++++++ src/misc/lv_area.h | 9 +++++ 5 files changed, 174 insertions(+), 1 deletion(-) diff --git a/src/core/lv_refr.c b/src/core/lv_refr.c index ec83e0f09..37a0e5c63 100644 --- a/src/core/lv_refr.c +++ b/src/core/lv_refr.c @@ -53,6 +53,7 @@ typedef struct { **********************/ static void lv_refr_join_area(void); static void refr_invalid_areas(void); +static void refr_sync_areas(void); static void refr_area(const lv_area_t * area_p); static void refr_area_part(lv_draw_ctx_t * draw_ctx); static lv_obj_t * lv_refr_get_top_obj(const lv_area_t * area_p, lv_obj_t * obj); @@ -320,12 +321,24 @@ void _lv_disp_refr_timer(lv_timer_t * tmr) } lv_refr_join_area(); - + refr_sync_areas(); refr_invalid_areas(); /*If refresh happened ...*/ if(disp_refr->inv_p != 0) { + /*Copy invalid areas for sync next refresh*/ + if(disp_refr->driver->direct_mode) { + uint16_t i; + for(i = 0; i < disp_refr->inv_p; i++) { + if(disp_refr->inv_area_joined[i]) + continue; + + lv_area_t * sync_area = _lv_ll_ins_tail(&disp_refr->sync_areas); + *sync_area = disp_refr->inv_areas[i]; + } + } + /*Clean up*/ lv_memset_00(disp_refr->inv_areas, sizeof(disp_refr->inv_areas)); lv_memset_00(disp_refr->inv_area_joined, sizeof(disp_refr->inv_area_joined)); @@ -495,6 +508,78 @@ static void lv_refr_join_area(void) } } +/** + * Refresh the sync areas + */ +static void refr_sync_areas(void) +{ + /*Do not sync if not direct mode*/ + if(!disp_refr->driver->direct_mode) return; + + /*Do not sync if not double buffered*/ + if(disp_refr->driver->draw_buf->buf2 == NULL) return; + + /*Do not sync if no sync areas*/ + if(_lv_ll_is_empty(&disp_refr->sync_areas)) return; + + /*The buffers are already swapped. + *So the active buffer is the off screen buffer where LVGL will render*/ + void * buf_off_screen = disp_refr->driver->draw_buf->buf_act; + void * buf_on_screen = disp_refr->driver->draw_buf->buf_act == disp_refr->driver->draw_buf->buf1 + ? disp_refr->driver->draw_buf->buf2 + : disp_refr->driver->draw_buf->buf1; + + /*Get stride for buffer copy*/ + lv_coord_t stride = lv_disp_get_hor_res(disp_refr); + + /*Iterate through invalidated areas to see if sync area should be copied*/ + lv_area_t res[4] = {0}; + int8_t res_c, j; + uint32_t i; + lv_area_t * sync_area, *new_area, *next_area; + for(i = 0; i < disp_refr->inv_p; i++) { + /*Skip joined areas*/ + if(disp_refr->inv_area_joined[i]) continue; + + /*Iterate over sync areas*/ + sync_area = _lv_ll_get_head(&disp_refr->sync_areas); + while(sync_area != NULL) { + /*Get next sync area*/ + next_area = _lv_ll_get_next(&disp_refr->sync_areas, sync_area); + + /*Remove intersect of redraw area from sync area and get remaining areas*/ + res_c = _lv_area_diff(res, sync_area, &disp_refr->inv_areas[i]); + + /*New sub areas created after removing intersect*/ + if(res_c != -1) { + /*Replace old sync area with new areas*/ + for(j = 0; j < res_c; j++) { + new_area = _lv_ll_ins_prev(&disp_refr->sync_areas, sync_area); + *new_area = res[j]; + } + _lv_ll_remove(&disp_refr->sync_areas, sync_area); + lv_mem_free(sync_area); + } + + /*Move on to next sync area*/ + sync_area = next_area; + } + } + + /*Copy sync areas (if any remaining)*/ + for(sync_area = _lv_ll_get_head(&disp_refr->sync_areas); sync_area != NULL; + sync_area = _lv_ll_get_next(&disp_refr->sync_areas, sync_area)) { + disp_refr->driver->draw_ctx->buffer_copy( + disp_refr->driver->draw_ctx, + buf_off_screen, stride, sync_area, + buf_on_screen, stride, sync_area + ); + } + + /*Clear sync areas*/ + _lv_ll_clear(&disp_refr->sync_areas); +} + /** * Refresh the joined areas */ diff --git a/src/hal/lv_hal_disp.c b/src/hal/lv_hal_disp.c index 087882915..6f1c9626d 100644 --- a/src/hal/lv_hal_disp.c +++ b/src/hal/lv_hal_disp.c @@ -186,6 +186,8 @@ lv_disp_t * lv_disp_drv_register(lv_disp_drv_t * driver) disp->inv_en_cnt = 1; + _lv_ll_init(&disp->sync_areas, sizeof(lv_area_t)); + lv_disp_t * disp_def_tmp = disp_def; disp_def = disp; /*Temporarily change the default screen to create the default screens on the new display*/ @@ -316,6 +318,7 @@ void lv_disp_remove(lv_disp_t * disp) } _lv_ll_remove(&LV_GC_ROOT(_lv_disp_ll), disp); + _lv_ll_clear(&disp->sync_areas); if(disp->refr_timer) lv_timer_del(disp->refr_timer); lv_mem_free(disp); diff --git a/src/hal/lv_hal_disp.h b/src/hal/lv_hal_disp.h index 93a6b4614..d5203a0b1 100644 --- a/src/hal/lv_hal_disp.h +++ b/src/hal/lv_hal_disp.h @@ -23,6 +23,7 @@ extern "C" { #include "../misc/lv_area.h" #include "../misc/lv_ll.h" #include "../misc/lv_timer.h" +#include "../misc/lv_ll.h" /********************* * DEFINES @@ -187,6 +188,9 @@ typedef struct _lv_disp_t { uint16_t inv_p; int32_t inv_en_cnt; + /** Double buffer sync areas */ + lv_ll_t sync_areas; + /*Miscellaneous data*/ uint32_t last_activity_time; /**< Last time when there was activity on this display*/ } lv_disp_t; diff --git a/src/misc/lv_area.c b/src/misc/lv_area.c index c0221f7ed..493b70880 100644 --- a/src/misc/lv_area.c +++ b/src/misc/lv_area.c @@ -143,6 +143,78 @@ bool _lv_area_intersect(lv_area_t * res_p, const lv_area_t * a1_p, const lv_area return union_ok; } +/** + * Get resulting sub areas after removing the common parts of two areas from the first area + * @param res_p pointer to an array of areas with a count of 4, the resulting areas will be stored here + * @param a1_p pointer to the first area + * @param a2_p pointer to the second area + * @return number of results or -1 if no intersect + */ +int8_t _lv_area_diff(lv_area_t * res_p, const lv_area_t * a1_p, const lv_area_t * a2_p) +{ + /*Areas have no common parts*/ + if(!_lv_area_is_on(a1_p, a2_p)) return -1; + + /*No remaining areas after removing common parts*/ + if(_lv_area_is_in(a1_p, a2_p, 0)) return 0; + + /*Result counter*/ + int8_t res_c = 0; + + /*Get required information*/ + lv_area_t n; + lv_coord_t a1_w = lv_area_get_width(a1_p) - 1; + lv_coord_t a1_h = lv_area_get_height(a1_p) - 1; + + /*Compute top rectangle*/ + lv_coord_t th = a2_p->y1 - a1_p->y1; + if(th > 0) { + n.x1 = a1_p->x1; + n.y1 = a1_p->y1; + n.x2 = a1_p->x2; + n.y2 = a1_p->y1 + th; + res_p[res_c++] = n; + } + + /*Compute the bottom rectangle*/ + lv_coord_t bh = a1_h - (a2_p->y2 - a1_p->y1); + if(bh > 0 && a2_p->y2 < a1_p->y2) { + n.x1 = a1_p->x1; + n.y1 = a2_p->y2; + n.x2 = a1_p->x2; + n.y2 = a2_p->y2 + bh; + res_p[res_c++] = n; + } + + /*Compute side height*/ + lv_coord_t y1 = a2_p->y1 > a1_p->y1 ? a2_p->y1 : a1_p->y1; + lv_coord_t y2 = a2_p->y2 < a1_p->y2 ? a2_p->y2 : a1_p->y2; + lv_coord_t sh = y2 - y1; + + /*Compute the left rectangle*/ + lv_coord_t lw = a2_p->x1 - a1_p->x1; + if(lw > 0 && sh > 0) { + n.x1 = a1_p->x1; + n.y1 = y1; + n.x2 = a1_p->x1 + lw; + n.y2 = y1 + sh; + res_p[res_c++] = n; + } + + /*Compute the right rectangle*/ + lv_coord_t rw = a1_w - (a2_p->x2 - a1_p->x1); + if(rw > 0) { + n.x1 = a2_p->x2; + n.y1 = y1; + n.x2 = a2_p->x2 + rw; + n.y2 = y1 + sh; + res_p[res_c++] = n; + } + + //Return number of results + return res_c; +} + /** * Join two areas into a third which involves the other two * @param res_p pointer to an area, the result will be stored here diff --git a/src/misc/lv_area.h b/src/misc/lv_area.h index 137931a29..48dc80744 100644 --- a/src/misc/lv_area.h +++ b/src/misc/lv_area.h @@ -177,6 +177,15 @@ void lv_area_move(lv_area_t * area, lv_coord_t x_ofs, lv_coord_t y_ofs); */ bool _lv_area_intersect(lv_area_t * res_p, const lv_area_t * a1_p, const lv_area_t * a2_p); +/** + * Get resulting sub areas after removing the common parts of two areas from the first area + * @param res_p pointer to an array of areas with a count of 4, the resulting areas will be stored here + * @param a1_p pointer to the first area + * @param a2_p pointer to the second area + * @return number of results (max 4) or -1 if no intersect + */ +int8_t _lv_area_diff(lv_area_t * res_p, const lv_area_t * a1_p, const lv_area_t * a2_p); + /** * Join two areas into a third which involves the other two * @param res_p pointer to an area, the result will be stored here From 181400e52805a0d3ef561f514ccd658c14d989bf Mon Sep 17 00:00:00 2001 From: Gabor Kiss-Vamosi Date: Wed, 30 Aug 2023 15:59:08 +0200 Subject: [PATCH 53/95] docs(calendar): update according to v8.2 changes --- docs/widgets/extra/calendar.md | 21 ++++++++++++--------- 1 file changed, 12 insertions(+), 9 deletions(-) diff --git a/docs/widgets/extra/calendar.md b/docs/widgets/extra/calendar.md index 5dd601d17..0fd3630f0 100644 --- a/docs/widgets/extra/calendar.md +++ b/docs/widgets/extra/calendar.md @@ -1,5 +1,7 @@ # Calendar (lv_calendar) +**From v8.1 the header is added directly into the Calendar widget and the API of the headers has been changed.** + ## Overview The Calendar object is a classic calendar which can: @@ -13,13 +15,16 @@ The Calendar is added to the default group (if it is set). Calendar is an editab To make the Calendar flexible, by default it doesn't show the current year or month. Instead, there are optional "headers" that can be attached to the calendar. ## Parts and Styles -The calendar object uses the [Button matrix](/widgets/core/btnmatrix) object under the hood to arrange the days into a matrix. -- `LV_PART_MAIN` The background of the calendar. Uses all the background related style properties. -- `LV_PART_ITEMS` Refers to the dates and day names. Button matrix control flags are set to differentiate the buttons and a custom drawer event is added modify the properties of the buttons as follows: - - day names have no border, no background and drawn with a gray color - - days of the previous and next month have `LV_BTNMATRIX_CTRL_DISABLED` flag - - today has a thicker border with the theme's primary color - - highlighted days have some opacity with the theme's primary color. +The Calendar is composed of 3 widegets +- Container: A rectangle which is a container for the *Header* and the *Days*. Uses only `LV_PART_MAIN` where all the background related style properties are working. +- Days: It's a [Button matrix](/widgets/core/btnmatrix) object under the hood to arrange the days into a matrix. `lv_calendar_get_btnmatrix(calendar)` can be used to get it. + - `LV_PART_MAIN` The background of the calendar. Uses all the background related style properties. + - `LV_PART_ITEMS` Refers to the dates and day names. Button matrix control flags are set to differentiate the buttons and a custom drawer event is added modify the properties of the buttons as follows: + - day names have no border, no background and drawn with a gray color + - days of the previous and next month have `LV_BTNMATRIX_CTRL_DISABLED` flag + - today has a thicker border with the theme's primary color + - highlighted days have some opacity with the theme's primary color. +- Header: Not created by default, the details are up to the given header. ## Usage @@ -53,8 +58,6 @@ Learn more about [Keys](/overview/indev). ## Headers -**From v8.1 the header is added directly into the Calendar widget and the API of the headers has been changed.** - ### Arrow buttons `lv_calendar_header_arrow_create(calendar)` creates a header that contains a left and right arrow on the sides and a text with the current year and month between them. From d3fc711d5985d8afd2c8f1e86d646a82129fe268 Mon Sep 17 00:00:00 2001 From: Xiaosheng An <36487580+ONLYA@users.noreply.github.com> Date: Thu, 31 Aug 2023 23:25:25 +0100 Subject: [PATCH 54/95] Update screen object opacity function documentation (#4505) --- docs/overview/display.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/overview/display.md b/docs/overview/display.md index b756b77ea..4626a5696 100644 --- a/docs/overview/display.md +++ b/docs/overview/display.md @@ -67,7 +67,7 @@ The Alpha channel of 32-bit colors will be 0 where there are no objects and 255 In summary, to enable transparent screens and displays for OSD menu-like UIs: - Enable `LV_COLOR_SCREEN_TRANSP` in `lv_conf.h` -- Set the screen's opacity to `LV_OPA_TRANSP` e.g. with `lv_obj_set_style_local_bg_opa(lv_scr_act(), LV_OBJMASK_PART_MAIN, LV_STATE_DEFAULT, LV_OPA_TRANSP)` +- Set the screen's opacity to `LV_OPA_TRANSP` e.g. with `lv_obj_set_style_bg_opa(lv_scr_act(), LV_OPA_TRANSP, LV_PART_MAIN)` - Set the display opacity to `LV_OPA_TRANSP` with `lv_disp_set_bg_opa(NULL, LV_OPA_TRANSP);` ## Features of displays From 8779d6e37ef8f7f4d276e1c5a0dd68f617daa902 Mon Sep 17 00:00:00 2001 From: _VIFEXTech Date: Mon, 14 Aug 2023 13:57:19 +0800 Subject: [PATCH 55/95] feat(style): backport opa_layered --- demos/music/lv_demo_music_main.c | 2 +- docs/overview/style-props.md | 21 +++++--- scripts/style_api_gen.py | 4 ++ src/core/lv_obj.c | 7 ++- src/core/lv_obj_draw.c | 85 ++++++++++++++---------------- src/core/lv_obj_style.c | 37 ++++++++++++- src/core/lv_obj_style.h | 15 ++++++ src/core/lv_obj_style_gen.c | 14 ++++- src/core/lv_obj_style_gen.h | 34 ++++++++---- src/core/lv_refr.c | 2 +- src/extra/widgets/meter/lv_meter.c | 4 +- src/extra/widgets/span/lv_span.c | 2 +- src/misc/lv_style.c | 4 +- src/misc/lv_style.h | 35 ++++++------ src/misc/lv_style_gen.c | 8 +++ src/misc/lv_style_gen.h | 6 +++ 16 files changed, 191 insertions(+), 89 deletions(-) diff --git a/demos/music/lv_demo_music_main.c b/demos/music/lv_demo_music_main.c index 415af8155..e30acdef6 100644 --- a/demos/music/lv_demo_music_main.c +++ b/demos/music/lv_demo_music_main.c @@ -769,7 +769,7 @@ static void spectrum_draw_event_cb(lv_event_t * e) lv_obj_t * obj = lv_event_get_target(e); lv_draw_ctx_t * draw_ctx = lv_event_get_draw_ctx(e); - lv_opa_t opa = lv_obj_get_style_opa(obj, LV_PART_MAIN); + lv_opa_t opa = lv_obj_get_style_opa_recursive(obj, LV_PART_MAIN); if(opa < LV_OPA_MIN) return; lv_point_t poly[4]; diff --git a/docs/overview/style-props.md b/docs/overview/style-props.md index 74a0cd5fa..b1c0dc409 100644 --- a/docs/overview/style-props.md +++ b/docs/overview/style-props.md @@ -385,7 +385,7 @@ Sets whether the border should be drawn before or after the children are drawn. Properties to describe the outline. It's like a border but drawn outside of the rectangles. ### outline_width -Set the width of the outline in pixels. +Set the width of the outline in pixels.
  • Default 0
  • Inherited No
  • @@ -433,7 +433,7 @@ Set the width of the shadow in pixels. The value should be >= 0.
### shadow_ofs_x -Set an offset on the shadow in pixels in X direction. +Set an offset on the shadow in pixels in X direction.
  • Default 0
  • Inherited No
  • @@ -442,7 +442,7 @@ Set an offset on the shadow in pixels in X direction.
### shadow_ofs_y -Set an offset on the shadow in pixels in Y direction. +Set an offset on the shadow in pixels in Y direction.
  • Default 0
  • Inherited No
  • @@ -538,7 +538,7 @@ Set the gap between dashes in pixel. Note that dash works only on horizontal and
### line_rounded -Make the end points of the lines rounded. `true`: rounded, `false`: perpendicular line ending +Make the end points of the lines rounded. `true`: rounded, `false`: perpendicular line ending
  • Default 0
  • Inherited No
  • @@ -577,7 +577,7 @@ Set the width (thickness) of the arcs in pixel.
### arc_rounded -Make the end points of the arcs rounded. `true`: rounded, `false`: perpendicular line ending +Make the end points of the arcs rounded. `true`: rounded, `false`: perpendicular line ending
  • Default 0
  • Inherited No
  • @@ -634,7 +634,7 @@ Set the opacity of the text. Value 0, `LV_OPA_0` or `LV_OPA_TRANSP` means fully
### text_font -Set the font of the text (a pointer `lv_font_t *`). +Set the font of the text (a pointer `lv_font_t *`).
  • Default `LV_FONT_DEFAULT`
  • Inherited Yes
  • @@ -708,6 +708,15 @@ Scale down all opacity values of the object by this factor. Value 0, `LV_OPA_0`
  • Ext. draw No
+### opa_layered +First draw the object on the layer, then scale down layer opacity factor. Value 0, `LV_OPA_0` or `LV_OPA_TRANSP` means fully transparent, 255, `LV_OPA_100` or `LV_OPA_COVER` means fully covering, other values or LV_OPA_10, LV_OPA_20, etc means semi transparency. +
    +
  • Default `LV_OPA_COVER`
  • +
  • Inherited Yes
  • +
  • Layout No
  • +
  • Ext. draw No
  • +
+ ### color_filter_dsc Mix a color to all colors of the object.
### border_width -Set hte width of the border. Only pixel values can be used. +Set the width of the border. Only pixel values can be used.

l|T+xe<>)>{w50NpnX;tfPk&nyJW!o2QI;k{{R30 delta 253013 zcmX7v18^l>(}3gL*tRydZEIsY8{59ItsC36Z9Ca`V|#Q=1pTADA@Dnff0T3!9?AWW2&p0P|1H_hs|tY)kM^IhCfY~E75^W3Vn9)= z|BoUHEusDs==MTOm?_17V-Bq_*qHw)ViE@B|HH^!gfaQIZ2QMw7^?pdlIk7i9R1%s zG!$6PmH!dQ<`9Vhz|??xvrF#}~zd{`yP3xR{lhdw%}* z=kw?|M0Yz|$MtLH*6)S?*VpHfa>9nUSKj;Ukx8qrhp_McL7$;uO^oZ#jL{77t>rUw zk6zVUPs6||@bvVZTqrj*CFY0T{I?*SPyzCAKg&J^LxNV__Ojynxo=pzxij5w%lV4x zI!YD^YCV~CI6GYn_68Z&YVSWD%9W$41cYaWi413Y40}<}YG#7zUg(rz!{pQrt5|-j z9Q$gZL0jvTmVa~!WwhCBcIsL!10TCS`Dz+JeO!KV0WXiw=g*!>IMQ_IHPt@tRB>l) zx+XzBno8-4z1o=`566QHVBGBVYNoGApl=atefskj%z(R={N{_Y>9XqnrQI2eSx}Ti zqu$d&Kog4*7%MwQD-Ct7j$(RQ?oR_P?ig1EoRj!vaHpKQyk%Oq%i|_%t&9U=SHUIB z7xv{vV1>>R4;@&9%I#&el)vs-M4QeEkUfR@&%Svb-xY>q91dTcT;O5FbSvT5_0HC0 zHVO&#kC@T69jH^Db0^Xi>D4ux#)~V$q)WoZxc~+NJKLaIrpxgzj+6uI1H~CF`*ixN z=cCYo_Yao&Cbiu^+pbxWU=dO3)yF16%vq*IK&Pn`pZf|6_ev{tM17yJdByulq%UYb zn&F!7nbCqMzp)Hcsee>8vA`jScUy;Jxn)eXXoosr6ZMW%{&daj$u_tWc%R zBcpRug_gCM5`h+d?(gtquFr_BQ)tJ3zWuluY-tMlTWCESmFMa1*{1&YH|<&<1J<+C zdu(O=aiD~QAM@Lh7&PF{EdywVi<6=pnU03dy!IP{`Mih0Optz-;zVYd@`+9>m~^2p z+U!apkg=*t-P_sbfMu@1z#28;8^DW|^qAUe8L9g8J&HOEP!`~7|CPKwP$epMM<$!-|@gd*U$D>hJyp&4CB zbsl67srhpALK3i|DD?gbX*S~cOaJFOY$<1jO0}lq*8TGMAT?;1YGB!Tz^T}ERo%}{;;df#jT_y;lLLvQ8|kmn&!*<(a}N!{ zLe!67J4y7L!?{$)6@zR< z^U2azq`h(*$0$s%z% z5t_A4Zf`Fgpn;p>UiC7@Y|e?Wh1Hnk3mWQ}-ntTv5lAS4r5xt%9Smue$qY>HZh!Ne ztJV$uv~1F0D5{%+Lv`6IrnXvDw3hOTFioV(A^`o$Ao$YjnxMpnv`vW*AwX1Sb|NkyhEaIIEFZDR zIg8ZCX9gV1ErTWVs=4)D6r7P~R);-JRm8E{&fjr_l({E;e=hPp(B2o(a-FWB(;>wSAqZ(8;7rkmv0Mf*%)zf3 zn+Q&wXS|FBxL9LlnN-))@qXlC2a$^<3c%a(%G1KO&Z#1ujZ_`iDMc{Iuv1slQfBv- z87uLg)wS+VP}oezUrYRp2D-e36$b`9{bp7}#i_1JPl@=9(~Kdh#a-LWPV1!^!H?Ql z)TKa5+ex!VXvxo*8TL5&#yG?VAHy&ovYp_}T}1Ps$Qtc}Qf08=`t9NkicmKYOoSkR zLCdd0675XHdYlU2h8yHAX%bKIB#tD=^4!euyu_gF%-VW;y_*PYH$9VR^#XkOczVk| zubxKn?9X~Xz`-DSEFLUOj+bdzzL|C#5Ysh0f2(q%!h;}^4jP20rW=d$`KGA>&X$~2 zvZMjHV2##wN%P@VZ#B;>u)kNV&~W^YRCr%bJ#;?F0`Uu*U4&p3W(y9%)1ZQRD=W1w} zoP51W?kLrpjfF8*0V*T*$l3ceH+M?eC@kfRSEJTwT{VVP4MpWrkHR78bTQowowB3} zJf<83^V+CP<_XNRcz2KJf&qjYqeE)0P`&(6dKhb{GRukL8G-FcQ8o}QJ0v-wMzO$M zvjGco$|g2Oqf9rf5Jwt5<47wB&+*e=4}`$EFuSS?Ec3QyEy+aBuT0YxbMA}VVU=8R zJEpS+xIy;>*>}^hU5|c~7ft1G&@PY{R&}ncx);!RlZ>Spt1?oVo?}DdnY`)u{tl5v4rPb^?QI_U4EY2{=WBb zwB|P`?Uc1XWRcy~&Qb+IdmY}AfD&5M$eKPQP1&qd=Zqs>Ov*AT2Fzq-%IkOZ?6qk zsplKk%w{nF3`skHw^Mh2vCB||nJj8HZvwJ(ZAYk^47^!FC1j$7al|3;FnFs7HJ%!D<)EWA`*&2zq*@^#opv@OUt~*oxNkMe5DTCDJrbdAh?QL*&trM z@gSKoRfrZ>VhqIDG@hGe)+5= z1nvt$jP#gi1q^=qBd-;K=g@OVUIoddKxBx9wkr6lht6A!n$@Z_gye{>G#=b+Xd-3@ zO{9_t*}x7*PTQ>XbWPDIm-KZg{BbyTLsZarPYmHWHt6=EsoxAgHD|V|6EGPxU&^P; zqgzdN9u&t3G@zz7SSc1nbD+8^)Nw@+?_-}QWYu8s03e*9bT(5z+bWO5_y*P=NX<+Z z!@{FoRW;;+fMn3X6RZG`lS5a=t%oHXXEfPJnaoRWTlPwPg}ZJ{FDRZp!$vV#YAU3* zai(Y~VHzNpCrdvctu~K@-^*$?{o7GX(l&GRSlKd8vzhkGL5?HSoIW`+r!qz)g7|2z zBJi5(J8Ibj8zP0;-bnKRu94*NdB9umsO*NqdkA~P*(hRVrt>>cY4!dy?fS4pm)Xs6 zA;zHA0!)C&vU+k?NEgzGO|1)A)-m_95`~{^IZI_InJW zlbK%zy(wSWZ6P!b`n#rvb5mmACd=mnN#S5Gg#7HR1uU}n6!!GtS*k#2b4(?+_L`1y}CUkccF zxT_x_=wSIQ;5ROFtZq@3nDWvu9Qg!iKvJ!gPQf5jW!0~Sepw}v0t83`3)7{R5wr}j zF?uB5Z^+OuFH zbrQ9RJCsz_eTO>kqF)a282dklx7tCT+*-`cb#IC)qA+W|-{+Gg;W!XgtaDDCV7~z_ zivqFXm8MJC6+@PR8u-I%` zP&$ze9Ol;%CXm5f=iF<6@>>P#Zusbn?0Yr_tlY(_yM7-#pY*0rrQuT&^C*geXEVk^@7$=7@Ssa+lR%Ce&%N_Cwt&;c6Z%@h6z0n zp-$U|Qc4NW_n?d>o#I_LMQC`3%}2L&2214@1*f7~GOFZz zKhym9AwlrvdqMhIp~p&{D&-Um)fnNRmF4dI11yBU4|6q-w2TlW^9?t&Dk;hW*qGD; z1cIQuS6Di5a1g;?SQ_wpki=hD3gAqY-OkH|-2L`pd!P@ZB|#?PS%e#%tIwS>8*Q7u z;eC)!@3C|)k-CT88q{|@@L1$|q1%ul<*(mF!<((N^ImK0I;df_xs#aB*=pTJ03H4< zfOdCRcZt>DK_KooSQ_9CRCw8D%hy`UFm=<@3dzMN#`EjN zHC1glLp!nOJ31{PCsWU0Cd1EapzVnda&I#1wr*f)+yejPa2bLwbbdXIJ4KSKt*?;i zJNamw+raq+hCkFY{B>&MBa)gu53=`n;|Z)A{C(}#Jfv)a6Qnz?kel3J`5_If&x@;2 ze|CXnOyaW*3y_1%hs8RyS=$QP!Oj8UESTNyy-wIt5r;<^vKV`~FJjuZrwv+BrJx9l zHtWGglekNdNUtdUW_qv=R*eY7^iCcfbGFOaS3eg%R{O1%HPqW6%Oy z&_zPAj;G&aNVxK2(2(~Z>u_c7rG-TGP5eh)4}L(i z;}Jy~SQv43qzWx@bY%MkL(ggp!>`#YNaz4ZO~R5QjE-mzTAb0^b+ZBp|cd%ba@2iveKerFRimN zgGwRMo17gtZhSY7XPnpVSzuvoFQPyhl&23!yy5C}{UrN@lseHnFv1gpIK_~5)18e! zbKqaH_S`#=k~Ke(q5`!;Yhr+O%9oKXVDB(XeLD#))K?w+tqEr`9bi04Lyew-_(+yh zhbZ0l(!v!<&&3f0GR^u4bo?C*yUH3dGZ5H)ZIn!TlrE*;7h%H4kvYFf#=Zhk&^MJ~ zN~+r(%b1Onnd^k#FHEyO9xmc75s190z+M(<`Obsf6G6v@p>J!UOjvq^30hN0SRO1&lCZ71(i1U~{57uA-hevl7!DiWe z+gFiw}AR5f@M_(dwj^$7s^AP;tjOSy3hzjMb0UOBGG z)9o9LOCkI_Z%jA}W+tVzwQ={UKrwwU64&{4NYU@ z3cZXMmult!=RHiIFTfM%s(VL1sFLL{kzL9OaZd59Uu&+f2#@Z!we(7wF_84*er!p&gKzf2Wvme$!(=}5uFU_ z#ODX+K^}W`_UItH0I{Ezz0a=v%_+y1x@629_FUZr>re*6GE zXgyRU0Lpm=NvDPVCMJmoqzUfM02+LCX~c~EM2et= z1q@?|N)zQT4v1}s8-Lpe2BB*_7@>A1$Ezph>D}k=g1)(g z6q^X=7H%ivQ}4@C14sdZfS@ioj`wD zyrRDIL=GE)Qm8(`e7KWdj^0qqAbhl$C-x@7+(rrd_9R z&_i)aPkFDS?ABddhlA^n8rmF{#`k~OhO`Y&rK4<}B19;DLlkyT*wIu4vK93}44S7N zM`C5diyoBE%hz9VhR0ice|SBno5(f8fZ_`tCQPCDDUk*}ymhym9ATId#Q%oEX8mq2Rnj6-5q2pH=ayrI0&Z-GF3mSUqJi(?WvgMr=#3j6 zDRFb0gmn<7D08@8puv7j$GG0KuXl;D^`6x`dk4(Gsl2p+J7C(4lg*?fp9?t4xrSRh>yn`Ac|W%Nz^BfYb_ZFl?fjas(bxU{_}U z(R!R5gQmH1EoeNg;Va>76*zQG8NByc=mrK0zr<7{@6{;Jr=ko50K&yPB{VN`9yyjPD zDxOIVzFF3XxzAg749YW^KFa2=DeVihWe1^8Ood-kqRT)oe-Z?Mm+?<4BQOWE#8A{A zk^D+{oNGi2pUVf5?cENx0|9pd2(b8SBb@2_rhuN^Ns+d`=d1%iJAAxI6rr+i>)zn_ zGlT)bjSOR(=pzYHPsWHT$?tQhS35tt=2o z80!;7uGW_B+R%ks#dy6u8edMUy&lMEWET(#G+$;jSZT3ei8+z)N1 zY#TdI*S2;HJsJqCy_@9(F;?-7X^LW z+I6hxV1#2$YxMF&JnS#Sw8AQ2U*es=e?5%uvuYYqajPkfrgA+h z!vEgCwBF&AVVW=hbOYD)2@aggSK9UO=@V*A=@K%{5FCFII@Ni|m2W-6h=iTm6rIaL zijwe<`&o=~2$F&Ukby&jtY83Kz?y`1&@u{$yPoWKPj{CuP&~Bg>;3w8>(h+Co`N1~ z&q4dkiN`L--dNYz)DbC?-ACK!;gjjNU7ZjO*iC90E=e-1OB^l495f$jE$cD-kzS`z~M5R&P=YB zgiM3IED@vue~CYyngyEz0|T4`@PQQLh7~_v7HT}2E|?q~nH_KJcyip&JNYocIxMT1 zrobovD|_|&c;0U*_5l4|?@t)*82H=ydF;FodEuOzg`^e}SJYf4HEA!c{)m0o=Wdn_ zxQ{VnF}zcVXcfq`u2G?K0Mem$x9_H7T63!$2%81T6+^Y~`9K zCLXvSN~KtTFWq_2>VYzj#ou_f1dQv2-!-3->CIB6BvEWW__;9sjA~?#qM1}WnrppM zkxWi+P7X^~BWt#sGqVN7$fjolW?j2oG{NFuc2=63V?g)k^D;3|DR{Vuedn`PZ?mrw76WRVO%8Ue&-UmT(1+ z2z5wlf;(l1$ZfM?-Jl*ytHh8Jt4b2Rjk~XSdua)?fpNpV?UAzKm z)$c^H5A8@QMOyO{^%}8ugs*TM6^y7#x>C%KR z&X|)@>V)Q#q)t>XgEBW!)}2OLTKELvTY3=^iSuA8=ssi(P1qi^!!Y6)RLWv_s#A>NcWI!YP6jLLW;JYTPecBiOK z*BMwh-(I7|L~ftGE~(}^pAy$vnT!9`S6PqwN{f`%B_dYi^u?@eTQ*+y*tBBseT4JO zpVv-o!iv<2i*woi17d~;-~vg8J&{}?_s;w1y4t_{*wuj2ws$EGiO4seMzi$<5-HtK z^0%114z}-YAe=HXV|{QiA#e99vDZ9VQkN1t#~02nFE4g?{U{W|51QSHC7_vCNXDHj)l< zShR0LCtZ+u3m@!gTeteLk0=C+{5X9#Mcp|Nj4=Fb zI+nR2ZP%7PpjTz2HCm&$rBrImrX6*I(oa4 zpFVwgF|GN>fmnT|lCk-}SL$H&!5nxjO_+_<-w{+_>^3_%Lo+-$E}N9iI8=P=`q;s4 zs#^U8LNo6`h=~7XUIGvkB7h2LLQv1xUZiDfENn~afvz<<@Vk8#L3LBkZdy^u6>fMJ?%) zKjS!2X!bWzJk9Ydz-d}CSo#QAxav4K-O;e`ifAFPI&7PO@yI`*T}APQm{4W69EgQ}8iSoIehg zSR-Q~+03b3l2W#x-Y}8$PN&Rs<%bVadS{a_Mn^lu!)lFL3`I|){@|E~$GqZNbrSw7 zghx@xroRqiDtMZdX-4b@KBe)^Xqi(%kIhmK6k8lsCOFBj!>fDxL=OH zL_I_NA`@ACfdCmG0|9Rd4WM;?Tg*!lF>WB9vrtopce) zl_gS<9SssD!;qQ~L|X`(LT$4!NOg;8V}6TM|e)syM>n1(u%CAf~K7!1D{aSh%?7sP}hA*zNW1&ORfwHa7ZLaUk)nHU_+! z27@-aMgZ|cACoU2eazWlE*EwO&L@=*UbpK9iUm9u%z+UKx};34>wk6~kQABRkp|lxzx6o437&>|tMQxC*2Az5%a!iKlS}&#n2X{8( z3!44_9x%_H|1;Sc@LjkmP3%@jhKlZ_`0jDvBC3fgNXayHP#yk$AFCBZ&LxgKQ=1Ie z5?X=IV-q1RfVwSjPqk3W?xQ_Cx^-xzQdqvvy?OnHA9IwpNm~C!p#Wpy=MW0|HZKE0 zHG@X%8aAz$I#yweRbwe-WXJ}^aln)DFku5CHn1jYJK^a^M>J#6{POUiWD{u+Q-cvN zeqq6roy<;RQvD&>aY+dm(8|c-2Md}rOz^RsONKg4URP|bcr!`~*`UHDnB&}o}!h2wbGCr(J~AM9Egp>u^D?X?W{i~>uYgc>?P(DlhP6`nvIKD@^PR&b*rqXo9d_Tt-k*x*BLfAZ5TKu6unR(|hi zm#V{RL###Z$ni}@jo5bnGqFjGh-|y_GzjD(EEB}GtB=?wGsJPBRQbKqS<@4yQ~{e0 zQ#mE*wpppJI$H2cG)n0lRZq|nwde0+M}9EW3}Wx5J-2j|k%*#{fpv#SLd>Gha6YYu=JC{fxqq^2J!B*Wy<*eJ|8~;!tB{bNByPo|ToWc#A-lw|GE(dG7FL(R zibW?O6oM3mYNRKd8Z^kfojMK1RwLe~f`{pO~%u@;W$i^9<9eom67jG!bF`mG^W`yda25MzZx`prh0!BgQ z1z&~I-exd0C=WzuR8`%M-qM$KASk;NNS5dy#VhryT4}Nc@+Fj(yzW>ME)gn13$Rdd zZBR4}RtYBw)aC>t@d{?sec(6l&Yn*igZ?`jcCD-M`q7`BHXkpeNi zGgFO%{%=gW8Cy9a_dPy{ZC2uj8m1Urv_Eacoe6`$yBwlL$|s;p$Grb=KhdJ%zCpTF zgb*ep`ox>hn@QTeRB8N-fY*UTlHW%$L237RWJWefMyI?V5pW(%+Tgcux7GR6_kKwlw%Xd+lw# z^f+nFdKzn&4&r^}0;*k3^Tya`JPeha!0_VWQl#~eC4f*Zd;J1{jqq(ASp(JMnAS87 z=zr>9tLNqY8V~U%$v8Y^wX(3WMz$a;)ehiO0^^UB4yAe;TwOFm)S2n9^_f0jnbzYu zYsA8-kigIgr)z^`h#=4Vp(k#*_khV&YGukk=_^uJ80k&DU*GOupz?hM+t0U z(VcPf5)z84FWcLmenYM2{+w`vwsG!14Ox<*LCLSfzbsaIK{$1B|b zeivk3+aztqlEk7`H`FPD@k&oNQqV1rm>ML51xVOAAAt z7SwV!r2@^zu)xPr&Ts+6#?yse`U4zOtX$|JIyJ0ankJul{}IOFM&?)*7&@anb)7D; zk}$F%!L$Iw*b9)1fo~Ti>xZ@b&RUbb86i4a@|lPD*WFV5cz#cw__A@cDtTpLT)h6=yBv`U4cq)fB@dUL6*ER$UgiDf__{GBi(yxYPkyv zHq@b+O!xMANCX1n0z43U`kD_WR*6QJw+qwp043ncpi(@59gz9r^)*`GUDS^JqlaX3 z-P*2rV?<`A^DY%kK{}9D8YEQ*9tyU7Vf`)5>pDuN*-TC)tG4kA;N`owXkZ2d-og9V zYKZ7zj+?~vj|cvqg-cs)-6D#j{7vRg3D)%XTD?H~2aEEaZ*qzwd)E zEdq<22WHtqglUH2GT?nx4a=!>{X(1??bi_AN{>k9riEhCrQDRM*w}RLp(+&L94S>5 zys8o*2yb0ABiS}j%xfuGf6iBTD--ypNdS-q7X%p+0KUN~ zb3Wb`%Zxq=g5n4ON86nUSwktpsuI6*MNQ&A&U8&lS`ePhxlHbPb)C5D!{PAc znV2ioCTs!#?I4i?nO1qB4|fdv&lUu^KqLh#1yaEqt5U>a(vZ=%nDgNA$*YX&qpB7x ziK-^qf(bl5I30y07BRopz&hBl5}*v})Ii^5Ql3)mz|TXItpH#DHfKmo%xwl;y(;A)W`OT&nX7S~BjHry zWEKNQN;1~(&D!U!AWv{-PJ^s_I8)x0$Bqz5PA`TCu z!*WkYvO@vPF)SE8@uZPIRF0 zBd|l{5}<;;ffD6x3e3r9fgJ*>Nyuq z!8J9~1%i-7#klR8oyP8PsOUyZ{o7WN6iM_n z$I3ce;z8b!=e~}4!xPcF!iK{OBd$ggsHbZIxNP!^2^jy&mA(Hm$*iX*$K_kOBbT0H z$2Sc~C)@y;Dl5f&Va{-Imnh!3G7}o5x`tQXIt~5*4s}sGc%#Aa$Xv@#uo*qk_PmHkDt*&`op-;{^e;&A6@P;B=bJ(|Z05%ZLf>?{{%2K8|h)9BB5jJgfTI`j8{ZI%& z&)8!(`^^@!Bl$fb{!U~hoi{S72@u2;XfT3=JC6C-k&7w`Tb>%F0 zJ}6p!ud+Y!BsS%bllaeuV8Jy{WPTvp8Qsqb;3P$IWi{y_lIQ`Bwj27O1Aw6V7jr?N zVxnhuwIYYD1#h7=y63RFRM-3ydLZyyBNJC4ufCgvCiw!(v?Qy!jEo|d`3wMudf-zH zim~&ycOTV)Gk}x0ha|!F&(R>orDYvkn}}t@>lsI20^T>h)S~fJ8Ql8`?) zmfn3xwc%3)_V&v;1dcGeF+$)Xq&Q9vg@E?J5&pa>mjo>Jppz|5~Tt4x5 zzl#&bi2~B$O@;|VRi|TyPXI^s7sWQ|5MD*%I<%cG?RMKADJ>lsL-)=0#Ju-Oe7R>7 zqk2vDW?tCUTJIpE?~eVyUEh|MWzUoYYO!rE$m9d=8wH>H)G(_vL@E{;fsG|ppaTdfP85$H73;0bt2pJ43(q_tB+v|NpZHA z>&n+V76v7)rHodRmanFIN={nmJ$(&7oC9ATR!VUexq$jFr1#)q=7L?0nYaye+Qh<3d49^CI8K#JtQ)`#P%~B^L0wg}PifXJE=|2!0Ff zQ`xC@WH2b(RL`%EbV3yF&ksjUuSpAN6{vu3H&6Lb_F}%n^#?=ArXj@5%ev?Jy$iaO$Lg3JE>J8Ta(Mxw;;LvL=p9SR|EracJ$ec0edf>4o7?UtK>x zH{sw4jVD^6{HCu0UoGk#nLw0+qBoFxEipFZ!@lngJiwuNsK6t6SyS_bA&@INyuJ-> zV1e^)BOpwZ0#8*^o_|wZDF5(tf>t2}{z9%dv#dpl2cq#H(QN&9xP``dtnY3yr*-Cr{g`<3o`Br_?A%`>c*DfvfOE#O2HLIkfY+Qv|e zRAGaZ!SaG)B?ng6-mvOkjD$G(*ViB2cIWBZo(PKH?7WxBj;S0XxAhJ}hI^AT244H# z8lVIb>4nI<&kvWK$Y;Ghh;`rjP2EHiil=)ol!38CUy!{Ag&)Pw!z3?<-h;`fIT`KW zgu}7HeR6_klg)-z0ToLufzSyKs|;i;IHQR9h)cL6LSG9)zgSZf3-Vu<-?WONO54uS zd}S60#(#4#XX*S@hKy>xD$aHMx_buQ)|U(KmOSXQe9ze3W_zX}PAG_|wD*o?Ej3~H zRs*`sO!oUe&F%UFe!e^WrQiBt{0?SX`Qu)Ck46;O?QG&K%ym1y;?F)j`2s27^`O6x z_Lxz?ePZL*zr{?(p5*07RQ-(I4Tto>xNDdHp@EwACmkSOj3|-7+G;PLZLW*k1GcG( z1T|Lhj{6E&7#`^z%_`qTP4Hg1%CLucKF_AT<7*FN`)w@%;fo$`}U=K^w|LHV+|Hhe0Vh>d2 z7l>X98{}@Yq}gq=v(r9qL)unyU$Krjv`&cU$(pipmB-bTE|#O#y{+&q4zQQsbox?5 zHW8B2COtd-(>CZQdM3Z+;8nVZwJ(hr?=wQWdBZxN@S>1k#tUel*V(bCH>=01%K~S7 zeSI*yLt8j}TxXgQ!iBF94Yb&;V+C5JB^6I3;@sZRWSxAs28U!_Vt2@Ba(+WsfAX(mbSNF-<79K;tMQ^*GYPZ>H|FLNu~-_)diu!I7xevxe;Gs)0GTR_Q3uw zmEn#-VpvmZ47$do3px0RGLe^Z`(Uk3%Ky%VPcEs_DmKV!f+>kAL5sKw0~dBgv0;eB zXpx`zr@Ok_sPOh=_U%_v*+m#QgipLq+@7=ceYXk0e63Dz=<4&BRka*1Qz|X3 zD9W|TTMM-bZikB<`4OaYISOc)2Jl@FlHgo~A|iN&M-_;d?NRgeA%Oxq zq6N?civ@#WQVKWOUNaLTUezAR_asfJ`NZJJ&LE{Jw%k`XVteJiaF2}b$g|JW#V&g& z6u_ZAdbnL~OShS5tga)auOLNl^)boqw^7e_n*_5nCtoaBd6HmCni5<`Vxc}_-4a+I z-Jb4XElqbWk7fE__v6{XzUY?)T)r{$o(9F>fR!gaJoolb5P!3R|SVziv>YS~r^RWp!0s zwmi{r@UIyZX>fq1kX6Us2dn^O)~*v1>o2)r5>=c+~^k9F=?4yYAI=N`i@^1tBKxCGdTGA+bI~BONTINe}JF|4$+-n`mEW#Ix2sxzO&Ku zUpr0c3oj%%bTLv$kp~>>WuLmskO`kxaF$gU&_}u-7>wwY(wS|qbtu5kq8EF;zbD5Y zwwJbVsclB#$lredqqi`mBfI%0?|-!UHnpbtz$69anfqc<7GIm@AI{=6!+1hGkekWH zN^q)pK0o=akgJ2LueW%uC9Ho&S~$_2FOLW+y58_Npk;GvP67iZ6^?LrdaJW8jqGnGzRYycZ)rzy4VPPJn)L@GzK3@JzZ#xHTt+TtAlI;@?YO zUUvGQB~&PT)CrO_*C~G;hig;ImvkW~f6_3W=2^7cs3%>$CtaJ;prQNTx1C+<2It($ zC7JQlRs^qeY?}oA#He*~f810MwDg-l`QE!Xo3}rIO&wA{IS~Y-&%qZ!AK}X-=YjBh zK1C8B2lUB37rcDKh3q z8IGeuW&Nm{ZP2#4q*Y9=QvP8X)RC+-b=(#cITh{u*4qstSvlJJRO{K7zkO2MQk{iGHVkr|kzLa*^OCGdh78pQ zl3=KVB^DGEmf2K;q^d`d-4qVgvkBKuCtgV_KHl}W}rjw@pfWvwzK zbU(O07>6|vV`*l1%M_u9nml(~BQf56lgG6Q|y?s~WK@4M^59xW}o2Uw$g zPhv&&y05ec%2H*BGD>4*8tkHjm5$x}%mvPMh&5}gpD6ai#19G~q@|_oCE57r&iZkL z&al#!APbWr9RllMQv|-%+I_QHJKx3t4Jnph_gFet`?ki*7WDPO|;;u{1 zlx)1!#gne;q0J<4B^&X5S>m%0neWSoOZgmn( zUm3|Pi<2QP=QwC;z}ta7-g3=huS%|EXeRiDrh}QhqKNWc0++1ult%Lza`&?Ue?N{j zo`u;mWQpao&kIu17t=O3JfR4ACY~0II`ig(lzK|rR_^* zmm#XPn2n9yv>vrJpg+dD01{8Ne-BGPZV|r3SwfUws>VFrN`MzhTqTaFoP|j;#AzL% zfp&|_r$+@TuojnMhDwN&?6n*RXj~u%n(A|I<>rwK?~Z76+7iN(v~Y8IJLl)2{$fzN zu8f+NwaJjw!PYcq+<-(4ty8L(9X({|PJwcMAyP}^CfE1*_UjMd{$$DIe+(9KZ8__# zWQggZblXPPtZ#w(5*zBn=Bepau)3KO&8;PJRh-9S7Uzcew~sKlPp;gljn)q4OX5b} zh#NT!x^;J!4lP51YYC!##-G48mn;4$B=lum&Z5gcVHYO>FM8ix)?y86Jnv#nLk4P4 z8YrC$;;?JplhqIOpi{b@f7WFw8a{LWhsJF%L{Rx1JbIET%Lhp}VDW^-fdsa*QuAa; zb5zj;s;hyBH$c8ik&3}45Gyl+|1Z>>%SnFuLdxYHM;x*`SfPKPDQ-?fY=&XQo1`_j zHE}hJ#zT7;hyo;?!m(T=;bI~Zu{bmtq;96DQPw7Us}!-gDcsw-e-~{3Sz9DSAhiu6 z@O>op)VMN^P@_Wu)&wv?uhdgJ1I5TdADvhl9K9Uq*%LK(I!h>#Ay5#iO{32?Svz8H zMn5{b>^|sW$lX2-xZCmmC4usC%b%&(gzTEcZODzICTyV>b5{DK49PBHf5y_VSGM9H zUDjndU^W&ZK~Jl zPVNDF6h1A5IWNQfXd%)^+ zp2QSn>|e=gfl?P=0(qc+ zt}G8CtC1n(mG&+}Rx>5oGLS(lngJhtDWfU=__8gv`z85+zLtyJdunHGi3}-_n9epE zs)eLoqIId)4zXmJ7y>J-R12#XQ-5)1Q5hKmwXa3cn*w`Yv(PN4(X@-WE_E#U(>Lvm3~ zQ?;3%r~`W$L69_*T=)hG$iv`{R=a&MWzMqW0y(BX_^^5XqaVHd1#o=%hMKVae*&Ea zAtLJ+tVQ~9I8V`*A-2G`lVL`N24_v8KnANE$W=)t)YS8`JZ>$_Ty`Rn(p}-7(QaejPks-K?L(O*Vq2vZBf1#<+;L?X_9CCtAMV*uo7NMQVl(c%o_u_t{Yq4~S zSMaB{eiq@9A%!~VQ>onussXDvu7t`|Hwdgb=CCinUdW(za!Y zrp@VOpK(SvOIAS0<^wj%`lx_i|KG+WT9~-0=KyHVPnmEgTSyn_tbLIof3B96ZRoI> z6fiiO+^C%yurQt3553P$gk0@(-l?!T*(3ir5>F%AyfV3579m4ig0Rrv4nECGp#9jd#x7|)+mGPY z*YG4y@{5Isy`6>WGNeOW(m4$yXpoJ?lf-K~Ow1`J*y24(vB0@S2r&?- zVe!18b221{tdi=`06K`Fiz#xq+`$_)jt~>HtYe3C2U|ip6x*-tm&2ZsJt#GXmHF$k zA{hd+aa05KH`mZ{O>zdpWN$SwbtR?lZwwR`@MTT$?Ovwq{ z79y>tsIZ<3>2Z*Ke^nk9bP)~dpqvI9MPT zZ)=0I1|OC+FatPlX#~3M$&aR6kL4_tM}}BaC~OJ}tAeTs6a^K8wGZSFR`d)*`d$yG z1t}kH#jQ<_m_rjv!ihR}*7cPkD*6sdUukfPu>o6>&#qBVf8kL>g$*-qU@r1cb9B^Q zYZYqIgsn4zj>@XBugj#6MaU3kp_)PfG?1ZdNzoTeal!)*gql@4GcV%q4&hPPALk|> zqI>+W9oQLNaI-lC&Xhc8^T z=rrswa&F)M4z9LO5)sqCOkwl&7U|^o_^ZyiSz^<1e`Q{pEJucz;(-p@S=&kO23ONu zLKH%82WqAr7GPpY_oWWKiTY$-PK+PHm=YvaYX!+Y>zc|CNVkTyPdcUAAUZaatLg^- zOM}((!SLi)oZ#>vWkATfb={~p1(Hc=FNkdqXE72PGWLqeq5V?YNW~4+p6EpzKsB>* zRvi;>f0i|*F36nBos$}eGrf+}5W<21vsT>1;4F4RClD$~JTBpghO*30#EL93d!d0F z`e7qKOf?KLbx-hTX*)6m>WNwHh3&QW{5JRgYE#p7&>UHnm^(iIIv z>*Fr#G=<{gd0il6hz25-A*KfYF-FLQzTqB?e-yw*wn&?0Are}EB{2Uew|~6&qai^j z(`%f?MrDXAb+nK^;XB0plT49DZ9y^%u8A?V9T1D!kmCCrDb{gFF$zAww|f z&=aiWK6vt@xk~-tW5gbi=#%Xta&gpRx_kHv$>Q{sG&Mkr3IpR=2OvX~YhiF8%^fV& zf51|fbxngJ^NR@?@{UY?R55egF5Z6fqpy7L&9^V?OG~&2X|88U7Q$~pX&AcR-i*-bU zZtv6m<<-X>7dx>sFwqDxU}b+0S&9sCb_8x_NOcKhx>Dv4P%*kjQFlIvxh)=xe{hVB zbMoyHi7a0c=jx%QbQaH$AuyDB;3PztjDJGG)zq=L5xf)&GlSi4RkxL_(YZg~L*jgx z2ouK20v0m63>mC-rn=E+YiyzP6bp0(iSQji`=vP|7?o^0bFPIdxts?-o`nuFq@^+Y z-m;^-H}3uIx+}i4MoZFmcP;mue$9qi!w4xC(#;4(wQ6$2g3BcXq2ln;@L*>=<6;+FPr*UEj=!$j+M{1(A>4R zR4>ic-cnP0OGH)w0OlzUS2xP&r`;_Hl3p}Pq=qDTAz_xJOG+r-f9`j_ynNsYox}wl z5O>FEC%9ZoSEYyBTW(eN$?Y|9=zrS}6Kkfe|0Yn5l5Y=;SEy|cE{pBwzKfF1NYL-8 zh=f!om$F3itJG)3()+`o@a(z&9S!@0L}bF};l6Uh%twh7zHHlNd&zeFlJ@lF;WdhM5ndss%mg zN?q1JyBRzw0GGxcoRTA1hf=N{H9@|;dH?$7n;-n-{ZbG_>Z-upwr&yt9`(0aLLoaK zBzkpMfDT?je-OA`ks9-C6Ly}20H5}Zx=3{UvAw5v}=7^0ay-jsS3(wr}gb)HappGBqOs;Ad3yQDQr=)@NJD z?_NqTPvNus*pbaGHE<~Sg5MAHdZ|t~qn?k?e>Mc?*$8l+?YIEvRpUt2Ws|lP zZUkC<_rP<6l}G`=gBD*@1%zu-Esc=i?!Jd~gqd!?a@G3e@xllGf`0*GVhRY_?M@1~ zaeogw+IGXOg(QcWmuA;4&CW}E>S|hE{Kp@D_z6FE?TrTDlgsv&J2MNj68T4N8>Y=m zSd?+&HOkWi;5^N7B{Av>^OY$pv@%|7`3>AkGz8%C=*6QkM|2=1l?oMo3xORU-oAPD z=Iy(;_&1lOM+hz+7#rCjFM-KYe-T(9CE(`onVGEILjW$*uvHoF^gWmHM+g~zEp`zc zeoCRbYEviO1^@C#lD-VHs&VCo0pRh@QAz1*a)BcaeV6+Cc*FJGZd$9YPDitnxB~Ea z0zm{Wi6{F6iQ`G_0v6q-xz_I5u(xYqxWcLkVqsBI0*i5BPwV7~%-WYS@kH+=NsJ)J z^5)@o!|SJCzdXIli!V!D)j`XDC(h2>T-NC^54U^2El+sCtJ5pb6oCJFbyTJF3oj1Z z0ok?q55T?sZPzb$0?m(p_(P=qzkBz?Z}Ico%JTx?@;r&f5c%&GEM#d*DGY){T_8Gl zESw}VYgW!=%`y``cA95Fihe7Vwxu^E!7$0?DxNQSGVNAQrrqiNzuazr_8NBZGu7G` zQ0C~F--L?6tPS+_E=`RGg>x>UW>dd_KL)Npe+P}^*Mwq!9QkiN=GRkF@k%ZTz-19q z?pW9eq#~wwB<0F4e8nWCil=caxgY>f9Tt6JR|%Q#`GIQXbp_zD2=;ofHs{>!ey>U= zKR>K}epsH*iCny1eAsY*=@W@k{7BClV9u7=xu+*jxt1&qOqS+JxjgVLN&m8QF(wFrxFLlLc0dE< zJCc(37S*BFsi6YxyDoary0p+#k2Z`$YoWsiY{{52_9I#7%NM(UY>xd(_4};{`XVX4 z`SI(YZGQ9`O{Tv2_B-GE!7DVFB10Eh5Z$vFBkL4s=*1-&*og-hQmCzsV|8I5i)2nQ zmvGeBSXRe^JZZ%H-ArvBOBmK}lt8->l*ioJ!C>7+<0xG*G&55DmoeFNM0Kc==D*zu zzVz==-Gm9!RPN+|o3DS&8sV0`t!mKzS-DPDDbOWQr%vUXDcLIJ8&<5n9jI7xI;0ms znl-CLOh&0TrDsW!EJUCqIEjzNq-aw1Nl~Cz@wNFu*;3s8c5y!Nnx#zP>90};o=IlK zA1~SQ0YbM}Aw-`bR@78#Capbbf!0(2&}LoW5y;8GJ*ez|KtU~iga`eZQz4Sx(Aw52)~RkIWx=*EU+3=VEcH!6{?NfhQixUFfs`1!)tOYpGTLA3^2?oERn2AzL`1ckeISV=mScHD^gXzPP z57CH<#QpmBRk(+0jykicYeABLD9uVrJ6&iGdH-PyI#_}-?nYVWmiZnd1K8o_|(nm(>U~eCga-x`s@(R$Yz0nnn?^7PJr) za8K4}dyf?K*_rGG=%}$GBk8!&C z&Fwwbe{sEK6?CoV0)R`$Y!X;DJA1;s3kTn#0o$(Eo7HQLWZZ~kHw*8u(66UvzjE_1 zS!l{fyq!ejv7k%u#X+`htwt%(dT3r*{(RJc<>iI{&)@l!%bKrIhs4 zJ65>g;(!;*#(kn8qctHudrq=Gfp(PPP*V&Wt2*f|z+-e9F8<>35*t+We zRipTPSue%x|0nWml5(61)Veu)15Tema^GPD5Zz*hGXyF$-ak%_Bf_)G6_;x`th7x9 znwM4;*QZ)lZ2v{8if1J*o{<3O8KvYoe{5t(FcoZ;D$&enXhln_u8TeJY076A@ovg- zo>CBVKXQ(PcJkF+14LdBJ3h_wEb_@L`wi|Mu2CBbtv;}2k2jCo{dVBkLjL*U&HLBp zjkwOInO0i30XWYjF%$14X5w2vdlxA2PbOONRo+Wovcy0Uh<(BlmrCGN`+Ad~SX?e&KKCcAs z5Z*sU_@fGku+T4My!heIiWR$u4<{b}AM||*&#F(m3Eey)H+X$<@#Bes-nWW|ZxoBR zG}o@JT&1a>j=a}e)DFju*2L1Ze}pmIUWvPU;?iPxntX+B<=X)8aQpbeBPNUf*mdmf zJL2^9uU{xaJ*m{mRXjJ+3_07dA&Hjzxxz@UX0eJW-e9abr%Cz#ep#}gvSoy{7 zR?DIfFSmTj9jdr~x?Fdja&0690Ou(=O6{gJ=Ax#)PgfTC%8z+#!|zOTALuK|C^vS^yF2D0PyPv1|*GhS6mhzZ|zW>odf9xciIG=>zOAO*#$s2$N z75ew!2EY?@F4wJGE-cr`c9g0|4&Nc0mCoA_Bsm zu**6B6y2Neee3(1Z~f$x4?lcA)eu3hXS$mC46klK1Z6V%`L!yGUsRSSc12=Q#F+O( z%gDF%g&+Ln-McSe(Em@9nU!P-fKN!p1yP-yf--TL2qT& z!`Q`on6ipf#m@(X-LI9C0eGa1amGXvrA)N&rQY)CUXC0Qz4oo#{8kba*2ngfw=dUDl06cC*D|bMmGhe@X z^W%%Xe+RFP!vo;Ku`f-brK2{ZS!Y>=!^6@a_i=(^-*~>Y$_4;sJ|P)AdaY3B7oiR> zE=|ifuRnbF@%O&@lMiqCd%pQMk1T?7#ywB4mQe0B&f}o47jv^_{&O?8q1=!twc#8) z7OEbxTchxowPGUxkD7z+y2KoI1^fENr$5aPJ=SZPuwIxjXEJb*pTyEgH_LRjy`|0K zWFq-#F0skhkGOI+03LUldiTR0d}s6KhaaZomieu?p88K7`d60~RtR5zlTY6M_yYxU zh!cq)yq1T#Jsx&UT0sJDuwO4O_VUBU7$W6>0U!wpJF&*C)yx5SM2N{uj%*5k%G!Wg z0M1WYVv~2DI9IlJNig^*=C#jng|FmRl9Z;{N%gn)lC!Zk3K)RLsLu3Z@lZ($?gcPi z`mqX$bmK}b0e~mFNby8}Km2j4Q(wUCWQrBD_SMI^dH*~HBG;Dw+LVX;D_+7{v#DFm zrlL|x8Bw`kyKF9AlB8l!6RbstVD|BFjsjU)Wnl*3nDlyM8kM%?@^bMR(T%_RQ=QZ2 z+*&CFfctZU>%IK#KDR#Td9ZEQm*w_Kti!udE-^;9wKgyS&Qtz><@WX(Tm{tja#msI zwyd~mVlbVpgN&dn0v~0jJp<3g!6&E0hLJ%Omnkpic1kiLg+<)b+x^rgo^~xKbNdF6 z+na+ZMj_4g^~?GDlS+s!q8e}S)=H2vh86Lr)+-`!n*kUqN0K3tn#0>It0b5-=6 zw8V|_gbp)dl!IeEn47jxR^4wBx#xM(wQ0owJnH?lbT+!ZU@RmPRJ)Q~0XAqt;`zs4 z|8_d~=pTRmJIA@KHAVpNzydze5_wgi2a67}?cxO8{$8&AF7a$_UMv9rH;HG2D4ZzB zg-tK9d7r<328aIql*MqE9cb55bh}XWC9ac`)-DTWYmpHIha^t&#T6&htkquuc-(wc z$Pc~3QZfP)+%?KLFCY2&W~GG-fV=1a`|vBP*B+xDjy8sct+{~>i(e#nG5@|Sb1x3N z_A1)tDoO$dOR06jN7M$rlK$qB)Knku*&9zdS<;n%1dP-4JbIdZZTSKKo}64Jo3p0o zitspgSWSL`W7}f#-PcsAQB;L@uYdd<>W2QqAHSIr^;T{J02j;W{bdCc6pfmnvXaXI z@Lw3UxKK0S_bF?o-?uhBdgT=X;8S6JU!9S%Gmv@yWvbh_b~DC!r0^m*NeI#GVi7up zpM@@e@)T>Wo&Y@JZIC=sZc+pRuz%XN!?d}zu^j+BW@@s+_Gjt}*C=RevqZ_f{{Gv| zhhO~Y?dH30-yzPH=UOXz190y>E+N5SHqng9$Cukwr6FZGgS9av0GuDZt7W`+rbrtW zi<=N$IdR#l=hMYxmZcBt#Vli7T`dvq-+7CFsP?z-zPZYwc_RoS#3*0-z5Id2nmD#HqtZfufJ$tyzS^ z6S<+0h}ryXyB1&UaI{1*+ZTSFl#Y? zkIQxMroi`?4@*~k#%b=J&<6astxZl4=sp(h;!uat7VmIHtxbc{r52rX9qK~eb~&t! zc(QFA#=|RsILPlSP*~2;^O)1xn0tYCYOtEJ_k8e98P&b&CQ=ui1`#@$dfE%hTFy6)YWloy@%&vz%z zWK1U6^sLk^lM1vhqpr$C3aAcoRCyeS;<2KfZMHb4!<#W_pSZd=n0_m+;yKX>q+|Kg8!tpvcMu+J^3R8+?pDsgkK$-=L^tweC?V=%WjTWT~A$ru%Y#k);Rv zPRJAMKG2(f=K9$~_QkJF`4s5lZ5UkBxi)AFX{^o#)q&Y5I;E02eLP&DXUd3^s&e1I zFfXTO zn^t#pg6W+y_W1||S%5&BT3l_Wm1cX=LAls+s#cHKrk;Fw(pH#0lR=m3UfwstUkRpJ zYRU+O@wr&lpXI}{Ab~E{>X4#M+4u}QiNPAFHyViGfJN@Hs(#h}e9)qQUa$wwX! zs)SB4W^FShi2)=>*Mj}%K(!ju6C56J@^y8BoyX;r-UtN}eTixl7wqX;L0F*G*ay&*R(zlY>(1A`#hkKBs)Z63 z9J<=}9S*TD{JE=#uT2{N%ipqFnYw`l>+-WU1X+SW7u!;QY=QWp1uafs-Kvh1fYo!< z+Pf3+*E`1wm#6)$h`nUo*nDxX5ryD0>>!DG5GYI3Hl} zVmjX57i`jhzgF5IhB)ok;*LOrM+Qiu5RE;qovq*^kwV`FmC6WZVTFyQBBl`1kzY-Jg8y;0rEP>2omJ-3A+5am0SLk8{9KOpecOq=HZFa zWc!$}A&^Z7m5Lv;UP}oDy160Nnnx1bLo3!nUXLAr2N`_RrtBd)bpn0=c423~xlh;E ziFT&8QIF4C>11MoF1Z%`3-*=Vd$p*B4>+m5$mwrLAm%awu@>tkO_ ziv@ar7+VO`MGgWGG`ZG6`kDd{QDC9Capnkj7mu+xwibLPUjV*>YS4Tg>ssAXp#9)e zqasDMlW_vH>AuFAC*)(;`>B~o&9!q)OTxK zEq@6#Fr-DQF_d%c1&7(7a_W-xs7i;SAn#=vm3c|~)mVhtqdY6s)XE?Cs~+iK))xm5 z=w7KOBy+MJrbkQCd+^E5S zcf)~kJB|dlLBa)THDz9ic!DL6_VT_wUL~q{-`hQzkGH!d5oQn@#KM07+nCys=M{;r zvMhl%25YGqB1Qup@>N0mG}xDvsE|(W;n3;HbDv1C=C22H;^qZBG@G^PEzsB^_$-^T ze$?1J3ycpibQw?tUkCBjEqEk0odYRT8`<1Bc- z(i#^qsN>VZ$DL7&zu5p;sD&=1-_<1z1RAIj8?`W@ULv{yTU_>|O4$ON?dYD0%fD~! zZm$5;?08vJU@=x#+7Hue&d)loWK9C?vkF#M%6Uv$x32S0o%XFnp90l9c&dhfN=r>b z)bGFj#RfRa-kC8u)#_S#PoTjTV+nc~O41`XA$V#pT#HpB)Na2>Su7$zdXbp^*<^#G zFi>%xj}4T01=^-sAaAEWI6dZ6JXlZ*Em3JD=yvLq9Zgms_OaQ#xTI1JNwvIk9RfWV z%tak42a1Ltsov2DG)ZKaHIVdw(qSat!iwgaUxb|e8%K8o7apc0{J9uFx*~~>m*{JE z`uSuiS)xF@Vj#{Lhm}Tnbd-hN1}qB5J35fKp*|6WC3AK9lS|Xgg>F5h{M9T`pj`+g zGC8fX0g~hhZ966lWx=Yf)Et+Gz^(oi`!dekiE2jcB2K_lnzZ}3?{`?JA{#*G>P;cEH|o{#uN62KMU<--wee8 z-){bR*+iriGa?5taM8-dMhJ_@tS6W8NR zcA=U{!@kqaE=5jW{=RDI0Bw@r>PCaM!9u7h)V@#-$s7wcRIy;K*!;oybtTzu&LOEs>#hTR8E7t7CnA7a&U2M9cFr0kk~pk_ipwaak^aV42#}-J*Wl5_2rJNGQQ{`ja|w z^SdP#%4Jw+o)0CGRSL9kH7Ormfsjs`-VjpgskIThM6>&UnMLFje<20t5A}y1y#CQ^ z)GP({e)2v4z~=54#^*CtWo-gox+{wMExJMX;tXVC>|TOPt+XMgkoG+1BUsDlKNkjt6KnKT@`fEt)(Oa?Ryzi&IxL}!B>fto(lXgK7*`S zwdn9%KIjG4TbL~hg4WVGg98(u56+ea2(%g$ki?UJ39Q-ZLw9sY!13rTaJwFHV5SD2 z!TtZuW4f~tocl{KlN)_2uU-I<=ujcS_`nNcF z>J*3Y8yM=DhAnx>mx@UXxUqB3UN4Fn4BDS(iHk;l-E4jj& z4hVp+cxqTnx&_*#YE;63L{khTzyxuN`r;~o;C?HE(MLj8Cb93gm-V=E@nzrpf(v?G zC2Y}FEYyTUkdsohYmZN$14+TwRci(aS$>3x5qhI`8tT3-x*dnoe|5hE&KEudfi_Td zezFk+WbNJvH0eCx~!fC04oUyKwk(QWf$2 z=vpspEo1@>jn-+!-z^is#f22*hqZ`x~VCikDg7w(>kA5|E z55?lP562m6+dp00-#+Z9RB`aiu2w1p8vGYWX&a=xM6p1{;(+m!#_B5seEU=!SW50+ zrzQGn#Is1iH~S;ATayxjJan)MpiYf*aU?rs?Ui99B`f?YMue6n|l=rSx_6WgtIS zccf-n0?igC)%CbqKM-iF%!7r0Xb45s!$aTFNX0I@alU|T#&AMu$6p7G_2IUrkHplL zcEO<6_>R!2tL)NRg-W268I)3i+8JvTNOH?gDXROL$v8W>W0t$L8=9=pTlT+PAw7RT z?&mM<{&rH@`?&gk3A9rg_9QCi-4k{OB0zyg6$Tt4RYcwk?4aT4p7HB<}py>3N+HH%|=qI(?VUK|ji?ZmtwC#*F;3bgIbcQZy$F#&NLVNHQx z)Sz$IVk69OCl~R%$1MkHEvo-*r<|!R8CM>5#bS3Oh=o~Q+ahZ@mfB7Su#6-NEWji)0CkdY< z@iO8nuT}yCn#%FI(NMUV>(uDIDh(mejscoC9I^F35xvuC*}F!d&}#WtpsjH&cyhuz zO`)XDxl~Iq)ElD}n@$-AfAAOE02XJ~aUYW<%z!M-d3EHtKxdV}O|-+g%P~54?W})>2?>}>3%-n zqzXs7#B2|iVwBcOcLH7D!5~XMh;9TQfLXIbkfLy>90D+{?RjPEeDm50Ju&p;kx6 z?4_7s~w0z!bEtXe1C9f6O_;A%WldV1$tBi z{tJHz^ezw?lZVmCFS!Xgv4tm5NCfQ$*j5|2@q|>0k3>#T zgoL!AkCIe|f7Y?f*s}Dw%j}EvIx1CU>dF<_tO|z$R#{)BM#L2Q-RctxRi%#KH`61E zA5+UwWKJBT!)3$s|I?wRYL}Jx(ORC1uTUI446lTj32wFgAoJz46*t;gtj~ma|(`fns@j zT~ZdNR3fV3*l>onE~}6;Dup5C;vI^(B?)7_#jX+JUrt%O6XJLs3!ajpF|AEzc+cLo zNwr3=f0Iu}$Rulusmopdw=1X8M{{ZRn}$UJSd>BJCQsi97MwX@Nvql{hvSYJx(Jcb zfY7|RNd?hEre>D9b<=@D?8hC`uStvt7j43NazLp!6dHXBG3#sc1Wq-qip{@BcVKxy z{?bJY1Lb^pnGD^VG}W{Sh*PoAQ*yv!O0%%`e=4Q1c@K{l4QSd+`V{x8Kv3sYVren$ zm8@MH_c2V+TBw+sv8tskOf5}GFKzY#Ru*CBQv|XS>Ud3CUI0U9 zi4n&hZj6lG3a>mY$v9<_=+<{Ief40F8(Vjc{Po4Y$fR^El9jN@x%V6l(T52Jo ze>0<6CuHeHx(NTqJcw#b-1qr&Wj4&hOP5piG2pCNY2{`Qd$>CyMZ9&Vhttp)x_Q)> zm1?R5-(5_wG7*EdEj#U-TOz!uX5M4sA`5pQhOsoY-{7KV&hzACdK=orEz_pxj%I@z zH3~7bjuM4+Z>j@MXr#947R0wNu)hfXL+DvIxfhg*FF0i3yZ=ozfeQcq$z*!*u?svIi z6Hq-`VAp-vH_Ff$vz1j;J`~-gQZ=-elR+1*jlSl%Q%-ol8YZ1M##qq8NczI?e<|u% z4hwSKsXTf~8M=Cnm%?iqtCH226uPm(3)_k_!Q}&K9aO^?6fi1j<&0H6jhc@bI?0@3 z)gE)2CESFht7%OpBU{X-RlQ3s58Cwh^M6RXVsBcHqQ_Agn4w$GN#r71@}_yXf1)`X zjZj@+dUN;ttdRVRh!V^Q7aawxf7-wT0R)&yPTCL02QjojH6@$sQ}+RwUg+7$T1qM< z#+pO`WI&t0*lRPu#omERU>X-lZul|U7O)=qdC7CBGeq^Jam6>L1^SkTU0Dom1l+S+ zMOPINI;b9d))H_-t72_w@xVPhc*(XlhVQ-j^u?-HB_@W+;l7Uy?Q_;b&Rmo#z2$-_aA0xKqjlSH3prGfab-bKNb<*C)JcW;B}Y-Le^p{ zi``4VG&n=HDANY%rp>Uwn4zuB)tUmR?R&}2SgAxyF~QMk({d|&7`}8Y0K9S5b^`1~F=%TvPO(khDz&i;kYJcfTRM}Ioa$VkrLlJ5EbyZbb)VV^>MnnhlsEw1M zt82~3kTq5v4o!9)wXtZmb{H^L!eMs{p2BR7xbJ%*u~yh7N99F^c0I%VzU7jWlF~#g zr1nA-A(ZOt_F`0VoIT^*6>g?^>yGw?s&6zhKV+kYt)uA@3~jx!4vxkLn}3_|xTxAf z#o+%Sea*Wi$G8MY+mWcjq{A6(vtj~;G@;i6TzSsTB=pqBOH!(5!9QF?3+jU`gmn3GAW1TBR|50L>5 zzc1s$BG5KY??20rxlNv;x(>LVet%_l%6~Z#r3++jLixHA zd$pNm4@eq)il3Zg9{3!LNhMcU>hQ{CF?#73+SabSahQ%6d{Eg5nX{1HI}?LcdQY_G z)$A0BWfM8aKAoc#WLx$Z(`Lq-p)+&~MV9W1fd2z>C0Dd9y7$z&b=5Vw>kNWzXqOL7 zEHk0Xa=hUTFN~p8(tia5Xaxot0+#nEWwfRgnMKf*s${Gk2uslPgy+-|_3N9NnzJ|r zpp*(Rhn82W12T$M44tb=U26;giv=00OVVVmjX=Lpfk>MFmtMuIApF^0gDM%S;43>W zAk#GnAG5xB;AAT_<_DY^G-tTvB z0=i^;c4>5WhDO^KVo)>974JhS38fQw$R0jR=KrRx^E%OqO*D6#rM@H)M#6Hcqm;ko zC6!op9QNunw3le&bSY(9g_K?U+8tazt$ni@uzI(|**RhR!&UK0@8URy&>iI3JL&*&K5~VU1FSG|K21 z8d$k%qNap#Fi}$!U&*}{XGIUfie1HdakA}%Hj#u@+JBO^Ncv7!G59=c&|qjAr7*5b zOx+YBL>YXq0i$w&BpadRZd(^NA9E%1sq@kX(U(yLbXI`dV50Uycz|7auT2>>{4sRO z4bV3`0o&qYl{ST9is}VRs`X&oy^L1saPac`QvlpcaQnS{h4c+rbdJY6v-0c=Eku^e zxrXVZ&LsevM5$!cF$zlwb9=t-g%u&017|IDD}o}@%*1w`k-$=4eD>*=3U&xEf3;41 zF#Ks7#fR%qRx~|IiWu4{uf2=D)R2pZ6OA(I>YS3U^<=caCuP?Q_Krc9cXpa=%T`}? zJ~KEgkUJ=H$F}iWY78AQ^wa}`k0SXFi}F&G7Og0`8*fdxUqPGgM3=CNRyk;Ig@5Qx zK1X0`zF0TVsA`c4$am_M9WF4zf6%%nWqMP}8l6BY3ZVe?=(_Y=MYA&9zl+4r_EXGJ z+6Xz8;anMpj?r65J?f2;sZ=AQ(E{T?O7$gih06jCphm^-z;XtpaiUYtKRy56%NIZV z(d+ZiA-3c5XTPM)YL%Kn=`KT7qld=OraK`qATdjqW$!hMVs(W3r?V_Vf7w0P%#v-+ zo?~{+@Tn2d`R0%58V`^{nxdCxG&qN$B?dTZtCFlfYvH5!C9CeV&A@qtmb(NCr<*-Q ztW?uN$bJtWFh0?`$kJ$4@%DIyT3!`Hr)*sELYXG4i5Ny?0_>u+S!xkn7kf%SAvlOY z1^WChz7Y`mnIL>b{fF&0QEIqq07GkKiixmJk)7?KC>5$P*(a0|V2#V#fCfF@c9-30 zFAL(px;^`zk`#3+Z4|c{+N$1?K+@n-E+r*_VI88FBo&;rJz#)bjEp< z$MzlQTv--Y#5JN}TV&Qwjq-Sgj=?F_N-n}7bCSMi5oNC_8w+2Aw9n%g=gYm;6mu2c z36!vi(_*Y>$qkzr7+UuR|4Ob^*q$J*Dc0LsYDs@3_nP&xHcZcy;!R4*IBU zC|Q3LXLE@?^3RtrGegice?|3NAQ6A=ixW#g#7L z-~0TNi>xu@+}3sN>lgxMg~@)D_A#{4P9`j57@H6l-d{@8AZ@TkHPmbOqe1?4{3X>8 z;MRGd2iNhU-V7a6NkEmAi$!D;B!O$YbRuolc5}L|rrDUx&-KgkFh~=ZDw7A48eY{hQyoRK!9`$N6 zw5Z<3RE0FQOKp> zX^hFqN8>`xPIu+7;C8xKk%#RwY?%4(clT?IUGxdn-$9EN%38kIkUbk{bThG=(T!th zAc4hVz4GXzuDQdaoffEv)uM}t@_sm>X^I?}Sz2vVRW!bNJ}0S0NfJY25TEGD8X_WnK_Nmn$P#QLzIMI)A9v$_@FdS*|l(^_ne_C zW|A7;yzsF(7kx{%3ejCuLKT@SxyruwwXdB#f9IZ>lk1FQEw{0&5#=ZTnE-PX3d+^thU6sz`xU+{QM!=80 ze-zKmX)KDy9qoW)&HZuNZMG^LJh#NW>g!FUkTi{N#XhcW!PJR=bGeKU?-L}60|0Hc z8SM)RfFD^|t5ExFy`)VmSFi>aL3f&g9ao2FHUzvE%JgmSa9OS@S0o&52@Zh!qwV;Y zfXp6lZ++h_bId0|U zNtC{KWbFT&_ipohD6T!TB4tKfa|7Uk7x*m*XS24d%xI5U0K7NYPDmtR))}TXL!Q0( z>8CHg{|v$tX#CNQF!wiN?i_W7O#{#S&7p2==6En2Pay9h%PL;y!#gl~OdZP2@#Hfe zQMdyma;Lzr-+ldbmqC6AEF!rh-m-j1cmDe?Xx`(Aj6APCbRJ|hrSZ6UT;1t=`s|Ar zmydo3Wd>(gke*+ym->DPH-FiQN2tE)<1~dA$k5)W9$Uv;(q?7PvW5tIr?hFwHW>~u zdPeD`d;u9R_L=@p=hSma&NeTT6zwRz;1x1-E7hdZYb`A)ACt(oCM9F-SqRm;{}-73 zC&p~HdC!a6qTV@4lc7a>T(aj?F?6#*sHB>&CTc6Ku(3F;d~>3}v41O~2CU6|dR17H zsqpmeIf9*Ju2ItLku>uVJ28$h8VcV;Ly(XW-EyNHCjoF7mYa7!-dUj=?W7KX^HA&7 z&v31A@5$bV#jwtACoypF#Q|_xA!9yY*Q=>d$?PM*DJZ!NUtldKyW_beJed>+CVRF> zA4}O2wkTY)fa6AcHGc!(G6lQRnZwRjEN+d6B`4Wh30M6~$}4_9Sxl8ZUdo>4L%?M| zG8yl*ET8daI;Sga2Tf2Lnq{;rskF3kYAyf;>6MQwPOR+&+1YSz>=r<-LML`Ehk zOhNd>kLMO`hnFpZ2p@l^%h@%A3M_~|*Kd&kp)y2=4VP%{?0Ef;zx;hNg$04|fG z#sc$9yFmS<)uQ9E{yePO zA=wvoIt3h=#u?=<0JzJ;0q-tB>c0aXvd|WNJZhbX6RWM|pb#)7@O*FKSm_hGw7kFk z!Pfqal~T3^1J!ZY63vW&F!SnF-c$D}I9q1TT)u!?D4ejD`+*2j0Rfjzf(R=VDu|OR zwXjFo;>&bHmz)A&xvt91myLo5Ap^g9#h0;y2qgi>m)C*_B!8KD-hA(8&t85y#c%)g z=byg;Qg`^9?>&F{2A1hs&~-SDjGEmWH7WXa5qL>-8Y|HWZ>+`iBifNH85)x{dkhWg2e8#?Z!7W7B{EHoYY2 ztHzStqRZB7fm6As8o=-2T`7KTw=pIl2Z3zsxLr5k<$ts(*0vCaLy;Idc-ezgJz&%| z>B?-&vyJjGdVBS2~m&A1w1K33kzfC1cbatuT^r^6o+Z4786xVwf~Ln z=v{>ISX74Y84VpmVm^3OBKKyxbSjf`yZe&w%QcK2WKVuFBk7Y_$J(IiiJ}hBzdPi) z7*0LBV}A@?93W4FC18a=1GsBrEk&Cat7=V`djbtFi$nOoPG3=9V(ap7b9jbs680fE zADtFH*B*mTCJE7!@x8^qOuj1a(l=*spKxUy+zPVvo?QduoBQ_3l!Y7Rz6>3zExlOZ zC}FqRZX+hhhLD9e())66BZv>pJTG)}+#$qMGJmv5R%Qb{4n|ik6{l*hUdtSF^D^Go z)0po-fF4YVjaB7w$&{yL=%#cOI>tn?IL;|}(^xPyC>d#*+@Y6XdYOnNJwBcAa?-Z3 z@vShU0bLA@<-*~xdy`!`(R6Dtc`sRHpp+TN*sgi$GX41jxn#HHaWDD}+P^rAYE8C_ ziGRQ*hxcNFPN@QAFy3L(p^m{j-(Vp!!WKnqV_KR=wzX0h zVV9;^r2OV{PNTetp;Kwaxn#P_SR&cg7BQnM1t4&yxVA|7OAtPcfO6$tF#c1Dn0xxR zQ8;|cq%wmQ2E&N!R)@Z6yQKiF*21|_+Q`tb=#ra)e`I!u5iL8}a#l%rtQV_x%zrIA zJQSvE7!Ekh3mCd0;lb3)vCRW&*aRd+&dt0!P zvs2cR^rm$;dUOmO72v6`n7kE5lBHW^YOE!9Ta@jt9I(aQx93&WdJdz}XbkO|Ev?m@ zV~s_^+#$B^MQnh%K)u|;ojC7x*%1}c6u{*2w7sX+Utm`I!^M}E1cwMgYOmB$vXnnY zIRxL4aDqtn`9)pzt-I>n2J)O+qMd_KHTmAP_QRe08QOYOF{sUw7MR-)L?kNZQ=qhD z+dr|B`Q;$q!!g3&p<13~_7 zqSoQs@eHkkm9jWECy|rZNm{F1H^N|zH!E`3x6r~_El#@|n3*u7CQ;&WA#sM*f6ja3 ztk*p$9c;w~$zZzj1(2rZdf0`EQ3P;tAzzRT8Nha~D9x(omi#EjFtk^g>E%%m>nL_L zS#62|ML_9et8!m+-60_O(X6F@SnIJA6y9_W!*zifT8Ul@EF);GEu2fl4~jgb*&k)0?tb)k^wz><9M#jh|G zh-rJjX^)SWs)-0@Id&(y6_{nKDb5IqW4eT~FX5L-iU=`(zOm|f#Z(L&IlV!;3&pG0qlRgYSK)qII5<}3 znVT}5+`)gRIcfGU+j~m%M3HZ*Ty}T;basZh(YQ_koabZn*X_@*`Tf$(r_ekBP>#Ny z6VPaa+ z;U6^S@zT~jrqFw1!VaucdV&A^@TWhYS4@K+x14PkEOrNnWln++j5@K|N%7s>;`Ig| z1opXWl9C{7_on@R+Wpb&4**<$&>Z*{1-g9>UE0xefD?Tm|CmBl2Dcmlmmy!ao(j~3 zSrB>~?8{LkgL@8uFzAdYm?}XXp&A)RK`^@ADpwa2qq5V$floN2mn4sJUxs$Fd+f1i zRV^`E5t9QRrF%-W8xqFR5rD#)3e zwpk9#vJ7ojq@G&s@^HB>hDK!_GYyq&-4?H6 zim@wn4+g2MQ_GP}9Q@r-6qbmJt~CiEd7+e>i`8am%NM zAv4{LMsYB-G_^@sOqLb7a0 z3N0KmIxh-(V|rIAHaH@U4STIFi)^@4y9G{y^ncL38&xCR#^X7kyaa~saDjzTriQEw zM)F9RdXH4^SW02yNA;PTYjuJ|g!KGuOB@vw7&^r6WUnel>8#GJ6<-BrwyF-_Djg3< zO-p6!ckezdH~~wDJ;yK{rNPkH_d>vSSL>~=NmiATj}365&H)SIdED?o6SX{xpQ z8C1;pj054}Z zN%JKTt9J=Z9>nXg7llisay3IEBgZP-PU~K)5V`o?L$NiREJUhENCy--s5XWA86s=} zmf1!L21A>ugHx?bnT?A^!G>5Yy)9cssjte}7W6Z$Y)4igE;;$_xzW!z{%{2bb$=+l zIrm2T`A^{hKm7)Lgez0tA3Y&93VFJuOA^gGM3Y83E?4tNEG4~|eh-U+;yo`vfA;$P z+3VLYUwrT9ub(f;$8J<>1wb102M3&Qa3)MY*-1z19W_sR#Wv7(`HeGx+#SmUOJd3FjhkwuB1gs|sek9UXXJT-vVC7t(@D-6cgHKh@P0(%C|r1SsSon$ z^Dkci2-(W=k#y&;e(~%J+_BZQqS;2V!!dSjK0xOX{u08u&M!I*Gn#7RSbwI&`Zkx{ z=30?_tC;8kS)7`0aCuACGwyBxH+k*HQ%`wPy`Gf27H2f%(*!i_XBS%oo-H}bba_-G z*P}8s<51nN1LkA;<=0Uuht_5F&_qY6)^;MXOoWKCvqgaV%fM%sZIK8Ye;%Rq$>trb z^ME9ZznQ9#950i-twJ&(;7=wz`1VfXA4jp!fbl4|<^iLp0iSQE5f~uyi%);BDk}(t zC4I?3_@mnifJ&OHGI+vnJ%s?o!?<`;Pig?Llh|C zW1PVao<9K2{3PFXdTkcJQT}@b!=prej$Y&Qtyki#JffFOk_aaPeLFMpf5XQ0Z%o~mCYf`3KE1s7-6|<7-A)NrM0&ZU z#S%&JhyIQlk#GiRmia#F{<& z1oU;#NOF*}10ap`IqD^^-luDS;@GF89njzO0gI(`R*%x7z7qhPC! zn+`a2hf~Z9N*yl|K+_=LdP{$Q2N6@J+u%dqT{Y^Q0l+P4!iv|T)lPP*8oj9i$chK& z5NNHfWxx&ewWeOk{0?p>;_$YmA)L@K*@gX=^Y@v#Dl(G45`MtNaYO z%Cj$cL$XZctq&Ml3U76+4ZC&b7(%JFBwK4%*{1FoFTX#TW6oG5KZ6Q9lcOS~;qt5u z?XWvo^;(&(RVbJOmTmUgIc$@kliIoE>tarDXeU2@bxKvK`$bu*QgHg^L{VBd(j3pY z=S4AetHF2E4IF@Wu;bc)#B4Ecsk9J;WA)%2NN=QT(t!i^K-DTZY|aY>JMX4F{X;nW zCLxnILXBER7&>48Y{l%NYJDrhxS*tS*uh5@V}e{CJx|C-A%YJ5c-b_bkD;T>)YVgD zI28xG(2SNM`RKK<+SU3mkKzt;thj*E{ZmL)_9#c+pP{o>Db^?-B%8)u7jceQc!4_@Ye-u*LFhucr zDcUgJgN>n6_Z0(w;{t575ZZZ+3y(^xCW_IX&7#yJnSAkp3dBBU%)d@kc#Cw(B{52d z7+R=kh3U#Q>#(U{ZMkHR!IKV9u?M|~>l}nOiAPLrISH10sdI=z0>%elVaxq1I2JDHNYP3Asa38d7l$=-QML&be5sQcc5JN-(Cw zGIBT3WU)Fiypv1ab&^rZznnsD^{61k^D?x_CTgRTX>bs^R-;68-NmYm#T<@yd|pvZ zF2g2RhVJP8Ydv+0RW-8dWSy*{NkEfa-1>dL%^QC!*jHm@QFS<5hM`@<2KoV0Q-CIF zm@-GzWOprPZ13q-Z#_|h$Mfv7D){!7%9aQz2tKg9z>@LiDVO_}2qyvgmm`-5NPqeT zw~6`F`?(qbPe+}U44re&(s-Y$!dxxyjOiGU8-;+am2urt3Tukqa3vV_6mrHIHgv&$ z6Ac0&KCl`6qHp~+&tAQH{_^$ttJlARMw=I#RTmzuo6*B*mJBUIQ#u3VFro#Wi`7WO zMJYM9D4gCgML{h9xD>Y}H%9Aq9)C{uU}%d;b2T{wEJ7OBoGQ}0T&n;UQKL2c*8s0x zVH3$sL;ENpUxJf8uGjM13>{mJp}{h+3sQFqNuMetDVb(N&AYw_!aOw5P(Ja56c{KK zh6NOcF4!y66pV$CrHhz^QzB!UrHuucr?nQiKyYs#fw;4Be!Zu^Hx|BFZ8T zc2rxqdQHHaW|z{Av4Nt#&u++n$Rvba$fsgFnY^3)97nvWq?WfjWgsv(z8%9v~cE4}S* zM;&@-8*S2mhnloWjuIP&&b>*6ab?Yxkcx!u_fbXXbucv=*Dzqebd; zLR60Hx%k6m>wzI{7~LR-Zs-IL$|%g%)zx)0ktpGf?PxJ^_1*@troydu-gBu>dSv}! z-D98J8@Ny1$*jt#^32f2TA=`mN^P)B0y8K)H39*DTx}{V!Cq>VfyJ3R`G$07!k;Oj z0J{d@g<_8X*t2X3dg)`mJlF2nrrIq=8lpZ$Q^rtCB(pHYr#CcJMD%1VWmr`X2R z3_;ff_h0Pub9Dam*@^r4v!6UafBma3o}d5d`Df4p9K#Q^S4%J9YwAP=yY}|#?vg4? zVfS2rN(!ZmOz?WIi!2`rq}49%B5{F)VpPNy^Id>6xB9ToK@2^c(i^IlkDH>^{jNxJHauJjP&5#Owhp0huDn50=;^=L%ZPt<0wmuHP6)hOVxbVH_KLlK0XW}Nk<5XAN+GW=2o-N&G3UfbX+VtM2z1UUu=KHS@8RY7S2Gy`B**~xJ8G#h zossf8-F;?5#>>|~do{J`qjPxm=}%77nG{>t$xFxJdjyq7I{ej=%*)kG7z)VWp}wf& zoxA>{{#tuH4!vz1JGKzDk#6CuXwJBO`+%ld4{U9<3%EpDQ}=a-gnZ;TUh*mcOQ+&o!jbok3QKxedlTVWWR|j2XX^dNtY=2!c5m( zSZpQwCY1jGw7q}W8f@tfRhLJfY@gO^SSq|fhzmb#2_{roR8)^X**?({4p+J*Y6HoR z51YcpDn+a?#rA3amK@bGAv+h+yS+k&MIB5&0M6f)w;<3`W`J^Ez(ge!VbpsS4X7XME@7YfY3F@GIbzGxHl~YqmOWqiHMkqfN#WF)2VUZAw6L|? zN1tq;aPogM&IMjyMg73nuOg*XQh)Txm;apzAb-P_Byz)U&l*mIpVmua)&yg>YeM|# zgBkx9dk4$X51ieqR&zFh|J$bn?1d{ZlRSj)4#L{?QvKm!6M7emNm>9u1# z*uj{rfAcFokfunhgc2bG`Q#^@>Ufd02Tj5i)?fqqY2Luk8_H)HOc$W`etq&neI2pq zUt|sYu*orb1fxuVEAkUgK6ea)3k)2BqbDx<&K17c&@Fx_zNF-wk;sy^PdhW>#!gHE zcNUOyZK!_WOkTQFT!WeT>A+QGcECb7Yg^2Fw{ix7K5TAL1Xc`6a3}c*=iaYD^FWsY zp9mCxopU3x_A%V)&1OwyDEWn1>tR*;VXG*~npQfTDL?I=Y066j3erF>Tc4~|H&mn& z03LWdr7zYS6M+Qq6HYkbH+#@5>@06(Nmif!G@0%G zO|3+SoI~m$uxy`j%8`P*51NLn?c$Z;C!FSgkTdAPL$jA16$*Y@hCUn&J4qb&ff9#x z(itydr}&9>>c8CO_(3b;7RP`t{6y$-ByyKtKDYx7x2FG6Hj%x`t-vF-51ND<2Lj#PKJg@rrGZEl?H&5PPBN-0v-w!7eS^*e=MS!Cg#s%-(flKS zh0Gr`4OcOTgW5j*4|!AaQYKjeA^B-WNT>nWzrl8%$4iz87#nVgZ2d7^knMK1z4yzz z&0EsIKTP|tFqs9+b`RW-Dx_Ck0&ejW;nshzgALs#|G?YiMEAL5zy*Gqabe#Z0mp-0 z6q2T=xgJWkv~D6Q2NKZsX=g5U_HzY)+>$`P1eehDT?PXk_}EH9Lp6Q8Z)Rnn2QDSF zTxyW86n^?2;-<Gg-FL;z2tcjh-yt=_ za~169!7-*XVF~;gPp>bopORd0cLSPD)~E7JxikB)#U#~@%?f3Ge!|7-uF2!`u(_;nO3H$4lArcOsCJDR$ocNw^$EYz^yc(p28jW`B1r#FA5H+X>fTor zX!vP|O)qKK8 zNr1n*0TxYu;0=b1L*hoOM23J+CZMtGkL?B=nJm`B&!6Bg*)4)DN${56kVBH15&Zx> zAX}rx55cnfWPen4Th*;2^2zQzbOqp3@S|U$vz=Y4Fzvjiv*~q^CM0;3-(KCYm)xNU z8-KI8dnpB*UCTk~t zjK}zf;~H?f8J>j>_zm2Efgf?g54ddKU|bK$%5Qin$k*s);V`!Q{OzxP<>cf9N(tN& z3EpfYJ0?Rj(tZee*uub|Jm4PzC;{_HAb*}DC<`>{RC9(856-{);nh_=p|mw#0XIxT z>+W`=e?h+ns&F*fpc)&Xxc?vCuc$-(s}n@>@pK!Qa9&Hnx8=`*i7T zGrTLrpa3c&UNcH=e?o?|F4@rVxai!p*x!7ME;`G|yy3W{ zb!NhRENOC8=~Qx_ZQdKa8vN}r|I;|J2oJ!Y^Q0UJU`Cya7@2<{aclpkh1;#5V!XEQFQr zFpn@Zf}0Ca`gZ9PYY5cU`G3t5_<;L7?|jlX{3p58Xhj*2c&Z0K-Q}~hGa3l=3V0;$ zKn^0NO~~o+J4E+!$D82b=8^tpRo^(v6XWuWKU!C=$bVCP6@3!5c(|=De>}l&^Kl$#7 ze8UWfjaabpKtHbFHMojA#|xd&Fd(s=!w;Es{-N<-?;GvWf+@>{)7H{?koI;C-Rrrl z>IO!DqCT*nudm=Ym4X0Z0qJ%U6DIb2!ym!$_<&<=0z&``;*Gm$lh{C9YkjH+%`y)m4S^vetL-*jATz`tpPhVx zH;r4JGqu_CK{BP}!Oqr z2Q)DSG?_tc;;8}Td_Tn?y_wYOH}non21qzee3Q_Wyjf&I-iptuIwjmXx-B5APxi|x zd*o(AXbC%lf*+PI=G&A=N_sQ5T>58kSGLqj5r*%r@_!vtdZ8Q-3E+-ZRv{pwEEaHF zFOo@Sz-UeqGoYg7JNXPgncw&IH{Cr$a4X9TJ!Gb**MHx7#H7%wq(5o&F!5~E*NNkR zFliSajcJKeAfOiLx({*+UzbymJ-RHfs}lvLS+%dy>FekyDm{-&0S`_ec|E;ev>Xdg z$bn2A z;ZuzNJ%F9UWwb(R<8WXi^HMedoY~%O^|!;`?Rf9jPsRps9{sFX^2%s*Zatg|I?W(+ zp?}zNCGaI_FXFv6Jn7g~yyT=R$Wk0PkIfsQRRgh^n1<7|P)G(xuEqTI zog?3M+npj};!&Ha)i;R{9b_^Sj;+6jPsXBmTI$z>&l5jt+ zT$$t@f@ayCI2ubQzA(GT&)&v6l=h$mE-2~I&SH3 zsl_vfyc3|~ET0@882iy9Y);GU{Fisb`A^HC+>Ww@%}p~xE=nc)R|iAO1%q zlPkooPp^~s?c}3Ok>opXSw=aA9DgYc%%1=TQei5L1zfFI!=_fcSwqlvIy3e)?YRK) zP3-yK07OSMJ6=)0hW5!cfzb2p6^h^bMd~7YHw@1PS)7a`E&0;6hbBUCS9+4*wJh$3 zi|gT!RfSvV?D;VNsmcak1;<}i%Wv*izPmxk*9E6_y9m~0B~DldRlLJd*&+t421$rA7kPH|;pRI% zo=Gv`%|Z|Qae{S);82rvjyA}~d~uncZK+DUKgmRs169t)Vu zYtpC>%+mrg^lz#qMIDEC*?+kvq%HToC#;WZJR>=#`@(b|hR@ zNo^g*<6x7JmE@rmVNG2t4RCDApAhXG5w|z{+oJeeYl)k;1Z-55=w;tj|00~xv||w~ zYziAv3cgL2T9GMDrL3^57#C4^wqU=GH~L`jB4i*OT}&d9L0kPza-ML<*FMh3=K1+8!L} zeo>X4sg9|UtBU22?|-}anYy(^G;;-~1@kGy&bsvFAAF)T5eNdSzwr$>R_*Bw;^LAe zGv8h(!yca<9DWw^Nl}pb>ikSPK*?+TB6JhxO`|&tnb-2F) zNCkQQTUfn0Y(WEwFZebCzZYVnr7=ErGWJs=70-5VGWfdSTn1+uPSNOT%n zodX^J$bCVAKYCkkOxfh4--QWtSxi^aRbNS0qj&RmlyOWHj1nW1+~sUt#d6@xu4%+3 z1}v8SRtWA8>!`3NGpuBlETv4m505u+2Vzy;l z>CNm?oPWmppH$CjSyr($LJ}~toggFK*`mJZop{`Q^63|!_KrS%7K!kyls(Vz@O1xK zz0tJ#>}c}@Q1e$UDO%G<*Y9n=m1scFNku^1pBAeJdCodiwNYbBe~yeu<=94X+|Xv@ zFlXg4{o-XeciErCfi)KNvf&sG+^%2jA%DnR5i?TGUtB!9v3f_?Ocs--m`=b3 z1H7{#Gq3E$)roW~VTH&PMbx|JV0I3WUWlJ;Jp2gr1&z74==j$kvpj);gkAraBa zZB^8$AqW>^;VfChU)oy{h@Jk{yMIm~_J2ti$roh;hWDj|F`!MgJC|j&Xu-QoL&2;% zz1G*(SESP*C>uW?JJkemi)(AB-eHLRn|qi0$Hx{F>&Ff~Kd&5hb!i7nRh(W8ufDh% zp6p#5WrD?BCs8nGA+o_2>?nC>in%pxvztuCp_mCfJe?pe%=qL9-A{rUDL8=V>jmRW|tJ+W-(8OBHzc(V);*GW0}=$8e5Aq@NXih_O{= zzZrRZYZ=6ocMwY^wW>jg`jHdFw4xj8;80~j2qE@XXykwwCfnm1E5Rve#SFuABG$j~ zCi{W*7_9rcWib^TM93`fh{EEa+<#85ilTe2ucf*WqEMJrER|yRqFE~(cb>;Q=+@FY z?v>bpR~1DG+9b$}M4m0ZwT`x|CeIhkmEsNXB`yU*M~ho;=R<=d_g~U&V|k+rA8ktg z$%ePYBxbQPy6A9KCL=McNTt=*c(#qY>Ygya)}ACRdBeJTjwM&VSi2p{xPQ1-domir z;3mxk2{jo>*e04hT{NCZlhRbI`&qK)1_*Ha>oGG481ZgB@Rek3-t3*=5yXbn=5}NT zDR~WV#!#A8_nM{Z;5_J+7Q0TbAL5b3UWacB^+J_{v3!}2&&l0q`(W^K4Ub|XW1V(x zaotegsZT0Ku10+gySMAxsDJ%5Zkji$)l35F-o<_pPd_<3{{WIvi13R> zGG{HhS)v=S%O3eoe`xESKbPu!TrIOtD!OtJ3bl+|CHcI_L7F?Awb77&>i z{w9Bp;yN)jF`7-FFg~A3sWu+T&K9>vyTF3~@C~bI2|v{Azk>(`#&GkEbBsbj|C0i6QBhe!%nRS=0vIrc1-Hq&1;BhcNpsg6IoBFU)X_}5&2fP?g5Xq1dlzshQ zryUSS?c!~-*9<4oqC7&&)gTb_oF#wbvnM$)SC5Ki6A-an$`R_WGU28wH~L<~8q-2DJ(wkbuO?x~LHq26 zbC0(EvTaqiX@>JUmSjj5aN&6!ptWh&6Jb- z%)f^q7+sF-ShSd}K&lFVcwkHSq|vTEIy^aiFAAI^ncn$!ZNx!YZ zZ(8L(@`aopp6-A8CI7iRWF=*EY8?bx8&4h0AiGSK_v%$Y7^ty-jz%8@79&?ztm91l zHT8k|dA}4*fN0!^k>?i;=cpya3N=1;cuA@XrGqwujmHfWFbhDB#GgcHV*$IXX$fSx zBh#+Rn;>%9S?_qhev1Cg#<8DJ9p)fYlqLTr@Fu3ZYdakCIL7$SmXbPA6ok-MeP~_A z(%x%EHrLp1+$y_&vF3m+n#~J=YS4Vf;8+dX%H5}rS}wj$fAO#w+ zW8Xj>j>@UWB+zKs;1KKg_ESV@nghoQX4{(~`U??l18p2bX4KEoVSn%B@azDx-RFmg zp8y>o{9eM_fJa}(sYfwFeS&J=@^2aNJH+Ht<`|ckZfuV~Z5Fu3+joHID~q#1&n{M% ziM0qJ0~k)rm#wu3B7a91+9D~B`M=oDo5vS=^q(&jCqo^6SkyJ7$f_JcnWPd~&C0f1 z8v29onKIlkA;q{#HlJRnQ+B`wmhNuZmuIy8VBI^n3rj|8f9a1xTp!Q^WP*Z!1;MlA z4}P$|$NM3WPgoQUjZr$)8y-^X=sq0Pt8ts!z3Gb)DW_IBFMo~1I1SAq#pc_ykPlZ* zujNOz-P3U1RYt;)L1Re>EhFmY`{I~3qs1$S+b@6eTRD4hhTUvMG;W2hji=&T`R=K| zK#q#qTbJ8twe;Fn&KRxm>O!{G4UQ1y`mWmY6M9>t&9vx+KV7Twtna`tJKd}k07fu6 zR%Dl>5YJltRDESwTurbh?l8E!OK`U!K|=`c?(VLGyW1eagA*JEf+c8h5AGh^9hML7 zvv>Cg@X}pXU9Hts=bUafV7qLNAtJn2+~>{Nd4ChDZd>(_r|L7}Bm;|8;YJnr7vkO} z{Icnys)Jo9x;8vg7g+)Lsq8&+jKF(kjcy4WetBE^HJd5tieB^92Eme~DXZ&wzj2gW zgAkP|7V4E0q^Numcvw@XjHKGtXB`wzYThn3w%qvaHxnzeQHeyqnfSKc zW4?C;!L8d0zh1rf>5y2(3X6ZbNx%}nTB`isNGJISa;P#pKFjWu8uHXLGAUgr4}{I>FYPyeoDbqYTcmZLMu#*j*ZWFBypWte(L z2T9YCzL4%HNf1dMx8IQ;gC9rFmCK^@9)zkzqlW|@C`Bl0a+3%kmVS=5|4p9NkLK0x zgo3_iO7}Mwx8zE^_CPf{d5O=v%5O?5DkPz0z|&NYyft~sly{i4gL4qJ4ZbEcBZzvp>y^<&(uvusM7Z^d{B3f z4?a$FXff0=XYF?Fcyjv_QaVUaCv)}N5i3v|qa`rE*zGJcz}U`S_4^cZOCb$S8Zr!( zpl3Q4d++Lw+;w2z-b&)-Kxsw%U%VF5dCw&yGjj?InGf*I3OJ=`z{3mBkDDg{qqFvF z3Hxgf{F{xC^0Q^s4qY`Rgs+s!rSbN=KGT!z`-oQeT^Qf&X)iX%mtYpfkeDdo@}&Wg z+Ai{^`&&_NiG9VN7YZ*FZo*3Xn{I9)Ki%+=XcJaeYsZfSv1p*ZMDY9yP-=4F`yuYQ zzm{Wa=++)Yg!>_Z9+-)QAMqTKNy+z=nU<-4t5KiOt3JWrgwHq5zIfaEtbjWJktGC`5^MaCH;JHSV9)QM=w{rS%PX4jCl!HzF zF6sFxUL?`+=qAH9Woed&t!o{8^PAn*KO7HasKy8Y@(^UEqlQTe~7DYgp*f zB`e{k1p8vP|ak2-|csKmYsmv0Lsav$}S? zKhIgj=nR-Y!0t{7+G_l#3Bkfi1_y0LDb3kK)mAQ071)7%#H zTUU|LnGK#Z1yVL??AWoehXt@An3dh<6mCq$nlKx#0+C3Yc^7~ACsuQ;8ij1`62A;(VWYu|Q& zHH}Vq-p8LzY92*|pP-yZmA}Q-YtL7AXsV&elzs|}6>{bm%W&B>Z59^p=sNz&7@F2-Zak8DWLZJ0=!&`tp%-(75$ec&8L`|9)+eV8agr#1 zFwPYXeCGLVibS9YmDOkn>?@RM-O=*a3KrUa#sMqLvO7i5k$PzCjDt8JA z*j}6x!UZ^RzAcN)h#n*AL*LKfpC;LBOjfO>!B6kf>0NzGs+W7(e7P4Z)7@XW3bGD_ ziDaAbGB=)9P372Iq3hL65zmEPuQBtIdfg_gep7qC6dNv_Rt9i(fRQ?|vb@su0_<+5 z=zxlgzCs>#ZgT~%`>Onc@b2pSE~0uEb|=Z{Wzhnz9u2b)mqAS3sBzj|4mB5_Kla5f zvc-AEa38fbiqGAvA(e~jLM@+j;_wOF95j)<04Whe|K_z@0r-L(6b%*$LQXdgWPC+H@2o%7n9gD#qPm3rA)twBV z(UIU?pq_JKjIJW@J(XEA$}V9>3U5nLT1u@x7rmH!lR$LaRXRt~b~)d1Mr#gl$cf=` zI}3QH$Ur$9_U^9?7@n*_R4tC7!8;aoCAN-rN}J!P7rl!RYejmRI4zFj zYx&0W)96+i$p{4qb;hWZPp(_3O%Sr(lE^$joL^wF`kZx#1 z_#IP4KpBgY>ulZJp6_nFt4xW%F=g7S5QEq>0>id!O(=Fpilk>qbik7hfjLJ4DUV!& z)r~g#FnKQ7&0>{7<6>F^kqQ=!WH!R|=g)*TLuO&k(8p>P^2 z+)K#l0w3+y13?2BWy^5Y*v2BlIG!3tz_X3|f%tk!CmnJxBaxA;Z`cwTf4i-iHn!__ zT_+xdKT5=b?Zr327Da+>yja$+5#3kr4=+p{=E+l*n^}=;H+T7K7x%nJ#m>NbZ(y{gB=vPI`Bw#lwHpDd-zA5G@2qo2b2JV+&F^b)B@!&nDo`N)C- z1}u+IorP2eKlktz3IbKVwCnKBtu7TJU^ckPD2G;os6$D`v_jFp59He*b9$Shxu3ok zZb?z0%Xu%{&4EqM%Z7fp{-f4Em;Gs|n0V5!aeJ~A!g{50C&Tu%b)qmj23QgWPW7$d z(D@kTh_n`La0?N9Lt|O`Anfn%&7+#Pv419ppl<7jD0y^2p^x_Q6m++Fp>Q<=zx!uF zNFH7qh<~EaBo8T4I9xgtF<1ZaC;z@Q|GJRoHZwqz8ChIGoy8QAVd{ynHz0lJxdqKm+(V}e?C)b4o`BV{*F^G zC-77y1oCI~>|>ALclgO9iIVOW_#Z$G)40=sd9qxRg<^bkOH=QyY#h`POJJLz>d!z1 zd-bgH+^UBub6rZpqthe~w`|RF{+sT4 zOu=Ru|5|Ydlup>&!%0=2q-**_vsY$*7z7e!JArpzsMB0BfnC6NCJx0PTQFwTFz@C`z=HU~5#JHCv zT5mRX*grN}T;3mu+J*|yQJbEr`kMWk#3;Yd$F&^jo;Bl`tcjv##KyCBypmq(p2Q};=k!LeTJH;zKBI;a%$X#S2g`t=KKv6q7IjwL0p-)^e7a%_+p z&=saw#UAEr&)lLt#6A9*sGoIja(9;^8dzC92T3Las}8rF#lU=L_U82X8W=l};RR|8 zhy#~dBfY<9v9>pL~;O_ai zMy413R@NQ5T6-*_CHc<15S^R?4r>o!kB8-Y?Ib#je~>h=)l1J>LSwgoE5Eu}U3pCLW2q5gY|Gammu6sW9l13qv zeE2{et+<4rx3^h3i<=!w_=nu4C7@ZS*N20;e~8uFFS?g2p*>OTakc|!Q`23DUCxZeQYGlI_>NPR{~_z!^T zUl8Jv-q24(#M^hiMifNWH>zC}#4m4v2Nf~>jc5WD@de=xP2nQm!o6jVk|4^w0RmD) z9*kF^>JFdrmGt2tASlrwAZS34G>D{Ne^NweIJEyVjf}p*eR|E*0)WVs5Gg=;1ab&q zIvPazH)&uGCPZEs)c*+cy;4>@UmGG9M5csD35p|>LjaP*{YDFBL-}+f^As*4*d4fh zkMj`B%_LSKWtkch`SfJ@wJG<*5U;1Lr47zswh)RU34^7ag1?(wfit$^*e3W8g9ZMV>{)2H}fP`Sjx;5bSc~PK5h=Bx~Tnlk&oX@`v7-|9WU_z z(<#`mz4D)GwkBjnz9zsb$j`^Qok#+F!=$LuxH)Md418!+BuK6k#!>d;B!lp zHi?*xYn?bG-n+4}SdZ)t20gJMG6D@xR9P@%cmEVi+Q%xj93Wc7=B^BkDeXesD&p)%`{r zdH^{ceXQ0dfA)do>+6y2&~D^?&!nC49b~9A-;r?+VHjP^DFfY5PepHnzI`c@1k))q znG)M1eI>je9%NVN>AWI-*0vt62zfadq$rdj*j}Gw_)~v1yBb|#lSly6GGuU43=T5V zLWF=uKC)91z`3z>!_tA#$YQ`)RE?a^#E3ryb55=@QAr7?NR^b!g%Jg?WxuFzFIdeX z^p8pLvK?`Nw~b}>eS`$?%D&_=SEqE~4_eMAz#zr_=|Y@~Y0&v~EXssTCKe|{T~MtbcTO%V4d~03qzO=9Cj;Tc1G_0dyIjMsk;+;OW7=u90m}sH8Ig{qEWEYO%r|qal~52 zW5J7l8pdn+q6ha>JVD4qZVJEg?{KRdL{=vsfA+}kAJFwH0lTfvk@OHh4bKI2Fl6e} zZ8jFQ@dSShc|5;@Vs8)kL`Fs10c4+2l`3PE?K*Vl#ekqN@a(w%_G(4?BoB_chD1~$ z*?jlx*USn~)ByG6?==%U%4-*N()C7~Kl;UrgMf2)#4dUx;yT>{Ps8R3RH* zLrRHMIP}!3QB$VHD)B?3lE?FvNoxAFmpotL6X7OJLpJ!Pztf|sE0w~eC_403e(RPg z*o>I{L&qQdtHixX$A}DCi;(mFh`KhUCSttQtUl*dTxw1(v3Ec>?ckqx_k%Ur3uBR~ zt!qJhSDPk$qkJUoxm+RH`DfNREShhGKctz=`0ILGS%D|3eheIb)iDRNccW!chNk@p zb|CoID?h)ALDBkO{BySXlf_mhL6hbRtEC|jw!8Uzs#-D8W}^~{VX(jHLtPyLgSH{r zj7GgP@^@Y3D(E=3fD2n=Gky9hr|IO{pec?FCA3_4^eTN$r0;5R{-2ei&zCW)ZOx6v zkyf?5uG4`N1?Hv7)M{KM7Gc&bcHycgN8WVxezGm za4s#y7xnr_Y|iA(tb?I}JKo({yQa}ytCvM`e^!;DfO$LSu(?f4Vo1Ln^ ziY|VuPH?Y4S-oiVE6QFNRl*@IO~R2M*e_Rl{-nhCoRb)uu3GteGm6Xxl||H1j3c#g z9ygaNP|-M5ujUg>2^-^Y*Pkj1FUUxo83iMh*g8Vjj4t*9Xdlu*7^%{AHp{}c*q>ad zxtT%;4gzSd(1i#(N92|zPREcNCIN2ZtwtjBw`V)1iK$p^&cHg~`aW6a^EU5;sa(B* zMB%TjonG7o1_p5g4z@`Mn3p|SsrNm^M_AaWK=T{Rpp0>xrm*&;7-AxMh*lu?i*Va3_HO!#b1>#+~mnz1^^_p{P z2R`JDw6m2WK=(0-5mKa4GoaS zrhA>ZFv?Bq^o_!wC!Xr5vO;5PuNBDQdZ4pd)xS!m)``{*fsZ8K-nH&uY7A1zk;D`! z@yI7)^!O&&@6#?6TbK9$c9Hg{TS+kbH;Cpq;D+=SJpYZ9=Uaw6)=SJeC{>~%;@bNB z*}V}gb(@zBu<&!ZLTi<$k#=>`$Jh%G&KBsKNb021{*~<7f>9_4N`$I|X3V zwVc5VS)b;nnu>OXoOf^cy8D7dl>hF~iErJ3nBH^Q1NBc$H3W+2XJqV1*JBBS;|`HfB1Ohj?vQm^aC1HUT1aniAW6y0zbF*k&kf4O|%qAYRu+$ zj6Im({j2ti|CatkMS$#zJ^eeHNm(iI;k27L52;r5rfWp4cW2rjQ>{3XI`!AcZRr+< z(#$mip+>nhhEf`WU1gEGG%GGMOe}spDV&*c2vr{BkB1+FjaZRR){c$EzB9PK=&w#O zS$J~vMRlS#pvA`CG1IOA}%_0oljdR@q+%MsOHIaxKdJp5V`L~i*R6|gDY-5d^(BPwJSA`&D zg4gAm5c9F;Hx?(r=*7P{1k$)6LZPGALnxd8H>cFBB4b@sg`B`WAcyc`j#EAev5>j1 zH-n(e4ceP{pgh`3vi1`XXdenVA&$}TYgi~2{C$YMk%c65H;7cJ8XBm0Rk(Zi^92SY ztDlj~@Pp`Rhhzl6B`djPk6RmIZC>Hmy#q3{VwYT7-z0ObLN(Cya^7pIS(tyl472e= z!$5{>6N~nc8tr$Bm!jdZ&pZNl-^xF?uA-7o;L*v18{JCTar?ni!z0N7r+@6HV;{&p zeLychKA)Q*gTI&z36$?vcfqmTF)$<>ifmJR^fQUJcS%ncQ1N>a#+(I4+dkY30Wz-^ z<{z$bRK2Sz_(GpDhndj0rZVkvTc&XEejLUgBfZ zy0$W9g7UHMgwSfyYOELwgZ*JNY+9$sZdcpMC56F7lhI~kDnmhp>?Vx*lXF$~8#@24 z2sg2ev>8CH>L>#qiL-_zVfBJbrg#3T+ZS?Ppe~{2lzgupTijNqDy>_{?5ks`>T2 z8www=IE$sv9!HXa#Zi6T#TDkBg_<33nA82J#Gb&|sg!%3xT!AA-6yQZwj-zcfM=r6 zRixTFqD;(;Wmt)kO20Cc%-UI!dl<51v(rtz@3LX< zz7QY#Mo_h*Q`xCZohOB_kCObp`#16@rq?G$zkr*^CthA8M+coZGqH%jK0Um|ssyY; z{;#w6>Xv}zgb{O)5RqPeCW!ys6cCOQqSBkQW~GE^3IFDO?ow zm~V^{K*U@4HzX2{81;rg!*PfKZ=_0V09=q+JR;zYz#|^f9QqBdB_V3Rl?E10MJ#}M zOWVjmY=2KH_=dRnu1i2JV$oYBeIBChd!}mvBF8%_`;M6YrV&`80`cbE{ry;j_!H+p z4$yx^W7=7{n6Uo;twhy_NKE-(vxJN9A%eyCkUGWR8VQC8nfkrCn0%3UCEwC;x{$SC z-;h&3@^9QX#Jz$%g7}7D_mFE)-ca);as}!eGKWG*z#1PZz2S z@>@LxMp5bBl1xWY)!$pPeG=9D9nsFB<|Do34z8nCLcTG0ZKCGCC6R2Q4!yVJ!47KV zJA=mo>egEqf%H#M8Q#dEPEhaOJ2>nHHS8@0(Fj1J!g|Z(#zGr=F94nt4H*aRzj4#; z>=~~8>K@Zmff8>}u|cbxuP(k2Cz|Pd)S^%XE%IF+t2CPXTW5hwb@dAT;IwSV7q7XvJ@!Jsr*T4NzyGsk{O23^a{5p{{(7 zj9ahOLZb$)g`i=BFEY?>-fMJJj28Vq!hM?1Oo`s835+5j5ntmRw`gzLgCQr;i2m>N zp~w2Koi^PWzkPg-_4M#TK;S_@fbxXo@WIY=Xmc1q?)tm5?!Y`l56Y1b*#$o(slw7J zq+6WF7I5l0*S;)wY&r?o=OHp_UFnZva; zP_V7~rl^z6Zgw_{3{BaI=)-W%88O^o7mD8_j8U}rNFun;{IHP}7H%f91P&FgHmkvM z(A`V|>FrijC`So*~4%Djpzu9{s zTmkLo4^4258$==x%@U>_&jq3^=}^P=kj)p_XsmLiU(Spw^p$N+kW`r#bl0^GnkE zLcU#(?f(PGxoQVRdEUv57m7%mbL}n7BYxNvUU3A;wpWAgw0}el=YzaBve#O$2 z0yepgEN{=oW+nMPY3edk{>x?ZeTXV7+lpL-o|YckJZTUD=)Mpu3V!MOdyLj0o%Jml z_2{GHLWa4LGM|a@t+9)24w4F=?f72eJ=`z_a92AJj#doP;v6r|EGDh0GyO!zy&opr zU+k2Q{K3{;`wqh!$0Guz+>7mDq-g2<8Cd1lOYQK$@f}}d75#>E zE2>5@KcWjnsMm_kBChG(HC@6Kf#wd7Y&LKMUoIb7!IT&-icO+FL?0g7GwcfP#;b%6 z+H;qL(Q^0piz1v0quEMea!E10U#1ya&+`h||1OUI4N3dMO}J+i2r$$U8a3*F!yn9W zk9PRJ(BQ)X-q+$^Z~(6NW&8#a@IMQ>Au1sCeNx|I10>#86%jlD*E@120DO8!ZA5_L zw`B-yMgkyxpM`JsQ|y02kc%8zA;hhSUd`eDA8&e!$*)5rabj)ptZO z1~7V8G<5P+`TvFr#uPyK&653RduiT`o7Wn^I{^6kGzU^CpVF&1D91sxQd>|)Y3}P@NF1jnn8%Mqjdamdj z4FoNUiwqY8#Erl^jddit2G?7Tx>P7lg8&4?gV=k{K|6Z4z#Dh%EqdL@H)PI>;VASU z3ZHkuc>Tcy&%0oCH~yCb%4NW2dLtTPzz%-1-~T1yfvlOZ-)(&$6Sm`9@Em-}jGgTlGT@?7{cwd5a+S+50}=hcI^Yd*s_v0^1t$OuzDoVp*iV z7&pa+?kBxLCM79ur>1S#E2&HUnV~gwvg$KvNM(!mtBK>Gp`evVAkgA)M0t<)D@IyD z4}ZUfkcp2_u>H*r>RwlLx)V~H=7s-;{}+ir7ZFhF#KmNBC3*C8VNwZ-m`X+H%vO#U zeIrC*%@34>g369Tpm`N+Iv{TJnJpq&U-V7#9m-C1Hcj*l`1eY~;P2n9>sfbDq_g?S z1O?LEd;5<30)el8O|QMte*EPIJ-hcc4%l)D`*8akY<8)o3|(1T;h-rOcSEv5vCKYw zR|_XhQ{MiqVvI@lMFsHrvIW7f*|01NvVYFgGsC#6C$2_876FXn3smdMSDoH)zJfgy zaQ$JLKlZX{_-#_FRr4^|DcIvLU0`mLl!e+8?TGS^i|%lsd#cBOwz`> zK?mOqH1bK4V4beU^@z@~u3$-_wzX@F&9s+@-blQ=nyJO^G@M>U%q48y4h4x6ub0qP z^0Rs35*Li3>}VDWA#gZBLTM5mk`k$aXlaoRi#BzUQrXmm;aX3uS?CWz_m{w|wlC%$ z*I7fRn+ij{Lo*p%lcdch1PXTb_d)*6Lm$@n}FT`e%Pj`i)UDDPauGkA;4_#*z~ z4Ma`dEa7^;>UVKcrAww5Zo;zmr6ucP7;BY;pVW zsuVF&h+xO=@yZrLO)&^><4kH8qU0zTAG_F|Y}HLS*nqtQhoZePhEjr}6O!fH>^=Ad z2v`Mq58)hGwL+qEX&&m}s6tknLm{~(8i`PZNw^>T4qw0j{**_Ol4Fxc#woxAzDI$dM zsUs4ODCm{f=H@sNeu4{WzRQMk^Q`&DuKNmiol=KcK=aj~kC7AS(}|=4_s~8L(Ia&z zr#w77!0lMu1bE>{Z^bZbY_9Kl^OOhw`}}+04x!m2=M%jo#hr;+xS^q6tRuSU-x{wN}tFUbir^KPiY`60l48!{B z3B5VfV=bzqS{}TFUXFK`fy7Tj&Fv(*WBr8$KU*Zbvks!qe0^O|EgUA+?lmsEZ|^s7 zD0vW&13!r&m>Cm*3Bn`hBi7ABu+L5ID1lt$VRrLyDYH72r$Kq4fYD#U#svW(Rq_Ol z3|oJPcSmdW1iLU=8};Vk7+=bM)nSSZ_LI#VtUbla3DehBu4NO3a0kj*}sSaxqn_uC($p`_{ zm4Ut?qsI{z_v;50xh&PA*iMx8o)D)CEjoM_NP^gS^5U`MX!w{w7(e%3p%1)NL;Qar z;taz0G#B7tyZ0&3fU~)rnZ~A&+g_hV$n~@DE5;$TsjWy7abfd;7FjWLFbMT=X^wxE zv+y+Vsi^skMd_VZ_Rg0zo4JDaf0Eu^;m9Y}21k6--H^P*nMBl=Y-$Wj8z^RSAF7MM za3U2)BY7ch>A9jHN;{Djv-DBg{4$WLU223QP@N%0uSwl=1B`|JqrXqi#pTNirBr#R zn10?vhBp-vf^>Gw^%Dt7BnG>?i023AB9jHu8sggRF}h+6MiB?hGaS8YK2Ebh{1Q{& zn`ZpEArbbC(m+Ui|D5;-MJCvnp2 zgN`0o{2$QH`oQ4f+3PfzX?U%{oS_8b8oGR4QTMnn#E>7j{vCPOt7tqlR%T5&G!W5o z!`us14{)NJcn9yMZ1T=Y>igZ6#CgiEf$MCr7NIqoku=S%bRlS1em_HT&%{DqF|sH+ zcm#UWkD9oj&=D^@N4c?(BKY+Z1+04n9}G>*jF@$E1Az49+78z|Q46urKjT>{ACdSe z{JQ^nco&O(_4z9cF2uZ&I3X-)x7X;u#$o!43P+Xe^W!OirQ}5M8_vpC{TB{Nm0LhZI2rVJlI^XfBp(sqc+0IOHCJ|mQoMo9caffnf#WH3Kx5s>a3k{?afO&sS8GNcJ956?v9LtTJ$1eJi)Fn1`oH%$euN6tLp< zDUoU|By3(4v@?l@@X=|Xa{f2pJ!-y8?ZICH-C+pauQUO7%U(YX4l&ppW?EYN*kmRD zy$(`?LDg@#9AV!6ciPnC%8t%-@11c5)Dj`WSoQe1eA#7epoXMWvziFNpWjwrP53$u0qG zbXdd6VPrp2GvRv&S{s*cK8Bzw! z6X#B~{q&YWpG>qA6&VCT%8A+Pyr!h+8gb<>3> zNTqoS%VUmyWVe@hS>Dn1)TyThLj=jIB^xE2n+xwG4x0tVhkM&=OmD;?=gtxcK3&R4 z`gd@pPoobt`teCmzZ06hgR1%UIy;&|)Twb^L#|=Kem)^|e)ujAg~iw7m2YFlH-e7D zDIY6Lc>WT9M=;}vV?hz2)`H9AF0vhDm7}vu{W{N*U8f?jExVs$?R9npo#b9pH09o^ zK%0%4HB$0}i>OKNdr-iFhgp7vU3e1ReI2!wK$>wc{QrmHHAi+edy+# z?+YpPiz&<%BGVG=DhvLfOc92ogWLZ z!!qm+Q_iO!ugLviMtb(78O#tJn7^BkX0|8)BGB94ZN$FecT;RjOk)g@xvwlXhp?m8 zOdo5Z36(Jwp_^TTId#@!O?nhJFNzW@02dy=Cj$|b2y79E877IPkh+cwYH5R*i75%jj9asUDvo;2sy~HziZ~>Z z-%{nooO={OzNuHF-|H0Xh9*}=8qDL=s3rdRqGN>*Isn3@nXFOpee+8yCC-wCi++hi z!S=e(4IxVpfrsdYNf9?SIx=bbkQ#zG_k#ThuY4+sBGy@$@om$f9oVt!=ebEZB97|> zaS@S%|1B=J2r|ZvU6+coYMz_N5vn$?YG~)V&lYO3i%lL>Nc7~(G?^IKKjl7qnf~g7RxCH&W}C67&+bEZ-bk%ocqgfsU3KfkC$zL|$mSXIkxq{+02QdSa-I3uI*a$4%bC4yB}+n z1%0$V=0A&~YYmKXekArNDpL_wQ!gEeXwPCDkV)O-xZ<3v22i=4)C-ruFaXwazm2w% zuX1~;hTOXuYg6=37#uQhP?*xEC@u+S`0W(rfnjQX&J%PNw z_Gn*CTpM~a?o*~e){@1OmJRMQk~IrKp6B_62{NOOGL?!f#xQablV6U{5@G^4gs8hA zTQCu`rKiblYk^Rzi+ZX7{|vKb%IS!jZ73sYBy|^)C3c}cR9bi$K-$Wn$R3$N;(C*i znn4Dp8ZM$&(hUvtj>oiRcGPVJ6V~v7gW58CPK~@QWplqPdf7*s7w2(gtB`6mMKcXchBbag*OTge@4+ao3%^TVp zmnU|A%QZi=qYVblst~M1uGi>lbyO}SO2foI2zKaL{m8+snLt0Zl0%rKOVTwIOWBsv zzEqT?ASTPIE0=+s3l(8QgM<{(?$o|juQ&E>wDv`X^9c%%DspA)J5h@zYSsPSW=!wu*vLfOCp1Zp$Ee!W?t)pfge<=a{7_rO%B=fT1-JB>*^ z%<+UPOx72;PQ$)3sXd^M(LQQD~Gi^Vg`O0=nFc>x` zA@2bdMkdon+XncB{h4!+b# z_J?y&OHewAcEME}cmy`GG)7+v1$J^9^<|gM?L#Di*RYIoHobAs0g|08l?1;jw2z0T zvS4bs9_D8I@z7W`!F}NV>X1fl1AiQf%8mrkEsW7=k^(Nan}yWWdzF|g+B$JN(4}U& zwkTF-*N8%KG+|oy&u=MB&a4{b?$~hi~FOaI$)BKEc;J| zn}>S8t@Hr3u^(0U*zi9w?d3n^XGZnjzyx*XpTDP)>=+-6J(#S+73gLqCf9 zbu?=iXhPXU^iV=uYa8#N2d}fD@5!h7U z$qCBhX~~XnF#5@8)JoriqZ0ah_Z5o+{M1QbH^JCEPs2IAJ9}i}QkV~X@4f=8h&8=V zcWtBWpJ#|?e8>?K_wn7n9T9!#p@g4n0lAiII@{Vq-<3%|EYnjxS>3^>!k6~`eVkrC z0RKHWwND{^goD}4=bm^xPI&tk(c_WGC(EHh<;0u{HKy?QwNFBEFZxGQB1NF)rnc$V zmJwr~`Hg&<4*^>?PmcB%)L&EDz9W5kE?vKCddS@07=GNR5es7cf(9$k`><-{m?MED zds}h^m9|@v1eP~&4o~a09Si(eb9SPapw-aPtUmhKdtmmb=B$T@+gSK;H%!Kbk3UM* zU8Tr#*Knc7X8aogVVhW5aQ6O>9!4hsAY&{h>A{WXDlk zkHQ&>D|bUmQlINtEkv&o#@^w44kD)#Y1dHT{iJI1u7NI_p-lX> ziMQ@yh7j*2KWZ9EhHVCU@#@^gWhUUBC@1{(CkS(R>G|H%pX7}z$&a>9NvtI&&NFT| zID)pCs!8I`q|NSon}*HU5(yZx2!*gZu;is4hwVXR$8e-(HZG+HLi=BW>Tx=l))`T4 zSy^BND=V>^b`fn(yR8o)0~tMd)@{7*@+)U5iImqSBv1saK99DKpaKkvvK+#%HcWX| z+4GF~LsVcoiq5Hi8-(z9n4Lat87}=6_DdI!1EWQ6t1qvr)TILrGbG`|zG^eFIn(;a zVSXjQL9RKGyn}6NWIjb9i>%j#174Tr9KuP`0g90EuDl7uRHCL$Vb$ffsF`yX2fWE3 zqEyqSomQo~Tsx7;HN-EK+lL*=%yehCai)GxDc`uU9j!z9#u3gp7@(u$>^hHevy zH6)W@fMhBwD{)d61|_V#T|N8G{Qf@FDiHZlvo$r$1K02pE2}j$vHH0A^T4^uaz=5; z`;RPvsQM|Amk;~3!Z-n?1r_2zfa#4IKD7y^@6bu5<0-=PpA&3kMkmRW%}JEwPWlZ0 zHj?|D+9MDUqAWlW7=jMX+G>ZH7o++pGpRd~7I2G!M&1Ar#EKFDmvIj}Lw-aZi3tcT8Da$$OL> zU(Ee(C!x}w2E8d1I1PmYjatsGsy7cn#=nU+2;}g>PvWVeN^$*py6aG7;x1t>=`9Sq z6hak&G`#|8@I;O=P=`rrx(w|;sp)tAX(49wIP}}mkRlKmV=NZVhO|DvcWb#1VdOrT z#1BCCh9N(F8sbVrFOHaR0LN(UcbnFm$pCsDPow-Hg@gatS4ZE)+0uY)$+D6?`+5Gv zHtR3JsoN@+t&0$08fWGt2d~KOiXP!PEB+k-{wjFHJfDKSpW#aSvZSF)_#w*sMU%>l zJ#)#@L29=9gf@7QOusz8&F~I8FuET`JgSL+lEyZnFab$aAwip?=%O66s^5s-$iQi%8KJ zIrYVs!TrAgQrd`(@}z8Y5hTyznq~FVpzZVj=d}*#*N0DbcG#LQZ_mqQ^h+TBl0rcA zX@aJlUbkJ-NOql9PxvY_Iw`a0H6Nv>ARvt?ep5F{_P;ET9SdV3#Q&q`T=l2$0Jnm{ z;Oa%WtINwHa8KE-Ip(k*JJ4BLiLY$LDf-*2sYGZ37rj$01dezA0QbAw&doXh(rooL)4dYG;69D<23 z{*9Z^_o1b3nb|pxhyI-t9d4(V78=51+FbpY{m&fPesN`~EIp3d_s0AE#sqD*7v~wb zswqHk@T|j%?#4rJ|Knz1yhv9(FQ~wDeYWH_1(Hof`1LIE#pP!bI9c7%dNB6>Fdis| z8d4_|hE_^KN)iPVSeF@X*tOgzR`<=vhW!F_J#=FV5DqzqhSrbeuoazTkf9zjWp~); zcUF6_q@(A=lDOy`O4|XdGG6N|h&4IU5(Oen&LJlk;RSaZ@5PdqI5i;k;~48v`H5iE zzC18SJh4yUFt>A}bEXB$2ra23ezytG@57i&gM&cRG)}$6ltOI)_^pp5N09y7M0|3E)HM9*?@Q}xj{n!`pYeJ)lNcpo%#+NA7HPBHm~8E_rbYWsi$)So2P0rC zP=}^$t40%s)wm8xn))en%?pmgaoHUnk+6i*^>U|hW=Za8DFIWnUwB9}WuS*nePmWh z(CN7)gsN}C#gq19$7H959D8J8sArk)IR^Fa`P5NZ25)ZOdi~Hwgj`JXBR#-+H%2Fx zY)Ri@ys9;uNP4Wf_O#favX>WQObjRh-5MCC>ieECX%dFW~MIgtyw+tuP(ZvS!n(U*f?gcbRzEQdt{f_IUXxbL-6h zlc(#6z3p1`7={oq@jo3rtwF(fuH2qc1-pffNU|-3Cb8d_=kc%8_0(>D*859ks)|; z)*y1I-^Ni7YO&y#)uU!!G{5vRf)aJ1^7k4_H+HPLKH0$lzkSCQ8KPp zr5*z|Av>#~lwp(iQpEC3*0p`flq=DZwu>Sda9x`@@>M>NPLkcIHS7qun}xHGkYN{Q z$7LO33)uaQew{$E6sYBIi|gEm)-K7W?82*kL~bcduT3L|cGVWhQl!3s6@GtZi^zG6 zBQp@7SN~V1sa+f8Nz)F?Y8>~O?^Ky8yBmi=%Zj#6C2lp+k;PNSGff}51Xmn9)lc|v2;9Tq&j;|?Xm3BozObX_5Y#j zoP#@Q-e@1&wr$(Ct&MH_8(SOOcCxYUjcsRRTX%o&)~&ktzpn0irearCO|0o!^VfC|TDq*`(Ms85`hn*+>B3*^z3 zFqS;j>S3_$z9@Gx--jZkY(o4G`?cCn(bjPL;<2reQ%6kcifql&E~Tsk#VVOz0@LAF zCk?!e-AMHK{!%E_dD5s%twj1^V%0%OC)>vSA(fDfG;)M@GwG*0nEvM-W1DBETnfvREx7eZ%IJf&*j-{ zVUeu+wNhHyjar3uWb{lctzK2&g+3W2vn}F8>}{(A|EvWKoQ+)OTRh_Ca5UpNliV}9pa2&M-@=2qnS&{tb1SE539G8Sc z;O8>~2OhgOW(JMmWk=fBK2tcboj2%zJuRly=xcdH^X6=p~qKb0T)4F%7;B=`VRx|4rOAn<*>`fNr5C6lx%AyipLqiMp)+kcdCQ*|cV)%dNKsDo23k0f_~$iU-{ zO<|;?SF&5lc^cz#6M!q}0AgZ_@c#DC;7Q{&jB4}p%gPw!$bBB|o?EJ!XU`fCObU_N40AN*WE83<4kC%z zwR4a3A1(x?!3!xEb>$~e%$>kH#qD9VX&n?w1H-S>;x~v@&NV8<0nS3n4XbgB$f)$F z+ekAiKX9WBh%uu<1oDFUyQT9AhD`EC$E6=E5F7L4M z&%s_7{ZiQzw{w!=4~3Y9nOFvTgJ*cjMc?JMim^A6;4zFt`w2myE5x@2wC7kDNK|sV zcC{6e;4B=FkuHlas3a`#Jky*q^8psmQys7@qt*1ks?ER>0akG{$gsJt#BOoaIA6!{ z5rob}`Grgw z9{Yo!9}sK zwJ@8vKDW~n)^*P2)CI?(7*+h2noZUm>sVvxsG3dbM22lW1pzOw0zPT9b4bmP{5E&7 zl;Tk{I-cK#sSH_He&@fJLUXTkU&j?tb~!3V!s$wg^Md+F)}IjdcQ3wX$zw#q}-JPnHeOcKmad#Fg}YR-=c|yp?Tge+q9fxmCtYZlBM+rODJ=oxij1g z_%$jT27N=+mkP;_O+Kjt2KV~P(fZ`7HV}qkk$`d9hCW&Kj>+b%@CgmriH>htyKPx zr7YO#1xt2FUHJ90@>Ul$WgDxHF7zSxDt$Yx7*!5hRtZz4bP)` zz#;}>Kcn@KDCqYa*RG|<;oQ}uRClmfG=5)6iF)6fOx%7zGfazP1FYyV0%6RO=?Kg#SDbrlBnkxHp*KZ!bqniE z3pOtK_Brjr_U;Qa!x|@m;TNtk0EdiPoUS@C%;1X)Qb}*C-%RMrGU8VbKbgBvtUDpL zp?ng?QRQZ2M_ytBky>Gn)KPcLEo>=v@|1?E;N&&44Ir9|Rms)29NW907x(1eXSDM+ za^u$i5c{@aXU|@%!u^}8Y5K9%z9yWk&95A{go-ElOW9JRb8Z5wa0$6as+9W4Vzveh zC6OY0DT$IdGN6i(>f2;$FXSM*bG7M#UouRto!`GE#44sQn$Nq!n)V;H#l6-NMtRq ziIj`c`NUyRaXRSy<8yTofkNULm&Ty(neeXFn7Q8m%Ljn1xpvL{0Nm@1Wa*(=7=q_7 z(Bj+Pe(5F9)x#&dy18%W_=RKJ3l}41SmL zPC%g@8NSD1=1Y3#n5!4j+F4)P#Y2pRvTdUGNuSmt8aLm#`9aI2fybMk#X?*6xs802 zZ~;du4+tgCy{-j{kLrQ_eb*ATexv>v#dP$qeS~3YGx}lfqjf}u3acG73$-%UK`hk> z3>H$cQ9&eCnKV@q$s=L)acL?W`6$!LAV6Y=AAj2tbrp_gnQ4V_V}41QGl~qVL)=ws z0rxzE!!i&CE{ApkyF-*SnDq8Vq@BGK(wlCoi4%DPdOOdbdy8&%${to%w1d*jBk8>*2ey>9LWHsLEqaFR|cOnMxZlk&&m1htxb zG1t~=-Y)oAxke?Ld3R(UL2% zx(TWdT6UGwe>Uj5na?)KRgVoaM*zUapcBb<$>jX${EanT@1F(--m|UkmccJ?)?;cY zh1H`~eS_dj*54^yRKh0;3B@_>Y8);8;F(#+eeDN94TRXz8Y@5xg7DH=6KeZpEM+b} z0S!3G-ikRqvJubol&Zvt_y{x&l5r_TuqmerSaT&qM#JGbVjV%+ZidT{q<}+&`+c`* zpwu<}4w|&dQA$V4CTEztsUM!VMSKH?VvNJJjhS3Osn0RvS%hB* z2A~Uu7<0NVN(v*ZFgWyao!(F|^Lw11%aALXUQ)NC4I52swRV7WvdgFbR4bu-QJ;;+*KMT}ofV zZ{_~B8p#ddXE@@35gH#f$=R($&qSRC?m1}}W+Yy-9{Qa%*#@Qn$QTc&1E?!P*$&j-G%9%}emBBs10M{7)O! zqpjOL^(vKiYookMQUHm1taR5nyp%Kf;3D{ncT|r>3oj49DoEGNR74g6$yuPu*80P4 zfS;9kdUgD7u);r8dUBH$>^N+QR`uM2#VVtbnG=rfA)H>~yB1a*asqW4*g|GF;*JM2 zP$`w;^Mv5D#p=OkJ_cfC8v}$dcvO}yg5ppv^@GE&4G3xb`vAxADieGGf#tmgQZ~I@ z!gEKj>cOQ31j4_gm@&?iQ64>lb4R!8!O>A3JkqgoY$oQHG6Ov2iPgI~ze~%}CWH$!5YRB5q=j0S=4yiX*ySwk>HA%xZ$gHkF1wE|0 zzC>WF&KU&uFqJ;wc>TERh^RhXdLFsabiYBVS$YLt0vP`>G_#wxS(C3j<-O14#;=rbWxL2ou8me@06(KBJ)hX>iP-rNA|qkOO<0z`&z0Mql?CcuFRtT)6XisLwQsD(Kv0D&~Wi))dkN*@KL?wbrQ7r5bm1tHC z>ILUg^%efTTMiO+2uz%^Z_j(vjpf0lI`7ZtZ-BxSA1tz~M6{3JMpEbJhYQGOXxj^3 zJXr@F+4Q||9;=L?+lWPE@6y#1xp6@Bdd zdpQm=C^N1t1FCUPX`yt*n+35gHRaas>j2lFmF4$J^bocEBz#XZzGKfpla6##5wX@W z5`UPR4*R|&uzQu|SQegut~(fM$< zDqq3WYibcp(dcM6l(x4%kTQOLUFw*W*EGt`$;S8)2SC9kvF2K{(t1YevyVO^vw#Q6 z({QT?qxg9OTi8Fif`t?W$=c|k3?2{Yv08SjQ?OSPlWKSTU`BoHtt(zM0sc`H#lMD6 zUa5{>U)%3KN>PRvtVIn3QnsoLVy1w!V~L8J-x5k6h{=UCCeN(@_;Eet2Y4J+)Zspc z&E2jQ(O=fax^w)BQrf&9bv_~MAOP$II{T%HQdaY~u3hunvN&kg8T7u^_s{Bgx2YWm zo?!|Fs*t5?#BGS<_Pa16y#y_A4C#*udljo+CYV3_yzZ)6F($z&+;vh_%}4lUfGQhE zjU7qN$CD4d5~;nmOj1Fc7DnXVT)5*`JyxGf$iL642ok`yUgJLMc49eTG6FUvic+{s zl`-@%F8~ZpKygLNDh0OQ zuLURh^L6`5C+~1`_>D$}JV3{xSzFvzlZ`7lB2=?d6$@t#!y^jqLuWyQyZNJ6I2cC2 zPZ=qr2GeD5L*sbZ$QwzK!Y1b7Jb`X@F<$KuSo8EsTePQ5VR5H@TLJ_+=eh;4w@)fT z^ub2t4HvceipB9uV;`=4)SsQM`K2C>#q|D(DVY64zuPYY%oQO28ua?dxqeId2{u#7 zZMHv6`xX7@+!zHhFoS)%f25lwbAQf((~j}6r!oi4r9VIF18pF=p04vmNB?UQTPHy_l6 zAEO7oRY|>MrUFTyCsKGI0KBCi8;sc8F{0*iS8%Bg6?z;7tWt;m56>9(+b9Hj9;0)2 zdICE4!48_lfAYUiHkWkde{vaFJ1P&B<;V!~aKWhm*qBT5(t8F-e&{cBOM)dNH`a@v z-juj7G8inatOiAY{EZek(dW&oaR<~nC;6X!=D`03G;E|&p|(|JY)89pHF!Vr|CaBZ z7JX*t%>D{IPTeBFvmKFt0sTEqFL%CeUS>0HW%kZ&!?dEng<=FN;>8k&=(rPEi*()= z<`7Lk$MJ-Umrf6$M%mVm6*`%{lxUq~WayU{_TqcHT_RTBwrg6#V|Zd~C5L5jKOeou zefr!s&+b-z&pm#ZIDWa%h>76C_(JHm+&&1@T$>Zmz0xl_ZgVXh4$#K!Y?}(=&%EW{ zWAW+$W!wS19l~a6**}{g#&1L!*%H4($zKM|asa1pp;ZSYc2`$O_XBB$sWM0|B9GtH zZCy97f*l*5_@!-eavn8Lzz>`sy)?V<)oJ#3s#_DETid_ghU%PlW@#GD^6DFar|qDv z5OK=utSdI7kHc_9Rg;XFXL#}->QpT4y2vTSLgBf`g0FNr<77qKKs~g z2ClUyX@NVjI^mzXPfKm?f?P3q7Yx^NPfusl^&%S!hHP+Q5n{!8|L!38%A^qyx21S= zHUA9_d5zrT^M@X}w2`fxW(uDxr)4P=GlHeYPKyh`>^Ia78q~Ybb)5NGs;d{t{^osZ zbUZi!OTu$zB{fa4t}77ztzm9@ix!KFB5*JR)&adPaWnen5Il={$81(oaTwSlc|poC zyWH7PZxbx#gdxLFo62_L+ES0hJxyRtihSbl&aT|b<>yfz3uqoW1HY}Ie>{3>{K0fa znE`>(qSBQc!1ddws9w68zAWMAq`k!CHK{iMa4397U8Qsa6}2<=GP(!ag%UCS;}J01{2Sh(Vc2L zW`0=HnO;q}+G_<$|0D_-*A^2A0q1u|74uwjvq;Dl>MI$XGoWzYSfkY<+cxQq2WT-5Oq2&cFxrr2hQu)J;eex-F8eb(!+9HZ-qZhmYyNK5-7Kn+!k z@rwCmpPQCxcqyh<-02%LqTeJd5m5i1D(qlwOItnzQis>8sgP7A2>3S%8Vv*DbX{{( zT>?sM(7He@PfHfZ*IfZidRPTd+plu!-bzx3a5DIemh2^+k0PR*bli-75(;3nsV6~+ z*UE9P9qv=NTtbiMaaR9r*Ej_TfDg8p8=vPkw>hKYyX4?@e(x5>Y0ix&^4moxuHxS; zB4FmQVc_VpY;E@o25yN|mme`t?dUqJVW7<9ay$Gs!##@nKAGw!b8K3k2)Irhdrr~V zp9=>ji`rt@*<8N1^j%oLWmCc&(NUUW(-TlO<1zx*4t7n4?ThcM*zDO30j9-}0e^#W z0z?xH=Mq-R@xOtZf8;|Gdf4g}&=xLS#&itXvk{zxD(m{k?PQGxYaWMBOYgLuog0Sw z?n}(FUK#H6;kg`8ZS+=|YWbV;G5Oz}5l$7`lT5be1%O{*j(t>QpL&g@+1E!D?_l7* zY{RI4t!9h=c|%3N;cEIA1H^9i#p^6#7fcaGpicP4p$kj(2URl(MpSU#j6Pq+2>D<} zpj7(2CxF-`H|)ng!jB|3(T%4~&~g<2Z5mBr?GIIXGny+|PH)+|Zr-uh0PkdCMSDn6 zBE?U`{#v;1W_}O$Zympy?`=2|?`jB~NCyCMSRe@yfTV0|vrdEL0dC0=HKluf!`qSM zundX}skx3J_onWOLzEoUEL`^+Y0|20xR^7iY}ht|5T6fBFWLkH2}nkC%{d#*f|dZ1 z=CcZ20>-)(IS-zcD#0x`EwMy%G}f1sNC`^PB81J@Ma-5Hh8`lA0bK9MkhX*YT!xQ= zNRV9`L^Nj(a%5r72+Ogxb3K!&r|rrCQe7#K}$RDRj*LHL}tx_83Vp#Csh@Lr}+eXVQVw)crAndnle#d<%| zImKRT7gRib0LNPy>}y_l2}tSb>B^SBxRaffBF;JH`kJMIQ&DV2wlvPa2E$|F z+ac!exPf3bLeBRousYWzA~3nzZ^Y~rhe1nd$X}TH0QCg*{!3H@rLP_p;hK){=^99( ztxMUgAHG&)wfd|WC5Zw`=gkTRY{BY5lDOm{?ve(3|vklU5b*rfE{IfyL}D!Ko4K2 zRdmf_qAiYtp-E3`B%~kg57xM_vrE_#6qO)oSQEi0?oEN@+wj8Gwdlm@P7eD6967vPdFR0Te`;T}DODA0hfY z6oB=8gQ|57nYfZU8R!|7W&=THk;~4)62%}M_`s#2B926QQ@zOqdn=?Zl0tnPn4UEY z_!$WkRBEV95iA0$v0K5GOK$1**tDa9%Y$~k3xT;2o!(zvO$nY!uJQ|HI>b7V>R9-# z#S22Id)0qt+2?OSwal7t5I^SC^kSkcI{+MqK-NLF7E;?x3Pgy`GMHFP(3a`DF}@PD4ltDzdVs_OP|-;s z9H}ks{?XANNgb)#8>k>`7hiMzDf22*hI|X$O48jJqHI+9Bg*)c?_GBuP49R%dBA{i zUl({h3OT>RqXpPY5C8TuyQdgWfkm+-WSG`l$oeYcv-I`Sc`#_NAJpMs|3+q;rkj&R z-s=qH(|x}qm#2&6Ve1SwPc7(|;3(~D7<5&SgGxtdYK0HjB?w%-%=9zNM!V!C0P#wu zr{MX~k5X>(O)xxNKP00h@xFWC9gu6}v*tC&?(>O5EE{LL^f!oQ7ngA8_nvgw_m$n< zBa{QQk0D{UMz#)-cV{5vFx|SIraLHNo6V;DQ)cG0n*`*h8^uF+KpyASgzA~W;JscM zdw{-;#s;jH-|lG&-H!om;Q9;RN(M2|lJ}ksLgTuQtsbxSvfBQP(WC+zMSvx$w|M1B z_i)Pt3etzgvx-px+vtIIlVkku2Ls({O~kZq=)M}tCFP5ES^&1%OEdq<*K&DNUB050 z+#v*pMr6L+WFhv);qLTfO5KzbEIeYi_*8m(?ui7RdqQ?O@oo@5w6=DFx`BG!Z&T^F zJ!5fN_rjK|9S&1=5OU-QX+Zg57<>iVaJaDV2@3IYnS7dE*IArrTKQQOZ}av; z5Rt~lCFGtQ6s~nofj%cs{l!ki8k#$2+m7iEOyw9`tjHQ^F%2#XAjEfXQtjT9M6Nka z-1bl?%Vq5dTR^j>wasVZUnuMOd+&s8gS}v& z9WT6y!wjZkD4Hlu6JZ*oNQvoDvM{HICpYtH#Wn~g@4RbROi0>q)3DlC3X_am!uj$h zt$Y1ZmguVLVH^k1tL$U%jCno!h1BE<$*13vG91~Y+FCAQrU!FB55o-jE=eA%@E!80 z?D_EuAnReO2}U2c4b-zXNM_!ylACtdA|BneNBqAP(&9KOPNV)XSgR#e*FiiAwFGl2 z$D;y&{{M7=R-_KJ;Qt6;t*QNJ3;z(@wo_=!|LxaX#W&IF{*lF=|DZAbV}{V&q6Ojq zMy2#D4%%~2E`BQ1#<9T_m|3@2(u z%;@wEVl^*4Kgu5CWKzaV<}~8&?fCm<TwD*9%p|GcjI3nu^z022MRzGZ$=X$D_Uc7hn$bvh%tP;%Zt z-*42ILj7=3>tTZtzRkrZ>i`%qY-ftr7o4DurQDvHM7zEwocgeI1zJ)-^D?qs?ksQ# ze|%{N@wu9bvM~W1hgN9`PDu_g9hA3SnS*anMN$qoFYJy~XLG4m2P6KP?u-|Ov^gc# z|8_#_{KE6TX4A)dyT_#&+GjrRYOI4u_4D^KLkz>bCRnS99#MvU00(?cDa7w%2eh%C zjFpr!q_$`bf!`e03Qm)L4-a=<3dKn*m)M4u;R-|r@6Te@>ptvPGM_&c}k z5Tny)t}!8DUnpM&G;w>Z=_a-GCV6Z;G;y=fV?WzR8G0JCaz+gMTH5#4im0i4RpRCU zbiYhN1U+G1F5i%=)B%Kz&hIAI_js=t&)f4EYo1;w3n1S7VVs#hDoxe~{fl@l5jVPP z{pMa0yM2mVtLv=>>lo+_jhf`y?ddc6>zQpi*UWl3FNoVynhIAVKao4(ebdGnV2<KlDoFaBQ|0+HeGqPLupJC{#<wk2#k$Xk6ZfF;IW*!OSn1dO;__rn=K6{*Evh)fEr$^7A8+31e_6 zo}{1x6m7qg&RekA5hX?Y!q^_sWd*)(a}-PspISoR6{MfpP`!g&>2}TQq8I${)pOWd zD4F}f;fY_ zRT8>@kpmj2h?v<~F0ZufTHG$TUR*>H2U<|C;06T48W6LI>A28xR@OS?;|n zxXZQ;2>~*OBzVDe(dTBfR`f{&X`w>-TJlcb4_(}Y?D3fLS`SFW+qNe{%tM)c;P)1s zyPpz)=j2P{P)&@}m*z#U^CX;HmH;~^zCaFV3DkHBUbN=a==?Wz7=e&+Ah?`j`&K#* zCjf~%JKx58f|m;tXm$vi51W&Sqxr2L9D?il^G*v&e_Flc%WRxiN%sfRr=yBSc;mrP zo@0Q+_G@al)4+B+VfUo}S4QN3sPfBRfrcj;%#K&t>MNYEdyh(_(3dXarfw&7VJ8 z9y>nQTnot9T0TFoP+D?oG5;Js*L~tYwcpS`RlKVEb-aztu%{Q4;xkD$UltJ4TyI4&^*5dkPBg`_5PH^R*})FF}Qaxv>l^f_Y)IrTajH726* zF4IX- z@eD`d9)aYg^a3>bV|gA zU9{Em=kjol3}gVxc&PBoyw$m*aQY_{23lQ0(zd)mq)~+;(=U{ruxceXV7zpVSK>9{6meQf zL7Y^@DjqS$Cv?dlhkN@` ze?IgcPKlm-IG+A0EIG0R`h{96|1mj}UE9c@4*6M8|L}y1J2Pa^U+X~wP&P4I1RN#j zHFsm3qe=3fkQe17p*HK%kOyqRI(O`U82+-?2D4+|S^+{1g9XGkwBvo3NO7$i`@X1x zPhrZdLYgIYQE7IJLMN3gDyJ25*=rr7z{w1rE?l6PMeyo)+`#Y1yGj~M!#bGqB1Nr~ zxSsBJtM-g`acOLjprEV>>8YU~WjXmfyv(1K#o+)oiB${cK#*RXi6yU_F4^tT|~(tirU z8qGrY+$%shq}3qTmdD;m31cec?t9j3wF+My7{j5L_6tJ`dZ04zMoaAU{As3JFICKL zv`TIIG#*8aCh64kL-@@u?q=As5;B*;L34v_z?bS;1qS#O(}vw`VqHy65c%kY&emE) z$ro$)I#&-}rdWetWbwm8ulC;NRfkN=$miV1QZtx^Ihyx0Dv+hcOYW+DCiS=MjmljA zQ3&H}NZA+xmg)0s-7Eb_y?nk^ksVU!wvMI3?CXp(WkHDg+O6vUVH|(VoZR!-QdkHf z0U6VC>jcon4`sl?ZKnhEpX9c6H$%mM^X}w3AKaCF@zPryyX!5?-TzdPK-a*Ro+Jxv zl$_6!ubs0Rz{N6)S;szubJhezD;JGp2X%@9b^Si9&k5|Fd zuJR-8w*?F%*Gt`l-3)^Kc^5U8as5Gt?55BlwLn54*+-^dIQbCGqln+f(M8HZcU!!p zb(B}UT<}|=^OgI`5%1*Up@dVkBX&|Y2 zdo=*^{q<;Fc!)M&9b?GC@YbxK(Hm34!_!R}<16~VY2RTaqxmj1XWj)1kr=wI&(ki33em%*x*5i;1?F-kwi6Y?yfO;D&o z*zYzUP5Q1N>YbnT_(D-qT)7l?9X0r!caZ=wG9dom9w(rLT!R<`rs<(n(WVe6PTDJz z!K_Jh6w{cjrg%D;|7&RFPsN8Y;kbkhAnc!ma(7d5OOes-p~~w#SgtGZqlob0%6rc#% z{SKm&$UMxtK{TNvXo`b^j$+$0JRt$HfJJ?x z$Ae;>(pa;&j5xXAoBL1FY)JT*+aZQlxGo_-^UGc+|RBF)NY(_1WK$b-!GK=Ehw!OtV= zousr}M%7nMp-4SxXlm#vIVtH}Sxl;};kk%?a>4h&b8TQKun{zb)M7 z7GJn~O+?DFNJ$MR>~D&rjg^~xU4-b7$ory^k_{V{4KwNU?`OuDG+$11T7ZVj>YrSX zYCf_GzJT;UG6ZS~{6X2}V#vumyHbqRE-L!cYKnvVhQGIm z%|_o;T2B~1JO`K>4fz_SQ0|l*?avHHf8mbN{LNS&@!~_EGDDckV!|A+6uT_4YJg#@ z`U|CAJDKQuol>+K7|~AKp8#kEe}q7al_sB3h3qMZs9EvM&YLpl#6;Rc{MKpI>Cvo_ zreDH?<)b;*4CCOaAs$T;hr6jhEOY8#i_R}|3N4zU6vwar7?5z0a|b{tshiw3Z0jGR z{bZoP)DlU(nZ(ulssXq|KZwaID>w)@*pjV{XR9G72O->9#thhDaTOyMWRPH!>~^RrJBc)-M9~l8a!zN zi-r@td=jJfHZTWmtAi+$xYyce733a%k#pVo%r6(Exa(4*dF`>KV_708n_P&>CZjaN z%rXUkMHR0xZy8X%g8C9mH%z-~M`B?%0*-tWCD8s@`8Zzl4Ckj3x^y-zS{>^_@XGB4 zta+^OcnBB%%dqncB(8+n1bQ-s8Fju4ZD}6G1$oz}5D2X=N;5m<4^tmcI8%QW<{cLZ zr<>UaVF{Nin(w)!fLPBcO8J&wN+62Et&CKM`~|js2r&Tj2i~1EK0>@tnRI}z^@?Bv z;5YY~sY23yz|>a<7!LRX(etMCa?PG3P9l{Clj^gT8-;sK zODjer7RD=SgCCWg?0MvxSM7ANmpNmOC604B397W|e6L=1p+*N#Kxab$qsX zc1QKp<(7az%uX~%O(61B3o1-nu)3Xckz}1JbZV9t~VG5HB5bDSUY7e9OQ9Q1pD*E*HpJe#Bh}efLSZJ%P%( zRnLbB(gzt`HeTL(Na}>-^sG(TK04q z7MQ+Is4hHjGY4+l!qB>6>y5x@c6;OaT zWj|COw^;l4fvcRH$PrE7ItX&TKy#iC=ug4QzDnwRo}(dpZz{%n7I)sva=wudb~aANGD}bYItc!- z#9hB3y5{#wkR7plsLfic#H)(5s$V%mdl74G{N36k**QMRbm!oOR%BjpPca0TI;7su zj)EqpTniCVPwH|N^P`BeX}_km>Wb;44@iKkG2Ou{W7S$s@w|^-4!k2WV(3vI;zs8ZVYW^&$?GS; zNFKsbboh|XTMRBLj4 zZ3DfPPD;RD`k^N;**)oCMMTjCH-bi*&hv#PnyRmm39S^TZ402QplMqYraW(hp}cd~ z0Mv|i46NX-0BK@^=-hxz#*LiRQpBU3JL;cuZ4^K2)!ue@^yzQ+;yfzqYYaS~_@j@K zvhOG>oidm&buIih-V)1Pk?sovmk@Z2KAChB=1#qy`RW2uOqLPiHXWl_JqgHUQy!)N zhV86c4SStx=^nWq9X?t!Qih8gaL4TBKuKADTFpo&BIZG z1EgTXry3)Fz!$o(-A@c9p@J9LVQREV$~zVLkGHod!xc=cGt2Ai3m*`V#hQEe z{tZHIkvc-OEj9uKVL#+5xeaf%tt;0oh{jvMGILen4Ys~QX~KyhqX50Wv+CWN1Ryl+ zWJ{ZZ6!6r&D2H!4_p~)Z#=_EWq+p+>^pImqIH|ovEm&{z5S@I&;k0bFJ<>y%?Let> zp9gLBw4uzT7yOn^JqL0sj`a4)x)Gcp9?NHtclfbfx)c|rquDEcItxv11+Q(dvh{$1?dy$nxEmM zApC0w-8!2)P2O~k_mNa!HcHC8fhHu3$vd*!&4!Lft>|V8HKOg799Hv0n2_z(6cXL! zmIqIX%*_=b=d|2;){-m)E$Ozm1yj`T_pjDrpGMw+ySc-k4-zitp|(i-4B`8fbM7M~RGappk5YPADqTQb z5CGnzo!W12+py-r&;60|AG$!?fqTbb1SN^{Pd7gQbRY>o{OEX(d(7+U1Ne0=VR1xR z?ZN^oIp{j^g{fY1$-vPMtaU25k+m~vx#VEYI6Uqth=x+{ClZTO9d&J6(woBU%-7ZgdHDUr>&#{n`z%TK{AfTQhY1e?rWZEjkzWe-)5n=zp_H{+^3!wNFIv{U@+6m7rVvtH`WDpTYcZ z)pi&?=ieOMG`i$JNk(Gz4G@ZlRHi3t&P;cgfmL<`PG!k8p5*n-7-hAU6`J zCEb)$evf6-b#0YiBBx<3O8!jI$OAPLuQj)&llHN|3JnFj$7cyd#EAxzoE3{B?2^K3 z=^EZg%AUMt+NOvZ?`cC(A)Nle%7lqcL5FhazG6n6MEwL?pdp=_&Rl6U(VQ;ynC;VL z6|hCVmj=TedhqI0$3iy~V|XJAKD2fgDW#gGOa@Im(A<@9s@YGk^`Q4lPm;VswA{>r zW*Y9eV_-|{2?XLexuc%zo}!OPK_K6V^^ESAob+lQ!o}BvI&%E_=&kh0XX{TZt|Cv( zjuW`A!vA!L)(F1yhg>$E!&9qPZrkVoL)AM5ck;Ynps~5J?QCq@wr$(VC-%m+ZQHhO z+sVecdw<{i;{M-tO?6FoO-=Qj^UQh9=>S+;b846 z?A#4bE5CjjXFl|;bvJVH-d4j6=He@5E6oW8{gth^%VF1z%}0Sa4(usn7cblZi3#8@ zmIM953)&0j3Z6X+E}!BqrOO7N5&fi6CTJJ-Jwaw1DW-jm_R@bs;5=-R6_e@65e_z{ zhjur}^#^gTGo01UMZG#Vmm%T?cOTgQY4;!<7|v7uJ0n1g=}*! z&#|8(&Si%9km*rMU5x)-zSLmXAPLYp@tl3HTlN(6#wJKrpb-}@^4>U4f~Kp4{JnY3 z%e=$#zP%uaGy7YVGs)^GM`SHNrZ~sLF2W>6WbHgMHb&GpL%=b;*CE>gxQpx;wbK%0 zd}&To=P?qI|560jxBAS#Or>bIzplEAk-_b63`^RdS-@845(FU2IN2f>^x^;`QfIPX z`G1)vNpyL?NrOO)ku76(>lbEKQ2C8}5Ma|&7+5G3Bg|=aEKnJM#JB$b63hXn_C;`# zc`R3~R^v}aYin?b6qjHOPX`~`1lHiCWiU1dX?OCoBeapMeeYBI@Crxk3lMxEX1||l zvzLpC2rKyL$`jOB*A|DzV_gmJ|n*d#Zy^kRTa zNx>G_#QJL>=9u;d3uY`%AjDI;pxA#r{=l^!tcB0e1Z5*~DFIE2y0|YKi(NxnCg%=> zF210y+**dJDe}cf>fQ)&$T9V8JQJUf>lsd#cB&)3qp$gkbXVO!fv8{2TN3PL^P8y9 zx7Zkr(7F-E?BrSD14nRs9m*<^r$thBo%F{(p|X)v8HYMNz518Ah)I-2gu^8`d`@px z<;n~+omP%U8#zsnd@&K?a`l@T%#qh#-}mzwxrh{S4!sVP5A-!aVN(yJ3tW*s(^Xg7414vvtcf2yV zixh*}q7{8S0F3|2ml!dBD);s_-g;G{?FlILhX0Rw37Wac*NR};OPa$^M;PBSCd;NR zXG#J2D?;S{nCvk!LbhnarwRa5L|UvOs2g5XVMUY(Vj&E`gDD{6U?4Esr-x4-wrkcT z%rA7oz!xr$&{j(4iU}bp%@fD9%+vhVI0L*BXQ1yBJLNbp+~Cl|aX<_AFSb*1R}FUS z%KSz}MmMs$dK5pE-j6i zY~Wc~ij@_x?IQ68i0NiN(c+a`U``%03Td>?`iocGGMvSkW=^wD^i0Xt!{SDSh_yvM zy2$)X=0kP|muCHCndI}}GMFko@I21jb%JtffcgnwYGW3=vI}!DE|b2xl(z?NLrkYx zB{cA5E`PJrxyjK6wT?s~%2MjQBSoZifq88-*QN+Sru?~5Y?$_-a3xo$@cUFiC=|a} zZ)ki4Lsm_99B4}uEFV-cOvHLD1u4i+@!!15>Q7_>u0Wv(5_z+NdogdhAXPkWn)lC* z8cUu&ovNQd4jr5XDe2%krz0P;pxdLfi827X+!1xlMrlhMCkywzVWRY23kyu)HKVGt zB3uF7M1`Ev#J2-XTT@(ye8@)7@|3a7e4pph{CHsvBHtQZej}jb_vrk<>VYrczwk-8 zip2;an-DmR{03;jV4WVyD03)}P$=_<7R?`=yES1}stp#$gqg-_CWyT+nWHgP$1O3^ zlnbkkv34_@>WAc-;!d3dS($@%P%PeQxVBjB)Mu%k%znPyGFqI5?@^d|VsUklA~nq(`B zdl_J0A(xGmwwG|r+OPQ%svtyXLLMF*X6a7mAit|43FSo`!$10Ky>% z$5c(V)&W7%4jZv3{8E!1GMu(0uo9PDZJ-e`c2KE_g*?R;MxLGiDCaC#_cUChZ&W*U z=tUPW2;nOa@>xXm>N&C@*@-~HAIR^?PB^#s2I}q+C16HCpcMxQot#=bL%sJy8cAPW z^gmPa@kaF|kUrnshzN^~GW(vEx-AEa77%*~1#oZW0l3Vw;H*(=Nkd!^04OK^`VdleTfS(GuFaviN3^v$K z36&%uq!*?=j>iJ&5BDZHUYQWL(9FG9JNC!Jhhyt`DSOHM~pqrQlP~(NxCFAIyDs| z`Imx9Lzfk;*%PgeMmjBlViJI)@`X`3!4_C)uOo@OFMnf?Ox5RB$wN(RoQiC|Crkw} z;n%e~aACf*#B>ND!U+HVs293WFS@&|@A4^Buevx2$)gcYSH*Fo5@(pv)Ex4-hp4=f z!0Eu1z|@&DFQOPMwlDoD@W|U_h)8W{M@5--UBl#xy@D7_?KK;EPnt3j@>?aeSwbG@ zJ)x#xu{+p-L2iMbIKH^Dzu2Saq(6qOY4>nbJ0uHiVxmdbn4EfjZX%_`Lz6d`1zsv? z+J-AFU&`nw`2R_CX&o{^AN&t!N1C9g!2b{TmN(Bt;QmX%a)V9vcSFZ&6?a0X`41br zx}hKam+7SAiN5vUh}#E!{67p0>4)zA-?adL^r`>wxI!_y?SHhPuO2-Y1o_2v_u@_#G> z>kGa2e}kVhe6-ZNFZBNrnN*l>^y&XS4s-}TA*+8hpq4n54+ewe9}Up7RX$`x`rb+Z zK%~xY8D9o#ljF9fk^yDhv;1YA;PCW5e7Gi6kYj943pv*O`InDo+#dR$OQ`ZJo`K}Y zRg{~0=R^PHYAv5p?K+||vLpJom*K^(=j4YeO`hXB;O?SOo#6P=YbMQAw9k0_(bFx5 zcC|chn)&7AZW<>F;O95~&JQ064w^$3oJ1Uv9%nP7%%|C?c`=HG_?u0Z(|kM$+?hYy zG0GJB@sL&fK_!qd-J~a6l*gD4wl5sW(v=M|Nv32yJJ$&*cq)|%Iv7y~oxIod^ zF3f_QpSsNn0F&lZ(rJ=0^VU1dBrdCH{-c4GjVIR%wMCiM$Pdx+Ybgwa_Eh%w@K#t0 zirv(d@CItHk$)0cGS-&ZE3!5@m84i`In@R=S$D(wSU2WwQy81Gm<@x=E*Dez(zh}BeBMJxiO?f<*{SS%^T&q(fv|fO{q%=UtbmXa57Osbg(|s`&fVYk{=V} z(aMi+G!{5A=qTuS7;O{P95xdk?ab)X4{`#Y++dh{_TD0-R8o751Z+>+bGWRFjgqY$5=B8c&SKt=qWudsrpz6ve-G^+Yt79gy4sF zoAXEvA2rN=*t+fzt~Ex?dmW{?nq)@;mzUhN!aD;9COm-V75ijRN6Q0|m(VLV8tZd> znK$tWV2exXR-wb)A1K>26t|tm+cZ!Wz*#XC6Cq-wZ5IW^){qEUdr- zbj3e5UYBz)SQ-8af4ecgsvH~~JXNhcWAkIL%im3LDt4P4h#s*8!!`}9mv)#nkes*% z?vxc7tLXGTjhYH7?<&s=-WWR#yxN)UqX1aq^M??lGt(al2CB58^cUdLHfG5!jtNxv z+e=B%d%(bL*cS{-B!n`F>ql^Wi2b1ld=|Gh)u}kblwiV@Y+BiLyicOVxo6~6h(5j+ zm{adwdim~dOJe$+M!IHs*;zObAhT;^Fu5H|^9d-Rw zs!s4#;oikk8kj#05x=4{OZ$5r-T%qGCn38|3_6wG@?>!ordX^Vz;#ciUiK6{_ApOYl1&~k z%KC1IbD;0E$)8{v6E048?IWYE=@cR^r)C{;&M0S`GpsJx@>R)JNjJ@sRa>Nz*CY`@ z8!_YrOfQmGAgMYi>X`GWsU8LcaG>j~Zlqh-aA&7(0!|$23J>M|NZBTszgOkg@u$7~jG-<4|{)km-q|N~AY!y(s!X+M4_}%p= z*jqu2T@+?I?V^nd#utg=&hK+eCO~n|3L^^1N#M>(%n@Sv)vz!!=Ii8s3nY1#(B9`Y zW~kWf%n%6|PH`G-d_|ML5A32h8icbeA&^=* z{5*YIj1Ik*dFr?W(n9EWy)^{-w|m7lU;p|1!qPhMETV2fHLLa>K5xZbKW`h>%1X1U zQRPMYQt>SX+cey|ufG5IhZ&O0W#eX19g;J)kcQ^Q6Cc;A2>;{)uk3BHLc8mc9ZzFa-w~FogyXI*l-8SQN^}(TJsfY~tk#S~9v=m?BG35G88nbQ()PY*78_^2 z8Bh^Q;C^soTz3h-_Iy}p<>3xxBmDtUr@G#|wlgD3CtJtir80uO=7nN2Qx4&cQ0>AT zNZoY>ZUk%sDAiZ^`%T;nB;QD?K2$Mw@8Yh>ksund>nH|_Xv?}Fwp-J-GWb&n`dvG- z7a4MawJ?Fk03tkgns}1lJk5@>LU}AWI zUFv@Rb=AR}oYOM4AOaYoqWtneFHbnDYjHy(F`%h@Y$<}frPe|w^OC2DxM;S#G16_P z1mQ3n>EZ1%k8HJ3O*!?h@>C)FL`4k?m48#XUv{PE?I>);@gCIC6GpLfEv(kTCyD%3 ziCPi@kS8NkHjRH+XOh|(ozIFmrI;4jy{C*${H(y*e&J=^QVbkP9Z59(_x=;Oh>SH4 zbq92m>D`GY)L8qYfHgfxqOBY4&w3m~WCDk&(^~VH?@RCe%I1qTUt%$)QqN5*U@iXz z$q-&7pWu~k`OL^9Dn}SE#iOeR(*Y5o9tB+jNG#W^xe+Bl3s~2sX41)88g5H>Hum`{ zS0=Ay+0zQ(k;M9by9qf^lL# zSVC47NX;IRaKtOT$Pd1alA~qzN4~y%$u$XD5WaiOm7O=`Wmn_$hS0F>C}SAb7pM3d zkms_Rv$XMnLRSe$4#=h;qf|7*?y@m3JeqBll;0UG3)`EV2tK+iJl?Y3O?TYSpQX?>@;}`|9=5IGYrNB=>K5#S(zs@7$OkRuqqG`X{sO$ z20^MU0tO7g+Idstj+^;2tZ>TTcB_j^K(f@|W-mfs?e_KIi(_l2)<@m)`xD9nF@HviY{XZX)$2y{#kR-AKuL^a-XY~T z;Psp$*YDSCkAj(r!TA!j1&>@ujr*mx`ea-dZZh?0RuAW8jco6 z_I!SjqVtx4qEsj=ldE))A);^fjb@uTN0#9%&2s?>v_~g2?L>PTX(0m16^>*cCM|&0 zX68}-h6)5%03J}OjlD-2T3M^U1l^2edGHRh0F|1=lP-oNpAj7=$eL-`gd2Ex&(Pj7 zP}~VXh>#DOYjqh~43+HYX7f)qS!+>4FC6GkM*SvG1;{ zHdrSQ4LQTOM8b!-i-T?XbIIxA`%7U{3=SRMU^-moC}9@VijroJ$ud`;>NH8Td8 zeT^^Vm=c6>8(|OIfyhL!B5!ah+>ndyW_KvS6vT40&cU_cvS12pY7YH|09DMmncEI3 zi-cW=Ua#QJqbzVyi6WY zv`_XXiS@D};>Vmbwn&8~8}7u2Pw5mJC5`0<`Iy7RLxSgz7t=?C>HsUigF`frnN2K@ zydT1Io-zSS0C$5- zaGEFQJs09i#5#gvkTuX6IKFhoA|R55{=S?^nny|*#PegxlHF6pQR7J`+pA43-y&ZS zNiT4CPehIbx(7i`+(+6EWf~k3$(=_c4z;{m_n|K3c{Z^GdM)uM1a*kp%$)$xg`(C< zSU#ZUCh6dgpT?iZQw(1_yamrPjPE7Gz*U$Zw!?I0arrUN289=+no$?Bl2L7OXp<8;TF9sTz1Ktv(|NDIP`Ibt2PK}Ae9NT)ttncN;r_y zR}0_dtb*r1pTdW`2$2pnhi11oLr}&(5&hNS57c4}B=;x(3__GYO*h8$E<{S)0?$sA zIa{(W@j#6qhp6Ls8wgLAtByZQrfkv-uFkPgkAmSSCr(21aqz4v2gW&!TR`)hbpM;5 zFVTotc0gq>*@RSQfe8d)U)De=m&f#!6zmsQmX5l$_G84bSsEYid_XNq9~{bhI&Sbh z-hr_qgg`BN%AgUP+Y)0}p2&C6ekaej|Eu7t%?5;!jJ9kE-|C_ZO_%K;=f!VUxO&{M z4W7^klIEV`RtH*wIIOHKps$aOhy5n_S|UEEatz$Ko?}R&&VE9G5nkUo9NZCSeHP`_ zd|H=|{-b^2ut)vI?T4kxBT|9DR@aOQ!+5Ue<4*Kk&8>02x&U6o&bmM~P8AGk4` z&=T}{f0zUxa{JYj1$A1r80l-6B-)B4C={%b&aQyR1Tl0WK3nvLL1S(M|FHvRx5t^| zKbzl+EJr@q)gC!O;W=62#RINQf8sG)$l631^4V5~qvt=NTfTN*ZDtWoSxok5g#OpQ z7K91{=}{q?6(sF;6^KI!HlJ1Bnu^e z<5MFIhH)<#DF*#>U=;L#qyH35x=ObjAlbI*`Ozi0%$foQOgG!|cPxvat8o<>e-Co5 z40f#a&b0R_K74~?@$gUWk^1sXd=v1Q^Q8^)=Cxj*T77OH#r7tUR{=Su&f(X>mUClm zLyxZ;EX6|<@e?#~4WaAQuhe!mUu=2Ee2|OOAQpKAz4x0`T9%hG+1>?La)D4~^w z`w?AGsJ5E2_2G{Ht!r50%LL-Zmc9siDxs>luVXb`E;@@7(T|*6dd&(x#JXsNpl8Oa zpNHxKNTp56t@c1);B^AiD5N@iyDWxT)Aia zDTZZA32*w>6`tGA`nX?X(wBn6ulr6!_tvd>W1;qUk#{H<*{oZmOyZ@JEj^$DK*~k75>?%xM5^W zi%l3FLW>4|1d=Dvg&i0xk44;-jn7X3fb94v{MMq=vQlDcEQ}1MmYoK+rzc?x8FGSl z3CY=#sxWxw9kS_(#1;<-DTVc3Jk6(H))AtOqS+gzy7mJCcl70`ZTZm_yQmN)Wd4%MQ!xiDn{$Z-lP z1c~BGtT6ebG+=8Oy(}2&WS&Z`fxR8qluL}!^ybU%Lbds1N5P-!J7qA73o+IuVKo*u zF>sIo?kbSi?%apGetNL?_mA0(xjx#k%rcvSSbAVq*4$M=HYgSD>AqpJwOh_2MMl)~ zG3R2;?=8oo0U9PwmQ7Oy$ue~SIK+ur!)l+!lX|hP!c6So=YzVG-N^N+h|7pXpH-An znLTuGw<5xXiR=XYEw#-%scZ$L7JplroAU_|=Z-); z@HCa7jq>!FEn$cpVgAuMH$C2ODcoIp?%J`;1~*;9M3OpVkt`te>U=xE#PP9GO{d1{ zjbtinCacVzBy(+3Ve)M{G-t#Qwtd0F2;~UFabq87T!_~(F$8$ zsDI?2vaV0Wj1P&(Xz@n?qN>qWYu{Muw)n3?a{3E=%Ir6wi0K}C`ve#B{f@OLl(H`O za7{!Yo-e)*b;h~3E3$}zOe~gGxzTA1&OHuYi9F5ESO@WRrFx08+kc7Hl1oFSPAoVD zv=74=M~yD3;gNV{@EW>yQ!pyN(6#QYXz$r&0nEf!=c+!%IT?}wD^x6L36%_Lg(d7% z?zsu@4L9<+>lMP^axdaTBbaFNg&z9`u3T4BqR;C+z# zHn37^bTDn4BbfR; zBX+Rzc5-`?f&O6tS*-9W4#eUi9!9C}I_HPiq^X0#@PB`f2w=HnVRRGgJJH>Xqw`sj zV=BL+f|Faup6R|5_TP?@T>LBgutZoCv%2 z>kIh-eBsuQs;TTu9vfmJuZOR)GYN-eyEHY)y{dkF0V+j?VT45k2;EUzUuCO9Ge8~b zetdfWFuL0UV%n{PqSr_p#S3LT8>i^tnQMs#kv0`>R@j_JSJEe5(y14z-5UB9WE7 zv!{JNY=!+g&zlx+laF|1Bi-7uOF>QVEbiuWtj!9d?)hD@J&ydUj{N<<8b;UH^qm`LP-bgCleMD?Mw8wY;Ngx^lN ztB1N^Mkbi$P88v^lHdxNl6;(52%++?`&(YqnC}6@Zew|a5-{3#Y3IvM#e3>KNsKL2 zZiFvxHU>MM-}pEv5emjXLH`e*R`XWAB-I870`fxo|FdXF zfW@)8er%!u5`g`lTjnAP`wGifN&iU8DgqTdF9*XIDx_GqSU|(7meJ20&^QO!IX@4| zptQ`tn)*E1otb*M+8^w6KO^d%GNGgVK`nOeim0fh&NwZQ_>eAn_Q4z;>M*z|+s=?0zbJEx;YS6zYXIVQ`9JFMvO4F2$<{)&HXmpt_B z4k#5-Dh=)zZ+z)Q90#6nlKvgi0B=RMx~yu;N2P0&9+K_dQMpRWA+)JKmzbS-T6`AO z8Y6dZbR7&)Nr}G*!1K(6RfB9v4zns6%qBS)C}Lg^Q(}I@bSZimzN4=L%lh8_;cW_C zVg~K{3)fLMSkDd%joWh`ntJqS%!U5E`5FPfVMorF25RhaJVyp^6T4-<0k9pwjI(h= z!xdI_nNMhw1nw^!n|!lpLu1evaf~?P!8&U@ia-yKy`DeWMgo*+8<6H_foK+UzUXoy z-`y98B`na{!u^mxo}pp47G_oz{|rHo8ZA3Ie=&vCb=RB?YVUQvSv!&+iswBu2eQ8v z7;@5XTrYLK*T;ArAt>x@1n6mKDuN^>u<@p$A3>+DmqW=FwD6|evV`4n7ABB};CUJB zehtCXfJpDbb8ryrfkcC%FLHs?O>zGHr$`u(Km-Aish0`9(qEEq%GC!8xi3nme<#}=7->qXtQZNt%iNp-_-6D<<4M#k=l|*DBa{g z{9^ul1zO_6s>9tlMyvbFCpN1)%MiHyhof`Y>odct-_Y|@glnd%z$wC?TYfMHuWJ+zo7`5mN4@BgwDB(Y}%Q**vq~j1fh4b0`dj^3Gkgqn)m`o$GT9KL_LH`Nd z-%fph?Io^QJ*!W3`+cZQrAoCaCXkvwG!_LELBn-f;Bvq!0s#JQuL6riC#Ki*E3sR9 zW^dh>5>b9ua2gTrTLfJkGso@9qWkBFMBmrGyHq}635A+V5tl1= z2Fpx$o%`yNO6@(lKYS8fR=0}%KEf9ZtTxP(<8~wtV+TP5NtkjT(*)G@cw2(0F=MW( z+zYI-U9TvSG1RSSr@9103>piHZ??x<7WWN$=cs2LZ-86tQ@2cj_Iwew<>SN+S#wp! zWg_MH2DGT{h8?+9y3SwA37l zN)T{L0;42s=l*SNtqGx_t6}9X8JKZhjm+FC2cC*Yg3% zOQbJ*3*JnYw((KA`^fcBJ*Zx@Mff+j$NhX%?9x)@iGQxU z>J^CAfX-JBnMHkV3UA%`Jrx!mV=~|PV-W^t9n7x{ZtlELS*k_o6SwW3Yr-KCSmwuG zy8lRd(xd+$6L2n}__rlzc31O=cG9=|g-p=j7}jERL+V6n!Efev;Ad#kBQ=L@0CxkF zvQv`Gw#VKWHfMjVlez9=Ow|uQcTfenr7>Sk5uBP(srW0fNX}l!_7Za;SoFn)A|tE7 zO(MkMDe)#MGZ`R!r{SC!xSMa;c0okx>*1hJt?3>Rp)?Jq`*k62?Pa2OEn^tTWN;=ao zo|hdvHu??BRkrR1$g*qTK!{wyDgoAP?_hTo^W1J$NWKqmwSui&X? z=||6Mmk%?N!LEzeGX%s8c3z#^iWQPn|DI>%N>@dl*L8*4IuZ@H|I%Pn_(ZEc_L3-v z^{X?Vh1-UKxRy^T?^%8&NQ`%o#oMM?ucBeIUZea#`A$Gf*ue04M@{IVou311j$cn!S3yG$$(-?7^|j%ZC0KuGHJfV@iu1 zqKuiYa}`1-%hB1gsqVSHcz0^bKr1_^Cd>>DkB?Q~qoX;&h;~;1$9UN?cDjt~-`)=X z!Vn06mMlh%M#-F@-&fu@ucmCFh;8j#_5q-5U<8m3*LPq!){eVj_T@rYVB(L+6g3N* zCQq6CEO3U^MBZtTlJ+?hJsdndTQg?Sv;7}-pj~E|%UO2div&x1zsAhrxxnmTX>;X> zqP9C;!i$%H2H-3Jz0wuCFgJgII8+LK8o&p#p`qfs8C%XjJ$MMc*%-yPoc6a?LCWXK z4K_{Qus)^-IJww zoQ&zcqiq8lb@wrxqJ)il8BR3R`Y0`>?k;%|!+1~B3*=UAc-B6W5~fzqXjTu?)oc=D zZi3L5XIiiWhWd$LCSEWwyWsy`v<$4^BhmA{%iaXLMS;MXE;_@BbD12^TSW*~4DB?M85C9XrZR=jjy?Pt2< zCj4gsamATA*H!*3cip-UV4^^Vc5^gvd_NVAA8DJkwp#SLcj!ju$WRXMc-4TqqV zh2L#P2-5uPRY`D@z$$~0LXONK@&vAqC(i2zT+qq9{NV|`Uxu2P>yT?T(_!7j5)HSW z$3FhuxLcsADdk|Wrbb1~Aye9*QFfmPh&%UC0Yd)cFw=`S zmG#tK1{GE;&Pn4C@;de`_4j-Ymhs_&@ZhO9pEA5JiEq9Lita_;Rb1ycv|gDb7MtML z@PeZn$T^6ptCN^XO~aftDkWX*zc`slK>^1pAU0aqz6+hcir_i3vN!Vb?b(b$!1wvr zd`7^sV$tw`WdH+Al2D`ilWtytvje$>^XZ-i0^_XA4@N(#r@pw-jCcZHwI7Q#ghQ?7 z2X^zkJYU45b7)*hXkJoy|EB97wcKrmm~yfVirDRDFS!O?QvqCBxJ^?eVabU7w# z5u*rJBXHf)IX;ZXZRmCiTrk_D*NhDgT1tOeV#t6>;F1t7O!Fa}0KQc`UN zm{8CV@tejOf5K#_xV6yh0P;=L!HqxIRzEMuX-DU~cpgL{?37vy&1my1HUwnTs>FMo zlD{9@rsDO(AeGk0z4NP-u;Jdy+)AiWDYTU0;z@8 zbLg!$(@3M_Be4q>UC@;i&lJw9GH7Ve>jkHoAz0e`W%>ogG6eTu0j9!N1^H+Qnr^V_ zqz-7xJWN88AnUx85xaJ%QNkwK!7x&@`0=PQ(oVt&HXIGol)oI4agwf3Bd)w2cs^0= zm6-*@=O{K(2d^9-iyX*ws4YW*LB%D&u#a|^#;Exkyk^G2f-^Rx$Oe)2>5#$Xv`tkUX zp~!|e1bNlI0MMyGc0ky7L~AM$?8ZgsKaS(QDQ;0_J68u}ZPBYvbYVH9V}fxM3mf3~ z&;s;OTIe)YWOMNJ1k;d2?a5C)id-oNx_Uo)kM)$LNBag#C=-bj-o}kCfN;vwX)$AhhH9o-OY1)scNXp7y@@ch z!q|6IDQ5okWhyrVNf&>?Liu||tRkb9Xlh37Wff+0MkH@RBYP1z{<(sOLMjnyVegne_b&>hyD5zLZ29($~xs7 z4~p6s>E^Vb5h>Z7B17Fp#2`_-w;^jojh%5&cs!9Og zB#>z}Wj8%;z?B=mXxUCu%*MKVB(8V5d#>_C^c_@@3#q7*p_*b)5eb>zI3da}pEFGFH1xmT_Tu(-k0(aP$fa<_X zb;qSjJjL3W!>HB*I`r5pg}Tq#VNy|_+N7^w5}wxTYQHvOd^D7V>l}|t4D>Q~FQe-a zSg!Tn{@5BOJGP?p^iLb8>b62zE~0jwPwgrAb2$D(U^FUN=OSE#DructJJ&Lttqnh1 z!6VvV7H&_jxx+-EJ=PTdl7Ii=0!Yby4~!)~cV)lvwn=qAc@lHs*uNcP9(L~=R%eQF+19J(4sRnJA@b15sx~+`eJ<3#GbJTSQXm9p%`s8!0 zBX4G$YGxvJ-}of=C0n15b-#ZkLZRONZ`HRIRTksrKNZ#W4(#+J8W2!}E)Wo9Y8?*- zS*m~{20k3iwdoiunXD&5qN8!Dl_CZsV7=#=p`$muJ)gPZ^L{_A;{0dw@2>YxH`J%B z`$6o|1lIGce<|-)cLiAA@ z`--YmDR>l&?)d#R$J&_SQI?txjLmbKIO37(^^#O-LO^_s*uj`=HLS+4fLV$e35N0* zd}=v;_chfYn^#xsIm2xlH_kJ_GVgU(14cDXS8rKeZRg+j>%pqsZ#BJq!oUGD3=gCbA_ZHjJ$ z_#-@S77`{@%!I%bJSML>t9$eQ=UVZN1VC4{D zSU*iSu_VR(GP!Ou9T>CsHry!gH+B1GHiXSZt5agn3Ynyp@}1YKUxolM zG03ZMD-b6gthDY_d(vF5NMefcYZpX1Uc3&G3-2C%+vlY&$P!R`}<+8mp z$>e{T$?Vokz}fFg%+u60;$A4L9d5zah2`oRx}Ze@3hY*@s4B56I@V_Js}PcT`IhiH z^Xxj)T)YIx0Fy$wxIg5C;DIG_d$P*b2U@oH`&!m#ZER)M9VN)STqV;G7$u6u+VFF2 z%b7|@9(F6`P~Ei)(^U_xB#FJt&k)-g*!fINVt=fQYUZoGOctumCh+&MbPAz}S zD_oeZSv&AlFI_5e;5%432~_{JB#8alC47NWZ8lpf2bAUG%~!AQy{}qhZ_C6DT}zyX z#L*Jq4DkbbxLb$Xb^Ywzj!Js3Ss)GC({nRK{y|560}0)a<{Yc1!Z)bX<6GYX-_i`O z3<0e)Nb^cfdp0OH*>%cOmR|HH(sScq zO|m;P*2?U3J>|pAygO6m*2_#}#dFfkptsX@h}@;fp_RI?hJguKt_#6R6ACuWg;-Z6 zk$Ic(o^4LQ-5onl=yOEG*eCD!P=igHcm`H2(n6cy+;^qt5}1h3%@R&?HS&lQz?%dcbyvCKKZ-rOQTDlMa$&D^ zE%-xE#CiKHuf>bv=H}a9I&AKc{}<{-TnDZ->ewPRN*#j~xFNMp{onr1E;_cwWTp9p4`BjzhL|zjYrLVxi3^7&-VYSnb*0 znnoh?)dl3(jh1IXaqrv@eN`xc!B*$iAz5T+Ard2!jFetarxJ0{BpZ!41Qnf4UXhrs zu)JKLElyl9L*yRT#jXQ}GQeYq@xg6S!pcxoyY3LgN%mKu#o1DV!Bl^-5$O=zj*MQ- zc$oxzL(wbFO%3&3KKiE%l0b@~Zs^S{}^&KU}?2lxD%U zt((qDRNA&}+qO|@+m-m!wr$(CZQHh;x7OON-E;P7bH2=Yh{rx7`sm{uZ7>3A3sQC5 zyDXiOItp_2^&zO^o2dRKUe456{=l<;?QK-L40T*S!Ra#P)14Rq(1ngDpkNW3&U1d| zRj)aTB7G&5g%XM2&YXDLjIxTrt_RmnHNjZ4%ngy~1tZY9>R!KMsb9L%GL1NJ`E00A zWpwy|E!gwa)IQ!EaHblmS`V5~4+*U2m0Y@oXhm$4)8r=Ymtuc>@W(1XtrvVBoyz`H zOp6hmalr9;8-HX1%1#K?K^&8CT#X-O_&Jcm!wus&vL)ncEI%)A(@0#^%H*g{P&nCb z=@$QSF*kR|=V)j>1bdM=;^XQrV$7t@Ge~;G-Z!jvEolE-VOSV&%c86V$NR;SU@8G) ziZnl78~Y)?xlIW5{?OUNZBhqEq!N1#4ka$V0ey80uf`z(77QBd!zKQ_Dkh(Ll+~q7 zt_nE{d_-<8cG6*DgQ$4 zPimdx_K0~fCfD||y&Miw2zscXXod2v(MNA!3V@f?sP_*(BCdxOo!nx)l{4V8T zUX2Nl<^(hI4Uf39<9-Z#uSc);N<92>Df3c;rYC(w= ztg2C=m5k;9{(`ew_%xNQ`10)t3+{iv_p#EBSXl8?>biAmr! z+g2{a5byht!R<?CrTn>+Z}ANo72mB88I3y`i&c$_{LUOF&Z7BFr4Hq@k;SVSbIh>_O4E(I8NJ!kuu zpi>%@@U^xQW?X5dvO5b|=r3QZi~!*w4bguCjh4Cy zIR4W6$@G8u&J83z?qYTFprTxcmr91~enS9mja5Hm?GGwCtd&-`mJO){t0;<;-$Iw7Rr zM?&_;H^YyZlXs?9S&}FGHxG?mLJd2rivUfcfnWNDMTCmn<(`8jrZN>N1_uxc*+(eI z#)#+VUt!=BkZCb38^Dci9co~;cB(RF;>MrU zi!+K>Oz$EMEL>Go0(<`WB+_wR1^u#$b5d|yU{5S1gH_P2fgmwWE|n51At46G>0VAk2LOcsL@-9WF>c|a)+H-Mf?Whmtkziyr@&?A!W+9o}8m9Xfblz4eVPV5-{Z-j#K0j%0+ zWAuXdh_cxyvhWsgh_W>Hr}Wtm-Uh2Qhv2)4uiU%SEg)4f?TOOiJ*OUgrabNx-0hqm z?UxzFzNkrS0gYR+Cdr#ugNof@+(z3&E)Nn^oEyW4LuFHZZ#R7^afmsE%NHJ{WV+Qf z&D)}5#7fik52U1G+p#%I3i)gkKP431bG-5}AHGDJ$qlEM4G>T2;4KM`yE81mQ9Kxa z74q5RHvzDzVx8S^&uJ_s4BvGSObU2kfBH#E#pbPV(EL{Xv_#6?A9Q-jL#kKjVS5N7 zo<}kVCBin!Qj7u|7iDQUi=^R$Ep-;KK&6j#-nqI|EsLDg1RaPuajcf;5a45Rv%xRY zA6T*;qcR~-9As%cf)on_bQZvr>GmUQC#IEqhhpc^n?`^kvE3D{-NDp(E zau9mx*|iA0k$NagG{0T5gk5_s1R5$-nZj88A3}~-FJwpYmGiu=H>ZUT{iy%;1IB)leI0|h*7M6-lA^_pJ6hz-o->Wk% zREYdCPBW$&pi^^5t4vpP+pAZlji)ej^zA{}Bp@-h&p^bYZiwG19} zcS*Syb8^^pk|YZD_8e-L#?*<~w0Z*e@m%tBNnh8zQj>Qz8WsIS*Y)fY*^oZIPA`hENjqr z3baxQsN!IAZ|V2BgnRrGk-U3&)u5#frJ9vApl)3|d@1@4J!2vVH}?1$l&M2-x!!}P z=bGj>9o|xyuv0UtmhsDdfk1bLfIfsF7gFqUD!_kAn;?%rVp_=~Ayt4B$`F@=;vVQ6zDS!*|URO`ISGDE?DvmeHbXVcxRP#K*n*WxQBOF z0C(;W_mT7yD(-xI`grIy2$(M1!Pb2Sbf6DZu$uKnWHZF<&R(rjUREp|52aTk$*PUm zC14wQ+D7)oU^{u*PSUXB$FtM-s(ic`ZqSMB-z=?m%nfcNF~~8>E&F^U-iXf?XCiZ2 zy<)o;gp@Jse@J88%)Wl>5!y{m?QqvNABk;bV_)5{clW3p-H0LEsrOSJBtWzPbXHSm zOe**4Ib#$DjWJ|>J?}IA>WC^G^*lQfhnf4{6Ipk6cI*klF-rE>llNnjV_Ja7o*a(sKBkY^XNQYA=lQ%+|B3zGGb@SE)rHZpxWn(*PCJuf;8ot}!G zD-Wdb{5(>fhfq;BWZ|kIb$tfJdt*F-6BB zz45iwk=ucq(4MP3vDG8}Z0Rl4r=UY;_R?cZZ}Q`gY; z_GV_C@WoMQJ$sy2_3|k}nu0%-A;%)TLdo(&TzaxH8-`nce!u*o)n! zT+mu4os+GHdGUd+RsU#3AL%eBM9snx7OwaGR(QK6X=Ubx^JQfA-oe!*v#+n?PM2>( zP6cj~qeUotsU~Xzn%VjNBHl0jy=AZni%7dThe;Sc$kht6;4?Fq((y zZ!9k&RY}+rg5igPPq)pu2sTU?U$3UmvZK>XAFDSX?VMU$BfeL7_zK|%Db;e_H5~k% zJZYB2pt%k(6G|^sS{Ak|Olr8Pft? zzHp=0CZ9rXR>a?Z37*z#39e~J7Y@ey0{k_5O?Hvj?0QK4T0GA@t$Zt9v4exC+%T(p z(Cb*@iQBhy!Mch_P& z7`NXOdeFs!;OV<|snvYtqtb2e#syL~)&XQOOYNjFCOQ3NYT6!~wjh#~{x0CR9$;z1 zW=`h|MCTDaE6Vo9rpM*kl47>|yjeco-C+|f=;^>UAsq#lZT)GvZCdX9* zc#3GpW?TeirH_?6$8n*HVedSAlm?u~y70?z^$jdm)ttv7yP1oWB$#6rh!51Jm&X*w zy>#a!8Pdv6zKdtWvOx0roK^MPagscFK+rl_!HD5<015WjbEVPac5Rm(Js@7L`z&=g z6}N!y!`s$Bid2Wx+J(k@E9>IR^xvWWna@x2Ib_G{C#v?h0<&X@@~?;q_3vNXTW{kb zCBkL5zv$NW~DM)#ue4wbb&cVsFnNnOc|OBXLTlb8=?XAUo_;cn~| zyarmu%LqYu!0>BCcGq72)6Opai^7I;;Y|{aICLY*OO`N;)i@`aIZSqT3?IhQS813laZjAk$IZY8#V1t9i|a**2)yNNBy*(KQ% z6Gpm3$xSTiRhwJp+2$ZP#wQ|>m|9U#JY$x(u5MZuWd1a2_~f29Ewm1 zLaDi3lEW&*iUdiHnY7G&5M~rRIEvWomIj*7JFDv}@RN*%;eKMo|NJ)PK8L!fp^_*o z5j#Rh1Hgt5i|89UAY$r|gs}t)V#wYowf|<^HO5;FTp;GdGCn{V$LBujImmF-Eqn@K z8YB#wkLSX)3hN%{r*e^XrICFu_ZlC0@WM#KJ-S)b;ex2Zc@JUyFzJ%ljK7c7)%U5sNbr3am)X=Y0(fHM?m7*P9LLg;%xcY^`fbJ-;cVpJ zrgcV;b}4X|73RwSb16S3SSQnZ5;p#7Dt@=h*=o)b`@)6dVw5@aLb`nNQTl%JY;3#X zu0Y#9^TK+k@nIiYW;x(u+eUtd;L{0k)%k(TnaV=>jmY715cZGtl>&ZjcMJJ+(7-p* z5BMcaPEa0+?;k56v+|39$Z1ZZ1KPmk5fPf|9g3%RN33P*3Y&Zik4ax#JoTy`-*C+r zs}GzzG$K@p3i`-ImPK@8@_;3Yjlmx4JL_o#KedeqHS=64nad?In<#&{n?vck6fHw# zkw6cY{vFp*a9vEE?N6UkWZ(jtk@G4_1|St9Zg>NmBq){Z-k&}u6|GF{w~dRZ%R%RN z@$ff_2L#914&x4aP=rVhN?r)iXrU&?p!iH7g2lv+UM`K=WK~K8FR!veT6OKDYAjS_ zfy9z%OE{D4(6S~*+Qlf)SU*@I$UDIi5&t}NqTc%EBTJqhm#38Vxste5NE;pD3n2Rv z?a%z0SO5dcqoAC0XIla4^Iy%GmlHYYmR)flMQEx^$@BifL<0z5jsj8_%WiEmQ~LnC zq8hM>UxR^X5iOwulWsRI9vR}jt<95;GwPmz4JUN0xWaSGEw z*9~TuihgC4O#b5FdcdofnJNnkG=LWH{DsDnM|E|$%+K&}KD~=kjjz6~Ftir~S@kbX zgW2VLGV*3=xrXFDYJI{f^CYtIjn$gC!WK7j^NP;8R#Ox1e{52f8$<0WaRh_U*cyW< zMozySPU&b{%)fQ|^=Mn$2B#E;v*u|SmQ_iKOOdU{?{ zK7(R?mMtpfKSqsJmm1~U48L<2Cr2ne4wTE*T3Zq*HP)e)7THAheT-BauoE@;|EzbA z8-0zvc1`z(U~T->RC!m2DhDRhMOp%Jfdb~O2Co<}1a9tduP4BGuePa-Pe3S24=K~1 zSgaZHIp6xGa!&Km{R==#Nt2$)xllYt=0GH6?IKVt*xm*;A|h?1dTD?tVH3{>l|xt< zlZZ($iDNAqDf3MRJi`s1r|A#{;D;^Gd?rbU-$*o0biJG+vp2mO{LQcCFS<&EmWcAY z1IhVEi(j%^&fb?5DFxA}hLnI$K3fj`K%L!J?e3x?C=;v|s0DmLRKhL8UFbyBvDY5^sE>UJeC&tjBVu9rxs$uYH~gZWehwyzLO75#TiN zr;CJjCt}k;#y9?GXF!Rt3YiJ-o{zoDW0v*`eCe49&4w;ggZ)QW#BV!`;nVmG05&?x z?aO|hYrT^kjt0cA_;_V99vVdvzhFqK?J96(*&}KAub+ND4nZtuvB_P~4hHHM(&~$z zDP~jODCFSR3bvZDJZ9yNMX`I1f5G$Z!IN5qCPW$qBb^R=`_nQP^0I6C^{HqPIvt}2dpw>g%6^#8l zpPDgywW;MM>E)z~q-o#A#zP?Bm_)T03&pqg@XJxGeROqJnP9?%?Bc7C;Q9wP4Zu_( zNdj$C=6hjX8%u6GMyw{7HuS>jka6@v3BFyPayOOc$nnwk8qGA*YDdrITd6*+nlzhf z)d%LN01>f8RdbB1tD^M{wK%jT(EZk@I#JYHqB3rO7tEhS))SNQ=Q(hGV=8MCYMk1w z0UBFH(wI+CU`NgTT56ymuc8D1@dh_RDJX=#EK^~~Z{D$@Y$EA2Ev8lUVziOic;X~n z1v^o}SFRilgs0NEB?%%3BdS>2MG0pH4Eu;00J;UY&|HHVkylI=VU&eu8@Yhw0&dEj z9vV!Bb&}Spdna>>PpJ?xJmi~e9uoDP!H$e^g*Jh?Q&&@57hW+L24^CD%yL1P86`DT zg|Emgkq{J4Y2%1}PD}r#Df4w<>vt@=Kq_}scDCxF4>O~QR4|v6or=7PM|>k)kiPvU zz^f*%=tJ6!#<(HKlwbVMW>y+Y!$aS<&LuuS!b z@K4tX%mE^~oP|6y?((MLVYSEUJ;Pi#o0Bf&~4WOZSMRN(n7I8`SjK;0bdf<;I4RR_>uRZEN8Y2T60Wao)E) zKz`IE;{+<_y2(tuPY;nYW1_p_uV!S+@z-T%F`g>*#t`C5nu{36J!$TW-TrY30DuCi z4k6Z{+(4UIl3NWX{*AX!EUamus`s?JMr|*m~s^m`}f_fOym8JRFjT2CAYvu+o<}C zrbG3#Pm^i9aC>$5e(?Qp4n_H<3f&blm9j-Xb!7wJmg>Be%=x-0RbekQK*@j-J=s%{ z66P~k#{N_lIK?@s?2b5vW!m#>@*pICivT|#7t!9FbOSx`K&vNYj}hLL|Fl%P?=GG( zz1n_|1RfW$1q92E=|uV1u)y0re}C)aF%6pbueNkar5oEotp_k>in=~o1--foy<{J> zxuO~{TSh3Uh9(*)VAP2Yz{Dq&elCXIiM$hn3ST#PD4F=L!j>7F15jgiZ638c^c zr3QA{RqV$dJx#wppjPvxHsr6#7Nn!s`R7C5s1jtMqXV-Tl@U=8u%sZ`^V}`_{T}VJ z%Nh2SBdMNQIu*{k&z*SV@lyC!>P?Jat+O)B%Yjx+{;(UqjKgb4FSSg4x}HXLK|fD2 zuQ4$xan_U1yd0F+f{YG|X+V3HuaZRZ7_nm&_uEXZcK`k(^ElM++QG2`DLS*UUi*FN z44Ab%mVK!ZJ;oFXFjv5{@Wc}S;8Iq*XVAGA7Gcm}_t;)F%`gYLxQyNwM{*tI#Xoj$ z&Aw~erlVe!Js!BRa!<~plway7abUF2w(pL`dx%{*ud$XF72{$d=~&`a^4br{S*2ET zJkW5WSpRqp5w_4K{~h?LNJ8bnRY?cmJWLDg2e!H|O1q>7u#8Da*0&k@B*N4e;(8*q zh2!ofI9cO?zk$bY^s$XcBdIV9ZPjR~VXJe7#NezeQxp=MC%2<46xy^#`;*>onqQzO zMBk>MBX(sF=Wcvb85@1h8y|MQy#Bti6li@-9$QO#HI_PcFN9cRbr`n^qrC^wx^6(q z?cTUyMFcYnz;}rFGG+UYx@j20U(|N9WN0uFVs+qu#(OZu{I$C`l1)*V+XN@PJp(#{ zoH6!ezh!Y6rF~*HJhOG(=EqHvca6!gc}$!hN*J_&ZkfI=SCjsFQG@d5@)(9&Vn0)} z#kMwTkN(ao4avu{P$HimkNVImyU;!4>S|xY6xym00Af#@lKbrX>^gK5q*L_KaCx-9 z9SKsWFungt&ZQvfNltz_AS6?dEBm=b+K!t4sz9b;h^D#G=w)J%mMYwdf9*iDyS?%~ z2yMez*N{)L?n@TTt7Rf%ywP-;mT3`IV9Gs*XteZ)HhjjA4NEutCuA#IZT1>QD{KAq z*2;q%Fo}J%lfbDZx}gYs7g8qmQIy0s6fSQ7J_j1}*F{0<)aJE1kDAVb`($Atep>@? zxL{|nU*~+d%SgH18S`3xGYMJGnYh{^vbq==dF0KUlwIw3WXz>+AP$E>*)_F+*%3IAtR2{L@B0X zi^Re+-|)_*SLMv^e>H5X#WlLcTm5SkUHjLxPXz=7diu^@o(qkqc{i@L{SI0NZV;orvA1>qzq>By%5Wl?XTzEF5cmL2lC^)*#o z!!0i_s4_T9HpS!fu$s1Z)%X4VWYs7y52Fc9#ZS^EC7%G_pu|R$mYhHS;e@t()AwYx zQd5N*y_L$77A6(Jngj84FEh3V=*;tUyWVPx+VH;Dmt*@3Q-CRJs-%ujKNbo*!<fwEBsK}#eqllmX_ZO+S|^oeI)2uvmzi)hiC$IyM-3yZQ|z5)*m&YbWZBnJ zCA^*HLOBp>L6we^>&v_Wkjh9hZ}BDQ+oAVdZoA9rxllFX*syE0yiMjdEJDiHzok-C z>VNd9b~3~x+NfM7)iCOzIG+VZ;i|$;ft{AzSc&R69L9-m4!Ag5&7;5=qQ9IaWY3qx z;BgC?j{WNz_>wJ3zv+&XIS3Xu`+T5|5;^*;KgYa+uXWg&87PMWP(+CLP+ zg4`aPeTq3nX!r3Awx2@-iUwtC4|d851&+zGXBe*VKK*O^Ii4Sf{SnCxQoF?(iaUJ0 zJJ=wco*9@x;J7=CFx!0*Bc$ONjmv*Mz+`^NGXf)OwDAzh`2nUFI6NcB;DOpMez4jb z4QhAl>u}mD{4whUSS^II-(9<|6BYhg<#UWQ1u8@^#HQDe#3ief#m*7Dgy8Ex!{WO= zKp=rZ47n5g3c}_@Tg$_Ca1=8DLYAO!l!5bJe!vYdRsz@tVPF^ryCQLF=LAPz0n>x@ zat3|3y*Ue`snS8;XOj=i`o!_@3t`Cl=YAP5LEy`1hS}W$)PKRolC0HRvjS@Lh0~x_ z742pVJ2+A)^c9BB#|-Z z<8fr=kS5h$bL@dSC=~R5-!{h;1z*Rsayg4t|LDrMVC;Z}>C55(UFCn0Ova((tmD0y z<1nl*DTvtsNEiubpUO;3nUB7{m|%oQjY(;-^*jq8w6oTF#AyCC6Dp-k;HwVYqJg+G1l zPsn5!F27`!Xd(FYxEUg@eYKZ5oswFb5h>=pB&4eWV3S28?xy)6wHfdDx zV)+Vy)y>9nB%08*@juA?9YH9fz~Eaq_A|SRam^-1RnA4%&j~o5^u#G<{Cb>_tM_ex z)sBPJlZR_)SptSnz*#(v@lr1Cy4w=*Ma$?3tR2yos>TPUK9L9y9<->s=3TtOH$6&P zu+-l>7Wj9r{bl>Cx%OJv`cYoGvb1(~P(q&oShT+V8Yg>lja3v@%cMH>-eLBd08vranbeDY^`;ucfLC>+oAQ*1H_@6Bssj!0VA= z@}IFtRGzsre#dq0W=MnEEztG%N*TzHlpJls$A7mxvs3GstypcrEYPk`l$m~gAO&eO zP_TcMss9;5rbfDAIfo4i1ayR)vKNBRN7$aNg>2+yB(0qo0AcPugrJq|nq&l}F!OM? zm8D7XShSqNABv6&hzsQ$%=u)1nf{WG&_LOY5$%^h7Ae`$PNCQBZan5^K7 z>4*}F{|Rav=Tv56=19m3J)KI5II~2H@ERjP0pr(3ccQ$RCy|yWQ>Q5yzG4`}AH#d;?N%a%8RJYiIU}o* z=Mmi8Lp~Y)9YvfxB#&NvYA3H3m>5fU)Sds^w^Hbe%UwjYmov9X0K)(?Z&K1|h?(2M ztQV9P(n!%K2E@d~LeF3$f*?%ATptP2aC9nZbS41_Siy6zVG)NM2&yxZkLunINj~0h z9okLWi@FSh9NjZdeu20IHebeex6ts0c)zGC=%8DL!zeLYnEfzmg{?4?dk%FDv$0ev$Lkm527qc_8go`AfUUhY0 zDTtW`Bpdw3SuD&sPj>T9cYu4O{5J>8qPT3)0{O9D(e?TA4toS6ng^V_eyTe<@PtdN zl$YH_sSM{bE!|-}wPLA<$_0IB6 zJ-C8-7H6Pn7ZwLw^^d!v)X*#ur?k2R)uT2wK%{rH_?WDEdv$Sz75PpFY!!)P%|amr z4_r#V$-G^f88RE`&@$=oEY~7pN>w~Lh|_sN*tb2;UER#vLZ03JyWK>Ms98lQ3HEwH zL#{?PO%9Hci#|TaGJTXSgAeq67v{yU#<2SmhUyXne0?-V&`D zK-~|NvHAK8D>4MKbkVV0t-XnZ@-56d3;Nl(JYUI@QbnX<*?hKs=zEz+}3hT3K8ok+|D#=!U9%4UtUFl9{9K+3;AJ)91`e}9+z>jWF z7ihJTo2CUu32w1*N|6kFgr3cCC|;dw4h54Z%h>}rGT#@)v|MofJS{y>%|b{1X>Pf+{Zi3N6H zS+O7+YO3j{H7dG~z{hCY>pki5m6av8Nl`>44MiG+^+Y_Jj$-pJKz67_-&N`~>S#?T zeYtg!NU77jT)U#ZUiJMvX}#=)FPlV#O#P`_pOo`zc~mtEfljGgo6cL@^Qa@+sAuu3 z?l>xXoG=AlpwfV}=4M@(JT&&qmdX#^%QfUm zvq7I=oz(b4age2YuWfh22+x$%0YI3=gZio*FzM_CG_i;g?S0(b5FQPku6mBD!ZwE1 zioolOg`NHHXop(PSE^z3zbQPp|3=SH0=4MJpbvok7c>*X-1NL8j=(D&t}`SwC-HXpim)iZeyOdKwr$%CXD(}3ZQ4mGz}WH3x--rK zd%7vQL%}Go)ECK9-k_&Cvpn;Auu@^!F{Pi9B-LZQ@eMiCZvG3HQ%!Rm42DyUh|?Sj zaZ0&%GgRp!2s@NT9i)%d?;|9{mMSKp#Ue7mw31wN$D~Ze8$T5;X)d0 zK=~?7%q_GfLmzGUmdZuJ@iE7HM0yM`KS0&K`2>i^8RDy@RKw2H8H)v$$j4I z7m|aaCWU&6HwPQ7%E|kUR`vN8ud) z+davcS3mnRTcz7s^U?9_zzl~=!FF+SVz1Jfz+%^ zA2i~2?Z$PwhGn4HR&D@WX>E%mZq?eKsnKlh)E@fyzuz9RiE;FiN?bk#U~{4Gg7D?U6zT{m7;!ch)SARH;CpD*5$C|3Gr({yx#Rk8U-kWK}3`J{6`gLVmy zkI2y)c(glWE1S{l)n?N9(whfF6B24QGIN5=L+cU*q0}B?tR?7KlBzcks?pM1F3qnv zGy5)l6XTVVhcts5UG4WD#k8BIZfy(nNFCDlWLYJ@1g)vyv-h38$Dq_PWY~a=x_Wxr zof714fl(*e+GbS-Pfi1l*7OYgsP}pClA17H8@xRrSE0pJNt4*eV5_>)t5{yJQispq zWE*K{_I*gNwUy|#?SDIXqPm)fFDe(n#5bp#FVx9qXW17gsAZBISx&E zGtj6OhM!;@v|e=LtjKq_S2NWNJH%dWEDO+Cm*+(u&jXa07E(Y2_EbNiIjGA`j?Po$ ze$y#H6c}YoU6s&5wY@%egcLm=G#lBT*LYoca4gyoyoP@LbgW`dN3rjK`&bpV3~Mtf z|Mn_q3yt%S^f^qmte96wHvwADt4A@t^{Kw}xOJZsm8I^I0~Yy=TP5xIF+}bRHJQG{VjxY0j^b z?Da6aP<;%MG5s(zooT~AJd!L+d?zw|2rnh>+TQWt6><-HT-tiYac^DEMO8lm%*lT4 ztIqM$y+`x*F_7qflr2Htk^i@6gbpuaJ@HRp3t<08Mm_S;H~uF|7ru&qziuWzT9nbyWLpR zgaktt|MF0~pW<`Ae=A2=5b19qpUDn*@@U+`x-%pjS2_e>h9V*9-Ht&Qi^fXgSsKn-q^*H}9eZI1fCPqZ&rw!VnJGC%hh9wlNPaX{kU0SEov0RZS<^e=1 zyEu@*J&Y0gw0nFUZjC~{)F`VyUadO8ORb@3awLLCSgYDAA7`Nik&F?rmp7<-gmhw& zu5XkoktOP%Ppxkkah4~_FqVSj#*RAU7&a~`tC|9MYu?SM8fJ3~Cpyqqv{e9G1%D{i zERz65CR^>!JSVMWCg6H^9J!^-qpCoRe-XE<-T!!k;ZF-QXq05#51v zVQg;zE%uDRA32C0Z-xZBJ%kgK{b=SikljFx=xE6&Es;0P~xS$tAxNJO)YIM>$8gK7GwvV5Oa@b+Zog0 zbfFWgUFK4ysUfSO55L==cJukb6Cy0xAs*(%9ee;R&kp@>Dc(DS<2l5+6MutU;`JE; z&ejXApLEy;;oIFoCG>MpH6MsEqQeHV=P`UAU3o2CF7H?9^!fz9n zw@Lz}`X9IXy$@z)XV6D7frSmxp^uc4%A4V@I%EO?#X6H`*7v30bSdmXqd35~GzCr( z6ihggA7|X@{5O_^3?V%v_9=Y{|L#SA1I7Z*-8C>bkcz@FynPfYO5F(^5l{VS(iERS zeYi#ZD1?*PLfIr3eIiUct6JTWPB6+ z8_uo!ukr((TW!z<4xW>CRjlcXy`t+`5$=Y-9=g}45h?rHX+!H^=rQli_9mpUrn@-tYA>-N%3$o#Vv`4vO) z2L{Sebm=Zqj^b`#HJ=%=VUrJNXopMZz=((EXteQ-y_Bn-XFsb6AhH_iv&H(C19v@O z4TZ?o`c0deZz2M9(-Y?R(046B(w}M|0C;f_-?nf8vKR~E1TQs#`4)fr;UKBv@1gS{ z`O^2@N}rgv$@A$}yKB>YSDEHNPm*4UG>t}tEQkNWq~X{Ld#(lT^QOnt)|6m6LX%+c zD#|SXFA_<&m>4(qrxD{;*+!@)!x3Ni)g7K z_+oto?+kzBQ1zh$El#GCBqO|%SbagkhV8Uj(@dJ9s}9$x!WI5aHErX?sxm>c#&#cj z=3uzm{;=~3V2w!il|UW^X;r&qSZ0&y`VT?#4xiPA&&$_bj1t7kHdSuH4xe}Xy0;hN ziG{}x{C`CIzcJ@0ev;aef2#cs`+sXQ48XigZRejnBlxi20aAA((u0}bi|Nrca_brk zY0rmJi)U$dmD^Xh{Lv47t|yy6c{sWTC3ZPX&AQ*Z*S6BOJH6f>p*jO!(kM7kGTa+z z0*~)Hr`tKJW>1dK5=!Jq>h$w6WP0r{xDlA*y^MfMz&DU6W-Zoks>0bnsRDav8*e2w1m zCN6Bc>_mXDXqIw>KJVpZ#%lh7l#>|3gy1Xgy*ErO%M*9NW0oj>BfFITg`GjWT}OjPY9bqMyKNDQ zNvIL*&XP5>Djnx3a~Pw@Hj({5Ez?lI{+FELtQX`gHkxx zC{esWQm4nP!&#d+XBN+wONOLm@Ox#FR-(=i+K}-aFU9k_UdP^2 znZrANNpZ$qUe@ACG*O=t1>z-_KvEe8nnPY`47Hg(9dXA>P`DIfB7PXoc(r2v_W(a$ z186$X=a2`qwfa~PPSh7?KEavFNpanArq&hjuXOy@D}x8p2AJ~=?)o^QqO)$D6^A#Y zu8eySYVm?^P5_=rQD5e$kXqd^k9qSSJ94#QnIDa)l1e2ORua8VZXYp>J4iOLjuy^) z@t~U4Z4&UP6t>Iu_~+e`;Z+7+o+g^MXvX?Ek@T8*rTS{LPsYgfQ1N)hrG4m>TR$XR zxOAF`jvo&JH}RufA>1Suy^Hg4MNVWly;JcsX!;->1HF~S*PPgn6$)5sgf%E+LwXdx z&N!%vH+R$%+1#g3^p_uz8GPzzcsuWhb~bb}SN>ak>!S_}7<-)A5Jy`KL|_x_E{ZIP-+w}$wy0E&g*i!A*E-j4ip)JgyU!zm=d#o5BziOzgV z-NNo)h4U+V5P;zyi)4&64euLk|1Udce>LhlPCFsVHbyiOeJMLZ_|0v%>8+?;E0zsgH$HcsKi9M?zDZ7GrdHuUb9$V;wll16VZt9 z#OKm*6rwYI9Dcps?YRQj-FX@HX4HUz73q!@C2UAE7Icb>n1f6|aws1h%(b8cGf~Ex zIq)KbRl*!PgVYM|^c7-Ls*^F{Do7n>81$v7I`*ZiFKZ8V0uF*25{-*8ft5)&K3Ebe zq*Aj^*rF~iJNCyCESfX75JpBM$5JdF{CHy1m0+Dw3wKm3)rkgRj`+@UXv+4QbY+bO zEviYm;0A&8VmYb)5_V!UkCQ!2{DHpOcl`gjdZ!>wfF)YDZQHh|t!dk~ZCiianzn6Q z)3$Bfw)@WBC*q#FZ#~yrMO0?4%={Lcl*um+3leOfyeZ?!laGyfa- zpq!1p2o5-Clz*IZ#xWj>1z*V-n^yDqC!<|$L4h23!1GyeeYGAo!^Rc&K+e_k8B|A2 z7^>lc4$wb3s0F;aHZW+8mfs7Q{uJp({Xi-N{>DF0`3MmE1gOz_{uVxWiF{B#|1AhC ztCzoPaaL9PMth{cn7K)gjp!x4+7MvmTDqC4Xertg@O;ViMBaAo9cCgA9ZHV4jf|cEq@H zMK>Gs8{>3!n4Zbv7z_4|^b0|ko1}Ab{ZT{}K-e1`G$nrUL`kB1(!KeW; zNoZrl+x!dwq1U~oZ&iSa0C}=|-if)k9kjs2);XI#iR>l9%sd{~Zv=xOa$DVTsiQlM zPnybku&r$~@E}w5sT3)O*|pd~acU>KZkn04xqRkc11%^~WtTqQ90yRHVx_Yx|54Hm z+GaWeSMDLDBI71~7x8YX`DadTm;HY(M_8!_=0*ATF{ZJ#`2RZVz9wA_^!)b_`Mx-= zwmng?j(@*)`?AB_2{yaEf4&Dk79#BsMMa@qV3^(`Y1|K+5i39On0J`wdCtW6tr4fFK+&VV|C+cQ1#!a5mo7eEVy@)F6_Y)KVn@ul{Ngs8`VoC=}-XL;vQ|) zbw=X|Jv-9Iod1wq_=a6?;Y)_ZlR-s~R{)2OuT|)5>nO^*ZKR8I%ABX@`jY`To-?BZ(FzE1RI{ceOfA0B^KLVv`+NdxSVKus5qzGh zcpqx6^hDf580FP_El#XL&jmEzQxy?n87xKiHK>LHjXK@#t-)(_q+S~R_Bk*J-d4he zOD;6`G#Nl^5q1}MZc|So6~f$7vn(D-Rc2XVO0y`)(hia1+^ZJ8+3$^o z9^@?OX4A5E;}*0{pPi@T%y6vV!~`=FnvRhhZqsl2NzOJ~#vA-)xPYfxS_=K*sRtRk z-3j8Yv&GBzZA9Gh5==GTHst35qDKhXoVGi&d%b3M)d#T^OvKCF)4VYB3P|DLVVk+q z0kqr8O{=Nlm;%|!D=k1F*|Ued;0~~?S2Un{BvtEGCX6?^-@J270&i}k`W~dmrRbHW zsWY|#Dy(}Vd2Uc9fMYs@xopd>)sLkqT5Kh!$`*Wp!R`g9o{z3+ca8}DKG;r13%*e8 zb-Qp)zlT87+|1B#Wxd(7#Zr+%m5 zlX2k9d5){I+tq*keS6gJV+mbo$MfVHE_=$GE^$7*2&{v-erN?Q@V(xH?3#E z%gNYWIhG;M5wgdlKkHxKFE_xpdwZ9UXNWvOnynnfq}l`^_oGj?_E!dg$J@gqh#!GG z{8#6NCu6+#6!!)Xs04qTSP1>ewIXxBS6&v%Enw{ANhSIIdgEc8ks8da^td|;y|C3L zdhY=Dg@DirRiyS``P9Z?b~jc0o7NB!^{D@z(HYTSB}v$jV&S=IM=*D!@GQJ{3wSy8 zxoyXfzYQJDb9y8D?i2zLPt{_yBGv=CA~@~U&YY_DNIOr2HA($|m*+@`1JzFzDG8)a z+%k!!YCr~+Eiow&%$76fhzTK@>eAa|&Cf27UM(N6)1vlgd)(S1!Wh-8%tIDQ`@1*{ zz5rbnLTo?8`sdyejHU`))q?AqTPdXu#vpR6pX`_0MJO{Z!g4)eyJPK}5Tfwq3Ya?+ zo@e3PqHP7<#a4=W7NQ(J1FPu(9-V>P37@+9OoY8S;Dw)|(SV){NDs<5F-&_bFeOoG}4Ds-D{Mr zrAMu*mGDQc35X5B*134A{kivWp(;y!HMY4hX<9&BDCtke^XuZXP6}&B?Dr@T)UTrE znfltO{q{69w@n1K2)Dr#v;gkX1C~MAB@Qy2IQd!~O1(osNn+Q+ApOWkThxNkPbK(e zLk3FS=_9t$MOvkC_CR01*npTlTDGNAGlilkOTdA~sYpI$ew?HnKG58X!o zPouoAFYBPY(j#Odoa$&GB}i(&MzC+TTeHOY{zfPkV!Uc{_4KwV_$D`&wr<$`WODUQ z+2Xj3t#2EEk=y&hbe?%$`;lncNI;V;zRQeM9bRcTZx%d+*Bf~o-^Iit60npTG!B|& z()lUc(%c-fk|f4zm(HMO2J3GrtPmO^TaYhXiiiPMt3T1II2+X@`NfK4-V6p6OGfun z0vH|TONR>E4q6nyk}6^egconvVG8%z#|Cg4%ErwAMka0vDvNHYZ0?!ij$0AQi@W>S z;;x6gE)EqkVE#Z8n<4r%l4}0@_M%m&D>(PLEYvCVMQe2qZRe zb5wUvnTCP^N_he!#1mu^)8W{~DuQL98CGk%h;=vRcqqD00M8*M^9ED=ipAK$%Q?C~8f?num@6nflw`euBu+rjQ`2->)Jx@~7>3SZ%7wLqK%Q$Qj~##wTFKny z+mrQ7-ut-e#g-fQW%QXjJ=Xi`AvB;yfKl}tY((eL8!-hyz^Q@y0xkuFnQr*vvv^gX zvYVU=FUg?(ZxZg4z_P6GZdcY0R>XdY)vFocF5EY<%K^bHyH@;Yo4Ln3*g1LVPAAk| ziIY_zmhovC%%QZ$K}*CQ#@g{*KF2E&a|~=XTTri^=&MIls638HlT5*2Ijr+VH3fR7 zt5G)@{HrCuCCm-V-btepw`}_UC_^PRExOf7{L=r}OoMaK*@G-`qCf9mbstt2q2{*UVXN`@9AJ=eC1F#D_qOA9I>3Rx**h!eEruu7Z?;e`op znR`jieAB+v0Nd03mN3Pamh{);=VXU_7ev=7&cNz&lkm0k9E3K~0n1u_AFY!JUXDoE zU3!xl#p@r@QdPGd_fqse76i1uD?SWB0>Tb;slS;cWoiDsRCY(}aKmq;z$8rUQihV3 z*qKl=45c>to^xURVD#HON^hV1EZ)@`?EO%x${c|!Z(fkd;qGdM}4ouGtSJz9$0;&411UHYiIsLpUk&08(+=X8ag+zRG@j+R0}n#B?H?d)}RX z%T(Ik@J!a@NX^#)VvEltF1&+Z$H7t<{QIR1UA{W-J=G5=)Bn|?b->FVsiqZf12;*j zc#ApfhN=p7Clz#tIOI3(sekW2f1H90l3T$gA{&CqY`D6u3nq2q`kNSF!8}pAd$F2k zkf4PmE3~x(c*du;&3ayV_UD}z$x+YH!qUG=La)cdHnZT`jy1QEP%)P^q~^H)-oQRJ zGEv*(`LplXAi_|BT~^W)Y`T)erR{TRZ+(Rds%~p`vnkRzBF_X3Ohvk9M7r8Vg?J)P z_yq-Fy@s(T$Aa-fV2lr7aCQrPhh~YCy5RUTFq-9anJa7PMjmSmb*y(Xr zOfZcr^PbKAj7^8UPJRTR!U{eU0HLh%f9|+p$>l!ux=&h`A&5<$NWA zqf`U_f3>{w118r0VaOVo!)O^P5#amLwmXg|Fiyt@Bm(TUKmV%tp()a`fbLsiN+WR!q1~UYiBtytK-!U7O&r*x;Q*O`a9aTHV(Pm(Q68 z6eC0cfNf9_E;>`zIkP@GvqUDC6f==-P*$C5^+VlTfJ{#vd^T<_exg_~pjA1qfkfF8 zAGQ~nM?gQ`M8_a%orfIjqGJ0d-r2S&P9Xu`DEJRDmst*+Imc(e{ggj8vhuS@`&^2H z6UP%M-UCoP!zcQat(W{C$drf8tlDm4WNR*cg+n5h-iUIBGJl6(T@-Z}A;>69{=aeh zki@ar0qY-@CovUIOPE2OPJRQb(~Gg}@1$gmkcF7%{#kON_+9)s*S%~{zODVfC6|o{ zM^|Xo?N+;gwTzKOS`a#>LBjmAb=5tYH6lFo4?xX4e!Hfd&$ZkC!kQ$=*hsreo#P{m z%DVS#Zyh$;vwJl@xG(mwH9L5ocP%H9lpC#90if>w26?=uXMPN7-{aoVKzLu)1>Rka ze0;a?mC5_$a)W1D|`Op#l@RvY|2SZCk8+Ailxrw7PS!cOX zJ)EZwcm$mt8HO^2vi;a9b(H%F*+T`-%<{+*&EM>>s>9Ck#*7D&>1rjN{Ce+*Dm-Qu zB>*#}O#&{;xLHFd4m=7|xCKEyJcr3It?p5Cu~A_nF3A<1xG^~icze=(j6D|Ja3l8q zkp&hR4m$zQ_#}uX7VL{c78pT?)nfBPyV@@FD2;A^3hnm8acGipv-v#<9%aZY6>RJ` zLVhy3@_-4+*@4*{3|3f4`-`1{$P%c#5odHO3#{oy1|r+Wa%|Y?KjO zxTaY+8m{6+Hw&SJh@yyBVJCM*SPGglsv&mCmFgHuqPZMuCDz0oaGe({)Ma{~v|#lP z1i-Ft6GU;UfG|#d6!yOHZaL`UZvhUwj`$9Z{h~B~Tm-f8cbKxHih93=%*MyAmb;FOTX?#LX&>$16q%lA4?H+>R;&W0Lw9KuNpW_m@{ z3_y%Tz;q}EZ3i*MO2m**R$h8~DPe^@TAch0f~*+=rbf^L;i$@%LTgKd17FS0U)g** z3kSxqJG*>&j>-R)W#KF4Is3%a;faARD^`Nv%QPYWN)9S4cY z>4(?o1`^Cb1FgA0KRq!9 z7V>;6+#dgk@jo^xCIZlQgfQ03YumrZ>td$8Ga|L!E8PA{6w7=dnHaekR|_xoz0o#n z_VuN(V!p^LeI+S@sGmJYum9sy8OhPf_Wa?Db;->8E1@jY(o8TD4Gvo$cu<@r?!#y; zfV{F==U-(ui3&Z87<}N&P!FRCMrWc&b~DtPDpHPm)VT>mIt|!M(PF%RoW1+OE%?OEsxgM@ixXyil5^qRQbpBEhs}7WBjGNA_kn8hBr-{2N*m+8LiQ0{dr?Uu1Tjzx2ShegScs0<;Uj z=kc?WMI~XUK@6fK~3wrt49zPE^5EQQO#M%6Ls;CO$31Qi);dNSQ?l_r?D4*W+1s)L<@IMWT*g zSevetUPI3@E@kY=-YuFM^}OlE;|R-J@`|D8gH*qlAoQjx5V(S4VJQt~O{2W^N8gx%4lgFb;!GjeY3jzqKwBc%#6&5xEy}Td z3-6u8L(tq0%KEBcB)*Na;Tu_bZ~6D#fQ%Z1C)&f!I=V}8dCexHwjJXKYSsvc#MVbV zL}n2FfaU~(hsoFR*ZSbbUE5=>+Y9=>`%JPW$6QcWVw)j5ho~l{!d~NZcn82BAVE+r z0pKeve${zCx6<{31fuuM(@9P#SeOPBt#7*~Rv(Pnb2kvCVtMbK=je0eC}YGHl#5MG z;2C-AAs5m*5_iq-N5rU>6->(1v=qgAc;nCCuFttLJpP0b{hZzo&Jorf0hs#AFw{ZV;p;Zj~S0hK?$Hd>7!Vb*?VWL z+W>W@^2p9`sC<3VgJOg$xmJe2d(yvpPj)tGyV~RIwJsJGd^2z6wP3IanCcg8521eD zZQeK7g=3}Jd=TLt0caxL4k-Uea#Jgg;!Pj_C$x?KQ_}u#RtpPAR@1d#XF~I>9R#!) zG2%uVcyCWANobQvDL{RAG{{`~vl)xmD@T@mzvza=2@uC?frb0}T;KhEmi5Y(yFlQ+ zB}GpN@*$=xwKhs4i_kM&hnn~+9p<23>$=kML8dh10aKW3g7nri>cT|wb?b>D7v?CC zgXCW*bjRHrJD>3b?qf;tLRTGMTbGbnx@8LLX_KA=S9_v0?EXgE5~h17&jY?EL; zX~L*WCUK1or43n@;(quBTUAy+cNcCsj%DQ89zUu*F(VJ)q^A`@27 zNQ(lWP8s19A5A#NQg`#`p&p@9M@>T3>YKc6ijOz4Xe^ScjZw~rrLAAYLPV+9WFBdp zI}Icn6!cN(y!xH^fZ(c$JjL8jEzkOTEnO;rs=W&UL3nQTReBj?bgpQj;~GH@Iiuwa zN4rcQjqQ-Ol>!xXoQ7L>NjnvkD&EV(_n?Q{N#1W?ZZHF#-a3BuVK&o`5Cwj{$X79? zyQE3HsEPi|)b=ud^#}LL$H_GRq~ip|ol?_s*s-qTPOe0ygbn&l&ywq=sP+C*+7m~= z$$-r~LRgScQhUh9)^($-rfBeQ%v`%7=i}x)Ed)Ci50OUVp{`8nL{FiH_lWxhBZsu+ zTF#drnjW>0>&y?wscVHh&>;Rc@beFn!h_u2?9cxeb!sU#a2~h++&@31|05lf{&WAt zvvxiZx#VH_3r89gBY{l_!DKVLVXlL2_dDB$ z=eb_G%I2}r$AoY;`=f}Zaysa?^75%k z?d!e)ECP{2l3~*bH{2Ioq}g!Ka!)HTK>XqcU$p0L6m+QwoNz$yp<3Ia+ZhDPz1cr6reYsH521HjQ=bAsD~0ll`& zAQ0`!by9V_e5%WrxDbvY13%pAD-xcR?D=4WGb}hntwR*tC-fE`loJ=l+M$kY62NsL zI&xCA>&UHC{kAN!$cW~!+_%6iYm~^H8oMf zqz<(oclGMCu5mDL0DM`KnUl(d?7BM&v&gm=V{TX&b?|5yc2DEwb@vh+faP+0r?R$C zE1$na01tu*ng&;^W^mlr2exjfBG%PVsv0{{KEprr(##hTTAJm`Oaa^%M(4POc2k(} z(($GlufT)8_*bZd=Qw{bGb#?`HQn%7XqNF%9pJ zt5%}JvSn;11}<;6f1+5XxC8n$_;Au2zP3@|9-JV~H;Mq}Itw4hTm?}g4y06&QUFAr z5=s?m@HL?VpsRQ@N7vsv3v_aoSUj+7s;q%t8v^9i(jNp2jN06~ry0cO=K4J&DAme{ zYr!XFfyjBqklk6`GCsO%vQdH1p(Yj$naS?9O&$FlKv#lZCns*hC&aur=ruxQ6~)vn zL&sXSzgvu2riWr!;|b9sRgg#qMc1p^pV_C1BCr4gP+k=@KXvnFM5lSqL;FhQ%n2HJ zm=oYkni%N(SPHI@O7VztL7@Z^7uOVjClV(*pyix4!)WB#xXb|Gb4e-hUg)SSEedfF zR0TC6OjT#*bzUzeUD z82mn$+PIl8(x7ET{d}b0P1$B7L~7u~499$(*drpi{HyC(wr9&wzNLm% z26mR)MU<+DN=6T)GW>AyShqt2&V70hJg>?$sjZ|NB0qbgwuxP1RugMNr>0m&Ks0Ux z@B?$f`E$Ih0U>wb0e(*u*Tf{u{urg!w1`2j;Bq`+V|=%DwFbT6a~kq1@AS9LctxjbAu#znM*W46k) zQJ(0s{_cYlhZ88GMo{fgv>N{Vhq_;s?oC$xRUT}13H6Pz2_gd5q3n`s7T1aCa2h7r4%g%e%Nj%$L+&w7vqhP^?=MXhBEBB$S$SR$akh!%ei=hz=-hePmRwid! zhIxd!T{L)x;k6Q46r7Q$Np!ZT05LS&XHOP1$Lg5RDgeO4F}PsWqUW*+n7BAj_FlMT ztL47JORj#iQjiIh1Pbxv?;RvW=sW~l`E=Y*-J{pz_(r8>POtXf&Vh4xo424EHi*Y_n2_`cksffNqs}VTldh!15>f{ZHTjO7PM<&?; z)IPC5HSQ#SF{St|`jtq}X^_YZYti+=tB(ynC^{-V5B`>jQqzG{*LU)l?zP*C)?^RH z#ZLA6>&)W?TLnRDAl*2curRYvM|)RQ?0A#{D{q$(>nY! zG{fIS79?eA<1HVdE*bQsr07s?F+O#6vC7bg3@y;5y%w{s(+Y|8xFFXOVp@q8oEhoE zs3CI~DURH2!Ee!=3slESj0MCKT{fU)jT1^3r7KdMq=7OC$YP`UH{BXkJ2MK`y$t}U zf2J6m;)lR?lybACmsWTOPkz?*`4l8Q$IXj={g(OIu`HSu{QbJKEWoBK8%X6(6%OOp z`W5*Bpr;cKQV#Wkoux38+81pK;BR=16*5u>PbDxBD!?`oZP4ia?J-BQYe5CU4L9d0 z%FDc5#&dWGh}pECJAn8yBC1wpJ4f%|S=T&JD~Uk-BfxfWoWEvu88x{i{_9z^VOhvL3Fk@Wni&iFX@IlTvJV z`!F6=MT#GxH`eM-!joby^6s&05eP#!bSUk6L~Z*c+*(*vjCS)I>Y3bY%W`WNt7AS< zNFziaH}00hJ#ZB$fR&y6Dzn;6Xf<0{P7XtmNp9|JGsrno@DYh^Z*H60U%4O*$U9F( zK+{YUz@OysiS3od8o46qp9Le9DE z*&NDG85XoViNC<)8*4YGi*-sy-L=@qub45`ocj@?H&ncGh%E7tlW<}sGW61FkM=X( zS< zmM9x>%{L>2RiM*23gLBFM=p zH^aX}#)6CBMAy|6JZ(?997u%}Z|iiHu>Ws~N&C!iBp+9`Fw5`C0O7Y3n={l|AT)38 z8F^!L#wS7=gCR(VPW5%dZeZY`2K>qh`xVF%kPoxNb)__1Mpg~Rp(%=dfa#dv?5UXMBOxrtrm{zm zq3>)b$v>BhiO=v6lzBW#tfk$!bPgAGUB=aR9(_&|GghDIjTyM=s;e?tbl**dz`&q_ z7tq@YmJ%4XOEa1lL@=kO3kvuRPp)eCq=t=XlFp`6Jp^dx#R_N>t)VIHWZhZUF}A6DFAfjntWFr;a*aBG8KGlX3NQiif6H$#wrPW?AJaD~doMQ-+K(pHbgkzL6(+pxScxh$&Z z>2fO3Q>4AtY+`m7p_;~s--d5^g8X#jl%5nNK3cN{Q5ntKrv3@fRlo7tr!F=yr}$$F z_+nuA&fB=#6^?yxUYMk~44N!OZz%!#)cP`l;ARx0l{BwJm;XSz)vw#B1Hx~elxinb4B`Uj$WE{5qPeq;nS z`hf^;wO$F;nYOiW#YCf8jNYyO?MqE6-&ROvuv9E%Rn5%$dH015B=UB3XjvymD z^w|y9n-Vn&LmEFuuJe?xH18kfpX^|-cGo*2KGfxMVn$+e54%}_Q+U=x{2$%iVOjx) zo&Ac9g6R+*oNJTNbpu!8aQ<>WoZnT=?(aclSJ_k2qUi6`k;FjSbjT+HVy55LT4~T< z2>+{*sdQj->;MA+^@0CKE+7Xa?ZjmWAdT$EeiE`j7n6%5JkPOGt6Iyp4ZIf0=2C24 zE3k{U(M5GxJO6x40p)l_zB}L|r`=qdo4bYG;gxP6$G)Ompow+>n-=sal%YMoyYm~y zFxGCIxow|uDq}_MLPj5d%WFh~q;1RW@<^JjVCN)cr1K&RY?qq$skZ`x5HVyayasY! z>W&s~J=$eTiiPGbUVgtTYBA3k&0;fR7k?G0i>n?r zXhj<`YdcPw_@>LuFT+h`Fg>Iu%~gVD$Xe&|SOQq+O|@~ru*bm09x_D459}8<8a=PE zs^gDp*U|(alZ>N%JH-KfdHoqm>no-}&|)y~8hlhn34RvcQ80LmC^yS^5r(I6HuBYV zeZ{Yog0D-6gEj;V!g2>P2yEvMV~X`Y#k@fmK0zc5ES9c0=ww+r4M)uf7#8IT422Ad z6!u~;wode?3^NOb&XNxjwil0I-Beeg8e0C>*WXngX?uu#YUY6P`0+Tn8mdSBA`XnV zxnc(f1W7~f`mtsbDZ?V#)1a@%KTP!z%TQYFs=o9WMCDi__&2VvEkY)8U!R5!Lzu1y zh$nk%TAOYxdt6~xA%iJquOi)lLnZv+_kr9Nb=GdM|M&UP!mHdV{xNW{F@b=H{>?9@ znmk})18fY9Ol=s9yEHDG{wWHlFa9&-ij|lr3HF2(vv7!wNYlWK)?G6_Fz(-YllN8!l0Y$H{t6rJB|n*5m}(uGA+S8^fKg$-d*g0Y3seu1Y_4Ki@| z(KblbpJ~L#xgYdydZL&Ew}XPdA9I4g6WiIlGjs&;bk&$%qA_<7xC+c>BsE|qP_7OU z0LCRc9H8ETEj;>hD_B}LK0}?I?WRCR$ilyJoRGk{NYT!Rkb$+}>jg$IkSODHe{KHiQcA9Jq_buIi~sF`%<-rGI^$D#&nCw?NfgHVmw? z=EHOlR9uZ5w{7@rXsbUX7OdL03=j060G!rvyKSFmhnDi#t`H!-O|}LDv~6&Gdar6n zJ;SQfau1{Oodj1X9Lx}e`)Uo{CW zRCxH*8@=Z-(gYR`oZsCl#);(0Y+h-{m=;wi5f0E!FV#s_qk6&gLhiduu53B202yD` zd67zRy5w5oS+pV#&dIfu=2`=B*}wA8_0GLRA=JC{lF{h_RMPeymVQ>Tkm$>PE{}S@ zcogG*)r2i64>i}!R%=*x1&XkmgP4pshMQ3^6|le$f;)&}%*{6t>tUFNn zukUFZhOWR_E@sq3rKsV6&%xD&176cQQqKv8nvyX8XiH>gbPL)2}N1eljHK9vmVl5wPHR^|=p--xqD=ck=rj96tS^ssVId0K`bz2QF7R z-M^vfzE6*LCt+gw-qo8}-pd*d&d3MX=+2~!Z7J!C&1mn4`){hR&!sXaP%3$+O^rOL*n2;xsi2#!P zEAScAgcZdw_E5Tj`7$<@k&1AcJlTt)NWX6pBeOAc73b86$gL;}z(tJ;BQQr}X0y_J z|9tOA-z4QJ)|lqTc%7uAYFg4eKBkq?gkSlya=ZSw0Su0h=d*GZIMR#EtP9)hn08GU z%EZ@1tM=6!!vnLfVp|$P+8%ruSKy^sJtXABC9aceFo@FaJE-#L$qpL!R2*qDl8I;^ zhA<&$g^T!F&)8TYAeMW%m(ioBAw)&BoaS(LCizz^QM=_$FxxBAswVe@`&m?VsS+DR zO*N$oGGJ@;iGVK6a{}|jLa>?o#~*lVuoTX~&2M-1>u*1;T)9ae-D|9IZGl-uQWYls zBQI)Bx@!^9PqE|2tF*Fr9jvl&KrD&lrdqU?#D81c`^pnRe}%?;A~& zj+enG_M`+ow7wALubS1*J8Z<@u{4h)O|P8-8(g!uL`gHYzZ5aENTTSuCPHv{YHxZx zozTp5E_T?g=ykk4QdQwpip4KQ5=@494?biNQ!gBwE7>UqrD$@eAO`#+;NS{XqOCvr zWBYZVC^}02a+YZ(L9VJAQDKt(EU;;+7U;Cn7!Wh-M|Bx3Nt9z79XjTn@kNerG3YbT zM10J$03O_gzSwPuonKc-o%Ykln4o$zl0Bi{hg|#1{$#em{I|(M30jH}VFO%4{<`%i zrUlpkY@`!aRTLT2zH;%qJKwV<^SoJftW3%i`x&2j0Qo^vziG{4C8e!l+D3(`OXN5p z!7FQX@{N;?Z(D$;S9;%YICsDXhy%|@M{rqt1Rh}N{Q@J(E?Zgi-{a-c6)7MDLwO% zsq@AA0k=<_OxO5Nkjx@aXPxv*IOtA)f98XC_VK(d?-6UW4qZpo_HJKP)QAG51FaXY z;zAEBotb?7#ZoTjNo!)pP(T9m^fweVn>aC%zZ9UWm|o>bQ-&-e@?Y(lNSNSIWTHF~ z&~fPvXeajy6~y5O>u#u*JLOe=O0u;fFo#{;)D**~51Z{O*SuDK@w?RQ`5iQDFf)b* zm3yxJCFr8PEfWSJM5DsR$D`^vr51pALJsD-?Zv&ooKpGG|KIT18hax&_-{$L3FTjS z{qJ1ezu4+&>cn8&tfBp%9;9FG;*WvtJQ#lJRl5}%Oump5u;A*^m=tQ528-iinv&X6 z&&?{a9Fb(cE@ptlrE|CQ-JLsL2PWo;`6-AmEEQ?^Zv*`{+^knPSd{SCQi`QkZ$CFb zi2h>h(%Ra&HhV^hWt|um9hgJX7~Ym===WK`nadt1#%}`fG_i#6QPb>OPz{iJptYSl zBfGtgGmsfb_UM$P-waSh7V7Si?GnToX_e`H^?8U-3%eUM$I!`#;OWgpbe@Je?b-#K zJmf*3)|@y!X}x%b7=v$Y%|K=0_gZP~3(jJ`tl6?z5rN*2RX1I0W$wm5s7W2yUSDf~ z!(0Kot1;Obv4Nqsn`nvyQjNdGGO5Vk_sG%$)bva$Ovy1@b;uJ0T4gxHyv@B4D>@$z zz|N`AK<7KhZ)=HSwA_|-{fr$#F_GmZchAhKVY*@FWcLw7AgrQp-o*mzD{CwgsgwA@ z)FHU!z?ih1Ec&$TlgdU8&bGGdkkCYc_m>8xVAzhqd30$KL4_elX%n2tLUG*mhpB=W zf|GtoMkU!!U|lR%aL0PTl5RNM+@_#%{NLzR*q~`R@wY%^WG>j_UP)+SA{XctWF&NB zg*vc-<;)5E{@6s5eN``@l^!37f6q+#oain!__K#5`wM~H%)0J;IMcU$1#|TQn)XA| zJlV)@^W6+&xwWL4U1V!kcoC61(y3zbU8eWDT4s`yx~o282u)z}ZYt%zTnsJ0W#PvA z+8lMbCyRv}t3pKe+v7BD;n9-e>L>PR>1jIY2<~WNd={o7T;?~on93e_t`o(IE9vPG zig*b&Wg*nORyyg3mTWTBTu(g#!0wDNk8|dO=;0Jp`zW?;ud;>Yk>GI=1{)Ysoa;z~ zgyE}DW#DAOuO&wX{UM$ZPgjn^0ihk})9`sYGDX891G~eC_03V$Rom*P;7g3h3v~5+ z@yzT&Yz*OXm@QkKK8@Dzc8s1tbrbPsrpZj4l;!vVL}#AQt}#WHT!z+wf*JKw>+_OO z*_CTQd@4VsBNa($a`3ph*EF#TQYaO}rjfH5tLp&eo&x>NN|~=73K(peBH;W=@@LeU zGzG+)Wu6~(Mju;wxuf6d8B2>M#}>0?Hr2T@l=a>{RoDdUUD}&BF?T+WELgsT@KqFE z%;oG`SBNLHbZ^&3eU+yG#~R4!2kMt1)BEjiwRNU+#KFga2^;y}H|r$QqZ=}n6+VBj zIFJhX0+TdA8!(xW=% zj%Z)pX*h#$oWDN_>Mq|&T!-S)V*}$Sw?$8fJzHe3r=vC&WDX;XJxY>*?{sIQ?!?T+ zHm9&RrK}r7*D(x(34c-6c~|Jn3vM}2D?kMv2d|D>>A|);PPSMY=K96cgPbaRH9%Hy zq)Vk5ju;c`_qEU2D;REHJ8g3|bzG!duDGHW6yBJ8y%^Zn?usmqe%e&#KR+F)JOBM! zuToMFT#U%=;c@h4ZdhoCyU^R)1+w^rO z)umajN))uX{cq{aZ+A(?*a9X2WUpNzkOb>V*0;V;$*O>hj}XLnN`xS$He_DoUd8v2 z(x4Z`Nd4>?E)fVe{fI|_XiEn5VSYm(Tv%>lK(-#_7dM!Rj6+;Z;eu)f&GLpg|GRDWKCVO z!>!e%t*;}MHEH{BRHlpmUZ_trWtfE0c6Ex-sHWGW|IwKK#nL2o5Th0Xw^^*RQOTyZ zjQuPOF9P~Y!_lsHdzlDb^^a*uk_as1Ki*=I&PIc0bk{fl(>cQ6jQ}v!%i7o-drfh$mS(Au zzg@0z!;|QDGPN6*x5{#Pnt1n{$k0SAR<(djDinjBcsncRDeY6Uuu@G0~IN6KDJxgM<6?K0t z7zL)Z9B*49Zz9#HI_=M2_SvBhoo+Dc%bKIljG33SuiujkAKn4xADJ@@$Os|66pF9O zVmNRDFVzrbsl62eH5aG95-Po0I!-EG0}km}1Dv48Keho442t>%Y7dgxm_@IWtESMv zJ@mZ@C+661GWO89^&Vy>UMo@{#0L16D}KvD>K5TQ@4sX;o%$(v50#U`B1@uaMN!6& z5)=*zck#OZ+$M-ED7X4WWU0~4?jWROhE=Eoe_jDSh7&_nOfG)(uTz4!UzV* zHs>kTHJJmz3ZMi1CAl_`iavoINqqYIuYkl=7^vT2P1@yv9%TwR$Jao1LP^gS>&UoE z;0Gg4qwu_QFGK=VDuFg=GoTGLPzv-1OQ(n&Ug~$>77W<; zLt<}!4fsbf=-<<#fuKb{cspB;&UZrqD5OV}8Ds#_M32&kNM*UioHm`$wjh~GqI@Qh za&1UfQfFSnx*a#~XquPG(37S8*LNb7j$E%;ulF}}vq>T(Yn+F(t!&64F<9M_M+Vf8 zx!5Aec?S@*ETFyVAHbtIuubt=bPQ>Kwcx=3I7w2fne%*}biPH$VOd88JP8i-<5Rl0 z{}jnj%+G9vOD<7in1#)Xz4Q2l*VrXT6Xazt7K|$q0dOrH9<+IBGW6(*dzeAxvHq3$ zVre66eU1`bt4JsWDB8ujncRYK{x-qtqH$A3L5EBPbIRz_&X@5tg8SCeYe;Y7RPIEN zzZ6xaB9;zZt7YRyH7qC+YxXN~MTDux9tZA!x2`=| z_RVFNi6a~;i%n}1_v?$?{WTMN;smG=w;%o=uFfe)vtZlSW!tuGTV1wocG>*Pw(Y7e z+qP|6UAA$1?-Ow&&Usib87m@RR%Fhx=9u4DmFO<&WxwS;L?v*u``{tyv(bp;`Ac*l zY)y&qoJDren)Ufl+2Z@8%`&Y;OPr~lgj{h)&F5jWfIu3Q>}=;&wiSQ{PNPb2eYWlZ zy0?C%z{}|V;kK!-MCX}?a29r7c=P8DzjNfs!)oKqh2w36kgj%h*-n>d#=2Zd&v9@x z%~iQLPe7O|o->5@wUa`#xQedDV4u*1e?h7|Q1UD2GJ@s{{*<#rlfN|wVrIs3kMU5Q zsE5@*!qmoIT&Y=|1W*9Gxh62UF)&jDoJ5Y^Zndu$8Dm?;fS*7`^ipjFHc*ZLq%JZA zLHvfQ5UY8Fc1r}MCpu8DnOD45QH>{cV`cq-I zhFre2Ix&qg1h~!aPUM)T^5aQL+)JL2Z{-G>9AsHO1$1p%q5l^fcm+dJ1=HEO9))x%Ya%`owza*XHHs z^Sqz65eV;qwum}Mm0#_eD9_aURT18xjg<0Q|r^qt@E=zyn$2X*+ep6^bxuydb7Wh;_XYGn`mV0Of6 ze#KS&GR3qN38Y`tP8{UAb!bK?!)2aQxu3f*KpgqCn9qffh_!3~E|hHcrk7bh&kUjG zQltoGVTjq`$t)P zt_#SIwj7FFgNukDRfUv7+Gtww+bWnH9RD+eq&GXFXTpR{_!QNy;;PO@-B^gv$w;}t z-cEo*JHXMbjFd%%blY#V7v&>{yEk260qP&+4um0{O1Lbq;0FV~IR=DA^(>|q;v0t0t)azzSLb0e{#g|HK!V73Jjxm1hSX2l(4 zP8?4*kSIqMgZLbwJr4NykFbX{c?1L*H zA}b07Hj;0cb53idUSb1AUr#Hy^CUi#Cv;YM=SOY5L8GJ_dIu>;y>aPtTfB$v)Qrq=n*Muez>QUfBf|?DTdn z&-h_TkWo`xKQa|r_Q$=a;RcqguqbQX#qhCy{>OakQGnp_c4_V-2U+zS<8xvoCy|Qz zYn-%)ALe)Acx5=~UM${=M3TNiba4%!V-$@KRm=4Tew@aGDBg>H9VGOl8$~JiLa`z| z6r(d#6JW!xC^OU=CQ^c&gsC9X=Zu{i$roUOx(MGzB!=-(srkxQfQ-5)W!Iyj@emRZ zObpOC%|I2+Romfe!=C6DK{#0k!?*8da|Ywa40Nrjb6HbEaSL*-x(mX+=LQDYSnnp% zouJkOKAlB`rZ3c6^azOJW!IJemBTUOJP~*xP)k*UBaOm#RI9%tEuYh zY=_(oQ^s|Y637h^feV|`tJRvC4)(n#h~;vN8B?<5mhv>!vkHULW*3I$_AhJS#SC)f zWI5=6kF<4e7Ps$Gnp@qJXbq#{K z>&;a|GuMNVNR_~I9$G8^QOTH-&uY&fxxLO6g$+lW8$#_c{08(mXSnH(T5*Jn+My;m zCDvG06>?S_CSyofZNQ@4IcCL}A4-$4oIu~5HgP`Zo)w=iI`CyLLe2>xC9Ya8>u*U@ z(<)a2?yNXoJNKm%)my~{`uol3P#!yG993QIjJeL=8}$K!w66QcJmbo^&I{J9dauG3 zbZOA&C@Kjppk*HsKcBGSs=P&g2S;2%#(5fgib?DcD3sE9lO8 zt!h_$31es6S}n4JW%C9F{1K=|u^yBh_%Lh%$z~@XZ-;Ggcyo5fnK*pprfJ)KfUx{w z8hNcDj4qW4t{SU$gjl+TN$r4Rtppn*F$Nn~)N&2GGnt{(mNGnyiuTYU32|l0_KAF1 zTKKXHnPGQ^7~4Ha_gsYmM<#d&FAE8cLOW}d!TW! z&me*NFN0*6(?zKT8wjYg@PC9^7cUkR;KTV|?AG1lldv!rUHko!Id+YvMHAcRucAQS z;SicggmNGmRN2?=cK5IAj3bXG?Uc73k?Z=_*4EB{k309)w(l3a{pyDcQjCcGW7cjS zgtOq^xKFD!8APx2h#y1)z}3@ge%+nX)A%1(U%#jGLeD7bR7CK5b++pm^RGF8_ru;E z(zkF{w+G*Ckt2@$X#bhvD+N8rZB5U!!8XU&WR}MF)o_YZhLH?Yh&Ffo{GhMj2~`{H zueWtX;rplz*dMPuwqWJCN5cyAcq=ZMA|>VcywE5Y4)`zqIowe2W3PYKF8RWye7OE* zB3`MW9mel%OZDIzD$UUJ8RqreRt!`Eiki08%og11I!E^N=o zwj64v;$9Yf@uU=#t%np(&Xe*DA{Bhzy!{%kwAxRa19Ve+oR{Bu!i|@D8RqDs0GUFN zADhh7BiTED@X{}Z6Skl0+&o{?Z3=fD4+O5X|2cFn zA*|^i9tE}26zlQu?O7?x!fHB8!XyD*b`Z$vpq~g@1vck8-<-=VJ$d57wsqb%$D1?9 ztu@9;homV#a-r<>3*#5SH;&EI9kDI;z)F1H^Y4HHFptkFUpjGOGO2u`)G3M#0lKl zfC;2}F^}xQY}lojWZ@7WDP(O3nHtlka06!~#pVbi+AwYpd(j| zS0xdQZ&2i`fke=%l; z`JZ?~dF=H>nDjfpFtQL8A#Z5_2toRM$qG}ki5j*y4D26eNIZ?>1gWv+Q$r3M^p_&c z1Da#*j{0GJ&1wyRg5NoCF_5ff5HcxYY9;No^zIUv9d+lwz5TY&nsD;; z&@*yN@^2s14!af^fJj!FS`Aw4K4&*_qRjsUK7?ox8+=$0CpVR;cgHErht2m`y&5#v zbPN7GE|ENxbepTkl z8g9Kq9gIyyLq_!aM|yh7Bx)>oF1%MbuB&>B*op{dJl9P;RaVljpeIL~OMiZGfXLmBxZsf7obj=#*<+g$U%~cqq#h4m^MNLNlLn$QHZ9qWN)DeOT-LwW7>c z)>ZJ}hORN(5&I_}2{b`@_<$$tnpBUiN8nMui~pugdv*_|3jt%4;2w;JoyN&}dh;|M ztmwvQ7>|omor{v)o}5XBmPZDF%QGqRpA~<3==5LAEDe&?>}{cFa7dfa_k0k9(5o=5v7CPKWsNMWoES`w1 zOV))&+i0-mNBMK0$SSgYwgQ~_wT>i)(oSYL5>f`nX-`T09h2QEveL%E)w2J9~5)K66yzni1CPp96+RCJwbI^g<~Lak-*b>#~Rt~?kaC7%165>Wuv zKa6%2GZD%KK>|rF`a4=mOI2Iq1q@lc`b%Wbb3H*4*%nMK1M-Dq1^1={kUc5_5#N1L ztMXaDj-qkPSMvB}U!l~)#VJ2Ac~RE)A_^2ySN;)^iKGUsGGk70fAcw8p$H81h5%Iz z2uYK}a@nv0}JU~6)wJxP%c^eZTc=-z2~*^8nAb;D@fa9=W*KG zf7ul|uV3;Ya9mI(#%wg8Q`jzNCUU|ReHdk$b;#`WDnym@MGUX1S~7IN!8$mdi`xw* z@84m|UmEmx$xo=10`)FF4Qtq*U@a<*-imL#dy5+@(r4G(i7# zOfue=Z02cB?@Y@zgtGrat&jdC0o%3gGUX@I8zKqKw&;Wq*%*I^2mdx4_nSLj&z|7c z6Nh&`^{O{e2a0yAfSYduN;liW5`SR|8@jbWh#3GrdlhZm29i+&3o_G0qF-pU*3%6P+JyG^Xyvb`PJv_kQQ59 ze(PnI-VKJLy;f~swe)VFAXC-#Mj+ry0T27|1_~MR2hp{iDQf-td7#s7&}a^jvPsY8 z`Mr38=Gig-)|!=3+ehO0G6b8B?%4GD`9OMK4!|`l)ygO$)t;bpW=tt4nPPEQ#@3cj zPIx(>oF~B}7tHSZ>5o$m0QOJ-ip3-j=JD~p6o!7SZ~etfA%G|HNSd4ybnn$)#))ed zDhN{MnJ`rmcRI@idXpy%MzD}5{_uub9sA?jc<2i>vIq zD4MtXk}aoqQRuxM!!)a^*sK8U?DH!6i?-wLUTMJa^u`9qtqXDHxr}nHecaJvNfRtT z_-to)xz1ri#S!r*K9E`wG13;{px3O^7yuWFtReN0{szi=%9EvQAlx*fnxTA*W7uaN z|1yg)>e@J@%uwHyqM1#_)Wt8%$>dSZbc`d@C?NryRhjjIj3xP(msq{D8ZC@dHQ{TU zBd--9Q$vZuI)n4w`DRJi0v1aR3x3JT!nr8Q6<<0MxtGiJ4i!+%b(VXC?g4S?11H(Qjc^Ab>1UR)T8Uld--}EI5SquLBScj0JH+JsY~@ z4K^A7p*`e%oP}Z72rAJ)P*9iAdOZ>x_n*^Q64HWf=}Y(2b_NZdHrx2^!w!khxAEqw z!&j}vVMr6aLx=!n^Vyn5ZQsDE3lKwW&1J*9_6=x;e`uX+|AJ{*?X`5*-fgYzjG-<0 z(?Mh~?5q~Q&N3sFn1&&xk0E*ApqjW`ehiTMevxwWdyYbN3gMzl6KsDn^%lAQ$|yNl zfCj@O_VlJ0}i=2Jh|mER*LDY%1OiG;t{s+Gi)2rBQE9 zmT{Dn_jyW#aufT509<~d&9||{*wVVb+%}SD@?J4?lffOpF7FghOP^4Q%Wo-2vILh$ zPTum?bgSe=voa|MlKy(7$vKlOrPEz8TNFZ^0g@pjA~>eGfxb1TTI34u zGsG1OeM(9PHjP{`H}Z8^zeO37fo$6*-uHVAFS(=w%pb7S1v#W~lW{lG%`{php;S+` za>3rPvYL^+C*lB_4`Vm7-_+f+#d{{=hrL zuK||si!x8?trRsRk~~RQ=gpYnFN7`^U4x{#QwLVf#)r6)hT()DeuflphgnnO+2<`c z#2;eO7Wnosp)E`jd|KBih?JiA+-eR_q;Jo}aua%KKrdW7zz6yz-f=TkH^~bgvqV4q zIHyT}-fph!UM;DvWlatTD&td6evS$4uVr?k>h;tKwlZxYiFWB6!EYkhnXk>8p7$zS zyqC-&rio8GF>*@1;$rrx^2<3LyC#X|;Nw9(zI#XqgbWt+DBuuU6()b+ys-@WwKOYT zoKfc?KscCkMLq2K)v?a~(Z7>tAteZ0V9Y-pO4-A^Dx8APi;fV3Z56C#BvryhW&>-$ zP#n&zcFTLRE#i}6JYA8IYDzw+9NpBbf*X>HX2)vB<9MYg3s-yCN>cfOHo#f65`@~b zyZkJzOtl=!#y2Rq&rpcKRsW!tcsR@mNanXC!2cWREFQS9{vmi>PHdT10GbReV$7J{ zdyFqxG1eQWjBp;wfLxWba{-7IqK{*6qwjEHxG8WSG;xZ~^s0|J2Yz-V6APde2 zV8#!&i}}Z!aE*Wlg+%;N_;>6X!r-cRkmZj2!-_qC`WE?@R}Xfm36IAP6A0!oUCB<2 zqX#1Dw*A?%q&cZ#5vvenjTFpYzsVJ$2Ypuv24ff&*nHUtMFQx0o0-bI+Q-6A>3n-l zmuIXn<)M4{VWGk&g@^KqpL7RSzghD>AZyvH{nu(kKB|)DVr005q3c-f^N6Bu-tfgg>7h!0$4ubzJBlN*0re9w z4Wz8rekf~AMzktSN)jz1uG%{Zz>%0ZR<6U?QvoL-VKYCuoJLncWiQ;r0qO@1UOf zB4QT#iJXt-0-q+j^tZ>|ZyJqBaj%bDPw;%0F+MkA@TOCcF~yk^Juf>ffYts3hmc#e z?0dbBuy87gWm%#NVQ8ov-e?O9r8Rh8jK&%(4OC`$Zc2;L2LlZjeLT$s`w9&$b0f8h z44p&j_WAm2i*)5}@&iXO_CUVISBc= z*sadUcz{ zW0P?Dy+of?*}a<~=u1~{EAsd+K+_8a6zVb>*aobHaQ-l>a6BP3V>Pm*jt;fC7SJeZ zn#$JbC2VEW04|zP<#TIu1Wf~{YN%(pbQYb$TzYZs6ww8uGr4e&B=GdajS<;d?AVDV z@SdpDXgx?bfSN|N`LmvFKEmakxsXv+ao3{0sCy=GC_$}TAzrGf)!66gN@Hq?UnIAp zT252Aqd9_EU&q?z@0Jo&_PTP?%vZ56J#JG)50Hc|j1ZU0ZZM4q&+nTF4ip@T zu1X|j*9`R}7z0hS?%)r?p9yABxyV*(D1NQ82gB}lK;WXNC3=N#OQD7sYTmwb8ry&( z#Ktgm2l_n!txWifVMsb6z$k(*_Al(@ZNAJ}ScS_4$_|>NmuXEJGrpIFcX_ay)>WP{ zd{ou3IkJX^K0WoMG^-GGm^q0~LVUD?))$=p13b2CGuhyB_0a<6|EP`(nLL` z$t)J`Ywr zJ?HhJ2GX$A?To5#~HG1+ab8qf0w zzzHLCfKuNhdXTAXoTY?ZMdp<-OQG{G!J1Px(q!o3SLv?V}dr%ybh0&_Cf=(QA((~Nv>sA!)UfT@+C2pbWAC#R;)yBJUr2CbvyzJ8}|%^30XvOWS3;Ye%=}pLB)ISVP+m_>?0p zm_&CiY2_zK^48w3eC6m$tlZbNQ`RAFYXrOa>czBiBs{b@f+~}vYw_Ns5!rfdS?cGh`ww(V!qm+huKI2y(2~EdMARJZTQ6bt62UY>t}_QDM~Rl}Iq~gwdd{ zV!BD5WpD6Fnc*FgRc459_}z;I*l*&|&Sp{`N5t{I_qa-A%r`%*~FU_Onxl8%FzLtmkISW>aG>lr7U$_(v;# z-0$>x{@MD0Nu9lFwM8pn$#;rR7cE|H=|Xc1%~W(D1nN*j+FPn*_s==~luxF<-?>osmCMVVX7ht>$2)e(vS)8?> z4r{nV?9Mnz}O@*X}e-!4ilvN>Fcad(FG@{e1=QK7|7NYOlv_A#W7k@yZ ztB)KJ0q%|2T*{J{Jp4iGbVb>?NVW$%Tg8d8g@dCY-SHH zk=ZUsq900fE6fNGbJw)b^a_6fzi+`t>==evC(fPQuU03cDIf@~FsG?kjuLe=z(}29 zS1@RhS!x?5ib0y$wuF5y1Knax>D7$dy%ABep=@tEu7mpD751G>$+6?Vt$mqM5KMg@ zg5$|w*T7@Ic`NfkdNc%^1{$id{{ce_QU zw5;-+H@G2BLm*O2rQKJ{+-*>82Jn(je%3bCFG?Q7>W9#sgT0nQp?Yu&aE9tm1X}dy3uJnMp*m+w&WO5qGD*VRX1`H{xfE*A2F?i7Gx`B@)?N$ zU-#VFHu*)99HD{0Vb@&1jo<7{z12={nCznwN-$Q4Mr>Z&s{DBvLcgG7s^O?}H@3h% z75W#z=V#~3yUxZIiio4iZjgXeN3=tkg=?&c=zd^o^lX2Ap7|5>L?2Hsn}`I!6|r?| z`5d1l7w>x=9Y+6Wn~-;~wAy}$iuH0=HY0&ZHo%zBHnWSD(k(9mm6eG#3p~ERQib32U5z zk1-aN5UB<((EMiXBo_j(1Byk00slGx*<(=2*OYzE z)7NlW!InQ5F??UXoB3=Ty4dzb{(^%C*BzI%a&rp5P%yVU zjh)>0S$|OI#oxr_1l_e42PhM1mN(@)%f4bi3YG#eL_p zpf&DgG5Z1Hes0Y=IJ*|0ZZQF-I1gxTTP@Ut&Nehev9-9=g)~jI=n~dqVW_;tOT&Fa zI(8v&S9yvrqn>=q+$*y7v}?V$9yUMIvs&ITZ>g|E>>u*zW2zWnoXS2oV}Ph!HBNUz z$7-CO-NEEpoUW)OkGbv3z3Uyj#_=nGXKy`qTZz3eXio_Hg8wJxaK)r2duLy!uhbyi zRqovaG^`V}?_ByZ9~XoBttwhg+rA!^=!|7uJqq17FW$xppoP_PI*qWrA)2-MsJRhT z#WBu+rQM@4zP-rLk6mJfw4znYcX_B62_@H@$uYrAQtT$UsFzGUQo)MO7#NFrXr4@Y zPT;t9Vfbx0A)f$@Rp1=wF>&;#Q#GwQ^4&W2t(iC!lzQlM|l@$hybm> z~&<(-~7ONVFrDwwCT-ztd1dnl>z0bYnQ3yvf zr3}H>h}Wl>q`~EV23?o8O4yV55%$Apyh=d@_9;o@bfF&c(zei zt`7U+#bw!_5Zu8^e2wT&ppYwiPu+(0nQBSUNE%>5%FHP=DAd_}o&NEIb3>N7>n!{E zcM4)8;uwr0)j8W1)c!99LBe(_p<*2*e)LUORZI$S5pYHvyOUWqQv z1zy@1^l*(pD{v`l(Olt^I|_(1E8w;fV_hhNWg8F#m1w`Ka(1sihOolu z(h0!6dYK|CS`$_J;891V#}Y#F$jl{YB}t1t!jF0%n+Z9kLg;{SfwC~-(ME2L8pS`5 z{UfuOR@c%;(TKxzj9d%3y(;)Y^NE3*?EDcmDb=-hK#DOH%L?IlFC!h`4v(f*1;(eN zo-|6=f33RiYFH-IDOJ;KAxfNGwqwd#Ae^5rB$?r`$YC9oaaC~@X@3!a$7eWc1`tdt zm@c$D*L!w9%MbWJK71qtvQK?bAfO}Iv|S@CdVpn#x~wJibA84I`_xH8o{qDD}{Wl1y(q8c!~44`87r1)T0_0 zJpc&uz+D|&@;OQcP*n&n_(6Ggg4H9xdP?ObBk|l}EPdVd#*odUU7VobGrYnWK!ijvi<2W`q zH7TQI-m8dUQeE411~vgN>@qRK$@iK!hi)MyOyRR%>Qoa#Rn4WPv!#~zdAokw6e^Bd z{ zr^)kC=G6O5vI|}SMT0%1^GDNoxC~#5w93g!FY20?wFpOzFh|3)!=6GKq6-NF_R#ST z^*5fF2_lFV1S}?1Pp}v0j0=;x!J6W;S?C^Duy1`%v}MWL)n9wOp~YlpSxzoGH>ld) z*e)ioa@?L?h=j&_8XzN{nA8d#M1ao`_LQli`U#fYn>1BVog|*Q)g;N)Nk!9cMpxDS z^txOPJ^6mOX(>Bj_b4q-YL&RV2Kan}FC+t*&T` zoPh2cZ1DVk36-f6sDpY9Q#@+y2lfEZBi@~0ap0#k2`>k`<_eTRR60`)3m0{8;wZf; zXaZLZEG9-8H- zv&Mui?=CzWT-hGBVdQ&m6u=*F$A1_|KhM{Nh&a-zXXIJbso@BSs7y4}Jfeu@0)mEK ziV!*oZI@Q)J0DujrLJ>c_zSV~5YkBz`fq2)y5ZqNr9}Ad;&w9)t(7XP~|gwBP@Sw#hDBNWS*3h(iAtg4kMWg9QQc-zuxt5liR4kxs4fE?9y8 z6YeC;hlif_#|;bjKX0TByI~Fe*Q)FTiXO6r0|XQj0t7^zmhXmzl@^yOgZhu#iErb) zA#v+%eot6)%?6HJSD(bj?y4PKe@G31*s?h4B0&lZY%Nrncw1BpSQeZ!SlRAQ%O(1~ zQHod^BkbPl{?EWwyUA;7Zzte8z_E@gYGK?s9>bhD9Yd6TeT5TL-p*U5r5XKWFX(&! z2(7B%3kLR{?WU7cS@aApFb;Snibup>&76Yd*c>~v?Lw|rth5~jq@HeWDz3JM38?ka zh^~0r=;}4aBt6g`9^Atb;pMQq$3?>3m-+f^=rKuv_by*NzDs2oWv|4maS= zal-zjRr!H`tta)(FzgfF@nE&dkzkN)(n)g?nKz%0C>1%RwOQF&;jGp-aand zfv>klYX^;rDf1SPO$12a?0?>&d^#muaHo=RSbpD`#C+1oyS(f!Mwlk*f-J32@5XjR z!&AKIyU)?W`hBQa;a^gYy;8LgRl!Y)DXG_d6aRU;`ob@0*p*;!i|F&<#ydc_nZ<5n z^!N2|5*T&d#%Y@UT0d}Q@6lR|p(b$=1ccJW9x02+3h)@cj|)InVGZ~q53k4Ltx))A zBDkaV1E@?6=mSO|h6{J@a$RE5MUT<+p$`Mk9TrW>?JC5CY;(=U$QUm3>dH>6okB=j z=W^qLVhTFeLHEyf`%TOxkv}q=+*wNi+>sFMBv`6Zs|jvEq`c^^3#e&~+^DMvq%|B? z@@*b46{IJ;KG6UEY_Ee=h+3E@?8`EiK;SmlugPg|}x? za2sY=8)iUR`@X1~&3nyZ?3%>sl@ugK`-dYHkLc086tn%9cPx_r{vPcjv=mW{8~|wU zx4CvIK2j(>Vu>)-+6>c_;e=fmG}F`&gDsvOp5LimGA^>=ujipIixZ|MUoz8h(#6N) zqJjw+xGVs#9h51ImZgHlB~j=+#4@?n4!EbE>HtqYLIFuuAe}IVd+9ABU2Oqt<_B3% z8BQKgA7AJ1r-GoI(BB^Xh-;R1AU~mfDnf|PLW+v##1N2Q1uKK_{?y?nk6{zlcev7iAWSTg`P>n)%}4(!kBF$~Qpf(gRNPWCAs zkf0Fq-xU=!Z04@DKo15D@P@U;)|ESx4Vogd|9<2`=nhN>j9o@d;Ba3}^_Awad!5Ms z8tIeRjt8aFE+Y0c<(~5~j0rYwJ?TN5fGb9tbJ+`^69eXB-(By!wgcM2GsTu3sg59P zV@LrAzXdiK-)5~qKp6*t;f zjiCKtAvhIP>Jbqf9Kv$kUdFgC@S9`oY5{+03u8=UR8pcj8c`3h_CQrnXe^>owiC6*Ti-m;oilrfXdNF^bu{1s z*22vk0m2eKzXlV0i)edD>h}TNvs>k=VP;^+Wwg-sJvnNKSPPvzto0#{(-v+Suh66@ zyg>!JwY%grPYW;1+d)1y7AY@V-A(j*O2C5V5&XZ@iyVwp-1RXj*E^*J2!+FP5NGJ| ziv6Sho0eiFs7D~^q-`B3`D#2|H#fi^^cG^9{ee{9t1ANON4w%PObgq(Jjedg*EC+Z zvh{H{@q3^d5KS&7dNS|5Y2Qf($ydY6Y04m<1z1b&p;n5Pzcd4s;fO&7(%#K}X{Z8G zcyr=P8-#g&zAHPBtCV%XgrbWXU{z?s#^9ER>g43Xw)N@Yg=E^^tG!VA@sa@4%7`9L zv@{>XF=MRcD@Y<;=~>lom_;ZIM7B+BREv>%{n&9XygLk;TIo6^P;JWmAbddv)V`)A zjy#Bb-bms2Odo0}_E$}3HFQ~LPO31KPv z3^9kp?79xfJOpD1JRe}M?F4$oU@l@CKJ;D=j%DdaoygHaRyaYj1YXE-rmn=`LF-# zd&@TC?38FvnK_Qk17%XWxwl4gj&cu>f z5tarecNVDj%o>bxW@AY82>Xr`!fYI?@`c65CN} z8hQ-+7qR*f3WU#Fk?Q2+j*@+zk*+sP113!Y4R*c@Aogxm15EWE_zW2aZaDuIM+eC^ zBC>M2Y^!`bZC(AcUk?Ox!zUy)5dduZ=sD#l+k~lLg_YUMRdq)6c=L#**tTjQ9Wkz! zds2ILRDoQ03IynnO=P;&0!C^ziPn_RI$+=2hY&hIEmx`LSUAqNm9`dgN0Sd0%oFbj z-PO?naeG(UNJdbb##s$-1RA3#B-zl(M9|UUK3-$fDGUdo zA5Xh|i-g9&MNCve64mM1DjW4$AbBPlIH5AhnGL2vTLIXrIIC+miesvQJN~ix+pMgl zZOwi~(HczSV^fN^j zWG6aj00Hmib{#r* zBSK%0aK6(QpN(9hU_o_1WjsKZsgIFFd5H$i)Tl=VzO@Y^>`?;&;xf)RM*yN^2?vn< zON5@l4FUAZV5$ZOi7YYi>BJxN&{Y20cm%?aQ;Z^f>V_&IU_)^+kb%pVGIo-ZNcmQP zF&(8~(L9n;LI^hnmAD6!^auo9OqwE|zre#AeAXl~{JlB!mMfDFdva`UfhmKXEXKQ8 zq1nM(B`rQOR?F3jRpb}4Cj)uhcPC&T569~W?3L}h{I9y0RW>Rcs%CW$$M$?Mii{f( zvXbEU{6i_p_R-_z&}+*oZ;)w{UFW}6bn?eZ!m&t@?9zR-%ce5i-}%_rThG*M;sE=| zwbb9FJj#c*__#};wSaYjKpp@Nf6p{8 zM3Bnk2Csc&%*4@-fsoZKNDoY`Dwcx$$dxAYYtF2BF5-dEQR%%DF@&8Egs7V4o{8oM z>J;&j6^C{I1Hx)cR(mGmum(npum9!{ZtbLw_PPp918XzIFY|Il70m%+Tp9r7bX&@! za>An2DD|TRN;tYD*}c<^kO=@hIrd7^1UpwWYkXgp7OF@c37LFsLL`bBi2OE1GtEh> zh>{v&XzcJ@!dVkTrKCjA57^oQ^O6RcFr>2W`A?^>e$2u`1s=v}uD6;~t@P~&Bi^nE zI+Wra*?{a{Ek$Jp4K?6!G#fn3a^y%<*TaE^HyD8r?#-0HnTD8UE+_zW&Xww?BQ+xv zr5gjx>#qyd8w0@(cP_p9y!Fhqd};3NlO? zSd0m(fb*u0)FP%A?nmThsY_Nfl$;#5q&+VKWm^6xGKjaCi##hU5z6INlQphZUoH^! zrIqMb8be!iI3_#g@6U%Ict`SS*1sgORFb6S4qN+w@s0QsdH(=X#Yk3&E`)ZQGn@}Y z(BEk;^}aY7xKA;Tbt zDC5R7|CogSJf`n2Qid#0|FnSJEiX_POprvLLruYpuO~)b5EacYQUZRRn+XsK&DvaD z{XJwIF_HvV9&QHIXxnGr!o)Hs*V>XgUfJDc>KZSU5fS{YRIh0rmdz`>`Gm^j62EgX zbe^y8JPw;0T4$pfW)!j))ur_Z`y=vh25Evs;sd^JR^Enr!=w}2ONgfZ~$E}n+-?PVl3Dh!}~ z4+sCO)S_kZ5R}ZVha|@pyoNr(Uv12WRhEAKo3z|uW)g6smSk!YLpX4cWfzCNb>`i* z((~)V#+Dp#(YW!M|Gd4U7Uuhm4X|u_|KvMv$3zl%e;(@(+FhQjl(!9!+HOR_bLJBO zK6<;nEf&GnU7!P(Vjd{E@{otHOggW3_uCrKSK0S}#dZ)t(_iUTYTuIds83ihGw{ zs4gATEQwlsEwyiW_sQy1MTwPxdillj5gL6*Gxrx_D#m*VjGWdU(C1sExMXZH*Yam8 zP(%Xy%FpZsc5fICK3ET2r=Q3wTtzJYzKYESz}pIOGeVRO{;AMjLE#ceu*rX`NKmRs z$62i-AY?>hW}aDOc5>YPgqxLEeKA@#mM)Q1WTC{;Zt$F-ZcRlQCAX6$x#vgSUMkB9 zDcWqWG;sZYT)hQQTusm}jJx|Hi)#o@kPw2qTX1)`;IOy{4+{i$3GVLhP9V6udw`!8 z?*0Dy?pEzq@0s2{Gd-uap6Tv+hON&v5twS5rd!eE{hCf;gz0}>yy66V&gH^Fu6lSc zrtP}cPMixYN~HW1r(N~R8;>?$i_s%oyP8$}8r25Lx3M@F$Q~JpMW1a?WjFv(mm0#M zSE|}e!@<<}4%2L_| zx+%3pX;##{bw9Dczwk(L^X~GQ6tl*viYifj59@XhQ57A5_-iS(4uRhMOnl$2ZJ@*G zvO8@x)m3~)joW`xzwh{?z#_8%S+vg`zCfy&Q7FYNjcHcH`T%6`o5uFwX9FnihCV7Y z!`G04`s3aZNT+((!~kq#c1^M-ml+M4&XlmzDE$h4B@J#qZ4!v3jkZ{4R|hu-)Osd# zMBkTfv?+?0P<&8XsuY6|bET0f=D6kd(RvSU>tqK!mZwUXEz3kAiqet1>wX81l+8#7 zzp$6vJ_*v#k*iytU^Z__mU|-hy>nPto39etnDNe104F7_c#pCDi-!n&=FETOj4|*R zJYI?Jg?D?tY^Wxp>1j0C1J%iB4~SN%K|J_}lcPQMWN7pBnDYAQQa<=l}Won)L+pu2V!z;N+m-f{|@TVPHmxtM4pC`sjn+QSH(nt@obYqPlAX>C_6~AWw_#rZ2 zupjHA;cBv4m#ODTd}$Sp|4?hVs4f3{Hrl%e{jmTxHUc(g^E-7>oaO~|8TI6v7FigT zcTT~ybO`M){k!mwzH6j-q~RE}Tq8N>|HhGz5Xi6fLLE{!^UWagUwSar=;=Ai2=*`# zUP`AyRmzGXgv}f0$SrFSswk_Hq5&O&UsVUbv-))?Kz%8t7gCzq{D6-H?y2{@N4RwH z_=aB1$9*8Uc{jWX45A&BO==$T|FCU7e+3Fq34yF>Bzi600FtuYI zLN3`xFS%-UTC0!R%4tgt&M&7N*K;n|f>zpAq&z*)KRqH%*`m^{J|4eN-JBvFE$3;2 zU;J5@E=;4+T8(I#67QQ`j)D4Q8_6~fy+fW>WZ~<4E&)d%Y}-b}kk}(eqmP*Oa>)iC zK=j$|j0gp|u}yigPxTab?wS&`CVri*MM5HOyQFMQE0&e}s>)72Po!#iyIST#r_DlI z?bH_yzANoA%sYoE*_jn59=&WK2|l7k%g)#ZyN1LtH1Et3?T1OOFB|*JM!Y^ zXB+9*{g)0VQ2O+7Rot$ufC4Y>VE@ERbnS8~a}PzHX<=67@QRgc?(#H)z@zI!9B8~6 z^b0aq+%23XyvBJY0cyqUF06rqr{SK@C3KktZp!XZ%r`fX3TF?jXfH?s>O&&(VD4aKs(CxT6?p9fMOyya)Erf0)f;68t@1 zyzW~cG>Pez9PquHoh7HYH2kSd7WW&ZPRjB-i{*xYWZ#1EPWXPJ8>HS`rB%qSk>==6 zjA0Cf@A>@row+95IBA&yEYZkg2Yo8ccB3ZE0jt>-8Zbh8Yrxb{SrgttZ)XuID~-|I z=3G^-Gg|QIcQqV+|GXO79J)yv1vPA_i~2GiqjQKOZAjS2jQ*3ueSt!5UC{nFFB9=~ zQeZv6Qv^>$(4ch<8wg=Ke78bu$L-nalVdxi_O+ zW8!8KE7CwKH>1O$e1rrGB?xxg&`RSHyCWuG(NMu#ITINo&uU4X=s=ccs?Z=;O+l7&OI|wqUg3~B2bnXid zwU9P0SshOZXwpum6p=(Bf@^~UXT0-m#lx#3o9ZC$R~{5hTKKT(Es%q1KBysV$LJa_ zKu;-Gg#p>eLTk@}B8ai8T|VU>v&6HQpiqq-oyapjxu__@`i0*{&NVO$J&6b8bPsc< z&|btNUZ#-k`S4@>j~xMc7=FyR=B^qqa5nnr@E)OJg5T;oO!FX1a2%y@`Q(#B*hQ?< zjXF%|XMg1N9%0qsNl@1`v>uU}cGTV~9S(mi*4AFh@WG*6yw-Rr{-|2X(?*bxzG2G6 z_szN1pw(8Ml@m82xB^R~0$4pOnhUuq?u$z1akYx;AI6I6V*e=j-XgXvr%IJMDe z04s||%fQ35`bXIoZAfl7wVS`;+C}C9p}UM19#^)f#KdtSU{F!I!G32_n!(Ome|`hw z5|A#LG+DF{SA|bk#CQ6P>UY9$adGB=}WksqKPl=r5 z=+#gTNuWE1o@diDF-a_)lmOkl>z=ad(vfVn(b|U_`J*%0lFMyY?HrBpRbD6zV|9h9 zDMxa@fI$L=S{gOV(Jh`8u&%-XoAu`Ecg4Va<@U*c%2x`MWM1EV(h;}sE=xkS6cbY%MY-@{kFpP4Iiz4k^n@4lALNgvwUft`=>z))X9=zVvad%nv zN8u}FzL}WDnmd*npth!@GAF%43UOa#jyQ)(wZ##qi!7%A5uwb_2kCL#H9k7vGlzH5 z2yGLL__-dk9J0|G`8S) zzf9E=qEQHWLo*```V1tL2=h|9YGuQQdtrNKjm&gY0O7}}MV9_r_a9ITA&ux_sF-A% z2_|f0tdt!!ygU1BU^W-DFP55(!lRt%^eQPN>>5)~eCldUhyy3Zv41mS)!cuFWpM0k zXI(zN7LZ|-Ra`EVO~=w8?jQ^m-7@WVZmYr!n^!mU->2!PxE4)Bpy>x zrmFxZH}ia%K8Xm$EAt`88MU%{Lz!`L+PK7OO9kRK;He~jn4yZup!a*NJ$9{0f8Gbo z;P|wRU|X#EpUf#c%^E(YmGX1C@MdO$pOBn5aWFv^Ja?@gt`^ylVUF%<8si7X9*l~^ ze4am~2`7rFO6%b#8zYXM2jo$RBobksfk9`OdchQ?3yk_cTeF3-B4kA`%R#EeM)tKW zz5}Eol>{5Hga99<+?3AeM~f_U_(8$-cKOKSHQM!=G&0;Zp1&GlE1K&-!w5;bYm1?v z_$<)XVu*OxaW|}-zFydETGHhyY@%BO4S#_M>k&r3kxeTI>KnNbJ+apo(EcTt(!kip zmRoft9Y6Z~b*E@^Dc^?tNPpamAwJdKU1XryRw8n#ZXM_J)Zw;)CXvZ=zqW$IL}1My z`q_^%?%$oPH6(NN)(NuvpY-oocs!mLo)tfc7tYiBSU@RJpSnN$$~~09Z((T_sbbK1 zIOK}H{0~tI#D7F7;K82+v~Ov6c??oqFhU{$@!L1rM1q00q`dVN*d_AyScC*}2#610 z$V37FSRqLox1I@1koaCl*`H28`<~%H&m{Qr&OgSQOOWv+_ z`OiVCF!c2=%MN^6O+X8>P+k(d`tM9mo6qr;kztUu7Wr_R*u+CK#L&5t(UD>cY;!#e zKn*k(qG!)l;G*zu86$RF-!z=n_092;>+w>3$l>h417UHt-owg-Xm_;Bxa-N$ewz0e zXYtkooqt#_dU|?VdeCbNA+xj@o73OYxI&Jlwd2k@C4A1rme)bQce77LwdCPfhnds) zOS?h!E3b!ZCTYQAA4Aj?TcFZTqe6^U(I70w z)8KBdf9nY^pPPdS^&LL99mcqdtZY>VOXO9q2H@uoah$cLYe6F^@hg4UVisgg*B?1! zwu(xeoU={ahi@cNf;bjnSHr$7xNKf-YHH%3(p~4)eYFyJi)p_$tFe33)#mkm(l%r9+bb)}^stl7829t&^}+pxzV0H zzAHE>9^yB)5ozprXpJqhaduwOY91=0c0**ArlyfIBWzMdATq0I*QUX!BO2U-+CqCm zSB;5=+HY16$<2<2xkfsQNClF3U0dRC(3FNQ8wdbynVcYMWbGe0fO{S>VNTT@M{bEO z8|i!gu`yL{H#4R#duf_qec0jJgg!BKY)#-6zur{=C<9}*PDiVP>~x6h(Rhzdx^(~X zShO~A4~tv~j~^SEw(y@gA5FhzJ=Oa8Ep(nuGulBVG5nf^XS;UAMY`=uy&fSqHx<Hf7=Qq`Z4SXb>ysbpiU_tsGdy2+PIydViiyQ~nh>|1&=}bC^ig zGoZh$A{rb~7_cN1Sv_IU z<4klR6(XNOr4SLO>Vq|YhcIrlAL4Ak!-s#RLLvA(OlSe~(C0r}kapq)oe%X~g{HR=na44mv=~Ve`pAz8vJYKiOv+ zlynOV@g@*8sxZ>&Om&kq;Su^yph_E17AmZBIvnpR4WoXB=l8SFIMwpDYk$8aC6c=F zav#wp<{0?N669sU(ukY@@VFkI_)oYdU6{-)Z@zOB#)GpSGdM#~k^LieMRQj~FUEq5 z>F6-En{uxXH$RU*`Dz>AbG1!9?{0hDQNY)-ML?+qdkuuoUsnzIk1O`tygjraQ+YL^ zCDUje@e3F+I!@>)1Pme(@AQ-d;2M&p<4 zuL+YIxAOSvObyZH)ZTA3APBVSqYbA|+R8ATm-!DZzGl=>5$2T$-gpy9gr1)!p^n9n zTr(BIf?@pKVLFL1Msg5#J}V?)$>pJ}4yh{(<5D=Vehj5!qxyu$NrN4?KZa1x=1~nhFp$* z6~m3I0)xZaxBJ&!na8!WOlZm6Wg4KRo41PDaiG+dxMO4sM?N}_v2QA-*VUk%Gfu6s zEcE93n^`#Q+_k@GEhwF5WSD}KcLL2eGEw0q4AYDsFoC^QlcmnFOI4#KQnKv*;*TaI z$AS;=dw3pbMJ8>(D4P@a7!Cw+8xPs|2Sj&j&}u7FxKKl__b`$-a0AKlPDu4!8A{9o z|-0lFQj|LaFAliqAw{e4ftTl;%jPrH7!g0B71SVURWmqPr={!){@*yXi+o z60w>Q)B0+XNOkA=6?7)(0Q+x0Yu6dc5V~R6KZf1(=z#ak*h=pQIk>Xp1(CwaHfYS@ ziYz3)K3pOGWSiIj$YR^$@>L8+#7F=MRnAVXe1x9>lgBSoUx@BA$sJwBhBX7;I>DH? zQbibuq|RgvoOoGuw#)yxCFWefeV)ScLwcUAcZ?#Fllkiaw$DMEL*LNCF9a}vK{F_y zxjeV6Zk21=6p|THZmvlIaDXKmVCeWGUa*cm6(v6739*2vZ8~WJ zi%7>@@Zv@pt~W<+){0AVB!w++@BlTir{xbwN5TZW)SPC1>Vk9~B~$U>jcEQEO@!D2 zj+F2-1L=T_(((aplC-G+<&bYMD|Ayp!F)xpcks#4dY1 zn1jTxtXitxg|d418ga%^r7pZNK;OoNf_ti5KBIv`bPb2BjQkGuA33Iuuyci`wL-Wx0v%1NV7_0&WzGEGCz##REnXRYW^Ive>iH;vd_KXFk~!`CeD1 z_w00Mru0S_WG}&_Aj}$zd1A$FW%Qf{LTbu$=pp;I(Bbwnvn})|^C`*qy1?|%e z=(@na?jr9ka84^C;+dM}<>PDPeQqT=$1oT+XFfIkWtvNIbt}wXJvht-zZR#5Yxz^h zS^4*RJXc!D=H(b^UuiISWs3t5Kb0GzD7&A-c`WLvzBFQb=(g&|Q=nV9silY_WO=&GLhFHwEVwqCWqlc zO3OtyI6S-ZE0wM(>3q>T(*t(DkN%d#v@F^lE%Qy&nHpYd3Yw|lU*Yr1A_h2&goQ2~ znLSC65^1M_+&tV;zmkG)PeKC}Qv^0Z`Ft>^q8gx%ep)Qt9d zBzdQ8{VG?#OM!{ynF|)UW?bNcXm0A2-40yZONO-I{Ja#O#ytR9AuZ>Z$$hdC8texA zwM-@*mN-;zo)z3M;l4O8d%4!&7sNIO9|kklZ*FK#L5!e@oFox-Q4nl#Bh)RZ1=h{` z*nwn^(K9>u=gl1Z$(AaaA)nzgZQI7Te`JMGaoDKyZO?-3IS=V5{6S?C92ttG;aZE+ z^v9x!Lhys(;S8o{7qvxOel~@FHPuGKZabkIpW=B5`&VGDHN{us%%{Fw(~NP1DO=+z z(#1}VaF=I!8lo{Hn}dj3Az9E0(xZo$S%J;iTrc*;ny92bhN_}|iq~o8*CaUyKPsB& z=;|Q<&T?<$FGz}hqGWpdJ8hM609Fn)%yfotSv^^zyQ8Otf&u16tBd|Ku5gI`zDE;=Kh2jy3|sZ5ea4?B7vfDV!b`vDq!Qk!*yiLfPeRG6 z)C#q(P2$Wbey6a}9$PEe7XrKd8{prev2i#*tG>3LA!5pT%&5^N5h?)mwYbGp^NjI-0SXfBenIQF?Q<>eo`n$`b(gB1^+f%BWcnnCM115=7fJmOlOtD5D9yxrTsX!1FMDu%X^zJscDv>!JC<%FJa7^ilcCw! zp1=T(TP@k6^&iaZrs*fLOKDZEJi=5zpJry@eMqs+cv8etZfgN=tB5eGgXeesJXyLN}8v1()IRs$VnIZiT)RAz`t?s!+C^`**Z2uF1WL6+&t0Zdfkkj zLkZXLsO$v{8kp#+S^XS@a#KvA^!B*tIBMZ?$k`O>_PEaiR_2ej+Tj^QT);VuC5feP zH<*}?L12NT0xVZ0ikIGy0 zYG9B69{DXG=A9wci2(%xG4&c0BL%M)yavQh2MG}BA!iAQ-os#|^8~X$G0AcSN zYB~r3)?{zjm_Gwf-de$A;sEOZE`cS)0UzH4rhOn0Sk@kZ0G<#Bz=AWy0Z3@C3Tk}i zZL~hGM*+yFgTL4V2>xr820gZVdk%Px?u3wL(mZ(Vz!Si7oiKK|He*kTJs*4Db%u~a zM4q1+Tm zOr0mBoRk6i^V%(IEYb6X0a!!o=hKC$&1KxHk$)4&>KVqz)$&_du9vMA&`+&VuCD!AuXJ5PxZVPX72zpRIz_<<2M%Poz?A-;Vc6jC7)h5 zRgT32xvqq2Dr(`;qX<<+!^}B)R+$!k3XZ;Hs*ay!pgB^X>HVC`NqfFP422x?Zk8qj z*S^;Hl!mw&=_kaduz&QIqqB|&c?*M$>r_b7ctO6*B{2O=0xWJna;#Zqp)RY6h6DT7 zX9NV#r^~DHlw=^?HfF91K92s%bI>9a{u7UiL$|w9)r$fikOVM;MzxqQ;X{gYwm;34 z#Iw_%uX}_m4BF^0h35M_hj``vFEr{DaQ6sm|c2$4fG3qV7tN0I$+LY`!5>h28s6RM?;f0Uw{ zo?u(@BVvrBnMoT2U6Um2ouKCD z*OoIzN-^UM)rU>{pju63L-Rwe?}uUY0Z*|ruQ&P@Si{ul<3#G^S4C)9Y4jOrS)~{3 zFB5z>0$*^z?5BQfROiW9-R{BT;wfU@{Ct2PiBP7L+;G03xZm}IT7VtfY!m+Yr zCy{lq9QcVGJq=aE( z*Z#*o^855O`r3hdg7ItuN@i`!;z29_%efHtQL^xr><&=GBs0Fz+8VwC|Nb~}S;?^t z4UGI1ek*A+%L`iHawowPf z>Bxh!M;6%sIS3gKBFyTz8?e8SL)QGTB8Cdr6fjL0M%+E~EglNxcYq%DM5?! zFxLH6w%r(evdzbB1U|%~OnHCPEXtT|x@mtu2^KChT&4B()I&Rp06N~C+NE!QP2#B2 z8+23pj(2Bv=`U?`+brBdF&gW%eEXvW*QFcT=*TNuZ7yzzK?(WxxQu8MJY+F&BPB`sVk)iLQDkp;n+vWM33sCol+GyQ78zJS5VNL3IzxDd7up=m@N98 zHfmskztai?f>M#=@mw+^_2bS5W7AmjH85FC4-!P~!{JHPaAbL`ip-8pXKFbe+bHw1{X#Tz=J@!?3zD6O&m?s z!GiettD_f5z-(&AQ+4X}!_U7zY`cpn`3W?`8GkDQfX)c@)gO4LGEqyCAwTeNeD$cn z^SksvMPcD z4%b2kV7x!9G_ywJF-v=Cs-Bp!%f9UC-}C$b~2A62-qq9?$JT#&+=h zxc;@Q6-2Q;Om>x2ws$>ud#DMpzIei)XVJYwY>zsq#u3k@&S+I76r@?{ZLV?;2WKw8 zh#s)z$7+E`7RM1kVQHh?D^)g;m0+p|8T4odPR_uB z8>Rg|O4r};12H!pk+WVkCDvI@34y2Gb+W5;_jXs@vOjvFRCnxv{a)JCtz?>Dm%)U3i|j-(C(=&{wWo9OeBEaV5=u)0L7!JTOABVZCl@sN@m9P<5Q$^G4lub zKG{PIIP%0zE*kr3}{6Q z?zGH5Th*;KHe?d51b_G1bhXc5rzD)Jbq<3V=q2;bw_011ogU(UL}a+SC&hmiM+bmD zPNxiHnc_fTWPBQ28@hi$OdmQ1>4%wJ62@vM6;6_39a5 zVyE2@U}toQ8H_@(wjY!Ph94*j&}V>wOi`tsA8H0X6o~O1gAvm`25d%E?Na@teMEJR&Xy0< zFT4~TCqBq!UJ%gM;h2w2c<_2tuXGCi_appOfLh^R$+1%tS8>@PM3T3Bi&d(Y>&we( zG?vwOnyl$7GSr5!rZ^a?+~mjsBM!U->)+Z3gLQG#d6^b^tx`iSmQKjE?y{CMveJV# zUwqU5+9J@DK$LL~ehD&9^n{GJX-p|M01jHQ;1H&wu7QmF5lE&V8HXqoVHN#Vj;C(W zIcf*8yJYwBYM!vTHIn}rHtHmxQVVgzx_C*!-0w+Kb_yMiq2cDa>72)Bd@!jRwZERs zrNGV(CjTb=r7%fxcJkAi*(m{dt({rz3TY+V-|wYmqiQ=lr^r4cl4Y27kcoFLp{hV* zy|9LA%N9gE$!Ya#UqwPMk-CND{6yt3P>px+1WvL0lJAJj(Q$DgVP0pvg z-%h<$bPDl)CNt{k%B5R}M8Dq5_-c)*nYNj*U514R;A)E9PGd@OjPS+7GJi3khU`}k zS+D`7tJel1h5@V9TnYoirGMr}>{6_tlYf7_D&_|mWq>7B0ivLWX)#^HTaB>4DWO%b zyukd8*VBWqtdK3aMl{KYG7XC+jo1o`uFi#B=gAbBos&0~k~@fENvdx4D+iOXW-<`} z?4#_7#aU%YDsVC$xcF_FHFM-YxhnL!33>f1*#qhcztAFf$RVC}A@3$Vi9|gVy1J3X;eX^JK_f(n3VaC^MpQ>h z9+qV{yqze}59J+wyqoZUk7IUmr1-8bNL-igD_lW7)9{~QOKyRM!!I+S`PYXO?P2-zQcda)r&B2qjVbn@CgML${A|ZRsNH82 zAu476 zU>D|itkoRypRL6RHcruNEc%pJNHd8^anW@zJFUFWQqXmWJN^Gg@j1ltyVD6vkyfgS z4Ger95j)%k9i~n+yAngnR{xTx4*nF?h>&NWF&CgE?RBWsAn#<49_ufxBhIxjTBly_ z7Gp1VzxqAm<6lB*NfT-55BJncKU(5GZ~I06fs$!f$QW03aqF7R`3AUMT)8Ib4h!mM zzE=ua)p za?`qAw(Uphxi$xMr>vz-o;liU;-}0+J#i&kD7L8@Br1aXQ-6tusVe?bbCIpQ&Eixh z3TJWJ$}ilYt(s%ySt;x*>J^2={x!|j(!13&ND`SKQQk%WO&vItcqSEJk|tg?OE=9# zea_;vW45_@Izf}LHv1b~`H}MX!m+WB&&KNhFfAX1qW_EqQlX0$eP_nuJr(TluqUCAeG?JhAf0R#gLuk#wgxi$FLX!|50{+_F#D$&xZyvmQdvyTU zTc82_e;59!sQ){Zv8n@5cn>PD*#rFFgA(=M0rHS<;Q~Zg0K=Q0XG}~6R&xcQ{r9cj z%oSjR@FvZJ01WS{uXRF1i3=pK;In*bc<={5z@KMUa30WrOqiZLcee0M;q z3$gfnq-MvBI2z`y)yTP`WA3?-Y?<0NlMT#%+yDv(7iBZDo`)a z9Uc(^f`}4)?)J)Ql2R^>0u~r0K?bRc%Q7g1f5T|{nYTMLU>2MD9hfMy<3Ht^q&$PaZivt4a6SHoE8>E0ExG(No z$+S7?2?x4;?wSzAH@CHiYH~{O@V4yr>Q}=1?Q@gVONqyyPHq#2m3`;-XYcrN?k52i_c zz*Diu_r|GQz%(Avt`ONe>p(757h(T~0dIP5yp_ZQseR=X)?k2v?1*zg9@!VGMM3B> zQV6LQ?P9~(Y(E5567z#RDH0uI^lhy3G%z==!?(eQpxP-Deu$(}g4=d41d~jrcOm6m zz*-uHOo`&oqXg-6x;%;qp}DRMq&w?b`cUn1>8kx>e%K>t{^=uy=kZCk$FC!x3*nPm zy%X=puz4d&ATr)7B!`I`A;@s6?!YDP@;`%!vo9}=*VR;^CJn^L$3p`x;4^!LxHp8i ziULh&|As1dGB&G);<1w(%{##3@qWggC~+``Fm>2kvn0kf(V*fCSMM*-(hcg;_}JbL zBlsPGB#>ROu!cWl0#jMlRf>|gQ=5tjb-))>BN&?3fGTo;W6RH33n2+rC?|9beCAvg zryhtYyeg%}LTGV-iCqmsAUV8BftS1Og~kdD6jdac9nmkjJb=7tV;TqzgT?H4S)w+> z)L~fQK#g&B+GI)UwQi_Pc4St7c6QH@2e{Ypp%o7(BI_Ozvf{@qPD}NzGdcnU$+lTJ zmoE_T=Z&`M_9Gn|tqGjQr53&jA=l}i@W8hQS1(y|+4x_SNFRcZqby*MJRl|DlX&@1 z=`kDQ>DBm|6QQchyDp%bMVN#ab?Rb8VM7@LMFRSg8Z&ayd^`LJrnn}_ASu7Fl)yZ8 zg&4}1v%pASPO4)tBhhl_Tv0x;{)%V)Vi?HKXh9ZA+Jy6=JAgxHV&`~n*|E{%@CjO! z`>S3n>gBDzZsjlt$~qq|E}Qt$?#Sla`{S3=kpO?F&~F??!q_KUv4o1!Go0lxiOgBQ zT+ma&%W3)3ORUs}gXp1d`>{~d?uOWDJd$w`x|pX)mGW`Zb2{DonSZ<>>-noRvn+9b zD+HoZS6Z1zVEqX$psR?`SKWuwPaQ46$rM{UEUavF5QtU*of9YtlHZ?e>>Brd^SIhE zIsj!|F5LHJV_54J;R-hbHK-(w=J#*We#zx5o!q2)c)qx|CgSGm;goO~7Pp}))|h#T zsIzP-d}w7!QGj%}R`W^l^v|2x6}pq@E>&7b9tdvS4L0C#4z$r=duBKtdPVC%6290M3MFyH)6^+oAd6 z*J`8rG^7+aZM&`jz@Z4}LlDdf=0=hQH7_C@%Nd|47nEZUF|V!JjEllsQkb zG_%%6^J9TZm*kH`o$^F^(?4*BRD$C>n_uPkBC_HOaP#BfFc1JX$ zbT_90$9Yd!v`kxfSS~m_Qw+g%YVqu6$==^EJi$sARph<(F zXLN?5UbPLe$vmIMxmR49byMOjKY{$O5dzf9Qh0llZqp6hd$J{sjR!<6LSBe_jY}3o*H!%bbO|wV3oCZ4d#@ZtA$6`E7 zE^JL~OJ6Cb!r;7P)5q+%oGDA|2|@w3Mi8;Nuc^-Vc(w37{a4Fwlh;#1{IL zYWveZBC%1M*8zKF+K$f)&y4=WBC*p4e_zvL#vfwPPPqv(e^^wdH#;hR0W>ij!1NMc zRb(*(gR>BXs~Z;_{`MCN5$NMwwz*x5&Eq3>hRiBx})uY*sC=v3>xOmUZ zhDqY%c(R}(wV~A@O!6^gj6hTdu0i)fG^V?T5-ASUs({$2jEe75uwvJCp*mgiS&-p{_!n(}FHKk@Iw zcj*)*&O2Fl3UJH%K(x^Cy8Vjtu0F9djfU{|jHfV@bdQ$-;Y;`PC|k?>lI7 z-5_yic!OVdJG9c(m=F+EJm8mA5@K-r1_@F<6)La|^9}m_2Za+!f%tErjgS<$_Kppo zXo2l-mcZ={K<2l`a|U27?weF303>(^oNCzL(RdhMi{wkeg4RH?`cpxm$Qwqk|6~me zcn8oe4#2&4)L7sITzHrKzXKKDM>6LE^nUBe%ib#v_UQz|{|_dAuf0!Q0#blGJb{Sd z3RmDejBa%WuDoX)(>;L!??a~w00z9}{=mgyK>jz2U(ZP2ErQpYq!Ebzw|^yN+**uZ zQEBBT2ncGhLnjdDKP{Yk^>Co=dk%6i9w_*Rd%>?r`^^v{y2<~uq!35~9#g&fgryb8 z@~-`VZwq+4p3({2dGBjLFHrJ*a>o0CGVh~*1^?`CYAS<3`geEvjsX$>2jKso{+CSx z-|=<(BoO$nwl)WBe81nTgE-%8%q#)1-_xH5>%i^zTTN{N8Q#@i{mb~D+JB25wl{sF zePGS|Y!hAp``L_|Nk?{`er8pgH-H&Vnzr_ z@89hV5R<;=SYLZb1h#*zNdw0WNF)5u+`b(^ThBs5dh_ladU8_U_fadRlTw0Zhouq! zAKeTpQmVJrN_`&-DdD>lHaSV}-bPoy!b>{(cIWysK2oOl)>T2$`TueA>l%xb6cKDc zDh>PpJPDnPY*Uof5D-ic{~i8*&Pj^*rUmx3c-1EtA;kd!ct!=$a`+epzSRD1phEr~ zOhp5UReD*!w9H<8xsrzJCrq8!eR{Em>2=}Lw9*@W z2YNcLU-3cq{Y^S9-hQ(__UzhRiv4fnjy&#mO0XWZES>FI&BnCaJH9*le4BPEr0>I36Pvt?y|J%3gLQ{MS1QSdsj($zLaybZea%hEFL0%{(L2aF@mfZnWU`8S%$9R-{ z@&SaHHkwcw@p+>D`ZQgS>3v}$IR=kE329_a(*SQAW;oTO&ja66WDus6Fw%NA^VX6< z&YSxjjg)04*KTaYtFgl8)~rCif`I)Htr(A3na}%~;1S;4&2?3?9icfAwEi!5hOsed zwi`Z+5e1TF959ilrVOT+*lzNpzXP@sx09VWd_W7F)ux7n?ymu-1_sGfw0uJM4<8gG zdyRRrDpo(YO5#svX8-H%r7Ea!OEgpj-4!e%yzc4die4JUf4ukT{8R2cN@ybvf<(G2 z{eYA+{Urbf%%HK|(b@z30gH<66}5)9A^I-WaJ2?T?n1n3Eu~El?evMMQt8p`_in4? zpZYA(w6wF)yFy_i|Tp zzh!KcfIn3uVw41nSmF)BMG<~g>9KENsE~%i;wQ;f_78r6?ch$y_D2;zP?*kv%@PRQTIeQ3EM zjtH--*NAO_gV=(MPlSpZON&q2*|#`skV*@C@>h0yAEzo3cv!py%v(jiToh14;iI)Lt$q{8G+7|k814rtdp2I{X6%rX=vbi+Y5F`u`*AtfS%xx;Bpnch|w)-JK95 zxJz(%*D$!d4G>%sAh^2*cXxMpC$PL^zdifz{_&jiobIabo}Qk$_f-GtmLdeAvvC5_ z*2d=^RNA2OrMG1{V5n!x2WiY0b#PZ3ytpv_@QRX@e_9w(_?4-Rx zTfWn8>Tw2N8JaI8(jGbW>lFCbi5pPT`-R5_n(=-smn6+dsfNNxgw<(bW@?a0yXR)%z6b<86#nY&?7uq=(`{*S+7f%9%UTY5iuC@Gru!tdf;<@zdI&&Ay(;Azt+&>M%M=cm?2(3;x2`>oT z{cS7G>tuoFvaLLJeYKc0`s~~{q_BAlMBmt1MrsvA4Xrd_b=Y#gIY~3#0$C^q2yY_CYIvVTnsv_UWQaocZNVTzLJVSnapHY)+Q+cgF2ld{{y3peAv zp(?WgSU&A*I3v4NKd>0H*-snqbK9xRZ_U+X+0#&97HdKTWXG~ht2e+4BBat%FCmm` z%)hwZdZa&^h-i*i$`?NZUBb=R*J@kIk$C?qXE%0O8r66j2=&&;bCr!)AiG3cCqJH{ z8ilo#3XbCEy+O6nrRF7AeYI9oGh)Yn3r-zsO}rcOJlB%Q2~|Wyb53_N0J<2uRt_?j z4+wISA$BX??=P#fPnB}Ie-ksr;$rn*qMJr9p&JXGur&Z?U61!-;Fjas$G^g(M5=13 zDAM~s$W5**$bUD=y%~p-J$t-9m<|cPs)nURfNFFY!y7YjKNb3ukH>C%rfLVyd%;v9 zRex=bw4xC}f1)szO%c2+4Kz>Eqi}cVBVRpya9(;gRr_&JZNjB1pHQBTKTcRo@O$!< z>`%LeRnX7|4rW(q46@?Nx$*YKfpN>RYL|+${vUFEa)qDQLP0lM#2oH#PgWv&aFr{U zp_de;TFjqN&dI#FoR#xxpE4U9g_iC#;-oeu7R_DSK^%Dbi2jWpBGO?7U@HRKb zd=siP*wS6q71DycBIJhx$#(OxGiP?S_jnpCZDt7N)LpHXqrl1Z=(GtcyEW^m_|WFu z>81Fyy8wO^M2MWV1wf^*)SffJa4bJCd7zuKGZcsx^V2{3h1-7ZqS|x7qhmE2LgxBf z{+YTl_%9#)^+ zjzYTk+Nr%#o>TUp)(w~{=pUymr+BL;7?$^jZ zvPU0(=($)r2EPGPw3Y38D4{Ce1Tlke34Fp(4sMq7ZZk31OAeuVU;XlC1h5j`-r1R@ zmnV=T}8t z`bLxBp(~xy+Kw(t(3ry}tEL)1RSja#))K<@Dq^ULS(YGhn}e=RBTg2^&&6shbOHq0q&aQJm6B%wd6>>We}kvS(2TrCqjRuI2u`rw4J3(w8cG zQt?3!uutLz)lMyjLWpN}<+!DmjtjUoBk`gHNkk{!LHJJ!B&z4jRn0ca9T%oTyy26x z!^Euu9fK7Re^JPov=&05Qqzu9M|L%`Z2grSSaZnuRzUH%u$gw#N5;JTY;r59=4)I> zZB?0P0#`bb4-OH^0yqD1h_%rv;x3#O;IzS`s$AT#(4#{Y;I~ZN?F=;w>m%Z(zd(*5 zOJ3ds^R0rUTfg#IubLWt{~O#ABEd=a4w(oOFz4nfLCF9EuD4PkZ4fisgJFj0r=tk7 z?{diOk1qU1TIwAXHrC)jr-I1g!&p48l0+GQZ~8DKDIKa30GNGil8t9{EP3e4bYh5H z6UeR>%w~upqct|rpIwHCg!~6|5ldGtu*ioqB?ml5@`#aoLXoY_wSt3~^C!Gj zflit9Zu3Ce8dvo+238((TRoGRw5F0*%Wu6;>OBX`&+7RpOqG?E_1IQF@P}oNP-uC$}F(rPp;#xIU-SQYf zhH;jrlox9VPjVW3St)@tlWK9_zqJc<51i7+G5Je=P*w;fqSci+A4~bC)me&Elo1I$ z@scMibU1A4Ptx_ie#*ojZ3z-;!i`Ai1L@$&qQiwz%`bU;&}F=?*UopikG$7cDt!cz z?l3j6q%Rqa-3nc>)At#J2ZD^OjDy;X%dU&G<$Wit8pdX-fn{qo*tCIqLegHaIx3BF zi|UJ;2yv3EP6=<#4<1l%eo zr`Fk_79nI@;}rA@X`YKu>+`cg#r5>$B>1oXwX0;vAJbpQM8&8<(&u_Yx(t5{ibK!Z zd!-ClzI9jGVbv&97*`J5v`8!)c8zuRd~#y^UC7MsRc4uICmh~ycXSL>!KiIm^2kQ zxJ|68zIT$#LwbvNdB|X7-V5FammTU74M$&tvJmp;x65>iX=iOn8p3y3baQ)we5e`6 zfs-wv@RY)n*1S;e%$BJRs|lMP`9hMXv)+I#Dh+wsDSJ&rxB~QW7S}w4i;IYrkY34D z=SWM4xr=`(-QBFmYwKwuA#WRxnR6uNRQEdNO)EwXTDIZgvNee7<#UWilS-Qx8S z=I-UqAI(V7Uk3cEuJUCt^S8Mll;mL~jezAFMG0*&;%d|1=E^7LSbh(iy)(ya7`g~7 z!)u_G4d&NM+KYwJ*r2oiwrT^^as*sIMHQ|#S{*jZ&dtI%4haBVSV=C!f;D)o&NFk_ z5`m+Kim8%GEJw=8QKO|1Z_6o9vuABkrW>hl=iRY6?L7{4L9_AwLAq0 zW21*zfaYFeD(_dmN={=w_f&>SF8%wAS+W~cx+QaqO!}i=O)JEL+o_Y3Iisz`cZ2y< zUgPzYrx{B82r$65QViX$0b2e_^9$V2&~qa-8)2eJ>d%xqOWs%tzA$QEbciL9;p=;v zT~f_|Xc-Eps(&)ka(*Ba!F2vYGX7_{Iy9(PinrJdFKf&pN>ooPK(vD%dV?{crrKm- z!NYvmvaEu|rJH*?WzofF*=hx3rV3yJB5^~x3x{j0e)%Oqw6?cuRj{jmT~kV)1HuT5 zy@{u(7Nr!$FDQ$v-MK{@z2z*)aPVP+&M~Urh9Z~zaj3;b!8Wp?oCgl!mR_fj=?P6= zxgB9nO@bFlPy>3|FQ2DcKR%LQO(>S+sxIx0oFlH&3K_O*RLZz@_i?g&5B86*BO`0f!M%@L$#EpQ|9N_!%31KY?=?$gn zW|OvgT3sFo(X!~>)`3TZE20@M@IlmY)*Guzb%^HP*2G?I2BzL4nc=2)^6+p{RKCf) z=g`GtmpPr))^^m=e-K(fKur6t_X^j#&1BijO+`PCKM)W^x-69yXqaDY%Z|oAU0(?c zF&UH>q~5zOwuI%zkxFCJ_Fz++hEgjjqSGWYvJ6JDc@_euMmLcPX(x#YG#*L~f8@T* zF0+Em4yDL*ZM2S$1AeQ8{SicyohJS`(s*T9;`CK5qxmWAhqkPSu-lV*e!*3fr{-?p zvt24SjcL`I+TV?z*{x3f7Q{kDSC^S5hIH9Ke0IhARYx+0U?NH4U^Il*8?urVXwWE= z$G0o}1SR%Ix^8&|BA*$KfyDTm$nipuTIn3PdgW2dLQyccnkLNduv@8{PviNFkuFVU zSA!LofLm(@gV?0>X6TV}cxsodI;c0Me$$xaq8Pbz^Eo@79 zQdgTy2?EuGFB_s9%AbGq^{jF=F2}}bkaIK1w!#h_-Wy~N1!farzXQ2@$||kQyLpN9 zux_D~24N*A>S&dE4l{FTQR#;pWHOc&lv;p9-OA#GN;J)O1DxIYG}(u81FNdrG)J7fBfxE$h3~Y>w&}~u>xiTAigo z$vsn8j^t{#$F@o+Lwgcd3R2gZz0E74lc*+xYxL zlZbfAXDN#DgM5?tzZgq_71t#b$8>|LROWZg(=scn1@l|FVzRA0HwX@-4^v^hOh!sG zId4)$UF5_i7d3)^!3trS>CzBhH@+QNU}IhN&x8lZ<&fif+A7(%u2P6IUn}xGQb`X>m{)8|8-ho+D!l1S7L02LOd53lt0I0f`Z7hpLxF z=bfp-zh>^|Kss}wDf1LS=kJWD1=lZNtd^WGg#~Brtzc1DiTQwPB58(Ki1dfUo57|h zxw(B(hI1$GoMqlof6C}bmpfLC2$0D3aGz0J80W}rL=j<_#hen?t4WdC9_wfa{b>PX zlRjhxJ{VCW+RzG3C(Ei$vjP@=mZ^a`6b*YqPk(uGg)&6uk?%HPa_W~yaTw^8nmkt) z{`)J6QKpxJ`(f@l*v&3^u7YUaFOqE_)xZPh=<~S5b-?L&-!EY{Y|>?}tZX?UHsS7& zLu|L4N%hm~ITm(`Ndyvc#cU9UiY|vaVe3C6W8F&HHgwZd-s>3^QCWwPHw5YcOu>Qf zD=WR;?1OH#ev6x2TS0!AA z4aAvfO+o`oXH2UscD2ljCF-ImLhc<2^CU{!vsIEdCdni6+;`?GR80&sNkjg(MP3JAW_%_OlnkH_yNm_$P$~y;tTRH` z@tVJU8szUU6YSX>)mh#HCF%jvzR*`#RB#ty( z$7|1C-@s^Kyq2>^{GwHiv#zNdyXTmIqW>l<-wYHb`H$B{G{v@Ac7wSMPuBW!V#DF^ zawX14(fuH`@RD6Wbai%M7PiHZoet9 z;-c<@?J9_n-+Z?v!0f~qFxA~IxgeWCKwx$S^Hm65{8d+L*g<$0K-FicBt}EVE%xA5 z^@IZ`(PR)LR59@!r)vU|Aib>|3Zcr7uvO+IIm)=3U&iA2oJmqzg02GuJ+a=nO#HLPNi7n; zn(t!b89ZHTO@#)(@nE+n?jF(urof*!1TwBv;L}};+eL6*C*_j%e&50AD$EI45Wg)v zqVaWq8fYhM+l>Yq6z+AP)YMqRi5?byjy<4OiZV`O+@iI(99`A#X+(tWHlJHt zfh;NKxy>zB;U%c81+?Yp8CfOPU*bHc1v$m?+WbOdyKlI{TS?&*rn{m1VL_HmIPd{dnIz`hr!$(Zcp=(%IlakoRx|17@Ey9-h-PL^Kvh%981NfOgT-xG#I)b&n7(!* zb1U8D6ZHykEduSz6N>#%)kWBP%MaKHU%?yLP*e%cyihKP*2DRQjjVEr?Yko)su&yD zNv6eTyH+o*0F}T#R(^I4{BPv=cEuS;71D>WCb>@lgprs%oTaq(Ijc|La#fy(phQor z(Jj_601$f=fY;-r|yH`#5|2Z1JJ!gx)%w%+V%9Z zu>5ckk^?(gSb7qEB}s0X2idnsJl#Rl?rQ_%ueSPmHqv2}MUE(LL4K-}N_LGo5~e>_ zkuBWl%q%(Cr~nfBP#Q9C3=}cNGy)A}&P!g<6=gkb(-po|<`Rir7KlFl6(V+La|QcH zRySwB=ktUTKD&FN6>T-TeD&5KnJaTrbsJ-7_%6j5rh%-{iX$-`0;n_3qKYUChqqNf zH-hLsaRZVptq}HK$<5=_UrOu3)5lVOqp8r3U#zQ16>99lw)qMXTAcqi;p^p>_*}^l z2OJMUy;QS{vuPjFPlw5gie$e3;k_g2ss>B|ZcJL04i#-u_xy$`{XK|z{u5h9Cc*{E z_S0K7|1IdWf+O%`soHCcTp-LL_T@10kTTVp_$}t(&zNOvwTd6k7nG@2cQeD_vld#a&`KFE%n^9 z0<4N)BWn$QqQsOx%8lMF!O!lAwas8>AW1qeYP|KBueuK5FbC!?n}oeMF*x#6!Q1C$ z{zYh0LOF_ja`?S-DKfk?jXImM;ix_L8Z5 zfS!gz`y@B}BT9Q7{}5fi6wIr$rGbXk0f<;HGa|ME=@9bVGz^I{jo>*SpD9f=w^+jg zTXl3Ok}(5WoSyZtqN4rNfjGZLMo*|}Es`44n#`?hnHKB4-EpFR6}CVm_;qYi8}HXl zfMcwN`bvJgQ_0C@uA^YOE^@`QpukVQvtKxnd|&(-e=F4<~Q-nhyCaG+EHb;4py|lKc@rW=0&)p>+_le8pTgF zGM;q)$vyrThqs}%&$PV*e=_8mWJRpHjEn@%dakV`tnJhK+7v2&j63pO^T-#*+Ujs5 zc+U@u#i$gCa7nAT)%r#87q(A?ri}y1MsYbae&9!FvqbFj!S)c@r%=b^VCEUgZy2CG5QzqUl|i4=&_*>;v8R_;O6COgjk5NID4lcMBPp%veg)0>e^YcfS>OZoyNG93`8 z5zQJ*+fB=85=?yf>kN4{$ogmyGpLnnJY^?<`NGn_bE3bO8f7lssKItEd?b59qoB@e z&(WmBMX$4JWS$jlGPY;GTT|`iX*SmQGz6cc6@J$kK}?aOItX@7$<8scC3-_gM*0PY z#RlyHG=Y7Ibw57kmmCF`0)zn48RW)7451o;BO4~t>6w%HL5m!)(i8?=-XhCKFqvkmEV=KoLB)ydgOf7KSX~i7p6hww{4B@Sdv7i~#io1qNxs(@X~0=;@rrF7`~j#u z;Af7eSkcl(c!!}*^2*=n_sWYmM6q^_Wv;j=jx?k6Iga*+wBo=t$pR^OXrX0xJXq z3DMD$@U`gd3+i;oD+dKo{414vh|8`d5!XgzrO`5a+3@xW@aIhBBQ(Pf8p_Q*oCQJJ z#0sr?vG{&<8G2(F2BkAQxh%Ztl1;VZO|;yE6jbGsrhw9vM*BAQ23x(3 z(eCa%rq?2~J}#>Qe$!VtqzA*SVcKl;?ns; zNCQqbAP_Avx=A5{l254cMK4r*l(1!=+>^f>mujWxkSC5@K2;){*Cw#k_o^dkr6e%{ z{#by_!pg#-A(9skeUu6#Ny1iw4@bNn&A2vPAZQP{eM6WXb1|!V31WVc>)=&ob;g>5shS0hkYGA9^#dG%Ve2VH-cI5~6#T_JuXgRjT~ww6-ZKjJyq zTu$c#T%TG7I&2^{2p6C=ZEI>Acn-Lv$XyB3DgcA>HrLNbkjwA?cL(r%;4Raf(u~mv>{XFIO|a*Dfp5JggB;oQ-XB*Ra=2e>=XpxuSH5$QlWV z%eg>go_^$5Te(_bc&=sAZ}x#Jq7!GkGDL2k+bL!>W9R>b;lvr%>TrtTl9$9Fzwm;n z#e8XEv+)XIyaaHg%$%5DZR&oG$^^;MSn^O8_}`l#U8F<>O8rnU0Eb z28@uN!2$+}Ul|DZ3ZM!+7Pju}+BrI2jsMGE9PE{{I>~rr!*;;;Q;>&*UL3Y`C^pZ^ z!s;t_Diu1x2IC48m8FPywP3^I&-5wS9-F5#NN4rY)IP^B-F46+lFtTLRp7{O%4*Nv zMp{{>+@L_1yk>y8P3w^%IC`tFb5GL1uE9^!Ym`X?BP}FiEF&A><)q2z;?BUHEI4&$ z4^^%8vslHTrr3P|MQR^?S-fHLPmx>B&&X%TDW>j}tq{^$`l!%Jt86- zhZii~klrQ+vOr^n45Aa-Tmc)bnuznMuYJ#duP7arU{N0g$CRdohf*_zz<+*j_dk(8 z{U&z67yf{xc;c!7RFWvq6xZv9Hkg&EK_Y=U(lsSz!B2w-`?_h`XgQa$x^+P7jf*?@ zseS7@ieLe;&$^?V{Gk>9P<*T?z-#ko>OO7`R>ypKZW0w~IEU}LNUS3NzGY^+b{uR| z*gi^nIc+pKX2C|)_%R8oFGeN?Cfe3@mOq2W4Mgx+lE_m5kVdbGSQ<5Y(khe5k1P>P z<%P)*>!LQSIW6H>br76w{`d$D?<@YAThCcTOGp+r_^eAVQf-mNqqE>?^xnPE5nPM5|}@m z>dt1UTzoqhu&w0jx9{kDqy1v9&^R6DhWa93lSqjzoK=L~4yOoRGGj8NXTO?Zne}+1 z?lxrsOl`K=eeh-NpmSqMAT{lJuT`hb?@|F4#*XuG3Sz_URrxkR)egDj@SoMykk2Hd zhcU#I&%Qv{i?%?1?h-7S>oiT=sQwr9B$gFQ1vIH*U|NKu}2%=DGDO^M(C<`Y2Vx-@nbj6Aocz909`9)vpux^ zRFinY!vqmYke_i^69%o#8-^{!dJBAx35-v_6CrSg^qgW62AeH;(ESwUU`X8M@Av2C zn+*Jfy*?ybo#qz>%ujnLY8Z0;2eIy0(3V?U3qWlWVicVNw`T*<4cLNk#3nbGb{VlV zu0Kyk8ew}WjH}Uz>XZ$brCOe-`BPN1<;vo83jSjS(^WaRk#oJ_N-|*YR?#g)NHYle%`xv|qb-_FJTb z%YX}?SfgBFXZ_!@75AP{$V{u=vPIZtVJ^d~-#SR(PeYZe5g!#$(~b}U^lc62;I4R? z$CDd2{DizM5L%iB`_M(}hNR}S{xq4)c?Aim)maa^L^@U`2NCC(cVs)@k0=IvB?~Us zxa>~+3)XUl>N`)qe?(uA;qU=!YS!68*T8F0{X(+PkU38_`1bQ^GYm``a0wd$}jQw@|v7$uWCpzHUe* z+BWB@^XlD(c|k3$6QfLg&uEYh4)*}*|2ML%KmG5> za`^<<#Q7*$Jws`z?Ee0r-vDBrd=F3WEucXiOYgOMK4Fmf{|j&bLxUoMSe9j>{vQz2 zyvlLX2N4XcogWO0>OUYR76^4k7Ng+-k0ccFqZkmtI4L$38Vn2*wsMpF&Qu8m?{Z9*6km8ywEGUze1pedLd3J0T-tR$t>>X$R-)Dbs zfZ4FgN@4~JT(l8wHl``rGZa=Yz5pvM3x6gpo}DpQy($kFiK9PqtUf)Hmrwy(e?93d zZd}a_SyqNGS#6f_ukFDTmuv)hnGDMrXDcc&jRgx8UQ+b8cqU@3__jun-yn za|y1d6iDGPL8Il}t->o{=)g}3su9BYg+0ys|D8Np^OL~+gT_A~UXk_x58|y9Bw73i z=SGQ>{F`40`adZT=uwj7UupsWnM4ipBae_PBwaLn$Kan65T(QkL}~? z8tT*dT;e|3G1BoHqJFq|K7RIp8DYOTzxlsytg8If|9a@C@&Emxv>S8+_;dfE;cs>P zG0Go(<6s5Gct4z>n1He1hwBFlz({?#$v%Nh*$?N4E=aHX;j+yHaWp?%Q@h}AqYr0J zD)eUl;Vi?2${ao%-jk5A(}x4v2zS|k-1>TWLGN227+4Vk$X{24yuoor7{c$Pjhn7W zW8jBl-4M}<{cy4NqH3TIxBp2DEAPX-6^V(Ld^kxJ@tyh)#{e%eR{i1rwn}VKqP)Z9 z>I|N?p2-#vU~k8$ASD%XY>@ngEJ`TGw#2(68!)y%XIp&qsFRiQ{z%Rn*tMj-|4W@~ zOr+F4Aa)RftrYo3GgezE_ zb!I`KbJF%a)^ZNEx1xY*+))#`y>=^o4=)Sv8@2<z@)DiOAjA)5A~Hu< z-zVdsKL3UAW3;Uphu>R~w{ZGuNat7USd1|~<)asM6p&^vG+%#+o}4dc$T|@&bIPZV zU@@|7;T8=lo6&w}*vtI#wrzzfOl~dcel6FhXWfLD<(T&bD`0ovS9lI3yIL z+_~Xf@9uu=4X1{FF^_e@{y^=&nI=khl6uo#Q(nXqZ>RyDQ98KX?m17L3Pqlq?E;n3(AyEsYJ zMSkiL%F_v_mp}RA4BOyHA5K$;UH^t3#aEBM1?^sc-sC367zVW|P?e$dwHt!*p+odc zY&>|Mw=oVn$F1$}89zE}MU*APD%8UMjFXsf6c)pB_E($EKiz0I+eG5j`uHZuXq$MT zXGbZ1pu)OL`FlYXUG|hR9sG#_=QwA3FYBhN9z6X)Mal%V?j`rkF0K6{4bBo)SF5(E zOE0kp{&PZq`WJ-3VvIXF22a~diu2U^&$ zGd{N`IqVE;pFW6!G<-k4g976@CShK*5f+LD_{Rw%p8(H$#@*Nm1`e(}NMs1}v+UKd zfX8UOYaiUiRnB-fuj2{W^EYlx%#N(Zc){eTQL#$Z2SC_0ItiZV-M}x+9ol$_rvU~! z+dEjpC;v`W;C<$L6XW#_GLj>(qmQ0|;#27+&vJcC{hwur%GDle+)clqr*FKEjdkl| zC=gu$jH25asPwNXRr@0NAaQ3YMqmPAg82@;lSunOT{IEyF(hu{DM=PqzPouAS@~qP zZkC~uX{Xb=8=#n%VBddl}ocs`k@Y*yt#U)0?ZMX8bI1WG|;R%S@B_>X$L; zv$SBa&&iud1!`&yvgyq?;L(%qImIkBY>05$D=;(M1y8SpPCL-O=frfM;^sWN zI3ns2^j;h+zq?!Aj)kmR1zh_0GOEZG`0y(=H1V`P;)^l?8%wF6M%cMPVEDG9LbZCP z->BQHe0p5sKngBWI6!>*)N0uVtCVfMhEWH=wADyoBx7xB``5I5E8<(I+wrfik2}Ycj0zZAEX~l0XZzmLfBQ5No~-Y@Tn+Tey=i|z16yMmUID- z2x!P`{6)_wrGKPoJ6cf05QfQ&3_uljv(-F5%q>_CSsK*gW{T;bQ-2;BlgaY*C1F(l zN5OKdZ300W(NR9(4dIQdWY8{#CK1)(N< zmocQ?+ArB<72qneq}U{We}>>h*~+Sm|7stENK6!S1Q-&5WL%{HNP`>Ea_^IQ@$Lvx zZhJv)u2Q5Bi~FE7S1C&1)gD8h`!}9gRxDzrTq+Yb%LMv#l5T?9Oah2Y3*sExpUzr) zh8xi~PS_L=@Fsn_vKDyU3m7L=u7Oh{t=>mHs%FSgSK(!DfUMQ@LWbUCW-B=8!vcM6 zA9UEk&qfy-2{^J*O(UA>CR4^*jox8Fo&li>rvXPPC3aY9I`x4dK{qLUHViUW{WR)L z%)e=#psZ2}$Gi>F95CR7+3iU$#l4}~x69m!fUi?1ekq_o)vWk>i0n+Da5pJpM9t|L z^4xg3>4K3Y98is$lnUD6uO2$R>VmEl(yz}orRwrEGkTOwZrKjkeRy_iC83_4->py_i1hs+b4ytEvw`D z3t8{wv2SCzj?*E17zrLK_=aujuq-N$%paFL& zMhps0Uc}i^%48zvzZ5-2q@-;VBp_H1DPHEViD68Q{y@9?ZhT}u91V~bVWZ-p2FDYK z2%Pj63_S_>rTeP?(B%BNlIVKs4@HoJhtwDFNl=rA6cLa>Z|X;yLY<0ZR~R4Jfyq{w z8EuA^O@j}kw%^Y45&dQFa3h(JpKh>1eT+eglayhT)u9R@qV=csTQ@8R5_Q-!KZVb8 z3k~*PTT4TqrPei>y)spf8{OSr7|Rzx_47e<_2UL%w8!%k_fmeA_|3Ip7&phh749>5 zn)`nf%V&YW%e=Mn5EvfqNa{f8bI=^y&tG7-29E;lB}V(mG=GLD1n&-g)iy=Bl*t49 z;|-^r-`H#rvx!$aOIJ*NMZ|QaFx@e6$qq3Q#_tVdDEk#7FlK071yPsv^Q60>2%yr& zp(q83Nuk*nJF=RL25@?y$IA0O{luNA49&~f51WBWMbcJLVC%;Q*Y!X0P9A?|iG{*J z%wd}x2EsCEnoo zKn-&-^STLP0l#b132I>`J00{_K)m2jhn&ZFU$b!|{#Sax2|4kj@<1%&^$xC#@YBFZ zhm8Y}Pz2l>CBTCr?l9F4F|1h|-~6TKzC<*uAboC`cZGq2QGh#bCMz}C9mTWelU7n) zhT^$fLa7xWYq}ULJURl%?R{Bo1^15Q?#}P7cPcn;u6#JZRx!jwUS49~P`J1=IvG4= z5~UBW{tof}sOG=GDK!*AFl>w#$g$rxN=u~%a&%JfJJLNFs4UD;)OR0yS%|4JEODsZ z&=4!;%0CfCMozo6X$F;8K@?imu`2pP4g9nT~w z;R7wU^~~~lf1g8KQ%+I$982!{Mj)CL#4c1rxcA+fK&L~bGQV6xN%uGE;ZmB57g3=L z@Y`(`ZbV6Jz@8&{$|eVVECDCa*%fXvIh)A*V8oDIkC)wKc%iVDq895FP23AuS548& zMozz<67G|UVSfr?illt@ER$yzoFRIndIf>)rJ|aS_cGj98}sgY!$7>$Duk4?2~7fQ z7nCH{z6Fe5!`a~3PzI`wr^)8ogb@{Wz&TvMh~NzCZ$+HU!4r{^#rmW+UiIneD5YjG zZP*f-M5u&&tV=*hjZ*x;O|(qKw6rWUwI8$wbi=_2HTNU6I_OiymRMp^v?FZ#sO}rtd7MY5fe5vjW|=S0i!V=KfQ!wc z-DyrS%}zNyyCNAH966l7bDO{%gD2PIei~kE@aC)Ljl|4Onc;3&rcWx@m!?daiOGJ8 zs(whwHcVB{nChnOD{(y*u<$MB0~E)(j$-wfrqXX)LEv@TlNNvpAy?!In-`1llw+sd zex^py*5rsq*cZ92ZKbC*E+lOl19C(rOjVapa%E?>#3zWL(9u~Y>wB*2w*{g1OtP9A zMg34p&H27(RAVe|+>{4r9#%Gf-=PUP`7{DG*@~sWxuoSl>Y_#=HvL$&HI7~rpk66{ zb5DTvtEEkPb@J`26@v9bcfr{~2vsnSEwq;ICoqx!-1E!b zpvJLZyQa0Dj;3SDHeDr|f4k`i|8m)yg;;=Is>v&9SC+D+*X4W}<#OiqkO{CC zp74Am|0nRyEaVxxY2pfq1Jt%2`q45$wA!7t?uVe3=l%9s*FtMFc*6(o8^TiZeSm{( z;3p58$zI0tB-u^`!Y*&jdw8c>svdnrD}*x?naiZNv9{TX@Z;dZmtaHv9ya) zANL(*z3;syl=@*Il%z=Ia^bDltby3N^Gh@>&=2^8{Xw>i9a0U&EkI+Nzq}IHDroR2 zazq3>e|o2A?R3PzReCe`x8T~a1R(-a(}nkzozln;2npTR>=v}#7f_r1zYz1-Xji5x zB99&gb;WF+U}o8~cn|Y%87PW0r$ZT;^;3go=Y1MS6|6nnUhLd-aBy=GJn1e59sdS7 ztduxkkq?%>v1PoJeg+=a8P2+vP<$5>f$w*_o(t3xvRNW8EnXv)yp74N5Zdvs0UK~v zY=VxcA8gX2w%24*z5<{t^EjOEx7cW{6&Cb0hk!7a{6+v$MwM_d z@nH7ue9X{8?#qRsb(@(!1e_g9#Ew(Z5P_6!rb#l1(u?W>J^cwW^F~ATpUbpS91WQU z@2df0@rtPgIcVVT2rN$(nlHCx+?p;)h9+pVpTLoGA8Kv5<;9Y- zp~X>YlKo=Ys!MzdS^Qx#68NN4TvDPhGc5IOyqA{We%cwLr?^Oc?#1hszCe2U3;r}d zLdx`nvs!O?`uHt=X%xT|Rs7N&QYeI7y+u#DMNf$Ql+O;tzB=S3!aRh_$hykN?CDy< zaY*>vOfTQz?ge7z?@N+E0YqS2wVqfD^--8Z1#TR>;hD;h@$v8x*omop*EA+aZBzJ;WXz09OLq(2esgVr77DK3`T z4tto1`6dgT@#y{&nP7@UcZ8<_+Mf$`h=)S{bJt$S)GUlRIlDfDB1!xAqJ}VnS^(R3 z)NaCPy=WqgTfbdZLw{_XY3AXNDBC)M)9y`v_|hJ?tQy*$hC_!lc(2^&nr=MtuSyK@ zIut>+{}6 z6W;kbpY4VctjP6T9(qdAntR&8s2)~@Ft1116xVHfW=yx!6=?vU(F6#+&U5@;Jz7~KSZ`G^qkyn=0E+Fh zhv)dfy#{A_!rJpaIW9nVKC9jOIFD{K4i`0mphEtDbc4AsDaq_<;WXBcBnVzui>hH;dh z-T8#@-y>kN0aB*_UY!XhNS*w9FUOE3b@6Y+2aqon@NZblVgTrY`CcDA4EjIg5m=zk z8(HXv!Jkrqk8z8J<02{Ye*;2jB~t4UA43?OO~Vv@@5KsYSwOF)Qp7-S=WZ^!pqf+ zgKmFsZbrGIRJNB0Q@8JCPVhC_+C9x&Li-GOI7jU4t!{qWqm9nTo(-|81GU-Ly=!%u zogl`)&8FO3%)PF%cH7Eq;NDr8O33!7^2e6%2Zg-Rcv#6ATfV_zK8&oDlWi+_*SW6w zY~R$r?h)9xU)Db#bYbMbWzOOumzS;?SjE7cw!1=(r#6n5--33_-al?M2(Da;2ue?< z?HEK?E=7QC4>kTMbxJuyh9TuKng_qV0o@~c-vzED49p%yLU zbcN!6BSTTuzSQT3mX<{x=fGs_SvmF82ucBIA>6uO+@D`V*YHS_f-0-3@+qyyE@Ui> zs|Eb3JUq2+5$JvRYN@8HX4{`%A0GdBJU7K5N~@MbAxyi0sEd^o+#X_oX$Ak=z&W_;`MbuFhQHMas}~JNYUVphF^~H zAB`urOj_8;Q>o9l9wEv7b~biv2YFUVu>fzMjJSR?w%U%OVBdzGZZXH%&G!_(nRGQQ z*=+jmj&(dVUQWW`@T0G-LERbI5-0{ud=q&iel$D~+g0SPx8U@tLmrPB9jXFf?yTB} z+8WWX$bAuk*Uv5DpaOGZex1|giQk0s2Lwq`d;aC^p}Gq-?sVjUmTjMAM|Z>N;sU}< z>-Ajt9)^DYDQyCScC$(1(k3b3BRS?3m=YgSaX&0fxjl%32T%^3VW--2St8I?*!U%< z94BwY_d0}<^K6^9`>U_X(Z^1pRU)R!5yE&|i2uFF`nK`5htGFU$H}0Map3}HfX@TC zPm=|HzwN^vtB<_fXfC{yCnv>kqkEtyGU%kI5MoStg!?{`+FP8lEWEkq5psGmm6VTj zo5_W^f!@N!CVewRF`k*F22AA?576-jW=#B5p7=D)n2^6tax^u{YcVbZXz}%IIp0T- zBDzE^oh()b1)sDaJ~sNWDt@hs{Gf`|ZPC*}7*EKhuk%jKVrPLHaI$zF*$ITf(C_&) zAGwB<3;9;%3Q5QYFibGc23L3P3reIqo`KEBL2ZNcv9O6p=oZDsC!@-ToDkYrVY)e# z@_*Hf4H`Jj0z>sYT_`qDbW4T{(j>u{#JIx3>_?gE9mit`n`g)e@Z_6IVN#zns zMJT0JhZGJD!UII(RqIm5t{u0VCOv#?I1;8?k>pXa{kJ`S-TL5m3_PO_mwECNzA5ry zo<)W3XHOw|e`GY|O%UmI+IQrNEsa3GJGqlK{fg#$8JrV5IrVp#)yFJSR9e_W zx*YbeNbsNAheofLU7XL?_rn-U`Lv2uZGcCzufdX}N*sw$O#-YymR+(K9l*MO6Tdx& zjyv_B=bJ*o(D<+0tzDC-6pYOp*nYcx?F?_v^p5&ZR zFH!)4R^c2+bJ~N`ol&G*J{Ak9|j39LFkst27l9 z3{n|dZQk&}Vnce`H7jJuuuhe)h;~$sYf zQ<^LY0UJlv;9m8{Yg<2YAea%+OC(jIO)$L?piwug3l&yDwA;qg+pZDW()KQ}V>e3} zMx$?p*{t*h`o6R4IXL!l5V_5r{37{jxi~B{3LgN3Hv=)i1_C{9d*+g1628>;!XVb33!`Rv+ z#=A%EkMkF`3@6yS9n_mAG9WYlWu8$qeFTKPf5Rd~#8~!O6mK6dStF_@q_5q9U!*7T z&(1@n<~{e9x>GxFKF`_`CeI|V1lSySF=qU9Fhl)@-aJ7k^A7O`V}cRFda|&LSvm@x zjnb2^2bC#FpJKh4z}Gn+u<_dVE3y78-PN;@wEEdwA@>nvPg)m6PXQxvIz&aFaat|2 zM{4IE>kWE4WOMUso&|afn+~Lu+tfP9I10mFqp*uzf7RmEHYa>J{9jysWmud&6E5!V z?rw$RZUuI6cXxNU#i0~;C{o7dxv zUf)x1f1>5_jPpS;KgHCE4CcLi?7GQ#?x{o z7{^$!aGE;RB!vgcNAb^-%-0W19s%h)dXU5WyqUNj+Klh1t#RS#@|X!-*$;?SMS8qp(MUNp+EEMrJZ5 zcLe>x8lNCQ;u?=WX;tG+FC@O#Y1&tQbz=1tThK$&*ojpGSW5I?8leT1q8k?J?Bsyw zH|wH`8 zoYYVJX7F0J*mvQVtwzH~ZW&+f1Cax?hJ9d~lI^e&Kqqt`XFTPXr?p#z^sdGafW%6Da!AxA*DuISv zk7q8{IHAQXuwHnoo1to>7fnA#=No!f+b)8inw&~@C_FiPNtvU9M|ij=cS18wtkD&@ z$%LIj0^U=+ft3E^-_cedlWfBYzw-B=3gsK~cRCe2oTxG7FP3VCDk~tU*+S-dpZSctcpSYtNuGN0ooAYgIkL=&<@uQJ0MkOQ+RHBsVC6;DBj&kcMxX z-USg8nXK|L{;;ft&qVuZ5N1pE3mX~Q=4ivza&s3O5-6U;1(&&%-si;*2eqUH72MkF zz0Em6M9D7)j5%*jPT_PIFP8I|5|9=I0T)gg;i83yCvi~w%*`JLwNslZi0`0PpoySl z=*fZ{g-sWhi43s7>+9zXQzD|BIt=c&aCt3X&v^*BD4n#_5jZSjA2R+>a&~4Fz_P^2 zahm;1eHzbJcz4mXe}#vnn0t=hvD;EOTl@ugPMP2}g_+6)ON&&|9Z!tIZu^TL)EOSe zaxl~GO0G~(h+O5A_cD3({H+801s6F*z-J*iyWy@`wvzA4B(SBfU_bg}?{!pGKqFh& zjKu&;?0Z+sMBneM&c0HtTJxBGE8+DsPSS-ob0Zg3_{FApU=ew6Mn+W&#BdFgRY1KR zWzHj}QuD*eN(Rj-~>yrucP~!xU|(Z6{-2Fm<<;zf5^JARRHf>T6)E zcg-G;c5v|x+|ci=^O^${Tyx}|bP*=#RTj#6+@{mna?foQW+*AT`ytjT5UjH}MmvA@ zbu{uTd?R#@9N>|_QXDfR>nbDGT}Jv=z9?aAhF!BXv;Q(hX1S1C@g1oCga}wjE zEtu-pdYnht*dNY`GCuh=i$uZI7rmhrInGWn%s~od^|(wv^~rZLj;+&ipRr zrjSb56V^lw$=b0Da^TIjXxc#tnfG3Ox#<&!0k<$40V^(ZtRpb0pj|T_&Ko+UOiyDB z>^5>zL-!M?JiEYlT-!zbl@b64@)8_he!D5>&U)%HOJzqw7M{>5Gr8XHi?9ynh{0;@ z`U6h^qW;wK@^<*gmuvMN0;EyvG3sivSZxutE95LSwtB4QqurINL`Z-$vE(GhW&VnV z8z0m>;g<%nO9_Eq&?^fK@NZ2J!Rl{hHdNg-vBkQb`dxCu2bPQL^5)@>0^R@9-%UjJmfNM`3Gd8n0I=@~t<~c6Ya;`)fdlRMajhY$Og+VQ>E- zv?9_7QtedMuFo^61=$OSFWQHBSvU=7 z(^+eJEu>`Al;-3K4We3u+(cCy?%)fl8B58{*qTwi^RtH`&*#@y+bw^2*WeJ|Nw`O* zEe3nh1cu5;>BMopwsNbLNc>zZxm zJJlBfCk(*Tu6AEDNmm7_?+VTA+Y*61UEyM%*pNfe*PT2LqpaLlL)BiS8%pE?<9^^v z6t$^P>m@(v)4-_YCFZYvKx0}#gP%q@ zBG(^<@R=hYU+Q1;&vOF%asX%5L}@$M*i_ZDyD_1cjk^~=&CT;!hi*teZxxmN3+J&p z`{85Pf}=Z=DP=z1)BC46!VFiRg>fZ(pGQy5(5r?|-5+VL)UpFoH3eU%cVZ09)a|1I1MH4L1igh3WDv-n1h z#eVgI=_K4n!A!Pr!o0KG^CyvQ7hiA+foiUGk=;Gg>s6UZHcO=X7CK*_I4Y}si=u$;-1CaPei3FADbd7Hb!u)U`UN}Hgpc{XuZShJ~${STeb&fe8fdL zoZ+YRB8R7KGl9QbvP1cFE#NHdSy(dH73+Hn@kwNh`zl=|_4`eo&sWVYR!!l=TSP%A zSdw^by1jG>Sagb?2pM=NJ9w_k!*3)bQKPN}#jB^(4*p+KIlPGFl}(+F@3rZ_mGX2_ z(WmXkLZtQnupdI&Y$tp@yV{uEv%N>z`XOh!#k9`aM@KwqO#0WC6Vo;5DC+T>K57Ful}2^5D(#hUQx*W)K-9bG!);;84D2>2Hv$<6KndlA1|*75#>jM z`b`b6ZRpi8aYq$_`q)Q>QOkV>((8nv5jCPeo%Z~+@omUi=r-e}LEKl}+Bz0^}?-c)&2~rhfgn^tK=0Pc{MAXM(h;*g}afg z%mOj60&{tpXJbLhJvlWprt&&+N4WxgY{yK10-XU`zKD6Eod#ZA#o7X1{~GHQnF7JU zyGyJo*`o*4mCNLWBt24wteBAN5|Nm{nuDlE?*uCCu7N<;~#f53t^Ak$jO1~ApYO}H_?aV7?Fxr8e>nJ?R zCoRet6JEVGZUwq=5(k1ng6DD|x^Sy--No7fO`U8UUw&WU;|``5&X$=kc<~ROmP?Hl zSI8{kd!euFET3a3a$qO1XBegygNs&LMn~1!fsH20c10T%?p2i!oSLSVAJf%;5(Mp-rg)7m1IvDWkOA#F}=T3BbKyK#(K zkg&LH#YnbcypA`7)Rc+RC`pNNz`PT&<|(}uptZbLhS4s zR;^xM4TN}Y<FzR^Hn-`zY`dM%RoC zt$=<}CD4}I*vft>nyXwS>wrOW!=s9L^o8^tnzDOKnKeb|YiTjU_x$vvIVOcuFXTk; z2Q|=2wl&9OT2lk_;O9o`mY~FNLH2M$g2K-B%Am&n%<4ttL7ItHCz(Ty*W(EchyCnO zKK}3Fllj{!3W?(!((;?3b{%O1C5>g5-|)T9EaH9?6|Se2{E69?>8@e z1pPg3#ja3sRQ$ebXZ~Unv&Jwl1d$hMyE-uoLufpV&Lv7gD#zb_uWI>$9Rp&_AAdO^ z6+nl9?Id?!ira$n1bc|TKMJkwS{aaY>Dgu;mM*!$(}~3xR}1!-ycC%qFj4)K4^{tP z5XP;LzQPb;iJI$}y*8iDkvtj2!~Q&z^Vvp#Q04_tH1BkAZEsx%3Fi~sfl`c7HaJZ+ zA17*Q8OaZaBoH0{lH7n6IDoy~H4{KB3eqc+4N}+0Ad!Y|g8bE2*|tP!n`WTx8FBdo zMqA^peH1xs^hKOr9ig%;PP&v92uqy|90ZVbz)f9+hG&B{(LT?{PFs!j2H|AbngO+r zU?kTi=Q z2(J#UOdwrv4h;6^$dziMR@sMweB%_byL-^bQBrU^FDq)#()X!4vYVWaCOB1>HI4#9j09w1Uc-j6J>WlMU_V!gOetXUpShY6y8 zpIcWxwSg`R+TXX84F!+QiBA4YujE+OdyNn+|0VTym^jp0bUzE(AY37G`qSST<|~qQ zS$xt7ztg@ot{Mp_6lLHSkWV)$^011z1uI?_a=mm>Pyt5rHRd1fycj1Fn2lHv1Q5Cx zXG*E===><%q?dRGClhKncganl)Z#(RFL(-j6Uz25&S~QqFY~!UUo~+iI~SX_pc6Fv z+NmD=A)@vK9)Oeu=68iiQ1ZuNW68QwhiI~yTo@KRX4SBm5E#Y^aw{2?|md`lH!hjO_JdHxt50$E`N{ zKr}Q_G%BaNe-RWx$EtgEC1cczoR$de1chwR9P?h{D!Dgd>f}>|1Yd96_#FP`tEgxc z7wMB{5PW4gT3DAVUIHI)5isHlwX+%{e=Cou?9d&LbJ8asMs-^o3il3uR1}wl&JtQL zwmTvybP+6feXk9RLg4f32$z@BYhPHXmzfL;L-NbYcv&d~6;)WdciGB;x2gMtcj#30cB+UBq(ifCib$Sn;GT>6U@dGuoEW0sFA7Zqe zGF63*|NQ$o%FaAl{m3A?ujnVna1T&&=P-{uQ{0;eke@SVWQi%kS2$cfr|W*l z-f@-Riykf9=*CPU-!wKS$?lc0gz;LZry|9oJr5xrpFQ2^5mha;v)jS>T7Gm)CP*&Q z$i+{V9vhhtV0VmXZoi60_vL^zpLcFh>%H7MZP?sqM_AWu5Pj4sq|ZT@>r^DJJp!oG z!;gV_ia+A{a5nd#-03L9Zz1(bDC-mq_Bz=>eN7&#{@t2SsE=F;-|0^>lF8U(}Z=vPxG3hFYaJof{{CuLRFTQE&uIJ=PJIk_H7&tXR& z)0k0oGnvVEO~TaMhc0T2aF4g3`N)X4;J;sfRbb^e0qqoW)8Y18j?gE_JZ>;KC5G)~ zLPIrcsW-`W2q2F|TWd8sy74y_Z7OJevPH6}iebwq%ZkG+##Dh?B(>Z^c3wMJy+Ft) zsIIL%J$=S8){3e68bYmOzf=)(+}LPoi@3Vs&-?eWN^<))gKUXfzH!9^gtsnwa{@@>oXv zzK6TnN5#bIU6Tw&!sB>@`x<*F!aQh~K~5BvNY2o2$ zY1Xu-g023GdMcn`q@HCgc}uoL%1$5qS37pnZcEopP6X z5(|Amsd6c3P|eD@RpugB7Lo7kly#2ZbC+9EwHK-dnS!Be&CTu~7T7wj-)^ytr1Emb zK*atqGyC25BTBpy$_@-(zC3tkUx}0Sl}?kJiQ4Jptb5y{8N#%Vg12ojRZe!ys+&@^ zyBjOFLiDO+DBP&C=BjXw`cV~-*>K+Nx1U?od+61mNgVU+TgDD$U1VeS_0kXb-BJtD zKx+cUV7n%JpWw(imn!KQ7m{d(t)v%qiE9bm52fUpQqd2kXe8QszcQ$mvSoPIV|9c$ z5>>{YY87S`|5%r;>TjU~sW&x76MDZ=!6hlaj{Au)4a zeR+l_MNiai7}^;aQ(5OeoM1B}TIDr5nco5(wz_)Uo7G`mK0}icGcV`RxQOLsXIm@a zatdoM_;?Z~S+HNX5%=hW>29}@+-E!}6+SqDAjjNQHicF$gjZM#r};kP=F4Yh8fm^2 zeN3e0vo^A;aq=eM!KS5!KQ1!?aW*j30E;P@ZbjXzOU8&+TZPM+?b^kh7|=%LFjLu8 z!^f%ohPl%09k6>R8BGyF$P7FL6T6xv0Dw!MYjZ#{n4?f0RH}Re%v~)dk2{nvd65XcDgR)S~*Q!vO02zAXO;w3NrJVcH?JN4>RH8 z!9t-CU6d5k;Ayx>KG^f=V3e7p;L}2)5<8z)Ip>fYT(w4(j%>q_qo*b zaVAq%jwt($0>m*W++D^S_CI3%BQ00@zdIzIL?o*TA!!hcR7&*KFw#*L)9O?$j9UxD zs8So-Z@K1x2zo_%(B}duWp}{qoeGZD; z|HdT$b4&zI)Er68Cqj}YFy(iPkK~#qAM|XT**l6U;ck8{m`b0hj3_Iyh&D~zObJ_Z zXbzZne%u-(4Cj#Wbw`+$5Kz&7ZD}wq4mC`AFTnQHX;0rInfWe-{5vF`J z4lDanFtRn*6+vUZ;==X4VllHaY1a#6LPA8H7=+N6XiD%(VCYokM`@8@K**-KM3gN; z8Cp_y7FXhn&2AN7a$!m^q*E&BXY=mJYa81RyF)pERYLP!+G|`1L*QlmzdtHBYG{Ov zqFTZE9CiqVroE)5`p9)>tCBL1vK)Y4J0xxCLTG+=J47Me}UZ)_piUJ zVB6<%2F=-{`oai3xje*Lm`#Fp9M~^>244DMI%h{R^U5o4nDr_WVarjZlxKaP88F}n z$G$w)6xQR6+In>MZf__{EB(mwR)Mh?%>K^g;~_VtTWNC-6C7;Em#SQbKV#~oUjKKX zuG;PpG@(Wo^tj|9c=Ik2(URmlNhQZ+fgQm!?vLhlAdS{L8C@NS9zhTL9W(jbx(7-C zc59%Oam#g+-<4<&Lp6ENB{YAI%yVx=Gbp&9oM5`{0^L9AR96v$+6-$EE0J-F3KeWT8;URt9qJqe-d_aJd=_-Kq2h z(h`1w_<-kjR1Rhi-FtR}K=Bf5y#02KP&X#HL=O)Oi>-Xkkq4ir-R7IhxyS15OUtYe zg8ut&ylKTWBmMV5 zSbCLg{=5-V3$!&#F+wj3hz~gCA;{Op+?CX{lCZmU_9yqn8Z&_diDmZlnoi@^NYi20 zT1Y_NRpX?{z#zqjMkLt$adExbR`u=;Xtqxvi7k!a7duWV4u%R))cfJ!qOp3zffU?L zc}0pq+HxVYuKc@=&C_GXjtD}PPhHdKw5VzK`EEtN-c@F(ar)rzAx^5LN-qnRRWzF|v;}ffA*D}0yZ#lbuW&d8 z<9qJ0Vx3WFL_jLveCNLQJyj`QF-O^|2rnb)GjoS-;=Cl47Xzi+5dU@a8$1;I;OjPS zCLPGZdfjB@x79<~!6g>ox8_g?kmeE3L6WBAZ3<+QG_e*KEDL5MZ>5!)xOIXR4+^Yu z;^gJ+PsUt{FgZi5IOPI{I$I5O%_A2HtQi=XDfKolW#ihn^ z(-DM_hvW_@a2+xYp4D_3bv<|GbaIJ)(7Se)A&l=2G#Gt%a*BT6#%}0)xqPF*xB^!r zYW(dHpR(9{IiVGBzAJ0jpRhTO0(i_Jcwi@p@kv&4#QvsHgTy+2wX=!9#Q1CnzL*it zWY|h7_H|tWe|TGQjVR(T2;?kGh1UOuR<-m-rz*%ful^DLLLRts9zG-c;1aR#Y`l88 z*^+}3cYv-w3Ox+V@|d`Rz8zM|dzXnatHul&<$Cx1U`#WclA>fu(G+|f9X(+?VvGkR zd^Jqe^dpgyA`mYo!m%+1kb6>^-t-(xgbqL8{w>6uFHf8)6>~o912ly0whpxTn~4r2 zzvfiyB|6KI_=%?C#N3_JxhKo6I}bgW$6S)mg+9&TP)OD$I0nW}%xL&);JO1_v~h_F zQS(n^9Fl|DkQ2{B6A8sjP6sypzzDGVHRay z-Cy!eM9ZvL`R(R^is4W`73VymAn1|buy=FX`nZE?u|;r2uzy-wt6 ztMR$|PXFv6&}vjf`$>XeSY&ccQJcx;8q55xCsv)Od2OeJ{pB2xmCVf?%I_~%bzA9j zKtU8u3jwAwRR0`*dTx@IFB51U&BB*5{yl0X;wrtoxo1(g)A?*jYiY}R_r?*|Q(Tky zLURJNj5?S<{Bf6SP~=)m z3otl1_iZTF8`Fp>u-t)$Kte8>!57p1E|mg=#B|~yfz{1ef8Xx_3#4;=Msfcu8-zkM zryF)*!tvyN51(SJSZajfU+^yNlGQiil(27ft?z(kQMJBde*ISprgVC0Y3YY$H(khD znV-Z|-rR&mfz?=}sNh+>m9~bOWS{>#q9jDwkR(M$kuGQu&{LEiFPmS|t$XOD%NYTB zmg*lZ&|nK=2w`z=T?Y&jh(I@ZbIoYk<;5x^-)4s<{*A1Tt1 zewD>+s#w!JV5Aqf#XKOSKgp)Z-pYr+xnys7feO1F%outy-eaxwhB=3WFvYKLJwekO z|Joy~@pG~7CE<31H67b2eDTrff3$i~20)UE9Dlnzc`S$KX+rRs6U)wwcx=IuiwLa*;hx6RNbT_8p#*c>NGXz*Q3A zAbix^;A4H{^`LhQ0a1ts6e+t-`0={tPkpf182vjKY(9oKmRgwF*`))mH7RzO9q}d8 zG^?UH4Wqt%$Dj5d+#B@NRJwl{59pn#%P@6&LJeVTMAFO8h|}2gC3?d^NbgmE^i&Dn zKRA+n5;kob)!!sW7pdR%PZdIr%$=5*^nnkI>!%h6?&{t6eeIEKlufaG0=iZ*D-Yyb z2Sy~kTX>>y0iip*e{DUCcr(gzxOzkXzHcwlu4u6q6y~47;$ITKDq~SE$`$XUtWqSr z8m+~`#p zt{2qeQXzYBovQ>PnmmMQX_;j|4j#)Jb|SE#k^o4S#vuRtGj1K~GCrtsGYhX-fR0^Gbb9NDTD{L}B)kcV}-#_>3-HQb1h-_!mB+4!^PrZgEAA4+1qKw<99ACsi*N%rBSSNt&GMm_3bCO#s zl{C{tWcQSw3O^Q9L&)m92F}Oq5MUA0HL6S$S*O4FNTZ8yCrMk`;Q_X!Wf*3l%U&>u zF>9VB)pO~T^XKM7vKHJ;$qg?UR{Vw-y16?^NNl3(^*sM4sM)@)dH(>M*PlmyAdyd6 z8+p7$uItzCPr6K#Q|G_~F0`|?zX2dJ{GUh`Ql}@YwYv7E!;(?>eh!(tCN}GP`OLCg zOM-Qrc~?+Fz1j+lifx&EL(-ET^$_}ta?drzw|{co(3%1lSBvyO(ih5Z`y6pB2{5&D zb)1wO&HPDPAjU;iC02hfH^0*jFn;w^MXBqSxH06kKHM+bZK7+Gj=8%j{KgDS+e}#= zhFo8o4)|9Mme)z;VePV)p!OpqL~u}>ih}kXmTEW6ma8|-mYBh`1XeOIHZH6pkC%dH z<6k0+&rqh&9bnCGjBWI1mMjDn|FrQWmA_#eD_{@|g1C($!(mzyqdZI?(xB{E?;Z=G zf3YlqzC$BKoOco-zX8GA@f3po7&^l&;@>&8pZ^s^05r%|Ad0_Ay|@}jQz9j7t7W74 z=Q6&I`m7L-IjW$fRtyTLhoTd^8@*A<6*5IagG0$&$Bf~8`4GfIg3XS%-RZwW)D;8P zF}mYPfa)$!jXFiweDqOm9)|LJ9{Bt@k@iSsPg;>l1>v>34&^(f@fsSpU6sd?**gHi zN3$*H5pKaBmQq3+H1Hg(8A?^nt+tk_IFGD7quV&7z5vO=_R8lk+s=&nPFTbQI>0|Ls%3>u` z!`5_6X(yhUga)vrH|;q#fippTisIxpViT-mkzIBaB@;?GSLR2EU+3%Wnt`*|>W zWK6~iQ^;L!@MI`|_2cLHA*sYa!1daFb0tLzf-=dJk~NwB(|iAZddNS#vg3s|LaRh1 ze@H1!V)0}N`ZjzvikW}aHNfBM(0HKHy0~KR!IH=HSL6`7(=cmAkmf}gS)cR*Df>)t zvt0c4CTpWJ*g7L{imnJO4V+kje|7cU2vjWW*>zL)fg$2Mdg(ece&j1wpP4Da3ml@# zQLMXiB<`L}utlS}(z)hJo1z~z=ZG3YpB&i_>8rs44N2n1P+U$cfpVzmzbESM`hy?o z6O&ZybB-{)Ymsl1S9^GP5PFaNxdJmUQ?g#+-mq^LJ--7iJ?;*uaQ6u~7_~VSYJ^|UX4z0GbH0uDM!C$T<{1sMO!TZB0=C=}#(2ph?5bRg{ z5jNYwDqJLeSZS1%sDb#WzCXWFLR8=t+%n6tw=qNz&LWjC&ipLQEee|bg_d@i=vBq< z>cVG?2;GLOd`hd9cW{ferQjjjaaQN&Tjlaw_vM^&J8ApI@hNEuT5uY^vCH4uUX z)LmewB(j%|LItUg{7zu&)AmkLO-IUvfPY-EuvjZ;SA8|VH2Y_%{*9qHH^Rsh zzsiB*1AK!=n3r1c`tWVI9F)D@{acrnJhX+vLcnT0lYrg!5O(uv7!%aMx5&jV0PyDhobfDRuiX})<_qJ&tDXrz#<)v>olN4p=QOltQO=m22YK@9e8ICV z9p#->&}wL^1`uWu?{dp+g#D(C*T{XcGUaXsOfYm1mN5s!d zHw1oh&`j|A?@TN1kZG>pD8@*}K!MIM;UqcRpX})~A_uIfzrLgm0c9HL%~G@mYR=tA*Defi#xQG!-I-ry&R!xqkQe|=PFB`yI&Q%=sKlV}h(gxlDP^v|li`yjjAM1k0)!gehe zM0>qyVI|OB0xe-F3|Mz$^Yht(p~_7f&)*Id?#ipKTr49&d-pNtCsF?%sn619VA%+Q z%2EC;dX|nZL}m}PGpf>gX5fzae(ClTvSSPoNLSu3Hrms71|EpVne>AsflMyghOAL! znq%a6q&b%{JGAK(MliIyr6?D;jAlX>aU3+%8WHf^0;=tEJ|!0DDn?g8>ZdJ=uciIU{5? z@30et1q4`+&2vBf5y9?FGRVe51eHHME7BGlZxfkZbi%|Vov7ZB5Q7wJXFavL`XU72 zU-8-yUR`y7bG%o}%cCd$&NBgC?)g{TY5GS{MFpC|#WcT;Fb5d3u1C8y*xwMV>j)lV zFH|~W^Qo=XW*GM6|L4Pc@`dw#wi(!SO?KAC~rZ=%B%^a2-DyPPGRo@hf0xQhGV$JPRPtS z=AeqBZOQiu!^-;P>IhHhoWE#c4V!~VV6q#tDcecfKqKBrS(NfI4Ew_S1hy(3y}>1d z&M1WE6cuq3-M1S0D#l+Q6JlIpF+d;`^E!`MtTD`Jal!j2~ac zkQ3vn!0tW#k5QZMAM}af;vkxdbkc_q0bIZGJ8{3f{FInyB5d!jU*pE>Xt@v9P-513 zp+v1=v&83rbIQ<-7=JYTvYNZO+7s?lf*&b&iT*dM+Qr(|^Fkd-+y7!J!{$%si#=$E z?c^u3Q|@3{eMzu1zQGmQNT<4^4Q0n5s@T9bX!iiS{&pdgB2Zk$aD&~ybkj%Nttrg!?(IW9iC^2=mRv? zQx4=DC7VTAPGI&yh=*L9AgQMz;9#QB(j8RF@etmmN1+@no=^HAJydqEZ}|}?1t(2$H2m zFmAF~l@6|_;}{oLpz#tKCvoHBus4wGmbiov!)i#p?FioF^X(%;oVQF7XW&3fQvgqO zm_==$$|F5L=lkJKdoJ`cmfrf(@n<2cdZUzoX#s({yx6?&$D2vn(3M)r&#oeRH+YD! zON2eScN+i1CY@L=(vDW)j)z-N{nStH)6T`A(c>KM*c{)7(Xrx-bB7ZjvU7V5G`qS% zLNcjP>`7#kDup=ieX&-Tr?yj}een8SHFz$a-%z^VKt%?p5|79ODwJ2zTN|7AP!m#v zd!O=;hm!A%+PVc7VyIj7`}YVA5^O!pEL1K=6&t#%li_#o<8^~MX545XKDSD(x6$)A z-v@?qBBjl9&y4MhCJyn9T`OW4chSE0$Uj`XVR60B1*Nz#cZ`5}vl4j>k7WjJ=6KNi zdJa0)qOmRb_pDOu`<8Z9{}YG)?_>nh4XiqC6(k;7?lKiRW2aL;*UcnO5?Q^`c@#Tc|1lz-6i0|R*Us% zGikysIBx4}Um*P?-W*GJab?+S5Ok{hQF|OixVZ|WZl|AdOC23GS>C|Gwd0pg2&q1N zb)+)K*WAS^|9Xe@FsquJ)T)tb{U<3C#XSS|Hi0*ujc7S4n~NVBBEabPKiIOesrrYc!^N7*Z zep!!_askbiQN@qt+}=&2itPOz=(Rh%*5%#8n2lDz~+1XbFusW?{Ue&|EsY zqV&6r)i2Yoa;KS_?GEGfO=OW+ohenVSg3l007isV-?eG#Q$x>VNrKhdRf%GeifY1p zl_)}CMZR6yU%sxA>bp;a_`a5LWc}9`rHY&iHiO!kcfW9ILAhf~8=@_zj#6q&iv0`G zKZ?Oq2yT4mw9){)ee^=(BSR5q@M(g?+jjDJJ++H7H{x*OB~1vBbPjtC=d~WtbzVH^ z*jg(zf?58me1vA0jxntC`ch3bK%RACU#{uiaOIM;L+c=m=$(7Ijuhw&2&(k^BXPK#@P zDQYV35z#x!_yy~-b@`SXu^hn%kZGL>L;@LL0`=6)nh zVRF*IzjYx-%g?c+vcB`~q)F8>poYQUz91KUp)`qJMg66rNxFG}CY^Zjg^||pkM#8L zyF`1@1?VvSX$ee9%OhO1ANSj3FPdp3L;gc=`-t&Ro3xCQwVTT!0om@2Sd!Xr>a>p_>Dknkr0Grcf63Wt;eTzF1lAdwV$P^rBx z?gNnP^esvdKyVe$ugRiJPEOEdRe_%LXq*rdC@%V({2tQOGM#NP3q7t{RG}j{IzgI7 z(V!Q?A?VR!W&K4yRjgP;`O#coWb>BNCOa^{8x1w-yUj_HkZi$iZ*?^_waCOb)Ud=CinrNJ8a^<=40f!+K{ zHC4j41ONW^-^~?EZs^jk8|^%Bq-EV337`h-WCPu6@bN!^Sj=+$EjNFfl%JAG0Q<8V z9@pHsmv1vVR;{Yr&|C(JIwCwN!1|sUv3AU29=@q$9;jNEFAqA_DF?>;FI;|Ebhn#@x_yAN!aK`V|G|CbZ6= z0}q%U8Wl_2+eEnL0JrSx!rD%Npj75N89D)@cTncFWCpT6Fu=y9y;^_d4LH~ybPqxorFbD<)rkRS43B*jL z=mRYM_l_@p0Kb3u>^>U+&3_nb!6&4eC{9ok_Ca?|RzfuhekPPNOu%vQcR?b~YFtFXU)GGiGxA~3=c>WI@`Tzh_ z{HKan0ce8%U%MPjVAwwmbS}V^f8B-j1^xq!Z*KJi2L5xJU?A}Qp9_RSfMNfYQisEU zwEro&3Imei{Ab+Y#46_W6Qw?YFjc7yh@Gm4APd#ZlLfs0=PI^*paI%{f`SkWjZ9Er zU<#kG*KI(Y=7xG8-@guDH3OCZS(0o6R)GH}t-=m_R8KPBwL|`LRLJ4#v>&&D@mk* z>LJ=Bt?$dHwNau!F>oK&|wm*^i4h%&@dNn%6tw zM~Bw+9&08H39q>KBZY7K%BAz}xgB$2ufP6WH0{`ju_u09T2d(2_vqla;m3EKcUe41 z@z;{O&!0v0P5x3^&96Rw{MYa*omI-}v!}K6Jj?SNHCm%KWU0fJyNhP@)5;YUuTbHw z7E8133^i;ybxD2sso+A(`n2T-o(=3{9CXiS_?JQ9k;heTInBFUJL6l4=qtYAcY{sy ztxnp{5E`cbJTXq#-L*4mZr{l_zD&3nt@QNm$!{;MKkZ(fR(R@XqV2g@i;XkV92WR~ zn5O(VSm?^=t!}+y0?S|DQ_xHbAC%1fGisNP_otj-s9@zR# z&g`|UwbfDf{9x{;fl?#iWPfo|7fV}M@qx<-FPIr3|w`~9Qa-ltUt#k@FGDyN02j(O|z-6xg4*eho5&e?i0wtCaOA05hu zqvC%hhK4I#eWbd`)bY}$>BG~l`WL)8_0`SNZl^F`)?;a~+W4jvvn9ipW;W>QESRJ6 zLush&cc1O)UgvKu-|oFK$~ktEsQ-|N?V0xmzs{>v|IyMO95kWN5ifn-p{DuSv8uyz zR{t6Xz6Sv{xG{5^Tx(8k?U39 zhuxk|x?DBaHIs8kq`nCtBmY{(_Css{3zo2;1)O;7) zrJ`fha~fW{roNuVv6@vP-A9RE?lL=4VVg_IXOo_DMUR;uFIv!FQ^@Pd_|(j4MbpxM zOfR0;yzKJP(&0-Cmy`@DmK0)vNcszabx!C%;BGmajJ|s<6lV zj+Be1M;z!gAVw`WR%c4o)ZJRey2d~4I<=Pa>l1o~4Lqu{!eeH8eX^{CSfWhyo}B81 zlO=qN-1?dN$f}u#-fxW1sF$3%ewVEO`!lYu#zVjBe9)R|OAeU8^(c)aHLT&aoa5=~cB@_{(UI(Ow@*{NL?4pgce2)Yk_N zcGbg#<7)2g2)}z$(Ljb@^EUp~b~J8W;vTE(USp$jRBWnRU)2qJDK*$VP0eJ_#~WS) zUnnVQ=C&=DIeWiHlUL2M5`F#i4MVHal^g~AL?&Ff1auAjH+l<)olUnW?u z=dbD^njDlhQp;_7k(NyZr&%`38sb8 zZC{QKl*k@5EOm&%lT&)J4;p(PH!fY)dZymuhID{yxu}omz}&?mtHheB?re2HTSgUH z?|U$Q@}44Yn$GD9l{;nUFLsHqapt@#*)0^sy`;XLzvgadXKKs5NxoU;0k_L*b$HpQ zE3!T&ToduyX!vbgWcG5ejLa1cRwM5nwsdc|(9%6&L#$Z{0N4o#-^m+upx@ ze_`&2{LIdd{yjyOPMhj&e{K5dPTT$3#@rIsnRO@H@;}Xc*81@3)dM5)+c#a_S)5`% z@9+oSbMK}rnGyVV8|sd@J!lO+Seh(q_VTsn_eHM$Z_uqZn`eRh6i0XI4<=3L5Rbi z6rawHuQvx78ptac24w}jyPNqc;PJi!Q@com>kct71~JuHWuwON_)}({8RV9bEfHM% zDRAZ9#HI1;6U=|kI$I={IOwuRR=?!1y9&@hLzV6BFDLaF-8V44BIA3+(aQ5-XY}HFy3a z5#2SrKDqSIuuqvQq5d*$ssH7Je&6p_DBX45XQZ|65$=j6jaws{qoEzowz~9&Sf=(UY}5oBEH93-%%TVD0bk4#iK6vOv$ zZf|p#Q4zd;RfYdA^^n-Mkd-Qdvs+|j(q*_`-?|>`A5oCL;_-BuxS`V7o5qbfvG_{h z&4&kTXYQ~&Xm=w#-jo}7qwlEG?;Ibz9jLJBpl^U#xT`~q&e#bW{KH3-D?G-2NZ2bK zXx`^jWcutcZu|6peUKfbvMPK1gA5N}r^O<&8KYD66>q$diRFA+pz8iv^SrTBTSLU8 zl|QabvN-$rr0dU%o_%`A*=@hOQvQ2~TxG(YGlP>f8um6n@+==cNM7Of^&a2r7wDWy z$hn bk8<;$zlxt3Vqg3rlbQ(DUmb_8xO^X+p>;-Cl~p6I%8TaerHQVCL1%0^iKI zODimw*k;9D3Jf~U+gUfrG|Jxgx|fO8{xN}Q=Vb?@ptzBtr#dqtd$nXFE|FTXORH?$ z!z~-@ltjF%vpskU86J57m!wB7bUPRG;L+&GE5GXtRp|A;xIEmu#mznEi`48j%lY#y zj(ohi>d>gT$mmPg>}q^xX`R`vEE00hBKq_t`Pviw!8sAb>&(s+MK|Bw9jlYodBU`? zp>CyIin_EuQP2#)*PApeB1I!F|WeMi-U|#SExB3 z4-3~FDJN|)*kEk>wbr{X*0U~zq@c$h+8IACy?Hw1%|*_@h~3UFWRHf;>3FecaM}P3 znXej-J0ZnYwRdfy9BGpW_dbUK{VW!rN6L$8-F-xfdrV2X+7yEA=b-j1qlm>~LP(9QY=z4`ll z^yJRoxlywb-c~LP{ZMsl%HViUEBIBb)x%zI4?28$)+lE??*aV|Rf{TF-g+OA+&wUN<7Ey(u~Q?4q^1{Y>sOIX-RLI(b3p ztmw|R7=vv-OL@&-kN&*jcKKMbLc(@4vr=!nJ{*e=QhK-6{fc`Xn4=Srsga<#bchfj6YKukbYi{nP-kyys68hwY>fAZu^w42p^Bv2zXZwcD-V_q{ z(oSx<<>8AFnL877MO~AWujIR)wY8Y9a{T`F@1Y+iXU|AjIN-|BQSGPM!GLAnB&yZJBm+qsq(kTKd^3=xgw2D})yuSk4*veY#fQk%zJ%$09@)@T@aBnaD%<_*Nw&qF|_7NxiJPt`*`qlQOr0sccJ40(dN7UE+<&wBW`ZfFF2hWncYyQD5A5BQOTX$QGW3l>>*dc@VVRZ_1@8$>VSKeNhu;}Z) zg%R?a^ZeGD6)ilYHp2DBN8XGI-?dNL`VCvb7tekZoP4vl|LHF;SEnr8>;5kLrDENV zv&zaETX$MNmo$9RabG366t0y&RQ@pX{Ur6LmxoV%n|ctXKDMd!%xNJ zeXNmrxzJB_liHV1T$6wF?)sTL5S?4>hWnu8R*@s8PdKgt7OBwPy zrRPHPsuBDMm5*tkgxuirb-mlYtv)-QKc8K0-aApcN8*98A2RliAJBh|)SxI&`Q>eL z8L_(g8$w2|I$yfdn^FD>KW`((%WQhK{h{U1)ea-W<%*BWp3bt; zwA^;@JQ9fC3VbBy=4JyVwRU>ZFl6kJsaEx&Kq}Qq*A5V=(Zjm`6Jul>#xIn;{8XZ zXBsXS4p}I<0B^bb zCJJwr{W9a9W=l_BRXaCEK5A2~tB~pbtme6k`F-t1^#6f6t#MUO>60QJ#G4sviMyoU!Om^a&`Xb1=Hh=MhPA1{nfI^`R!X;^S0bA z`KCT;QNS9_2YmSh8ZHAoR^7gC^~?X-7oFuQO`f6-g# z!()dRY~mGbZJr~;^W9RKT&6f+aC(YI{;8r53Pt&^cKYP*-*9ULUsp0F{@jtzkF;OT z4O&-_WHGm9)?5Fy0b^5I{n9iRi#r`NvoQK9x$<`9%CYehEheLSjjNV;=x-9dJ!#h< z$03XNemQk$*7TfR4iUMY2~*eanbyAj<@U(B3B~4i3qtqIZf-Dbi&@?)?}hEdS`m?3 zFJ}5^pH_Dqn^!9LV@+h%`GB{4@hZ=(-C93RpB)*%4-EInRcfjE8oEg1#Ezp}dmnAR zaVsY3yG`ymI&tT%WhXqE7caf#GbBaiOi;t5aMLu8@Mo6RCvK=~3AL^L&?h-&;{I7h z@%4+36|VBw`_QcU%aV+BI;{^6#5O5KFHx;r^xgJ>)9NSMPOGC2U+Z5RWwO;xbr?T= z`?o!pMj@%4gB&Nw4|urrlK7ctmtWj1+kInW<8rTQn+tc1y)a2Rt)?(hrA*mF^T4ib zzi+4KSByw(KmH;jHgs+;m3?1K-&br)KU`Gz&~T{2(@&}5)>>`ihtAl{Ioy`lw()g) zWrNYV8^Zc_2aJE&-`aFyWu$UYrAOX!xdYzg@AG%Xtk;k)w`lRa`sSKwNBg&ldPUO~ z_^mp8tzNhA(D?oaH#c6)PN*pNJb3BT^R%bZkuAeTpJo^L>pM!h{%qSl)ALKtUwXQJEcyTjSauEH&l15zewDfOqn{()F~lZ-ZJCzP9MmVAMW00 zef7EHzBi(7{Dt~+f9%^azNj;^)A8v&_4M-!hsKMx>=?-#SR-k@TC{w@)JZ4P$~qsb zE;K3o5jCV|wBk$+@#`P9jL%C!clWcBI z2q^Y=vDDlA)@^=OL(D9v1-pCZjt{C_#8=q*>13hk!AVCA{Utv^r~X-HbwlOc#pEoJ zEAua#v=>E4o^cM@v9Qo}|AL*X*BGtNQ)<8XB=+2RHQRmfZ??QD$@JT3<>YtJsuzD| zeRR6g$n$c0i!QB=AEKQXzz;pJW{b3_qwZnZxjxSQ&jr0t?>n*S+r?#C?ytR3|&mF}zUc3a(gQ$9_+W5Br!2l@!{Z>_pG z=gQfDo1r5|+`aj_ELkfd*e<^Bxa}jxpSo4B|JKpEY+KoKV-<^WX`@{Z57du$%N-sr z#6Ru(XpHgJ%qL03)@$R9oy^nrtd2B)cOfQg<2Ba;$!)xeM^&elq>tO|e#mKw-lx%i z2Pgm9*O0j)H7NMX(z4R~<-Yn$wf(>K`Vq?i80TX6Mrla$q0LK1sUKf>!Qip`j+>Kc~D^NJ`ziAkBQ;VWns57gh*w4tvr#r1QqYojKFp@h0+|a0;@j~+E(|$giCm3YtwRopneHs}n^v3(R>+-ye zM>{j-hUBMQ8!nr1`g%v(oDpj;1WtITX5{w%aNGWiLlT_s<=T()Sa-suVY2rpS);w0 z>W{`tKk;5tH0@%On6dJ!%F;c{>_U4y$UJZ&Z(Sed^=tI{^UwBKJoV1A1s>BD8~1tj zcDdMDijD#{lzXj;kW)M2(S}m0X)r_;B^M?9R!7sBCdo z=Z@1AFYVWPKI8-(dk`p`D3hT5>dmpbt3%s=^>4T-E&Z~$M$gai=Bdw@;_8u7AI&aA zo!DMh>v`qqldlpds$ZSq@0EK{pK(_x>S=bx(I*p1FZo4}C=LFQ{Px4XTUO3DK18U- z?H(o`Ha0kK`IR?qp#__NW+uHKpVy~;$yFr-acaHue)%oaN~ygM&HFf(Nq!k?_Pw!xn`UH_q58J!#}hwwUJYB~cxi9hdzW8x zIvn_K$810T{lJ9BAsc$WFBPjgapbPz)nNV;?|0b)>pwS)3R$la-7xpo$FbwYY`H^| z`uSa~v-KO198_5{M(TJ=Z0i}vFZc70UT>G3>Cxk(#aEvC4XJ`EamAM%!Mpu44-9^F zqB3*9t9I84kyukVnd9bjgQDBd6-#@sFg;zUeLm}Z$%xO70_ICBF+CG@8HK#})P5Q+ zen4d`zp8KN&wgPdHXAnjoO|$oX^H%kY2k%yZe9~nM(~OC8TqF=jLbid5X)|IEZ<+C zw@YXH!Qkq-Nek3O=a>b3xG%OaUH?Ye%hmdGIG;M4uZ;F;teiTg^>m~CqOU%-wra`I z+ph`_8aL|j>8BQ3wtVk5t2CnF#VnI@kJ5dgH|Kk*5A4fde(?He)mzWF8QTsnD4u-p zn*oGQ>SupVC8#>&*{iShj-?)8fWA~@v`ELRl0r!j|MOGzq)U0%nA?pN1OI$ zZ`A3LBxx-6AmjCYz0*>gdfE9cIexv*n2fu%$IhN>Dc{h3@?xoqc;uQo{=?IZ~s^N;W_nJRDFzZf% z>X?Yf$ycmpnwu8Anl!z}^ZD`#Q!^#w-=F7hl**_bWpe4^t-OdwbM1vfKFuvouyh#o zA!DZb?MVv^UrtSV^6hnT(We+8*OjS!GlMkF%zpVNZz|}_HQB#l&`W-+b<5LTb?*zd z_qz6CoBkVH#ZfnxOk1^J>|r@~`7q6zO;f*BDR@}k7Jc``+1*T7rsJs9=jkC+HC217 zeAckMJ^RbH`a=hUItzsJ5?@L#*+1;^))zf)NY4zvUU0|N!mDg*^YvX%g(Uo@T~mB{ z+_#XQc|zHJVcwZX2YRQc92-zls{fPATEu;tOM?*N)}S4jQoh z*x7H#s-C(XQEChj{hG4(uzJ{$iB;1r4jz1zaC^J|lH-#Sulcs}()z702(2FbDz(B) zs4CknCS_~7W`(Vw;dIIk6k!%O(=Vh3~7>fPo&m-%&=iyhv6%>Pg4 zn|CSmyTRv$ee{@f#@9W4_A&>gTl9P;iPNWlUT#{8>g8b?9?TpnPLYR0#Q`Qht;|md zOF8&-GBiDg`c!MvCz8j)e0-Qfq~d+9F^7+jC;LP&g?Oj<_%Mf!tEc-cV-6cl(tKjo zXzYptpF_;Q`mgqpW`319bgR#FhUHqR&lBdD^u!*YU(E5O$L3z5^VB(cI`^_QSt=aC!goFx5QhIzh8~aubblC6JPghP>#1czEl7dDvczJG`rv;?{~KX~wSq z@^Ei)u6wtc^TfG6-G2Dze|b1bg6nAfbL>>Q`;n5Y?iLBI)4x0{s6ksvu0uB-=5VOg z;o1*6c%>v)$N1je&$KOAzAKBQbwRM{{IR+e0P<2?BV*JOPd|Wj$lm~_MTJN~4Dmmb zQoznU+$hE6cKcyxX|7+F8Q2^wN#?!M++gE%sj;-pSU!=CCY)rH|NU~+96Vs4=2lUhjrs&X2`fN$F(+& z9I}GWy|}s;S9AYoq8=#EweKGvlR^I@DG4)p8DCA-eY(Zr^xA`p<+=U33c-afytV9q z7V<@&t0^p7hg5oTjok6Wq$CSl_fdG}eK8KF5#IJw;uz9tn#0ipdHyWo_u}^EljdTb zWSVpIjf%cBhr`q1aHLsGx0}T|6Oy8)T16#Ij0$}Xzk**sT)t0{8$qd3z2B(98(D{!UV$CIfATCJ)xIJ*MaUTH4@S`bkWyd-_zgMcK{`~{xbG-gk*jO` zAU1>s;bw%vB&eerK#OURB6_OGRdz4xIhKXQI%&Ak);<$lpi-$nJ(l4of71>6DK6*# zXU$+LQVNU`r##^m9&6Jd3AADG*PBJ{f~F{Pl~DCh@m}br6<6Arq{2Eui6oS{nnITt zw9hYbRTQ8Mm4u%rC4uHeHtH-s1r?+v%HgQ942l*<$tqk$bX!6~93279Zdk-r*Bh`% zI9!T?s|5TRrAscOSrx#pIzh|Ho!EP+0z`=V(`6a8oMyFf$4sOo-LpG4s80m2Oocx! z7SjX9KJ;0ItK>$~V4bA%*9e|*Rvfx5SjMKCg{G)*RZ)y8SIHQoNlCDwVpWLK9A!FA zV26Y>x~~dVhoeGD1}=zF(!N8zVO0Wsi^I`o`Ie@|aC)k7mAhdLQ)_bfz?xHl)Zl8P z8nr*_8}~Hq59!BSH9-FOjhv$+A<3$AvISzDVBtkXY!G#WRv0YD;TW*oDKub=+N2J_ z)!Q0Gw;@szbm*2k7}eX9K`Lu-)wq}SlJurgsb@!T82#o$1(~tDx!{RvwYY=2?TNlN*f3x?lV3W=Nc0;0 zrzbeUlk!h{V4=vn&=~!q7o;wIxbG{&vL_-;f*M0nvlUmxogCq?E}*05C_Jd`uK%RE z=%~)MF#`3{;i`8r;r{S96Fv9iO_bLgn++Laml=nn*u|s=OlKm{WF4-4H%4D(-n484 zS5rJamG)*T5-Ns4?DE?jRu09wz#YbjoB7d`&p~a4DU(xxZK!Q%M^3f+vw2K4 z&twH)#JSnDPL$2NuxWayqX-NjkW<*xkLx+8R*$RWfsv#nnf6TXcxDa_O%v{mv+L7! zp#*AQE}?|%^&u)G57r4jl%Nk$DO`*e>T?a;@k68}K)m*y7dw`L5qvO0fz_zo^3hv; zt{$Icz&gpa>&1^i4^|3_p!=sWu1``DW~1-DA!>_OA$0?oIg$@!odks%0O$%r83tT^cl;132@vmv ze~?T(w3-H4vg=5$L-!4!>yQjsCzy~4G-cs!n~^&31DsP|-G2YRJ{= zn(h8`G8A+g;gBOp#)zwCT+|WG>LM6SmgH*$CFLAJ@kWr7@I#~|K~)rJ%N=ylh-=bq zkWL=}Me8BQK3qL_yYr#6d88yt;^mmNZ#m$>;q>s~a8y`LJ~tT^_2C*ClMGmAm;{5~ z3#$0()kw^kYwUp^A|+Y8&WeuXIVv2^JO^^F-dZDtvg)M_SOYLghjr4HbHEn{$Ba3kgp8rzrKr`u6v}R>i6xCm#Q+**ZFE)>$ z>w}a;K#;5nSYH203YnWgZz7+@I)UO%44>-LR|po(kc-t=<&Tv{1t#1+-7fzwlrMZx zh5{)gc~fq$ZrdQL?bYlGHr)NohJJDkUHX5adwjsq=NSy}If|r9CGx1r6kJ-JA4P|h zltgflmKnHo#sCd6;~II84`ZDG@uE)3-8VPqaNZ9jC#VzpNu$g-Y5f6^yZ=nwn2D4O zv!I`R1#?7N#?vH*$jKZAH4=h#!YGtv4xS8(M!Du(13rF;lz)P#DV(~?`+cL_Ih@7N z%X_if#^$Lq%r;13{M0C`scBO!r%aCh(C<@f12 zq-P0xqu$Hr(hZ1|T~xpKXC_%fjp>|~L5;04s;qSviNrd=z?*k!d|M(kfdV){V($Pf zXh0p7T;p!r;%o(xHoJyGthk2mxHwXh#XlT3^>GTsbuIj{_tb7)N2jb{uq7F=PB0-E zYbbus4PqMyvtfUL zU8mRYqmR~5rz8W`1x(CXPHm|RAAf{G`*F35@dhStQ(HzXpc{qD6_3iR?3I@XWd zw+n>9Sdt)_{s4OV3Yqrj8hT`=Ev1=BNq~4J`-iOVfb7@lNIE*@qs%H@Sv6GN9})*P zl#~P=x=Y!xS{!}r4}%){FxCkWZ+!aYpzAO&dVme=K_yNRMcV)q=>^tFrn;1w3&z44 zy{`c|$(Y_3HQB%<1KU7Kf(dEZf+Icb&_G+RX}5zp^x2&op0GsY*^{I5GACK&>?Ny$ zYHT5z*nCowM!cnrkQjla?Vt~m4`ZDG@lrf`d>aEDz)ypWL0LRX1*UE{sN;4}{D4$+ zn<^f+I#QCwtHdSoil7gANRh>>O+)Sj{O zXh1qr9|(PP-o8b2Cm^K&#Prc2jQ}!Ogj(#m8fe2ns3A4gTpEcxDrOKMnU2~t5Rk#Y zk)rmnq{mN^l0kNP$IA(is#k?HN&T_+rS%x3cEjoqliR_=H=rqwFiTa1 z|LHazN9AIs4ZLN3&7bTCx63Iy!+(jOz?&nE;Eh{7x=w+}?uT`OH%ybJHk*Vq8 zSJPeQz(iJS{(GXttn?pFH{CD<3O)t-i#_U<7g%<|A7g;gkptt+K~8Q zSd8L_Nhz?I=}ZBG0p#}6u8gdAZxG(|>E4QV?=io&Llk}wSgI73vmBvGO>M3sCP>ja30lsYH&gl(k@ z;1hcy7bPu+{8i$uzU|}h{>_i*CGWZ@5@auLm-ID|aOdl-jKW1zwRR55_mZLpYXjU|AC?wH1=TsU_N`ek$4F!AFYBR_^ z{{{JyLaxwfkXmkB1$VM6tP^GO4sU;5w+|-HUm%s}u&Th?kfF1(l9Ogd2UC%fq>kC} zCioacX9`3|lSQp(!BFek%SoVLZgBKAb@OyOL|9^OlG88#Q??JxSk}S%jeYc{YR7O! zxpP&GF%2mRI#lcqaoaG6L9Ta~lR|ggp{I~Atdnqg4}gDjq2Yt#6Jv>8TilFDNz$ZK zG|7I96;sB@iPPuMf5qe=a@q}|x(g3Uzh9FZfK>CL=$l>vF60BB8 z1{LcB3oq234F3{=rg{=^o+puzB2iq~0qU-xt zZ^w)T6Phv%+*3`YK+0(IFs{m9$iF)Qleg|sNYm*k!keqiiU}_2pA#RGw@&8OCBBDU zxmFl4*u7{R&1%*)3&E)qOTq~rzx377RtU!|*ym)Yk3}RfUn7ztT8l);T-J)=g}k$)(JYa%m<=%GM7P~^nv5VM{0?5vLPjb zGDt}x{d@tre?3zs-xo%QlJq1x0;D96Jhy;Fk9?u?WJAhjxAx{jhOW6(PV9fS!GCdw z*C#}w=W3w+`d3F9Rg7Hypd*pSVVy7%E%O8SdT*yds_2v-47g-KuudX>08;2Oa-o3M z!=WzlgQO&Z3B#dC`6?y^@-;*VNHo?77T$pKG6O9j1S4Pt#_on^4lvXb{&0?t{U#+z zXAw58VjcAA5r6e+%Oeb(m>C`ySWOLKzkF08MdV&N0Dm)R|P%uha`&O zq$KGKm5n4cfzA(dGCOO$IYH5xcRL-wk&>Qg0Ze7kMcIRu$0<}50DGvUEm$XPLcao_ zN=xgJRv=8h@nAwq0>qQ}7Pv|dQq?*`@_^dztQ^w61WS`Ofsh@@&VY3RA9EFmK7pTh zMUL5l4~w3e$~u9^7dLT!$GU)qx$M^Og86k1$jaCMT9$0Qg4{>I+7Kg2DPUp@qL-$s zx6m$Fq8iK34xqEfKNrt{=v#wBZz1WCTwV98>cjs9#MmsOWO9RAmA!=~#vZ4WZ=s}- zu&sodNGY(HW++u zC=L~tn1Y1*@&J0}wLGf*EU(3?I*cSG$#95bSZv;liR&9E+=GN*oq+Pfg zd?HNj^8JWo_*SR(lH~t+7KW)vDWIks6zhtU;N}N)s#T|>#BOC1*(Y20E+X!8@+!YO zp`Zw+)qf2F$2)YC&>a&c4VICZf|LS=e=~B19yT&HI&sRRh}7u+w~^|$zwZ|dieS3J zo5ERM4ltk4f>Dp%)VAp59o?Yqe#(g{HM8TPT+qkx(L3Jiu(03%5$ zU}AcHQ7~82<*>05CwgWCcuM%WcuQ94+(kGI>|yOzz4=ibu8RIc|JXqehAkf z1`9w;1&$v}%_;h#$>ZQP4Y_e#S+p>OE8`x#Czytll7REZjEr7U0i%Bg#Gx;16?n(G zi&N7W)67;1VbKzFC=jd=Zs|`UZH@86q$EM-C{XSo3S^9A!1`_@T|)r*#Q}wea0hmQ zaO7~YWN|eVXskO0GUdnp*)K7Ylz%c%$KXPr9!RD^d$fn339cUMLBDMBP~!M{yLk+E z^RP^vnffQW+1zycMGcm;V!f}&EVI;WL=^mCNShDMQj}FC$-_|9cvzE5+AX1}NcpFo z)a~_Vv8J%nZuD~F+JiUiBLGL9FsSK)ylB`ClmG7kZ&l&Y<>ia59MmR`{^LM z_&AS3T4McA5EZ6jp*w`G!V42;#*q7T52Dd|U^3SDoKG{5l3+rzVO-4~k8+eaC{P@> z0%Aw~5Om_6Qw4bvdOc90_ z$-eHGR*Y7K!_^=2ABi**DFya0Ou?bz7m}dW9UDS!affY2U&G;g8_9rmf(f}sKzsSQ z3x!6&MaPJ+DRl9qBtX0(J$?Iau&DV8hs110a`rP(reic|dRX-I=*g*;QGa$Xk{s&+ zTp9d2ER!%LBdP9x0vShA7kg_{XwyhZn1+%lkWDk{h=hHyO_7jbF+V8@ByaU9@uk8r zIW5yAoqBwmqSH6lycR>-KuUrM4T=IA)E*;V6oB#z6KD`ANl+mL+9-^U0Lb0ma2gFF zB?00Ee@~uW2R8Y9sbqhP%l`NPZ&wg zeVb}2UMrCDLRvGckP0S;M<5MR51}6r?h=Momogp zc!RzGNW|-=GAg6j{qfvRPxDphYH=z?Nqc$aB(vNX1JjP>2jFr$D&6Nhv5vu(A+tlSlH2 zuybn{Qb9) zfL`=MgD1nGFMf!WBq*N(nGB#nI_UglXaghy>m>3gh1@?7X(qu%znI=D>1dFW0P$wu z`g|lAHu{QTD#~sHPwWw&V(KfqiDn`t$&{dZ(CG`zv^GPFVoy*OxS)qgP_2i`H_}X` zB$$xd6zB(4t|};Ego+9Zn*u$UEF9|ul-FA=eXIf)paV^sJyIxnqRJ_7j|(G7NizMA zOPf;(EJ+q5(^zkmnGDI!Dj5vhpR=0wiIgPWhFu9emV;p_e;GDp6h&ufto(Eh%|uFq z30+8rYVI)xEt?9nt?$Wj^03)^J&hzKf#j9$zqp9nC72GgSoS@`jnNEUObYDulQdW- z=ulA#81gorK{o#vq{LJ}UY*p1?1`MGLM(AXq$CRF*~e`TM6fJ>2fnaxi0n_IIE}jP z!fncstYiwLHi9(*k!=*~q%GFd<4mZX>h?RNE#Ic9pn^;lHI$JGLo~*dlHfxXsnGV% zuc4u;|9>WJ+Uq?e5tcjCpj)%Ux(U}-yBq<3dR5Syko>irS zj-OLe9>H48VP8l|Q1BFbbKc0orH(g7? zMJ@2p^(C3Juud@Ws)pL`y8)qD_SdTdr!La8sz@pghCGZXCBcWB)4-zER+y~3S5dcR z1&M@WounwED9WGE6dJ7g4n~ktz`)ExsPmkNxONqKt7Ae+#0;y+GpDdNE8g1epc6En zW#F+#z{G4Z)VloGxd?_(KWIVh*0Z7=6{JJ!!AMdHm>8Sr-O|w=C?bQa$lCsGZr#c< zWn#)^S{D#7rbMmE+MW-lSb-_*_r`N*)_(37NlKDQMKpBiL>TpU_a+Y}N4=x$)3l#5 za|(OA0vkz6f*P63g0%AWJI%tQSXjx4Gz{wm3-4J;noSS5_ z>LyVH7|nhY|GYBItNx*f8`T3C{?Z(>LE6_6?zlkvj3z#gVkP@nP;S!u3{ zl4GGxbNS%Pl`rM2?tpu$0Lo0|kMjX~hJk9M*N&<(teTTrQ%cj2lAz%|UNkS154DE4 zWUDB#pv^Ks8JVzzCV8+<@S(~~Fe`pA10Bh3{@4{#5*)nOccmKN!#?<)@#G;#q$^F_ z7fs57oQ!QCCBcU_Wr0oWgJ`G;D@r)nq$C)43lc0B?18(JabS@tt3$2`p=k|K-Xv8q z7B^`X)=BPyeKVFPK;O9m{gTa{m;9Ui`dqG}2WcbLNj{@%6I(Q4qV*UqWSX#Sb(!&- zuPGZEesDH~kgN)<6Qn3F8$!5wjsUOVjvpl@0p%@lu32>yZcl6;O4>6c8*R$rnj-%k zn9pE$NJ-ME%DGRv08^taaHELrUPb{$H?Z4Gi?3>jB|_j0Ai1yyl)Tkw**vZxa-R1e z4EyM8SXmE-QCFSVbdDP+x_;e`*x7dq;pUL_6rcv#S;noHV$wrK^SO%Mrt@6<&ix9| z)k6bj)9u;8&}{&^ZuBO>-w|%^edmrPtTeK58JBT&^U0L?%hGPLgk1;E_{;u4SU~%4 zzE?}R3f=ZMuy*Uy&(LU=!Xk^!C;90&U$~W;C~Np6V~BOq*1R>mia7AS7sQjz?fg~1 z-IKj>fyqcol7H}Bw%{WW?}f3M{XMxy-)M48kDlYFw*Jk!g;ST(39wz29$ zsAVY}y6s&C+h;hdl9HsmGB7pp02}}v*-X+2i7<4A1^K^_=MN|I@oi1NJ4@HY0mdE_K=>tNb4 z6J)#^)`cVw)=9pB^)uvEATrw_p|dBY$H&lormVYqn1+-BS~^s$3x({@WN3|76Kw8G zox$4MkqFKIJDduvn@h}0ZpwXVT%O}mAcE@qdAxvy!Yl%tn04m{1fX;pq=tsCR#QdK z5G-5q%df>wXg^#>kI1y9pbMACvy^Lq#b(=Ts>eR9cEIJ z6wfJ&K1odBI_qFcN+PgMAbD|vn|0p6^e=A|xiu|6g`zXqbNG!U) z7VPXaBR8^=3sLa~u2r|0>@S|bXa!v$5xzIY-V*aJrI>oN&qGMVuud3=CT@iGR$amP zw`n7M{0TovN&?AKc<$(S8*<-f7)#kTntPC;lP!cAC26ou(#ax#e-g*FD+Tmh~#x&;Ld?d#U$iO{y>o5ByjcurLF^)9z!&b6^VY3pZ2Qa~XJ*pEe4pW&bBNro@t@ z_N?F7_#IkrBJ4M^sgLM(QOmIV6y_qOfSZXv?fgeWibfrs*bFI1i?8r6VPhO#FS2ih zGIW9m(WF(TMiiZ87ZYa0QeXqaB>Ud$s28M*OIjq;?12=MK6}8#G^8YH-(>B{RDr>` z9r7f*(+dw~!gh0-x-{$Xii{T41=LK`sM|1}qlWz1X8-y~skr4(Rvd9dCb{T$XtRc( z(_7)P2MNNu0L092WVS(@-7^H4ZiC}3{17QgP&x(b?L~pK*sX;`VqL)S$85}h7`nF| zdb!qi=wu6L_hWg9bpetw*nc~eolPTqqovznSi(<|l0foi{48lTfO(HQEX>)1Nl_?e zh*g&j|IEZ#PkpdQL?}`nS(iX#pR@zazj)uKTjm$-0O&vry}E;|?17=AB<)YSo|&Zt zyGLPxSwOb%7DI>(qiqI9CJ(mUG!( zi1QpefaU++c&3Yn{o3ha1AQqHDuO-Y9j95f(56xtk1-u71?DhxKfX$>QH9yn`rhQ8 zg;h_=NNprPL`w{*mq8VgTv#VKk#8CJIA4Z=&o6`BV*Dg2N#qF%IYos*eg$N={V+*P zRhESLxTQVmN4PFUXWb1On6^o0fig3cybJDn+$;ybaUaA3&z$(dbXAeo%j^W}Z~aD| zn64$pKG8pU!I_4UlB7weXr2yc3;-H&)=-6wAtk}WTX!L~Dj0^U)zIMCd)NJ3C~7UF zw+s3{X$;m$I+wK-HnX7ForPw{rmJ(O=uC_;l9U7!s@(dMmqg)J z5JUVpDG4~wVV&5h!KUz~kuBsHlT}J_T6LQ#>4`CSFC5nG8ALMuxI{4#OCQoOtP2ce z0!vNPMBYBuMnZcbvXy(_U;vMHI6wRir9;Du+~jj`Gvr!ZL-Nee@CnUl-9?2du@qRr zP{EIHZ_I+(lm)Ch*~f=sZ)qw6w019yN*Isj-=;BM(N_!3bpX^%M|t%=a0(|m>=bUY zq$P?Qhb7I1>F|vl@+9gT&;{;;&o5#qDM>1o`<4OsVYe;{9Ah79?G@9ZEYn7J_JLE_ zG*S|LsMmg|s*B<@R2jMNhk=NMV3SDb917}U^BY?Azo3|kgubMpXY7ANbq>HsT=1i$ zB%$LDK;NlyKr;`(SI^F@6s7wsDM?T*1NVBivmVTXV$5bFXzn7DV;0Pv8G&02kv5yQH` z7RG=2!>fIlp=BpvtLOPK*e@e9z~4xw9<9gN$h?I1lnJ+1*aKMTZ@RO`x$^8Tj=4xF zu!`Z{+++NK3lO0@Fc)KUFJ8r%3f$UV$qJi{rGT!htqQG1`ZeI9(+RG;8-5N~G1dh* z#thqnnypX3MfjLHF`S)a*tVR2A40-tQj%;dQA}VKuu1*J_F^ODln&Cag*H#pU|m4> zyX96x``f-5O|FF$j5k;Q#UpgI7C?7tkQVxNOGk#aGQmZWQcyG#m+u2KqqjiyIKWhh zoq<1;Q1)n{q?7Q0T5J?42|Bdcac@wgyT3JPYB!KVOec!;uA z5dl&e6`q2+#s!m70RLUrRDOGNn1K)epd*eXPyY|QF^vGuls@=0z>SVD@Wj)wYQs;G zl0+V+kdl|X3RY)tAChpa6EwU5PPD(++OefelKv?P!tf!|y zmu6@2s}C4!fKv&bt%r)jCXrIW$v8u8yoc_ zK@sO*BwIs4y?3ay0`WJLX&x8O0@Q(l_Ca#z;2<17N=iYgOb~|e*}3@(R4VnQ%08^Q zn9VcV6q_z9ur*i;s2Ja=AIuY(@=^!YUf^o6t_H=5Yq9+Jn}IPV`(oJ02Qa%?-=DmT zQOeL7qr~%ESr3dSrNAPFZ>x{$k84o7)YtjhcRQLt(PkQ>r@+?@51BY?T>uYXf2W~# zDCq(;HtZTHNmGLfw9_XBqNboTBsWh7C-8(=(4cNeTo%-`5B`o;V1&sbih6o>zOb zf2#pZ{w=?fJB42abUjgKysiX#)(B}96Ooc2Mp_pkEFsoiCea*{X#7R!Oe7ZT0uIKl zWfVu>Aq>avCaxrEpx}ol>af}{)&+2;jr^kEQ3ALc@@@hT@Z+Q;;j^0nzItR==|^17BC@S0Po#}#0*%H z#t&)*Us^>pB@5P zoP9bgI+tR#bjL_il1w>wQrC@#JY@rUip>-{k76RuL9v0PBx(15PHLSBv>SkyeGd9% zJ`=F?D-ddu2I~U4KLS>=kZB#yul$e63m$+4NTz!AuRs9 zoVQWl;Fl{bKegae96LPbYZz;QlQ;$^Ik7I_W}KoEd-+C&X45sUC~~?6eGSI|H(aa> z;EZQU*TAy}0=Sktev*^~l4rATbY3-V3~lR8jthRfyR4C8pVpF`SQl_JPSNSny_%s} zc%7?gcdWpO)u#VO(*E#9x8L}<1@4tBfs4C_XzeAg0m}WP+l#$0#$==vn8A>>3NQWE z3pz+Sw-<3u!k+beI zaQWL@_BovD2V+(R{>{R88C#XyLjCOUG5GEkdyacZK&^<%Z$VzioTL<3MsuQjx4^Qr z*IkzBbp!c_PrmONWTm;DI9hfaIzBECR~gocf_Z%l?=5->6ZU)1fY{FD2so9H_#J3K zn1hrACvv<4&g|{%GD#8f?{q5`e|QxCnSlq~<%*+MP`W$0@R<-~N>>+AI&bsj{&5-L z%|$qKVtZ69;M8-+a8iD7KE20y@Sydg3vu z2ZdBdm2Oa7-uEE17>270>jF5_PG-TPNO+q7uEb6o7)DBhhQ~c48`uMCoqD&Hy^_h2 z>@rOm4Zi<}Y5&a0ct%Z4L@r3{(QDPwGvX(+uA1R6V+U~?A}yPv>a$V{5?U`9@!13F zuiwOOL*4 z7n3xZ{Y~fCid(GP)%f!i0v0B>#N{fLhPrBSDwA!9PuA!uAnP``F1@+6j%LELY-bIv z|HUL5AWwbRAPMe?vOlA>N${bik031bVYU4Pw($H-9mU!0Mq~9^ z+D%fDG+!y28d#@NG^UT?Wg-%Rbppv7-Zy6Jd)P!<2_2dJJ={K;4BaZA>vlCaKL$er z;6rXxiti^xOdbQgDLOsGe*ygFlE^|pitr?yQ1VbG zeRSt3et4w}ZgiOC;?| z3)Jg5S9hc>`$b=p5bGrIv^^?HQzGH@Ncd7bI}8=`XyO3_*u;@9t7(g|{0Cy>^8(sK z$TOM)&3^&y0V7CBn1pHoDH0kmgsKD`^!Wu>qubCyF99lBI|RAjchN!9UP7ryxQA(b zvBag5rIu6BR2ydo`jmp^j%%c$SpHKh)P4m}`z^nr!LR;Dskn5q)O-q>VBo@(dVzxC z(nv`{gd$UIi*#FQ6G=%DPp(vWAzsGeB!4D}KO_xB1+Td} z1Be#ioOPLI#uAr6Fr#yCAZ`vCZZrw%`4&P>4v$zTp^k3>s^9V(I)j2fd~}sA6-!(? z3Ef3O-(|yXzyGW3>Vv8}t~l?3Pm~8d`G zakTd?@7|LSqeM%60yH&NfTAd+nTv-AsUvblGb5{}(<{yH1P=~!q&^5ThH=U-cmCh3 zXY;UuH+eaYvE8qimMA0J&X@mZL|cw*zttUad+N-4>`%f&q}_AJINq>cGEgW7{TUeW zzbZhhZ2brnCO94_MxRvfFfvd>j-=>9m#AG z_vGy5>7cqN>Ut6FZyiA#I)x7_N(CsK65GUzt(O(Jq>Yj9t)w+=JWD)&waut?lvw0C z0Xkbo=i1ycS-3A)>HyLYA3PEFNve;}wj>ioytbUu+WDkOdD1ybWO~xtr#;6jnzeje zsv5Tg)l}KeaYF{F4>Apz6&3Cu$Q{peUXZ+elniV{4d z;2s8TwozgauMFVBQU{RkyR-A=I9^`)5C2#(cuh?#ds3M|ulBfOJQ9f#nQW%~kkm~Ezgnh_ z>SUx*Vj&7Dop%m0`}g^`iUA9>x7Y1&emtFOdihO_c&P&q_4IOG%$-M(eGI~KNgY9p z`xtb{MZXmwOev`&=&%4~KS~$-cuXLfQ36PBD9Rv zXmjLK6-8RCw|#WQy9`;jvf^_sHp^VsG|;boEr+@`#54Vb^{+=W_+9iGXO9}k*k@^$ zNt@_FCaGf_{}$hFev@m&!#_@|Ok3BhaV%Y4s-};mL^&*u=S^I~{8y;Mq)l?*(^3b= zD8tO41)HeAtW6#km+t`SvtR1_cp8uQ&TwqhSI6l}`X@7aZ9c%4%_mmVRNoQ!TqZ#8 z*3cFPWn&ALIuum@!=b47dLHLkeuU=|M}D3|rvh9NG}ccGbVxi(;G?;ITC{KY7Y0;4 zjur2%H{>P3ljif*cw)CXk1vU4$DVOu4Lv`D7Er$-rxcCc_MYDR{m!?_Ri)lA=C{J_% z7}>uNn^KNhxGjugM{_>QxP#nZ8KcT+mNrCQu7((D|KN)=@&m8%|%@MFkK(b2_=WmD8VtB>Cd3NOw#mbv>Y~*BbV0$zFAGPWk?CG5IU1Zwm z3R6~TB@IfXEo>~>dXsZ#9Z$N{4zzfgL2IYlvD_K8?&&ge5+(3a(^!tu#v)o3pm9SE z&;qlnt-S_PO3467eUACxA0%?O_!D0CP(8V^TF_1Q+K1Wz&SU3VcK<_H7~KxwE&#(I zb#Q`Wtqk3@&Vbt0)7vBjB~a*#lKq-nIGVk0;1?hFdV@EVYOI<)J2m^h5f>>XFY+~% z_!if3I>d2;tM?@T=FPA9rUYtshvY#Ce6%=_i&$LcqD#%L2=zEdSw$#;LSKLD>08n4 z(g_E?!S2);yyK}ikfV+~QU^Xt3gSkS@e$1r(i~owV<&@rZ`QkLMzbtd87_}v?`cgI&$5BIuc6yjr#2ZiJ%JtlzhiU zOKh5*f^1sQj{zYW0I4t8a{K5p-f47vSnekJP@zqmoGo(=B{KbG;i&2j6ZrhfeYk8E z@1IL23viSROOsWXc zrg+^nE(`OP6zXA67UqN0(R}~!ufAaC{-=zGlIox7#Xq1^BDSahi)-InF0 z_2RtOpYiBarK?F7bkn>pO>8KaCO3oTglh4Q9Vbo3{u7j7o;C^4fyV`CJpDbC9Y=)J z0jVEbkhlFj$6)0nnA~Lr6l`Z7WCfxGCd#+751wKH8c*BpBk-ZKB5c(ONd3i@z= zC0!9dNbgai4-ba14_BTOpz-QoBZ!nbFzDI4Lo6@zP_1b*=0?Nw^nREY=a8>(l)yxN z!k1k;C_0?80w0z-fb@UeTJO`vml7?j!ai!#AE_x^i=sb;b7o37N}!|D;p{{0L4kC5 y4N8yDqDQ-q - + LVGL lvgl LVGL (Light and Versatile Graphics Library) is a free and open-source graphics library providing everything you need to create an embedded GUI with easy-to-use graphical elements, beautiful visual effects and a low memory footprint. @@ -36,11 +36,17 @@ https://github.com/lvgl/lvgl.git - + + - LVGL 8.3.8 + - Add renesas-ra6m3 gpu adaptation + - Improve performance and add more features for PXP and VGLite + - Minor updates + + - LVGL 8.3.7 - Minor updates - + - LVGL 8.3.6 release - Various fixes, See CHANGELOG.md @@ -181,6 +187,7 @@ + @@ -192,6 +199,7 @@ + @@ -203,6 +211,7 @@ + @@ -214,6 +223,7 @@ + @@ -225,6 +235,7 @@ + @@ -236,6 +247,19 @@ + + + + + Enable LVGL Arm-2D GPU Support + + + + + + + + @@ -270,7 +294,7 @@ --> - + LVGL (Light and Versatile Graphics Library) is a free and open-source graphics library providing everything you need to create an embedded GUI with easy-to-use graphical elements, beautiful visual effects and a low memory footprint. @@ -527,6 +551,22 @@ + + + An hardware acceleration from Renesas RA6M3-G2D + + + + + + + +/*! \brief enable RA6M3-G2D */ +#define LV_USE_GPU_RA6M3_G2D 1 + + + + Extra Themes, Widgets and Layouts diff --git a/env_support/cmsis-pack/LVGL.pidx b/env_support/cmsis-pack/LVGL.pidx index 8603c605f..076f837ac 100644 --- a/env_support/cmsis-pack/LVGL.pidx +++ b/env_support/cmsis-pack/LVGL.pidx @@ -2,8 +2,8 @@ LVGL https://raw.githubusercontent.com/lvgl/lvgl/master/env_support/cmsis-pack/ - 2023-05-03 + 2023-07-04 - + \ No newline at end of file diff --git a/env_support/cmsis-pack/lv_conf_cmsis.h b/env_support/cmsis-pack/lv_conf_cmsis.h index fdbbef378..c7cd87d37 100644 --- a/env_support/cmsis-pack/lv_conf_cmsis.h +++ b/env_support/cmsis-pack/lv_conf_cmsis.h @@ -1,6 +1,6 @@ /** * @file lv_conf.h - * Configuration file for v8.3.7 + * Configuration file for v8.3.8 */ /* clang-format off */ @@ -200,6 +200,12 @@ #define LV_USE_GPU_NXP_PXP_AUTO_INIT 0 #endif +#if LV_USE_GPU_RA6M3_G2D + /*include path of target processor + e.g. "hal_data.h"*/ + #define LV_GPU_RA6M3_G2D_INCLUDE "hal_data.h" +#endif + /*Use SDL renderer API*/ #define LV_USE_GPU_SDL 0 #if LV_USE_GPU_SDL diff --git a/library.json b/library.json index 389d8e842..a55772d53 100644 --- a/library.json +++ b/library.json @@ -1,6 +1,6 @@ { "name": "lvgl", - "version": "8.3.7", + "version": "8.3.8", "keywords": "graphics, gui, embedded, tft, lvgl", "description": "Graphics library to create embedded GUI with easy-to-use graphical elements, beautiful visual effects and low memory footprint. It offers anti-aliasing, opacity, and animations using only one frame buffer.", "repository": { diff --git a/library.properties b/library.properties index c8f7ae9c1..ddea9b42f 100644 --- a/library.properties +++ b/library.properties @@ -1,5 +1,5 @@ name=lvgl -version=8.3.7 +version=8.3.8 author=kisvegabor maintainer=kisvegabor,embeddedt,pete-pjb sentence=Full-featured Graphics Library for Embedded Systems diff --git a/lv_conf_template.h b/lv_conf_template.h index 1e31047e9..cb3887d34 100644 --- a/lv_conf_template.h +++ b/lv_conf_template.h @@ -1,6 +1,6 @@ /** * @file lv_conf.h - * Configuration file for v8.3.7 + * Configuration file for v8.3.8 */ /* diff --git a/lvgl.h b/lvgl.h index 985c796c9..85782a066 100644 --- a/lvgl.h +++ b/lvgl.h @@ -15,7 +15,7 @@ extern "C" { ***************************/ #define LVGL_VERSION_MAJOR 8 #define LVGL_VERSION_MINOR 3 -#define LVGL_VERSION_PATCH 7 +#define LVGL_VERSION_PATCH 8 #define LVGL_VERSION_INFO "" /********************* From d9d2bf74568aa9cd4db042d79649543aa3880fcb Mon Sep 17 00:00:00 2001 From: Gabor Kiss-Vamosi Date: Wed, 5 Jul 2023 13:42:21 +0200 Subject: [PATCH 27/95] docs: update changelog --- docs/CHANGELOG.md | 54 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 54 insertions(+) diff --git a/docs/CHANGELOG.md b/docs/CHANGELOG.md index afc2b4014..c271563af 100644 --- a/docs/CHANGELOG.md +++ b/docs/CHANGELOG.md @@ -1,5 +1,59 @@ # Changelog +## [v8.3.8](https://github.com/lvgl/lvgl/compare/v8.3.8...v8.3.7) 5 July 2023 + +### New Features + +- feat(rt-thread): make the rt-thread env recursively glob the UI files [`8b83fe7`](https://github.com/lvgl/lvgl/commit/8b83fe7ea53a597cdbae8204d0aa9be8ad3d2b89) + +### Performance + +- perf(pxp, vglite): improve performance and add more features [`4222`](https://github.com/lvgl/lvgl/pull/4222) + +### Fixes + +- fix(stm32): static function prototypes moved from .h to .c [`4276`](https://github.com/lvgl/lvgl/pull/4276) +- fix(png): fix decode image size and some warnings [`4248`](https://github.com/lvgl/lvgl/pull/4248) +- fix(bidi): add more Hebrew checks to RTL characters set (#4171) [`4239`](https://github.com/lvgl/lvgl/pull/4239) +- fix(img): fix getting the image type on big endian systems [`4215`](https://github.com/lvgl/lvgl/pull/4215) +- fix(sdl): destroy texture after use if not stored in cache [`4173`](https://github.com/lvgl/lvgl/pull/4173) + +- fix:(BtnMatrix) Backport https://github.com/lvgl/lvgl/pull/4185 [`cb602ea`](https://github.com/lvgl/lvgl/commit/cb602ea7785de21a187ef5ee5f7de4e3aa3f7e0e) +- fix(arduino): fix messed up variable types [`e3659c4`](https://github.com/lvgl/lvgl/commit/e3659c46b128b2b715b196c3ccfb94b3de4c89f8) +- fix:(BtnMatrix) Backport https://github.com/lvgl/lvgl/pull/4185 [`07bce74`](https://github.com/lvgl/lvgl/commit/07bce7466d471a15ba241a9db3239f7a116b0b46) +- fix(chart): fix division by zero if there are no ticks [`67b3011`](https://github.com/lvgl/lvgl/commit/67b3011f835b08c77ff60ae2d1e6592a710ca2b1) +- fix(msgbox): fix typo [`6a89bd2`](https://github.com/lvgl/lvgl/commit/6a89bd2d7409ac4d49ad32da73ba50a84f7c8990) +- fix(tabview): remove the animation if the tab is selected by clicking the button on the header [`3de61c7`](https://github.com/lvgl/lvgl/commit/3de61c76af0aed1665e9d61e47b4dd50b9e8bdf1) +- fix(btnmatrix): fix array out of bounds addressing with groups and no buttons [`edd5ad2`](https://github.com/lvgl/lvgl/commit/edd5ad28ad74d1025db0b442cfa390d8c01ae006) +- fix(btnmatrix): fix using > 7 as button width [`75e6ef4`](https://github.com/lvgl/lvgl/commit/75e6ef4e1d66a85d68160b97ef931b0717e77212) +- fix(draw): typo with LV_COLOR_DEPTH 8 [`45b13c3`](https://github.com/lvgl/lvgl/commit/45b13c378f6fc1728ddf1547c25daa61d62c9f76) +- fix(disp): fix memory leak lv_scr_load_anim with auto_del and time=0 [`1caafc5`](https://github.com/lvgl/lvgl/commit/1caafc55dde46e1b7e3d17d8c5349fbf7cccba9f) + +- fix(msgbox): add missing lv_obj_class_init_obj [`6843c19`](https://github.com/lvgl/lvgl/commit/6843c191b792f66829477827279adbbc763541c1) +- fix(flex): register LV_STYLE_FLEX_GROW [`5ba90a5`](https://github.com/lvgl/lvgl/commit/5ba90a5c41f584a8eb3a4fc8e2f466729652ddb3) + +### Examples + +- example(tabview): fix tabview disable scrollig example [`9491c3f`](https://github.com/lvgl/lvgl/commit/9491c3ff6d2f8e56b13d8fb493d4b3ee98ef1a4b) + +### Docs + +- docs: mention incompatibility between software rotation and `direct_mode` or `full_refresh` [`4308`](https://github.com/lvgl/lvgl/pull/4308) +- docs(faq): don't say 24 bit is support as LVGL can't render in RGB888 directly [`227ac02`](https://github.com/lvgl/lvgl/commit/227ac023419eeb253892b1c36113059f12b1f9f2) + +### CI and tests + +### Others + +- chore(cmsis-pack): update cmsis-pack for v8.3.8 [`4340`](https://github.com/lvgl/lvgl/pull/4340) +- add(docs): add renesas-ra6m3 get-started document [`4278`](https://github.com/lvgl/lvgl/pull/4278) +- add(gpu): add renesas-ra6m3 gpu adaptation [`4270`](https://github.com/lvgl/lvgl/pull/4270) + +- Revert "fix:(BtnMatrix) Backport https://github.com/lvgl/lvgl/pull/4185" [`1713cd3`](https://github.com/lvgl/lvgl/commit/1713cd3fd8f93aa575fbcf0e34b8626b6ee69ded) + + + + ## [v8.3.7](https://github.com/lvgl/lvgl/compare/v8.3.7...v8.3.6) 3 May 2023 ### New Features From aad14e3be6a3557a33fb8170301b78fc21b5b081 Mon Sep 17 00:00:00 2001 From: PeterB Date: Mon, 10 Jul 2023 11:38:57 +0100 Subject: [PATCH 28/95] fix(obj) prevent hidden objects keeping focus --- src/core/lv_obj.c | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/src/core/lv_obj.c b/src/core/lv_obj.c index d7bd04545..1c5bfec6e 100644 --- a/src/core/lv_obj.c +++ b/src/core/lv_obj.c @@ -232,12 +232,22 @@ void lv_obj_add_flag(lv_obj_t * obj, lv_obj_flag_t f) bool was_on_layout = lv_obj_is_layout_positioned(obj); + /* We must invalidate the area occupied by the object before we hide it as calls to invalidate hidden objects are ignored */ if(f & LV_OBJ_FLAG_HIDDEN) lv_obj_invalidate(obj); obj->flags |= f; if(f & LV_OBJ_FLAG_HIDDEN) { - lv_obj_invalidate(obj); + if(lv_obj_has_state(obj, LV_STATE_FOCUSED)) { + lv_group_t * group = lv_obj_get_group(obj); + if(group != NULL) { + lv_group_focus_next(group); + lv_obj_t * next_obj = lv_group_get_focused(group); + if(next_obj != NULL) { + lv_obj_invalidate(next_obj); + } + } + } } if((was_on_layout != lv_obj_is_layout_positioned(obj)) || (f & (LV_OBJ_FLAG_LAYOUT_1 | LV_OBJ_FLAG_LAYOUT_2))) { From 3b359b779cc86767991e53615a75e98a5ea72814 Mon Sep 17 00:00:00 2001 From: PeterB Date: Mon, 10 Jul 2023 12:26:23 +0100 Subject: [PATCH 29/95] fix(indev): fix warnings when loggin coordinates is enabled --- src/core/lv_indev.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/core/lv_indev.c b/src/core/lv_indev.c index caf9c3178..9192f8473 100644 --- a/src/core/lv_indev.c +++ b/src/core/lv_indev.c @@ -356,16 +356,16 @@ static void indev_pointer_proc(lv_indev_t * i, lv_indev_data_t * data) /*Simple sanity check*/ if(data->point.x < 0) { - LV_LOG_WARN("X is %d which is smaller than zero", data->point.x); + LV_LOG_WARN("X is %d which is smaller than zero", (int)data->point.x); } if(data->point.x >= lv_disp_get_hor_res(i->driver->disp)) { - LV_LOG_WARN("X is %d which is greater than hor. res", data->point.x); + LV_LOG_WARN("X is %d which is greater than hor. res", (int)data->point.x); } if(data->point.y < 0) { - LV_LOG_WARN("Y is %d which is smaller than zero", data->point.y); + LV_LOG_WARN("Y is %d which is smaller than zero", (int)data->point.y); } if(data->point.y >= lv_disp_get_ver_res(i->driver->disp)) { - LV_LOG_WARN("Y is %d which is greater than ver. res", data->point.y); + LV_LOG_WARN("Y is %d which is greater than ver. res", (int)data->point.y); } /*Move the cursor if set and moved*/ From 60be520f0e2e0162ff21ff8681e0385434992677 Mon Sep 17 00:00:00 2001 From: PeterB Date: Mon, 10 Jul 2023 13:08:04 +0100 Subject: [PATCH 30/95] chore(music demo) fix formatting --- demos/music/lv_demo_music.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/demos/music/lv_demo_music.c b/demos/music/lv_demo_music.c index 25bfd95f8..7393dfdd3 100644 --- a/demos/music/lv_demo_music.c +++ b/demos/music/lv_demo_music.c @@ -104,7 +104,7 @@ static const uint32_t time_list[] = { }; #if LV_DEMO_MUSIC_AUTO_PLAY -static lv_timer_t * auto_step_timer; + static lv_timer_t * auto_step_timer; #endif static lv_color_t original_screen_bg_color; From 351b50bbb00fc8ce2b9cb96fc7f59b766fe7ec44 Mon Sep 17 00:00:00 2001 From: Gabor Kiss-Vamosi Date: Mon, 10 Jul 2023 19:54:41 +0200 Subject: [PATCH 31/95] fix(tabview): fix warning --- src/extra/widgets/tabview/lv_tabview.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/extra/widgets/tabview/lv_tabview.c b/src/extra/widgets/tabview/lv_tabview.c index edd1f749f..0235c1df8 100755 --- a/src/extra/widgets/tabview/lv_tabview.c +++ b/src/extra/widgets/tabview/lv_tabview.c @@ -129,9 +129,9 @@ void lv_tabview_rename_tab(lv_obj_t * obj, uint32_t id, const char * new_name) if(id >= tabview->tab_cnt) return; if(tabview->tab_pos & LV_DIR_HOR) id *= 2; - lv_mem_free(tabview->map[id]); + lv_mem_free((void*)tabview->map[id]); tabview->map[id] = lv_mem_alloc(strlen(new_name) + 1); - strcpy(tabview->map[id], new_name); + strcpy((void*)tabview->map[id], new_name); lv_obj_invalidate(obj); } @@ -273,13 +273,13 @@ static void lv_tabview_destructor(const lv_obj_class_t * class_p, lv_obj_t * obj uint32_t i; if(tabview->tab_pos & LV_DIR_VER) { for(i = 0; i < tabview->tab_cnt; i++) { - lv_mem_free(tabview->map[i]); + lv_mem_free((void*)tabview->map[i]); tabview->map[i] = NULL; } } if(tabview->tab_pos & LV_DIR_HOR) { for(i = 0; i < tabview->tab_cnt; i++) { - lv_mem_free(tabview->map[i * 2]); + lv_mem_free((void*)tabview->map[i * 2]); tabview->map[i * 2] = NULL; } } From d832932f2bb04a7664aa865ad2e57efd573db9f8 Mon Sep 17 00:00:00 2001 From: Gabor Kiss-Vamosi Date: Mon, 10 Jul 2023 20:02:25 +0200 Subject: [PATCH 32/95] chore: format code --- src/extra/widgets/tabview/lv_tabview.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/extra/widgets/tabview/lv_tabview.c b/src/extra/widgets/tabview/lv_tabview.c index 0235c1df8..f0138238c 100755 --- a/src/extra/widgets/tabview/lv_tabview.c +++ b/src/extra/widgets/tabview/lv_tabview.c @@ -129,9 +129,9 @@ void lv_tabview_rename_tab(lv_obj_t * obj, uint32_t id, const char * new_name) if(id >= tabview->tab_cnt) return; if(tabview->tab_pos & LV_DIR_HOR) id *= 2; - lv_mem_free((void*)tabview->map[id]); + lv_mem_free((void *)tabview->map[id]); tabview->map[id] = lv_mem_alloc(strlen(new_name) + 1); - strcpy((void*)tabview->map[id], new_name); + strcpy((void *)tabview->map[id], new_name); lv_obj_invalidate(obj); } @@ -273,13 +273,13 @@ static void lv_tabview_destructor(const lv_obj_class_t * class_p, lv_obj_t * obj uint32_t i; if(tabview->tab_pos & LV_DIR_VER) { for(i = 0; i < tabview->tab_cnt; i++) { - lv_mem_free((void*)tabview->map[i]); + lv_mem_free((void *)tabview->map[i]); tabview->map[i] = NULL; } } if(tabview->tab_pos & LV_DIR_HOR) { for(i = 0; i < tabview->tab_cnt; i++) { - lv_mem_free((void*)tabview->map[i * 2]); + lv_mem_free((void *)tabview->map[i * 2]); tabview->map[i * 2] = NULL; } } From d00d0fc90a174771288befa16f4bce548142efa4 Mon Sep 17 00:00:00 2001 From: PeterB Date: Wed, 12 Jul 2023 13:02:15 +0100 Subject: [PATCH 33/95] fix(btnmatrix): Hide button matrix when all buttons hidden Makes sure the focus behaves correctly when all button matrix buttons have been hidden. --- src/widgets/lv_btnmatrix.c | 20 ++++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-) diff --git a/src/widgets/lv_btnmatrix.c b/src/widgets/lv_btnmatrix.c index 923f19afb..2f58e99ae 100644 --- a/src/widgets/lv_btnmatrix.c +++ b/src/widgets/lv_btnmatrix.c @@ -208,7 +208,7 @@ void lv_btnmatrix_set_btn_ctrl(lv_obj_t * obj, uint16_t btn_id, lv_btnmatrix_ctr { LV_ASSERT_OBJ(obj, MY_CLASS); - lv_btnmatrix_t * btnm = (lv_btnmatrix_t *)obj;; + lv_btnmatrix_t * btnm = (lv_btnmatrix_t *)obj; if(btn_id >= btnm->btn_cnt) return; @@ -216,6 +216,17 @@ void lv_btnmatrix_set_btn_ctrl(lv_obj_t * obj, uint16_t btn_id, lv_btnmatrix_ctr lv_btnmatrix_clear_btn_ctrl_all(obj, LV_BTNMATRIX_CTRL_CHECKED); } + /* If we hide a button if all buttons are now hidden hide the whole button matrix to make focus behave correctly */ + if(ctrl & LV_BTNMATRIX_CTRL_HIDDEN) { + bool all_buttons_hidden = true; + if(btnm->btn_cnt > 1); + for(uint16_t btn_idx = 0; btn_idx < btnm->btn_cnt; btn_idx++) { + if(btn_idx == btn_id) continue; + if(!(btnm->ctrl_bits[btn_idx] & LV_BTNMATRIX_CTRL_HIDDEN)) all_buttons_hidden = false; + } + if(all_buttons_hidden) lv_obj_add_flag(obj, LV_OBJ_FLAG_HIDDEN); + } + btnm->ctrl_bits[btn_id] |= ctrl; invalidate_button_area(obj, btn_id); @@ -228,10 +239,15 @@ void lv_btnmatrix_clear_btn_ctrl(lv_obj_t * obj, uint16_t btn_id, lv_btnmatrix_c { LV_ASSERT_OBJ(obj, MY_CLASS); - lv_btnmatrix_t * btnm = (lv_btnmatrix_t *)obj;; + lv_btnmatrix_t * btnm = (lv_btnmatrix_t *)obj; if(btn_id >= btnm->btn_cnt) return; + /* If all buttons were hidden the whole button matrix is hidden so we need to check and remove hidden flag if present */ + if(ctrl & LV_BTNMATRIX_CTRL_HIDDEN) { + if(lv_obj_has_flag(obj, LV_OBJ_FLAG_HIDDEN)) lv_obj_clear_flag(obj, LV_OBJ_FLAG_HIDDEN); + } + btnm->ctrl_bits[btn_id] &= (~ctrl); invalidate_button_area(obj, btn_id); From fb70c51cf9536d98a87f3ce5d774e6d84af0e1a7 Mon Sep 17 00:00:00 2001 From: PeterB Date: Wed, 12 Jul 2023 13:22:10 +0100 Subject: [PATCH 34/95] fix(btnmatrix): Fix typo in previous commit! --- src/widgets/lv_btnmatrix.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/src/widgets/lv_btnmatrix.c b/src/widgets/lv_btnmatrix.c index 2f58e99ae..1d2df0d8c 100644 --- a/src/widgets/lv_btnmatrix.c +++ b/src/widgets/lv_btnmatrix.c @@ -219,10 +219,12 @@ void lv_btnmatrix_set_btn_ctrl(lv_obj_t * obj, uint16_t btn_id, lv_btnmatrix_ctr /* If we hide a button if all buttons are now hidden hide the whole button matrix to make focus behave correctly */ if(ctrl & LV_BTNMATRIX_CTRL_HIDDEN) { bool all_buttons_hidden = true; - if(btnm->btn_cnt > 1); - for(uint16_t btn_idx = 0; btn_idx < btnm->btn_cnt; btn_idx++) { - if(btn_idx == btn_id) continue; - if(!(btnm->ctrl_bits[btn_idx] & LV_BTNMATRIX_CTRL_HIDDEN)) all_buttons_hidden = false; + if(btnm->btn_cnt > 1) { + for(uint16_t btn_idx = 0; btn_idx < btnm->btn_cnt; btn_idx++) { + if(btn_idx == btn_id) continue; + if(!(btnm->ctrl_bits[btn_idx] & LV_BTNMATRIX_CTRL_HIDDEN)) all_buttons_hidden = false; + } + } if(all_buttons_hidden) lv_obj_add_flag(obj, LV_OBJ_FLAG_HIDDEN); } From 56a3c5b394de1c44b8373f2a93de9b15700e7dd0 Mon Sep 17 00:00:00 2001 From: Gabor Kiss-Vamosi Date: Fri, 14 Jul 2023 21:04:12 +0200 Subject: [PATCH 35/95] fix(imgbtn): support LV_OBJ_FLAG_CHECKABLE fixes #4373 --- src/core/lv_obj.c | 4 ++-- src/extra/widgets/imgbtn/lv_imgbtn.c | 8 ++++++++ 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/src/core/lv_obj.c b/src/core/lv_obj.c index 1c5bfec6e..209ef8100 100644 --- a/src/core/lv_obj.c +++ b/src/core/lv_obj.c @@ -728,9 +728,9 @@ static void lv_obj_event(const lv_obj_class_t * class_p, lv_event_t * e) } else if(code == LV_EVENT_RELEASED) { lv_obj_clear_state(obj, LV_STATE_PRESSED); - void * param = lv_event_get_param(e); + lv_indev_t * indev = lv_event_get_indev(e); /*Go the checked state if enabled*/ - if(lv_indev_get_scroll_obj(param) == NULL && lv_obj_has_flag(obj, LV_OBJ_FLAG_CHECKABLE)) { + if(lv_indev_get_scroll_obj(indev) == NULL && lv_obj_has_flag(obj, LV_OBJ_FLAG_CHECKABLE)) { if(!(lv_obj_get_state(obj) & LV_STATE_CHECKED)) lv_obj_add_state(obj, LV_STATE_CHECKED); else lv_obj_clear_state(obj, LV_STATE_CHECKED); diff --git a/src/extra/widgets/imgbtn/lv_imgbtn.c b/src/extra/widgets/imgbtn/lv_imgbtn.c index 00c3011ca..67cff7cf4 100644 --- a/src/extra/widgets/imgbtn/lv_imgbtn.c +++ b/src/extra/widgets/imgbtn/lv_imgbtn.c @@ -205,6 +205,14 @@ static void lv_imgbtn_event(const lv_obj_class_t * class_p, lv_event_t * e) p->x = LV_MAX(p->x, header.w); } } + /*Sent when the widget is checked due to LV_OBJ_FLAG_CHECKABLE */ + else if(code == LV_EVENT_VALUE_CHANGED) { + if(lv_obj_has_state(obj, LV_STATE_CHECKED)) { + lv_imgbtn_set_state(obj, LV_IMGBTN_STATE_CHECKED_RELEASED); + } else { + lv_imgbtn_set_state(obj, LV_IMGBTN_STATE_RELEASED); + } + } } static void draw_main(lv_event_t * e) From d7b94e3d8347898c1151084a738103f74cb29de0 Mon Sep 17 00:00:00 2001 From: Gabor Kiss-Vamosi Date: Sat, 15 Jul 2023 19:36:09 +0200 Subject: [PATCH 36/95] fix(chart): fix lv_chart_get_point_pos_by_id fixes #4367 --- src/extra/widgets/chart/lv_chart.c | 35 ++++++++++++++++++------------ 1 file changed, 21 insertions(+), 14 deletions(-) diff --git a/src/extra/widgets/chart/lv_chart.c b/src/extra/widgets/chart/lv_chart.c index 2d53adb20..eae31bd4c 100644 --- a/src/extra/widgets/chart/lv_chart.c +++ b/src/extra/widgets/chart/lv_chart.c @@ -261,10 +261,10 @@ uint16_t lv_chart_get_point_count(const lv_obj_t * obj) uint16_t lv_chart_get_x_start_point(const lv_obj_t * obj, lv_chart_series_t * ser) { - LV_UNUSED(obj); LV_ASSERT_NULL(ser); + lv_chart_t * chart = (lv_chart_t *)obj; - return ser->start_point; + return chart->update_mode == LV_CHART_UPDATE_MODE_SHIFT ? ser->start_point : 0; } void lv_chart_get_point_pos_by_id(lv_obj_t * obj, lv_chart_series_t * ser, uint16_t id, lv_point_t * p_out) @@ -292,28 +292,34 @@ void lv_chart_get_point_pos_by_id(lv_obj_t * obj, lv_chart_series_t * ser, uint1 } else if(chart->type == LV_CHART_TYPE_BAR) { uint32_t ser_cnt = _lv_ll_get_len(&chart->series_ll); - int32_t ser_gap = ((int32_t)lv_obj_get_style_pad_column(obj, - LV_PART_ITEMS) * chart->zoom_x) >> 8; /*Gap between the column on the ~same X*/ - int32_t block_gap = ((int32_t)lv_obj_get_style_pad_column(obj, - LV_PART_MAIN) * chart->zoom_x) >> 8; /*Gap between the column on ~adjacent X*/ - lv_coord_t block_w = (w - ((chart->point_cnt - 1) * block_gap)) / chart->point_cnt; - lv_coord_t col_w = block_w / ser_cnt; + /*Gap between the column on the X tick*/ + int32_t ser_gap = ((int32_t)lv_obj_get_style_pad_column(obj, LV_PART_ITEMS) * chart->zoom_x) >> 8; - p_out->x = (int32_t)((int32_t)w * id) / chart->point_cnt; + /*Gap between the columns on adjacent X ticks*/ + int32_t block_gap = ((int32_t)lv_obj_get_style_pad_column(obj, LV_PART_MAIN) * chart->zoom_x) >> 8; + + lv_coord_t block_w = (w - ((chart->point_cnt - 1) * block_gap)) / chart->point_cnt; lv_chart_series_t * ser_i = NULL; + uint32_t ser_idx = 0; _LV_LL_READ_BACK(&chart->series_ll, ser_i) { if(ser_i == ser) break; - p_out->x += col_w; + ser_idx++; } - p_out->x += (col_w - ser_gap) / 2; + p_out->x = (int32_t)((int32_t)(w + block_gap) * id) / chart->point_cnt; + p_out->x += block_w * ser_idx / ser_cnt; + + lv_coord_t col_w = (block_w - (ser_gap * (ser_cnt - 1))) / ser_cnt; + p_out->x += col_w / 2; } lv_coord_t border_width = lv_obj_get_style_border_width(obj, LV_PART_MAIN); p_out->x += lv_obj_get_style_pad_left(obj, LV_PART_MAIN) + border_width; p_out->x -= lv_obj_get_scroll_left(obj); + uint32_t start_point = lv_chart_get_x_start_point(obj, ser); + id = ((int32_t)start_point + id) % chart->point_cnt; int32_t temp_y = 0; temp_y = (int32_t)((int32_t)ser->y_points[id] - chart->ymin[ser->y_axis_sec]) * h; temp_y = temp_y / (chart->ymax[ser->y_axis_sec] - chart->ymin[ser->y_axis_sec]); @@ -913,7 +919,7 @@ static void draw_series_line(lv_obj_t * obj, lv_draw_ctx_t * draw_ctx) line_dsc_default.color = ser->color; point_dsc_default.bg_color = ser->color; - lv_coord_t start_point = chart->update_mode == LV_CHART_UPDATE_MODE_SHIFT ? ser->start_point : 0; + lv_coord_t start_point = lv_chart_get_x_start_point(obj, ser); p1.x = x_ofs; p2.x = x_ofs; @@ -1075,7 +1081,7 @@ static void draw_series_scatter(lv_obj_t * obj, lv_draw_ctx_t * draw_ctx) line_dsc_default.color = ser->color; point_dsc_default.bg_color = ser->color; - lv_coord_t start_point = chart->update_mode == LV_CHART_UPDATE_MODE_SHIFT ? ser->start_point : 0; + lv_coord_t start_point = lv_chart_get_x_start_point(obj, ser); p1.x = x_ofs; p2.x = x_ofs; @@ -1229,7 +1235,8 @@ static void draw_series_bar(lv_obj_t * obj, lv_draw_ctx_t * draw_ctx) /*Draw the current point of all data line*/ _LV_LL_READ_BACK(&chart->series_ll, ser) { if(ser->hidden) continue; - lv_coord_t start_point = chart->update_mode == LV_CHART_UPDATE_MODE_SHIFT ? ser->start_point : 0; + + lv_coord_t start_point = lv_chart_get_x_start_point(obj, ser); col_a.x1 = x_act; col_a.x2 = col_a.x1 + col_w - 1; From 02e7c861c15f15a6ac719eb9a684a51513e720ff Mon Sep 17 00:00:00 2001 From: the-programmer Date: Fri, 21 Jul 2023 09:51:37 +0200 Subject: [PATCH 37/95] fix(font): fix optimizer issue in lv_font_fmt_txt.c (#4385) Co-authored-by: Gabor Kiss-Vamosi --- src/extra/widgets/imgbtn/lv_imgbtn.c | 3 ++- src/font/lv_font_fmt_txt.c | 6 +++--- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/src/extra/widgets/imgbtn/lv_imgbtn.c b/src/extra/widgets/imgbtn/lv_imgbtn.c index 67cff7cf4..06c68fb65 100644 --- a/src/extra/widgets/imgbtn/lv_imgbtn.c +++ b/src/extra/widgets/imgbtn/lv_imgbtn.c @@ -209,7 +209,8 @@ static void lv_imgbtn_event(const lv_obj_class_t * class_p, lv_event_t * e) else if(code == LV_EVENT_VALUE_CHANGED) { if(lv_obj_has_state(obj, LV_STATE_CHECKED)) { lv_imgbtn_set_state(obj, LV_IMGBTN_STATE_CHECKED_RELEASED); - } else { + } + else { lv_imgbtn_set_state(obj, LV_IMGBTN_STATE_RELEASED); } } diff --git a/src/font/lv_font_fmt_txt.c b/src/font/lv_font_fmt_txt.c index 7a36f01b8..78beafff5 100644 --- a/src/font/lv_font_fmt_txt.c +++ b/src/font/lv_font_fmt_txt.c @@ -148,10 +148,10 @@ const uint8_t * lv_font_get_bitmap_fmt_txt(const lv_font_t * font, uint32_t unic bool lv_font_get_glyph_dsc_fmt_txt(const lv_font_t * font, lv_font_glyph_dsc_t * dsc_out, uint32_t unicode_letter, uint32_t unicode_letter_next) { - bool is_tab = false; - if(unicode_letter == '\t') { + /*It fixes a strange compiler optimization issue: https://github.com/lvgl/lvgl/issues/4370*/ + bool is_tab = unicode_letter == '\t'; + if(is_tab) { unicode_letter = ' '; - is_tab = true; } lv_font_fmt_txt_dsc_t * fdsc = (lv_font_fmt_txt_dsc_t *)font->dsc; uint32_t gid = get_glyph_dsc_id(font, unicode_letter); From 576cc2c411e02d8f2db25ee561fc1b72c4e75600 Mon Sep 17 00:00:00 2001 From: fronders <15352046+fronders@users.noreply.github.com> Date: Tue, 25 Jul 2023 16:13:35 +0300 Subject: [PATCH 38/95] fix(attr): refactor LV_ATTRIBUTE_* for function attributes (#4404) Co-authored-by: Gabor Kiss-Vamosi --- src/core/lv_refr.c | 2 +- src/draw/arm2d/lv_gpu_arm2d.c | 149 +++++++++++------------- src/draw/lv_draw_img.c | 8 +- src/draw/lv_draw_label.c | 4 +- src/draw/lv_draw_label.h | 6 +- src/draw/lv_draw_line.c | 4 +- src/draw/lv_draw_line.h | 6 +- src/draw/lv_draw_mask.c | 79 ++++++------- src/draw/lv_draw_mask.h | 11 +- src/draw/lv_draw_rect.c | 2 +- src/draw/lv_draw_rect.h | 2 +- src/draw/renesas/lv_gpu_d2_draw_label.c | 2 +- src/draw/sw/lv_draw_sw.h | 10 +- src/draw/sw/lv_draw_sw_blend.c | 55 +++++---- src/draw/sw/lv_draw_sw_blend.h | 3 +- src/draw/sw/lv_draw_sw_dither.c | 12 +- src/draw/sw/lv_draw_sw_dither.h | 19 +-- src/draw/sw/lv_draw_sw_gradient.c | 2 +- src/draw/sw/lv_draw_sw_gradient.h | 4 +- src/draw/sw/lv_draw_sw_img.c | 6 +- src/draw/sw/lv_draw_sw_letter.c | 6 +- src/draw/sw/lv_draw_sw_line.c | 20 ++-- src/draw/sw/lv_draw_sw_rect.c | 18 +-- src/hal/lv_hal_disp.c | 4 +- src/hal/lv_hal_disp.h | 10 +- src/hal/lv_hal_tick.c | 2 +- src/hal/lv_hal_tick.h | 2 +- src/misc/lv_color.c | 2 +- src/misc/lv_color.h | 10 +- src/misc/lv_math.c | 4 +- src/misc/lv_math.h | 6 +- src/misc/lv_mem.c | 8 +- src/misc/lv_mem.h | 10 +- src/misc/lv_timer.c | 2 +- src/misc/lv_timer.h | 4 +- 35 files changed, 252 insertions(+), 242 deletions(-) diff --git a/src/core/lv_refr.c b/src/core/lv_refr.c index 45ff2e0e7..ec83e0f09 100644 --- a/src/core/lv_refr.c +++ b/src/core/lv_refr.c @@ -1027,7 +1027,7 @@ static void draw_buf_rotate_180(lv_disp_drv_t * drv, lv_area_t * area, lv_color_ area->x1 = drv->hor_res - tmp_coord - 1; } -static LV_ATTRIBUTE_FAST_MEM void draw_buf_rotate_90(bool invert_i, lv_coord_t area_w, lv_coord_t area_h, +static void LV_ATTRIBUTE_FAST_MEM draw_buf_rotate_90(bool invert_i, lv_coord_t area_w, lv_coord_t area_h, lv_color_t * orig_color_p, lv_color_t * rot_buf) { diff --git a/src/draw/arm2d/lv_gpu_arm2d.c b/src/draw/arm2d/lv_gpu_arm2d.c index c42f23872..cc1ef6083 100644 --- a/src/draw/arm2d/lv_gpu_arm2d.c +++ b/src/draw/arm2d/lv_gpu_arm2d.c @@ -418,19 +418,17 @@ **********************/ #if __ARM_2D_HAS_HW_ACC__ -LV_ATTRIBUTE_FAST_MEM -static bool lv_draw_arm2d_fill_colour(const arm_2d_tile_t * target_tile, - const arm_2d_region_t * region, - lv_color_t color, - lv_opa_t opa, - const arm_2d_tile_t * mask_tile); - -LV_ATTRIBUTE_FAST_MEM -static bool lv_draw_arm2d_tile_copy(const arm_2d_tile_t * target_tile, - const arm_2d_region_t * region, - arm_2d_tile_t * source_tile, - lv_opa_t opa, - arm_2d_tile_t * mask_tile); +static bool /* LV_ATTRIBUTE_FAST_MEM */ lv_draw_arm2d_fill_colour(const arm_2d_tile_t * target_tile, + const arm_2d_region_t * region, + lv_color_t color, + lv_opa_t opa, + const arm_2d_tile_t * mask_tile); + +static bool /* LV_ATTRIBUTE_FAST_MEM */ lv_draw_arm2d_tile_copy(const arm_2d_tile_t * target_tile, + const arm_2d_region_t * region, + arm_2d_tile_t * source_tile, + lv_opa_t opa, + arm_2d_tile_t * mask_tile); #else static void convert_cb(const lv_area_t * dest_area, @@ -443,36 +441,32 @@ static void convert_cb(const lv_area_t * dest_area, lv_color_t * cbuf, lv_opa_t * abuf); -LV_ATTRIBUTE_FAST_MEM -static bool arm_2d_fill_normal(lv_color_t * dest_buf, - const lv_area_t * dest_area, - lv_coord_t dest_stride, - lv_color_t color, - lv_opa_t opa, - const lv_opa_t * mask, - lv_coord_t mask_stride); - -LV_ATTRIBUTE_FAST_MEM -static bool arm_2d_copy_normal(lv_color_t * dest_buf, - const lv_area_t * dest_area, - lv_coord_t dest_stride, - const lv_color_t * src_buf, - lv_coord_t src_stride, - lv_opa_t opa, - const lv_opa_t * mask, - lv_coord_t mask_stride); +static bool /* LV_ATTRIBUTE_FAST_MEM */ arm_2d_fill_normal(lv_color_t * dest_buf, + const lv_area_t * dest_area, + lv_coord_t dest_stride, + lv_color_t color, + lv_opa_t opa, + const lv_opa_t * mask, + lv_coord_t mask_stride); + +static bool /* LV_ATTRIBUTE_FAST_MEM */ arm_2d_copy_normal(lv_color_t * dest_buf, + const lv_area_t * dest_area, + lv_coord_t dest_stride, + const lv_color_t * src_buf, + lv_coord_t src_stride, + lv_opa_t opa, + const lv_opa_t * mask, + lv_coord_t mask_stride); #endif -LV_ATTRIBUTE_FAST_MEM -static void lv_draw_arm2d_blend(lv_draw_ctx_t * draw_ctx, const lv_draw_sw_blend_dsc_t * dsc); -LV_ATTRIBUTE_FAST_MEM -static void lv_gpu_arm2d_wait_cb(lv_draw_ctx_t * draw_ctx); -LV_ATTRIBUTE_FAST_MEM -static void lv_draw_arm2d_img_decoded(struct _lv_draw_ctx_t * draw_ctx, - const lv_draw_img_dsc_t * draw_dsc, - const lv_area_t * coords, - const uint8_t * src_buf, - lv_img_cf_t cf); +static void /* LV_ATTRIBUTE_FAST_MEM */ lv_draw_arm2d_blend(lv_draw_ctx_t * draw_ctx, + const lv_draw_sw_blend_dsc_t * dsc); +static void /* LV_ATTRIBUTE_FAST_MEM */ lv_gpu_arm2d_wait_cb(lv_draw_ctx_t * draw_ctx); +static void /* LV_ATTRIBUTE_FAST_MEM */ lv_draw_arm2d_img_decoded(struct _lv_draw_ctx_t * draw_ctx, + const lv_draw_img_dsc_t * draw_dsc, + const lv_area_t * coords, + const uint8_t * src_buf, + lv_img_cf_t cf); /********************** * STATIC VARIABLES @@ -512,8 +506,8 @@ void lv_draw_arm2d_ctx_deinit(lv_disp_drv_t * drv, lv_draw_ctx_t * draw_ctx) extern void test_flush(lv_color_t * color_p); #if __ARM_2D_HAS_HW_ACC__ -LV_ATTRIBUTE_FAST_MEM -static void lv_draw_arm2d_blend(lv_draw_ctx_t * draw_ctx, const lv_draw_sw_blend_dsc_t * dsc) +static void LV_ATTRIBUTE_FAST_MEM lv_draw_arm2d_blend(lv_draw_ctx_t * draw_ctx, + const lv_draw_sw_blend_dsc_t * dsc) { const lv_opa_t * mask; if(dsc->mask_buf == NULL) mask = NULL; @@ -560,12 +554,11 @@ static void lv_draw_arm2d_blend(lv_draw_ctx_t * draw_ctx, const lv_draw_sw_blend } -LV_ATTRIBUTE_FAST_MEM -static bool lv_draw_arm2d_fill_colour(const arm_2d_tile_t * target_tile, - const arm_2d_region_t * region, - lv_color_t color, - lv_opa_t opa, - const arm_2d_tile_t * mask_tile) +static bool LV_ATTRIBUTE_FAST_MEM lv_draw_arm2d_fill_colour(const arm_2d_tile_t * target_tile, + const arm_2d_region_t * region, + lv_color_t color, + lv_opa_t opa, + const arm_2d_tile_t * mask_tile) { arm_fsm_rt_t result = (arm_fsm_rt_t)ARM_2D_ERR_NONE; @@ -623,12 +616,11 @@ static bool lv_draw_arm2d_fill_colour(const arm_2d_tile_t * target_tile, } -LV_ATTRIBUTE_FAST_MEM -static bool lv_draw_arm2d_tile_copy(const arm_2d_tile_t * target_tile, - const arm_2d_region_t * region, - arm_2d_tile_t * source_tile, - lv_opa_t opa, - arm_2d_tile_t * mask_tile) +static bool LV_ATTRIBUTE_FAST_MEM lv_draw_arm2d_tile_copy(const arm_2d_tile_t * target_tile, + const arm_2d_region_t * region, + arm_2d_tile_t * source_tile, + lv_opa_t opa, + arm_2d_tile_t * mask_tile) { arm_fsm_rt_t result = (arm_fsm_rt_t)ARM_2D_ERR_NONE; @@ -691,8 +683,8 @@ static void lv_gpu_arm2d_wait_cb(lv_draw_ctx_t * draw_ctx) #else -LV_ATTRIBUTE_FAST_MEM -static void lv_draw_arm2d_blend(lv_draw_ctx_t * draw_ctx, const lv_draw_sw_blend_dsc_t * dsc) +static void LV_ATTRIBUTE_FAST_MEM lv_draw_arm2d_blend(lv_draw_ctx_t * draw_ctx, + const lv_draw_sw_blend_dsc_t * dsc) { const lv_opa_t * mask; if(dsc->mask_buf == NULL) mask = NULL; @@ -777,14 +769,13 @@ static void lv_draw_arm2d_blend(lv_draw_ctx_t * draw_ctx, const lv_draw_sw_blend if(!is_accelerated) lv_draw_sw_blend_basic(draw_ctx, dsc); } -LV_ATTRIBUTE_FAST_MEM -static bool arm_2d_fill_normal(lv_color_t * dest_buf, - const lv_area_t * dest_area, - lv_coord_t dest_stride, - lv_color_t color, - lv_opa_t opa, - const lv_opa_t * mask, - lv_coord_t mask_stride) +static bool LV_ATTRIBUTE_FAST_MEM arm_2d_fill_normal(lv_color_t * dest_buf, + const lv_area_t * dest_area, + lv_coord_t dest_stride, + lv_color_t color, + lv_opa_t opa, + const lv_opa_t * mask, + lv_coord_t mask_stride) { arm_2d_size_t target_size = { .iWidth = lv_area_get_width(dest_area), @@ -835,15 +826,14 @@ static bool arm_2d_fill_normal(lv_color_t * dest_buf, } -LV_ATTRIBUTE_FAST_MEM -static bool arm_2d_copy_normal(lv_color_t * dest_buf, - const lv_area_t * dest_area, - lv_coord_t dest_stride, - const lv_color_t * src_buf, - lv_coord_t src_stride, - lv_opa_t opa, - const lv_opa_t * mask, - lv_coord_t mask_stride) +static bool LV_ATTRIBUTE_FAST_MEM arm_2d_copy_normal(lv_color_t * dest_buf, + const lv_area_t * dest_area, + lv_coord_t dest_stride, + const lv_color_t * src_buf, + lv_coord_t src_stride, + lv_opa_t opa, + const lv_opa_t * mask, + lv_coord_t mask_stride) { int32_t w = lv_area_get_width(dest_area); @@ -908,12 +898,11 @@ static bool arm_2d_copy_normal(lv_color_t * dest_buf, return true; } -LV_ATTRIBUTE_FAST_MEM -static void lv_draw_arm2d_img_decoded(struct _lv_draw_ctx_t * draw_ctx, - const lv_draw_img_dsc_t * draw_dsc, - const lv_area_t * coords, - const uint8_t * src_buf, - lv_img_cf_t cf) +static void LV_ATTRIBUTE_FAST_MEM lv_draw_arm2d_img_decoded(struct _lv_draw_ctx_t * draw_ctx, + const lv_draw_img_dsc_t * draw_dsc, + const lv_area_t * coords, + const uint8_t * src_buf, + lv_img_cf_t cf) { /*Use the clip area as draw area*/ lv_area_t draw_area; diff --git a/src/draw/lv_draw_img.c b/src/draw/lv_draw_img.c index 1e83eaf65..5e67f8885 100644 --- a/src/draw/lv_draw_img.c +++ b/src/draw/lv_draw_img.c @@ -25,8 +25,9 @@ /********************** * STATIC PROTOTYPES **********************/ -LV_ATTRIBUTE_FAST_MEM static lv_res_t decode_and_draw(lv_draw_ctx_t * draw_ctx, const lv_draw_img_dsc_t * draw_dsc, - const lv_area_t * coords, const void * src); +static lv_res_t /* LV_ATTRIBUTE_FAST_MEM */ decode_and_draw(lv_draw_ctx_t * draw_ctx, + const lv_draw_img_dsc_t * draw_dsc, + const lv_area_t * coords, const void * src); static void show_error(lv_draw_ctx_t * draw_ctx, const lv_area_t * coords, const char * msg); static void draw_cleanup(_lv_img_cache_entry_t * cache); @@ -236,7 +237,8 @@ void lv_draw_img_decoded(lv_draw_ctx_t * draw_ctx, const lv_draw_img_dsc_t * dsc * STATIC FUNCTIONS **********************/ -LV_ATTRIBUTE_FAST_MEM static lv_res_t decode_and_draw(lv_draw_ctx_t * draw_ctx, const lv_draw_img_dsc_t * draw_dsc, +static lv_res_t LV_ATTRIBUTE_FAST_MEM decode_and_draw(lv_draw_ctx_t * draw_ctx, + const lv_draw_img_dsc_t * draw_dsc, const lv_area_t * coords, const void * src) { if(draw_dsc->opa <= LV_OPA_MIN) return LV_RES_OK; diff --git a/src/draw/lv_draw_label.c b/src/draw/lv_draw_label.c index 7f80df453..daf44743f 100644 --- a/src/draw/lv_draw_label.c +++ b/src/draw/lv_draw_label.c @@ -52,7 +52,7 @@ static uint8_t hex_char_to_num(char hex); * GLOBAL FUNCTIONS **********************/ -void lv_draw_label_dsc_init(lv_draw_label_dsc_t * dsc) +void LV_ATTRIBUTE_FAST_MEM lv_draw_label_dsc_init(lv_draw_label_dsc_t * dsc) { lv_memset_00(dsc, sizeof(lv_draw_label_dsc_t)); dsc->opa = LV_OPA_COVER; @@ -74,7 +74,7 @@ void lv_draw_label_dsc_init(lv_draw_label_dsc_t * dsc) * @param hint pointer to a `lv_draw_label_hint_t` variable. * It is managed by the draw to speed up the drawing of very long texts (thousands of lines). */ -LV_ATTRIBUTE_FAST_MEM void lv_draw_label(lv_draw_ctx_t * draw_ctx, const lv_draw_label_dsc_t * dsc, +void LV_ATTRIBUTE_FAST_MEM lv_draw_label(lv_draw_ctx_t * draw_ctx, const lv_draw_label_dsc_t * dsc, const lv_area_t * coords, const char * txt, lv_draw_label_hint_t * hint) { if(dsc->opa <= LV_OPA_MIN) return; diff --git a/src/draw/lv_draw_label.h b/src/draw/lv_draw_label.h index de72eddf3..b28436af8 100644 --- a/src/draw/lv_draw_label.h +++ b/src/draw/lv_draw_label.h @@ -68,7 +68,7 @@ struct _lv_draw_ctx_t; * GLOBAL PROTOTYPES **********************/ -LV_ATTRIBUTE_FAST_MEM void lv_draw_label_dsc_init(lv_draw_label_dsc_t * dsc); +void /* LV_ATTRIBUTE_FAST_MEM */ lv_draw_label_dsc_init(lv_draw_label_dsc_t * dsc); /** * Write a text @@ -79,8 +79,8 @@ LV_ATTRIBUTE_FAST_MEM void lv_draw_label_dsc_init(lv_draw_label_dsc_t * dsc); * @param hint pointer to a `lv_draw_label_hint_t` variable. * It is managed by the draw to speed up the drawing of very long texts (thousands of lines). */ -LV_ATTRIBUTE_FAST_MEM void lv_draw_label(struct _lv_draw_ctx_t * draw_ctx, const lv_draw_label_dsc_t * dsc, - const lv_area_t * coords, const char * txt, lv_draw_label_hint_t * hint); +void /* LV_ATTRIBUTE_FAST_MEM */ lv_draw_label(struct _lv_draw_ctx_t * draw_ctx, const lv_draw_label_dsc_t * dsc, + const lv_area_t * coords, const char * txt, lv_draw_label_hint_t * hint); void lv_draw_letter(struct _lv_draw_ctx_t * draw_ctx, const lv_draw_label_dsc_t * dsc, const lv_point_t * pos_p, uint32_t letter); diff --git a/src/draw/lv_draw_line.c b/src/draw/lv_draw_line.c index b4844dbd1..d0c432763 100644 --- a/src/draw/lv_draw_line.c +++ b/src/draw/lv_draw_line.c @@ -34,7 +34,7 @@ * GLOBAL FUNCTIONS **********************/ -LV_ATTRIBUTE_FAST_MEM void lv_draw_line_dsc_init(lv_draw_line_dsc_t * dsc) +void LV_ATTRIBUTE_FAST_MEM lv_draw_line_dsc_init(lv_draw_line_dsc_t * dsc) { lv_memset_00(dsc, sizeof(lv_draw_line_dsc_t)); dsc->width = 1; @@ -42,7 +42,7 @@ LV_ATTRIBUTE_FAST_MEM void lv_draw_line_dsc_init(lv_draw_line_dsc_t * dsc) dsc->color = lv_color_black(); } -LV_ATTRIBUTE_FAST_MEM void lv_draw_line(struct _lv_draw_ctx_t * draw_ctx, const lv_draw_line_dsc_t * dsc, +void LV_ATTRIBUTE_FAST_MEM lv_draw_line(struct _lv_draw_ctx_t * draw_ctx, const lv_draw_line_dsc_t * dsc, const lv_point_t * point1, const lv_point_t * point2) { if(dsc->width == 0) return; diff --git a/src/draw/lv_draw_line.h b/src/draw/lv_draw_line.h index d82ea51bd..b476ce4ca 100644 --- a/src/draw/lv_draw_line.h +++ b/src/draw/lv_draw_line.h @@ -43,7 +43,7 @@ struct _lv_draw_ctx_t; * GLOBAL PROTOTYPES **********************/ -LV_ATTRIBUTE_FAST_MEM void lv_draw_line_dsc_init(lv_draw_line_dsc_t * dsc); +void /* LV_ATTRIBUTE_FAST_MEM */ lv_draw_line_dsc_init(lv_draw_line_dsc_t * dsc); /** * Draw a line @@ -52,8 +52,8 @@ LV_ATTRIBUTE_FAST_MEM void lv_draw_line_dsc_init(lv_draw_line_dsc_t * dsc); * @param clip the line will be drawn only in this area * @param dsc pointer to an initialized `lv_draw_line_dsc_t` variable */ -void lv_draw_line(struct _lv_draw_ctx_t * draw_ctx, const lv_draw_line_dsc_t * dsc, const lv_point_t * point1, - const lv_point_t * point2); +void /* LV_ATTRIBUTE_FAST_MEM */ lv_draw_line(struct _lv_draw_ctx_t * draw_ctx, const lv_draw_line_dsc_t * dsc, + const lv_point_t * point1, const lv_point_t * point2); /********************** diff --git a/src/draw/lv_draw_mask.c b/src/draw/lv_draw_mask.c index 2170da941..872ca9a98 100644 --- a/src/draw/lv_draw_mask.c +++ b/src/draw/lv_draw_mask.c @@ -26,31 +26,31 @@ /********************** * STATIC PROTOTYPES **********************/ -LV_ATTRIBUTE_FAST_MEM static lv_draw_mask_res_t lv_draw_mask_line(lv_opa_t * mask_buf, lv_coord_t abs_x, - lv_coord_t abs_y, lv_coord_t len, - lv_draw_mask_line_param_t * param); -LV_ATTRIBUTE_FAST_MEM static lv_draw_mask_res_t lv_draw_mask_radius(lv_opa_t * mask_buf, lv_coord_t abs_x, - lv_coord_t abs_y, lv_coord_t len, - lv_draw_mask_radius_param_t * param); -LV_ATTRIBUTE_FAST_MEM static lv_draw_mask_res_t lv_draw_mask_angle(lv_opa_t * mask_buf, lv_coord_t abs_x, - lv_coord_t abs_y, lv_coord_t len, - lv_draw_mask_angle_param_t * param); -LV_ATTRIBUTE_FAST_MEM static lv_draw_mask_res_t lv_draw_mask_fade(lv_opa_t * mask_buf, lv_coord_t abs_x, - lv_coord_t abs_y, lv_coord_t len, - lv_draw_mask_fade_param_t * param); -LV_ATTRIBUTE_FAST_MEM static lv_draw_mask_res_t lv_draw_mask_map(lv_opa_t * mask_buf, lv_coord_t abs_x, - lv_coord_t abs_y, lv_coord_t len, - lv_draw_mask_map_param_t * param); -LV_ATTRIBUTE_FAST_MEM static lv_draw_mask_res_t lv_draw_mask_polygon(lv_opa_t * mask_buf, lv_coord_t abs_x, +static lv_draw_mask_res_t /* LV_ATTRIBUTE_FAST_MEM */ lv_draw_mask_line(lv_opa_t * mask_buf, lv_coord_t abs_x, + lv_coord_t abs_y, lv_coord_t len, + lv_draw_mask_line_param_t * param); +static lv_draw_mask_res_t /* LV_ATTRIBUTE_FAST_MEM */ lv_draw_mask_radius(lv_opa_t * mask_buf, lv_coord_t abs_x, + lv_coord_t abs_y, lv_coord_t len, + lv_draw_mask_radius_param_t * param); +static lv_draw_mask_res_t /* LV_ATTRIBUTE_FAST_MEM */ lv_draw_mask_angle(lv_opa_t * mask_buf, lv_coord_t abs_x, + lv_coord_t abs_y, lv_coord_t len, + lv_draw_mask_angle_param_t * param); +static lv_draw_mask_res_t /* LV_ATTRIBUTE_FAST_MEM */ lv_draw_mask_fade(lv_opa_t * mask_buf, lv_coord_t abs_x, + lv_coord_t abs_y, lv_coord_t len, + lv_draw_mask_fade_param_t * param); +static lv_draw_mask_res_t /* LV_ATTRIBUTE_FAST_MEM */ lv_draw_mask_map(lv_opa_t * mask_buf, lv_coord_t abs_x, + lv_coord_t abs_y, lv_coord_t len, + lv_draw_mask_map_param_t * param); +static lv_draw_mask_res_t /* LV_ATTRIBUTE_FAST_MEM */ lv_draw_mask_polygon(lv_opa_t * mask_buf, lv_coord_t abs_x, + lv_coord_t abs_y, lv_coord_t len, + lv_draw_mask_polygon_param_t * param); + +static lv_draw_mask_res_t /* LV_ATTRIBUTE_FAST_MEM */ line_mask_flat(lv_opa_t * mask_buf, lv_coord_t abs_x, lv_coord_t abs_y, lv_coord_t len, - lv_draw_mask_polygon_param_t * param); - -LV_ATTRIBUTE_FAST_MEM static lv_draw_mask_res_t line_mask_flat(lv_opa_t * mask_buf, lv_coord_t abs_x, lv_coord_t abs_y, - lv_coord_t len, - lv_draw_mask_line_param_t * p); -LV_ATTRIBUTE_FAST_MEM static lv_draw_mask_res_t line_mask_steep(lv_opa_t * mask_buf, lv_coord_t abs_x, lv_coord_t abs_y, - lv_coord_t len, - lv_draw_mask_line_param_t * p); + lv_draw_mask_line_param_t * p); +static lv_draw_mask_res_t /* LV_ATTRIBUTE_FAST_MEM */ line_mask_steep(lv_opa_t * mask_buf, lv_coord_t abs_x, + lv_coord_t abs_y, lv_coord_t len, + lv_draw_mask_line_param_t * p); static void circ_init(lv_point_t * c, lv_coord_t * tmp, lv_coord_t radius); static bool circ_cont(lv_point_t * c); @@ -58,7 +58,7 @@ static void circ_next(lv_point_t * c, lv_coord_t * tmp); static void circ_calc_aa4(_lv_draw_mask_radius_circle_dsc_t * c, lv_coord_t radius); static lv_opa_t * get_next_line(_lv_draw_mask_radius_circle_dsc_t * c, lv_coord_t y, lv_coord_t * len, lv_coord_t * x_start); -LV_ATTRIBUTE_FAST_MEM static inline lv_opa_t mask_mix(lv_opa_t mask_act, lv_opa_t mask_new); +static inline lv_opa_t /* LV_ATTRIBUTE_FAST_MEM */ mask_mix(lv_opa_t mask_act, lv_opa_t mask_new); /********************** * STATIC VARIABLES @@ -108,8 +108,8 @@ int16_t lv_draw_mask_add(void * param, void * custom_id) * - `LV_DRAW_MASK_RES_FULL_COVER`: the whole line is fully visible. `mask_buf` is unchanged * - `LV_DRAW_MASK_RES_CHANGED`: `mask_buf` has changed, it shows the desired opacity of each pixel in the given line */ -LV_ATTRIBUTE_FAST_MEM lv_draw_mask_res_t lv_draw_mask_apply(lv_opa_t * mask_buf, lv_coord_t abs_x, lv_coord_t abs_y, - lv_coord_t len) +lv_draw_mask_res_t LV_ATTRIBUTE_FAST_MEM lv_draw_mask_apply(lv_opa_t * mask_buf, lv_coord_t abs_x, + lv_coord_t abs_y, lv_coord_t len) { bool changed = false; _lv_draw_mask_common_dsc_t * dsc; @@ -142,8 +142,9 @@ LV_ATTRIBUTE_FAST_MEM lv_draw_mask_res_t lv_draw_mask_apply(lv_opa_t * mask_buf, * - `LV_DRAW_MASK_RES_FULL_COVER`: the whole line is fully visible. `mask_buf` is unchanged * - `LV_DRAW_MASK_RES_CHANGED`: `mask_buf` has changed, it shows the desired opacity of each pixel in the given line */ -LV_ATTRIBUTE_FAST_MEM lv_draw_mask_res_t lv_draw_mask_apply_ids(lv_opa_t * mask_buf, lv_coord_t abs_x, lv_coord_t abs_y, - lv_coord_t len, const int16_t * ids, int16_t ids_count) +lv_draw_mask_res_t LV_ATTRIBUTE_FAST_MEM lv_draw_mask_apply_ids(lv_opa_t * mask_buf, lv_coord_t abs_x, + lv_coord_t abs_y, lv_coord_t len, + const int16_t * ids, int16_t ids_count) { bool changed = false; _lv_draw_mask_common_dsc_t * dsc; @@ -243,7 +244,7 @@ void _lv_draw_mask_cleanup(void) * Count the currently added masks * @return number of active masks */ -LV_ATTRIBUTE_FAST_MEM uint8_t lv_draw_mask_get_cnt(void) +uint8_t LV_ATTRIBUTE_FAST_MEM lv_draw_mask_get_cnt(void) { uint8_t cnt = 0; uint8_t i; @@ -593,7 +594,7 @@ void lv_draw_mask_polygon_init(lv_draw_mask_polygon_param_t * param, const lv_po * STATIC FUNCTIONS **********************/ -LV_ATTRIBUTE_FAST_MEM static lv_draw_mask_res_t lv_draw_mask_line(lv_opa_t * mask_buf, lv_coord_t abs_x, +static lv_draw_mask_res_t LV_ATTRIBUTE_FAST_MEM lv_draw_mask_line(lv_opa_t * mask_buf, lv_coord_t abs_x, lv_coord_t abs_y, lv_coord_t len, lv_draw_mask_line_param_t * p) { @@ -653,7 +654,7 @@ LV_ATTRIBUTE_FAST_MEM static lv_draw_mask_res_t lv_draw_mask_line(lv_opa_t * mas return res; } -LV_ATTRIBUTE_FAST_MEM static lv_draw_mask_res_t line_mask_flat(lv_opa_t * mask_buf, lv_coord_t abs_x, lv_coord_t abs_y, +static lv_draw_mask_res_t LV_ATTRIBUTE_FAST_MEM line_mask_flat(lv_opa_t * mask_buf, lv_coord_t abs_x, lv_coord_t abs_y, lv_coord_t len, lv_draw_mask_line_param_t * p) { @@ -769,7 +770,7 @@ LV_ATTRIBUTE_FAST_MEM static lv_draw_mask_res_t line_mask_flat(lv_opa_t * mask_b return LV_DRAW_MASK_RES_CHANGED; } -LV_ATTRIBUTE_FAST_MEM static lv_draw_mask_res_t line_mask_steep(lv_opa_t * mask_buf, lv_coord_t abs_x, lv_coord_t abs_y, +static lv_draw_mask_res_t LV_ATTRIBUTE_FAST_MEM line_mask_steep(lv_opa_t * mask_buf, lv_coord_t abs_x, lv_coord_t abs_y, lv_coord_t len, lv_draw_mask_line_param_t * p) { @@ -911,7 +912,7 @@ LV_ATTRIBUTE_FAST_MEM static lv_draw_mask_res_t line_mask_steep(lv_opa_t * mask_ return LV_DRAW_MASK_RES_CHANGED; } -LV_ATTRIBUTE_FAST_MEM static lv_draw_mask_res_t lv_draw_mask_angle(lv_opa_t * mask_buf, lv_coord_t abs_x, +static lv_draw_mask_res_t LV_ATTRIBUTE_FAST_MEM lv_draw_mask_angle(lv_opa_t * mask_buf, lv_coord_t abs_x, lv_coord_t abs_y, lv_coord_t len, lv_draw_mask_angle_param_t * p) { @@ -1050,7 +1051,7 @@ LV_ATTRIBUTE_FAST_MEM static lv_draw_mask_res_t lv_draw_mask_angle(lv_opa_t * ma -LV_ATTRIBUTE_FAST_MEM static lv_draw_mask_res_t lv_draw_mask_radius(lv_opa_t * mask_buf, lv_coord_t abs_x, +static lv_draw_mask_res_t LV_ATTRIBUTE_FAST_MEM lv_draw_mask_radius(lv_opa_t * mask_buf, lv_coord_t abs_x, lv_coord_t abs_y, lv_coord_t len, lv_draw_mask_radius_param_t * p) { @@ -1167,7 +1168,7 @@ LV_ATTRIBUTE_FAST_MEM static lv_draw_mask_res_t lv_draw_mask_radius(lv_opa_t * m return LV_DRAW_MASK_RES_CHANGED; } -LV_ATTRIBUTE_FAST_MEM static lv_draw_mask_res_t lv_draw_mask_fade(lv_opa_t * mask_buf, lv_coord_t abs_x, +static lv_draw_mask_res_t LV_ATTRIBUTE_FAST_MEM lv_draw_mask_fade(lv_opa_t * mask_buf, lv_coord_t abs_x, lv_coord_t abs_y, lv_coord_t len, lv_draw_mask_fade_param_t * p) { @@ -1213,7 +1214,7 @@ LV_ATTRIBUTE_FAST_MEM static lv_draw_mask_res_t lv_draw_mask_fade(lv_opa_t * mas } } -LV_ATTRIBUTE_FAST_MEM static lv_draw_mask_res_t lv_draw_mask_map(lv_opa_t * mask_buf, lv_coord_t abs_x, +static lv_draw_mask_res_t LV_ATTRIBUTE_FAST_MEM lv_draw_mask_map(lv_opa_t * mask_buf, lv_coord_t abs_x, lv_coord_t abs_y, lv_coord_t len, lv_draw_mask_map_param_t * p) { @@ -1247,7 +1248,7 @@ LV_ATTRIBUTE_FAST_MEM static lv_draw_mask_res_t lv_draw_mask_map(lv_opa_t * mask return LV_DRAW_MASK_RES_CHANGED; } -LV_ATTRIBUTE_FAST_MEM static lv_draw_mask_res_t lv_draw_mask_polygon(lv_opa_t * mask_buf, lv_coord_t abs_x, +static lv_draw_mask_res_t LV_ATTRIBUTE_FAST_MEM lv_draw_mask_polygon(lv_opa_t * mask_buf, lv_coord_t abs_x, lv_coord_t abs_y, lv_coord_t len, lv_draw_mask_polygon_param_t * param) { @@ -1518,7 +1519,7 @@ static lv_opa_t * get_next_line(_lv_draw_mask_radius_circle_dsc_t * c, lv_coord_ } -LV_ATTRIBUTE_FAST_MEM static inline lv_opa_t mask_mix(lv_opa_t mask_act, lv_opa_t mask_new) +static inline lv_opa_t LV_ATTRIBUTE_FAST_MEM mask_mix(lv_opa_t mask_act, lv_opa_t mask_new) { if(mask_new >= LV_OPA_MAX) return mask_act; if(mask_new <= LV_OPA_MIN) return 0; diff --git a/src/draw/lv_draw_mask.h b/src/draw/lv_draw_mask.h index b7e4e1cd2..908be6b88 100644 --- a/src/draw/lv_draw_mask.h +++ b/src/draw/lv_draw_mask.h @@ -241,8 +241,8 @@ int16_t lv_draw_mask_add(void * param, void * custom_id); * - `LV_DRAW_MASK_RES_FULL_COVER`: the whole line is fully visible. `mask_buf` is unchanged * - `LV_DRAW_MASK_RES_CHANGED`: `mask_buf` has changed, it shows the desired opacity of each pixel in the given line */ -LV_ATTRIBUTE_FAST_MEM lv_draw_mask_res_t lv_draw_mask_apply(lv_opa_t * mask_buf, lv_coord_t abs_x, lv_coord_t abs_y, - lv_coord_t len); +lv_draw_mask_res_t /* LV_ATTRIBUTE_FAST_MEM */ lv_draw_mask_apply(lv_opa_t * mask_buf, lv_coord_t abs_x, + lv_coord_t abs_y, lv_coord_t len); /** * Apply the specified buffers on a line. Used internally by the library's drawing routines. @@ -257,8 +257,9 @@ LV_ATTRIBUTE_FAST_MEM lv_draw_mask_res_t lv_draw_mask_apply(lv_opa_t * mask_buf, * - `LV_DRAW_MASK_RES_FULL_COVER`: the whole line is fully visible. `mask_buf` is unchanged * - `LV_DRAW_MASK_RES_CHANGED`: `mask_buf` has changed, it shows the desired opacity of each pixel in the given line */ -LV_ATTRIBUTE_FAST_MEM lv_draw_mask_res_t lv_draw_mask_apply_ids(lv_opa_t * mask_buf, lv_coord_t abs_x, lv_coord_t abs_y, - lv_coord_t len, const int16_t * ids, int16_t ids_count); +lv_draw_mask_res_t /* LV_ATTRIBUTE_FAST_MEM */ lv_draw_mask_apply_ids(lv_opa_t * mask_buf, lv_coord_t abs_x, + lv_coord_t abs_y, lv_coord_t len, + const int16_t * ids, int16_t ids_count); //! @endcond @@ -299,7 +300,7 @@ void _lv_draw_mask_cleanup(void); * Count the currently added masks * @return number of active masks */ -LV_ATTRIBUTE_FAST_MEM uint8_t lv_draw_mask_get_cnt(void); +uint8_t /* LV_ATTRIBUTE_FAST_MEM */ lv_draw_mask_get_cnt(void); /** diff --git a/src/draw/lv_draw_rect.c b/src/draw/lv_draw_rect.c index f34854d9c..ae81f3880 100644 --- a/src/draw/lv_draw_rect.c +++ b/src/draw/lv_draw_rect.c @@ -34,7 +34,7 @@ * GLOBAL FUNCTIONS **********************/ -LV_ATTRIBUTE_FAST_MEM void lv_draw_rect_dsc_init(lv_draw_rect_dsc_t * dsc) +void LV_ATTRIBUTE_FAST_MEM lv_draw_rect_dsc_init(lv_draw_rect_dsc_t * dsc) { lv_memset_00(dsc, sizeof(lv_draw_rect_dsc_t)); dsc->bg_color = lv_color_white(); diff --git a/src/draw/lv_draw_rect.h b/src/draw/lv_draw_rect.h index 1583e3e67..46a58a493 100644 --- a/src/draw/lv_draw_rect.h +++ b/src/draw/lv_draw_rect.h @@ -74,7 +74,7 @@ struct _lv_draw_ctx_t; * GLOBAL PROTOTYPES **********************/ -LV_ATTRIBUTE_FAST_MEM void lv_draw_rect_dsc_init(lv_draw_rect_dsc_t * dsc); +void /* LV_ATTRIBUTE_FAST_MEM */ lv_draw_rect_dsc_init(lv_draw_rect_dsc_t * dsc); /** diff --git a/src/draw/renesas/lv_gpu_d2_draw_label.c b/src/draw/renesas/lv_gpu_d2_draw_label.c index b12866de5..e92ebf190 100644 --- a/src/draw/renesas/lv_gpu_d2_draw_label.c +++ b/src/draw/renesas/lv_gpu_d2_draw_label.c @@ -40,7 +40,7 @@ extern const uint8_t _lv_bpp8_opa_table[256]; * STATIC FUNCTIONS **********************/ -LV_ATTRIBUTE_FAST_MEM static void draw_letter_normal(lv_draw_ctx_t * draw_ctx, const lv_draw_label_dsc_t * dsc, +static void LV_ATTRIBUTE_FAST_MEM draw_letter_normal(lv_draw_ctx_t * draw_ctx, const lv_draw_label_dsc_t * dsc, const lv_point_t * pos, lv_font_glyph_dsc_t * g, const uint8_t * map_p) { diff --git a/src/draw/sw/lv_draw_sw.h b/src/draw/sw/lv_draw_sw.h index 1618649cf..0f6d46b90 100644 --- a/src/draw/sw/lv_draw_sw.h +++ b/src/draw/sw/lv_draw_sw.h @@ -61,11 +61,13 @@ void lv_draw_sw_bg(lv_draw_ctx_t * draw_ctx, const lv_draw_rect_dsc_t * dsc, con void lv_draw_sw_letter(lv_draw_ctx_t * draw_ctx, const lv_draw_label_dsc_t * dsc, const lv_point_t * pos_p, uint32_t letter); -LV_ATTRIBUTE_FAST_MEM void lv_draw_sw_img_decoded(struct _lv_draw_ctx_t * draw_ctx, const lv_draw_img_dsc_t * draw_dsc, - const lv_area_t * coords, const uint8_t * src_buf, lv_img_cf_t cf); +void /* LV_ATTRIBUTE_FAST_MEM */ lv_draw_sw_img_decoded(struct _lv_draw_ctx_t * draw_ctx, + const lv_draw_img_dsc_t * draw_dsc, + const lv_area_t * coords, const uint8_t * src_buf, + lv_img_cf_t cf); -LV_ATTRIBUTE_FAST_MEM void lv_draw_sw_line(struct _lv_draw_ctx_t * draw_ctx, const lv_draw_line_dsc_t * dsc, - const lv_point_t * point1, const lv_point_t * point2); +void /* LV_ATTRIBUTE_FAST_MEM */ lv_draw_sw_line(struct _lv_draw_ctx_t * draw_ctx, const lv_draw_line_dsc_t * dsc, + const lv_point_t * point1, const lv_point_t * point2); void lv_draw_sw_polygon(struct _lv_draw_ctx_t * draw_ctx, const lv_draw_rect_dsc_t * draw_dsc, const lv_point_t * points, uint16_t point_cnt); diff --git a/src/draw/sw/lv_draw_sw_blend.c b/src/draw/sw/lv_draw_sw_blend.c index ef9579210..80a68ae5a 100644 --- a/src/draw/sw/lv_draw_sw_blend.c +++ b/src/draw/sw/lv_draw_sw_blend.c @@ -26,13 +26,15 @@ static void fill_set_px(lv_color_t * dest_buf, const lv_area_t * blend_area, lv_coord_t dest_stride, lv_color_t color, lv_opa_t opa, const lv_opa_t * mask, lv_coord_t mask_stide); -LV_ATTRIBUTE_FAST_MEM static void fill_normal(lv_color_t * dest_buf, const lv_area_t * dest_area, - lv_coord_t dest_stride, lv_color_t color, lv_opa_t opa, const lv_opa_t * mask, lv_coord_t mask_stride); +static void /* LV_ATTRIBUTE_FAST_MEM */ fill_normal(lv_color_t * dest_buf, const lv_area_t * dest_area, + lv_coord_t dest_stride, lv_color_t color, lv_opa_t opa, + const lv_opa_t * mask, lv_coord_t mask_stride); #if LV_COLOR_SCREEN_TRANSP -LV_ATTRIBUTE_FAST_MEM static void fill_argb(lv_color_t * dest_buf, const lv_area_t * dest_area, - lv_coord_t dest_stride, lv_color_t color, lv_opa_t opa, const lv_opa_t * mask, lv_coord_t mask_stride); +static void /* LV_ATTRIBUTE_FAST_MEM */ fill_argb(lv_color_t * dest_buf, const lv_area_t * dest_area, + lv_coord_t dest_stride, lv_color_t color, lv_opa_t opa, + const lv_opa_t * mask, lv_coord_t mask_stride); #endif /*LV_COLOR_SCREEN_TRANSP*/ #if LV_DRAW_COMPLEX @@ -41,15 +43,19 @@ static void fill_blended(lv_color_t * dest_buf, const lv_area_t * dest_area, lv_ #endif /*LV_DRAW_COMPLEX*/ static void map_set_px(lv_color_t * dest_buf, const lv_area_t * dest_area, lv_coord_t dest_stride, - const lv_color_t * src_buf, lv_coord_t src_stride, lv_opa_t opa, const lv_opa_t * mask, lv_coord_t mask_stride); + const lv_color_t * src_buf, lv_coord_t src_stride, lv_opa_t opa, + const lv_opa_t * mask, lv_coord_t mask_stride); -LV_ATTRIBUTE_FAST_MEM static void map_normal(lv_color_t * dest_buf, const lv_area_t * dest_area, lv_coord_t dest_stride, - const lv_color_t * src_buf, lv_coord_t src_stride, lv_opa_t opa, const lv_opa_t * mask, lv_coord_t mask_stride); +static void /* LV_ATTRIBUTE_FAST_MEM */ map_normal(lv_color_t * dest_buf, const lv_area_t * dest_area, + lv_coord_t dest_stride, const lv_color_t * src_buf, + lv_coord_t src_stride, lv_opa_t opa, const lv_opa_t * mask, + lv_coord_t mask_stride); #if LV_COLOR_SCREEN_TRANSP -LV_ATTRIBUTE_FAST_MEM static void map_argb(lv_color_t * dest_buf, const lv_area_t * dest_area, lv_coord_t dest_stride, - const lv_color_t * src_buf, lv_coord_t src_stride, lv_opa_t opa, - const lv_opa_t * mask, lv_coord_t mask_stride, lv_blend_mode_t blend_mode); +static void /* LV_ATTRIBUTE_FAST_MEM */ map_argb(lv_color_t * dest_buf, const lv_area_t * dest_area, + lv_coord_t dest_stride, const lv_color_t * src_buf, + lv_coord_t src_stride, lv_opa_t opa, const lv_opa_t * mask, + lv_coord_t mask_stride, lv_blend_mode_t blend_mode); #endif /*LV_COLOR_SCREEN_TRANSP*/ @@ -101,7 +107,8 @@ void lv_draw_sw_blend(lv_draw_ctx_t * draw_ctx, const lv_draw_sw_blend_dsc_t * d ((lv_draw_sw_ctx_t *)draw_ctx)->blend(draw_ctx, dsc); } -LV_ATTRIBUTE_FAST_MEM void lv_draw_sw_blend_basic(lv_draw_ctx_t * draw_ctx, const lv_draw_sw_blend_dsc_t * dsc) +void LV_ATTRIBUTE_FAST_MEM lv_draw_sw_blend_basic(lv_draw_ctx_t * draw_ctx, + const lv_draw_sw_blend_dsc_t * dsc) { lv_opa_t * mask; if(dsc->mask_buf == NULL) mask = NULL; @@ -237,8 +244,9 @@ static void fill_set_px(lv_color_t * dest_buf, const lv_area_t * blend_area, lv_ } } -LV_ATTRIBUTE_FAST_MEM static void fill_normal(lv_color_t * dest_buf, const lv_area_t * dest_area, - lv_coord_t dest_stride, lv_color_t color, lv_opa_t opa, const lv_opa_t * mask, lv_coord_t mask_stride) +static LV_ATTRIBUTE_FAST_MEM void fill_normal(lv_color_t * dest_buf, const lv_area_t * dest_area, + lv_coord_t dest_stride, lv_color_t color, lv_opa_t opa, + const lv_opa_t * mask, lv_coord_t mask_stride) { int32_t w = lv_area_get_width(dest_area); int32_t h = lv_area_get_height(dest_area); @@ -442,8 +450,9 @@ static inline void set_px_argb_blend(uint8_t * buf, lv_color_t color, lv_opa_t o } -LV_ATTRIBUTE_FAST_MEM static void fill_argb(lv_color_t * dest_buf, const lv_area_t * dest_area, - lv_coord_t dest_stride, lv_color_t color, lv_opa_t opa, const lv_opa_t * mask, lv_coord_t mask_stride) +static void LV_ATTRIBUTE_FAST_MEM fill_argb(lv_color_t * dest_buf, const lv_area_t * dest_area, + lv_coord_t dest_stride, lv_color_t color, lv_opa_t opa, + const lv_opa_t * mask, lv_coord_t mask_stride) { uint8_t * dest_buf8 = (uint8_t *) dest_buf; int32_t w = lv_area_get_width(dest_area); @@ -599,7 +608,8 @@ static void fill_blended(lv_color_t * dest_buf, const lv_area_t * dest_area, #endif static void map_set_px(lv_color_t * dest_buf, const lv_area_t * dest_area, lv_coord_t dest_stride, - const lv_color_t * src_buf, lv_coord_t src_stride, lv_opa_t opa, const lv_opa_t * mask, lv_coord_t mask_stride) + const lv_color_t * src_buf, lv_coord_t src_stride, lv_opa_t opa, + const lv_opa_t * mask, lv_coord_t mask_stride) { lv_disp_t * disp = _lv_refr_get_disp_refreshing(); @@ -633,8 +643,10 @@ static void map_set_px(lv_color_t * dest_buf, const lv_area_t * dest_area, lv_co } } -LV_ATTRIBUTE_FAST_MEM static void map_normal(lv_color_t * dest_buf, const lv_area_t * dest_area, lv_coord_t dest_stride, - const lv_color_t * src_buf, lv_coord_t src_stride, lv_opa_t opa, const lv_opa_t * mask, lv_coord_t mask_stride) +static void LV_ATTRIBUTE_FAST_MEM map_normal(lv_color_t * dest_buf, const lv_area_t * dest_area, + lv_coord_t dest_stride, const lv_color_t * src_buf, + lv_coord_t src_stride, lv_opa_t opa, const lv_opa_t * mask, + lv_coord_t mask_stride) { int32_t w = lv_area_get_width(dest_area); @@ -729,9 +741,10 @@ LV_ATTRIBUTE_FAST_MEM static void map_normal(lv_color_t * dest_buf, const lv_are #if LV_COLOR_SCREEN_TRANSP -LV_ATTRIBUTE_FAST_MEM static void map_argb(lv_color_t * dest_buf, const lv_area_t * dest_area, lv_coord_t dest_stride, - const lv_color_t * src_buf, lv_coord_t src_stride, lv_opa_t opa, - const lv_opa_t * mask, lv_coord_t mask_stride, lv_blend_mode_t blend_mode) +static void LV_ATTRIBUTE_FAST_MEM map_argb(lv_color_t * dest_buf, const lv_area_t * dest_area, + lv_coord_t dest_stride, const lv_color_t * src_buf, + lv_coord_t src_stride, lv_opa_t opa, const lv_opa_t * mask, + lv_coord_t mask_stride, lv_blend_mode_t blend_mode) { uint8_t * dest_buf8 = (uint8_t *) dest_buf; diff --git a/src/draw/sw/lv_draw_sw_blend.h b/src/draw/sw/lv_draw_sw_blend.h index 9a00e533a..3158d985c 100644 --- a/src/draw/sw/lv_draw_sw_blend.h +++ b/src/draw/sw/lv_draw_sw_blend.h @@ -56,7 +56,8 @@ void lv_draw_sw_blend(struct _lv_draw_ctx_t * draw_ctx, const lv_draw_sw_blend_d * @param draw_ctx pointer to a draw context * @param dsc pointer to an initialized blend descriptor */ -LV_ATTRIBUTE_FAST_MEM void lv_draw_sw_blend_basic(struct _lv_draw_ctx_t * draw_ctx, const lv_draw_sw_blend_dsc_t * dsc); +void /* LV_ATTRIBUTE_FAST_MEM */ lv_draw_sw_blend_basic(struct _lv_draw_ctx_t * draw_ctx, + const lv_draw_sw_blend_dsc_t * dsc); /********************** * MACROS diff --git a/src/draw/sw/lv_draw_sw_dither.c b/src/draw/sw/lv_draw_sw_dither.c index ff9ebf3d3..68fd2db6e 100644 --- a/src/draw/sw/lv_draw_sw_dither.c +++ b/src/draw/sw/lv_draw_sw_dither.c @@ -17,7 +17,7 @@ #if _DITHER_GRADIENT -LV_ATTRIBUTE_FAST_MEM void lv_dither_none(lv_grad_t * grad, lv_coord_t x, lv_coord_t y, lv_coord_t w) +void LV_ATTRIBUTE_FAST_MEM lv_dither_none(lv_grad_t * grad, lv_coord_t x, lv_coord_t y, lv_coord_t w) { LV_UNUSED(x); LV_UNUSED(y); @@ -40,7 +40,7 @@ static const uint8_t dither_ordered_threshold_matrix[8 * 8] = { }; /* Shift by 6 to normalize */ -LV_ATTRIBUTE_FAST_MEM void lv_dither_ordered_hor(lv_grad_t * grad, lv_coord_t x, lv_coord_t y, lv_coord_t w) +void LV_ATTRIBUTE_FAST_MEM lv_dither_ordered_hor(lv_grad_t * grad, lv_coord_t x, lv_coord_t y, lv_coord_t w) { LV_UNUSED(x); /* For vertical dithering, the error is spread on the next column (and not next line). @@ -63,7 +63,8 @@ LV_ATTRIBUTE_FAST_MEM void lv_dither_ordered_hor(lv_grad_t * grad, lv_coord_t x, grad->map[j] = lv_color_hex(t.full); } } -LV_ATTRIBUTE_FAST_MEM void lv_dither_ordered_ver(lv_grad_t * grad, lv_coord_t x, lv_coord_t y, lv_coord_t w) + +void LV_ATTRIBUTE_FAST_MEM lv_dither_ordered_ver(lv_grad_t * grad, lv_coord_t x, lv_coord_t y, lv_coord_t w) { /* For vertical dithering, the error is spread on the next column (and not next line). Since the renderer is scanline based, it's not obvious what could be used to perform the rendering efficiently. @@ -97,9 +98,8 @@ LV_ATTRIBUTE_FAST_MEM void lv_dither_ordered_ver(lv_grad_t * grad, lv_coord_t x, } } - #if LV_DITHER_ERROR_DIFFUSION == 1 -LV_ATTRIBUTE_FAST_MEM void lv_dither_err_diff_hor(lv_grad_t * grad, lv_coord_t xs, lv_coord_t y, lv_coord_t w) +void LV_ATTRIBUTE_FAST_MEM lv_dither_err_diff_hor(lv_grad_t * grad, lv_coord_t xs, lv_coord_t y, lv_coord_t w) { LV_UNUSED(xs); LV_UNUSED(y); @@ -153,7 +153,7 @@ LV_ATTRIBUTE_FAST_MEM void lv_dither_err_diff_hor(lv_grad_t * grad, lv_coord_t x grad->map[grad->size - 1] = lv_color_hex(grad->hmap[grad->size - 1].full); } -LV_ATTRIBUTE_FAST_MEM void lv_dither_err_diff_ver(lv_grad_t * grad, lv_coord_t xs, lv_coord_t y, lv_coord_t w) +void LV_ATTRIBUTE_FAST_MEM lv_dither_err_diff_ver(lv_grad_t * grad, lv_coord_t xs, lv_coord_t y, lv_coord_t w) { /* Try to implement error diffusion on a vertical gradient and an horizontal map using those tricks: Since the given hi-resolution gradient (in src) is vertical, the Floyd Steinberg algorithm pass need to be rotated, diff --git a/src/draw/sw/lv_draw_sw_dither.h b/src/draw/sw/lv_draw_sw_dither.h index 6362c5ac4..17f98f90b 100644 --- a/src/draw/sw/lv_draw_sw_dither.h +++ b/src/draw/sw/lv_draw_sw_dither.h @@ -45,18 +45,19 @@ typedef void (*lv_dither_func_t)(struct _lv_gradient_cache_t * grad, lv_coord_t **********************/ #if LV_DRAW_COMPLEX #if _DITHER_GRADIENT -LV_ATTRIBUTE_FAST_MEM void lv_dither_none(struct _lv_gradient_cache_t * grad, lv_coord_t x, lv_coord_t y, lv_coord_t w); +void /* LV_ATTRIBUTE_FAST_MEM */ lv_dither_none(struct _lv_gradient_cache_t * grad, lv_coord_t x, lv_coord_t y, + lv_coord_t w); -LV_ATTRIBUTE_FAST_MEM void lv_dither_ordered_hor(struct _lv_gradient_cache_t * grad, const lv_coord_t xs, - const lv_coord_t y, const lv_coord_t w); -LV_ATTRIBUTE_FAST_MEM void lv_dither_ordered_ver(struct _lv_gradient_cache_t * grad, const lv_coord_t xs, - const lv_coord_t y, const lv_coord_t w); +void /* LV_ATTRIBUTE_FAST_MEM */ lv_dither_ordered_hor(struct _lv_gradient_cache_t * grad, const lv_coord_t xs, + const lv_coord_t y, const lv_coord_t w); +void /* LV_ATTRIBUTE_FAST_MEM */ lv_dither_ordered_ver(struct _lv_gradient_cache_t * grad, const lv_coord_t xs, + const lv_coord_t y, const lv_coord_t w); #if LV_DITHER_ERROR_DIFFUSION == 1 -LV_ATTRIBUTE_FAST_MEM void lv_dither_err_diff_hor(struct _lv_gradient_cache_t * grad, const lv_coord_t xs, - const lv_coord_t y, const lv_coord_t w); -LV_ATTRIBUTE_FAST_MEM void lv_dither_err_diff_ver(struct _lv_gradient_cache_t * grad, const lv_coord_t xs, - const lv_coord_t y, const lv_coord_t w); +void /* LV_ATTRIBUTE_FAST_MEM */ lv_dither_err_diff_hor(struct _lv_gradient_cache_t * grad, const lv_coord_t xs, + const lv_coord_t y, const lv_coord_t w); +void /* LV_ATTRIBUTE_FAST_MEM */ lv_dither_err_diff_ver(struct _lv_gradient_cache_t * grad, const lv_coord_t xs, + const lv_coord_t y, const lv_coord_t w); #endif /* LV_DITHER_ERROR_DIFFUSION */ #endif /* _DITHER_GRADIENT */ diff --git a/src/draw/sw/lv_draw_sw_gradient.c b/src/draw/sw/lv_draw_sw_gradient.c index 4e4663266..efa158ca7 100644 --- a/src/draw/sw/lv_draw_sw_gradient.c +++ b/src/draw/sw/lv_draw_sw_gradient.c @@ -293,7 +293,7 @@ lv_grad_t * lv_gradient_get(const lv_grad_dsc_t * g, lv_coord_t w, lv_coord_t h) return item; } -LV_ATTRIBUTE_FAST_MEM lv_grad_color_t lv_gradient_calculate(const lv_grad_dsc_t * dsc, lv_coord_t range, +lv_grad_color_t LV_ATTRIBUTE_FAST_MEM lv_gradient_calculate(const lv_grad_dsc_t * dsc, lv_coord_t range, lv_coord_t frac) { lv_grad_color_t tmp; diff --git a/src/draw/sw/lv_draw_sw_gradient.h b/src/draw/sw/lv_draw_sw_gradient.h index f5f3215ce..95a3c4e4e 100644 --- a/src/draw/sw/lv_draw_sw_gradient.h +++ b/src/draw/sw/lv_draw_sw_gradient.h @@ -69,8 +69,8 @@ typedef struct _lv_gradient_cache_t { * @param range The range to use in computation. * @param frac The current part used in the range. frac is in [0; range] */ -LV_ATTRIBUTE_FAST_MEM lv_grad_color_t lv_gradient_calculate(const lv_grad_dsc_t * dsc, lv_coord_t range, - lv_coord_t frac); +lv_grad_color_t /* LV_ATTRIBUTE_FAST_MEM */ lv_gradient_calculate(const lv_grad_dsc_t * dsc, lv_coord_t range, + lv_coord_t frac); /** * Set the gradient cache size diff --git a/src/draw/sw/lv_draw_sw_img.c b/src/draw/sw/lv_draw_sw_img.c index 9578bc7cc..7181c15ff 100644 --- a/src/draw/sw/lv_draw_sw_img.c +++ b/src/draw/sw/lv_draw_sw_img.c @@ -42,8 +42,10 @@ static void convert_cb(const lv_area_t * dest_area, const void * src_buf, lv_coo **********************/ -LV_ATTRIBUTE_FAST_MEM void lv_draw_sw_img_decoded(struct _lv_draw_ctx_t * draw_ctx, const lv_draw_img_dsc_t * draw_dsc, - const lv_area_t * coords, const uint8_t * src_buf, lv_img_cf_t cf) +void LV_ATTRIBUTE_FAST_MEM lv_draw_sw_img_decoded(struct _lv_draw_ctx_t * draw_ctx, + const lv_draw_img_dsc_t * draw_dsc, + const lv_area_t * coords, const uint8_t * src_buf, + lv_img_cf_t cf) { /*Use the clip area as draw area*/ lv_area_t draw_area; diff --git a/src/draw/sw/lv_draw_sw_letter.c b/src/draw/sw/lv_draw_sw_letter.c index 7caa74912..d0da8bcfc 100644 --- a/src/draw/sw/lv_draw_sw_letter.c +++ b/src/draw/sw/lv_draw_sw_letter.c @@ -27,8 +27,8 @@ * STATIC PROTOTYPES **********************/ -LV_ATTRIBUTE_FAST_MEM static void draw_letter_normal(lv_draw_ctx_t * draw_ctx, const lv_draw_label_dsc_t * dsc, - const lv_point_t * pos, lv_font_glyph_dsc_t * g, const uint8_t * map_p); +static void /* LV_ATTRIBUTE_FAST_MEM */ draw_letter_normal(lv_draw_ctx_t * draw_ctx, const lv_draw_label_dsc_t * dsc, + const lv_point_t * pos, lv_font_glyph_dsc_t * g, const uint8_t * map_p); #if LV_DRAW_COMPLEX && LV_USE_FONT_SUBPX @@ -162,7 +162,7 @@ void lv_draw_sw_letter(lv_draw_ctx_t * draw_ctx, const lv_draw_label_dsc_t * dsc * STATIC FUNCTIONS **********************/ -LV_ATTRIBUTE_FAST_MEM static void draw_letter_normal(lv_draw_ctx_t * draw_ctx, const lv_draw_label_dsc_t * dsc, +static void LV_ATTRIBUTE_FAST_MEM draw_letter_normal(lv_draw_ctx_t * draw_ctx, const lv_draw_label_dsc_t * dsc, const lv_point_t * pos, lv_font_glyph_dsc_t * g, const uint8_t * map_p) { diff --git a/src/draw/sw/lv_draw_sw_line.c b/src/draw/sw/lv_draw_sw_line.c index 73833c164..c666891c5 100644 --- a/src/draw/sw/lv_draw_sw_line.c +++ b/src/draw/sw/lv_draw_sw_line.c @@ -23,12 +23,12 @@ * STATIC PROTOTYPES **********************/ -LV_ATTRIBUTE_FAST_MEM static void draw_line_skew(struct _lv_draw_ctx_t * draw_ctx, const lv_draw_line_dsc_t * dsc, - const lv_point_t * point1, const lv_point_t * point2); -LV_ATTRIBUTE_FAST_MEM static void draw_line_hor(struct _lv_draw_ctx_t * draw_ctx, const lv_draw_line_dsc_t * dsc, - const lv_point_t * point1, const lv_point_t * point2); -LV_ATTRIBUTE_FAST_MEM static void draw_line_ver(struct _lv_draw_ctx_t * draw_ctx, const lv_draw_line_dsc_t * dsc, - const lv_point_t * point1, const lv_point_t * point2); +static void /* LV_ATTRIBUTE_FAST_MEM */ draw_line_skew(struct _lv_draw_ctx_t * draw_ctx, const lv_draw_line_dsc_t * dsc, + const lv_point_t * point1, const lv_point_t * point2); +static void /* LV_ATTRIBUTE_FAST_MEM */ draw_line_hor(struct _lv_draw_ctx_t * draw_ctx, const lv_draw_line_dsc_t * dsc, + const lv_point_t * point1, const lv_point_t * point2); +static void /* LV_ATTRIBUTE_FAST_MEM */ draw_line_ver(struct _lv_draw_ctx_t * draw_ctx, const lv_draw_line_dsc_t * dsc, + const lv_point_t * point1, const lv_point_t * point2); /********************** * STATIC VARIABLES @@ -49,7 +49,7 @@ LV_ATTRIBUTE_FAST_MEM static void draw_line_ver(struct _lv_draw_ctx_t * draw_ctx * @param clip the line will be drawn only in this area * @param dsc pointer to an initialized `lv_draw_line_dsc_t` variable */ -LV_ATTRIBUTE_FAST_MEM void lv_draw_sw_line(struct _lv_draw_ctx_t * draw_ctx, const lv_draw_line_dsc_t * dsc, +void LV_ATTRIBUTE_FAST_MEM lv_draw_sw_line(struct _lv_draw_ctx_t * draw_ctx, const lv_draw_line_dsc_t * dsc, const lv_point_t * point1, const lv_point_t * point2) { if(dsc->width == 0) return; @@ -109,7 +109,7 @@ LV_ATTRIBUTE_FAST_MEM void lv_draw_sw_line(struct _lv_draw_ctx_t * draw_ctx, con **********************/ -LV_ATTRIBUTE_FAST_MEM static void draw_line_hor(struct _lv_draw_ctx_t * draw_ctx, const lv_draw_line_dsc_t * dsc, +static void LV_ATTRIBUTE_FAST_MEM draw_line_hor(struct _lv_draw_ctx_t * draw_ctx, const lv_draw_line_dsc_t * dsc, const lv_point_t * point1, const lv_point_t * point2) { int32_t w = dsc->width - 1; @@ -195,7 +195,7 @@ LV_ATTRIBUTE_FAST_MEM static void draw_line_hor(struct _lv_draw_ctx_t * draw_ctx #endif /*LV_DRAW_COMPLEX*/ } -LV_ATTRIBUTE_FAST_MEM static void draw_line_ver(struct _lv_draw_ctx_t * draw_ctx, const lv_draw_line_dsc_t * dsc, +static void LV_ATTRIBUTE_FAST_MEM draw_line_ver(struct _lv_draw_ctx_t * draw_ctx, const lv_draw_line_dsc_t * dsc, const lv_point_t * point1, const lv_point_t * point2) { int32_t w = dsc->width - 1; @@ -275,7 +275,7 @@ LV_ATTRIBUTE_FAST_MEM static void draw_line_ver(struct _lv_draw_ctx_t * draw_ctx #endif /*LV_DRAW_COMPLEX*/ } -LV_ATTRIBUTE_FAST_MEM static void draw_line_skew(struct _lv_draw_ctx_t * draw_ctx, const lv_draw_line_dsc_t * dsc, +static void LV_ATTRIBUTE_FAST_MEM draw_line_skew(struct _lv_draw_ctx_t * draw_ctx, const lv_draw_line_dsc_t * dsc, const lv_point_t * point1, const lv_point_t * point2) { #if LV_DRAW_COMPLEX diff --git a/src/draw/sw/lv_draw_sw_rect.c b/src/draw/sw/lv_draw_sw_rect.c index 706ec6b59..a1e620b3c 100644 --- a/src/draw/sw/lv_draw_sw_rect.c +++ b/src/draw/sw/lv_draw_sw_rect.c @@ -35,11 +35,11 @@ static void draw_border(lv_draw_ctx_t * draw_ctx, const lv_draw_rect_dsc_t * dsc static void draw_outline(lv_draw_ctx_t * draw_ctx, const lv_draw_rect_dsc_t * dsc, const lv_area_t * coords); #if LV_DRAW_COMPLEX -LV_ATTRIBUTE_FAST_MEM static void draw_shadow(lv_draw_ctx_t * draw_ctx, const lv_draw_rect_dsc_t * dsc, - const lv_area_t * coords); -LV_ATTRIBUTE_FAST_MEM static void shadow_draw_corner_buf(const lv_area_t * coords, uint16_t * sh_buf, lv_coord_t s, - lv_coord_t r); -LV_ATTRIBUTE_FAST_MEM static void shadow_blur_corner(lv_coord_t size, lv_coord_t sw, uint16_t * sh_ups_buf); +static void /* LV_ATTRIBUTE_FAST_MEM */ draw_shadow(lv_draw_ctx_t * draw_ctx, const lv_draw_rect_dsc_t * dsc, + const lv_area_t * coords); +static void /* LV_ATTRIBUTE_FAST_MEM */ shadow_draw_corner_buf(const lv_area_t * coords, uint16_t * sh_buf, + lv_coord_t s, lv_coord_t r); +static void /* LV_ATTRIBUTE_FAST_MEM */ shadow_blur_corner(lv_coord_t size, lv_coord_t sw, uint16_t * sh_ups_buf); #endif void draw_border_generic(lv_draw_ctx_t * draw_ctx, const lv_area_t * outer_area, const lv_area_t * inner_area, @@ -430,7 +430,7 @@ static void draw_border(lv_draw_ctx_t * draw_ctx, const lv_draw_rect_dsc_t * dsc } #if LV_DRAW_COMPLEX -LV_ATTRIBUTE_FAST_MEM static void draw_shadow(lv_draw_ctx_t * draw_ctx, const lv_draw_rect_dsc_t * dsc, +static void LV_ATTRIBUTE_FAST_MEM draw_shadow(lv_draw_ctx_t * draw_ctx, const lv_draw_rect_dsc_t * dsc, const lv_area_t * coords) { /*Check whether the shadow is visible*/ @@ -950,8 +950,8 @@ LV_ATTRIBUTE_FAST_MEM static void draw_shadow(lv_draw_ctx_t * draw_ctx, const lv * @param sw shadow width * @param r radius */ -LV_ATTRIBUTE_FAST_MEM static void shadow_draw_corner_buf(const lv_area_t * coords, uint16_t * sh_buf, lv_coord_t sw, - lv_coord_t r) +static void LV_ATTRIBUTE_FAST_MEM shadow_draw_corner_buf(const lv_area_t * coords, uint16_t * sh_buf, + lv_coord_t sw, lv_coord_t r) { int32_t sw_ori = sw; int32_t size = sw_ori + r; @@ -1037,7 +1037,7 @@ LV_ATTRIBUTE_FAST_MEM static void shadow_draw_corner_buf(const lv_area_t * coord } -LV_ATTRIBUTE_FAST_MEM static void shadow_blur_corner(lv_coord_t size, lv_coord_t sw, uint16_t * sh_ups_buf) +static void LV_ATTRIBUTE_FAST_MEM shadow_blur_corner(lv_coord_t size, lv_coord_t sw, uint16_t * sh_ups_buf) { int32_t s_left = sw >> 1; int32_t s_right = (sw >> 1); diff --git a/src/hal/lv_hal_disp.c b/src/hal/lv_hal_disp.c index 0cebc3354..087882915 100644 --- a/src/hal/lv_hal_disp.c +++ b/src/hal/lv_hal_disp.c @@ -513,7 +513,7 @@ lv_coord_t lv_disp_get_dpi(const lv_disp_t * disp) * Call in the display driver's `flush_cb` function when the flushing is finished * @param disp_drv pointer to display driver in `flush_cb` where this function is called */ -LV_ATTRIBUTE_FLUSH_READY void lv_disp_flush_ready(lv_disp_drv_t * disp_drv) +void LV_ATTRIBUTE_FLUSH_READY lv_disp_flush_ready(lv_disp_drv_t * disp_drv) { disp_drv->draw_buf->flushing = 0; disp_drv->draw_buf->flushing_last = 0; @@ -525,7 +525,7 @@ LV_ATTRIBUTE_FLUSH_READY void lv_disp_flush_ready(lv_disp_drv_t * disp_drv) * @param disp_drv pointer to display driver * @return true: it's the last area to flush; false: there are other areas too which will be refreshed soon */ -LV_ATTRIBUTE_FLUSH_READY bool lv_disp_flush_is_last(lv_disp_drv_t * disp_drv) +bool LV_ATTRIBUTE_FLUSH_READY lv_disp_flush_is_last(lv_disp_drv_t * disp_drv) { return disp_drv->draw_buf->flushing_last; } diff --git a/src/hal/lv_hal_disp.h b/src/hal/lv_hal_disp.h index d3425fe4e..93a6b4614 100644 --- a/src/hal/lv_hal_disp.h +++ b/src/hal/lv_hal_disp.h @@ -173,10 +173,8 @@ typedef struct _lv_disp_t { struct _lv_obj_t * top_layer; /**< @see lv_disp_get_layer_top*/ struct _lv_obj_t * sys_layer; /**< @see lv_disp_get_layer_sys*/ uint32_t screen_cnt; -uint8_t draw_prev_over_act : - 1; /**< 1: Draw previous screen over active screen*/ -uint8_t del_prev : - 1; /**< 1: Automatically delete the previous screen when the screen load animation is ready*/ + uint8_t draw_prev_over_act : 1; /**< 1: Draw previous screen over active screen*/ + uint8_t del_prev : 1; /**< 1: Automatically delete the previous screen when the screen load anim. is ready*/ uint8_t rendering_in_progress : 1; /**< 1: The current screen rendering is in progress*/ lv_opa_t bg_opa; /** Date: Tue, 25 Jul 2023 16:32:03 +0300 Subject: [PATCH 39/95] fix(config): fix typo in LV_USE_PERF_MONITOR and LV_USE_MEM_MONITOR (#4403) --- src/lv_conf_kconfig.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/lv_conf_kconfig.h b/src/lv_conf_kconfig.h index 7742fe77b..80f706192 100644 --- a/src/lv_conf_kconfig.h +++ b/src/lv_conf_kconfig.h @@ -47,7 +47,7 @@ extern "C" { #ifdef CONFIG_LV_PERF_MONITOR_ALIGN_TOP_LEFT # define CONFIG_LV_USE_PERF_MONITOR_POS LV_ALIGN_TOP_LEFT -#elif defined(CONFIG_LV_USE_PERF_MONITOR_ALIGN_TOP_MID) +#elif defined(CONFIG_LV_PERF_MONITOR_ALIGN_TOP_MID) # define CONFIG_LV_USE_PERF_MONITOR_POS LV_ALIGN_TOP_MID #elif defined(CONFIG_LV_PERF_MONITOR_ALIGN_TOP_RIGHT) # define CONFIG_LV_USE_PERF_MONITOR_POS LV_ALIGN_TOP_RIGHT @@ -67,7 +67,7 @@ extern "C" { #ifdef CONFIG_LV_MEM_MONITOR_ALIGN_TOP_LEFT # define CONFIG_LV_USE_MEM_MONITOR_POS LV_ALIGN_TOP_LEFT -#elif defined(CONFIG_LV_USE_MEM_MONITOR_ALIGN_TOP_MID) +#elif defined(CONFIG_LV_MEM_MONITOR_ALIGN_TOP_MID) # define CONFIG_LV_USE_MEM_MONITOR_POS LV_ALIGN_TOP_MID #elif defined(CONFIG_LV_MEM_MONITOR_ALIGN_TOP_RIGHT) # define CONFIG_LV_USE_MEM_MONITOR_POS LV_ALIGN_TOP_RIGHT From b7317e32f39d0ac38a2a4b5033600955d506bcd2 Mon Sep 17 00:00:00 2001 From: Neo Xu Date: Wed, 26 Jul 2023 23:38:15 +0800 Subject: [PATCH 40/95] fix(decoder): fix LV_IMG_CF_ALPHA_8BIT bin file decoder (#4406) Signed-off-by: Xu Xingliang --- src/draw/lv_img_decoder.c | 31 ++++++++++++++++++++++++++++--- 1 file changed, 28 insertions(+), 3 deletions(-) diff --git a/src/draw/lv_img_decoder.c b/src/draw/lv_img_decoder.c index 13050b8b7..76aff5ec7 100644 --- a/src/draw/lv_img_decoder.c +++ b/src/draw/lv_img_decoder.c @@ -360,10 +360,35 @@ lv_res_t lv_img_decoder_built_in_open(lv_img_decoder_t * decoder, lv_img_decoder } lv_img_cf_t cf = dsc->header.cf; + /*Process A8, RGB565A8, need load file to ram after https://github.com/lvgl/lvgl/pull/3337*/ + if(cf == LV_IMG_CF_ALPHA_8BIT || cf == LV_IMG_CF_RGB565A8) { + if(dsc->src_type == LV_IMG_SRC_VARIABLE) { + /*In case of uncompressed formats the image stored in the ROM/RAM. + *So simply give its pointer*/ + dsc->img_data = ((lv_img_dsc_t *)dsc->src)->data; + return LV_RES_OK; + } + else { + /*If it's a file, read all to memory*/ + uint32_t len = dsc->header.w * dsc->header.h; + len *= cf == LV_IMG_CF_RGB565A8 ? 3 : 1; + uint8_t * fs_buf = lv_mem_alloc(len); + if(fs_buf == NULL) return LV_RES_INV; + + lv_img_decoder_built_in_data_t * user_data = dsc->user_data; + lv_fs_seek(&user_data->f, 4, LV_FS_SEEK_SET); /*+4 to skip the header*/ + lv_fs_res_t res = lv_fs_read(&user_data->f, fs_buf, len, NULL); + if(res != LV_FS_RES_OK) { + lv_mem_free(fs_buf); + return LV_RES_INV; + } + dsc->img_data = fs_buf; + return LV_RES_OK; + } + } /*Process true color formats*/ - if(cf == LV_IMG_CF_TRUE_COLOR || cf == LV_IMG_CF_TRUE_COLOR_ALPHA || - cf == LV_IMG_CF_TRUE_COLOR_CHROMA_KEYED || cf == LV_IMG_CF_RGB565A8 || - cf == LV_IMG_CF_ALPHA_8BIT) { + else if(cf == LV_IMG_CF_TRUE_COLOR || cf == LV_IMG_CF_TRUE_COLOR_ALPHA || + cf == LV_IMG_CF_TRUE_COLOR_CHROMA_KEYED) { if(dsc->src_type == LV_IMG_SRC_VARIABLE) { /*In case of uncompressed formats the image stored in the ROM/RAM. *So simply give its pointer*/ From a03899d556b16006b3aceb422ecde1ae3b43e352 Mon Sep 17 00:00:00 2001 From: Gabor Kiss-Vamosi Date: Fri, 28 Jul 2023 10:17:01 +0200 Subject: [PATCH 41/95] docs(disp): metined that rotation rotates the touch coordinates too related to #4409 --- docs/porting/display.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docs/porting/display.md b/docs/porting/display.md index f69eb1086..015b902d4 100644 --- a/docs/porting/display.md +++ b/docs/porting/display.md @@ -204,6 +204,8 @@ The default rotation of your display when it is initialized can be set using the Display rotation can also be changed at runtime using the `lv_disp_set_rotation(disp, rot)` API. +If you enable rotation the coordinates of the pointer input devices (e.g. touchpad) will be rotated too. + Note that when using software rotation, you cannot use neither `direct_mode` nor `full_refresh` in the driver. When using either of these, you will have to rotate the pixels yourself e.g. in the `flush_cb`. Support for software rotation is a new feature, so there may be some glitches/bugs depending on your configuration. If you encounter a problem please open an issue on [GitHub](https://github.com/lvgl/lvgl/issues). From 08add38dff18844d073134028e6ae130eb411f51 Mon Sep 17 00:00:00 2001 From: Gabor Kiss-Vamosi Date: Tue, 1 Aug 2023 09:50:41 +0200 Subject: [PATCH 42/95] fix: use const lv_img_dsc_t * dsc function parameter in lv_img_buf.h/ fixes #4421 --- src/draw/lv_img_buf.c | 81 +++---------------------------------------- src/draw/lv_img_buf.h | 10 +++--- 2 files changed, 10 insertions(+), 81 deletions(-) diff --git a/src/draw/lv_img_buf.c b/src/draw/lv_img_buf.c index 4c939dd83..5ac1eadf5 100644 --- a/src/draw/lv_img_buf.c +++ b/src/draw/lv_img_buf.c @@ -38,17 +38,7 @@ * GLOBAL FUNCTIONS **********************/ -/** - * Get the color of an image's pixel - * @param dsc an image descriptor - * @param x x coordinate of the point to get - * @param y x coordinate of the point to get - * @param color the color of the image. In case of `LV_IMG_CF_ALPHA_1/2/4/8` this color is used. - * Not used in other cases. - * @param safe true: check out of bounds - * @return color of the point - */ -lv_color_t lv_img_buf_get_px_color(lv_img_dsc_t * dsc, lv_coord_t x, lv_coord_t y, lv_color_t color) +lv_color_t lv_img_buf_get_px_color(const lv_img_dsc_t * dsc, lv_coord_t x, lv_coord_t y, lv_color_t color) { lv_color_t p_color = lv_color_black(); uint8_t * buf_u8 = (uint8_t *)dsc->data; @@ -107,15 +97,7 @@ lv_color_t lv_img_buf_get_px_color(lv_img_dsc_t * dsc, lv_coord_t x, lv_coord_t return p_color; } -/** - * Get the alpha value of an image's pixel - * @param dsc pointer to an image descriptor - * @param x x coordinate of the point to set - * @param y x coordinate of the point to set - * @param safe true: check out of bounds - * @return alpha value of the point - */ -lv_opa_t lv_img_buf_get_px_alpha(lv_img_dsc_t * dsc, lv_coord_t x, lv_coord_t y) +lv_opa_t lv_img_buf_get_px_alpha(const lv_img_dsc_t * dsc, lv_coord_t x, lv_coord_t y) { uint8_t * buf_u8 = (uint8_t *)dsc->data; @@ -170,15 +152,7 @@ lv_opa_t lv_img_buf_get_px_alpha(lv_img_dsc_t * dsc, lv_coord_t x, lv_coord_t y) return LV_OPA_COVER; } -/** - * Set the alpha value of a pixel of an image. The color won't be affected - * @param dsc pointer to an image descriptor - * @param x x coordinate of the point to set - * @param y x coordinate of the point to set - * @param opa the desired opacity - * @param safe true: check out of bounds - */ -void lv_img_buf_set_px_alpha(lv_img_dsc_t * dsc, lv_coord_t x, lv_coord_t y, lv_opa_t opa) +void lv_img_buf_set_px_alpha(const lv_img_dsc_t * dsc, lv_coord_t x, lv_coord_t y, lv_opa_t opa) { uint8_t * buf_u8 = (uint8_t *)dsc->data; @@ -229,15 +203,7 @@ void lv_img_buf_set_px_alpha(lv_img_dsc_t * dsc, lv_coord_t x, lv_coord_t y, lv_ } } -/** - * Set the color of a pixel of an image. The alpha channel won't be affected. - * @param dsc pointer to an image descriptor - * @param x x coordinate of the point to set - * @param y x coordinate of the point to set - * @param c color of the point - * @param safe true: check out of bounds - */ -void lv_img_buf_set_px_color(lv_img_dsc_t * dsc, lv_coord_t x, lv_coord_t y, lv_color_t c) +void lv_img_buf_set_px_color(const lv_img_dsc_t * dsc, lv_coord_t x, lv_coord_t y, lv_color_t c) { uint8_t * buf_u8 = (uint8_t *)dsc->data; @@ -296,17 +262,7 @@ void lv_img_buf_set_px_color(lv_img_dsc_t * dsc, lv_coord_t x, lv_coord_t y, lv_ } } -/** - * Set the palette color of an indexed image. Valid only for `LV_IMG_CF_INDEXED1/2/4/8` - * @param dsc pointer to an image descriptor - * @param id the palette color to set: - * - for `LV_IMG_CF_INDEXED1`: 0..1 - * - for `LV_IMG_CF_INDEXED2`: 0..3 - * - for `LV_IMG_CF_INDEXED4`: 0..15 - * - for `LV_IMG_CF_INDEXED8`: 0..255 - * @param c the color to set - */ -void lv_img_buf_set_palette(lv_img_dsc_t * dsc, uint8_t id, lv_color_t c) +void lv_img_buf_set_palette(const lv_img_dsc_t * dsc, uint8_t id, lv_color_t c) { if((dsc->header.cf == LV_IMG_CF_ALPHA_1BIT && id > 1) || (dsc->header.cf == LV_IMG_CF_ALPHA_2BIT && id > 3) || (dsc->header.cf == LV_IMG_CF_ALPHA_4BIT && id > 15) || (dsc->header.cf == LV_IMG_CF_ALPHA_8BIT)) { @@ -320,13 +276,6 @@ void lv_img_buf_set_palette(lv_img_dsc_t * dsc, uint8_t id, lv_color_t c) lv_memcpy_small(&buf[id * sizeof(c32)], &c32, sizeof(c32)); } -/** - * Allocate an image buffer in RAM - * @param w width of image - * @param h height of image - * @param cf a color format (`LV_IMG_CF_...`) - * @return an allocated image, or NULL on failure - */ lv_img_dsc_t * lv_img_buf_alloc(lv_coord_t w, lv_coord_t h, lv_img_cf_t cf) { /*Allocate image descriptor*/ @@ -359,10 +308,6 @@ lv_img_dsc_t * lv_img_buf_alloc(lv_coord_t w, lv_coord_t h, lv_img_cf_t cf) return dsc; } -/** - * Free an allocated image buffer - * @param dsc image buffer to free - */ void lv_img_buf_free(lv_img_dsc_t * dsc) { if(dsc != NULL) { @@ -373,13 +318,6 @@ void lv_img_buf_free(lv_img_dsc_t * dsc) } } -/** - * Get the memory consumption of a raw bitmap, given color format and dimensions. - * @param w width - * @param h height - * @param cf color format - * @return size in bytes - */ uint32_t lv_img_buf_get_img_size(lv_coord_t w, lv_coord_t h, lv_img_cf_t cf) { switch(cf) { @@ -411,15 +349,6 @@ uint32_t lv_img_buf_get_img_size(lv_coord_t w, lv_coord_t h, lv_img_cf_t cf) } } -/** - * Get the area of a rectangle if its rotated and scaled - * @param res store the coordinates here - * @param w width of the rectangle to transform - * @param h height of the rectangle to transform - * @param angle angle of rotation - * @param zoom zoom, (256 no zoom) - * @param pivot x,y pivot coordinates of rotation - */ void _lv_img_buf_get_transformed_area(lv_area_t * res, lv_coord_t w, lv_coord_t h, int16_t angle, uint16_t zoom, const lv_point_t * pivot) { diff --git a/src/draw/lv_img_buf.h b/src/draw/lv_img_buf.h index 1be7bb652..71c3bd0b2 100644 --- a/src/draw/lv_img_buf.h +++ b/src/draw/lv_img_buf.h @@ -167,7 +167,7 @@ lv_img_dsc_t * lv_img_buf_alloc(lv_coord_t w, lv_coord_t h, lv_img_cf_t cf); * @param safe true: check out of bounds * @return color of the point */ -lv_color_t lv_img_buf_get_px_color(lv_img_dsc_t * dsc, lv_coord_t x, lv_coord_t y, lv_color_t color); +lv_color_t lv_img_buf_get_px_color(const lv_img_dsc_t * dsc, lv_coord_t x, lv_coord_t y, lv_color_t color); /** * Get the alpha value of an image's pixel @@ -177,7 +177,7 @@ lv_color_t lv_img_buf_get_px_color(lv_img_dsc_t * dsc, lv_coord_t x, lv_coord_t * @param safe true: check out of bounds * @return alpha value of the point */ -lv_opa_t lv_img_buf_get_px_alpha(lv_img_dsc_t * dsc, lv_coord_t x, lv_coord_t y); +lv_opa_t lv_img_buf_get_px_alpha(const lv_img_dsc_t * dsc, lv_coord_t x, lv_coord_t y); /** * Set the color of a pixel of an image. The alpha channel won't be affected. @@ -187,7 +187,7 @@ lv_opa_t lv_img_buf_get_px_alpha(lv_img_dsc_t * dsc, lv_coord_t x, lv_coord_t y) * @param c color of the point * @param safe true: check out of bounds */ -void lv_img_buf_set_px_color(lv_img_dsc_t * dsc, lv_coord_t x, lv_coord_t y, lv_color_t c); +void lv_img_buf_set_px_color(const lv_img_dsc_t * dsc, lv_coord_t x, lv_coord_t y, lv_color_t c); /** * Set the alpha value of a pixel of an image. The color won't be affected @@ -197,7 +197,7 @@ void lv_img_buf_set_px_color(lv_img_dsc_t * dsc, lv_coord_t x, lv_coord_t y, lv_ * @param opa the desired opacity * @param safe true: check out of bounds */ -void lv_img_buf_set_px_alpha(lv_img_dsc_t * dsc, lv_coord_t x, lv_coord_t y, lv_opa_t opa); +void lv_img_buf_set_px_alpha(const lv_img_dsc_t * dsc, lv_coord_t x, lv_coord_t y, lv_opa_t opa); /** * Set the palette color of an indexed image. Valid only for `LV_IMG_CF_INDEXED1/2/4/8` @@ -209,7 +209,7 @@ void lv_img_buf_set_px_alpha(lv_img_dsc_t * dsc, lv_coord_t x, lv_coord_t y, lv_ * - for `LV_IMG_CF_INDEXED8`: 0..255 * @param c the color to set */ -void lv_img_buf_set_palette(lv_img_dsc_t * dsc, uint8_t id, lv_color_t c); +void lv_img_buf_set_palette(const lv_img_dsc_t * dsc, uint8_t id, lv_color_t c); /** * Free an allocated image buffer From a35ead57268654a433850de35a33c6a03f96d039 Mon Sep 17 00:00:00 2001 From: Gabriel Wang Date: Mon, 7 Aug 2023 04:25:47 +0800 Subject: [PATCH 43/95] chore(cmsis-pack): prepare for release v8.3.9 (#4424) --- ...L.lvgl.8.3.8.pack => LVGL.lvgl.8.3.9.pack} | Bin 4986798 -> 4989051 bytes env_support/cmsis-pack/LVGL.lvgl.pdsc | 100 +++++++++++++++++- env_support/cmsis-pack/LVGL.pidx | 4 +- env_support/cmsis-pack/lv_conf_cmsis.h | 2 +- library.json | 2 +- library.properties | 2 +- lv_conf_template.h | 2 +- lvgl.h | 2 +- 8 files changed, 105 insertions(+), 9 deletions(-) rename env_support/cmsis-pack/{LVGL.lvgl.8.3.8.pack => LVGL.lvgl.8.3.9.pack} (93%) diff --git a/env_support/cmsis-pack/LVGL.lvgl.8.3.8.pack b/env_support/cmsis-pack/LVGL.lvgl.8.3.9.pack similarity index 93% rename from env_support/cmsis-pack/LVGL.lvgl.8.3.8.pack rename to env_support/cmsis-pack/LVGL.lvgl.8.3.9.pack index 69ed80d425f5f9304fca8d19e5c0f06f14a23a7b..eabc3472f29365277e9c5885d4c5d98ef7ffa2f2 100644 GIT binary patch delta 283653 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∈ka}wRJPc5yeFoNeFhQr( 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