From 93864f1faccd04323cff61062595d019f6a2857a Mon Sep 17 00:00:00 2001 From: denglang Date: Thu, 27 Oct 2022 14:40:15 +0800 Subject: [PATCH] feat: upadte readme Change-Id: I995be2b19fec8107ba5df6a04fb1f0e7b3fcae7f --- README.md | 2 +- assets/Scene/helloworld.fire | 356 ++++-------------- assets/Script/Common/BehaviorTree.ts | 2 +- assets/Script/Core/ECSController.ts | 2 +- assets/Script/Core/RoleEventProcess.ts | 4 +- assets/Script/ECS/systems/SysAttack.ts | 13 +- assets/Script/ECS/systems/SysRoleState.ts | 2 - assets/Script/Main.ts | 14 + ...4e-2516a9dae308113719czjoklju1eg0ued0.jpeg | Bin 0 -> 65638 bytes ...16a9dae308113719czjoklju1eg0ued0.jpeg.meta | 38 ++ .../Biker/textures/Biker_attack1_01.png.meta | 2 +- .../Biker/textures/Biker_attack1_02.png.meta | 2 +- .../Biker/textures/Biker_attack1_03.png.meta | 2 +- .../Biker/textures/Biker_attack1_04.png.meta | 2 +- .../Biker/textures/Biker_attack1_05.png.meta | 2 +- .../Biker/textures/Biker_attack1_06.png.meta | 2 +- .../Biker/textures/Biker_death_01.png.meta | 2 +- .../Biker/textures/Biker_death_02.png.meta | 2 +- .../Biker/textures/Biker_death_03.png.meta | 2 +- .../Biker/textures/Biker_death_04.png.meta | 2 +- .../Biker/textures/Biker_death_05.png.meta | 2 +- .../Biker/textures/Biker_death_06.png.meta | 2 +- .../textures/Biker_doublejump_01.png.meta | 2 +- .../textures/Biker_doublejump_02.png.meta | 2 +- .../textures/Biker_doublejump_03.png.meta | 2 +- .../textures/Biker_doublejump_04.png.meta | 2 +- .../textures/Biker_doublejump_05.png.meta | 2 +- .../textures/Biker_doublejump_06.png.meta | 2 +- .../Biker/textures/Biker_hurt_01.png.meta | 2 +- .../Biker/textures/Biker_hurt_02.png.meta | 2 +- .../Biker/textures/Biker_idle_01.png.meta | 2 +- .../Biker/textures/Biker_idle_02.png.meta | 2 +- .../Biker/textures/Biker_idle_03.png.meta | 2 +- .../Biker/textures/Biker_idle_04.png.meta | 2 +- .../Biker/textures/Biker_jump_01.png.meta | 2 +- .../Biker/textures/Biker_jump_02.png.meta | 2 +- .../Biker/textures/Biker_jump_03.png.meta | 2 +- .../Biker/textures/Biker_jump_04.png.meta | 2 +- .../Biker/textures/Biker_punch_01.png.meta | 2 +- .../Biker/textures/Biker_punch_02.png.meta | 2 +- .../Biker/textures/Biker_punch_03.png.meta | 2 +- .../Biker/textures/Biker_punch_04.png.meta | 2 +- .../Biker/textures/Biker_punch_05.png.meta | 2 +- .../Biker/textures/Biker_punch_06.png.meta | 2 +- .../Biker/textures/Biker_run_01.png.meta | 2 +- .../Biker/textures/Biker_run_02.png.meta | 2 +- .../Biker/textures/Biker_run_03.png.meta | 2 +- .../Biker/textures/Biker_run_04.png.meta | 2 +- .../Biker/textures/Biker_run_05.png.meta | 2 +- .../Biker/textures/Biker_run_06.png.meta | 2 +- .../textures/Biker_run_attack_01.png.meta | 2 +- .../textures/Biker_run_attack_02.png.meta | 2 +- .../textures/Biker_run_attack_03.png.meta | 2 +- .../textures/Biker_run_attack_04.png.meta | 2 +- .../textures/Biker_run_attack_05.png.meta | 2 +- .../textures/Biker_run_attack_06.png.meta | 2 +- .../textures/Cyborg_attack1_01.png.meta | 2 +- .../textures/Cyborg_attack1_02.png.meta | 2 +- .../textures/Cyborg_attack1_03.png.meta | 2 +- .../textures/Cyborg_attack1_04.png.meta | 2 +- .../textures/Cyborg_attack1_05.png.meta | 2 +- .../textures/Cyborg_attack1_06.png.meta | 2 +- .../Cyborg/textures/Cyborg_death_01.png.meta | 2 +- .../Cyborg/textures/Cyborg_death_02.png.meta | 2 +- .../Cyborg/textures/Cyborg_death_03.png.meta | 2 +- .../Cyborg/textures/Cyborg_death_04.png.meta | 2 +- .../Cyborg/textures/Cyborg_death_05.png.meta | 2 +- .../Cyborg/textures/Cyborg_death_06.png.meta | 2 +- .../textures/Cyborg_doublejump_01.png.meta | 2 +- .../textures/Cyborg_doublejump_02.png.meta | 2 +- .../textures/Cyborg_doublejump_03.png.meta | 2 +- .../textures/Cyborg_doublejump_04.png.meta | 2 +- .../textures/Cyborg_doublejump_05.png.meta | 2 +- .../textures/Cyborg_doublejump_06.png.meta | 2 +- .../Cyborg/textures/Cyborg_hurt_01.png.meta | 2 +- .../Cyborg/textures/Cyborg_hurt_02.png.meta | 2 +- .../Cyborg/textures/Cyborg_idle_01.png.meta | 2 +- .../Cyborg/textures/Cyborg_idle_02.png.meta | 2 +- .../Cyborg/textures/Cyborg_idle_03.png.meta | 2 +- .../Cyborg/textures/Cyborg_idle_04.png.meta | 2 +- .../Cyborg/textures/Cyborg_jump_01.png.meta | 2 +- .../Cyborg/textures/Cyborg_jump_02.png.meta | 2 +- .../Cyborg/textures/Cyborg_jump_03.png.meta | 2 +- .../Cyborg/textures/Cyborg_jump_04.png.meta | 2 +- .../Cyborg/textures/Cyborg_punch_01.png.meta | 2 +- .../Cyborg/textures/Cyborg_punch_02.png.meta | 2 +- .../Cyborg/textures/Cyborg_punch_03.png.meta | 2 +- .../Cyborg/textures/Cyborg_punch_04.png.meta | 2 +- .../Cyborg/textures/Cyborg_punch_05.png.meta | 2 +- .../Cyborg/textures/Cyborg_punch_06.png.meta | 2 +- .../Cyborg/textures/Cyborg_run_01.png.meta | 2 +- .../Cyborg/textures/Cyborg_run_02.png.meta | 2 +- .../Cyborg/textures/Cyborg_run_03.png.meta | 2 +- .../Cyborg/textures/Cyborg_run_04.png.meta | 2 +- .../Cyborg/textures/Cyborg_run_05.png.meta | 2 +- .../Cyborg/textures/Cyborg_run_06.png.meta | 2 +- .../textures/Cyborg_run_attack_01.png.meta | 2 +- .../textures/Cyborg_run_attack_02.png.meta | 2 +- .../textures/Cyborg_run_attack_03.png.meta | 2 +- .../textures/Cyborg_run_attack_04.png.meta | 2 +- .../textures/Cyborg_run_attack_05.png.meta | 2 +- .../textures/Cyborg_run_attack_06.png.meta | 2 +- 102 files changed, 223 insertions(+), 394 deletions(-) create mode 100644 assets/resources/3de2d4d5-8b98-4175-b44e-2516a9dae308113719czjoklju1eg0ued0.jpeg create mode 100644 assets/resources/3de2d4d5-8b98-4175-b44e-2516a9dae308113719czjoklju1eg0ued0.jpeg.meta diff --git a/README.md b/README.md index 576fa74..ec54507 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# 在Cocos中使用ECS + BehaviorTree 实现格斗AI +# 在Cocos中使用ECS + BehaviorTree 实现格斗AI 使用过程中有任何问题,可以加QQ群: 552424835 ### 成品展示 demo 角色AI包含了巡逻, 追踪, 攻击, 躲避攻击, 受伤打断攻击, 攻击打断闪避等. 可以细心看一下二图. diff --git a/assets/Scene/helloworld.fire b/assets/Scene/helloworld.fire index fb6c6e7..301f73a 100755 --- a/assets/Scene/helloworld.fire +++ b/assets/Scene/helloworld.fire @@ -75,34 +75,28 @@ "__id__": 5 }, { - "__id__": 8 + "__id__": 7 }, { - "__id__": 10 + "__id__": 9 }, { - "__id__": 18 + "__id__": 17 }, { - "__id__": 26 - }, - { - "__id__": 34 - }, - { - "__id__": 36 + "__id__": 25 } ], "_active": true, "_components": [ { - "__id__": 38 + "__id__": 33 }, { - "__id__": 39 + "__id__": 34 }, { - "__id__": 40 + "__id__": 35 } ], "_prefab": null, @@ -263,24 +257,21 @@ "_components": [ { "__id__": 6 - }, - { - "__id__": 7 } ], "_prefab": null, "_opacity": 255, "_color": { "__type__": "cc.Color", - "r": 135, - "g": 135, - "b": 135, + "r": 255, + "g": 255, + "b": 255, "a": 255 }, "_contentSize": { "__type__": "cc.Size", - "width": 1334, - "height": 750 + "width": 1009, + "height": 454 }, "_anchorPoint": { "__type__": "cc.Vec2", @@ -298,8 +289,8 @@ 0, 0, 1, - 1, - 1, + 1.7, + 1.7, 1 ] }, @@ -316,33 +307,6 @@ "groupIndex": 0, "_id": "e2e0crkOLxGrpMxpbC4iQg1" }, - { - "__type__": "cc.Widget", - "_name": "", - "_objFlags": 0, - "node": { - "__id__": 5 - }, - "_enabled": true, - "alignMode": 0, - "_target": null, - "_alignFlags": 45, - "_left": 0, - "_right": 0, - "_top": 0, - "_bottom": 0, - "_verticalCenter": 0, - "_horizontalCenter": 0, - "_isAbsLeft": true, - "_isAbsRight": true, - "_isAbsTop": true, - "_isAbsBottom": true, - "_isAbsHorizontalCenter": true, - "_isAbsVerticalCenter": true, - "_originalWidth": 200, - "_originalHeight": 150, - "_id": "61Qb7LYvdCYrxlqWxpwiAF" - }, { "__type__": "cc.Sprite", "_name": "", @@ -359,7 +323,7 @@ "_srcBlendFactor": 770, "_dstBlendFactor": 771, "_spriteFrame": { - "__uuid__": "410fb916-8721-4663-bab8-34397391ace7" + "__uuid__": "accc37bc-cb00-4a77-98df-a22077d6ab15" }, "_type": 1, "_sizeMode": 0, @@ -384,7 +348,7 @@ }, "_children": [ { - "__id__": 9 + "__id__": 8 } ], "_active": true, @@ -442,7 +406,7 @@ "_name": "0", "_objFlags": 0, "_parent": { - "__id__": 8 + "__id__": 7 }, "_children": [], "_active": true, @@ -504,13 +468,13 @@ }, "_children": [ { - "__id__": 11 + "__id__": 10 } ], "_active": true, "_components": [ { - "__id__": 16 + "__id__": 15 } ], "_prefab": null, @@ -536,8 +500,8 @@ "__type__": "TypedArray", "ctor": "Float64Array", "array": [ - -503.086, - 245.37, + -585.668, + 320.444, 0, 0, 0, @@ -566,20 +530,20 @@ "_name": "Background", "_objFlags": 512, "_parent": { - "__id__": 10 + "__id__": 9 }, "_children": [ { - "__id__": 12 + "__id__": 11 } ], "_active": true, "_components": [ { - "__id__": 14 + "__id__": 13 }, { - "__id__": 15 + "__id__": 14 } ], "_prefab": null, @@ -635,13 +599,13 @@ "_name": "Label", "_objFlags": 512, "_parent": { - "__id__": 11 + "__id__": 10 }, "_children": [], "_active": true, "_components": [ { - "__id__": 13 + "__id__": 12 } ], "_prefab": null, @@ -697,7 +661,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 12 + "__id__": 11 }, "_enabled": true, "_materials": [ @@ -730,7 +694,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 11 + "__id__": 10 }, "_enabled": true, "_materials": [ @@ -762,7 +726,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 11 + "__id__": 10 }, "_enabled": true, "alignMode": 0, @@ -789,7 +753,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 10 + "__id__": 9 }, "_enabled": true, "_normalMaterial": null, @@ -798,7 +762,7 @@ "zoomScale": 1.2, "clickEvents": [ { - "__id__": 17 + "__id__": 16 } ], "_N$interactable": true, @@ -866,7 +830,7 @@ "__uuid__": "29158224-f8dd-4661-a796-1ffab537140e" }, "_N$target": { - "__id__": 11 + "__id__": 10 }, "_id": "d6HwYkhPdKppYL8wV8YIBf" }, @@ -889,13 +853,13 @@ }, "_children": [ { - "__id__": 19 + "__id__": 18 } ], "_active": true, "_components": [ { - "__id__": 24 + "__id__": 23 } ], "_prefab": null, @@ -921,8 +885,8 @@ "__type__": "TypedArray", "ctor": "Float64Array", "array": [ - -345.923, - 245.37, + -583.658, + 262.887, 0, 0, 0, @@ -951,20 +915,20 @@ "_name": "Background", "_objFlags": 512, "_parent": { - "__id__": 18 + "__id__": 17 }, "_children": [ { - "__id__": 20 + "__id__": 19 } ], "_active": true, "_components": [ { - "__id__": 22 + "__id__": 21 }, { - "__id__": 23 + "__id__": 22 } ], "_prefab": null, @@ -1020,13 +984,13 @@ "_name": "Label", "_objFlags": 512, "_parent": { - "__id__": 19 + "__id__": 18 }, "_children": [], "_active": true, "_components": [ { - "__id__": 21 + "__id__": 20 } ], "_prefab": null, @@ -1082,7 +1046,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 20 + "__id__": 19 }, "_enabled": true, "_materials": [ @@ -1115,7 +1079,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 19 + "__id__": 18 }, "_enabled": true, "_materials": [ @@ -1147,7 +1111,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 19 + "__id__": 18 }, "_enabled": true, "alignMode": 0, @@ -1174,7 +1138,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 18 + "__id__": 17 }, "_enabled": true, "_normalMaterial": null, @@ -1183,7 +1147,7 @@ "zoomScale": 1.2, "clickEvents": [ { - "__id__": 25 + "__id__": 24 } ], "_N$interactable": true, @@ -1251,7 +1215,7 @@ "__uuid__": "29158224-f8dd-4661-a796-1ffab537140e" }, "_N$target": { - "__id__": 19 + "__id__": 18 }, "_id": "63e/kLBnZF/LA3UC/rFE7l" }, @@ -1274,13 +1238,13 @@ }, "_children": [ { - "__id__": 27 + "__id__": 26 } ], "_active": true, "_components": [ { - "__id__": 32 + "__id__": 31 } ], "_prefab": null, @@ -1306,8 +1270,8 @@ "__type__": "TypedArray", "ctor": "Float64Array", "array": [ - 473.095, - 245.37, + -582.95, + 205.33, 0, 0, 0, @@ -1336,20 +1300,20 @@ "_name": "Background", "_objFlags": 512, "_parent": { - "__id__": 26 + "__id__": 25 }, "_children": [ { - "__id__": 28 + "__id__": 27 } ], "_active": true, "_components": [ { - "__id__": 30 + "__id__": 29 }, { - "__id__": 31 + "__id__": 30 } ], "_prefab": null, @@ -1405,13 +1369,13 @@ "_name": "Label", "_objFlags": 512, "_parent": { - "__id__": 27 + "__id__": 26 }, "_children": [], "_active": true, "_components": [ { - "__id__": 29 + "__id__": 28 } ], "_prefab": null, @@ -1467,7 +1431,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 28 + "__id__": 27 }, "_enabled": true, "_materials": [ @@ -1500,7 +1464,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 27 + "__id__": 26 }, "_enabled": true, "_materials": [ @@ -1532,7 +1496,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 27 + "__id__": 26 }, "_enabled": true, "alignMode": 0, @@ -1559,7 +1523,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 26 + "__id__": 25 }, "_enabled": true, "_normalMaterial": null, @@ -1568,7 +1532,7 @@ "zoomScale": 1.2, "clickEvents": [ { - "__id__": 33 + "__id__": 32 } ], "_N$interactable": true, @@ -1636,7 +1600,7 @@ "__uuid__": "29158224-f8dd-4661-a796-1ffab537140e" }, "_N$target": { - "__id__": 27 + "__id__": 26 }, "_id": "749WE4zm1JhpiMAmdyMCeA" }, @@ -1650,196 +1614,6 @@ "handler": "onClick3", "customEventData": "" }, - { - "__type__": "cc.Node", - "_name": "a_role_count", - "_objFlags": 0, - "_parent": { - "__id__": 2 - }, - "_children": [], - "_active": true, - "_components": [ - { - "__id__": 35 - } - ], - "_prefab": null, - "_opacity": 255, - "_color": { - "__type__": "cc.Color", - "r": 255, - "g": 255, - "b": 255, - "a": 255 - }, - "_contentSize": { - "__type__": "cc.Size", - "width": 97.87, - "height": 50.4 - }, - "_anchorPoint": { - "__type__": "cc.Vec2", - "x": 0.5, - "y": 0.5 - }, - "_trs": { - "__type__": "TypedArray", - "ctor": "Float64Array", - "array": [ - -504.601, - 294.479, - 0, - 0, - 0, - 0, - 1, - 1, - 1, - 1 - ] - }, - "_eulerAngles": { - "__type__": "cc.Vec3", - "x": 0, - "y": 0, - "z": 0 - }, - "_skewX": 0, - "_skewY": 0, - "_is3DNode": false, - "_groupIndex": 0, - "groupIndex": 0, - "_id": "a4JCp5+xFOA4s8fngj8szD" - }, - { - "__type__": "cc.Label", - "_name": "", - "_objFlags": 0, - "node": { - "__id__": 34 - }, - "_enabled": true, - "_materials": [ - { - "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" - } - ], - "_srcBlendFactor": 770, - "_dstBlendFactor": 771, - "_string": "Label", - "_N$string": "Label", - "_fontSize": 40, - "_lineHeight": 40, - "_enableWrapText": true, - "_N$file": null, - "_isSystemFontUsed": true, - "_spacingX": 0, - "_batchAsBitmap": false, - "_styleFlags": 0, - "_underlineHeight": 0, - "_N$horizontalAlign": 1, - "_N$verticalAlign": 1, - "_N$fontFamily": "Arial", - "_N$overflow": 0, - "_N$cacheMode": 0, - "_id": "4417a7mtlNhbcCkscLMkuR" - }, - { - "__type__": "cc.Node", - "_name": "b_role_count", - "_objFlags": 0, - "_parent": { - "__id__": 2 - }, - "_children": [], - "_active": true, - "_components": [ - { - "__id__": 37 - } - ], - "_prefab": null, - "_opacity": 255, - "_color": { - "__type__": "cc.Color", - "r": 255, - "g": 255, - "b": 255, - "a": 255 - }, - "_contentSize": { - "__type__": "cc.Size", - "width": 97.87, - "height": 50.4 - }, - "_anchorPoint": { - "__type__": "cc.Vec2", - "x": 0.5, - "y": 0.5 - }, - "_trs": { - "__type__": "TypedArray", - "ctor": "Float64Array", - "array": [ - -349.693, - 294.479, - 0, - 0, - 0, - 0, - 1, - 1, - 1, - 1 - ] - }, - "_eulerAngles": { - "__type__": "cc.Vec3", - "x": 0, - "y": 0, - "z": 0 - }, - "_skewX": 0, - "_skewY": 0, - "_is3DNode": false, - "_groupIndex": 0, - "groupIndex": 0, - "_id": "80NAtDFhBOxrIjst58bHAy" - }, - { - "__type__": "cc.Label", - "_name": "", - "_objFlags": 0, - "node": { - "__id__": 36 - }, - "_enabled": true, - "_materials": [ - { - "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" - } - ], - "_srcBlendFactor": 770, - "_dstBlendFactor": 771, - "_string": "Label", - "_N$string": "Label", - "_fontSize": 40, - "_lineHeight": 40, - "_enableWrapText": true, - "_N$file": null, - "_isSystemFontUsed": true, - "_spacingX": 0, - "_batchAsBitmap": false, - "_styleFlags": 0, - "_underlineHeight": 0, - "_N$horizontalAlign": 1, - "_N$verticalAlign": 1, - "_N$fontFamily": "Arial", - "_N$overflow": 0, - "_N$cacheMode": 0, - "_id": "7a9iiLwS1KqqiX/+3BS+Bg" - }, { "__type__": "cc.Canvas", "_name": "", diff --git a/assets/Script/Common/BehaviorTree.ts b/assets/Script/Common/BehaviorTree.ts index 31bceed..1fbedcd 100644 --- a/assets/Script/Common/BehaviorTree.ts +++ b/assets/Script/Common/BehaviorTree.ts @@ -586,7 +586,7 @@ export namespace BT { comMovable.pointIdx = 0; comMovable.points.length = 0; let targetX = node.size.width * Math.random() - node.size.width/2; - let targetY = node.size.height * Math.random() - node.size.height/2; + let targetY = node.size.height * Math.random() - node.size.height/2 - 150; comMovable.points.push(cc.v2(comTrans.x, comTrans.y), cc.v2(targetX, targetY)); comMovable.speed = node.speed; comMovable.speedDirty = true; diff --git a/assets/Script/Core/ECSController.ts b/assets/Script/Core/ECSController.ts index bebbf7c..c159d5f 100644 --- a/assets/Script/Core/ECSController.ts +++ b/assets/Script/Core/ECSController.ts @@ -44,7 +44,7 @@ export class ECSController { new BT.InverterNode(new BT.MonitorNode()), new BT.LockedSequenceNode([ new BT.WaitNode(1.5), - new BT.WalkToRandomPosNode(100, cc.size(view.width - 200, view.height - 200)), + new BT.WalkToRandomPosNode(100, cc.size(view.width - 100, view.height - 300)), ]) ], true), new BT.LockedSequenceNode([ diff --git a/assets/Script/Core/RoleEventProcess.ts b/assets/Script/Core/RoleEventProcess.ts index e0da0e2..daff52b 100644 --- a/assets/Script/Core/RoleEventProcess.ts +++ b/assets/Script/Core/RoleEventProcess.ts @@ -98,8 +98,8 @@ export default class RoleEventProcess extends EventProcess { } this.graphics.lineTo(event.points[0].x, event.points[0].y); this.graphics.stroke(); - - + + event.points.length = 0; } public sync(x: number, y: number, dir: cc.Vec2) { diff --git a/assets/Script/ECS/systems/SysAttack.ts b/assets/Script/ECS/systems/SysAttack.ts index 026df53..bf2c990 100644 --- a/assets/Script/ECS/systems/SysAttack.ts +++ b/assets/Script/ECS/systems/SysAttack.ts @@ -35,11 +35,14 @@ export class SysAttack extends ECSSystem { public onUpdate(world: ECSWorld, dt: number): void { let filter = world.getFilter(FILTER_ATTACKABLE); filter.walk((entity: number) => { + let comTransSelf = world.getComponent(entity, ComTransform); let comAttackable = world.getComponent(entity, ComAttackable); let comRoleConfigSelf = world.getComponent(entity, ComRoleConfig); if(!comAttackable.dirty) return ; + comAttackable.debugInfo = null; + comAttackable.countDown -= dt; if(comAttackable.countDown <= 0) { comAttackable.dirty = false; @@ -67,10 +70,7 @@ export class SysAttack extends ECSSystem { return true } - comAttackable.debugInfo = { - points: [cc.v2(minX, minY), cc.v2(maxX, minY), cc.v2(maxX, maxY), cc.v2(minX, maxY)], - color: cc.Color.RED, - }; + // 即将攻击未完成, 并且处于即将攻击时间段 if(!comAttackable.willHurtFrameCompleted && comAttackable.countDown <= comAttackable.willHurtFrame) { @@ -84,6 +84,11 @@ export class SysAttack extends ECSSystem { return false; }) } + + comAttackable.debugInfo = { + points: [cc.v2(minX, minY), cc.v2(maxX, minY), cc.v2(maxX, maxY), cc.v2(minX, maxY)], + color: cc.Color.RED, + }; if(!comAttackable.hurtFrameCompleted && comAttackable.countDown <= comAttackable.hurtFrame) { comAttackable.hurtFrameCompleted = true; diff --git a/assets/Script/ECS/systems/SysRoleState.ts b/assets/Script/ECS/systems/SysRoleState.ts index 2976d75..fa29b49 100644 --- a/assets/Script/ECS/systems/SysRoleState.ts +++ b/assets/Script/ECS/systems/SysRoleState.ts @@ -47,8 +47,6 @@ export class SysRoleState extends ECSSystem { comCocosNode.events.push(new EventGraphicsDraw(comAttackable.debugInfo.points, comAttackable.debugInfo.color)); } - - if(comMovable && comMovable.speedDirty) { comMovable.speedDirty = false; if(comMovable.speed > 0) { diff --git a/assets/Script/Main.ts b/assets/Script/Main.ts index 701128d..6dc217a 100644 --- a/assets/Script/Main.ts +++ b/assets/Script/Main.ts @@ -100,5 +100,19 @@ export default class Main extends cc.Component { } + private a() { + let map = {0: 0, 1: 0, 2: 0}; // 出现1的次数 + for(let c=0; c<10000; c++) { + let a = [1, 2, 3]; + a = a.sort((a, b) => Math.random() - 0.5); + for(let i=0; iOUG?j(dg`2eZvS2Vy94+nFD)kxfPw-5p#B|zzkdLtlIl|8nkwpo6jtV}woVpS z6doLG>=X>{t~Nj`3ORWh3VBs2843?xPDU0Aa|=rocY8MqXLl2O8#iy{zZ(Ea03tj* z0z4cd0s;aO5+X7x4jL*73MwHMHU>92?HM^3p)olH#a%G zfCxXQFdG*)=YJjog@lBJih@djhDN|iNkYl_|6G520howT!!S26P*ebDOeh#ksK0{% z@_(FgQ2$kc|5;GbFtBj&2#83?DE}5Te*!>5!N5Sn!ob17!v0(B_wPOc784GOl0zIG zTg?Q4${B|*SEgd}rBNI0dFCV{vpyXF6X&G5L zc@0f1Z5>@beY1Zr%gWlu*4543!_&*#CnPj1JR&kGIw?6NH7z|OGpne$1XNm9UQyZ5 z*woz8+SdN7e_(KEcw}^Je12hZX?bOJZGCrd|KRZG_~i8L=JxLX;qmGD<@G;YPym?! z#`<^tZ?OM^3-ccrG%PF(EW&@dprAefoiLcNaFiVISmJ63CeGMYoI!{<5{ZTNeMrc4SKUFMMSXt;N2Z~lY!Uu6GxV8Q=iWd957e{-z^P+_3{eLNUUfEeIzlSf;GNq1Mh zl)8P!(06H-HgRQAEhD?2dLkntjVi8Nn?8mAz~_&<3)(k+@P51%BTc}?$F)z%v}J9D zq?S?^giVFognqvI48Qa*K)oqJDO7R!N-r~FT&4ZKlGa#r(VT;E;KyLz#I-@odi{)h>@Lk`_gtfMY=y)o5nx6Ic zFJMAqQ|QJ}GH{mnqNF&`uM#hcx>bX2G1fK91Ix;&+OE+^|C?T)iJ7INELU?j5K=XV zQAWL9^1C}39aL;I__(gy-m1Rk0Es1SJ1Z^~>9UK8_@=#qR)THV^9AR-uj{EkrXmaY z%CWgUD9tgAe-Wtp7hoY%+aub%!?k^?nYqe&PydTozTk_TlbI^``69p~t)IvCO z*84e8YKy-&q708Uac87(C)*oF8H8D??eb2P~*yr1`t*-Y{yP9eq@n}C~4NC|3NyAPweD(UKU~4*1WW#scY&Dskbm0;W>8EfBvp4osGM_zH-%_ z+jc27-g4i5P2XynC$|dIivI~V`F>~q`{V2>>%)io^sB<^)moO!HjTYY!n4*yKB@69 z6SF3`a0NKCrdQXkcJG>gzSOW$BS@ag{4ZwmPp8`Y+}d2aW6UXoF^9o~GhLD-mT#$U zZyT4&dKawR=Y(v)+}tv+AjZV8<5K21dzRw5y5M;V=)oXmp}ga}8Zn9AsfW!FK6N7k zW%LtMQ*?|k`W-?F1T46N-%LJF;QwqDi(@n>Z05Zzf9$0oE3G)w#?uE^G<3(A$3+UM zd}CHI_u4vtvdueuQ_0ccC&94ICNjLu$Mtf0cHYg{VyQReVyf8$aa?}bp|4!>;Vp2p zcTg&hg>5$ZtWQmD zDMzAeqRQv6LVS}YlBAv2MF$}^Co!VRwXtI`K+t>Ui?f#S5yCYznE7MG9+nY;^tyi}CgtknFqK*4Rv!Q6%0!>XjwZB1? zi#2O&BprI4Dmh5w?m#aZ!6-JiuID3JgU~j*wBjE~-pfaRSBa-~e1DsBCNe{XB0U35 z4xo`uzAZ)OAO-=MVtcq_#Yd;unJ-3cq2IJ(0gSOth;cg6IiGQf+D>Ela*wQ@mGB9v zva;CGH17h%+{NaIHFNBFm^0=%4$u+6G#;_rTyEeKx02~&l2^?s z>jEeKLdiCPM-KGW{dKr6_+oLkkhP>va|GgmHL^b+mHG~=KhBsg z5>%J=0z2_8$ShuT;}ib^9zLpaI?~iPCg*{!6OIB?$`eFvI82o{7fiX3pJVt}`CdqO zWW7r+x<@&X-0{OJe1I(OukWaTgclrQM%?u6()~uPXKZIOATrKj>1Mbmn;#tN29Du? z>GApN&5$MMKLQ_2QT0vph_bFzG_58kLdw5I?|d||rW*zm2uDrwLE1?YCf_j-62P#l zoE$j^m_KcPcazlk+gsu0K1NX*#l)hAK9&=CV`-*vu%LUFnXE3m8O@{5OlWdO!6tgM z6gEy@g{Luw-r^%1GV$MY8!-<0>V;p+$3U~nkU}Uw!wRJu{1lOKHnQg|nJuZvjpsv+ zCEDLw;-Ia@rxT=LRil zcYWB1CFUYGMxSPffp4Uu(~KRi!^{~eTQK>eD$|u5UF5f0#&2g$?P1efl&#Bolf_j~ z&ns}*(@$7`0o$4@@rMyp+!24^A^@b)FCUEKQd=Q8dX>H%Y&(9@cAj zRt2+LxQI+qwx*^7_b(;QVgx7X^zKh+u12{YDkK2t-cu&eJ~ou8mvp9D?S_v$vrXn% z)(ddF;QXqwsZHEy< z2L~72iwl=V1gQ*FkYU^yRgt=+X2WQZi!Me*CDs{leR8I_=%QZTk*weBR>X26yYq5& zobs~eIyt$1uxdv`XUM5sX)El)YUsnc>;QL-6F)AQ5(TwIscGp5cebmnxuIGDSj+|o zj%F_iwYT&WS61e}#c}gjC5~9CXmOWH3<_ofldlwoZs3cpK{RUqnd0SBTO7>`edDH5o-&O(&WyK*o6*p8V{pGzqqvBi!fu( zg_w(qrdB!o`~o%2P9N%-B8R{L(3hedU7NoM|73Sz(kqdW#Z!nIdW1i-wGnfvnIaH1 z-4)m?O5!;DC}C&p_-?e#r`&d5+N%IJ0koK265dO+aHNxG+Fm36{nhc>+1Xna;>SxQE1b0XJ2^bA6t}Y}RVNnu_xwPQ|}zELZ=A1g6O>L_It{M5P%| zyYS0I9qRGo(kV3OOKhJeYRe)MW)g-5RDEl|v* z!6incl8lvF+RuA(`ROEr(r5u7UD}=vx~OZIem(F<@GuTN;!wmJb(hu5k7*}_iJW7S zc}8#Io^{@JO9l%Ev=nt z?+RV)82FW-`b}H43mC@O5?mF$dut1-VhuI9}BX zFTJ51AKp3~jA=wk%U=qt_k0WQ5Soe7Nyo5E-y&H!w3CA^C)_|BC^Wv>zbU|pr@HRX zqxrpb2nH{Dl;6r6Q6xq%iROxhT*C2 zCn&}<3o*%1+dLHYCsSn^`CB8V9nH;UyFzEniixim#gn?YQPMRB;XkLM6W{O@Ob6)z zUElRU5q`b5*jHDOm;181Rsr8Bd{s}qJPpr014lUjz=sO(-h4)hXDjDGUF-;pkl4+x zkxew5+8uD+MM^I>5v-V0;;)W2*}%|C)=b@=;zoehlWSGARg}U4sKQPxbaDF3)J{nhX#X%oVd!w;`X)mTN{pA89XEL~#>Jt1|tU zIIo>LF;eAb7C;)lgf1Be6%G*K!;mD55pO{e|N8+@tO7|B3@nn&T1zcjm3n~!gG*1MIB zLp8^WzcSyBE`5e|Ii`-52|+v>*vllwJ@37>XvjmG#GQqWQ(jB>2agc`e zbQNZSW1dQXmYHH5TklzE7I3a{Y>1EJFThO`o3qG4>R_Q=$9&J+c_5fUTic=isB&X8 zv2<8D=criEnM-sMcquiIF{j>6fjMGph&&Z^sHYd5+yOR@d-C9J|9R~^#HDom*ow5O0Ke3&( z3z}UFvZ+G8C}q_$aN(+*T|B2$Yo&Qx?C`7Ljc+Spqs+W%!j87a=%82_-j+|*V`vLY zI3iiFdcg<0kARc|q1x10d{;Z%FO~Nx!a1?KJE>Q-CckHa3RyQJb*PGUag}`*7d5cVoTcFeGcKE5rFutKcyJc%w+#Q>bjwCm z1w2$uk%_h1K0e+GV6vT-3LNa<0sWkqE0&u`J=K@;tdAOf170kRGUY!%Ie*xSF!#6C z8=h%EsH&P9`+%IpuI%R@VnjOHw54mutv)elczJ44UtQZ?_vZ_>eHm`+Lr_D65bhqU zpJ`G7t+#TS%2VC@wtg431c|e-pYHfGpbt|KNQvb zRikZd(_4gz)j-*SPd%&OhB{5w*u*-Uxnn^Lq{Z2j)~4#by__3VEJZ+f<*!Z6yz#rN zDO?Ms(KIBlGaoEfFCVcH|E?98>iK>dHtb@9rQV%rvdVips!PCW-9^Vo>6cKVji7`boA!+~Z! zXN(2Oju|dNTM}c)$F-Vuuc6 z&K;EYo0{8~Ys^^k)UYNysCrEa*dR^m#u+Z~=-A(dI@JE^sy=0U5!ytij*)(@k2zf! zL23&ZF(KVIZ4>CADpyc+A02v+tM}7Kvwl3jjXF`CK^kENSK0w5jhs6NS*4-gUb|XN zs!o)FDJ*{OOKeZwsE=t*OK)&IyPXVBXs>j&(+Ui5P5(4uf6f`pnRB2cXXV5OR##h$ z_irXi{CYCJ^U1a*muYQ_r^>1J$yyS!2=po^RN-+erw8fsTAN8u%NYAq1^)7zOMg;i z*K~iV`U{XRLuOIBtzkOaeO7ZWDDgl9C5VgL7W;}CnSS$aMhh}2fdxL4qel4qYASKL zA#*t=eebzC;YY-}JgbN^H5oFPQ4;i4KD~f$F-U;EEy9|OSqAnGC`#HT1UO3K7>~`AU-C9-6#o9jT(+V zF{=?r52}MGM5k5mSiy~Wl13>1R6BOwuZW;9PF|K1<4NYnoKro&B69faj-Kw6lXJ>9 zsE13P&c=@gL*u9iLZCZ*{THmQZFmWvMqjOd;pt&_+6m&6&xmRKGdZ_%%)rMd{tq$a znJgqlP9+QhMM1J1AI%$@AOrKsFlm6rG-KhF!zJxj;Lnn9RQLeo^VR(h`@_#+a)T#m+;TVFC;#w%@E9q*4F{+Y_RWrysd(3qbG zB!S+zmYd>hBh%nlb#WX=3JGQ6*ywOxFFN!A z>=XTn^~*iEf<#3f-g%59uNf`dsT7K=FQF;ueMndB`}Y-}YBt+Px@6rE-4I&Z@Mp|>S}0bV|4%}&Pao}Ql%IpXQ*gPNi<3%eRT{ARva!bneK%m)&;)SGiG+Fh<1LskbqYGv zL=t%=zSm5RzFOVY*bNZbo^{hlk6pcItYTAzkK`32OuXBzIb42Ciw$47h=7Bx zfc;!(sO@fBexhmOIylPPO5jxedu%*U(t&65w41xWgYq-Z`nYeN>K~DcvfZ2>8kE!c z9gh6LLWr!2iQ0_{I;P7AbZDU7vF-wk;Qf$Qs!qp_e z&SE;g9I9{jZ(MO8;TZqHf<#v{4+Whj%(IMs{d^;sO*p+zj9EL8GTb$*X+nA5b&9ZL zh!F?%8&gw;xAU4e4^8diuEK*FO9f;fguI++2C&5V7dPH z_M;%z##!uPM%EhhhCHOlkhI67B!QqorABOoL^=Kd67itn2rNy+7e7OpfCQj*IiYn$-f1{95Dwy@XVv(>4Kjc zivgl0v(af6BAC(d$$4^xj-*s}md4%CK>9La?XacF;jzP(-T3@Xo@9>kl&h)t3RcO& zn#9Y{3W*Xd_%l{h&o<-|IFg*`=ze2f720^!TTUM$h&PpNgSnO#=?QR91ewp{YOXao zG?|1vK>w`CNRN#wUMLO8JC@f+)~~0(E(&YoTG=*_FyB&qM2zuN4%U3`MA26R8iow* z`{{a9^@N?9rvQ0J`rGP--}yI2-Dv4kh))8`F^?rZ+4rYPb?khw;M@(n^gDwh5pQ}> zG@{lSha!9l#CM?`I#sz!$?Q~Gi5e!FjS_?6sPTbdb+~a@)N97J+gl@Kid&jczEyHL zCJtycU*o?GB=mnKSsvMpg;{P#f%jupoeuB_NOhOqwXndva@7&QUFTonD9ib|j<}ZJoL@IWuES?A1sD0{i z!`0zlLt^mJPON4|Zjhc=pmScxiu>J|;5;Nr;T|`-(X>yMMdy(v(reXhbIFFs`bjYi zL6u2%;ro+_Efh_jeJ7iyt9tR|Tm_UjS+h-&tPb}8nUXBh$Rxt9LYCnQG;PFkp5{UW zBk7=X`k9QlmJ{a#u3Z{l)RXHkjmuNTH>$Qo#NN?iA)X;W9cCtI#~1ymS~hyfLYY=MVr4xO8#Evc0gADSb^NoW zlT!+x$|+z1bNxPS#|?2C*!G{sZugfuv9I*=D$x+ zUzurFQyAD)U@pQ?jEmh@#UU`c&Mu+3oRNyD*j1RT*57iyE3InCU+8d;QqR}%T%$@> zkG5jA1z&n?w=xZU6zWy%o!8L)VjqBcFRzaq@$B(WEnmOa$s*l9ZH-(>tkH3CebMf0 zi1|gG#i^eoa@ezq0-n5isi6Kkn$I!Xhj!01WBZzLMH7d}8Q>PL;AG}WAV-5uc+N}D_Az$QPEcM=*o zATeu^+;5|oO;aM!@7Z239YpoWF&0@iIou6GO5E8JS7zI!-Kmqdo=IB}?^tEX<=6X4 zg;c_=3-gr)rKQIjK`6!O&7%PhN?)rkyR{S4i6e;1>SklZhi%tYA*^@wB7(^i=<-=} zql(Bc_AOhh6{-RE4gCRCIq*n#vpZ$)>}`UP#rG(gLMEOo=eUbGMb9o0W3!R)FTi@9 z<%Uhypn!UI$s}KK!2qV5epSthCNax$l*GqJBdmcdzT}l$Up9VGfPls4p8$Uk15scV z_sGiyxuA$Ku@QfM%1F>}SeW3ZAj1+xoMExW-~tlf!V6TfH<=i_?2}wwz*#G;Vaqvi zvN&3*RIo0b*edA8b+mJ}hqY?~b^Uor_&!Zaj8K{jAE0VY7O~+1=u3Uy=IabIS=CRN zf!5nCUhwrLu~o9j>|ea8TIv4+WWtOLrV{uGE;T_(1eYLh-5(zaU_``m)=BHA4wu+t z9&W}XgN7IRQwV0F7S<{2wf+`~u({Kf08sF|#x;*nWD0E?l=#GVC%-UMgj~EutZxL1 zP_yW8_PXK@aP4>}g$Y_H(fxPki$p5T!*jzSDAPQ_c>42UnkoKaUc(J}<8C z3z1`xVq(%Q0ke?yx^&_wW7Da-4c>~nMlqQpq*1FmLEf-BGpc7$RCc}@or{#Ih%ZFK z4;26W>Dup^=+8}ZCbFO;J9d{xF#R~f+rLg>eU(DC+OUU6t4$5p9(>H>lpymer3MS@ z+c3%U3WHeBz3-b0u)E+DWB=`wAOYWK^@QwEUKI2dTgWnE9VYc}ooX9Ll|4sY#_63^lX; z&>4B(mYCs&KQYFsUzXyO_6AjQHk%YrNzW0DHQ`esLmgE?m`BG4LgB$LN(u)+L(@_& zSqs0CxkK}R8Na0yhj@!$k8f7Do7K36wQ96e#9{x9x-e(_zYH$SuV5d?b5=l4>JIuZ!tzp{H?U*lx&2x@GIy;hU3%}3CTfNn z&Y%Fd0?98+Hl{|to*vDqcRHXZuzem}?kp8cgSu(hRoWEuEoIYRV zRFbr@@Gp`=X2aQS{Mi3e%?5G-f`3XBTS?i-NS@&@ms{+T83fD19H0NHo^gub!~Jd~ zOM|}1t>DBjQlDj~o=Ai~6kPvMI%awMBWZGcZO2W!GCd7-uJR=_QCcE-LetK{r(Rlg zb~LFDt)rP)x7bs99_v^Y%>!EZi>Kk(oL0c#BW_%I#?XP@`bj>cQyWYB`NNRMH?EGj z`!3NHrM9?4#O=d8WgIxOgmXj7f@)E3gJZKPo^o6q#_ut`5c%Zw<_qp}b1H*`>^Wa; z)|8VKS##qw-kIfJ0yX{Sh11UWMT(?T*bYQ&yI6RnqJ~<;9odbjE;qQ>WKT0E$B_ogbga0n58=iJQPS2}HW^`sLQ zV^FRNCUmVNKI~=ao|Qm;)6`eQd)-jXC=I+~8u4a2lNDMf_kX!K%~R`QPU}co*PH6j zt(cRe5I+t11m=F+@;lwy`?y99byi8>VJ z5Vqf!x!5x$jVtq)nDx;IGD)>JZv-)v1HbV`Etw-wFUN#MuJXEI;B;&>tA!otE@Ee; zme|Mg;j%`uEgi-rbazJ2{r)&tK^dSJ7+E;g^UW9~4%k(R6PsCjGWn`Q$T`EV}wr5WTdZEr~dL!txK5Q-9GC%V?Wb1RRFRdSl$LEM~l# z2fD1GtW6TUeNT|3F65geKh%HP4y4xWunKCh5ou>!U$uW%gF^5|9OZw^>1d-Qj=(f3 z4lCjVofwrWp_WJv zzGS3JelRRbXn_D8mPlOrov~AD$dsJ+UtGh0*K758xrA06Dg$~1h91n5!3;+adtX{L zQKyI8azcPLILlhBr%*PoVj|Cn&bV5{*H#FaQ3mZk{50b zmVGGQF~tpbS-Pxjfvc*1k>Hu5Gc%@qO+A>0}+VXtIert&;Z-YOLwvfgpalU*XpBG^gi=naMsC zOr&aWywlu0t3x1i+@Qe&zD=5^%H1qpM~=ojcaY0G$+M@B>+`~&C0DqdmI*0-gYk zXhh(e!;`~z;yl?(+@gHWwsvnfjQ-Tr#OQ{f1NAr_r*e5NKCf8-LG`DSqkJkR0mQdO z^tK@Y-3|gFeU}Q5+S`?J+^mrQxLF4VVp@WQ7_?69F!1Y&`t(!@s*rWj+UST9lON?@ zkb|FDvC$OvBm3)12FH*);ZXH6Ifj|CMr~s+K2Y*KiVlO$27%Kl8UrOfqzM%Q1m4OcsBg+suX*cr11i#+9$*gGM zaI5rrJHW+v$t_8P$=;!aZ`_X|>qwzZosU17C9?N2uX6!cFMjpb&_}(k+E#(FeG@tj z9e&TxPI;Oeg}`dHFgQ)bySjte`Co)hvrRd?`>|B@Hj8}+ByIeX>G8VkD-g>mW}Hdl zNgC&q5cWgD{o}K%)uqRCyz|-W+jg9HUaGr$rD7H;l>ph5lxC8$qFIHQ`~x|Pmz*#M z-0)jzTb}D(3vUgABJ#9ZR5P&{HT^mWZc2LI0SE_uykv(LL*^2fx8y(Xuy5wKt57iMI4*^g@1h|R)EKCI0NIO2E)r>-(qcmA}EHHEdsf;M9B+manT8!w}A%37y?pJY=`PVHY=-0GLEW0#B zCre1c8e#P{ecjaeKTRFOg3H)mNkd+PWhc!jUNx(H6OLTIc?^f;@I8;9ig+uX&BL1q z?lheWKU?}QI`jlQ;~zE56_BDA+sh8p5wJV^aD8tK9xoiRvzE?gG_f`vjYoMF|3)Q@ zN*`#y%e0JAH>@CngrYo_2_8DSH3bLX&>VRoH+qP?vHpT_0*Wlvz9GwI?NlNscmUU9 zA!f$~X^6Y7^2xPY?c+)bKiNaEB+?z_LA)LhY%@A1)ip8=$+sP=3#$db9}`AlkR7ED z`ZKirzGn!+^BqID+Sv?5c*>sDap$oxkz1X5PV}|^g|!OdCA#S^LI<}V%`8w@oqv;Y zHgj9P@m@il``Xhc;esnSMgZ=TKJ#9PatoJ zig=CV6wk-^#mVPMq;j*KvGVJay+xS+yYqV+>B~dK71j|&$Dl(;p}5}TiT|oz=s`G&pkn#gO?sTAT?6+Kx_*XR|M#+Gba#;Jy%v`m5E| zepai6Z=?$BV7p;_`;^Jc3esCLos5dJ4r@X>F~g4g5Xb6@T$)ZVY#0glR{2@BB{P(# zdR2$hrE;)^G~@z$Kgm~{x6EfAK0|cL6bEM023l&h>a=oU?p!%?dk~%&=sTcZ*O_z=EACwLIJ7bX!Nr5RS)Xlhq8!5WYoKF;I#`P4>u6=JE_!f9_&{sj$gvKX zRAyrH7m)|d7r~)V-?$(Pq^)iOWJ~&Tv0qyFOQo>kEYVd3rWvv1m=FR-dPwh770RX@ zsRySEQ*N1b))79>RDiy+wQow8EtWtt3v zY{7GQM(>xT=IbcE>3w>ADI8UQOMyC{3`aWX8X^5S4zqmRVQ1E$ohZt(sOV8 zI7JkK$WvqW44IdfLx~}N>uRuP0n6AAV6?nN`yrCarfM}zd093n(Pj%w&4ZyAqHLVv zXdQbGx)7^P7+ePp=t^p{X642`ut7OiPPFAMhQ4s`;y}ohVnJX)2AZ_4hU^e~vfeG! zlri(h)?~Z_P$*?ljum;952_#)^>r-_;yFB)lSKP0x;VRxK8@4qC#yx|VCn z8$YSOflHC?ydwBFFKj&cE5^`x#FSd=)|5+Bg}x4V!umC>WL@*o<2CeVI3Bkp&m(`= z@V@5E%VQ@C(zj?hMS4$0n@KZYliBF#+fJ)oBuqx=d+=0KZZy~@KOV}r*>`?lOQb5? zcTCQKFj1G>i`%~YAulT|j+akUCoE+!?sl5s_}Eom5pfobi=n_7vQ=akMuP62Dl^%4 zEjur|dw2=6)t(}h?TS(kao{L2DG}aZ*sA~B{B?nqZ13>LRL-T=7*AzO0SBFgUc6kb z;0;Sw*yYgP0NQR`se$euri0c11i@G_Qj7zWerCqI+%-&4Q*!Jq4!{Fz{k?>h{hl+KVdNaui^ zB>yJL{k+>XFvvRNCbr5aK_9YM9HX7I^{x+&Cbpj2 zm--9PJ!3b-@MkU+eH>Pi%;P@Pc3lwdZ@zRJrOCj^sjcAgxk5n`<<+2Z29hGZWYs2Z zBu}~)?O&X8e&i7f53XfmJF7gV&n`*R#tZ%HFR(HG7>28}bQDG- zi8&>1;PS1-Z}zGkK@HGB0?-+?`Gj&pI%-KP4B3zyICEQ(t2-|?h74QoXxnu%QP2;S zrPQq7`$4)94>%`4HrC8^XUaAj4YUdM>6aH#DcIjk+_Y<+SIl`m^VvPffE}Mb(AFGP z*iI{VD9z9WiHYlamqFjH7uB6ii;=v!Zyj$}^8zM;NK4t~yWKbeXE~&ezP*aK`owcr za&Tkz3D$E+K`DGht-_1$j|!o!pnqJc90~GU0qSa;MkAg`Rr8`hQI%JKRQQsn@fR(} zJkdtR!}doJH0x*VVY@vA&z5$0p;2ikAKC8Wtq$%)C;{8CDKNZQKtIZEp*;nWZLI4N zywD86VHMN%ZeEPd(d0SLdz%@FYxg339e+*hrSny<{bGe6$6G&0=?M*k_%~g%UEy=M zxH~KdO6e_X$kA=KCzQckSJfH`_BVsQ9_XpEsgEj9n-}aKGwBhV*tC7JqAnd&iEDCE z_zRz>%ADjSB-~gxZ_{e~Vv}-)YP0eZ$#}t~`IPrzM->fWj%MnT zZ0N&c@>4}I;?Kp?Ok8lJg(E?Kf;@7lMnc6z!l8SsQ!~rW~e*u1)_=FZ)g0=d!W4H#%rrvC&z((1C z9W5A(1e*Ne6jpv#RzPIwb*FBEgjcauvr1-CYH9*%`07=$wIgH2qax=cN#Mz8AIY5zd}y4WWG%&=%3AbZqY>)psPY+O z=)mcVW+{(o({^L6{Xz%n6lo`>|kMAJyWV_?i5KW1C`Nr7sj zVGv%>?r9AblhGI1h^G=^46wJ~UQ;MU`Qnl}XZ)CUqsw6VVQI;|Lo-QtuK})mDor^5 zy6)kRR$Qe~Oh)RTwVnwz0+^zpS^pleXFnaM=d4BCpo;rJ3e&`F{@x=fTTi9MK1_IY zaVNR=9nEz73Wx>Ia!FMc7?|XV4tPJK=AAcnAKp$UOZC8~YM(dWVr;Zr=VR{=I@jD) zDu#U5c1R|tEVfU@NW5T{;FAt)Qp#8K$znCpA5wU0H{+-_#G^kFsn<_aao|gIpr>>~ zByr@45gr9X7sB&*E9Pq~E_EolaX2<4?bPN?GbmfaFlUd+is}vwvKduI zwO&oqLyT}!n8`3Qsqbl)CZlNa!{1Jq7D9jh}m&+!w+?lsu zb>xb-2dvDvxkiYGT!Ik{e>|Td=dJQ6IXX}$4o{WEa_9CSXV-NwozxGuut-AR3YdK` zE!Gn@-tGPcbZy_28*9|JLa3yZB%D(XF@E@HY<)kgj_w=Xfy#obKuuP$?5I(`|3mmG zK=5l%xVA=@0$C=>;;kWzb80p+$FT1T4`*oZ<4&ndk35UI4xgpNfJ>gxQI*K9t{&e3 zAIO|g*I5zklh?WOP>HSM%#FJM7||Jv+6OhxqHupom5C0 zi+5XGySS5*UH4VZg!^0k;g<2%Zn_9!6`x|ma9L1G1KK>QI}dxB&G$6feO3}m#fZ0p z9E|0k)!6dVn{6bESVjtMm?QR@bfzCZ=qV?rb}<=L5d0~>z`Wp$3*)*#)n}(y{eH%Q2QHKv0q`%*H7`D*g;yc6ucP5k{Yxh<7e8fw2icx5)tjl zE>-#SG3+A5{eOrS-+A_5Sg#z|ESl5s;+dNaM`rmZeceWuyJ$9e{V(OLe91s%8`~Rr zw?I=p4UvB;)O+;W5SJKuQG`JgKd4R+FSK~C{axqwH-E9oV--O$%zO+K{JK#y@3yT( z_hN4Z%DJrkVz=&}OETR89SYI@WZ0zy26cjZS#x6lrUFyY?X>mnG(%mDH2*_ci1dIw zJOfH3+JXx>P*M2JSv zTv*=BE*Pum-yuuwvlV6PZrgTnwcu&~b<8PUje?mI`$&2&D?XViKV(d7qd?XHTaXdf z51YEdzxgf}F1R96Cd*3X3uHHN$#HVt%H;Xo5l%?UhpkvGAwShd@S0FqsWb20P{d*) zf2$(kSbJOZ%%)r7I-%_tnWZ$@S#jd3S(C+IJRv=FciTY1FH&b);xm(Jhl9zEUEilR z4XDC4rc>vG+tq;!Jik^7))uNou}f=M9kAeD5FQs>kr%!BbG>WeP`(kdn$WS;MoO={ z?aP9cU;l5k!s^+-x#_Oe6#w*_pVT#RS>ZBhkfoz@XhgX=Y@hM!FQ9I80mRIEld1aA zw|zflBIkr_@HvbmNtvA)LvPu>aDk25cbY~5*7^k^3xd50cTsUAM4iKP@@+L9E?01p zJ~V532j`-^|vG`Rju;q;!thK$dE6qA{yp{U9BDi|P{2*1l@?kJ|5ZnJESZtV|9YSXs2 zReqNrELciy6Gv$*y5l0Ffwk4WDV$E66}0LwrLg3vh{MpS1+*Lw{Hjc^j{l1Cp!Az-h|6CH-*~~dKj{$E}}}I%xRLzD)+riB=%Dd z+;7>V6XXH5AX`Ep+|)7~jak~(w(kay>DIatx@BD9U~HS|_F(sL;-CxZ9BI#%q``Kk z5w@Lm)Rq2(o1?{XvAfeI!h8WI&|whuHAv~L%g0yU>X6%>N+lf-j`Q@f9#@u5Kvx*o zPqNPqiou`AAF>5Kf1pVRCKoxD#@7&_hi;jza}w);zF-Z z2xXZNNBKolTkVQZSA6Wy*c_e=luycb8Uq?nHSgo-{sL6vj{s>`Cj8dhE-kyOWW(`p zc)V_4@uM5omNM%eGmm7~;V$BY42(w=kdO6>ZrNCF*>dMhe?R+*6NK_^pC5^SOEN+J z+{B@-fS%sbEbFlH0ka`1B`}EuIn(iIA@Z;C%g3LwwH{lvcB>TUr|bq3CV0U{W0 zqD>z%ng+x%b{1jB?QKA6W%lAK^GDoXn{Tx9^efw{zp{8XU~Pc(iUe!YDCoV3(LBZ^ z#64IxQ=sueDo56XpFfg-)Cpx>b`#)gd=bi(=t{`VyJVLN&1jk3@6D0Ia&y7~R?~6C zO!`ei)~A)|>D<@`@9*!$X%%|o(gqz)MTu0aowp;&57l|$^+fPUa2xL+RHu zp-o|5HQl(+biDqUop|vW4mIu1H+>UXBR#`Yn&`L#Q;jBSSaI*9vaPG8e#Nv0t! zb)(nO`5zZ&FY@yCj_EkYKbUu#J7&cz6e^$IzvI>xuDYc~mTe|FPKGqf-OAU!|> zpsvbTc|uogP2Cr?{Zi9V#+vr=gDE~_#t$|?qbKG5=;OCFPh0T@sVIc{qXP4P-3M=Hv9EQ)rJf5wtmnrm`dL%#NRl(y$`f4oom=DM6x zcM?V216hwo)Fi%GXO{hAD`l~;s>}#1-Od5v3eWR6`I{%XJxTR6`vkg%wIo*IHw%Q!yN>Mh&S+Ll8zix~M7o+KEXg3md%EV8royVHLP~y5T8HH&Uo9m9X`3G^O0~Eh3(RUNs_|d?ZOPKm>)RqX;OEvg`$!)b|-?Z zP(yp>NXml>hXs#+r7X?oV>t{u5lAoGxoxhrax62r^4sn(AI_!JH5lQNE$_IKoG)SP zT(sfYuzvS6izq3(9GME?;K-3)rkebj%F{C8y$J4BqmuAR~c^S zpsl+*D_eDG4#_26N$e^L&w(-Gx9~ zq3k)S^+1-_(m<0(E29+i6F6Wh%SI=D2U<)V)ysQin^3m5l0u7dD#lz4?c8ykcdnzx zo&3|J-74Eii~Gk7_tCva zar8Cccn86HYUtM5#n=~fUBXC76d2=H;~4I7#%qK|LGY&UV`TpTY#<~1qhYUI_n1De5C#cvIe%NeJcKwK#~?NEo~wE&FO2%Sm5%{^pwCu^|WHk=-# z-~9Hf{$>p*lorAMRDhK2XFC^Y`uCtt0bRNI4tEZ@?TT%&YshE5AM(%AZv zD>gE4q805hukp4#_{{TX+tjC(n@Xv>>{4t`Yooy@3yV^&Q#tSj;j@$q% zQKdycGpPJ)hHmY&7Zb`9d19QbulG)9ZU;P6SO)oGmt`pDy(s6sARDtDwAMpYg{N(* zQ39C;j&X{#V-%iMK2W(^nlV-kbkdZp7a`_~kgX=tM@lR)n55bdTH(A~@k>bX=zD7& zx|Q%HSVrHvg#Q4x{XYR%ehcw$k9=2l*LLw~^67TYJniv$UUqt_H>e%{m7=8Wb_b|j zFp463^c6}7JlPcw)v9^eOyKeqb|adzXCBntM=eQcA|zuPNeg!A^r&uF%2eazUID9@ zQ7KLR8>K724X)K3ftsK*VgNbxH7H&=s0`60!Ak+V-kouO4YmUuwmVZ3CJTyi6^b>- z41aP;_9WCYYPVAi1w{1kO3X(_25ZNBX{i}}MSX1|4XVN_k%ZPAa zZ$4i+&u-OND+_-(HWxc^E3ug(YX!uUOnZE*{c1^ORX8I#HB`Bd)w{zYd`AM?6uG1e-%1{2tZT>6iX~n;ScpJg(#42NmbI^Bc`PbAT&TNWHy^ zM1~ROM6bEm*}K*?A$4+*bHsN#l*=?wBS&rbK5nue_OLvTQvHIo3S z-ROGPo$6LkXRFU_s8TT@*`MzArA@7k5gJOu>^qRCMi`#dlFjD3Mx$`Y2eJ34-S#V@ zoSgNhh*T*n*RCr-u$c1xTu^bhAm{5r4K&IDQMm0Jn}J%|c7bs_w6_kBTdCW>?-&07 zch~DvDMl*nt6a>0O(S_xp>}RDTh=-UlZh^fE!ith-Wz*RBD07fJzcqGrd-_lTtwu_ z-MZH-s<~+r)NDtp7~_s8LXGMIDiL2`j1e-9U-bHG<$e76Z_+H6*eLzFZx>KD5MA++mphW~5n&w=rk;WbPby zrEwN?p%tali}+qhNd4QX{$Apzxw*XibeDEFa)9mgY#1$$o4x4LBv+j+rjRTwNpSr! zT|LBcUFqtYP)3h`%(3tf`_+`>lhhH*J;b*+Ycyl!Q!ZIpM^9&{!*vQeo)3RYxUwUj z924nYb!$D&oqVtqkVx5681?H~wq77q)FDY@BuH_baypbc2kN-fx=OaN6Y9bzI$!ygX`&0 zk++W2^#&Of%A9p%^%Y=xmYd=in@6_$Ky~;g9}(VJ_=PP}>D0>x&N~uv8~N0@Nt(uXJ$^z0H#p*!92kZx ziH}&7VnmWjBmiSA)YXf9dPqpdah`^=u>GRB*khiQ!kb_HmaMCP5Zg|lGl<{1nvV0u zRuxlT!%hCDG8yJ|Zp04^{+D;78xaAzMW z^sNzV9?`X&4&2m8Lp2+NXa&j7mm0G$AH)F8E9P76W^I31ywvWbCTZj^wZDOXg?|Bx z`Y&0tmg>fPD{HABmROkymaHA z&blz|M{qb5x{Wi2A4*Yj9PTmzYAY*?JvKP+X0?j?=0zqrBqwA%@XiO`C$jeHYdFYd zB%J3tuE4Rh(?(+s7!gSB+X+L4_N<-YgPwERuR$m*qk=lpVQU*~^T!-g4XyIw>L;2h z8+Pz}W74Wma#}K@jMNsACA_9b`?%_ANwE3uJh@k55?iGxyhnJ9bH>G_Xx`s%&Ia6v z&-Z(MYNXoQ#Lo8V`_@0}2+q;%RBdiNxgKUD$ll#WGSqZ7ZU>gjBxeI7a*Ca%P=uqY zZ)2LoH*X_+&Bvu%w`En`>)M@#$})E->Q7#@kQMU;WaBN2`cp5Z+al!(lDQt@s2iR^ zQUMgg$3XML3v7jW9b37n;<$1?=#eqVCm1!)#eAFa$Z_1&m(`U}ghEemN>&#s(5=u3 z$OG6?{jaAuu1U3di;Qhi-;CCvxJc0@ZJ}k|u=?YzD+`p?Yp@*Qu;b?ju>3=M*Efvv zC@&^iu)9EG?b?<-M%dm(3oa5#6i9LWC5C@Y*SzZ93eY@V9rIhlCkr}oWCyD`Gs{_K7n`QLi1^99wLd2(uE3R+CRJ1w|jRrnc^P? z>Yf$YFNhZgM+P)jDq|SLq55rX*AtCvTd+`zuxueCEzF}GSdWx(&|zyx&7_d-aegQ8#2yyX^v|^4J8Ktd=FMfW0dAP?eRId)YnqMs zlh^@W{{Y237D;c8yBx^L<*H7yKRdJX?H&5`thjs^_PqknP_emDaV5BSg~twgKPl{g z!mcu0w_(ubNOOV*%1$>^*}XqX(Y?`cG~FuN;^hotXJ+z<`I8)E{cA2*Zd674r^Mqi zargPhACDDjs{!dAAMn+!{+HqV`C*JbyF8LO;iMVLDfJo6cQPu>tsHhRsp(T&T;85P7O&d2$> zV-(Y>1=?e;BIjG>c zhUy_KF0PHxgHA4ix#txlGWBl|X}TP?(cjGRwZ`Kf$eI4=$<7BA<@)c8H4hLQePc$u zyt303{>t|1%jOsR+nIUFmFem8Q~XontwT=KWze;~LTk9*Q12z2LM2;g1Tq!>0G5r8 zN4Tyrr?tJg^CEH&D#OZD!jHSPM@~BX*F+$eqHOe8d|{yK-V2)2eKt6?2#~aPQN#PW zB~>iADlkFxHLu`b7e%dT>!-X?Ti@EQ3`j7JotZz89c#$h+T0TpykxF741Y1*0JHny=$wjT0|tTnID$&9N>JtzO|1d9nR+e0K{vQsIW&cpa%6m-^+m4SjB+z61dV}VUvE<>*CUu3p)gzlaGT>k)b-na>5`BRQS z!6&J$S?-=Y=bGg{RX%E`sLvIdJ0y%9Lk>$a<2!4^s$sA_)jFkbd@R4oD-?r<8_N$EFQJzz!%Vbdr3b zSMG|?({)v{EI!U%m~uh%tk%ZfKRUCgLiaj^YP>H6&tSdkWov3Pu(g$^w~j^_W&x{} z@omkW)zk?Do9<)ExnH^$(4SiD#APkze=HrS+ZXWSyp*uz$O=y+3g@S0?phoM4O_Lc zn*G;el}*7~Ok@hTqUciUcQX0M$+fpXzmxv}Wge!wN!~Mvt)f_AL4=J*Z(1r=v*kvL zB}+RkGfiTH7g9IecKf61J!;&NGo8+Vz*PyCc*FD0T7{lim-lOy?ES@axVBMpc|5Fk zW*EnMqGTJnJk)C-EO#B}*S$Dln;}5OXro{p{{V3PDr|qCu=PXysVg8ScK-ku z1bWrMAd6}_$;LtTq{LVTDI;j6j67}B9+iWucuCAJbEFd@s3o93eMfS>wX&_hI0V$O z+<9YeO1JQzN=i;TpxpB))H4jW0IR{HNf8@>zs{xC>`jiK&WHq4WtSa~aalfV^Uvp9 ziQQa=jcA#qyBzZnn*m=)t=;6?>93x!p zwT+H9N^pNFQj%Mc#k0S+(r;R8H8%*uZ|{!RRqj0vMROz?gy36QEw)&b^O6YnsqJ)G zWp>=_vp;xrtI^seyoD14CmHpuT;jDuQMjpR6pXIxovIZ70JV zhRMd(_NW*zOgA6wj@2cKDWA6C@_>JxVBPg)*w(wVmr=ZqDPt>T3vPc|Pp8tffIeZu zC_tbtIHDOm!~}BP8`z4Ws%l2sL2CyW47oBl-Hd-$_N8+>JCif%@#;Xz(F?%21oZ>! zRdpQ>8?a`!ZIg1txMThml=p@>3=w_CJDj-7NPS7DVz`6<1)-rxm_*0CU)URe| z>Uu5ZnG;P1n70qVEO61V``P~hXWqI!A6@%JkJxV{XzxZ5S^AYd82u`VkjZfz>9~|2 z`Es4nnr6Ew)aQ<4Y*C{F<{d+QeJe=GPeu|}L>E^wJKREqh)lbP^&^bcbO(3RlQ>h_ zoQ=n=bt@&IfSfsO@M*+sAmTOR^lR?w58ZFEh$jcP2_%W~@$F*@6n#13ywOD+R#ALJMpGuAy8s(y~ zonlpH3+87#J;yl5wM3(HNW;0irs~l?iS|3loz1L*WpJbw9;A2Xn3|+8>ZWlim2G5< ztc?51fyw9b>0I6Ha@)$RZbZ!ShTe=@jz$iDm0C9bRFN?sEXloDRI2?srO1sedY#6% z9F2EvrE(9URYN;Kx*3W%;ZD52bo- zuAww59{CzVpl&4Nb#qZk7>!mn3W`2eQGhC6v@suh^{zR-XLBa*b}O!BaAP2z;MA$B zqQ~;`-u1^N>nh`|Ot<4aj8q8fA60oybAwABqRM__y?qUGce>;{d;(b&q%3f;p&O5K zdGr;28_4E@Ipb`kiWyI_p~dbRoosrHa;Oi0KDBZyfa~&}1#x2KamlG-)EYCCmmbuI zbFo6Z%NFGEUOVxhR(HSC^hB5U5yoyMPgi0>{y-Y-{@p7b-eLSJ$9^D5adG2orgV1O z5*5Jy0KI;h&2K`^dW}1rt+Ifwqm~5Kr7-=LwMZ>iguOv%0yNMJ{Ck;PHT+qZEbbo3N&u+cM4-!Y7pT#~9z za61gs8O)L{@*5p9)AFWfqjS-e@+bmlAjk{!&u>bfQ;G;?jM~K{aWVoG-*L~@sc(1V zuhO)pw|lrELnLv!597}{{3$nKrE@3}(hL*qE3MN!6XJblC!WJix$;&YJtUQOB!jR* ze(^oATy&}A&dIzs(~Pe}UqgHt*YzD^!*`Hh&*mkBsSUdo3RXRzci$B?B;y;QGs14? znn?sxEWc<>L{Wj<4?ws){uKtPrQT?_&1HWOhUryV;|v(4MsV2ZeMf5bZ;Be7ov+1D z4&FeJOC$jd+dw;*Kgt`|6~O#LwvON87P%BLtZDY5*c^?-0#D{m5SKN99M~lL)0FPx zkxU?Ds5xqu);~5(X8=}%E?e0vZfOA=e4Y9C{b`nPyw{LhEQ=obHWy>Uezisr2Onu-Aoz}F752&mhnE>C<^f}IDY*rlK7jU>E0!?5<@Dkt8RrOJ*8jn zH}pNLDow@m%V0e!St2S`*-UZ_XR!vpPrNT-s7-Eit!+Grqx-mT{;;oFwASz2N7L=@ ziwU8(NaO_M?gJI&9w<`2Ce#?5my^sS{{XZz{cBn=X|yy~d)cSb;<9NR#rDrJP@V%a zg(Q7=uW8fu*{mZ-WJ4k%h2yURyh}?#KC5L8IBAz7@vm4soYhrJU}hW|)H3-00K`{K z8wq8$c;R3B!%sd(2{)tN|m(PEDshYS3d^)mVLoRw9pmqLq+)`HpZx~-ot!jF9f{t+{f?2WHcKtGIq(<^l zV~hoj096C9u1ms5_xE@D+~5|PLXi{vE8iZRU{_LD3W;f;nA^x>)Da`O49Ja~1C08E z?M+)tG=|b8wnCPC+wU8UXSoKErxedQ{V7~mEvK)US7O8$ogBByFE5n`v5VHyw-d>T}Pnq$w`w+vO{}0FL$663{N(e5yK* zYk;@ap@UG8X13h8!N*nq02;eE*bQzEZ#ALqj)Z*P<7{W>v!x!?y!I zm33~}6hGZ@)aQ!iZD4sdrje#eHgnJMe~oXuET6k(3>baf^%OKKlg;8rSrH(Qep_of z`@Z0N;;K#KYh@rCIrF;*<{v2a_pBR+fKFB^Bvcvu{Dt=wnRh43B6S55fN{<}MOuOb z&@_J;NddiRqj)^8;FIpYe(Cln(z*R>#6Bd|bW4+}-^XYcP|+k$v5%@9y+`#G%6W|P zM~0K-UznH9eK@HZqxrG}6YI?!i93bL5=$hG9o?j57|Xs+I|^W%2Y`2V7~-tTVp#B? z4?$2z1e4sw1X$lIgNonB93PdB+K%$oGH)B%00n9l{WtXNWIbmeX12r$7m|yyx(>99A`9>Ko)Z( zGM1GCt1|q>0V(rx$`2Xsn%`Yh%hVd_%z{Rgoa&01kaCA5YW8<*%KBtIC4E8cVqQl(z%J)>kj_Gf=okH*R$`+Zi1VG8WgeBe zCBj`>6fv0MLUzAj)7G((%CkzGbH#V)VH=gBQ6#}ILmr3wwPBBz*e#yjDj9)}VCs7O z!xYnU3o<_CpBu*e~vho}QoYnJf9e`-ilK%k2=czPa!Z4rAM?2Ak ztIi3jC4E9&%IXwt&cViONiEju>Lg+ENAtJzqUf88t?WIQ+Nn$qa}E8&`B7WmNcW zDF7kYIOu6*{o3yQszArqbpHUgT1f)|=BLjaA7B2st`1C>+E?ZrV!bwZX%ROJe-G4G z8zz=UsXEAvS9TOAK)Y1BKyyH|I1$0rq) z;Y}(l8xwbP8?3YCqhh@fRoiryNMn#TH+;>{tz}kx&d63Db0)y6y9JH~QL`cLS~qa5 zyx=h9z3M%EnhO+`J{cuaJq=!s;=8wwWk6BDWzT9#It+BSr6fL|&Y*b8gmpMzc&YBM z|>0UH2Y<^f;TZFbE|(6KGHt}SIeN1 z*5T!3oq_)V;5{kPug|o(2hf31y~`phJS`Gql4*-~Xr~=V`-l0|+4d}*NLC(WWqM&o zDdpU-DngOaVxeguX!9J(%728M5&kr>r-JG2Tp@ffI5L3gN%;H{3{Cj*5^-| zQe@koy2I|b<6RD)Cdb-->yB!B!xr6+f=FNQDeP&}sW?j8p-Ku!`#R&3*FJ;Ru`hftad1Pys5_Ny>XQEe3HGkFS}f1mv~lv=%I|S0 zR8J(~)Ep7?6$+0rxFeo99R+G@dUfnm`IFkJvE|+@;QNtSy$%jVXqtN#U%0Z84=l&~ zzl89u|W&{d1&KV^4_;O!1`+p(-b zUUG;K7wM2WKUzs#3GVM^yqLQM+{EW%;J4QuY7`q^47`rVj8?U^pn*2=yBTJzi6kah zZ&OSQv6xyd(z*WXDxN{^PqjPk*DzSkX0D>zRu0jX$tTnvqN_(NX4A+Jk2$0aCeJv= zHvKuP4Dh_LfeemO0?QeGU9;Hs9VrO(4-Q}2HlEsCmW^uG>$%r<^$JGq%-yq^xuR

{dJoLkWuRT!tXEeymN3AKKwOg2 z7XBf-(y^RU)RvC1Bq-f@sSVOBk)b5CoiWX1TSIczXp1sJ9FnTzC5NS2v$6Xq%Q$I$ zM`7qI7KpK>znZUqsHUH2)5*!`sh_;wlst}#Ng#Wg=dU8tq`EU|dWYHw`>_}KSMU_0 z3+@RS(m2&;X>O(S?l)lse|1myK(6)|Xl0E8Lp{3et9(|R&2yuh9JOyr< z8TGENIYR->RZUVHi(*#CUbNvc9qO=ZUDb_=E-llqLrHU~+s7IEV#HEGv6f&L$* zR4x@sVgMYHdsZ-oOyd+@fxX047=67%-^NDzy?l}2d-lLN0 zdyBs@$D1Gv*vGFjb`223dY zbBy~My9bG$Ii!|#k>g-W#obR~Q7UcfBYp0I$qNTT6J$EK-Ul345#tEawHR+>Rta!~ z9mDvP;MMQ#1e12y_Om|ndnr9Z_N;ww;$dSPGC3eiy?1+zaYQ3#HMn?j18cU<+$=vc z9DZNUy+2{bdJkIiO(yzibq&!r3&pYX-vYPf*6-0|Z?zB^2*aF##W}|8Y|HUL$B8co z9J1pb{!v<&TJ%wPTE|MVl*@N<5RO6r06f&3ZTg;{O62byzRa z4o40AC-JK?I>Q-~L$wD}Tr7lz8}LBwn$e3~xky?WKI;r`9arg1!?5giLP+;2Zuyya z0qsu$x%)jw%)N#LkP`m@DzgpWFV?z3FnuZ-u!PzNCxKMw)hzAiSe^Mirj^35eTsWTMSqA}* zaaF|0otXMHR(5t`%6fWLC1KdJg~-X;GtEpjCWhhRKqt2cr4uAFx!t`)|{5!Vk@y8 zS;=mrr)}Md?ewS%yRTeE-3P8ZX1X5?!d>Q9&y?%;OW_+B>L`=4xH66Aqj#ujFx%Xt z%QQCvNTy+oCOS8%KEBm@{{T{lSGt$&QB4t_WKg(2>Z1oQ$EoM^twRai1j)+s7qI$! zQo(J%Ro|f z>zsq1)SBonZW3FDjxw?Y1$Tp;t=t-?bsDGdQ^5>Pv?b42x z3z|Y*%Dc0;`uC>;S@4OXxtUGKn7PbqQ;Zzg(bTQHXIfRTWcIMF#LBCCZt z7z_`!P>)2JKzR~W8##YgKU&q(twOdhB@cn}#s~APxza|CH`s>G$*vCR0a%y6cJ`~w zX=Mn@t4Q6Hy*lRcK@q0az`!1q%PSk5MnYrxA_wM>^*>6+Q+u{rh>Ys2h7?%Y4&X&< zuCW!wnAX z)E7Tzvr_o;ByIygC-Uu8@AY)h*UFs(-b_5%RKC!w*nNGg3SD)j0^r(6+rI8wfm=or zdWFt|NjScmXF<7Q$o%P(J4o!!)s9VPX}aCH68VtMB$6moU3F zpE1H`lMDXr!nWn*cEKtjC?Y`b++azts`u#;xDpFi^{-TnI z&W_&h#zC^y7@*HqC=33zVQ>6|*#Tu<~9EyJI ztNfeNssxyLni!*rSY1Njz3hXbVg7s6(G-O|w2ev*4u6W03&`wmqLwkX-wdtBc4xS( z*IN*$eGZCzEDa1}8&d#!ae+`pZV>`!rxdK=q4QCLt8bOqxdk{^yF0^3dk-k+TGahjq(%KPyYa3q`K8-dufsF;M(X^jrqVe zk74H7$>&EYibADwo` zJF+TlXSD>Dp}3Mq-dJUR>K<|KMQMxq$3{$lyI5eAIUFBalw8OZ{Hk%>oKq3A7N)BB zo*P+E_46VJ6os_sVuVfva}fnp#^G~yNZ?H#;5rl4euk3f(%R-$ zw!5~1c-eO=7{F|OeQFfdEhUUNaE;v<;EIB6P8R`TS7u&?M<1PL;M34&8>;wP;>PuS zrVnW&VI>^n*!$COWrIn#`z#;p$jSczWcr_f~`ObDVXpq_gTDf zWmfy4dqvd{o7)hZ5*Zu)xA~arhv%`>+#=~rpx^TnL`h9BLnzo&1u-i>6u`uQkrJ5gX_Z4jFP{^ct86SmLY18;2 zRUW`p1Bzh}h|)bW8OUNt6PmnY-$--dErWq{{W2%rb~s5%{t%gT6%~1Sc38s+N)Z))NY>o zPnOyaA`Qnq*wuZ1ShY6kZw=fmWN)8igU4Z6nw`{l5Ljt8v!{|kGRUWb-ST~^ly9jv zH-@{WnKmuP@E&7t4pr0EtHo_~e1yRC*#S$1}|9G|Kx` z2i*5#{uQBfHXAZHl0(4u{{ZV!l-=x&6ne6k_70gmqwN!1O31tjlr3I^O|Z1s(AhGT z=+er6l}PvYT5Y<-kx3-Y%#t25eZ8t{8>>A*80^H#c}DI%Xqh?o zRcHSIc-7F5H*K`02#C(%$F)ez_m#@wQ9$$@Qaom84Yk|@%5lbfRPy;{io~xgj>^3% z$kT2mKqbA}zunu?s7D!nrB9{bM(h=!5$%n~N~+8pl2;YoOQj%%qkFR?Y(8Zx`qwu; zg|W$7*ogiSwCC}vQ@-NR#UKM#A)m=UWMFxq5Hng)cy@V6-6&N*#kBGMG_T?Pj8$fL zVc*NZr_71wUCM#Xyt?CxhUOoW24ESJe!2Q+$7}#k^ro(jc%+GLqEXZ5jDSB8R~pd^r?EjF zsqN@`)Oz)tmfCHk&JXWgv(Nsyaot!<)+L5 zOWMZeBzfhA1>%;*+#Hkits99;gbJ*=4`goD~#vZ=BG#0o>t9$QuLJ)MtIHsuz z81)FQK40UJO+GkgXjS8d-ZtP6go9SBiL*mwF7U*w5zg(X>+hTmd2$jIk4N&FkGf&0BS;zRURAE~3-N2@B# zn)3F`QL&0-VlEMaxM9myVU{IgyNF@ySK#n>h}KM<9)G*p)Bga9t3U99c(UU!{fj5m z$r%3t*{VIH7f`b>r%j3(N65#hs@TR&bh3CG#ZbqG(e7D#;V{*gHi50getjRQ~{L>rE@k z%>y2{B+hn2x;$+N#~-a4g}wEvOKUs@8b=Ic`}=s|mmLZ9sdVUWX1$Fq5WKxYf&u(9 z_|}c`LiW;JY1)15jn%2djT4y=FMZ(hxa&^gVy2O%X}9RACXr_xBytQat&EU8t9BP? zAy^+y7Ko3&1rNM`w7%7P!q0x3aTGRJoHEI7!PU6o(>((Z>r@#eLO0x(Vm6Sgl3UZ; z@T{A=A(BTQ+GclR1F$$B-89yM-Z+)v1!c%)2iLtP+5`lJT$cHi};)Xnd9DDVI_^&-XG zt2rcwQaI{sEIJ_{IN*0RdPQF^bj(j>6^nHHXW9k>bTwDGN*6B+#D%hEj}6D)85Ms| zoZH+GjEd86j(%;wLFruBfD!X3BiwbTLm{!lAwF3-DV|jNulQ3RCu6A8Q_PX%mE&X3 zXXeQIR%^l|LnoPlr-eLZQ||RkLkgrr?GocSQ-HrySrY1VO1oAl)Z_1O&2LTHc4Xk+ zLaoY6B!}mDK{+Y@6vGDGlx7`4Q`A(EJ9^)sU_O zdjr<0RpOnCRGp0I>?XM<$bh>Jq;wyRUA5Cit9iGWc^8=C9EJY?X}$dgS#4osw-(m% zc}Jsz*wq-m(S3Nf&>x+L%>Mx0UhHcL)RdQGX&6{rtD`Hh`I(1cGx(aI(MVZb0vmTy z2x#WcXg;4q*?f1SA61x@87 ziM6wzQBE)w8Qq$QMLV8X1GWt?53{ly?hZXW(}Y-TI^)<=gf6ZLVV`bsP9k@FASge) zdeSAfJ~TuFYGd%GMw=#g*~hn9QnJQzhH!i5Gz6QtQSC~^^0D$y{3t&fiIlMch$=f` zl@d~MuqgGXi+hkb3f;zN<*?LAt!{qDoq#f*y%u`^0QKuWNsHV|B!@D{-!L7$1zQ%f zO#cABivt{Cx>ScwLUW9J?&gaklChr1%yHV0*KZl-wEqCJ$3V_LoYcQyO`BJAc^!J1 zG$_YH(e>d^b4_i}j(7blW<4r3KQnGVrzF(tr9=Z@wpe2)wLWAToZv=7xq7d)Bi-&? zFUws3(bJvx5+9%fqkR@F;Hz%`0DFT<=vtUDNXib@Z^EQ9Nh07U=f!S+V@J0lX8bAx zWgJ{#-1WvO+%+jAk!%Bzj>J;$XZd0ro-l6MkfL&+A|?$<27tbq$xv{ zJXJ`e8;<4N6jacGf_7|flsMeYqSDAcd8c`bbDrJ(Dxr)A4!Ic58KibBcB1F|)t9pi z1n|Lft-S(DIy(2N;SSyi`A!J`01BOu#81nDyc~9@m6r{V#0$wlUECo zzK;%?rdw|=SP9}bQMe!WPkMZ7b29vvas?fkY0|-SwH_n6qkZax@K2>S^5^ZAYaE6_ z5}%n=?UE9DpK(T`(28w7+CqH$RL}cKRL+lQxEO6m2PL}HZkL*3M#ALDZr^f2mPh{p z16r3FwXfJit*MG)+Y`%wk0Z7@~8&qWT zRSQHd_s*dk87g}I6ecT+_^r=I@GH?jgOUrw<^b^-h<)LM+lHrygO{_-_vi^C&r zjy7c+Zs-j)nVrV)0-wMdu3q4|k-HY7X#CCqYP%4+SDW+kYnm=2;zRZ+wL(;@}?j1(=^li{v*gn1J!E6{7Sq30G=_L z^Wu2olrbYcF;n$weS+tEFOOQ_ZJNT#m;I=+YJ~dUk#KV^lWn{E>bU(Ykqku}jS7TT z!E>qmZjM{!w2eXa6!()$l`yte{Qm$DKx>r}j^LVUyoCthgZ1X0vGWnrwWXV`*0;AH z{{XNB14h!CKlt;5HP6GT;F5_e4*9De+h`kwXa4|X3QnB5Fg6#%dRS&*YNv3(!?z#d zRi!^{)rI5D92XD+5fCocb@Xy`xMH!dwOvB>e6*Nb#(M4RimwEJXCcJS&JR+0)kYIr zuxTAj#;q7Yb}IeR9~*szM=;!X76G%I?HS0dmAp70WAUc7#`OOHR-JulQIZ!dO$(`6 zq6091JJw*9WSe|(!bfml0MlLbf>dB0l-6`%$`8O*a=xL-5N%w<;bgWMWAdy`l79-4 z*HUQEuh^~>vB@l=tEg0c>OO9n?^20fxTVU4$cImU#D;jJ^yG@7*AUM+Sw2?isQhNE zxQ~$`=Ntv=RHlJsTo6dBNflvQWH}Ln`1I*f8KGp({{WZKL8df&6Kay9&@EerOJIRY zFeBEU!D1A+fRh@@w4Rw8bNSHL@^nsp)~%SJmx7U%_o)8>v$mYV>-5ekDOfp67BVKE z8x6THz-;uVeWG0ME^3=u$iMQ>KkoBT`4h+ft>lmJ$f@N`+@v@xmpX*;#(>E0fIkjv zRRnr{yF&|Q-~DXA-uC)dO{@_|D@$N5#Hy4!!krhkAL zl1+d?{{ZXJY=vA;6SR(>Fiu+^TGYPq>RMa*(#-RyKX81b@v16J?vTZ`c|RZB0{{WVQ@1g7YR7nU;Lwb@^VZbLlew9jVdwHcs%!Ww#Sp#i9hqXuz%x$_k z_j^jY{Y4(nu#MQGGDNGKA21rLaEdO=mdHW08m5}n#jyfgL}AplZ~YBXyVZ>HfoAGs zkMEfm{bPE2W7pQ9Q+F7;-lZkAw%8afu5hIF9;UfMh2H}$B!@hnSk?VT;ND&m5!51u z2;RNxPe`$fT|V?n8p!fXyOpkP=8ytB!_m7_O77rTxYF8db-T5Q`Fnn7 zw`Ak{-2VV7rD<_Bn~7o0-mIRYwq(`3yLE=t1VuomS03GkWP-c51$It_vBfohpmi4W zB+)FX{;ENceGjEuQN9TA*kZCYGKFWfKQwGS#U9-o`c~9RRdzpI(7NN9`8KGap6 z-%2SA%4W|&nr;}?pDvjoSl29TTa#iBES`C!I2?7UqlRhvCdBnMJKG3=+Jxu5E?}`p zhHd~fn&<{gUh#-sul^Ql%pYLm%${$%airin|a zJw2&&1&aG=zFuno0F>U;;S+jM%modcV-y(hI)0U-ct<>K z1L|tmlu6`M*4*?IoPxz=jQ7XkQfvaOi(gi!tO0nX%sUlAwti9iP$P5cSG>Q%lgk61 zw7G)CKeMxUG~r}BwOaa7M>7JcuuZ3uTeVPz%JK$gbVtup8=BdqCWSTy21I4&dbgtr zbTSCli{z;2anRM_&uVZ37{}p?IfBJYNOu!7tMj)Y9@S(*3uGwz;+|DcQBtSfrFH`r zFgZUpD?=MD(+ZL4QUUEw98$OpSYbhd0t|G*ig8uP`my=b!wlp3Q-(9oS}wqZLXFiw z3Wi%$3->eWSFoqODTp=({wZ7xlV_H}g#L7f&A=E;el@Ty+du089+f)Vll)-&Vvc(S zj(hBG58etW`zxR0u87$JxyDT@*dc7P6N+BcIZkw1da*SX&YEr$%g@W-n(5lYF3E~v zuv~rL%8zO;Lz7Jjzyr?OJK$!Rbbl-}=10N%x$9k1*f{&AKU#>}$iI1TDwR=kBbH4n zV(5pjEh`?1I|1ujX{W-Ax-j1|;Ez#S-dM*$OXUwrUeSjlIp6GgB$=c$x`QVDsyN0v zREwa-s&**LaKxUqzvVApl%g+sJ*y5xVf}@WY?TvZ3~lNuqfUW-;uJsZwQoJLwl@xG zhRHqX_JZXxzQY*7#*$<|hQrq~;j3ht?r*&_vq zEPnHMHL7itbXrd#eJOL5VT-bdCJ$R~#$w7u+7zEJ^#dQy_Lxg562_)ET#A{Kx&HoL0hEl>}`xeT~TIY4e4O0w6jq8$s+U+gmv7O*hDI?)9SK zVzEI|=XxhMM6aX83tQ;T0 zqc-IFRJ)i^8`hP8tYC0>29y_0nH6VvG{ykpivZP`&)&%QrwN-sE7J;}Q%x%P;i$07 z9(-?-~vb1uEHOAc4Utcuo>!q zx+A_#3dC?Y_NDUk)}dPq zB0|A0mdn%1l;`=@b=IwYr(C*CY3D+x<#l14d*Y=l>^qwK0@068O3k+M9-VSRv3Q@+ z#a=hIqyAd%&-ZCG*Fd=Ly}vqk(^=?$c@5dHrE zzz$741VBZcz37w)0%V_;A1YzugqMlM6DqkYl)~36XlUepNAzd(%uPe}^=#hBRD8e~OgcMeF)feVq?GcAsir zvnD&ypbR$==NaVFOz^SWj(zFhV~ZTn)^Q$o^G1U!w3hq54Ma`8-NHZzrC57NS-C=K zjcIM(GJW$^bSo8Fc)sCdKGB5ml0rjZcNDO{dRr*s-A!ax2P~(G~dJ1r!Ex~tWpK67)nKQ$((_2oJ zLBafUiap-qv21NU7#dxp+Nu4PVd?qP{D%qhk`H`Rx0qP7uwt53anw~Oj#T7JARfY# ze2Bc<{{Y`fMS!`m9zf5wDK-pbE3%l;dci>>QDRBY6WkyGk4~dZ1KqhKJ{nLO#c9=-~RvurD>BNEJ_VMK!fao zx??o&vXSphH-UQWU&f+3l!cDS*KesbS%EpVJ#k0bTOBh|{kVp}+DEaY?ec#NMEz;% z1fOTe@Y75LAG=BRyQllGpZE%sOp)*3g@L~k1p^*q$KD2+wNF}wZS^+lV;uKkLDR3_ z?@bu`JuoE-oj4Tb5RCbbtL`eP(q;$dnl>Jr%}BaBcV$0HtD#wn^V=u-^WK*@SjrK| zqZ^phhnRTXSEPl=0eGms%_pbpMZ(2jBRx$YXKuo@VYe&J+~%wZnD*kAFj&U>E4M+- z0@?nxzLtBrAm`Sf_BLL3uj5BJtaIOFlNsAc)~q`5TlhsEGL!!3%{OdrepMstDCY|t z`L{Txn|j@7$>7KOR9;5^0N?`yp{At5#y8oAN{y}59{H{Bv9UQ-U!_LYkAw1H`g+xK z3dq9pz|PuZ93PgpB!Sdp%O8b6))Hea8tv=HYHDJ!nU+7pnoOTTSB;d1dny8})aIf# z%u{$yD!Idyt(NqpFSPXHr}9{jnQ`w?n4g>h^{31hBlGs><;^GBn?G=hltTFb09TXi zno|UW_y9C>1&Zx7#Qy-QZ2f98EUZuNny&C@704$9rPyF%y zD?|6+-J|!v-5-q{!ZS$0#@reToOP`{HhDq$QyCBUarjZp7BjZLsQjrswmo*$?X91? z`c$iLG=u$CeaNTG7Di{3!_t$>eEr(i`x}sW0-P-{KIk;L!<5D--jvd&whgcSGo~9x z2mM_f$aXSz(dGMAzu4IS01YSDU;DIkA#$@L%ckr#vGxb_rW+T}@YCiC8Cy;{rWN+B zZ?M0j{&dr3;D4*5oK`Z5@yMjvS}g`Tt|~JHS1?$mw9+x!q>xTMI@QA#J7$<+AN_iF z3mNR-<8)2<{{UKkF^qAJMk>ogp7m75I)(u|dbI{}iwBUme2;3K0cghIlTl|FsS%xy z?D0_1nKDMBkhnC-R0jLJQkhS!M#pf)B^DvSfufDAMOBAmrZFeA0vJbC%}?Y@{l@&M zKF=@w^EH*uq8}m+ORAcEO{<+CaE2B-TpgmW3BOE!-sAtUgmae{He-2?vct3Fh_ zbCf((2HDS8&*f4gNf_Z=eiW_(;$#CVPtv3NVlNDm1N5o9;y(Hx%AO~Iy7lxTjR1jf zAalXz(9tlqx?PeXWyfa4I#_Kc9D$z2cp|9H9QN$16Re7Ry8Y4h6eJg9_F8qNox@y2 z9J_EgHbT{@W4D#J$qF;$8@uAFz#OML*dF77Q;p|<5Armf?geSIZ7zNu!Y^Iif@%|> z+MwGMvZ`kx817a2X0LDc$UcUiKRSHPbpo_neY!fyDv4%Q+r5Wsm|I$c7+XV;+(s%) zciT(XwJWd`^PgW@Y;dA-IX$kQN-CmA3C zRMz4?KX{*=OTVURa*Vtr{AuB{S>9k?tUo$%xKaE=^Qq(mN4+jMtnqfK#^IkzU+r69 zapqv>xHP#~?2Gu~mlZ&2kQ0Ss-$73MetJeorDhf_xFVQX`e%xR?XFMyugubmqTlk& zesov~w{huC&IdTCM67>=0ZlU#*i*0*l9=UbnUA0ZRev>!#_WA5eEA1_{b}-r(O@n} z!6Kd%ih*U9JdO{br-zhtf`1BJqb3L1gBrgC3TnK7fYI(AgRM%g7-7(_H8!vj8&Uiw zqibS6gc`lI7r6GL1J{ao3mL}UM;j_XvqzFjV?Aq3fGLg>8R_+=m{`yIBv{75^r+iS zwPW){zm;9{pgeC{FsyhgMODD2wpQpkjX?TPZJ-CHD%k_AHG=J8Z~z@m0c2GXM8oA7 z{AmrMKi*M_h4m|2bir`Pw%%xt{!5a4i(*&%(l!NEn6xHaC{W}gf8P}Lw}p^~K-ug7 z6vECI=a?`1qLvjh5;i*zQ^2GaBN1E1-zBU-)Sy57vp~P@tx7Ev^-O*>W+?o%#xN;4 z1&Ur(!ybp8$L-M=~))q zfu2l0=9*9WXN|b_=B_8(cNG@LW_p~$3aU9PZBVZ)>c1sD&rqh zPYBt`ZhZvCOaReO3O#ATLG4Q6VmyIJ89U&bm_!dXViW_x6xWzorr9U&(OUt-FP<-WBXv7{qvMy)G-#oOPueW~0mXGbhgy(3V?PS*pmsfcn0EzSjA zv#?uBaTsmverJ4r=I(07&qblh3dSQ^$j6&>{CiS=XG~8>*VtCx&N^b4Q`_^U&cMa{ z6Q@uQ<4kBk`Ih|E~j9=I9KDP9fVGLfHt^)XTX_`f|MKj3%0BWfd%teUE>$mGpNTEGs2A}qI zG~ctR{u(S7Ek=>3`2ziE`*Yr_Bw%|}%O6ux(N`wIub`-mvF8A9K7dpwc|N~dK7PiP zhCH*jKnSDXnuw4O%;;%MY){S2BA^F_1MsE*W>Lso`<^MHRy_~_PjC=!KZRGgxm$Q- zmQt%4a6MVQ1qn6;ydGV;QZj{^BRfkl+*EZz>T4$7Rg!j=W<^VQ7jXxY&HN&*X}W@6 zE9HVrzcYe9@b#N=G^Gv{f6G8YW1MXsl;!~=XJdt4Ni{7243MGz zEY(-EQh4I81>7@?=8r5M)VYGjQ(7?T%`@!G#~TmfTILf%f}F2kdahtGC9r*`uTQ09 z&22JGutt8TrFD-ahpj~MmO1NGro`iOmT1^b<$>l92_;d9gMQv=8?DKDmrt(&1#(>2{X#BI#d4uvy=`xj`aDEDrPSB{^b>~_A}}F zQAaW#vpbKoA7jpGe$L(TQe*2zTalXMHMt3afgFlFhU1Y^mN}y|42Q@*)V@jf;8eJ! z3rkUuc_jK%O|U&tO<4(=cHFHO13j%%BN2n|ngx;`oK?NFW4|=+7AhMO2MtN~IXywE zfM%C(rxaW)P&Tec83CrXrqPj+T5528{pqfGNcb(!pr#mJ zU>j#0i}W9bU3*xih{nr>J;zb>sN%5li9czXy?P3FRsy)Sx?V%1i|9t$mMN`TPcBH^ zU(gN1^A&kx0CgwpN)Q3S$Iw#d3lSSTbN34=_G*$VAsb{!bkG6h{&m3ROX^r;ngp5K*C#!yM_To3eF zKO73Q5z6Jbs~x@RGoI9fS<^Mg)i9rx`Zk{ z;>{p~R6lo6w?FpF{{XK-yC?AH@TrpJdORYg<0Idy+rrLP8>Ug6h&B^hA8)^virwyo zkNmUSg&&P{afoE(62C)I`9v?vC?nCuE^BlHp0>GbU_luSazl6e8oDnmoP~5LCNfo* z`qjJ3SCS7d6cLu{>C_Kurwq4Nh*j*C=eF&nF{-*^5__oCNP$Z>IxlanW*cd)82zcF zmp{N1?fk1r?cuzQfzl+lcIhHM(x=yoy1Hbm3T>NvfyrUi(R7AnLu(9pA`lAk^Dj!d z9I>K&@$YQ<@C8cn+#_MsoO)DVSqGe-VkutXp?V<3^KryrfRioOY9OJO` zsd5P7q%J$nZ)#C1^$AJ4utA!sbEwB;b}}@wu=!(8=6$K9aJhIsdW=#q-O~oC+Ff2s z1d`drV`Kac%8%<>NYSt-10JG=tQRZoAKfI<7Qy?qb0ZkQrhL4Uw={Dw(56|>Mf|Cx zzItM*FlsZY6Ku8vkCC?% zNdYO1+pCrK6rvXOIIFSSx~KpX?@lnX{p^ZY8BD-H{{ZXLJc4_Q&=8}72M#JT3C=ni zE*B~NpXvEfBFCmG(<27vfQm;yofiVD?2K-93)?i(Mmm0VU5n3pU9c7-h~oz*Ki)p| zD+dQJpT?Ml-{`dHm8N0{7#@`obp(9N^d_f@X{5-ArUzk)F2I#-lRtMgD#oezQAg6C zFLJotohoFyR={9YzLc)OkSPZ=q708%|0DoF(fe&h*Y$N_!C;jzNNpoWe zCGMhJdbp>k5qSUuoB``hHnFhe161`pnI~BO!F6ou)z{71O(lfa2!*a2ApZakGDTjX zS~hTyK2c3JF@JWPZ+>nf{LMop-P!*DRH(o364YIVg*tj?)A6SLjz3dP530E70(-La z`Bcda+X0ehk%v+#^H@1i5wk!u^HYAzo}^WgfI77xUD@Pg@}rnJNCl#vjA;8J`kIu3 zv|xdXLLaDgqnJ5JjiL1hn%3b4U4oCTOnmKdGG(8j_;{qVU1@u#@;UC^S{{Z!>?cJsI+OtT;Nl#4Gt1By;cbevVWejjoZVY|vNVOC}pB;Bs?P<~lW#z%qi)wH(yy5| z7By|IVR-&$D%jlR{{UJRcwQ-|xNqG;19^GI=IlQY=4zzY?RpG$@r}fco|}hpQd#Mj z2uIo@M|_qjd0pSuqeO>d&9%&zR_i#2YO@eQYO@<8pp`s>h6kuVl-IYobi>>gQPoib z&@Eos0fY^wlb&}UU#&)iCEK3d(rn1-N)l#JM$w=4d8q_a0nRh+NC*reyHbdN?NaQM z*Yuz(?!g3m(zsZQ%k&hUPCHc0u6YHiyBuWp_or~N36HiaCWTF01D=%|Za>4t9Km9* zlkfUbRyLn{Df0!5-J{l%Wi#zcN8Nn=DUw~HD9+*OSdvY)lNDR-%ELPvkY7e+F%>)Z z?<3laF{F z@lvcne+M*JS1o{Pz#6Qq_~1~@aku0u54g=C+_8h{%`~QYs=(hV{{UGV5BF)tYpi|H zJ@HHlys@6tqB^4fYklz``W#d&(<#EuGLNkm9nEdHrj;1!iqD4X_%Klt+$lYN>k82h zxxocbp`oB7^6^jdz3KQAg??&4FvpIVqi7weN`s8jZ70@%5N)RtqqQd12A%^EMaD!- zr|v{Q7R4u%JN@|;N1_gYI=H<$b4_`og*Q(k#ywc#i-A+@3F>p6y-iIWxYe zbInM^9QLOL$8XY_U*8l5C#n4?0pkNa&@t;sp-+BkLaq<^&;x*`wh#EwMg}pOP&#pn z1TYS9nvgDOp?Ie*KpkQK+dr}|;h}lWkJQ|)j!zei*`%!U_vZyB?jVN9^)t|F&=pLLb z0sj3ffmK&0rAny3+!Z*}kbfB;jYusJ4rF6e7AuIrJSeIB%m6V>XjOVQA6jP6c**=I zuvnkX1DtbB-@B^jqVlo)Mx;dN?|yVxRu?J!NPeQGM~@gBeP~r~#1T>$qd&unL$KD2 zH#HoVvB~$8RgeJVG`Pn-scIH7pH2SZs3g;_N)U{pyEj}`&m{Dv^2zT_HWn~r(yrr= z2{uprV<+pHL7~Xeg?oToJDv7&)zED9=8dD!Q|As-Hai!O?#y%BBA#s=^Oeu27^}qx zUX;uO-!!jqu~Y1i{opA3C>)cK?N4T4P(Q0;LUTmKZe6+2}FMrqu4WmspvFOBhR9Zu6yz5Lei`^bFA`!sz=)K!rZdj;Zv7Ey#|+nU1Fb%?A`#Rw8z zu=!K6f3(N?S3t2kjBjtovu^x3rru1_OJxJI9I-hB)k57s{Z1%b&q0o&fK zE%lYz%ca3@?=DC`m2{E#XHJL#9fS%$*%fUxm{1Hxsy&7)M>zCBsm@2F+uSI4%#r>l z`BdXinlLuY=KlcKPQRG0iEU#}00N{UCF4B$RCBN~ZK1swFDJ-9hpuYw9~?$A?rQ$U z#TysURNQ89j%Nd8yJnoEEqeh~bW6xtw;xk2@{{Zvck6qsKS zJFqAnKHQz&P$r%%V^fc_kH?z2BN;i*;Ye4|(zsZu_I;;>$I_kTILA;us$Gr8CX>r= zdIw@78+YqX+S%!z)iI67@S07n{lh@)h*?Sg8fy$-unIbL#ZQCjiqF+;t#0hfUi`4B z4U*e%ezj2sSuqj(1XOH?`?bl@l`7nNixU zah?u7w4mml#d5m95MfXZdJ2N#Jbv&m*0e{`gS3oeiY_xX1aq$3{NAFaNKW4=*C6yY zY)24pl@u`arv>M(MLUS69lA&IF+B7&D_fC_bf>WLrndm3`Wpq=?E?M~pXX6lg*Q6sh7$q0}<#CIRv6@QJYkzqoB1{bH&r&uk( z>57$NjXDrBNy|$Vu0d^U4Z6PF#htf1G07%{vxn_Va>bry1yqy5gVzGA{GPPn7p`;o z)LoP_YSM*VRG43H&X;en{OJJCmXDU4KMG6(+)x92#P_7!3C%xZ`igekdQ%Y4!{73x zFCK74e+rWnj6#p^A3!NwWF$sp3?Y5Py75!|&G(|f^r9$BXNaWHB#K5b!!=`Sp44m@!2Idl42bkiJ~DP&;D2{< z#ac^vq8k!02V7O%qJXRV(Qy>aC|f2qKAcpG7Dyxv{VLADahfqm2)wm9`Dxx-4%Hx2 zPT4>ZV0ILnMNCQt+mY^1K~`2c6#*`X-*p!Y6gGiN#%o1Qzha+-F8D<&kCe>|lf^HV z-j#i>BOk&|H|+%d*vH~%yAD!@*Z$*vRAK)BxZjmu6ENhefk3)aGB$xl*m9ZpZ|=9{ zNrU~GY4R$AZU#Gp$@2_AkN~Yp?8~NHjs??&E!DERx+Kiaap>PkNT>k(nxo;k~F8p3jn@1jGN1E)G7$YR4 zN~hUzP9YCaO%7|K9gZ}%vk?XL1RwAUL3^qb@?Dt;JrW$(WwsIgKcz0{m(w*o-b1m< z+uUmoh4#wZP6#ook@!`ZudYjNmR5wG#@{u*W{e-aqMP=(zrM7t1Xj^bz%$LceGFh` zud1UCRB=_l*$`dDzbvR#8qKU-y=!5uoUU@}<~6yG7WnL%K2iLX*r++|>I({t=I*91d|nScFKYs6T}$ z!Rj&fsWaI};%N$G@=5yAuvljJm#e6xGDp*T)V^Ae;UASnGuy(skfP_-fF7k=q0KK! z&3lKDvuzMT{rNc0&{liRs81n_%wVA4>=jBPHSYC0J1%FKXRg)c{#8;9ehZM>EoQ*z zPB3b!X;JKNH3!Z2vUxQqwTd;{8tnu7wMif(Z9-=!5F&kBH3ME;7QkRn_fTe`aVMFv zqm@^)Cpr9kQ`G{DDcU`$*$jRzoA2ChUqMP2XCa2~UiBA}g#6o^@vBQ=5E&_tS^$Zq znZM<;W9vu^n|PJ~0Pm`tT0qB)@#&g++9K!XbM>O=3b~Z^kM{qOtgkj73qf6k?rI8glHDfeoN&9z=Pk@U?l6e&@|xc>lwREa#u zal3H$G$SK@*%!Tt|^AYHa)4q0IfZ&t;#N5rBz3AcP`OR`#*n{tZf39 zj@2B@s}+hKhxDfHz&&`YTw|p)#-^7r6?^nN`%_NdI`yl2aY^Nj=dB#Wu~3yT$K$9!duZ!gh6cyo$GGN~WJ|#eKMH)zRx-wm1d2Su?t7MYH09A@KtepJp6MeB z)XYjS7z%Iz^y%$KGXps^xKrr;qX*`a5{VLAW z{n|nZ?M1+-UuO_MyP!Vin8q|bNE_HuaO5iOVcL)>WA|#q zNrgQC^)(2Y$Uambmo^C&lnWg=lOnd&$UXfjnL+h3w?rp@=LLfSnX>ef{bKzSXvHI1x=Z03>8Qtr_;;d~9IYIb}K^g|gPzma3fWyxK zaZNFv4Nr`UOi}_MIL9=YH7+@$9<%`vI~9wz0P1NLcweKj`YEaLfk#?*0tSXD2`1Pa z^)F6KYgEVjI)A`MDojyGcN`30aUMS!Q0h1luj5QCI%bo2^rROm>KfEG4zYPYZ0t7( z)3Eg?wPvr0uOykHj?D{>sF^tWnuhYm`S0&0Fd0L#v@C>u&_3w~sGBS4UtlgbVf1d5^b{W--@qdjPA2UUE5?2=}6uomdzkZED2XTRQZ|ws=d1lt2egP z3(1_1F^9}C>MASf6xOZ?P0al)U)wToy=kX8--~{ ztJux=FCzR-+RKS_S*_G1>{j!yY#5*EhU-+Mf)<(8zR!Oc0leFBwbT9O@Ay$FOL9}b zhgKxqpohwy;Ls(<@gL5(_@glHlTFkNM0G>RKUJ&t+WgTuO-2wGubUTP>PM&2q0@Z_ zvC)U)?;3bx{o_@mksTG(?p7HD9<<_D9OtEG7cAuC@6r-S@l`fe!hrG&f3?<{$+(ha zlj*yPGz*sr2l%Kl=iaH0F+jz{hacVm)QfRAf1MH2)eZ>!4G0q?Hsh$krujs7sUx|K z+^8fsp%^s$3S%pI19tB8rr43!^{WMUds9kn=e;422!ipy6xUpLIID@}?GE6vKf*XP zGsm}!IZYQCpR*jRAHsn&=zdw8duFZqb3a)25BI;FF{3M=T3{mI-YWg&e_|>`)*Nvq zqkT|{ujTuiP?#9&MUabwRE78nB7H?XU85W$9Q%sT7V;2FFBJIgq&*iOUX)n@ri_^6 zjMRaU4j2lcwr`R1W7ty5<;VBtjef0C7cTkH=NrW+c>e&rD=5uwcvA2F;Hq+7#%|Ki z86-=G8;6+OWBSvuT%qes4S*dR5gLTVixhq3JBmg-MJqf@xfYVkCyOf3=pyX24 zPuP5>^DPOrW7o^&8|u9(+&2=1#OkDv<4%Y0?LZdrGfR$YB$_tkq4YGSPQcNq4{RvQ z914isM5h>XeU`a*)b+TpCrK>}g={N?$Sc~e++6Bc5yJM7gd`6!Uygk$xmaA-YlbJ} zw`1=j5O_2!z0i7EZ$vq{_JCvW3Q$P3?V zmQ~!NYMw`PRg6GOzZ;nU026X)L{|>LEI||d(jVzoBeg_r#fvw;N_znoSp20)6sd8y zDkB_r6=z_^0LRjp&_?{S4EoZz5VgROcCg}^ymnmGg||f=N&3`*7t)=?QryJx9UDpi z0G2|o>=bOG<0>fU{az}-Z1uqW#pQzP%F`cq27&Se~R#V|xVbsqGpte@)6 z-=L%y5H9}!^-#NiwA=~}t-+In5+~wKNF<-Ufc;jaN#8hh&$^mU;c}yCQM+%I-Otwo zrA<2B2g?F|NX=Ugtz>CZFpv9iTpGpTb z2#iF&f{!c%(xfAd^rvILYBd5cDNQcL9mx7rmq16=oFEzWr)^&C zP+eYHSVz8j0_T7`x8XtpV;7^aA6n16(&4xtIU&^LBu|x)`x?iS#j>bjHMxYZc+<=W z@un|{AemKUzS>)<+EkCyua-b>TiPY6Yz5?Ea?d9vjXk~VE-xnSa+jA5Jwuw6Y+>Dz zaV~%Br7L$G%ec?~0A7u`?^V9c>Her3U;M0@v? zsueMh<8;6^VmT!oNC7^=iv`DQpruHxjo+V2cHe3Mhh-+puopCJsTp5s%`VE6ts7_= z2Esd1;A7sUE6pK{_Y}a0#t%>k`ciocdM-YkRK*DBDKgmUnqnHUoPUiTU#QIuIwJ*g z6#LWGL}S6C!XqdLV@)VAR&otAp!CfERVqDrrjWfcnzB zLOjVHM&~=Ztypcf0SX%{>v@P7@-D$w`feZLQ)tT(w}1KQAD>)ytM1UJ-fopneF!Q+ zbvPw1^vj!f9a%t;57CybEU~%yTPBdu!?lHy(2C;6h(79KWbcgsyENN~tZRd(V zyx28L>in1=$yP@{aov7j(x}@kj=@u~jlgyy4)Gz(*gK^K} zS4D!aQ@iw~iEWtw0Hi^<_LV+XU&gcyQJA+wH<^ydtv2okZ`h&EN(1$(vs>K;VGX=2 zKiZcc(zW~G@Mzi(r7N+V{{Yyv3=PX}8^6p=IV^8KjiCPkfabThib8<)6z&EiSzU!J zsIn2*HY$O>XeSWdLh!l!zF@#VL(;l)7^v=TA-jadIxC^n*otjgZiD#$yq$Guhvxb2DpVCQk$Ko;e?iYS?*m5X{Z z|tH&j(9ms#Y53Vyv3vLR_xSmw6LqG`4Ez|z_iG&^_90orA)iERxG6%4! zW3!R4%s}=XYTQ=Q#yF3j=dBHeiZR0@wtndKH9FeHr+x`Z5%|u=zd+kI$|Yn=T&ViFRbnuz3`IV z{`^}G5BMLYZOs>|1tyANkNS(Zj_NMO&KZ9m#;l8JVL>IYlXV#ArwZ%%jtyIyJD|I5 zuH$6w9n>Mf`ZrppEpOzLC2e5i?;=rj`j4B)Zrfc&512N{o&Mvgscr0_g`zJT-L_B9 zD`YReJ!wt8s~^sS&C0F;3|Aifim5fWw<0Q~>;!ZqCJCmJ?k4VUt<}79Exz<>8cVq(6F{<*Di^=%5TB#VcV( zSW_7vl82zD2$RyJPzr(w#V*|Ny!+8~JqW~jKPmz5L$2Y&fNDSrj4@xt)N&{!702O7 zMGNgdd#iSiEBRn{<9vRVl%5u7BSebjNKw_-B>UFq+U>>%nx`ij9V!LYAp1+(pY^D4 zKqLCqCnc~MgF@63ESKtW{{SrUjQ%x7??%3gM46j&=W;WC@UA|U)X6D9msuhmi!Mjz zC|&Mx9o$*;#Whi&IH5MBEQMTLyAGr_Xjzy^<++(3`>&kWY-|=){rthR*?v(@x6y|e%W>%j#A1!SIsSJB;i}s@mtWgwS(r(ZS*OVTVzJO7sW8LbB~+qD>qX8 z0>(`7>QlmF7dG+dsaT0W&YNeaJ-m-3*K}4z!ui z2aj=3@8~f~+mAs=2^Y&yLY{l$ts_1G8;{~@62*G;^rXukb};&ib{Qa${{VQOttpU< z{N|!0_Xd+R#7-q{K7O9vX+*7_NT?KN=}!@_Y5<$eZ1og*r@c4HWBgR%Z29}^iUb~Q zD3tmNU$VdVmYd{AGrJ#!7ZCmV_NJLY;+wDz^biMn1#(3>>rMip4YYO5CzyTc1Wiat z9qKLoeQ671&@x=--kh>9>f}^w42{rK%L`y;fUzpfG4plysZ@rjL?a(`RH%qLjMA_V z3QaghdUU4-9fdCL)PRh}!}tOGX`5y38vb=Y>Z>lLZ481YnLNU95FDS%n8zPD_8fKs zpkptgA3;<3&nF6}9;SkrQc2w1vr6G&jNfT+s}#FG4Ay1FieEAbnrnmAr8oe4R=_y~ zk%QmsK|a)THLw{_Xf~)rOiaz_cwfL(@o8?Wv_Tf%O`@fx299R;0>9X8yFwTJ-YLs$ zigFrH`|7L(C$%^xaYry%V*H~5o&h4Auv37=7Xg7u>rUClI2=;ui;Rduxz5$kt||Lz z)b(7_xD5jon{!eT&rzRBD7eV>f1FcrpyL^-h~l%ZuKb58RF)lu09)Lv)KDZt{3fV* zk`tG2z*E*n1mOO3TvslVfMkk~D0#uCUE~06ADEy>aZcbsZ6=08_GVKP{qZ8?sr4Se zjZYQ2L^0R!r+LR1;(<0#YJ9oCJrrKdljt*%7 z9^vXJqsnjZQBL4vL2osb;%SD&T<&6U2&UZXB38~f4!~AwKtS_vB%bEvoR^TC1OCYD zDeOm~$EGUmiLjGu4+682sy^;LeX6V?TYK-cqOb49CR}&yNAjh(wvOUR-!8I6l8if4 zu$f~YGX_4Ob5)`XGiKU<-K#Q;=a6dCA~p(-%CS=NNY5#ss?+7xrigC)EMYxa_SSr? z4PwPkarn{}B;;fop{MImUIBYOgu=5&&&A>kR-{51xjjnLN>lP{Zj+B$Kfpl^d9H2Q&z&_HQhlF$w8RHq8G3^3(LI+nXGf z`uC<7i*t|SzZ5^H8?pP8{RWXWF znAedGjgjqCynx*N{Cb*W+rY|1gn)nAphc&@AHt{esFLDajQLF%$6j+$!(nQwb}8qM zTC7ED3=6h23O%U>gz|15{#$41N7$q%EkEm1=R8m-5ffSe0MpGetXS|aP85w1z`- zCgazNxox3GY`cEbaKLmK;8w9d^qD=W^EN9YiPCJz%S6rfG^a(=m>t%L!~LqdLwe$n zhxOu>*zAbow1yQ69_3NdLEu!v9y7U!_cX!3`_%Egb)>)w0p5Uzu@s>C)4>FCKPp2S z0O)w6XmRO^dE1IQcjMBP$6~wNZajfeHHhoHkHW8W=}39&M>tr``y-RYtB-oGEN>1; zQ;$*2Y?W3YT1J3v^rog3FonV%l$D5ejhf$uq5$Y<&GJWX)-J_-{3VLRoMmy70_+@xxFZ?VB+dv8BpYNZ_ zg9$wEBj_pNan4DnjN*V1GmoA3d*YGp;*oGb$6h$6?H%bb0H6tAGC-Ra(T{{X%PQVo;S2Al}*Ko^$gVb{cqoduP2=EGa{h+;C{H z7Hzfr8SK8)kFghrM+bT^{t~{mpFfKwR{sD+(k>(iq>>$g{sWqGMIWAL@{mm27Xt>K zWMu`5C|~xtr=S@3o+`f*4>s6Ft@lE!6H;7jI?$u=3{@@4z+?I)jMPC8^0w)kvr zr($}jDnB;I70}o>*e%3rzGD-*Su@KYYSBxikQ2Ke&&5NZVVM?MMbtlazRW!Yg{t@V ze9V7&c_R;H#aNo@Rd9|A_5jodS&nk}teay*(b|N_4BUIPzH}hu<3CDIKHZ4PABd`;lTHhfKo<5ydJ*^Jwnw6hwjtZp5%s5pZP)`eTto_>jH>ZZ3Tkl?-OAI9 zT++A|`Oh@*oZ_Yticudl0KwCdOfmVL8JFo+whokp4xCU0BW&aN)rZptp=j7~u-1Xk zd{aqYnN#@FxLBehW8V}QSa++K+SzN{$r>CMQS~(#ytih@nuqbK z32guzMn0#LPx7Mv;?Nc@8@T%rew7nmJO2Qyh~w3`6%Yu$02H~TJ0VDtPro7C{ng-7 zMQv{so6-ow{{VX&(}QB4ymg=lZfZir&<=WJ)BLs~rHroXca!VQ2_HPwm4x*sl*f)b z(WqF9%R|OL8gPY0KW;lvayY5fEFfK@AB83;$r<&f2Lq8pL18hPP(7&$;*H^3X&@g= z(+eTkrN%o`cX}E(jCG(ah@?rSn5hV`h51+?n{`CCPG(soyPbmcj2)|1Oqe`#N#=Uf zxLBsTQVl@fJo3Bl$OQDQ0>in*LelZ?QJKjY#Vx>|CTue~z$fJ%f~ekE!zI$qgS#2~ z#{~TIp9zt zMmb%@a61}oXXX^sA=(u7?M=-9UPde59@Qvx9Ac?L7#xsx)Vy~UNTSKw{AQWAwkok6 zl$)4zV@zeef{Ll;xA`h`s8)_n&QPB-ZhH&WpQeOw;`9jk)r`_7veXxgQ}1=}9m-ReAL&#mtvpVg4B7 zB~^Wh^{bZ6ZTB|3Fa6f<_|~+L!tcNA5f?vr;}pXHURKgCpcQUOip)iY6>_ZVeREQe zG=0_&^{7$Aa%5XL^#Y|?QS-1BBe4|#NF>MKMo-q9Cr0Q+LSG$Q6w=5}c%T_zxuoRx zsJ!1#){Xh^MTANReA9p=b*OjXQ`PfB0!)2B8cZ5Z^x)a4xWxd`wv6*eYB|SYHjnO# zLO|(}^r7T-!vMP|mk!%)onuqOKLx6LV)Dnn zL@{Lj*6J!ywDmzl7}BZ_4h<#;b`>~8^c3)`=qhY7pFCja@TA4lNrhC|>)x+$DBaC5 z*rVlN5`IW=^*J>JwtA$>0Q)R>?ndKU*eBMWwE3D9j!It->Me4tuWbxy+m~XTpHb~r zWV5=7a_AU;v0W_{UeSe)ND$rnQ}QdOmeSgB`^c1^QNgVHjSU}|W@!HaTvaKdG-T%# z(&PM^W$vGIX(J=7k|Q0cDyfW`<>7^^AB6?Vji9S}k=X(=#X@w9{~kGbhSD z>Wec7@~^p1+-iym%FJH~?bDN;wCoo(k^I4wQ@7NNRGU{GrkK8bxZ0UM^(eBHxp{DX z1x3;tA$C<6ZUr<*$2%iq^c8U|RStM3{jO?#q;P*qT3> zp~;tGKmhCj`cgL1c>vT!y=l9}AhRX~SEdK)PXj&I6$si#Tu^b)P$I_9erbf2>J3A+ zfzIPkSs6#nH&7NH8lE4DjFdj0`qXbK#tC-;M{`G@ShOVKm&~eyL$o$94^7-qCF7|4 zIj5+RYkME!qjR2(Rm8rhkEIPZKJV*Db}adi(*V->ql~E)O=q3BNOvD&ig}vhKJvq# z_w!94E&05C(nTqgjD;h)$*NCzC{wXvFW441{#AvkMXTy3%RWoTkM%LhwSKMZO)oGy z2=$w3uKvpm!fAlX5uMw9q*cE?vG<7l4RgA7ov7)EWr`?WvBWBNum1q9wHH{JD*3uy z;<@Su+ynK^7QVoX!gI%etqk)sU<`dKhuifjoP%H?k3D?lW;E~ZDWZ`1*4Ge3y-CC8 z>56t0i=Vzc zX`2~NSx6qEt!PH^&YR<4%j-_^!StnY(5oHTVTNO$dYH29%P<4pm7olMPyzL(HIhmG zv*-GbC<89*TegZr96{%Q_CD|Z^;9Ohnq?y5We9)ensC2~?_DUgges3Ma6PIsrrI3; z0Ha0EUMiD9vCdk_6i|%qP;%T=m7Fl$lB3kt*Ymv1J;cSteOT$0ACUg{SXDzMwnA(WgPo!bY!K3_4N zbbAzJoPB9t^4>nO4Ehdhg-uHITnD_lk?ojr`*}nD6?R=d;`SwbJyGLB-3MAZEC*0E z0LKwSBm4BJ7Fpku9BK7z)+`s&Y5rU{leDn}$DHGx-u0&)>{1M*v9R`Pk(UAW+Grt3 zs65^?+L~t~fFyH3=3;{Y|YkJD&yX_ z+5Z5YAU?SKC{Dq+uo)wSB+`i=KX?pN!>R94k?q9<;*iPrudN%DoO)Ga*!H7;K9m7u zg*2N+M?6(!eZwf(9-^I=C%rKfZ5=qK;Cj?W!VI%x+?s*!<4yoA@7kS!xTBmO&VoQB z4oy;9hm>b4x6pG_EUE@+0WQ{KOXZy8oYNL{J?VVWj@YBM#U}_zcW9E>6KMHFvW|*IS)W%x! z+;v(}6P}z^KQc7q&XJFz^H2Lh1B7Bf+G+${TXH!kH1QJpR(IN_&kc`ZPy1A)f2?W- zXc*LXq}z^*S^j+7;zpoPC_K3|0epk$MjO(p3#J`+XX{bTcJahy2_%Ge27wwlKT4~9 z;Vn*EtEeBHXGMQ=D0W!Hh^HSef2~!WZ#4;q*%~xX&X@+OD$eW;$O=nn=ZrXi*ELqc zK$>HK*fA&>`Y5W>#WLC~5xWzOxy~_A3kjmM@)l<-$LDWqu4L{8>^BI&D>&Xu06lPO zZ2Q&}7Sg2X?I+5-;~h`=HK-*+Q7d0SC&#@m+OE?ojxcH?bmaW8erFVr7Vt$hs*}jU zs21-ZeR1#9RLd-GKJfhL0gVoGhN%3p)SUfl&h#I~KRRhtm!ap>8dnhx02mnjslczL zJIUHPZ2RJ?&v9*T+h)0jHuPrz(Wr^OUs_Wl)kV9vZbZmOw>04B$K;kQ`_W)5`HM^E zFTGbWToeAXG5-Jor29O%=Hv1~M=BX?N(uF)5(8PcHdhla66J>-2g~}^IPG;blr6yX zVjT=`wW#)Kh0cIU?@sdvt!2iys4`?izLKxZ2h>!8@2?0)sBu&5!sd?hdQcpX;o_+- zp$K9bwh`AgVJ~4LB2**Us<}etfaL!G4NM6gs+Zf~-H$PIQVY~0ujx|8TvBmL82Z&8 zw?Y9d_yg9Smr%+^$q|Y4H6ty9nsCVNQ6sN&nv=|5T9(Fz5+6!WWArq{v9k)X&up8=MRW^Y z1d<~RNT97&lGfhgN-GeXG&ni|q6 zF_a_d+iF2;6lCm~!v6quj_=lm20mguFgPrz^SR1fM}jmh<&?jv#v;TBe9c8jsznQ3Mbx1f+8c?lIi zmp0xOw10P=f|qI@_@&K#%JegYb7#IisTn8Rxnp80M-k@(nvr&>z~Y)~u#B}!hvQ^} z9-|d6+2tJU{Oe0U?NafMxvS7tGQQ6#{sTwZpL)NSk~&tm$?rgA9R(|n#U+k%K-+>n zI#hz*MqimZ_cd#Nd894dG`WyihwP+dx|w~WUGK3etKI#l^$0seH%pL%d4P^1Fxe(UTyhY0`ds_Xypr``xE<%`BXDn+qx0uAj!!%>S{N= zMd)&S^Tk$@`+3JL?5jv*6Y1*i*sjU*Wx+>iQcO-X;f`c#5gvG+{@a3Pe8sXpM)4hi{B)||5^98`d*^`sXg&gCR@ z6r7&ljXGc09?YxghisNy+>LK3i@a=B%^Z!;>Vaz4BVBuBil>@<*GG?uuyBtrMlX zlj{7_8rBtU!XyXjMdB-xi;Kqx%C-rQ@3jl|w*LTIAYWvq4g%n@=~8cx9dnvj9mqsE zJPw&tDCu7vwxBA*LBz{{Rjs5oES{rr*2>s=J^3nvo|f!*afq43wzo4L50}^P|s3ro7hZhDUOUy-N{5 zhiq(8Z6l0Tcr_%Eu&E(dY%8}Ls>{x)8FyDz9Z4Jtb_<9Up2m=s3|A@-rg^Mi?K|B> zlVoF#+n|*2U;WyON##iPY$#OWi*x$bC@?i|bt`Kqvi|@xe+nlg{uR#LTxyz(%JN*j zox1X{L-(8g<5GuKa@-d6>S{;5w9{hquO(Q^eZ@Ub(08pP8*Cypv%Y?pbHxz;IV2?h z6=vSf!qvB;tdbtGIo`+du6jLXrPSD5!v0jPy5G&n1bTZ`^m>h{+OG@8&+wiqr4}oi zA8E!gkB|3h>nM%$J6s{H;#Tfk2p+2Nk2FlI3`z%2EsM<&3D$1%8gTbkMh3!mMWHA|_ z+vUpd7$557IsBWgTl-XMM*jekqw>8ehCK0%(r~#+ve%y(956JWXhBqsvYtRHeO8Yy zbm{YtezbBRyDgiMngpS`RZw>~BX8EERdLA2=S@bza=>nL-`1Vx5IJg$ezevkkMN_G z;=4tJkd_;dN|}m2IqB(H#Jcy$rU?(@OOSlVmJyCY;C87pi^v%IR$@xX*#fPJm4yx= za#oYyH3h}WMG+351pYioIS zlkEjQM7Erw@D4bxbjf!QS(tyi^`)iVJ3IZN=Mm$hp1+T3mj*KXN9Q)< zX*fQp`%mdm&m56P%@o&>NUOL9ln_5UdAw=P+h9^7{{Sxy{9o>m>rlLKrokfb%Vk05 zC)E0yn|A_x8|kEvbc{rOLEFn7{{TT#EYiG%)AxVvb)|~lX=B_}Mm-;`T8aS@VEo6w z6&8xw4^~tA#Fr)e^HO=4;~Z6|5o07M`qXB42;c_CprYt3EG-uqV1)LofXByES;lz# zL_Zn@$zQvL`c&vU8e!1V??LHVM&+CMjW^C?-KeqyU(G@3N7@tCvV@LDdXN_NsB*9x zKWI*Zm(K^*v$sAv(ridb6@Ro?%0`k>Ou~mT6dfQ$vE~Ej5QdeQi;O)D5n1aXiC6sjQ%`P zZpaa~ZgM{Eeze1I-GYk7`%KOJNcxJbr{)&GJWQ^`OB~P_x`SPFn zY)9cu4{%OJ$sdhWZY!7Zayn1>ttdA?^YM?T6;Tb=d6kIurNp_*JCp8d>K86AnciuC zGeO=zic|R2UCyTZ+qNke`;D(3R7%4B;~O&k|XgA8mtmRfd9n-EWb1%x~9WJuJU0^R$wn>^^olqLeElw+`Mj8=a2aDl>9yGPwfT1Z0`4_?u0%M^hJ_q^4amm z@4B^bOw~=q4)+BV2HKCGyegP-`~aue&|{UlG*OSt{#7kqYBOE+D_GNWPPq0ttmoFm z@)fYOmf-g}+P|GwHn3!Q%+eo5I3JL!NjAg?nM55G7Xqi2C}r5zMgYFWZ|;t9PS}U< zId8_O2V%jABObM48655rpJA4)nfq`q5yy zB_SrGGY?$R<_@%2E&t>Dw0-P>@{tOSTR7gl9;oXl?Y33&*{ZXJ?#i4T>550g-OF*!NMivCrR^R{UWNKE(Q91Usrmf4%loL!Ah!jM_>i?$odjjeD{LyR+s^>!kyb8shq1Tcad3>I z@5687l zIAy#@rW;yAv&@Q4GuRPPCWEOaN81sjKX_~ankCaU2T1LJjuehTD3m{O?cCKncM$vO zMwtsLM$K|YR1weA)(wT6m(v@CKWVscy)3*c`+HY(>?Vw)oPs&`s)oke7*CZB(4#vL zb^1{nmK}^ayfrnD>tP4$AM{R~>lRdy3R)D*doNkZt6)qA(xii>WN`81y zA65BHBG~y(8Y$cX*qRo0$1_Af14`Fuqy2rkKJSWN@CkKk_JjqL85g6D4OO$6<)nDx zV*X#=VsJC*^{IxURzR}H7(>yLK-FM~X2TQ>=tUQ6Mgpzm>BP`C)kRr~<{6kEd^zYC zVyXyY9h?vMjUl&$ux*=le{&hE+xX7stJ=KAz%8~pu>=ywtAL6HZiPJx&GXV7zg;IdH@XPB?+&{fgluopU zFnT!@1MIej=Z_AC)x+nIP&9;Xsr7 z!2SZN!YpH&X;JBlh)Q#gwBX?MGyuC#)~n7YQM;YBXXflhK{PSSq)udU>AQjWQwy2W zOyRbZjQ6e^Rk#;=tK7VcVi+qIPKRLPqPf0U za0@0|_;bw{0*cM57=&UVfPL1Lw;X*1Jq6IWE&YD<8t3Ea9d(H^r-`nUbNq|MgB!NNUV6lsc^XN zA(ETCnwNDZ^XX67iwSwhUg~EUi(cB7pS}FVBpLVMOuz05v^5u>Pu4u4aj9RDgp#17lZiDz2KEj}D z>v+x;x1VllP1CU9a49_k?6MIt&)MXHMW6sATr0 zHP0MI!|c=$P?*1L8(9-ODbgH`+gcIo2lfL&upJyxlsszz3ZQC&ozf+pK zvHt+OOSVs^<3-pMO|<2)5rx3@;L@0GSMOWr-5#_RKsmtAwMn>R?$8%9@~YT$aDUob zl~}RHD)AtWR-@R2=WQ!oE<#WR&uWOCaynJLgSQnKfFD6im$3PY`98F7Ak^MRrawA( zwqJkFi!oglJjV2=iBF|iHfjFWX!|Pr{&ZQ2=zvP!-K1$4bGEFAR19-Rk~#tM`cYuH zQ_ueZXPQqtp5m<=WM<_^ru~jEI+}JB$dcn9c%RCo7YWZlr6<`CFdLZCn^ei<(y$5k znEg-XMJL%;-ij;*d?@>>DGfwi`~DQnvFvK>B5e9n5;5AM+Qjt5FP4CO%}&D}r=PqH zD;C@W1@$GV5m0^5KD8hn#&bwu4o)+JPX>kQPQV`20Go*Z8bdBREiT>M=kTicnvJ!P z0nX`9L>*~?IJj<}S*80)&IsF7Z6}ub8IheZd#@jbOpshL%S#gx+h-IYEPbH2dTEu9 zy(UnDg$hSeNHYHbb#d=N#4c$$H6TD&a^Z)lIi$rPLvw*ky@zUcD8&FK@lZZNH5hbJ~+`J7?=a#23S)aI}Zpfm6jabE(}5f;xs#nu|H6kzClO-0H$tJ`BcMChTV3?t_P`o-_Dds>T(G`g*|7O@v|e|pEF`BNeRwM zEQ8SerkUkgleEGSy&Y=rn5=$v3;5F25Q|%M=?V|Rrbk3wqaX^dV|f1O z%$?UgK9t}xG6AH}%OZb&(t|gl2CD9)%_{+HTsZzO&X>*%eq>Yh;;H23mv_Au0_w`E z%Dbn~)T?nQKP2G$8qLYiQASM`3!_+F%m*lhudaBblnX()qj#-Fw-Go5jt@dR)4_$hH#CDlJ4x+G zPds2#j70S2n9;iZ>``Hc_XDUW-kh>a{n7QP8f8w$HBNn5B4CQykpBPz@@b^Sp{=>G z%C0IIu68ddiU)QzmS?z-{o=pQm}Bn1vG=0DT75y-VH@!aim2>nY`ZZYg{ioy5;DiA z9`#Dd25Gm=wc=ZN&fcy%53OJGq>ym@dX5&MjS@Zw%zsLp4E^uQrcY7WKqV&;$nBov zfGTmlda9G^X`!$H6uY|`R{`OIf=<$XDRXZ4EeaF#sI%KN-NKN|Dj)~sjRt?&r{ixx zzksTHsR`q)0xcO>4%DjhNx(%WsS-VDM403;2ACIom2bTgXWNR6t&_G?pI${qw~~Q? z{8RqZD}kIE06e{;rhUaT3Qq=|=DF%A#|}9dKJ-`!nL!AD6kW&A`g)Q)3*}2s1?cJVEt+1aUE)T zMn8Tj8f~NI#y*q?*{Q-2+|kMd755B|MJYV=sXUbQH18>UQsfJe?>>}e{S8QBKD6H| zLFrGFR~p5!j2dQ0sR~Q!pT?WD^U6`k0|yP9V>G909ze}I3{OK(jut$TLqHJ+4W3Gl z)o2hp)OcaQDdPz8Z2cUlV*P=-CoBifz1 zngRL8dT?$kE!1w}fF{mqF;Qj7~u;Ju>WZr&eHA!_5uaTa# zaylBzd$qG&!c~?L#tRM0^!2N7+(&T|$rEKw77;#3G;j8(@^MB@78xe$LVHwaG*Mt4 zO*FR@!}X@-iwKi6RC%I{0hAfD-h$8X`O^s}y%^+GGKl~ut_R~z3NzRAsK6qm4Mo6} z4mhbrR}W7T9>Rf>(Uu(J@u-BKiJ@4r$r+-;8Fbe_XJxem%{?<%&{{RU!IJg~r6;R> z>gWOXH6pkju|P9p4s!&ex&O}nWhWV6(*VI>J-dl_^Df)`2`dyRA zvLYB=PIpAxYU3o8tRp2at`LTkYZ2V>pRHel;wz{_+`A$l%Fr6)oRjAQtgkpE}QAjPUV;^04(D^<;T1f}nHlRQ~|7VM#p5OQHV& zW&Z%BUQOcxvB!FmhnE?n$xlz#ox9qXAkZt3`6=o8(d4JSNs&vCC>bA;o}aBJlAea7 z$UW&eG=*`VQXa;W$WKa_29pQUi-8}J80|-s9y(OGIHPHz;~+4mF}9=f8=ztbsjFLP z*nKFt%4P=(jH{gY;({GX{m{p#t7IQaX$GCZsAeOuA4*}H2k(BBZIN55iiNHD`A;5{ zfQQT(%WgELSkF=UidKdDRBa63!ejhs0#qAIO6yo(@rW#gb) zuyPLusR2>eSk4>f_r*kI1Fi*V2f+Ec6&u2j%KlXJ5ll$0(TC?sSP$Y9vRk3!X#7P& zZPf5!RuuU_mvIz%p0!FyCb#+R1b`2{44*JR?w-{mT}39)cSOz6Tw;@rfVJiWN`7wm z_o(rX)KrXu;tRJ@k=&_9>yfnnVwn{8b}_Qg7-&b`Xt^MJ)vjql;}usGjOlgzY4L9c zZe50U?ZyYx)E;~m(nehvD>i(%l$Bc3mfGH7i6D)=4mlN8O*B6d-OmX01QGhxrx4WD zw!MPrl(#-ihyGc*@YQJUQIFsbzugs~r zxeJqwn#Z}+V!QJ8UBkDw`2Z*D?^;u*%&sQvYEP}&`3yzM+nw7tNMA=MZ9%7Zg&5mQ_ml2`ewEYg>GIfx zCU*&Q$M=Oh?O=b)JpMI~74J@v^YW?C&9*B^F2%+xP) za^Q`~fcg$BUG?fb{@q%t6Q3FmGq%u#&jN?4id8O();(!9)^gEcf@EjkLgu!Zq2D4a}@;eK+bE8*R_AQOk)h|Z5Lz4_N^(w$&%SM&atUp$@_`L zv}}GwjC|PjCa>Gw*=dkwD>jnj_~enYT>Wb*&05;dCY$7vZ}KX_tY$$h&4gdN4|D5X z4l&sX+B%feg@2J38OK_`V=121UBam(^zZLn*?A{r0d_~!1{p2*RQv9?5A?}Lw%W@u=B*_&j;1E~%+Ta?x5&K7|cOBMY4pOR=(r(2nY9 zCrGYv@<5V5X(K*c{$jFV*9ZK(*_el7r*Nc~#AuI&wJtjl*rmxJxn@};h!GQB?j06r zgOB^@b4^?90A_|r!Qio9mo(U~s$)=iB=g78mAip-%2mBZ zTtbf?@6$Dt6Fe#utdlEyazFajppgOhdU{l}G)aXm*BGYA!ABh`Whsu845dKGsk_;X zjIlp-kw|v~){}4?8g}4CAO$>gPryCRL|X=p{)UEyakDnicrBj7upS$CzKq<$w&=u# z$-&RAJu9LNI<;52Hq$QIB1tjRaLy{@Au^5BGh0SZo|e)V`^x_S%v6?hy4xgb>{$Q} zxM1d(w$_WCmgv7hPgr6}1d6O1pvxM*f-DQUhw)Q|^uYEt0b%JuVd+QX}dWjUh$u#+|~&&oMh11dILppw{s>-pTr!iLEVe(Jp;UgsYYd)O*2)-=3Hzv>O-m)5G7J}x4?x(e zbLkMtDj3)z54<~{#;QEML6_{NH+JhkpSO4LXOTta>+liaq>;4shS-m1x_#LfGu z<%A!+BO{t&(QHT?gOlpbl4!EH8Zge+G5MCafzbCRn=Q@#xdiNS>(mdgrB^mK`#=Gg z9X2*9GpAcW4<*6&G8$GuUOKUYJ@+t;zu$$!Rl9rpYo!J$Mo;jcmA@ld7Wz%CwtSUw z&T>v_XRujtT)88ocOQ)=kQ+JtsR^vrww+E^XB8)xbO;`9eydZ;GU-1`X(Q6B`FBBo z)<%7?M%$76Q6J8og5<`cZUMl>MCR~x5x3)2WNkpV`k09S0Dhk+?u(}w98#a9Q8MZy zrKDtIvs4mlH*ny|X|#Sc)L2~8U=2oitdp%Ef8H+NaB5+xBPx&yQ`~b`$i;H|9mD1s zrWFIBs>1ylg0@%Pg*xKsM4`OB**N>y#T=|INLvS`HPsyox~r+|)fd|j@xoO8bjG=3 z${_q{*e*NCk|CIPOBm{h?=R5zq)C!S!u6`N-m;J0+z>yx7{~Ig+3wkZP^(KxBcd*wT4;p>AQXExQg+I$ndj& zbT>4RqkaimD##y|ez5^^$D!Zy=xx8&Bg)kUHk6T;4srAgnSL zEC&m_9`z&_Z!vAKNwjn>yL0$cvk`1MX9ST>I}R}8@ihkE-+4CuX{H$4or0ByPvz(S zTPQTXU#!Z1Dy{Z(Kk~?aRK84VNA8#MpbHHfo)d0Qa?~Z63>rx{FzM(j2T2L}U6DN( zujfvM3b@O=dX_n$3&VleKUzlGdZ<5IjFW?ow3)yKxHN!Y-IMnh@}*F}+*(3%GuD_} znk)m^Q$I9fkU9W+3XWMergQIA?PM2gytf1Rf5w2hZ_HEEIH0&*c{FVTlwefY4E;g_ zsOi@huB4=~vg03>Wa-`(Yh~X%EYcMKZUYJHT|Vw8&TB9!-J3$L>idhn@Hff}hLz811<8tzO^{UTtu;Xbar`>^)YcEogYiMPjC`_z6 zZ5=($B(IbM#7_N`c5CqhEufx*GZ{0&osLb(m@ zq%8ciupQ^WQSXYmY2@BV<_W~U-34Ynv6^PvCiVlX4!**eET3t3@Tab0ZKTuXRs*08 zWBFA=ueCLfe+tNgd&rI@+{@UJ&0mW42l-_?53NrvfPWzLq%VWh6p~5@++f4hR7L%H zqQFhO(Yqp{^F65EY1l4U^Ek#hrxsRT56$V0DyZaVAkn)X)L1TQCC8T%sXN$rH6XZN zGDkI)<_}t5GmLU+a)r%-l5!6i=}l?MwgMW>j^acZL&v=`ON+gPLb+z(l5vV$qq(S~ zExpI!DaDme?aHiuYZ)$YV~ijKpH>+krB4*M4%?=17qW^uLgtB<835fXlD)yFEYX(% zWA;mabFReSAeJMftc{H^Fzhz%ul)q$C z>rV^^Q%~QK!K4-;`xI^fb=(K7M*3BwDIP?8_2R5=G~(yi6t2R>CDH8{7>x1I1|qGc zvJM6ooFxN>#WChUat#`=9QN!0C~zsDupFEpew5Gc0H+9>&$my`nD{mai*fh za?5Tj>-4JO%Wem)RhUlEFpA?2eMSXE7@b%al}YxalrCDBmHJ|!Gh?^sQaqz={+?;!8A)FuYYl?mE@IxTG!H{(JDMn} z0Q*ztfCu4C`%J`b-Nh781Afsc#vO$pXqT^;)KNeRXP2(?OfyNIU8tgg3^GVtJKOW4 z%#%6ZXrh?Mq>=%U=dLMC?dpHViYP!r>kP=j;X)6#E1SH6;>%Gh1gg-yMo_Q803Jsl zr4&`fL!;E#TM1cr#7^8E2tU@ft>sIYHWfQa=zCE`P$HvV?YjFMV6*=KdH4W+6*wEl zUD%IB;)*I|pvDz7w=S37TlkHGCQf*vxqKZQqGb$kjV0XaHK#9DP4<3e!DuhUPY*27P>rgy^ z5WJtQ6jK3Xl!K1c?=!s=QUa~(pCR+kMn5{ow7eR9z%Ci$U{t8~>53?=BD4{?XR2FX z58b4o{{Xb3{A&0@S8&ECqO)MemBj#2MInid_n>-FMFR?k>*jwijBo`MQ$l4CqS={z z`C(R**A-*R3coG@9kE3fcO7GIDW66o57cI3LcO_F>Tzx5k2Vy(@ zD598$fTOiZxCGsf1r$;h#_l8n4LKio9PvdIg5$d598t{_P&6S8jO0|Q8DI`*qJSh2 z9Gti5PZ&|hr4&#yHoH~h<|KPkeX((!r}7k0KneEIo)e(&P|c~j3J}F3QJK zx_(iVbKF(iTgluHF@gLjqMO(gE{A;fr-Iq!@kJGrDKSftN1UgE4HQt243`qFz|6Qg z$Tb$(p&U!NdNmYPBn2D&a9GSEmfwFFC0qXhtx+bwXDJzmVflZJ6jh{!a_l!S&OkvR zJ+cK%S8p^?MTK!PXdwGhMIaB#oV-y*CIS