From 1a6308eb9b023a737ecc6735e152a555e974bfc2 Mon Sep 17 00:00:00 2001 From: lee2716 Date: Sat, 31 Jan 2026 12:09:15 +0100 Subject: [PATCH 01/57] Add FP32 operators for MicroLlama on Snitch (untiled) Add support for FP32 operators required by MicroLlama model: - RMSNorm: Fused RMS normalization - HardSwish: Activation function - Div: Element-wise division - Mul: Element-wise multiplication - MatMul: Matrix multiplication - Add: Element-wise addition (FP32 support) - Reshape, Transpose, Concat, Gather: Shape operations Components added: - Generic: Parsers, TypeCheckers, Layers, Bindings - Snitch Templates: FloatAdd, FloatDiv, FloatHardSwish, FloatMul, FloatRMSNorm, FloatMatMul, Reshape, Transpose, Gather - Snitch Kernels: C implementations for all FP32 operators - Test data: Hardswish, RMSNorm_fused kernels, microLlama_fp32_1 model This enables running MicroLlama FP32 model on Snitch in untiled mode: python testRunner_snitch.py -t Tests/Models/microLlama/microLlama_fp32_1 --- Deeploy/Targets/Generic/Bindings.py | 3 + Deeploy/Targets/Generic/Layers.py | 28 ++ Deeploy/Targets/Generic/Parsers.py | 47 +++- Deeploy/Targets/Generic/TypeCheckers.py | 51 ++++ Deeploy/Targets/Snitch/Bindings.py | 122 +++++++- Deeploy/Targets/Snitch/Parsers.py | 264 +++++++++++++++++- Deeploy/Targets/Snitch/Platform.py | 151 ++++++++-- .../Snitch/Templates/FloatAddTemplate.py | 46 +++ .../Snitch/Templates/FloatDivTemplate.py | 49 ++++ .../Templates/FloatHardSwishTemplate.py | 30 ++ .../Snitch/Templates/FloatMatMulTemplate.py | 30 ++ .../Snitch/Templates/FloatMulTemplate.py | 48 ++++ .../Snitch/Templates/FloatRMSNormTemplate.py | 31 ++ .../Snitch/Templates/FloatSoftmaxTemplate.py | 4 +- .../Snitch/Templates/GatherTemplate.py | 18 ++ .../Snitch/Templates/MatMulTemplate.py | 58 ++++ .../Snitch/Templates/ReshapeTemplate.py | 44 +++ .../Snitch/Templates/TransposeTemplate.py | 36 +++ .../Tests/Kernels/FP32/Hardswish/inputs.npz | Bin 0 -> 1288 bytes .../Tests/Kernels/FP32/Hardswish/network.onnx | 14 + .../Tests/Kernels/FP32/Hardswish/outputs.npz | Bin 0 -> 1290 bytes .../Kernels/FP32/RMSNorm_fused/inputs.npz | Bin 0 -> 2312 bytes .../Kernels/FP32/RMSNorm_fused/network.onnx | Bin 0 -> 220 bytes .../Kernels/FP32/RMSNorm_fused/outputs.npz | Bin 0 -> 2314 bytes .../microLlama_fp32_1/activations.npz | Bin 0 -> 355738 bytes .../microLlama/microLlama_fp32_1/inputs.npz | Bin 0 -> 9138 bytes .../microLlama/microLlama_fp32_1/network.onnx | Bin 0 -> 2186293 bytes .../microLlama/microLlama_fp32_1/outputs.npz | Bin 0 -> 526 bytes DeeployTest/testUtils/typeMapping.py | 6 +- TargetLibraries/Generic/inc/macros.h | 6 + .../Snitch/inc/DeeploySnitchMath.h | 5 + TargetLibraries/Snitch/inc/kernel/Add.h | 21 ++ TargetLibraries/Snitch/inc/kernel/Div.h | 44 +++ TargetLibraries/Snitch/inc/kernel/HardSwish.h | 34 +++ TargetLibraries/Snitch/inc/kernel/Mul.h | 44 +++ TargetLibraries/Snitch/inc/kernel/RMSNrom.h | 31 ++ TargetLibraries/Snitch/inc/kernel/Softmax.h | 2 +- TargetLibraries/Snitch/inc/macros.h | 9 + TargetLibraries/Snitch/src/Add_fp32.c | 102 +++++++ TargetLibraries/Snitch/src/CycleCounter.c | 19 +- TargetLibraries/Snitch/src/Div_fp32.c | 89 ++++++ TargetLibraries/Snitch/src/Gemm_fp32.c | 199 +------------ TargetLibraries/Snitch/src/HardSwish.c | 46 +++ TargetLibraries/Snitch/src/Mul_fp32.c | 86 ++++++ TargetLibraries/Snitch/src/RMSNrom_fp32.c | 50 ++++ 45 files changed, 1643 insertions(+), 224 deletions(-) create mode 100644 Deeploy/Targets/Snitch/Templates/FloatAddTemplate.py create mode 100644 Deeploy/Targets/Snitch/Templates/FloatDivTemplate.py create mode 100644 Deeploy/Targets/Snitch/Templates/FloatHardSwishTemplate.py create mode 100644 Deeploy/Targets/Snitch/Templates/FloatMatMulTemplate.py create mode 100644 Deeploy/Targets/Snitch/Templates/FloatMulTemplate.py create mode 100644 Deeploy/Targets/Snitch/Templates/FloatRMSNormTemplate.py create mode 100644 Deeploy/Targets/Snitch/Templates/GatherTemplate.py create mode 100644 Deeploy/Targets/Snitch/Templates/MatMulTemplate.py create mode 100644 Deeploy/Targets/Snitch/Templates/ReshapeTemplate.py create mode 100644 Deeploy/Targets/Snitch/Templates/TransposeTemplate.py create mode 100644 DeeployTest/Tests/Kernels/FP32/Hardswish/inputs.npz create mode 100644 DeeployTest/Tests/Kernels/FP32/Hardswish/network.onnx create mode 100644 DeeployTest/Tests/Kernels/FP32/Hardswish/outputs.npz create mode 100644 DeeployTest/Tests/Kernels/FP32/RMSNorm_fused/inputs.npz create mode 100644 DeeployTest/Tests/Kernels/FP32/RMSNorm_fused/network.onnx create mode 100644 DeeployTest/Tests/Kernels/FP32/RMSNorm_fused/outputs.npz create mode 100644 DeeployTest/Tests/Models/microLlama/microLlama_fp32_1/activations.npz create mode 100644 DeeployTest/Tests/Models/microLlama/microLlama_fp32_1/inputs.npz create mode 100644 DeeployTest/Tests/Models/microLlama/microLlama_fp32_1/network.onnx create mode 100644 DeeployTest/Tests/Models/microLlama/microLlama_fp32_1/outputs.npz create mode 100644 TargetLibraries/Snitch/inc/kernel/Add.h create mode 100644 TargetLibraries/Snitch/inc/kernel/Div.h create mode 100644 TargetLibraries/Snitch/inc/kernel/HardSwish.h create mode 100644 TargetLibraries/Snitch/inc/kernel/Mul.h create mode 100644 TargetLibraries/Snitch/inc/kernel/RMSNrom.h create mode 100644 TargetLibraries/Snitch/src/Add_fp32.c create mode 100644 TargetLibraries/Snitch/src/Div_fp32.c create mode 100644 TargetLibraries/Snitch/src/HardSwish.c create mode 100644 TargetLibraries/Snitch/src/Mul_fp32.c create mode 100644 TargetLibraries/Snitch/src/RMSNrom_fp32.c diff --git a/Deeploy/Targets/Generic/Bindings.py b/Deeploy/Targets/Generic/Bindings.py index 308b179aef..c40c812048 100644 --- a/Deeploy/Targets/Generic/Bindings.py +++ b/Deeploy/Targets/Generic/Bindings.py @@ -286,6 +286,9 @@ BasicConcatBindings = [ NodeBinding(ConcatChecker([PointerClass(type), PointerClass(type)], [PointerClass(type)]), ConcatTemplate.referenceTemplate, BasicTransformer) for type in IntegerDataTypes +] + [ + NodeBinding(ConcatChecker([PointerClass(float32_t), PointerClass(float32_t)], [PointerClass(float32_t)]), + ConcatTemplate.referenceTemplate, BasicTransformer) ] BasicQuantBindings = [ diff --git a/Deeploy/Targets/Generic/Layers.py b/Deeploy/Targets/Generic/Layers.py index cc733937cc..26dd5746c9 100644 --- a/Deeploy/Targets/Generic/Layers.py +++ b/Deeploy/Targets/Generic/Layers.py @@ -709,3 +709,31 @@ def computeOps(self): numPx = opRep['dim_im_out_x'] return numPx * opsPerPx + + +class RMSNormLayer(ONNXLayer): + + def __init__(self, maps: List[NodeMapper]): + super().__init__(maps) + + def computeOps(self): + # RMSNorm: square, mean, sqrt, div, mul + size = self.mapper.parser.operatorRepresentation['size'] + lastDimLength = self.mapper.parser.operatorRepresentation['lastDimLength'] + batch_size = size // lastDimLength + + # square + sum + mean + eps + sqrt + div + mul + ops = size + batch_size * lastDimLength + batch_size * 4 + size * 2 + return ops + + +class HardSwishLayer(ONNXLayer): + + def __init__(self, maps: List[NodeMapper]): + super().__init__(maps) + + def computeOps(self): + # HardSwish(x) = x * clip(x/6 + 0.5, 0, 1) + # Operations: div + add + clip + mul + size = self.mapper.parser.operatorRepresentation['size'] + return size * 4 diff --git a/Deeploy/Targets/Generic/Parsers.py b/Deeploy/Targets/Generic/Parsers.py index ad787d9e4b..b140e08f48 100644 --- a/Deeploy/Targets/Generic/Parsers.py +++ b/Deeploy/Targets/Generic/Parsers.py @@ -471,23 +471,62 @@ def __init__(self): super().__init__() def parseNode(self, node: gs.Node) -> bool: - ret = all([len(node.inputs) == 2, len(node.outputs) == 1]) - return ret def parseNodeCtxt(self, ctxt: NetworkContext, node: gs.Node, channels_first: bool = True) -> Tuple[NetworkContext, bool]: - data_in_1 = ctxt.lookup(node.inputs[0].name) data_in_2 = ctxt.lookup(node.inputs[1].name) data_out = ctxt.lookup(node.outputs[0].name) + self.operatorRepresentation['data_in_1'] = data_in_1.name self.operatorRepresentation['data_in_2'] = data_in_2.name self.operatorRepresentation['data_out'] = data_out.name - self.operatorRepresentation['size'] = np.prod(data_in_1.shape) + self.operatorRepresentation['size'] = np.prod(data_out.shape) + + # Check if broadcasting is needed + shape1 = list(data_in_1.shape) + shape2 = list(data_in_2.shape) + out_shape = list(data_out.shape) + + need_broadcast = (shape1 != out_shape) or (shape2 != out_shape) + self.operatorRepresentation['need_broadcast'] = need_broadcast + + if need_broadcast: + # Calculate strides for broadcasting + ndim = len(out_shape) + + # Compute strides for input 1 + strides1 = [1] * ndim + for i in range(ndim - 1, -1, -1): + if i < len(shape1) and shape1[i] == out_shape[i]: + if i == ndim - 1: + strides1[i] = 1 + else: + strides1[i] = strides1[i + 1] * shape1[i + 1] if ( + i + 1 < len(shape1) and shape1[i + 1] == out_shape[i + 1]) else strides1[i + 1] + else: + strides1[i] = 0 # Broadcast dimension + + # Compute strides for input 2 + strides2 = [1] * ndim + for i in range(ndim - 1, -1, -1): + if i < len(shape2) and shape2[i] == out_shape[i]: + if i == ndim - 1: + strides2[i] = 1 + else: + strides2[i] = strides2[i + 1] * shape2[i + 1] if ( + i + 1 < len(shape2) and shape2[i + 1] == out_shape[i + 1]) else strides2[i + 1] + else: + strides2[i] = 0 # Broadcast dimension + + self.operatorRepresentation['ndim'] = ndim + self.operatorRepresentation['strides1'] = strides1 + self.operatorRepresentation['strides2'] = strides2 + self.operatorRepresentation['out_shape'] = out_shape return ctxt, True diff --git a/Deeploy/Targets/Generic/TypeCheckers.py b/Deeploy/Targets/Generic/TypeCheckers.py index c2c8d436f8..6b3ff546b3 100644 --- a/Deeploy/Targets/Generic/TypeCheckers.py +++ b/Deeploy/Targets/Generic/TypeCheckers.py @@ -102,6 +102,20 @@ def _inferSignedness(self, inputs: List[VariableBuffer], return [False] +class FloatAddChecker(SignPropTypeChecker): + + def __init__(self, input_types: Sequence[Type[Pointer]], output_types: Sequence[Type[Pointer]]): + super().__init__(input_types, output_types) + + def _inferNumLevels(self, inputs: List[VariableBuffer], + operatorRepresentation: OperatorRepresentation) -> List[int]: + return [2**(self.input_types[0].referencedType.typeWidth)] + + def _inferSignedness(self, inputs: List[VariableBuffer], + operatorRepresentation: OperatorRepresentation) -> List[bool]: + return [True] + + class GatherChecker(SignPropTypeChecker): def __init__(self, input_types: Sequence[Type[Pointer]], output_types: Sequence[Type[Pointer]]): @@ -610,3 +624,40 @@ def _inferNumLevels(self, inputs: List[VariableBuffer], def _inferSignedness(self, inputs: List[VariableBuffer], operatorRepresentation: OperatorRepresentation) -> List[bool]: return [True] + + +class RMSNormChecker(SignPropTypeChecker): + + def __init__(self, input_types: Sequence[Type[Pointer]], output_types: Sequence[Type[Pointer]]): + super().__init__(input_types, output_types) + + def _inferNumLevels(self, inputs: List[VariableBuffer], + operatorRepresentation: OperatorRepresentation) -> List[int]: + # RMSNorm: square, mean, sqrt, reciprocal, multiply + # Output precision similar to input + return [2**(self.input_types[0].referencedType.typeWidth)] + + def _inferSignedness(self, inputs: List[VariableBuffer], + operatorRepresentation: OperatorRepresentation) -> List[bool]: + # RMSNorm output can be signed (depending on input signedness) + if inputs[0]._signed: + return [True] + else: + return [False] + + +class HardSwishChecker(SignPropTypeChecker): + + def __init__(self, input_types: Sequence[Type[Pointer]], output_types: Sequence[Type[Pointer]]): + super().__init__(input_types, output_types) + + def _inferNumLevels(self, inputs: List[VariableBuffer], + operatorRepresentation: OperatorRepresentation) -> List[int]: + return [2**(self.input_types[0].referencedType.typeWidth)] + + def _inferSignedness(self, inputs: List[VariableBuffer], + operatorRepresentation: OperatorRepresentation) -> List[bool]: + if inputs[0]._signed: + return [True] + else: + return [False] diff --git a/Deeploy/Targets/Snitch/Bindings.py b/Deeploy/Targets/Snitch/Bindings.py index 25b150b553..e442f63038 100644 --- a/Deeploy/Targets/Snitch/Bindings.py +++ b/Deeploy/Targets/Snitch/Bindings.py @@ -11,12 +11,20 @@ from Deeploy.CommonExtensions.DataTypes import float32_t, int8_t, int32_t, uint8_t from Deeploy.DeeployTypes import CodeTransformation, NodeBinding from Deeploy.FutureExtension.CodeTransformationPasses.FutureCodeTransformation import FutureGeneration -from Deeploy.Targets.Generic.Templates import iNoNormTemplate -from Deeploy.Targets.Generic.TypeCheckers import AddChecker, GEMMChecker, RQAddChecker, SoftmaxChecker, iNoNormChecker +from Deeploy.Targets.Generic.Templates import ConcatTemplate, iNoNormTemplate +from Deeploy.Targets.Generic.TypeCheckers import AddChecker, ConcatChecker, DivChecker, GatherChecker, GEMMChecker, \ + HardSwishChecker, MatMulChecker, MulChecker, ReshapeChecker, RMSNormChecker, RQAddChecker, SoftmaxChecker, \ + TransposeChecker, iNoNormChecker from Deeploy.Targets.Snitch.CodeTransformationPasses import SnitchClusterTiling, SnitchCoreFilterPass, \ SnitchSynchCoresPass from Deeploy.Targets.Snitch.DMA.SnitchDma import SnitchDma -from Deeploy.Targets.Snitch.Templates import AddTemplate, FloatGemmTemplate, RQAddTemplate, iSoftmaxTemplate +from Deeploy.Targets.Snitch.Templates import AddTemplate, FloatGemmTemplate, FloatMatMulTemplate, GatherTemplate, \ + MatMulTemplate, ReshapeTemplate, RQAddTemplate, TransposeTemplate, iSoftmaxTemplate +from Deeploy.Targets.Snitch.Templates.FloatAddTemplate import referenceTemplate as FloatAddTemplate +from Deeploy.Targets.Snitch.Templates.FloatDivTemplate import referenceTemplate as FloatDivTemplate +from Deeploy.Targets.Snitch.Templates.FloatHardSwishTemplate import referenceTemplate as FloatHardSwishTemplate +from Deeploy.Targets.Snitch.Templates.FloatMulTemplate import referenceTemplate as FloatMulTemplate +from Deeploy.Targets.Snitch.Templates.FloatRMSNormTemplate import referenceTemplate as FloatRMSNormTemplate from Deeploy.Targets.Snitch.Templates.FloatSoftmaxTemplate import FloatSoftmax_Template from Deeploy.Targets.Snitch.Templates.GemmTemplate import SnitchGemm_Template from Deeploy.Targets.Snitch.Templates.RqGemmTemplate import SnitchRqGemm_Template @@ -45,6 +53,7 @@ ArgumentStructGeneration(), MemoryManagementGeneration("L1"), MemoryAwareFunctionCallClosure(writeback = False, generateStruct = True), + MemoryManagementGeneration("L2"), MemoryManagementGeneration() ]) @@ -69,7 +78,18 @@ SnitchAddBindings = [ NodeBinding(AddChecker([PointerClass(_type), PointerClass(_type)], [PointerClass(int32_t)]), AddTemplate.referenceTemplate, TiledTransformer) for _type in [int8_t] +] + [ + # fp32 support + NodeBinding(AddChecker([PointerClass(float32_t), PointerClass(float32_t)], [PointerClass(float32_t)]), + FloatAddTemplate, TiledTransformer) +] + +# Basic (non-tiled) FP32 Add Bindings +BasicAddBindings = [ + NodeBinding(AddChecker([PointerClass(float32_t), PointerClass(float32_t)], [PointerClass(float32_t)]), + FloatAddTemplate, BasicTransformer) ] + SnitchGemmBindings = [ NodeBinding( GEMMChecker([PointerClass(int8_t), PointerClass(int8_t), @@ -90,3 +110,99 @@ PointerClass(int32_t) ], [PointerClass(int8_t)]), SnitchRqGemm_Template, TiledTransformer) ] + +# RMSNorm Bindings (Tiled) +SnitchRMSNormBindings = [ + NodeBinding(RMSNormChecker([PointerClass(float32_t), PointerClass(float32_t)], [PointerClass(float32_t)]), + FloatRMSNormTemplate, TiledTransformer) +] + +# RMSNorm Bindings (Non-tiled) +BasicRMSNormBindings = [ + NodeBinding(RMSNormChecker([PointerClass(float32_t), PointerClass(float32_t)], [PointerClass(float32_t)]), + FloatRMSNormTemplate, BasicTransformer) +] + +# HardSwish Bindings (Tiled) +SnitchHardSwishBindings = [ + NodeBinding(HardSwishChecker([PointerClass(float32_t)], [PointerClass(float32_t)]), FloatHardSwishTemplate, + TiledTransformer) +] + +# HardSwish Bindings (Non-tiled) +BasicHardSwishBindings = [ + NodeBinding(HardSwishChecker([PointerClass(float32_t)], [PointerClass(float32_t)]), FloatHardSwishTemplate, + BasicTransformer) +] + +# Div Bindings (Tiled) +SnitchDivBindings = [ + NodeBinding(DivChecker([PointerClass(float32_t), PointerClass(float32_t)], [PointerClass(float32_t)]), + FloatDivTemplate, TiledTransformer) +] + +# Div Bindings (Non-tiled) +BasicDivBindings = [ + NodeBinding(DivChecker([PointerClass(float32_t), PointerClass(float32_t)], [PointerClass(float32_t)]), + FloatDivTemplate, BasicTransformer) +] + +# Mul Bindings (Tiled) +SnitchMulBindings = [ + NodeBinding(MulChecker([PointerClass(float32_t), PointerClass(float32_t)], [PointerClass(float32_t)]), + FloatMulTemplate, TiledTransformer) +] + +# Mul Bindings (Non-tiled) +BasicMulBindings = [ + NodeBinding(MulChecker([PointerClass(float32_t), PointerClass(float32_t)], [PointerClass(float32_t)]), + FloatMulTemplate, BasicTransformer) +] + +# MatMul Bindings (Tiled) +SnitchMatMulBindings = [ + NodeBinding(MatMulChecker([PointerClass(int8_t), PointerClass(int8_t)], [PointerClass(int32_t)]), + MatMulTemplate.referenceTemplate, TiledTransformer), + NodeBinding(MatMulChecker([PointerClass(float32_t), PointerClass(float32_t)], [PointerClass(float32_t)]), + FloatMatMulTemplate.referenceTemplate, TiledTransformer) +] + +# Concat Bindings (Tiled) +SnitchConcatBindings = [ + NodeBinding(ConcatChecker([PointerClass(int8_t), PointerClass(int8_t)], [PointerClass(int8_t)]), + ConcatTemplate.referenceTemplate, TiledTransformer), + NodeBinding(ConcatChecker([PointerClass(int32_t), PointerClass(int32_t)], [PointerClass(int32_t)]), + ConcatTemplate.referenceTemplate, TiledTransformer), + NodeBinding(ConcatChecker([PointerClass(float32_t), PointerClass(float32_t)], [PointerClass(float32_t)]), + ConcatTemplate.referenceTemplate, TiledTransformer) +] + +# Transpose Bindings (Tiled) +SnitchTransposeBindings = [ + NodeBinding(TransposeChecker([PointerClass(int8_t)], [PointerClass(int8_t)]), TransposeTemplate.referenceTemplate, + TiledTransformer), + NodeBinding(TransposeChecker([PointerClass(int32_t)], [PointerClass(int32_t)]), TransposeTemplate.referenceTemplate, + TiledTransformer), + NodeBinding(TransposeChecker([PointerClass(float32_t)], [PointerClass(float32_t)]), + TransposeTemplate.referenceTemplate, TiledTransformer) +] + +# Reshape Bindings (Tiled) +SnitchReshapeBindings = [ + NodeBinding(ReshapeChecker([PointerClass(int8_t)], [PointerClass(int8_t)]), ReshapeTemplate.referenceTemplate, + TiledTransformer), + NodeBinding(ReshapeChecker([PointerClass(int32_t)], [PointerClass(int32_t)]), ReshapeTemplate.referenceTemplate, + TiledTransformer), + NodeBinding(ReshapeChecker([PointerClass(float32_t)], [PointerClass(float32_t)]), ReshapeTemplate.referenceTemplate, + TiledTransformer) +] + +# Gather Bindings (Tiled) +SnitchGatherBindings = [ + NodeBinding(GatherChecker([PointerClass(int8_t), PointerClass(int32_t)], [PointerClass(int8_t)]), + GatherTemplate.referenceTemplate, TiledTransformer), + NodeBinding(GatherChecker([PointerClass(int32_t), PointerClass(int32_t)], [PointerClass(int32_t)]), + GatherTemplate.referenceTemplate, TiledTransformer), + NodeBinding(GatherChecker([PointerClass(float32_t), PointerClass(int32_t)], [PointerClass(float32_t)]), + GatherTemplate.referenceTemplate, TiledTransformer) +] diff --git a/Deeploy/Targets/Snitch/Parsers.py b/Deeploy/Targets/Snitch/Parsers.py index 0051994686..6976d8d356 100644 --- a/Deeploy/Targets/Snitch/Parsers.py +++ b/Deeploy/Targets/Snitch/Parsers.py @@ -4,10 +4,11 @@ from typing import Tuple +import numpy as np import onnx_graphsurgeon as gs -from Deeploy.DeeployTypes import NetworkContext -from Deeploy.Targets.Generic.Parsers import GEMMParser, RQGEMMParser +from Deeploy.DeeployTypes import NetworkContext, NodeParser +from Deeploy.Targets.Generic.Parsers import AddParser, DivParser, GEMMParser, MulParser, RQGEMMParser class SnitchGEMMParser(GEMMParser): @@ -72,3 +73,262 @@ def parseNodeCtxt(self, return ctxt, False return newCtxt, True + + +class SnitchRMSNormParser(NodeParser): + + def __init__(self): + super().__init__() + + def parseNode(self, node: gs.Node) -> bool: + if node.op != 'RMSNorm': + return False + if len(node.inputs) != 2 or len(node.outputs) != 1: + return False + eps = node.attrs.get('eps', node.attrs.get('epsilon', 1e-6)) + self.operatorRepresentation['eps'] = f"{float(eps):.10e}f" + return True + + def parseNodeCtxt(self, + ctxt: NetworkContext, + node: gs.Node, + channels_first: bool = True) -> Tuple[NetworkContext, bool]: + data_in = ctxt.lookup(node.inputs[0].name) + weight = ctxt.lookup(node.inputs[1].name) + data_out = ctxt.lookup(node.outputs[0].name) + + self.operatorRepresentation['data_in'] = data_in.name + self.operatorRepresentation['weight'] = weight.name + self.operatorRepresentation['data_out'] = data_out.name + self.operatorRepresentation['input_shape'] = list(data_in.shape) + self.operatorRepresentation['weight_shape'] = list(weight.shape) + self.operatorRepresentation['output_shape'] = list(data_out.shape) + self.operatorRepresentation['size'] = int(np.prod(data_in.shape)) + self.operatorRepresentation['lastDimLength'] = int(data_in.shape[-1]) + self.operatorRepresentation['input_ndim'] = len(data_in.shape) + self.operatorRepresentation['weight_ndim'] = len(weight.shape) + + return ctxt, True + + +class HardSwishParser(NodeParser): + + def __init__(self): + super().__init__() + + def parseNode(self, node: gs.Node) -> bool: + """Parse HardSwish node.""" + + if node.op != 'HardSwish': + return False + + # Check basic structure: 1 input and 1 output + if len(node.inputs) != 1 or len(node.outputs) != 1: + return False + + return True + + def parseNodeCtxt(self, + ctxt: NetworkContext, + node: gs.Node, + channels_first: bool = True) -> Tuple[NetworkContext, bool]: + """Parse HardSwish node with network context.""" + + # Get input and output buffers + data_in = ctxt.lookup(node.inputs[0].name) + data_out = ctxt.lookup(node.outputs[0].name) + + # Store buffer names + self.operatorRepresentation['data_in'] = data_in.name + self.operatorRepresentation['data_out'] = data_out.name + + # Calculate size for memory allocation + self.operatorRepresentation['size'] = int(np.prod(data_in.shape)) + + return ctxt, True + + +class SnitchAddParser(AddParser): + """ + Inherits from GenericAddParser and adds support for Broadcasting. + + Compatibility: + - No broadcasting: Uses the Add_fp32() fast path. + - With broadcasting: Uses the Add_fp32_broadcast() generic version. + """ + + def __init__(self): + super().__init__() + + def parseNodeCtxt(self, + ctxt: NetworkContext, + node: gs.Node, + channels_first: bool = True) -> Tuple[NetworkContext, bool]: + # Call parent method to retrieve basic information + ctxt, ret = super().parseNodeCtxt(ctxt, node, channels_first) + if not ret: + return ctxt, False + + # Retrieve shape information + data_in_1 = ctxt.lookup(node.inputs[0].name) + data_in_2 = ctxt.lookup(node.inputs[1].name) + data_out = ctxt.lookup(node.outputs[0].name) + + shape1 = list(data_in_1.shape) + shape2 = list(data_in_2.shape) + out_shape = list(data_out.shape) + + # Correct 'size' to match the output shape (after broadcasting) + self.operatorRepresentation['size'] = int(np.prod(out_shape)) + + # Broadcasting information + self.operatorRepresentation['shape1'] = shape1 + self.operatorRepresentation['shape2'] = shape2 + self.operatorRepresentation['out_shape'] = out_shape + self.operatorRepresentation['ndim'] = len(out_shape) + + # Determine if broadcasting is needed + need_broadcast = (shape1 != shape2) + self.operatorRepresentation['need_broadcast'] = need_broadcast + + if need_broadcast: + strides1, strides2 = self._compute_broadcast_strides(shape1, shape2, out_shape) + self.operatorRepresentation['strides1'] = strides1 + self.operatorRepresentation['strides2'] = strides2 + + return ctxt, True + + def _compute_broadcast_strides(self, shape1, shape2, out_shape): + """ + Calculates strides after broadcasting (following ONNX/NumPy rules). + + Principles: + - Align dimensions from right to left. + - When a dimension is 1, set stride to 0 to achieve the broadcasting effect. + + Example: + shape1=[8,8,8], shape2=[8] + → pad2=[1,1,8] + → strides1=[64,8,1], strides2=[0,0,1] + """ + ndim = len(out_shape) + + # Right-align and pad to the same number of dimensions + pad1 = [1] * (ndim - len(shape1)) + shape1 + pad2 = [1] * (ndim - len(shape2)) + shape2 + + def calc_strides(padded_shape, out_shape): + strides = [] + stride = 1 + for i in range(ndim - 1, -1, -1): + if padded_shape[i] == 1 and out_shape[i] > 1: + strides.insert(0, 0) # Broadcast dimension stride=0 + else: + strides.insert(0, stride) + + # Update stride multiplier only if the current dimension is essentially used (size > 1) + stride *= padded_shape[i] if padded_shape[i] > 1 else 1 + return strides + + strides1 = calc_strides(pad1, out_shape) + strides2 = calc_strides(pad2, out_shape) + + return strides1, strides2 + + +class SnitchDivParser(DivParser): + """ + Snitch-specific Div Parser. + Inherits from Generic DivParser and adds shape/broadcasting information. + """ + + def __init__(self): + super().__init__() + + def parseNodeCtxt(self, + ctxt: NetworkContext, + node: gs.Node, + channels_first: bool = True) -> Tuple[NetworkContext, bool]: + """ + Extend Generic parser to add shape and broadcasting information. + """ + # Call parent method first + ctxt, ret = super().parseNodeCtxt(ctxt, node, channels_first) + + if not ret: + return ctxt, False + + # Get shape information + data_in_1 = ctxt.lookup(node.inputs[0].name) + data_in_2 = ctxt.lookup(node.inputs[1].name) + data_out = ctxt.lookup(node.outputs[0].name) + + shape1 = list(data_in_1.shape) + shape2 = list(data_in_2.shape) + out_shape = list(data_out.shape) + + # Store shape information + self.operatorRepresentation['shape1'] = shape1 + self.operatorRepresentation['shape2'] = shape2 + self.operatorRepresentation['out_shape'] = out_shape + + # Calculate sizes + self.operatorRepresentation['size1'] = int(np.prod(shape1)) + self.operatorRepresentation['size2'] = int(np.prod(shape2)) + + # Update output size (may differ due to broadcasting) + self.operatorRepresentation['size'] = int(np.prod(out_shape)) + + # Check if scalar broadcasting (input2 is scalar) + self.operatorRepresentation['is_scalar'] = (self.operatorRepresentation['size2'] == 1) + + return ctxt, True + + +class SnitchMulParser(MulParser): + """ + Snitch-specific Mul Parser. + Inherits from Generic MulParser and adds shape/broadcasting information. + """ + + def __init__(self): + super().__init__() + + def parseNodeCtxt(self, + ctxt: NetworkContext, + node: gs.Node, + channels_first: bool = True) -> Tuple[NetworkContext, bool]: + """ + Extend Generic parser to add shape and broadcasting information. + """ + # Call parent method first + ctxt, ret = super().parseNodeCtxt(ctxt, node, channels_first) + + if not ret: + return ctxt, False + + # Get shape information + data_in_1 = ctxt.lookup(node.inputs[0].name) + data_in_2 = ctxt.lookup(node.inputs[1].name) + data_out = ctxt.lookup(node.outputs[0].name) + + shape1 = list(data_in_1.shape) + shape2 = list(data_in_2.shape) + out_shape = list(data_out.shape) + + # Store shape information + self.operatorRepresentation['shape1'] = shape1 + self.operatorRepresentation['shape2'] = shape2 + self.operatorRepresentation['out_shape'] = out_shape + + # Calculate sizes + self.operatorRepresentation['size1'] = int(np.prod(shape1)) + self.operatorRepresentation['size2'] = int(np.prod(shape2)) + + # Update output size (may differ due to broadcasting) + self.operatorRepresentation['size'] = int(np.prod(out_shape)) + + # Check if scalar broadcasting (input2 is scalar) + self.operatorRepresentation['is_scalar'] = (self.operatorRepresentation['size2'] == 1) + + return ctxt, True diff --git a/Deeploy/Targets/Snitch/Platform.py b/Deeploy/Targets/Snitch/Platform.py index d62d1c3802..32bf53190f 100644 --- a/Deeploy/Targets/Snitch/Platform.py +++ b/Deeploy/Targets/Snitch/Platform.py @@ -2,46 +2,69 @@ # # SPDX-License-Identifier: Apache-2.0 -from typing import List +from typing import List, Type import numpy as np +from Deeploy.AbstractDataTypes import Pointer, PointerClass, VoidType from Deeploy.DeeployTypes import ConstantBuffer, DeploymentEngine, DeploymentPlatform, NodeMapper, NodeTemplate, \ StructBuffer, TopologyOptimizer, TransientBuffer, VariableBuffer -from Deeploy.Targets.Generic.Bindings import BasicGatherBindings, BasicLayerNormBindings, BasicMatMulBindings, \ - BasicPad1DBindings, BasicPad2DBindings, BasicReshapeBindings, BasicRQIntegerDivBinding -from Deeploy.Targets.Generic.Layers import AddLayer, GatherLayer, GEMMLayer, LayerNormLayer, MatMulLayer, PadLayer, \ - ReshapeLayer, RQGEMMLayer, RQIntegerDivLayer, SoftmaxLayer, iNoNormLayer -from Deeploy.Targets.Generic.Parsers import AddParser, GatherParser, MatMulParser, Pad1DParser, Pad2DParser, \ - RQAddParser, RQIntegerDivParser, SoftmaxParser, UnsqueezeParser, iLayerNormParser, iNoNormParser, iSoftmaxParser +from Deeploy.Targets.Generic.Bindings import BasicConcatBindings, BasicGatherBindings, BasicLayerNormBindings, \ + BasicMatMulBindings, BasicPad1DBindings, BasicPad2DBindings, BasicReshapeBindings, BasicRQIntegerDivBinding, \ + BasicTransposeBindings +from Deeploy.Targets.Generic.Layers import AddLayer, ConcatLayer, DivLayer, GatherLayer, GEMMLayer, HardSwishLayer, \ + LayerNormLayer, MatMulLayer, MulLayer, PadLayer, ReshapeLayer, RMSNormLayer, RQGEMMLayer, RQIntegerDivLayer, \ + SoftmaxLayer, TransposeLayer, iNoNormLayer +from Deeploy.Targets.Generic.Parsers import AddParser, ConcatParser, GatherParser, MatMulParser, Pad1DParser, Pad2DParser, \ + ReshapeParser, RQAddParser, RQIntegerDivParser, SoftmaxParser, TransposeParser, UnsqueezeParser, iLayerNormParser, \ + iNoNormParser, iSoftmaxParser from Deeploy.Targets.Generic.Templates import AllocateTemplate as BasicAllocateTemplate from Deeploy.Targets.Generic.TopologyOptimizationPasses.Passes import AddRequantMergePass, GEMMRequantMergePass, \ IntegerDivRequantMergePass, MergeConstAddAndRequantPass, MergeTrueIntegerDivRequantShiftPass, RQSSplitPass, \ SkipEmptyConcatPass, SkipUnityRequantPass, iGELURequantMergePass, iHardswishRequantMergePass from Deeploy.Targets.PULPOpen.Platform import RQAddMapper -from Deeploy.Targets.Snitch.Parsers import SnitchGEMMParser, SnitchRQGEMMParser +from Deeploy.Targets.Snitch.Bindings import BasicDivBindings, BasicHardSwishBindings, BasicMulBindings, \ + BasicRMSNormBindings, SnitchAddBindings, SnitchGemmBindings, SnitchiNoNormBindings, SnitchiSoftmaxBindings, \ + SnitchRQAddBindings, SnitchRqGemmBindings +from Deeploy.Targets.Snitch.Parsers import HardSwishParser, SnitchDivParser, SnitchGEMMParser, SnitchMulParser, \ + SnitchRMSNormParser, SnitchRQGEMMParser from Deeploy.Targets.Snitch.Templates import AllocateTemplate, FreeTemplate -from Deeploy.Targets.Snitch.Tiler import SnitchAddTileReadyBindings, SnitchGemmTilingReadyBindings, \ - SnitchiNoNormTilingReadyBindings, SnitchiSoftmaxTilingReadyBindings, SnitchRQAddTilingReadyBindings, \ - SnitchRqGemmTilingReadyBindings +# ============================================================================= +# Mappers for UNTILED mode (using BasicBindings with BasicTransformer) +# These are used by generateNetwork.py (testRunner_snitch.py) +# ============================================================================= GatherMapper = NodeMapper(GatherParser(), BasicGatherBindings) Pad1DMapper = NodeMapper(Pad1DParser(), BasicPad1DBindings) Pad2DMapper = NodeMapper(Pad2DParser(), BasicPad2DBindings) UnsqueezeMapper = NodeMapper(UnsqueezeParser(), BasicReshapeBindings) +ReshapeMapper = NodeMapper(ReshapeParser(), BasicReshapeBindings) +TransposeMapper = NodeMapper(TransposeParser(), BasicTransposeBindings) +ConcatMapper = NodeMapper(ConcatParser(), BasicConcatBindings) RQIntegerDivMapper = NodeMapper(RQIntegerDivParser(), [BasicRQIntegerDivBinding]) -MatMulMapper = NodeMapper(MatMulParser(), BasicMatMulBindings) -GemmMapper = NodeMapper(SnitchGEMMParser(), SnitchGemmTilingReadyBindings) -RqGemmMapper = NodeMapper(SnitchRQGEMMParser(), SnitchRqGemmTilingReadyBindings) -iSoftmaxMapper = NodeMapper(iSoftmaxParser(), SnitchiSoftmaxTilingReadyBindings) -SoftmaxMapper = NodeMapper(SoftmaxParser(), SnitchiSoftmaxTilingReadyBindings) -iNoNormMapper = NodeMapper(iNoNormParser(), SnitchiNoNormTilingReadyBindings) +# These use TiledTransformer but work in both modes (original upstream behavior) +GemmMapper = NodeMapper(SnitchGEMMParser(), SnitchGemmBindings) +RqGemmMapper = NodeMapper(SnitchRQGEMMParser(), SnitchRqGemmBindings) +iSoftmaxMapper = NodeMapper(iSoftmaxParser(), SnitchiSoftmaxBindings) +SoftmaxMapper = NodeMapper(SoftmaxParser(), SnitchiSoftmaxBindings) +iNoNormMapper = NodeMapper(iNoNormParser(), SnitchiNoNormBindings) iLayerNormMapper = NodeMapper(iLayerNormParser(), BasicLayerNormBindings) -RQAddMapper = NodeMapper(RQAddParser(), SnitchRQAddTilingReadyBindings) -AddMapper = NodeMapper(AddParser(), SnitchAddTileReadyBindings) +RQAddMapper = NodeMapper(RQAddParser(), SnitchRQAddBindings) +AddMapper = NodeMapper(AddParser(), SnitchAddBindings) + +# New operators for microLlama - using BasicBindings for untiled mode +RMSNormMapper = NodeMapper(SnitchRMSNormParser(), BasicRMSNormBindings) +HardSwishMapper = NodeMapper(HardSwishParser(), BasicHardSwishBindings) +MatMulMapper = NodeMapper(MatMulParser(), BasicMatMulBindings) +DivMapper = NodeMapper(SnitchDivParser(), BasicDivBindings) +MulMapper = NodeMapper(SnitchMulParser(), BasicMulBindings) +# ============================================================================= +# SnitchMapping - for UNTILED mode (generateNetwork.py) +# Uses BasicBindings for new operators, TiledTransformer bindings for original ops +# ============================================================================= SnitchMapping = { 'RQIntegerDiv': RQIntegerDivLayer([RQIntegerDivMapper]), 'Gather': GatherLayer([GatherMapper]), @@ -56,6 +79,72 @@ 'iLayerNorm': LayerNormLayer([iLayerNormMapper]), 'RequantizedAdd': AddLayer([RQAddMapper]), 'Add': AddLayer([AddMapper]), + 'RMSNorm': RMSNormLayer([RMSNormMapper]), + 'HardSwish': HardSwishLayer([HardSwishMapper]), + 'Div': DivLayer([DivMapper]), + 'Mul': MulLayer([MulMapper]), + 'Reshape': ReshapeLayer([ReshapeMapper]), + 'Transpose': TransposeLayer([TransposeMapper]), + 'Concat': ConcatLayer([ConcatMapper]), +} + +# ============================================================================= +# Import TilingReadyBindings for TILED mode (testMVP.py) +# These will be used by TilerDeployerWrapper +# ============================================================================= +from Deeploy.Targets.Snitch.Tiler import SnitchAddTileReadyBindings, SnitchConcatTilingReadyBindings, \ + SnitchDivTilingReadyBindings, SnitchGatherTilingReadyBindings, SnitchGemmTilingReadyBindings, \ + SnitchHardSwishTilingReadyBindings, SnitchiNoNormTilingReadyBindings, SnitchiSoftmaxTilingReadyBindings, \ + SnitchMatMulTilingReadyBindings, SnitchMulTilingReadyBindings, SnitchReshapeTilingReadyBindings, \ + SnitchRMSNormTilingReadyBindings, SnitchRQAddTilingReadyBindings, SnitchRqGemmTilingReadyBindings, \ + SnitchTransposeTilingReadyBindings + +# ============================================================================= +# Tiled Mappers - for TILED mode (testMVP.py via TilerDeployerWrapper) +# ============================================================================= +TiledGatherMapper = NodeMapper(GatherParser(), SnitchGatherTilingReadyBindings) +TiledUnsqueezeMapper = NodeMapper(UnsqueezeParser(), SnitchReshapeTilingReadyBindings) +TiledReshapeMapper = NodeMapper(ReshapeParser(), SnitchReshapeTilingReadyBindings) +TiledTransposeMapper = NodeMapper(TransposeParser(), SnitchTransposeTilingReadyBindings) +TiledConcatMapper = NodeMapper(ConcatParser(), SnitchConcatTilingReadyBindings) +TiledMatMulMapper = NodeMapper(MatMulParser(), SnitchMatMulTilingReadyBindings) +TiledRMSNormMapper = NodeMapper(SnitchRMSNormParser(), SnitchRMSNormTilingReadyBindings) +TiledHardSwishMapper = NodeMapper(HardSwishParser(), SnitchHardSwishTilingReadyBindings) +TiledDivMapper = NodeMapper(SnitchDivParser(), SnitchDivTilingReadyBindings) +TiledMulMapper = NodeMapper(SnitchMulParser(), SnitchMulTilingReadyBindings) +TiledGemmMapper = NodeMapper(SnitchGEMMParser(), SnitchGemmTilingReadyBindings) +TiledRqGemmMapper = NodeMapper(SnitchRQGEMMParser(), SnitchRqGemmTilingReadyBindings) +TilediSoftmaxMapper = NodeMapper(iSoftmaxParser(), SnitchiSoftmaxTilingReadyBindings) +TiledSoftmaxMapper = NodeMapper(SoftmaxParser(), SnitchiSoftmaxTilingReadyBindings) +TilediNoNormMapper = NodeMapper(iNoNormParser(), SnitchiNoNormTilingReadyBindings) +TiledRQAddMapper = NodeMapper(RQAddParser(), SnitchRQAddTilingReadyBindings) +TiledAddMapper = NodeMapper(AddParser(), SnitchAddTileReadyBindings) + +# ============================================================================= +# SnitchTiledMapping - for TILED mode (testMVP.py) +# Uses TilingReadyBindings for all operators +# ============================================================================= +SnitchTiledMapping = { + 'RQIntegerDiv': RQIntegerDivLayer([RQIntegerDivMapper]), + 'Gather': GatherLayer([TiledGatherMapper]), + 'Pad': PadLayer([Pad1DMapper, Pad2DMapper]), + 'Unsqueeze': ReshapeLayer([TiledUnsqueezeMapper]), + 'MatMul': MatMulLayer([TiledMatMulMapper]), + 'Gemm': GEMMLayer([TiledGemmMapper]), + 'RQGemm': RQGEMMLayer([TiledRqGemmMapper]), + 'iSoftmax': SoftmaxLayer([TilediSoftmaxMapper]), + 'Softmax': SoftmaxLayer([TiledSoftmaxMapper]), + 'iNoNorm': iNoNormLayer([TilediNoNormMapper]), + 'iLayerNorm': LayerNormLayer([iLayerNormMapper]), + 'RequantizedAdd': AddLayer([TiledRQAddMapper]), + 'Add': AddLayer([TiledAddMapper]), + 'RMSNorm': RMSNormLayer([TiledRMSNormMapper]), + 'HardSwish': HardSwishLayer([TiledHardSwishMapper]), + 'Div': DivLayer([TiledDivMapper]), + 'Mul': MulLayer([TiledMulMapper]), + 'Reshape': ReshapeLayer([TiledReshapeMapper]), + 'Transpose': TransposeLayer([TiledTransposeMapper]), + 'Concat': ConcatLayer([TiledConcatMapper]), } @@ -105,6 +194,12 @@ class SnitchConstantBuffer(ConstantBuffer): allocTemplate = AllocateTemplate.snitchL2GlobalAllocateTemplate deallocTemplate = FreeTemplate.snitchL2GlobalTemplate + def __init__(self, name: str = '', shape = [1], values = [0]): + super().__init__(name, shape, values) + # Initialize _type with a default value to prevent AttributeError + # The actual type will be set later via annotateType + self._type: Type[Pointer] = PointerClass(VoidType) + def _bufferRepresentation(self): operatorRepresentation = super()._bufferRepresentation() @@ -163,3 +258,21 @@ def __init__(self, transientBuffer = SnitchTransientBuffer, includeList: List[str] = _includeList): super().__init__(engines, variableBuffer, constantBuffer, structBuffer, transientBuffer) + + +class SnitchTiledClusterEngine(DeploymentEngine): + + def __init__(self, name: str, Mapping = SnitchTiledMapping, initCode = "", includeList = _includeList) -> None: + super().__init__(name, Mapping, initCode, includeList) + + +class SnitchTiledPlatform(DeploymentPlatform): + + def __init__(self, + engines = [SnitchTiledClusterEngine("SnitchCluster")], + variableBuffer = SnitchVariableBuffer, + constantBuffer = SnitchConstantBuffer, + structBuffer = SnitchStructBuffer, + transientBuffer = SnitchTransientBuffer, + includeList: List[str] = _includeList): + super().__init__(engines, variableBuffer, constantBuffer, structBuffer, transientBuffer) diff --git a/Deeploy/Targets/Snitch/Templates/FloatAddTemplate.py b/Deeploy/Targets/Snitch/Templates/FloatAddTemplate.py new file mode 100644 index 0000000000..5c5675c58f --- /dev/null +++ b/Deeploy/Targets/Snitch/Templates/FloatAddTemplate.py @@ -0,0 +1,46 @@ +# SPDX-FileCopyrightText: 2026 ETH Zurich and University of Bologna +# +# SPDX-License-Identifier: Apache-2.0 +# Deeploy/Targets/Snitch/Templates/FloatAddTemplate.py + +from typing import Dict, List, Tuple + +from Deeploy.DeeployTypes import NetworkContext, NodeTemplate, OperatorRepresentation + + +class _FloatAddTemplate(NodeTemplate): + + def alignToContext(self, ctxt: NetworkContext, + operatorRepresentation: OperatorRepresentation) -> Tuple[NetworkContext, Dict, List[str]]: + # Always initialize these variables to avoid Mako errors + operatorRepresentation.setdefault('need_broadcast', False) + operatorRepresentation.setdefault('ndim', 0) + operatorRepresentation.setdefault('strides1_str', '{}') + operatorRepresentation.setdefault('strides2_str', '{}') + operatorRepresentation.setdefault('out_shape_str', '{}') + + # If broadcasting is required, generate the stride array strings + if operatorRepresentation['need_broadcast']: + strides1 = operatorRepresentation['strides1'] + strides2 = operatorRepresentation['strides2'] + out_shape = operatorRepresentation['out_shape'] + operatorRepresentation['strides1_str'] = '{' + ', '.join(map(str, strides1)) + '}' + operatorRepresentation['strides2_str'] = '{' + ', '.join(map(str, strides2)) + '}' + operatorRepresentation['out_shape_str'] = '{' + ', '.join(map(str, out_shape)) + '}' + + return ctxt, operatorRepresentation, [] + + +referenceTemplate = _FloatAddTemplate(""" +// Snitch FP32 Add (Name: ${nodeName}, Op: ${nodeOp}) +% if need_broadcast: +{ + uint32_t strides1[${ndim}] = ${strides1_str}; + uint32_t strides2[${ndim}] = ${strides2_str}; + uint32_t out_shape[${ndim}] = ${out_shape_str}; + Add_fp32_broadcast(${data_in_1}, ${data_in_2}, ${data_out}, out_shape, strides1, strides2, ${ndim}, ${size}); +} +% else: +Add_fp32(${data_in_1}, ${data_in_2}, ${data_out}, ${size}); +% endif +""") diff --git a/Deeploy/Targets/Snitch/Templates/FloatDivTemplate.py b/Deeploy/Targets/Snitch/Templates/FloatDivTemplate.py new file mode 100644 index 0000000000..ee35255e24 --- /dev/null +++ b/Deeploy/Targets/Snitch/Templates/FloatDivTemplate.py @@ -0,0 +1,49 @@ +# ~/Deeploy/Deeploy/Targets/Snitch/Templates/FloatDivTemplate.py + +# SPDX-FileCopyrightText: 2026 ETH Zurich and University of Bologna +# +# SPDX-License-Identifier: Apache-2.0 + +from typing import Dict, List, Tuple + +from Deeploy.DeeployTypes import NetworkContext, NodeTemplate, OperatorRepresentation + + +class FloatDivTemplate(NodeTemplate): + """Template for FP32 Div operation with dynamic template selection.""" + + def __init__(self, templateStr): + super().__init__(templateStr) + + def alignToContext(self, ctxt: NetworkContext, + operatorRepresentation: OperatorRepresentation) -> Tuple[NetworkContext, Dict, List[str]]: + + # Check if scalar broadcasting + is_scalar = operatorRepresentation.get('is_scalar', False) + + # Dynamically select template based on is_scalar flag + if is_scalar: + # Use scalar broadcasting version + self.templateStr = FloatDivScalarTemplateStr + else: + # Use element-wise version + self.templateStr = FloatDivTemplateStr + + return ctxt, operatorRepresentation, [] + + +# Template for element-wise division +FloatDivTemplateStr = r""" +Div_fp32(${input1}, ${input2}, ${output}, ${size}); +""" + +# Template for scalar broadcasting (optimized) +FloatDivScalarTemplateStr = r""" +{ + float32_t scalar = ${input2}[0]; + Div_fp32_scalar(${input1}, scalar, ${output}, ${size}); +} +""" + +# Create reference template with default (element-wise) +referenceTemplate = FloatDivTemplate(FloatDivTemplateStr) diff --git a/Deeploy/Targets/Snitch/Templates/FloatHardSwishTemplate.py b/Deeploy/Targets/Snitch/Templates/FloatHardSwishTemplate.py new file mode 100644 index 0000000000..1615282437 --- /dev/null +++ b/Deeploy/Targets/Snitch/Templates/FloatHardSwishTemplate.py @@ -0,0 +1,30 @@ +# SPDX-FileCopyrightText: 2026 ETH Zurich and University of Bologna +# +# SPDX-License-Identifier: Apache-2.0 + +from typing import Dict, List, Tuple + +import numpy as np + +from Deeploy.DeeployTypes import NetworkContext, NodeTemplate, OperatorRepresentation + + +class FloatHardSwishTemplate(NodeTemplate): + + def __init__(self, templateStr): + super().__init__(templateStr) + + def alignToContext(self, ctxt: NetworkContext, + operatorRepresentation: OperatorRepresentation) -> Tuple[NetworkContext, Dict, List[str]]: + + data_in = ctxt.lookup(operatorRepresentation["data_in"]) + operatorRepresentation["size"] = int(np.prod(data_in.shape)) + + return ctxt, operatorRepresentation, [] + + +FloatHardSwishTemplateStr = r""" +HardSwish_fp32(${data_in}, ${data_out}, ${size}); +""" + +referenceTemplate = FloatHardSwishTemplate(FloatHardSwishTemplateStr) diff --git a/Deeploy/Targets/Snitch/Templates/FloatMatMulTemplate.py b/Deeploy/Targets/Snitch/Templates/FloatMatMulTemplate.py new file mode 100644 index 0000000000..0cd0a649e1 --- /dev/null +++ b/Deeploy/Targets/Snitch/Templates/FloatMatMulTemplate.py @@ -0,0 +1,30 @@ +# SPDX-FileCopyrightText: 2024 ETH Zurich and University of Bologna +# +# SPDX-License-Identifier: Apache-2.0 + +from Deeploy.DeeployTypes import NodeTemplate + +# Use snrt_cluster_core_idx() == 0 instead of BEGIN_SINGLE_CORE macro to avoid core_id dependency +referenceTemplate = NodeTemplate(""" +// Matmul (Name: ${nodeName}, Op: ${nodeOp}) +if (snrt_cluster_core_idx() == 0) { + ${A_type.typeName} ref_${data_out}_${A} = ${A}; + ${B_type.typeName} ref_${data_out}_${B} = ${B}; + ${data_out_type.typeName} ref_${data_out}_${data_out} = ${data_out}; + + for(uint32_t i=0; i<${batch}; i++){ + MatMul_fp${A_type.referencedType.typeWidth}_fp${B_type.referencedType.typeWidth}_fp${data_out_type.referencedType.typeWidth}( + ref_${data_out}_${A}, + ref_${data_out}_${B}, + ref_${data_out}_${data_out}, + ${M}, + ${N}, + ${O} + ); + + ref_${data_out}_${A} += ${M} * ${N}; + ref_${data_out}_${B} += ${N} * ${O}; + ref_${data_out}_${data_out} += ${M} * ${O}; + } +} +""") diff --git a/Deeploy/Targets/Snitch/Templates/FloatMulTemplate.py b/Deeploy/Targets/Snitch/Templates/FloatMulTemplate.py new file mode 100644 index 0000000000..7a970e6411 --- /dev/null +++ b/Deeploy/Targets/Snitch/Templates/FloatMulTemplate.py @@ -0,0 +1,48 @@ +# SPDX-FileCopyrightText: 2026 ETH Zurich and University of Bologna +# +# SPDX-License-Identifier: Apache-2.0 + +from typing import Dict, List, Tuple + +from Deeploy.DeeployTypes import NetworkContext, NodeTemplate, OperatorRepresentation + + +class FloatMulTemplate(NodeTemplate): + """Template for FP32 Mul operation with dynamic template selection.""" + + def __init__(self, templateStr): + super().__init__(templateStr) + + def alignToContext(self, ctxt: NetworkContext, + operatorRepresentation: OperatorRepresentation) -> Tuple[NetworkContext, Dict, List[str]]: + + # Check if scalar broadcasting + is_scalar = operatorRepresentation.get('is_scalar', False) + + # Dynamically select template based on is_scalar flag + if is_scalar: + # Use scalar broadcasting version + self.templateStr = FloatMulScalarTemplateStr + else: + # Use element-wise version + self.templateStr = FloatMulTemplateStr + + return ctxt, operatorRepresentation, [] + + +# Template for element-wise multiplication +# Note: MulParser uses A, B, C for input1, input2, output respectively +FloatMulTemplateStr = r""" +Mul_fp32(${A}, ${B}, ${C}, ${size}); +""" + +# Template for scalar broadcasting (optimized) +FloatMulScalarTemplateStr = r""" +{ + float32_t scalar = ${B}[0]; + Mul_fp32_scalar(${A}, scalar, ${C}, ${size}); +} +""" + +# Create reference template with default (element-wise) +referenceTemplate = FloatMulTemplate(FloatMulTemplateStr) diff --git a/Deeploy/Targets/Snitch/Templates/FloatRMSNormTemplate.py b/Deeploy/Targets/Snitch/Templates/FloatRMSNormTemplate.py new file mode 100644 index 0000000000..8ae4d95e01 --- /dev/null +++ b/Deeploy/Targets/Snitch/Templates/FloatRMSNormTemplate.py @@ -0,0 +1,31 @@ +# SPDX-FileCopyrightText: 2026 ETH Zurich and University of Bologna +# +# SPDX-License-Identifier: Apache-2.0 + +from typing import Dict, List, Tuple + +import numpy as np + +from Deeploy.DeeployTypes import NetworkContext, NodeTemplate, OperatorRepresentation + + +class FloatRMSNormTemplate(NodeTemplate): + + def __init__(self, templateStr): + super().__init__(templateStr) + + def alignToContext(self, ctxt: NetworkContext, + operatorRepresentation: OperatorRepresentation) -> Tuple[NetworkContext, Dict, List[str]]: + + data_in = ctxt.lookup(operatorRepresentation["data_in"]) + operatorRepresentation["lastDimLength"] = data_in.shape[-1] + operatorRepresentation["size"] = int(np.prod(data_in.shape)) + + return ctxt, operatorRepresentation, [] + + +FloatRMSNormTemplateStr = r""" +RMSNorm_fp32(${data_in}, ${weight}, ${data_out}, ${size}, ${lastDimLength}, ${eps}); +""" + +referenceTemplate = FloatRMSNormTemplate(FloatRMSNormTemplateStr) diff --git a/Deeploy/Targets/Snitch/Templates/FloatSoftmaxTemplate.py b/Deeploy/Targets/Snitch/Templates/FloatSoftmaxTemplate.py index 216ff35b9a..a8f32b32e3 100644 --- a/Deeploy/Targets/Snitch/Templates/FloatSoftmaxTemplate.py +++ b/Deeploy/Targets/Snitch/Templates/FloatSoftmaxTemplate.py @@ -25,8 +25,8 @@ def alignToContext(self, ctxt: NetworkContext, FloatSoftmaxTemplateStr = r""" - uint32_t batch_size = ${size} / ${lastDimLength}; - uint32_t compute_num = 1; //snrt_cluster_compute_core_num(); + int32_t batch_size = ${size} / ${lastDimLength}; + int32_t compute_num = 1; //snrt_cluster_compute_core_num(); int32_t ldI = compute_num * ${input_samples}; int32_t batch_offset = ${seq_len} * ${input_samples}; diff --git a/Deeploy/Targets/Snitch/Templates/GatherTemplate.py b/Deeploy/Targets/Snitch/Templates/GatherTemplate.py new file mode 100644 index 0000000000..fa4f6a2a86 --- /dev/null +++ b/Deeploy/Targets/Snitch/Templates/GatherTemplate.py @@ -0,0 +1,18 @@ +# SPDX-FileCopyrightText: 2024 ETH Zurich and University of Bologna +# +# SPDX-License-Identifier: Apache-2.0 + +from Deeploy.DeeployTypes import NodeTemplate + +# Use snrt_cluster_core_idx() == 0 instead of BEGIN_SINGLE_CORE macro to avoid core_id dependency +referenceTemplate = NodeTemplate(""" +// Gather (Name: ${nodeName}, Op: ${nodeOp}) +<% +width = int(data_in_type.referencedType.typeWidth/8) +%> +if (snrt_cluster_core_idx() == 0) { +for (uint32_t i=0; i<${batch}; ++i) { + memcpy(${data_out} + i * ${axis_length}, ${data_in} + i * ${batch_length} + ${index} * ${axis_length}, ${axis_length} * ${width}); +} +} +""") diff --git a/Deeploy/Targets/Snitch/Templates/MatMulTemplate.py b/Deeploy/Targets/Snitch/Templates/MatMulTemplate.py new file mode 100644 index 0000000000..bce916ea60 --- /dev/null +++ b/Deeploy/Targets/Snitch/Templates/MatMulTemplate.py @@ -0,0 +1,58 @@ +# SPDX-FileCopyrightText: 2024 ETH Zurich and University of Bologna +# +# SPDX-License-Identifier: Apache-2.0 + +from typing import Dict, List, Tuple + +from Deeploy.DeeployTypes import NetworkContext, NodeTemplate, OperatorRepresentation + + +class _MatMulTemplate(NodeTemplate): + + def __init__(self, templateStr): + super().__init__(templateStr) + + def alignToContext(self, ctxt: NetworkContext, + operatorRepresentation: OperatorRepresentation) -> Tuple[NetworkContext, Dict, List[str]]: + + A = ctxt.lookup(operatorRepresentation['A']) + B = ctxt.lookup(operatorRepresentation['B']) + C = ctxt.lookup(operatorRepresentation['data_out']) + operatorRepresentation['A_offset'] = 0 + operatorRepresentation['B_offset'] = 0 + operatorRepresentation['C_offset'] = 0 + if hasattr(A, "_signed") and hasattr(A, "nLevels"): + operatorRepresentation['A_offset'] = (A._signed == 0) * int(A.nLevels / 2) + if hasattr(B, "_signed") and hasattr(B, "nLevels"): + operatorRepresentation['B_offset'] = (B._signed == 0) * int(B.nLevels / 2) + if hasattr(C, "_signed") and hasattr(C, "nLevels"): + operatorRepresentation['C_offset'] = -(C._signed == 0) * int(C.nLevels / 2) + + return ctxt, operatorRepresentation, [] + + +# Use snrt_cluster_core_idx() == 0 instead of BEGIN_SINGLE_CORE macro to avoid core_id dependency +referenceTemplate = _MatMulTemplate(""" +// MatMul (Name: ${nodeName}, Op: ${nodeOp}) +if (snrt_cluster_core_idx() == 0) { + ${A_type.typeName} ref_${data_out}_${A} = ${A}; + ${B_type.typeName} ref_${data_out}_${B} = ${B}; + ${data_out_type.typeName} ref_${data_out}_${data_out} = ${data_out}; + + for(uint32_t i=0;i<${batch};i++){ + MatMul_s${A_type.referencedType.typeWidth}_s${B_type.referencedType.typeWidth}_s${data_out_type.referencedType.typeWidth}( + ref_${data_out}_${A}, + ref_${data_out}_${B}, + ref_${data_out}_${data_out}, + ${M}, + ${N}, + ${O}, + ${A_offset}, ${B_offset}, ${C_offset} + ); + + ref_${data_out}_${A} += ${M} * ${N}; + ref_${data_out}_${B} += ${N} * ${O}; + ref_${data_out}_${data_out} += ${M} * ${O}; + } +} +""") diff --git a/Deeploy/Targets/Snitch/Templates/ReshapeTemplate.py b/Deeploy/Targets/Snitch/Templates/ReshapeTemplate.py new file mode 100644 index 0000000000..a99573b27b --- /dev/null +++ b/Deeploy/Targets/Snitch/Templates/ReshapeTemplate.py @@ -0,0 +1,44 @@ +# SPDX-FileCopyrightText: 2024 ETH Zurich and University of Bologna +# +# SPDX-License-Identifier: Apache-2.0 + +from typing import Dict, List, Tuple + +from Deeploy.DeeployTypes import NetworkContext, NodeTemplate, OperatorRepresentation, VariableBuffer + + +class _SnitchReshapeTemplate(NodeTemplate): + + def __init__(self, templateStr): + super().__init__(templateStr) + + def alignToContext(self, ctxt: NetworkContext, + operatorRepresentation: OperatorRepresentation) -> Tuple[NetworkContext, Dict, List[str]]: + + # SCHEREMO: Selectively mark 'indices' dead, since we don't need them + if 'indices' in operatorRepresentation.keys(): + ctxt.globalObjects[operatorRepresentation['indices']]._deploy = False + ctxt.globalObjects[operatorRepresentation['indices']]._live = False + + # Same for "shape" + if "shape" in operatorRepresentation.keys(): + ctxt.globalObjects[operatorRepresentation["shape"]]._deploy = False + ctxt.globalObjects[operatorRepresentation["shape"]]._live = False + + bufferIn = ctxt.lookup(operatorRepresentation['data_in']) + assert isinstance(bufferIn, VariableBuffer) + bufferOut = ctxt.lookup(operatorRepresentation['data_out']) + assert isinstance(bufferOut, VariableBuffer) + + # Link aliases to each buffer + bufferIn.aliases.add(bufferOut.name) + bufferOut.aliases.add(bufferIn.name) + + return ctxt, operatorRepresentation, [] + + +# Use snrt_cluster_core_idx() == 0 instead of SINGLE_CORE macro to avoid core_id dependency +referenceTemplate = _SnitchReshapeTemplate(""" +// Reshape (Name: ${nodeName}, Op: ${nodeOp}) +if (snrt_cluster_core_idx() == 0) { ${data_out} = ${data_in}; } +""") diff --git a/Deeploy/Targets/Snitch/Templates/TransposeTemplate.py b/Deeploy/Targets/Snitch/Templates/TransposeTemplate.py new file mode 100644 index 0000000000..5e33f85aa0 --- /dev/null +++ b/Deeploy/Targets/Snitch/Templates/TransposeTemplate.py @@ -0,0 +1,36 @@ +# SPDX-FileCopyrightText: 2024 ETH Zurich and University of Bologna +# +# SPDX-License-Identifier: Apache-2.0 + +from Deeploy.DeeployTypes import NodeTemplate + +# Use snrt_cluster_core_idx() == 0 instead of BEGIN_SINGLE_CORE macro to avoid core_id dependency +referenceTemplate = NodeTemplate(""" +// Transpose ${data_in_shape} -> ${data_out_shape} (Name: ${nodeName}, Op: ${nodeOp}) +if (snrt_cluster_core_idx() == 0) { +${data_out_type.typeName} dummy_${data_out} = ${data_out}; +<% + dimStr = '' + accessStr = '' + shapeStr = '' + for dim in data_in_shape: + dimStr += '['+str(dim)+']' +%> +% for idx, i in enumerate(perm[:-1]): +<% + shapeStr += '['+str(data_in_shape[idx+1])+']' +%> +% endfor +% for idx, i in enumerate(perm): +<% + shape = data_out_shape[idx] + accessStr += '[i_'+str(idx)+']' +%> +for(uint32_t i_${i} = 0; i_${i}<${shape}; i_${i}++){ +% endfor +*dummy_${data_out}++ = ((${data_in_type.referencedType.typeName} (*)${shapeStr})${data_in})${accessStr}; +% for idx, i in enumerate(perm): +} +% endfor +} +""") diff --git a/DeeployTest/Tests/Kernels/FP32/Hardswish/inputs.npz b/DeeployTest/Tests/Kernels/FP32/Hardswish/inputs.npz new file mode 100644 index 0000000000000000000000000000000000000000..eec4cee60044fd83c5f2d6d4605d95c29ba9fa80 GIT binary patch literal 1288 zcmbW1X;70_6o$XBii%Zs8KF?cu(=}?A@|%O#Eb+)QE;KrK(Hx7z$D0`r7++yBGn3N z1;HvcDl+I;rdloe&K0ml9F=86gyI5K7#$EPqM^%_=uH3hPv5i6dCvL$MunT2*>UgX z&WU!u?#wmgIAd9HcHHNxv~=x4Ra%ySoB0kJAB{(&N+UN!L~RmqySUv#MWQA_EnMLy z4BqZ1^mP+%PgQHxa@E#UwIb2T#qwlL;w0B7rscbuU{scd0Z)s-J}d>@wJLnw^oGcuY1y2X zIA%L~5H+U-%<`!lglY#-_Ol<8mj}^-B?J5l=~Oab=Fe*4_G7$H0%?f0WjR|Yq&Jpf z-$r{>Ta}~MF@G%Di%11=E)D~cx;SSE%}nluXcXf11_`FG4`Ozej$l=74mS@7gDV0?_=n!h zS%)kZS7k23Y4Nww-c!e4e-sHts-3j3>3gE)KQ_s9X(I zdz{!a+jF2VFyOYFoA9gDj*6VxvF+P&u-F(4`_%2=(xRpotN!4-#~6Nmr5|5)wPNmo z3!hc95O$om21!E)^qb!cR$8y1&Uuzd9WT&&pOa9l>Oq066+3B>0jiGQczyF_@RO<` zT4>K_{nCX6&pu%ll?ogS?g2$m50Pm<;Zim!wJ(nmjD(mfEnvMFCKH z@E|0gno9rdv!I!=i&=#I2yT9m57~wJ;N6`M!qRd2#G?cPHqWBF0>|L+^)v7`$sO;8 zH^AfjH}G)oC|{D7iKl9XL^k&@EjCGIc;O;sr9`qBr*>j}{4`2*rljb1E9T*P1zjg< zVU6J$t~=XHimI=PBzMoC+buztSNh--Ukx6mXHhvJr;VG|fKK7gIKy*LwiVKLp&7lB9l{ESGB7G!U}9(bU*`4R cql`UQVC?@|SyZ^Wg%JoQBVcm=^v=%y0ppY&w*UYD literal 0 HcmV?d00001 diff --git a/DeeployTest/Tests/Kernels/FP32/Hardswish/network.onnx b/DeeployTest/Tests/Kernels/FP32/Hardswish/network.onnx new file mode 100644 index 0000000000..7a146e5541 --- /dev/null +++ b/DeeployTest/Tests/Kernels/FP32/Hardswish/network.onnx @@ -0,0 +1,14 @@ + +hardswish_test_fp32: +* +inputoutputHardSwish_node" HardSwishhardswish_graph_fp32Z +input + + + +€b +output + + + +€B \ No newline at end of file diff --git a/DeeployTest/Tests/Kernels/FP32/Hardswish/outputs.npz b/DeeployTest/Tests/Kernels/FP32/Hardswish/outputs.npz new file mode 100644 index 0000000000000000000000000000000000000000..074c937f5ba8e460f806d0b50d526ce4c81ba304 GIT binary patch literal 1290 zcmbVMdr*{B6#rn6ltM)*)C3j@R$d8ekivJ*4G|H90TjY8bQe~bcrGly2xbkCK;(@X ztUTl)3K9&VqThE`$v|wCd_V{TCI*u;Wg4TT&RF|x&Gc9Q^t<=Wz4v#|{oQlUA163K zWMt0#4IAd!yhj&RMhqjE31iMArz=y^mG35{>^EQ*>RG{4xD`+y6c!k~-GJG{WJqG< zY0;^Y^r-CX^iyMwbh zQ~ZBm;^pH29-lMl9GeJ@zk5^D2!DJl%paR<{VB<;fMVMwRIOkkVYUG;ebR`26U9Uq zwo0(M&%3Zaz6Ix3^^%$W=g@4~DL!4fjz-IU@XbRdY>=#sKUvy|_h)C=RLgwy%YRJj zW#{pAbqdC1okyibA~my*zc*7)ym@YU1DR~=+@6l2I zN%9`lCZ6H)J2Y4t-+;^7roqu`MDIWE>HxWSxC}pXK|HG10oiR6;NyN7_WAL6c1H%f zE*vCk^BeHvvt~@Iw8v{L71(9I50`#e2hE%8=rMUA-xECyw%RFjlW?dwK1E~`KGcF; zz!P6TD&%W-_XJ34IM&-f9W4_2S%HgUDBA6uBm;e(lxsbM#zTk>v!^lT37c-lpTU{G1amO6nmE4@~$$ z#~jQWXXurz5*Tf&0-J5;Fp_tnFm{oT7KK2fYatDxZRncuH9l#)%kKT46$QQ9LuG7C zcMbOBSVQlcvq)on>8@H0@|g!wTU7^zb}}rrIz%29EvJINclb79WT_^nJ&(Z>aTHdM z*kI7|wGiuYmSnb8k_+2M$%<`=d$#72pQF0SOo;}&ZYEJhjWw(?&A{L$1>CvPj`8X* zAvQro6#<9|pIrm#C1ZI0-~?D+OQrQrp?LL`23JM)U{Nk&$3P_?Djz2AXit)OpGK&h z2>0rA@}S;sJCRzn)A1KFs5R%%WmJu7))opmZ+v6w5NM;UA>rW>e(QBkpX+pS9d20L z2E(}r$i(^x>>b=lu0EY5A(K7G6uOW*ZF||p{)h3>{YfJ8+z8BtN3f=O3LY+<<|CeV zq1MU`zNv5pN3k17%Ae7XzugQkqyL02`ugFOQ!*%DW?^Yy863E!!AOrSxNk`d*4^n~ zqiiemwNt&O0-=W4)lIm*{4ppu=d<61Rpa+ZH8`OC6hbF7*xisxLc=KgTPKH7_k4PJ ze7F8h!KrXEH-bk$t5y)nG+1wNmse?>VWh7eel1VOqD8s5(xn+=2RV#;A*IJoiy-e- zARgJpL)^_gT5WYtuOt5HBnAf<7@CXzt9$7p{0AxnVe@Y<3l5lLEHDPT@xE^5^!@BF Ds=E}U literal 0 HcmV?d00001 diff --git a/DeeployTest/Tests/Kernels/FP32/RMSNorm_fused/inputs.npz b/DeeployTest/Tests/Kernels/FP32/RMSNorm_fused/inputs.npz new file mode 100644 index 0000000000000000000000000000000000000000..9d14ca82f70c79c9e431ba6db56c7c19d808c6b6 GIT binary patch literal 2312 zcmbVOYgo+t7M_|eB19C9$YmNtu~Dk||JEO=sK!);Zn`p}%|KA#^ByuT_TMiPjQ>j!cPUpyZp7ZT|Iq$kX>s{;HS|47CJzs4C??0Hq3%huR zm5<=@hC_=tfwwJK79M62EQ?a%>HHvv7l((#ND;4hlx$MrMet&T{sEzWAwo+-p=iqz z;e12kmYpGCAwI#IcZT=}4D&WVJ3<4#^Py57S-|&x&a(N2!#;Pu;U2^P4 z(e&dz0pxa9!27D5G~>ojnm4N!PDWTmw^t`Me>V~)u4<<5#-2d0oRok5TAr+{{$Cq~Kn6B?-Sd8Q*M7 zqaj*TFigK4cFposjQ2}K@iAw}v_6F!Uau#Sj|Y*bdI5*hRuh3X1I96?MDMmU z$Sfc(Tokyt_EJ9sLVZsiLI;BkyrLojn~WkD6`jIWhRVTxP8m6BB*3R5%82jFN^qg$ zIbu@-?+b*=B~oWlth&nV)z6^1?d8mQ=@1rndDHMG*T`984%~~>P&Ob&qfj2+*$@ch zoX-=_Y)#x3z=snLs+nm6yFgjC7}wv-r&}s&X!yEvoRF1HvwJ(909%Y>K;i7?t;Y1pGe+6;>eU;Cpd?by?AEvGeu8H1XGb`z}gI2 z(?I`|q+`Jtj-;ody4^7--pj)H*fo${C&kLcCD6FD1g%AS5VTO6txeg3&HXy4rgxXA zY3AYV-PMSJ$;{D#MEogTtiB1WFgApuV0To}J%DF4zL4Msf6CRE!4ijV z;v!7rqHb-(_?8=ZD(fxn5xIlEl{@hYJB=G$7ZGQ>DiUMuiw1!P#Ck_C^W5PWelRU1 zDM!Y_j+`X;_GUjsZn%t&6J_Z3j1SR?e3A@o>mKg}u1XS`-jV3SopAzm_tsGxf|CZ~%kd=CQ2i(`^LA3(u0bDTD~ z0M-szqI13{Nh+{p?Cu+(kC_%5Z#NSd*P0R--Aa*WfsNMlimW|nQBUt{+0X!7+ zH`<%22gWat5Ye{j$eXsFW(R(wr(Wyf{(YN3QG1Q-_g#bw9JYX`YZfWjmw>zJ3{bOJ zhZ@qccvcKxxqK?rTNElbtnOs?C!GU}pY<_ij5ef?T1)HSd(rE;$*^1O0>z}%OyIfwZ|D}ABZCHPos(E zEfxG^+(qTtLFAEJ8CDDbz`l>>`1Yt9wKY9WqMj-s?T9svUJy9vMK~C1R0uWDV2byb6E2T_ZX> zFhq2*462WX1Fh3y-^#2}D%lLG)QXe~wApiQV&wO`;@zJo1+_Mr}zu!tn zaDhBH1!$C94Gk@AjM?YoFvB*9v2W(Hs>QD%ymK#oeLWI9%mv_VS_~HIyKsDtDTGBQ zg7>s0R0~hXnqO3vS3Vt}&n}yT$WaL@n9f8+Jb-!mmr*w2Iets<<1BM4Nk^+XHy}|{ z9*w`oHTM6G1v`zQ@@hHh%ambFG9TBbCSr@HoLd?n1_w9p#zk5x@P%q(>A)IP{M5+R z{}PXV<)cw&T?QKL{tEFj9mZ_NVmxHvPFU?0u5pzw)wDDKjke{`c25%|30ZPxId0Rw zhII)7oF_}d6+KTtP~roZPOB>J2XkN(n$1k#QJIQzp2nlQ&3)BbfC z2POwW<<=fpsaAr@X*v-1n-R*T19V2dKFUozF^k$TMrG^JDJqFXS37bNdll6Q{Qo6h fen^xbNv<+n{wrl9_UanLgvxg_|6a>~$eDiwp4K0r literal 0 HcmV?d00001 diff --git a/DeeployTest/Tests/Kernels/FP32/RMSNorm_fused/network.onnx b/DeeployTest/Tests/Kernels/FP32/RMSNorm_fused/network.onnx new file mode 100644 index 0000000000000000000000000000000000000000..25a7a9b683baa30af58fa435dbcca1a61f239f2f GIT binary patch literal 220 zcmdqD=;>)I>5+f&&8UVS5R8Q#a5o0nVwN1#Fk%L0_02a z1o;O0ft2Uvr=%*eLwQ=fT+FEj#iD!7+e{ZQGFmYR3Bim_FG?)P0Gq3&$H5`M=ma&< pOM!u*!5$xul7>1$NQg^-gHecwi;05+hLdEtpiaUj>%=6$3jpPkG%ElA literal 0 HcmV?d00001 diff --git a/DeeployTest/Tests/Kernels/FP32/RMSNorm_fused/outputs.npz b/DeeployTest/Tests/Kernels/FP32/RMSNorm_fused/outputs.npz new file mode 100644 index 0000000000000000000000000000000000000000..6167f740420ebf0e05c0ef307e4b6e7bd7d8246e GIT binary patch literal 2314 zcmbVOX*|{W8b9_WO&BIMh?~76Yts4u9-l}~QX*+mBeE36mZUMZnrxliuG3;jD3Zvu zU5ayl&k<9ON?BVl(qtKH5-pZ4GcWF|`{sV1?elz}=gsrt`Fy@EP7;zTtiPen>Yont zN|0r-=0l#P!U{bU8FnagRY=$oF_z+A?EL2ZbRN7d?#?dXiLs(sG5WrK2lqwj+i2;t z{VnuYYU%rjMnpz;Hp%YqTP$ zbZAkw4;%7gJE71rg_@hE&`rfXaKOq7!X(G&bNdAl-aky8)kf)w&}cH1K7q@8I&qb| zB39cZppH&1;Sc(uWW!DToPHNxm-!_mv zyh)5&5{3l@OK`{L>(FBKfQ&?cLC*6kveUeao;J3}VS7{f$?pt!yi0=nlWCaV@QD8F zKs%{U&4;?{nz(W75S=ltz+b<U~;f2+_aGO=j-aX|zZgBc3BIWXEACcD4u76I&F8 zU$`sqPVE8=&b)+0Rz}p#vXx9XeFPC>P3-%UiRnLb1Yyf&Q1@jQfA#WxjIyqht+J;j zZPZOCoIY`ZR%I%xl_f#EjVX*I=|OlnpxqT7JWuDL@S6{$_f#*`CAlCC8KGtJZH%|E z47M9R#m)9SrZ77lTer-TnwL@dSm`MwIlJQKccoPD!!EESg_yP}lJH}Gg@(t^@QITH zX^6W)^x}@gDvM@xit0ug#tfQT>xryt2{FGgMAWYloFYfbrdh{SEZJ0#(j zWD&ZmS;M}DAS@0d5UdYVPvbOT zpto8O+t0;k%G0FMWA#P`cNvplqFUP7tW1{frN58m5VFw6oW-WrTU4YLUN zq;nKA9J9z(OKoPqq9VGB4MU;60@!zT;i4WL^43Ke6ArUMWR-yncN$V1cN-|Wn+pmN zohb8il6rv&rYMDDSx*VrSLTq^)I(@3FoWj21_=6!1ENtL%4PEDS9=0M`A>0tWnMsB zHZOwg=oKhuvRa_it19e{XYgXH7mc?`L(jI`pb~Ncg){ePT~#0Rpg0#?6>~ADc@&Py zCbQMN>M&k)3;3!OYZGp>M?;%GpCMYHY zWO0%>EY3TH`QKI3rDA@l_BsW%-F}1MHeJXX$-|pUg<#3;CY$unfVE-(XlP_&HP0Cx zm!-nctQX93zwisTnv>@$@4-yk2X$q)fqP;WWqVwv?EXebzMTc@j$}e=*?YM7Zi@Xb zKOUyC`)RSvI0;*BM>SsGWMa(a;6^SR^NhzJYajqWjGsUz_BiZLu!6zYiJ(w>6n@jV z#LuX##JmI3Ov4ZtKaA8vZfhjnI8}o+zo=oNl06)2J&wyPYH(LzAMwiXCldb-Lt)@7 z{l4T!(v?z!6$%vFrPkwUhCkgqTtt3Z^8h${2GCuVVYK!+?Gn`W8Ch&ixwyTO63YM(*rC&;C8OikUdF7G+KO>{p*hh?-g% zh^_F48wO&whMLy6?Sds(TvsCxCjNl;90P1@S%viMC%R`zC&~@Kr2A|=Fp+0ORzImG zhF>IYKhY$(bb2{nqj6XjvjF-de?|r?fLk04jvPKUdsTuxEy-}KvqG?DZ!}z~lM=QV zaWHK|_qt}zPmI)8i?MORHV8Mog)zE7OH!oCOv@tZo^Svo>m1aNYQvuMH=(}iF8N@; z4FfgvL5~QTPt%d`XV6||MxhNR-O6Ee_ZBK_<$!PbEZHNU3_5`X6?|l%pwk7kQm&zN z!U5E<6k*Iv1g(Ck4ZhyRaP`V@CO)SEnlrO8Z0?u*0~`gOwIY(VUrx|nBO{D-s1k^~ zm0(t%30R*Kk|W(wsGYYO)#b`jW>=}eU#|cr1By}7));)&TcNpK3c8o~3hqRoz(0&t zvDZ5v-|m#OZIV`FSZQpO%kw9BBNKweo^WceY5=WUw?cx65*|LQf$iM0v_4Kl7&(!E z)g}8uQH%?jrwnO>V=WmNaw82=61JOo1lZP6)K3(RGTM!JsmG19582~C_3mPahXE=- z;^Iu12qZ+V&^0w)Wj=5n>Ob=sok3^J{kj}g8{ZGM^K~ Y=JS8GjEj?$^gJUrXV!C-|CgTm58whcCIA2c literal 0 HcmV?d00001 diff --git a/DeeployTest/Tests/Models/microLlama/microLlama_fp32_1/activations.npz b/DeeployTest/Tests/Models/microLlama/microLlama_fp32_1/activations.npz new file mode 100644 index 0000000000000000000000000000000000000000..d077979636ff7de35c03b12c1df7ae2e35a19937 GIT binary patch literal 355738 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 literal 0 HcmV?d00001 diff --git a/DeeployTest/Tests/Models/microLlama/microLlama_fp32_1/inputs.npz b/DeeployTest/Tests/Models/microLlama/microLlama_fp32_1/inputs.npz new file mode 100644 index 0000000000000000000000000000000000000000..89c505c6693900de9c18101aa892f42b817402ff GIT binary patch literal 9138 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 B@m>G` literal 0 HcmV?d00001 diff --git a/DeeployTest/Tests/Models/microLlama/microLlama_fp32_1/outputs.npz b/DeeployTest/Tests/Models/microLlama/microLlama_fp32_1/outputs.npz new file mode 100644 index 0000000000000000000000000000000000000000..07fda6854dc56be62ead10027bc9e4eab42d2308 GIT binary patch literal 526 zcmbV}F-yZx6op@`iWEV?j3VhEQ7FYiwNM0|L@1UZIMk(-Ce=aOlBNX-HJt=kb$8H7 zbXNy6I68F|>FOflAF%q}wu6g{FZpuLJvZ+qaII`)R9Ax)Q_nYMx2-89Oe$Sf8(yv9 z6_yf}+M%YV`?V`siyKx+o_jaGh>*m<&+sW%yQNB++w9rb!|uTjp9Mw zA+PTjYYz27GH!6Mq!!~w%lOxd-l=vt{~d%ckjD4WZJ5Cy^@1=&Cm;~WJ1{%+5BM%z z4eKaA2Jh59977(S$b3kEWNGyJi|^n+&?MiP!e5Zz Ty print(f"Warning: Empty input array for type inference for {values}!") return default - if isInteger(values): + # First check the numpy dtype - if it's a float type, use float even if values are integer-like + # This handles cases like [0.0, 0.0] which would otherwise be incorrectly typed as uint8_t + if np.issubdtype(values.dtype, np.floating): + return minimalFloatType(values) + elif isInteger(values): return minimalIntegerType(values) else: return minimalFloatType(values) diff --git a/TargetLibraries/Generic/inc/macros.h b/TargetLibraries/Generic/inc/macros.h index d97cfecb7c..0b5a0e51fb 100644 --- a/TargetLibraries/Generic/inc/macros.h +++ b/TargetLibraries/Generic/inc/macros.h @@ -7,22 +7,28 @@ #ifndef __DEEPLOY_BASIC_MATH_MACROS_HEADER_ #define __DEEPLOY_BASIC_MATH_MACROS_HEADER_ +#ifndef MAX #define MAX(a, b) \ ({ \ __typeof__(a) _a = (a); \ __typeof__(b) _b = (b); \ _a > _b ? _a : _b; \ }) +#endif +#ifndef MIN #define MIN(a, b) \ ({ \ __typeof__(a) _a = (a); \ __typeof__(b) _b = (b); \ _a < _b ? _a : _b; \ }) +#endif +#ifndef CLAMP #define CLAMP(x, low, high) \ (((x) > (high)) ? (high) : (((x) < (low)) ? (low) : (x))) +#endif #define inf 1.0f / 0.0f diff --git a/TargetLibraries/Snitch/inc/DeeploySnitchMath.h b/TargetLibraries/Snitch/inc/DeeploySnitchMath.h index e44d3c20c6..1305ba6bff 100644 --- a/TargetLibraries/Snitch/inc/DeeploySnitchMath.h +++ b/TargetLibraries/Snitch/inc/DeeploySnitchMath.h @@ -23,8 +23,13 @@ #include "snrt.h" +#include "kernel/Add.h" +#include "kernel/Div.h" #include "kernel/Gemm.h" +#include "kernel/HardSwish.h" #include "kernel/MatMul.h" +#include "kernel/Mul.h" +#include "kernel/RMSNrom.h" #include "kernel/RQGemm.h" #include "kernel/RQMatMul.h" #include "kernel/Softmax.h" diff --git a/TargetLibraries/Snitch/inc/kernel/Add.h b/TargetLibraries/Snitch/inc/kernel/Add.h new file mode 100644 index 0000000000..7a65e82712 --- /dev/null +++ b/TargetLibraries/Snitch/inc/kernel/Add.h @@ -0,0 +1,21 @@ +/* + * SPDX-FileCopyrightText: 2026 ETH Zurich and University of Bologna + * + * SPDX-License-Identifier: Apache-2.0 + */ + +#ifndef __DEEPLOY_MATH_ADD_KERNEL_HEADER_ +#define __DEEPLOY_MATH_ADD_KERNEL_HEADER_ + +#include "DeeploySnitchMath.h" + +void Add_fp32(float32_t *pIn1, float32_t *pIn2, float32_t *pOut, uint32_t size); + +void Add_fp32_broadcast(float32_t *pIn1, float32_t *pIn2, float32_t *pOut, + uint32_t *out_shape, uint32_t *strides1, + uint32_t *strides2, uint32_t ndim, uint32_t size); + +void Add_fp32_lastdim(float32_t *pIn1, float32_t *pIn2, float32_t *pOut, + uint32_t outer_size, uint32_t inner_size); + +#endif // __DEEPLOY_MATH_ADD_KERNEL_HEADER_ diff --git a/TargetLibraries/Snitch/inc/kernel/Div.h b/TargetLibraries/Snitch/inc/kernel/Div.h new file mode 100644 index 0000000000..e9b257a634 --- /dev/null +++ b/TargetLibraries/Snitch/inc/kernel/Div.h @@ -0,0 +1,44 @@ +/* + * SPDX-FileCopyrightText: 2026 ETH Zurich and University of Bologna + * + * SPDX-License-Identifier: Apache-2.0 + */ + +#ifndef __DEEPLOY_MATH_DIV_FP32_KERNEL_HEADER_ +#define __DEEPLOY_MATH_DIV_FP32_KERNEL_HEADER_ + +#include "DeeploySnitchMath.h" + +/* + * Element-wise Division (FP32) + * + * Computes: output[i] = input1[i] / input2[i] + * + * input1: Numerator tensor (float32) + * input2: Denominator tensor (float32) + * output: Output tensor (same shape as input1) + * size: Total number of elements + * + * multi-core = yes + * parallelization = element-wise + */ +void Div_fp32(float32_t *input1, float32_t *input2, float32_t *output, + uint32_t size); + +/* + * Element-wise Division with scalar broadcasting (FP32) + * + * Computes: output[i] = input1[i] / scalar + * + * input1: Numerator tensor (float32) + * scalar: Scalar denominator (float32) + * output: Output tensor (same shape as input1) + * size: Total number of elements + * + * multi-core = yes + * parallelization = element-wise + */ +void Div_fp32_scalar(float32_t *input1, float32_t scalar, float32_t *output, + uint32_t size); + +#endif // __DEEPLOY_MATH_DIV_FP32_KERNEL_HEADER_ diff --git a/TargetLibraries/Snitch/inc/kernel/HardSwish.h b/TargetLibraries/Snitch/inc/kernel/HardSwish.h new file mode 100644 index 0000000000..a0cfdaac12 --- /dev/null +++ b/TargetLibraries/Snitch/inc/kernel/HardSwish.h @@ -0,0 +1,34 @@ +/* + * SPDX-FileCopyrightText: 2026 ETH Zurich and University of Bologna + * + * SPDX-License-Identifier: Apache-2.0 + */ + +#ifndef __DEEPLOY_MATH_HARDSWISH_KERNEL_HEADER_ +#define __DEEPLOY_MATH_HARDSWISH_KERNEL_HEADER_ + +#include "DeeploySnitchMath.h" + +/* + * HardSwish Activation Function + * + * Computes: HardSwish(x) = x * clip(x/6 + 0.5, 0, 1) + * + * Piecewise form: + * - When x <= -3: output = 0 + * - When -3 < x < 3: output = x * (x/6 + 0.5) + * - When x >= 3: output = x + * + * This is a computationally efficient approximation of Swish/SiLU activation + * commonly used in mobile neural networks and transformer models. + * + * data_in: Input tensor (FP32) + * data_out: Output tensor (FP32, same shape as input) + * size: Total number of elements + * + * multi-core = yes + * parallelization = element-wise + */ +void HardSwish_fp32(float32_t *data_in, float32_t *data_out, uint32_t size); + +#endif // __DEEPLOY_MATH_HARDSWISH_KERNEL_HEADER_ diff --git a/TargetLibraries/Snitch/inc/kernel/Mul.h b/TargetLibraries/Snitch/inc/kernel/Mul.h new file mode 100644 index 0000000000..d851e2e3bf --- /dev/null +++ b/TargetLibraries/Snitch/inc/kernel/Mul.h @@ -0,0 +1,44 @@ +/* + * SPDX-FileCopyrightText: 2026 ETH Zurich and University of Bologna + * + * SPDX-License-Identifier: Apache-2.0 + */ + +#ifndef __DEEPLOY_MATH_MUL_FP32_KERNEL_HEADER_ +#define __DEEPLOY_MATH_MUL_FP32_KERNEL_HEADER_ + +#include "DeeploySnitchMath.h" + +/* + * Element-wise Multiplication (FP32) + * + * Computes: output[i] = input1[i] * input2[i] + * + * input1: First input tensor (float32) + * input2: Second input tensor (float32) + * output: Output tensor (same shape as input1) + * size: Total number of elements + * + * multi-core = yes + * parallelization = element-wise + */ +void Mul_fp32(float32_t *input1, float32_t *input2, float32_t *output, + uint32_t size); + +/* + * Element-wise Multiplication with scalar broadcasting (FP32) + * + * Computes: output[i] = input1[i] * scalar + * + * input1: Input tensor (float32) + * scalar: Scalar multiplier (float32) + * output: Output tensor (same shape as input1) + * size: Total number of elements + * + * multi-core = yes + * parallelization = element-wise + */ +void Mul_fp32_scalar(float32_t *input1, float32_t scalar, float32_t *output, + uint32_t size); + +#endif // __DEEPLOY_MATH_MUL_FP32_KERNEL_HEADER_ diff --git a/TargetLibraries/Snitch/inc/kernel/RMSNrom.h b/TargetLibraries/Snitch/inc/kernel/RMSNrom.h new file mode 100644 index 0000000000..16e25cd38c --- /dev/null +++ b/TargetLibraries/Snitch/inc/kernel/RMSNrom.h @@ -0,0 +1,31 @@ +/* + * SPDX-FileCopyrightText: 2026 ETH Zurich and University of Bologna + * + * SPDX-License-Identifier: Apache-2.0 + */ + +#ifndef __DEEPLOY_MATH_RMSNORM_KERNEL_HEADER_ +#define __DEEPLOY_MATH_RMSNORM_KERNEL_HEADER_ + +#include "DeeploySnitchMath.h" + +/* + * RMS Normalization (Root Mean Square Normalization) + * + * Computes: output[i] = (input[i] / rms) * weight[i] + * where rms = sqrt(mean(input^2) + eps) + * + * data_in: Input tensor [batch, seq, hidden] or flattened [size] + * weight: Weight tensor [hidden_dim] + * data_out: Output tensor (same shape as input) + * size: Total number of elements (batch * seq * hidden) + * lastDimLength: Hidden dimension size + * eps: Epsilon for numerical stability (typically 1e-6) + * + * multi-core = yes + * parallelization = vector-wise (across batch * sequence) + */ +void RMSNorm_fp32(float32_t *data_in, float32_t *weight, float32_t *data_out, + uint32_t size, uint32_t lastDimLength, float32_t eps); + +#endif // __DEEPLOY_MATH_RMSNORM_KERNEL_HEADER_ diff --git a/TargetLibraries/Snitch/inc/kernel/Softmax.h b/TargetLibraries/Snitch/inc/kernel/Softmax.h index c2d7596e7a..3795bb4f3b 100644 --- a/TargetLibraries/Snitch/inc/kernel/Softmax.h +++ b/TargetLibraries/Snitch/inc/kernel/Softmax.h @@ -9,7 +9,7 @@ #include "DeeploySnitchMath.h" -void softmax_fp32(float *input, float *output, int32_t ldI, +void Softmax_fp32(float *input, float *output, int32_t ldI, int32_t batch_offset, int32_t batch_size, int32_t seq_len, int32_t input_samples); diff --git a/TargetLibraries/Snitch/inc/macros.h b/TargetLibraries/Snitch/inc/macros.h index bc1191d25a..04bef2394b 100644 --- a/TargetLibraries/Snitch/inc/macros.h +++ b/TargetLibraries/Snitch/inc/macros.h @@ -8,10 +8,19 @@ #define __DEEPLOY_MATH_MACROS_HEADER_ #define INT_LOG2(x) __builtin_ctz(x) + +#ifndef CLAMP #define CLAMP(x, low, high) \ (((x) > (high)) ? (high) : (((x) < (low)) ? (low) : (x))) +#endif + +#ifndef MIN #define MIN(a, b) ((a) < (b) ? (a) : (b)) +#endif + +#ifndef MAX #define MAX(a, b) ((a) > (b) ? (a) : (b)) +#endif // JUNGVI: The following macros are here to ensure compatibility with some // PULP-NN kernels diff --git a/TargetLibraries/Snitch/src/Add_fp32.c b/TargetLibraries/Snitch/src/Add_fp32.c new file mode 100644 index 0000000000..235b258511 --- /dev/null +++ b/TargetLibraries/Snitch/src/Add_fp32.c @@ -0,0 +1,102 @@ +/* + * SPDX-FileCopyrightText: 2026 ETH Zurich and University of Bologna + * + * SPDX-License-Identifier: Apache-2.0 + */ + +#include "DeeploySnitchMath.h" + +/* + * SPDX-FileCopyrightText: 2026 ETH Zurich and University of Bologna + * + * SPDX-License-Identifier: Apache-2.0 + */ + +void Add_fp32(float32_t *pIn1, float32_t *pIn2, float32_t *pOut, + uint32_t size) { + + uint32_t core_id = snrt_global_compute_core_idx(); + uint32_t numThreads = snrt_global_compute_core_num(); + + uint32_t chunkSize = size / numThreads; + uint32_t remainder = size % numThreads; + + uint32_t start, num_elements; + if (core_id < remainder) { + num_elements = chunkSize + 1; + start = core_id * num_elements; + } else { + num_elements = chunkSize; + start = core_id * chunkSize + remainder; + } + + uint32_t end = start + num_elements; + + for (uint32_t i = start; i < end; i++) { + pOut[i] = pIn1[i] + pIn2[i]; + } +} + +void Add_fp32_broadcast(float32_t *pIn1, float32_t *pIn2, float32_t *pOut, + uint32_t *out_shape, uint32_t *strides1, + uint32_t *strides2, uint32_t ndim, uint32_t size) { + + uint32_t core_id = snrt_global_compute_core_idx(); + uint32_t numThreads = snrt_global_compute_core_num(); + + uint32_t chunkSize = size / numThreads; + uint32_t remainder = size % numThreads; + + uint32_t start, num_elements; + if (core_id < remainder) { + num_elements = chunkSize + 1; + start = core_id * num_elements; + } else { + num_elements = chunkSize; + start = core_id * chunkSize + remainder; + } + + uint32_t end = start + num_elements; + + for (uint32_t i = start; i < end; i++) { + uint32_t idx1 = 0; + uint32_t idx2 = 0; + uint32_t tmp = i; + + for (int32_t d = ndim - 1; d >= 0; d--) { + uint32_t coord = tmp % out_shape[d]; + tmp /= out_shape[d]; + idx1 += coord * strides1[d]; + idx2 += coord * strides2[d]; + } + + pOut[i] = pIn1[idx1] + pIn2[idx2]; + } +} + +void Add_fp32_lastdim(float32_t *pIn1, float32_t *pIn2, float32_t *pOut, + uint32_t outer_size, uint32_t inner_size) { + + uint32_t core_id = snrt_global_compute_core_idx(); + uint32_t numThreads = snrt_global_compute_core_num(); + uint32_t size = outer_size * inner_size; + + uint32_t chunkSize = size / numThreads; + uint32_t remainder = size % numThreads; + + uint32_t start, num_elements; + if (core_id < remainder) { + num_elements = chunkSize + 1; + start = core_id * num_elements; + } else { + num_elements = chunkSize; + start = core_id * chunkSize + remainder; + } + + uint32_t end = start + num_elements; + + for (uint32_t i = start; i < end; i++) { + uint32_t inner_idx = i % inner_size; + pOut[i] = pIn1[i] + pIn2[inner_idx]; + } +} diff --git a/TargetLibraries/Snitch/src/CycleCounter.c b/TargetLibraries/Snitch/src/CycleCounter.c index 3861c421c1..8a99c312e6 100644 --- a/TargetLibraries/Snitch/src/CycleCounter.c +++ b/TargetLibraries/Snitch/src/CycleCounter.c @@ -6,10 +6,15 @@ #include "DeeploySnitchMath.h" +// Define ENABLE_INSTR_COUNTER to enable instruction counting (causes warnings +// in gvsoc) #define ENABLE_INSTR_COUNTER + static uint32_t timer_init[NUM_CORES] __attribute__((section(".l1"))); static uint32_t timer_end[NUM_CORES] __attribute__((section(".l1"))); +#ifdef ENABLE_INSTR_COUNTER static uint32_t instr_init[NUM_CORES] __attribute__((section(".l1"))); static uint32_t instr_end[NUM_CORES] __attribute__((section(".l1"))); +#endif static uint32_t running[NUM_CORES] __attribute__((section(".l1"))); @@ -17,11 +22,13 @@ void ResetTimer() { snrt_reset_perf_counter(SNRT_PERF_CNT0); uint32_t const core_id = snrt_global_core_idx(); uint32_t _timer_init = read_csr(mcycle); - uint32_t _instr_init = read_csr(minstret); timer_init[core_id] = _timer_init; - instr_init[core_id] = _instr_init; timer_end[core_id] = _timer_init; +#ifdef ENABLE_INSTR_COUNTER + uint32_t _instr_init = read_csr(minstret); + instr_init[core_id] = _instr_init; instr_end[core_id] = _instr_init; +#endif running[core_id] = 0; } @@ -31,7 +38,9 @@ void StartTimer() { } uint32_t const core_id = snrt_global_core_idx(); timer_init[core_id] = read_csr(mcycle); +#ifdef ENABLE_INSTR_COUNTER instr_init[core_id] = read_csr(minstret); +#endif running[core_id] = 1; } @@ -41,7 +50,9 @@ void StopTimer() { } uint32_t const core_id = snrt_global_core_idx(); timer_end[core_id] = read_csr(mcycle); +#ifdef ENABLE_INSTR_COUNTER instr_end[core_id] = read_csr(minstret); +#endif running[core_id] = 0; } @@ -55,6 +66,7 @@ uint32_t getCycles() { } uint32_t getInstr(void) { +#ifdef ENABLE_INSTR_COUNTER uint32_t const core_id = snrt_global_core_idx(); if (running[core_id]) { @@ -62,4 +74,7 @@ uint32_t getInstr(void) { } else { return instr_end[core_id] - instr_init[core_id]; } +#else + return 0; // Instruction counting disabled +#endif } \ No newline at end of file diff --git a/TargetLibraries/Snitch/src/Div_fp32.c b/TargetLibraries/Snitch/src/Div_fp32.c new file mode 100644 index 0000000000..07c3d3c5d4 --- /dev/null +++ b/TargetLibraries/Snitch/src/Div_fp32.c @@ -0,0 +1,89 @@ +/* + * SPDX-FileCopyrightText: 2026 ETH Zurich and University of Bologna + * + * SPDX-License-Identifier: Apache-2.0 + */ + +#include "DeeploySnitchMath.h" + +/* + * Element-wise Division (FP32) + * + * Computes: output[i] = input1[i] / input2[i] + * + * Supports ONNX broadcasting rules: + * - If input2 is scalar (size=1): divides all elements of input1 by input2[0] + * - If both have same size: element-wise division + * + * input1: Numerator tensor (float32) + * input2: Denominator tensor (float32) + * output: Output tensor (same shape as input1) + * size: Total number of elements in input1 + * + * multi-core = yes + * parallelization = element-wise across input1 + */ +void Div_fp32(float32_t *input1, float32_t *input2, float32_t *output, + uint32_t size) { + + uint32_t core_id = snrt_global_compute_core_idx(); + uint32_t numThreads = snrt_global_compute_core_num(); + + // Parallelize across elements + uint32_t elements_per_core = size / numThreads; + uint32_t remainder = size % numThreads; + + uint32_t start_elem, num_elems; + if (core_id < remainder) { + num_elems = elements_per_core + 1; + start_elem = core_id * num_elems; + } else { + num_elems = elements_per_core; + start_elem = core_id * elements_per_core + remainder; + } + + // Check if input2 is a scalar (size=1, broadcasted) + // Note: This assumes the parser has set input2_size correctly + // For now, we assume element-wise division (same size) + for (uint32_t i = start_elem; i < start_elem + num_elems; i++) { + output[i] = input1[i] / input2[i]; + } +} + +/* + * Element-wise Division with scalar broadcasting (FP32) + * + * Computes: output[i] = input1[i] / scalar + * + * input1: Numerator tensor (float32) + * scalar: Scalar denominator (float32) + * output: Output tensor (same shape as input1) + * size: Total number of elements in input1 + * + * multi-core = yes + * parallelization = element-wise + */ +void Div_fp32_scalar(float32_t *input1, float32_t scalar, float32_t *output, + uint32_t size) { + + uint32_t core_id = snrt_global_compute_core_idx(); + uint32_t numThreads = snrt_global_compute_core_num(); + + uint32_t elements_per_core = size / numThreads; + uint32_t remainder = size % numThreads; + + uint32_t start_elem, num_elems; + if (core_id < remainder) { + num_elems = elements_per_core + 1; + start_elem = core_id * num_elems; + } else { + num_elems = elements_per_core; + start_elem = core_id * elements_per_core + remainder; + } + + float32_t inv_scalar = 1.0f / scalar; // Compute inverse once + + for (uint32_t i = start_elem; i < start_elem + num_elems; i++) { + output[i] = input1[i] * inv_scalar; + } +} diff --git a/TargetLibraries/Snitch/src/Gemm_fp32.c b/TargetLibraries/Snitch/src/Gemm_fp32.c index 9a79538e12..8dac98ef67 100644 --- a/TargetLibraries/Snitch/src/Gemm_fp32.c +++ b/TargetLibraries/Snitch/src/Gemm_fp32.c @@ -11,231 +11,50 @@ void gemm_fp32_transB_opt(uint32_t M, uint32_t N, uint32_t K, float32_t *A, uint32_t ldA, float32_t *B, uint32_t ldB, float32_t *C, uint32_t ldC, float32_t *Y, uint32_t BETA, uint32_t setup_SSR) { + (void)setup_SSR; uint32_t compute_id = snrt_global_compute_core_idx(); uint32_t A_offset = K * compute_id; uint32_t C_offset = N * compute_id; - // Unrolling factor of most inner loop. - // Should be at least as high as the FMA delay - // for maximum utilization - const uint32_t unroll = 8; - - // SSR strides and bounds only have to be configured - // once in the beginning - if (setup_SSR) { - // First matrix is not stored in transposed format - const uint32_t ssr0_b[4] = {unroll, K, N / unroll, M}; - const uint32_t ssr0_i[4] = {0, sizeof(float32_t), 0, - sizeof(float32_t) * ldA}; - - // Second matrix is stored in transposed format - const uint32_t ssr1_b[4] = {unroll, K, N / unroll, M}; - const uint32_t ssr1_i[4] = {sizeof(float32_t) * K, sizeof(float32_t), - sizeof(float32_t) * K * unroll, 0}; - - snrt_ssr_loop_3d(SNRT_SSR_DM0, ssr0_b[1], ssr0_b[2], ssr0_b[3], ssr0_i[1], - ssr0_i[2], ssr0_i[3]); - - snrt_ssr_repeat(SNRT_SSR_DM0, unroll); - snrt_ssr_loop_4d(SNRT_SSR_DM1, ssr1_b[0], ssr1_b[1], ssr1_b[2], ssr1_b[3], - ssr1_i[0], ssr1_i[1], ssr1_i[2], ssr1_i[3]); - } - - // SSR start address need to be configured each time - - snrt_ssr_read(SNRT_SSR_DM0, SNRT_SSR_4D, &A[A_offset]); - snrt_ssr_read(SNRT_SSR_DM1, SNRT_SSR_4D, B); - snrt_ssr_enable(); - - // check dimensions and values of a and b - - // Kernel progresses by 1 values each step - // const uint32_t n_frep = K - 1; for (uint32_t m = 0; m < M; m++) { - uint32_t n = 0; - for (uint32_t n0 = 0; n0 < N / unroll; n0++) { - float c[unroll]; - - // Load intermediate result - if (BETA) { - c[0] = C[C_offset + m * ldC + n + 0]; - c[1] = C[C_offset + m * ldC + n + 1]; - c[2] = C[C_offset + m * ldC + n + 2]; - c[3] = C[C_offset + m * ldC + n + 3]; - c[4] = C[C_offset + m * ldC + n + 4]; - c[5] = C[C_offset + m * ldC + n + 5]; - c[6] = C[C_offset + m * ldC + n + 6]; - c[7] = C[C_offset + m * ldC + n + 7]; - } else { - c[0] = 0.0; - c[1] = 0.0; - c[2] = 0.0; - c[3] = 0.0; - c[4] = 0.0; - c[5] = 0.0; - c[6] = 0.0; - c[7] = 0.0; - } - - asm volatile( - "frep.o %[n_frep], 8, 0, 0 \n" - "fmadd.s %[c0], ft0, ft1, %[c0] \n" - "fmadd.s %[c1], ft0, ft1, %[c1] \n" - "fmadd.s %[c2], ft0, ft1, %[c2] \n" - "fmadd.s %[c3], ft0, ft1, %[c3] \n" - "fmadd.s %[c4], ft0, ft1, %[c4] \n" - "fmadd.s %[c5], ft0, ft1, %[c5] \n" - "fmadd.s %[c6], ft0, ft1, %[c6] \n" - "fmadd.s %[c7], ft0, ft1, %[c7] \n" - : [c0] "+f"(c[0]), [c1] "+f"(c[1]), [c2] "+f"(c[2]), [c3] "+f"(c[3]), - [c4] "+f"(c[4]), [c5] "+f"(c[5]), [c6] "+f"(c[6]), [c7] "+f"(c[7]) - : [n_frep] "r"(K - 1) - : "ft0", "ft1", "ft2"); - - // Store results back - Y[C_offset + m * ldC + n + 0] = c[0]; - Y[C_offset + m * ldC + n + 1] = c[1]; - Y[C_offset + m * ldC + n + 2] = c[2]; - Y[C_offset + m * ldC + n + 3] = c[3]; - Y[C_offset + m * ldC + n + 4] = c[4]; - Y[C_offset + m * ldC + n + 5] = c[5]; - Y[C_offset + m * ldC + n + 6] = c[6]; - Y[C_offset + m * ldC + n + 7] = c[7]; - n += unroll; - } - - // Clean up of leftover columns - snrt_ssr_disable(); - for (; n < N; n++) { + for (uint32_t n = 0; n < N; n++) { float32_t c; if (BETA) { c = C[C_offset + m * ldC + n]; } else { - c = 0.0; + c = 0.0f; } for (uint32_t k = 0; k < K; k++) { - c += A[A_offset + k + m * ldA] * B[k + n * ldB]; + c += A[A_offset + m * ldA + k] * B[n * ldB + k]; } Y[C_offset + m * ldC + n] = c; } - snrt_ssr_enable(); } - snrt_ssr_disable(); } void gemm_fp32_opt(uint32_t M, uint32_t N, uint32_t K, float32_t *A, uint32_t ldA, float32_t *B, uint32_t ldB, float32_t *C, uint32_t ldC, float32_t *Y, uint32_t BETA, uint32_t setup_SSR) { + (void)setup_SSR; + uint32_t compute_id = snrt_global_compute_core_idx(); uint32_t A_offset = K * compute_id; uint32_t C_offset = N * compute_id; - // Unrolling factor of most inner loop. - // Should be at least as high as the FMA delay - // for maximum utilization - const uint32_t unroll = 8; - - // SSR strides and bounds only have to be configured - // once in the beginning - if (setup_SSR) { - // First matrix is not stored in transposed format - const uint32_t ssr0_b[4] = {unroll, K, N / unroll, M}; - const uint32_t ssr0_i[4] = {0, sizeof(float32_t), 0, - sizeof(float32_t) * ldA}; - - // Second matrix is not stored in transposed format - const uint32_t ssr1_b[4] = {unroll, K, N / unroll, M}; - const uint32_t ssr1_i[4] = {sizeof(float32_t), sizeof(float32_t) * ldB, - sizeof(float32_t) * unroll, 0}; - - snrt_ssr_loop_3d(SNRT_SSR_DM0, ssr0_b[1], ssr0_b[2], ssr0_b[3], ssr0_i[1], - ssr0_i[2], ssr0_i[3]); - - snrt_ssr_repeat(SNRT_SSR_DM0, unroll); - snrt_ssr_loop_4d(SNRT_SSR_DM1, ssr1_b[0], ssr1_b[1], ssr1_b[2], ssr1_b[3], - ssr1_i[0], ssr1_i[1], ssr1_i[2], ssr1_i[3]); - } - - // SSR start address need to be configured each time - - snrt_ssr_read(SNRT_SSR_DM0, SNRT_SSR_4D, &A[A_offset]); - snrt_ssr_read(SNRT_SSR_DM1, SNRT_SSR_4D, B); - snrt_ssr_enable(); - - // check dimensions and values of a and b - - // Kernel progresses by 1 values each step - // const uint32_t n_frep = K - 1; for (uint32_t m = 0; m < M; m++) { - uint32_t n = 0; - for (uint32_t n0 = 0; n0 < N / unroll; n0++) { - float c[unroll]; - - // Load intermediate result - if (BETA) { - c[0] = C[C_offset + m * ldC + n + 0]; - c[1] = C[C_offset + m * ldC + n + 1]; - c[2] = C[C_offset + m * ldC + n + 2]; - c[3] = C[C_offset + m * ldC + n + 3]; - c[4] = C[C_offset + m * ldC + n + 4]; - c[5] = C[C_offset + m * ldC + n + 5]; - c[6] = C[C_offset + m * ldC + n + 6]; - c[7] = C[C_offset + m * ldC + n + 7]; - } else { - c[0] = 0.0; - c[1] = 0.0; - c[2] = 0.0; - c[3] = 0.0; - c[4] = 0.0; - c[5] = 0.0; - c[6] = 0.0; - c[7] = 0.0; - } - - asm volatile( - "frep.o %[n_frep], 8, 0, 0 \n" - "fmadd.s %[c0], ft0, ft1, %[c0] \n" - "fmadd.s %[c1], ft0, ft1, %[c1] \n" - "fmadd.s %[c2], ft0, ft1, %[c2] \n" - "fmadd.s %[c3], ft0, ft1, %[c3] \n" - "fmadd.s %[c4], ft0, ft1, %[c4] \n" - "fmadd.s %[c5], ft0, ft1, %[c5] \n" - "fmadd.s %[c6], ft0, ft1, %[c6] \n" - "fmadd.s %[c7], ft0, ft1, %[c7] \n" - : [c0] "+f"(c[0]), [c1] "+f"(c[1]), [c2] "+f"(c[2]), [c3] "+f"(c[3]), - [c4] "+f"(c[4]), [c5] "+f"(c[5]), [c6] "+f"(c[6]), [c7] "+f"(c[7]) - : [n_frep] "r"(K - 1) - : "ft0", "ft1", "ft2"); - - // Store results back - Y[C_offset + m * ldC + n + 0] = c[0]; - Y[C_offset + m * ldC + n + 1] = c[1]; - Y[C_offset + m * ldC + n + 2] = c[2]; - Y[C_offset + m * ldC + n + 3] = c[3]; - Y[C_offset + m * ldC + n + 4] = c[4]; - Y[C_offset + m * ldC + n + 5] = c[5]; - Y[C_offset + m * ldC + n + 6] = c[6]; - Y[C_offset + m * ldC + n + 7] = c[7]; - n += unroll; - } - - // Clean up of leftover columns - snrt_ssr_disable(); - for (; n < N; n++) { + for (uint32_t n = 0; n < N; n++) { float32_t c; if (BETA) { c = C[C_offset + m * ldC + n]; } else { - c = 0.0; + c = 0.0f; } for (uint32_t k = 0; k < K; k++) { - c += A[A_offset + k + m * ldA] * B[k * ldB + n]; + c += A[A_offset + m * ldA + k] * B[k * ldB + n]; } Y[C_offset + m * ldC + n] = c; } - snrt_ssr_enable(); } - snrt_ssr_disable(); } diff --git a/TargetLibraries/Snitch/src/HardSwish.c b/TargetLibraries/Snitch/src/HardSwish.c new file mode 100644 index 0000000000..b7e9679c64 --- /dev/null +++ b/TargetLibraries/Snitch/src/HardSwish.c @@ -0,0 +1,46 @@ +/* + * SPDX-FileCopyrightText: 2026 ETH Zurich and University of Bologna + * + * SPDX-License-Identifier: Apache-2.0 + */ + +#include "DeeploySnitchMath.h" + +void HardSwish_fp32(float32_t *data_in, float32_t *data_out, uint32_t size) { + + uint32_t core_id = snrt_global_compute_core_idx(); + uint32_t numThreads = snrt_global_compute_core_num(); + + // Parallelize by dividing work across cores + uint32_t chunk_size = size / numThreads; + uint32_t remainder = size % numThreads; + + uint32_t start, end; + if (core_id < remainder) { + chunk_size += 1; + start = core_id * chunk_size; + } else { + start = core_id * chunk_size + remainder; + } + end = start + chunk_size; + + // HardSwish(x) = x * clip(x/6 + 0.5, 0, 1) + // Piecewise: + // x <= -3: output = 0 + // -3 < x < 3: output = x * (x/6 + 0.5) + // x >= 3: output = x + + for (uint32_t i = start; i < end; i++) { + float32_t x = data_in[i]; + float32_t clip_val = x / 6.0f + 0.5f; + + // Clamp to [0, 1] + if (clip_val < 0.0f) { + clip_val = 0.0f; + } else if (clip_val > 1.0f) { + clip_val = 1.0f; + } + + data_out[i] = x * clip_val; + } +} diff --git a/TargetLibraries/Snitch/src/Mul_fp32.c b/TargetLibraries/Snitch/src/Mul_fp32.c new file mode 100644 index 0000000000..80d6bc9b33 --- /dev/null +++ b/TargetLibraries/Snitch/src/Mul_fp32.c @@ -0,0 +1,86 @@ +/* + * SPDX-FileCopyrightText: 2026 ETH Zurich and University of Bologna + * + * SPDX-License-Identifier: Apache-2.0 + */ + +#include "DeeploySnitchMath.h" + +/* + * Element-wise Multiplication (FP32) + * + * Computes: output[i] = input1[i] * input2[i] + * + * Supports ONNX broadcasting rules: + * - If input2 is scalar (size=1): multiplies all elements of input1 by + * input2[0] + * - If both have same size: element-wise multiplication + * + * input1: First input tensor (float32) + * input2: Second input tensor (float32) + * output: Output tensor (same shape as input1) + * size: Total number of elements in input1 + * + * multi-core = yes + * parallelization = element-wise across input1 + */ +void Mul_fp32(float32_t *input1, float32_t *input2, float32_t *output, + uint32_t size) { + + uint32_t core_id = snrt_global_compute_core_idx(); + uint32_t numThreads = snrt_global_compute_core_num(); + + // Parallelize across elements + uint32_t elements_per_core = size / numThreads; + uint32_t remainder = size % numThreads; + + uint32_t start_elem, num_elems; + if (core_id < remainder) { + num_elems = elements_per_core + 1; + start_elem = core_id * num_elems; + } else { + num_elems = elements_per_core; + start_elem = core_id * elements_per_core + remainder; + } + + // Element-wise multiplication + for (uint32_t i = start_elem; i < start_elem + num_elems; i++) { + output[i] = input1[i] * input2[i]; + } +} + +/* + * Element-wise Multiplication with scalar broadcasting (FP32) + * + * Computes: output[i] = input1[i] * scalar + * + * input1: Input tensor (float32) + * scalar: Scalar multiplier (float32) + * output: Output tensor (same shape as input1) + * size: Total number of elements in input1 + * + * multi-core = yes + * parallelization = element-wise + */ +void Mul_fp32_scalar(float32_t *input1, float32_t scalar, float32_t *output, + uint32_t size) { + + uint32_t core_id = snrt_global_compute_core_idx(); + uint32_t numThreads = snrt_global_compute_core_num(); + + uint32_t elements_per_core = size / numThreads; + uint32_t remainder = size % numThreads; + + uint32_t start_elem, num_elems; + if (core_id < remainder) { + num_elems = elements_per_core + 1; + start_elem = core_id * num_elems; + } else { + num_elems = elements_per_core; + start_elem = core_id * elements_per_core + remainder; + } + + for (uint32_t i = start_elem; i < start_elem + num_elems; i++) { + output[i] = input1[i] * scalar; + } +} diff --git a/TargetLibraries/Snitch/src/RMSNrom_fp32.c b/TargetLibraries/Snitch/src/RMSNrom_fp32.c new file mode 100644 index 0000000000..9c615ce923 --- /dev/null +++ b/TargetLibraries/Snitch/src/RMSNrom_fp32.c @@ -0,0 +1,50 @@ +/* + * SPDX-FileCopyrightText: 2026 ETH Zurich and University of Bologna + * + * SPDX-License-Identifier: Apache-2.0 + */ + +#include "DeeploySnitchMath.h" +#include + +void RMSNorm_fp32(float32_t *data_in, float32_t *weight, float32_t *data_out, + uint32_t size, uint32_t lastDimLength, float32_t eps) { + + uint32_t core_id = snrt_global_compute_core_idx(); + uint32_t numThreads = snrt_global_compute_core_num(); + + uint32_t num_vectors = size / lastDimLength; + + // Parallelize across vectors (batch * sequence dimension) + uint32_t vectors_per_core = num_vectors / numThreads; + uint32_t remainder = num_vectors % numThreads; + + uint32_t start_vec, num_vecs; + if (core_id < remainder) { + num_vecs = vectors_per_core + 1; + start_vec = core_id * num_vecs; + } else { + num_vecs = vectors_per_core; + start_vec = core_id * vectors_per_core + remainder; + } + + for (uint32_t v = start_vec; v < start_vec + num_vecs; v++) { + float32_t *in_ptr = data_in + v * lastDimLength; + float32_t *out_ptr = data_out + v * lastDimLength; + + // Compute sum of squares + float32_t sum_sq = 0.0f; + for (uint32_t i = 0; i < lastDimLength; i++) { + sum_sq += in_ptr[i] * in_ptr[i]; + } + + // Compute RMS with epsilon + float32_t rms = sqrtf(sum_sq / (float32_t)lastDimLength + eps); + float32_t inv_rms = 1.0f / rms; + + // Apply normalization and weight + for (uint32_t i = 0; i < lastDimLength; i++) { + out_ptr[i] = in_ptr[i] * inv_rms * weight[i]; + } + } +} From 1bdf9c939a8d9420b6455e2ae6c2ec68084a772c Mon Sep 17 00:00:00 2001 From: lee2716 Date: Sat, 31 Jan 2026 12:11:34 +0100 Subject: [PATCH 02/57] Add tiling support for MicroLlama on Snitch Add SnitchTiledPlatform with TileConstraints for FP32 operators: - FloatDivTileConstraint: Division tiling with scalar broadcast - FloatMulTileConstraint: Multiplication tiling with scalar broadcast - ReshapeTileConstraint: Pass-through tiling for reshape Updates: - SnitchClusterTiling with tiled code transformation passes - Tiler.py with new tile constraints registration - platformMapping.py adds Snitch_tiled platform - testRunner_tiled_snitch.py for tiled model testing - CI workflows for both untiled and tiled Snitch --- .../workflows/ci-platform-snitch-tiled.yml | 22 ++- .github/workflows/ci-platform-snitch.yml | 24 ++- CMakeLists.txt | 8 +- .../SnitchClusterTiling.py | 24 ++- .../TileConstraints/FloatDivTileConstraint.py | 112 ++++++++++++++ .../TileConstraints/FloatMulTileConstraint.py | 112 ++++++++++++++ .../TileConstraints/ReshapeTileConstraint.py | 143 ++++++++++++++++++ .../Snitch/TileConstraints/__init__.py | 3 + Deeploy/Targets/Snitch/Tiler.py | 42 ++++- DeeployTest/testUtils/platformMapping.py | 9 +- 10 files changed, 485 insertions(+), 14 deletions(-) create mode 100644 Deeploy/Targets/Snitch/TileConstraints/FloatDivTileConstraint.py create mode 100644 Deeploy/Targets/Snitch/TileConstraints/FloatMulTileConstraint.py create mode 100644 Deeploy/Targets/Snitch/TileConstraints/ReshapeTileConstraint.py diff --git a/.github/workflows/ci-platform-snitch-tiled.yml b/.github/workflows/ci-platform-snitch-tiled.yml index 5390d8ad16..4ebb9aba9a 100644 --- a/.github/workflows/ci-platform-snitch-tiled.yml +++ b/.github/workflows/ci-platform-snitch-tiled.yml @@ -35,4 +35,24 @@ jobs: with: runner: ${{ needs.select-env.outputs.runner }} docker-image: ${{ needs.select-env.outputs.image }} - pytest-marker: "kernels and singlebuffer and l2" + tests-config: | + [ + {"name":"Kernels/Integer/Add/Large","L1":[5000,10000]}, + {"name":"Kernels/Integer/Softmax/Large","L1":[5000,10000]}, + + {"name":"Kernels/FP32/Softmax/Regular","L1":[2000,5000,10000]}, + {"name":"Kernels/FP32/RMSNorm_fused","L1":[2000,5000,10000]}, + {"name":"Kernels/FP32/MatMul","L1":[2000,5000,10000]}, + {"name":"Kernels/FP32/Add/Regular","L1":[2000,5000,10000]}, + {"name":"Kernels/FP32/Hardswish","L1":[2000,5000,10000]}, + {"name":"Kernels/FP32/Div","L1":[2000,5000,10000]}, + + {"name":"Kernels/FP32/GEMM/Regular","L1":[2000,5000,10000]}, + {"name":"Kernels/FP32/GEMM/TransB","L1":[2000,5000,10000]}, + + {"name":"Kernels/Integer/iNoNorm","L1":[5000,10000]}, + {"name":"Kernels/Integer/Add/Regular_RQ","L1":[5000,10000]}, + {"name":"Kernels/Integer/GEMM/Regular_RQPerRow","L1":[2000,5000]} + ] + simulators: | + gvsoc diff --git a/.github/workflows/ci-platform-snitch.yml b/.github/workflows/ci-platform-snitch.yml index c1ae694148..f3a1f8722f 100644 --- a/.github/workflows/ci-platform-snitch.yml +++ b/.github/workflows/ci-platform-snitch.yml @@ -35,4 +35,26 @@ jobs: with: runner: ${{ needs.select-env.outputs.runner }} docker-image: ${{ needs.select-env.outputs.image }} - pytest-marker: "kernels" + test-names: | + Kernels/FP32/Softmax/Regular + Kernels/FP32/RMSNorm_fused + Kernels/FP32/MatMul + Kernels/FP32/Add/Regular + Kernels/FP32/Hardswish + Kernels/FP32/Div + + Kernels/Integer/Add/Large + Kernels/Integer/Add/Regular + + Kernels/Integer/Softmax/Large + Kernels/Integer/Softmax/Regular + + Kernels/Integer/MatMul/Regular + + Kernels/Integer/iNoNorm + Kernels/Integer/GEMM/Regular_RQPerRow + Kernels/Integer/Add/Regular_RQ + Kernels/Integer/GEMM/TransB_RQ + num-cores: 9 + simulators: | + gvsoc diff --git a/CMakeLists.txt b/CMakeLists.txt index 4c8a024c15..6e271584bd 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -20,8 +20,8 @@ if(TOOLCHAIN STREQUAL GCC) set(CMAKE_INTERPROCEDURAL_OPTIMIZATION TRUE) endif() -set(platform MemPool CACHE STRING "Platform (MemPool, SoftHier, QEMU, Siracusa, Siracusa_w_neureka, PULP-Open, GAP9, Generic, Snitch)") -set_property(CACHE platform PROPERTY STRINGS MemPool SoftHier QEMU Siracusa Siracusa_w_neureka PULP-Open GAP9 Generic Snitch) +set(platform MemPool CACHE STRING "Platform (MemPool, SoftHier, QEMU, Siracusa, Siracusa_w_neureka, PULP-Open, GAP9, Generic, Snitch, Snitch_tiled)") +set_property(CACHE platform PROPERTY STRINGS MemPool SoftHier QEMU Siracusa Siracusa_w_neureka PULP-Open GAP9 Generic Snitch Snitch_tiled) if(platform STREQUAL MemPool) message(STATUS "Building for platform 'MemPool'") @@ -42,6 +42,8 @@ elseif(platform STREQUAL Generic) message(STATUS "Building for platform 'Generic'") elseif(platform STREQUAL Snitch) message(STATUS "Building for platform 'Snitch'") +elseif(platform STREQUAL Snitch_tiled) + message(STATUS "Building for platform 'Snitch_tiled'") elseif(platform STREQUAL SoftHier) message(STATUS "Building for platform 'SoftHier'") elseif(platform STREQUAL Chimera) @@ -243,7 +245,7 @@ if(platform STREQUAL GAP9) endif() -if(platform STREQUAL Snitch) +if(platform STREQUAL Snitch OR platform STREQUAL Snitch_tiled) if(TOOLCHAIN STREQUAL LLVM) set(CMAKE_TOOLCHAIN_FILE ${CMAKE_CURRENT_LIST_DIR}/cmake/snitch/toolchain_llvm.cmake) diff --git a/Deeploy/Targets/Snitch/CodeTransformationPasses/SnitchClusterTiling.py b/Deeploy/Targets/Snitch/CodeTransformationPasses/SnitchClusterTiling.py index e8204f6ae2..a3e10ed188 100644 --- a/Deeploy/Targets/Snitch/CodeTransformationPasses/SnitchClusterTiling.py +++ b/Deeploy/Targets/Snitch/CodeTransformationPasses/SnitchClusterTiling.py @@ -23,15 +23,31 @@ class SnitchClusterTilingDB(DoubleBufferingTilingCodeGeneration): class ProfilingSnitchClusterTilingSB(SingleBufferingTilingCodeGeneration, ProfilingSingleBufferingTilingMixIn): _printCycleDifference = NodeTemplate(r""" - printf("%s%u][Core %d] %s%u%s", ${prefixStr}, ${profileIdxVar}, snrt_global_core_idx(), "${flavorStr}", \ - ${measurementsEnd}[${profileIdxVar}] - ${measurementsStart}[${profileIdxVar}], ${suffixStr}); + printf("%s%u][Core %d] %s%6u%s", ${prefixStr}, ${profileIdxVar}, snrt_global_core_idx(), "${flavorStr}", \ + ${measurement}, ${suffixStr}); + """) + + _printCycleContribution = NodeTemplate(r""" + uint32_t total = ${measurementInput} + ${measurementKernel} + ${measurementOutput}; + uint32_t dma = ${measurementInput} + ${measurementOutput}; + float overhead_percentage = (total == 0) ? 0 : dma * 100.0f / total; + float kernel_percentage = (total == 0) ? 0 : ${measurementKernel} * 100.0f / total; + printf("%s%u][Core %d] Total :%6u cycles (%2.1f%% Kernel + %2.1f%% Overhead, %u + %u)\n", ${prefixStr}, ${profileIdxVar}, snrt_global_core_idx(), total, kernel_percentage, overhead_percentage, ${measurementKernel}, dma); """) class ProfilingSnitchClusterTilingDB(DoubleBufferingTilingCodeGeneration, ProfilingDoubleBufferingTilingMixIn): _printCycleDifference = NodeTemplate(r""" - printf("%s%u][Core %d] %s%u%s", ${prefixStr}, ${profileIdxVar}, snrt_global_core_idx(), "${flavorStr}", \ - ${measurementsEnd}[${profileIdxVar}] - ${measurementsStart}[${profileIdxVar}], ${suffixStr}); + printf("%s%u][Core %d] %s%6u%s", ${prefixStr}, ${profileIdxVar}, snrt_global_core_idx(), "${flavorStr}", \ + ${measurement}, ${suffixStr}); + """) + + _printCycleContribution = NodeTemplate(r""" + uint32_t total = ${measurementInput} + ${measurementKernel} + ${measurementOutput}; + uint32_t dma = ${measurementInput} + ${measurementOutput}; + float overhead_percentage = (total == 0) ? 0 : dma * 100.0f / total; + float kernel_percentage = (total == 0) ? 0 : ${measurementKernel} * 100.0f / total; + printf("%s%u][Core %d] Total :%6u cycles (%2.1f%% Kernel + %2.1f%% Overhead, %u + %u)\n", ${prefixStr}, ${profileIdxVar}, snrt_global_core_idx(), total, kernel_percentage, overhead_percentage, ${measurementKernel}, dma); """) diff --git a/Deeploy/Targets/Snitch/TileConstraints/FloatDivTileConstraint.py b/Deeploy/Targets/Snitch/TileConstraints/FloatDivTileConstraint.py new file mode 100644 index 0000000000..b9b07be30a --- /dev/null +++ b/Deeploy/Targets/Snitch/TileConstraints/FloatDivTileConstraint.py @@ -0,0 +1,112 @@ +# SPDX-FileCopyrightText: 2024 ETH Zurich and University of Bologna +# +# SPDX-License-Identifier: Apache-2.0 + +from typing import Dict, List, Tuple + +import numpy as np + +from Deeploy.AbstractDataTypes import PointerClass +from Deeploy.CommonExtensions.DataTypes import uint16_t +from Deeploy.DeeployTypes import NetworkContext, OperatorRepresentation +from Deeploy.TilingExtension.MemoryConstraints import NodeMemoryConstraint +from Deeploy.TilingExtension.TileConstraint import TileConstraint +from Deeploy.TilingExtension.TilerModel import TilerModel +from Deeploy.TilingExtension.TilingCodegen import AbsoluteHyperRectangle, HyperRectangle, TilingSchedule, \ + VariableReplacementScheme + + +class FloatDivTileConstraint(TileConstraint): + """Tile constraint for FP32 Div operation supporting scalar broadcasting.""" + + dataIn1Name = "input1" + dataIn2Name = "input2" + dataOutName = "output" + + @classmethod + def addGeometricalConstraint(cls, tilerModel: TilerModel, parseDict: Dict, ctxt: NetworkContext) -> TilerModel: + + inputBuffer1Name = parseDict[cls.dataIn1Name] + inputBuffer2Name = parseDict[cls.dataIn2Name] + outputBufferName = parseDict[cls.dataOutName] + + input1Shape = ctxt.lookup(inputBuffer1Name).shape + input2Shape = ctxt.lookup(inputBuffer2Name).shape + + # Add tensor dimensions to model + tilerModel.addTensorDimToModel(ctxt, inputBuffer1Name) + tilerModel.addTensorDimToModel(ctxt, outputBufferName) + + # Check if input2 is scalar (total size == 1) + is_scalar = np.prod(input2Shape) == 1 + + if is_scalar: + # Scalar broadcasting: input2 is a scalar, don't tile it + # Only add input2 dimensions if it has more than 0 dims + if len(input2Shape) > 0: + tilerModel.addTensorDimToModel(ctxt, inputBuffer2Name) + # Constrain scalar to remain untiled (size 1) + for dim in range(len(input2Shape)): + input2DimVar = tilerModel.getTensorDimVar(tensorName = inputBuffer2Name, dimIdx = dim) + tilerModel.addConstraint(input2DimVar == input2Shape[dim]) + + # Input1 and output must have same dimensions + for dim in range(len(input1Shape)): + inputDim1Var = tilerModel.getTensorDimVar(tensorName = inputBuffer1Name, dimIdx = dim) + outputDimVar = tilerModel.getTensorDimVar(tensorName = outputBufferName, dimIdx = dim) + tilerModel.addConstraint(inputDim1Var == outputDimVar) + else: + # Element-wise: both inputs must have same shape + tilerModel.addTensorDimToModel(ctxt, inputBuffer2Name) + + for dim in range(len(input1Shape)): + inputDim1Var = tilerModel.getTensorDimVar(tensorName = inputBuffer1Name, dimIdx = dim) + inputDim2Var = tilerModel.getTensorDimVar(tensorName = inputBuffer2Name, dimIdx = dim) + outputDimVar = tilerModel.getTensorDimVar(tensorName = outputBufferName, dimIdx = dim) + + tilerModel.addConstraint(inputDim1Var == inputDim2Var) + tilerModel.addConstraint(inputDim1Var == outputDimVar) + + return tilerModel + + @classmethod + def serializeTilingSolution( + cls, tilingSolution: NodeMemoryConstraint, absoluteOutputCubes: List[AbsoluteHyperRectangle], + targetMemLevel: str, ctxt: NetworkContext, + operatorRepresentation: OperatorRepresentation) -> Tuple[VariableReplacementScheme, TilingSchedule]: + outputCubes = [cube.rectangle for cube in absoluteOutputCubes] + + addrNames = [cls.dataIn1Name, cls.dataIn2Name, cls.dataOutName] + inputBaseOffsets, outputBaseOffsets = cls.extractBaseAddr(tilingSolution, targetMemLevel, + operatorRepresentation, addrNames) + + replacements = {"size": []} + replacementTypes = {"size": PointerClass(uint16_t)} + + # Check if scalar broadcasting + input2Name = operatorRepresentation[cls.dataIn2Name] + input2Shape = ctxt.lookup(input2Name).shape + is_scalar = np.prod(input2Shape) == 1 + + for cube in outputCubes: + newSize = np.prod(cube.dims) + replacements["size"].append(newSize) + + inputLoadSchedule = [] + outputLoadSchedule = [] + + for cube in outputCubes: + if is_scalar: + # For scalar, load the entire scalar tensor (size 1) + scalarCube = HyperRectangle(tuple([0] * len(input2Shape)), tuple(input2Shape)) + inputLoadSchedule.append({cls.dataIn1Name: cube, cls.dataIn2Name: scalarCube}) + else: + inputLoadSchedule.append({cls.dataIn1Name: cube, cls.dataIn2Name: cube}) + + for out in outputCubes: + outputLoadSchedule.append({cls.dataOutName: out}) + + tilingSchedule = TilingSchedule(inputBaseOffsets, outputBaseOffsets, inputLoadSchedule, outputLoadSchedule) + variableReplacementSchedule = VariableReplacementScheme(replacements, replacementTypes) + + return variableReplacementSchedule, tilingSchedule diff --git a/Deeploy/Targets/Snitch/TileConstraints/FloatMulTileConstraint.py b/Deeploy/Targets/Snitch/TileConstraints/FloatMulTileConstraint.py new file mode 100644 index 0000000000..99df639004 --- /dev/null +++ b/Deeploy/Targets/Snitch/TileConstraints/FloatMulTileConstraint.py @@ -0,0 +1,112 @@ +# SPDX-FileCopyrightText: 2024 ETH Zurich and University of Bologna +# +# SPDX-License-Identifier: Apache-2.0 + +from typing import Dict, List, Tuple + +import numpy as np + +from Deeploy.AbstractDataTypes import PointerClass +from Deeploy.CommonExtensions.DataTypes import uint16_t +from Deeploy.DeeployTypes import NetworkContext, OperatorRepresentation +from Deeploy.TilingExtension.MemoryConstraints import NodeMemoryConstraint +from Deeploy.TilingExtension.TileConstraint import TileConstraint +from Deeploy.TilingExtension.TilerModel import TilerModel +from Deeploy.TilingExtension.TilingCodegen import AbsoluteHyperRectangle, HyperRectangle, TilingSchedule, \ + VariableReplacementScheme + + +class FloatMulTileConstraint(TileConstraint): + """Tile constraint for FP32 Mul operation supporting scalar broadcasting.""" + + dataIn1Name = "A" + dataIn2Name = "B" + dataOutName = "C" + + @classmethod + def addGeometricalConstraint(cls, tilerModel: TilerModel, parseDict: Dict, ctxt: NetworkContext) -> TilerModel: + + inputBuffer1Name = parseDict[cls.dataIn1Name] + inputBuffer2Name = parseDict[cls.dataIn2Name] + outputBufferName = parseDict[cls.dataOutName] + + input1Shape = ctxt.lookup(inputBuffer1Name).shape + input2Shape = ctxt.lookup(inputBuffer2Name).shape + + # Add tensor dimensions to model + tilerModel.addTensorDimToModel(ctxt, inputBuffer1Name) + tilerModel.addTensorDimToModel(ctxt, outputBufferName) + + # Check if input2 is scalar (total size == 1) + is_scalar = np.prod(input2Shape) == 1 + + if is_scalar: + # Scalar broadcasting: input2 is a scalar, don't tile it + # Only add input2 dimensions if it has more than 0 dims + if len(input2Shape) > 0: + tilerModel.addTensorDimToModel(ctxt, inputBuffer2Name) + # Constrain scalar to remain untiled (size 1) + for dim in range(len(input2Shape)): + input2DimVar = tilerModel.getTensorDimVar(tensorName = inputBuffer2Name, dimIdx = dim) + tilerModel.addConstraint(input2DimVar == input2Shape[dim]) + + # Input1 and output must have same dimensions + for dim in range(len(input1Shape)): + inputDim1Var = tilerModel.getTensorDimVar(tensorName = inputBuffer1Name, dimIdx = dim) + outputDimVar = tilerModel.getTensorDimVar(tensorName = outputBufferName, dimIdx = dim) + tilerModel.addConstraint(inputDim1Var == outputDimVar) + else: + # Element-wise: both inputs must have same shape + tilerModel.addTensorDimToModel(ctxt, inputBuffer2Name) + + for dim in range(len(input1Shape)): + inputDim1Var = tilerModel.getTensorDimVar(tensorName = inputBuffer1Name, dimIdx = dim) + inputDim2Var = tilerModel.getTensorDimVar(tensorName = inputBuffer2Name, dimIdx = dim) + outputDimVar = tilerModel.getTensorDimVar(tensorName = outputBufferName, dimIdx = dim) + + tilerModel.addConstraint(inputDim1Var == inputDim2Var) + tilerModel.addConstraint(inputDim1Var == outputDimVar) + + return tilerModel + + @classmethod + def serializeTilingSolution( + cls, tilingSolution: NodeMemoryConstraint, absoluteOutputCubes: List[AbsoluteHyperRectangle], + targetMemLevel: str, ctxt: NetworkContext, + operatorRepresentation: OperatorRepresentation) -> Tuple[VariableReplacementScheme, TilingSchedule]: + outputCubes = [cube.rectangle for cube in absoluteOutputCubes] + + addrNames = [cls.dataIn1Name, cls.dataIn2Name, cls.dataOutName] + inputBaseOffsets, outputBaseOffsets = cls.extractBaseAddr(tilingSolution, targetMemLevel, + operatorRepresentation, addrNames) + + replacements = {"size": []} + replacementTypes = {"size": PointerClass(uint16_t)} + + # Check if scalar broadcasting + input2Name = operatorRepresentation[cls.dataIn2Name] + input2Shape = ctxt.lookup(input2Name).shape + is_scalar = np.prod(input2Shape) == 1 + + for cube in outputCubes: + newSize = np.prod(cube.dims) + replacements["size"].append(newSize) + + inputLoadSchedule = [] + outputLoadSchedule = [] + + for cube in outputCubes: + if is_scalar: + # For scalar, load the entire scalar tensor (size 1) + scalarCube = HyperRectangle(tuple([0] * len(input2Shape)), tuple(input2Shape)) + inputLoadSchedule.append({cls.dataIn1Name: cube, cls.dataIn2Name: scalarCube}) + else: + inputLoadSchedule.append({cls.dataIn1Name: cube, cls.dataIn2Name: cube}) + + for out in outputCubes: + outputLoadSchedule.append({cls.dataOutName: out}) + + tilingSchedule = TilingSchedule(inputBaseOffsets, outputBaseOffsets, inputLoadSchedule, outputLoadSchedule) + variableReplacementSchedule = VariableReplacementScheme(replacements, replacementTypes) + + return variableReplacementSchedule, tilingSchedule diff --git a/Deeploy/Targets/Snitch/TileConstraints/ReshapeTileConstraint.py b/Deeploy/Targets/Snitch/TileConstraints/ReshapeTileConstraint.py new file mode 100644 index 0000000000..1bafa36e3b --- /dev/null +++ b/Deeploy/Targets/Snitch/TileConstraints/ReshapeTileConstraint.py @@ -0,0 +1,143 @@ +# SPDX-FileCopyrightText: 2024 ETH Zurich and University of Bologna +# +# SPDX-License-Identifier: Apache-2.0 + +from typing import Dict, List, Tuple + +import numpy as np + +from Deeploy.AbstractDataTypes import PointerClass +from Deeploy.CommonExtensions.DataTypes import uint16_t +from Deeploy.DeeployTypes import NetworkContext, OperatorRepresentation +from Deeploy.TilingExtension.MemoryConstraints import NodeMemoryConstraint +from Deeploy.TilingExtension.TileConstraint import TileConstraint +from Deeploy.TilingExtension.TilerModel import TilerModel +from Deeploy.TilingExtension.TilingCodegen import AbsoluteHyperRectangle, HyperRectangle, TilingSchedule, \ + VariableReplacementScheme + + +class ReshapeTileConstraint(TileConstraint): + """Tile constraint for Reshape operation - a NOP that just reinterprets data layout.""" + + @staticmethod + def addGeometricalConstraint(tilerModel: TilerModel, parseDict: Dict, ctxt: NetworkContext) -> TilerModel: + + inputBufferName = parseDict['data_in'] + outputBufferName = parseDict['data_out'] + + pointer: List[str] = [] + + for key, value in parseDict.items(): + if not isinstance(value, str): + continue + + if ctxt.is_global(value) or ctxt.is_local(value): + pointer.append(value) + + # Add I/O dimensions to the model as variables + for bufferName in [inputBufferName, outputBufferName]: + _buffer = ctxt.lookup(bufferName) + tilerModel.addTensorDimToModel(ctxt, bufferName) + + for idx, shapeDim in enumerate(_buffer.shape): + tilerModel.addConstraint(tilerModel.getTensorDimVar(tensorName = bufferName, dimIdx = idx) <= shapeDim) + + # Constrain total elements to be equal + inputBuffer = ctxt.lookup(inputBufferName) + outputBuffer = ctxt.lookup(outputBufferName) + + # For reshape, we want the tiles to have the same total number of elements + # This is automatically satisfied if we tile based on output and compute input from that + + # Remove unused tensors from deployment + for bufferName in pointer: + if bufferName not in [inputBufferName, outputBufferName]: + ctxt.lookup(bufferName)._deploy = False + + return tilerModel + + @classmethod + def serializeTilingSolution( + cls, tilingSolution: NodeMemoryConstraint, absoluteOutputCubes: List[AbsoluteHyperRectangle], + targetMemLevel: str, ctxt: NetworkContext, + operatorRepresentation: OperatorRepresentation) -> Tuple[VariableReplacementScheme, TilingSchedule]: + outputCubes = [cube.rectangle for cube in absoluteOutputCubes] + + addrNames = ['data_in', 'data_out'] + inputBaseOffsets, outputBaseOffsets = cls.extractBaseAddr(tilingSolution, targetMemLevel, + operatorRepresentation, addrNames) + + # For reshape, input and output have the same data, just different interpretations + # We need to compute the corresponding input cube for each output cube + inputName = operatorRepresentation['data_in'] + outputName = operatorRepresentation['data_out'] + inputShape = ctxt.lookup(inputName).shape + outputShape = ctxt.lookup(outputName).shape + + replacements = {"size": []} + replacementTypes = {"size": PointerClass(uint16_t)} + + inputLoadSchedule = [] + outputLoadSchedule = [] + + for cube in outputCubes: + # Calculate the flat offset and size for the output cube + outSize = np.prod(cube.dims) + replacements["size"].append(outSize) + + # For reshape, we need to map output cube to input cube + # Calculate flat index range for output cube + outOffset = 0 + outStrides = [] + stride = 1 + for dim in reversed(outputShape): + outStrides.insert(0, stride) + stride *= dim + + for i, (off, dim) in enumerate(zip(cube.offset, cube.dims)): + outOffset += off * outStrides[i] + + # Convert flat offset to input coordinates + inStrides = [] + stride = 1 + for dim in reversed(inputShape): + inStrides.insert(0, stride) + stride *= dim + + inOffset = [] + remaining = outOffset + for i, stride in enumerate(inStrides): + inOffset.append(remaining // stride) + remaining = remaining % stride + + # Calculate input cube dimensions + # For simplicity, treat as 1D cube in input space + inCubeDims = list(inputShape) + inCubeOffset = [0] * len(inputShape) + + # Set the last dimension to the size, and offset based on flat index + totalSize = outSize + if len(inputShape) > 0: + # Compute proper input cube that covers the same elements + # Use a simple approach: linearize the input + inCubeOffset = list(inOffset) + inCubeDims = [1] * len(inputShape) + inCubeDims[-1] = min(totalSize, inputShape[-1] - inCubeOffset[-1]) + remaining = totalSize - inCubeDims[-1] + + for i in range(len(inputShape) - 2, -1, -1): + if remaining <= 0: + break + inCubeDims[i] = min(remaining // np.prod(inputShape[i + 1:]) + 1, inputShape[i]) + remaining -= (inCubeDims[i] - 1) * np.prod(inputShape[i + 1:]) + + inputCube = HyperRectangle(tuple(inCubeOffset), tuple(inCubeDims)) + inputLoadSchedule.append({"data_in": inputCube}) + + for out in outputCubes: + outputLoadSchedule.append({"data_out": out}) + + tilingSchedule = TilingSchedule(inputBaseOffsets, outputBaseOffsets, inputLoadSchedule, outputLoadSchedule) + variableReplacementSchedule = VariableReplacementScheme(replacements, replacementTypes) + + return variableReplacementSchedule, tilingSchedule diff --git a/Deeploy/Targets/Snitch/TileConstraints/__init__.py b/Deeploy/Targets/Snitch/TileConstraints/__init__.py index 947a6fd82a..aece19d881 100644 --- a/Deeploy/Targets/Snitch/TileConstraints/__init__.py +++ b/Deeploy/Targets/Snitch/TileConstraints/__init__.py @@ -3,5 +3,8 @@ # SPDX-License-Identifier: Apache-2.0 from . import * +from .FloatDivTileConstraint import * +from .FloatMulTileConstraint import * from .iNoNormTileConstraint import * from .iSoftmaxTileConstraint import * +from .ReshapeTileConstraint import * diff --git a/Deeploy/Targets/Snitch/Tiler.py b/Deeploy/Targets/Snitch/Tiler.py index 475a425779..5a5f4d0bf4 100644 --- a/Deeploy/Targets/Snitch/Tiler.py +++ b/Deeploy/Targets/Snitch/Tiler.py @@ -3,10 +3,21 @@ # SPDX-License-Identifier: Apache-2.0 from Deeploy.Targets.Generic.TileConstraints.AddTileConstraint import AddTileConstraint -from Deeploy.Targets.Snitch.Bindings import SnitchAddBindings, SnitchGemmBindings, SnitchiNoNormBindings, \ - SnitchiSoftmaxBindings, SnitchRQAddBindings, SnitchRqGemmBindings +from Deeploy.Targets.Generic.TileConstraints.ConcatTileConstraint import ConcatTileConstraint +from Deeploy.Targets.Generic.TileConstraints.iHardswishTileConstraint import iHardswishTileConstraint +from Deeploy.Targets.Generic.TileConstraints.iRMSNormTileConstraint import iRMSNormTileConstraint +from Deeploy.Targets.Generic.TileConstraints.TransposeTileConstraint import TransposeTileConstraint +from Deeploy.Targets.PULPOpen.TileConstraints.GatherTileConstraint import GatherTileConstraint +from Deeploy.Targets.PULPOpen.TileConstraints.MatMulTileConstraint import MatMulTileConstraint +from Deeploy.Targets.Snitch.Bindings import SnitchAddBindings, SnitchConcatBindings, SnitchDivBindings, \ + SnitchGatherBindings, SnitchGemmBindings, SnitchHardSwishBindings, SnitchiNoNormBindings, SnitchiSoftmaxBindings, \ + SnitchMatMulBindings, SnitchMulBindings, SnitchReshapeBindings, SnitchRMSNormBindings, SnitchRQAddBindings, \ + SnitchRqGemmBindings, SnitchTransposeBindings from Deeploy.Targets.Snitch.TileConstraints import iNoNormTileConstraint, iSoftmaxTileConstraint +from Deeploy.Targets.Snitch.TileConstraints.FloatDivTileConstraint import FloatDivTileConstraint +from Deeploy.Targets.Snitch.TileConstraints.FloatMulTileConstraint import FloatMulTileConstraint from Deeploy.Targets.Snitch.TileConstraints.GemmTileConstraint import GemmTileConstraint +from Deeploy.Targets.Snitch.TileConstraints.ReshapeTileConstraint import ReshapeTileConstraint from Deeploy.Targets.Snitch.TileConstraints.RqGemmTileConstraint import RqGemmTileConstraint from Deeploy.TilingExtension.TilerExtension import TilingReadyNodeBindings @@ -23,3 +34,30 @@ SnitchAddTileReadyBindings = TilingReadyNodeBindings(nodeBindings = SnitchAddBindings, tileConstraint = AddTileConstraint()) + +SnitchRMSNormTilingReadyBindings = TilingReadyNodeBindings(nodeBindings = SnitchRMSNormBindings, + tileConstraint = iRMSNormTileConstraint()) + +SnitchHardSwishTilingReadyBindings = TilingReadyNodeBindings(nodeBindings = SnitchHardSwishBindings, + tileConstraint = iHardswishTileConstraint()) + +SnitchDivTilingReadyBindings = TilingReadyNodeBindings(nodeBindings = SnitchDivBindings, + tileConstraint = FloatDivTileConstraint()) + +SnitchMulTilingReadyBindings = TilingReadyNodeBindings(nodeBindings = SnitchMulBindings, + tileConstraint = FloatMulTileConstraint()) + +SnitchMatMulTilingReadyBindings = TilingReadyNodeBindings(nodeBindings = SnitchMatMulBindings, + tileConstraint = MatMulTileConstraint()) + +SnitchConcatTilingReadyBindings = TilingReadyNodeBindings(nodeBindings = SnitchConcatBindings, + tileConstraint = ConcatTileConstraint()) + +SnitchTransposeTilingReadyBindings = TilingReadyNodeBindings(nodeBindings = SnitchTransposeBindings, + tileConstraint = TransposeTileConstraint()) + +SnitchReshapeTilingReadyBindings = TilingReadyNodeBindings(nodeBindings = SnitchReshapeBindings, + tileConstraint = ReshapeTileConstraint()) + +SnitchGatherTilingReadyBindings = TilingReadyNodeBindings(nodeBindings = SnitchGatherBindings, + tileConstraint = GatherTileConstraint()) diff --git a/DeeployTest/testUtils/platformMapping.py b/DeeployTest/testUtils/platformMapping.py index 9d526906f9..5e63a5cfb7 100644 --- a/DeeployTest/testUtils/platformMapping.py +++ b/DeeployTest/testUtils/platformMapping.py @@ -26,12 +26,12 @@ from Deeploy.Targets.PULPOpen.Deployer import PULPDeployer from Deeploy.Targets.PULPOpen.Platform import MemoryPULPPlatform, MemoryPULPPlatformWrapper, PULPOptimizer, PULPPlatform from Deeploy.Targets.Snitch.Deployer import SnitchDeployer -from Deeploy.Targets.Snitch.Platform import SnitchOptimizer, SnitchPlatform +from Deeploy.Targets.Snitch.Platform import SnitchOptimizer, SnitchPlatform, SnitchTiledPlatform from Deeploy.Targets.SoftHier.Deployer import SoftHierDeployer from Deeploy.Targets.SoftHier.Platform import SoftHierOptimizer, SoftHierPlatform _SIGNPROP_PLATFORMS = ["Apollo3", "Apollo4", "QEMU-ARM", "Generic", "MemPool", "SoftHier"] -_NONSIGNPROP_PLATFORMS = ["Siracusa", "Siracusa_w_neureka", "PULPOpen", "Snitch", "Chimera", "GAP9"] +_NONSIGNPROP_PLATFORMS = ["Siracusa", "Siracusa_w_neureka", "PULPOpen", "Snitch", "Snitch_tiled", "Chimera", "GAP9"] _PLATFORMS = _SIGNPROP_PLATFORMS + _NONSIGNPROP_PLATFORMS @@ -70,6 +70,9 @@ def mapPlatform(platformName: str) -> Tuple[DeploymentPlatform, bool]: elif platformName == "Snitch": Platform = SnitchPlatform() + elif platformName == "Snitch_tiled": + Platform = SnitchTiledPlatform() + elif platformName == "SoftHier": Platform = SoftHierPlatform() @@ -241,7 +244,7 @@ def mapDeployer(platform: DeploymentPlatform, default_channels_first = default_channels_first, deeployStateDir = deeployStateDir) - elif isinstance(platform, (SnitchPlatform)): + elif isinstance(platform, (SnitchPlatform, SnitchTiledPlatform)): if loweringOptimizer is None: loweringOptimizer = SnitchOptimizer From 35d51efd0ed1d993162db21dd0d608852c19c154 Mon Sep 17 00:00:00 2001 From: lee2716 Date: Tue, 3 Feb 2026 11:47:27 +0100 Subject: [PATCH 03/57] Fix Snitch tiled platform by unifying mapping to use TilingReadyBindings Previously the Snitch platform had separate tiled/untiled mappings (SnitchMapping vs SnitchTiledMapping), but mapPlatform() only returned SnitchPlatform with the untiled mapping, causing tiled tests to fail with missing tileConstraint. Unified to a single mapping using TilingReadyBindings for all operators, matching the upstream pattern used by PULPOpen. --- CMakeLists.txt | 2 - Deeploy/Targets/Snitch/Platform.py | 144 +++++------------------ DeeployTest/testUtils/platformMapping.py | 7 +- 3 files changed, 31 insertions(+), 122 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 6e271584bd..6bb752edb5 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -42,8 +42,6 @@ elseif(platform STREQUAL Generic) message(STATUS "Building for platform 'Generic'") elseif(platform STREQUAL Snitch) message(STATUS "Building for platform 'Snitch'") -elseif(platform STREQUAL Snitch_tiled) - message(STATUS "Building for platform 'Snitch_tiled'") elseif(platform STREQUAL SoftHier) message(STATUS "Building for platform 'SoftHier'") elseif(platform STREQUAL Chimera) diff --git a/Deeploy/Targets/Snitch/Platform.py b/Deeploy/Targets/Snitch/Platform.py index 32bf53190f..bb37c8a2fe 100644 --- a/Deeploy/Targets/Snitch/Platform.py +++ b/Deeploy/Targets/Snitch/Platform.py @@ -9,9 +9,8 @@ from Deeploy.AbstractDataTypes import Pointer, PointerClass, VoidType from Deeploy.DeeployTypes import ConstantBuffer, DeploymentEngine, DeploymentPlatform, NodeMapper, NodeTemplate, \ StructBuffer, TopologyOptimizer, TransientBuffer, VariableBuffer -from Deeploy.Targets.Generic.Bindings import BasicConcatBindings, BasicGatherBindings, BasicLayerNormBindings, \ - BasicMatMulBindings, BasicPad1DBindings, BasicPad2DBindings, BasicReshapeBindings, BasicRQIntegerDivBinding, \ - BasicTransposeBindings +from Deeploy.Targets.Generic.Bindings import BasicLayerNormBindings, BasicPad1DBindings, BasicPad2DBindings, \ + BasicRQIntegerDivBinding from Deeploy.Targets.Generic.Layers import AddLayer, ConcatLayer, DivLayer, GatherLayer, GEMMLayer, HardSwishLayer, \ LayerNormLayer, MatMulLayer, MulLayer, PadLayer, ReshapeLayer, RMSNormLayer, RQGEMMLayer, RQIntegerDivLayer, \ SoftmaxLayer, TransposeLayer, iNoNormLayer @@ -22,49 +21,41 @@ from Deeploy.Targets.Generic.TopologyOptimizationPasses.Passes import AddRequantMergePass, GEMMRequantMergePass, \ IntegerDivRequantMergePass, MergeConstAddAndRequantPass, MergeTrueIntegerDivRequantShiftPass, RQSSplitPass, \ SkipEmptyConcatPass, SkipUnityRequantPass, iGELURequantMergePass, iHardswishRequantMergePass -from Deeploy.Targets.PULPOpen.Platform import RQAddMapper -from Deeploy.Targets.Snitch.Bindings import BasicDivBindings, BasicHardSwishBindings, BasicMulBindings, \ - BasicRMSNormBindings, SnitchAddBindings, SnitchGemmBindings, SnitchiNoNormBindings, SnitchiSoftmaxBindings, \ - SnitchRQAddBindings, SnitchRqGemmBindings from Deeploy.Targets.Snitch.Parsers import HardSwishParser, SnitchDivParser, SnitchGEMMParser, SnitchMulParser, \ SnitchRMSNormParser, SnitchRQGEMMParser from Deeploy.Targets.Snitch.Templates import AllocateTemplate, FreeTemplate +from Deeploy.Targets.Snitch.Tiler import SnitchAddTileReadyBindings, SnitchConcatTilingReadyBindings, \ + SnitchDivTilingReadyBindings, SnitchGatherTilingReadyBindings, SnitchGemmTilingReadyBindings, \ + SnitchHardSwishTilingReadyBindings, SnitchiNoNormTilingReadyBindings, SnitchiSoftmaxTilingReadyBindings, \ + SnitchMatMulTilingReadyBindings, SnitchMulTilingReadyBindings, SnitchReshapeTilingReadyBindings, \ + SnitchRMSNormTilingReadyBindings, SnitchRQAddTilingReadyBindings, SnitchRqGemmTilingReadyBindings, \ + SnitchTransposeTilingReadyBindings -# ============================================================================= -# Mappers for UNTILED mode (using BasicBindings with BasicTransformer) -# These are used by generateNetwork.py (testRunner_snitch.py) -# ============================================================================= -GatherMapper = NodeMapper(GatherParser(), BasicGatherBindings) +# Mappers without tiling-ready equivalents Pad1DMapper = NodeMapper(Pad1DParser(), BasicPad1DBindings) Pad2DMapper = NodeMapper(Pad2DParser(), BasicPad2DBindings) -UnsqueezeMapper = NodeMapper(UnsqueezeParser(), BasicReshapeBindings) -ReshapeMapper = NodeMapper(ReshapeParser(), BasicReshapeBindings) -TransposeMapper = NodeMapper(TransposeParser(), BasicTransposeBindings) -ConcatMapper = NodeMapper(ConcatParser(), BasicConcatBindings) - RQIntegerDivMapper = NodeMapper(RQIntegerDivParser(), [BasicRQIntegerDivBinding]) - -# These use TiledTransformer but work in both modes (original upstream behavior) -GemmMapper = NodeMapper(SnitchGEMMParser(), SnitchGemmBindings) -RqGemmMapper = NodeMapper(SnitchRQGEMMParser(), SnitchRqGemmBindings) -iSoftmaxMapper = NodeMapper(iSoftmaxParser(), SnitchiSoftmaxBindings) -SoftmaxMapper = NodeMapper(SoftmaxParser(), SnitchiSoftmaxBindings) -iNoNormMapper = NodeMapper(iNoNormParser(), SnitchiNoNormBindings) iLayerNormMapper = NodeMapper(iLayerNormParser(), BasicLayerNormBindings) -RQAddMapper = NodeMapper(RQAddParser(), SnitchRQAddBindings) -AddMapper = NodeMapper(AddParser(), SnitchAddBindings) - -# New operators for microLlama - using BasicBindings for untiled mode -RMSNormMapper = NodeMapper(SnitchRMSNormParser(), BasicRMSNormBindings) -HardSwishMapper = NodeMapper(HardSwishParser(), BasicHardSwishBindings) -MatMulMapper = NodeMapper(MatMulParser(), BasicMatMulBindings) -DivMapper = NodeMapper(SnitchDivParser(), BasicDivBindings) -MulMapper = NodeMapper(SnitchMulParser(), BasicMulBindings) - -# ============================================================================= -# SnitchMapping - for UNTILED mode (generateNetwork.py) -# Uses BasicBindings for new operators, TiledTransformer bindings for original ops -# ============================================================================= + +# All other mappers use TilingReadyBindings (works for both tiled and untiled) +GatherMapper = NodeMapper(GatherParser(), SnitchGatherTilingReadyBindings) +UnsqueezeMapper = NodeMapper(UnsqueezeParser(), SnitchReshapeTilingReadyBindings) +ReshapeMapper = NodeMapper(ReshapeParser(), SnitchReshapeTilingReadyBindings) +TransposeMapper = NodeMapper(TransposeParser(), SnitchTransposeTilingReadyBindings) +ConcatMapper = NodeMapper(ConcatParser(), SnitchConcatTilingReadyBindings) +MatMulMapper = NodeMapper(MatMulParser(), SnitchMatMulTilingReadyBindings) +GemmMapper = NodeMapper(SnitchGEMMParser(), SnitchGemmTilingReadyBindings) +RqGemmMapper = NodeMapper(SnitchRQGEMMParser(), SnitchRqGemmTilingReadyBindings) +iSoftmaxMapper = NodeMapper(iSoftmaxParser(), SnitchiSoftmaxTilingReadyBindings) +SoftmaxMapper = NodeMapper(SoftmaxParser(), SnitchiSoftmaxTilingReadyBindings) +iNoNormMapper = NodeMapper(iNoNormParser(), SnitchiNoNormTilingReadyBindings) +RQAddMapper = NodeMapper(RQAddParser(), SnitchRQAddTilingReadyBindings) +AddMapper = NodeMapper(AddParser(), SnitchAddTileReadyBindings) +RMSNormMapper = NodeMapper(SnitchRMSNormParser(), SnitchRMSNormTilingReadyBindings) +HardSwishMapper = NodeMapper(HardSwishParser(), SnitchHardSwishTilingReadyBindings) +DivMapper = NodeMapper(SnitchDivParser(), SnitchDivTilingReadyBindings) +MulMapper = NodeMapper(SnitchMulParser(), SnitchMulTilingReadyBindings) + SnitchMapping = { 'RQIntegerDiv': RQIntegerDivLayer([RQIntegerDivMapper]), 'Gather': GatherLayer([GatherMapper]), @@ -88,65 +79,6 @@ 'Concat': ConcatLayer([ConcatMapper]), } -# ============================================================================= -# Import TilingReadyBindings for TILED mode (testMVP.py) -# These will be used by TilerDeployerWrapper -# ============================================================================= -from Deeploy.Targets.Snitch.Tiler import SnitchAddTileReadyBindings, SnitchConcatTilingReadyBindings, \ - SnitchDivTilingReadyBindings, SnitchGatherTilingReadyBindings, SnitchGemmTilingReadyBindings, \ - SnitchHardSwishTilingReadyBindings, SnitchiNoNormTilingReadyBindings, SnitchiSoftmaxTilingReadyBindings, \ - SnitchMatMulTilingReadyBindings, SnitchMulTilingReadyBindings, SnitchReshapeTilingReadyBindings, \ - SnitchRMSNormTilingReadyBindings, SnitchRQAddTilingReadyBindings, SnitchRqGemmTilingReadyBindings, \ - SnitchTransposeTilingReadyBindings - -# ============================================================================= -# Tiled Mappers - for TILED mode (testMVP.py via TilerDeployerWrapper) -# ============================================================================= -TiledGatherMapper = NodeMapper(GatherParser(), SnitchGatherTilingReadyBindings) -TiledUnsqueezeMapper = NodeMapper(UnsqueezeParser(), SnitchReshapeTilingReadyBindings) -TiledReshapeMapper = NodeMapper(ReshapeParser(), SnitchReshapeTilingReadyBindings) -TiledTransposeMapper = NodeMapper(TransposeParser(), SnitchTransposeTilingReadyBindings) -TiledConcatMapper = NodeMapper(ConcatParser(), SnitchConcatTilingReadyBindings) -TiledMatMulMapper = NodeMapper(MatMulParser(), SnitchMatMulTilingReadyBindings) -TiledRMSNormMapper = NodeMapper(SnitchRMSNormParser(), SnitchRMSNormTilingReadyBindings) -TiledHardSwishMapper = NodeMapper(HardSwishParser(), SnitchHardSwishTilingReadyBindings) -TiledDivMapper = NodeMapper(SnitchDivParser(), SnitchDivTilingReadyBindings) -TiledMulMapper = NodeMapper(SnitchMulParser(), SnitchMulTilingReadyBindings) -TiledGemmMapper = NodeMapper(SnitchGEMMParser(), SnitchGemmTilingReadyBindings) -TiledRqGemmMapper = NodeMapper(SnitchRQGEMMParser(), SnitchRqGemmTilingReadyBindings) -TilediSoftmaxMapper = NodeMapper(iSoftmaxParser(), SnitchiSoftmaxTilingReadyBindings) -TiledSoftmaxMapper = NodeMapper(SoftmaxParser(), SnitchiSoftmaxTilingReadyBindings) -TilediNoNormMapper = NodeMapper(iNoNormParser(), SnitchiNoNormTilingReadyBindings) -TiledRQAddMapper = NodeMapper(RQAddParser(), SnitchRQAddTilingReadyBindings) -TiledAddMapper = NodeMapper(AddParser(), SnitchAddTileReadyBindings) - -# ============================================================================= -# SnitchTiledMapping - for TILED mode (testMVP.py) -# Uses TilingReadyBindings for all operators -# ============================================================================= -SnitchTiledMapping = { - 'RQIntegerDiv': RQIntegerDivLayer([RQIntegerDivMapper]), - 'Gather': GatherLayer([TiledGatherMapper]), - 'Pad': PadLayer([Pad1DMapper, Pad2DMapper]), - 'Unsqueeze': ReshapeLayer([TiledUnsqueezeMapper]), - 'MatMul': MatMulLayer([TiledMatMulMapper]), - 'Gemm': GEMMLayer([TiledGemmMapper]), - 'RQGemm': RQGEMMLayer([TiledRqGemmMapper]), - 'iSoftmax': SoftmaxLayer([TilediSoftmaxMapper]), - 'Softmax': SoftmaxLayer([TiledSoftmaxMapper]), - 'iNoNorm': iNoNormLayer([TilediNoNormMapper]), - 'iLayerNorm': LayerNormLayer([iLayerNormMapper]), - 'RequantizedAdd': AddLayer([TiledRQAddMapper]), - 'Add': AddLayer([TiledAddMapper]), - 'RMSNorm': RMSNormLayer([TiledRMSNormMapper]), - 'HardSwish': HardSwishLayer([TiledHardSwishMapper]), - 'Div': DivLayer([TiledDivMapper]), - 'Mul': MulLayer([TiledMulMapper]), - 'Reshape': ReshapeLayer([TiledReshapeMapper]), - 'Transpose': TransposeLayer([TiledTransposeMapper]), - 'Concat': ConcatLayer([TiledConcatMapper]), -} - class SnitchVariableBuffer(VariableBuffer): @@ -258,21 +190,3 @@ def __init__(self, transientBuffer = SnitchTransientBuffer, includeList: List[str] = _includeList): super().__init__(engines, variableBuffer, constantBuffer, structBuffer, transientBuffer) - - -class SnitchTiledClusterEngine(DeploymentEngine): - - def __init__(self, name: str, Mapping = SnitchTiledMapping, initCode = "", includeList = _includeList) -> None: - super().__init__(name, Mapping, initCode, includeList) - - -class SnitchTiledPlatform(DeploymentPlatform): - - def __init__(self, - engines = [SnitchTiledClusterEngine("SnitchCluster")], - variableBuffer = SnitchVariableBuffer, - constantBuffer = SnitchConstantBuffer, - structBuffer = SnitchStructBuffer, - transientBuffer = SnitchTransientBuffer, - includeList: List[str] = _includeList): - super().__init__(engines, variableBuffer, constantBuffer, structBuffer, transientBuffer) diff --git a/DeeployTest/testUtils/platformMapping.py b/DeeployTest/testUtils/platformMapping.py index 5e63a5cfb7..2608d5b795 100644 --- a/DeeployTest/testUtils/platformMapping.py +++ b/DeeployTest/testUtils/platformMapping.py @@ -26,7 +26,7 @@ from Deeploy.Targets.PULPOpen.Deployer import PULPDeployer from Deeploy.Targets.PULPOpen.Platform import MemoryPULPPlatform, MemoryPULPPlatformWrapper, PULPOptimizer, PULPPlatform from Deeploy.Targets.Snitch.Deployer import SnitchDeployer -from Deeploy.Targets.Snitch.Platform import SnitchOptimizer, SnitchPlatform, SnitchTiledPlatform +from Deeploy.Targets.Snitch.Platform import SnitchOptimizer, SnitchPlatform from Deeploy.Targets.SoftHier.Deployer import SoftHierDeployer from Deeploy.Targets.SoftHier.Platform import SoftHierOptimizer, SoftHierPlatform @@ -70,9 +70,6 @@ def mapPlatform(platformName: str) -> Tuple[DeploymentPlatform, bool]: elif platformName == "Snitch": Platform = SnitchPlatform() - elif platformName == "Snitch_tiled": - Platform = SnitchTiledPlatform() - elif platformName == "SoftHier": Platform = SoftHierPlatform() @@ -244,7 +241,7 @@ def mapDeployer(platform: DeploymentPlatform, default_channels_first = default_channels_first, deeployStateDir = deeployStateDir) - elif isinstance(platform, (SnitchPlatform, SnitchTiledPlatform)): + elif isinstance(platform, (SnitchPlatform)): if loweringOptimizer is None: loweringOptimizer = SnitchOptimizer From 76a4678a3cfdbf8fbaaff874d9bdf62ec4d8402e Mon Sep 17 00:00:00 2001 From: lee2716 Date: Tue, 3 Feb 2026 15:53:30 +0100 Subject: [PATCH 04/57] add full microllama model in ci test --- .github/workflows/ci-platform-snitch-tiled.yml | 4 +++- .github/workflows/ci-platform-snitch.yml | 2 ++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/.github/workflows/ci-platform-snitch-tiled.yml b/.github/workflows/ci-platform-snitch-tiled.yml index 4ebb9aba9a..697da454ea 100644 --- a/.github/workflows/ci-platform-snitch-tiled.yml +++ b/.github/workflows/ci-platform-snitch-tiled.yml @@ -52,7 +52,9 @@ jobs: {"name":"Kernels/Integer/iNoNorm","L1":[5000,10000]}, {"name":"Kernels/Integer/Add/Regular_RQ","L1":[5000,10000]}, - {"name":"Kernels/Integer/GEMM/Regular_RQPerRow","L1":[2000,5000]} + {"name":"Kernels/Integer/GEMM/Regular_RQPerRow","L1":[2000,5000]}, + + {"name":"Models/microLlama/microLlama_fp32_1","L1":[10000,20000]} ] simulators: | gvsoc diff --git a/.github/workflows/ci-platform-snitch.yml b/.github/workflows/ci-platform-snitch.yml index f3a1f8722f..4a9efae2c5 100644 --- a/.github/workflows/ci-platform-snitch.yml +++ b/.github/workflows/ci-platform-snitch.yml @@ -55,6 +55,8 @@ jobs: Kernels/Integer/GEMM/Regular_RQPerRow Kernels/Integer/Add/Regular_RQ Kernels/Integer/GEMM/TransB_RQ + + Models/microLlama/microLlama_fp32_1 num-cores: 9 simulators: | gvsoc From c222810e4dbde386ad2103426f7986bc3c8a5b60 Mon Sep 17 00:00:00 2001 From: lee2716 Date: Tue, 3 Feb 2026 16:00:24 +0100 Subject: [PATCH 05/57] add comments with information about operations --- Deeploy/Targets/Generic/Layers.py | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/Deeploy/Targets/Generic/Layers.py b/Deeploy/Targets/Generic/Layers.py index 26dd5746c9..11e3a6a4de 100644 --- a/Deeploy/Targets/Generic/Layers.py +++ b/Deeploy/Targets/Generic/Layers.py @@ -712,6 +712,21 @@ def computeOps(self): class RMSNormLayer(ONNXLayer): + """Layer support for the ONNX RMSNormalization operator. + + Supported opset: 23 + + It is computed as follows: + - XSquared = Mul(X, X) + - XSquaredMean = ReduceMean(XSquared) + - MeanSquareEpsilon = Add(XSquaredMean, epsilon) + - RMS = Sqrt(MeanSquareEpsilon) + - Normalized = Div(X, RMS) + - Y = Mul(Normalized, Scale) + + For more details, this is the official ONNX documentation: + https://onnx.ai/onnx/operators/onnx__RMSNormalization.html#rmsnormalization-23 + """ def __init__(self, maps: List[NodeMapper]): super().__init__(maps) From 497e9c1ac536cbdc8b0f704af7b0fe0250d66d1d Mon Sep 17 00:00:00 2001 From: lee2716 Date: Tue, 3 Feb 2026 16:16:58 +0100 Subject: [PATCH 06/57] generalize RMSNorm to support full ONNX spec --- Deeploy/Targets/Generic/Parsers.py | 8 +++++-- Deeploy/Targets/Snitch/Parsers.py | 23 +++++++++++++++++-- .../Snitch/Templates/FloatRMSNormTemplate.py | 10 +++++++- 3 files changed, 36 insertions(+), 5 deletions(-) diff --git a/Deeploy/Targets/Generic/Parsers.py b/Deeploy/Targets/Generic/Parsers.py index b140e08f48..f0f2f9b5c4 100644 --- a/Deeploy/Targets/Generic/Parsers.py +++ b/Deeploy/Targets/Generic/Parsers.py @@ -70,8 +70,12 @@ def parseNodeCtxt(self, for idx, outputNode in enumerate(node.outputs): self.operatorRepresentation[outputs[idx]] = ctxt.lookup(outputNode.name).name - self.operatorRepresentation['size'] = np.prod(ctxt.lookup(node.inputs[0].name).shape) - self.operatorRepresentation['lastDimLength'] = ctxt.lookup(node.inputs[0].name).shape[-1] + input_shape = list(ctxt.lookup(node.inputs[0].name).shape) + self.operatorRepresentation['size'] = np.prod(input_shape) + self.operatorRepresentation['lastDimLength'] = input_shape[-1] + self.operatorRepresentation['inputSize'] = int(np.prod(input_shape)) + self.operatorRepresentation['NormalizedAxesSize'] = int(input_shape[-1]) + self.operatorRepresentation['scale'] = node.inputs[1].values return ctxt, True diff --git a/Deeploy/Targets/Snitch/Parsers.py b/Deeploy/Targets/Snitch/Parsers.py index 6976d8d356..57af4c8a95 100644 --- a/Deeploy/Targets/Snitch/Parsers.py +++ b/Deeploy/Targets/Snitch/Parsers.py @@ -87,6 +87,14 @@ def parseNode(self, node: gs.Node) -> bool: return False eps = node.attrs.get('eps', node.attrs.get('epsilon', 1e-6)) self.operatorRepresentation['eps'] = f"{float(eps):.10e}f" + + stash_type = node.attrs.get('stash_type', 1) + if stash_type != 1: + raise ValueError(f"RMSNorm: only stash_type=1 (FP32) is supported, got {stash_type}") + + axis = node.attrs.get('axis', -1) + self.operatorRepresentation['axis'] = axis + return True def parseNodeCtxt(self, @@ -103,11 +111,22 @@ def parseNodeCtxt(self, self.operatorRepresentation['input_shape'] = list(data_in.shape) self.operatorRepresentation['weight_shape'] = list(weight.shape) self.operatorRepresentation['output_shape'] = list(data_out.shape) - self.operatorRepresentation['size'] = int(np.prod(data_in.shape)) - self.operatorRepresentation['lastDimLength'] = int(data_in.shape[-1]) self.operatorRepresentation['input_ndim'] = len(data_in.shape) self.operatorRepresentation['weight_ndim'] = len(weight.shape) + input_shape = list(data_in.shape) + axis = self.operatorRepresentation['axis'] + if axis < 0: + axis = len(input_shape) + axis + + self.operatorRepresentation['inputSize'] = int(np.prod(input_shape)) + self.operatorRepresentation['NormalizedAxesSize'] = int(np.prod(input_shape[axis:])) + self.operatorRepresentation['scale'] = node.inputs[1].values + + # Keep old keys for C template compatibility + self.operatorRepresentation['size'] = int(np.prod(input_shape)) + self.operatorRepresentation['lastDimLength'] = int(input_shape[-1]) + return ctxt, True diff --git a/Deeploy/Targets/Snitch/Templates/FloatRMSNormTemplate.py b/Deeploy/Targets/Snitch/Templates/FloatRMSNormTemplate.py index 8ae4d95e01..629c1bb4f3 100644 --- a/Deeploy/Targets/Snitch/Templates/FloatRMSNormTemplate.py +++ b/Deeploy/Targets/Snitch/Templates/FloatRMSNormTemplate.py @@ -18,8 +18,16 @@ def alignToContext(self, ctxt: NetworkContext, operatorRepresentation: OperatorRepresentation) -> Tuple[NetworkContext, Dict, List[str]]: data_in = ctxt.lookup(operatorRepresentation["data_in"]) + input_shape = list(data_in.shape) + + axis = operatorRepresentation.get("axis", -1) + if axis < 0: + axis = len(input_shape) + axis + operatorRepresentation["lastDimLength"] = data_in.shape[-1] - operatorRepresentation["size"] = int(np.prod(data_in.shape)) + operatorRepresentation["size"] = int(np.prod(input_shape)) + operatorRepresentation["inputSize"] = int(np.prod(input_shape)) + operatorRepresentation["NormalizedAxesSize"] = int(np.prod(input_shape[axis:])) return ctxt, operatorRepresentation, [] From bf5ddb737c5410ee3e38bd58a83067c5a4714f96 Mon Sep 17 00:00:00 2001 From: lee2716 Date: Tue, 3 Feb 2026 16:30:22 +0100 Subject: [PATCH 07/57] Fix broadcast stride calculation for inputs with different ranks in AddParser --- Deeploy/Targets/Generic/Parsers.py | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/Deeploy/Targets/Generic/Parsers.py b/Deeploy/Targets/Generic/Parsers.py index f0f2f9b5c4..47b7e3b2dc 100644 --- a/Deeploy/Targets/Generic/Parsers.py +++ b/Deeploy/Targets/Generic/Parsers.py @@ -503,27 +503,31 @@ def parseNodeCtxt(self, # Calculate strides for broadcasting ndim = len(out_shape) + # Pad shapes from the left to match ndim (ONNX broadcasts from right) + padded_shape1 = [1] * (ndim - len(shape1)) + shape1 + padded_shape2 = [1] * (ndim - len(shape2)) + shape2 + # Compute strides for input 1 strides1 = [1] * ndim for i in range(ndim - 1, -1, -1): - if i < len(shape1) and shape1[i] == out_shape[i]: + if padded_shape1[i] == out_shape[i]: if i == ndim - 1: strides1[i] = 1 else: - strides1[i] = strides1[i + 1] * shape1[i + 1] if ( - i + 1 < len(shape1) and shape1[i + 1] == out_shape[i + 1]) else strides1[i + 1] + strides1[i] = strides1[i + 1] * padded_shape1[i + 1] if ( + padded_shape1[i + 1] == out_shape[i + 1]) else strides1[i + 1] else: strides1[i] = 0 # Broadcast dimension # Compute strides for input 2 strides2 = [1] * ndim for i in range(ndim - 1, -1, -1): - if i < len(shape2) and shape2[i] == out_shape[i]: + if padded_shape2[i] == out_shape[i]: if i == ndim - 1: strides2[i] = 1 else: - strides2[i] = strides2[i + 1] * shape2[i + 1] if ( - i + 1 < len(shape2) and shape2[i + 1] == out_shape[i + 1]) else strides2[i + 1] + strides2[i] = strides2[i + 1] * padded_shape2[i + 1] if ( + padded_shape2[i + 1] == out_shape[i + 1]) else strides2[i + 1] else: strides2[i] = 0 # Broadcast dimension From 7e3659d725821774b3c8fb6d28ccbb8f10c5dcb3 Mon Sep 17 00:00:00 2001 From: lee2716 Date: Tue, 3 Feb 2026 16:32:09 +0100 Subject: [PATCH 08/57] delete unused function --- Deeploy/Targets/Generic/TypeCheckers.py | 14 -------------- 1 file changed, 14 deletions(-) diff --git a/Deeploy/Targets/Generic/TypeCheckers.py b/Deeploy/Targets/Generic/TypeCheckers.py index 6b3ff546b3..c08c3c4a86 100644 --- a/Deeploy/Targets/Generic/TypeCheckers.py +++ b/Deeploy/Targets/Generic/TypeCheckers.py @@ -102,20 +102,6 @@ def _inferSignedness(self, inputs: List[VariableBuffer], return [False] -class FloatAddChecker(SignPropTypeChecker): - - def __init__(self, input_types: Sequence[Type[Pointer]], output_types: Sequence[Type[Pointer]]): - super().__init__(input_types, output_types) - - def _inferNumLevels(self, inputs: List[VariableBuffer], - operatorRepresentation: OperatorRepresentation) -> List[int]: - return [2**(self.input_types[0].referencedType.typeWidth)] - - def _inferSignedness(self, inputs: List[VariableBuffer], - operatorRepresentation: OperatorRepresentation) -> List[bool]: - return [True] - - class GatherChecker(SignPropTypeChecker): def __init__(self, input_types: Sequence[Type[Pointer]], output_types: Sequence[Type[Pointer]]): From 28280fbc5ef432e5daf7ef5e34e6f0dc227954a1 Mon Sep 17 00:00:00 2001 From: lee2716 Date: Tue, 3 Feb 2026 16:41:20 +0100 Subject: [PATCH 09/57] delete the comment --- Deeploy/Targets/Snitch/Templates/FloatDivTemplate.py | 2 -- 1 file changed, 2 deletions(-) diff --git a/Deeploy/Targets/Snitch/Templates/FloatDivTemplate.py b/Deeploy/Targets/Snitch/Templates/FloatDivTemplate.py index ee35255e24..c71cd0a507 100644 --- a/Deeploy/Targets/Snitch/Templates/FloatDivTemplate.py +++ b/Deeploy/Targets/Snitch/Templates/FloatDivTemplate.py @@ -1,5 +1,3 @@ -# ~/Deeploy/Deeploy/Targets/Snitch/Templates/FloatDivTemplate.py - # SPDX-FileCopyrightText: 2026 ETH Zurich and University of Bologna # # SPDX-License-Identifier: Apache-2.0 From ac5d541d443c116b324da6fb439583f40231ddac Mon Sep 17 00:00:00 2001 From: lee2716 Date: Tue, 3 Feb 2026 16:42:23 +0100 Subject: [PATCH 10/57] update year to 2026 --- Deeploy/Targets/Snitch/Templates/FloatMatMulTemplate.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Deeploy/Targets/Snitch/Templates/FloatMatMulTemplate.py b/Deeploy/Targets/Snitch/Templates/FloatMatMulTemplate.py index 0cd0a649e1..dc21d633ed 100644 --- a/Deeploy/Targets/Snitch/Templates/FloatMatMulTemplate.py +++ b/Deeploy/Targets/Snitch/Templates/FloatMatMulTemplate.py @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: 2024 ETH Zurich and University of Bologna +# SPDX-FileCopyrightText: 202666666 ETH Zurich and University of Bologna # # SPDX-License-Identifier: Apache-2.0 From c90b35ceb9c5a091332b86e9a466bedb1178e712 Mon Sep 17 00:00:00 2001 From: lee2716 Date: Tue, 3 Feb 2026 16:46:14 +0100 Subject: [PATCH 11/57] Fix: Revert batch_size type to uint32_t based on review --- Deeploy/Targets/Snitch/Templates/FloatSoftmaxTemplate.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/Deeploy/Targets/Snitch/Templates/FloatSoftmaxTemplate.py b/Deeploy/Targets/Snitch/Templates/FloatSoftmaxTemplate.py index a8f32b32e3..a7bf0f61c7 100644 --- a/Deeploy/Targets/Snitch/Templates/FloatSoftmaxTemplate.py +++ b/Deeploy/Targets/Snitch/Templates/FloatSoftmaxTemplate.py @@ -25,10 +25,10 @@ def alignToContext(self, ctxt: NetworkContext, FloatSoftmaxTemplateStr = r""" - int32_t batch_size = ${size} / ${lastDimLength}; - int32_t compute_num = 1; //snrt_cluster_compute_core_num(); - int32_t ldI = compute_num * ${input_samples}; - int32_t batch_offset = ${seq_len} * ${input_samples}; + uint32_t batch_size = ${size} / ${lastDimLength}; + uint32_t compute_num = 1; //snrt_cluster_compute_core_num(); + uint32_t ldI = compute_num * ${input_samples}; + uint32_t batch_offset = ${seq_len} * ${input_samples}; // JUNGVI: This implementation is broken and has memory leak. if (snrt_hartid() == 0){ From 5669c2819bef8622d0d652e115fc4a3331800f88 Mon Sep 17 00:00:00 2001 From: lee2716 Date: Tue, 3 Feb 2026 16:47:22 +0100 Subject: [PATCH 12/57] update year to 2026 --- Deeploy/Targets/Snitch/Templates/GatherTemplate.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Deeploy/Targets/Snitch/Templates/GatherTemplate.py b/Deeploy/Targets/Snitch/Templates/GatherTemplate.py index fa4f6a2a86..fafde9c663 100644 --- a/Deeploy/Targets/Snitch/Templates/GatherTemplate.py +++ b/Deeploy/Targets/Snitch/Templates/GatherTemplate.py @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: 2024 ETH Zurich and University of Bologna +# SPDX-FileCopyrightText: 2026 ETH Zurich and University of Bologna # # SPDX-License-Identifier: Apache-2.0 From cf4d9bd5bd057b809a6018924979ab99896858bf Mon Sep 17 00:00:00 2001 From: lee2716 Date: Tue, 3 Feb 2026 16:59:56 +0100 Subject: [PATCH 13/57] update year to 2026 --- Deeploy/Targets/Snitch/Templates/ReshapeTemplate.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Deeploy/Targets/Snitch/Templates/ReshapeTemplate.py b/Deeploy/Targets/Snitch/Templates/ReshapeTemplate.py index a99573b27b..a9c8add375 100644 --- a/Deeploy/Targets/Snitch/Templates/ReshapeTemplate.py +++ b/Deeploy/Targets/Snitch/Templates/ReshapeTemplate.py @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: 2024 ETH Zurich and University of Bologna +# SPDX-FileCopyrightText: 2026 ETH Zurich and University of Bologna # # SPDX-License-Identifier: Apache-2.0 From c04bd6aa9acb7175be4b03986d00bac9bcbe569d Mon Sep 17 00:00:00 2001 From: lee2716 Date: Tue, 3 Feb 2026 17:02:12 +0100 Subject: [PATCH 14/57] remove code duplication --- .../Snitch/Templates/ReshapeTemplate.py | 37 +------------------ 1 file changed, 2 insertions(+), 35 deletions(-) diff --git a/Deeploy/Targets/Snitch/Templates/ReshapeTemplate.py b/Deeploy/Targets/Snitch/Templates/ReshapeTemplate.py index a9c8add375..487503d4f6 100644 --- a/Deeploy/Targets/Snitch/Templates/ReshapeTemplate.py +++ b/Deeploy/Targets/Snitch/Templates/ReshapeTemplate.py @@ -2,43 +2,10 @@ # # SPDX-License-Identifier: Apache-2.0 -from typing import Dict, List, Tuple - -from Deeploy.DeeployTypes import NetworkContext, NodeTemplate, OperatorRepresentation, VariableBuffer - - -class _SnitchReshapeTemplate(NodeTemplate): - - def __init__(self, templateStr): - super().__init__(templateStr) - - def alignToContext(self, ctxt: NetworkContext, - operatorRepresentation: OperatorRepresentation) -> Tuple[NetworkContext, Dict, List[str]]: - - # SCHEREMO: Selectively mark 'indices' dead, since we don't need them - if 'indices' in operatorRepresentation.keys(): - ctxt.globalObjects[operatorRepresentation['indices']]._deploy = False - ctxt.globalObjects[operatorRepresentation['indices']]._live = False - - # Same for "shape" - if "shape" in operatorRepresentation.keys(): - ctxt.globalObjects[operatorRepresentation["shape"]]._deploy = False - ctxt.globalObjects[operatorRepresentation["shape"]]._live = False - - bufferIn = ctxt.lookup(operatorRepresentation['data_in']) - assert isinstance(bufferIn, VariableBuffer) - bufferOut = ctxt.lookup(operatorRepresentation['data_out']) - assert isinstance(bufferOut, VariableBuffer) - - # Link aliases to each buffer - bufferIn.aliases.add(bufferOut.name) - bufferOut.aliases.add(bufferIn.name) - - return ctxt, operatorRepresentation, [] - +from Deeploy.Targets.Generic.Templates.ReshapeTemplate import _ReshapeTemplate # Use snrt_cluster_core_idx() == 0 instead of SINGLE_CORE macro to avoid core_id dependency -referenceTemplate = _SnitchReshapeTemplate(""" +referenceTemplate = _ReshapeTemplate(""" // Reshape (Name: ${nodeName}, Op: ${nodeOp}) if (snrt_cluster_core_idx() == 0) { ${data_out} = ${data_in}; } """) From bdc550eb1e718cde915eb059b8df61b294f8a68c Mon Sep 17 00:00:00 2001 From: lee2716 Date: Tue, 3 Feb 2026 17:11:11 +0100 Subject: [PATCH 15/57] remove code duplication --- Deeploy/Targets/Snitch/Bindings.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Deeploy/Targets/Snitch/Bindings.py b/Deeploy/Targets/Snitch/Bindings.py index e442f63038..75efb22f77 100644 --- a/Deeploy/Targets/Snitch/Bindings.py +++ b/Deeploy/Targets/Snitch/Bindings.py @@ -18,8 +18,9 @@ from Deeploy.Targets.Snitch.CodeTransformationPasses import SnitchClusterTiling, SnitchCoreFilterPass, \ SnitchSynchCoresPass from Deeploy.Targets.Snitch.DMA.SnitchDma import SnitchDma +from Deeploy.Targets.Generic.Templates import TransposeTemplate from Deeploy.Targets.Snitch.Templates import AddTemplate, FloatGemmTemplate, FloatMatMulTemplate, GatherTemplate, \ - MatMulTemplate, ReshapeTemplate, RQAddTemplate, TransposeTemplate, iSoftmaxTemplate + MatMulTemplate, ReshapeTemplate, RQAddTemplate, iSoftmaxTemplate from Deeploy.Targets.Snitch.Templates.FloatAddTemplate import referenceTemplate as FloatAddTemplate from Deeploy.Targets.Snitch.Templates.FloatDivTemplate import referenceTemplate as FloatDivTemplate from Deeploy.Targets.Snitch.Templates.FloatHardSwishTemplate import referenceTemplate as FloatHardSwishTemplate From b53ff7526969f535281bd215922a26a561df5393 Mon Sep 17 00:00:00 2001 From: lee2716 Date: Tue, 3 Feb 2026 17:12:13 +0100 Subject: [PATCH 16/57] update year to 2026 --- .../Targets/Snitch/TileConstraints/FloatDivTileConstraint.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Deeploy/Targets/Snitch/TileConstraints/FloatDivTileConstraint.py b/Deeploy/Targets/Snitch/TileConstraints/FloatDivTileConstraint.py index b9b07be30a..e2de98535d 100644 --- a/Deeploy/Targets/Snitch/TileConstraints/FloatDivTileConstraint.py +++ b/Deeploy/Targets/Snitch/TileConstraints/FloatDivTileConstraint.py @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: 2024 ETH Zurich and University of Bologna +# SPDX-FileCopyrightText: 2026 ETH Zurich and University of Bologna # # SPDX-License-Identifier: Apache-2.0 From b3556240a0b21d882012a4f3c26dfb02510716ba Mon Sep 17 00:00:00 2001 From: lee2716 Date: Tue, 3 Feb 2026 17:13:18 +0100 Subject: [PATCH 17/57] update year to 2026 --- .../Targets/Snitch/TileConstraints/FloatMulTileConstraint.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Deeploy/Targets/Snitch/TileConstraints/FloatMulTileConstraint.py b/Deeploy/Targets/Snitch/TileConstraints/FloatMulTileConstraint.py index 99df639004..e3c7f1f974 100644 --- a/Deeploy/Targets/Snitch/TileConstraints/FloatMulTileConstraint.py +++ b/Deeploy/Targets/Snitch/TileConstraints/FloatMulTileConstraint.py @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: 2024 ETH Zurich and University of Bologna +# SPDX-FileCopyrightText: 2026 ETH Zurich and University of Bologna # # SPDX-License-Identifier: Apache-2.0 From 53061343d5ce485c90fdb39677c8f90d2df81ad0 Mon Sep 17 00:00:00 2001 From: lee2716 Date: Tue, 3 Feb 2026 17:18:14 +0100 Subject: [PATCH 18/57] recover the Gemm_fp32 --- .../TileConstraints/ReshapeTileConstraint.py | 2 +- TargetLibraries/Snitch/src/Gemm_fp32.c | 199 +++++++++++++++++- 2 files changed, 191 insertions(+), 10 deletions(-) diff --git a/Deeploy/Targets/Snitch/TileConstraints/ReshapeTileConstraint.py b/Deeploy/Targets/Snitch/TileConstraints/ReshapeTileConstraint.py index 1bafa36e3b..01a7e7e406 100644 --- a/Deeploy/Targets/Snitch/TileConstraints/ReshapeTileConstraint.py +++ b/Deeploy/Targets/Snitch/TileConstraints/ReshapeTileConstraint.py @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: 2024 ETH Zurich and University of Bologna +# SPDX-FileCopyrightText: 2026 ETH Zurich and University of Bologna # # SPDX-License-Identifier: Apache-2.0 diff --git a/TargetLibraries/Snitch/src/Gemm_fp32.c b/TargetLibraries/Snitch/src/Gemm_fp32.c index 8dac98ef67..9a79538e12 100644 --- a/TargetLibraries/Snitch/src/Gemm_fp32.c +++ b/TargetLibraries/Snitch/src/Gemm_fp32.c @@ -11,50 +11,231 @@ void gemm_fp32_transB_opt(uint32_t M, uint32_t N, uint32_t K, float32_t *A, uint32_t ldA, float32_t *B, uint32_t ldB, float32_t *C, uint32_t ldC, float32_t *Y, uint32_t BETA, uint32_t setup_SSR) { - (void)setup_SSR; uint32_t compute_id = snrt_global_compute_core_idx(); uint32_t A_offset = K * compute_id; uint32_t C_offset = N * compute_id; + // Unrolling factor of most inner loop. + // Should be at least as high as the FMA delay + // for maximum utilization + const uint32_t unroll = 8; + + // SSR strides and bounds only have to be configured + // once in the beginning + if (setup_SSR) { + // First matrix is not stored in transposed format + const uint32_t ssr0_b[4] = {unroll, K, N / unroll, M}; + const uint32_t ssr0_i[4] = {0, sizeof(float32_t), 0, + sizeof(float32_t) * ldA}; + + // Second matrix is stored in transposed format + const uint32_t ssr1_b[4] = {unroll, K, N / unroll, M}; + const uint32_t ssr1_i[4] = {sizeof(float32_t) * K, sizeof(float32_t), + sizeof(float32_t) * K * unroll, 0}; + + snrt_ssr_loop_3d(SNRT_SSR_DM0, ssr0_b[1], ssr0_b[2], ssr0_b[3], ssr0_i[1], + ssr0_i[2], ssr0_i[3]); + + snrt_ssr_repeat(SNRT_SSR_DM0, unroll); + snrt_ssr_loop_4d(SNRT_SSR_DM1, ssr1_b[0], ssr1_b[1], ssr1_b[2], ssr1_b[3], + ssr1_i[0], ssr1_i[1], ssr1_i[2], ssr1_i[3]); + } + + // SSR start address need to be configured each time + + snrt_ssr_read(SNRT_SSR_DM0, SNRT_SSR_4D, &A[A_offset]); + snrt_ssr_read(SNRT_SSR_DM1, SNRT_SSR_4D, B); + snrt_ssr_enable(); + + // check dimensions and values of a and b + + // Kernel progresses by 1 values each step + // const uint32_t n_frep = K - 1; for (uint32_t m = 0; m < M; m++) { - for (uint32_t n = 0; n < N; n++) { + uint32_t n = 0; + for (uint32_t n0 = 0; n0 < N / unroll; n0++) { + float c[unroll]; + + // Load intermediate result + if (BETA) { + c[0] = C[C_offset + m * ldC + n + 0]; + c[1] = C[C_offset + m * ldC + n + 1]; + c[2] = C[C_offset + m * ldC + n + 2]; + c[3] = C[C_offset + m * ldC + n + 3]; + c[4] = C[C_offset + m * ldC + n + 4]; + c[5] = C[C_offset + m * ldC + n + 5]; + c[6] = C[C_offset + m * ldC + n + 6]; + c[7] = C[C_offset + m * ldC + n + 7]; + } else { + c[0] = 0.0; + c[1] = 0.0; + c[2] = 0.0; + c[3] = 0.0; + c[4] = 0.0; + c[5] = 0.0; + c[6] = 0.0; + c[7] = 0.0; + } + + asm volatile( + "frep.o %[n_frep], 8, 0, 0 \n" + "fmadd.s %[c0], ft0, ft1, %[c0] \n" + "fmadd.s %[c1], ft0, ft1, %[c1] \n" + "fmadd.s %[c2], ft0, ft1, %[c2] \n" + "fmadd.s %[c3], ft0, ft1, %[c3] \n" + "fmadd.s %[c4], ft0, ft1, %[c4] \n" + "fmadd.s %[c5], ft0, ft1, %[c5] \n" + "fmadd.s %[c6], ft0, ft1, %[c6] \n" + "fmadd.s %[c7], ft0, ft1, %[c7] \n" + : [c0] "+f"(c[0]), [c1] "+f"(c[1]), [c2] "+f"(c[2]), [c3] "+f"(c[3]), + [c4] "+f"(c[4]), [c5] "+f"(c[5]), [c6] "+f"(c[6]), [c7] "+f"(c[7]) + : [n_frep] "r"(K - 1) + : "ft0", "ft1", "ft2"); + + // Store results back + Y[C_offset + m * ldC + n + 0] = c[0]; + Y[C_offset + m * ldC + n + 1] = c[1]; + Y[C_offset + m * ldC + n + 2] = c[2]; + Y[C_offset + m * ldC + n + 3] = c[3]; + Y[C_offset + m * ldC + n + 4] = c[4]; + Y[C_offset + m * ldC + n + 5] = c[5]; + Y[C_offset + m * ldC + n + 6] = c[6]; + Y[C_offset + m * ldC + n + 7] = c[7]; + n += unroll; + } + + // Clean up of leftover columns + snrt_ssr_disable(); + for (; n < N; n++) { float32_t c; if (BETA) { c = C[C_offset + m * ldC + n]; } else { - c = 0.0f; + c = 0.0; } for (uint32_t k = 0; k < K; k++) { - c += A[A_offset + m * ldA + k] * B[n * ldB + k]; + c += A[A_offset + k + m * ldA] * B[k + n * ldB]; } Y[C_offset + m * ldC + n] = c; } + snrt_ssr_enable(); } + snrt_ssr_disable(); } void gemm_fp32_opt(uint32_t M, uint32_t N, uint32_t K, float32_t *A, uint32_t ldA, float32_t *B, uint32_t ldB, float32_t *C, uint32_t ldC, float32_t *Y, uint32_t BETA, uint32_t setup_SSR) { - (void)setup_SSR; - uint32_t compute_id = snrt_global_compute_core_idx(); uint32_t A_offset = K * compute_id; uint32_t C_offset = N * compute_id; + // Unrolling factor of most inner loop. + // Should be at least as high as the FMA delay + // for maximum utilization + const uint32_t unroll = 8; + + // SSR strides and bounds only have to be configured + // once in the beginning + if (setup_SSR) { + // First matrix is not stored in transposed format + const uint32_t ssr0_b[4] = {unroll, K, N / unroll, M}; + const uint32_t ssr0_i[4] = {0, sizeof(float32_t), 0, + sizeof(float32_t) * ldA}; + + // Second matrix is not stored in transposed format + const uint32_t ssr1_b[4] = {unroll, K, N / unroll, M}; + const uint32_t ssr1_i[4] = {sizeof(float32_t), sizeof(float32_t) * ldB, + sizeof(float32_t) * unroll, 0}; + + snrt_ssr_loop_3d(SNRT_SSR_DM0, ssr0_b[1], ssr0_b[2], ssr0_b[3], ssr0_i[1], + ssr0_i[2], ssr0_i[3]); + + snrt_ssr_repeat(SNRT_SSR_DM0, unroll); + snrt_ssr_loop_4d(SNRT_SSR_DM1, ssr1_b[0], ssr1_b[1], ssr1_b[2], ssr1_b[3], + ssr1_i[0], ssr1_i[1], ssr1_i[2], ssr1_i[3]); + } + + // SSR start address need to be configured each time + + snrt_ssr_read(SNRT_SSR_DM0, SNRT_SSR_4D, &A[A_offset]); + snrt_ssr_read(SNRT_SSR_DM1, SNRT_SSR_4D, B); + snrt_ssr_enable(); + + // check dimensions and values of a and b + + // Kernel progresses by 1 values each step + // const uint32_t n_frep = K - 1; for (uint32_t m = 0; m < M; m++) { - for (uint32_t n = 0; n < N; n++) { + uint32_t n = 0; + for (uint32_t n0 = 0; n0 < N / unroll; n0++) { + float c[unroll]; + + // Load intermediate result + if (BETA) { + c[0] = C[C_offset + m * ldC + n + 0]; + c[1] = C[C_offset + m * ldC + n + 1]; + c[2] = C[C_offset + m * ldC + n + 2]; + c[3] = C[C_offset + m * ldC + n + 3]; + c[4] = C[C_offset + m * ldC + n + 4]; + c[5] = C[C_offset + m * ldC + n + 5]; + c[6] = C[C_offset + m * ldC + n + 6]; + c[7] = C[C_offset + m * ldC + n + 7]; + } else { + c[0] = 0.0; + c[1] = 0.0; + c[2] = 0.0; + c[3] = 0.0; + c[4] = 0.0; + c[5] = 0.0; + c[6] = 0.0; + c[7] = 0.0; + } + + asm volatile( + "frep.o %[n_frep], 8, 0, 0 \n" + "fmadd.s %[c0], ft0, ft1, %[c0] \n" + "fmadd.s %[c1], ft0, ft1, %[c1] \n" + "fmadd.s %[c2], ft0, ft1, %[c2] \n" + "fmadd.s %[c3], ft0, ft1, %[c3] \n" + "fmadd.s %[c4], ft0, ft1, %[c4] \n" + "fmadd.s %[c5], ft0, ft1, %[c5] \n" + "fmadd.s %[c6], ft0, ft1, %[c6] \n" + "fmadd.s %[c7], ft0, ft1, %[c7] \n" + : [c0] "+f"(c[0]), [c1] "+f"(c[1]), [c2] "+f"(c[2]), [c3] "+f"(c[3]), + [c4] "+f"(c[4]), [c5] "+f"(c[5]), [c6] "+f"(c[6]), [c7] "+f"(c[7]) + : [n_frep] "r"(K - 1) + : "ft0", "ft1", "ft2"); + + // Store results back + Y[C_offset + m * ldC + n + 0] = c[0]; + Y[C_offset + m * ldC + n + 1] = c[1]; + Y[C_offset + m * ldC + n + 2] = c[2]; + Y[C_offset + m * ldC + n + 3] = c[3]; + Y[C_offset + m * ldC + n + 4] = c[4]; + Y[C_offset + m * ldC + n + 5] = c[5]; + Y[C_offset + m * ldC + n + 6] = c[6]; + Y[C_offset + m * ldC + n + 7] = c[7]; + n += unroll; + } + + // Clean up of leftover columns + snrt_ssr_disable(); + for (; n < N; n++) { float32_t c; if (BETA) { c = C[C_offset + m * ldC + n]; } else { - c = 0.0f; + c = 0.0; } for (uint32_t k = 0; k < K; k++) { - c += A[A_offset + m * ldA + k] * B[k * ldB + n]; + c += A[A_offset + k + m * ldA] * B[k * ldB + n]; } Y[C_offset + m * ldC + n] = c; } + snrt_ssr_enable(); } + snrt_ssr_disable(); } From 32d88c00011e797de656a3f057f6e9d9b7c405d5 Mon Sep 17 00:00:00 2001 From: lee2716 Date: Wed, 4 Feb 2026 14:57:28 +0100 Subject: [PATCH 19/57] improve multicore transpose --- Deeploy/Targets/Snitch/Bindings.py | 13 +- Deeploy/Targets/Snitch/Platform.py | 13 +- .../Snitch/Templates/TransposeTemplate.py | 121 ++++++++++++++---- 3 files changed, 120 insertions(+), 27 deletions(-) diff --git a/Deeploy/Targets/Snitch/Bindings.py b/Deeploy/Targets/Snitch/Bindings.py index 75efb22f77..641afef6a4 100644 --- a/Deeploy/Targets/Snitch/Bindings.py +++ b/Deeploy/Targets/Snitch/Bindings.py @@ -18,9 +18,8 @@ from Deeploy.Targets.Snitch.CodeTransformationPasses import SnitchClusterTiling, SnitchCoreFilterPass, \ SnitchSynchCoresPass from Deeploy.Targets.Snitch.DMA.SnitchDma import SnitchDma -from Deeploy.Targets.Generic.Templates import TransposeTemplate from Deeploy.Targets.Snitch.Templates import AddTemplate, FloatGemmTemplate, FloatMatMulTemplate, GatherTemplate, \ - MatMulTemplate, ReshapeTemplate, RQAddTemplate, iSoftmaxTemplate + MatMulTemplate, ReshapeTemplate, RQAddTemplate, TransposeTemplate, iSoftmaxTemplate from Deeploy.Targets.Snitch.Templates.FloatAddTemplate import referenceTemplate as FloatAddTemplate from Deeploy.Targets.Snitch.Templates.FloatDivTemplate import referenceTemplate as FloatDivTemplate from Deeploy.Targets.Snitch.Templates.FloatHardSwishTemplate import referenceTemplate as FloatHardSwishTemplate @@ -188,6 +187,16 @@ TransposeTemplate.referenceTemplate, TiledTransformer) ] +# Transpose Bindings (Non-tiled, multi-core) +BasicSnitchTransposeBindings = [ + NodeBinding(TransposeChecker([PointerClass(int8_t)], [PointerClass(int8_t)]), TransposeTemplate.referenceTemplate, + BasicTransformer), + NodeBinding(TransposeChecker([PointerClass(int32_t)], [PointerClass(int32_t)]), TransposeTemplate.referenceTemplate, + BasicTransformer), + NodeBinding(TransposeChecker([PointerClass(float32_t)], [PointerClass(float32_t)]), + TransposeTemplate.referenceTemplate, BasicTransformer) +] + # Reshape Bindings (Tiled) SnitchReshapeBindings = [ NodeBinding(ReshapeChecker([PointerClass(int8_t)], [PointerClass(int8_t)]), ReshapeTemplate.referenceTemplate, diff --git a/Deeploy/Targets/Snitch/Platform.py b/Deeploy/Targets/Snitch/Platform.py index bb37c8a2fe..6dfc2f4afb 100644 --- a/Deeploy/Targets/Snitch/Platform.py +++ b/Deeploy/Targets/Snitch/Platform.py @@ -9,8 +9,8 @@ from Deeploy.AbstractDataTypes import Pointer, PointerClass, VoidType from Deeploy.DeeployTypes import ConstantBuffer, DeploymentEngine, DeploymentPlatform, NodeMapper, NodeTemplate, \ StructBuffer, TopologyOptimizer, TransientBuffer, VariableBuffer -from Deeploy.Targets.Generic.Bindings import BasicLayerNormBindings, BasicPad1DBindings, BasicPad2DBindings, \ - BasicRQIntegerDivBinding +from Deeploy.Targets.Generic.Bindings import BasicConcatBindings, BasicGatherBindings, BasicLayerNormBindings, \ + BasicMatMulBindings, BasicPad1DBindings, BasicPad2DBindings, BasicReshapeBindings, BasicRQIntegerDivBinding from Deeploy.Targets.Generic.Layers import AddLayer, ConcatLayer, DivLayer, GatherLayer, GEMMLayer, HardSwishLayer, \ LayerNormLayer, MatMulLayer, MulLayer, PadLayer, ReshapeLayer, RMSNormLayer, RQGEMMLayer, RQIntegerDivLayer, \ SoftmaxLayer, TransposeLayer, iNoNormLayer @@ -21,6 +21,10 @@ from Deeploy.Targets.Generic.TopologyOptimizationPasses.Passes import AddRequantMergePass, GEMMRequantMergePass, \ IntegerDivRequantMergePass, MergeConstAddAndRequantPass, MergeTrueIntegerDivRequantShiftPass, RQSSplitPass, \ SkipEmptyConcatPass, SkipUnityRequantPass, iGELURequantMergePass, iHardswishRequantMergePass +from Deeploy.Targets.PULPOpen.Platform import RQAddMapper +from Deeploy.Targets.Snitch.Bindings import BasicDivBindings, BasicHardSwishBindings, BasicMulBindings, \ + BasicRMSNormBindings, BasicSnitchTransposeBindings, SnitchAddBindings, SnitchGemmBindings, \ + SnitchiNoNormBindings, SnitchiSoftmaxBindings, SnitchRQAddBindings, SnitchRqGemmBindings from Deeploy.Targets.Snitch.Parsers import HardSwishParser, SnitchDivParser, SnitchGEMMParser, SnitchMulParser, \ SnitchRMSNormParser, SnitchRQGEMMParser from Deeploy.Targets.Snitch.Templates import AllocateTemplate, FreeTemplate @@ -34,6 +38,11 @@ # Mappers without tiling-ready equivalents Pad1DMapper = NodeMapper(Pad1DParser(), BasicPad1DBindings) Pad2DMapper = NodeMapper(Pad2DParser(), BasicPad2DBindings) +UnsqueezeMapper = NodeMapper(UnsqueezeParser(), BasicReshapeBindings) +ReshapeMapper = NodeMapper(ReshapeParser(), BasicReshapeBindings) +TransposeMapper = NodeMapper(TransposeParser(), BasicSnitchTransposeBindings) +ConcatMapper = NodeMapper(ConcatParser(), BasicConcatBindings) + RQIntegerDivMapper = NodeMapper(RQIntegerDivParser(), [BasicRQIntegerDivBinding]) iLayerNormMapper = NodeMapper(iLayerNormParser(), BasicLayerNormBindings) diff --git a/Deeploy/Targets/Snitch/Templates/TransposeTemplate.py b/Deeploy/Targets/Snitch/Templates/TransposeTemplate.py index 5e33f85aa0..9d2d3954ac 100644 --- a/Deeploy/Targets/Snitch/Templates/TransposeTemplate.py +++ b/Deeploy/Targets/Snitch/Templates/TransposeTemplate.py @@ -2,33 +2,108 @@ # # SPDX-License-Identifier: Apache-2.0 -from Deeploy.DeeployTypes import NodeTemplate +from typing import Dict, List, Tuple -# Use snrt_cluster_core_idx() == 0 instead of BEGIN_SINGLE_CORE macro to avoid core_id dependency -referenceTemplate = NodeTemplate(""" -// Transpose ${data_in_shape} -> ${data_out_shape} (Name: ${nodeName}, Op: ${nodeOp}) -if (snrt_cluster_core_idx() == 0) { -${data_out_type.typeName} dummy_${data_out} = ${data_out}; -<% - dimStr = '' - accessStr = '' - shapeStr = '' - for dim in data_in_shape: - dimStr += '['+str(dim)+']' -%> -% for idx, i in enumerate(perm[:-1]): -<% - shapeStr += '['+str(data_in_shape[idx+1])+']' -%> +from Deeploy.DeeployTypes import NetworkContext, NodeTemplate, OperatorRepresentation, _Template + +# Two-stage header: <%text>${ escapes produce ${dimLen_N} template variables +# that survive the first render and get resolved during the second render +# (by operatorRepresentation in untiled mode, or TilingVariableReplacement in tiled mode) +_tileHeader = NodeTemplate(""" +const uint32_t _core_idx = snrt_cluster_core_idx(); +const uint32_t _core_num = snrt_cluster_compute_core_num(); + +% for i in range(numDims): +uint32_t dimLen_${i} = <%text>${${dimLenPtr[i]}<%text>}; % endfor +""") + +_tileForLoop = NodeTemplate(""" +const uint32_t _baseChunk_${i} = dimLen_${i} / _core_num; +const uint32_t _leftover_${i} = dimLen_${i} - _baseChunk_${i} * _core_num; +const uint32_t _offset_${i} = _baseChunk_${i} * _core_idx + (_core_idx < _leftover_${i} ? _core_idx : _leftover_${i}); +const uint32_t _chunk_${i} = _core_idx < _leftover_${i} ? _baseChunk_${i} + 1 : _baseChunk_${i}; +for(uint32_t i_${i} = _offset_${i}; i_${i} < _offset_${i} + _chunk_${i}; i_${i}++) { +""") + +_forLoop = NodeTemplate(""" +for(uint32_t i_${i} = 0; i_${i} < dimLen_${i}; i_${i}++) { +""") + + +class SnitchTransposeTemplate(NodeTemplate): + + def __init__(self, templateStr: str): + self._indirectTemplate = _Template(templateStr) + self.subTemplates = {} + self.subTemplateGenerators = {} + + def alignToContext(self, ctxt: NetworkContext, + operatorRepresentation: OperatorRepresentation) -> Tuple[NetworkContext, Dict, List[str]]: + shapeStr = "" + dimStr = "" + accessStr = "" + outAccessStr = "" + outShapeStr = "" + perm = operatorRepresentation['perm'] + data_in_shape = ctxt.lookup(operatorRepresentation['data_in']).shape + data_out_shape = ctxt.lookup(operatorRepresentation['data_out']).shape + + for idx, i in enumerate(perm[:-1]): + shapeStr += '[' + f"dimLen_{idx+1}" + ']' + outShapeStr += '[' + f"dimLen_{perm[idx+1]}" + ']' + + for dim in data_in_shape: + dimStr += '[' + str(dim) + ']' + + for idx, i in enumerate(perm): + accessStr += '[i_' + str(idx) + ']' + outAccessStr += '[i_' + str(i) + ']' + + fRep = operatorRepresentation.copy() + + fRep['shapeStr'] = shapeStr + fRep['outShapeStr'] = outShapeStr + fRep['outAccessStr'] = outAccessStr + fRep['dimStr'] = dimStr + fRep['accessStr'] = accessStr + fRep['data_out_shape'] = data_out_shape + + # Select the best dimension to parallelize: + # prefer dimensions >= 8 for good load balancing, otherwise pick the largest + parallelDims = [idx for idx, dim in enumerate(data_out_shape) if dim >= 8] + if len(parallelDims) > 0: + parallelDim = parallelDims[0] + else: + parallelDim = data_out_shape.index(max(data_out_shape)) + + forLoops = [] + dimLenPtrs = [] + for idx, i in enumerate(perm): + operatorRepresentation[f"dimLen_{idx}"] = data_in_shape[idx] + dimLenPtrs.append(f"dimLen_{idx}") + if idx != parallelDim: + forLoops.append(_forLoop.generate({"i": i})) + else: + forLoops.append(_tileForLoop.generate({"i": i})) + + fRep['forLoops'] = forLoops + fRep['tileHeader'] = _tileHeader.generate({"numDims": len(perm), "dimLenPtr": dimLenPtrs}) + fRep['parallelDim'] = parallelDim + + self.template = _Template(self._indirectTemplate.render(**fRep)) + + return ctxt, operatorRepresentation, [] + + +referenceTemplate = SnitchTransposeTemplate(""" +// Transpose ${data_in_shape} -> ${data_out_shape} (Name: ${nodeName}, Op: ${nodeOp}) +if (snrt_is_compute_core()) { +${tileHeader} % for idx, i in enumerate(perm): -<% - shape = data_out_shape[idx] - accessStr += '[i_'+str(idx)+']' -%> -for(uint32_t i_${i} = 0; i_${i}<${shape}; i_${i}++){ +${forLoops[idx]} % endfor -*dummy_${data_out}++ = ((${data_in_type.referencedType.typeName} (*)${shapeStr})${data_in})${accessStr}; +((${data_in_type.referencedType.typeName} (*)${outShapeStr})<%text>${data_out})${outAccessStr} = ((${data_in_type.referencedType.typeName} (*)${shapeStr})<%text>${data_in})${accessStr}; % for idx, i in enumerate(perm): } % endfor From 7092e3585a7b51c81db4919dec15f2480b7cc967 Mon Sep 17 00:00:00 2001 From: lee2716 Date: Wed, 4 Feb 2026 15:31:31 +0100 Subject: [PATCH 20/57] format: run make format on Snitch platform code --- Deeploy/Targets/Snitch/Bindings.py | 55 +++++--- .../SnitchClusterSynch.py | 8 +- .../SnitchCoreFilter.py | 8 +- .../SnitchProfileExecutionBlock.py | 8 +- Deeploy/Targets/Snitch/DMA/SnitchDma.py | 10 +- Deeploy/Targets/Snitch/DataTypes.py | 4 +- Deeploy/Targets/Snitch/Deployer.py | 15 ++- Deeploy/Targets/Snitch/Parsers.py | 9 +- Deeploy/Targets/Snitch/Platform.py | 122 ++++++++++++++---- .../Targets/Snitch/Templates/AddTemplate.py | 4 +- .../Snitch/Templates/FloatAddTemplate.py | 4 +- .../Snitch/Templates/FloatDivTemplate.py | 4 +- .../Templates/FloatHardSwishTemplate.py | 4 +- .../Snitch/Templates/FloatMulTemplate.py | 4 +- .../Snitch/Templates/FloatRMSNormTemplate.py | 4 +- .../Snitch/Templates/FloatSoftmaxTemplate.py | 4 +- .../Targets/Snitch/Templates/GemmTemplate.py | 4 +- .../Snitch/Templates/MatMulTemplate.py | 4 +- .../Snitch/Templates/RqGemmTemplate.py | 4 +- .../Snitch/Templates/TransposeTemplate.py | 5 +- .../TileConstraints/FloatDivTileConstraint.py | 9 +- .../TileConstraints/FloatMulTileConstraint.py | 9 +- .../TileConstraints/GemmTileConstraint.py | 12 +- .../TileConstraints/ReshapeTileConstraint.py | 9 +- .../TileConstraints/RqGemmTileConstraint.py | 12 +- .../TileConstraints/iNoNormTileConstraint.py | 7 +- .../TileConstraints/iSoftmaxTileConstraint.py | 7 +- Deeploy/Targets/Snitch/Tiler.py | 22 +++- TargetLibraries/Snitch/inc/kernel/MatMul.h | 10 +- TargetLibraries/Snitch/inc/kernel/RQMatMul.h | 14 +- .../Snitch/src/snitch_nn_add_i8_i8_i8.c | 12 +- 31 files changed, 293 insertions(+), 114 deletions(-) diff --git a/Deeploy/Targets/Snitch/Bindings.py b/Deeploy/Targets/Snitch/Bindings.py index 641afef6a4..57f50ac47e 100644 --- a/Deeploy/Targets/Snitch/Bindings.py +++ b/Deeploy/Targets/Snitch/Bindings.py @@ -5,21 +5,46 @@ from functools import partial from Deeploy.AbstractDataTypes import PointerClass -from Deeploy.CommonExtensions.CodeTransformationPasses.Closure import ClosureGeneration, MemoryAwareClosureGeneration -from Deeploy.CommonExtensions.CodeTransformationPasses.MemoryAllocation import ArgumentStructGeneration, \ - MemoryManagementGeneration -from Deeploy.CommonExtensions.DataTypes import float32_t, int8_t, int32_t, uint8_t -from Deeploy.DeeployTypes import CodeTransformation, NodeBinding +from Deeploy.CommonExtensions.CodeTransformationPasses.Closure import ClosureGeneration +from Deeploy.CommonExtensions.CodeTransformationPasses.Closure import MemoryAwareClosureGeneration +from Deeploy.CommonExtensions.CodeTransformationPasses.MemoryAllocation import ArgumentStructGeneration +from Deeploy.CommonExtensions.CodeTransformationPasses.MemoryAllocation import MemoryManagementGeneration +from Deeploy.CommonExtensions.DataTypes import float32_t +from Deeploy.CommonExtensions.DataTypes import int8_t +from Deeploy.CommonExtensions.DataTypes import int32_t +from Deeploy.CommonExtensions.DataTypes import uint8_t +from Deeploy.DeeployTypes import CodeTransformation +from Deeploy.DeeployTypes import NodeBinding from Deeploy.FutureExtension.CodeTransformationPasses.FutureCodeTransformation import FutureGeneration -from Deeploy.Targets.Generic.Templates import ConcatTemplate, iNoNormTemplate -from Deeploy.Targets.Generic.TypeCheckers import AddChecker, ConcatChecker, DivChecker, GatherChecker, GEMMChecker, \ - HardSwishChecker, MatMulChecker, MulChecker, ReshapeChecker, RMSNormChecker, RQAddChecker, SoftmaxChecker, \ - TransposeChecker, iNoNormChecker -from Deeploy.Targets.Snitch.CodeTransformationPasses import SnitchClusterTiling, SnitchCoreFilterPass, \ - SnitchSynchCoresPass +from Deeploy.Targets.Generic.Templates import ConcatTemplate +from Deeploy.Targets.Generic.Templates import iNoNormTemplate +from Deeploy.Targets.Generic.TypeCheckers import AddChecker +from Deeploy.Targets.Generic.TypeCheckers import ConcatChecker +from Deeploy.Targets.Generic.TypeCheckers import DivChecker +from Deeploy.Targets.Generic.TypeCheckers import GatherChecker +from Deeploy.Targets.Generic.TypeCheckers import GEMMChecker +from Deeploy.Targets.Generic.TypeCheckers import HardSwishChecker +from Deeploy.Targets.Generic.TypeCheckers import iNoNormChecker +from Deeploy.Targets.Generic.TypeCheckers import MatMulChecker +from Deeploy.Targets.Generic.TypeCheckers import MulChecker +from Deeploy.Targets.Generic.TypeCheckers import ReshapeChecker +from Deeploy.Targets.Generic.TypeCheckers import RMSNormChecker +from Deeploy.Targets.Generic.TypeCheckers import RQAddChecker +from Deeploy.Targets.Generic.TypeCheckers import SoftmaxChecker +from Deeploy.Targets.Generic.TypeCheckers import TransposeChecker +from Deeploy.Targets.Snitch.CodeTransformationPasses import SnitchClusterTiling +from Deeploy.Targets.Snitch.CodeTransformationPasses import SnitchCoreFilterPass +from Deeploy.Targets.Snitch.CodeTransformationPasses import SnitchSynchCoresPass from Deeploy.Targets.Snitch.DMA.SnitchDma import SnitchDma -from Deeploy.Targets.Snitch.Templates import AddTemplate, FloatGemmTemplate, FloatMatMulTemplate, GatherTemplate, \ - MatMulTemplate, ReshapeTemplate, RQAddTemplate, TransposeTemplate, iSoftmaxTemplate +from Deeploy.Targets.Snitch.Templates import AddTemplate +from Deeploy.Targets.Snitch.Templates import FloatGemmTemplate +from Deeploy.Targets.Snitch.Templates import FloatMatMulTemplate +from Deeploy.Targets.Snitch.Templates import GatherTemplate +from Deeploy.Targets.Snitch.Templates import iSoftmaxTemplate +from Deeploy.Targets.Snitch.Templates import MatMulTemplate +from Deeploy.Targets.Snitch.Templates import ReshapeTemplate +from Deeploy.Targets.Snitch.Templates import RQAddTemplate +from Deeploy.Targets.Snitch.Templates import TransposeTemplate from Deeploy.Targets.Snitch.Templates.FloatAddTemplate import referenceTemplate as FloatAddTemplate from Deeploy.Targets.Snitch.Templates.FloatDivTemplate import referenceTemplate as FloatDivTemplate from Deeploy.Targets.Snitch.Templates.FloatHardSwishTemplate import referenceTemplate as FloatHardSwishTemplate @@ -28,8 +53,8 @@ from Deeploy.Targets.Snitch.Templates.FloatSoftmaxTemplate import FloatSoftmax_Template from Deeploy.Targets.Snitch.Templates.GemmTemplate import SnitchGemm_Template from Deeploy.Targets.Snitch.Templates.RqGemmTemplate import SnitchRqGemm_Template -from Deeploy.TilingExtension.CodeTransformationPasses.TilingVariableReplacement import TilingVariableReplacement, \ - TilingVariableReplacementUpdate +from Deeploy.TilingExtension.CodeTransformationPasses.TilingVariableReplacement import TilingVariableReplacement +from Deeploy.TilingExtension.CodeTransformationPasses.TilingVariableReplacement import TilingVariableReplacementUpdate TilingCallClosure = partial(ClosureGeneration, closureSuffix = "_tiling_closure") MemoryAwareFunctionCallClosure = partial(MemoryAwareClosureGeneration, diff --git a/Deeploy/Targets/Snitch/CodeTransformationPasses/SnitchClusterSynch.py b/Deeploy/Targets/Snitch/CodeTransformationPasses/SnitchClusterSynch.py index cc0af164ad..70abe0b99f 100644 --- a/Deeploy/Targets/Snitch/CodeTransformationPasses/SnitchClusterSynch.py +++ b/Deeploy/Targets/Snitch/CodeTransformationPasses/SnitchClusterSynch.py @@ -4,8 +4,12 @@ from typing import Tuple -from Deeploy.DeeployTypes import CodeGenVerbosity, CodeTransformationPass, ExecutionBlock, NetworkContext, \ - NodeTemplate, _NoVerbosity +from Deeploy.DeeployTypes import _NoVerbosity +from Deeploy.DeeployTypes import CodeGenVerbosity +from Deeploy.DeeployTypes import CodeTransformationPass +from Deeploy.DeeployTypes import ExecutionBlock +from Deeploy.DeeployTypes import NetworkContext +from Deeploy.DeeployTypes import NodeTemplate _synchTemplate = NodeTemplate(""" snrt_cluster_hw_barrier(); diff --git a/Deeploy/Targets/Snitch/CodeTransformationPasses/SnitchCoreFilter.py b/Deeploy/Targets/Snitch/CodeTransformationPasses/SnitchCoreFilter.py index a864c5db8f..c900e128be 100644 --- a/Deeploy/Targets/Snitch/CodeTransformationPasses/SnitchCoreFilter.py +++ b/Deeploy/Targets/Snitch/CodeTransformationPasses/SnitchCoreFilter.py @@ -4,8 +4,12 @@ from typing import Literal, Tuple -from Deeploy.DeeployTypes import CodeGenVerbosity, CodeTransformationPass, ExecutionBlock, NetworkContext, \ - NodeTemplate, _NoVerbosity +from Deeploy.DeeployTypes import _NoVerbosity +from Deeploy.DeeployTypes import CodeGenVerbosity +from Deeploy.DeeployTypes import CodeTransformationPass +from Deeploy.DeeployTypes import ExecutionBlock +from Deeploy.DeeployTypes import NetworkContext +from Deeploy.DeeployTypes import NodeTemplate class SnitchCoreFilterPass(CodeTransformationPass): diff --git a/Deeploy/Targets/Snitch/CodeTransformationPasses/SnitchProfileExecutionBlock.py b/Deeploy/Targets/Snitch/CodeTransformationPasses/SnitchProfileExecutionBlock.py index ec17b36011..8186dcf8ae 100644 --- a/Deeploy/Targets/Snitch/CodeTransformationPasses/SnitchProfileExecutionBlock.py +++ b/Deeploy/Targets/Snitch/CodeTransformationPasses/SnitchProfileExecutionBlock.py @@ -4,8 +4,12 @@ from typing import Tuple -from Deeploy.DeeployTypes import CodeGenVerbosity, CodeTransformationPass, ExecutionBlock, NetworkContext, \ - NodeTemplate, _NoVerbosity +from Deeploy.DeeployTypes import _NoVerbosity +from Deeploy.DeeployTypes import CodeGenVerbosity +from Deeploy.DeeployTypes import CodeTransformationPass +from Deeploy.DeeployTypes import ExecutionBlock +from Deeploy.DeeployTypes import NetworkContext +from Deeploy.DeeployTypes import NodeTemplate _dumpCycleCntTemplate = NodeTemplate(""" snrt_cluster_hw_barrier(); diff --git a/Deeploy/Targets/Snitch/DMA/SnitchDma.py b/Deeploy/Targets/Snitch/DMA/SnitchDma.py index ac0c622cc8..acda4ad3b2 100644 --- a/Deeploy/Targets/Snitch/DMA/SnitchDma.py +++ b/Deeploy/Targets/Snitch/DMA/SnitchDma.py @@ -4,8 +4,14 @@ from typing import Dict, Tuple -from Deeploy.DeeployTypes import NetworkContext, NodeTemplate, OperatorRepresentation, VariableBuffer -from Deeploy.TilingExtension.AsyncDma import AsyncDma, DmaDirection, Future, PerTensorWaitingStrategy +from Deeploy.DeeployTypes import NetworkContext +from Deeploy.DeeployTypes import NodeTemplate +from Deeploy.DeeployTypes import OperatorRepresentation +from Deeploy.DeeployTypes import VariableBuffer +from Deeploy.TilingExtension.AsyncDma import AsyncDma +from Deeploy.TilingExtension.AsyncDma import DmaDirection +from Deeploy.TilingExtension.AsyncDma import Future +from Deeploy.TilingExtension.AsyncDma import PerTensorWaitingStrategy class SnitchBarrierFuture(Future): diff --git a/Deeploy/Targets/Snitch/DataTypes.py b/Deeploy/Targets/Snitch/DataTypes.py index 16cd6e8cbe..d5ebe59240 100644 --- a/Deeploy/Targets/Snitch/DataTypes.py +++ b/Deeploy/Targets/Snitch/DataTypes.py @@ -2,7 +2,9 @@ # # SPDX-License-Identifier: Apache-2.0 -from Deeploy.AbstractDataTypes import PointerClass, Struct, VoidType +from Deeploy.AbstractDataTypes import PointerClass +from Deeploy.AbstractDataTypes import Struct +from Deeploy.AbstractDataTypes import VoidType from Deeploy.CommonExtensions.DataTypes import uint16_t diff --git a/Deeploy/Targets/Snitch/Deployer.py b/Deeploy/Targets/Snitch/Deployer.py index 7c3922a6bb..24891c44da 100644 --- a/Deeploy/Targets/Snitch/Deployer.py +++ b/Deeploy/Targets/Snitch/Deployer.py @@ -9,10 +9,17 @@ from Deeploy.AbstractDataTypes import Pointer from Deeploy.CommonExtensions.NetworkDeployers.SignPropDeployer import SignPropDeployer from Deeploy.CommonExtensions.OptimizationPasses.TopologyOptimizationPasses.LoweringOptimizationPasses import \ - NCHWtoNHWCPass, RemoveGlobalOutputReshapePass, TransposeMatmulInputsPass -from Deeploy.DeeployTypes import DeploymentPlatform, TopologyOptimizer -from Deeploy.Targets.Generic.TopologyOptimizationPasses.Passes import ReshapeConstOptPass, TransposeConstOptPass, \ - TransposeMergePass, TransposeSplitPass + NCHWtoNHWCPass +from Deeploy.CommonExtensions.OptimizationPasses.TopologyOptimizationPasses.LoweringOptimizationPasses import \ + RemoveGlobalOutputReshapePass +from Deeploy.CommonExtensions.OptimizationPasses.TopologyOptimizationPasses.LoweringOptimizationPasses import \ + TransposeMatmulInputsPass +from Deeploy.DeeployTypes import DeploymentPlatform +from Deeploy.DeeployTypes import TopologyOptimizer +from Deeploy.Targets.Generic.TopologyOptimizationPasses.Passes import ReshapeConstOptPass +from Deeploy.Targets.Generic.TopologyOptimizationPasses.Passes import TransposeConstOptPass +from Deeploy.Targets.Generic.TopologyOptimizationPasses.Passes import TransposeMergePass +from Deeploy.Targets.Generic.TopologyOptimizationPasses.Passes import TransposeSplitPass class SnitchDeployer(SignPropDeployer): diff --git a/Deeploy/Targets/Snitch/Parsers.py b/Deeploy/Targets/Snitch/Parsers.py index 57af4c8a95..f9acc4eefa 100644 --- a/Deeploy/Targets/Snitch/Parsers.py +++ b/Deeploy/Targets/Snitch/Parsers.py @@ -7,8 +7,13 @@ import numpy as np import onnx_graphsurgeon as gs -from Deeploy.DeeployTypes import NetworkContext, NodeParser -from Deeploy.Targets.Generic.Parsers import AddParser, DivParser, GEMMParser, MulParser, RQGEMMParser +from Deeploy.DeeployTypes import NetworkContext +from Deeploy.DeeployTypes import NodeParser +from Deeploy.Targets.Generic.Parsers import AddParser +from Deeploy.Targets.Generic.Parsers import DivParser +from Deeploy.Targets.Generic.Parsers import GEMMParser +from Deeploy.Targets.Generic.Parsers import MulParser +from Deeploy.Targets.Generic.Parsers import RQGEMMParser class SnitchGEMMParser(GEMMParser): diff --git a/Deeploy/Targets/Snitch/Platform.py b/Deeploy/Targets/Snitch/Platform.py index 6dfc2f4afb..b0fbc6bf62 100644 --- a/Deeploy/Targets/Snitch/Platform.py +++ b/Deeploy/Targets/Snitch/Platform.py @@ -6,34 +6,104 @@ import numpy as np -from Deeploy.AbstractDataTypes import Pointer, PointerClass, VoidType -from Deeploy.DeeployTypes import ConstantBuffer, DeploymentEngine, DeploymentPlatform, NodeMapper, NodeTemplate, \ - StructBuffer, TopologyOptimizer, TransientBuffer, VariableBuffer -from Deeploy.Targets.Generic.Bindings import BasicConcatBindings, BasicGatherBindings, BasicLayerNormBindings, \ - BasicMatMulBindings, BasicPad1DBindings, BasicPad2DBindings, BasicReshapeBindings, BasicRQIntegerDivBinding -from Deeploy.Targets.Generic.Layers import AddLayer, ConcatLayer, DivLayer, GatherLayer, GEMMLayer, HardSwishLayer, \ - LayerNormLayer, MatMulLayer, MulLayer, PadLayer, ReshapeLayer, RMSNormLayer, RQGEMMLayer, RQIntegerDivLayer, \ - SoftmaxLayer, TransposeLayer, iNoNormLayer -from Deeploy.Targets.Generic.Parsers import AddParser, ConcatParser, GatherParser, MatMulParser, Pad1DParser, Pad2DParser, \ - ReshapeParser, RQAddParser, RQIntegerDivParser, SoftmaxParser, TransposeParser, UnsqueezeParser, iLayerNormParser, \ - iNoNormParser, iSoftmaxParser +from Deeploy.AbstractDataTypes import Pointer +from Deeploy.AbstractDataTypes import PointerClass +from Deeploy.AbstractDataTypes import VoidType +from Deeploy.DeeployTypes import ConstantBuffer +from Deeploy.DeeployTypes import DeploymentEngine +from Deeploy.DeeployTypes import DeploymentPlatform +from Deeploy.DeeployTypes import NodeMapper +from Deeploy.DeeployTypes import NodeTemplate +from Deeploy.DeeployTypes import StructBuffer +from Deeploy.DeeployTypes import TopologyOptimizer +from Deeploy.DeeployTypes import TransientBuffer +from Deeploy.DeeployTypes import VariableBuffer +from Deeploy.Targets.Generic.Bindings import BasicConcatBindings +from Deeploy.Targets.Generic.Bindings import BasicGatherBindings +from Deeploy.Targets.Generic.Bindings import BasicLayerNormBindings +from Deeploy.Targets.Generic.Bindings import BasicMatMulBindings +from Deeploy.Targets.Generic.Bindings import BasicPad1DBindings +from Deeploy.Targets.Generic.Bindings import BasicPad2DBindings +from Deeploy.Targets.Generic.Bindings import BasicReshapeBindings +from Deeploy.Targets.Generic.Bindings import BasicRQIntegerDivBinding +from Deeploy.Targets.Generic.Layers import AddLayer +from Deeploy.Targets.Generic.Layers import ConcatLayer +from Deeploy.Targets.Generic.Layers import DivLayer +from Deeploy.Targets.Generic.Layers import GatherLayer +from Deeploy.Targets.Generic.Layers import GEMMLayer +from Deeploy.Targets.Generic.Layers import HardSwishLayer +from Deeploy.Targets.Generic.Layers import iNoNormLayer +from Deeploy.Targets.Generic.Layers import LayerNormLayer +from Deeploy.Targets.Generic.Layers import MatMulLayer +from Deeploy.Targets.Generic.Layers import MulLayer +from Deeploy.Targets.Generic.Layers import PadLayer +from Deeploy.Targets.Generic.Layers import ReshapeLayer +from Deeploy.Targets.Generic.Layers import RMSNormLayer +from Deeploy.Targets.Generic.Layers import RQGEMMLayer +from Deeploy.Targets.Generic.Layers import RQIntegerDivLayer +from Deeploy.Targets.Generic.Layers import SoftmaxLayer +from Deeploy.Targets.Generic.Layers import TransposeLayer +from Deeploy.Targets.Generic.Parsers import AddParser +from Deeploy.Targets.Generic.Parsers import ConcatParser +from Deeploy.Targets.Generic.Parsers import GatherParser +from Deeploy.Targets.Generic.Parsers import iLayerNormParser +from Deeploy.Targets.Generic.Parsers import iNoNormParser +from Deeploy.Targets.Generic.Parsers import iSoftmaxParser +from Deeploy.Targets.Generic.Parsers import MatMulParser +from Deeploy.Targets.Generic.Parsers import Pad1DParser +from Deeploy.Targets.Generic.Parsers import Pad2DParser +from Deeploy.Targets.Generic.Parsers import ReshapeParser +from Deeploy.Targets.Generic.Parsers import RQAddParser +from Deeploy.Targets.Generic.Parsers import RQIntegerDivParser +from Deeploy.Targets.Generic.Parsers import SoftmaxParser +from Deeploy.Targets.Generic.Parsers import TransposeParser +from Deeploy.Targets.Generic.Parsers import UnsqueezeParser from Deeploy.Targets.Generic.Templates import AllocateTemplate as BasicAllocateTemplate -from Deeploy.Targets.Generic.TopologyOptimizationPasses.Passes import AddRequantMergePass, GEMMRequantMergePass, \ - IntegerDivRequantMergePass, MergeConstAddAndRequantPass, MergeTrueIntegerDivRequantShiftPass, RQSSplitPass, \ - SkipEmptyConcatPass, SkipUnityRequantPass, iGELURequantMergePass, iHardswishRequantMergePass +from Deeploy.Targets.Generic.TopologyOptimizationPasses.Passes import AddRequantMergePass +from Deeploy.Targets.Generic.TopologyOptimizationPasses.Passes import GEMMRequantMergePass +from Deeploy.Targets.Generic.TopologyOptimizationPasses.Passes import iGELURequantMergePass +from Deeploy.Targets.Generic.TopologyOptimizationPasses.Passes import iHardswishRequantMergePass +from Deeploy.Targets.Generic.TopologyOptimizationPasses.Passes import IntegerDivRequantMergePass +from Deeploy.Targets.Generic.TopologyOptimizationPasses.Passes import MergeConstAddAndRequantPass +from Deeploy.Targets.Generic.TopologyOptimizationPasses.Passes import MergeTrueIntegerDivRequantShiftPass +from Deeploy.Targets.Generic.TopologyOptimizationPasses.Passes import RQSSplitPass +from Deeploy.Targets.Generic.TopologyOptimizationPasses.Passes import SkipEmptyConcatPass +from Deeploy.Targets.Generic.TopologyOptimizationPasses.Passes import SkipUnityRequantPass from Deeploy.Targets.PULPOpen.Platform import RQAddMapper -from Deeploy.Targets.Snitch.Bindings import BasicDivBindings, BasicHardSwishBindings, BasicMulBindings, \ - BasicRMSNormBindings, BasicSnitchTransposeBindings, SnitchAddBindings, SnitchGemmBindings, \ - SnitchiNoNormBindings, SnitchiSoftmaxBindings, SnitchRQAddBindings, SnitchRqGemmBindings -from Deeploy.Targets.Snitch.Parsers import HardSwishParser, SnitchDivParser, SnitchGEMMParser, SnitchMulParser, \ - SnitchRMSNormParser, SnitchRQGEMMParser -from Deeploy.Targets.Snitch.Templates import AllocateTemplate, FreeTemplate -from Deeploy.Targets.Snitch.Tiler import SnitchAddTileReadyBindings, SnitchConcatTilingReadyBindings, \ - SnitchDivTilingReadyBindings, SnitchGatherTilingReadyBindings, SnitchGemmTilingReadyBindings, \ - SnitchHardSwishTilingReadyBindings, SnitchiNoNormTilingReadyBindings, SnitchiSoftmaxTilingReadyBindings, \ - SnitchMatMulTilingReadyBindings, SnitchMulTilingReadyBindings, SnitchReshapeTilingReadyBindings, \ - SnitchRMSNormTilingReadyBindings, SnitchRQAddTilingReadyBindings, SnitchRqGemmTilingReadyBindings, \ - SnitchTransposeTilingReadyBindings +from Deeploy.Targets.Snitch.Bindings import BasicDivBindings +from Deeploy.Targets.Snitch.Bindings import BasicHardSwishBindings +from Deeploy.Targets.Snitch.Bindings import BasicMulBindings +from Deeploy.Targets.Snitch.Bindings import BasicRMSNormBindings +from Deeploy.Targets.Snitch.Bindings import BasicSnitchTransposeBindings +from Deeploy.Targets.Snitch.Bindings import SnitchAddBindings +from Deeploy.Targets.Snitch.Bindings import SnitchGemmBindings +from Deeploy.Targets.Snitch.Bindings import SnitchiNoNormBindings +from Deeploy.Targets.Snitch.Bindings import SnitchiSoftmaxBindings +from Deeploy.Targets.Snitch.Bindings import SnitchRQAddBindings +from Deeploy.Targets.Snitch.Bindings import SnitchRqGemmBindings +from Deeploy.Targets.Snitch.Parsers import HardSwishParser +from Deeploy.Targets.Snitch.Parsers import SnitchDivParser +from Deeploy.Targets.Snitch.Parsers import SnitchGEMMParser +from Deeploy.Targets.Snitch.Parsers import SnitchMulParser +from Deeploy.Targets.Snitch.Parsers import SnitchRMSNormParser +from Deeploy.Targets.Snitch.Parsers import SnitchRQGEMMParser +from Deeploy.Targets.Snitch.Templates import AllocateTemplate +from Deeploy.Targets.Snitch.Templates import FreeTemplate +from Deeploy.Targets.Snitch.Tiler import SnitchAddTileReadyBindings +from Deeploy.Targets.Snitch.Tiler import SnitchConcatTilingReadyBindings +from Deeploy.Targets.Snitch.Tiler import SnitchDivTilingReadyBindings +from Deeploy.Targets.Snitch.Tiler import SnitchGatherTilingReadyBindings +from Deeploy.Targets.Snitch.Tiler import SnitchGemmTilingReadyBindings +from Deeploy.Targets.Snitch.Tiler import SnitchHardSwishTilingReadyBindings +from Deeploy.Targets.Snitch.Tiler import SnitchiNoNormTilingReadyBindings +from Deeploy.Targets.Snitch.Tiler import SnitchiSoftmaxTilingReadyBindings +from Deeploy.Targets.Snitch.Tiler import SnitchMatMulTilingReadyBindings +from Deeploy.Targets.Snitch.Tiler import SnitchMulTilingReadyBindings +from Deeploy.Targets.Snitch.Tiler import SnitchReshapeTilingReadyBindings +from Deeploy.Targets.Snitch.Tiler import SnitchRMSNormTilingReadyBindings +from Deeploy.Targets.Snitch.Tiler import SnitchRQAddTilingReadyBindings +from Deeploy.Targets.Snitch.Tiler import SnitchRqGemmTilingReadyBindings +from Deeploy.Targets.Snitch.Tiler import SnitchTransposeTilingReadyBindings # Mappers without tiling-ready equivalents Pad1DMapper = NodeMapper(Pad1DParser(), BasicPad1DBindings) diff --git a/Deeploy/Targets/Snitch/Templates/AddTemplate.py b/Deeploy/Targets/Snitch/Templates/AddTemplate.py index 428f087300..13df15dac2 100644 --- a/Deeploy/Targets/Snitch/Templates/AddTemplate.py +++ b/Deeploy/Targets/Snitch/Templates/AddTemplate.py @@ -4,7 +4,9 @@ from typing import Dict, List, Tuple -from Deeploy.DeeployTypes import NetworkContext, NodeTemplate, OperatorRepresentation +from Deeploy.DeeployTypes import NetworkContext +from Deeploy.DeeployTypes import NodeTemplate +from Deeploy.DeeployTypes import OperatorRepresentation class _SnitchAddTemplate(NodeTemplate): diff --git a/Deeploy/Targets/Snitch/Templates/FloatAddTemplate.py b/Deeploy/Targets/Snitch/Templates/FloatAddTemplate.py index 5c5675c58f..1dbe5ef723 100644 --- a/Deeploy/Targets/Snitch/Templates/FloatAddTemplate.py +++ b/Deeploy/Targets/Snitch/Templates/FloatAddTemplate.py @@ -5,7 +5,9 @@ from typing import Dict, List, Tuple -from Deeploy.DeeployTypes import NetworkContext, NodeTemplate, OperatorRepresentation +from Deeploy.DeeployTypes import NetworkContext +from Deeploy.DeeployTypes import NodeTemplate +from Deeploy.DeeployTypes import OperatorRepresentation class _FloatAddTemplate(NodeTemplate): diff --git a/Deeploy/Targets/Snitch/Templates/FloatDivTemplate.py b/Deeploy/Targets/Snitch/Templates/FloatDivTemplate.py index c71cd0a507..af84efd704 100644 --- a/Deeploy/Targets/Snitch/Templates/FloatDivTemplate.py +++ b/Deeploy/Targets/Snitch/Templates/FloatDivTemplate.py @@ -4,7 +4,9 @@ from typing import Dict, List, Tuple -from Deeploy.DeeployTypes import NetworkContext, NodeTemplate, OperatorRepresentation +from Deeploy.DeeployTypes import NetworkContext +from Deeploy.DeeployTypes import NodeTemplate +from Deeploy.DeeployTypes import OperatorRepresentation class FloatDivTemplate(NodeTemplate): diff --git a/Deeploy/Targets/Snitch/Templates/FloatHardSwishTemplate.py b/Deeploy/Targets/Snitch/Templates/FloatHardSwishTemplate.py index 1615282437..bfd99446f2 100644 --- a/Deeploy/Targets/Snitch/Templates/FloatHardSwishTemplate.py +++ b/Deeploy/Targets/Snitch/Templates/FloatHardSwishTemplate.py @@ -6,7 +6,9 @@ import numpy as np -from Deeploy.DeeployTypes import NetworkContext, NodeTemplate, OperatorRepresentation +from Deeploy.DeeployTypes import NetworkContext +from Deeploy.DeeployTypes import NodeTemplate +from Deeploy.DeeployTypes import OperatorRepresentation class FloatHardSwishTemplate(NodeTemplate): diff --git a/Deeploy/Targets/Snitch/Templates/FloatMulTemplate.py b/Deeploy/Targets/Snitch/Templates/FloatMulTemplate.py index 7a970e6411..7592bcafcf 100644 --- a/Deeploy/Targets/Snitch/Templates/FloatMulTemplate.py +++ b/Deeploy/Targets/Snitch/Templates/FloatMulTemplate.py @@ -4,7 +4,9 @@ from typing import Dict, List, Tuple -from Deeploy.DeeployTypes import NetworkContext, NodeTemplate, OperatorRepresentation +from Deeploy.DeeployTypes import NetworkContext +from Deeploy.DeeployTypes import NodeTemplate +from Deeploy.DeeployTypes import OperatorRepresentation class FloatMulTemplate(NodeTemplate): diff --git a/Deeploy/Targets/Snitch/Templates/FloatRMSNormTemplate.py b/Deeploy/Targets/Snitch/Templates/FloatRMSNormTemplate.py index 629c1bb4f3..cb4b20e589 100644 --- a/Deeploy/Targets/Snitch/Templates/FloatRMSNormTemplate.py +++ b/Deeploy/Targets/Snitch/Templates/FloatRMSNormTemplate.py @@ -6,7 +6,9 @@ import numpy as np -from Deeploy.DeeployTypes import NetworkContext, NodeTemplate, OperatorRepresentation +from Deeploy.DeeployTypes import NetworkContext +from Deeploy.DeeployTypes import NodeTemplate +from Deeploy.DeeployTypes import OperatorRepresentation class FloatRMSNormTemplate(NodeTemplate): diff --git a/Deeploy/Targets/Snitch/Templates/FloatSoftmaxTemplate.py b/Deeploy/Targets/Snitch/Templates/FloatSoftmaxTemplate.py index a7bf0f61c7..d351d14ffc 100644 --- a/Deeploy/Targets/Snitch/Templates/FloatSoftmaxTemplate.py +++ b/Deeploy/Targets/Snitch/Templates/FloatSoftmaxTemplate.py @@ -4,7 +4,9 @@ from typing import Dict, List, Tuple -from Deeploy.DeeployTypes import NetworkContext, NodeTemplate, OperatorRepresentation +from Deeploy.DeeployTypes import NetworkContext +from Deeploy.DeeployTypes import NodeTemplate +from Deeploy.DeeployTypes import OperatorRepresentation class FloatSoftmaxTemplate(NodeTemplate): diff --git a/Deeploy/Targets/Snitch/Templates/GemmTemplate.py b/Deeploy/Targets/Snitch/Templates/GemmTemplate.py index d72b3c11f2..e028b34212 100644 --- a/Deeploy/Targets/Snitch/Templates/GemmTemplate.py +++ b/Deeploy/Targets/Snitch/Templates/GemmTemplate.py @@ -4,7 +4,9 @@ from typing import Dict, List, Tuple -from Deeploy.DeeployTypes import NetworkContext, NodeTemplate, OperatorRepresentation +from Deeploy.DeeployTypes import NetworkContext +from Deeploy.DeeployTypes import NodeTemplate +from Deeploy.DeeployTypes import OperatorRepresentation class SnitchGemmTemplate(NodeTemplate): diff --git a/Deeploy/Targets/Snitch/Templates/MatMulTemplate.py b/Deeploy/Targets/Snitch/Templates/MatMulTemplate.py index bce916ea60..ed8149beb7 100644 --- a/Deeploy/Targets/Snitch/Templates/MatMulTemplate.py +++ b/Deeploy/Targets/Snitch/Templates/MatMulTemplate.py @@ -4,7 +4,9 @@ from typing import Dict, List, Tuple -from Deeploy.DeeployTypes import NetworkContext, NodeTemplate, OperatorRepresentation +from Deeploy.DeeployTypes import NetworkContext +from Deeploy.DeeployTypes import NodeTemplate +from Deeploy.DeeployTypes import OperatorRepresentation class _MatMulTemplate(NodeTemplate): diff --git a/Deeploy/Targets/Snitch/Templates/RqGemmTemplate.py b/Deeploy/Targets/Snitch/Templates/RqGemmTemplate.py index f77b6d6127..745f2dc4d5 100644 --- a/Deeploy/Targets/Snitch/Templates/RqGemmTemplate.py +++ b/Deeploy/Targets/Snitch/Templates/RqGemmTemplate.py @@ -4,7 +4,9 @@ from typing import Dict, List, Tuple -from Deeploy.DeeployTypes import NetworkContext, NodeTemplate, OperatorRepresentation +from Deeploy.DeeployTypes import NetworkContext +from Deeploy.DeeployTypes import NodeTemplate +from Deeploy.DeeployTypes import OperatorRepresentation class SnitchRqGemmTemplate(NodeTemplate): diff --git a/Deeploy/Targets/Snitch/Templates/TransposeTemplate.py b/Deeploy/Targets/Snitch/Templates/TransposeTemplate.py index 9d2d3954ac..da19c61391 100644 --- a/Deeploy/Targets/Snitch/Templates/TransposeTemplate.py +++ b/Deeploy/Targets/Snitch/Templates/TransposeTemplate.py @@ -4,7 +4,10 @@ from typing import Dict, List, Tuple -from Deeploy.DeeployTypes import NetworkContext, NodeTemplate, OperatorRepresentation, _Template +from Deeploy.DeeployTypes import _Template +from Deeploy.DeeployTypes import NetworkContext +from Deeploy.DeeployTypes import NodeTemplate +from Deeploy.DeeployTypes import OperatorRepresentation # Two-stage header: <%text>${ escapes produce ${dimLen_N} template variables # that survive the first render and get resolved during the second render diff --git a/Deeploy/Targets/Snitch/TileConstraints/FloatDivTileConstraint.py b/Deeploy/Targets/Snitch/TileConstraints/FloatDivTileConstraint.py index e2de98535d..1d0bd8c98a 100644 --- a/Deeploy/Targets/Snitch/TileConstraints/FloatDivTileConstraint.py +++ b/Deeploy/Targets/Snitch/TileConstraints/FloatDivTileConstraint.py @@ -8,12 +8,15 @@ from Deeploy.AbstractDataTypes import PointerClass from Deeploy.CommonExtensions.DataTypes import uint16_t -from Deeploy.DeeployTypes import NetworkContext, OperatorRepresentation +from Deeploy.DeeployTypes import NetworkContext +from Deeploy.DeeployTypes import OperatorRepresentation from Deeploy.TilingExtension.MemoryConstraints import NodeMemoryConstraint from Deeploy.TilingExtension.TileConstraint import TileConstraint from Deeploy.TilingExtension.TilerModel import TilerModel -from Deeploy.TilingExtension.TilingCodegen import AbsoluteHyperRectangle, HyperRectangle, TilingSchedule, \ - VariableReplacementScheme +from Deeploy.TilingExtension.TilingCodegen import AbsoluteHyperRectangle +from Deeploy.TilingExtension.TilingCodegen import HyperRectangle +from Deeploy.TilingExtension.TilingCodegen import TilingSchedule +from Deeploy.TilingExtension.TilingCodegen import VariableReplacementScheme class FloatDivTileConstraint(TileConstraint): diff --git a/Deeploy/Targets/Snitch/TileConstraints/FloatMulTileConstraint.py b/Deeploy/Targets/Snitch/TileConstraints/FloatMulTileConstraint.py index e3c7f1f974..3c292ac257 100644 --- a/Deeploy/Targets/Snitch/TileConstraints/FloatMulTileConstraint.py +++ b/Deeploy/Targets/Snitch/TileConstraints/FloatMulTileConstraint.py @@ -8,12 +8,15 @@ from Deeploy.AbstractDataTypes import PointerClass from Deeploy.CommonExtensions.DataTypes import uint16_t -from Deeploy.DeeployTypes import NetworkContext, OperatorRepresentation +from Deeploy.DeeployTypes import NetworkContext +from Deeploy.DeeployTypes import OperatorRepresentation from Deeploy.TilingExtension.MemoryConstraints import NodeMemoryConstraint from Deeploy.TilingExtension.TileConstraint import TileConstraint from Deeploy.TilingExtension.TilerModel import TilerModel -from Deeploy.TilingExtension.TilingCodegen import AbsoluteHyperRectangle, HyperRectangle, TilingSchedule, \ - VariableReplacementScheme +from Deeploy.TilingExtension.TilingCodegen import AbsoluteHyperRectangle +from Deeploy.TilingExtension.TilingCodegen import HyperRectangle +from Deeploy.TilingExtension.TilingCodegen import TilingSchedule +from Deeploy.TilingExtension.TilingCodegen import VariableReplacementScheme class FloatMulTileConstraint(TileConstraint): diff --git a/Deeploy/Targets/Snitch/TileConstraints/GemmTileConstraint.py b/Deeploy/Targets/Snitch/TileConstraints/GemmTileConstraint.py index e5d35c4a42..48ad6c71b4 100644 --- a/Deeploy/Targets/Snitch/TileConstraints/GemmTileConstraint.py +++ b/Deeploy/Targets/Snitch/TileConstraints/GemmTileConstraint.py @@ -6,12 +6,16 @@ from Deeploy.AbstractDataTypes import PointerClass from Deeploy.CommonExtensions.DataTypes import uint32_t -from Deeploy.DeeployTypes import NetworkContext, OperatorRepresentation +from Deeploy.DeeployTypes import NetworkContext +from Deeploy.DeeployTypes import OperatorRepresentation from Deeploy.TilingExtension.MemoryConstraints import NodeMemoryConstraint from Deeploy.TilingExtension.TileConstraint import TileConstraint -from Deeploy.TilingExtension.TilerModel import PerformanceHint, TilerModel -from Deeploy.TilingExtension.TilingCodegen import AbsoluteHyperRectangle, HyperRectangle, TilingSchedule, \ - VariableReplacementScheme +from Deeploy.TilingExtension.TilerModel import PerformanceHint +from Deeploy.TilingExtension.TilerModel import TilerModel +from Deeploy.TilingExtension.TilingCodegen import AbsoluteHyperRectangle +from Deeploy.TilingExtension.TilingCodegen import HyperRectangle +from Deeploy.TilingExtension.TilingCodegen import TilingSchedule +from Deeploy.TilingExtension.TilingCodegen import VariableReplacementScheme class GemmTileConstraint(TileConstraint): diff --git a/Deeploy/Targets/Snitch/TileConstraints/ReshapeTileConstraint.py b/Deeploy/Targets/Snitch/TileConstraints/ReshapeTileConstraint.py index 01a7e7e406..cff40063bb 100644 --- a/Deeploy/Targets/Snitch/TileConstraints/ReshapeTileConstraint.py +++ b/Deeploy/Targets/Snitch/TileConstraints/ReshapeTileConstraint.py @@ -8,12 +8,15 @@ from Deeploy.AbstractDataTypes import PointerClass from Deeploy.CommonExtensions.DataTypes import uint16_t -from Deeploy.DeeployTypes import NetworkContext, OperatorRepresentation +from Deeploy.DeeployTypes import NetworkContext +from Deeploy.DeeployTypes import OperatorRepresentation from Deeploy.TilingExtension.MemoryConstraints import NodeMemoryConstraint from Deeploy.TilingExtension.TileConstraint import TileConstraint from Deeploy.TilingExtension.TilerModel import TilerModel -from Deeploy.TilingExtension.TilingCodegen import AbsoluteHyperRectangle, HyperRectangle, TilingSchedule, \ - VariableReplacementScheme +from Deeploy.TilingExtension.TilingCodegen import AbsoluteHyperRectangle +from Deeploy.TilingExtension.TilingCodegen import HyperRectangle +from Deeploy.TilingExtension.TilingCodegen import TilingSchedule +from Deeploy.TilingExtension.TilingCodegen import VariableReplacementScheme class ReshapeTileConstraint(TileConstraint): diff --git a/Deeploy/Targets/Snitch/TileConstraints/RqGemmTileConstraint.py b/Deeploy/Targets/Snitch/TileConstraints/RqGemmTileConstraint.py index 47bf7e29cc..aba5fa232b 100644 --- a/Deeploy/Targets/Snitch/TileConstraints/RqGemmTileConstraint.py +++ b/Deeploy/Targets/Snitch/TileConstraints/RqGemmTileConstraint.py @@ -6,12 +6,16 @@ from Deeploy.AbstractDataTypes import PointerClass from Deeploy.CommonExtensions.DataTypes import uint32_t -from Deeploy.DeeployTypes import NetworkContext, OperatorRepresentation +from Deeploy.DeeployTypes import NetworkContext +from Deeploy.DeeployTypes import OperatorRepresentation from Deeploy.TilingExtension.MemoryConstraints import NodeMemoryConstraint from Deeploy.TilingExtension.TileConstraint import TileConstraint -from Deeploy.TilingExtension.TilerModel import PerformanceHint, TilerModel -from Deeploy.TilingExtension.TilingCodegen import AbsoluteHyperRectangle, HyperRectangle, TilingSchedule, \ - VariableReplacementScheme +from Deeploy.TilingExtension.TilerModel import PerformanceHint +from Deeploy.TilingExtension.TilerModel import TilerModel +from Deeploy.TilingExtension.TilingCodegen import AbsoluteHyperRectangle +from Deeploy.TilingExtension.TilingCodegen import HyperRectangle +from Deeploy.TilingExtension.TilingCodegen import TilingSchedule +from Deeploy.TilingExtension.TilingCodegen import VariableReplacementScheme class RqGemmTileConstraint(TileConstraint): diff --git a/Deeploy/Targets/Snitch/TileConstraints/iNoNormTileConstraint.py b/Deeploy/Targets/Snitch/TileConstraints/iNoNormTileConstraint.py index 770b78902c..3819a767f0 100644 --- a/Deeploy/Targets/Snitch/TileConstraints/iNoNormTileConstraint.py +++ b/Deeploy/Targets/Snitch/TileConstraints/iNoNormTileConstraint.py @@ -8,11 +8,14 @@ from Deeploy.AbstractDataTypes import PointerClass from Deeploy.CommonExtensions.DataTypes import uint32_t -from Deeploy.DeeployTypes import NetworkContext, OperatorRepresentation +from Deeploy.DeeployTypes import NetworkContext +from Deeploy.DeeployTypes import OperatorRepresentation from Deeploy.TilingExtension.MemoryConstraints import NodeMemoryConstraint from Deeploy.TilingExtension.TileConstraint import TileConstraint from Deeploy.TilingExtension.TilerModel import TilerModel -from Deeploy.TilingExtension.TilingCodegen import AbsoluteHyperRectangle, TilingSchedule, VariableReplacementScheme +from Deeploy.TilingExtension.TilingCodegen import AbsoluteHyperRectangle +from Deeploy.TilingExtension.TilingCodegen import TilingSchedule +from Deeploy.TilingExtension.TilingCodegen import VariableReplacementScheme class iNoNormTileConstraint(TileConstraint): diff --git a/Deeploy/Targets/Snitch/TileConstraints/iSoftmaxTileConstraint.py b/Deeploy/Targets/Snitch/TileConstraints/iSoftmaxTileConstraint.py index aa405bbcb6..5c00ee546a 100644 --- a/Deeploy/Targets/Snitch/TileConstraints/iSoftmaxTileConstraint.py +++ b/Deeploy/Targets/Snitch/TileConstraints/iSoftmaxTileConstraint.py @@ -9,11 +9,14 @@ from Deeploy.AbstractDataTypes import PointerClass from Deeploy.CommonExtensions.DataTypes import uint32_t -from Deeploy.DeeployTypes import NetworkContext, OperatorRepresentation +from Deeploy.DeeployTypes import NetworkContext +from Deeploy.DeeployTypes import OperatorRepresentation from Deeploy.TilingExtension.MemoryConstraints import NodeMemoryConstraint from Deeploy.TilingExtension.TileConstraint import TileConstraint from Deeploy.TilingExtension.TilerModel import TilerModel -from Deeploy.TilingExtension.TilingCodegen import AbsoluteHyperRectangle, TilingSchedule, VariableReplacementScheme +from Deeploy.TilingExtension.TilingCodegen import AbsoluteHyperRectangle +from Deeploy.TilingExtension.TilingCodegen import TilingSchedule +from Deeploy.TilingExtension.TilingCodegen import VariableReplacementScheme class iSoftmaxTileConstraint(TileConstraint): diff --git a/Deeploy/Targets/Snitch/Tiler.py b/Deeploy/Targets/Snitch/Tiler.py index 5a5f4d0bf4..064e8f805f 100644 --- a/Deeploy/Targets/Snitch/Tiler.py +++ b/Deeploy/Targets/Snitch/Tiler.py @@ -9,11 +9,23 @@ from Deeploy.Targets.Generic.TileConstraints.TransposeTileConstraint import TransposeTileConstraint from Deeploy.Targets.PULPOpen.TileConstraints.GatherTileConstraint import GatherTileConstraint from Deeploy.Targets.PULPOpen.TileConstraints.MatMulTileConstraint import MatMulTileConstraint -from Deeploy.Targets.Snitch.Bindings import SnitchAddBindings, SnitchConcatBindings, SnitchDivBindings, \ - SnitchGatherBindings, SnitchGemmBindings, SnitchHardSwishBindings, SnitchiNoNormBindings, SnitchiSoftmaxBindings, \ - SnitchMatMulBindings, SnitchMulBindings, SnitchReshapeBindings, SnitchRMSNormBindings, SnitchRQAddBindings, \ - SnitchRqGemmBindings, SnitchTransposeBindings -from Deeploy.Targets.Snitch.TileConstraints import iNoNormTileConstraint, iSoftmaxTileConstraint +from Deeploy.Targets.Snitch.Bindings import SnitchAddBindings +from Deeploy.Targets.Snitch.Bindings import SnitchConcatBindings +from Deeploy.Targets.Snitch.Bindings import SnitchDivBindings +from Deeploy.Targets.Snitch.Bindings import SnitchGatherBindings +from Deeploy.Targets.Snitch.Bindings import SnitchGemmBindings +from Deeploy.Targets.Snitch.Bindings import SnitchHardSwishBindings +from Deeploy.Targets.Snitch.Bindings import SnitchiNoNormBindings +from Deeploy.Targets.Snitch.Bindings import SnitchiSoftmaxBindings +from Deeploy.Targets.Snitch.Bindings import SnitchMatMulBindings +from Deeploy.Targets.Snitch.Bindings import SnitchMulBindings +from Deeploy.Targets.Snitch.Bindings import SnitchReshapeBindings +from Deeploy.Targets.Snitch.Bindings import SnitchRMSNormBindings +from Deeploy.Targets.Snitch.Bindings import SnitchRQAddBindings +from Deeploy.Targets.Snitch.Bindings import SnitchRqGemmBindings +from Deeploy.Targets.Snitch.Bindings import SnitchTransposeBindings +from Deeploy.Targets.Snitch.TileConstraints import iNoNormTileConstraint +from Deeploy.Targets.Snitch.TileConstraints import iSoftmaxTileConstraint from Deeploy.Targets.Snitch.TileConstraints.FloatDivTileConstraint import FloatDivTileConstraint from Deeploy.Targets.Snitch.TileConstraints.FloatMulTileConstraint import FloatMulTileConstraint from Deeploy.Targets.Snitch.TileConstraints.GemmTileConstraint import GemmTileConstraint diff --git a/TargetLibraries/Snitch/inc/kernel/MatMul.h b/TargetLibraries/Snitch/inc/kernel/MatMul.h index d4b9ba71ca..497378429f 100644 --- a/TargetLibraries/Snitch/inc/kernel/MatMul.h +++ b/TargetLibraries/Snitch/inc/kernel/MatMul.h @@ -68,12 +68,10 @@ void MatMul_offset_unrolled_2x2_parallel_s8_rv32im( int32_t A_offset, int32_t B_offset, int32_t output_offset); // Mapper Functions -static inline void __attribute__((always_inline)) -MatMul_parallel_s8(int8_t const *__restrict__ pSrcA, - int8_t const *__restrict__ pSrcB, - int32_t *__restrict__ pDstC, uint32_t M, uint32_t N, - uint32_t P, int32_t A_offset, int32_t B_offset, - int32_t output_offset) { +static inline void __attribute__((always_inline)) MatMul_parallel_s8( + int8_t const *__restrict__ pSrcA, int8_t const *__restrict__ pSrcB, + int32_t *__restrict__ pDstC, uint32_t M, uint32_t N, uint32_t P, + int32_t A_offset, int32_t B_offset, int32_t output_offset) { MatMul_parallel_s8_rv32im(pSrcA, pSrcB, pDstC, M, N, P, A_offset, B_offset, output_offset); } diff --git a/TargetLibraries/Snitch/inc/kernel/RQMatMul.h b/TargetLibraries/Snitch/inc/kernel/RQMatMul.h index c58e25d516..a95f5df521 100644 --- a/TargetLibraries/Snitch/inc/kernel/RQMatMul.h +++ b/TargetLibraries/Snitch/inc/kernel/RQMatMul.h @@ -75,14 +75,12 @@ void RQMatMul_offset_unrolled_2x2_parallel_s8_rv32im( int32_t output_offset); // Mapper Functions -static inline void __attribute__((always_inline)) -RQMatMul_parallel_s8(int8_t const *__restrict__ pSrcA, - int8_t const *__restrict__ pSrcB, - int8_t *__restrict__ pDstC, uint32_t M, uint32_t N, - uint32_t P, int32_t *mul, int32_t *add, int32_t log2D, - bool rounding, bool per_row_quant, int32_t A_offset, - int32_t B_offset, int32_t output_offset, int8_t output_min, - int8_t output_max) { +static inline void __attribute__((always_inline)) RQMatMul_parallel_s8( + int8_t const *__restrict__ pSrcA, int8_t const *__restrict__ pSrcB, + int8_t *__restrict__ pDstC, uint32_t M, uint32_t N, uint32_t P, + int32_t *mul, int32_t *add, int32_t log2D, bool rounding, + bool per_row_quant, int32_t A_offset, int32_t B_offset, + int32_t output_offset, int8_t output_min, int8_t output_max) { RQMatMul_parallel_s8_rv32im(pSrcA, pSrcB, pDstC, M, N, P, mul, add, log2D, rounding, per_row_quant, A_offset, B_offset, output_offset, output_min, output_max); diff --git a/TargetLibraries/Snitch/src/snitch_nn_add_i8_i8_i8.c b/TargetLibraries/Snitch/src/snitch_nn_add_i8_i8_i8.c index b735e60704..03478b2048 100644 --- a/TargetLibraries/Snitch/src/snitch_nn_add_i8_i8_i8.c +++ b/TargetLibraries/Snitch/src/snitch_nn_add_i8_i8_i8.c @@ -6,13 +6,11 @@ #include "DeeploySnitchMath.h" -void __attribute__((noinline)) -snitch_nn_add_i8_i8_i8(int8_t *pIn1, int8_t *pIn2, int8_t *pOut, - int32_t in1_mul, int32_t in1_add, uint16_t in1_shift, - int32_t in2_mul, int32_t in2_add, uint16_t in2_shift, - int32_t out_mul, int32_t out_add, uint16_t out_shift, - uint16_t dim_im_in_x, uint16_t dim_im_in_y, - uint16_t ch_im_in, int out_requant_flag) { +void __attribute__((noinline)) snitch_nn_add_i8_i8_i8( + int8_t *pIn1, int8_t *pIn2, int8_t *pOut, int32_t in1_mul, int32_t in1_add, + uint16_t in1_shift, int32_t in2_mul, int32_t in2_add, uint16_t in2_shift, + int32_t out_mul, int32_t out_add, uint16_t out_shift, uint16_t dim_im_in_x, + uint16_t dim_im_in_y, uint16_t ch_im_in, int out_requant_flag) { int core_id = snrt_global_compute_core_idx(); int n_cores = snrt_global_compute_core_num(); From b2199cbf1990633b17eea1dec8e91d87ea55b841 Mon Sep 17 00:00:00 2001 From: lee2716 Date: Thu, 5 Feb 2026 10:41:10 +0100 Subject: [PATCH 21/57] pytest: add microLlama model to Snitch test configurations - Add test_snitch_models and test_snitch_tiled_models_l2_singlebuffer test functions - Add microLlama to MODEL_TESTS in test_snitch_config.py - Add microLlama to L2_SINGLEBUFFER_MODELS in test_snitch_tiled_config.py --- DeeployTest/test_platforms.py | 599 +++++++++++++----------- DeeployTest/test_snitch_config.py | 4 +- DeeployTest/test_snitch_tiled_config.py | 4 +- 3 files changed, 331 insertions(+), 276 deletions(-) diff --git a/DeeployTest/test_platforms.py b/DeeployTest/test_platforms.py index 6d9f3cfcd7..4f28644298 100644 --- a/DeeployTest/test_platforms.py +++ b/DeeployTest/test_platforms.py @@ -39,6 +39,7 @@ from test_snitch_config import KERNEL_TESTS as SNITCH_KERNEL_TESTS from test_snitch_config import MODEL_TESTS as SNITCH_MODEL_TESTS from test_snitch_tiled_config import L2_SINGLEBUFFER_KERNELS as SNITCH_L2_SINGLEBUFFER_KERNELS +from test_snitch_tiled_config import L2_SINGLEBUFFER_MODELS as SNITCH_L2_SINGLEBUFFER_MODELS from test_softhier_config import DEFAULT_NUM_CLUSTERS as SOFTHIER_DEFAULT_NUM_CLUSTERS from test_softhier_config import KERNEL_TESTS as SOFTHIER_KERNEL_TESTS from test_softhier_config import MODEL_TESTS as SOFTHIER_MODEL_TESTS @@ -146,79 +147,79 @@ def param_id(param): @pytest.mark.generic @pytest.mark.kernels -@pytest.mark.parametrize("test_name", GENERIC_KERNEL_TESTS, ids = GENERIC_KERNEL_TESTS) +@pytest.mark.parametrize("test_name", GENERIC_KERNEL_TESTS, ids=GENERIC_KERNEL_TESTS) def test_generic_kernels(test_name, deeploy_test_dir, toolchain, toolchain_dir, cmake_args, skipgen, skipsim) -> None: platform_config = PLATFORM_CONFIGS["generic"] config = create_test_config( - test_name = test_name, - platform = platform_config["platform"], - simulator = platform_config["simulator"], - deeploy_test_dir = deeploy_test_dir, - toolchain = toolchain, - toolchain_dir = toolchain_dir, - cmake_args = cmake_args, - tiling = False, + test_name=test_name, + platform=platform_config["platform"], + simulator=platform_config["simulator"], + deeploy_test_dir=deeploy_test_dir, + toolchain=toolchain, + toolchain_dir=toolchain_dir, + cmake_args=cmake_args, + tiling=False, ) run_and_assert_test(test_name, config, skipgen, skipsim) @pytest.mark.generic @pytest.mark.models -@pytest.mark.parametrize("test_name", GENERIC_MODEL_TESTS, ids = GENERIC_MODEL_TESTS) +@pytest.mark.parametrize("test_name", GENERIC_MODEL_TESTS, ids=GENERIC_MODEL_TESTS) def test_generic_models(test_name, deeploy_test_dir, toolchain, toolchain_dir, cmake_args, skipgen, skipsim) -> None: platform_config = PLATFORM_CONFIGS["generic"] config = create_test_config( - test_name = test_name, - platform = platform_config["platform"], - simulator = platform_config["simulator"], - deeploy_test_dir = deeploy_test_dir, - toolchain = toolchain, - toolchain_dir = toolchain_dir, - cmake_args = cmake_args, - tiling = False, + test_name=test_name, + platform=platform_config["platform"], + simulator=platform_config["simulator"], + deeploy_test_dir=deeploy_test_dir, + toolchain=toolchain, + toolchain_dir=toolchain_dir, + cmake_args=cmake_args, + tiling=False, ) run_and_assert_test(test_name, config, skipgen, skipsim) @pytest.mark.cortexm @pytest.mark.kernels -@pytest.mark.parametrize("test_name", CORTEXM_KERNEL_TESTS, ids = CORTEXM_KERNEL_TESTS) +@pytest.mark.parametrize("test_name", CORTEXM_KERNEL_TESTS, ids=CORTEXM_KERNEL_TESTS) def test_cortexm_kernels(test_name, deeploy_test_dir, toolchain, toolchain_dir, cmake_args, skipgen, skipsim) -> None: platform_config = PLATFORM_CONFIGS["cortexm"] config = create_test_config( - test_name = test_name, - platform = platform_config["platform"], - simulator = platform_config["simulator"], - deeploy_test_dir = deeploy_test_dir, - toolchain = toolchain, - toolchain_dir = toolchain_dir, - cmake_args = cmake_args, - tiling = False, + test_name=test_name, + platform=platform_config["platform"], + simulator=platform_config["simulator"], + deeploy_test_dir=deeploy_test_dir, + toolchain=toolchain, + toolchain_dir=toolchain_dir, + cmake_args=cmake_args, + tiling=False, ) run_and_assert_test(test_name, config, skipgen, skipsim) @pytest.mark.cortexm @pytest.mark.models -@pytest.mark.parametrize("test_name", CORTEXM_MODEL_TESTS, ids = CORTEXM_MODEL_TESTS) +@pytest.mark.parametrize("test_name", CORTEXM_MODEL_TESTS, ids=CORTEXM_MODEL_TESTS) def test_cortexm_models(test_name, deeploy_test_dir, toolchain, toolchain_dir, cmake_args, skipgen, skipsim) -> None: platform_config = PLATFORM_CONFIGS["cortexm"] config = create_test_config( - test_name = test_name, - platform = platform_config["platform"], - simulator = platform_config["simulator"], - deeploy_test_dir = deeploy_test_dir, - toolchain = toolchain, - toolchain_dir = toolchain_dir, - cmake_args = cmake_args, - tiling = False, + test_name=test_name, + platform=platform_config["platform"], + simulator=platform_config["simulator"], + deeploy_test_dir=deeploy_test_dir, + toolchain=toolchain, + toolchain_dir=toolchain_dir, + cmake_args=cmake_args, + tiling=False, ) run_and_assert_test(test_name, config, skipgen, skipsim) @pytest.mark.mempool @pytest.mark.kernels -@pytest.mark.parametrize("test_name", MEMPOOL_KERNEL_TESTS, ids = MEMPOOL_KERNEL_TESTS) +@pytest.mark.parametrize("test_name", MEMPOOL_KERNEL_TESTS, ids=MEMPOOL_KERNEL_TESTS) def test_mempool_kernels(test_name, deeploy_test_dir, toolchain, toolchain_dir, cmake_args, skipgen, skipsim) -> None: platform_config = PLATFORM_CONFIGS["mempool"] @@ -226,21 +227,21 @@ def test_mempool_kernels(test_name, deeploy_test_dir, toolchain, toolchain_dir, mempool_cmake_args = cmake_args + [f"num_threads={platform_config['default_num_threads']}"] config = create_test_config( - test_name = test_name, - platform = platform_config["platform"], - simulator = platform_config["simulator"], - deeploy_test_dir = deeploy_test_dir, - toolchain = toolchain, - toolchain_dir = toolchain_dir, - cmake_args = mempool_cmake_args, - tiling = False, + test_name=test_name, + platform=platform_config["platform"], + simulator=platform_config["simulator"], + deeploy_test_dir=deeploy_test_dir, + toolchain=toolchain, + toolchain_dir=toolchain_dir, + cmake_args=mempool_cmake_args, + tiling=False, ) run_and_assert_test(test_name, config, skipgen, skipsim) @pytest.mark.mempool @pytest.mark.models -@pytest.mark.parametrize("test_name", MEMPOOL_MODEL_TESTS, ids = MEMPOOL_MODEL_TESTS) +@pytest.mark.parametrize("test_name", MEMPOOL_MODEL_TESTS, ids=MEMPOOL_MODEL_TESTS) def test_mempool_models(test_name, deeploy_test_dir, toolchain, toolchain_dir, cmake_args, skipgen, skipsim) -> None: platform_config = PLATFORM_CONFIGS["mempool"] @@ -248,54 +249,54 @@ def test_mempool_models(test_name, deeploy_test_dir, toolchain, toolchain_dir, c mempool_cmake_args = cmake_args + [f"num_threads={platform_config['default_num_threads']}"] config = create_test_config( - test_name = test_name, - platform = platform_config["platform"], - simulator = platform_config["simulator"], - deeploy_test_dir = deeploy_test_dir, - toolchain = toolchain, - toolchain_dir = toolchain_dir, - cmake_args = mempool_cmake_args, - tiling = False, + test_name=test_name, + platform=platform_config["platform"], + simulator=platform_config["simulator"], + deeploy_test_dir=deeploy_test_dir, + toolchain=toolchain, + toolchain_dir=toolchain_dir, + cmake_args=mempool_cmake_args, + tiling=False, ) run_and_assert_test(test_name, config, skipgen, skipsim) @pytest.mark.siracusa @pytest.mark.kernels -@pytest.mark.parametrize("test_name", SIRACUSA_KERNEL_TESTS, ids = SIRACUSA_KERNEL_TESTS) +@pytest.mark.parametrize("test_name", SIRACUSA_KERNEL_TESTS, ids=SIRACUSA_KERNEL_TESTS) def test_siracusa_kernels(test_name, deeploy_test_dir, toolchain, toolchain_dir, cmake_args, skipgen, skipsim, profile_untiled) -> None: config = create_test_config( - test_name = test_name, - platform = "Siracusa", - simulator = "gvsoc", - deeploy_test_dir = deeploy_test_dir, - toolchain = toolchain, - toolchain_dir = toolchain_dir, - cmake_args = cmake_args, - tiling = False, - cores = SIRACUSA_DEFAULT_CORES, - profile_untiled = profile_untiled, + test_name=test_name, + platform="Siracusa", + simulator="gvsoc", + deeploy_test_dir=deeploy_test_dir, + toolchain=toolchain, + toolchain_dir=toolchain_dir, + cmake_args=cmake_args, + tiling=False, + cores=SIRACUSA_DEFAULT_CORES, + profile_untiled=profile_untiled, ) run_and_assert_test(test_name, config, skipgen, skipsim) @pytest.mark.siracusa @pytest.mark.models -@pytest.mark.parametrize("test_name", SIRACUSA_MODEL_TESTS, ids = SIRACUSA_MODEL_TESTS) +@pytest.mark.parametrize("test_name", SIRACUSA_MODEL_TESTS, ids=SIRACUSA_MODEL_TESTS) def test_siracusa_models(test_name, deeploy_test_dir, toolchain, toolchain_dir, cmake_args, skipgen, skipsim, profile_untiled) -> None: config = create_test_config( - test_name = test_name, - platform = "Siracusa", - simulator = "gvsoc", - deeploy_test_dir = deeploy_test_dir, - toolchain = toolchain, - toolchain_dir = toolchain_dir, - cmake_args = cmake_args, - tiling = False, - cores = SIRACUSA_DEFAULT_CORES, - profile_untiled = profile_untiled, + test_name=test_name, + platform="Siracusa", + simulator="gvsoc", + deeploy_test_dir=deeploy_test_dir, + toolchain=toolchain, + toolchain_dir=toolchain_dir, + cmake_args=cmake_args, + tiling=False, + cores=SIRACUSA_DEFAULT_CORES, + profile_untiled=profile_untiled, ) run_and_assert_test(test_name, config, skipgen, skipsim) @@ -307,24 +308,24 @@ def test_siracusa_models(test_name, deeploy_test_dir, toolchain, toolchain_dir, @pytest.mark.parametrize( "test_params", generate_test_params(L2_SINGLEBUFFER_KERNELS, "L2-singlebuffer"), - ids = param_id, + ids=param_id, ) def test_siracusa_tiled_kernels_l2_singlebuffer(test_params, deeploy_test_dir, toolchain, toolchain_dir, cmake_args, skipgen, skipsim) -> None: test_name, l1, config_name = test_params config = create_test_config( - test_name = test_name, - platform = "Siracusa", - simulator = "gvsoc", - deeploy_test_dir = deeploy_test_dir, - toolchain = toolchain, - toolchain_dir = toolchain_dir, - cmake_args = cmake_args, - tiling = True, - cores = SIRACUSA_DEFAULT_CORES, - l1 = l1, - default_mem_level = "L2", - double_buffer = False, + test_name=test_name, + platform="Siracusa", + simulator="gvsoc", + deeploy_test_dir=deeploy_test_dir, + toolchain=toolchain, + toolchain_dir=toolchain_dir, + cmake_args=cmake_args, + tiling=True, + cores=SIRACUSA_DEFAULT_CORES, + l1=l1, + default_mem_level="L2", + double_buffer=False, ) run_and_assert_test(test_name, config, skipgen, skipsim) @@ -336,24 +337,24 @@ def test_siracusa_tiled_kernels_l2_singlebuffer(test_params, deeploy_test_dir, t @pytest.mark.parametrize( "test_params", generate_test_params(L2_DOUBLEBUFFER_KERNELS, "L2-doublebuffer"), - ids = param_id, + ids=param_id, ) def test_siracusa_tiled_kernels_l2_doublebuffer(test_params, deeploy_test_dir, toolchain, toolchain_dir, cmake_args, skipgen, skipsim) -> None: test_name, l1, config_name = test_params config = create_test_config( - test_name = test_name, - platform = "Siracusa", - simulator = "gvsoc", - deeploy_test_dir = deeploy_test_dir, - toolchain = toolchain, - toolchain_dir = toolchain_dir, - cmake_args = cmake_args, - tiling = True, - cores = SIRACUSA_DEFAULT_CORES, - l1 = l1, - default_mem_level = "L2", - double_buffer = True, + test_name=test_name, + platform="Siracusa", + simulator="gvsoc", + deeploy_test_dir=deeploy_test_dir, + toolchain=toolchain, + toolchain_dir=toolchain_dir, + cmake_args=cmake_args, + tiling=True, + cores=SIRACUSA_DEFAULT_CORES, + l1=l1, + default_mem_level="L2", + double_buffer=True, ) run_and_assert_test(test_name, config, skipgen, skipsim) @@ -365,24 +366,24 @@ def test_siracusa_tiled_kernels_l2_doublebuffer(test_params, deeploy_test_dir, t @pytest.mark.parametrize( "test_params", generate_test_params(L2_SINGLEBUFFER_MODELS, "L2-singlebuffer"), - ids = param_id, + ids=param_id, ) def test_siracusa_tiled_models_l2_singlebuffer(test_params, deeploy_test_dir, toolchain, toolchain_dir, cmake_args, skipgen, skipsim) -> None: test_name, l1, config_name = test_params config = create_test_config( - test_name = test_name, - platform = "Siracusa", - simulator = "gvsoc", - deeploy_test_dir = deeploy_test_dir, - toolchain = toolchain, - toolchain_dir = toolchain_dir, - cmake_args = cmake_args, - tiling = True, - cores = SIRACUSA_DEFAULT_CORES, - l1 = l1, - default_mem_level = "L2", - double_buffer = False, + test_name=test_name, + platform="Siracusa", + simulator="gvsoc", + deeploy_test_dir=deeploy_test_dir, + toolchain=toolchain, + toolchain_dir=toolchain_dir, + cmake_args=cmake_args, + tiling=True, + cores=SIRACUSA_DEFAULT_CORES, + l1=l1, + default_mem_level="L2", + double_buffer=False, ) run_and_assert_test(test_name, config, skipgen, skipsim) @@ -394,24 +395,24 @@ def test_siracusa_tiled_models_l2_singlebuffer(test_params, deeploy_test_dir, to @pytest.mark.parametrize( "test_params", generate_test_params(L2_DOUBLEBUFFER_MODELS, "L2-doublebuffer"), - ids = param_id, + ids=param_id, ) def test_siracusa_tiled_models_l2_doublebuffer(test_params, deeploy_test_dir, toolchain, toolchain_dir, cmake_args, skipgen, skipsim) -> None: test_name, l1, config_name = test_params config = create_test_config( - test_name = test_name, - platform = "Siracusa", - simulator = "gvsoc", - deeploy_test_dir = deeploy_test_dir, - toolchain = toolchain, - toolchain_dir = toolchain_dir, - cmake_args = cmake_args, - tiling = True, - cores = SIRACUSA_DEFAULT_CORES, - l1 = l1, - default_mem_level = "L2", - double_buffer = True, + test_name=test_name, + platform="Siracusa", + simulator="gvsoc", + deeploy_test_dir=deeploy_test_dir, + toolchain=toolchain, + toolchain_dir=toolchain_dir, + cmake_args=cmake_args, + tiling=True, + cores=SIRACUSA_DEFAULT_CORES, + l1=l1, + default_mem_level="L2", + double_buffer=True, ) run_and_assert_test(test_name, config, skipgen, skipsim) @@ -423,24 +424,24 @@ def test_siracusa_tiled_models_l2_doublebuffer(test_params, deeploy_test_dir, to @pytest.mark.parametrize( "test_params", generate_test_params(L3_SINGLEBUFFER_MODELS, "L3-singlebuffer"), - ids = param_id, + ids=param_id, ) def test_siracusa_tiled_models_l3_singlebuffer(test_params, deeploy_test_dir, toolchain, toolchain_dir, cmake_args, skipgen, skipsim) -> None: test_name, l1, config_name = test_params config = create_test_config( - test_name = test_name, - platform = "Siracusa", - simulator = "gvsoc", - deeploy_test_dir = deeploy_test_dir, - toolchain = toolchain, - toolchain_dir = toolchain_dir, - cmake_args = cmake_args, - tiling = True, - cores = SIRACUSA_DEFAULT_CORES, - l1 = l1, - default_mem_level = "L3", - double_buffer = False, + test_name=test_name, + platform="Siracusa", + simulator="gvsoc", + deeploy_test_dir=deeploy_test_dir, + toolchain=toolchain, + toolchain_dir=toolchain_dir, + cmake_args=cmake_args, + tiling=True, + cores=SIRACUSA_DEFAULT_CORES, + l1=l1, + default_mem_level="L3", + double_buffer=False, ) run_and_assert_test(test_name, config, skipgen, skipsim) @@ -452,49 +453,49 @@ def test_siracusa_tiled_models_l3_singlebuffer(test_params, deeploy_test_dir, to @pytest.mark.parametrize( "test_params", generate_test_params(L3_DOUBLEBUFFER_MODELS, "L3-doublebuffer"), - ids = param_id, + ids=param_id, ) def test_siracusa_tiled_models_l3_doublebuffer(test_params, deeploy_test_dir, toolchain, toolchain_dir, cmake_args, skipgen, skipsim) -> None: test_name, l1, config_name = test_params config = create_test_config( - test_name = test_name, - platform = "Siracusa", - simulator = "gvsoc", - deeploy_test_dir = deeploy_test_dir, - toolchain = toolchain, - toolchain_dir = toolchain_dir, - cmake_args = cmake_args, - tiling = True, - cores = SIRACUSA_DEFAULT_CORES, - l1 = l1, - default_mem_level = "L3", - double_buffer = True, + test_name=test_name, + platform="Siracusa", + simulator="gvsoc", + deeploy_test_dir=deeploy_test_dir, + toolchain=toolchain, + toolchain_dir=toolchain_dir, + cmake_args=cmake_args, + tiling=True, + cores=SIRACUSA_DEFAULT_CORES, + l1=l1, + default_mem_level="L3", + double_buffer=True, ) run_and_assert_test(test_name, config, skipgen, skipsim) @pytest.mark.chimera @pytest.mark.kernels -@pytest.mark.parametrize("test_name", CHIMERA_KERNEL_TESTS, ids = CHIMERA_KERNEL_TESTS) +@pytest.mark.parametrize("test_name", CHIMERA_KERNEL_TESTS, ids=CHIMERA_KERNEL_TESTS) def test_chimera_kernels(test_name, deeploy_test_dir, toolchain, toolchain_dir, cmake_args, skipgen, skipsim) -> None: platform_config = PLATFORM_CONFIGS["chimera"] config = create_test_config( - test_name = test_name, - platform = platform_config["platform"], - simulator = platform_config["simulator"], - deeploy_test_dir = deeploy_test_dir, - toolchain = toolchain, - toolchain_dir = toolchain_dir, - cmake_args = cmake_args, - tiling = False, + test_name=test_name, + platform=platform_config["platform"], + simulator=platform_config["simulator"], + deeploy_test_dir=deeploy_test_dir, + toolchain=toolchain, + toolchain_dir=toolchain_dir, + cmake_args=cmake_args, + tiling=False, ) run_and_assert_test(test_name, config, skipgen, skipsim) @pytest.mark.softhier @pytest.mark.kernels -@pytest.mark.parametrize("test_name", SOFTHIER_KERNEL_TESTS, ids = SOFTHIER_KERNEL_TESTS) +@pytest.mark.parametrize("test_name", SOFTHIER_KERNEL_TESTS, ids=SOFTHIER_KERNEL_TESTS) def test_softhier_kernels(test_name, deeploy_test_dir, toolchain, toolchain_dir, cmake_args, skipgen, skipsim) -> None: platform_config = PLATFORM_CONFIGS["softhier"] @@ -502,21 +503,21 @@ def test_softhier_kernels(test_name, deeploy_test_dir, toolchain, toolchain_dir, softhier_cmake_args = cmake_args + [f"num_clusters={platform_config['default_num_clusters']}"] config = create_test_config( - test_name = test_name, - platform = platform_config["platform"], - simulator = platform_config["simulator"], - deeploy_test_dir = deeploy_test_dir, - toolchain = toolchain, - toolchain_dir = toolchain_dir, - cmake_args = softhier_cmake_args, - tiling = False, + test_name=test_name, + platform=platform_config["platform"], + simulator=platform_config["simulator"], + deeploy_test_dir=deeploy_test_dir, + toolchain=toolchain, + toolchain_dir=toolchain_dir, + cmake_args=softhier_cmake_args, + tiling=False, ) run_and_assert_test(test_name, config, skipgen, skipsim) @pytest.mark.snitch @pytest.mark.kernels -@pytest.mark.parametrize("test_name", SNITCH_KERNEL_TESTS, ids = SNITCH_KERNEL_TESTS) +@pytest.mark.parametrize("test_name", SNITCH_KERNEL_TESTS, ids=SNITCH_KERNEL_TESTS) def test_snitch_kernels(test_name, deeploy_test_dir, toolchain, toolchain_dir, cmake_args, skipgen, skipsim) -> None: platform_config = PLATFORM_CONFIGS["snitch"] @@ -524,14 +525,33 @@ def test_snitch_kernels(test_name, deeploy_test_dir, toolchain, toolchain_dir, c snitch_cmake_args = cmake_args + [f"NUM_CORES={platform_config['default_num_cores']}"] config = create_test_config( - test_name = test_name, - platform = platform_config["platform"], - simulator = platform_config["simulator"], - deeploy_test_dir = deeploy_test_dir, - toolchain = toolchain, - toolchain_dir = toolchain_dir, - cmake_args = snitch_cmake_args, - tiling = False, + test_name=test_name, + platform=platform_config["platform"], + simulator=platform_config["simulator"], + deeploy_test_dir=deeploy_test_dir, + toolchain=toolchain, + toolchain_dir=toolchain_dir, + cmake_args=snitch_cmake_args, + tiling=False, + ) + run_and_assert_test(test_name, config, skipgen, skipsim) + + +@pytest.mark.snitch +@pytest.mark.models +@pytest.mark.parametrize("test_name", SNITCH_MODEL_TESTS, ids=SNITCH_MODEL_TESTS) +def test_snitch_models(test_name, deeploy_test_dir, toolchain, toolchain_dir, cmake_args, skipgen, skipsim) -> None: + platform_config = PLATFORM_CONFIGS["snitch"] + snitch_cmake_args = cmake_args + [f"NUM_CORES={platform_config['default_num_cores']}"] + config = create_test_config( + test_name=test_name, + platform=platform_config["platform"], + simulator=platform_config["simulator"], + deeploy_test_dir=deeploy_test_dir, + toolchain=toolchain, + toolchain_dir=toolchain_dir, + cmake_args=snitch_cmake_args, + tiling=False, ) run_and_assert_test(test_name, config, skipgen, skipsim) @@ -543,7 +563,7 @@ def test_snitch_kernels(test_name, deeploy_test_dir, toolchain, toolchain_dir, c @pytest.mark.parametrize( "test_params", generate_test_params(SNITCH_L2_SINGLEBUFFER_KERNELS, "L2-singlebuffer"), - ids = param_id, + ids=param_id, ) def test_snitch_tiled_kernels_l2_singlebuffer(test_params, deeploy_test_dir, toolchain, toolchain_dir, cmake_args, skipgen, skipsim) -> None: @@ -553,18 +573,49 @@ def test_snitch_tiled_kernels_l2_singlebuffer(test_params, deeploy_test_dir, too snitch_cmake_args = cmake_args + [f"NUM_CORES={SNITCH_DEFAULT_NUM_CORES}"] config = create_test_config( - test_name = test_name, - platform = "Snitch", - simulator = "gvsoc", - deeploy_test_dir = deeploy_test_dir, - toolchain = toolchain, - toolchain_dir = toolchain_dir, - cmake_args = snitch_cmake_args, - tiling = True, - cores = SNITCH_DEFAULT_NUM_CORES, - l1 = l1, - default_mem_level = "L2", - double_buffer = False, + test_name=test_name, + platform="Snitch", + simulator="gvsoc", + deeploy_test_dir=deeploy_test_dir, + toolchain=toolchain, + toolchain_dir=toolchain_dir, + cmake_args=snitch_cmake_args, + tiling=True, + cores=SNITCH_DEFAULT_NUM_CORES, + l1=l1, + default_mem_level="L2", + double_buffer=False, + ) + run_and_assert_test(test_name, config, skipgen, skipsim) + + +@pytest.mark.snitch_tiled +@pytest.mark.models +@pytest.mark.singlebuffer +@pytest.mark.l2 +@pytest.mark.parametrize( + "test_params", + generate_test_params(SNITCH_L2_SINGLEBUFFER_MODELS, "L2-singlebuffer"), + ids=param_id, +) +def test_snitch_tiled_models_l2_singlebuffer(test_params, deeploy_test_dir, toolchain, toolchain_dir, cmake_args, + skipgen, skipsim) -> None: + test_name, l1, config_name = test_params + snitch_cmake_args = cmake_args + [f"NUM_CORES={SNITCH_DEFAULT_NUM_CORES}"] + config = create_test_config( + test_name=test_name, + platform="Snitch", + simulator="gvsoc", + deeploy_test_dir=deeploy_test_dir, + toolchain=toolchain, + toolchain_dir=toolchain_dir, + cmake_args=snitch_cmake_args, + tiling=True, + cores=SNITCH_DEFAULT_NUM_CORES, + l1=l1, + l2=4000000, + default_mem_level="L2", + double_buffer=False, ) run_and_assert_test(test_name, config, skipgen, skipsim) @@ -576,24 +627,24 @@ def test_snitch_tiled_kernels_l2_singlebuffer(test_params, deeploy_test_dir, too @pytest.mark.parametrize( "test_params", generate_test_params(NEUREKA_L2_SINGLEBUFFER_KERNELS, "L2-singlebuffer"), - ids = param_id, + ids=param_id, ) def test_siracusa_neureka_tiled_kernels_l2_singlebuffer(test_params, deeploy_test_dir, toolchain, toolchain_dir, cmake_args, skipgen, skipsim) -> None: test_name, l1, config_name = test_params config = create_test_config( - test_name = test_name, - platform = "Siracusa_w_neureka", - simulator = "gvsoc", - deeploy_test_dir = deeploy_test_dir, - toolchain = toolchain, - toolchain_dir = toolchain_dir, - cmake_args = cmake_args, - tiling = True, - cores = NEUREKA_DEFAULT_CORES, - l1 = l1, - default_mem_level = "L2", - double_buffer = False, + test_name=test_name, + platform="Siracusa_w_neureka", + simulator="gvsoc", + deeploy_test_dir=deeploy_test_dir, + toolchain=toolchain, + toolchain_dir=toolchain_dir, + cmake_args=cmake_args, + tiling=True, + cores=NEUREKA_DEFAULT_CORES, + l1=l1, + default_mem_level="L2", + double_buffer=False, ) run_and_assert_test(test_name, config, skipgen, skipsim) @@ -605,24 +656,24 @@ def test_siracusa_neureka_tiled_kernels_l2_singlebuffer(test_params, deeploy_tes @pytest.mark.parametrize( "test_params", generate_test_params(NEUREKA_L2_DOUBLEBUFFER_KERNELS, "L2-doublebuffer"), - ids = param_id, + ids=param_id, ) def test_siracusa_neureka_tiled_kernels_l2_doublebuffer(test_params, deeploy_test_dir, toolchain, toolchain_dir, cmake_args, skipgen, skipsim) -> None: test_name, l1, config_name = test_params config = create_test_config( - test_name = test_name, - platform = "Siracusa_w_neureka", - simulator = "gvsoc", - deeploy_test_dir = deeploy_test_dir, - toolchain = toolchain, - toolchain_dir = toolchain_dir, - cmake_args = cmake_args, - tiling = True, - cores = NEUREKA_DEFAULT_CORES, - l1 = l1, - default_mem_level = "L2", - double_buffer = True, + test_name=test_name, + platform="Siracusa_w_neureka", + simulator="gvsoc", + deeploy_test_dir=deeploy_test_dir, + toolchain=toolchain, + toolchain_dir=toolchain_dir, + cmake_args=cmake_args, + tiling=True, + cores=NEUREKA_DEFAULT_CORES, + l1=l1, + default_mem_level="L2", + double_buffer=True, ) run_and_assert_test(test_name, config, skipgen, skipsim) @@ -634,24 +685,24 @@ def test_siracusa_neureka_tiled_kernels_l2_doublebuffer(test_params, deeploy_tes @pytest.mark.parametrize( "test_params", generate_test_params(NEUREKA_L3_SINGLEBUFFER_MODELS, "L3-singlebuffer"), - ids = param_id, + ids=param_id, ) def test_siracusa_neureka_tiled_models_l3_singlebuffer(test_params, deeploy_test_dir, toolchain, toolchain_dir, cmake_args, skipgen, skipsim) -> None: test_name, l1, config_name = test_params config = create_test_config( - test_name = test_name, - platform = "Siracusa_w_neureka", - simulator = "gvsoc", - deeploy_test_dir = deeploy_test_dir, - toolchain = toolchain, - toolchain_dir = toolchain_dir, - cmake_args = cmake_args, - tiling = True, - cores = NEUREKA_DEFAULT_CORES, - l1 = l1, - default_mem_level = "L3", - double_buffer = False, + test_name=test_name, + platform="Siracusa_w_neureka", + simulator="gvsoc", + deeploy_test_dir=deeploy_test_dir, + toolchain=toolchain, + toolchain_dir=toolchain_dir, + cmake_args=cmake_args, + tiling=True, + cores=NEUREKA_DEFAULT_CORES, + l1=l1, + default_mem_level="L3", + double_buffer=False, ) run_and_assert_test(test_name, config, skipgen, skipsim) @@ -663,24 +714,24 @@ def test_siracusa_neureka_tiled_models_l3_singlebuffer(test_params, deeploy_test @pytest.mark.parametrize( "test_params", generate_test_params(NEUREKA_L3_DOUBLEBUFFER_MODELS, "L3-doublebuffer"), - ids = param_id, + ids=param_id, ) def test_siracusa_neureka_tiled_models_l3_doublebuffer(test_params, deeploy_test_dir, toolchain, toolchain_dir, cmake_args, skipgen, skipsim) -> None: test_name, l1, config_name = test_params config = create_test_config( - test_name = test_name, - platform = "Siracusa_w_neureka", - simulator = "gvsoc", - deeploy_test_dir = deeploy_test_dir, - toolchain = toolchain, - toolchain_dir = toolchain_dir, - cmake_args = cmake_args, - tiling = True, - cores = NEUREKA_DEFAULT_CORES, - l1 = l1, - default_mem_level = "L3", - double_buffer = True, + test_name=test_name, + platform="Siracusa_w_neureka", + simulator="gvsoc", + deeploy_test_dir=deeploy_test_dir, + toolchain=toolchain, + toolchain_dir=toolchain_dir, + cmake_args=cmake_args, + tiling=True, + cores=NEUREKA_DEFAULT_CORES, + l1=l1, + default_mem_level="L3", + double_buffer=True, ) run_and_assert_test(test_name, config, skipgen, skipsim) @@ -693,25 +744,25 @@ def test_siracusa_neureka_tiled_models_l3_doublebuffer(test_params, deeploy_test @pytest.mark.parametrize( "test_params", generate_test_params(NEUREKA_L2_SINGLEBUFFER_KERNELS_WMEM, "L2-singlebuffer-wmem"), - ids = param_id, + ids=param_id, ) def test_siracusa_neureka_tiled_kernels_l2_singlebuffer_wmem(test_params, deeploy_test_dir, toolchain, toolchain_dir, cmake_args, skipgen, skipsim) -> None: test_name, l1, config_name = test_params config = create_test_config( - test_name = test_name, - platform = "Siracusa_w_neureka", - simulator = "gvsoc", - deeploy_test_dir = deeploy_test_dir, - toolchain = toolchain, - toolchain_dir = toolchain_dir, - cmake_args = cmake_args, - tiling = True, - cores = NEUREKA_DEFAULT_CORES, - l1 = l1, - default_mem_level = "L2", - double_buffer = False, - gen_args = ["--neureka-wmem"], + test_name=test_name, + platform="Siracusa_w_neureka", + simulator="gvsoc", + deeploy_test_dir=deeploy_test_dir, + toolchain=toolchain, + toolchain_dir=toolchain_dir, + cmake_args=cmake_args, + tiling=True, + cores=NEUREKA_DEFAULT_CORES, + l1=l1, + default_mem_level="L2", + double_buffer=False, + gen_args=["--neureka-wmem"], ) run_and_assert_test(test_name, config, skipgen, skipsim) @@ -724,25 +775,25 @@ def test_siracusa_neureka_tiled_kernels_l2_singlebuffer_wmem(test_params, deeplo @pytest.mark.parametrize( "test_params", generate_test_params(NEUREKA_L3_DOUBLEBUFFER_MODELS_WMEM, "L3-doublebuffer-wmem"), - ids = param_id, + ids=param_id, ) def test_siracusa_neureka_tiled_models_l3_doublebuffer_wmem(test_params, deeploy_test_dir, toolchain, toolchain_dir, cmake_args, skipgen, skipsim) -> None: test_name, l1, config_name = test_params config = create_test_config( - test_name = test_name, - platform = "Siracusa_w_neureka", - simulator = "gvsoc", - deeploy_test_dir = deeploy_test_dir, - toolchain = toolchain, - toolchain_dir = toolchain_dir, - cmake_args = cmake_args, - tiling = True, - cores = NEUREKA_DEFAULT_CORES, - l1 = l1, - default_mem_level = "L3", - double_buffer = True, - gen_args = ["--neureka-wmem"], + test_name=test_name, + platform="Siracusa_w_neureka", + simulator="gvsoc", + deeploy_test_dir=deeploy_test_dir, + toolchain=toolchain, + toolchain_dir=toolchain_dir, + cmake_args=cmake_args, + tiling=True, + cores=NEUREKA_DEFAULT_CORES, + l1=l1, + default_mem_level="L3", + double_buffer=True, + gen_args=["--neureka-wmem"], ) run_and_assert_test(test_name, config, skipgen, skipsim) diff --git a/DeeployTest/test_snitch_config.py b/DeeployTest/test_snitch_config.py index f51b2ede23..8d49d2e3e6 100644 --- a/DeeployTest/test_snitch_config.py +++ b/DeeployTest/test_snitch_config.py @@ -21,4 +21,6 @@ "Kernels/Integer/GEMM/TransB_RQ", ] -MODEL_TESTS = [] +MODEL_TESTS = [ + "Models/microLlama/microLlama_fp32_1", +] diff --git a/DeeployTest/test_snitch_tiled_config.py b/DeeployTest/test_snitch_tiled_config.py index 3f81239fce..cb44d84ea7 100644 --- a/DeeployTest/test_snitch_tiled_config.py +++ b/DeeployTest/test_snitch_tiled_config.py @@ -21,7 +21,9 @@ "Kernels/Integer/GEMM/Regular_RQPerRow": [2000, 5000], } -L2_SINGLEBUFFER_MODELS = {} +L2_SINGLEBUFFER_MODELS = { + "Models/microLlama/microLlama_fp32_1": [10000, 20000], +} # Currently no double-buffer configurations in CI L2_DOUBLEBUFFER_KERNELS = {} From 7ad03a336a026798cc4117e096348f686e83aa36 Mon Sep 17 00:00:00 2001 From: lee2716 Date: Thu, 5 Feb 2026 10:44:36 +0100 Subject: [PATCH 22/57] style: consolidate imports in Snitch platform --- Deeploy/Targets/Snitch/Bindings.py | 67 +++----- .../SnitchClusterSynch.py | 8 +- .../SnitchCoreFilter.py | 8 +- .../SnitchProfileExecutionBlock.py | 8 +- Deeploy/Targets/Snitch/DMA/SnitchDma.py | 12 +- Deeploy/Targets/Snitch/DataTypes.py | 4 +- Deeploy/Targets/Snitch/Deployer.py | 25 ++- Deeploy/Targets/Snitch/Parsers.py | 9 +- Deeploy/Targets/Snitch/Platform.py | 144 +++++------------- .../Targets/Snitch/Templates/AddTemplate.py | 4 +- .../Snitch/Templates/FloatAddTemplate.py | 4 +- .../Snitch/Templates/FloatDivTemplate.py | 4 +- .../Templates/FloatHardSwishTemplate.py | 4 +- .../Snitch/Templates/FloatMulTemplate.py | 4 +- .../Snitch/Templates/FloatRMSNormTemplate.py | 4 +- .../Snitch/Templates/FloatSoftmaxTemplate.py | 4 +- .../Targets/Snitch/Templates/GemmTemplate.py | 4 +- .../Snitch/Templates/MatMulTemplate.py | 4 +- .../Snitch/Templates/RqGemmTemplate.py | 4 +- .../Snitch/Templates/TransposeTemplate.py | 5 +- .../TileConstraints/FloatDivTileConstraint.py | 21 ++- .../TileConstraints/FloatMulTileConstraint.py | 21 ++- .../TileConstraints/GemmTileConstraint.py | 50 +++--- .../TileConstraints/ReshapeTileConstraint.py | 11 +- .../TileConstraints/RqGemmTileConstraint.py | 62 ++++---- .../TileConstraints/iNoNormTileConstraint.py | 18 +-- .../TileConstraints/iSoftmaxTileConstraint.py | 13 +- Deeploy/Targets/Snitch/Tiler.py | 81 +++++----- 28 files changed, 210 insertions(+), 397 deletions(-) diff --git a/Deeploy/Targets/Snitch/Bindings.py b/Deeploy/Targets/Snitch/Bindings.py index 57f50ac47e..7b77a9adea 100644 --- a/Deeploy/Targets/Snitch/Bindings.py +++ b/Deeploy/Targets/Snitch/Bindings.py @@ -5,46 +5,21 @@ from functools import partial from Deeploy.AbstractDataTypes import PointerClass -from Deeploy.CommonExtensions.CodeTransformationPasses.Closure import ClosureGeneration -from Deeploy.CommonExtensions.CodeTransformationPasses.Closure import MemoryAwareClosureGeneration -from Deeploy.CommonExtensions.CodeTransformationPasses.MemoryAllocation import ArgumentStructGeneration -from Deeploy.CommonExtensions.CodeTransformationPasses.MemoryAllocation import MemoryManagementGeneration -from Deeploy.CommonExtensions.DataTypes import float32_t -from Deeploy.CommonExtensions.DataTypes import int8_t -from Deeploy.CommonExtensions.DataTypes import int32_t -from Deeploy.CommonExtensions.DataTypes import uint8_t -from Deeploy.DeeployTypes import CodeTransformation -from Deeploy.DeeployTypes import NodeBinding +from Deeploy.CommonExtensions.CodeTransformationPasses.Closure import ClosureGeneration, MemoryAwareClosureGeneration +from Deeploy.CommonExtensions.CodeTransformationPasses.MemoryAllocation import ArgumentStructGeneration, \ + MemoryManagementGeneration +from Deeploy.CommonExtensions.DataTypes import float32_t, int8_t, int32_t, uint8_t +from Deeploy.DeeployTypes import CodeTransformation, NodeBinding from Deeploy.FutureExtension.CodeTransformationPasses.FutureCodeTransformation import FutureGeneration -from Deeploy.Targets.Generic.Templates import ConcatTemplate -from Deeploy.Targets.Generic.Templates import iNoNormTemplate -from Deeploy.Targets.Generic.TypeCheckers import AddChecker -from Deeploy.Targets.Generic.TypeCheckers import ConcatChecker -from Deeploy.Targets.Generic.TypeCheckers import DivChecker -from Deeploy.Targets.Generic.TypeCheckers import GatherChecker -from Deeploy.Targets.Generic.TypeCheckers import GEMMChecker -from Deeploy.Targets.Generic.TypeCheckers import HardSwishChecker -from Deeploy.Targets.Generic.TypeCheckers import iNoNormChecker -from Deeploy.Targets.Generic.TypeCheckers import MatMulChecker -from Deeploy.Targets.Generic.TypeCheckers import MulChecker -from Deeploy.Targets.Generic.TypeCheckers import ReshapeChecker -from Deeploy.Targets.Generic.TypeCheckers import RMSNormChecker -from Deeploy.Targets.Generic.TypeCheckers import RQAddChecker -from Deeploy.Targets.Generic.TypeCheckers import SoftmaxChecker -from Deeploy.Targets.Generic.TypeCheckers import TransposeChecker -from Deeploy.Targets.Snitch.CodeTransformationPasses import SnitchClusterTiling -from Deeploy.Targets.Snitch.CodeTransformationPasses import SnitchCoreFilterPass -from Deeploy.Targets.Snitch.CodeTransformationPasses import SnitchSynchCoresPass +from Deeploy.Targets.Generic.Templates import ConcatTemplate, iNoNormTemplate +from Deeploy.Targets.Generic.TypeCheckers import AddChecker, ConcatChecker, DivChecker, GatherChecker, GEMMChecker, \ + HardSwishChecker, MatMulChecker, MulChecker, ReshapeChecker, RMSNormChecker, RQAddChecker, SoftmaxChecker, \ + TransposeChecker, iNoNormChecker +from Deeploy.Targets.Snitch.CodeTransformationPasses import SnitchClusterTiling, SnitchCoreFilterPass, \ + SnitchSynchCoresPass from Deeploy.Targets.Snitch.DMA.SnitchDma import SnitchDma -from Deeploy.Targets.Snitch.Templates import AddTemplate -from Deeploy.Targets.Snitch.Templates import FloatGemmTemplate -from Deeploy.Targets.Snitch.Templates import FloatMatMulTemplate -from Deeploy.Targets.Snitch.Templates import GatherTemplate -from Deeploy.Targets.Snitch.Templates import iSoftmaxTemplate -from Deeploy.Targets.Snitch.Templates import MatMulTemplate -from Deeploy.Targets.Snitch.Templates import ReshapeTemplate -from Deeploy.Targets.Snitch.Templates import RQAddTemplate -from Deeploy.Targets.Snitch.Templates import TransposeTemplate +from Deeploy.Targets.Snitch.Templates import AddTemplate, FloatGemmTemplate, FloatMatMulTemplate, GatherTemplate, \ + MatMulTemplate, ReshapeTemplate, RQAddTemplate, TransposeTemplate, iSoftmaxTemplate from Deeploy.Targets.Snitch.Templates.FloatAddTemplate import referenceTemplate as FloatAddTemplate from Deeploy.Targets.Snitch.Templates.FloatDivTemplate import referenceTemplate as FloatDivTemplate from Deeploy.Targets.Snitch.Templates.FloatHardSwishTemplate import referenceTemplate as FloatHardSwishTemplate @@ -53,14 +28,14 @@ from Deeploy.Targets.Snitch.Templates.FloatSoftmaxTemplate import FloatSoftmax_Template from Deeploy.Targets.Snitch.Templates.GemmTemplate import SnitchGemm_Template from Deeploy.Targets.Snitch.Templates.RqGemmTemplate import SnitchRqGemm_Template -from Deeploy.TilingExtension.CodeTransformationPasses.TilingVariableReplacement import TilingVariableReplacement -from Deeploy.TilingExtension.CodeTransformationPasses.TilingVariableReplacement import TilingVariableReplacementUpdate +from Deeploy.TilingExtension.CodeTransformationPasses.TilingVariableReplacement import TilingVariableReplacement, \ + TilingVariableReplacementUpdate -TilingCallClosure = partial(ClosureGeneration, closureSuffix = "_tiling_closure") +TilingCallClosure = partial(ClosureGeneration, closureSuffix="_tiling_closure") MemoryAwareFunctionCallClosure = partial(MemoryAwareClosureGeneration, - closureSuffix = "_closure", - startRegion = "L2", - endRegion = "L1") + closureSuffix="_closure", + startRegion="L2", + endRegion="L1") BasicTransformer = CodeTransformation( [SnitchSynchCoresPass(), @@ -71,13 +46,13 @@ TiledTransformer = CodeTransformation([ SnitchCoreFilterPass("compute"), TilingVariableReplacement("L1"), - TilingCallClosure(writeback = False), + TilingCallClosure(writeback=False), SnitchSynchCoresPass(), TilingVariableReplacementUpdate("L1"), SnitchClusterTiling("L2", "L1", SnitchDma()), ArgumentStructGeneration(), MemoryManagementGeneration("L1"), - MemoryAwareFunctionCallClosure(writeback = False, generateStruct = True), + MemoryAwareFunctionCallClosure(writeback=False, generateStruct=True), MemoryManagementGeneration("L2"), MemoryManagementGeneration() ]) diff --git a/Deeploy/Targets/Snitch/CodeTransformationPasses/SnitchClusterSynch.py b/Deeploy/Targets/Snitch/CodeTransformationPasses/SnitchClusterSynch.py index 70abe0b99f..cc0af164ad 100644 --- a/Deeploy/Targets/Snitch/CodeTransformationPasses/SnitchClusterSynch.py +++ b/Deeploy/Targets/Snitch/CodeTransformationPasses/SnitchClusterSynch.py @@ -4,12 +4,8 @@ from typing import Tuple -from Deeploy.DeeployTypes import _NoVerbosity -from Deeploy.DeeployTypes import CodeGenVerbosity -from Deeploy.DeeployTypes import CodeTransformationPass -from Deeploy.DeeployTypes import ExecutionBlock -from Deeploy.DeeployTypes import NetworkContext -from Deeploy.DeeployTypes import NodeTemplate +from Deeploy.DeeployTypes import CodeGenVerbosity, CodeTransformationPass, ExecutionBlock, NetworkContext, \ + NodeTemplate, _NoVerbosity _synchTemplate = NodeTemplate(""" snrt_cluster_hw_barrier(); diff --git a/Deeploy/Targets/Snitch/CodeTransformationPasses/SnitchCoreFilter.py b/Deeploy/Targets/Snitch/CodeTransformationPasses/SnitchCoreFilter.py index c900e128be..a864c5db8f 100644 --- a/Deeploy/Targets/Snitch/CodeTransformationPasses/SnitchCoreFilter.py +++ b/Deeploy/Targets/Snitch/CodeTransformationPasses/SnitchCoreFilter.py @@ -4,12 +4,8 @@ from typing import Literal, Tuple -from Deeploy.DeeployTypes import _NoVerbosity -from Deeploy.DeeployTypes import CodeGenVerbosity -from Deeploy.DeeployTypes import CodeTransformationPass -from Deeploy.DeeployTypes import ExecutionBlock -from Deeploy.DeeployTypes import NetworkContext -from Deeploy.DeeployTypes import NodeTemplate +from Deeploy.DeeployTypes import CodeGenVerbosity, CodeTransformationPass, ExecutionBlock, NetworkContext, \ + NodeTemplate, _NoVerbosity class SnitchCoreFilterPass(CodeTransformationPass): diff --git a/Deeploy/Targets/Snitch/CodeTransformationPasses/SnitchProfileExecutionBlock.py b/Deeploy/Targets/Snitch/CodeTransformationPasses/SnitchProfileExecutionBlock.py index 8186dcf8ae..ec17b36011 100644 --- a/Deeploy/Targets/Snitch/CodeTransformationPasses/SnitchProfileExecutionBlock.py +++ b/Deeploy/Targets/Snitch/CodeTransformationPasses/SnitchProfileExecutionBlock.py @@ -4,12 +4,8 @@ from typing import Tuple -from Deeploy.DeeployTypes import _NoVerbosity -from Deeploy.DeeployTypes import CodeGenVerbosity -from Deeploy.DeeployTypes import CodeTransformationPass -from Deeploy.DeeployTypes import ExecutionBlock -from Deeploy.DeeployTypes import NetworkContext -from Deeploy.DeeployTypes import NodeTemplate +from Deeploy.DeeployTypes import CodeGenVerbosity, CodeTransformationPass, ExecutionBlock, NetworkContext, \ + NodeTemplate, _NoVerbosity _dumpCycleCntTemplate = NodeTemplate(""" snrt_cluster_hw_barrier(); diff --git a/Deeploy/Targets/Snitch/DMA/SnitchDma.py b/Deeploy/Targets/Snitch/DMA/SnitchDma.py index acda4ad3b2..70381aa72f 100644 --- a/Deeploy/Targets/Snitch/DMA/SnitchDma.py +++ b/Deeploy/Targets/Snitch/DMA/SnitchDma.py @@ -4,14 +4,8 @@ from typing import Dict, Tuple -from Deeploy.DeeployTypes import NetworkContext -from Deeploy.DeeployTypes import NodeTemplate -from Deeploy.DeeployTypes import OperatorRepresentation -from Deeploy.DeeployTypes import VariableBuffer -from Deeploy.TilingExtension.AsyncDma import AsyncDma -from Deeploy.TilingExtension.AsyncDma import DmaDirection -from Deeploy.TilingExtension.AsyncDma import Future -from Deeploy.TilingExtension.AsyncDma import PerTensorWaitingStrategy +from Deeploy.DeeployTypes import NetworkContext, NodeTemplate, OperatorRepresentation, VariableBuffer +from Deeploy.TilingExtension.AsyncDma import AsyncDma, DmaDirection, Future, PerTensorWaitingStrategy class SnitchBarrierFuture(Future): @@ -37,7 +31,7 @@ class SnitchDma(AsyncDma): _transferTemplates = { 2: - NodeTemplate(""" + NodeTemplate(""" if (snrt_is_dm_core()) { ${future} = snrt_dma_start_2d(${dest}, ${src}, ${size}, ${stride_dest}, ${stride_src}, ${repeat}); // WIESEP: Hack as otherwise the last commited DMA transaction ID can never be resolved. diff --git a/Deeploy/Targets/Snitch/DataTypes.py b/Deeploy/Targets/Snitch/DataTypes.py index d5ebe59240..16cd6e8cbe 100644 --- a/Deeploy/Targets/Snitch/DataTypes.py +++ b/Deeploy/Targets/Snitch/DataTypes.py @@ -2,9 +2,7 @@ # # SPDX-License-Identifier: Apache-2.0 -from Deeploy.AbstractDataTypes import PointerClass -from Deeploy.AbstractDataTypes import Struct -from Deeploy.AbstractDataTypes import VoidType +from Deeploy.AbstractDataTypes import PointerClass, Struct, VoidType from Deeploy.CommonExtensions.DataTypes import uint16_t diff --git a/Deeploy/Targets/Snitch/Deployer.py b/Deeploy/Targets/Snitch/Deployer.py index 24891c44da..6b325cebe1 100644 --- a/Deeploy/Targets/Snitch/Deployer.py +++ b/Deeploy/Targets/Snitch/Deployer.py @@ -9,17 +9,10 @@ from Deeploy.AbstractDataTypes import Pointer from Deeploy.CommonExtensions.NetworkDeployers.SignPropDeployer import SignPropDeployer from Deeploy.CommonExtensions.OptimizationPasses.TopologyOptimizationPasses.LoweringOptimizationPasses import \ - NCHWtoNHWCPass -from Deeploy.CommonExtensions.OptimizationPasses.TopologyOptimizationPasses.LoweringOptimizationPasses import \ - RemoveGlobalOutputReshapePass -from Deeploy.CommonExtensions.OptimizationPasses.TopologyOptimizationPasses.LoweringOptimizationPasses import \ - TransposeMatmulInputsPass -from Deeploy.DeeployTypes import DeploymentPlatform -from Deeploy.DeeployTypes import TopologyOptimizer -from Deeploy.Targets.Generic.TopologyOptimizationPasses.Passes import ReshapeConstOptPass -from Deeploy.Targets.Generic.TopologyOptimizationPasses.Passes import TransposeConstOptPass -from Deeploy.Targets.Generic.TopologyOptimizationPasses.Passes import TransposeMergePass -from Deeploy.Targets.Generic.TopologyOptimizationPasses.Passes import TransposeSplitPass + NCHWtoNHWCPass, RemoveGlobalOutputReshapePass, TransposeMatmulInputsPass +from Deeploy.DeeployTypes import DeploymentPlatform, TopologyOptimizer +from Deeploy.Targets.Generic.TopologyOptimizationPasses.Passes import ReshapeConstOptPass, TransposeConstOptPass, \ + TransposeMergePass, TransposeSplitPass class SnitchDeployer(SignPropDeployer): @@ -31,18 +24,18 @@ def __init__(self, loweringOptimizer: TopologyOptimizer, scheduler: Callable = lambda x: x, name: str = 'DeeployNetwork', - default_channels_first = False, + default_channels_first=False, deeployStateDir: str = "DeeployStateDir", - inputOffsets = {}): + inputOffsets={}): super().__init__(graph, deploymentPlatform, inputTypes, loweringOptimizer, scheduler, name, - default_channels_first = default_channels_first, - deeployStateDir = deeployStateDir, - inputOffsets = inputOffsets) + default_channels_first=default_channels_first, + deeployStateDir=deeployStateDir, + inputOffsets=inputOffsets) self.loweringOptimizer.passes += [ TransposeMatmulInputsPass(), diff --git a/Deeploy/Targets/Snitch/Parsers.py b/Deeploy/Targets/Snitch/Parsers.py index f9acc4eefa..57af4c8a95 100644 --- a/Deeploy/Targets/Snitch/Parsers.py +++ b/Deeploy/Targets/Snitch/Parsers.py @@ -7,13 +7,8 @@ import numpy as np import onnx_graphsurgeon as gs -from Deeploy.DeeployTypes import NetworkContext -from Deeploy.DeeployTypes import NodeParser -from Deeploy.Targets.Generic.Parsers import AddParser -from Deeploy.Targets.Generic.Parsers import DivParser -from Deeploy.Targets.Generic.Parsers import GEMMParser -from Deeploy.Targets.Generic.Parsers import MulParser -from Deeploy.Targets.Generic.Parsers import RQGEMMParser +from Deeploy.DeeployTypes import NetworkContext, NodeParser +from Deeploy.Targets.Generic.Parsers import AddParser, DivParser, GEMMParser, MulParser, RQGEMMParser class SnitchGEMMParser(GEMMParser): diff --git a/Deeploy/Targets/Snitch/Platform.py b/Deeploy/Targets/Snitch/Platform.py index b0fbc6bf62..a056f72156 100644 --- a/Deeploy/Targets/Snitch/Platform.py +++ b/Deeploy/Targets/Snitch/Platform.py @@ -6,104 +6,34 @@ import numpy as np -from Deeploy.AbstractDataTypes import Pointer -from Deeploy.AbstractDataTypes import PointerClass -from Deeploy.AbstractDataTypes import VoidType -from Deeploy.DeeployTypes import ConstantBuffer -from Deeploy.DeeployTypes import DeploymentEngine -from Deeploy.DeeployTypes import DeploymentPlatform -from Deeploy.DeeployTypes import NodeMapper -from Deeploy.DeeployTypes import NodeTemplate -from Deeploy.DeeployTypes import StructBuffer -from Deeploy.DeeployTypes import TopologyOptimizer -from Deeploy.DeeployTypes import TransientBuffer -from Deeploy.DeeployTypes import VariableBuffer -from Deeploy.Targets.Generic.Bindings import BasicConcatBindings -from Deeploy.Targets.Generic.Bindings import BasicGatherBindings -from Deeploy.Targets.Generic.Bindings import BasicLayerNormBindings -from Deeploy.Targets.Generic.Bindings import BasicMatMulBindings -from Deeploy.Targets.Generic.Bindings import BasicPad1DBindings -from Deeploy.Targets.Generic.Bindings import BasicPad2DBindings -from Deeploy.Targets.Generic.Bindings import BasicReshapeBindings -from Deeploy.Targets.Generic.Bindings import BasicRQIntegerDivBinding -from Deeploy.Targets.Generic.Layers import AddLayer -from Deeploy.Targets.Generic.Layers import ConcatLayer -from Deeploy.Targets.Generic.Layers import DivLayer -from Deeploy.Targets.Generic.Layers import GatherLayer -from Deeploy.Targets.Generic.Layers import GEMMLayer -from Deeploy.Targets.Generic.Layers import HardSwishLayer -from Deeploy.Targets.Generic.Layers import iNoNormLayer -from Deeploy.Targets.Generic.Layers import LayerNormLayer -from Deeploy.Targets.Generic.Layers import MatMulLayer -from Deeploy.Targets.Generic.Layers import MulLayer -from Deeploy.Targets.Generic.Layers import PadLayer -from Deeploy.Targets.Generic.Layers import ReshapeLayer -from Deeploy.Targets.Generic.Layers import RMSNormLayer -from Deeploy.Targets.Generic.Layers import RQGEMMLayer -from Deeploy.Targets.Generic.Layers import RQIntegerDivLayer -from Deeploy.Targets.Generic.Layers import SoftmaxLayer -from Deeploy.Targets.Generic.Layers import TransposeLayer -from Deeploy.Targets.Generic.Parsers import AddParser -from Deeploy.Targets.Generic.Parsers import ConcatParser -from Deeploy.Targets.Generic.Parsers import GatherParser -from Deeploy.Targets.Generic.Parsers import iLayerNormParser -from Deeploy.Targets.Generic.Parsers import iNoNormParser -from Deeploy.Targets.Generic.Parsers import iSoftmaxParser -from Deeploy.Targets.Generic.Parsers import MatMulParser -from Deeploy.Targets.Generic.Parsers import Pad1DParser -from Deeploy.Targets.Generic.Parsers import Pad2DParser -from Deeploy.Targets.Generic.Parsers import ReshapeParser -from Deeploy.Targets.Generic.Parsers import RQAddParser -from Deeploy.Targets.Generic.Parsers import RQIntegerDivParser -from Deeploy.Targets.Generic.Parsers import SoftmaxParser -from Deeploy.Targets.Generic.Parsers import TransposeParser -from Deeploy.Targets.Generic.Parsers import UnsqueezeParser +from Deeploy.AbstractDataTypes import Pointer, PointerClass, VoidType +from Deeploy.DeeployTypes import ConstantBuffer, DeploymentEngine, DeploymentPlatform, NodeMapper, NodeTemplate, \ + StructBuffer, TopologyOptimizer, TransientBuffer, VariableBuffer +from Deeploy.Targets.Generic.Bindings import BasicConcatBindings, BasicGatherBindings, BasicLayerNormBindings, \ + BasicMatMulBindings, BasicPad1DBindings, BasicPad2DBindings, BasicReshapeBindings, BasicRQIntegerDivBinding +from Deeploy.Targets.Generic.Layers import AddLayer, ConcatLayer, DivLayer, GatherLayer, GEMMLayer, HardSwishLayer, \ + LayerNormLayer, MatMulLayer, MulLayer, PadLayer, ReshapeLayer, RMSNormLayer, RQGEMMLayer, RQIntegerDivLayer, \ + SoftmaxLayer, TransposeLayer, iNoNormLayer +from Deeploy.Targets.Generic.Parsers import AddParser, ConcatParser, GatherParser, MatMulParser, Pad1DParser, \ + Pad2DParser, ReshapeParser, RQAddParser, RQIntegerDivParser, SoftmaxParser, TransposeParser, UnsqueezeParser, \ + iLayerNormParser, iNoNormParser, iSoftmaxParser from Deeploy.Targets.Generic.Templates import AllocateTemplate as BasicAllocateTemplate -from Deeploy.Targets.Generic.TopologyOptimizationPasses.Passes import AddRequantMergePass -from Deeploy.Targets.Generic.TopologyOptimizationPasses.Passes import GEMMRequantMergePass -from Deeploy.Targets.Generic.TopologyOptimizationPasses.Passes import iGELURequantMergePass -from Deeploy.Targets.Generic.TopologyOptimizationPasses.Passes import iHardswishRequantMergePass -from Deeploy.Targets.Generic.TopologyOptimizationPasses.Passes import IntegerDivRequantMergePass -from Deeploy.Targets.Generic.TopologyOptimizationPasses.Passes import MergeConstAddAndRequantPass -from Deeploy.Targets.Generic.TopologyOptimizationPasses.Passes import MergeTrueIntegerDivRequantShiftPass -from Deeploy.Targets.Generic.TopologyOptimizationPasses.Passes import RQSSplitPass -from Deeploy.Targets.Generic.TopologyOptimizationPasses.Passes import SkipEmptyConcatPass -from Deeploy.Targets.Generic.TopologyOptimizationPasses.Passes import SkipUnityRequantPass +from Deeploy.Targets.Generic.TopologyOptimizationPasses.Passes import AddRequantMergePass, GEMMRequantMergePass, \ + IntegerDivRequantMergePass, MergeConstAddAndRequantPass, MergeTrueIntegerDivRequantShiftPass, RQSSplitPass, \ + SkipEmptyConcatPass, SkipUnityRequantPass, iGELURequantMergePass, iHardswishRequantMergePass from Deeploy.Targets.PULPOpen.Platform import RQAddMapper -from Deeploy.Targets.Snitch.Bindings import BasicDivBindings -from Deeploy.Targets.Snitch.Bindings import BasicHardSwishBindings -from Deeploy.Targets.Snitch.Bindings import BasicMulBindings -from Deeploy.Targets.Snitch.Bindings import BasicRMSNormBindings -from Deeploy.Targets.Snitch.Bindings import BasicSnitchTransposeBindings -from Deeploy.Targets.Snitch.Bindings import SnitchAddBindings -from Deeploy.Targets.Snitch.Bindings import SnitchGemmBindings -from Deeploy.Targets.Snitch.Bindings import SnitchiNoNormBindings -from Deeploy.Targets.Snitch.Bindings import SnitchiSoftmaxBindings -from Deeploy.Targets.Snitch.Bindings import SnitchRQAddBindings -from Deeploy.Targets.Snitch.Bindings import SnitchRqGemmBindings -from Deeploy.Targets.Snitch.Parsers import HardSwishParser -from Deeploy.Targets.Snitch.Parsers import SnitchDivParser -from Deeploy.Targets.Snitch.Parsers import SnitchGEMMParser -from Deeploy.Targets.Snitch.Parsers import SnitchMulParser -from Deeploy.Targets.Snitch.Parsers import SnitchRMSNormParser -from Deeploy.Targets.Snitch.Parsers import SnitchRQGEMMParser -from Deeploy.Targets.Snitch.Templates import AllocateTemplate -from Deeploy.Targets.Snitch.Templates import FreeTemplate -from Deeploy.Targets.Snitch.Tiler import SnitchAddTileReadyBindings -from Deeploy.Targets.Snitch.Tiler import SnitchConcatTilingReadyBindings -from Deeploy.Targets.Snitch.Tiler import SnitchDivTilingReadyBindings -from Deeploy.Targets.Snitch.Tiler import SnitchGatherTilingReadyBindings -from Deeploy.Targets.Snitch.Tiler import SnitchGemmTilingReadyBindings -from Deeploy.Targets.Snitch.Tiler import SnitchHardSwishTilingReadyBindings -from Deeploy.Targets.Snitch.Tiler import SnitchiNoNormTilingReadyBindings -from Deeploy.Targets.Snitch.Tiler import SnitchiSoftmaxTilingReadyBindings -from Deeploy.Targets.Snitch.Tiler import SnitchMatMulTilingReadyBindings -from Deeploy.Targets.Snitch.Tiler import SnitchMulTilingReadyBindings -from Deeploy.Targets.Snitch.Tiler import SnitchReshapeTilingReadyBindings -from Deeploy.Targets.Snitch.Tiler import SnitchRMSNormTilingReadyBindings -from Deeploy.Targets.Snitch.Tiler import SnitchRQAddTilingReadyBindings -from Deeploy.Targets.Snitch.Tiler import SnitchRqGemmTilingReadyBindings -from Deeploy.Targets.Snitch.Tiler import SnitchTransposeTilingReadyBindings +from Deeploy.Targets.Snitch.Bindings import BasicDivBindings, BasicHardSwishBindings, BasicMulBindings, \ + BasicRMSNormBindings, BasicSnitchTransposeBindings, SnitchAddBindings, SnitchGemmBindings, SnitchiNoNormBindings, \ + SnitchiSoftmaxBindings, SnitchRQAddBindings, SnitchRqGemmBindings +from Deeploy.Targets.Snitch.Parsers import HardSwishParser, SnitchDivParser, SnitchGEMMParser, SnitchMulParser, \ + SnitchRMSNormParser, SnitchRQGEMMParser +from Deeploy.Targets.Snitch.Templates import AllocateTemplate, FreeTemplate +from Deeploy.Targets.Snitch.Tiler import SnitchAddTileReadyBindings, SnitchConcatTilingReadyBindings, \ + SnitchDivTilingReadyBindings, SnitchGatherTilingReadyBindings, SnitchGemmTilingReadyBindings, \ + SnitchHardSwishTilingReadyBindings, SnitchiNoNormTilingReadyBindings, SnitchiSoftmaxTilingReadyBindings, \ + SnitchMatMulTilingReadyBindings, SnitchMulTilingReadyBindings, SnitchReshapeTilingReadyBindings, \ + SnitchRMSNormTilingReadyBindings, SnitchRQAddTilingReadyBindings, SnitchRqGemmTilingReadyBindings, \ + SnitchTransposeTilingReadyBindings # Mappers without tiling-ready equivalents Pad1DMapper = NodeMapper(Pad1DParser(), BasicPad1DBindings) @@ -205,7 +135,7 @@ class SnitchConstantBuffer(ConstantBuffer): allocTemplate = AllocateTemplate.snitchL2GlobalAllocateTemplate deallocTemplate = FreeTemplate.snitchL2GlobalTemplate - def __init__(self, name: str = '', shape = [1], values = [0]): + def __init__(self, name: str = '', shape=[1], values=[0]): super().__init__(name, shape, values) # Initialize _type with a default value to prevent AttributeError # The actual type will be set later via annotateType @@ -233,9 +163,9 @@ class SnitchStructBuffer(StructBuffer): SnitchOptimizer = TopologyOptimizer([ SkipEmptyConcatPass(), - SkipUnityRequantPass(previous_op_regex = "Concat", num_inputs = 2), - SkipUnityRequantPass(previous_op_regex = "Reshape|Transpose", num_inputs = 1), - SkipUnityRequantPass(previous_op_regex = "Reshape|Transpose", num_inputs = 1), + SkipUnityRequantPass(previous_op_regex="Concat", num_inputs=2), + SkipUnityRequantPass(previous_op_regex="Reshape|Transpose", num_inputs=1), + SkipUnityRequantPass(previous_op_regex="Reshape|Transpose", num_inputs=1), RQSSplitPass(), MergeTrueIntegerDivRequantShiftPass(), IntegerDivRequantMergePass(), @@ -245,7 +175,7 @@ class SnitchStructBuffer(StructBuffer): AddRequantMergePass(), GEMMRequantMergePass(), ], - name = "SnitchOptimizer") + name="SnitchOptimizer") _includeList = [ "snrt.h", @@ -255,17 +185,17 @@ class SnitchStructBuffer(StructBuffer): class SnitchClusterEngine(DeploymentEngine): - def __init__(self, name: str, Mapping = SnitchMapping, initCode = "", includeList = _includeList) -> None: + def __init__(self, name: str, Mapping=SnitchMapping, initCode="", includeList=_includeList) -> None: super().__init__(name, Mapping, initCode, includeList) class SnitchPlatform(DeploymentPlatform): def __init__(self, - engines = [SnitchClusterEngine("SnitchCluster")], - variableBuffer = SnitchVariableBuffer, - constantBuffer = SnitchConstantBuffer, - structBuffer = SnitchStructBuffer, - transientBuffer = SnitchTransientBuffer, + engines=[SnitchClusterEngine("SnitchCluster")], + variableBuffer=SnitchVariableBuffer, + constantBuffer=SnitchConstantBuffer, + structBuffer=SnitchStructBuffer, + transientBuffer=SnitchTransientBuffer, includeList: List[str] = _includeList): super().__init__(engines, variableBuffer, constantBuffer, structBuffer, transientBuffer) diff --git a/Deeploy/Targets/Snitch/Templates/AddTemplate.py b/Deeploy/Targets/Snitch/Templates/AddTemplate.py index 13df15dac2..428f087300 100644 --- a/Deeploy/Targets/Snitch/Templates/AddTemplate.py +++ b/Deeploy/Targets/Snitch/Templates/AddTemplate.py @@ -4,9 +4,7 @@ from typing import Dict, List, Tuple -from Deeploy.DeeployTypes import NetworkContext -from Deeploy.DeeployTypes import NodeTemplate -from Deeploy.DeeployTypes import OperatorRepresentation +from Deeploy.DeeployTypes import NetworkContext, NodeTemplate, OperatorRepresentation class _SnitchAddTemplate(NodeTemplate): diff --git a/Deeploy/Targets/Snitch/Templates/FloatAddTemplate.py b/Deeploy/Targets/Snitch/Templates/FloatAddTemplate.py index 1dbe5ef723..5c5675c58f 100644 --- a/Deeploy/Targets/Snitch/Templates/FloatAddTemplate.py +++ b/Deeploy/Targets/Snitch/Templates/FloatAddTemplate.py @@ -5,9 +5,7 @@ from typing import Dict, List, Tuple -from Deeploy.DeeployTypes import NetworkContext -from Deeploy.DeeployTypes import NodeTemplate -from Deeploy.DeeployTypes import OperatorRepresentation +from Deeploy.DeeployTypes import NetworkContext, NodeTemplate, OperatorRepresentation class _FloatAddTemplate(NodeTemplate): diff --git a/Deeploy/Targets/Snitch/Templates/FloatDivTemplate.py b/Deeploy/Targets/Snitch/Templates/FloatDivTemplate.py index af84efd704..c71cd0a507 100644 --- a/Deeploy/Targets/Snitch/Templates/FloatDivTemplate.py +++ b/Deeploy/Targets/Snitch/Templates/FloatDivTemplate.py @@ -4,9 +4,7 @@ from typing import Dict, List, Tuple -from Deeploy.DeeployTypes import NetworkContext -from Deeploy.DeeployTypes import NodeTemplate -from Deeploy.DeeployTypes import OperatorRepresentation +from Deeploy.DeeployTypes import NetworkContext, NodeTemplate, OperatorRepresentation class FloatDivTemplate(NodeTemplate): diff --git a/Deeploy/Targets/Snitch/Templates/FloatHardSwishTemplate.py b/Deeploy/Targets/Snitch/Templates/FloatHardSwishTemplate.py index bfd99446f2..1615282437 100644 --- a/Deeploy/Targets/Snitch/Templates/FloatHardSwishTemplate.py +++ b/Deeploy/Targets/Snitch/Templates/FloatHardSwishTemplate.py @@ -6,9 +6,7 @@ import numpy as np -from Deeploy.DeeployTypes import NetworkContext -from Deeploy.DeeployTypes import NodeTemplate -from Deeploy.DeeployTypes import OperatorRepresentation +from Deeploy.DeeployTypes import NetworkContext, NodeTemplate, OperatorRepresentation class FloatHardSwishTemplate(NodeTemplate): diff --git a/Deeploy/Targets/Snitch/Templates/FloatMulTemplate.py b/Deeploy/Targets/Snitch/Templates/FloatMulTemplate.py index 7592bcafcf..7a970e6411 100644 --- a/Deeploy/Targets/Snitch/Templates/FloatMulTemplate.py +++ b/Deeploy/Targets/Snitch/Templates/FloatMulTemplate.py @@ -4,9 +4,7 @@ from typing import Dict, List, Tuple -from Deeploy.DeeployTypes import NetworkContext -from Deeploy.DeeployTypes import NodeTemplate -from Deeploy.DeeployTypes import OperatorRepresentation +from Deeploy.DeeployTypes import NetworkContext, NodeTemplate, OperatorRepresentation class FloatMulTemplate(NodeTemplate): diff --git a/Deeploy/Targets/Snitch/Templates/FloatRMSNormTemplate.py b/Deeploy/Targets/Snitch/Templates/FloatRMSNormTemplate.py index cb4b20e589..629c1bb4f3 100644 --- a/Deeploy/Targets/Snitch/Templates/FloatRMSNormTemplate.py +++ b/Deeploy/Targets/Snitch/Templates/FloatRMSNormTemplate.py @@ -6,9 +6,7 @@ import numpy as np -from Deeploy.DeeployTypes import NetworkContext -from Deeploy.DeeployTypes import NodeTemplate -from Deeploy.DeeployTypes import OperatorRepresentation +from Deeploy.DeeployTypes import NetworkContext, NodeTemplate, OperatorRepresentation class FloatRMSNormTemplate(NodeTemplate): diff --git a/Deeploy/Targets/Snitch/Templates/FloatSoftmaxTemplate.py b/Deeploy/Targets/Snitch/Templates/FloatSoftmaxTemplate.py index d351d14ffc..a7bf0f61c7 100644 --- a/Deeploy/Targets/Snitch/Templates/FloatSoftmaxTemplate.py +++ b/Deeploy/Targets/Snitch/Templates/FloatSoftmaxTemplate.py @@ -4,9 +4,7 @@ from typing import Dict, List, Tuple -from Deeploy.DeeployTypes import NetworkContext -from Deeploy.DeeployTypes import NodeTemplate -from Deeploy.DeeployTypes import OperatorRepresentation +from Deeploy.DeeployTypes import NetworkContext, NodeTemplate, OperatorRepresentation class FloatSoftmaxTemplate(NodeTemplate): diff --git a/Deeploy/Targets/Snitch/Templates/GemmTemplate.py b/Deeploy/Targets/Snitch/Templates/GemmTemplate.py index e028b34212..d72b3c11f2 100644 --- a/Deeploy/Targets/Snitch/Templates/GemmTemplate.py +++ b/Deeploy/Targets/Snitch/Templates/GemmTemplate.py @@ -4,9 +4,7 @@ from typing import Dict, List, Tuple -from Deeploy.DeeployTypes import NetworkContext -from Deeploy.DeeployTypes import NodeTemplate -from Deeploy.DeeployTypes import OperatorRepresentation +from Deeploy.DeeployTypes import NetworkContext, NodeTemplate, OperatorRepresentation class SnitchGemmTemplate(NodeTemplate): diff --git a/Deeploy/Targets/Snitch/Templates/MatMulTemplate.py b/Deeploy/Targets/Snitch/Templates/MatMulTemplate.py index ed8149beb7..bce916ea60 100644 --- a/Deeploy/Targets/Snitch/Templates/MatMulTemplate.py +++ b/Deeploy/Targets/Snitch/Templates/MatMulTemplate.py @@ -4,9 +4,7 @@ from typing import Dict, List, Tuple -from Deeploy.DeeployTypes import NetworkContext -from Deeploy.DeeployTypes import NodeTemplate -from Deeploy.DeeployTypes import OperatorRepresentation +from Deeploy.DeeployTypes import NetworkContext, NodeTemplate, OperatorRepresentation class _MatMulTemplate(NodeTemplate): diff --git a/Deeploy/Targets/Snitch/Templates/RqGemmTemplate.py b/Deeploy/Targets/Snitch/Templates/RqGemmTemplate.py index 745f2dc4d5..f77b6d6127 100644 --- a/Deeploy/Targets/Snitch/Templates/RqGemmTemplate.py +++ b/Deeploy/Targets/Snitch/Templates/RqGemmTemplate.py @@ -4,9 +4,7 @@ from typing import Dict, List, Tuple -from Deeploy.DeeployTypes import NetworkContext -from Deeploy.DeeployTypes import NodeTemplate -from Deeploy.DeeployTypes import OperatorRepresentation +from Deeploy.DeeployTypes import NetworkContext, NodeTemplate, OperatorRepresentation class SnitchRqGemmTemplate(NodeTemplate): diff --git a/Deeploy/Targets/Snitch/Templates/TransposeTemplate.py b/Deeploy/Targets/Snitch/Templates/TransposeTemplate.py index da19c61391..9d2d3954ac 100644 --- a/Deeploy/Targets/Snitch/Templates/TransposeTemplate.py +++ b/Deeploy/Targets/Snitch/Templates/TransposeTemplate.py @@ -4,10 +4,7 @@ from typing import Dict, List, Tuple -from Deeploy.DeeployTypes import _Template -from Deeploy.DeeployTypes import NetworkContext -from Deeploy.DeeployTypes import NodeTemplate -from Deeploy.DeeployTypes import OperatorRepresentation +from Deeploy.DeeployTypes import NetworkContext, NodeTemplate, OperatorRepresentation, _Template # Two-stage header: <%text>${ escapes produce ${dimLen_N} template variables # that survive the first render and get resolved during the second render diff --git a/Deeploy/Targets/Snitch/TileConstraints/FloatDivTileConstraint.py b/Deeploy/Targets/Snitch/TileConstraints/FloatDivTileConstraint.py index 1d0bd8c98a..a6f9440fc5 100644 --- a/Deeploy/Targets/Snitch/TileConstraints/FloatDivTileConstraint.py +++ b/Deeploy/Targets/Snitch/TileConstraints/FloatDivTileConstraint.py @@ -8,15 +8,12 @@ from Deeploy.AbstractDataTypes import PointerClass from Deeploy.CommonExtensions.DataTypes import uint16_t -from Deeploy.DeeployTypes import NetworkContext -from Deeploy.DeeployTypes import OperatorRepresentation +from Deeploy.DeeployTypes import NetworkContext, OperatorRepresentation from Deeploy.TilingExtension.MemoryConstraints import NodeMemoryConstraint from Deeploy.TilingExtension.TileConstraint import TileConstraint from Deeploy.TilingExtension.TilerModel import TilerModel -from Deeploy.TilingExtension.TilingCodegen import AbsoluteHyperRectangle -from Deeploy.TilingExtension.TilingCodegen import HyperRectangle -from Deeploy.TilingExtension.TilingCodegen import TilingSchedule -from Deeploy.TilingExtension.TilingCodegen import VariableReplacementScheme +from Deeploy.TilingExtension.TilingCodegen import AbsoluteHyperRectangle, HyperRectangle, TilingSchedule, \ + VariableReplacementScheme class FloatDivTileConstraint(TileConstraint): @@ -50,22 +47,22 @@ def addGeometricalConstraint(cls, tilerModel: TilerModel, parseDict: Dict, ctxt: tilerModel.addTensorDimToModel(ctxt, inputBuffer2Name) # Constrain scalar to remain untiled (size 1) for dim in range(len(input2Shape)): - input2DimVar = tilerModel.getTensorDimVar(tensorName = inputBuffer2Name, dimIdx = dim) + input2DimVar = tilerModel.getTensorDimVar(tensorName=inputBuffer2Name, dimIdx=dim) tilerModel.addConstraint(input2DimVar == input2Shape[dim]) # Input1 and output must have same dimensions for dim in range(len(input1Shape)): - inputDim1Var = tilerModel.getTensorDimVar(tensorName = inputBuffer1Name, dimIdx = dim) - outputDimVar = tilerModel.getTensorDimVar(tensorName = outputBufferName, dimIdx = dim) + inputDim1Var = tilerModel.getTensorDimVar(tensorName=inputBuffer1Name, dimIdx=dim) + outputDimVar = tilerModel.getTensorDimVar(tensorName=outputBufferName, dimIdx=dim) tilerModel.addConstraint(inputDim1Var == outputDimVar) else: # Element-wise: both inputs must have same shape tilerModel.addTensorDimToModel(ctxt, inputBuffer2Name) for dim in range(len(input1Shape)): - inputDim1Var = tilerModel.getTensorDimVar(tensorName = inputBuffer1Name, dimIdx = dim) - inputDim2Var = tilerModel.getTensorDimVar(tensorName = inputBuffer2Name, dimIdx = dim) - outputDimVar = tilerModel.getTensorDimVar(tensorName = outputBufferName, dimIdx = dim) + inputDim1Var = tilerModel.getTensorDimVar(tensorName=inputBuffer1Name, dimIdx=dim) + inputDim2Var = tilerModel.getTensorDimVar(tensorName=inputBuffer2Name, dimIdx=dim) + outputDimVar = tilerModel.getTensorDimVar(tensorName=outputBufferName, dimIdx=dim) tilerModel.addConstraint(inputDim1Var == inputDim2Var) tilerModel.addConstraint(inputDim1Var == outputDimVar) diff --git a/Deeploy/Targets/Snitch/TileConstraints/FloatMulTileConstraint.py b/Deeploy/Targets/Snitch/TileConstraints/FloatMulTileConstraint.py index 3c292ac257..afe5e1a0f2 100644 --- a/Deeploy/Targets/Snitch/TileConstraints/FloatMulTileConstraint.py +++ b/Deeploy/Targets/Snitch/TileConstraints/FloatMulTileConstraint.py @@ -8,15 +8,12 @@ from Deeploy.AbstractDataTypes import PointerClass from Deeploy.CommonExtensions.DataTypes import uint16_t -from Deeploy.DeeployTypes import NetworkContext -from Deeploy.DeeployTypes import OperatorRepresentation +from Deeploy.DeeployTypes import NetworkContext, OperatorRepresentation from Deeploy.TilingExtension.MemoryConstraints import NodeMemoryConstraint from Deeploy.TilingExtension.TileConstraint import TileConstraint from Deeploy.TilingExtension.TilerModel import TilerModel -from Deeploy.TilingExtension.TilingCodegen import AbsoluteHyperRectangle -from Deeploy.TilingExtension.TilingCodegen import HyperRectangle -from Deeploy.TilingExtension.TilingCodegen import TilingSchedule -from Deeploy.TilingExtension.TilingCodegen import VariableReplacementScheme +from Deeploy.TilingExtension.TilingCodegen import AbsoluteHyperRectangle, HyperRectangle, TilingSchedule, \ + VariableReplacementScheme class FloatMulTileConstraint(TileConstraint): @@ -50,22 +47,22 @@ def addGeometricalConstraint(cls, tilerModel: TilerModel, parseDict: Dict, ctxt: tilerModel.addTensorDimToModel(ctxt, inputBuffer2Name) # Constrain scalar to remain untiled (size 1) for dim in range(len(input2Shape)): - input2DimVar = tilerModel.getTensorDimVar(tensorName = inputBuffer2Name, dimIdx = dim) + input2DimVar = tilerModel.getTensorDimVar(tensorName=inputBuffer2Name, dimIdx=dim) tilerModel.addConstraint(input2DimVar == input2Shape[dim]) # Input1 and output must have same dimensions for dim in range(len(input1Shape)): - inputDim1Var = tilerModel.getTensorDimVar(tensorName = inputBuffer1Name, dimIdx = dim) - outputDimVar = tilerModel.getTensorDimVar(tensorName = outputBufferName, dimIdx = dim) + inputDim1Var = tilerModel.getTensorDimVar(tensorName=inputBuffer1Name, dimIdx=dim) + outputDimVar = tilerModel.getTensorDimVar(tensorName=outputBufferName, dimIdx=dim) tilerModel.addConstraint(inputDim1Var == outputDimVar) else: # Element-wise: both inputs must have same shape tilerModel.addTensorDimToModel(ctxt, inputBuffer2Name) for dim in range(len(input1Shape)): - inputDim1Var = tilerModel.getTensorDimVar(tensorName = inputBuffer1Name, dimIdx = dim) - inputDim2Var = tilerModel.getTensorDimVar(tensorName = inputBuffer2Name, dimIdx = dim) - outputDimVar = tilerModel.getTensorDimVar(tensorName = outputBufferName, dimIdx = dim) + inputDim1Var = tilerModel.getTensorDimVar(tensorName=inputBuffer1Name, dimIdx=dim) + inputDim2Var = tilerModel.getTensorDimVar(tensorName=inputBuffer2Name, dimIdx=dim) + outputDimVar = tilerModel.getTensorDimVar(tensorName=outputBufferName, dimIdx=dim) tilerModel.addConstraint(inputDim1Var == inputDim2Var) tilerModel.addConstraint(inputDim1Var == outputDimVar) diff --git a/Deeploy/Targets/Snitch/TileConstraints/GemmTileConstraint.py b/Deeploy/Targets/Snitch/TileConstraints/GemmTileConstraint.py index 48ad6c71b4..bb72cc461c 100644 --- a/Deeploy/Targets/Snitch/TileConstraints/GemmTileConstraint.py +++ b/Deeploy/Targets/Snitch/TileConstraints/GemmTileConstraint.py @@ -6,16 +6,12 @@ from Deeploy.AbstractDataTypes import PointerClass from Deeploy.CommonExtensions.DataTypes import uint32_t -from Deeploy.DeeployTypes import NetworkContext -from Deeploy.DeeployTypes import OperatorRepresentation +from Deeploy.DeeployTypes import NetworkContext, OperatorRepresentation from Deeploy.TilingExtension.MemoryConstraints import NodeMemoryConstraint from Deeploy.TilingExtension.TileConstraint import TileConstraint -from Deeploy.TilingExtension.TilerModel import PerformanceHint -from Deeploy.TilingExtension.TilerModel import TilerModel -from Deeploy.TilingExtension.TilingCodegen import AbsoluteHyperRectangle -from Deeploy.TilingExtension.TilingCodegen import HyperRectangle -from Deeploy.TilingExtension.TilingCodegen import TilingSchedule -from Deeploy.TilingExtension.TilingCodegen import VariableReplacementScheme +from Deeploy.TilingExtension.TilerModel import PerformanceHint, TilerModel +from Deeploy.TilingExtension.TilingCodegen import AbsoluteHyperRectangle, HyperRectangle, TilingSchedule, \ + VariableReplacementScheme class GemmTileConstraint(TileConstraint): @@ -24,9 +20,9 @@ class GemmTileConstraint(TileConstraint): def addGeometricalConstraint(tilerModel: TilerModel, parseDict: Dict, ctxt: NetworkContext) -> TilerModel: # Get to-be-tiled tensor's buffers - bufferA = ctxt.lookup(name = parseDict['A']) - bufferB = ctxt.lookup(name = parseDict['B']) - bufferY = ctxt.lookup(name = parseDict['data_out']) + bufferA = ctxt.lookup(name=parseDict['A']) + bufferB = ctxt.lookup(name=parseDict['B']) + bufferY = ctxt.lookup(name=parseDict['data_out']) # Add I/O dimensions to the model as variables for bufferName in [bufferA.name, bufferB.name, bufferY.name]: @@ -37,35 +33,35 @@ def addGeometricalConstraint(tilerModel: TilerModel, parseDict: Dict, ctxt: Netw heightIdxA, widthIdxA = dimCountA - 2, dimCountA - 1 else: heightIdxA, widthIdxA = dimCountA - 1, dimCountA - 2 - AHeightDimVar = tilerModel.getTensorDimVar(tensorName = bufferA.name, dimIdx = heightIdxA) - AWidthDimVar = tilerModel.getTensorDimVar(tensorName = bufferA.name, dimIdx = widthIdxA) + AHeightDimVar = tilerModel.getTensorDimVar(tensorName=bufferA.name, dimIdx=heightIdxA) + AWidthDimVar = tilerModel.getTensorDimVar(tensorName=bufferA.name, dimIdx=widthIdxA) dimCountB = len(bufferB.shape) if parseDict['transB'] == 0: heightIdxB, widthIdxB = dimCountB - 2, dimCountB - 1 else: heightIdxB, widthIdxB = dimCountB - 1, dimCountB - 2 - BHeightDimVar = tilerModel.getTensorDimVar(tensorName = bufferB.name, dimIdx = heightIdxB) - BWidthDimVar = tilerModel.getTensorDimVar(tensorName = bufferB.name, dimIdx = widthIdxB) + BHeightDimVar = tilerModel.getTensorDimVar(tensorName=bufferB.name, dimIdx=heightIdxB) + BWidthDimVar = tilerModel.getTensorDimVar(tensorName=bufferB.name, dimIdx=widthIdxB) dimCountY = len(bufferY.shape) heightIdxY, widthIdxY = dimCountY - 2, dimCountY - 1 - YHeightDimVar = tilerModel.getTensorDimVar(tensorName = bufferY.name, dimIdx = heightIdxY) - YWidthDimVar = tilerModel.getTensorDimVar(tensorName = bufferY.name, dimIdx = widthIdxY) + YHeightDimVar = tilerModel.getTensorDimVar(tensorName=bufferY.name, dimIdx=heightIdxY) + YWidthDimVar = tilerModel.getTensorDimVar(tensorName=bufferY.name, dimIdx=widthIdxY) tilerModel.addConstraint(YHeightDimVar == AHeightDimVar) tilerModel.addConstraint(YWidthDimVar == BWidthDimVar) tilerModel.addConstraint(AWidthDimVar == BHeightDimVar) if 'C' in parseDict: - bufferC = ctxt.lookup(name = parseDict['C']) + bufferC = ctxt.lookup(name=parseDict['C']) tilerModel.addTensorDimToModel(ctxt, bufferC.name) dimCountC = len(bufferC.shape) heightIdxC, widthIdxC = dimCountC - 2, dimCountC - 1 - CHeightDimVar = tilerModel.getTensorDimVar(tensorName = bufferC.name, dimIdx = heightIdxC) - CWidthDimVar = tilerModel.getTensorDimVar(tensorName = bufferC.name, dimIdx = widthIdxC) + CHeightDimVar = tilerModel.getTensorDimVar(tensorName=bufferC.name, dimIdx=heightIdxC) + CWidthDimVar = tilerModel.getTensorDimVar(tensorName=bufferC.name, dimIdx=widthIdxC) tilerModel.addConstraint(CHeightDimVar == YHeightDimVar) tilerModel.addConstraint(CWidthDimVar == YWidthDimVar) @@ -74,21 +70,21 @@ def addGeometricalConstraint(tilerModel: TilerModel, parseDict: Dict, ctxt: Netw @staticmethod def addPolicyConstraint(tilerModel: TilerModel, parseDict: Dict, ctxt: NetworkContext) -> TilerModel: - bufferA = ctxt.lookup(name = parseDict['A']) - bufferY = ctxt.lookup(name = parseDict['data_out']) + bufferA = ctxt.lookup(name=parseDict['A']) + bufferY = ctxt.lookup(name=parseDict['data_out']) dimCountA = len(bufferA.shape) if parseDict['transA'] == 0: heightIdxA, widthIdxA = dimCountA - 2, dimCountA - 1 else: heightIdxA, widthIdxA = dimCountA - 1, dimCountA - 2 - AHeightDimVar = tilerModel.getTensorDimVar(tensorName = bufferA.name, dimIdx = heightIdxA) - AWidthDimVar = tilerModel.getTensorDimVar(tensorName = bufferA.name, dimIdx = widthIdxA) + AHeightDimVar = tilerModel.getTensorDimVar(tensorName=bufferA.name, dimIdx=heightIdxA) + AWidthDimVar = tilerModel.getTensorDimVar(tensorName=bufferA.name, dimIdx=widthIdxA) dimCountY = len(bufferY.shape) heightIdxY, widthIdxY = dimCountY - 2, dimCountY - 1 - YHeightDimVar = tilerModel.getTensorDimVar(tensorName = bufferY.name, dimIdx = heightIdxY) - YWidthDimVar = tilerModel.getTensorDimVar(tensorName = bufferY.name, dimIdx = widthIdxY) + YHeightDimVar = tilerModel.getTensorDimVar(tensorName=bufferY.name, dimIdx=heightIdxY) + YWidthDimVar = tilerModel.getTensorDimVar(tensorName=bufferY.name, dimIdx=widthIdxY) # Full inner dimension tilerModel.addConstraint(AWidthDimVar == AWidthDimVar.Max()) @@ -99,7 +95,7 @@ def addPolicyConstraint(tilerModel: TilerModel, parseDict: Dict, ctxt: NetworkCo "M", YHeightDimVar, 8, - strategy = PerformanceHint(priority = 1)) + strategy=PerformanceHint(priority=1)) return tilerModel diff --git a/Deeploy/Targets/Snitch/TileConstraints/ReshapeTileConstraint.py b/Deeploy/Targets/Snitch/TileConstraints/ReshapeTileConstraint.py index cff40063bb..c1ae60dad5 100644 --- a/Deeploy/Targets/Snitch/TileConstraints/ReshapeTileConstraint.py +++ b/Deeploy/Targets/Snitch/TileConstraints/ReshapeTileConstraint.py @@ -8,15 +8,12 @@ from Deeploy.AbstractDataTypes import PointerClass from Deeploy.CommonExtensions.DataTypes import uint16_t -from Deeploy.DeeployTypes import NetworkContext -from Deeploy.DeeployTypes import OperatorRepresentation +from Deeploy.DeeployTypes import NetworkContext, OperatorRepresentation from Deeploy.TilingExtension.MemoryConstraints import NodeMemoryConstraint from Deeploy.TilingExtension.TileConstraint import TileConstraint from Deeploy.TilingExtension.TilerModel import TilerModel -from Deeploy.TilingExtension.TilingCodegen import AbsoluteHyperRectangle -from Deeploy.TilingExtension.TilingCodegen import HyperRectangle -from Deeploy.TilingExtension.TilingCodegen import TilingSchedule -from Deeploy.TilingExtension.TilingCodegen import VariableReplacementScheme +from Deeploy.TilingExtension.TilingCodegen import AbsoluteHyperRectangle, HyperRectangle, TilingSchedule, \ + VariableReplacementScheme class ReshapeTileConstraint(TileConstraint): @@ -43,7 +40,7 @@ def addGeometricalConstraint(tilerModel: TilerModel, parseDict: Dict, ctxt: Netw tilerModel.addTensorDimToModel(ctxt, bufferName) for idx, shapeDim in enumerate(_buffer.shape): - tilerModel.addConstraint(tilerModel.getTensorDimVar(tensorName = bufferName, dimIdx = idx) <= shapeDim) + tilerModel.addConstraint(tilerModel.getTensorDimVar(tensorName=bufferName, dimIdx=idx) <= shapeDim) # Constrain total elements to be equal inputBuffer = ctxt.lookup(inputBufferName) diff --git a/Deeploy/Targets/Snitch/TileConstraints/RqGemmTileConstraint.py b/Deeploy/Targets/Snitch/TileConstraints/RqGemmTileConstraint.py index aba5fa232b..a40dcabd3a 100644 --- a/Deeploy/Targets/Snitch/TileConstraints/RqGemmTileConstraint.py +++ b/Deeploy/Targets/Snitch/TileConstraints/RqGemmTileConstraint.py @@ -6,16 +6,12 @@ from Deeploy.AbstractDataTypes import PointerClass from Deeploy.CommonExtensions.DataTypes import uint32_t -from Deeploy.DeeployTypes import NetworkContext -from Deeploy.DeeployTypes import OperatorRepresentation +from Deeploy.DeeployTypes import NetworkContext, OperatorRepresentation from Deeploy.TilingExtension.MemoryConstraints import NodeMemoryConstraint from Deeploy.TilingExtension.TileConstraint import TileConstraint -from Deeploy.TilingExtension.TilerModel import PerformanceHint -from Deeploy.TilingExtension.TilerModel import TilerModel -from Deeploy.TilingExtension.TilingCodegen import AbsoluteHyperRectangle -from Deeploy.TilingExtension.TilingCodegen import HyperRectangle -from Deeploy.TilingExtension.TilingCodegen import TilingSchedule -from Deeploy.TilingExtension.TilingCodegen import VariableReplacementScheme +from Deeploy.TilingExtension.TilerModel import PerformanceHint, TilerModel +from Deeploy.TilingExtension.TilingCodegen import AbsoluteHyperRectangle, HyperRectangle, TilingSchedule, \ + VariableReplacementScheme class RqGemmTileConstraint(TileConstraint): @@ -24,9 +20,9 @@ class RqGemmTileConstraint(TileConstraint): def addGeometricalConstraint(tilerModel: TilerModel, parseDict: Dict, ctxt: NetworkContext) -> TilerModel: # Get to-be-tiled tensor's buffers - bufferA = ctxt.lookup(name = parseDict['A']) - bufferB = ctxt.lookup(name = parseDict['B']) - bufferY = ctxt.lookup(name = parseDict['data_out']) + bufferA = ctxt.lookup(name=parseDict['A']) + bufferB = ctxt.lookup(name=parseDict['B']) + bufferY = ctxt.lookup(name=parseDict['data_out']) # Add I/O dimensions to the model as variables for bufferName in [bufferA.name, bufferB.name, bufferY.name]: @@ -37,48 +33,48 @@ def addGeometricalConstraint(tilerModel: TilerModel, parseDict: Dict, ctxt: Netw heightIdxA, widthIdxA = dimCountA - 2, dimCountA - 1 else: heightIdxA, widthIdxA = dimCountA - 1, dimCountA - 2 - AHeightDimVar = tilerModel.getTensorDimVar(tensorName = bufferA.name, dimIdx = heightIdxA) - AWidthDimVar = tilerModel.getTensorDimVar(tensorName = bufferA.name, dimIdx = widthIdxA) + AHeightDimVar = tilerModel.getTensorDimVar(tensorName=bufferA.name, dimIdx=heightIdxA) + AWidthDimVar = tilerModel.getTensorDimVar(tensorName=bufferA.name, dimIdx=widthIdxA) dimCountB = len(bufferB.shape) if parseDict['transB'] == 0: heightIdxB, widthIdxB = dimCountB - 2, dimCountB - 1 else: heightIdxB, widthIdxB = dimCountB - 1, dimCountB - 2 - BHeightDimVar = tilerModel.getTensorDimVar(tensorName = bufferB.name, dimIdx = heightIdxB) - BWidthDimVar = tilerModel.getTensorDimVar(tensorName = bufferB.name, dimIdx = widthIdxB) + BHeightDimVar = tilerModel.getTensorDimVar(tensorName=bufferB.name, dimIdx=heightIdxB) + BWidthDimVar = tilerModel.getTensorDimVar(tensorName=bufferB.name, dimIdx=widthIdxB) dimCountY = len(bufferY.shape) heightIdxY, widthIdxY = dimCountY - 2, dimCountY - 1 - YHeightDimVar = tilerModel.getTensorDimVar(tensorName = bufferY.name, dimIdx = heightIdxY) - YWidthDimVar = tilerModel.getTensorDimVar(tensorName = bufferY.name, dimIdx = widthIdxY) + YHeightDimVar = tilerModel.getTensorDimVar(tensorName=bufferY.name, dimIdx=heightIdxY) + YWidthDimVar = tilerModel.getTensorDimVar(tensorName=bufferY.name, dimIdx=widthIdxY) tilerModel.addConstraint(YHeightDimVar == AHeightDimVar) tilerModel.addConstraint(YWidthDimVar == BWidthDimVar) tilerModel.addConstraint(AWidthDimVar == BHeightDimVar) if 'C' in parseDict: - bufferC = ctxt.lookup(name = parseDict['C']) + bufferC = ctxt.lookup(name=parseDict['C']) tilerModel.addTensorDimToModel(ctxt, bufferC.name) dimCountC = len(bufferC.shape) heightIdxC, widthIdxC = dimCountC - 2, dimCountC - 1 - CHeightDimVar = tilerModel.getTensorDimVar(tensorName = bufferC.name, dimIdx = heightIdxC) - CWidthDimVar = tilerModel.getTensorDimVar(tensorName = bufferC.name, dimIdx = widthIdxC) + CHeightDimVar = tilerModel.getTensorDimVar(tensorName=bufferC.name, dimIdx=heightIdxC) + CWidthDimVar = tilerModel.getTensorDimVar(tensorName=bufferC.name, dimIdx=widthIdxC) tilerModel.addConstraint(CHeightDimVar == YHeightDimVar) tilerModel.addConstraint(CWidthDimVar == YWidthDimVar) - bufferMul = ctxt.lookup(name = parseDict['mul']) - bufferAdd = ctxt.lookup(name = parseDict['add']) + bufferMul = ctxt.lookup(name=parseDict['mul']) + bufferAdd = ctxt.lookup(name=parseDict['add']) # Add I/O dimensions to the model as variables for bufferName in [bufferMul.name, bufferAdd.name]: tilerModel.addTensorDimToModel(ctxt, bufferName) - MulDimVar = tilerModel.getTensorDimVar(tensorName = bufferMul.name, dimIdx = 0) - AddDimVar = tilerModel.getTensorDimVar(tensorName = bufferAdd.name, dimIdx = 0) + MulDimVar = tilerModel.getTensorDimVar(tensorName=bufferMul.name, dimIdx=0) + AddDimVar = tilerModel.getTensorDimVar(tensorName=bufferAdd.name, dimIdx=0) tilerModel.addConstraint(MulDimVar == YHeightDimVar) tilerModel.addConstraint(MulDimVar == AddDimVar) @@ -87,21 +83,21 @@ def addGeometricalConstraint(tilerModel: TilerModel, parseDict: Dict, ctxt: Netw @staticmethod def addPolicyConstraint(tilerModel: TilerModel, parseDict: Dict, ctxt: NetworkContext) -> TilerModel: - bufferA = ctxt.lookup(name = parseDict['A']) - bufferY = ctxt.lookup(name = parseDict['data_out']) + bufferA = ctxt.lookup(name=parseDict['A']) + bufferY = ctxt.lookup(name=parseDict['data_out']) dimCountA = len(bufferA.shape) if parseDict['transA'] == 0: heightIdxA, widthIdxA = dimCountA - 2, dimCountA - 1 else: heightIdxA, widthIdxA = dimCountA - 1, dimCountA - 2 - AHeightDimVar = tilerModel.getTensorDimVar(tensorName = bufferA.name, dimIdx = heightIdxA) - AWidthDimVar = tilerModel.getTensorDimVar(tensorName = bufferA.name, dimIdx = widthIdxA) + AHeightDimVar = tilerModel.getTensorDimVar(tensorName=bufferA.name, dimIdx=heightIdxA) + AWidthDimVar = tilerModel.getTensorDimVar(tensorName=bufferA.name, dimIdx=widthIdxA) dimCountY = len(bufferY.shape) heightIdxY, widthIdxY = dimCountY - 2, dimCountY - 1 - YHeightDimVar = tilerModel.getTensorDimVar(tensorName = bufferY.name, dimIdx = heightIdxY) - YWidthDimVar = tilerModel.getTensorDimVar(tensorName = bufferY.name, dimIdx = widthIdxY) + YHeightDimVar = tilerModel.getTensorDimVar(tensorName=bufferY.name, dimIdx=heightIdxY) + YWidthDimVar = tilerModel.getTensorDimVar(tensorName=bufferY.name, dimIdx=widthIdxY) # Full inner dimension tilerModel.addConstraint(AWidthDimVar == AWidthDimVar.Max()) @@ -112,7 +108,7 @@ def addPolicyConstraint(tilerModel: TilerModel, parseDict: Dict, ctxt: NetworkCo "M", YHeightDimVar, 8, - strategy = PerformanceHint(priority = 1)) + strategy=PerformanceHint(priority=1)) return tilerModel @@ -174,8 +170,8 @@ def serializeTilingSolution( else: BCube = HyperRectangle((BatchOffset, OOffset, NOffset), (BatchSize, OSize, NSize)) - MulCube = HyperRectangle((MOffset,), (MSize,)) - AddCube = HyperRectangle((MOffset,), (MSize,)) + MulCube = HyperRectangle((MOffset, ), (MSize, )) + AddCube = HyperRectangle((MOffset, ), (MSize, )) inputLoadSchedule.append({"A": ACube, "B": BCube, "C": YCube, "mul": MulCube, "add": AddCube}) outputLoadSchedule.append({"data_out": YCube}) diff --git a/Deeploy/Targets/Snitch/TileConstraints/iNoNormTileConstraint.py b/Deeploy/Targets/Snitch/TileConstraints/iNoNormTileConstraint.py index 3819a767f0..f00af88b86 100644 --- a/Deeploy/Targets/Snitch/TileConstraints/iNoNormTileConstraint.py +++ b/Deeploy/Targets/Snitch/TileConstraints/iNoNormTileConstraint.py @@ -8,14 +8,11 @@ from Deeploy.AbstractDataTypes import PointerClass from Deeploy.CommonExtensions.DataTypes import uint32_t -from Deeploy.DeeployTypes import NetworkContext -from Deeploy.DeeployTypes import OperatorRepresentation +from Deeploy.DeeployTypes import NetworkContext, OperatorRepresentation from Deeploy.TilingExtension.MemoryConstraints import NodeMemoryConstraint from Deeploy.TilingExtension.TileConstraint import TileConstraint from Deeploy.TilingExtension.TilerModel import TilerModel -from Deeploy.TilingExtension.TilingCodegen import AbsoluteHyperRectangle -from Deeploy.TilingExtension.TilingCodegen import TilingSchedule -from Deeploy.TilingExtension.TilingCodegen import VariableReplacementScheme +from Deeploy.TilingExtension.TilingCodegen import AbsoluteHyperRectangle, TilingSchedule, VariableReplacementScheme class iNoNormTileConstraint(TileConstraint): @@ -37,16 +34,15 @@ def addGeometricalConstraint(tilerModel: TilerModel, parseDict: Dict, ctxt: Netw weigthsBufferShapeLen = len(ctxt.lookup(weightsBufferName).shape) biasBufferShapeLen = len(ctxt.lookup(biasBufferName).shape) - weightsLastDimVar = tilerModel.getTensorDimVar(tensorName = weightsBufferName, - dimIdx = weigthsBufferShapeLen - 1) - biasLastDimVar = tilerModel.getTensorDimVar(tensorName = biasBufferName, dimIdx = biasBufferShapeLen - 1) + weightsLastDimVar = tilerModel.getTensorDimVar(tensorName=weightsBufferName, dimIdx=weigthsBufferShapeLen - 1) + biasLastDimVar = tilerModel.getTensorDimVar(tensorName=biasBufferName, dimIdx=biasBufferShapeLen - 1) tilerModel.addConstraint(biasLastDimVar == weightsLastDimVar) for dim in range(len(inputShape)): - inputDimVar = tilerModel.getTensorDimVar(tensorName = inputBufferName, dimIdx = dim) - weightDimVar = tilerModel.getTensorDimVar(tensorName = weightsBufferName, dimIdx = dim) - outputDimVar = tilerModel.getTensorDimVar(tensorName = outputBufferName, dimIdx = dim) + inputDimVar = tilerModel.getTensorDimVar(tensorName=inputBufferName, dimIdx=dim) + weightDimVar = tilerModel.getTensorDimVar(tensorName=weightsBufferName, dimIdx=dim) + outputDimVar = tilerModel.getTensorDimVar(tensorName=outputBufferName, dimIdx=dim) tilerModel.addConstraint(inputDimVar == outputDimVar) tilerModel.addConstraint(weightDimVar == outputDimVar) diff --git a/Deeploy/Targets/Snitch/TileConstraints/iSoftmaxTileConstraint.py b/Deeploy/Targets/Snitch/TileConstraints/iSoftmaxTileConstraint.py index 5c00ee546a..9a8e36f79e 100644 --- a/Deeploy/Targets/Snitch/TileConstraints/iSoftmaxTileConstraint.py +++ b/Deeploy/Targets/Snitch/TileConstraints/iSoftmaxTileConstraint.py @@ -9,14 +9,11 @@ from Deeploy.AbstractDataTypes import PointerClass from Deeploy.CommonExtensions.DataTypes import uint32_t -from Deeploy.DeeployTypes import NetworkContext -from Deeploy.DeeployTypes import OperatorRepresentation +from Deeploy.DeeployTypes import NetworkContext, OperatorRepresentation from Deeploy.TilingExtension.MemoryConstraints import NodeMemoryConstraint from Deeploy.TilingExtension.TileConstraint import TileConstraint from Deeploy.TilingExtension.TilerModel import TilerModel -from Deeploy.TilingExtension.TilingCodegen import AbsoluteHyperRectangle -from Deeploy.TilingExtension.TilingCodegen import TilingSchedule -from Deeploy.TilingExtension.TilingCodegen import VariableReplacementScheme +from Deeploy.TilingExtension.TilingCodegen import AbsoluteHyperRectangle, TilingSchedule, VariableReplacementScheme class iSoftmaxTileConstraint(TileConstraint): @@ -33,8 +30,8 @@ def addGeometricalConstraint(tilerModel: TilerModel, parseDict: Dict, ctxt: Netw tilerModel.addTensorDimToModel(ctxt, bufferName) for idx in range(shapeLen): - outputDim = tilerModel.getTensorDimVar(tensorName = outputBufferName, dimIdx = idx) - inputDim = tilerModel.getTensorDimVar(tensorName = inputBufferName, dimIdx = idx) + outputDim = tilerModel.getTensorDimVar(tensorName=outputBufferName, dimIdx=idx) + inputDim = tilerModel.getTensorDimVar(tensorName=inputBufferName, dimIdx=idx) tilerModel.addConstraint(outputDim == inputDim) return tilerModel @@ -46,7 +43,7 @@ def addPolicyConstraint(tilerModel: TilerModel, parseDict: Dict, ctxt: NetworkCo lastDimLength = inputBuffer.shape[-1] lastDimIdx = len(inputBuffer.shape) - 1 - lastDimVar = tilerModel.getTensorDimVar(tensorName = inputBufferName, dimIdx = lastDimIdx) + lastDimVar = tilerModel.getTensorDimVar(tensorName=inputBufferName, dimIdx=lastDimIdx) tilerModel.addConstraint(lastDimVar == lastDimLength) diff --git a/Deeploy/Targets/Snitch/Tiler.py b/Deeploy/Targets/Snitch/Tiler.py index 064e8f805f..360b754fee 100644 --- a/Deeploy/Targets/Snitch/Tiler.py +++ b/Deeploy/Targets/Snitch/Tiler.py @@ -9,23 +9,11 @@ from Deeploy.Targets.Generic.TileConstraints.TransposeTileConstraint import TransposeTileConstraint from Deeploy.Targets.PULPOpen.TileConstraints.GatherTileConstraint import GatherTileConstraint from Deeploy.Targets.PULPOpen.TileConstraints.MatMulTileConstraint import MatMulTileConstraint -from Deeploy.Targets.Snitch.Bindings import SnitchAddBindings -from Deeploy.Targets.Snitch.Bindings import SnitchConcatBindings -from Deeploy.Targets.Snitch.Bindings import SnitchDivBindings -from Deeploy.Targets.Snitch.Bindings import SnitchGatherBindings -from Deeploy.Targets.Snitch.Bindings import SnitchGemmBindings -from Deeploy.Targets.Snitch.Bindings import SnitchHardSwishBindings -from Deeploy.Targets.Snitch.Bindings import SnitchiNoNormBindings -from Deeploy.Targets.Snitch.Bindings import SnitchiSoftmaxBindings -from Deeploy.Targets.Snitch.Bindings import SnitchMatMulBindings -from Deeploy.Targets.Snitch.Bindings import SnitchMulBindings -from Deeploy.Targets.Snitch.Bindings import SnitchReshapeBindings -from Deeploy.Targets.Snitch.Bindings import SnitchRMSNormBindings -from Deeploy.Targets.Snitch.Bindings import SnitchRQAddBindings -from Deeploy.Targets.Snitch.Bindings import SnitchRqGemmBindings -from Deeploy.Targets.Snitch.Bindings import SnitchTransposeBindings -from Deeploy.Targets.Snitch.TileConstraints import iNoNormTileConstraint -from Deeploy.Targets.Snitch.TileConstraints import iSoftmaxTileConstraint +from Deeploy.Targets.Snitch.Bindings import SnitchAddBindings, SnitchConcatBindings, SnitchDivBindings, \ + SnitchGatherBindings, SnitchGemmBindings, SnitchHardSwishBindings, SnitchiNoNormBindings, SnitchiSoftmaxBindings, \ + SnitchMatMulBindings, SnitchMulBindings, SnitchReshapeBindings, SnitchRMSNormBindings, SnitchRQAddBindings, \ + SnitchRqGemmBindings, SnitchTransposeBindings +from Deeploy.Targets.Snitch.TileConstraints import iNoNormTileConstraint, iSoftmaxTileConstraint from Deeploy.Targets.Snitch.TileConstraints.FloatDivTileConstraint import FloatDivTileConstraint from Deeploy.Targets.Snitch.TileConstraints.FloatMulTileConstraint import FloatMulTileConstraint from Deeploy.Targets.Snitch.TileConstraints.GemmTileConstraint import GemmTileConstraint @@ -33,43 +21,42 @@ from Deeploy.Targets.Snitch.TileConstraints.RqGemmTileConstraint import RqGemmTileConstraint from Deeploy.TilingExtension.TilerExtension import TilingReadyNodeBindings -SnitchiSoftmaxTilingReadyBindings = TilingReadyNodeBindings(nodeBindings = SnitchiSoftmaxBindings, - tileConstraint = iSoftmaxTileConstraint()) -SnitchiNoNormTilingReadyBindings = TilingReadyNodeBindings(nodeBindings = SnitchiNoNormBindings, - tileConstraint = iNoNormTileConstraint()) -SnitchRQAddTilingReadyBindings = TilingReadyNodeBindings(nodeBindings = SnitchRQAddBindings, - tileConstraint = AddTileConstraint()) -SnitchGemmTilingReadyBindings = TilingReadyNodeBindings(nodeBindings = SnitchGemmBindings, - tileConstraint = GemmTileConstraint()) -SnitchRqGemmTilingReadyBindings = TilingReadyNodeBindings(nodeBindings = SnitchRqGemmBindings, - tileConstraint = RqGemmTileConstraint()) +SnitchiSoftmaxTilingReadyBindings = TilingReadyNodeBindings(nodeBindings=SnitchiSoftmaxBindings, + tileConstraint=iSoftmaxTileConstraint()) +SnitchiNoNormTilingReadyBindings = TilingReadyNodeBindings(nodeBindings=SnitchiNoNormBindings, + tileConstraint=iNoNormTileConstraint()) +SnitchRQAddTilingReadyBindings = TilingReadyNodeBindings(nodeBindings=SnitchRQAddBindings, + tileConstraint=AddTileConstraint()) +SnitchGemmTilingReadyBindings = TilingReadyNodeBindings(nodeBindings=SnitchGemmBindings, + tileConstraint=GemmTileConstraint()) +SnitchRqGemmTilingReadyBindings = TilingReadyNodeBindings(nodeBindings=SnitchRqGemmBindings, + tileConstraint=RqGemmTileConstraint()) -SnitchAddTileReadyBindings = TilingReadyNodeBindings(nodeBindings = SnitchAddBindings, - tileConstraint = AddTileConstraint()) +SnitchAddTileReadyBindings = TilingReadyNodeBindings(nodeBindings=SnitchAddBindings, tileConstraint=AddTileConstraint()) -SnitchRMSNormTilingReadyBindings = TilingReadyNodeBindings(nodeBindings = SnitchRMSNormBindings, - tileConstraint = iRMSNormTileConstraint()) +SnitchRMSNormTilingReadyBindings = TilingReadyNodeBindings(nodeBindings=SnitchRMSNormBindings, + tileConstraint=iRMSNormTileConstraint()) -SnitchHardSwishTilingReadyBindings = TilingReadyNodeBindings(nodeBindings = SnitchHardSwishBindings, - tileConstraint = iHardswishTileConstraint()) +SnitchHardSwishTilingReadyBindings = TilingReadyNodeBindings(nodeBindings=SnitchHardSwishBindings, + tileConstraint=iHardswishTileConstraint()) -SnitchDivTilingReadyBindings = TilingReadyNodeBindings(nodeBindings = SnitchDivBindings, - tileConstraint = FloatDivTileConstraint()) +SnitchDivTilingReadyBindings = TilingReadyNodeBindings(nodeBindings=SnitchDivBindings, + tileConstraint=FloatDivTileConstraint()) -SnitchMulTilingReadyBindings = TilingReadyNodeBindings(nodeBindings = SnitchMulBindings, - tileConstraint = FloatMulTileConstraint()) +SnitchMulTilingReadyBindings = TilingReadyNodeBindings(nodeBindings=SnitchMulBindings, + tileConstraint=FloatMulTileConstraint()) -SnitchMatMulTilingReadyBindings = TilingReadyNodeBindings(nodeBindings = SnitchMatMulBindings, - tileConstraint = MatMulTileConstraint()) +SnitchMatMulTilingReadyBindings = TilingReadyNodeBindings(nodeBindings=SnitchMatMulBindings, + tileConstraint=MatMulTileConstraint()) -SnitchConcatTilingReadyBindings = TilingReadyNodeBindings(nodeBindings = SnitchConcatBindings, - tileConstraint = ConcatTileConstraint()) +SnitchConcatTilingReadyBindings = TilingReadyNodeBindings(nodeBindings=SnitchConcatBindings, + tileConstraint=ConcatTileConstraint()) -SnitchTransposeTilingReadyBindings = TilingReadyNodeBindings(nodeBindings = SnitchTransposeBindings, - tileConstraint = TransposeTileConstraint()) +SnitchTransposeTilingReadyBindings = TilingReadyNodeBindings(nodeBindings=SnitchTransposeBindings, + tileConstraint=TransposeTileConstraint()) -SnitchReshapeTilingReadyBindings = TilingReadyNodeBindings(nodeBindings = SnitchReshapeBindings, - tileConstraint = ReshapeTileConstraint()) +SnitchReshapeTilingReadyBindings = TilingReadyNodeBindings(nodeBindings=SnitchReshapeBindings, + tileConstraint=ReshapeTileConstraint()) -SnitchGatherTilingReadyBindings = TilingReadyNodeBindings(nodeBindings = SnitchGatherBindings, - tileConstraint = GatherTileConstraint()) +SnitchGatherTilingReadyBindings = TilingReadyNodeBindings(nodeBindings=SnitchGatherBindings, + tileConstraint=GatherTileConstraint()) From d76f6f1fcdea82b06b12c19ca358e94fb5ad858d Mon Sep 17 00:00:00 2001 From: lee2716 Date: Thu, 5 Feb 2026 15:28:54 +0100 Subject: [PATCH 23/57] refactor: restore Snitch framework code to origin/devel Restore framework infrastructure files to match origin/devel: - SnitchClusterTiling.py, SnitchDma.py, Deployer.py - typeMapping.py, simulation.cmake - CycleCounter.c, macros.h, MatMul.h, RQMatMul.h Keep kernel-related additions (new bindings in Bindings.py). Add hasattr compatibility check in DeeployTypes.py for different onnx-graphsurgeon versions. --- Deeploy/DeeployTypes.py | 7 ++++++ Deeploy/Targets/Snitch/Bindings.py | 13 +++++----- .../SnitchClusterTiling.py | 24 ++++--------------- Deeploy/Targets/Snitch/DMA/SnitchDma.py | 2 +- Deeploy/Targets/Snitch/Deployer.py | 10 ++++---- DeeployTest/testUtils/typeMapping.py | 6 +---- TargetLibraries/Snitch/inc/kernel/MatMul.h | 10 ++++---- TargetLibraries/Snitch/inc/kernel/RQMatMul.h | 14 ++++++----- TargetLibraries/Snitch/inc/macros.h | 9 ------- TargetLibraries/Snitch/src/CycleCounter.c | 19 ++------------- 10 files changed, 40 insertions(+), 74 deletions(-) diff --git a/Deeploy/DeeployTypes.py b/Deeploy/DeeployTypes.py index d9d768fabc..5349748453 100644 --- a/Deeploy/DeeployTypes.py +++ b/Deeploy/DeeployTypes.py @@ -3105,9 +3105,16 @@ def _exportGraph(self, folderPath, fileName): raise OSError(f"Error exporting the context to: {absoluteOnnxPath}") # VJUNG: ONNX-Graphsurgeon needs tensors to be in their export types +<<<<<<< HEAD constTensors = [tensor for tensor in self.graph.tensors().values() if isinstance(tensor, gs.Constant)] for tensor in constTensors: if tensor.dtype != tensor.export_dtype: +======= + # Added hasattr check for compatibility with different onnx-graphsurgeon versions + constTensors = [tensor for tensor in self.graph.tensors().values() if isinstance(tensor, gs.Constant)] + for tensor in constTensors: + if hasattr(tensor, 'export_dtype') and tensor.dtype != tensor.export_dtype: +>>>>>>> 937e3cb3 (refactor: restore Snitch framework code to origin/devel) tensor.values = tensor.values.astype(tensor.export_dtype) model = gs.export_onnx(self.graph) diff --git a/Deeploy/Targets/Snitch/Bindings.py b/Deeploy/Targets/Snitch/Bindings.py index 7b77a9adea..023c21348b 100644 --- a/Deeploy/Targets/Snitch/Bindings.py +++ b/Deeploy/Targets/Snitch/Bindings.py @@ -31,11 +31,11 @@ from Deeploy.TilingExtension.CodeTransformationPasses.TilingVariableReplacement import TilingVariableReplacement, \ TilingVariableReplacementUpdate -TilingCallClosure = partial(ClosureGeneration, closureSuffix="_tiling_closure") +TilingCallClosure = partial(ClosureGeneration, closureSuffix = "_tiling_closure") MemoryAwareFunctionCallClosure = partial(MemoryAwareClosureGeneration, - closureSuffix="_closure", - startRegion="L2", - endRegion="L1") + closureSuffix = "_closure", + startRegion = "L2", + endRegion = "L1") BasicTransformer = CodeTransformation( [SnitchSynchCoresPass(), @@ -46,14 +46,13 @@ TiledTransformer = CodeTransformation([ SnitchCoreFilterPass("compute"), TilingVariableReplacement("L1"), - TilingCallClosure(writeback=False), + TilingCallClosure(writeback = False), SnitchSynchCoresPass(), TilingVariableReplacementUpdate("L1"), SnitchClusterTiling("L2", "L1", SnitchDma()), ArgumentStructGeneration(), MemoryManagementGeneration("L1"), - MemoryAwareFunctionCallClosure(writeback=False, generateStruct=True), - MemoryManagementGeneration("L2"), + MemoryAwareFunctionCallClosure(writeback = False, generateStruct = True), MemoryManagementGeneration() ]) diff --git a/Deeploy/Targets/Snitch/CodeTransformationPasses/SnitchClusterTiling.py b/Deeploy/Targets/Snitch/CodeTransformationPasses/SnitchClusterTiling.py index a3e10ed188..e8204f6ae2 100644 --- a/Deeploy/Targets/Snitch/CodeTransformationPasses/SnitchClusterTiling.py +++ b/Deeploy/Targets/Snitch/CodeTransformationPasses/SnitchClusterTiling.py @@ -23,31 +23,15 @@ class SnitchClusterTilingDB(DoubleBufferingTilingCodeGeneration): class ProfilingSnitchClusterTilingSB(SingleBufferingTilingCodeGeneration, ProfilingSingleBufferingTilingMixIn): _printCycleDifference = NodeTemplate(r""" - printf("%s%u][Core %d] %s%6u%s", ${prefixStr}, ${profileIdxVar}, snrt_global_core_idx(), "${flavorStr}", \ - ${measurement}, ${suffixStr}); - """) - - _printCycleContribution = NodeTemplate(r""" - uint32_t total = ${measurementInput} + ${measurementKernel} + ${measurementOutput}; - uint32_t dma = ${measurementInput} + ${measurementOutput}; - float overhead_percentage = (total == 0) ? 0 : dma * 100.0f / total; - float kernel_percentage = (total == 0) ? 0 : ${measurementKernel} * 100.0f / total; - printf("%s%u][Core %d] Total :%6u cycles (%2.1f%% Kernel + %2.1f%% Overhead, %u + %u)\n", ${prefixStr}, ${profileIdxVar}, snrt_global_core_idx(), total, kernel_percentage, overhead_percentage, ${measurementKernel}, dma); + printf("%s%u][Core %d] %s%u%s", ${prefixStr}, ${profileIdxVar}, snrt_global_core_idx(), "${flavorStr}", \ + ${measurementsEnd}[${profileIdxVar}] - ${measurementsStart}[${profileIdxVar}], ${suffixStr}); """) class ProfilingSnitchClusterTilingDB(DoubleBufferingTilingCodeGeneration, ProfilingDoubleBufferingTilingMixIn): _printCycleDifference = NodeTemplate(r""" - printf("%s%u][Core %d] %s%6u%s", ${prefixStr}, ${profileIdxVar}, snrt_global_core_idx(), "${flavorStr}", \ - ${measurement}, ${suffixStr}); - """) - - _printCycleContribution = NodeTemplate(r""" - uint32_t total = ${measurementInput} + ${measurementKernel} + ${measurementOutput}; - uint32_t dma = ${measurementInput} + ${measurementOutput}; - float overhead_percentage = (total == 0) ? 0 : dma * 100.0f / total; - float kernel_percentage = (total == 0) ? 0 : ${measurementKernel} * 100.0f / total; - printf("%s%u][Core %d] Total :%6u cycles (%2.1f%% Kernel + %2.1f%% Overhead, %u + %u)\n", ${prefixStr}, ${profileIdxVar}, snrt_global_core_idx(), total, kernel_percentage, overhead_percentage, ${measurementKernel}, dma); + printf("%s%u][Core %d] %s%u%s", ${prefixStr}, ${profileIdxVar}, snrt_global_core_idx(), "${flavorStr}", \ + ${measurementsEnd}[${profileIdxVar}] - ${measurementsStart}[${profileIdxVar}], ${suffixStr}); """) diff --git a/Deeploy/Targets/Snitch/DMA/SnitchDma.py b/Deeploy/Targets/Snitch/DMA/SnitchDma.py index 70381aa72f..ac0c622cc8 100644 --- a/Deeploy/Targets/Snitch/DMA/SnitchDma.py +++ b/Deeploy/Targets/Snitch/DMA/SnitchDma.py @@ -31,7 +31,7 @@ class SnitchDma(AsyncDma): _transferTemplates = { 2: - NodeTemplate(""" + NodeTemplate(""" if (snrt_is_dm_core()) { ${future} = snrt_dma_start_2d(${dest}, ${src}, ${size}, ${stride_dest}, ${stride_src}, ${repeat}); // WIESEP: Hack as otherwise the last commited DMA transaction ID can never be resolved. diff --git a/Deeploy/Targets/Snitch/Deployer.py b/Deeploy/Targets/Snitch/Deployer.py index 6b325cebe1..7c3922a6bb 100644 --- a/Deeploy/Targets/Snitch/Deployer.py +++ b/Deeploy/Targets/Snitch/Deployer.py @@ -24,18 +24,18 @@ def __init__(self, loweringOptimizer: TopologyOptimizer, scheduler: Callable = lambda x: x, name: str = 'DeeployNetwork', - default_channels_first=False, + default_channels_first = False, deeployStateDir: str = "DeeployStateDir", - inputOffsets={}): + inputOffsets = {}): super().__init__(graph, deploymentPlatform, inputTypes, loweringOptimizer, scheduler, name, - default_channels_first=default_channels_first, - deeployStateDir=deeployStateDir, - inputOffsets=inputOffsets) + default_channels_first = default_channels_first, + deeployStateDir = deeployStateDir, + inputOffsets = inputOffsets) self.loweringOptimizer.passes += [ TransposeMatmulInputsPass(), diff --git a/DeeployTest/testUtils/typeMapping.py b/DeeployTest/testUtils/typeMapping.py index b6851dec7e..232fd1e274 100644 --- a/DeeployTest/testUtils/typeMapping.py +++ b/DeeployTest/testUtils/typeMapping.py @@ -48,11 +48,7 @@ def inferMinimalType(values: np.ndarray, default: Type[BaseType] = int8_t) -> Ty print(f"Warning: Empty input array for type inference for {values}!") return default - # First check the numpy dtype - if it's a float type, use float even if values are integer-like - # This handles cases like [0.0, 0.0] which would otherwise be incorrectly typed as uint8_t - if np.issubdtype(values.dtype, np.floating): - return minimalFloatType(values) - elif isInteger(values): + if isInteger(values): return minimalIntegerType(values) else: return minimalFloatType(values) diff --git a/TargetLibraries/Snitch/inc/kernel/MatMul.h b/TargetLibraries/Snitch/inc/kernel/MatMul.h index 497378429f..d4b9ba71ca 100644 --- a/TargetLibraries/Snitch/inc/kernel/MatMul.h +++ b/TargetLibraries/Snitch/inc/kernel/MatMul.h @@ -68,10 +68,12 @@ void MatMul_offset_unrolled_2x2_parallel_s8_rv32im( int32_t A_offset, int32_t B_offset, int32_t output_offset); // Mapper Functions -static inline void __attribute__((always_inline)) MatMul_parallel_s8( - int8_t const *__restrict__ pSrcA, int8_t const *__restrict__ pSrcB, - int32_t *__restrict__ pDstC, uint32_t M, uint32_t N, uint32_t P, - int32_t A_offset, int32_t B_offset, int32_t output_offset) { +static inline void __attribute__((always_inline)) +MatMul_parallel_s8(int8_t const *__restrict__ pSrcA, + int8_t const *__restrict__ pSrcB, + int32_t *__restrict__ pDstC, uint32_t M, uint32_t N, + uint32_t P, int32_t A_offset, int32_t B_offset, + int32_t output_offset) { MatMul_parallel_s8_rv32im(pSrcA, pSrcB, pDstC, M, N, P, A_offset, B_offset, output_offset); } diff --git a/TargetLibraries/Snitch/inc/kernel/RQMatMul.h b/TargetLibraries/Snitch/inc/kernel/RQMatMul.h index a95f5df521..c58e25d516 100644 --- a/TargetLibraries/Snitch/inc/kernel/RQMatMul.h +++ b/TargetLibraries/Snitch/inc/kernel/RQMatMul.h @@ -75,12 +75,14 @@ void RQMatMul_offset_unrolled_2x2_parallel_s8_rv32im( int32_t output_offset); // Mapper Functions -static inline void __attribute__((always_inline)) RQMatMul_parallel_s8( - int8_t const *__restrict__ pSrcA, int8_t const *__restrict__ pSrcB, - int8_t *__restrict__ pDstC, uint32_t M, uint32_t N, uint32_t P, - int32_t *mul, int32_t *add, int32_t log2D, bool rounding, - bool per_row_quant, int32_t A_offset, int32_t B_offset, - int32_t output_offset, int8_t output_min, int8_t output_max) { +static inline void __attribute__((always_inline)) +RQMatMul_parallel_s8(int8_t const *__restrict__ pSrcA, + int8_t const *__restrict__ pSrcB, + int8_t *__restrict__ pDstC, uint32_t M, uint32_t N, + uint32_t P, int32_t *mul, int32_t *add, int32_t log2D, + bool rounding, bool per_row_quant, int32_t A_offset, + int32_t B_offset, int32_t output_offset, int8_t output_min, + int8_t output_max) { RQMatMul_parallel_s8_rv32im(pSrcA, pSrcB, pDstC, M, N, P, mul, add, log2D, rounding, per_row_quant, A_offset, B_offset, output_offset, output_min, output_max); diff --git a/TargetLibraries/Snitch/inc/macros.h b/TargetLibraries/Snitch/inc/macros.h index 04bef2394b..bc1191d25a 100644 --- a/TargetLibraries/Snitch/inc/macros.h +++ b/TargetLibraries/Snitch/inc/macros.h @@ -8,19 +8,10 @@ #define __DEEPLOY_MATH_MACROS_HEADER_ #define INT_LOG2(x) __builtin_ctz(x) - -#ifndef CLAMP #define CLAMP(x, low, high) \ (((x) > (high)) ? (high) : (((x) < (low)) ? (low) : (x))) -#endif - -#ifndef MIN #define MIN(a, b) ((a) < (b) ? (a) : (b)) -#endif - -#ifndef MAX #define MAX(a, b) ((a) > (b) ? (a) : (b)) -#endif // JUNGVI: The following macros are here to ensure compatibility with some // PULP-NN kernels diff --git a/TargetLibraries/Snitch/src/CycleCounter.c b/TargetLibraries/Snitch/src/CycleCounter.c index 8a99c312e6..3861c421c1 100644 --- a/TargetLibraries/Snitch/src/CycleCounter.c +++ b/TargetLibraries/Snitch/src/CycleCounter.c @@ -6,15 +6,10 @@ #include "DeeploySnitchMath.h" -// Define ENABLE_INSTR_COUNTER to enable instruction counting (causes warnings -// in gvsoc) #define ENABLE_INSTR_COUNTER - static uint32_t timer_init[NUM_CORES] __attribute__((section(".l1"))); static uint32_t timer_end[NUM_CORES] __attribute__((section(".l1"))); -#ifdef ENABLE_INSTR_COUNTER static uint32_t instr_init[NUM_CORES] __attribute__((section(".l1"))); static uint32_t instr_end[NUM_CORES] __attribute__((section(".l1"))); -#endif static uint32_t running[NUM_CORES] __attribute__((section(".l1"))); @@ -22,13 +17,11 @@ void ResetTimer() { snrt_reset_perf_counter(SNRT_PERF_CNT0); uint32_t const core_id = snrt_global_core_idx(); uint32_t _timer_init = read_csr(mcycle); - timer_init[core_id] = _timer_init; - timer_end[core_id] = _timer_init; -#ifdef ENABLE_INSTR_COUNTER uint32_t _instr_init = read_csr(minstret); + timer_init[core_id] = _timer_init; instr_init[core_id] = _instr_init; + timer_end[core_id] = _timer_init; instr_end[core_id] = _instr_init; -#endif running[core_id] = 0; } @@ -38,9 +31,7 @@ void StartTimer() { } uint32_t const core_id = snrt_global_core_idx(); timer_init[core_id] = read_csr(mcycle); -#ifdef ENABLE_INSTR_COUNTER instr_init[core_id] = read_csr(minstret); -#endif running[core_id] = 1; } @@ -50,9 +41,7 @@ void StopTimer() { } uint32_t const core_id = snrt_global_core_idx(); timer_end[core_id] = read_csr(mcycle); -#ifdef ENABLE_INSTR_COUNTER instr_end[core_id] = read_csr(minstret); -#endif running[core_id] = 0; } @@ -66,7 +55,6 @@ uint32_t getCycles() { } uint32_t getInstr(void) { -#ifdef ENABLE_INSTR_COUNTER uint32_t const core_id = snrt_global_core_idx(); if (running[core_id]) { @@ -74,7 +62,4 @@ uint32_t getInstr(void) { } else { return instr_end[core_id] - instr_init[core_id]; } -#else - return 0; // Instruction counting disabled -#endif } \ No newline at end of file From 1c62b683a5f1c53b440786995aae9f258b285f64 Mon Sep 17 00:00:00 2001 From: lee2716 Date: Thu, 5 Feb 2026 15:48:50 +0100 Subject: [PATCH 24/57] fix: Reshape operator for Snitch platform - Fix RemoveGlobalOutputReshapePass to not delete single-node graphs - Add multi-core parallel Reshape template with aliases support --- .../LoweringOptimizationPasses.py | 4 +- .../Snitch/Templates/ReshapeTemplate.py | 58 +++++++++++++++++-- 2 files changed, 57 insertions(+), 5 deletions(-) diff --git a/Deeploy/CommonExtensions/OptimizationPasses/TopologyOptimizationPasses/LoweringOptimizationPasses.py b/Deeploy/CommonExtensions/OptimizationPasses/TopologyOptimizationPasses/LoweringOptimizationPasses.py index aba6740d49..91f08e887f 100644 --- a/Deeploy/CommonExtensions/OptimizationPasses/TopologyOptimizationPasses/LoweringOptimizationPasses.py +++ b/Deeploy/CommonExtensions/OptimizationPasses/TopologyOptimizationPasses/LoweringOptimizationPasses.py @@ -488,7 +488,9 @@ def _remove_global_output_reshape_fun(graph: gs.Graph, match: Match, name: str): node = next(iter((match.nodes_map.values()))) isGlobalOutput = len(node.outputs[0].outputs) == 0 - if isGlobalOutput: + # Don't delete if the input is also a global input (i.e., single-node graph) + isGlobalInput = node.inputs[0] in graph.inputs + if isGlobalOutput and not isGlobalInput: graph.deleteNode(node) return graph diff --git a/Deeploy/Targets/Snitch/Templates/ReshapeTemplate.py b/Deeploy/Targets/Snitch/Templates/ReshapeTemplate.py index 487503d4f6..899d948edf 100644 --- a/Deeploy/Targets/Snitch/Templates/ReshapeTemplate.py +++ b/Deeploy/Targets/Snitch/Templates/ReshapeTemplate.py @@ -2,10 +2,60 @@ # # SPDX-License-Identifier: Apache-2.0 -from Deeploy.Targets.Generic.Templates.ReshapeTemplate import _ReshapeTemplate +from typing import Dict, List, Tuple -# Use snrt_cluster_core_idx() == 0 instead of SINGLE_CORE macro to avoid core_id dependency -referenceTemplate = _ReshapeTemplate(""" +import numpy as np + +from Deeploy.DeeployTypes import NetworkContext, NodeTemplate, OperatorRepresentation, VariableBuffer + + +class _SnitchReshapeTemplate(NodeTemplate): + + def __init__(self, templateStr): + super().__init__(templateStr) + + def alignToContext(self, ctxt: NetworkContext, + operatorRepresentation: OperatorRepresentation) -> Tuple[NetworkContext, Dict, List[str]]: + + # Mark 'indices' as not deployed (for Gather-like ops) + if 'indices' in operatorRepresentation.keys(): + ctxt.globalObjects[operatorRepresentation['indices']]._deploy = False + ctxt.globalObjects[operatorRepresentation['indices']]._live = False + + # Mark "shape" as not deployed + if "shape" in operatorRepresentation.keys(): + ctxt.globalObjects[operatorRepresentation["shape"]]._deploy = False + ctxt.globalObjects[operatorRepresentation["shape"]]._live = False + + bufferIn = ctxt.lookup(operatorRepresentation['data_in']) + assert isinstance(bufferIn, VariableBuffer) + bufferOut = ctxt.lookup(operatorRepresentation['data_out']) + assert isinstance(bufferOut, VariableBuffer) + + # Link aliases to each buffer (for zero-copy when possible) + bufferIn.aliases.add(bufferOut.name) + bufferOut.aliases.add(bufferIn.name) + + # Calculate size for data copy + operatorRepresentation['size'] = int(np.prod(bufferIn.shape)) + + return ctxt, operatorRepresentation, [] + + +# Reshape uses multi-core parallel copy +# When aliases work (internal nodes), this copies between same memory (no-op effect) +# When aliases don't work (global I/O), this copies data correctly +referenceTemplate = _SnitchReshapeTemplate(""" // Reshape (Name: ${nodeName}, Op: ${nodeOp}) -if (snrt_cluster_core_idx() == 0) { ${data_out} = ${data_in}; } +{ + uint32_t core_id = snrt_cluster_core_idx(); + uint32_t num_cores = snrt_cluster_compute_core_num(); + uint32_t total = ${size}; + uint32_t chunk = total / num_cores; + uint32_t start = core_id * chunk; + uint32_t end = (core_id == num_cores - 1) ? total : start + chunk; + for (uint32_t i = start; i < end; i++) { + ${data_out}[i] = ${data_in}[i]; + } +} """) From 32d4bfa36eca9327c0087921e242a129cd730450 Mon Sep 17 00:00:00 2001 From: lee2716 Date: Thu, 5 Feb 2026 16:15:10 +0100 Subject: [PATCH 25/57] fix: Add broadcasting support and compatible type inference - Use SnitchAddParser instead of generic AddParser in Snitch Platform to enable broadcasting support for Add operations - Fix type inference to handle ambiguous zero values by respecting original numpy dtype --- Deeploy/Targets/Snitch/Platform.py | 12 ++++++------ DeeployTest/testUtils/typeMapping.py | 5 +++++ 2 files changed, 11 insertions(+), 6 deletions(-) diff --git a/Deeploy/Targets/Snitch/Platform.py b/Deeploy/Targets/Snitch/Platform.py index a056f72156..a8ce08b937 100644 --- a/Deeploy/Targets/Snitch/Platform.py +++ b/Deeploy/Targets/Snitch/Platform.py @@ -14,9 +14,9 @@ from Deeploy.Targets.Generic.Layers import AddLayer, ConcatLayer, DivLayer, GatherLayer, GEMMLayer, HardSwishLayer, \ LayerNormLayer, MatMulLayer, MulLayer, PadLayer, ReshapeLayer, RMSNormLayer, RQGEMMLayer, RQIntegerDivLayer, \ SoftmaxLayer, TransposeLayer, iNoNormLayer -from Deeploy.Targets.Generic.Parsers import AddParser, ConcatParser, GatherParser, MatMulParser, Pad1DParser, \ - Pad2DParser, ReshapeParser, RQAddParser, RQIntegerDivParser, SoftmaxParser, TransposeParser, UnsqueezeParser, \ - iLayerNormParser, iNoNormParser, iSoftmaxParser +from Deeploy.Targets.Generic.Parsers import ConcatParser, GatherParser, MatMulParser, Pad1DParser, Pad2DParser, \ + ReshapeParser, RQAddParser, RQIntegerDivParser, SoftmaxParser, TransposeParser, UnsqueezeParser, iLayerNormParser, \ + iNoNormParser, iSoftmaxParser from Deeploy.Targets.Generic.Templates import AllocateTemplate as BasicAllocateTemplate from Deeploy.Targets.Generic.TopologyOptimizationPasses.Passes import AddRequantMergePass, GEMMRequantMergePass, \ IntegerDivRequantMergePass, MergeConstAddAndRequantPass, MergeTrueIntegerDivRequantShiftPass, RQSSplitPass, \ @@ -25,8 +25,8 @@ from Deeploy.Targets.Snitch.Bindings import BasicDivBindings, BasicHardSwishBindings, BasicMulBindings, \ BasicRMSNormBindings, BasicSnitchTransposeBindings, SnitchAddBindings, SnitchGemmBindings, SnitchiNoNormBindings, \ SnitchiSoftmaxBindings, SnitchRQAddBindings, SnitchRqGemmBindings -from Deeploy.Targets.Snitch.Parsers import HardSwishParser, SnitchDivParser, SnitchGEMMParser, SnitchMulParser, \ - SnitchRMSNormParser, SnitchRQGEMMParser +from Deeploy.Targets.Snitch.Parsers import HardSwishParser, SnitchAddParser, SnitchDivParser, SnitchGEMMParser, \ + SnitchMulParser, SnitchRMSNormParser, SnitchRQGEMMParser from Deeploy.Targets.Snitch.Templates import AllocateTemplate, FreeTemplate from Deeploy.Targets.Snitch.Tiler import SnitchAddTileReadyBindings, SnitchConcatTilingReadyBindings, \ SnitchDivTilingReadyBindings, SnitchGatherTilingReadyBindings, SnitchGemmTilingReadyBindings, \ @@ -59,7 +59,7 @@ SoftmaxMapper = NodeMapper(SoftmaxParser(), SnitchiSoftmaxTilingReadyBindings) iNoNormMapper = NodeMapper(iNoNormParser(), SnitchiNoNormTilingReadyBindings) RQAddMapper = NodeMapper(RQAddParser(), SnitchRQAddTilingReadyBindings) -AddMapper = NodeMapper(AddParser(), SnitchAddTileReadyBindings) +AddMapper = NodeMapper(SnitchAddParser(), SnitchAddTileReadyBindings) RMSNormMapper = NodeMapper(SnitchRMSNormParser(), SnitchRMSNormTilingReadyBindings) HardSwishMapper = NodeMapper(HardSwishParser(), SnitchHardSwishTilingReadyBindings) DivMapper = NodeMapper(SnitchDivParser(), SnitchDivTilingReadyBindings) diff --git a/DeeployTest/testUtils/typeMapping.py b/DeeployTest/testUtils/typeMapping.py index 232fd1e274..abb9edddf7 100644 --- a/DeeployTest/testUtils/typeMapping.py +++ b/DeeployTest/testUtils/typeMapping.py @@ -39,6 +39,11 @@ def parseDataType(name: str) -> type: def isInteger(x: npt.NDArray) -> bool: + # If all values are zero, respect the original numpy dtype (ambiguous case) + if np.all(x == 0): + return np.issubdtype(x.dtype, np.integer) + # If any value has non-zero fractional part, it's float + # Otherwise (all values are integers like 1.0, 2.0), it's integer return np.abs((x.astype(int) - x)).max() <= 0.001 From 66c4b4ff9d51714c10f7bd2aef2ab01c901c982e Mon Sep 17 00:00:00 2001 From: lee2716 Date: Thu, 5 Feb 2026 17:03:48 +0100 Subject: [PATCH 26/57] make format update --- .yamllint | 2 + Deeploy/Targets/Generic/Parsers.py | 10 +- Deeploy/Targets/Snitch/Platform.py | 30 +- .../TileConstraints/FloatDivTileConstraint.py | 12 +- .../TileConstraints/FloatMulTileConstraint.py | 12 +- .../TileConstraints/GemmTileConstraint.py | 38 +- .../TileConstraints/ReshapeTileConstraint.py | 2 +- .../TileConstraints/RqGemmTileConstraint.py | 50 +- .../TileConstraints/iNoNormTileConstraint.py | 11 +- .../TileConstraints/iSoftmaxTileConstraint.py | 6 +- Deeploy/Targets/Snitch/Tiler.py | 59 +- DeeployTest/test_platforms.py | 594 +++++++++--------- .../Snitch/src/snitch_nn_add_i8_i8_i8.c | 12 +- 13 files changed, 422 insertions(+), 416 deletions(-) diff --git a/.yamllint b/.yamllint index ca8d1f606b..8156f0b8e2 100644 --- a/.yamllint +++ b/.yamllint @@ -31,3 +31,5 @@ ignore: - "**/toolchain/" # Ignore all files in .git - "**/.git/**" + # Ignore all files in .venv + - "**/.venv/" diff --git a/Deeploy/Targets/Generic/Parsers.py b/Deeploy/Targets/Generic/Parsers.py index 47b7e3b2dc..adde7760c1 100644 --- a/Deeploy/Targets/Generic/Parsers.py +++ b/Deeploy/Targets/Generic/Parsers.py @@ -514,8 +514,9 @@ def parseNodeCtxt(self, if i == ndim - 1: strides1[i] = 1 else: - strides1[i] = strides1[i + 1] * padded_shape1[i + 1] if ( - padded_shape1[i + 1] == out_shape[i + 1]) else strides1[i + 1] + strides1[i] = strides1[i + 1] * padded_shape1[i + 1] if (padded_shape1[i + 1] + == out_shape[i + 1]) else strides1[i + + 1] else: strides1[i] = 0 # Broadcast dimension @@ -526,8 +527,9 @@ def parseNodeCtxt(self, if i == ndim - 1: strides2[i] = 1 else: - strides2[i] = strides2[i + 1] * padded_shape2[i + 1] if ( - padded_shape2[i + 1] == out_shape[i + 1]) else strides2[i + 1] + strides2[i] = strides2[i + 1] * padded_shape2[i + 1] if (padded_shape2[i + 1] + == out_shape[i + 1]) else strides2[i + + 1] else: strides2[i] = 0 # Broadcast dimension diff --git a/Deeploy/Targets/Snitch/Platform.py b/Deeploy/Targets/Snitch/Platform.py index a8ce08b937..1a3ae0ed66 100644 --- a/Deeploy/Targets/Snitch/Platform.py +++ b/Deeploy/Targets/Snitch/Platform.py @@ -9,8 +9,8 @@ from Deeploy.AbstractDataTypes import Pointer, PointerClass, VoidType from Deeploy.DeeployTypes import ConstantBuffer, DeploymentEngine, DeploymentPlatform, NodeMapper, NodeTemplate, \ StructBuffer, TopologyOptimizer, TransientBuffer, VariableBuffer -from Deeploy.Targets.Generic.Bindings import BasicConcatBindings, BasicGatherBindings, BasicLayerNormBindings, \ - BasicMatMulBindings, BasicPad1DBindings, BasicPad2DBindings, BasicReshapeBindings, BasicRQIntegerDivBinding +from Deeploy.Targets.Generic.Bindings import BasicConcatBindings, BasicLayerNormBindings, BasicPad1DBindings, \ + BasicPad2DBindings, BasicReshapeBindings, BasicRQIntegerDivBinding from Deeploy.Targets.Generic.Layers import AddLayer, ConcatLayer, DivLayer, GatherLayer, GEMMLayer, HardSwishLayer, \ LayerNormLayer, MatMulLayer, MulLayer, PadLayer, ReshapeLayer, RMSNormLayer, RQGEMMLayer, RQIntegerDivLayer, \ SoftmaxLayer, TransposeLayer, iNoNormLayer @@ -22,9 +22,7 @@ IntegerDivRequantMergePass, MergeConstAddAndRequantPass, MergeTrueIntegerDivRequantShiftPass, RQSSplitPass, \ SkipEmptyConcatPass, SkipUnityRequantPass, iGELURequantMergePass, iHardswishRequantMergePass from Deeploy.Targets.PULPOpen.Platform import RQAddMapper -from Deeploy.Targets.Snitch.Bindings import BasicDivBindings, BasicHardSwishBindings, BasicMulBindings, \ - BasicRMSNormBindings, BasicSnitchTransposeBindings, SnitchAddBindings, SnitchGemmBindings, SnitchiNoNormBindings, \ - SnitchiSoftmaxBindings, SnitchRQAddBindings, SnitchRqGemmBindings +from Deeploy.Targets.Snitch.Bindings import BasicSnitchTransposeBindings from Deeploy.Targets.Snitch.Parsers import HardSwishParser, SnitchAddParser, SnitchDivParser, SnitchGEMMParser, \ SnitchMulParser, SnitchRMSNormParser, SnitchRQGEMMParser from Deeploy.Targets.Snitch.Templates import AllocateTemplate, FreeTemplate @@ -135,7 +133,7 @@ class SnitchConstantBuffer(ConstantBuffer): allocTemplate = AllocateTemplate.snitchL2GlobalAllocateTemplate deallocTemplate = FreeTemplate.snitchL2GlobalTemplate - def __init__(self, name: str = '', shape=[1], values=[0]): + def __init__(self, name: str = '', shape = [1], values = [0]): super().__init__(name, shape, values) # Initialize _type with a default value to prevent AttributeError # The actual type will be set later via annotateType @@ -163,9 +161,9 @@ class SnitchStructBuffer(StructBuffer): SnitchOptimizer = TopologyOptimizer([ SkipEmptyConcatPass(), - SkipUnityRequantPass(previous_op_regex="Concat", num_inputs=2), - SkipUnityRequantPass(previous_op_regex="Reshape|Transpose", num_inputs=1), - SkipUnityRequantPass(previous_op_regex="Reshape|Transpose", num_inputs=1), + SkipUnityRequantPass(previous_op_regex = "Concat", num_inputs = 2), + SkipUnityRequantPass(previous_op_regex = "Reshape|Transpose", num_inputs = 1), + SkipUnityRequantPass(previous_op_regex = "Reshape|Transpose", num_inputs = 1), RQSSplitPass(), MergeTrueIntegerDivRequantShiftPass(), IntegerDivRequantMergePass(), @@ -175,7 +173,7 @@ class SnitchStructBuffer(StructBuffer): AddRequantMergePass(), GEMMRequantMergePass(), ], - name="SnitchOptimizer") + name = "SnitchOptimizer") _includeList = [ "snrt.h", @@ -185,17 +183,17 @@ class SnitchStructBuffer(StructBuffer): class SnitchClusterEngine(DeploymentEngine): - def __init__(self, name: str, Mapping=SnitchMapping, initCode="", includeList=_includeList) -> None: + def __init__(self, name: str, Mapping = SnitchMapping, initCode = "", includeList = _includeList) -> None: super().__init__(name, Mapping, initCode, includeList) class SnitchPlatform(DeploymentPlatform): def __init__(self, - engines=[SnitchClusterEngine("SnitchCluster")], - variableBuffer=SnitchVariableBuffer, - constantBuffer=SnitchConstantBuffer, - structBuffer=SnitchStructBuffer, - transientBuffer=SnitchTransientBuffer, + engines = [SnitchClusterEngine("SnitchCluster")], + variableBuffer = SnitchVariableBuffer, + constantBuffer = SnitchConstantBuffer, + structBuffer = SnitchStructBuffer, + transientBuffer = SnitchTransientBuffer, includeList: List[str] = _includeList): super().__init__(engines, variableBuffer, constantBuffer, structBuffer, transientBuffer) diff --git a/Deeploy/Targets/Snitch/TileConstraints/FloatDivTileConstraint.py b/Deeploy/Targets/Snitch/TileConstraints/FloatDivTileConstraint.py index a6f9440fc5..e2de98535d 100644 --- a/Deeploy/Targets/Snitch/TileConstraints/FloatDivTileConstraint.py +++ b/Deeploy/Targets/Snitch/TileConstraints/FloatDivTileConstraint.py @@ -47,22 +47,22 @@ def addGeometricalConstraint(cls, tilerModel: TilerModel, parseDict: Dict, ctxt: tilerModel.addTensorDimToModel(ctxt, inputBuffer2Name) # Constrain scalar to remain untiled (size 1) for dim in range(len(input2Shape)): - input2DimVar = tilerModel.getTensorDimVar(tensorName=inputBuffer2Name, dimIdx=dim) + input2DimVar = tilerModel.getTensorDimVar(tensorName = inputBuffer2Name, dimIdx = dim) tilerModel.addConstraint(input2DimVar == input2Shape[dim]) # Input1 and output must have same dimensions for dim in range(len(input1Shape)): - inputDim1Var = tilerModel.getTensorDimVar(tensorName=inputBuffer1Name, dimIdx=dim) - outputDimVar = tilerModel.getTensorDimVar(tensorName=outputBufferName, dimIdx=dim) + inputDim1Var = tilerModel.getTensorDimVar(tensorName = inputBuffer1Name, dimIdx = dim) + outputDimVar = tilerModel.getTensorDimVar(tensorName = outputBufferName, dimIdx = dim) tilerModel.addConstraint(inputDim1Var == outputDimVar) else: # Element-wise: both inputs must have same shape tilerModel.addTensorDimToModel(ctxt, inputBuffer2Name) for dim in range(len(input1Shape)): - inputDim1Var = tilerModel.getTensorDimVar(tensorName=inputBuffer1Name, dimIdx=dim) - inputDim2Var = tilerModel.getTensorDimVar(tensorName=inputBuffer2Name, dimIdx=dim) - outputDimVar = tilerModel.getTensorDimVar(tensorName=outputBufferName, dimIdx=dim) + inputDim1Var = tilerModel.getTensorDimVar(tensorName = inputBuffer1Name, dimIdx = dim) + inputDim2Var = tilerModel.getTensorDimVar(tensorName = inputBuffer2Name, dimIdx = dim) + outputDimVar = tilerModel.getTensorDimVar(tensorName = outputBufferName, dimIdx = dim) tilerModel.addConstraint(inputDim1Var == inputDim2Var) tilerModel.addConstraint(inputDim1Var == outputDimVar) diff --git a/Deeploy/Targets/Snitch/TileConstraints/FloatMulTileConstraint.py b/Deeploy/Targets/Snitch/TileConstraints/FloatMulTileConstraint.py index afe5e1a0f2..e3c7f1f974 100644 --- a/Deeploy/Targets/Snitch/TileConstraints/FloatMulTileConstraint.py +++ b/Deeploy/Targets/Snitch/TileConstraints/FloatMulTileConstraint.py @@ -47,22 +47,22 @@ def addGeometricalConstraint(cls, tilerModel: TilerModel, parseDict: Dict, ctxt: tilerModel.addTensorDimToModel(ctxt, inputBuffer2Name) # Constrain scalar to remain untiled (size 1) for dim in range(len(input2Shape)): - input2DimVar = tilerModel.getTensorDimVar(tensorName=inputBuffer2Name, dimIdx=dim) + input2DimVar = tilerModel.getTensorDimVar(tensorName = inputBuffer2Name, dimIdx = dim) tilerModel.addConstraint(input2DimVar == input2Shape[dim]) # Input1 and output must have same dimensions for dim in range(len(input1Shape)): - inputDim1Var = tilerModel.getTensorDimVar(tensorName=inputBuffer1Name, dimIdx=dim) - outputDimVar = tilerModel.getTensorDimVar(tensorName=outputBufferName, dimIdx=dim) + inputDim1Var = tilerModel.getTensorDimVar(tensorName = inputBuffer1Name, dimIdx = dim) + outputDimVar = tilerModel.getTensorDimVar(tensorName = outputBufferName, dimIdx = dim) tilerModel.addConstraint(inputDim1Var == outputDimVar) else: # Element-wise: both inputs must have same shape tilerModel.addTensorDimToModel(ctxt, inputBuffer2Name) for dim in range(len(input1Shape)): - inputDim1Var = tilerModel.getTensorDimVar(tensorName=inputBuffer1Name, dimIdx=dim) - inputDim2Var = tilerModel.getTensorDimVar(tensorName=inputBuffer2Name, dimIdx=dim) - outputDimVar = tilerModel.getTensorDimVar(tensorName=outputBufferName, dimIdx=dim) + inputDim1Var = tilerModel.getTensorDimVar(tensorName = inputBuffer1Name, dimIdx = dim) + inputDim2Var = tilerModel.getTensorDimVar(tensorName = inputBuffer2Name, dimIdx = dim) + outputDimVar = tilerModel.getTensorDimVar(tensorName = outputBufferName, dimIdx = dim) tilerModel.addConstraint(inputDim1Var == inputDim2Var) tilerModel.addConstraint(inputDim1Var == outputDimVar) diff --git a/Deeploy/Targets/Snitch/TileConstraints/GemmTileConstraint.py b/Deeploy/Targets/Snitch/TileConstraints/GemmTileConstraint.py index bb72cc461c..e5d35c4a42 100644 --- a/Deeploy/Targets/Snitch/TileConstraints/GemmTileConstraint.py +++ b/Deeploy/Targets/Snitch/TileConstraints/GemmTileConstraint.py @@ -20,9 +20,9 @@ class GemmTileConstraint(TileConstraint): def addGeometricalConstraint(tilerModel: TilerModel, parseDict: Dict, ctxt: NetworkContext) -> TilerModel: # Get to-be-tiled tensor's buffers - bufferA = ctxt.lookup(name=parseDict['A']) - bufferB = ctxt.lookup(name=parseDict['B']) - bufferY = ctxt.lookup(name=parseDict['data_out']) + bufferA = ctxt.lookup(name = parseDict['A']) + bufferB = ctxt.lookup(name = parseDict['B']) + bufferY = ctxt.lookup(name = parseDict['data_out']) # Add I/O dimensions to the model as variables for bufferName in [bufferA.name, bufferB.name, bufferY.name]: @@ -33,35 +33,35 @@ def addGeometricalConstraint(tilerModel: TilerModel, parseDict: Dict, ctxt: Netw heightIdxA, widthIdxA = dimCountA - 2, dimCountA - 1 else: heightIdxA, widthIdxA = dimCountA - 1, dimCountA - 2 - AHeightDimVar = tilerModel.getTensorDimVar(tensorName=bufferA.name, dimIdx=heightIdxA) - AWidthDimVar = tilerModel.getTensorDimVar(tensorName=bufferA.name, dimIdx=widthIdxA) + AHeightDimVar = tilerModel.getTensorDimVar(tensorName = bufferA.name, dimIdx = heightIdxA) + AWidthDimVar = tilerModel.getTensorDimVar(tensorName = bufferA.name, dimIdx = widthIdxA) dimCountB = len(bufferB.shape) if parseDict['transB'] == 0: heightIdxB, widthIdxB = dimCountB - 2, dimCountB - 1 else: heightIdxB, widthIdxB = dimCountB - 1, dimCountB - 2 - BHeightDimVar = tilerModel.getTensorDimVar(tensorName=bufferB.name, dimIdx=heightIdxB) - BWidthDimVar = tilerModel.getTensorDimVar(tensorName=bufferB.name, dimIdx=widthIdxB) + BHeightDimVar = tilerModel.getTensorDimVar(tensorName = bufferB.name, dimIdx = heightIdxB) + BWidthDimVar = tilerModel.getTensorDimVar(tensorName = bufferB.name, dimIdx = widthIdxB) dimCountY = len(bufferY.shape) heightIdxY, widthIdxY = dimCountY - 2, dimCountY - 1 - YHeightDimVar = tilerModel.getTensorDimVar(tensorName=bufferY.name, dimIdx=heightIdxY) - YWidthDimVar = tilerModel.getTensorDimVar(tensorName=bufferY.name, dimIdx=widthIdxY) + YHeightDimVar = tilerModel.getTensorDimVar(tensorName = bufferY.name, dimIdx = heightIdxY) + YWidthDimVar = tilerModel.getTensorDimVar(tensorName = bufferY.name, dimIdx = widthIdxY) tilerModel.addConstraint(YHeightDimVar == AHeightDimVar) tilerModel.addConstraint(YWidthDimVar == BWidthDimVar) tilerModel.addConstraint(AWidthDimVar == BHeightDimVar) if 'C' in parseDict: - bufferC = ctxt.lookup(name=parseDict['C']) + bufferC = ctxt.lookup(name = parseDict['C']) tilerModel.addTensorDimToModel(ctxt, bufferC.name) dimCountC = len(bufferC.shape) heightIdxC, widthIdxC = dimCountC - 2, dimCountC - 1 - CHeightDimVar = tilerModel.getTensorDimVar(tensorName=bufferC.name, dimIdx=heightIdxC) - CWidthDimVar = tilerModel.getTensorDimVar(tensorName=bufferC.name, dimIdx=widthIdxC) + CHeightDimVar = tilerModel.getTensorDimVar(tensorName = bufferC.name, dimIdx = heightIdxC) + CWidthDimVar = tilerModel.getTensorDimVar(tensorName = bufferC.name, dimIdx = widthIdxC) tilerModel.addConstraint(CHeightDimVar == YHeightDimVar) tilerModel.addConstraint(CWidthDimVar == YWidthDimVar) @@ -70,21 +70,21 @@ def addGeometricalConstraint(tilerModel: TilerModel, parseDict: Dict, ctxt: Netw @staticmethod def addPolicyConstraint(tilerModel: TilerModel, parseDict: Dict, ctxt: NetworkContext) -> TilerModel: - bufferA = ctxt.lookup(name=parseDict['A']) - bufferY = ctxt.lookup(name=parseDict['data_out']) + bufferA = ctxt.lookup(name = parseDict['A']) + bufferY = ctxt.lookup(name = parseDict['data_out']) dimCountA = len(bufferA.shape) if parseDict['transA'] == 0: heightIdxA, widthIdxA = dimCountA - 2, dimCountA - 1 else: heightIdxA, widthIdxA = dimCountA - 1, dimCountA - 2 - AHeightDimVar = tilerModel.getTensorDimVar(tensorName=bufferA.name, dimIdx=heightIdxA) - AWidthDimVar = tilerModel.getTensorDimVar(tensorName=bufferA.name, dimIdx=widthIdxA) + AHeightDimVar = tilerModel.getTensorDimVar(tensorName = bufferA.name, dimIdx = heightIdxA) + AWidthDimVar = tilerModel.getTensorDimVar(tensorName = bufferA.name, dimIdx = widthIdxA) dimCountY = len(bufferY.shape) heightIdxY, widthIdxY = dimCountY - 2, dimCountY - 1 - YHeightDimVar = tilerModel.getTensorDimVar(tensorName=bufferY.name, dimIdx=heightIdxY) - YWidthDimVar = tilerModel.getTensorDimVar(tensorName=bufferY.name, dimIdx=widthIdxY) + YHeightDimVar = tilerModel.getTensorDimVar(tensorName = bufferY.name, dimIdx = heightIdxY) + YWidthDimVar = tilerModel.getTensorDimVar(tensorName = bufferY.name, dimIdx = widthIdxY) # Full inner dimension tilerModel.addConstraint(AWidthDimVar == AWidthDimVar.Max()) @@ -95,7 +95,7 @@ def addPolicyConstraint(tilerModel: TilerModel, parseDict: Dict, ctxt: NetworkCo "M", YHeightDimVar, 8, - strategy=PerformanceHint(priority=1)) + strategy = PerformanceHint(priority = 1)) return tilerModel diff --git a/Deeploy/Targets/Snitch/TileConstraints/ReshapeTileConstraint.py b/Deeploy/Targets/Snitch/TileConstraints/ReshapeTileConstraint.py index c1ae60dad5..01a7e7e406 100644 --- a/Deeploy/Targets/Snitch/TileConstraints/ReshapeTileConstraint.py +++ b/Deeploy/Targets/Snitch/TileConstraints/ReshapeTileConstraint.py @@ -40,7 +40,7 @@ def addGeometricalConstraint(tilerModel: TilerModel, parseDict: Dict, ctxt: Netw tilerModel.addTensorDimToModel(ctxt, bufferName) for idx, shapeDim in enumerate(_buffer.shape): - tilerModel.addConstraint(tilerModel.getTensorDimVar(tensorName=bufferName, dimIdx=idx) <= shapeDim) + tilerModel.addConstraint(tilerModel.getTensorDimVar(tensorName = bufferName, dimIdx = idx) <= shapeDim) # Constrain total elements to be equal inputBuffer = ctxt.lookup(inputBufferName) diff --git a/Deeploy/Targets/Snitch/TileConstraints/RqGemmTileConstraint.py b/Deeploy/Targets/Snitch/TileConstraints/RqGemmTileConstraint.py index a40dcabd3a..47bf7e29cc 100644 --- a/Deeploy/Targets/Snitch/TileConstraints/RqGemmTileConstraint.py +++ b/Deeploy/Targets/Snitch/TileConstraints/RqGemmTileConstraint.py @@ -20,9 +20,9 @@ class RqGemmTileConstraint(TileConstraint): def addGeometricalConstraint(tilerModel: TilerModel, parseDict: Dict, ctxt: NetworkContext) -> TilerModel: # Get to-be-tiled tensor's buffers - bufferA = ctxt.lookup(name=parseDict['A']) - bufferB = ctxt.lookup(name=parseDict['B']) - bufferY = ctxt.lookup(name=parseDict['data_out']) + bufferA = ctxt.lookup(name = parseDict['A']) + bufferB = ctxt.lookup(name = parseDict['B']) + bufferY = ctxt.lookup(name = parseDict['data_out']) # Add I/O dimensions to the model as variables for bufferName in [bufferA.name, bufferB.name, bufferY.name]: @@ -33,48 +33,48 @@ def addGeometricalConstraint(tilerModel: TilerModel, parseDict: Dict, ctxt: Netw heightIdxA, widthIdxA = dimCountA - 2, dimCountA - 1 else: heightIdxA, widthIdxA = dimCountA - 1, dimCountA - 2 - AHeightDimVar = tilerModel.getTensorDimVar(tensorName=bufferA.name, dimIdx=heightIdxA) - AWidthDimVar = tilerModel.getTensorDimVar(tensorName=bufferA.name, dimIdx=widthIdxA) + AHeightDimVar = tilerModel.getTensorDimVar(tensorName = bufferA.name, dimIdx = heightIdxA) + AWidthDimVar = tilerModel.getTensorDimVar(tensorName = bufferA.name, dimIdx = widthIdxA) dimCountB = len(bufferB.shape) if parseDict['transB'] == 0: heightIdxB, widthIdxB = dimCountB - 2, dimCountB - 1 else: heightIdxB, widthIdxB = dimCountB - 1, dimCountB - 2 - BHeightDimVar = tilerModel.getTensorDimVar(tensorName=bufferB.name, dimIdx=heightIdxB) - BWidthDimVar = tilerModel.getTensorDimVar(tensorName=bufferB.name, dimIdx=widthIdxB) + BHeightDimVar = tilerModel.getTensorDimVar(tensorName = bufferB.name, dimIdx = heightIdxB) + BWidthDimVar = tilerModel.getTensorDimVar(tensorName = bufferB.name, dimIdx = widthIdxB) dimCountY = len(bufferY.shape) heightIdxY, widthIdxY = dimCountY - 2, dimCountY - 1 - YHeightDimVar = tilerModel.getTensorDimVar(tensorName=bufferY.name, dimIdx=heightIdxY) - YWidthDimVar = tilerModel.getTensorDimVar(tensorName=bufferY.name, dimIdx=widthIdxY) + YHeightDimVar = tilerModel.getTensorDimVar(tensorName = bufferY.name, dimIdx = heightIdxY) + YWidthDimVar = tilerModel.getTensorDimVar(tensorName = bufferY.name, dimIdx = widthIdxY) tilerModel.addConstraint(YHeightDimVar == AHeightDimVar) tilerModel.addConstraint(YWidthDimVar == BWidthDimVar) tilerModel.addConstraint(AWidthDimVar == BHeightDimVar) if 'C' in parseDict: - bufferC = ctxt.lookup(name=parseDict['C']) + bufferC = ctxt.lookup(name = parseDict['C']) tilerModel.addTensorDimToModel(ctxt, bufferC.name) dimCountC = len(bufferC.shape) heightIdxC, widthIdxC = dimCountC - 2, dimCountC - 1 - CHeightDimVar = tilerModel.getTensorDimVar(tensorName=bufferC.name, dimIdx=heightIdxC) - CWidthDimVar = tilerModel.getTensorDimVar(tensorName=bufferC.name, dimIdx=widthIdxC) + CHeightDimVar = tilerModel.getTensorDimVar(tensorName = bufferC.name, dimIdx = heightIdxC) + CWidthDimVar = tilerModel.getTensorDimVar(tensorName = bufferC.name, dimIdx = widthIdxC) tilerModel.addConstraint(CHeightDimVar == YHeightDimVar) tilerModel.addConstraint(CWidthDimVar == YWidthDimVar) - bufferMul = ctxt.lookup(name=parseDict['mul']) - bufferAdd = ctxt.lookup(name=parseDict['add']) + bufferMul = ctxt.lookup(name = parseDict['mul']) + bufferAdd = ctxt.lookup(name = parseDict['add']) # Add I/O dimensions to the model as variables for bufferName in [bufferMul.name, bufferAdd.name]: tilerModel.addTensorDimToModel(ctxt, bufferName) - MulDimVar = tilerModel.getTensorDimVar(tensorName=bufferMul.name, dimIdx=0) - AddDimVar = tilerModel.getTensorDimVar(tensorName=bufferAdd.name, dimIdx=0) + MulDimVar = tilerModel.getTensorDimVar(tensorName = bufferMul.name, dimIdx = 0) + AddDimVar = tilerModel.getTensorDimVar(tensorName = bufferAdd.name, dimIdx = 0) tilerModel.addConstraint(MulDimVar == YHeightDimVar) tilerModel.addConstraint(MulDimVar == AddDimVar) @@ -83,21 +83,21 @@ def addGeometricalConstraint(tilerModel: TilerModel, parseDict: Dict, ctxt: Netw @staticmethod def addPolicyConstraint(tilerModel: TilerModel, parseDict: Dict, ctxt: NetworkContext) -> TilerModel: - bufferA = ctxt.lookup(name=parseDict['A']) - bufferY = ctxt.lookup(name=parseDict['data_out']) + bufferA = ctxt.lookup(name = parseDict['A']) + bufferY = ctxt.lookup(name = parseDict['data_out']) dimCountA = len(bufferA.shape) if parseDict['transA'] == 0: heightIdxA, widthIdxA = dimCountA - 2, dimCountA - 1 else: heightIdxA, widthIdxA = dimCountA - 1, dimCountA - 2 - AHeightDimVar = tilerModel.getTensorDimVar(tensorName=bufferA.name, dimIdx=heightIdxA) - AWidthDimVar = tilerModel.getTensorDimVar(tensorName=bufferA.name, dimIdx=widthIdxA) + AHeightDimVar = tilerModel.getTensorDimVar(tensorName = bufferA.name, dimIdx = heightIdxA) + AWidthDimVar = tilerModel.getTensorDimVar(tensorName = bufferA.name, dimIdx = widthIdxA) dimCountY = len(bufferY.shape) heightIdxY, widthIdxY = dimCountY - 2, dimCountY - 1 - YHeightDimVar = tilerModel.getTensorDimVar(tensorName=bufferY.name, dimIdx=heightIdxY) - YWidthDimVar = tilerModel.getTensorDimVar(tensorName=bufferY.name, dimIdx=widthIdxY) + YHeightDimVar = tilerModel.getTensorDimVar(tensorName = bufferY.name, dimIdx = heightIdxY) + YWidthDimVar = tilerModel.getTensorDimVar(tensorName = bufferY.name, dimIdx = widthIdxY) # Full inner dimension tilerModel.addConstraint(AWidthDimVar == AWidthDimVar.Max()) @@ -108,7 +108,7 @@ def addPolicyConstraint(tilerModel: TilerModel, parseDict: Dict, ctxt: NetworkCo "M", YHeightDimVar, 8, - strategy=PerformanceHint(priority=1)) + strategy = PerformanceHint(priority = 1)) return tilerModel @@ -170,8 +170,8 @@ def serializeTilingSolution( else: BCube = HyperRectangle((BatchOffset, OOffset, NOffset), (BatchSize, OSize, NSize)) - MulCube = HyperRectangle((MOffset, ), (MSize, )) - AddCube = HyperRectangle((MOffset, ), (MSize, )) + MulCube = HyperRectangle((MOffset,), (MSize,)) + AddCube = HyperRectangle((MOffset,), (MSize,)) inputLoadSchedule.append({"A": ACube, "B": BCube, "C": YCube, "mul": MulCube, "add": AddCube}) outputLoadSchedule.append({"data_out": YCube}) diff --git a/Deeploy/Targets/Snitch/TileConstraints/iNoNormTileConstraint.py b/Deeploy/Targets/Snitch/TileConstraints/iNoNormTileConstraint.py index f00af88b86..770b78902c 100644 --- a/Deeploy/Targets/Snitch/TileConstraints/iNoNormTileConstraint.py +++ b/Deeploy/Targets/Snitch/TileConstraints/iNoNormTileConstraint.py @@ -34,15 +34,16 @@ def addGeometricalConstraint(tilerModel: TilerModel, parseDict: Dict, ctxt: Netw weigthsBufferShapeLen = len(ctxt.lookup(weightsBufferName).shape) biasBufferShapeLen = len(ctxt.lookup(biasBufferName).shape) - weightsLastDimVar = tilerModel.getTensorDimVar(tensorName=weightsBufferName, dimIdx=weigthsBufferShapeLen - 1) - biasLastDimVar = tilerModel.getTensorDimVar(tensorName=biasBufferName, dimIdx=biasBufferShapeLen - 1) + weightsLastDimVar = tilerModel.getTensorDimVar(tensorName = weightsBufferName, + dimIdx = weigthsBufferShapeLen - 1) + biasLastDimVar = tilerModel.getTensorDimVar(tensorName = biasBufferName, dimIdx = biasBufferShapeLen - 1) tilerModel.addConstraint(biasLastDimVar == weightsLastDimVar) for dim in range(len(inputShape)): - inputDimVar = tilerModel.getTensorDimVar(tensorName=inputBufferName, dimIdx=dim) - weightDimVar = tilerModel.getTensorDimVar(tensorName=weightsBufferName, dimIdx=dim) - outputDimVar = tilerModel.getTensorDimVar(tensorName=outputBufferName, dimIdx=dim) + inputDimVar = tilerModel.getTensorDimVar(tensorName = inputBufferName, dimIdx = dim) + weightDimVar = tilerModel.getTensorDimVar(tensorName = weightsBufferName, dimIdx = dim) + outputDimVar = tilerModel.getTensorDimVar(tensorName = outputBufferName, dimIdx = dim) tilerModel.addConstraint(inputDimVar == outputDimVar) tilerModel.addConstraint(weightDimVar == outputDimVar) diff --git a/Deeploy/Targets/Snitch/TileConstraints/iSoftmaxTileConstraint.py b/Deeploy/Targets/Snitch/TileConstraints/iSoftmaxTileConstraint.py index 9a8e36f79e..aa405bbcb6 100644 --- a/Deeploy/Targets/Snitch/TileConstraints/iSoftmaxTileConstraint.py +++ b/Deeploy/Targets/Snitch/TileConstraints/iSoftmaxTileConstraint.py @@ -30,8 +30,8 @@ def addGeometricalConstraint(tilerModel: TilerModel, parseDict: Dict, ctxt: Netw tilerModel.addTensorDimToModel(ctxt, bufferName) for idx in range(shapeLen): - outputDim = tilerModel.getTensorDimVar(tensorName=outputBufferName, dimIdx=idx) - inputDim = tilerModel.getTensorDimVar(tensorName=inputBufferName, dimIdx=idx) + outputDim = tilerModel.getTensorDimVar(tensorName = outputBufferName, dimIdx = idx) + inputDim = tilerModel.getTensorDimVar(tensorName = inputBufferName, dimIdx = idx) tilerModel.addConstraint(outputDim == inputDim) return tilerModel @@ -43,7 +43,7 @@ def addPolicyConstraint(tilerModel: TilerModel, parseDict: Dict, ctxt: NetworkCo lastDimLength = inputBuffer.shape[-1] lastDimIdx = len(inputBuffer.shape) - 1 - lastDimVar = tilerModel.getTensorDimVar(tensorName=inputBufferName, dimIdx=lastDimIdx) + lastDimVar = tilerModel.getTensorDimVar(tensorName = inputBufferName, dimIdx = lastDimIdx) tilerModel.addConstraint(lastDimVar == lastDimLength) diff --git a/Deeploy/Targets/Snitch/Tiler.py b/Deeploy/Targets/Snitch/Tiler.py index 360b754fee..5a5f4d0bf4 100644 --- a/Deeploy/Targets/Snitch/Tiler.py +++ b/Deeploy/Targets/Snitch/Tiler.py @@ -21,42 +21,43 @@ from Deeploy.Targets.Snitch.TileConstraints.RqGemmTileConstraint import RqGemmTileConstraint from Deeploy.TilingExtension.TilerExtension import TilingReadyNodeBindings -SnitchiSoftmaxTilingReadyBindings = TilingReadyNodeBindings(nodeBindings=SnitchiSoftmaxBindings, - tileConstraint=iSoftmaxTileConstraint()) -SnitchiNoNormTilingReadyBindings = TilingReadyNodeBindings(nodeBindings=SnitchiNoNormBindings, - tileConstraint=iNoNormTileConstraint()) -SnitchRQAddTilingReadyBindings = TilingReadyNodeBindings(nodeBindings=SnitchRQAddBindings, - tileConstraint=AddTileConstraint()) -SnitchGemmTilingReadyBindings = TilingReadyNodeBindings(nodeBindings=SnitchGemmBindings, - tileConstraint=GemmTileConstraint()) -SnitchRqGemmTilingReadyBindings = TilingReadyNodeBindings(nodeBindings=SnitchRqGemmBindings, - tileConstraint=RqGemmTileConstraint()) +SnitchiSoftmaxTilingReadyBindings = TilingReadyNodeBindings(nodeBindings = SnitchiSoftmaxBindings, + tileConstraint = iSoftmaxTileConstraint()) +SnitchiNoNormTilingReadyBindings = TilingReadyNodeBindings(nodeBindings = SnitchiNoNormBindings, + tileConstraint = iNoNormTileConstraint()) +SnitchRQAddTilingReadyBindings = TilingReadyNodeBindings(nodeBindings = SnitchRQAddBindings, + tileConstraint = AddTileConstraint()) +SnitchGemmTilingReadyBindings = TilingReadyNodeBindings(nodeBindings = SnitchGemmBindings, + tileConstraint = GemmTileConstraint()) +SnitchRqGemmTilingReadyBindings = TilingReadyNodeBindings(nodeBindings = SnitchRqGemmBindings, + tileConstraint = RqGemmTileConstraint()) -SnitchAddTileReadyBindings = TilingReadyNodeBindings(nodeBindings=SnitchAddBindings, tileConstraint=AddTileConstraint()) +SnitchAddTileReadyBindings = TilingReadyNodeBindings(nodeBindings = SnitchAddBindings, + tileConstraint = AddTileConstraint()) -SnitchRMSNormTilingReadyBindings = TilingReadyNodeBindings(nodeBindings=SnitchRMSNormBindings, - tileConstraint=iRMSNormTileConstraint()) +SnitchRMSNormTilingReadyBindings = TilingReadyNodeBindings(nodeBindings = SnitchRMSNormBindings, + tileConstraint = iRMSNormTileConstraint()) -SnitchHardSwishTilingReadyBindings = TilingReadyNodeBindings(nodeBindings=SnitchHardSwishBindings, - tileConstraint=iHardswishTileConstraint()) +SnitchHardSwishTilingReadyBindings = TilingReadyNodeBindings(nodeBindings = SnitchHardSwishBindings, + tileConstraint = iHardswishTileConstraint()) -SnitchDivTilingReadyBindings = TilingReadyNodeBindings(nodeBindings=SnitchDivBindings, - tileConstraint=FloatDivTileConstraint()) +SnitchDivTilingReadyBindings = TilingReadyNodeBindings(nodeBindings = SnitchDivBindings, + tileConstraint = FloatDivTileConstraint()) -SnitchMulTilingReadyBindings = TilingReadyNodeBindings(nodeBindings=SnitchMulBindings, - tileConstraint=FloatMulTileConstraint()) +SnitchMulTilingReadyBindings = TilingReadyNodeBindings(nodeBindings = SnitchMulBindings, + tileConstraint = FloatMulTileConstraint()) -SnitchMatMulTilingReadyBindings = TilingReadyNodeBindings(nodeBindings=SnitchMatMulBindings, - tileConstraint=MatMulTileConstraint()) +SnitchMatMulTilingReadyBindings = TilingReadyNodeBindings(nodeBindings = SnitchMatMulBindings, + tileConstraint = MatMulTileConstraint()) -SnitchConcatTilingReadyBindings = TilingReadyNodeBindings(nodeBindings=SnitchConcatBindings, - tileConstraint=ConcatTileConstraint()) +SnitchConcatTilingReadyBindings = TilingReadyNodeBindings(nodeBindings = SnitchConcatBindings, + tileConstraint = ConcatTileConstraint()) -SnitchTransposeTilingReadyBindings = TilingReadyNodeBindings(nodeBindings=SnitchTransposeBindings, - tileConstraint=TransposeTileConstraint()) +SnitchTransposeTilingReadyBindings = TilingReadyNodeBindings(nodeBindings = SnitchTransposeBindings, + tileConstraint = TransposeTileConstraint()) -SnitchReshapeTilingReadyBindings = TilingReadyNodeBindings(nodeBindings=SnitchReshapeBindings, - tileConstraint=ReshapeTileConstraint()) +SnitchReshapeTilingReadyBindings = TilingReadyNodeBindings(nodeBindings = SnitchReshapeBindings, + tileConstraint = ReshapeTileConstraint()) -SnitchGatherTilingReadyBindings = TilingReadyNodeBindings(nodeBindings=SnitchGatherBindings, - tileConstraint=GatherTileConstraint()) +SnitchGatherTilingReadyBindings = TilingReadyNodeBindings(nodeBindings = SnitchGatherBindings, + tileConstraint = GatherTileConstraint()) diff --git a/DeeployTest/test_platforms.py b/DeeployTest/test_platforms.py index 4f28644298..12f698008c 100644 --- a/DeeployTest/test_platforms.py +++ b/DeeployTest/test_platforms.py @@ -147,79 +147,79 @@ def param_id(param): @pytest.mark.generic @pytest.mark.kernels -@pytest.mark.parametrize("test_name", GENERIC_KERNEL_TESTS, ids=GENERIC_KERNEL_TESTS) +@pytest.mark.parametrize("test_name", GENERIC_KERNEL_TESTS, ids = GENERIC_KERNEL_TESTS) def test_generic_kernels(test_name, deeploy_test_dir, toolchain, toolchain_dir, cmake_args, skipgen, skipsim) -> None: platform_config = PLATFORM_CONFIGS["generic"] config = create_test_config( - test_name=test_name, - platform=platform_config["platform"], - simulator=platform_config["simulator"], - deeploy_test_dir=deeploy_test_dir, - toolchain=toolchain, - toolchain_dir=toolchain_dir, - cmake_args=cmake_args, - tiling=False, + test_name = test_name, + platform = platform_config["platform"], + simulator = platform_config["simulator"], + deeploy_test_dir = deeploy_test_dir, + toolchain = toolchain, + toolchain_dir = toolchain_dir, + cmake_args = cmake_args, + tiling = False, ) run_and_assert_test(test_name, config, skipgen, skipsim) @pytest.mark.generic @pytest.mark.models -@pytest.mark.parametrize("test_name", GENERIC_MODEL_TESTS, ids=GENERIC_MODEL_TESTS) +@pytest.mark.parametrize("test_name", GENERIC_MODEL_TESTS, ids = GENERIC_MODEL_TESTS) def test_generic_models(test_name, deeploy_test_dir, toolchain, toolchain_dir, cmake_args, skipgen, skipsim) -> None: platform_config = PLATFORM_CONFIGS["generic"] config = create_test_config( - test_name=test_name, - platform=platform_config["platform"], - simulator=platform_config["simulator"], - deeploy_test_dir=deeploy_test_dir, - toolchain=toolchain, - toolchain_dir=toolchain_dir, - cmake_args=cmake_args, - tiling=False, + test_name = test_name, + platform = platform_config["platform"], + simulator = platform_config["simulator"], + deeploy_test_dir = deeploy_test_dir, + toolchain = toolchain, + toolchain_dir = toolchain_dir, + cmake_args = cmake_args, + tiling = False, ) run_and_assert_test(test_name, config, skipgen, skipsim) @pytest.mark.cortexm @pytest.mark.kernels -@pytest.mark.parametrize("test_name", CORTEXM_KERNEL_TESTS, ids=CORTEXM_KERNEL_TESTS) +@pytest.mark.parametrize("test_name", CORTEXM_KERNEL_TESTS, ids = CORTEXM_KERNEL_TESTS) def test_cortexm_kernels(test_name, deeploy_test_dir, toolchain, toolchain_dir, cmake_args, skipgen, skipsim) -> None: platform_config = PLATFORM_CONFIGS["cortexm"] config = create_test_config( - test_name=test_name, - platform=platform_config["platform"], - simulator=platform_config["simulator"], - deeploy_test_dir=deeploy_test_dir, - toolchain=toolchain, - toolchain_dir=toolchain_dir, - cmake_args=cmake_args, - tiling=False, + test_name = test_name, + platform = platform_config["platform"], + simulator = platform_config["simulator"], + deeploy_test_dir = deeploy_test_dir, + toolchain = toolchain, + toolchain_dir = toolchain_dir, + cmake_args = cmake_args, + tiling = False, ) run_and_assert_test(test_name, config, skipgen, skipsim) @pytest.mark.cortexm @pytest.mark.models -@pytest.mark.parametrize("test_name", CORTEXM_MODEL_TESTS, ids=CORTEXM_MODEL_TESTS) +@pytest.mark.parametrize("test_name", CORTEXM_MODEL_TESTS, ids = CORTEXM_MODEL_TESTS) def test_cortexm_models(test_name, deeploy_test_dir, toolchain, toolchain_dir, cmake_args, skipgen, skipsim) -> None: platform_config = PLATFORM_CONFIGS["cortexm"] config = create_test_config( - test_name=test_name, - platform=platform_config["platform"], - simulator=platform_config["simulator"], - deeploy_test_dir=deeploy_test_dir, - toolchain=toolchain, - toolchain_dir=toolchain_dir, - cmake_args=cmake_args, - tiling=False, + test_name = test_name, + platform = platform_config["platform"], + simulator = platform_config["simulator"], + deeploy_test_dir = deeploy_test_dir, + toolchain = toolchain, + toolchain_dir = toolchain_dir, + cmake_args = cmake_args, + tiling = False, ) run_and_assert_test(test_name, config, skipgen, skipsim) @pytest.mark.mempool @pytest.mark.kernels -@pytest.mark.parametrize("test_name", MEMPOOL_KERNEL_TESTS, ids=MEMPOOL_KERNEL_TESTS) +@pytest.mark.parametrize("test_name", MEMPOOL_KERNEL_TESTS, ids = MEMPOOL_KERNEL_TESTS) def test_mempool_kernels(test_name, deeploy_test_dir, toolchain, toolchain_dir, cmake_args, skipgen, skipsim) -> None: platform_config = PLATFORM_CONFIGS["mempool"] @@ -227,21 +227,21 @@ def test_mempool_kernels(test_name, deeploy_test_dir, toolchain, toolchain_dir, mempool_cmake_args = cmake_args + [f"num_threads={platform_config['default_num_threads']}"] config = create_test_config( - test_name=test_name, - platform=platform_config["platform"], - simulator=platform_config["simulator"], - deeploy_test_dir=deeploy_test_dir, - toolchain=toolchain, - toolchain_dir=toolchain_dir, - cmake_args=mempool_cmake_args, - tiling=False, + test_name = test_name, + platform = platform_config["platform"], + simulator = platform_config["simulator"], + deeploy_test_dir = deeploy_test_dir, + toolchain = toolchain, + toolchain_dir = toolchain_dir, + cmake_args = mempool_cmake_args, + tiling = False, ) run_and_assert_test(test_name, config, skipgen, skipsim) @pytest.mark.mempool @pytest.mark.models -@pytest.mark.parametrize("test_name", MEMPOOL_MODEL_TESTS, ids=MEMPOOL_MODEL_TESTS) +@pytest.mark.parametrize("test_name", MEMPOOL_MODEL_TESTS, ids = MEMPOOL_MODEL_TESTS) def test_mempool_models(test_name, deeploy_test_dir, toolchain, toolchain_dir, cmake_args, skipgen, skipsim) -> None: platform_config = PLATFORM_CONFIGS["mempool"] @@ -249,54 +249,54 @@ def test_mempool_models(test_name, deeploy_test_dir, toolchain, toolchain_dir, c mempool_cmake_args = cmake_args + [f"num_threads={platform_config['default_num_threads']}"] config = create_test_config( - test_name=test_name, - platform=platform_config["platform"], - simulator=platform_config["simulator"], - deeploy_test_dir=deeploy_test_dir, - toolchain=toolchain, - toolchain_dir=toolchain_dir, - cmake_args=mempool_cmake_args, - tiling=False, + test_name = test_name, + platform = platform_config["platform"], + simulator = platform_config["simulator"], + deeploy_test_dir = deeploy_test_dir, + toolchain = toolchain, + toolchain_dir = toolchain_dir, + cmake_args = mempool_cmake_args, + tiling = False, ) run_and_assert_test(test_name, config, skipgen, skipsim) @pytest.mark.siracusa @pytest.mark.kernels -@pytest.mark.parametrize("test_name", SIRACUSA_KERNEL_TESTS, ids=SIRACUSA_KERNEL_TESTS) +@pytest.mark.parametrize("test_name", SIRACUSA_KERNEL_TESTS, ids = SIRACUSA_KERNEL_TESTS) def test_siracusa_kernels(test_name, deeploy_test_dir, toolchain, toolchain_dir, cmake_args, skipgen, skipsim, profile_untiled) -> None: config = create_test_config( - test_name=test_name, - platform="Siracusa", - simulator="gvsoc", - deeploy_test_dir=deeploy_test_dir, - toolchain=toolchain, - toolchain_dir=toolchain_dir, - cmake_args=cmake_args, - tiling=False, - cores=SIRACUSA_DEFAULT_CORES, - profile_untiled=profile_untiled, + test_name = test_name, + platform = "Siracusa", + simulator = "gvsoc", + deeploy_test_dir = deeploy_test_dir, + toolchain = toolchain, + toolchain_dir = toolchain_dir, + cmake_args = cmake_args, + tiling = False, + cores = SIRACUSA_DEFAULT_CORES, + profile_untiled = profile_untiled, ) run_and_assert_test(test_name, config, skipgen, skipsim) @pytest.mark.siracusa @pytest.mark.models -@pytest.mark.parametrize("test_name", SIRACUSA_MODEL_TESTS, ids=SIRACUSA_MODEL_TESTS) +@pytest.mark.parametrize("test_name", SIRACUSA_MODEL_TESTS, ids = SIRACUSA_MODEL_TESTS) def test_siracusa_models(test_name, deeploy_test_dir, toolchain, toolchain_dir, cmake_args, skipgen, skipsim, profile_untiled) -> None: config = create_test_config( - test_name=test_name, - platform="Siracusa", - simulator="gvsoc", - deeploy_test_dir=deeploy_test_dir, - toolchain=toolchain, - toolchain_dir=toolchain_dir, - cmake_args=cmake_args, - tiling=False, - cores=SIRACUSA_DEFAULT_CORES, - profile_untiled=profile_untiled, + test_name = test_name, + platform = "Siracusa", + simulator = "gvsoc", + deeploy_test_dir = deeploy_test_dir, + toolchain = toolchain, + toolchain_dir = toolchain_dir, + cmake_args = cmake_args, + tiling = False, + cores = SIRACUSA_DEFAULT_CORES, + profile_untiled = profile_untiled, ) run_and_assert_test(test_name, config, skipgen, skipsim) @@ -308,24 +308,24 @@ def test_siracusa_models(test_name, deeploy_test_dir, toolchain, toolchain_dir, @pytest.mark.parametrize( "test_params", generate_test_params(L2_SINGLEBUFFER_KERNELS, "L2-singlebuffer"), - ids=param_id, + ids = param_id, ) def test_siracusa_tiled_kernels_l2_singlebuffer(test_params, deeploy_test_dir, toolchain, toolchain_dir, cmake_args, skipgen, skipsim) -> None: test_name, l1, config_name = test_params config = create_test_config( - test_name=test_name, - platform="Siracusa", - simulator="gvsoc", - deeploy_test_dir=deeploy_test_dir, - toolchain=toolchain, - toolchain_dir=toolchain_dir, - cmake_args=cmake_args, - tiling=True, - cores=SIRACUSA_DEFAULT_CORES, - l1=l1, - default_mem_level="L2", - double_buffer=False, + test_name = test_name, + platform = "Siracusa", + simulator = "gvsoc", + deeploy_test_dir = deeploy_test_dir, + toolchain = toolchain, + toolchain_dir = toolchain_dir, + cmake_args = cmake_args, + tiling = True, + cores = SIRACUSA_DEFAULT_CORES, + l1 = l1, + default_mem_level = "L2", + double_buffer = False, ) run_and_assert_test(test_name, config, skipgen, skipsim) @@ -337,24 +337,24 @@ def test_siracusa_tiled_kernels_l2_singlebuffer(test_params, deeploy_test_dir, t @pytest.mark.parametrize( "test_params", generate_test_params(L2_DOUBLEBUFFER_KERNELS, "L2-doublebuffer"), - ids=param_id, + ids = param_id, ) def test_siracusa_tiled_kernels_l2_doublebuffer(test_params, deeploy_test_dir, toolchain, toolchain_dir, cmake_args, skipgen, skipsim) -> None: test_name, l1, config_name = test_params config = create_test_config( - test_name=test_name, - platform="Siracusa", - simulator="gvsoc", - deeploy_test_dir=deeploy_test_dir, - toolchain=toolchain, - toolchain_dir=toolchain_dir, - cmake_args=cmake_args, - tiling=True, - cores=SIRACUSA_DEFAULT_CORES, - l1=l1, - default_mem_level="L2", - double_buffer=True, + test_name = test_name, + platform = "Siracusa", + simulator = "gvsoc", + deeploy_test_dir = deeploy_test_dir, + toolchain = toolchain, + toolchain_dir = toolchain_dir, + cmake_args = cmake_args, + tiling = True, + cores = SIRACUSA_DEFAULT_CORES, + l1 = l1, + default_mem_level = "L2", + double_buffer = True, ) run_and_assert_test(test_name, config, skipgen, skipsim) @@ -366,24 +366,24 @@ def test_siracusa_tiled_kernels_l2_doublebuffer(test_params, deeploy_test_dir, t @pytest.mark.parametrize( "test_params", generate_test_params(L2_SINGLEBUFFER_MODELS, "L2-singlebuffer"), - ids=param_id, + ids = param_id, ) def test_siracusa_tiled_models_l2_singlebuffer(test_params, deeploy_test_dir, toolchain, toolchain_dir, cmake_args, skipgen, skipsim) -> None: test_name, l1, config_name = test_params config = create_test_config( - test_name=test_name, - platform="Siracusa", - simulator="gvsoc", - deeploy_test_dir=deeploy_test_dir, - toolchain=toolchain, - toolchain_dir=toolchain_dir, - cmake_args=cmake_args, - tiling=True, - cores=SIRACUSA_DEFAULT_CORES, - l1=l1, - default_mem_level="L2", - double_buffer=False, + test_name = test_name, + platform = "Siracusa", + simulator = "gvsoc", + deeploy_test_dir = deeploy_test_dir, + toolchain = toolchain, + toolchain_dir = toolchain_dir, + cmake_args = cmake_args, + tiling = True, + cores = SIRACUSA_DEFAULT_CORES, + l1 = l1, + default_mem_level = "L2", + double_buffer = False, ) run_and_assert_test(test_name, config, skipgen, skipsim) @@ -395,24 +395,24 @@ def test_siracusa_tiled_models_l2_singlebuffer(test_params, deeploy_test_dir, to @pytest.mark.parametrize( "test_params", generate_test_params(L2_DOUBLEBUFFER_MODELS, "L2-doublebuffer"), - ids=param_id, + ids = param_id, ) def test_siracusa_tiled_models_l2_doublebuffer(test_params, deeploy_test_dir, toolchain, toolchain_dir, cmake_args, skipgen, skipsim) -> None: test_name, l1, config_name = test_params config = create_test_config( - test_name=test_name, - platform="Siracusa", - simulator="gvsoc", - deeploy_test_dir=deeploy_test_dir, - toolchain=toolchain, - toolchain_dir=toolchain_dir, - cmake_args=cmake_args, - tiling=True, - cores=SIRACUSA_DEFAULT_CORES, - l1=l1, - default_mem_level="L2", - double_buffer=True, + test_name = test_name, + platform = "Siracusa", + simulator = "gvsoc", + deeploy_test_dir = deeploy_test_dir, + toolchain = toolchain, + toolchain_dir = toolchain_dir, + cmake_args = cmake_args, + tiling = True, + cores = SIRACUSA_DEFAULT_CORES, + l1 = l1, + default_mem_level = "L2", + double_buffer = True, ) run_and_assert_test(test_name, config, skipgen, skipsim) @@ -424,24 +424,24 @@ def test_siracusa_tiled_models_l2_doublebuffer(test_params, deeploy_test_dir, to @pytest.mark.parametrize( "test_params", generate_test_params(L3_SINGLEBUFFER_MODELS, "L3-singlebuffer"), - ids=param_id, + ids = param_id, ) def test_siracusa_tiled_models_l3_singlebuffer(test_params, deeploy_test_dir, toolchain, toolchain_dir, cmake_args, skipgen, skipsim) -> None: test_name, l1, config_name = test_params config = create_test_config( - test_name=test_name, - platform="Siracusa", - simulator="gvsoc", - deeploy_test_dir=deeploy_test_dir, - toolchain=toolchain, - toolchain_dir=toolchain_dir, - cmake_args=cmake_args, - tiling=True, - cores=SIRACUSA_DEFAULT_CORES, - l1=l1, - default_mem_level="L3", - double_buffer=False, + test_name = test_name, + platform = "Siracusa", + simulator = "gvsoc", + deeploy_test_dir = deeploy_test_dir, + toolchain = toolchain, + toolchain_dir = toolchain_dir, + cmake_args = cmake_args, + tiling = True, + cores = SIRACUSA_DEFAULT_CORES, + l1 = l1, + default_mem_level = "L3", + double_buffer = False, ) run_and_assert_test(test_name, config, skipgen, skipsim) @@ -453,49 +453,49 @@ def test_siracusa_tiled_models_l3_singlebuffer(test_params, deeploy_test_dir, to @pytest.mark.parametrize( "test_params", generate_test_params(L3_DOUBLEBUFFER_MODELS, "L3-doublebuffer"), - ids=param_id, + ids = param_id, ) def test_siracusa_tiled_models_l3_doublebuffer(test_params, deeploy_test_dir, toolchain, toolchain_dir, cmake_args, skipgen, skipsim) -> None: test_name, l1, config_name = test_params config = create_test_config( - test_name=test_name, - platform="Siracusa", - simulator="gvsoc", - deeploy_test_dir=deeploy_test_dir, - toolchain=toolchain, - toolchain_dir=toolchain_dir, - cmake_args=cmake_args, - tiling=True, - cores=SIRACUSA_DEFAULT_CORES, - l1=l1, - default_mem_level="L3", - double_buffer=True, + test_name = test_name, + platform = "Siracusa", + simulator = "gvsoc", + deeploy_test_dir = deeploy_test_dir, + toolchain = toolchain, + toolchain_dir = toolchain_dir, + cmake_args = cmake_args, + tiling = True, + cores = SIRACUSA_DEFAULT_CORES, + l1 = l1, + default_mem_level = "L3", + double_buffer = True, ) run_and_assert_test(test_name, config, skipgen, skipsim) @pytest.mark.chimera @pytest.mark.kernels -@pytest.mark.parametrize("test_name", CHIMERA_KERNEL_TESTS, ids=CHIMERA_KERNEL_TESTS) +@pytest.mark.parametrize("test_name", CHIMERA_KERNEL_TESTS, ids = CHIMERA_KERNEL_TESTS) def test_chimera_kernels(test_name, deeploy_test_dir, toolchain, toolchain_dir, cmake_args, skipgen, skipsim) -> None: platform_config = PLATFORM_CONFIGS["chimera"] config = create_test_config( - test_name=test_name, - platform=platform_config["platform"], - simulator=platform_config["simulator"], - deeploy_test_dir=deeploy_test_dir, - toolchain=toolchain, - toolchain_dir=toolchain_dir, - cmake_args=cmake_args, - tiling=False, + test_name = test_name, + platform = platform_config["platform"], + simulator = platform_config["simulator"], + deeploy_test_dir = deeploy_test_dir, + toolchain = toolchain, + toolchain_dir = toolchain_dir, + cmake_args = cmake_args, + tiling = False, ) run_and_assert_test(test_name, config, skipgen, skipsim) @pytest.mark.softhier @pytest.mark.kernels -@pytest.mark.parametrize("test_name", SOFTHIER_KERNEL_TESTS, ids=SOFTHIER_KERNEL_TESTS) +@pytest.mark.parametrize("test_name", SOFTHIER_KERNEL_TESTS, ids = SOFTHIER_KERNEL_TESTS) def test_softhier_kernels(test_name, deeploy_test_dir, toolchain, toolchain_dir, cmake_args, skipgen, skipsim) -> None: platform_config = PLATFORM_CONFIGS["softhier"] @@ -503,21 +503,21 @@ def test_softhier_kernels(test_name, deeploy_test_dir, toolchain, toolchain_dir, softhier_cmake_args = cmake_args + [f"num_clusters={platform_config['default_num_clusters']}"] config = create_test_config( - test_name=test_name, - platform=platform_config["platform"], - simulator=platform_config["simulator"], - deeploy_test_dir=deeploy_test_dir, - toolchain=toolchain, - toolchain_dir=toolchain_dir, - cmake_args=softhier_cmake_args, - tiling=False, + test_name = test_name, + platform = platform_config["platform"], + simulator = platform_config["simulator"], + deeploy_test_dir = deeploy_test_dir, + toolchain = toolchain, + toolchain_dir = toolchain_dir, + cmake_args = softhier_cmake_args, + tiling = False, ) run_and_assert_test(test_name, config, skipgen, skipsim) @pytest.mark.snitch @pytest.mark.kernels -@pytest.mark.parametrize("test_name", SNITCH_KERNEL_TESTS, ids=SNITCH_KERNEL_TESTS) +@pytest.mark.parametrize("test_name", SNITCH_KERNEL_TESTS, ids = SNITCH_KERNEL_TESTS) def test_snitch_kernels(test_name, deeploy_test_dir, toolchain, toolchain_dir, cmake_args, skipgen, skipsim) -> None: platform_config = PLATFORM_CONFIGS["snitch"] @@ -525,33 +525,33 @@ def test_snitch_kernels(test_name, deeploy_test_dir, toolchain, toolchain_dir, c snitch_cmake_args = cmake_args + [f"NUM_CORES={platform_config['default_num_cores']}"] config = create_test_config( - test_name=test_name, - platform=platform_config["platform"], - simulator=platform_config["simulator"], - deeploy_test_dir=deeploy_test_dir, - toolchain=toolchain, - toolchain_dir=toolchain_dir, - cmake_args=snitch_cmake_args, - tiling=False, + test_name = test_name, + platform = platform_config["platform"], + simulator = platform_config["simulator"], + deeploy_test_dir = deeploy_test_dir, + toolchain = toolchain, + toolchain_dir = toolchain_dir, + cmake_args = snitch_cmake_args, + tiling = False, ) run_and_assert_test(test_name, config, skipgen, skipsim) @pytest.mark.snitch @pytest.mark.models -@pytest.mark.parametrize("test_name", SNITCH_MODEL_TESTS, ids=SNITCH_MODEL_TESTS) +@pytest.mark.parametrize("test_name", SNITCH_MODEL_TESTS, ids = SNITCH_MODEL_TESTS) def test_snitch_models(test_name, deeploy_test_dir, toolchain, toolchain_dir, cmake_args, skipgen, skipsim) -> None: platform_config = PLATFORM_CONFIGS["snitch"] snitch_cmake_args = cmake_args + [f"NUM_CORES={platform_config['default_num_cores']}"] config = create_test_config( - test_name=test_name, - platform=platform_config["platform"], - simulator=platform_config["simulator"], - deeploy_test_dir=deeploy_test_dir, - toolchain=toolchain, - toolchain_dir=toolchain_dir, - cmake_args=snitch_cmake_args, - tiling=False, + test_name = test_name, + platform = platform_config["platform"], + simulator = platform_config["simulator"], + deeploy_test_dir = deeploy_test_dir, + toolchain = toolchain, + toolchain_dir = toolchain_dir, + cmake_args = snitch_cmake_args, + tiling = False, ) run_and_assert_test(test_name, config, skipgen, skipsim) @@ -563,7 +563,7 @@ def test_snitch_models(test_name, deeploy_test_dir, toolchain, toolchain_dir, cm @pytest.mark.parametrize( "test_params", generate_test_params(SNITCH_L2_SINGLEBUFFER_KERNELS, "L2-singlebuffer"), - ids=param_id, + ids = param_id, ) def test_snitch_tiled_kernels_l2_singlebuffer(test_params, deeploy_test_dir, toolchain, toolchain_dir, cmake_args, skipgen, skipsim) -> None: @@ -573,18 +573,18 @@ def test_snitch_tiled_kernels_l2_singlebuffer(test_params, deeploy_test_dir, too snitch_cmake_args = cmake_args + [f"NUM_CORES={SNITCH_DEFAULT_NUM_CORES}"] config = create_test_config( - test_name=test_name, - platform="Snitch", - simulator="gvsoc", - deeploy_test_dir=deeploy_test_dir, - toolchain=toolchain, - toolchain_dir=toolchain_dir, - cmake_args=snitch_cmake_args, - tiling=True, - cores=SNITCH_DEFAULT_NUM_CORES, - l1=l1, - default_mem_level="L2", - double_buffer=False, + test_name = test_name, + platform = "Snitch", + simulator = "gvsoc", + deeploy_test_dir = deeploy_test_dir, + toolchain = toolchain, + toolchain_dir = toolchain_dir, + cmake_args = snitch_cmake_args, + tiling = True, + cores = SNITCH_DEFAULT_NUM_CORES, + l1 = l1, + default_mem_level = "L2", + double_buffer = False, ) run_and_assert_test(test_name, config, skipgen, skipsim) @@ -596,26 +596,26 @@ def test_snitch_tiled_kernels_l2_singlebuffer(test_params, deeploy_test_dir, too @pytest.mark.parametrize( "test_params", generate_test_params(SNITCH_L2_SINGLEBUFFER_MODELS, "L2-singlebuffer"), - ids=param_id, + ids = param_id, ) def test_snitch_tiled_models_l2_singlebuffer(test_params, deeploy_test_dir, toolchain, toolchain_dir, cmake_args, skipgen, skipsim) -> None: test_name, l1, config_name = test_params snitch_cmake_args = cmake_args + [f"NUM_CORES={SNITCH_DEFAULT_NUM_CORES}"] config = create_test_config( - test_name=test_name, - platform="Snitch", - simulator="gvsoc", - deeploy_test_dir=deeploy_test_dir, - toolchain=toolchain, - toolchain_dir=toolchain_dir, - cmake_args=snitch_cmake_args, - tiling=True, - cores=SNITCH_DEFAULT_NUM_CORES, - l1=l1, - l2=4000000, - default_mem_level="L2", - double_buffer=False, + test_name = test_name, + platform = "Snitch", + simulator = "gvsoc", + deeploy_test_dir = deeploy_test_dir, + toolchain = toolchain, + toolchain_dir = toolchain_dir, + cmake_args = snitch_cmake_args, + tiling = True, + cores = SNITCH_DEFAULT_NUM_CORES, + l1 = l1, + l2 = 4000000, + default_mem_level = "L2", + double_buffer = False, ) run_and_assert_test(test_name, config, skipgen, skipsim) @@ -627,24 +627,24 @@ def test_snitch_tiled_models_l2_singlebuffer(test_params, deeploy_test_dir, tool @pytest.mark.parametrize( "test_params", generate_test_params(NEUREKA_L2_SINGLEBUFFER_KERNELS, "L2-singlebuffer"), - ids=param_id, + ids = param_id, ) def test_siracusa_neureka_tiled_kernels_l2_singlebuffer(test_params, deeploy_test_dir, toolchain, toolchain_dir, cmake_args, skipgen, skipsim) -> None: test_name, l1, config_name = test_params config = create_test_config( - test_name=test_name, - platform="Siracusa_w_neureka", - simulator="gvsoc", - deeploy_test_dir=deeploy_test_dir, - toolchain=toolchain, - toolchain_dir=toolchain_dir, - cmake_args=cmake_args, - tiling=True, - cores=NEUREKA_DEFAULT_CORES, - l1=l1, - default_mem_level="L2", - double_buffer=False, + test_name = test_name, + platform = "Siracusa_w_neureka", + simulator = "gvsoc", + deeploy_test_dir = deeploy_test_dir, + toolchain = toolchain, + toolchain_dir = toolchain_dir, + cmake_args = cmake_args, + tiling = True, + cores = NEUREKA_DEFAULT_CORES, + l1 = l1, + default_mem_level = "L2", + double_buffer = False, ) run_and_assert_test(test_name, config, skipgen, skipsim) @@ -656,24 +656,24 @@ def test_siracusa_neureka_tiled_kernels_l2_singlebuffer(test_params, deeploy_tes @pytest.mark.parametrize( "test_params", generate_test_params(NEUREKA_L2_DOUBLEBUFFER_KERNELS, "L2-doublebuffer"), - ids=param_id, + ids = param_id, ) def test_siracusa_neureka_tiled_kernels_l2_doublebuffer(test_params, deeploy_test_dir, toolchain, toolchain_dir, cmake_args, skipgen, skipsim) -> None: test_name, l1, config_name = test_params config = create_test_config( - test_name=test_name, - platform="Siracusa_w_neureka", - simulator="gvsoc", - deeploy_test_dir=deeploy_test_dir, - toolchain=toolchain, - toolchain_dir=toolchain_dir, - cmake_args=cmake_args, - tiling=True, - cores=NEUREKA_DEFAULT_CORES, - l1=l1, - default_mem_level="L2", - double_buffer=True, + test_name = test_name, + platform = "Siracusa_w_neureka", + simulator = "gvsoc", + deeploy_test_dir = deeploy_test_dir, + toolchain = toolchain, + toolchain_dir = toolchain_dir, + cmake_args = cmake_args, + tiling = True, + cores = NEUREKA_DEFAULT_CORES, + l1 = l1, + default_mem_level = "L2", + double_buffer = True, ) run_and_assert_test(test_name, config, skipgen, skipsim) @@ -685,24 +685,24 @@ def test_siracusa_neureka_tiled_kernels_l2_doublebuffer(test_params, deeploy_tes @pytest.mark.parametrize( "test_params", generate_test_params(NEUREKA_L3_SINGLEBUFFER_MODELS, "L3-singlebuffer"), - ids=param_id, + ids = param_id, ) def test_siracusa_neureka_tiled_models_l3_singlebuffer(test_params, deeploy_test_dir, toolchain, toolchain_dir, cmake_args, skipgen, skipsim) -> None: test_name, l1, config_name = test_params config = create_test_config( - test_name=test_name, - platform="Siracusa_w_neureka", - simulator="gvsoc", - deeploy_test_dir=deeploy_test_dir, - toolchain=toolchain, - toolchain_dir=toolchain_dir, - cmake_args=cmake_args, - tiling=True, - cores=NEUREKA_DEFAULT_CORES, - l1=l1, - default_mem_level="L3", - double_buffer=False, + test_name = test_name, + platform = "Siracusa_w_neureka", + simulator = "gvsoc", + deeploy_test_dir = deeploy_test_dir, + toolchain = toolchain, + toolchain_dir = toolchain_dir, + cmake_args = cmake_args, + tiling = True, + cores = NEUREKA_DEFAULT_CORES, + l1 = l1, + default_mem_level = "L3", + double_buffer = False, ) run_and_assert_test(test_name, config, skipgen, skipsim) @@ -714,24 +714,24 @@ def test_siracusa_neureka_tiled_models_l3_singlebuffer(test_params, deeploy_test @pytest.mark.parametrize( "test_params", generate_test_params(NEUREKA_L3_DOUBLEBUFFER_MODELS, "L3-doublebuffer"), - ids=param_id, + ids = param_id, ) def test_siracusa_neureka_tiled_models_l3_doublebuffer(test_params, deeploy_test_dir, toolchain, toolchain_dir, cmake_args, skipgen, skipsim) -> None: test_name, l1, config_name = test_params config = create_test_config( - test_name=test_name, - platform="Siracusa_w_neureka", - simulator="gvsoc", - deeploy_test_dir=deeploy_test_dir, - toolchain=toolchain, - toolchain_dir=toolchain_dir, - cmake_args=cmake_args, - tiling=True, - cores=NEUREKA_DEFAULT_CORES, - l1=l1, - default_mem_level="L3", - double_buffer=True, + test_name = test_name, + platform = "Siracusa_w_neureka", + simulator = "gvsoc", + deeploy_test_dir = deeploy_test_dir, + toolchain = toolchain, + toolchain_dir = toolchain_dir, + cmake_args = cmake_args, + tiling = True, + cores = NEUREKA_DEFAULT_CORES, + l1 = l1, + default_mem_level = "L3", + double_buffer = True, ) run_and_assert_test(test_name, config, skipgen, skipsim) @@ -744,25 +744,25 @@ def test_siracusa_neureka_tiled_models_l3_doublebuffer(test_params, deeploy_test @pytest.mark.parametrize( "test_params", generate_test_params(NEUREKA_L2_SINGLEBUFFER_KERNELS_WMEM, "L2-singlebuffer-wmem"), - ids=param_id, + ids = param_id, ) def test_siracusa_neureka_tiled_kernels_l2_singlebuffer_wmem(test_params, deeploy_test_dir, toolchain, toolchain_dir, cmake_args, skipgen, skipsim) -> None: test_name, l1, config_name = test_params config = create_test_config( - test_name=test_name, - platform="Siracusa_w_neureka", - simulator="gvsoc", - deeploy_test_dir=deeploy_test_dir, - toolchain=toolchain, - toolchain_dir=toolchain_dir, - cmake_args=cmake_args, - tiling=True, - cores=NEUREKA_DEFAULT_CORES, - l1=l1, - default_mem_level="L2", - double_buffer=False, - gen_args=["--neureka-wmem"], + test_name = test_name, + platform = "Siracusa_w_neureka", + simulator = "gvsoc", + deeploy_test_dir = deeploy_test_dir, + toolchain = toolchain, + toolchain_dir = toolchain_dir, + cmake_args = cmake_args, + tiling = True, + cores = NEUREKA_DEFAULT_CORES, + l1 = l1, + default_mem_level = "L2", + double_buffer = False, + gen_args = ["--neureka-wmem"], ) run_and_assert_test(test_name, config, skipgen, skipsim) @@ -775,25 +775,25 @@ def test_siracusa_neureka_tiled_kernels_l2_singlebuffer_wmem(test_params, deeplo @pytest.mark.parametrize( "test_params", generate_test_params(NEUREKA_L3_DOUBLEBUFFER_MODELS_WMEM, "L3-doublebuffer-wmem"), - ids=param_id, + ids = param_id, ) def test_siracusa_neureka_tiled_models_l3_doublebuffer_wmem(test_params, deeploy_test_dir, toolchain, toolchain_dir, cmake_args, skipgen, skipsim) -> None: test_name, l1, config_name = test_params config = create_test_config( - test_name=test_name, - platform="Siracusa_w_neureka", - simulator="gvsoc", - deeploy_test_dir=deeploy_test_dir, - toolchain=toolchain, - toolchain_dir=toolchain_dir, - cmake_args=cmake_args, - tiling=True, - cores=NEUREKA_DEFAULT_CORES, - l1=l1, - default_mem_level="L3", - double_buffer=True, - gen_args=["--neureka-wmem"], + test_name = test_name, + platform = "Siracusa_w_neureka", + simulator = "gvsoc", + deeploy_test_dir = deeploy_test_dir, + toolchain = toolchain, + toolchain_dir = toolchain_dir, + cmake_args = cmake_args, + tiling = True, + cores = NEUREKA_DEFAULT_CORES, + l1 = l1, + default_mem_level = "L3", + double_buffer = True, + gen_args = ["--neureka-wmem"], ) run_and_assert_test(test_name, config, skipgen, skipsim) diff --git a/TargetLibraries/Snitch/src/snitch_nn_add_i8_i8_i8.c b/TargetLibraries/Snitch/src/snitch_nn_add_i8_i8_i8.c index 03478b2048..b735e60704 100644 --- a/TargetLibraries/Snitch/src/snitch_nn_add_i8_i8_i8.c +++ b/TargetLibraries/Snitch/src/snitch_nn_add_i8_i8_i8.c @@ -6,11 +6,13 @@ #include "DeeploySnitchMath.h" -void __attribute__((noinline)) snitch_nn_add_i8_i8_i8( - int8_t *pIn1, int8_t *pIn2, int8_t *pOut, int32_t in1_mul, int32_t in1_add, - uint16_t in1_shift, int32_t in2_mul, int32_t in2_add, uint16_t in2_shift, - int32_t out_mul, int32_t out_add, uint16_t out_shift, uint16_t dim_im_in_x, - uint16_t dim_im_in_y, uint16_t ch_im_in, int out_requant_flag) { +void __attribute__((noinline)) +snitch_nn_add_i8_i8_i8(int8_t *pIn1, int8_t *pIn2, int8_t *pOut, + int32_t in1_mul, int32_t in1_add, uint16_t in1_shift, + int32_t in2_mul, int32_t in2_add, uint16_t in2_shift, + int32_t out_mul, int32_t out_add, uint16_t out_shift, + uint16_t dim_im_in_x, uint16_t dim_im_in_y, + uint16_t ch_im_in, int out_requant_flag) { int core_id = snrt_global_compute_core_idx(); int n_cores = snrt_global_compute_core_num(); From be964130e48b6f1c071a0bdb010c78f327b4d1d1 Mon Sep 17 00:00:00 2001 From: lee2716 Date: Fri, 6 Feb 2026 11:27:03 +0100 Subject: [PATCH 27/57] update test paths for reorganized RMSNorm and microLlama directories, remove redundant code --- .../workflows/ci-platform-snitch-tiled.yml | 4 +-- .github/workflows/ci-platform-snitch.yml | 4 +-- .../Snitch/Templates/TransposeTemplate.py | 2 +- .../RMSNorm/{ => separate_ops}/inputs.npz | Bin .../RMSNorm/{ => separate_ops}/network.onnx | Bin .../RMSNorm/{ => separate_ops}/outputs.npz | Bin .../single_fused_op}/inputs.npz | Bin .../single_fused_op}/network.onnx | Bin .../single_fused_op}/outputs.npz | Bin .../microLlama1}/activations.npz | Bin .../microLlama1}/inputs.npz | Bin .../microLlama1}/network.onnx | Bin .../microLlama1}/outputs.npz | Bin .../{ => INT8}/microLlama1/activations.npz | Bin .../{ => INT8}/microLlama1/inputs.npz | Bin .../{ => INT8}/microLlama1/network.onnx | Bin .../{ => INT8}/microLlama1/outputs.npz | Bin .../{ => INT8}/microLlama128/activations.npz | Bin .../{ => INT8}/microLlama128/inputs.npz | Bin .../{ => INT8}/microLlama128/network.onnx | Bin .../{ => INT8}/microLlama128/outputs.npz | Bin .../{ => INT8}/microLlama16/activations.npz | Bin .../{ => INT8}/microLlama16/inputs.npz | Bin .../{ => INT8}/microLlama16/network.onnx | Bin .../{ => INT8}/microLlama16/outputs.npz | Bin .../microLlama16_parallel/activations.npz | Bin .../microLlama16_parallel/inputs.npz | Bin .../microLlama16_parallel/network.onnx | Bin .../microLlama16_parallel/outputs.npz | Bin .../microLlama1_parallel/activations.npz | Bin .../microLlama1_parallel/inputs.npz | Bin .../microLlama1_parallel/network.onnx | Bin .../microLlama1_parallel/outputs.npz | Bin .../{ => INT8}/microLlama2/activations.npz | Bin .../{ => INT8}/microLlama2/inputs.npz | Bin .../{ => INT8}/microLlama2/network.onnx | Bin .../{ => INT8}/microLlama2/outputs.npz | Bin .../{ => INT8}/microLlama256/activations.npz | Bin .../{ => INT8}/microLlama256/inputs.npz | Bin .../{ => INT8}/microLlama256/network.onnx | Bin .../{ => INT8}/microLlama256/outputs.npz | Bin .../microLlama2_parallel/activations.npz | Bin .../microLlama2_parallel/inputs.npz | Bin .../microLlama2_parallel/network.onnx | Bin .../microLlama2_parallel/outputs.npz | Bin .../{ => INT8}/microLlama32/activations.npz | Bin .../{ => INT8}/microLlama32/inputs.npz | Bin .../{ => INT8}/microLlama32/network.onnx | Bin .../{ => INT8}/microLlama32/outputs.npz | Bin .../microLlama32_parallel/activations.npz | Bin .../microLlama32_parallel/inputs.npz | Bin .../microLlama32_parallel/network.onnx | Bin .../microLlama32_parallel/outputs.npz | Bin .../{ => INT8}/microLlama4/activations.npz | Bin .../{ => INT8}/microLlama4/inputs.npz | Bin .../{ => INT8}/microLlama4/network.onnx | Bin .../{ => INT8}/microLlama4/outputs.npz | Bin .../microLlama4_parallel/activations.npz | Bin .../microLlama4_parallel/inputs.npz | Bin .../microLlama4_parallel/network.onnx | Bin .../microLlama4_parallel/outputs.npz | Bin .../{ => INT8}/microLlama64/activations.npz | Bin .../{ => INT8}/microLlama64/inputs.npz | Bin .../{ => INT8}/microLlama64/network.onnx | Bin .../{ => INT8}/microLlama64/outputs.npz | Bin .../microLlama64_parallel/activations.npz | Bin .../microLlama64_parallel/inputs.npz | Bin .../microLlama64_parallel/network.onnx | Bin .../microLlama64_parallel/outputs.npz | Bin .../{ => INT8}/microLlama8/activations.npz | Bin .../{ => INT8}/microLlama8/inputs.npz | Bin .../{ => INT8}/microLlama8/network.onnx | Bin .../{ => INT8}/microLlama8/outputs.npz | Bin .../microLlama8_parallel/activations.npz | Bin .../microLlama8_parallel/inputs.npz | Bin .../microLlama8_parallel/network.onnx | Bin .../microLlama8_parallel/outputs.npz | Bin DeeployTest/test_generic_config.py | 3 +- .../test_siracusa_neureka_tiled_config.py | 4 +-- DeeployTest/test_siracusa_tiled_config.py | 20 ++++++------- DeeployTest/test_snitch_config.py | 2 +- DeeployTest/test_snitch_tiled_config.py | 2 +- TargetLibraries/Snitch/inc/kernel/Add.h | 3 -- TargetLibraries/Snitch/src/Add_fp32.c | 27 ------------------ 84 files changed, 21 insertions(+), 50 deletions(-) rename DeeployTest/Tests/Kernels/FP32/RMSNorm/{ => separate_ops}/inputs.npz (100%) rename DeeployTest/Tests/Kernels/FP32/RMSNorm/{ => separate_ops}/network.onnx (100%) rename DeeployTest/Tests/Kernels/FP32/RMSNorm/{ => separate_ops}/outputs.npz (100%) rename DeeployTest/Tests/Kernels/FP32/{RMSNorm_fused => RMSNorm/single_fused_op}/inputs.npz (100%) rename DeeployTest/Tests/Kernels/FP32/{RMSNorm_fused => RMSNorm/single_fused_op}/network.onnx (100%) rename DeeployTest/Tests/Kernels/FP32/{RMSNorm_fused => RMSNorm/single_fused_op}/outputs.npz (100%) rename DeeployTest/Tests/Models/microLlama/{microLlama_fp32_1 => FP32/microLlama1}/activations.npz (100%) rename DeeployTest/Tests/Models/microLlama/{microLlama_fp32_1 => FP32/microLlama1}/inputs.npz (100%) rename DeeployTest/Tests/Models/microLlama/{microLlama_fp32_1 => FP32/microLlama1}/network.onnx (100%) rename DeeployTest/Tests/Models/microLlama/{microLlama_fp32_1 => FP32/microLlama1}/outputs.npz (100%) rename DeeployTest/Tests/Models/microLlama/{ => INT8}/microLlama1/activations.npz (100%) rename DeeployTest/Tests/Models/microLlama/{ => INT8}/microLlama1/inputs.npz (100%) rename DeeployTest/Tests/Models/microLlama/{ => INT8}/microLlama1/network.onnx (100%) rename DeeployTest/Tests/Models/microLlama/{ => INT8}/microLlama1/outputs.npz (100%) rename DeeployTest/Tests/Models/microLlama/{ => INT8}/microLlama128/activations.npz (100%) rename DeeployTest/Tests/Models/microLlama/{ => INT8}/microLlama128/inputs.npz (100%) rename DeeployTest/Tests/Models/microLlama/{ => INT8}/microLlama128/network.onnx (100%) rename DeeployTest/Tests/Models/microLlama/{ => INT8}/microLlama128/outputs.npz (100%) rename DeeployTest/Tests/Models/microLlama/{ => INT8}/microLlama16/activations.npz (100%) rename DeeployTest/Tests/Models/microLlama/{ => INT8}/microLlama16/inputs.npz (100%) rename DeeployTest/Tests/Models/microLlama/{ => INT8}/microLlama16/network.onnx (100%) rename DeeployTest/Tests/Models/microLlama/{ => INT8}/microLlama16/outputs.npz (100%) rename DeeployTest/Tests/Models/microLlama/{ => INT8}/microLlama16_parallel/activations.npz (100%) rename DeeployTest/Tests/Models/microLlama/{ => INT8}/microLlama16_parallel/inputs.npz (100%) rename DeeployTest/Tests/Models/microLlama/{ => INT8}/microLlama16_parallel/network.onnx (100%) rename DeeployTest/Tests/Models/microLlama/{ => INT8}/microLlama16_parallel/outputs.npz (100%) rename DeeployTest/Tests/Models/microLlama/{ => INT8}/microLlama1_parallel/activations.npz (100%) rename DeeployTest/Tests/Models/microLlama/{ => INT8}/microLlama1_parallel/inputs.npz (100%) rename DeeployTest/Tests/Models/microLlama/{ => INT8}/microLlama1_parallel/network.onnx (100%) rename DeeployTest/Tests/Models/microLlama/{ => INT8}/microLlama1_parallel/outputs.npz (100%) rename DeeployTest/Tests/Models/microLlama/{ => INT8}/microLlama2/activations.npz (100%) rename DeeployTest/Tests/Models/microLlama/{ => INT8}/microLlama2/inputs.npz (100%) rename DeeployTest/Tests/Models/microLlama/{ => INT8}/microLlama2/network.onnx (100%) rename DeeployTest/Tests/Models/microLlama/{ => INT8}/microLlama2/outputs.npz (100%) rename DeeployTest/Tests/Models/microLlama/{ => INT8}/microLlama256/activations.npz (100%) rename DeeployTest/Tests/Models/microLlama/{ => INT8}/microLlama256/inputs.npz (100%) rename DeeployTest/Tests/Models/microLlama/{ => INT8}/microLlama256/network.onnx (100%) rename DeeployTest/Tests/Models/microLlama/{ => INT8}/microLlama256/outputs.npz (100%) rename DeeployTest/Tests/Models/microLlama/{ => INT8}/microLlama2_parallel/activations.npz (100%) rename DeeployTest/Tests/Models/microLlama/{ => INT8}/microLlama2_parallel/inputs.npz (100%) rename DeeployTest/Tests/Models/microLlama/{ => INT8}/microLlama2_parallel/network.onnx (100%) rename DeeployTest/Tests/Models/microLlama/{ => INT8}/microLlama2_parallel/outputs.npz (100%) rename DeeployTest/Tests/Models/microLlama/{ => INT8}/microLlama32/activations.npz (100%) rename DeeployTest/Tests/Models/microLlama/{ => INT8}/microLlama32/inputs.npz (100%) rename DeeployTest/Tests/Models/microLlama/{ => INT8}/microLlama32/network.onnx (100%) rename DeeployTest/Tests/Models/microLlama/{ => INT8}/microLlama32/outputs.npz (100%) rename DeeployTest/Tests/Models/microLlama/{ => INT8}/microLlama32_parallel/activations.npz (100%) rename DeeployTest/Tests/Models/microLlama/{ => INT8}/microLlama32_parallel/inputs.npz (100%) rename DeeployTest/Tests/Models/microLlama/{ => INT8}/microLlama32_parallel/network.onnx (100%) rename DeeployTest/Tests/Models/microLlama/{ => INT8}/microLlama32_parallel/outputs.npz (100%) rename DeeployTest/Tests/Models/microLlama/{ => INT8}/microLlama4/activations.npz (100%) rename DeeployTest/Tests/Models/microLlama/{ => INT8}/microLlama4/inputs.npz (100%) rename DeeployTest/Tests/Models/microLlama/{ => INT8}/microLlama4/network.onnx (100%) rename DeeployTest/Tests/Models/microLlama/{ => INT8}/microLlama4/outputs.npz (100%) rename DeeployTest/Tests/Models/microLlama/{ => INT8}/microLlama4_parallel/activations.npz (100%) rename DeeployTest/Tests/Models/microLlama/{ => INT8}/microLlama4_parallel/inputs.npz (100%) rename DeeployTest/Tests/Models/microLlama/{ => INT8}/microLlama4_parallel/network.onnx (100%) rename DeeployTest/Tests/Models/microLlama/{ => INT8}/microLlama4_parallel/outputs.npz (100%) rename DeeployTest/Tests/Models/microLlama/{ => INT8}/microLlama64/activations.npz (100%) rename DeeployTest/Tests/Models/microLlama/{ => INT8}/microLlama64/inputs.npz (100%) rename DeeployTest/Tests/Models/microLlama/{ => INT8}/microLlama64/network.onnx (100%) rename DeeployTest/Tests/Models/microLlama/{ => INT8}/microLlama64/outputs.npz (100%) rename DeeployTest/Tests/Models/microLlama/{ => INT8}/microLlama64_parallel/activations.npz (100%) rename DeeployTest/Tests/Models/microLlama/{ => INT8}/microLlama64_parallel/inputs.npz (100%) rename DeeployTest/Tests/Models/microLlama/{ => INT8}/microLlama64_parallel/network.onnx (100%) rename DeeployTest/Tests/Models/microLlama/{ => INT8}/microLlama64_parallel/outputs.npz (100%) rename DeeployTest/Tests/Models/microLlama/{ => INT8}/microLlama8/activations.npz (100%) rename DeeployTest/Tests/Models/microLlama/{ => INT8}/microLlama8/inputs.npz (100%) rename DeeployTest/Tests/Models/microLlama/{ => INT8}/microLlama8/network.onnx (100%) rename DeeployTest/Tests/Models/microLlama/{ => INT8}/microLlama8/outputs.npz (100%) rename DeeployTest/Tests/Models/microLlama/{ => INT8}/microLlama8_parallel/activations.npz (100%) rename DeeployTest/Tests/Models/microLlama/{ => INT8}/microLlama8_parallel/inputs.npz (100%) rename DeeployTest/Tests/Models/microLlama/{ => INT8}/microLlama8_parallel/network.onnx (100%) rename DeeployTest/Tests/Models/microLlama/{ => INT8}/microLlama8_parallel/outputs.npz (100%) diff --git a/.github/workflows/ci-platform-snitch-tiled.yml b/.github/workflows/ci-platform-snitch-tiled.yml index 697da454ea..eedab6641d 100644 --- a/.github/workflows/ci-platform-snitch-tiled.yml +++ b/.github/workflows/ci-platform-snitch-tiled.yml @@ -41,7 +41,7 @@ jobs: {"name":"Kernels/Integer/Softmax/Large","L1":[5000,10000]}, {"name":"Kernels/FP32/Softmax/Regular","L1":[2000,5000,10000]}, - {"name":"Kernels/FP32/RMSNorm_fused","L1":[2000,5000,10000]}, + {"name":"Kernels/FP32/RMSNorm/single_fused_op","L1":[2000,5000,10000]}, {"name":"Kernels/FP32/MatMul","L1":[2000,5000,10000]}, {"name":"Kernels/FP32/Add/Regular","L1":[2000,5000,10000]}, {"name":"Kernels/FP32/Hardswish","L1":[2000,5000,10000]}, @@ -54,7 +54,7 @@ jobs: {"name":"Kernels/Integer/Add/Regular_RQ","L1":[5000,10000]}, {"name":"Kernels/Integer/GEMM/Regular_RQPerRow","L1":[2000,5000]}, - {"name":"Models/microLlama/microLlama_fp32_1","L1":[10000,20000]} + {"name":"Models/microLlama/FP32/microLlama1","L1":[10000,20000]} ] simulators: | gvsoc diff --git a/.github/workflows/ci-platform-snitch.yml b/.github/workflows/ci-platform-snitch.yml index 4a9efae2c5..26f238a3f2 100644 --- a/.github/workflows/ci-platform-snitch.yml +++ b/.github/workflows/ci-platform-snitch.yml @@ -37,7 +37,7 @@ jobs: docker-image: ${{ needs.select-env.outputs.image }} test-names: | Kernels/FP32/Softmax/Regular - Kernels/FP32/RMSNorm_fused + Kernels/FP32/RMSNorm/single_fused_op Kernels/FP32/MatMul Kernels/FP32/Add/Regular Kernels/FP32/Hardswish @@ -56,7 +56,7 @@ jobs: Kernels/Integer/Add/Regular_RQ Kernels/Integer/GEMM/TransB_RQ - Models/microLlama/microLlama_fp32_1 + Models/microLlama/FP32/microLlama1 num-cores: 9 simulators: | gvsoc diff --git a/Deeploy/Targets/Snitch/Templates/TransposeTemplate.py b/Deeploy/Targets/Snitch/Templates/TransposeTemplate.py index 9d2d3954ac..9de7433918 100644 --- a/Deeploy/Targets/Snitch/Templates/TransposeTemplate.py +++ b/Deeploy/Targets/Snitch/Templates/TransposeTemplate.py @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: 2024 ETH Zurich and University of Bologna +# SPDX-FileCopyrightText: 2026 ETH Zurich and University of Bologna # # SPDX-License-Identifier: Apache-2.0 diff --git a/DeeployTest/Tests/Kernels/FP32/RMSNorm/inputs.npz b/DeeployTest/Tests/Kernels/FP32/RMSNorm/separate_ops/inputs.npz similarity index 100% rename from DeeployTest/Tests/Kernels/FP32/RMSNorm/inputs.npz rename to DeeployTest/Tests/Kernels/FP32/RMSNorm/separate_ops/inputs.npz diff --git a/DeeployTest/Tests/Kernels/FP32/RMSNorm/network.onnx b/DeeployTest/Tests/Kernels/FP32/RMSNorm/separate_ops/network.onnx similarity index 100% rename from DeeployTest/Tests/Kernels/FP32/RMSNorm/network.onnx rename to DeeployTest/Tests/Kernels/FP32/RMSNorm/separate_ops/network.onnx diff --git a/DeeployTest/Tests/Kernels/FP32/RMSNorm/outputs.npz b/DeeployTest/Tests/Kernels/FP32/RMSNorm/separate_ops/outputs.npz similarity index 100% rename from DeeployTest/Tests/Kernels/FP32/RMSNorm/outputs.npz rename to DeeployTest/Tests/Kernels/FP32/RMSNorm/separate_ops/outputs.npz diff --git a/DeeployTest/Tests/Kernels/FP32/RMSNorm_fused/inputs.npz b/DeeployTest/Tests/Kernels/FP32/RMSNorm/single_fused_op/inputs.npz similarity index 100% rename from DeeployTest/Tests/Kernels/FP32/RMSNorm_fused/inputs.npz rename to DeeployTest/Tests/Kernels/FP32/RMSNorm/single_fused_op/inputs.npz diff --git a/DeeployTest/Tests/Kernels/FP32/RMSNorm_fused/network.onnx b/DeeployTest/Tests/Kernels/FP32/RMSNorm/single_fused_op/network.onnx similarity index 100% rename from DeeployTest/Tests/Kernels/FP32/RMSNorm_fused/network.onnx rename to DeeployTest/Tests/Kernels/FP32/RMSNorm/single_fused_op/network.onnx diff --git a/DeeployTest/Tests/Kernels/FP32/RMSNorm_fused/outputs.npz b/DeeployTest/Tests/Kernels/FP32/RMSNorm/single_fused_op/outputs.npz similarity index 100% rename from DeeployTest/Tests/Kernels/FP32/RMSNorm_fused/outputs.npz rename to DeeployTest/Tests/Kernels/FP32/RMSNorm/single_fused_op/outputs.npz diff --git a/DeeployTest/Tests/Models/microLlama/microLlama_fp32_1/activations.npz b/DeeployTest/Tests/Models/microLlama/FP32/microLlama1/activations.npz similarity index 100% rename from DeeployTest/Tests/Models/microLlama/microLlama_fp32_1/activations.npz rename to DeeployTest/Tests/Models/microLlama/FP32/microLlama1/activations.npz diff --git a/DeeployTest/Tests/Models/microLlama/microLlama_fp32_1/inputs.npz b/DeeployTest/Tests/Models/microLlama/FP32/microLlama1/inputs.npz similarity index 100% rename from DeeployTest/Tests/Models/microLlama/microLlama_fp32_1/inputs.npz rename to DeeployTest/Tests/Models/microLlama/FP32/microLlama1/inputs.npz diff --git a/DeeployTest/Tests/Models/microLlama/microLlama_fp32_1/network.onnx b/DeeployTest/Tests/Models/microLlama/FP32/microLlama1/network.onnx similarity index 100% rename from DeeployTest/Tests/Models/microLlama/microLlama_fp32_1/network.onnx rename to DeeployTest/Tests/Models/microLlama/FP32/microLlama1/network.onnx diff --git a/DeeployTest/Tests/Models/microLlama/microLlama_fp32_1/outputs.npz b/DeeployTest/Tests/Models/microLlama/FP32/microLlama1/outputs.npz similarity index 100% rename from DeeployTest/Tests/Models/microLlama/microLlama_fp32_1/outputs.npz rename to DeeployTest/Tests/Models/microLlama/FP32/microLlama1/outputs.npz diff --git a/DeeployTest/Tests/Models/microLlama/microLlama1/activations.npz b/DeeployTest/Tests/Models/microLlama/INT8/microLlama1/activations.npz similarity index 100% rename from DeeployTest/Tests/Models/microLlama/microLlama1/activations.npz rename to DeeployTest/Tests/Models/microLlama/INT8/microLlama1/activations.npz diff --git a/DeeployTest/Tests/Models/microLlama/microLlama1/inputs.npz b/DeeployTest/Tests/Models/microLlama/INT8/microLlama1/inputs.npz similarity index 100% rename from DeeployTest/Tests/Models/microLlama/microLlama1/inputs.npz rename to DeeployTest/Tests/Models/microLlama/INT8/microLlama1/inputs.npz diff --git a/DeeployTest/Tests/Models/microLlama/microLlama1/network.onnx b/DeeployTest/Tests/Models/microLlama/INT8/microLlama1/network.onnx similarity index 100% rename from DeeployTest/Tests/Models/microLlama/microLlama1/network.onnx rename to DeeployTest/Tests/Models/microLlama/INT8/microLlama1/network.onnx diff --git a/DeeployTest/Tests/Models/microLlama/microLlama1/outputs.npz b/DeeployTest/Tests/Models/microLlama/INT8/microLlama1/outputs.npz similarity index 100% rename from DeeployTest/Tests/Models/microLlama/microLlama1/outputs.npz rename to DeeployTest/Tests/Models/microLlama/INT8/microLlama1/outputs.npz diff --git a/DeeployTest/Tests/Models/microLlama/microLlama128/activations.npz b/DeeployTest/Tests/Models/microLlama/INT8/microLlama128/activations.npz similarity index 100% rename from DeeployTest/Tests/Models/microLlama/microLlama128/activations.npz rename to DeeployTest/Tests/Models/microLlama/INT8/microLlama128/activations.npz diff --git a/DeeployTest/Tests/Models/microLlama/microLlama128/inputs.npz b/DeeployTest/Tests/Models/microLlama/INT8/microLlama128/inputs.npz similarity index 100% rename from DeeployTest/Tests/Models/microLlama/microLlama128/inputs.npz rename to DeeployTest/Tests/Models/microLlama/INT8/microLlama128/inputs.npz diff --git a/DeeployTest/Tests/Models/microLlama/microLlama128/network.onnx b/DeeployTest/Tests/Models/microLlama/INT8/microLlama128/network.onnx similarity index 100% rename from DeeployTest/Tests/Models/microLlama/microLlama128/network.onnx rename to DeeployTest/Tests/Models/microLlama/INT8/microLlama128/network.onnx diff --git a/DeeployTest/Tests/Models/microLlama/microLlama128/outputs.npz b/DeeployTest/Tests/Models/microLlama/INT8/microLlama128/outputs.npz similarity index 100% rename from DeeployTest/Tests/Models/microLlama/microLlama128/outputs.npz rename to DeeployTest/Tests/Models/microLlama/INT8/microLlama128/outputs.npz diff --git a/DeeployTest/Tests/Models/microLlama/microLlama16/activations.npz b/DeeployTest/Tests/Models/microLlama/INT8/microLlama16/activations.npz similarity index 100% rename from DeeployTest/Tests/Models/microLlama/microLlama16/activations.npz rename to DeeployTest/Tests/Models/microLlama/INT8/microLlama16/activations.npz diff --git a/DeeployTest/Tests/Models/microLlama/microLlama16/inputs.npz b/DeeployTest/Tests/Models/microLlama/INT8/microLlama16/inputs.npz similarity index 100% rename from DeeployTest/Tests/Models/microLlama/microLlama16/inputs.npz rename to DeeployTest/Tests/Models/microLlama/INT8/microLlama16/inputs.npz diff --git a/DeeployTest/Tests/Models/microLlama/microLlama16/network.onnx b/DeeployTest/Tests/Models/microLlama/INT8/microLlama16/network.onnx similarity index 100% rename from DeeployTest/Tests/Models/microLlama/microLlama16/network.onnx rename to DeeployTest/Tests/Models/microLlama/INT8/microLlama16/network.onnx diff --git a/DeeployTest/Tests/Models/microLlama/microLlama16/outputs.npz b/DeeployTest/Tests/Models/microLlama/INT8/microLlama16/outputs.npz similarity index 100% rename from DeeployTest/Tests/Models/microLlama/microLlama16/outputs.npz rename to DeeployTest/Tests/Models/microLlama/INT8/microLlama16/outputs.npz diff --git a/DeeployTest/Tests/Models/microLlama/microLlama16_parallel/activations.npz b/DeeployTest/Tests/Models/microLlama/INT8/microLlama16_parallel/activations.npz similarity index 100% rename from DeeployTest/Tests/Models/microLlama/microLlama16_parallel/activations.npz rename to DeeployTest/Tests/Models/microLlama/INT8/microLlama16_parallel/activations.npz diff --git a/DeeployTest/Tests/Models/microLlama/microLlama16_parallel/inputs.npz b/DeeployTest/Tests/Models/microLlama/INT8/microLlama16_parallel/inputs.npz similarity index 100% rename from DeeployTest/Tests/Models/microLlama/microLlama16_parallel/inputs.npz rename to DeeployTest/Tests/Models/microLlama/INT8/microLlama16_parallel/inputs.npz diff --git a/DeeployTest/Tests/Models/microLlama/microLlama16_parallel/network.onnx b/DeeployTest/Tests/Models/microLlama/INT8/microLlama16_parallel/network.onnx similarity index 100% rename from DeeployTest/Tests/Models/microLlama/microLlama16_parallel/network.onnx rename to DeeployTest/Tests/Models/microLlama/INT8/microLlama16_parallel/network.onnx diff --git a/DeeployTest/Tests/Models/microLlama/microLlama16_parallel/outputs.npz b/DeeployTest/Tests/Models/microLlama/INT8/microLlama16_parallel/outputs.npz similarity index 100% rename from DeeployTest/Tests/Models/microLlama/microLlama16_parallel/outputs.npz rename to DeeployTest/Tests/Models/microLlama/INT8/microLlama16_parallel/outputs.npz diff --git a/DeeployTest/Tests/Models/microLlama/microLlama1_parallel/activations.npz b/DeeployTest/Tests/Models/microLlama/INT8/microLlama1_parallel/activations.npz similarity index 100% rename from DeeployTest/Tests/Models/microLlama/microLlama1_parallel/activations.npz rename to DeeployTest/Tests/Models/microLlama/INT8/microLlama1_parallel/activations.npz diff --git a/DeeployTest/Tests/Models/microLlama/microLlama1_parallel/inputs.npz b/DeeployTest/Tests/Models/microLlama/INT8/microLlama1_parallel/inputs.npz similarity index 100% rename from DeeployTest/Tests/Models/microLlama/microLlama1_parallel/inputs.npz rename to DeeployTest/Tests/Models/microLlama/INT8/microLlama1_parallel/inputs.npz diff --git a/DeeployTest/Tests/Models/microLlama/microLlama1_parallel/network.onnx b/DeeployTest/Tests/Models/microLlama/INT8/microLlama1_parallel/network.onnx similarity index 100% rename from DeeployTest/Tests/Models/microLlama/microLlama1_parallel/network.onnx rename to DeeployTest/Tests/Models/microLlama/INT8/microLlama1_parallel/network.onnx diff --git a/DeeployTest/Tests/Models/microLlama/microLlama1_parallel/outputs.npz b/DeeployTest/Tests/Models/microLlama/INT8/microLlama1_parallel/outputs.npz similarity index 100% rename from DeeployTest/Tests/Models/microLlama/microLlama1_parallel/outputs.npz rename to DeeployTest/Tests/Models/microLlama/INT8/microLlama1_parallel/outputs.npz diff --git a/DeeployTest/Tests/Models/microLlama/microLlama2/activations.npz b/DeeployTest/Tests/Models/microLlama/INT8/microLlama2/activations.npz similarity index 100% rename from DeeployTest/Tests/Models/microLlama/microLlama2/activations.npz rename to DeeployTest/Tests/Models/microLlama/INT8/microLlama2/activations.npz diff --git a/DeeployTest/Tests/Models/microLlama/microLlama2/inputs.npz b/DeeployTest/Tests/Models/microLlama/INT8/microLlama2/inputs.npz similarity index 100% rename from DeeployTest/Tests/Models/microLlama/microLlama2/inputs.npz rename to DeeployTest/Tests/Models/microLlama/INT8/microLlama2/inputs.npz diff --git a/DeeployTest/Tests/Models/microLlama/microLlama2/network.onnx b/DeeployTest/Tests/Models/microLlama/INT8/microLlama2/network.onnx similarity index 100% rename from DeeployTest/Tests/Models/microLlama/microLlama2/network.onnx rename to DeeployTest/Tests/Models/microLlama/INT8/microLlama2/network.onnx diff --git a/DeeployTest/Tests/Models/microLlama/microLlama2/outputs.npz b/DeeployTest/Tests/Models/microLlama/INT8/microLlama2/outputs.npz similarity index 100% rename from DeeployTest/Tests/Models/microLlama/microLlama2/outputs.npz rename to DeeployTest/Tests/Models/microLlama/INT8/microLlama2/outputs.npz diff --git a/DeeployTest/Tests/Models/microLlama/microLlama256/activations.npz b/DeeployTest/Tests/Models/microLlama/INT8/microLlama256/activations.npz similarity index 100% rename from DeeployTest/Tests/Models/microLlama/microLlama256/activations.npz rename to DeeployTest/Tests/Models/microLlama/INT8/microLlama256/activations.npz diff --git a/DeeployTest/Tests/Models/microLlama/microLlama256/inputs.npz b/DeeployTest/Tests/Models/microLlama/INT8/microLlama256/inputs.npz similarity index 100% rename from DeeployTest/Tests/Models/microLlama/microLlama256/inputs.npz rename to DeeployTest/Tests/Models/microLlama/INT8/microLlama256/inputs.npz diff --git a/DeeployTest/Tests/Models/microLlama/microLlama256/network.onnx b/DeeployTest/Tests/Models/microLlama/INT8/microLlama256/network.onnx similarity index 100% rename from DeeployTest/Tests/Models/microLlama/microLlama256/network.onnx rename to DeeployTest/Tests/Models/microLlama/INT8/microLlama256/network.onnx diff --git a/DeeployTest/Tests/Models/microLlama/microLlama256/outputs.npz b/DeeployTest/Tests/Models/microLlama/INT8/microLlama256/outputs.npz similarity index 100% rename from DeeployTest/Tests/Models/microLlama/microLlama256/outputs.npz rename to DeeployTest/Tests/Models/microLlama/INT8/microLlama256/outputs.npz diff --git a/DeeployTest/Tests/Models/microLlama/microLlama2_parallel/activations.npz b/DeeployTest/Tests/Models/microLlama/INT8/microLlama2_parallel/activations.npz similarity index 100% rename from DeeployTest/Tests/Models/microLlama/microLlama2_parallel/activations.npz rename to DeeployTest/Tests/Models/microLlama/INT8/microLlama2_parallel/activations.npz diff --git a/DeeployTest/Tests/Models/microLlama/microLlama2_parallel/inputs.npz b/DeeployTest/Tests/Models/microLlama/INT8/microLlama2_parallel/inputs.npz similarity index 100% rename from DeeployTest/Tests/Models/microLlama/microLlama2_parallel/inputs.npz rename to DeeployTest/Tests/Models/microLlama/INT8/microLlama2_parallel/inputs.npz diff --git a/DeeployTest/Tests/Models/microLlama/microLlama2_parallel/network.onnx b/DeeployTest/Tests/Models/microLlama/INT8/microLlama2_parallel/network.onnx similarity index 100% rename from DeeployTest/Tests/Models/microLlama/microLlama2_parallel/network.onnx rename to DeeployTest/Tests/Models/microLlama/INT8/microLlama2_parallel/network.onnx diff --git a/DeeployTest/Tests/Models/microLlama/microLlama2_parallel/outputs.npz b/DeeployTest/Tests/Models/microLlama/INT8/microLlama2_parallel/outputs.npz similarity index 100% rename from DeeployTest/Tests/Models/microLlama/microLlama2_parallel/outputs.npz rename to DeeployTest/Tests/Models/microLlama/INT8/microLlama2_parallel/outputs.npz diff --git a/DeeployTest/Tests/Models/microLlama/microLlama32/activations.npz b/DeeployTest/Tests/Models/microLlama/INT8/microLlama32/activations.npz similarity index 100% rename from DeeployTest/Tests/Models/microLlama/microLlama32/activations.npz rename to DeeployTest/Tests/Models/microLlama/INT8/microLlama32/activations.npz diff --git a/DeeployTest/Tests/Models/microLlama/microLlama32/inputs.npz b/DeeployTest/Tests/Models/microLlama/INT8/microLlama32/inputs.npz similarity index 100% rename from DeeployTest/Tests/Models/microLlama/microLlama32/inputs.npz rename to DeeployTest/Tests/Models/microLlama/INT8/microLlama32/inputs.npz diff --git a/DeeployTest/Tests/Models/microLlama/microLlama32/network.onnx b/DeeployTest/Tests/Models/microLlama/INT8/microLlama32/network.onnx similarity index 100% rename from DeeployTest/Tests/Models/microLlama/microLlama32/network.onnx rename to DeeployTest/Tests/Models/microLlama/INT8/microLlama32/network.onnx diff --git a/DeeployTest/Tests/Models/microLlama/microLlama32/outputs.npz b/DeeployTest/Tests/Models/microLlama/INT8/microLlama32/outputs.npz similarity index 100% rename from DeeployTest/Tests/Models/microLlama/microLlama32/outputs.npz rename to DeeployTest/Tests/Models/microLlama/INT8/microLlama32/outputs.npz diff --git a/DeeployTest/Tests/Models/microLlama/microLlama32_parallel/activations.npz b/DeeployTest/Tests/Models/microLlama/INT8/microLlama32_parallel/activations.npz similarity index 100% rename from DeeployTest/Tests/Models/microLlama/microLlama32_parallel/activations.npz rename to DeeployTest/Tests/Models/microLlama/INT8/microLlama32_parallel/activations.npz diff --git a/DeeployTest/Tests/Models/microLlama/microLlama32_parallel/inputs.npz b/DeeployTest/Tests/Models/microLlama/INT8/microLlama32_parallel/inputs.npz similarity index 100% rename from DeeployTest/Tests/Models/microLlama/microLlama32_parallel/inputs.npz rename to DeeployTest/Tests/Models/microLlama/INT8/microLlama32_parallel/inputs.npz diff --git a/DeeployTest/Tests/Models/microLlama/microLlama32_parallel/network.onnx b/DeeployTest/Tests/Models/microLlama/INT8/microLlama32_parallel/network.onnx similarity index 100% rename from DeeployTest/Tests/Models/microLlama/microLlama32_parallel/network.onnx rename to DeeployTest/Tests/Models/microLlama/INT8/microLlama32_parallel/network.onnx diff --git a/DeeployTest/Tests/Models/microLlama/microLlama32_parallel/outputs.npz b/DeeployTest/Tests/Models/microLlama/INT8/microLlama32_parallel/outputs.npz similarity index 100% rename from DeeployTest/Tests/Models/microLlama/microLlama32_parallel/outputs.npz rename to DeeployTest/Tests/Models/microLlama/INT8/microLlama32_parallel/outputs.npz diff --git a/DeeployTest/Tests/Models/microLlama/microLlama4/activations.npz b/DeeployTest/Tests/Models/microLlama/INT8/microLlama4/activations.npz similarity index 100% rename from DeeployTest/Tests/Models/microLlama/microLlama4/activations.npz rename to DeeployTest/Tests/Models/microLlama/INT8/microLlama4/activations.npz diff --git a/DeeployTest/Tests/Models/microLlama/microLlama4/inputs.npz b/DeeployTest/Tests/Models/microLlama/INT8/microLlama4/inputs.npz similarity index 100% rename from DeeployTest/Tests/Models/microLlama/microLlama4/inputs.npz rename to DeeployTest/Tests/Models/microLlama/INT8/microLlama4/inputs.npz diff --git a/DeeployTest/Tests/Models/microLlama/microLlama4/network.onnx b/DeeployTest/Tests/Models/microLlama/INT8/microLlama4/network.onnx similarity index 100% rename from DeeployTest/Tests/Models/microLlama/microLlama4/network.onnx rename to DeeployTest/Tests/Models/microLlama/INT8/microLlama4/network.onnx diff --git a/DeeployTest/Tests/Models/microLlama/microLlama4/outputs.npz b/DeeployTest/Tests/Models/microLlama/INT8/microLlama4/outputs.npz similarity index 100% rename from DeeployTest/Tests/Models/microLlama/microLlama4/outputs.npz rename to DeeployTest/Tests/Models/microLlama/INT8/microLlama4/outputs.npz diff --git a/DeeployTest/Tests/Models/microLlama/microLlama4_parallel/activations.npz b/DeeployTest/Tests/Models/microLlama/INT8/microLlama4_parallel/activations.npz similarity index 100% rename from DeeployTest/Tests/Models/microLlama/microLlama4_parallel/activations.npz rename to DeeployTest/Tests/Models/microLlama/INT8/microLlama4_parallel/activations.npz diff --git a/DeeployTest/Tests/Models/microLlama/microLlama4_parallel/inputs.npz b/DeeployTest/Tests/Models/microLlama/INT8/microLlama4_parallel/inputs.npz similarity index 100% rename from DeeployTest/Tests/Models/microLlama/microLlama4_parallel/inputs.npz rename to DeeployTest/Tests/Models/microLlama/INT8/microLlama4_parallel/inputs.npz diff --git a/DeeployTest/Tests/Models/microLlama/microLlama4_parallel/network.onnx b/DeeployTest/Tests/Models/microLlama/INT8/microLlama4_parallel/network.onnx similarity index 100% rename from DeeployTest/Tests/Models/microLlama/microLlama4_parallel/network.onnx rename to DeeployTest/Tests/Models/microLlama/INT8/microLlama4_parallel/network.onnx diff --git a/DeeployTest/Tests/Models/microLlama/microLlama4_parallel/outputs.npz b/DeeployTest/Tests/Models/microLlama/INT8/microLlama4_parallel/outputs.npz similarity index 100% rename from DeeployTest/Tests/Models/microLlama/microLlama4_parallel/outputs.npz rename to DeeployTest/Tests/Models/microLlama/INT8/microLlama4_parallel/outputs.npz diff --git a/DeeployTest/Tests/Models/microLlama/microLlama64/activations.npz b/DeeployTest/Tests/Models/microLlama/INT8/microLlama64/activations.npz similarity index 100% rename from DeeployTest/Tests/Models/microLlama/microLlama64/activations.npz rename to DeeployTest/Tests/Models/microLlama/INT8/microLlama64/activations.npz diff --git a/DeeployTest/Tests/Models/microLlama/microLlama64/inputs.npz b/DeeployTest/Tests/Models/microLlama/INT8/microLlama64/inputs.npz similarity index 100% rename from DeeployTest/Tests/Models/microLlama/microLlama64/inputs.npz rename to DeeployTest/Tests/Models/microLlama/INT8/microLlama64/inputs.npz diff --git a/DeeployTest/Tests/Models/microLlama/microLlama64/network.onnx b/DeeployTest/Tests/Models/microLlama/INT8/microLlama64/network.onnx similarity index 100% rename from DeeployTest/Tests/Models/microLlama/microLlama64/network.onnx rename to DeeployTest/Tests/Models/microLlama/INT8/microLlama64/network.onnx diff --git a/DeeployTest/Tests/Models/microLlama/microLlama64/outputs.npz b/DeeployTest/Tests/Models/microLlama/INT8/microLlama64/outputs.npz similarity index 100% rename from DeeployTest/Tests/Models/microLlama/microLlama64/outputs.npz rename to DeeployTest/Tests/Models/microLlama/INT8/microLlama64/outputs.npz diff --git a/DeeployTest/Tests/Models/microLlama/microLlama64_parallel/activations.npz b/DeeployTest/Tests/Models/microLlama/INT8/microLlama64_parallel/activations.npz similarity index 100% rename from DeeployTest/Tests/Models/microLlama/microLlama64_parallel/activations.npz rename to DeeployTest/Tests/Models/microLlama/INT8/microLlama64_parallel/activations.npz diff --git a/DeeployTest/Tests/Models/microLlama/microLlama64_parallel/inputs.npz b/DeeployTest/Tests/Models/microLlama/INT8/microLlama64_parallel/inputs.npz similarity index 100% rename from DeeployTest/Tests/Models/microLlama/microLlama64_parallel/inputs.npz rename to DeeployTest/Tests/Models/microLlama/INT8/microLlama64_parallel/inputs.npz diff --git a/DeeployTest/Tests/Models/microLlama/microLlama64_parallel/network.onnx b/DeeployTest/Tests/Models/microLlama/INT8/microLlama64_parallel/network.onnx similarity index 100% rename from DeeployTest/Tests/Models/microLlama/microLlama64_parallel/network.onnx rename to DeeployTest/Tests/Models/microLlama/INT8/microLlama64_parallel/network.onnx diff --git a/DeeployTest/Tests/Models/microLlama/microLlama64_parallel/outputs.npz b/DeeployTest/Tests/Models/microLlama/INT8/microLlama64_parallel/outputs.npz similarity index 100% rename from DeeployTest/Tests/Models/microLlama/microLlama64_parallel/outputs.npz rename to DeeployTest/Tests/Models/microLlama/INT8/microLlama64_parallel/outputs.npz diff --git a/DeeployTest/Tests/Models/microLlama/microLlama8/activations.npz b/DeeployTest/Tests/Models/microLlama/INT8/microLlama8/activations.npz similarity index 100% rename from DeeployTest/Tests/Models/microLlama/microLlama8/activations.npz rename to DeeployTest/Tests/Models/microLlama/INT8/microLlama8/activations.npz diff --git a/DeeployTest/Tests/Models/microLlama/microLlama8/inputs.npz b/DeeployTest/Tests/Models/microLlama/INT8/microLlama8/inputs.npz similarity index 100% rename from DeeployTest/Tests/Models/microLlama/microLlama8/inputs.npz rename to DeeployTest/Tests/Models/microLlama/INT8/microLlama8/inputs.npz diff --git a/DeeployTest/Tests/Models/microLlama/microLlama8/network.onnx b/DeeployTest/Tests/Models/microLlama/INT8/microLlama8/network.onnx similarity index 100% rename from DeeployTest/Tests/Models/microLlama/microLlama8/network.onnx rename to DeeployTest/Tests/Models/microLlama/INT8/microLlama8/network.onnx diff --git a/DeeployTest/Tests/Models/microLlama/microLlama8/outputs.npz b/DeeployTest/Tests/Models/microLlama/INT8/microLlama8/outputs.npz similarity index 100% rename from DeeployTest/Tests/Models/microLlama/microLlama8/outputs.npz rename to DeeployTest/Tests/Models/microLlama/INT8/microLlama8/outputs.npz diff --git a/DeeployTest/Tests/Models/microLlama/microLlama8_parallel/activations.npz b/DeeployTest/Tests/Models/microLlama/INT8/microLlama8_parallel/activations.npz similarity index 100% rename from DeeployTest/Tests/Models/microLlama/microLlama8_parallel/activations.npz rename to DeeployTest/Tests/Models/microLlama/INT8/microLlama8_parallel/activations.npz diff --git a/DeeployTest/Tests/Models/microLlama/microLlama8_parallel/inputs.npz b/DeeployTest/Tests/Models/microLlama/INT8/microLlama8_parallel/inputs.npz similarity index 100% rename from DeeployTest/Tests/Models/microLlama/microLlama8_parallel/inputs.npz rename to DeeployTest/Tests/Models/microLlama/INT8/microLlama8_parallel/inputs.npz diff --git a/DeeployTest/Tests/Models/microLlama/microLlama8_parallel/network.onnx b/DeeployTest/Tests/Models/microLlama/INT8/microLlama8_parallel/network.onnx similarity index 100% rename from DeeployTest/Tests/Models/microLlama/microLlama8_parallel/network.onnx rename to DeeployTest/Tests/Models/microLlama/INT8/microLlama8_parallel/network.onnx diff --git a/DeeployTest/Tests/Models/microLlama/microLlama8_parallel/outputs.npz b/DeeployTest/Tests/Models/microLlama/INT8/microLlama8_parallel/outputs.npz similarity index 100% rename from DeeployTest/Tests/Models/microLlama/microLlama8_parallel/outputs.npz rename to DeeployTest/Tests/Models/microLlama/INT8/microLlama8_parallel/outputs.npz diff --git a/DeeployTest/test_generic_config.py b/DeeployTest/test_generic_config.py index b0d8c659ca..c78ad75985 100644 --- a/DeeployTest/test_generic_config.py +++ b/DeeployTest/test_generic_config.py @@ -21,7 +21,8 @@ "Kernels/FP32/MaxPool/Regular_2D", "Kernels/FP32/Mul", "Kernels/FP32/LayerNorm", - "Kernels/FP32/RMSNorm", + "Kernels/FP32/RMSNorm/separate_ops", + "Kernels/FP32/RMSNorm/single_fused_op", "Kernels/FP32/Pow/Scalar", "Kernels/FP32/Pow/Vector", "Kernels/FP32/ReduceMean/KeepDims/Add_ReduceMean", diff --git a/DeeployTest/test_siracusa_neureka_tiled_config.py b/DeeployTest/test_siracusa_neureka_tiled_config.py index 68bd3dd96e..f3fe687064 100644 --- a/DeeployTest/test_siracusa_neureka_tiled_config.py +++ b/DeeployTest/test_siracusa_neureka_tiled_config.py @@ -31,7 +31,7 @@ "Models/miniMobileNet": [2000], "Kernels/Integer/Attention": [2500], "Models/Transformer": [15000], - "Models/microLlama/microLlama1": [10000], + "Models/microLlama/INT8/microLlama1": [10000], } # L3 double-buffer model tests @@ -53,5 +53,5 @@ L3_DOUBLEBUFFER_MODELS_WMEM = { "Models/miniMobileNet": [2000], "Kernels/Integer/Attention": [3500], - "Models/microLlama/microLlama1": [10000], + "Models/microLlama/INT8/microLlama1": [10000], } diff --git a/DeeployTest/test_siracusa_tiled_config.py b/DeeployTest/test_siracusa_tiled_config.py index a687d9a489..7ceaeab9c3 100644 --- a/DeeployTest/test_siracusa_tiled_config.py +++ b/DeeployTest/test_siracusa_tiled_config.py @@ -106,9 +106,9 @@ "Models/miniMobileNet": [60000, 12000, 6000, 3000], "Models/miniMobileNetv2": [60000, 16000, 12000, 8000], "Kernels/Integer/Attention": [60000, 10000, 5000], - "Models/microLlama/microLlama1": [60000, 10000, 5000], - "Models/microLlama/microLlama8": [60000, 10000, 5000], - "Models/microLlama/microLlama8_parallel": [60000, 10000, 5000], + "Models/microLlama/INT8/microLlama1": [60000, 10000, 5000], + "Models/microLlama/INT8/microLlama8": [60000, 10000, 5000], + "Models/microLlama/INT8/microLlama8_parallel": [60000, 10000, 5000], "Models/MLPerf/KeywordSpotting": [64000], "Models/MLPerf/ImageClassification": [64000], "Models/MLPerf/AnomalyDetection": [64000], @@ -121,9 +121,9 @@ "Models/miniMobileNet": [60000, 24000, 12000, 6000], "Models/miniMobileNetv2": [60000, 32000, 24000, 16000], "Kernels/Integer/Attention": [60000, 20000, 10000, 5000], - "Models/microLlama/microLlama1": [60000, 20000, 10000], - "Models/microLlama/microLlama8": [60000, 20000, 10000], - "Models/microLlama/microLlama8_parallel": [60000, 20000, 10000], + "Models/microLlama/INT8/microLlama1": [60000, 20000, 10000], + "Models/microLlama/INT8/microLlama8": [60000, 20000, 10000], + "Models/microLlama/INT8/microLlama8_parallel": [60000, 20000, 10000], "Models/MLPerf/KeywordSpotting": [128000], "Models/MLPerf/ImageClassification": [128000], "Models/MLPerf/AnomalyDetection": [128000], @@ -137,7 +137,7 @@ "Models/miniMobileNetv2": [60000, 16000, 12000, 8000], "Kernels/Integer/Attention": [60000, 10000, 5000, 2500], "Models/Transformer": [60000, 30000, 15000], - "Models/microLlama/microLlama1": [60000, 10000, 5000], + "Models/microLlama/INT8/microLlama1": [60000, 10000, 5000], "Models/CCT/FP32/CCT_2_32_32_128": [128000], "Models/CCT_Train/CCT2_FT2": [128000], "Models/TinyViT/Demo": [4000], @@ -149,9 +149,9 @@ "Models/miniMobileNetv2": [60000, 32000, 24000, 16000], "Kernels/Integer/Attention": [60000, 20000, 10000, 5000], "Models/Transformer": [60000, 30000, 15000], - "Models/microLlama/microLlama1": [60000, 20000, 10000], - "Models/microLlama/microLlama8": [60000, 20000, 10000], - "Models/microLlama/microLlama8_parallel": [60000, 20000, 10000], + "Models/microLlama/INT8/microLlama1": [60000, 20000, 10000], + "Models/microLlama/INT8/microLlama8": [60000, 20000, 10000], + "Models/microLlama/INT8/microLlama8_parallel": [60000, 20000, 10000], "Models/CCT/FP32/CCT_2_32_32_128": [128000], "Models/CCT_Train/CCT2_FT2": [128000], "Models/TinyViT/Demo": [4000], diff --git a/DeeployTest/test_snitch_config.py b/DeeployTest/test_snitch_config.py index 8d49d2e3e6..2ceca80d0f 100644 --- a/DeeployTest/test_snitch_config.py +++ b/DeeployTest/test_snitch_config.py @@ -22,5 +22,5 @@ ] MODEL_TESTS = [ - "Models/microLlama/microLlama_fp32_1", + "Models/microLlama/FP32/microLlama1", ] diff --git a/DeeployTest/test_snitch_tiled_config.py b/DeeployTest/test_snitch_tiled_config.py index cb44d84ea7..b43de90f6d 100644 --- a/DeeployTest/test_snitch_tiled_config.py +++ b/DeeployTest/test_snitch_tiled_config.py @@ -22,7 +22,7 @@ } L2_SINGLEBUFFER_MODELS = { - "Models/microLlama/microLlama_fp32_1": [10000, 20000], + "Models/microLlama/FP32/microLlama1": [10000, 20000], } # Currently no double-buffer configurations in CI diff --git a/TargetLibraries/Snitch/inc/kernel/Add.h b/TargetLibraries/Snitch/inc/kernel/Add.h index 7a65e82712..90881e55fd 100644 --- a/TargetLibraries/Snitch/inc/kernel/Add.h +++ b/TargetLibraries/Snitch/inc/kernel/Add.h @@ -15,7 +15,4 @@ void Add_fp32_broadcast(float32_t *pIn1, float32_t *pIn2, float32_t *pOut, uint32_t *out_shape, uint32_t *strides1, uint32_t *strides2, uint32_t ndim, uint32_t size); -void Add_fp32_lastdim(float32_t *pIn1, float32_t *pIn2, float32_t *pOut, - uint32_t outer_size, uint32_t inner_size); - #endif // __DEEPLOY_MATH_ADD_KERNEL_HEADER_ diff --git a/TargetLibraries/Snitch/src/Add_fp32.c b/TargetLibraries/Snitch/src/Add_fp32.c index 235b258511..bffd79854e 100644 --- a/TargetLibraries/Snitch/src/Add_fp32.c +++ b/TargetLibraries/Snitch/src/Add_fp32.c @@ -73,30 +73,3 @@ void Add_fp32_broadcast(float32_t *pIn1, float32_t *pIn2, float32_t *pOut, pOut[i] = pIn1[idx1] + pIn2[idx2]; } } - -void Add_fp32_lastdim(float32_t *pIn1, float32_t *pIn2, float32_t *pOut, - uint32_t outer_size, uint32_t inner_size) { - - uint32_t core_id = snrt_global_compute_core_idx(); - uint32_t numThreads = snrt_global_compute_core_num(); - uint32_t size = outer_size * inner_size; - - uint32_t chunkSize = size / numThreads; - uint32_t remainder = size % numThreads; - - uint32_t start, num_elements; - if (core_id < remainder) { - num_elements = chunkSize + 1; - start = core_id * num_elements; - } else { - num_elements = chunkSize; - start = core_id * chunkSize + remainder; - } - - uint32_t end = start + num_elements; - - for (uint32_t i = start; i < end; i++) { - uint32_t inner_idx = i % inner_size; - pOut[i] = pIn1[i] + pIn2[inner_idx]; - } -} From 89d382a97a5a0793424d60ff8fff96d27c08e748 Mon Sep 17 00:00:00 2001 From: lee2716 Date: Fri, 6 Feb 2026 12:45:03 +0100 Subject: [PATCH 28/57] refactor: general ONNX broadcasting for Div/Mul/Add --- Deeploy/Targets/Generic/Layers.py | 20 ++- Deeploy/Targets/Generic/Parsers.py | 60 +++---- .../Generic/Templates/FloatDivTemplate.py | 2 +- Deeploy/Targets/Snitch/Bindings.py | 24 +-- Deeploy/Targets/Snitch/Parsers.py | 168 +++++++----------- .../Snitch/Templates/FloatDivTemplate.py | 6 +- .../Snitch/Templates/FloatRMSNormTemplate.py | 9 +- .../Snitch/Templates/MatMulTemplate.py | 58 ------ .../Snitch/Templates/ReshapeTemplate.py | 27 +-- .../TileConstraints/FloatDivTileConstraint.py | 116 ++++++------ .../TileConstraints/FloatMulTileConstraint.py | 110 +++++++----- .../TileConstraints/ReshapeTileConstraint.py | 143 --------------- .../Snitch/TileConstraints/__init__.py | 1 - Deeploy/Targets/Snitch/Tiler.py | 4 +- 14 files changed, 247 insertions(+), 501 deletions(-) delete mode 100644 Deeploy/Targets/Snitch/Templates/MatMulTemplate.py delete mode 100644 Deeploy/Targets/Snitch/TileConstraints/ReshapeTileConstraint.py diff --git a/Deeploy/Targets/Generic/Layers.py b/Deeploy/Targets/Generic/Layers.py index 11e3a6a4de..3069f3ca60 100644 --- a/Deeploy/Targets/Generic/Layers.py +++ b/Deeploy/Targets/Generic/Layers.py @@ -732,13 +732,19 @@ def __init__(self, maps: List[NodeMapper]): super().__init__(maps) def computeOps(self): - # RMSNorm: square, mean, sqrt, div, mul - size = self.mapper.parser.operatorRepresentation['size'] - lastDimLength = self.mapper.parser.operatorRepresentation['lastDimLength'] - batch_size = size // lastDimLength - - # square + sum + mean + eps + sqrt + div + mul - ops = size + batch_size * lastDimLength + batch_size * 4 + size * 2 + inputSize = self.mapper.parser.operatorRepresentation['inputSize'] + NormalizedAxesSize = self.mapper.parser.operatorRepresentation['NormalizedAxesSize'] + scale = self.mapper.parser.operatorRepresentation['scale'] + + # a. XSquared = Mul(X, X) => inputSize ops + # b. XSquaredMean = ReduceMean(XSquared) + # => inputSize ops (additions) + (inputSize - NormalizedAxesSize) ops (divisions) + # c. MeanSquareEpsilon = Add(XSquaredMean, epsilon) => (inputSize - NormalizedAxesSize) ops + # d. RMS = Sqrt(MeanSquareEpsilon) => (inputSize - NormalizedAxesSize) ops + # e. Normalized = Div(X, RMS) => inputSize ops + # f. Y = Mul(Normalized, Scale) => 0 if all(Scale == 1.0), else inputSize ops + scale_ops = 0 if (scale == 1.0).all() else inputSize + ops = 5 * inputSize - 3 * NormalizedAxesSize + scale_ops return ops diff --git a/Deeploy/Targets/Generic/Parsers.py b/Deeploy/Targets/Generic/Parsers.py index adde7760c1..9cec242ff4 100644 --- a/Deeploy/Targets/Generic/Parsers.py +++ b/Deeploy/Targets/Generic/Parsers.py @@ -55,6 +55,10 @@ def parseNode(self, node: gs.Node) -> (bool): self.operatorRepresentation['n_levels'] = int(node.attrs['n_levels']) self.operatorRepresentation['log2D'] = int(math.log2(node.attrs['D'])) + stash_type = node.attrs.get('stash_type', 1) + if stash_type != 1: + raise ValueError(f"iRMSNorm: only stash_type=1 (FP32) is supported, got {stash_type}") + return ret def parseNodeCtxt(self, @@ -71,12 +75,19 @@ def parseNodeCtxt(self, self.operatorRepresentation[outputs[idx]] = ctxt.lookup(outputNode.name).name input_shape = list(ctxt.lookup(node.inputs[0].name).shape) - self.operatorRepresentation['size'] = np.prod(input_shape) - self.operatorRepresentation['lastDimLength'] = input_shape[-1] + + axis = node.attrs.get('axis', -1) + if axis < 0: + axis = len(input_shape) + axis + self.operatorRepresentation['inputSize'] = int(np.prod(input_shape)) - self.operatorRepresentation['NormalizedAxesSize'] = int(input_shape[-1]) + self.operatorRepresentation['NormalizedAxesSize'] = int(np.prod(input_shape[axis:])) self.operatorRepresentation['scale'] = node.inputs[1].values + # Keep old keys for C template compatibility + self.operatorRepresentation['size'] = int(np.prod(input_shape)) + self.operatorRepresentation['lastDimLength'] = int(input_shape[-1]) + return ctxt, True @@ -500,38 +511,25 @@ def parseNodeCtxt(self, self.operatorRepresentation['need_broadcast'] = need_broadcast if need_broadcast: - # Calculate strides for broadcasting ndim = len(out_shape) # Pad shapes from the left to match ndim (ONNX broadcasts from right) padded_shape1 = [1] * (ndim - len(shape1)) + shape1 padded_shape2 = [1] * (ndim - len(shape2)) + shape2 - # Compute strides for input 1 - strides1 = [1] * ndim - for i in range(ndim - 1, -1, -1): - if padded_shape1[i] == out_shape[i]: - if i == ndim - 1: - strides1[i] = 1 - else: - strides1[i] = strides1[i + 1] * padded_shape1[i + 1] if (padded_shape1[i + 1] - == out_shape[i + 1]) else strides1[i + - 1] - else: - strides1[i] = 0 # Broadcast dimension - - # Compute strides for input 2 - strides2 = [1] * ndim - for i in range(ndim - 1, -1, -1): - if padded_shape2[i] == out_shape[i]: - if i == ndim - 1: - strides2[i] = 1 + def _calc_strides(padded_shape, out_shape): + strides = [] + stride = 1 + for i in range(ndim - 1, -1, -1): + if padded_shape[i] == 1 and out_shape[i] > 1: + strides.insert(0, 0) else: - strides2[i] = strides2[i + 1] * padded_shape2[i + 1] if (padded_shape2[i + 1] - == out_shape[i + 1]) else strides2[i + - 1] - else: - strides2[i] = 0 # Broadcast dimension + strides.insert(0, stride) + stride *= padded_shape[i] if padded_shape[i] > 1 else 1 + return strides + + strides1 = _calc_strides(padded_shape1, out_shape) + strides2 = _calc_strides(padded_shape2, out_shape) self.operatorRepresentation['ndim'] = ndim self.operatorRepresentation['strides1'] = strides1 @@ -2145,15 +2143,15 @@ def parseNodeCtxt(self, node: gs.Node, channels_first: bool = True) -> Tuple[NetworkContext, bool]: - inputs = ["input1", "input2"] - outputs = ["output"] + inputs = ["A", "B"] + outputs = ["C"] for idx, inputNode in enumerate(node.inputs): if idx < len(inputs): self.operatorRepresentation[inputs[idx]] = ctxt.lookup(inputNode.name).name for idx, outputNode in enumerate(node.outputs): self.operatorRepresentation[outputs[idx]] = ctxt.lookup(outputNode.name).name - self.operatorRepresentation['size'] = np.prod(ctxt.lookup(self.operatorRepresentation['input1']).shape) + self.operatorRepresentation['size'] = np.prod(ctxt.lookup(self.operatorRepresentation['A']).shape) return ctxt, True diff --git a/Deeploy/Targets/Generic/Templates/FloatDivTemplate.py b/Deeploy/Targets/Generic/Templates/FloatDivTemplate.py index 34236311a0..6dfb9faeab 100644 --- a/Deeploy/Targets/Generic/Templates/FloatDivTemplate.py +++ b/Deeploy/Targets/Generic/Templates/FloatDivTemplate.py @@ -6,5 +6,5 @@ referenceTemplate = NodeTemplate(""" // Division (Name: ${nodeName}, Op: ${nodeOp}) -SINGLE_CORE Div_fp${input1_type.referencedType.typeWidth}_fp${input2_type.referencedType.typeWidth}_fp${output_type.referencedType.typeWidth}(${input1}, ${input2}, ${output}, ${size}); +SINGLE_CORE Div_fp${A_type.referencedType.typeWidth}_fp${B_type.referencedType.typeWidth}_fp${C_type.referencedType.typeWidth}(${A}, ${B}, ${C}, ${size}); """) diff --git a/Deeploy/Targets/Snitch/Bindings.py b/Deeploy/Targets/Snitch/Bindings.py index 023c21348b..75bfb1ca35 100644 --- a/Deeploy/Targets/Snitch/Bindings.py +++ b/Deeploy/Targets/Snitch/Bindings.py @@ -19,7 +19,7 @@ SnitchSynchCoresPass from Deeploy.Targets.Snitch.DMA.SnitchDma import SnitchDma from Deeploy.Targets.Snitch.Templates import AddTemplate, FloatGemmTemplate, FloatMatMulTemplate, GatherTemplate, \ - MatMulTemplate, ReshapeTemplate, RQAddTemplate, TransposeTemplate, iSoftmaxTemplate + ReshapeTemplate, RQAddTemplate, TransposeTemplate, iSoftmaxTemplate from Deeploy.Targets.Snitch.Templates.FloatAddTemplate import referenceTemplate as FloatAddTemplate from Deeploy.Targets.Snitch.Templates.FloatDivTemplate import referenceTemplate as FloatDivTemplate from Deeploy.Targets.Snitch.Templates.FloatHardSwishTemplate import referenceTemplate as FloatHardSwishTemplate @@ -160,58 +160,36 @@ # MatMul Bindings (Tiled) SnitchMatMulBindings = [ - NodeBinding(MatMulChecker([PointerClass(int8_t), PointerClass(int8_t)], [PointerClass(int32_t)]), - MatMulTemplate.referenceTemplate, TiledTransformer), NodeBinding(MatMulChecker([PointerClass(float32_t), PointerClass(float32_t)], [PointerClass(float32_t)]), FloatMatMulTemplate.referenceTemplate, TiledTransformer) ] # Concat Bindings (Tiled) SnitchConcatBindings = [ - NodeBinding(ConcatChecker([PointerClass(int8_t), PointerClass(int8_t)], [PointerClass(int8_t)]), - ConcatTemplate.referenceTemplate, TiledTransformer), - NodeBinding(ConcatChecker([PointerClass(int32_t), PointerClass(int32_t)], [PointerClass(int32_t)]), - ConcatTemplate.referenceTemplate, TiledTransformer), NodeBinding(ConcatChecker([PointerClass(float32_t), PointerClass(float32_t)], [PointerClass(float32_t)]), ConcatTemplate.referenceTemplate, TiledTransformer) ] # Transpose Bindings (Tiled) SnitchTransposeBindings = [ - NodeBinding(TransposeChecker([PointerClass(int8_t)], [PointerClass(int8_t)]), TransposeTemplate.referenceTemplate, - TiledTransformer), - NodeBinding(TransposeChecker([PointerClass(int32_t)], [PointerClass(int32_t)]), TransposeTemplate.referenceTemplate, - TiledTransformer), NodeBinding(TransposeChecker([PointerClass(float32_t)], [PointerClass(float32_t)]), TransposeTemplate.referenceTemplate, TiledTransformer) ] # Transpose Bindings (Non-tiled, multi-core) BasicSnitchTransposeBindings = [ - NodeBinding(TransposeChecker([PointerClass(int8_t)], [PointerClass(int8_t)]), TransposeTemplate.referenceTemplate, - BasicTransformer), - NodeBinding(TransposeChecker([PointerClass(int32_t)], [PointerClass(int32_t)]), TransposeTemplate.referenceTemplate, - BasicTransformer), NodeBinding(TransposeChecker([PointerClass(float32_t)], [PointerClass(float32_t)]), TransposeTemplate.referenceTemplate, BasicTransformer) ] # Reshape Bindings (Tiled) SnitchReshapeBindings = [ - NodeBinding(ReshapeChecker([PointerClass(int8_t)], [PointerClass(int8_t)]), ReshapeTemplate.referenceTemplate, - TiledTransformer), - NodeBinding(ReshapeChecker([PointerClass(int32_t)], [PointerClass(int32_t)]), ReshapeTemplate.referenceTemplate, - TiledTransformer), NodeBinding(ReshapeChecker([PointerClass(float32_t)], [PointerClass(float32_t)]), ReshapeTemplate.referenceTemplate, TiledTransformer) ] # Gather Bindings (Tiled) SnitchGatherBindings = [ - NodeBinding(GatherChecker([PointerClass(int8_t), PointerClass(int32_t)], [PointerClass(int8_t)]), - GatherTemplate.referenceTemplate, TiledTransformer), - NodeBinding(GatherChecker([PointerClass(int32_t), PointerClass(int32_t)], [PointerClass(int32_t)]), - GatherTemplate.referenceTemplate, TiledTransformer), NodeBinding(GatherChecker([PointerClass(float32_t), PointerClass(int32_t)], [PointerClass(float32_t)]), GatherTemplate.referenceTemplate, TiledTransformer) ] diff --git a/Deeploy/Targets/Snitch/Parsers.py b/Deeploy/Targets/Snitch/Parsers.py index 57af4c8a95..3e24a622c8 100644 --- a/Deeploy/Targets/Snitch/Parsers.py +++ b/Deeploy/Targets/Snitch/Parsers.py @@ -11,6 +11,37 @@ from Deeploy.Targets.Generic.Parsers import AddParser, DivParser, GEMMParser, MulParser, RQGEMMParser +def compute_broadcast_strides(shape1, shape2, out_shape): + """Compute strides for ONNX/NumPy-style broadcasting. + + Pads both input shapes from the left to match the output ndim, + then computes strides where broadcast dimensions (size 1) get stride 0. + + Example: + shape1=[8,8,8], shape2=[8] + -> strides1=[64,8,1], strides2=[0,0,1] + """ + ndim = len(out_shape) + + pad1 = [1] * (ndim - len(shape1)) + shape1 + pad2 = [1] * (ndim - len(shape2)) + shape2 + + def _calc_strides(padded_shape, out_shape): + strides = [] + stride = 1 + for i in range(ndim - 1, -1, -1): + if padded_shape[i] == 1 and out_shape[i] > 1: + strides.insert(0, 0) + else: + strides.insert(0, stride) + stride *= padded_shape[i] if padded_shape[i] > 1 else 1 + return strides + + strides1 = _calc_strides(pad1, out_shape) + strides2 = _calc_strides(pad2, out_shape) + return strides1, strides2 + + class SnitchGEMMParser(GEMMParser): def parseNode(self, node: gs.Node) -> bool: @@ -168,13 +199,7 @@ def parseNodeCtxt(self, class SnitchAddParser(AddParser): - """ - Inherits from GenericAddParser and adds support for Broadcasting. - - Compatibility: - - No broadcasting: Uses the Add_fp32() fast path. - - With broadcasting: Uses the Add_fp32_broadcast() generic version. - """ + """Inherits from GenericAddParser and adds broadcasting support.""" def __init__(self): super().__init__() @@ -183,83 +208,33 @@ def parseNodeCtxt(self, ctxt: NetworkContext, node: gs.Node, channels_first: bool = True) -> Tuple[NetworkContext, bool]: - # Call parent method to retrieve basic information ctxt, ret = super().parseNodeCtxt(ctxt, node, channels_first) if not ret: return ctxt, False - # Retrieve shape information - data_in_1 = ctxt.lookup(node.inputs[0].name) - data_in_2 = ctxt.lookup(node.inputs[1].name) - data_out = ctxt.lookup(node.outputs[0].name) - - shape1 = list(data_in_1.shape) - shape2 = list(data_in_2.shape) - out_shape = list(data_out.shape) + shape1 = list(ctxt.lookup(node.inputs[0].name).shape) + shape2 = list(ctxt.lookup(node.inputs[1].name).shape) + out_shape = list(ctxt.lookup(node.outputs[0].name).shape) - # Correct 'size' to match the output shape (after broadcasting) self.operatorRepresentation['size'] = int(np.prod(out_shape)) - - # Broadcasting information self.operatorRepresentation['shape1'] = shape1 self.operatorRepresentation['shape2'] = shape2 self.operatorRepresentation['out_shape'] = out_shape self.operatorRepresentation['ndim'] = len(out_shape) - # Determine if broadcasting is needed need_broadcast = (shape1 != shape2) self.operatorRepresentation['need_broadcast'] = need_broadcast if need_broadcast: - strides1, strides2 = self._compute_broadcast_strides(shape1, shape2, out_shape) + strides1, strides2 = compute_broadcast_strides(shape1, shape2, out_shape) self.operatorRepresentation['strides1'] = strides1 self.operatorRepresentation['strides2'] = strides2 return ctxt, True - def _compute_broadcast_strides(self, shape1, shape2, out_shape): - """ - Calculates strides after broadcasting (following ONNX/NumPy rules). - - Principles: - - Align dimensions from right to left. - - When a dimension is 1, set stride to 0 to achieve the broadcasting effect. - - Example: - shape1=[8,8,8], shape2=[8] - → pad2=[1,1,8] - → strides1=[64,8,1], strides2=[0,0,1] - """ - ndim = len(out_shape) - - # Right-align and pad to the same number of dimensions - pad1 = [1] * (ndim - len(shape1)) + shape1 - pad2 = [1] * (ndim - len(shape2)) + shape2 - - def calc_strides(padded_shape, out_shape): - strides = [] - stride = 1 - for i in range(ndim - 1, -1, -1): - if padded_shape[i] == 1 and out_shape[i] > 1: - strides.insert(0, 0) # Broadcast dimension stride=0 - else: - strides.insert(0, stride) - - # Update stride multiplier only if the current dimension is essentially used (size > 1) - stride *= padded_shape[i] if padded_shape[i] > 1 else 1 - return strides - - strides1 = calc_strides(pad1, out_shape) - strides2 = calc_strides(pad2, out_shape) - - return strides1, strides2 - class SnitchDivParser(DivParser): - """ - Snitch-specific Div Parser. - Inherits from Generic DivParser and adds shape/broadcasting information. - """ + """Inherits from Generic DivParser and adds broadcasting support.""" def __init__(self): super().__init__() @@ -268,47 +243,36 @@ def parseNodeCtxt(self, ctxt: NetworkContext, node: gs.Node, channels_first: bool = True) -> Tuple[NetworkContext, bool]: - """ - Extend Generic parser to add shape and broadcasting information. - """ - # Call parent method first ctxt, ret = super().parseNodeCtxt(ctxt, node, channels_first) - if not ret: return ctxt, False - # Get shape information - data_in_1 = ctxt.lookup(node.inputs[0].name) - data_in_2 = ctxt.lookup(node.inputs[1].name) - data_out = ctxt.lookup(node.outputs[0].name) - - shape1 = list(data_in_1.shape) - shape2 = list(data_in_2.shape) - out_shape = list(data_out.shape) + shape1 = list(ctxt.lookup(node.inputs[0].name).shape) + shape2 = list(ctxt.lookup(node.inputs[1].name).shape) + out_shape = list(ctxt.lookup(node.outputs[0].name).shape) - # Store shape information self.operatorRepresentation['shape1'] = shape1 self.operatorRepresentation['shape2'] = shape2 self.operatorRepresentation['out_shape'] = out_shape - - # Calculate sizes + self.operatorRepresentation['ndim'] = len(out_shape) self.operatorRepresentation['size1'] = int(np.prod(shape1)) self.operatorRepresentation['size2'] = int(np.prod(shape2)) - - # Update output size (may differ due to broadcasting) self.operatorRepresentation['size'] = int(np.prod(out_shape)) - # Check if scalar broadcasting (input2 is scalar) - self.operatorRepresentation['is_scalar'] = (self.operatorRepresentation['size2'] == 1) + need_broadcast = (shape1 != shape2) + self.operatorRepresentation['need_broadcast'] = need_broadcast + self.operatorRepresentation['is_scalar'] = (np.prod(shape1) == 1 or np.prod(shape2) == 1) + + if need_broadcast: + strides1, strides2 = compute_broadcast_strides(shape1, shape2, out_shape) + self.operatorRepresentation['strides1'] = strides1 + self.operatorRepresentation['strides2'] = strides2 return ctxt, True class SnitchMulParser(MulParser): - """ - Snitch-specific Mul Parser. - Inherits from Generic MulParser and adds shape/broadcasting information. - """ + """Inherits from Generic MulParser and adds broadcasting support.""" def __init__(self): super().__init__() @@ -317,37 +281,29 @@ def parseNodeCtxt(self, ctxt: NetworkContext, node: gs.Node, channels_first: bool = True) -> Tuple[NetworkContext, bool]: - """ - Extend Generic parser to add shape and broadcasting information. - """ - # Call parent method first ctxt, ret = super().parseNodeCtxt(ctxt, node, channels_first) - if not ret: return ctxt, False - # Get shape information - data_in_1 = ctxt.lookup(node.inputs[0].name) - data_in_2 = ctxt.lookup(node.inputs[1].name) - data_out = ctxt.lookup(node.outputs[0].name) - - shape1 = list(data_in_1.shape) - shape2 = list(data_in_2.shape) - out_shape = list(data_out.shape) + shape1 = list(ctxt.lookup(node.inputs[0].name).shape) + shape2 = list(ctxt.lookup(node.inputs[1].name).shape) + out_shape = list(ctxt.lookup(node.outputs[0].name).shape) - # Store shape information self.operatorRepresentation['shape1'] = shape1 self.operatorRepresentation['shape2'] = shape2 self.operatorRepresentation['out_shape'] = out_shape - - # Calculate sizes + self.operatorRepresentation['ndim'] = len(out_shape) self.operatorRepresentation['size1'] = int(np.prod(shape1)) self.operatorRepresentation['size2'] = int(np.prod(shape2)) - - # Update output size (may differ due to broadcasting) self.operatorRepresentation['size'] = int(np.prod(out_shape)) - # Check if scalar broadcasting (input2 is scalar) - self.operatorRepresentation['is_scalar'] = (self.operatorRepresentation['size2'] == 1) + need_broadcast = (shape1 != shape2) + self.operatorRepresentation['need_broadcast'] = need_broadcast + self.operatorRepresentation['is_scalar'] = (np.prod(shape1) == 1 or np.prod(shape2) == 1) + + if need_broadcast: + strides1, strides2 = compute_broadcast_strides(shape1, shape2, out_shape) + self.operatorRepresentation['strides1'] = strides1 + self.operatorRepresentation['strides2'] = strides2 return ctxt, True diff --git a/Deeploy/Targets/Snitch/Templates/FloatDivTemplate.py b/Deeploy/Targets/Snitch/Templates/FloatDivTemplate.py index c71cd0a507..9cc1375610 100644 --- a/Deeploy/Targets/Snitch/Templates/FloatDivTemplate.py +++ b/Deeploy/Targets/Snitch/Templates/FloatDivTemplate.py @@ -32,14 +32,14 @@ def alignToContext(self, ctxt: NetworkContext, # Template for element-wise division FloatDivTemplateStr = r""" -Div_fp32(${input1}, ${input2}, ${output}, ${size}); +Div_fp32(${A}, ${B}, ${C}, ${size}); """ # Template for scalar broadcasting (optimized) FloatDivScalarTemplateStr = r""" { - float32_t scalar = ${input2}[0]; - Div_fp32_scalar(${input1}, scalar, ${output}, ${size}); + float32_t scalar = ${B}[0]; + Div_fp32_scalar(${A}, scalar, ${C}, ${size}); } """ diff --git a/Deeploy/Targets/Snitch/Templates/FloatRMSNormTemplate.py b/Deeploy/Targets/Snitch/Templates/FloatRMSNormTemplate.py index 629c1bb4f3..c6f611122d 100644 --- a/Deeploy/Targets/Snitch/Templates/FloatRMSNormTemplate.py +++ b/Deeploy/Targets/Snitch/Templates/FloatRMSNormTemplate.py @@ -20,14 +20,9 @@ def alignToContext(self, ctxt: NetworkContext, data_in = ctxt.lookup(operatorRepresentation["data_in"]) input_shape = list(data_in.shape) - axis = operatorRepresentation.get("axis", -1) - if axis < 0: - axis = len(input_shape) + axis - - operatorRepresentation["lastDimLength"] = data_in.shape[-1] + # C template uses ${size} and ${lastDimLength} operatorRepresentation["size"] = int(np.prod(input_shape)) - operatorRepresentation["inputSize"] = int(np.prod(input_shape)) - operatorRepresentation["NormalizedAxesSize"] = int(np.prod(input_shape[axis:])) + operatorRepresentation["lastDimLength"] = operatorRepresentation["NormalizedAxesSize"] return ctxt, operatorRepresentation, [] diff --git a/Deeploy/Targets/Snitch/Templates/MatMulTemplate.py b/Deeploy/Targets/Snitch/Templates/MatMulTemplate.py deleted file mode 100644 index bce916ea60..0000000000 --- a/Deeploy/Targets/Snitch/Templates/MatMulTemplate.py +++ /dev/null @@ -1,58 +0,0 @@ -# SPDX-FileCopyrightText: 2024 ETH Zurich and University of Bologna -# -# SPDX-License-Identifier: Apache-2.0 - -from typing import Dict, List, Tuple - -from Deeploy.DeeployTypes import NetworkContext, NodeTemplate, OperatorRepresentation - - -class _MatMulTemplate(NodeTemplate): - - def __init__(self, templateStr): - super().__init__(templateStr) - - def alignToContext(self, ctxt: NetworkContext, - operatorRepresentation: OperatorRepresentation) -> Tuple[NetworkContext, Dict, List[str]]: - - A = ctxt.lookup(operatorRepresentation['A']) - B = ctxt.lookup(operatorRepresentation['B']) - C = ctxt.lookup(operatorRepresentation['data_out']) - operatorRepresentation['A_offset'] = 0 - operatorRepresentation['B_offset'] = 0 - operatorRepresentation['C_offset'] = 0 - if hasattr(A, "_signed") and hasattr(A, "nLevels"): - operatorRepresentation['A_offset'] = (A._signed == 0) * int(A.nLevels / 2) - if hasattr(B, "_signed") and hasattr(B, "nLevels"): - operatorRepresentation['B_offset'] = (B._signed == 0) * int(B.nLevels / 2) - if hasattr(C, "_signed") and hasattr(C, "nLevels"): - operatorRepresentation['C_offset'] = -(C._signed == 0) * int(C.nLevels / 2) - - return ctxt, operatorRepresentation, [] - - -# Use snrt_cluster_core_idx() == 0 instead of BEGIN_SINGLE_CORE macro to avoid core_id dependency -referenceTemplate = _MatMulTemplate(""" -// MatMul (Name: ${nodeName}, Op: ${nodeOp}) -if (snrt_cluster_core_idx() == 0) { - ${A_type.typeName} ref_${data_out}_${A} = ${A}; - ${B_type.typeName} ref_${data_out}_${B} = ${B}; - ${data_out_type.typeName} ref_${data_out}_${data_out} = ${data_out}; - - for(uint32_t i=0;i<${batch};i++){ - MatMul_s${A_type.referencedType.typeWidth}_s${B_type.referencedType.typeWidth}_s${data_out_type.referencedType.typeWidth}( - ref_${data_out}_${A}, - ref_${data_out}_${B}, - ref_${data_out}_${data_out}, - ${M}, - ${N}, - ${O}, - ${A_offset}, ${B_offset}, ${C_offset} - ); - - ref_${data_out}_${A} += ${M} * ${N}; - ref_${data_out}_${B} += ${N} * ${O}; - ref_${data_out}_${data_out} += ${M} * ${O}; - } -} -""") diff --git a/Deeploy/Targets/Snitch/Templates/ReshapeTemplate.py b/Deeploy/Targets/Snitch/Templates/ReshapeTemplate.py index 899d948edf..27b40b0370 100644 --- a/Deeploy/Targets/Snitch/Templates/ReshapeTemplate.py +++ b/Deeploy/Targets/Snitch/Templates/ReshapeTemplate.py @@ -6,37 +6,20 @@ import numpy as np -from Deeploy.DeeployTypes import NetworkContext, NodeTemplate, OperatorRepresentation, VariableBuffer +from Deeploy.DeeployTypes import NetworkContext, OperatorRepresentation, VariableBuffer +from Deeploy.Targets.Generic.Templates.ReshapeTemplate import _ReshapeTemplate -class _SnitchReshapeTemplate(NodeTemplate): - - def __init__(self, templateStr): - super().__init__(templateStr) +class _SnitchReshapeTemplate(_ReshapeTemplate): def alignToContext(self, ctxt: NetworkContext, operatorRepresentation: OperatorRepresentation) -> Tuple[NetworkContext, Dict, List[str]]: - # Mark 'indices' as not deployed (for Gather-like ops) - if 'indices' in operatorRepresentation.keys(): - ctxt.globalObjects[operatorRepresentation['indices']]._deploy = False - ctxt.globalObjects[operatorRepresentation['indices']]._live = False - - # Mark "shape" as not deployed - if "shape" in operatorRepresentation.keys(): - ctxt.globalObjects[operatorRepresentation["shape"]]._deploy = False - ctxt.globalObjects[operatorRepresentation["shape"]]._live = False + ctxt, operatorRepresentation, _ = super().alignToContext(ctxt, operatorRepresentation) + # Calculate size for multi-core parallel copy bufferIn = ctxt.lookup(operatorRepresentation['data_in']) assert isinstance(bufferIn, VariableBuffer) - bufferOut = ctxt.lookup(operatorRepresentation['data_out']) - assert isinstance(bufferOut, VariableBuffer) - - # Link aliases to each buffer (for zero-copy when possible) - bufferIn.aliases.add(bufferOut.name) - bufferOut.aliases.add(bufferIn.name) - - # Calculate size for data copy operatorRepresentation['size'] = int(np.prod(bufferIn.shape)) return ctxt, operatorRepresentation, [] diff --git a/Deeploy/Targets/Snitch/TileConstraints/FloatDivTileConstraint.py b/Deeploy/Targets/Snitch/TileConstraints/FloatDivTileConstraint.py index e2de98535d..2a1b9917bb 100644 --- a/Deeploy/Targets/Snitch/TileConstraints/FloatDivTileConstraint.py +++ b/Deeploy/Targets/Snitch/TileConstraints/FloatDivTileConstraint.py @@ -17,11 +17,15 @@ class FloatDivTileConstraint(TileConstraint): - """Tile constraint for FP32 Div operation supporting scalar broadcasting.""" + """Tile constraint for FP32 Div operation with ONNX broadcasting support. - dataIn1Name = "input1" - dataIn2Name = "input2" - dataOutName = "output" + Supports general NumPy-style broadcasting: both inputs can have any + dimension, including scalar, partial broadcasting, and full element-wise. + """ + + dataIn1Name = "A" + dataIn2Name = "B" + dataOutName = "C" @classmethod def addGeometricalConstraint(cls, tilerModel: TilerModel, parseDict: Dict, ctxt: NetworkContext) -> TilerModel: @@ -30,42 +34,41 @@ def addGeometricalConstraint(cls, tilerModel: TilerModel, parseDict: Dict, ctxt: inputBuffer2Name = parseDict[cls.dataIn2Name] outputBufferName = parseDict[cls.dataOutName] - input1Shape = ctxt.lookup(inputBuffer1Name).shape - input2Shape = ctxt.lookup(inputBuffer2Name).shape + input1Shape = list(ctxt.lookup(inputBuffer1Name).shape) + input2Shape = list(ctxt.lookup(inputBuffer2Name).shape) + outputShape = list(ctxt.lookup(outputBufferName).shape) - # Add tensor dimensions to model + # Add all tensors to model tilerModel.addTensorDimToModel(ctxt, inputBuffer1Name) + tilerModel.addTensorDimToModel(ctxt, inputBuffer2Name) tilerModel.addTensorDimToModel(ctxt, outputBufferName) - # Check if input2 is scalar (total size == 1) - is_scalar = np.prod(input2Shape) == 1 - - if is_scalar: - # Scalar broadcasting: input2 is a scalar, don't tile it - # Only add input2 dimensions if it has more than 0 dims - if len(input2Shape) > 0: - tilerModel.addTensorDimToModel(ctxt, inputBuffer2Name) - # Constrain scalar to remain untiled (size 1) - for dim in range(len(input2Shape)): - input2DimVar = tilerModel.getTensorDimVar(tensorName = inputBuffer2Name, dimIdx = dim) - tilerModel.addConstraint(input2DimVar == input2Shape[dim]) - - # Input1 and output must have same dimensions - for dim in range(len(input1Shape)): - inputDim1Var = tilerModel.getTensorDimVar(tensorName = inputBuffer1Name, dimIdx = dim) - outputDimVar = tilerModel.getTensorDimVar(tensorName = outputBufferName, dimIdx = dim) - tilerModel.addConstraint(inputDim1Var == outputDimVar) - else: - # Element-wise: both inputs must have same shape - tilerModel.addTensorDimToModel(ctxt, inputBuffer2Name) - - for dim in range(len(input1Shape)): - inputDim1Var = tilerModel.getTensorDimVar(tensorName = inputBuffer1Name, dimIdx = dim) - inputDim2Var = tilerModel.getTensorDimVar(tensorName = inputBuffer2Name, dimIdx = dim) - outputDimVar = tilerModel.getTensorDimVar(tensorName = outputBufferName, dimIdx = dim) - - tilerModel.addConstraint(inputDim1Var == inputDim2Var) - tilerModel.addConstraint(inputDim1Var == outputDimVar) + outNdim = len(outputShape) + + # Pad input shapes from the left to match output ndim (ONNX broadcasting) + padded1 = [1] * (outNdim - len(input1Shape)) + input1Shape + padded2 = [1] * (outNdim - len(input2Shape)) + input2Shape + + for outDim in range(outNdim): + outputDimVar = tilerModel.getTensorDimVar(tensorName = outputBufferName, dimIdx = outDim) + + # Input 1: map output dim to actual tensor dim + in1ActualDim = outDim - (outNdim - len(input1Shape)) + if in1ActualDim >= 0: + in1DimVar = tilerModel.getTensorDimVar(tensorName = inputBuffer1Name, dimIdx = in1ActualDim) + if padded1[outDim] == 1: + tilerModel.addConstraint(in1DimVar == 1) + else: + tilerModel.addConstraint(in1DimVar == outputDimVar) + + # Input 2: map output dim to actual tensor dim + in2ActualDim = outDim - (outNdim - len(input2Shape)) + if in2ActualDim >= 0: + in2DimVar = tilerModel.getTensorDimVar(tensorName = inputBuffer2Name, dimIdx = in2ActualDim) + if padded2[outDim] == 1: + tilerModel.addConstraint(in2DimVar == 1) + else: + tilerModel.addConstraint(in2DimVar == outputDimVar) return tilerModel @@ -83,25 +86,38 @@ def serializeTilingSolution( replacements = {"size": []} replacementTypes = {"size": PointerClass(uint16_t)} - # Check if scalar broadcasting - input2Name = operatorRepresentation[cls.dataIn2Name] - input2Shape = ctxt.lookup(input2Name).shape - is_scalar = np.prod(input2Shape) == 1 - - for cube in outputCubes: - newSize = np.prod(cube.dims) - replacements["size"].append(newSize) + input1Shape = list(ctxt.lookup(operatorRepresentation[cls.dataIn1Name]).shape) + input2Shape = list(ctxt.lookup(operatorRepresentation[cls.dataIn2Name]).shape) + outputShape = list(ctxt.lookup(operatorRepresentation[cls.dataOutName]).shape) + + outNdim = len(outputShape) + padded1 = [1] * (outNdim - len(input1Shape)) + input1Shape + padded2 = [1] * (outNdim - len(input2Shape)) + input2Shape + + def _deriveInputCube(outputCube, inputShape, paddedShape): + """Derive an input HyperRectangle from an output cube, respecting broadcasting.""" + offset = [] + dims = [] + for outDim in range(outNdim): + actualDim = outDim - (outNdim - len(inputShape)) + if actualDim >= 0: + if paddedShape[outDim] == 1: + offset.append(0) + dims.append(1) + else: + offset.append(outputCube.offset[outDim]) + dims.append(outputCube.dims[outDim]) + return HyperRectangle(tuple(offset), tuple(dims)) inputLoadSchedule = [] outputLoadSchedule = [] for cube in outputCubes: - if is_scalar: - # For scalar, load the entire scalar tensor (size 1) - scalarCube = HyperRectangle(tuple([0] * len(input2Shape)), tuple(input2Shape)) - inputLoadSchedule.append({cls.dataIn1Name: cube, cls.dataIn2Name: scalarCube}) - else: - inputLoadSchedule.append({cls.dataIn1Name: cube, cls.dataIn2Name: cube}) + replacements["size"].append(np.prod(cube.dims)) + + in1Cube = _deriveInputCube(cube, input1Shape, padded1) + in2Cube = _deriveInputCube(cube, input2Shape, padded2) + inputLoadSchedule.append({cls.dataIn1Name: in1Cube, cls.dataIn2Name: in2Cube}) for out in outputCubes: outputLoadSchedule.append({cls.dataOutName: out}) diff --git a/Deeploy/Targets/Snitch/TileConstraints/FloatMulTileConstraint.py b/Deeploy/Targets/Snitch/TileConstraints/FloatMulTileConstraint.py index e3c7f1f974..0feae54d6f 100644 --- a/Deeploy/Targets/Snitch/TileConstraints/FloatMulTileConstraint.py +++ b/Deeploy/Targets/Snitch/TileConstraints/FloatMulTileConstraint.py @@ -17,7 +17,11 @@ class FloatMulTileConstraint(TileConstraint): - """Tile constraint for FP32 Mul operation supporting scalar broadcasting.""" + """Tile constraint for FP32 Mul operation with ONNX broadcasting support. + + Supports general NumPy-style broadcasting: both inputs can have any + dimension, including scalar, partial broadcasting, and full element-wise. + """ dataIn1Name = "A" dataIn2Name = "B" @@ -30,42 +34,41 @@ def addGeometricalConstraint(cls, tilerModel: TilerModel, parseDict: Dict, ctxt: inputBuffer2Name = parseDict[cls.dataIn2Name] outputBufferName = parseDict[cls.dataOutName] - input1Shape = ctxt.lookup(inputBuffer1Name).shape - input2Shape = ctxt.lookup(inputBuffer2Name).shape + input1Shape = list(ctxt.lookup(inputBuffer1Name).shape) + input2Shape = list(ctxt.lookup(inputBuffer2Name).shape) + outputShape = list(ctxt.lookup(outputBufferName).shape) - # Add tensor dimensions to model + # Add all tensors to model tilerModel.addTensorDimToModel(ctxt, inputBuffer1Name) + tilerModel.addTensorDimToModel(ctxt, inputBuffer2Name) tilerModel.addTensorDimToModel(ctxt, outputBufferName) - # Check if input2 is scalar (total size == 1) - is_scalar = np.prod(input2Shape) == 1 - - if is_scalar: - # Scalar broadcasting: input2 is a scalar, don't tile it - # Only add input2 dimensions if it has more than 0 dims - if len(input2Shape) > 0: - tilerModel.addTensorDimToModel(ctxt, inputBuffer2Name) - # Constrain scalar to remain untiled (size 1) - for dim in range(len(input2Shape)): - input2DimVar = tilerModel.getTensorDimVar(tensorName = inputBuffer2Name, dimIdx = dim) - tilerModel.addConstraint(input2DimVar == input2Shape[dim]) - - # Input1 and output must have same dimensions - for dim in range(len(input1Shape)): - inputDim1Var = tilerModel.getTensorDimVar(tensorName = inputBuffer1Name, dimIdx = dim) - outputDimVar = tilerModel.getTensorDimVar(tensorName = outputBufferName, dimIdx = dim) - tilerModel.addConstraint(inputDim1Var == outputDimVar) - else: - # Element-wise: both inputs must have same shape - tilerModel.addTensorDimToModel(ctxt, inputBuffer2Name) - - for dim in range(len(input1Shape)): - inputDim1Var = tilerModel.getTensorDimVar(tensorName = inputBuffer1Name, dimIdx = dim) - inputDim2Var = tilerModel.getTensorDimVar(tensorName = inputBuffer2Name, dimIdx = dim) - outputDimVar = tilerModel.getTensorDimVar(tensorName = outputBufferName, dimIdx = dim) - - tilerModel.addConstraint(inputDim1Var == inputDim2Var) - tilerModel.addConstraint(inputDim1Var == outputDimVar) + outNdim = len(outputShape) + + # Pad input shapes from the left to match output ndim (ONNX broadcasting) + padded1 = [1] * (outNdim - len(input1Shape)) + input1Shape + padded2 = [1] * (outNdim - len(input2Shape)) + input2Shape + + for outDim in range(outNdim): + outputDimVar = tilerModel.getTensorDimVar(tensorName = outputBufferName, dimIdx = outDim) + + # Input 1: map output dim to actual tensor dim + in1ActualDim = outDim - (outNdim - len(input1Shape)) + if in1ActualDim >= 0: + in1DimVar = tilerModel.getTensorDimVar(tensorName = inputBuffer1Name, dimIdx = in1ActualDim) + if padded1[outDim] == 1: + tilerModel.addConstraint(in1DimVar == 1) + else: + tilerModel.addConstraint(in1DimVar == outputDimVar) + + # Input 2: map output dim to actual tensor dim + in2ActualDim = outDim - (outNdim - len(input2Shape)) + if in2ActualDim >= 0: + in2DimVar = tilerModel.getTensorDimVar(tensorName = inputBuffer2Name, dimIdx = in2ActualDim) + if padded2[outDim] == 1: + tilerModel.addConstraint(in2DimVar == 1) + else: + tilerModel.addConstraint(in2DimVar == outputDimVar) return tilerModel @@ -83,25 +86,38 @@ def serializeTilingSolution( replacements = {"size": []} replacementTypes = {"size": PointerClass(uint16_t)} - # Check if scalar broadcasting - input2Name = operatorRepresentation[cls.dataIn2Name] - input2Shape = ctxt.lookup(input2Name).shape - is_scalar = np.prod(input2Shape) == 1 - - for cube in outputCubes: - newSize = np.prod(cube.dims) - replacements["size"].append(newSize) + input1Shape = list(ctxt.lookup(operatorRepresentation[cls.dataIn1Name]).shape) + input2Shape = list(ctxt.lookup(operatorRepresentation[cls.dataIn2Name]).shape) + outputShape = list(ctxt.lookup(operatorRepresentation[cls.dataOutName]).shape) + + outNdim = len(outputShape) + padded1 = [1] * (outNdim - len(input1Shape)) + input1Shape + padded2 = [1] * (outNdim - len(input2Shape)) + input2Shape + + def _deriveInputCube(outputCube, inputShape, paddedShape): + """Derive an input HyperRectangle from an output cube, respecting broadcasting.""" + offset = [] + dims = [] + for outDim in range(outNdim): + actualDim = outDim - (outNdim - len(inputShape)) + if actualDim >= 0: + if paddedShape[outDim] == 1: + offset.append(0) + dims.append(1) + else: + offset.append(outputCube.offset[outDim]) + dims.append(outputCube.dims[outDim]) + return HyperRectangle(tuple(offset), tuple(dims)) inputLoadSchedule = [] outputLoadSchedule = [] for cube in outputCubes: - if is_scalar: - # For scalar, load the entire scalar tensor (size 1) - scalarCube = HyperRectangle(tuple([0] * len(input2Shape)), tuple(input2Shape)) - inputLoadSchedule.append({cls.dataIn1Name: cube, cls.dataIn2Name: scalarCube}) - else: - inputLoadSchedule.append({cls.dataIn1Name: cube, cls.dataIn2Name: cube}) + replacements["size"].append(np.prod(cube.dims)) + + in1Cube = _deriveInputCube(cube, input1Shape, padded1) + in2Cube = _deriveInputCube(cube, input2Shape, padded2) + inputLoadSchedule.append({cls.dataIn1Name: in1Cube, cls.dataIn2Name: in2Cube}) for out in outputCubes: outputLoadSchedule.append({cls.dataOutName: out}) diff --git a/Deeploy/Targets/Snitch/TileConstraints/ReshapeTileConstraint.py b/Deeploy/Targets/Snitch/TileConstraints/ReshapeTileConstraint.py deleted file mode 100644 index 01a7e7e406..0000000000 --- a/Deeploy/Targets/Snitch/TileConstraints/ReshapeTileConstraint.py +++ /dev/null @@ -1,143 +0,0 @@ -# SPDX-FileCopyrightText: 2026 ETH Zurich and University of Bologna -# -# SPDX-License-Identifier: Apache-2.0 - -from typing import Dict, List, Tuple - -import numpy as np - -from Deeploy.AbstractDataTypes import PointerClass -from Deeploy.CommonExtensions.DataTypes import uint16_t -from Deeploy.DeeployTypes import NetworkContext, OperatorRepresentation -from Deeploy.TilingExtension.MemoryConstraints import NodeMemoryConstraint -from Deeploy.TilingExtension.TileConstraint import TileConstraint -from Deeploy.TilingExtension.TilerModel import TilerModel -from Deeploy.TilingExtension.TilingCodegen import AbsoluteHyperRectangle, HyperRectangle, TilingSchedule, \ - VariableReplacementScheme - - -class ReshapeTileConstraint(TileConstraint): - """Tile constraint for Reshape operation - a NOP that just reinterprets data layout.""" - - @staticmethod - def addGeometricalConstraint(tilerModel: TilerModel, parseDict: Dict, ctxt: NetworkContext) -> TilerModel: - - inputBufferName = parseDict['data_in'] - outputBufferName = parseDict['data_out'] - - pointer: List[str] = [] - - for key, value in parseDict.items(): - if not isinstance(value, str): - continue - - if ctxt.is_global(value) or ctxt.is_local(value): - pointer.append(value) - - # Add I/O dimensions to the model as variables - for bufferName in [inputBufferName, outputBufferName]: - _buffer = ctxt.lookup(bufferName) - tilerModel.addTensorDimToModel(ctxt, bufferName) - - for idx, shapeDim in enumerate(_buffer.shape): - tilerModel.addConstraint(tilerModel.getTensorDimVar(tensorName = bufferName, dimIdx = idx) <= shapeDim) - - # Constrain total elements to be equal - inputBuffer = ctxt.lookup(inputBufferName) - outputBuffer = ctxt.lookup(outputBufferName) - - # For reshape, we want the tiles to have the same total number of elements - # This is automatically satisfied if we tile based on output and compute input from that - - # Remove unused tensors from deployment - for bufferName in pointer: - if bufferName not in [inputBufferName, outputBufferName]: - ctxt.lookup(bufferName)._deploy = False - - return tilerModel - - @classmethod - def serializeTilingSolution( - cls, tilingSolution: NodeMemoryConstraint, absoluteOutputCubes: List[AbsoluteHyperRectangle], - targetMemLevel: str, ctxt: NetworkContext, - operatorRepresentation: OperatorRepresentation) -> Tuple[VariableReplacementScheme, TilingSchedule]: - outputCubes = [cube.rectangle for cube in absoluteOutputCubes] - - addrNames = ['data_in', 'data_out'] - inputBaseOffsets, outputBaseOffsets = cls.extractBaseAddr(tilingSolution, targetMemLevel, - operatorRepresentation, addrNames) - - # For reshape, input and output have the same data, just different interpretations - # We need to compute the corresponding input cube for each output cube - inputName = operatorRepresentation['data_in'] - outputName = operatorRepresentation['data_out'] - inputShape = ctxt.lookup(inputName).shape - outputShape = ctxt.lookup(outputName).shape - - replacements = {"size": []} - replacementTypes = {"size": PointerClass(uint16_t)} - - inputLoadSchedule = [] - outputLoadSchedule = [] - - for cube in outputCubes: - # Calculate the flat offset and size for the output cube - outSize = np.prod(cube.dims) - replacements["size"].append(outSize) - - # For reshape, we need to map output cube to input cube - # Calculate flat index range for output cube - outOffset = 0 - outStrides = [] - stride = 1 - for dim in reversed(outputShape): - outStrides.insert(0, stride) - stride *= dim - - for i, (off, dim) in enumerate(zip(cube.offset, cube.dims)): - outOffset += off * outStrides[i] - - # Convert flat offset to input coordinates - inStrides = [] - stride = 1 - for dim in reversed(inputShape): - inStrides.insert(0, stride) - stride *= dim - - inOffset = [] - remaining = outOffset - for i, stride in enumerate(inStrides): - inOffset.append(remaining // stride) - remaining = remaining % stride - - # Calculate input cube dimensions - # For simplicity, treat as 1D cube in input space - inCubeDims = list(inputShape) - inCubeOffset = [0] * len(inputShape) - - # Set the last dimension to the size, and offset based on flat index - totalSize = outSize - if len(inputShape) > 0: - # Compute proper input cube that covers the same elements - # Use a simple approach: linearize the input - inCubeOffset = list(inOffset) - inCubeDims = [1] * len(inputShape) - inCubeDims[-1] = min(totalSize, inputShape[-1] - inCubeOffset[-1]) - remaining = totalSize - inCubeDims[-1] - - for i in range(len(inputShape) - 2, -1, -1): - if remaining <= 0: - break - inCubeDims[i] = min(remaining // np.prod(inputShape[i + 1:]) + 1, inputShape[i]) - remaining -= (inCubeDims[i] - 1) * np.prod(inputShape[i + 1:]) - - inputCube = HyperRectangle(tuple(inCubeOffset), tuple(inCubeDims)) - inputLoadSchedule.append({"data_in": inputCube}) - - for out in outputCubes: - outputLoadSchedule.append({"data_out": out}) - - tilingSchedule = TilingSchedule(inputBaseOffsets, outputBaseOffsets, inputLoadSchedule, outputLoadSchedule) - variableReplacementSchedule = VariableReplacementScheme(replacements, replacementTypes) - - return variableReplacementSchedule, tilingSchedule diff --git a/Deeploy/Targets/Snitch/TileConstraints/__init__.py b/Deeploy/Targets/Snitch/TileConstraints/__init__.py index aece19d881..c58816f9df 100644 --- a/Deeploy/Targets/Snitch/TileConstraints/__init__.py +++ b/Deeploy/Targets/Snitch/TileConstraints/__init__.py @@ -7,4 +7,3 @@ from .FloatMulTileConstraint import * from .iNoNormTileConstraint import * from .iSoftmaxTileConstraint import * -from .ReshapeTileConstraint import * diff --git a/Deeploy/Targets/Snitch/Tiler.py b/Deeploy/Targets/Snitch/Tiler.py index 5a5f4d0bf4..6d99624e34 100644 --- a/Deeploy/Targets/Snitch/Tiler.py +++ b/Deeploy/Targets/Snitch/Tiler.py @@ -6,6 +6,7 @@ from Deeploy.Targets.Generic.TileConstraints.ConcatTileConstraint import ConcatTileConstraint from Deeploy.Targets.Generic.TileConstraints.iHardswishTileConstraint import iHardswishTileConstraint from Deeploy.Targets.Generic.TileConstraints.iRMSNormTileConstraint import iRMSNormTileConstraint +from Deeploy.Targets.Generic.TileConstraints.NOPTileConstraint import NOPTileConstraint from Deeploy.Targets.Generic.TileConstraints.TransposeTileConstraint import TransposeTileConstraint from Deeploy.Targets.PULPOpen.TileConstraints.GatherTileConstraint import GatherTileConstraint from Deeploy.Targets.PULPOpen.TileConstraints.MatMulTileConstraint import MatMulTileConstraint @@ -17,7 +18,6 @@ from Deeploy.Targets.Snitch.TileConstraints.FloatDivTileConstraint import FloatDivTileConstraint from Deeploy.Targets.Snitch.TileConstraints.FloatMulTileConstraint import FloatMulTileConstraint from Deeploy.Targets.Snitch.TileConstraints.GemmTileConstraint import GemmTileConstraint -from Deeploy.Targets.Snitch.TileConstraints.ReshapeTileConstraint import ReshapeTileConstraint from Deeploy.Targets.Snitch.TileConstraints.RqGemmTileConstraint import RqGemmTileConstraint from Deeploy.TilingExtension.TilerExtension import TilingReadyNodeBindings @@ -57,7 +57,7 @@ tileConstraint = TransposeTileConstraint()) SnitchReshapeTilingReadyBindings = TilingReadyNodeBindings(nodeBindings = SnitchReshapeBindings, - tileConstraint = ReshapeTileConstraint()) + tileConstraint = NOPTileConstraint()) SnitchGatherTilingReadyBindings = TilingReadyNodeBindings(nodeBindings = SnitchGatherBindings, tileConstraint = GatherTileConstraint()) From e55c7bcf0933dd938f649564e48166c528267d8f Mon Sep 17 00:00:00 2001 From: lee2716 Date: Fri, 6 Feb 2026 14:27:44 +0100 Subject: [PATCH 29/57] fix: enable tiled deployment for NOP operations and L2 memory management - Add serializeTilingSolution to NOPTileConstraint for tiled Reshape/Flatten - Change NOP geometrical constraints from <= to == to prevent splitting - Add TilingVariableReplacement("L2") and MemoryManagementGeneration("L2") to Snitch TiledTransformer to properly allocate intermediate L2 tensors --- .../TileConstraints/NOPTileConstraint.py | 46 +++++++++++++++++-- Deeploy/Targets/Snitch/Bindings.py | 2 + 2 files changed, 45 insertions(+), 3 deletions(-) diff --git a/Deeploy/Targets/Generic/TileConstraints/NOPTileConstraint.py b/Deeploy/Targets/Generic/TileConstraints/NOPTileConstraint.py index d24abb4ba5..2ddf344847 100644 --- a/Deeploy/Targets/Generic/TileConstraints/NOPTileConstraint.py +++ b/Deeploy/Targets/Generic/TileConstraints/NOPTileConstraint.py @@ -2,11 +2,18 @@ # # SPDX-License-Identifier: Apache-2.0 -from typing import Dict, List +from typing import Dict, List, Tuple -from Deeploy.DeeployTypes import NetworkContext +import numpy as np + +from Deeploy.AbstractDataTypes import PointerClass +from Deeploy.CommonExtensions.DataTypes import uint16_t +from Deeploy.DeeployTypes import NetworkContext, OperatorRepresentation +from Deeploy.TilingExtension.MemoryConstraints import NodeMemoryConstraint from Deeploy.TilingExtension.TileConstraint import TileConstraint from Deeploy.TilingExtension.TilerModel import TilerModel +from Deeploy.TilingExtension.TilingCodegen import AbsoluteHyperRectangle, HyperRectangle, TilingSchedule, \ + VariableReplacementScheme class NOPTileConstraint(TileConstraint): @@ -34,7 +41,7 @@ def addGeometricalConstraint(tilerModel: TilerModel, parseDict: Dict, ctxt: Netw tilerModel.addTensorDimToModel(ctxt, bufferName) for idx, shapeDim in enumerate(_buffer.shape): - tilerModel.addConstraint(tilerModel.getTensorDimVar(tensorName = bufferName, dimIdx = idx) <= shapeDim) + tilerModel.addConstraint(tilerModel.getTensorDimVar(tensorName = bufferName, dimIdx = idx) == shapeDim) # Remove unused tensors from deployment for bufferName in pointer: @@ -42,3 +49,36 @@ def addGeometricalConstraint(tilerModel: TilerModel, parseDict: Dict, ctxt: Netw ctxt.lookup(bufferName)._deploy = False return tilerModel + + @classmethod + def serializeTilingSolution( + cls, tilingSolution: NodeMemoryConstraint, absoluteOutputCubes: List[AbsoluteHyperRectangle], + targetMemLevel: str, ctxt: NetworkContext, + operatorRepresentation: OperatorRepresentation) -> Tuple[VariableReplacementScheme, TilingSchedule]: + outputCubes = [cube.rectangle for cube in absoluteOutputCubes] + + addrNames = ['data_in', 'data_out'] + inputBaseOffsets, outputBaseOffsets = cls.extractBaseAddr(tilingSolution, targetMemLevel, + operatorRepresentation, addrNames) + + inputName = operatorRepresentation['data_in'] + inputShape = ctxt.lookup(inputName).shape + + replacements = {"size": []} + replacementTypes = {"size": PointerClass(uint16_t)} + + inputLoadSchedule = [] + outputLoadSchedule = [] + + for cube in outputCubes: + replacements["size"].append(np.prod(cube.dims)) + inputCube = HyperRectangle(tuple([0] * len(inputShape)), tuple(inputShape)) + inputLoadSchedule.append({"data_in": inputCube}) + + for out in outputCubes: + outputLoadSchedule.append({"data_out": out}) + + tilingSchedule = TilingSchedule(inputBaseOffsets, outputBaseOffsets, inputLoadSchedule, outputLoadSchedule) + variableReplacementSchedule = VariableReplacementScheme(replacements, replacementTypes) + + return variableReplacementSchedule, tilingSchedule diff --git a/Deeploy/Targets/Snitch/Bindings.py b/Deeploy/Targets/Snitch/Bindings.py index 75bfb1ca35..883824b4ff 100644 --- a/Deeploy/Targets/Snitch/Bindings.py +++ b/Deeploy/Targets/Snitch/Bindings.py @@ -52,7 +52,9 @@ SnitchClusterTiling("L2", "L1", SnitchDma()), ArgumentStructGeneration(), MemoryManagementGeneration("L1"), + TilingVariableReplacement("L2"), MemoryAwareFunctionCallClosure(writeback = False, generateStruct = True), + MemoryManagementGeneration("L2"), MemoryManagementGeneration() ]) From 13a4e642c32ab6a04fe835db29f5f04baf6c30d5 Mon Sep 17 00:00:00 2001 From: lee2716 Date: Fri, 6 Feb 2026 15:00:24 +0100 Subject: [PATCH 30/57] fix: restore NOPTileConstraint compatibility with Siracusa/Neureka tiled platforms --- Deeploy/Targets/Generic/TileConstraints/NOPTileConstraint.py | 2 +- DeeployTest/test_generic_config.py | 1 - 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/Deeploy/Targets/Generic/TileConstraints/NOPTileConstraint.py b/Deeploy/Targets/Generic/TileConstraints/NOPTileConstraint.py index 2ddf344847..4dd487b3aa 100644 --- a/Deeploy/Targets/Generic/TileConstraints/NOPTileConstraint.py +++ b/Deeploy/Targets/Generic/TileConstraints/NOPTileConstraint.py @@ -41,7 +41,7 @@ def addGeometricalConstraint(tilerModel: TilerModel, parseDict: Dict, ctxt: Netw tilerModel.addTensorDimToModel(ctxt, bufferName) for idx, shapeDim in enumerate(_buffer.shape): - tilerModel.addConstraint(tilerModel.getTensorDimVar(tensorName = bufferName, dimIdx = idx) == shapeDim) + tilerModel.addConstraint(tilerModel.getTensorDimVar(tensorName = bufferName, dimIdx = idx) <= shapeDim) # Remove unused tensors from deployment for bufferName in pointer: diff --git a/DeeployTest/test_generic_config.py b/DeeployTest/test_generic_config.py index c78ad75985..e9e8480dd1 100644 --- a/DeeployTest/test_generic_config.py +++ b/DeeployTest/test_generic_config.py @@ -22,7 +22,6 @@ "Kernels/FP32/Mul", "Kernels/FP32/LayerNorm", "Kernels/FP32/RMSNorm/separate_ops", - "Kernels/FP32/RMSNorm/single_fused_op", "Kernels/FP32/Pow/Scalar", "Kernels/FP32/Pow/Vector", "Kernels/FP32/ReduceMean/KeepDims/Add_ReduceMean", From 55b675091f54fc0ccdea4005db08dd0488d94d71 Mon Sep 17 00:00:00 2001 From: lee2716 Date: Fri, 6 Feb 2026 16:13:43 +0100 Subject: [PATCH 31/57] fix: correct integer type inference for all-zero input arrays --- DeeployTest/testUtils/typeMapping.py | 5 ----- 1 file changed, 5 deletions(-) diff --git a/DeeployTest/testUtils/typeMapping.py b/DeeployTest/testUtils/typeMapping.py index abb9edddf7..232fd1e274 100644 --- a/DeeployTest/testUtils/typeMapping.py +++ b/DeeployTest/testUtils/typeMapping.py @@ -39,11 +39,6 @@ def parseDataType(name: str) -> type: def isInteger(x: npt.NDArray) -> bool: - # If all values are zero, respect the original numpy dtype (ambiguous case) - if np.all(x == 0): - return np.issubdtype(x.dtype, np.integer) - # If any value has non-zero fractional part, it's float - # Otherwise (all values are integers like 1.0, 2.0), it's integer return np.abs((x.astype(int) - x)).max() <= 0.001 From 06010e47f8e3fba441f831171660e43fb7b67876 Mon Sep 17 00:00:00 2001 From: lee2716 Date: Fri, 6 Feb 2026 16:25:25 +0100 Subject: [PATCH 32/57] fix: preserve original dtype for all-zero input type inference --- Deeploy/DeeployTypes.py | 7 ------- DeeployTest/generateNetwork.py | 6 ++++-- DeeployTest/testMVP.py | 12 ++++++++---- DeeployTest/testUtils/typeMapping.py | 20 +++++++++++++++++--- 4 files changed, 29 insertions(+), 16 deletions(-) diff --git a/Deeploy/DeeployTypes.py b/Deeploy/DeeployTypes.py index 5349748453..9367d9406b 100644 --- a/Deeploy/DeeployTypes.py +++ b/Deeploy/DeeployTypes.py @@ -3105,16 +3105,9 @@ def _exportGraph(self, folderPath, fileName): raise OSError(f"Error exporting the context to: {absoluteOnnxPath}") # VJUNG: ONNX-Graphsurgeon needs tensors to be in their export types -<<<<<<< HEAD - constTensors = [tensor for tensor in self.graph.tensors().values() if isinstance(tensor, gs.Constant)] - for tensor in constTensors: - if tensor.dtype != tensor.export_dtype: -======= - # Added hasattr check for compatibility with different onnx-graphsurgeon versions constTensors = [tensor for tensor in self.graph.tensors().values() if isinstance(tensor, gs.Constant)] for tensor in constTensors: if hasattr(tensor, 'export_dtype') and tensor.dtype != tensor.export_dtype: ->>>>>>> 937e3cb3 (refactor: restore Snitch framework code to origin/devel) tensor.values = tensor.values.astype(tensor.export_dtype) model = gs.export_onnx(self.graph) diff --git a/DeeployTest/generateNetwork.py b/DeeployTest/generateNetwork.py index f029be7361..bc067955fd 100644 --- a/DeeployTest/generateNetwork.py +++ b/DeeployTest/generateNetwork.py @@ -73,7 +73,8 @@ def generateNetwork(args): test_inputs, test_outputs, graph = generateDebugConfig(inputs, outputs, activations, graph) else: - # Load as float64 and infer types later + # Load as float64 for uniform handling, but preserve original dtypes for type inference + test_input_original_dtypes = [inputs[x].dtype for x in inputs.files] test_inputs = [inputs[x].reshape(-1).astype(np.float64) for x in inputs.files] test_outputs = [outputs[x].reshape(-1).astype(np.float64) for x in outputs.files] @@ -122,7 +123,8 @@ def generateNetwork(args): _type = PointerClass(_type) else: - _type, offset = inferTypeAndOffset(values, signProp) + original_dtype = test_input_original_dtypes[index] if index < len(test_input_original_dtypes) else None + _type, offset = inferTypeAndOffset(values, signProp, original_dtype = original_dtype) inputTypes[f"input_{index}"] = _type inputOffsets[f"input_{index}"] = offset diff --git a/DeeployTest/testMVP.py b/DeeployTest/testMVP.py index 01216984af..0f0c7ccdfc 100644 --- a/DeeployTest/testMVP.py +++ b/DeeployTest/testMVP.py @@ -68,7 +68,8 @@ def setupDeployer(graph: gs.Graph, memoryHierarchy: MemoryHierarchy, defaultTarg inputs = np.load(f'{args.dir}/inputs.npz') tensors = graph.tensors() - # Load as int64 and infer types later + # Load as float64 for uniform handling, but preserve original dtypes for type inference + test_input_original_dtypes = [inputs[x].dtype for x in inputs.files] test_inputs = [inputs[x].reshape(-1).astype(np.float64) for x in inputs.files] platform, signProp = mapPlatform(args.platform) @@ -83,7 +84,8 @@ def setupDeployer(graph: gs.Graph, memoryHierarchy: MemoryHierarchy, defaultTarg cluster.n_cores = args.cores for index, num in enumerate(test_inputs): - _type, offset = inferTypeAndOffset(num, signProp) + original_dtype = test_input_original_dtypes[index] if index < len(test_input_original_dtypes) else None + _type, offset = inferTypeAndOffset(num, signProp, original_dtype = original_dtype) inputTypes[f"input_{index}"] = _type inputOffsets[f"input_{index}"] = offset @@ -241,7 +243,8 @@ def setupDeployer(graph: gs.Graph, memoryHierarchy: MemoryHierarchy, defaultTarg if args.debug: test_inputs, test_outputs, graph = generateDebugConfig(inputs, outputs, activations, graph) else: - # Load as int64 and infer types later + # Load as float64 for uniform handling, but preserve original dtypes for type inference + test_input_original_dtypes = [inputs[x].dtype for x in inputs.files] test_inputs = [inputs[x].reshape(-1).astype(np.float64) for x in inputs.files] test_outputs = [outputs[x].reshape(-1).astype(np.float64) for x in outputs.files] @@ -280,7 +283,8 @@ def setupDeployer(graph: gs.Graph, memoryHierarchy: MemoryHierarchy, defaultTarg log.debug(f"Deployer: {deployer}") for index, num in enumerate(test_inputs): - _type, offset = inferTypeAndOffset(num, signProp) + original_dtype = test_input_original_dtypes[index] if index < len(test_input_original_dtypes) else None + _type, offset = inferTypeAndOffset(num, signProp, original_dtype = original_dtype) inputTypes[f"input_{index}"] = _type inputOffsets[f"input_{index}"] = offset diff --git a/DeeployTest/testUtils/typeMapping.py b/DeeployTest/testUtils/typeMapping.py index 232fd1e274..202dcac801 100644 --- a/DeeployTest/testUtils/typeMapping.py +++ b/DeeployTest/testUtils/typeMapping.py @@ -42,12 +42,20 @@ def isInteger(x: npt.NDArray) -> bool: return np.abs((x.astype(int) - x)).max() <= 0.001 -def inferMinimalType(values: np.ndarray, default: Type[BaseType] = int8_t) -> Type[BaseType]: +def inferMinimalType(values: np.ndarray, + default: Type[BaseType] = int8_t, + original_dtype: np.dtype = None) -> Type[BaseType]: # WIESEP: We cannot do type inference for empty arrays. if np.prod(values.shape) == 0: print(f"Warning: Empty input array for type inference for {values}!") return default + # For all-zero arrays, use original dtype to distinguish int vs float + if np.all(values == 0) and original_dtype is not None: + if np.issubdtype(original_dtype, np.floating): + return minimalFloatType(values) + return minimalIntegerType(values) + if isInteger(values): return minimalIntegerType(values) else: @@ -67,7 +75,9 @@ def signPropTypeAndOffset(_type: Type[IntegerImmediate]) -> Tuple[Type[IntegerIm return signedType, 2**(signedType.typeWidth - 1) -def inferTypeAndOffset(values: np.ndarray, signProp: bool = False) -> Tuple[Type[Pointer], int]: +def inferTypeAndOffset(values: np.ndarray, + signProp: bool = False, + original_dtype: np.dtype = None) -> Tuple[Type[Pointer], int]: """Infers the data type of the provided input array. Parameters @@ -77,13 +87,17 @@ def inferTypeAndOffset(values: np.ndarray, signProp: bool = False) -> Tuple[Type signProp : bool Whether to consider signedness when inferring the data type. + + original_dtype : np.dtype, optional + Original numpy dtype before float64 cast, used to resolve all-zero ambiguity. + Returns ------- Tuple[Type[BaseType], int] The inferred type and offset """ - _type = inferMinimalType(values) + _type = inferMinimalType(values, original_dtype = original_dtype) if signProp and issubclass(_type, IntegerImmediate): _type, offset = signPropTypeAndOffset(_type) From 85a68fddb00b44bb87c21991a620d3fd1a0841c1 Mon Sep 17 00:00:00 2001 From: lee2716 Date: Fri, 6 Feb 2026 17:52:51 +0100 Subject: [PATCH 33/57] make format update --- DeeployTest/test_snitch_config.py | 5 +++++ DeeployTest/test_snitch_tiled_config.py | 9 +++++++-- 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/DeeployTest/test_snitch_config.py b/DeeployTest/test_snitch_config.py index 2ceca80d0f..5284ff455c 100644 --- a/DeeployTest/test_snitch_config.py +++ b/DeeployTest/test_snitch_config.py @@ -9,6 +9,11 @@ DEFAULT_NUM_CORES = 9 KERNEL_TESTS = [ + "Kernels/FP32/Div", + "Kernels/FP32/Hardswish", + "Kernels/FP32/Mul", + "Kernels/FP32/RMSNorm/separate_ops", + "Kernels/FP32/RMSNorm/single_fused_op", "Kernels/FP32/Softmax/Regular", "Kernels/Integer/Add/Large", "Kernels/Integer/Add/Regular", diff --git a/DeeployTest/test_snitch_tiled_config.py b/DeeployTest/test_snitch_tiled_config.py index b43de90f6d..2a9a564588 100644 --- a/DeeployTest/test_snitch_tiled_config.py +++ b/DeeployTest/test_snitch_tiled_config.py @@ -11,11 +11,16 @@ # L2 single-buffer tests with different L1 sizes # Format: {test_name: [L1_sizes]} L2_SINGLEBUFFER_KERNELS = { - "Kernels/Integer/Add/Large": [5000, 10000], - "Kernels/Integer/Softmax/Large": [5000, 10000], + "Kernels/FP32/Div": [2000, 5000, 10000], + "Kernels/FP32/Hardswish": [2000, 5000, 10000], + "Kernels/FP32/Mul": [2000, 5000, 10000], + "Kernels/FP32/RMSNorm/separate_ops": [2000, 5000, 10000], + "Kernels/FP32/RMSNorm/single_fused_op": [2000, 5000, 10000], "Kernels/FP32/Softmax/Regular": [2000, 5000, 10000], "Kernels/FP32/GEMM/Regular": [2000, 5000, 10000], "Kernels/FP32/GEMM/TransB": [2000, 5000, 10000], + "Kernels/Integer/Add/Large": [5000, 10000], + "Kernels/Integer/Softmax/Large": [5000, 10000], "Kernels/Integer/iNoNorm": [5000, 10000], "Kernels/Integer/Add/Regular_RQ": [5000, 10000], "Kernels/Integer/GEMM/Regular_RQPerRow": [2000, 5000], From 182a2c31bd71fe2ff39c5022a1f05ba2a53f1d3d Mon Sep 17 00:00:00 2001 From: lee2716 Date: Mon, 9 Feb 2026 18:15:56 +0100 Subject: [PATCH 34/57] update rmsnorm test --- CMakeLists.txt | 6 +++--- DeeployTest/testUtils/platformMapping.py | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 6bb752edb5..4c8a024c15 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -20,8 +20,8 @@ if(TOOLCHAIN STREQUAL GCC) set(CMAKE_INTERPROCEDURAL_OPTIMIZATION TRUE) endif() -set(platform MemPool CACHE STRING "Platform (MemPool, SoftHier, QEMU, Siracusa, Siracusa_w_neureka, PULP-Open, GAP9, Generic, Snitch, Snitch_tiled)") -set_property(CACHE platform PROPERTY STRINGS MemPool SoftHier QEMU Siracusa Siracusa_w_neureka PULP-Open GAP9 Generic Snitch Snitch_tiled) +set(platform MemPool CACHE STRING "Platform (MemPool, SoftHier, QEMU, Siracusa, Siracusa_w_neureka, PULP-Open, GAP9, Generic, Snitch)") +set_property(CACHE platform PROPERTY STRINGS MemPool SoftHier QEMU Siracusa Siracusa_w_neureka PULP-Open GAP9 Generic Snitch) if(platform STREQUAL MemPool) message(STATUS "Building for platform 'MemPool'") @@ -243,7 +243,7 @@ if(platform STREQUAL GAP9) endif() -if(platform STREQUAL Snitch OR platform STREQUAL Snitch_tiled) +if(platform STREQUAL Snitch) if(TOOLCHAIN STREQUAL LLVM) set(CMAKE_TOOLCHAIN_FILE ${CMAKE_CURRENT_LIST_DIR}/cmake/snitch/toolchain_llvm.cmake) diff --git a/DeeployTest/testUtils/platformMapping.py b/DeeployTest/testUtils/platformMapping.py index 2608d5b795..9d526906f9 100644 --- a/DeeployTest/testUtils/platformMapping.py +++ b/DeeployTest/testUtils/platformMapping.py @@ -31,7 +31,7 @@ from Deeploy.Targets.SoftHier.Platform import SoftHierOptimizer, SoftHierPlatform _SIGNPROP_PLATFORMS = ["Apollo3", "Apollo4", "QEMU-ARM", "Generic", "MemPool", "SoftHier"] -_NONSIGNPROP_PLATFORMS = ["Siracusa", "Siracusa_w_neureka", "PULPOpen", "Snitch", "Snitch_tiled", "Chimera", "GAP9"] +_NONSIGNPROP_PLATFORMS = ["Siracusa", "Siracusa_w_neureka", "PULPOpen", "Snitch", "Chimera", "GAP9"] _PLATFORMS = _SIGNPROP_PLATFORMS + _NONSIGNPROP_PLATFORMS From 03125c0f529108a297a27564f6d6d12691d9febb Mon Sep 17 00:00:00 2001 From: lee2716 Date: Tue, 17 Feb 2026 15:09:02 +0100 Subject: [PATCH 35/57] feat: replace trivial all-1.0 weights with true FP32 random initialization MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Xavier uniform init for MatMul weights, RMSNorm weights ~1.0±0.15, diverse random inputs. Verified 0/64 errors on both tiled and untiled. --- .../Snitch/Templates/FloatDivTemplate.py | 12 +++++++----- .../FP32/microLlama1/activations.npz | Bin 355738 -> 211302 bytes .../microLlama/FP32/microLlama1/inputs.npz | Bin 9138 -> 9138 bytes .../microLlama/FP32/microLlama1/network.onnx | Bin 2186293 -> 2186293 bytes .../microLlama/FP32/microLlama1/outputs.npz | Bin 526 -> 526 bytes 5 files changed, 7 insertions(+), 5 deletions(-) diff --git a/Deeploy/Targets/Snitch/Templates/FloatDivTemplate.py b/Deeploy/Targets/Snitch/Templates/FloatDivTemplate.py index 9cc1375610..8e864082a4 100644 --- a/Deeploy/Targets/Snitch/Templates/FloatDivTemplate.py +++ b/Deeploy/Targets/Snitch/Templates/FloatDivTemplate.py @@ -4,6 +4,8 @@ from typing import Dict, List, Tuple +from mako.template import Template as MakoTemplate + from Deeploy.DeeployTypes import NetworkContext, NodeTemplate, OperatorRepresentation @@ -19,13 +21,13 @@ def alignToContext(self, ctxt: NetworkContext, # Check if scalar broadcasting is_scalar = operatorRepresentation.get('is_scalar', False) - # Dynamically select template based on is_scalar flag + # IMPORTANT: Must recompile self.template (Mako Template object), + # not just assign self.templateStr. NodeTemplate.generate() uses + # the pre-compiled self.template, not self.templateStr. if is_scalar: - # Use scalar broadcasting version - self.templateStr = FloatDivScalarTemplateStr + self.template = MakoTemplate(FloatDivScalarTemplateStr, strict_undefined=True) else: - # Use element-wise version - self.templateStr = FloatDivTemplateStr + self.template = MakoTemplate(FloatDivTemplateStr, strict_undefined=True) return ctxt, operatorRepresentation, [] diff --git a/DeeployTest/Tests/Models/microLlama/FP32/microLlama1/activations.npz b/DeeployTest/Tests/Models/microLlama/FP32/microLlama1/activations.npz index d077979636ff7de35c03b12c1df7ae2e35a19937..cbc68f93874a1ad9792ebbd169bfb33705b8a319 100644 GIT binary patch literal 211302 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 diff --git a/DeeployTest/Tests/Models/microLlama/FP32/microLlama1/inputs.npz b/DeeployTest/Tests/Models/microLlama/FP32/microLlama1/inputs.npz index 89c505c6693900de9c18101aa892f42b817402ff..d8cfc58075ab9a25a9f3ff97b0d0399387b5926b 100644 GIT binary patch literal 9138 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 literal 9138 zcmd6sTWF+b8Gye%bP4OWj_oRAt?RFrZd}4LUE`W+4!@*@oR# zBG&p-A_R;Q=n6q14w8!?DFj^WUgYqDi{xT2rcz-GE6&BDx!BUVC>kZ8&olo_c4iVU z+#=1l`{q4-@B9AWd-%TpFe9h-?LQo{@$qotXLo)w*%N~BzHm5v=j_-E&p%N(es=78 zdqS=*R@G_8E028j%OhXg6TTb1fAs0o=f8FC=;xxN{bzcQ_C!a|Ja_K-b5EXq;<UgoEvH<;@~9u0($YtUur1iO3Caqcp(2z(R1hR$B_MR0;%jC>AIHVb}fD1>?D zir@!9BW=a|(c)_hlgNde#k;>*JjISCepkgi(R1r%%W6&Wve6#It7m>U zn=&EX4B|vH2*r-H{`Y_Dz(>!$utNj(_C&Ydf&|e;RUD75X4t1ObX9ZmeMD(Ln*S>J-U8om`IxOH0dDe!coE$87Up>5x8 zASDS2Z9NNJ84RHey-2HfL%SW7tK*h)3+T^n;Z_<)=2lUENjcc$Es^H|B6lrS_!)TPxp%d_ zcz^Br$v>=&aI<*5ySI3rYY9Oa>;(AE)ex>39NlRmyO60!{!d=X5nLK&pzoHKz;o# zBG=Ek)oh)Y2D9e7itHt1>Nx*6bOD%Tegpmj;JQ6W)8+Q!E&ujQdy{R&`^@ew9wCNd z1EE+o17_Ua;7w2wS&6`Nz}HEFJE{vh51fI|tz-$-uF9NAJC1$8U&>s4fZds8<{UL_ zZ4P(LD6|Q+sN>q9XR#a}b<@b}>q6go_1&@E$X!!;AcXr?vvn-NCxE_e#K+Kc{a!DC zU4!fM+S2)s8{gl*c<7z&#XGrsi&r7Y8Nh<1jljY{b|eAX$nylbceuF*B?%f?dA>mTblHlO(O=O5W#ywC35;+b?i*p4^R zfuJ_P2Dm5&N`qNKYRKH7CP+Mt+yc~#+K^Y_50g}jIEtRwYnZGQ{em<)MeU%AfJd&o z%j0eqowFqP67t6yeu~URfJI617onpp0InlN?wkd8jZ0w11UP{|h(CuXhj!`)AnrIe z$Nu&9H?|kAZ}%3jZzW5p-8l^1Lx7Xu1h|513LF!tg#C4cbH{=v;*^113z_L9UU4ZJ4j%&tu!8uflu<`y$wfnizTnyIHWll}E^H@cLN* zSCKosuX$Yym?A5H^{?$S+AxCFpyBKo;DFIdmp~3VdA# zeGPexuHA4Fto;;p4V_Kq+^zu_L3Rb~HopuVL;Kk1oK;KE??$dax7VZi3E(PntJsCE z>vFyNQqM|01^Bde9exTZ0%dFpV2>Ej;dC%t`y%ptI$rcP-x|1mhw5#;t2^gt;`jbd zFChcZ8r2e!5@7;1i&m#dCX8NLOtySH$g2bG7=aGVcOy5mQ3LYW+S_B`2wk5`13unR zA9;$*p-lp8pl2oQq9SuvTYOzV&}QE~yap8Et-5QfA{R%<>Z65LK90VAyU+{x(^h{Q z4ZB*$UGEnU9D6m{zW261QaI;m;`hFKuBOz8(i3H#$jU}Z)Iuyxwz`qmvx;sFJu6g0 zW`-P_&_(E~JTL*j3D#!}Z8wy`W-@Nbyp}dIz}}%OyH+S-ev-Kq>?!F(>IicEd8#L@ zOMh$V%mG#;0Z$^cqjG?qqWux{hmm^?b+o+$f5w~}Y`^XO@%2}}utW8B@mH2A5%v*P z9`OF;iDLH6v>CE``^F1UW0VmAe^+{(w$gWyr{=t}0t zJ?@%H9q)P{Jn-YKuPiP1yx}xpkLQ813kigAK3eB4gDG9+V;cS5jprW zcnq8aJ6~XK6l_%zY>I%@bB%p~zFd!f6L5m83aocj@4-`VemmKIa_-{qEE7Z&jEZQN zh^S2DYv4J+tQ5gDA}+3E5AD)j$gAkNhpeh6o0*yfX3-l5D_@5mft~}$@Mg6!)B}O7hS*04sP=Jdo`nEAaR#`ru(;leu}|Ze&yN>NyvKedg?fUSqxn z48wc<@^Xgbj#u?Ry?*)74%OSmA6mMI%BPM^qPzxePhWwyG6#_R8dfCYhmD-M$B|j- z%g~eP307+XJOY@V7=8{=zZ;lX$=;I}pr^@P0p4n*@Co|*N|oW)%&x(E$||1+D(E;C z(dmMB4R%lj?b;%24#CIJ`j|kj?;F4r(2uVixCkBwj{?3_mEHHIp{gS`_ZMrjPFHmwmmtuF*9bXiY%bJ0JwL=4t2FxcN)Di zIDwyT%zG_|o#Y-mg8u;4*E%o_9RVk}UJ*QkEExpA1@NM}j2J$pieAqy?1I-{Di7#W zKcVB~e0lkqp=A5Xxr;xw^pJ`DWGPSdWg;^BF%ibl&F8xc{3P-Q{w}{;5)?WCt;8A21KtE>rDP(3--TaDK%_^6NS7xQhkyY`n{w#bS zzO3dr^l|L93C!I94u@U7dMhV^f6ordjSdRh&C{r;w5_T8t`vi&PVt7Yi} zTb4WaPWu~ftL1%nZCUQvJne5+t(Mo>42^c(v3uH|>{~5=^`R}x9owhGmEsH?uRpoxNADw#khhF-mG1mDFnc`3Fu9QPZ2^ zKHDoOxW86^w-LkKMq1eqGaqPW>E>oV+|g>V)kwFIwhqJXM%udBn>#qTY4xA!<>%uY zqHgFWPir^7uhIcQQ{4ilhp@`rwA%F-C)llSc@Ju(N@|KKRcm1D9%4Ivikr5MmZ7?F z)g!QWv0~qGprhL`>)~ZDtL;`U#tmLetZ277WnHK}P*OAFCOX(_inp74NQi&cQ(k!_ zI{iKT+=JB=AGx}L{3AD?IFVm2O;K{)R9IoPS!xPuQ)}TiFu*@J#N9u{O`98odULmt zUctWZfnL=sBts@n*q7)PA1B&H^uDkn_QXQ1<7xBLTxPC zIlGh1xq36sz+{iw)ssEqEzV4>ay!c2npRrMy5&!}75WO>3Vv1qTgp;t*lJe|Th7u( z3G9pSMDUn53EneMmd$wv9d5Mo%DijfTdG-nbCZrEM_E}~kCttswpPO(%XSi5JIhhS z%tx}0-O^2qbr;jUto=j0e7u4z{bsmL^qb)q91x^F@H_h8mdHf$PP(bEqtR%rR@>5R zN{D-#@bIr*MMF(Z#Vatl&9{FyWdF_nWp94Nul{DD+P^VkHI-TYjnx|o(XaaTf6G7} zp`<4KW3{1&gWVuUTk|pHfr^`-Lx6Y4RQFk&Emj+PR3q4}Zg~&?mJ2kJ-vw$_G>LX{ zyFi&J2iYI%0%hvCX_wyxY6(Fgcj)m=PITxY)JBIMyj@eF2mg=?J#=_S=tzYgd|S2y zE*{`!gzbQPSc4ZE%f${$&FLrAp|bu}iz=`GtazD6m$ zUfzZBZj}$NbU8dy!4=<7;PUl2J%Zp$uZGET68Lt$6MAhajeMxcKcv=HmtWf)C2Dc` z#&lX?EWd5*DsI~{QEo1OtZmEGbIT*YZR;v%+u!8MY&q`_)8;Hw|wMFH|+KT4JydVqEvg}&!4T_iLmXHFmwwC-L)>j`{?pw-BAtN*nNhp$~|G*@dF;P2%YFvBazE!b~X8;!4_U;{Okum65s9t+kE z@eT6wYBT3+EGTc1SOWmHalg6%JEf=UX;nXYb}X(#lGf7P;Au8s=ziKg@cdxudn+a5f?OO3iT@Odq*rx~Z^& zYCDwF6i`FEJstT`XP`LhWTG7Ee(c^YQ_oGb{Ma*45PRR`%CP5Cd2f|_7Z<88-^KY5 zyL=bdsj!Rl4Y*xgyXuWa$Z+e3+QoGg-Nku9@w+%L%Pl4iXFd7hY@|4xWupHPoMq~{ z8IT{&Mhe3Dn_L;nL@?Y!ZFDN4&ySr?MfitQDx%M)A~eIzx1|_2j=1Lk$|qs^+-gxt z7~fEkgc)+f6C`1VH6&rdpa(^9od3wu>3kGgf^}vm) z9=K?py9VpimEZb|6}LW_D7T(Jb~BNw=Vn@d>oZo+`o77DwmzXY+WL5UfFgPLhm`f{ zRc(EI+p4UO|0{2OdfaMJ*2gy#fY^YWT7mT$R1M;4SZ}@)fhqC^!c#VUQ+~V#+<0l$ zn{O$G_169uSno=Ga519@*1KXSVp(rrF|2n*W!$2cvEF5T15YTGhcdclFprWE5_|*s zxNkPeQjGiN1;umUHMm86`Q4(S;%-qU$^rMsx<#3KZkgqGi-roi#cy(=-J(z%?G}0K zrraX`kaCL#yjvVY(W87@fj{Ge41qt>ufd=3(S(7(h4J0-(FAWMd^Ewb&i@!q$jN~7 zhQTc@ABOOHd3VZ3JG?tJG^h2<$ARX zRh=9^(rPFqiq2#mw?e!)EhjH8{xe(QrL56Nt(+IX@s%c5`f^R6cr~ofy&d_&1p{dVH6h z^tezB?E{TPV6V~%u?Qb1ljX4YgEw}Wer{n!ctYVxvj|T}oo~xFc51hk-vopMDBsxm zD7k!N*RQa#^9{I-T}K|0Tu;=-uBYh6&I^j)*m+rQJtZ z=O#e}sD-D{B0x=@de0W&9fkVnoQ2P1sH~KKNaZZXe9l5s<$T+!$U6S7e70uHt(Y@k z@yRz-Z$(vOY4fpoyGDZNHRNk<99eFtR!xU|e#`p>KEGut#ed9izmC0}E$79BW9QRX z;n-`c3zs*tslgDnL>OYFGfWYND3j%u^#|`RGX07eqVNP%gdtKVuwo2RsE;;8iaO@W z1O6dph(=W#BHy+uL*)O;8=?`nVw55B4TWH)in|1cSW~sQv(WtbZiLTyTVefBdC@vc zW^g>T8vl?Rb%HX>j#X|ehCJ8#7s&HUeQ<*oL7rFa%{AU3sJD>am~o@sL<8z6?~TyL>RtI zmYdZdZ1^($iWt7|EK7vpQ%7gA)SCxjb!e`_^9Tn}o_h0VB<1^(VTIJ2Zy+x9))$p} z>noai^MWj5MRMxAEVrICsP#mEx>BKu2vEypIZ*#FPF<#%dwmi6n6P3+1e~b?8Bv_N zP+@f^))c4C2099H>a?7^ocbCer+z^cr(OdN^+n*YQn{fB9Li*WJPu`=6~UpfZczjd zsWM5qICUBp+(1RRU*SOIwL#yIVa0u@5gTJoPKU$ z<@bcFtYU}dWrAhft!!hbc3ZhQ^$G(h-`IKPp?qUEs<5&14Y-Y6R~}B?K-9)=py@2@SMbcjGNrn7h?fht5;$#=iY_m0RD(T=C|=R2boeR49%Zusl|9Pzb1)ZS zkHT|P`NJG`!W6Pcp*{hRz#k&fv=RT5wnys20|I;GTUTk1{GTa%;4N2d!;@UVc08n@_%L6D=Om* zh-TRNGtcsX$G8H+&Nrye?t~N|TXLru!_EteXV`0Sl_F|fbShOUiEx!N+5gH_%Jg$9 zUEPvZ=DFDSRxlo?s;tC>E<$|*SIHYW?JD`Fw5z19?+6%nzO~T7@f@Jg!PQi%K0&R1 z`ANIBme8m1J@OF;ABFG{2U{Tij}eEQ6gzJw+$!@FJFl1WulxWh|H|JLq_+jWsc_bK zCm@`)nkv>SQ0#m+g7v1fQlTpUlwNP@vZRn==bKYWi>`?J1D#6eQz9&1Ci`DmzDz%d z2@#erJnIq>BvEH;lgi81`3+uvj)$Fi+V!xXNc{T0^od&C@+W0m({3g9n{pMJh)c!| zMJ3~giYDW{p!j5*m*tj}# zmOP5UAyr~27t2n=f*Ys^4=fz0x?EpeVe@j)Ec-VZaV)z~4ebL(9G~k{I)WB~J((j%gSFzp7PqPb0Aluyef{1qIo4aE|Xv1h9qY+9H5W9i)p%SB3fn z=?j%~QRxf+lulo$OSb}Mk8fQiv&a9LO5yk$$8-wEHx;CC>`?(nSkbk!IyyC!mQjhX zwjlAPdgK#dKK|zuU$(^e9}{1SYUjm;gXfPA1o@}Vzg5LvgF%X@Y0>?T^IT5$KQc&8 zKL-{04U(0mLtyz0vP`hd`HL{f3i<>F$+OQif5bnf4U+oKfxsa7)>RrL|7Xe|`7f%_ z2FW)SVw&IIgqRjr%+B(5GP@R9CvP$o6~x;YHEg~FUqH3I|C)tR1X%A2Od`S;ne2b$Ep=r2xy7z-$*N%6g=J0hdrMX+>t;oJ%Q7);paO5n+d1tm z`KPqEq^|u4*ml0P(8uxR=RzM>Q$0Hsbm$1(8s8%ybnvt?A9S!6{QfcMkdtla&4iyk z?#>;rmvXWEL(0YS*A3~Nfp03DHU8{EIBVhx+F4pv<~IfFO=+dVRsJcx-qd|dA=}P3 zrxO%jCF)lB1}db>j-r?X;Y{bbFDosQt7ky1fP*iYR2ztyIS-0*5l$ zACE(sW`1?$cWjDQU$Rrh;ZQERorVQBQ2FWhGJTw&d~`c|!Yi6?|0W}jZWpSde4w6) zqjcR$$I&9NCzIu{_haey%3~Md356%wB0M2=l+JDL)OIVs4G2dd+uZq3P`0_3e*})L zMJ?a|`6g=me@zAM|CUjTD00!QbVw?~C}pzT;{MZFVsHeZ-e)9zGTF|@n>zd*ZJ>O=O1Vrch@ zo%~;E_lnB+HKA#DzA{u6{FHwvkEh-FCe@jqkalP99xFz>^MX9>{%^TU5%n;-m8zOV zxJ#KVXLdi>UCQ)xt6kliRp#B<_g0X7qbjn*xJ#ivfxD!RdMJ0vKc!Ov6ByHn0W z=;U}j3!Pj|Rqj;ep(pffe2-M*!PAedUz0@>Y>f1e%=^sh66G3Aj0#zJ&6Jzv6DG>d zR(T(hz27BsZo-Ma%Ypkx(eIpQ?)Bw|H7l#w zo>nGUc9txLey^ZV4*H#qdK9AHX*qf6_xr+X_if+kcez8X8h|LGv_ZF0b)yI`E0g`< zK&(7!`GLsFDh9+d!7?Dq#lO?I;4G%Pu%e16P&iQe_;)ty6wSYXlM%E{+!egv|ziXpH}und9R4o~g5a_{gJMj+eadEQR8!`g3`_imch^`qc6XPaXkjPNkAeG4QPw7O4y0I&u`uNsWQhofNsbsFoTg&XlGFi4I zNaomMR@rkwGN)Tp$vc$=>kG1Asz)jdrqu9Ra7{mSO7ri02g31Fi6LFGuUk{qyWG)E z4Mr)V>P1g>YRgZ#+&@dh$^KVHS!wJdj8b^sDnI|uzO+I{Dby!0NX#Sl)5|ITzyG!bpkbr;ZTML~WfA}bLay8YxQ;~;((68}5QjrJm>{!1h7Cyw7WgcB#O^qsBYlKD=-l2cl#u$6yGFFAEn zQ^>#b&8Y-NUqr2fUZn#p5ymf*{jZE)rk|T&5yme(3=+fOA>>JJp2S;SJ^D-??8)m2ZbTMf2|!^a&Cf-Zbdkm48YnGSnSj0oBL1u9E8G|4b!w zRo-K!s-1+%93P?!lQ|Lf@4_EWWvjepc^#Dn^T{5S1=sY`sWku2cOV=;&q@i$|F6}* z*I<+)%3k!p`SxOEZ!)E`UFPF!-Y0V{wZyg)Q1!VM#;CX z(kS^qQ%1>uzlG-C`KCfp^OThk)Z*&jb@^_DJQbyutAE$!$t!-?x_sF_&A(G^#qjTj z{{sJBsSla25yQV%?BxH-zgJYodB?IZyq8Bd{833cy}@2%`WF0f{5ySvshUtr$iK5+ z1yziH=LHqu-)nG}VhUtr1yeZjDM%|S1M)^0dAQr z2ksxmzgHf$2v`eCVnpQSR0+;CCHd(~cCfS^$-%#~zFZ;xotBfAfB*88aMx(4Ry)Ku z$jhtEeD?p;9b4!B!(H zd`5=*J=Hp8k*1ut)Yy}&^8KCLrPUjU1O$2dx=r#6aq|w;)zKK&RLR2O>lp0p-5f_+ zS;@xYW^QR|?PzT`+)b;$yJtvn)u#hrqaFwA!Nb|1n-6q!vp08eaML#KKXv+)p{liN zg~R`+d-sVGzjj}%mc|%%^uucyeU%ej)xdSMsev=f^~~7L^~%2vq*e9%3)e~ZaiF2$ z%JruNz`UrT5b!Yu?#-PK`4XvpPv|c$6}XIhp{s z(lg-Vs4)<7DiOBsPJtnNQ^5SGKV1Jg76#sl0*#|(^Jm7*U$EB{Z#Val5dW%YvU2>a z)8E6-J(!(K?A4Q*wf>T{;JqrkYk5Q3F?*LJNVCAy{2oXr>@795BuSF9ZKs-Ab!;V> zxUUh4w5lWR?yMzgv!(w5m{UVbX6*DzdcWE6|XOoZA%d7#8m>0yjtr>w%zkVcb`Jq2^b!GtLvcUn> z*M27rDn2MZwQ-sBZ?8>~QDhn_?Yck`ry7k~`llkzU5liu_IZ+P?&hdPRu9y+K}(72 z`;|z;h6SRzn2D@tl3En7zq>QqO1`@@9cpC5*w?i9p4ZgYr+NdnH`%wnwE9o@!Eo@)3W)NGgnlp-dLBxIDT`uZR6riQT!7)v`~{$KpkBRj zWp)uvxFwxBB~V`D*Dp8zdg-q`kmZsu(#=y1nU~I=rPohPK%b{+AQi9OQg2OTG;d!F zQn8pKwOKbEk->|ldnY7IpAI@ydS5$K(!1TS%rfl6G>>@3#3U*sjb#xicYZcH_3#KY zvZJP{MS2i(J1CJ^`TC)>H;Q4}d!I!vH*=V)7i<{KSuLdYx-CruK1?vtP@BP=>V_ma zU7aK$5sgu^neC)_zZsh0lEqxP7L7iP>xa6%440T)+AUEzWQ8ux>W7*zPRuX1?ug9l zFFEjF3M!quL=yC1D6>=BoylLiUUKm5IMiiO9@DpZn$&fU6RI;WNBX+s4%E%J9-0$1 z3nfo$$fT{?jULzUh#GDyk+hxO9r=xml0@2PAm&rI(vGpcq$VckN?YamNHn6(n4Y|_ zlj*o(DtZ!cz`T)emiBBpM|$i?FO+L{j_L6xfoXT|1FHQY3H`NqJGyz>Si0kJBr3u6 zq=$cBCS9>^2h+)>WohfFAnoUPi|J>9nKo#&bZCSZ6IIX!<+lrz*3wOq7`>j2k}{V| zR=d;z+i3w_DI`HON z(@&cji#Jlh)GjeSm)6c1AOwAu$laxm1NZ%%HGYyb5 zW!7Z3Wlnn8poN~-rNg=uNYv)}qoR82kr|VR^7=oQKAf1x#H){!PC33^+SRmvX-<7B z>BM*IN-db(OjJ;&j$B$A(@Ql7Pw{Fb!*8V~U=qN=pW> zK*4_!Ns-eniO>C!sPlymQjN2L=(kA5R5PhDnw~O*8KWL&x~lV9$-2cYnEMyTFjI4v zG4FS5kPP2AP_qBI2})0VBzbc12ntY(l{}BqLETkzB-SfFn)d9qQ|hjvid4)KO{Z+O zXMXv!rR1H9GjnuKPs!lB9%w>AEA(_yJX7~(HZy(hTjq*VmUQLs>vlKGFJ&|au`Wa+ zp9`tD?dj0F%lGu7M{Nt=(~mCIk1_jR1ODN?D(p=3t5n#Tw5xWi!q`-HarW!ZG{Ohk zyflTt7v7NFbs_9$<3Q&VC_%IVApsSEV0Ukpk)!T^W-G>G}jJV21LTIou|Tyrui_v zV=|m=5Cct{hrlRy7mIUqf$mpyz~h7++{lOkpS`Q#*JD|5_j4qiAt4Z^JRR=2&x5fY zX2DOto-c%RcYGnHv;fAjJJ;w7 zYvGrpX|UzU42UdR0)q!efnN(p_#-z2H0VG>yV}s8JQb@dQ_!UYs_*ZOj;OxBHySD5 z-J4!@AyxJBRsp!Q?I;3VSxq?$+yMnPaIC*Qtj*7a+pnTw=WKV#woQN|fgUj1DF!yX z#K7GR8DNss0ZbATU|C23+-Z~#L&MYI#i(%TY!e2W=6Y~{p*u8g84O6@8qVG{0k=n< z;O$}#e-4@h_q;8D)Q*9Aizb4R%{Tz*bZB~d3RvHW0-s(pA$ZO#IBhZs1}*V`p7yb@ z^r%0$9P9<79|eQsFVmpW=QLRMsu1Sy-UtE9{9s>HD)j4}3TC5CAmg(R#EuyNYI+gy z`IQ%pE69Z_I|IOMO+K7`nFPHJSF@2@gHO9+LFbnwP>Jz|W*C_n*$H8`$NZ06X8V@9Z(I7hMNU*;o9P95UHFBnm1Fl3RRFFb zwf`#uT-o^^3*6O88Eo2>0jJhJ zgZ;^35iB|73l^s9ph0>jFgF4rXIl~&8-&BVF_Cb@c?Rs(n+wn1MuCxqH!w^P%+gp0 zt-V4)S!pfI+LQ*vhJ^rL8wzIKeBtxlcv!E>rldE+;L6@i*t^>gVqS&7G!-AnD4h$r z=3y}PLpUsamkuh<3!%m89C%0_2_?(G^`$LD9Si{zw*-i1 zSc9505gG=j!y={#KF$dM^Ta5~xP;;4kvZVylmPSmBZa<@U1l-9(1?Zw?Zd?OQ=Kmq z+fQ}Au&RD4K+33kNa@Ps3uV+Y3n`PHBcXWkc<}u>3>FQT17F6)LW3KzaMN@)1a}<+ zmm9K>yOs`5_C-M2r#SeldlJ+cumk$#WWw;ma2OIh9P$QCfTcm9(0)S*Y*CpG^N&Qs zmlh!~X(J1{+1?Q3S_1P9Yy;OjQ=#h%ABec04*A0~fGkRcsAd^(lil9O-SLJdEt24u zF0t?e$HL0cFepqI0#->OAbnN{o${tYK-UE@c3}W~S(6E0epv)BewzSCdL_fr^M>&8 z$S4?nbRKN&mkiRRaPTyWf#W-p05l`vdc$P+yd(>*ublxCpACn_*Bk-0odhS`41~T= zR}o)mT%9jethefXp<=z!ptog{kAdaMheEw+Ythc|D^qSzV|Nvh%YI9rKPRZ*4dsHa z?1$}H=oW`0Lwa#OxZm>ue@{o4*s%m&^_dH58=|1|fmBdoBd(sq=7UGyMDPfn1IMBR zp;dq*Y@8Jh2lL0kd8aARsO<`H-r@tQDyzXeJQY5k%mZ>S0Xm)s*fK8^G;D`Kqi%lS zYEuN+d&5}Rxx)J5a5!%m4&GOip?8lQXtH+{c&>AUn}1ls#h85XiCGU9mraA11G6C} zXF3EmngL^O1i_0d(GVJ%2&s}xh+R1y+^v$KUc3`rEA#`Hm<#Xz9057eHc+pH3oM<; z{=IH0tcjTm&Dt-5lb_Ndk%hF$^8(0d9t7R(yMV@Eb_Ec(0;0U3wl@I`MjG(9>KPBM{DdOR9h zvlgMuBmp=Q)v>6&dh`S>wb{6Bm$H_&4;@u!(hOZSa9)hgiKfli>?j?*N7O< zZV~`X{gPq3e*$!RJ{k70@aZsj0W4YR3aw`k1d9R}uyBO)foo%hOOa`sX1`mMh_%+W1w_XESUR6K%WlY(ETJU zw}|D<{xW1Ocs@wH65!W2fuQM=12*H+;6{UZu(}Hn_In=8?~)ESBo{pXii0s-XM=02 zG#Fhs1J?J6fzw41p#RVnOs| zLK~JE`J|Ey_1v1nFHP;?&)b3UrpYX*e|Qm~e!dVsE)s@aPJu)w0DR{(h0_TMu=+|@ zFjzeqHVobf;YQ=(R!%Y;d*}}64>zIr(O1a(=+m14?JgATj>g#ccV|$Y_o;q#74c?3 z#ZU_2jXJTs(>xxWhUJ1|-W+IsFAS0nyus=VLZIyy41M>cz?}`V0RANYN6eu0{uCJG9suKA#=wH>GXPdjfnhEEK))~; zl7>$P))~=#W5HLZ}F zXaq&Tyor-w6-kAx6^Wo*I}+xonL*;O^B{j^0G!u}0M~+^qnW^E&x{i}R;l zie_2XNVxUF0iHkhh4Z`8;gaD(@X#t@-B2OezD@wOoO!T)NE`$@W(nPofkN)bh)!{6 zf1zM^)p;`oyQ|KdDb}5Fb>6J{?kd8Ut{hVczSLpCt)|}4?Org<{%JCd(n^Ewz7b%~ zdMLFBU1+#F1fCb>!_ozgaBaXe2x^=FPdyjF|%W(@jw{l-C+*^d`rO0AptxOhr%=62nd^(1kYhT7_XWQA!`cZXmBd5 zo@)zXm!o0mSF;+G25-LxZ`rIj9ku|#awI&x76qGTrGRR`7^r_e1#C;_gXN7lD0uGy zx^3Kr-i+NQ#CS6uE!vyWPN=GmDy*Uo4f+bJDDEQztP>jQ<^bzk`onPdg`nAUCR|y; zQj|&-u=3pk@ai`THZ%$W*Fm%3@U+>m-YWurJ}8AY_tIf=iv;NMsTaIx?FVfJ=7ar* z*)aZhSD0*@3}@c@fwo2tG^!KH#w4C_b-v*@E3`9Z>0=32l{q z;kQRqp^@Eqc(TzE`YecnnIkgcnmfzUcQ%G5_hX>{=p5){J{3B$Ss&AXGF)Hb1A8_b zz=@(|P`Y#y4D@C9B-(2jD&mB6w5#(P3U*hW*HElGo$9J9knx*4bls2$8*`Fi=gLBO&~!F@8R!GkA{cs`?GZb0otfNCK@?aH>kynxY70EjEM2L79 z1CcMIZA`z62u1p06&Wa~NKdRHT?G~CidCdVEAnP>FjhVs=!jHgsGuHgk$UtL)Fb+y z0IkP`oj3ch^H%X1!a%#>1I-=X#J&W5EM~;^UG-5|m9;%oMlDW~w$*RdU2@yG;3%XY zJKSzU(F!h(4zNTjq7%fLuYQP~bsf6us_4+Efw*@TL>M&>s+tOtss<%s zm&6T9;GIN@DvmQf#gU^YZfUDIz^if=6<=C?I(V#kX{$N@scKM0bkHnreGC&Rb7{F0b&C*V|owxmct62 z>Oa(XYHQJJC{~tU#G2=;nv}Te`Jz`*x8v7iY?BSR%j47}6l9Hnfn1b7CV4 zZT;^+fuKZDm4ZmY41;vPRj7vmVqoXBiDMcqtM&GfNMs(63aw!GX zSz={H!azj)qobub40Hr#SaQHXLQPV#{nqa$JL+%SkTG=LO~SZH#21ndiK z3nM$^f_2Y{>;+Rj@G;pAe*`ap1#_pt&6^W|+)jWyGkU=InWJIIkV)|NKs21YypX+J z5DOEw#DeFWad1Hr2rI1@!KIljofsVeE?eRuNX-uxxJJVbmYy8lZY8vwWCxb1VX$*l zG^m&r!rODUP!!+?CKtkC@24zSm%9x*@AiSh$unWZv$epij)YOVV_@FNBuJeR36lNe zp|y1ye7Kto`?>^x<-J_ERm%$6?3x2FCPsh_DuVl29^hb@1g%;pgGNrcQa!V8x9=O+ zx`%xI5{I^qmch{Qa3#Iz%gB^YbFt)N9`3h8oy?Lp#KWyjaO9(($dnZ!ILOpLpbR*^q@^Q0I zlgP}cFVU>Ek9W1pX+lPPoX=QnEWs0}yD z)P{u6O=LGB7=d9PvoUnzq-_Jv@q0xoJb{ zcy}O5rV~t5PMu)%yqwVbVYc|B)&t3$=sHr5xl!2AcPGkJ2_%hw_aep5w8(ISsiafX zaMGr9IGJF4jA=Fb2=hnNLX6tKMn}ye(BwO((B*T7(b-G2@n)4-_}4D&q}M+bljfIJ zGu@i?BMtVXApONExaICC`27NB?9gfv*^`=223*m?s~ptH;?3Hq|FldzwRs!qqXjd` zpD9C7E5lCsSf~*;{4f^(KKXa%S?OZjDQGeCaBLUytgSQ7)62kJTE*jW^G+c0E(RYy zti?q?%Gl_lVHRg$)Beu-E!rY12DOu~=nmMy_36`b@63<>8NUw=G z#KpxG^{_7?gU_@fb}kdhE&DMH>?+2Oq?tIitrl54%LjQi$U)~DjAhgs^u?VnMx)-N z{K=P$3yk09^XR~qvyv0meVJz+;+ZbPjF|~GY0Q|;^KhRxjhUJGe@bIoXW(6H#-NDX zi^zMIpG}`>-eByG%^)kMFT|$L>k*$YUD6DV!xLA2bsk3Ca_UnS_^VEcJY??v;OoO&KOI?syfd}BQ-T%?D4SrTSY zl&2ZEphY)a{9rq?Suca6nf1Z9?+#~7vM!?7nTMFrR()~uuRg@-WE^ST5wP9#MvR^3 zB1U_!lsQ(vE^4$n44t<)f$l8qg*DGenaS~q#C+x{rr~QR^!QvpVkEP%znu@R31z5M$Bb2S=N;LOpkWoLa zAg4AqN4twcac9dYJm1Sx>XEz@4;g+5onJl&$Kq~epZ+FkMu%I{^%MU_+J?U)qd#)+ z-wT$J_*n%+bAk!puX};PWo9~Lp z(oeOq?cpTs5_-sF%nnNuJ!=y3>^_V%w8aLR_~4XX$RuP;|<8_nXSpK z8O!nQgm|pFWDnZjYpdk=(nB~Ow#<2C9R+KBu*1+dk~v!%zZqKKE-Ks=^@b7o4|NoKs3GFdW0pY$9ZMb5o( z!1=Q;GkVc|NM1Kg&P~lFkJ_k{d#3gAeZ3{btjiHpY`=mzHhVHzxnd4Un>~rR-Pb^8 z=KO^m?Qft?aZB(Xvl%2yJCi`|bIAG2AB^_(=46GYIUeGaO(bn2NyNS+d@I$0G`YGM zn?D@LOc*$g1f0ns&D~BiwVk|hofoYn9sJyx3HjY5aVmXrn_riaW7~V<<0_?$@|%8m zU~Vn4Jf$Y4V=OsOU>1 zbL*HAIp6bzX@<20_4EfXp_xc=+aP4k*_0l9M8{UxUr87~}LrsZVQ38JPG9Cpy zPa%;?uJ}XzmfbgHg6FSp7qEs^7 z3pbyaLpqEsM7F)7vBV(~1%xlfll3F9j!8axUA&KZ*(9CpxiF8>y|sj#OV=PBJk!YQ zFJtjF|7`Mk)FLu#SQ~WOIvHOcI|Aog3`g(IX5f29xmfvN7PDx_ai-HI29@^eN!q5x zs?MPuw!aL)A2XmH&q ze61jf7@kie;mknX@*<#Zt}*1q;Z0Kid$q~Y<7uYd>U$$7QpMNL^}{~q z)7DgSBvz>%={dp%t1pcv=H8o3<0ma5nMMbhK3AubhYsGvw@WlRz9)|4wMimT$%c&Y zp?RcqcQ9^z<)LI$_qL?317SM+l0@R(EikpHvyYi_wGMuMVh__~K@kpEpNj{mG{;*P z_Cf_GT#4?I6f!XD0E4C(lT*Pyxb!o-ZZ`nGH<&?w=`)Co@7bFiN?m}P3`)lJZmmZR zZYDBY)w`1BO*)WtV+(?<^;o}ULY#7RP>aIT%%48#%;=2^Nyi3ZOmXH=tdo^VdO12V zr`eA;OnaJ)H{YJa^j#K>_v=l=Kf8{>S++*ldfQwwzVIdb^^!jxZEZ`6h8JM%HJ{K0 zwehIa^H}o0(uIj0^bYAqzF?+l*TSl+n~}d_hoez83sHhaXQFQ4f;{b;;idZq<4!S~ z(3eRG%*&Tc$sY%EN#CnxSoOgs$>seKc*F9}*tT;Ve$iz(E=aS({p}A+`t*+{Wc75M zkT9PF&t6O#n+D+%%ISDQfG)Y9*`L&Tv!4OCMa)O7F8I31DDu2+7Ad;Z5RdjQA&cVE z@unri@ZN&M=#;l99@20SHXLq>|7hO>U)z>X8nm^>C+e@j>B$9X`BOb6{ZKvp@!TN% z`|yEewr?sP*wz<&pFYfNPBg`}a0g=WYAo5(uru0f@-t(0Z76P}oIrBMPGJ@`)?vQP zYD!>HGFD=W@$}gpNlCxf#N9&K_|?gb-62~Nu;#=GIHrd`nY}R@x7!*|LgseHnaS<3 z;d4VW!Lu7#$$kN{Pm@pRfl4t>4e~;sHt9_GV;{UaOqDR6=H%^?A?O7}<1vpc@C%pD z49W<__BxSdUU(J`ZjevfLkgN7>`rd&%D^jH^ub^3QgL4wZ#-mn6tnu83-T-Wl-|rT zCMD0ECBC1Pu;pJ9$cG_=$&S)UeDLW+Oirw4+BAwLr>E8<4gc;!d|D-;^z?hur-Avz z?dWPW$+0P8KGcQ0N(v}_^k)n)KcP!TMrvcz*ulicXgY3@=RuqgZIpgaSco%or;_(| zvhbBA+mY+NLW#wPaI(3{KsWGfS>2VYU%A8F+Zj#PmjLSdpbxfaUV<%?=a4LQCz8(0WGu%#L*wEvqcKO*iRP~_ z(BZWm$?1{+-2SaUUf^Sh&kl?tldoAwhmC1U?sT`r1A^+4C$B6}^AKAy&Ez=hy)XfX zu^;`(xwRTiu!$y2iWy#g){^vi+M1BxGnj*I>f$YCnv(d?+PMBjRkY#Pd+1U?8u{aO zIytr~3NLxm7@Z1;LyvQ2qp$|s(9ZLnrAaS-M;5M5%o~ZW?ybn4X^B$lTn~KvNhS&{`M?a-S%QCCpMuYK zf4Ez7%}~62Za(R-(h)D-WKJ^4a`G{#C-G~cihnw}joFaXmkdf+iMoD>WRk<8$;wAV zn1qi57*)Gb#Bko9O!mvB%<@{s*s{@e#(hF3Tx3~_Y%(Lz*xD2EmQUxA{zfZuqyADH zJ40J?rT2ZwXze_-a%u~5Av_ z)sMsv*2QbgB>1&&7bz2yOO~ApBg)SgqC-Q9vHQ9rly~7IbMe{%)VOO)$#lQnC~1fR za?a|8k9}T@l}GzBuYBi|POaMEY;Qegj%FM5;ASTNYu_}SfAWg7`^{$L%&B^07I?}OdE{7pKfOkIDC?>VZTncZlwe#rfJ|i zW+`Ob^y&EZ%0HynJ|vLIt==(hTE^mQF@<;png@YR z7m);aS4rC1U5rESC}KU0NHcaMF%3pBX!4||%pH#7YlSS#|x3!DO)ZD|8s0;DCry2jv_;g-~{o1NxwU-m{^1-=y zd0-wHy#9A4iAh2I{!Yd{?Ji5rkQP=S(~V5)zYqtmP9Rc;r6eG!8Gby|66=4l$J%x( zt>VAi$>#*7v3|f zBYl_>?_-h=+ZJH6^qrTLsW|kdAJch;9a%pAF#6(rM>6Y z+b>58c9o#G31?8w{f&%sqe9YtNJE@wR6v@UKb5{#(jmKt6cFX`L>%)=E2+sA9lUw^ z4YXQiKAE#L2zyxEVLs-pW@3x$;PgqY@Zq~|L}TB2WE1{OTD-g&UUAfi%=b^jE}x&F zr`= zjwI@@JkaD`k!1X^+9cNA0k7P1m+{;+gE^;p9i`nbCY>(iA&J@;a`Sm-V(DOxm&|F; zVr?OL-F!0s6qCT5eRfGYH=_gDl|PWNo{Gr9_laasO9@Vyq=GyBluPDpZAgAz8;MmG z2Vjf5WVEGyTQ(kOjcp%Vo3#0x zBC^KMi#(k;hFm&4551Qhk#zceTe@$4BJt@TOfGy%B6WA!6P;_1nY;#=aX#}i(`H8` zK5K7-4c;aZ+`JA>X5-@8jaA6Q6?IABM}1Oz(rQUMiNp8QJEM%T9!xhj#tmbPSgtq| zyK4R_y*Kn0qvJUln>y#ByL)RR{nW0+(z^w|+UgWS^A-`^^&3#G>U_K~HWPc?9*sS8 zRq&o2A&dncz+~Oo#r)Yg8oxKQ!eHu+3(oe%8#di4C6S3_^`E`)A)f=xvxF_Xl?Fu< ztCIHE&#nPZnv{j@pI<=({8h+`HH#%icjF|#MJ1DIUSUj!0f>o8>xFl2w1 z=!)iV&|!=>BJ^b82edp#7iD>9lOu1MlcdmbxW)MlJQBu9JAKk7Ho2W}rtWY_>-Wo< z@b;>B|8Ik^S#Tj*zJ9c1<=BmA@TP9~%7{!dNLNDsIPHiHFNfoyFG6wnu4|}WOLbB( zAOWx5n~7Fm9Y;27@so@Q?1kSP>cqrZ>PrTl`k7fBqlc$VZBBlkn~R6POvTYF(};2X zN#uQtnWW9^NqE}ULAb+53$lxiv$aeM2#Kjh-t8~KKLy=lHpccPUS|g5X@i?Er{mg? zv}}Fm&GsA|`ltZ=(xCrIf z3BzWsJxJ`Hbi88EVsh)?Qar8r8uRY-a-2G(9)7+x8ifqkz@N^pmFV}^#62e)p;^le z@PS%qQS+oo5@MT-PiEG}BerMbgZo4Ag^hNSAv&8Rf2}Jbub=hDO#_ch<7T$TR~_2n zwYvG_4~<2VmIswExzCDDs#yy9%bLY!|d451g+mWADbmDCV}>=nP+yRuz#1K zWLTyyb8b;8uKW10w24)3jJ2!|d>< zXF6m{&Mf@pV7}y8=zB(MTNV?3m&IUVGVZZ=kkmeKi!^)oee`C35!!d&of$ke9vckv z#ZKK?lfC0wExD496IC?hX6D3(l3kj$WFk| zRO89@A%~gUj(O-0EpMX#CX3t|6-j#Sav_)BHo+YRT9cBc(YX2JQf4{J1)cMV#I64B zN|f$QM?UWy$hL-VxbCJnoE_)R*8Fb5qFe(z}dDj33Uiaz@Q3 zDl>Nv*Fx{F)t01PvL$AJC6jGIQRL3zaMEm9CZ6478V+?BMDDeWAj^*|!T)3HyyLli zzdw#-BuPnTsbnW3l=podBMq|Jkr6^7mA&`gdt}eHcHwPt*-E;XnyDi*#GCF?#8ETS*ki^m$BI6Q@D4 zzxcjyO3Bu5(fHs&HX(+&nA&xjgggoZ|8=ubMa>Fge5#0-LI>44oeKA#7vMdKXfT># zjAqrd;1uM-A-UZ|rKpue*EHjX83|BWmj}j9v+&-(8ML5g1ukf`rmGjn(yI3paLUmd zP`mt`8aC>|GLa<657osw_hgtF)J5OEo&rBz8lkF33LftN&HpPAfh}5Q0Q*o&o5S(hApXI*wV)jsh#6Q`blgB zd^NvmD(ZQkZs-gnO~3qr-LM$mypX}2x3l11JfFPT^N-2g`Gp*}y-D)T!=X}E4ZR;~ zQ@3MzgJ=JrD$fizaxIBOr&Z(m1IG716ixk3f<2X z;kkhZ-IH~l4ajchtV?~c51tT;*)hy&{YYN zcDwP_Uri8xB#xmL=`hDH7UOJx(8|tyz=44v38oBJr#R0mV>uUAm|5m(%(n7f#8iQ3~GtNoqv%Dy_tmqybvz6@dTW)U#H<8(l$hd%zrd0o3Q z(PBImoPX)ybrmP}-qla!Z-+2sXjkFZo?SQ~%V~u6niwV$4Ce-`LBPhDj0gt6!=ym$ zr$uM z73TRX;IPyXwb7hU1!`77$tx3BXcn z*L2}|{Uw?-y%lm6Er7d8H`$m{K?pjSPXak#=l$`EG~%5r7wD)H83wI0+aoB@V~wr;9oOtXZCS*)U@p}<2kVwR6`bGmdPu+ z-gOP=Z;XOIT~EN_Y^+kMz~sNC=-C-Yjddb8Z7vY0hUC-N&!S&>pikWAjf_}_>D z@!l!aU09kbg}xyox(#GrpBqt*nT7H%>M%S$kL2|&0?iS7OpCDwt&bTrYHS1Em-WS4 z_O3GAndhKLO-r|1uM!Uy{rJ%;4^(i&SuJDd-6O zM@?3QLhOfloEYo|8dpw`DH`iAW~w~Ac>9zcNmv5!c2#504`uQs_aLoUTnc-7x%qj< zTHJFaAG6g;koPK^70a~3#kI@n%*cASYQ}RSsD6v}D>=?A@0Nmt4IAmSjXSA)d?_B7 z!+_B&9hhS71;?7+FrCj1(eBn3w!&8d#v6Xnitl_nfF)QrV>W|wBJgm-8Y-jd1GnmO z>C?rEa9$|`wUXBGq^|BD!RHdN|7R%bHz(86|E8^=zaBOC8p(xh}H zD85_)f(jY1Ut|r0s%6mOoN;>Pr8x7R(`iCX50m-_Nf`5@%v6E%Y`D-SY%VNC>&_a; zKU54dRsp2?HT9dYQF|BTMbUQK!DJn-yb10KAWOH#)u^n3<1`$M3?6Rj}?O$wQUI)pDY1h+Gb#Wu%GA&n2_n} z!Zcx1FxYIXB}GOi=qZ_oH*5eus8A}S@{7)v%|Z7Wc{o~XLZUMn`s~akde|!-&Tl+J zZC8b0_Kjk6zhVusu39)y{hpkjn~v`tGok!P9X<447u_-KE8Tg8tC7Dn=qc{ZJ)|Cs z%O9n}sDl;WtolkW6s?3Gxd-|37cD{Zc?QgX)k2y)9?~~co5^^uA&$fwfZ1R#Ri5yQ z&gs3ypH#dX_G$^^$J3O&E!d8>*1fFFrfl$9J`vj@P4G&y7rFRJmo1!Yjgn)N!Eki~ z?&{7!|1Y~y{_Au0hQ2AY%Y;Y7maPXPw*@GCXD7c%q?uW->x<8h>_F!B80B~m%zb2m zZQqN)ZFU(N$K}E2kOr8l`-k0g^|7QXs zV#_Fz+X;{C1yF8LF`g01#@%Tp(DM~&HLniVL>j`OCNQjZ(stI_hr7D(cH zfouN~@T(!SLG$W`rL)TaAeNt#~^Nf*kbUL7n_c(fp+) z%q{^~@gyIzjvAq$@+b{>nT~DeCg9SuGLTz3m!H=u1!q7X*W7QwPd?S~>{cNv6lTED zK@ZfozE1jEwn5y(4AXb#Cqa-Q=T&TdNXb2Jp6ktqH(y=xw9hm8T4j_@7*7P3uX#jz zZ2{`V+M<<33T`M?20@39Bqu2ot$CFg|Lhv?f(yr#)V!yy_>4@GJw)H@ttGN`;#BrW z62|K%W6Z1{O!i>|)UBA#d5f9kIalMFRy`nB;woSoFB@gm66oj>CH!R}4hz({e#pKK z-f%Oj=#vJh8Hk5I5o0(vnbSk>m{D<&KfLGruh7!88d(1~5p%oMP+)H+ER9-9UDwHA zzVS?SQ%^%B&wO~gBL&4p3?Vk%5eHs1;KJ-CqO{kKDt#!z?pYgY)>J=uZqkZ&`FE*Y zWiWX#C57>^34(JkQm`fIF+G=W2)!RB!R|&0c;T@U&+A{LO`q1liF@;KzhNz=-e^WS z>A84qUOi|g7Q(g7Q_-^N9Q8<8Ma)iQ!!>)FEiyFxj=B3f~=;guAqpXEb9gPFlEvD)*F-An9hp z7n_3oUo*kTY7*V05)7>JW_;lHl6)oa=xqA}*p{US7QY?nZ|xx3KBiB@1fAetf+B?Q zC-Z_eTVQz7Bci)&J5Ri+oxbo%1ovQjNUt-&lSc~Z+1fpLyvGH`_cpP6lB_Y=-IY1O z6i_Bb7+gQqK;45hoPWU${Jhi2wuf~ncFh$vPn&_@U>(A&T#$NF4Kpl)!9RBc#))j9 zcN()vOtd0Exj&P7vX}hqDTYXn2N`No!lg2CFl;&%^BbGNSzir>9QBy$%?;49GZH3t zM`O5NH6|s>!Dn>~-09wevZd4TkzOm_lCA^+&8tMTCJIK^vozsZC0@8O0Sx3Bw7s$f zF3qZe(^nhu$>U-ilE~maA6*P|!!F*hH74}$fh0VOT{LyM0phovG~PE4y1xukTHpm& zXV`;jl^hC2*WyvL6l!KT8I1-)@Z{)b_$+jouK(=>hC+Fmx}pRlv)%DSWCTs{j)bt4 zik!da#+WQOBChlkX*J3Q>jI7=Ih+Tn3s!>u@fdjAISB(^#9@`g2dY*d54)z!!JPZq zxPQ9?P8BEt;e93aOlTla{y;6HXj#J6t9){Bb`93+Ovg2v9dt#AE_BE=pv{rH>_gQv zWbd{O%!eCOL7e-x9)5j5l$P%!?-w*eL$f7XU2(_T%`?GZ#WiBid9e2DJi)yf>9319wW9fW0|z_S;YLT_qe_-#LQqU>Gwk zY@D6U0IF|a==zz-RVBz@ymwAFVzxpScjm)^KYJ})rF=!Gkxe=9cw1crh2 zvN&?4G#z#BSHgoei%{0%0F5=)f?elw2;ZuNES0Oqh;lpBh%Lu0g@LeS4Z^!=SPkUW|3ynGXmE61i`n|TFZJ{XB33SU^)bDY-44}czyr#b%P0eP@?kamsafc=_sbp6@P zba4E`#-d!dLzH`d75C}xjnXiss}>$UHpI#ND3mBmgMjZDY-4>O-VFDE6N&}&{k%+= z+p`@e<_5yBWCh;(mxul(T|DPooAIqTH``QX!$X;csPvTU9ptOA>e3Nnr)U6WL(fUn zEjRoxU?zN=s|G`*SICF)Owr{5msK`n3o~9;U$DLrr+;>TZ;K zl1DrjuELWF2~^7CI1#NFqg4S&ZJJ^sytfkMb%Tk&oEYrdrU7eBrEm|?Bb)lya+=0e znqEH{HaghAvJ4xXzNCO$c60-`Axpetw1=!TnE;R6yNQg>23W|O21?t@@bii&T;(i? zW9$d&nG{BIb;U8scP?hFwcvESea!BAPuL&riKx^jfrULm5RecJ_}TypN@_im0U-FUnOlTXb zsOLgo@-lecArH?g5<#_Y3EZ8R1~WU?L&W`HRQ40c{2&v&byX8j@$#Y9umRnQ?7;Hu zZ<-U@#XQqEK-;>5AhIY88(NnT$Glux@KYUI+#mBxzh>dh!}esmzb8M3V|X8J>ZiBA z`SK+4CbR#l_LGU=K?SY!F>yy5@qPV)_Nz950C`WO1}ZttDgjO;B;k~VP1wG-7BuHK zlE{eVTs`!Ha{DREpUTru2c>jZM;HvtQJ5cfj=z#mZWd>ZD56DHB>3MLsD`e=2jVEkk}a2*cOC; z15|NLc_yTnITFn?0$|2znLi_&VRHIpygFQuKMLaE&*NH>(wBk?oR9RlaRrY2sG|I2 z5j;Me2sip;Va3Tq{Gdz|m@RakUOn`Yc>gIP?}DemucN-W_}>9)b2$-KyX1k-G(KD7 zJPUH8E#S|howRe+OtMV=Iw|Zb#jo9=EK{2VJ)AyrqjwMP&z}aKB3J04r@5$oZ4(Tv z(}f_8f5|TRN_Foo;(UhNH1bm?J!y20IsI`m=vZyy=E((=*)~EqS}deHo8>`N>HrCi z3m~H^wHQ&=&t4p<#S?=UnGI#@;g@$M91L#8eJy*b^A(OwnpVt<-a1U?$tc4bb`P$M z*@mp!Vkk10MI{^zaqpZlV(+*BW=9Fbn9)VLWT`s*O3on;2Rs?Q|CAxp+YV$FA0>x> zu(Whcl-zq%hz^rtv1nQWQFRu>^LG{5q)SCme5#wY_uQh1g==|RLNn;khaag@)?dQk z%&}0{#NbfYJN8y(JcQ<3`+ezsh&;vpmaNQNED!nY!UW_uB1Pd6`{sH6O|^E z!(>HA()2SC>K41wTV+X9v1lXB4BrBO=1(O-jbbGI+ze8frA)7nMdL>iu7__=LkqeN zM?_|WrExWU0&h?henDr;nBw%?WndBzg%;aW@#>!)(5st;nS1BamHJ4(8BM0UooeU` z9Tn)=Bf$zi>g7pYFvpxL+HiU4YScXt4P|;3*fXyJe(@!6XqOjvo@KEfey2#C>?U%$ zV*xxgOr+iI6`1tqChgl8L1rWllIBcTNZ82TUNA`cYc% z5DmT(sr&)ctEM|g{GiIG9xPo($Z@w-*mmEWX&2ynRaGf!E$@LHRp;rFLwe{~DM?P` z=3wJtB}fj=!*~%l>KJp6u8IlQ+2)@diEccrHlI=_hJib9n78A(&Xa3yK^| zi9rnKiB=qBv%Dw6l~<0a<)wwzRU?eyX=f%iQxMl*XJC$$1#C$w!%^;i&JZibg6oc; zAXbAXnQT-s+zjPM%`tv7fxK?xWx2e<^}syH-#UdgSz?dV4m2@O+q2-m zok^e;vK1ZvL=sueCOo&G1-E~;hjwfy^v`aP9RJ4f+RyWT{|O*NM<$VLq6RQGZat{( zb;5w0WFlN`gF!XvDD`}pY8?=Quv_c+t2r$u4J|QVECBB&wvdzOgpdi7AbP)zv7*i! z{8k0x+mR~RD4UG0))>N0p%Ro1oyoqN6^tJq>}73cB*N$)4{UyZoLQ)?2O|3|V8*s7 zP}HW4+v;QBP(}mVFD(UY@mh3SbdlI>Z{nN(C>k+JlT5E&!n-7p5G=DY7^1qQVvcz7*Dg!lyKtC zd$hm29{3uKaPVw8@-|Hc*Pb*Kd$$v+mZ+i%-<{K050Yz3Y#f?F*vkbX=DDqmWIlxH^iwLutfIXGdCOd9j3&(+lGnE)fHA`9*Z z&r$PP>mYTw0K@-k!6l(OynSa8=*$u!yLai}@0o7c!Sy3Cm$WD&ScwZP8gb(Fdc1Tg zf!6&vOY5@Np;vMy1m!kB_5x8FzP15dwN3CLH-oN--3-Th;kd~z6q&V&u%{~)JKtKt z7KbX>bf=%5jMO7fo*kt6OIE;BNgaH!Ocozp`9&_8a4cb(2Y%ck4}SY1G0VplL}a(( zi-;vOS3?X=3uVDFQD<1HUxB|`kCMKmIj}82oruQQkX*wuTy*v?uQ2*5?~wT=c4tr{ z-@o-Cm2LF|IcX6jrT2OFIN#P?RTGN>(m*cR5V?{^@&aZi=RbGODCS@C(&!jHAA8Iv6#Q2EMv_WTE0(I3phO%4c+;43pyANEYa~!IO4xL2Oq~>7g zg(6tb@ylvA8gQ@tHf(1L;nar9G}0o3a(y@k`-?HVrEe3vb^)B4W(fh6yK!i>4DJ3= z1;MtbX;E)GWAayn=sZ~jE4+G`cg-4@Fqp^hZc&Hwd7`B9XATCvXd=;r`c&Ve0`-

n;gA%ViJP7lLB{%DbZ101TE4nL z!a^+YmTeQ5>8ygs9g@5gTL_vjH$troIk5Ar4IP^1PHuQTCOyKgaAIjZJ}5rQ3!arm z3W{<;Uo8it922o@?JNHL9T~*b!4)$F1z}(UgE~3~>1WRd*+eGLyXh4hm>9ku-6^>qyCqKsSQQ`Tgn6C=q*f2u^Ofu6*=3EU{^ob_a zJ(mSrzcR8aV=LLVX@C|ciIIo#8c@P3fj7=J*eT_UQuWd(w{IB^`4oV?YX#aoFND7* zmeX5tQ(;pc#|}t$F%BM$jKs%C%P^*5-5}T>QO>y-izlej2Sry&5jCab^?97_R*$;o$s|Qm6iOdk;2-5VxF+HOqt5xv?2}C9 zzR4ZRjLm?u$(tCji8slyAWu|%riq!ahE0dJ&p?AdZ(KKRJ*?MChwayQkQ;f~v{`YG ziAc#ntJ^wsXD<(|&gr4u22WV1^^x{UOXK#=-MB!Fo7X-Spx3KZxF=r$CsKBRh1g}9 z{qPVu!1aE=zLr8qWFAbbkc6;#?`ivv&3NJHZV25{iq}_}!O>J7*tWnEwrJFVch*t* z4U5QuDU#$?fFaR-mWBFq^%#Cq5HBZ3LdfVgXnb3Qz8y*s7~R7f>rNs?>5*htPZqZI z-=OKUuF%6-o1mkCdna_?5#!skFw^oeA*HeKTOl7~CM9Fp@M3bvmk0B_SHOu0ShPun^;zhS@_*5noKd#ND zoA;GK?Zj-Hro(Ob{ijIZ2&F=>e-&-!?Scsk&8Yo$FWFP1fGY&Wu*d#Ao4=<4Zs*R& zH+HhPfJ}#f75}JMhdi0FB^+yys>4&~ceFKWKdXGanY>+)g=R4gT()>3d|y)o(k7ks za)BhQK|_%La*Zt6Es5%hK_Kya7rvbk32nt6O^0MXF!#z)+T%5WjJ>bpHMfkj*Cos0 zY?l}W3W}n1TQqil7^OF(CPHdPGwd3eLcGh2Ss}Z4^o!EMW@~x0X`2OcoR`_qHka({ zZ)42W#>u|RvoS{aE>U+*0n@#2$RUSudU)q9yt-u#{!nJg;+H4s(C!jAZmk5LW(RAFAfLN*SJ5*S&$>$!krR99OtYzQx3dmMh8!6?-V$~+-2(ee zYw_l{0xq9NKz+*?MMGgCSRV-aKK0nN--9H^?!xi$WuRlM$UK_9g7s*OA?LPn+2U6! z#70vdrtVE;#~q`Hw{{UenOhEeQh>wbKliKCQ(&N;RQ2nPFNxQQa6S!wgQioWkBeE;dIrOVBo(xNRF2kkxhN6ILW94#x_Kd!bcqp zM5W-S0xw#;L6VDxF2_;9FlOn5`S|B(5xgtO#^-mI!f`JXVwjUc^@66M(|^yY;umZB z=cznVTDu(1I-MuF8ILA$h^B7A0_T* z^S_*9^Hp~c&G7(gbg-0cp0<~mecuUPK2A7TSID6nBItawg<9mfVcOC_IPf}=eg_XQ zcH2QGWM?zUtjo1#Z)r!Cu_93t-xfrKxI>OWclny^82I8)HiQrd~2u>abX!w2}ClO2HiGw-J zru|`zrIijHbVx+^*%EB{etDSmFcl?Uic?kRBK#%ng$G6p@E3<%l%p3KhV6pZ`7m0^#C3^CFxM{EBU;%D=a zd~~bEf(uXSGWRIL_g@CK92%#7V=MH0_CV7W1^DfZAzrm?hOAveP`p!~>{F^@)RH$s z#NBn+6Rbep#=_8V`)1-CrA!V#se%dX0%-N2JiO;Rk6vptBgIc**@+Ry_`xF|$?ziw z*zVd4XV%7Hq-7aQQ*Q>NI6as$Ns~%$&qc7D$4=$Y#(Q5Hu%v1?Qja}YHV!i zMhdLBwutyFCi~j2Q~l>FaeaaW2I^H{r_%y7G+KwJYG=VTg$88P?vj9TA2__#4(@Cy zg@;Y0<=+DULK*8_ceTHx2irLWe^CN%zaa;2I?Hg6c_m${l8q4&-}z>05x8(KpE}>ZL+<`p50_B^ zf7K_Ujhi)^7L?Pi{{`Xt_l~&2O&QhC8qFShxCK3%|D**UA?BALjYrRQUJK;Uc+ za}O-Q8IHl=l{p1%RId`sMG{QURG|Gb1uzIMhPyXzka`+}ny+H;Sl$e%*dh*3jx|Ds z!dkLys~L1_D`Inn6+T%yiIMctCnpo;<3WKYAjgbRZtHq>S!^w{qBaXx{yE2>og_9k zZ^6y3EwILICP^Ie!rdyX*yC&-;MEIMVa`h2+*S>*Dtf6rO~awn;zXsRi?}>4r#sYF z;1)HmWGhIbMUN29v8=?jFZ+q!F*8sy>?PSIg>>}BZoGSPl$W>$@V{j%V20iRQ_J|{ ze5+(Mv0Y5`#uaeW6C+p^V}em~qIBp+1-M4EK-lHm#QCf>{4QIE-0hsu<1hodI1AsP z-IUC1iKFRK5^&*r6CBT62IpD>VfGbOxRT_8I>%3wKcVWdRBQtD-YkR;8*@kd)X5*PnRNEkmuKl7-odgmQOyb~n2$o@T(mwy z2;59Blfb2NoCH{d|FQ+)bip=scq&M0Y|V-2jWTe4HWj}ZhLYSvf9Q?C7M%3^9&xy| zhrD<`3DX`QCsSY5LH!~TxUXJ}_FvvGFgiecGj+)+(XVt*)E-##K^&ErpW~V8r@~E< z+w`aUJTUmMkvMbTxowai|TscJM%xu^(g9#v$&emn}5>p%DB`jQOoXD*6Eya0vvPgaPA=>}C9HxcNA@;60T;Gs_+P6v> ziH>nLtuhZ6pR~pn|15sqvfE1_TpygKsKY%Dy$BSmhf|?ekl{5EoO)BpqI;|GYhpba z-x-RQF^R~>S ztD~$h^}qvDH^FKtVJuVS(ESEwq(X5JIO8i-T6CSvNSlJ~s*_;LqdY8a9;JdFJ0L1n z9*@l|L-p)i#3)=E=Nd1BHS@IbcAz~Dep7)r{v$+uWfs0VAB2_{m*A>>$H;=$s?a?) zndZBECPwR`q2kLF(r6KiLf3VHIVOfiWj=7Rw-V=+d&8YTWmsNzkc{2DLnTA|=)6EX zGNyT$9lNz2+xG21rSTW^L!2e)E)%61tK`TL56;?EGzGECX|%gD6H-FO$ttIfV6op9 zua|#i?kv@SUTzJ?11|1wcIF8)^Jg;JL-w7Jyqwg9J!tMbgx{%iAR)9lG9$5MMa%>Gi_&-8wY#tPw{lq+*+bDrnzLhrDWSY-Ach@m(rZN!P>u+mz<+?xsh^P2icZ zJ*ZXB0A5rtTODwQKDIwV<1;Lwxabm{u5pD%i8a9Iy>86U9A9`es~K}wOeD1II!XJm z0W1pjV1-RRd`=IBpkhy)*!-7W`!fxm{2V9V0-5w}uMJ3#JCmWkI@sKr1ao+zXzHAX zK|-w{lC=_h2C6V#YM6gfr2@YP^|4|Czp3bm7zVA?!2TC4^fnfQ&sz!1lHLl3Go36!~j313{8r>NvL}a46aDRd$OO&J0)Fc zZRCE>_E~7Yw*}^!7U8a(#bB7d1h)rm#MN9ZQ7kPLLX&dnh*=|1&iu%(zLo+P&0FX# z4o`VPm}SciIMYT{a6OGWXz*CABEX zSu0=7i&6Mr3K+B`K<@#2$T^xtUqzoGmUnl+!_^1Lqt(8UtXzR|!xwqc%bm%=wgh_W z{x%dIs)wFyjo53s2!yp8Fd<}s%uiZJ?}<%A2bWaL`xZ;jtmEFvDaCZ?{${doO99*s z8D}&b@6(-w3vu@Re2BW>1Xq7;rt^npQ}LKUo!JC31wkky6r^fv;Xpt* z{F_Dji(Yub-)tVr622X&K@Z-8H%@L=|<)SiJm=*+s4M9-%c`7ti z@aWsMdvHz7a@gXV%Mi_cILzTauU9+6@rYR3mod(01o&dbA`_?_i^BqM1KK^1f)de% zc-+YWFPa^pnFsDsqgNH!`}H4dlC&J12X=z0MQ<-JlUlsX&F zOY+Hw%scdmfh8RLTnQs8`rziC3m*jkl8g66ae`_h^g6W?OFebawik!{fq87(qv`Bk z{r8NG^Ac9rb2-@b=b?DPFXB*M40@a2l8^%xP%0Tica?c`28P47tED!(km2h3!7e=$G z2-t`kY|ARe>3JNMF)oG^4&=hW=f$Rn7VyaFRfed!KZc(Bm(0ZFj}w(|a~aJk>*3Fd zR50p&Pj&Po(50o5gj}+MBc*BRf5Q;kN8i!wkH(nf@p3w4eLIoRT1ul{+fhaD7WNI# zlS3I&p)1!P)^}>)iX&UNl`Zx}^0gKkE|euv1`AP5K%ANXxd15M50s~_L!2Td z!DD?pJyV$l&6-z8M^7ARi_9VZX-?Roql}a0Er6Tn<3LZbn%`8a0vY?3)5UjA(Dwrc zxSxoVhQUAlkGuj{%*|shSD!P3i6N-{J{Z1*ErJbZiy&{{5&gFKBTaJBgTnkw^f5_> z2_`|f@qk}bnXmzQ4KL^A<&sRKpz~8!a<8PJRmSe^158m|L7G;3~Sib!Xd&teUaRhJHt1QW}tYo z1T1>o(XRypP#*!~zUHEyjZ!$~$exdEz&x z6s1RNVPInmKFu3pJ=7ZUxYRb}v1RBo?#V_RFdx>+iOS&|*heIRM@;<^$96f=+`JMcSAC-Kdpf9O zWHFtxcPZZ9tP1txZeV*m5l%b2Bn_`Nz*t*2T4W{jPadqJ$J;pkGrF6eJ0wcOGNmzl zfcyTf%P}U@i3<5H1<%)dD7tkTisXDI1IM+=kypoA;nJntg4Z|v=>^GD>x(?O9o2;8 zx1;fWlqH6a`x7aXCoHLOfyMwKdazy*A4~pV_!c?H@9$@pMd#t+cblk_qZ3KcwM9}m z&UTyl!sb5$Xz@J>U7Wqp>7P5~@~rVz>}lE?QVj<(m7&%y6?O%tl0S{>V7}gO!dKmn z`%?0uFFyx*ey)UotW9`rXg%XgHWCY0SJZvYS+Abfn6K@P`!+5@(?1SGdviQh6Q09A z6f&1w$(Y5Rz1OJiArmwSav)FpSHXiyF)+S89j6o~lkx}q$YW(aR4qD8eIA`8+7YrG z$~P0-sxr~fI2cMp@6n6XOW9F*E-rK_6vOXHKwnoHs7lns!+quSM};CDcsW2jZfj%s z{5&`)?G2Jvm7r+f1iez5;K$@rxU2Y#34J$6twfWt$X$mXdmn=%+VnbGnx>ddz&|Cv<>A`PSPVL z7FeG5ic#wsq1yt_k`L?8)4?_7*f%GaO!My{AG!#9yL_G~J4<6;k1&dMspA=w2J(^a z!WTIqFv(#GdLN2l@=OoY@YoY%eEUTT!YlC0>>@TNy`Rk0jKkrRC7{cj1!7vQw3Dl8 zg%USO{bDz0eQb@V#J(_e%`7UMRgGiOE6FsQ`S|gmEX^yZBE2gduzqeN{JE3@HC!(f zDNE>-9bo_ppVZpG3e#4#Q5*Sd^xBoxSZtF6PR}kf@$)BQ zVs04eN?L;=evJ_JoLjGIIiF2QTZo#A&Z38xB|$=y3=Y39gT8VF7=D|L3f&wu|CdAPR_=ku$|*3o zd>1bHnhBSmlz`jhLJl#EfF}!{($SaG;f`fF#MPBS;LSV?+3+8Ew$%lUc4lJ0eRcHw zX-y{TET_M##393W5zf^uVhit>Uv>DxJdj*X`$=1tN1{Z>FqQn11cFT)ai07?vgo`J4RaL4!40*zvF8-Itxyj$ zMc3eD|Ap|}mf#nzp7qkzusZ4sUF#|U{P`crg!2O=!Jg~U(p0g&o73F~YvIgnd!msN zjvd;2P@uUGJ3_Kxwr2~SmFGf+FHS-eT>&UaTZY9RNPo_-hMX`0sl`L|Xr&*HE7qco zlpnP%$OJmqAEw>p^rh`<7z2S6l-ll&hg_mi=0zUqe_RIdRf6%(1!?&F%ZDu7G)%Xz z31oslHq&vda+GkOv|&LJyy^Q(qZF)Ib=7yYi(ALCwo?@zbE^+_M=yh6fz>d2tpz(p z3*gr$Pkzj;0wS7Hgs(mvV88FKLEI-#yq08vx{C@76%?c5&vNp6rwXL|vt(j@J^5!F z3uar6(C70H(0LhoIBY!?j;^Z4|J)j3_p=5ValA>Y%bH+9?*_hSd^WsTl?Zpoeo>zz zdx>j}1Qg^IQ`wU~H1f|B2*z)+&J3j{shFhpwZyqS6>%%AG+2n{_20RHr%f4+$#SEE5a6Y)7@8z$`>{1

PH^<_whb0g;$r)B3O@xT2?`dS;KAP}+3EYp`L3TNB#PpLg zRB81q;``DQEIOXI@& zWNyV8H|sZe;AQD(xTv`ZC-rlPU1Am*P!k%rT^mL-5^0;iIM%*VfSVyhq_;ViwOz9m z9q&woIS$ik-;C9)v{Dwmw7C)cE=qypo%4)H%@myJev=j1WeSa5BDjUEASVmrAoA%S zdU&`Fj@;IO(RC8|=O3SrD%e1CLk_h%oQ#Dha?qh$khHyOWEaVrQU{%*o!4TQ~IfyZ{8qwl?buyX&V(oH$%=#Km6seG_471)gAe{7xi zKbPPC$7PfVA!$jZLLpi4y3UixOv#L7maLRAlCt;Sd(T2qG{|+H?Y;Nj^WD%=+I`OV z_wS$Zdfl$;I?wZXJ|6dn*vs4GO1l|+ynK#csOlzV48>A;ia?vD3aGYyqos9K@Mf16 z*jjw!1NVkPTuBeTI?;#Pht#v(!~iWi&;<4$*3s!Jve4gE8jRL7fk^Q^x-+lu8{avRl?{YO6mp{VDVLR7@p^faziJnzS<|c8=sIw z=dtA3pDED$@-dyVzjRPny%Zrd`;22f6sUt=i)gbYV?JJ8;Qk%?=#A*F%C`x%n z#~u>J)b|d6QT6yWLQIgHHAH5-%p~~^DORT{QiI?uytSlR-V&MBF5ZLB|Zcse;2|8^<{86upB*?zMuuC>hS&Be`G`Q zDJrqFf}KAjbj^Mv2=r@(m+6JL_R)H>qv<%8_v;Tir(l9U{r?SWjyp-^ZO53{Zz+Vw zk%lnE+?Emr4ODGwf!{u=82WARV586?{3y&(Es2frEWHMPZDO&c&68jpjmJxZR!kOs zLv%YB;%u27Xe$zq@e$TAQ27nHy`J5AgfvIXH#8ZD@(fT>R`pzc_l$=rRTK=q#| zItp@e`hu@iO~VTUZPlpEge5p#*^KLoa^f!q_tEyni{Ok$Cb}6&qTen#2n<+`$uDXl z^;R-Obc;bo_hDkwrpTfRCD7d+hiXS^(c#-P41bye6LTuiPOK5%7p=hL31)aXuL!QL ztRfm4Vqn$8RVd|O4Rzm)L8*TXKiFG`J5%J*ZSe+%!cT`=UoBAUX+6C$sgHbiu4TxY z2)ej?J(%sdO)seoks*t1u=`sWwoPLg-tn&RPeF&gSW*V2%+5Zbl>tM$+3y^mjvika z-gK!9PFvSTgVp}<=j@x{@3;mksZoO?mOHqR_bsICWf5>n%duKL5xXqS$@7R_Dm1o) zUbj@jbuQ*G*gS(Y>W_kbH`{RORXA5{dpNdNpc>4T=Jlx)UmI%u=;JsG`(Cp#>cZ^QZKT6km zxtDz;)!{u|*tHOY|7*li4)Y)@U>^y$$bs8C1$0}iKVKR5l zq%FxSQCW1o5Dvm4P8jv2m$NSH=5GxoLX7!0;@9erF_Y@>kzE_yI_^Q@oi@Y%vmHeF z#|3`phIAbMC<6SCBy^2bg3WamRQM$GO?=n_KdvR9sG1@^$YkH=--V$1Xael~aF`@S z9}!qJZor*$jKN;-IUiW$&gQlzh~Cx7+y2>xG3F`s3fn0tUx`Mw$R>8CCbLN8BeK>f zm7cw=P3qSV(OXT?c;efATEi@!0j@_l>#3pq`eVsZt}TL9Pg=nLxe<=|$l$dJD%d6S zgg$5U>2Q`Xt}_?G!=ptpK&B3@_fEr({tWyZb&;Ml8X(DgTc`^8L(iWJAQmTQ5dBGM zpgFD{zB`1%7n4ddDc=YcMVHba1p(A#?_xZcZup;_(Ky*DV@0@oxU^^#`k7p@zs1gSj#*Smz8JZ)&?C=-`EDhCK7nl z!w*x>6wnN3c_MY$kG$Tr92aYJ4nEjfh6VNEpl5S!uzy?!AK&GGlV-YN+K(#mWOJKT znL4;wi4(b{OE9R&3NLo;CqL9$FxBiA?M*Jjj;(84;#OVp8yhSdvfZYy2sZq_fjw^(fwxRg18!5JycvGK;?tE#AT%nPfs%*nNY&tzuyO6Y58gEtRru-&_#jyWt( zcKw!vajh9dLXz!0_2%PeGyDM%cTcf;$l)f-y|17C%@*?f2x;h&&O< zI3$4&n+b--Y4O(W6`;LOk?d=|L^}&ZN#FMz8anKa0U2lM0!JTosN9IIWrUAUAgF$0s4D3k=C;Q@(u~U5) ze|D}qM-AG+d9f>kKETmg(YRQ)0=6$|MO($kZhx!2;$w)I3k*qv*`jU1Kw>wi=#Q7gN^^bjHCST{I4|?GlYJ^W>&hx1S8Mt_V z3$C;YpkfQ*c*daC64qJu(3QVV)2D0?Dejs}lIAh2^u08wyD|}nI(~AY zSA{_?&-tPpM|hVq z5!H?>BQJ5C6ze!(<*bSDbo)H8tZIaYuv#=wc)^=$>td|59$x#?0zaRXg5mUGqINzL zH|&T(udU9w+vPm}yLu^%f8I)ZVvp0XZIMVHN>IUU4g9-uA&yy`Oy19)1KELou%c@M z_yttb=k^8Io?p!S`+lIa7nqZi>N)sS(h;?M+;LqZJKxXrlgFDw(OtIyB)`uk+eOvs zw;vW*8yz=&$g#D zE*&GK+o+VG8D{vu;1%B|g13$badb*S=`8{nt?2<~qVi&*5o0EZqbz}>?Egj+oo=U?5xE1ipi^@hgy`DYM%gk0p)y#J6&LlrDOG#@(0 z%tu|XEPUg;jxJpf@X^r|6`!ktS+OXWmnq;@s14JgIn4XPAf3$2IDa~^t2K; z^e$$Y{{|fPHbL#DzFdsKe?&j*9pPf;5cjbRpBuQHPG)=2WS3%;Y^;M{d;DQgY!sZo z?2Hq}ALFFrJ80%pPdxdCS;$#kQ85hj8{h09XP9kvl)EpP@0v_)uQ-sCd+pJ?%!jU< zpN`f38DJ~@h|_OqpiQR+s77Q7S@)_4t+O`3{+G?<7Z_r*=6u+*BnVGgm_wwtH9oGb z1|9KRWX+pOxaP5#%vd+TS#D?A_|717+BX-kJoLj;RV{e>>^NxKp-QZKbBM|DB=nQ# za7)-b{Nc${os5rL?s1KCGU0%T-GKR&O|+e8!E?n1 zT(NZ@oq0zV-GU`a{jF>~KNLi-u0Br-?8C|K&07akR*t22-<9w~>&wBty@RexnGV@= zqw%{=6~sPq$FDczVVkoA)NIeC-~I2>_adIyf4u@MyGJ;a$LdfZDT61^_j1Zx!=SGy z2Zd)RLAsC;ow~6EroH7LexVmj)#~Xq<5-?WX40S3#3YLnG0ly?&raL-9 z-*{FRbYUEPZ((R;wP@1#Y8}Q4T;M@Y27+M}YUqcOfhJ*Cu*erKHs?WPGH z_mHVf!#H11j-t0xXuj8KRQSCLRUK?$%I6x~mTN#h=Ix|XH?!eNdOd2Lzs%deuEz{> zI})Ka2B$GRo#XZZT4gp7gl;VZ;b)ui6u%i>y8I>5Valk#j@5(|PJ;0xdhlvT1$Vn~ zHFSARh7*tZF#6|@ zepM@>@bO%XRSG6`#UIF{-K_%4h&5!l)g5~7CBr^5U0UkYHTp9?32iPl!=qINY_Ft+ znX|XRicc<3`f(B`dD|Q9e}prPO%M#Pb;O45eEg){jEiqA#%kkWIPEV%?~h49<7p51 z=L1>LKQ0p=ZOi0r-k8B5{RWaWp#X2_?xW4;Q}9C%Ppd~|f2*6g&&E0gee+?m zhY-Bf8q420*hX#crr^$&Uh=aQAxDKr>Mpr(I;onp_+D z`@vN@SBY8Y55!=3mkn+UI8Oe#S)tF4g%C2-NN2grV6XUktj<{qNjn-LNvHuMWSyZS zRR&j;f2G2i^%y02RWR;;BRD(C60z3U!#;B%Bwey6VJxchtydF zkbu_5O}Malm>#)b&)*yMj@VuNO>edr;%s>VSUN9(zxz#4ho1@Uk7OWx@}EHz`j5nE zeIhpuQqbnrB=EUcNqQ1<;EcBn*z+NndX?$lR^u`EjV!u6>>wA!TWLeC4n(VELS$SE z)T?r&q~!!TKH|$?ieY}EE*nTIT?N5AD==XB z|93RRQlD0bE0gqTqw$jeU0$w31UuInGVi7y+KDfLU42=QaZiL?Qi_6}&1cBJqfC>R zzt7K!^am$y6$;$aQFvSw7I{`;ZpUkR>fqCSK+|l^)Cf|mz!{m&I#^LqY-kw@^Ek@ z989S-8uflZIQrmdJbSv9BcVPt?eQR;RdAh7J{$}Rqx7)p>czoxb(Z*Dwh&Duqv4Pf z^RrB5=gYnCWYtb-EFRrNmO15M+_^07TSYI~FxPx=^Ntoi?4Bq3&uzwQQ(Yn7D-F|6 z50LX^l(cVWJ7!n5<4@QKsZI&>!Ou*xyJ0MN{n|hcu1&#}l6>y&Nl^Ac&hS|49$gl$2*T}Zg80K@jPb$rr)0Z>_j*swVGY!;yHME{#ytMKcCXgLd)R~Ilxyhv4mOi*XXgTb$H;bJ$xT6g!WOV$nw())MVl& zhHOs9u2I`CRj3VJ+A^`RHX8*NwHSI0$gW+!U^PD(h;|xCW~zYI<;9r0+bG{e}P z-uc((!NuLj}2#X>am;anV;sfe?!TR3CuFnTFrJ}9<$(%cI%mXn8uFT zxOv}m`e4}tbldZRIz;aH6Vjk6Iw+ICX4|7F$0c(6%2&jp5w&HdKs$!=L=7!&Vt*C%gNBwXfV%QNS86q z(feHlnwuoy^VI=pGJYefjxNO48y4YFQUuijzN}Is5yf6;!5E|Eq;G8|F1x*h49Kr1 zU$|D>y|*3|r#0aEBq^9?-v%!iHsc&?Yxrta58rkyfn$xq&?RgQ;!YvZ8ugJ1Iq8%5 z&ZE>T`7%`vpGHLGF3`PWHsIwDN6z3{EwnER!XrjOz)LRYMJw%LM5s_u;+Rh&WeH>- zTMeees^Gr38Dbb}pxIu@F+(TjEqNhk{H`I5vAMd529`e(c+M`FmUlKnLMNqnsX%~YT{*57p(`6y>-CM&<9*ISEAmnU(`fyHl1-h ziL4m7NiQ8Jgo#IM;nnD35dCQZr%4WZwzUqouT}@{_AdV8=pe+UGlr0zWlkc=%jY@m9l?TiQv0`f`Y$upXmNwvoV`>alJNL$US+lEYbNNXjb<`YGoHoj+WPoUtGL-g1*{?%z%R zS~bB@hNhPe&*2kAl0mEZD3LNQ$E?s`dUg5|ARjBpkpTgQit19Qw5wEFS%u}6=EK{+ zCRn;T2XWUuTK``<=%4eUwXb$?J3iIGF{wb@5-|rX>)QBF`m6A!)NH7l(u`q^#;kjh z;n62&qyIuZTz1Zg9?p7Brm{10+pMdCvnw{@yH%=mrGX+2j7mp^{mERDKf~B>XSt-L z8Yo|70xzs{adwy?)+dJHZbJ>!?w5nXtwtzlo{!R{($G*O3*(YmRe_`~`TUN>bmzV1 z?njnE%-GqutNtIYh$_Kznc*j}sO z2l!I!XC&(1Kl=HM4beNlk`&$uz=7&8$nNVrc!&`rZr|%SikUV6uPe4g^`>g{6IfvB z%Oo=X)OFe@JHjcQXVq)|&A8_LQ@Zj*Beaohyri3o6F=Rg4#LIMXNf)BRndhDoqKtU zL<5}IW6bTm&uT+MIQr#ADG89*fT7{jw8=OE>lWX`e_4ve|nOJ-it+#6BAjcE(%)XKhfY( zlTfMAknD}fgTa_0w7Dxn1|H(#;m5{W=9Q0Tvu+xE zD>Q|?=>3B;#d)%<{2{g7T?Wm`K2VW)hU_YPOm1m60N0p{O9v8ACuuyM3ylNixclT$ z*gYyVoDcaO6>$1N9g%7?1pieHf}-2YsAy3o%=1`48{T{)*8Pd7e=`?tUv!Y|`c~Ma z%I>UL1-Pm{i3t0-g2%c9+<9sf@IfUQF*TF?x>FAiDimnuLbfB>Wq_Mq$7AK*QhZZa z3p;eRvFF4Hr?BKN3qr zSh>Vwi42g zRk4{qgk%|Xaua0ZL20NBUfgtp;q}?XO~MXto{YskX9Z+UOez`e*9bNzCgZ63lf-?m zKa~A?NO}vJ@jr_O&^#$lj!YO&%KZtQut11fI7rgWGwZ=*ave7}FoR_v$AZL+3FKRu zF@{@baye-tuiZW#6yFTeHH5CZeuix9FCoiiCxP;(-PA}}MsV)65C3tv0gjtCuo}x`kZ|2X zt@Ly8AeDzz(xNbWeKRiWTLrUaXTjY8C#YD^2wDTh@W|f{a!r{3EFl#4ZYhJvi)ndwIxTVSq5blfut~Lux(sDNcxg7Z zIU9^Syu@JtEOJMl_2(8nS`_N$;qw(682y_)mdFfHUk3TNy=9QUJsx`p3bCubkNUV}QavASG@eMw$V@$0)Y=BCBC1jGrVMoV zoaPsW&xL;5H3^ z-HZV#j-+PWN^bQUfnj3KUc-^cSHi$IHv$d~>4NVI88~&)7dW+jwD9kFu6w;Emb7bQ&ePE-#Vnesb_-F~ zfWY(P4)puJiS%ySd$QPc5k2kMVG?r73tV3bU>H}RNVWssaac~PjB@bJfF=%nD8l5E z27==uC7}A=3ZC6#b_dJxXk)=-S+-_-YC8`Sw1>#J7oUlNwm3aEGXd?X5=FZTkdWHT2b#6ONOmnfyk;-makB!3_H}V%)Z2*l zxJ~d%r5^UrlL6C+X#@H5n6!AZ5`r%?`snEvlK-onT1Wq;r;jbe=f$ZQ5nl`nYd%r? z&Ok8xGZhs7)Zr|@XskcOVoz4782+#lYs7VM{qD7(XSEo&J2A`1^{;CquDhCOJM7$*5|~V(#Dr{*ANX>djT;w_GEQY)Xom(vOVcD6xv&OTrq_}5F9|Rj85PQEEi|_710duBVY7O|P{lbQru9+u$c7n|tW>{Udwy9m=% zfcSH7$nMOUEFPnYJR{dTdZj^3d={ON+C~4&s=(naZO|$Y$35LLKsJu&WNWNpH3zk zT8iMt8Y$y;UgnntZKNqf4MfLB61%-pP_3o~Lc+ds;WH1CZ*4^wX=#9O9tDuAf5y`L zdA|5t;02Ez0`T3KWu$HIYub~_tW1;VqVlc+dOOIJ8Y|bZvF$r;WNRqNT5Ax5SD;^? z2DP$ZLCmG@(`S~kM5{IhMWgFLCp-_1&rgTufur>AId{}3{WLh^d^5^_SqQ`bZA8h1 z0T7v!40{%33xq_M;LInjFmwGRw5{)^M$Xav!hgu zsf^!9PmdSC)1or|1{m81_Zsbb2n2D~h9Op{tA(EUOgD9lVJ z=eE_Lh_4m=&QySpbM{7EGD|2V))XF z<;Fpsiu+>it978D?#0=b9i_N)B4Wl{i`Q(fR4-0=C zWzH6DyvQj3LH}*TqV#(3+qVhj*viWIp#fxT7UG>VSrC$LLq1##p@I9X7|x=ah8|9$ z8ehMY&uhY9%IRWw`=b#Xx2M8C4HgHkoIMzpng-u}w!m~n4M@mpgXe2=nN1$xBEfrIm9nqB#fcK{FMv5#C< z)2H=&*I~pc*6cY;9IkISpk5uU{fb#B{<$qC7Y}C9al&EX|7QmuQ*8|kjCK$qb{&tS zp15If9)|q6M!tJGLBZUItYtw4l|vIDLnxiur>yYW@hjZBC$m9)pDs}jO2;1;DzWT~ z0Or0GCF#wV=-t5u&=Nb2z6w~2&egFvYvEjwHjaQsX6skmTuvLM?O@jneJGY`AYJZn z=+D3uu$jA^Xjx`~+~@|7ei(;`m_=f1PY~$+I70X4=)s>{cNjOI$mn>EFozNE&%d}y z`oFWtnitYjR0MqFj}wQU5PV&j2He4FMg?+(jAlJt=hgyiOy}Yxt1~2WTQZy#CHTg6 z6g_sQfh$>1gwtlma;q)NSYt~ky?NRS?Bit6a7PC<*gOS~7;C}2NfCHi(Ug%Fo5{44 zeROoyk3q9zDKLL}Jk-8+=6{_nq7EviERvjp<2BOgk&`FMh`HUGxZaGIvRXkzTXGy#(ltBc2?x>S8l@>0K!@Td_Xmt4; zsg7%ap%a_%$A1l!ResRN2^KKHJq0#ieM`>0)8yt%&4XcY5j6U5F&=qT0XxPsN#<5A zQEo~Hi|ly8ua_4)0@|3aS}B%xZ8puGE$xn zhTG&w;i4A2+3NtNlikSgib=4GOM%;UZDixuAP5^%fFA5WXst}6_8zM->zEi8Cpm(X zZz6D(eyAOvOSiB{<>6^!AU$}O?%g*)Qzn!%!fgorT6L8q+T~$c;1m8wsv3T^@PmIV zn~giC`@(G_VGI_r#n&5=MewVxhuH9KgY)Gh ziSLy`aur3Hgqegt?sb8opajiBYS5sQ*-wX;^JAZG#kdj{ zXYM{u{z$&2B-94;@?P;Rn<61urU@s=wd38fe@VldUu5sJbnJUF3q(i8knL}~$lev1 z@StoRSjP3!o3Y(Q*O|4QWCvn*>q~-q`dq+BC3ekdf!6Qt=pyJP5A05pGSBhwO7R@2 z`<{jQ{*`#OQJF-Y-bE{{e{xEbX)Pqy`J}Um#1NxKa5gX4!{^!<>44Ox`0?jIe_{pMk;0YNY%Y9Fi$BRiBc0B z)P6eX0P)QP=%b1L#tEKT?QYRg3 zEF=1Zo-_meQ6{B$&_~=IgO&yGf@jSBuuK}?D(TUJwm^8()r?%rKQg{G4mKXBr^?S0 zL3QkBvMK_pmcKOmo86-Sj_bg#Yd87yBV#!Wb3>Zz=?NBxH=@Ir3h15ii7aUDAJpDj zO18P)rPGqr;6QyVo*;__8k293>HUdR;FSP*=X0p}oJf8~kQPb@y1>QZ3KaXb1`Cc9 zVw|oxw>Z2Rzl*ov!K~$==AaL6el~-jDU0V!mjjWe6*xFg1&++Jg5~+6sn2s)y6lE1 z+ExkZgu54coBPISy{ehkX)nZqJN;zmPuB1`>n<%Eu42u+F8I2n5hG>~@x58>oD-dj zWu;d+o%==*+*6NBEK6~9-DnUr_R|=>3|O>z4KH;^3$7KPpec_tX|T8tWEfwHjw`TBl|40=r+HmE?&Ct(;yG`Okup)?EUFGDUQ?-$nIR7R; zW0C%Q{frxbUl_KsRZ_w23NoihA0sZGr7pff)aOYOc-sPKSRIt>mS$H8wRQ@-2GlI8mq^>c1v)_I2&_XlfG33@iZqk72kdCxTl&+Zoba zTu_To!bH7oDAxa;&Y0PR7ggkOmQW$st<{F$jV-i{tz5PS)}wlH7H|GC3H5H;L+iaA z49zqL=UAq&rg9$?9?3yv$z^z=WFsy9vmW+uD#e?M=`cP{4!g`MY2m3(&c&yW*krL4 z0IkILieflB_6=EUodI$6kE!j6JS1xM)OL0pESL!*#kqqb>&4&Hs)5zhte5~E50^GLm-1Y-w zLFV}fKCm^5D#z%9o^uU!2WX*%LJoYdS%SH_`)Kg(Sntl45uvKFsZ7l9aouFfP7a zL9AsV1t*3i@q+pYT0_0d(W3AN;JahRyKl*(o z=%&@c^fgK->#&xnWivZvz9?38`@)}sE_!gXGUhL7fNE<`6Nw|gseFkH=F`1{$&yxl zpNBgNuKVJ^!8ZP!S~b`N$r2@(WbmFjoi)=(!L-{vM+Nt2vJz{r9&#t=>a)@Ln-r2^ z4$O*l;qOB;5PDgK+n3*+%}xcs&&+H2omn(nk2@<|?Q+i$sOwDopk*rpKre zY#FY>?X!A_*u6JYc7^}~?6SBOa|*d>t4u*KW-E+w)Z?qVe-PVgi_v^tI>P2=oVP5B zQCv6R&je#UySJEbxts%6=Bnbrl7+C1e@XA(m_oJ3ZGnL6tTp&1LN#pQ^D~OdBQrQ{b3i3BCAzFNtSz@9#~%P`#IZ>+EyMkHbk& z$Ee;LyQX33+7i5xy$PQ=Ek%Ee<>-0$DL+He55~9KLGzYS%>1SdtADs)ch4BS>cj}C ztAxP3%mT7?5@FNP05E2<*Wc5M*v%-tw*DC?v{(s>)i*~D!A}SUKW-^HPD(@dn=vrth47A9_$H5L(K*HawDhzFLtQ>5enYwl zDVxc{^dx8+yi3-E7J=OGcY0;FBw3J@gON@8B;$1w74*)<#kvI;_D%%c4{d@z(P*gI zkPFXb!=O7>8&=)7;q|VBgGT)qlCkO$KYC3VIpnn(zBg~iQkM==*mZhv`K|pVq^lAe zM}Cuyv2pleodBhzT4CP@dC*zD9={ze5 zW{D8I(iM~zGVA*eJvhwpA@B08b05w8`6TCez*hwDjrg%7SQABUaS z_VU%gMsvgOYC$Zj1a7GEG+<5vo{F7}C%%Yr@obh~Bmb5JDki{%C(Y#F=hfs;m>j52 z9fLaai}3ApRodsX684|0Lla&JaxQ--lH1SHzlGwcrL9PZ3exdTL>z5D(FCI^8V?@+ z8v$RFZBV(#k|74!v#37}p7h4Sn#>s>Teb#wKhLD`F6$UFE)3dLW8h9@BbLrxgyo?G zopKGBPUi&I*X$s*zs%thlR>*CtVU<;8K`{G2kcgg!S-=>*ttpxH@>rj({hGrar+|O zZC69Z#Ye-EUAbgmp+3&|G>O(Z7SfILrAR%9QqlVNG-&Tq#CdUWLc#(H#gg&3OFHiB zEQTjHd~gMe@W1fZ#Lx$m;at8ezR`=rPcCjmwMhpu%NLQcN89jlP7TN$oeTS8*cq_8 zk*IfEAP*9%P;cUD5U>2rT`)&tn`95cY;`?jxDKv8uffMpbKvyALN0ubD7^d_11DSM zaA{Q`%}lvM97lQv)dXPC_ZO2)NObj{=6|=y)k6$k%$!y|S~!)`CVRIeQ$i zkYVpm@eO8|SH$t*hWO!jBQA8!X6U;E&KY33gjOM0tjR%7O(pRYodKk(oh$j+ zL$MPZujJ31;U2oFhE!NIUbkPml)qzCgck2Thd#tYMgDf8e%N(Fp8l@DHm5Bw|d zn=I~0$eGk!{P1)&ijQ)`DUGS*X53oTO|PcvIZde4y#ma}g@W>-C|vof62^R(3Yi-= zz&X(xKo&7taKI0GUKNq2@$=#1zIhZMJK@Q&$#n72b2RI9Ji7Mxk?`BBQE}%5I+{f- ztT$<*P){O!TyBQOYt$f6HyP&{Rr4=4tfg|XVqjjLM;tea;^TrY@;JBzHsAAL@v0E~ zw|yzm@{5BBdu*xoeql^f`$qGkn$db{63%Y+fW*E;V!`5%}dneEeIT0tIwIa z^GSBh7~Hn7mEN4R2_pOnWiTWr{eR&UgT58brPDXIXHgF zHWJL@5cnbycB_~wD{^Cjy$?_sKJvLas zQU;e=uY^;>Tk-p2MYyw}0lTUvz=x4K3~piH`cp}8_lqWe&J=-qHFuc8n%JkAsS?yx zWA*}3{JzhQcViK!`Ti~-bKRWX>C^_@!gWF8yCP-;jKOp{4|*PpV1cACbaE9${=`3; z(E5h^)_0Xuv$@oFlp%ffYZBcbmJCB-67(4Sq_4b6$?IP}uuEqao$KI(qgt$~(AGw3 zFeJx4d#fVwIAKNym97(06%8u%%m!Y)jUwU9x>xk@H~D9KjZ9@2qZ@ovqc{h@ z^>e6=c^SC1D}aZuFJ9fg98Yc7j8bLG*%~+$lV|LtKirtTy2l;ylG{Id(S@t+2p=f6lm2rV^t^Wz6Rn6o~C3m9PEHHlKVW?Bkg=ieeadyUXLi)k<8r_ec`$>iDIaJ;Or z44o~~V0Ob0JvJqqsBMnLrrX6BwL*(d-13PW?c7NE)Y}JV>StixB0n_z!t70VML^@D zLcdDbBcd~E0rq(HaTDFEN#^r;cq0BZaog>UFU=!CBY~krTpQ4?(ucJPkHQO*8F)iV z0S1^o_qWV3(vu(!nU{oU`qL2Nv1195HMfS0l5UzNS&X|vw&Cql3-C;?02FrYBy*Ui z5#F^8)B8Av*2u%t#Xq^ro@|D4t0d0~rLmqhy}etq1^!%ZVDpkX|9pEsipR>5Lr-!b zu2dhZKQgrRk}s`6})P_PzTZ7irzaS6@w$RL`VE3nV42`twu(GzodGG@>Q=7_9^xnoxn z-?z0?iA=%M*>;dEtAv|X)v?ilp^V`y3DDJqnSqOmyNU`XnH4kiTLQg*CWHU<=LWei zT8Ja+JLnv*DJYpxf}Rn%kaa;GGuJ1>gvNX_({3te2-@lW6FF2)^fXcM8sHzjoP`r@ zt6=z_AEq7F1NGlBbn8oZSaHV`qcz$6vm5EuzHbK)8>G+~g*UjlY_H>bt)3Lcdg8(5 z=Q!ynX>htD2mi=2%wOR=ytye4oqJ7j=L-*bu51AL@9QbtRmGRb_tX8%S}e$KAS)wM zvH!O%Cv5G3kA4Qi*uIbSao2k4r!yH{FSVflu{z*NQ}K*W7#UF>i!TpW;l!=w&=>6t z+xzsjGAzGWD+|gO$3w*RL9Xd-8JscphYE2=D7-0*GJEoHnsgE_O)iAD z2h!n2WggYNc9p!#-vrVynjB@VHAzX!z}nmik1p^e4XrhJJl~Nd+fAo#hdTr=J$i%L zPaNsu{-<=r&K(vklt4jlGF+Qd(nvgF|RptDiB_)WN{Tw?C`SYc>G+!_HZtg;O8iMWrGDysF8-JUku@w>JYJY z;NU-dWg_xE3{N|0;BC)su>VUke7#(P#=*_tp++F#1#5&fZ=&+uF}P;dLHb*&2}K?j zaa-O75oujJ`1g1XT)g*`^JtR5Lj$+z;k%_^p0@z+T^lCHFWW)U_cGkQQ;2jlR^e?8 zGhncBv|KS0FrUT0H;)W9apojySQiwTUUlY{CAk(k3!mO~LjILC>}kA5npVw*sUcE$ zYtb@99d<4#Q<^T>OcFAL@LJ?*a`T)FH5Kb3^JX0-JKVKlU3D6U8cD-d|8mTz?4<{k z?NH&b3a|2X9xk%WpcmCv!I9vNXvf+G3ya%O(y|H__(Agg{2~nhDlfRC9s#?SSK!;j z0rc47S>!$cjkMSf5ee}@vSDN#4Bz-4Tj%}G<@^3|GZH02l2M@)GDGg`R6=D$R%MT} zRVX2{_ueyGQ`(FBI@3_8l;%6_z4unq_xk+){RbR}*Kxn@*L9ue^Z9rP(@V8S%}0ch zhObUVNvn2ndtX7UJ(iK?9m^U1#T-{A{2*&zPJ^~Rm2fz12CR-*0MP@h@S<-q%J;k^ z>IeFXv|J_`J~)v3f&ibM47%5k6#66j@62A;z5=#eG?E=%Xp=Q85Z_2z!hn9y1bcVcMa ziYB->-xz8~6_~?Kn+-E!^yw3H$B~V#OL3chg=2+LBY~lx(C~zdhi# z${(`e{4)}AIg>v1>%jZ5IpFCs6{zVb_u-Qlu4JaJ;?gF__@xOh(P{j~OdHa2jzxd^ z#Bqex8}d>bagq33_@?g&l7ikKs3dn~w(!gU{Tup6@ zd8gWH@V%A=7Jq9{=lBisJF%Or=pVz&&9Vdo@fz;bI8Rywy%e=x`|Tu?@1e^W>(T6B=KiPeLobsP5H#IJ0^o{CcDWE^F4% zC&#v;;Cfc|?h?Y5ULD%7))gaPUnbAaULg~Ub#TMjQmkRoL(z&=^wylobcK5}|H(BQ z13t9F0l9Q+Ro+QEjxGaU&ICNZ+%Vteaf_D9c5<7gWwCmn5LQKO#+Dc9IKRRW{cFo2 zVFGg@^^^^6J2uR72e$DV*~)NMM+&_YWUw{7g6?Zb2O5_Ok0tjKM}ro~{8~>o`DTFn zL7v#S9--w!sd%VU7e49Nz<^~H)~6MqIvpW8|E`j%)_OQGrj@MwT~8gIrvrAifn!M* zIT*JYHMV>sPg|~1l?rnd@zo_>U6U|M^rCtD_ltaBB#TsvtHZ&7R5U-PMh}EC3~j^i+jm&qSZw7|-1=D-4)^k$bfzdI z|20OLvE|?!&#XH4b;&CA4(vOc13|qj;qmi)>})?ld;&8dPJo$&_D!ZCwQF#7gbhgT z%0XSfYTRTM%6<8oKw4X-u$o*TeyvM`N407A=kzDKtR#k<2-X2PrD_!4*}&%}*`mI_ z3F;cj1OFtRUwKFab8Wv7WN_Ig{sXIWY*#-+yYdRaz$b<_t$arPgqKqnLpx}jAdg8Oe-oucIWXrRGliek zhvhd`l2thk`1LI_&FjdK+_v+y=z9zFa3(8u61H-Q|Q~YYXA^gHL1@n^8M6q=nARG^W6iAtJRq=*a^Y$f%J5 z2425T-mZ|LV@-6agP9e+{TzetGVERF@{V|#P9z83nu1`qDBKY=gU|hv@Md;C^ypYa z@uwmhGog_rn-tSfoJMzMOvAm>HE?3)ZGOcB2~2Gg!dc&&@SnN@JawwXab~UHnI+Wo z`)Crl$dB>~Bk^2BTo_#5n~4GAi*bSP0$B95heo;zV}BmA_+1;MhnA-IOxsq3YWnj@ z>!j`n>(Q_`5YpoJQ&(RF+WtKjHg5Ss9P^vum|r*WU+!0H8aN#RxrW>=#J7?n$$4mU}lSjy!;TG7kdl{X$Y7=x>vE9ev3NT`s zIO7R9D6{4#KV_uDgdF^ahy$EJ9+$~ng6L>gdwYR@yuT>D)js?DVkG-ceYsL8O0nF5o)ICz1zr~ zi7j|H+Lu#(@RlfgWn#O-A1-#NhV)z)!O!KHaLoHKO_>pZ-x!92Ut9%wOHIJ*=5oAi z#1K-F;pAB70pi=qsw1A^@PlYTc2g5%wuqyFq!^XqF7eSxU&)=l&CF6Z8Iok&;ip1Y z&)tA{h}!>-__2KG;Nh9D)+_)gv9qk)1}l1Ycrw@psKzb)tm469j_k1F>n(ZH;L-?6<7Bm@J&EKHRS?nnoRFYTz? z*$x#|;^?cAf}4K$f~N9vX1DhSok4eaULl9CgyUE(dle|v-Y0jj+YoO@H{9_m8Mcdu z(bwLqVV-I&tKSvF-u~(ECN2lgy{>?W@N_sFu?WX8)Wp8(7HoN`iiYznVVRsg_SVT! zwG>l~*j9-Z&Jt+TWQ)_k#DdhV3w(y$clzDpJgfXUqk-XT%Dq~SD~`+3ibE&qbZ?k`-LRdz z{V<5({m)aY5>+a(#)lhHy-4FPyTJTmfRAksFm!?4$pQVDp3JsGpJw1=j;{@$^Etu*e8>q|zYbRt2kQ-lHlteq5>5 z9O#dn2&b3KM*FsCxLaM1Qs>3+5c^G?dc+MRJ-qQSoAF&@SmECXx8kjT3n*@`WX8o( zSe&f~en}>%_1qRWUI;<$P1Eo_GVFX+0hlk*hJ)<8le008ZnRB>GM{EJ|M!DfGn1>D zRW2>mNe0!$Z@YVkjnLYs2IXBG=~3fg-1Xun)j0E%yqjvqkUuu&mSP>;Bg+(eD*h!E zvdh6bOW&TacZ$e|HEG~b5CqAKwvmIm-}sDfAADvNMjxxSlcc}C_-NX6luZ@`(d|WW zJtCBNStilb9l{8Y2g%8A%tpKH99NO83CA~>GXuFi#$2gDnY+@YeX&1iESn2rtBYv+ z_+e6DwFb&YsxdPw0Nd>vdHd?OTwF{uDKe{v+?ETxwP8DUy<3F6>wJ64$}&LwO%sg} zRswEOE*bgn4&8821KmkFDE<0Ld}JoDy2&ZdVOKqUHX=#(ZWDnHGj?uBiNWZ^T=>H7 zNq8gxtB;ApzmJPS>co7!l_N^TShg=`rVd2P6=VDM50uwS<-rtC$iN-niD%Juy>lS+ zv_4keONKL3ZjyiL19alB9B&W63YuMHQh1~lo1NnU=U>$RwIxIqIm z3qiqVE8Xu^MWn{r;gc=Pq5t&)IQ*~Hif{|fqq|<{ zkt6%+sH{dJIUOrWgLjI5vXFrHq65KID9PCT2YS#N9Y9k1efB zA@J~8{PcJk>i$jO&pI_T1&0DZS+og+AEaQP#&@zgL=w*Q-|606nS$Rs*{){ZD$F%p z4^9G^u<-I*BILLh^TdW}=!_ilMPL?5ebR`zL&5MfdLfoQ@?`Jpm~Km!Q~fk|ES$sT z3O}`JL1o$O9U#$A+O| z(lRp@A7tl3{yuLw@bVDV610Z#o{P!jFH$J1G80WrE1<4CmHz%XhZ-B@()kzITyy<( zGNw(2-%=C>ODZeSd2APnoF)!$=F9@w5A#8PI3K@@&O!_0U^r3Kj4S%ANUV-Fru(Ym z(=!aY!k(*BZ#i1{GYY1%eZ-sF8zIES9ZdX|;@8u+j&lEJHydCk3a3|0V^}l2B8a$186W#}zNd z@s4T=Uj8NmdP%PI#)gwb@lQ4{a7&mWUvq$^$*^~OBNU$2W_rtfXx3c>5}ui`ODmIH zn)Z~NGoglLvG1MG9%=acik*=KiooxV8A`iV;TC6KbbHnU&!$yj^9aMly)tC;_*VR? zz8)-3F=Lyh6GZs;(=s(R%-&W&i{@lycln^qZktxLf1>>Xv8D~HZ0GGz4mda6G&kL;W222npR zlgX?%dFh1@+_@fw7q<3MlL!x-Zmk1LZ)Ky- zBtvXWFD8luE74t?8R)frv03E+dHQS<%stc!LQ2N8zl3ECZq(rS>=|f0JBPELww%hy z$Z=1_eL!)kCAP;(!=H*hG;`t--m`ToIVV$y2}d6?lv)aQow5VpkE=P`kydapNQa9G z`cVEW6yNCOg2biGxM*OIobzd-uddC*2Ge%@lN*dLo@T;J0XAD{+Y0=gaM-64LhhJO zLjRkwhfM!p*;y6E~KPY4{q8 zQ-18EzuqG88eIb2f#X5xLK8FWcddQ*pNzmXX1eRSYsK(H- z(~cOUgI^=mUa#u;*vYh-OBTW(v;9=a(!b{qj-$^9m(bebWvG0<1ZD3ZBw;MiH8OoE zADD5RPJ(;XeT)w1{pW>I%9&_W9p9bmw+cTSOTh7u)#S^yPyBLOZ>*}AikmNL)Aa0h z^F2T1g753a$gK{7bN^z<4%d8I*|b1z*C6*SIuT{pck*&?&(rXlJycKNDouLqg6|dM@r&#x zxOq4mwy@9H>QN3<>I;#76&XRybzEx< z>e=9~IbvkV`xcVQrK8*S$rvPDkL@qRp!#PS6}Mjr`89PA*1!~NO8NN8IRVEyxnR=N z20H&9)3nIzfXD(RjK7kHZ>7qJ^LrJd_vSgvJ-g!28$oo*RfX9zE3s)>G-zZ@MT5Hp zW&g3f*@-uF(w|nyJ)1(6XaycSpvc+%4JJ0gkY@#_h$$z>z$dpWJit+e<`8&UWo4fC`Z?mI6CC$Ct5Z|vAv zZjT1+^|r>ssvHD1mnnQ@3BL_vp<411eIu3wb)FsY^KL3CCB;DP(-bJNC<1<<3g)oq z;P8S}xUW`E^G+?q$d$*a-~fkfr>9WMtHZ?mh9ef)jFL^cqSm4DUOMi19I^Z8FV zqwHfJbg|EYZ_XCbbTJp!^_fBP8)Hnfl|;MCMVO~^pX{hz0eREw&`c|uhtz8N`g0ok zDK5giuravQ$s2C;{~)kPhP*EJ#y_(PAToJ?EdCWo{j3V%fmH(t9Iz$bd&0@18_$Ws zGbjB1+X%xBNI}EqG)z?vLYa9+pQDKyh_YEgKGH*#&#S~Ds$tNeTXM?ZQ z2-z*rO!uUQLGdLc@Kg+de`n)*itQHA5D8;=@G1!w5_cN7C=T6s=F(7?N_;4;fF0Qt z(6}^_G^}Yr`I;xhedBRDZfgUMmI0VZH{!&hEDU(+4vjzeb32aJg2>X(Jw3}(Nnyt_ zuuV|qwq6+rX>8(mMy{6>9ydWqyzuk_j)aF#OHxCVEX4w z_CD|9M;}#Vs)G$p(<;Jvm!CA=vVc5UQcO<$oCwc#y`bDG7c*GjY}8j3j!!N}n+wG# z{n`ixYq!9}I4SZ#y#>2gx!~8kKG33di~g~jN{h5tV~DCKF8P-XrdrydHLL{|Ps_pb zi3!mTR)qa?kJAFv0%%sg!Bt$@OKa6~>Cd1o_@X2TJlq;#k^4maaD!RVmj;ufyEjSv zhRIy*qcQOQi#bk>VrZk}WXK;$#o@&X44<}-J~*qxu!q0Me-C^3>>dT!_Gke-XKLA_ zMpUWVXN~Px<36p6-)cxqZo0LI-S^RK2j8b`*vE>qRF{r z-D8I8tZhXn)p<0xQw?kTZu7;O+fZCF3uf+ifQbK?8mBrNOXrIXS`0lsEl|2VA2MW~(2)1ua5>8da}y?kq4Rt^ZeW#otT-VTU(d-efm6N7f~ar5otgqZzoRGZXgIm=SEEzPwt3eYX z_RV9`)oy{uPkV#(kUKiAG$fB!m0~DE+GLq1fZb&^9JjIv`r4G}yvh^YtDAeN{NYSA z|6D+`YhDn`b3EB)SPl+xvsfmTWg8PO&>KvjZC@P)bxhYccH&jq#jS*PyA3!peiBrO z-6nGux8jpMciC>MnJkwl+M2p6a3 zf@APM8qw2%Y4fbP7qcos@K7F8Zn2JE{0f#=5r!iJxj1{#T(mKkm(^4$x5QW6uhe?wnLpbd-LV@ZutduIpwBNVr#eD%JDmNSw``rLu$xxl`E>N&w zFTZ&nzqF_9rfA2S#GI-nCxgbSG9WD^VqBezO7He z&68%pha+piXR!+YW?6;*9}QskKQw@CVHVEnQ|62(0@*!0LU)ily6gH0`lMt#?>XHM z7Mh$Q7P*W95fn>DU6;bmPd@mzNe_Hxw!u>t?>c_b6Cyh|;nb%kWSjLu_-}NCcA6d~ zciLE-QYi?ZwR*ylYI%qiK18ht{c&HVG57S`5)vrXP7*Ekq4n=+DmE=0#hbFB^} zsa3FJc0PV1hq&*e*Xa?db>wUdtF&81!aL4`geJKW@lAqI@#ZCOvs{vNep5kCpdH+= zd?)#r)`I400%Rp9$FBXo9&4T40hJfj=)Bfs?c!21KWzg~JC% z+Ng!yvwZnw#vCb=m&UeeN%(Oo8=n1PmcChkU?iB5_c~i>gN?=$j`Ox2w6&B{1}UOa#~2>{6(mc z=?5yzAaP)3469bC;nACJIC$KFj#<-!Py5=SrMw!)bQLr6lrXeKvG|>74Y-G|g#)(N zsp}LqY%o^F7lT>U#Ap)imS)xbx(ukZwuaRk(jm*golI|7jUsFFAUz`hZ{#M!mu_|i znv}^^HTpo5mk{jvmxFIw)?tIcAB=q%g;!3tlaFs_Vby$D;?iS-uLB*yJFgu?1ogRs z1x4Lajk93rkOqvAn+P*kZUjf!^_=;4W;h*RMwclE!k#laprRiE%kBz;q_sFW_PWxn z@}+d;c(w+5)JkK6^Kno$pQfGF1o`4+=HE@W(=yXSn7>*D&YVhw&Ka4&v!jsymwmi^ z_ELOlm5P7PiBVBu1>)0{gC1cmV9R2&qB{o2ITIfo-?kRvhd-D6Z3?XU9glbSvr1@( zBcsRVVf2OL{Eu`eC~(|Ge|eXn&yo`8P5Hn#jY^~I<0f2kOc5q6enf6QOsDp%|0BY; zmhsvKA8FNv1?XoM$?dktfr?%wINX|t8WoS|FPRdIKAJ=xd~ih)or@bL&Vsxa5!m%g z6zo5g@t@L6$lh^ol&f-}R)UP4JZME-QX{a>@EhIeP>ew{YRNlQMk`dYLC*kPCU?` zc#n{0oX3C~_H0T492*DL(b2GYzc;)c(*`=;HTY>xG|Z76$L~6OftPbiCF%onA^xEu zT$;9sj-NM5MC<)X;0q7(MQIn8bjk|O%UQ$xtJkRC>Tle)AEA6q?+OT7R*pvb;neT~ zaszgWSau>CVs6Wlk>r>3M&VN8d{_uiZdbv(i7B8dBn0^)9eCi21ewY#82#c7pc~3a zskeYk5b7n-vO?Hi>almIrx8$4(2CZFboS2eRCZzv_D}Eu zv($yK>1ZIPxXtRhUaA8x<>QIL1XIi|u>|7gmYFXCF@)9xHBeWZfx z-)=^xARs%h9Hbr=*?3mF11=YZpqt7NpFTYc$Hi14e`-8ka#9BF783|Rz8(}_m!P;t zCsCd^9iyELV4qY9t=d|I$1hEU^_K1!P}hJK!G_Sjp@e&%I0lqU8M#e&9lo5xflpE< zv3@BI{>ksScF{CQ&Fvswl`+(QaS%?ZRiYb9Td}Ud7!?bm;8<1**466piJQ)m{_kaU zolQQgeQCn|cdgvioE5ARrGP^U%qX9_j@f5IQP$G~R-4w)e|;x-%L}EXqQ^?h5gA2YDV&M&K{^)ai{C&L+&ad50{iSpH(#?io zHNlMNKGKGnK`X(-ZYE87PzkE1RMC#bQr%abqRHjS`23qAX`en1-gzPd9amn-zJqfWQhIbKY)2|WVy;bON8u?_9v%=Hgb3l^DI?C#}fjqWB#jb4(2 zv;RRdDlFNAKwGZr0C;%i2=8vpXP!wn>KTRh0l zu%QJ@8~C|w+_h!l2D-J(5$DNF#plb@iT%|Kw3Ld%ZM&Ak;e;q`+2{@B6CabO5;o3wgn8%q@X@*U{=;X?)1xNeD=I9Et#w8ceJFMY7@(nP(u@Ij* zrcz}AKf0$V3VVEh&{z6-==pRq9D7YkSx+F0iQwqd#s)fl$^bR9X@%>4t$68?4bnk* z__wy3z6Oq#YfM=oNxqs=4@n&uwyE%n(HXYb4x?c1oV?A=^Ft;qNyalnvia zRq`vTk5&pSEy%!s=Vh_#XaU@OVS}qu=g>GmCzQJ`hBsuh@L!-MqCq82+E)MuHVa{}9!$ofAwZM)1$6M03ho`}#|W6GxNv>OgnTH>Dg!Na30Z{1 z?kN59VIdUGmW7x1vvH(%2^^o{&Yc|IOb@b^my6|5;xFC?Q%*%Y{c@O;uIF8JnqbywH4sqqqQ)NS=yadLveOa6|u8Vh3W?xpcrWl z8~jS}wO=LHeaI!}LWLk|AI}$THAi9g`HRQL;r{Moh}fY4>po}Ulvx#cCaVM=Uen55l2s9nZ5vN@b-&W7 z{vF)4zo~ri-41MB(#waA%7Uyd8!ZSa!IoR>ikQVJW|ifnGMR&GGaE3hVm~b%+crOy zVM&}clE5!=BdCn8ge^-_I)SU4p|Xy z*1?{yjrX}7ZKjOes>J8?m0;)WTo~}*LAQJ>z_>|;D0x(bzh;{Ye|y)$^r;ug;r-?G zmwy!I>1v|Y&aL#UTMI6~FhE{yEJWpS5Ae~Hr3d%7q1*T=*f;EkaztHAaxfbBlS?$E$a+C`cF(oViW2li0 zdZ2u?9wc-mA#r{YuB_$hrGX!G4qFXQKT!e4GPi>HtazgF%9(_-s>MwUW&UYcEl~4T z_;E5F#{Q|L+C}y#QErCYYMr?aS5_iz7KYG7Pl)-Pj2m;_k|@D)h}vBa8R1T#%4xi|oiuWbYlI<57@rATLUz;dPzHbyq z2rZ{;KdYio;3O;;@Tcu}7lFt1U{G?;ps($dq4Ej=Ig|P59XgB3ZOb)JTN4d>p;ct~ zz!1s$7)N4rP08M>1Q`7Mnr9LNQm&K+lMg767or{{YTZQhmIxnI{N)I_FM-ZptqIPC zb75fW3^Wz62H}Hx)Jbj%474qUv(uTO^|J_zuAL?ezq_OPf>MZ=aw2uHZ%E&YWYC%* z3WszWi3+=-W*0Xx^H(csX$6CWKr?FXvw+ejb1qhKGWD4*Oh2q~!_y+yxv>E;P}f&W z9WR@Zr5hd)7p@E|*&1)#hcb|=OT_z!tnh?VD5^I<;@rGk(e0l(-c_zZ!-kji&B8j= zagl?&x}S)tcMeTsn62U|4R9v?2uz~{Gsw2E`6zul4>tDda$J@JNs1RHtI}H_#20Xz zi!*E#u_bSfq-pQoXXJ2XD6X415s&LnrfMwC*|cXBdv_F4`MjA}WWj8mSJr{yqV=@l za5{bvi{e5mbMZ{26E@zlgQpdhw8S|L6XTunr&=bJx)6!diUi)93lgb$Jhf^chleNk z)0;N|Hhx`*-vt0v`_piI;V@Y)6^?f&nDWQm+et3N6Qo>Q0OvN`CKo%R@Y`!iyymV7 zHT&9$kXHv7-e`xv7sJ6+gx$R}>Oed;oEo42`9fmorT!}Xw`nZ35q{0*5KlNWJp-F| zwxDmn2HXv;1E+*|R5fqFEu%eDu{Z|>)uu5U{a4z|)}Ug-srbBhI+cQzT!*Z!@1MSt#w6@0@E1y@R&staL z+?q%Zmfa_hg>up6FN^v;YKLJK|H=7a0iu@auw3mHnOP!++jj<&h6RhjT5JX!f9DJf zN1TYzk#t(!nhM_p#bAj>0}QFv((6&xFzi=^lT;4Ub$;U@Uf~m2`YILp>sj#NrXFy& z{*r6riQF^E4X`p@5QP=2(Z9_QKL4GLtNW8-qis1j){di_=PScygG4wvHI{sT*?~r* z#W-0*4HoA(Q7*<74xW2WN11uj;cW@|cuWXCdKF;eF>Q$Z;6Vg>=3@E9#pqVvfubJ5 z%s{!Gv$BiF++bTc!^XW$O`E~?vNAYY^l{(j<=`>5ZRAl*Gv>;u;Lx;8teKdI^M7t7 z2GJ+Tg`s$freb(ZPFS_K)d^NZ~^*Ie?wHlkEK=jgE1Q!~7U_FbK z*08e?KXn_PH}b*Sjghot`*ZVpW}2Cny$b$BDbd~k{&JfF6bZ)J@u{=aaP)o=zc#HB zPMnJ+x)QCh10T^+|9PNu)&Y%|ye2o7dSMO2mF!2`mO~-S$bh}YZ7X(QMtqx3nKe%J$MORBB|fTlg3Fu zN$vd=ge%LZs=7J2vC9uie~Qs}+nj;ZP=t{#fUPzQAz=3e&=}64qgDTr#gAsd4|{!d zcr`+-K2680*B43s+o{NvxshqX<>u{gjBwvlH+&i7h9&7y5cwmUw7O`3v0N_EyWdU! zzM4dI>SW<$)GqpDj|?8Da=?zQHE1Q%M^k^r;@OTymC= z)WNA~2bHdoKU zb?!;Bp`;il9vn}He&<17+yZ(|uniB)n*!2h8F*d@;2#B$*j?H4S&*5Ai&VkFQUG2R zh~TG%hiTG6QSPGq4EXEePpe#07=q6ny}q}@_qQvd)#wtr7hc1CXxT`6e{bPC3Y_s` z;B|Uct{L|%aRiM!8Q76?ip;b#BGKQc<8%yw&INU#`?dk9grl*x@hVY}^TiX1srbHW zn5!$!Aj|XC!|8!0I(y|a?%b^-bkB`c)csaQzC}-kw_)k1*JBCxzw}_Ob22>V+{w9^ zE!5?&G+h1H1ltX!;S1}{@Ybsob!}>J*l-0bJ5~Z}2ZQLkC0P(6*PVFAZ#cTE7Z%-&LRcJI_d#c z?;4RlR{s^TSZ&we|RO`nR7f9Vj-_SsZ>LJO^55)OZ> z*(@}^3Li+R;(pf`M4MhDZS5KOAYGOA-}J;AcXN?c$-{3JJ4+5Wp*!?SFk+WEeDL2& ztX`X;l(h%`&Eil{vlX{$hTsMzKM4Ju4aG|N5Mq6c)H_|G&EW$?=%gDKntI{JYHR45 zm5i^_Md>IxKxW(3g0P4rc3u6%$2!*FQ-w&-W@`cq>8&ujBb6N0io&Hj>QFHl0FEKG zpnq9_+Y+LTRwdam!SWh?&kPj-?Q1|ab}o6gb1f#%%EtyZHXj#z&hH(cMeEr9Qo?v9 zcevb-Y`Q;4Hg$MHU&Sv@TuB^*WsB**!dw)}&W3ru)v&Bmhr3iG16>(;Sg-DZnqdQ6 zSY{~nFZ#-NR6M6qsqg95{xRgFpC2esHNnby8F+s;k=*@=BuXwC7aKW&rr8B9yI2N~ zK2ygX>9us-vr2NBdeO2~@8}sP2h!kI1R0ma!B@2zLPIZ*sy0vjb+QuW22aucU4`WJ zyl32UGao!Fb&0zA%X8P55#nu~Ako-&l}`Rr#)-)8q*>WPB(OAv+?`y*1??y#vyRl` z-Ln#OwW|;RQml|9E@$5@K@tAvU?IkDIZUctjWN@@fIhmD!~f`Ju|46jJwfCBz}Y^X zZr9U8`>#7`+sQdIB^)|gkEhNQpvdSca%1{9QX*!G z&V%e6wGa4foq@PzTMk4&DuZQ@EKuan4f5`01*qFyAoH39QAqm;5xmE0=WVx1hDaN2 zGY?1AkOuzyBQ3NxrzBx|3EjN;9slQN1MVBsO+}go&9hd?g2<+LSY;OuhjoguRlXJm z8>XTAf@0WH_nY@Ut$@#MK2U?KG>n~G0neg-5UHe6l#L4lzj1+RKO#?;D>I^admNNB zs!*w!H7Lp|P>1A0v05+>udZH?sTanh*#lo#=r|3N!mIII>mYGjtIyD3ny@@Fo)3NU zgbI$_Swv41-&|;Z%DYBp287fsGOHZgD>!dSnt6^lGPz&rHV6MN;$~LkfI(nL-{l z7~%F^%yiy81*9yaE+aR&Pc8StLW8u`u9w$Xn8hf-cZ8SPo9+W1;kb6xFb=)75xY6$d&=rjFIIm7%y(AJkXd;G+9A`1j#Pm~(bFNeEL0 zUjt2W9W#cwZ}G)}dDgHfVU+3xH*@OI@8|}v$dqK*<~_5X-cKLJB)Ez%5L-K zWLxko{X~_`Mz}R?qI^VmDW5fZm0bLzMMoa)Bi%=;@w-+5K*a`n@M{rN{ji~%qQmAV zUbDf4ch)i-gB0v>-$fm^xMR>WF?_980nt?*c-Yt!P zn~?M$BzHBfPT?be`h=*-NK2aSjGeQsyE`M@*GSF+Kd(jhe>-y2K`cgnGC;a z#3^j2vgUvp1m-pYQzXL7+Zxz>a3a3?$k0P^8JOF6)SFlND&+!!U`b*WzfzOn6w)LE4X)frRWCx@){VJlK7d_a3f;S?U=$?$~AOZL*8@ z?%`;T?QXJ6wGIo_OL5(;LDD%-5xCE?^x5}rPGrXdEIGQ6?)}_>_7;9roSA8MoPR{m zNEaaS7~)HfZNT;IGC2F$2Ey*z;fa(R+);MMKW~!<7Kc9cOex(&)RGwXYFdiepJ9rN+~Q!FTLc{MuP6Uh5^1+92i*nZ zQEzz(5ql7V9YZUzNHG+rs5#?MmrT-nIg>az)6})&U<44d{H(Mqf2a!OIOSny)#DW_3&9$nSb|-@OX>y+-uS zL2tONA;M~$=g9Vz0c_{Zq9*1uC^fRgpJPi=*wz&1Tv4F9i^qV>oh)W|`OqWB?#5vi zdLX&on`?cZ3$DE#c&RcDmkwPeB7SXP`jExOttR0?=R|V@H(%-y(E#SO!_wmV`L5KfhDi_ z?R$0-)ty(!P0f0=XNd2<7;O|fca4Zj2ZP>bGq@cl4`VF1LWVQJ$fLD*E;gpe&Va*< z32%v{&m4L_hV5m?h@u0-p^O`|5(kgHBeN@_+52o9niXqOuP3qd2igP3q*c?{9_0m3 z|5Xx~bJ+}ikp_pCMS|qlzZ54lL#IDUxUvq{o(iadOEs55RTn11LJ=i zVD$GO6<%|YuHBRlPoisa@f&gY(R-U5ojeYl7$TzIcnN$xSwn3OH+DboGe;jRL^VZC z3^>z*X=^yFz2E{3TiQ`&bQw-@l_q}o7C_F$EUqu&7Rf9qCjYHi4Kabg$evDj8n%8q zcxpF*cb^oeq@0H9Y+rB@o%N{F@qwImY9j|6*lr_wBEDV0?i*#7$=tY1xZUkSDz2nJ zfQAT;*{uvGv$s)TwHn=kJa{toGjjuyA=;N6~b{4SPBk1D7-Hju{72vF@7MYF&-^N+gcX!p++Y}$Q~ZfAET=_3tbY88R?Q%a%##1-<{ zF@yU*iq6B4tM`lJRtixW35A3Zm6iD1bF74n(AFRgE!w4RHLT1+QYhMciF?kstx1Yf z(xRz7H0gJL|3LNW^SRG`p69&Zuh+TyVjO3+0@RcB(Y~mH>;i8KohRQTjoMMD7a}44 z5^Bk^(;hga>JJ8aHKMAt2i^7aEX^-b#kwtnFz>?^af-Cgo|WcUN<;eKh~biTNhcj_ zyQbk*^W$_|mdL9|C7@Eq0Sdkm%N^MTIKQzJS3g_Cy9cTA9j%>|wl9lJLa z?q$YqBRb=Y?j!NAODdj*u~3$xjQxJiVBNb`5>98HgcCI7lYJ{-!oxhgqa~ShBmWbZ z*sa84lDQ}*y9@5J_(aE@%f+F)R!i~FX4+8D3$1VEag@?eD2$nc%e7t5J3MGNDLI-!Z}RJ1BgLgi^GbhDW#?(aj|yrfpp?7WH3ALx$Nr3b{SDM{kJ zuDjTMVKmg9-hw}->hp&=yIB2v0ySm#<|JdpBa!z7E&m-HXD}8!OTVA2DUwm|(+8S2 zM%wdzD}gOTtzdkA7mT@4gqG!V@Izh{4=erzD>}#W-98fja!)KK)D7ZcpUyy>SsKn? zD@7;YcIQ5EdDIXYjC)@iU}}1@gj00E!>5w@b3-A8OK7jWwO05$GgMT$8Up&EyZC)Z zPi}o~i6wHuSaL-yogkw}8&eRhZP4!!d8W3G>D+=k>#+@2`9T^Q}$1 zf04A;mk=Tef2{EPwtQ6Wc3)HtF2(oDdb6Tr%cIF|Qaz|cZ&Qu(}Jk?3IleM4W`?FmZ59fK&<*a zi1rzEz?mB-#ehS_X!AUea^Mdc-1n2tRAG{N-Vdvv*g^E$5iC_|Z{Y_SnON(+lLG8@B^+fwcK8p4%t}9gur`Gv+B1c2 zR;uvRRSiS76u}`JgGuEqv8?pQ$0LGAAJ@ju{d{q=Rh~G;$Ah2V9n6m2!zSdz$3cmW6B?I z?Pj^Br^W9VW|KzGk)pwFZCv~MHU(%&XprsGaLf!hT;=73^3MY(?Oz0%q{pzcyaoEaM@#F@4fk0BH`x$6iT+PhwI^4#s(g+ z>zyF?g~gig5>IscOd?-$R*#xFjin5ducD5TvI>Y=8^^DjXR(JgAKoV6Xw7P#z`N#dSnC^! zlcyO=2yrbG?0k9o=#|{AWzBu(>ELFIaCSeFPuWst#r3+66j$EFC#zHVrdJj$k5a<} z8@;e_LK=VVycnfspG=%qfU=DfaazU%?tCGUBbO%PS!WB3X9=Ue#f^1Fl|b;4?NILB z4hmUPWwo-H@xCrR9xv%LR_F@-J}$=t20z6vlnz^S1#H-F!D*Gb-0o~G)@nWkEq4jm z`1&UNTx!h^?ff|^bvriix8vBYL!sj0G+wM($dB)h;w`saDo5U2gnq}uL2GI+EcjG{ znm48OUfjfcMGJ}OvYggfT-|RrhAl7Tn0?YSx9K&UII)2WuJ)D30U_cr1s-ZJsqc1dA!)rmX#jKkbrW_W3{ z8_v3DLKl7XsnqEmC@l)WJK|<8o180jiOeCTpRs&r;WX;F-%LYVGw{|OS8lAEk5m2o z+cQt%gcor`Ctl~4f-q| zPuWFXj%0BBQ!@#f;)%1BtTFN0WFGx-KlubEz}VTZVe;+ul-E0%H~3`Hj-ExRG-){B z&b=n~@wMZP;SPAZhXpp=G{aGS9l4+GK(vUga;dzY#YbG0;9c|Wxbeq0{%`UQ2##LE z7JpvRi#`9yVp#w@6lex9KPcPpSVL^4(0nvQxq^(7Q_SAL|B3cCxe*mgxMTwbb- zK}pAj{G-jJZ==97V&BO2J~GFXO37e!lGjwm-CcJ8_ z3%XM!yx}N)IF{c7&1!eD|FK4jdbSJmPpsrm*UN-AlS_G*@dg=h>5XZ5=|Z+tYujDj z1J1<6a{MS298ga9{wCz z&2ueh;7BuHjF0bvW*W;uF3gtQ&s`D}4=HixpT#&!Jxl0ho&||=OZmvNEt28WymHDo z1&EE)#a+oO`G`YTR<@`S3}P2?!Js=Zl6|b^5e{>e_x2mc<+q#tpSf+Djr>`&}NvhXwNtV{O zXugz}L^k^~*<{pS>UZ-ojNR#mOWnK8>$VXr({jBz@Xfbu6@ufcm*< zT(D$3w&@z8Nq8YY`q7!gWN+ZDorJ8qmI~1e2BGUcJw7vZ3Xl95$?Gz3dkt9172I)T5mg%hSIa<1scbK1_)X7zad z7r%vm?AtDx=tEiI)B-e+v?mjt7vt{-qRhW2SBwnT#GUPDXjWi>DTI&Fv z^k0a=FCSj=dpKWtE#PH`DtPNES{<%R16F#A^oov*H=_P^I*d9*9e(I}^N`(1fl z{8-v1zohchteqI#_Y_4-xYi9Pe1z7+Icz+_l&^G-r1=z(KSKBvbX9@y{7Yq95PWj>m|9%R|l9Nn`JwXWVJ&le?h>-{LY3;3+A7k;+U!Yr3t^dT?-EoWstq(CdYqemj+x=K90IBolrsO4;l)X_5i` znpk@@1&_TB!RN1cvbxNZKTObIKT)dbDNMzVlLNR=%5p7Oqr(waGdWD&2h4A8WZOsm zu#>kM79YsM^SY5d{>mD3(O5}iEH!!K^-582jCy4zP6k_0lDfr*8DnWCP8?{7* zquHdhGTj|EFhI{i%H%A=sv9L3<-38s;vBL4DRS_9LoUxBB`6iI#X0}tg|AuLxl*N< zgd!R&twlvRL#nu`&z-|de^i2%hdL^L9?7cbhOry%zybb#yvpY>m}>Xr75U|`FDiq- zmZf6T=@oqb>j0tSo)_obT1MV&I%xkj8RaIg#5K+CtVA!xgz{1xHK{uqsd-B8x)44u ze?uHBOysw}^Z8!62fov8B6I1yT2~m3L7v@MCvy{3TRP*Sv)YoXrwoJ@nz*)CFs^@7 z01mIp=;4d6^dnxzm%84i+kwvPrB(?$dvwRZwaz%hF^BEG6!FoY*P(XY2#j^ILv+aeX{qW+>awgvXQ%oj{y(P1q4UcHyV!h; zbc==Y+pj}~$tOy@afm`6htuk@Iq>R!oTQj=6zhw0S?Rtje~Qjy)n#wR#Y^JIe@dx@ zHFCut5=L{U{UzGt>`AZY%;b%SB+Pc}OFC6|n6{2B!o=Fy(p;-Qw;Z+N?rS&FolrFi zx6lsXYmZV_sf=!ExPSwPO@~Oo3F3BdPt+XOgV#64^RTo)8ef!$g@;BW&MiczoK+ls zERv>6$jE0wmbe&l@WBXGc)WEtLu4?FZ~95IH~ged>xRLr;ki6JYA)+7PLV9IcR^>I zE`M;hM2`&#vXl1G`rQ=8%c`!*Y!1Al@_OIO3!@9r-6slbj!9Yn;B4-)cQd|B=*Bmy zhtnIyT&k+wh)2^4(I@M>kR@R`PQJ=ut8aTmP2>Jp6`sZmW-o^qJBuXMgpzRX!ZUC^ zkc&p+PrwnMKXi9M6ws@k_!86bzstVj@Ast~l)4_LSV>tO+h|&!Gy+}Jp*2$7HOk&z3C4PF(Y6GUn{t#+#oDnAkWE z`|8;7JgLe$?SRzF`7{>Zj_u1GMTcOzI1J17=);U%60%~^3Jw~%Rotv-$QPE*!*3DI z;H@8x`wtA@&bCXT$H!!BRY^ua?aef;B#zhb?#s1tL+Jf!Bf)iCEFVfe2-g$xNH263 zSh_fH#`9(Hv8{yPi~p$dTMj?EHH{7adnPViXTx@n?^aH}sgJ*PXY=f!G%-Wr1FU`C zh2>^0;K8dU^ZEU39N&K!9x+fuje&Cb@|OoFu8QOUhkX3o$De1+{VnJ$H{-YO%4zZa zf=bKno~(bz7a|Y;Bd3%Cao>^>NgGj$XELRCsBaO=<+$_h*f6e`)DRS4VzK+3)!_(v-qo^5Un?L#fC?zte230tA=Udj_rzMT&^w@ z7iSB@j%?$PaRS2~N!uEw!NZOYs?5nrqkl)v3G?NHF|ublfQHn0cooMV>c`l<3+jR%;lsq4a)#Aw7Rp)j#QBT0G3# z_JR7GOy?c#5{BnYvyd`&Id@k@)_f~)Xo3OHZyw9tX5Rt5P#bLfod98@lhID9YWFn{ z!y!MdaKoY$dVl{blqn@*@R=~4-g_?ZJTf19o!*VcD~F@_PK$g0eFEQC_)yjJovf!4 zOBNPOpwwQ%VBOv<+?t-mabEU#4#C#wc{p{a z0l)015nYdlzdz^l4C z{Ev3>;fV_=s{AN~@7#>@KK0{Pl~^wQk&8=o{7`O74j!y-hnAdR$cRtCvZgN-ood6y zGd6Sf&gE<<-O;8leJPmT>CB^^jl-83{?b{{6zjjovRrs2tc|-(^BxsrutQIdDw)Ni zWc?2Roeh4&?~4U_S)9~17n5XZs5g2!mj0Z{_`V1SE*vUev$KL(x=V2O=t5qjV~$-f zbP=part*n;V>Z0E5stsv36Hbocu#acI-R4-6U5$VA78}lLZm;Zrx8|nj=?j(zLej%)@EkZLsLQqNHJzFt^=w@zAey zJU&?ipGNIq7wd-=g{dAmR&xi>_}Y{E9-M;voQq)T`#7G~mIl1?xVX?U9rbtHV5j0E z;&Jy!wC+SI{@gN>S8W_AJf3`*z8wgrmG0;0LUCu%>pzWWe;UBY9*)5oYqs+A*TbPT zsQ^P^J~rzl!1(MK{5maz*Pov(E_fCyM5&#lNn1i#t#O`o2Re*(ua0KD;z@#Oa1zZ} zTu7@k4avCAEhBH)t>7Rm;0zx~+?_VV)ts9rhcZH~Qh_)zkQR##89JIUb9ock$Nj z#eDDDaFl@)h8;0Mn~re2UT;k&{_BhOZACb@=SB>PG2&4E00Oz&ko6dHXe^(d=7}3Q4^Q~SU? z5g0$1huf?+QCYWpaAjssy!3n%`0n`%>(yhq`?Gj5H6MV}FI(gO`Rm1j{qInAt|_PY zOXUmZbI|BzD(p*}%B`nYvxY|!#!S0R-*;!CPqT!0n&MBwo>}bldNJ#1C!oUU88kM# z5Hr&jz>wt*I5p4{$K=N2$%JYlAapK!gh?5QM;p*OeJPeIc;fe^X6#rn6TeydVZ8Lt zv;X|m#mHw7ZI`;DPT5ze`KP4n`6=C{Cp8G$R;f_Ad=jtTo55X`i+SQ0KOXxgA6J&l zU{j;%bi?7CnE3H4XuL?rn{{&qFDcI!c-2eF!@I!5zh12EyNtEgNayx1cAOJ!&6Z`; zAU2}~N;ESoZWJd;`VJFtn$$;@kX{G}W~N}%UvqYlo`oTYd+~rUe;n9f$|0V9N~`vl z@T}!35}rVVJJh>D_OK|Js~W+xcSLb?kQ^1>Uco9e{?Yso(fDp&5!y@L*XjSlup}=6 z7pVnGIQ0}br+Pzd{rr#G7xm$95sv)C`xaaw`EH^M$JU`i;0u(zz zOq%qZ%*(?YF8x8lA{V|6ScWrWdePAEdoW7E^#&=p^W>6f+*2HkyMOPJ&>G2nx;&lb zOsqKO?>1h4FPZ!7dkqy08KTnc-WclYh!2u4z^nGbn5a-j^M|g((ShO6BQ2Mo4*N>C z>@{(TM^}1N8O?D=v?Qc`HouZD!F&16TvKHWduvTFye$d?Pff<;wR;4egHw2{$`x3? ztT)P^-^MHCi+S-OMN*fYpe@TYq&#;Jn=2oHThcSOlMKbk+DuM=7sONCw?g+8e=MD; zCiKmUfbX`scy!ugeyWzwwEQ$FpV6ZqsZ-(I(j?kbx{34p_rYNOL7Xx`%8IEb^RpD` zd6=*TyXthp1^@3~TS{HL(}j|*X9H*ddqn^BFXqxL9SP-~4OV%vN?qK##42=`_fQL% zx+Gxfyf9lk+rbhWK~85o&Bb8U6;dd2y&Tw#T|x=l z>qYJ3-|1p^FC4kJw8FtRjh?=>!n}%Apt(Ame7_9AS@0WjuiM~D?ky-ievv+?df|?t^>lFC zdGXoCFenr=;ncqt$a^ht+Jb#_(YX_Mi;bok``(hnBx%oiu_v#tcjgi)w{r83)Hibo z#7A%4+4{Ny4h!jpK~J>#({>pqDV~S*e>V#`9^Rb0$dF$*oTtqrRJm)DbUsY=<_8NZ zDRJcl>gpps$A)L%M7tsGQ8-O2bTZ-E?mj$w)nzGbq>3Bvv{R*|tB6>3AJl6#siegc zd&=q{r>Gukx0vzy>8AXkt1qh=*h%~K4=(+Nso>22jQHr>^vZ|{n_<1Lgx~KwRq(xT z$Pr~LU|fAqv|INVTvy$vei4CqzQ+mi5g2i`$8TBfM17d^qy^a8pCb;R6hsdnIQ42U z_t@zGr(YZs_C)DRePc_Wb3>8Sb>+k+1uI^qVa9uY0$&}JB)rH_Vcl|X7I!&v*}Dy7 zIVBKR=e&fz?gywb&6CEA+e_KKrOw2U3K~=r#0}dLA$GN!l&-MDBVTq4yJzRqn3Q4o zAZni=_w5I@G|h(W(ObpItMoZcZ4^Bm?}Iqpow^y_kPzkBLXDXt^3H8S?a;owMDMQP zc>Go6=jY1&?RZbF9-)dUuDP^Fri~6GjHznI4(eU)3ZL@&u*+mcZtDC2dWMF;qJ8#a z+?oJ4n%e~<(GdSbc1GQQN$ql(&rxW~_npWR+2u8ZyhRSPq z2P+GEP($NXSbk4N_g(eyTe~To@$G_NI&T$|^k2Xe+pesjs<@pNX*->|#^xv9_8Nw!*E9KT?v);qZ-I-8S+6g1S9HQrH8oce%1=?J)fR0|d zLi(fJvESEDc&w@?pU>Ao%jtK)(CYy_+)8k0pD(w?$-%dfla)nJ-4Q&j`NhnI;;&OR zH2q@_w4Grf8pYYrjtNU3F6;#5?~RkbGj%@I5Jcet?qaz|9t`}1XwuDu-u&vt0ne@Q z$+@n$Yjs z^r@l=5m%_+l|a7HVkiE5c1Ad`x)ZBjjr+te-y7kud!VEwI1iWedhkodAJCkBjy9AB@{vKt=rids zxfxh-i@g@dOTP!B?AwBmvmN|cca%!H{-VE*>%|?|n@hGek(2X!8Zl_Cbl<#FNHD!E z25cS+R+W`-^R@x6nj*0@!ne`XfL8dc-Yz^^=!uQb3dGNLy6BNDV>x?Eel&g=t-ftr z>7(QZ2R+rKncGNS+I=`bc9pR~hm=*H_61fY$)Wb}V%d~&0eCyAD;9e+LfeJDIOK*7 z+OAfCSF^2ogoOszwl|WAmpb=RJ3z;z?$7XBuGn@f6=qD)Vy9jE;rhUlVAI{7d-u3U z&{`l~x;lh~(0XWI*d6=p)WG{cA8DHHo60UvAA(+YUkdz|OE-V)0IE{PHSy8pxL292 z`!zz{e4vQj0Dhw;{bsX`*x;)p``_9{J+5tpPgB&aOhl z|PQ!QyIC_z3;Hey&4p3v+2>k7BEf9hedTCKu^IN zi*-YV$So2=b@5>AzEG8I7d!G)Gf7ooY=UlmyYr|`)h-t<#z1B07dn>Q8C};n;FAp& zT-7iK&Z^1d7~5Uo+KuV+*Gw=8Q4po&99JG(08t<8F(=KC^PJCuf4K_(>!ZW|Ka0Uo z*_)##_2S(tQmK!q#j4t+V9?1080Wa5 zy-nIn8|m5CTymbRh6bD6IJhgK@#?GeHo^hbXEs7=kt+Rnrx!b179nQkK-8D(gIY=_ zga!3oP*hi>nZ_iM}bZ}JiF?c^9m5Po2BX^k- zBh60%K3|k&M>kutq4OU|4Up7u$_VbG2I1o1ZW4Oehhqo$(UtfE zLa!Z$tYX@oSEL1T;`i#x{xe!2X_FO(9hZ9YYmUK(5tcllWgP7mA}PnUJ5PD9hd-sf z)|(stux8>e=xgsyR+F^gUa<;=v?y}p+}p76!%wK))dj7?hGNB?YapR4l@!4@mOE$tW_4Yh|_6|u4ZhFE?AU`E(AL)t6B(nGGxHNsJA#kDy#PO5h9r_%|euSlWXPS<+2n zVtDZQ_HES1v=}y@H^D_Oo)btJawCrza{8l({2bU5 zbRDj)h!pzUXNzuQ6mjTDdmg!X4IGm?G10$rz)(}#&knPZ*(6^QzGXBD^KbRQ6|EAQ zOIs6ft&@Yj$7%ug=&;TXdqH-gTHKJj6gvHQBmV9GN6O+AOLL3=DDUD>EFTgCJ}19{ zS@Bk?FlvCJLH+UUMNeMb=M`DC>R^Lt54QS#TqTUeTVqVHe}FS~FH%SIMT_9-HXpW{ zW5bulJg5n&0qgpcRGWWXTp8YzPJFy9$?*dDI@$1p(QTl+%%2Uey73N^yF$MS^$=d= z#@BxUl`2Za^c-7Wb?0a0oHI5w@V7`?PD`5E_T#igb0Q4*VuTAV69pB|cW`fM4}3GH zP%Ks7Oub?+(byrk#DVQAAl!c^wf8H9!PawN>rh4Pe!zz}R*oT)dQ)_tJgtUCID249#*|2__&Q}O+A()lHnzF|8w?Y%4PF!@JsTOE1D z%&o$@$`6qEDGpK&Z2|Yt&5&nO4oAQ21+y4??!2ojf5($zr^;?@-02{Vk?z@ovID_d zHXDBKKM5NPipW`G04~k#h7m0x@S%?)W12Zf2F}0Va z(Zu-m;1cZ!({^}sTbVt6sJcb*Q38$MIB`mkc*6mzh){p$u)__CC1Z+wq{6@ z_5J@{8w$IOaP?YUz83jW7_X2+8&f=a_xQo^F4;l2nAepbZyCg{MYpK-OFCsV0|w@F zh$A$l`KaY-xV=#evXUg-Walh6+?Y)*wf#9~!V*gCdrsDnV1i}eCW`}AyRo`F2%$X| z(w6?aiPp=b@xVV&vObjzuSjb4+z*0Fwii29EhmSE-zl?Gil8v)xe(fGC#t43r~>A}-rrr^yQhT)>k1$~a%W68TWf0e0tJ%z@W(NOC@kXOsr(ZR`2 zD5jwvwl@Ey^M2O|#yy0-lPz#T?}@N$%a97)*k81_>OARbCX4Sb^uU=Bx$tu2Xc(&E zj*GNkiWfs&X~omN*ztHZ?bC5VqmJRcPs<;sy`M@=ZKiZ+!YvyA`3tQHS`P-U(#%)E zS@?cOud>gMzC3r^XE-)#BGm?*B)`+aXxj7=jMRRJ-g(0@T-#hQC^O`5P@PSFA# zbVi`>gE$zg-XiGbc0#*f2P&7J8z}Wj?h2{H4REo-3lR*`D$iC(nV}aMq8xr`hZC_9&Eq0LCj(^9^&nUZaW+4&cyAot;z+jP6)z7!)DXlZma2K-rve= zca%W+c4zh&WQQwi^-%4gH~wlKj*~8h!`uY|>kYmI-3!l&s~ozb%%-UFrC${ZK80ds zjT3Hp>cLSDhYDuygX!0;0X%M-AJ@hFfuePv$S*>f6MT-tl^aIvbx0F7Us1z}C&!73 z)-Paoh!rZmRLAg(#<(Frh<}xx2D!3>;v-R!)tVo{gkx_hr{^&Ev*rdkzBx@dHag>l z4Ksyrp*n2qYz{fWTS0kzqZm;$0XkpP#MXCLAs%MH*nfp|u1^rg)!5>q3{OF&rw?2T z*-&{szd+nDBbZNyzJXq4O5$E6J4}j^_6Q|hs3Sw&+!vu#jm~mv1`d1;r2)yYM!{2=4TsH`NdAWX!#uBZMX}#dHQ2Rh$~y& zbj9BhHk6}~OHU3P3mub()6}0@ygSecB5VyX_xUNk=%X^5Mp-A#OgHzaqb-}7_v!)Z;m(Ph!PX$Ng0EA>Y=Bk{&>E)Me80Mws64* zHx`ojLmP^;R^TTiJ5|m<)m)h!vp`q}LvdlRSkYvOIUX*Hri{5-IQ8dmigH!L0gZPc zP4L0Ot=-YA%>^Hgc0>7aclOH60T8`--n7%QaXMe2slF91+?xo40z0F&@gBjkSW*Sc z+wli$8*sSz7WzNA2-=dyVMvL9qlYTtn4d%!R(IyV7Ng){*+_n}U&VcTJR*K!*ZP0qQBkmns zN$N*6IJjRQsYAYtM$FqI8@**2)g{O<<$)eQP#*>_i{oKrivxFZvxZ+6N@%9zLUB#_ zaZ0G}kI$Tjk{9;kp8EaJ_fRh!bHEgZXBS-VRwtA3qZsPmbWPSZ<)*OAMP3Z7lx95b zSx{mh586Z3pl!9(mrrw|gEca??J(yb@f%3#-B7+Cc@(yI>Cu^Wet2toh8X)#A1dB> zaB9XnaQSY6Ct6Fu^pXLiwJ8ttQE4UOt86c+FhnzTEM({-=G`F{ai z^1&QBPj90kJ#G2Fmcx`YuCek=x+yAUccrkkx;RI#RW`AqKWiT|!0^yvl z^*2XTg0=z9`1wW55fr%1;+=RP#u(=wJ1ASL)(x+v91~7?1n_{-zEqtYgnH7xTJFt$yAgZ;n|fRwv97QpG_K6P6^CKkmbGwTJSwt5b!U-#vJFfd$Hn z#zR*vZG7h>cO87pDi}qV$Cj7VgLW|H#3>LsmH8!~z)H&l4`LvxBB> zSLtk$7S?~&;`@Wz#jMNEs2e!&e`E8={gNloTGRxG7R10Dt1h_cb~Ai47{qU0R#92c zdU&auWHq(u6|6qV^5bqBQX0PW)=q;(tqsNbs zluXhY?rAI?Yi<*AyFQ@15h=3%HUqJt+yRf(xJ&cgM40GT37Xw=;PIS9`05vkSqJrT z(*qOUJ=h3bkCeg5<7Wh2H&MK#sew+Ze)y;0jA+vN0=3NW2Rv{dO2(>kdiO5)tvDOp z8lKRqTQUxMRS5&qD@5(`4OEe}kHYLV*~?LrUU$DHPM7AS_DZ`zwZ`fX}dEB(K#PIS#)iF=$?!Vz+7vG7S zc2A`wQwK~;cH-C?cbxXTj^@Qkgb#grQucjK<^Qlo;aGC$r(wIDxjqK=y@<{{m-*th8sAFY+nIk>*cO}72UQ($3 zt!S$IBHozciKW#{W34S&b;(00t&E4v?L9Cp*_|V9+QL*HBQEsx;;gq>(0=PN>^f9c zsV`xc{iN?c#jPi{cB_Q*nt{0cq6_H#Cv`H$g@H<0Fg>h$N-rPEW6NNBj%Z&EH|JM@ z?Tz0Mu=+QRHlIi5H_xNJ4t;sv$Jy}qsSC*WJ_Bzx#?phQy->B6E2_^LM0$t(q|Y~m zE&4feMPn2F{n80lPQIgE@-}$YGL0^D*)G~z^y9McE<9nKyU<5lx_c|?LY7ND!(Q!t zxV%7>3(^d@T>AGqiZUn;x(cNuKTyo)5~@2lm*T50Kx0%U87FU{C9GF-<`KUA?VvZo(?((;zqS9aq+;5Fwrej>hN1|-YFjnJAa)9A0C2dj@nVU z^Cxlg1!eS+*1~x!tf=#-ez4$$A}>ATrUL0KF4s7jZil{r!|69Dv~r~o+q*j* z{O*Pa<%2o+s2OVyI4L}Qa1GWUv_u=D3i{Z$S$wtm8Ewy4K+D%7Un)$2OP>&ChU^mE z0|x_QG4z+WfVbv5WFyqpj!@qyRE;%#q7;R1S zPYl4sY<2G28Tru5Ou=%NHrzf|4+D>RFl7y5@79Un_TxObjFS31SG&;n8v}X4)K-e^ zt;Em~4^C>%n6#-w=>JI_4eN^`ahD=pmw6+738d?fuR&bzp%``O4ipSLDad>d!@6^~ zC?HLZ!=-)J)n2~P*1C3yIoQCR+xBlzwGPU`C{On zI5LA8y0Ih|ezaN8yP9Doey&J{xr1hTQU@tFwslaM?| zfj7=Bps#l{*sDC1{Nj&;LC0Py9&uiHu|<_M=2*g(y&W{=yb4bLZVd*}{ow0(Ph7pe znDqB+@oSrZqUx*zV)O@7G+w2N{~hX2bDrKJ&7X&1$6ihJ%}pbd=Z}TE*UWgLbl>Cr zR*yFucO{P)8#bBY$shOXV&bP#D0~ylVRnJMt9~Kbmdd!S;~-hqg+t!OebA6-&NGda z@k8!Y82B?AHV&K%4IMHrn9`3OOzrW0%WT@;Vanmt9Ux9e#?M36(OOi;fO1<|J&`l$ z&b-^yYmX_>OK;9w_!x=?J7W2hb1-#PXAXaJh6)DMi5l;GW#%iS3%k)HKr!ZyFxJZx zTlB|5XuT~y+-t)sd#y1m@-3;9_u-=Z34&bzGjQQ~8f-031LOCaIJ6<1T#X!|w5A3Y zeAy#ukcS9gc@ODdD+7Ja@6vkO4yFc@@=0$p*o5B}%||xCs+qqlv%ma?gl!eVpHnAD zUH&sT4>0FnGxx(puawH*5s26Hf6=hNRbX~3jRd7Wc;j0z__tcpw=r_CHKa4fQBTYp z+ysdkcj)rJYFKSkCrgVM$ZZL4Y4Y~5)Vb3op>?zq4%_B{p+lYuYZLO}gPNot>g*uv zbNL#rk~n1FYdtY(mT{gI*ElI4_=9^&M{e0!^ zGx@R}TZ_TCqlIE+YlMK`$~=493GqwjXVKyJM*3DG&5I%e`Rn(5vZ@d;dY&bYs@+EZ z>hECct>40eJwvc#)BQ@L##gk;PnE77DFs?o2NudeHF|Y0b!A^1r9B5$CYxa4uxIq$ zXFp|LD-@gttb%YW7e3hgDV(e~p)2i!p#7^c2HSX2iGm24*FEsc>`!9co<4m4>R^6V z)=a9^S191u6yUG~alUT|zPHw5`IcT7uK5XOOmM_6pPgA(Y!gyXoq~&Xm9nUpS71|c z34C020_5!4#G)|7korLEGuIAJU$3H~)ehpCQ_pEiUpB$w$~l-)D|w%>b2 z+qP-okxkn8>8dyFG?#JJ#I3Mc-Ve)eOXrGVpCLNDh^AY}@qN1%dbIQr80rng_xedx z=BS4*=GAoiwv@lQXOG{Nt6iEFnc=`7JCyY>#7X*jkoD&bga%{ieowwgeg7LLILGOMjO!Iswe28uU z)ms`I-`+v@)0J4xK%F$tCW`0KL0F*q51P$F#I8ewaM-xZv~1!N`ZQT$e!LIhAUAdV zJ8K9>fA&M0^MKDvW|l+i2OiM0NYBcr zmapkc!v4yLeob`XU>&trSYXIT4V-gIV$GYo;5GjRfNNjVe^aIYyN{yKKIkIo8QODx z*EE`U;T;XSKaN5#uMj*g|Aho6J>0z31Mi!hf@CFAoVB5fu4y=+cjY!n)ly~$#eDHX zuT9ito4=%``~mGQSLuvfE37Uv!*q$Kzz*%AZI=S^#GpJnKgR;EE|S%@ zBs_6B3C9fMV2ytHj#KcNl>uLwzu{PM!yfCrGLMmor-W zW6B73c78IL!;8()NmW32%^uUOK~b#r@}`LWB8^{|SRpAVsp zbB|KGTN(s?vu4*)Puvk5PfLf6r3IgBs9n;)ZM)*gTX))UdZH0e*eK6RxBgVjKR8>k zI4}L*`3%N*QJH)BT4HR*5%IQ1C;a!$h&4{+QuNvDWF6a+6W;o>^)E@dcxWMw-4;rB zGMP@R^+UPsPf63X3oZ$;V$;<7(EMRrrSoDXj4Sw$)=d8e3US||qHGnMjD1Iro+I(# zZcFT5*Y`x2vH)R;&A5?@K>D+KY^Cvx(&Pbi-#8d4w={*{=877o` zq~|w%;fl`#!Ar-7FQ{dU+e_of^~l<@?b|GQ=^slp$~*(7w>Lxe#NNCv?;zydxlH3% z{-(8cS~%se8=CJ6miX2m!PLY7znZJdT8j@sd`2hUMvnN{XbD)BH-k(+8^HZE6^0z7 zZdatoy%dfV*nJ7_zn$Gmq>oldNHoyn;@(2#P^CTC~rwA#P?R=ZJ(97tl%G1 ze^SIa>s7FDLp7A_)CY%v1k$*t!5>p9gmH=$v6oBi`vEWQa8Yh^LMGE-<(IJ{BS$u#btnKoe!Tz7K?LI zZ_z=OVL0?lJjLovg^fd!mYpnQUoF-N-OM`!#+USKK z?TN2%r_hvj!n&GLDDyC;SGKiex4AdJx^Wje!nZ=V+Ckj7+y&o`7|t)W6vVUZ{)uZE zFNi<4=;MYcN66cLurf+%hj=P*6E#TthLuB;;MbFl!uOxuvC{~NacWyEvzx04a-mr? zckegoBjqjpmRj)3hWSu-%@|#jAJGui6L4cuF*%m%3gh);kiPN&eJgUK0;3~v?zJac zcYZrgraARMBNwOd`9Sj(~b<}47pfH_-z3SCEj@Oogv#QnV{pIM-^G! zQb_m}jCVqsAY!(XfV+;+c0Ds}_34h=A1)9kmOF5awF{O{*2NQVEm6-+kG9?F$8Qe& zs{B&#f~GYUVziDMwFkNL-;ge3zSRbEGrY06u1d%*h#(ia`7${vdU#UJd?C6kkk1v&>+Hws2jE)n% z3`T;bphN$Bw0QO32Dr5$Rvgtg7uE#tp-1amWgXA!K+#l%6^aL8&j)+qikB_E-si>- zGv5hUCqAc|nx&K$JRCp2SK}#CH!;3Y9qrxqF!R?j>T@ub#yOW)1{d!a%d30h)|rkt z)>u;eJbDJ&l5(KR&z`m7d@1MtFDZMlR#-gHimk$0E4{7X(b**@|3}eT21M0$QJ9pJ zkP@Urx}=%A4gO;ir4}Ywpb`IcW)KJ0u=!jQBVX$46v}#?|i@g;|w!* z&e?md=YeT1WuWaAz#O9cQJvRWoUuTjV)fTyj?YhYE{~Jk8+cio);E@RWuL={G4ky6 z@LN*t#%5v8n*QXq$&VJSG@z`S9>RFJVQ^H-lUdX?3Rjx{pbFm~Zw{9sEmn&w3nqhH zmK!zvjK>9u4y<~aBFt-bpsUHfXw#)e@SNnv6b;UxuMh7l7DX~$r!!I~PfK<$(wmg) zZ{mM{BOrIm5YWnUVzOV|+0&1mm^93SS%$=sN8}H<+Es{Zp8td`y{(v;e+;ha=TFP@ z6`1q34tSRo#!hff@f{;OHgiiQPP04@9|e8(Me59K`xbyi=?c!99E#CDoT#|u7tVWb zh3|Ry+-=`J@VU1M5?^bf#od39m)-?|8#&u~#96#q{Q;_`no!rhFyZm- zkNR4ZlhFg{Vf7KBwL``6XGg$rZ&$q8*OvY8Y=WgN_M&pm3iQi%BF#2SlIb`gTqshf zF#R8(0VB?9%E3r8jKZ+~Y;i6~Mg>|L($yFU=VIPm$Q#U>f?l7_wX)gxp8k zP`madF3Ma84^F94&XqCXk&%YR)22zU=XHs9;^yJq5E<%Ka1GKgkjP`}7$)M)qaBY&Gc6OmAvZjbSg(>%sP6W-Q~Oqv$eZD{3AX z%sXEU65hFp!Yx(S@;(jAkN$(9Zpt#|_G)y0WUWdjEod>fYFM*OmR1*i5-b+W(2~+;ILKkG(Arpo?bkYRMCx0Z_HmGS z&+;HV^>AhtSM*rfsjFx`fzKw5( z-HmFLx-*n{9jg;k`fJhTUKeo==f}j$*s=xciLfc@sWf`dVMzF*BAz%f24kMwkS_b# zmu+9T0_H36d#m?D2=ob}u_Id1^ri+I`E;h3J~ouPOXf(nr&!ZBn?4vjbgEcXchh(O z5M6v{63mh(H%hzpAA*IEr+EB{GZjtj#>g*~Lgu7+X58=r{(U?Q6N+!(sVlEw@efrP z%N{^s`4>!!dW=6Vd9YVj0hIY=wlwT_Hf{=g0G8KXSa7#06%V-%$J)K&!_H)UK3#*f zcW5xhmtO3{)gw^C=lW4S!=wohdeYuyig-L*j^*%kh3I0#j%RDK-r8;AWJL{D*IpgLw4#<(I!ykLBAoIM6W~+}l!G{J6_zxs=BLmQ;ziLlu}s}5kZp}S z1pTwiz&^JaKlW`EPx}I$8tToi8*LQV5BrUumZ{KMXAj7~GYpo`-vp_L7YIXV8;ZYF za&W?^40vI>U-)pM7K^Q_VE5057^s#=txuZK-h&Dx6lwLamH2ftx^U^(o1 z?Lx`-&iS30=|k1uTv=b9D-Mk^V&>UFY|mUD=J-(u?~mFE%krjUZNo1d)OZFqb=<=N zTgve1!gKi3llQJ9Z((ws3O-W13dUzmSZh}pYY=V7X0$g|PyHroToR6o)~)bx)Ej`L zS)h@d0?I0m>=kE`y@f(}YFZ8p8@|Gx`=0FX7huoD$M~d2Aq0nV9c|p3(tqZ*bZ)>| zSgN{KNa<3gi;ooPglZbD=yw$74e!mYP8Wz;y*23R&j>csVI+=hIdI90CV+p-1A`#yxl_tU}CN1Y~lXT$3uulTM`mX*qBVo!Aqx-GTh zUL-4qF}`g437$_oEP`Ic16Z^q32ycL1berPhVvg?SfSQ1@nF;-{1zEZS0cFvbk#fQ zvyJ}jciA3T@l8TYu7%JW+h{tl>+==XXo zp0bS=y1&aZ4bLd*SDXW170RR&MvQ>|N2|mOXD@)coj+yN2hewoW0=1;A0KS+VTF25 zlvEtXo>Uu&{pM;i=cLDyuzOCFvP^+(octObleMu=Xj!RavI|*sU5D9~--VF<{0_Uj zFVnih=tt>M_?oFI&2AV8oAUk0@B3=pwKbj&{??|JYLik!#b|Ohye%rdG-5PpJ9q_L z!9yM)bmLL`sjy+tM zKvP%ojFhOyrVs1_r)g&F-DN&ki;ZEs8l7l~t0-L9)sv}Dm;lXox3KBZcj%qyLwBY$ z!CXC0HveKcQ^>D?Ir+EobI(I!ztWSCJnbW1GJh^APOHY{d(3HRQ3tB-QotTV1OZu^wMt6k%2aH(7&IRBXP=kwRMv6l=YqAUT>V>rv?C5FS4UDWb!gzHX z%GFRt`O&w<7KP2Y#xV=!F4e;%#dCO*bLtcdM!=$f0pQWU7^cX&gL|tX)6DD7CU<^< z7H^)ZkpF@5dJ^U&vl&twE!aX+Yg(VHO_RqsF^Q!J-u*a(eex)(R z9|m!=qapEl8=QJyBnC`)}^R{3U;(ZpImqy)zLa)UJsQ;Y#GT z(uzf`n2q~W4e92b8#uJjH+bV8LeE|``)Bn~rR)#AS@%v=da6^vxsp=xVe?Ub&a8y- zb54OI$&Gyo-UEsI<(X>BG+ew=1_zD$16F7K*?8w~@U-m-)E}+Ib9X(!s4$L zAeKEp2Y9>0k~`Q{fR>LeEJHK1%;5C7eCrk`~-Y_WS_UW(~umB{qoUTCW^1L3X}duOjBw*IuDtanRrqO?D$Z+rl1 zMQ%(rVGJH_)WG$&>v7~zSvuIKCj`e7fO)f!zh+>qpTz)>=G0Pv*-d$%%nt1`R@U{|cUtJ9?OL|k+ zbzN53y&qox*9~)1mB>cJgz@Pw&Zl_hdL@ds8gbWHl{MSt7lu#Ytd#B}o)gSCj+=&e zi1K}EA>X-GIL*DXRwH@1fz|b}Y9mgRHe7)Y(x8 zmrmUlE@?Ll>9gc%rz8}$c`u>(gBoUiSp_Ewa>4Tm?g<@%a}BB^wLyrh+w& z&Qhl1ZavvRtwdV2AdKm+wPkYCbXnmF17X7%4KiBU3pTtlq(3FM!7I-e!-Z?OcfA69 zpY$81->vg6*!Gw2f)~M%(+kCqW4B?)^#>UIxDwVGDM|XI^oIIQMY8GEy_1G7N7%do20>_%)^|9~ZZ!T?Q4SHes|+kud&*FTMXZ3bq!e z!-4M4(AXF8;r9gg?L{POt#ZNU$)hoGrxKg&UxPAf3AE9?6f-R~SpA2CaLS`6+BZGI zvYT8Lzrmg!j&(pqX)qiQGll;~UchmpEXCa_$AKHI1ueOJ?D5|N2QiM z%5QIJhv`c(Pt%f0qt?Q|1sxFGorspnZtV7qXli`nORal$fk(=99A+%AK^Za>B6kk| zj*Dd`@oj?RP$g1XxfOmcGNsVR(;#nbF{k0Zf!t5Vc=EFv^_XG}I~F>#A*C*;@}Lh1 z%Y5KSurKYVpHQ9YFJ?|O5Ibw0VxMm+!tCh=%uLRk+LV*nAs-vG$@QnqOMPk7gKc=X zq#TyY8i3n}OibIY&Ni1?!|~sLLBms)CKp^qo(P~Dza2=kXs)ntJdmbGmZ*PL73Qrr zrL=qJ#D50-EaaSo&xZXHhK^f<>uQsQ30|Y2NS7SeB7GWF^#x3ZEy8_P-(c*I3u2qmdvVfpL);srPl=PFDJOgu7~0&&Q-$kL zvb+p$b=$H>wcFs0O%n))j$k<=1K<97!RHE`OFuDzZCKYWs_VYj%P!HYb`y3uHv$++`g7XBBR4u?K1M4h3$qfq2ZKP67!Gq?_Pf91lk zZ?QD-l%05!@9@;J^=RGkPFxYFOIEYb38#AR#DS(a(7@1&I{vytQvV(>qVgmfs(um9 zMO?x86D!f|U?O{G*u|N$jJf38#fk3e=on*8b&Dhv;no5x(UjWO^5?|kcd(`*j%v~y z`Ru$C-Cg@j6Z5@Tw6YI-bNT?R-sVONR`kRd*H($-et}?5-8S(kHT+CC!m1e zeL5FQSU|-!VXX0QX!z_w)^-=*!6P$z`R^b;%U2}jwd$0m8AG^buduah3by{bjN`bQ zRoCeiwk!IP{=+ADzU-ZJXs`+Mu^I&aH$U($mjS!|YCa4eA4@%coQ788$#`Z)I>d#V z(&`!mRx`?s9h@agNlqDfU#tX$J^FN{J`d^mZ+P)Jl5OAe5Ymh6SZQHDocNV{F1`g) zeX@u{-}|xCHT~GYe}BD~6)Cyo=Oy2>xuI1oLMehYw1I?0sZ^bd|S*!xJ{+FwWrB(F&n9EpzEXw{EO^ znMn7Jl%cQXK5?0~4VmA6fyr7+Vdr%tD)D;*Sv=P`*!K`znAR@7PYR+-)2_kTgS{}4 z?{Ft}9TNAKsIp^E!kAIvCRpfY%bZ8Y(kPqF*wH5s&-~Ym)hx*oPSpEQQ=cuu#Ug<9 zcaLK4S>HelTE$?^YUsVv8gBm?i*3(J1x4#%vbeEIoIC%g*vh*pC3X9CafK=($1IaY+^Sij4o?%3*bUAKDQ24DVc-feY^@kV-mt zfx~F$Bj^WZ>yxrDGQg_nX`d)4`II4p3>*3(!b)Kl%lHRKik@n=BSy& z&}(X7H&Kn9uKNo?{4TFqZA!3P2MeG5!B6|Wd8TJOt{<}mEA+!Dc=TrMRc=EGMj>p? zj>R~1ULGF&7|nKGHD!&8uOK;V9kSwlw3y;AG%G8!VLM&e)Jd0w^H0NRa9cU-b$N`5 z7TyrC&;qR77Gqy?Z|pwlDMs`B`GP6Wz_kIz;T=(sKK?H1Y*G|*)%(+y&91nG_c~&9 z+hN#F6{c#t9djzrV}_bNYqgYPuO__{zH+X3b$0@7dod0N4GN;4o6=yy8cn)?@)hE# z{_MhgM>?|Si;!}^7|SJ!bSm1B7L4NVg2-xNPpBU&DbQno6?I92fBq(=y~jRVzkmvN zqMu&M=w!?)Jn9@q-hXqUeeD-Wi}WLvdS~A8RwdW}bUD9RRk$CjM{8y$a_^N6{W;zT zzFYjlg`KXfsp2SVeQ;x557pU`stgc9T7(g@7oa4d1#}`6*k$hJn?A&Z+D5(vwV&nq z<0NOKm%E92DMm03`1g`$ydKB&pzofBG}D^pPXPymc5M1H6;`;qvgXfxJ~dv4 z*6zOtb@sfgQx?GPX;xuKWHSzyuEhiVUfK9xJq|cfi1#@YzIM-Xv3{^D`J6Ig&Yv&h z)p>l*=voK^I)9;#>m4D!H}_bM^P{>M`b4}7w0n~$+0Oog8Wj<2&mJ3AP#4Cg?2l%} zqCZnhjbuwl`qO;Q2>P=uSj?YwMSMCm5^~@4f${1_;-)*9*sM|m?}QD4dZ7)Aw><}j z9(|ep(`?A&-JE=lRrq@1Vxg7KeHVuJpz3mYGHm-1JZing^!g~#nnz_{uOUi+~ho}O9<#)b1?_nBR|y67pYa_`8=r5kYS z;x??wQ)J6eUl1|`N3uB*%APsOFvaQ}c;JN=v#$;(lo zuOB>wgIBpykHHd_pQ6YbhKXoC$eTTLm;^Duyy0d17dT;(BQaha&$gUYV=oL(D9`zJJ^Q^7y5e?Lo**rws7 z03#|G*aFwxENE2Obm^70mC!N16R-FF3ZL|TVgI}m{NdtDC2E(&B^MLL9#f)ON`r|I zJWz(2txLqgYk4<|Gk;PShfMTCl9YjqjTG6U zud&kTk3jkPjy%iP4q6*`p~ZweVc$OwNRashjo%)E+TFbv8@5j@%u-=L-KPtiGk?J- zRdu?wej9k*?9aRR^TFHZIWQS*c-F@g4ew3Ghq3)B#lVx*KR62id04Z;3O`z0Q6m&D zwPf3WM~XL<3L(^RvqYU|vL==S<|LVs>8`ol7w8gdACg`k|#0!TaR% z!iKtAz!vFa)*UaN=i)o&cZpQAJRUaJTF?NvDOhI}pyl5P)~Ke-ls^{3Pq#oU-q($j z%GO@1sN zXHBD%tFYfWXIR>J9h6?0lUmJWoYg!F(ltHV6ZbNZogho2b9Z3z5j6@bDTdkuNx0bQ znCP+Y7*zC9W1$;tiCJBM$Y~F8`m{xOr++th5pu8bh;jI6ZZ;kS7rLF3z}6Rruvh;a zDR9$waa7!Pu(U~}V{`gI(6^5`bb>e2n^Ot8rn2m(f(Z+BiIOBQ+J}EPa|Ynm6S)29 zNzr>kPZ}SQ#Htq0z$e@hux^Yq5x*a&uMy}>^enM$dm}uUaG^9jCKiHx{MqIqeoQCb zf|+#tk=49D_|~954sw2m)63P^7{P^Ytlb2aLmF|1n+A^pD|}C>IN+M??L}}*X1c;j109-Xcyij`LfB)eD-_s z1>8QYLo@3> z4JY1jE-icg1N-UQO4W|^W7nT_OBby+qOUHUFh1=*UQp!jpK^0{SWO>i=|)oC^_?)E z_Z>p^or+-jANH$`?KXx@K9B3=<4b?P{D%5GJL;!z!5#+MfI+JYRKHZ9rg^UL;Z~%m#dpHxaoXS=atDJ3o`I+P z7Q!9JYz&OxJ<7XAtU=(pMN386y3z(4`|d-{yZbSBIQJf$s0NvjoQJR~5Tj?>(||*} zF_d?84}5)9`q6s>I0o3$l(0xjy{E~X`teyW=OHLhc?ssP%*BquwmcW$L4#i!k=dSf zJgelw4!+^;f|+s5P2PuMf}+WB&J4kQ)IOLV6u``QE_%Er@3DqElGSz#W*t*0UYX>; z{+e;##u-cY$r#v(hnLW7OAfmD6pAPBsL?w6$3pAqWT;CmhKa!nEM<}@#IBNIshxgc zI^i13Ir0b|6*R!imz<^X#v30o0dKzc#ut2kvh?paykFFdzAwLrhYMT9sUfx$IKCRs zPwT)jEfMVR%1+Lo(xZoC5R^_%Q<}5?59D5!qp-qc?7r;G7F=nBIStD}f4c+aR=t$Ca#v>iyK;;wD?q49zcT%=$!oFmE+w!fN|zSes^i)28aOgjS@c;JN*(Wf zY3A1=@nup^D&DytiYxeM;gt(}{HzC=tuBGGf9f<4CCov&5-!Bwfn_r!Y)aN<*rH-C zDlbu@C3%)G>bDnZ4t*gV6qXHlPS>OM3s*8b_#M7q^d`;0(UiO6KE(MhgR~e$c86!i zebWNzM35adO$np1+>N&PkR_Y-xd5sv99icxMdD8==5;y=8H@RN{@U z2==Y_QR!%zMyN7)4|%~};)<3aRId(WUH*G)>o}1C?9;1z?tyt{ha0uy= zWz*KkN`{^9z=hMy>Aj9GX+%0RyASt-;%j?^1L|IEtFtmq;LqZVRwOP~H-_klKiF?3 z@Yzr=*0`w~CjM!{t*6ylbZ#MZ)+D zP4an=3-z_h_)7aXq)cqUyaorBykZ>YWJbcWzaIcpiiFjQSwi830XPIU!sOErux?2| zyb=&hEsuZWN-aCAy_izCM~o&)>$~5Qa33`z2yNTT)+p3AMmuyV{!}xXglSRR2hL0JPsXNG0*eSg508@-;P1Rc z!Y=R>+K#GFow7PRAx#CjOlv67I|+SPKNoCnCPB-`-Jttf0B5x$QlkldY0UfW@MY7rzTeP1hH`*c5{2z%aVa-QXV=bDrNiU*5+zW~+EZ zc$ca#uC@$keaqdk#qTp5+VBhPFGwM7NG;y}P%jo%-hd&(R;>HBNx1y1Q6jz3mnKNL z3&!LoE-31N{?b@hXqx7qkb3~^E&1-Fw*uL8426bo?yx1Fu?rWC=-~1*FlVM0nnxWJ z4OZskYs)rJY>?1>aRnR;`-U&>a|X!!qmVwU9@kzp6a&nn+1kf>@J8VxUfW^E4jWer zb#jRmF>Wl>Nf^W>H=#;Px{x^T3)H^+06s+-aLDO8EUSEgCttpUW4HZT`*9VvJ?k?r z*m(^4>>7_wt{I}zUp|-Y?E*>7O{o3gm%q%I!+6Z!nL$$v&OiGF(%T!vol8~dEdb5D(v^i8utrjaH2X#8fyo*YInJyxK@f=zuJ)Y?0UR# zm3KrII`ob2@tlJoVT^lTY;8UVD%?!^N6%_4hSf_i^@ zvGIMiVT0ckao-mUVH7?FBOPxFcxcOHVCZE^|7E9|Lp6yXAIp-LeTQC9b@Cl0d_cq+rwR7-9Jk4fgkp7j+DlkiudG zy40+T{;GRns9;Nf#*TnT9}?*PbwgqQpD^0mau!nBUFc#_A+%rOyTUvDnO;yR4xEsK zH|Gw(LEkSy)97`Q{<-}i@s2k*4w9$63bvH_r%M?1?Ka%#d@c;;Su_nkd-yeVr8t52 zpr-XTr4#PCg8j=XX@l=>9DGNXrhk`#IhQ6&)Gx)s^<8o7zlL=Xv8F>9zPkpjvVGXZ zW`@0NElBoNEZwf^0uQGo%9HH@+s@2@iP@2K$MKU8zq?F&=$sZa9A-}*CXuY&dLbN$ zFU4(5p=6Yx&;HHhvjOEPF!X{QODlGvUH#SQc)>tCBr&BUP5t5R(`wXRHvt~js|c?j z@p;C*H279>9||uUlMe>bwr@&o&71yoKFyX2_pXBUlpBy$fu&#dc8Eza+<#;s6>Z}u z;sgg{?B70C=>PIB$o+i{h^8X z2al}%BwVf8B{qK3CuJWu)+}2qsQ+sPG3X#HGTn{_Ya`fx1I}#D)~41{cN#X(gw~{{ zi1z2~n2gaBscWMHZ5gdht~DEQL(y@FnDbYBRS`ofT@%IZnd>oIBB8bs1EuC&Glh57 zoALdAf3~A=i#YM+6_j4xiply$Z0g$nEROSe2G-is&{~0|d2YwqPZTH*t%SmlI|LmU z&OF!=%{!=$;=pI$VZOsYoGe!k2EVT0?OXlW{);ifYomvv_2m}OyJ!g)mT+Fe^mHhh zuEPFhZ-Ync;)!wJiN?>Zs9)v9e3GJ=^)4%>Ty_)u+hX8c##EvBaz47h^JbmBYQ^ne zT*=+yIM~)Jv1NU~O2b2<*`?i57!te!kE(019>MEj-{)9nFyju6JJFM!U+m6KjTwUa zGG*v-PeR{Ap5xS|dvMO(D#*8sVQwd`2$$AbQAGux1&7sw`(@5UY2?|t=y4dkqpfmm&0LAEo8EX;Cs+9-l7mk)s z1J=jrkX>UUla6r|X1q_NSZ@P-!?_pr9%}fYwg;X+Jsy$G>yxlP>Jl{kRAC=G_e)0)a$pB^zM*toxAaD}0=wh3 z3LemLc=h-#%I-8`Bm4gc0k8eIv*QrV=`^76dv2m$*KPQneh5cdc~WPRKvL5y=vet0 z-AcBV-nbyZs_`li@0*H?jz+SER)MuOn^Nz$&tUn_i|D2Ak2?M))VgFXTy==TQ#JN9 zILV)#=kvCJjg}02{=;FT=7G_uO!1h;U7=&oZ|RN=h;s|VsPVNuQwzEYN>RV@~UhrcuYJN zatrPrCy-s}$Q_)SIB@cOtQ!*xYp(_{i=qUYdF3K1#<~luUjp@c*Po!tmx`wclb!u4 z@Y8C+rPrRof+cg{u)8_iSgruUDyCF*Z6(IXUBY*2^U-^lJDfYzDIO|OppcA4-1N5> z7+m8V%f6b7e)fR2G(K|*{l&XGF)U>AGchps2G;-Df$IGt$ooyXa5$_>bno#C^Eo@Q z`tyFVGph#Derr+6CtVhJ@_^L!P9SGzZ^1(sEu~R+_6P&R5R{(G6Eml~(WzOJ0DZVa zhrfx9<&PZ)DdA zqi>x+wDVyz=iNuQP4Do9QY3>0DJ)qQ4DbKbr?02af@-HPn`L$xr(fk>=DXJT&&!+r zdNoX_m>NpSx})&Hhjz?uzl)Jq1o71Oz3|(Ndszby-~-p5RN1v3L$rW~zpQ{%^QmH7 z);pAsyo&CrGE_0ajB1APe64pM(A7(zMFULOHsx?JzNkNa;ysijMU1X>SK=(4F1VTS z8Afxb;o<{K7_&5(Wncb3tE@jWwyF6^^nvR^)mLsI=%KhC9mHpNV`VrT)%H!zy>qyxVho0EZ31hY7xfyVh} zRM_VsJW(mf5AG|VR@(sM;!7~wxl-)$z7zgxmEkpQ6JdJBDr}l#NyUQ$a1nQFK0WHe zii2OF{20yz9y|lAHPqOK#qpqczzf!=e8*6JUYRuWyO0+z;_bPCl)}5TjpKM;&B}w$ zUd#gh_zR-iy*Z%tT#*d4_}-$>o^;jK*!;Pi!EENjuB5rLSsVM2?|)`=OZgGp>Gcth zgeueIOIplgrw-KqSt~9}>%o1T-q>qsK8{P(Uy z+%nR{rVCFXd#gW*udd=O&KUZ6#g6Kn{-8&X4?@+{M5do$OUAo3nC*%OSUj=@$H}k8 z{9dJ)w`dz?U)N*H-+Qt0cM4Q9&`&J+<4;;I{b0==b>=Z{t?;4q9UfD(pwSi@qKe@e zkn`rO3O?Ub=)GF#Zj2CB^#gF!+X5*3y9(`l&qW)}rD%P@g+DiLVE%t6z=1Otdxgl+ zTixX_v{xM42-~6VY?XBEEjbuu3dDXR?sW3QhQ2N^l^o6Hyo+GVZvTK2daZb2d%5`EE^GREF$`{W+!A_{8m(Sgi|d`@C{%Rtxw?)@if>JCM3e>Ijrd#ulEqLCvMH?`wzFAnhClm?m^_A=eRuJD>j$@#O0?n@M4X? z+RsK%)RA=<&1}eGeg+%8D$OM!;|twSe91?Z(pTj+_OF;888B68U#A6 z84PKcPr>}*29(juk$dTbDgNMD6pY@2YTYA9JYR%sj_a|mS-S+|qgT+>vr?#<{{#ch z9KhW8VCrhv4{DP)z=PfqY=@b^G@X}g;i8-IHqZsxwJtNuPLeP9$x-am)wzI)-8>NtEk zBAlih#j#a2=H#+M1#K5N;&pz`@;{XZzDn!i&CeHjf5)8Cj!&w%_E`%S>B`f$_%7(4 zpo}N4ox$BJ<*1jz1L0?ncqw13J z?}8yPbTzEqor7oB8S~d&0e|fy$xUe*D0IY9;jhJbf!{Aa?!7JauDp#l>3-~8V*mv# zx2EhddhF2L%`oDW501WXE-1*kvYR}&6sDR$3g6>s?2;^L?&CAqocU4k)3qb#HaqTK zNaVb^eAr!VK{TQXN_`VHiSI&m>GW(}z{2x5MJk25jL)HSEoIC#jz+ zA%9VgsQKO%zXZy0y=>qeJQLjL1^DrN65O^3zD^$~j}b)whXL^ewN zfKP62<4pV0C~{WDPS;fNO!XN!sc*{^JSK@Vw{&o2WVN_#gDo=~y;s_+xC*x};vLe{ zF)X+MM8kFK@XN2w;1z2`ny0GZcFzk^W6i5Dq~#zSY&2qtHGjpIyBx`HxEos@FhP8E zrxbs*t;JDJ2|{;$x@e;)q1$}NpX4q}E8g@mE%-H#bRzX&=d z^TdiLvUK#44O{(PlYQa&$37oZ;Zs)}L`VG-&mT9VamU@n$J_VwOi~}JN=l;bGq$4G z!w8R4Gy3%KhEEv*w7A=VdAOV6Gy@5J9mri5`mH$Cce*s}eF0RcUxE3zd9HrgX@Pa< zu|}R5%=_{c7eD_a6xq%KRX=ySwB#H7EZq-oPgWbtq8@%u6E?LVY+z^ZO(zFCg=;JG)wbupx_jBhCSud(!? zLI)K3rHlT-^}-+PJ+PMN$0Hk>@Va!Ac*r7*4GdQ%6a50%vPOw{&H4+<&(>JohUTBvs6A^frn$dBxgr~OAjJ!0^tt!^Od;<2=*slgx8aUE zGW5^o6=uFsM%VxNj&JTw7~cN@-d@;%9eVF^=-oP8Qs01UHLS?ejr+`psWP_*W1!Ca zhp^^zB6FQK7uuHF^I3Sav?lu!wo5FT({2MM!?OnQYk1!vL&CkwTg7sZ`NG5@I#_wB z4fU>aUz%347F+-cm=>Fa&o_LA$D_`{=B!JcSr077A|DOp^OqG^;SxUD-eOfHpsf#>UJ{dbEC*!)Y_Tt1dcC2%LFzYby1$wi`!P{dOAg9!vO^$G*WmoxU zX^$%Cw)CYFoR{SqU`&Ea9S)N4-!5lkHshQLr5g2vK__Qp%&Ps6aiB%M~ zxQN*$IpXEiSkC%zLY)Hvv>Sj@;<8}P*eLQUekNviHVFT`;@F_b2e>}y32x?RsCD_O z1g0poUK$2AQ#o5FFq#HT$rZ!LEQIA2A=EzBm6;XFlKXfYwzWDBBd$5nOp`bG2LouW z8L(MH2Eg#?k%DRJUF`Y7M{MD<)u1a`nE!AIzMA;9y z{SSgH&p^!9q_0!s*trKEp!H}6#-zT-o5N+}q_ z(1-V54%{da)^F3M>7BbVIj39b+qVy^GDv`pucn9}Tx)Sdt|LVs{*LQrjDwv+&q#`g zS>as^Lw4M3D#V^OWa=wD!Bk6`Jdai5#X1ibeByxk^Pnll3`!(#?=WhZKL@|b4TlBZ zvTUc9DVby(0S9NkU*g|g>n)CW+CL1l*IdJz4_;WG7mVXSI>YWCXJJ&I?LtKeih<)B zQ1!VpJHS6fdP^Oc(syh2>E=0Hx88K_-^O_LR_yB@~(r?n~cco)`Rz9HT$ zDd2y*XW}LEzc@HFfy@=Az{|O|>}anD$>EKzWLRuN`f=?-eaJ<8(rJXAvreG)Qh72v zyA~aO#xUJeDLDMnQPJwCDjR-B7Ua{i#gdVqgqj;R6lvwb)^P64x#QEs@1~sL`S~yg z`ur*aD?RK~LNpO1*W!Z+dWAU-#VmSx+`fXcIM+2yH6U|L%hw&iP+!ajbcSaS_B zjl+bPZ(~7qnl@g#r@)%eh12>z`s}oCn&@zSKlbAxqjN9X#Y`t#Hq5F7wl466342Z1 zv5Y36Rn3j`pM8bEsH9`2gE)1 z%fKPM@&An=%JNz8eNHN;mu*6_UmxY=Z*BDHm0;EhxT=hC^VR73Kb4FD_*z&!X%;*PAUMT9mh|ub$9S@4aQ(q( z%!OU3F!enCeOd#r_arlRo)^3GM}hy-5Ab*68Q`j%@yWB7I3TzQC;T3v@z#@Yws#V| z?p_Si(`G}#`c7QPavrK*fsBwILC3wV@=h#aKf@O>x*y|6#GxyKv~@0|?06iJ4K?M8 zzj?tTu_5SYId}cN5@grg8i;>;9BlP6edK{+_h=2=0`N%of!+_ zb?LZj9!HnH2&TbjFQZpd1f5&H7+XDBd3jMw`XEb`XmyyNjJXyWaD0QQt1n`ei5yw1 zwuW&(%yG#>U%KSdJ9gJuj}H5?@apt36kX>;ru7Q=MgEuZ)Bk6l5hZZzt~;4fWJNpu z)Mzp5&nm0vfpkj@ZW^8mQw&16^(U?avDFu}Aj=P5q4Xwns zS4jMWkBJv6SMK*Crs>uEGjooN3sR;DN5sfQ_O7^@qDXAlhSH%~rd07_4!EXdW3a3S zT~xA7_)IMhC437QkM|(AE!2Vta*T28<1AQiZ9!sky~%R1#UPjRo0B~sL25d@>0xvx zN8$u*ZZJ-m>SPTD3vGy|*GPJItOGfFz6T$~1`tE7zr1Xt3t1e7gBac%MS9{a ziTlJ-ZrYk-V115dn=RSj*iIGR2iD_{rSBPos+RL}zRjO)v!lW^ZKC_B6=t671;MQV zBBK;l=_@5dkFF4-A>n?g@;j8)j6T7cWr@?!YE6_nS_tM(Wa#R@4g9X}Lr^WgfdBmW z4D!d6NmHN^v6&%5oob)pJx^uA$-G4GWqa`&xYO3NjE_9*L#W=Mpja-Hj0l(tCazla z_T8m8d!&GDE;XU2?89MI$WvIIqDC@cKhCN-jY0SS!iE_;m@x$X7@zr>g0_s&f2 zR4XC-D!zmL=VkEOVKz=^ir|*Ntr1#|T7jBJ?!kt!=g=ceiT)Rn$EBULp&E4sc>3ok zvO~jyK6+tG^A*1FRSpkerSdGi+PX|wO5{madLvHE5vQwqJZP21XcF;y7uE*9z}f9Z zoO|a7JULtm{G>jdr|VC=j%h=crz#E2k)@mV1akFdY2KZQnnc9To2K_ag;UErcyCb~ z&U2F;X<1&vd45qLVF@;LeR~BrZ>J>2%dFx%nsacf{#MYKK2kXDvODRpXvT797uI*7 z+>h`WII_~6d~S@PpQbOvgI^>_#}g-7-k%2VcB#=q);YU0brwuclcn=&EO;9gNou8( z$NL(u;g7F1AfeX_`FF2m=&rM&@PKustvkx`fRqsG&j;h%Nm5*C-6VEDU5E3fnV+_A z6kf`5z?FWXWZLJ4e51gUO0a%1oh2uXl=DU{#-dxDRK&8npWw98Zz#I%LyrY|(?6ft z98U5n7(3U)sn^HAQ{oUxO@GRXzlr8!>vd^C#~wU-*Ph_6s2CjWPbzm^(7H(g;a*YRGAC;ti0S*k+7 zT20zlR{{OMHR<-u~f@L3*Ro-^kF`?sZfl0oV}oLt`dE2>Q4KWe!-ch zbI_)nizl5c;o;GH{OqG$7&ClaaIWDTm(o6xA}OMv*siC((EBE!55ahy6Ep@>*-} zfH#{z%vksxYn{w!IO`LMN`J?}?h{~=xq@FFw}yWlA3%3pkD?XPwuD<#j2|3ih)rHI zY>M20XV>1ul*t?syzgXQG$~@TlE+2UJV7I)1D34#B}jZ4M0!~+t3B?w;B|;1nRuj- zdw*RFQ*(B}M*R^qr8k27oNrGak9>kJhz}l0FeP2@SvDkHha9^jNo|(7&~G&nM16xQ z)$Kh5XDo&>=b#LI-4Khpb~R|WqY6~>!-aO-;==(hgFB#$7{>97@U<|@!10yWw` z)D5qmmT{YAYSG@dOW^gykzTua6RyvQz;@js&f@eI(5}>>nXFsg&Dhxpth&#tkKkOLN~z5!pgLx`KVz?>8*A{TiIhPItX zqBW0o@GoKAj%YfGxlGn?wjr5YSMdv!G^zJMI%vh`a3fy3z(5?!t<(?VgSmDzuSSm4 zO^Tv}@n-be5ieMKDH^KcHR-zned>SsD*RUGH1kvm{r7p1~J&Z5k%C3uc>ec=g)~zUQMKuVpCY9|ba= z*;OA}U6F%HW~y}KL|ypMSBEyZ4oaJo!D#z8NaF43oNazY@Axw?bw0|wu|4fN&2T>X zusS?Dat}{^IL%qkdx_J3#jtryHvF6$Ns86u$i7BRQp2;HjgA{C4M|}5CV%!m{exZ+ z%7kaR`kaEhP;@NaYx9yTuvxxT*fZlH-d!S16gIN1P5MU=GxCLdgk|ZImw?0AmpEAZ z5_b!(`pNqc%#vh`D7O%z#oqD$=Xdc(XVi0@Y=3q2H|xMy#A8b5ak%wChfZrW zq@wkDRGWDy=SR3v6=(L2WSnIhra*N2nhKRzr3UtnX2e$N1H^|kz**fge0%jj zd?Ou896m+zhJnv8D62~N{8AO(IXsN5y1!xAPC$R&(Bso9OJJ!>33z826aKytEh&Es z2ew8**;HM+c)SboyI@bVw#%`*;|p+_6-4dUO+}e8Bgq>(OESB`iGL%v4NJQPOk8f10@eEN%yDyT$c1~yjWvQ z)5d)UL&F9>UYc>H7M%e_yJ$S%J{x=4_s370beLG@OV>qJqXy&Wo0wYTvU~%s|3ESL z1@U0?+MnuaN@2pfYw*}Klr(7=lfxrDV9dZj(EV0~X(q?umZ~MmySG4a@8Ku#Z}2CH zC!WL|+w8Ncd=gN?9)=^Lu z^`iS%=X2K!Ovsn-gx(w%K+c~n!PSE*r2VfJrthvr5%0TT8ZJdFzM7E1CgigiLn7w= z9<2NjhleA5Y53GQvXI<_t?zt@)%($SvgZ%KdFE(r%ylQO{nEtjb1CSz+yE7SYnr+~ z0~Ja$K}-D>9QN+QjK^cKXznjQ*3p*geDffaQ!a5o9xLP6`&;18VNq0>wG``^%YNg< z8W2?2)6mf`uxL#qo*8dKUu}s-lfTdKrOjA8woHtRs$Y$lM5i-Uf)_pUhk25hx51+w zr_ubQI9+CI5Bsj!(!NbQ;cScviP`)R3|8F+tE2lt=a4e3$yNqAw)D z=2{*qE)A#oja#6m?-Gn%;7!jobwi(t67d_7$5pd*$ha@ge367QO?@8*%|ArR9-T&T zI`9}j?lPe!v3u~Gm?!;k>NRS9?8deOlH^omA1|$|Mwjhf0~f!<;%UZ5wDM;B-V=n* zI5LdUg@gu3D3c>&3H^7a72}fj!tY|{)2basqWNVNONEzt{jF_+63ZYG&t~B{cdz34 zk@;BhtBtFX_oUl?7V?g#T2OD?Agt*MAhyb4l<1A15|jRbiyY&>EZD@d?^_wef$`T_ z?sG;{95vMsCnEKy;py%KC|#F{SB>65pXy%DO~Q*DX6M4kV-;D4t^oLHjNA3hfXsN? z3>%IWBWiu-43${ae8VT~J|a!9z=d4TZbWHQNf=ZshiwK07#Oo2rs{X{F=9dFt>sB! z()mY12XX}#T8)BPSgIp=Fg!LYyNv1bzI_Fwze!WqozpAtanYc8B^@>`c1FctpSZa<*?rkeon9F9A$9R-7_iik=E@bq z!R4t~9l49YVX_&vPLQFE1KQZI!I7p_M-ap48+_LmTiWzt5VnQt!t$;tT(xNyK6|A= zg$lp%pRNdRa#)|*Kg?u&R3Exx(>g4Uab!NLQ2KGQ1@E$`0lG!a@VjmjEMt9y<&krN zD5m1z0Tn#Z>__sah7-$9X}WojfXGjD$M^CMIZ<9Q!%csAX+OtDw z+RAp)@gC%_fj@OzR0W*|rsPvWPKAVoHtF&TqsO5RwB-Y!%WNhzF13XOi(-D>4tJvc zd>8AJi_qOT%bk&yjE%m>mQPss{91*;Rh#^=yn- z+z67}qsYA~M>>=3SF7@OVv<8Gri`gTwZl2^BWxC~7b;NcWFwkzN(ZYh@8+8?6k)4h zEdBM)4XtOq$EKeG{$eJ}z_P6B$&sU}Ncuw-Nz)^P@du$zL6<&X--ONYq9Dyhi4=A) zRv7NYix&u)$ofyi7i|guN1vSjRRiWt_Gs_c3 zR{ur5X^ilM&rxi=qE6w+Mog9+L4#L>V^7Lo96neK2`4n!-_MCC*|0mR^cR?GT8t9w zJ|ex>00|1aAa=uKLB|D_+xSun?IsQ2vimrkX-5lYzX8g6Y12FFLdc*%g&bL*2i6mh zLG{mcG)ZmTvszEc z&TD63c~u7rt~1~K$sN!tBZGX91KpRd1z()y_=%Zr9%}@ zE?~3Jq9|H@LyazVWscJ&r_dsh$5$;HG`Dv<#wVDQE!Eb<*D?SzW^0finijm=k`?gn zfe%fWU549sBy*oXGF-mo02cMw(9t^rseXegm;J;Q7>S1ue6WRA_^wWFGlr(J=WUdZ zR-}=khA7Udkzk)+oLW^NsaTc6C4^`KUzG^25;U>ocLR6*MJ@kN#Gh=AGawJf8sn!V z6>ORoMa(*%!^%aj^!^TOve!5h16r!N#B6Pvtk8`CWx<$sUY^7*W6l_74A=H?adG1cUwU21*wzPAUW!%Xn^h``f!npI3$`h;Yam!{zuC{&gEM% zT)QS{DV%04;bsuV{p&g+p!14XcVxfr=Ljq#wZYvAUwNaDu5<$AV`qQ7rg(lECe ze$(e{(BY=x>vM#vACn=s)n9uXC9ZdDUIgs7^j-ydQ2s!^mlc;n_(+4Fn+=Y&wi_nxo*} zp&fYoLNPzYCvtkd58%bk!(7^18_;YE#MZCj#3ePC;}<(Yiu(cBC%+QJdmIU41k!O8 z<1yH3yg>J&8M!*+u(y$>=psobiUAa%rt1~h3vdQ!CT+J*v5livisbMl$HqZ_y z^*OxBXAK}3GwLNLPCbtlGX}FeY)WvWfp@j(N5vR=YLhm-q^>{>`g3@{rTXN6`)Wac z@kn^1*@{c%--X}PWvI)-FK|o!6|Nc=h(F~xc0M+O2D1_LK;9l~c^E{l$j4AS%fBc& zD-6dURUnqf^|`hBA@uLa7uYc}fOxdJk^R$DX#TGAFkyiDgz~4HdTi9yi_G- z$strK(~Ejvjl{WgOv&7`7@8;;!o|Bs;J}w={t)9G-_>{l+RtZzL7p1inwADVKY?7I z#5%(ge~^{x;M*2ynuI@j%fWq|_J%6dyEvAUDYb^L5&+iQG>Svg|=Sm^4{qyvIB4a)cO~r(4pj=!+m%^9zl$9`a??nP|oG{ync_ z=_Zx$P-}h=f5zm(QUg=mn`}T!oFhW> zth*s~i#`o_aRT#5a`NqpivH&T;oL`26;hok}<@7y^*V1k-88o$_%N^9L1o0E$o2WT;JQ?Wx<J@mT(S(la%mmvjx!8lu z2eWn`>g^D6&(ze>VO=6WxH=f7oty%vW~IZqcbc@YNs--;hG5rpDI%Cq3r;H5%=fKI z($9GE%98SQu7?r%A$0M6t)xSb{WKw~XNW>@?MOP$LI&oA>=B;4n9T3;_TgHZ55WHA zdHBKL9o~6SjuX0uwwRXLLsg745B3Fxy)ja`MG&v~hn$8`W!gdS}?d&<+2`%e6(q*ZO zWz&LbLWnz6Toj4ZU(Mp|PXxh6vu1RiY(}j9OvGMUFEa1OdzjzNyyAymV&fWP;<7Lg z^Rr8Nnb{81Rf{o2jUPetOH-=7=CUATmpT13(v2<{6GT#9=U~w!X(|%G1XfLmBa0Jf z!Q)r#d+u~J`B0E4v}e1*^3W&}GKYiOQ%_K)z@Ls z1R1gOD{q!}8edO0rB^;=)jT!~jHfbm!R>q}$u_AB0 zMls&aJrHU91GcqeFtAyT1PbrNPmhbxuWL*j=V-urKXalm){7>e>VW-^ALBaDZMbbg zEZxaCTS<#zNRNF6_xqSU=}t8u{?l%N-1iIIfy!M_c;^z{sN0NV>3xWiImg9SJi?=o z?TM9VA2)uJKH*OIp?32ybWe#9MZ3uH)uIFNKN1^8?bD_+CJsHjUuSBA#H)8XZy^9!kF6^`S=hw_xTqGb*~^ z9=H2oH#|Ehpz+DQ@JwbZF4I;7?cfSQ=FMU*!_I~-OR^=8C0Jhn;t&)SKf$x>K4X2d z5~)dYBqO$oLX*!}tP9J*`81mDw$vhab&=pMe-L_%+Q7Ga1{Ow3kt3-=WW~f-8t__- z9B;9wUnQ*R$DNDePR1EOvoyi5y^Pu6IC22)N4fkfM1TArnVqFnkUiQXe ze(6K~j~hp4a!WilNVU>Ws4P2(j$joUtf=gV*{B%uzBTU&|%w{7XA=qPP+{WwVVx=ewev>Hy0j$CtqN z7xKive<$4IPT{C5Q{owqSUPbAm~3CfJ6h%nZhGY7cySHJMrgv^d^>L0nldsR3xJKv0cp*fWUW;AIm7Z(?k#COtj-ViV@k0!M`FJuC$xZC6vxQ$g zMV?fyX@d2myr~|JpxjkG+V1$4%S->u%U#GuWj(bsiFXJ&3WRJ55xc2yZ4?!0%}(Fmea$mrSX{_Y)T29q}F5ChIqMqkSH?u)J$S|&kcF3&$($}L zqIUT=s^$lf5r3{@u$wL1*j)?O_D--*znhzJEgQ`Z%0Q_n9fmt~>Dw_aC|hPh#czkw zI5k7qA0|tEr|RID2Uk!%znU|9qC-|@nGt0V#x%%1hBrbi&DF;R)Rbj*pL&wV`jXfwoHAC`i8%#BnCZD(oqMv%cEOx=cyvJNVx&;(@n5<-4JeZ@}yTE zZb0i87pf8J2C?j2>eV4er+A5=ja3ge3rleP&}@)nj)9*_EJN6O2*L(#LS|^Iux8p7 z)VtY_7gANoOtV_}x*>#o3}yX%ks@4YG9Tp`A0hg_EnRac3B`ZP(C$-GpyH7Ry{oLr zvfWpCg*SS*+1c7V@3$&kyQha0+)r2GlXdX5@F55@mOyYJ`0^E>Nw zI-Te4Zfk*F^%CfH)B^Xf+Qipu7Wfpp6VAX8SIL`DYsN-$sMe&p`^50iS22>j%YjC< zQQQ@A0R~nlaJBO8bjPfN=y|&qB8nWT*@U#pgPN}(So;9~tWS!{rB}d6)e>B>?<6;d ztAk&-6IR=>?D;a5wXId4H^1iaVt1M_^ZH1#e$WKQxQ!$t6=y+}b$(hNWnk;9y=ZvU zo0_E?(B(@eaboj#zvI^_SqY8 z`4&mS<=KXKnK8!f63tNmvH_j?SeYzcqCn5f7?7xuYIL#ael+mXqf)M{|NX~~$Q+g< zt$8xs+41RcSjU%KpDBi89fg&isSR8g9ugjob0d$!pL=_XGREI8b#9}^H(dJlDhv*o z0seUkQ~t`6-1>6R(eVPMRl{tS6hL%VhtnT&?hu*49P|zae5I)e70Fd(&BBZRH`z?E-d&QY?!64H{kK_)|H_i~UZ}ws7=pXpi*_Mmyc!Xih zxl=lK60iM00dZmeO90SQ!MaFuQ>c;&I+u@9t8j;deAXGjUBZ=fp zMd;ds_~xrL4ePdN{+}8xw_195!oCnLeM<2jBNfsbuWI!sz8CyN{In+reAQ zXseDLoJzk3l6P5F&-EA<|2Yo{Y=*f%J%Y3f)o~*K4Yy`~!~W(&AUmT%P*rdhlKR4_ zfwm>JuRVowf*hzg8_uonk*8yFTxsa(1Mt-R9%?1Co$U)}fy_*On%cD&ztVCr_!CMK zbV6uEuYhzt3#DIl{b`po`^>4w&F3QILoaOCzt@~wj1i&K~@S20I8XURUkXQDUp z>xt&}HGhJIGmc}z`7C~EL>k0dM^L|=vRvh?W4z%wKcetXm6S}Jf%k{6@biuR_{<*G zv7{^UfR``4Xpg4*BLUr~XwZfW;`F|;DJ@eDC1TASJpJ?&QtsH0g_PxF8b^@amJ|G}mI}x& z2p~sisDWW`J$~FCLmXGH2TMMhb(uuq#BLWHF~b2i*DGxN;X8xc~jW|Q5?H7 z7)^YYiA|*zJ$%xO;^lhy=ov-}H=h&w{<;EHCq&7mr}E?rbBI3au%KCIOi9w$A{b}8 zO}OBp5!qYzlsj3s5I)8F(`|~9SXU*)ouvZmxMUDd%t*zSlzsf!I6Ja=uRaOUW#28{ z4#aWJ1nAFRiaz~s!OhwXblr@oail3VuAB{%r(eYhzq=tVJeDjs{=$0?Sh24vns za|m`X;|*Ne;0g1*HO~7AxykO_s85sO#!^2n(moVw%y;4)mhau7Jc@afPN2NTC%*Nn z4T*hgPM_7;ke4b0!n3mMnG)}S)POju;NJ%uHw4gCdn4d+&0mYf z2B^@>MQq;TC`;~zTN8^oIeh)7hfC@mMRxs(BBk-Cu=_cMkEv~NL?fDLNXOEv9+5e0j&7pnX`krRa;zFmfop2#;Elvg#=4bbE-p=?9%n^ACw|3+86mX!k_Y{aw&aSQB9)s*(CI)b ztlRH_UkVL~&U^`KS}8{}r`#3}y~%;Nt1`otY{UeTQMJU_IeZJP2zBT;Wg;ge9LA1i=bI=1>7EK4YFrx zKRW!U05$it+21Y~Gnd?h%594D%rg=4lF^S92|E*n8&QIOw@@1|$6(>6(yXd^wrr z%e(TqEA5t`YZC^)6yHNu!6GPk$>l05Smx|&3ttj!P38xf5V@RUXs`SX1?_HRca$If zSCI`HUlv03s`p^BGMENAE70q!Qz7h;KlZ-;2wjWEz?ZrQe2qst&NY7~_#&2wcCvTC zLM;a$^qFyY_d28Um|6VG+!WZz{7=iqAL56vjRWJEQ8b%Pp_k|S_LGX8LEj(daw44w#SRZ`^794Zr znqCU1?5rlJH28@YI;Q-hkW0{z9g8Er1dt0aUgBSsJUFB3L}#}9!F3y;!uG9D-XVf{ zEMH{pnt}J!7cqkb3qB#i7-74%&mLakp!RvKL8`v2HbBSitN3G3w~ON|Iw)Q+il>}khkX=*dj1@F5Z$&iBuZ8qtJa>bLp zntdRhAd||qr`Ge;=Z?Z)4i9s);>e_j>LlE}8z!>+WOTJE{&oHeQNs;_=~tBT`IrE* zS#={cF6OA)3KjZH)>?4jnl~5q-+gS_T*x^URIzv74#9@%__Vd`%y|b=jtTF|Gvjdr1bOA1Tj-U$~)`C%=2g?QZa;9uQ_XuOb!B3Ms zyi|kdW}3oGjR^87-<%xP@}Q=MtZO(volkH$=)Kh2fO?3`hY1JP@p;~cr2CE$oqSjh zbq~FTP|=%MeeM>@ZHmH!=?^$LLs4?GM3np3SAmzk1ypCtOIXdG(MJuHpful^bD1JW zRx+>L3`u2bJS_^2`j2By4CYuq(1TjXb;zVLJ4_uc!|WW6Oup?*-ZKZ-$i*)7rd1qH z7|%FEPlj>kwk-a*6l3VUi6RXX%Hg6+49O1qDb!Az2iq3SMem|#ToL~eMhzE&^{^Zr z)0d9XLm|R8b4A$xpAQ)rAx?HQh2sIW^Z0yPB8*rjPwv0h!jOfbWaOzou4^i^ZQU;dl_hZ>Ob{6420@}Vo_s%!4MfoPbo$ZocZAZh> zmySgC{#EZF_Su?o*dE>wiO|Iddtqwq5HIuOJy*RXjwZuxw7n!MNE?u*ZjrY1+&2jl z_|%XTiCK}wchu;h;}vWfnwpQim@bp%he~R^g_=eemD0TzoiW1yYN*K;1H+iBgJ4tgXoJh3+)eC7cA!H4|vZ zo<+@R<{0BN4%h8*BK|tJ!SCvLkVrp>T9*`w`34pGN{Vq_3PVAtzL}pF>OsmTX`49G%eA@EHZ4s&t7J)|vc%}80!=#pLk4_1VN2hL_>n?dj3=Mv@#WL}=oAZ%OwWv= z3X!J7Z=(p2h#`FI$cHfVz)C>7N_ZB4{Z$fCiq!=Bjn2(KbJGf)Es^Fa?MvpKq#P*Z#AaK=smIW&1K5XzJ zfpgVp(N}Bg7_fuu?bRgDY6+EJITxQ8=2wcs5d?tRWL zwm-z3I5-by3S+5L@MvhIx?tI(NEIii@>X6Fl*rV1PuZNybw^&}&xU4U5@Xnj%qQTs zKaBjA-pxEWDG=;(n&n7x zs{pKc{>0dmd>He&bc@7M`(!(OW*!XOtw7@4Q-=Tc)x$VhcQQv+f>iAtMSI7o)0@6m zabxHwII5Kk^Vc~r7Fab-F+9Y2)A!)^DmS`Ds7UxYIp#)Uu7WKUc;lTj`SSC;_p#DE zXg?xO!d=~n1gU3Ph^?@Co(o-B_7a{-?1rkj*LaDKZIEbO1mFAo=q<+C9lzL(#IKzK zOOst-8J~~kZHI+@UTL6x-+`_vx`n$7`#_ZW*oM0&AX&lAGEX?NBuJ0UKB`H_J?ZBT z7n*VMtMef3{X#zGVmmBdc}1WcYDKHn?db)^1h5)-EVSET2dS&I`A~o6FmaV4+A4BX z?%!VUE7c=KJEMqr$qAU7*MJTRdtevXlgjtbC<#8k0Dd?WRA#(H>)ZUyIG@q{Ydt zJO!$8q7@cQmqZ_1LSpm#@mPZf>6Ue(TD<`@`kW+rFYiZYuzO7A4^8lU-w%$=XSAS9 zo(|qximPpZ!;0z@)`u4%`{(TE2bP8s)y6xpC~@jH9t=@)puPOv#>HRq|=cC^DXU zWAn%FT*;1KuzkS`_*AcgrPDmfiMm)4Vl7P;t~|=0-F^`iHRNc9#d~<4H5U(06s2NI zf8z$m;mJ z_Th@%>U8>QBRbvFkj#QObXFe+I=?>hew+g}PZ`1zNjXnP-Is@$O{YlY1yGA4PXf^+p$U z8=+jr>C*jrpBaDeENxrb&Mqbl?{-53zu44Cj zq2l*&YM)|26=aJmcUUB&>T?g+Zlp%n8C~Wkb^5^mxYPXm6UH=3VI&zX9zkTL7DE0% z7nuF;A$Or?6*P{GBwuA8;IPt7+?;Mq99n?R_vwczBQFc@=1&5h@DGA{Ta!TUjvKvK zmc}izWqXCf!?^U)aX6oENJcvwqQ}EgRAc2;_#Grov0a*chi(tif@&e37K(f%BUHU^TXN$dprwHY4X)+PpP5%1#c%#(ycFf*vdLF>l)tOkCE-Ee)xLNH&vNX>3N~?~j1fUs7Sumzg+Lwv(^Xb0Bf) zLj3z$gU0T%CwmMn=)aPS{9X0wIAPd}n7qos?B>h7#92#Pz2Yw_%y@zWe>||jbO&w< zHHOcZqS0F>mYml4hgH=paqFF}5Y%3cWsgKati>6mYR=*0$>vn#NfiCiU_;uxVyN+= zF!K4094TztiSzojK;gfKSdyejO5BeLYS#Rpuki!AYd*o1lQFd9Mi^ZxXvDXYlrdYF zZzIi`j))N<8+LAiCdD>BFQI`Se)I=^9Cd-i3Ey$n-#Gd}?l=0U4)J$4ba6h6Y4O#d zn-^>?0iR-B>TWJcUwqjD4{8{5BUP4IUwQ$PoBj%{7G2~{T|i!FFcyba>5$hgJvdoz z6y<+~zzC~sJmeHg%d|FNqQ+V8dLK=`bG$sN8W8@&p(O7MJgbSMzl*E*(n<4R%u{#hGg1Jn>OA<=_zG`)3xHx*KQay@xw&&Q@bWbi zf<0EWa0zq5ydFjWri$=A1G<8pb{qwlEqK&*2lk4olgv}Cko4fQV9hs6)(z69l6yo* za{vn39F+u$nNzgVA7!yRP&q0-CtA6S&~j} zLtQ1*hn|D_GsUQ#?9AJQUBgL>J*nT~8E|1pgfu0(Q}=b^P%wQ1e3SB^KP$DEt8J`s zP+FFZ`gIpSp7y5`PsNghGV)~mNPq>be>!1$0#uIkrVV2Q$*Qy?@Y2YP1`K|{tpemMN%B?gDA=?f#k{-6z?(fkH(Uq#3xW1T@%13@JDh@##>mracU6gb z&PcMx^AtMI_=BU8B#8FeMD$vo50O$I;iyO7_m$*tHl}FfNg#%o@o1 zWkHnwOM(Zt9LU83uh8$k6}^(8P2*p>k?GIHsapx-g6`f2d4(g0;~{@)zWWurB&op- z*=hVQt6s32w1vNt?ndTZRHaEaM%8Yp8y7Ri2xiGDZmUYaN! znq0;eRGCwuiwvo$aRn)j9{$T6Niyq`22lt(#~W$6(o?Gh{O*-zxOO({t=u>zP(39| z>VqYTSG^c09#CfPCPk3R_u!WmVz($6e)?YKUQ|+S zYoCuV$M>SMktp?Ae;=f))4|yPFK=J>5iYY_mG)v=D%qTX%k!4u2!|?+NOvL|?*~xV z9S>3W)i)6FIl^mn9zr&XB1s{-WZu4h?s@exOx3PJO^E>7=Hg3coO0yyGhcD$xZF#_ z!G@^CC==CXTBO0wm5R(@x%9+gF0e<3hTc5GizPckWEW$lER>`nZ<=85$>S)p%z~`U z(ElGtXBm~%*0o`}8)*dT?httPoOFwTdc^MTZb1|aEU*;}5Ca4YMPSc`Vu08JVt}n! zhzJ7qx8Coc;|#|+j5BoYwdTC<>td4E4Ui!h%RDEa0`q87$%6OSDD#voyg%a&TFs}( zuT58rLP%(seB`_h%PxyP&z89;`g&N zwQu^s^dC!hGBN8?3Wo8n&{E$_xO&P%fg z#?tJX)?s>Uro`T>X2A^e05+F~3Qr~}!qTD)@cUHj~;xTMs~ONfzD11)~m{bE%=v2t=+tvYNJGF1}fo|{)byTmkJrFB z&Mvs2d65iGmiud7=KkFdXQrg7fp?_0ma9a)1?hS3Z}a4PyD6?Ffhs(5X7)-r~Txb&Vb%veR=jFoZl>U7w3@e{PH zIzy7)YPjYD_pf|UWNUZYu}_+uH}N2nWjNcz%v@`9_f*6QazWT{@d9D>9ZM|c_xX!$ z*Cdy1+iBp=AY8HJbj7yw`fM1_QH>wL`+xmP1P_Hcyf&pqc=j}!s*ib+W#ek$ZKWJK zoA<)*qnE{mpB_wYqdWfViNMPlGJ@p|H!OMf7s^beDDZ9|y8W{g?+qDGGlo8*wx#KS zR()aUuA4M(3$kyk+$x51mayY7AGH7EEzFRfDRfm~;lOK+2>Lqlgj9Qa0+z4eR3sxMFAU(FBkXZU+k z>}LRy@9yl*;b_)W&`4$v28k9i&tN|sfKJDL_-m8{_BVJ)E9XgQ!i@xW|Cb{Ek7{2}hZL#R8IIUd-S_VdJ?`Ca0X=Os% zsy=MrcRAMl!;j`f@1vG*4|ZgQ3VuqjAv@0haep))t_|=59UEtyr^=afhhx|syN~p3 zJV|D($^=VUCHA0i47B{(MVX@$a9${9Zr&e5=~Mlf_xfUT3JgZoo>I6Tb^yAgI)(W> z!=Pb!0en9BGBX!9{_l#z5otV!Ic^L2H7J9&8ut#jb3VPoA}Xqm!O*K_c-1Kwm(DlB zjb*#VQ5UX=oepOp?p6?v%H0b^=k9^t%U|LXt7r<|a#7OBbD9$#+o0T;ag;B!6kank z+Ow%Q+pDn~Dl58$FAn^BJFOZloVD2$&S8VGAavV^-A{^+omz0x?x<`CrgK8Mi(_UyXs4WQP~@J4C@$mMJSeV-2TU;9sRd31z# zNe1y=jXQh1UIRyj^E|M2FZ?#WTa@tJKPaq z?v9r%IS(~Bnre4+)7HeRAp12~JQny5e)*1oCNT_WJM)g2Nd{FN^kJ_I;_$^vmJRB)Rn#Te?v#c-4QO>X`;GxZ=7*1TNq{44~LByLS=P2Z0^Z*P{{k6 zjUK0ARvz!i4_glNa@;^GH6B~*tugB7a|mP+taV%@Mojg>4_=n6SoRU!@!_%q}g%!f1lzgyVmNE-%E7jj>G6{@pkaX~(J^_@B*e!Q?x=vd{6hCJ7K z$t@NGj~=7--n(ha{tQtVeT|Zqx5KH27FfM!E2!D1V8rbKRJ(00yc*-l_Wz0kWtR}V zt+5Z}-O^!4wuu99z1{a2nk~FJqptG0N*#+xH@fK%8-&*^Rrg>@Ns*%s& z=<&&*X(7R7er00FuK-#)Z?5R9nF(Fmf8eE>6r;61SZEfQE`TK`Rs-E$7bmQ8ASWB3-qyF{06vjnztb}8u9 zU4wP0r67Fu;XEw`jPLt~LcU~G6j<7G2FVBUS{&!KUUoyLKeL4B9xp5yQ%EPqB~h8o zFYXW26RuJq9$I3;b_5+4pD@1voOnfYTqX)G9atl-;+fd#C8w$Wh8~OHy@dmnmq_jL zzKZBL6ISv$N$9EkDO}q4Mab&Kgr&LNk`0wsOwH;xCI9n~G#4adiH8vmeb7b9BmYvw zB58KUMTI5ab;8%Ly96nkN^OR2!a}!y&{AN)ipzXyVP2=Cr)pG%eEBo+UKqctXNlC) zCts}0mt`k-gDP*-OYqdHAj2eGHXy5+mQ@dkPwhJ+oqck1}@m7&IV`v0}e^P8G?;Pdk{-D*VX881cHynHT9;T&vut<{*nvrM5tOW<= zA(c<>v(F0dL)=+TjzU@A&#S33DT8jD<~!kHJ$Nx}D3zY8q~2=vFt+RkXjDhw{Aq?* zCwpAXYkmSrwo#&cmB8>`818>aaM0QSqgQOCg|p01%6S3R4yh%D%^_?@LzJ*0=?@mSG+}#%Df_JW3@-CN-r>?nwk72{EZlF#U9Xj1{@GlbPaI_~T~= z^&PR;U8lu{*L@@#Urlysya_wKW+xPB`SCN|oGsO{WUA*w`95S6jq2%(b5B+Z--nyC z;GlVw-t0l3brHH}NWdfcv!Jsmku7-bL}fh+;<8(_sO4p`U_YMGVEsgTJTZv5ME!>M z8&ybkk1gJRdy!^N4-n)6u1V5w^$2UK%vtjjJ4o_1U~edzcT+bAv+Lv0X)X7(9pIgP z2xI#-qnLQnhCQnsEv~-ZO55ggW>KL9>$J@YsEu*Q-py*vG=Ru?+h1~BItwg&Uc%=& zw?Xz`2EE=Bg+rgLBkz#I6kqTfOu1`G<|6OI@N@O|DlZn>DGf(Ytb>RFvf%bPmK7YZ zW_d$C!hwacywCOm6gushmWLC&S7(QwD*q~0Y`zun$#fia8UEldja4dU3<>(1P<8i;{6c8TY9^$|=m zUyH~1Tl~8aj{A6z;iDuT_jlM}I-H`z_Ul0DOK?DOj5PSXw#M(*UI?92Gbu?u9nO!s z2XSLQiwZiMp?X~vXng=U=X)0thxWzh&VH0Kb*6-h1+45z#6zPvAN*u9{q46C=H0m} zWC>wnd(v(AHKmHS4bnxn%@u^GbXwecAC`Wyr4wli_+2l6t#5V1LmJ#K;oJtbJMIX} zAHRilM_k2_MS!nj0>v$YGa6)`hC_cplVUe=Huqk^|L?|%WmOLBsiFfOH{D5p!bH(` z#3icJSI0y9Zh>^{HcC*P4w@_F*|>^MvHxoTo%!#nPzh*s=mE$#vcx6zCivWBnt1cN zHWsMYQr1Hy_9L3X(>+NrAiuL>!lKtgTak<1|!Oy@S<>1P_h$$KZ$V zthBj59-X_Ja=-7V-@47Dbp0lLC|N4LxTDG(4%*P$JWn=fO>ee2(wTi99e|ncU%>Bi z6j~Z8fb@nvG|Ng22c5Si4bHHvSTRievg`rPORR*olLN`FN5F1*8(fs*j>G0iSS8;x zI$n2Y=NCuOQ+)*{qnb%krXJMoF2kyM=JAO8SonI?8>fym#}|41ux3Xzx-Z=eZ&Iu= z=xqVG_-VlBm-%38W!%+da&NV;D)&7^EB9d>+)WOe z{`fv?sF=9kg#}*{m~71fJ_A@u=C+n>@?~GvyY+%(*V=9H-;-?6R#`5tdr?X&9W2@J zo)r*-*QkDr6U1l4V?}^6n?3R#2u89jzHFdy;<_HDIJ&a%c%Daz3L(F$fADSSd!aBf z3;eY+guk~{nY8^kh)%df4?aJmPAyL{=9aaXGS!`wxR*6~xdq;ye;QDzri!_5p?v%d zp*^4PZX%!3nyLfvFFHWH;A$?8$|!^{{T&026zH&}Z{=}XvL>s(`V&5!9S9>e@6qpb zJ4AzdP7w6W74LiI(~$fQDoW{wQD)p@q1O#3N=DO%ycg6I9ET2*w+NfLFMLjvFBI=> zpwfAVg+Cj=fZg*bbXu~C7LBckqTCby%D4bVxa+{ZGY+^{&jV*|S7ygEWWnyt5YS$C z1Rmx}vsd@6vAV<@;i@;=HMWsvhR=kf8;})btbzQt1EQ>@87P-1U|x@mu>Npw!KG!Q zu)dMA9xlui^)qz^tALGA?-odt6@pok&NoW++`(D!`WRxYg@dc)u=@E}$}3q3FSpBp z-(Q{?{HOpvW3+Jx94CW2CRiKE&uWt%$o&zEXLp$5^KEME%|0m{M`vm32Yoht)0*-+ ztuP@j#hDooO^1cfs?43UTg^l&f4evfWRx3|uM2>tZ&eWOQVE9-$gudD zb0n*IjK*3%CdZx2=tsC6d;cns)plJDs5dAQZ!~h&-^^cdIo%$w?F_~hfu|*vF34w1 z(d=K8A)XAAVy%)OR`jD1Lesxd|BymhGyDcQN%-F9nhhI}ISJn7Z-yd2Y4%dlowa)Q z!fUgvS$oBC_|xrylZ+=(ug$I~mtlpqApz`klN?QWQ3Rd_I_!{13~l`4z$_bbz?|>= zbjGUU#d-R|#2h*Npz4kKzV>JxA4g9ga2_V#7v?T5r{tNYxc*HSB_wN+%*;$OJbOXR zW3qT|$2jrK&mF>f#}(xYP1NRj@_(^&vC#f2-BmMUCU3g| z<>WcLvjE=A%ct^(hv55#Yakok4vSM0neFL#Htf+U-ZeQ*vq#zByw5dsCzNwf+|AIC zoS0khD^xb^EM)`_0F6aPY-_6mz3J-@zlW-lY|TY+-fAh_>a&T)roV^I;{|l;nL6Ha zu*4S&3t`rRR-jV_FtaRzh97if0|tDAfGz#~7gX8e?0pBIXiE`H?K_!5#hvhqyA?+A zv+XeN=i}Q-x~{Vo<}FqdHP#gTb^#jeRp?YOj0`aoqiQ4#fM$HwZ5XbU0{74#KXyy{%l?Ib{b^e7wvw_a%9}Oq;XQX9PaJYY9bIf2$+e2-Vq(uh?O+FX zAmOqk-DiU66ndJprnG?3+HMHjT?s3i2EeqxKHw)#UjyP&wyqq z0mf@7NB+HDy)7(MsY~@aK)Ty~AT&SBPdXDUiz4qjZXa6pQG`VlW^`XNm=6hX- zwlG`TJ^dRQe%~#;Jlq4Z_Q@2I%smWe0$A)44>n8F3x`cTCYfQimlhthX0N?p(Y$D5 z>O4~d&Lgux*G&t(b=2U(0vY;;>TJexHx}?QlYV=xxat~JT=C-+Z!P6ze6;7 zX&|c{b)6*rcGCzx3){dPm_m~;2x=aJ(xnD?aEpJp)8E2*+hufrg9nU8{!V;&P;mLr zfkkcC!=xSc^vB;0TW1tQzgiE}JhGS^TSIYFLko;l|4#c=>tSP|CrkCdOtM!%{5DMk zEnB_WLK!}bmp%nSDf2)x+Xl-oYM{*9C&HYDmvDH7B0RVk#R`Xx5S(&cu%@3Atp5>= zZ+ujl;?of9Dtksd`bV-Woz6`9cO%5*jHcNWenErHXHfqn!+M$Cq}AuKCJHaiHaxbW+<6)iPrEl{l#cm_G!m5 z+8^&%;r($3oov&@l`_|1$eZ5y^1dUS@6tibxds@*S-H*p=N6LUG3bT^3;g($_8&h- z#~;;`tX~-{j95iahdqRG_B*Ic>L4ZPpCk9lcj$G}Brr9ugXq5o_(0x?U3>Mv4q_jk z3(O_GfAjtGW^19MQ3EaU(iGmE=lQ8u2PFpjwoGZC6>VFEcs%MJS&chNC}oQ)O^rpt zAQIQV3uf8=Utn#6p3oZ0c^pC7aKrs3eMs^ba$OWacHnIaD;Y?ApKSz@cTs$!bE$lH zB5o)Mz(K%j%XAli!g#MRcv&T->%*i7eYR*tw;A4*T4LJ+OU8p}jo7ZXe>i|9-*xrP}Op6r%%^ zE|TAK2{Q}sgk<4^xI8$oVrEzz&R87+F-H0jI_j`sFL7a8f4qfYw`TJ0eUavkNEWWV zm@MX0ZKF4bt%bZlt3U|Wrk?yi^vCNNu*ijUDftbF0Wz?BoFbFkA7j2o#JXI!}YAVc#5OBNy zczQ5d7GZf0j0>QBd_mmgnBSFbgoh2Sghc4UuFkkELNVq9$5lEd?9b#QNL z@YyZ?8Xv=+FSKWK6x%^cS_MXK*PxWI!MK+Wz%Q*Q(DRdMX}@2P$7h%a9HxSq<683U zsfLYR<#5ZCb8{B%htz?G;iGyCettY0=1eoja(96#GF{e|VvD{}s!Sm|2_C#&DlS?g zV2mUiy5GNnv)O102lmgCCu7E9my_rhuM{>hKbUeWd4~JMm@bY7%u=W9kY&B+I z?;0}OLTi?_KY;GN^I@j$yl**WrTC^r0ViGYg4;YR=3KajQaAQtLza&fzIAUFXMTE4 zyY{%Vz=x}OKJ6vUi*vzujXki_LmA3seb|_(euzAuTeH)j^{rB48r-LGXi@}|jwV_> z-WUy>>R|Rf862h*gAd;cP?Da2BZW{LEalA-&GNx%(h))LhApX%w!@*fqtW+DfBfZT z0)pO6xTy`0}4-Nt-?$W^z+ zybjJQ8yU@tG%i6w*&boZ$yglxt(k&OuLV4|t|G+*am;mo*RD^*suEx3^*k2jZmQz0 z(_5e_@f(?U#(~2x8bur zxU;rsyI=;CXKa8Sm_}I+F(_y82g*8CaemWL!Rwk1yZ#_njP5Tj9=hs-3VYR2r745t zOS6TPg(cvzW`k(bFa)Z9xrkDkK~S6&g(eOTysxM)#*eP2oLm`p+BsKjwDV#k(jURa zC|%Y|-U0tk$f&r=4A_*a{nR{LU~S8Hz>4*KL8&Jaq-O;{@xUOq_&*t@dtDtpv<2oa z<^MmqD{0PK1%CrP*!CoSoLcphOwZ|HADJ+EU!aB64;Aqse_zT6TH+s+JpC7dz0YCAkul}1V2P4cj-frbiOOj;p6L+yrq`jj{DL~-{l%?DPJ2QD)u>J`w;&V~A5m^#xJt?+n2C#tz7O1v?b2rKw zDyHsh6gB2W)0z)Pm^!2sT%KGItNv5QjulSgnO;Z8rmHt|n0y5Og}Afu014$k(T8T) zEu1`9DqQdzUcT@~u^8z8nudI9pth=H8fZF>_~1XOXItN-+%hCBTf!1D=Laj z4!%RXrum>^Q8eDMTtrXPn?Vx#Mm*{qhHrlD22akg({GAp^A&XQsbW7q1LWDsYlV;+ zvjLI~cfgR9SIYWX@ho?!0R`EW?wI?31{E|6${l)Q&l@u0aY=WGeLp0{|HHzBF@5!bwMcSSR3xvV& zqkft=Gg%G~edF2prs2ZUQY$tqK?eQ&U%|kU=@lvy2EwRSNuccXnV#jQ3#;7%*qq>E z@wa&dKO?=^{wHm8tA4&1d&7tAt<_^^CKr;YbXj?E;|0)3840h$w}Ik2Q*0j-!Ir%8 zrDI2a!=GkZT$6M`++cw72b}=C0@G(`~AjpI+yW0!Xt6)g-5hojP%sq-N`w^3Akd_{adJ%L?TQKOw}J=o1rlWE^93wFb|0fN^k!smPCl8OmtnB1{M z)HvZs&*OVxyw6_o-mn1@oz|-`gJ-j2%9lVxyBnL5{RTez8Zqs;I*e^sz~hZIbSSZb z23)-&4tIM*4}8LyxmXN&%c5{yh#&Oc^tYn(+k1Frkp**hsS46JxQmPX1h!?|gxq`+ z3Lk$)cq2J2uKt`A(9-KBYzp~BwaFo3>j_^`F>Jc@u%`{+I)yiz_asI}8d6A+|tp*p&1XIOD*tMW;t}Jc#~VC5@uaECk_f1Fr&~B z;OSUYC$Vkd0t)BKt4;GTAu{G@BZ&~ql3Ht6D_Mk#jp!({Q%cn3DQb~+uJ z635bOUcg?{2+Y{O7e?gX4hZ|NH|eRZpn_Sx?B1vWR8#j3mZSx;3vIloRU$#hRyp2( zmI3dH0c^HPe`Z^Jez}$|*l*l>8Emn(Y2j?{Fm$cKWw142{&EMwZPtvtL z0q}Z-22AIUOzR$S@sh{=>Lu1Qf)pK8VxJ47YL$fHTrj@dJKj+K-0DR@E zfp3ml;>U(|m==5#98%xYJ|o_HdZEImt@vs5B8ae%B)3HAPgpRbGgbcfx`@ z4$S1`Q+TXx!tAp;DoDc||3u4T;B5uWcC*K1uR?PA>d%IK8wL@aUHVrijlwxAAT?$s zg?1Oxo3*^7zYN&5;ru^~3i8owvc%LxbZs7}yR$hX!!w%7$zVfL5 z0ocdJ9%??jfo3UhB3;cIQk?e;p7-j-Mh5~b`}P}resWe-(=+k6ixQff1cKqeLgEh= zF{O~tk)6EQY72K(dnyM1=Yt-nzYjdesA5CzCzwFM&MY;7K+hMF7{_cl@@giuxN%?V zITh}9X@Y1&OXyq|iM`I5pj5~NL2j5WbM2i?Gq0wLkv)Op=BGC);b9ZVEC^<6lyum| z;kGR2Tm&=pc0j3JdTik{XKZS6WHz&msATYbkaji3w9Ew7Kj9pu4A@HfN=K;PXFOrI z6pTW1Q7@!7D&liacO=vX+fTL#-o6xjamG;n+^D;A~~(6XkV;(vQ{#hW%i z#Wh!hK(g@>xR2Gr#zBv$U(816YnVxLd$sV_`hMv0*#=!*-LWRw7{-j%6*X|IU>|SI zJyn7bu%m-&J|yC)CqHT8cOO<{{D789$G{BLpRhC{1fL%gz^=)VY5hG0RoVw=POBZe zxHk!`oA!yd+xwyWy^?WUJo;yp0!NW7fI4=wQ@x%{bB-!Jt(Icpie=AalI$_F9UuJ)Ehv3b#Givos z!teQS;nGF!^h+~fKCX8v`W}g7j#B4oZdN#JlvklKTN{KKNBBv*_kqad(&4L|48AuQ zfN3Y^iuKU}tjRk8x9thT-Mi%RwjmxGI(wc9WG)JL%NQ zvhs;GZ01H^+|cn9N_Q3t6#+pQRuc+e{puiNtSfFhQA7blUO|;#Fy<(zv6D7;XwkH_ zH0z`jzH<3Td(&MoEY$|b`Kh46Y0k1;)=gLL>5=0RV=;F0abeQd*KlBfDjJ<(bn+Hw z45oQ9+chy5wtELXj<6&Xoni<*F;mbxvH(8WWYEly#c;uEDy$e0Mm?IoIO>=R2B;4d zepvxzDsdN1>RNhJ>W#&Z6PW2dzNjUfX&S=kyB*v?eh8$G zeyZ@@qm0#&ju`SRm=(&bqMEN7Y{DYML9clhZLuLsvr=WBH$M=DK67PB<5mExyiqav zfDGv3E85NfeivLA4Bq?Kh(qdY#Xh`~Ibwz*p0t<43WIz)XRpEjuyitPIU)w%4-oyn zub=@F&(NLR68QSwlYLmyhmof*e935lqV$h2{oo&(HO7zDWsISmIhnNjxCtJr(`RNp zC)HBw$VL?J0)w$YZnZl=Ilz)_4;V>Lv*l>m1Wz_}t)paXwJke#PnkuEwrILF1b)Ai zWf8rvg4~))8do?7j59Aox|S(U!dYU^wp3vz_r%wIYooHK{aEhuA7bivdA9F-C+%PM zlG>>j<_}awrLhIjWS+#k)2krO%LKpAQeq>vMln79&ezK`V1wWH#R%DZ)a!gO4cw;4 zonTYoeyt+PpVY_hEvrSThs9JkNR_!9dM`fKSx>vYK0vqrdzx^Ya{}|W(v>SGK($1N zb=FM}D$+az{;#?q} zopOshnzY&ew_SW@c!l~a&ZC|KPLwsX3cd#eQ%j9Op9!M``8g#Nx!^wBw&gJG zVFR2l_hr3?J21PIy6i<&wq(%57x0oZWLI!5s1)Z_Dh}I7fnZ9L^@;Sp#bMztWfrQI zOcu?>Ftn9BV+VQR^*S?53Up%MT)c6%yCcI&Zy{LN3GA@~q@W{y;P&A1EalAU)8@x{JJ;RlKUVcUF7}$&1 zK8a@1VQt{IQUM+m9;FN^dA32~i7|)mMTak^skKi6o6VUKFZ%8T)pNz;f&W!NcbdE#X|) zQPw-eR}=VtXjiTH>C|RAF+B++f5O4Jpg$Wn%7Mvk^W&zfu(G6LB-A~@HeEt z5NFvAt9@QmocTfFlA;P~xd)PY!xK8VBv79H-wcxZPgl^k$kDSQ@a>#_sHo8hD|8t^|;KCjF)7hh!chWJa9K$~aqw!GtBk0^DV zXr&Fq2g$QHy}RkBb}ntvohLks;Qb@DzBu35jZKO>3x#RdAo#c{swFIduE6Us`St@C z)byInPVv6~++ZAa${(-4Tq!16O$6u#>tmW@hXXAEyzsH-t^X&X1Uj^130!%tJ zjrz?}VZ<4>vM+8>8}vfkb8aN_4hKm`a}>(%`#f z&&!Tj`8PvY5WWD`^UQQ)c9fw0#uPR#c0h+3=#+y~{O3LM<2p&7=!-cvDX?T}BbhAzMj4sW<=(-=>F&i)wqkrBrt0a#?Fuj4 zo@0e?N6nX%-{OBRq_)7lu-Cx1sBF}laFM4>$R}HxW%YB0>CwNSLN^rM?V_9%VWLRwC#T&>~nwIt=$eTsh|C3@WSsMkMklH> zW1B1raf`w^fAlcud?jp)R$;sSQz2_bEi}ITM~iEC?q}s0*nQVR$St;KX4^Prp+XO{ z*0`}p_D>;h@1}~>f3;MoqRAdzIp8m|yoIE54RB?)F5T}x4g43Gpmwh(6sT6}-_>sd z4CdZ}7abC2Gcg)ZDclyOHFHObcM#4^2*V-T6XCVHhnQ!00u+T6bYnnY@n)GJwj37e ze0M)uZ2bfB9Bt5N<{esZErSJxAE;RdCs_3TN?BTZXqsS4ez#u;=h`lbD+b1~ z=PJ|T-u7B@3Q<6*f+}bj76d9S{@SZ{*%X+`4=E9ww5lf&|@m?$Dw^g19^MDrYuEOwC-=h9XfRs@-Tqu+Sp=4 z{xul5QJ*cFFU7X-&cebHAJ*NY22Y1)LKXuMhn)gLyC4RaLPo9u}&x?T>C?6qbgYFEll_wS@W zK?lf{V$phRET1oj;MMpJSTWKBU(ESQ`+nOB*Q%me=#N6m-pq3+k$fI5TR>I4m0AA3 zTc9gHfPKuWAp5T>c;g)3<6pi6ALEzO_KokvQ3ZUy@V1-+DrMO|!4Lfk7E4TDTcKBK z70r!bMTG~9@lw$yVT+s(mD@f8yCI3J=096j-aiN(XZYfXJ$g8IIME+HZPr}&5L$9i z(XsY_kZW{>z6{<6ei6FDCK-3um>7)P4z$Af#XHIQd=T?gjKNzYRpHR98d^F6abiLq zOqpqoe~;|v{f`7u_m(Rg_q>L3X3T|o3Y;srUx$T_?~TW8G;pd8=jN`PM$Kvl7>o{3 zE3P1pO-3h zrTQ?{lv+x&jG?x1@;Is`m$pt$gVMW+5Hi6R@ADOx>TM0I4_3s?o<#PzNgXTILs;v1 z?gM&$gDzgLgMRwv%*scPwRlCt=cjVaSIz)S9vPsLH}BrQ^}|0y?MOLR0r%#6W9mL# zG+vZW^=JN61iHB~Gl?ylwf`fT+1wWw{*dxMIIx$luR;BW0^5^aFUrqzWq+k_i+9h- zLcxWL@Y7R@J^c0#TyzIiJXBO+k=2Iymiw{1HucA7-ldDJ7nsX0Yy7og1F5~{{~!E* zLHb5Mx0o?ROu4Ve>hfin@g-?o_O*mERolg)(eK49z1}QhIA_U4tf8*)G0j>ZC5;*Bd}sUq2Yrs`Gb@$exN%1a)~MQG z*fUu?eqaX#MikS(Cjl@-UyDgUQp1XsGBjcC8_Mk!iS>K>;dDPM?6rh5g1;uPJfD8J z^6gE^chP2dGd!7fX&gKH$HDBm_~u#&bLP2twE_PT zaHmFrn!=bZ2IsQ@U`3& zRlQpvZI?61wuR85(!bF4M+!@FN$hg+XLBaL70&8vq6zQxq}=Qe3iX_$$$1#AYt7i6 z;XZ)ohPZ3c4N&bPP5bY3z=i5`+S{E@u8Iomn1dB-h8RY(+WEfe7z#4-GP>}MIqaPL4p#MvW#6?uaZF7Jv)seEf?19jdF(dlO$D>Gk9D;F zu>odwYO_8UQP^|41rl@}U|Q3YfalXUa*kFWJ=U#;z<-?AJe>uGlNytP8{>%|P+TVOK10 zQb+%<+TggjKl_jti+{h^VO?!7J{$5A5}l`0zquL+BR&Y{KcAw;)Q>bZ=NG6}Ize%n z1JhV^l!|iW*onvs5$||&Js!22{FZ~PNCll~|kqfkJ*)7>n+##CuiNpD29^&r0Z!q{?6alh)JhJFCHS`(+_E{2J8Pt1(TF z5UdbF&@(%Txpox_OILZJ!fk%uMSCz?e$LM5t4~>bmGR;yXI8(Rzwfhk=wtA3s6MqB zW}LLb=WG57)!jB!VR4w6IrHvkhZehec{y~(z8Ciw^ZC9~1XKLtB{9D1!;I>_K=mJA z?D+Z)jGLy>(7Ps>mt75p?WSxr_gk4ub&%-n$KvWu@jsg=Y`xnc4EC%P-=8pLQ`ii)dOQ!-zYp)zmBZSp?<;(7ULxOdQh2CeCxQAjP|xQXP0k8_ zu)KrL9<>tH3$iI+K8DS+IYFnV`a$yeQs||V1^qmp!@xfM*-!UulATDRifT7xCM82s zT!GNGNEOzMX2^4!>rYidkC z>xO8r@RIZ;e7#5Banf1b< z-3Iu&gJ_|@9Lhx)G5?EaD09CN3lDw{R@rheRxbqpx1Uim4riIltrZ1c8N#V0e9zJA zGOTGh2NA>SDl*2_f@HK3{vEB3HjbQ2JU*Juc)OPp)ygH|z5kF`@^!E(+eI(4t?_Wf z68dAbQLIWtylJ>n{FNlnqPg=>UndYNtUto=BSG8^Tm)Wa55=3BU1aoB9)s#-DdBg2 z+SIWMrg&|I2bCRQ8*3u`t1)8YK@z1cHCTbME3T`&3J)i%z`;vfBpdokGo2wm6qCG7 z%&Z-Q)&^B}dgD0Sf5?~VT1_RT%xHE_Rf*OW^pI`tW*DH?LLaT1*%jYg zqteS~l}Jue!!ca;YG8OeFwr-2m}jFQ)DztBQR>iuX=B zXv;exM%&@W9XlKotbmJ*=80K-dtjHN7X*!b2c@5!@Vj;nNXt*6fu-E@* z8Oh@YuS@XMdkd}hJ_>7^CQ#TM3EUZyC+Oci1}!~??EC7i;82xXap3$1c&Dm?w@xdRGN^<=;JrXrSIkTqmuU0v`n-*pr$S7597o$i{nEn`}Vln^nAPL{8Rs|8a)?QJF% zu28@gzx{FfcM12qeiE!%BD%>)y3MX}-e za@xEnU;H7hjLfb@)aw_(>X$pS_%$v<$nh4aw|p$7Yixp*203CZ=U5*za;EoxswlkK z1!4_$!-}3*_WV{9bC`Wy@Hp)S-*pVoIn)}w_wae%*;-nE+X+waEQF(%&QVw0bI{@M zT(2xwHZal>*IKRQ-Xs(DiN6`V_Fjc#ZCM;B@6I|MS|R_Af@E}D6ATNg7Chv(((PYz zIHGBzSU1NXhh505XetQD!E6FG&yYGDtGEyPQD5NN(kXbhW>;K3DkMz=gUDr9E&-?v8fiym-kcz%C zSw>HQng9GGkvD2^qtP2&SU*b4T-ktu89Skjubl>+z5{Ky9)tUmH+aD2H;xV(hV8pr zFnh`gI5{PprmO7`x7_E>DN7y530{pqCRpI~6~Bb+HbclL$P+I=_<^cMg*a%4vS=X= zfL8kkEcp~fw+^1ilb?0jzoJNS%V=fVZ;=O$CP6IU!$wHD&e^}dJZGn}M%X)SJv8Qr zLgXAjd|-b?_@nv+Z-3bjPsW5-lxcYvFdcqlXK{&7vKbE9kT4NOe+r^ z2a7>GpWJ1``j405&AGGi^2WO&x}Ln6d7^w|IBhT>O^lNX;8J!bASu3p8H_ zhWFg4T3>m)G8Y`Qn@GTzEkI%rF`ERLy86a+TD2kb`o|q9>Ez#Zgk5gQ`Fw|7KP$ESnTX2 ze!F%@Xz5x3PdWz(!RZ^oj_?0x-S0xHxXX~m=QrNJ;@LqpRk*ufk9A%3W9Rt4aj{J; zTx(5WcZS5XN~n_No;!$lcpvhd`X`W`^$h2<@XYj?BVz8d$N2S3GM?o8idFC43;l-e zK-)KNY`on7%K4EEJ@T7yaq1t~Q&k~cpQpvPZ}y9;0UQd(!wm6as=eO7mF`^aW%OTI|INspi%D%^W7EovU zMTZMtF}&|2n(+) ztH&7i3T&Lt?)>~VL5 zMMJ$wp6_95_a{V-?ZbC5zmTcbc4D2ZKqGVB>I`|u9&18Q(GMG_nwinfGP~_dh zP}Y<8g{Qa4vave{i#eHoTwvC>j#xaHn=9q9zK7p zl32aqURMi6c09WrmT0fU(l_N8eJ>c!+|`Gde^qhs*)34p@exk-vu9skC8LT0qY3vJ z^S&)hS0{Ul#;duz?~%PQ{u{sRf9Cz~cnvm_=S_wggi`3%Ny7f90#xjs2+PZ!p{vXh z@mOFUcohpY)}}XeQTi>G|KNK`MaCXoH)RboRhZ@wMOwb+v1mM(z~#ku=~{;v-0tSi zLQlBhhta{Dm2eW3m+VLD11gN&yn$+|YtT5B&lNQGz}b!SaPBSs?wWZ}IF-Y*{Q1H3 zVn!tOn7ZRzl?D<9w21+vSpR|rAX!^PKE?&F7GeNxckyhiT0PpXS&Z%gV0 z4w?gp3HH+04)xd}AsClB8K*XFMuYTCxIH(7z3Vb$si!^Jz9SZB*T~rKZe=p-n*!N~ zvQSRJkOuFJWtzQZ*~+vgXb7H(+S`7CeuW+NJF*snoNVZ%PET^2^95ZTm%`MiA$-?3 z9A>20(=g2-(qL1dDBv;r*{X}*@sqe_=0~vUaUY!z-b7y`H}>Ia5Uu)S!a4`}(rWP& z>^Yt(Mmy{lcYCVS&&%%2Z;K*6?{i6n_Q$y7{SO?`DguwG;offuOBMP2!dRQ_uO11r z<|vZv7cErykt{}5_|b))Yrulfs+SzEMYq4hu;q#lC#4c{vGK&c2j-HI6j1&kByIW^7n-1lhhkf%6XsQs2+#@!SLjnsiNq^^1<-`<2?L z-S-5%ckM@$CYjPxT8&{ZZN-ef8q6ixhUxL$S%+&6sl&-e*rjz6kDcg)GpBnI`yq#> zs;h8@Ik0T7qOMJiXvpXG-^RqVH=IGy9U{l~GQ)A{Tb|)_xQ(NE zzo#XcAa$ZM%bj5kW$(B@ZoD2HR6T%8OZ?f`uctxLBU6&G+?wsG;@q!=mMm~c82fHg zfem(xV7sO_eQ8K!sxlw3BJU7Ja=y)tSb^MDYte-1$Fc9QwW#&C3A?*8VM^bAqI8)R z4ZrJvE!=7NcAkVesl>5E_lza>nmtIi$ccsco);rN{#Lec-wFGx2bvnrP5r zL0TJigyOLoI9B&Fj@euWs}st^urXip_jfmTDk6-0yOQzQ_FK4A{XML4XY}7#9jZ+% zhb`}Op!6tbYWTdsn9=gE-gyJK&f)B!oL}OEtHx~Ae+=((PTk894s6!+VAM9V2l;P$ zWU}o$=x7?Tl2#YoU^x+MoLwmG{AO{UNrd2*w@`>#CQr)o@$_VeEk$Xov6N>eVB>oi zCVZ$9l6*o~oi%4a%-IDEoO3ce*qcRgUwi!IC|2jMMrT9#52>XRvM#I!`R~E(=%K$5 zp>G7OOBk`;3&+#~Ba-flpjxv$2rN>f-F>p~;Q&MUFKUmFyL~pQZ4AYv zSq=O?&>@D8s7C+3q3rUF-lYDC^IHbRvSAOFq3uNjX>w*as*d%*W}a`{{M4VWbMMl? zbk5&h7{-3}a$&zsm07DnH~gxQr(N+cu~g$GcbIz%<0Z$@tXChnG2M)P?1-l_J6l#& zVu)(9_u|pxo@9PA2lm}573a;mgrk0(1mzor;){S-ny~L5SRQ`_s~&H`))`yDt?y@? zQJeyeOXuO_0s5@WSdEQ;-j}W0p9OPoIib}kL-y92XNGO$C}!<5cq4}3&h3O}q%%;O z5X<_VwxNBzuePE`DEqdy69?b&VCi#P{WnsU_$cEf+}RVy2JUJX7a2YSr=(A!K}ZN4 zJsJi>{^|>-%O1kQSNmX1@+3Uu6+_)F>hwFt84A>u*uIB}>@d89Tm4#K!Tj4;ymuiU zkv}Z-{2_qvKPC9Uv;U8i<2h3}343`3vvn=;tm)P!T-BvZ3vZ1QB3#el`?1!H>N_|C z-G>@$wb{##B@lSuhmHnIC6NV&Fv_$YF4+}gj(3W9uj{lRd9(>X&{Z6LV>SL_HgNsZ z1auoa9BzJF3~S%kf^pkA(O0emlIkW3{bkKTV>b5=^gM_g^;J>l;y*ai;mUs5e8)LM z-Pxk`OU1X#7|xpi8bq@yxbO+>>B>{WTUkOhD_o zfoL(a7j1CTfR;N()GH66!E_#Enfi&kE8hyMVnaD!$%)LPLRoxqvgn+&32hFeRQz3EK?eXJfZ_H6|EpJ;~f~>xBvsz=W@Ot zKYvsDu@{+|^mAD+7Or#~9{H!?eghrm^hOzEn(834l>aQA<$#WnDW#9g2fZEb-18d1 zPW>$tG-?==-91wbi=GGzw=}`SKLMz*Ig;HSk|17`=gzW(&$wGxytr=gaqK-~4CLpp zgMxl*AkfQ>t#W?{rQgqSkMA$(>ltz6yP<>gHZSvYG(+NL{ujRf@MbeM6rpjCCRmbX z%|>l`4_bCMOg-9(J($Y5M%vn>>}|!Cy)73NXXHbl>)C!obf&`_6GP~e`yNM^JQUAO z?8MeVcLeQVElI-xHA=aE1^4l@Z>uzsNu9#jjV*F)%?uAV?RNy5vMZ8}$hD_H{!QMW zt%M%4bHJgeFTXpRquZeZ9CLmR9-Ezj{l1q#%ybvFX~<5|P2(Y)4r>=3y?ZmdzhC;q z#|+pIbce)IG4}m#7$Y4NEdTDY2&lrC#8pSpmK_wmTZ5u*l`PE7tI{w=I-Vem6FoqY-T0ioqiE&Pdyf|KXPPS zN1KYHE*&(Y`s7wwW!0 zzhtgYLv9V?h)Svo=g+Y$2WJ3pxZ{UpFzE5zc>^|{vWjgG* zSAZH7r}5o=GqUqs#yRfcqDCOk*P4)^vA+u<&qTAe&QHK;Oe=7%Hk|+I#HNH^!0~F? z*znDm9yE7x>rk9%cJ(T1XLGOJsbF^I(sxnWDo+TX`ULm?R-^Sc15j`5c_`HMghl6o zndyd-d0@R*`c08mW+}t6YbKm&5X1fpZH06BUbN!G1gQR70jVDa_D4Gm7et;0Cq7d? z_UQ|#{aP=4&^H0se&2+5#y5l&Pj^7^TwNIIdlc2rL{K^I5Y2xdz-fK;Si7t`&zgJD z&%`&lqw6Zqyy?=xNGHyS1r~Am0yHns7W$r9ikBlF3mew0Hm%bU0&a=nT*d(!oySfKHcqPO*rin3)Rlp?w#3E-sd?f2eb#F3+ zDt;eWJaPjp3w{J!_Jos}fejU&6PWs76ZjL$XCIZpsL0QfH1ZP0$`}PriX5|3FGgK8<@{ z#^S;$ld=CxM!)i^(a*C6)iW%a?vOZkZKWpp|Q0@15@Cz`eF0l-2 z98N-c&NrcTr7FV_Q{hIQ1G^LBM%#W?U|C-kHfe7J3-p(z-WNw>&0JZgAn~IunRe{i zl#AtixVwDQ#PxXEc`#&_bkWJmt&aA zO+S`b2e^LD3v3w}1j`ysn6GXGn=sCVtX7-TGY=!mUJ-%#PX+ybALFN;OVIb*$b*1{-skrO% zVl=jO#^!1Il*L`As-{PU9pXV;hOsnYd@Q~V0zADymHYSH`R=_KXY7lD4b}p6u6qpI z-^%!h_t9bbF-HH~ z{RpPxl<1O>CjJ+q3L#P9?D$tdRy2GDT)Q153KcxVweBiJ?`nhZ3KsPFY&P7JTCmY8 zQ-zXJADrquOfp&DijAAC%Ea`k$TMX^`66xh{q}lTB`$!hrfPIqphLww?ty9scf@7p z;Kh<5sN1T`dN*9aMu*A5$AdbQq3uNpb^$cj$e!Kt9|XfZb?IKG9F3V`O)ogV<4&(~ zI3hJ+-nRw|Z?0<7rt^-HHzRiA(@b6JHBVrFrJC%vY$o`BOA}9NJCb6S1Xb+|aL%G| zD9JyJcUO!N%UtTk*DL)YZYcLu-AzH^$2`c?-zJ#7Z^14%OR|sU7@GNSv8DG{Fxb6C z)OPi!v0tvB+pGw-zh42?Zaoh>_sxTk)r&xTSP)yVkkKp8m-z3230!p(*p=BK^!z_% zHt($iJo;`=9y1=|{J8fRD9F=1U&I-szXU`<7~BiRt_Tg$*v!HVXNn@UKG9$k~JQ3O0(H>ZVB-&m4(;n;xOR^rR4=!g(nBn$a^Zlog$h zWpW?p!ny&yxWAg8h1@qWK<)|_#R*Kt@V->Lwh*EYMN^5U7U>@{q(Nmxuu|2Mz7*cY zGR||Jr29pghd+mFy79I#V?2?!=@U+oabI| z-qHcn;z7c^4O8K2q#nyY>reR;JXntljJ0o*Ve+f1(fq2NaB$LJJk0qbxs%Uh`7h3k z-t zk|`l<%XN2}GsctI99sZZkL2kWtPC%iJEk;XB=+aH&e3cO1Tj4e~2^h*MjG! zhcI*eHuT)_0SY^8s5bK#cqluQio6u7JiD>kTSa(~dl}T!yM)0Onc%IR4JWIknRwWT zzE_#>3{Mt*G2V#o$^3pAwh6~(Dp5yg6DV2trU{*#lQ{Ps9{zhp^72Xro>J;VYMQR3 z!2JPxd&V;?yo9?>)xeDTJ9$Si2~3~$XCWsZ;o2`@)F`7*HM>KY$#6B+OFfZ-hlRn= zjxr&9yc|vWwib)L-iU7!&f=**R-}>aMkUrdIQg?KxgNHsgGF0~OFd&@sp!HI-MNQ7 z>ZMS=GKNjLuTAO?zGA%vzpsx-6%1zs+i^IUmb4e5@K` zVGe9{S|;4wxExQeC=rxRq~OH*qDaqBq1yqM?3gcBzupYrw>p!1I7qQ8M?<^1aqixU& zp=J10EFS1cal3w_%`#JRSILEUHkYJZImgzh+L0EynNd;PMtnV%cT48R;nCrq?3RWt zJ^H*8jVCpNB|rOay)a@Kod4U$9w9lQ0Gh8jP!!L`k8??&Wcx5SP(Fa2Gu2?4TAI`= z>AIk9q(?TcQ8Z$J6PA`6v%K%FaD2p7jOP3LjUJV#_~RSr?1eJXtxWLv))zmu*)iW| z#xVYw6`K9>Vq2U>!Rzt0vowbnnXT5mh zK(chDl@T0jsKV90J*fTkct~4Rjmo?4N<6xLKv(A}3gxaCqJ-I{a|=at&fWM~Joy&mlBNIjA@y939+8?n|+ckoM<9joczm+iFf zCEEIEab5%9yrgkxk+&2MXRAY;;~zA*`8{ zLR9x-jH^C}YHr#%;f^djP+-Siq#lF(xXCzAWdH^#8I$_JUQ*4PwYceT3J%%ajJN;s z|8sIX@K2xnu;X7F8=w)$mo+2zY_mKwqEcn{X~^FBl`n%&^oZh%*` z3BUKL(AoNS$Qpb?Fsrkr#491pY*ikPf-mCi_fO!eQZ}Enc`~&T&dlYv1x*jH1OvVI zI3atRWc`I2FnH$7{7Zsq8_!=fuN(?zOX^X+bw5_~Z}hgE+D!61oPKD!)4IYakX9FC z!pS}?&9Ogh9H|3-b5+<4$wvq~&>*fIvjba8!bwi29%D+K=)KKPY5mAL&<$EAIvq4% z`IDyMyanAt;59v%Jo=gBT!kUMPUD@-E2*G zo%6i?pVoOpdC@z(xw01rO?^#PcM0n($6g!4sa&WI@?J&`+^7VZ#xIirAq|) zAB^XrbXZ<-sBpA-Ea<5eOTFeE1?#SB5EA(g?eb4y`nBKiHe)Zy8wJt(up;;w@55Yv z+{BgE#W$Js%&e>Es4a*iuR24W`^mU7qn^<Wpw%=mh>3zX(FbudZ`RB1)faURGzgy3cTT0o^ zsArg@OQ4lxY&>R8CcM^Zx=B!QlEZ*4qy-Q5d^Jm0e8Fc z;}W2^E{qn%$a zw(Ip`@|Qh9MX&?AlpC;XK`vhVtjhKs?w0uJM=^_$ckolPGE<)P1NL1kz`mIV1pHmK zMMIM`)#4#-7w_JF^+b7pV2z{xgSXy+^sufQ^=9hPnyur-ozJ7F!P3cp!tlem;m=-) zyi7cr~zGlFw#(}ti=T#SdHWkF~m!fZmBejl3*xeqEH(p6-XT&A&UkaSPoyZ>k zi@-aDg_u2~7$>A{LGMH1EIUk>-Br_PO=Z2PN$oE9;!ttBwi0a08Va-GlrAp$(um!^ z@BGi3YC$4DqV*B7e z%qw??dY)Z9ImnVNlvAbFKwY*bX1cg;rknJ{-Xh%AZyacu$&uu3B3=G!$aZ|Up?SxP zVZ`|B&}+#D%#1K&r<3xb)%*auUs5B{XEqL5!|$&Wfx2$@C;z@4Ebdzlpv`Rv)jtB@ zRfaPZi#VUK9KH`Y2It((F=9Js&)KO9hvhj>(VV|c`+dObmfBcw90Qg^hq@2ox)$j%;;m_aY2BOCw7YNd=48t!OsL3FdtshZ_wQHASe?56}x=;x#+E8g?T|UCuIuo{fiUYsT#gY8U6pZM~zypgp z7roP!9X5|@rm$u zus(a-QGl^s4{zqDgPNfNR{J>bRyCtyw&Q|DjvSXbkU1IMC6%fkj z>jp!Ph-vGkVB?dHG%xw0Q9oC(QhJ0H6^-z0cmT6K=z`?b`%LpF?=q=oG$ddVycn-=npmJDV}>H2A6CMOS|X$nD|D%$694 z?hE9>cGX+xQ`w9+z@6I0CSrErJ&f>7lTNNaj^5AsqW5+c*5~(Qe^r$!x9T7a(uiPP zSx%52l>qZwc1i-g4QY0sgq2t}34RKCY??}!keJky#>VrUp>X5i>saW*a_xqk`cNm@%gblOv7TDq$>4t!M}Tk5)8iqlhEl-3Jw0&ThA? zgM{)(}WXySIsv2?(?^(9NE#7Tq-idWOu7D&DA zpZox}CpQ89&Djm+S^a7GlSFDdX3HiuUB&(%Bn<5WnEg{Z=6soOzx74Xo8iFs8bJTW z)?rtKH;wsr5c1Z4gq55hx=}GnYLg>Ec=)y=2lQvlHEq~lo-aAC>czT$^k7Xs zvNSt~|9*e_hm&#_i%ZkWaH@eV_k6#Erryfb*wX~&dUV32LcSYZpTHbzmDrq0b^889 z4u3|kfE78h%u1nd3UTx!kPkgA=q{OW#jaLpS*?#oSFWAqrpef^oI%V?q2C7LogOF}(m zFotq2s&7C9ADDY%t#2Z#_3FSL`?AH-3;f?OWGeJ2*@`~-ClChe((mWW%=(rx>M!ig zw)WbBe*P3PB?$WoAp^! zfh#V&#Z$}5z(4X53^*FYv=tB!+t^at*AH;6A&B0YACL}x;K*jW%d>;B1lMbvF}iFL z&dH2}nesBM{JJG`Ny)|Z`#ItU69bg)W;Cd_54(5qIMiPr3!iJhqs-!UFt+5n5FQpw z_GXOzmFNAtrG?T@1?zc#*^1egYr(y&zNEE}f1CCW5T}|uGgFi0`1&@m7!75xF+gTX79ZwMhu!^OVlVejn8EKN4>$h7()-uIWO4%2o_SBAv}*WtyR-5&xtMp+mlFT&79IqYAkK8TG{Al2Wn%sGay&`Gi<6BgdNFXThG7SHctvANaDk7wR5P zp!y&$mdhO}QEuO{?9@GYHrbf(W@6dbi|))qWhPFW!5wfD%-JUU3cR*p34VOYcV(-$ zU_kp!A?KhCn>TY8ywR{BDUL^*L|t~lOqRkwSuxjh0|n&)<@mC=L40iN&)*%#MY(nf zRrOQm9g3Iuj602v?^0$fR=6?aQFhENS&c<}+9>RJpASVzcVT1aX)!;A@6z(JVeJ%S z$_)3S=oEEG|1XY4G&{1ICL`8EU!4-WKf*xgE7<#!r(o7$aPfnV8?n=g?B9Uj;Cc8d ztZg=A%Vopy;&&O!ckM#4ARXMF^`tLKqS*VJ0{RJwVnv=jW$ycl0hL~?@%Ko)T9Sqh zQGra!=^z;Nn=Td|a-o7pU&QnIoChBk#5QfMzz4B~Fx?=A9)8~={1c+7C6M#=_X{*< z3+HCZ0jSR}#r4n6!XHCm&hw6g|AhUZTKP$mRAj;$NAmf7Ll1VLZzW9e%z)3yJ7A!> zKSdTs)Am8jvCm*XGUU#>V@D4O%G&lU#%(KU~G?!k16)X2NYjVyG`IWydo z3Q&$MJ<5BZ9q-WPwYD%Z^txz~^dC5Ae1U6oU&6JI9+>3A*O)2gI8iXBdQEMnZ5Id; zE0w5MOdZTvElaI`3bA3~4IFc_opa4I#G4U&;ESs^({(q5&si4q@jQ1EmW{;jz)<%2 zy#|w4tPywGy@#bw+^Eo4LYsPc;;QCPcrp6|rbe`KltlP&KJ z2Qk@_={RIk3Ou})2jMm?_^;q1p7G1#jBYzhi5ZHY;(OAG(f~m{(T~XuzlSgOtPm=X z_GYTm#TfHLjUAEsg=ej!_;;6Z*dS|KlxRz8VOzj!Rx_6NPsdO9Zs3&=Et+;EA8#lf zML)k0JdgZQvZ`2}b^Lt_J;%vW2vz;e^x zL+hcFcqFABd)s@#>Rd}IeAk96*3AT+7(LSaUMwCOR4ax!W#RBKx#AzrT92;c?}~)s zXxUSn_7>J-zvdsJhvow5JkNMq+s}(mq7qeB__K-auR+IYJx=@VK&O>@vMBBpk7Tm! z==~7Zu+Rd^GP>|a`y~wSeu4fkrT!ZxjR);ZB5Gz%#vhXvD8ynuJ~DiPDt1TFSUsHC z`qW|BUq>3eEmagQa<)mh2Mpac9wynY!`+;HF_U-gC*JyjO(A{xpB`*+Xb{c(pB$)Z%3E@{>i7ts6&=J58l$oKs=6T^w6| zy+K&=-kS|}<{aq1cQBgw{DNN_u)P&FR6I%!r^u#Y!Y424_g0r82Dq>@4)Nk7p$9ak z^g_iawYW>>K5R-4p%uJHkLdk9Yl+7sJrV0%80hO-e4gj-%=#=||j0SlAXx>h}(!@4?H$#lc0eJ-kWq z;j@Faj|;KKRsM|=GU3#ho@`I03)?ntH#Udc3m0O-aoY3Gusq$5ZJj!lJDB@QoEP}8 zg|7|S;H+_|{x6t~y=uxPt$K_L7iQp?ab?gX+lTo)6j<9-K|E;kkaK0HgGuB;)U`JU zZ63OFJT?p#maoCAQhBf}j^ig?lw|*Pb8MFMr2YZQ^tgWl!xiVsbDj_EcUNciSv0LJU~VNAqZxG;Uaa6I(_hFa;;=asHhljwq`W%BG%awgtudwwx_ zb^*$sohl7Ctwy83r*LcTdJyINGmkwkBtK7G3>k12?|)@f*J>iv%`4;YpWWibA4)7N zufI5zzYiWdC(_h?{b8lcYy21NCp;aIfZ55~WR!Ra1C1hZ-s7{l+O!E&Ra~HW-UBrL zq`|b>xvR5P6D^*UK}5oOapW<97V-Xw_185#zhS`c{B6bM69^{jx8nQUFt&0*HoRFM z!o0GYa7~swh9Ccg13WA7yhTv?^sA?_d1y3UTiFGNXIX$8&(qFcQ3ftfakPl{&hMw& zfZd6$&@w0lVuUIfbxD~`KUfNXZa$EV->^pP%B>JSy)DD%1rO0XeW?(3Fo5ohZRe%+6a?knQg=CvSzHhBcfL++xblF_+53vf)8&0nD{ z*?7v8Ed0G`-GQELNlYq^wy2YKrE@09`b$E~e?Q?>?=iyLuYq)SE$_u1=_!nHT!U&? zZou`?3&bVzrg-mJ8r(Uf&tfACK&PY`0*5=&s5xdhe#0@L$Ld;`tD;N+CfVZn!x40I zI`7=3Do}IKIgs9K!Xuw~ojfLr(mHhT#(pgrc|a=pZ=D4x&E5_>V#dN&CkOFd{}mX- zxrWE{jo_r7guZXifsyCTdH?M$oRF~vEqw#r8lptI?2h`U+8u?*LtNnCS#Odo&K2yc z(;#IB--jR9V-v#y*fgiJaBcAsLHDN%8)~{5h6T8x@s?O7Yrh9#235eg2wOT>XvwUe z+q0Le+}Y2(TEG%|<0pb(Pj?+UfYWm)0iSX!j(L`B1S7hB5~ z-ukr){~f#|F;g<4P3>NIsbq|FQCBhi$OvMp^*y1)j?W9QQmEG!I;Yyvu*YV4jOo zH8=>zI~3T=&;e|Pn;moI{GW^e?FGx4PcVM03~f2!gKaNe8D{rl11CJkZ4s?t(&o+v zT)zwDHh;u_c9$T$WgJ#@y}{TyvXX(T<(XQYGE3>_!%mfOXH2XWSzsUfxK{?ZmHN}T zpQY$+txlmmywRZQ5LztqWPh@!L;YVbHb!L@R-Q3ox0hJaXhSWUpI(a1BWmz#qb?bB z?!vS#U|&4#Xu=qMxKr7SE+2R-cIWvpvFkVfe4Gs3U;Ri+YqqEq)PY5J@O(Fitx z_=CmcuYjsox6DN>^f|`AI65Q8H6$I+(S~cADg4i#d*)n#E3HiOsUZkJ7xq?W3)Q0 zYz(6zwrizLKcuLqcnWPES~0!DYw)x&?+;Dt#%CRFq_RGe_wjZJ&&Omz!nAr+SkZ_h zJ}HyFLKV!YGp4!xjbPgBNNWZ*;HsvtP^#s?mM*o0Jg)}W_`#7)+t&gQ2MvJ&OGBn0 z0;L?)V#jS1z)gBdROtB^FQ@7;+4v{8GNmWWt}|o(q%&YKcL=AZN7LdM54`woG`4l$ zkoFjO2W1BGZ{AN=)SvWKaJlEt#xLjzMq&`}i1Z-qc74{ctpV1?DN+{i#L6b~&ekmt zx-f*#eQf{0m-u>gS!Rv12F(O3vk2znq$8~Os=zeL+u`9)J$BD52YxC$vhMJ^@Y&Ui ztcv@w;bW%4u&9af&iquNaU3}-3M2xNmEmY~H}O%`z>nr$-JByJdC0+s6C zBs0A~n|FnO7u+|3`vYS-a@Ldm^VMS^_NMHMd@+nI3T8GY8)50$R9Miv1jMr6(C|=? zmDmhmp8Iv!=f-HtH`vBSiwPJSeL|Rcu@D>IZ^y|wye}k~i3{%8vi|d(=$c_FKE=~; z_305P!Gt2o zRXJ_i!1INQVo&n5OvS@J+o5rf3xf+96taC7hJJKs8It4h{L5}IF1M!nTeZn$QlTVb z+d+6Z)SNYsAlP5*1t&lM61~m!sr;=ni{N1X;Zwbtk>n&^%6K7;w;nD=rv$SFXM)7* zVLU%wI|@75Tk)h4V%!QNHl_Ljq`j}lTAo*{N{)ebts6zP6ZWh&--n7*QekLQK1O@3 zf@6lZ%uX(ldP=n^tF#U$&VL94r%2Nu*H`bgQlMr{d}qiuMO6Ko%Tam za#2_OI5n2CeiD|9=bS;PD2tTT`B0F`aR^6L?mU54| zxg$jBpTZ%$SEIS@8tk~=0&k@!aq5~nh;Iy_6TxkezdVwu4Sk8%{&}z~nWjvCvkbg( z?M2I%7%>@Ne_AuILbQ?hq}y@wq`6qe@6*jp(WG!8UR$#fqQ~XIUprs6BSeoy+8I## z({lJv6LEE=Cabt+PB{nEU};8y=<8S`FhPyRY~CzX+nj<&LC>MHPZ=Dm48RfJT`0w@ z9FLCEXU?6GbokT(*rx5t^zIj7Qe-puwa3slRSTBTVh+1^C!k=HA$HF3W)|_jv^LC{ z9p06J$q%m!4gD0!+F%RB+%88|8F$fhu`1f$S0;;NbBncw20iFRyn7@0mBIS`>Cy1=f3h!bMyBXniC1tEmUF zon~>=_WL^q8U(Ysnh#)NZ7|FGt-xBNI-#~r#6xqfz~T>gF=pFhPw)O@Fv5p+6nq4K zb)apwyW#1q>-e;IEgV*fV4jbH#oPSN2mXMUbadD{r5>agcMhV*2$%v+^xAC{PU*c5 zv$>~hab&Jw*#Ds zSbb8CXy#JUeDDV0@$Px}chh=kmK8{AkqqlTmM$$mV?c6kAuNvP{%xjl?|WZ4I(Y2> zO!xeWLsjj?g(Z3{cI#tl$L0$#s9A-?3JaEb*N^Et{1)6Z4&Y;p81|u54Lv+eX>QYD z9NqR8^$%OKb!Of)`E@L+=xl<$`TIB<*HDrQ1{#1U(=6O95kUPe`RRIe{I5_F`1w;TAeBmDbs8z&jw3+Q~AX4 z7#I?Zi_6W)GV?KLJbDg2ZQ__*t2%idi(ys1XK~BjG+cVR6i1y5rDgSpg;*~?R*<5= zE>{?0a6k}y-LDqgCxo$S(rC8tw>gFIZu$nkQ+xV3f^Ez8ry`i6an(Udo4GUeVMafql;Q*&<9Q3XeMxX!0yUrzOnX(O5sW#!H?IG;QyL8wz&4i59 z%LQA_C|VIU4t8DC0>7>+Fkkdy*N3UG9l>`&KK?suH%3wJJ7xU3`zZVv=Z(GEb5PH> z9<&tuGWIo;F8q$7)2swn&WmFP*A8P;un$&l6DWAB6_ZA|F@IepY^zC!tu231($exj ziq6BGtM`rLwh*#1Gm|~C`JDTg%fhlX!^FO@>tLq*ckLZ!*)+>Zv@iqcSMp+beU z$M5<50bN&@>wM06p7(gYY1Q4m;^O=!QFtoBXIosE0{8kBL>GbnR}b{8Sx3h&S~GRt zd$ziATU6O;$R_*xF$K9mgrf~)*4z{Qe|fP<&tgRbqkhIkRvme_~7N`b}ZQ= z4hKzeW)3ko$=LX_pvN=wc`IeGBw{FywCsy@PV3;yRK${+SFoP0B8DJw;u=Qm_|f2=QP-l&z# zn^Ow5gNx{AvNoIiWg#8o`!Q+3pTtqCLTK*VBhV~lh?7&bu-7&{CV4Lf-y9W;e5S~> z*Y{yF&-F&C)@M^f6wHbtFE@7V8oGaL_wnGTENpx711xSvpm|hJnzrK*{K?KJm5(!Lo=3Re zUgkdEy(BLv&tD*ZT97psNg!ldFal%c%E??YuV znOwR@1>0UjNA^d0F8M=~mq%b&G~b)m(PX)&MiaHX;5(=NP-8+Ej$E{mR=l-lL0V4i zOldn^o%l)!h-NUWzdYNzB?bm0Y2jDp7Qv>mm5E;hyS3i za!q#DFB2{VTd*v<88Fa4mVN#<3VvNsrF(r3i}$vkqUG|yzHhf?!(X-29_59Q4TTGG|X zdcRtKM?p3)L)=%V%RNcXjxGeY4iecE9Ua_o;*KOxNT*K^$3qqWetnvpAVxWJest(J zfU4c}pO+>J;n_glM{~uUa{^h_>WwgFH}?buTc)tDj-=<;gHMxzIDJGkn{n84zK^n~3XhW%4hbpGl3}DCS z1fcjMgBB}vz`L!n^wF+UyuC#e^IOz#X5Mfx)a-@QymZ0V`VU=mwkmz^sSG=}__N82 z{3)h!DSdK1D3+bhBkf+MSYK+()_VOAH*9zZL;Gl>X+N$Pm)qgim$EqVK^A4M4r88? zvFNOJ5#EoqgE`5GfWqhMhYaG{IgFQ*{{8!RGCWi;!9)MYGdxd+$d$PXmx4}qz zn|R~AJ4@s}=40NzSmW7K%<}w9K1p9G^-B;7p1vK*4yt4Q93ysdkql-n*5mhpFf?=R zh0Pjcq2bvDdSV=b5#_2dqv;%|j4GoVoeENUR0WqZrU>?N?zFMCnbhq*(VA{6JT#+} z8cfomckLN^^4CIm)c%%c%0@BIqYA9r-yYX~)k2cpM46n$)F@SiH9vG%RmoY=Hp`Tq zw)JJh_XOb7{M%q`)&UzQD`B6!R#2IG2;PT!aU+IjtD89Y=E-J=D*i;><2W;PmpNEi z%QL6FMyxA7f<29ofLkA9@q>ms%$mBwZ{VyL=EyTRciY!fs9z)KDJ=w-t7im_`xW8` z%fpZoT};P#S5%d2dD$oDi~Ds(ipJ&tz-z4~onGjViuZoQ`-@v)L3KUYB&-$Js&vB? z(=4)_R6=F0#c=uhY00@3QwqqDV|ymu;<<(M#5rm-o*qNjMk97sX*c=5O@)^eJ=uTO zDLlXUQK(+@8;mDcJU$85;m5P&v|U%~WrC%9R3N3>fw8It!8keqt^g_>>c(E3aq9xQTTNqqP0 zj;j&2KHLr6Zl{DECm+E^2i|2{RwJw*ppW^BbnW5_jYqpxu)pn9kq-sC)lx|BeYj#p(Ff1lH}cYGg*@%LZPCUBWhE?#f{MQIoJ z2xpdNa}L*d!nF?ge%E+Wv)L8<>~{el=?$UU^(~#&*+FY98)<#r23p!nS+dI5iTfj3 ztZLZ;asD)GOwGJsYB1Cge_My+IyXy3TZ|D#r%-_cvY_Y#;5WsbRYlpOY=#>)bZw#0 zS2fw^$>w+?@i86UKO8zc?8H_FRpv2$r#M>rMv%U)faWkqF>jS3n|4=;?U(&Um-hC; z%TGLE)XtR@BX7)P5?8~BLLIW5c^hVCM}sEcl^ZUo@Q zE%2blnTptPJyu9LA;;En&P+kqMuGkG1;+naLng>|gSRuJhsG%|JC`~!cR?REf81v1Xa+dHrPZHBTtZ@bEdGX_$EEJoJDB` z*FopvF!16`)KG~(hTcd74@zLGSE;i>C2nx)lLD4{kAX&)PAHh@LysbNkZ-02_p#lW z=g%72q-lmx^86fXGKU^$Yp{xMe8e|jWrEA~UvS6`{7${oY1 zJaB|?6|y-8!MWR-eW>915_MU8Q}~1;QgrZ49N!$&?2QeVf>^9e5c8Ic0=@S#IC=Uh zaLRuprrdc73P+q+S9dtRpHV2bMQUOg@A$b)b7oWJol)Wx%o;2?_h(U;G;8k$Y2Jc| zbg|!Fs2Fh>&Yt5Pn|-pJG33Y6YZ77SjZDbh?MFH*vtX%%A(rjx0cxLOuwQhlxGy)6 zwzyP!*VYuomw7+Yh%6iNW2T0n~cT zimjdKh0A6+i#x8k;P~#d(B_sS&OC3!9C#15eP$-~TlpO(t=v0(PwpRM@K z@93jO(CnIU7<;=IHn4EEa9RPxanA4jB?dH7qnTmOz^OPI z|63$OB{zBIGr*MU{$_%c(nh+V@5~aqZN(W5&TRIJ52U|%Bb=JyP2*-~QJS<5%Rf>l z4Af90!}IEFE_`0PPAvM+M><&Mu^9O#jGfbUVbA7R z;O!ooI5MjX5{_mFr@ns{zg{(`u(Q2TJ>m@w?Yu@arhK3Px6|Zc)F9l>xB{hPeCX<= z5b6yp%ylE4@TY*(NOP^$)svhTj=Ra35`ol|+ej(N*Cnd2D(` z3DaH*ZdWvg5l1}46*>0!Ye6g)Y&=NMU*8ZSHkDBO^uLg{PKJ%nyU2Mt+Pq_0Pv36$ zW-l}9NX4_BYG3-`XYQq+4LL%w%{O7Y?lIv&m25VS=VSV(QYOz1 zw|yo0jhbxLYj>W-bqk1nkxbZ1nkXcM_79Qv;wP!&x z&bTyWAE+otv1Xeuv^&`m-}KHBMn-Lu-0lcKm26*3$y4BZfG?iby-C9o`2PC?L-gl) zeEX6Z&e!`2LB?*_shBQypBqa*4fL4J@kCm08qdyZdWnByoKdsC37a>-7`Dc#;^<{O z^P_5k)i(|BfvW-R-7++NP5#TlC9}eXP&)xf}EqItMgJ zvtE7!wO|)Ez%3Le4EJM$s?U;S=qwtti;4TX1XjLA7W=mUk!)Tt9j=wjvGJR9;DlE^ zJx@@DI}ojW(wt#ZT!^J_C3>o=(_m(z|b-Z0XyFLQJY9`&*-p-mRf* zlp5zx`d$P*#n*yX{Czr6K8MzM>A2boXEq}l6yXhF_x;YILX zI%Z(RHT|v7mdbUTYIBSftO5W2q3rJd_`$21E_8ab4PX6Pz~~DkKAKGvA%X3XIzm)x zG?P1fQ~Y{VlT~r<=7MK_s9@&KUWMvO^;SA!SF924{LQ~nJ0z@fnJaD=ec6&|2UMuL zAgLYF7xnl55n8A26#ca<@X1XRwlBVpG<-fv&zBprPapfE<0KpQZ$=XgZs9Z8k5sAX zrx*O{(HGY{t6)xT6#fnqPfLl;N02c6_%Si$1z^?DX0BuZ z6YaLIf$YV-*{$Becu%!hVk*bE?#|jcN;!^I51tM&CGF7O!1b`@8>ry<80wjH9`+Q4 zVi9Mx_MUkZ4!M}q=9Vy)VZR4bL^*n#eNGgj(xB$^5zw2jjnb}0kbjOWL`NA1%y>yX zlEau&$9j0(eN@ssS_i5pcS_yObV)zHH>Lz|PxB$)ndl$NrYt%{ldL9C!Tva$v7BeZ z7CW(*DTSoc`CGWR#+f+{x&x(ur2>oYRXS|rMsV)8TWsh!NlztwAAX@1TJ1kd&fblJ z2fDM_7yIK%`;joIx(xOWv1hRlc^7GA4~p0nz>G4-gKg$B;lgWstbnrzVon!9!Uijlow0}Z zWri~MiY92-wG(7`_jd69Zy0!X0tg%@@9X zQd=m+wv(3ab-`ZTGszhp0m%ns$t~Fsmv4VW*S+6zD0Dfo+==?)M1w4FeRvYwcP)n-(>}w< zkx@9({fYQ~uRZ+w?^UVIM^y}{>W?#QeQ{xruW)NR&&|yY<==Wmv>3XGMkkms-RZu} zf3X9FEY-s2TW7*`dsqC%nV;G*K3F2nr^Np4aG+NRq%z)fJW@~oF8gS`|4SPAObK;8 zBj8}T7PHc}fHU(Pa9m0N%e8i7|0$=F`S9UzZ=nin;r;bz>(^1(JUQX*!aa~+-w6CH zCboayMC$!}GD9(e9-Wv+^$IF1W_2`ETlp9suNnbWFUL~w-w@844Q3yYTqEhglTt;W z)o>^CIt_A_Wy^Lk!0*rDqR&GL_)iO6HXjnJR(H~wx^FbxS;98}TfzJ8ahNg44^`{m zQPLZ}VY}Y~<)XdWpCt|uaO@$tZyHWMw!`5<*3(Q;tCS8xz6FN(tRs)hOM?3e!w43EfUAcvvouG0PwHsNWXe1w0N~ z=QdHc<67{TT1R{4$gz3bjUX!W8(7uH^PRe%RBHJFE{Vp* z7nP8)mmiez-d^+bG}`yU9905W(=mk*IK=ZY8(#&pmAOA?|Dg?Z{Av?ahJ@n@I|CMw z&-X&6w?p9X8n~7qnM+NhKB)YA8@yOz0Ux$niOnB%n8syQHr9&gd|M5`Upv zK{`pu8zaH*4oX-(!=H8aI!iwH^+ku6^|11ByHHr5jvE$uv8ghuF#jOWNhw_f)59cP zDyPTR{j7rwrC8jt^$=|u(@uBW%_wq+I}Co+0U122pV!BfWhN!T;|?n}CUq6uHbQh# z9tVT}so}c|Hq1N72;Hip*_88|^uh8gMeJTq*Oq=Do2e~S|8Fy>r!Ihd_Cccj4kdQf zMxA|d9LYNu6_UN9izJ8c7-7GFUf7l&jp5$Y#Yg>pG0`^$5|iWE&0u%@;PFI!_!jY? z%`R9p>Zy2F(1KTU&Cpo&IZahLE}U<=LhgZEB@KH$SUB(K%{!oq=~8nR9J54pyY7Wk zbDf#wg@B&gXCUOkT4)?P06+b$dAy@wyaP?hdn#|8a~^FiEmG+(0l&xo;*mU!k}j+wMFu3 zK23uQw^6{VVBx)SI2-)P~}=i!*c`}s~TKKS<812T1-Mk=EYz@$MQ z*z1ZDJ{@)t%BAHnzwxk8nU+Y0qhj&hkdeaqJDPNJ&Og|`G?@xEz7a+&yeUqdvXKAo zKL{zP#Y*jZ;-Lj$%wPW!Rb2PMk6GrJWcQ9L!aS)h$AT8W3&-a&-H^1T(#`Kv+J+fc^f$x7kLU;hias z!WPeKv_8K-vfqa(nrn*Ir}%rkU=dwd_JR_h?4<`|4v0T}6Y-(6L-e_I6lRy1uu%!l zaKP49_&(N{9XKD3f1AviC`|#UxJscSsGIhzxI$CL22s~PLp<=&kA?0rK=q(LIPbt; zXdB}ujI;kibGn97s#`p3`*;-Avs{>Gc!qN4chl66M0Qi|7p)J|XIpkw z2672(mNc`pbwCOYQ8s1OlYpg;k7YeezKbWCcqS|LiGXE`=}f2*+K#zR*Y7=n*+*R= z?@ca0yHt_wn(bhaxQkLQ3<0A=Q#SmgrD)bD^>aNHI2}%zgb)^h}5LWi!FAS3T(kc8bgQ{Dud{!B`g5 zlXbp~XIXLz^n&mAp6}T}6Z&=0t3w)W_vjducc=zcnEa=2#z;I~2_MqJ^{=Kvel8Eb|SzI~-F z1Ac+a%pW9~l)$>IMd6rf8cFmB=4>>E(c15%H!dHiYsYM0a<3FI=yegr+NO|}jRqTX z=BC(jcPm|VOc!=(0UghgVddYrclWpjLc@O14Zc?~;=~`AF*6C$*-$9cFNEs{{Uw)* z-;z`&l3g!;PEY^M60gHI@fxxA6jF4nVUG-co6jH@?}x^DYST>3!C*)V2$aw z1e1{$$wQ5E1{_k!CT+No-4w|BzS{sF?tQpq(36=qx`6BuW3;MMW8Xs; zkfU`RyKvf@DIV|O`N7dp)~HE~cD^H{JA4oK)I%}Jem7|Us;Bz_Zs;BRN}S^q!@2g} zIOO0mGP1G7qZUqVc$o@IofC{n4H|3|&l!H(Pyp3U&!nDqq4;~E4*V#32xjfC;7EWq zlq~AY^oIe~u2&R`WIE{BO+U6Ma3zVqeb`suT2h*!_Q0qk=bqqzn3VuhXoH6$6a?9PdjmN+FL|N37#UGoQ4 z|Ks~1>u*V1zXwC8D8o-#@hcfJ8>V>Oga_rayMfzl0IeObmL7bZ7B zg0E~{SyJF_D2PsEDcc6nz73wNen1c!^lcRTe-d!#a8;;|>Y}M1gG5tzQ+77ak9H6G zN(pMkWMei1#!N4y-!}aD`RhwbefqP}>SM&A&faL{r_9`1O<40XRc7&4gfU^i#iQL? zxM|fpl3#1c-VU*5M~`XZvPbc3ds3Pxr#VTYsXBswg*1rX3o2MeM>D^T+Ihnd|-vHt90bN9wNZYMmP1Ss2KMF1tma zV{SpXzX@zgJuN)t+EM57M{svTBu1>Lg1u8DICo9Eux!a@xb?}Ot+bg)!EqaDt%9ax zL6bIw$*7A-Qi0E8=5n^J$_guK65UrzYGD_GAZEB(O*28GenPI`k>km~G5*6>hJO z#kd#4$v62dT;6)0Mkt!Vp6+ydt15$^tsBL!{5Mi}E0s=s1inT23;b(#h_~1PRSOR?g~NxLIId6r(A(%c8V^X9xaTwZoO0-=OCqKjGHxE41dC1$uqIBHhM& z2jk4bFotUzQ{GOX=k=CiH<+i?#yHQ$rrZ6@4g_u#}$f5=gU_5HA!=k_M4^DNr*!EghI(z@y4poo0$QPqo081dGp_hCOa_=XzwI_899rgARN z6+J4Ee5c%gHaI`k0G^viV<4WO+eXc_EKLKy>i;9r)RApyI0kIo2TD%1MehlxKxX>~ zT43@+Vz6sH-GGNMYr{3zk@KAje+IFR`n6DaU4xmd=%&ujz0~tYENFi(qsq-+gup6Q z%+5FnUga%NIZ~eu_R%D{{y}U`c{n?$9!KHZwIQ}qhiQ38Sm8`$MUiHxGvO|D75cF! z2Fmbu@c^i_-VF`PYV2csD8Bt-LL1|5(AJB3f~{l`%zmxJ!ZNmqjlFNfXgRLu@$=N> z9DOeN5Ul@=Wd;&wV=wqw5DJY%1g5^Y@WB(0MoIhV{qgZOCZ( z2ikV3n)HvPNJ6`0IIFEjRI2()`|T4ke5NxC{;7tcun88HMzaMUmQmUAX7Ey5K+*s` zTwU@)oV0YCrwMrX=m2I|_5(6v(`lf8HpTZdL=xlJgObPa zbv*yBF6|8qpDUr-dk;3Q*b6Vmzay!e2kXbbmB$Nih^Zns;9a74rjKXHy}?18WwM*f zu9rb-tQEFKD^kqP=(%K%!VU3v{>$RrRujHOBtNi_)f+{qm zu{(6p>6sOB zS`h(w$vG9iZp){?+uqQO1BR?+R2-)M87Rc@%wEl>bD%brZz(2)<1m*$@K9TwUGH?H z+>ZWC^JFoN|7p$~bo!w*_W@L^ny~Ya_EXXfs6&;A*2fHvMLu2+*aVSMc zPA5G&#`U!a;5NM;_9;5CPrH7Kt{Zi6eybz4q<@3?>%H;x&Nf>&azDbl{}!-c zrpl%qO;Oq67qtKTEKoYh4wV8SE~(`e81qtcr>TI|2|fIBp5>E@Oih|kjy z{=7U0r_qWPJ>_i7B|5mE;0I)f&V`o7@4_6;aN5IpUMDY}f`eHPAYhyeKAs(n#RBI; zZTH6Y@?GK%S3|TLxl3^0TnOdm_0rXW>4MMZ^KjMEPz*LV!@SknFxT}0z4>Q{E4G+n zOq~aFapnE}CV`fwrbDJhUwrw|3tH|UhV;-tj8^)@J^fUE<~;^eZ(FgU-`|Lm>+bBp z26YtW$3h3+?4EzcSlWBBfjB(Gk8NI<`6zCOL53c$gGY!(7Ba z<)JK_YhVpo6NNmt^K>VR@1viM#LkQ*f>#OecApJk6{~x&S0UrX<$fkC?_eyR+v$!= zmp{xG4S+?Rh8eUJ~z&U(o<1k8yPNx-P3dzk}vw9;cgk zHCg02dzj-r9=1%=6m^Hchlgzw;125H*bZ3{kEmlt+EMAFqsz&0fhkzmx-heaO;r3% z5w<*yWagjBX?L_U>w6%9IT$F@Ja=_`cmFFn z=~Sp%2g!NWLc6jJ>p1-qc1lk`+GWl;y;>&B){MnEO#@nsxA>mIdiZrY1nUMzWAphM zDErSCmb~2phcoZdj_+SVw%Zfkx{*EiT`U;i|4a8beHH9VmeI4TQy_TnZ8%(IhpP-A zA#W(HIu9(dIR`#8#Vaz7ojB zZVpCy4QGsng-}ymOTDZWm~HMd%G)4eukY>Q`@!C9uR$ZlL!o$&=V=;pLNPg)pLup{ zg!G4zto^@vQ1yN{X=GbVr&%eo;gaQ$J=&gqbWam3z9vFqivi4-Ey0YP{c!2kr=)sV z1NM%IW}7yLvyQcewCM9T%JA9_r-PHIGWj*JHRIrkwkwPK?TUds>ojocYnZS*j@48J z!mAMx5Yy_5dq18QC;AVeUy4A!w|X+?o*80(Bj>V~Me!Y~zBvC(s!t6+OE#&$0hg~l z2N@oXc5m(Zna%+3)o!E1nK`ubuMW2d2fzVQ6MyVgh5QLm;nu;D>Bf_7nme|y zi)KIm3&q;dDWuGIZfUd}ew0a~-{arVr^<_>dt5y|jW#6B5mU&$V;boVzD%Ay99U?h z1jp*GJxXqWsoCvUVt-mq+!ON5m!SDZUp%`nrxqeK&W>PEBRxH!nU`bj+2lz<1*Zo|m!L*cvSZ>sR@ zhYPnRh~u+;;jt;#j8A!Ct7QU_IH$KX}!NsS&Q4*TeGN62n=yxhu4t&e zN^s@tgr8-&f$ z!1G&o(I&He!8WE0zHm0y>)HF^hU4v)`Bk{mez_KSDu-$bOXm$yxIHL#KVAY?6&o;tK z=QH5f-4>9!rp-+LxC$={)mg6HTo`g|6Lrr0EBF+|u)lqu!2?N(u=|q>K5<_vElJCx z^%KkCV7oKZanfZ`Ho0Ov-$|z?PwE@Sw||$JvV$@&;a#gK^P02+B3++D(uq{gpci>`ekr{w5U;!0m<4VPu8_9@Wi+T1O4i(tJ!6xBKDo)OemdP{fHT zhRnM9IxX7&Q+!&KMZrgY33>Z+V2NoF^;=>`6Iy!Uv~TXrc6J3+n#j_eNB+1rcPpKH zPok=8EWxxfqRm4EnqlE69#7vcJ<-7Pt1kpLQ{##xzu}gky>AWN(${B?4Hwe!1C~&A z^st!FnopJ;%lKZ37QIW{Od1a3>EQ`R&B|Vw`Jj%ng4J1hj0q^L(Sx1)I2ZHoAz@XT zgHW-xSs1f^6=+}dXFd_FVx?_A%$wlGjz+tq?@kpw-drkKG3ONQ@{?ioxr(M3o)Tj+ z3%EATaeJ>)C|HcbVEd;6AEd|L9_Qd$?H_S;bpUi6FXkL185}6t3y;-wSTbb5?(LB@ z?BY}5=cQhP%Z6RlH`JWDJIKOxEn5^qP2t9?3fTUNpNa4-T%K}CIO5a{*ulKqW{o*>wb2bd@z#{>Ak*E8^&1t(3SRfX=mYnux~~O`zN~~YYR>rSpf%2|`%CX1 z?V|@vkHW^6On5fgiUoU^v*?tEq`!{yR(pivm~v%wyk1Rr?7qXBg)+=r_>Y!;;tb7F zMdqn=gfOgKSxL$0^9mc7!>y?P9T74NVP}!4LWWiLY-R5f@G* zVYPR#m^v?p{kUX_9XA!l;C_L)?d)orW*LXiioJ!EPkCQ74{~~K3<(UQT&hw$Zyk97<5sEIQ!R(N;EF?2ocC8=J)cfQ>OmY<4sH(`SkA$Gh z$N*O4&F`@H9@4$0t>o1mgXv_3gS>j+ASDxQc2r<`wa(Cg&?eHUHN5<1bzdPWa3npu z6oBpX_*Tw)dA4wp6}Yx*VTPX){{9ic{iJWSXh$#h&oU5(s~a%YiVfuOCm42&RTW)= zkaGu2VW{OdFn0BXEeo^67Y{elqPI3U`|~MS<`hXg6*_3F@nt$TV*)Uke z8bkh@OIEiYP;E=9ICJ_^@ov)#;b)wUka5R_ZP+f$R$uc*?E^Ac)GG`#W_Ym1k&5hf z+j;TPfkTk-W0@rS(>!Uw_7rjaW8OR8qR4*-85H;Ci14#$3#`58Kx=iC*mP?zHjrm_ z5(fs+WR-KYWArX6`w~Q^UXJ+k>r7$OyeQ5o-UE8hQlVvX5eyl94>neK!|pC4QLb1Q z>aTwzxvfWN9y(*))QPn2ct1A4=>V;Fb^`5XOQ3YVKHq-}5YAq$qJ@Eq(1UBlvsNM* zId;&}EBVlSv<&oC<2`8m8IV-D3yi0BOPv9b&!r0$)2KA-obYp%2UNFl zpX-blT5|2^WS1W{&IzYGn>Im7%{VwRiR-W>?o5+-zwW~Ws_+>?3FJXf_C1CA2wOB9 zuvgT4eoV~eoa=p!&5-Y33up0==-zOaKF6<_w@ z^^1%ynLyd=0@&a;hfM5q1;ZgG%r#k=O|VARHt-q9ELtZVt*sV+wrzm9@2X(v5Jj+S zbYv?grO@-@AE2yi1g>`d*=Lt2=9nda${xe^Gi(APv8*Bkdi2k#0_2NBfq)BNN><)NOxOx^Zp++z%}k zUau?==5N_R4{mQ4Kf@vVX8DO!n%posvJ7TqX$rDSQc3S(B4zh2q`Tuh*x_h-_FN~O z9>492v#Pj9J1~$L>s^EyeSSl9Oi%X0?ip2%QD+PN&cVJsd8XC(4#?owWrU7LE#nDZ_j<$`MDUhJuZ;y9li~((U0x9KMzWJ>97HMUaWe-BRDFrj+g%m zjHjaj4QENF-SWh94)O4M-T-nAcne>8TeA9z*Cgwly{JPv0LwNTGo>d->A;Ie@SxO{ z9eB|VPLq4n!Y3|hrOthWiE?<(_dD!;SRRPy zAtWS>z3;_+K?^nZ=M0IviuoY4_ykN%{YPdmroyjJaja)gWBApZd$GC?A;hVG zV)xs!k;~n1wVMTla~W{7ME5o})GlgzCj z3f_mK@i*kao6UTyOd$cj?L7*Xy>;2*PGcC{>nbcsBA-E6bP!66qw!?YR&j{0z?Ny4g1_%iFdkCK`A09o_(dQotZ)(MY2W=rE((VdoJH8zPKkqrhl1uZUusDjniZI3BznbXgdtYI*dIs(6 zbf>>rtHiV)C&l{pIaH>ojbczgJo|JZwP(nnid++i$P7U9X6|`T9VTtelx0z54)d1U z2o|UX(-Qlz;77wDT`r!*g!w-2t!c8` zwtP#|J&L*eydax%D&pYJ614w?_&nQz9xUlkBOJwdh0+$ySeREqsB zn6Rvl?bKD^#jbX&q2pP;__sQmy-jX}F9W#t9wG&RRd8EdG<4` zMSO0j$kgnV!J<+PYi{&mlS8jU<=B1Vm2?5OirP}MRTtnwSb^B@za^B@F%D#n^yvMs zO2Mbmo+VoT7F*+cp{!;xcq8w;7HlGu@B889qEcupYZp@Xhq9UiuFL6d7N#DJLACAs z$nbk4UY&OlLLHKYjfH%#arFm!#ytqxIn^*FTAl`$8&T}6R%pMM0)qWV+PPaFx83Z7 z(5O(d-SUI>mOJ9*b(8&Kx(%86@#kQ?!=Gj68?a99uS98lrVGXSG^8z%t-D~vdbBXV zC2iqi?$*n^LmCR2`C+KCb&H?&uS!ts#bx%_{QY)eHMki}A>I5e$&#zOY?FKh+vebm zm06Maz4`*o4Yy|bNlx5{=eu&(WSH$=9gO_hn;D+e2BRE zzLi7bqX-lYWNFi;Pr?wF8Yn*Ni0^qXHS>l)K5{rt>VczRkdvdhf8BQ)Wws4|IlZIL zvN2>a+=9Kf?1ziic2espdp7!CFXqoXN3A`JARy@gsTc4(nBf$f*O;4a3#%Z_j$3fkuMDaWT@_9RZjk=i{vK@n zd$BP`4B48}I8fXij@c*6g#KeWD?@r5&F@OSzKxVhvkg{uVMU#AQ3E?6RNeR>6qU0Ox09--tFS-{WI z9(dd3BoQ+}1eMIE~Ep8N#*(JE4ttms6*@i??Jl zymwT%FmH<=)V(zUp@VxWwl17HI}1AcTH=?DVf6A*7!=E-i%&93#eKs=*!BepIAER{ zM%Qkl<6NW6FV?_v3Z_JDb-$l;N5L4cr*urX4ee7`Q&M#p1`Xap%SR7jQy+K>b-NiD z6mkCJPrg(2xD5jLrPIqX$~fxEdpP%B7@Kb0QEyQJ3RTcNyf1`KyjWPLSxJx*pSWllC? z?K50Z&Xj*ck~uRblJlYu@aI(76nB@%iw<)P(7Q(qyj|(d=9;y_Gu>*Eo%IwhFY;qG zkLJ@z&c@>*MZEs2fedP+$?mBPndcr8lTx<|mz6#V*JssI^89l0`J_ua(ig(fA>r(` z(tA3jrv)?isls(l6ZF{|dWwO2D?nf`mT9W|L2fcCak>m7pZ6wU$ zcZcaWJb3OV7Q>eplE$_OoVzdq$KCozf74FFoDH%}M{ytNo#e&Inv0Y;#ldg%s{l$l zEXTHOy$13PuPFIcC`%n|%U1LWg4P#j$u~zG7yc_I^{#uu`I2>Xxz~5X$q7N(bdKv9o*kDUPXZOyn(8jN9+f5P#mT)`%o_b^LO z)9}alL_6MbE>Ge73H=xh?z@P8Z+RbKUKXq#yBF#Uc%Jxw6rG1ZmTwz}t?Vs(@5olx zbDx))6+)$9YBEborhjHcZ_jretZbZyzS$;23`z*KwNjT`ywui5hWazX)cyPJ|-d<|^BmH~Q-kxb`&xmd8>hyue_!>-gg${B6WPRg7Yp2-sCTUGM) zWD|z2?!^qc{b87|8rwX!1NKxL!F?k;px%tL!_xyWs!NT2zm$ht+Om{?CXD7borBn0 zw{XH(XJ)JPLy%vlA+ET%7$h>W>`bVHS$g(mbGTEd#?l0?j_AbJ6wdZ2v!p1GwUSA{ zs)UVt+?~Q_U~4RtnD3aS=*N5X`0Tz!Z)pdZtd*mb%ieH2$AFbS`3Cb2P8Iq`_>)}8 z0hs>wDR&;H^Zn4DjjXsVZsD$_K`uV9jBUqVkB(t`4+Unyj7agkGv~Owkxi{UE6#Vo z-NsSOtvwA#aCiMEnQ}aGU^!F|Q)c78MdOIZP}=D!p`Ar(aQUqUi*@~tsp=NoDR2v1 zyUpVW_wk9!gINMH9X7@?2-3tY;QHjn#n~gbmdJ>4_hNMK`>dpWG0zdhr}n?XsXXeV~vk&H~TG z{v^*ilhG}G;LLg%TH^3lm^Ltm{519kRCry%fZ#E(q(q6SrUheLrkCI|-iyuqv<@yC zB~sL;0r2fdyD&dmkEWegq!YOtu|f6-R*%1o*Uw+CdF`MMDN~E!V=oW3z#@c-e!hYC zv1$}J^D%hJ72)%9D(snbGbCP7q+Azkn(_83m|Q=DefkOFi57o$aJUl-J$D)A)CW`0 zk6>1}15wsc2STE!WADUlxZl?cw($MEQ85M&`unnlr!p}t#E@+at%JqG1@<>yNxF0z zuS)ogf=Ln4pt39rz8?B4DY!qGyR`Z+x6i?(n)w*M{k0@c zW!0l*3A-EmGs9`$VTpnkepfyN?Rtkrm8(|taqZ@SCvkT0->wX_z1EvK-B^#`ovwqD zuLVx$_ZM&8uMxu&3BNpqh{?M2(QC0VptJ#(_go|Pl+6^EJ#!#4@h!~Q7fSa#x?x43 z3oG~X##o+VpVZq7+%yt!|IhUxXd6(WtcG}a_*8L6S~#Wu(IP{BuXTOsE+%Gd$43VO zn9WY^QhXCcO$SzC@@n((+`zGwOud}dwMKieT{u18RMYH&Gqs99Z=VH0>aItrGG!5L& z@BCG6RQ4xU`pW1JsMy3)#&$pYVP!{Z3&Loe)m=$)qCOp1`2cU*Ia7u(0k>^eq+#-g z^k5s$)AlJ zIF_Xr%%WcLZ$Lql>1A}|LB8HSuQj2x<{wabun9+An<5nOd~=mU8GbhTEvdDei80Rc zblg~lJ>?#}CntlbuP)E{?5P*dd{$@hI)UAI>C8@LK7`b3{U|=}K1}i2g4ql1z^ozP z;Y)%aGvS`b-;*y31sOW{_|9&4s`^p=+{ah0R3nZq>o~spnxV;`3&=ZaH?$iSsD=KL7VZ z3=Fwq#vbYF(B(`4jDAJ29~-`+%dA!6*2|3$nVgOL`1(Ras)gx!+_`R%NVg-;!VlDA zCr7)(+tr1zWMBszYwX7qri=safV*Pm7X#Kd(~|*oO!1?9vRr->N9G`?p2R8IcWmu1?~Y@(c2Q6+!mcAX--M1baB0NUdZ(mYdxW zep{4*ylR=mO4gh%`0W(UU5weP`McoaLp^4Y{2tqr-PvGO1tH7f5#GPU^BSoEux`&$ z_?I#Q+7e}%TEil-?_PKQ*W00w@(D<7-Us$KQgK8?E*|0Qj%{DQCf+E(vvd9Fzk(8U zU)w3POi{*m%)^s!W!aA_)!?5vfZa13ii^kj6E3|iY>oYmA5ve7&&)mxn^zvfC!8O> z(nucrrMBSD?;1?y%vY4xHK6zVXF~ljTfAMu5w00-+n zR1(L*jXW2+?#*aohCU12D}`e+5;j7v6W89gU^%sc?B#|a_9LJTx486#yB|-9_oL^a z!srJm|7#0)Mwf}xzdN&jFAoV_Gt{ZnwG{vGHNDNF9xMY?yIqsPR^?LH?+4dIBX zuLd;!z&p_FwFqPD7E2n=4;lBM7*c+pU^ZnzDLlCN7bd@3jC$*|+4#zHkPh~c+USQ* ze)!X$kYMa>aSq05<)GRlCTh;*_cW-3hkvfZJI%%5Rd*Kd`!vA`J~y(u9>T1>q)MU9r8>n*F?N!#Z~O zknKA+io7@tZ|q(N8DA9X`P*nLI{!zopQb~@r13D~iZl6l=0gkj#;!{=W#?jfkBIvi z*IqSdwx_;`M+WnZ?)0AGn4s;L_JPmjjrsj!zCK5AL-b67I?T5k7n^#2CvU z{CUcm{tev#?e_)?Q6p^8>D66~cu|R)A58(zs~vbLc_%iW--BV)j6)`=(AfcR;nNId zc=W)QweY>I=}iTs^a)`eS&l5F?;k-~Yc&3+-(RdeSc@CZ2Z^qm&w=8mRp9#eCQN&I z8xluy54D9c-7|Lq{5&!KHn@ag{Fi8 z{I*YpBDZdWuNNYqYWFsw;=m}7op}jte->ie*DM_DRU=$$)S@=UGhnt{ogI&q#VH1! zGX|(x&Gsfz17@ zE7bZ|Bi0CQrm;Lf2uRMa%aWp+EB{ke!M>kfn-!tjlYtPft}@L z5e}}0ttaG2R^bSawv1-a_Xd!?&I`=`)sBN!mck*eU0A(72R<%VWH!aE;D1fOW=`Q+ z=#HBwejTVuI*!=^O9Xw&>955z59_gRdmx4JvrhkqS~Pq_Z#Hs48dRA-2AzsR+|BRC z-NS9bhR^Owrk;oQ=M^Y2ueUU*+zS*ZxIx8gb=rJX7gwE+WiL)TGoMxG;M?lssJiGJ z=-J29srRRFs>(s}r__)Z$$7H%=dvUho72SL;?sDgaEc)6_GJ5nci44Qj@3PRP-8e~ z4^$_al2X!EalH`5R?U(_Uz-*fpT{{-&J)DcuX}M(K)3L8#&2P6_erQ8eFPOWfqEI$&m>Kn1UkESeDN(9ZJhSnfk8^E($i%h? zr#*0`fc+WVE%FhZ<6CgzS|yrd=u79fK8NDGE#j)EmzZ3v#h&y%hOg&xKV{(#FtoK` zil!18%o&aIlG~wVQVHI7>dER3F2JTfCiLcNFSIfPw%_3%yxd^NR%n>BaY6w`PE=)A z-tEH15u71>S&1$C$=MPgA{l$P43i8zutsqlSpA8^S=zodKZ!tlHGdx*`vvQ!IHRw2 zwQy?t0SqbRoYM=sIOTgQ^m`?MUYrb*PmaRm-zp?+y#zjHqrv0C3#?J|q#j8s*`kBKAGb*_i73-WA5Sv(}Ss*=}{OyNwM0={)>#+8%ZaoE03I5%bq`aJu==d0b^ zIrb9zncNoCst@9*Wx=dO%Y}Vt>4b)q3GiS{1Z&R-#tcUn@ksb-i2{bOzUeP;@doax zd*+KZ5`C)L6F@3)x-9;3E^HZaMHn{yARcYeq8o{6u>6$`%BXsypS2~~e6EIVp$CP^ zrHoE2JC7Si&c{qX_bmKeird`1Ddt-YY^&@P)BUEQ&PGNVKU!dJ#(P*kGlX13-Zf9s zWB*xS0M(^|%)q`2z8>cJ{1#Psd$i-P{9TomIiy2|FZJV|j+tcPad^UInQo;n0}=59ftOqUwAtHpj^w z^)J@qF8=r01l<)5EWIy2GvafkxHx9C!j;V(5K8M-tirg}{M?nZ7q#jZ;;sE^*uO|% z)hkTk?!-(nMXJNT7WPNW&&#pFlrwR??dbdU7bqWoOY9{-9Zz1H0r@RvZ2a@@u;P#@ zE0HB(-NR>4=gZ&Btd+zqm%9bKo@F>?uRD9Tv>oL;^TmNLRO$TH67jnY?<=bIh8Kmg zY##S@1)c#Izh039nNYfQ@+(yHOk+I-qrSNZt=sZY$U7EEK4bY@Wkvwo5DYlr@B{c4 zdxmu5g6P&06V}4d zJ)P>xuwu17)5dtVHbIWQ8daic_!IH_&8yPhdDlhtKF8qQkWX;ws5V$ynSy@a9q?M{ zDfNFnp=Nz|7^$r_rBAoFz!3)pI&)2tGJgHWZvW@#{&Syr71Ytukh82x{FtQo7rf&+ zSa=Ul@YIxx7!eY|eeh`z|C)E;6f|i1_K{Ge^#uQ1GNw+%!fUelraV7RRvUeWqkC z^9GF0wSsHX2Xt;pAibo4c;UDW>#;z>N?-f3_f2QPyHk^*nr{gii5_G=RUYHUX%H_< zQ)jM(E(~meKQafvrSt=?x#mDq?YRF?+k_?b31EH4snAeU3$p&S29DXD=3bGD;_#>v zxbvz5`!A5g-oLEb7M)r_NydX&)O~^7ncigaaTUy--hkn3pQz*HMsnL_=X5l?+4Gn>1edsm7TwJLt^J`$r`3B(VI7J zWZxCUvL1W0zDoLRp6?IQVq^s9Y!L8XdahWh*MlhsctWz$I#_o4Bfj{^=aM_y`Mi4| z9GPlN6}C4qH&hmO5Avd)>v@kxZ7((icrsolVV0wM(XVyR?6u-|4E}Ee{P)C(rVjoA zIbUpWhh_$fM|IiYseG>(+=lG^Q zh?oKEvj5@bjAyWkdw17N>Q8z7-DzE28BA*CEO%)?);8xQwD4|!RE-lw6#l@+R`=ld z+wH;w_d20$wJV$TCyESwEXn+NqHz9Q92t9NiQNHx*`W_bLaxy_Sp87MZFjWT_RBjV ze`FXdm*?|suK}cL)}JDSk4j(cZWD)knbL^NOsSQ`gN1j@7ybD>TT4#|XG+H6x#_Kv zqB}b5_GCr8^o6^zP40r)kWLiC)5LqSLHKO@UHmI_qr+~E z?1D){70A@lk>(fY!K96wap6;KQCl|~p!FPjCv&&tm9MyYf(A3;YtoT&Uy@kP1OA#Q z+P!kbjSD_-FSZG@QSe}=xu3f-dgri!d=;2B(2SOq7ADdITwtwNS|IL=T@ z5e_Z3pwA;Jr9Fc=H#mP8?B-lLMg7CDGIcdHu>Dv^^1`E4fy_l-nbmjv6nj3+<$s$m zEj)LXGfMV@%(xP)`^Ei}lbjGoM$(--+=oyc$WnFB;P@^TQrXOBAmw2=W&dw%?U)0O zzM3qkjB}rt8BpANPcgAOlytn`2zG}|K_~REROhlf+a%*le6wZpCeidQPmQfv5e{Xc zj|JKOZ7@s{hlU@!Vfev3XqmqlZXY$G1$z{z-cpXTJ>KAVeJ%F6j-N@t$|>P;1^`bkC{6QX!V+q{uPdK9MXyWda`loeQ@UjriPiy>M%@AJvXi!R6cj z;0yKps1rB|CX94|?%pco^wxpp#rJ}wo@wH>MM}U{-o%B;sx)OiXWcZ#v32Hugx0%% z1UcPKEl0-0!4dZ~h+NaKBcSxfwcK9Kdu^3vlS;6L>mC ziGqeOybw?bT^H8l$_>CakQu4WcV%t;uc3A8YVMdzgW$oA?Dd-eVC=ql8f>pkVeWpA z8)`%;cl zl3|^uj_l5VKIAQvjZ^l?(vt}#!nM43+F(5tl-fp$8uELw@)p0tik$bvXV>>EftkkG zve4hrDC2L>4ivbu-YcqL`d1ynJWHKDl5yr|{&xI(`zdBj=?!fwV_1%-Ev`H|fDQFb z$IZ_bnZm&$v227hRr5^ZnibBpCUXKF*}fTKy84sL(TBpiEAljHSS_AdmJ8|;L$PF= z3SA8v0#}+9*}%eR*q6&s87fS$s#9Xx%Upz!fg>cf6OGxJPn&@am*Re(b=c>y5j*g2 z3QRNmDp;$26(jCnlNQeH!Dj1!gBRl}u+bV=a{Udls?R8)Pt90(5^M=MZX5A^KNCzF z{7bAc5tt(FL}8J=5V&t2RvxgR!|F+}H0hR5SrW=N*chVrQCT!Jw_--cigd6m6P>jY zzE2%M-3c$j@bNxyS>Z$f27W<}5q9ioTp&FyFBHvYzJbZ^&Mf=6J-_45!TW}O#^z?>q?Upf)qnx;dKh4W#FuNT{prpxjtABCo*YA75SN0DbnfdkJo-1*|iJYVXw z3AWYHP@VuRESw!n_N4mfKJ3C|#PRl<;KQf4LVZ`1nA2szz87#l;W=~K?e$O`=Vydt z_BykpZOX7Gdpq{+6N8tx%)-E}C&jw{Qh4n98={lLXhC8Q=m!nK@F~$0EN9OOkA$!h z`^H0xxePU&I0F%x9l~bgCK%esj#7v6E(~Yu4}GqHg}nQf|5<<;lZq_Xa-FU~*OBX>-*HojTBAt27CNvl&Q-Or zGGI#wYcbF4zNASBY-5Th8#ywb{aq7H$K=<-*RhB3-kCslWswFe&+kLSYc1*Dcy)T{ z+l~+3`(oaOFqXh`|B3^QsOW?heO(ey!@~Me)2#k9Te1fRU-x2zZ>TZ(2~Bu=PAFNN zye5R37vT1UIP~cbp|uO`*v|j65mRl2t6qw_3uzt-wG1ua$|F@Cg&gc4G*Q40uvTx$E zV?6{7@4|px-MZ}ABrUct{~cCz)JUes*}{`}W0nzXNe$<0DF5wM{8(wkzKl46?K_W1 z9(f8ZY}aQjKe-+{9@l`~1kMs2y$#!@>_LMocDS)smEFV|p?d@W-CjzEwf|HxxmAJE z+uBjLdMDx>U*ZB!94@t{WtK;3j13P;pLscpgTwhb(C#pLaQ5z{hI_*Cw0GEZiUK|T zz|U6lR?x|ROCxv(YOu!-ShDS|Fgn?bhHdKseV$1u%JLi3($R!s+o2>`zq?E42^8zvF|*X$bf48acDk#katAtu9mZ^y2S5!(sOYe*d`U zg}!ob%-tk%FEX-JFkIkolf?mRFab2I=s3qZUr`N!0?3~z% zv^4n9^93~W`@W24FB<$^g}r>Y4HpktC6=7o15GWx5d06rxCRA4rxAHsnt7j11bD(f2#u{I&l|pSup0O#q=b8EHGhLwx~0uCB+a{l_^P|Y{&NOam9<~ zar8VePMYo?#iY01;@Zxqs3)khl7jiTSYscoeyhorTm8YK^W?zZ&5Pt;Kg6u^!>}VO zoD5ZFK|#kt$$+`5@yc%>dOuZ_ zDX~uoC3Gv2f_rajfY& zCY8Wv> z7FSL%gpF-WQL!rxPmwB^EFA`am8VMzQqRDuvu0S{6)TvYDaER+S6H!QICtFHuxYx* z(z0Qkld0g!S~Omwliem59=03Sey_zByLt9>;v2Ed-jBwtS&n;_>u?9ubzxeL3#ogT z2vUVGMk?mGeEVPF{M0<0yyu?~^udUZYy6aM@N}d6$srIqJP=|>S+TLXjLpgC_sQ|* zr0QYDlB_1f`hRgW@m>OZy*dU`9`>M{?;62nQkLNT%#0$`2H{6Ff7*EMBi`;XBb#;Y z&|x_nj>Lyx5E~b4J4ALN`{NS}u4`9f9M$Jkh~%0G@Af!sfj}?8C8zX!y1V%a}X} zhNbPq|6J0zy3OcvCF}H`c(&2^WnDx8?{w;Quj?C7jfuoy*Pp_)s z8}Bg0?hx@t*b(e*@}_{ozNFon1RwfG(~XYBFn)3X`SuYZwa|wCeT)UO>|!C9yNx!x zw84x=JRkkgg$-VmfO!R4xc8L@yEsJ-w~v_$a~t$1Ppd{qdl*hDE+5B(roAEaV=jEo zD3w&JT?h5nC`z97MLcU4!Ss)efZIRLVWrh`;rq-K*t|rSO+V$po@g3S`x|3+cO{U7 zA2TnWQlsi6o1v?O=Qy~BWZoqM(rt4gkBw(Q@l>;rV&4cyf}F|i)Fb$<`xM-Ux1jrH zZCn%;D&%TEfco7}ajaS>>(Tc#j(I&n;;B9qcTNtY2JX{dH^z zcF!spHr#@&>RiaU-AU-1&2t+y`*G)x|6r-cHE8<$2sd8%0lL#{*dg-~FpD2uk9*nC zv%RbF$A@TUIr=qR`+ixRHcOwW`|!J_{zP2(a2Jj*Z2<2^d5YOoBHBjEG2F8eXZ-ky zBW~OijW5o?%H!K{QBUstxV;SnhxVd1YaQ7z4Fy!-{U?)xEF5y_Egmy);q-bW)Loo=|RhQ{=DPwHr%<&n>~#94|7-C#W~Bi!ra7Qsx?0^ z6i0`$EbjbTG?#nDX4VOT=GnrqnkZrRiX>G1?<3fS=)>os{O##XF}%lV=rmiPU&HL^ z_Y?zmz~?7UYKUe>|5^x#bB(BfcL?nLm?4hSjpQ7#Uew2aEIiC8z}b2wIPA9zbyggL zfWrZ_BR5nW{LKNp6h}gdQ!K+XN3g&-4G(dCy!_AJn35eukr6vNXJEZ(pxuY9)e5Iq zHe2!U$CVm=i_qhrC0_ZnOX!)YM2Ai(u*znhS!NBA{1_SdrPe5YRdWvapNXO; z!6sC4`ko-0c?7OxjKY%kFkCUdD`3Ys9zMX0kdXAcl!e%{j(vs1jJih`b^x6~P9Z?Di8Rl&IvtmL0q!(ukT*BR6 z&tXe`l6WLaPMmyZm$2i9Gdo!jKz*I$=tjyEc&cE-PBd5H?88NvGSZc%Ij;dp$Y3zB z4I#7A^Z22nLbNbeqE{`7v{b%PY+0p*PtP_8p_7#v+n9`%bCk)k+!tfc8BoFt1E$gD z%gWWh;FrWl!v5dNqPtrydT^GNxp^(#Kg}J9X^gEi%>)^*PmuS@6;CDZ3EG_Jm zIB$*ybG@!0iOq0j>-*e;dqWRm^zs(5*fbbYCKW(Tkp&x|?t~euE{RSn8^nkPZCYpl zK48K*U*@&D82lI7lgAwm8rsvAvZ8XtG4b2Pm~WSGTvw^I`ECrI=$a{-bFSi7=~WzK z>qr_`ed*`tbeOv_4;;kr9#-oM6Kd2mrkkJm zw`P?G=`LmP@=74vd_e|!R>e?T?IqZ&A&(zZp1}~SFOZ+U8n3&rgEMz}GUs|jdNXS` zPD+hpw~i{1R85A4o0_u&W#d8ani1VObOW^(dJ7sqdywxnsW4zA_t7wY++7n(#TEMG zd<>|{vO9HhS-BfRw_FTUa9jZ_Xe*YET8Ed+ zEyT7B58=Wt9Tt9k9A2#T1=Frr+HpOWB`qow*7N++zPjV69Mm7DY~f>%i>LAEft`>Y zVF2=7o$%khL)d#_UkXf85mt}rM~B6Sctf!OPD#z#mS=5eR!!iZW2+9SLxdfLIddPN z_5k`e-jV%CR^wcBJ~J4w4NK4P&X1NpbC%v0Ul!d2(`5_9hh>FueWI1Gt@8 zWlvtfg%Zx``0u08_V%E-C2AJx@|kR4Wfu(BuL6_Lp-jQ`7rrx%rE`Z?;=EWF9C$jA z9XpdRF3z)q*(*!&e%6=>wO6N2{0cCo%pkKIqp zg2`2CO!M$OJo2myM^*G;UP%jaP_Yx^X=^e0WGmRX9LM#;`Aj%Mj&sff=!L5>x$=3; zo_0g@RVzlb=x-2b$X&?1+Zglrl<07K7Jk;|-IB!K?1OGSGM@md`Q$)f-6F_qbU(OT zE(^-Tda#sw8}dF}h=+awJ=!Ei>-c?8c=Z>0{augMs(<0M@qTH?B1V7O%Ax-82VBrw z1$LF`(wnK-Vx*l6-Hq7`vzAT9p5?c}YS;zXr7;zTM5ST(wO+XFURr(Tn_U8sUNJ}GGApFlqL_1NJY%QmW^_&}};Eaf+gtvYXT zmy8qJ84$#l#@SP^b4oNReH+{yZNUt`_oBox0?EIOqCt_R7_R0*)qewt;ztO59c)2y z-e_DP`m!%Jozj`#gV>Zh4Z6J_$Z)j@n>Mi!43wS<66nVz-oM`~bhIz9wuEF52U5R>dR?FuJj5ak^L5~Bq zLbrkqwO+DIs{qdPTtV@LIS|rILHM%YjovSM1Z8J=j-spu}U`u=5b_ zCB|{Lj{)77?TG(DD6?9)UU+v~HB=yjH4-(~rim&&HZezI&E5r4MJL zRw}Xcm7TD5;HKg)Tj46AjTaMGp(`u1rZx;4vDiH!_ZHjfh5`b`KpYQlea z-*UmNc0UHeHIyo5!;MuAn19ii))d&2f>yRLWcO|?tj-11c`Na*b`I{JVa(z~`{0iC zPV7!bnzXp{3l>?|fn|IWep31eV^liPJbe}Cs+oZF*e%#LVX7b>bsEJF6;Ls4KP+;M zgsy^iNU+}{B>UdM+0V3Dy!BAb+V&5vi^hwUPr}GMU=#FBn}%DSYT*$t&S&$`rjaU> zAZVdHZAje%IW1|hcm%;gQ__~6z!pUO6V@53GPPt&7&Fa}&1y3e zBX<@+W>LG)YpEOiu%EkzLc(D0ur1KXvk&QKX;SQxV^B4wHyb!LAMWQD@y_*GL2-_f zIA`My%#ZTsuJbUexvNI43*(@Ej5|sCrsD+8^PD{TDU7Mf6^4&Az@Np{X!=hUoY+zH zJEusJYDIA5UQoHES)dzX3LlsF!r4we_GhXFl{E7?SaC2}zu$_Z7j6>9U?9-H9yBCd ziLI`iDBRMrr=40=k^#vs!slXj=6R?TH;;;>l{?>IhSCb@3!9BFc!@1N>G24T+YN#d zQhnB>aY}OK$a453Z3Q{`2ztZ4BQ5D=LV@caR7m;(pNd_X^Uo2&)zi(KSJ0C(4H=Ci zd1igH7duqD84vJ`<;$0$QdJ`b!N z`caE&0wY}~8Wx?4?#d^z%>vkyT@Ea@+7bpNa9`lP3M>lWEg3dPnaOoTQQ7{-FoJ?v zmb542)CbU6|11m~bssM@X9$neE~0N{FzhpF#fjx97}~-6<<4F3(cwQ(pXkc>Y;#Kf z{ep9mevA3H^+|2&3}I*5Mfn-K#g3{BnBJ{Gi-lUWSau%#>I$XZKJDV=myZN9 zFr?j%S7BVUlDN#PLPUcDQrGWk@S8KsPK0HPuiDc&ht-;%HbhY``!DcMrBN9DAc11`076Apw#!FO4lMWc;5|-@6Vkcd`@wq$9Yj^$vjMPynv{pM=^6l z>G6GIW_MCUV)ZB=mDdK)XN9$J_RL)Lsu$SMd~HfvvL4#kS3ta%8|-*66aBx=6+KqS zlYKk)FK^u=bdPkR`A^**|ne}uQruGHzTPUG&ahVT>VLS?!-%y|OLC5$johkMXw zc(EBhe*tTEw$olh4=!z`F2~I&U1hln zK^HIejH4|tRoTR5Q*{1#P28384fYNYA=QVwZ;Ht3)`@Hyp z9r?Uhf1oE-sK=7cJ$>%av7uEu4ubH=j1BO}$A$IX;?#OMJXO9Dk`on3b-xTt-}v^@xq7q4z%v2c8G8qVu|FGyf$dOL@21 zNS(2s2&IkOt$EO$)SYL+2Csf>_|rEK_4_fd`W?k)u4Qchp<9?=HW8*Am@V2@Ou?hq z7eYU^zU30VI~hsl@zBF-NUcZ=8ID1BS*_L`16114bAki$Y%UJ-_G@WYL#Hj1Tc z?sWOa)tZ{ug}BP~J=Ztyha>O&sIGY@uKwpig-L6~->-sj%bdl6#%48se(FW5c5i@Y zr$1cB+%IHOxqrm!3eiL2p5hDwfwDd8s{OuR?Cr`+MvkFPoKg>&3iQu zewcx7`)_nM>`4!UR4_Jv0$dx;86=Ib#CD7SAU-k(gO8fA*t%U{I!lB8b@NQ3tse^9 zU$u9^S5yrzfcU|dV5bt!Sn()9@VAxD7|@5NSl)$xp6B4uAS=u^{S6I!yuruZj2+_H zk=F6nL>GPsoV^f6drK7{ZWuqSIvTN3>;4#`aT3R+{KXRm=|b!$74}W#F!~+8i?Sq# zXFq>}EmeKkyH0=hP4+Z6b$!AMn(B0|Zkaf3_i$KZuE=!5j^p*wH}U2dIXqa`2`yiW zMZLFgVBA81J`|boY?T|EFL@|#iZ`Hp1&6UU_lY>_y%8H5YXx=hw}8Xx=fW%}72Gtr zH;uC~W+~glxHHuQ(AzoZG&K|uXyGU z=i!bsVAl`7#7QQ0)Ep4Q0@053Q*@vc@j6gAM3Z&?K8WUKOHjl8Dfs&pLFjT{x~nx8 zwrjl;wbPW@z}U|ab0C7fzVsH_^kiA=)@_)6=LIJ2(xl4@>v6p1ODw;j4x;}NfjRCI zPwWYTH;;$o26Gp5D0(ASjBCKbC(PJj*+ll(*N8f8S|vDRt7QANXm)CoIm=WDgM@+* z_J3|gz2+MH(V@-c!cEwvxmP7igH2dhp&e!_`_V$f7m(lYA3mG(01`{~!kRfDG`~xq zH6Pgy{;{E~OLx2E*TQpnxK)-uZ*yl4&Y80A8!ecoYl1B=a^UNoi})#REa;4Iq=6xE zxbS@sToK8cS|5Gkz&S_m3g-Rs*?Pk19hNw%mo3YAUJmW`o#^B}fL$`~#O2E_Nlpsq z#C4@MZ1)>0x@Q%~PBb}@bmMw}slQQg0>inkw{hqNC5dd68qNFUE8S3IPN{}@(vpBC zRFr=srVN`3lP5d}X_zkcD0ig2cNqzhVI(iVMU4FrO|SpT&|=VLO0fto`s0MuFFUcV zVkad0-V8X)i7K`2#eTc_UGRGeJhtU5u?S_>5X`wWn>E;z9kOJ*>@pnYXYizHF|7G) zCvMXZVd|592?;_DJioXH!Zmy2;a@Ryd{{iYurL-IB|hZkq{NOa_LE$DlR$Y(IlqM8 z%df`vWHAGe;jxEb@Cfm~sER4rR4;RC6@`y@Q#YW zqMwWq*IM%RQZs}FaM$RAiRMgcfgj9sIR}wZGr%BYgZQ}jRoFI&k!^_^J09f5Dn>P9 z+rU{u?VSpg?HKFdt7HI^d+GtLgMZ+P#5bZu4~bZd-ueL;n9?R!jb(^v&OPPq0G6+fxO%kncEO$7Q3r2d(~Ts*q{j3 zkW&k%(?5&vRX)L~qvmwl{GHU_U?YTU{lS{k)o`fl26k*Y1&SNC2@zIGcp^TYO>Jxf zH{TEVC$j~7PMR>86eFR?C6)!0%!jr$)-WS99sbsFH*4%lX#QfwGUH@vE$8Sa?G9mc zdK>`bSX)-`un`+^s!*1(?iHhhHx(=)nqLqUY@x~K85(ChKd*(`( zRDdpb(7k`4!J3~Ak;piNu;Y#H(mH*pDXb$^rTgRudyJ>Q5>BnPs_8M z*q2G2;4s~s?ls1+M|XAU__JGLTxAui?QkNyQg!m&>_!IujhGi@%Y@zc#4EfDHNWRC z!LENdG)h2{DSp9+mxviwUSnSUE~DZim#Q@(gGY%o50Z$%Rp7>bFtCOCWJF>Jef zm%q)=}kAxwDD!_%4*E>vOjBW`-o8uHK1ei6a9XbLsz~f+d{wb zq?ipup-4P7{wZE=Tn>A^deh$cXV5PvhLq;ih>mxzW77f&Me^C_L)-t*dq^8hUZKLw z8gJo|>r=7b>@M{2zYLo{ShMu}I+$BpE^gWo&0bxU<=liE9J4B(s-p_w*XV=dvbJ{d zXfk1HWe<8HlZK|L?PBm98;mNmV@Gl~;Fm9k?1{vV<tv-1 z!rzHGKlt}E&4rZ)C$ROOv!Ts9lE#klCWpzZap$phV(|+(Ve*__bX`e}9bTfvUC6bt zElmUs^BBCf<2zcKMW!9^27zjSt)UJd$SF#WDR#FPM=uhBXj)q<^kV&K^5!U3A@5B$k3W{wos3~athDG* zhy#sVy$dB4B796a00%t(;A{QyQtP==m=ym%iq11G$G45+S~R7dN=tk1bzjHP&>kv# zkH1Z1WM&l=QL?i$GLxOSuj3RFWkfQPk(7o_84aHEdExW%!W;Lv?(;m3-|ze7ZoY*X z;Q8enb^W&9$e%%iqCeI(Oy#%c8Gi4~l0beZ>9!K7jdF&TSa6 zPsl$KiOTjb;cz!+>J~nym7Mo<)L#+LcZM*}cQR~)LO)Ta#vV_G`H-ue1=G(tMeP%2 zij#LaQ^h|w_I%GlDsoy5hC5@JeeryHn0`(CRBMP0YcB|1n}g}N@_G7yn=E;sCcDLB z0P}j4(yyop%=a~;-kjUF{l|K!yr<0Gb9ckoY3m?mA<)FscjE2|qs74?no&zpali*1PvAn2DE9jJJScDAzRJ5TkdPh+(e?wmqsJMR*99{fIWx-r7>m!- z4v@pz>(qE93+DAd3?Jq1f>X^E&chPWi+g!;-v1T9Bw364b>>X0j-XMS_*u1w0d5@J zi}#~Tp{jR(vJf2!2fh*q4+NO#1%Qm z+A!A0kKHTNK;hnZ8lXRjJ4)510bj$(<6k~4Df`vn<%P5Y)9xuH7{-cmw`cqK#;uvzf=6#cY*)xL=w@k5dkdN}Z}q_`@_Pruc7XcJ3$`zU*J3z{au1bp%*Uw62|_nu_eyjq=mDc+011DS4TJZ zfwoPXXlc`N=vi4u_C1|(e!Y_9Y}9IqG6`a4nvqPJTt+1W>971Ms+f3ScFkk3>v4%1#wf5OUA(K7?hSD@=Bzxu6b7G? zqb6U@zn=XB;JOY*rTF8(la{#3{U~LZ24L~aPAa+C%4e_Ko0+PNqk3q=kkj^T@G6inc?R>)W768Jns5SZ?a@WCv__J5I zlEXUK9Po!GKYdRle-~0rL zyaU>_98sp&6hEgrGxyiwxFg(4I^DH5)${Yu=w4CSnfgK4ATi+_sKw-?bqj{@{Hu<` zFDR+@!;+N|>|^;~%C_4sHmPJ#$g~P^f2RtYR@)B;*94;~-@(3rXTZ@BfmoRNlylm` z=-_Pb2)r4>vX?ON8;xgEZ~cBTghUD?L#TVR%26qcWdACehvb{fPNco+P z@1RC-hIZ02N4C^B1P8Cx$B?zJDCf^6U!3rio))c!nGZifVM`odZ%G!euC@@@^Y2Dl zofZ1_=KZLz4X|xY7WMB~E_w5?QvC4kHMx&pD{R^JlwzmK!J8mk{8KNB`yv}CAhunY zrn!e6OTt--hap@3%#XE>P-EZzeiJU0S;3*Dzd)Gjz?SUz2pl>(ln9Wo9|FZ{$Ela^$&g( zIpW?|I7jLR`AwvxbGoIE-ep|K^)F9HNf`w*(BEG3fEm!@Z6ep@RGBXmtAzmX0h9C#%NH)0ObC zI37Ay^Y^T`7oPaSJ6z_M#s2)P*w--$ZhzYhetG`r{=7n*m~{yBGDvJtnF>!#CQBC^ z8NrKcU1m_+3FhS?%%z_X4AKfj4W8?iG+Hx{-w`yvS9Isngz2$ZVWkH{&b@;{r{(z_ryt9y+$pg+yc#YHJ55(CBiQD%e4l*ERkRZC ziw_2bVP@3>aPb%Ln>0#nbkJf`A9+FQy6yBkbqN*UK-3H>hTFS%mz}dTytD<@JTVY% zd`>5C>wfgmY!;n$aHj;GM^4{aCNU}HZn}9UtUGff4SO06imziNDd{`q8~My zb2Ls`22_s^@XHw*4MxYu(75{n+~f6ENa8%2!=(viH`0@-n2v|uPrp!t+d9&lvYZ-? zmD#E6{bJXjRd8(DO}cLT5Vrco;gsi3g!o-E#a7)Dq`R$7oJ=X3o)=Xub>IEKyG z`H9;2J>=E2K-Rl+9AzOvO?@A{5~7Ji>aLNNydRVupHBmGzKH|&MzdBvB>ykGmh=l` zQ6c3X#2cTW&q0yQD%zHFhYr&wTkj%TAB)6C5g8YLMkk30ux#rI# zN9KN`SF4rTt|Sv2{NGKQ`zQ*RM#N+1nQpOdohE$tG{N77hbSo529*-{-G06qw0tTD zOS#2*i;gz3X`9?$Poz1!9%hfh2W1!jKM|7agM|dN*mt^TlGv+7ons(QjC$X@L=g z+u(TX5prz_!|yjVQ6rm4Pnnsq6lG5=Ua=I0<{7XpWj(OHOG|hnXN~uDS3z;banO8q z2SQ>Fg0Q?7`hYtAd@sQTqjY%p<~^hgPk<+?vti-AlQiB|nT;)eEivf~leBhm=69kw z_IcJU6+IdR#d8^OXu*3>I}s$zIq_al+geO-o_JwOZ(s4z(onWID~f7&n6s#zr-bN} znpoMah_KcX12uGn7j1#8-|_}3vU)+`Wt!}^?=R@9*$S6p4ZwTbUb;OXhH~0;VV*B{ zsx(CMv)KSRF*k!Q-_?P6JjWff>JKb+3}Vaod7)psDHhF$!ogOT$>w4j6zu#1byh#c zm)rB8&(6`HMUfahn9o2Ca(2dOe$L(DBmDC{0y#d~SfTe(*ni;!ym^@{j@VXD$LD+n z*BPE{r@{re6wNs^!~A&nUY`9PB*)&bO9AEo^l1LUyP%L(4rNRUv+v13`72AwP&HTP zWITba?K%4(^d!g|+hM^C{>F#q`9C&x1?~^-{ahyBr`?6RJinC{L%x@Hr z^xI7KU z{3iMHGeYDPJ-8NW&78G0anlSVp~>qFW&M~c1lUS&=8J2>Bkr~{yJ3hXC)&xPeJmL^ z4ux6qA$TRiAM?86(DYvvUF`P6!Wdn)DD;?cZ}&r5CGQFI5BZR&bDElMu1a2~_GY7e zJ=oAt?s?#R)@tcp+s# zZH2=5Jy^|vJaE!fX67qxSX~qMBY$j#@75oM6>D_SiZevAT9aW?j}z3Lrg(+3 z)6n}S?-Lsd3D3*uLwYudzoc+AVLwnwCOzJ&C!TpLk3A3fWiA#wg*vN2OfJ3={%Z8X zVWYRfyBRyLcGw1CZmkDh3tc7cb#I06Zk;UMeHygG-#3>kGie|9x}EC{AO%Kg|leGjqZiY&X6bc)n$k-rZQ zAk=0vP4hko=GN-q;--S1KX|g6-o5a|L}#j8t;NpI2ez-U6~4SU3%|Q%VTMXCw#84C zeRWX5(FRXp@`*IjCW7x+b^AjSXGZuhbHILNEsRw@52elyP__R99Ej6H--1{&a%`mV zzUJ(6Ks!{v2^VBb1ZFYL9-kHYuole{n5EYV&bH@Bb@3*W8)z%q46tX<^&~La;yqnE z_JmTLfD$#g!er+-P&?b79p%nR{K@wO>6%PEQ%;=vdnfng{iO|Y>Nu_DBe?cCM*G`2 zBk!Gx^!Jfxg6pA9it%a$NtnsrdhLfO;}+&g`&KPg1TqWm6Z zjL6zbZt^xb^Y~H0V0y0jVYwI9Mk})Q5_6QDAB3m!8p&{35dQ15=4{5-lF;YhK!h0f zakDz<-9A9GV=^ILBNijOH*)45?;(Dl4hCNVF6rO%>mh!lVci$uzatVTJu-lGMt>JO zjZ8U9TpKq2+DmEEqo}%ZmsmaA0ftXd!k$Mn;KyNQ?4Di*DdT37&bJ|wP1~P}?>l_N z!MEcfaZ)h*%Q-`LzLwJaHK$=eq{2j{yrrf#v?Up z7XskR*r6beJS6$H0IR1*#=J~L(2YO&Z z%Y3m^+zVs!HCV263wZO_ZjSGBn928!ZfmkY)EkJ>0mT%QUrxj4-GfW5!O;FTktWrz zgot&YX?Z>+o-(A*(I-VdDn#ynPU7 zbG#f(_7iPzzdYj2M181He+8{8`f&d+@3DRP2nP>)fk&nv+o7V*IUU^)qVCCp#~+~m zS3n4Y5|2D=3@z0bd{%CrRW+}anO2j2v< zRi452LkZNE|2s|N8=zqlLI)3h5<^CGf$EVZM`))k&<>HU_^UjE28~%{nhg{mK z(FD4+=jleUEqn7e0GE#q!Yg5p_#<{U&Dv$if>f3es9YACBtvL`S`6C$tb;4*>TH8f z2PrR(!ak3DP;;La`=XLYY6(ZbH-8-&Yx`(TQ` zFPd-hW5R?ec2nP!_Rj4B?@9^27;DLlPoE-(3TyUVZ31k!PNK){qoG8xl=^9&mYk~5 z!|}bA3g1)p*!%`(@;Wd<3^C}BR(Cbne18M141Nf?%YO+mbe>4Y{R*lZKYi{2ex&7j_w<7R9pw?uPs1xnINkt!@t<@=~T0l2B=56#)=id8HAanELk zn6XO{&4%hyfrULvU-+|!Gk%cqPM)`Ea>o+W5^3*&I`C!gZ`$OSFVqa;jwJp$$dbGU z?L%!s3h!L+=UrXXV|~fNHG-{7ld$UH+hG~ciCdqDAq#~}IAdjxj)nYt-X+VvWcac4 z&drp(FM^Kjh~tc6O%xP0NTXO552cNuw^99=&NEMZ!gtFijxuPcsz(*KP6&4Piy^Tt zmG;4jmFJp8xOG#|GXNx_}M#62*1{%KJiUm1Yp!fVN z@u2!Wvf!MYsY%fgr^Dwhr+VV?_z~oF71^S)eK17L1-17z!x}4D<}f;#eXLA|_dE}M zw5KiGRj$N5y?liAi_+*5=P;#}%QCB78w7R#gYe<#bHRu|cSt4$HtG(AVD2+2JG&lg zb}y&;oezZAJxciXbUYh3jJrtQ?x2{#>xJn(?4j`KG@<&~3s^J$8T^;w$R-?#V8w4g z&;zeWv}2hr`KcPvrIGL8ZbUur_0=f`#%kAPGe-w$Y%Q(d_s&FY4Xs#cDm9Xz%<2`Y<+%WenG2)kULdBdUu_`UkPW_a+OY zYh>858Xb0j>Td9vtIm3kc`KeW(1UxI<=CwwnmASaEu2_3fF0}b=Fj)1!t*C%D4)-; z&dST6W^o1lR!|Z<*RKaka4A9>I64%HWLA-mgdoLhbbED~ec^_Z(- zR`^lL@~e5UaK%t+won7*YaZ-zx;=B{&z_>6nlM+v2MgBskc{0P%OonTu#5jb7+%{7 zN-2OYKjK+_a3ogszDXO(iYRb>G=?SfZgoNqs9!Abb=Eh5xD-v?x7tq}#kBl-s@Sr^ z(rA*rm1mcSw$hz9zEZ0vZ)x$Z7Wj3L-!Bv7*q4*8qJm-pguhaw&q;R7*z18PjL>5y zE)S_=Z9L>C1wrTvUG{?X*=_C+-|-+;#x78u$Se)whTVUn5yQ(}O|vJP-M} z4(@1Ppp3^I;+j=ilvd`lY=t$T`bHjBCE1b0UY`lp=cv791tc9-!V$acU}>Nd z23;^@)uG1l{O38kW6ZfKPxsKS2Nj;C%Un>}c?;Y}2jLCPQ!wCxH$K+f0{O@6FmOZ= z?08#5`o~MbW*uU{JP|5_cTr3JckydgU-t4R?^$%0QLMiw6-L#8UAQ5O%?V~6m&@Tj zcM;|Ny+lX9I?x}_ZW66gu#bNwE-x_07gKduUkxwR?-5EL_3y*OXiwHlLyPqszMnd8 zac1hWb#zSkKDFNVWYwlB=*XUu^~;HpX}J#Uvn*%F@%>ZN=V!w7{bf*49)PtuT(yv@ zN|Dnn*?^r2tZn%t@zBIj44h_5iQj+F{4iN;_E3i*trl!SWdsfheh(SqF`B0w%AVf1 zL-`SVXsPQv*cp~ir7PqxvE7^*tvp64S{2m(sY+bQnI!Y5m^Od=MdmU5Y%=``_$74G zvD6$0I%0vDGe=SupEc}z5zT&XzD+%UyJFc2&dlO{q+6i}h2)cG;FhI3Zj?IkZj_pk zzax&_4KJcmC)Dw!PZX>Pe=9ULSh5MW1r(>A0Lj+Ngh9^ou%=2C&+AWl@uct^0;Y-z%H9b96O3nxnjcKc;9!Sy%7 zSlcRqZMUe#k#{f@83fD4;MEgR_|xjUq-k*soZr+7(_ zJ-Daa!HI|QnEEM%J1=KRua!1}_nJP0-Ld#rBMxIs`m*`Se<*lkE8Iv*BG;Rm(DSn? zDtw$yCWlVJ?%Xx7@slC`d*#Ts7K+sLMu9u+_Xw+-Y*=3T4VW=F0B7yc#>I)_x$pTl zjF)g8=I#yR!Ls|b&i4;2Gzvg#4esf?^b+j*If!19?$Wpr&cwC5A-R+OfaV_B0m09! z$?^7kD2$j)7P1C7!8{)KzcFM-pOu65cvp6MWjH(gppv}373g<-IYr4;QfK#F>8u^6 zp<{6g{Tr}`B*|KsIxZJ1ghs)?tAy6i{s8AK%g8!hi&?V<+7K8)?mpbvZK#QB@9DEk zgX&3RX$7t0?xOLRrqH)tW-Q>n287F*GfPX(U9>dAN8we%yE#3D=?C6}jr&)K9h(oW zwMXc7k`RP%ZbHty4~bFI@_FV)!|6i~a`aF|CxI8P5fs zJkHvA5yjGjeNbz0INSYFiA>ewP~&wgq-xfZaw_kRrNyJf$_t(Oclqs^6)=6h2ip~t z3ERD8SOz=;dfpcoygMVE!?}8It>?pk+cKd`^)o&F&x6HSBRtho#_hU>sCCJUZ5-}I z#hN0N+Bjm4zYR0%d0S|RXrz#x`^nz*6HT?|-SmPj&{^`A%AHRN$>v_47KI z&w2uCSLEs3l_Ky{@xwV~dKl1c2cHPk( z?VdgB@8`zMK7``;@A|m$zo-BAM?$H!8GbQTV0(t15c2=dp&y&iiN1gOL0FY7KKx{X z2L{Z5=X)+fem!?TCF~}UXG0}vrjLa9>-*{E^ocMsu^)5%Zvi#0x8VKW zYCpxT;W%@aJGf!N1E+%;kj#g98)E z)9*Bu%soq&W|qDYbfrz0L9Wvu%y5i`~C66en}EM%REtTNs;(VM}f6! z+b~TJV-~nx5T+do!9iIjm{;J2HK}}e*XD!`+;Ot2_#=D_{v+I9mj|;NRoQ~sUToNq z)znY)2Gxf>@nWM5Zb~=>FBKH9Vbw^{<=<^#U(gx48T$jg^7fL_fDqU^qe7B!)QGwq z3niM9mGIM|pW-{M8}#1OO*lKq2?q9UhxIS)uWHtMGqZjc_(E-mn4HodmNv=Z^m8?^ z<=H4OT+BP#m(Rh6O%nE9ctOSGSu`JhNk(;=T`jFx2M1P0iU(dfQCVR*9Q$sHD<9g3 zfzvZ#;?;j5Ekbr-@dR;E^?n*@F4*UygW z?o`0X27_=Eb_j}Iu{b;CGv$|T5NEH^z*#PFWT6^Hy>|GqJ|7zVo(FrufLdU_S0(Im zFLgF)P_WqedLPdKNrcmXSCW=SPl~vrMeZ`avAWkSs&%O&sZ9V1Z#CGHb9=XnV1Rss2J$+npb4MYZE=qywoBpgNRD?@AcZ%otd=-|s z#9`^Y5Uls&yyGK|ti1iDc=2dIO!+pOtbRO(TFw0sF-eQ%^Euq9+83mj)0>^1W`iq2 zMu=Ul4rF*ql~rvS0FTwx+4z6<*e*T;ziv6!cf&iXGRYRFc0}Nnn~ea?y6oA78dA384BAuA4!p?Nu5N_RAEgczE zNii?agL}Ipc7#><`gm{PX9#P*3!F`4D781 zv|PLfGSvC&m+gkV+EwV8ZZuki{Gzjmg4y_n0qo`033Oy_5g5GnVH~_dF>-zJ-yv1Z zyp~D@mvz{6CtcioW-l!I?-OL6kE0$Xp%57p%9d-$W7Jz@tHvv_3HTRoB}U=rvzAPK zBxf5wwPy*fy_oC0m84LlE2h{)L$G2T+gCRh7M_lw*n9QT?9@C_$9f&TROrJd#KhC_ zwRmNIDU#Ts#;m#jhRn`<0Jk+(85hH%PLNEFVx2Y zW4g#NEJsMJSw-d5DR6w01Gy@^6o%ELlI6I)l)U;r9P@TzK6pSFGSQtKJ!r(1Ro{n; z?OCM#%90%@8qI%82ePeGZ9(%Je=WAmqLwL-fQDs&dX5^!F5=$3=1{ikN;OQZJtvvG z_yx>c6@{%+bg<;L6V!~8 zBlitcB{|l*ICK3y3ZHlxp6`oeiUa2e?_|CU!(a=Qth2^k|4LBbBM@8AL$uxV6<+-I zWgm3y@TsgE8~=Q9C1(fX(&0g{lDq#DuGwv$NBl2M4^Sxa<#6?!0zCi zps948c3Ta=!{^(;ZleMQ?T=(yNi{GpPmfvI8L`R*fJ=sM5p}*qu^wLQ#4GRm;p>Vn z>i4f2rX3{cWuTAms`4Pk-5YnfhOnj1M8>*dyhp6V3bK(M@XmvnlRO($5QzFYEs`B_ zzPMxTLr@Iv&wN7cvHz1;VWH_G>5Qqz$Vas|{imVKc7Jw~%&-Y(3Gu$PRc?)7?N>ze z=J_(iEw8E2N)C0kRN$CuCrqv@Cuy}WyFU3MT>sLG{S!jTs$d74uHiY?k1@=upRG{C zv#{?6D^c#jaypzFhll2T0lk!m^rB}m?V2+b%Ag)}>a$@-;&>7B9J4 ziJIYBg8h+kut&#*8f>+N^bz4K_F4vXW&a>=`Q>8ExZdo?8x8E6vhR zQBZ$WPY%(2>D{FuwqN8s*>A2WccuiKhpM1@PhSlFnFnpE8De5%4b2&(flsexgSF%& zxHoR13B!-lwzX*#I=X>$ZPejpb8qw=Yejv&og)9i0(JBn31LHbh|a$%Y2FVNW^I)K znsXi4^{`TjAzc+0W%Pm@(bLH7$tPOw@*CQ&b%4vYHdv^39tO=aV&fJ~rq zHCRc|Y02$NJL&2H8#*&d6X*Vl!#saC{5PSC$_7W!-lL`B&rj*xP4@!MZu95QPI=}z ztWt{Y4rKN{hK7jV*^8>MKay>lb9Mx)lOSW^l1k?BoR2Cz##HCUePS;{>&fXRNUf89fNjYI8k)vA%_biq^I-?QYv_k(x)#BouvkpE zZj4JZ?Xa@(EzM1sBWC+-5%rdw0r}5I-~{j8z8l|{sg2ga$xWO^<{XE{ohEF(5Q4MM z^b?HVeT0416)^knB`~bc1RMWW_&P%wZ=5k>@w=Pg)xQWZ->JrSnD3@>y?QajQQ@eP zTq>@dbCtf%-U5FvM~SPL8aiEl6Bd*yV#nf0=5Ek~UCdZSe+CEBkD~ub({um}ShXHDRmq|i=hLOU zi@^muzDio({wDLm7SLArid@92WYL@q3DKXS%HA3$%z7kFs5w9;5z!#M+z6hVx}eAU z+v1p0{9ZCr7LQu^qPAi>{hsQ8>#XHiwu_6H?5aQ~ezc07p|%pQJY#aZctng2Orez> zH86FQ9DY6UTP(U5&Gz?kVq?zq#%*)`KyqRm^(5 z+zwlohTyO>L0G?AnO#UK6gHgs2pcqd(21#u!VK?_;?-T6OzyTOTjRT&{4Fa5Jy#hV z|J{Y*s%GexsS?8G?tmnoA-H&G7_^)00j<#sLF2rZ@N~;@ni(3w+;?lSbp~7L+2}h$ zx_2=wQK}Vsr%9Bp{@m*Z<2g9Q}AAdCa>&irxn7On4Mn zj5tD*4!wtcyK8BIu`}LI48!iF7euwbQRw>b8f93nCYc@lGju!yJVuV^z41Hr?dUT> z<*GZ*{p84A3|a(PuVQhbHv^^NM!2bsyOhRkme`GsXNERDxU;Ypj01Mlsl08ld9f)I za}3eWR329)FBBaD$4RC0Tj|r4_4HYf-vYs;P&p_VgO7zUH%Bjcaxex1 zW^<QARnlg4tnxWt zmz1ovX3zf9LhEO`n4u@7cPf8j;s+~cemoaG?yzEe9GZlC397=@x>kxY3S%j*9pauj zF{s6Vci;Nn6-V=XVyTP+3yk25>dJaJF8>|kPg~=K=*RTVPr@ed_Jw=B?3pCr3|Br0 zMvdFSXdCW_Yh&EeDpQ4K?i@@Whi*s*y*~uQFPr1hW540;w>XwGa5iV2x?*OTBU^mU z6>|o-u)+kytPN&hIO`OwSjpX2IkD7uDUkgM<=Nt4lj+AZ6F4?_kFe6M7%rc5Wr0b1 z1k=y1Y*cHSq;~5NGFF#kG7Y~)-z5J0O*;(}J`Z4-X9i-A<@FFX%Z`0SKh8LaqKSti z+0H@ZC^0gPbVmLo+d5h7*u4?h15c)%t;&@0`Fz`~n^d1hKwg?En)z{0fO;6-wG3nB zeNTukE=tU4q8!e3RiZvUWcl3Y5G))n!(1I@U{=usGFX4h&$a8dpw@g`$O_vo3Hsh2 zZ*rfX!aEP#`aKAMvBHx52vTM8hfKwvV}fwpp)H*I&fvopT^7{KiGBCbXEQ@*(6Hhj z?9iNVf~#f#{>S_Bmx7+qp#zG{Vv!3Avz1|XnIx_)vL*L#c9Nxw3~;jU7Ha-9NIIZU zp5l^j&~%;wz1lyFZQZ#6WYz7Nu4NETl?}wN?`wq-b1ZPoxyMj$<%WA|+*o+$V$t-U zk>pdY4zt?9fx}EgY?AUlOG^*N(Skxu!IhcbwpFk$&~x<9O))UvWROMXr%p&QoqWR z({dU1!=n-1W$t-Qrzi&Aags zA}F%Sc7ug0bCV@8#;c%lRF?4BB1h=(JOZ9ducU)#HqfTFP~*piO#=6m~8b*4P-a zm_8|2Zy2tjS8cKkd6##}mpy*1elm1rxDiWJ@MWL0{qfk>PB0IumSJc1 zzoy5+TAI-q!gBhVu(az}V7Z<>)vc)KyN^n0HeDd`wVp~dWxr7OzEC!H<{I(Xi9p=W zk9CWRCxD%8F$MljBwLrC@ZNbf)C>ov(+1cX@{AIa$3f`z0nEJKfGx{E0|xW#X{>Q? zy#Lvs(xr9Oop@bXFguq{Or8u0#R@oZwG!RlTPMDM&v~5x)X=&+QGC-U0P1$16+iA) zz~D3qzMMUVHig8aPNxG*Srx+~nL2B0vtbr7@8HkF?{JHaHbmF;Wm?M zo)<~g@WHbB)AZVV9h7dm20a4p;dZzV+c$9t#hJvgKD^WWjrXj)IooONKT#-Z>4%Z8 zKhW#ng@OgoZ|x2?rh-Rd2!HPR4ffgwm{=(c`QV0bp6A5ayd-$JXc0soR%i1}Ex>th zEO_&N@udTCELW$$u-B~>rl1XaC9S53QWMO4;t7*M9sIMh;QGQVFwUk}EccDWvdxj; zcQYNzcbZ|2yNh&ZrWd5SYU0@?`@vuo(eA)Y(EY@e9r@jZWpLM_%wP|;d8QxpX;olz zrtqHes{ZWeA0td^HDeXm)G57NlZAP357AzIY^(Oc_mjR0J(l~S^%KsW(9~we!NFLt zzmkTw{eeYG!`ZIEhBPl!iOH^R7Q9|bFsgl$7!|k-O5B@i0naGAImkgpssNQT@_0Re zEv)(yj*(aLV9wobux5iDWe0h(%q8J?=V>GDTd9hMd)mR%w38w>+lh&?%CJ6-_pmDz z*?40Hvh|(t>$V*WYLQ{~Lq2hyoj2;04iyp-zd=me7y732SIl*B7Ou+0vlFhCG}ZPX zBx@dlnXQ4C#rrOL4QIKD&<IjORSoo3ph~dSGO_J-SyM zq?i7B7^okD7ng?!n_DcHY1JOO=A8;YZT93DpiFUJHM{HTpWw@|_R}n(_?ARi)1v@hrK{tJFuwaNxddysR)bTtIhN)TX!BWX|GX9S z(QzQ_w)#pkwpxg?3#1N#g;cR3j%l>5fF?g*HYGzMHEYpgGoA7zK6tdO3Z~;!(H&QXK$w0Ig?(^)n+R<4rKD~ zGORmW5bo#OzS1d&l4-{m>RFdvuo!r=lvlP8sjJ zp~ilt7(@P`G;#0xOM;Lc!WLI~u!gED(l-tk^ds7qRvsA0lw6O9nF$-g>$^HDpYaNA zZ>Xfvyo(TWCXP+1JSg5@7SCi}MPZz26g!X-Mw==%S-OW0+xl>eH2+pSo_nOiR-eqE z6{X#<+vPkQu@_sOYdQI?cRl>jPT-l4!Qt|NVzi{z-G;1y^5SpzOFrjUVcv3Z% z?OK%KSCl#gu1{`*xGfdJk)@@ucgcCESe8RyFJ7gssTwq`eKb{8T?M^GhHQ8lXDRr5 zku&$?E}Qa``ZT?Rp1QBD299xL%1+N|iPkwmF!MqGQ(2UL+k%Zr71*{jnz(hX6DtYe z_vljITfe^#x|&q6lQVLLJox}2vwP#upGEXl?jcMl*XKTm_fVsgB04V2lDga4Vsf1? z&VFr)8j^eBx<`OH^Ku3AOB3kYLXo!jTPfUM(+2zbZ&FupOSZJ|HmKA&QflLK!DrkC z(OAV2a&yw~kIUhcKVyyYyhjB5K}q2{x^>#bFio z!se=*WKiae_mYnA`&1u@{1J!C>i+=ne56m|F}S_e0Ts90ChdgLe&?*tiL-)iSbX?L z8ro|R8@_J`M2?DK2Y-G5XYE@0Wo^Sse)_N*ll|E9AABzPs*G}{4!{95$Xxezao);2 zaliv$jRu;6VN?{j7Jq_X7B)6K z0j2PBuv7jIEim~d8D4Tia==RsFTSlHd;Ml=PAU;+aIT_za3Y>;#N?z*8{`;FW^RIxsWs#SlXctq?Ub| zyLxhjPE$sIdnz#X(zWn_pDXLaGic1@Ov?ZA3E~4c!=?~bmU4xEc1-RGmdit#ZQ2dV zB>6{lbzl>WP1a!lmV_{I#15J=T^sx5uO-#&Y-#Y#EwuUeYN%HGO1m?U(2g(-tUT0P zva(#0nbBAXI`^JNJ^xML`d=0^9^WFJqX!}IUKY(6(}UfM2R=FS#+hSQ1PUbt-kM;O#; zMzO()kf`1+rZ&`Z&y_5ms@gz(ZporS&QEFI2!pGYrZq6ioPrM-9paD-B#OYNBY4%Y&wqzb>+77kHI|p{b#>*M->Et6xrm~|XeBXV^UX^q3 z>+B;MQaA|Ue-xc(AeHYM$B}H=Bzt8GQ8>?a+k0!5Uwde4@4W{_MN@;QG&GI#TvwZ- zp`lb-8j@8=L-N1>FM8RV<9W`x@9X-0KOci&g^a2!SxKm%hB@(|jb-EkdjcEqq^pbaSt2zJA zdGi&V_nteH*XhzxHBVZx*pSU%_6d61_|q(Hf60&y+?AXd206Q>=;yH?e_pqVAkAksrJMf^MEuY88i=k_OLt=&%<&S=Z6Vf-M z;Y7|-H5vd5G$WX7I^m<9y;#n|D3;B$n%A1<;WwF3R-|CWR{ee^HoP?yWjR-A`(#HJ zAGbj8;rGSw@z?R`yF&3vkRR==`V8wg?-rvwjp*XhIvnz5tN2Z`AAGr_gARLF%PXyx zQ}WZ44N#39H$Qs8j4^KRZtfAQSIZmdH-Vna518t)7BnYWvhE>9bktCmyaz2p+dNG= z^G2I0ck$mn(^`m;UykBvZ%VYR#kwnD^sXj|tuqaRkA7>!h|DKY?^%mU?;=@fbtDTY z@FA+N!nX0_ATWET^w#6|C^x81%#?WJ1DzNa=*js#ejf06=20Ot!4X{79Kx4T<oA zUHanrNn|Y zM!?dBE}W{>pE~DfW67ogw5&^u%sf;f5-VV-&R?nCE@Pg@FUQrq7Zv;`4SGdrlh50D zyh|yt;VaLf^)-Vgs~JM`lYgjj(uO7LofG#-zTztz&QQ|GfXo4B;H=3{{9JBL6XT-T zgQa22df*k2joXRJ22niY{sPaIn^AtaBgAYrXYN%tY^dl)p3d^ zLxl^c0!K5 z4E`y1#1~qI++MX_Z`sC3t`*5XBPdXPoNKcVtf zFipA@#k#qBcZhQe9@pp#&&{K#>py~*yKI3pe7T25AoqLX2&q2WM2^D?BP({ zNolU33L9T#PwyARF_W~#cy!J+;YFN`{1@Uh@2l7v zu0SVE4#OPT2)6Q8Fl}6^0qd{Hl_W2ID=ysTDm*G3kMx1FChn!;=3m{oa{mkX{uH=# zs2g&c%qT+LgSBM_iLIPtyZ%z4`1aUHc=S+~-R)3kWh?41BUT=#?vLfZ#R!-tk%grH zn3!})n_^vWKz^tb^N7);;R^<1n`2di-Eh|R*@YG^w!*9(&RD$KfpymH z#-*)ZtlRt|IHcJ#&wJ;@jX~aIf7phimL&-VD-H+=4V+`iJCQMw%~)Hp98R@K*oVot zgyGLE*nzl6dTa7kob@RSy`BU!Ba3gCS@T{jH@yg(bKjvuu?+2YwPkB^ywLTp5qrEh zo|4t$*rIzo;I(W|9JVqVBGu+-8S9e#cFfs+6@3COPGcttX-!}-sorhshHe-z!F5<)Sy=k%1PTci1hEi|75hoh# z!=IDvSoMsX;P#aJ_PXuxk!D}Yt<d!P4W9aINJh6-#;kPBvMEDzky5)IvcyJUPet#FL z9y`#J`bOL}+nn`E_Fxg4?P$>QS9oHrCR_Pai3U0P(z;F^s*sNpTvz;r$}LM_FgpOg ztNw!?a%V6jJ%X~&s8Z_Ri?D*<>3ni{M*pT8D>p8N%v%yTzD|KowH1f~&0aLJdmrvO z*ezLhzEV)$rcG0#E!p7}5;jrBkVTlk!3$0ZG_G}7!ksJRPl^U4``c1A6XSa}=$ zA9~QZ&5e@evQD_II|lmoS}kE54QNLlz5dnH=4S-UEPEu;3M-Jw8y&i9{sO)ix4r30KE22fq} z8jv;1C^j$GVLm*6{pZ0ecvJC6Xp%XK7mP}L<_hTdfCTRwhBM%@wxh3BR=ct z!tEisV4|NUrvB{4Rr9{Vu;0Kozj!3p$10HejVw^xB1QhX!J=X>PY z-+S>8qq`2D1il8-W_9+vD4gl$#nZ|U+o4m_i1|HCgTI&TiN6YL#n*vk-)M6ln|711Jtc-NWn0m2)S}6UGhno@Ez=s( z25$}B*{pBQ)V(X74AZRGgakwJ;fl zCcA!yg6D?<=oe=}8}_(B?t?-x?pr1Zr`p6FXRiw-GaM)-@uHBu!HbSqH^a`jd*YYH z{0#lon_acvj^n)(D2H(iUGQQC_BX*y#HkIQi~odDmMg+dnRnr2p`rJ>Q9sA znR0G_Cpu0x!aEw+l| z>B6lyJ=us|-7x5SEc-UEP~Dbj?V{ke(zqbH)$Ll;(kE}TX992DkFn1yS- zuZe>XUl3NAU670m^=4+#UjV8(<7C82aGt6`12p~N$$-arg`e-PZLfss-jiW)zxSfc zFef|~`br3jTn;O~m`j#EU5YUJ42Y>0M0q~*+t##8u!%9H0}FI%h5`4PhA1-W;u`Sr zeTH{0&|j0AqXo-PwwjV^!I-)?a*A?#50{2-2T9aUQ%1S^HXGQKmNac{l?Lj$9J= z8J)%ZJfCPPh(cAl2MgP(MjIAv5w)LFvUQuCK*ex(CC8v+%&-5Om5PES>ay2^6PGg@4yt;dIkLDtBCpUoH#<%c=fC!m}81Jaho-k%j6DMrU;30wZ|F^ZkrL35xXCVDGVn*9wt_H&_7ojsd#?!#I1 zDtk7_@jJRtRc3B3g`zYnfo{eBCoDK^01J1g<5j;Bv7d}Bceszn9^56`Yn>A{JlcZ~ z=C@b z_wKS!u;<`F?g`6)CdK}AXmqXEw$GNiX6#2N`v~TBCkL^u3SA{NqUPb=)W1{*ot(3U zlM}s|$%7McX8Hv9uXZl(TrWd!hZ~c|JN}z6H58g>*-+YsHPEz=^Hi64Q%tiiskJqT zT31Y2WM5sTu>FgeuDyFiv2qUFf= znmkMUa2`Gd5qF+Ple7GDINHwtj!!sWY_1Z1^EPC+=8u5#hYB>emm5>r&?4+#JQ5Tp zmVt^@fBKQi--CVOEO}QP^NPF&4Q~uf{3G;eO-HRDD(Is{$QitI)I;j1rpRz8S5LTF zQM&0NXg+ov*JS9hEZwIdmZ;KWVHv3Z{U;3gR)pV`Vn9%7hf#}em-wHo5Z1kmWo0{> z@Jls+UmvTo!L?h(y#)hl(e+2K^ ze}f}7+iYie0|D`66O7csT;P#^Szcr{#9MJ&Um~Sa%DS?8a$A%b-YL^ zHPfeXP9droo3fQzUZh^?BJK|C$tu>Lg;l~)(XOuv-3yANMS;#ty@v(U%4kK!xUYEP z&OUbEOP=RGud2`q2VeZ4^i`-{ zEk`nyS(rITh4sr=gXeYCm@D5mS!WdE-N%~J@PcU4iq1=L=-q4{wobP9I!=Hs!yNk&^s_|u>JsGW2hMem<>@zjv zj!*-dW@?S6hDB1-*txiU`WBvrX%@!LEt5tJ*ANed&Jh|*3}Hl&CtGLcOls{$XdQeD zAK!U{{?>c2{oO%O>-~YBpUv5t&4<9sWj)wb$g*|u!OSu{QZg$uh`QTVnM>$9QSAPV zS{G3wR?E|+4a)3UwgQtjC*az$Tr7L=6evWVb463ZM_mU!c^+{5Cwb;}wFoXAkYi^q z{SYp@Y{Hy~EAUqKCT9121{;Q6$Cu(~7~oxpDo;@iUvye3TOCGY-*<_=%i@`=yB^+j zj%B@d7**}$v%izZ%&DMRYEm~2Cy_syYtF$LOFhu*&rPtn-H2bNRiK-)J01EEM`3(l zV-UgT9%XUZFwdIhX*n_nucJ`*DUc3K)n>PijzjW2J*IV)b30xb)7Of=l+eePrS{Ck zM4nGvQa(|-N%JZOSf2x%x0kWu)Gr*Q?S}iqIP?8RAT`|I4Tihd;113@SZEMMQ_Nj) zc5DkIge$;>XA+iYHd?F<=t({G{Mm@`H6Wj_im0hctLB~rkErFsf$#J2v8*=ra|6_9 zX#wr!dOT~`mz6CjgSxj3l734;m~tkBja%>oCEu%YtojWBR=R_h(gA4q(4wrhW3a5w zik%KIq$QGUsIlRk>-2{p*KiM)xZj42`Mqe=BUv6D;va0C4$mFiGV4$0VCzm-;nP1S z%BvS}ZIU_r#JeW_*W^MnXCdt8UKx*(D`8_)9W0)$#P;_|7QSUWF~tXgc!7D7?yEi6 zVCjZEw!}c6^k}9TF;VP!&zw&64P!o&a;3}129WuR$37EkY$+-qa8|K0*<=O?b?-k3 z&r?#d<*+Tue~=UZJv63AE^0LQ*JoS?yKtG^YQfXz2!#^wr**hIg#%tejFl#l0s=kK<>&{@~ z5=+jim;=7c)v;{MF~pI*;c4bSpHumcRBXEmCM7)sNAVQS$vTDQXYOK9T%`10x+_`T zjiB;+&QE;06Nd*}gXI&#@I-nPn_Z{Lw(#A~n|YscW`3)%#Z;SR>{&ke(}u+ElkALEzYxD8ejNK@i;?45PheGSGZg|3(aB0hXF}rd5@W*Ty)>z(z z!SlvL)0#vmIwH$@eB6q~YfS0<#@_UAsxdn=+mt^28VNu9_7k%Cox^7CcetdU4wCJf z%sC@fvN-iRj9qvP>!$cqlASuUbKMCq&Kt0%K@nKmXOURZcpQEYZiQi=48h#ysTdy~ zO?I!gKvq_xp!n01>gAqdX+{h@StAE6!X?Pc+b9lSR0Nh{7Ivf>F?*jsIBJj)Q;GDX zovHlJdw3{b%x5ETCf2K5g0IkFl;qx>(wr^ZKna70UbrSdMmDcx))9P*`IMX?t^XHgbg{RXn9A9;~$8)v=>1qXTVIU zw}jXo;jE!|0S>i$`yyqT%)w@uB=1C_m62Hag!|=oC*g%&Ud*({j!^49Y-s!^J~^gA4izP0 z$l?y+)&tI7S^2QO%d7BiXb4ru@%-?bc`!RDQIMVa2ev&KgnkoTNH^St9u$PI zsL7>hGTo5c6dyqK(0iy>einVM^kz>+xpH5|a_n2P5B#pEvpye(`$VN0vuC4rNLD&1 z(IcBc^4!-ShWXi$joTx5^YA@1#&UMb!FJGG^%SIi6j(s+Ak;8%p)cD_n7cHTW!gHR zyn7V8ea9D*!>)-cIp*YZyeDf*3ugNyFND*l!XRjI5BBhz4GN{zqE&+fyKx|r%|r)m zj9ClEdj!&enF_F{(T$B=z6-Q6>(MXE8mC=qf|d;qqT0n)Shyt*HwEak-`{Rxsdqo!etbsvC$KxFHT`23M$Evsdf~niO@$_guLsRa8 zIaP`@q3Jya-)1;psD@7mZ$fif9Nm=`gJy**E9?FN+rBG7+{eB&KLzlv^md_gBH$@4aFjU; z_w9$kz8##el+V9`TQ|cLp7ZDkE5c(5irCep0Slu>2_C;$Ln>W5PFxwlfsT+c8UG zS>uMkgbb9^yb3q++kh6!!P5d4cKvw}HdqCbqmMnU?#hAV7hVd*Yy4Pri6_-M-^DLZ zc64V%i>U1>huJpEP$%gv96UG?_to;xs<;%&0|tTI`3G=EbCKZFav$ZksN$~L7#y|b zCwytCLBVt-`o6jibs<)?-?;^c?S3Gb-_XL_HC6E0?UrbL_&x53+m8pnsbT)50^Z}Y zLj{!@w7Xo4kukmKOq^XMe>ii{`0H-th4b1nquMRj zr4?O#IZ`}r_eyHv!x<{uR9LEKKJ1!p2f<^mVMm}1^&3)vD_0i^H~-HuT+~rw)ISl1 zt|at6g&3r?9)|SZE1uwtpJUqtNt1UwU!C=1Uv_!04+mA4Q>X@8Q>TbMEt{b1q$RVc zn23g*&9HR~-{DW&0L6W_pxbj1ziHKid3T&>AWF!+-j~Lisj=Kc8-A&((f)@D%sKE1M!$}yv4O{c_349M zNA#F;i-DM8nG9BcYB9>QRY?AQ5f6_k5HwVkC@;hxPIHFMRx3XixTQmQ>2(}4*CM2k zp9=>jYEzoG2eXH8dVGU36o&van;K57Ve(WRa39nfBiQuc-_c^SIo>ewVpev((rvC^ z;my!IJe+kGX7+zA9NlZkcT6aJ|D6Zs+5wb#D~u8y{2=mnAo~MH;XLPK?=AU)_dR21 z@$CgX8{COnQyu8?r3U<4i}0{Shj4c=Q{{K#A{Qfyy%r`JG1L(jy}m52uX_fj=d+=E z>JfOA!&zzLOTlPzI6EyEvl#y<(pjNQ)9-Vh$!`N1y<|KNTbBw29_5h#nX^@MK1ql5 ze}#|d`%>A_wNO=pV4WJlJ~nxfT+~LCc6_7;Egj?xje-7xsYb{ME&#`131vURiivmGTtu-s#n^trX4VDLZ=+6t?&bcHpg zDM)dBeouUreo;_UcE=^R?}$bjbHFELGMt-w9+&)_0#CG$NeW7zVEY^m{Ke0DWh)-w zx+~iBTKo@v`uze;D^0fJ-VN#ap_anm9(|}|unx;;+Jv3cBItajqIBdz3$~=`g*az! z3HWbyVsQ?Spl_=R8A@g7%)~zQal0|e_;M%U0p1(EphJpfe#}%eQW82K5Eccu!;01s z*i~(Y{V(Xjg58SLr}ZqJGUnO7(N%D#F#&7S&I?b*T!ia}-|(w)FuU3-j48bfz~p|u z%y`%bjQv*wbFYe+o3Djm4+oHa>`t@`9sqL+;@J7D5SGu>NVnynFyzt#c)Tf^ZE{Rt zb9E01m8H@2(n7?F)<=RS&pb-b$wB@HMK-}ipT-T>CM!Mz{MsnXo@Zs?fBMHEVv#Af zIQL`QFQy3gTVnCTl?6gsRf?o7?i1ddX-bnntic~iPXtff1e(M%9Uq_kfvc$-aYdjL zyX5Omjr-KW*+HL}f+E|ccMz2J=wtie+xRA2nRce}eC~*Tv~{5gdnLVsReyeA7^l`^+j_&39$SnZ=+r z;)7&t(jy_Ia3D+NoZ9BOyYNzkgatkFVdZb*Y5C99xcT%`QO)E?;kP3HKb?H;VqwaX^Bp6bKQ7NCsF)U8&5A4dcolv#;o$c)sUH~L(WH*0u0uJi<@nj$L=Xm>nAHsU0081 z=4!AIKLxt**I2AqG6Dzn$EbHam>syw*x-J0Xw`E7J$$hpA1<_)$k^B5ajl!;-KZhr z@TL{;`}sE*U>`(RRu^M1H@59~7?~yP1MfYd_LOp&F@gOKBtR>n3@Kqoz zmFUqejDS0JoB@@1TAHE-Y%J$=UXOL+T~c|r`oKn5ka`&&)#SnQ4?Cg#bua2@(1r~6 z0a!oCiA{FA3Y#{p#h(rr#B-zXLy|g3hc4+si+8%?*PLWk#$~JS=XB#{*y1R z+8j;;t~t`jzVCg;IYqEpwzU{|@)qbW;Q4OVbI|2ELKwj3+~r;;1io@&XYA62WuLis z|9LREH^AmSd?-zRbP=6X)P%d&@}T7dccl(mf*j^{gE>F6ST z(z4nmCXKPDNuxMR!%2nezgIv^_jc^mRmcBa6PT{M2V3u11PbHB#LSLRuwAc7Q@Rer z*HL;bZL~2t--yLWSG34{ogc1HPeQeeuOT#how!Y-8Vg@%Pq<^tKnWIs3JHr&qT{sdLey_fxbNcMaFcr!%&;j3Z-^B$=UT9ui1pIIb8aMml zom-h06s!q1V*}{>vQucqf8);e5?D0Pw#mP9pxJ3ol<2-l3|M>#7Mm#unaq;pfxf+jz#m&}W{$nt% z-hKyC{5dOWr6u)I`-xkw@m)ce5-Y5H0-i+*aB(5`V!AEEV&fQcPgJ6UZ+#VhBmCdsU_O&mHSA4mrZ(c8 z+YHtwS+ci!x6wA=38ae7EM93Dco&<~w)=+6uk{#QeoyGIZWDehohVFl@5F(FKMRWj zTF~&xBz*Jj0?b|JCX5V~g8}j_;?JMl33K=-SiBKPbzd}VIyrJ1!!e|qXM-z>($OC@A9s1-l8y@fgBDqzV$585@I_YsnQiq^5b z9~FH?P)E1l~JTbgLar6kt{Aaa1W0S)isIBxA{A$aW{ z3#Gff>7pbZnx^E!=FgYKXj7o_*~ws6R$b~!Db=RZinpq;(eEIbW*&vCYefj0+d8s=?*>-n;rGpF#Y0D} z+2jqkq$zG@wBmFhIylT-B8fN;d0Xy4?8+@L>)1E&8!{Fy|N8~Yj-G|C_wiI7Crh$3 zZV9pf<%&gW{8{{9z-mlag6^Fc64q_O+<$7Zx^1y|+d>m2r}q*@-%w#K`Ub2}x(>hZ z5P1h>n(%htPRQEAxuv&e3w7HSsm)9aa;NXX-YVLHqp~HGXe&^VtT~C z_;8ObX&>Xhq{at=ZSx_-F$wUZ%NWwzQ=sPoo;ls|N>aXJIOisD=56V0IB1k5HZKuN z;`OS~^t%;nmZ;O32U}qu&r(Jzw+k1)8`Jyop6u0rHA;MA%T_Ef#kOxwjC@s?&CV3K zGP@SK-ZWx?MHyaBE5aeQKczDq`jc45&qxzx*sZaTg-3U{Kq+TO*e=_Kv#OUv;7>!^ zkoHwPcG7}gyxxs3N9w^jKV{mRd`|q=+9b+6Ey1U0+}SI~zX#HPh)J*1skiT3Y>K?h zJyY&1$6JN%+8D#89P<*a4y=Zk$9ZNZc>#n~_~7O4*AO}Hne@MeQqbl8Eid&$5}7-^ zgVpAQ{vNTkoAH;9k|O=hmAIyinmL(;bplIz3aXx8kG2yEN*%ZE?0`7 zu3MHVcVtN(`ZzMpj02b!@>Xox7{+Ssa#3^dESU0zv)Qf%b8ho|Aqnz@v1fN;$}>go znEeKGHC51U;0`bn{prd(BN}vTH~c#@7?vv5!&eiy@i8a0F-cQeHyks3s0f)UI^?syePQeQtj9+0K-y!S8nNrSXIc6|@AVo~Q zhaa2MN{n{vL(B;!CNm`s)bw7#h$|t&*zfAV4#sTuISUq%-vzy43u<36WS2_f z+413{z&x)&n7phQ`zL77W%K{QUa3V)>FOg4YS{uI7X9d#oEPD|Ozy3?#kpx3tg`SC z8cnIi#pA;1b}M01Z{Be*@kRrUUhK5BAue(VqD!OVplh=;JqQh?Zy!$!Q4ck!ss1nT z_kV|fV_cbw=3HUQRVUs*kCHC(=HAf8rLc5YZ(3Mv#Lk~9#E>G+-CB_jhUXTegZT%H zw`zyeKlDY_+7Xh7H_wV|n}e8n@*f!Y@FmP|l%+WRP2hUVfp@p+#AlUZ?8@>>SY+N$ zXdG39)^@$gY10>MsQ-xBKQ!oQd6t;!i#R<_jo$52U>hwAY1%d^g!st7pGJhR&M0QQ zVgU1<^a)(ny~KMXvY_uTL-uTuF3jUQ*H0I6VUA_9M3~ZqPnW;st`lqC2T&%R0j@-c zzj21IH#63Yqdt|rX?3+DdoXG^tmNE9nc9w+r} zRG?9?CcAt;S(HAHr+aP>;QRMeFmCXBu#f&IgxXoNv`LoqceNb0N5_lh{oR;k-yKw! z6U1Pr&3HY+omC9jgYeOSz8Y|rZ8Psk&oyKVWO4e#;$ zYoUB-j$~V%Ei+#04z&wSsdK-M;GftaIaX^--bwkQ;!9A(gP<p0VpkThvN3qvzv16PjEmR7I7t@VV zr(T|&dHfqqC%B2p%6(b(y$&(&OgytnZw0@*QB=|EuBc&O5A#-sA>@Y9#qHZsLyj}d z>pW1eMV=ja$Y%z|Ut!qH2>P^oAk&&>OJzy!tU)J^RUXqTd9LI@LvoVgLun!BGg?!m z&PGsFDu=wykKxJ^p1;U!0vAhlrg;C6cOFM4b+%7|B@%zqv@C&teUNBYwugM852 z8pL{h1~z#Y=UWO;Gb7YAX-(tI4hA(pM*lZZ*b+F=l9GfPdY z;ob>XvfQuDI<>}&kIv1-?sN&e`>+>#I3fZo+x4lTZ4oS(CQmkh1v-**2Hy^Hf=45@ zs9=4E7}~g3G*?s;-#6#ronCylw@8;Io@z%}Rg5``VRZX^ID@l&=<2yfA>r|H=w;vs z1M_-guZC8PO!gO#?6LrRcXJ9j8|IV0!IYV+#Zb1nHIv`gh5JTN66TH7qK+T$5FAs$ zakL(p=Gl& zWivKEIukN(*wU!dOl&w4$%3}nvG@!}wxsP09-ZI`JvIA6=!GyA5@<=X|6&NvbD!z5 zHW=$>#y+HI(bHp7#Hi-}Xyju`UwazTqwBBX_31pRZfcR>Q5HgebB*X&)j;YQ(gvNA zNYs13L7XIcBX!wbF1)-x2sYgO3@L{XN*BMK0Hc2NrN?(yg7WY-n6AA9-|ux|Z4Y{~ zt`0X?$9u1%3wj`}CxBx5HX|UVv+!1nZElkywA)EZa!s%(@ zY&e?Jy;tVse69+*%X$cD*LT3@-cIag{0Cv*SK?T;&mUE-c>4O+*a(OdjHbo==o zP`7Yp{r4M_tGX;beM_RCZ!Mw-7_g`O9{MosGTT#<7j>V4nDEV)gBU_Qe zJ@dJ8kmaRKZK4KCwz9=xYh7rMf)Bg9sU9omErSHld$2_989e71@p0Xgv7j@aJ)O`b zcK!Q^)#{B<+Ve5@5J$0tCpO^8^@ulPs_|Gr9s1<1gl0b1QT|=ob6R>$Ndb$U12j@$f+~{6SmaoZI2&fQ*mqS6BzO~gc;|SLW`~*8@h@!gvP|N z1=nKOE~!1KRr*qSU_4vBfM-y>a^Ty5R9xbDOdRx}7;>L{5MK=6fK?ASg4YIuWS2c+ z$(vf-eua@w)HP|(=thWi_Ga&^YS1<}h-PL5GYj!(R7ivx>7I^mQ9b)8Y&yD(i-cFa`&V@M9PaEnklaEe zS;~TF9M}Fte0O;u(_3PM+p;3qhw9;?YnVF~bgma_X9lp5W_hrsP7&k>M@w>gZx{33 z7UBFgzrgAFUN|ttj}`Mw|B8<{g{5O2!GY=v;=XTmW+jJq_W zt=U34r`c^v#TSR9a#stA@z`6c?-)9Srp&Zl>_ok!b>C4afaSuvDM>{G+RE1 zEeN?I9Ej3n#>)&@nT|L8y?Gf^G>(_FkM6*SLkmHN|AzU;y0FqC$MDI>28=VGhUGe` z_|EQPUlHexKhzB5V0h&w`A4Xu@V#%lQm>7<)7qmq~uZgFBoL$^BU$hVOv+Cp}q9 z{0wox{I#H}{}M;f)S_n{SK#rYaYE4CNHn>!fR{kd!|)_eCVSTudRhfD+?x(EW^%Or z?>S-hl7Y0%x*vyuXgiuRD>A>M1yI z^9^i>?}Cf<;ixfzJ1&$|Xw>HcEGcU)>`8bfJSuu346XePNj3>=PlhGgb?dT*6ct?d zF9K`=8^n}U2QuSxD_hw{NwmQ=!S75qIBTWD){_G%@J%Uf>wg1;x=Y|z`xDybd(wbE zQt|B2a54;Sl3dT=Zs?zP;2`%AwD<8~H!o#NG8EjIosK12s&E84FFVoZ95tGwy9L!g zN=P?dLQeN>*;SiKu<(*BwTg#v%#K-5b>^Ai;KDQh132^7N|m1ce2=SE2zca@KWmfI zVPTbZ!ioE~NW%^3@Y6L?n^~^3%w#tB22c42^{ZS+ zC&q?6m)f#X1F}%1!CahL*n{N`(B=+483wb1napK5(1_H7?Vp6o@XTT>wXs}lUXWQ~$B z1gjS8#6e5GLEZDOFvVgNx-{N`oO?>_bYvVQt=Z)B;!OZk)+&d8OomqQ9m~#TMR?@a zUG&IbF5aCL0Tt|)P^mi?ER^~Dr>{Ki-l|CMe{x_$Ya*O7x`nHG*8_seam>7a^mKe6 zw7=>DxAJ32cbEir*!t7UB5%I;)fJu;hA^MWHF$E~4G0L}tp5W&X=kStj_%ZD|Maf& zPIMJsGIgTXcYp8=`Z4d?5g`)D3F@;qyQmlhaGE*e)>H zv;HVI#uhAE&cVYmJ0$U|eCSK20^8Sq9*zxEp-;uVXqMq!aBNxyi<{(`>RfAd+qemm z$8);sJjPTjC%}nc6&Sgevq2BU;>-qh+}GcPv@@1`)M#}jT@Et zs}Y+dPrhniY(QO(u>avKu~GJv=wlL3J09~L(zkWul8wEvw8M&J@EnVa{}ue?{2Kp$ zyA1A2F2nNbR8Tx?$5sdbhlBhil;(IDotAsBdwDI=>-ulS11;use?I52ZtcPD4V)$o zEouW@p65|Zb)!1E9PRWq33(uEZon(Tjxv?uJ74>q8WyERJ!^$EMH)8KyPI5eB~ zMjV>RwcBreQ1&BZhhEvSgzvHJ_;Xpwy8>TOYIy)({8z*CP+1VyjKaHP>T&jdIW`qu zz`!vR#rOW}vCvdml-jw|ltX#2|K&GGHM6GUq7tp0Y0A`NZs6dH%JlU|YH^fX5bJcY zVP5aPz_tHzblwj+zuzCPR7x8S4V6;T)>8NDoc12d-kWUR_TI9htR#^cl0;_r>l~{| zkv)=?tWfsmdwsrtfFJJ4bzj#x&*$TDupJ)Xr->DP&r{o@b@JghUAbj}=z2y)kXzF^ z`MGicQ^mpbN zYE=<})jc0W#^8?--EBBLS*^($=Eb0wx0S9-zKMqOsFv!7Dq%Fk9iI+}eFK zoS17&C9#M{#wqaeMrSqDOi6yHF$L7MByDn$qk1OnhiE5@4~|+|ACo(6m4^M z;eW4&D3W?4z~ypHoOQuayye$G)c7D+kRbB8(qB^jP))sxG;z$)KsE}L*ld3*P}|ZI zUI*#Ih3*M_M)xWmFCRircq{ZfAAr}~Tp+pnH}$dA;dgdsoaW-gRvt}KbH~?k;Nem7 zSo|CY_R^KJUbe^D`%C0xXOYeA=q$$eu6!Bq!(MT39x>V;x2Ie3o-?IV_3`KMXQwgG zHTwiyUE6bEwJJET9}p$IJY7av$Ix{*Bw(HGWk9%cPpX;k6W^8Ne#T6 z;lwj{KBX?wZis)S#wL2}WpNCUbNmT#y|oM?yMCfC`C)9{+giF8=!q7`{=)bod-i=7 z$njw><=nl7vP*o1G%=(tKlOBDpZcNl8r4udV*Zt`w!R5-XKC=DYFqAGCHPe0-tRp4 zJG>d_jSk}7{j|~-l3p#LpW`~?o5$;ET1G9@nMs&mu8O*MJ@8+&zOqRr9TF4WMK@8w z2XDpWQ`|s3xCn9^RHb<uH|q zG`RdAl*bKrfz$`Z;QvH}i=zw4-`^UKjZw$>$F9@(evX(J+nx9NU!_+^t=KnbKivuq z#?`;8Y4(EW;5u%R()vIpZT+!Z9+o}|4$jYon8K}OwlSMFYwe%qP*ovMP(FnxwEF8XH3$KNiN+6g9bl&UfBFfrpBXZK0g7Y;(^0S}zI#tORz z3Ab3P8~(PQ2*ZQ5z$p42^}83y+gE;sfNjZ8@bNkg4i(I*ibSl8o+kXH#^|?6u!UN8 zAPtKEe!1cmb-PjsD<@mfk$e;Cpb21-6Azn`s>#b>yr3D`&k;iM{nGTEPA_WY=VOPf8}vc>?neK+8;xvfwq zEeMY^7~-lf?mXSVj(VIhkhkq<1kH*d*0<8;krOQ_wEifZ3=v0wo?w@EY@!}Fz2)CN zs{HzsKR4f5K(@ned4K6+=y&ZjESm%T-#kb5e%}d{ce?PhuIIryDgho$zD0B2kAhtR z3hJ>cO+KB&JoNb&nhwr(>i@4_*< zK2J;bak?+{A`70pQI!{;YD>$GeFt;F%A3E(mFEr#MCCAN(J9>y8fWq$WR4-*Ijs=q zxH11VkcB@Zj?M0yi?hm`&7KMd^Ok6S|2B-Lj2S_bq9ra7pKXw%aQViy#^v`a4>#pItx!G9g>>kq9uc^LGn4rN-$5*gpzX(xZR@#+l-21 z4I_U(d;SbOJhuR5WQjMb918^r+QXa&H6u za%RGU=tT57;)-z_qWMmnY`I8yJ5?`R;CqiiIkZ;HlS*x{VxJ=iK5rv@5MSwS#6i-H z>_U+P1K_Ma;E>;M6o*4Xcz1v!H|iXa?oL)0dD%7?{mK9*co?Ev-$$f;V}La8j`Gp8 zj#ycKjuewhXu(h?EbH!u5ng&M-7b`K&$QyXJ61~iFH~SppJ`+{z!kbSyoX7(&REoK zm^^EC0d)TwOjqMAIXNU2M{hLbQ9IhAN{@KHqYiLly)6fu#ZXz9aohLhL^&PIyIP`Rmlxw5aqf$ej~0U`-aBwg~1k1MT@g!+MxMP?L?W zY?l4pgK%7;v%IIonmzlSpxvDtA-&oFua@{>y|^ok6fDJ5gBAz;RM{9F-Y}Gsi|^-kjgCtlAQ+9hQObh)nPuo5-*JJ5Bw<(xl$$=b<5W zDBK)-2nLzyu~Bj#n&_4;cl)$T&YKy;#ZoKmE_w)bIhpRaya!v}zXH#nuGs0zM)Gp_2iI5U!?odBTz6x*JZI!#_ypB(Y|~9RKWiRk zM+TvJnF=}$kKsZM;lErPgZ&o9ka_M?+BS5zJfox(oKJZ}Nl+Ff&lnEvM>%JI&ann;N#(3zWx2ZXv7fE_kJH0gYK`gwG~t&=qA{?yq_j z;Qm<1zOOA`yI~7TP4QhdMFqRRag|;NN8{cfPVB5}g}E~|@%uqjOz^g6`?tB$)B)u% z_4HzTw80Gz|2#_ib2YHfJ6~Kg^(zd#dLCL&w&uO-YiQ~LRd%>}l1h(z@Z|4Sth;=f zq?z)98p7K`;`L8-XhAEc_czG8<~^YB@SL2Q34Y(k26#Vc3eb)2&U1g=gX<Zffs? zyF>k0H!>7+`){Vti3Z%fdNYj6-AvDKu7MkmS4g3WnGh>_S=aYDD`y|GkdDM}lXVwN zmy~0+(oq*3zE>ZE$3zyfMC^4MKFKis>l^8HQzD+QHxbVEAr$c3U2Y1RNPFu6w#J0; zLvi*u+jo)zr>W5Pgzqq7(M5WBSOeT{?xBNQ>!fRI1;gb+j>yU%qk)6}N`;w7f1m2I zV(tQ3`RoUThnmA=*CkTR(~e;F{VzP;Wr|%5hCtMbvv6?j39{Jx99nt4ferUBEfo{%D)L$odNWdMx_a zvwV2sh;{P$-ZP}`luIEUw9v_2rY{a6BlUL~M1L)Vvw7b9wYPBe4y^#&;re*0ZwQUe zS5w>xx(6Np`vq6_8KJRrJdQux5-s->iSMwovx|&BOR2*DRN7}M=`HTU#sA!JO=c}w z+PCJz>RwW4r*!xmdj-zVo(JFdq>ykMu7hYwyfNSWPh@fpoKW8*ht_KK zCD()LvggKc6uNZ;Y@e@z)x+*8C*IL!{nfKTsk0H%e_Vx@4wmw0s|k>=u1PZ+SJHzc z*P*_zuUEqWO%!W^f*Mp1*OMmWsD3O@l#=sbuWq(9Q>fP z7!I@u;Tw0Z!{zT=X{+cebnbN--2E&#^?(oZ(L$OjT-cANimuk46Ou+6c_n0}w&ChkA?P$I6l)GTK=a!n zG;Lr@N;ho9<9%ZJsdz6*Q%@?-gnWV0i-;ZrF4EZb?KxZb9J~>qv${_k+)`Ez@_|75 zvcZk>^}bWPz7|lMFq3q3uL6Ew0jo}DQo@Eca;Ilz!uRr%oXn!w&#wtqFO_iLx!W|M zVlC{`olXIQk^0u4B~@sAQv_(Orp)*{m@~Tu;{Ljey@M|GsDDRr&IL!_w!|J24#)}7 z$x@$<52^LsPFR_!hZApxVz*oWLY&!HNf zT~ctD&g5eLLaLb-z&rMPaL}I)xOsRxyqFZoqh1u!L`T7$UI*|qqB|AT8)Mf6DP*9Zq^o@;31Nk zwqU0Ij^gA-9jFQPl>gWXN5^Pup4uSM@J*q7@^ZTLX1fVq>$!$4qM*)ZJbD!H-$SBruCEl|0czN%XDpa#3QoPwBA8hD9X7}<1LCG@v&+WL zc;t?7)gJcX%HUvDRrAChk3-uI!Zgg0It^OEMa?1+!Vd+S43YdrtS6dg3O(BR!qGRrwkpKwj`wm{f6FYOq== z6}pB|SwA1HF4_R8eg7)9eCsBinsz|S5*_lq=E1>7FvhMEom z+~tKH2DkLa*Q+e>uBkgK$ELxX@Kf@|25T~TI}euBtMm6YE9Cdbj+0)>BjJEP4|BSG zkxsqz#EJgvi-RI8sQjcc+J=|WfiZRDw5K!HK6^upOrFB(8@8zJoWMCMc0BW(xpcvx z1r|PY;fz~jso`msT-MWsG;#_RI#UM<#+4S|OAEpF&;P-*(X-`>IUOit%1QbgYr^vI zv+|xIkI6L^Qf%cKzxO{d9 zr!U$|^8^oObH;wT$Y?BhzW)c-LzmIUMq{qBTP^1~uZEk`XVHiq$KXe*;3qWK0X774 z)2N*^W8(ohe1mD%&stDFZo!RLpHNKK0Mzc%l3#!H6tmYaFs`==KG`3Hx;+h~_5152 zmBduC8tjY9|D2cf5Hr{TeD!@jiKIZg4Op-;=IgPBJUe1KiXlAT8#t2Q$?^If2b*|-zUI{gWjB9 zrKHq+XRO!y4R0=Nr9+?Jf&C8y){kzFCLeXNeS9-07N3SS8BMh3`*Gpn`yikEaSpnF z*I=IjOCIvx2u~EW;gFH)B5NU5YpL&~sn?Z~vi}g8QRYS?BFz~`9wqh7pXEbJbsV2y z&tcbgK~b_d*KDYP-MpJTTQ4W;Eea0p{SK-&+>poI{X}sdm5|fl5tRq5xZkv;Fn+!d z);SN6iwZYLYBTRaLWgk>y8k5=D=&(@>M!~F-!}B^4zgLRGf=a4mi)H-0O)IKbC*ktFJk0VOUTESHAg0 z%M%FJ?Xcj2=YN!4&aQy8W*2_Auu@*v^%7m4rGCS0d;g550LdkT)$j+hV`j~9pDgsn?=N{yA~V6`BK z?`LS!gRR+MYY+?PGVRf`ogat&x1Y*$HqrU_LD2clF1mgG59o^?WY6mdIOGbQebRz2eg8W8M?N#J0A_=AaxpSy(MQo@&cm ze;Q)#1z$ep@4{Y}_CgDr?b6yU{yg%kyA#ZZVLQS2 zwc~xe9Z?Uv363seAAU(6w#M_2Ct^Qo@Mys*J7A8_Zkn)%*pJ(G65V{Wj(jNJ5l32g7tBgcLgBIQ z_09pq4@Kh7*+(h7ZV+uP5MD*UL`?tdTU>fq_$}@S^XU6t=-OQ$AGK74_g9T5RLvbv zEZItrf6k|wPtMQ?S5@|Ic}8)?|E1i{O>~$BBw(J%Va@4l4G+IL;}(}2(uYSrT)FwS zq@P&`>W^*V*6Akyy+vL5;k_udDQ`(d6E0KwQow#QEpe1pHJJZe35T=waLbFzLok_`@YJT6C8e}`np9gshI6XBu+tZWXz zCI4LLokEBE9T%*S*@irAP!*ljnos*wTX5#W*B}+^@y@pzxa5QzuT2bL*ZA4A{`C%c zZF>uX&<1p-S+b;3LPqt)@;1z_d z{V)P{KdMyZ+FQ$ps@Y0?n?kwo+bno@CyU1RNiV+HRi9lN0@0~36epStf{4l$;PiMO z6c%45oe~9PPWc9JkDjCU4)#2F=UG|3O*dTJw*$@+-L{!m|3LP)8<3Ii#HMrZ!>>Ru zeEiUY`-<*LOz=5y$giTUm&_#X-RI$H?M*rUzfn|dx)xeLo&{-zKHNggYVX$%q%}tk zFrlIi+s$4;UQ=SFyJKcj#ODMmFZ@FagT3;s&ELr5yF$9&GLAo-mF1WLzN~J1KOj5u zH?6G^J=waQFx$Zt$M<*&w;nj+->+Y(P5VF`9=<%OB zA7O>uMyj7PnAY!)p3hl_q6hcjOt@ zlVSdfz3}vQq-?P!QBHa8$2%;Z(Wk>UcynM|G#BpA7oTpyk=Nl+GC~#A>+>l#Z!gu} z(xPKM)p_y2U(mX+19#o6E+>U9qkTDN2_v9KW;(L4eS9J~S7lpyjk^l1& z7(uT+KctF+2((${&gbv?$nD#HCOLfuq{oOeV7@2z@3|iST5p#Uf+kV7?StTlVJx@l z-xl>x{-mXC1dk!)3dAh)#woY#af!|zNOH5{4(Vs9!)#xk)xR50+j*Njdw-&@`p@9Q z;H7jYI)Rr@J|No|T$axUIdlK+B4%Vqu3_HbKYQMN^?DP8tKPJd>pr`ONs&A#+ zPtqWu`5!H_oJO{m7PR8CAu8JF;bAa9moBM@5gb(3Ll*G&RT9I_KEvO zErs~z!!W0>J2rG3C%2Asg}7f6Xz?T+PIkQ^pGY4>Kg~Mpyij9LCwn)*OBG3=LMb#m;@ULX&~; z<^BFcZfRn!`lDEyKl&R@dv}pmj1+v{?<)M-Z#JFwxD5NYT$B6m^ury6cD(dbGzd

g9X^d=C79-qv?1QQaL!W%Z`E&oww>ZWSnuCC;?5z*~OpxVvCkv{moSGgDT` zESwotgH$korY&wBlLcvk^I*#NG^yBkqf~olJR~puMQ^!?7WEhc&0XB6xQ`cFB`zym_9+ zEogarIrZ0U4+C#>;1$EHG5n4**u6`G60;C?(fhNW-w2lLm2hqhTmk>EJFXs~hjZr`OFHW7$*hkJ*^C$>Z~QITrf=Ut zuQt|vAbM-Yzx}|V+T#nSZ zM!da@K=D50AH|L6#FJ;-q0p)`BFhj4cI6$Y{qG8TdB__>_IbfI>VQf647qx~H}q(8 z0QMhq;%^q3JmJe7+0FbNoe*4!o#`KGQ`r~lHf= z(~wnsQsK(?*7V}EF3)MOXNw_0oHAK>j`p_VoX=6*p!W{8dU>(dv-i^N>Ahe~lrMUE zcEN=UR>1AmPV7+Bo)QoLrf;u}A$mnVxQ!Kifu676&{H3HG1Q(HyO_#YpmYU$g66&vaJk5=RToO#{hh~>NNd+ z6+&G+|4Qz3Q3{g}P~&nxR{#A)@t^G`dFD;gcS|?d8SV+ro1{$#eW`>@f=m~5?+^4vz|+hqw>iAUo;$;kV9bCTfXXjm6V0^ z>Cp+{Y|LoGn)?D^j^IO7nC>{J!j8rq3G6O4=S?BA+gFVV^?_5STKlzR^Q8^HeIocz`=jt#(OB>}_LKUny?_xS zJJ);oW^x {b2@Yror?BVl+7VMY+?+*PbHqOz*WV#ANarKqWqFhcF6WFqcKD&9Y!I657?H`>tCar%s> z7s167!zp52b93lfURKUqK64?-7$E15T)OV<#uL6<$G&% zSiR+AD87!o>2ODQT8-G0l0@@Q-vsH2KTDsM(aUq|X<=(us>(hi4a)fi!^4w!^6NCR zak@pz1p8{h934C$aw^lDtzeDd7@q2A!0JbhX`PMmnM+TkyDLAE=hG9igGDMdK3A7L zstoW+kM`I#UXzQ9-cXq9U3m223&hy_Q}hT0NAzE#?6K0HX9sN|wde6%G{hg@H(!O9 z*IQxG{#Z%U%4r&$IySz1IOXQQ{qo2;5N@_l~pX z4+mP{-S1zehl5*jje`|V!~xVk$caMdzk<+D>cR!E8)7B|@|mww;pwzc&=iaallc*N zRd2cE@V5!73ZFpR>mKsPj2D!fcZw#i5Pbh-i8!r;U?`mE$`^Wj@}i98G}yj9d^1af zg<_{T^Rn=)PKn|v2It`Jv-jY*q&4=_-b&fFMP#ZUk8Z{R9G+~>`Ze7IuYM&=iff07 z0gE9py96RLcGKW7B3l*M7FAXC(c8!s-BdhKTiyb@PMVNhW=l4Ai)dd|D}J!U3!lw8 z4#y5^aG%{Vyvt8;z^?*V9N8`{n1C2!GDc)JGa%5kQnKjMm0sJ`D-Jhwrn+HTj9YKe zC;v9M!h8jsivB|(KP|C9d?sJlRj{(dTX-V;@&g*i1}t9c4>n;3A>UgSkGHu*Lq~6+ z+UJ6KZyk*HqpwrlTQ#w--UmY+Uedh$wGeT;2v#q@K$q8t!hLOoGIvMpq-Mb(jxoH) zxFr^CEreFx4cW%O8T=!kQ{7ZeS^H5>IvP<&hg%3{-{(Ae_eck-T;?YGS3HyUhP&{i zqD%0nEQ(tU845?PC*U)2-+#HTOfploIW zTVF{#uj}%2*BA2s&3bGwG!pvM#j_M$1FL>!!h!HEQcedG;VW0;e+8Btm@n?HOFglq zoAB)nokY85wT8;hy}{SEJAZX?M(Vp(icG730vo}zIW6)W#_HUveusbQM@uM6wnta? z;3ZGj!5GCH5;O?-q-BTAI`vR=G=^UaZnM1E2ydyJrsVWG=-g40+C0_9$|^_E1?dIX zpQgwf30d^nC_}!c(*eWXU8y+35IeaomOfhfvg)-mNIrj^s@;XhcaZ`QRW{J}BbprR ztHSHllfe0S1a&$4ih}=(#E^zh(kKmg9+JO6*&@XV1LvNGBel0_l%G9Z3-W}5p1CwX zLBT6#>O^0qpTc0_)q_nP+os(};ZVlY6Q(~WcW(Eso)SSzvxyIN+# z^>rs;p7~Yjt)iwVzhQ>+6=BIg;tA+zrtBuUFnu%tW~Z%&U01r`U-jn-+g`urMUg{f z_XD=lU5x}tHQNfI3un>ON%!c(=jqCoGuz^${r3q)XJUVh=&RBSc}e>?u?N-_-oJc$ zZZM8q_WY8Uz7tIJl;7Yst3WUzMThyO3(hLpOX->o@MB9Q^{|b^zr`7f-?<53ToBI} zrwiYlzvvZg`U73Y*F#x)B9t8hTD!L`L@J&r2mL%xK`w)7-DEQ^^(v(~v+Lya*k|&M z&fQ`0XnXeG_>QjRso}*VfI(B<%3oq@L3R3Ou(wWy_+l+QKP3bfJ@^Qj`WxY5bOo*L z7szTC-@y9si^-wD0rdt(@rOF$B$Ye!n7_N}R9FTC^H@mzIUVwvH^PmE8w%^7T(JIa zEA#O`pwZu+J!6|;yMYESxX=pUFBG1Jh8B2MXB!N=Uj_E>5Xi3#8s8@Im4Gn5<`aQ- z?Yn_*yawu<+@qGRCfMh`HCNgmg;v68adqV;Y300^uq@b3?)^>=M=Re@hk)5`Z*E<{5nLnQzHr2u_w_H+JSq%06xzmmA z;(fFG4Gp-~6*mhmOH-phB}WVcExT#bpd%6w4(g1_M!MXxg#ypbaA5<3pAc^#n3hgW zQkRih=wJMSz62ZNggdL{ftm%Bf&KY9wK(oi>1sR?Xc{~FIXh@3mYOYC^zlzOeI+f9AEE)hniQxow_-+=%*Tf zv^q`u7bNlBBFh=tc72RAz{An+Zc)f*AsQK_Y zy-uuCdI?MiJJJ08=cMibsiLWH?!3CFf*I=SxL-e%-8%h+ZI8XVy@9iGU(76+XQBfS zb%xPQrRemTDfsd5UNDfW<<;6B;L4yov_r577o43$x3Zh)<4V!PjVhESt99@w@3FKz zXsPr)Jb|Y;dBWP%7QADA6?{m$ugt5yM(vJPgNb02ttz)94He;OFMSTnZeAhlMgz8A z^@!%Qn@FxNEz$U;g125-MJi#YsB4Wldx8h{Rs9781D4U(X~Ho!Wvo{tJh;V-s-UnihOEOhqcXswu6Cy#Rw7 zOQHV$MQ}>j=EmIC@{ExuD51F(|GYRwN|~&NpY}bKpBLo7PyaY}?vn~%FO~=fjUlT! z1t`XyQA6W5slo-`g+8`52q*cu21v1P+>GH?_dhDi!v8pGBvNtRbloB{ku~>KC4^n403r`3D>5 z<-|<6puvHr@2vo9zh&~4ZTlejqAvgF6VGEOoASNWVK~9gOEJbBOkh+=7F6RewZgYH+CkjKOn zdNSP~XEcQH`&X7&+v__#-s8sp&y27pSCdUg7@%LRIgcLjjgBRqgs2P)v@jCAzYBJl zFi{6NC!L(n2|wc}0ihmi%(o{^QO@_#2a}yHiXFBk^7uk)JUL>aJWDWf9hY2|H0FEq z*%y9ztWPsc@Jy5Cao_2{oqdYgpVOsYQ*-FxO-&lybX0lzrW-peoW;I*9voN^MH-P) zNp*K1_KmV&*J3~3zQmNbd3=!nGuOf~%S&jNb_OZuxueZ-!N)J13|mC!wIa&9P_C&^p9TBFPSOxyWG%3^}X8G1iBrdyNTvX_ycD91kSDo6jg#aPfPY*U{v2L!@puJ>bmA4^ZCa zA#D$OA?`mmxL;KThrUe^UWZAF5p7iEb%`Z%U|2Ip!%ZcouylZg7fMSN>$SV`$0L+sEcybaodg@n%Lod;YobQoXSsUk6WUYK zgY1LFEPjP}+o^t__bMS=*IsbtD=oS7a~Rj15-!+<2Vgz|DIcZU=lf`dfjZtyFNOV!?Rnv}p>o9AdtmtECXDPUxEsfo3Xgm&x(=6> z12cgGCh23$%Fj?En_$zIzjUc-J&YJ=&2z>T!i-QiPV|pecKsBK4KE6%1+hx_1)A95 zXez1g@a8A=k!aSrD<&Uz!}(KeaYfcD*fJ{!o3dU@o%G$X%K>j3bn*-JnWTwdA65l? z9^49_^qUMO^DJ=h$eolaDcJIt2?pLRA#?YQQjS_L>U_P5TCaToC!AGbdYLD`sT%@K zVaF)6vK@~9TdAl|KS)Eb3O2qg;+veOkY1!C?Q}RU_5ITs53h~JsGD&(FsmD?WNCBf z-rp3toA(5??zBac&U^-6%7L-gCm^TuKgzJkr?6A~=>5pu@}22Qn%<)g>3aU8oXHYY zj9f`;Jzj$9kPaMHqsD7Ik`-GLb12C@g)}#N;47!@)Mlp0IVYT>Q5IR$n7>qEo^^-5 z-vu1F{z`y3^d$p#6JA;3Kv`RLu#zq)IygJ=rxBCLZ&(HR^-aM38*RbvcmleDJ?HJP zK@SOWZqgN+{I~_j9lI{|6de3aRWCj^HWhjX_kewC0%`jAjdVYM4gB@1msT7R8Qh|e zFkrVcOXY$Eop%>DPuGHd2kiKC(M_pjh^E|gR$EN!EoSxgA!HP_8FVk(aM_-Cp1wYq z6JNZ5tAcyuu+|xk#GC8Wq1~`WvXbJL7s-RB%qHDVm#E>?6Iv;JDr>E_%N;upq=ulk ziWMgedB_C?YW=g7tZJ4Q*IQa(!Uj9O+Uu{B-Npi=?!KUsG21CVxd-$yX(xZ#@|_m6 zjKg*#x(O#mD!G|!OTXeXC?n!G?Z4R>m&@0v`vxsmoQU954=w!tG8AG?i*xAdXGO1t z-NEr?9A?}y$2+G|;oH)~bnM^v}py7;i%2`U5HaXz(>9S&3h zHI0-{JzPodk0S9|NGLihTT|LG1OD^O4E*KQboQqiuYXuZb*uY9C%tIAbuS9`ci~;3$6$lK${+Gqvg-<#m?sxDCzWpy?rtTSI?Tae#@eHvwlL6 zU`uzhRflJ~xzde`e#$L(#cXHY4f6KarS*mPdOr*q>16 zkFvS)tjNJ^hU1ToQA^|r{xpQ*G^a{>TRRuBJ;jWDjxL@S=Y!R}K-M$YqK-jEyGL|KEG+Pa3471+|cJzy^AS3 zuV{djum9-5srbqvbFe5 zwFA7V{Yn+zMXvaw8-9wN3^PouxN%{<+@WI--2Gz+GlsRsqdsBKBgBFtt$R?5d(-HcbBt0SJA|+ zx1ly!gZ3Doqg<6tdLw)QTb{SW(NndtQ)?9(=6ej1f|k&**&cK-yh-Y(aH70&Yy8)$ z1q7Zjl-oM&r1fiUuq54pT~i$KSo?79T*>zMJI9(O5quOG~N*Z^;C{eW1bmUydk zCU`lAN;{VXz@edEp?Osp+rKyirc2#Xxn76uwl_rY8@^* zVoS*hYB0I>m{hPF@LPwAN`qU`SkeC*_=tI(=f|aVJo^@1J?RP^^Jc?>vu&5J z!I*CM9BNm3^Q4G$xOG;At9|TI-rW`2&GE(6-chhv@cR$Tn`la^V2;(MC@p=8sM{z_ ztbs?Q7Vid=jwIkdjRNV{A_F}BDwwC{noCLJ>ZmEp8Na7opk1rp!n~n&?0+r@b5|pm zPwB?K-J|i@u?lH#LpS^)m|8vG)=~AKbZPBKL;O1H8~vE*%8J+elE>PaG=4>QXj1jT z+_cWzVVW9WN$M{f44ei5Yj@Ml14E#Hb2qO1x`yP)1oAu>!nSie;N9u_;l_oH)YHHd zSE^Xhm8%LE9T3PDOC#u+$g2&Ryc9H>5Et(o19^u%;n<0G`1(gY+f_W2Hy^%4N}Fn_ zr^zGOy6_wsn98!E{}$MGd>bvhGnlStxbus{tEki66q;@q%z{lU?dGM#Y3*>v=4S!( zZ-nDB_qC*I)rEsgn(1OkcMP#~<)`jJtQwpM5&POeQK_c9;@<`sap#Pz9hOVuw%EwF zrz^;OZhx8(?Z}bIgUIE4sQj|EHO~0d7Fr%{%dx*>@y)PHprRFtrql`5bXP%znJ-4} zxFP?WZN~L}C*_QZkE#91OgZ&p0^M|v$BC8MwC24FyB?H5G3_CITvtiuw_VWa)<$w) z-w5t%sd8^saTn<${M$YC@Kr!P958<-T~a)f-cIccw|q76SGpamH|`R=T^)W1R;cr= zBmCZMjAQ0|aYnWYwG@AY%00ontJHymhh)&bh%{Q)yM8$pjgH1OrPpAmqXVwGPyycJ zzP>qb2lP#ik+)8cB+Y-myeq_$m$vAR*}~;aZv-p0PWYMSN05w$ zWkP}?%GeHiIOwrl(3+&5ZhSVb0X%hD;OR9;o{dR-VP*})C?3h({k&N3gf+Qjey8fU zp5!xVm824~lwR$~p+g@Ln-_M&iKonHc49G15Ih#Q#RI9r%@(Ic)=|flweaYIE@)n{ z!t8gtoTdCJ?JJMxIk8>wb3#0yQw&$ATbzZF*Hs}~`!_QDm-L zM%I%{q5bS1bpNsNoISh%dOzYoz8A+eYhKfYCF?2KrU`D2^u($j#u!uX220|$Q|^xz z+uRbIRO6Il0}4--Gi z)TLY<#^3Pd1t~3PLtF@Q^&#lm(G-i{jiOqy1Kqt{6PE}!Meg|+{&edFXnU-nR$Yo= zNVWxAcgm9sMk*j~P*)5XhRW2O6qwbm3r`rJCbg-IWJRHvZN3qI=Whn(T6WjCT&N3$iq`(lY{3x~>mi|lat#eBHXqob^Pw+?z6Tj0jELttV4 zN`;@=5YpM*l4kYVB^Q;nr5~OLDQCy$fR`N2$qBYRZ`E#SJ4Oxr&AARog+J6k@{tsG zPboSvy3};S2pz<3v3XcGoR)B!etpb<22BSZ?Ci?*rve}k{(xTiP#9dhMUnK&Mq%n} zB9)b#hQ|Lu`hDJJE5@UEOzc`aXyZJ;?Vg1G8;BdD0% zkT(A|lf^d_TpIn7jI)h6(8!&~K07a43ue-TPkwl$%SP%JUjv~9>Ilwzif=bGO3^nv z@OCL4d;d}TuN8BWjQg#yK;@EjZQ>1Za4S}{y1Ghqp9D{$`5G0U3*xw}(@>?qPEr^~ zalyEQ(%!?4EMQik7}1dj$C`kamzQ8JSi+^g<6z#LACz?2ixv5{cpM1Qi-2O8Sb`gFm%hkpAejBjU;8m0=TokjqeI)C5e%n z!(dx)MOpVHbgo8)uEfQ2sqHz%qI_qHmV?n}QG!&~$%13|+y|fko#h@UsVTGub`BGH z)FKaz@!mlV%WSxZV!Pt6;y9I#agl3#_oJy=Tfy)_5siMLqkIS2QrXe%GmT5gEgkliKoK15cT5l#=!> z9bS3t6pQ-x`;1tAV@Z%QO2& z@!u<9d_F?rJ}#n1?(B>+ip|-g-A0;!(VOqB5WS=d75Uf`a~{B9*t^$hs#?%Ue`B&? z_`|PM-RZgDoZO-R_LaykttyH0Rk-eu;AzG$2i5X>jh z$jSJ3kL21db{r~x27!Wcc;7;>^)Q;Nwny^G(o0%eiId=;Vt`0-X zV+L}e`wlwk^#(?LHQ*0lyrjOqjc{b49cvwbBb#0CPcN_f;mX#k6xVtanB~{gr8WOS zY>GbT5A`FTS!(RRV={b8FNZ%5%;YJ*jj_inEBIxvg=JGO)8_vGm*jh)MO7x?aIjxKze~sQRX~C|G z)8YRpI`6O?-!_g{+Dk)eXzx@Sn$LZn?Y-^2_xK@ugp6z{DT-tyB8o^o_j!>*R@p^% z8D&L?g!g*?<2d|Lj_0|r>psu#_wxyk^=A)!cEfEqOVpgvn}t8tVOpgGF&*25HWER&w=TjT0ZDVz=7O**q@i9IJ>fw4R1P}!SQ3SK>x zyeAwN&G_sm=c6XheiOldZ=WJA4^d%*PjpjN%za87(3@Q|PKRcbAhgWaXYIYxq*rIFJCs2m08@I#ZnVaC%>=vp_RF}?5j`lNuqm28; zSTS|)Z9;&9BDx!@agL!TlKVG$tkDmT)aH_A`4WjwP82()$+=)-BI&@}L}qr8JKcV& zV!G@zSSxo)nBL~Y9ON%Uy@LxgntENBvDrij&`cGo2EHcK0YB-+&Ps}r-z!Rd-c#t& z-Yl;=4>pzW71r)*rui)qlu`5#G98wSfijB)k8=n+-dS_LMt?fRV)5qkyW~}9iwT@H zApbFeJ)ft@>{GkRaHkjhv_*^M{Aa~#?iRzj#E+C|XTi2%2%faF##;vl!-M|}!M4Q- zM}#qpb7}FfC>GJ# z8<)I(0~V|GSwoW&>wjb(&8r(r>&&|#Z~JcA^KlrZUhct+IyK08S_?Hl>H|^EessQb zCoSD|p89N;!;Fd&DAurLD`x~i%(qrji!xw0@A7ByC3Ecm`2ra6UD_ad?jRi37ca;b}iSNszPg}9^t~GFCktZ%+>L zIB>X=4L9ytVPS(YyTP-SeOr`S)|M=~r|-&+UI~La-y`79#}n|fYAK!gb(EB1ZSYD_ zG%mLbp{fI2;sLqm^t$*HIX_O8@G>`qKO99f7RU;h=U8AUcW2nwI^l%L_HWNmu|8ypa3D*keNMnft+ zILApq%ksxiD`SbX{R&7?T?#*zo}iaqTj6?WZ#bXwm0pF$VE>kpbUbXma4_^UDT=)? zyT};V+kJz*KP~aQ`WaZKuFuxxaz5KW3oHs3Ax(t=T*{#nlMQ)3Xa%L+x+yiC=fsw! zYGKR12B>SRrX5HAk(WUde0Mn~shWBK%Ay_!6P%9G=(I2v{3jh|9qJ~nUxR7Y&3h)6|LE}!cev# zj(5_BTEIrP1eR2JRZKBcfmLH(Q19FXwu`g5eBUWC=d656w`l`UT|J!mZZp}n%CVcr zc@AcIyEw(~B^6lq#RV&MDfaGaaSnH(hiviYzG7DvaoPv(jPpa&As1*@mX&yo_jt9w z_hNfDRSWCd5kHju2F=sFGbvd~wSWBCx+iNPRneDO+P9J|zsm&GRnnUNJ}k7_i~AHf zD}u!^5qqhwqD1`}wiawR#v9ag#bWb@3$YR#JO^iPnsFW7gbH zvvO-AU3H7$erBGR>{G})5hYa6WQ5Na9w5zGo%F~5EG;n2r157}S+Q6EX{sqS)*}c< zPtm~z6#_dj|t+7DE4RHH6FseT~#;QOcr)r#0pH3`P+8!}Ua z-$L+Ee|7~Lg_@rasdPN|B`qqTiWgDrlV>6(SsG(b=`+Y^m*9bQ=B)5(C{5OO!|R57 zsRRZ}5A^JdPc?RkN^301O>2;}F}w>>v|hoj-@Wn1#(Ki%+ITq23$9J@#)k$`%zRpm zD4Uo|KPyVE6fh)3XEg-y;QV8oeK)glpm$=?6a7i}v$!@?jx+&QhV{7GeL& zJJ5aql`vzSE%x3Mi{pNm@MnWEn*F^(I~*}*qbG;3WP4>X<&K&5y z(h;kA)k-FsT7pvY1sdL@DGuFeh3kLI;+Nz~h~WLwsQV*9-P9Qi4QGo)GN}`mvjtsp8QGTKv0y z9Nt<9sAuNMPV7-+&v~Bls$!SeVXREi4n5h>1;@c}Wh{>16vp0}`J{nk)62Jn^Zh;ApLt*ROYqYX#E2!8W&`Q8s+^ax0zMFOLQd5p2W{3Hx^{m7d5MvHL48!i0MfIIqP5 zwT8%oy4(_aWvdSpvR(_HZv?RsCoM5=U=jIqchi#>vtiGgCGcnPEosWjOHj}t!k^ox zNpt-RiufbJznr^cHARs+RN^q{jup1OzYTj!ZG|1a#-iC6ee8SwAl!YH3HciQxft$- z1LqB<)`&bvdf108v$+Y$m;KmL2OE|fvXKlg8DaYXQ?{o#7`21E*sCOoVzW*+MiB5<*W{qcwAKU8ll(tj4o&W{add z6QY>ngO{SRm9p@&`5txWG)d>DxiFQXYeD9k6MoUYA#MvyWU(UOy~-AVTZ;*{eftRp zapwR_^;k}}4pW{gg6S|f_&MZ0IX9~DS4btcT-k6I8v(y3Cq?3+QI9oR2rBIu#!d7V|VtcnQ^EM@E;kF}CIJFORS#k}= zw!Vd|U;ChDc_EbXIZ;jDs}S?aOd9_wl{R##v$JQoBkX20l$2eCl-?TRw~xNq(XSk` zOXAqn&?uCty+aBg+bOhL5j%H!u>A2&V)uj`nliNu3WYL~A6f_}?uuZ&H69Q3Rc6kd zbJeH4hTyF?wsl3bU%zeH1VKuNi~0Cw;V+8jGsLBXY^yNrH7B_t4c<2JFa#Tf_;(*g7`_F6@JZJ^wY z_t2FwO!~q%fqRd=+1>HJ*fmT8k95C)559#U&pQjNv)+hrUh1+zhk^CsJ$coKCj^6m z4~U)}0B^5Y_R{z;_@ro1{E445eNLm~)zcW^(hg)*=DR3(d=K0oEEQOY1=D$41}#g* z!;-}tXj@h!4Q=nceLD@T;w_kBql!TYlTke>8Z#e)D zX6}^SO8ZM2WQ)Nltw310o3k@=) zXi%^7!n;IU@clR$Ztr(zZ3EuZuxm~9;9vx9FSTSp3JPJ-g+FvyO~M8Qsk5N4Gi0;d zl38@!m7E{-9fq8UW${u6@M(C$^T3y2=KW`|<>C^WoA1pkH`!s5;~JQAr&D}axeIO# zS7f`kKY^#_C&f1gW|+v|vVOf2{PWZ3=ghSOj1d{s)$g z(q*qyYpK1iKaJY|Mo4%ULpSEDF}20FD6NMThVh?med&JKwr33tpZQffbT9Wyz2jWi zXhyZ-R&aEiFRk7>k9OY=#r^v~i_d2cf&2LqZm8Qk6m7^L9LuIQaH62yR49a%6BG`U0xW@?01W1T5lj1r64w&pKrVW3&q== zZdhN=AoH^yJI84<8)I7is-5}sEo2R8n98#I(Y55;=zxB;p{SEM17^7^)7RBLtbq6L zbZ**EMXnRSSGcgm4?XdGQ2?vHasmoUPuv3`# zn`apnK9Si_8MJyUkLwI$*n^!8?68q74e8+~7~S{Ar+@8m{l$JzH?5T3tto_r+C179 zm?tE9riicAcfd5Wot!bb1s3w&@xsgxbm)VJEyYua4IT-ZFWjUs45Sx)*_) zLmegc4q;p0Euwv(gx_uN(68=yl69W_*ePSqi@(*I^>h=UdQd)$IU&EMeprdA8Qj<=XDuinL4bT8V7c+c6jDk zEFSc9XV1rRKipqgcw02mZw=?~zAn|kZ#mQ8%%_2*x@sN$@o{F8LPko5J$7erOLkGt z$zXKkeuq`A>6DRd%swAjBL=jlNT{R{8tgJ*q>}~P^w|V2N%zyk5wd9aACkA`P1;>y zE<8THn0!_mvkK*R^mMkTcr4u(GpvSFd%tLm@70@S^LP7x4gO#nxsT^muh1>iXtp!1 z4|AB-k6I@_r?k*;^iJ*&t9-(R;*D;6hG&9rt%uSTY!?1Z|Cg*o7a3;*4s+59c_aJWjs(ta!AehnSQT*lFyY%S)m z|6U0AaE@}g4^3lb9VnPv;NTcl{NNLam;1$oEkv>hr}n{8O;Osn`n|Y5|CJ=T;g8>n z;|X-8r!JEYsikcrEFnDcuXOohCHkb$0VapdaD$3B^q>ORe!-G9-$|mHwL!Rdyuf1Q z-b1r9Nk5I)ESU7TOLuMhfU0pkoqcG5?;qX~8#h`>h6Hop(AP$BfGdBFtM8O-E+0YI zV=sOA?>0GqzC>)OJMSM9Q^)cyu{iAyWe?8;#r&Ia%yA_3Er?;+^4DSARXI42Ap;BM z>=mTZwy?LCI-98!!XBO~hcovEQ%rj%eRz-!Yu4PNX@T5X`l69qUiL&wY^8zE`m?Om zL$G8&pVhkkq`+4`Jbx*rCp%5aIEXVa%f{1Rug9=m)aAZ}$-+RTK~(nWE;T4>Cx*6YFquGP zk*Bwb1IIm~e)%7TmeUekbbK4^yA+DChK4Lu$A(QmAH?RqS739E>~M6E0j)Ts%Oa{= zNTF*l{NP;XHOJmV?vFZgrL!iE)_W%XxyBavC!7ZRc5mjW7gir%ZG{0_$ zdQ-yD)hUM64m(Pv9xp^6Cwr1s)o^zQf0un)2b-_NvKf2SS@K37y2cqehl4XnwrV#` z<7Y^$vn`GEFc&>KzrepM+ePPb1ysiSdwcHh728z>P})9{uJ_lWm4o-eXzjk-!=Wg| zD~%8r1q9N>{d(}XDNszk^;1gi{0y_Mh6e4KaA1ow`>5Xw#rSLVZdpH^m*oOUc2X!P zk!Qhc6#3l5nN8X6fu1I!a82J8Vs2W&i1jJZEBv}>m*K|tHR)3SAyQJF;Lcq4zLd^a z@55rh1>v^vLvUDm8;$FcM)NAFg_Xr&%=zpkni+P25+-R2`o}q&VPJ@uH24GjuGYc& zONOlF+f_(dF(00)7sKkY2+cWxXy&hsirle!w&t6}-OZHZ2e@L}01u4mV-Ct|HSo~D zLWmn#1anh0&`4QX9D3WDU0j#Roq=JHvUC%KyVd)q$9PMBCT@oL1~zE!_Z_r!tb}!M z16b_ErI5w%@*7TW2KQ@GqG``q*j`ox?`^B;RN55!kX{07Ru$8bFAgj}o`Zn>c{ahp zh^aZ>H^{9q)A60KRwMgIQ2 zJVF~4>%5qCLjX>6*hi_iV$uBdVbTeYVc++f;IKJY!E1vy9eixU+NN-J#Ee{+U8l)5 ze9i`tc|zA3g7Kkx1Y5nbgOW4n(mac7IuK|9xEnat-?=_c%Gc9|GZ#ruRe zRM+;F-us#G2CZw$a*yW^!}whj}cj=JHKGvRz+=FYN< z6j^TBNkP^|m*iL^UYsDo#wTI0eDxEWctpZ}zVH$r1m?rVqCncGV8^=pM=N9{=KB$^KEhn1bx^pj79gd*ol{ht;DM%b z>gY3f2;@8k*j1V=R?Kb}<9VKUe2E0t1jsX)rW6b+X%g!!& zM~*zVUgq_j*8a?-BH828C9^p*aP?oQL?(*O9=Q{)v_B%RS(nAif)3H+k|T!yHig~6 zom99piapxQJ!%7FIXlLiqT_yw@tjMUC>zKw&-0<_z5BuLyE!186TnoKz7>~d=aYHS zCR*8`iql_n=JU%E@<`I-J*+*XX4?jTG!599$}SLX+C<|6a?Hy%j`~J>ic7r!SLQe} zMZ*B}Jmi8$XWfN4>f7N#{s}q~TLOp2X*2tmy~W0`li+gEl9Z*6?2^VNxRqy0HvgF* zzV|}$Bli{kNQcsFTWtJiz^;ckkPg2yZ+SV3>~gjVmTv@D(DRn~J9fHsOkaUjEf2x* z4;83%$Sv{4lfzQgdC62YECNUFvBsu`{d7X+Dj6F_vf3&>Lzbf}$0UvF^xwU|l(<_7v!+Gk zVxGe+Qn(;lblw162cD`&o7I%BUcxtBYJ-rRMk z8;gE|%N_3U8XJ$#Kl-sm$8wncSR{WfC!{SWJ4I`>m{*k-cK-^4rh+Hn@hAFX#WqU3BqI3ur4n5SP^V zW6dSkX_KQ98v=RackeZnyShS5*-!K-po#Ef9)(rJVS;}&XdK-ju3oSYoG(riLwm|# z#)X?C*L4@_CYFoq@6LdS;gg{vE*uwj9uX^zRalASK9%i?#t)lg+4=i#g$vSEl=D>` zM4q9qAFK$^8oxogg+H!r<=?>(yi=HY7kuJ9+28m#Jn8uaE`ChJVLjT#ci${I`mG0P~ zHP6v>?(<>|=4&W%=p(qEUQe5Ymx59r;NsaqpzSdWc9_Ib&py_EpLti|>cJP(c!cj( zANq0@hYU^+Iv_U5IpMo~`q*&S6_s@Y;H82Y=8mm}>rp%48kn;^u}u`)!FwrN9zfxT zC_HW%B*xUlFxiELK4#G|IJP|orF(gXBR0pcInM$rKSrZXnJH6s_F_l82f+}<{X$k# z41QKvMj={=Nkc}9AJf7FnkRwW$Y6AuzMmS}6*1zQ7n=ZG&@!QkUgZ@)AWosVvajGt zze0!!IZb)mz1Y~z&uQ!8y|mufi|N&3(67xOLVLI~HlNa^G|G?tz#1 zx~CEQmh($IUMYo1hB3Hej2Vm9)gc*o?aGEJ!B}U3qULZb(5-nR?%!^U@@-p5KKmOz z8l1qk5055up4llI^F}hU`4Rk!>LlA&O3d^qgLt2MvY!{o`_ZO2C3zjqR^&Xq6%IIH z-%T;Tx*e>WcGI(&b~JmIB6hFK7p^&~;4vk0=2U!ve>PN@Xzs>*ZY#6i(+zQ!^(div zqdeM09i~{LP0-k6hk6Ezc=VGxG!ECp_crnLMCJ;4&eg`i#aOscxj-vt!vNpD=2g%5$RomD#k{`^i{Kj;dC3C*ZQRbSUEkJq~?A zD;kVQlk*%LfBM6*-7QdMB||!!tEuz9DCvvJSTa&O3g6m7agka%r3wATR$qNKv36j@t83S zm|G+~`ra<|+2)3SMt73)TsM>&T!MhSa%tp14e>AgN&G5&{?`Y^d!vqF2nNewDINaXgu8JfKk?tc=DAM z_8(;>Hr*c~B%d?Gp09tv%!gKN-o+F$ANY}!9v*|dian4jtHPvl13-6A2JGHogO$f# z!N;&#SfF+YGOs2uCo?NSPH7$8`~HjcE*s;`*S~1!;FA>n$AtyW+aV}uo`&yye`Yn* zj=esq&sl1P(C3jClNrgK2=IsBk@Ml)sa8n3>%~+(eNmrxU!=Tef9&82(cLJJ4L@)g zp1&VL=SM#yJ*$`W{Z%N~$uAIZz4AkA-jDkFNQaHvcpN;VZwTFUSCE535j0)mjM>m& zc7CEJJMVgd&lVzaz*!Sks{Rf3#CqZQo>$>pcLLj*_EI#xYlJR}UTlL^0?RCIhGm2D zAk5X4l{M+%(>8ysxUGRjhHXGP1K~l}A4rUE1I4^#>fK`lJ?(fylDm$W@ll2)ve6K! zrpx@TWHE_?;l}vG!j^vd;-ff6CPrIwPD(SiD(kTULkH8czLgM@lS#)fYqD|Uc(2kt zn$1qz4##XeNv606tYr*P=ldhlStQT=dKXaGA{}Wc(}5u5Q@H7 zvJ#)eP*;w9S7s1OtiZgTmNe7SkLax7Lm{EUk zRNi!jwnzP=#h0Fv!Lzqwv!M$3jJ!@?1}ETFn;ytbuM9&Cj9Qs^I<|%3L zYT7Ca`e%cytH;uq8Jf^;9E;WZk=PpJ#EdLMS-`an;l0@gXjt)2a_Z@Au<7ZHW%rKL z;h#I{&w)}1skUa3Y38hvvwv%8HdW&hFdypMEK%^$YLHo~uo z^^{SU4+Vvx^w0SV?DL-ld;Pak8qXh$EHP$-LmtDZ1>W$wz=HK|91EJ8hLDBBM!N3e z#@>`j;eA>ZuI3DFlLu;S%IGlG5EP2uy5DHQ2xD~P@0Om;ML?%7Qs`KFXkTxDqw}@c z!c&1@HEt^Xo92gF$NiXbq!ufawZ`hDg_1>!?ulljG|@M4wrK0Ko4$G%f)Kx!-zg4~ z@AC%Q<0sOf4XeOS4Qk8l}D7Bfc)$LGmNoXkk?%UilS;nRY$cD*qm+eS&A^_~-A7Xb%HB z%OG`$CVs6}VR3a4_}XMFoLHg2WUq0a@4q%k?s75E2co~)yjsitiETz^P>RYrno1T?R&5O2NZT{}HfR;U<_ zo7}zd$#->T`;N~#Vl2o`%@)tKmWvrxA#4eG3UazR&~Y#TZ=AaThpd87ZOcd6Jh_m_ zZwFln`YKTztHaEajBxn{2^+MlAEK!hyR!&bTxt*gXK(EFEs~|XsogLduwOk1Z+XV)gc*+o8V?A8-BUD2Fv)t&)9 z`hmYyjp;K1A{J`kst`S9rfrQbgKcr*(<|Uv#vzhT+)FZDfxS@FVE%t> zan|XR^jOg!nua~39WNBIf@gY0$|bVK{uRQ8ULz>`wn(aF0$b4amFo5W0(+E8&JQnA zeV#VXNm9o0qax*LETXr=S~r2pWNRI^$ej z1qL@OrBRP9Xj71*P-b^Zy#Lli$TusX(VUa)e~rJ#wsY2$yE4-s%0Jg}awO;M#9!69 z=RM>l{oj9ab&Wh;{%VbTF5aZoZ3^fc!Ml!Njs0!~fyxu^K6mfM&X=x%Ew$-_V}Bn= zb9SW9KfX%(+i#|2Z?BPaVkOT;?}K|qUObDltYWD;e?Qk42HkdUEY|!COrPc?097^L;s=_kQ{|jhc4)G2K#?8DchEbTdTRsj=v-l0$cS?`323d%CS8 zm4;OET&ZIqohst2n7>|3B3nhN`y|I&`A&18ZiPBPW+_>Q&>DmQ%BiGUnizMiMek*kB2bE@t1E|Gslea9J{X$^L%KcgVz$V%p#JkKEact}*Mf@~@ zfm_jEvOm2;q7BEW$=5_MxOX5;(Wo7_+}J+OV^+ z#iBE3;}*YPNy86D!0ZxjT+8=O^|h7czxV@1k4a>ELLKp`Sq7aMdj$TSoGt8_e+sG& z*Go@?%cHC5N)UZqu**{ko-O?Y51l^1H?ya-v$-$axtT))EbSqbyLBB7Zl%Y;*Wk~S z0n!7LhKcpZxi_^efTsI7;><}8;Jj%+R0>|HCH@%#S4u? z-_z>|75o+E%El!|!Oq)B^g?wT_(mAxW=D4jeNZ5H%H_fGTn&7{c~o*Hia5)CJ#C>_ z{P;(XsdsmZa$+epC%+ezo%t?+bAIn!il84#w(w~5BPbbjgVJ?H+PvYZbS>}q%-$Qx z%o0QJOx#lPt59RwAKFRp`vzF><_UORDW=6AY?$q3&x#vLJgfiXE2s>PA%i}r|}djuCh19qLYNUhS#G|UM4VJxXgUVP9 z_HV8n+Sx@jdmqlId~!y7oW5HuF#IHG{G*Hwx8kt-#Bpd^G?Ip>+!H*@_|N;#3iHj< zM1{&nlGT?|D~pw}c^; z;W%@vw6bfyCF{FQgzK?Bg6%qcHlrXH&xRcgqr6YNe=tQIzpS;Ql$EO`<;>3xLCaT?ugLK zZz`SRJB)VjoNi6aqY#NDvuu6;SvFf~b*ZA$jT@QXQAyx=Tdnc~fCrZiJle}A^V!ULtNo5lXt`C{*T z+bMXLD+`aiFZ$XVp?@u>fi6%GJ}MoDhta06aPfOs=%U0lij>$`qXbOZd7k8y`(x!B zd8WJK1fAR2n;!f=3m#Ed$+N~7cPVSrFZV692bTk^e-Bo-hYAXzPHaWc2k;Wq*#HyH zMKtVBmlEtDvC)$JPBoHquma{>-XknMt-@|4J%Aq7yD4Y;8%lbw&gS+gB2UgN7(9?W z*`)&k3&XhU(ak98^vo#J|V8E_DNWiEPZ(MbLlxUO8XU{GHQ|GxQhXOs8?mNYMQ7$ zvx`>eKcG&|{G2}RB@N%?glo?4h6&4m(PM`|@t}SI_-Aa^y%JY7TL6i=4) zSq1D5+QZ)RK=Apn9X@XFE$qs=Ad4~=f`JHltjSKVm zFB}{awu`PAzNlcy-ALT+ToQ8~E?vJ38D%!`Z2u-<9DWgk&wS(EuQE|3tk4b-X3t#>LnHnPKg)DbCGPb*G`_Ke`2;do`5o{}Iu z?75a|RXth#zXM_f-(yrvG)2FCn@RnXo)|l0qi~ScQm#anbsv#|t;s#u)Y5oVXgp0( z#%AnTS^!(L=rt7GtA?n=0vK}2fE`G%pl;7Z@yPu%Ft}d=hId=jAhSeP!1qXhH$9^j z9bWij`VUfg)Qf$k!xVGAnJlhyMvATnP9HG_s)I`@_Wo5#@uUyZ#H5)(8~U($Oj%2{iG4`bg7@04Bel2))7zBv}_!g}MaqambhYKlthBH6kE3DehIPjBz4 zQ~9NzRQ(~48hvzG-KxvvJf{H+n#Pk$gAYWG=mjqwCHS#M9aHNa@LEj;Ei!)z+5V@+ ztbgyoeQPPr=x@Q?6mLT24DR>H+$Wv9TZ4t=tfcwreNb-2M)F+OAs%|F#R8A7gVNzD zG-I(3yEZ!jKU&oao+q6!VbE`Q8J~a-V`D_C_1x)vK}xMpC;I6noS>LXvdkzh7WP;i zqLF9y*zvMnIL34*XvvOF-BnqU z>%+X%L-CWx4(fO6Djgi7O(*5N;LNHZ^cQWxa7PQBnR`?63;fkB1it+Zp9k8q`&oR)8~PVieMI5K>6@gnyGvZbJvG{6ELky6 zFKI@qvK9MmaY4sR>E>gfgq;(PlkVjHsHb?7UOm1o7N1=qxQHeot+i){E7Rz#w-jQy zukp%iKQ?RnLz;HOjoN!!vWI<6Qe~tjn>Y_)__97se~g6L^ZmwE&J@|OBn2#jRWV$P zyJH_#R<0TtBurvPe*G?-rIKDcIQ5A>^U;eFwHzzyR&EaUnqi5bMu@bEt*0{+;+Whj zOX_v>3D|q8@-uLc#L~$RNB=Ak=j~Ewou_5+Pzj#}boLQ`PPM}Ahhp*b=Fj4{MoW+% zH;U#Y@qC&>8@Ya_ znk%zC)FpgBv0Ccad|1@FeOvTjw3}{+TCj+BGI&uv9s^S>q|57HL)d}0^l|N7an^^^ za93r5*n6@Mw%8cJrxr_QKJOK^E3bp$mH}w8D-SZPTFAf2lum67gU6G2&Oz%RMS2)R zOYjHyH79`$p6m!Gj@_orMkiMJe-4ylrTA=TG_LhILoeINpLU+O~=?33D!u-+z zp)u!;L~D@>y5=~-ksV9GEXAH(Rh|vkr$@1w=8hzO;QQlAdDK0F=ioylNW9xtnOJ%d z4p}qmJ$F3axl}~|rS?aqbP1E_*$S_JnX+iDG4%Q5NQlibW*7J_pOLgqmN)^!bPxomhB-TGyt~%aNSf-S@fVM}0gCdzK>_#0qFP?>l(* zZ1kJd#{rFM4bdw^iHZ%5!1pW<*7ENKy{OWl%9B|%czP3T(KUgnw0dFv;4jd9MF9(D zR7f3Ga!=_26)~)52}BI;1czQodd`;2E!Ytw`Mqb*mMC_<|8l6983JJq_i4r_Ush=5 z&h#n`aOr#xOlp5lbC-lN*?0Ze=jVzT^udhr*BLb0;Y7(x6Y;FVeX96ugvY)mvWksA zVW6T7TrUS4rV;^j*7AJ%b|+Rmpf=>JEq6uFmvh?GSrwaUO9GsQ@UA}ewR;T=T-iYPYIebL#h=2( z;cBRU(4RZOrjhA>Rp_YWUCa}mQlhq4&~8|57{%7Vvu8p7o>S0p_CTX-tivCWY=(D%bHm?XD{8u)HvRe1nzR*B#o)lm49>W!Dh*}|x_pW-5(4Gn4R zlKlIjjH{R_)|Gz)ace7e$d`fR3QLNvekVw_1cCatUM$rK*t5e=rEB;M;%&wN8hx(- zeg!(>jxo1|^IetnXY_V)M(1sq=gD~AakJza=l@K8Y%lHJ8iQWCMJ}6Tr}FcKbDeK#)3F|Gnf7N$Q#v6Q$^^1NU(S)AbQgl1@}bqWsM6wn ze>REnK6B7tcbM^eG*{ zZ0g!(X-UIrc<1pIHWmB?ui!&;^>%Mm-tbrWq3^>!YnPF05Rv7zQuyL?j3!hDK=fHZ z@;G?{zHuhumJ8e)<%>8sY8t4n5g~bPDxKB&?05Xcbx2N6#8%Uj(vr=<`$PV)Al#kj zIm}p8)MfCh*+GjV4e>v>)%5(2DztT*!LQrDp>?t?t6kbjRr%*Aqih$*sk!679RStHpUly%wHN*xv=;PJ_rY7gwJ^G~ipCdzq$zxcb4evbaD9G*_RD@2 z9xv;Hp11n5&i?Ima%U$reCfjw9a+R@?r-E>J0Vbk*}U$FD-}~|*qA7M>%Sgc8ltgs z66Xrt(x6?FtH?2ABg8){7Td#kk8wa4$mZ4vPCwk~>T@Tk_e!B3?P09_uN-DS8V%Kl z?b%q%1QvHKh>Z-=U_Z3E9= z6K6WP-)PW26vYPJ1Rvh0Lw(ptRsLq*$-uObaijUbmVGUmCM>_=0|G z>ft$P@k@=o1lQZ|QHT01-y<>G{KDt&q_ZuK7$3uD2Rl+};j1t#PJTj3Nr`O6p$uUl zXGFf}*#TMmPC?f0KFng97W;F`U9?S?(1q4=s6R0YX57psiP#P;yd!ZcEd#F1vc%n5 z=4kJz&$A$#N$<`n_?eqZ3i`45>$d@Cp*!LRU3-K9SD|%BCOPzN6#Z`soCsZRMD}Xh9sPYEtB~(i1*jZK0cq&lmJ`^o4 zquqN3(#vplSltoL7MJicKzd)kk3Ityel0Mt-&~3Ju?8sl7sy7hdI>Kb?t}T7Uif@B z&k5_9pm?raRWjH(I#j zi8KC4Um*6Yc>=xVufa^d`&7BR4Yc?jVS4vH@ok+s@=7C22~l9q>8|8DLz_LYse>w0 zALbi;TpZAP5dMAe#O{&iY@NvcG^&Y^JZuTie`>O?yG_`98DOZRgf=6$g2#bfH2#qU z|9VHUiJQzJ;H)mTpIE_pU)ngcL5{hFt7Giia7peUN1o5@fkBQL!sj@Fgqb6S(cgbk z$Ttg+*}aG2_Jv|$FJ-u+D&Q#v6{bEYoQ)n4$CT#kkqW;H>+Prp?YK?gzQKY528FPJ zr-EqHq*f|ubSJ%G`J&7#{@uP-MQ*o?#Ah>qg4KyVlED|o(^3_0%02JLwrKjGL#YMM z>>mvM2M#3DZ60XW*A|=Z%>vmE3mitS=c(}-g5%)@U@<6w&P`GVW6M}}r`jJs zbN6qgMlaehMS|*)UF4%RQ?!`)Lpc80k4$_3cULmW{lH+XHAcL) z;t<>mnokeo*3!|D=QA735c_f-&ZuIHKn{QlGX1=63;RxK%Tj+ii-#H&1@S?s<>pUE8P2w+7j8?5wqtdR&P-Z-N@9y_yU|Hi^7i4^#2Y z?@9yr93j^)zBu#UY*KyFnP(pro~!oy7!}k^-4C?ny+IvuNRlI43IE*Wvd$P?lL5Dy zjPYXJeR)OBREmDx4(FujL-u|Z%6_&P&K%Xp3+udC>rXh(3;In1+)hbSgaMd8)Zu|U zEpT;Z4$V~EQR#8>knrw&B-hs(aNFi84D8ZMc-B4WZl(BUcI_qZdoRgbHnru!>yJv` z`UT<7?ts35X7F{j4~(pPM~=oJ*e9i)+Pbe-{+|4lhV-035`Tqjvu;ag#r}V`&mO#Q7vR%Tg8OKG4jgp) zOT|WIWZqN(L;72?{u32QQq#x%;=XP`@icl9eVm@DF&*6VfgWs_Ay}lU9G@+m6mdp$ zfA)L$H!_E|sHw5P*YnC34u<@p=O^W;u^M7+JP!`L+Vf+>3TR$39?oeThE0xN$hJc( zR$1B>E$O|lVA{l z&+4+0(D*ZHzOjP(d;X+9r9^IA`c8g(trOXdUQ5x#l=3d`mr~q;bgANO0ra3w_%kY1 zJ}+j(H*W>e1Zz9a`}9u=H4ep)p4l|;sWu)G>s*WG8`NZINC!mbV~U#tpFSb-fxP+z0$cWN2v0Zp4=4s8jMC}N>!T+X+_5k^fD)$ zIXfKBjqHSbB921R#aii*s*C6Vh;zT`YkIWq4tzL&NUpxL2J~li!>`u&;B5wCz2|$; zA8D2=tX8**`!%;}A^m)`CA=-=fIOdq$S>ACP9$LXQSx=x6grVRWm29x23cFfxn}+y0>H z()$!TYdS5B(B_LO!U-4~&o^?z8H|f4$Gao8!=;pPI12NOOQ1?*VlwM@(fBJtsI{m8 zCd=J~aAN`4Ov#a7t<9hVTERG{NfnQu)rD{Bd%(>-lD4N}T8crqoz!&*4r9?fTjCHr^OqZ#&tUL;i{jtHEg_h{Q zdl-Chi(m`SgXFp_1lx!DaBJP~Fn`oH2+G(>2bOn*D&4hodiD+}VypqY*wUL6g-_vU zc57UH&yc;nb7{@ZY6y1ErfD9_Vb=6E5M?D?TbeyN>=@DK3wPk(UVBu%=tmDG9HpeQ zQB=_U1U^qcD=RcEkwv&8^96#MQO?-s4~VnBO!wb9ac^_MK+LhhO?*RsQYd^PEv}GB z_nP9o-7Ob@sv3N3|4Nsr@j;5a1r8wcZ&@=F( zGCv=>UL?3`#dXji*j#xb-MGbFZRtqD92#?M6YT4V{HnkLJ;y%}o~K?)JBkG3-6fiD zj~vdj#hr4EcLEUwk;Ih18<&F|s-33W;_f<&w#{gfBOOlgl0IlXFwPJmMnh ze)|oZ?0d4?!fxo&{~0)kiu9uJPmL)40Idh#hN>q`)a~+9T2L6omlytoZ~d%rt=9@V zBHT8kRl_O4O&=fjJq%VI%&^*hkHX=U6YjWuh9b4J;LgHLl)gg)bB&$Ars^d;%v8nh zsgprvS_E$>md0k*EZAUdJmL28(2 zGee#&INP>obYN_3KWc5+5_NVOaY@4s+2@}Q_cU#b5i9>f<@YqXCZ!cdJ}e-EK5=*; zD1arw{knMjgS5d?MX=}uXG5(7<{f2yzaNUk-NEZ3x zhjOUHB}!VYhC3Zicxrni@tyX?ZRM}2)iVS9nQF#&cFuvs78_vBBsWgJV9IwFYeh!nb18V21|I8V z#nn-MxUBP2vKhm$FG~D9ea}(VXE(fArNV-e4?7Qd@@=>0^yXL-dFxk0UFarAxf##( za|ggJ?eCI}$V|73>4=ZdXz`WPS<;@pLC4=DuY}?lZ~oBZ5!u~cOkNo$q0cy?EwxS5 ztR?1r$@P#{d<_(ntTFxaeQExqmT+`mEH1ni1-7CNY}{nZ9e?>^;`blW_RKf(y7NO> zrZrfqoZy3zy|A()K2)<9ISKT?K zt1m0`-MKWpAD!?p!?P*n&_Q@kyvqJaBhPP_wM$n~cTI&Hlo&#tl&8S+KM#>b@6NZc zL~?0uyqp@*8j7Q4>A8)-uq2aeTfgG)a@1>cA~+3%~ zo^be-{eaF258VCfEn!M^wZh9Gm)sJj%hxMyaFM$KOs`O|_wQq1c*72zFRSyHe`S*1 zikZ-m=|*)~KKLQn0{?hKv5{&3PEjkT;dvM3bk&;_DBjJI=N(y9+7GURyZKP{hO$>= z9R3km+}P>>sBFrjI;A=4I`5Jqo1NjV=nfmnj^ugJ5XKy7&C`dQz*U7ChupgfNw$_S z>TUt;>rUHE8?L266X0PzYYmmjU?ih7^GnHTO1rPuJ15bmmq;l#Sgb06B z@w7uQe^4~f_}CrCEH9uQfpyY`C;q6HFbN)y>Z7O}@dk<~mrDN`Po}F+MuMePJUi|C zt4zM50fA`-9NXlAO^u;wyL_j_+bl4p=@?C4^@rRR`SZ!2ZRsD|ulxaLfKR-=- zt-7&iQdhEWYlYqKX~Az(6TIEj1$W$0qe)SM&waZ}nzQsSyzbtK+X@EbuS1#A`5&U& z@cI+gy%+n{mT91y8Ha27?uUYy7{0f#t;ik(i2jH##|qSdO9)mx6`Eu@-i&QzK1%?kbMK>?e)!vr?^TycWr>SLN7Vt)RSgugE;O&km->F>q zB^;O63HILb2C9r4APo<(Lf7@nsQV`?uHPy;1DV;2p|7N{1J6GOH?M9y^4E7o+mH$HK}{DIhRmg+QIjd&svU=A z)WD@{uOV7E6W9N)pnJc?Omk2RzU3vDD}_OL*f|*n&ufQ$8f9{KjAN7Dl9cXM3{e~Q zz_Ra6vQF7_Sa&);*!M^g{kL-oIg=X)Ife1MYx+35`UNd^J_tIm(&^dY6G3;wjWF=_ za=QOt671Vx$?uB-*ik;DJ!JhR#!o^z%;YWj69=aEnn{K80c9n9H^K>$r*(gnH(&bx& zwAo|GWg6$V3v^8FdG&rHu6_9)RPVIJ7aqqHx`O9&uChWN*?2_CeW1agbd7Lu&Lw*E zRSgYZ8>8KqsYF zc13&5a%fYnz@IOy>4u*b_A?V_)1zIv@K!$A&00#M1&_&N(5K40lX|GL=ppRSUZZ$8 z%pWh^6Yu8fcDSR>8~H`>V5z0=4R}=$#R)FY=!9US?W}H(+XWvq>us^%o%LWgc|gH& zt?=m*GiraU8*iK#jJ127EB97zga@q+vGYD(9zCW23WpoQpw51RC+UlNrUz(I$#Q91 zj4H@FC#Z-2Hpn~{M+@u+QuX?aU|^sxI_m~Jc2N@z+#iF_xdWFTX@j4Sn2{?zm%nE_ zq4rjB28(C_ot+ufHXTe4gzSWe?o6)pR$ zf#^ul8ILrg1vbvm`|Ub8O0+&=q^eOXG6?w; zyxU$L-ggV_9;w28?*dld45MGE-SO%cUv|IL7B4J|$$qR1f-J8n2eKKf3$XuA%N=qX}b7d#;0up>VGPaQ)B zU8TMY)+@Hp-Y;KYpo;@R)tOKGNu*q4kwuI$zSFl?M;goVNX=)cLWWeGy@y2^I4%9Z%b$PDOn>kQeg z$)~@C>!cgC_o?N+?BE|s=S60&69u2!2$5FtP}E8f7fPCVpo=a?Ot=89Yy9}NcL+Ac z^~BYV5!AY~345TJ$yP0<_*Y#pIO`UiZwlx3P0yv(Lt6x2dKkrn#TmqHVH3oCbRexg z8p2ckm=36vP(sEp!KVbCapMKOo0|w{G(s@!bRqq^d^oAMD)_nU-v&bH6a{pt`sZjL0USAb1WQ840{#IIP z`tuCT&ky6{p=GqpC<0(b6v!K#q$zglf_T^@bMqmKNmd9?HxI9 zSrYy9SVA|1x7f0eItLx?iiu%4WT)|pPTm_$WxJ!Lr1Vv?s&*#0oVqOD&rEW!bB9x_ zS5T+ko|vO!0=+U_aO4RWDi~D?vvM_gRs9f{wbCDhL?*M=G6Uw<`?0a122Oh21|Rkp z->x5zAob}sc%Ptz{nJj!2RXX1R-Sw)z!ASe|P_)X<5O>l0ei?Q9fQ~E6$GQ$ODM~PYY%WyJY&|m80-JXvRw~(TD zSJ1hXK+wDW36}N`X8(f*JbH?7=Cv2|_svnf(IyU5x5puTy9-8J-pL6wVkDc>Z7|`L za1rD$ps|OF2H7uHQvRGxsW36dnfcfgfnTiHevp zdE?;0&KP5O10vS!SGO+7z|0xrh;DL9Q;l&_-NWtB_RI_w5r(lf^mzvq(f)El%l z%A5vGDT8u%S11p*#P4@X>EeKFnmngk>GFLwRk>)R#{y@(%td6fI+l|hM#94;zC20yq*3ET&HXx}rklvv^wE?%ge35s7TL76CKaB1bmb|vw%o__K6F}ED@_jU zrJR|GSUkFjy3T3EF9btGZ8>t6`ack)`vL6VXkylXaah;i3Ikt$1lRsXxWIfW%^S2C z8n1q)ZH{S9W= z>t+;!x(ll(%_blBe$eW}Ao9+M!j`ukSn)cJ9cdilmKW6A`81_B+u^UAukiP?3CJ&6 zupY(Xs;D2J(J35_GQA|d*T-OLkqh;lxlq}Vyi-2**A$;7iY)kFS2Qyb-BCpd&QfYi zDGSA!M8y*8AHJ5xxd;~C5FZY$h~fKjr|H+SS8(&+OVKS1MC@D*YeGAT-d7Ai9ylIK zeP!v>&=bMqpL)YG(&JZ zUVfzZpWeXGj65n6Y^$@s{qTE775=iS9b3<`WUs0=9JX&e)adP(+~Uszr)F1pUqX0FSZPW<^mJzWdQ^hsN=j%vYG zX)T2x>6wgI_2H{iM`}Itw^TOaCY)U>9JFA^sgFLwt*1sfJk68${28t+inqm4KfBc*svYGPWPkwgFB!= zuu3MLGmxZ7rSzj@1O4iB0h(Q{Fn)*zr$Z{)J$?vb=Yyd~c`VgjPKA=pjiB>v8#qRv zAw_Fr=z6=6CZB&5wCKw-m|OCj-u_t&h2=k`|NM7S$et_I0Q+fUQZ=Nm$|Z*uQMg;U zWi0o4gV_il@Ulyk_FbAG{T@7pTFn{*X`@2;LZUv@Ja3?evTxK_cS_tNb;TUfAwJN} zkKI4LCbLLeO!KzqmDYuDcDo;H_0i_;A7qGZs-ZE)i{w5n?#gL@jrsXgQ^u5!l-Fw? z?bF;zPof{e(hiPb)-o6?wk2TMXBF0jdMV_&1xC*sE^qg2M~g;`2D|-QIHoWdlWy*p z?l*h!jGB1-b2u0q#x0lMby%Q$+Q}A{-0eZv{gy+sTL;|zF@j^?mddH?OlaTI``#J41wWPtp(=l0_!peB)yQ|`1^Cr8U$Trc;n`}!+0i0KT2`-y zr46llTGwzsWU!igCSRAM4KBmb<^DL=HiQCStbkVfF?`K;B;CEF4Y{Pjeyt37(WMSt z^F}yKikHIKmupBN82lER*$Pjc5j6Jp2`X6smv;2BrBScEV4Fv?JkfhIj6SZ<+iLgG zB}*@E{k|XVU-&_8m+OM<#9Fidp#{yX(`5g-e_{F*qN3#WiUTuk1+QE5yVMth+DTn@ z%2^EcS4zd%0y*haJy;6#DZ&7K&(@h<(_ z-JMF-iv7g>K%Qx0$vRqYJmI=EF7mPGCEY!#&zBHPDWnA!#Yz=#HNjwC4|f+QLOV+} zJm(&cn|A#o>l233;L6*ya!_~9KX*~~oFUFy`>#=o&L>g`#=@5u@$}94HE`x!>lFvc4=ScL;{MyR<$cH&Grxs~k@VTLn|yVU6?WVyT&&r<<$J>Gn0u>9 z-Vx@=}!qVa=YP06Kf1#{)J|W^{nX2ZQ0zn6V`@l@`GjHl-i<4 zbI)9h`%Gv}8}^={+J%nr*iIdFdv(S~BNUwC;LVMByM)WhS@<$eNXbhNLDZN~X=LqX znx)#Ax@P(Ev;qb6y!sjJ<`}W^TMXxIFNJA`d+;3D40Fn(aN+76QtJN4V5!-cGU{S3QuMdKT9m~Ps4APD#yP#3G8fHyG{1YF@--mXRQ>UB->j|@@e#iR4 zoyDP8K5Y{{8P*Y3^tZ%qN4xP(zqXv{A+o}g6j)$sh!)^2_k6q#(rms0Y7cxUcpXK{#O$`_k8*&Hz5MdOjxb;66Zp7yf;R)zL0SKk zCiY%0J#Cc*drzf9$oDriebF+=vnrN`tWQ(ej5Wt^rp4s0(+;=nR-q9myVD-CV?bvb zlojjNfzvH-nEU+!oS&G0(@g`w^qfEUIISSuXExp$5!xcYm520TS0Zt4O$?c$%j+J80-%zzAe5hS6^(0 z6_?ytGqMOQO#QIecO$8TmJ41iL%C?UEgl=08BIlZ7i zaB{FzmFCLHQ_?AJoE1Lb@{0;mg@@|gIC60nXRYx2P-*CdE!qRmyIu<(de0!nNS{jj z8}VXe8|*nt2k)F*D|mj*v{AbrdR%wJa~J%%ZQoA#J?1djG&w+je5rhye-HWxzNI8# zj~-tBG1!}y!n&1qtZn#BG4-5-$hU-&!PIa(qHD-$jejXJxHCKcHAlry8$Pwq5lizb z$m?sJG%nzbaFzXx}Jx5p0mK&_-#y-Yxm_?+WSSpq28e9~BCn8V%kutQ}^k zcHya=T;N6RWVpZ059V%a&92dgie(GCpx)^x^Vlh?a(4eK}s(z+Mo55vYyS8qYqsJo00&=eK=c~eySO(DPiTNE zw?9Ct;O8`-ZZ9oZVkA$IZc~PVqv`v~ zABtyh_rd!Px*{8~SZZIAPLDpXlkz?Yk-``96m4Nlc#f3C=EhDfOM`ibs8y!ZJNQ%648Q4^K>| zr5-_?>f(fH_9gUdT`SlZGYM7%b;shdM-*?~cILhIfqbcBD;oK}E1Ns2z`vS>F{6Cx?o`pEf0VmNn$P~=bYl_!& zR%CLo+l#!9sv2*rdPyEt9q=7*lC~^7171_&xNmr>Wc{@sHYaq$GtI4eMyr`}pCVi6 zb~K2zg#S>>a0a=|3X}!~2J_0Z-DMq%3sm_{;+p;~@K2{VvWin%w&`yH*BfoQWp6dC zu1JIT-`wcWqcRHdPlfYNkv!-4Qm_L4OZ-!_f(L93=AMHfy7>Dz8Z~ z{N6@r)pZmdXkm?;hNvF9yRjCE(|^K$%3z$>9E7n;gIW2u3rx$O0Ug{eIqG_@!o*`Q z>`D+F^&DU9`t&D#zArkBRiSwFn<3;nRLd*;JD~II0Osk=(%ey^Gh*8j$BbVC#relz zeo7oqcQWOqUzs#-RwyrfGK92$ucG7YUMU~VK1JiZe1Wf5Z0J-@JarzONeiZQ#{+)n z$j!@!{qbE zovU(;$eKrHb>#$$P~Ni5n+JYAOs5iUrNxG7c=YyPc~R%j^yz^G-PZ1gzgAJ3n!`2N(Y+CvVsxD{9hTHYg zxl=H=o&J?}VHv+fVnnKAabM#t2iAFA(N}K+DQC1lBczCL-a3x-at@XQUG8kf|{}ocnJOH_+bETS= zT`~7!EPJpQmIMl)ByFboD^npPbcQl@eIfXicV@RlOP*73R1R4BG*~Cyf!(LoDC35= zrOHYbUOnZgoMvys!hZ}`*SO+@%?Vg%O0v0czpB$ zh>vTgh%1ZX>r%miE>ne`yVDh+H3jm+#D6rUW+RNA{e%44y`^qlcF?@!eCgysSJY@Q zK*!Q{46k$qr_2!3tK0GXH-c|h(GCZ9%aOkKYL>?gFaa~u_M!{#4sUxoLdw~{aLQ8~ zDoTv$jh->R-@JyR)5R>gJQPQEGeD2uT40nH#qInyg1J^I{WsHyXAiqZcH6q}mHEKy zi>}MYTXsm#;;Q8VyIbJ*1FjGelc#v){TrfR?~(2{wx^8+20V4fIEwtSL@rwqk3-hJ zm!91mA-yiDBvUoPJDZgTdyQ_%W6}g8{=pw**HRCvm{lblur~0rT_xQ1I!`@LT!Jk@ z!MuFX4LKp<37GVE<8K|!c=49^&}v8|rTYf(Hluck=M6D$w;C^!YU$C{0Bp5ATN)g^ z8*X&cMI+I1`K9pVH#@?lEsVnMVrIEI zC=hK13J2c6C*+%_hrh-Zfp*_8>5`rsehbti!$qMyL**Jhn)d>{TO0}A>N<-uXBEkH z{Uf-d?JvPSH^%L2e!$L#ZqRe2=rQ}3 z-wNe})Q&vrsF=;~)#N+s&!EkW0QBvmfgf&FgT0tJOrALx?1dimo9j>5t@T`5HvXn^ z%GXnp{>gOs{@#oWi*8FwlPNTy@CXdo^uVGKo1s~7#FkI%#L8Q$tkl>IIBUJM@2)mC zo)MYM@_l4vS1#p#T};(W#oc|c-*iF(%A8jK)3oBb`PpnR4YtFR2`%X8fI{d{=E^63 zMDl94bJVV>rHJpoql5F!QRjIBT$Ij8Pj`kZ&-=E(qHp4!;_W{=@cReN8=fj1&=dUG zo1f(~$39B`Ui^|m?8P3!%Y&W&SwZJtp1kqB6Ms-KW;Kx;9r(hJKg|uIqe}xZJA4B? z(z#D<1WR?Hp%HI*zZ&kHCn;$~JfwtcpnK^6IzRZEtfMj-p4ACn=kEZl>L>O~S_|Y8 zV8*TWzksR7S#T(Lt@yQc6llIOWTy$85hmzx_@J%yxAGcnTAeHfZNDLZ5ciW+?SnD% z@dkNZqbqI~```;nt>LSqDY~Y#=4x{TxM$Fv4-V-r-orK=oguPi`%U;`b#72{c?KB_ z-vwu;x5IA*Uue3+JbGX;g+5*qd{*fP6xM5SSKabia2hIn1trUpq3vyt@Gm{JjB2Y4zl+Hr2GdM|(Q+v@5@U z`A0A_Bz~FRD4CSS;P9>Ctn$Z$UCM1?)T{wC>B1i>>LOTnVG-E;&WBxYkDxwD&bUx? zs8uG%vCEiKU>&npinR8kLlIVj_hQ0#t~XQIzVV_vd1aGvNyhJA$TVhwaVXTggu?}frXfSvu!DS7l~FwU=swlnhOn^wM{t-cM$RE(vJ zQHLetc1GBKKrBx;@WGia7r+6}EV;vL1?}>;>i2073h?+UjA}hu$n%q;Pe_j?AD9A5c}s>i8|*S*hpNw1-_HZXm0I|s(VlMHw8y@CipbZ+iqGdilO}#@ z$4!F+@b1Sl!RZf@9$}*Ve#<$yH!O{w8GeENR;Lx0VqIYEbz`ahJ|Etc;Y6wHR3tgE z9V_>WwRW9E$x4KE9jYLAph%c z%^h66lk%!1k4bXjHZ`-sYT8RMAM_Zkx>>-1-tF1F(Fbj}l}Itx3#F=SyTR*RH_TFA zg0T&^k2@$kifpwl=eOAnmcCb@$unQ^s;MVUbPmJF_nH*;)fjC~cfy?u{tE7g=(um` z2jkeNfjf&Q2SEb9IOA@Hnn2BIiQV-`+PQ$eI7huEpmblmD2QBiB!?oe{ zG7yM)F$}8{; zMBLPq&CW$|>Si;J-)#vyWPpU-HvDF02z?OuV)q5NT4%X}EBxYk$z3~~WO`RN>!Zq6 zPIVO8_BX7HYR!9(`(qpBEtqtxlG*+iFL%}1dio>C6 zio_XC6`hB-~nRZ*!Vcfw_n|) zUu7Gq$J2>m9`yl^e{{p<*m&`*+@_6xcPO4lc=90S2{2x80ZRTWlSg)F1fQv|Xja{6 zuurk#L1|%J9}$73OB~S6onXS}A@W|&cy9ciL#=N=rQ>ssOD+d{;73nKd}+K}J~!H) zt&BtmGd_f!)5G|c=5gSuJK)3{;fU{dj9M55KtW1(6ooq+d}}6 z-wvN&pNH(0ZoK1$3if;S1nzEFsd&-zQ1A?AFRr$DFOLX}r4F|v#l3C-XtzwEM#}Bn3%SZy*MrYMyPvxl82x?B_IjMaty z*)Dj!-&c9BwH4mk*8+W4j-<|avuIWif{ibtFn91tcwEzsd%rT^p*y0aGk0G?*(wQ6 zTE}tT*(@@Zj>&!2XyKKd4%{m&j&FC>;;*Yj?$3BNkX?JaRcpz^M*WkgTL!}9JAvq| z7s_ph24bSW75c8#=Y5+R6=$LkQp;a!VeZU)IbpB^+C@wUfwIS@svWfC&I!1@awSbX z?ZXd_J)ub*yW`v6;vBU_n=Q*U@ljsALfdHfI`eSqF zD%k!bjQ#Uux#>q3`i?s-HJH2N_>Fex(RUUYA2Wf=A8j~rTC_Z;;s>?NDuxA5&nqsK z#j^U`4fJ?I9OoYFMP28G(_6bobijWzu;yhcwA2U3zi1%0f|QnRLfeGuw(O!6J8VYm z%n3t$e0}`7r=+wz9o!2`9&P5FU*Vi?H-uiU&E;bEg>=`f96lUvjlm17_`+%{^pCg# zqdG-!!8lv|c+5=7`ea1W$sO_2i2-Q7`?U1%Z*LwsZ6rS#mLYeaxfG(0&V%1$!zl$! z@&0BlO6XmJws(ecYm-*k?#Vq`*)bc9<__R~?)g}|t&oGY1->^pO|ib$F*>vREA%KV z#l0Ul@&1p%lcx>AiQ8uLi#`Qx)>&IrxF!73)0u1ME#z;7F{G&YqUbF9(5xd1Pv-@(#f2W1kXAF8I?kAs#9=Ne-JPg(_l3bJ9 zV)+GK7);OULUoeV7!$0Vc*F#owH7O;efmksR~OTvR|DjSY5DweUj_1rH?)%xCx%oc(VTCaO&2y5Co5e%&TaaMH)^hkD`7satVaHyhd;afjBv6{Dwn z)9_vHBrv!?4aXnPgB5_hxF#G^`rMN42(Oa&8rTG(Zgn; zj(zkW=XxkG}i0`yCT3K;(cXu%qq}voq>51=RxGB&74u|jqg&H;@Hk> zcx2u^aow5&74z@I8>=K*UgyB-`Qn*r^$|QW264-$YxrTKE)0wBK+VTC@P<$M(%L=C za7%bTcGsWJmDjy^W~jJs7h{Oa1)98PYbqr7(I@}dG3ccij!uU+bKeS2`m8&V-~SrN z`+g_$<_py{sc|umdA1zi*Cp_vS4+wKqb+V0x^#_;jgpJoD$ct8namaqz&X-#R`0xp zbJYLP?SV6R|A#58V>6p~7$2qKjsKv}@DjRv;;g_9EaA`R99h$;H-4#{BC5vE;QHKF zq@3Rc{#;niE>l$LOaFM;*Wn&@nUqLPJyY=f%{X4JS4z)CWpA=FkF&E{@@?A8=THBD z(__2HlkYoXaL8huY&w9fcALwG-fZLzb%P|6)p2M#rx;5gE|(R}E7_!#BL;q*#dp69 z#4r_W#yM^H{eWn^9qf+tzbt5jZ* ztz&>)v<}dOF(S%2*DW*-S|bJ7D^W*%<$#kQ-l?az?r(_-@Ta_pp4n(kaF`qiX45 z$Xd=yT8f{l`$67>5ghWpT#9wlREG8)3cK2fXJ3B_7Pb6Di=!UFgRsTy_^(K=kL|&O z&o0NJwj0@c&N^vDOb>m53~ISi|Q6tS^tsr+>Q`s2F}C84#bN$%d< zjd%Rk=iY^(*kSs4SXU(Q$9@L@)cf*_mRD)r;;rBv5y5MEdGfZo{=B057cg*YO&xy6 zvG$vxXna}3^8)PI{q0fEs3^sogF@MUN)$uoCXU*g!i%RY=2lf*@rv~zPH;^X2!?!| zHmnQmUwIYGZm;J{@j-Y&St4pF#e7UHheHxWc}$Ji@;#V{=kuNE^VB3%iL|GMEebI7 z`bL3-w30_g2jZI6?YT@`GoHV&53++cLXw*$ueUZ5RjoB>(|saT9s&I4ox#heCh%m# z`SiHu7;JU960VLrDIL6PhKh-gRkIk}H3t-HRGbVHZ$M2G(PruSsLm9rSvHj8x) z<_ML0KAtM*!Ws+LqOz_J>b}2E_gzH%Eg=POs5--~*eHB-s+ZiqZY8?Mdf^pcb$laY z;=>EO;ipL{ymPZVoL1`s1HY8R-(m${HILzaMzxgwxDv)_?UowG3;ps-1?<$Z<%iYl zK*KSM13qrVv-+!9b7BvUu35}2G?t*w3mf*2Z;yk|Y=rBpdf?Ch)X8a4K5wltN7c3c zY1)-s)-E52uO64t^~6n_vUZ_BFck5ZM{`iaVKW~(n8U4?iQimx3usQ505oI{t-axj zJu|&G;mgdKTo%{? zV?Pd{k}DHfcg04!)@n5#xVTVStw|h$ckG7WI`HL9#A$`nQKwEo$Oo(wa9HqF*?m$?O8&m^u%8_^0vF z)JZ&k>J7sPDYRI%OGm(W?Xl`jC!op4E{2yj7rl+DTi%&0YT%76l0>7;ZkEq zy!2xoxsSL-dPjdq?fy2>=ZDL2>W2QJhPfDX|J8z5`%rw}IstdYBuoxonj zv*)HF{J6FOG82a3yTfkyY+)wH9lj?e>rUc}Z%1%in|wAnl!tS5oWwV26=tff#Yc_> z+}~m=ZZNiG%cJR3Yu+C2mglj~od`UBG?&+kIB~-g5#iqX5JIw6@xv$61Z;B=SLYS; zJ=cMlXBmqAH^jctr#(hK$iO8vLvj3u4w!3oncja<#p(N-D8ep}J;DMxD8$95)@Nlizd?ke`G&optk=OFaj zvY8ey*5d;Y!$e)~Kc4eHTjw2?(^L@Tvk5_>I69v?7PeQ@bM9h|Y zLdVQj0@<6s_+Vi&tm_Ftk&8Lxc%&=#U(>_IEozwisE}cA(jn!1E4{2-guinNK_PcF z%uU<`bkG`fzT2VJ(^>qSsd=FCs1)E$5}N5tpiQg`mYB=qf#;JkBd!p~>v-|SlW+0n z3)M-?#X=NwSwT+Dk64ZQ?3cZ4A*S^FcUvmRO5zpVce8( znfz&yrBgeE=#Kzf%v^eaT#nKNg=qoU`?3b#D$N85g*=?Mw~V^IOvR=FAYVU ztH}8qQ{d05XXMAZK{6?0toclpb#usvSQ%7F^~A$EvP9!-KCe}=4xhi4geMyssG4I2e0!r!Tu-FqgNSV) z%M}v||58+9O0^W@WC+jgC!uXJu%pb63XO80YQrrIq2~co`r_Oyr{6Sv>1+^k5XHLz zXXynqFH&kAkH7D`p!%^=_`YR4j+V@#yZmNE~!IT)m^wMWSrn&lr$MFd5CLq zm4wXQJ^a_3b$CU!iT|RPgj(Y^!&CbQmL;+cC|Uc4<5|q*{qiJf5NF!nid;C*;7rd4 zej-udpK+?JHZ$U^g|BoAxns5+u}^oJu6wI#=g5aqP3`5In9(z`2(n zG9+mbAJUox6)BA%+{4Db%V&fAilsR4ekpq2TM3(DcJnFG4KR;m8kMp_d{{0G%Z{_i zZ{iN_(OZUbURDd%*#V9seK);yTh>E zcQ#=Sp9$vc9Kj`OJ3Q}Y+K=HF*g0O5@BCFqV@v14$KfP~7l}rfzTeb;`3t54@*~Ua zyU4#4c|_l54VJZ*<4q5yOx@-VBJSxJo1sfa%F5xe@*nccFbB<#uEK>yei*suDoqYa z0@15&o6aaVy%5kL9e*Ty;3+7j)}m*LF*I{a>(sGL zKNQSMLugct2O2k=rt-Z-PWBAs4v!OfYIxS{+t6e)Mz`%NO$YwgcG5J=oEMXyp zgnFXdqGsGX&mEt?iGleK8*s63BL4AAL$6bp$$6o@)VQ+<`gEG`gNiBcz0pH!PdCGF zvjPYn0k}G~37*KXk$qnZcsm8-;ek}FyC=YqWtx!oU>?RykL${>Nr2jCYjMM z1}Q6y?@FOTvy*W3>jFwO)NnbAmowE%NPuBDu@Tb8D@+}dnreXwDjI@SOA_#=Q6YZc z_F0hUT?5YzqPdnO^3=F{67gp$nEl%=yTs+HyU%Hir^(mcahsbE7Rsl<)Ah4Zx^gLW z*6E>v`&_naQ-!Pdmok)sGM($yh|{F6lPZsTG(Gx|ioDdpvyTLP&D#i+K>P0Yd$HtP zxe?@_?x0tS&(Jv=w!v4!OBSae72&7T&Uh;}7dua+6Db`v{Cc4TN`y2qY@iGU?|k5( z`WY&aJH=NT?xhCblHjqn6U4d1;u_&J>`wK-WButk5wmg4%_LCok)^JQl`#FX59L!% zF$LLLh*&9(3w#!GBd#InU15b=Uauzqy=tbiA0~pk?mC+BI2hx9FTnkG#-Zoi6e7F* zE%~jKkIg<+xXVADGu_72q2($twyhAiHqL}?Pq(3Pb`1($h{n643*lW(4fHA{!K1gk ziR6PI7}cJRH?RChM=`zSVF?|$?I(*4Z~S20gJdj9U(a&LN@yLOk3WMh(mCuN3yZd* zseTVVzb+F68ZIPJCI`>2uzu~{Vw+8sK{+Ak6GgJdNn)Xl;_>l7G1M+BZOPF<=>lI``Os5cL0*xn~?c1`FX)Iws_vO!HS8|Gg(v&_^g1QlO5 zT)csui#LuTozI$}^CeT0Z7%`AjRN?{z2u1{N2e(k!lR5uK)2;%(J>bcYM+Pw<6HTo zKUMLV)k7LOrMlaqzLAuUnThU`l8L_aB^sDM4mRuLQRUS$;8$xA1kaAZoJwnK6z^bI zto7hyYX$s5eV7}zn+(RJgX;JZ+F&71Uuvr`{PS#L6H|o4oge7vgFi_8jVA0K453>U z_S4^9+u@?kz0pl@YB+uN^w%s9z3>NHaZ* z+hJl+n~#2t#i+hN6`Z9mllAp+WZuCKbkpEJ>P+3Bm~)|#3E9vQP=u=o3G{Bvgcm2G zz<>I4>KPV8c(z;APk z(ClF;)*pz3w&rNK?vw(js=eW#T^}jDpAC9nN62lKdroxSM1Gj1!`gS#x!C5{bg`5G z8iw@2`FuErPM8amcIm&X3vd%U8e4o37>< z0bw6#O&g0V7@|C4xg3^VkO!BcDq6!vu&u`)5pT~8pmfv=L&Pd@)%pxvad;IiVak-N z5gZ?NZ57(BY{q>iF9o9ywb5*yv9KsDlk9A@#b+YLaH;wMFK5cufYa;Iw%CL`^}9-a z3Sz-?sS;egI708U9K}*G8-2bT;iJcOfZ#~m_nsras3B3G9|Q&esnX*{k4S9&Vu;UY z&m77}$ zI8Z@5eY3!2z5~3y`HQUVmO{;%Y3NnO}gwL^QU z&G~$cnX?S5nwH`P`z2uDV+sFk|B}>oIVdWek3)M6N!{Q%a(KQ1_6q01g6IUav!2M% zz?H--YYw_r%*CIw&D_v|<)HB}j+&gahmuA4xbw0Fp6Wqv-G83o98?TbqhweneVzQZ zOocmBC&IdodgRV^h8FACfgguGiPOg_aJsUR%6!x!bF{0ley1u9to6b*AGEtCXBeWk zPZ+)*x13hLdPj7tywFFxiMumwLX#cWqSIh4Uj3L)Pll_5W@|CVn~%bM+cMzy=5Um@ zU^PPd`Otqc1%iz}QXy^uIzNuar(@?rvu+l;xjf;oG|b_DCu{Ln%yTeoathS7)!tKr$5YWNe- zhzhP@xE@CMdv_v9=);Nl`b|1ErYrzQCq*0v9hmx58791~!~5eZ*jCpI@@{@2Y^{~% z_WjPq?K`xAKc_;jq?^)(rPCo)Qw*kMf94I=NRiI$^<=jL(`_1gV5m?ugk{YG@gg^} zJ#ZQB7<$ZkXeprjb5rUbYz^D{g&|;oL(3lzNRD0?=kLb;{tK}*X+sWvm??lWiuEu( zsu5IlEAV5B2?dvAjPX$<;+K5zwh-{qIZBXVl@A#^+4~g6q4ezi)YU5uY}Q%hk~tAz z^F9lYm8IbIm+NuYYL?H(A0s-t<K2-BYgl%+5z02TP`}@uywk$fXjEna;ZT8Y{mXIXUpaWYU>9-O?2kqMc{q8G z8&qw&!ih)i1lxEq^bT48R~4tjvj%s(x%oD^)t(IJ<^Ry;oG0|YWjPgZFGG?0z*Jjf zq4y+5EblGCpy5(l^|uPsEXU!s0wr~eR z#o?}9Bb;2|4{^(y@q%V1Q7eeXNR@8VXHbS+we_U2stgPc*JIDYTC5di>X!JiILxj~ zGrKlH#-;|;-dc}7$5Ke2uqXQtrIKq5JvQ}PS$F3LADlTM6i41j;to=cw?fKMXjwh< zu=~g6s9C(YkR0|1RfBKaHxj61Ma#(!Y@+#06Vfk>>LJU+7-HrY}4Yi&eby9k=E>)~MAY}_)`O35BI zx_{SptbV_T92hBtnT9qj*YH5PN&&eKN!TJ&M3;(I!H%g_kVq=1{%l=HUFk~|$GgMf z;zoY@Zf)>1Oh%m}>uKhZ9$LbU$L0rnFPM?LmF$DJcR^w$3zPYZ62CcXK0t^B>Qz0@L=Ku2xjXP zhsLS#`5N{lurv*wO%KqXWtDj6*+djBRL3X@Z7g)l?zFsxDZWeR6D4U6oRKj=TN_hg;o>e@QC0(w_jhnjMp77WkP3rE0r+yE z9Iw}1f)#$EXxVy&1n!anJ*#xcnKg>O3QdINM{bZ;`ARV9Mj@t~R??6UH~IP7v*{(5 z2xttQkKfI_wu3C4S$6{vZ0 z7d`2r3S<9xGgN~!juKXaTInrxPLL@GS(oAW5(WJHW(~|dn#YA$6_FoHzj1py0wHl` z3QQbxlXULO#$7wo!1&iKQgQmA;L(-IuzR-v!p9Ok2lylxd5+7S&{Om0J)}fAvww@JO`K$9( zwUO^Go`IX5Cc}($IjlAI;6F9k!`(Tb$qFM0m^VrVMI9frHMRuM*(?E_(Xr@a7miEc zDG|qkM2y?(h>9c2Vef@ikhH2ELT}E&o@uTa{;ZNp%x;F^)j6<#erERwTif+Ml>-mi z+4eq{haXKMxRnuG;pGcsD()E%mSWRk#epbrR;h)B>$0%)=26;IzY0u_v3e_8-I8?h zqfV+{=;d-LRNmkSM^bAb2CvhMie9pe&E4v+OLu$Uwt}f`L%gDNANTisC^tz<6wLoR z(>IZo@JMC>8jX8Pyo(j_zd$qaJT(VL%{)p!#7Qw6yfvO(-%92$8OO9UrNqQ44Nfa3 zl26A~xzn|#c(o${vbRaVwDsX&WyBFVc0L{)eo0frPt%;6-{`Tc=1e=AL~T6`!0CxB z+>e&04UvQNoS!knax}uMt>aN+g)ch&2*jCR(pbJ^3!T#w;lGwI{1fvO9Ij1(lTxYp zPtgowv^H|@jAzmZkPM?64amWo6?pm76yz%3(}-(TaD7i1)b1~VziWr7$)_mX_d)=d z=^2tLDGB3)f6}lhU$|S?&ybqoAn{BBl=^qmRl>fcN1lD(U7PSsAk!@BF`e$`A`mGx z#Up|7-3EaoV0HQ<)lzna|EecZr(-wBF;>GmzbFaD-8jUBsb_F9+Fr1K%?r9;=Lj#b zFNf~vP%OBy5#Fgx;ad0PfmUffkW5zDFVSFU_iT2bD#FEw{?bZ)rswlqj*HDUfcD`c zoTI9PU5=?BZm<>pDH>q%zh-(mzK_mc=}DhfPNVUX@nCTv1zW9E@%-u(e4{rNuN`oK zLUz`SEhxZC6+2K>OACDm_7bJ#JFs8wE;&`D385D>!M9fehtD#sM?TBxMvP#^#N9Mm zq>oNioe0(Iit&-sHO@`S39Rq4EP8ekUi<6{L-u));Pjeqn>`EqKJ37*`9}mz2`1dv z^oL}!p8_v>pa|mv#EFPRKbL!{mDpU2hGW+Yp>lR6rj(_l0=st^&0P);AEgu5!3)IC z-xHRGtwqm0evq&r4u6i>4ukg`p!9n-W>&Qc9z^>HUOh8wt0Lgr_SV}+p;ww)P+gX@ozhE{PHThxRfGkkEk$OFF0g!3O=1SC;i6&?sr zf$zqlINoYBWO%ND%F9*!ccGmSbfX$izY}niQ|jQ(!f_aAQVqQ`JaBxtJ?A4V4}WLX zVns(0HlJOCc14x=Ry7R!PE04Sdi`*p_+%*Fu>wYxWpEd@L~y%_B%Ht8N1tt~ffHDioOwEGlw`X#foRn~D zHqUk5&Z0ltF1WZfImE*<^q&&f{mLN zp^L?LXn#9Zyuk1*IsUY%Wh*JCfuJCz!t{u#xZ-jVmaiU1+m94+slxSOnEQ^l zi6+3a#bz|QGnEgiQzEC=cF?RbX>j$nD-8=Sz$t$_sL{!0tZOraC+1?XSH~ITPNu>O zs~uGRt`ruSUn1LzP0;3w1&+OC2&Zhtv2d+2QMqY{Q)HWAP0?|>y>B=9^gw~uUrs=e zOOoV#gfE%hIUO@%GEmrTJrs-t;GVhDvGL-2GX0W$_hw-E`0RYx{y_??H>KgPWHvXJ z28P`;1KGOEe9e&~^v{MbbY-tEmFbDbE92ua_f`;?ma;Czk4EtFEX0qtKl$=k*`Oro zqURoH)B4*bcy(|s|G@q-5w(e?wJQto%EM}~^lQY#jucov*8rB}2}9UFcD8j9?ymR} zPU`cGh)D}uPcl=1Mp0XwY8?R|FN#5fpBBuCPlAk#DOA%w71qX=P&JupQ1og(opo&{ z8<`c-)|aZlpP59$HYUKQ*K+s_m*N3+W0HB=A4|VRVNzu_o{uYMy`8PR{4xI!96H`awosK7j z2?g;@dIc8jtUw2Uk*?h3`FQu18eETNxXj6_aBXNVNMCO!HfHU-$R9hLy<&UU88&0z z#Iv$>=~I%m(g0H@GR@SL72KV;M!45e1Z&P`g0%El7z}T~@N-fi_tKvC4!AJ_Ox9!Wr6${7UoVrf(nay|po3sXOYnI~k@+Km- z@=f6{gvzf2#UsVozGx!s_e}ziO)eJ0b~(_tT0g9_@WpKx%puL_BoXf4NedM@ zq+k4Sc0mfU&s>i;a{xq~H`DQ2ZfLqD9gq6hvHpfOoI0_CsDICciz;;(wQmmIeOCv5 z3O%$}m?_{qqhUJh+nKj8_2<1z^7f+!d>a(QkrGpSyD=Z#UfkuZyo&{m(mc7o{UV(w z(M9jOIPylmPxwW>Psp`tI!OPWruK%V7``kOmhoQjC$$JCcvYdti2))dBMf|01^&GA zo-;>Gbz0)J98RybMm=fP3u|@98&T~3Uh{|iUT+IK8V=H<43~S;_)FJn<9QIK8;<#2 ziKOvp5%>r(P2R6mjNI&lr#5dTny(UJdW;iP`W@y^OteO?52j>ndIsK!yh`82n1J;h zwthQSlvqXC!%gL7M8JNBhDDlKw7n2AgTGR*gIX{n?>aZmM-c*Qq|xJgA1@Tq2#u^` z;~w^bl8G-!j;}Mcs&vsBAxn5CRE5I18R*PV=dLGf@Wr1xY;4ycD3NXEr&9Qtg}seD3p;dMnt$8sP}Y z)y;v_tV$$uCD0$iaQ$1Rk-eP^WBpD94-3UXzN8Ijow}J^F>Hjgy%(&TUUHJ<>=tYauZBsfnILo_2ga}*Ip*yFikI?9gY-r``o$QH ztRskXa{_h*M8V5(kC*08m;ojREwj{$^b2s>GRYxJg5rVb6 zsjL4B{-Sguo@e*dlkN@p_Q6&dxFv@w?`Pol1BT?eX)VO9l!Z~jqL9I5aowZV(5+`5 z@*dUg#3c3-5taHyrS;3v`jiuDo;%4m#igR4RUJm>7f?r0JKVad64TB)g7nmxc!tX( z*GyFDzCL4Yn?b3N-Y$H}&!gX@x`>ym8?N2uLVaf>(kb&RU`a$Ru2HatsRLFx^jR9N z8%~D_W-^#5r-1+Tg`uw@lV7@Q6u&B@5MCXq#er9>SJ`raOz$Y?)?ccGrMsJPaoSk& zthF42{%pXBA(bE&Z%0xl*+A@XCD!H122%xXymC1eR>;c0<6X;0ZsY*p@h%=@x4B`N z`V4+VrGk`YUZz?%Q}N2PdK_bSk|;H*q2)X);@=*L)~u@<`^y!-F1^UseEe{W0NTntz~6RoZ`qj14Sayxf2?)3D5;|>bozIq=S4rgf1q#AgcOtAN!n9d9i{`?r%T07{k2o1)lZUStYhmh> z1S&uG9qTRvI?t?uZ>ouK_WV+ia+ATKuXpH`;W8?v;fZ~QJ}`1x6UB^WVf}w=@o8%X z*fy+ZXZT!*n!gi+zkH(GKWF0BSdJX{D1br15hBUeV@p{sE`1w_jT(h;Kc$YwnHHgG zkrcij|CGiaEWrtH@^K*e8aKX69D|R0!HGxJboAN;Tox6~s}8Yy{FySmcWWp45Pg*j zJ&q@LHIO@YU;;KqL_#NfpNMsuAikm;f6qJ1|BTJyC7&{F+R{7Z-7*C%X zkA70kQoFivQqbb($Ia1 ziXVyq2TQ<|LQA63Bg0lj>tW|b*7>XqC5|4lSY~xakToh1)y0eP=Zy(iT(}W@Sxz(7 zfpr;E)6nEPPxkj~V!?|zco5e>+ZXH8-}Zf+w3{1Q5YIj*zZPNJd`bM(d69GsNy1=M zF^p6!0S%i~5aK_Ne3@AZXI6{?r>IPvv3@30mF5#Skvy7X8bC6By3zx3sZhhR&<|}p zAzVKVULMbcvLaXfb8Ij5+}KMKEry8FoI;pzzl^+}Jp<2;V$V}!V)5L>d^W3>B)1|b zVaKIxdj4}6_(q#idDa=xyH$;oete*_UpldQm;uaLR>vowF@o_g*m`o18U68K84THN zfXm%#M7sGsS#QfUmVF<&gA#i1&*oZp?VN8!c2omAc%FoELMOSnzlVt2?*^K!vYSfk zJmR+-l+cd3Tj^H8E|`5Y7cJ-dlQ@TJm}bZEYGXOvx}XfhZdTKdz!CD?J_(yM3dq?e z4ra3M)H69PwEwq{S~RS{txQYf_@5NH6E8z=YHa6}Hf}))lM);wt&4h*mH0{N57jow z!ZDee}R&iL1IY-h7~aFrpzs>aCjAZGNj>~ z&l8y9Et%WlREc9vLZN9(2F{GxNbgBDLfP(FXuQ}F%Xcz`$hl^W@iGL9xVd2k7 z*3)sKTR`2Du{+~A2;X>~I9C{xFS{E-;x$t?W?SM+ml8-6!atmJe>ROx>VS#yx=a~Rp%#C*uNj#s?m zxRx3uj>XkW>Y-*|2;6VAXDYWtWZMFFeDS&*-4dFy^pYerc$eUgG4pt-?WS}}fC&U@ z`GKToB}owT<~d{MH76p&$~c&hvmxd%__4(KK*>APleEVq|#@Ke(=z8hwqT zB7KI?C|8ctJtmP;srub{#~<^{vr9=_ zO-oSggAgc;1ahJyRdmPXLg+uKN2k`a_0nl(m>>F*`%~5kMPk#?e{&PIX*iNe(>~C5 zD)k`jHi4#}(1O(6941amrMFyX;e?JFtiEmlDaVg;U4hCFwv)|P#jNrCeiwMm?x8~e z@<1v(j!X#O0?9rp_)#GZj98vrGI1x0O>@I77vmwQy&9dNnU2=TB+?O^vA~nz5+^s} zx;TBXb~OXr$s%|$p%`~4&%?_WvSjX&?ZkGY3~E=3&>siRkcm6f=og7U^x=`)^kYdr zFQ2%E`x%-ID`RZP$kmUO%rd|m47nR~u7&j(T<~&O9xf&#uzAxqTydrWR0a=8C# zJ(mU;`16Z|Z=Mb5iUVXz%3AKmDRg1%mn4CV_KVh3l#EtQvq;fu>r zeZzc;i>~uGhiZX;GXZOcYDn_kO>{$gIqoh~hj_^fP+nz>wSCj+tHnjQdtVam+`jS;lL<#Ph;DQ|*+2A=R4s^<-NQ-|tqqU zRZJ8AQ^w7ww87uI7+2@4rjnaBK#p+$oZTJ---4?lX_7Bm{x^rzyzJ#%m)B$R>nZRi zF$WZwel@ms0egKd_CXk2m}ts{kJ>{vHW)FrgDMrvK18Oq<}oaPJt;P0`mMy*geWO? z{hD{378*?FR?XD_Z}V;V=Gh!B>{IUjChp>gDz9 zKpV(;JaK0$&eQ0clUHffvl)2zP#K;$JIs%r9t#`#SAg8Dm1xrBfIUM#=vbiB^CQ6qtfQrmMTE68oV6^=QJ=MGdzlXb{PmwN2{%!&r(Lc20=UD37zn*wH4wE;p zT1Zh!2J86?;@BR{lkpt%u0b{WtAWuH51Mk@4!}_m1Jp?4jNRSBZ1Fk zVYYb>eV&nrD;syvRCOzwowpX>6q)idevWv&Q5Y6*I{1c@fR)ALp{$HOH>YqQE~1BG zq4nVK_${pyt0GYaMriUO0p6x&^G)slw8GudeGT9=V-`NN zv!n~vR4{$i45~Fo8Sf88!~6eO=j?MV{Ab5Liw+5J{(so64F^egLpt6UBD80&KeqyA z(vU}1g6hk45D~^uB@Z@Yi*OjW>zm;kTQksD5`~UM;y9qw!g)Qb0Asgtgp7;DG4k2C z=wC1fv)$(LZ$8lExr7wR5VUcetLpx>TIjPZ9Bs+lACzj(> zmV-V$QI4_2xrAF<4*fC_)a5}3xz%gHEzjH6U9|8ruP>GhviYM?Zmv9GJxl(Ui4M3% zDL~8v6D&Tm5y!FJiKphJAfA$r<rQ8Ll9Sh~ zz--Y|A^{vVofCpS?$Kb{5Q!B z%ItU3>2sH&Z2t!AmypDFb_L|Arw{o%r2(22tAxW@NU5#4%d4Q7{frQzLaVn^_1er>zh%xLLN;= zec_vrl)-pm8zR$nln8Bfz}t^Pa86AUvn~wr)~Zf0&NvO~{_5h-SFU5TU{;wDYt{XdFe z%HJ;j+MWRDTedn z6!R*8R0(Mizj~AImof(B8|+dfJ_Zj(ws8&tX<+))lxnTrghl7%dC3zx*u==*b=e|N z&~5{|&*$QAQC*m}u8sduzkyX8S>*U{4QAcHK`%vB;%qxB8gXj^j(3Wrx6I#Dmv;iX zu00y`bE{#tPBVm^+Q_%5A0Q6`N+8PXEO$wED!9Hg!1;1gpvu1^1)sw#Uc1RqkG?JV zL`;}&{}V~PuDZhd{k8DdE&+=ek+rqCgnL%5O8s5pNjM(Eiih_|oNchu{Too3)jj{9_Y7?@fhc zvtH5Up9M%8D!J4%u3({{1z&f^q50u*c$(`9ouaS1?`<%mLPck2;`#f;&dUMsCisz& z1zVuQdI`}}_eGIgYf%?%Xh?QA8JHRkDoe9*XJsm9Z5s#=>?%NW!)M-<(WcB+8DhG8 z4$L!JM$@uK6B$;S6JC-BJJX)Iio6%KdGUM*p%-K1kD)c&N|Ep26iLSV9*U=P2UT&<^^Hj^YkY z(uV&&*P^gn8qQqj1YWz1nF;Imod4fJAu2%OsXmBuX_3ze&q1bqRkK_fwzGrQn` z1-=w(70cN`}{`(ecD25 zSIJPj z_r}u~Y=nF#%8;zjINd$?O%lH<7{cjYc{trc8J2}yrAo)6z;C`DwBMG6)5(owL#-Di z$a&!K_D{6_MHxA0>xXV_O;A`Q1^sj^txk(V+dpTxVlPMHQt*~2oM`5ZBgH_jO$}Ve zsZpEh`}l$V8PMl44c+5*(uQTBPNn7Jx!xdp!REymJZp)O=xxCXXM_!KHB{7 zl1i#~i&gHv4bg{lmyiq6s&JoCgE}3xVAO#J6#ocd{NfsV{&@vGmOhu7sK?{I;VEEw z?QVDV;Xu4&?})2CO;FBM8s04~#RIt^c&BkJwAU|W_r`j>wl`I9uc#Wtsz&4R?EAFr zuq7zx_mFGLv{CWwI`CGtgYgBWP_``#RP~f`>lY)^XSo@!`#YoQpBCP`T^kLwL(sj| z9-rGT0jsn!m~T~w*S2`!lyeEFvUVOk>RyX|CYHRnX9JB{8Vk>uEiYEj2}O-7U}gLn zejKw2Sxml3M=M#uX4{>h?X&^aN*oS{p& zhN*h6kj04KJ-cb}ipj8dk~_v!PsBO)!!*RK2}Zwnf*%35$q;@eC7-2ei*&l2qReonj6pF*4}P=_VI6lmdvG*pymz)V?V1m+4It%g-Y2nGV8l<|xFy3+wo{X@;;f)nklRr;=iYjn+!#?V9pH))4j?v+b8?oH1 z6gF&^=L=Tsz^e7nxT$xmp=WV1aZqVwRMB*Jy*CW@9X3UG8AUuN%PImM&FEEQ1m)w0 zNTypD+^=OACvFDyy`V%C5+z}GRT}vB>%h^5c)a=ClI{zMp|@w&WBf@&C@&F#&SqUK zN)td~%4iUl)g(u~i)e_wDm&B7B^J^yF!enn7q3;rm^KT(wTK}*E~LTh3-8F`9u3^= z7Xn)Y(&^weQHZImrkO*PbmZ++_`I=`d#h0lQXBF>&nKUuS{Ny8(2_5z-vLQqwP1S4 zLUbRhAX`?e&|lUyVEUGl`ywOcXz+5JRlSmXwTrEz$yYGqsXLw%HNfBUR|NOM7z$u} zCA{`7gsP4GR9l%*rDGDPhtC_LxFLr>I$HzVVxuxB#x)?a8}t~nSnq(nog94?47fL*tZF&s4*{>cX=eoTklpq{SfyX!Gp zpN-1*PegI;JD2NJoVk-;+~yozODhq z0+M0GU>!fcFB&eZaG0mftmecK-E&G5OKlk($N0>DD8Xa5f$M-!)Q;;X3+jOeyvT_tE;P>3G1_4&~er6J1M5 z`28msSLLSS-qH5>Z=5}@`)tpjh^QdHhBHyo!2)(Hnu0!Ew&>ft1wWkZrT4aYfId6> z?C)#DrnA|Q^Q8d4q!@x*)kS`-St000E+%g?#c{*!g|IUBGi^~2%u*fjqQxp034 zw`64_H+k6ws&Q5o{obNE%+n-Jpf74`@{6Y*<#c9OuW}BHeZKLD&2#y*`uz_Toht@M9}J$hN>x zcD4+C`6|Ntu$4hTc5u!F3Ex#?p=ADI%4BknkM#+)|C+G1EjA-mvPzSzD zN%%JC0M+yn=j64*@WnSTLFq^r$(t~28F#h@o_S1!(H={=+n1-~i*c#Y7VS;`d8F!H>+f!l~@qmeS&j`Hp57R9S|f#8-k8!;US zhZkC!>C7uNaP{e1n#`+3%Y(Cs@5gYwIG#pdlL^e=n2F1B?M}4RZbJ32B3ypuG_`D6 zMDDTs-G=CV&_5MQa$_G8Bf|}lZnqXv9L8w;H8%d7o(BfYo4_$Y8lDGsbB3%Y_Ncan z+In$#`A`~^WQbz?W^Zu(Du;s#LsnnHD^Nw1;RI@L(wGfri7R{83MjPU4KqWqylq0w z#g9{y{jtRH^lGAdZapdP-bg#2SHjT_U?b5o*k`8=Mak>%zs?lUiwMU{N~@^xQXhD- zr5$F~voSf}6xizYg{+>+$fPHSnBBVw%J({9QRhS$_Ai7{$y}nqtZ1Hx$Cxpu6t6b7 zqeVe7*>bR+Y+B}rlT-_FETsh37^#4wqZqh~ZXy9b)#O6be%g2R5ZQig5{_@QCztEQ zxkb9SiCNT5n(-(T3(spn*sfe~d}D;KGZn$l=Ny?ZoQ^x~=kzZ9nFKWWG>Kgu1E~wX zTLmTkwX#$&hg%!+ac#vv&LXdZ=exa)M3@Bge(kXbnK~9vZ?a(ZM^|_wole}zGcMp} zDt3L8h4w5)4xP$k0v>fxyh{~x_wmEzVJS?KZ$*t$t+-`P9r3zl#wd(g7(6eJ{tegX z?Q8bOh6_7jN0bOE?aStLJ}aQzB1_!y=)KjhdrL7ffFEw#Z-MtRGr&dF1?#&dsKT}o z==5shZ4%IeV{FwvaWJ25zEDA@4GZInv_e`Y$d6@e&*^{J4)k>DJkXwZnQj)lOyc%? z!rBssVal%S-G9~`*GWz0byn`>(8Ss5-k&UJ+_x70NR@DlZt~&QB2kEX$L@>lUXYln z2}5E&^k|w5k!?)F@i(i%xU~u`=4O!-{Z*j!!W+%Q5@4Mr~V)7!?KWRdz zHxVl1>cVNh`9+Ln8wr1MCABYXMnjcqkUSKR=M7C^+h2ySbJRxHi9)!JOoFFDPWV*m z3wPdN0i!ls;sq}~xSE{K%;;?pE4LC=qKn|VQ4Q=U5v9K#u$b1;aO&Y802OhyaN&47 zZ~x9$bjxQ8h>&k21~Lugy=g30a!ZviU+W4^64AJImMv`UYs9Fd?l`01H`%OJM=uRX zV%}%*6L&Qk$-7*UcIBqS{3G66+T;{wR~MiGTK&Y$C<_-`yWx*VDHxQu44J)(*nC*Q z>-uE^$r(rK)xicFKT!#<-XA8v)$>5`!VfYzJsDog#o)K()#R^uDf*W@CWo|gvG7ke z>V1#I)fa?tlHEPBV-LrPUS?y!(ngG4m5mCQ*MnnEC;4|Z2W=cJaX2spKgO8C6yZfg zG`|c^RrS$J_G@|ltO`dqWWiV2dfMUHiZ{ERU_{pwuAH^CN>2LCby_*VqDWg9y{t!^ z@ia5Gy`BIE_tep=$;P;a#UZa6 zi-HP^t2VBfNUcY=)5j?Vc)o2mw`#$Ca^RjbyowitTWYpAXH|$*+bur&$LcJdnZE!k z{!F1a-t9mw?R3%uj5?2`f>!T6E0^&!Y*1(+t7g=5tK9A3V%HEo zt|dsXDJ{f7c7|~pyhLinQ$eht4$TW9;ODh0C}7dJ!K?eJQK$`aBm=%&(?g*LKx}ma zdS5B+fKyM?P>)6TH*GylGuS)o{kkI9>97Uvg;jv6Krmbrl*Po4t8pxxp(Lf>(72m5 z_~7^=cyOBo&!lYFajhDTCFEkCK{7dY)PqE2mZ7^-81JZ(HLTq&fnkp;A?~0UwO%5P zhjJeh+xj`oj=q8xU$5+S;R!%hlM;At+Ju7)p;2?Yki6^lMWuQZtn_ZA1ImNka)n$v zsG2}F^>VP#w2a&OG>sQ?dntCM{v*3C6`=21RvTN2M5ZPLqt?lxU$`Q8xh=(Adb0Rv zF4B8{z3I+n2JkLu7IA#xP3AstLPO_v@U^Q4Yt93t!f;o$UY%E=-5xqW)}cD@4W>r^BY#KdG+gLYRA07CgJ+;au?s z?1=nBT}@V_pVUO~$cTdZ$E1<}g)B4;Ig=P=KGGSmhFs-#V%^p4xP(t0bjBmGQm2fV zcX{weC*@jg(Vv77En%=ur4biQS%L+9zlev$dK_620_T?}!S5rIc;vGYHQY8Ett@`i znY%@)QtV@1;)zgHYsu$%$s1tMK`W}LZcM{j#Qm@p!SKzw&}F+89;k|QQuD9#7A3mi zN*3{rR#`#=D;r6jYYpU$8$<5=r_*tR?{j*o0sktZqH+K^VviphcPzZd@d`Q=iHe<_#7;JJ{%iXUj z1>7`b<+?-!Weg1ATuLJyylf6p*0boD6KCjo$sW3<(*pzVOatv#rr6`chZ+(`XzyEp z5I&j>=YA!DW~3Svt^Ghone}V^N>?g>3e!dmL zE35GJKr^+R=!T0K=H;vN96C6|nKoIrpy?t$JkYZW#-}v#7CZFw_G-1zBTsa2Z$&0a z=#V0%VTB}gFb98UM6t7yBWl|g(q^$(6lQCw4KK~{TIEdg%b<(uZ#Y5v)(}_@f28y4qfeYcXy%T=R;Ec1GsCOT5>6aefMSG-^HXGo)!|Aa9g*<-x!|u-k z)pU+-B$lvsoBEqT47pHB%yw_%6JV++@1Q?H{eZ{EEa2$B_4nSv3BC z_P~N?WTqK2QS!6+>?3WwCAk%%!lkgG80bO&lR;n1~HkP36*a*F|tlQFAW(!6iy}`S`#f6J86o7@wh4_p8y<%S_ zdi}@lA{k?3{%(RngR5~;LNoPuu7_W->GW}3Ft&WZL8n$8qnng}^1|FDP?<$?L^3%% zATJDjw+isAPb!9QokC{Z;NZJRGaA_X(j)h#&{1*sqRbO z2%B>{zSX!iQ3-nnM|<0IQ}HsahqYa=sqWVnIL_w$O`H9oti2BR_>|(LkybckRf1A8 z1He7&GJR_Pn66sEk7KGCbcJpqc{6o_)q)Oj@Le~DN_pO=atc`(GF=+tI7@pKOj{SuB9#8{c|$y$ebojZgrd5fPHL}JqD%OT}F0wGM^B{5E?oE6Y+ptli5e|ob;-$Dv!2=4x7*W@b z=E*DY;Q2W0d1L~SzKYnWJ3@o*$6(%%eVkfEEBJg@Ckxlf!P-S___){)_skw4TWXsy zxxx?<$85nT_ZO8|cZ`fp6M-A!r#a478ecj4ph1%prk{vK^G%ibV{#c0KJbp{W!1uO zj|kl4xq)0gu7Eq#3&>N~K$85^AG@dt95-t~(Nl(W-mxao$S=a_F(0VLy0YG<2~oiJ zXdx7e<}>_27DgzvP}$UU^2kvfR@pqFMr++*u8sxd$_DW|57%JP21N|b4x@Di3$R0T zHf(=89X0$XgOhq2PRnm6CPCE@e&8uDxF!@XS}do=Z0@LhQV2FJ*nz#pQTTXuEb{6< zkV1E3JT+k{sn?nf4y%>%?AhJi*wIV$yL>8)iE0obmG4akCQ!GM3LJ zC(A;plNgkoFvbN-m@ra)gtTSnfXLfIoXskR$1-)`&Qnvo{h^%PbTh+8$D?tzS~gwR z{ifIK%2rZ^>~C0B@Cy8j^g zb>0-u{HTV#Js*kmXc6^$VgM<;22egLf}H`;pcTozSVEIU z7l2~257_i-aHn6oav%Gaf|=kt%5S0!hqjK9{(5aFd1?S5m3ygVK`)hNHOr2-?U3_! z3VIo;kcLCGC>X<`6^r|>T$V`|AG}TUxs6aXcM0m5Bvak^GKlESgq{RHR=x6uqXQPu zDISbTY4K2GUrYXcufyA7mDpbGjK7m7^A?%S1TmSv1kYK3fnX0w4VA!<&HXfN{0H&N zNa6Trf2H*sOJGHGGiW~TC8ccN(ONA4fd;k^gkn(JT#x&QnBD30Q*!OUbI0pWU#0B_ zlj(o?b`Yskk5eK7V0BC+QwIdXs-=y1x_1W|lMw->oq9NOS{pmX7Gu7;IQ-t+4A2~B(pAOHg_i$}e3_Vq{8c)B}K|8z0w0BlCUGIF&Drz7PcUEW6r#9IvUL^!q zRsG47@JdY2enD=ex|8QyLSbZ@AKg=*kEVO3L4V7A8k0MX%nSb?7NrtCEpDX#3EN?u z{mu_~MdF$MK)9ZGn@*N3hr`oVa|*}(C8IiuJDewizw4;3`gGWum&1L*}e8? zI~XsMMq?>fkyl)XYcFgkxqfYUd`lkj5s1X9lAI+I$$`E=h zh*Dc8Q64EKowp{Fwa#gnBD)gSOEAQo@p|&DE)||%*-XY+9rNN~3jW+r;D=@lYJXov z)n0uiFN&*RT3IQ`Fv-$pxghxAnUC~zFnIQ-W3Y-MoOF{zyVJQKzw90TG_n|{9ObC$ z{v9;MP5{n|6=U&6Lz*h<4a+{&LE>>+bZp{~9G!(j#S_?lIT~C3`)nnY^qS<=w}D;C zFNO}Ahei8ulU>ITQ-?bY4=hy$TTMLS_1XPaGpfxox3dvfO6t;q8+xGEWdsLaZ^w?w z|H$c56->X|hCkPtK+&sOERe8)qlM;h4PsKk^;eO%ZwjYQhc=H5J73RhMxL0zp>{LJ%(;ET=Rq(RA(4P`i$ z&8thi)A5FBG>$H)rK(jDWXL-iMK2lP?eJB&U6y?gJ0et{ddwV>?i^4Zf8L;FW!-oph(D$Ru(Er#D4EbD%XWuL)BF3gQ)DTj8P zGF1py2TTFCJq0|Hm`0-YBVgZ;BfO`Z=R-H2F}!+fgr(;5@#rmJ*iU^-ywy%JJ+G71 z3CSoseG}*>rNgojZC;RI6~wP-gPJQjaN_P+s`>8|o0H0d4`+#D(p#y;s!(_}e-_-l z;m_(Q(_yF0ELeQZ2Nv#T`8A0W{CzqV^X@>1_K_&7Y3yyucoZ_#aD=Vy)>Y^;Vd`8G`1 zewf!7GY2D|YvKgqDqOHw3zTd&vnos)gcdcTMms;0v6)-Wmlzc0ZKcnSWD!krlfGI0 zkH%EKBj@&Ip}$!g=x=w#H93YZG) z9Afv0++R}-GxF=fBC{I*7$4@^!ynKz!P}NHXDiV^-G*7dgps>nkJq0I5^q0KT)BKE zwYcU7@=>Ae{hzlVD9vinzU9Lh$-Y9}zUIZTKE3p&_oXxC{A4%<= zcz9xK1$Rmu;i&Fn(Ej(+s^1%lcs#*Cm|awQJ*&-$7wB?99x4G>`rPJu@$=)$$|Fu^>mVJ2AfMYU|U`!{&TXR z&!pMDv@Z~vTbOapHv}sFo}$Gk+bqY7NGI*BEez9E-uxbf?%%U2(#mlE)wPLqQhpP5 zDNiOzHa1wp@)}hxtkx!Xf;1he!B2Z$a-ueNuzaPf<+2$aM1Ecl4&41pZd#O*U;Ir> zGa!T+bB&2(^A6KkeA^)(V!-$mLGPmE&bD7ez0B=5E|%D9x#w7#6-=ps>WcIqYIt&_UJd@g2D&#P^c#Y)fSr)*Pe}FtT;%FUp0{83bvE@Q3ru) zfvBs|ZvGfG4V>7!{y;uzo{)kD-K98Rw+ej<67k0t zQFy(=lvu_WgMiC(QeBlpGoC~fyM}pSdd7ulFpS#bQ5|?^tIh5>wM^x}GR`m?=D!~% z*}bQUO=32;p!P0(mN*^1+rH|(#=h^(Nh*+SM|s+1i6Er(ol4C(O}@J2A<^)`Z@XeJ zlz$x#Ob+DE`su=*N)?=yv5Zc-^MQOzOXmi-Iy{`B0Q-8HaAd0%tjkydC+^LJmNR^4 zzfunc4|(B~*Y&8eKo^G}@IfG-IyOtCK}@j$%u(Nt-ffk5c(OPAW3%NKNqIQqz!C^t zQUKy{d9brLnWvLbg_8oNqsr7EhHXlKrraQqDN5swGQCCXitVhn^_qs83!LbV%f-{h zzqtPW^=U zeqnFd4^!H8$)0C9vI_E_Oao`f92j&_G*^*Ix5vT_^H~hVe}oHEihwU#54m6R z(?IWcGWx656U~=}^lZvnBC)s(qJ|o{o^Q|S*)R4$AKzt)3unm7^P&CQJc*dzOZqbG zAZhRP;`X-ZLDRiV&@VnsBI1fko6s7#|JVyRx1C|Ll?pN=tp+Y_+)3nbi_(MVHSp^E z<79?QJc$2J#K89vQ2F;cdC5?dUPXnpZ`1@&<-8(?x}MNZr3PlcWcdAaqPRXg2>KHn z!MliMszPSsoW#!FupedEb1Mr-|dR^q6{D9c%?Tjp`4gW zjFM0KK7ge%Xfq&!^~#fR?x|ly>t+J+3G1Nk$2QX5o-%A5eL>5A5b#Z$+m}b+?l)Q$oQ;8+GJ2gZsmvJk!nB6 zI@452Vhd_%ErN^oNhoaphITY%af?|ti2r~j4$T;%nYT`m9V-M;?L{U8s4M{~rnt;M zCrhpyXJAUwI-IMd0Y8UMk%eD^F}yhrPM!G5iOF~j*yOTgkzXc61 zh|vxarnsr`#FdXGkl!~HA&Kb#@9xZ@b?fV?Y-|ni&sl?#>pFN-9tB`(W*r!9ti;v6 zrQoMNL?qQ$!lDJWrwf&5B`X*B2#_zKrulMmLE!h8!mgv9^nUM=C*0*5hDuo3fUe=P6%?D#)rn_ zTOBDBrnZ@i^DD%B-;2kl*S>KJ)5{@9rB`uLspgX~T8WGcgTg+%`a@)ed}njezD$Wl&QuMlW|Z zFF)Xgd(TTjjr;yyE3KVY&%8Ov-}8s;2`a&c_wg9Li`Ba0OK?{}19xFY3{00?h*F(S zFyVe1?%tOV{EugV?IJ@^XBf$cTQx!9Fw-y0^a3xl1Te2UK?6Tp!{tYX^!A&>R+{%# z;oE18ynsH|otQ9A?-jB=`LfSsqK7TlWuiisc1?wQ`RcUEaVB(}%!Mn$%P{O<6IuOp zCQ63hCUCEZgea?^fc##rm|;bXYj1NAire8rUO85}Oo4|X6KR)CAb7ZMW6Bj5OdMC{ z2}`)+__ZdIcylA{NfUr(p#of1;RD6Zt8mph0j5F;hQ`WnYB%ZB359!Wv0!r*G;do$ z!wM_$d>`vP-NE^k_Av3FctW z!5o~F{fcE?^1**@3Y>l2LCc3)uq-&5X)3ef-S=4f+%gqK#_v!=#~`?A7)9;xR6&n& zHg3u*LB`sI3s0F5xj`H}tR-P-zBZ&QL}5%%8}>xi!exF#e8cn%O|84A$Jq*2eQtv8 z1ZDjBo)5T)D#F*Y6*gQFh8OPD@KJnruXWZm92?yNQ%9okHQ50dbR41fm^V=qFNUOw zDsoY>kle3prO^s!iD)cCvl(s1urqp?5~Bw{gV-~FW(m1cD2b;&Mx!QE7RG##gS~;3 zxTskdH*7jUMIP(Ghv-JAX1l^uVGJ)c_bci6l!NVj6XDNVEu36t3f`v1;KbKNTp#Qw z&#otuKVw#$r+69qZ+k~q)?}eam;nA~{+rie=Z0<1tFS(1Gfcm4L5EadlFENVI5DIR zW?J0hN(SPnMv4S1IMIOZPHAkn6wChqEzqieJ(LX0BR>XX(NL-kKDpGAy`udzB(oN- zJdngs?zhNu)_WV)--#K8vY@|J7)+*l^zIpKCKC>pz}5MeXkED>uUk?IJ}Y>@P^1++ z8WW+tbJa^Nx7BLiSUcfQngBV+lrimn0N3)JW%09j)3cXUX=(ga^mxb+EYp6|!_79N zqFKjMuH_cD@;?J?KDYxP>E&}P2F_69?KZq-+f6|4?Vvg}>5$cRmAu!O4wtXZLURL2 zyd-LZo^x7ZLaHN%&SMqlWm7Qj@EtBnr;2;zUTtNzv6ow!^OOvoDnQ$FRYdNp5Zn1@ zqS`h5_27O6YVDAtNIhMx>U386JPy;&XHxZjRI&wPy z1#u^yvlHynG}tf_gY27wsrPr0nO(CW``TikOi{43P@PL5<}At z&_?&mWc9cP?#l8a6$^u~yTS->x7Fivt3GZS%OYL)I7UJ`jfmT1A^e)4K@%Ud%DI6I zX?Ug#y2Gps@$)LV=$8-k4%E>veL`f#q;y_?@M-RqPYIp$ehXN~reV0yArjEBfHQZ9 zqN<@~n3UX#GP5i3ZYIn9uP5YRQVnzjR)Pe>8Qqm*xf{MxJm9wj{-oXFM%2#JA6u_* z_N^9hzup?3!WV12etnWV2R4&4#a)!xXVFq&#>4Ipr5B6D!V*9FgSf?e0-PI)+EK)%K z{Nl&c-_xK{Sp+Ip4DxE)qcD;6jJ7-yz?a*mVD>E${2RW4=!W^w(Rdj;d9@YZlG;I1 z!?$6C&k(&Op^RPEDtP;R)1gjyA>0}-Mekw9B%`1-@`O;F*<1 zw={^p(SU^;OUMIkKzPs$(FdgP?okduZSaR7btF}}v+zk-FD(>sgVy*uJYD4q&wJf) zh-DvV|Hpbfo#p7zwjPY@7$R<4DXMFi6IEvwxOm1MkLu0Gu1COIeXAONA7=Zd{X?Am zJ#qZIU=7%2a=c%K+BoU!9NgBBiH33&)TLL8)Q#_>>x-_@k6rueuSf}qW<9n2Do*h1 zL@J(G<%jvVn=$rR7QB!Z!N41~XufY7NY@yW=dTKhr{hk1vHlwOHl+ov7l&hNz%5c_ z!JbJ*=~$6r1AM)?Fu0%@ENYusm(33d9ci;#dZ?ZFUcx|_%KG+<1K2&o!neX-k-(9zt4 zSyfq7<#8s&vK+!ngBI*`+fSwbZQ#VpSdZycJ1neYsH?Z`aAqOv1gg|v=2>|-E?!1$ z%hy4o_c~aulnRDvF;u0j6a}{B;IUkLsIjhRIM6jj&vFG6HrSzgRXrA1W#Z*@Sy-A^ zfY%Je(Ae^S`(!I}GB6YTJ;%7RqkHL@ImYOOp^1z)teV7B5u)=U;(!gzDJsA}0$WJ^ zTSwezVTtv&X&~FvLwg-cv5Rf}uLfu%chH;b|IkKvOQ_;adXh7IZwA9=dHC603la?d zxPs^sdTf&^c6?sO)qRgfy`mWSeO(4NiEf483m7i5EQg%Gq=Uw6H?Q#^9W#__>GC@@ z@ZXo&DBNy}we5=_+vt-1z6E2yJffotm8hAgf$kf%pxkZ>{xsVF zbr0vkQ9T!OOjQ8BjL!ft>L%u`r2rWHxeZ^D7(bG)PDO-ZRS6lItbT3^nu^pGZ zxIlzowu2GtU|jo_2cpTF!7oX`YQw@H2=>q9qR#O_@q!g#Ggb@BSg_q}L5zH;D}&)RvY5qJnye*7)WjT?D zeJ(b- z$pV$8oLSi@x7J3H%-QM=eIX_o99hkas`8|ZkGDgcPbrYNN__aY z3aN$niL>)EVE5K@YAZXruB_sleO-_-3x9XJeR6t*UHtZNqL5C-*uzYbK*mv52 zlI0pm+*^cpHTuNJypUDgcamcHVk|k|Lk?@!fZ)Y6YOn1A!{z^x`q3Gv&#s|?NiVIu zyBw%x@>H@rM-t}zWEPCdcFeTU8RSM>c`@!Wo zZNQD};XaFMfbffRMD7WzR(Rgz!G9s--2JcQC|86_bqA>R+Ur)q1`{AvDuFx`enOPW zGEuPlC6SJA!j+*Gc>A^srq7x{x2a`-->FfmvnR86!axoh^~*t&ur72buOfcOQb^>c z3>XS7z|+f~(PP6hJdyjFSR&m7!=ous{HYapEnER>U#ElN(r}otq=^I@-KQdzJtX1T z2cmsF2|L`1Vdi92&~Xxmz77!#KI4gVRvO~SjR87+%L>f#?c*B48}QNwN!VQE4)6O| zt@*VR9K&s3o@oXP*em9rMg@7+G(zk7*Wg#JRp|J(3hMZ)@rPn2{1QvW%4>npp4f~k z6QuFa&r*CWmPSjy*2DKC2}sSIiIc1I;C@p!yvj*}$3x6aTUUTGnqfHe1xL>a)*-kzT9ngXvzlAV8J^(ct4JD`~3E$Wxh~D+s^2Tm?T;7vUdm}<|%J@Gjdny&m4~M~<^jqXyh%Z=e6lGDZXteIj zg@4c5K;zYCs>)Xhr;Ws^@8otO5^|78ZgRjy^AgBD+c)&iyT7#L;2}EbvlzA%q{Gvh z-Y{u~2nby+K|d!Q-1ff_lKo?1aQG4ZI^v374i{tmSOJ+(okY7o7s96{iYRmtcv;`2 z;1|P_$nyI@QC2sJHx7s7dsTG)j8?ES2*QAix#Y`W9;qGS=hB8*WrIHsAkPCF*r?;< z>+fXp#c4E8Y&)5FVh64@U5ej@GVl#G#6eJm;V225`>q*p?5<+Q5H>1Zd69IKiE(A$ zW}t()GLh3%#Kf^dqT)4`N}iRWZ-UjW_L@(CE2SQAvgQNP5AlT3;Voc#Xf;eOF@`H* zncOI?0y$QUcYLu4?l%7=vbS34@|k&5+{qZj(s%OK)t=&hhs=lA@VndwNW>#ICqWi_ zrMIacCM!j&=}o72V&|KI8Z7ppUs*ysBpuQJN+CRHZNp!G4slkcQ$f76mV1520Jbf7 zPC8eZ(%-k)cesYYw9lJ@ZC^Z*D@Y`#IDwOV6I3}=Vfyef^7xk~-Sx4Q zcr0O7szMpOUC;zIaYw1TLKe~8<_5_|!ZgxD4p^m@w`-)2-1_CiEWzdwy0!^l-oE9jM5V7gV7hX-y$1obOv<=-*u>*!~w!rPh z^64KvS+z@SS|Tlc9+OKI7jNA z53q^|o6G&=gM&K@sp#8_WRFT46u&}xbXq$}9GZg%j!lP$2ldzppN%8C{K@^0C=6ed zP4pisFd=vZ?XGUX>N{_#n_>!F{ljVsOGfBTF@F$RdCc;fS1)np>n8q%>?mK%N2j-# zKwmU7fR+~!x!@FNxmg2_D~HIv?h+K2ae@9 z{(@Gx>@6572Ho0HYB47nR(QF?>svFa=-@>%l2t*> zUYX%p@d|pqF5U9{w^US+siwWEgJha&F@~r}V`jZ4q~1~o`eQ9D-a~i+AKbV(XC4s! zQ70(hxszI)5@2@uIp7nT122rr;mTYsxV+4Wtr8Nb{~b|y!kdljvP$Wh2pLGl`y|}Q z1g@>Ohk4=q=&KbE$+;hQ=x|vp&)>kCIG3eiRIeZ2*i{BEya&j{EzLAYMGPakpETs# zPU4c{1vi47$-PiZ)UdXLxyKxEd{h?TdnCl=t3u4PSO`u2VaZkoYr z7}IZ)hq46ceEUuQNgtvjt*aqr}{+|4&V-4@*Smjwx2KVU}ao=%%I`tgI4;Df^pAgE&8K+oX+QJLiGJ8&BBNmrmyD zA0}Je3gEd%HaPz+1kJD8nOQ@O3P0Fyd4XRQ`c8hQ={Z`sX_qbR?QOtGHZh<#vK_RJ z2l58>_masX?I@d`$@8yjz-gNjuufSTte2!>x@9}sI*RbtSGYsyp4p7(YzMo815kLE z363W(ai`PJ2Yplf&y(f8xY#345l#OB4MeqMpHpDyp5{g%Yop8E!ZpH0yCDLCSlAmUe=7kicitjTS8jyY_kNJ3Z%y3Hv?|z88v!%eDE4eL9~`}Nmn+!LS;ZYJA>JWu zg~n>*?hmQog;e}?t%$nCOhI{mT~JP20FO?#Vp5JUObHW0zODl#ga0b+ zWxpMlPd9pBY-va1h(gO78`eRm>?&;k-3$k=>7#V=Vu;tyBIAMCC_Gn$)h~>>-=hX7 z@otcw>PGr`E}95b=MlzYQ1SXIhx8=C?5ecPd`gVDF=$inM0LTGdL zFLB(riw5zY(G%Aqz{uqTd8fXQ{B>=_CvnYC9O5*$BE4&5z>;;CEF zJ7fziy}}}oJMVDkTJq6Ls}Onuc~%u>wGg_{2Si!|;Hg{{IkwJ&=Kog;Q~N9FpGHIY zq+*9+i_3`e{&aA=vIu>nSAplTqa@?@buzj^2@_;kgjhrpb4p~%wrC_T6xLEtrBYPh zZUPw>BOu;50%cU|S&S|pHyRm(Yr_f%e-nU{{n+z+ek|47C5$1f6)@t}Ok6!X1|I9q zf_aH==<-)9@xy~oa-h#2Hj70P=}uL=yk!g8m}OzwfgGsFH(=C5K`@RhgC>E`q|QE& z(d%t+y6zwPM$rN*|M;S@RUk^;Edk{-i=d}~-3N?r(5LUcsOSfVAn2^ehzm2|?o}0# z)=A@iZcoE4nu_ptLq6@C_Jf9~!XIWWU>n z)?geE;zPX{1CZ_fLxWk}GHquyE)n;Fw=o&i;^0$qvALOx&3{d89>>FVkrRaPy)r{f z7{TkSGqC!X4L+Z<7=5h+Q1z$~%zZ76UNfFjh2xdI!Yk4sJ+qy*c?r>zfh$SzB7gXj z6=k(b^C78N>I!yegYZnXB*qM|2yfVOta!DX^bh}{3X}Rt&VhO;KmD3pef2E8bKMu} z_djPyfh;&3mPKs@7vUH6B+O@ag<}2NH0@vuZ`!Y$WaqVJbiHT-aT1QOqR9-pb!x$0 zC6*R5j7DAGR}zpDMF)m8aqqnb7-B1zAifWjf1fhX+*c5E%1fdDx-ePY)eQR@Yw^yK zN)!t>!MJyKh)%^Qk#@60-_R}^uG2@|w$3Ci{t~EgC=QM1FF}_-u^9U1l%?WQBQRHL zK%;ePkW^C!kGNWx*<1*(cFadZF=hPA@Q?!!bATsRh5yIac?WX!zJ1(|l8RJ_LR2I| z6z9G&lTpbmib#dbkdeLj%-*xTi*W8sv{c%qotD_-@xZM=RVi za{UY$F60okUColCm-N8Mk=bdh_tJp&VIuJ#GXw9MM4vbYK=p*FSg|S?hxKGIBy1Kr znzfU@_Huy@{W4sRC98n1Q-%8)qZ}(yOw` zrv3$F()l0~^Ff-e|0w;wNS)vBlm%jkl5m>OFikxXOk&M9VpPrvvfQT%F7*%6<}Yh# zU|k*f)+7+u=wh1Gk^}c_cac0(1ymK1qr*Wd^o^Mj2_)MgyXG&|b4dV`g%wzId=8uz zs;0Z%S_6;SFzP?i*fsnCnVe^cGrJV{9H}|*a2Fey&k)2n=8NFq%Q?tTnT9u`8H;*W z8az$(gnU+0=}1i?!RK$15{q?s>qRr}UoxNEf8<0GVj6K-#ddznX$^qcm9R`u9mh?L z=C&CS;=kJt9H;^KMGn%bZd>W*X$kP(fCWjo*$T3QXGuScy`FyFM=oBFGrDqY9^U^F z0iqS#NQq%7evC=wSG)AnyL&Rg{8uyAZJLecmA`2ITT4E9rUCq#;?ZqHGBI0{H6=)t9PG{?t;m@8N5F7YTigUxz zT>UsnvHQ;d65z@!vgfltD}jOUq$!;8BN>$B4gH54d0bLSf| z{*z7KNF1Y^tk&b1E5*cSVGA_fPQ=gO67Y&sE7%Ta;M<8}m=Wnf|R|vznw?-hOm_}Xw$}wr%dUz(j1bk(RKxeTcOj>S3#s?44>^Fbt{;kz; zeTD!kL`=Y6ffk&_r2;G}DFI#iEI>V3IMnTp10!R*OGGmuMxYrpy|43oO`GY-%GXrn zggK7ikODhy)k1D`C7dd(g#EXT8LlmxsQlx=`(PF3zL-L+JyJ>9e+~F=kujXj*aqj` zm_ztOA(-b<23lrg$VcuO*=?|iR!;DPi4y6!Q#zS=-Ashz`--q>IGQs)HW6w*1wp0H zJDMpiiSkp^!Dn9?>N4~3{^WXG((eS%udIoN(S5AB0n&}wQF zTn_Ew{tRhBSstO-9Z&8jWwWZnHL||sIoG`~iT-k(N*dJJ3cA}E!xtxmTxSdJO`8Xz zpA&G$=^_lhYKT3%$Fi95G4iU&3&VsKQ`bqCjgMLT%3U96 z{8SOBI?NEc(@ROApgA6v{Z6I6@21zfE#c6)6fn8$#q1@{RN+AhZZvm<^`CyzM~lih zfsbME!8--UZy1YrEf3IwbZs)AWd10+yW3|&)8?8{Bb$joJEn=%)tMVK3xU5>{& zVsY?Aq}$m4rX9xhh!WAW>^-yPDlgoWi8uF%kph@R7qfbgxrHPATjvMX>Us2*Q+9Wk z%2fEbLb+S|M<7H!86w;QPlhA-kA#-wVRY93%_uDek4+5Y^t_2XA<8U2sb86~J)Ax= zp9FPVykWnRW53r;8rRfF1{duiug|rRBJtbgv0w?xl_&EXg%&ZhOE&fW zP{2#3R^y^2M+jENk|Apmm_FqhHMP4;uB1?Ecx5AMt}LKu-)CZi+AH!--Uh5!m7v;H zE71GzA}MrOhdEC-Lr^lq>9jG+0>gH;k9WhL!?QqY!gx$vY=vLWT&0o6Z0WOmmuYzC z4U)e(2NrYH_+RNwI!AIMyfI%%3U(P#HGN|Y7?X^9D;i*RUo1@4WUU*+H`GAlIq&>& zDK!3dMVnDO(0Q0fE@YO$#D{5A^OOuN)Mq9@n@n78mIpG0n$UE4lm_H;txm5K`dAtGcfv0i^`5cAln1VdJ~}qYN>i$pa-z`snNqN8)9hO)U9k(0ecj z_lz0GZ`Y`z3ioi-S5@)Jww= zjrYW%VfioescQv1&YDjL6ilF)#kl@N3-CW&wXn{)7LER}h~W1em@eW1zjz%G&GR<4 z9AGtRTM0a+-iD1wesaok-Z0F*=EVyyGEC%pq>qv@>S6{?{OOBz`&GeA&>Cp77c;>v z0INu6d~{WaY%eS$r!!3;NXi`A#wNj$_iI7=;CnhFidCL|l)~X#rg)1J#HE>INYI~| zP-7VkZF{S*rzRh_xLZNA-!r=H`(!fZFuTrh8LnRMh3g)A;)(u7+fXP zu59ZZu1P})?>Su}(w`e~{K^){P+N&BeDg5h{|O1qzD!NSTVZ1VKhB?-7At~S)G+)9 zZ4}U<0fWNO+gFc69kQ4^E)+5u>Q7*A4$l8mOiL@)f?-+({29rB&EBol)~5m{x=*I+ zE7{8XVLQzh(1Kbv^BoyliN&(_XalP+|9c+?EyY7!o4;p6!nk@av@HOK>G6F-^}*{Z~sSpk}Weq7tf>hZOLR_ zc?S3mJ2AV@dAjtq7}hs5l4oj1>GzRx@QYpn^FKs`w}W%{#(SF3ad#tK-md{W1K51& zS_^!ACH|1dsJi{)gAd zeUTh&$gV|cR>Apu#UI23Q^Y2>wj5X$NLNsWOe&e%Hbd?2aYieUrS_(Q%UI>mCpVMT2DXO}l2!lPH z$yC2MdhgdZ2y3VUrTwd*%W)=}RORtFt`zs81e8engRyrx+%;{4=URoBxNa>Dk8Opk z$CHgbF6`vAyp-`(r3`r`e2uJGR*f5CDrnM)9y%18k3wrQVOxqHR4z-y$}{COGFXZP zvvc>C+7|LwXFPnooCYOdI;p)x4jL2(U|H~6dU{?0Xjf)Z8Y+*T(`$^ZI$ZEneK{6- zZU772d{FNi<-&6a{I=LYkG5LkpDug)gjH^0*EXP)<_|j4U6n+2)PVniB33(-!5$+^ zZgJN&^8Jq>xV=0@P5uV=MYUXWQe;9V)Q&rrw{JWg6rrBzFNVk=`bJDA~T@uNIls;oQSti z^b(0b%+NTL0|zc-f~odA5cwNNU-VmJ&`1|e9vVZ!IvYUC#-2sxDo{1BkF1|yNcrwv zyu`~EI3^>A(=?n>E58LZCGufmeGYp*)Z-?ba6GqC89VQuCEgDt;6%p+dS!tRE>Vpj z1&2~NpPhP`8?u|Kk5^!E>*M5V-Cpupu?eK6xq+>35bcjWO74Xh!^N3C{JfnfNmpeN z`i};X>33@JrtVVcESW_rqcU-9NI0meuY>71HZZ*9IX9($4LVu0peBnhdim&}U3MJ? zxHaKpIcee=rAl3wgn@gO93Bl^Ow!L)!M?Y0m}pu8Dq35h_E7^SM!OR2Q79cq7=J?xpD+TOqJzBE$Y> z;8;~dY&~6u^TQUx8IvUZm*@xC2``LQoD)F0^f!rHmW*`4S2{Y!4*qTpLWSZii0BX` zeesS&wD&W8A6iUb?6-sbgOV8VpFcHJ8R8FB%fTB_cgSK`lI|{1pjU5^^WF}aW$b~) ziLF#Tu@XvVmD5*~1Soy>kUq)p?|Sq)0&Ekf!P=wih^mJw4n9II$|e=MN*1`-!4)@E z^uHkt(UHaY>+?49dPxTS5z|Mv)Q|MTgYW!{hq`c|3{Z>OQe4wN4sljTs}LO^-V*Sb^2h^ z;tbCpInqZ*OKU+r&K-}&`4KbDl$2j+ zM&q5UP@v~3ml2f?=_e>3xGoyP-v(jS&uO^mZWR&BGoej$wD2ygfpjG;M#}OtH;d|s zt92z^F+GzUPq9Teu>-U(3{YN3j2S{bP+Q?N<@7{wV;!qOd0ZrAp3+z!mPV~J!m*E-dU62(eI7;yUZC@Ki|NxqlGYKpp$OYAE0;NDPhQzREXKGh8q_zB`1!y z@!9kpmpMV2av3G~XI2L8oNa@z+$P}Xh|Ms(suX*t*CQLqk?>`ybnB7%{O=83Fjin4 zXvI$gNq;?*W%JlwtFthpp%_(v50IRHY)&&P5xQrp6T^c`;8&3e=*<2?XIj@{)|*l+ z&h(&#?}GRomKE`ynvNM#IT$hDmKa^|AZeY8knahl^VBLa?n^Q3%Ucb<)i+`J<6opw z<0vn6OBxP|7(?H)jcEE&9fgwbkY8IL@!Y&>)Z6ZW<=F;!DW{p`HKggW)xMOTI7%Hq z^wJ4KziENi7h>2~46*FGRsGIFbDz73E_AVYZ4D%zsfDfXOG%5xC93`D53zFc#HAu~ zaMw!}OcvEbYDg0qrwofQNsh#2H_v5ypgm7H`)Ck(Hrw8{+z3>5Pe7mZVqp2M z2pm{-*znLG{VJ3X5MO|8eb2eSSxxvhY8s>|l+$w8$=I1z2{-PXBqs%oiNcr=xVG;v zStzlHJh-r#Ztj!EcUSZ9iB|%=8L_}8)x|J+B^@tV*}$IoIBXf80V%6?&|dki_|7{W zew|6iXWPc}!~2#()igBVUe0Vv)HHeJGHOgFD^G_d~AtlZVhZA66Vac! zrH}V^kq^PCu#lZeoi`OTTT(MrPj-e=c5Av@9~(m8z!%E>b-?TfQ?O-9tn0@K+W`ci z_w0OF`!61U<``k}vs%ozj)1ULU+99GT=?02i8}9@0yT%ragV7WM&ErzcRep8KOX7f zv8cz)MjDQL@3^33`w0?b>;Vg2OvbhOMQ|<62c31x@wVj{@^jA;3{hGQIYSSL;Y}Uz ziYvp5?pYu*yp>h`WvTBy8MwbDAAYd+@(&A2NUg3gNE{A_>0#w?&ulC0IqQl)_7;P>vpnp4 zTLBL}5@F>|HaG98!F%_8X?+TNetu1-84jnY`|)OSL3|llB~7D4ZAGxCJb+%`x)M6~ zexMDq*Z5H}Em-?)nCm{R180Qy@KwcENy?@Y^x9$pBfE{@dT1@K{^5ex1yX3=qD*dv zVF~ILju?w}1TtL`foC-bi06i4%sF0zDLdt0>Axh1J6}VO@4m&mNt~qrdOr~-!%|on z>qISC*5&IteH2P%>ZCt*s5riaOi>lZ!rKO5ai{_x275vJv-@P+-$7bNg0bE;8=3?( zz}!rn%jcWO`DI-^WjpM<|Kwo2lqGhTPvR4z{P@K_(e#>d9nNIg)GyOd(J@QgiOAu( zV3Easr0r{*7c;(wETJ%&LS6Ru^j$!u9ri*Y{ZU7XDCc>6EIXL6sSjc}nopk;w z#wwXewA;WiTxTaBHB5p_x|tAVorsg3J|{V!g<#!oDHhSL!@;M_pyrT^`-+E1=4T;H zD_f0~lbT_&NDBUP-2~nC_N<6N%;dnQyZ*MaIu`B27GPQv?wpew2jx#?j9 z4%*_wn`KzDAsvi}6f{Il@5;@rfmOESFd`}#F6$RTh{tRk*q?@Vg_3yUfHEnR)rCPb zH(a-doyk%%fY*wq)_Y`NmTE4ESfz}aEArrC;!L_Wo~PoGAG!-)+$6mg!Ehw@p3&!H zRVY?o0NKpK{OE-fY!xtuo`F5&h{;-}fZ76EzApg5$|9=a>I>^%OhmUI7UnZ?UO6u zm5>L_K9EV4TqpoZsSViUn+g{ri{S}VGAt8oCqFMvVRp&gSP)wI$g?K}REXF5jjIZlo0MyZ^! z5cC4WtGni-;p8aHJ0%DQ`q<9$7K?$GHDTEP4|KDe8d}xp-bl_d&$LwRYd4?E~$NI06YKsLCB~P z?Wh-lyvJ)WZ#0mu6K{ouhD-3=#}@QZRfNrEC6Hu17VYPSFbjjp^j*fNWK{tE z58BD9Hy6ldH8-q^XvE$Xi!dnkH}B%nLob(RVcV|*^wn@IS_z99S59g~^NJi8CsT*J zpQS_fl1rTWgB*Cu%|OK!RrH*DBi@{9Pa7Dv$1%#8cb10#Vtoz_IA_-cJBN^Z|*F@$}i{1hr6r>F;oN5%XN7Lk7C^WVlEg+E07E9 zcTq%v&0ko(OlqJGWz~zow^SR3=aw;a(NOoKv&|TK*Ol07FCl-eG|9zJRTy~~;J*j? zYzCo%QntgCFCB}lki)QnVC;`cSXbYOe&;gTbyUbyNI%H6To+@P(9L*#)ohq1 zA%u~;E>Y{ScT9iHFlqxCc=FDv6KfiG@R<>kFe5Vu^7%UYQhpYWYF6T*#bxC762Qef zssJ~c(4;v_x?MJ|1pQrK$tSsZG!FPm-e@qr+pbjb_Pxv>jt?X56EgA6(aWU$9fu`x zthy}}jluaV(9DqSGBXP?{ah1H>tPB71yiDky=27Z4)t^{Lg^nnslBNXO`gt($ux^@ zdf$TQLX_Z>jS(G;$tJEkR#fke5{`Uj2>aqBW}+8?y}8z~+`1Z;pVmOzk);sOWq~{T zMW9rxi(dS;2?iW;nB9|u!>43GA-{e|p&@II z5GV1uFv#ZXe=hHU+M#ptu$()hT^q&6`JR`iX+d;pY zTc*g-=%=gk<+Nkm`X|$=dATkB)a@x9OzopqY#)1a@p1lhPA=^fm!ik7IB`?OmV(Ys zS(r2=Lti));-8cHaK5yVq}5J>1p%|+q5LA_bA_>ZtYaNE$jF2G&Q$K7r5E@It>`vg zI32AM=HlhL9cUQ%jZ*F;mDP}^QAtT4_A(iokCx+~!?GCL*9vHzMztoplH7wH@Fd?C zUTYZB-R^J6vkZH1lWc`3D@BO?;R9>NRAKeH6;Kz%Dy|MKATu}%!%j6~6{yhf2JN)3 zQ5H>}PXw>G1ZO@JKpWpQ{Qatt2s)NypTsgEF*lT5->$H9kt2#GjK@1i%J2g_e><;L z#+)8zhX0pACwHaesLLdaT}o7C7lry%us6oWG z>F8Eb5VW{M&SxeuWNj|DUO}1^27V+mVv-OW#j=gL>F6n31xv14gHpvsy52Pdqyx*q zLNt+ zZw4+$C2)e>Y`k8X2o>wZVb_*5xO{pptgMNK%%DJKgV*Ehw0@F%`S-}jClhgPuLCiD zGiscbJ(<^HIY_&=l4Mu&1rFKSTXgg-8Dnh2FkbP%+caV9A0gQHdn~q$l;iT#D)i>d zSi1VsS}OKB635-0#`$_AkqUP2t=r*^QnGV#75lSSSLT4IatECg7Y|>4CBub=#jq^1 z0dm&=M=r_l>t3uQ3m2BF;2Bl{eCNCXg7*7#Hx`#*Ny{8)y!@EhIKLtx-cJ1X<9q4u zzj;J%Fq=Jp*MdR^(_9FefXKKaFnCsIq}WgCW~(OS#|!Eq@$W63Of{jho06b9_!`N* zkqom=t)#JUq9Fe>``YD0Ny%smy%3;)8xA(1X@)-Jf3k$NHm^v3UMp&T9iT4eOlk14 z2GS++I>q<+VD{5Z;B|c+^!{L<~w6CgzMLnAArd5vnMqS9E zTNQNI3t3#-o(u~Tbg^h@J*v%*Me)d|oQItYeCsHH)D`kr7is|ODC;TxZRLJN*`rNW zASA2UW1o^1%vO)W;nqAHuwD(C<{L2PN-@0s(t_5nUCD%4mUZ-R1>Fv9Tp*v0^JKSS z0n_c=Jk9Et#}jbLzYrYyQ;ka*2IER^Hk=*FryXxru-%6+%iR{>H8%GuKbwpKdC8F9 zZbFs4#aO590l&T^10P0uVu%sLqP97p=Z!=Zo#4gvG>7TA{7gDp(LgOjDnRE+C5}39 zxNy2QzPu5Le+A=E_fIOhRCR@Z+1X2fTu-BY46pug<1BJrr~n4fFN243*P!Xjda~4K z5>q0ucZl5eZ08;f?a7JQx@|Ha;FM1T)J*vNgMK7({sOe^2!L&oGWg}$oNn;|FIZw; zjTdE{aI8@#9M$+m>>TG|jI%OcU|pJ|+&>{q*)e32)qiK}uop-{Hl)zg7t{^$ zGZek*U0%shka$(-fOAC&9-o#0-&IoaTd_C3x*h}SIxQHUS__x33{Eg?U`$0aOtk1C z9W%uInZ^a^A%9GSY+hRn1Nya~ z$*qL5b988Zv>~tii0PaB=5hNrKIU$Y<&BU0yG0I<-w1Yt>KNx&0}da=q1f^S*>Xq> z^z@sd%10c%#x`KjhuP%gj|_PCsG9nxCBWgstu$;~B`)63&UKu5#f>C%QyYs&7^A2_ zXGrD}SG^3>@lIm%=&`)a$@ApdLOI;FcrH#|G)g=o4pK3>3YcEy0s`xjaq9CiFfsfK zE#EJRXAVE%+okr=;2uM=%uN@9J7qEMtQLF{JIi@<1@I<%4>#_>W`1Va2vI23py_k< z(et?ygtqk?zjE7#wZR*)QK}gdM*``C!)44GJ{wMxdi1-&!NZ3!;5zh$j=lOHQEyKr zb$@gr%6|^t*`xyB_jB;Z@G^;&EP%_pZ;cvvIFmCfE9q5@ROG>fN-erSDUwkp3A`fN#li)uyNhmT6M1>AYCVsUB`Ic^e&Q}wNzT8eH z2IOG4v>lZePeA$@r=6231nh3VgG;aOlUo|vc0{w)XC|0@adYMW81Zayr@ zUXJybD6QS-0Y`>4>DFJ7(B|&Qiya*#t~XWCy48maCe;zmAchZqpaEmlx526gLl7B^ z!2~&dEF3yX+jn1}w#S)LFt!{chYHZZB^^|z%5uB@6NF{=6(QvCB(&UWOBUTQ#W~lC zQD+)^HX8<$IHE=0#2150yaV6RQ-I;yGwA_mA)L8S5e%0n;dU=oT;HjS|7uDxrMMaw zTzJ6+*{5*LUB>j${H?}Ur!izmmNR@wOTdcMRU}WWon!EStR&UoS6fOvJr2-K{4~}F zYb9ILyf9Fthy;Di!Rs22NQO=Vx#Bk!hBK|9G4T~W;`fMX%(+8P=j4O;?iv)iyb8`w z?kDdJlX3QMX;eDA9PAv=P}{fF)c%47I}4Q%k=x0T%TGa3*%k~wlLXxPU^urbA7>j} z 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

%(BAa^L*MJr`KBHBk`@y>F7J9JS27~u4uL#^f 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� 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 kf1vd@H2l+h~~RFNiL*KCnwxwU|qfdieT-|%UX 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

w4wPby=OQ@2>L_l=HKVK7?b!v} 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

E=>yq=x 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ξ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 B@m>G` diff --git a/DeeployTest/Tests/Models/microLlama/FP32/microLlama1/outputs.npz b/DeeployTest/Tests/Models/microLlama/FP32/microLlama1/outputs.npz index 07fda6854dc56be62ead10027bc9e4eab42d2308..d6dc22736fcd5a89a37b2eb7e058a52b8e8d1026 100644 GIT binary patch delta 309 zcmeBU>0=QJ@MdNaVSoTdhIBWdbrXfw)E`b*v;Xg=$97MyPu|y=AHBc1w#q)L>cZX? z#~AH7W-Qt3KmDBj{Y}F5_LEN938$Odc3!o%-}=gC|D&tt_eWUo*w^mXus<$NVt;Y> zD*MfnT>JIDb?(orX0qqh6g=?jbK$6;`TLD#rA(o^|t5aEw=9xUb|mFOflAF%q}wu6g{FZpuLJvZ+qaII`)R9Ax)Q_nYMx2-89Oe$Sf8(yv9 z6_yf}+M%YV`?V`siyKx+o_jaGh>*m<&+sW%yQNB++w9rb!|uTjp9Mw zA+PTjYYz27GH!6Mq!!~w%lOxd-l=vt{~d%ckjD4WZJ5Cy^@1=&Cm;~WJ1{%+5BM%z z4eKaA2Jh59977(S$b3kEWNGyJi|^n+&?MiP!e5Zz Date: Tue, 17 Feb 2026 16:13:53 +0100 Subject: [PATCH 36/57] merge HardSwishChecker, rename parser, fix Softmax types, yapf fix --- .../workflows/ci-platform-snitch-tiled.yml | 24 +---------------- .github/workflows/ci-platform-snitch.yml | 26 +------------------ Deeploy/Targets/Generic/TypeCheckers.py | 22 ++++------------ Deeploy/Targets/Snitch/Bindings.py | 6 ++--- Deeploy/Targets/Snitch/Parsers.py | 2 +- Deeploy/Targets/Snitch/Platform.py | 6 ++--- .../Snitch/Templates/FloatDivTemplate.py | 4 +-- .../Snitch/Templates/FloatMatMulTemplate.py | 2 +- DeeployTest/test_snitch_config.py | 2 ++ TargetLibraries/Snitch/inc/kernel/Softmax.h | 4 +-- TargetLibraries/Snitch/src/Add_fp32.c | 6 ----- TargetLibraries/Snitch/src/Softmax_fp32.c | 4 +-- 12 files changed, 23 insertions(+), 85 deletions(-) diff --git a/.github/workflows/ci-platform-snitch-tiled.yml b/.github/workflows/ci-platform-snitch-tiled.yml index eedab6641d..4ecd45fba9 100644 --- a/.github/workflows/ci-platform-snitch-tiled.yml +++ b/.github/workflows/ci-platform-snitch-tiled.yml @@ -35,26 +35,4 @@ jobs: with: runner: ${{ needs.select-env.outputs.runner }} docker-image: ${{ needs.select-env.outputs.image }} - tests-config: | - [ - {"name":"Kernels/Integer/Add/Large","L1":[5000,10000]}, - {"name":"Kernels/Integer/Softmax/Large","L1":[5000,10000]}, - - {"name":"Kernels/FP32/Softmax/Regular","L1":[2000,5000,10000]}, - {"name":"Kernels/FP32/RMSNorm/single_fused_op","L1":[2000,5000,10000]}, - {"name":"Kernels/FP32/MatMul","L1":[2000,5000,10000]}, - {"name":"Kernels/FP32/Add/Regular","L1":[2000,5000,10000]}, - {"name":"Kernels/FP32/Hardswish","L1":[2000,5000,10000]}, - {"name":"Kernels/FP32/Div","L1":[2000,5000,10000]}, - - {"name":"Kernels/FP32/GEMM/Regular","L1":[2000,5000,10000]}, - {"name":"Kernels/FP32/GEMM/TransB","L1":[2000,5000,10000]}, - - {"name":"Kernels/Integer/iNoNorm","L1":[5000,10000]}, - {"name":"Kernels/Integer/Add/Regular_RQ","L1":[5000,10000]}, - {"name":"Kernels/Integer/GEMM/Regular_RQPerRow","L1":[2000,5000]}, - - {"name":"Models/microLlama/FP32/microLlama1","L1":[10000,20000]} - ] - simulators: | - gvsoc + pytest-marker: "(kernels or models) and singlebuffer and l2" diff --git a/.github/workflows/ci-platform-snitch.yml b/.github/workflows/ci-platform-snitch.yml index 26f238a3f2..703a42792d 100644 --- a/.github/workflows/ci-platform-snitch.yml +++ b/.github/workflows/ci-platform-snitch.yml @@ -35,28 +35,4 @@ jobs: with: runner: ${{ needs.select-env.outputs.runner }} docker-image: ${{ needs.select-env.outputs.image }} - test-names: | - Kernels/FP32/Softmax/Regular - Kernels/FP32/RMSNorm/single_fused_op - Kernels/FP32/MatMul - Kernels/FP32/Add/Regular - Kernels/FP32/Hardswish - Kernels/FP32/Div - - Kernels/Integer/Add/Large - Kernels/Integer/Add/Regular - - Kernels/Integer/Softmax/Large - Kernels/Integer/Softmax/Regular - - Kernels/Integer/MatMul/Regular - - Kernels/Integer/iNoNorm - Kernels/Integer/GEMM/Regular_RQPerRow - Kernels/Integer/Add/Regular_RQ - Kernels/Integer/GEMM/TransB_RQ - - Models/microLlama/FP32/microLlama1 - num-cores: 9 - simulators: | - gvsoc + pytest-marker: "kernels or models" diff --git a/Deeploy/Targets/Generic/TypeCheckers.py b/Deeploy/Targets/Generic/TypeCheckers.py index c08c3c4a86..88b1b97cf8 100644 --- a/Deeploy/Targets/Generic/TypeCheckers.py +++ b/Deeploy/Targets/Generic/TypeCheckers.py @@ -6,7 +6,7 @@ import numpy as np -from Deeploy.AbstractDataTypes import Pointer +from Deeploy.AbstractDataTypes import FloatImmediate, Pointer from Deeploy.CommonExtensions.TypeCheckers.SignPropTypeChecker import SignPropTypeChecker from Deeploy.DeeployTypes import ConstantBuffer, OperatorRepresentation, VariableBuffer @@ -409,7 +409,10 @@ def __init__(self, input_types: Sequence[Type[Pointer]], output_types: Sequence[ def _inferNumLevels(self, inputs: List[VariableBuffer], operatorRepresentation: OperatorRepresentation) -> List[int]: - return [2**(4 * self.input_types[0].referencedType.typeWidth)] + input_type = self.input_types[0].referencedType + if issubclass(input_type, FloatImmediate): + return [2**(input_type.typeWidth)] + return [2**(4 * input_type.typeWidth)] def _inferSignedness(self, inputs: List[VariableBuffer], operatorRepresentation: OperatorRepresentation) -> List[bool]: @@ -632,18 +635,3 @@ def _inferSignedness(self, inputs: List[VariableBuffer], return [False] -class HardSwishChecker(SignPropTypeChecker): - - def __init__(self, input_types: Sequence[Type[Pointer]], output_types: Sequence[Type[Pointer]]): - super().__init__(input_types, output_types) - - def _inferNumLevels(self, inputs: List[VariableBuffer], - operatorRepresentation: OperatorRepresentation) -> List[int]: - return [2**(self.input_types[0].referencedType.typeWidth)] - - def _inferSignedness(self, inputs: List[VariableBuffer], - operatorRepresentation: OperatorRepresentation) -> List[bool]: - if inputs[0]._signed: - return [True] - else: - return [False] diff --git a/Deeploy/Targets/Snitch/Bindings.py b/Deeploy/Targets/Snitch/Bindings.py index 883824b4ff..cb58f7fc53 100644 --- a/Deeploy/Targets/Snitch/Bindings.py +++ b/Deeploy/Targets/Snitch/Bindings.py @@ -13,7 +13,7 @@ from Deeploy.FutureExtension.CodeTransformationPasses.FutureCodeTransformation import FutureGeneration from Deeploy.Targets.Generic.Templates import ConcatTemplate, iNoNormTemplate from Deeploy.Targets.Generic.TypeCheckers import AddChecker, ConcatChecker, DivChecker, GatherChecker, GEMMChecker, \ - HardSwishChecker, MatMulChecker, MulChecker, ReshapeChecker, RMSNormChecker, RQAddChecker, SoftmaxChecker, \ + HardswishChecker, MatMulChecker, MulChecker, ReshapeChecker, RMSNormChecker, RQAddChecker, SoftmaxChecker, \ TransposeChecker, iNoNormChecker from Deeploy.Targets.Snitch.CodeTransformationPasses import SnitchClusterTiling, SnitchCoreFilterPass, \ SnitchSynchCoresPass @@ -126,13 +126,13 @@ # HardSwish Bindings (Tiled) SnitchHardSwishBindings = [ - NodeBinding(HardSwishChecker([PointerClass(float32_t)], [PointerClass(float32_t)]), FloatHardSwishTemplate, + NodeBinding(HardswishChecker([PointerClass(float32_t)], [PointerClass(float32_t)]), FloatHardSwishTemplate, TiledTransformer) ] # HardSwish Bindings (Non-tiled) BasicHardSwishBindings = [ - NodeBinding(HardSwishChecker([PointerClass(float32_t)], [PointerClass(float32_t)]), FloatHardSwishTemplate, + NodeBinding(HardswishChecker([PointerClass(float32_t)], [PointerClass(float32_t)]), FloatHardSwishTemplate, BasicTransformer) ] diff --git a/Deeploy/Targets/Snitch/Parsers.py b/Deeploy/Targets/Snitch/Parsers.py index 3e24a622c8..c91274fc8c 100644 --- a/Deeploy/Targets/Snitch/Parsers.py +++ b/Deeploy/Targets/Snitch/Parsers.py @@ -161,7 +161,7 @@ def parseNodeCtxt(self, return ctxt, True -class HardSwishParser(NodeParser): +class SnitchHardSwishParser(NodeParser): def __init__(self): super().__init__() diff --git a/Deeploy/Targets/Snitch/Platform.py b/Deeploy/Targets/Snitch/Platform.py index 1a3ae0ed66..4acc794da2 100644 --- a/Deeploy/Targets/Snitch/Platform.py +++ b/Deeploy/Targets/Snitch/Platform.py @@ -23,8 +23,8 @@ SkipEmptyConcatPass, SkipUnityRequantPass, iGELURequantMergePass, iHardswishRequantMergePass from Deeploy.Targets.PULPOpen.Platform import RQAddMapper from Deeploy.Targets.Snitch.Bindings import BasicSnitchTransposeBindings -from Deeploy.Targets.Snitch.Parsers import HardSwishParser, SnitchAddParser, SnitchDivParser, SnitchGEMMParser, \ - SnitchMulParser, SnitchRMSNormParser, SnitchRQGEMMParser +from Deeploy.Targets.Snitch.Parsers import SnitchAddParser, SnitchDivParser, SnitchGEMMParser, \ + SnitchHardSwishParser, SnitchMulParser, SnitchRMSNormParser, SnitchRQGEMMParser from Deeploy.Targets.Snitch.Templates import AllocateTemplate, FreeTemplate from Deeploy.Targets.Snitch.Tiler import SnitchAddTileReadyBindings, SnitchConcatTilingReadyBindings, \ SnitchDivTilingReadyBindings, SnitchGatherTilingReadyBindings, SnitchGemmTilingReadyBindings, \ @@ -59,7 +59,7 @@ RQAddMapper = NodeMapper(RQAddParser(), SnitchRQAddTilingReadyBindings) AddMapper = NodeMapper(SnitchAddParser(), SnitchAddTileReadyBindings) RMSNormMapper = NodeMapper(SnitchRMSNormParser(), SnitchRMSNormTilingReadyBindings) -HardSwishMapper = NodeMapper(HardSwishParser(), SnitchHardSwishTilingReadyBindings) +HardSwishMapper = NodeMapper(SnitchHardSwishParser(), SnitchHardSwishTilingReadyBindings) DivMapper = NodeMapper(SnitchDivParser(), SnitchDivTilingReadyBindings) MulMapper = NodeMapper(SnitchMulParser(), SnitchMulTilingReadyBindings) diff --git a/Deeploy/Targets/Snitch/Templates/FloatDivTemplate.py b/Deeploy/Targets/Snitch/Templates/FloatDivTemplate.py index 8e864082a4..a4a7e05bd4 100644 --- a/Deeploy/Targets/Snitch/Templates/FloatDivTemplate.py +++ b/Deeploy/Targets/Snitch/Templates/FloatDivTemplate.py @@ -25,9 +25,9 @@ def alignToContext(self, ctxt: NetworkContext, # not just assign self.templateStr. NodeTemplate.generate() uses # the pre-compiled self.template, not self.templateStr. if is_scalar: - self.template = MakoTemplate(FloatDivScalarTemplateStr, strict_undefined=True) + self.template = MakoTemplate(FloatDivScalarTemplateStr, strict_undefined = True) else: - self.template = MakoTemplate(FloatDivTemplateStr, strict_undefined=True) + self.template = MakoTemplate(FloatDivTemplateStr, strict_undefined = True) return ctxt, operatorRepresentation, [] diff --git a/Deeploy/Targets/Snitch/Templates/FloatMatMulTemplate.py b/Deeploy/Targets/Snitch/Templates/FloatMatMulTemplate.py index dc21d633ed..c52a842799 100644 --- a/Deeploy/Targets/Snitch/Templates/FloatMatMulTemplate.py +++ b/Deeploy/Targets/Snitch/Templates/FloatMatMulTemplate.py @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: 202666666 ETH Zurich and University of Bologna +# SPDX-FileCopyrightText: 2026 ETH Zurich and University of Bologna # # SPDX-License-Identifier: Apache-2.0 diff --git a/DeeployTest/test_snitch_config.py b/DeeployTest/test_snitch_config.py index 5284ff455c..c132abf9fb 100644 --- a/DeeployTest/test_snitch_config.py +++ b/DeeployTest/test_snitch_config.py @@ -9,8 +9,10 @@ DEFAULT_NUM_CORES = 9 KERNEL_TESTS = [ + "Kernels/FP32/Add/Regular", "Kernels/FP32/Div", "Kernels/FP32/Hardswish", + "Kernels/FP32/MatMul", "Kernels/FP32/Mul", "Kernels/FP32/RMSNorm/separate_ops", "Kernels/FP32/RMSNorm/single_fused_op", diff --git a/TargetLibraries/Snitch/inc/kernel/Softmax.h b/TargetLibraries/Snitch/inc/kernel/Softmax.h index 3795bb4f3b..4b5f6d4bdf 100644 --- a/TargetLibraries/Snitch/inc/kernel/Softmax.h +++ b/TargetLibraries/Snitch/inc/kernel/Softmax.h @@ -9,8 +9,8 @@ #include "DeeploySnitchMath.h" -void Softmax_fp32(float *input, float *output, int32_t ldI, - int32_t batch_offset, int32_t batch_size, int32_t seq_len, +void Softmax_fp32(float *input, float *output, uint32_t ldI, + uint32_t batch_offset, int32_t batch_size, int32_t seq_len, int32_t input_samples); #endif // #define __DEEPLOY_MATH_SOFTMAX_KERNEL_HEADER_ \ No newline at end of file diff --git a/TargetLibraries/Snitch/src/Add_fp32.c b/TargetLibraries/Snitch/src/Add_fp32.c index bffd79854e..785ff0c2b3 100644 --- a/TargetLibraries/Snitch/src/Add_fp32.c +++ b/TargetLibraries/Snitch/src/Add_fp32.c @@ -6,12 +6,6 @@ #include "DeeploySnitchMath.h" -/* - * SPDX-FileCopyrightText: 2026 ETH Zurich and University of Bologna - * - * SPDX-License-Identifier: Apache-2.0 - */ - void Add_fp32(float32_t *pIn1, float32_t *pIn2, float32_t *pOut, uint32_t size) { diff --git a/TargetLibraries/Snitch/src/Softmax_fp32.c b/TargetLibraries/Snitch/src/Softmax_fp32.c index b8abb27845..f8c3d12e42 100644 --- a/TargetLibraries/Snitch/src/Softmax_fp32.c +++ b/TargetLibraries/Snitch/src/Softmax_fp32.c @@ -6,8 +6,8 @@ #include "DeeploySnitchMath.h" -void Softmax_fp32(float32_t *input, float32_t *output, int32_t ldI, - int32_t batch_offset, int32_t batch_size, int32_t seq_len, +void Softmax_fp32(float32_t *input, float32_t *output, uint32_t ldI, + uint32_t batch_offset, int32_t batch_size, int32_t seq_len, int32_t input_samples) { float32_t max_core = 0.0; // max value of the current core From 064981a6148f1f96428e6cc3ba532281e29ab843 Mon Sep 17 00:00:00 2001 From: lee2716 Date: Wed, 18 Feb 2026 15:20:33 +0100 Subject: [PATCH 37/57] fix: multi-core safe memory allocation for Snitch platform - AllocateTemplate.py: Add snitchGenericGuardedAllocate template that wraps allocation in DM-core guard + barrier for address consistency - Platform.py: Use guarded allocation instead of per-core snrt_l3alloc to prevent address divergence; remove unused non-tiling mappers - main.c: Move InitNetwork() outside DM-core branch so all cores participate in barrier synchronization during allocation - codeGenerate.py: Place intermediate buffer declarations at file scope (like MemPool) so all cores share consistent buffer pointers --- Deeploy/Targets/Snitch/Platform.py | 11 ++--------- .../Targets/Snitch/Templates/AllocateTemplate.py | 10 ++++++++++ DeeployTest/Platforms/Snitch/main.c | 16 +++++++++------- DeeployTest/testUtils/codeGenerate.py | 4 +++- 4 files changed, 24 insertions(+), 17 deletions(-) diff --git a/Deeploy/Targets/Snitch/Platform.py b/Deeploy/Targets/Snitch/Platform.py index 4acc794da2..bfa9e3a73a 100644 --- a/Deeploy/Targets/Snitch/Platform.py +++ b/Deeploy/Targets/Snitch/Platform.py @@ -22,7 +22,6 @@ IntegerDivRequantMergePass, MergeConstAddAndRequantPass, MergeTrueIntegerDivRequantShiftPass, RQSSplitPass, \ SkipEmptyConcatPass, SkipUnityRequantPass, iGELURequantMergePass, iHardswishRequantMergePass from Deeploy.Targets.PULPOpen.Platform import RQAddMapper -from Deeploy.Targets.Snitch.Bindings import BasicSnitchTransposeBindings from Deeploy.Targets.Snitch.Parsers import SnitchAddParser, SnitchDivParser, SnitchGEMMParser, \ SnitchHardSwishParser, SnitchMulParser, SnitchRMSNormParser, SnitchRQGEMMParser from Deeploy.Targets.Snitch.Templates import AllocateTemplate, FreeTemplate @@ -33,14 +32,8 @@ SnitchRMSNormTilingReadyBindings, SnitchRQAddTilingReadyBindings, SnitchRqGemmTilingReadyBindings, \ SnitchTransposeTilingReadyBindings -# Mappers without tiling-ready equivalents Pad1DMapper = NodeMapper(Pad1DParser(), BasicPad1DBindings) Pad2DMapper = NodeMapper(Pad2DParser(), BasicPad2DBindings) -UnsqueezeMapper = NodeMapper(UnsqueezeParser(), BasicReshapeBindings) -ReshapeMapper = NodeMapper(ReshapeParser(), BasicReshapeBindings) -TransposeMapper = NodeMapper(TransposeParser(), BasicSnitchTransposeBindings) -ConcatMapper = NodeMapper(ConcatParser(), BasicConcatBindings) - RQIntegerDivMapper = NodeMapper(RQIntegerDivParser(), [BasicRQIntegerDivBinding]) iLayerNormMapper = NodeMapper(iLayerNormParser(), BasicLayerNormBindings) @@ -90,7 +83,7 @@ class SnitchVariableBuffer(VariableBuffer): initTemplate = AllocateTemplate.snitchL2InitTemplate - allocTemplate = AllocateTemplate.snitchGenericAllocate + allocTemplate = AllocateTemplate.snitchGenericGuardedAllocate deallocTemplate = FreeTemplate.snitchGenericFree def _bufferRepresentation(self): @@ -111,7 +104,7 @@ def _bufferRepresentation(self): class SnitchTransientBuffer(TransientBuffer): initTemplate = AllocateTemplate.snitchL2InitTemplate - allocTemplate = AllocateTemplate.snitchGenericAllocate + allocTemplate = AllocateTemplate.snitchGenericGuardedAllocate deallocTemplate = FreeTemplate.snitchGenericFree # allocTemplate = AllocateTemplate.snitchL2AllocateTemplate diff --git a/Deeploy/Targets/Snitch/Templates/AllocateTemplate.py b/Deeploy/Targets/Snitch/Templates/AllocateTemplate.py index 6c1d898645..49decc5157 100644 --- a/Deeploy/Targets/Snitch/Templates/AllocateTemplate.py +++ b/Deeploy/Targets/Snitch/Templates/AllocateTemplate.py @@ -55,3 +55,13 @@ // ${name} with size ${size} allocated in L2! % endif """) + +snitchGenericGuardedAllocate = NodeTemplate(""" +% if _memoryLevel == "L1": +if (snrt_is_dm_core()) { ${name} = (${type.typeName}) snrt_l1alloc(sizeof(${type.referencedType.typeName}) * ${size}); } +snrt_cluster_hw_barrier();\n +% else: +if (snrt_is_dm_core()) { ${name} = (${type.typeName}) snrt_l3alloc(sizeof(${type.referencedType.typeName}) * ${size}); } +snrt_cluster_hw_barrier();\n +% endif +""") diff --git a/DeeployTest/Platforms/Snitch/main.c b/DeeployTest/Platforms/Snitch/main.c index a7251f3844..cff0e0b20a 100644 --- a/DeeployTest/Platforms/Snitch/main.c +++ b/DeeployTest/Platforms/Snitch/main.c @@ -25,20 +25,22 @@ int main(void) { uint32_t const num_compute_cores = snrt_global_compute_core_num(); #endif + // All cores call InitNetwork: allocations inside are DM-core guarded + // with barriers, so all cores must participate for barrier balance. +#ifndef NOPRINT + if (snrt_is_dm_core()) { + printf("Initializing...\r\n"); + } +#endif + InitNetwork(core_id, 1); + if (snrt_is_dm_core()) { #ifndef CI printf("Network running on %d of %d compute cores (+%d DM cores) on %d " "clusters\r\n", num_compute_cores, snrt_global_compute_core_num(), snrt_cluster_num() * snrt_cluster_dm_core_num(), snrt_cluster_num()); -#endif - -#ifndef NOPRINT - printf("Initializing...\r\n"); -#endif - InitNetwork(core_id, 1); -#ifndef CI for (uint32_t buf = 0; buf < DeeployNetwork_num_inputs; buf++) { printf("testInputVector%d @ %p\r\n", buf, testInputVector[buf]); printf("DeeployNetwork_input_%d @ %p and %u elements\r\n", buf, diff --git a/DeeployTest/testUtils/codeGenerate.py b/DeeployTest/testUtils/codeGenerate.py index 39a44d9442..1397dcbec3 100644 --- a/DeeployTest/testUtils/codeGenerate.py +++ b/DeeployTest/testUtils/codeGenerate.py @@ -10,6 +10,7 @@ from Deeploy.DeeployTypes import CodeGenVerbosity, ConstantBuffer, NetworkDeployer, VariableBuffer from Deeploy.Targets.MemPool.Platform import MemPoolPlatform from Deeploy.Targets.PULPOpen.Platform import MemoryPULPPlatform, MemoryPULPPlatformWrapper, PULPPlatform +from Deeploy.Targets.Snitch.Platform import SnitchPlatform _TEXT_ALIGN = 30 @@ -163,7 +164,8 @@ def generateTestNetworkImplementation(deployer: NetworkDeployer, verbosityCfg: C retStr += deployer.generateGlobalDefinitionCode() # WIESEP: Mempool assigns section attributes to intermediate buffers to allow . - if isinstance(deployer.Platform, MemPoolPlatform): + # Snitch also needs file-scope declarations for multi-core buffer sharing. + if isinstance(deployer.Platform, (MemPoolPlatform, SnitchPlatform)): retStr += deployer.generateInferenceInitializationCode() retStr += """ void RunNetwork(__attribute__((unused)) uint32_t core_id, __attribute__((unused)) uint32_t numThreads){ From 9be87681cfe7f44657a3cb22ccdd02ad1246351d Mon Sep 17 00:00:00 2001 From: lee2716 Date: Wed, 18 Feb 2026 15:22:25 +0100 Subject: [PATCH 38/57] feat: multi-core MatMul, Softmax kernels and fix Mul template - FloatMatMulTemplate: remove single-core guard, use multi-core matmul_fp32_opt kernel - FloatSoftmaxTemplate: rewrite as simple multi-core template, remove complex class with alignToContext - FloatMulTemplate: fix Mako template recompilation in alignToContext (must recompile self.template, not just assign self.templateStr) - MatMul.h: add matmul_fp32_opt declaration - Softmax.h/Softmax_fp32.c: rewrite as multi-core kernel parallelizing across batch dimension --- .../Snitch/Templates/FloatMatMulTemplate.py | 7 +- .../Snitch/Templates/FloatMulTemplate.py | 12 +-- .../Snitch/Templates/FloatSoftmaxTemplate.py | 36 ++------ TargetLibraries/Snitch/inc/kernel/MatMul.h | 17 ++++ TargetLibraries/Snitch/inc/kernel/Softmax.h | 7 +- TargetLibraries/Snitch/src/Softmax_fp32.c | 83 +++++++++++++------ 6 files changed, 92 insertions(+), 70 deletions(-) diff --git a/Deeploy/Targets/Snitch/Templates/FloatMatMulTemplate.py b/Deeploy/Targets/Snitch/Templates/FloatMatMulTemplate.py index c52a842799..939822c944 100644 --- a/Deeploy/Targets/Snitch/Templates/FloatMatMulTemplate.py +++ b/Deeploy/Targets/Snitch/Templates/FloatMatMulTemplate.py @@ -4,16 +4,17 @@ from Deeploy.DeeployTypes import NodeTemplate -# Use snrt_cluster_core_idx() == 0 instead of BEGIN_SINGLE_CORE macro to avoid core_id dependency +# Multi-core MatMul: all compute cores enter, kernel handles work distribution internally. +# Framework adds snrt_is_compute_core() guard and barriers via SnitchCoreFilterPass/SnitchSynchCoresPass. referenceTemplate = NodeTemplate(""" // Matmul (Name: ${nodeName}, Op: ${nodeOp}) -if (snrt_cluster_core_idx() == 0) { +{ ${A_type.typeName} ref_${data_out}_${A} = ${A}; ${B_type.typeName} ref_${data_out}_${B} = ${B}; ${data_out_type.typeName} ref_${data_out}_${data_out} = ${data_out}; for(uint32_t i=0; i<${batch}; i++){ - MatMul_fp${A_type.referencedType.typeWidth}_fp${B_type.referencedType.typeWidth}_fp${data_out_type.referencedType.typeWidth}( + matmul_fp32_opt( ref_${data_out}_${A}, ref_${data_out}_${B}, ref_${data_out}_${data_out}, diff --git a/Deeploy/Targets/Snitch/Templates/FloatMulTemplate.py b/Deeploy/Targets/Snitch/Templates/FloatMulTemplate.py index 7a970e6411..1e20279922 100644 --- a/Deeploy/Targets/Snitch/Templates/FloatMulTemplate.py +++ b/Deeploy/Targets/Snitch/Templates/FloatMulTemplate.py @@ -4,6 +4,8 @@ from typing import Dict, List, Tuple +from mako.template import Template as MakoTemplate + from Deeploy.DeeployTypes import NetworkContext, NodeTemplate, OperatorRepresentation @@ -19,13 +21,13 @@ def alignToContext(self, ctxt: NetworkContext, # Check if scalar broadcasting is_scalar = operatorRepresentation.get('is_scalar', False) - # Dynamically select template based on is_scalar flag + # IMPORTANT: Must recompile self.template (Mako Template object), + # not just assign self.templateStr. NodeTemplate.generate() uses + # the pre-compiled self.template, not self.templateStr. if is_scalar: - # Use scalar broadcasting version - self.templateStr = FloatMulScalarTemplateStr + self.template = MakoTemplate(FloatMulScalarTemplateStr, strict_undefined = True) else: - # Use element-wise version - self.templateStr = FloatMulTemplateStr + self.template = MakoTemplate(FloatMulTemplateStr, strict_undefined = True) return ctxt, operatorRepresentation, [] diff --git a/Deeploy/Targets/Snitch/Templates/FloatSoftmaxTemplate.py b/Deeploy/Targets/Snitch/Templates/FloatSoftmaxTemplate.py index a7bf0f61c7..f8ff98b8cd 100644 --- a/Deeploy/Targets/Snitch/Templates/FloatSoftmaxTemplate.py +++ b/Deeploy/Targets/Snitch/Templates/FloatSoftmaxTemplate.py @@ -2,38 +2,12 @@ # # SPDX-License-Identifier: Apache-2.0 -from typing import Dict, List, Tuple - -from Deeploy.DeeployTypes import NetworkContext, NodeTemplate, OperatorRepresentation - - -class FloatSoftmaxTemplate(NodeTemplate): - - def __init__(self, templateStr): - super().__init__(templateStr) - - def alignToContext(self, ctxt: NetworkContext, - operatorRepresentation: OperatorRepresentation) -> Tuple[NetworkContext, Dict, List[str]]: - - data_in = ctxt.lookup(operatorRepresentation["data_in"]) - operatorRepresentation["seq_len"] = data_in.shape[2] - operatorRepresentation["input_samples"] = data_in.shape[-1] - - operatorRepresentation["kernelName"] = "Softmax_fp32" - - return ctxt, operatorRepresentation, [] - +from Deeploy.DeeployTypes import NodeTemplate +# Multi-core Softmax: all compute cores enter, kernel parallelizes across batch dimension. +# Framework adds snrt_is_compute_core() guard and barriers via SnitchCoreFilterPass/SnitchSynchCoresPass. FloatSoftmaxTemplateStr = r""" - uint32_t batch_size = ${size} / ${lastDimLength}; - uint32_t compute_num = 1; //snrt_cluster_compute_core_num(); - uint32_t ldI = compute_num * ${input_samples}; - uint32_t batch_offset = ${seq_len} * ${input_samples}; - - // JUNGVI: This implementation is broken and has memory leak. - if (snrt_hartid() == 0){ - ${kernelName}(${data_in}, ${data_out}, ldI, batch_offset, batch_size, ${seq_len}, ${input_samples}); - } +Softmax_fp32(${data_in}, ${data_out}, ${size}, ${lastDimLength}); """ -FloatSoftmax_Template = FloatSoftmaxTemplate(FloatSoftmaxTemplateStr) +FloatSoftmax_Template = NodeTemplate(FloatSoftmaxTemplateStr) diff --git a/TargetLibraries/Snitch/inc/kernel/MatMul.h b/TargetLibraries/Snitch/inc/kernel/MatMul.h index d4b9ba71ca..66e02c2d90 100644 --- a/TargetLibraries/Snitch/inc/kernel/MatMul.h +++ b/TargetLibraries/Snitch/inc/kernel/MatMul.h @@ -137,4 +137,21 @@ void MatMul_unrolled_2x2_parallel_s32_rv32im(int32_t const *__restrict__ pSrcA, uint32_t M, uint32_t N, uint32_t P); +/******************************************************************************/ +/* Matrix Multiplication (FP32, multi-core) */ +/******************************************************************************/ + +/* + * Matrix multiplication ---------------------------------- + * kernel = matmul_fp32_opt + * data type = 32-bit float + * multi-core = yes (splits M rows across compute cores internally) + * unrolling = 8 columns + * cleanup = yes + */ +void matmul_fp32_opt(const float32_t *__restrict__ pSrcA, + const float32_t *__restrict__ pSrcB, + float32_t *__restrict__ pDstY, uint32_t M, uint32_t N, + uint32_t O); + #endif //__DEEPLOY_MATH_MATMUL_KERNEL_HEADER_ diff --git a/TargetLibraries/Snitch/inc/kernel/Softmax.h b/TargetLibraries/Snitch/inc/kernel/Softmax.h index 4b5f6d4bdf..8e9d191053 100644 --- a/TargetLibraries/Snitch/inc/kernel/Softmax.h +++ b/TargetLibraries/Snitch/inc/kernel/Softmax.h @@ -9,8 +9,7 @@ #include "DeeploySnitchMath.h" -void Softmax_fp32(float *input, float *output, uint32_t ldI, - uint32_t batch_offset, int32_t batch_size, int32_t seq_len, - int32_t input_samples); +void Softmax_fp32(float32_t *input, float32_t *output, uint32_t size, + uint32_t lastDimLength); -#endif // #define __DEEPLOY_MATH_SOFTMAX_KERNEL_HEADER_ \ No newline at end of file +#endif // #define __DEEPLOY_MATH_SOFTMAX_KERNEL_HEADER_ diff --git a/TargetLibraries/Snitch/src/Softmax_fp32.c b/TargetLibraries/Snitch/src/Softmax_fp32.c index f8c3d12e42..31795fe304 100644 --- a/TargetLibraries/Snitch/src/Softmax_fp32.c +++ b/TargetLibraries/Snitch/src/Softmax_fp32.c @@ -5,34 +5,63 @@ */ #include "DeeploySnitchMath.h" +#include -void Softmax_fp32(float32_t *input, float32_t *output, uint32_t ldI, - uint32_t batch_offset, int32_t batch_size, int32_t seq_len, - int32_t input_samples) { - - float32_t max_core = 0.0; // max value of the current core - float32_t sum = 0.0; // sum of the exp values of the current core - int32_t compute_id = snrt_global_compute_core_idx(); - int32_t row_offset = compute_id * input_samples; - for (int32_t b = 0; b < batch_size; b++) { - for (int32_t s = 0; s < seq_len; s++) { - max_core = -INFINITY; - sum = 0.0; - for (int32_t i = 0; i < input_samples; i++) { - if (input[row_offset + b * batch_offset + s * ldI + i] > max_core) { - max_core = input[row_offset + b * batch_offset + s * ldI + i]; - } - } - // compute the shifted value of the current row - for (int32_t i = 0; i < input_samples; i++) { - output[row_offset + b * batch_offset + s * ldI + i] = - expf(input[row_offset + b * batch_offset + s * ldI + i] - max_core); - sum += output[row_offset + b * batch_offset + s * ldI + i]; - } - // compute the softmax value of the current row - for (int32_t i = 0; i < input_samples; i++) { - output[row_offset + b * batch_offset + s * ldI + i] /= sum; - } +/* + * Multi-core FP32 Softmax + * + * Computes softmax along the last dimension: + * output[b][i] = exp(input[b][i] - max) / sum(exp(input[b][j] - max)) + * + * Parallelizes across the batch dimension (size / lastDimLength rows). + * + * input: Input tensor (float32) + * output: Output tensor (float32) + * size: Total number of elements + * lastDimLength: Length of the last dimension (softmax axis) + */ +void Softmax_fp32(float32_t *input, float32_t *output, uint32_t size, + uint32_t lastDimLength) { + + uint32_t core_id = snrt_global_compute_core_idx(); + uint32_t numThreads = snrt_global_compute_core_num(); + + uint32_t num_rows = size / lastDimLength; + + uint32_t rows_per_core = num_rows / numThreads; + uint32_t remainder = num_rows % numThreads; + + uint32_t start_row, num_rows_this_core; + if (core_id < remainder) { + num_rows_this_core = rows_per_core + 1; + start_row = core_id * num_rows_this_core; + } else { + num_rows_this_core = rows_per_core; + start_row = core_id * rows_per_core + remainder; + } + + for (uint32_t r = start_row; r < start_row + num_rows_this_core; r++) { + float32_t *in_row = input + r * lastDimLength; + float32_t *out_row = output + r * lastDimLength; + + // Find max for numerical stability + float32_t max_val = -INFINITY; + for (uint32_t i = 0; i < lastDimLength; i++) { + if (in_row[i] > max_val) + max_val = in_row[i]; + } + + // Compute exp and sum + float32_t sum = 0.0f; + for (uint32_t i = 0; i < lastDimLength; i++) { + out_row[i] = expf(in_row[i] - max_val); + sum += out_row[i]; + } + + // Normalize + float32_t inv_sum = 1.0f / sum; + for (uint32_t i = 0; i < lastDimLength; i++) { + out_row[i] *= inv_sum; } } } From fdc0c8224d8d275d9a4c4e4ed939e5097111e5fe Mon Sep 17 00:00:00 2001 From: lee2716 Date: Wed, 18 Feb 2026 15:55:41 +0100 Subject: [PATCH 39/57] refactor: slim Snitch parsers, add MatMul_fp32.c, remove unsupported test --- Deeploy/Targets/Generic/Parsers.py | 55 +++++++----- Deeploy/Targets/Snitch/Parsers.py | 106 ++--------------------- DeeployTest/test_snitch_config.py | 1 - DeeployTest/test_snitch_tiled_config.py | 1 - TargetLibraries/Snitch/src/MatMul_fp32.c | 86 ++++++++++++++++++ 5 files changed, 128 insertions(+), 121 deletions(-) create mode 100644 TargetLibraries/Snitch/src/MatMul_fp32.c diff --git a/Deeploy/Targets/Generic/Parsers.py b/Deeploy/Targets/Generic/Parsers.py index 9cec242ff4..e4e98976e4 100644 --- a/Deeploy/Targets/Generic/Parsers.py +++ b/Deeploy/Targets/Generic/Parsers.py @@ -11,6 +11,37 @@ from Deeploy.DeeployTypes import ConstantBuffer, NetworkContext, NodeParser, VariableBuffer +def compute_broadcast_strides(shape1, shape2, out_shape): + """Compute strides for ONNX/NumPy-style broadcasting. + + Pads both input shapes from the left to match the output ndim, + then computes strides where broadcast dimensions (size 1) get stride 0. + + Example: + shape1=[8,8,8], shape2=[8] + -> strides1=[64,8,1], strides2=[0,0,1] + """ + ndim = len(out_shape) + + pad1 = [1] * (ndim - len(shape1)) + shape1 + pad2 = [1] * (ndim - len(shape2)) + shape2 + + def _calc_strides(padded_shape, out_shape): + strides = [] + stride = 1 + for i in range(ndim - 1, -1, -1): + if padded_shape[i] == 1 and out_shape[i] > 1: + strides.insert(0, 0) + else: + strides.insert(0, stride) + stride *= padded_shape[i] if padded_shape[i] > 1 else 1 + return strides + + strides1 = _calc_strides(pad1, out_shape) + strides2 = _calc_strides(pad2, out_shape) + return strides1, strides2 + + class ConcatParser(NodeParser): def __init__(self): @@ -511,27 +542,9 @@ def parseNodeCtxt(self, self.operatorRepresentation['need_broadcast'] = need_broadcast if need_broadcast: - ndim = len(out_shape) - - # Pad shapes from the left to match ndim (ONNX broadcasts from right) - padded_shape1 = [1] * (ndim - len(shape1)) + shape1 - padded_shape2 = [1] * (ndim - len(shape2)) + shape2 - - def _calc_strides(padded_shape, out_shape): - strides = [] - stride = 1 - for i in range(ndim - 1, -1, -1): - if padded_shape[i] == 1 and out_shape[i] > 1: - strides.insert(0, 0) - else: - strides.insert(0, stride) - stride *= padded_shape[i] if padded_shape[i] > 1 else 1 - return strides - - strides1 = _calc_strides(padded_shape1, out_shape) - strides2 = _calc_strides(padded_shape2, out_shape) - - self.operatorRepresentation['ndim'] = ndim + strides1, strides2 = compute_broadcast_strides(shape1, shape2, out_shape) + + self.operatorRepresentation['ndim'] = len(out_shape) self.operatorRepresentation['strides1'] = strides1 self.operatorRepresentation['strides2'] = strides2 self.operatorRepresentation['out_shape'] = out_shape diff --git a/Deeploy/Targets/Snitch/Parsers.py b/Deeploy/Targets/Snitch/Parsers.py index c91274fc8c..1b01ac02d8 100644 --- a/Deeploy/Targets/Snitch/Parsers.py +++ b/Deeploy/Targets/Snitch/Parsers.py @@ -11,37 +11,6 @@ from Deeploy.Targets.Generic.Parsers import AddParser, DivParser, GEMMParser, MulParser, RQGEMMParser -def compute_broadcast_strides(shape1, shape2, out_shape): - """Compute strides for ONNX/NumPy-style broadcasting. - - Pads both input shapes from the left to match the output ndim, - then computes strides where broadcast dimensions (size 1) get stride 0. - - Example: - shape1=[8,8,8], shape2=[8] - -> strides1=[64,8,1], strides2=[0,0,1] - """ - ndim = len(out_shape) - - pad1 = [1] * (ndim - len(shape1)) + shape1 - pad2 = [1] * (ndim - len(shape2)) + shape2 - - def _calc_strides(padded_shape, out_shape): - strides = [] - stride = 1 - for i in range(ndim - 1, -1, -1): - if padded_shape[i] == 1 and out_shape[i] > 1: - strides.insert(0, 0) - else: - strides.insert(0, stride) - stride *= padded_shape[i] if padded_shape[i] > 1 else 1 - return strides - - strides1 = _calc_strides(pad1, out_shape) - strides2 = _calc_strides(pad2, out_shape) - return strides1, strides2 - - class SnitchGEMMParser(GEMMParser): def parseNode(self, node: gs.Node) -> bool: @@ -199,45 +168,13 @@ def parseNodeCtxt(self, class SnitchAddParser(AddParser): - """Inherits from GenericAddParser and adds broadcasting support.""" + """Inherits from Generic AddParser which already handles broadcasting.""" - def __init__(self): - super().__init__() - - def parseNodeCtxt(self, - ctxt: NetworkContext, - node: gs.Node, - channels_first: bool = True) -> Tuple[NetworkContext, bool]: - ctxt, ret = super().parseNodeCtxt(ctxt, node, channels_first) - if not ret: - return ctxt, False - - shape1 = list(ctxt.lookup(node.inputs[0].name).shape) - shape2 = list(ctxt.lookup(node.inputs[1].name).shape) - out_shape = list(ctxt.lookup(node.outputs[0].name).shape) - - self.operatorRepresentation['size'] = int(np.prod(out_shape)) - self.operatorRepresentation['shape1'] = shape1 - self.operatorRepresentation['shape2'] = shape2 - self.operatorRepresentation['out_shape'] = out_shape - self.operatorRepresentation['ndim'] = len(out_shape) - - need_broadcast = (shape1 != shape2) - self.operatorRepresentation['need_broadcast'] = need_broadcast - - if need_broadcast: - strides1, strides2 = compute_broadcast_strides(shape1, shape2, out_shape) - self.operatorRepresentation['strides1'] = strides1 - self.operatorRepresentation['strides2'] = strides2 - - return ctxt, True + pass class SnitchDivParser(DivParser): - """Inherits from Generic DivParser and adds broadcasting support.""" - - def __init__(self): - super().__init__() + """Inherits from Generic DivParser and adds scalar detection.""" def parseNodeCtxt(self, ctxt: NetworkContext, @@ -251,31 +188,16 @@ def parseNodeCtxt(self, shape2 = list(ctxt.lookup(node.inputs[1].name).shape) out_shape = list(ctxt.lookup(node.outputs[0].name).shape) - self.operatorRepresentation['shape1'] = shape1 - self.operatorRepresentation['shape2'] = shape2 - self.operatorRepresentation['out_shape'] = out_shape - self.operatorRepresentation['ndim'] = len(out_shape) - self.operatorRepresentation['size1'] = int(np.prod(shape1)) - self.operatorRepresentation['size2'] = int(np.prod(shape2)) self.operatorRepresentation['size'] = int(np.prod(out_shape)) - - need_broadcast = (shape1 != shape2) - self.operatorRepresentation['need_broadcast'] = need_broadcast + self.operatorRepresentation['input1_is_scalar'] = (np.prod(shape1) == 1) + self.operatorRepresentation['input2_is_scalar'] = (np.prod(shape2) == 1) self.operatorRepresentation['is_scalar'] = (np.prod(shape1) == 1 or np.prod(shape2) == 1) - if need_broadcast: - strides1, strides2 = compute_broadcast_strides(shape1, shape2, out_shape) - self.operatorRepresentation['strides1'] = strides1 - self.operatorRepresentation['strides2'] = strides2 - return ctxt, True class SnitchMulParser(MulParser): - """Inherits from Generic MulParser and adds broadcasting support.""" - - def __init__(self): - super().__init__() + """Inherits from Generic MulParser and adds scalar detection.""" def parseNodeCtxt(self, ctxt: NetworkContext, @@ -289,21 +211,9 @@ def parseNodeCtxt(self, shape2 = list(ctxt.lookup(node.inputs[1].name).shape) out_shape = list(ctxt.lookup(node.outputs[0].name).shape) - self.operatorRepresentation['shape1'] = shape1 - self.operatorRepresentation['shape2'] = shape2 - self.operatorRepresentation['out_shape'] = out_shape - self.operatorRepresentation['ndim'] = len(out_shape) - self.operatorRepresentation['size1'] = int(np.prod(shape1)) - self.operatorRepresentation['size2'] = int(np.prod(shape2)) self.operatorRepresentation['size'] = int(np.prod(out_shape)) - - need_broadcast = (shape1 != shape2) - self.operatorRepresentation['need_broadcast'] = need_broadcast + self.operatorRepresentation['input1_is_scalar'] = (np.prod(shape1) == 1) + self.operatorRepresentation['input2_is_scalar'] = (np.prod(shape2) == 1) self.operatorRepresentation['is_scalar'] = (np.prod(shape1) == 1 or np.prod(shape2) == 1) - if need_broadcast: - strides1, strides2 = compute_broadcast_strides(shape1, shape2, out_shape) - self.operatorRepresentation['strides1'] = strides1 - self.operatorRepresentation['strides2'] = strides2 - return ctxt, True diff --git a/DeeployTest/test_snitch_config.py b/DeeployTest/test_snitch_config.py index c132abf9fb..1a16cb8425 100644 --- a/DeeployTest/test_snitch_config.py +++ b/DeeployTest/test_snitch_config.py @@ -14,7 +14,6 @@ "Kernels/FP32/Hardswish", "Kernels/FP32/MatMul", "Kernels/FP32/Mul", - "Kernels/FP32/RMSNorm/separate_ops", "Kernels/FP32/RMSNorm/single_fused_op", "Kernels/FP32/Softmax/Regular", "Kernels/Integer/Add/Large", diff --git a/DeeployTest/test_snitch_tiled_config.py b/DeeployTest/test_snitch_tiled_config.py index 2a9a564588..d40521f8d4 100644 --- a/DeeployTest/test_snitch_tiled_config.py +++ b/DeeployTest/test_snitch_tiled_config.py @@ -14,7 +14,6 @@ "Kernels/FP32/Div": [2000, 5000, 10000], "Kernels/FP32/Hardswish": [2000, 5000, 10000], "Kernels/FP32/Mul": [2000, 5000, 10000], - "Kernels/FP32/RMSNorm/separate_ops": [2000, 5000, 10000], "Kernels/FP32/RMSNorm/single_fused_op": [2000, 5000, 10000], "Kernels/FP32/Softmax/Regular": [2000, 5000, 10000], "Kernels/FP32/GEMM/Regular": [2000, 5000, 10000], diff --git a/TargetLibraries/Snitch/src/MatMul_fp32.c b/TargetLibraries/Snitch/src/MatMul_fp32.c new file mode 100644 index 0000000000..337b735072 --- /dev/null +++ b/TargetLibraries/Snitch/src/MatMul_fp32.c @@ -0,0 +1,86 @@ +/* + * SPDX-FileCopyrightText: 2026 ETH Zurich and University of Bologna + * + * SPDX-License-Identifier: Apache-2.0 + */ + +#include "DeeploySnitchMath.h" + +/* + * Multi-core FP32 matrix multiplication (scalar, no SSR) + * + * Computes: Y = A * B + * A is M x N, B is N x O, Y is M x O + * All matrices in row-major layout. + * + * Splits M rows across compute cores internally. + * Uses a distinct function name to avoid being shadowed by + * the Generic single-core MatMul_fp32_fp32_fp32 (link order). + */ +void matmul_fp32_opt(const float32_t *__restrict__ pSrcA, + const float32_t *__restrict__ pSrcB, + float32_t *__restrict__ pDstY, uint32_t M, uint32_t N, + uint32_t O) { + + uint32_t core_id = snrt_global_compute_core_idx(); + uint32_t numThreads = snrt_global_compute_core_num(); + + uint32_t rows_per_core = M / numThreads; + uint32_t remainder = M % numThreads; + + uint32_t start_row, num_rows; + if (core_id < remainder) { + num_rows = rows_per_core + 1; + start_row = core_id * num_rows; + } else { + num_rows = rows_per_core; + start_row = core_id * rows_per_core + remainder; + } + + const uint32_t unroll = 8; + uint32_t O_block = O - (O % unroll); + + for (uint32_t i = start_row; i < start_row + num_rows; i++) { + uint32_t j; + for (j = 0; j < O_block; j += unroll) { + float32_t c0 = 0.0f; + float32_t c1 = 0.0f; + float32_t c2 = 0.0f; + float32_t c3 = 0.0f; + float32_t c4 = 0.0f; + float32_t c5 = 0.0f; + float32_t c6 = 0.0f; + float32_t c7 = 0.0f; + + for (uint32_t k = 0; k < N; k++) { + float32_t a = pSrcA[i * N + k]; + c0 += a * pSrcB[k * O + j + 0]; + c1 += a * pSrcB[k * O + j + 1]; + c2 += a * pSrcB[k * O + j + 2]; + c3 += a * pSrcB[k * O + j + 3]; + c4 += a * pSrcB[k * O + j + 4]; + c5 += a * pSrcB[k * O + j + 5]; + c6 += a * pSrcB[k * O + j + 6]; + c7 += a * pSrcB[k * O + j + 7]; + } + + pDstY[i * O + j + 0] = c0; + pDstY[i * O + j + 1] = c1; + pDstY[i * O + j + 2] = c2; + pDstY[i * O + j + 3] = c3; + pDstY[i * O + j + 4] = c4; + pDstY[i * O + j + 5] = c5; + pDstY[i * O + j + 6] = c6; + pDstY[i * O + j + 7] = c7; + } + + // Cleanup for remaining columns + for (; j < O; j++) { + float32_t sum = 0.0f; + for (uint32_t k = 0; k < N; k++) { + sum += pSrcA[i * N + k] * pSrcB[k * O + j]; + } + pDstY[i * O + j] = sum; + } + } +} From 7813684079708b9042d835ef919aedb38b811fb1 Mon Sep 17 00:00:00 2001 From: lee2716 Date: Wed, 18 Feb 2026 16:03:09 +0100 Subject: [PATCH 40/57] remove if (snrt_is_compute_core()) --- Deeploy/Targets/Snitch/Templates/TransposeTemplate.py | 2 -- 1 file changed, 2 deletions(-) diff --git a/Deeploy/Targets/Snitch/Templates/TransposeTemplate.py b/Deeploy/Targets/Snitch/Templates/TransposeTemplate.py index 9de7433918..e8e689d402 100644 --- a/Deeploy/Targets/Snitch/Templates/TransposeTemplate.py +++ b/Deeploy/Targets/Snitch/Templates/TransposeTemplate.py @@ -98,7 +98,6 @@ def alignToContext(self, ctxt: NetworkContext, referenceTemplate = SnitchTransposeTemplate(""" // Transpose ${data_in_shape} -> ${data_out_shape} (Name: ${nodeName}, Op: ${nodeOp}) -if (snrt_is_compute_core()) { ${tileHeader} % for idx, i in enumerate(perm): ${forLoops[idx]} @@ -107,5 +106,4 @@ def alignToContext(self, ctxt: NetworkContext, % for idx, i in enumerate(perm): } % endfor -} """) From 486551637ee8327abb82f94b4f1a8fd94525c241 Mon Sep 17 00:00:00 2001 From: lee2716 Date: Wed, 18 Feb 2026 16:56:43 +0100 Subject: [PATCH 41/57] fix:correct RMSNorm op count from 5*inputSize to 6*inputSize --- Deeploy/Targets/Generic/Layers.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Deeploy/Targets/Generic/Layers.py b/Deeploy/Targets/Generic/Layers.py index 3069f3ca60..dcc0273300 100644 --- a/Deeploy/Targets/Generic/Layers.py +++ b/Deeploy/Targets/Generic/Layers.py @@ -744,7 +744,7 @@ def computeOps(self): # e. Normalized = Div(X, RMS) => inputSize ops # f. Y = Mul(Normalized, Scale) => 0 if all(Scale == 1.0), else inputSize ops scale_ops = 0 if (scale == 1.0).all() else inputSize - ops = 5 * inputSize - 3 * NormalizedAxesSize + scale_ops + ops = 6 * inputSize - 3 * NormalizedAxesSize + scale_ops return ops From fc8ea3f2dd86b3020005d709fead33f1e6aace31 Mon Sep 17 00:00:00 2001 From: lee2716 Date: Wed, 18 Feb 2026 17:38:22 +0100 Subject: [PATCH 42/57] refactor: use SkipTransformer with pointer assignment for Reshape, avoiding unnecessary DMA and memcpy --- Deeploy/Targets/Snitch/Bindings.py | 13 +++++++--- .../Snitch/Templates/ReshapeTemplate.py | 26 ++++++------------- 2 files changed, 18 insertions(+), 21 deletions(-) diff --git a/Deeploy/Targets/Snitch/Bindings.py b/Deeploy/Targets/Snitch/Bindings.py index cb58f7fc53..a0fa1f06b0 100644 --- a/Deeploy/Targets/Snitch/Bindings.py +++ b/Deeploy/Targets/Snitch/Bindings.py @@ -7,7 +7,7 @@ from Deeploy.AbstractDataTypes import PointerClass from Deeploy.CommonExtensions.CodeTransformationPasses.Closure import ClosureGeneration, MemoryAwareClosureGeneration from Deeploy.CommonExtensions.CodeTransformationPasses.MemoryAllocation import ArgumentStructGeneration, \ - MemoryManagementGeneration + MemoryManagementGeneration, MemoryPassthroughGeneration from Deeploy.CommonExtensions.DataTypes import float32_t, int8_t, int32_t, uint8_t from Deeploy.DeeployTypes import CodeTransformation, NodeBinding from Deeploy.FutureExtension.CodeTransformationPasses.FutureCodeTransformation import FutureGeneration @@ -43,6 +43,13 @@ MemoryManagementGeneration(), FutureGeneration()]) +SkipTransformer = CodeTransformation( + [SnitchSynchCoresPass(), + ArgumentStructGeneration(), + MemoryPassthroughGeneration("L.*"), + MemoryPassthroughGeneration(), + FutureGeneration()]) + TiledTransformer = CodeTransformation([ SnitchCoreFilterPass("compute"), TilingVariableReplacement("L1"), @@ -184,10 +191,10 @@ TransposeTemplate.referenceTemplate, BasicTransformer) ] -# Reshape Bindings (Tiled) +# Reshape Bindings (pointer passthrough, no DMA needed) SnitchReshapeBindings = [ NodeBinding(ReshapeChecker([PointerClass(float32_t)], [PointerClass(float32_t)]), ReshapeTemplate.referenceTemplate, - TiledTransformer) + SkipTransformer) ] # Gather Bindings (Tiled) diff --git a/Deeploy/Targets/Snitch/Templates/ReshapeTemplate.py b/Deeploy/Targets/Snitch/Templates/ReshapeTemplate.py index 27b40b0370..0e1fdf81b1 100644 --- a/Deeploy/Targets/Snitch/Templates/ReshapeTemplate.py +++ b/Deeploy/Targets/Snitch/Templates/ReshapeTemplate.py @@ -4,8 +4,6 @@ from typing import Dict, List, Tuple -import numpy as np - from Deeploy.DeeployTypes import NetworkContext, OperatorRepresentation, VariableBuffer from Deeploy.Targets.Generic.Templates.ReshapeTemplate import _ReshapeTemplate @@ -17,28 +15,20 @@ def alignToContext(self, ctxt: NetworkContext, ctxt, operatorRepresentation, _ = super().alignToContext(ctxt, operatorRepresentation) - # Calculate size for multi-core parallel copy bufferIn = ctxt.lookup(operatorRepresentation['data_in']) assert isinstance(bufferIn, VariableBuffer) - operatorRepresentation['size'] = int(np.prod(bufferIn.shape)) + bufferOut = ctxt.lookup(operatorRepresentation['data_out']) + assert isinstance(bufferOut, VariableBuffer) + + # Set alias so input and output share the same memory + bufferOut._alias = bufferIn.name return ctxt, operatorRepresentation, [] -# Reshape uses multi-core parallel copy -# When aliases work (internal nodes), this copies between same memory (no-op effect) -# When aliases don't work (global I/O), this copies data correctly +# Reshape only reinterprets tensor shape without modifying data. +# Uses SkipTransformer (no DMA), consistent with PULPOpen. referenceTemplate = _SnitchReshapeTemplate(""" // Reshape (Name: ${nodeName}, Op: ${nodeOp}) -{ - uint32_t core_id = snrt_cluster_core_idx(); - uint32_t num_cores = snrt_cluster_compute_core_num(); - uint32_t total = ${size}; - uint32_t chunk = total / num_cores; - uint32_t start = core_id * chunk; - uint32_t end = (core_id == num_cores - 1) ? total : start + chunk; - for (uint32_t i = start; i < end; i++) { - ${data_out}[i] = ${data_in}[i]; - } -} +${data_out} = ${data_in}; """) From b6b6eb579bd1d5cb56894f8e2fcc723bf9abe90d Mon Sep 17 00:00:00 2001 From: lee2716 Date: Wed, 18 Feb 2026 17:45:08 +0100 Subject: [PATCH 43/57] simplify: remove unused broadcasting logic from FloatDiv/Mul TileConstraints, support scalar and element-wise only --- .../TileConstraints/FloatDivTileConstraint.py | 90 ++++++------------- .../TileConstraints/FloatMulTileConstraint.py | 90 ++++++------------- 2 files changed, 58 insertions(+), 122 deletions(-) diff --git a/Deeploy/Targets/Snitch/TileConstraints/FloatDivTileConstraint.py b/Deeploy/Targets/Snitch/TileConstraints/FloatDivTileConstraint.py index 2a1b9917bb..82c012680e 100644 --- a/Deeploy/Targets/Snitch/TileConstraints/FloatDivTileConstraint.py +++ b/Deeploy/Targets/Snitch/TileConstraints/FloatDivTileConstraint.py @@ -17,11 +17,7 @@ class FloatDivTileConstraint(TileConstraint): - """Tile constraint for FP32 Div operation with ONNX broadcasting support. - - Supports general NumPy-style broadcasting: both inputs can have any - dimension, including scalar, partial broadcasting, and full element-wise. - """ + """Tile constraint for FP32 Div: supports scalar and element-wise cases.""" dataIn1Name = "A" dataIn2Name = "B" @@ -34,41 +30,32 @@ def addGeometricalConstraint(cls, tilerModel: TilerModel, parseDict: Dict, ctxt: inputBuffer2Name = parseDict[cls.dataIn2Name] outputBufferName = parseDict[cls.dataOutName] - input1Shape = list(ctxt.lookup(inputBuffer1Name).shape) - input2Shape = list(ctxt.lookup(inputBuffer2Name).shape) - outputShape = list(ctxt.lookup(outputBufferName).shape) - - # Add all tensors to model tilerModel.addTensorDimToModel(ctxt, inputBuffer1Name) tilerModel.addTensorDimToModel(ctxt, inputBuffer2Name) tilerModel.addTensorDimToModel(ctxt, outputBufferName) - outNdim = len(outputShape) - - # Pad input shapes from the left to match output ndim (ONNX broadcasting) - padded1 = [1] * (outNdim - len(input1Shape)) + input1Shape - padded2 = [1] * (outNdim - len(input2Shape)) + input2Shape - - for outDim in range(outNdim): - outputDimVar = tilerModel.getTensorDimVar(tensorName = outputBufferName, dimIdx = outDim) - - # Input 1: map output dim to actual tensor dim - in1ActualDim = outDim - (outNdim - len(input1Shape)) - if in1ActualDim >= 0: - in1DimVar = tilerModel.getTensorDimVar(tensorName = inputBuffer1Name, dimIdx = in1ActualDim) - if padded1[outDim] == 1: - tilerModel.addConstraint(in1DimVar == 1) - else: - tilerModel.addConstraint(in1DimVar == outputDimVar) - - # Input 2: map output dim to actual tensor dim - in2ActualDim = outDim - (outNdim - len(input2Shape)) - if in2ActualDim >= 0: - in2DimVar = tilerModel.getTensorDimVar(tensorName = inputBuffer2Name, dimIdx = in2ActualDim) - if padded2[outDim] == 1: - tilerModel.addConstraint(in2DimVar == 1) - else: - tilerModel.addConstraint(in2DimVar == outputDimVar) + input1Shape = list(ctxt.lookup(inputBuffer1Name).shape) + input2Shape = list(ctxt.lookup(inputBuffer2Name).shape) + + is_scalar = (np.prod(input2Shape) == 1) + + if is_scalar: + # Scalar: tile A and C together, B stays fixed + for dim in range(len(input1Shape)): + in1Var = tilerModel.getTensorDimVar(tensorName = inputBuffer1Name, dimIdx = dim) + outVar = tilerModel.getTensorDimVar(tensorName = outputBufferName, dimIdx = dim) + tilerModel.addConstraint(in1Var == outVar) + for dim in range(len(input2Shape)): + in2Var = tilerModel.getTensorDimVar(tensorName = inputBuffer2Name, dimIdx = dim) + tilerModel.addConstraint(in2Var == input2Shape[dim]) + else: + # Element-wise: all three tensors tiled identically + for dim in range(len(input1Shape)): + in1Var = tilerModel.getTensorDimVar(tensorName = inputBuffer1Name, dimIdx = dim) + in2Var = tilerModel.getTensorDimVar(tensorName = inputBuffer2Name, dimIdx = dim) + outVar = tilerModel.getTensorDimVar(tensorName = outputBufferName, dimIdx = dim) + tilerModel.addConstraint(in1Var == in2Var) + tilerModel.addConstraint(in1Var == outVar) return tilerModel @@ -86,38 +73,19 @@ def serializeTilingSolution( replacements = {"size": []} replacementTypes = {"size": PointerClass(uint16_t)} - input1Shape = list(ctxt.lookup(operatorRepresentation[cls.dataIn1Name]).shape) input2Shape = list(ctxt.lookup(operatorRepresentation[cls.dataIn2Name]).shape) - outputShape = list(ctxt.lookup(operatorRepresentation[cls.dataOutName]).shape) - - outNdim = len(outputShape) - padded1 = [1] * (outNdim - len(input1Shape)) + input1Shape - padded2 = [1] * (outNdim - len(input2Shape)) + input2Shape - - def _deriveInputCube(outputCube, inputShape, paddedShape): - """Derive an input HyperRectangle from an output cube, respecting broadcasting.""" - offset = [] - dims = [] - for outDim in range(outNdim): - actualDim = outDim - (outNdim - len(inputShape)) - if actualDim >= 0: - if paddedShape[outDim] == 1: - offset.append(0) - dims.append(1) - else: - offset.append(outputCube.offset[outDim]) - dims.append(outputCube.dims[outDim]) - return HyperRectangle(tuple(offset), tuple(dims)) + is_scalar = (np.prod(input2Shape) == 1) inputLoadSchedule = [] outputLoadSchedule = [] for cube in outputCubes: replacements["size"].append(np.prod(cube.dims)) - - in1Cube = _deriveInputCube(cube, input1Shape, padded1) - in2Cube = _deriveInputCube(cube, input2Shape, padded2) - inputLoadSchedule.append({cls.dataIn1Name: in1Cube, cls.dataIn2Name: in2Cube}) + if is_scalar: + in2Cube = HyperRectangle(tuple([0] * len(input2Shape)), tuple(input2Shape)) + inputLoadSchedule.append({cls.dataIn1Name: cube, cls.dataIn2Name: in2Cube}) + else: + inputLoadSchedule.append({cls.dataIn1Name: cube, cls.dataIn2Name: cube}) for out in outputCubes: outputLoadSchedule.append({cls.dataOutName: out}) diff --git a/Deeploy/Targets/Snitch/TileConstraints/FloatMulTileConstraint.py b/Deeploy/Targets/Snitch/TileConstraints/FloatMulTileConstraint.py index 0feae54d6f..2247aef874 100644 --- a/Deeploy/Targets/Snitch/TileConstraints/FloatMulTileConstraint.py +++ b/Deeploy/Targets/Snitch/TileConstraints/FloatMulTileConstraint.py @@ -17,11 +17,7 @@ class FloatMulTileConstraint(TileConstraint): - """Tile constraint for FP32 Mul operation with ONNX broadcasting support. - - Supports general NumPy-style broadcasting: both inputs can have any - dimension, including scalar, partial broadcasting, and full element-wise. - """ + """Tile constraint for FP32 Mul: supports scalar and element-wise cases.""" dataIn1Name = "A" dataIn2Name = "B" @@ -34,41 +30,32 @@ def addGeometricalConstraint(cls, tilerModel: TilerModel, parseDict: Dict, ctxt: inputBuffer2Name = parseDict[cls.dataIn2Name] outputBufferName = parseDict[cls.dataOutName] - input1Shape = list(ctxt.lookup(inputBuffer1Name).shape) - input2Shape = list(ctxt.lookup(inputBuffer2Name).shape) - outputShape = list(ctxt.lookup(outputBufferName).shape) - - # Add all tensors to model tilerModel.addTensorDimToModel(ctxt, inputBuffer1Name) tilerModel.addTensorDimToModel(ctxt, inputBuffer2Name) tilerModel.addTensorDimToModel(ctxt, outputBufferName) - outNdim = len(outputShape) - - # Pad input shapes from the left to match output ndim (ONNX broadcasting) - padded1 = [1] * (outNdim - len(input1Shape)) + input1Shape - padded2 = [1] * (outNdim - len(input2Shape)) + input2Shape - - for outDim in range(outNdim): - outputDimVar = tilerModel.getTensorDimVar(tensorName = outputBufferName, dimIdx = outDim) - - # Input 1: map output dim to actual tensor dim - in1ActualDim = outDim - (outNdim - len(input1Shape)) - if in1ActualDim >= 0: - in1DimVar = tilerModel.getTensorDimVar(tensorName = inputBuffer1Name, dimIdx = in1ActualDim) - if padded1[outDim] == 1: - tilerModel.addConstraint(in1DimVar == 1) - else: - tilerModel.addConstraint(in1DimVar == outputDimVar) - - # Input 2: map output dim to actual tensor dim - in2ActualDim = outDim - (outNdim - len(input2Shape)) - if in2ActualDim >= 0: - in2DimVar = tilerModel.getTensorDimVar(tensorName = inputBuffer2Name, dimIdx = in2ActualDim) - if padded2[outDim] == 1: - tilerModel.addConstraint(in2DimVar == 1) - else: - tilerModel.addConstraint(in2DimVar == outputDimVar) + input1Shape = list(ctxt.lookup(inputBuffer1Name).shape) + input2Shape = list(ctxt.lookup(inputBuffer2Name).shape) + + is_scalar = (np.prod(input2Shape) == 1) + + if is_scalar: + # Scalar: tile A and C together, B stays fixed + for dim in range(len(input1Shape)): + in1Var = tilerModel.getTensorDimVar(tensorName = inputBuffer1Name, dimIdx = dim) + outVar = tilerModel.getTensorDimVar(tensorName = outputBufferName, dimIdx = dim) + tilerModel.addConstraint(in1Var == outVar) + for dim in range(len(input2Shape)): + in2Var = tilerModel.getTensorDimVar(tensorName = inputBuffer2Name, dimIdx = dim) + tilerModel.addConstraint(in2Var == input2Shape[dim]) + else: + # Element-wise: all three tensors tiled identically + for dim in range(len(input1Shape)): + in1Var = tilerModel.getTensorDimVar(tensorName = inputBuffer1Name, dimIdx = dim) + in2Var = tilerModel.getTensorDimVar(tensorName = inputBuffer2Name, dimIdx = dim) + outVar = tilerModel.getTensorDimVar(tensorName = outputBufferName, dimIdx = dim) + tilerModel.addConstraint(in1Var == in2Var) + tilerModel.addConstraint(in1Var == outVar) return tilerModel @@ -86,38 +73,19 @@ def serializeTilingSolution( replacements = {"size": []} replacementTypes = {"size": PointerClass(uint16_t)} - input1Shape = list(ctxt.lookup(operatorRepresentation[cls.dataIn1Name]).shape) input2Shape = list(ctxt.lookup(operatorRepresentation[cls.dataIn2Name]).shape) - outputShape = list(ctxt.lookup(operatorRepresentation[cls.dataOutName]).shape) - - outNdim = len(outputShape) - padded1 = [1] * (outNdim - len(input1Shape)) + input1Shape - padded2 = [1] * (outNdim - len(input2Shape)) + input2Shape - - def _deriveInputCube(outputCube, inputShape, paddedShape): - """Derive an input HyperRectangle from an output cube, respecting broadcasting.""" - offset = [] - dims = [] - for outDim in range(outNdim): - actualDim = outDim - (outNdim - len(inputShape)) - if actualDim >= 0: - if paddedShape[outDim] == 1: - offset.append(0) - dims.append(1) - else: - offset.append(outputCube.offset[outDim]) - dims.append(outputCube.dims[outDim]) - return HyperRectangle(tuple(offset), tuple(dims)) + is_scalar = (np.prod(input2Shape) == 1) inputLoadSchedule = [] outputLoadSchedule = [] for cube in outputCubes: replacements["size"].append(np.prod(cube.dims)) - - in1Cube = _deriveInputCube(cube, input1Shape, padded1) - in2Cube = _deriveInputCube(cube, input2Shape, padded2) - inputLoadSchedule.append({cls.dataIn1Name: in1Cube, cls.dataIn2Name: in2Cube}) + if is_scalar: + in2Cube = HyperRectangle(tuple([0] * len(input2Shape)), tuple(input2Shape)) + inputLoadSchedule.append({cls.dataIn1Name: cube, cls.dataIn2Name: in2Cube}) + else: + inputLoadSchedule.append({cls.dataIn1Name: cube, cls.dataIn2Name: cube}) for out in outputCubes: outputLoadSchedule.append({cls.dataOutName: out}) From 4e8448b031075fafa4df497ac6546a75d6b3f2f1 Mon Sep 17 00:00:00 2001 From: lee2716 Date: Wed, 18 Feb 2026 17:53:37 +0100 Subject: [PATCH 44/57] cleanup: remove unused BasicTransformer and Basic*Bindings dead code --- Deeploy/Targets/Snitch/Bindings.py | 47 ------------------------------ 1 file changed, 47 deletions(-) diff --git a/Deeploy/Targets/Snitch/Bindings.py b/Deeploy/Targets/Snitch/Bindings.py index a0fa1f06b0..cc092aac44 100644 --- a/Deeploy/Targets/Snitch/Bindings.py +++ b/Deeploy/Targets/Snitch/Bindings.py @@ -37,12 +37,6 @@ startRegion = "L2", endRegion = "L1") -BasicTransformer = CodeTransformation( - [SnitchSynchCoresPass(), - ArgumentStructGeneration(), - MemoryManagementGeneration(), - FutureGeneration()]) - SkipTransformer = CodeTransformation( [SnitchSynchCoresPass(), ArgumentStructGeneration(), @@ -92,12 +86,6 @@ FloatAddTemplate, TiledTransformer) ] -# Basic (non-tiled) FP32 Add Bindings -BasicAddBindings = [ - NodeBinding(AddChecker([PointerClass(float32_t), PointerClass(float32_t)], [PointerClass(float32_t)]), - FloatAddTemplate, BasicTransformer) -] - SnitchGemmBindings = [ NodeBinding( GEMMChecker([PointerClass(int8_t), PointerClass(int8_t), @@ -119,54 +107,26 @@ ], [PointerClass(int8_t)]), SnitchRqGemm_Template, TiledTransformer) ] -# RMSNorm Bindings (Tiled) SnitchRMSNormBindings = [ NodeBinding(RMSNormChecker([PointerClass(float32_t), PointerClass(float32_t)], [PointerClass(float32_t)]), FloatRMSNormTemplate, TiledTransformer) ] -# RMSNorm Bindings (Non-tiled) -BasicRMSNormBindings = [ - NodeBinding(RMSNormChecker([PointerClass(float32_t), PointerClass(float32_t)], [PointerClass(float32_t)]), - FloatRMSNormTemplate, BasicTransformer) -] - -# HardSwish Bindings (Tiled) SnitchHardSwishBindings = [ NodeBinding(HardswishChecker([PointerClass(float32_t)], [PointerClass(float32_t)]), FloatHardSwishTemplate, TiledTransformer) ] -# HardSwish Bindings (Non-tiled) -BasicHardSwishBindings = [ - NodeBinding(HardswishChecker([PointerClass(float32_t)], [PointerClass(float32_t)]), FloatHardSwishTemplate, - BasicTransformer) -] - -# Div Bindings (Tiled) SnitchDivBindings = [ NodeBinding(DivChecker([PointerClass(float32_t), PointerClass(float32_t)], [PointerClass(float32_t)]), FloatDivTemplate, TiledTransformer) ] -# Div Bindings (Non-tiled) -BasicDivBindings = [ - NodeBinding(DivChecker([PointerClass(float32_t), PointerClass(float32_t)], [PointerClass(float32_t)]), - FloatDivTemplate, BasicTransformer) -] - -# Mul Bindings (Tiled) SnitchMulBindings = [ NodeBinding(MulChecker([PointerClass(float32_t), PointerClass(float32_t)], [PointerClass(float32_t)]), FloatMulTemplate, TiledTransformer) ] -# Mul Bindings (Non-tiled) -BasicMulBindings = [ - NodeBinding(MulChecker([PointerClass(float32_t), PointerClass(float32_t)], [PointerClass(float32_t)]), - FloatMulTemplate, BasicTransformer) -] - # MatMul Bindings (Tiled) SnitchMatMulBindings = [ NodeBinding(MatMulChecker([PointerClass(float32_t), PointerClass(float32_t)], [PointerClass(float32_t)]), @@ -179,18 +139,11 @@ ConcatTemplate.referenceTemplate, TiledTransformer) ] -# Transpose Bindings (Tiled) SnitchTransposeBindings = [ NodeBinding(TransposeChecker([PointerClass(float32_t)], [PointerClass(float32_t)]), TransposeTemplate.referenceTemplate, TiledTransformer) ] -# Transpose Bindings (Non-tiled, multi-core) -BasicSnitchTransposeBindings = [ - NodeBinding(TransposeChecker([PointerClass(float32_t)], [PointerClass(float32_t)]), - TransposeTemplate.referenceTemplate, BasicTransformer) -] - # Reshape Bindings (pointer passthrough, no DMA needed) SnitchReshapeBindings = [ NodeBinding(ReshapeChecker([PointerClass(float32_t)], [PointerClass(float32_t)]), ReshapeTemplate.referenceTemplate, From 7003801bac2a2054379ff0cd3ec62768aa369d55 Mon Sep 17 00:00:00 2001 From: lee2716 Date: Thu, 19 Feb 2026 16:51:48 +0100 Subject: [PATCH 45/57] fix CI test of snitch --- .github/workflows/ci-platform-snitch.yml | 2 +- TargetLibraries/Snitch/inc/DeeploySnitchMath.h | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/ci-platform-snitch.yml b/.github/workflows/ci-platform-snitch.yml index 703a42792d..36b105a558 100644 --- a/.github/workflows/ci-platform-snitch.yml +++ b/.github/workflows/ci-platform-snitch.yml @@ -35,4 +35,4 @@ jobs: with: runner: ${{ needs.select-env.outputs.runner }} docker-image: ${{ needs.select-env.outputs.image }} - pytest-marker: "kernels or models" + pytest-marker: "(kernels or models)" diff --git a/TargetLibraries/Snitch/inc/DeeploySnitchMath.h b/TargetLibraries/Snitch/inc/DeeploySnitchMath.h index 1305ba6bff..ab422573c7 100644 --- a/TargetLibraries/Snitch/inc/DeeploySnitchMath.h +++ b/TargetLibraries/Snitch/inc/DeeploySnitchMath.h @@ -26,6 +26,7 @@ #include "kernel/Add.h" #include "kernel/Div.h" #include "kernel/Gemm.h" +#include "kernel/Gemm_fp32.h" #include "kernel/HardSwish.h" #include "kernel/MatMul.h" #include "kernel/Mul.h" From e693be722dff2de5dd62ae753c3c65e01540d39a Mon Sep 17 00:00:00 2001 From: lee2716 Date: Thu, 19 Feb 2026 17:03:35 +0100 Subject: [PATCH 46/57] =?UTF-8?q?fix:=20add=20int8=E2=86=92int32=20MatMul?= =?UTF-8?q?=20binding=20to=20fix=20Snitch=20Integer=20MatMul=20CI=20test?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The binding was lost when switching from BasicMatMulBindings to Snitch-specific SnitchMatMulBindings, which only had FP32 MatMul. --- Deeploy/Targets/Snitch/Bindings.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/Deeploy/Targets/Snitch/Bindings.py b/Deeploy/Targets/Snitch/Bindings.py index cc092aac44..993176320b 100644 --- a/Deeploy/Targets/Snitch/Bindings.py +++ b/Deeploy/Targets/Snitch/Bindings.py @@ -11,7 +11,7 @@ from Deeploy.CommonExtensions.DataTypes import float32_t, int8_t, int32_t, uint8_t from Deeploy.DeeployTypes import CodeTransformation, NodeBinding from Deeploy.FutureExtension.CodeTransformationPasses.FutureCodeTransformation import FutureGeneration -from Deeploy.Targets.Generic.Templates import ConcatTemplate, iNoNormTemplate +from Deeploy.Targets.Generic.Templates import ConcatTemplate, MatMulTemplate, iNoNormTemplate from Deeploy.Targets.Generic.TypeCheckers import AddChecker, ConcatChecker, DivChecker, GatherChecker, GEMMChecker, \ HardswishChecker, MatMulChecker, MulChecker, ReshapeChecker, RMSNormChecker, RQAddChecker, SoftmaxChecker, \ TransposeChecker, iNoNormChecker @@ -129,6 +129,8 @@ # MatMul Bindings (Tiled) SnitchMatMulBindings = [ + NodeBinding(MatMulChecker([PointerClass(int8_t), PointerClass(int8_t)], [PointerClass(int32_t)]), + MatMulTemplate.referenceTemplate, TiledTransformer), NodeBinding(MatMulChecker([PointerClass(float32_t), PointerClass(float32_t)], [PointerClass(float32_t)]), FloatMatMulTemplate.referenceTemplate, TiledTransformer) ] From 1633a71efd664036d676723ec061de550994e8d4 Mon Sep 17 00:00:00 2001 From: lee2716 Date: Thu, 19 Feb 2026 17:12:27 +0100 Subject: [PATCH 47/57] fix CI test of snitch --- TargetLibraries/Snitch/inc/DeeploySnitchMath.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/TargetLibraries/Snitch/inc/DeeploySnitchMath.h b/TargetLibraries/Snitch/inc/DeeploySnitchMath.h index ab422573c7..9cc873f04b 100644 --- a/TargetLibraries/Snitch/inc/DeeploySnitchMath.h +++ b/TargetLibraries/Snitch/inc/DeeploySnitchMath.h @@ -12,9 +12,9 @@ #include #include -#define BEGIN_SINGLE_CORE if (core_id == 0) { +#define BEGIN_SINGLE_CORE if (snrt_cluster_core_idx() == 0) { #define END_SINGLE_CORE } -#define SINGLE_CORE if (core_id == 0) +#define SINGLE_CORE if (snrt_cluster_core_idx() == 0) #include "CycleCounter.h" #include "macros.h" From 0a66cf49c7b32ba111a216efd566012b6488b34a Mon Sep 17 00:00:00 2001 From: lee2716 Date: Thu, 19 Feb 2026 17:43:22 +0100 Subject: [PATCH 48/57] refactor: reuse Generic GatherTemplate and revert NOPTileConstraint - Switch Snitch GatherTemplate to Generic version (identical after macros fix, removes code duplication) - Revert NOPTileConstraint.py to devel (serializeTilingSolution not needed since Snitch Reshape uses SkipTransformer) --- .../TileConstraints/NOPTileConstraint.py | 44 +------------------ Deeploy/Targets/Snitch/Bindings.py | 4 +- 2 files changed, 4 insertions(+), 44 deletions(-) diff --git a/Deeploy/Targets/Generic/TileConstraints/NOPTileConstraint.py b/Deeploy/Targets/Generic/TileConstraints/NOPTileConstraint.py index 4dd487b3aa..d24abb4ba5 100644 --- a/Deeploy/Targets/Generic/TileConstraints/NOPTileConstraint.py +++ b/Deeploy/Targets/Generic/TileConstraints/NOPTileConstraint.py @@ -2,18 +2,11 @@ # # SPDX-License-Identifier: Apache-2.0 -from typing import Dict, List, Tuple +from typing import Dict, List -import numpy as np - -from Deeploy.AbstractDataTypes import PointerClass -from Deeploy.CommonExtensions.DataTypes import uint16_t -from Deeploy.DeeployTypes import NetworkContext, OperatorRepresentation -from Deeploy.TilingExtension.MemoryConstraints import NodeMemoryConstraint +from Deeploy.DeeployTypes import NetworkContext from Deeploy.TilingExtension.TileConstraint import TileConstraint from Deeploy.TilingExtension.TilerModel import TilerModel -from Deeploy.TilingExtension.TilingCodegen import AbsoluteHyperRectangle, HyperRectangle, TilingSchedule, \ - VariableReplacementScheme class NOPTileConstraint(TileConstraint): @@ -49,36 +42,3 @@ def addGeometricalConstraint(tilerModel: TilerModel, parseDict: Dict, ctxt: Netw ctxt.lookup(bufferName)._deploy = False return tilerModel - - @classmethod - def serializeTilingSolution( - cls, tilingSolution: NodeMemoryConstraint, absoluteOutputCubes: List[AbsoluteHyperRectangle], - targetMemLevel: str, ctxt: NetworkContext, - operatorRepresentation: OperatorRepresentation) -> Tuple[VariableReplacementScheme, TilingSchedule]: - outputCubes = [cube.rectangle for cube in absoluteOutputCubes] - - addrNames = ['data_in', 'data_out'] - inputBaseOffsets, outputBaseOffsets = cls.extractBaseAddr(tilingSolution, targetMemLevel, - operatorRepresentation, addrNames) - - inputName = operatorRepresentation['data_in'] - inputShape = ctxt.lookup(inputName).shape - - replacements = {"size": []} - replacementTypes = {"size": PointerClass(uint16_t)} - - inputLoadSchedule = [] - outputLoadSchedule = [] - - for cube in outputCubes: - replacements["size"].append(np.prod(cube.dims)) - inputCube = HyperRectangle(tuple([0] * len(inputShape)), tuple(inputShape)) - inputLoadSchedule.append({"data_in": inputCube}) - - for out in outputCubes: - outputLoadSchedule.append({"data_out": out}) - - tilingSchedule = TilingSchedule(inputBaseOffsets, outputBaseOffsets, inputLoadSchedule, outputLoadSchedule) - variableReplacementSchedule = VariableReplacementScheme(replacements, replacementTypes) - - return variableReplacementSchedule, tilingSchedule diff --git a/Deeploy/Targets/Snitch/Bindings.py b/Deeploy/Targets/Snitch/Bindings.py index 993176320b..f3ecd945be 100644 --- a/Deeploy/Targets/Snitch/Bindings.py +++ b/Deeploy/Targets/Snitch/Bindings.py @@ -11,14 +11,14 @@ from Deeploy.CommonExtensions.DataTypes import float32_t, int8_t, int32_t, uint8_t from Deeploy.DeeployTypes import CodeTransformation, NodeBinding from Deeploy.FutureExtension.CodeTransformationPasses.FutureCodeTransformation import FutureGeneration -from Deeploy.Targets.Generic.Templates import ConcatTemplate, MatMulTemplate, iNoNormTemplate +from Deeploy.Targets.Generic.Templates import ConcatTemplate, GatherTemplate, MatMulTemplate, iNoNormTemplate from Deeploy.Targets.Generic.TypeCheckers import AddChecker, ConcatChecker, DivChecker, GatherChecker, GEMMChecker, \ HardswishChecker, MatMulChecker, MulChecker, ReshapeChecker, RMSNormChecker, RQAddChecker, SoftmaxChecker, \ TransposeChecker, iNoNormChecker from Deeploy.Targets.Snitch.CodeTransformationPasses import SnitchClusterTiling, SnitchCoreFilterPass, \ SnitchSynchCoresPass from Deeploy.Targets.Snitch.DMA.SnitchDma import SnitchDma -from Deeploy.Targets.Snitch.Templates import AddTemplate, FloatGemmTemplate, FloatMatMulTemplate, GatherTemplate, \ +from Deeploy.Targets.Snitch.Templates import AddTemplate, FloatGemmTemplate, FloatMatMulTemplate, \ ReshapeTemplate, RQAddTemplate, TransposeTemplate, iSoftmaxTemplate from Deeploy.Targets.Snitch.Templates.FloatAddTemplate import referenceTemplate as FloatAddTemplate from Deeploy.Targets.Snitch.Templates.FloatDivTemplate import referenceTemplate as FloatDivTemplate From 6b357cfeef4360115a574f31c4557f9914108a75 Mon Sep 17 00:00:00 2001 From: lee2716 Date: Thu, 19 Feb 2026 18:13:08 +0100 Subject: [PATCH 49/57] refactor: simplify Snitch parsers, templates, and bindings - Simplify SnitchRMSNormParser/SnitchHardSwishParser via inheritance from Generic - Remove unnecessary TilingVariableReplacement("L2") from TiledTransformer - Delete unused Snitch GatherTemplate.py (now using Generic) - Remove redundant comments in FloatAdd/FloatMul/FloatRMSNorm templates --- Deeploy/Targets/Snitch/Bindings.py | 1 - Deeploy/Targets/Snitch/Parsers.py | 75 ++----------------- .../Snitch/Templates/FloatAddTemplate.py | 1 - .../Snitch/Templates/FloatMulTemplate.py | 1 - .../Snitch/Templates/FloatRMSNormTemplate.py | 1 - .../Snitch/Templates/GatherTemplate.py | 18 ----- 6 files changed, 7 insertions(+), 90 deletions(-) delete mode 100644 Deeploy/Targets/Snitch/Templates/GatherTemplate.py diff --git a/Deeploy/Targets/Snitch/Bindings.py b/Deeploy/Targets/Snitch/Bindings.py index f3ecd945be..4cb894bf93 100644 --- a/Deeploy/Targets/Snitch/Bindings.py +++ b/Deeploy/Targets/Snitch/Bindings.py @@ -53,7 +53,6 @@ SnitchClusterTiling("L2", "L1", SnitchDma()), ArgumentStructGeneration(), MemoryManagementGeneration("L1"), - TilingVariableReplacement("L2"), MemoryAwareFunctionCallClosure(writeback = False, generateStruct = True), MemoryManagementGeneration("L2"), MemoryManagementGeneration() diff --git a/Deeploy/Targets/Snitch/Parsers.py b/Deeploy/Targets/Snitch/Parsers.py index 1b01ac02d8..6e25c90a97 100644 --- a/Deeploy/Targets/Snitch/Parsers.py +++ b/Deeploy/Targets/Snitch/Parsers.py @@ -8,7 +8,8 @@ import onnx_graphsurgeon as gs from Deeploy.DeeployTypes import NetworkContext, NodeParser -from Deeploy.Targets.Generic.Parsers import AddParser, DivParser, GEMMParser, MulParser, RQGEMMParser +from Deeploy.Targets.Generic.Parsers import AddParser, DivParser, GEMMParser, MulParser, RQGEMMParser, \ + iHardswishParser, iRMSNormParser class SnitchGEMMParser(GEMMParser): @@ -75,16 +76,15 @@ def parseNodeCtxt(self, return newCtxt, True -class SnitchRMSNormParser(NodeParser): - - def __init__(self): - super().__init__() +class SnitchRMSNormParser(iRMSNormParser): + """FP32 RMSNorm parser. Inherits parseNodeCtxt from iRMSNormParser.""" def parseNode(self, node: gs.Node) -> bool: if node.op != 'RMSNorm': return False if len(node.inputs) != 2 or len(node.outputs) != 1: return False + eps = node.attrs.get('eps', node.attrs.get('epsilon', 1e-6)) self.operatorRepresentation['eps'] = f"{float(eps):.10e}f" @@ -92,80 +92,19 @@ def parseNode(self, node: gs.Node) -> bool: if stash_type != 1: raise ValueError(f"RMSNorm: only stash_type=1 (FP32) is supported, got {stash_type}") - axis = node.attrs.get('axis', -1) - self.operatorRepresentation['axis'] = axis - return True - def parseNodeCtxt(self, - ctxt: NetworkContext, - node: gs.Node, - channels_first: bool = True) -> Tuple[NetworkContext, bool]: - data_in = ctxt.lookup(node.inputs[0].name) - weight = ctxt.lookup(node.inputs[1].name) - data_out = ctxt.lookup(node.outputs[0].name) - - self.operatorRepresentation['data_in'] = data_in.name - self.operatorRepresentation['weight'] = weight.name - self.operatorRepresentation['data_out'] = data_out.name - self.operatorRepresentation['input_shape'] = list(data_in.shape) - self.operatorRepresentation['weight_shape'] = list(weight.shape) - self.operatorRepresentation['output_shape'] = list(data_out.shape) - self.operatorRepresentation['input_ndim'] = len(data_in.shape) - self.operatorRepresentation['weight_ndim'] = len(weight.shape) - - input_shape = list(data_in.shape) - axis = self.operatorRepresentation['axis'] - if axis < 0: - axis = len(input_shape) + axis - - self.operatorRepresentation['inputSize'] = int(np.prod(input_shape)) - self.operatorRepresentation['NormalizedAxesSize'] = int(np.prod(input_shape[axis:])) - self.operatorRepresentation['scale'] = node.inputs[1].values - - # Keep old keys for C template compatibility - self.operatorRepresentation['size'] = int(np.prod(input_shape)) - self.operatorRepresentation['lastDimLength'] = int(input_shape[-1]) - - return ctxt, True - - -class SnitchHardSwishParser(NodeParser): - def __init__(self): - super().__init__() +class SnitchHardSwishParser(iHardswishParser): + """FP32 HardSwish parser. Inherits parseNodeCtxt from iHardswishParser.""" def parseNode(self, node: gs.Node) -> bool: - """Parse HardSwish node.""" - if node.op != 'HardSwish': return False - - # Check basic structure: 1 input and 1 output if len(node.inputs) != 1 or len(node.outputs) != 1: return False - return True - def parseNodeCtxt(self, - ctxt: NetworkContext, - node: gs.Node, - channels_first: bool = True) -> Tuple[NetworkContext, bool]: - """Parse HardSwish node with network context.""" - - # Get input and output buffers - data_in = ctxt.lookup(node.inputs[0].name) - data_out = ctxt.lookup(node.outputs[0].name) - - # Store buffer names - self.operatorRepresentation['data_in'] = data_in.name - self.operatorRepresentation['data_out'] = data_out.name - - # Calculate size for memory allocation - self.operatorRepresentation['size'] = int(np.prod(data_in.shape)) - - return ctxt, True - class SnitchAddParser(AddParser): """Inherits from Generic AddParser which already handles broadcasting.""" diff --git a/Deeploy/Targets/Snitch/Templates/FloatAddTemplate.py b/Deeploy/Targets/Snitch/Templates/FloatAddTemplate.py index 5c5675c58f..20b72e4d27 100644 --- a/Deeploy/Targets/Snitch/Templates/FloatAddTemplate.py +++ b/Deeploy/Targets/Snitch/Templates/FloatAddTemplate.py @@ -1,7 +1,6 @@ # SPDX-FileCopyrightText: 2026 ETH Zurich and University of Bologna # # SPDX-License-Identifier: Apache-2.0 -# Deeploy/Targets/Snitch/Templates/FloatAddTemplate.py from typing import Dict, List, Tuple diff --git a/Deeploy/Targets/Snitch/Templates/FloatMulTemplate.py b/Deeploy/Targets/Snitch/Templates/FloatMulTemplate.py index 1e20279922..ec2ec8595c 100644 --- a/Deeploy/Targets/Snitch/Templates/FloatMulTemplate.py +++ b/Deeploy/Targets/Snitch/Templates/FloatMulTemplate.py @@ -33,7 +33,6 @@ def alignToContext(self, ctxt: NetworkContext, # Template for element-wise multiplication -# Note: MulParser uses A, B, C for input1, input2, output respectively FloatMulTemplateStr = r""" Mul_fp32(${A}, ${B}, ${C}, ${size}); """ diff --git a/Deeploy/Targets/Snitch/Templates/FloatRMSNormTemplate.py b/Deeploy/Targets/Snitch/Templates/FloatRMSNormTemplate.py index c6f611122d..f25bdf53c0 100644 --- a/Deeploy/Targets/Snitch/Templates/FloatRMSNormTemplate.py +++ b/Deeploy/Targets/Snitch/Templates/FloatRMSNormTemplate.py @@ -20,7 +20,6 @@ def alignToContext(self, ctxt: NetworkContext, data_in = ctxt.lookup(operatorRepresentation["data_in"]) input_shape = list(data_in.shape) - # C template uses ${size} and ${lastDimLength} operatorRepresentation["size"] = int(np.prod(input_shape)) operatorRepresentation["lastDimLength"] = operatorRepresentation["NormalizedAxesSize"] diff --git a/Deeploy/Targets/Snitch/Templates/GatherTemplate.py b/Deeploy/Targets/Snitch/Templates/GatherTemplate.py deleted file mode 100644 index fafde9c663..0000000000 --- a/Deeploy/Targets/Snitch/Templates/GatherTemplate.py +++ /dev/null @@ -1,18 +0,0 @@ -# SPDX-FileCopyrightText: 2026 ETH Zurich and University of Bologna -# -# SPDX-License-Identifier: Apache-2.0 - -from Deeploy.DeeployTypes import NodeTemplate - -# Use snrt_cluster_core_idx() == 0 instead of BEGIN_SINGLE_CORE macro to avoid core_id dependency -referenceTemplate = NodeTemplate(""" -// Gather (Name: ${nodeName}, Op: ${nodeOp}) -<% -width = int(data_in_type.referencedType.typeWidth/8) -%> -if (snrt_cluster_core_idx() == 0) { -for (uint32_t i=0; i<${batch}; ++i) { - memcpy(${data_out} + i * ${axis_length}, ${data_in} + i * ${batch_length} + ${index} * ${axis_length}, ${axis_length} * ${width}); -} -} -""") From c7b9771ad0b38900af43c6d572e1870ce9e3bbb2 Mon Sep 17 00:00:00 2001 From: lee2716 Date: Thu, 19 Feb 2026 18:41:40 +0100 Subject: [PATCH 50/57] refactor: address reviewer comments and reduce code duplication - CI: split snitch-kernels and snitch-models into separate jobs (matching Siracusa pattern) - Revert out-of-scope LoweringOptimizationPasses.py change - Merge duplicate FloatDivTileConstraint/FloatMulTileConstraint into FloatScalarBOPTileConstraint - Consolidate TileConstraint imports in Tiler.py - Remove unused imports (NodeParser in Parsers.py, BasicConcatBindings in Platform.py) --- .github/workflows/ci-platform-snitch.yml | 10 +- .../LoweringOptimizationPasses.py | 4 +- Deeploy/Targets/Snitch/Parsers.py | 2 +- Deeploy/Targets/Snitch/Platform.py | 4 +- .../TileConstraints/FloatMulTileConstraint.py | 96 ------------------- ...int.py => FloatScalarBOPTileConstraint.py} | 9 +- .../Snitch/TileConstraints/__init__.py | 5 +- Deeploy/Targets/Snitch/Tiler.py | 11 +-- 8 files changed, 27 insertions(+), 114 deletions(-) delete mode 100644 Deeploy/Targets/Snitch/TileConstraints/FloatMulTileConstraint.py rename Deeploy/Targets/Snitch/TileConstraints/{FloatDivTileConstraint.py => FloatScalarBOPTileConstraint.py} (92%) diff --git a/.github/workflows/ci-platform-snitch.yml b/.github/workflows/ci-platform-snitch.yml index 36b105a558..470d43efad 100644 --- a/.github/workflows/ci-platform-snitch.yml +++ b/.github/workflows/ci-platform-snitch.yml @@ -35,4 +35,12 @@ jobs: with: runner: ${{ needs.select-env.outputs.runner }} docker-image: ${{ needs.select-env.outputs.image }} - pytest-marker: "(kernels or models)" + pytest-marker: kernels + + snitch-models: + needs: select-env + uses: ./.github/workflows/_runner-snitch.yml + with: + runner: ${{ needs.select-env.outputs.runner }} + docker-image: ${{ needs.select-env.outputs.image }} + pytest-marker: models diff --git a/Deeploy/CommonExtensions/OptimizationPasses/TopologyOptimizationPasses/LoweringOptimizationPasses.py b/Deeploy/CommonExtensions/OptimizationPasses/TopologyOptimizationPasses/LoweringOptimizationPasses.py index 91f08e887f..aba6740d49 100644 --- a/Deeploy/CommonExtensions/OptimizationPasses/TopologyOptimizationPasses/LoweringOptimizationPasses.py +++ b/Deeploy/CommonExtensions/OptimizationPasses/TopologyOptimizationPasses/LoweringOptimizationPasses.py @@ -488,9 +488,7 @@ def _remove_global_output_reshape_fun(graph: gs.Graph, match: Match, name: str): node = next(iter((match.nodes_map.values()))) isGlobalOutput = len(node.outputs[0].outputs) == 0 - # Don't delete if the input is also a global input (i.e., single-node graph) - isGlobalInput = node.inputs[0] in graph.inputs - if isGlobalOutput and not isGlobalInput: + if isGlobalOutput: graph.deleteNode(node) return graph diff --git a/Deeploy/Targets/Snitch/Parsers.py b/Deeploy/Targets/Snitch/Parsers.py index 6e25c90a97..685ead2b28 100644 --- a/Deeploy/Targets/Snitch/Parsers.py +++ b/Deeploy/Targets/Snitch/Parsers.py @@ -7,7 +7,7 @@ import numpy as np import onnx_graphsurgeon as gs -from Deeploy.DeeployTypes import NetworkContext, NodeParser +from Deeploy.DeeployTypes import NetworkContext from Deeploy.Targets.Generic.Parsers import AddParser, DivParser, GEMMParser, MulParser, RQGEMMParser, \ iHardswishParser, iRMSNormParser diff --git a/Deeploy/Targets/Snitch/Platform.py b/Deeploy/Targets/Snitch/Platform.py index bfa9e3a73a..83dc778b17 100644 --- a/Deeploy/Targets/Snitch/Platform.py +++ b/Deeploy/Targets/Snitch/Platform.py @@ -9,8 +9,8 @@ from Deeploy.AbstractDataTypes import Pointer, PointerClass, VoidType from Deeploy.DeeployTypes import ConstantBuffer, DeploymentEngine, DeploymentPlatform, NodeMapper, NodeTemplate, \ StructBuffer, TopologyOptimizer, TransientBuffer, VariableBuffer -from Deeploy.Targets.Generic.Bindings import BasicConcatBindings, BasicLayerNormBindings, BasicPad1DBindings, \ - BasicPad2DBindings, BasicReshapeBindings, BasicRQIntegerDivBinding +from Deeploy.Targets.Generic.Bindings import BasicLayerNormBindings, BasicPad1DBindings, BasicPad2DBindings, \ + BasicReshapeBindings, BasicRQIntegerDivBinding from Deeploy.Targets.Generic.Layers import AddLayer, ConcatLayer, DivLayer, GatherLayer, GEMMLayer, HardSwishLayer, \ LayerNormLayer, MatMulLayer, MulLayer, PadLayer, ReshapeLayer, RMSNormLayer, RQGEMMLayer, RQIntegerDivLayer, \ SoftmaxLayer, TransposeLayer, iNoNormLayer diff --git a/Deeploy/Targets/Snitch/TileConstraints/FloatMulTileConstraint.py b/Deeploy/Targets/Snitch/TileConstraints/FloatMulTileConstraint.py deleted file mode 100644 index 2247aef874..0000000000 --- a/Deeploy/Targets/Snitch/TileConstraints/FloatMulTileConstraint.py +++ /dev/null @@ -1,96 +0,0 @@ -# SPDX-FileCopyrightText: 2026 ETH Zurich and University of Bologna -# -# SPDX-License-Identifier: Apache-2.0 - -from typing import Dict, List, Tuple - -import numpy as np - -from Deeploy.AbstractDataTypes import PointerClass -from Deeploy.CommonExtensions.DataTypes import uint16_t -from Deeploy.DeeployTypes import NetworkContext, OperatorRepresentation -from Deeploy.TilingExtension.MemoryConstraints import NodeMemoryConstraint -from Deeploy.TilingExtension.TileConstraint import TileConstraint -from Deeploy.TilingExtension.TilerModel import TilerModel -from Deeploy.TilingExtension.TilingCodegen import AbsoluteHyperRectangle, HyperRectangle, TilingSchedule, \ - VariableReplacementScheme - - -class FloatMulTileConstraint(TileConstraint): - """Tile constraint for FP32 Mul: supports scalar and element-wise cases.""" - - dataIn1Name = "A" - dataIn2Name = "B" - dataOutName = "C" - - @classmethod - def addGeometricalConstraint(cls, tilerModel: TilerModel, parseDict: Dict, ctxt: NetworkContext) -> TilerModel: - - inputBuffer1Name = parseDict[cls.dataIn1Name] - inputBuffer2Name = parseDict[cls.dataIn2Name] - outputBufferName = parseDict[cls.dataOutName] - - tilerModel.addTensorDimToModel(ctxt, inputBuffer1Name) - tilerModel.addTensorDimToModel(ctxt, inputBuffer2Name) - tilerModel.addTensorDimToModel(ctxt, outputBufferName) - - input1Shape = list(ctxt.lookup(inputBuffer1Name).shape) - input2Shape = list(ctxt.lookup(inputBuffer2Name).shape) - - is_scalar = (np.prod(input2Shape) == 1) - - if is_scalar: - # Scalar: tile A and C together, B stays fixed - for dim in range(len(input1Shape)): - in1Var = tilerModel.getTensorDimVar(tensorName = inputBuffer1Name, dimIdx = dim) - outVar = tilerModel.getTensorDimVar(tensorName = outputBufferName, dimIdx = dim) - tilerModel.addConstraint(in1Var == outVar) - for dim in range(len(input2Shape)): - in2Var = tilerModel.getTensorDimVar(tensorName = inputBuffer2Name, dimIdx = dim) - tilerModel.addConstraint(in2Var == input2Shape[dim]) - else: - # Element-wise: all three tensors tiled identically - for dim in range(len(input1Shape)): - in1Var = tilerModel.getTensorDimVar(tensorName = inputBuffer1Name, dimIdx = dim) - in2Var = tilerModel.getTensorDimVar(tensorName = inputBuffer2Name, dimIdx = dim) - outVar = tilerModel.getTensorDimVar(tensorName = outputBufferName, dimIdx = dim) - tilerModel.addConstraint(in1Var == in2Var) - tilerModel.addConstraint(in1Var == outVar) - - return tilerModel - - @classmethod - def serializeTilingSolution( - cls, tilingSolution: NodeMemoryConstraint, absoluteOutputCubes: List[AbsoluteHyperRectangle], - targetMemLevel: str, ctxt: NetworkContext, - operatorRepresentation: OperatorRepresentation) -> Tuple[VariableReplacementScheme, TilingSchedule]: - outputCubes = [cube.rectangle for cube in absoluteOutputCubes] - - addrNames = [cls.dataIn1Name, cls.dataIn2Name, cls.dataOutName] - inputBaseOffsets, outputBaseOffsets = cls.extractBaseAddr(tilingSolution, targetMemLevel, - operatorRepresentation, addrNames) - - replacements = {"size": []} - replacementTypes = {"size": PointerClass(uint16_t)} - - input2Shape = list(ctxt.lookup(operatorRepresentation[cls.dataIn2Name]).shape) - is_scalar = (np.prod(input2Shape) == 1) - - inputLoadSchedule = [] - outputLoadSchedule = [] - - for cube in outputCubes: - replacements["size"].append(np.prod(cube.dims)) - if is_scalar: - in2Cube = HyperRectangle(tuple([0] * len(input2Shape)), tuple(input2Shape)) - inputLoadSchedule.append({cls.dataIn1Name: cube, cls.dataIn2Name: in2Cube}) - else: - inputLoadSchedule.append({cls.dataIn1Name: cube, cls.dataIn2Name: cube}) - - for out in outputCubes: - outputLoadSchedule.append({cls.dataOutName: out}) - - tilingSchedule = TilingSchedule(inputBaseOffsets, outputBaseOffsets, inputLoadSchedule, outputLoadSchedule) - variableReplacementSchedule = VariableReplacementScheme(replacements, replacementTypes) - - return variableReplacementSchedule, tilingSchedule diff --git a/Deeploy/Targets/Snitch/TileConstraints/FloatDivTileConstraint.py b/Deeploy/Targets/Snitch/TileConstraints/FloatScalarBOPTileConstraint.py similarity index 92% rename from Deeploy/Targets/Snitch/TileConstraints/FloatDivTileConstraint.py rename to Deeploy/Targets/Snitch/TileConstraints/FloatScalarBOPTileConstraint.py index 82c012680e..9f51a8134e 100644 --- a/Deeploy/Targets/Snitch/TileConstraints/FloatDivTileConstraint.py +++ b/Deeploy/Targets/Snitch/TileConstraints/FloatScalarBOPTileConstraint.py @@ -16,8 +16,13 @@ VariableReplacementScheme -class FloatDivTileConstraint(TileConstraint): - """Tile constraint for FP32 Div: supports scalar and element-wise cases.""" +class FloatScalarBOPTileConstraint(TileConstraint): + """Tile constraint for binary operators with scalar broadcasting support. + + Extends BOPTileConstraint with scalar handling: when one input has size 1, + it is loaded in full (not tiled) while the other input and output are tiled together. + Used by FP32 Div and Mul operators. + """ dataIn1Name = "A" dataIn2Name = "B" diff --git a/Deeploy/Targets/Snitch/TileConstraints/__init__.py b/Deeploy/Targets/Snitch/TileConstraints/__init__.py index c58816f9df..1fcabd7305 100644 --- a/Deeploy/Targets/Snitch/TileConstraints/__init__.py +++ b/Deeploy/Targets/Snitch/TileConstraints/__init__.py @@ -3,7 +3,8 @@ # SPDX-License-Identifier: Apache-2.0 from . import * -from .FloatDivTileConstraint import * -from .FloatMulTileConstraint import * +from .FloatScalarBOPTileConstraint import * +from .GemmTileConstraint import * from .iNoNormTileConstraint import * from .iSoftmaxTileConstraint import * +from .RqGemmTileConstraint import * diff --git a/Deeploy/Targets/Snitch/Tiler.py b/Deeploy/Targets/Snitch/Tiler.py index 6d99624e34..c8c340d6b8 100644 --- a/Deeploy/Targets/Snitch/Tiler.py +++ b/Deeploy/Targets/Snitch/Tiler.py @@ -14,11 +14,8 @@ SnitchGatherBindings, SnitchGemmBindings, SnitchHardSwishBindings, SnitchiNoNormBindings, SnitchiSoftmaxBindings, \ SnitchMatMulBindings, SnitchMulBindings, SnitchReshapeBindings, SnitchRMSNormBindings, SnitchRQAddBindings, \ SnitchRqGemmBindings, SnitchTransposeBindings -from Deeploy.Targets.Snitch.TileConstraints import iNoNormTileConstraint, iSoftmaxTileConstraint -from Deeploy.Targets.Snitch.TileConstraints.FloatDivTileConstraint import FloatDivTileConstraint -from Deeploy.Targets.Snitch.TileConstraints.FloatMulTileConstraint import FloatMulTileConstraint -from Deeploy.Targets.Snitch.TileConstraints.GemmTileConstraint import GemmTileConstraint -from Deeploy.Targets.Snitch.TileConstraints.RqGemmTileConstraint import RqGemmTileConstraint +from Deeploy.Targets.Snitch.TileConstraints import FloatScalarBOPTileConstraint, GemmTileConstraint, \ + iNoNormTileConstraint, iSoftmaxTileConstraint, RqGemmTileConstraint from Deeploy.TilingExtension.TilerExtension import TilingReadyNodeBindings SnitchiSoftmaxTilingReadyBindings = TilingReadyNodeBindings(nodeBindings = SnitchiSoftmaxBindings, @@ -42,10 +39,10 @@ tileConstraint = iHardswishTileConstraint()) SnitchDivTilingReadyBindings = TilingReadyNodeBindings(nodeBindings = SnitchDivBindings, - tileConstraint = FloatDivTileConstraint()) + tileConstraint = FloatScalarBOPTileConstraint()) SnitchMulTilingReadyBindings = TilingReadyNodeBindings(nodeBindings = SnitchMulBindings, - tileConstraint = FloatMulTileConstraint()) + tileConstraint = FloatScalarBOPTileConstraint()) SnitchMatMulTilingReadyBindings = TilingReadyNodeBindings(nodeBindings = SnitchMatMulBindings, tileConstraint = MatMulTileConstraint()) From 1062ec2fadc44a2cdb4ef3576395fed2e86350a7 Mon Sep 17 00:00:00 2001 From: lee2716 Date: Tue, 5 May 2026 22:58:14 +0200 Subject: [PATCH 51/57] ci: split snitch workflows into separate kernels/models jobs Restore PR #144's per-test-type job structure that was lost in PR #153: - ci-platform-snitch-tiled.yml: keep snitch-kernels-tiled-singlebuffer-L2 with marker 'kernels and singlebuffer and l2', add new snitch-models-tiled- singlebuffer-L2 job with marker 'models and singlebuffer and l2'. - ci-platform-snitch.yml: quote the kernels and models markers for consistency with other CI workflows. --- .github/workflows/ci-platform-snitch-tiled.yml | 10 +++++++++- .github/workflows/ci-platform-snitch.yml | 4 ++-- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/.github/workflows/ci-platform-snitch-tiled.yml b/.github/workflows/ci-platform-snitch-tiled.yml index 4ecd45fba9..5a90ccb296 100644 --- a/.github/workflows/ci-platform-snitch-tiled.yml +++ b/.github/workflows/ci-platform-snitch-tiled.yml @@ -35,4 +35,12 @@ jobs: with: runner: ${{ needs.select-env.outputs.runner }} docker-image: ${{ needs.select-env.outputs.image }} - pytest-marker: "(kernels or models) and singlebuffer and l2" + pytest-marker: "kernels and singlebuffer and l2" + + snitch-models-tiled-singlebuffer-L2: + needs: select-env + uses: ./.github/workflows/_runner-snitch-tiled-sequential.yml + with: + runner: ${{ needs.select-env.outputs.runner }} + docker-image: ${{ needs.select-env.outputs.image }} + pytest-marker: "models and singlebuffer and l2" diff --git a/.github/workflows/ci-platform-snitch.yml b/.github/workflows/ci-platform-snitch.yml index 470d43efad..cada18c5f1 100644 --- a/.github/workflows/ci-platform-snitch.yml +++ b/.github/workflows/ci-platform-snitch.yml @@ -35,7 +35,7 @@ jobs: with: runner: ${{ needs.select-env.outputs.runner }} docker-image: ${{ needs.select-env.outputs.image }} - pytest-marker: kernels + pytest-marker: "kernels" snitch-models: needs: select-env @@ -43,4 +43,4 @@ jobs: with: runner: ${{ needs.select-env.outputs.runner }} docker-image: ${{ needs.select-env.outputs.image }} - pytest-marker: models + pytest-marker: "models" From f7d62b0c5f7b32a33b9dfb38ac0897d5399b5398 Mon Sep 17 00:00:00 2001 From: lee2716 Date: Fri, 8 May 2026 18:27:41 +0200 Subject: [PATCH 52/57] fix(snitch): remove singleton mutation in FloatDiv/FloatMulTemplate, reuse Generic ReshapeTemplate FloatDivTemplate / FloatMulTemplate (Snitch): Replace the alignToContext-based template switching (which mutated the module-level NodeTemplate singleton's self.template) with a single Mako template that branches on `is_scalar` provided by the parser. This eliminates a hidden state bug where, in networks containing both scalar and element-wise Div/Mul nodes, the bind phase's last alignToContext call would overwrite the template for all earlier-bound nodes; the subsequent generate phase would then render them with whichever template won the race. Same pattern as FloatPowTemplate.py. ReshapeTemplate (Snitch): Collapse to a re-export of the Generic referenceTemplate. The previous Snitch subclass only added `bufferOut._alias = bufferIn.name`, which PULPOpen carries as the same workaround. ReshapeTemplate (Generic): Set `bufferOut._alias = bufferIn.name` in alignToContext so the legacy single-valued attribute that the TilingExtension still reads is populated centrally, removing the need to carry this workaround in per-platform Reshape subclasses (Snitch and PULPOpen both did). --- .../Generic/Templates/ReshapeTemplate.py | 6 +++ .../Snitch/Templates/FloatDivTemplate.py | 47 +++---------------- .../Snitch/Templates/FloatMulTemplate.py | 47 +++---------------- .../Snitch/Templates/ReshapeTemplate.py | 35 ++------------ 4 files changed, 25 insertions(+), 110 deletions(-) diff --git a/Deeploy/Targets/Generic/Templates/ReshapeTemplate.py b/Deeploy/Targets/Generic/Templates/ReshapeTemplate.py index 15b7d64bef..e4cb01381c 100644 --- a/Deeploy/Targets/Generic/Templates/ReshapeTemplate.py +++ b/Deeploy/Targets/Generic/Templates/ReshapeTemplate.py @@ -34,6 +34,12 @@ def alignToContext(self, ctxt: NetworkContext, bufferIn.aliases.add(bufferOut.name) bufferOut.aliases.add(bufferIn.name) + # Tiling still reads the legacy single-valued `_alias` attribute + # (TilerExtension / MemoryScheduler). Set it here so platforms that + # rely on Reshape pointer-passthrough during tiling don't each need + # to carry the same workaround in a subclass. + bufferOut._alias = bufferIn.name + return ctxt, operatorRepresentation, [] diff --git a/Deeploy/Targets/Snitch/Templates/FloatDivTemplate.py b/Deeploy/Targets/Snitch/Templates/FloatDivTemplate.py index a4a7e05bd4..1a13ebaba9 100644 --- a/Deeploy/Targets/Snitch/Templates/FloatDivTemplate.py +++ b/Deeploy/Targets/Snitch/Templates/FloatDivTemplate.py @@ -2,48 +2,15 @@ # # SPDX-License-Identifier: Apache-2.0 -from typing import Dict, List, Tuple +from Deeploy.DeeployTypes import NodeTemplate -from mako.template import Template as MakoTemplate - -from Deeploy.DeeployTypes import NetworkContext, NodeTemplate, OperatorRepresentation - - -class FloatDivTemplate(NodeTemplate): - """Template for FP32 Div operation with dynamic template selection.""" - - def __init__(self, templateStr): - super().__init__(templateStr) - - def alignToContext(self, ctxt: NetworkContext, - operatorRepresentation: OperatorRepresentation) -> Tuple[NetworkContext, Dict, List[str]]: - - # Check if scalar broadcasting - is_scalar = operatorRepresentation.get('is_scalar', False) - - # IMPORTANT: Must recompile self.template (Mako Template object), - # not just assign self.templateStr. NodeTemplate.generate() uses - # the pre-compiled self.template, not self.templateStr. - if is_scalar: - self.template = MakoTemplate(FloatDivScalarTemplateStr, strict_undefined = True) - else: - self.template = MakoTemplate(FloatDivTemplateStr, strict_undefined = True) - - return ctxt, operatorRepresentation, [] - - -# Template for element-wise division -FloatDivTemplateStr = r""" -Div_fp32(${A}, ${B}, ${C}, ${size}); -""" - -# Template for scalar broadcasting (optimized) -FloatDivScalarTemplateStr = r""" +referenceTemplate = NodeTemplate(r""" +% if is_scalar: { float32_t scalar = ${B}[0]; Div_fp32_scalar(${A}, scalar, ${C}, ${size}); } -""" - -# Create reference template with default (element-wise) -referenceTemplate = FloatDivTemplate(FloatDivTemplateStr) +% else: +Div_fp32(${A}, ${B}, ${C}, ${size}); +% endif +""") diff --git a/Deeploy/Targets/Snitch/Templates/FloatMulTemplate.py b/Deeploy/Targets/Snitch/Templates/FloatMulTemplate.py index ec2ec8595c..89e50769aa 100644 --- a/Deeploy/Targets/Snitch/Templates/FloatMulTemplate.py +++ b/Deeploy/Targets/Snitch/Templates/FloatMulTemplate.py @@ -2,48 +2,15 @@ # # SPDX-License-Identifier: Apache-2.0 -from typing import Dict, List, Tuple +from Deeploy.DeeployTypes import NodeTemplate -from mako.template import Template as MakoTemplate - -from Deeploy.DeeployTypes import NetworkContext, NodeTemplate, OperatorRepresentation - - -class FloatMulTemplate(NodeTemplate): - """Template for FP32 Mul operation with dynamic template selection.""" - - def __init__(self, templateStr): - super().__init__(templateStr) - - def alignToContext(self, ctxt: NetworkContext, - operatorRepresentation: OperatorRepresentation) -> Tuple[NetworkContext, Dict, List[str]]: - - # Check if scalar broadcasting - is_scalar = operatorRepresentation.get('is_scalar', False) - - # IMPORTANT: Must recompile self.template (Mako Template object), - # not just assign self.templateStr. NodeTemplate.generate() uses - # the pre-compiled self.template, not self.templateStr. - if is_scalar: - self.template = MakoTemplate(FloatMulScalarTemplateStr, strict_undefined = True) - else: - self.template = MakoTemplate(FloatMulTemplateStr, strict_undefined = True) - - return ctxt, operatorRepresentation, [] - - -# Template for element-wise multiplication -FloatMulTemplateStr = r""" -Mul_fp32(${A}, ${B}, ${C}, ${size}); -""" - -# Template for scalar broadcasting (optimized) -FloatMulScalarTemplateStr = r""" +referenceTemplate = NodeTemplate(r""" +% if is_scalar: { float32_t scalar = ${B}[0]; Mul_fp32_scalar(${A}, scalar, ${C}, ${size}); } -""" - -# Create reference template with default (element-wise) -referenceTemplate = FloatMulTemplate(FloatMulTemplateStr) +% else: +Mul_fp32(${A}, ${B}, ${C}, ${size}); +% endif +""") diff --git a/Deeploy/Targets/Snitch/Templates/ReshapeTemplate.py b/Deeploy/Targets/Snitch/Templates/ReshapeTemplate.py index 0e1fdf81b1..35edc0d7c9 100644 --- a/Deeploy/Targets/Snitch/Templates/ReshapeTemplate.py +++ b/Deeploy/Targets/Snitch/Templates/ReshapeTemplate.py @@ -2,33 +2,8 @@ # # SPDX-License-Identifier: Apache-2.0 -from typing import Dict, List, Tuple - -from Deeploy.DeeployTypes import NetworkContext, OperatorRepresentation, VariableBuffer -from Deeploy.Targets.Generic.Templates.ReshapeTemplate import _ReshapeTemplate - - -class _SnitchReshapeTemplate(_ReshapeTemplate): - - def alignToContext(self, ctxt: NetworkContext, - operatorRepresentation: OperatorRepresentation) -> Tuple[NetworkContext, Dict, List[str]]: - - ctxt, operatorRepresentation, _ = super().alignToContext(ctxt, operatorRepresentation) - - bufferIn = ctxt.lookup(operatorRepresentation['data_in']) - assert isinstance(bufferIn, VariableBuffer) - bufferOut = ctxt.lookup(operatorRepresentation['data_out']) - assert isinstance(bufferOut, VariableBuffer) - - # Set alias so input and output share the same memory - bufferOut._alias = bufferIn.name - - return ctxt, operatorRepresentation, [] - - -# Reshape only reinterprets tensor shape without modifying data. -# Uses SkipTransformer (no DMA), consistent with PULPOpen. -referenceTemplate = _SnitchReshapeTemplate(""" -// Reshape (Name: ${nodeName}, Op: ${nodeOp}) -${data_out} = ${data_in}; -""") +# Reshape on Snitch reduces to a pointer alias (data is reinterpreted, not +# copied). The Generic implementation already covers this and now also sets +# the legacy `_alias` attribute required by the tiling extension, so we just +# re-export its referenceTemplate verbatim. +from Deeploy.Targets.Generic.Templates.ReshapeTemplate import referenceTemplate # noqa: F401 From ebf90099fa11db3102afacfc7103ca8e4bf9add8 Mon Sep 17 00:00:00 2001 From: lee2716 Date: Sat, 9 May 2026 15:25:38 +0200 Subject: [PATCH 53/57] refactor(snitch): restore Gemm/RqGemm TileConstraint imports to origin/devel style In Tiler.py, pull GemmTileConstraint and RqGemmTileConstraint out of the package-level import line and import each via its full submodule path, and drop the corresponding two re-exports from TileConstraints/__init__.py. This only restores the import style that was on origin/devel before this PR -- no functional change, and no other files affected. --- Deeploy/Targets/Snitch/TileConstraints/__init__.py | 2 -- Deeploy/Targets/Snitch/Tiler.py | 6 ++++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/Deeploy/Targets/Snitch/TileConstraints/__init__.py b/Deeploy/Targets/Snitch/TileConstraints/__init__.py index 1fcabd7305..bce546af2e 100644 --- a/Deeploy/Targets/Snitch/TileConstraints/__init__.py +++ b/Deeploy/Targets/Snitch/TileConstraints/__init__.py @@ -4,7 +4,5 @@ from . import * from .FloatScalarBOPTileConstraint import * -from .GemmTileConstraint import * from .iNoNormTileConstraint import * from .iSoftmaxTileConstraint import * -from .RqGemmTileConstraint import * diff --git a/Deeploy/Targets/Snitch/Tiler.py b/Deeploy/Targets/Snitch/Tiler.py index c8c340d6b8..72a2d0a818 100644 --- a/Deeploy/Targets/Snitch/Tiler.py +++ b/Deeploy/Targets/Snitch/Tiler.py @@ -14,8 +14,10 @@ SnitchGatherBindings, SnitchGemmBindings, SnitchHardSwishBindings, SnitchiNoNormBindings, SnitchiSoftmaxBindings, \ SnitchMatMulBindings, SnitchMulBindings, SnitchReshapeBindings, SnitchRMSNormBindings, SnitchRQAddBindings, \ SnitchRqGemmBindings, SnitchTransposeBindings -from Deeploy.Targets.Snitch.TileConstraints import FloatScalarBOPTileConstraint, GemmTileConstraint, \ - iNoNormTileConstraint, iSoftmaxTileConstraint, RqGemmTileConstraint +from Deeploy.Targets.Snitch.TileConstraints import FloatScalarBOPTileConstraint, iNoNormTileConstraint, \ + iSoftmaxTileConstraint +from Deeploy.Targets.Snitch.TileConstraints.GemmTileConstraint import GemmTileConstraint +from Deeploy.Targets.Snitch.TileConstraints.RqGemmTileConstraint import RqGemmTileConstraint from Deeploy.TilingExtension.TilerExtension import TilingReadyNodeBindings SnitchiSoftmaxTilingReadyBindings = TilingReadyNodeBindings(nodeBindings = SnitchiSoftmaxBindings, From 94aea9e59004b60e4ad0cdb36eb052ff74abd2cc Mon Sep 17 00:00:00 2001 From: lee2716 Date: Sat, 9 May 2026 16:57:07 +0200 Subject: [PATCH 54/57] docs(snitch): clarify TransposeTemplate parallelization heuristic Replace the inline "for good load balancing" comment, which was misleading (both heuristics saturate all 8 cores when multiple dims >= 8), with the actual rationale: outer-dim parallelization gives each core a single contiguous slab of memory, simplifying the access pattern and reducing per-core loop-control overhead vs fragmenting work across an inner dim. The largest-dim fallback only triggers when no dim is big enough for every core, to minimize idle cores. --- Deeploy/Targets/Snitch/Templates/TransposeTemplate.py | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/Deeploy/Targets/Snitch/Templates/TransposeTemplate.py b/Deeploy/Targets/Snitch/Templates/TransposeTemplate.py index e8e689d402..1737c384dc 100644 --- a/Deeploy/Targets/Snitch/Templates/TransposeTemplate.py +++ b/Deeploy/Targets/Snitch/Templates/TransposeTemplate.py @@ -69,8 +69,12 @@ def alignToContext(self, ctxt: NetworkContext, fRep['accessStr'] = accessStr fRep['data_out_shape'] = data_out_shape - # Select the best dimension to parallelize: - # prefer dimensions >= 8 for good load balancing, otherwise pick the largest + # Pick the outermost dim that has at least one element per core (>= 8): + # outer-dim parallelization gives each core a single contiguous slab + # of memory, which simplifies reasoning and reduces per-core + # loop-control overhead vs. fragmenting work across an inner dim. + # Fall back to the largest dim only when no dim is big enough for + # every core, so as few cores idle as possible. parallelDims = [idx for idx, dim in enumerate(data_out_shape) if dim >= 8] if len(parallelDims) > 0: parallelDim = parallelDims[0] From 9fa6fd7b669f0a6c604613a9f855dfbcfeaecb37 Mon Sep 17 00:00:00 2001 From: lee2716 Date: Sat, 9 May 2026 16:57:25 +0200 Subject: [PATCH 55/57] refactor(tiling): move scalar broadcast handling into Generic BOPTileConstraint BOPTileConstraint previously asserted dim equality across all three tensors, which made it incompatible with binary ops where one input is scalar (size 1). The Snitch FP32 Div/Mul path worked around this with its own FloatScalarBOPTileConstraint subclass that detected is_scalar and added the right constraints. Push the scalar-aware logic into BOPTileConstraint itself: same-shape inputs follow the existing element-wise path, scalar input2 keeps the second tensor full-size and ties input1/output dims together. The Snitch wrapper class is no longer needed -- Snitch Tiler.py now uses Generic MulTileConstraint (a thin BOPTileConstraint subclass that overrides the parser tensor names to A/B/C, which matches what SnitchDivParser/SnitchMulParser produce). Other BOPTileConstraint subclasses (Generic AddTileConstraint / MulTileConstraint, PULPOpen SGDTileConstraint / GeluGradTileConstraint) inherit the new is_scalar branch; their existing same-shape behavior is unchanged. --- .../TileConstraints/BOPTileConstraint.py | 47 ++++++-- .../FloatScalarBOPTileConstraint.py | 101 ------------------ .../Snitch/TileConstraints/__init__.py | 1 - Deeploy/Targets/Snitch/Tiler.py | 8 +- 4 files changed, 40 insertions(+), 117 deletions(-) delete mode 100644 Deeploy/Targets/Snitch/TileConstraints/FloatScalarBOPTileConstraint.py diff --git a/Deeploy/Targets/Generic/TileConstraints/BOPTileConstraint.py b/Deeploy/Targets/Generic/TileConstraints/BOPTileConstraint.py index e1f6f0e71c..d18133967f 100644 --- a/Deeploy/Targets/Generic/TileConstraints/BOPTileConstraint.py +++ b/Deeploy/Targets/Generic/TileConstraints/BOPTileConstraint.py @@ -12,11 +12,16 @@ from Deeploy.TilingExtension.MemoryConstraints import NodeMemoryConstraint from Deeploy.TilingExtension.TileConstraint import TileConstraint from Deeploy.TilingExtension.TilerModel import TilerModel -from Deeploy.TilingExtension.TilingCodegen import AbsoluteHyperRectangle, TilingSchedule, VariableReplacementScheme +from Deeploy.TilingExtension.TilingCodegen import AbsoluteHyperRectangle, HyperRectangle, TilingSchedule, \ + VariableReplacementScheme class BOPTileConstraint(TileConstraint): - """Tile constraint class for binary operators, i.e. operators that use two input tensors of equal dimensions + """Tile constraint class for binary operators, i.e. operators that use two input tensors of equal dimensions. + + When the second input is a scalar (total size 1), it is kept full-size and only + the first input and the output are tiled together. This supports ONNX + broadcasting in operators that have a corresponding scalar kernel. """ dataIn1Name = 'data_in_1' #: str: Name of the first input tensor as defined by the operator's parser @@ -34,14 +39,27 @@ def addGeometricalConstraint(cls, tilerModel: TilerModel, parseDict: Dict, ctxt: tilerModel.addTensorDimToModel(ctxt, bufferName) input1Shape = ctxt.lookup(inputBuffer1Name).shape - - for dim in range(len(input1Shape)): - inputDim1Var = tilerModel.getTensorDimVar(tensorName = inputBuffer1Name, dimIdx = dim) - inputDim2Var = tilerModel.getTensorDimVar(tensorName = inputBuffer2Name, dimIdx = dim) - outputDimVar = tilerModel.getTensorDimVar(tensorName = outputBufferName, dimIdx = dim) - - tilerModel.addConstraint(inputDim1Var == inputDim2Var) - tilerModel.addConstraint(inputDim1Var == outputDimVar) + input2Shape = list(ctxt.lookup(inputBuffer2Name).shape) + is_scalar = (np.prod(input2Shape) == 1) + + if is_scalar: + # Scalar broadcasting: tile input1 and output together; input2 stays full-size. + for dim in range(len(input1Shape)): + inputDim1Var = tilerModel.getTensorDimVar(tensorName = inputBuffer1Name, dimIdx = dim) + outputDimVar = tilerModel.getTensorDimVar(tensorName = outputBufferName, dimIdx = dim) + tilerModel.addConstraint(inputDim1Var == outputDimVar) + for dim in range(len(input2Shape)): + inputDim2Var = tilerModel.getTensorDimVar(tensorName = inputBuffer2Name, dimIdx = dim) + tilerModel.addConstraint(inputDim2Var == input2Shape[dim]) + else: + # Element-wise: all three tensors tiled identically. + for dim in range(len(input1Shape)): + inputDim1Var = tilerModel.getTensorDimVar(tensorName = inputBuffer1Name, dimIdx = dim) + inputDim2Var = tilerModel.getTensorDimVar(tensorName = inputBuffer2Name, dimIdx = dim) + outputDimVar = tilerModel.getTensorDimVar(tensorName = outputBufferName, dimIdx = dim) + + tilerModel.addConstraint(inputDim1Var == inputDim2Var) + tilerModel.addConstraint(inputDim1Var == outputDimVar) return tilerModel @@ -64,11 +82,18 @@ def serializeTilingSolution( newSize = np.prod(cube.dims) replacements["size"].append(newSize) + input2Shape = list(ctxt.lookup(operatorRepresentation[cls.dataIn2Name]).shape) + is_scalar = (np.prod(input2Shape) == 1) + inputLoadSchedule = [] outputLoadSchedule = [] for cube in outputCubes: - inputLoadSchedule.append({cls.dataIn1Name: cube, cls.dataIn2Name: cube}) + if is_scalar: + in2Cube = HyperRectangle(tuple([0] * len(input2Shape)), tuple(input2Shape)) + inputLoadSchedule.append({cls.dataIn1Name: cube, cls.dataIn2Name: in2Cube}) + else: + inputLoadSchedule.append({cls.dataIn1Name: cube, cls.dataIn2Name: cube}) for out in outputCubes: outputLoadSchedule.append({cls.dataOutName: out}) diff --git a/Deeploy/Targets/Snitch/TileConstraints/FloatScalarBOPTileConstraint.py b/Deeploy/Targets/Snitch/TileConstraints/FloatScalarBOPTileConstraint.py deleted file mode 100644 index 9f51a8134e..0000000000 --- a/Deeploy/Targets/Snitch/TileConstraints/FloatScalarBOPTileConstraint.py +++ /dev/null @@ -1,101 +0,0 @@ -# SPDX-FileCopyrightText: 2026 ETH Zurich and University of Bologna -# -# SPDX-License-Identifier: Apache-2.0 - -from typing import Dict, List, Tuple - -import numpy as np - -from Deeploy.AbstractDataTypes import PointerClass -from Deeploy.CommonExtensions.DataTypes import uint16_t -from Deeploy.DeeployTypes import NetworkContext, OperatorRepresentation -from Deeploy.TilingExtension.MemoryConstraints import NodeMemoryConstraint -from Deeploy.TilingExtension.TileConstraint import TileConstraint -from Deeploy.TilingExtension.TilerModel import TilerModel -from Deeploy.TilingExtension.TilingCodegen import AbsoluteHyperRectangle, HyperRectangle, TilingSchedule, \ - VariableReplacementScheme - - -class FloatScalarBOPTileConstraint(TileConstraint): - """Tile constraint for binary operators with scalar broadcasting support. - - Extends BOPTileConstraint with scalar handling: when one input has size 1, - it is loaded in full (not tiled) while the other input and output are tiled together. - Used by FP32 Div and Mul operators. - """ - - dataIn1Name = "A" - dataIn2Name = "B" - dataOutName = "C" - - @classmethod - def addGeometricalConstraint(cls, tilerModel: TilerModel, parseDict: Dict, ctxt: NetworkContext) -> TilerModel: - - inputBuffer1Name = parseDict[cls.dataIn1Name] - inputBuffer2Name = parseDict[cls.dataIn2Name] - outputBufferName = parseDict[cls.dataOutName] - - tilerModel.addTensorDimToModel(ctxt, inputBuffer1Name) - tilerModel.addTensorDimToModel(ctxt, inputBuffer2Name) - tilerModel.addTensorDimToModel(ctxt, outputBufferName) - - input1Shape = list(ctxt.lookup(inputBuffer1Name).shape) - input2Shape = list(ctxt.lookup(inputBuffer2Name).shape) - - is_scalar = (np.prod(input2Shape) == 1) - - if is_scalar: - # Scalar: tile A and C together, B stays fixed - for dim in range(len(input1Shape)): - in1Var = tilerModel.getTensorDimVar(tensorName = inputBuffer1Name, dimIdx = dim) - outVar = tilerModel.getTensorDimVar(tensorName = outputBufferName, dimIdx = dim) - tilerModel.addConstraint(in1Var == outVar) - for dim in range(len(input2Shape)): - in2Var = tilerModel.getTensorDimVar(tensorName = inputBuffer2Name, dimIdx = dim) - tilerModel.addConstraint(in2Var == input2Shape[dim]) - else: - # Element-wise: all three tensors tiled identically - for dim in range(len(input1Shape)): - in1Var = tilerModel.getTensorDimVar(tensorName = inputBuffer1Name, dimIdx = dim) - in2Var = tilerModel.getTensorDimVar(tensorName = inputBuffer2Name, dimIdx = dim) - outVar = tilerModel.getTensorDimVar(tensorName = outputBufferName, dimIdx = dim) - tilerModel.addConstraint(in1Var == in2Var) - tilerModel.addConstraint(in1Var == outVar) - - return tilerModel - - @classmethod - def serializeTilingSolution( - cls, tilingSolution: NodeMemoryConstraint, absoluteOutputCubes: List[AbsoluteHyperRectangle], - targetMemLevel: str, ctxt: NetworkContext, - operatorRepresentation: OperatorRepresentation) -> Tuple[VariableReplacementScheme, TilingSchedule]: - outputCubes = [cube.rectangle for cube in absoluteOutputCubes] - - addrNames = [cls.dataIn1Name, cls.dataIn2Name, cls.dataOutName] - inputBaseOffsets, outputBaseOffsets = cls.extractBaseAddr(tilingSolution, targetMemLevel, - operatorRepresentation, addrNames) - - replacements = {"size": []} - replacementTypes = {"size": PointerClass(uint16_t)} - - input2Shape = list(ctxt.lookup(operatorRepresentation[cls.dataIn2Name]).shape) - is_scalar = (np.prod(input2Shape) == 1) - - inputLoadSchedule = [] - outputLoadSchedule = [] - - for cube in outputCubes: - replacements["size"].append(np.prod(cube.dims)) - if is_scalar: - in2Cube = HyperRectangle(tuple([0] * len(input2Shape)), tuple(input2Shape)) - inputLoadSchedule.append({cls.dataIn1Name: cube, cls.dataIn2Name: in2Cube}) - else: - inputLoadSchedule.append({cls.dataIn1Name: cube, cls.dataIn2Name: cube}) - - for out in outputCubes: - outputLoadSchedule.append({cls.dataOutName: out}) - - tilingSchedule = TilingSchedule(inputBaseOffsets, outputBaseOffsets, inputLoadSchedule, outputLoadSchedule) - variableReplacementSchedule = VariableReplacementScheme(replacements, replacementTypes) - - return variableReplacementSchedule, tilingSchedule diff --git a/Deeploy/Targets/Snitch/TileConstraints/__init__.py b/Deeploy/Targets/Snitch/TileConstraints/__init__.py index bce546af2e..947a6fd82a 100644 --- a/Deeploy/Targets/Snitch/TileConstraints/__init__.py +++ b/Deeploy/Targets/Snitch/TileConstraints/__init__.py @@ -3,6 +3,5 @@ # SPDX-License-Identifier: Apache-2.0 from . import * -from .FloatScalarBOPTileConstraint import * from .iNoNormTileConstraint import * from .iSoftmaxTileConstraint import * diff --git a/Deeploy/Targets/Snitch/Tiler.py b/Deeploy/Targets/Snitch/Tiler.py index 72a2d0a818..2b6b1baad8 100644 --- a/Deeploy/Targets/Snitch/Tiler.py +++ b/Deeploy/Targets/Snitch/Tiler.py @@ -6,6 +6,7 @@ from Deeploy.Targets.Generic.TileConstraints.ConcatTileConstraint import ConcatTileConstraint from Deeploy.Targets.Generic.TileConstraints.iHardswishTileConstraint import iHardswishTileConstraint from Deeploy.Targets.Generic.TileConstraints.iRMSNormTileConstraint import iRMSNormTileConstraint +from Deeploy.Targets.Generic.TileConstraints.MulTileConstraint import MulTileConstraint from Deeploy.Targets.Generic.TileConstraints.NOPTileConstraint import NOPTileConstraint from Deeploy.Targets.Generic.TileConstraints.TransposeTileConstraint import TransposeTileConstraint from Deeploy.Targets.PULPOpen.TileConstraints.GatherTileConstraint import GatherTileConstraint @@ -14,8 +15,7 @@ SnitchGatherBindings, SnitchGemmBindings, SnitchHardSwishBindings, SnitchiNoNormBindings, SnitchiSoftmaxBindings, \ SnitchMatMulBindings, SnitchMulBindings, SnitchReshapeBindings, SnitchRMSNormBindings, SnitchRQAddBindings, \ SnitchRqGemmBindings, SnitchTransposeBindings -from Deeploy.Targets.Snitch.TileConstraints import FloatScalarBOPTileConstraint, iNoNormTileConstraint, \ - iSoftmaxTileConstraint +from Deeploy.Targets.Snitch.TileConstraints import iNoNormTileConstraint, iSoftmaxTileConstraint from Deeploy.Targets.Snitch.TileConstraints.GemmTileConstraint import GemmTileConstraint from Deeploy.Targets.Snitch.TileConstraints.RqGemmTileConstraint import RqGemmTileConstraint from Deeploy.TilingExtension.TilerExtension import TilingReadyNodeBindings @@ -41,10 +41,10 @@ tileConstraint = iHardswishTileConstraint()) SnitchDivTilingReadyBindings = TilingReadyNodeBindings(nodeBindings = SnitchDivBindings, - tileConstraint = FloatScalarBOPTileConstraint()) + tileConstraint = MulTileConstraint()) SnitchMulTilingReadyBindings = TilingReadyNodeBindings(nodeBindings = SnitchMulBindings, - tileConstraint = FloatScalarBOPTileConstraint()) + tileConstraint = MulTileConstraint()) SnitchMatMulTilingReadyBindings = TilingReadyNodeBindings(nodeBindings = SnitchMatMulBindings, tileConstraint = MatMulTileConstraint()) From f87f98b317a46756466a8bd24f79e59bc5135e8e Mon Sep 17 00:00:00 2001 From: lee2716 Date: Sat, 9 May 2026 16:57:35 +0200 Subject: [PATCH 56/57] docs(snitch): explain why InitNetwork is called from all cores Replace the vague "for barrier balance" comment with the actual reason: InitNetwork now contains snrt_cluster_hw_barrier() calls after each DM-core-guarded allocation. The guard + barrier is what makes the allocation multi-core safe -- snrt_l1alloc / snrt_l3alloc would otherwise bump a cluster-shared pointer once per core and leave each core with a divergent address for the same global. Calling InitNetwork only from snrt_is_dm_core() would deadlock the DM core on the first internal barrier waiting for compute cores that never entered. --- DeeployTest/Platforms/Snitch/main.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/DeeployTest/Platforms/Snitch/main.c b/DeeployTest/Platforms/Snitch/main.c index cff0e0b20a..f67fab0e88 100644 --- a/DeeployTest/Platforms/Snitch/main.c +++ b/DeeployTest/Platforms/Snitch/main.c @@ -25,8 +25,12 @@ int main(void) { uint32_t const num_compute_cores = snrt_global_compute_core_num(); #endif - // All cores call InitNetwork: allocations inside are DM-core guarded - // with barriers, so all cores must participate for barrier balance. + // All cores must call InitNetwork: it contains snrt_cluster_hw_barrier() + // after each DM-core-guarded allocation. The guard + barrier is what makes + // the allocation multi-core safe (snrt_l1alloc/l3alloc would otherwise + // return divergent addresses across cores). Calling InitNetwork only from + // snrt_is_dm_core() would deadlock the DM core on the first internal + // barrier. #ifndef NOPRINT if (snrt_is_dm_core()) { printf("Initializing...\r\n"); From 1924e5e04a4501bbcca35ca54a6020acba3026ea Mon Sep 17 00:00:00 2001 From: lee2716 Date: Sat, 9 May 2026 16:57:48 +0200 Subject: [PATCH 57/57] refactor(snitch): merge Add_fp32 into Add_fp32_broadcast with elementwise fast path Collapse the two FP32 Add kernels (simple Add_fp32 and Add_fp32_broadcast) into a single Add_fp32_broadcast that detects identity strides upfront and falls through to a plain elementwise loop. The stride check is an ndim-step compare (a handful of cycles per call); the inner loop is unchanged for the elementwise case, so no per-element overhead is added. FloatAddTemplate now always synthesizes natural strides + out_shape + ndim from the parser's data_out shape (instead of only on the need_broadcast path), so every Add call goes through the unified kernel. Measured impact on untiled microLlama1 (80 elementwise Adds, sizes 32/64/256, ndim 3-4): runtime went from 2,224,436 to 2,237,793 cycles (+0.6%), which matches the expected stride-check and per-call array setup overhead. --- .../Snitch/Templates/FloatAddTemplate.py | 41 ++++++++++-------- TargetLibraries/Snitch/inc/kernel/Add.h | 2 - TargetLibraries/Snitch/src/Add_fp32.c | 43 ++++++++----------- 3 files changed, 41 insertions(+), 45 deletions(-) diff --git a/Deeploy/Targets/Snitch/Templates/FloatAddTemplate.py b/Deeploy/Targets/Snitch/Templates/FloatAddTemplate.py index 20b72e4d27..e3a5821e70 100644 --- a/Deeploy/Targets/Snitch/Templates/FloatAddTemplate.py +++ b/Deeploy/Targets/Snitch/Templates/FloatAddTemplate.py @@ -11,35 +11,38 @@ class _FloatAddTemplate(NodeTemplate): def alignToContext(self, ctxt: NetworkContext, operatorRepresentation: OperatorRepresentation) -> Tuple[NetworkContext, Dict, List[str]]: - # Always initialize these variables to avoid Mako errors - operatorRepresentation.setdefault('need_broadcast', False) - operatorRepresentation.setdefault('ndim', 0) - operatorRepresentation.setdefault('strides1_str', '{}') - operatorRepresentation.setdefault('strides2_str', '{}') - operatorRepresentation.setdefault('out_shape_str', '{}') - - # If broadcasting is required, generate the stride array strings - if operatorRepresentation['need_broadcast']: - strides1 = operatorRepresentation['strides1'] - strides2 = operatorRepresentation['strides2'] - out_shape = operatorRepresentation['out_shape'] - operatorRepresentation['strides1_str'] = '{' + ', '.join(map(str, strides1)) + '}' - operatorRepresentation['strides2_str'] = '{' + ', '.join(map(str, strides2)) + '}' - operatorRepresentation['out_shape_str'] = '{' + ', '.join(map(str, out_shape)) + '}' + # Always populate strides/out_shape/ndim. The unified Add_fp32 kernel + # detects identity strides at runtime and falls through to a simple + # element-wise loop, so non-broadcast adds pay only the upfront + # ndim-step stride check (a few cycles per call). + if 'strides1' not in operatorRepresentation: + out_shape = list(ctxt.lookup(operatorRepresentation['data_out']).shape) + natural_strides = [] + stride = 1 + for dim in reversed(out_shape): + natural_strides.insert(0, stride) + stride *= dim + operatorRepresentation['ndim'] = len(out_shape) + operatorRepresentation['out_shape'] = out_shape + operatorRepresentation['strides1'] = natural_strides + operatorRepresentation['strides2'] = natural_strides + + operatorRepresentation['strides1_str'] = '{' + ', '.join(map(str, + operatorRepresentation['strides1'])) + '}' + operatorRepresentation['strides2_str'] = '{' + ', '.join(map(str, + operatorRepresentation['strides2'])) + '}' + operatorRepresentation['out_shape_str'] = '{' + ', '.join(map(str, + operatorRepresentation['out_shape'])) + '}' return ctxt, operatorRepresentation, [] referenceTemplate = _FloatAddTemplate(""" // Snitch FP32 Add (Name: ${nodeName}, Op: ${nodeOp}) -% if need_broadcast: { uint32_t strides1[${ndim}] = ${strides1_str}; uint32_t strides2[${ndim}] = ${strides2_str}; uint32_t out_shape[${ndim}] = ${out_shape_str}; Add_fp32_broadcast(${data_in_1}, ${data_in_2}, ${data_out}, out_shape, strides1, strides2, ${ndim}, ${size}); } -% else: -Add_fp32(${data_in_1}, ${data_in_2}, ${data_out}, ${size}); -% endif """) diff --git a/TargetLibraries/Snitch/inc/kernel/Add.h b/TargetLibraries/Snitch/inc/kernel/Add.h index 90881e55fd..8cc2bc4162 100644 --- a/TargetLibraries/Snitch/inc/kernel/Add.h +++ b/TargetLibraries/Snitch/inc/kernel/Add.h @@ -9,8 +9,6 @@ #include "DeeploySnitchMath.h" -void Add_fp32(float32_t *pIn1, float32_t *pIn2, float32_t *pOut, uint32_t size); - void Add_fp32_broadcast(float32_t *pIn1, float32_t *pIn2, float32_t *pOut, uint32_t *out_shape, uint32_t *strides1, uint32_t *strides2, uint32_t ndim, uint32_t size); diff --git a/TargetLibraries/Snitch/src/Add_fp32.c b/TargetLibraries/Snitch/src/Add_fp32.c index 785ff0c2b3..0840191d57 100644 --- a/TargetLibraries/Snitch/src/Add_fp32.c +++ b/TargetLibraries/Snitch/src/Add_fp32.c @@ -6,8 +6,9 @@ #include "DeeploySnitchMath.h" -void Add_fp32(float32_t *pIn1, float32_t *pIn2, float32_t *pOut, - uint32_t size) { +void Add_fp32_broadcast(float32_t *pIn1, float32_t *pIn2, float32_t *pOut, + uint32_t *out_shape, uint32_t *strides1, + uint32_t *strides2, uint32_t ndim, uint32_t size) { uint32_t core_id = snrt_global_compute_core_idx(); uint32_t numThreads = snrt_global_compute_core_num(); @@ -26,32 +27,26 @@ void Add_fp32(float32_t *pIn1, float32_t *pIn2, float32_t *pOut, uint32_t end = start + num_elements; - for (uint32_t i = start; i < end; i++) { - pOut[i] = pIn1[i] + pIn2[i]; + // Fast path: identity strides == no broadcasting needed. + // Avoids per-element mod/div index recovery when shapes match. + int is_elementwise = 1; + uint32_t expected_stride = 1; + for (int32_t d = ndim - 1; d >= 0; d--) { + if (strides1[d] != expected_stride || strides2[d] != expected_stride) { + is_elementwise = 0; + break; + } + expected_stride *= out_shape[d]; } -} - -void Add_fp32_broadcast(float32_t *pIn1, float32_t *pIn2, float32_t *pOut, - uint32_t *out_shape, uint32_t *strides1, - uint32_t *strides2, uint32_t ndim, uint32_t size) { - - uint32_t core_id = snrt_global_compute_core_idx(); - uint32_t numThreads = snrt_global_compute_core_num(); - uint32_t chunkSize = size / numThreads; - uint32_t remainder = size % numThreads; - - uint32_t start, num_elements; - if (core_id < remainder) { - num_elements = chunkSize + 1; - start = core_id * num_elements; - } else { - num_elements = chunkSize; - start = core_id * chunkSize + remainder; + if (is_elementwise) { + for (uint32_t i = start; i < end; i++) { + pOut[i] = pIn1[i] + pIn2[i]; + } + return; } - uint32_t end = start + num_elements; - + // General broadcast path. for (uint32_t i = start; i < end; i++) { uint32_t idx1 = 0; uint32_t idx2 = 0;

gH{!zDArcJ-Nn|jlah;M?RcgqM43>^ce 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 `*cTb$GWD*R&P z4mUHa;Nk{HJaj(;M81xP)y?kk+-*Hs+7$yAw+_<#yPPp8b{>xTK9*0s`;YFQ^^u;| zDuSVTu9#pt4mvzVCjte26x^*+|+OY$R_)6GmwUo_CaVQy74X;H6 zKqbNnxh^SiEImR_Mbu%d%x5xvs0u@!I4BNvhA5juR7^Dwnk>~oci$RR8>frcw5)J} ztq*qXDai&jO z06z>0LdMag!MRt-G?H3MZlXg0eG~JFR z!Mdh&yzv0-Hg{h(=k`2Svtf#jBacvOPbcf z7NyH1WPL3jY72qfSEZ=6pcW3>J>{n@oq)rx89B|cTOCAa_a*YL=B>i}HSDyr@g!~BHJ2q;SE2M!A*S1A;%LAI zc(3-2@P4KED=&*&`&~dA^zYEuN^i+h`)J&wO|aEB7tjB$p&#zNBZbC}VA!_>l$mwt z^Or%i-f^OTOuu0-mFLAy7^O_pn{XmBV$o$dHj+UF*S%TMW@P zQe4NxYPgYKOVc;!fytA6*ySsO%6Es!8Nqna-ckgy?lpKyUj1M73MxXAT!py>UG#x*jF@Tx>C57fc57t#2#TO4-1E+Xb1 zzEH=ty6|_KC)R8_K-MTNf%99p!#DF{G<0yQhz9NAJF?g(x z?SMp#$Uo~O>eNsH17Zz$_ecy_O}2-U9oaA;d}_OY`W_GnHKY>Xa=`NHUVgk&F%dqeqM4hIr{_%s)&5*~sTU7Hhqh3;|0YA+ zwIuQ~N|^q5n2%xwOZdIT8T5*k6R8(x(rERq_}tM03`SF+fl+ZYU+2@z56d9b%?11; z1n^d;7tAIWf4e?8jEpl=|$SMCk|a3nY_wo8$IN9m6QI=Z2N6> zi1l93vss)T)sMq^tBXWm!<3I6A3)}>n}g}AnM8Aa4b0tjk@|L3l7~mL$*$gH+;Cd} z!X)zXrmZs6F^O$%;#rczuw!4Q#bL?neE9PG2bHdUNtQ0opsIzr(AU6{rIoEQ?BixK z;=TeMy)JQ5m)Bz9%74U($$5jK#i{R@Z!}@60cfb?!On~RoI>zyj9aP=bB&kdzRCj5 zq_2cgt-ayLM}`+bD)4Pv5X@<_QkOD%c(ymF%Xpxyz)x!4 z&_f=Cm1F-+Wr!bz3z$@`!_w@*M_aD)lsvrt#KD@Skxbs6 zL0_BK6OqVZt~)jyel4tkhxZFHJX{*Did&=8TP3jDRSk)I(ji%?48IAl1C7cBT*NX- z+%Fu@AKbMVLw3|dKtnEf$)W}~gq|R}icu^#ru8r{%n`Ve8d!U~7B);aC+_c>Y2aoL)Y8i4@A-Pc zsf&+EX!=tw{X2oK{&y6*4B+LxM3g(P%WznJkknyV83Q;+wAR=aU^vU2Gqx3$Kv;-;#&ap zu`}HJ)@oQMSqag}o}l-=t-XmXCRMw0G23!E&U}`JDN7ou&&x18nYRVUhh~8KN_H!g z--8>iSRWR}Bopt);X9GZIPjC<9M6stldUYdQo0IzO(bdAk1DwI2g!<+=BU{(%Mdhi z;1IHysH_QMRCftFNr_pf8l$n*KMrdCWxv8>YhAv5;N=wE_Lv#8lnH!ml!jCM8i$^9{3D?5Tht;4} zs)##{gvj1HS?Cfm!&0ddm~7TXty<^vdBuRHPaU|RP&{#L-e{Vkv5823^#hku53F1~m->$h;cN>nV9W<)=vv9}XM7>pdB=fMV>XPx zV2tK1W$g9y%sg3-{QW4PiFqa6ui^wITCF52B?^po949x-H`0w}dMp_^o(yGQAeY}6 zk?106eCyOh!efiDUe}3E?YT`(jakERMN)K6$i4Q1c_p0BuQVvvHiAhxg4jQ48^jFO zp!uFs=JT*5ir2ppJ*gOcc6}#&37pKgoejr{ai#F9eIoU=DaE%InXto89VY5akwS49 zTu{Sg4;{%^C#Zn?`0wo^f&<(i(^~Y^il@f+JegTP6P2dAw(i~K3mGR)(DI$7u*T;y zH_*oLcnl+z1aaih&24!6gbj!vEQU4nv_Z?=3v}f*(6CSjhSP$$9(`9hayk>Fb~ngVe?=m7IB94&4^Fx%rL3OnTi<9{Gt9kIB*S^DEvQ`=a${XG$K&z9f{soTUUP#*VuTm`;MK9Z7GE-V_G;(*RG1NRu zz}sii!8U&rkbx46s#Av@lkHHbbSIwu>4^#p>|l*_D0t6f(&bs^WTb19{vPKC51W?goTqmJY2S{#RHY`3=hi&(A*z0J zwNXrTCNaKOix-tmaO0d=+%=)S@M$y-7JM8auD+MZKv@nP*;0aGZF)pQ={^@SMx4IT zm!&@yy~!S3GnNvROsWidqUlnI@4VW%9=$|-94rA%?@RmpJVV<4@bkQZGdFnU1@j9o|R)3!c(t=0=JsYKA)Str~3R@8#8(mohf zOoMx0Bhjzi3Cf&{sqVKHDzV)S?L1Xr^*Ku#C6t3A)h>ML#&U8^Qx=z9AIlv~W4n}8 z5e$9xk{o|q23G^sV59eVXg_3v<4gY|LeKK?Y+V+F50$~n_DsxN`<}ddJdQ3Al0&DF zN;pxV50#!ZaAl`CULLmx+RO6D;isu!Ua3Te&gYTkr3}CPDF!nuWz)b_XElkAErimyM@h=#e{_Lb0nV;@*ZM`bnM~WhfSAsSHR~BXPEGB! zP+RmUnW!H{)PBUkDvh<^T3>-vT=UGX+s7xHPOGV7DL+;i7A?* zSF%4o-2a7EG5KovV+&ldH<<6ceSzG+JON|Q%>%lvfCj{Gfi}h=csf`>Sshjb3oPB$zKB`PzY&)@EgCmfii@6~2OsQw=_I>UP{(96U9JwLb7C=9DuEu5 z(PjFaYqU2s7o`sr!FY2!a(ZqxzRBGQhd=7W+GkPFt-2Xye=uw6tt4>Li-W0R*_gF7 z2tHI#q(_>@!TRo{P-Kw~w`ASvw5;`XPpBjaFIx#p@vES&{4X5|6+n4$hFDWiBz7LU zC^WvAKiRYhNB*jsdCZ;&lhw0$v8^$f(teps8e%q)N0OMdrX2icXF$f+c$mtS5WNo^ zp3Aqyfh8s&ZC{33A9b-QPznaR%<+=MQV{ObL&FUTxaf^P;Rj<;zq%G&KImfbLS?+X zD3Kic6ob;EIq<#X2vLg~4_y~0!=1)bOk^1TbyFsh!%%{&uNAjD=S>Ju1#*Zgj4-( zNSilrfKZp`)c6dO>-r~Q96ef;h`nph}z&u z?x;y2Di1r5qL|$<;YuuyXVUP&s(<9?jad45;zC|7I+>gQ!W|7p21&sQ0=fs+n1V%kAjS#83M!k-Md881^6+ z#7~;T-7@5B)JkB}${Lg@^W+!QRnsy5-QYrH$8wK-jPd)EAflvhg3{5E_<+r(5ycCcP8I&lFNVUlP2oyo`2q9Gg)g-(vDOR6wrf9O_MS5 zngVo9drsbc=2$;;N-ctkFuriFE z$Sl_rJW%nCF=QQoMLoq?TW@0S8dG$CBW(H#W7`Fxg z#yuw|=U0#txw)X@_L5}(wStl>Uc?}zob29kiyK#62~|EzA*;s`F1UH2j`c%6BZjE} z4!ozkk1gh`2A|L=N2S4eqdA@JH$d&qCgLNPRBqetO0XEZMFe*42E%N3{4}+TEIIao zKK5X^&Zf2S$-NRBKF4qyf0@%Y;T0$mNJ+ksD!r*83y;(EaZTGHT72vR`Ce~K+sF4& zapMuve{34xRCR<*IZ*(0Gsfd#kCXJ!I`((mI>0Y-v&YVwWHPmH8|t5{f_dhP7%8qE zS3Ro7w3n7}ZcZ|%&@>tD$N%E8T2B$(M}auJU?V2^3$mGT4q0R0*FI2to*r|b2IEws zp#1eGmU_lvN30S4v}`5pM=;SU1`cjp&+ii|!=yR8;piW6(mYs66<)JC8^YX|COQMWmsaD?D`)5tr42aPY>R(q=rg3&HV~Om z15U1OM7HKK9nH%ld6S~xLa{JETx!W*vh)GREo{Cm7Xc~hR6MyZ7{&K&Vs)&Cc2u|U zFS9zhQ`^UZwvaHc{$DEmiWr#E@|YWn7@^LiW+YLipI4h+4}P1c(XML>c=ucweorq& zkq0wC+))L)lR9bjm~u3Iv>QC9`(lPbIi53JOkVb@LDR`a5TY2%^g#}A_;oBsUsr*d zqedV(xC)!bCbtP}yH9?bC*ax(7s<%;RMade!jC&=!LPlMP$K9JL+1`ty=N+TzBL3q zGQ#1jZ#~}W?&GeFmSapz9n86XlOBIz2FGU>Q=Z7fsy!;S^JG4Y>~X-F>4j+jBMuJr zSAu8DDgN8yl~7t~g;AT6LFKpr{4Mapg_crScGd+%wX+b^8mQ_-InZ0Fi8~I?Ml+vl zG~Y`TlK%A3T|LH_ps*G0nd(BRn;q2Z93wC7Jiw-D2IkZ`pxX3<^!|n2xZ_1MIOiw9 z*ZV=3+|PVJ2aa=Bqqd@2QZi<}nSq^brk@;>0Xv7rAb&y+zx#R>1+)%yrZ)P^S1JI_oY~{Ef8gTjB2R7nh(hI%x&-AlY;)u zu;bb$ayr=yJ{_x~FQA(K^v@@o9AfY++o$!uO(dSOyXnJ|mNaESdHa&vOuKyL2q()d zUZ>*M(tQKH{PIbKxb|Qr&RJuEro(RdLC}L92(@6n=OS#;PCyr#Dk?H23BGIz!COB$ z?78d%5v!)s^{RW=-f#j;et&{mcV)MmjI0B({z9S`Ys9;C`;+0h*?4AmI%=OD4=+tt zBe!A(d{`RF*9&BTy;VJS_X#0A6$k$Jeh?Fhari)MKP_0gjytKMNNU|hVC9}xB9%7I z?AzHw2piIYYfgi7-~0fwc+>@P@(SD{wTZke;z@IaAu1|o)3E^+xG?D+4NQ%Pyd5Pl zl%GYV7Ec2){Sa8k@Zs~@!zY3h!Rkj2(|p9>i#L`i=;BJosfZEj zfirZyUlhZ|h2yAs0r8oWk7W{0B;0q1xb$tKCuY0BL$_KN1|rt8ltM{qSD@42buc zMUIWBfCImm;TWs?wE0r*0*(5es5#yq`cK<~{7rWpol-@8@GD)|dW-izbDbD&v_Pl% zvthAe0RHP<57m3sLEg)P9O5TfLxO*o}I4i~)L67iFI7 z(9kdCMEg%3uG?<|vaQajJ;f9ZTIXYgMma7&GmAEUjN{8}CxBaLDP}1d!e_p@HAN({Kwtg-l^CG{}17`w3^u99Y{}jQ4{lzfo;{eM=((%eM1?U;o1W#?kbyO^%fEz7fEXQxez7Tp6}5;7EPhPgy#Ph#Ik@fIOCTF?kfIA6ey>RdM{ofl1PZ(;T9Ih7lUqJ{9!pmEzCPANN4^Y z;XaD`!1piCDEILb39*SsZZ5-Pmjyt?oEPl^yPa@m>3dq!c910hti+^C4B=H%hK&z( z;NPYW?!ZVa+*Eo^n=@2l$}bj+F^k<*4R_;F#clLuof6!+q6~^kDX?|XQhI(a>yIba z@pkn;$Rg*sq{N z9~-s;UeCKvI*X4HnR-b+baE*5nAXqVk~&9Tw6Z$a%s$Tp>D-3dvrscN30p_^(~zE> z`1x)ezS$Itk}aty{(TFGbxZ}(X;o1FFc}A}SK}p}6x7>kfQH7k@OEhq5xm82QFA=t zdO#c9X?|Ahufr|QAz&=*s>-EE7UT{QuTP0FY#v@>A!qZf(GuNED5`n;=#Hn1bi#!qvif% z`f42ak2E+0I)YBDT3fnuRT%y}*#3 z0=cj#JO~tO8M?;Y24~4cQ3Hl#TQ%Z?1Jb_mC~_08zE&BB6r`{!DVNvzDMf>F)KKz2 z15_UHp$hM!&_dc061HEY37XYZTx$z9{?0+i^9+wl7h?`@j_UV0G}+(>t)=m}h2e&_ zJS)I6gY&>!g2THe0EM>lXuX-;*`8Tp((-)raAF*~+#lC&JY5dVW_!_;06i4@@rJg2 z6~e@#LToDjK^tWPV5o9CW-gIoK7m58?`)$tH#1C>NE%r@vjo=}%i`1<#&FV1ikL_) zBh%+j2T|`l+<3K;#kG{;O1A%LeU;lTIpTzu=&j)9hh4>}% zG+%RIJn)kia5MiE!L(bUwZu_;QO- z#=BfP4wprMpwWABxbr2|vIac&NEi)S6jqaRGTgtMjzP25L)$f1a0!{mbYr2gJc)yW zKT$C7aV@mUJ?COs@3Tj83V5n6fO9t0SY0O1yZ&BGKCWB_vQxUqow2zX469LBQw|rn z2DkfIX@c8(Suk4qv;Dw;FJ9h!fJ7b~3xfYyGyR7+{GIEH9sxBl#Vif3vYSXuwlY}V z35H)YmP5nG82UP@7SB|+ku&p*&`;bLkK~F2>MTRd(m>(PM6%&%3Cxxaf*VJeCEdmo zwG`C2$5aFI=`a-(HKb7Gln2FdQPvvemfa-cH5st4M+~IS z8N(ERA9!=-4-K@7g5bd4Tmxpox${%O<&UOxLbx(_6D|($MQMdd zh&vGqeiM&#?$={+(0d0;s5hX1el#{Hg~H;qr}(Ys!ZDSmai-cT{LvGp;IonGS|^3# z*2T*BEQa-jjWUp-kq2iSnD@YH9;&nduWO#7;5I0YQ|~zAt?!Ny@GcYP-SWXr=3e~G zrE(m3!SG%-y5M)|CzaZjhWa;{#w&ImG`?Pp35A($Kic$J+-D%!?OVmmOcuoZz3ekw zSC5|zUb7f9HFVhjk*~dSluAeEg04jt)>WTr-!!rjmJ19}*HI1*?c0ZL1Cy9#FbPw| zLt*mER9=XAKP&_daF!UQZw>}<%LB^I^d@Jao>dlvR<6K_4>rSwxUuwQN&>Din*+u1 z1)vp9K<({ZG`H~q!;4m6yS$p7-I|5of5XV3Nu|X7x(*~auSCBYJGnOP4e+RX3X-l` zoN97_W(Esjs06{k#Xf9@>Vq=*2H?5pED1XJg-j@x#U0~=;htt2>A0ZC?9~alYQZcR z)m{RV*$(1?P8u{{Z==378Q5#E3R6- zcm|p%uE2js6-e>E74UL&J&0%7vL12_{uiDE#|)E+Uak}veXB*mtV(<%nFiMG|3kiI zA-C8ARDQF9U6IHP$zK^VGwT8?;EP}DfhNz}qriV_u;dM`fb)SU5h2hWw+2;Jh zssD&!q&PpMP*2TXG5u4KGF}`F=R;LL(g&Y3L0mQx4z36V_syA*?j3+O`({IoQ32XY zguy?RU+rrtkj8W|_)@@nArUpW+v$#HSv}SGz7eMiGXF{EW4hpdH+^Yeh`5Qxvswm% zXS5i!Y-4*F7KOldB*CIxJBfj$GQL`+gb^;jc%r!$myC|k^M5i?(Rv3B7-2XZO&w&| z3otsok{>b`g$u6}(IrdWEK+5N>^Z8-?(PYYHZB_df~&A+Qz{|Y+lv$FX_oS?SQ3k8dOy+(n=@2#_y4hV-tSz# z?;kHzL{dnZS&>j8h5I^7MuZAQD64o`sLvO`^wl}^f@l&oFR$ce4tydb zgD>c-iC?$_w-g}{K@^P*>7Unf;1N-QYlZUp(__O#@I_^CEwnt&cd7eV}-86X8!*qWM~Xc-?P?0=X_2&|v}3r#R#4w&kE5Ckzi; z9@A^l(bR64FGF6Z!DgjOFw&}rpNeJZ9P17{Zat^xW{N@b%5~79QbyuSdPs-59iDtO z9!DOo;r*?P$fd30TS_3B%rb5fG z3}$NlpgW2u!4f4lmoOcn0}cC#-CJXPIU$Afn&`luYmdqK9xs@1>afXDkyni5VM8+i+0!5K&LZ^{u899jk! z?+W8^w<0+FJ3_~am7$AK3W#R}LR-aR?D}Rv?uLJ&<+oaB*t|jdxmp2Fo;L@fzA!XZ zT+MaYE(hB+f4MjVGiZLwGAzUFS+9`_A*JOwt>QQrU3}PtRD9&UgH5^9BbjjPMK>Se z!FHTvJ-oYO0Osr-`QM*X2)*Hr>7SR7kIAASG<==Dwfsyq7ObVd(ue81uo6^f_v#f> z^e8CgQ@M>UnAdQUyxyNm?yCKxw_obvSdxyWQ6(5`oD5pk%UQ4K8}~Uk6WW^5L@RD9 z+Wrzp88av9)ouh!k5Pf`Tk7Po zS7aL2-7dsgiuTxBZ-YVWU5I;GHQt+Ki!XxyBcr3ji>_DRC(RZ)FmZPr3VewmTba_r zxzP<`%pdT(SF6G5`XqY&;{>>NF%b^LJty->BZ#)g{BV_p{sSRM*WoFR2jJSl=T1XB1Q{ zwLmR4=II1kR2ky^aojDQ6>)ZLtNNGZ{GJsTi)3`OHmT ztBobu=~U5U2LAtOfQA1<1Ek-Nr~h3G1=$Kl_c*o-&#t~h`<-9%OQp6`ADPc&USpF< zk98&ZkSuDEmwSp?L7)9CDT|{yh+V8#1-?$ow>RG1vts|SEn9H8fmibmJaK$B^j~#_8M@iF{5k#f&Hdwl#2(>Slw~p1@O{ka~v#<+6 z!4XU3TSVzI%{^$_lnGKn>F^^$81@Jy)1Qsq^lSG*{Cqzf+Rl%MwE|{1BHIA%Z&}Sp z{s+a(e5ks(6mAO?V1>#oT)!)XczslYu4}INaQGx$FPDTMd4L#RlY~gnYtfFa#uQeG z(DTnDIA;Om?USdMrK(|)p8{JSjhg7+(*=jG+ra-`CK{{Q!XM!)^gyB~UVRXXx6hQ} zx6PK=c%}+3e=mn=xe{c-i7@n1oW&a#lyc{P2H?*}pNK~4FPbWDkF&PKLT*qa?N89- z53SLG^-Z!EHL?))N}J$V_PJAy8@vT0Q|V<-Lu--Mq|`tTBv&uQ2Nrwb$!Y?YTnxI* zt3?TuXT)u2F6?-c3JHIO(4#+)2+WcroyM&0|70F4UXlm>VHPClQy%|TN0b`;D8}&C zT$tyWN7l;RAb(rqamS`2__a#{CC2B2{yKTws>Vj%E_Ud@sv6`6uJiX=I!ykwn4!hS zS&ZI39fExUxjqYeRX+>mrIKO(+a&7b`;fQ{edM1OE#-=gRIv6eqjU*cLyk`p(d?1~ ztFCY?=NwUEQy@ru%!Nx)rtoZr71cMb#rlkUt!JI;p`?wG_K)kJM$#0Bc5?!qz6x-k z9}U9#jJk8Y0N*ut&}~bSF~B_uPKvv+v4$*ls5M6U{e@6;z!d*oH6|Y(ZH5&iB6!p8 zF)fpONu9h(aq*le*l9Hv6VJGUyh8#m6B;64-gJ)elaHq$J$?NsZDtz%W?RW4bViw*Q z_`wh_tOwX|HU)j7cC(oFKDz5y1{$+E(#3@ibZ+rq`gYA$`YmHQJa4Xn+aHavch6Q# zW;DA?d^rfVIfHYcAU?EGqITyC@!j3GG$wp6xE_2==DdpnsR1*5uN#Y{no|%=ZCZb| zy`xfwjySUZC#9kn>7bA``B!XBn`SrCK8pnWR~3N$T9z>Iemhnk_`-kLvJfY$dGI&p zMZ9`{6X_b7%RO7=UWPL1|_HXa;0MEcfLu~O!wf8H4lP!d%$en9K5BM zL=9e+;1Tg$>KastR=3h%<(&xn}!KDZF>h9W!n zb7uz@VxMgrJs^+;f7dKS#aD`G_%RyXmFJ+-8(-YbyJ8|IiLW)yAoIESN(`-9j1u-!VDRowa`|sQ)!uo5 z`pGa0RN)2wgPs`O{HdC*5o7C=CF5Y{V@dd^mxzPRMjhpyhc?oa!FOX9?>c8Sh}>-C zq|e3BJ;n+UuCxyqjjRV<&zoGGRsxzWzDR_Ew^84Ka5Q+L#vfXj1e%xPpznewF=(;C zB@1`biCi05JtYzAww>esrlc4vBw9hWfdhm#Z^BJC3h2q(1vvb>93);WfZ+@CVZ!4) zzD(5t9-p~H1cIm2CY=_t;BEu`D|wC-bloE2ooT4CXal5ryMp^o_IqT{vsZP|V0`WY zS-8L$mTZcF^+JM};!uaTEz6+AYA?)=SHP#N?sel_5R67=GE3qN*ryYRoo~ANL>qB1 zciMxmPE5rXej={;HjdkMb|Rd(l}_i87`&>KjO~XkVCgMo46b}j77jGQS;e%IsZ z5#eCEctaumr@S7-J-p$Yc>-|45m1%>p1X4WJvrRDmbzyCAy0*DXn(_U7=3ODr@LkF zp^OQnyv<{%mUMDF9ANaOEVih`Qo%MBvj|^;v)H))uTT{FJhR0WpP6;$)ah28y&KTn zMIWEsKSE+fV_;`qKQZders~=$(BXTQ_l5s4KoAZ`TXi~%!oicnpu$?T8 zi-V$(C8Voy9Yh-Jfk&R{=r>M~&YhzU6BcBnMaejmX^|gDRGUB8yJy+F!(($j__P>j)JfU_IvLgEW+z9! z2EHRl(gCl0)4)G6Gs&`)uYAm+bex=bjrir~Kw?HV2v0ADJ{O+TZkh($+85xP%`Gke zIpxynyNs}u#Uqp|y6E)tAE@+#HB$@iBl0A0s(^ zD@(ldTp0&8`@pfy7HF3+2_06xp>`e;;InKWUWy+Bt0vW8sxIp#?lI{xsV z)y9CvoiNbNi{^FSPKNTXgS;*?PN=FmK)|=h{7^KjHwZ>??eX~_tLco=t>rNFOCn7_ zKAR{FE8;M-GB~%cg>i{X$x{~d8+_zLF|HQRpREMvxyp2$t_IYl-Q)~oFOWx*rE%Zm z%`kW=7Q$?M_!l0<*eYH_WBN|<`)Xn#pvE764c+3yt31fcBs)?<@ zG-x~$;u~H)BzpTDaG`G)L|%+1dNQJ5V=dXbu{j#{-7JUf-Hd29EsjblEr2FAR{xe= zfS=l;VE5}L;@%leO;!A{F>(WD>Q~{(vB!z_6Gu3s@{FbznBt2`%TfE_O_Too@x<>T z&u?#D&p#OPAya!~q3H5`?%#{A#Gq#?{qZIZ*ED}6ax}EIJZXpdCN(4W#WNfc9>bZ5Yoy^AWA*~|7N)3>s>*dcsGIjm<&Sl*Lkf~1gFX8 z_lw;tmi^02FOA_;)Aw)0^BH^1Rs`R+VVLWV-@vuVLq;_*8Cz_D4dC z%kbKm5L8qS#GkWLG3ECwa{iMlw8zF0KURbBdFqcr$7ayI>dfj=`HGvxY6X|V#93S| z3u4TyIom*aB!?N+gk-Z zP`&vv5nC?;?<8vR%#9o)C;t}eZpf@u5&zL6`y+_puNaVszs$EACgc48X*y`tNPl%J zV1C{PFkknc7Aw@@()rAc$||S(_vhkG_AIcuca6+BmBN-s{e0_qW87;vmh`i@mwyAL z_P?HxewQMMi!8@}n|$2r$^NadJlLf7&>N>rQNMqHoNs3K)%px$X*vZbHzvc!&&p`5 zriFJtDZ_L7YOs#oivx<;DE9IXadmdY0e08<{?rTpKCQyc{l1`B!PWq~vcN811CN%d zqhrN-FnH#SMq{FIetIa*mrTKRUO{a2ri`f*m2i1}K1Q;d(g!F;)rJI`S7MD7s|t8> z(g2^I+k!XQTKUnC7z#8Cg0;R0eSBLT%l(VVq1Gz8d*(%A)GG(2hyGA5qzX8*Z0uvv z6$8Zzu$_9N^@{dd@*q5rLk z^TBO}u=!j*(PkQIy@wSs(Pxwx1ekvaG**N!GyAJpqmIdeNue|T%P}nqK71aH? z&E1}SosPuC(HAjwxYu8j*US~h*pDyBo^Vz@Es27W`LT5P>%A7?6EDeS{RS)+Qo{pc zyD=^z7KMIykeVF=kY6{-t=v2ZRQ`$J4xe+a&s6JaC?xxHx(@=(At;)#7l8G3)u@u&OO2E%bZTRu38Y>@+LGN=5P`_#; z`8>ghT;8_=e}O@BAtAwgAB@vyibbTs&Z@E>#NYRtx^d;^(y zs)77Cjil135H{$vQSrbDt;(zxEjaf-`qaP^u86*-yBagVI^sKjGx-4>VSnT)u9Dz$ zCkGRUmtkH>0{flRpxiE20hiE&{AcOt?+o|BH7&uoq3G(phXG8?6e3sFFx2 zw0|3*u|0Wk%OC@bzYlUGqy`I3_R^y}S>2>NlT~kp;GAweCv-oJSzbl4?0X3Qb}{81 zneKtktQflZ+(J0KzYfMlNoA z&&q`^ZE+$REDEz$jYs>tv2ZT>EcwJ)&?Beaao<2Go(MU>rF0Z?DetpUtC>}fWbN44 zy9h#81#)iAEBFge71$Y<1p3U3O%^kBK*9;?S^Jn){AUHu+lT0_W8qYJ4y!L+s$?tL z4!V5Q6|de8g1yr#z*U>!0v8*CQ>QqtWadKABirfbhypOV_MRSSECG0?vvNLuw$Fz{GG=tU?|AU2c*c+>zVu&x7;avG( zY|)!W8d*hpYgIB@F{`hpL=81ldPDV;JmKotK4Sa1$E4UXj?O0%_(XFFOqyK4Z`{~L zzX_D%jnmaI&aet2(wm6?;uw0l(~Zwd{K`iB?EiIfBLymr^hViAv=X>M^uH)!*Y|qp zkGn}~4OpaLjRka8+GA^Q0Hs?hP^du{XX>*0;X?y(JX}pzwMx;4LjG`s#hc=VDlmBL z7&OjHCBs)#K|;0+X1Y3X#tcJw;m{50?cs|X+a)n#Lmww_DuoZu%)-u05jt!w3ja=w zrD=ZCu<=(H_f<2zRaaaG4aO+pZ>OmwCpHddF3yJYA$$L4EyH8G3uyc5dM?}W6+fXn z1;gbFNMG*?s(g6^?tdnYCE8IK+n5MPw(Y>3Z&N@3)`Pmo9g?!;7tPq90Ns-^Fi)x+ zrg#g$ykqtJ$MaoewsbUgh7_#dZ$+OO-KBKKMS2j^;iO9xxWA}?lVh`SeNX}{`CNyS z%Vc42Wd&?qa;0_kPjxbS?+;NwkqKwKHj&|cBT)UNgcB3OiF3hoE_GZLxs&e*iMplu z2wgWNeaui;mD7se5Eah6A1+ zj6%0~cbGLN2A!U)!9l|zvZhWAdpSFDfjuV@F4o}{Ar`f0cBKP@4n*`|3C>EdLvdEM zJ}i)g(LT40%}(b*?Up2ZpehGd&#_fbxFor@EDN#<8~HVcg|tUN9nQDkV0S!U{J8oW zIcB;Uj>;y$3nE3<&oM+NRwI2K=8ly^=_vPh265Liw0j;lc6&q|V&>Dngc;G@0g~PW!GjwTgePBHy!xNMHC~ zy7@plZMafJI=qeHZAd$R@VgC+ddopcaVZ?`l)?>>c63RM7SZ&XiM}}|@WWOD9$P!Y z`-EB;{F?#(DvROPX=CnEUpLY5eMf&&LYy{UCmR{A_qekqn(d0kearLkQqFnmzQvH= zeZ{PG&OJ#O5URqpD>JckNgTTN{3IWS<8dI+2=91qhk2j#!0L?!-83Ts*U04Z3+Fv$ zbCU=olj4I`JnqgxA8 z=+d*xNzKtptd>Z?tBvk>IxrcEz=kR`Y+$jTQdFD6q8eH^O~f2(z~W9V4BWok8Z_?) zX?JtM=BC@k)8;If%jZ)5(-Mqu(gisY5B%bq!aL?`LVQjUv>r3U84Z`nLl(;}oxF^0 z8ec)R!jf=e;!GkGx)&1#cEKKpYiL z?m0#E+jc;SR|cBtej$_I`lGGe6?%bHt?Jd8)o(cmq|gp_E!V^k2Tt+li@wm{x1p@U zwgYF2rC=7TYIR%OqZjSZlc4}f^4zZ!r=;29glj)Z>jx*0xLO9Y1643!N(@l44Sc3< z#HKTnaA08y(k0O}RWBIc`K5C&Ufm=$Y!2xu@6G?XTSU_EHCeDF3awxq?MoyO;i!!( zwC{5fABMQPwwWO3l7<~>Pl#;5I9g>@0dL&vSTu4!|8)00s25*I752u%DTZa)p6o~> zuYMpcL$dVjzf!nzvJN7{dgA&Oi70u{SHpvE6&=w)3(? zOuGnzr4=x^wvyGUvcN>Emgd?PV2;dlzM!;|_cMLnx_ANWI7&;j>*22C8k}~B znQd5Y#G*6}iZTeiN;ij|+40aq9bwx*F&_N)nCv?Hj-J@@qD8HAKfSM5PA^4BLF@Ja zOzbwsuqPvAT2diBeW!+0nN7!w6^h(!)f$Mpeu_@N&Cmn!wdk+721FN)l2Xl`ATIxs z2L2o-7j(pM^wKCDP*R4L(NOW*l2(@3f=l33<>i zJ_D~S|3|kzDK}YpTN_w%l-n?ktpr(w#HsT+_hc#i`;Xj1I%le2rL`r_@bSb8Uhip; z4KsURnT=tgzECfpN}a;S<3T-29(pW=j+j(9YnnkXOg&CNsz^aBIZBp$ZQ`~CYeAKL zF5WVVfZ``d`OP=3keFMhkQ6W-bW@k%;qo-J-#i(bPxxU$|7Ol$LlQk@Jq6Cmm%#jp zApEk~8=KCVQ=99i^?mQ>-t4BYz*71ggCLQ#l zkr(`@TTNqZ5@6t?1CA)Qkl(Dvw1CSdHfrlpaoSwS{p5t5ojdSB(**46&jWjJA(U}d z!LLfpN_2c#>-iERs3<;6w|jcx@=aazS+WyMR`I4wg#U3CM`Fmgq+;w18lp$<`N6?| z@euI@ptoxkb$uvJj;UF}=RLdO24=(EuB|Zr@xE3M$#Q(oV$tWyr>pxe4-ok%mePaTVoNR|tFU?q;XCE$cRELL4>um%i()!K_WXNaJ@xVPO#ndDihy{G-TS zEkFEkYBWa4Fk4go23)VK0EFT6o&+D~zo|YY``F&$#C#y0eaDEP(sq0$T0yAx0Xo!I zgp2K}smi5oSa>N7TAc2gJkk{4UG`O>mRJGpIhsMd?W0lII}v1?-7)^5I@}9=Pw#!+ z1-gETI9B^3HOj5vi-**xbVLF*zcL@zzHKA!rR*(LJ`0{RT7IX>Q8I0M0hem$j6>p+ zVQgb9omUc1-py#G!qus8XXR|TQtl7_({v$i5<`}0QBFtC8yAgHAw3eMuV^W})&vFBn$sq)#U~!_=(tbXDUlXl!w(vkr;k z<)8mZrKkq(9i(*hpA%VjK9<~Bmw_Gj;kZH}m)||(I>|M;OY>}PK;1G0M@AB$W1}W@ z7(PpbdeoqdULt{U1TILi?}4RZ>1^#+(%+Iok zhSpg>iOyLAk}xwDwzQSO(1<@SAEON`8JcZz=@pW2B7)nUaE;p%q62^51>n37$uMMe zvc;!H6?(3(pz5a>Do=vYU5?Duc0-hld?Sh5@}zl#NuA`;lUTCn^)Y&Qmm%T|Ck$@a zhK)n3aG5fz4O_>+Zk=Pix>f@X$lb;1FVdshT2p{~m*Oe|m$(*dN?GOjd3#g(Gnl=;VBge`=eG1AoIvi-Q@& zL2x4@5msK`igeCI7;OGWLuW>UelNq5>)s>X7Iv@*2I;%x z>zt8KB|6V7!dJVD$*92 z81?*)NqUPOD(m~P=U6X2BC!sq@XQhxppKs>G?Gi6QT(=;Q0(!{;RZs17{GXlNm>T> z3Y8%9PXg4uGFXi948K;ri{?LYU@_ZooJGDo$v)){&1Q9^b!#;!iC5sp{S$EiN`@@3 zjDgSt)%@X^wZM-uOR|(Xc!ime*W+^WLslk@^JpT^E-B)`6>GS$B#G>36o;INez2-H z85)e{B84ARoXvPQZgq$A4o>i`P9Fu{sN6oI{A!elwsrORWM>9E4oJm4 zKfh9iMU)De%>orSW&_^3fz;31LZ=L6@zUG|SjzU$30I3D*uDyLqF#~5P9E6$j3MU= z3)%j+jUIgMihe&BjzzH^l(l;J+y&Dh+dhC4dN)vGUvadwoJF6A>*4n=F)(TQNxCWI z8O_eh!|!7jm`seH(lx`HZUGn+;7Dmcimo9SCRmv&iPZR8r&~b@hHqV~@qc8U5WfxZ=6VS;I*D zT9OP3?wMTM-YQIY+DNwlN`w15ev&!8c66ak4YfcsQd-7pG8x4JM=`)ebaxH<{~ zoFn*mzAJeIYX%4Y8bDtjDN%S;)?D~R5-{2 zzS@1_@BjA2l)$<8VSyj6Ib8tSAu%|;S(4hPCgRG1U^EgLhfZzsU=$Za2HF>q$x-Rx z)nNePe_UF(M&^_H`MOxRN{$5GEksNIcXYo_6}&fFiQW^-q4;M8UKFf`CB2(5D=Zm( zGmq1yUrK6u>I0dd=TNJ4g%I8+hu43m;SBYyxJ|?iMDlo2 zyfy}&+vuXH-YUAVxBxbWSYrMabM$X@G(M#<0mY_dpiBQcxIUbZ1;1laV66igRL{WZ zh+D+VE0aZ654Ad8OTzRDO*nN=54v{vVU>`P33v4kQDXZL)nXUwpdf(TB`R^L;eFDn z$m;tu6!GSpPxRzG3z$9THI20kfcJ6fXjq(&%Cvz9TwII(1G0SLoDz&&w*hZFaiUx~ zPnE4T!A8IZKiEdlcc!H*Aj`BOn^~nn8BlvdTHbV$k?qhEzU zgtje&9#aC}_Ck``z6X~+|4K%NCvzd+=i_&0A+GUBJT4NDhd&=G0Re* z@H0;;pG<*zrg@nj_=1YAkEF&%o>(*04aO&Jg*KmbI%m2WL{3P6@$IoB$*U083KVi{ z(^i4TiBBXltQxMCjstOVroNe%ja6miaQ^4ZR7znF?(Y&MKZM6a)QUZ@_nsG8e2XGJ z^HR7EYN2o%Md8ddO}tOptc@v!#;&ixk^?76BEtu5Ij|LKZ%0G3%?ZA5)m>_@SAlWs zS3-{4Hkigf7vF z&jZuMArjL3j4pSt!$kjRP%!m?J{4ay*j@;eh5}$~`9e7K@(R~48_S10R|46W+dw7J zoYT3WnJjqlOi1i7>-!g7sW6yU(ngo&ft?9MNrF1JZ^*dPF)247MlWar+b$d~%Q$MXLfN8#b2T%4=5k-O$CimfM0@YO0oT>tAMiTzjx z`?D9I{6k4N^wk&@&C((A%TxZsX(4=ckInnGxY2Ly>^ep5H<1a-CS8By@w~kh!(dJX z@wtb{JX0Go>>o>e3Yn=&IuJVwcfbiY`=4pH2_DGj)5y9C+^O=349koXT{QuC{hr~L$*nf!8MzhUC)4Jr#9l-F&j}vE)n)D=;U*{!XQtF z-OrQ~NbbV(^yIM}eBQ<|1XV4x%)3u=_uu3;-Qrr8D-P4?UdzC_rWnnfHL=Dy4jgp7 zu_2JL*(UE>`+{!X=ra9=KXM#tr2VkJb zahhz}$rLH|`0ArJ?Cr@y+4fS1f7ni>+N$xI97CA-=)xS$c+@}l-YWY0>RGa~vX@?EX!*@J9Zb6ZBZs9L$Tbx^;{CuHJ&mHcdY8ovZ(0i5 zewe}QO{|JN%^khn3(&WbX+kDg(eb^?;3e09)$`n_saziRmR8e)h7S0kC;?5qJ^Aso zt5A4B8a}za7yjIf2bafLAaP?22C3Ilzwiu@oU#B?bj!%cIZkM!R7psf8QxtLPw!Vm z!3VZ?HGHvvtMSW#m?9Aflbk^u=M>}p3sbm1I(ex6-5PW+<$?T+pQLO379dy7^39s3 zh%2)rrpfq1ZKVoU1WIDHQW#loYEQc=l+bT;GQilcBy`?C65|j`2Cs?CfwtpcvuE8eG;t9o&uBZ2Y7c zw$3!bNs@NBz1RSR{6*=;n0zQ<88}X_6f9Mb@_iMHSykSc7`<$!yVBAbmj6F$bZ0R( zI6tL^#Zz#s;8?spV;vEl&i=N><-nF}H#mptG^}0Z%^QswAT1u@aB@up`5iM37Fnxt zyFSQ5YS~=eI=380*vvA(!4~%}vWF6Fb4ZvbO0;ez(}Ocj;b!^n*54OjP=BRPYF~Sd z=qm?8uV*s}a{NhijyBTg2P{Zt1bc7ldSc(}yw=k3B4qZb$*5&xN`}2`VBPk`n098! zShK(e+-$tzPWc$HHJJ?VY<|A{cnfJ2lz}B*$APV?Dy-NS1#WIzVV8O@={BATM@H44Pr(wRJ5*~(8`=>mCmzOe7~YCQeKkY-%Sz^iwP@clX?TpMzas?MDT zJL5$lc_)_sEK3xM9-(9X zXF&2FZG0YNfoEKF=^r~2bT1Ah9WTw{S7Rvs74eH~w@HV`(qpIwLua%qM?=A}T!?QA zLj_3!m&Qy0!3Za?UL=e^e&*2iETi=LZ7S9jwv+DAddNH!1x=AsaQtd2C^D2lXv7r! z@nR=jpY(;U|7`$~`pa5!cfKSM{cFH&f*ok~X5v`k8nnBy1sc+4gS1)=|7wmf_Dh$O z(w83O+t7HhQDg|ma(TM1!jixKQXXa18KTuAhpNuoOCKzhLB4T_xQGkky|%AZNh*xq z7db$;NTowAn>}tNG0>2>wAFU!R!FsLF)`d{Grc0xPq*{sXH(Vv`MYG0Zzt=CEB@25(oU z0f#^TBG0HFevOO8MUSe%s>y&Vm8z2^^EE-oYBOG6SB27oRuCRF9RiMo5_!E;oRwJv zvb&iw&?6c@M~UP6U3=JF#eg;m6O4TQoW!Qr0V${l--H0%f6ED`OAS(Zs0F_VJYWwb z!q0WquxdgsiCepgB8I%4_qa0^`~Y{K5{CTt#83X4C^F_{#+%B0Au3>(Jv5}P?{U}muajq4xMuCm88Nqr`M=_td6 zbS9Seu}pjZbg0<694|F5Ga;ra_|a!3e7>T9*Zf?#@s~yL^qw*Jd|@3(epmuG7~19O z+d-2?3rU8*49Ciyl~njh3Ot;?8a5}zL9dE8TsU@u6LQWZT+t#Oa1Z5^OvA%ekfVg>i`}-O4vD8lqw2) zLS)gA)^AcpWYUB>jGM9rJAG!gY8P!Lk%J|eb?+QiZ(#^;!ESmfFoyIS#NxC37?i9| z;fAApq2Je*iZvKxXA#e9#csj9UaKK1vW|RhI7reeJ>anIa?DdXN|&W4aLM8Q^u}Ns zcy0SfC+m-aG-Xw~c(XV$>KG3PSEY=|xSo|JoNLv=3k7QNY@zMO_qzp14CIjb4#L*!6a#Z=}#PgrLQ23Jq7_v&aL&YTY zpI8fBlESz*BNH4>s?lPL)h4$bbGX0nKk|PV8qMvNCG0$2j-H~y*!fkLeSaxr!|fIL zEh~+8J0Am^jP~;z)o#-BQz|j5&ksI?rlHMPJ*<}3pkpqrLxI;5SwCYk+;#ubI=4{^ zh3&O4rd6B1IwV0xE^E?8<3H4J=@G6rG9BLUw1>efVQ}Emb|?`o#CZuTF>BHmYAn!9 z4^5hbv2W8EUOAeiy&fRd9e3zKJrA;~TMjfGN6Gt0FSzC9F_b=lD2np>eni$ zs>obev8#u-h1Jw?e+oYk&GKdUn&@KPm$VoD(T^`H;ku0-x=!U_Lw_?j3URO~GY691 z+QK__KQ$WuLBBaG;9Y6<-hbXmJ60N_Xx>7UEib^d{8;#rtVI1=_n@9lC6^+&1408- zFs(%mg;R$}&3GGVbgZL2)Eu_{69>7@rJ$i(30WZj}4RJMH_^I;lugXTx+ z=D^c*$2J!@E?A2NgAesxg5~1EQ5Xz4KiLq3pO!rg`J@@@cVC(y$}Ljp-QOe5e5oX8dR-rKI@AV!iAKD zub<_^ut{sCfS!LL7b}v!Z(pMFNm5^dOm@~)F_}BHi(2nVg}_VpWTp5S z(*JT2s6CH`zq1~369P&h@N^KnCq+TnB0-#Jz6z8t`NJ0BdVF&<3g;c-_=JIQXnItD zuisR`otGQn@Bv4Z8eW4rJIp~}Py(#olfj0mXpZaFLAR12yw+61F~5$Hvya)C=jj@p zxjO_bSO!(j>6WN7 zc_XXqH`5;*){-*`rD$^MJ;_k@!94pkNcm~OG`^MWKK+skxp{!MiwJls=HT0N#iX<( z9b)bp;m=cB$&{%x@yxqDob;$1Bvn&>=^s6q6CRJLg->WHoyUKx3?lc|8?gDvKPuqO za!Z;E;al^3`1UXXIlo*uQWHU56{n-F*crMbB$>K)I%Du{mXX}}+Bm=}gWRkHkZ-xc zZ4d3BRwRxVOx%G_s*0h0FdB2b(y6rMJg~jd%FT3F!yTbxh>1!znXb7R(!Oe=`Py>HWkOUlakvrgetTpao5zKfSgX3+Ii2Flk?=F$TaSOKM;@_2UN<@`B zo}-EL|0I%YA$72v-Ju86Y8hf%1J;>&(*3G>Z~%lrzFQaGxA)T9{&K7XP=$94V@aFc zBT^Ecgns>@&^&b-jrpE~;jdhY>=!Ha)_6cd&01;gqZC~GZ8HYTga;_ud+fsPntI4p$Ga-g# zpn`QNSiMb${yC0(o0SY4bh*sOFIxuMleXaWono!y0(R0Rj>fRIJP>4lMPXuT4_WeL;iWbiN7@yF=%v7;+Cj5Dtk8P9QQ}_QDt2;)Je_4m*u&m#yS8HLkdpEvRbEJls z@{vm!C0SN+aPV<7=n3n?BGqy9+cF&xJRt_Zu2$fR57%kGktkTQbJM24|qt zbvK4&69Or-0-Pl+2yeZg(2u!yNZ{x{I=r7ydy81|Ry-G9TW^A69$q9VJsr7w*%;mP zn)iKXLJCFWz^SF1EB4L9#doS;=RHTRB32RWLmrZ96=kpuD55!&k_kMs2hrnxc&l+b z?vFI$x|GIakK}mlUz<$Cl*Gwwwi9#cj=_^>OmY9EaMF539Q=h1;7Zb3d?yuvlRy}6 zGqq=u`WDEU&(xn+>d5b~3|d{z6SpisbQh3;nGqWKB@dh zgbtLz#{)Nr3qGfcymIU-o{3~;Ijc$8O?H>OC4HXmRDMwrX8FpqO08JH6|3O7b`b{4 zCPLXYKa%cTk55B0K`&g5oDJ2->vNBHTU;u~;fSS>Ahi_aWXgH8vj7fVHO5>wEvg|o z3ob3VM_)HOL;LMg^5kkRUSt|qOX?)N;Gayt%x*&GyCO8QEC#rGZJcZsfx~;_L1|V# zM6$EaG%y1V74xXf6ggb2WDW(oWx%(yX0wUCO?e zJugX5nO>;EGOa5UP;yxb8S*(hX17vAp{3ow#QtDa+t7k3&!Fjqkq&pM0#I6J7ow>N|z-$z)%>o5&Q6yzEAWXHE zev(YW8^_m@ThS>v?nx4!`(=(s_e;rNfgzrriW7}fY@*TkocIrfYH;WoLtp-~fO3{` zo0npSLD?<1s&hPi{jUMLPws%^8is285x{@&SQ<008{%J8Idr@dLYFtE!EK!saQmPM z)6Sc6Yk%?S)KwZ-tR09;7Ox_YCM|}V55iE}kcA%GlA+whj%=T8h)X=gAbG7X-btTG zUH`U`q8AhBqlgH2Z(zfpc+sA(*U*Y?zit!#CVL`xEQ+KWrGc-a5_Gvyet`2Q(&AB% z*59Q5A2h(?|Dge1Uz*Mcb;WR?Vm_)atH9#a7%(%NhF9v{U~ZW`^||E^li%Cni;dAx zWgQG_Y~*mbGY5HVbHR$dp|iAp(S{om#LOZ9mHPd$pIxI5c$V^UjI}W(Xfg7=C_cJS zj9EgD$lcalv>CDh@f@~B^D)K1j+gX>iUr1A6$j(4*>F!H6}4E*#^BU-Iuy#yXhGl0x1{}o3f^L`z>X0oh#V-#ebxjjJ!au8>Wf?aACM^te2%kE zAhwfcp#*Cb`<7}8O3jj(Ba{XYzj|V>uNPBb>Gh?)#Mt z8gG0dS6-A+W3N$;KSUxEr_u)x>LFAv490{UiOWIcQA>DYvjUa!A&?) zC&4YuyvjGcISKBuR@(HcU?kP*;J?i3eTl6MTyvc2s$qVCj;LV5ur@~ECAVLv$7QLBgxeC<6+`^^l<_MiyZt>=wV?jPyCY#-cyBMG+avgpt5*TnX`6n3hg=l{;? z=R&pSP>mrmnDVus3LaDhqe69@r7nQ46UO1!o0;^FTLU%*vPhOn5jvcmjT;YV;QlN| zlgSi=e_pSs;2(xmSTGs8^_etkT#C;xmvbFnYIIlX9KJ;F4sN>sDf+mvm#Yrr_gW~j{7!mQ{bkWk7b-&};KS=)8$ z|3HT7{98niYNulRh8^hpLmTF{tKhOEXwAbuPca*p?Qtw)HT@zni_!fv@ubT{T9RuB8`(RQwXlQc%=AZ{rL&PX{o$Q? z_=he?^J3JPYVaBQk6g;iM5$e|^x;z>cqku)Kdz4>k5|jWF2Q&@@Z~8P3VTJDKAlFp zdgtQy6BW4mL?*6EFMtf`boenoh0ZzU2jh+wVBfw}(4T3AM-u15?}@o|XO4B8VxCk^@ibkkw)FO%ENTr{`-y*OXW|(mfUWW78QiR}IGnr$VuPAq>Yc zI*WG`nATjN0q%>Sb`Oh)`OYUN-lyYu){3!)zX?rxZFw@MvoWeI7a#Xtq8lXVfZ_Ko zIC|R(8=UOvA-kvavg&F`&rQc>*L)~D5zVg7c_2Tzfoz(_gMZ~;$byU6IQ5zy z#4-Bk)~5lB?s4`dHgv1BOZrZlSIMH zH;8&QD)O&lI+QP8MO#vi(V>b$RG6uWZyP_6KYn)f)0SEExGEzF|Ecee6LSK|7vHGH zzIrmES`6z7ZW8xfGH^dQz~p;N10soK zC_EFEK^A=phg^w2RD0nDQasTY&rDCkOaoPtyqJLStf?TFBZuKZ(X4SU8v;fDqoOMp z!j)5bwCz<2SKKuob(M5*ie4LZ)jIGqPB}rhb1H`TCNVqI2GX0Ch}J28$%?({xMful zcrjTbaYs2iFH^$;M{)exx)ZMLcZCV5jS$GFaj9edD4iMTi9(}0@$(Y{nBV0ND^59(8}-5%kx&QwSKj3RS1g5E z0suD8(otez80i;TiJ!cZ@XCrda(^9*YV2yjKmF}Av3E6<+sWiv*Y&897L1EBqrqnU z5juVM6(aRS6qR4uVFHVAY|Pn=ZF@uU;P(>T_al{m{P<)>;VXnzm&NS=zn<)Acfu>; z1kNi|lD{ohs6DfUe=EKjbn55h4Rs$dGH8XlFGNvnaxFhT&=DKl|MAP+nDjT61pbGc z@%lbpc=s`!*~1P{^+RloGaN^!ZJfp3%xB|oR2x0Km6GQ(B|%yC2E!1=z=?~5S9gwm zwywBL6R$9<@P?;!R9^)8(u(j&J3;Td2vmQ*9y3(Fk?y-`aLlF_g=i+4nH$nxU7&hN z33xZ$87}6A!lMgfaOdYDFf>Ufd%v#5v7yg&h2$x6`=}ATc_M=)XYbKuW)V5{#0Hw) zI`A9>4w2?vE#RM&P8KyTf@Bd{@JR@QoduCFv)6=#31_45?<@4GW;wt0TLyVkR0`IO zZg?o`7dfcv09&jJ$=1V1$ociBd3rNlU@Kcy+dPkj>d+=^EUu=h)9vwMZUI%B-$&EK zRPlwCD*Eo~B@PCWAU#%x4~~D~i+pqB;%mI%#TR)@`Q}X4dOf7ux5ZNbTo$+L7suqA zMR2q89Cu2r5QQGkCJ}s9*puc8u~RBwc)$qX%v}QAbLxTHH3b!x)bc;a8R61}c5v)m zA&e;JfJ9X#yk%`F(Ld|3-PjbxURq%U_lHciZQv#pHGrevO32&40Xq_EiFs%}PWcxG zGamJ`mHc*4I;IBS*QT<~zB>GfI72Kfb>Q;fzqJ1Q8fsFt01H5uHckD-Kh>7U+E|3) zds;3WVz$TGLcL@t%^Txx$1!5_bv~x~;J(fR+#x4`D^M2EnzbhV*-M(Gy=n9wf4Ir) z>|qPb;AgN4PP*>|O$S==Z6qU|?i}P7n5`kZ^hM*D|KZ7p$o`mX$Ga2pk3wi&j3LdvD2eVxO zn<$5w_KXth?Sre0Lh-!!6ll1xiuwoFa^rVp(RurN$pwLToSLN-XZKYdY(_GP*tJ50 zJ+tr+G~r!`GHNHmnv--+)6q@-*e0n1Dzk%7{OK!lU8)>T38j;(PG0oJSL9Fm(?T{# zZpM)(>v1G*Ar$m?@y!-AP{)x9w0bK>d++SxpH|9*zY2G|hr)Jp#YV0`9@W$PmA2f_ z1AUPHyoN98S3(!g+zF3jnn{gc8E0Y=1a4oP(NB5;h{iG0$Br7@D_;OvRi!YYFAG2a zy+vqa6CHfUY|yi-F>=io7@2ECb{-|8BN^nF&JH}a zY%`uQD&Ttst;aqsaTsh_1_ymL;T>z4(>vCTV!c_g_OB{N?bJfcqgEIwrH3yTq`|#$ zhxo5fE8_D5;&3y%mNre}n~Y5^gLf=VTiUCLpVPwN@ecvKI3o}8569q!4m&P2U@97` zo8rN%i*d#4deHnTjT=uUqL|E1w4jBMmo^RyCY7L8ZXg;yZN#^hF7R1r3+yTxApRb$ z*kvJ0MBKNLlpCSwm+_dCE)Rjzx#8GY@|@_F3PZE90z6F4K;G>}6yN!pta(3&wN91O zGm@=Pe}J`EKblO91d?%XTn@}zmPEuZtHa*H33$7xn@Iy~W$>>OnkTUNMTHS{vz4K1 zygn7k*vXTV-ia`1h|Y37vmSp1fq(+?DI%2`?TynmX$HB|)5j4omnpGHbWG;q%fCHOXj!}Bwy z^Urjs!dCxxB)s%N9-bVwTlkA_5V!-jCl=t0yFT=(FT=WJ zv&fL=L=ecY#hHcI_+mXJSgM?gNo&%<((o%!D4_zq6Jqe^y#{=3RYZeEnGI!UCf?O$ zZGhsk5cG$=Cv{?YC(n*pRJsB;!5p_*6123Cp>GFSi|V^3(2`2$dkpTN(J`60-{d!a zGEW^74tLSyawll)T!PLj*)TdK8Y}H4Q;P{9;PoY!er_kw^(+dVUl-!bfL}ypnjGA| zrV9PfJ7Var-#f;*(|ONW2?&PbWcmri?Ex3!&RSQ9P&QM@5b@ zTBE5aUYmP`n7IF-M(dUk-pXcZ{bG)L^D=SQ@9l8ypEvXl?u6m%x%B(;QhK#r1{S}v zC%SKBP)h6?-(+7gB=4JsDkds$V4#f*aMIXzWfJE3YT)|Og+QCiVd*^}XW9AEq&H0E zi`|h_9OHSEB_nHJhH$+#v{W<PxwvpoRX*?_Gd)l+r#y^;c^jnv1eq@>upR^%SOu3|KLUW&(GbMWzCf-LSgP)0STe>54kHiuoFU+A3JJp9*^g;k1HC=uC61V&Dfc@wGZEVJ{XuVDEm}>RK(w8X&`UinxR~#W4vIx^(##$_lOB^rt0ExmdIoyF z1zhX62|ZU>!IhrBU=B8Dv(e5Mhf zj<I`%BMX+fGB}Ch<9=&1CGqTb!Yz7dh4AiHe4%IMncr#ND>X z36n}8^kE+Mwc3DmMI$yaKFZe*z zI=18U>NpG)I7Ual21C!+I1pRB6{JOTF)V!?zUMgnx1fWvY!8T6bI=lR4?&K#q`mw& zxoY{B_eQx5uHFD}Igp12@6u4`I7c+@F+!|sG-exZgR`$?Xv)+C)OT^ky4BTSY}8CQ zGc4bLM;5(%H5TL9{9z)?5E~UWxUysu$nrdJjp<#6#dywN;oC^*ujTYsbP|qF3_|lG zwb;0Q4JCV}k>!cG{M=Fgf9aF(MVJLH2=3v|Ew_c+H{?L6MBJoi?RRqHs4A|sD`2Z5 zc9+;Em6qosjI14PHr= zByOiFOgC`Ex;3rHPYuBjuNxrSJd(^FXAO}?8E96w6g+~akiPX2{Cjs!k!?*KboS4` z#HML6>HL)fHO$@5F zbAlkI<8-%+a0&<=*@iyijD9||7GJ+Mhjlg8c#q-IE=cv0?IVhiIb$h3?-k14H*Ywy zuz{v<%B&GM7Drg5vg%+e8V(qe_3vWo{3Voh#3<3iuhMX9PYy(}`&8dGcigX7fX9AU zgO%lU99WqN7hlfAq}qA-P~4xCce82Tumm1=Fns2Xr*x>ifW>o-@YIJ@)V!;S-#;-G z3dG822Gau*Slp+;&CSBaXK-054pLh4E7ed;`0+0_*qE?YFh4bgspqD zWt-`%s;#i#ge95wJ^-T&8}ZDsdJvSbgVBl1(&R86uCS=?=CDN|_EmtktzTN+{8=!NR>2_P*;w)vH5fOdg94K=`-|b zd<~|B=OC_@LjG@A{8F?8J-=jPJDW^BY)hSAt>Z$nHDLI18oF(G(Qhq{EIL%G93oL+#q7hTItvCTbZ6c72}&W;%%l2x!++LW@#QM zf-?98DBwKXAjo^Q95!Bk)14(Z8=~tBA>&pM{W9>I^cB1&@)H(gU}Oo_Mb*Gx$A9FL zVik((3W1Z;PJF&)BAQ&fL7xxX;~~d0l>3nl>t%ZB(#ewOX>*ZN^JKc}{_*g4P=>$n zDqA&k3*hXNG^k}--fU$h>a^jq=OH6?NF-WO``AQ0HJdw`n_CBC9y`f9+e{Es3`OGdh!#ESAq)LZ6So`e z-@DQYP+h)?#2>arj`w#zHbC!@xN5nZW8u7M(_-NXn@7xD!hLyjXvC~1T#fge4r{Cresy% znSc+(Sh@t-ET%w`rvu!ws>EO07SXB9QnhJM0D4|_MvDnWpxQhhs=nF4uGXFCzeAO$ z;;q8%@nsZzoR>c?jNF#6TACSj>8gdMN6quf~YA5Ba54 zFG${9QAqtEz-^BcLD?yis8n!-$ZJ=eOphsN7Vd3is#_#H|GE*Q_j}Q?I)Z!8Ccx}b3mSS~VxDZ-m^__itr?UE((yR{%8z7*eyrot0#F?cPSfI@+C zAR3}Ua>Bn7*$L%%B6bQ~zFI-yWD8DVF>=}9i==+^3jfMjB>C;)!H~+0c+sX9&+98d zxpgvLsdD2_EankaH%*A1BaO2U$x>H^D)P(mC%M?Kimjf-aBO%d*Zz;qW+gUgth|r5 zPJPA?w$B1pY{Xqn&iI!f2!CF=;+G~u|LomEw&j(;;*S#{VB%CvIyoImo(MweuN2y! z{g_U^tcpDcf6^wkYy6P~Nm#UbIZo*>#=941!(g-}4AxCTsd0^D-@^(l6i|oQhdvO# zDixPoEdcGI7M#P{Y&CK=!&Tu-xbgfV`E$U9EPr!|dt$;cdcIlQ7oY9mx16okH9yj* z1Y0^vYarW*{mu(=@Tp%7YF*JJ*JMp$|2=y$?~n;z*UBdR$=&3cYXuZtQ-Ji%R%qH1 z2{(8(cvs^kxm_m(yV<;Ud%|=2PU9@yVcLMF1zq5GQaVhtYJ$#!-(+w?7WfF;gKvT^ z+(?;*ecgRr%wZXP!L+&6zuZX7_6S^a+Y+5k?NA`^FMpcg55AcXYl%(F!WNAM^tjwY zkTu(mw=2EK(-pP2=x7?ozw4waM^=OTYE5eEH3i$08oJM}b7Rr-O@yzIj8@Vs$)>ca zv?;0q1{U(rmX}Q&-X@^axisqgG=tig=whkndVcJN?by=319vi9-qF~0((Yc*KhN}) ziY^W^-+JQ_n+??Srwv+vE<+h9KZdL7;;zaJlVyFYVUh^bOq1*B*YY0jzde;WWdVVv z(Hg85nF76=Eb)VpHjF!bkt{d9#M7zE!3>v7xIJzU<)!%|cTSU}%}~co9tUHK*nNRB z>^}5tDbd&SV78nxI@w4Pvl3OwCx#S#{ll4D%Z%acvsi`CuOwPot%a>ObLnZ*m1vn_ zMr`IcV9oYoh)~&r7nOW*)tz$MEM`QeZaYC08zf=;STs(aFNgu04(h11!hU9Znms&& zZhvWq8%nEiW*y_ShSk8wt`fQ?S~M>64H zw(uqC->-&CeRg1SZZ=#oS%G@j_LIraL!s$P8C~_a2*)W^gPP1nZvLYz+@Mo{|H@S8 zBjv@IeZCQg&$&=ZreWsqmL~I_n_|>BIVeczBFUe!6Z&GP2!GyU6#{EJxQZvcNmB?3k>6qt^1kvIkDgIQ50F`gn$^4{ojWiMS}pMp6!e`osj+hqJ{B89e} z6!F4^^%&}~5rv;;QylCgx7WB( zNc%226kirsJDg<|?fGjQ2f4fKIHp%<%Ri(4p~ zPf#XT4o9Mj^iF;)Lz9=xT7WNy+q?Z9d0{+@#@$t14i?3Q_$tW}u8A(fJiT}tUYLS& za*NQKUqILVG{wzc%dmf{D2Vo!!RAr{e7@)!_qgRKEn|p8kG>!}t#%LprqU@o^|m=k zymN-m(kZa}pgO+F*Z@~&ZNYKO(t3F)2h~Lq&{FsteRv}WG^~rkuKpYmIOIZIdo56^ zstGr&&*Qd`LfW3qaA z?THjdY-qr=Ahs(^VmQaJKuB2rg8Fh9Knxo2j-DLe?%qqhpKGG+=7Xd}|0eH0m_?$+ zr=p#U16}Tr0N3Vu6SHVR$oX9lYI<@cx2*{;=E!xY{9BE4Id>FsZUos!FQ_MVhow`M zaGI(SJogYspIMvfc%PLx`8eAPTo&QvelaA!cLwfB7^P#vcS*QUCRSf|MH9z5oG2E9 z7ji`4!`(Cd86SO+BxRwhcMHR|zaa9PvSf#9IP2+;;%nSU>yH?wXIg{H z5limjYymv;DwYOKNMIJ;HhxS~G;%zE@$SvgXB)vH;yL`YL)rLt{XH^w{Go2EE-^Uv za}w^im4G?V7NY;XD4M;m9Bbc((tll5Fx5Vs=-5xjW3OHjgRifcp?3iV~-Dg)`41TJbVwVK(9qB@V3V-e%-_ZcqtJLT9Ns%eeVEYB>Wmh3mdF` z8HfGzWO0H1Cu&m2@e^Jd;FiA(i6$pPguE(Y-5wKgdi;iX_lcsHqyYEx>kN=>Y~z4#@uN$R(U#A9O_akO&5 zxpk&sKqnF9xh^P~WCcseM)+)KhznmTOW1cT63gZCu<6rj>W6iBU+O+XFMg%tnO$#&mO1(8AP38q)L^7r zA(<|1f>QQ{Lw@9bX!0Z=~7q?cb=s13R(qWbD<=)xYk8|oT4CYUJUe(i-uL+JD6wa3a_Fk zgg9Jczw6WtWHK@Ci5^FierVzT7z?an=RwBAnb7T6PG4onbAQFn!E(I`td8a(b*(TgI2~8*U5U2C7l{hPBj!IX2CEhwdhA0L zYjgTeB|fE-1%EQ&gTNYG)!2eneGJvIKOQ7AGr?|)CZ|2i8P+AP!iisPVX0UNY_AFi z@fo$K*>Z?fndMTHw=IPeg<#gZzS9be&cY9XpT$_dy$MMb)t_zZn;sP%>?-0@Ylr zsiRpd2<>BN)p#4?Yc~N6hz{oZn9x%H_4v@E5aUdab-iPe!PC>zFk$>nqFj^@%j&9# zN5wbVG&DdZ1f^LE-*WPn)foK|*CPI}nAQ-R4@MXLh{D62FioWls-nfnfX!v1Va>F% zQ|v{6$D%oPzfz9-=p(;+_kOsrk3ens$1)Mh*@ZW4H!9e|D@Hb1w zYrScx7f}s2dZHj`$9?K?X$IM-)J2+u4DhA06zrnK#%CRQ(LcAx`H zu4%&9IrAZuRaM+^sKx!)DzQ48MPJ!-XL7iJ+}@hoy=RX#O#VI|WBE%=gvZ|S?2nmH z&GsMEav%aWyivz($62M$Y7v+}yc#OwMZstFPWbTJksmu`5A`bw=o1zZo#J1)Os`PcAs-qRuVWe!CX{`E=g_+mk&;ALHaFHdKHa9Idmw+TSG-x=JU&Mka-7XqG{Pw3SW=25v6 zhG+Y&siXcd-8MlDSN-}<1N|mb(dAk2PirxeWV6Ndg=}marB^>2yIhY8pV9>P{ zujp5UMwHkAE4>2xRU*lv$I0NFx(ru- zi=+0c8}NN_C-FPt10VB$6SWyFaHgOhrjN|y(%$5t!;2K09=#AEXXe8c(+;X=(@*VX z^P#Ig4AOE8@o@SD(t2hI&5mxtk5jI4r}uAX)ewitv~eqFJeLlFSFdmuS2((aMKN+a z=0aztGmVW)=a$a&;&0UwBQo>*iL#A5?oF3~4_n5l*r5WbeNcyba`SL4i?~J|o&&>| zCS&O5bkus+PQ)*+!~NPS)G?tHQcGRQf9{$%?=y?7wWg!br)S5*1O&TJRI*)Js|+pf zs(>*AXXM#cUIH$&H$HAeJ>BB$kwKOY$4;{oI>R*&Wz3Vv0^R-g&{Ou87N=)`h+HzxmsG^KLL+F@X@bvZ%~Ai7 zH6#qkgL8c!*(MMBfT^Mdq0HCFWyk88fF z;3?sAL|f8}OAM&PQ}tT-+eDJsJ2;P8N(q3durjLw@B_sdL6{t8Oi3p{86j!5~>{Q%7sUGd4Us7B1 zArhi5fz$8u@YmACa5Fa(2K-eqq+<>yj2tIYOQ$iE@(cQ_z5)MR^sC$9`eN+*RE}mP z<|s0|2=kRX5-(P#ZYwb6LBr|MAI`(An=*P&kqif znM}*^7jz*f8w+UXOYBqb;q%c08c>%mtu9gn`Q0*&T+j5+s@42AQl&A0Q^Xxnw( z>yUbyzHRUN zGx|JW)t4l!Y9AnimxSqykyT`wYy|PY9R;JJySekOj z{aecRH@T~@>&7u|nraalyf&UjbRT1lzEg3onmA9eZy$*$D})Vy$Kgm`J&qn4BUND~ z5b|Z1O!qOSSB+Ri_ogIlkCLNDmTG}^v=@jbfx~=ha zw@kMao&Pxx`3wnj{Xr2}%6HKdl}qu(pBC&pvXuU{e?adXUx_6*SHXX;Qh=A&L?%Wq zWd4L?%Khu5UpGG@Aq|s2b!92UsUIYpt2WZJc|It*Nf>5ME5KXf^FV;8pmkp@uDCAF z&g547l$A-(5A~AzuqHUJ?*+EU(%{I{8FbY&EsXOhgID)O$beuo$X*el9tqVTZjj6? zoB4zs0|_W8Spc&mUvREf95!;f5OARq{^t*95)uQOg-Lih#GKW3<=~MM>!IV_5o-NF znfdXvLG*GJ`dzz9>|%3ZM4=Ybj4E*(-;Bx^oS`L=&8QZT34v}~(VO9|RFm6D?#6WJ zsg{RzY(M+VG>c)X367aH(Jl=Yj1HfJSGx5;dVgwHhw%dJ8J~*I#=a0@s)O-i_H2iC zfrforjK34BSw~$44Pi(Ghb61|4~{+|*@?N>pk+^gE!u$|AuVuja0V*!r{TFQBUZg| zos9cAN-js_!--}O4Ei~VluelqieXtGKj{LURiR4m->pI6GhwuUygfBP;e=^_YoSv{ znU+*mlb>Z`xZyEt6CQm*#}>4Lh{k0a@i86#PJTvXT5`a`LJfSTEW_W0x2VNlJvi6? zfxl%ynhUCS2HDWP^jC5!6)JIjp3_)r=v_{E>F{uc`tL*>7Q#4$utj5 z6wbE6<>B_EBQ^j=86NHO6;X6n)g*3bD?z^eEw^Q5IPi3W>8XXQG38kUik{d3XO}OA z(aBZxvFA1V!y^wO6wP4qw&`FIcAJ0fuNaIiTTgkx@(`C<3tEGFs9F1Ca(fC758l~K z!kCwlpXZL^gX3}CTwT%-y%zd(gXr3RQJh#I2eQoXvMX;QF8*|oOkjAFz<;;Mp4|h4 z%`>3>Yy(;GAcbym3IJ0-C49o35uvzIW4ss|zvk$)4`HA;Z)*dnfa^MdL@2 zK)iA+naofTB~rU7HBw52dzZ(7cX1*X`(~qN_*o+PbRK$I@=!s$81(0dgXdzO#R;rd zb3*+X8Tp-o7yZp}zQF_jjud@x5y*n^AkDkfYYjfTFY||HzUIr!b;V0sO;9`{kM=j5 z=rctd47#%%q7nnpRP`p&3b{f=l-Gg&$!aX{c*~6s3df;i1H|Z@EySOcATi5BKv$a8 zCEm)w%@T=NDF2hQshLbRb(hnG=wWhjKfABXr9i6qWqSQc7Tw5d&n^b|fcl6@_d&NM zIPzaI&KxPlxV!cAk^D7sc(O2eW{88~5i>Sd%9H*rnpkpb8@wx?LpwdUF$|_Gm36Ge z=cnd$Ut_3&V-II>w)3*6+u1T$GP|19KkQ&NEt5dUrvNhp#EAN~DxCe61HrP@P^arl z+NY<2xz7P!TC^pubZ^3UOwV5SGZoi8c}%1adExcaS%7B6Abh!&~W)C!?OR`@pX8}k(OKxZ>g>~^t(az7UFPk&Ek5nx(O6qR{r0;1OEsQD!)Y)zbOT;9^a??=EM^JRbr(4e;%4eVD9qgK+zL=;7KKxXmYq#ua&ida4?X_+O(VdoGcEd(tp- zQZ-!BenX6;PSN@swJ4At&7aEf_g-f`sMG0mR5(yc<~erIxQMx!X1xMjmi*w{Ugvnc(EyltF4e&U)7)yD~x053Q_dh1#rQV-((Q`-C z`)!WPdzDc`xD}%upV37ltfDjHH{bgo4~}i#Lziqe#tmoHsD|n+yl&5sWWPqq+AK3{ zG*86=S3COj{6B{6+W>Z_YsiP`;pjcF5P<2D9mNDo#+Q=@{}K90#{hTPWm2WC7PLNE zNQT_kp<4A0{!^O-6!l&N9YUe_S-KVzOPy#vrgXby6S|O5BO#m|j$`HXb`~+k>BtESNB#hUR{b`8E_Ij|R|*@Osu zB^$*4PC%;jw}e{TZu>7DJLmYEANZQB-uP8bO@<0#)tEoN_&Y*UGMw4>Ya}%vZV`*|Dro4xi=KGm4p-8~)4&_$ zu>0v(8#D+}{@Fc0xU}Ej$+t9N zG#8b?JEs&d-0=YkFHeJ}KjpAZt^|roXXB(TtlH<_7ZTSKO%^G((Z7X?@M+#HYA96* zTbYRLDl3ee+=Wn>)ue2Bn8Gg;Zy@o;He~7BE}DLC5rq2}kiNwWakI<>*nZOrUn^yz zh|_0M1LeS%S&8BS>)_|s<8(N%0p7qg8Xp_QSASHEYuL}3U|SA%`zPTs%Qm`3g`KZU z8Zbd{KYf3%naY?LfVE%%2@ktLK20#d5AoBWW1JZts|=-ow0r6M$c@v;f!OYWQ8Z7#f}) z=02x3z!r@J{OINdClYFiU*}XZ^_(&2hcR^3!Ut4F>lxqg@Ge>ts>P7>$>IOIi5 zH+(n2gKZixvsH^6_dh^`UVWyrWd;~GP=jxbD{#iVx!5IAiSEP{T2(N=fgPt^Yz;EdT zlt19kYLQ3iw*7ASBH<^sQK$pOM{KrQsKgan3-gO?W+G0H0$Z!^)I&4@I!)ga!Z2}H z7d7Kf+pCmkGe+mV@PYF#_2{VY2LByI`uUOs4q8PK&E9l6w9OPotJZlMAK zPH@z9Ia+-EK_tUVxD7W->7Sqt?44{NGn|9)lxjFt*3-nM&8tboX+JVMppx#Ivk5?q&Z5N*8V397beYw?;))`=}lqOO~M1be)>?G z-Y?x>9fv60lL!;<+kui`I@?<_pGV+s+WK1+kM&5Q{3&s?%?Kj?wNgyu>mZZuQXuhz z7u7zS$rqaw1&&th$r2F{j62-Pf3!~nZEDtV#-APVftfnAX+EKjIwd$=HW!BT-jR<3 zOQ7J@9WLsr1J%l(LnL=RBQqqb@$z0dw9v_g>6V#j&EB~~e%rBn+-<^(&ZNmE&LCJD zLwdet<5Rg}xb>}-9%}qewF2!Rb0`SP|9zpwGry3Leb33UE7`dFPd4@{XG4J+%XdC# zMPc@{ZLa2XG4=1L$GaK0p>YyOO_jvydnI|fWjnxq&2C=y!+4n2IoM6iyXo~eMj(Fl z6xkt~fnvJ|%AbBqe4P2*;iI+qgX<%P|URM6E2y3HvCPih5_&aEU>iSTuDQRQHSK2|E&K*4ysz?NbUS zos|5PWvz6emlneDFdnhy54j~+W6+VUbi&ezCv~LIib@+Wjp>Q5wf)IVx@V^Ukh}+L zyMVH83eT8$nL<;)LD|O)vAlQ_Xf}+Yj!0>rsU^qh7o-X{Dd+D~(g`4W%QHq=h=&ta zinXm{#q2P9DZ8^-u&b&i6L$r6xfa8-L&JH*;Aq~n%AZ_PUkJTQSJJ3A^MoHmrAo?M z@^Jm9DtkF@Ci8U)IJQL-?A>L8QR5CFeRe&4Pm_a|QI)W4>{=*a8NnSP>tx=~r&7^A zQ%v;rrpsINsBHh5pz)o}q-PwC1IHw>iu+&cni7W=t=e2r{tWbg#ffSmq3km*9uLpe z!Q6g1f<;jR>$dsfunUQFAjgXhl=ngv`=g&y6khr_of0OeGGsxHpE0TpDlo$do4pV7^I{tO-OJ(u;5H&6f2EXVe&43fI zsy!ZeF0$s7-f~aOck_f849NyJ_t!#=BQTf%meNOLjQ;N1n;UHLUr)cpxh7snEFLYs-%j* z$14ttzRBj0RJ8`abh|}Ok2+zM#bo$)KNjO|R*JekH^cRlCaCdPhc-;IVfFjn_^3$& z%T*{q`mjTgUSW%K`fP=SRvXk(-UufK6i}LCExeKt#(HB52%>8!xkTWAqpdVLbTVZN z;lj{LKfaN6McA1*nep~QFiyT zcw#|MJh@m7)PC=yX@~PcH=tI$uqK2Pwf)#WFNH>qngI_S?$N=0&tyM`8NhS9@o@RH z2WRNGU_U=6Ql1&f%WI#&?c{uM_JB5_&b*}TYHN4al`4s9d`5#(hbm7=3Xr^F#yqZL zlQ8k%MLNAOj}{*PO?_I8*ia)CyL^$dk=uO1J2{2l_`MT5LqAgUEMs1J#t+AIT@6DL z0x5sZZy5BhI~-Q}0aFw%ipS>LiSm6Ls9c&&204BsyKbKR>?Qrg8 ztcsmNIBtWJve&cQVb@&?+@G7oSKj{>A_k~&u&VSslpE;Z#M^Z1#3iyD`xU~Rx4}y_ zRW@$0;rxZkvgscW(Y`g=U~uF!gl-!x3zM`1&j*p{m8HPH^~1Ppm=AjXaU#ERU%Va@ zfj3_(@y0WQ)VO21nw_66MUx`puvWBc;t?ue?FaZy90q-Td-5jJ?rf57Pm}Az z@aw`d82C&9Q!94DyryKDmA#I%((B;3q^S(4-Bec5Yz~G0TLjfXb+X0frV`4_94{lfdtOnUAtlI?KsY!9?Dek=LHc2Q`*5i*DGUYz=C52+8`M81}O z?ELu&!Th^IpWUf^JzyM}&a~i1t=@dqssU~p^#DKrKrK2%xwl#>utkV1|qnTJ%evkFS3P3Ja2i|EfEovbc?A&T-*;ovuPp z&+DLUt%AQN+Df~Lmk{GHl8X8~4f5ZwiXVzU!T8bdM8yLdFy@C9#G6UGmZhVqb>wq6 z@}fdEuB1*(--`IjyI2@!93}ZR#)HGaR;r0H$9an8toG{(SRU#kRka&);p!O9%L}D_ zkq&TXX_i>q|1O0L3*=DiZg_l2JbLzUX7xdP1i9X8V4>SaS-}}A{ywEdc3DIme7Jy; z9BQb?z;yCH?N#7NyS;QlhBKb>(SeoU9O%7VBIZs{#;!SANSISWQJU{4bFMcIyA9ZL*ln>r z{1Kgvdqug{PeH{o0S}J*1&gn1vr36I&$T@b%N8_HM0Ntct?9wO%NBw0zi2kB9YwBc zD`4H|3t;y9AvtNT6t#M#;M^(+U8v!MzO#-%*!#b9=%o=a^po+LjBv^ilfkjQ%jjJn zDch`joGwi@koGEw+DRo8+vh!GZ5T;egIuxvvHM*V`w;${s zKSARcU77BcE#TYtjI5*YA@R(H8}#?M6QnDuutS3Hxwp_&p{MYB z>vDSL8H8S|29frdW1v3n3*5IKMPJq2nA)`=b$L8%zRHI$`M1bFa1MyWW0uJ@smm8gCEcOVgv`&WIU`;8ai{91d_^}$FoyQ0VOj-4=V zj+FCLwh?lM?gE7$k?7YWkmXhE(d()vtGsjIHwTWvx-0Rd=4QZq7WL%rUNK^mq|ps+ zy&yX{UJjLRz9Z}718AD14s2c=jT2`X;H!YAlyS_Ej)mExm5Cd!ciRoQ_Q~k{zi9k% z&mMoTbq4!tON`J7l%5lLRPQJ79obn*doRr_XZk?B=#R4!AJW@rJH;Zk9-QX!LaE7Y_-p<6hBpjh(PUX#|`v_T@@rMUFe8 z%E|>R=dclHp>*u-D)> zr7t}gDCK5`+G0ZVB{0`}37g|j$Rf9w)4fG*^xAeKjqR+5@@Z>fr;!~xu6QY?KXJv` z1{X=?>rY6D@nS)$A^s58AW(=U9(o$j*T#Z4XewO?$-NKL;XR%_I>=e@s&nOKGt}`_j4nQ% z7|%O~9|x;gsj~OGI_e+vN6m%HVBPog;JQPRZ2|{FYx+`Je&ju@E-9n^*8?%4`3_Cf z$e=~@BXQI2An50}3i7ZV6qYu^%-43D@H>Kk)k*Jc28-Mj#W4YL9Pu(9cO-S^O-JOo z=!XVs_54OByj}RbLa?Yi(+`&%1Y8hfflBrkJT{^Lo@k$<(gR_%Xl)bhsSf5H`G5_> z5@=*%Jg%v3peK3jXk))K-C*Z0 ze{qd)99reZ@npx1l(Xg}?TFY#Gy8Rc4Q4LFtm<_5Z-_2CO!)=YpQ<4ESvnWn5v}5(IwsJX)>~ofu#yhC802Cz)}ex#S+q=oO6l*89jdIZ@IMG=VLGTP@#(r4%?FfD<2+)#x1^RH`tPTb##hPCFViQvu4^oFBC`2jF2)C zP1Jk-X4%5yC(6oGKETEK&XBhD7Tp|L0$u+*Mk^lc^M*THVff7-@H-?N6H481rIRm@ zlhD<{Zw^7?tzWcdr!%Ug`GfcPD7b%hHynF%o5nsdqfJf!%6^7C5allFpu~ivF8N0( zbI&*EyXy%}>66IzCB7`?){?=YWFC0s81(t@&_9x(+TS1E(RB_X;OnNg? zVx&1LfX&nz7}|0OigsRyNUaY-qO_wPU1mzXc%8&6G~wa?KD_U(GxwhVKRDWA!1FWP zgkKTPI7H$Y{tix-vSG&P_H+kCoC+1Mj*sG`Bk8aJis8Qg@F0n*AICfGjEgM%U{@ZEIzViwo z`9TuQ|B^3M7Vn_4%r?>Tt_SNz+ez5%)$~<04jq@S6Lpq+hJHidf#nS&UT;zi*H(n^ zjVxmfS}M=JKHaeGs4thToJqaBqImsuRepOtkt=ppP{-S?l$wyhZ+>qejUBl(`dU2O z_$XtbME-A|w4JKejfBLoW@unzyuS7+Bo>)ql1&DD?ADX_6i%ciCxg-2>#k5Txd;Z< zw1_Kv2jeOqE1Y*NnD<=SCl)Mr;_=`9gL*tk+0%*c?bu5VIwWfERpih4=2%}EgGTNi z?EO>~YpM+>cg+%6-0CHwW0ODD`A0DObx=X;Aad2r1kDBZ+;`y;x=^}|+~WSh@QtD9 z7ifzox@@EoL6^i!#uaoaJcd)I#^SAM4yFYVZV1-Z+K!r{9sK7D#hc&pf(1Kn3?KmTGwI?~(Ph`7pxH z8mH=N^PrWx!Q!hynXvc?nZ&AK=9y^lK7JM2Ecd~=#|0!rdD0cnmfYZ&PVfI~^~N;}2zbh(|Y3o>>b7 zxByOGS6(vsKo@N270bchpU8Zr87pL8DP7V2D?Et$Oo4fWp=eYhZ`Ch_he-#)&c%#h zMXFKvyw7AA_aB{nYfWw|9*O~h%6KZ(V@@* ziu~%QJ}$goQC8Waj(({}AaSSyADwoOCV#L1^OZ_`zOEbHTNjS^68#wpiy^7o77G6T znNB%XQSz%~uyygnUNgPey|A6S&98?UeOk!=eK*wiG{)qu58>EWcUzfSqTbU4G|XHlG_F?0)7q;k^q)6-o%H25>y3HnI8A;#;wbrVKs3m%lxFh;tXuk+ z+U*_j^x(mt;62M;ljbpD;rV#l5^{IpOVCri3(&)2)e zTm8fE?WDfYe&;lGuQSJ0uV0BbFWIqSzr*w`&4gd{y+>M)rhvyz4fY8t6_&p=gL}VK zcvpFZl-K=CHho?QPCKLw}{+~ZVPVZ$DS8T~0#({X;D493gpM&H&FWlX+2-e?9;$Vg4rQ%UJ z_8B}BI<~A41jA9(5zz+M{mQ{;eilqi+D8_7{+O`M7YYrQ+$zMk<{GNgz z(i$k;Q4h!8PJxt+=hW6Ol#QqNhSNJVd001V%$VQ?wQW)rf!rhExL}OElU$+yxihfj z`!?F9lO#-^xJhRJP@5;F=ZJ&S-U`-sl7c1gLu)5*6t#M=8O>!CF+6 z*A>F+efUSK16QTq0e?Y-yF|2zH{K|~<+eoZTN{SgV=H086-Pcf;VXT)D6o6%Hk$BU zldttKmhjjM;cLx$T6AX%ZTg>$*h4W>I3mrty3_43WcmasH%eiTl5$v|mrWBZ8tH$Y zf#^{c#Gz9Uz&Mk5%=~YKXmEZNELC;JymQCs(|9|)VqXKB=16yXBSUVe495dELRj0@ ziJdkDiRUz5z?hp0$wPlMEbg6%-n~cB;m$(14fQa2lcrSV+FzU=@}5>N%mkl4;oPxO zkH3ff558zVgQ%RhG&nSaOqZ!)ewr@cu-hkUdnsVal_**D6fNPr$pq*Yc?aSZy3w;$ zmuSDvW=c4?jYiKjft0NMV!E3R-(8mu3P&E3l42NEsU)L8#sKlVZCCh`-2}3tw=k`D z67BN5COS2T@VO>^)ROMzOAYsnKR!tHCw28O_*_?rQE3)0ue>e%dD;dyyIFC~%&s`P zWCI-?vz3(f#sh3@lj^P2SpP!^KOZZDJ}+`8>d-ejq*zRgXM0Im+!l(ouMuW^?LoI* zJQnp)o7?Jo(hoZ|F>i!)Ht5*1NrWwKSClI1&t%b=NGGgGkl4_t-7rW?0nD2GIUp=u z1S4ha;nX5{Des0tEd$*r~ zQ2E#vqOUMKyXDK5dM=^r*{Rt5k(1zbVkg`q8@Si>9HMLAkVR4`w%M$raXQ{OWk4i< zdZkTjwNGK*oR@-E$0*8J-YHBoj}9EWGOMIku8?xp4Hs;8ZGaQI!=WYMJT(+6aFfnJ z;qfYo9hMOR1?Hoqii~A2aaj{|R2_q_SN{Wd`DE;q|5Va@R|rpj2J+xy%d+hqk+?%) zn>Zya3fsR|g3De7e2^~P862b0>ex4Nlxiu>`WT0|p6#dGKF#3SU5U-|mHCm&2Usws z1Pl&Fu=%39;^TW(`0HL&nM3)PvVGY(uql2bcuD(F&Im`tdV8?`uNV?yvfw?8TOigTENJ^ z)GvD@bc9vXMOX%5ve}~A4pr8d?IEqPCaC^X9$Kxeuy8_G9RE}izS_I9_2zT%XPX87 zSF-}<-suHA_dZRLJl%TP#+)#8pExt2NcKIuD=65TSLS1drP@#c4)0WyKBFcyUn#UXwgoMLjG)u5p9d zWorbk?sW>fCuV|qxF$bZb(4Ngw`TdoL}60d4;rw35p+Z!5w?nFg{OxdaHHf~*?wU= zsHz^L=@#dy+u(;1Pa>YbmZ_l4AW5TIDvwE1QgON4ak?5c801bypo*VVDQw#7!auM3 zpjzUBxkjI9ZF3AJ*u`>yMhNyzR^kzsl6S9I8P~XOmuOAFcrW2Nsbr*}YL*WT+qRJs zOny>dEq^?DI8Vxv{H87v=W^YQW2I*k&0(*^y!-KBqo7vdOgD;c`0*Kmb$8SY<$B6u zMqn%XcB`VbDT?IM?v0jyx?G{q0NWMcf?u-E>{+GAg%9MZQCnHc;MnlL*aC6S!5hMt_Mx&~FQiQO zZ-0J&us@COz7xz0wu526Ff{qDi*{+8q}ZoE&h_ffN{2 z5{`rHXOvAaKO-KT&80o1iIfP;mfLN#~5 zwWE8*fPPbF4g0fHTi;1+HNSSvEWE;i9KLhMbSSh!8+=;aOs#98dkW2 z!`^kW{;$J0=2exfQu30WFliQ-y#g9s{6bjpT;ie>TEW7fMuOcZKe1eGCM@R`C{mv) zW-RFhxnA$-O7RECnGh~mx&MRb`!%6e%4qd?T}v6=02<9wct!mo@a*$coHlYEwR~{J zMG?bknB?(jDIY`)jdAQePC*=hRTr(VN8@I-R5-ZsBE6rRE}d&eJpaf!P|`3$zvE>v zZRS{^`cW(0mv`sxYr^^3bua0gZzt3H5sylzms9WCQoZ=umry0;`PV&+l5H5CBtEln z;;kXuYizaG-I&GL4scLu^>Sv;oQ$0(%NxW zVkJ4ZO_<@9TBKJR4^?BW3A&H8oT7jpJ~-wN(r~ zV}Tzkd!T`@8$bP?EY?i7=jBH`$)XI|W$quUQS2>P-rEa}gYJn*|BI%R_qxHy7tUDr zT7jPzY=Lh2R-9L=gkfg#=wadl!v{Kv*%_;-VYn_9_c4Q|-kW4)FC00?-I0q@f}}{l z3Viic!iV|C=-Eprc>8)g?3@zJK3>V#{^2!**sT^Wy=WoV0gLG8otuL9o4&B=M<8#@ zl)PS&zj%6_yp(NC=8Xzw7*ZyOH=Y>qy{w%y=t?tveyzx7rI~lm)-RAeTb_3}HiF#f zLU^%Q8<%$PEtae(p`)Qv<;zS{qRX#Jecm1_Q;AoUmB!u_JZDyy4RI+HTT!rPx`&Fz9Y9};+FXe*8VHcPCL#qiw4$ryqScis};CnsX8|dO=W`?A0EGT3MpKjEOcD% zAGF;ok~XFbY#$PhoBZ!Vzs=r!`(hLIeR~}~*y->(%U+mQ2cTH9kTTbHNIsq-C{a=5 zdHLt5e(O!>uYV3=Mtp&(*(TU+U4Qr&lq2l?qldX+%5cEKm)pi`a)!A#npu3OQO1&% zbuJO@zNYfbBhAoH(_eV`DV7!W>tJ=&L<;je4;NLIf$OB@Ff?urm|hCz*(HeQA0DB; zSDrvc!VS1oP${~P-%pFS8e&$23O9dF6d&{q6UvM_p?ru1?$|g9Y<8I8y?NKkXWmun zl-~pM6S3Ks$pQo?Q@sv4h7vYdpwA?A9xCRZ5ztk7LjCw$6`yN3_bTe#x9Z!c1N}yO` zbeetrO*tzy`E2fd@xMC5P#$X?L1`+l$wl?}8rV z1_MPrrKb3mH&BkqTRGKwres81=r8%H%mIy<2yGm7RTF`IC zII>J=r9hu|@VHGLt^201Lrn;6jrs(B7o{^U+Z$UYeSFuxSV*0^H*oM~6}(og0|R@# zhZ$2maQ?GAh&&UB5*!`xTDOy)TrLG9{-#e?0x>^jkKl>U+}%nE`zlF{9EnL8@r$YT zv^-JbArP}wxpYw|pZy(yB|~zlcFZCH6hrBOzB~kUfGia({*^3n;x5)Y@zRCbx_rE z5bSYVMsmZWu&KW*v?|oX_AV*(GQ)w(b$*H^S%!Gf&w}56_$%s8ZzJ`lk8nBSuI%QW zEzs|IKT%mrl_NI0;bDgu$p_bs^38tIq$m$;ey+e~btkAiTazBk9TNhc9D>Oo_rZ^g zw?Wm{oYzatgFz3a`$n5S4DEG-vTpg2#S4FosPyG~g&HiIbe7IrJ)okrZhZUr89Lq1 z15%pIao4sjwAkgd@V|@Q;l$5_RKLuX7uvlL3X&6G_2L3?{cQsO%mA!@`~&i&y&T)t zP~pi8`Y$+vwG9ICLtzZOUHgwR9wejjM{^$d_&H6m)DS-hoQHZ9Q_|cgkK^k*=&ajG zNa@%hCbY%kfGUX{>!rr~drICK6E*a?wU#uUu7Ul*bjfe6fVcEbdHTGqXNfi1{tEal0Pf!)% zf%`LjSle?uENXYheWv#O{r-9(eU1(<3_3t}YB$M>PF0DjtDSiAizxm%H6GJUeh5d- zUI3@gn>6M8U@DUK44*!jbK3NHT6Vt_`p=S~{B~!Y`ei8Hb;uXaD;=f@pbt81Dcw;w zg67_TprW@;=IR!RzF`30-`yDBQWx^Zh=qu5ZWhAKt>$otrBDxGIf zs{3Ek(shlnWwoR|&QHKU8gjftF`I7x*h>B-`h3AHf%i%J$hBF9vWaYu+PzlMff^OA zG!5nhR1N(X@1;j!8n`gbg56)96fRX~$kb0g6Jv7ZaLqw2)|*}f3J?B)P16aXJfK}X zmn3!jJW}M#U9ZB7I)7Y~{|uI;_Mwiz#47j;XU5dBE46_i~-+Zu}wGrw&N4U z$|>RP|Kg<#!ynOYfifkJ`UY{0zTEfWKk-!3Ex7ckkWMa7Ve0{_%f`i8!(y*?_~rD0 zUUqoXsK@qT_;(w1dnDbX&;^s5 z!sc9EJgRnA>VPrk(GiuP#TVg6{|lrRWC}x775Hh$R`I`hX&yV`k44kt@!FHe)H>#} z_@S4?_|s~lnHdJW?4B~cSyD`i%X?tolqP6hs0Qtl*J1TuZ5)uKjrKD{!Skyv53_M( zub26-;ZdOQ#zYIeFGr#68BdrP(uL|JPScFq3c<#)E6*@D!WV50{9;E2>^l{Tm05#@ z8LmBGRq<0A<8_Xb9!Yi0FHckAOnW?F`h{vMQfm7@Kaa6Y;l-t~u{dC;mq|zl=cKn9ues&beE8l}&g@eK8yBWOS z+XO+L!zgEOjyP_{c`-TY2CX*T0`=ppd0^doxYv46=D(z`@I%^t>n+wo4e9POp!vSA zKG=m5XO=?wnV!-c8Os)S3OLg*L1JYYDV!f@IA`7k404!8YR zN9%iDf`vu5p<8x19_w(y_t_GgezQJD&+*63>Czs|G#tHt^&p4MQT!^-jw?rn(}*@x zXdZPN4vcMugV~CZ{pOoEekoCN#(T;sSxJ-ZB<;*-w-9f?O^6<&59OE#XFA?P`L#Cc z61h@rFWE{i1zoVh)Rue7jJRynHqiWIinoFcr8?{wY8Nc=Xqi0fUP};Gc8x{7!96gt zc_*k{wc^;q-ZK0!S^VN<%~kvho+UnpaR-C&ex)mnPkR9?7OAn#4m)1ER)?3KOvd98 z>O8xbKDJ5whl;O0f?s(e!SHUpP2zAV&sTuWGC85Ui7Cfhs|tE-fHwyg30cGU2+hJI zarg{@@BgyIErWK@nllOP^4kT6*mQ>w$?w&i9)tsBT6{0gA9cEDp;o;u-etBsQP7{gILPI@1^n{d2hf>f)1C8#MqjGH>Up|zd`OeoSQ{oevDuKVA5 z%5~aG#o-!E=^bKKu!ZzYMd73pE2#(TGc7$ZjV|uGPsU1Ps3E|Qr}VSN6UhlYKC47n zwY3)-@jN52KvQ%C28fse>S)oEO zwI}H`U7_Z0mmu)yX5svQKZIuye_;I2JSZQy0-k{-9~`=#Hsz{tL4X~fvdyZ0}m=6+bCeM)bT#|5F z|1SJ!>rT+~QsfI&T`?)#nnp&MbDJ{wbSVjKt(-97@+QGJF;m>#*N?^70d!?kNwZ^3TMVpQL<$ObVK}g`(%f<#Z_hu;gd&PH#_z@{$XY zXj6KC&P)Egs&AX%#xhfGa+L1o5tHfV^XEcb%u0A_r-*aH_tL8`tHq|UxzN*jFuc~( z;3rpaiud0*@VKiIr@7-3E&67MX{ml3x5uB?*!Se#KO#AQaSE99ETzNETHxM&s#wzN zp4h(AlW&)J;pPB)-Znpk7~%RAn#^2q%QqD^s=5Pmn>?v9^D3#u*V3#X`{=fHxS;Ve78;cV{3c~#<>g|r zpW7??c*P1|DLtV9g^e`-QygY}&KE4C_4B-(iIDxvn{|~g(861h?C()7G!!K8x!7{S zBe-7H5E#jGr_1Aq;|J){lzkAnD2;mgbWQuMUX)OQm^6Rq_=^TJg=n zJId}{K186ulb(M~#-*(hm@z&ZWW%(vLgN7(Ik}d;p4kr{a)LmkFc{UaF3MCY zfy2Y3oRpI*&y_c&&N4>OQ)QNvfn>32SBIF`DUkXLL!lzWZ(MDWY?SM-E zb7zBC0sB`P3T~%9$#!g!_6vPX@j|4#u()pocW=|cOV_rL?KyuuXX?#c&TN6S8;ZEk z*NcZV#X2D|O3#b!(sCmeBI%DjNMw=Aby(OOVKfI7Fd@x)58P|imJ}IE74+cs- zeAfKG1_qKmK^=WPd8~yt8Yn-aE&J4IbEOBziRuu!<{h=vED}$(+H+aM zDk!>naD~A+(p7SVv3|E;*l{)Vos&zJ=_ks(?NU*%u}3K_{S4M^5&Y_p8m?8+!0Ucy z+&fhd-;ew*cD~lZsP&CB2|L95}~I3Y7oV(Wz9<5Op4ro)UdUrO=+dGj1zZtxM!l2UMsu?nW`bRu^*9pu@I z!Kqxjs~2nFAlH1jJM=v$OjPIfs;?kBY9K9sV#~Vkb$B`aB9&`3;xRvPJzHXV@=0U(qq~SYHI~5D6fa)jE>%{C z`IDZeCxWboGP{OzfBjAH#We+Sr!Mt(9zX^muF&V5w8PwM#)eM%JZ5?j%2ND!PsT)O z*|RY)A-jK>>9QakHSKZP%Z(dg+`3d8Y*;|vFLu$I%&idQ;(%T6hw;B@Mwm5!FF7tL zggS*H+0P!2zu`#l z8m5^YrHMBG;8)RCnt4r`JI8zy=Ush7lbW(oSJeGQN^(sg>3nK}UgwXeSo|UlmH>!o8=k-upD%`R0OsZu}PKR{M&Y zHTLKiYRcz*y?IZjw3nM_2^&og33qyBLguO<9Hq5@3OTvdEhX`8@gpk{h4+7^x4izXt--j_aqT3CM}DAJ7R5PZ?QmlJF&cQt6BA$6!Gt3_VMqKq>KU;{7M3LG1g5)aVE1}z?aT*n zB>~nv+5=7Ak?11%Aftzy@sr#Wg7vzuv~u%b*?oU4t_rvhBQuEhp7-a_8}lGZzn>o|j{$OCux`>z*p=$U&vr_g$C^9P%kB`QRjn7|48!5&iNi3up@*3C zQxQ`KY$UzcYCQgcq<8K!mr33{T4KGP3AaV5L4kh1Spk;}lCXSGp>QcTN7ndVhFbAO;(xiC=#i_& zyOU*D;m|^xUj*@eN0+jDq0yW=&=FSz>7iH@h#TKJaFD@2nbO*ALO;ptJ#DxiTTa|f zGd_J0TaOh&roRdfj}fW-eGc5akX;r6OGWQ<0Weh$xnq6^{;$NLOvfgkD%K=1zB9va z1Jt>XAjiq;15u_Bk1eU5QZGvsK1_HEsgG1R>Q5^@P5%s=;!@#S;AYu?piEjZup9=K zSc0YILQpE!5-qIm(e#o~bb8~+y*(~LR^1};=9C*Sy(9@7jBe1#5?j2y@f{4P0Q3)2 z!#CFNgy#MxlxyBZ!Te8j3pBv>GZXOK^IBN6&=iw@*+?w$bznQP8q)O>FuT4~RR8{1 z95SU@Y%#RQ?IwwQt#u&0Jfg_r^|P`_pAMKhBM(Mo?S)%%fVV2uN&93NM^%5L$I^FU zua_Q8%x!{0XMa+@^d0QDdJ`rN)kMcWe`!$n@4%CCVX5{{aCEXl#o1o?I_f(0`s#%b zY`icKwRrRE0RC)vnU1f&4}Le|F?`GhC^l3^t6_dlZngF+K{-eKr7Sp3mZg^$-cldd%TzF6`@WRZYA@is&cB=_U&MzvFd=I)nJVMDSJKQp#*)WY zci|nzOXybIMKT*J^~#L%N9)Mtq;vE=z1qGG^1oc6kLz7=WJ9L-NnSyCw|kS&@vSE& zSt3SD&abZCuB_NSlm||lB%Uyu55E^a11r-ouJ8)rRoJ#D#wH>Bk{;OQGO0!~{cM&ZGO?qPcWdyzp_)M{pap9HLA+=uLtr*iQ7sv;VYN%fSu} zXRa02CKr}oZhHeUL$YAzEeF;;V#$ZbM4(2o8dUGz4+bC3g8I#S^fuiTJUgF|ENl%# ze+D9{4A9qgDMH>1En`nvpNU-NR$3bg?4Y43_dK`$U>O zL<19({Mn{k1a`Z$jGiovgOLr>g!a+W-Z9>S_ijg2$}_|xeJdbPak==j?JuQ{x(o;V zInwk6>&tRlG})r%9>@(wJoWkq?X1b9y3v)OGO8;yZjR;Od(YC+rY>Cm-5E8+yTY_* z{^Gb@J$ReECZ@%or7e4XdDvPdR;ybK&n54}9=G-I^@$k<2mYbVpBgA@7$r*#$btu( zvnk{7ZQ<#6d93*q$u!6eb+vl{IUa@A7jHuQ|GIF@Lw)$L*cFR~{jlnH2){RJ1cfDm zoNDGIbWSXgb++ymR&{g6Wl0yP{a^(I6dtB4uM#-R9$ zW5ppg#|1|lRdlRZ<1;bpbS*m`i_#wnVHJUr8Y=kPh0A$hwe4vojiE#qm+tV(E0odlQp5V)W8!VR<4IC@hw=j0lR z0bf^Aj@3CB5^IA?PRsGkN>@C+R?>iSGhjt^Jq4&7r?no*Y}V6u~v4e&WB>9UYSB@rW`{-cv6~*!J((X#*{uBg5fK z+*oe+5Bhl0S6n%CIoYPk^RXilG_Cg_$XgJlfGsf@s;vz^!HthxM-Il?wA73LNk2s7Qpl0D)Z|KU%}^}omkRj&)06aaF&o>Hp_AuMfzNV)JfaH za(^2*tvp4=vLIAFdl~W{e~}nU>9A?*8#=K}z&j;6QV*&#pI)B|&*ruWdxH;9nO^`G z&h~(NXX5d>u^v{&IZ<7b3Mag-f{Mg&EUEIvgz6}sui9C%X5(AB8Eu9EaTlmWtxOEx z(uLc0^`<|w&OoBY4xv5&{|udHJlAa$#%aTrQi>K$rIgatbHDP+8$SR0f6jHT>wBF9>ws=>QLP~R0$p%rE#P<79Ov*J zl(hwe(QAVd+f!jpi3K{iF>Wy1`^uF)ZC1b&gR@9y!grdn-Urg=yP@Ua4o$Z5GIM_FK@pft~PazXBSplSlt>o>`rd1+6!H*~&=+;ZM>Nn*PKY zgHCM%*F7?5Q0l|l6r8c-AkWk6{0UXz3*bNB`QVw*A9dR|QJ{P{)}(FcH)6iuZb!6A z8woE=^)Y@9XRkimLgKb;7}i0cec6-gN}4beqknYs`xeM3+DfYqcY*ZYo207LkG)zw z%eO%IF7)}9L0LU#;o7}yq3wt|n;3orSSHY!Njs)~hB+y61j|)>l2Dv6p(Fet;ji2&FJFU6PDd9dPm3 zjlz_MD5f^w$;Wt)7rXFLj~1D1rY};F%%k`+O$-dgdw)v=gE6w?uJ#i~nrhwZYrcfs(tA?Pz@tGJJK!JgZum?+EdD&r1NeBV6o>Gwr(y$x<#sE-+gkc|oa z4kNz}!pT3?pq+b9tdj2g9$35;in>0LLQE`{2J97!Y~8SX-Enc(voLH;{zcn!*2Ar& zE*L%A0EYS%P;a+B`2TUi!*WKfU)W*t^^by$*K&m1nEQ~o{*+K%-J&!_;$SC+|DuugivM0+s;YZ|V(lC*x zi*sg!jEM&0#K<7cBGylI}O z9C!z&|KU55KKF2(Hb#rMQKhX@Em>a^efEm8X7Y6^=_294Y;Z%q? z)zpMK=gDv%mJBXld7fr+P0H}uTiTbe$_iv+NvTMdc{SKEi#l`6Uwei0^ghybryHWe zv>xbw#&=h}!L0tvV;)Y~=lgVcFkOB5ik1e%IuoY2et_(6ek60;f;HH9LfP19P*`?LY-!aH z7VP#GJ>$ND@@j&wr@~nO;l;G%T_3h1wgV!+bO{+{0!bN75T6-43kjR|!pE3fLU!nC zYIt*$rr))LrO%#F#fV63jtyi>Y;@S`T6t{M>jMb^ebKW_2Q~A!o*6cRW{n+4FaE{i zApL{h`vUI^Zt|9RJW8Zfh0EZX<|)BWHw=dzabs@WJ7f9O6MQEnk?-kHl;N80>@P3G zhXpm@l(7uV-Vb5fr^7M3zLw@6(!{}GlI)xIXSno715JCRvDvhjg4A;$Yi$s7-FZNG zc`cf};;ZP7(?GnwV+A}+`VPwe`{0(j7Cujv#@s1EtSj&*om2?H4$TG{lRgDnjywg+ zjh^WEI|&AP+Tp((3zqv?1zI22uyro$?vJoYI55Q*ArxghdM_@muj#a$kI%HXSlYsnJ)dp`Rbl z|GA5n`yPfR1NePt_8yYcGsV~kvCM7Z5%8|s3$}A5Fxq|r4eu@#T*EA(a_JFRJ?JPX zu)*kk=oWmwrh-SUn?$Lyae|+4QVhOez>4yNNoA2CvmR}VD7`kb@#8u)u; zxtO*NQNq;HAC#}Yiz;qD_YHf07Mgh$zpd5~VJPoNT@ovfec(-NgFL~(<{9`+y$mtx zX+GQZ7SXk(>bRp$gJs6rO)Bcw@d@G;t0)h_&b z{|NHdI-+B#A@!LYgneCY(0G|1I7@ZYQO|8cbdm}_m=S<#T^nK3s~BwIe5l)B4cWv2 z(o~f1hRJRsSY>*#l`liY758FTZcP|V$v5z^%FYm1kL0WYJzbn)VNMt2I>A6Hm>uUH zg)`d|XaQ#w+Rk)g7vp4@S<63j_MIZzHyl%hO*F?wtlxog7#{+YOMcRZtpiwpU2V*eLi0E7C_V zC)_j1h8pK}3U@SCi_?FYLw6r{OnEvD)HZv-tEK&M_gH22CL@SFXj5k$x^t-G<&M&$ zJp23hpfhaGd`)iY9@v-?hI8|WL(dikw*3A9a!4>>Ro$le{y!s#PUg9uyGEG4LIFn` zeW5Sg(&2X_&)B+^(-&-l7QZTA?}$OnXQdj;pO7rpH29+4#vpd*RG4o+&Qo@I&cyAP zztAwB4w#o5fJ2?;iyaGYQjkF~{@&n-3S*QJI9tXm=O!i2&4MOV7nUxs!FnyD@Vew0V|3%adg>G$vsB!0%IQ9|?R)_IH|_)t3mXNUDJeAQs|hm;kYRUj zieze@MmBnnC@roKBImpX*Z5?3nC| z=aN5w_0!>^rR^#~|F<8;jhqX{VJqNC(^1OWnl7w3qlIasH^BvcXQo{3Q98pQpAO{3 z;Nt{SvGmL4QkJ0zMSD)b&{!|F^q>Y>|9U{BW9a2l+(5y{EV0Uqn9 zVq%FBzN?SH2frM})0&R>=J6or^>H%|m?Kci#BlcCnluOxYb<{J=5q}FC>1VAu zQ{x`{)f#7fOXqEYmZ#51k-&0&Ku*!V{**$ zdu7SWTT#>;u@MUPzYv!veT1Rd&;$EN}LdXZMyayk2rPN0nN84B6Ma9?ayS60?+gB!qEpQ`LjF5EENR zC%zf8-dF!1&N`WUNit!7v@vA;Jr5&hwL#(V=TuPE&3$jWOn1yZC?0f&Zs)7B`2&wa zq1mevi-cwLy3ca4ve}X@hE~G7L@SuFhUbAIc^ z$R$gL^>QznXURthycK~(UC#X8GXxe_9u{r1{c!Jty|iJaHLJM3o-%JP=RNGBVC;)9 zRs)teYl{!&yzQZLr%GV?f4_z6;fF6bx0k&&-2$yr1@N#({ z3|#eq9vsi26Bj-LkIxJF>AS$@uMHbz@4-I)lVh^yoZ08!E-Y-n0n9tTA0F{L({#69 zU#$*Vj5uMy5+7fLpjXbQZYamf{sy4pif)*f(k^7Y8$i8HKVVGQ6*#lHAJ$(`z^`}A z;TgXdK3?dDsuvD|O-yL%rjq_RF@G?$Da*4Bd`GNa&<9&`&%;pT7~c78g%z)zG2^{8 zHvThbE~EM}D+fzldc~8CNLQnr+j?xE;TxejKbUn_{RPFde<&xI;Hk6~3)n8l?s&W7 zq?4}9c(olXo#KoVC&F3P1PP|G*+ZQ6@C}@g(8B|>I)#yk0^y5?Ewc`4fJc#P*mb2r zI8^J#lypXjUmA5V{j4jloaBl#lv=3rB6!VDBPr@I%N9dK5Pg z8o0hTPjKLSu0LCI`xM0eGr*;dE;!NmusE(Pk_C*cfb5!kaPO`cen`CxlS>rv@0GD| ze)0jz=3epFepARgLKMr#rc!Ryh*GKVZ%eft?g)V?kyLeWCY?Pwgr;&&uG{EH@ms@j zasA}&5Vhbhxy?T+?y%E7@;)g=;(=d#g zV8m=MsIscxn}yJbL)7{7LqYD>Bj4v6c|YKVaM-l57PhbO#=p8)`5gEOc#ZV+cR>;r|=3h??Az>b{YEJ?p6 zxL^^C(`JTZ+R-K-n@UyDR`airR%*?b*R;XHNGq1}iSy?!xv-i*efGTNm2kuNCpo%! z;%TU+y=o^Z<@zdcs213)vNb}{t?#t!ViddHy&vvGMc{-5u!QTA>RWHn-Kp#i0)hpwcbD6Z>CYcUc z2Vu`+4=l(U!k%ut1ly%v&^OJcRAaD`|7--W;fdh*CqtCo)B`#d&aCCR6MGsulu0DS zi2W}FvZ`y}pm1<7IJDHzw1=-DcT6n>yis6JOplc;KKpq2UeUyH$AtIqqG|uqv7mNEgH>t!(bR#PKr1%}g4rb@EkF`%6N6d75d~5EVK_eB zX3XYqKM0c9QIPt04c*5oFPa$ zW(cu+H7R8u?|=VyjAUr5aHagHF!?&~6y4&){(E7=`rjy~lbv%Q`sGb%^c+Zs7kh}K zW&^EW^%Can3S>`ITEtgl1K?1az=Cc`vjItGg?)Ap#RfY${4gn&+7X))BQ1rZn$_M~%_!N9-a>snZ0t2|MY?rxlc2y_1%- zDxsD32RhAlZ9DluRLnR94L&Y#&V+YYjcTH>nf}aN!wzm3Yoq3tR$%5zRK<1@`t0QX z-v40Xlz#ZP*N2r`Yq7Rio{=0k5z;rg;JAnwX6<~9zQmoQ2&L1sO700o4oxF(?zJjj z@meU;H$$~k>P#>64|xCHLzOX?X~Ji7EMNT%0+XEaYQ82mPq)RA*I((jR2*c6B-8S} zNpO8=GVQzQgQrFhVk;>NYESioM zrLLD@?9kU5Y89nXs$e_Z=A5{nr2^XO;Va`CnL`H!KjN1#Vcb!ftSu>64)SI zuO}gFx2Y1N;R`$uzC&AAPoS%f8Z0=V4|}tt3>5k(q4HLqk8D)JoOMRfR&ZX3)p{hn zFzb(hY@AV7MT6O$K5L0*ssz?cwSu(Gvs~HDtREaTBMTcSaS^9FGCD~6)YKDCFZ)Wfi;=}d!eO;ZzowXh3RMEfQA`{6@3Lm z@g?=0;SUwgnwWXmlO6i;jmr4GoON|Sl{QHTk#*ASfkT2=CLPWpJu_g#`Rk+{E6X!P zuf!ZTGYof*Vohr})8tzix+njHreR~mm6k=M_=$6K%(}>YP6(TQC6j{2sj{cKR|U=c z+rem+52h53fZ7H2xGY%$e2#fR!{I;R)gj4xrg=ckyJDh{n-pJj0iL*Z(4(;}VxP+^ zK>55Znw*^sQy$ErlW$_NJpK#R^~{Ih#gpldr5ULXx5rYKb98)|Gkfm!iSleZLA!DY z<{hl07VaUsyX*ywipnPUw*|1(e?{rrHf?cod^#-e=pmj41?T)ZB>7sG=^YQi-*U&v zE!z=KmU_`E`*}2Mp(eQIc9U5F|C~DLLBhNokg$tk(}X_g+|768VtaH@$fAplA?*0Q znZo@=f$(@pAnOfxVaH!5if3j%5U={`;>Mvd__euPaEjG{sB^~bgKZZi9F!vpwWguT zUf3Mr&!+Tu;osx6khxZ#ZBhHLR4-Z^&#cg8Lo0pQ#&M2pu!R%U&4|VwjrFiH{umif zmSt-c!&t@17vj0Ea_qjREfz&zg;1_p$4Yu2bKXoRAMFN*!gX||ZZP(hkU@8IeUzB= z7ZUF(v$aRY3wKyEEuB0`v^#B&hn_aj{DFPoDep;^IdqfymLH_CYkOeKfju;?xfqmw z$qBPRzA9NV;650Xzl1=~8W=Rw9^)kJF)C>ntk%tkbDEMEc+r1$ z^wV(`ixT><8y1%ct%hJW&(zf79+>o>IV+U?Mf)2rji}rYSO2o ztW5Yjg)<8}lvoDmMo&0t#qMsMNdM)@3au#??6HnCJGfU9=cW{KpGOLP)m}p#U9Kpj zu8rM+e+5}hbHTY;$!F2BW{@BEg$z=2AoZvw^SM|o?C1s5I1xq<&Q7Kw$^LA%RU|wA z{1W}s%`ZiVJkpQ$XO)%P$jNn$xXjoTUsy#jy@p6p@AW!5`y-naa$m!oY@YL-=;EU{ zYpw8yXIHZ(o*~sRJ#>1K3G0>nvdo#j?At{(jBDBqaONdFFZC$hspHK2mQ17?Lnq<> z2p3#*v6>2HCE&yldlok#0&i&cK}C%=sQX>v8{bEO!*egv5(On@p031x@LN;&bdh2hH>Q?~r^6;S0o zhY`G2ahKd{T9`2l`VB@@SSW|{>srC7GKD(Fb{Dt`{$6#B^=YLAoBMK2fDH+`l~WT_v4w=ik<+ zWpPE4J=;53C_NkE%Z8cP)5iS+af7`F6pm9MuVYP+yfm1j6{>~Vq3v)s<~02L)(-Mc zd&G{|Ja=I$B151eSDvM&YYSo0`mA306S*m7ik_W% zaQD)ENOvtIFHJR6ZsGk=k=m@orHA57pTpQAkKppxBhWPsP(gVs1<4(t;k+y4N~Z%( z+V&gPW$Ut!ql!r8j4{k{$GDUAlE~CVkW?0OyuirhMQS7;_(3@6B_9 zPY!2eDzLfs~J6}h#-wpcY z^MHgUNk+J3s1}XodGd;<8Km_@3a7;f;khHHVAvm9Hr}NY3O_qCgGnYZS#1E@dCi~Q zw~u9)Zb;(rB4d^?T!9&CCBTlEfT~+9fsEe4J(C!gJjNHN7pvmFBkI(X9f&u#7YKj1 zet;pNGHlh0R-dZHJ)*l9OlxEnu{I~1-y%Dq$ie6BVFyGUmgh%^5F{%Id zIBWLpfn-5JET!MytZ}){5KKw1XBY1t0B560(KB}e{FuC-#`FH3Gq+_S`I9FLytbBV z+RKH#1Cv3np+XG#BTZv6t?+w55~WM=2Ao_;3@Uj6|1RvNQG?W3Wn{jfc49ku-s7K_ z3%hvsrviQ)55ZN6{b|^SJ}m7~Diw830f%gFeDNcUU0>l zW<6c)vJ!lB-@q}Y9CGKpPV@3q*!M1yRb+30q-#Me%}byUb>eam<5_M{Hs5@C5pJSPgr1{W+U&g|O|$X&5>5CG;U1HgTXg_b)oLxEY+w zd&vvOwMs(KGf&7V{3FaPQNh?Jx5U#GlB}jFhCO$8N7?7jY#isk>v3jH%e0s9-;fu? z#O{*bWKDeSBZ;!V)|30ng|Gt838NIZP-b)p+vD^c7C$%)qA$-#AJ{+>Sg#PsXMnd3 zhS;cI0`>oevs}AD_`XjVSo5w6g$_PfD)z@;ttM>#NE?_C%smXZV=!jheDW{Ip-Rml zw9V{?*Bo96ZSuz{N^T+Svsnubmn7Mz=20ZpzM~Zt?_kNF+u)j#3Z387anIlyurWDB z2L>VZvD3oJQ&qG&*N5;w8&>V@#1yCaVNR|p*}f83UdvxtcR(4(fdTVM=NTrWG*Pd7 zJ-s}#8K$pa4fbowxV2Iqd!A~uS-UthU}`v9aU>eso-T%@9Xgn?>>qtL|3kaWRB=GH z3kuV_sZ((_9CO!azDi~Eu|1IUpCBlmJ4{2v%f4DJWJ% z{-v{jc&BgHY4GW{1Z19hu{qMC1f}prAfwJ`h)bt$o=YH8Q|5V1jb=DL)C~RC>GRKg zAZC~;WB-P0G-I$g(>ih()*Mm6ng3}B7hmb(&OQ;CmYVpxGrH^gf@E|8;p}~ z-=xTCoxWp2ufmPtHqdU-02Mrsty>|(u8y8eYrNZqiDnuU2N#4WyZi8a+8wNL(OCNmw?5G%3 z@QDY73bnnvI%L4o7@RP#433UDWcWbaQ+xt$Nt?ZXZ zKf~@*!UTQH`(ndhdFTk6>y(+@`w&*y>c-mbb%Z-Rl$fl{5X{d378xUhS0dA(?! zw9`j4z9Y*Hedh!k0QRK0rXHQnCAk6RLLDLvo=vPSyE9ugtAjcC!-G zT5Zjih89xwTSsB!nHE}VKLpL%bs_7}RtPCb2Gdc4(1f#O&6QrzGbvLney7LYTrpvF zlLa{19mB#W<v(A6+>05n@s{)7s!SkY%``wE5}>n48)NR{zG5dzzo1 zASI2Dog4VQULD<4+*r7*7CU3+L#`jSaIR-6?YOSOW;ObcK+$Z4|vE=^#nDb0G$ zGiuwWh0kv0l`0N1g3etMxF*;cW{-MFs+_x0(xAxfoBHF6;2( z#gPH7;J$DaMJ06$pFb?8(Cx-dx_6;ixyA-0x0ztnrQ<+$Wu-H>rc$Bz5Z35Z%zL8p zNbkD=c5MEB)$Ot}jLkR0ojso@c*$JYIZ6`qCOd*@iXYyXuFCbq;jsL)0*kMxDb0wB zVE!i+F}=7~RPtE`0slK1z_9nIrSK4gUN3*cI5FlFd1ZV&B&*smW3x{gA{2; z$PRd3;Kbg#4`ekIi%zfn*^L`Npf>R@jd)Q`8<`)*YX+iNm<8&SHP|&X-buHj5>{JC z;v%C)=zi4#O-fTpPxn4JT;3uNy)ux>?7m-YfVTya=y{5=f?OJM!@sfy+ zIqj5Ean4|Nv%n8hyOOEzvHhaPsmria=NDa9>xVmIxr)18mF;~SPAj5aXml^nx*0U_ zS;YtUtk_Aq)@Lc<3_ z%lGv=k_%7X_JznYJv=t*kdWVCfDdjuu&WoXaqGDNN>#l91C~FAsWu(tT|ZgORWKA4 ze(6!6pE|QSXN%=_Ny4c)$@J)fK5nUVq+T17V~XZ_&(Tv;)r;09ev z2IjiQ7uR*2!w4B84&>Nnt>_W<~6SSFm4-b+1S1$3K4 z5TDhbN%=>!y;oa_4UXa(S-j|KTMx(ECD?*}5lk+_7LTY7=G|F&ROx5R9I`fn+-rW5 z?$u*wUguM0T_Pzb{-f*JDbS;H8Lm$oLeXYU>=!i(?zeF-Ee z*@CzEKsI@rChgAK2=-Zq?C?rkmc;YyS^alY!O|CkbE6^-;EeSjH!ef@yA(n0_z8;Y zmSBsFz1Y}S(*^e>x>)k_8hD0F31#=4VOvEvg$}Y5N5$_KlUJ{z(^t91S8C558mlq$ zP-CLPC~V*!tj~(>%z2N1$Y$70cQ(f^KBF;5XeNFd;#o{dhKr zJyic9_Q-t}cW-Hi6ysGi<@QX9KYR@0J|Cs}!^OguH>FVbD;mcaZza90(KyomCEZ`V z9cDE|!ph_dvb;11gO14Jk;-6}wZfkYZoQznmtC;H{T%q~8&THs1~QR;K`P(egsLKS z_9#h)MyKaGkmUxI?9!OW?`9l8zsVDMurez)9C&sX}e{nPjO zCaviQ`fa0te$J)nw`#b3??_s#^ajclqA1QukEJOOW&u))tZ>_9$UEl9wtsLz%>X4< zoY@Mt<=5fuoN$)CO_E6o78v$h8xO6}#TMz$LRD=MXt&7X-(#utT`!)VtTAA@yTduR z*_lP<_|kIAG+GXSgv6&4$y`Z^1!ZzS>CKJgo?b|wcAbaVd|z6s<<2z{9oB#TAClR| znK=e`#aZ9D=PY3k^i%hzPjnro`zYYSeJ?3SQyW{Z^g$}W0@K~s(sz#&Fd@eg$7yqx zQl2lLJMCFl>~o6UuYyVYH^Q9=H>Q%uJAg7y(KZ&!Y_xJpi+ZkGt&6N1Fo zeNEZM7lwkriv&}C$8RjWE2}Y}jD9&-L3h?28XMhF`fG(@7Up=aXnLKyiPjLhMDSb*3oZ+?n zupij{K2VzWaINpm$zg(RmoK&`q=3>Jo~3b<7L8pTM6KqFf{vLVY3+1p-&BWy&p3IU zB>xRQUHnbg22_JGJt2mJS=_!)bZpv0anD5?#2!Q$>1OD7rvQ_-@Ll^+GMu@2P`Eet z28`xBrRGna;@lO+?7`Y#)PKz2 zLtD$0P=1giZdZ9mS#v`1_=3TB!b!lKG*#Rak_qJ@13~uuyHdGLZbFND80HQ>MSW8o z(fmju1lzq5#2i_SUuety`7rxt5ge;k$6=qpgOlHRIQMuo-I}?XVi#GkKAvCcziBP7ap*-_ z7dHW}27RG>$CAkAtR_zUCt%6?dOGmSl@xh4^UTi*`kb#%1+6Y@n}a`7FH~Z?ufK!e z>Cvc^tBKA|yyw!xoE4neC;Ym?yAfw8U{cL_iny9j$qGvFdZrhxjJ;D@ZW2m+H@MbjavG&%?_*KQ`gf(an@so>odk|;!! z!Qx>OwA3ORv{Mg3aKUt_nX1Q*&)x;YOC+!@sKeL(&Q`H@s1<)(Jh3Zwf@l}~i53f- zJF_kVvxeM;o%oQ(HteUJer?cV7Xbni<`#9vcz52#l#!Y?A>(xlImY6w7`P* zd|(>y_l#lQ;c0LwHiObmd80<+04A>JM>Bo%V6RVKjDFycVK=R5+@O8F_n)}nD4uC` z8adPFMxXgm^oO%kRQ%y!rUUom@SeC_D|D4R43+aXmi|xqcpVInrCfS3BTg(h59R_gw7^`zw4^ZO~#t}?oeUJE1r|3on6V& zT&}wgItXP&(bzBWA1yfhos^Ciz~M4YHaLYdow_xl!ZZ*(xi5OIqayn+z@F(=CxfF| zkJv1w4xuMK*h4cTG%gOo3oW~OU(OD)J5f(}^tZyx^!X&C@CMqoraw8| zCYJh`-@C6g^sNEu2UXG1O%)Kc%AS4yw@=I-=EN>lnzN;R;clpc^dGC%mGt&l*HYu~#tUJEdx#^^~Pm?u0_(ivhLfFU&OssY90*QHJ zggCiCR?(-O6#L3zO3E47Iai9Mt}78I&nK9yEL&?FUwuJgT57P6D2+vu_32^ ziK?q}K{cU2B`rP1@0?G>6AIZ7vHT^B{&0(vTa+$>I6Pd0ik|%~JS)tU4bnCUs{ogc0{kpSwX9 zd5$_}my9s6DT>`1s0yn&JN%%BCmMA3XQw|~dittojEd4*?Q`lEtZD7L>^2UDejaG_PBXtmswb!I#V zvsw>~+9|t5JzG=(~!DWgJG(Q-m0OWrAsdwAwIH)$3{+h)Ufp@6omxA%R_##7{VHGIBB32*>0z*Glj(R>XviP~nsqz#r3oZV_4)jdv;@D6o%^ivUGzTG|Sseu-a)P z%I`G76oae668#{kn5s$Zjs`MRGiQMnJg@y-22Q?g0V$=yEUzF^a4oMD{uo&?oxe*< zgR6GZuq)m)c>Q`1{-uE1Ax^HHd66D(u@xJ~x}si&IyPQS{J7H*3<6@N$O*Jf$Z*_6O)8o!Pm=4?D%+&rbVk@h7IRb zDCW`C?{DBs{yVa={lRx&N8I($w(2aW0IeXEi*C zcVe$f?ov!dAK^J?NN*6H(RVZyYIiqYRqBm`Y%Oi3c3zF8q+W*wjcyn|z#r~)rqSo| zt|*ax|u$=4mnx5xi81F(#805vUMiT2)@4_KFJyi6t!3ULVA#p`5_>Sy{RYf^8 zr7Hlf)RnQhnR^``9)=vZJ6><6=wa(8Pn?_d6K1I$EDfo62p{eFU2di>eW?z>u04&y zhNmPq>o$G1YM?ZM#`H76@4-$qgF{9+odYFOBXp|Ob7!^gZmpp&)_<#o6 zy!sKvH8ppdF9XzpR<_kJu zt&MB*cR|P}Sw=R-?7HGz>QGW--aFTdyB%&(#h-E-bnrA;JZhl(W8Y9tcYl0(^f`pD zIzxpAjPc`^T5|8`$BI?e*pT#e(NU^VnC!sy?Lyx7wyKDxkGw+BfoGsU__OW*trdq} zQ)6pGLU5B`y12g1nuVHcu^XfHSeLRBf7^%P_vLHJ*-;VZ>>Mr*iTy-7?`)y^kl#Gh zT@B;bG?4a$6SVQ&HL)PLOAMLRC}u7^EPij>1B)&>!m)z`&_weP9P?QLPEUMr+`bQR z;MOs6<~N}|@;_;`o(skg=h-rkNVcVTpEz}v5%~NXK=VyB@t>3lTQaAf)<5fo%#;e= zy{=BJsW(8&>=V=|-vw>(WNj7ypfcE!>%%H(6bk=tI{QVG_tRIAT zG7k%ehrA$H^k+RIro%rcPmn8Cp>Oifc~7oAds6%!Zh6;%Fuod6COV<9`W~TF;WD&c zc1I!O4CqU9E`>y_FyC5%r7p9D*ZgmPa^h^U^|uymHh2ir4Q>e@uOHDWV`n`5ITVf! zA4}ugt(e=&hcwT%8cthSQ2iYl-l^sXzsud|+HxNj+wMv+m-rhN@N z%AR4ub8Q2msICfDi`O{wPlb8t^nsWS%Gk0-oeg#A_EA^|?AhdYGBrpQ1G4#SB=efO zteW5*=S2HXQ^zNtUGb%U7`A`CMUiVJlH7~6;5OS6EHhWr2wP2YqO&}sW4Gwzgj)D` zxf`NCIx;ElPkXhv4tffCo;=$fLq`;X?r~}C{1eHPn_t3o##C8jqW13R5L`W&o~}bkaTgu;d=- z#~LwAY=`(n?!7A9FLY!!KuC2MetKFgeoAm>ov)+z4zX}_Ks8%31y`aB{MVCJ@1f_5lW>&R(2U7GyUGbzW@*Se(w8y&g=Dj z3QNIiMSrsXtcrIJ_rdFPt*G#w7Ym<-ICw)KY?wP6rkD+*s+f`DEWL-&_}-7Tp6*Mn zd12JH^#RDF8!$(Qx9}?FIIUlz1n!+VLMQh&Rb2>R)8-u}i})}|Rp89gud-SHWzm-H;`clt7OG+7L&$^x~G5mZ( zbU0Wj)D3?_LH^3j-iou)#%vTe1u5gU;#UxPT%9S^BBm&GgVCyeG$TbCV~;)r<%A%n zGPV=GRbMWb(W(@R5>HU=1WoF_;{eng3c-_72PrX9jxFupE>7`1E!eH(Zs;l(rqntg zP8|qgN5`28e@+|Il*$~qg70bB&`{Pr`95s?+61{fo(K!?Hqd_cYH}XH`Bqtcb|2>o z8W!{5%N)*C|L+-e{K+U^6d+CRkNj~-(`NGEjN=H4&)hFL0Bc*NnM^i!{085FZ*~#T zxKRm)S#G7&W%9Uw(K%Am-3G=9>*3k-$plZfQ_JLjXjJG1kI!5v_wBk(%dFDLIL3?> z4_FG)is17v$rpzi`Cxs@0Ic)>AWqW>CX-qhJUp$2vh?}y_)mSdVMZZ*j%=aeedf4m zSs9R82qtz4xXjfCcV!x}_D41tyEzAV6$?EhzCy(GKa%Ss>cRQF3Tm;rv}9Q`dB%hb z6J$czmUjl|v?Lo=Xmh0bG7ZGUtF(VmCS>&Up~;u5F<HdXY6<)5x@h;NV0QCmDjCQJp`_!KI7_ja=en-Yf!P^_)DTBAJYr&1U<)8|A;_h#1!puX4pkX78aSQ!v&O#e-EV7{Z1MzI#nxk~- z`V`JKtARy4d#>BN5B3^<82TM_!uYd(IDQ4s6zn_$htBO4+U#m*>{=~WaQ7Bydiv6; zWv#H}s3~?f%%)_|7_?a&hE0>?*+ivK+SjBM;AJJRXtvfQtt>bM>AjTRu91#aBtAx`!TS`YW)J6OK{YljCrqJDP3QK1LhA zX|md0{h5v44sw2`%y!&7DVWtfT4rdYpo8f$e8{2Url+3aVKf$ z@n@SqXNT5}BZIofG*TOIO-3PfuP*~%sVQW;^$R?{Y=`!Heff?DFxhn@JXotKlzRtZ z?KeZ3?6VM}xA{=mK09_?=9%z!t}6cVyk2%R~LmvqpRuXM`iMu*NaqqRoTi7AHgkZ2W0no04q04rA-U`nCSz= zzbE-lDcK7PcqTpZxiq_7DI=~}@EU?*RbcGa3~H+mhG{D$SikADu-|kiRI4p6-)vGN zlsRhPlDD^Evwd2bbPe}d^0WMM19i0TY7+-9_h7jS>tS`-U17(I0CucnAQmlnN)vC` zvEFJo;pYGyq43*$nmpPTY2!Z{Z@wd5IogkwECse7bkuig&=J*w&Epa*6vcFo@p*-s6+$WQDn; z!Nv()-VjaVbHHP61>`u;gWVoDK)j*;OuQUkMyF##aaGv>93!_!GVp{I`};`&&c8Ha z^$Ej->Cd#;A^AWGaymitcdez!{oS;KLfNW+z)V-32Cr#%sr+0h23KpL{6aaVDBRLvBMG0$PM6xFfRdC*fCeihn0z3UY4$TkjA-@^pU_-~=vgKB1q zH{S>oUKuc*cV4Kwe>R-;;`_5w&X4fr&Q)m%TlxMJ9a*;@&ihRk=V&*PeTOlfoEHT- z0X)BDD$54F&VvIl^jK?dG*(FcpvWbk#I3<;F!s!svfx>#=uW){L|Z4ofekWvcuyQ| zT0TQEaAN@L6nU0;Xa(74>9Dt@{98Dsfregw$30C}EI8W))|LMAb-wA%F6S>4_tmw* zveqqdWON3Eb?|&z19uo~`VF6c+#-|7jj+A@6eR`eV@UQYa7tIF|FpA(FaEdb*U?z| zRna4!T{sY*HT$yk6DP>vpo*w8&J4|t{vn-@l|uVy#Bzr(!rV%OJE%-- z40+rsTCiGreaQ;V`8)l1f&<&qU1Gb${%k1wD_ISn`Q1-1IJw-m zJ`U9i8|m%ZXm)FYI*v123T{h$SrK}(ns34ES4R+8_%(v6xjq&415DsMCL>n~_PY?o z)>-rs&sskht&C(@=FKEpwaJ=ZdKJ-)bC=;O-XrPA9W=u^j2`A{pwirTpryd?u)lOz zIcE}C?X_gNkK&oUsT1DZHHY38XfU_g2jEDaD!td|xw4t>$|JrWfFDLrVC!QQ++gmA zj=8bySoUvmL4p}Ba4(|ckBgw*+y_4la-!4#M{3Vgh3mPBtm~T&GY&io{cX0;TQI@2 zLH)7wP6-Uv-v@8*0n^+TgVMRuY|=hoHfZ@ps9T*b9E?qbb%%Um(e1TjY3gI~S?nd6 zELhUh_)sje9f(>%PFSe;h;%b;1+*%HU9Y{=uC5-O-!H%;xGT-I(w1udG)$TE!e$Q~)TGSDZ5uYT0N%n)yuYvKIwC1Qb%ET~*8p|6W|xd+ct z9GNzk$t2aFVWC#~->?QJ-VE7FsRyMXbDnmBsXU5~lf-G`1 z$e^Zu0c=4=F86qCh0490&6~nqQ5*WAntTTht3OW}2Of~rQ$@Cak0MTZm`8qN!?Cb3 z0k%l>1?TUzH1%80b`?b_zZ{KuCI;9S+5qrSp z#V&Z^)&O=B`e5Dh&#V2wErBlF=nu+?yUxUq+s#iH>*aXP7HaJJ=wE z=?AjUd7jjA$OGFFi^Oog&uV*oNpvgL1oJ{Sc7x~GM)0m&hDH{xzI&F^`kG>Yo|hT5 z`mgxwB=2r?wNvGKKlpH~H^!egM=M)1e73;}hdM2ThkK>)qM`y;e;fmEE5q@Rw>$nz z^MIwkn}m|;@09b%lSS8Tqn~9FICxtbNSCI-&h8GHU%Ek1@7n{ti~`xR9|0IKbs|_z zKUjvB>gjb9cNQ%?4+%a-Om$KQ-MK%2WW?R#^GD}s_sgLaqtpV`dc(zKPd-A!>2}KY za>qA3-zm8u;PUD3ok#%QxGCu8yH856v%;(_bdjE02^ zqp`Ww8>S~kW6)g}w!BZX_;qX`v+*mWzZuf};AzU{T$~S;&wVjY!;hWZVT-RKKEj=^ zXNBs;9`J8!9QFjgC!-x{Fj>kLPi?(hK4gLm8U?Ge-NPc-Nb8T{(TWHbkmAdvR)y15 z9Z%YB8-jw%06f>3Ls>fg*gXGydi5_HqZTS-(*-k3=d+DS#Uf#oWiYNgyN|jYunrB{WrM56j}q%SkNU`1 z1NvTEO>=T;2yC0_>9`wkS|JNo&kbZNPh|*$hPkuVA!_2OKHa1@+ywRn#j`12Z-E$m zR#+zeN*MB`lcsoXqy5bvgzyF2r8e&q4O(PE$-7&rvGW)W)K_B7i<0Q@%wj4%Uo3Xl zasSJ7Cl;{6nLR4C#*A6Fq31tuw#CyMJM^O2$}xt>ddIP-aTfHKX98!>uAKuN0O=g6cyiNxI9~;kDBR&7HnJ>ErfNS8=_V!Hn4DNO@*; zY6HAE^H&(Ub0pRC9YB&n8F?*wOD3;*_n;EcV$2&!x>Ynz&C$i%YTkHb-&Q(u$cg>AM3LPS{dnswhOrrpj!tfMsd#S)B)_=*c8zFa2V3>yrnTEyyv6u0Vcza0^ZtA z(bl@Gf5|}nk(x-uZ1vgo^EJYv>c1q(P{9%Ish`SQn>Coaz?hN;5xexrAbdLu!RXibd z#buG~^>bjh)0Y*t%Cf32akO#^FzO$~{+(CHqEuycYaTDs^r4)?^8;=TE0;)3P{WE5 zz1h`~#Sqixj0eJl@HA)VR`Bfp^BOgLbejMDr=5WV3Py0CeKD0e>Ep$awe)=ARET@G zhn{z)Nj#T$2pTySY|W|fq_oloeus->H0~Ttx#G^=NSf$`t1&$D_h6CV){?HYK3g4h zgbtOw2h({PNpTc}zg ze4j24vxaAaZTwTJ3sywSDMsk$9)gE_?3k-bAa0(a3HM|6kZNzDjn;<35$j-lHt7~@ zt#HFBpAV3&%_mZN{tRZsJK?pd4RF=R6IAZnL2S1b`y9!?t??erf7=O)ZH(i6I5qq_ z-5pEhjzNw81X$JIo}TnAAg7akaFAyVD?1uZPrT-f(J6ZPX9{P6l&H}Fm4Wzc*cEUI z>xBjO72?IW%joSN)AF9xU+B-yYjm=sj$~(?6bes;u=BM+@OuADN>Ai`-Uo{~2c(XE z-)FFz_hD}vg|R(t^3pGCRWk-LuzX?|W;=KId8EKcPsiE7)0X0=54*jP_L&o6_2 zy%S05QyBYwMU8FEd@II%Y@qS?tXRye7qn?oEnVyEhLFSO;o~&U#I$y2eV)`yW<4y2 zhwpO5p)m#+!*isE6wZ^{L^(EOWq;n$7>J$Mj8Q#hKE&R!XHU0iz?I{g%;YTR@My0R zog04B`Pzw z@{%zg|efIjbW7#I7o!*h#72hI^NdXy-(_s=Bz z1^mpA@V?yUs5crPlCVv~`mp4i8!0hk8>Ls8;>UCU%9<*AGs)oRU=h3;ULQF?H+KGj zEp0qI@NxlMmAJ9=bKA>rzSL)CPCwvFLpg2M31bqe%R)yvN@moW3B~VY@YXp4cIV+n z5)XAy#eXm8&4U`UyX%W9)rP~H-LK&U_Z?=n-4iBv?T5XOJ@IJ9UmCycmDr}WSsY$c zNv^~B+%w)nkUsZZqBl7jZ9i?L=;x!rE-#Yhc4)HUH~!L*kxyxXwlmY6DdD@l5_n`T z4Rh9igg~Wanxd-Dtjm%B-&v#MxGLy1Jwzxz@)I1&-h$l9GOGUG3xb`ru(j$I#jcD) zb(?N6-FypWXgm~FYzV|Y88^f`3$p2>eh?m`H|!yr}pDm=D&49B-^gExsg2rg}d zkRN)O?RpEEIy-!`b1uUh&W*60?8CZv2S|Q$1>C6Z&kSykqMN}kY|F(;kZb6G&+M$& zs<#Uwu3x8>gH@ozB#5=G>4s^hTcJ2g8O_#fGJPSO9`Re?R2M&1JOi-bN}%TSUi^23o=KoqO9I1pi)b5B2W4BVS46=nc3^3{5KcVhJ zy_o;)Fn_17lKYxaFz#ukCw_8}#rsHqlw)zES#Op*f#)N>#9_FlDoiNlOtBS#bTsx1 zy?)`0^ZV?jIG<1A30D<1fcqVlA90R*fdrP1HfEz^74e>}DO1k3!P|qfp`e!yp4}|N za$`E-{)=4N{b?cmc~DA8Bis=F+#{W(IS>&6?3-bM&>7N){WW!ms!P8_lPMh#bwom8 zO}b#gdCfn}4dKJl9J+Kmh;`@P0oVVs#G&CK?9bf(?22C^7J+s+W?#KH z{7anhx8#%X>en=mfbGN5ZWO}o*MYdG&j-Ls18Dh;Fj22>qLA|{lugVuqU9fSnbe1) zG{M4?;z0&K^Ltd*wPZ56&%N419odN)!rrb~ioVj=))7{)nPso++*&2)M zhZ(T;7l&ZIQ#DOdvSjq$8-F?eCBK`-ENO@@)b!kg(kyMLN^r__f{jVYvy z(p$j@+Tn-AQ7~;(XMLqr@m*6c)t!rF#-c3yvEdZ7UejRmhki+_pW36ddLhXkxJ_%` zU!ew#Bcybw7?vG2p~~` zl-bPphD=uL8eBZFS$r~0i=`@!7WZr0v8+!&LDS!z)hJ8jY<}-FbEp>+uEn#+`2nne z_s^TZyn$v_-YxI0C*y58oRhg7JZ^jkU&Hr&N4l4MR~y5l_%PPjvR;^!>4Hwfwa{9k z%xWXnLc5}#PpPp2XQ!9L;zK)N!@?b6X+af;L<>Ra!Z<--?>Yx%JSeA_nsWNbX#1q zFON!M8O$H=!;Y4_V(_F}6gikblNv4b%8cg<9qz(P&fbdIe@(Pr7tF3*ab}I>T@a`c z$Ev%$Ss#9nPyXb}2BdnhOvCTcz9kh>AG)!Gk*V;*u8XAJ@ZH(5zcjPeocFi&g&P4O zs8Cx5{YH4B+Dcm-ZC6k0n{;sOY$r*=y*TFT-9mOTe0NhCS^lXhRCtqS4r(FVZ2#0K zmZH*0pZ*0hEI1Y+2qN3WfCScQi)+4msL*;U9-4Fw^}l zwx53iX6;pUA#)t4C^iUdEX{EMzkk|(I3qOj4sW#LLXf|<0pet~Nfy5Kq$MZ63j>}a zuG=vRl+M4SpO00A#e>gKz?5o9|4q}yyIpx;vy$`m3x0#+d=oq}%Y)CoZbI3&M%bVD zg|3vSvhizM>1I(33#f5n-u)%a!i9U96srog*vYS7v3 z!z!dh@XOKrLUv_1Yq>KNLP{!NO^Ol?>p4WejlZB%y^WT%jR*f}>bU>eB>FVwDwJKa zr>;dQkm~qJ9DL*=}{v)uBmVke>3&rO1iqxBPofBQ-+0S0b#IUJ@sb+{R zTkueh&z0|jy;K{(&r;F%p8~}VzX-bOpW#O0U>feVR~+tpL;O)74Kv;w;HPW4xN)^M zPQLsM@??vI)MM@BIpL?V&PzLfL&G}XV|Ls#AX z@wlxYcS8iT!++&j!6!WwK0c-w#yjX+@hRc4P6!+2YJx)*D}XWKmJVm`Q7UZVG1SmMOC^1X_v$k~p&`_fjP2atMumb~oDS?P2)&cJLT zq5okpyZDk`y*6YxyG498wVt#V_;5bz4qtoy6nHgzF0B9SffE;dW2znheysDO^t?}k z#f)~LpTT3n+Wdp?=1!0}%LLJH&=zQDRH4rkeKA!W$TS+f*v?PVsM9eR>WWOzsOCQO zDG5X^-!gKvN}(T*fz6*B2Q!ZjgJm*d%wkpvEUJsan9I`WAQvKdAGj(WEc!)iw+zwo zV3lw*>ZqU?V=V}Bj_g$S3CPO;wkG~5m}n*-a29U!%wyuFE*b#9`tW~nuFbBFSbP&;P+(S+$}b7#tvKy;n$&N`DWf%nON%=fnq zM#ei(&(l&;`PvFSf0D>{zb1OG_Gfsk0damW2MavB_t^GqIzAIzLkrYMfBe;&^7 zEIyFbo=9u%C=tw4Ks~cf^zdST)J-sDa;A37^ymw+I%-Zv$Io+KcMjc4^v7H7!Blx_ z52SutMfc9ivq6cfXtBkbWi5?Hp9AG|`lB39_5A^k_jm?)H;3j#bqe1NT7;w+E3$Zg zL##UPhNk7c*p3N(ar40Y;Im(rWzXKj;}lY;$a}s;HyttQZlyS%_dZe-4Y4G8wW{S_GTE9-m;a}E@~F2;2XW7Tw%lWd$9h(PI#L%kfpjNidR3_;l9us zc)s#IS>1MH)2a;dLcnM^k{!h)p&!JX-lcSu4wAg=NXfXQHu}%ESO9BP_GFv_>bf5n zW`ERX52b6xgz|$zjruXl8{UiQ_g95QKB0KObQ~3obi!}yeAk{hmHKQMh{Ku~q->4G z8rfKgG1lfBT_4o-oB;tdeOP~UZ`xhiK^Og$F!*hfm^Y-Ebo?_xU(*nZHynnQo}Vr9=7eXLzt;1l1`Ejwm~KRcV~zUoe>-`zyL z-rc5iDWR-slq%Egs-wGnXMEvFA9m+(97`U9Y@^yMs@!r{n37m6792ET^QKlojbXkp ztj!C}T20xf>|V_MYc#0;jipEwsjt--b$HtWuzU> z$Vq`)=iRYjg)hGN&kOsO{sJlP)mvNU$7EePY4y63khbnOXE0Tfq1s*{V)-UP?Y1oH z3~z=%t$Yr2SdqD$QW0Y-{2_O?HI9?(;^(Rl)Q~32?v|wpL!$lA^l=g#+WMYaSE#co z4nrwFbR4A0@1*8MOo%%D1^)dhm8@QM92{QT(GR7^pq}K2$)Dc%PMfqHs;}46k}X+q z>}n(3KD?uR@Q(wK-4KoCWsywLy&fD_HBf>2Hp+bDhq(zFcs(nCJ)V;#{>O7s$8T9d z#F`_tKF+rA#7aXCG7sJgYvu6>EpyTqJ3)wDh?L#^SWmg_S%`< zO&%yV%IiY+hIa>=S-M0yBpHykAojo((J-r30?_wWWiQ{=wzA)ojn`D<}Ek{a^YKq z-`w>eFU_64ZSlBsRD-y)?lV!F8IwwG<2lf4kT}2sjaP+1@|Bb2=hu4U;g7kru*X$Y zX?a6uH@}7VWBqWO^E#;13B?yVSu|$*MeaxF&qicb(&)GM;6Dp(7Pr6?cMf?A&SiG! znEsT3RkT!Kbl22qW}Y0m9Y#CW&;6kPL@ByTyRY|li>v6(LfrI&)~ z{9v5*4QOwNGM@Q$iKhAZqI(vQb3!NBTlJ$wNl)SSqj*>qS4Pjd`?Y(N4*Fk8fwk=x zH0Ih4Snub;B66DGal-(%(J!AnvW-C3RGKYb4s6rcLQ$bMM;O9AlXLpUFprOcP+hr! z6sCBhVcTbMU5=D+O6w#{TolTdB`AY(x&y`SaD$%e7}Wc-k0K7(kk<5GEMkr&yJ$5V zmJH!pgnWB;yssUL9e#q6XGbu{X}sU|OcvX3YO$v9Y>B`64I1a?jN_lS)66BNC|55> z*;5R$-+@LNlD+{pxRJ1Tw>~Qic|(m?5MQbc6!bRu!1wM%kkg1|b90{v-b>8T?T>&N zTAYiDU9_vg3CHrD?W*mn?0}^)P47G>hMovT5Iu4FX>Ydn)>WbHVzN+Yv5~HvEhW!q zA3%}Sia#T@*oTVCAQL--CQb5Toj2}-=1O@=ow0|~m%G4SI|)P$<-I!nc5$u4J@Rkw zgUgenv3S8H$+kVxOnrbMGm`N|ds1R|e0pG(HcE``T|}8iXXfAT%ytc*MRUePp;s&S zVg)n_Iy0j2ElLR^EGx_HcwRTm&=)VZJfKSt0&vY-dGZWhO*ilxBz}r#vPLGT;Z{Rt z)qZTb`~ku5;ZMj5&VeV9f$ZpqA8@!PQLKx7QhvfwLO!KxWDsGG&xAOVD%}Y;d9U{Q z)*5(XHG=FLrBN(57k~O2)3s|I!o(SKK;G*Ce49}R%3mF5r&cKQ+OLH#4uqrHG)L45 zzb0mHod9heVLZEFgnLF5(baXntY%&X%>S*%R?rC@nrU&azQ;qAftL)tQ?_DrLQ)?Lz@|5^Y;#LuIbC3Rb&c{>@LlnriY@P5t}9Z zn6w+G3suW%X^LVh^m}h04j*lbHE>+$kWVg`C%^sW`|gP|RPbHLgLE^zvDg~V6kLD-vky^-ssbd~ za4q*Jr!A{sE(mFWx%!Ff~D;r(px z_`Vm3tDNd-!tPsO|6LpVjM@aIgIBie(8+zaeyR6A!$bL2 z?9%Qkx?VS)cH}rP6PxjLV!yt`>(q1~+t+XSpJh+Y@Ai{2_aJ!M?S!pM48W*jI27Im zHc>MSS4LFQml3Dw#C5)!e=ng?MNaG|lZTE=R_s@kA}f3z!lP!(86KRU8o^u6!N}#naW;n!##Vm)b~C^=D~X-xT5HvUAiTNfNG?AcjS2vHIiY z?03Bh%3GhOqnTYi8{p2=KbUi#Wf|Qc!W|~_G;!*pCp2ZMUwPJwFmgVwDrPt+!qDm5 z^U^Sm#tzm(Ps3N@#dRu@dG4nLSH<4U_RTp#mwea{1^ydnkq-L1Z-SwpEV48ey05H2 zj%SY2>%?2sSZ0B-lTOot-|9ldQ(g4u?2zWcu9)}24r@PuqYG=tb5>WgSW;>Zo%1)- z^w$n-)zcU}?DT+aWo%hok1w9*Zsc{->p|ImG&!94B4*e|@jKf;>W~LKq#cG^>@-l_ zIEluHu`uwsISo+WENFQ=mh_#c&TcCYg$E&@SC#`{EcITWz~IP%2Fw~ zY|$)Q9#J9ZL2k6h_$S?dqsM1i!7RbWoyEz>v#4Hj!e8TZINRC{<2gSe$i7RcD05+l z26?cjo+fPHcUQLH&NK2}tI59Y>jj5ml+j8i6?(3l;Fecqv~SQ8*e(B*!nX1(1-yc3 z#~;$O$Je2yR)z{crc+C+3R6wX6JPRNv8Li>s=`oKGKHTP__yWAlDl9a;q0+tM(pIl zH#GdUhp4jMl}2vl-1+uh(3NV<2KS@_GnPY(M}{od> zLUwlZk@EO89=Lz8J+sKm=e%-hHmqKsyS$>v=F)O#4vi7qzw?Yjnk_s%$bCgK-PoP` z58>##qr&2s`LO&d-`{*6$c6=erD3YlDEZY1kF#z0S^W;2=_!WlwE>j;(FUYd3;wy^h#B`h;+{CV=MFJAt3QBVI3e z#^L$Lz<#GOJ9g0pCtdNwkkmV%an7EF@9ChPL7Gg)b`V^DMWmYl6YS*dnW>UH`}NHm z&Rx_HFs@lpnia^#4?h9AnR`gihJQbvm|!qJM|Ev2r^$19KGEtBiLJIQriJrj#TdL0 z@{A0QjDzQc`U->Q`tm&JEtvC&vz%ur;U4E9aNp<-tUhv(YTlHPa%aA{#K#J+R<)9h zmKxKFc}B8J_X>v>O5^SRTj}6#UFsuhvdE<}c*W2M#v3KWeeMJ`)A&UUXifjNuM2Ue*Mq{?<~KlfRf*>y6h2>=dtX7xxge=~d$hG&wxA*y7YiJlnrX7T=2kLaJ`#LS|Yr@|8g#*ih4J3k8Gw6 z+tPnOd{wey6L^1oaI_0+woHbHtB+D_+EH=s>nz{hL*0a1OEiQ5HoIu*)$O3pb6;h5 z!&$F#Thub;`GPeAux#EU$*qbqNl29yG;9gS;Nl^4U`L%0F{BCnXK%w_x`t^GZ8A6LgmhkgjUDVzCyZyQOOSHiBhaZGsP z$uyHh(Y#Lvtk--i99C|FalKQhNuQDZKT9~)aiVNO_e@c@z!2W)p7HrQ=^+f}bM*=R zio_zDd|z{)DE4NLEkBRff!mNSlKZ5LJ7$`)fDhM5AuPJgsWct@&%UFC)?BDLZjat; zY}kPIa$%cFGz=floqqFp_G^A`{P9jsIDOs>x2C$m3ayJUexMp^M7;o`|I|<#e#2}1 zRAKl(JGN*`3+ZjTCPaw(QWB{pbn zIP5s^lA=PwFm-IP;2){VR16H*3FQEs+hT^lw6ZAQ=sk7z=8TWo!1i-SUDiT(+B?`5 zU2Bx7px`*@oH_-ovpwPKMBYo1J`6K2f2OkVK5TP=H3XzyqOkZybmVs_JL?l8#U}@SQ1+Xfpz&71 zO3xb!egV-W^F|Ff-#iKX2OJTmFIRwPR)P30K!vp>bkmx{ZRFf?5a87>Iu+TQ84c^l zZ2D(IvCl0S#d(|>=lpTwtQiuIq31*s16BG{q|J;1EpddMX1VN`SWIZN0ELn5<*t|9 z@oj#PXknO4R|h1p##ND6Ud*}MBR$b%ObVr#JfcpYAo}aj2$ENeAgA#?#O&8#1_@DU z(_zoX=kR3; zd=ISg_eWjpT#`&;pr*T+yrr7OU0+1*Qptu18?s=2Q#i}-wGxi4TTp(mB?l}Ml+j}B zOX{wRL_N25(BB>dZXW*3V_84^nCXwWB7j}Bam4Sv#!~$IS&(}ZF>AOSYgpsXLX%_J z)%%yBZS@yuqGJ$yMjjm`{prHp1+>OhnXNRON1jJ3;Oy`Xw9dtd_3zj!Je;!`_M~)z zOWY2+86?AAGBf6*1vs+1juh-XQP|LrG8)|2Z_ZI#HQos>C)u+DDu9*^-Qv9yZYzSJu*^U5R8(G|&D&h%%S^gV>z%SymC)(Dcd^@Vd)EimNXCDG`> zDC+$~7w4Yl?~O+qoRHzO(!+dSH7Xtga!cT5S_ggLoDuyT6J|9q9Q$z(@Ff3DG-f8z zvO-z-a3TXF2A5!=`7s=1qHrO;MftD}X|Nndy4*jQ(rMl8I;`UKm{d*o2Cj5Z( zWNY@eb_V!AbwTe?f6)@-F$9Cz*Wp*-wT36_wn>Ms=T9m9YM0m{?~Vs1stfD+&Rgwn z8}+|ojuoczurib2Th?wU8}SUP_nPC$U>~Nau~Sghm?CuXuFv3q6JY3rP4J!1ETT5+ z;Q7AS$p1ht?AgQp*|H8y|M(~HTc(8v{vUfPWkqP`CTxf#A0K&g@ku~*x|u>)a-SSCi33F zYJ+oPWX@??^I?KSDVsYKr2n+zp|^~a4TD~J0%XA-|vFStc5P+^%b1EFP2}fFlJMD7q|X}5zE!rA@h%_&@U-Y zG)lNeoflJp{f!c)B#2^@ZWpare*jJ$v^35${i)3c|wHa3*i&$leD9F|$DpbiU;WtoQ22u2sJFRo1!Hn5%fGrz?@s_p)a%5dXLK;LQy*tqzZJI3)?(U!=5gO|G;`f`5B{vIq*yBx;ZopH z@e#d;duBW{bl3%74)?@N#e>vTD2MCCTAaCUgO7LfV8NP!7&ADWEy;NX z*X4SI{D*3kDOmys_h>MUMjux9FpO=o%mJsO&k)_7OPkW1S!i<@@0_-k?|-$H{%P!^ z+cUn9_37U{<1rD^mKd_|A<1IFyeO>OzJlZ%YvJa5p7UE3hYK^aVeZfIFyU4tCSHtZ z`?`3~$7dR-hHiz_h+i;Lp_L|Wo=IOri(up5b#ys`yJFi9l;5jY#PDMm#MQ<2aIDfC zFFEAVA{(Axf1M7!{WRDX|0?>%pUe1ezAp=PMR7+8v6tzPqcBHYRS0Z}MFSMfw_`hx zl!$uzeTf|pXD{;mF-OY>;-~?ZsL6AFUTyzq@0E*ScPX~ar%oELUeG41vok36s3lhS zGQd~AR*5I^50w7AE}UzWW%}opAjtfQWW4m=(vhyoG`#;R(oN>P@qAY{wA`JURv>^nq^VWSZa`g?t%-f48@9m@sPzvpO zC9vdsaCvN!EVG!vxsXrnMXmg4B=;tQrSh}&$=EUQ*zlg@bJ8w4JSUzl9wN;gjgY?O zX$#YKXVKPXd6wm8j^Ce}utl~uY(+Ak_wWq<_*K$uXpJUK99}@gsyaGyF%zB?J%-T*yt7jC zL@-+1PTkU)xOQ`;U{g2^g17yIfur+;h0XGmVGt^*__UDhm$(ToQA;Uo*LKpAD}=qz z?AR~skK|t#%jD1I!VjH(6d$L|D)Uv@hC^zUkz&ihz(stgrwVF?sbH{pCPdqW;s-Yn zo&@fM-BB~dBZVd6&#<4=$fqCOAI#!C)rCELzPS06_-=tfYrN)D2z;l(otF4D@FtZm z-^bm^t#D%*XJ63+u)KSmGDh4GosV*l!Py&>_f@0-H5L4Is!#bTt(AfU^uvOfTKJ~9 zyj;1~2gC1G(0cqrQU}xEJ5xcL9fR_Bdf~(T4)|-y*$L}1=&XqoW;Ytr!1zL8#h@eN z%&25)QdFSVi{8_NmYd>*ie6OP`3ELVlA@li>TLTQeGHrJ&z2mCW)?pDJX++8h0A`5 z3sfdZhEBRnL(Vd>%c%jP`F-or)=0|#q9WQ!o6%l*3GMbzhR@?)liQ&ls{iN5lrrCg z!bT-QX7xZ;WtQptajqaviV8(*tw+9cZ^JPI&0uhyJBxH)M-h>&q8wAhxOASCoP1Dl zS!cxp>OxpfkR#4M-X;1h&!efc6gk>0jve*ukJ@{i#dJ+s!eUiCu>#nZYl`^SEDa`Z zX&}pa-Z-&46#rCMFv%}>6nGv>H|&h~Fh4?+*vE-eW*Fgr)iw0f*iby(D#DKnD{OVu z!~;8kDNYheYOy=CU;09d(&`xNxszsP{DqGP5syZCk{0jSlmzs`_8Z2W zv?m_T?B2l}_XOy-S(APh+TiZiGko5x0KbEVaqjFt;kx1>IBsRivWsrfo%xT+X3|~g zl^DhP4f;ZdRy&djW8lyx;QHp{6n4Z4yG++X{K(0)SG$NVK5P<;6!{b2_o@D8xiz9N_^OonoNQtt5E1y>mq!)Tv9)PK1v z{&33#_jO-j_M{Wyw1pGlK;K4~@SDGn7YDG@^0rJaUITkPLg{_IA-nwHf@m4*KxdMf z81i;CI4nCLX^zuPgr9&x>|90)(YJ(MD?by4s{C;Nual$)t2p zJllIWZ0!!`-t^C6n{h0=zHBEIO_LLv$6ls$27pU1^kuqni6AlDB>7_F01uUpmuL7t zEZer@D#V|-E?n8-3#Ds%;7ffrl{q>-B-cwjK2iQ-C2Nbl- z7A3(yY4O?T;=L9b$(R3psbpU*$mSgu=Y?(}eHCTqch#6V@LBWo({e0&r;4DRyo%B+ zIfv8iG+A69ES^06p*-#zi$=E`gc4ebDsVa>&%SU73uW@3l1@HO`%fPLni{=k6pe+l{+32Qd3Ng9~ zCx>o@(iU5Gnl#vtV+Jg$h(zhMaJF}fBX0fd1eRlGlDoPcdw(pAc2!GAaX`MX-eWUO z7|IzYott3TIx9-wp-lbe*NWw50RM6LdN0-KG^oy;o%If6h7x&p&fAPFuajXOwn}8g z`y#4e$HAR`nJ`7phYk(&WK|cX*_91F@Nu&>pSg1PPWNYO=#a*gZ%@Qg7B+0%uV}cx zRRKHwYe;dySu&g*jp1kXF!8}{xG}N-NTkTm57?ya^K6Hx*T! zc4(_`da)}j8de3OE)X-=kDbqd3B%uOQ_t&RSoKhaN*zzYsHiSFBOA@$$9B=h z53$U-HkkY+Es!@zpLO+2M1`P2y8G-Nw14$S7{TWSH;QQQU_JwQ;EAK&gbB(I>!B`P zo<&^kgAbPI;;Rhay%57-v%7@VUUi`9yvsF2M-KnBoG(iZ&7zb2wAtA~FR39cf%Ud6 z1iL-wDR7h=uJbpb>wmK-KV1Wtj&i~kr**M3>M{7{T^9b>yWwp86>x6BY*@2@B}pF| zvm+86c5kC8yRAEmaM5DwzLO5Oe_7(fHv`3J?eEaQ_YHXlCU7@enQ8r)1}SqYD1Uem zGx+pVfY=U-W{(AZ7gr3;@nf>jm6*(i%`kb=FZj<)8Oz@^3vpvwKsT*a$ZmDO1v?S@ z_TwE4#Ync?IucKf45GX1n&H4#W&E!Tn4TQZjN97cK10swT<^?|1z9sYxpAPZV~nZm zABZVIOUP0ol1(<3V^=~{DC^xP@lVgE!jIm2;MTQb`q=gm4mD4pzm`4O>DgXv|HCwr zQ(q-ro|{ES?)xyK;7SO((ihL=UZx*yOJMT=543CY!Lm8>xK5#ia^+r#xseWJZ2q}y zhj;+C@Mo$Ghb*}7n?={M?U;6*79<^0V9Taf!k>w%Om{qI$1DqA-Akq5w}Ug`hU(*H zi6yjcoKwN?pB_4P6PPAopuJR>~%nJj#L{8${_vYn2&Dq&1N8FuroKB-Kv7B}Z+gC_e6 zTOL1#Wxw+U*~2|Bbifoy<1@K~QM%|=>&MCs+Uaz}ZkUtNMY^Fu^jUr(oL01Fq1{(u zUtMn)TG1{R{>^~#9m#BqS2c|{XrPxoOHyM$g$CSKLCppethjyzILnqjw!TQJ)-j@2 zY!^5mUk6te{y~ains~{H&ogCYgdH;$a^Ce}N*8kA*d+p2 zvRjn?^rH1kow4hafOA0$_Py@KT~I?vQP~rxpYM&D`;{p`%};ag&V?n+Ff9jGkBjca2jOWEePsp)~$?6z;DG+U2?t%S+ zwXkWn0IOm=vGk}nt1jZt!t+V2_O%nJEVY3xQ6V6!O~Tio{O=QK&fjUWX!PWxC{_2z zvWHsi=4^HL>%w`V!f-IWZ%e0Lsgbxhs8i_gXvC~qW3l*qJA|%(PuiV{5dWkH{s4LO z@D|vBBO<*nDWcbNE<)8@d*=9S9i3|}1c~T^!xkP920gTvIE7aVHANQ6#MeMP9FPv+OVvbXnLTAnAGKVltuv|SK+V)%ki_GUjXJJ0<@b8ON zu|EP$tmnYgkGga=;t0$(`vYYk45T#*O62nEs^prkCM;^@oD0rQmR)Wujwm<Drkkp>=p*6i|6LFM^-995TwmO7&iByS9|g}Q z9hRoi4GqsP2yFolAg5m>DM~ZI>^^3+D$kAv4z|L-*>#k&dJUYsY>p#Grif>38tKyY zW7IB`NgrL@N_wYmQ%b6r4>wEm6toj#WFIl?IsrI zfHmPO>EV=*fQ7O+)dK?GF5g2-2JWE! z(V^^W^F$#!SOvfF9*E<*b;7~CHc7UZ41H^~fiF^!+WWfW@ z_=0bc*+=QO%0Tu)i}NuGj|=@XbWktlD|k0Z7>@o5j_)4Afbzv~-su*Qvb7g!R@euAP^~7$aUlQeAZ$;^cWZYl-LM&I=3|k)V1o=5$c>L#9dNjEkPUko< zlaO+Vc{PUKS<6#QvNoK|&8Nlb8;DzSXz1uGlrkrQXP_<6UL#Mm;{Bn3-OEY(t&lDp zR1>{6H&Ks|m&Hq*#kMEo6Ns*>1g)%G%6XASZ1gp8b+I~~Tx`uQk4a=dzv>CVJ&(4_ zroyBGO*VHX(Sa?u#1*QpY~ZX4lI!KmY)$LLSvC$#I_Whiz2)wPE0Z8)UYN+4%Iy00 z7?!rAAABs)M$^;&?Bs<=1~yhSQs@b51NiT({|SoNMfA9rGFoun*09ApB;L6f#BHuM zLdqJ%W97D}rq~QqI(xE34T&uIuNnH<*|N~q1XLFku_JLSsh!uvW2V4VpIV|~z*z`> zWs7TMW!RN;D`eL>NAl!$@cHS^`YHB@%>S-Hn#Nx`*#43%Z>X`4&CayAi~Gi$uLy(J zIpUd*azTTFm9TTu3hr~$Vv`(YS^XP6>slGgWMiiDIowV#y**HP`|JSC(rg9Eh<(&> zV-kFR84jNx6U|7P50@Js!l3mLl-;}zxOl?vS_C&Dh*{$k$9PPmYFTC#ZUM^NqQ!2VVKre{NIMQguz z(0W}N)-E4R9;+=-^OZ8&e)Sposyj2whzsBw&;#Gv)zZqB|LDSvKI~dq67%h6g8ghkz-q_491B8|D}rxZWSDQ8C&Ew_NNXY_DZ*min+hVO~r-XvpV9ki}9!P`Hw=HKf7`RqtCF$&NE^L+IUb_l@lN=Gc=lk61uL1LMenz@3JWS*C}$#v#l5K@S;xLq zH>CKI(&=mvjhBnl_)hl5`lGPUemC{xIS=K(64td$1`F$V3U#MsP?>*r6>Ck&mgisx zw<9I~Xn_HzUcw#^ANbX~0O~o{>wV=!=y^>AcWYe|r(CyXFCvqvw$hI-6v)Ett!2>n zp+3x;V~RJ@0?}uVGWA?(iRLl}SeMWFh1@>dL$@lF>teyg)Jb{`-hI*|S>?G5c4 zpTNFV%DAupCgI$YN}BLB6hH20f=BCLNt)kqSJT@bnD1i=H_ktyMRVe4%vK-hG0BMO zq`ab6lefU7A3PUkvx71f`JQfdp=dFBfH1zsS4`cENt?H^_65#XWzOh0h-AX|ahh9-moGD;*qh$&-WP zkzX>H**p(EoD9dMPa@!s;0Wh-$77XwFX&i$9}@eY5-OT3A=O@l@WWTAC0K`jxS$9> zb0TrbOk*7GV$8ZdkI;>so9XG305Dx>$@aC|vzXWUQr9<6B}$2hgak#>6B`j`^1-}{AxZ-alSaGhuM^r!7 zr(dol+H^QQNt{ma|BJvv_x1Fr<(&8^oqr~B!kNbQ-t_9HE8@@6vQ0e4+`#V9@n76? za7dOmj?`jtrIp~R;e%r?TY*w9Cy1Q993(mp?5$lej^n#b;cwv{G3oE$wpY&y+9Nc=NgP+O-JY*ljEbbUGEBGL;%IeGgpSPd{|B0Ee z&XdbV0Rna$f!zn{0?UVK;4}^SxMzIsP^c9F>_>?p!^E@Md)I+))5-$qKMl}E%ELp zE0(lZ1LI^@(&KOPq$T|Z&2!w?+@{S?mdJbX4SUGPzb~8`Vu{fcLYRtyC4Op^!_?~I zbg@2L8tl8SEP3BQFdnMQf_8kSX*=y%K!F>osn)<0uQ})sEhuIqN`olBnc9UrOJ|PqaJZq7Do81e2Us|*2+RJF^ z&o!jyUIJ5Adg2PH0_OSa!MnBo(0?1?_5IouD)$L0QgbD)7R@xy;4>wqg_8I27E!la z8+X=x5i*^2!D(w#7QftsE>}xomP>Ca*p00JyPd*VBX2zS=PPwJ<%+|c!tm5Hb!Ip5 zg?Mq|QeofdEkV;t?}&@N0&s1vBTdvC246yWUT?^LxK+H8_k!)%G(MYNd-}dq<^e5ZB17*2J)6pdyyQOgiyWTy*@lTxHPJRj|QJAj2J zn6UTrKMFGgt?|IFWTv`HMGTnbMq@49*naCcG%Ok_yl-(}swt~TM=D|Ee$V07=lA4r z-G)6L7KK~;*`rxz5XE1Y!?Q__I5>N-cxQGbWd2U4{Z6-O&_q>wf3+Uu26n;Q*l<=7 zVUG%qI&4sklc>u(iCPa@;p8Gqw)A2gB^xKv-FxQPxu!(8I_fHn%A86AH)qkJxi+kI znL8eicty%}Moey)CN3XQNcZ%jS;`Kcvlw)ZnzaH^{mKcr86x15_H5yGeGtwX>5VVz zkAt;^IgLr#D;)D&PbDq(IQz99ev{lFvR7jT4`kWnVD9=*beDd}>dQ3dd=+O-HD!x+ z-cW`#951ZZXIEbsQfjjid!ZYQSEoNG=28g;RZfh}94-!i@`8>v#$e^JN*dg$Prv@t zU^_m0v$7{qqHT#T9v=09)(*J~a={5~0iV^2#yle&lu93bDuiC=7tyYcejxXqvobjE z!s2@{78jOM!{cz)su+iRp9j)&H7llI6~YYP+@&c;Ge!O3>IgO}DB-+{Gg+IZ3Ws{L zb^Z15^2Sf}Z_5dYc(4<69Zrev!;_h!Wfu9VS5al@25^jj0R9KLd+?$Mi!gLx-Gg_K z`}I(^c}gPFE4GtNUM#= z*R;Xlp#?&cZLT==gg0uH4&?iK4KYz-#8RjKfG^YU2#-Az+1L_UbnftGGD&aYhZ@f$ za}Jo%UpLmQeTsyquIyi|E4wgIRj{(KV1G_Of(L#)<1;&iImQS)lk0~2ynn;p_%O2e zI8B?&Lve&r6jPBk!x`6mvkaGDVd+IR!Ni06y*RsK@E7h-m}rWX@>}VHvOu=)_OTGUcC$#ZI`@`@u05c3SDsCLc|}O( zT<7saFOi~_0h6;B3!QHr=~;cApz}dWsdsq38H{^h6)5oR9+>?Y-EI3=5XHK?4jU1nk?h5U#zJ!k}V5 zyk!4JFc>Q@Oh00S103$q;mS*rZ>kz_@;|<-`L`LQ$?7~e*Z{Ymg<;)=WIB7_n@N=K zaNc$^xXta$x{!CLf*L_erOf68@+(zzs|$U7kQv_Cy-5H?zpLFBpFXl z!fP7;z zOW1qg4O`BHGOL)MP$<`*3Ue+6IYp^4S?+sDn}Rg##Z~y)7$E)|q=}0-w{G6F9?<5X zi$;Swg|Z{@eD}6iaQPt1cCJ_l&MDWR!bh3rRvZ(r+8E$3KMmY%&Aql4^WdW4eHb%r zA9o=a3K9%{{N)f#33qyTz<6{vF8dO;7TYGkB zU=zG<$OhZ3xzN<95C4?haqyxP?xYFBm!m#X<3MYiuUJi;RlYde^$|V0;eh>Hy)gB# zKU>+U!Cd*7cmtpF^$jkgB&8jswbcga9UKj(ddoATYtnrLQ1LK|A zsBFtI=o9`6DoXm`-Rrz-;}k+SgJjv0FrM?WQ3BiUW@wk6BeX64M{`>`=+ICj)|S2+ z)+|~Ny3Kj8;8`CgD4nL`VTw#m%a{GM<1QiYbPd?nEH-~A1N~MdthwQV!+S)rtvAeB zTA~cPYq(>95ed&W42MCgrpTEctTghfV5D+`=IpnJ!QVu_L)Zn2_r0Q>IdU}a$2;DU zcnPhK;@P02KFr6~1lMLL;n1R!pph^Zo-edwcOq_+^F|rgwSZ^TCx^3IXJ@oXcnDh- z_Q0q;?ShJN9GfuQnC;lT3^uMD1I;}1o_JvlsPoyBE6<{w8ED5c%}!9-1@E~la>$Tf!t*jC=KU}UFNgxm&fFwMguj5DT0dxr z?F+h-!!vG&UHME)i5)tmjn~dN;j0uIxP9A?GF+-ievSp$?`Y(ADQ7ru9*j-(eCF96O22j$NK*(6ZaNfq*gA|bH4!$ zq-GGDq=2c>he6Rn!d`C7A-mvq@=T7V&iSGE&iyW(UnIeq{Cho9*9?=!T42Px5Z1iV z5&Ev?uCDCPvda70pv2Fb^_)o5@7irL`D~6l`K!g_cGYyr(2}`qN{1QCm8n77gazJe zqw>}s)M;)^iaC1hY+|UWSEWrk$>~zd`4{O!)o0G23`9XV4YQmy+2$PHl?pyaN{VIh z=R%(J$?&t{Az6LqtgVB)CYA_W_^gvo9U{*^N1!=nzOZn!A4;8SDDmqVan&tF^7iV* z4jMe?jcglGKUsx0~Yc4COJta!rK;OT+zb~|2xqnNM+;LWGiFr z`<^@K$1I1jBlk(%%KFm%_)I#CrO>%+ByIKAr;9nhs42#>*j&U`hZ0hsItdD)PTHLl zjoUYN2sdPsuu0AlkH}f!jR;S8nr(`~)ylzC3O2TO9TANRa2?A@j+e8zJE`!E019ou7dm3?9gT)_=VKtproE378 z^U9G-3|#TX0UP#Wh70qRStB+sS10AnqflU|h%ZViBsD=XEJ#NYYeqk!;QVB~?rn*V zYYcIW)_L)Lhd(OWT#*Dz6WH0h#lq3PD(L$70gXE@po#wvDAepv+j|WaENuQj|Eg2M zsi&&A;{~$RN%P>?SyvqQ$rhbw{-F8FiRf-^MrlpaxWZ*S1nyrAUs{6Mw_AFoy{;9` zSpFvV?=~272VM6SAGW^yzWBT=0lVWzklw_ZaPs6S8dRo>(tp~xX4`sjc&ZP+4-fH9 zy9qj`G{MvblPTuh9?1E;gnIF8o-`{4A1anhzpbmHJ2!atuyGZYFI2-}b0nBkjd(u}#P$6|#1IIuFjL#xi*fGTH2)PWjm zeq_YD!v*ZNdrZF+PC|P$Khxc{WtvaJ@nU(tFtq>%JO>&6)%? z{hvZ)W-_D|eirss%z@z1-{5IlC;emvkf1k}Y~{?wgh)*kQgz{YYA{Q-u)t}4*>sn) zG}g@XWSu)TFf*kDMk?e%Wc_$5;(OL3PpsHK!-vp%Es{;(yJX*Jo+F=S3XzTnK(nfX zDyMuCwl!|Yfmm%1 z?1*%jjHc3ki@xO<1tXf@0awzN_ zB>NPD%myd+H9CZMh)b!(&CddK5%?yER2*NXY|IREtBjjr`~GG_&MUaIBdi>o;i`nnl5eJesnOs ziTVh8mrSGEA@NM6DicP&*2iJod!>EV2A2xY#ee_eFfu(1i?#cbO^FF+%$y4EF#^_F zzNPrfw_wgYKiYONoT|1N(%BaaMEn+oj|v^w@oq0zy=xbIoXPJr-_JsZbwBK7>I0^2 zH=)ODWcL>vFwbE(M8#{)s8{uus&6^r-3&eU!Yl?;cn)BUTpx73n8-4ds>CX-M*3r~ z23xa3QEyNpYm!k$y+vPX$_5#B_oD_rtvDzw8*4-xch03zX$hdrStGu2tBF*rg39N; z2K#fGRNL()oKh+yn~ifhsdmBPcT^P-0rPOkCy~fMF*} zsef_}=zj^sTt07?KK91F2K&J%u})l?#`k+WbXnaWT^yo&o7N^x0cTR6uxT-pa!f?x6LaMwoNTnf_jnW^e2FQR#sHfFtiAui_ka+W6wSKmKe=Net_L zk_kU2$Flpa8sei$V>n{|5pFpM82Md6%pD;m?Xihqw!n`aUo{EjVy@BeoAbrN!v)r% zuF6Wdr+1#uCdkP=BYk4;f#cRGve?BIEWc}dun%rAlYe=Vl(-iR8<3CXR zaE_Sr(uJAoW(nQ-VJyuzjfNK8gz9u9zPHTfJzhEXcu+7-+HX&jlC_!7Qy=iUZpqH< z)ghVnQuhP`rg$J*Bk`0jc#rgW}=Yx4_1$H5vm2T!I|gZv;rp%tuteS^mnjF|bi zeQ>kH1)o%DiN1exVBKH-bC1_R`3`%w)^Z6LKfXssyIW{&{RBG1&rG*_oS>4PxzY}~ z2C`X_MMvHA&@a`QsoqbQCf-qJGY_b<>1W&^C94Lc4Q*ii&llI;-44S~uc3LI&7yZP z6h79QF|C3ESnL{tV;9X7wp3}bW#LcgL5~$+R{b6lL%rdHtpV$+;z+SWJ*A_5s-Vqi z-i>~mO~Te@7oFJAM(L|#*p`0h#An-0@yyn~c(6PPJ=xPQSTe<(Kf%9bkFcHRGk$6YpneU}slqI}Y8#93qc%vYkGD~NsTRJ-CaMf6c`skmTnFuLsP$(rW5;k&rEVzO!;oRC!VERzAth`COQl~K5Q6{N>Fv2`o5D7C!-qF(vXwv<-Na&{4Z8Asp+tv;;pi$U=Gj3#=? z?0_^QPkPPg@5y>zEYLR`J;&C=-h~gLc%BTtIIfH@r`;3M`i8Rh^gis4pDuo$w+b4) z&+sh132PhqU1TYy)GzO^aA%q^{xN(+Q|B(GA?GvTgC?-)rx3e5dxOe&33gm^qSeE- zC4+A1;q>h?Y|rmC&~V!klhjAh-M79_wa-NC^)~?HuiDeo+Xtaxoi*zZ8^}*(v*6V| z27q^6f8NX|`;vb`+4cgx-u6!l1yaBz~ z+aEo!xYvCse-GGlMUA?uL+DBTe2Ub#Nkhj*QS!h!K|`qKeQiyA#_&mrSNnkR&?(# zCG}nfO&iKY^@{#f$J;=i)16V-CWFrv%~-Tc3$1GI3_S0rL33s`5={RC=0|;LN%~8O zS(i_%`^E@+zhHz*vvr)eV8xwf$Ge1k z)0)KKwM8^u{tfkn7@og2MS~suoVP0)HdH#Xe5(Xl#kok!;xEC8?VL%grNG~}jg%c} z%!d6uNW09|(;9y{+LWFMg|lvvQhg-LQcuJ-d0DFO@4=bL7HsEU1svB9Pyha@i(A7F zic7v6=4^yS=C*A%%}SL*wNU^rIR1opq;GNefChVF>czHZE~OfU<3hyM2C-@*awbm@ zQ})xR3wF8UrgjyUH|Y{h+o}h9`JTK|XE)WK7Ac6oYnPpLWh%?15YwbYYX9O{%pYKC z8FKhbF9Pj97eTe63yZ&H3-=#bu&=wiXjW~I^wQ@r?3EMEE^H3Pk@ub9Uv?Zb*m|4V zwqB+16Y}KUt%VzUn4$-~qO}{I!L;z3u>6lI{ye!}Y%ZTJhAiZMo~4=avhojgF6l=% z9?P*@T?MxDu!N0k^235dh_^pPfV0zkI&D%Vl${JiC+_ZO^;-gFdW~@B#V^WUQ!dVa zau4>#+Tw*xNzgj{7V&8z{@qz8{xIURZ3m1^`wsFQL2Py5 zFOpw=oqqh}+{y9%#r68V>4D8B>7KuS`0(jp_+=E&4A-2bq-T13$J7@Ce1E{zU-5kQ z<;`r~I>N-;fy{BND(*Ci#l)8g%Bo2$E3i&bd6p#%FMmNFSGiG{Sv1cM^}#m}y;;2L zF3>h<5p&n+v7tkJ!Fj$On>wpR{4zxWr>6)s*QN)%7IN{@y2eC2m)WaD4bDrle0&+I0(;T1 zDIU!3;w7>iVoD=#s4`ilUhGDf5+0dZ4;!}br#|<`3YOzy*oJIRHhpy~Jb+kn&wuq` z_F97Hdh-7(#1jRl9_(_;C(!2%l9?GdNbZ{nK6O>a)QX|x<8m1amg_OCldg1q)n>`i zS<3kEzB@`j<-_$y*Jz^ieIa&*JxlCmiS}*}AY#p9nl!}{XH80G8Q1@S+U07>m_J7t z-dqJeb|~V)H6^e${tsQdV#!R*AM(4`Zc;sQo=zP*$z6b(NNezVVW#siaiPs#N&1dw zeBZs1#*Z=Morz$uzCBrVIB$uM?IW4~$cxleGFNgjtA-Zw+^ckADZKqsBBrH#;Bxup z^yumuvGr#Fo7#4tCcZo>NspW(Bo^L+7cO2*NLIwR)|((a)sCsoQ^$l_P1b0bMLyLw zY-KBV4EC~R&i=h1!tx$a=_t{6k~l*a`hL_O6nAe&D}%kdEe>eX=jPo zlOMpm@qektPn*>ojKa8xYr^*V@i67eSh1+XpLM*H1Kqkb8Yz8FtLFD2>x;$krmhG3 zvc?US16;(AohSswc(7lqUz6A7Uof@)E~u~WBBve~$?EfD7&&GKt*yODhSM&Jz60WE zOzAz4k(*7oh6b|>sRp#|`ZXFRmkP_q$T7!T8F1{11k;@Mz~0n$@GNt~g)W)&sg>&k zhnB#EV}B*r;(f8XmkOGnG8aPq7SajJ$rQGwTI}FitxW3>T#(xbZT{v8Ux&P+@%OF@ z#j}cOuZ)1Ra%I8WzYwVGEyy2MMKdjVvU)1VZpZ4gq-*b?F4Mkj;^WbjQqH|0Cp~Gx zcV9@JrNhEAOxTyWzhd_c&a&Hl9tKa$fZr>u*;<`}gdbEeZjP@odF@R~{x6EHO3`Dw zH}`1ysQYR)*CuaJNfd+&jvQtr12nXix8AbZNb%a);=j?h()2JrN}0NV#w__Drp@J9%}smxy!R6bep@74ZoB}q%;ogt z@d>{FIRV!Xd0|0&4BpSwWS@VlL*a?O*t^GW`o?E1@oGne-8G-#z~f)yey1q5!>9+a z)ei8-RLZ+pPE2m@1d1r00v>#}Kc|LZl*0{@pLZ2bIhK*a^jG4hH666b)raYs9HTRB zM)0v=1mS`z@fUwT?rYM<6&CVvHLW-M`!oUz796AQrTI`=AfXzYXckl*hc5G8Q13&z z^ukFVPxLmS=*em(O29>P&FBz!AJl9+1zQ#E@tVOw!E4P; z-r4FesX--NT&zNIQL4CfrZ25c{Ez3*YoKIzI*o3XXG3PM6P87C=g%q^D1Q-vMMmS` zip5+wH`tpURp;kvgViu`;$hgLE6d8`cZlY~BT(Oxj9sqRsK#A`o#20`kiPP`b6B*P zKDsAnr-_iz&7biGcf|5IT`HYr#f}}DP6>v4#J3YykXouYKB&>5fGk@$u-%PT_E%Id9j?p8Q{#QKLa34%TX?XLHVpU3`bJ>+Mc)XzhIN7Q7_tdhCO< zca>RVn+4O}XvVr!A3^X)edc$h9vZ4I(u@#a9H2Cvo}SB*M4xYlEtk7Rm3OWnWA2B2 zzK07|a|Y4m9+i-~9QbF(2?oyd!f{z7Y^zlzt-OoGlwI+1OEmj37x2pkCZ2u4ePmJJ z!PL~2$;R^j-y|z6=XdyYKD)U0u8tP)J&Dh*5@B%0FDPz25E$wrA$!b+#jRIqMszgz z%j^M-Pf}9dUI!EBtO500b@wS3v`pVCK|B;wau3mRYXD(oc_&jxStI=e+rQH6nz2i8F*nXFS=?-2(03?88P+ zZ4=!*V_TMSb^V6XN@e%BM`2Y~&n3Cwk%>2XI z=HeSPYO)Gig__~Xbbs75>99}{d=w%>@?d&^EDLKtBJGDJOzhT?G=KO)Z$8`edD9!( z;CcrXUEAQal>@pqE`&DigQPH;(NW$T3M)TEt3NCN;ejH%f9|C4UiS=iI`8665)Yhk zLJr0IGHm~R1617jfUfI!vmg1cq}XwpmMP2>4LNsw(WpV}R#Wq* zsqjQpp&JD^N%rM?TD&|^2wL!5lza}rS-Um}?wb#az6!6wbwBSAk0^oB0~Il)*b=!f zM7&&oPJA`X8jiN_7L{)Kz_3LoVuQIEd$>|vD2(ogUXI3Wb$uUfP(Yk(a+8+_RvxPTG$g} z&0HKk@dNu#AIrmV_skIN7`B1N1_I0E+>_6lVJvWQGA>wR#&b3PER{W`xVU8Y^!bfs%QZTsynJ=69Md`wQ$s(*Xo`?pKtKI=ndoV!J= zi04`OtA$Vjh2qBI^Dx=rGri?=4^`n4luP6BUF|R6!&ot;{wYk%e@U{X)|}V8lFH{e z3eApx;geM&IOV3vD~Bkj_0W12-Y0@0FqBnV1?jKF|#W`KGz~fOlY}4(*dW&sky*)m{n~Pp(Gm={J*B@DBgI;eD|D_ed%hFZ++@ zuG*vb(#ZQC;`^#(=Cjj``@ec%mWCE;I(o4?%>}~EGu6V3eg@dpUPCP{q2S1O1>a&< z32zoEu%!EcY0?s7EblhO%-bGp5%-5U)?~qHo}--i<1DnOJK@3c`=LcY5PfGEGmka; z^y%9`aqaIS+9aodUw{6Bg>H7NesX2m@gDnO>HsT>y`D$4O}^}JBZH}5a=~}49QktJ zz*45q4s)jQ`a`MkbJY-`$l!sf->-=RCms|=KdXZ?wlN^}T_Dsf>!fv|o}ANpl8%xW zUc7C~_AK^c3Lo1bJm@lPRy4rsvJ2ojwt>#MycD)3-GbkT)^m5d0Xp%#+@Tf|Y#7x* zH#Xe^p@?U9;_`%w=WQ?{-I{*BP(U-DcVbI_!-?O|>0RIkT0K^g&D89Ly$)rH!!%|? zj*X(wylI2*J%qcYew?TLptZ0;%?=ZOd$FO)&Tz-T6OaFn!J$kWldjazj~rz-KYly- zX1ma3a{~x}ML}bqIs;gV@r7cxkHAAq#Lk; zgF3jZ??s9C)sii3clX2AvDc_-PxPWjt$O%`vC$rJ^w%j zlX;#!w4PptjS(96MY8Md<}_?sI303z#1}5DFyKHUbMKSP9^C4Hm+mgu%jY~O9X$oP zuMUv5iz&Z0>_$yzaDp!?#UE~P9xfglf-$m3Lc#f96Y80I#Lh($~ zKpMg490h$|Q%PhZS^+@Y5-luR`^j}_UV9}eumy#%;Be+aEQ*M}Y08AzL=FVJjufKvH>*)M(>-w71ZrdjjB zx3)J6yfh!K4n8g#o+J45StRGn4)|xBDXZy9WOwI20KebitXlUpy>RS{J2i`GOZObBBJjD&Re((bI8TX)ZOc+ag>@P4?FL z95iA_kEo-QZf{DhS7tB%c8E(jzxMG{C*j`FOCUsk28Cq_XnX7~Em`G+o)L@0?j|M1 zEJjLFPR$UVZw{rc2Q+bq_6AZs5Q9#4M}hZQKUSj^BiyfOCYQY1a8fUX$+RWFNBMFX z##sYLg?cbG0*+x|U**#o>;+n^G`eb&#Q;b+Zo<|~PCPsRWyejf%)&+iq7_S;9-PuIZc zd@VMoT0wXv=KwV$+)F4vjcl3QM4J(c1Y)M=0DomxkyKBHY zxsKlPy>Ty9M{*h(hr+Q$yf?K}^r*67{?)2bbZ?FL<5W6$jp`OYD#xS~e{4xfCK|3aM1( zf+T5T8McU0g_NPo0>5ojS*i>NDBB zhr!rzHrXscL#Ae&1I=@#+FyAOc(EK*j0oc#7GLUbX34tRTZQoc3nWHz2~>3W4CpNW zK@l?}*h{OU)c0iqhAi?z*`>zZ|2TsVuFQbI@u^VeQ+h<-;x z@XqTqP+;i=&v!U*FTpi&v4b{a`3Fhmr3ZF>3B}(*<&u!2CUAt$6V*Z#+2t=@%)=x{ zID3DiXnL6UCiWP@7_DL&<9-oLR=t5i^COsjk6ch3?2b`x-q`!{VVLw>3;ZhED1Olb zI&}0M!JFq)dqRTMa!o>_S-9w`(g7oa6xq&^kKpRr05+I&26Gm_htVDrgr0WtEY zMFZp6A00q56sm+>pf^U)W`KEndv4s(FK=_{nm{}{3tfgWhSuN->t`?p2EKJ4cl4@@{=#{O!| zfS7s{+}tCS4QWWE`B$BBL4zZk{qr>xDgC7$w{D6{)vT!4o56{1J!xjkZn1E4C)CIW zveWIoaNGkGp;+opC$+uN_`5xKA1nhErAKt8$6ulEyLM{br-=QHWcf4dqxgGRp5W$E zFYc&sr~j(csI~exb*I0l8zu=f!Za9DHNL`Omyz^NRh8l1o;0*{qYxe*$to^diSBP@ zaM+>*+CRmGJ+H80!3VXm&ygSW$ddb~mA?tjM|{|)i&AmWC!W_HQ7bqPj$`MNR9M2Q ztUxEZpEPmnQLqe^r#y)vb5l4%PwS(p$7u`7ko`vmU)D$ljnZK!*N5S~gukNVsQYA< zsLEa)s}^_czRt6?#newWiB)tL30*;Ym>Uqty0rS>K6y__`xJ{!pMBx{SSP61(+4ki zyWorl-rfG%UwBx#f>frO;+M;RAf_rDch)&!z_1I#`({7<+|!V|aLk!=`byYi+affE zM<0Z*g0s$vVG;vpc&hB&#(~(I|U)2oehf{pJpuaBU4N`}rIknlEwJK^+_zasl$a zE6AoOj_KVuVs}Y9tiMg4hT1~My#U-+ zsn7D41LaKOcbl)f>HWQSn(A2qAMAgSZ|6r!kr;!Izbn*s`r@l8Nvvt>Sn<*ANVa%d zEVVm$;Ef{^T%%=5_CarH*BW2+8n*}T)>YDuB<`P8FC{bkyS$HO!oF!bFgdeV6t+B= zo#$`GPnYh3cCtB$ts0Q6(@dl1T?5UF<01J}0UfpP%_<)Sq16sET-M)#jX$h~D2_YKVdlMA1r~{*2 z%$UvYSCH^LoH>p=4ToBcS&HvoTKN1vJw4nj?431f$M{+bICGmTH1(za?j2BYQ1IL9 zec&X1Rq=-vzEE?%z#S93Jed!BptAljoLN{yipq+Z+S^3WU)_Zrjmi)*dmR+a;+T?7 z9L^u5#hxt|wc-NJ><{xywO zo7*#O@htjedK(tYOR?=AXTuEJa?pQK42P%OhsACoXf*r|cTUpA`{05i=(=+b7PZH+ z=xtZIgI4~m;*kn|c^@dcCuEz}yNo7-sjXDrIuz|zYQVJaue9doV!9FG$`*-E@MkCH z(dTulSb8E4RvZ{D{J(aS60~kAZn&`VNPV3dk^yT!dUjnety!O0RD2^ zHExsNT__Y?hF=SG@$RUNyi;8Z808BYlerhD=Rav&*QWy)-3D{7-~EI=Ue2(+u!1%V z+2R5%H{or#0K{6A1RvmTFk71eI~{wgMyrS6m??)qK|=~oKC9(^uxCDV#W@!7OA>#! zT&CLOt@LB~5Grz#!_8NH`1=PlNU1iK;@nn1MZYEH+p3eAl{)i`eG7BH1kf|JNNDkK zXI6^l^x@unpPwQvu=5ia_))`Hy51Q0-IqvDOKsV``xapS&=yr&mVoyq30Qr^g{f{e z^|{$K1u8q7n8b!q+P3XBJ(~K0@40Kv0&REk)ec{&u&EOcNOZu&eXXQw=Y*LnbEx>l zG?=5Fu;*GkgccR-PDxlMNNHFsmP~ zR7>OftA6bJpGxkFeLGhHoB6rI?qcZ*12*17lBE~?<+Pvth4P$(oKd!^sHOi5{I^z^ zMU3yKzh{%+n`|UVj65Oi->`>a-Unj%^0@|>l7aZ(mjY5b5Dr?Ijt?(u+m@b?xxl7>qTYU^VE9AElRdM;M z9dP5+a=P|LoT*&Z0P}mMFx~GPJpE(APyW_HHJYBdFG7<`EbS+;gOyZMH68?lEmU2Y z!&8$9>S`!Eb*dU zp^s5QCyhU^4`16hamH0K*zund+tcpKmoBx(d&lO{B11iVGkqn52;HhX8(L{eeT}HH z+7wINn)r-RSvH{Tj(I!c`Pq%c%Y8P(1BXnZPi_;x&M=#sW>Eke)&^1k)vcl*YS+Qa zuNUUmg<}1IR+6j>WNB-P$txv{%Rg+!?ltGqR~KJy?F1>v81IHtHyEN)mpHR~cmuBV zM=|eH()g^_o`pDe^E=ACFs7^pPW`$;FG8nrQ{|3{nx>nuRBM6zx?vie9Hqm~dWK?? zX|m7l!{#i?_cWxQh{Ved6`~u`hq(HgzRdZ&2yActgrNK8xK#EegcYx(1%|76eo7ln zdjF3fJX;lAoF8#~=|9+iD+oQf91`=Wg?mFYVE8aiZm*^)dX{VvS+D#762`y4B%qU9 z!HhtCWEbr#(P77C4Q1C8J78slCT%W#3lF4)^qqeiKXlhGQt1%b=1IYL-eDL0^WF{? zjs9%9VgvV@c5(5pifDaC*b%9`hq_650vqBWz0B1`#|yEzKq-oCX;f!jl_BiCt^}UG zxW$KlJ7fHTNZjxGm&S@I;QihIxF5Rr;pj#Mp+gmgQvwFFHnngxwRU0`a^LW#YR~CW zw=4z!`U#cNN=#zoQ`mOXh{ArYf~n3iK3h}upjAm=V`jUsYqe)UG%f&YPL}yR`PK#_ zhy1L3Xlc!y-~6VEW8qwFPY2B(=f&+?tbu0(XYnh~4Q0MpeKG4t6I_iK2g5~jbYb>9 z(Aeuo_v>1z=e3B8o9}Rmhh~t2*J~J56A7bMda_?N=OE`qD;JX(LvA;XajKpqWz=q< zw-+T?SHo0Dy;n{pCYl&zG>DDt8j49tzA#bJkeOusrNb6|P@nXYvk9#4^~uLT)fO?j9rF&Z3Uh>w$E;|Na1XW@ z?GWKOO*s7fDQr-bf}@wtP_mOE3ppXiWM#I)3TNS*`H3hRcc12-^dnPM8@A?U6jOPq ziw*CuLf)%>C=1ZW8)EWwYDx~*Dtb=`CpqBruQDuZ?l(G^Iv58=Xs{XWn?Odb8IsoS zp=-)FscYVS?tXO}zcOxsVihCs>cf59Hk}G;QFFk{0%voVVHA7lbrkHB6)?oj6isIi zp_^--)19&!>gi2{dILRC>uwWl(r{t77kE=}$}sF7p%4AKr(mheVR)xDgbNqmS*^!B z`By@Qt99-*SS2|APM^yr>5LLm&zwiUGbJfvVH(Nqe*+f`&6$^DpU|st;*4iFuqn;s zXnMLOyQF4>dmxtXO&Q=Yr3d6HXL9?Oy`h46QV7Dn!qw<8jE@bZf>KYi7wY9Be1@`2 zcRS%XLCYs9wvs-4?xpZWCETSeN=*N>K9gTA%W}^(ay|8ctNR2-LAVxku-VN0I=znm z3hu!IBY*av%0E&Gu@v5KZFHz>A6ZH4;{)^CA*VARjM{#3mkt5@FkuU4QC=z1D+|Oi zy%%6b=_xpHcqSDcwB}9RO2DbNfbWm8WF<}AR64dtU<3;}-^EIz{Q_Ti?;2yA!z^)> zj5%t2(&Mgqs={HTB7VB^UKqBn1{B3N!sgex-YM$RIDX1~pDn)vFy{G2us`;Sy!$oq zsYMtyoD{wj{`K_iU>J+eb;Zu5_3-`38;aLk2(fDMWZK(EA=N6ZCwH9aUf?;n9H@c& z9n4YTswS$RRpn>j7l&^$L)j45W^&TBLTe$z=(<-64J~bPhM5+#6Z$QB&#%GSij!Pk zgEJP-X{FJD`pj9#Mjt(=!w%*JGh(W^N9YUe(=OmM7D}PUL1ni8uO3&ce2Z^XokAe% z4AazlX!lBO?y_kN3taV&bbeKkdyp1;B{IWYvl-;<_Y%ZU4Z*APUXtN;VaJwfjYIz# zk$8(H$#W;bWWq+8@^L77KmEnW?u=!-I4O8FFATaz`s2&}&h(-@OJo+4MqvX4c{8KX zb%q0$PQOO8kIS+*EA80CGfHsVP=QTu_NYj{6pKxcS~&ilKUO6T1!;vSlKLymDx!A6 z55_E|8rUawTt1xHJ8<;q>`J0lkm1N0YJ6&=mTc?){AA zHQOG7lxH|s8NZF+lWETdyg3X#5Rv<<`$ z>6t`74xNEo_(QvbDxqFk3InBQ!5w{BlNxqm=BQQunhYxJ+3LX!)GWs^sk3x+xvi@@7-br+FQwl@a(G_>NCyuv4 zBFq=p+?ok9dX>=XTqZo;_e@m%T_COphqKCTIT-!ilGYth1^=kAbSvu%*v$Sx26MI9 zVT&O0zY>NK`3C5{B9oVM3_z#%GITmGn$5gNqCi7;yc-scKboU3eEnA_?w`&%hxm}; zwi1w?;)0UhD(vQo2zG0zJH~!DX8BzT)E4c_EM_&+z*Plo9&E@DowJ)eD$lVWEBaw` zd8w#g=<8iOe1PlfHNy4>`)P{FD+ru<5%mA>36mqbp5q1EH%GHC9+jjdOnKs!1ORn0`b;B1*fdqNEO*zX)|7-%co_y z8t(*taQQ{}*R0N7WW9hDy9Mu|qX!!@HIU6<$o|yXAU|?1jSj7aAHKh6;%*!C3-Dm~ zKJ10h!$F_{ffVWTE3q$|=p_=OGLkDw1>19D5x9@B!KX5*h zsmUG#y9`@gp70yCxT~|_A^#|DOApQN5V$2{LvUqSFtq(T$v+<1O(7afV8WV{-r^^R zu(EtHJlnbhQc91*y^-aVt+Ux@+MXKvJZv)g%5+iBi^FtiMKwt37+}vnXBy_|z?pgu z!u?0B*z45~sE>Zb?d8&#UaaJEZ*>%>Qo*q+&EXh7VG|$Q8N=!RJw>ureIJ7n!X4ZC+o?9U5q@4rlHXl|s zO~`gxZ{*)j9S8CH=IHvi4P0Msfcsab^WOOeOeW0*oB4FuQe?-P_+p9;m7>J2%Ix!C z2R6~>D|kp-L;Kh}ynI3eR3EwFG zc8#zbNEnXk7q`NjgQo1xxy_W_pobSV0x?;AKj?&ovfp>6lC(&LkxmFrQ5A9|fgbqG zF@jl++E0aF-I#sOZ!T_Cq2M9hKx4ARD8F5U)}2*is(KbekGP5E$@Eds$l-!pLQZ(6 zYT})q8}#;b2o_%&57F_4cy(1JoEoCXG{P@cjWc<}%gqTU-#5anqpAtMbqmbwz#Wv3 z6^ow_ts{fJYuuds0#h(Sg)Okoqd|e@u(v{jg?kUfO-HMt`{W*O+;l|{9WSDP@}1Np zHXmfzOOZpm3+{5V!k59qoIl?Ux842>Q@RVd)rX$Y;mwh_ywsA$tIbJq2|AN^mc1442rkM%0-&&gVQ@WQ5b-+r_{kB^CskQ7a{Vm zEc$OMql(f%JY=(wB>VE=`HVW+cJes!8wAIjvm-_X{Qq3lX4*oorMK1rb+6Y1M2d+^#Vg{!Bi;jyC<+>RCL^jE?U$HHak zd8)|*FNakv895WIZXbiC0@HfTyl+*l&;El?g5Sis)ss0Y>9T8MOyEv(3UD16q>*FF za+`lcgr*iuyz-q(UEsl#lFy5LLgLWtUmUws;L1(~i}5!EUCG1Ok<5ISE1W$X1M%VK zAmeZtCUodSl#($!f?fi^hf}%|i)&^mVrPae^vl|^gPX;0?hZ|I&($EU z(#xP>mk<0q8Mf-LnZWu!Pe=dL!H)vJ`{B}fuxKz8=57K*?3El%oAHMDKi=Gc<1qA? zFZdHXrI@GCEewC3K`Vvxc6hiL_ODk!?cg)?^tc{Av(F~QEOplGVuNK#Cd@DTE9AZ7 z$zzllyD`NN=aiXX%E)sRH2(tV);MyCn)|84bP$stwwlYh=1*V#3}V+)5=k=Bnzy~} z&5lgB!jg>}Y5Sh>bmNICI~V<$R=x>lyDW%T6yAeZw}e6fcwkT0B7VbHE!KP99DBYr ziWJ&D@aso4L3q({G)>b-rOxB)+3@*2jp4khXPpoUWwJ6dCJ+y%c1zvg+2-O zt7-eLbsk0sHqoVWf1x+@m?S^R;A-n2<|1&RW=B_Z(WW!VaG=I}cN>ka=79Er);pM>r#v?xh;f z->|<3QR#&%YcU4W<~Kp!Y+071d<>S`cF;R!#Kw)B3umsS!%@AH{NFV`nA@$)93#ci ze~A|}Toy%lpD9(&5kCJ{bIefty%#I9S0?ub|Hx8N1Ne*%=v^-KXWqS_9gFKkTImu( z7qhSGV@?Lw-KozeruEZMSurMZs3zk&6WpyRxMUixa(!#Fsnz%ixJwvebd{;VscU+#@vozHxCS4Mytqt%)_bE# z&|*%{z#SV#8w!1AQ`T=H^zJ+r@OSESde~jZ#l{6fnWNwhh0Q(%F~jJ*aL3GG3T*BR zj;!_k>5wpUmtPPH$$FAlr>1}}K**>b45qbf3%D_wjZ~Mc36Il{!|{kG^kHBjthCg| ziK_%=@%MCi4sL8iUp;k9Y@nIm=Bz483O>Gw!RM0&x5|G?!L%&`cjccf+vD&Tq;1Z@joNPDUYsKTO}6Yw_*e1> ziH3WQg0Fkq7TWMdofVq`(;aZaO^W})tdZ%|GB$#}*NaD6VLq)eZ5*{6wPtz0EO6lq zMoGzWbSk=u))fpFT+q`%@va!FDrlyAFYU0PcYb9HyW{m&E>U!{T!E~ml3|vqJT4x6 zm2;MUM>0c4^K)&3*cajNwr7wX+d9Dy3-9lslzV+pXl^PnKN%d{TS^z}BaoN(M4Lc6 zJmutu-#;h_e4qb&I_&ASK?&5)3dB>B2)T`WkSIS~GOPSU4L!$b!vOc4K=31!l49Ns#?4g$Lh#h2iEkkWyj=uZ#4U`<**rXFZADPY)lq zAV>jqlq&`1jIzK}y9y(}b#v238Z!IEQ%NpU2`|mxMG^*iJ~>lH5We+fHiw2|MY$mc z*LvY2En&~~=Y^;yXD_WulSIXMaXjH7iD4E)ap^ieHb2!AJ{BC~yT4RJ;YeNH&RLBr z5(c4Vtu1pN7@&CpZ@7IAHd5icCQ6)HBl`0&hW5-U0pHCM%+um4oDT>Wc1d}>hNl^A z32x#4mNdZgX##(K%6d>-Fa$$y_ds){EH2;njE;xpgZLmr=62YVUAp9fk`t5ZjhP{n z)$QREPVa|JYc$yks{~qaEeFj>uB>Bx5{RwVV&!3*xK~Rwn5lKQ$fGuwzMP9CYkAIFz}~vStUX_wzj;jqv!K^KinD30(hbik%_wwL?BbZlW4l z9$7;s;=zK4<{<@MGhk_(5odrEn-!|S-rn-S@gE;S$dm0b?6@PTzftDIj+FATwSuGS zr_h1+&}WP4f5MU_dDOc67%WCJ{Pd>+wo7x&)b|}fEjf&mYR&0vRu~(27Xf2~28m>L zi!&e1NPdM`B+FS84M(yU@GkZ|tmw|9{ROvqX_J%mB-sHrzSqQ7*+Fb-bs<>E?}g{Z z0qpHs8{r%sM|H}ju(8SvdzYl~YsXlz2U(ifJ=ucoQ6Gf9%0|p?f(%;j-bLDG3b<;) z8ITwycyDK)pfjTk!03_~%UI=v!;|{?pvshC6ZhoP%?;+F$FmGra?K`iU(^ccHv2JW z4NGB%XU&c^%z!&&g4yZO3}oeS_o{Hzun)!zb8QS5tAp?M#o)%lMr@s{;3VHBc&r{6 zz>$hNZbXv>YfKMjMPn3%Gt+<_5$1sdP8awXMIoE}r3{u`Fh@hjS(N(CleM0CNddzi z!rCt?=;tTTMtn11S27WfI2FPnVaNF2?&&15F=hwHXMwThTbg%&9E|<<2G+rn1T)Zd0Q{k(%x>*cU@5=Lxi#RzE^Zx8nnAs! zVV4Xp{1CRPCY9PtO}TCRx~X8960NzR#N-Tig38@dB)>-iZyw{Agu38c?05mAZuY@o zxjR)O_lMJ?u)RuBvhpFI% z)1hp^_86%3n5w3Gz|oHzsc6#x)%>{)^~bzW#aJJ`Ug<+e zz;Bv5;~zDSwnp>aS~&k_Deai!h>fxCs46bQHXkryj`fJn2jp0pzB2l@T2qukiZzQLOyyIuVzrk z*?%8`TjnT$MMf@n;HEU|Uf{;U3X4eM?J4jr@2HArtu@&7H*fh% zA*sB{>2xwQiD6Hd`+~*vauB^Lq26Wscvk2TKfTt@1?!Kd)xz2TZlWR^8@HWqtM22o zrE@`C)I!`%bGq%fgLYWA^Diw*$!4<#6$||+vuH`KW7br99IM3M+^}V{lbtEK?HU<8 z-w&&=SAklw14Fx~kT_9V@RwJR_eKLOPB&w5Mp1ZShYahhxIh(YDp;lGi5Fy?aBA0N za=udmHrBtmg6|h#lg%D^^sqZBRjRKAKvRmvB!p%pz-n=ZTMS82Jh#?;=xWVw9tru zpWs4))he9%kO*vx-NY|2KT4-!ZA7_2UA%jP75gmoev(xsSpRrs7TOw2aZ5(RnULME zIopbzm$ehv90E^SMT<>-x1DQ>u7jt-SvKO66T1{#M!Q2|*#th5EZRA|+;fRr#5MED z-+G}U&6+ZX9O4fLn6X_RC%|Z4A-v1v=%&sZSa~rUJeU1|;xCf8c4-dzD_b$mvXlHZ z&vMaHgLLXXBV_ZvkoLK3;TvK+G3NLwe)WZ+?8dB9biptR4?J5+?tTInXxb9;9UaPs zh19_7qqMaeq5dw*V6W-A+5)yS}+0+wp%m=XPobmwxpeo_AAVN79FA!>#gq#z@UYGXQoabiakiaST(gAYY(*v(BZ7>mc%13? zfWDSV;LCwfe6;8QXEs7`s&;Rtd)t~D~6lDY(Uqyn}U0PfX}sTTJp+*+4sHWRcusQYketq{kAK%`0ay3lF^v;H-}%J z*aUj9T5xh9AeW_wvZpujNn7){b4&bK!iLdYOJ=6P7?NPB>!onw19ALxJDcA-+LcW$ z@dQ4~8;kbcqFuxE*!gfrmblY|eH*U>I)x@! ze4&+}Zo%>O3N&%xo{x3jFkE6LM@#c$aKGSCKk-8gGrjNg9ab(v7Hc?Gm&!7wGehW< zvlu>a^kw1eyo9*oIEoJ2Mgzv?)H>?~t=wsVYesH_4(W5Se?m0A+e1n%~44Jr%CJVh{Nj;CsAVOff-~H_9lO7wvo<_Q(S>z|a zV@D~7%T59vUn1S~KJpiTN%N$ykVkF|`#N_!=p_4blaAL?qtHL}Pm|=2rO3ea=oBd1 z;mFxoDX^^d%gHZeGW~J$N2ncy2mRl2>Wex+>6H=v-f)Ww^~Kn+FmF`KWWaJParO2Z zQZ^TOzHtlT&lF4Mcx5vDS(wHzR@(@xC&*(|P%CU(VL^ehr|Ec0F^zmW7^S$aa3?z- zB4=ENIk(Tl$JzJj{M8D2HEBCJM7Kf2w=@WSQV3=SL)i0tab&8M(0g6zj{C{7N4mm( zY% z-;kZ;E4CEstM$DT8l&J&{!KU|exHn7hGCMm3R|4@2$C8NvAWikRd?E<$)?W`bv+1X z2L%edl21@G`T*EmXn@7rzQg?8fVJ70C^M3S;~rYhZb^3 z@?}HCb+FiCBUhf43itYu#rj6#pK%9-?2J5qes9h6j!AKifl&gF&x*-PsIj+0FZr0i z-NQe+J^-Um1hbtMz}7a%flrMw)vV3onUJYSwkYy>|Dy~fJH)Y2;Ofn@3d9{Ne({rS zK64McblIpyviLAdjxF>!4x=HKd$?*G1S?pxS$capt-=zRyHS>X?Cs+}&RGY^jyC)c zn}ht9<+}K!=Nt9@>xBrx`C6W~o?8^?gR6B$&_>7eU@fpI53I0b7u6aCXKEBZ0C&M3 zwTEX?&Cn{`e-m6Tl0>Z{IOAFTEf}c zNezOBP{#N!w`B7W{1B|mQZg^l_r*_118vyfjkfe;g(T|urt!5cRygsXz~Mb_0&`Dq zC*9kwT#LL03!U1>ZPT#AjOkV^J6sNB>s;vBwR5y9+7hpx8;qfKO6-z_Cl-n%vHQ+7 zJ|Q82Hfc!Ucp8k`=I}5e@P?ZDys=7YhUnJ|!Dq!yp^Klpd@d?PP{;c$?`m-wbO`%R z|K8^nCXfvf%$0+jo zG~TlLAJJ-|P69^3`1 zIgXsvmpPytFZeV*E{Eq?+n{Xmcy3~*KTbJ17$Y*D4xQo(q{P@vM23C! zpj~*DzRZ+l>S=?RPxl9kP%vWIClVniP6}m`R*pWoGY6vV6a**WbjdL(ItQsOJQ zGq=33Jo+clm z(Yq?>tHdrU5L{p{-L;wR4Ir@|A9hLZoyf99jY`TUlJkKE_;@}9D|KC2Lr_0eXtcqM zj6aZms+b&S@u26g!R#jYLRns3)%^>1A>oZPEx7r~hYyQk==AH zCrgU*KG?rg$ch87&_%$OJL|LLDc?EVGn_p#^MG$lELrm#349vz4z!C@!J@#FvFQP* zwW^c5f6Wem_->;x%_~%y6#(nAw$g2ZXScgaaG=Cy@a_UnI!DuxZ9EdqChNCzK4C(R z|3#H>msv(*8k4AinSoV~A!|~SMS~=NTze`Lx}OGdMK|;K)XRl1_D`VT3HuKM>~&fE z(QH`Y*3Gvk90uQ|A85k&V~{&uiB6vCr>XkVY_)t8d;TwoEh%)vu7?vjlgvE&a4VOb zFCL*1GdWhMZjL{dX8XK<5Xu@={84*s8ka3_%w^NfQEJ0!N*Px!bZK%p`90t0RS~kr zRx{k5{2gvQ%%+c}18`+=C--1^I$X&*OoruGK*wE+{8m4MVJC*L8D~mBzqpWwj0nYc z^>B8zd`NQmsxxG;-nrpyC#!cqw^G$PTi(_A(__|u!rC6 z+sJ$51h5$SjpUywg8^E;>}ZO>yWZW-m-da|ek)(*#QQ$cLhB>c0k8Pik%wW2sSaD> zrH;+#70B~x9{lpQVs-a~?v>vo;p|#R4dMZ;vCI)i50_)#Ct2d-ebM;kav99m?gPKv zVN7FT9E;o)iUB1y?D3{6v`#w`eFHauJceUbt10Gp&E#CBgt9#KxuU8%CGcCnmoJjC zKssAFNrhHYSTPlF^o}GXCBj)n4WYd zyzZC4kCO-E_N3k9kT39GKM9}ZHdE~RYm4Hd;q2SjQm~Y`NMA;6h2O>mK}F%LRQ?th z=XZmGMO83HU=e%Th0#_o1A4S93U@UmL-DOa*fr=PUCT&-b_(#Lkll-fgU z#oqEorN^n%EE+$o{6~vE|KigdB+#lR9>RpZ#_OABh}VlCcjsant zmXpC)Ijp>4&X-Kt0)g7mxJuQFjS5quYHFi|Y)9O+OPt zKuzsBAhsxne|WW!Zypf3Pd|T4g-EjZ?&QnQr$D8^bv`28MH-i! z;w;QMVM($T#w*_hQOO>P&aL4VEsbEs%L|9)+Y0xBS*yGc80>+Hx;`pcs1Fw$W7y8# z2sEGK$ux9Kn9ika5<7bY?))$$lnY|pO>Ow~L*(&l_b?K(oJbab!wIJfos5yCq$TW+ z{!}S5tM*uU6lBI^9WKL_(*f+#uP~bHcm62M1aXLXEF9nM?|L}y0hDx$~Xouc!PtvOD3@9$PV5j!oq41#*7+a@;CpBGBTqhNdWE=%m6*pE; zwhgL3=77O8E0jAL1KSe?m;A9*Av-k{VoV+I?5f$|x7U|_QGWuz#pBtTDIxeF(h5Ar z3m%Hz2e77QDb;uDuU&kI@k#_!_<1pt@%WE6QA?iH8;WastNnukWHKI1g~A+ zE-rXqF6B!-r6Ucx%wSWZSNq-%{NqQ1Fgflb?H{bdPM7+!PFH|JCgSHeG z?TcaiXVYDqlQ7`4fTq69f{e-Ed6&vS%se5*?4Gpos{+oE=8-s7ndXXXwKtH$g;0=l zKM!HUHTb-T3KSLREp+Bb`sf@v&7Hq;kyosF#{0@`6v67j`0Y;{O^;IKPVU&nJr-u7 zKU%A}{|4l-H$AUj7xgN zg${Zlr>0yhcyh$Zuy!34cYKDd$MWofM+cv<{xKZgn@*qea^YGAGU@4O;l(LM-0c4d zJ|A#rel>>Fe9l%ld%elzY8B!S1*(_Q+tP#FmkitXH6d`GSFr*0QL14#BzU89}MlRCEx*g)|$&KTj+ug(5+^Ac0 z_mv_0J6@0ZR$hP#*VCYttc*>a4=AB}5DT$arvy1uEV!YLvccvsfAkK@75##???)+T z-*wt|)dpAER>2paLHth}57s^>6jh(wu)M)ntHx*vxsO&6C7D<;Nx38ZY5ho%>Z(~n z&RCJ1&GNyJurASpUUQt=T}8p=ZbCdUm5VFMArkT#uN&h*xnB{_-IYO6L;+3OYt42? z?c-{l%jse3S(vdjoA1-}Vo_U1gO_l>{A?t=Qx6Pds)^l@Kgx{GeG&d1%>-r(@<_hK ziY3*HLGQ5!*zA5CT;XKZe?tkhN2{}IM|IG2x;#Bj9>RjsMnY<_5kB9ro17hXllWF~ zw&%GMX7s(F0$Vp0l$TCwlKTAOMjISZspQK(I!kM#&1e-Mn*zi9lEcw+-h`4_(_Qei9v*&DHuuC@Z#OqRW9j$?g^@A=&DEui^gIE1{gXA;hXP@(ey>@wEFCvVrl z@8Tio`)C8C42~tdwS><8*i9=MW3Xpsi!fi_#d$1_W9LfDuyCXVCVm#j)rxfx$?M~# zwo;JRIY3paRn&X+9wkcq`Fvh&iV>4NP`|JrUZnu@mULq4g!9Ox_YT~?T+f{@m;&GL z^}^)I9b7_j1oLzi7$Yq~5LznS_iWI1hhfc=#Q*3vL?5 zask$XY}<#UwASUFD5c~t{rfzbGS)o;E3vB-)+dj9JjHQXLN*;-tHw^r)zYaCCMdU1 zo%MZq#ZSMv5iTZe;1@AlbTMq_mhY0oq!b5GzUqiQc27jg{!ysEtd3V}7hc5gUUE@s zwOopgH(QcfO7ne(qV{Q9_OS08Jp22Aem101CAR^@Lt@yhv9{QikVY;?zeA>#4tKoY z6DxLF;e8`d=4|D~bn~ARZWqqnm7ie!YH?N;sfdbGT`0fN0S6oPz_M^*?|y9v{rhN+ z!}kmCbm6X{*Q3WSfA!$Be6(27B_sS%zXvu=6LBi7L-9hI3{3rP#?n(Q;F!5M%d+)` zvP+$yIaC(4jN;j&c3WV#1sB}Y3b0CjL6M<5XmqhO>!`U4{?Dy(O|2U{Y8Z=Wx{Jv- zv6<%iX!5b6<49?y85=$N8|U`tBR_a+8mxC72E`^y7;>$ zA)f4o;z+pjxJ5X}573LtY9Md!%$&ppN7JrU`V{dPOeaWFXt2OZn^#Dxjg9bmd;oq@ zoz2l!AJkmp#$Hz&vbBMCX{6&nP;0os`yYs8%PtPUJg-mGxL*hT&Pn1kktYm~(!kZ1 zm8suNV7MLoAnct?S@si2bWp!T>E(ww>FNf!=YJMVKYQW&!HVSe*=Vp9qKDUBl!->_ z_%O+Ldi=)4gYk4`2v)`3;_evda?J2B<+{HWjqW`mWY22(vQ9tLxw_kDq3{+uG(MB_ zkypXtrD|-Qz&Cas-$g%a=ED4zeIS>F?5)6lIQZ!Z`Ms22HbtEjDJ#rzV}sE9yaame zPlJcw>*?t8D3*3ts0_geD1v6!z({`i%uyBSawkL*Tg>y7+50-&0t3{x@$^k2zgV@Gr!gsQH5*2}`%=5zp+ za@qWbZG&0!fpm&#jbqa;$_i|qbRQMX80M34M94A)vTj>@X0UEQH@!nROT9io&j)+F zLn7ETx(`OI4#A_Tsu*>8C;weWnNLp;vimXdc;#R#Wn~|LZ65NhOwW^@6Mhq3dU{~W zQg?PT7xCOa!1C7nWF9DF$Q4fee1LzVA3h4KT4f72qCkpiZ}G#NE;+XJus^vey0F~h zD`Yxd34gbp0lV+R;oK{ECUrm-2R7IFEI%y4#DsZK#K%EaITy=JAEJsr_Bl%ydl=Oikb3y>8_X_S4pd%4#z!RO89e74|zNY z!jwP1A+pGpZN4J#@^h`(qBe2PIA0N87!P8tTf=ewL@#!0cqEH>8Hqlp74UJmG0QvT zkM*%b*;Ip}IQXWJ?a3~L#{q&5U|2LuwD)9XqZOHhor);+sykS1aA4}K((F+CXu-1_ ziK*enK3N9?abD3yG{5jSl&C2)bN5up%L<|OMQ5reb(*rU$-%7a zP#evS6TC*7BiM1ZZ(yD#&Bh4*_MSh&eQMVmu2!}Yj!xOnEzk5q=?4KgY$@r@xEV6af5VO$DtrvWuoB|?qkVZ z7S)q)xxo0k!W@C;Xi_{HzJ8Jx-Fx&bCLK zo6ym|EmzK4_7?H9Kn^1>K7d>e7qIyp$|eo6!Kxx>rn~wZ*R(W?FS)djbMx+{b7lb; z@j;&ZzDGrHL`GuIwplQZ3+H679HZsJZt>hMM@SlF&&D^^@WGuYxif7J0yDv!4Zkdp z$6}pvp>V$%)MtlsDQox}ucN`T;^_agUEKDiEj}%UhBS4iD_KT7fS0~^Iop|DROUJj zMD-zTQ<8z%1S&blWf>Klh+@Vj7E+p&*JePPAk``N>{Ksg$7Jsc+_ z+p(DXY_8AcIBYC^0cIzLg01#KYVUGqi(5nK{kIr?{^e+<;QZ`uRAHBoZ};xNWzm(TZDY`VEls7ILyTlhukRSB21#- z`+ugW@p>v)|K1C4lfy7AZZZ8^Xpg#cWUwgT5Y0zuW5kM9I2?3?H~5*&C52j`2E?Ox ztp$bO5#9~*aqPvK7gRJ}2BjzVz^F?-fhnBWLco4AMOdHkZ6V8HB_UGhFY+EnP3bx@|)HCpsI8>A*( zC$+>}kZ;TZk7r8EPDhNXHHENQ-^Np>bUby|c(V3OPHeK+PWY2Q08?a!Ag^l=i*mft zazqAcKXJjEP3mxW#sqLVqr{fygs~LOV04l1hmjN1(9C%-w?yDi<=rr1eiVpfhh_6} ziY?q!O-Jlr(+oMI#M!kfYZf5zmL4n!p`+RW1^GWA*hwG9?fO7|pXYEgaUY?lgh9J(_CQJcerCl&`WOV@G$i3v88jBMWU@U%-Pf7mRR-VCd$aTF0pC{88m-u#tWe;0H%g20r zR`mj4ygyy7@|R4iH$!pQ8%X@OM7nw^m6I=T0oNP;yz1EoQoSquTFsrWk;gLO zx~&Dbyr_`>@0j+A8v}a&Kj4hVWf&Op1g@^rgGu+C*x#@<=NJ#`8(LGoCpasAJSnxPj24jhfyc=<)u63lO85Zj=eWXCoLTC!81`T>rx16>tirA zD}}7xZE?cPg^CYF?eNpP#S}5gm2a;%VOx>8Y`6Y6BqYS5(Q^qWTj{d>_;A$Pv4vs^ zeR#qu6C4xqO>R(6*%$*Wm!J*$b zDgVP;NSd)9dLE7En}YTAI@?7$v`bZ5vg#Hc-@RYBRh!8&d@Ei46oS)D8|2`9-N>k9 zUU<6?X87r*0s0EpMOLqwaBGSKcZ_l7WD_S`VQj)1-Oq|{!9Qv>2J!x*b73`J#;Dz4 z2x*n+;t-o68oK(Cl${X)g`J`y6^+o|cm^12d((*rLAd7NV@UlSBC_Y*q>DqxgYx@9 za@mlF^2NEX_~6ko!NmJY@7Bwb)|5D$>1oCFqTdn`e*^w=+Y1ZbegPz}pv8$ZC@11K z$eJR{FV11NC&`Md4e_wApfemb7tcA@AoRU9mH6>FNEO-0wz=joZcMYhuK!FqbzpT7`N-`3LnLG|R{b13+jB;%E}OXcV_kDsO9kD> z1n}bLK0F{ugANuW2b!p|>Oa9}joJv(A#X`1*AgmTSJT>?v3T`;Uy6NXLRLd|QPQMF z2>H?)+bK#R?3x+-Uk!$P3xfDfN;npDFo%ebi0c=~u+{S^<%(-7s7E3m>fkN~Pgwvz z%a_xv-1f9$EzqpN-fVg+7~9_2Nu~W<(EP3y-|ZYhf0m4efg{{-`0GUer#oNneR&vl zTl*Un5yxrEnMSA?Y{CN!&cVoff1X@&9AXDq2=_6dR+0r)?Ai;PEw8~U%exf6*$^9M z+2YdIyP?+*y;8U9_ShDuz?!vLvd;JgvV*H|3@!{u|0SEGHGlKqjmTH#3x9#dAK)gB zB&dAQ0_yt7P&q0JTV*tn)(s1`sjZ>OPdebMpQilL@sNDv*#7Vj6Jxn-rX`NE7^v{Q z;K11CBz-!U1CS_o0p}8U%+wI_KXMKVdfkBgcm9I=^{?{XTo?S2jjWn=P@bP*!CQO8 z&=C_;GRV_s_rE(KUd-`V=-h_5Ek__a$)0;}9VXR`I0m|7C&SR}u5f0zKCNq9Kx-#v zlB`^(Xk4;|4$sJxuVv|B??iL-$@1a&Th1J9VZvWG3fBJQILIgv*@)u%iirRENV4{F z_`J%Vk4<_dX|~INmCu5p)yS-}!dD`PUz3WDx(*i%nVLYvq(|+?**M6 zt}iFANnzK%f=hhL2cymcHk{FwTHCb1G?C2-`M6mz@Ky>=$u@zF)v>&<_$>|3PrC#By}T)1gF9k0;F?w>AGo6jaJyF8K3f)iRCw#Fi3!EQe0%lC%aqecIR z^j_@kBj>IlyH3}neC-y3+52Ib(k007yiCu39e`TTAZ~voo=tpP2b!maHosa0^?NQ(}SRcDy2$7ob`T0TX#9X&n*UCyfUO0$rBD@jiFXMlr$kg( z2qwBtTYhHNL|4XNDsvoR$!EI@CQfFvymh!8beMWmdNIfm-{vt~9Bwah)=qfm?ZgLd z_mh_RpRW^V{Z(UH)9`zzsJ2>k?%b5^H-e)LhObFI^_X5Q$ zJ>JoA9DG-lL&}rQ@_&LWu30sc?%fu%1~oq(oe_n*wC2+at3L43eJ*^pdPZ&MnoGIk zEcu51Bv3Z&$kQyX#BSOUv#h59yljVIyQ^S%_8dCz=7y~V`@5th0pB-?EKHF-X4HR{ zlqa@l{gkz^SjA2n<$Oby$6N$z8J~%ts9<0Y~kx#5E68#6^EIRp{o;iogcVnEO z<=geL*V8vh9{DHeY?1>;L`LCX@!ZkWwg88pm*ljFr)AwHCUeqZ6ZG5dDhJFo6+C2n z@^62TdaJvT!`eF9{?`V(UtS0^*4BjvJp4?}qm$@I!*;o*T!xx(J$C8*6Y{jIvAHFf z7iWvPR2OBapK`EF_md;5cHJnI&Oa^%i$4GSTj?-V|0ikse1|o}Xw>K)&?6y~pDc3X@4`70lJS>Jv%bpBrZu$N8`yD{@VKUg^Dp@- zob2hqPc6)Oq<0{;LA#4$_A#X#zF)Dyp%phvqvW@(+oWbLDJnYKUM#&@@9u(-|`y*DIwM^V| zGPU^Om5s2dYcOr!Zv<|y)A&e@3frhHph@^PR6?VyCs#|e$eo!6@Q)Ph|Uk%Qrm^H)IqP6G&TJfJTS--LZHuJteVPy z^j5&)7;E->bDYYjo}}UD6}a6alHbB}3jQLzw7bl3bzCH0*w>wQ=Svv9?2EjNC4$(?My z>gl&vaoN41T-ueW#}lpeVgLDHo?f8F7Ovf)UeTHSH~pgL{eYL+#-hWh);#z737VO8 zTH3$HlIJa~g3%|->0w5N=#B0p(+$q-T_Un7edD>C{t?PHv&87B5?niz3_FdTFgi7W zbJv>TnrnCIqTMz5l>7`FdIXo{T~p_Gd;R#@hICm&%Z5t?BjLE0=twz4bDPpQF$Xw7 z^957qLRk#z&Rn}R(6@zH(Ai=+jiQvn>O>u&|5?$!C5YqCy${n*x<59is>2_=<4jxcTnd2;Q!=Mnp)$2SZIdx&E0k&9jv-We zpO0QaIfA z7ku8EL5AzKu${XO=emh*%#EA$-~I~l9=}66eA|TM9vbjOS9=_Ns9Y-8Q2_U!M#{aF z4njmwCzOqTQ|CR-=onKiMVv@w_iqJoWU?!+KDOm_oOJ{T7Z*axj2BS;q()k`BZhU~ zB;k;rsia=-%O4^`xOQDQzxnJ>A+L8*^y%9a5_uoGr<{;Idkmwb-!0-@$&yN})7UTK z7}*3`<7jc#Nf$eynoZHzV_qwsC+4JPV&0fCOc^Jx+eia)66n95X7F{GHQqjYknSAQ zK+jReQ0{$R(m3VI7uTop($quJnu;TI{%tmO5zN%7fpN5}=QP1}oCyZYJSqO=Gud>( zDX6Y8prk<&c&adm&f2$7^A}GZ@=*oP&z?Xt^-8GIso@mX)e|oyFAk62egzzVTXOIR z6V&#;4$iyNV3M~xF7M%j<9;c)M?eu(Sg$OrQ$(Sm;EB?PuQXkF4vwZRfN{|o^s=%H zc3D{qnOih3U0}s+?E4Up5!}M9YhmWy02=?dNtztqB9+{~DL+nGL}rd-Y3Sh>^d?9H z`&`*W`;Xh;NQ*<#rO&ars>feh)5MV*1iL`0s3w*EhOE~^kBuu?+B?9FJwJ3{zmnI& z*{j5f=ZfT}-W%lw?)#zZpp()^!)LHEU!Q+nDwg!@EV<#I7u4LJNT1uqqt>@ds(ybB z*6%n5j(Y<+UQ3UCH9WX#={ssF7)^)&-hpoZE;xKz49iL`=&`YxzAe8;+rMjZ^ju$_ zKckTxPJX9xgGI0S>;;IqzLoN9Y_Z0v3AXibBMrQ055+sLL#HK;H1Eg?d04GF47uXM zdYaJ?Wg5!eV{LF~?RZG&dV{LO`_YNOYC0matj4Nd_&h8G9WMJ}vB<@$h)h9gU=se! zA46RV%cc37X9yp+nVeA>%EMBV(YkIQJTumno^84a)pcDVx{WVy9PtiX|BzvFN<9Br z@D8er#l6p0o%?r+;(epdcn-d!o<0ebnSQhM*T;^0Sn!Yt?^Bc9Q{Z-72?G(gQl zrnMQXsdnKmic~EJ@2>j1dhc{t)}TwD^1^U{V4TGM7LLi~CYb8j8oNAwL8`5Ds8Zx& zZv+pJ3QyV4;fN5vxN02ODi=eW@Cvxm*;0PrYc<$aw#9md@FjdLhP+Km7hLS~sX)FBc5|RSerVTVm0FCUj$SHmFaD#h}a$;mZzSE#3E2Fho+3RBc~bU0ipW||yUl(|A6Lg<q1R zVTGXjw@NY%uOhEDFG1(ePkQi)C1IUFwZMfS3y=J6_1TIi+g5|^D;3_7+?o4MHMgT2kdm}Hfc_(hTXCOIej$2a?v54s~(Nz>%1_=zYTSD$|Loku2T4q-*o!p zURXY=Qw&Fe5v_}}<8WqRC41Peu=2>!xTD5TTm4cJsEy?6eHmn?~ zCVXtC;g4Q>PF#P33YJ8p@4MyXJ}eq0u5@9YREB-x8cA;4Kqj}J!_S2q;CW0Oe#=@w zWozQtAtYNGZj}bMqk|Q*Q*yyd%w0khIyh^nGk*ECOSYYq$Qg|a9{5D;K$mDp!JFSv zWu55tuX#iLS|6pZy62@=^E$BMQpAhLE2?0lDMweG`v$1qOXHIyqH2(mgvfUipYy~?!+da|`DQZl0(?E;tmyCP@ThO`Jf*V^JU`fh%>{cjffNiX{izj3u+cXa z?p>q|y+eX{=$Y0ycQf+UVdb>!Ni=Rbas+PHM$;eBpbhg;;IPd~i$G?R`!gE$3e&+nZgW&($jGf-?fvJuj9Oj$@)=4=qKPz7Gq>Erf3NGXa zA6;=j6kZvT_3~0P!b{kfiVB_RuVXy7{&JDFsA!^Vq7xpQQ$y9Mwrs|3P`VvQO8hIHXj>< zb&fIkp=*XT{(b`AKeLqjOpK9D($9{y(+pcro5-v;eP4kM?}1JPyLDl1uC zrB7j+;8OXBUVk^lcUoT{CC*8jHhwjXy64GTPArxEdXInsM`Iznmov|+oFh*%_2WCc zW8|H(HMV-7#dhGt3rw|SwLjzNwDxrvkY$SweMP6?a0KNI{Yb0wmEipAOOQBU1%2+^ zgfEYu%RW2Qx#!0GyO??p|Zghx;4hs(=8Trw=^wR2y!0x{JJC)rE#wt8!RqaOr*N zv+U8Tjr=h=9_L+akWbAI2MgQ|O5b9o-l2{k&AB;# zDR^i!$m;{basM85{8sW9EDQR8ipb)>R&y4)nK$x*hr&miX~Vr;8j7*<;?x_^BAJk8dLSyD z$snC@4{o(`7Y*Cw$B(-xampDj*dX#AvnQ+|pFAUI`%{5sKdUKAB@sQUzS8-drC>AW zqJ*CU_}g4DkUOG4huZz}_R$`ky~+wY1WH&iUFe{cQZdEPKc*dq8R84B+6NVq&Zda`ZT9O`Bv_#S7y>F35Y zmQTNsY)5^e#FzpIHSG`1qU+FF>~CM4)5p1K4YK2#^YWgDZ=qfMVpwt4iH9U<@oIZ> zT=Z*D+3=9Zuzvjsvhj)Lyrc0r^}Hkd1~x#oN-SF)(L}eKnY2{9HL7Z!g|uQrj5&8j z(u~!gh9v1gm#hY|_X@__uMX3@02`dH z*??5tld!>+;oaI%~Zx#6Z0V7LlZlxe;}Pn zbL3a)<7mQ$-ms~*k#^=H(Eu}!vc9(PMY-Z zOg0VM+84|nHp$(tYt!5BRZ?7U6Z~(SF?u`NQ(mENHcLG}Iml;Z&nAaI1Ai(@T~-IBJs= za<~lad;g-#9m2{UY|WsEN>~1U{sv8&e}+yr#2}}vrhA?B$#UKf$bX@rF}gb?9Y-IW z^7atS4q&j;Wk3@~X#j-b&Y} z_ko?ZyXB3&UGexo3vM6Q1P{t%Q7dQ<1k61S_xc>6!d3I3+%5(CIeK%xa4}!@?jiZK ztAxR6oq6C=ZT>N70YpBT0X26UA*?QtQzxmy!I$1RO*x7u$;Fb5rYyg|y0xrWaESGP z>(Fy?&$RfKCrvQANk-q}8HM57_X*f-%N_W9ay-2na#DU- zE#_s~zbHPfFO*e%q0qKFsj&Dm++8?QzNqAgxuAi|LPJ=|aV+%MW`fU+#V#_vMLK^h zmaheiK5QBCy>>5v1UGca!zd~Iq$+lwrcMsW-Pv@d7tdSoL3J7zX|{U;`%6z~r*0#) z@m))&QbcE9c@zeJ6g!*mYG}S7oZI~;y5o;@*tlmrer(E+BLZ#Y>Z&Gb=A9=ndu@i) z!K8xPKY9aygfscdxOeoyFA?`oOU6xCm%@qs9d!O^h}^3@jB_oTXw1SM;5a#u4HlOx z!kRl%&+sW_=k|=2&ZLPf@q@3_e&S17{ym-_2gR|Pl5jJ;&xX+>@4_{s&s6Rnig~5K zDBD1Riv`oy>u3#`_)MkL&n`H3$rn0jRs`#}kEf$Y!%(G5f5_YaS+WXf1Dj3=KKPq8 z5T^84Zu9jbm97gc+dc0Hxes@x3xI+nI~Jl;v~gsLH7`wWk5buGcx-9Q;|!wZ#iW65 zzr(Q2_zoPF8%q2yn~qtSv3XKF*R?N{#!OX%iT@P1%-CCs^H?CiIw7(wNf_8fL9R_vMN9rd8w_7UWH&81p4|o- z3}4Wbw7>G@KC3CG%U+oNy@PC8=LH{HdvdyQJf^g%m(Gl`<>-5xK+VIPt_U~bai4QE z<53{kr|u>H-_E3+KOSzj(&PbFkEr5-7p4Y3h51jtdG9UY`xgJf9sApor|7JWP0bN3 zSWAwZvlrCkCsMZ^9<=msAQb-H0=<%hQQp4|R<1WwJeasv?%1{s9xm?;r%sNCdzbdX zy&VhT)g22iY(I_mRgNQt^;Np-8G~~&Y_Q+yU-G247vb#zW4;@EKyvsPiH@^J(5tSi zVak{VQs>)?rOq{DseiNRUcM`%4TqzoVf{LBXJZ}V+sLBTYH8>+LYoR_|D&K0Ewm_E zjhEiN2b<+J-&FGs10`H`RXdp)2Q)&?Lv#R9&Zr1HuO=n$E9= z5gVOQ{ag?a9`1%;7nrk`qsUXuNE0k<4Ur8sXH)(C)Z=I~Z0i@rMJIy!QfoI@w>XO$ zpFNWrd4C)9A6-=}?;gg*n?m?Z z^m1A_*B5hUOoZR>Yedz>jc;7m!t19#N%fYe&YC^M!}Auf!Nc>hWBmkN7|#5sBcm;jOo!8zP*$1;K;wy zswK8KdU_h~4f4QoN$+T3YCQh^8;)1cWyovii+k3nS(H94jMu!+k+=W9qolG+e%;BO zGxII^P_%HED=T5FTOe+wSyJsOTQq#V1e6i#DQ6Uz+w@6NUKv`P(pd+V^u z#^aC8SX>)u}kUBca9dif$4TYi#2{R(CHXkzoM zk>J%2S$q6Gc$()&pHpg}Tk;pUS?qu%uUxR;)*Yym^T}f25&G5mN%k0egltt^U}Wxd zm{aIZuY>l|Y;Rp&cc`9L_RFHU?!|Q5ems?1hT!R5Pv!T9mtk#*2diXj@VdV{D2@un zXQROzV?;JFE&%1K%k)071Jv`tvLhh@_%cw1FRFFK>Vs)$8laG8C*A;aH&51kaSK$k zJ!n{eD>&r-k~EzgX;8W$Mo!Cx?dx^fVcpHLwa2c(-Le%_pn8msE9Q|#)Kgft%#5m@ zJMjgLK7wsmDR}Eq_-go3$?DHP>D1OiQpiMAIy^FpTFo9u!+#2YK=W^SvTY?T-mZ>4 z7ym~Km)o+{4PBAzh?2Bkq_Ix23D2MMi_Y|jpt1&$ahu*OT~+)?sbBsB<&d^GOy@Er z406Xi%Yx~H=xNk=3?PkX?T|Zo@lt(dZkV_bW^XcLT2e@Azq=^l*h>&1QW`S#WSNa` z2)=)b=Rb;MMkZo+?iAiQf!z5FdN0G6K4 zmp?st3W0xnP_jxG@0h+vI@@(2_1bt{vKrh^UOZ>9+;v-}e7S5bRoG1cm!h3=v{JcT z`&pF@o@n8|F0EMiTsocG+(edp&O=PgW-+(-fu~9ZaBxK*xoX!EXcVF^yV`41aW(;? zTprW22hI=-VcdPHKi!Mp23IEjCVLH;w#HgPxL|3%sZ-(4?(1M+$27QvQ9QT5Dw3%f=r<5w{! zU+)%*!Q#EYedr%KG%5|dwhw?S?)sd(Z6j=3uj;FEng`o)IRoJs4*B0YdlH3ss9%690aTnYjL4!&U#xMQss{+R4uHeck0 zZGLQ!F2ot&%7vj2va}1?&DG%j$F2F}q|ef_>z*9cv=NNf1>v9&4|a7XNx4-ldKJzG z)HZ{kD#85PqXCxvJwk)~^rMOX9jI2gbz)wq@$&S)P$@Wk!URfNr*5W<&^NHXdk|ul z78G2qkam1&p}W>$f@hS5cRKv0xY$(`_>AR^r%m~a=SEt);l7j`CE=7o!m-;w6!*sz z$bAlZW40JZ7t#J<;ENr=O8406cw0X6ew$yQ%GR{4t#eGlM;zp-Hj95_uX|K&_M1(mm z*=WK$mg(aCqxtgn^ZViVjwI^RSC^NkMsjYA9fzhJkY-+W#(NHr;hV)S8mAx586q40 z@0U5wi7t{f4OO{sxGQw~Sqd)#e4w)H3EEQpA07R&Q?Vqs1X9qAUk)~sCtQ;_rsG#q z`VxveV{%||dcLewFX6crUh@7a4p1K=&bmh8ob{=5O|f=@QQ1?TSW^k#Dy`!8;TZ4&>`m2;ukF1;VT zyX`CPbIYaBj{Br@ubSX|*90Mk)x@&(+IT?2nf)`1G*9a&u-|3>&Zr ze(fkC<%`BV_+J$LYh#W7yev6HT>CaR>tL2RCp2{w=cpkUAxLAZqSw22_}s%nKIP_) zb4FgEy1gIe;teX$c2Y7M9Ytx$HBzLDxoz6+H2SzairzgcCn^6Q=_dVStOJX#_aG(B!?5?mmeU9N*Fk8VJ#H*q50`&gv(J@RaHQKOuv+85 z-XpUi+jt#i`Pqp4h6}gEe3mv0>MKpsSp;`oTcfp`8UGW$)ruiIV0U?YxUkw++Oz(- z;$B@Rd^}8_y@qa+Rwb0m!$a)g;LT#N*>;*vrmC>hwnPqmvj~#f#N$7OxJIwp^3mS@ zcyH(q3P?VoxKnjp`cE*JW6r2yw!Pq9 zidSDQk|)p7;{H`0xTo`3xk@mfgMIeFF1;EsbL=HWihC>CP9h~Ak|S+I#;e+ux3&-B zx`85Zoom3y#s{;Xz7eQzkCtl>#PA$XbJE@#N?k$+lA(4dOb~waCcR_OO1xqASBu4S z=!0L+2I8BG)u2D1nyMO#XzfzuO@22(_1y?)tQ#aZ&5y+|Kem9h$d7B3Z^Fdkm1V8_ z+OW$dRZdv7Kpy!ygdOe$P=3=DIcnBAXcBx6&nA)i>+%TH#Xa|Sq(8oxW6Tk`Z84;a zF{aO|po*c*Fg&?d%CT!h%>#1aOzV?SBQjhUes>GcT&0cwypzeoISQ7(?k|5_sU@88 zH>k){g$9aqSl@{|NxkFd;cVtDy#qj;;cKo$8k{7>IL8B~|`<9#q|Md4z{OugApL-HI&s5<<4nF8_6Na%dhUhlh zhmI>D4BozuhPvqDu|0oDKcR(w9!kcCv18NSg9$xdf!i*EVkj}t=CBG-kf(^!Cz9eq<05Y zxLKV0_qPwn=j-p2PL3D0IdYQ*VJK>K>BzTFodJ!7vlZS-Yak#;2mhJI@WhOH@T&0& znN8BA$A;~3`QlL&e0_@)TTnWjX|ytFv+s zYn(n=p9eqih8rOR>9j+gw11N_KUvs|QgZ#N>mpUo{Gy5@?pbqwyfb?E1cJ{?k?EXe zE?w@D3oS;Z*#1M03mlyJ$o5uv&~O{HYo*Rbqik`|R^_tJQ@7LMLq>E}PX&tlMp25o zDmtWB!btsi-aKat%xP6fgPk3r>F8x?4aA`{Unh;mZ{RL^g~t@zLD#(z9ELQMY0b(4 zU-6l$>yDH1Mw|1>y(aj5{4!blup0jn&Vkx3ujIRT8mQx;NLbKlj(T}dr6tcID0=Kj zy16uwZF;(J|25m_lKUAL`!bddF8feIr3=>u>??EJ^@9$?>fwgZAvpN(c}Q>70PR1h z!3gzo*xXB%FPY@a%PkI3)w*O}=$j~2Z4#ZKj6an7Zi{e%IFgDO8yq+zSX56Q3!nEs za*O^2uR8hQ(&qbgDDNWZ2i&HlM+U4UoKrdB77FbIZ}jRKi{l0Rf5M7E@G9S(+YG#? zSi5-v7)Ex)?#acXOPL4jC##@;ueR*=A+4-!wk58t)1W892{qtyh1{?71m)fdqCw$9 zq_VZwVBKqL{(ZE826<|*kG6z+!`{)cc;Cy&HLv*0~>EO$jd-P{%EXUnX<@-K| zXh*sdHis1f(G?0j6v%USrBeT@-;}e$ori}AAKcNO&?7(rz0Xxquk6-b_DEBDDrHFb z!JoAHTcA>uDPrf27$aP<1_w;h=$|k3;REpI+E(zM;?A;4gz$k_qmuA|-%?J+jc>eJ z?b=-FuH+e$nzmFHM2rFjMC#B$>UL>A7I91ZQ@K|cxG+l?iKvOkyDI&<5u zHPEwOWW*^GS~j{v&ms*>G1)+sM_R~m@EDpO{*vq$iyofead1=f<{OC_G|0&u4ks*z z7Ox68^1GRAo>jpn%^bxe!J67~TzE+R&G79iS$1%CK$p!5HoTgMCyqX%`D#SBm;Wn0 z>aPuQ;yh|qejK*=+Mq}7GTJzQ1>CK0H@Kf3kdbRrzG`UQp&!6hym2jZFomCDs zBCokh@mrpp*NzpLm#F%SCMu1)2lYWG6lYrU=^e~)cRPtk9&C#*#ooJqZ zA{}-T=ibat@aI8(S)H#dN4Gx+hDSW{V6qMun%|({b%(+2^BrmE`$GD|kvzC-IQJVY zyk)WH;9Pl zl&5T;sra{IBZYVLqiX*_G^qbOXfo zi5zRgI72!ur7!A7p8BKd$6qCeE51Bpw=uQ(wV75|Yw@DM!QlZmg>utXTRgn;IgA@5 z-Xl?xc51YOL32is(~4W9^zNLTDX#mIu39)|wJ&TGJN(IYsnqs*Pny*GiPSVQ5sP^Q zU5;&(7u8n7vDSsqH!>YoFY^`ppcF{-j>K_CAIquM+QJF`6mInT3~?35pquX(`Q!d1 zSl1XS-cznp|NIAZe{ws{JFA2Fx2&*!Yj>KXZOlC$4xl~N&a^Ye1&g#@@b8H^kZISN z-d~Dl|GVK_IOiuU&lmZS_KmPEtS4F8J(PY7Fhkq1qH}8=iu0p3z}n)TutZsSNu>%& zUV4gRO`V|4*I)AEUUuj?D;(7_dcnkgJ7|D#-kph`2D_Bw*>b=*Df_q=TLo!K2LgP# zXZtN>W7fO}?016fj|KA7e{Lc#d7In^+=LkIG+LSYg!by2;TM}gDXe!Qf@NEtcU2XO zY#XI*cH80MYFlZpMKb1}$d-yyl*!{#9FA)(!>he{ znC^cSW;*Lpsa6$PKZysO{*NepSbJ=~tbmHP2OuEh3EZ%g6vu_zcj2vbG`(>#&0btD z-Dn%gUQv1Siv2qT6T%a9PBei_Tp(9&B}(+y;#P0;x#&?Of4Pv1m%sIex#I7flXPrT@C9BSim^<}NeE#f4%1bjMh{(fc;-OIsn!8DTW^<8%3odylpn2UpfkYx2FSiTP}EpcHVro>;kEy1N@lv5?1|+<_~MExM|~IT2=R&l6nGm zwtPkVNceAOd0_Mb2R13)F3oz8Dy_Sti{7&~(r=9{_^G4|(9e~ZZSX)ci=n9#+M}X< zH4L)T!G=H^%yB$JDsNI~)Cs{s&r)T3L!t)-_bGo`w=$pRqw=j0x8Z}O2DTgfML6)* zlX}St$>XUDTeWQj&ABHia)rcq#x17X-b0}vO$5)wI$`S7HKJqt0hCm0PG9%l3wxh# zq|Rr=UM60bi(SQY;@51&U@cGTyG+8}zY@!ecWKG$_A}wAS|@qapLwuO*PW9JgafgC zdmJ|MCuQ~S3eIEiLhGR$X}gUUr#G&YO!WX&`)Tmsqmv*te~(=EuLa(7Ji9dhg8z&? zQFzLv;8Ux~?T0ZpOcgVt?F(u5tWLP8JQUy*ki{%!-kCJ+E7@75`hfdT&UssCW zr(hVnZE)oJZ|(TB_BR+uMrf$CSN>V^yKJ9eLF%erm-j{ArTlQwdFeKjX1uY*v?ZFD zJ>80DJ8Y2lENBl0?*voH!W3!o^imjA-jU|q^WtjlzR)wz7H0ppLuu$m+F@}M)|`&R zz?OL4=I(*zb4%czP6WGqpO-uRjpSjTGo*8`fuAWS)7Y3A>iT{YS&B}>)Ft1cNzC!P ztajiwAwR*}?YW|Vf(s9iGr__F@qBojg1KmjT94}G_Y2Q}X1h}$t?xy-f*tQ_B6vY9 zX(Y7cY&P&Ng^Q2Na`#)&S16?Se*>Z9u{G;;nod~*ZqedjW%RAw3j3@Lr7=;?I3oH2 zl%_eL01n?_2-TMp zNPEXNpi2wnr8Rfpl+O(stE<5&N|AUW-JM$s+HluSr>MqgX-U#+Rrs4fQZ9+Is~J@qB<2jXfL8CXFKxz3I{w}ISVp3n9&-iQ;SZN5_GA)z3s&{Z z0i%oBJlx8GJ|8!MzxQ33YTL256oWZ?jQBXMq$7{*Xujn~+A}ekyet#Y=1mIcSq_20 z!~M8Ry(hmk7a8Y`g)nEF37)lFN9Hrl#T*Rq(z1BCap)WvAB)FA;r(_2q{&F_6dZtN>|uk``=b&CTh^xjMXZce;6;5&$FCM*~i$9DZ2gkx|7#*dGy z#|y5rt{V32mI<2Vk^b;>%C1up zwMMwdu3TO_$3l3s(n)v2HTc-ziWya|++{$tlzwTZ9GIiZUT!($efo#2)GWG87K`AC ziY{G#b5YuNb^w%&9|7rZB~%-nMm}E~p*h_hckX&FW#2snPnL?Vad9I}@BfE}2q%lK+Zt6VxxEEf&NK(> z|I$IX#RsqWJtLcMu9!Y3l859fVenozR!)B{m|zW1nX>~-_W@cr81vlw?HOHiAa#`{ z8pl|%)!DbyO~p*Sdo)9trweKd*Y26giRf%K6soi%KqOzwjxN>)kF{Y~I(`h8Txg(U z)9%BzVV9s|ycQmu?}pI<$=Kw|@VxyN>2k0kYc|{BxZoWysE4T>)2%HPWrpCfSHB=v zKZ;AbZl?3$3Apukv|t5y#LU%M(B`=dKA7`_hV@J1hs{r6T$~H~h^~6*>Z>p`_hMPM zUP|y@`waCzu!9u7LAdU2AfHy&5#QC%G}AwrYfrt06poTK)nepvc}ie>I$rVJCxAW2 z{iBhYB5U+KgR-Z!;?PrOIQ;kfGHymZ6c)!HIzFZGi?sOnIl=6^?1X=cb@*L^5$5&v zfk`XXaLPq1k?D8mnusFuOE>2>{na_I{~GD?+$d=0poLqvX<*+Xg?#nsUbtb9#=~3M zW6HY^@a<{`E*mjlvT||3X={g4H`^*0vGO8x?spVCi!agVmYp!+sS4@c2}0>(G|U>P z!jUfndEd>x^e%W6c^pv@}o9%Z=pJ!`|%t$I-I^fFhFV2A0D%LP{X9`3gF^8!st#GRGc{1Ct zgs;oOanxXawk&X$(zhA#nz7|{x1fb)-@i-iA3dOvTVkPTKp4+!{hAKu+w-NuYhd_v zFFbki6;wZ*qlaI;6dkAKNajn%&><^J+IV~`Wd^t6nNvir|Evm*x*JIqs!AMKa87!6 zF`U28GvY%%&9M7AXQr)OcHQJBTn~uj(oM6#)==;Tl@~&N?M*ly(F*IrI$(znWw7;4 z3;Z}?ijF3>92Qhnwr6l_xc<%+Z-#fooLkCRF}V}xC*;WQN(!VkhkwG`Z6B$}q)u!y zVg+Pkj@q(7NqTkI&V+D+^|(K)^r&?5Ab2jz)UHxz!HzE zOr~$KDLi@mHrSi#!L{iX^7+QGF#Xl0ve7}vX5}I?z1I-y`X=)J<*wMG@PdF=onc@P zKh7QXnyx%(!xL7B-fwXXKkSu5gQ_0Mt`Tmu@oh0|-rp24Nrl=& zf*Y6d49sGuK|{CelqR|x(wcZ24RfXCRb62Fp@y=kqix{Lhh_55&Y?K$Q9IyaE8yaW zEV!Mb!PQk&mHtQ3dB^qmeqp@5_a53qX>a;G=Wg$9%a*;q_R1DQ2w73~NMwcT z^PH2iBQq4qN=bx7X8rEpU;LxjtB=p~-1oW8b-gdI-;T`S*cKdWJ_iQHT?c)o^+Mzx zAGZ3v0v+7xN=-38FeAi^AkBrnNK}R~C+>nwyBglkR$?>zWr0H_2`qNCF6(7m1!5Q1O&6Q6G_zDeJ98*L7`{t1 z3k-pR6n6?XPXyc9E~H|(6D^AyLDMOTe%85B^DhsUxxj zH$LeJG`wL1b|-fUf8$=jhThTG>8T3RPa4cTS_T7itth*PKU*CI8WC@f?@sTRFDuu?Km-2xotuZ4{=*>`Z9+^GjT6x5 z%{D>kugcaK>Qh^01T#AlMzOYjk}-$30=bNn>{u8;4h@|1aLf!HGo1vjP;#>OX9*RrK|H@hVw5u;98Kb3Q{*tz>F0)8zN3X9dR$AqHyHB{-N0RuI&^!6 zEE~8Wh(dY=ut>EF&^*zf{>iC`6H8L)+|d`%FLouYxD`i3s^XaYYBM^t>#o%AlOt2F z&x5fG-(jVm5=AB*6^n+((Pp6ww|$OeLOS2UULF8hy98#RauHgR4?@dBRoZ`=P~$%b z*3d74tuA@TcT)H8+#WM_r~Ux+)^cSPn>a)L{6EP!6E9Y8VMyoG8pOW}F=*f!!;V=# z;2uE(y7q!IcPw9ujpi!skM1h8KHx&b7iiG!>AK8i+E1Zr$Y4mb=*i}&$diLiFtry2 zkzHdd3|U-^D)tF9b0P1b8>YeT&O0a_@>)bi!*#;C*SwQfKZRa9NTK%jYjDfY5#K#2 zz+q{3Atg5(><2BASa9A(jo)-Q)o(ns9Mh)B^9h1wwn4v&t$25H1=l`R*>L4v%wxJg zo80^c^Y%&0vRB>2pO@g+5_#Y&q+s}H>D|chs6VF z{0?E`gCjYILGDTj9XR+ACj6HIYjj2k*78nZS?)$Vu3CdxV{hj7D27U1mq7Zutx!HP zf<`R+h5cqra4R)qYx!sK*NNV2MpOp6KIjL>Y8HUx1JH!(708nIW6#JMQL%akxK0>~ zSKqD@HX6&5r^*jBO$ejDM)A09w-K6Ynvh1mDSPoVi8j991W#Q)i)+ zK6<8DYHcWZz7y#BD>*c=J1gyu$bvN?XK{;%dthU>D=nSuLfN%FXrem8y~#ak&!lQ> zNRJ||;kh{WhbPK<2eT-hV76eU4Yl_^jk}jy@r;}T3)C$U+&i|xOdApsJs-1qn+eZDxQFrRa>n$a-zFB*idm!wyz)28bdj6Hb=9$Dt>?S@A9bKnF{h_4k^ zb`9j3+$|xoOP0NC_oOGT+Td|gp8uJTJI1=wTGwu&?b9JRar`l4+*f9WcMNg=p!cY( z*MXJY4nkz+c~qE@#FpJwC#(PNVA*I(dfb%*ms{<~Mv{5NpWnb!7#CMZz!33FroDgJF%kc z9nN{N3jDYyXXtw)${nb|mVb_A+w4c9cqtS2%Lbsr2?d&c9l-s|7@@~AT|9lzoMtT3 zq`J-ZuyEQA;i~o;Ebe|How%tLu8m2d${$;WUKc*XwToA35Z?ZZBWYFPDn z1U?$slcsFQ!2$Q%AXnL(YHua5@Jdfo_a{89+n4?Bu@JwQJQ94{!zoGr1{QpHjdNxI zt2p~wa;?Fg^pmbZ)$c1XrRt~nWl|CRv$%-~tNuY0X8;@@;3UTO>VoBei^cmZ4%Fkj8f`aLlx&CXUt~GYJcPDMGp3RtEAr9;2GUEif5g2=8a_k<8lLPc&UYxI@>K&JU>M z8399f?7=^fY~~q-(BpW$oH0X-VPLA7kHI_pfa+^yI^P`#nQ|7S_E&+W>D|Pg6V<@? zh$G5JxS(ZnBwZW274u^Ac~{{L@f&AedhC?KsB!9~_GTLV?HNUCh6*t5eG_c4%@z{Q zeuQHijM!nl$%4gM3C|_ia*fQEZfB)obLVQTxvLCyt2nbaIE;>kE*FY6m5P4zjoFy1 zH-%^;OR7y)MVs%gq&A8BO>={2qAlly+3@==Xp{MEXVQ7zF7&T|3q^gN3VY|3;jMWF zc#H4K4_}jGQ?2)7wA?l^VoEJi|HiUqhHfz6z2ay*bA&(TF|NHDzz7DU!kFVyV%8p;Uiejm-@CfZbzaYEij2Ep z%(nGV_V78Dr077tc_L*$i^M&_oO7z^&pzJOX3|F9Wz(%kSos#6)Zc^Y(nDDL^(vHn zzJqoycgntJ_d=}`^7JTM4HmBm!)Y`1n8|uys@dvIAA0!HB>U}UU*4!te@kDA+tAGZfh0{;urLLIsL4=I`a}!^L^lzNG82 zQusAp5Eb422zS+V*wt%4A$S*`^8;OR_=W@)`!9w(dlw1CyDG6HSc!~e9N9O{0o_{e z&m444;BtE__HnE^i=S=D-mNOdqP>pntEC$L*q$V`MLLj6`V&#E|1U`AeP+JzE@Ftz z0?c&ShwFy=q03)Qb~ZAIV$1&F)^<}-DZCrzW*N|cBHl&2w@{)nFc!A;%EeRzLzI~IC9K{WhV z52{89WGmeVI@jZw9%t};Fw~~E>o3BG8TUkZ*7=+Fm)I}`TLpIWc_O_>9je%3Mvo`56En_|tYP zUa?hT8+N}Ew(D3?=O#IJsp~Yf6um^VpfzGUI|=)e^RTa5Bj~M5$A7WCS*l|_&iOc1 zSW^|xdh*<#dB3ChzN-tJ+!jk`-MfKDG%~PMLqt0j3-)FRP~*zJ;;q_4;{5cf;2jt$ zY%${ARnA&JHOCkZpF9R3R1KwH1)6&M0_0Cb_;TBq$$#bj$i{K7{ILr={wE90ol63% zD;jjd<{0*Wti#T%c#H|#a=?M_P2Kc2;!4v4*vHh87IvJ*hlN@~>zhgVEzOS^Ru4z@ z%kgNSl!IrsY?SD{_NMzT2jHps7IY0giej@O>vKnweQr@^=%>q!tv?FGREq?~>z?$? zv2`+cd19aB7CjSk@lLd!II3f@cE$&&=ELH(D?ih^Oi1!S^jS114mHb z#*G%{YEnDz@2pn*2ER>j!|Y>5e0N%hJ!Si1+tYlZ+4Kr-{C5l<_eI#}!?pEHUxKMO zq?>Mz6LX{yv@qL*4rK8i!t3YQb@3_Q-Lp%ap=!cjR=yW)Dqrz_)o_-u^a@1yz2n?g zWtv>uhqaiwh_(|xz#$=l&uvz8<8Y>Ui1X&|oQ`4hTZhB0uL^9&3=g)l-h^CVE6}PF zUbJNCYawK!HYxu31r1iU*h#u%*J;2uM43~JOdsxrtAU+gy|GYb6DTxCP~ISc_VX?U z^;;hWdA?7%Y#m0I3Y2KCc5kvMHe^A|w_t439X$JA57@WR7&4-N!?f2bxJ_T1O&|3T zuP*J$p86=V%77j$G3mbl+iF`HR{NOy@Lk!h?VKsG&5k98pM`mU`7(|+>{7&Cu5|IBnK=c6Ut`q_Xsndni@q$K*FmcaDALs^c60)0H6!e*^&Ls2Wbl)>HGU5tia$3sh#!@Gna128R&*Ok zWx6Z8ZUDATs!QtfvBGYLVDhcHD!gdZX3Ko|zTx|BoTPpoXLE*do<}rU+I!N6L4HE| zseeLt)-tT0;m>}2+=H_M4q>ZjIL%Q|!UH2UaXNpm8mZsFCn~2wJfmf%)025U8jOv1Q}N@_ zpQxU+4?0_UJ|XR>xJi_-xJE_jvaq7YCCcncgb91`z?mj{+!YGSJj6c}eh3>>6v$Rp zg}g?Y5wCF-oBA2E>FNuiU;bLWegCk?hA7Yo!y{1Q;Z6ku1ejd!CT1^FW;+k5Q>Ug6 zTYS}vJ!(nCp^bOYWJ&?DUII98TY*Q$-8D|e~W zj-Qvs%LdQH3X33iUA9}?vsaeZTK8b5g1B}*G8;OkwZrLxb#TYB2GaCiLq}r_HQ7%@ zn{gGmb;>au;*^1z1)*&0>2>H56GOM3#*-w^fr7F+py~P{!EE%y(j9BH=}US!UVd-P z%7*R4d2f%4p94$qfSt3rZjLW8ORlqb2lG8_u~3`35%e;GDO~uDitp3GTe%39Mu$QE zV1NlVrgZ1$5v<(rSctAyYo&*A#(JL0YrJz)CO z**LWI2>4moz?w=G=2`2D|8C~uGv#Ldn!g?w2e`A|KX^aJA!SJa9mV>n^4WcI0vmoj z8Q)dxhuZ%%*dCtaj{SZG6o<>Q_j8Pd=%_8&aW0Tr9FK!M_lyso=!TEJFA^sj>I#n@ zu7f^{eOc5t8_M?xVXLN0!&Q~8G*W$_5cX*i+<4~1j0!&CzAsI9s$7}!hQ1d&J%AjN z4-4%}p25Zmyl?%O20Jpygj$VEm~p*1JL#ZA&m)e&Qw=NnP&o@dqc-5nWJi)2)r0s+ z!}%}?G<3ZOJ;>dP7xnFEn^FWdwFlG6y*ku0Rl;ue4Hfrp?1ph;B{Xh%u()s4Dwt^P zO&^hWWNG`e*115RqY`2L&ID8(U?zt5wSXrxT40v(MkrseCp=P72dn;V_&BOcJgfN; zL*6FS0`28cy~BoD%tcyy8fw_zt0B z_)8poxf5gDe?sH@Jt%O$>?sQwI{xlE>YgvdqiUM$KQA9~;3GL2&jMK4fNgNEXER1d zcVYe47+N?f90%~;3&qK&;DO^tQQJM4?7yDDpc&a>Sf>(wOZ5``92B^RHxGX9u&1rp z|G}lz-t^_^12LmqpE-1_ht-d+;^~zVda>;$lpZyp#w#B{@j)QX_2aD9R4wMv8qSJ1 zqx~|Jz>fKe_{H{__;PFz8=J!@%sdoM9X6!0!Vta(3`ENz?J%;+h*T!>9b20{n^L3C zHU@1M6)&}kuG8dT)D2gm+`|e-=lsQ9&z<>sehp3biO^~MN^tz(Ls!=alIzMQFwAR% zNm`sW;v2^7?g!Jg-yLxA<#Wur(g;%rd$AKkJK;*5DqEOt!R9W`6Z7P(>8PSH+7!-! zpR-k&wky9gK8qGC9Q0V0ogRH3bs0WzpRcB}D^+J+!Q@`Qgh%rd#6v^0;Ok5;=9wH! z`nS5F%q#~NTs{qay~Gy%yALTo75HN59f*|uj7Osk=;~xfA)Eh5cgMRBUhrZ|`AsX8 z?_heIi=*()r6~XPA*3y`huL2mLCZRtU06sU4113Y&#c9{XCp|id!3l9slg-(06q0u zp;#>z{I~9cu3T?6QME?;@_H&D?!WW|COY>+CBbrPzc+R#GUgD2hp zK;7ee7}@I~tZr+>KchDbE}CiBqWlf?oDage@B?_V#EmaV;plc&j-|IbQHAYI z{59+{C_Lx^(pSKGtUQU|N}{Qhdyo=G7{mSNp-jd-3;Jsa^s)bCp2gw%s7@P5mJUbN z-w)v0LC#@*@&HPGY*^jdNZjAy1e?$M(|Cim(4Owk^mhLR{IFJ7UFg6Z-sV6rH3PaM zXfpK=bnW2A$;h!B@ZzogA zHQj)_+q7^v&vu+kc4kAe^_h%~H=T9!f#R%ItT9lO)+@$R+2@;Z%yl~+ie3)GtDXdw zAI-)5qxSUaQX(r(^%V{-)uX%)Gv7m1x86Q2JMX49XTevdGpPuo`?BrQ7rIXPa)>T+?Jhp%mEBBy-k$#F&*YHPcFARq?UaYFyCq8e?4p$-=i61-@w$3L38pht6EZSzJ$2xMjyK?5#n=OZS8)124gu zLQQh`93#Xy@jY6F95c^-E{&=hF1$Fd%$j}ud5s|Vw#{{578UYL=kQi^v-yTiu7@R= zk)>EWS&=p=C`!6M*1?Y-uFUM#4eV8S1TAi;lH*rf$a7x{o~>KK_jn`TFMfp$x8@5c z`{}bDjrnl+moeQjdWDk7hM1Y7%$CU6(7X3OkRKT%K29BqJ?6%+sg@gYbNeG)${L}B z?^GW>s>9sM0QS>tu6Xw0er(E!5A2h04BL&X#E2h1@a^~=`0$7cy-KzA!4`z$rmp{*T$K6 z&(aCY8~(wc%34t=ccHY+P?;q>G8g97JmAj==T++UVau)=u*@)lGGrQYQhP3R1YgF; zO+Q5IT7hSp9H_6#Bw@e(H?X{Q0BqNO!nQ-R;4kk5an@~s##NsrT~ocO{ns*F9^;NX z`@7NR%wFsmUoC!}-Gc9PPT|)WH5x5@71lrhfjM>(RuzGHW3lYZ z%BxbXdoEPd>p6I(p2L!h_GG!R29_0F#Ecbf;_bvGaIZZVd)}|Yi*6gBxxky!dhm|Q z6Q{9bQi$**KU%c$cM=S;AHtI|GfFs=LQ`E^@owP@Ouq44c(eA9Xy<6k`YC9$&Qet> zJRZbW*1W{-#BL}_U?ev-g;Z)BC~l-T{rI8F{(F4^D~is5e})t44c~|IvoByvmjg48 zdx|rwqyRRyVzRy(c-6?z>zGHq1M4lBlkFxv_whb%_?3%yILl+_em}C8ZGc{@U76B} zNX}OIDQ)}|&Z77(VB~u_w0v|B7OqvNQG@hp(8jHBrP7R^asJ2v%QTqxYCW9U&34 zhO!|wC3wy>mW4gvBuvU!ga2ST9(z;{->#&>ULHU8p7~VNj{bvZyMpkl-;Pq zXSBIi?lQ!&1pzBY$-`Djx{;+HW=RfOEyHK5_9krz$vm)55 z(JJ6q0~9ik^BPqZaCIin5D)S}|Iz=UW{?1u)|`_ZZo#Gsi=bwth=2W4BxaQ<;=1qi z@XEV-$*-cj!nxW3V)1}p%&+)0csIw>gtyTUffM27>LAKmx)V=i$kNk_6Iioe7Pa2o z7yUeJ=*SC0S~@X^CfU`Xx4}=bbowPsc=`Z+S}mB^;!OERRtWjCmDv}ITln&WE3<#o zD!k41W1oghN1fH&}d$cJDJWJX)?*Ox6mcK6Z-LvuS2tf>4t|aWR`?7b1e@# zGsPU&@8j8%=s%*iXMcQca2@_r_%6O+PsH$*p46M)T~qjd$LFgO?%{n2x4mjm(z^<` z?02R6v)*Ff*C-szdkvPwZh+}j4#}~xY~`Sy^x|(gEgq=GN}9G{p93Cn>*F`vGl=KA znJMdi+E19A63j+F*@o&xec0A-fownjt}pIx5UP$Uuu|g!^f(*9{@NY}{oyac^l?2@ z_1FsEAIigu>W>ik!U>1U@b1;+--Rb$Iq+?SnHW9ImrXaBfRT;v6nD*ng#@@U_ME^! zfqTGG)#&B+sWxOmi1so1$GqXZq1U0 zH433S<>}+JS_sn!rloHe;HY^7cg+)M44)&{{*r@p#{y|s)h)4eyDAOZrpjy|#Io-b ztl8#U;anFQg4TT`Wf4Pc8TC-XUds!ho!_|v>vjl}tOiKS$GNa0^EktjpBD?~PREks zU8vx+6X&E~fGU^@yPju3t|l;Ny9!BJOE6R8EDwk3FnSUlNb{Ct@H5e$>1S7>V8*?* z#rfzIA4X|qD{*?iL_pbS(#TYycg0+D?(awEzr?Y-9`C>}wGsMd?vwUybEatzKH{sj zy0j#q7+y_^rIy?7%x3iyVPDS?II?(!B>zPenJsF8(I%^*T2&dg$?B72Va>-R>S5$ap0?@Y5}7F2)LVoXJYzP70hKS+q?&kFiXNOHw757@ z!I%hkF58Z6w(rFvU(OIJ90Reeya%R4)S^R{CTR~m4Frx^eYq?vQCSV?OWjE$ zN(S%6y~i_OO#|QYKELPTimamhz8JAZi8}gi5s&`!M$^`M-2BU&4(zpKHJgG;&5!;J z^mE@0P7D8{Qou|hcA*x1KdMPNRF8!o)86N=1DS?HP@g2FS# z_xo-*EO9qXHBO=pww_ztGO=z{8_bzP+qbW|j^JB$A?7KUh)pyoPKIE(c z<#TVvI(0oJ=ei3=w(b&S)k}bH+^LArl<%9#Vwb# z9)G~|(ot0Hy$wy5I+9j_GMSI$8MIJ-md&<;v>m5K8NW+ts~ykU^}a#mzZ_Uz9l`NG~g8Nt1(vaQwBoIP04oJ2*%b z^|Yo*LaNMI@c2Hgq3btf54{UIS9xwowg*kwRSsVoPYI{`=u;}!I1=hS`2JK4p3gI8 zizFXmRa`6va8_-(3fnzK*T{H+2b zye9}lhTD>z^LdDkbz*kCWoY-iNa|jpL0LnZz^lCn=Z6#tUzF|HOsDta`X1-;_EBd# zsJR$>oLeUhe4s-v!8)Mx&V&x1X#$g3eyr(J2JEYB6}4a4QpsXF`fJmR>QiQ0#SFIrZt$C97;yN40%y*d$lyOqNl+kL_qS$Wd5J|WSFFeO#lpYVBRIIGGS zfGXfhip3ewax_;Qe$kA584}M*$Ed)qI0JT|^ab3>kV=L;^J6FbYEtp&VX%IJ5J>a{?LG#~8%V{=)UzB7!HtlPjQFPL5pd@25)#WcBOD_U+kgYySv zKx=R*+~6GyS=lLU?EpQZ${6%pYE5%~H{!wVestEr5I679W2a1H$yn8cS*~=Y=CGx> zyL)e+dVdF2t}_OIpEqM;^n)3-_&|V94ZQn$LfElhhpo-p9B7_oLf0-a9_~n@(qK(m zgdu#+-i&$OyTpot$~0@TJNIT)Ca6gy+CXfz`I3Ztqu^Cr0pgivy zOpa7%vm!6T$!Rul?`t70<2lpg>bm&jsRcsHPF&qpAa0Vzv%$}cG0)e4Vsew|jjBo6 z$A%R86c#|9%T?IhUbC=ae>UiDmr4ioec-f_tuUqOfN&>t1C+EkqPlk(x=ct!?{+Pe zGf`kB9lT%A-;v(&``yG18wHiI7UJue8{lwtB)WN;kro$Fw~Ef>*r>`LEz)E*cdGDO zML!%gJd$lazZ{mksATobL8LNkfLAq=|L8_@IghaJUwI}*gW_B>8|L2A+t2PKm@7!se zWis6uSS~88ZpROw*1-1ZTOs**3k=V?4^2D$2$Xm6jL%Y3t8pfXZ^WwM*s_@3?xY!Vc)? ziYxL~iwpm}1`LzM{dpSHknO`x&&h&E=SBy*pEjX%)9HA!U5lx!Rio{J0J@S>1$j<8 zpyd2zoEW(u1_kZH(h`QY_jo_>sUl(Gg@>r+kwo>=wu=^-zxiDAQ-CHn*mKI9f?ETa zQh}2ss`Z|@?2IL|bm@SOaT#EOO>ppsEcU80!@U9d&{^Mr+`hw(yqqOb*~Wb%eHLMb z)_u%4QimHN>~a2r4rH(PN@VX22fvdmg}0xq=-%^Y-2C#2fGq*6D{eR1wpC%mge)9d z@(6!iF`&QIuVM0#N*JNawFav^!GlHx>W=CVmkzBJH?|nzakDbKx%LibX{E4ZEgOX? zmiqAXg%91IJ_Eii{e;8R<;mKu6{5A2>F3G>+O|NEv|E!!@8R+6xS>Aj`Q;_cQqK5Zfy!Yv}up7R^u!Bi7$?!e&bhM)}77X~3#j zn9QvsLf!})I`JQ8KtEH%yhxLzfpD%DFA8`8+vO_6b(K{)fk(`orB?L*}H}iB?gLs66fu zY~55OipSNkq{15~+RlU>hG&F~JZmtPGoid|4`6{^EL-(e4bP3y<5_|{Xu9zQ>*sC4 z&Gq*|cxTKu$Of_zIlA<8a|C-csj6)7C@-2gjQ68!t&${1C9;TD#==?aBjO&dYmi#F z8>ibj(DShGxRra*eZH=Pd&&-&Gv11wQV1s36Nh2YIc3`XB#yofNFZzL?ZQkoGul2_ zj?LpfY^RGZY<*D_Yn|m{l^U;t!q1k=ikC_U))$g`b&J3JrvJ;s0HPn8#sIQ5?Ja!fbvB@py$4; zg3Xl`_~xo9iE5E7?PeUU_+&==QrC%3t9Iaet176d`+`$HTmhd! zW$hfE`gRNmbY^!XY1d9*j~*4v0~hYcaA+LwlYG54Dc25b1Sw^9$fd-4bt=WmCh)<g=?5YG^v(4Blc`i(HOkg9DsxY>FGb$Nr zvn4BT!m!WE%&|_EcYKDhvZOvRDQAzZ-}9ko0S5ZIFfnQY8*XQoB5<0Qw_g;?F`&V}zO&d>O+p%~kbc{odR$Ix6 z36F&v-ubX(t1=cPC9~cQo1{Np9>?jnmtjY8081)&Vt&g?B_o3S;M~E%ETr)sX!KYc zIM37=y4Nnpw{3C^ce;qm{p(A0xEFQtj=A_zle6G--bfopyu#XhbHKyNj{5`S=-;8U z;8Hjk+qFZ;dr~4=WxkZ&kM9zm#Bi_BJt<~NRtW*?64>-5{jtmFhd5JKLku}(%&e9j z1IcJjJh{(^at0s8z2D^M+Sc2++9{%2`j%6k>hJpR3IMarb5>zmYqDOq@JUVF~ zY~LgcN1I|PEIXe0=IXHPA(MqBj~LosV8Y(oyRjjQ6=`C(40yaWpyHnLZ0hRecrP*= zRd&Wx@%-2L(@>4o^1a~uN_kq{M}uv;=E=g`|KK$lUv`f7k3Gorrp}R4OgxZ4+b z*LAk^=SQ{phx^gS8Xmwjwht8V%!U~+dx7$We7IWc$o%7t;m6nW;>IO?bo8}{iW zs@r|VFClkenA}(>X%3-KofxV0@0Vjj32__5$zc2$9W3dme#(F{N zx0e{Neqx4~1ICK>Nsi)Oi>P7OlSIdCZ;UWsYHlslXEB`_iB5>xG6vi*TDq6boI% zb3+eTOH-a&uyB(Ub}&p!(76ea=cYt`vODp{4Og0aVFT!GTmj=Fe+WS<_hQ+FIYPt{ zC+6GaL~kd4lm;cNMuqBQV#oSeYP{@4|9+i>kPD6!9Batjn&fHkp373-lV?y;UBx-% zD~0LLdNP;S64u|j4js}}P})x&x6ho4_kZ^wvm_((2wwvY*Pr86$!wf9I+T_qII~hp zX8+D8(Z7*Clp5epm)3H|f^Q67f11e7mL;%#Y47mB8(VS8vFqqLG6+_M+ybZ8J>^$3pHDk z=+~JYm^v_-O?g`gm*#Zh+qwEQXSN;_KTZ>F`e&p2&MmmL-iJoN4W@}f)=ck*K0JN+ zRJx~lGc-0e;nTDycr=t}9XHj&@k8%G#-335>osT^X2qr*mStYO%xK4lINIfHPS_a6 zcJFmyL#sltV!ASW8QBbYC7H^Wrr}NfGW^@G5}q~eM+VD;_q*R>-Tt0rAfv(Zku%(A8 zm1rEb6Z?i`z}lHS7wZy4%N>lFTA>CVfxkGz_onE_b>K1SmvK&x5;IaXWTmECu=d|y z9FkDXdw4ku%b`n5bhstXU-U;P7+!(w*?Ua!wI{PCUwX4W9#%E%r71JX?!DrYm4EP^s}p*<$k5!HD-d)b1OJvr#f z*O{ELVtNo4P5uWf@_FCijXR)~_Z2%|50NzX+yK8m{}a`Cj{md}NuDzjF~fTgxYYUz z4{rqvhtm?F&4bF0+>1iDoAttq+0L-j*OJC{1q+J?|dLN zCB^rJF|pQkebH0#URE4aZi{2xnkVqNiZd2$;2EBlK0@Iv7fQSskMYt(rnu7@`vv}l zZC9+xe-~%y#+?_STAqa!MbPTf*$B6f!f@w4K<^s3#N`jPb<%bl ziKA92lKL_kn)l6x92Ij!lSfXdnd43~^Z93S`7P$=#FFm?b=I)Kn}lg8>_Oo_@nMfK zV9CAa7ZR=l7<>_jPwC0M$``rDavTb`p2w8C$*gFU7aQC6D)yhlxt-&0V8?i1xiKL^ zqOvAgXJ+D9FFm0j??4bIdNYjz9oB! z2Hy>91+#BlFN0apWSkhw92CBakC)uX1C_glyJg?rUK**(4!tFr6Kmg~-d85X>+Bu_#&?Tm!KE27!O;}Pt{e;zE@ zHj%a_9F|TTR|MM%R)Xt49r)z7g73V2+2T^p+zppubMFVh%DiF-4|b$J=3FceaA_R&N?#+^>&`P5Lj`D}+cy@+61ei*yUITTh) zD^Pz?p)}9ln=(0f;`ra;@F}n!$G-HW#&r&CXUN<>eIw#{r-UAJ?%)}&s)xd|-pOoG z_ioVBFob`rp5XZe5%&c0JXG~cEK&RfPjvdSn-`LVhcnAy9N(+#n|vDvlzP*;&MX+> z`CIJ2W4~m(e;(d<;Cm`}-XUN3L)@}H5;FL{A?8~oC7-t0zY4VngUD=SKIbu2N{+pHhs}4Z@ZF9wv2B^Xcv0CB-z>Q$vD?p?1=AXY zs5!0_ad##hcx{M-6cs4Cb}e>fN8qMYx5c303#HA9682ib3GD~316BX`;*^NJf_d{Y zXm`E@-+pF;PydfFc2xu`IJ*_cjyj2L{vB9jR1Q!0dA34*HT=lcWn;NNs}JWLKIZGH zsO9FAv%wM7;^Vlk=T4`!QfOCDGd^;50R^R67_rul4$oF4`6YuT2giA{kq1AC&r%{t z?{pH|RPX{fExivLmN?MH7rjUo`r)6P&C-yQH^rB)44AiD5IZe%33pB1j4NF~l}@_B z*sf3&HuPFF^R=<07%NWQujdkt==r@?t5qsS}eNz-$d^mHCm>#rR=MzAG=k(0h0R+ zg=JP+bg(;9T*5tWb6p*o{(lb8$)8!Xzg$1Hy?}G$W0=8GKjz)A8C&Xj4=oupUK(uTunUm(pD(MZkf#q1?x5e|XZY!=ELF)>!#lSgY^C}Y=yA-AlnMezsF5%O!ny|D~?z@va;1Z*s<`yfamAuT%`aodENlQpA-}&6u9r0sXsVY5To& zm@+Au`AkwnPq~?b?)rV`COHBA6KCUt&XpMR+LQjoT@!9;jg+o1??dZ$o|AM(t5dt5 z0o>d^5(*scSp4dql3lCSL7lUhKBk7^9?eSd@j3%HTCYPwRd2RdC5279?Mo*P_+pXo z4$M6^4sQn8(5sDc?7Dskok(ec&HJW_arSz2>_47SZr_L%>#qx^ekQO98>6tIq7T*D zuRwA9cQg+A43i>CgoCPo#KIM^>@a@CY_DX>4fZEE^bG5sG~>E}&ERxL3O&;8m|;f@ zrbTjD(bq^kI{zAe!7J!)-U&t#p_q2u9;-U7S>A`8aJoSOW$*kD(?|QTc^bdbbKfuN z-XY6znu{Cf!$i=|9T8AfwjLL#A)1DGLf3&is8u7dnd*sbpfT53RDQr)Exppa)yLp) zaX8r(*5QJ&`ZRNH3%mD!&;C$`*Ji?cTF zMAe}#bieI1I2JQ#xw`@T_YGtl`v%f0RTG+*`W%+Cbx?QrJpYdFhEGTDpxgG5xZgOL zgiAAp$3KaBwqF;4Lp&6$5PhsCDSU zp9A&WTr{5_%~XwJ#jXv3w6H{mo%)=})E4Nn2VX{m&?A|JC>;y@GJFLprML_KDii3T z4@t8sKH!)vUAB4IM_Ab3l{EPekKR`cUym5lArpCe8e&BwxyR|vbVHaM@Lc$>{2nZM zWY4bOl|pqX*D3!bVoKN#P~T=CY#-N~ca@q`-RqCyvCwmn-*^Dba*(Z%QC{>EZj)h%pUjSQj-_Aaco zeK%f;I*W7O9u@ZNi>49cZ@92kk%@UD#rpXVAmny3HpD2vhebg&p*)fuI$%n_!Y9L> z#kJD8UwYHV!{1@^h!c3KyHyxgqCpB#RhY5nDQK;K18FvIF#|1VQ^Zw_fik#u={cHi z&I29IAU4>1t0clRLb%CigDJZoz{(X7RPALHcILn^VgA=eQbF#38HG>5zv)cS9LSEG{HG|TgtSJs2g(X+<2MruNBxh?AbG^aPl z%4D|eBzj!&W~K5U#DVhb;KeUjY#gD&&ZytV_HZrwf46g{iYe_ZEr;AFZT!2+f*Bkv zfa1olLhGmoxUlaO-YFb|lMG_mlW(EqQqFUxOIjdYn^C>O|0p^OwyL@&3{%qGNT-C9 zNS-}IcZ%KE9k1O124W!w3bvvMs2Ct}_AC)m5nC+6z#uF{u~76|-yhIRUO%omzERt3U`HbKcTP1Y~n z4?n^mI61%#Kh)UKoB6Id!hSgXc3ca(H_8EexZ$lWi+R6)6dc|4jaFH=gEqgxSFK_2 z_P`oCVjs=6`55D?_Ib3&e?J{B%mYQvn+Sf|AecN{L%QvnY?5gesR;2n*sKSd^R9v3 z1I}KxiNOc2k8`(UB+Qz|c}P7Y>C47a@Z6!rqR)(>PPIf{R7zwAM?ZiAJmaEuAQ0X8 zzCr)J5zF5hiPv_xurUu9biRuL^__#Da;P5DRZ2v|umq-cg?lB$K1^x;5xO4Ik6BiF z(CP{5EZ<+26-K$UN6l5-X_*HLiXOo@6J0jjJ_^syuAr`_V182@1m@Qs3ElkvEbmlb zjD46T(cK@&8p{2d&AbZ%@;z6GmIEJ%qij{-&x6@8d8-S5Upb%{KA)D1mc=`%U9h%5 z3rF8QDNNt^f&47D!?NH`lKJb5R&mz_#pRB)enlu)Cwj1jAB?d-|6Vpb&w(Ah!n2M! zFNlU3vWmtw0E)Kun0AY$UF#N+pC^|5Q zhKyHX8a<=1PiYfOX;Fps${vt&Fb-x3??~e9FJ4`A6g;!#@%`&}RGeYUj>z@Kz$eXA z!S?`mb$|E_t$-uGt%A3o;&8#czcA%D?~V%<6ssP<3^f};JERAjvsIp5S)hhtUw6O@ z-s2h^=}86cdntS8A37~pEoP)!@k+Qi`@Pv0r_E}GMQ$26%105uXa=&=@&@>vdyd8! z{-ORob*Pc=pvO$AAdQi>n17#pV8NDqLVA(hcQ=gNxIoN4?~8H6Dgle5Sl4T1l;K$j z$5&yjskR+l1I$70gbq`F9)j5c2SBJ3Y4#dlOw;nlANjW-Zv6)^zvGFkgaV4*J>LKM zwHo^IS(~-=8&4PWtRx3^_GHO<+OJVP`c=!*)@|HPu%NMV9D-TjN=r(ws%uvJD-W8RnTF*qikDU;w3K?JZ)IrtZ%V4JFKrt zDpUn+dh%?7>v1Z+YKiYv-ow8zP5eC9h-I7Eu#^qq>`Y!P_Tx9Vjh|KU*^egD+3ZZc z?M&JHeHNg+@Su>g!v;3@NvDUa&qH`WWA-bEgImUn@Azd3NIal2?W#hED{>ccj-)rw0(Z6G99 zgMHib4!&|{&op(;MED+vMZBxGE{Hp<;$vA-mNiOuyWsw3ig>pwo7S(JCzTo&(SiB? zaIQp?c@ENIP45EfTF;pf$g})wmuRCJXMWxoV1onB4HAlY_haeaq0|tU4&PR!mrs-( z4{{%7!j1=h(WRn67~S6;hi2^}gKHjCwy}w7u3m!D9efAc!%#^6dY<3awK2E8OOPy$ zXZwcCpf4>~X|9|B?OmrTrg1)t@G_iBFZ7sUtt-!T1!C#;Ta>fS6t1}&v&Vb8rR$UB zS^IeI1jW_#vcD03)-mByz@n_;&W5;GU7h6ka*t`omQu1csOYI3&Sb7aev% z#g!?U^nkIOHo&_Xy_ijZMak+lzVuE}0lqCLg8IugEMu!Nu9@S*c3#wEqjMeDV)Ku5 zIdG4tGOV2v%A?U!qJ*zBPL%7kg`vgnN}fG2!|_>9q4!&Lc5QeG{LQTpJLf*6A(8UJ z@GEJeK}<1Kjr|GrC%rMM;{@G{=HIoiII`*GwyeH&6fGRmNynnUOGZ4iMgJaAIBn-= zIPcR7FXZfk>n7Q-M&1WU{`)5_dpsMmZkj^YHygIPyOMat9y-21pi-wCNLU$6BOn_d zZM-c$m2y`rF9H7Q_DA#IcVv-0|HkPxRaQpBSkmA=~9w=)3GLaY5t~aYeDfPTvk=FU+4(!RBPK)x{j& zb?u`8TMML~p7z+idK0`KdIbjN{1oj?WLV3c9C6Y#Pv&#+I*ok8e-HLJu(~DOpMEEg z-afR)pE8WnC!67$BN6a(xGTCiJCf0j^MY?{Hw@O-#gZldIKAvQoZ{cJmD=p_&M#Hw zxL$(#b89Gl0q4^1HN}xHBWY=(Jlh&*%N!=nhl^9+zy{lJ476(%)SjpaFVeP3H0~TN z-}smBflnsk*N_`h=>>Jy2yOHoVryRmLGKble!)!RMeM4Z8U0EV8waV{p>he40NxnvK`qCYfv7 zN^2Isq{ri&adEClhu(Rzs{YCp_ag%ir6Mj_yq2Uf+u-o5Mz9<)PmJ?2V0%Ipq1w*{ zLk1m%^(U;bWv?+#`vq)_#dX5KJSg3EjH2?-K*aswv{opSCc8-?ra=y)Dt88K5;+%b z(?1&b@)Zp#&l2v8TtjoJHOcQ+D7YLM055I^v!icS@nL5pWCs}Gon?Jtqw@o@aL%Is zT>$~li{+TYG48w$dP=ixD*1lVhJM|>O%F3S3agrT!;;I|?B6XZZRi(*bB6Gl>7^NV zpG{;2Z&cX6>`Z7Goq%x@li0w~C&^N#lvez+HRec?{ z!ln%_Jl3S?F72?VI2bQqDWO5vxeIZm7M1dTcC%W#0(ed93C-=Fz}N2B~;sDglxkY=%+hNwm zFJz2%sIpa;&pq*IuPP^KM~(yS**;WqC;&&uSJ35`eW2xvHOi<6=$dXwrZz3`{_LlK z>CXeu(>{XVa7{5~+zANCI3dhE132)H1xuayi)=a*aqkH3{j)2CP5sQ^FQ0humy1|E zs1=IiEzoeh6H5Pdi}#`!IYoSjhLT&9Yk2@NuSL=ae*cvYyGJq_r)l5hd%~ASP4wt^ z2HC6KsU#~HLp%I2WcPHCy_87ZP8+2EWqHv;o)VmM#to-7MYCVwxzy~O#P+>@MeAnh z(Y6=Y=)px~=NI&0sR!Md^T=|Tn<>FA-W$LFMu$1-#4*qm>pzTkdGxH?xQ})8)Aa^QmD}+@YuEMzZyQ0=A?xxN(V{>nB5T}jr$rKA?S#7*O z`#r-9{N7!r$L~CNrp1u4(st6n5(4KqQ{HO=XHeu<(}|Mxpft#iB0{)7N6`%%8LGlAf9F~#~GklYAhC%_2(MuDeHV%dOy?=!3MFvCR@EKhWYm2Nfqn0S!HP$-0-u3+H(fz*6S=}l_oG98F@CoQ698HJXqDGiPV32 zCan&Oqt*Owtoy_dRrzTB?D|3Joma{%WQ#7@-08~}lvD`;(qj6Nr;bf;6j512WEQJFy{w!yd9L0>jLfii9h4pr^OfFxE z4t=#}Dt*-0`@$tmf&Vfz*`NJ(s4#9G+?*ZC3a_t` zR;GOr!}?YWPHovdgX)Ga^zXtGzt4c4`{@{Gdi+-u%A_+gVOGIEm}RpR4t)ZgX`suZ zx7)Gal^V>0Gd$i69!QVUdkZ(F9fqdKn(WDeQLvyR40)!D%XKwnO+7k0eJkd#OW%)(LM}8qt%$+ zonm;_sX*g4UlNa<|1PZQGXjIg`FiQQ7mfp|Dbc@dT6?9!OHG0p}`ZcQAD^W>y;bJ0;lNWgTdFR^TRLLHbj-ZZ<{DMEc{3v zsmrO`G?;A`ZLy+Ifc`G$;HBV#l2(pH{NsVypCdS{-VL^-O5tbwYk17(F&AHXHd$p1 zC8sFhhu8+{eDhPdz3i-5F;WRKtNOxk-scDjN*04J^+GrPv-_msCkAtVvbXwR`1~mr zQb()c?l12tXM+J-HT@1vI9)B(pJE1+-}tboSNgcV;|O$*iDhHA5e@V6!JrSjU~+>m z9`3S)X-`yG^yIsudh<)sdUt=}=tmubQLFpg}81(J9xM98v zu8)vKox)4dw#*Y|E8o3VR!Z4@?(;t9+v=-7{woQ!74Z^y~+n^n}e{5|$s4O(WaMLZK*T6#9m}>yr58k2dEe&x0krYNn zIiTD;&QG%;$+L_kj8BgdrllU0^h*yH^>TcLhF?pdaO7F?ocoh<&PA|;S92+v&l?M& z9g3AZ$h$jTXiu&bM#p$zj8Q-F(j-L;GUdLWB3G6;;|ZicKg~Zkx!|$nKS8X zLD3m~_QbFO9#)t!*$!J_vyUNn{1Y&f@9@aw7hRvB$TnO`LZ@$a!u7~paNDjb zojxNSQl6>`NpA{7({-9`*vJcz9-Sucwrm6Qj0PI6Iff>2F3`ATJ}`~HYj3qHp{GMI zlh4v)ugC&j&3+3$14?1vsuwVKD!&y+ z=JP;|)wC6EsGS3~M;FMh#1+0R`bB%3Drk^}5A*SjrdHljpSJ%s{qt(3j*Dxc+iyFq z8Bi-8I`N*;`YWSFekhJVup6!g9;G0CbGC0z2W7ZBu->YiA3S|(fK0O;9VIoET+$OI z&HS^_cM9bXzD1|5`M~WYb2e|#Gx*$OFVuWVWSKWhp|6Z49vyp-8vAS@l{zhqP7Z;_ z!de3F&9usV8@*lO&!+jvFh9-_$}GGHzB7K1YKMe7;!Lsbz-qX$+!{lIr9yGs3rHzH zM-3~K*@hZd7`d?%Tno5M51)&0@+5>@HfO2**9*zhg4x77;zzI%?@OR)dFl#r#Pyf#@THmKle}_O}Z;4>COqL}E{uMGkc7m>*9J(j-d%21e z+wsc-ZiHE|k`uD*nu>=+xo#PJ|KUpVDVwDlC04W<_JX6c63_3yp(=hy?YN$R7Zr