From ecf938f220733bcfc302151f754e362bd4c69568 Mon Sep 17 00:00:00 2001 From: Bruno Fargnoli Date: Sun, 8 Feb 2026 20:14:48 +0100 Subject: [PATCH] Fixed progress_bar in Fill_Holes + udpated cumesh + added new nodes Added "Remesh with Quad" node Added "Batch Simplify Mesh and Export" node --- README.md | 1 + nodes.py | 251 ++++++++++++++++++ pyproject.toml | 2 +- trellis2/representations/mesh/base.py | 5 +- .../cumesh-0.0.1-cp312-cp312-linux_x86_64.whl | Bin 15062521 -> 15063815 bytes .../cumesh-0.0.1-cp312-cp312-linux_x86_64.whl | Bin 3929545 -> 3930839 bytes .../cumesh-0.0.1-cp311-cp311-win_amd64.whl | Bin 3339119 -> 3340413 bytes .../cumesh-0.0.1-cp312-cp312-win_amd64.whl | Bin 3335904 -> 3337198 bytes .../cumesh-0.0.1-cp311-cp311-win_amd64.whl | Bin 3339116 -> 3340410 bytes .../cumesh-0.0.1-cp312-cp312-win_amd64.whl | Bin 3335948 -> 3337242 bytes 10 files changed, 257 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index e722f5b..d1f3be6 100644 --- a/README.md +++ b/README.md @@ -14,6 +14,7 @@ | Date | Description | | --- | --- | +| **2026-02-08** | Fixed "Fill Holes" node progress bar
Updated Cumesh package
Added "Remesh with Quad" node
Added "Batch Simplify Mesh and Export" node| | **2026-02-07** | Updated Cumesh package
Improved "Remesh" node when removing inner layer| | **2026-02-02** | Added node "Smooth Normals"
Useful for "Low Poly" mesh to remove the "blocky" aspect| || Added "remove_background" parameter for "PreProcess Image" node
Using rembg package| diff --git a/nodes.py b/nodes.py index 5f63eb6..085ddc9 100644 --- a/nodes.py +++ b/nodes.py @@ -46,6 +46,28 @@ class AnyType(str): any = AnyType("*") +def parse_string_to_int_list(number_string): + """ + Parses a string containing comma-separated numbers into a list of integers. + + Args: + number_string: A string containing comma-separated numbers (e.g., "20000,10000,5000"). + + Returns: + A list of integers parsed from the input string. + Returns an empty list if the input string is empty or None. + """ + if not number_string: + return [] + + try: + # Split the string by comma and convert each part to an integer + int_list = [int(num.strip()) for num in number_string.split(',')] + return int_list + except ValueError as e: + print(f"Error converting string to integer: {e}. Please ensure all values are valid numbers.") + return [] + def reset_cuda(): # Force garbage collection of Python objects gc.collect() @@ -1434,6 +1456,8 @@ class Trellis2PostProcessAndUnWrapAndRasterizer: mrmeshpy.fillHole(meshlib_mesh, e, params) holes_filled += 1 progress_bar_holes.update(1) + + progress_bar_holes.close() new_vertices = mrmeshnumpy.getNumpyVerts(meshlib_mesh) new_faces = mrmeshnumpy.getNumpyFaces(meshlib_mesh.topology) @@ -2311,6 +2335,8 @@ class Trellis2FillHolesWithMeshlib: holes_filled += 1 progress_bar.update(1) pbar.update(1) + + progress_bar.close() new_vertices = mrmeshnumpy.getNumpyVerts(mesh) new_faces = mrmeshnumpy.getNumpyFaces(mesh.topology) @@ -2343,7 +2369,228 @@ class Trellis2SmoothNormals: return (new_mesh,) +class Trellis2RemeshWithQuad: + @classmethod + def INPUT_TYPES(s): + return { + "required": { + "mesh": ("MESHWITHVOXEL",), + "remesh_band": ("FLOAT",{"default":1.0}), + "remesh_project": ("FLOAT",{"default":0.0}), + "fill_holes": ("BOOLEAN", {"default":False}), + "fill_holes_max_perimeter": ("FLOAT",{"default":0.03,"min":0.001,"max":99.999,"step":0.001}), + "dual_contouring_resolution": (["Auto","128","256","512","1024","2048"],{"default":"Auto"}), + "remove_floaters": ("BOOLEAN",{"default":True}), + "remove_inner_faces": ("BOOLEAN",{"default":True}), + } + } + + RETURN_TYPES = ("MESHWITHVOXEL",) + RETURN_NAMES = ("mesh",) + FUNCTION = "process" + CATEGORY = "Trellis2Wrapper" + OUTPUT_NODE = True + + def process(self, mesh, remesh_band, remesh_project, fill_holes, fill_holes_max_perimeter, dual_contouring_resolution, remove_floaters, remove_inner_faces): + reset_cuda() + mesh_copy = copy.deepcopy(mesh) + + if remove_floaters: + mesh_copy = remove_floater(mesh_copy) + + aabb = [[-0.5, -0.5, -0.5], [0.5, 0.5, 0.5]] + + vertices = mesh_copy.vertices + faces = mesh_copy.faces + attr_volume = mesh_copy.attrs + coords = mesh_copy.coords + attr_layout = mesh_copy.layout + voxel_size = mesh_copy.voxel_size + + # --- Input Normalization (AABB, Voxel Size, Grid Size) --- + if isinstance(aabb, (list, tuple)): + aabb = np.array(aabb) + if isinstance(aabb, np.ndarray): + aabb = torch.tensor(aabb, dtype=torch.float32, device='cuda') + + # Calculate grid dimensions based on AABB and voxel size + if voxel_size is not None: + if isinstance(voxel_size, float): + voxel_size = [voxel_size, voxel_size, voxel_size] + if isinstance(voxel_size, (list, tuple)): + voxel_size = np.array(voxel_size) + if isinstance(voxel_size, np.ndarray): + voxel_size = torch.tensor(voxel_size, dtype=torch.float32, device='cuda') + grid_size = ((aabb[1] - aabb[0]) / voxel_size).round().int() + else: + if isinstance(grid_size, int): + grid_size = [grid_size, grid_size, grid_size] + if isinstance(grid_size, (list, tuple)): + grid_size = np.array(grid_size) + if isinstance(grid_size, np.ndarray): + grid_size = torch.tensor(grid_size, dtype=torch.int32, device='cuda') + voxel_size = (aabb[1] - aabb[0]) / grid_size + + # Move data to GPU + vertices = vertices.cuda() + faces = faces.cuda() + + # Initialize CUDA mesh handler + cumesh = CuMesh.CuMesh() + cumesh.init(vertices, faces) + print(f"Current vertices: {cumesh.num_vertices}, faces: {cumesh.num_faces}") + + # --- Initial Mesh Cleaning --- + # Fills holes as much as we can before processing + if fill_holes: + cumesh.fill_holes(max_hole_perimeter=fill_holes_max_perimeter) + print(f"After filling holes: {cumesh.num_vertices} vertices, {cumesh.num_faces} faces") + + vertices, faces = cumesh.read() + + del cumesh + gc.collect() + + # Build BVH for the current mesh to guide remeshing + #print(f"Building BVH for current mesh...") + #bvh = CuMesh.cuBVH(vertices.detach().clone(), faces.detach().clone()) + + print("Cleaning mesh...") + center = aabb.mean(dim=0) + scale = (aabb[1] - aabb[0]).max().item() + + if dual_contouring_resolution == "Auto": + resolution = grid_size.max().item() + print(f"Dual Contouring resolution: {resolution}") + else: + resolution = int(dual_contouring_resolution) + + print('Performing Dual Contouring ...') + # Perform Dual Contouring remeshing (rebuilds topology) + vertices, faces = CuMesh.remeshing.remesh_narrow_band_dc_quad( + vertices, faces, + center = center, + scale = scale * 1.1, # old calculation (resolution + 3 * remesh_band) / resolution * scale, + resolution = resolution, + band = remesh_band, + project_back = remesh_project, # Snaps vertices back to original surface + verbose = True, + remove_inner_faces = remove_inner_faces, + #bvh = bvh, + ) + + if remove_floaters: + vertices, faces = remove_floater2(vertices.cpu().numpy(),faces.cpu().numpy()) + vertices = torch.from_numpy(vertices).contiguous().float() + faces = torch.from_numpy(faces).contiguous().int() + + print(f"After remeshing: {len(vertices)} vertices, {len(faces)} faces") + + mesh_copy.vertices = vertices.to(mesh_copy.device) + mesh_copy.faces = faces.to(mesh_copy.device) + + return (mesh_copy,) + +class Trellis2BatchSimplifyMeshAndExport: + @classmethod + def INPUT_TYPES(s): + return { + "required": { + "mesh": ("MESHWITHVOXEL",), + "target_face_num": ("STRING",{"default":"2000000,1000000,500000,100000,50000,10000,5000,2500,1000"}), + "method": (["Cumesh","Meshlib"],{"default":"Cumesh"}), + "fill_holes":("BOOLEAN",{"default":True}), + "reorient_vertices":(["None","90 degrees","-90 degrees"],{"default":"90 degrees"}), + "filename_prefix":("STRING",), + "file_format": (["glb", "obj", "ply", "stl", "3mf", "dae"],), + }, + } + + RETURN_TYPES = ("STRING", ) + RETURN_NAMES = ("lst_glb_path", ) + FUNCTION = "process" + CATEGORY = "Trellis2Wrapper" + OUTPUT_NODE = True + + def process(self, mesh, target_face_num, method, fill_holes, reorient_vertices, filename_prefix, file_format): + lst_output_mesh = [] + list_of_faces = parse_string_to_int_list(target_face_num) + if len(list_of_faces)>0: + cumesh = CuMesh.CuMesh() + mesh_copy = copy.deepcopy(mesh) + + for target_nbfaces in list_of_faces: + print(f"Processing at {target_nbfaces} ...") + + vertices = mesh_copy.vertices.detach().clone().cpu().numpy() + faces = mesh_copy.faces.detach().clone().cpu().numpy() + + if method=="Cumesh": + cumesh.init(torch.from_numpy(vertices).float().cuda(), torch.from_numpy(faces).int().cuda()) + cumesh.simplify(target_nbfaces, verbose=True) + vertices, faces = cumesh.read() + vertices = vertices.cpu().numpy() + faces = faces.cpu().numpy() + elif method=="Meshlib": + vertices, faces = simplify_with_meshlib(vertices, faces, target_nbfaces) + else: + raise Exception("Unknown simplification method") + + if fill_holes: + import meshlib.mrmeshpy as mrmeshpy + + mmesh = mrmeshnumpy.meshFromFacesVerts(faces, vertices) + + hole_edges = mmesh.topology.findHoleRepresentiveEdges() + + nb_holes = len(hole_edges) + print(f"{nb_holes} holes found") + + if nb_holes>0: + progress_bar = tqdm(total=nb_holes,desc="Filling holes") + + for e in hole_edges: + params = mrmeshpy.FillHoleParams() + params.metric = mrmeshpy.getUniversalMetric(mmesh) + mrmeshpy.fillHole(mmesh, e, params) + progress_bar.update(1) + + progress_bar.close() + + vertices = mrmeshnumpy.getNumpyVerts(mmesh) + faces = mrmeshnumpy.getNumpyFaces(mmesh.topology) + + del mmesh + gc.collect() + + if reorient_vertices == '90 degrees': + vertices[:, 1], vertices[:, 2] = vertices[:, 2], -vertices[:, 1] + elif reorient_vertices == '-90 degrees': + vertices[:, 1], vertices[:, 2] = -vertices[:, 2], vertices[:, 1] + + trimesh = Trimesh.Trimesh( + vertices=vertices, + faces=faces, + process=False + ) + + filename_prefix_with_nbfaces = f"{filename_prefix}_{target_nbfaces}" + + full_output_folder, filename, counter, subfolder, filename_prefix_with_nbfaces = folder_paths.get_save_image_path(filename_prefix_with_nbfaces, folder_paths.get_output_directory()) + output_glb_path = Path(full_output_folder, f'{filename}_{counter:05}_.{file_format}') + output_glb_path.parent.mkdir(exist_ok=True) + + trimesh.export(output_glb_path, file_type=file_format) + + lst_output_mesh.append(str(output_glb_path)) + + del trimesh + + del cumesh + del mesh_copy + + return (lst_output_mesh,) NODE_CLASS_MAPPINGS = { "Trellis2LoadModel": Trellis2LoadModel, @@ -2371,6 +2618,8 @@ NODE_CLASS_MAPPINGS = { "Trellis2MeshWithVoxelToMeshlibMesh": Trellis2MeshWithVoxelToMeshlibMesh, "Trellis2FillHolesWithMeshlib": Trellis2FillHolesWithMeshlib, "Trellis2SmoothNormals": Trellis2SmoothNormals, + "Trellis2RemeshWithQuad": Trellis2RemeshWithQuad, + "Trellis2BatchSimplifyMeshAndExport": Trellis2BatchSimplifyMeshAndExport, } @@ -2400,4 +2649,6 @@ NODE_DISPLAY_NAME_MAPPINGS = { "Trellis2MeshWithVoxelToMeshlibMesh": "Trellis2 - Mesh with Voxel to Meshlib Mesh", "Trellis2FillHolesWithMeshlib": "Trellis2 - Fill Holes with Meshlib", "Trellis2SmoothNormals": "Trellis2 - Smooth Normals", + "Trellis2RemeshWithQuad": "Trellis2 - Remesh With Quad", + "Trellis2BatchSimplifyMeshAndExport": "Trellis2 - Batch Simplify Mesh And Export", } diff --git a/pyproject.toml b/pyproject.toml index ce854db..5cf688c 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,7 +1,7 @@ [project] name = "trellis2" description = "ComfyUI Wrapper for Microsoft Trellis.2 - Native and Compact Structured Latents for 3D Generation" -version = "1.0.4" +version = "1.0.5" license = {file = "LICENSE"} # classifiers = [ # # For OS-independent nodes (works on all operating systems) diff --git a/trellis2/representations/mesh/base.py b/trellis2/representations/mesh/base.py index 52d332f..2c28898 100644 --- a/trellis2/representations/mesh/base.py +++ b/trellis2/representations/mesh/base.py @@ -130,7 +130,10 @@ class Mesh: print(f"Reduced faces, resulting in {len(new_vertices)} vertices and {len(new_faces)} faces") self.vertices = torch.from_numpy(new_vertices).float().to(self.device) - self.faces = torch.from_numpy(new_faces).int().to(self.device) + self.faces = torch.from_numpy(new_faces).int().to(self.device) + + del mesh + gc.collect() class TextureFilterMode: diff --git a/wheels/Linux/Torch270/cumesh-0.0.1-cp312-cp312-linux_x86_64.whl b/wheels/Linux/Torch270/cumesh-0.0.1-cp312-cp312-linux_x86_64.whl index 967fcff22082d01e83712181d92e8494fadb115c..cd3e22402cc599938d8f99e3265ef652392eb0e1 100644 GIT binary patch delta 8387 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 delta 7077 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 T|0X5kXnBVe{bYIv2?^;xlASb= diff --git a/wheels/Linux/Torch291/cumesh-0.0.1-cp312-cp312-linux_x86_64.whl b/wheels/Linux/Torch291/cumesh-0.0.1-cp312-cp312-linux_x86_64.whl index 7950a47dba6c9189a34014d198e9c1286cc9901f..4656a52cb4dd62b646c15d49861b91c16c95a4d7 100644 GIT binary patch delta 7721 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 delta 6432 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 C(j3SD diff --git a/wheels/Windows/Torch270/cumesh-0.0.1-cp312-cp312-win_amd64.whl b/wheels/Windows/Torch270/cumesh-0.0.1-cp312-cp312-win_amd64.whl index e94f85362f192bbd5d74bf0d0b08db64c3d7c679..b6e20e96d7194c2b69c9f06cae80dccda9167090 100644 GIT binary patch delta 7672 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 S5+!tS4@8EJbpS#_Li!&$_@P1o delta 6347 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

|!#7K1su2v=?^^fzbQ~}&` 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 diff --git a/wheels/Windows/Torch280/cumesh-0.0.1-cp311-cp311-win_amd64.whl b/wheels/Windows/Torch280/cumesh-0.0.1-cp311-cp311-win_amd64.whl index 0fe860d2c07565cf283d6c30e0cccff46927fcf1..df651ad0adb6ca63f46d93aa369120961220261f 100644 GIT binary patch delta 7697 zcmZA6Wl$8}_doDu=?3ZU?gi-vLApU2q(Ld^TGAz?W2HerLOMiJQaW8arD2H$q(OfB z`Oo*!|IWPT&ikD6;LO~I_jqp%d2cHt z^11)nVxjY}eHY7WqD3)4@1R)(_BD(FcX7A}vq*?dL6VKwL)M5%lIJ0gX_=dYdWWHF z?_u7Cn#2E2Hj=wedVosfN+6MCij8P;`lsWc_c+fPgCn;Wb0(DII_Xr9qQblFf`C0) zQk}^0alx0hfq+QduN^O9<@i6-fD1C*;{(0SJg)QeWO`+P{E`TmHft{Ze- zZciPZUHD^rOuD_Xk@dBd{a%^L_4&6tq5wA8%{VObPl&th3aH+ve*?Q%fW8ENMY)y% zj-*N@PIocuQo_-Q)ruT86pwrwseF%iRY{88k}Dg_ z6NrdcIP$zs+$#_(RANh@sDiS7h3@S)F)GDgj8T?qv&C*LbBcfbI$70w5bGHW3TLzm zor?({arHQMm+1tdOvOgHAox=xW#SZoyj{^>3Xzc~4IfCHUkXu&xUa1@{2VuYr_i zS?^X(5&H^6T6PJclTn;B;(mlXSg}zfaKbB~0wSf$3*3EItUYY5n#;UXQvzhFDoRR$ zEl}%pGG2{*5Ey?NQUf;Gwci}iavZLX0R>n&+gM*0pMQ?F^8VA$k@5p?2u6}|GyK8k zZk*$%JSLchfoLDnniLf5lX6916JqZwsTx3 zm27(elH3zN<-(#XeXe)JhT0!+95emXsyI$aFmh%Vcl)4k%MvxGn7dY$|NFbOgRwDu zScCg;-R=IV7};)dC+KNw)qR~QSvLa0(dDqYo)ucso;Bvp?X zAST;>{RQ>53Zy}hp^|L^3F#&(#U4xklcrhOtSp>-;f}YKz!9xtiG&sxjXMD6BE@gs zks(Hou%JWjUm@9D*Xel5wT#?!-D?59Y_4|_?2LWWGW)&eoyV&Q>_hg{zvyMp{Oy(Y z!9wF|-UPX%(sJiEALFSPpokrjq>$@1_BF!crV#pjmXh~TX-!|m!8MZDY4K~Uf$`Ks zteDs_jl7d2w@E;{LMN+m?>vATXj$*Y;0Rvq7W4Q&*$zDYH*+OIeq_^kTt(eU9*_0G zr)B@5dup==)^A^ArI-RVFqw5iMz@Efz?pk73CDo2gxWo-wFbKY9Vf3mOXgRC>41r3 zSvU5H$G~NlAMy=+7z#veFg&FpI`kyHB{Qy8Wg%#*fQ3qi57oDA2(`&ITV)oKJ z4dqvPvUd19F3d@~A`w5wQZ`Ze`Lmw|MJ_3iFf;#Sz@8I!HHph79g@NsUjn!bn9{<+ zvHni093c)ov=!HTsib@0?1?g_j%63=#%t$*XoA@P9mYod0sR1E)Zc0s0mwD&+XE^} zCyQ>Ch=Td?zP?T_@E_j%WN&C?6Ik-i>sM9(_W6gfmi3?BuhpL zHNhEw=Y(|W0rZ|BFGOU0fA@F@IG|&f@}^Ngd=}utL7jr3>sKh=u^& zcrL7eL{8B~Zg8T$=U#bhhRr3i&$R&$7X~UM%gjLj`d$bYOk9pbc9}6x!KxI9KOY(0 z^cP*kk0qo(D75=pRHT7+zxgMwgjPibiAi#X)Bx%FL%y&$sXbygc59uIK>CCfi8QxP z)#KmAub!f3%Qd~5Ubyd)y{-b^Vq^!C9H%U;xwqm9?l4V?35@E8^t{X-i8)h|jr|>% z_rs8WH9%79Nt2sO)1oGo8eBPpMH=vkS;hIhxX*fQ^f1Wtq-2R~Fyt&0e4XF*`$AUWtjYU2 zzgz6j{kOUU(Ba=HLKIq7%9VjrX%l{l+np7%2oaAvv$%e(P>hprsPX< zohohV0yk+T&N@rLgyURPzzk~N_nfE}JVRmU&AzVc5_8I9-tMPQ?t-R~UoYz0hQqwu z3!ZkGZ6ZJW3^yxTgzsraIS`YHZ>XqW~W@&swYx!Mf*e18vk#BgHy>9CQ4wA>H5_y-qP1M7e+hQ5U zKY9Cs7PRVIIoUkrzw?koKVKPu5f16X6y?B}3xF=e)I~EXpeTl!00tt#>WaFXGr|~l z`R7J-Rct*R5o^<9;iHKPChnE2wtDQ+-8DNXnGMs8hrBS=I&N6!kj~rjw7HWN&Sybj zIB>ssZjcW=KHniHcO&oe#n}A7cP~b%qW6K}7e$i8v3>kP&+8FGb7xIa&3M__oFqta zPTmQVOr<~leLv@9^o1LI`-*oYW>+<3Zfu{V-ug{wXab@?Wl|ip1Nt&N?dl|6M7|NY zsQ(tlOEc0Cf3{4g6p!AMZ`PvvK!m?G$_GCqno9`0#h?;GIc0#WC$GeKUC*r)eAbD7 zQW-{TgH3WOY`0+aqIyg`7Q}mC@;I3@ctg>{Jb zrc_g2aUKr=2od+qSlpGTNJ@6=A1KcDWBKiY!Hh5A)S0Q^CB+fJ8KK6H!5`2!T)%X< zGD2y=JP=wet+DBs-v(C&d8(jCN<<9}T8CV(=?5d-q@T4mk4Zlb25NTQ5^rQSa|^$I zn%6gsM&lTL&^jqFsMS|=gX-xzbLILP`y{Ol?eUuJp5~dP*?4QZ^W*rS__I0Sn9(eM zecfyhD5+qX8KVgYDb~C37H#=nypE6833;;#b{`?8;K}ne>6Y8aK$E8a!0JHXOSJLR zTIh~IH#-V{fn8Y(O{#j{&Cuu2GY{4ccUvpXC|CWxV13aMx6)t=?|=@{q&HJRa_N$r#3*>lSFt~K(Zh4W0HD?@UrCE`f4PQSxm zU`EDSDi>>3b`NO1BJH7Zs>fAJ$Y0W8VsvIAZGi08|Cgr5faH8*xoIZLIyc@P5{EU4QoA_x{l) z+c{_@J_A zD&jC!z%N~pIk)&C^i_hI!bt|1{5c*0X~owFtL?l)BEpRU$sSD$x~sA}qoOR|_a^07 zlbWGdHW9>OKEvj}JwX(ZoI@AWYPF@qCzhgN{*$m>{ERss=V5R5Z+rdX-Qdw)*W!bl)D9iO1)e3FfXq_1CgA*A)j|(ts>0jwban-;sznE(fISi})jP2q`tsV2wEyl3{LWVRM0s{mT2Zf8Wr@-Qclj7`VY2iAt>yx=$l zk$EKw@FT`6fE$U_i+Qy_!oVl~F)^_+TW07qz9l>rVcDhIHQU zCT;4HPM@0UCfxj2lRewPg7~*WAUsSniI^m{8-}@wk2!hW5#Vlg8cyGXF{P?N zBP%|ZQdf&0o20 zj`(TdRBr^&t<D7u5{KhIH`#&Wv3Xcf)5fD&28+ zhuyhKzIxfXFX-Smg?YwIiI2D*D6@f)qf0WQ+%`auE#c8>t2+Ow`M`VavES^{WjCvM z8fxHaj>LvUf@88g{7=8zB0k8RM38hGf1b2B^t8}P(IYgiA)CX>UzXx}@k-gjNbyK6 zTmiygk^k%86K9bt(?Pmjv4EeihsKspd9Qd%aDZ1&X15#oS0Smfi+WBY*QU)&jI%n7 z(>xb)bdeZ>#f7Z{=z@unv6-EQU)_QOnIu$Gj~WZR%FO9{z@k$&+RRaPT(5tqpPO3fvOmVZCE-pO&-xzg658(sJ#Gno{ukynHO zSe+pT)IYty=Ax-qeOtd1S#{Pz9XKsN!RhBx2JW$hA*9`5-X_%VN20Bla_y)X6v?s z_t>bCAC=t4Ov9$;9Vun3tN`A&`H_S~qyUYuMm~vvPKizmMs7 zET^q=apo|nm}F)|IP)xVJ)kpGxKyDEibsT|nM^zUJ-NI!gTEkb%Gp=^GMdw#P}aY7 zjZIhs2BuRLJ#x$coi7jONUQvrk(&x1^q>yS!t!s480bQ0<&RBp$gJY=Q!YM=yZZr( zH73iQY4*Xp#JZXdC**sLkwrChh7vEoMaRw?{2CBpc7m19hQE}7JQ;)rs zm3Sh?-)=8ded5^s{Nt-3Iei%c%f^Z?SEp}qD2Vp_yZ&q`Vy+TJ3A6^Z$R6aWOn?2I zw3Yw+!7JiHP2|phLIzclYkDswD}2-+ti+C~p zqmz++3Fm`g2#OO+sug2WMf}8NE7o62nE7e3ixXZ9{magNsG#A)cR)TmmvUzkSYV}R zMAY+wfk^yLqD9)TFvtMxq>$mv@B?QLt*STzxM`$M^3pmWgC4`ZSr7Ui#+KZE>{;p_ z_Vo6(e+=Eq3o&8{b~Du7Lz`yf_hyKmrmh}lhfsiGp3}PE^E@nLj}Z<8+N4{_?N1*x05ludi4lpZha>&hzY|hmUh7?Di9Grj3YPpNVX1gx7saX^_U!(Sj(>Eu-#?ZykajzqhS1Xl@*N5nrPA-q z5*=?peQax_t5z=Pzqr5>8l7I59_*jV0(Vx4LwDmlwnp)L_?kN% zI?fUe#bHm!eElYLHw;l&USQgLB~((TDg@aMfkY+Hb9!)4B zi({G@!|U{u$oOO3z|jc)k&M{Eo`MT4%9z*Rny{f>v2x*_R)ziPd3;Q^JGjsW$#BRq z5Q928ZdgOlQ@4m3&DZu-MzbT|`is%Vo`uHq4D7pRUyFaZ$*C-+D@7#MysjH%rEp}Xz&Z#sj;ug_{ zRqN&LX8NwOQGfev00?0@{|?`#8uOMJ2c^&RZ#-<4^7$z>NL1nf7DS6c`Pe=x94Zd{ zwW$@Q%_TZF(4GFPFQN9xn<2%so6c{1qQjbYlCj;7I6E+N1WfKe6Z=$vMib}6#-~Br zLrghQtzqm=aXJfFb`T42Hxrd0bd0Y(r!> zLGiFQqS~*2ITsr9yH|OZ%gbci4dif|#fnX|*30-m?et9h7vU!u{C%Ia+JqL~Z3bfj_=H!HJ-$Y4XfHVocywUSV`VfIO;+qJ~Wk0ko% zANfZ*wCy@d()uLff7B88-_YO`!0TMJ69L@Sx}=8{O~CWL z!Xq5>qK;wwr@B1YuJ$FtvB~JYAMkMj`=ZW&a;-V)6iofE?%Q3DyEpxLi%0a3r(vyf zrS{C)17BjJQ?rvfr@bjcbj&2GRHxY6tSO^bb=^m!YNZqKYDw4c%^GHg+qk>{zM5A_ zC$3IO0ox>~VH@s?e$Fe>i;SdW<65-*5=l0t@@46(Q|VRY*E4V9Wy7sVqjZYuoF1Dw zR*VD^s*EvsR@5&we81F18|Vmr);hsKB1PMG^)FHR>{7QwlN(y>vTyPpZS;WA6YL7| z!{{zV7M)yoI(v$gqGQqWEnaz?dXJG-G`>pWbzn$c_gjI9fO|g9;c=0`ru{edMSj`Vj2}8Lm zx@_cyXrWh;;FrcbR8xcQhqE!Xr62sbNW*mO$m*Vf1y7V;n86S+Mop}e$e=4zB zmtvPcQV{wTWKil6f*-W@X-g$t*VUtvuX{Zd{rxcelB)>~BY#w1py2J4MqiH`YA+aU zbtH=sK@RvBvC(s*QoI2=?f~rsj}dR|ky{Zz*K{=50Rl**I*ANQSOx<;Nn$6ouAEy0 zy-18Coby^+j?_QZwZFN5l4x~jGkmCt;}xKj(CQ}d8}TBd$!9f;Q9(JNQ^N9NNLpWm zX$(GR@$a@eFt`QSP5sT58k$&$9{&dBnc!0$gSrz?WiY3#F}U|6wTp-U+n|slBz@lQ z-(w<&*U5!Fr-xikK$6=FWy1d53L{G8LLXnYC0qF;!Y+1%1A@Kpg&Ml=j+fG>L_~@uw=&Sid{+#Xu@jzShz&jNANSm>`Q)&AvuqYY*^Bl$PICWRuHGK^CtGbyZ zqq5--5lY0S>)r`E@tO0t==r<3d15gboHe7pzL;_aCDWp-B&{bNO|^Ae+Ze{4^+I7X z(TVu`Q*z!LFjJE@|M(;G)rWO3*Doe>>%6dQ8QV)g3W!^YuV@7IfCA4v|EJjXXqD@W z=&wP~dVugBrqh4Nuyf~8lZ=YoV|#HactL*WXYJR6Sqn9sw(e|WaH)i&Z$~OVfA87{ z=;uU5ot2NH?(bg?1WDWE3~HFD{5>ijf#XFPNa1Oh*m}A`dQHXgCMEm9n=pc?-_DeI z%eJ261gL~Hj;V8*{q;f4z6uZ5&M7TaHkP2MzX^nSk`J?+1WECBUJhr>FvnF=+$4yI zz@7QrDTKyXu(T!T2T3=Y0Eef@BUY38?;R;mr)zd85|7HR56*otiRx$4r{=2x=q4O( zg-1o}i3B*-Jo0ykbmb860GJWp)btB=f`$x*?Yg#f9bU4`!9epyhAk*2e|E0r#9TSO_*?OzU#tz z)9Nm~!z9W4W^}&Gn{P|>%xdZ0*nL!?;i^VNI@WAsbiTFms^%Ryl*gn}ch~&R`a?}f zhi}b0OPni0RKT&iwP|-*M000&s&^pz8$0|uq z6$=2MVFCb%0Dve4P6z`h3K9?r6$uRq9SH*o6A23m8wm#q7YPpuABg~o5Qzwh80iHP z2@)w184@`X1rj9^6%sWP4H7L99TGhf0}>+=6B08L3lb|58xlJb2hxB0aUpRd@gVUc z@geae2_Oj~3AHkCg06@DzyDPz3j!pJQ8FKA#G4JZK!BuyM10Vk|L&NV&_x7D4Yhig z4cf8E#tc)x>kZu-SQd&g11f^l= zyLayU>799g=b8VRIcLuIb90QuJlsKI)^(8qi`+F{^0cXWvCv{*#KdGE$rxcSJ_lmQ zGEeXD3~^msHLW*4)R4VelOrUaLQEkxmCFP3R5W#%Wl$Pc$&V9XUteqFov*p>xiPyn zTYfR^sL3+bnQ>4$U3R3K)c9u3(7uUR7edhc7f>1xR4xCD={Ryj0t zW|nm_5%qm^M&uw>H5JlU@upj8EyJjnl2VXv<5t^3*okg`kQN_IvV5&K`v#@j3|%7Qno7mOCMp zxHjCQ_d_7}6;>%b9GkuvpdmJDzzZVKq|2bPEC(7nrH@z5urla}C#cfNuuF-p73J2j zljOeb^Crk*GOScc$hJ0pPXkRRn@bVb$hRaLZ-xdE>O$tD>dDE;USMc;KDZKM!smWV zj^wX5;dSws{PLndD({8KEG-~`InjxIX#(6sq?;mFyGqY&u(k2n(kn*>u%(y;qr9?L zpOdr`A`&KRZNiA|=2Ewc_KD(1D?Wec9h8xjynNqBk#u8rPP3)vYip^JwprP-k{rky zdm`qA@*y9-uHU^>Ob(aK?)0^#(TK#mOIc$~(s}+{p-mXQfMDb$M7j8*mD7O?(e&K4 zQI$nDpFm^D`@d_XxR<~q18f|8ZCqnTC($ZO(xu1P6!6V#-1JkHAQC|vgHsvbWBpUm zNm$t9r&a{+(%~9^yf5CqUCwH*ocpBq6K|STX;aRry3|_w@p~NfJ(n52&yAh(dRGrk z$W9W5Ez-57VLz9bH%V;}BBdM*pZVxxg4EJMn7}B$2Q~A15ukT2yTC9gM%{KO;4?X2 zfk9^QP%j@n9{G8#nX4V~`?aR?60QQN5;w)CCaR%Z_Q;8(D(lxp$v(;ty*7m*&u@-8 zo&>>}R+yMs`*siCKfaEBB4WjV|&&IBKgLE zDRC9d-oE?Z(cvAIKX=PQ1;0=Q!(S&^14hS-q~col`L8kf>JlvqXzWudbI0#T%`2Cv zb$!U%(kp$V+X!;Cnr@`H+4`sCj=HW?m-ym&D;yZOF}sffOq5Hpcev;y(ju>%Fvkom z?8W0GV7r<+*8y-}1@77eN0m6!Wg2d{qt}B{00kFyhh_q?T(Tx61)*b*(Whf(9BKM( zrFic=fSdQcAqDR~AfAF_4AzqyNAG+Q_#T4eD~2^&vlXkhVwgHjfLZf_r!Nr5??4{; zM{x_}D4UEmCAJ{nfQ1t3u-qE6<2{zJ;?k6dsVCU-VCLHJz2QObgAd3}41Nu=;g>|` z8e;R?a-*W}NiZ33F^(a4`=5y9FrAlZvz6c32+b1+=(qx|8M z8F>W_$sg@9ppJTj?|F!FD~fm@6 zN+9^`G$xfndx=9QJ-R#f#EA@KH#-Rf>TF{SMx6UW)Tay@8gpao5nHmxP4dQoa z_Eh88JCWE)?ba>eO>|5%HlW4vR4C{hAW@okuyw&c#Q%NGw!-toSF`PG&Z-#JHmNhU zHjEup>sMr-t?$0Y6!T~>7clyCLsU`^KN9o{qMC+G?dTGzAVT24zN{YD*WRcfr8S($zvXrPa8(gZzDeLL;Rtd7OSWS^Z zy|wt)?Yv|!6eO8~#Fv>PWZ@+*T5mH_65Frm=^ExqS&wU7DIc}BM%UC9vavBy*cxK; zGwSAe)zN8j7qOqyniubCT96#7M41ajsP`nS{51$ z8q&pE&!+1`pO0+UVOsdPqe^DK{_brTe_io6*tOQjY|@AJ$cL8HmsYsx&%61c(xhbP z3{p#Ph2?KW=?Cun!0B{5uwO6PHIhlT-Lb%8I_;{H@@Rl`JVJ^WEBr_4YhuUvc5fYI z%@-f5?>W4dSw72`x3F~wtlXbNJME~^>(?h4XGZvTKiFr0CzzHZB(ogSp1qo*7*09J zZ1t*!@F{lkC5vmolpWUg^enX>iIphR)yNQ7qfhFV0#dm9%g_NR_@Sl}J8{NwtWAM> zUa#%$*O4c&0vnzg!`O}_z!S0UVYZ4Cf1rpXCJ{Qz0Y1!4Gi_c$XnKkgrq2%A(%o<$RP59)Eum z-MhGAx?#f|HbQ6oL6#qL%R^K-A zZ0l)?CA7^Y0f3i1I5pTjk4X3`IckE_iElSIiYa8njRawbGq%C`?`Q`5RbXswcN&D$ z^S&UCsC_;FIv}F)%`JvWAc*oS-5a!F;pPk|{Y^vl6qWS81 zFA>pf43qqDAbL-(9bz+GJ-{|zUUrDDsb}(6w{*P9w5rIjhL5f(eY~8ny;rwhD(*#_ z%x*K+B9rm3YSh>DuO&LljLOS2@9K$csr{&eo3RX3@x7A7O*(b0`3#GrBO^Pwd7ppw z?1vb(Q(t!O};j@YeL{HE=rTEuH}ocMFE!FRH^Q&zu<-CZMM13&5SKCro-U zQ%H{(;#%wepn!V|jAiDdy{w8WprvR_F}QX2buEuA8FYQw>m0j0bTCJFUDw3nVl-Vo5S2dp!r;ewPPB!9l_);P&&vxr7dGv0m)HxFO3;k&Q{PQh zPQqa$Ve`+dITU>>MsFXJ$~AYwW2OBCl84n&bDOK25x;Gq4z){0XCs&gA60}?QIl^0 z4ArmJyl)Vco^EgM*alXpShvTdL>Tt7&wjD}PU#nDqZt~S0)0;Z^pEPSn^ag#Q+M*; z4(37uQG7DKI3WeSU}K9Q1zzMkh)VHTb`KZqxhgRm-L7qn$>7Alaw@X-sd0@QAn-19 z#EA$;6RX$zF~Kk<_PL+xwZ(_!--mXZSA+t!C-vqh^D2+{C#Rx`s;<|1w@9o_O^b@Nl00S5v^6K z=gfM3=f8+V&5Ppw$`#z$OI1Wp*uL0&Sw-MFK`dX=Nkg3Vz~N=iVM9p02bf8t%#4b6 znU8jVe_1`ve>rFe#Y~b32tmVAG>9!KDlbZ3mkMMVlj_;wc#$olV5!ee``n35K z)^c+74J8;z8?Sp%3@{#1V#i0mDD-7{wz_s+%H0N}B7^0btA zqDp9X-ul3_X&Y!a8)kAlFU`%!H>VRhBY(nDXzH zw*G`z(NPqpBi>Cye2{gs6%xOS(TrC_V7Jz_Ll3z440TN(Xc4jmfV zK&BTr)76)yg$l0klT}*sD(5%MuOE3Zx}h7daP)RUGadLF5sduQj5gDw4z}vja{C)!uleowCkA6{V>o;N^&tr zyg#4GGHS$DQ@-eCvD91%WAG^d;~=!Ld12DE(9lqx&`7F22Yo4H>(E}Q7NgKxviwS- zQ+MoQ9=ss%wAJ#k`LnyR_)nd=QOiNZK~-?A<2KkwZun)&(*?IzuU{Af2e3$;HX{No za%Ge0TJ%*Yzlz()i0H2uE>P9Y-HcyWp5NY#EaJ%>KcyKZB!vu#!D8fMtWYG}6npB~ zWiFoDwr@SeHY%=XK@ydN`tAf#04o9z$M=2$7P$dsZvwQRskPFYQEx4Ffa zQ^)maOCyu~1%zPx5d)X9eaqkS@>X@^*Yjgu#1EUp+zKIre7ym$O83B^-sT>+-NMW! zF-~0sm1mu0)Kx3i)sv)nKxI)jvx}N1HG7L%zYaWJz+%R^tum9#u;=!32oSDfvK78~_ zO7LT+;Qh`YFPUAPwH{k&zW4se7Gc4VG~x?O>31GuR!>gX1Iang!u;S~d;RXv!>a2k zAdZIH>#Jj0d}7D?%BeP(h;#xKZX$qZZY z>YADtg?j59F*Q^#Uv`=4l?5rEV5A3aTf~x^Z^ur(EPZgh(8pDn;G|4ePuayffN8{G>E7usj z-|eNs&@>FWuBZ0eQlJd{t0`(C<6 zqa}?|Np(ScN?BCHbu?V>-6)emXcpV6gPE?UL$j+j<9wkf6-tGiGY|-y*Bg>|Zl`uZ zWj6`T7L~BKc0FHpOXi0Bp9wJzaH#c&QAP1<{FWqa^ee?!saZEGko@o}^QUw}d&#P) zp{-_&w44T|h8QOlY!}!!^a+^_M8$2~r1a ztjd=LMFJ|bN`;{{z#jf;zdKdv&7DaLZ*!B-_%%Z6L#QN0=h;zgn^^`B7>-ZFMi-C;!Lwb)iHr`4^s$UhY)K4UA} z)&SU{_z2ZE9QRC623KR7=bN$L`Yzd_R{!d`u37Y zp}r5g-P?LIC@t&B#0HFBBDnw6ZjSc2{j(tZ8PO8g1Ta})Y>+ZfvxAg4nlA(G=Rm|$ z4n4k4qvYnd3-)#PTwnjo_bG1EhdlWKisXRNw#)kjLnfNW2ynp&v-Wf6n)j{`&+EpW zFck}GEUH_TclHvIIr z1sf7g@6egNtN$(ooyYLO(IfM%`nTjd`=#85b|Gv0FDWWxF$u#L;JJI(91Z6pUa(Ej z!71p#$N}PyZPa59A2t#y;?9x>PIf&m(XDpI6IfC2-&-x@xe0K1*E062(?&$#_6&4%R&XX?Xr%DJ1Z>_J z|Jg;St0Jsl`rRs|60QZKm;7Tfag;b@faABk#q2IDZk zU?1E)n0Wr_(PVr`>Zf7c9j_x0NW2> zJ<9W5NR_|h)AWHEx94@9%=zY`ma1&INh{^cW<9!AZZnM*`cq&AJp0}96zjK_xQLkc zF%;x9a>ZY}+suqXfsA~8_9q8-;jxv9dcl3rEbVrOuzn}q)o5- z?{DYyQi)@D@U0P3|i{AL+x2Dtg?XonfJb+p6(B;_Ow?)$)gKx zk_FKLtp^96g5+Qx=}>PaMr!pj*I6Mmh5^E-!uxD-)5vj0zvqASjWbma5oQzCNr<8T z9q0=6_?1Z7k$myoVC>C!V=JLe>#s+Eibfs+`dEq?O9lx{x8Y5oCZkgR^o_z1V~oCG zsbt%vkz!prD#gh31$$4U4WR(S40^GJdtbmPyVK{)1b`vE&hx_%0}9r=bdO8{$uFOJ z8l?5GD7*zou-=A8a6>sxwP={A_Hg?kixk{7OYyCd4gAMRz6n9$cr5H6%{A3lUM_ay zs9iFD1WmTFTI^Y+Jc1$`zwY_2iJy4SDtS0d&Ct0DrWkNenn(;A)|pF-#NY<6muAX# z*oRxS@ZZ-Ls|$3qo4Q2w*^NdY~wdC<;N@|>=$QR-Ir!F%%v zlI@NJI5&|k!F%XDN$zr7mst4aHL#%Yg)*=#2Uf<=62R40C0P9GLoU6H`dmIP>Z62Y zCd811Y-bniNsUG=5!CJbnD>|A{hBVj(4UK?G8d&PZyAFxwpIe8)0iwDfKBW8uI zeG05__%H{d+26CPa;L5_yb1={!Uvo`QeygR4=%|`_4q|T05xx9xcW^feO&ySd~kIT{%2>P~2GgeDSmE@t4U+!9(M-Xu0j<9;?8Q9^CP-; z2Oq~rAN>&KNY1Xmsu%$s#J1`=5Ev-@A8bt78t55E1Ze5tQVekVhy<{l_J_xHi`jN0 zV)=iQExNz~kb1uB&3{6%7?`6t5CaerrgrwJSKNPOTyY)Lf)gJGPlvy*z3z`_fdkz; z18vpkOad_bhPCmWY@~D+kLJArIc!j2wC>iBM}{yw#eo*_m;m5S}v`h z_B%dj{X5u*^bi(ayaYsf2#cD-(v+GzHJO{bXV*lZJPRB{l05qd%ua&0wT!Fcr35ea zDfmD9-W|d_5LPe`!0ZpTjy$G~A`^-u6T(CTpkbk5qv4?8qT!+8qY=BJ5TqNVK^l~jt|eW%VWnHTK_n%m)1^}y7D;K4Z@)YD z{<&x7nKSRaf6o6CKQ)e=y)=&8&`pRxp8wXY!CkV6n+6FfdNFOBkQ%(~xubZV$NA41 z6OD`In@DCe4YD3uC-oAbzi}L}hs`;ZNkU`{5^us9wmhFAc^PJ#k-9x>up7Sd9N})P zJ^JrtA-HO#`6)H6`V*QbTL~wn#h?6mz--N~3}l7ToXT`|V4UYE9Mi z4Gnnwo4wMyy8?UABwR6Hl+=h!HcMXUAzz<>F1kmd9yHQD7sFyL564{fJ)nznTVP~X z!S|hU$&RKb=C=~I`(;Kq7uEHIek{^kF_`4>=l59^P@VXHgL{}r{c*hVGOdGbiIocM zt|E9LH;~}l^K-(Nvt;&yc3c(lAY~zn6vmY6z@sveTd*?3p(frJi$Uo;QYw(h7D|@a zY`>B4$fQ~K#7ygqw>+p8GacraM(UlL9EwV$QfRj+f9%yn<$b)TOj7usT+vV#Ur4mV zp6hMGe!fV70!ti46_oiabpN24K_U8boU&AtC3<^>UG($Usj9xiX!mGPD1$}td{pSD zv)hT?0@!gS!eYNp6Q)1c+VjlgkcT=c5UDF69L7 zFmy%%|9SIg28H|^a_F^0Q@Mfn@ZVXfR(EOTK0k+*;E}t*x-Z@2T>UV<`cs-@epo#{ zKaeBTu!#$vieRS}^&!~BjE)$E6I=u2&Xc=6z&-axnj@ylIZV5?B>={%!o+0QB2cS~ z;d=BF-^BB<3ZU7hO;ZcmThpQD3X z;2ICyvm*hv?JW8-4<W;j?o%JBR(-<|x@koOQ~)-#)A#j*sKP8eK=~ z?+%`CRbF^jS=~|xat8VsyEHYIHcjq)!ANHP1<~N^b7kO@!gW3QM#}k_xbiVQ#AwH7 zAiu#{jx+!=T(W~NCfQ6S-)qkMr+H2~GZQ;cu=Bk+U{s?>EUwi_?H-AJiQ*Uc=r99Y zNWhWi&!DXCn>1X-ItEVKo^?NO7Uz30R)+o=se?Y#u9LMm)?r)VPde!{Ut5I(u)u_h zCw>m8q|AlY=UCt(^n6z+G3aKUb)8_OIf(AzRmsPQ)aGJQaIH92YV10*e=KmA83QY- ziF=CVE)hUm;9wEznTzBCTG1gM8pVy?W}5gX-HEIFZoWjohivAaqp&B@?WrN~wCrDG zZ(Zi##vO5HvN4hx29s9M*v?1PKROFxK zNt&SxI4}pviUhoDbLj-ZmoGkM6gi|^f=s+me)|qsH6%{)S|kOt-uQ4QFr}H9eZ##* z`MD_I$XZnAwSxAcqdW4rDyB`i3%8Bkc{9ZJ?+DiUZ_sz7^oBdlLL_o^+YY~q(y78b z1;RjH+^=tw@_k3P;%)UUto%#f{KLx{?%L@}CBB}GF^-VNz$!p(;(K!ePBdqrP~o5T zb&N}s97O9K_Bao380eV@0{eCDk-VGyqQ}Yi7l+>~)m*+aUXD4*J@}gyXCMQ9Y5j4P z|Fs=}glOmxF!HwOl+;ev2{WjeHjQupoNyS4Jmb`#F48Q*&?-oJw(QLgcTVaE8P}!d z_wZ@j@J)7Wu&YC@M@_Iym zKUCKrf{y-hrQs@7yvcK>HLIDRw z^Fut~iG@xXnOj+>VnfqI@BJu+ioQqspA?C9C$_PRy>CbLO&!&R)nldSvJ)YJ*|~oh zr7C^t9tPN_A}?LwJJ;N!QG3eC^Wz634VLeMgX7KzlBYyLyP)Ec8D|I4Lh?=jCEfSP z9_r!xcync1rMPtNJac9>heEt{5ng!dksJcxZF;33%4t0u9a#m2n+8sWz_TvAKb0Xg zR#+sbf;Ni=#5Loh(ID3&M$X^tf>W}-P*?_OZb>xf z7Ugo`gU(~B4Mm-~3MHhs|AAtxKbPMf>dkr+OrII^Ur`+6pAo2iANme`$MI8(BR!Y~ z%mtyr)EJ+6T|KnM&s7CIRv>I_)HvdJOE(nmBKe}RbwV0H)RGn zq>_qPv*XmEAo&It?!s;F%eS$yT0!r&z^sVeXlh6s#+G zBoNa(DN%C>mYhzR@QHHBz1i=gNq&PP_w6zH{>rQ5;IBT4`o_AOoVitr0lP#%FblnE zNok$n#mCz3abZNWYnJrUcuk=$NuQoc$v@}h$A03Vo}a>;USu9sa!nfK z@lH~U8%ayIKa8ykoEfn%~E%|0KZ6{BpL7bB!NO zUeN~Uy9{<(yR%Fc`%#L2)=PaS0lx1#8$fxZyY3KpAIdd}rU=Oaip7v-o_>Q7V}!?; zD;B9&_6%ygA?>AhXuwg4%Ujl9WN>68;Jp;ps{NC!MSvZS9%}bMR)#Hty-Zf=K;<0R z9m@jas_Bv)E*|0{dB$5BABK@v-na^&lI{SE2j??KOHOjKA-*J9Nbk4{z*TQpN-m9C zbLsw41e<1knyzeICo~Em8(=?7MpEWOlW3H&Zo)BQx3cu%!2MCjar4EE*YkV3bk~rD zGTB4KV-A5!7EBl={Dz&FB}llE<(p)I_9UeB4E;#_+PL+#&0^thJme- zF+2*oEnl@A1~|nvd(mCR0+@@lYWNh`jFS?uH<5fW?;iubCU(O#F;8x&@Ge>5t`oKg?I zwhAK(@ftDx_AcS72+1nlsRcJavT(num8d}Vqk0#|owIu0 zXQ+}OG3J5HIjLd9v;cB%Ty^uBFR}qTrOTRreOBi}k!j89T5(y6UAaeUeRwZq(yR$A z>GGH`ID}r8`deqO$<`{NVZ7i%XT@4M(zp&WTXX2WtI1 zzVc&7#_hiMRdhl%H5Knq26S547jHPSgn3KM=nEGjDc&vv3pEW)2X3rH%o(M;Nj0n!|dr-|%Y)S?`?9SRWb2fevq0*jkwcDGo zwA6u3h}Z3~XoSk(JYFZe%bj{jnnEW2I9RZ{`a zuq8Am;GdA?;>G`J5BntbCyb=?bfqovn89grGp9Q3bPO8~W99vee(a-A9Pjj8f z(S)M#mln4Vp^HWah9)*@KJ|-sWa3bD9UvxFm5Ia6pjnr6q=~)qgwDW51+4+>SfpZ} zZ{8CK^Nel97F-3y5{!7$zlf$cSy46#JNqpZr#kOl1@&~%QvM zP&NMJ4F`3N^81F}@T#*`p#O~QB)fO~n_&yJ)BNmWy;lJR+iyH*qS_`PvD#&tcfuG) zE7W}PBHigM#7Yz$eHJY*e`{(M;1WruQoP8i)JeJ)NS2nPHgGEpa z2Bc9HK5@$aT__J^ORfBoo|6I}asviuV*0j*4R)h3^G3(nWmIwbC>9;Z+-6uR3!E z*@WqHakr7h^4t=uPx44fZq{3E{yP(}G8>6s?7(VGkp67VFmch8eQ!B$QwC4F`_IhO zWmpHd_*Fa9Y*yHIXUtqpyy>D$7MQPsyRNg?GvmL4Hjt&U0mCBNl}#WGMm9CPv(qWt zp2ks&{lU&ogVb;}a_iRcGHv`K^7SQ-H76GZ_2gz6Wywwq=CxHM;w7*JjUfk{DW`-1 z!csEFL;Fhyn@S(!;L&>x&tz74fDaxc<10O!)%iaO1bm=QSni7q@>}-qI;?HXM3Ygz zHv7S^YvHacHXZ? zkFZA-p?lv+DHM5*nf>I<&@o@I0xO1^ZjEX>ZgsbUg!d($qi20`Rv!)g{j@%_mzePF zRO5_#IWKu7p&T8KIjvYXyS>REDoWN4mqEaHUB%adz03Q$C=7A)+%VHummS6o4hFU* z?2r6G$PTYkEEp0iVkfWKF#npvOizoP9B`xPUUv;Z`Sl;aA?2ZQD0U@+`Br;Jh21ad z2}SS4S|xo70`$NRa_Nrr-?8^mtBS$^TL!u$uPy!3>CjzUbf6z$EJ+4gwl1V|cT~2m*OOAFRq$up;ojG+#Tl;w@_;vxmy&9`vRb^&P z4I4^AW$9fObFb;Y*e}XBXUZT5Dg@>2O>u6D2!a470m;9y$8MHvB`H}6b2I5YJS|3OG z+Y1v?ne2s}DYz1TM`n>NFvQJ`e;dDy)UOxk!upZKcW;p}d_S>kZ4kSUr@q^%)9{2cL8#3G{QZCrrCU-EifQP|y4;R=Z83{T8paUag zM$~lNwF`l$-qvr@TkLr@h{u|G7w1L~ki{kCg&Nc2tJ)g^aMDjCg!OViZEF8&1HRY* zdg>~?tg`*U0>=#>*v0fHIeqAQ;@6<-l#q=Nu6?Ays)!`BU8lqgD)ow(CDak+23ecg z{_8B1UtXI?1hDLXNAFV%xyuX#(iV6(AGb<*d=whRs_=gCqlO`W?idpc76ts=(umOH z5S}0GN&DF!S9k15pX}a4>oYOgX-PB1(BVUr<)1MMCU>2Ue$Gdwj&We&Q6udoqMWQz zGjydmokLo&6Y+C35f&r0&-}2|m4aH<6qGFxdW{?>*BYgd-8q@IeUSSgS4-!tj&M_zpZ|P=4!+Ob6G1oX!dgp8b zud&d8tYnUaatn3B!)aMKmduO8$)=Txm%locUWb1@^E6!1-wroOqo~R5wVG!}k0YT< zABSf~{8Yj7Nm;Ujj^br*;2$PXw0~1Aj>uz`xEr3@)L@lHiPO{m zhko;o)rwIQJn5D1D|Gr>*ROo!k&Gu|vNqiJAKGr}k=9u=cg;PSt$kVGb;d_quvIra z`D4mX^@`Q4DBDf;rKQaU`GKqVLKu$(3!DR2_%>}ZXVkvIP#R@9M)!RLnhKtN*%*DF z#UF<%OHJA=5^KIY4=pk$D@hH&qXm@vw`C5yb(q zvfa)>*=lsCvchKA_u5EhzL78??*vd3}) zKLhki-GcA}*5kL8(zKo3DtUS~g3&&Xur50rQ8VyH^!xMQO{?|yx}fxd!4}8T=wakY zpTjnLZc$e(ogElN#5Kt^6J&24ar6 zZLPq$sbM}btxzdOP6QkmeV*X>CbzULvAyMlg!o(}?zJ@+TeY11-6Hj?i%Z>N+nD^>uzZ(Z3uL4wCEwwU;DEg22cztAFIk!0KZN%< zON#Z^{w9A(^MbgcF1z6#34NwXU)!y;{^?(sg!W~g;%)-iU4KIt#rdXw_Sm3ocsl@A5PrNmn}3^*vqwZI!6y%DK&a~b(H;6(>1 z^t%jm?tLz~)Bc;E`MWb-s2t5g0%@S*OXGov1DDIT_0C)?AAMwkPGIzz=og5#9 zpw>QRK4YLEz|mXo@y0Q^mCDK-6!ABXAXofxZVNv#*2cr`j0tAHMv9XN5#qZyoj-+8 zd-IpJW`8H?LFHp}7ka{MR{gar;qGw5Dna5_+5O3}KPo}>O!Cxp%@56pt-av5a3cX9 z+mcK6{)o050v-f2z?++YqD)egA+y}nm5zQryw{LeIKF)_we9*9;P;I#zZP=v&FvEX zg@A8ry&cuHA4~5O;DZ$ROCDXO^4!2BK#F^~7GejtUhdL_Tek}mj4yOwT5eg~hjtnz zn%<5rbbIn_3!hmmKNz}>$u(Zr3Q0zrY>q9oHC@+!un*=ks?^>yy|?^S8`SAt`@x*6 zEnxMfz^gW>ywPPZ^X*a;Us><`gZ?+^j9M)_xZd)EzObe4f~Dr^pDWXb@--=n&`; z7!Vi{m=IneFe9)aup+P_{P#W%1Wp7l1a1T#1YQI_1bzg8HU@T3eCPlBr9wM)K!WHc z3o!=VS6EtxbgbO{|1CF)yDG95t8#?IlgLTrhH_b8o{FXpv&@x-Rr14l^~-CGyuYiiyKc;G zO_pCw+pDrnb*3GZPL~|%CN#d9^SJ1Ne}yQ^ZfQyvbYJ7fUHjFOksVre{22+j_ql%2 zn2SPete?%>yt&-qVxe`>+USq~gibk1bE1RA^<6}+hZ{3TnGI9h~wgC})>Kk$8;+00Nk|&vM75 z5?6=1^}Y+_zQ8JBM_|(zfi%QM40s^~nsgadmStcgr}VMPX;udP@B~#l8FneL)xz8= zc9PuJz1{>_OokN-3E9@BZ)xDkWV0#a8u^xFV@>ctLS5KgR2?}v*)t5yj(b-^OvLOj z$>IF9M!Zh`;-6mhM`b;L%;G!>oD-ecntZaE~aCwEXio-T@g&$&0tW6iGK`e`z+=d~GdN(l#oZmy-io zV^74qu6)RcuIqL#6qCaxvpalkX*447?ow76lXRZ`QfL)MFA#vdm?#&2q+%+NA)21M zCaR*)<|AY@dGA-16!#)@xSx%Kua#@G@FZGANxI}1n*y~}@`0Z-r-(s!;sbV+9$0n+woA#*jq)O|Tg~>k3_dPZrLZ03n zwLc0%FfB7Nv-a*BzI}KZ{Xo`3eV23R600D(`r+V%S|Fg`3vA}^vSQXCf5&#O^+)oJ zf>YwknZ14YyraY0Er0Bkh6;Y63P!w4vIdQe6-vdm?D1b?@YN<-6wuhGQs$2R8!@j~ zq}KHzYfZ24jcz5#)oQ$v;%4iclsoFYR9)nY=Ph?&;KuAa3NTSF!QSSgk4THWbiy1p zu&@`8lK^%!b*=*tz6#tm363gprb{&32uH7br2q;p>UPZpV!32ZObSBBAfu1R%sA5Y zTT1cXc_26MIYSEGJy1La$0*R98%OVa9{3i9<12MSxlLj;A*e%9y|I5K}wU6>g zOl0I0)F;2U%YZxT4ZP(c$}KPCt;b#|%bXSmg)+o61c8TMNyp5KYLFt|RMSU3Rqv;- z0J89hu>Ay`9Ivdx9sUl}AH!M3F}V3w2&lsQRLW2Y%YDHF1*|&SKHJ2<$9{24HtBgI zL=_UIDzAp2DoZ!WHMV&IAQp@BsP3z&4z~R z{$~QgXQxrA4B87EI_Z&}$wy9P5WATP0IaixF%a?B4<=XBr4Q#QrW*@?OT4dVh}#&) z#`6Ob)EbSD#4R*wE8%z>jrXN@AjIy|;Huz<^kHh=viYt}pSV?tAw|SUbDpUY;qM@R zcV_hxt*KEr?k9;*-&t|QPfYu3} z$<-n3m>R!A`)qypO{SO!gV}(Q$Lpe!diar$pD@)lRBC&tNI4M_2l%pbU|(~iew6Ac z(hFW({_Wq6pt#TD3R+E3}lTFdJB`!71(T^;QY8uvkfv zxq5B!r^|WKUMNU11%)p&OUS}YUbxn3q$IXi$J05)ld=}qvRpP|Z;ft~o2Z6{L}6=~ z$&aX;;}u7zg&kn+^#@=Fun4lrybO|h7{6~`yLtaA8@hKsY$j&;eFjJ!PDer-H!MFG z3mVeJThFBH!=Das)nZ!sxnC8}RR8K}6MtF$JJ_|x$85rf_Q;2p)R$JcasSO+P)Sm< za|WrUx5Cob!t?|8J@8bz9n`Of>>9-++vZqcF_m`NL3z|qIu;?tixvL89$o0#Uj58yAyYKAN;1f(s5t11WY0n2i1ws?jTTO9A_^^V84)EcmXf0y}ZqakN!| zdQPwP?&pywu>u>O8N=wdB*+uFEL3wJg-%!~H|OhPL3lObEjPJiD|DbLgiS=DKNe0Fe> zO|6(V&3LSXd%GrlYsWprX|dducuLBN!RN^$4HJV`FaF!&!zh2F>QOWwL`G5=y9;EF z$|CC>a_4(A1_2YZV4X)g3G&}_lki^0=KW@uvk*zxWz+NCyKCDH?9?KnzfN;FPuRj< zr`1~#BNt0pc*}{!&Y4SG;-8GQkB{nq_6BRfi{QJs2BOmt8pzk7VP#S0@_a5z2amt6 zk?u`g5#5mCHXETc{s2oOwDEEcZ?fPIlKq|MT36%e>UV&x@sLucQjrZrgT%iO+v@9j zo^2gXk%YFnBnb4p8>b4J=K+OSA-@{ubmH5|jbaK}cOyaC;f$_x{yCb)ei0a3)0GAz z_54>5N7ObKaOGgoD}?Oq(~=7NQFORr9<*r?Z27LnLU`NM+z{|(?aNN_7&29Ih0s)c z{*#DkG6p2y9fG9TeoDa(zLSBuZoYZF@3CzudPS7PAcwM ztISRl*8-FAkZM%*T6M9GGNbYm&6_$RTWUY5;3g~sReY}`agz>RYd*uG=*Y-+Zr-P# zJ^NsWZB&@p&l!lgp0V_jDZDm)d<~w;d5vcP#@z()`$Tp4mn5v)6|{# zvyC}lKop;hFHT57FWAs5NP!pm2BuOpn%&I>JXIxTqua5KF&P;DQ$|JhHZ`t+0|MQF z4?7XzXkztvKO`8I;?y|#F_^y|=0^O8`Y=A_R2WKQJ)|KwCOQPp)xC@viSoHMb) zqgD1(*IrPd#0hrz`Dvxq4D{2lS=1gJSZ?_ub(xE^B;@62C7KrrCh+oIjfT#8lushtha?q1hMWC&84U;lJnzIVfH46ALg8B zEeR>$t$X;CcxktvNx8Gw@>!kx{yzN-><^jl3aIO7y)6HPk?a&$p+rLJ8{<=^47%ey z#~}6c`-|u@j8L5;sTwDH{^NdsEtl=?Sfla9>ZUpqLs|L8G0(GdQoV4F7Q26+a5Lux zf`(mr4z^3UTKU;bJ@%>Y!G2n^Nzu>-}uiXujWMYe&!0U@1`oE#%-T%Jg+2h9VeDA?w}#gy65mR=ddB9-UUskQD#QP zyK(4`tgKPO&-!i~x%H+TW!7|$d}sU$L)4IHzZ0wa+!H>)5M%OC1*0#QAKFS}<=xK%vm3pHf~|f+$7FAM-?=x1(j60CkRRuPG$56&ac783UckFpiFpbQl%*)hbezv zXzP!Q6&^)lI^x|V#0Ob7S)uSN8O?Y_1a@j%+x5T;PvEzr*hKNV&O~l&!1BnqGWg)| zIx4-WiLS0REmUxAkF3IyS2@3aZtci}(JlJRt?P01iRT+EXS`kY2Wi{mJuViscIcM@gF*~BbEcmgUa9<$1SLj+|cus$MbG4UOqDf_hXSdZA1iE z0lO>5?t z0(1+)t_G%`$U5Hs1eml30TJFLN41n?AuywPl@HO*%U@A!{?pKW*3y12Ib}7uou+1A zP94{yO^r70&bIXMY^7Zx1>w)Af=ZE~@9((<+(8J2> zN#nQ^zgppix^7^NjOtO(ds5jG3e>3eac?j?o;Ji}dX8aJ35%p;rYw^Ap?I1t zcx6@1i$cBSj+h#*moK}-^g@Qwn(kFIWK4`mn$RK*dV5f~5GxwHvF4{@3?un*M!Ahk ztn*~8%g3z1VsHLLj`aI;hkN#xS;3WnB>JIuh{uYLN{oSH3{7&(&#PsEOVPM>{K{1Z zZ+CjAFf~$ZgNC}B%v!w~- za;EsYPq5@W)4te`l!`Z}k2X&^F6JCX{!M5qVwgt)O*2YQiU>_sbGRm%JAV`9JHcwf z4VC%QkVsHPR*5jY3f#^A$?r}TK6rw_DaFC?XSu%Tym$~ldg#13^e^?Wt@OW!3s)ap-d_ElWlPL?hWtZ|7&+Xbud{^gVBroKHS zQdi#w-2T~mGbkcv=c>1^_fKob zoG=v&sw_UWC~y0#DB26ZY@Jf^k!xxz6OF!gE?IXO;8h(!|^Cv5of zcQZCDn%+F?q8`_1e@;|4jh{YrfpGV~GUUSs{74ZT# zAP1+A10x5RKekb~IgB*>S>UGmdgvw`^gC<${n^~Dn52yurSDwt2DU8wM1ynAj!RNj zSclIIZ-_ff9yHnYxLEg-GoHY*df)EK2cDY%hd0fmKRawh1a8kDM`s0R@*j*8{-**q z?u_?$(A8NU)+haD1y+I30_Y|8Eyj-$2MutXIcZX}*YEk-qdpT2FPytSj52+H<;-9l z#uw~^y9xG~bs381U?M$y2P|Uf?2Q z+D5Nnr;*G4+FfR53<_lAYcoGMxIa8ucI0@H4p)~aT!!awk*cRt4nzBzsCn?{&opvw=Z#EqACrtA$k-m_PHMFQmKc-HJW!Wl-|S ze5+(ZbU@3&!N(vuz#|>*t;9&JKI%FnWX8}>_*i(4Ep7@m=IHlyU*9-Wc2 z?AwMfQ;%JWq#el@%?`xgj5V|n+O+(90I6u?A>j`tn6YHAz;qkl1ZpxW<&R$}95F`e z>lcf+Od2TGl%rCNOrNoLH`ovgAkE)Q4{k^%S+Vb;- zE*!NB=J$|^R#uB$tCR;wL__ti@2dET_l%NcR{Rnw594kpLrYPFQY!2k9+lA zLNXI($U?TggY~FNqlO6X_HESr%g|m`r(Nieg%X+b5|!7C!RMRHfzfG9miOSsHGJ2$ zC$>_R&AwTE8^3Zr)!%ove+g?#U)|G+EEgassOBA^+L2CAO@2K3VYYeSGA-0Hq=l7JD{@MeJa#G!Xk@sND8yT+sR~esev=&}v zGa@rRj*Cl4# zo`~iDRkrXP2Sn=mrYHXq#X?|?Vt))sNSNB$r%rM2fpOV&Knp>97(5mJvgW!kq8R~p z?+CP2pEU`<>>bj^7qhqwrthVprI1}M#cuPt43tu;A|hnjOOHghSJy1c;NyR{al;|FtuScOa}_9)Q^wY8`n@8$~7*M<#@c213I^!$!kF!$reG!$%`PBSa%YBSs@Z z1EZ0mk)e^JQJ_(xQK3)3w?~cXcC@(nT^2QgUW(Hd