From a54d0db942effbeaf79123deb001731f605f0d7a Mon Sep 17 00:00:00 2001 From: khemendra kumar Date: Sun, 20 Dec 2020 17:24:03 +0530 Subject: [PATCH] optimize code in Example app Signed-off-by: khemendra kumar Change-Id: Ib05d4159d1b9e9fe8dd42ce4c665aa5968b7496d --- .../MobileNetSSD_deploy.prototxt | 1912 ++++++++++++++++++++ .../detection/obj_detection_service.py | 4 +- .../aPaaS/Obj_Detection_service/images/img.jpeg | Bin 337503 -> 92980 bytes 3 files changed, 1914 insertions(+), 2 deletions(-) create mode 100755 example-apps/ROBO/aPaaS/Obj_Detection_service/MobileNetSSD_deploy.prototxt diff --git a/example-apps/ROBO/aPaaS/Obj_Detection_service/MobileNetSSD_deploy.prototxt b/example-apps/ROBO/aPaaS/Obj_Detection_service/MobileNetSSD_deploy.prototxt new file mode 100755 index 0000000..fdc8126 --- /dev/null +++ b/example-apps/ROBO/aPaaS/Obj_Detection_service/MobileNetSSD_deploy.prototxt @@ -0,0 +1,1912 @@ +name: "MobileNet-SSD" +input: "data" +input_shape { + dim: 1 + dim: 3 + dim: 300 + dim: 300 +} +layer { + name: "conv0" + type: "Convolution" + bottom: "data" + top: "conv0" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + param { + lr_mult: 2.0 + decay_mult: 0.0 + } + convolution_param { + num_output: 32 + pad: 1 + kernel_size: 3 + stride: 2 + weight_filler { + type: "msra" + } + bias_filler { + type: "constant" + value: 0.0 + } + } +} +layer { + name: "conv0/relu" + type: "ReLU" + bottom: "conv0" + top: "conv0" +} +layer { + name: "conv1/dw" + type: "Convolution" + bottom: "conv0" + top: "conv1/dw" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + param { + lr_mult: 2.0 + decay_mult: 0.0 + } + convolution_param { + num_output: 32 + pad: 1 + kernel_size: 3 + group: 32 + engine: CAFFE + weight_filler { + type: "msra" + } + bias_filler { + type: "constant" + value: 0.0 + } + } +} +layer { + name: "conv1/dw/relu" + type: "ReLU" + bottom: "conv1/dw" + top: "conv1/dw" +} +layer { + name: "conv1" + type: "Convolution" + bottom: "conv1/dw" + top: "conv1" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + param { + lr_mult: 2.0 + decay_mult: 0.0 + } + convolution_param { + num_output: 64 + kernel_size: 1 + weight_filler { + type: "msra" + } + bias_filler { + type: "constant" + value: 0.0 + } + } +} +layer { + name: "conv1/relu" + type: "ReLU" + bottom: "conv1" + top: "conv1" +} +layer { + name: "conv2/dw" + type: "Convolution" + bottom: "conv1" + top: "conv2/dw" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + param { + lr_mult: 2.0 + decay_mult: 0.0 + } + convolution_param { + num_output: 64 + pad: 1 + kernel_size: 3 + stride: 2 + group: 64 + engine: CAFFE + weight_filler { + type: "msra" + } + bias_filler { + type: "constant" + value: 0.0 + } + } +} +layer { + name: "conv2/dw/relu" + type: "ReLU" + bottom: "conv2/dw" + top: "conv2/dw" +} +layer { + name: "conv2" + type: "Convolution" + bottom: "conv2/dw" + top: "conv2" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + param { + lr_mult: 2.0 + decay_mult: 0.0 + } + convolution_param { + num_output: 128 + kernel_size: 1 + weight_filler { + type: "msra" + } + bias_filler { + type: "constant" + value: 0.0 + } + } +} +layer { + name: "conv2/relu" + type: "ReLU" + bottom: "conv2" + top: "conv2" +} +layer { + name: "conv3/dw" + type: "Convolution" + bottom: "conv2" + top: "conv3/dw" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + param { + lr_mult: 2.0 + decay_mult: 0.0 + } + convolution_param { + num_output: 128 + pad: 1 + kernel_size: 3 + group: 128 + engine: CAFFE + weight_filler { + type: "msra" + } + bias_filler { + type: "constant" + value: 0.0 + } + } +} +layer { + name: "conv3/dw/relu" + type: "ReLU" + bottom: "conv3/dw" + top: "conv3/dw" +} +layer { + name: "conv3" + type: "Convolution" + bottom: "conv3/dw" + top: "conv3" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + param { + lr_mult: 2.0 + decay_mult: 0.0 + } + convolution_param { + num_output: 128 + kernel_size: 1 + weight_filler { + type: "msra" + } + bias_filler { + type: "constant" + value: 0.0 + } + } +} +layer { + name: "conv3/relu" + type: "ReLU" + bottom: "conv3" + top: "conv3" +} +layer { + name: "conv4/dw" + type: "Convolution" + bottom: "conv3" + top: "conv4/dw" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + param { + lr_mult: 2.0 + decay_mult: 0.0 + } + convolution_param { + num_output: 128 + pad: 1 + kernel_size: 3 + stride: 2 + group: 128 + engine: CAFFE + weight_filler { + type: "msra" + } + bias_filler { + type: "constant" + value: 0.0 + } + } +} +layer { + name: "conv4/dw/relu" + type: "ReLU" + bottom: "conv4/dw" + top: "conv4/dw" +} +layer { + name: "conv4" + type: "Convolution" + bottom: "conv4/dw" + top: "conv4" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + param { + lr_mult: 2.0 + decay_mult: 0.0 + } + convolution_param { + num_output: 256 + kernel_size: 1 + weight_filler { + type: "msra" + } + bias_filler { + type: "constant" + value: 0.0 + } + } +} +layer { + name: "conv4/relu" + type: "ReLU" + bottom: "conv4" + top: "conv4" +} +layer { + name: "conv5/dw" + type: "Convolution" + bottom: "conv4" + top: "conv5/dw" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + param { + lr_mult: 2.0 + decay_mult: 0.0 + } + convolution_param { + num_output: 256 + pad: 1 + kernel_size: 3 + group: 256 + engine: CAFFE + weight_filler { + type: "msra" + } + bias_filler { + type: "constant" + value: 0.0 + } + } +} +layer { + name: "conv5/dw/relu" + type: "ReLU" + bottom: "conv5/dw" + top: "conv5/dw" +} +layer { + name: "conv5" + type: "Convolution" + bottom: "conv5/dw" + top: "conv5" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + param { + lr_mult: 2.0 + decay_mult: 0.0 + } + convolution_param { + num_output: 256 + kernel_size: 1 + weight_filler { + type: "msra" + } + bias_filler { + type: "constant" + value: 0.0 + } + } +} +layer { + name: "conv5/relu" + type: "ReLU" + bottom: "conv5" + top: "conv5" +} +layer { + name: "conv6/dw" + type: "Convolution" + bottom: "conv5" + top: "conv6/dw" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + param { + lr_mult: 2.0 + decay_mult: 0.0 + } + convolution_param { + num_output: 256 + pad: 1 + kernel_size: 3 + stride: 2 + group: 256 + engine: CAFFE + weight_filler { + type: "msra" + } + bias_filler { + type: "constant" + value: 0.0 + } + } +} +layer { + name: "conv6/dw/relu" + type: "ReLU" + bottom: "conv6/dw" + top: "conv6/dw" +} +layer { + name: "conv6" + type: "Convolution" + bottom: "conv6/dw" + top: "conv6" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + param { + lr_mult: 2.0 + decay_mult: 0.0 + } + convolution_param { + num_output: 512 + kernel_size: 1 + weight_filler { + type: "msra" + } + bias_filler { + type: "constant" + value: 0.0 + } + } +} +layer { + name: "conv6/relu" + type: "ReLU" + bottom: "conv6" + top: "conv6" +} +layer { + name: "conv7/dw" + type: "Convolution" + bottom: "conv6" + top: "conv7/dw" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + param { + lr_mult: 2.0 + decay_mult: 0.0 + } + convolution_param { + num_output: 512 + pad: 1 + kernel_size: 3 + group: 512 + engine: CAFFE + weight_filler { + type: "msra" + } + bias_filler { + type: "constant" + value: 0.0 + } + } +} +layer { + name: "conv7/dw/relu" + type: "ReLU" + bottom: "conv7/dw" + top: "conv7/dw" +} +layer { + name: "conv7" + type: "Convolution" + bottom: "conv7/dw" + top: "conv7" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + param { + lr_mult: 2.0 + decay_mult: 0.0 + } + convolution_param { + num_output: 512 + kernel_size: 1 + weight_filler { + type: "msra" + } + bias_filler { + type: "constant" + value: 0.0 + } + } +} +layer { + name: "conv7/relu" + type: "ReLU" + bottom: "conv7" + top: "conv7" +} +layer { + name: "conv8/dw" + type: "Convolution" + bottom: "conv7" + top: "conv8/dw" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + param { + lr_mult: 2.0 + decay_mult: 0.0 + } + convolution_param { + num_output: 512 + pad: 1 + kernel_size: 3 + group: 512 + engine: CAFFE + weight_filler { + type: "msra" + } + bias_filler { + type: "constant" + value: 0.0 + } + } +} +layer { + name: "conv8/dw/relu" + type: "ReLU" + bottom: "conv8/dw" + top: "conv8/dw" +} +layer { + name: "conv8" + type: "Convolution" + bottom: "conv8/dw" + top: "conv8" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + param { + lr_mult: 2.0 + decay_mult: 0.0 + } + convolution_param { + num_output: 512 + kernel_size: 1 + weight_filler { + type: "msra" + } + bias_filler { + type: "constant" + value: 0.0 + } + } +} +layer { + name: "conv8/relu" + type: "ReLU" + bottom: "conv8" + top: "conv8" +} +layer { + name: "conv9/dw" + type: "Convolution" + bottom: "conv8" + top: "conv9/dw" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + param { + lr_mult: 2.0 + decay_mult: 0.0 + } + convolution_param { + num_output: 512 + pad: 1 + kernel_size: 3 + group: 512 + engine: CAFFE + weight_filler { + type: "msra" + } + bias_filler { + type: "constant" + value: 0.0 + } + } +} +layer { + name: "conv9/dw/relu" + type: "ReLU" + bottom: "conv9/dw" + top: "conv9/dw" +} +layer { + name: "conv9" + type: "Convolution" + bottom: "conv9/dw" + top: "conv9" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + param { + lr_mult: 2.0 + decay_mult: 0.0 + } + convolution_param { + num_output: 512 + kernel_size: 1 + weight_filler { + type: "msra" + } + bias_filler { + type: "constant" + value: 0.0 + } + } +} +layer { + name: "conv9/relu" + type: "ReLU" + bottom: "conv9" + top: "conv9" +} +layer { + name: "conv10/dw" + type: "Convolution" + bottom: "conv9" + top: "conv10/dw" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + param { + lr_mult: 2.0 + decay_mult: 0.0 + } + convolution_param { + num_output: 512 + pad: 1 + kernel_size: 3 + group: 512 + engine: CAFFE + weight_filler { + type: "msra" + } + bias_filler { + type: "constant" + value: 0.0 + } + } +} +layer { + name: "conv10/dw/relu" + type: "ReLU" + bottom: "conv10/dw" + top: "conv10/dw" +} +layer { + name: "conv10" + type: "Convolution" + bottom: "conv10/dw" + top: "conv10" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + param { + lr_mult: 2.0 + decay_mult: 0.0 + } + convolution_param { + num_output: 512 + kernel_size: 1 + weight_filler { + type: "msra" + } + bias_filler { + type: "constant" + value: 0.0 + } + } +} +layer { + name: "conv10/relu" + type: "ReLU" + bottom: "conv10" + top: "conv10" +} +layer { + name: "conv11/dw" + type: "Convolution" + bottom: "conv10" + top: "conv11/dw" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + param { + lr_mult: 2.0 + decay_mult: 0.0 + } + convolution_param { + num_output: 512 + pad: 1 + kernel_size: 3 + group: 512 + engine: CAFFE + weight_filler { + type: "msra" + } + bias_filler { + type: "constant" + value: 0.0 + } + } +} +layer { + name: "conv11/dw/relu" + type: "ReLU" + bottom: "conv11/dw" + top: "conv11/dw" +} +layer { + name: "conv11" + type: "Convolution" + bottom: "conv11/dw" + top: "conv11" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + param { + lr_mult: 2.0 + decay_mult: 0.0 + } + convolution_param { + num_output: 512 + kernel_size: 1 + weight_filler { + type: "msra" + } + bias_filler { + type: "constant" + value: 0.0 + } + } +} +layer { + name: "conv11/relu" + type: "ReLU" + bottom: "conv11" + top: "conv11" +} +layer { + name: "conv12/dw" + type: "Convolution" + bottom: "conv11" + top: "conv12/dw" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + param { + lr_mult: 2.0 + decay_mult: 0.0 + } + convolution_param { + num_output: 512 + pad: 1 + kernel_size: 3 + stride: 2 + group: 512 + engine: CAFFE + weight_filler { + type: "msra" + } + bias_filler { + type: "constant" + value: 0.0 + } + } +} +layer { + name: "conv12/dw/relu" + type: "ReLU" + bottom: "conv12/dw" + top: "conv12/dw" +} +layer { + name: "conv12" + type: "Convolution" + bottom: "conv12/dw" + top: "conv12" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + param { + lr_mult: 2.0 + decay_mult: 0.0 + } + convolution_param { + num_output: 1024 + kernel_size: 1 + weight_filler { + type: "msra" + } + bias_filler { + type: "constant" + value: 0.0 + } + } +} +layer { + name: "conv12/relu" + type: "ReLU" + bottom: "conv12" + top: "conv12" +} +layer { + name: "conv13/dw" + type: "Convolution" + bottom: "conv12" + top: "conv13/dw" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + param { + lr_mult: 2.0 + decay_mult: 0.0 + } + convolution_param { + num_output: 1024 + pad: 1 + kernel_size: 3 + group: 1024 + engine: CAFFE + weight_filler { + type: "msra" + } + bias_filler { + type: "constant" + value: 0.0 + } + } +} +layer { + name: "conv13/dw/relu" + type: "ReLU" + bottom: "conv13/dw" + top: "conv13/dw" +} +layer { + name: "conv13" + type: "Convolution" + bottom: "conv13/dw" + top: "conv13" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + param { + lr_mult: 2.0 + decay_mult: 0.0 + } + convolution_param { + num_output: 1024 + kernel_size: 1 + weight_filler { + type: "msra" + } + bias_filler { + type: "constant" + value: 0.0 + } + } +} +layer { + name: "conv13/relu" + type: "ReLU" + bottom: "conv13" + top: "conv13" +} +layer { + name: "conv14_1" + type: "Convolution" + bottom: "conv13" + top: "conv14_1" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + param { + lr_mult: 2.0 + decay_mult: 0.0 + } + convolution_param { + num_output: 256 + kernel_size: 1 + weight_filler { + type: "msra" + } + bias_filler { + type: "constant" + value: 0.0 + } + } +} +layer { + name: "conv14_1/relu" + type: "ReLU" + bottom: "conv14_1" + top: "conv14_1" +} +layer { + name: "conv14_2" + type: "Convolution" + bottom: "conv14_1" + top: "conv14_2" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + param { + lr_mult: 2.0 + decay_mult: 0.0 + } + convolution_param { + num_output: 512 + pad: 1 + kernel_size: 3 + stride: 2 + weight_filler { + type: "msra" + } + bias_filler { + type: "constant" + value: 0.0 + } + } +} +layer { + name: "conv14_2/relu" + type: "ReLU" + bottom: "conv14_2" + top: "conv14_2" +} +layer { + name: "conv15_1" + type: "Convolution" + bottom: "conv14_2" + top: "conv15_1" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + param { + lr_mult: 2.0 + decay_mult: 0.0 + } + convolution_param { + num_output: 128 + kernel_size: 1 + weight_filler { + type: "msra" + } + bias_filler { + type: "constant" + value: 0.0 + } + } +} +layer { + name: "conv15_1/relu" + type: "ReLU" + bottom: "conv15_1" + top: "conv15_1" +} +layer { + name: "conv15_2" + type: "Convolution" + bottom: "conv15_1" + top: "conv15_2" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + param { + lr_mult: 2.0 + decay_mult: 0.0 + } + convolution_param { + num_output: 256 + pad: 1 + kernel_size: 3 + stride: 2 + weight_filler { + type: "msra" + } + bias_filler { + type: "constant" + value: 0.0 + } + } +} +layer { + name: "conv15_2/relu" + type: "ReLU" + bottom: "conv15_2" + top: "conv15_2" +} +layer { + name: "conv16_1" + type: "Convolution" + bottom: "conv15_2" + top: "conv16_1" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + param { + lr_mult: 2.0 + decay_mult: 0.0 + } + convolution_param { + num_output: 128 + kernel_size: 1 + weight_filler { + type: "msra" + } + bias_filler { + type: "constant" + value: 0.0 + } + } +} +layer { + name: "conv16_1/relu" + type: "ReLU" + bottom: "conv16_1" + top: "conv16_1" +} +layer { + name: "conv16_2" + type: "Convolution" + bottom: "conv16_1" + top: "conv16_2" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + param { + lr_mult: 2.0 + decay_mult: 0.0 + } + convolution_param { + num_output: 256 + pad: 1 + kernel_size: 3 + stride: 2 + weight_filler { + type: "msra" + } + bias_filler { + type: "constant" + value: 0.0 + } + } +} +layer { + name: "conv16_2/relu" + type: "ReLU" + bottom: "conv16_2" + top: "conv16_2" +} +layer { + name: "conv17_1" + type: "Convolution" + bottom: "conv16_2" + top: "conv17_1" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + param { + lr_mult: 2.0 + decay_mult: 0.0 + } + convolution_param { + num_output: 64 + kernel_size: 1 + weight_filler { + type: "msra" + } + bias_filler { + type: "constant" + value: 0.0 + } + } +} +layer { + name: "conv17_1/relu" + type: "ReLU" + bottom: "conv17_1" + top: "conv17_1" +} +layer { + name: "conv17_2" + type: "Convolution" + bottom: "conv17_1" + top: "conv17_2" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + param { + lr_mult: 2.0 + decay_mult: 0.0 + } + convolution_param { + num_output: 128 + pad: 1 + kernel_size: 3 + stride: 2 + weight_filler { + type: "msra" + } + bias_filler { + type: "constant" + value: 0.0 + } + } +} +layer { + name: "conv17_2/relu" + type: "ReLU" + bottom: "conv17_2" + top: "conv17_2" +} +layer { + name: "conv11_mbox_loc" + type: "Convolution" + bottom: "conv11" + top: "conv11_mbox_loc" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + param { + lr_mult: 2.0 + decay_mult: 0.0 + } + convolution_param { + num_output: 12 + kernel_size: 1 + weight_filler { + type: "msra" + } + bias_filler { + type: "constant" + value: 0.0 + } + } +} +layer { + name: "conv11_mbox_loc_perm" + type: "Permute" + bottom: "conv11_mbox_loc" + top: "conv11_mbox_loc_perm" + permute_param { + order: 0 + order: 2 + order: 3 + order: 1 + } +} +layer { + name: "conv11_mbox_loc_flat" + type: "Flatten" + bottom: "conv11_mbox_loc_perm" + top: "conv11_mbox_loc_flat" + flatten_param { + axis: 1 + } +} +layer { + name: "conv11_mbox_conf" + type: "Convolution" + bottom: "conv11" + top: "conv11_mbox_conf" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + param { + lr_mult: 2.0 + decay_mult: 0.0 + } + convolution_param { + num_output: 63 + kernel_size: 1 + weight_filler { + type: "msra" + } + bias_filler { + type: "constant" + value: 0.0 + } + } +} +layer { + name: "conv11_mbox_conf_perm" + type: "Permute" + bottom: "conv11_mbox_conf" + top: "conv11_mbox_conf_perm" + permute_param { + order: 0 + order: 2 + order: 3 + order: 1 + } +} +layer { + name: "conv11_mbox_conf_flat" + type: "Flatten" + bottom: "conv11_mbox_conf_perm" + top: "conv11_mbox_conf_flat" + flatten_param { + axis: 1 + } +} +layer { + name: "conv11_mbox_priorbox" + type: "PriorBox" + bottom: "conv11" + bottom: "data" + top: "conv11_mbox_priorbox" + prior_box_param { + min_size: 60.0 + aspect_ratio: 2.0 + flip: true + clip: false + variance: 0.1 + variance: 0.1 + variance: 0.2 + variance: 0.2 + offset: 0.5 + } +} +layer { + name: "conv13_mbox_loc" + type: "Convolution" + bottom: "conv13" + top: "conv13_mbox_loc" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + param { + lr_mult: 2.0 + decay_mult: 0.0 + } + convolution_param { + num_output: 24 + kernel_size: 1 + weight_filler { + type: "msra" + } + bias_filler { + type: "constant" + value: 0.0 + } + } +} +layer { + name: "conv13_mbox_loc_perm" + type: "Permute" + bottom: "conv13_mbox_loc" + top: "conv13_mbox_loc_perm" + permute_param { + order: 0 + order: 2 + order: 3 + order: 1 + } +} +layer { + name: "conv13_mbox_loc_flat" + type: "Flatten" + bottom: "conv13_mbox_loc_perm" + top: "conv13_mbox_loc_flat" + flatten_param { + axis: 1 + } +} +layer { + name: "conv13_mbox_conf" + type: "Convolution" + bottom: "conv13" + top: "conv13_mbox_conf" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + param { + lr_mult: 2.0 + decay_mult: 0.0 + } + convolution_param { + num_output: 126 + kernel_size: 1 + weight_filler { + type: "msra" + } + bias_filler { + type: "constant" + value: 0.0 + } + } +} +layer { + name: "conv13_mbox_conf_perm" + type: "Permute" + bottom: "conv13_mbox_conf" + top: "conv13_mbox_conf_perm" + permute_param { + order: 0 + order: 2 + order: 3 + order: 1 + } +} +layer { + name: "conv13_mbox_conf_flat" + type: "Flatten" + bottom: "conv13_mbox_conf_perm" + top: "conv13_mbox_conf_flat" + flatten_param { + axis: 1 + } +} +layer { + name: "conv13_mbox_priorbox" + type: "PriorBox" + bottom: "conv13" + bottom: "data" + top: "conv13_mbox_priorbox" + prior_box_param { + min_size: 105.0 + max_size: 150.0 + aspect_ratio: 2.0 + aspect_ratio: 3.0 + flip: true + clip: false + variance: 0.1 + variance: 0.1 + variance: 0.2 + variance: 0.2 + offset: 0.5 + } +} +layer { + name: "conv14_2_mbox_loc" + type: "Convolution" + bottom: "conv14_2" + top: "conv14_2_mbox_loc" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + param { + lr_mult: 2.0 + decay_mult: 0.0 + } + convolution_param { + num_output: 24 + kernel_size: 1 + weight_filler { + type: "msra" + } + bias_filler { + type: "constant" + value: 0.0 + } + } +} +layer { + name: "conv14_2_mbox_loc_perm" + type: "Permute" + bottom: "conv14_2_mbox_loc" + top: "conv14_2_mbox_loc_perm" + permute_param { + order: 0 + order: 2 + order: 3 + order: 1 + } +} +layer { + name: "conv14_2_mbox_loc_flat" + type: "Flatten" + bottom: "conv14_2_mbox_loc_perm" + top: "conv14_2_mbox_loc_flat" + flatten_param { + axis: 1 + } +} +layer { + name: "conv14_2_mbox_conf" + type: "Convolution" + bottom: "conv14_2" + top: "conv14_2_mbox_conf" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + param { + lr_mult: 2.0 + decay_mult: 0.0 + } + convolution_param { + num_output: 126 + kernel_size: 1 + weight_filler { + type: "msra" + } + bias_filler { + type: "constant" + value: 0.0 + } + } +} +layer { + name: "conv14_2_mbox_conf_perm" + type: "Permute" + bottom: "conv14_2_mbox_conf" + top: "conv14_2_mbox_conf_perm" + permute_param { + order: 0 + order: 2 + order: 3 + order: 1 + } +} +layer { + name: "conv14_2_mbox_conf_flat" + type: "Flatten" + bottom: "conv14_2_mbox_conf_perm" + top: "conv14_2_mbox_conf_flat" + flatten_param { + axis: 1 + } +} +layer { + name: "conv14_2_mbox_priorbox" + type: "PriorBox" + bottom: "conv14_2" + bottom: "data" + top: "conv14_2_mbox_priorbox" + prior_box_param { + min_size: 150.0 + max_size: 195.0 + aspect_ratio: 2.0 + aspect_ratio: 3.0 + flip: true + clip: false + variance: 0.1 + variance: 0.1 + variance: 0.2 + variance: 0.2 + offset: 0.5 + } +} +layer { + name: "conv15_2_mbox_loc" + type: "Convolution" + bottom: "conv15_2" + top: "conv15_2_mbox_loc" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + param { + lr_mult: 2.0 + decay_mult: 0.0 + } + convolution_param { + num_output: 24 + kernel_size: 1 + weight_filler { + type: "msra" + } + bias_filler { + type: "constant" + value: 0.0 + } + } +} +layer { + name: "conv15_2_mbox_loc_perm" + type: "Permute" + bottom: "conv15_2_mbox_loc" + top: "conv15_2_mbox_loc_perm" + permute_param { + order: 0 + order: 2 + order: 3 + order: 1 + } +} +layer { + name: "conv15_2_mbox_loc_flat" + type: "Flatten" + bottom: "conv15_2_mbox_loc_perm" + top: "conv15_2_mbox_loc_flat" + flatten_param { + axis: 1 + } +} +layer { + name: "conv15_2_mbox_conf" + type: "Convolution" + bottom: "conv15_2" + top: "conv15_2_mbox_conf" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + param { + lr_mult: 2.0 + decay_mult: 0.0 + } + convolution_param { + num_output: 126 + kernel_size: 1 + weight_filler { + type: "msra" + } + bias_filler { + type: "constant" + value: 0.0 + } + } +} +layer { + name: "conv15_2_mbox_conf_perm" + type: "Permute" + bottom: "conv15_2_mbox_conf" + top: "conv15_2_mbox_conf_perm" + permute_param { + order: 0 + order: 2 + order: 3 + order: 1 + } +} +layer { + name: "conv15_2_mbox_conf_flat" + type: "Flatten" + bottom: "conv15_2_mbox_conf_perm" + top: "conv15_2_mbox_conf_flat" + flatten_param { + axis: 1 + } +} +layer { + name: "conv15_2_mbox_priorbox" + type: "PriorBox" + bottom: "conv15_2" + bottom: "data" + top: "conv15_2_mbox_priorbox" + prior_box_param { + min_size: 195.0 + max_size: 240.0 + aspect_ratio: 2.0 + aspect_ratio: 3.0 + flip: true + clip: false + variance: 0.1 + variance: 0.1 + variance: 0.2 + variance: 0.2 + offset: 0.5 + } +} +layer { + name: "conv16_2_mbox_loc" + type: "Convolution" + bottom: "conv16_2" + top: "conv16_2_mbox_loc" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + param { + lr_mult: 2.0 + decay_mult: 0.0 + } + convolution_param { + num_output: 24 + kernel_size: 1 + weight_filler { + type: "msra" + } + bias_filler { + type: "constant" + value: 0.0 + } + } +} +layer { + name: "conv16_2_mbox_loc_perm" + type: "Permute" + bottom: "conv16_2_mbox_loc" + top: "conv16_2_mbox_loc_perm" + permute_param { + order: 0 + order: 2 + order: 3 + order: 1 + } +} +layer { + name: "conv16_2_mbox_loc_flat" + type: "Flatten" + bottom: "conv16_2_mbox_loc_perm" + top: "conv16_2_mbox_loc_flat" + flatten_param { + axis: 1 + } +} +layer { + name: "conv16_2_mbox_conf" + type: "Convolution" + bottom: "conv16_2" + top: "conv16_2_mbox_conf" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + param { + lr_mult: 2.0 + decay_mult: 0.0 + } + convolution_param { + num_output: 126 + kernel_size: 1 + weight_filler { + type: "msra" + } + bias_filler { + type: "constant" + value: 0.0 + } + } +} +layer { + name: "conv16_2_mbox_conf_perm" + type: "Permute" + bottom: "conv16_2_mbox_conf" + top: "conv16_2_mbox_conf_perm" + permute_param { + order: 0 + order: 2 + order: 3 + order: 1 + } +} +layer { + name: "conv16_2_mbox_conf_flat" + type: "Flatten" + bottom: "conv16_2_mbox_conf_perm" + top: "conv16_2_mbox_conf_flat" + flatten_param { + axis: 1 + } +} +layer { + name: "conv16_2_mbox_priorbox" + type: "PriorBox" + bottom: "conv16_2" + bottom: "data" + top: "conv16_2_mbox_priorbox" + prior_box_param { + min_size: 240.0 + max_size: 285.0 + aspect_ratio: 2.0 + aspect_ratio: 3.0 + flip: true + clip: false + variance: 0.1 + variance: 0.1 + variance: 0.2 + variance: 0.2 + offset: 0.5 + } +} +layer { + name: "conv17_2_mbox_loc" + type: "Convolution" + bottom: "conv17_2" + top: "conv17_2_mbox_loc" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + param { + lr_mult: 2.0 + decay_mult: 0.0 + } + convolution_param { + num_output: 24 + kernel_size: 1 + weight_filler { + type: "msra" + } + bias_filler { + type: "constant" + value: 0.0 + } + } +} +layer { + name: "conv17_2_mbox_loc_perm" + type: "Permute" + bottom: "conv17_2_mbox_loc" + top: "conv17_2_mbox_loc_perm" + permute_param { + order: 0 + order: 2 + order: 3 + order: 1 + } +} +layer { + name: "conv17_2_mbox_loc_flat" + type: "Flatten" + bottom: "conv17_2_mbox_loc_perm" + top: "conv17_2_mbox_loc_flat" + flatten_param { + axis: 1 + } +} +layer { + name: "conv17_2_mbox_conf" + type: "Convolution" + bottom: "conv17_2" + top: "conv17_2_mbox_conf" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + param { + lr_mult: 2.0 + decay_mult: 0.0 + } + convolution_param { + num_output: 126 + kernel_size: 1 + weight_filler { + type: "msra" + } + bias_filler { + type: "constant" + value: 0.0 + } + } +} +layer { + name: "conv17_2_mbox_conf_perm" + type: "Permute" + bottom: "conv17_2_mbox_conf" + top: "conv17_2_mbox_conf_perm" + permute_param { + order: 0 + order: 2 + order: 3 + order: 1 + } +} +layer { + name: "conv17_2_mbox_conf_flat" + type: "Flatten" + bottom: "conv17_2_mbox_conf_perm" + top: "conv17_2_mbox_conf_flat" + flatten_param { + axis: 1 + } +} +layer { + name: "conv17_2_mbox_priorbox" + type: "PriorBox" + bottom: "conv17_2" + bottom: "data" + top: "conv17_2_mbox_priorbox" + prior_box_param { + min_size: 285.0 + max_size: 300.0 + aspect_ratio: 2.0 + aspect_ratio: 3.0 + flip: true + clip: false + variance: 0.1 + variance: 0.1 + variance: 0.2 + variance: 0.2 + offset: 0.5 + } +} +layer { + name: "mbox_loc" + type: "Concat" + bottom: "conv11_mbox_loc_flat" + bottom: "conv13_mbox_loc_flat" + bottom: "conv14_2_mbox_loc_flat" + bottom: "conv15_2_mbox_loc_flat" + bottom: "conv16_2_mbox_loc_flat" + bottom: "conv17_2_mbox_loc_flat" + top: "mbox_loc" + concat_param { + axis: 1 + } +} +layer { + name: "mbox_conf" + type: "Concat" + bottom: "conv11_mbox_conf_flat" + bottom: "conv13_mbox_conf_flat" + bottom: "conv14_2_mbox_conf_flat" + bottom: "conv15_2_mbox_conf_flat" + bottom: "conv16_2_mbox_conf_flat" + bottom: "conv17_2_mbox_conf_flat" + top: "mbox_conf" + concat_param { + axis: 1 + } +} +layer { + name: "mbox_priorbox" + type: "Concat" + bottom: "conv11_mbox_priorbox" + bottom: "conv13_mbox_priorbox" + bottom: "conv14_2_mbox_priorbox" + bottom: "conv15_2_mbox_priorbox" + bottom: "conv16_2_mbox_priorbox" + bottom: "conv17_2_mbox_priorbox" + top: "mbox_priorbox" + concat_param { + axis: 2 + } +} +layer { + name: "mbox_conf_reshape" + type: "Reshape" + bottom: "mbox_conf" + top: "mbox_conf_reshape" + reshape_param { + shape { + dim: 0 + dim: -1 + dim: 21 + } + } +} +layer { + name: "mbox_conf_softmax" + type: "Softmax" + bottom: "mbox_conf_reshape" + top: "mbox_conf_softmax" + softmax_param { + axis: 2 + } +} +layer { + name: "mbox_conf_flatten" + type: "Flatten" + bottom: "mbox_conf_softmax" + top: "mbox_conf_flatten" + flatten_param { + axis: 1 + } +} +layer { + name: "detection_out" + type: "DetectionOutput" + bottom: "mbox_loc" + bottom: "mbox_conf_flatten" + bottom: "mbox_priorbox" + top: "detection_out" + include { + phase: TEST + } + detection_output_param { + num_classes: 21 + share_location: true + background_label_id: 0 + nms_param { + nms_threshold: 0.45 + top_k: 100 + } + code_type: CENTER_SIZE + keep_top_k: 100 + confidence_threshold: 0.25 + } +} diff --git a/example-apps/ROBO/aPaaS/Obj_Detection_service/detection/obj_detection_service.py b/example-apps/ROBO/aPaaS/Obj_Detection_service/detection/obj_detection_service.py index 055f864..52a6bab 100644 --- a/example-apps/ROBO/aPaaS/Obj_Detection_service/detection/obj_detection_service.py +++ b/example-apps/ROBO/aPaaS/Obj_Detection_service/detection/obj_detection_service.py @@ -203,7 +203,8 @@ def Detection(img): cv2.destroyAllWindows() # Detect_result = {'ImposedImage': 'frame', 'ObjCount': count, # 'ObjType': type, 'Time': time} - Detect_result = {'ImposedImage': "frame", 'ObjCount': count} + Detect_result = {'ImposedImage': "frame", 'ObjCount': count, + 'labels': label} return Detect_result @@ -264,7 +265,6 @@ def Obj_Detection(): else: app.logger.info('Allowed file types are txt, pdf, png, jpg, jpeg, gif') return Response("failure") - # return jsonify({'Face number': num, 'Result': 'upload success'}) return jsonify(Detect_result) diff --git a/example-apps/ROBO/aPaaS/Obj_Detection_service/images/img.jpeg b/example-apps/ROBO/aPaaS/Obj_Detection_service/images/img.jpeg index 483e586056cbc0b5f70195d678b64b556849f0e0..df1ebc1368e6c3f49c5763eaa061200ac540d505 100644 GIT binary patch literal 92980 zcmbTe2UJus)Gm6aQig${cN`dc??u|sdoNOzGV~^0L3HT73J3^DlO`Y_T|s)0B3-0O zZz=+UiUr?z|GWPGe{ZdO-+MP}ot$rWc9NZ)ot%A=ocX)-cLPA_YU*eLAVLrX2?D_1 zEix+|HMLvDrbe1N`Wl1;03g%W_we-tqX59iHz>eVOBHQpZG$G70>A(X00+bXz|lGI zwt<_3e2@x>8%{>gkB=Y#u) z2MIVKB-n+3A^HRy7vkX(O2G33%;_EM<3Yeb2$;sl#W4^7pk)8(K`zej1T0FxWC7-; zY6PqR0K{Z&{|!6+Hyq@0hae{asQKN#8{pyQ9)#v~=0l6g$;qO%T|&KGf`WvM9i6=# z18`_HKcCx!SponQF#yo^_P@1ibXKq19bn9fQ4t(EpU`?C0$l z9DokI?da@+7W#i0@&9qg|0dRdlS9zd#nmOi#g|Z(CBe!(eBB7$?ThmW^6>LTd-(pZ zdieh^+kcbcAN&uyCIIS+D}d&fFo1eX13*4c08nZK0I@43q=5dj-}Ff=fqx_K#p3upkkfDvF0SOYf!XTTls0Rn(f;2sbO!~w}b29N_308fAlpay6Fnt^uU70?F^ z1LMFnumG$88^A8`5jX+90lx_I7!e2wq6RU7u7S8f0w8gaEJz8Y0n!JVf~-LfAUBXN zC>V4P6b(uSWq}GnrJx#66Q~o^2O0y-fZl^PL5H9-&`&S~Oa`U_vx2$7B4Amt3Rn+p z4z>rof&IZ@;23ZkI1gL~t^>D$`@rMi1@H#=BlrRWKoAf*2s=awA`4N27(r|xu8;u8 zeMk}{7g7dkfOJ7dAajrn$S24p6b_|^qM<@id8jtj0_qI)hu(*#KntMN&^G8GbPl=+ zJ%L`qkT4dQ0PH$U2WACxgN4H4V7ahLSSxG@wgB6OeS^c{bZ{QH3|t#-4flkH!&Bfz z@aOPe_zZj-enCV;#7HDSq)22$ zNQX#QNxvcx2o8iC!UW-gz$5YyjfhdiCgPHeij1F3jm(ZLm@JK~imaFHJ=s?z63LCk zB5jaC$TVaPasauG{6S7lE=;aNjw63S{+PUte3tx}f`o#LLWSZcMHodc#S4nJ6rWHe zC~lM*$`N%R^%&KOdWX88q^1<3G@|sOOrfl$9HTs-BBJ7^(xAdo#ZZ+~4Nz@UL#Q#- zYShlu(bN^xL)5!8a2g&O9U4!XWSV-KDVh^nDq2ZeOWHfMk7>JUH|QXA+;lp0-gN17 z&2)=&Kj~TNRp?#l6X_f1XX(E)Ff(8oTo{rVo--^k{A5HkYA|{+W-_)jt}#KG_?b+Y zLYa!0hL}Dv(=f|3J2NLSH#0A@fLZuiOj*KN%2_5@E?C)EwODVn=Ccm4eqy6z!?Jm@ zWwZ6L9bTiprgY8YTK2Wq*N)J%Xce?KIuAXFK4E8J*Jcl9FJ+%%|HZ+>VZjl_@tk7~ zLyD2bxMH#~{g@NZYn%q0_c)(%E_0D^$#S`KJ>nYS`p(V6eS`m*RKlf6V_@04yLa;2}^XFe3;PloRw7EE9Yu zL?)yn6e9FYXj7O@SYJ3wxLx>Igj2*uBvWKWE&+B zvMI8oaxghnxd(EuPhNT8dMq< z8U-5bnjD&Ln$I*(w4}7cwR*K-+IrfV+V6B&b)0o-bWU_-bR%>J^~m(h^a}L0^!fDz z^t%ke2D%0h4OR`g41EpTjQ}GZqlZRo#yrOU#xG6aCdMX@P4-O1Oz)YFm{FVEGOIQF zX0B?UZoXo{YY}YGZ%JWkXIW$U{f7FDtQ#9vB32Pr*8?|2w})r=JPJHcJ+(cbcz*XX@~ZOs>wUxf zxeu|AgHNX~m9LlYpdXvx9lx2|0=MICZ}?yL&+$JA&sEB09&d0ar;yLkEdCkfC5kA$g2 ziNyTGt0Y{~n`F`C+~nUW&M9wF#ZvQ9|E9U7O{Ghx7iYjTd@~j^l{2feD6_({wjUZi zY|BPxCuN`K+{zitmCSwei1bnLqm4ZMypDX%{EYnH1?~k4k5wN(FJvi9Ec{-CE1E6F z7B@U$eUkj-XNgD2QmIyHTN!s*ZaKU>qCeE=f}b7M+0{+gtJill2sM;Gr+c2<2s8#a9yK{MEjH^l_rH*R(a^%xQrJq} zn$!kryW4is?%ux9Vcjv)soUA#CEwNhQut-nEB059yJ@@Adq{g?dj7r+dwtP+yZ2L{ zTi9N-t4V99wcK@<^|B9qAD(YWZ**^}Z%%BPZLMrOZ-3kg-1)s5vxnTv-M_Y9b0B{3 z>QM7=`pEWZ_v7u4zdpr%ru<#Oh@CG~o2_S;|+&uT|%g=lvJP7wg}A zzWw^1^n>w7^`-3P$j=);_kV@{CiUP05Kd+1cwn5o=hYp z#H3_2NHPS1jFF0(f`*mp8XGGU3k#Z4mdyv8G^C@ZcYEFmfW zuMiLk2?-g3i~)&c5GPEQ;{U(H-(G-{7)%F2LqL=Om=Xk`1pOTZSO`816!PEQ8Yl=1 zfdOzLVnV7d3IIXCPzV$bhZ2zy!~SuCAy7&f6}uQ*#e|5O!;wbZKQglvqiWjJH$yAo zR3@or77&%yOiahgrEVS=^ss;PgkDNoM#DM!lm{0xyT!n5k*#TYMkt*5Us(jt<)4rA zKLep^C=5)&Nc(6Vs!X)P62(w>L8ShA>a7shyk zfBLdf94Tq{G9I1-SLHi+`tuyr6=o*|*i1IXW8)1IdP#m-KDvZDkp1BUEkhlkvMuPV zQU-{!zM2nO6L>o(77)omMk>}uu>}@opg%u(eMB_G0D&uz{K0BM;PNa&e*qriUI)L! z?+?(Fc!~3`Z%;uCAZ5d`-*`>n*4*q_WOXmuBgQQE@oR>&6r3jv0xbQ$8?#_%%yl$8 z3r`8i(g1r3O}#N7f4B&ZK7D!YU?95|xDWFq&Pj+xOjF1Y0cb*?Lc>RSI!NdfP6ttD z3Yx9cc0q46Ildg+&l5_!{oJRJO@+j{=r%+7(8 z=}Q!lnO7;fq4Gug8>b)!E|k{pEYt-~fur`fS+L*Yx^xnl?Xn%=l$6hh*E%xFK`~+r zcRuJSk;FxZfAUy<{}+I|GcmBHK54^G2mS^0I}k+4$Y3nlaZ~xllT+-(vHz2{zraT{ z*}0v=pU?-^08h!*$X%n0EQqq^mfMf*Ke*m-(c05zm49}C5l4%P$CJNCAv< zf{{;3U00{5M<@OefAlh?%#b+e?P+Ca1Zg6P7Z&(%L@eUDi|5JVGZ~COrBnP&zG4{< zXn>E3e-7~HO^j@gnPj1;C|vy) zpgqHq9MZbEU+Lh>Yz8irw5OrsmVdH=*`M>k9G9C64I#cEQ;y}h_Z7Kg1W5E`|8c^j zUcC$q0?O7<;3YI!GmuRs%?E6rWCysC0R5+; zq9gwG8BkXgo-;LLeHQYW7|0#K3fi6JmT`FuJg$tOnuietV%1BMf+!E&OHPsk`NdJx z8Z#xXJ3hfx!b3aU&RhVwR#`8@%#WY6VZk@q9wfc)1kkkumuhEN2G45ElY0+AisI3i z6j^|C?ZG)g9r(=FbL<16OEeLSX-0CG(z-ST&ZQetd5HlWhxj6|5NG;ie*}!)JR+zl zo;E&*_XihV)TxQ$>{b?FmOPT3t}(ZS@3U62#tEm1Pv7MhbrLiKq2Ts_%QQ4oCvzjy ze}V?&#Tv|v?WWdY{@7)O`tCGi6=$OQA$YcTD4r=xo_s^TGNHH8dT8(>vb4U`?U!gS zEShsmK^3b~=FVmk;~+}*$+BVNC*M`AgQU|%8Xe8Z2A=t+4Z-00l(a$RRCQB!eD}2( zPLmct{E!&~vxtSANLF5=VGP5VH&4DBLr+fO;(hL$jmnKwy$+d$2I)<`&Emu>2O~QK z`@g(Xo>=7{7!y-8rE-ZOmV}4MrOPr8|9RjdI?cM&ARe0V8^xf?qQ6%Rm2X-=aP zJW(saQ~FNU%i=3`@SLf<+iem|eSUBCqmnyAJh}h+i#`Rv{uZ9PbD(e0)EMqE5Y|yb*26Scu7hQ8EoqHW|CIp_oex_EM~s3L zIS_}s_lY5j{7U9eIDwuF!}-^oKyeNa|AQ>R>lw~Bjyv5Gh+Rs)8aL}D`-9=p{7p&F zrlxai4>4hCoeTaKXFX|10by`O+d8U%soT|!Jv=6Sm-$T|Dj)aD1z^wI4={#&=^gpuO4QD^1J_J!G z0~w%a>YC9x2^1%$q`WGDP8oyuv7~Hx;;8$dms@0mc)>%hpOK&z{}1)qSS`z`UoKVd z?V6S7u6sr(kDs#4{_~t1{R&1b*PC|J{_=ehq>$8TdW)1CXR9zROp-)RQIUYuf)$JLkfFSqdYFH4E6 zZ$=zIC`zb5Dgs;wO5<;UiF1tmlM^greU{=Z^d1VFh*qj+{~iO1a!t2P-@&8iWj|}< zse2yfNT>o+-^#Ovh#`<8t$7D5!~XnLFBUmz_H7vj4bYLd(#htA1@45835V3+CygY5 zjsCEzxZazGR}Y|E7MAY{jD4qDF4SKpwu+%65uh8foo?eb{$zl=VU$Mjy z)gXl5CUX(Bo(M6Rqo3vU-e&OO$!P0`%wmi6AoT&rUtq#-(*B2qh_qJwebwS?**~9F ztv}opJ!Jp(Wt7d1^l9{k+ZPMH7`?TOh2RB{j+&&K<&&tlN{s%jxq7r#;^22LLUPiA zswk-XBx&BUXbqEHc*sq^lv@y3{scE2UPPwlxO-*0iK1Y=1QX))L-^2+W?C= zq>cYkiH3dg{Cp$^@Pu3cevE>Lwmxx5fI$DnptaATpU`CF_40Itra$YMLqRRb>yGV< zK8^ceRlzkab7M!1ISn~Qp3lV6Vq8qc)?#E3wV|iJKZFEgRuxaw+9P@UJU<7FtX$UK zin08v`gu$96Mx8`8xPD&Pm=yHQCLMn4l3Oi_-k&D=l$yBex`E4A=dpes@c5M^hug5 zcSZ5QN^`X%%6yFSg}t9Ap!mXaR6)Fj!kvUzb-9vdxU}R_4xlwW>LiAs-eg1#DXPVF zyfg;R%-$%Ul8u5TXv)L3@XTvESNDwJp{9RxO9f zL(>t2mHLGLZGlI!9eTO8kE(LADYG74(({tpwe((#A@zjkXp;ugi&_^48JM`5g4!5N#PplMzOo_yI_Q29yB8Y7@b!#~{6( zM(UvAYt4Bnj7AGsMAZ@&;kQH#()tPpY%?!Z0lh3mV>~K82+NpV0%ZqWO95VgES1W3 zQEI!C5Aj#?q#sE}#7k)R<_k*E#hzgNETtoosqbF%x>+w41_$-AVdCeL`EOO(>*WKKBxuUHt5 zEg_J_EJVh59=3G92BTJXa<|YtV9t3DFSte1S1u`|G@B8ddA=we^PNAmZrV1Wlop%5;PXgXdK^W^+2V{{qFj z;!Ipm28lYVOYz-B;EYBHuh4vuN$wz)nI$dr*aM)Rx$Dc(WdHc!2kQ99_JiyXL9Q}} z-7B-543agSDYX;q;4zM%Z|Jf8w>QAl#-HXCe9_2f8XP>&X3lB*6pL7usnNt5Y55h1 zgF}&;*s0xa$_$39BV}t*bg(+cbxi@pSnI~yFA5H``UMiDv1orxi6^WV+Pcv3FH`PS zXB78|CIj92baC7Rhm)%xLiZYaIi>&vtW}yNn-LvPWNWgZj?oSN8ijd9wa zAXBDc2M@uX@n)e)jEExtIb3;Rq>iyo5PbcEXD3Odl7yp^^8R1Ig@lAw>L&ej#lh_l z`YUP<_de#?$u-9n8N*WGeAfQqzf7IDj^hhdB|6#M8H?tO%yF8b$S!fQe!8!EXt#ht z9PHS7h7r_Hcdm)Ox!FxU8jE^SCJt8OhDW;uBRxm<_`I)Sdp9WZe!Xi*jIOrxn{?e{ zx_`s6f>Dt7Fy)K;7fkBY$(I$<%)C=pDp@uK^jO$V>UW>7V(*x){fK3F%bwNXCAm8x z5)uC}ey@%!Cs=G9vm^4IODHCZ5mq66)AXn8b4-LxUg?Q>sCespm3E7a{Gd-cs3;r3 zjWYGRENZe`On(Sp7D=U-e%)LF)~>T2;*g1Qi~EoT=Qf!}lf4lt!7?yiN5kHTGy~&z z(PZodKfspoPKH%8;R%GS%YYyl#frh0oxbWcuwP}8skD)9OW#pDf{*vyjm)dupKcQ*sEE~_JU%y!KD z+e*H8lP=ADBn8o5;Ai_!IF^HZ7=a7ZwsQX9N8&W=&ZW3F3B7>l zjk2h*hh!W@Q#rk&UgNj8oOQtCOFiYZEt7KP9#F(uVUD8yV%O4?F5unER>-W~IaNew`mpxd zj94uR^OXd8tQ)B}D^N-217_s!#6vOvf>Gl2dHXY=HQrOh!R#20`T<1_7 zZsf%jf<3{EcpNF<_pPBIUb_5FmotzZlt?M7gY46Vs z{!M4uT&wHW`C;$4gKZkyTo&s)XRfO&pk`7xy7-4V^4H>lTaA9xbj`gp39MO``Zmp| zE#f1W5M9s5On*P7uY<)yGmkhhxv8hjv}&9F;o4bs*n_09d(!?VuO3>UEC8X5mO5IG zHxyJng}HJCYonwY)ZNLKn!k~7*Z4E@t;wd@By2%fUJ;32lf10RH67*EcqMH_ zy|lCou4xFjn;vetCA;sulZ#uPW=b+LnQhh_+}ATc7`t!^KGwR0t}K|MVoy(mw)C~6 z6&g^lN+G@DW%^jwj_s&+j`z7=3z@eGac@uX845s>^vP1b%Pa(})$=#|dYSI>(8h?4 z)E~dF+?+qnb2l(|nG~FmoPbS25uP1pcFpcB;Y(u$Hro7XH5%Wfke1I8q;TsuzmlOb zYB*3L!Cx1|)1YC5q5E$c#TE_4f}NO5hW{+Q=PB%4DC}E&++TBhY?(&YGK_UKc2VCn9j1N9d*W*8$)yfPq<70&`($n)Z*>~5M1~4rGc!1WH7yx z)=>*z0Dd50EFww{Ym)H#Q%pc4@@q%&vlj!K3Aozw`Eb>vA(}Qu!*{k=zn#iK+(f7- z9u}xA&tD-|ez=H;XEL=% z*eSJMEM%JX)Vi-=qJ5W=M_*%QzVSaD^eKD6YArlfz8b;@vryFA#I=$;v#8nq7#G?1 z)sClW8@9pl)3Qx81TE-${M1_VtMyB=xl}I6>AoduQ>b#LwKi&}m8av+?0Wuo+Bem( z#N^Iy$AaS)?csdX&RxN$bj4+p##VYZ@Z_w_J7PuqA2ERB=$95_aN%HCe~kC&gvtHLW}DJWg;h1FwtdVEvs6G_ zTP|j_syj^Y;+?tY?#~i=RG;eMU7>1hZ}MQ6R*HvKFsrgbi+G7Vtl^hk`IC(*!>y;v z&_>G|je3)3Z!s&>zMNiZJ?!OC3*xfJI%)&Q#jsm zh%aKPB!770Xw=PsfVTV*wcb(Vo`)QcEbEmm?s8%&GCbv!f7yJxff#&x|R4U zl)dEmb8fOrLA8-nn|9$+U%S+SfVuhR#2d^rahY*Oud_RT7i|KVtp%zB6t zl*)4P($}c4S+-tI4@=*or?fJ?_G~V^EY~x>sneFTZNH@XR>JC4<3-qgje9v1f!zUL z+)eFFcl`vD8>8OSU_>Wx0lI9%Zln@D0tPMS&M}(S-Z|;+@Z6E!P!pYp~G0f`L zyUtn3)KK;TTka!vUg>7f)>RRER>!J9?cf*oBfOY5ziOY}P9GS2_d-QC?5ql+kIb5+I!e5!gsGHUIN zP>m_Qh8`D-dP_8ktEVYDF%&WWG+t;Y?)C$jlx&CA+IakN88qOk{*B2hwgk5Lls2kTdojAhCQIFx^0Oa0o_2@PSv*$#P}R0f zS6@7Kae|(|<*rMNRjaD`TmQ_euWkYmo-2p}?0{5Wsg_7wV*wk9jU zPi4WP6|N!(b$lQ||Abg?GMCn<+sm_RjO^utP$2b%F z+S$oaa-{k7B;41p=c5^|T?Xrodd@|RRMv}(?>9etabIn;998J+cdRq_0|=(|D08x|e*9;+UW%|rNSuP=VZGJQ6S$x+7xT?LG-j!O_Pk21l`N-acYI6PgV@q11| za3OA{5@mo}x?Rlh7hrOnpQKzcTZku17xp6G=&%`V@ud(aKVobA`S4SwTl$IJh1CQt z-2LWJrKm)AHYGc<(Pwx>5Ag8;cLm#Mm>*VpE%hKZjH2|Xb{iK!kB1mLo0x8GH#ZdN zbRL}x6>^lFxRa*~;?He!_ryaOLLtzXWvPY)pY?rqNBznwsnt0iXW`IG+n@O(hfp01FVD3zYJ>C7<`(ic9ShQ>)+65#xv}y{VM-7nz-QD z@tmov!cYL3xxDw04}jhfAvPE)7X!m+E-+=`YNW-Mk+AhE+Fs zxIFCF;Yd#sqo149vRanyCND#ME7Id;i(rxNXqr(K+q=VjM~l6IeZdHA^Mxn8AzOiW zKpC~P{ZOb+8k6Ny%Gu{D>>F%2{KfO}!6&W&oR)F|_)W!l3ttaU=qI3rV{%j%o0m_N|1$`tIbdWnyIa<;PzwjQHa zS2MUQO{F_^`bww8@>PdZzsFK`Rr=R^Gk%>+`~Xmuyw(zHy&VV!LG3+m1aCD~jCN?8Q*04) zR*gI>PhP-H0aB%9?{?t1hB6mhO%tSrw^UQ#249$6{Cpe2k}#|gZ*O6`WkJUTVT z)t%0S4{P_&ISFQG%!w1_?LwJ_gIDRqt?AeVIIqmU-;jq6No7%N2VHrJLM0aUzwJ_V zoRL%jWtWlsSYHMH0`=`XdEl{tCgo#zC+d>+Vmh_s6yn9rN>M^VaYd6+)dd{ zH{zp&6{r5vUT_0fd#k#7RIzUsVMilO;kBz#5^zf^BSPyhU=7L^DI5F7`Ue-yk)$K? z^YuCwr=}rxU0t~@B^_fxt4)7weQLxpW{pYAjsh@xu(pNJgmK5T>C1YH`NmESN;Nx; zcS;uA>vb=Pv)H%ZtE9Xat^I%v=W)garLM@U)rBn`)E3@t;URH03)v{VdF@O2d1|m1 zN0#gd_Mj?j61q1ElUMZSh7=4MZ|<)8%BPrZuHF#RmzuHETED3!^)xk`nO^!`cPF3W z6Y<`11zJ0ulxd4s*Yh)m51G`Gxu#aAD_=&xS=TKvFIdgqYbq@Fxo7e{o=QwL7(aNuxe*v1#Xv{D@>gQXf^FYv(veKi! zK$0B3wARbHCbNEt88+W?l99>m6R~)%k}QRvd1qXAib~sIU-zuOQN{XR$<)$%3j8a_ zufgOiy#Qxz@=WbDlH2}{tt(A>@2Y>_$CveuN7aS~RWwS`aoa90+P&XaTuVl&Qx5N^ zeV6Krg?~_~3zku$?c=L;KP9mnRy_UAa3*-@soeLSY5ntKn!sq~05qeZTB zd0Nr2U}UL$d3TfgQ)9Em4Y{cLJ+wGw=^LW)tY*gHr)I-JaAzIZh_7xxX2l@`reVqK z)$T&i^3b%ec~ikZ!ST+Vm~3-F90DO}Mb;U_jHHdo&EtAo)cdg`&Rermx90c~=kGt^ zYxFu_ujxRq#rebFo#e(`#|x^dRbgwgDADPAY5}t$Uz<$Kor*2DgV~T_mD)Q(qZ1Vf z>Ib%y_B4yT2B}h}TI8C`E0|1~%s>UOtIg)E9A_xg=w5LM>08?om4HWi$?_=>gi^ZZ zobkIioN0eHLGQi)2#scXRXmppLu8lpWD(<6 zacSrHD9@>bLI#h1=WQzY=ruqzPUz|s4r}wBiN(IxE8GVZOMETFO>OC_=tvBZoSVl| zKFOTEa(V{qzJfEpucML!?1>UyJQ(_M-zIIm+F#S8&8p@D2C)Um%7hn(z&8~R3p0GU z142a=k9iDetCQhEpg!#coN?2q{UAJTFA-&MZSkO0Zbu`#%{SDf%}0KF>%L8KE4A3m z@K z2y3G>p`}&v(U7ovZ`aHAXZuB@^tV(R?#`wte-AhAxn(YMO8?-X+oocFpo| zt1bL#Q+DsYvt2ubw3Ht6$u!!S*fLW`8}|M(W>14XZ!6xFvh;ElM0bS@?x&qzsz$UL z%?}W_Zpk|MC@~7j>#1j#^n7)D8Hs)(;w10+q$Zj89gD%-=cD_jn+$WlUK-sxa;`?I z;wqx!ytln^t7oF|PX?r>&s{U5e4aW>+6DNWS zj|5$~?2R69TS~&yIcEeRJ8d;7g~o=x{>A^Ez#~} zEk-r$9Tc3Tc1_9mqvBO-lDj@l_waxmsVa}}HS?b`7ScS|;e`zkGZd)}f&sm?r}2+C z&q1-5H(BO#dRHk&D?el)Gk3oP7VgWwG_~{9F(b62Qji03zxs1+uw#s?Ppb{BMhY&C zh>F;(W|NAtok&%6@=YSM28sBr<`=G9JqoC5^T*}{#;PVjf_HKGvV>@t6$Oqv!m}-w zz{0VP($i=p|BVRwx1VX-QZ4`(jZAq=-?x>DDv)$s6@JG!AQnzPDpYP zc2fAI?wF3u%d}^unq4uby#=Go0aHIEFo^eguI|#DL0zxk(Pz?AjVD^`!DUR4Lg>mQ zaUex+-B#tIv$iVmEt@s_u z(-%2(#Svl4N@QD|;xLbfe=sLjV<0k61uUiadVM3AWvDeI8AQmngjia>m2x#?=7&$? z{3oubnp9ym8@0#Vx{aZnOEp6qkm~X{-LR_h^_#NC6BRb!A-A~PyrN{m7pYMxRhbnE z2>zuJS8d$Pg61fva~XMfea_Akc-P8GTQykP(B}7d`48%i@CAcqHW8zNU@M+5djn&` zz{2S2rjf5Ugg#&OIi;5Ig*EqmZb0wy`8lTiKsK}mHx@JX0JY{YcKdVf5kOC zIq`dTFN$Sw6$%tU${g5xaQIy5o5%9VX;|#Nc~espEra!ZOv?A6tpPEfg|pTSnDcO9 z2K25DU!+H*G1G6~xD-7W&Aac}?y|bJ?Y-kELm`Jx-iy9+YL3%tIWM*s^ zN`(YO!g-K~N^|d+*2@h;{y;Y{9W6u6m2B!N^3;3tt1<9)! zN@LEjh>UYAITGz{4CE{bRYeXB52k`q4s&aP>|gn39SL6&F@9)Ar{L55Cj(3&kk$?? z730l4Nn6bl66f$^5)ffGH!yKWml?#;FV&nd49^Ds=xCEbQtM1Xy}9ov`N-PKYN@T$ zr0-l-sFV$=Z|`L=d`noe`^*Hdh8PXi!VEmn0MKYT;+WCPm|tErT!XiiY7jEZ-_mkh z7$|Vka6c(=?1)g~^FkMBzg*P9+&uW|G67otok8Ka6l+!2P#iMI;hio*8D(f}@Hwys zD-=mykPV7_Q(LKZ(5ama zY+C{CB|QUU0Cr0bt>#VYV8lG&9PaZG!3njI5@oWFFoj4kqse9fUV8Zwr&S=5VcITe z56}9x3>ZJcGom@y0B8Gbl#D(ZdigIP3Cx5qaY83fzI4I$SRxK1cGDE6p(Y);M6j2bnl|U?I3CU*m5C%v8Qkxwxur>d=T*Grm zu6S$vv)WxMt7&H8TPSQl!^iep0s6Sqxf_1pIl;O6!FVj(bVk$W`&(|i`j^&DdT;g4 zzE|tsRMVR`&H)rA)SQB{M zDyOYRHvDsrig4sHbg;v5br*ePm~WJiDVwuqWhu4vh0h3lzI4fXMg}(Q#{LD!(atu z;5Dv7Y;!xWQQPqa*7G3W49RJtg)GlJ?f9`8!b#mz7~5`9Mn1Nj>C)xAtckmqO>|TQ`h{$bCW4}o;>fy!V>3s@%P7q5L zBk~Pgd=%u3Z3Z$kA3-0J!A96hU-Ir`I!aUAFv2dkV>c1!UZc~$P=aM0N|sTO(T=8O zxJGvJQDmOoUbIgVRNaQuiD@wsqc-LxQUm@*fs4#mLIC*gehnLn5R%YdrAIagkc^_|$2bOD@H!f4@25_LY9Tl) zimQE`Z+md`l6?CEJ!Xh^_AMi-d0WwcjuQrmFiz~P{HqI&mkPdXpn>w>gyq7p_2 zqU8#VQ2tnCz$$m;!wDZfZb~N857d$LcEK1ElFUK z6bMuh#=-_9wlegnn>+5!_NHbfQ~KD2NPCxu6nhFeB&*1!b7Z7U_;kMku-g-8B1XZL zgUEt)fdr<+@XG6-Jbu)0>Y%N*$Dg%hNB6R}-pyqg0CM+p8$Sf~-ZNojQFtqf$MAWK zu7qbmlErP6b|Jziq~1#UmN|Ka4Qa8nl7`=sbDMv@M?(jls$AJkmt`K!No$1~hQvA&|N*t^|M&{%e)*uZ(Ap9>uJuwg`>Kmey#U{1no-xL8()D|mvT@P> zCMLnbJWoSCHJFQ+gF7zLtN7J4sq9_eWMtwS(=kC*XIiK9j6xi7vXN?D94arqsjlhm zV;`X(6-y_gBabAaA&-6Uy_y?sq?i<=7%#lJT%tyvh>ry`Hvw`ws0cEVRzO`j~UegTpSNDfVqel4&3HU}oMb zSK@OzMbOganYw`NtCDPLo9wrxpvyW|U)>@5oGxwFbMY>{!D*7~lFavLo9gMy1#+ZY zv9t7#n|4Qp-;pk)#rknVZ8g|YV{G<5rTSK!)atxzB(asM8|sf_AZ1Q)UaNMrKLFdG62sMMDP*uEH=niEQ1jm zPb0bFGc8(eyY}%Sn_)UAm`EsbL8UaEQu_;aYzmIX)sdM05r9|}a zjpo{m?iI0`WE@&7=rQ@}sJ#xL$2BVlh6lpapHgy{`oIEnTK2e6?AJFk+ob&3F*8QmO>dkvfphy!V)sbyU_kb2)(bSe)*4HKjxHMYnCvlgxH zA?})dZ|TS;ktB*p7(I6tB1TC!Bwztt?=--CF*-wgXcAygUA2<)ojW?HgRAGk@T|&kqw}RXBsIg)DG7->c1-fpg4Tl9Xw=ru>M` zY8YN-qgYzW9UD%7{8cg4WSaxH)P*4qa|Es~%F%sn(O?mfz!cQZ4tt|<2G%5V9To7a zjTuy_=TufnA9j3Ax%n+|mUc7BINTV5G&?Df2X)#{nvoHtg3Yx+39&#DwZQ0kpax1B z*8tE!w=#el3IJWu26I3dPz2tjLgQ4xY-}%f$O2Xm75NR6SkO#hxz+;Y@(K;$l35Lg zpDV#|x%-teo|+d%7~Hg{?#$u!PL<3jGmLi5ek(MdOOgnQkE*LD#P>bdyN${Ao@GJ2 z4;d$xBE}nw5u#ZeKyP3t?+QW!lMnAn$m{TdZ zauZJYt{w?#9uhY9t0Oe_AmY&!jSVCLp;JUaf#0Mx3dbzM`Qecr`lM8tE0 z8)VqX2?fV7AbT#52+^2;0suTZHbz>*%E}`d-8x4A(O{E!+-YQ*#m2x`3!g0&Qk#>@ElDMyGny~tq5=rP(HRUF z>TedE6Xp(4kD_DR!=qn+in28tAu4Hs)zLnaSz;tTw_|~@2d|pZ8FOq>;@0I{_i*0C zD-i|>l)0tAjSa1RRfI<{mff!!9S)lyLtUe_Kna)*X$)TQbwCJRe_{Ya;D8!jI;J5r zYLLe;Wd^uTTICu(_%C>-BMhZfD#e&Op7DVG(d+r;Koog zW{)mbQ6zQF#W3cIoKCE?5#2T|M^kh6Empe8neKFoM`}@0irNPtN`St z4(lU6@ljKr8B9_zw6xfRrIxt7tfMTncm{i}Hd7!%U1ER}G5~OJBYjW<^9PG_+n_bvUwcZ$j-p~)Oi?l8~*@gGQmF_!5pxMW`azi?YIOB-{hrE z3!P+*N8ES>?IL*T_}dj@8DJ;dVd{dRD0kT?zTz~OVgMghr`d~`ba;$+)Hr*P=`r&n zUrCB=#I%rf8eJ|{gDH(*Y?g{J=YoAwH&V+_BEdE{!T6pPg3{wM)48-YM7B4cqmdsQ zb+Xk7ims9}4c_0Snu|Nn-jln<;4j|?T198IU z^okZZokoR4q6`-tsqUZ=H0u8Vxd>>XZ-88>qC`?jcOV94x&WFdWY?KVfJ=L`C7S0J zeXCpKqS+*Z+hE|_t{2!UTP{c-R5gPrVIE4i9Fxhm_IXD^jPa!w9f`!_Pd;XrwbmuU zq>V?hN0BzN4oxP|e`wfbI1d$9Qc*)3RLsce;|@9pG#-BS2|+2ilZ>+j%^cTBe^7i> zyCg1VV=);TZ{3fIJ0u*;o;*p#&URMx-9^$Gn0+MAse4CsJz=tojtM7|u6B`!;n+WA z^b`}*vDMj{Vs_4Bj;}t=ZEt5qrQ#8cdXy&RCi)(Asg#G1S_i#f6jLBv*C*JfM2|mI z2zPs#nNGuG0SP4lIfFB`+nNA#opYwh0foo`E`StVn*;$lJ=+60?ob3p560o(#z@*6_sDm5zl`?IYMI;m_jl9aIm6l}|m?eERJ}XH*Oda$w%GW+O z4Ia>S9|c_E@JTbb_NRwZO~W{TDMbiuO#!X$ngc@|E;duDqT?CG5TPfR85|m-p{;rF zlkZSa$zx!yst0C#)Vn{3xrcgYW`HBNu%ojMV2JA9oOpgELDNK(j^Dr)Z@~L8#c{U) z(&xJ)U8VB3D6#gRlCqv*2P9WCr%^=W_>FU>d!%zk+;4lRMjDn*Sv9(%J#Z~^s9Pz% zhFPwl&6g=R7X@5YG2RjnBhdme8mbOD1mE}WTIfMv_04OK}0kQzc8|r{C6ab;b9S{SF(!l^A zaR&Ut0CR3hCvt!~?`NC|hw(oIV)YTo=VOpK7$LoYZLhaH+KckAR8PFxTbIT1rJao? zsjp>3jWJokn}RGwl`CTAKrZIyAOU+?`=%oU+s{M+(EBK>riYF2(&s-sj&yCY8`Cc_sWVwu`VFJrCdSkzC(@F;i@qe(n1@voz<&Db=CI0|y zTw@L;2;uB8(VRY+z{vRQL*Cth@^9blR(71yN;@K@PYW-0aOqlF;ufUxP}T@?<_6pD zq#`1a7zzMVblm_npbX@IFdj$)WZ~Jqidfusu?aFVD{(r5Q(WRbR_G9hfgIxP&dH30 z+vtELV?b@rvt6~yq_$>{{SnfvG1YLyK<%xaTOg?eOih^sOOc$eZ(hKck(J;1CKf5 zHmQtgaJm4MmLOdw2U+ZghUu|-+3KppjC7BU?E%&X`G~*0p+YfImb(seagLozzSFpw z`1U_ELO}XjQelL*V`HnmN-P9$O#;E-p7H0WN?uQ~@Yyu(|+qT3l>5C>jZYg|EG~ zRmtdC1*ld_3*2k3u~m}X4`dH@4vPlKT{_U*~Hv?-Olo}+C{lfGA0DV1?*5Q(P z>S&l)(R-f=%+Hpd6i zb;&gHuuyR(2R9Gn^_X=*4s;S0hYg(F+V6NEsYU2VeM+8M1uzw%*B2t!NDja*&+dP} zc#DT_Bg{baOhl24%_7|rV>;(&Tq{L{VQ%9- zB(o@B8L47;xs}|Fx$B@D&yYrmb4ZMv@W*pk<+NE6jAU+(Awbj2?Yld7r^m z-kiClN-0HQ8Z^%{XjRc%q-CfS(3beRtK%$`N;uRR!Az`=L;%zPr~@}Z4L}YE0mF0v zwiZAI)3L62u)Vc5=A$QsN-HegxJ!zwxMLBHvXVg809fXcaOR#z{&!gAoaQ^4)*8bt zIO`0hk;ptg!)Fvd40l3;8c8Cf15 z#n??rCehW#U17^G1x5Lf;B39F${WYk{sJ_J_?v6^0v@w$j5LBd$t@=1Z#6I(^~PNe z`X(UUI+|*_$Z6qWl1W?|#*Isf&;X+?i6gb+_3?IT!7=dt42?L|YYXaSXYoMjNb}_1 zc|^O5k#6@OyYlAfjw4Y$!3R>5Q8voCVlTN0_{#+{jzC?aw4`CSWB|kghygs10w4?< zpbIQEtI_-8)s`OA37}F-i8tJ!V{NJcZS~OrNYj|y^FSSIvZ2D2)HS?6#1xEeO?$zD zwZvV73kHMrP4(z+VyK*!aLeMFSw^$PoHtR!c*K;C8REGxP6vi&Uct>jFKU8*WuFvK zfE%h}AFH+r44O9B-1E^UGmtUu1BG!w=DJ5jVv@%8c2R$uN>Y+)B7(z_$7Br- zuu?$C$O(ZgEX?s@qQM@3!D6Q1&d%xSs*X%Y8j4r%XAh!wPk=4=xTw#&511t9KY}@BJ+I5_SQ~F|k_2s?o?)_L{AWVQ;xjfG1w^9bMlgbR z)1ddLOF~)DpR_(JkBIn|rlGEIhCic)r*H@SZc=Jemopl~Bg$yblJ3oQW-vn{vKQ1% z9C1eJB$2_aV@1n}&;S$802dj;>oAN~qK3W`1ynA|_{jvc+WfTUuY<}cn$)j~87e9x zh87pf_Xf4C-NftymT;+3b>|pZw_g(2X#CV$yeo=WoqZ;gI!j=5r!QI_Rztm$QbYF&$OaYN; zcZ6_OIm8k7l(Z6xdtcIK`Z$2*bGpGC=`lFvYHM|PbhPtTMoS(k+*&%HvNrkx4UPW*;-M`yCAm$+7#(j8V>98^tjjEC)*6Sj?BV1> zX^VYPRttHXrU4W)_Z84gH16Kl{0-3d8agj+4kL_A%pkU+iYIN$U&%^(&m<}MPG50t zLSrKUUiY$MI*(^`k#N=#KOAClG0?zF6fr+TG^avGvt50?6>d#DpnCUBBZx8DtZNpj zudA25sGa4`JcmF$fUpQrZ&p1L!YN6)@ouIe3rm3;1oMGl3bF^&%vmE`$J*tt79m{+ zlv6c^3i#f}wa#mUUM|u`;`YqC0LxQ3S-!(rjBB&c&~JIvJefuYZV)*x@QNwxZcZ#7d* zZLu$ju4DKGR}Ny*(N+ez&9j*H8@5ItRqZ^%3Q6P&(0$2_P;I%@AUdr)-=zBkm4w~+ zZXhf=HOKz|%%S){a9U61j!`eJng&Kw5w-Sv!{dm!s-B)-4IDR~srv@R-A=r(p!cXt z$TNkI-ZtXtxSNSxQ5&3TqH&6qwz0|X>$-|f>d7U_u#GN8p7F#Tikc!xMTgbmb#YSB zQ%O-#E3!uvV&%m=fbJ^59mDnFj%vDjsv5!R5yI@k87_PT>`kn6>t$s*XF|G>>QT{A zNncpnc#A{c97b)lX+MIsyeyQZodFJsh)e2#FrWlL7=Rqz4f-GiB>*A-P=FlW_PPKn zHeXTjNwP^B4i$)1;ct$rj;309nd-?Ki%-NXvr11>R5V8MMaFd4{v8$%#PK#pXK0SJ zHu6F*b8l$A`fGJVi;l&Krol1p24)*2MNJkX1w|mEeN+<0P23vxw6u;##q3g5GJ}-T z`?BM>2K>sfh}Sit-nGyo--q!>VK~(#d}N1H%Go#G$5HUQgqDPny>`<^#_=Q=gh%MB zX_+V^owWOaQ*SRmWGVPDHHlh_odmkFT`&lwV0c|28#RT z9a9ppc^MN+-IN490UaL;j+?X0C78`zO_zx(Sbs;- zNI!zKkJmhPKU6AmMNSc$zMq` zsjI2#7;Na}Yr*y#tE94;C|WXXa+uQNHISPU$(^Vg9dG!hP39?%YZ3y6#z51vv{N9B zw}!AB9}>f=p{vElAB%?rPRfSb8AjPlw`;Gp^jYf7r>4e=P|k%mJBL=`6|SMgDdeZ9 zXRRE9#B}$0sncn!q7_y&DekQ)5dbSm2H^l~_=geVTteuk#424Ye{{U65ZH<-isTufL zo^Wy8iwlfPic&Ga7P@8v4@|=9a@dSkS+`)A1GujqbZ}HtK`(P9Lm4~r_pUD_F{iDM z$z`0}V$CWkv^J`mw+XCtGes>uL}taV1+E2V(n!B!bdMFnIK~&@nB0Pjxu3ynN$`go zU9x!+H{_y|j;L=_LdNiF+!GO&jhtR!e|*AA^a5$3eUN<~dzpN4pV@b*1NSn(t2 zM1WL6*Ad=EbaPKpVsuTxNdlXW#m63S-98J7M^}b8OM_w&`b89@QIziAYfhg97`$jC z^SP)3Nm2u&Q_9&p6t9l@!-_=Xr`l?&N%Jq6KEJWfIg+j*6^3DzSk5a?hS9V-dEJy; z*bbzgKns$31oMqVZ2Uux)6!v#;hYv{I|-$A9vu<-TH3ewaJSgw>mMO#mXe6<2IWF|vroTh=+vHYPo`u}KQB%YmCpHk#SxZpNM+lJp4SWLZ*XqCQ zJIJZ22-hy*mX;s0hTt4m>f>}Un%lX>xV6o2u>@&ini$q!H{_Tb{{U%In!0`(uP-m}@OZ9m&7^{(7TeTI7=JUL z*cR(`V1w{19&C3Sr^DbD4>_cH&_@{6&L@xn6r}L73v*!Ot}BBWsi&aB8t5=gIx!6# z7Pa)%0z;+s%K<|5!KE*4`%*K5|##+ znRzBB!+bRxp}?sbjAE|P;+2uw2#EehGry5?H{1;;AFi#%F*&geN~qM;R2j;V{g*8*!UgJEBEz-mW1NW5~GI2)Ff^a|SYz~^I3dN{uu^9mGFy}wJnTGoS z>j&wsg;7#(I4y)yMJ6GJ)?u}ermd!ynxTfyWQ;8%;)K&BfObD2u^ONezTg1YNK;);c(w$s*_p)Z-emNb~%j8LrE3PWV%

$jD)mZ%}4N*;n@Uz3Jo(n3mn_1Eiu@BjAp5;YrxM0w#Bk!s2 zseWwEE;l6eS4LQo2`r*K3oAH^ggn`%V8;+`q0@hQx_%Z@9}!;qXZI4#ah4~D$mer^ z{?etAEp-JIa=xCVXNl2S_XkisB-q=L*-E@@jaxv^J z*{&9{j&e^JAk5~FN?>jrH^lUKT@@&;q-|4MRUn!-fLkOlV?k*<+!1i9oE~&0rKaJ0 zL&F$-Z+nYytk0{Uje<&;3rLcf9d+v8G@(9>a*mm1jNz5UY^^IMr*UIkbT`o^hK_^8 z?)@*>e-7fAi{+zylroa*+S<3|K5Dq>EE4laGR#A+4T{h}nu?0260CxXk)7p4@-{fy zKG8NF{aC@{X3siKq=>sNjy+aMT=d~o?!Ily3Zt(vW*ed zVU<{xBU_1732UmRsFjRtVe>q=hO}4o&GIUYE#k{Q36}0BFi4l@} zqC7i`qNu@+364|xT@!EINqbF5?yM(qz1nmt$4#f0m8mDWS&QH@P)Scw9P!lQ^X4#A zvuE3IM(uF8xGHd-bm}QYzQA$XDY#=0;f!uVDBjaiLsOKv(@qB3Yn9s{YK*hG3~Q55 zYYp{N17xSinFj-67!#v$lBTX1*zs#LG!Q}gDC$3nt>isIn2Q`E6{^A`ukNhO?l7D6q0@)&?z}3xf~l!MJ5NrF*VY@ z40jj@SQu|f0sW_ME4+o9*6I(vq9mVFUaZD(jwZy~BsCSa4zpo`He56T>amT`0ni05 zMHDV^BDKIky~(3nstD1+1uaanVvxw8q=POCfu7anzFIcWSP;ZR*Nv>7lLG zIl`8TBWpGy{{ZVapTI3iYT23W1#6}u5C$LxwXNoW6lzcf+a+aAC56aCtk_r|et9qW zG$>;UlUt(ehw5<3DA;jaH`Ah;9H6#i6X7J@?K*;epse*CxJH_5OqMd>G`Ne}?jNr7 zx4P%h=K?B*`!&k{0O*_fDwBOluuM0Iab6RymMa#u=Os-QRCi>f?7fHo0C1+G&9NDL zLaMNwFNkU6tiT*8>jmE~6D#%K_=kOQ`zOWH=uO8)BUp-RnhZ)A;F3rxY2?hui?z|X zeZ&=N*n`~N_<%*mI262BNXAErQheChB@cL%thCe%fXMWSJQOkj>0Y!&bSH@(f zrj}UZb8|hd@UrIGyJ5dI9Hcgw{v+Yxg;GZOaT*D#Gg;76P2RdOZQS58`++J{r{2K| zk<%p|QDo6!(1LE#Sa0Uwe-gAVr4r}|h*{W;Q3m6_eUH4Rwj%cgDTu~`bOPl7A^=gk zly?EmIYByYWH1iIgYZ5rj6|;!bTSAIv#%Io0&64G|;!F<4TEXVxY(A+l){% zX3lLiWA-KWhp^ls$0ESl_-cn5d!*q?r`22+96qMZsbKw{Qh!HZB>9@$4Q?r>!>S}} z*yfN+UdIa%M^V*Dr6A4?*9gRD_}dGMhik(rv1tDQ>Z+%{&42zw&!5#jboRwlQP>>Y z+|w%QXP~Z{lBOp`JWnikZe5nVNyTP`&&taBN$C%sXvqWO(36UKF*k*i zOP#r9b9b>#Y&mXP@V*mGi(}OBVp51O=<`ih_Zxi^24?~0K(HQYZvq429B!i=$15x5 ziNH%C?%FnFV@9+NfB+MWQd^0>g`W-Zy-qI^u_@l#JSLgVH5GGc*6ZqyuJRpJX7IEn z5?o)2YFkX~DwV>Tf?HHd$i`DUov1G(a0P&F!paebR#`bUkUT30uExXNNeS+m>(3z! zia+N(*aS;K7PPo-5lbCi7>W4SAoG?VM{#To%+PZUGrWRrYXPEzn`~+(k4ha+ULHq| zHxsW=w!KlC7-CNFXlsEMbE??jIa<&B(_5l1W>uD(UfOMSGO_Ie(LZa85P%~Bl}vn%va1 z{2EkcxhU*k)8e>>9P#Lt)esPK4(?Lh9=a8il{02pv44M)*Hef%gAb&|S^ypFvE-Z& zDH~()x=tQJpt9jyF^z!i8xfL*rR0Bs;ugzu_GB7=SOlD$cSA`siy6Q%3>Bt2rUr&h zkmYc22Ph)MX<{|^DaJ}ni&z`OoJolA#xyIi`La7MSz~y+C2uyka|&%`5co4`#_(zm zBf;u8n}?$jcU~&&G&=64{igk&GNiAskO8U7{eu(lS6Rv9c-;2ZX6ql(D3ypCyTmfyA@;t8VFp=_}_5p zKcYVMRP&q<2Ab$(bBXUAsk*r}-WT4!qjW zc~!Y7XgH>ss>CrYZx+c7Jw;t@L%mi4_dKgPV-Qpn#}{>u-vto0@2T@)K%O385_@%>SCM{|~+55ts^)Fx}D(Lo|jDtfOk-O1Eg`2zcPTp zEtf5hVtL;7`KvRjRu&9~rba;|MtNGoE*LdykDo-GR&#(-Yd~9EsSy;nD~LMVq5wwd zZ_NNcKrTMdByd+cXaN96 zGe)Ofk57i`JgcezTDs9qJX2Bkv^6Xy<~hl2`CFLym1HBG^&uyKJX;zVoXno3kUpiN z&z2~I9VeTup+0KpQ)_LCuW6 zZS2)YkuY+3A#Nh~3qBCx%A5>M-YjiF@nPW#dV9!AIzfb#A>pK%`9vH zk{H&3gD!hN)jD6NngAjY=N7k1v5x?M&$T8= z8}mI43dTPZIRjN>md(eJ6`3a18p}89Y-AZjgU_o0M<4aR6o-&iSYMc=1K>5 z(KKGy%1O4Playm0Cy};IQ;yDX_R`hML66W9Lp$){JX&&bw2b(Wrxl0fL9(8R{U~s&U)U;-a!|c2pICRhurOe)pSiqQ{5I(uEnzu(SLk3q=wZBOq^ERNU_wP3FY%rP!~2xq{JgW7cuSfI;GjL=S7wU#6t$FbyXj5DsttH zS!2xTPugYl4)d|MB^L%sN-P4uysoN!T$Kh{WOivJbBS|_=6az#Xbif**@x4^1fGFN z>X#Sht;J?0ou#%mY)uy?#Cq4c*eFf1a5fx4o|%J7Emc-2h{qgmkVgb!nw6Sf;2p=Y zp=RewSS`kcHIxml;XFdBhY!Ok>5L}&x@ksRIEKC6soP|`PFjgEIOZogepXb{hYK~Y zVLvPV%cP7_0ydJWL$gbqNgRdLh!Iphl1%4C5Q&G?U?kh#Py-`&M~5Z?9Zrd*od8=9 ztmKq;Ldb;aWd<__=>S|4+K#52*tPjyFUie6kt!`}F#J8i#+{_)WNmh5Z*0!rJZ9!B<;9e^4WAZj&d8 z!J@#p^ETX_N>QfJxzIH(E$Hvh1Er1Nf*j8Y1akyx6uUMY=!#jv7Y!xbp+FpnBgAst z7{~O>l8Cf)#gQ1AIv=J~; z($fxt+kwo0J*zcG%3TrBRZPr(^dXtFG}SpIH1t3*q-8cG+LNH>N`$1{K4d&DY#jR* zrfwg^)l`fmh~;xd&F(pTmijX0rkR$a#M&yQll&TH^K`9uz#q+AidhXq+{l?tnB-y1 zTgx%r{lnau77Pkv7W|L~6PedQ3JGgT>!JW+08oGnid^(kQ@cW8;(Q82q;Y*z_6$(FzHNGeu2RZ8Wt~NZ6u;INV0dkl$t1iVp-FmPgTJ zQsL4WD5sVw9K#uOM1opHi1rYNNxj9+kv<_aVZ(5+*noVIzCuI6(7b`CFI7*o(2Aa{ zt(K|9q&1@HDt=^~yntU-DLk62P(^NR#@5c(*pNq>91{gLNZR=Z?P`mrhN?1l;vkO{ zXWXONc@ynC$H9skdGkRm&}Idt(YUnbIuUWm^FxEcDXg0|3y+F=cxZ&IrlGm--Axz| zmzd7stGZija#bdNV z!P#CzT+^Yk+$1ze%7X;ing!0j#TK%OsbSv{uC^=!#o!az<0ODz54Kh8KL3Z$Txg6H82w9T;~_g4}@ExC6D6 z%GjqUVb@zAG%^n`IUU%#wg3 zKp21&AP2C4d-OmKbdGb&&gBCvY37qFT-hGS0c*9y6-?5}vX-$dBCnd2=21I?-Rm3O z&hxsblO&|@3t5OySu>>#I%?-`eX7{OB9|(7xdqBz7|djgIVVvfS;M zgKPZHxk@p}X9XPN#4~cRDG7s^+kGC}UdRj*z6Q27Ig%T=kzjVx>KW9ZDoa7|O;Jy9 z*EPYqkW^&_A;wJ?H2hOq%6~+bM~FL@!H}O0R|Cu6x}sL=b-7}z(U$x-Uf8&Ds}6Ln zIrG_|?hAGMmTRa!)kzmpYnKL#JwsgRuH9N2nDaJWNTURq1;=z6)8ct0+Uy3y@lql{ zbSMF+0nPP-vY(9!j(XQ~xfC&CWW{cT5xPK5d|ykH4Q${v)gTI>taUu`IgM_15JmZs zef}ykj!|SDrQJp`J|SmMO-x8Sfe`U)errE2HZ>8{;uNsN;Y}ZK_gogkBbo^4TYDyy zp5z-ytu=C(!D|Cs&DOfJl@;ZTnUdcuuW=^YdsA2w$rGUN$pnjoWhC+^91}$ofZF!m zNRA5%YEb8wh6YD0B(=`DwTR4g^94R!f?#E?1iIQ^nvMwq$N;(sn8vi&<`>&kn9)5f zOqAK~Xuq0-n_Cl#PjX6t=-$UQ=Ij|kx>3|`LU?fs%3FZzg4~YfaCsjk2~v!SDajTz zxUYST(ACWRu7RzN*5og5y-_+irzozak)C9j4-ih*@ietf)vn6%ets2gtXia#Dy;kY zDa7qAvzjfKIO)>*Em$aQh2^ekHu0BSk+2;TB16ppDUIXmm1kjB8RdULWf_!<+z_JT z*63niMG!FnD@};f{zU*v00cR{t@ZLq2_lp*SPo}Yn#m-~$6_v?0U4#I$}O~GF}I%U zH!dFLwDN~OwwfkpiYCD&$LgL(+>(Tw2P6R6xuiB@M(W;Fius!#SR7|?E-uP#e!gkN z0|oAWjj~_XCq*plf;_rpbTK*ENEa91%}9xT#Q?`H8qBQ?W*-hv*4PV--+B3_(_4Z~ zZfmY3yM-JNBvLuI*xt#JV+j@r5hHRDa>rWQkdY)$Pb>}5;M(03WSiKWTIxg#9UlHG zbWc(`6SgwgvoY52-=d2oiG=b-170(Ro9nnxaZHkvM0l-3s_M;4w|EjSd%+&;?Qtq9Ih%Q@BSPBl4G(57+AQ1S=XHePnLQmG`o&V+VDZ{pQfNVKOm7d)Gy z&n2n0FG5fR4H64F;`T`iy$GG2SY#r=Ha3d^zN$nwB9Iv>33bV_+^KXC3z>HY+i*5b z5okt6;@}!Cbxphr4eUnty`V^wp&THZhYnn+c2YrRo+zeqkoJbn(n6eXxVDe*Ca>E@>BnB#XOkGnbjifYO zfKKP2Qb>%7Vl_;NoR9(#LI6Ynr~*dD{_niV?3c@$+FzympaQD!%Gw%gN{X6kB8ILr zB|F?Sk)YU-??4jK?#uf^s%X8X>}Ag<}2UdwqXQej1jnyPQx|- z03|G7j^iYfN7ZL9A>G})Bai_Y4xra_OM^)nfW7&tU|DNnpqrib36L6HeF|a@fw`iL z0e=>qQ@|Z7v+fbDt*(N)I%htfCk(_k;`;JZSVUyaJBYBUaLVZ*sEyIRhQtt)K%Poz z-4u{806`A1(N>d9mr7A_NfA_cJ=}RkotnnlXoZ}K;~EYUM;qOgU9M$?{K7CA4wd%~ zxjMKVN0Klm!l)#4Gal{E1hV>aRn&@-)Rbh?(59$urf{~!UbZQFknEU*cBKF!0CQHF z5lxX|y)^AH8i>;jTlBHLjs zm&LKwNfB(`xI>33u~xmX)Az@^kXW|*Ikvddk=0nRkqqinQ)8$)>O2}>l?Q(gdS?CZ;sgfA-++2`FhrI|M z352bEi!J~x1a+{oSPYSZ4s*U!d;8IV$e5Y>cHa85CrxNZWoT{5_A5%p5^Zis5Z-74 z$%8W+F6Cw|GMl@{QHtMB; zWtaE{4N;0s95nHn9_LszZd8#5@NK=KaNR`>d~!_-;%gv|7Unsw7{J@!!>2`j*D_3m zWX@|S3~_1HY^cFzMhCJ7HSdM83lV2*kPy2o^4MDB=z$YOD_IlRV{y1VlqDRzmPS}u zG8q{Yd`&hZn9!l7!YwVxqjN+~8GKxdkrWUnGD2EKvJL&}IMjI@*&1XzG!HX$uso2~ zX>ZRH8;ePuAM0m9Yr0K!gCBfTW_^!V#HB+$P~D?tns~1m1}LWChia2D*EszjD6T zB8p%)a?u_OCF7USU8j+TAT}2&GvU;!uQ2CqwZhze8de*E*KE4HGYXT6=*%}uzL+qh z6)$lf5-v$tYjBlPPEmMl)7$bbLa}@n3Oa~cht_&?9RzQY!ZOT~5qC1jdmS&$b7jKr zmRgQU#^RgmFvBYx+p*rKPbJT(Z&n^Swfh@mQZm_$Y>%~o)OA$go<_#myQwW^vCM7B z>2v{|+l5QxbMK?IXy~6nOHgO9iAZ52fHx_jHLiq|jBuO>0DLE!Q`m4_;E7=lhD*Ev z(U<|%LNdcGoO2de=GXuNyv9t%hMjjn7uY3J;Hrd0sSXEC)Z@4}p=-swM^%X8RRUMM zFudgsH?a2ePNMG+hQ^yKvpZD+W@n5-@oyO#6&w=E!6O`B1jK+#ST!eI{%JkNwjpUQ zy|4HL$dO2H>w*n}vN0maNGQOD*%$#{_q>embF2eJ&Fluj7y-6R04N7^0O0pz$(ZE5 z^50AKvH+3NzDBXGbDS6~&`!h201*T7mU$Hhi(<*yB+ZTa9stnl=~a zqdf`JLuY`pHoqWf2E?ZcW#CmIg_KW5@YiJlq-m)NYHCMk+wEQuDLYY*G-Ga9bnC3E!g2vj7`7KoV zP2By=e8@WV*HONR$c^6O@;L!uwa0=~ip@!V1Gdh@t<>LZ^j?yR#W=5lOo*yQz_R1< z#N`Mj=2=Im5gM;BUS*MhBrIrS2z}gdac@-|pdcEj${8)BtfhVdO+?BVSyLR(k@Z2x zJdGe(q-+4PZVv#Sq%pbu;mSs(XK1}Ka>*_4kZFB1=nyc5wn0;w<&MZ>TBw&Nt?&WYH5zb4w1RaFzxu9M%}gnCiY_P1vy*g-LQAxwk2*?de%PCbyV$W&&34)0Af+AQaeeR+*7@z zIwn}Q#=_kEmU(ciNpA#NuWK)OX`rR=`@q5th|$K|DkZ>e8q+KHEL=*meF$5F(!Nsc z(hWL~$x$yysN=gfSso`g^@<+M4iO-8WqAM{2n#&@9LmC}_AQSTSfrN z!tEm%RbuPTVk-wT>g>w@1u$SQTlzr-{vI`k;%SnoosZbb!^>9{F_`g|tu8o-0PrRG8a??4d0aC**cVE&j_ehYT}-?<-JrRFr@ zH3M@P{*sd5H*cc)hpkf@>^bfAq;I$tY<(TB_mV`tVlQEyh|%@Q_bb<!Q=gyAPNQftDk^zLjfY-sb(NFgR@2)krQAv+pP}L-!!yDCrh>Ce(dhfL z`iWlop?^Y5K+8N{`;Wn4tH5qk?qQck`kzupV08|Ei@Pn?#MuW;H}hE~!LK9k7RK(2 z>NWU2CmY?8KJlbDU5{zFzqL~?8Fsg($*Y=QsA0pgSfp%*jz=84n|&>AN~u`fEgT=v zoNL25$|G$RV3o#7Dvd`d-T5fHO6%NzLTbG{>dC3;=8i|^rKthT0^QrUzp+;QG1L_iO=zjA9Noe0+jMH1XP4M1H4 zWte;;WEt3NTYhKWRZ^!3Zjkj`GIqfmz%Px5PHYP_tnJ?LUqWiFMei~}htpc(o+1bA z4yuW8+evRt5>@K0q+{^9Ia+hl#z8kWxYyiOPlQ?if?l;-^$vCoLp!rR4R3uM;rOcG z1+)D>a(=m6%#tn~!;9K-JP>XUcYbQQa9d1l{-Rfvv$%6+mGYT)*-qxy^1s`-)s0DCxK{w4eAc^swqHK&vMhppE02!{%wr!5SI z*8QS?6rTgLd&llgUshc~ro!l5oBSQ7=K9><=B|ebvyZq}E4t6#5YbY$G6gI)2kZrE z;dY7m5eIQq`@=hyGFxHf6KBSy zMzon^^M?A(b+Po(abrp0DhIq*iYrgT+d9M9x^y|tJrt*$V zQ%QmbwcCJJ$l6h=yYWn1&1^{8XkWW6>?$(gmXg^u`;m2IiAEU{y;r@z0<%xi`hM)$ zA6aX3JM<|&tmEF*o?HT=@XZIVN2(NHwFgGY5%-b!Dy6|L64MN7@}6}hI3-=QY;GMx z$Ktv2;Ma@Y`eXbw~9X79EKfl4+iH=&F|w zxsLE<(+_<`>fW3WurJ{SW9%x2NWZwwiF(k4B#0YxHjXlwG}5ykF3o zt4*yKehukx;o}Xzd`D;3gSe0b^j4n~$hgg+i-- z7xXi_kj64d+IpVh?DSb&O{{Vq6qTiR^n>~l?V*jtZXa2x?ub1Ng0)y&zj2kjic8)^ z@!@qD?;|4`b9gFihF!g&Cv`<{AbIfVOs+0`d-7Z8@QaKtY$BOmLF^%+Yen4heSvf# z!m;9!S8tt=Jk1TTXtH%};YlSD$hO9{T}fy*NEX-;By!ZqBHIA0r=x9gmO#m069hzq zt)*j}-*{(i+w|eVryEM$tV5V%YDP-;3CRV~@W^w@D$>#(ykpLp< zNQp0ZVgXMh+;g-4Gjlk zhw0mAZpQt=RYzg6rR8WsA^;Leae zK&C;W0FK>4MaYlqEPnYg>SN&xN;6asVNx?lDlvACG?@$q#cx#Xb}B5A@+8Vy>lF75 zi9u;2K!NDVTF{n52%UptbMaAOfSB_FJWlwP2Z4sf_cvVb_?25o1EPD6itaY&eU&mx zVUW~3x$Y&z`%Tp1uz;_Y#`=3z=vY9`0^rywh>hTza<+&-F~COL$9_rfJYX5#E0r-2 zN)(VF32myi01U~KiCs6WtDeTFY(mSED@MhJ>&S6!Dn#8uW-JKq78={4C^kKU_7+~v z8RfWi8wI@0F!;G@nVp8lb+G23!y$1Tqsy9u8qgqVW2K6S61CT5yzZ6&k-v&e0^)6j z?x5HP!s~k#QUc!%ls0E(4R?Xo4i_68eW7Hp9HK}9X$dD)d{CGSuIF`fLI!t;*cBlW zyZ}7PXaV1r$EuJ6yD>RNsfdnH8Q>b8WeZ(F>7fU#*A0qnOHdg+l+b}C*(O^Ox}j&U z;AYBOn*>gDWsYl$T-y*qu?2jNv;5gVi$1k)6zE1T$$vo3(dMh4``>+Yv(&o}&i7ix zg7a(n+RM{$ZfC5Ip7A)+g~a1YXql!pdrAvKmck+nVkwYpX_QDQh$&%A14}5fEGi?E z*y;+cg403exd|MKTZya^0MZS>C)k#w)2S<30MkUW7)0?l#``G95-#vNyBMJiX>*M1 zvv2EaG}lFr>k5>!YW%R1cf)2*;zT|ncjMpd}ALX0FDFg zABvwWe1ks{Cxfn65vL-bEPRNz`Z5<6eWwq4e6jK)%`Y*p%m%M_#TZ^gdGjK0uqOA{ zs$v-8GLhz!8X0RhG1*0uF`KAJU~>A!Nf$?8c~n_!O4tV%V#giUsBadc-fMS4;PD9;Z@BYO*{VpB)x9k?KSm5+0Arh zaz!i;w6RMW=_3n%^<-*7UKW`LmALj0Zb84XFeZ)KiPj) zZamePR-`Gc&Ew`Yo7mbg?hwc3c5l(rMAFk^Guq8<()al;ZEh!P z9XYe|E{(lM&@29qG1+x<=$YhYC+=#i@w;`hfA8*3)haS6doRawoU>54^zU3h-A!@Z zeyRPxkalw`C+zQusqW!J9Ke4gJ4yH(6{0+5(pqJ&njr0}u79U-Uph^bEP(Iqq;Wy3k`NHjZ)DMR!5BIqei6s0{Jwf&sndD^%~a- z-qW;w7xoG5izwoH7BpF{qG$u4%;oBMO4Xk^sV60u)aUKldm1|#m`rP0Dv(@dGKmGT zB9<2pt_I2yA`%6_@=y$9nZ7n#nvTqSp&AI?G9=)rjGdP!rIc99&KwQ>H%jSmk*~QI z@+%$QdnqJNpNV7!eO}_Oj>H%Q$6sQ#2pPcKsR(IqVB>9qSqu?@aCvHm3sM<(3P_BI zoP0L(K#1*`)(J78C(_Lvluur#|Uve=c=YVxpL_>ry~4QiDk zvEglr5?2L#Ac>&EYiiq?o|b7D_QMWej>{!lu#SzB2>l!)gm=B)c+=txJ>m9vbos7z zT8X^~ytY@!+>^Dy5v{yitZ{g)7x66jS_+M%I^A_$=ow`4g4xMjP{KBF_aLo>fLiS1 zWPAwY8k;{1@K!IyC9b7}MM}|?)l%reuP?NGg6H0GDi)ea<@p+D+fJ{@=}~Ye2Jp-* zn;xreOu!8%epa7kZPfejytUV)HJ*`ttL}EJ_%%xJ6rkk(-@xty23D$K+qWB zY)$;v3a=BC^^hW!(x(xdty)^@K>@shI#acSQyf!`t(vA@IB8E5F6n(kEkq5lA; zdp*ZZt7s#pko{-F-JAaaIg6n~jZ}w*qemv^(QByd$fffC08teEnc+B$W}^VcEDoWs zaG9SGsQIq#zoZj>(J3#1=WaM$=}Qebzlo^v7YpL}E6kO2j&(R6uZzUbc^iA|yLOyH z-oBBRACo!tD9#(BT6>2p5V~m;gOhbI7~^CB!?8>O<-S!k01}-wR-gos>ZDl^DNtVk zXKt&Raw0ym!zcNOpFrAvOKK>nA0Ek>WLTD#76L8d1yr6y)(M(4DdY{ihWG~`#{*`D zm$;>N)6|m2xOod)`-PV-?~7Yd(Y(JTUrOF``5UV{EWv01lN!gI-7Z?f$cM$(C2*^H zNj2b#Uo)Xch0d$)CjLl}VSSlV_+*{axN|bf@9fwvbp0c){{Z@9FO|@_1Tl`bS%= zllh}9UIB4W#ZF7_{E=05Un`m3;dr!DwCvfNYySXAw;v_aqsPU7K z5b2IqSt#ns02|)w(F}J~0R-b^ID#wY9Mz~;0iN8HiNvm#)+)K|YKXLZRezyBg7O?+ z#~+!pmdvbn;bE=11Q{N|dkY_CjPl$v9!sE6F!*-}Gcv*(=JzV(3@xLlMF1p>*~u^q z$(^96X9K}$f$;Vxk5uL|zanBGm++r_2)-?VJdd*)l$H6RL{{TPg z8BN+wI}5KXspD-s>+zXUA(pd2>hO zx#h0-T>fM?DG=X(Hgyd z9f}x4OHwM3TuGEjDTx%Y`gWT<`6}eaf_59(L4qWSz&^=6gCRZMXA3vP?T1wkY%NJ( z*zm3e;yhKYd^ls_i2nc?QhT9qVbuH=KED;TqobBz!&1mw)Sk%OXuBe*06M=Hh9S&F z5qHdy_bydmNMrv1&L383jf9@;xx=^@hp@_~OC~buWo7&>k}x(SWzMa~YE)dhBV|4p zHQwcK_8@-pgopeF5Lu=LuCG@LYZ2$E8GW{1vhE zje{HdNEs-Kh^`NdM<3UqO?i;3MRU7JvWtsuepgq^z`xg%4oV#}7@JY0{D=Tp+ zgI*aNFf`bPixbo0s&tawitpqgeuPI?p zwwCA;MNH|PpKv5tHt~NgeAw?zt!0Ru137=x$Xt6zNv-@BRY_R5=4aS>`x?c zJQT>Z7e!Y+6wR8Jc_DcE(YUnym64N+$|$W$6=Ta$CcY;3hW3+LNhpI8gjQ470``C& zKLWNw@=<;5Pcw7q+V%Uq_9TU9< zn_w7j_YXI6_b(w*@^aB=eFDeP+iD3)uYO-0zJ{*(-%#TDUg;cnbIr=i+k2h01qFz# z5W7N=HK?J-m_|XOOPdR+5Wr;~C0Ri5`dX=Acm7+*Q;g*unVz+^D$5ljpUm8_ZqczA zp4hPn*;gLLz-52rR?1hCT1!*U-g-MiNy>}me^gt~f^feXG4f&Z3Of5;!Ho?!{ibYv zqvE{{j~b~@MDo0u@Zn_{abPfdIX*htkw!A(ZF{a|$I)5S2y-&lc^ZZwesvnh0S$|LR zYN11)SFyTcykAR$LHaL;X`m({mor78kKwsq7UuQJP3JGn_53@6I*CrVc0OHS@MyL8 zwj)_7lNEP<*JxdPhWnR3RV62x9;%J48ZqUfuvb*a+{xe|vBK;(otv9p|cxEks15O%3O|Ll6>9i3~oDwx z7dX<%%YTGqSyh{yw`UXWaNmu9=}8y+%elgOmCIvDYW1{sC}9yTXsSVRAfiD`cD+=jmn!pSy@~dd zjaE6$rS9nC{{YJwo$)J?JGs5IJ!Q9}mXwxicb~^^p{>;7xP^0zs;ep{C+)~eq12SO zXIho53QH8=m&p@hIZaV>oEifhZheI~ZbI)om|kcSVlxs8NKs|*1aY?@qF#|K7=>jc zgXyZKg!1m*LTYkbGP&E*sIfSw^G3;sc8!lv28pI+WMh==*ZRX%Y;I~tcaxEE==GIv z3gv$f;Mm6y@Q)fsDRIgsQ&k-sB${jcG7Y`!sb|G%QI=sWe?!ah4@N7~i*a1>_;2+7 z4L^%JF0aC4b#4;(ViX`|Ew|FJb+Gk^nD{SeVaI9K#4C4SpF_snSV|hhRCB`2&dLG4 z%e~E}OdPu4%77Ta(4wA6$zwod*%8*W3G!94NdU>~6*B1T3n@`$&;gT~^IY1`^9@lD zE9rwC7Pyfndc3V0CJ9G2Cx$Yf7-pI6bbzuq2I=8Cl0XAh$-J7UQ<<@}-ovVJnp$C& zdfHeV0nZIF^ob9{!VkS;b)`QFZ|pT3Zq0KNmY-JBMDRb9mB76FhJj$EOJ~= z$K&^(9u$~M=y444YpwN9Qu{=%iEb%o6FCc^-o6lL}@`?R9gG1 z$$6aa_C9M7>_xf1{15`)QOn+thXM!)BZ6jF>{1}dgLiJ39g!n+3TT5Sk4H607052J zrLz;E_7yf$Mdl{)*=8E~aSFUi*Ac|d>Ar3|{0H8)S;JQ&&H7Jpqe?Uu?_b#){y)Ri z97RBBYht+?$0+sVcTj&0Yq4u}Qrdj<+2N{FjYWoVE+gUk-W|l`qO52-W{Osi46W)v z5y^X-E6R6N`Qg7+k zcdQpOyTs8ouw6RoEs81@Pz$&ZG(C*0?femiQDFFFykUwm;wBbSF!MVX4>Eis-dBg? zyho8b5qfq04&My1oy}On3s?T+)-kMZs~*H(Syua#qZki{Hu3>@N|jwnWuI2EvZrTB zQl`Fd&6UiHy)W?qTGHziYuk|XP)jDcOP3!JM}UEUidzHJeo{riBz3ldJTe^VJPptk ziI3zIh!4JjF$B^Nr)r#cDXZaOQ1|};q?p=gy|bABW0-6~Cq-h|2`C8lBc! z2x~CkLavRqF}g6x1cKrEZo9OnI&DfX4IeP7qc-%>oO_HoE?yp()l(NshdkIg>gb8t zuJY)AS-_Pa_i7^^;;T5<5D*(xf3w~-AD-BehGjq+a7x<#1UUL{mRq~ z25xFZ;#bSLRnKEoMWf!Q{R_VZvOm0InSWvzkmS=`$zX~@{sRTg$a8=`TBR+C z()NNx`)2A|LW(V#*ooaxO%ardp+2y>LnMuwZjlKw&NcxtBf4;&8~Q7TXzASBNLk)V z{O4+aCE246N@*W8;jpV4={CFXx5z?iljG3 zI#E(sXPU9>BBKSw>agms*1+=H{h_#U@*>532GZs?6qQKzIWwl=E>=*@`k!OJ1+i{I zOG36~V4yP!Zhj)eTh^{2`{7{X5B~rjUn6BB(xY?jUp_RPBei#CbA>wF);)Oao)IERWu8d?M5 zrj%Sq(71DVM)LOUsWC5m8PPWWcENjQOEVT!{1Lt=hD#am8Q>- ze$o6FiLG@h=(awY!#E8aWT#iXKeG9MCaNEHlYfH9+1zVUhpGmJY1ET+(*}bnWr?hl zFmWZe7UZWEjP+wC)&b>nONjuFYKtw3cp-NCq{|S?^Rh&YAXp8M19{~@{wG81#}dV5 z#GgVZbeMc`m$|ZQknA#^S1Vnt<(^)Ll=PO~+BB7JTur{6eqo$<+1xe4Twe!-GO%6K zK*3=*QU@n}{?+SvXBU+$QLOVGpAYbS`n{}W-;U=GtG|3f1X$X|dnh#HlyRrxA-0HQ zOn9_@HS&heIKy(n(>3{zsVX)T<6YQ@?2a=B<@c&;#u|flw*WPD+^!kLMIoLG@X+fp8$X! zHMPUTGHn@fB@!H@t1;_wHW1{ zAMDK9WqV zsBPa*Dcz6!j>T-UyOpg~IPKJ~tu<0OXPxUQrKG5qnxZ#HG%hTA48etGKGEQk36ClRA$yk~=SGbxfxeI29qwM?l83v~zW|zp#Dfe0zx3 zm0FFn>OPCwDsa4`vI2#T)j}!^s+s8~h(t4en z^Vi(9+e4bBe2xbjxa@5C7V^{iI_m146pE&r8p>%Y>LYBB$kNxb!r{R3QjDBhlwKMW zNvt!0agPki!+67~#%EGXchksux9p!Wx4`pW-vm`&e-xb zq#VT94?T2Q9e!PBq9x1Zc8o$sa0dd@VN{MEq$g<(c-*}D@B9b3eA|m(%C$*U>h|~} z*ZM!h6~$G~yRp^$Uy;n|>WmW?y6z73y8BlFO9#;E(&kzPhD1xBPgWxi)QkQKUn48d z(nLl`>DciUo$SxvPC-X06Ht`;VGv6wd22wk7~HJ~=Az}2`gHkqW0}v`njD4_LPUl* z`2;dZXx&6%BV-jazB@PT)*TcY81MTlt$0dcNKq^%6P!R_oPmWi`9eeA(SO zF3Iy@4%%*_2ORA_mMm8W!?>22fIBgysRNUNBVS{KhrBOIz-zcvbS2kRXS#-0H<8ID z{X_ksdf4uB=do8d%F+-Y!_CjdxJ!E0Mg5?;yiMZXUn6ZZ(d}LY&~Q%Fotuwphe)Cy zxEFtfuIU*Xi&w0ru~P|&X+=^BjRg`4k5Uq4EbCpDaKsYA{v^diTSH230F!4uyS()c z<>%~PSC8=?$#xKW_4yqe8);RV!q1n?hl_Zoej=|qOPNI(A{g(#?H@9}bzZZnEjB*0 z!gyRPsq3uX@B13dwzAH4P^>!+NdrW$*mA4|s35Z`B`xA% z%MAISJoJL|x4Ptx(9`$oZRKbxA1cBt@Z5@%v|0}(d6bdB-%&tQAEn=J#wr?s1jusT>vNU7cN@VW|UxB>4}dE zTtpJ}X-X_GddJa4St}YG=-SCLl11$7ytVqv9o;oNCRj&PiDGp@$4YqJzjoZ0_wIfx z8>LPk5#=JXd7Rk$tvZqd#c+{0YEMo{V{g+%)wK3eGt}LON7ZUGv#)W3{{Tkt#|>ai z)4Qc?@{igh^DbW}<2AcmnLmp@qv(CAP@QM+U&*F42FM8ukb6g}A5h%Q%sC-4G~ONo z&cR5v8Ds`W0!5D`gwiFCQ+{?xu38eZ*@6)UORq&?0$9eN?o&i0Z(IR@oKGAz^D^|* zb|U*aPD9@E8kzV!b9q1V?$@P;4?4lu5l3E|1{ST&M`%%3mY zXmAd1y`+V8ygN#Y9$}mu-?Z#Do}rW+PeEr>SFx>;!G=T~VE`5+-!g}97ZPb zh7XKjvWsF^O;ej3glc)lM_kQ0Pnzi3)s>xCR$du@tfs6LNVU}*dS6CqEi9a#WRMTR zdq}y-WiyuW4I}}~GC=(8Xz?_QIlr2+H5z!3vE&0j#`{@lh=F|{J6$A?$rE%gBKJK4 zZl)d<uIfcSFM58AlhouQA0`va)EVSJhL#np}^u<_Or1tDjZnB1oDqR4-k_{gg^4xn)C6XD%hd zk+5CQI|b03`E=@0C6dB7P`1M??(?_`ADe=gg3gj51|u6TOAe-9G4zoUH{^i8ubzM7Tmh#ZiZ5+?!8O9jIIJXea_ZgiW2f2>U z7O>p=&DYItDk;sg>YO6dcJ{GLcdPx)dPYaxwpfe6F3LmgaBX#-Nn(tzHIBR!%>_^L0sNfH4^BWOj6hP$EZWz89$J{z>T?JIN za1Nd#bpDe*Yq19C&V_aG39e+($E5(nDIG8KUg9rQa%Qw;MB6Kh;1R;ZHyU8${{Wkh z?_9nr{{Zo&@;1{uHa*7}Cl5sC&r;dyfYO=*9Q*m5oA3B98%ENtXWd$Pmo{*|BgW+7 z9D00CSlbh(4e&7BGyz~f0e7sZ_A=zoMD{D%y&Wxzm`r?@lBos85K$uA1;b~?F=|XY zn0+lwt&OLp_dels?pf|@MujOTb@U)0NV(x$4fysw1t|x)2R!Ga2LAvZ zm9(JeEFAtRdaUiGQ?ASAcg8WX#?~+fwW7cdL3MC^#mTppDL^8V8-|w`Wc)u=0QAaN zJ~Dc=fKRj%(ypOWRA#EjqZHz$7MbRn+F2;-=BAmsWrglzhe8dC`W-5Yq!iZ7;8ces zoL@jmG;NN$s|X^tPgtvZ79dHsDh$2=PTVeD^JauNEwsePg{~w*UaTrXcq_wd<_;Nw zf#%(9XMeh~-KWW?nLdH_Qn1OIij?Ra9_?f&+IAN9u6`an%!)PIwwr^d+?IOFLfUL1 zocJUDXk8mmWQuBT%S<{h{<@kU zFZi#IT}zs)XW9K4r^#TSn{3sK%TDVq4&qrSXNok6-i#VXWz|VMmqp}g-uosoMe^^b zL<#Os2=;T?BDu0gUf?8%vSa@MH&zvf;j|SPoqRNOtj{#A4Fji{@(RdB$>ABUYr=&& zRjBkwpfFq}92W|PiXB4-iQjG9%Iv}l5#>kA?=GixS=EW3(p*c7Ki& z{%YazveRUIzd+N${NkTiZl20SrS>S6A)nKwtO_supQ^-R< zg;8&Q>7RdS2-e7xDzlwP<26wHpkc0IY<6CCgl zJ8g9evu>I+#23D8adkY9#vJC7$1%3bM!yB-c&s^EFMuqcON6n`^`e&`K15w}YV;OZAUVH8N6wI)E?WLX2!wf($+cTSYA9^DWbP0K+&}i7||g?*oKvBz=&77cUp-C2Tmy$!F?z zI86@PykX|jHAhs)AFy1Uy{{RD% z{UH02_eC#ii6-^q{{TePNR1ts=K|qP2sRHHkF=l3OUV$6@l1G`tq*91GaGpksq?>7 z)95EnwauMIh*;X=6M=I@&ijj981D_#Zk|MA+feZn<6}d;QpVV{qdCxS4hxwvtp(Ji z9piW-%KVbXgU%+J>Rxc34D4?jY-D`|Ezc?G$Paq9-j_Vie;2)0v@*AQ9iTO=V`F1Q zy;e7ti>`d>w%%CrVCIkkBVq-veWXOiMvbg5%vXi5*L^tU5U{%Isos^jLi{ zu{@mn>-|={;=I?ScN~->Np*i@YO$o}Q&0CGc(x$?PZO%FmieZTzt}ksg87wcb4j!9 zR(9&%gefkF1yE`c0~8A&MqK>T0mSo6NSTiU2aaaSOJcUW$b{~7L15B>m~Cs1dO`CY zYleZn{wO1pws1ENeuKfpvoh6{Hhh=eqmx%k-j^hD_h-)d-x2k?{IPx5=)b!*m7wDd zDGeO|0JIES^d}JTrG9HQwNf%qINTc7eg6O@y3Utt3X%8&ct<_$PYi7j8dONu*_BLe z;@rv5{J~zEf>v|3<$msmD*70oH<_YKr^R+rh^~I+T1^4Zu~o}r_yRe$vC_qJA*_uF ziWcf(W5U%EAy3&@Qi3pdTNi*2t(l(|k@&3lD>Rv6*t@QMbn!6MNXTK6Vh9a47uafk zE0mO0+mSWe-$sdrv6o2W^_(m{!BtZ)a>$K<_!;b7D_>@cs&32f8yUEd3~AWa#r?3Q zccr}kOsu%iQ_r9pb*XQ?jJ{k^8?t;M~@ufMNi| z0nfW)#Dy0FNlYE%t(lPl%z$${?)k2l38mUyN8zaoj}c~r*o|&pE3Tq(@Kn+gM^e`h zz?InJu>6?M$(7N2qf*7`{Sy_cr?rGLNY8_aUV_qm^dm1cj%3y((M2}vdMX2xbt1@t z&CLdg1G!UEV$?w{%ZGolYyu$Uy0))0qw*@KbxzKRZwT>Yxt3Em-JGv6>09nY_d6bq zEZ;-t{h0uNf}%U?n(ODaR)^Kxb&D32!Ie=s=rdaW-9HsXcOzM5418_yOHH77b=nUy zIVpLfmhjZbL^8Sg8ym0Ci(A@~i!XIzmU0swQ(DU#vIbbY$OEs%Shq7hDg4Ev)~*w6 zNhjn{9}z0c6!1?E@F_o>)h>*o_|cHVB=WL2*ylOK2DA&3N{UUr3#T~2IX9v^R}5gE zp)h!$cm}1y@{!HJ+z*28P^HaejsL$bkO<6Tkg1`61@@xsPGg$OitOn^x<$2Sf`$ZWc_DJpTtQ|J6r{odDe_g0JL z{!5YwAc1_h)2J%roFiPqEM1km9LHO9_9Os2ONqA!;haXk_U>uiS^VNG-xLktA4Yw=PaRnb$lvhj@Mdg(IN&|7+U=4*-pntS0x5M6T z>HLw3=fxvepJmZAK&qd0&%N-YbO={GnT+*{R{qh0*deRCOJcSW8oZ`KaiF3{V&I|r zGqNmVxM=#ygBU(TD}NU+3F$pt*X8nG)byT>Q0;EupPqh(s!xdf0`Sv5wa{TcC0Q(J zU?~9W*#a{9fPf?*qtq#h?lkCABsA`Um^ISL0l#*8!p9J*ZY^0K_$&_k7Px+~ zs7rjXUz6IzaQd#j2*Q%-h2EP`8v|*o*ZdNXlY1i7wy8Z8r&+79}^*bhs!g7 zAK6{b4-E52g-3)#+FQLp1>uZa>rX@jk5gv5@hfKpe3fd_GG9k9Oy(1vx-Ux;m{&iV zw3-8)=&GK~z5w!it?0S5_bx&OzL+uLYKai1sg$8;pWR|~(jTiU56mj+tihthAKefn z63Fr0z3kVWjerF5@?61Kr2!Ie|?k@=h79WyT*VuP&L`2xN>TS}7opKahzJU*Am*S@J1 zRUK}oMC`8eLqR2!9NQL-Y6fSc82In+Oq66tkhR%uqGYp`kcikW3X(-qWbSR5wzpC% zPgAGx7XzAO9x;kVX}xNA96e9kaO===T^nnDUi^<6$9UIin`?KcSLg6w4>P0%xbj9O z1|S4L9(V13i5raZFQC)EH7*_uR|iK(eRJ;6dy4gZ64leD>dSe5Lp5n@fKJBTM`(1w zbB17jnSbD}<7@u_7xzM-`@no$0OG7#+X}hAv{z4tf9liuBMpCO&01c47gZDi$eCn7 z=1kE5XDTXeT8Ly9APvglU%d-rA5lo^3i+uX_Py}D#$4Tr2HGyAl)0!yl}za!oxc1r z#gTLLcqI5d{%g*9RUFfU`JInOo-g6^{=m;9R6osp_M*`G;$74{3xF0Iy%Cjnrkdz)s(5avrvxgP2ptn#MPp-%ju3i zZ{>CGAxE-FLu7NDv$@x5o?qDa56bD7L~f0)c6)-*9^c7%>uorc()gMy zdnC?uS|_D+OmkY{CSV-vcx`3rwT!aN8-e0aY?Tr@uDfgn$2ENgh>5*O9QJxdRc2Oq zY>WptHlWyxStXn}V^UpmP|2pY*=)ym0*>UhC5)b?tG!`lu@vKb;_u-hEE}M?veCRHkP502%=gD!dyuv4nJL zY^$lTqINhWH64z?;Ncs^QMo3-kn^qi74uI>;?=~L%laO_(TOE;vbr-)F}>C^)Hf*o ztjF9JmudB9(D|ag5!7t24{!|@V?~-glqB+7P8_Q*anS)J5=EJz#lgcdwa~R#E2)^x zNLhX`oZU|)Owd=5lAe# zz3ZxTvo23o`rg*Hm7fzfxa7v5&{>nj=V$>JDiPe#QFkzPE(YN@VUhlju8!4n5Mqq~ z02bc9(mo5PZ9|j2Ezc3gxTkLW3QxMXet+QJ-rU1OVl@Y%)Oq3q;n3I~K$~0GQW=E1 z?Gff)EPy#TY}`cFQPW@$KgA=xB71Ufxd*)5`-1Fni+3ryuVuH)g-Kyx)B8Pdf5#YZ zRyoZwNc)X|$ZQYYM zDO$BDHi3_CCElm8Qwfh{dMc1p5Kzv?NAx|2;jJIW)i|H)zw!&`9+EuWPxk(Yv-Cna zxlhS6Q9IwrFC{bSqfN6a#Q8n7BuwMZ)N@8!0r^((9zRJPfr_TiZ+I^ zt=Is%X(X_ZoK&eQvvZrvWTi3#N<%|RLp;;kRxsRSjVq*M^Fs@S5uYY#PsZ!j@Y-FS zy3buoD!p)QJW%fQvaSw!-@7gS-}oqS%`fV&_i~%RWR7i6b=RWwu{lq2z3RfqfljKb z@fK)-1ckR~8-c3l(%iKO7We}m7MPJ?ZrMzs5IB~)<8i7|*tHwW+Y4IynP#GPhyz0HCywIboH5iiQiF?Bv%mrUOHbE6eFwji>2TW# zT~y2Pt^WXmx|I|c#Pfu*7n0&`Nxr3fSj8oTVa|0r4`MXNZaQ@T09Fb~98XJ@xA9zV zJ1kqJ=FJxCR>~}Tq*Y?rg+>1WSy3a0z2$bSVaY-f_#>ZIS(9eJEwx<)R0krFWI*LX zq5#fR)!4NVNy%`pwMDTAi`HF=8b<|FI$ve)?yKXm;6NY0=Kbq+wYNLwmdBXmTwzd7g%{s@zc2Is4zvJh0002w z7gZh^>MCF%Xgh#?r~xuF?6=^6IG1evV#%gw4beypaJWfU=A8@vt3BJFJ9J)`fmt^F zVr%96nC@!hx{g5NO7x~yc52p$y9&S>;4?l}5%GJz<>sw*;?ry5YOm~9>~p7u>Cw*y zsPzcYD|3YdX63JkyL`> zT~djL#)CYI3RB|>x$Gp)xx;Ss-pBE12Ck;6FSn7(e-gfX=|wiG^LeCtpGGRE-a|fZ zeNm>jMdI1@JP+AKMp*zm>Y$HN%{uHo>7g_d%844sun5R=a_YcT(>WfbZzai-7@`&iSMq55Pav+hp*r;xASTjTXP2?8TBjMs zYAfpGFP?Xoyz=%BAT%Du?C4v@g*6EDGRj=fCfnI0KyiGPuW0V*=w_Y7^3V^&u6GxI zlB3nK>N}ckbcR6b3D!vqkKg#OM{gcjsQDywtGu`KDdsz^1Yk1^gAS?1BaaoTlA4T% z7s(rQI9O-^^ExhP5bYdsO=X(nv9?FWm=6uc=5V$YT~tNAKDWf-{L%jax3O~}!z)&K zxRw`^B<192wRKZhSI<>Y^7*Eaz3x28+^rV$<4$fd*%Esg)!V1BQwoh|SB^s*;@u~toNNy#Dt zfKUupddZJsZt@-Pih8V@V^Pw@hx53ni?iM>1QM4-ly(YQljcVfy?52 zR+Wr3)^BC~-@xs-b{$KFP{&6{5RMqdfE@ah)UK3Zps z5sx`%PU6wrc5T75$47cOlHS&j&2ulRo0LQgzi53>&qLD%ecuAJT*xuJoOxHeF2;Ce`vvHMGeHG(eRCB;3bQZhNFi6U5yhUqdAK{vQ=ywQS^&k4YB40^OdK>>ZO zo##d{btPL0QmHIN$#;K3&YwM3kLvzMV&Q%Zq2cB>XIi4Tj}*=tH_4-yw{_H`ZyI{; z&jG~v&1=`nyRh>9O{Hl#!lnix2*PYN*)Tb$9Co!qfwEd074g>MI<&|&iWBC3vGN*q z=(`piBBjGqo{{^%kwseZhKqB7RoB&GRg+d$PWkF4c4;Jexp7{;ofuJqgccGoxw$;B zXAs(W}M#^2vZbpMsqjlWwy;U`h z5z1v`foMcfB#D;94sK{PKp3hjY+8sU+T}Y&*!B=Uc33#oF4D?t%TZfY;G#wO?2FEqMc0ijt7YA?)>r8l#Eg6oN){dRpI!`xrZtYBjr8rF*d1%L~vmJbr!Z!B_RF)%RzbB@uwN`r@K z<-;(kTP7^wmCqWsm~}l}&~n`LJ$@O&<#R51=@05>tyw`~Zh79KcTY2E<2HDJrJ>$)+1MhKOYlMDn zE-s{vO0|lw|c2j^AlMPOmSD^t+3S{C}%esX2H9!t!=D3#V(E@xj zJoT*|0^?VBi7^}NJK9&P;hxGRGu$d3ORP~a*!dvOAo^ox3o7O$bzaKlZCrTv1oA(_ zDSO5b+81g5(|!xc`b|TgoM-b#Q-#;;ZWR2Qe?wR?x;MFwZJg7TubZ@eok>Y$3I?eF zw(5|F0pSUe&Z6b9@=P)rLqSttFp8QdODm0o8@cy%^HYpmo)MnCdURvWQQ>)=PlY%Z z93Zm05X&`o?QZOg+0^;`7fOY)hk9F{D~j>S+~$=XA@_gd;BISK=gdigi452HpNw#> z6{Ih%m^z`&CMsyn-v0o|d6lNx)~&?3V2H{}D=hP$7IAHV6=H_2vG!whh8CX;P3S)p z&3fxQC|g4deyqtlyv)~0B!#V!M@HbVFs{$|ry75R&emb@o~7Qm_J_f7Zr5#jN{acj zLYE~sBSEb24>LKQG=JhJ)Q)J**N$ae2d}!Alg&QjnG6wqR+PQRntiENBVs`Gk zH1;ZCF{{y3g5yC%j<>V&`z>_boB<>5UjrHaa4Yx*9W(R%%zmvxeuAobx;50~%MY2L3%>h1Jri8@ifFH8~<#i-3rtQMLpH*V6Wo9VX z(@`Bndr2t#2cGLy8+R>bvFA9aAE$4cR{iPu^k2(5)h#7G4J>rj(K0Aw7Hb$R09^$Y z6@++dwP#jtbsk$KK>-jk3PS_LaT-h}f@<37n+-foyWa1(btjNgge5sB#bvN>2by^2 zi>f%U8ht~q%4qJ&c(3X+&&=+B;Jtl?nzpC$dzk7}=6FV`*1AWwHjBB&zPB=x^fK6&)bz5{VbrsUUmRi*#}S~>?%bUQ zmRzdRQJX<6z^A5-jdQ@y&o<5Y?tRNVoFs5v^6f>xBtA;h%)+>dd z6!a1b*jvvj(bo8U*M;=1+q|ly*7_@X*xbc8qtX86whi>;yixUrHTFD{LqRxw1!gBW zf{K<|ptA%(j&g28T#R8|q>YgVaRZgn15N|8wGrXsfz;tU@L zVRj>l($ia%l7N02t7*`wQQ{G7O{KY_V_ml36j`If;hzwfldauH@j9P^>rmiVH8r1g z6iVg`ZBALmJ*Dvn5odx*uScXi)6-q8BleE&_nR*Lrw6y8-fNlsOtmg0Ef$8BUQadF z#th?{Y&_IhAL+z zQrI&JtCEJknyw;y$R%uzw^opU1$}C2r8z-lvWE#`r5i+tPj=Cr+fI&#rI_m0HF>{&fBgeREFO$J{*wSipW8h1TM=EvKTVeA1px*m;x4DZ&z) z#8H~&=9RoT>dOe~{4Lq_HWXP`i567W4O-3PjQ%Ihbm&^BYb{ygIG-P>ahh~HvHQQ^ z-PY627?=u}6xiPt;G8=Vb|r{K6RmL&Iiz>7qgA4Xt!nQS6XOY!+5tV|}?V_>(SIySy)C>kyB2g=*-9}p) zU<;5v_AU(;y~^`^PjqOBV}M1TvF;yKE)Co6qQnKXj~}#t_3Lyd^Sb#h%|1$u`u796^@}*?c zP}#(I<#w-swEhdFPLye^MDdrG_3tIkRsP)(Xsj^}bDGwdIDpZqCt!dzd}p*y7{LRZ zJ|`U0H~5-wq<70f?<-v!3yR(dvJ$Bn?#^e#U9;j9t#lYH0)``}eDWVD_Hu8{cCEM+ zW36YOf+(HO={cQcboGQ_#iE`ePC0M;yZJ)$+Og#$%2CPLp>`&TxHw3p1W>`uklr?FcKjBKtc zkW^s>5;|{V^^7>qA%jfoMTt^5pdYl`{srF!=RG5#&q6gkpY=BI>duvACG+|f)pW8^ z)J;t&v*CGTy`x3*8mkh)_S!X7SVp9FYaqZ_s*A^tsS#q05FzaZF#>N=&j#VlPaT*t zhMCW0{8GEZ#`{XPoheUbV!Yxu_L0q5YvtGIbzU6c3_k|RQCDip#_Am5;9>oi{v~uN zTSgkaS>m{l9J;}w>9`-`~q65{&MW^&@`K<9DxDR^g@fy9Iyr1k{MP@~}9pXb3;~YkzuDorK z#KV3~@cso~!l?FEu}^oe)X8@)YOmmFl|H|@b)sa58}?FV(Eym(td~!^X@bcc-JU|> zvZ9L6uu!)^iyqaX5n+!~C_wKBWw9n=M5Q-8cstZVAMclT1gV%nTI(?UC9W`wfq| za=5j(tXs-GR;HUeuAM~9>Z7v?fn8AdVpMe0CPHI#-L6~dri13bWUQv;gX!_~rj%(% zFm71a%Ovn%9iQN&I~B+2>ZES$GXUR%ZhmWZE)_X#7S2`Ir8iU3o*=%j?prst4g8vPV^L6iCS#wpMU&OAe?b`v4{)>j!Pv+v-$KF=Ra2to> zX&If&3Tm$2>Rdm-@JJcZ%{!g<0JX!>@6|uC2Xwk3im$ewDya_crKP17{we@S_qyv` zI1RjfO|qwS`XgDyIOmCRJi@OVtdXbc2}>LBZI?!u4YjAV7xgK1>OQ3lrE}a|_ZK+s zPNi;)RCG%PEw{MP^L0E140*edfeO)kp^1(GMS;?LDB+l@u_<_$5&}Fg3kFQ@+0ub= z?aDRw*>JeU+l*DcKNP>;xw75~cizQ!6Jv7m7C%#oNpRU6mL?ym81+ZPQ|3zP*jlSv z3ZGuTGZku`r1^>plXqEkAX30&R-izVYME?6rRIicfIGHX>g-&FqK(sHbg?#Z1D`8E zn41XA{cG~J>w$Ri^;s-i7I@|y>@ycII}nDw&S-g_7v=<>MD<-O8mgpQQRVm*J%+)_ zbPTgP#vL!|{>>?-Z;G=7kkiNp<`-(y?%UkHcj+~!XK?1WmZ!G#M*T)^jGmJItNamR z{5Ol@gnA|)JKBD^ZdQ+Z(RoPGoSumGw;V>+-`Y(tyZalq4cTXjvtt!^176~v@pt4F zx^`V=&pUbPMvgYo{onEYo9#3hRs&1i!YQcY8k@K_{$!oj`gE|d1bJJFnzs_?t1Pm< zvyS*$g5skcq6BUkCUg6@TItzbPs0cFGdV?W&3?DGUKFOdf%SE68+TBakBh9gQ{cC9 z-DBp;-FPmhvx)ZUC zr3g8*O0B4tuBvL8otkN0=^lExo0aIO(^RRbM`U1=%gY2i-CRV1tJMWg11l!n=&nRS z(yh8y_SY-`O<4(!6U_LCE=ik3agBk{Z9bRRXQ7E*pDaV~u)qa7$k$@#q( z@@#a>;Eoit-(5o4+x%qHHS&9hFK}Hd96ny;8~u+ndByH-bg4WqC88j$?RSJ|$r08~ zRPK;K?S1aBT}pf&?tbn*XDU_Tx|-d0Zj|6SP+-zH@^teC{F)Emw^Q_bqw&cir*$5P z)iEyF_?oXUrhP3NfAV6?elEJ`Qs5Tx@wUpPcPFu?;(Sqz;^y`EomEKtGDu5)8!nYA z3wmA%BvUHWmh7r@?mAs)bD3S_H=za!_Q(xZ84|$s=>@&xc!$@iS^_z!+{E z-%6@`y<0a{wEIZEuocSUw>^~}Soo!)HBgRTMsa>Nao!-S#U4m&+|hc3G}q=4GhF$dC#cz?e&MnaqZpRNOtt+m*hP*IjoIiY9tXjx-jw@;w^D~ z3fE}cZOd{@dpBLGWo#-naYTZcf|(ZB7AGzXjZxxI+{sNVWVcW^9`SMSS?;JR^kqr) zLWKDwq;)RPXkj%p*yRDonWEl)Fd=^f2n#){-$f2p~} z3{XVap^cHo(Pp)Rz?{*ojL}3# z)$c={@E0oTcD1T_BH!#MB)2r|TeiL%q6ARKQ(W<}YkRhQU9ZV>X>dE4__QjO#1YQ; zgSK8E#Te+QogN(vw6q$$kLR6!7F~OO2S%Q?JJ0M>E2jJ>I;g9frbkIMuaWLIbDVBT z^DD0!ae~BF5t>qzo>`E%1sM(_vs|BQt(GIHc5zSr@9>^C#j^~uIfjys{M>gV-*4)b z!Qv0rE+K0ln>AB>kaK2>Bg>?5F1aL*b!unSE4K}%0&o)=w*no!O0?E*cl-fIiBkVELTfyLTHwt_w64@ zW_SRTYcai627v%I#qPNv`xeW82^oa3YABIm0ka!!O1UBlokA#wXxs)Un&5HlA-9I- zS>xK?{k@=dURLUts9pA{cO~{a6e{+#`Ffm!s6HuN$F{4LOkA%2VyNmIrP|`HE zHrdn8McWfPpFV?`SZ{A3YfqY6^hLC(I*;IVE;h#KaQr$B55O$UI*b8PBTf6)j#uZd zr1L(-&EZy)sW*9FcenHW61l9B?BHkvR~6_?C=Q_bo$yw~SptymtON-rw@kVqa|9Q_ z8Ot?Yi;(IlsprJ0qN<;`r+kfUlG^zjeNC4N>B&hrtg^+iXN^)}bXbET!fW4K4nSQi znU}?Lp!ZpHEUH$XU0Cw6r?AL*E|HdI``MooH;1^UAyDg3)&T_f*j)Hs?mr?|BaGSl z&Aa9CM^*jF+Scsqe9f1RIOB})EOMs}b#!#>Y0VSifulTU)gYVy0PYI&{65Coy)`GR z>#5S5+Sunc{AI*d?;@uguaT#boxpqrg74Dd_R!i0$tu(HD$QJzYa`t9dAQvC*0|Dy zc1132^)tQDfK{mwaxgzYPgN`t$gYz1_9l>h3fdX zh#qm)lZG^0i)BX|BKcM8D5JdiNYF*u