From 845282db50be0c33131ae80d6ef335d253c0b6ec Mon Sep 17 00:00:00 2001 From: genxium Date: Thu, 12 Jan 2023 07:22:14 +0800 Subject: [PATCH] Minor fix. --- frontend/assets/plugin_scripts/jsexport.js | 299 ++++++---- .../animation/KnifeGirl/Dashing.anim | 61 ++ .../animation/KnifeGirl/Dashing.anim.meta | 5 + .../animation/KnifeGirl/KnifeGirl.plist | 338 ++++++++--- .../animation/KnifeGirl/KnifeGirl.plist.meta | 552 ++++++++++++------ .../animation/KnifeGirl/KnifeGirl.png | Bin 106974 -> 117073 bytes .../resources/animation/KnifeGirl/OnWall.anim | 37 ++ .../animation/KnifeGirl/OnWall.anim.meta | 5 + frontend/assets/resources/map/dungeon/map.tmx | 110 ++-- .../prefabs/ControlledCharacter.prefab | 8 + frontend/assets/scenes/offline_map.fire | 6 +- frontend/assets/scripts/AttackingCharacter.js | 21 +- frontend/assets/scripts/Map.js | 47 +- frontend/assets/scripts/OfflineMap.js | 2 +- frontend/assets/scripts/TouchEventsManager.js | 16 + jsexport/battle/battle.go | 103 +++- jsexport/battle/characterConfig.go | 22 +- jsexport/main.go | 3 +- 18 files changed, 1146 insertions(+), 489 deletions(-) create mode 100644 frontend/assets/resources/animation/KnifeGirl/Dashing.anim create mode 100644 frontend/assets/resources/animation/KnifeGirl/Dashing.anim.meta create mode 100644 frontend/assets/resources/animation/KnifeGirl/OnWall.anim create mode 100644 frontend/assets/resources/animation/KnifeGirl/OnWall.anim.meta diff --git a/frontend/assets/plugin_scripts/jsexport.js b/frontend/assets/plugin_scripts/jsexport.js index 16020ca..9401dfb 100644 --- a/frontend/assets/plugin_scripts/jsexport.js +++ b/frontend/assets/plugin_scripts/jsexport.js @@ -4996,7 +4996,7 @@ $packages["jsexport/battle"] = (function() { this.Eles = Eles_; }); SkillMapperType = $pkg.SkillMapperType = $newType(4, $kindFunc, "battle.SkillMapperType", true, "jsexport/battle", true, null); - CharacterConfig = $pkg.CharacterConfig = $newType(0, $kindStruct, "battle.CharacterConfig", true, "jsexport/battle", true, function(SpeciesId_, SpeciesName_, InAirIdleFrameIdxTurningPoint_, InAirIdleFrameIdxTurnedCycle_, LayDownFrames_, LayDownFramesToRecover_, GetUpInvinsibleFrames_, GetUpFramesToRecover_, Speed_, JumpingInitVelY_, SkillMapper_) { + CharacterConfig = $pkg.CharacterConfig = $newType(0, $kindStruct, "battle.CharacterConfig", true, "jsexport/battle", true, function(SpeciesId_, SpeciesName_, InAirIdleFrameIdxTurningPoint_, InAirIdleFrameIdxTurnedCycle_, LayDownFrames_, LayDownFramesToRecover_, GetUpInvinsibleFrames_, GetUpFramesToRecover_, Speed_, JumpingInitVelY_, DashingEnabled_, OnWallEnabled_, WallJumpingInitVelX_, WallJumpingInitVelY_, WallSlidingVelY_, SkillMapper_) { this.$val = this; if (arguments.length === 0) { this.SpeciesId = 0; @@ -5009,6 +5009,11 @@ $packages["jsexport/battle"] = (function() { this.GetUpFramesToRecover = 0; this.Speed = 0; this.JumpingInitVelY = 0; + this.DashingEnabled = false; + this.OnWallEnabled = false; + this.WallJumpingInitVelX = 0; + this.WallJumpingInitVelY = 0; + this.WallSlidingVelY = 0; this.SkillMapper = $throwNilPointerError; return; } @@ -5022,6 +5027,11 @@ $packages["jsexport/battle"] = (function() { this.GetUpFramesToRecover = GetUpFramesToRecover_; this.Speed = Speed_; this.JumpingInitVelY = JumpingInitVelY_; + this.DashingEnabled = DashingEnabled_; + this.OnWallEnabled = OnWallEnabled_; + this.WallJumpingInitVelX = WallJumpingInitVelX_; + this.WallJumpingInitVelY = WallJumpingInitVelY_; + this.WallSlidingVelY = WallSlidingVelY_; this.SkillMapper = SkillMapper_; }); SatResult = $pkg.SatResult = $newType(0, $kindStruct, "battle.SatResult", true, "jsexport/battle", true, function(Overlap_, OverlapX_, OverlapY_, AContainedInB_, BContainedInA_, Axis_) { @@ -5189,10 +5199,10 @@ $packages["jsexport/battle"] = (function() { $pkg.ShouldGenerateInputFrameUpsync = ShouldGenerateInputFrameUpsync; ConvertToDelayedInputFrameId = function(renderFrameId) { var renderFrameId; - if (renderFrameId < 8) { + if (renderFrameId < 4) { return 0; } - return (((renderFrameId - 8 >> 0)) >> 2 >> 0); + return (((renderFrameId - 4 >> 0)) >> 2 >> 0); }; $pkg.ConvertToDelayedInputFrameId = ConvertToDelayedInputFrameId; ConvertToNoDelayInputFrameId = function(renderFrameId) { @@ -5202,12 +5212,12 @@ $packages["jsexport/battle"] = (function() { $pkg.ConvertToNoDelayInputFrameId = ConvertToNoDelayInputFrameId; ConvertToFirstUsedRenderFrameId = function(inputFrameId) { var inputFrameId; - return (((inputFrameId << 2 >> 0)) + 8 >> 0); + return (((inputFrameId << 2 >> 0)) + 4 >> 0); }; $pkg.ConvertToFirstUsedRenderFrameId = ConvertToFirstUsedRenderFrameId; ConvertToLastUsedRenderFrameId = function(inputFrameId) { var inputFrameId; - return (((((inputFrameId << 2 >> 0)) + 8 >> 0) + 4 >> 0) - 1 >> 0); + return (((((inputFrameId << 2 >> 0)) + 4 >> 0) + 4 >> 0) - 1 >> 0); }; $pkg.ConvertToLastUsedRenderFrameId = ConvertToLastUsedRenderFrameId; decodeInput = function(encodedInput) { @@ -5501,6 +5511,8 @@ $packages["jsexport/battle"] = (function() { existent$1 = _tuple$1[1]; if (!existent$1) { jumpedOrNot = true; + } else if (16 === currPlayerDownsync.CharacterState) { + jumpedOrNot = true; } } } @@ -5517,7 +5529,7 @@ $packages["jsexport/battle"] = (function() { return [patternId, jumpedOrNot, effDx, effDy]; }; ApplyInputFrameDownsyncDynamicsOnSingleRenderFrame = function(inputsBuffer, currRenderFrame, collisionSys, collisionSysMap, collisionSpaceOffsetX, collisionSpaceOffsetY, chConfigsOrderedByJoinIndex) { - var {_1, _2, _entry, _entry$1, _entry$2, _entry$3, _entry$4, _entry$5, _i, _i$1, _i$10, _i$11, _i$12, _i$2, _i$3, _i$4, _i$5, _i$6, _i$7, _i$8, _i$9, _index, _index$1, _index$2, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _ref, _ref$1, _ref$10, _ref$11, _ref$12, _ref$13, _ref$14, _ref$15, _ref$16, _ref$17, _ref$18, _ref$2, _ref$3, _ref$4, _ref$5, _ref$6, _ref$7, _ref$8, _ref$9, _tmp, _tmp$1, _tmp$10, _tmp$11, _tmp$12, _tmp$13, _tmp$14, _tmp$15, _tmp$16, _tmp$17, _tmp$18, _tmp$19, _tmp$2, _tmp$20, _tmp$21, _tmp$22, _tmp$23, _tmp$24, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tmp$8, _tmp$9, _tuple, _tuple$1, _tuple$10, _tuple$11, _tuple$12, _tuple$13, _tuple$14, _tuple$15, _tuple$16, _tuple$17, _tuple$2, _tuple$3, _tuple$4, _tuple$5, _tuple$6, _tuple$7, _tuple$8, _tuple$9, addToNextRenderFrame, atkedPlayerInNextFrame, atkedPlayerInNextFrame$1, bShape, bulletCollider, bulletColliders, bulletLocalId, bulletShape, bulletShape$1, bulletWx, bulletWx$1, bulletWy, bulletWy$1, chConfig, chConfig$1, chConfig$2, chConfigsOrderedByJoinIndex, colliderHeight, colliderWidth, colliderWorldHeight, colliderWorldWidth, collision, collision$1, collisionSpaceOffsetX, collisionSpaceOffsetY, collisionSys, collisionSysMap, currPlayerDownsync, currPlayerDownsync$1, currPlayerDownsync$2, currPlayerDownsync$3, currPlayerDownsync$4, currRenderFrame, defenderShape, defenderShape$1, effDx, effDy, effPushbacks, existent, existent$1, existent$2, existent$3, existent$4, existent$5, fireballBullet, halfColliderHeightDiff, halfColliderWidthDiff, halfColliderWorldHeightDiff, hardPushbackNorm, hardPushbackNorms, hasLockVel, hitboxSizeWx, hitboxSizeWx$1, hitboxSizeWy, hitboxSizeWy$1, i, i$1, i$2, i$3, i$4, inputsBuffer, isAnotherPlayer, isBarrier, isBullet, joinIndex, joinIndex$1, joinIndex$2, joinIndex$3, jumpedOrNot, jumpedOrNotList, landedOnGravityPushback, meleeBullet, newBullet, newBullet$1, newBulletCollider, newBulletCollider$1, newVx, newVy, nextRenderFrameFireballBullets, nextRenderFrameMeleeBullets, nextRenderFramePlayers, normAlignmentWithGravity, obj, obj$1, obj$2, offender, offender$1, offender$2, oldFramesToRecover, oldFramesToRecover$1, oldNextCharacterState, overlapResult, overlapped, overlapped$1, overlapped$2, patternId, playerCollider, playerCollider$1, playerCollider$2, playerCollider$3, playerColliders, playerShape, projectedMagnitude, pushbackVelX, pushbackVelX$1, pushbackVelY, pushbackVelY$1, pushbackX, pushbackY, roomCapacity, skillConfig, skillId, t, t$1, t$2, t$3, thatPlayerInNextFrame, thatPlayerInNextFrame$1, thatPlayerInNextFrame$2, thatPlayerInNextFrame$3, v, v$1, v$2, v$3, v$4, v$5, wx, wy, x, x$1, x$10, x$11, x$12, x$13, x$14, x$15, x$16, x$17, x$18, x$2, x$3, x$4, x$5, x$6, x$7, x$8, x$9, xfac, xfac$1, xfac$2, xfac$3, $s, $r, $c} = $restore(this, {inputsBuffer, currRenderFrame, collisionSys, collisionSysMap, collisionSpaceOffsetX, collisionSpaceOffsetY, chConfigsOrderedByJoinIndex}); + var {_1, _2, _3, _entry, _entry$1, _entry$2, _entry$3, _entry$4, _entry$5, _i, _i$1, _i$10, _i$11, _i$12, _i$13, _i$2, _i$3, _i$4, _i$5, _i$6, _i$7, _i$8, _i$9, _index, _index$1, _index$2, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _ref, _ref$1, _ref$10, _ref$11, _ref$12, _ref$13, _ref$14, _ref$15, _ref$16, _ref$17, _ref$18, _ref$19, _ref$2, _ref$3, _ref$4, _ref$5, _ref$6, _ref$7, _ref$8, _ref$9, _tmp, _tmp$1, _tmp$10, _tmp$11, _tmp$12, _tmp$13, _tmp$14, _tmp$15, _tmp$16, _tmp$17, _tmp$18, _tmp$19, _tmp$2, _tmp$20, _tmp$21, _tmp$22, _tmp$23, _tmp$24, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tmp$8, _tmp$9, _tuple, _tuple$1, _tuple$10, _tuple$11, _tuple$12, _tuple$13, _tuple$14, _tuple$15, _tuple$16, _tuple$17, _tuple$2, _tuple$3, _tuple$4, _tuple$5, _tuple$6, _tuple$7, _tuple$8, _tuple$9, addToNextRenderFrame, atkedPlayerInNextFrame, atkedPlayerInNextFrame$1, bShape, bulletCollider, bulletColliders, bulletLocalId, bulletShape, bulletShape$1, bulletWx, bulletWx$1, bulletWy, bulletWy$1, chConfig, chConfig$1, chConfig$2, chConfigsOrderedByJoinIndex, colliderHeight, colliderWidth, colliderWorldHeight, colliderWorldWidth, collision, collision$1, collisionSpaceOffsetX, collisionSpaceOffsetY, collisionSys, collisionSysMap, ctrlAlignmentWithHorizon1, ctrlAlignmentWithHorizon2, currPlayerDownsync, currPlayerDownsync$1, currPlayerDownsync$2, currPlayerDownsync$3, currPlayerDownsync$4, currRenderFrame, defenderShape, defenderShape$1, effDx, effDy, effPushbacks, existent, existent$1, existent$2, existent$3, existent$4, existent$5, fallStopping, fireballBullet, halfColliderHeightDiff, halfColliderWidthDiff, halfColliderWorldHeightDiff, hardPushbackNorm, hardPushbackNorm$1, hardPushbackNorms, hasLockVel, hitboxSizeWx, hitboxSizeWx$1, hitboxSizeWy, hitboxSizeWy$1, i, i$1, i$2, i$3, i$4, inputsBuffer, isAnotherPlayer, isBarrier, isBullet, joinIndex, joinIndex$1, joinIndex$2, joinIndex$3, jumpedOrNot, jumpedOrNotList, landedOnGravityPushback, meleeBullet, newBullet, newBullet$1, newBulletCollider, newBulletCollider$1, newVx, newVy, nextRenderFrameFireballBullets, nextRenderFrameMeleeBullets, nextRenderFramePlayers, normAlignmentWithGravity, normAlignmentWithHorizon1, normAlignmentWithHorizon2, obj, obj$1, obj$2, offender, offender$1, offender$2, oldFramesToRecover, oldFramesToRecover$1, oldNextCharacterState, overlapResult, overlapped, overlapped$1, overlapped$2, patternId, playerCollider, playerCollider$1, playerCollider$2, playerCollider$3, playerColliders, playerShape, projectedMagnitude, pushbackVelX, pushbackVelX$1, pushbackVelY, pushbackVelY$1, pushbackX, pushbackY, roomCapacity, skillConfig, skillId, t, t$1, t$2, t$3, thatPlayerInNextFrame, thatPlayerInNextFrame$1, thatPlayerInNextFrame$2, thatPlayerInNextFrame$3, v, v$1, v$2, v$3, v$4, v$5, wx, wy, x, x$1, x$10, x$11, x$12, x$13, x$14, x$15, x$16, x$17, x$18, x$19, x$2, x$3, x$4, x$5, x$6, x$7, x$8, x$9, xfac, xfac$1, xfac$2, xfac$3, xfac$4, $s, $r, $c} = $restore(this, {inputsBuffer, currRenderFrame, collisionSys, collisionSysMap, collisionSpaceOffsetX, collisionSpaceOffsetY, chConfigsOrderedByJoinIndex}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: roomCapacity = currRenderFrame.PlayersArr.$length; nextRenderFramePlayers = $makeSlice(sliceType$6, roomCapacity); @@ -5550,7 +5562,6 @@ $packages["jsexport/battle"] = (function() { newBullet$1 = [newBullet$1]; i$1 = _i$1; currPlayerDownsync$1 = ((_i$1 < 0 || _i$1 >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i$1]); - ((i$1 < 0 || i$1 >= jumpedOrNotList.$length) ? ($throwRuntimeError("index out of range"), undefined) : jumpedOrNotList.$array[jumpedOrNotList.$offset + i$1] = false); chConfig = ((i$1 < 0 || i$1 >= chConfigsOrderedByJoinIndex.$length) ? ($throwRuntimeError("index out of range"), undefined) : chConfigsOrderedByJoinIndex.$array[chConfigsOrderedByJoinIndex.$offset + i$1]); thatPlayerInNextFrame = ((i$1 < 0 || i$1 >= nextRenderFramePlayers.$length) ? ($throwRuntimeError("index out of range"), undefined) : nextRenderFramePlayers.$array[nextRenderFramePlayers.$offset + i$1]); _tuple = deriveOpPattern(currPlayerDownsync$1, thatPlayerInNextFrame, currRenderFrame, inputsBuffer); @@ -5558,10 +5569,7 @@ $packages["jsexport/battle"] = (function() { jumpedOrNot = _tuple[1]; effDx = _tuple[2]; effDy = _tuple[3]; - if (jumpedOrNot) { - thatPlayerInNextFrame.VelY = (chConfig.JumpingInitVelY); - ((i$1 < 0 || i$1 >= jumpedOrNotList.$length) ? ($throwRuntimeError("index out of range"), undefined) : jumpedOrNotList.$array[jumpedOrNotList.$offset + i$1] = true); - } + ((i$1 < 0 || i$1 >= jumpedOrNotList.$length) ? ($throwRuntimeError("index out of range"), undefined) : jumpedOrNotList.$array[jumpedOrNotList.$offset + i$1] = jumpedOrNot); joinIndex = currPlayerDownsync$1.JoinIndex; _r = chConfig.SkillMapper(patternId, currPlayerDownsync$1); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } skillId = _r; @@ -5654,13 +5662,27 @@ $packages["jsexport/battle"] = (function() { _tmp$3 = 0; (x$2 = joinIndex$1 - 1 >> 0, ((x$2 < 0 || x$2 >= effPushbacks.$length) ? ($throwRuntimeError("index out of range"), undefined) : effPushbacks.$array[effPushbacks.$offset + x$2])).X = _tmp$2; (x$3 = joinIndex$1 - 1 >> 0, ((x$3 < 0 || x$3 >= effPushbacks.$length) ? ($throwRuntimeError("index out of range"), undefined) : effPushbacks.$array[effPushbacks.$offset + x$3])).Y = _tmp$3; + thatPlayerInNextFrame$1 = ((i$2 < 0 || i$2 >= nextRenderFramePlayers.$length) ? ($throwRuntimeError("index out of range"), undefined) : nextRenderFramePlayers.$array[nextRenderFramePlayers.$offset + i$2]); chConfig$1 = ((i$2 < 0 || i$2 >= chConfigsOrderedByJoinIndex.$length) ? ($throwRuntimeError("index out of range"), undefined) : chConfigsOrderedByJoinIndex.$array[chConfigsOrderedByJoinIndex.$offset + i$2]); _tmp$4 = currPlayerDownsync$2.VirtualGridX + currPlayerDownsync$2.VelX >> 0; _tmp$5 = currPlayerDownsync$2.VirtualGridY + currPlayerDownsync$2.VelY >> 0; newVx = _tmp$4; newVy = _tmp$5; if (((i$2 < 0 || i$2 >= jumpedOrNotList.$length) ? ($throwRuntimeError("index out of range"), undefined) : jumpedOrNotList.$array[jumpedOrNotList.$offset + i$2])) { - newVy = newVy + (chConfig$1.JumpingInitVelY) >> 0; + if (16 === currPlayerDownsync$2.CharacterState) { + newVx = newVx - (currPlayerDownsync$2.VelX) >> 0; + xfac$1 = -1; + if (0 > thatPlayerInNextFrame$1.DirX) { + xfac$1 = -xfac$1; + } + newVx = newVx + (($imul(xfac$1, chConfig$1.WallJumpingInitVelX))) >> 0; + newVy = newVy + (chConfig$1.WallJumpingInitVelY) >> 0; + thatPlayerInNextFrame$1.VelX = (($imul(xfac$1, chConfig$1.WallJumpingInitVelX))); + thatPlayerInNextFrame$1.VelY = (chConfig$1.WallJumpingInitVelY); + } else { + thatPlayerInNextFrame$1.VelY = (chConfig$1.JumpingInitVelY); + newVy = newVy + (chConfig$1.JumpingInitVelY) >> 0; + } } _tuple$2 = VirtualGridToWorldPos(newVx, newVy); wx = _tuple$2[0]; @@ -5675,7 +5697,7 @@ $packages["jsexport/battle"] = (function() { _tmp$9 = $imul(currPlayerDownsync$2.ColliderRadius, 2); colliderWidth = _tmp$8; colliderHeight = _tmp$9; - } else if ((_1 === (8)) || (_1 === (4)) || (_1 === (5))) { + } else if ((_1 === (8)) || (_1 === (4)) || (_1 === (5)) || (_1 === (16))) { _tmp$10 = $imul(currPlayerDownsync$2.ColliderRadius, 2); _tmp$11 = $imul(currPlayerDownsync$2.ColliderRadius, 2); colliderWidth = _tmp$10; @@ -5688,10 +5710,14 @@ $packages["jsexport/battle"] = (function() { playerCollider = _r$1; ((i$2 < 0 || i$2 >= playerColliders.$length) ? ($throwRuntimeError("index out of range"), undefined) : playerColliders.$array[playerColliders.$offset + i$2] = playerCollider); $r = collisionSys.Add(new sliceType$11([playerCollider])); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - thatPlayerInNextFrame$1 = ((i$2 < 0 || i$2 >= nextRenderFramePlayers.$length) ? ($throwRuntimeError("index out of range"), undefined) : nextRenderFramePlayers.$array[nextRenderFramePlayers.$offset + i$2]); if (currPlayerDownsync$2.InAir) { - thatPlayerInNextFrame$1.VelX = thatPlayerInNextFrame$1.VelX + (0) >> 0; - thatPlayerInNextFrame$1.VelY = thatPlayerInNextFrame$1.VelY + (-50) >> 0; + if ((16 === currPlayerDownsync$2.CharacterState) && !((i$2 < 0 || i$2 >= jumpedOrNotList.$length) ? ($throwRuntimeError("index out of range"), undefined) : jumpedOrNotList.$array[jumpedOrNotList.$offset + i$2])) { + thatPlayerInNextFrame$1.VelX = thatPlayerInNextFrame$1.VelX + (0) >> 0; + thatPlayerInNextFrame$1.VelY = chConfig$1.WallSlidingVelY; + } else { + thatPlayerInNextFrame$1.VelX = thatPlayerInNextFrame$1.VelX + (0) >> 0; + thatPlayerInNextFrame$1.VelY = thatPlayerInNextFrame$1.VelY + (-50) >> 0; + } } _i$2++; $s = 4; continue; @@ -5707,11 +5733,11 @@ $packages["jsexport/battle"] = (function() { /* */ $s = 12; continue; /* if (((meleeBullet.Bullet.OriginatedRenderFrameId + meleeBullet.Bullet.StartupFrames >> 0) <= currRenderFrame.Id) && (((meleeBullet.Bullet.OriginatedRenderFrameId + meleeBullet.Bullet.StartupFrames >> 0) + meleeBullet.Bullet.ActiveFrames >> 0) > currRenderFrame.Id)) { */ case 10: offender = (x$4 = currRenderFrame.PlayersArr, x$5 = meleeBullet.Bullet.OffenderJoinIndex - 1 >> 0, ((x$5 < 0 || x$5 >= x$4.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$4.$array[x$4.$offset + x$5])); - xfac$1 = 1; + xfac$2 = 1; if (0 > offender.DirX) { - xfac$1 = -xfac$1; + xfac$2 = -xfac$2; } - _tuple$4 = VirtualGridToWorldPos(offender.VirtualGridX + ($imul(xfac$1, meleeBullet.Bullet.HitboxOffsetX)) >> 0, offender.VirtualGridY); + _tuple$4 = VirtualGridToWorldPos(offender.VirtualGridX + ($imul(xfac$2, meleeBullet.Bullet.HitboxOffsetX)) >> 0, offender.VirtualGridY); bulletWx = _tuple$4[0]; bulletWy = _tuple$4[1]; _tuple$5 = VirtualGridToWorldPos(meleeBullet.Bullet.HitboxSizeX, meleeBullet.Bullet.HitboxSizeY); @@ -5838,31 +5864,32 @@ $packages["jsexport/battle"] = (function() { /* } */ case 26: if (landedOnGravityPushback) { thatPlayerInNextFrame$2.InAir = false; - if (currPlayerDownsync$3.InAir && 0 >= currPlayerDownsync$3.VelY) { + fallStopping = currPlayerDownsync$3.InAir && 0 >= currPlayerDownsync$3.VelY; + if (fallStopping) { thatPlayerInNextFrame$2.VelY = 0; thatPlayerInNextFrame$2.VelX = 0; - _tuple$9 = (_entry$1 = nonAttackingSet[$Int32.keyFor(thatPlayerInNextFrame$2.CharacterState)], _entry$1 !== undefined ? [_entry$1.v, true] : [false, false]); - existent$1 = _tuple$9[1]; - if (existent$1) { - if (8 === thatPlayerInNextFrame$2.CharacterState) { - thatPlayerInNextFrame$2.CharacterState = 9; - thatPlayerInNextFrame$2.FramesToRecover = chConfig$2.LayDownFramesToRecover; - } else { + if (8 === thatPlayerInNextFrame$2.CharacterState) { + thatPlayerInNextFrame$2.CharacterState = 9; + thatPlayerInNextFrame$2.FramesToRecover = chConfig$2.LayDownFramesToRecover; + } else { + _2 = currPlayerDownsync$3.CharacterState; + if ((_2 === (8)) || (_2 === (4)) || (_2 === (5)) || (_2 === (16))) { _tmp$17 = 0; _tmp$18 = currPlayerDownsync$3.ColliderRadius; halfColliderWidthDiff = _tmp$17; halfColliderHeightDiff = _tmp$18; - _tuple$10 = VirtualGridToWorldPos(halfColliderWidthDiff, halfColliderHeightDiff); - halfColliderWorldHeightDiff = _tuple$10[1]; + _tuple$9 = VirtualGridToWorldPos(halfColliderWidthDiff, halfColliderHeightDiff); + halfColliderWorldHeightDiff = _tuple$9[1]; _index$2 = joinIndex$2 - 1 >> 0; ((_index$2 < 0 || _index$2 >= effPushbacks.$length) ? ($throwRuntimeError("index out of range"), undefined) : effPushbacks.$array[effPushbacks.$offset + _index$2]).Y = ((_index$2 < 0 || _index$2 >= effPushbacks.$length) ? ($throwRuntimeError("index out of range"), undefined) : effPushbacks.$array[effPushbacks.$offset + _index$2]).Y - (halfColliderWorldHeightDiff); - thatPlayerInNextFrame$2.CharacterState = 0; } + thatPlayerInNextFrame$2.CharacterState = 0; + thatPlayerInNextFrame$2.FramesToRecover = 0; } } else { - _tuple$11 = (_entry$2 = nonAttackingSet[$Int32.keyFor(thatPlayerInNextFrame$2.CharacterState)], _entry$2 !== undefined ? [_entry$2.v, true] : [false, false]); - existent$2 = _tuple$11[1]; - if (existent$2) { + _tuple$10 = (_entry$1 = nonAttackingSet[$Int32.keyFor(thatPlayerInNextFrame$2.CharacterState)], _entry$1 !== undefined ? [_entry$1.v, true] : [false, false]); + existent$1 = _tuple$10[1]; + if (existent$1) { if (9 === thatPlayerInNextFrame$2.CharacterState) { if (0 === thatPlayerInNextFrame$2.FramesToRecover) { thatPlayerInNextFrame$2.CharacterState = 10; @@ -5877,70 +5904,96 @@ $packages["jsexport/battle"] = (function() { } } } + if (thatPlayerInNextFrame$2.InAir && chConfig$2.OnWallEnabled) { + _tuple$11 = (_entry$2 = noOpSet[$Int32.keyFor(currPlayerDownsync$3.CharacterState)], _entry$2 !== undefined ? [_entry$2.v, true] : [false, false]); + existent$2 = _tuple$11[1]; + if (!existent$2) { + _ref$10 = (x$9 = joinIndex$2 - 1 >> 0, ((x$9 < 0 || x$9 >= hardPushbackNorms.$length) ? ($throwRuntimeError("index out of range"), undefined) : hardPushbackNorms.$array[hardPushbackNorms.$offset + x$9])).$get(); + _i$8 = 0; + while (true) { + if (!(_i$8 < _ref$10.$length)) { break; } + hardPushbackNorm$1 = $clone(((_i$8 < 0 || _i$8 >= _ref$10.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$10.$array[_ref$10.$offset + _i$8]), Vec2D); + normAlignmentWithHorizon1 = hardPushbackNorm$1.X * 1 + hardPushbackNorm$1.Y * 0; + ctrlAlignmentWithHorizon1 = (thatPlayerInNextFrame$2.DirX) * 1 + (thatPlayerInNextFrame$2.DirY) * 0; + normAlignmentWithHorizon2 = hardPushbackNorm$1.X * -1 + hardPushbackNorm$1.Y * 0; + ctrlAlignmentWithHorizon2 = (thatPlayerInNextFrame$2.DirX) * -1 + (thatPlayerInNextFrame$2.DirY) * 0; + if (0.9 < normAlignmentWithHorizon1 && 0.9 < ctrlAlignmentWithHorizon1) { + thatPlayerInNextFrame$2.OnWall = true; + } + if (0.9 < normAlignmentWithHorizon2 && 0.9 < ctrlAlignmentWithHorizon2) { + thatPlayerInNextFrame$2.OnWall = true; + } + _i$8++; + } + if (!currPlayerDownsync$3.OnWall && thatPlayerInNextFrame$2.OnWall) { + thatPlayerInNextFrame$2.VelY = 0; + } + } + } _i$5++; $s = 22; continue; case 23: - _ref$10 = bulletColliders; - _i$8 = 0; + _ref$11 = bulletColliders; + _i$9 = 0; /* while (true) { */ case 30: - /* if (!(_i$8 < _ref$10.$length)) { break; } */ if(!(_i$8 < _ref$10.$length)) { $s = 31; continue; } - bulletCollider = ((_i$8 < 0 || _i$8 >= _ref$10.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$10.$array[_ref$10.$offset + _i$8]); + /* if (!(_i$9 < _ref$11.$length)) { break; } */ if(!(_i$9 < _ref$11.$length)) { $s = 31; continue; } + bulletCollider = ((_i$9 < 0 || _i$9 >= _ref$11.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$11.$array[_ref$11.$offset + _i$9]); collision$1 = bulletCollider.Check(0, 0, new sliceType$4([])); bulletCollider.Space.Remove(new sliceType$11([bulletCollider])); addToNextRenderFrame = true; /* */ if (!(ptrType$3.nil === collision$1)) { $s = 32; continue; } /* */ $s = 33; continue; /* if (!(ptrType$3.nil === collision$1)) { */ case 32: - _ref$11 = bulletCollider.Data; - /* */ if ($assertType(_ref$11, ptrType$1, true)[1]) { $s = 34; continue; } - /* */ if ($assertType(_ref$11, ptrType$6, true)[1]) { $s = 35; continue; } + _ref$12 = bulletCollider.Data; + /* */ if ($assertType(_ref$12, ptrType$1, true)[1]) { $s = 34; continue; } + /* */ if ($assertType(_ref$12, ptrType$6, true)[1]) { $s = 35; continue; } /* */ $s = 36; continue; - /* if ($assertType(_ref$11, ptrType$1, true)[1]) { */ case 34: - v$2 = _ref$11.$val; + /* if ($assertType(_ref$12, ptrType$1, true)[1]) { */ case 34: + v$2 = _ref$12.$val; bulletShape = $assertType(bulletCollider.Shape, ptrType$7); - offender$1 = (x$9 = currRenderFrame.PlayersArr, x$10 = v$2.Bullet.OffenderJoinIndex - 1 >> 0, ((x$10 < 0 || x$10 >= x$9.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$9.$array[x$9.$offset + x$10])); - _ref$12 = collision$1.Objects; - _i$9 = 0; + offender$1 = (x$10 = currRenderFrame.PlayersArr, x$11 = v$2.Bullet.OffenderJoinIndex - 1 >> 0, ((x$11 < 0 || x$11 >= x$10.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$10.$array[x$10.$offset + x$11])); + _ref$13 = collision$1.Objects; + _i$10 = 0; /* while (true) { */ case 37: - /* if (!(_i$9 < _ref$12.$length)) { break; } */ if(!(_i$9 < _ref$12.$length)) { $s = 38; continue; } - obj$1 = ((_i$9 < 0 || _i$9 >= _ref$12.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$12.$array[_ref$12.$offset + _i$9]); + /* if (!(_i$10 < _ref$13.$length)) { break; } */ if(!(_i$10 < _ref$13.$length)) { $s = 38; continue; } + obj$1 = ((_i$10 < 0 || _i$10 >= _ref$13.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$13.$array[_ref$13.$offset + _i$10]); defenderShape = $assertType(obj$1.Shape, ptrType$7); - _ref$13 = obj$1.Data; - /* */ if ($assertType(_ref$13, ptrType$5, true)[1]) { $s = 39; continue; } + _ref$14 = obj$1.Data; + /* */ if ($assertType(_ref$14, ptrType$5, true)[1]) { $s = 39; continue; } /* */ $s = 40; continue; - /* if ($assertType(_ref$13, ptrType$5, true)[1]) { */ case 39: - t = _ref$13.$val; + /* if ($assertType(_ref$14, ptrType$5, true)[1]) { */ case 39: + t = _ref$14.$val; if (v$2.Bullet.OffenderJoinIndex === t.JoinIndex) { - _i$9++; + _i$10++; /* continue; */ $s = 37; continue; } _r$6 = CalcPushbacks(0, 0, bulletShape, defenderShape); /* */ $s = 42; case 42: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } _tuple$12 = _r$6; overlapped$1 = _tuple$12[0]; if (!overlapped$1) { - _i$9++; + _i$10++; /* continue; */ $s = 37; continue; } addToNextRenderFrame = false; _tuple$13 = (_entry$3 = invinsibleSet[$Int32.keyFor(t.CharacterState)], _entry$3 !== undefined ? [_entry$3.v, true] : [false, false]); existent$3 = _tuple$13[1]; if (existent$3) { - _i$9++; + _i$10++; /* continue; */ $s = 37; continue; } if (0 < t.FramesInvinsible) { - _i$9++; + _i$10++; /* continue; */ $s = 37; continue; } - xfac$2 = 1; + xfac$3 = 1; if (0 > offender$1.DirX) { - xfac$2 = -xfac$2; + xfac$3 = -xfac$3; } - _tmp$19 = $imul(xfac$2, v$2.Bullet.PushbackVelX); + _tmp$19 = $imul(xfac$3, v$2.Bullet.PushbackVelX); _tmp$20 = v$2.Bullet.PushbackVelY; pushbackVelX = _tmp$19; pushbackVelY = _tmp$20; - atkedPlayerInNextFrame = (x$11 = t.JoinIndex - 1 >> 0, ((x$11 < 0 || x$11 >= nextRenderFramePlayers.$length) ? ($throwRuntimeError("index out of range"), undefined) : nextRenderFramePlayers.$array[nextRenderFramePlayers.$offset + x$11])); + atkedPlayerInNextFrame = (x$12 = t.JoinIndex - 1 >> 0, ((x$12 < 0 || x$12 >= nextRenderFramePlayers.$length) ? ($throwRuntimeError("index out of range"), undefined) : nextRenderFramePlayers.$array[nextRenderFramePlayers.$offset + x$12])); atkedPlayerInNextFrame.VelX = pushbackVelX; atkedPlayerInNextFrame.VelY = pushbackVelY; if (v$2.Bullet.BlowUp) { @@ -5948,65 +6001,65 @@ $packages["jsexport/battle"] = (function() { } else { atkedPlayerInNextFrame.CharacterState = 3; } - oldFramesToRecover = (x$12 = t.JoinIndex - 1 >> 0, ((x$12 < 0 || x$12 >= nextRenderFramePlayers.$length) ? ($throwRuntimeError("index out of range"), undefined) : nextRenderFramePlayers.$array[nextRenderFramePlayers.$offset + x$12])).FramesToRecover; + oldFramesToRecover = (x$13 = t.JoinIndex - 1 >> 0, ((x$13 < 0 || x$13 >= nextRenderFramePlayers.$length) ? ($throwRuntimeError("index out of range"), undefined) : nextRenderFramePlayers.$array[nextRenderFramePlayers.$offset + x$13])).FramesToRecover; if (v$2.Bullet.HitStunFrames > oldFramesToRecover) { atkedPlayerInNextFrame.FramesToRecover = v$2.Bullet.HitStunFrames; } $s = 41; continue; /* } else { */ case 40: - t$1 = _ref$13; + t$1 = _ref$14; addToNextRenderFrame = false; /* } */ case 41: - _i$9++; + _i$10++; $s = 37; continue; case 38: $s = 36; continue; - /* } else if ($assertType(_ref$11, ptrType$6, true)[1]) { */ case 35: - v$3 = _ref$11.$val; + /* } else if ($assertType(_ref$12, ptrType$6, true)[1]) { */ case 35: + v$3 = _ref$12.$val; bulletShape$1 = $assertType(bulletCollider.Shape, ptrType$7); - offender$2 = (x$13 = currRenderFrame.PlayersArr, x$14 = v$3.Bullet.OffenderJoinIndex - 1 >> 0, ((x$14 < 0 || x$14 >= x$13.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$13.$array[x$13.$offset + x$14])); - _ref$14 = collision$1.Objects; - _i$10 = 0; + offender$2 = (x$14 = currRenderFrame.PlayersArr, x$15 = v$3.Bullet.OffenderJoinIndex - 1 >> 0, ((x$15 < 0 || x$15 >= x$14.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$14.$array[x$14.$offset + x$15])); + _ref$15 = collision$1.Objects; + _i$11 = 0; /* while (true) { */ case 43: - /* if (!(_i$10 < _ref$14.$length)) { break; } */ if(!(_i$10 < _ref$14.$length)) { $s = 44; continue; } - obj$2 = ((_i$10 < 0 || _i$10 >= _ref$14.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$14.$array[_ref$14.$offset + _i$10]); + /* if (!(_i$11 < _ref$15.$length)) { break; } */ if(!(_i$11 < _ref$15.$length)) { $s = 44; continue; } + obj$2 = ((_i$11 < 0 || _i$11 >= _ref$15.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$15.$array[_ref$15.$offset + _i$11]); defenderShape$1 = $assertType(obj$2.Shape, ptrType$7); - _ref$15 = obj$2.Data; - /* */ if ($assertType(_ref$15, ptrType$5, true)[1]) { $s = 45; continue; } + _ref$16 = obj$2.Data; + /* */ if ($assertType(_ref$16, ptrType$5, true)[1]) { $s = 45; continue; } /* */ $s = 46; continue; - /* if ($assertType(_ref$15, ptrType$5, true)[1]) { */ case 45: - t$2 = _ref$15.$val; + /* if ($assertType(_ref$16, ptrType$5, true)[1]) { */ case 45: + t$2 = _ref$16.$val; if (v$3.Bullet.OffenderJoinIndex === t$2.JoinIndex) { - _i$10++; + _i$11++; /* continue; */ $s = 43; continue; } _r$7 = CalcPushbacks(0, 0, bulletShape$1, defenderShape$1); /* */ $s = 48; case 48: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } _tuple$14 = _r$7; overlapped$2 = _tuple$14[0]; if (!overlapped$2) { - _i$10++; + _i$11++; /* continue; */ $s = 43; continue; } addToNextRenderFrame = false; _tuple$15 = (_entry$4 = invinsibleSet[$Int32.keyFor(t$2.CharacterState)], _entry$4 !== undefined ? [_entry$4.v, true] : [false, false]); existent$4 = _tuple$15[1]; if (existent$4) { - _i$10++; + _i$11++; /* continue; */ $s = 43; continue; } if (0 < t$2.FramesInvinsible) { - _i$10++; + _i$11++; /* continue; */ $s = 43; continue; } - xfac$3 = 1; + xfac$4 = 1; if (0 > offender$2.DirX) { - xfac$3 = -xfac$3; + xfac$4 = -xfac$4; } - _tmp$21 = $imul(xfac$3, v$3.Bullet.PushbackVelX); + _tmp$21 = $imul(xfac$4, v$3.Bullet.PushbackVelX); _tmp$22 = v$3.Bullet.PushbackVelY; pushbackVelX$1 = _tmp$21; pushbackVelY$1 = _tmp$22; - atkedPlayerInNextFrame$1 = (x$15 = t$2.JoinIndex - 1 >> 0, ((x$15 < 0 || x$15 >= nextRenderFramePlayers.$length) ? ($throwRuntimeError("index out of range"), undefined) : nextRenderFramePlayers.$array[nextRenderFramePlayers.$offset + x$15])); + atkedPlayerInNextFrame$1 = (x$16 = t$2.JoinIndex - 1 >> 0, ((x$16 < 0 || x$16 >= nextRenderFramePlayers.$length) ? ($throwRuntimeError("index out of range"), undefined) : nextRenderFramePlayers.$array[nextRenderFramePlayers.$offset + x$16])); atkedPlayerInNextFrame$1.VelX = pushbackVelX$1; atkedPlayerInNextFrame$1.VelY = pushbackVelY$1; if (v$3.Bullet.BlowUp) { @@ -6014,27 +6067,27 @@ $packages["jsexport/battle"] = (function() { } else { atkedPlayerInNextFrame$1.CharacterState = 3; } - oldFramesToRecover$1 = (x$16 = t$2.JoinIndex - 1 >> 0, ((x$16 < 0 || x$16 >= nextRenderFramePlayers.$length) ? ($throwRuntimeError("index out of range"), undefined) : nextRenderFramePlayers.$array[nextRenderFramePlayers.$offset + x$16])).FramesToRecover; + oldFramesToRecover$1 = (x$17 = t$2.JoinIndex - 1 >> 0, ((x$17 < 0 || x$17 >= nextRenderFramePlayers.$length) ? ($throwRuntimeError("index out of range"), undefined) : nextRenderFramePlayers.$array[nextRenderFramePlayers.$offset + x$17])).FramesToRecover; if (v$3.Bullet.HitStunFrames > oldFramesToRecover$1) { atkedPlayerInNextFrame$1.FramesToRecover = v$3.Bullet.HitStunFrames; } $s = 47; continue; /* } else { */ case 46: - t$3 = _ref$15; + t$3 = _ref$16; addToNextRenderFrame = false; /* } */ case 47: - _i$10++; + _i$11++; $s = 43; continue; case 44: /* } */ case 36: /* } */ case 33: if (addToNextRenderFrame) { - _ref$16 = bulletCollider.Data; - if ($assertType(_ref$16, ptrType$1, true)[1]) { - v$4 = _ref$16.$val; + _ref$17 = bulletCollider.Data; + if ($assertType(_ref$17, ptrType$1, true)[1]) { + v$4 = _ref$17.$val; nextRenderFrameMeleeBullets = $append(nextRenderFrameMeleeBullets, v$4); - } else if ($assertType(_ref$16, ptrType$6, true)[1]) { - v$5 = _ref$16.$val; + } else if ($assertType(_ref$17, ptrType$6, true)[1]) { + v$5 = _ref$17.$val; _tmp$23 = v$5.VirtualGridX + v$5.VelX >> 0; _tmp$24 = v$5.VirtualGridY + v$5.VelY >> 0; v$5.VirtualGridX = _tmp$23; @@ -6042,33 +6095,41 @@ $packages["jsexport/battle"] = (function() { nextRenderFrameFireballBullets = $append(nextRenderFrameFireballBullets, v$5); } } - _i$8++; + _i$9++; $s = 30; continue; case 31: - _ref$17 = currRenderFrame.PlayersArr; - _i$11 = 0; + _ref$18 = currRenderFrame.PlayersArr; + _i$12 = 0; while (true) { - if (!(_i$11 < _ref$17.$length)) { break; } - i$4 = _i$11; - currPlayerDownsync$4 = ((_i$11 < 0 || _i$11 >= _ref$17.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$17.$array[_ref$17.$offset + _i$11]); + if (!(_i$12 < _ref$18.$length)) { break; } + i$4 = _i$12; + currPlayerDownsync$4 = ((_i$12 < 0 || _i$12 >= _ref$18.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$18.$array[_ref$18.$offset + _i$12]); joinIndex$3 = currPlayerDownsync$4.JoinIndex; playerCollider$2 = ((i$4 < 0 || i$4 >= playerColliders.$length) ? ($throwRuntimeError("index out of range"), undefined) : playerColliders.$array[playerColliders.$offset + i$4]); thatPlayerInNextFrame$3 = ((i$4 < 0 || i$4 >= nextRenderFramePlayers.$length) ? ($throwRuntimeError("index out of range"), undefined) : nextRenderFramePlayers.$array[nextRenderFramePlayers.$offset + i$4]); - _tuple$16 = PolygonColliderBLToVirtualGridPos(playerCollider$2.X - (x$17 = joinIndex$3 - 1 >> 0, ((x$17 < 0 || x$17 >= effPushbacks.$length) ? ($throwRuntimeError("index out of range"), undefined) : effPushbacks.$array[effPushbacks.$offset + x$17])).X, playerCollider$2.Y - (x$18 = joinIndex$3 - 1 >> 0, ((x$18 < 0 || x$18 >= effPushbacks.$length) ? ($throwRuntimeError("index out of range"), undefined) : effPushbacks.$array[effPushbacks.$offset + x$18])).Y, playerCollider$2.W * 0.5, playerCollider$2.H * 0.5, 0, 0, 0, 0, collisionSpaceOffsetX, collisionSpaceOffsetY); + _tuple$16 = PolygonColliderBLToVirtualGridPos(playerCollider$2.X - (x$18 = joinIndex$3 - 1 >> 0, ((x$18 < 0 || x$18 >= effPushbacks.$length) ? ($throwRuntimeError("index out of range"), undefined) : effPushbacks.$array[effPushbacks.$offset + x$18])).X, playerCollider$2.Y - (x$19 = joinIndex$3 - 1 >> 0, ((x$19 < 0 || x$19 >= effPushbacks.$length) ? ($throwRuntimeError("index out of range"), undefined) : effPushbacks.$array[effPushbacks.$offset + x$19])).Y, playerCollider$2.W * 0.5, playerCollider$2.H * 0.5, 0, 0, 0, 0, collisionSpaceOffsetX, collisionSpaceOffsetY); thatPlayerInNextFrame$3.VirtualGridX = _tuple$16[0]; thatPlayerInNextFrame$3.VirtualGridY = _tuple$16[1]; if (thatPlayerInNextFrame$3.InAir) { oldNextCharacterState = thatPlayerInNextFrame$3.CharacterState; - _2 = oldNextCharacterState; - if ((_2 === (0)) || (_2 === (1))) { + _3 = oldNextCharacterState; + if (_3 === (0)) { if (((i$4 < 0 || i$4 >= jumpedOrNotList.$length) ? ($throwRuntimeError("index out of range"), undefined) : jumpedOrNotList.$array[jumpedOrNotList.$offset + i$4]) || (5 === currPlayerDownsync$4.CharacterState)) { thatPlayerInNextFrame$3.CharacterState = 5; } else { thatPlayerInNextFrame$3.CharacterState = 4; } - } else if (_2 === (2)) { + } else if (_3 === (1)) { + if (thatPlayerInNextFrame$3.OnWall) { + thatPlayerInNextFrame$3.CharacterState = 16; + } else if (((i$4 < 0 || i$4 >= jumpedOrNotList.$length) ? ($throwRuntimeError("index out of range"), undefined) : jumpedOrNotList.$array[jumpedOrNotList.$offset + i$4]) || (5 === currPlayerDownsync$4.CharacterState)) { + thatPlayerInNextFrame$3.CharacterState = 5; + } else { + thatPlayerInNextFrame$3.CharacterState = 4; + } + } else if (_3 === (2)) { thatPlayerInNextFrame$3.CharacterState = 6; - } else if (_2 === (3)) { + } else if (_3 === (3)) { thatPlayerInNextFrame$3.CharacterState = 7; } } @@ -6081,18 +6142,18 @@ $packages["jsexport/battle"] = (function() { thatPlayerInNextFrame$3.ActiveSkillId = -1; thatPlayerInNextFrame$3.ActiveSkillHit = -1; } - _i$11++; - } - _ref$18 = playerColliders; - _i$12 = 0; - while (true) { - if (!(_i$12 < _ref$18.$length)) { break; } - playerCollider$3 = ((_i$12 < 0 || _i$12 >= _ref$18.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$18.$array[_ref$18.$offset + _i$12]); - playerCollider$3.Space.Remove(new sliceType$11([playerCollider$3])); _i$12++; } + _ref$19 = playerColliders; + _i$13 = 0; + while (true) { + if (!(_i$13 < _ref$19.$length)) { break; } + playerCollider$3 = ((_i$13 < 0 || _i$13 >= _ref$19.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$19.$array[_ref$19.$offset + _i$13]); + playerCollider$3.Space.Remove(new sliceType$11([playerCollider$3])); + _i$13++; + } $s = -1; return new RoomDownsyncFrame.ptr(currRenderFrame.Id + 1 >> 0, nextRenderFramePlayers, new $Int64(0, 0), nextRenderFrameMeleeBullets, nextRenderFrameFireballBullets, new $Uint64(0, 0), false, bulletLocalId); - /* */ } return; } var $f = {$blk: ApplyInputFrameDownsyncDynamicsOnSingleRenderFrame, $c: true, $r, _1, _2, _entry, _entry$1, _entry$2, _entry$3, _entry$4, _entry$5, _i, _i$1, _i$10, _i$11, _i$12, _i$2, _i$3, _i$4, _i$5, _i$6, _i$7, _i$8, _i$9, _index, _index$1, _index$2, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _ref, _ref$1, _ref$10, _ref$11, _ref$12, _ref$13, _ref$14, _ref$15, _ref$16, _ref$17, _ref$18, _ref$2, _ref$3, _ref$4, _ref$5, _ref$6, _ref$7, _ref$8, _ref$9, _tmp, _tmp$1, _tmp$10, _tmp$11, _tmp$12, _tmp$13, _tmp$14, _tmp$15, _tmp$16, _tmp$17, _tmp$18, _tmp$19, _tmp$2, _tmp$20, _tmp$21, _tmp$22, _tmp$23, _tmp$24, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tmp$8, _tmp$9, _tuple, _tuple$1, _tuple$10, _tuple$11, _tuple$12, _tuple$13, _tuple$14, _tuple$15, _tuple$16, _tuple$17, _tuple$2, _tuple$3, _tuple$4, _tuple$5, _tuple$6, _tuple$7, _tuple$8, _tuple$9, addToNextRenderFrame, atkedPlayerInNextFrame, atkedPlayerInNextFrame$1, bShape, bulletCollider, bulletColliders, bulletLocalId, bulletShape, bulletShape$1, bulletWx, bulletWx$1, bulletWy, bulletWy$1, chConfig, chConfig$1, chConfig$2, chConfigsOrderedByJoinIndex, colliderHeight, colliderWidth, colliderWorldHeight, colliderWorldWidth, collision, collision$1, collisionSpaceOffsetX, collisionSpaceOffsetY, collisionSys, collisionSysMap, currPlayerDownsync, currPlayerDownsync$1, currPlayerDownsync$2, currPlayerDownsync$3, currPlayerDownsync$4, currRenderFrame, defenderShape, defenderShape$1, effDx, effDy, effPushbacks, existent, existent$1, existent$2, existent$3, existent$4, existent$5, fireballBullet, halfColliderHeightDiff, halfColliderWidthDiff, halfColliderWorldHeightDiff, hardPushbackNorm, hardPushbackNorms, hasLockVel, hitboxSizeWx, hitboxSizeWx$1, hitboxSizeWy, hitboxSizeWy$1, i, i$1, i$2, i$3, i$4, inputsBuffer, isAnotherPlayer, isBarrier, isBullet, joinIndex, joinIndex$1, joinIndex$2, joinIndex$3, jumpedOrNot, jumpedOrNotList, landedOnGravityPushback, meleeBullet, newBullet, newBullet$1, newBulletCollider, newBulletCollider$1, newVx, newVy, nextRenderFrameFireballBullets, nextRenderFrameMeleeBullets, nextRenderFramePlayers, normAlignmentWithGravity, obj, obj$1, obj$2, offender, offender$1, offender$2, oldFramesToRecover, oldFramesToRecover$1, oldNextCharacterState, overlapResult, overlapped, overlapped$1, overlapped$2, patternId, playerCollider, playerCollider$1, playerCollider$2, playerCollider$3, playerColliders, playerShape, projectedMagnitude, pushbackVelX, pushbackVelX$1, pushbackVelY, pushbackVelY$1, pushbackX, pushbackY, roomCapacity, skillConfig, skillId, t, t$1, t$2, t$3, thatPlayerInNextFrame, thatPlayerInNextFrame$1, thatPlayerInNextFrame$2, thatPlayerInNextFrame$3, v, v$1, v$2, v$3, v$4, v$5, wx, wy, x, x$1, x$10, x$11, x$12, x$13, x$14, x$15, x$16, x$17, x$18, x$2, x$3, x$4, x$5, x$6, x$7, x$8, x$9, xfac, xfac$1, xfac$2, xfac$3, $s};return $f; + /* */ } return; } var $f = {$blk: ApplyInputFrameDownsyncDynamicsOnSingleRenderFrame, $c: true, $r, _1, _2, _3, _entry, _entry$1, _entry$2, _entry$3, _entry$4, _entry$5, _i, _i$1, _i$10, _i$11, _i$12, _i$13, _i$2, _i$3, _i$4, _i$5, _i$6, _i$7, _i$8, _i$9, _index, _index$1, _index$2, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _ref, _ref$1, _ref$10, _ref$11, _ref$12, _ref$13, _ref$14, _ref$15, _ref$16, _ref$17, _ref$18, _ref$19, _ref$2, _ref$3, _ref$4, _ref$5, _ref$6, _ref$7, _ref$8, _ref$9, _tmp, _tmp$1, _tmp$10, _tmp$11, _tmp$12, _tmp$13, _tmp$14, _tmp$15, _tmp$16, _tmp$17, _tmp$18, _tmp$19, _tmp$2, _tmp$20, _tmp$21, _tmp$22, _tmp$23, _tmp$24, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tmp$8, _tmp$9, _tuple, _tuple$1, _tuple$10, _tuple$11, _tuple$12, _tuple$13, _tuple$14, _tuple$15, _tuple$16, _tuple$17, _tuple$2, _tuple$3, _tuple$4, _tuple$5, _tuple$6, _tuple$7, _tuple$8, _tuple$9, addToNextRenderFrame, atkedPlayerInNextFrame, atkedPlayerInNextFrame$1, bShape, bulletCollider, bulletColliders, bulletLocalId, bulletShape, bulletShape$1, bulletWx, bulletWx$1, bulletWy, bulletWy$1, chConfig, chConfig$1, chConfig$2, chConfigsOrderedByJoinIndex, colliderHeight, colliderWidth, colliderWorldHeight, colliderWorldWidth, collision, collision$1, collisionSpaceOffsetX, collisionSpaceOffsetY, collisionSys, collisionSysMap, ctrlAlignmentWithHorizon1, ctrlAlignmentWithHorizon2, currPlayerDownsync, currPlayerDownsync$1, currPlayerDownsync$2, currPlayerDownsync$3, currPlayerDownsync$4, currRenderFrame, defenderShape, defenderShape$1, effDx, effDy, effPushbacks, existent, existent$1, existent$2, existent$3, existent$4, existent$5, fallStopping, fireballBullet, halfColliderHeightDiff, halfColliderWidthDiff, halfColliderWorldHeightDiff, hardPushbackNorm, hardPushbackNorm$1, hardPushbackNorms, hasLockVel, hitboxSizeWx, hitboxSizeWx$1, hitboxSizeWy, hitboxSizeWy$1, i, i$1, i$2, i$3, i$4, inputsBuffer, isAnotherPlayer, isBarrier, isBullet, joinIndex, joinIndex$1, joinIndex$2, joinIndex$3, jumpedOrNot, jumpedOrNotList, landedOnGravityPushback, meleeBullet, newBullet, newBullet$1, newBulletCollider, newBulletCollider$1, newVx, newVy, nextRenderFrameFireballBullets, nextRenderFrameMeleeBullets, nextRenderFramePlayers, normAlignmentWithGravity, normAlignmentWithHorizon1, normAlignmentWithHorizon2, obj, obj$1, obj$2, offender, offender$1, offender$2, oldFramesToRecover, oldFramesToRecover$1, oldNextCharacterState, overlapResult, overlapped, overlapped$1, overlapped$2, patternId, playerCollider, playerCollider$1, playerCollider$2, playerCollider$3, playerColliders, playerShape, projectedMagnitude, pushbackVelX, pushbackVelX$1, pushbackVelY, pushbackVelY$1, pushbackX, pushbackY, roomCapacity, skillConfig, skillId, t, t$1, t$2, t$3, thatPlayerInNextFrame, thatPlayerInNextFrame$1, thatPlayerInNextFrame$2, thatPlayerInNextFrame$3, v, v$1, v$2, v$3, v$4, v$5, wx, wy, x, x$1, x$10, x$11, x$12, x$13, x$14, x$15, x$16, x$17, x$18, x$19, x$2, x$3, x$4, x$5, x$6, x$7, x$8, x$9, xfac, xfac$1, xfac$2, xfac$3, xfac$4, $s};return $f; }; $pkg.ApplyInputFrameDownsyncDynamicsOnSingleRenderFrame = ApplyInputFrameDownsyncDynamicsOnSingleRenderFrame; GenerateRectCollider = function(wx, wy, w, h, topPadding, bottomPadding, leftPadding, rightPadding, spaceOffsetX, spaceOffsetY, data, tag) { @@ -6210,7 +6271,7 @@ $packages["jsexport/battle"] = (function() { NpcPatrolCue.init("", [{prop: "FlAct", name: "FlAct", embedded: false, exported: true, typ: $Uint64, tag: ""}, {prop: "FrAct", name: "FrAct", embedded: false, exported: true, typ: $Uint64, tag: ""}, {prop: "X", name: "X", embedded: false, exported: true, typ: $Float64, tag: ""}, {prop: "Y", name: "Y", embedded: false, exported: true, typ: $Float64, tag: ""}]); RingBuffer.init("", [{prop: "Ed", name: "Ed", embedded: false, exported: true, typ: $Int32, tag: ""}, {prop: "St", name: "St", embedded: false, exported: true, typ: $Int32, tag: ""}, {prop: "EdFrameId", name: "EdFrameId", embedded: false, exported: true, typ: $Int32, tag: ""}, {prop: "StFrameId", name: "StFrameId", embedded: false, exported: true, typ: $Int32, tag: ""}, {prop: "N", name: "N", embedded: false, exported: true, typ: $Int32, tag: ""}, {prop: "Cnt", name: "Cnt", embedded: false, exported: true, typ: $Int32, tag: ""}, {prop: "Eles", name: "Eles", embedded: false, exported: true, typ: sliceType$2, tag: ""}]); SkillMapperType.init([$Int, ptrType$5], [$Int], false); - CharacterConfig.init("", [{prop: "SpeciesId", name: "SpeciesId", embedded: false, exported: true, typ: $Int, tag: ""}, {prop: "SpeciesName", name: "SpeciesName", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "InAirIdleFrameIdxTurningPoint", name: "InAirIdleFrameIdxTurningPoint", embedded: false, exported: true, typ: $Int, tag: ""}, {prop: "InAirIdleFrameIdxTurnedCycle", name: "InAirIdleFrameIdxTurnedCycle", embedded: false, exported: true, typ: $Int, tag: ""}, {prop: "LayDownFrames", name: "LayDownFrames", embedded: false, exported: true, typ: $Int32, tag: ""}, {prop: "LayDownFramesToRecover", name: "LayDownFramesToRecover", embedded: false, exported: true, typ: $Int32, tag: ""}, {prop: "GetUpInvinsibleFrames", name: "GetUpInvinsibleFrames", embedded: false, exported: true, typ: $Int32, tag: ""}, {prop: "GetUpFramesToRecover", name: "GetUpFramesToRecover", embedded: false, exported: true, typ: $Int32, tag: ""}, {prop: "Speed", name: "Speed", embedded: false, exported: true, typ: $Int32, tag: ""}, {prop: "JumpingInitVelY", name: "JumpingInitVelY", embedded: false, exported: true, typ: $Int32, tag: ""}, {prop: "SkillMapper", name: "SkillMapper", embedded: false, exported: true, typ: SkillMapperType, tag: ""}]); + CharacterConfig.init("", [{prop: "SpeciesId", name: "SpeciesId", embedded: false, exported: true, typ: $Int, tag: ""}, {prop: "SpeciesName", name: "SpeciesName", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "InAirIdleFrameIdxTurningPoint", name: "InAirIdleFrameIdxTurningPoint", embedded: false, exported: true, typ: $Int, tag: ""}, {prop: "InAirIdleFrameIdxTurnedCycle", name: "InAirIdleFrameIdxTurnedCycle", embedded: false, exported: true, typ: $Int, tag: ""}, {prop: "LayDownFrames", name: "LayDownFrames", embedded: false, exported: true, typ: $Int32, tag: ""}, {prop: "LayDownFramesToRecover", name: "LayDownFramesToRecover", embedded: false, exported: true, typ: $Int32, tag: ""}, {prop: "GetUpInvinsibleFrames", name: "GetUpInvinsibleFrames", embedded: false, exported: true, typ: $Int32, tag: ""}, {prop: "GetUpFramesToRecover", name: "GetUpFramesToRecover", embedded: false, exported: true, typ: $Int32, tag: ""}, {prop: "Speed", name: "Speed", embedded: false, exported: true, typ: $Int32, tag: ""}, {prop: "JumpingInitVelY", name: "JumpingInitVelY", embedded: false, exported: true, typ: $Int32, tag: ""}, {prop: "DashingEnabled", name: "DashingEnabled", embedded: false, exported: true, typ: $Bool, tag: ""}, {prop: "OnWallEnabled", name: "OnWallEnabled", embedded: false, exported: true, typ: $Bool, tag: ""}, {prop: "WallJumpingInitVelX", name: "WallJumpingInitVelX", embedded: false, exported: true, typ: $Int32, tag: ""}, {prop: "WallJumpingInitVelY", name: "WallJumpingInitVelY", embedded: false, exported: true, typ: $Int32, tag: ""}, {prop: "WallSlidingVelY", name: "WallSlidingVelY", embedded: false, exported: true, typ: $Int32, tag: ""}, {prop: "SkillMapper", name: "SkillMapper", embedded: false, exported: true, typ: SkillMapperType, tag: ""}]); SatResult.init("", [{prop: "Overlap", name: "Overlap", embedded: false, exported: true, typ: $Float64, tag: ""}, {prop: "OverlapX", name: "OverlapX", embedded: false, exported: true, typ: $Float64, tag: ""}, {prop: "OverlapY", name: "OverlapY", embedded: false, exported: true, typ: $Float64, tag: ""}, {prop: "AContainedInB", name: "AContainedInB", embedded: false, exported: true, typ: $Bool, tag: ""}, {prop: "BContainedInA", name: "BContainedInA", embedded: false, exported: true, typ: $Bool, tag: ""}, {prop: "Axis", name: "Axis", embedded: false, exported: true, typ: resolv.Vector, tag: ""}]); $init = function() { $pkg.$init = function() {}; @@ -6218,8 +6279,8 @@ $packages["jsexport/battle"] = (function() { $r = math.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $r = resolv.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $pkg.DIRECTION_DECODER = new sliceType$1([new sliceType([0, 0]), new sliceType([0, 2]), new sliceType([0, -2]), new sliceType([2, 0]), new sliceType([-2, 0]), new sliceType([1, 1]), new sliceType([-1, -1]), new sliceType([1, -1]), new sliceType([-1, 1])]); - skills = $makeMap($Int.keyFor, [{ k: 1, v: new Skill.ptr(0, 30, 30, 30, 1, 2, new sliceType$2([new MeleeBullet.ptr(new Bullet.ptr(0, 0, 0, 7, 13, 30, 22, 13, 9, 50, 0, 5, 5, -1, 1200, 0, 2400, 3200, false, $makeMap($Int.keyFor, [{ k: 1, v: 2 }]), 0))])) }, { k: 2, v: new Skill.ptr(0, 36, 36, 36, 1, 11, new sliceType$2([new MeleeBullet.ptr(new Bullet.ptr(0, 0, 0, 18, 22, 36, 18, 18, 9, 50, 0, 5, 10, -1, 1800, 0, 2400, 3200, false, $makeMap($Int.keyFor, [{ k: 1, v: 3 }]), 0))])) }, { k: 3, v: new Skill.ptr(0, 50, 50, 50, 1, 12, new sliceType$2([new MeleeBullet.ptr(new Bullet.ptr(0, 0, 0, 8, 0, 0, 30, 999999999, 9, 200, 700, 10, 50, 500, 1600, 800, 3200, 3200, true, false, 0))])) }, { k: 4, v: new Skill.ptr(0, 30, 30, 30, 1, 2, new sliceType$2([new MeleeBullet.ptr(new Bullet.ptr(0, 0, 0, 7, 13, 30, 22, 13, 9, 50, 0, 5, 5, -1, 1200, 0, 2400, 3200, false, $makeMap($Int.keyFor, [{ k: 1, v: 5 }]), 0))])) }, { k: 5, v: new Skill.ptr(0, 36, 36, 36, 1, 11, new sliceType$2([new MeleeBullet.ptr(new Bullet.ptr(0, 0, 0, 18, 22, 36, 18, 18, 9, 50, 0, 5, 10, -1, 1800, 0, 2400, 3200, false, $makeMap($Int.keyFor, [{ k: 1, v: 6 }]), 0))])) }, { k: 6, v: new Skill.ptr(0, 45, 45, 45, 1, 12, new sliceType$2([new MeleeBullet.ptr(new Bullet.ptr(0, 0, 0, 8, 0, 0, 28, 999999999, 9, 200, -1, 10, -10, -1, 2400, 0, 3200, 3200, true, false, 0))])) }, { k: 7, v: new Skill.ptr(0, 30, 30, 30, 1, 2, new sliceType$2([new MeleeBullet.ptr(new Bullet.ptr(0, 0, 0, 7, 13, 30, 22, 13, 9, 50, 0, 5, -1, -1, 1200, 0, 2400, 3200, false, $makeMap($Int.keyFor, [{ k: 1, v: 8 }]), 0))])) }, { k: 8, v: new Skill.ptr(0, 36, 36, 36, 1, 11, new sliceType$2([new MeleeBullet.ptr(new Bullet.ptr(0, 0, 0, 18, 22, 36, 18, 18, 9, 50, 0, 5, 10, -1, 1800, 0, 2400, 3200, false, $makeMap($Int.keyFor, [{ k: 1, v: 9 }]), 0))])) }, { k: 9, v: new Skill.ptr(0, 40, 40, 40, 1, 12, new sliceType$2([new MeleeBullet.ptr(new Bullet.ptr(0, 0, 0, 7, 0, 0, 30, 999999999, 9, 200, 400, 10, 100, -1, 1000, 0, 3200, 3200, true, false, 0))])) }, { k: 10, v: new Skill.ptr(0, 40, 40, 40, 1, 13, new sliceType$2([new FireballBullet.ptr(0, 0, 0, 0, 0, 0, 800, 1, new Bullet.ptr(0, 0, 0, 15, 0, 0, 999999999, 15, 9, 200, 0, 20, -1, -1, 3200, 500, 4800, 3200, false, false, 0))])) }, { k: 11, v: new Skill.ptr(0, 60, 60, 60, 1, 14, new sliceType$2([new MeleeBullet.ptr(new Bullet.ptr(0, 0, 0, 3, 0, 0, 25, 999999999, 9, 200, 700, 30, 100, 800, 800, 0, 4000, 6400, true, false, 0))])) }, { k: 255, v: new Skill.ptr(0, 30, 30, 30, 1, 6, new sliceType$2([new MeleeBullet.ptr(new Bullet.ptr(0, 0, 0, 3, 0, 0, 20, 18, 9, 50, 0, 5, -1, -1, 1200, 0, 3200, 2400, false, false, 0))])) }, { k: 256, v: new Skill.ptr(0, 20, 20, 20, 1, 6, new sliceType$2([new MeleeBullet.ptr(new Bullet.ptr(0, 0, 0, 3, 0, 0, 10, 15, 9, 50, 0, 5, -1, -1, 1200, 0, 3200, 2400, false, false, 0))])) }, { k: 257, v: new Skill.ptr(0, 30, 30, 30, 1, 6, new sliceType$2([new MeleeBullet.ptr(new Bullet.ptr(0, 0, 0, 3, 0, 0, 20, 18, 9, 50, 0, 5, -1, -1, 1200, 0, 3200, 2400, false, false, 0))])) }]); - $pkg.Characters = $makeMap($Int.keyFor, [{ k: 0, v: new CharacterConfig.ptr(0, "MonkGirl", 11, 1, 16, 16, 10, 27, 120, 800, (function(patternId, currPlayerDownsync) { + skills = $makeMap($Int.keyFor, [{ k: 1, v: new Skill.ptr(0, 30, 30, 30, 1, 2, new sliceType$2([new MeleeBullet.ptr(new Bullet.ptr(0, 0, 0, 7, 13, 30, 22, 13, 9, 50, 0, 5, 5, -1, 1200, 0, 2400, 3200, false, $makeMap($Int.keyFor, [{ k: 1, v: 2 }]), 0))])) }, { k: 2, v: new Skill.ptr(0, 36, 36, 36, 1, 11, new sliceType$2([new MeleeBullet.ptr(new Bullet.ptr(0, 0, 0, 18, 22, 36, 18, 18, 9, 50, 0, 5, 10, -1, 1800, 0, 2400, 3200, false, $makeMap($Int.keyFor, [{ k: 1, v: 3 }]), 0))])) }, { k: 3, v: new Skill.ptr(0, 50, 50, 50, 1, 12, new sliceType$2([new MeleeBullet.ptr(new Bullet.ptr(0, 0, 0, 8, 0, 0, 30, 999999999, 9, 200, 700, 10, 50, 500, 1600, 800, 3200, 3200, true, false, 0))])) }, { k: 4, v: new Skill.ptr(0, 30, 30, 30, 1, 2, new sliceType$2([new MeleeBullet.ptr(new Bullet.ptr(0, 0, 0, 7, 13, 30, 22, 13, 9, 50, 0, 5, 5, -1, 1200, 0, 2400, 3200, false, $makeMap($Int.keyFor, [{ k: 1, v: 5 }]), 0))])) }, { k: 5, v: new Skill.ptr(0, 36, 36, 36, 1, 11, new sliceType$2([new MeleeBullet.ptr(new Bullet.ptr(0, 0, 0, 18, 22, 36, 18, 18, 9, 50, 0, 5, 10, -1, 1800, 0, 2400, 3200, false, $makeMap($Int.keyFor, [{ k: 1, v: 6 }]), 0))])) }, { k: 6, v: new Skill.ptr(0, 45, 45, 45, 1, 12, new sliceType$2([new MeleeBullet.ptr(new Bullet.ptr(0, 0, 0, 8, 0, 0, 28, 999999999, 9, 200, 300, 10, -1, -1, 2400, 0, 3200, 3200, true, false, 0))])) }, { k: 7, v: new Skill.ptr(0, 30, 30, 30, 1, 2, new sliceType$2([new MeleeBullet.ptr(new Bullet.ptr(0, 0, 0, 7, 13, 30, 22, 13, 9, 50, 0, 5, -1, -1, 1200, 0, 2400, 3200, false, $makeMap($Int.keyFor, [{ k: 1, v: 8 }]), 0))])) }, { k: 8, v: new Skill.ptr(0, 36, 36, 36, 1, 11, new sliceType$2([new MeleeBullet.ptr(new Bullet.ptr(0, 0, 0, 18, 22, 36, 18, 18, 9, 50, 0, 5, 10, -1, 1800, 0, 2400, 3200, false, $makeMap($Int.keyFor, [{ k: 1, v: 9 }]), 0))])) }, { k: 9, v: new Skill.ptr(0, 40, 40, 40, 1, 12, new sliceType$2([new MeleeBullet.ptr(new Bullet.ptr(0, 0, 0, 7, 0, 0, 30, 999999999, 9, 200, 400, 10, 100, -1, 1000, 0, 3200, 3200, true, false, 0))])) }, { k: 10, v: new Skill.ptr(0, 40, 40, 40, 1, 13, new sliceType$2([new FireballBullet.ptr(0, 0, 0, 0, 0, 0, 800, 1, new Bullet.ptr(0, 0, 0, 15, 0, 0, 999999999, 15, 9, 200, 0, 20, -1, -1, 3200, 500, 4800, 3200, false, false, 0))])) }, { k: 11, v: new Skill.ptr(0, 60, 60, 60, 1, 14, new sliceType$2([new MeleeBullet.ptr(new Bullet.ptr(0, 0, 0, 3, 0, 0, 25, 999999999, 9, 200, 700, 30, 100, 800, 800, 0, 4000, 6400, true, false, 0))])) }, { k: 255, v: new Skill.ptr(0, 30, 30, 30, 1, 6, new sliceType$2([new MeleeBullet.ptr(new Bullet.ptr(0, 0, 0, 3, 0, 0, 20, 18, 9, 50, 0, 5, -1, -1, 1200, 0, 3200, 2400, false, false, 0))])) }, { k: 256, v: new Skill.ptr(0, 20, 20, 20, 1, 6, new sliceType$2([new MeleeBullet.ptr(new Bullet.ptr(0, 0, 0, 3, 0, 0, 10, 15, 9, 50, 0, 5, -1, -1, 1200, 0, 3200, 2400, false, false, 0))])) }, { k: 257, v: new Skill.ptr(0, 30, 30, 30, 1, 6, new sliceType$2([new MeleeBullet.ptr(new Bullet.ptr(0, 0, 0, 3, 0, 0, 20, 18, 9, 50, 0, 5, -1, -1, 1200, 0, 3200, 2400, false, false, 0))])) }]); + $pkg.Characters = $makeMap($Int.keyFor, [{ k: 0, v: new CharacterConfig.ptr(0, "MonkGirl", 11, 1, 16, 16, 10, 27, 120, 800, false, false, 0, 0, 0, (function(patternId, currPlayerDownsync) { var _entry, _entry$1, _ref, _tuple, _tuple$1, currPlayerDownsync, existent1, existent2, nextSkillId, patternId, skillConfig, v, x, x$1; if (1 === patternId) { if (0 === currPlayerDownsync.FramesToRecover) { @@ -6249,7 +6310,7 @@ $packages["jsexport/battle"] = (function() { } } return -1; - })) }, { k: 1, v: new CharacterConfig.ptr(1, "KnifeGirl", 9, 1, 16, 16, 10, 27, 140, 750, (function(patternId, currPlayerDownsync) { + })) }, { k: 1, v: new CharacterConfig.ptr(1, "KnifeGirl", 9, 1, 16, 16, 10, 27, 140, 750, true, true, 700, 700, -100, (function(patternId, currPlayerDownsync) { var _entry, _entry$1, _ref, _tuple, _tuple$1, currPlayerDownsync, existent1, existent2, nextSkillId, patternId, skillConfig, v, x, x$1; if (1 === patternId) { if (0 === currPlayerDownsync.FramesToRecover) { @@ -6279,7 +6340,7 @@ $packages["jsexport/battle"] = (function() { } } return -1; - })) }, { k: 4096, v: new CharacterConfig.ptr(4096, "Monk", 42, 2, 14, 14, 8, 30, 100, 750, (function(patternId, currPlayerDownsync) { + })) }, { k: 4096, v: new CharacterConfig.ptr(4096, "Monk", 42, 2, 14, 14, 8, 30, 100, 750, false, false, 0, 0, 0, (function(patternId, currPlayerDownsync) { var _entry, _entry$1, _ref, _tuple, _tuple$1, currPlayerDownsync, existent1, existent2, nextSkillId, patternId, skillConfig, v, x, x$1; if (1 === patternId) { if (0 === currPlayerDownsync.FramesToRecover) { @@ -6318,7 +6379,7 @@ $packages["jsexport/battle"] = (function() { } return -1; })) }]); - inAirSet = $makeMap($Int32.keyFor, [{ k: 4, v: true }, { k: 5, v: true }, { k: 6, v: true }, { k: 7, v: true }, { k: 8, v: true }]); + inAirSet = $makeMap($Int32.keyFor, [{ k: 4, v: true }, { k: 5, v: true }, { k: 6, v: true }, { k: 7, v: true }, { k: 8, v: true }, { k: 16, v: true }]); noOpSet = $makeMap($Int32.keyFor, [{ k: 3, v: true }, { k: 7, v: true }, { k: 8, v: true }, { k: 9, v: true }]); invinsibleSet = $makeMap($Int32.keyFor, [{ k: 8, v: true }, { k: 9, v: true }, { k: 10, v: true }]); nonAttackingSet = $makeMap($Int32.keyFor, [{ k: 0, v: true }, { k: 1, v: true }, { k: 4, v: true }, { k: 5, v: true }, { k: 3, v: true }, { k: 7, v: true }, { k: 8, v: true }, { k: 9, v: true }, { k: 10, v: true }]); @@ -6348,7 +6409,7 @@ $packages["jsexport"] = (function() { funcType = $funcType([$Float64, $Float64], [ptrType$5], false); funcType$1 = $funcType([ptrType, sliceType$1], [ptrType$5], false); funcType$2 = $funcType([ptrType$1], [ptrType$5], false); - funcType$3 = $funcType([$Int32, $Int32, $Int32, $Int32, $Int32, $Int32, $Int32, $Int32, $Int32, $Int32, $Int32, $Int32, $Int32, $Int32, $Int32, $Int32, $Int32, $Int32, $Int32, $Bool, $Int32, $Int32], [ptrType$5], false); + funcType$3 = $funcType([$Int32, $Int32, $Int32, $Int32, $Int32, $Int32, $Int32, $Int32, $Int32, $Int32, $Int32, $Int32, $Int32, $Int32, $Int32, $Int32, $Int32, $Int32, $Int32, $Bool, $Bool, $Int32, $Int32], [ptrType$5], false); funcType$4 = $funcType([$Int32, $Int32, $Int32, $Int32, $Int32, $Int32, $Int32, $Int32, $Int32, $Int32, $Int32, $Int32, $Int32, $Int32, $Int32, $Int32, $Int32, $Int32, $Bool, $Int32], [ptrType$5], false); funcType$5 = $funcType([$Int32, $Int32, $Int32, $Int32, $Int32, $Int32, $Int32, $Int32, $Int32, $Int32, $Int32, $Int32, $Int32, $Int32, $Int32, $Int32, $Int32, $Int32, $Bool, $Int32, $Int32, $Int32, $Int32, $Int32, $Int32, $Int32, $Int32, $Int32], [ptrType$5], false); funcType$6 = $funcType([$Uint64, $Uint64, $Float64, $Float64], [ptrType$5], false); @@ -6420,9 +6481,9 @@ $packages["jsexport"] = (function() { return js.MakeWrapper(new battle.Barrier.ptr(boundary)); }; $pkg.NewBarrierJs = NewBarrierJs; - NewPlayerDownsyncJs = function(id, virtualGridX, virtualGridY, dirX, dirY, velX, velY, framesToRecover, framesInChState, activeSkillId, activeSkillHit, framesInvinsible, speed, battleState, characterState, joinIndex, hp, maxHp, colliderRadius, inAir, bulletTeamId, chCollisionTeamId) { - var activeSkillHit, activeSkillId, battleState, bulletTeamId, chCollisionTeamId, characterState, colliderRadius, dirX, dirY, framesInChState, framesInvinsible, framesToRecover, hp, id, inAir, joinIndex, maxHp, speed, velX, velY, virtualGridX, virtualGridY; - return js.MakeWrapper(new battle.PlayerDownsync.ptr(id, virtualGridX, virtualGridY, dirX, dirY, velX, velY, speed, battleState, joinIndex, colliderRadius, false, 0, 0, framesToRecover, framesInChState, hp, maxHp, characterState, inAir, false, activeSkillId, activeSkillHit, framesInvinsible, bulletTeamId, chCollisionTeamId)); + NewPlayerDownsyncJs = function(id, virtualGridX, virtualGridY, dirX, dirY, velX, velY, framesToRecover, framesInChState, activeSkillId, activeSkillHit, framesInvinsible, speed, battleState, characterState, joinIndex, hp, maxHp, colliderRadius, inAir, onWall, bulletTeamId, chCollisionTeamId) { + var activeSkillHit, activeSkillId, battleState, bulletTeamId, chCollisionTeamId, characterState, colliderRadius, dirX, dirY, framesInChState, framesInvinsible, framesToRecover, hp, id, inAir, joinIndex, maxHp, onWall, speed, velX, velY, virtualGridX, virtualGridY; + return js.MakeWrapper(new battle.PlayerDownsync.ptr(id, virtualGridX, virtualGridY, dirX, dirY, velX, velY, speed, battleState, joinIndex, colliderRadius, false, 0, 0, framesToRecover, framesInChState, hp, maxHp, characterState, inAir, onWall, activeSkillId, activeSkillHit, framesInvinsible, bulletTeamId, chCollisionTeamId)); }; $pkg.NewPlayerDownsyncJs = NewPlayerDownsyncJs; NewMeleeBulletJs = function(bulletLocalId, originatedRenderFrameId, offenderJoinIndex, startupFrames, cancellableStFrame, cancellableEdFrame, activeFrames, hitStunFrames, blockStunFrames, pushbackVelX, pushbackVelY, damage, selfLockVelX, selfLockVelY, hitboxOffsetX, hitboxOffsetY, hitboxSizeX, hitboxSizeY, blowUp, teamId) { diff --git a/frontend/assets/resources/animation/KnifeGirl/Dashing.anim b/frontend/assets/resources/animation/KnifeGirl/Dashing.anim new file mode 100644 index 0000000..e64355c --- /dev/null +++ b/frontend/assets/resources/animation/KnifeGirl/Dashing.anim @@ -0,0 +1,61 @@ +{ + "__type__": "cc.AnimationClip", + "_name": "Dashing", + "_objFlags": 0, + "_native": "", + "_duration": 0.35, + "sample": 60, + "speed": 1, + "wrapMode": 1, + "curveData": { + "comps": { + "cc.Sprite": { + "spriteFrame": [ + { + "frame": 0, + "value": { + "__uuid__": "cf396dac-50c9-4389-90c0-55f49fd3276d" + } + }, + { + "frame": 0.05, + "value": { + "__uuid__": "b9e4b5d5-c296-48c8-aa60-d22db0e5a632" + } + }, + { + "frame": 0.11666666666666667, + "value": { + "__uuid__": "e456c710-69f5-4dcc-9f5d-dd486a9198a1" + } + }, + { + "frame": 0.16666666666666666, + "value": { + "__uuid__": "ec6df76f-0004-4216-9b83-449487fe0cda" + } + }, + { + "frame": 0.23333333333333334, + "value": { + "__uuid__": "26032d0f-845c-4b96-89a6-d88113ed7827" + } + }, + { + "frame": 0.2833333333333333, + "value": { + "__uuid__": "e3e0169c-3c56-4206-a20e-35e4d0471873" + } + }, + { + "frame": 0.3333333333333333, + "value": { + "__uuid__": "80b98036-c5de-492b-b0e8-f1703f3a7d20" + } + } + ] + } + } + }, + "events": [] +} \ No newline at end of file diff --git a/frontend/assets/resources/animation/KnifeGirl/Dashing.anim.meta b/frontend/assets/resources/animation/KnifeGirl/Dashing.anim.meta new file mode 100644 index 0000000..fcc25e9 --- /dev/null +++ b/frontend/assets/resources/animation/KnifeGirl/Dashing.anim.meta @@ -0,0 +1,5 @@ +{ + "ver": "2.1.0", + "uuid": "38b2c892-347b-4009-93f8-65b2ab1614f0", + "subMetas": {} +} \ No newline at end of file diff --git a/frontend/assets/resources/animation/KnifeGirl/KnifeGirl.plist b/frontend/assets/resources/animation/KnifeGirl/KnifeGirl.plist index fbfe783..31849f7 100644 --- a/frontend/assets/resources/animation/KnifeGirl/KnifeGirl.plist +++ b/frontend/assets/resources/animation/KnifeGirl/KnifeGirl.plist @@ -15,9 +15,9 @@ spriteSourceSize {112,128} textureRect - {{824,544},{112,128}} + {{806,750},{112,128}} textureRotated - + Atk1_1.png @@ -30,9 +30,9 @@ spriteSourceSize {112,128} textureRect - {{0,1200},{112,128}} + {{0,1076},{112,128}} textureRotated - + Atk1_10.png @@ -60,7 +60,7 @@ spriteSourceSize {80,128} textureRect - {{940,0},{80,128}} + {{528,515},{80,128}} textureRotated @@ -75,7 +75,7 @@ spriteSourceSize {80,128} textureRect - {{940,128},{80,128}} + {{934,640},{80,128}} textureRotated @@ -90,9 +90,9 @@ spriteSourceSize {112,128} textureRect - {{0,964},{112,128}} + {{128,1076},{112,128}} textureRotated - + Atk1_4.png @@ -105,9 +105,9 @@ spriteSourceSize {112,128} textureRect - {{112,964},{112,128}} + {{678,862},{112,128}} textureRotated - + Atk1_5.png @@ -120,7 +120,7 @@ spriteSourceSize {96,128} textureRect - {{840,288},{96,128}} + {{512,643},{96,128}} textureRotated @@ -135,7 +135,7 @@ spriteSourceSize {96,128} textureRect - {{840,416},{96,128}} + {{512,771},{96,128}} textureRotated @@ -150,7 +150,7 @@ spriteSourceSize {80,128} textureRect - {{940,256},{80,128}} + {{934,768},{80,128}} textureRotated @@ -165,7 +165,7 @@ spriteSourceSize {80,128} textureRect - {{936,384},{80,128}} + {{934,896},{80,128}} textureRotated @@ -180,9 +180,9 @@ spriteSourceSize {80,128} textureRect - {{936,512},{80,128}} + {{806,958},{80,128}} textureRotated - + Atk2_0.png @@ -195,7 +195,7 @@ spriteSourceSize {80,128} textureRect - {{936,640},{80,128}} + {{934,1024},{80,128}} textureRotated @@ -210,7 +210,7 @@ spriteSourceSize {96,128} textureRect - {{582,531},{96,128}} + {{512,899},{96,128}} textureRotated @@ -225,7 +225,7 @@ spriteSourceSize {128,112} textureRect - {{326,871},{128,112}} + {{128,964},{128,112}} textureRotated @@ -240,7 +240,7 @@ spriteSourceSize {96,96} textureRect - {{696,1200},{96,96}} + {{912,1152},{96,96}} textureRotated @@ -255,7 +255,7 @@ spriteSourceSize {96,112} textureRect - {{416,983},{96,112}} + {{340,1197},{96,112}} textureRotated @@ -270,7 +270,7 @@ spriteSourceSize {96,112} textureRect - {{656,1092},{96,112}} + {{452,1196},{96,112}} textureRotated @@ -285,9 +285,9 @@ spriteSourceSize {96,112} textureRect - {{528,1113},{96,112}} + {{564,1155},{96,112}} textureRotated - + Atk2_5.png @@ -300,9 +300,9 @@ spriteSourceSize {96,112} textureRect - {{392,1207},{96,112}} + {{608,1043},{96,112}} textureRotated - + Atk2_6.png @@ -330,7 +330,7 @@ spriteSourceSize {128,112} textureRect - {{454,871},{128,112}} + {{678,750},{128,112}} textureRotated @@ -525,7 +525,7 @@ spriteSourceSize {96,128} textureRect - {{582,659},{96,128}} + {{512,1027},{96,128}} textureRotated @@ -540,7 +540,7 @@ spriteSourceSize {112,112} textureRect - {{240,1081},{112,112}} + {{448,1293},{112,112}} textureRotated @@ -555,7 +555,7 @@ spriteSourceSize {96,112} textureRect - {{504,1209},{96,112}} + {{660,1155},{96,112}} textureRotated @@ -570,7 +570,7 @@ spriteSourceSize {128,112} textureRect - {{678,980},{128,112}} + {{384,988},{128,112}} textureRotated @@ -634,6 +634,111 @@ textureRotated + Dashing_1.png + + aliases + + spriteOffset + {0,0} + spriteSize + {114,112} + spriteSourceSize + {114,112} + textureRect + {{0,1188},{114,112}} + textureRotated + + + Dashing_2.png + + aliases + + spriteOffset + {0,0} + spriteSize + {114,112} + spriteSourceSize + {114,112} + textureRect + {{114,1188},{114,112}} + textureRotated + + + Dashing_3.png + + aliases + + spriteOffset + {0,0} + spriteSize + {114,112} + spriteSourceSize + {114,112} + textureRect + {{0,1300},{114,112}} + textureRotated + + + Dashing_4.png + + aliases + + spriteOffset + {0,0} + spriteSize + {114,112} + spriteSourceSize + {114,112} + textureRect + {{112,1300},{114,112}} + textureRotated + + + Dashing_5.png + + aliases + + spriteOffset + {0,0} + spriteSize + {114,112} + spriteSourceSize + {114,112} + textureRect + {{0,1300},{114,112}} + textureRotated + + + Dashing_6.png + + aliases + + spriteOffset + {0,0} + spriteSize + {114,112} + spriteSourceSize + {114,112} + textureRect + {{224,1300},{114,112}} + textureRotated + + + Dashing_7.png + + aliases + + spriteOffset + {0,0} + spriteSize + {114,112} + spriteSourceSize + {114,112} + textureRect + {{336,1293},{114,112}} + textureRotated + + GetUp1_1.png aliases @@ -645,7 +750,7 @@ spriteSourceSize {128,118} textureRect - {{806,791},{128,118}} + {{384,634},{128,118}} textureRotated @@ -660,7 +765,7 @@ spriteSourceSize {128,118} textureRect - {{0,846},{128,118}} + {{384,752},{128,118}} textureRotated @@ -675,7 +780,7 @@ spriteSourceSize {128,118} textureRect - {{128,846},{128,118}} + {{256,753},{128,118}} textureRotated @@ -690,7 +795,7 @@ spriteSourceSize {128,118} textureRect - {{326,753},{128,118}} + {{128,846},{128,118}} textureRotated @@ -705,7 +810,7 @@ spriteSourceSize {128,118} textureRect - {{454,753},{128,118}} + {{0,958},{128,118}} textureRotated @@ -720,7 +825,7 @@ spriteSourceSize {128,118} textureRect - {{678,862},{128,118}} + {{384,870},{128,118}} textureRotated @@ -735,7 +840,7 @@ spriteSourceSize {128,118} textureRect - {{806,909},{128,118}} + {{256,871},{128,118}} textureRotated @@ -750,7 +855,7 @@ spriteSourceSize {70,128} textureRect - {{256,489},{70,128}} + {{940,0},{70,128}} textureRotated @@ -765,7 +870,7 @@ spriteSourceSize {70,128} textureRect - {{256,617},{70,128}} + {{940,128},{70,128}} textureRotated @@ -780,7 +885,7 @@ spriteSourceSize {70,128} textureRect - {{256,745},{70,128}} + {{940,256},{70,128}} textureRotated @@ -795,7 +900,7 @@ spriteSourceSize {70,128} textureRect - {{256,873},{70,128}} + {{937,384},{70,128}} textureRotated @@ -810,7 +915,7 @@ spriteSourceSize {70,128} textureRect - {{112,1200},{70,128}} + {{936,512},{70,128}} textureRotated @@ -825,7 +930,7 @@ spriteSourceSize {70,128} textureRect - {{182,1200},{70,128}} + {{608,531},{70,128}} textureRotated @@ -840,7 +945,7 @@ spriteSourceSize {70,128} textureRect - {{252,1200},{70,128}} + {{608,659},{70,128}} textureRotated @@ -855,7 +960,7 @@ spriteSourceSize {70,128} textureRect - {{252,1200},{70,128}} + {{608,659},{70,128}} textureRotated @@ -870,7 +975,7 @@ spriteSourceSize {70,128} textureRect - {{182,1200},{70,128}} + {{608,531},{70,128}} textureRotated @@ -885,7 +990,7 @@ spriteSourceSize {70,128} textureRect - {{112,1200},{70,128}} + {{936,512},{70,128}} textureRotated @@ -900,7 +1005,7 @@ spriteSourceSize {70,128} textureRect - {{256,873},{70,128}} + {{937,384},{70,128}} textureRotated @@ -915,7 +1020,7 @@ spriteSourceSize {70,128} textureRect - {{256,745},{70,128}} + {{940,256},{70,128}} textureRotated @@ -930,7 +1035,7 @@ spriteSourceSize {70,128} textureRect - {{256,617},{70,128}} + {{940,128},{70,128}} textureRotated @@ -945,7 +1050,7 @@ spriteSourceSize {70,128} textureRect - {{322,1200},{70,128}} + {{608,787},{70,128}} textureRotated @@ -960,9 +1065,9 @@ spriteSourceSize {70,128} textureRect - {{528,1043},{70,128}} + {{608,915},{70,128}} textureRotated - + InAirAtk1_0.png @@ -975,7 +1080,7 @@ spriteSourceSize {112,96} textureRect - {{128,1092},{112,96}} + {{228,1197},{112,96}} textureRotated @@ -1005,7 +1110,7 @@ spriteSourceSize {144,112} textureRect - {{680,512},{144,112}} + {{0,489},{144,112}} textureRotated @@ -1020,7 +1125,7 @@ spriteSourceSize {128,112} textureRect - {{806,1027},{128,112}} + {{256,989},{128,112}} textureRotated @@ -1035,7 +1140,7 @@ spriteSourceSize {96,96} textureRect - {{792,1139},{96,96}} + {{672,1363},{96,96}} textureRotated @@ -1050,7 +1155,7 @@ spriteSourceSize {80,96} textureRect - {{934,1104},{80,96}} + {{672,1267},{80,96}} textureRotated @@ -1065,7 +1170,7 @@ spriteSourceSize {112,112} textureRect - {{352,1081},{112,112}} + {{560,1292},{112,112}} textureRotated @@ -1080,7 +1185,7 @@ spriteSourceSize {128,96} textureRect - {{0,1092},{128,96}} + {{384,1100},{128,96}} textureRotated @@ -1095,9 +1200,9 @@ spriteSourceSize {80,112} textureRect - {{934,768},{80,112}} + {{800,1038},{80,112}} textureRotated - + InAirIdle1_1.png @@ -1110,9 +1215,9 @@ spriteSourceSize {80,112} textureRect - {{934,880},{80,112}} + {{800,1118},{80,112}} textureRotated - + InAirIdle1_2.png @@ -1125,9 +1230,9 @@ spriteSourceSize {64,128} textureRect - {{464,1079},{64,128}} + {{678,974},{64,128}} textureRotated - + InAirIdle1_3.png @@ -1140,9 +1245,9 @@ spriteSourceSize {80,112} textureRect - {{934,992},{80,112}} + {{756,1198},{80,112}} textureRotated - + InAirIdle1_4.png @@ -1155,7 +1260,7 @@ spriteSourceSize {80,96} textureRect - {{224,1001},{80,96}} + {{752,1278},{80,96}} textureRotated @@ -1170,9 +1275,9 @@ spriteSourceSize {80,96} textureRect - {{320,1001},{80,96}} + {{768,1358},{80,96}} textureRotated - + InAirIdle1_6.png @@ -1185,9 +1290,9 @@ spriteSourceSize {80,96} textureRect - {{792,1235},{80,96}} + {{868,1248},{80,96}} textureRotated - + InAirIdle1_7.png @@ -1200,7 +1305,7 @@ spriteSourceSize {96,112} textureRect - {{600,1209},{96,112}} + {{704,1038},{96,112}} textureRotated @@ -1215,9 +1320,9 @@ spriteSourceSize {96,128} textureRect - {{582,787},{96,128}} + {{256,1101},{96,128}} textureRotated - + InAirIdle1_9.png @@ -1230,9 +1335,9 @@ spriteSourceSize {96,128} textureRect - {{582,915},{96,128}} + {{806,862},{96,128}} textureRotated - + LayDown1_1.png @@ -1264,6 +1369,51 @@ textureRotated + OnWall1_1.png + + aliases + + spriteOffset + {0,0} + spriteSize + {112,97} + spriteSourceSize + {112,97} + textureRect + {{840,288},{112,97}} + textureRotated + + + OnWall1_2.png + + aliases + + spriteOffset + {0,0} + spriteSize + {112,97} + spriteSourceSize + {112,97} + textureRect + {{840,400},{112,97}} + textureRotated + + + OnWall1_3.png + + aliases + + spriteOffset + {0,0} + spriteSize + {112,97} + spriteSourceSize + {112,97} + textureRect + {{840,400},{112,97}} + textureRotated + + Walking_1.png aliases @@ -1275,7 +1425,7 @@ spriteSourceSize {119,128} textureRect - {{0,489},{119,128}} + {{144,489},{119,128}} textureRotated @@ -1290,7 +1440,7 @@ spriteSourceSize {119,128} textureRect - {{128,489},{119,128}} + {{0,601},{119,128}} textureRotated @@ -1305,7 +1455,7 @@ spriteSourceSize {119,128} textureRect - {{0,608},{119,128}} + {{680,512},{119,128}} textureRotated @@ -1320,7 +1470,7 @@ spriteSourceSize {119,128} textureRect - {{128,608},{119,128}} + {{808,512},{119,128}} textureRotated @@ -1335,7 +1485,7 @@ spriteSourceSize {119,128} textureRect - {{326,515},{119,128}} + {{272,515},{119,128}} textureRotated @@ -1350,7 +1500,7 @@ spriteSourceSize {119,128} textureRect - {{454,515},{119,128}} + {{128,608},{119,128}} textureRotated @@ -1365,7 +1515,7 @@ spriteSourceSize {119,128} textureRect - {{678,624},{119,128}} + {{0,720},{119,128}} textureRotated @@ -1380,7 +1530,7 @@ spriteSourceSize {119,128} textureRect - {{806,672},{119,128}} + {{400,515},{119,128}} textureRotated @@ -1395,7 +1545,7 @@ spriteSourceSize {119,128} textureRect - {{0,727},{119,128}} + {{678,631},{119,128}} textureRotated @@ -1410,7 +1560,7 @@ spriteSourceSize {119,128} textureRect - {{128,727},{119,128}} + {{806,631},{119,128}} textureRotated @@ -1425,7 +1575,7 @@ spriteSourceSize {119,128} textureRect - {{326,634},{119,128}} + {{256,634},{119,128}} textureRotated @@ -1440,7 +1590,7 @@ spriteSourceSize {119,128} textureRect - {{454,634},{119,128}} + {{128,727},{119,128}} textureRotated @@ -1455,7 +1605,7 @@ spriteSourceSize {119,128} textureRect - {{678,743},{119,128}} + {{0,839},{119,128}} textureRotated @@ -1471,9 +1621,9 @@ realTextureFileName KnifeGirl.png size - {1020,1331} + {1014,1459} smartupdate - $TexturePacker:SmartUpdate:9514b6b35473e14baf98f68515bcb817:1aae9dd4a8024ce783fdab093a39672a:1ae107e0c6667a1ecb5ed98687517e0e$ + $TexturePacker:SmartUpdate:4ca72309f7dc04bba6be361462471d91:9a48d10caa37a76ff8c43fb72bce6103:1ae107e0c6667a1ecb5ed98687517e0e$ textureFileName KnifeGirl.png diff --git a/frontend/assets/resources/animation/KnifeGirl/KnifeGirl.plist.meta b/frontend/assets/resources/animation/KnifeGirl/KnifeGirl.plist.meta index 199cf90..2041d2d 100644 --- a/frontend/assets/resources/animation/KnifeGirl/KnifeGirl.plist.meta +++ b/frontend/assets/resources/animation/KnifeGirl/KnifeGirl.plist.meta @@ -3,8 +3,8 @@ "uuid": "579bc0c1-f5e2-4a5d-889b-9d567e53b0e6", "rawTextureUuid": "385b0a2b-765c-43fc-9243-977baccfd37a", "size": { - "width": 1020, - "height": 1331 + "width": 1014, + "height": 1459 }, "type": "Texture Packer", "subMetas": { @@ -14,11 +14,11 @@ "rawTextureUuid": "385b0a2b-765c-43fc-9243-977baccfd37a", "trimType": "auto", "trimThreshold": 1, - "rotated": false, + "rotated": true, "offsetX": 0, "offsetY": 0, - "trimX": 824, - "trimY": 544, + "trimX": 806, + "trimY": 750, "width": 112, "height": 128, "rawWidth": 112, @@ -36,11 +36,11 @@ "rawTextureUuid": "385b0a2b-765c-43fc-9243-977baccfd37a", "trimType": "auto", "trimThreshold": 1, - "rotated": false, + "rotated": true, "offsetX": 0, "offsetY": 0, "trimX": 0, - "trimY": 1200, + "trimY": 1076, "width": 112, "height": 128, "rawWidth": 112, @@ -83,8 +83,8 @@ "rotated": false, "offsetX": 0, "offsetY": 0, - "trimX": 940, - "trimY": 0, + "trimX": 528, + "trimY": 515, "width": 80, "height": 128, "rawWidth": 80, @@ -105,8 +105,8 @@ "rotated": false, "offsetX": 0, "offsetY": 0, - "trimX": 940, - "trimY": 128, + "trimX": 934, + "trimY": 640, "width": 80, "height": 128, "rawWidth": 80, @@ -124,11 +124,11 @@ "rawTextureUuid": "385b0a2b-765c-43fc-9243-977baccfd37a", "trimType": "auto", "trimThreshold": 1, - "rotated": false, + "rotated": true, "offsetX": 0, "offsetY": 0, - "trimX": 0, - "trimY": 964, + "trimX": 128, + "trimY": 1076, "width": 112, "height": 128, "rawWidth": 112, @@ -146,11 +146,11 @@ "rawTextureUuid": "385b0a2b-765c-43fc-9243-977baccfd37a", "trimType": "auto", "trimThreshold": 1, - "rotated": false, + "rotated": true, "offsetX": 0, "offsetY": 0, - "trimX": 112, - "trimY": 964, + "trimX": 678, + "trimY": 862, "width": 112, "height": 128, "rawWidth": 112, @@ -171,8 +171,8 @@ "rotated": false, "offsetX": 0, "offsetY": 0, - "trimX": 840, - "trimY": 288, + "trimX": 512, + "trimY": 643, "width": 96, "height": 128, "rawWidth": 96, @@ -193,8 +193,8 @@ "rotated": false, "offsetX": 0, "offsetY": 0, - "trimX": 840, - "trimY": 416, + "trimX": 512, + "trimY": 771, "width": 96, "height": 128, "rawWidth": 96, @@ -215,8 +215,8 @@ "rotated": false, "offsetX": 0, "offsetY": 0, - "trimX": 940, - "trimY": 256, + "trimX": 934, + "trimY": 768, "width": 80, "height": 128, "rawWidth": 80, @@ -237,8 +237,8 @@ "rotated": false, "offsetX": 0, "offsetY": 0, - "trimX": 936, - "trimY": 384, + "trimX": 934, + "trimY": 896, "width": 80, "height": 128, "rawWidth": 80, @@ -256,11 +256,11 @@ "rawTextureUuid": "385b0a2b-765c-43fc-9243-977baccfd37a", "trimType": "auto", "trimThreshold": 1, - "rotated": false, + "rotated": true, "offsetX": 0, "offsetY": 0, - "trimX": 936, - "trimY": 512, + "trimX": 806, + "trimY": 958, "width": 80, "height": 128, "rawWidth": 80, @@ -281,8 +281,8 @@ "rotated": false, "offsetX": 0, "offsetY": 0, - "trimX": 936, - "trimY": 640, + "trimX": 934, + "trimY": 1024, "width": 80, "height": 128, "rawWidth": 80, @@ -303,8 +303,8 @@ "rotated": false, "offsetX": 0, "offsetY": 0, - "trimX": 582, - "trimY": 531, + "trimX": 512, + "trimY": 899, "width": 96, "height": 128, "rawWidth": 96, @@ -325,8 +325,8 @@ "rotated": false, "offsetX": 0, "offsetY": 0, - "trimX": 326, - "trimY": 871, + "trimX": 128, + "trimY": 964, "width": 128, "height": 112, "rawWidth": 128, @@ -347,8 +347,8 @@ "rotated": false, "offsetX": 0, "offsetY": 0, - "trimX": 696, - "trimY": 1200, + "trimX": 912, + "trimY": 1152, "width": 96, "height": 96, "rawWidth": 96, @@ -369,8 +369,8 @@ "rotated": true, "offsetX": 0, "offsetY": 0, - "trimX": 416, - "trimY": 983, + "trimX": 340, + "trimY": 1197, "width": 96, "height": 112, "rawWidth": 96, @@ -391,8 +391,8 @@ "rotated": true, "offsetX": 0, "offsetY": 0, - "trimX": 656, - "trimY": 1092, + "trimX": 452, + "trimY": 1196, "width": 96, "height": 112, "rawWidth": 96, @@ -410,11 +410,11 @@ "rawTextureUuid": "385b0a2b-765c-43fc-9243-977baccfd37a", "trimType": "auto", "trimThreshold": 1, - "rotated": true, + "rotated": false, "offsetX": 0, "offsetY": 0, - "trimX": 528, - "trimY": 1113, + "trimX": 564, + "trimY": 1155, "width": 96, "height": 112, "rawWidth": 96, @@ -432,11 +432,11 @@ "rawTextureUuid": "385b0a2b-765c-43fc-9243-977baccfd37a", "trimType": "auto", "trimThreshold": 1, - "rotated": true, + "rotated": false, "offsetX": 0, "offsetY": 0, - "trimX": 392, - "trimY": 1207, + "trimX": 608, + "trimY": 1043, "width": 96, "height": 112, "rawWidth": 96, @@ -479,8 +479,8 @@ "rotated": false, "offsetX": 0, "offsetY": 0, - "trimX": 454, - "trimY": 871, + "trimX": 678, + "trimY": 750, "width": 128, "height": 112, "rawWidth": 128, @@ -765,8 +765,8 @@ "rotated": false, "offsetX": 0, "offsetY": 0, - "trimX": 582, - "trimY": 659, + "trimX": 512, + "trimY": 1027, "width": 96, "height": 128, "rawWidth": 96, @@ -787,8 +787,8 @@ "rotated": false, "offsetX": 0, "offsetY": 0, - "trimX": 240, - "trimY": 1081, + "trimX": 448, + "trimY": 1293, "width": 112, "height": 112, "rawWidth": 112, @@ -809,8 +809,8 @@ "rotated": false, "offsetX": 0, "offsetY": 0, - "trimX": 504, - "trimY": 1209, + "trimX": 660, + "trimY": 1155, "width": 96, "height": 112, "rawWidth": 96, @@ -831,8 +831,8 @@ "rotated": false, "offsetX": 0, "offsetY": 0, - "trimX": 678, - "trimY": 980, + "trimX": 384, + "trimY": 988, "width": 128, "height": 112, "rawWidth": 128, @@ -932,6 +932,160 @@ "spriteType": "normal", "subMetas": {} }, + "Dashing_1.png": { + "ver": "1.0.4", + "uuid": "cf396dac-50c9-4389-90c0-55f49fd3276d", + "rawTextureUuid": "385b0a2b-765c-43fc-9243-977baccfd37a", + "trimType": "auto", + "trimThreshold": 1, + "rotated": false, + "offsetX": 0, + "offsetY": 0, + "trimX": 0, + "trimY": 1188, + "width": 114, + "height": 112, + "rawWidth": 114, + "rawHeight": 112, + "borderTop": 0, + "borderBottom": 0, + "borderLeft": 0, + "borderRight": 0, + "spriteType": "normal", + "subMetas": {} + }, + "Dashing_2.png": { + "ver": "1.0.4", + "uuid": "b9e4b5d5-c296-48c8-aa60-d22db0e5a632", + "rawTextureUuid": "385b0a2b-765c-43fc-9243-977baccfd37a", + "trimType": "auto", + "trimThreshold": 1, + "rotated": false, + "offsetX": 0, + "offsetY": 0, + "trimX": 114, + "trimY": 1188, + "width": 114, + "height": 112, + "rawWidth": 114, + "rawHeight": 112, + "borderTop": 0, + "borderBottom": 0, + "borderLeft": 0, + "borderRight": 0, + "spriteType": "normal", + "subMetas": {} + }, + "Dashing_3.png": { + "ver": "1.0.4", + "uuid": "e456c710-69f5-4dcc-9f5d-dd486a9198a1", + "rawTextureUuid": "385b0a2b-765c-43fc-9243-977baccfd37a", + "trimType": "auto", + "trimThreshold": 1, + "rotated": true, + "offsetX": 0, + "offsetY": 0, + "trimX": 0, + "trimY": 1300, + "width": 114, + "height": 112, + "rawWidth": 114, + "rawHeight": 112, + "borderTop": 0, + "borderBottom": 0, + "borderLeft": 0, + "borderRight": 0, + "spriteType": "normal", + "subMetas": {} + }, + "Dashing_4.png": { + "ver": "1.0.4", + "uuid": "ec6df76f-0004-4216-9b83-449487fe0cda", + "rawTextureUuid": "385b0a2b-765c-43fc-9243-977baccfd37a", + "trimType": "auto", + "trimThreshold": 1, + "rotated": true, + "offsetX": 0, + "offsetY": 0, + "trimX": 112, + "trimY": 1300, + "width": 114, + "height": 112, + "rawWidth": 114, + "rawHeight": 112, + "borderTop": 0, + "borderBottom": 0, + "borderLeft": 0, + "borderRight": 0, + "spriteType": "normal", + "subMetas": {} + }, + "Dashing_5.png": { + "ver": "1.0.4", + "uuid": "26032d0f-845c-4b96-89a6-d88113ed7827", + "rawTextureUuid": "385b0a2b-765c-43fc-9243-977baccfd37a", + "trimType": "auto", + "trimThreshold": 1, + "rotated": true, + "offsetX": 0, + "offsetY": 0, + "trimX": 0, + "trimY": 1300, + "width": 114, + "height": 112, + "rawWidth": 114, + "rawHeight": 112, + "borderTop": 0, + "borderBottom": 0, + "borderLeft": 0, + "borderRight": 0, + "spriteType": "normal", + "subMetas": {} + }, + "Dashing_6.png": { + "ver": "1.0.4", + "uuid": "e3e0169c-3c56-4206-a20e-35e4d0471873", + "rawTextureUuid": "385b0a2b-765c-43fc-9243-977baccfd37a", + "trimType": "auto", + "trimThreshold": 1, + "rotated": true, + "offsetX": 0, + "offsetY": 0, + "trimX": 224, + "trimY": 1300, + "width": 114, + "height": 112, + "rawWidth": 114, + "rawHeight": 112, + "borderTop": 0, + "borderBottom": 0, + "borderLeft": 0, + "borderRight": 0, + "spriteType": "normal", + "subMetas": {} + }, + "Dashing_7.png": { + "ver": "1.0.4", + "uuid": "80b98036-c5de-492b-b0e8-f1703f3a7d20", + "rawTextureUuid": "385b0a2b-765c-43fc-9243-977baccfd37a", + "trimType": "auto", + "trimThreshold": 1, + "rotated": true, + "offsetX": 0, + "offsetY": 0, + "trimX": 336, + "trimY": 1293, + "width": 114, + "height": 112, + "rawWidth": 114, + "rawHeight": 112, + "borderTop": 0, + "borderBottom": 0, + "borderLeft": 0, + "borderRight": 0, + "spriteType": "normal", + "subMetas": {} + }, "GetUp1_1.png": { "ver": "1.0.4", "uuid": "3f26b0a4-db13-4a14-b885-5a812073eccf", @@ -941,8 +1095,8 @@ "rotated": false, "offsetX": 0, "offsetY": 0, - "trimX": 806, - "trimY": 791, + "trimX": 384, + "trimY": 634, "width": 128, "height": 118, "rawWidth": 128, @@ -963,8 +1117,8 @@ "rotated": false, "offsetX": 0, "offsetY": 0, - "trimX": 0, - "trimY": 846, + "trimX": 384, + "trimY": 752, "width": 128, "height": 118, "rawWidth": 128, @@ -985,8 +1139,8 @@ "rotated": false, "offsetX": 0, "offsetY": 0, - "trimX": 128, - "trimY": 846, + "trimX": 256, + "trimY": 753, "width": 128, "height": 118, "rawWidth": 128, @@ -1007,8 +1161,8 @@ "rotated": false, "offsetX": 0, "offsetY": 0, - "trimX": 326, - "trimY": 753, + "trimX": 128, + "trimY": 846, "width": 128, "height": 118, "rawWidth": 128, @@ -1029,8 +1183,8 @@ "rotated": false, "offsetX": 0, "offsetY": 0, - "trimX": 454, - "trimY": 753, + "trimX": 0, + "trimY": 958, "width": 128, "height": 118, "rawWidth": 128, @@ -1051,8 +1205,8 @@ "rotated": false, "offsetX": 0, "offsetY": 0, - "trimX": 678, - "trimY": 862, + "trimX": 384, + "trimY": 870, "width": 128, "height": 118, "rawWidth": 128, @@ -1073,8 +1227,8 @@ "rotated": false, "offsetX": 0, "offsetY": 0, - "trimX": 806, - "trimY": 909, + "trimX": 256, + "trimY": 871, "width": 128, "height": 118, "rawWidth": 128, @@ -1095,8 +1249,8 @@ "rotated": false, "offsetX": 0, "offsetY": 0, - "trimX": 256, - "trimY": 489, + "trimX": 940, + "trimY": 0, "width": 70, "height": 128, "rawWidth": 70, @@ -1117,8 +1271,8 @@ "rotated": false, "offsetX": 0, "offsetY": 0, - "trimX": 256, - "trimY": 617, + "trimX": 940, + "trimY": 128, "width": 70, "height": 128, "rawWidth": 70, @@ -1139,8 +1293,8 @@ "rotated": false, "offsetX": 0, "offsetY": 0, - "trimX": 256, - "trimY": 745, + "trimX": 940, + "trimY": 256, "width": 70, "height": 128, "rawWidth": 70, @@ -1161,8 +1315,8 @@ "rotated": false, "offsetX": 0, "offsetY": 0, - "trimX": 256, - "trimY": 873, + "trimX": 937, + "trimY": 384, "width": 70, "height": 128, "rawWidth": 70, @@ -1183,8 +1337,8 @@ "rotated": false, "offsetX": 0, "offsetY": 0, - "trimX": 112, - "trimY": 1200, + "trimX": 936, + "trimY": 512, "width": 70, "height": 128, "rawWidth": 70, @@ -1205,8 +1359,8 @@ "rotated": false, "offsetX": 0, "offsetY": 0, - "trimX": 182, - "trimY": 1200, + "trimX": 608, + "trimY": 531, "width": 70, "height": 128, "rawWidth": 70, @@ -1227,8 +1381,8 @@ "rotated": false, "offsetX": 0, "offsetY": 0, - "trimX": 252, - "trimY": 1200, + "trimX": 608, + "trimY": 659, "width": 70, "height": 128, "rawWidth": 70, @@ -1249,8 +1403,8 @@ "rotated": false, "offsetX": 0, "offsetY": 0, - "trimX": 252, - "trimY": 1200, + "trimX": 608, + "trimY": 659, "width": 70, "height": 128, "rawWidth": 70, @@ -1271,8 +1425,8 @@ "rotated": false, "offsetX": 0, "offsetY": 0, - "trimX": 182, - "trimY": 1200, + "trimX": 608, + "trimY": 531, "width": 70, "height": 128, "rawWidth": 70, @@ -1293,8 +1447,8 @@ "rotated": false, "offsetX": 0, "offsetY": 0, - "trimX": 112, - "trimY": 1200, + "trimX": 936, + "trimY": 512, "width": 70, "height": 128, "rawWidth": 70, @@ -1315,8 +1469,8 @@ "rotated": false, "offsetX": 0, "offsetY": 0, - "trimX": 256, - "trimY": 873, + "trimX": 937, + "trimY": 384, "width": 70, "height": 128, "rawWidth": 70, @@ -1337,8 +1491,8 @@ "rotated": false, "offsetX": 0, "offsetY": 0, - "trimX": 256, - "trimY": 745, + "trimX": 940, + "trimY": 256, "width": 70, "height": 128, "rawWidth": 70, @@ -1359,8 +1513,8 @@ "rotated": false, "offsetX": 0, "offsetY": 0, - "trimX": 256, - "trimY": 617, + "trimX": 940, + "trimY": 128, "width": 70, "height": 128, "rawWidth": 70, @@ -1381,8 +1535,8 @@ "rotated": false, "offsetX": 0, "offsetY": 0, - "trimX": 322, - "trimY": 1200, + "trimX": 608, + "trimY": 787, "width": 70, "height": 128, "rawWidth": 70, @@ -1400,11 +1554,11 @@ "rawTextureUuid": "385b0a2b-765c-43fc-9243-977baccfd37a", "trimType": "auto", "trimThreshold": 1, - "rotated": true, + "rotated": false, "offsetX": 0, "offsetY": 0, - "trimX": 528, - "trimY": 1043, + "trimX": 608, + "trimY": 915, "width": 70, "height": 128, "rawWidth": 70, @@ -1425,8 +1579,8 @@ "rotated": false, "offsetX": 0, "offsetY": 0, - "trimX": 128, - "trimY": 1092, + "trimX": 228, + "trimY": 1197, "width": 112, "height": 96, "rawWidth": 112, @@ -1469,8 +1623,8 @@ "rotated": false, "offsetX": 0, "offsetY": 0, - "trimX": 680, - "trimY": 512, + "trimX": 0, + "trimY": 489, "width": 144, "height": 112, "rawWidth": 144, @@ -1491,8 +1645,8 @@ "rotated": false, "offsetX": 0, "offsetY": 0, - "trimX": 806, - "trimY": 1027, + "trimX": 256, + "trimY": 989, "width": 128, "height": 112, "rawWidth": 128, @@ -1513,8 +1667,8 @@ "rotated": false, "offsetX": 0, "offsetY": 0, - "trimX": 792, - "trimY": 1139, + "trimX": 672, + "trimY": 1363, "width": 96, "height": 96, "rawWidth": 96, @@ -1535,8 +1689,8 @@ "rotated": false, "offsetX": 0, "offsetY": 0, - "trimX": 934, - "trimY": 1104, + "trimX": 672, + "trimY": 1267, "width": 80, "height": 96, "rawWidth": 80, @@ -1557,8 +1711,8 @@ "rotated": false, "offsetX": 0, "offsetY": 0, - "trimX": 352, - "trimY": 1081, + "trimX": 560, + "trimY": 1292, "width": 112, "height": 112, "rawWidth": 112, @@ -1579,8 +1733,8 @@ "rotated": false, "offsetX": 0, "offsetY": 0, - "trimX": 0, - "trimY": 1092, + "trimX": 384, + "trimY": 1100, "width": 128, "height": 96, "rawWidth": 128, @@ -1598,11 +1752,11 @@ "rawTextureUuid": "385b0a2b-765c-43fc-9243-977baccfd37a", "trimType": "auto", "trimThreshold": 1, - "rotated": false, + "rotated": true, "offsetX": 0, "offsetY": 0, - "trimX": 934, - "trimY": 768, + "trimX": 800, + "trimY": 1038, "width": 80, "height": 112, "rawWidth": 80, @@ -1620,11 +1774,11 @@ "rawTextureUuid": "385b0a2b-765c-43fc-9243-977baccfd37a", "trimType": "auto", "trimThreshold": 1, - "rotated": false, + "rotated": true, "offsetX": 0, "offsetY": 0, - "trimX": 934, - "trimY": 880, + "trimX": 800, + "trimY": 1118, "width": 80, "height": 112, "rawWidth": 80, @@ -1642,11 +1796,11 @@ "rawTextureUuid": "385b0a2b-765c-43fc-9243-977baccfd37a", "trimType": "auto", "trimThreshold": 1, - "rotated": false, + "rotated": true, "offsetX": 0, "offsetY": 0, - "trimX": 464, - "trimY": 1079, + "trimX": 678, + "trimY": 974, "width": 64, "height": 128, "rawWidth": 64, @@ -1664,11 +1818,11 @@ "rawTextureUuid": "385b0a2b-765c-43fc-9243-977baccfd37a", "trimType": "auto", "trimThreshold": 1, - "rotated": false, + "rotated": true, "offsetX": 0, "offsetY": 0, - "trimX": 934, - "trimY": 992, + "trimX": 756, + "trimY": 1198, "width": 80, "height": 112, "rawWidth": 80, @@ -1689,8 +1843,8 @@ "rotated": true, "offsetX": 0, "offsetY": 0, - "trimX": 224, - "trimY": 1001, + "trimX": 752, + "trimY": 1278, "width": 80, "height": 96, "rawWidth": 80, @@ -1708,11 +1862,11 @@ "rawTextureUuid": "385b0a2b-765c-43fc-9243-977baccfd37a", "trimType": "auto", "trimThreshold": 1, - "rotated": true, + "rotated": false, "offsetX": 0, "offsetY": 0, - "trimX": 320, - "trimY": 1001, + "trimX": 768, + "trimY": 1358, "width": 80, "height": 96, "rawWidth": 80, @@ -1730,11 +1884,11 @@ "rawTextureUuid": "385b0a2b-765c-43fc-9243-977baccfd37a", "trimType": "auto", "trimThreshold": 1, - "rotated": false, + "rotated": true, "offsetX": 0, "offsetY": 0, - "trimX": 792, - "trimY": 1235, + "trimX": 868, + "trimY": 1248, "width": 80, "height": 96, "rawWidth": 80, @@ -1755,8 +1909,8 @@ "rotated": false, "offsetX": 0, "offsetY": 0, - "trimX": 600, - "trimY": 1209, + "trimX": 704, + "trimY": 1038, "width": 96, "height": 112, "rawWidth": 96, @@ -1774,11 +1928,11 @@ "rawTextureUuid": "385b0a2b-765c-43fc-9243-977baccfd37a", "trimType": "auto", "trimThreshold": 1, - "rotated": false, + "rotated": true, "offsetX": 0, "offsetY": 0, - "trimX": 582, - "trimY": 787, + "trimX": 256, + "trimY": 1101, "width": 96, "height": 128, "rawWidth": 96, @@ -1796,11 +1950,11 @@ "rawTextureUuid": "385b0a2b-765c-43fc-9243-977baccfd37a", "trimType": "auto", "trimThreshold": 1, - "rotated": false, + "rotated": true, "offsetX": 0, "offsetY": 0, - "trimX": 582, - "trimY": 915, + "trimX": 806, + "trimY": 862, "width": 96, "height": 128, "rawWidth": 96, @@ -1856,6 +2010,72 @@ "spriteType": "normal", "subMetas": {} }, + "OnWall1_1.png": { + "ver": "1.0.4", + "uuid": "c18886db-8116-4602-84f2-51652a90269a", + "rawTextureUuid": "385b0a2b-765c-43fc-9243-977baccfd37a", + "trimType": "auto", + "trimThreshold": 1, + "rotated": true, + "offsetX": 0, + "offsetY": 0, + "trimX": 840, + "trimY": 288, + "width": 112, + "height": 97, + "rawWidth": 112, + "rawHeight": 97, + "borderTop": 0, + "borderBottom": 0, + "borderLeft": 0, + "borderRight": 0, + "spriteType": "normal", + "subMetas": {} + }, + "OnWall1_2.png": { + "ver": "1.0.4", + "uuid": "0d81cbf0-dff8-4672-99b3-2ec8055c6931", + "rawTextureUuid": "385b0a2b-765c-43fc-9243-977baccfd37a", + "trimType": "auto", + "trimThreshold": 1, + "rotated": true, + "offsetX": 0, + "offsetY": 0, + "trimX": 840, + "trimY": 400, + "width": 112, + "height": 97, + "rawWidth": 112, + "rawHeight": 97, + "borderTop": 0, + "borderBottom": 0, + "borderLeft": 0, + "borderRight": 0, + "spriteType": "normal", + "subMetas": {} + }, + "OnWall1_3.png": { + "ver": "1.0.4", + "uuid": "a183e740-3c2d-4890-8430-39a00f55f446", + "rawTextureUuid": "385b0a2b-765c-43fc-9243-977baccfd37a", + "trimType": "auto", + "trimThreshold": 1, + "rotated": true, + "offsetX": 0, + "offsetY": 0, + "trimX": 840, + "trimY": 400, + "width": 112, + "height": 97, + "rawWidth": 112, + "rawHeight": 97, + "borderTop": 0, + "borderBottom": 0, + "borderLeft": 0, + "borderRight": 0, + "spriteType": "normal", + "subMetas": {} + }, "Walking_1.png": { "ver": "1.0.4", "uuid": "9435195e-4560-495e-b1ae-083c0c87e8a0", @@ -1865,7 +2085,7 @@ "rotated": true, "offsetX": 0, "offsetY": 0, - "trimX": 0, + "trimX": 144, "trimY": 489, "width": 119, "height": 128, @@ -1887,8 +2107,8 @@ "rotated": true, "offsetX": 0, "offsetY": 0, - "trimX": 128, - "trimY": 489, + "trimX": 0, + "trimY": 601, "width": 119, "height": 128, "rawWidth": 119, @@ -1909,8 +2129,8 @@ "rotated": true, "offsetX": 0, "offsetY": 0, - "trimX": 0, - "trimY": 608, + "trimX": 680, + "trimY": 512, "width": 119, "height": 128, "rawWidth": 119, @@ -1931,8 +2151,8 @@ "rotated": true, "offsetX": 0, "offsetY": 0, - "trimX": 128, - "trimY": 608, + "trimX": 808, + "trimY": 512, "width": 119, "height": 128, "rawWidth": 119, @@ -1953,7 +2173,7 @@ "rotated": true, "offsetX": 0, "offsetY": 0, - "trimX": 326, + "trimX": 272, "trimY": 515, "width": 119, "height": 128, @@ -1975,8 +2195,8 @@ "rotated": true, "offsetX": 0, "offsetY": 0, - "trimX": 454, - "trimY": 515, + "trimX": 128, + "trimY": 608, "width": 119, "height": 128, "rawWidth": 119, @@ -1997,8 +2217,8 @@ "rotated": true, "offsetX": 0, "offsetY": 0, - "trimX": 678, - "trimY": 624, + "trimX": 0, + "trimY": 720, "width": 119, "height": 128, "rawWidth": 119, @@ -2019,8 +2239,8 @@ "rotated": true, "offsetX": 0, "offsetY": 0, - "trimX": 806, - "trimY": 672, + "trimX": 400, + "trimY": 515, "width": 119, "height": 128, "rawWidth": 119, @@ -2041,8 +2261,8 @@ "rotated": true, "offsetX": 0, "offsetY": 0, - "trimX": 0, - "trimY": 727, + "trimX": 678, + "trimY": 631, "width": 119, "height": 128, "rawWidth": 119, @@ -2063,8 +2283,8 @@ "rotated": true, "offsetX": 0, "offsetY": 0, - "trimX": 128, - "trimY": 727, + "trimX": 806, + "trimY": 631, "width": 119, "height": 128, "rawWidth": 119, @@ -2085,7 +2305,7 @@ "rotated": true, "offsetX": 0, "offsetY": 0, - "trimX": 326, + "trimX": 256, "trimY": 634, "width": 119, "height": 128, @@ -2107,8 +2327,8 @@ "rotated": true, "offsetX": 0, "offsetY": 0, - "trimX": 454, - "trimY": 634, + "trimX": 128, + "trimY": 727, "width": 119, "height": 128, "rawWidth": 119, @@ -2129,8 +2349,8 @@ "rotated": true, "offsetX": 0, "offsetY": 0, - "trimX": 678, - "trimY": 743, + "trimX": 0, + "trimY": 839, "width": 119, "height": 128, "rawWidth": 119, diff --git a/frontend/assets/resources/animation/KnifeGirl/KnifeGirl.png b/frontend/assets/resources/animation/KnifeGirl/KnifeGirl.png index d4ab89cc631903d374aa93fe0cbbc3bc7801082b..e6ef436ecda03c3ec89cc55250eb7f5a15422ee2 100644 GIT binary patch literal 117073 zcmb@uXEbqFw=lkIQfB1X!dvMN~xv!Zy*EKWOoVoA!Yfh||rV1%B12GN`4yo#UMI9U*JTwjt ze*F`?2a9s}$MA;-zm~e5lDebELsA$=?#Yvvhw(ah9r5HiV-$9X*tODRu+@Yumr3LWHB07k`IVBOdC( zC@>M7_zt}2hf036gKytK7#>n8wU~(}=rp#(`hV4x7r+}Es~6hS`g5zlnUj6;bpB@@ zX`0izz&^AmJ%aetsbkD2JzZKiSHbjjpVvR1PmuTOmBhGj+0qd{s{47sn9Pg)&>H(8jqQ0Zq}-osXq@~qY;DM&eWLn`!XjD z8#9h7@;c}=7&^gOz&uyn6C1SFk^{DZsxhSLJ#?he2);-bht>^mhUy~T_F;_vO~hB-xG&x*0hBF&6G;@?vU%dtPM z;5yJ8e@^FKwy4!|k^i%5+Be>E7r`QQEyzN6@mmdT)IE|A}OM08fdTSU9 z#`$3@1y8IStmQ7a!?EHb6Sc&aUZEO)f;!Hqj&58)P>0b?0jgV03|!@Ypl-NW6+I_ zNB)+A8|IA5KpYzqOi?Z|17SS9))>CazVMG9qK-#_e>#*l+0LNCcaN(-j9*N*G7h!w zdFSd4$~-mQ)Ec2b;2mx7dlkJe;S5?*@sJ(3cL!pqw+H;iQ|}K<#E^qhb`=f{V%E@G zlK+iuBeyo1d+3#$$Rrr88fJox?W83A{}))I-VdhF{bVrAu0A$ht#BG#o>J-B;&?J zQoEMr>V6!2XzH=L{^3iEj*q`LRpb0S9nzZN&`BzslOX%M0?DbYye#IJ2| zi#B?k9e7o8UQ@ zCyOK3etXeTZ+e+{0zf%e^-++_&A&-nyvR?F>ak#A-ydbeR*e5GxN*41Ah{LG4$ya#8m2$Ne8(1CK!(cxgOAunRf1$yZsKGo` z@5)b&`5YwECJ=e1M~UW?FsL0B%1dPlv>^jF7Fm$#*30}ITMbE21q{9YWa0o6=itN+#k+{?bOkaw9_yy zRH5S$r-*_G+BX&u2cF6JeL={q5|O>=uey)pc*Vdu#e#YhI`=hKk>gp)uFTJdxr)%2 z?B8#Hw5FDq)4U6sRKK-!Qvg`Gt@}h)&Ar|QTf<`sFENe_ad8M~LH?z%2!J&UIra&Y z@i`H=I7;jVA#p{&5fech5G zAN3WCk8q9H<($+fYMZ$Ob(mUm ziJR8UMGEQGomqHJa7F?)Os|dn>n~UHRQMdt@CmfoTu$uCy%LkI)JpdpQwP zs@aJcRFm63D%S5Hq;2ymkFHxB$d#g78+(-}=Cg+`pNEpTECQJSbbWTH6=wXnE7ZRo z(&fFYE%LN1%ioRXFrx=Buv(*@%-CP>vj_6;!f};ubgNnk`Rd>@FeY%73T+jKI*RWc zag-t}$IMZp3p{@rHS%h0TjuX*`|$D0?w%{+*|OpfhqR<-(5{vo45$ps$vpk)STa(x^Mr@@^C(y9Y2U`T>ELV^Zwc3(|xP!!fuuw8>KSx7ceV(R;T`+Lal zb1;8!kPAPLCJ8bUi&uNpmeeit8U4I==UMJM?c&RLe008L=}H2)Ew2oWZ!4y&t$R$J z(?TBD<;A){0bY7(Ai;WOy8k?c(k0ZoZqSfL0{M$Lj}zp$M)Wv$ka7w4`q#8>;m4z7 z&?GEVXhOw_NO6#BpJ^{FqLT}$O=cxPhkIxk2f2QeKJ$g-g&Xy6dee)XkD;7J z$PSbjP6x-k-=BB8X#c@!*@O5NILb??fA=3LUG_=v7~ns0{!H*WxM2Rv_e5SFj;BlP zJhK|0-or94E2+13VB zrABQIiesF#-g{{crTZMfWT|sVHTUeeXhR2WSD=B3p>y!$k#)&#-C;4EnD%<{1yFW5 z)WRpz99=@7^B%B5%(Z{z@Mh{Y;pATI8K)Io>Mm+-A4B$d>ox%^TJ#DP?$X+24~kZO zOI#)mJz*D(^s15S0Scj`Y(_Wv@Qd53x%V5-)k;oPsv{Xj5SdE*Cy9Q`r%jtdE^CuW z{}_Z8&+M+kuH*2gy8WvS=5j+B>bJG~k*;}XEpsRTeXDI&?=-iO4cW!w9}!`f;=sy~ zHFsx0nl;~nTf``@YFpFCVR?PCv zV;wR3Uefdz?&ZqmCrs36)*bt(xSbEI6@dq5+@DU>a}lhW9g>vSiZmf%0Qw~mW)8Si z@4)`_aiIOrS}1}9!?`M*!({;sa4P^9R<^NlX!Uh9BkCd=f{0U%ZrC}(pl+F;Swo{= z)O%P&t$C-Y?B06m#h-us>XiM5_9?#ZYFoCg=!x=`r1F%W9*T~~m*kpTb0hf8!%pL~ z>(^RwC#0X=S-s{`oE5a@Yni=z?ZTJNxB$X|uPx%!Be-$>K;E)^FUSZ2ENcZ7|H!j8 zC9?C^l=tN?HJrD1l$B-Av|~SXg?Nr9yUKf+rWEa@E%?OVzzbGY_F2la^+wzkrwt{t z3x2k0uvuSEwb(PQifpAc4|a>hFC5iu3y#5X6`;R7Q}BF(>S-~vQU)+W!-}^mM>E&I z&m$m0%*p0^?gOB8-Q4=N7eN8LMMj$Z%g-wgYyk=^EVH!ejWW>$hh?wKyGogM_I*iI zNiqXFi^Z-8ipnWeVYq(Ggw zk~cK}4E6Afi+6U4L1b#r%~$tL>-zgMP6(ce7IkJ{_Ub%%m^*%d7yEd1nI#9M?#>8{ z8J>xHgAnWL4F??PYkDlCA5fHEdwGjHb6vPipH54Gk;2lnU1}xpw=q5r%zFC0<@{T& z91FWu$a{%%g?*39?~O|$6RJOC`>%A|t8|Z?b{)Nw|9*Y+20!QAj{A`O`7oUM>`%F{ z# zPd|m52z~!qP#lME|It$F?0td^bL&bR zOW{LsHNu#JqCH@dojc(U_~7@5MZM&Y1_dL{h{DSk&f>i*&NdA>6Y6u>*m!A-n)^Z#zIED-`>6Pa67^SfHHrx{}f8+?l`6k_S8uU1+;2n=`W_! zHCqIKm1FSF14Q|n@#W8+huFM6$c-y~t7unRg!k3OSis;^{dl$;_Z|_bJ2s`-6I_C$ zHM|l}HhUNY2)8PK6vl2kHXK&_`bv3R+;rv(3!!e#M4#YOFdc>yA4z%NgVhhrcCT=q zD9EMEjl2#$t6e{$X|j1OvDa3-VZ=v%1_~6oaIWrJ^EG|c&m?#qn;cs=a4M^Egji+ZCQF4v;WML;a_ z(7tqOEBKvsg_XG_v_IndGg6pBM@sK;t6l$&KN>lMDNmcSw8KXOn$42Ka<+NW&W){D zav_xUN2FdgRNYNAGo ziPL~uL?ePRF8$o};*$`YXHPIeu!nd#Qiow$OJv|ZnRp?qe~{b~T;ueL{eUP?UG}Io ze1-3n0?buxkA(%hl}^}acqWOcAVJ4d?$!cwUl{^DGzsM4ztXeRt-nW0Gz$3lFbjw& z69b&mfOXi0otU%_uWC9A&fyb6PdA-!ADa^qt0V{ zlwdDh^j=17E#?bgEZS~Y1S8JivCTCCv=JPQ7Z}LB7Cn7YqJH}VENx|>vu!fAGQh9g znMU=*WN!Osq7HVmw`098#^y^&d|}DA^{LpP`jZ~14~z3=BN#j2vVSbZixM519D7X^ z_`UzOv$mOME<=J2Nf@dYt`P)zvpgSPV71P?`Xy|#W#^?J$l&>P%q?EDU(*;?uh@ti zQ~PVhc=%g-L5X?X+c#Gr*t-B;ppzd+B_t9+giU5ncp)Jue533W=(#VqRM0(ASr}wr za)k>*Sn!~36+7W?auj&z!Kbp+QGnv60D*<)l?SGCteF4evnerK#NgJSfrN5Vfuq%x z^MOBYCs@ea*v57VR#}no0HGy?!8o3$=b0iGyO*>syXI2B%DQGlo1=2JHty3Yw%Nc` zij1B7l*rCczFIR;XRqR}RniW`I8hq;(_kJ^#wP)SKY;<--P?EnojO73;?8t9sPqgpNV}bt^ z;G@>$z7+^wO0bP*zR{9LQtqeY{wmh3k^{jh)XEq!YVuz(pmO!!|#VTi1gGy#K_V%t)|8b-)~0oQ77qwiVkZ`tWD7 z3{>^EWjb)6b4kNC;N0C!&aNLl(Jy$al42x2iqg2Uju!W{%Vc(~gDfHV^sB#D`4Y4CZ3fW2R1dk)xICacU8#q~m|< zc0PP5h=9y0Cj3TG2{1=V0_bnPod;EM9q@b<5H+#Q-!A=&tp9`1a`L0WAZ--AY^r?Q zro2D9**D$^ovp=`WYm_<1>zy;`DKlK13mLilK@A~o^Pvb)6R(w{_R&5%uQnjTE+qv z=Z%hqx#;NnAyNb8-Z#PF*8wF>Wer)M53ASBJ$5Fz_8k$<5=2zeKIn{g_etrT+U{_^ z)%V`c+Y?5+IQ5g;XJ*eHJOQpOucXf5uhZFPAIZ_J|M9qL2@9RqUwg&XpMnp1O-?aJ90Gc+7PjtM+`?OjoHW{;JUe5R_tgeB6}PfTUddmDd&O7%T=yr@xXtMrC8F65OYcz8q*7YtiB z=BbR)Av=$|F87K}*);Rjv5XC=Xp$rS@X+e)+16sfj|Fd#2goX$t~(@(V&9(ghykng zbZ8Y98)*w?u~AOm%}uku|1?%ri;;BdO9{Pw4OMd3`^4LpD^g_0Rq-UGE8E4fWcz|~ z9JJmgskd}MH){R|RssqXeeof9R$<$u-PjLIht;n*qXe&-4s?dlqHi7sN<27o(`xzx zuA9IK+kd->tSOu0b0z*WmmG1HqPfO(Xc2N>AlCU28w+mpw>%Kb+bi8!+NS)lGA=$n zwfNd>Fht&IdooKhb8KhDjR;GRu9xMB+jH;iQzykyFEHOJy#IDx67$9-YQ=8GF>a?5 zQzGWqz2iXK*+@0M)1ZG^AJODii}Cxt;zkc{!18SjW%U4wM!$mx>Asz$w%w{vD*&%* z>IB2Es?+t*IwSAm;0)4uJd5lnh?ChPTbV&y&8sXqp<=rt0mqg_g+3ET z@{4{5m@!iWtXA;TnP3z8vm!La?5QtG2rQha#a{^M)-jilg@ zzkV5t#TGU-Uc}QL(D!fXgU%?i+Xe_h;215stEH+l_;&`_i}XTrC|J8vIL+6hZLoTH zA>$}J10#E~eaY4jz#cYX3cHC!kf#wZW=euWZw>2P1)_7MWL&3(LJIF#x<$%wf?T<7 z`x}AZn`(EIa-M?T>t<{#pRA9ExbUgT^uVByWBA{Y{oae3;W0Eh#==K)a-1DSw*FKk z6ff*%pUgR1ktMJ4A6Igutv@H(YZLc!}4@adMbz7GC2~0NvHDJ8JB-#4jPkAG;aI*uS%;%ye0p-VIbn^b1 zQ)I8-c33X45&E2P``#pXvVuo3}j%^zSSKVLtu` zzjn{q@wu9Mg5i&vTn51LV2vZphP2j?FXi{R*n=pI(v-=z=z|L@I0gRt-Y(gs&0c*!PdH>D9R(Y+Yz{*d^g7xEr>KLglp;L;cWt5o^L-h z&7XtHUTXmr(!ITkEGv+S><`^}T6FtvZK>5NQXNhNUR_NculK#aC&kE~hNi^d`ude# zNjocQOL`s68+75L=TjX}(U3DLiy1$Qx*^2DHb^k^mgOimYfgLxi^|=v7nE%|nmxK& zI{3el2^KZ?TwHk%FBZ(t#ovNhRi6Dz5&ABGeMv3T8T+8k+g!BmuzZ1-5QAS>qr7myHKx zpk-DYKKzdm5SawtC3>|cR>2Fa=PO!Y+>4+Qr?J~v2FQcVs%q=|Rcq*oLLc*ax$d)j zz(9yGv-}4bJTr0wj-gjNem@La(y~c({mRx(3MffLh!?< zg+;l!xNCQ`nFf1rwkB@*92}n++`^)SDeCIg-{0m#-%F!OZJ@D%CxlP8F#1+N|H0)T zn(|G4ZU#JS zf@L8`A*}{$hEsPnmMq!f1g(P%GULN?d((byl}#^^vgfmALy)(J_el+0PRwOqz)%4u zEUI&c_NPn9UE%$K{CP#~Jzog~gs=(WC*82|u6~D-jp~XZP6KM+U)={11?9W7J@n2K z^u$k2^o%i7pJiR-;=EVV>R;n3+P1xWSW&hO~jer(MrFy&`p1AuR&S zUPlWSTHcR>b4Vb5Fil&Z2Vd~AV);2;Os!#_g2(9{-+n1;Q$fpM^mD(U!a_^4)yVNi zABUb*p+ki}CVShpN#d6gD>UzK`Bu{KD_D@^WwfmK{~seSf~e5D}y{=qF06lAj4x4FquRMSm$HbD8T>ce_o! zIjHr+P-d?rLREHLA-N&UQdcGjwoTV*c|a!mq&cPURE=DYDX@>|TCj3W@OL*kI7IN% zdZ6C+eUu|qs*836xPO@d5!M8VeqEN%trPs!ZN0j2>HZ+9`{j6{y8g8f-~5=n#z(h| zx2Yh_#y{rj5?na2W}yI#S2UO%+0Q9iU$J2NzOr>WKhWkPs$|MUbrgt}mca{U227vO zgA)<${xqS=9yP=*R}?SpfydEqUqYnhh_|*k>~_dFaLS}TWD#HycqxsO)fhet_gljV z03?Kl9Q*9Ri&*P&U~t0*jv&C4cB}g-K<1Z8!8Quf%zIc($GHdhwv`LXIAH#@*6@*< zhZNJ{-VdmY&iBsy=k4)X<2Fwlp4jfOA+=9*F~3(Ls{8+X(q%I0)+jBp1bLN9jy|R( z?VyD*YyMI|em`jYL8bP+Y#3#Ke-ydYjx8Svm};iT{&+mT{>ZT%YYqAZo0QSlSSvNJ zPbnB|Q|<$H1w|vE&>wa7`t!HvlP#50Z}F9mq5y8!oV3Eq3@qx9eBJQXd~+ve!4S=< zPv0vl^|t9KsR9#n8&2q&cRQsx=3EQhe2vnDD>syC|!al?6 zZ1X*%HNMx4-_OOTCDzFZR)bk!KQP;#`&e#~#nl&3HO{dX?4MCdw7`<(RQlts-A@h6 zyN(4TX64Z_ohRI(|6LyI{GcL@Rw~tJrvIo^wY($D644?iLEAnez zdn|LyV2Si}k^2um7ONjh^wyzgYWy90oPd`TX-gDDb zsv&;xVJnfF)>2GhXB}KjAy5%{RO^^>mTpNfWFuwUv9zgOD9h@}a<7RX3oYaV^{)6c zwgLS|D8RpgD1tiZj=1%zg@Y4ngHDT_GE}oG?m6-rhJ8-f3~u^DB94S1{Ty5hB5Tt>LUuvTXkjj*ijsdyr)y`U@Jjv z7m=6*EaNv^Jk>pf1aFlCS#^S#i?SOhJ^7VgTIs)NMH1g+V4H}FCgp)$j)6x6pe2%X4|f!MTFyDf4X z)F;X2Me!mErv$T~by|BC{P7-z)DosQX!!6UFO-Hzy8~vO*D$Xvk&I(%?ze!8XJ(h{ zlL~vjL#o1Nj0;JhoaWx3Y3sxjAYOL4M!>+=!Wildd&?SE75D>1FfZu=eY=rIg}#2a zNG58;kdJW~x3P(jr|zik{bu59_X+{VbNz#WeN;@X67_^51Id_!%XWrFG3&Xpt&0PN z4!Cp$xi88~o#}e}og)`7I^!pqHNZE1DK3zZ^UQGn>AAoIYkcoQFB2qA(ILKf2-t;J0r4cvsDRI zUfIvENZlDw#KiJe-#HYDRjz{`yg`P2_ISyQnXRmo)mYM{FHi<#h>ms6OHzV)OXT+p z+dd(4;^a?l(nx-^4z6%ajb8d2I%;~KDf|O-SsguKoU#S{YE;`bJwVAb(H!Fu$sQ`S zz2rqic1vtH`*s*YSNJ=Dj`T(w%?0-sq@#{id0&i^&zZQcBW))IY+A8e<34AyC{Hj#G5H1(^MBBYRK=|f=VyWE9QXC6)O=4pi zpg>^tl*?6@JJJdg;7n%=ZnG~#OGS0Jq;`^{yEZ*OveBd8)eTTE8cH@))C@9vc@62k zd5IAG-lfpr3Bvz_cEA67he)mk8E}?oVSWQGK58$l{+JMSr=$H1Ou1W9$yN$u04_|j z1)Q^@-OE2e5kVGasQkr#FM+V5W!6IZNd#0q#e0~yo<+)PE%)if--#{lFvd4j{+WPO zQsp7&a`pfI<3y^7)jYqZ`2P8Hjc|CjeKv=ct(pfulw3Qg+i|Tx`1$I|*ssl)Uoyux zhl!9N$V9E;s?N_hM{KCNr+TihU$_RdDMeB)*ZTI^3>Efpx+^Vmv-Ka+m`sJnUOFsV z94P15kWqGlJxf^ZmqjG9DP^8W`~xBiQ=S6$M(|8Bn!^aWvdl8HM19e=^& zT~57Hn<5jab5U^8V&i!y^{T3vqn8`rvoaO|hzqT+EiH-!J{Ls%SXq7o&Ql!W_UoV! znZoyD+*h^x83`x56WdmO=k1W1qTH>xhkE}mgxR1IXW;MdSdWF%=u`>SL8+MiBLP1S zD_C8~_SQ>OIXr4 z7x~s%&H{FNTJEhM3eV8%^Z#eQ08T8kui*nNh} zfY=EF<9>d~^y#1lvwrm(X;AI(NJp}j z-tRuJn)U-6;M3w%Xcao!1ii0{`tMIx3KJ+!x%a7(R*ztBTyst9CH>W1;BHp7n$bd! z>ka}Aw%h{L0}fNBwsfFdSQ(E!@;#*yvcAsl_iN#t+fSvLA7e#UUP481|5Inm#Pjbt z(QP+1J~^)wr0k=&cKv;$K-|4Iztf4gB&VBN=}Y6sXshIY@;0Hl)h<9M(+XV2# z%kO?1#N&Oj?#AAYnxIM7{wU?j&*}?c>C*k94MqY{FeQLiGOof(v29ZAyd;N(g@D<5s@VF7tYn_w=7_j??TFnelAIvv|W=So#5V8mm+byiX~}KFH&reT;b8MnI0AL}1y! zjjx3!Bu>b}%{jkJm(kCi4p+~1R0_TYMU%ag3}jl20`eM57!O#a3zpj>ua^|l6qIj22`w8IrtJo!^quVk7#JZ zF0_YLwsJ*3Ey<96kHrdxU`(?$7mDjn-sa8DX!~yR|Fz*UinqpnAj9g?7Qk5Flz}B)X9YMkG;I3Ip5jAn$@?s9R(FO%oGt9FU2K-227BL zlTAz+8Qe%+`bB;{4HpHvfSomAN$D{h(=yFboTHb=x^c|DrpWPEpEke_ zV3Bi!>6@ttW@tZ-cY?rHw^ZNwFJD~ZL!mSQ*Jq#B_q+yH6pWnyTDFNToW}+}RbW`T zW%AZ=DNOeOw6fEhi2JqtWN-hYu;{}y5dJBG4id3W!|z;318<36^JD6Y7Rcl=$V`P5 zAH-#Le%8au^s--jvOUG6HYZjmIK8?tsSLrVY0TpoTp0DUkhv-|eWq}avaRfYUpt*=!TPywt9EVCmDrx9x!dS9QpuRCrE^ z%dVM8%defPc86iFXFyGKjFgST)I{BmC0uHs3N8AK)Yslt4Q}}rRCQjY9Xv4znxcUUle2s zx_dI;)=!?P((MB{+mICm zunYwG{^8tZ6Zp3NcDL6P({az50XzTHR`>G!M^zf1u)P#5XJfSG zZRkWym(LlY1uv%3*v2=>vZh>>+<=l31sawLjO<(?!fJLljkhGl>2FRuuyxBw2A90F zoXw>-4l6%``C7cV^mIA7WJ@|YM?x9u%tjKh-g1Ncs5(t5kGWtk|MpO|s0@bG|{y*b|wPf$S zY(GFw8KbODOBIn58dgH&+q0Pk{5orAH}ujmwWTtGQLB=LYs0%JN3!-<>_ukz z;DGj8{GUfZ1)9e!g2*|9yU8!8FG`$71ktkhkLlb(Zt2fAwI5BMY{VrD1{5_LefHVhoPld=DG(%Be%KDk;c>ie96_W62d z-)(6{$Gl2j=OS+1&fZCE;DC9h04x_v&$x=zChwPZHziBTXC`9|mKWW7wF)sAtf>`$ z|CzqHvERjm5s-GozjA;6NGIf%+Wh>ue#G_Vt9P}lU5(W%*J{!K3DpF+zy2g`1e6Oz zZN-A0r6?nPdd%fKo79(J4-48NLLqQKMe9honDdGDjCqKCM_*Bfulas3YGz~#fTtjnvorQD3; zOWnq9jRrb{s|b-pkSIpRCpuiO%B6F);ZS>JP1RCCmz9Za{)0amf#W|wS`5-u=i&W? z-M^F>BuZ3{M*k(w1i$MRyel@5rrMcMBr*)O++}IM!#v$fQ1=R zchO3+(JGY$$$pwxzoO==Qjnmyn?d^=s9#O#FgJ+~HJ_ix+}srj2|f*a9N&|h4r&#c z{AAx_&SjB;T+Vt^*Bq{h^a_un$IRJ;Bvfv`B(T%Mcwa85?Vs_z-j<7bpeAj?L_a`k z&iWr>iJmL0@+>St)Aa-k(!WfNtC=KK7X`P^$^(hxzVR!eNnUo zHi!C?H_ib)`fL!^B1jGXx9)f!zVdfRi^{ELc8IkU03w+W|xpet5n9E8_ zamPeWt>7ldc4sNpHxW_}hq%&CWdu-Rd)9=fY*R1*tC}4I8AchB)G?WC3uP^Z>E1V< z)sr{B9*C0kRG9`7sMJ6{*t&LwHDG`myX?r){_)yD683Sa?;H}=zMUpg~&W!2YpI>R9p ztW%{ggpx&ivT6jXJgZ;Bs3iP9P2b2sVmtXs!1bS1I)&6NU6;suL)NClX)az1t`?fB z7sS`dMgZxGclgvo;vvIu?svw4-GRq^B*mskqUVz0^H}aMSaE7irga@gzSH81@IglF z@gC`YxUO49`!MUE_>p$V?Fk!OzuJCg;~8#+a=Bpn&ZtFVC+w7I5%rJ;2viCJxwKh%VZrdLWuAkh63?VX}vFt2-I9^}&zIU3)m{#|V*Wgmu zK!mhj$)m@z;IXVlRlD|r{&I+#a@h63>$*8xn;L|6vmB(p#brw6c#9o;bB-q{`c^U+ zrrGd7)h*lZkcN(h2^kTO-!7=H&hNEg>Q2{tgs?-~Q^}818*% zjauyI`uEB$xSrLW1iQT*aOKSd|M7qT$nr#YY?4+W4K<`g@Bu;X0bajXeq;L|bXx7d z2`NNa&+5ugfUCrIv@c?6wnuG04Uy(+d%G?o2w#DJ&b!6mU87#qJL_I*&GfksQgCUt zJo>zVZ27uZa#`VeETKn{Q`DT`IE|$$R^~O&;u5 z3iJ!OoE-Oaa&tm5(qb61#Lw3Rb61$UWgAT+pbV2b(er04H<~QZ7vacv&zh=W5e}tQ(Wi=~a_^M};2cM5npjT~Q{nZ1##xPb)KHg5Sfh zZC06lWELJVjdk@gH|~5@Fq|!=h@JzNE}G|HmM*4NZ|y8}WDjpmwL-N58rw0o zbFF~g{@t6rw>boR6aEVO_R9$&f`P4E*G8a6c2z%vA#-QQ61uKawg{4WF4w&r!rLIU zxqnZp0T1b;@zPu%pb_pbtm*;@ceREwcg*649{&?Ai2s|@fB|4Phy4XZ0iW<;xPAq_xm7E@sWY_8MO1!e% z9;M53g<5mw5x6Ef>g(@emW7jn5`i+ra?=|k&C;LnM$VlP7bko6TPUGo=bg@b^$F~r zSICicIS5@%T+lT?X=>iB=HrM2dnMgq2_HTdBkxrb@pNyVZQh*s2A{m0krVNU9U*e` zJ%yiZ&SM|J&0r@>vi{fC$qJD5ZNIJ)kmSi5b{^0BgRtmtqMd?LjtNu0<#oRh3?j{# zIx%>;VCG2wsOsznMFe)-^ffXh{5GG=obQU+;6BiR?M2-(yU#OpVsUFo^n0uqy6fKS zA+~)+R=YY1bh(q?4=LSbabluGXA(4BzR15j1V&)`X~3Z+rTM7a&hSDg;wBPt zj|4mIJqg|nx4-?b^`7Hm@HvN!?}uk-54fCsQu`4g*=uvydaO)f6Pn<2h<|iEa^L7&J!!T1*=GjBB3WhKkG@3(=fBeX zpD-QrBV{59uB|HWsG+h6WvhMfo@yRsIMi9ej{T%G+9q5XEU8P$86Zrot_Mz`B>iERH(#oBOedWHc zLdnnE|EHhPxjs0T#;0M!^~1j<%lV3ZU4?W1A7c-I-1F2yb4(4uI`vnuuUdXx<#PYO zV^7mKXx^sr$8;TqRVPf5^Gk7mdB@Yb>RMv|KfCmzuqW(o#QvxjeBLr{WQl#SM2L53j6u)=<<*#AyLy?KPByM{O%FHgL8f1nr#9r-;- z?_0g=SaTWACZne29o<>;hgo+YnR1NZevH^x?ti*uxPZFBCSP-Z&2@=-Zy@kp^9%5A zap^|vdzZUL1GrtW*Lp@aj(mR-_xZmj+21_ID(-(H>hVPmMV~$WO;c!fg|LknL_zOD z1pm>tztfn`dHTQkCIEeah6mF}+}xhn&vJhtDiW>_v;TzH>kaH5g8f+0|Cxf1)6KvX zjJ=Fw`av*GmHXHPK5&=*IrpsP$8$T5Bj9eL)UPCe zc+zm_0rg9gi6>?lY>C)M;w^k3?z;;&*mdCc0RQNa%8#$c$QSA}F3rh6SAKt#mJbbc zZ%re^Kj4Xb7FQtRzWVe(K4{kSR6}owc1p%jp)YEa5qSfWw?TW{xSG_3A+!$n=7fCr zyZ3P<_w7%=IE?h!9LPXvr0ys!pA;y=eR|Er{mi~6>^Y!7z_Z;^Vg5+kTSHR~jlmPA z5&1r-sM3{%JrZv{{##4u=7Pk1N6}?Rs}H~B{y^}5hkZywH=YuAn7D7|+~YisO#H;X zpRh+q!=tMCpAvmfk_?%ZmidQ%k`^5c#SN%jh|KK@47$@;+a^^p(j{hn4{4BkX zYMXX}4sKk^v2VHvWj~%XL|qT@B*YuQllmvv)BA4QHeOpD#?UX`r~_ad|7j-@gVf(n zl{u38A8SNx+DkTF#6CXhgT+GP-gsDudM*Ysg1s6?l=#(|{~`A2fqE4Cfkl0kSej&3 z{B;rFgGOb~SRYlAc-O}b_J)TplP@Py|1e#PiSgIpP=Me+i+nv{{|@&DSuE|(v5%NL zHtY%ecv24Tp*h+2lS!W&_YM@?i4T>jA0fGXp0vQawy_t737Kr9+T)qk+)E{dLa>jp zgE2n7YVf3o^z4G9a8lbv>^ZjIULJ)IpMF?fnZ)~h;{HJHzxU~Nud#QW5>K@<_!(6= zw40t!{(Rr}Nz9YynUw(YoO&kSE@VCwM-h`)KbCigZ=4cheH zqx&H$(o_O!(3?-#k6kxX)Hx8 zLV#{h?Dey|(+lfl)+OrWnPgo)3MN!NM$F@*-!O(Rij6Q&T^jKQ0>DqGxh6giwEj%gcQUr@*;g?E$qq77khrO@$O?%%o<)!IvvnuDSjjXnk{ zToHTNQP=}Kmt17-@kFwMPySMdoS`S|S=7^?V6p$zAhWvCqG#nT9m}XVVP*#E)A(ai z*qeCVfGp?uvLp9~eL9bnnGMCH8vyDfEbfg(pCo2QVbRkKuzvzydIxo#VqvcXmf}DJ zzuW6+!R*PXTz8weH^@EE^Td}=h#M21akT3}4~nr z;3%F~n6M}8DYWRa#>_sQxE@%639gua7r^c(I*dCk#Hx}4@1ZrKN@=@_vJ7`J-Jolf1VsE749#TXC7-v z!%p~##V7ipc?d;mNZs%EH!{o4#GX1iax9598MjIPGNp^l%Vt59us7`ktDfG( z{tfQoVC)6_NWQ}#f)*?>e;bL57jW;5*@605Bfa?L`yiHjRz>5<1XAC7^xdJ?1l{{_ z57ELCb)Hl!yc|#k@Q^&HT37r2E9}u=CWXpNOS5q#@2yll6ytxS7aLOFwW!&XaYxw0 z<5ASzo~A+%QPLy%LsX^=VXxoDzPl9r)Ce50kD4`MkNfHq_OA1LV6UZ-9%0Y*_NdO! zl5gla_H-c_!rrs2CyyT0 zxXL-9lzSa8Q}S>cpAoQUu$MR=(OPngKY%RsmCO-W#12=_7C)EiQc7%J%{Km ziF$J8xy{*^@+ce!cyWY>HmUC_mX{ryM*Kpz=c0D9HQ48j?Z1+ZpA{N=Dfaz@J%(nS z=_qJ3<&^3Yc*1_QbjPRG3oGmuYy73?_#$m64I(9#yLSs61pAlARp~S_V%~S=8}5IC zz3p1pN9rAy-XcY)bRqV8>(Gmky`<=Q$$miTZu}Sjr{kPxaFinyvUg6GB<_JjM++@w!k(E|48!Hvlhd9k!Sfmq zA|7LMg*ozs|6a>iu(|YCCfQH=YDEd)LK{s#tSanU^qEEMhXD@m0p?Q#6fJzp&+*@A ztc*UeTc5e35HvMAYxjun!uN3)YU`Vl5V#8v{~*`{CB>SY&E+qni9GrIbJj#0g=$f< z>YPhnfVgL1X8VZOJ12_s)FgVmxuN=%JN1|;rdiY=_83|AY?ubF91h>M+Z61-5cm28 z_pdt)|EQfFX6SV2CkLDXG=z-(!5s`aM^B>o<~uw{Q;^vZCh2F4&!4dKtF_4(dMNbx(8_2_r#`YtMUwsm5g=rY7T zrH8q-O_#CfTh&j>?%DpmsmqICkA{7Zhfb-K3`ObXJ*oQAgy+=+z3;UA7u;)UF29Za zPcr{BdrRZjjncp}_HM9nLgUg&)qh_w;By7)zu0i9FOyHhi+;oWltPS+Mtb1aOlx7& zFEo3}MN+vTpyK$1$ti_Kx-py%{>-DtEsDAxBOzv3VGl)M56ica9+{-ON9^6?)IJ$} z(v%YQz|>Q%Xyo2E+3n2EX!;L5`pRB#uf7%cN^gOm8>ejjKb`s!_K=2ChA>!Xz*)xr z_{OFF4M9IY%J@i0k)rsfqQ^*&rRzp~>OWQPb3l+D1|=w_TrF#jmC4|byF)5+K zJxt|-_?aXi;YkfJR<4LMu?II9n{jWCE_6}W`=KN3b;kbU=otHHS6ffQKED+2F5{k5 zCFI@{dk6`)C+vH*R2H4AzDMXED2LEr{VDc*wq9_rx9;g5U=NHvKF-w8jIgIIls4*D zdKva|m+IM*97ltW!SFNcmnp;{g%?v=5$Cp>qm*ak}NM#~#*4aszvR4fi0KSa}k=PKMbKn!j@nUN{tE; z{1wz+W8bKk;L|jjtqxv4!yZ^<;#uzrds8a*4L$I-UFuLwJqqZk!G@nvuW|-4V?T4o zr+R;OBx(_rkg(?fK1S}*BS=#zFk_S4yZFW8FLlm6NjpCN!4gfghY`7t=g`Hq@Il8CNfJ;OejSupFwJrnj1$`?&3r-FUh*oFMph&^_p$JFs5^kv4PkqFDkeqh9oG~us6wo1 zj>kFnGhv_V#vWWe08-+PKA#Y+`$)aDDXCC#zjddM?gLFa{!)r!u%=T^D#Vlip(XqM z8t@|k&aLeXIq_=BDl*2QD3WyTGj}_3sRf2+M|6Z}$2H*?wpU+$tcbnEaA~wi&4T(j zuy1nEZcYBg{an*mW^k_SKH;8qd=f|`<>%O!DDE*{(X!p-=29c6jL80nntsx~#cm{D zzCtfJA}=Y#7^u-Y)1HNWelt-hq?ic*9(t$)b%Mvv|LFv?Zvqny_(L2h?ALkAxX-rZ zoI=Rhi+AFx0tdj>xGV88*YWuwTjR0{Iu$^jK|Lp3qmPCf{!m-O@O=&eBIu*diB)d0 z*L3lBf_?kdVO*N@bL{1k2Dt)97SGY37(c;YbbL+ifgkguo|3b{z&1Llf#%@+2PQxB{GGfRFtZ?EH+96lHf84>&U^9AFU znek37ndd^tmtuIu{R(^Lp06F?v`|HEgz^uCXzA{n*G|4rZ>y_6-H^G@oV(SyjN;6?fH^;&cmUa zAxHfL)_K0br#x0P`Jc;K`ia(4A^g0C0Y z4+(oyBK8b?dxZa6f_Re#BtKt;?-$r-KfrUsBu+<`snR(^8~Y`}IeB_5SsBj^qqt{h zK1{n`q~)K^J!0QIM_xD^HDjN808e+YQU{Mgg=EF0LJYRv!jCPXx2bPZ)>tY4Sz>Rd zHq?rm5n)z=8z`DZhwcsVLHy93OGTfsFT}V%j`tb%FgJW=D9l3lIaHrIA-tM*D(xb; zG=np=AFN26@wgr>QQvKB%K?ddnCbY72=M9R-m0kjx{aOY$UR$~)P7AyqEUw%8A)|i zO+ga&5-+1BFKD;@rp4D=&`;pQT;@;M3-@d|l2>nZ{iJ8U!@VRL(*s4?MeI-MgqMr^ zqk+$)FV5VvR6_J&o{pQLe~AkF_Q>dZjLVO3?8Ju$waDGNu?hPQ%=7_PHF)P^Z_s3G zzr%i@;N2{HN{QJ8$8Zm+mx@STO3^`wi94sYAIvTMbPIUk&J^O2QBn&s&IX2YpV{v^ zelYe~kA;%3Pa^*O@4Ouvz=WM7>_O*leqRYl7Wq&4Maw*c{g-*X?%_+~UTV3tWWHXB zePg!=F$?zC+c}H-x!tAY$o9w75{ZtV4vvN~C^p(nfjDw1dgp$}vL; zK4A}Pq85&<5&eU7{T#8&4*nrN%b#kcf5<%L9hlR0>*hO+=x^+stb5JE9?RRjF{V)N7ZX)%ZUvFg@XQ^y z6ZUF`z4nt6pQ*Q`>i1lfd5n#(=lRm~3qLvE#HANpBR#f2G$G5>yKmh1^sE}6`qaO| zzH0fux-YKDJXjn2YD3&}O)0+dRc2-}*h|vNihKL=Fz;dBYr#Hu@$(sba;72nIJ+&) zY(7Nd!@Rtg_QBjc$ew({UTQy6*{o+L{`W!qMzCjLFW9d>O4ai3jQmTd9v9_cZ|f7XiOC{16lMzlzXO|VB>$6;lamJlPg zb-=hjCJ?)CJ|H`QMA$d4u&?V!XSgkwdEy=fdznpCz~$(h zPWiw>Jt_NBL*;{}n`*_~yPmnv0X+P+8ncI_GZx+6KrIyC_y+RTX1}V~@56lQn@s*P zPf_uqP;tLHtzw0~Vny%rRFXqoQe?OSC}E%IpOe2o_0+9l5m`-rT(c)19~f|rfRe^T zG$_KojlFLc*!v3ZFPXo^Ml<#%VPB-Uf9Bp`UxaH<#K4Cwhe}KTp zvE*SjCr(7NTzvdJ8T-tA{BM|1^u{+>j-B++Vf(uNOXlT-%S-36!TOrpPYr#Nu%C9}Ifdvz>u9=LJQpU= z1Pec5PYL)qj1Re&2JdfR@78q~_$8~b|1;u#X4>I#x{0EPFgkTa*?Vr?spbu(k0Z4eGH|WLTA9RP6sO_MEhHRJWR4_Z`ja zp!EI|gr`Q`sRw!z_M98&p1tIxBORwDi9yc}JK>(&-wF0SbQ^FHc+F_6T) zrEEbfFDl(LJXA5z=rayEzR~Ro`x7j%N2Q@+|A)Ar%Pclj`x{`Njc~O}Vch}yX2E?b z_llmwD5Z_B-x5es82@_%!@CxjJx8n=*#G-+%oP=h@Da`gGl_ z^SZ9&o@RaF5ND@uaO*>p^Jw=sdSr?KgKxgcS3g|KPZ7(6zFFl1OJkU^W}a7U&geB`{Q2^iFuj%o1w?@dcc}M#$I{* zMQMUg%{Vtz{|dpMTNJ74LGitRBkc8oo`@`C%^TR;qq*lCyyfTTNf_8YuZhfC8<`&T z_t-!Eel_g>CiR$@5)k{nx>cOC?c+A_*I!zin=zsG2l_r2KYOSS6Rx?`#y4+pf5FEm4=iUB=)q#gd`)pY^_f|e z+!&REzb5Uev4hh`*vp4rSNrtO+k{>kN-svkm4`)4a&*YMrn1z(E` z|4!n5?+D%+db1u4_mz2n`lqMiw*2vR!_0q+J!}N_lgVGT{J&}6>*i+Se%E{*PWbb4 z{hlje-nl8R5ch<=?48R7Wt>*?wUWQS7G(U;NAun4`hVoTnoh<|_PnRCr!f@s&N=Tw zFWg^Y+UG$SY8ud}zqaPKu%BfnRuKL&_BRptuq*WtR>;3yo^nNx5^AuK%Y)vL_04k9 z(EK4n?h#%|_){y#!1ay9{ho>gxQxC3cq$;avA#gZpSRTh9kr?Uup0P(4SP8>aHr7y zerkipmRZ4j|ARrGnj~*H(=_fn?8@%yxxIXK{|EMePTGS^yTrzHzj$_VOotMlU%GlB z9j*30ZJPh%)!rX_-TbvwP0dm3)HCxJju9gNpy!4omKN|w=*RK#sMue=)V<$94&1@c zW$dME_aFo1sR6|=j0C-FtDmpf$M4dOC5$Pq>+X|*IcGyi_)7s?kV*DhH@~PtS~aXW zl6^!!1jpU+D|c1L|Fwnt7yYAOzHzdiPUGg*UN8Ncr`ab}X6F%-PRw*8?GUG?YhE5AQ_ zjd#CtN!R^@IwR~R?9VM)$41#=?N?Oyh5iHZ)$Jeto%-q&C+uO?T&9@xQ2+oS07*na zRKKn}TYMbIevZjd;Zs;9M&4h?|Er6e#zM0L_O(aN-Wv2J)GxWW*4RF{9$S~u2qIRp zT27Tx)va<@?02a+&8_Au_g_KJk4U19=GgfHKf9H3!({%AxWgfW&Vz?s2ET2YdsT(~ zZL!}a;EwGpSXR`k_1DzLCuFT~&tpZf1^A%K!CuOj1$z@WXsJyp{tXHIw(VLJ9*KpRn)j%5!vltKZp`Y1Vj)!AzUtbc zzSg?x`c{LMYR72bM`2F`x(O{EZDtp#@7<-`qrL`;CV|I)c^h{{g9q1tuIp6SwecTQ zxv#6PFBNFQ9*1=yT|IfpBJAYQ2NeZ>*FkXo<4S`W+pTc(g}6`O_rcP*QM0YOsJ5-O zP<7o;=RRG5MxHQsVgk9wL+{9=uNAq+uK>nbSdvukd_bkf){yOeu{x43Bz;Io_DC5?sa{~%DUyo8< z_oM#2bE~P75o!1uymQ7V>iMlzqzW$t2k0sTa9taJ`%+E6L7gOOA`XKM$o*g+kJX>T zJ=R`^b=`@2l|xl$%6mpW{>viv${W)1wK5j>(vYjnqnE#HFYOydGeVuiUE#o^xS`?k zSaTouUJp`T_rhLgX$Wp-srh6&M`Emrmc5BTcRg{BdwGo6=K#@WzSviW;dzBx2nOon zPZ0ZYDee1uj_SIXiZ7uwgAD*r6r%X8$u1`D9ZGxGkB^7Z@Q6R48x6TfoB7(%n2-BY zUK?e!_g<^GxiPNUpXi`!_;uY5dkRiR6V{)cTg10aO7+=c9Nu&Ag8ISAzaSA zwI=SX$9M;(7k~l6K3+}SWVy!e{;b5jbHxpM)De43jP;jdkFjyqpC{}ccCxsXd#ntk zs6GD60xBkCiRjc^z4lf3gG;4$40r7?PWdRH3Hxg|g7Z7ku#e(2x3Am*W5*;6Mrm!RuVXi)0 z%RM5Gwmk(IxH>0yM^4zMi{S4Z{VqNh9L5yd4lObJm)Z@WGfXR`@7*|0wAO1k;U;0P z)zr{RA@-O|bZNV~xPg%z_&}*d+&O7l(kkfBbx}hl$aTp5pK3Rd4uFxDe%FtIZv3l9 zqBt_`L1#fK*rQjEg)CfJeLs$zpGOY8iF*_79o*6#4Sl?p4sg>F3~v z)#hyHL^me{yUjU?rIoV)*d7 zXjC~P-0K3k$3R}g{(J2A?H9(qy3_{&Deb`yuY6tVDDoNmIrkI%$GotlVcCP)!Sy|g zdYW$x5qt0Acf$FnCS#9-P~)v2YJrSEChm>t+BVHXK2v^v@*MDGk&aJIBI6l89ee9t z8#-ef$j6tve>fhQ5wE04o?YxM2UJOD9~1VImTxBT&$sirh6%tvdAj;%@b^a_cpB*Q zVMO!~&~8+UrRt2G$3lPjk=XAMV0rj|H&S z>~7n4O0A;=)M!Ph=kAYe)Hwdgr0WCUsjH{lo(29#*wbJN=h>l$eyR&jtijL{wb7&p zlQUo0-#}WvdA7fQ(@h%-WxVJ)^&gw|J-H*2 z_$r`$IA!T+>0E0#o5&W0eWRz$!Hm5(UJ5l%5crfQ68YBFssT-VLun*b6hbnd6Ur&C z9L{P^1VG>Z9BGdS_7_U=7m6b@OUMJIW@7Jl3g8+4bL30%=wbR{%8i4^!@>2~18|?Z zhPe0MnqltDFJ#TJ*J6}-!v;28Q&zw~!Y)DEjH$*v5`{WG>l!Jj6x=eNd{%EFtW&cm zysP-6X_DJ-lzglk*e)Cxkz5k>5ALSsBlV<+J_0^Kphfmou_@&)jqKlHYN^6x2>KK?A`b0mo!D%eB)vlLS&a2}%5O zU#R00t7EyR?=TFYL%+|3*5;Z)qTd@*(`j4_Qa?iKV4|TZa(#w9$ppI9$Z-)*Z~?tR zq=8Ms9);)3mtPq8QZ z_N5MCSYj`gnW&o}`7$%-HzHq#0Jhk`K}tSQhVuc8O1?H;DRwuR>)X2Ii|Dxy)aAtwN*Y(KNI(@sG(BluN9j=dbtRBEY*i#=kGhinc zj8^OjSq7iEr&ssjeroCp=vkX&u`w_3)Iay=k!vU@fYh5M$`N(FmOqQku+AtUF;g=3 zdBdcbBx%Pzcwp9pm4=?Z>!{yczr&sy9c!s5 zA?ynf_gNeEW-{)FpfEICq@+2IXscuYPLU3-&rUenuCcQYB$8K0Q;imj5)8 z!q3G0^K1Orqvzu1kAIIFt#37!QUtyl4Yt@g?LexR*h>qVBX4PszD-i9@Z(47^&!+7 zlh7CJ)OFN9ga32vsksGDbRr!evDd1I5Z+v&8_19=)~WYAh=v6I>XQ1gaUbn=KN!p@ z={CN#iRWHX5F1Vz(6QMj^zoP}XO>$@Yjqs9j=!v~i zSMyaj!JjL3FLnI(3+y3vs-+49P|m5V=b6p1H-%%rIe*Hp#eF_kKTv5qW4rahBI+;h zqmGN>h-Q}_A5?y&V>SvU8@&?)kz^igU)HL^m>9;H3^!`K1)g+lEO zRWt>1DC7J)$CWr|QLnb47xD>vY2?*mr5fS<9{Gx?$3#T_K7p}UT~`21lcn$t1Xw1Fs{2=OaYp`#X&~%{Q8eVsK^U|ei_)bN_DzxX zI4@6}%<|j+*=&{tVNBmA>NL5ljhVZS6Fe{e=J^ay(w2BQk=X_0BC zMmx=2mK0I!&OO$GbGan2g3m)k4|FcAvqZBmStsn{@#8Ug!A%Kn2V&niDm&&0sk`{s z*N!t_pCQh=?L&~E4KnWbK=8Mq*BjXch<$tySR#bnhqfKRpKm7Q8=OcU%pgT#mfA2y z?7b;X+$ZeK<=uTh0-p<sDkGb35CooWdXV>90Zac8B zxA94$2SarwRB&!!-zcTE*3E4e>?MnqUsYtiCMEBYb7hWqTg+X_nR^-$B)=!vPs8UA zd$Lq~JhF)cyHl?h5j>h$zXIPJ%6zl7sOGIx(C8I2O2;RF6D+NJaDnFcnf1#0f9#!y zf}6S$hEYKh&F}xX(G(Rhwkg78BksB9B%96J27Q{MnSWZ>o1yPe0!F$P^cy_(N_O@u zu~&=M;~&5t(|WQv_ETsP!&dOO1}<|vhEDu~$xudce}|M;6tVM>B~G3*K@+Mp z^$~lAC-+n&x&Z&mo&&+zHW|{ROY99{4{2S0EA)hEIw8y!@UtE^xt^woyXqz z4=KzynN*eQi~O3oZ>|`6EvDo|Q&rr@uxCav+Q8y?L&lP3gQ~XtTjK*uo&X@JT3(g> zSh;a^d~)B2Ad*JpYkeX2A~W%!Y$wOw5%!qWgBxL@yCcFN&ZpS-+Q;@C>1evXL&?>z z!=9<91w`xp_pmR@J=VQu^)pI}4|3010*F1=${IjkLql-+v6LaPLEIbcDjClDJK_=c zd~)Anax){J1<|jBUd2l1ggv~jLFr@w0>5W6Ll)$)YU)${0c_)NJybfOlmk>cYag_T z?;?w=N9OSV=jJ|)*^X5-;Ou=4dtQkqnn#1uA4-c$hSrdhEgc)+i8|)?3Syr^X(-eK zZyvFyR|v|etetj+g~J~BDDt6%NF};aj+wCc-v(7uEo{#!Pb6?mT%zCuswbP8|g6}yYKAa@dQO^!-FU{XGN*Qa_B{ddUCBRMM z;U&*zPu7in$ms$0fqEWu$bVEi52S)_rwj?b*|~ja25v`f@Xv1O^vp7vq>B3ldqGu{ zf~xVy7JPh7*!SPWOrlX(mHP*t!UINF z`C#~}`w2-*_{dbDORk10g?)BtX2_;vY#*U-!*ra|C8O-li$x72*G1u!RTHrvH4d@D z+In~QQJ(wwDimB`xB%FTmay->3!5DKWzXk-hdq~X#HI^31^M{!IvO1rV+H9|Hs6Ik&X-VW(f=a%MPr^drAHZ(zE@G74R!3z zsG%J6)^~lv9)Wl6dS7gU!$OLH4ID&uh`lU~JxWjHYM@C9osE5IcP6E3W<_ZzXze#u z!XEZl#2%)0O!&!oP)wdPQ2?y-`#~|!=^JPxH%s3Z3G2o~C{L+cuY>~$9 z$@t%LBLsd6Q`}y_dJcl8*?*I{M-NsmGavFl z#-5g@nw|9I+{@C~C+KAZQ|0|)K^rUjKAmW>%`eji`zrNC7P0FYd!q_@`FGe;2Cd0X z?uhyempiBMv#1VV9iona{h;F*Hit7jrlF$pIS#7|+`8Mnqb#8pf@qcn3 z=4@s)a#GF?^RC1meloOi>AuHvB4@fe^l)9@G{M+Q<-HBaYL&%atYB|v$lFWXKzU1> z1%`NNNKpr2Z{YlnQoA&c1rrbu^*lHBG^B})y~a4q zJxbJ+<9>yDnaOOR%h^ThF_GWCLw|-k`r)6xpFlD~3x^Bj#7yaI=0q-W9HM)hA%A`A zH=o<7Irg6WaBv9NH!7UylTI^;e+hK*U;OAK42-Ek#=iYF?3?=}-f#8c6?T0>J}Vmh z1^24BxzDkm*Xody-?miD1|k$?hE>QH>w){vKvV|apl(6hXE3L+&j!um{$dG^(Y_7& z%qHiLF%%4hOum7oVCdwQ1`~izIZZ;|k`T7R$Ny^V)qfkyukF?{VZU_ri;i)4jlIwb zdxyR0G?VxG?lk($s3YgeAE0K(h`u?=eUoFa7<*6I`-tZ^gS9kbfjxHwaRN?aHMHV5 z9oQGn2lnFSexfq$#SHuY%htO3tuwpJE}O7di!QjxeZdp_H79>ghYc=1Qs0uvhhLup zUv9)66k*^+;r!m5-b`j6j2tT*xYfR0!Vzi^-K;JkMi~kF#($GAn9FbRPrUOFzSc|Z zGi$FS_N2YreHr%E+~cLWd^5;e#C&c7zvOhB)!<&_sF3~P<7Bk@AWLylc}l(lRFaw& zXhi8zj}XunDa)VzQZV+qeYaq<3Z=oBi$Q+84ptg(u0rf1_x{gdM%WJQAsaxy{6_3W z#XdZH#9k%r#eG&^6)X>0&FSS&1{WJ?zL2jE?4#1;3FWB`#-7CAd)eF3wopMdxYF2% z5`3WI{mCp5>i=`>+lYPmMnm(exuD?XeDRPK3c&(xZBdE-yMp`X|IOSljJ;0X8X51I z3=7q9mb+K4xW_yfV~>YRnefz60UG(#{UzXWs0(=ceQR~!Ly^i*68i+bebZ2kxv|gv z`h-2tfQ{Hg-?4L%``6>evtB++*egz3(%tPVW8Y}(8G98AtM8Ke3qSl4>=zkk8>tU! zvr%}eEk(Tyde0ytqe2In#E{l%9C2TO`}9lFX>YGA$lLO`Q|-TH?)g9TK2grde{kfU zMgCs8%?W!5?JM>_VC*#=-i4anSp#m)ee)*ngBy(42m0rdbNka-cVFmZ+i$}KO9^|1 zQ-U{wZvyt%kmkAX&vGAr1sd&4y==aMdmGLY z;cmAvLnjAPHZq}p>qSNnzCrUoA}E+4!(Xxge(Ys7{hSOwAKWGIo40Tu)ZOxyZ|M1^ zN>+}%cR;_1`hdL-LKuuatlAT0`5E?2r2gYoVu^cdkxR(k0{M)%M91GcZV87)}XV{B2Vc&9%5~Tmma1W(# z!32V-{{r2{5Z_Z<0PFkk4TH}rAi;sVAQyG0XV}LRin)s)H|<&-^VQggqV&YQ%4_nA z%L^~XHo~PtCs#A)KE363W3kJ&_nfd7vNblxKG>^s+{=*if~fv0psOk7<-YhZ!7lSjlF+jDSl6&=co7Ln$hwL?q}dbqG|r!5&L$duC&}t zeUO?|3+z?=NhiP;AnM{`U93>wAmfysUy1hV zqgT<`qi2(44w~xae?@(?&dL>+S1p-?y#ETZEC2u?07*naRIa*eGVr~@Uy?8H z-}*ZC`zwhRV^3A8IyQ}tg&Jd7l=3&GsmqSWfCUSnTPa`GYT4yj4?7R->-AmG<58<# z4R!AXbBTLz5}WJ5Uy#2X&`TT}-FDxaa;Vafo&BSJ2N6_*Q}6d)`2%SX$P6P+0?5bD*A+a7#VoKj*3t2tydB1cTHE# zxc5%}CFVX2e(k!)=s&~1KY)C~UPv7#JyXAbF@;OQLr+?>f;*s~c zo{$$6+B+RYQph|o0TO590`>AV_OKtOy)YCnmJ98FV;zciJW9Q~^8oH$fQ$WmXr658 z)S+U(;&6I{e{N%?fzan&DXahkO?Gq0`Ji!`=jT;1n{C_-X<$StAN6;zH=`Sl5Vr#N zh5Z{3Et=5w3aQt>VeaMW($>ihXG`Lcc>Ca#< z+yUwzWG=|szjtXXt)fayMSbx!p35U`bnDJfzh!Mku2nyg#4)A-^|nPXKNm!n)5cWX*nP?#xd;DRi zvkYfH6zRpsJ)p`#?Zf`wT?^8LrL%e-@&SkOg21QqPt7?`K27Jv={_*PGqwwNkFWpf z2?-FvY`y{ekkBg;)DWz+e@H$o2<-#;b?@ffrULt_Wc z^z*N3l=R<4J(;uX|HGe1EsDK7MQf2l^{C>1&d1ODMyf!>{%CD^|NSycdW<`MTL0{u zLAoDC@gnn3y{xCYy`}f@YC;+}| za4W?}nJ~i~|G!NAO6~NSpLS*od34-+;0KAQ>wkFN&V>i6Kt#D6VQouzadq7q`JIG- z9=v-j$Tqb8tT9?@sr=X5aFMyk;U2@I`lDQ!r7udp{K97-N*eo<*cU3DrgEP%Kg}b=GNE5ddO$Z% zXbiw5<86PvE#G4D;inqpd%30#g+G`pkX>dy&oYMM)TAeq&nQ|3Q8aRCacn z=0d5{4Y^m=IB2=!8LsUi>Ld22-)*%Pzhmrk#KG(vvFcCO>oXVE*)9yZ$Ntt#lae0$ zHtDaPp}xd>t&i(RsGpY&VL?H$@`id9;a(U3fBxJi&%Ky#6Nu@IJk?EWd02ksd;f(m6Q5Y5b zdi}q~xg7X+%(JlvxlFBrdFSl+a9^>n*Z)m@5$?sxWr_NB96k2l;13|K@g<+W9^1cv zz13j+3!VZcL(ABEA)aI3Y7ogC^j!D2V*h^`nVNk62JAV%USRm7cz`{sV-ofTw6QtT zzYP3Ejz?7=|Es94<#ivw1eXWIeW=A+tJr_ZB~wIM z@BBxxCodnSEuKuYtue0ziQ*#m17L52V~-!mFAP2_tBJX}e^L=xvHyf?$uVWUAD_kE zTYB41(u%U!b51{DKeX^WXD!XeC=EU8s~G=74Tl)QmGcYFDbUHcjS}U3y(dZ zXv<-r743xcJH}ooW1pd4#(|7O))wJBb3aF4_7Ho(%)P#L-@Xrf0oZpp$RAhkKgqo( z6ZGm^UChUymFmS~`@tpb6Z%xZH4n7 zsLX#Jdz@2YFQI;hy)o8Wy}aNL3tALv_?eA}7jy3M8;l!ZzDD0q75lfkmRg~Wsoa11 zSxAtsZks~bFM4q(r3V(>!LVCPS7hGOpO*C{5qg!?0Ef6k#W$$H$sb^x)`Zjgs$9c+ zY>a;>5K@j$%c$!0jz^)+iW5Ddo(}LB`>?~??DFIn#vZwshH8Lq_73r#A^ra9I}Gl- z?$*(8UL3g#vVV0=T#3D|1FF9#(IN_APf2vK#2$a5j z`Umd2-fA;}#UC7l4=TTPNnGt&R_Z@~fscK%D=IO*V*NvL?l9)V$jP@)u726oC8cor zzT&~3i+U3H2HpdV)pB^eNaR=SuT3PWU(vn%bi${*nEG*St!Lmo_G>;rru4WrcL6

w=vg+)6j76WqV6clXnq@ujaHy=~xrFzzt+%{umE+jZ+4`S>!E*1N{i-`SUx zLx`sb6k{3}#MW_Ay59;WV+P~FAIRA^M$?;3AB?w&zhqY4Mm;uLlVc_IN$M{*_9HaQuoqIe_c4!eW(IzCiM}7CiuJsF@HkBZ$v0^8UCZ|;eJtK5 zs*k_luLSJd(R-EtI?Qa4gSwjgzl}XO+yI~^H{Y*xcLe*DP(O3DNm!!=#scVX)P2s_P$$vHW8?onT((#$@@wgry+r>S6AKr|+ zYhT}LNa$hOjj%U`u%GQLh&_z9_MWwQBlF?yP*Q(c7uhJ-V`tnasx`tnB0&#O8{*9)rBOCz= z#NO&809gwA?tjts!WxR!TG;&|sdq5Ck8)5DG+u{&@y&Ss*jGFv|7v4EwJBLS%K@OC zZv*7yk0ZIpSRMP3btfz(_G14ZV2^5F5qv~{nkLkJiphYsg#;423z`S`?!&%n_d+x| zws7ks_QuIW*u$J9P=SLy>+ks3Vzo9g6M%W=vVg90@bNVyt-O=tVjkq9ct2q8+TiK~__v9`);fd*^v>C7>4dh=uwVOlPbz%=8xc>cf5s?D zVNMUau#d%S9(#pH!rNEt-j^z$aCuPXC04<|+6Tn)6vQ4?xE`t4CTu+y} zHm0BH`tUPe=I?Xp6ZXS^3cg@{{B@gdg5@~K)JtgM_aq3 z-PqpVtHTfafEtuoak3+EcRNtg$CCAdJo@9XZ2fzbm~*mMWAA-@>{a9VRu;uRmBd?h zc_uGDL?4NpxrEQXiWg%)Lf;)$kGX*sCSXq`IU>}4$IO!*UzdZ6HN&zdX#j3e_x}j> zLkbVwN=%)?5#GU`Pk1`J)u6<^X!@crOU!)i@~iS;(moS_5!kRWxDHOyWq;+vFb?BZ zu7Wt9Zd+2%Sv2_B@1R~X_6x+bGQIc(wDNG2L~`C(I%WhU@`-xx(3PoPS%qSe$Gf^v zYoh$Y56QnK`_}4`)GPJPeeB-F9~{*^Kr{&nJ$djsqg>)XYkLgdl21lnsPKq+77?ahL%#Y<+x;E(u_zWM+FxzgLg6f&waFZBn!7~@ zcRGC$%sfT*5qj_XsOWv%ViaiQH5%(bW)?F#=iq+>~ zRSGrTZo-uN>CwfvZ@@nE)Zh`jOS~uOld<>A1M%SJLo8rI)2;K4r#JX$>ahV2XZhrJ ztv9(ol zwSR;{I)TR4(DZ~tyD?Q1a=sag)i}4@tT-OHH$W4ZHSX5=w{p?bWFH@eBX9niik8qN z>YF!U&&D2=^x~pel;|+@z&n5ZFrd%iTEu>PBiYFp3-n;sKEOi8> zaFZu;4!AB13+m-}2XD}hU0tb2J*=yGw38(`@zv}+~tE7jw&o>?a?M07y~VD$nfkb^ z^Yg>?W#>x$>`aEVpD}&X>powyoF%2_zU(Y(CB$dW3?1e%V5Px&gS9rnLH=&{5e49| zYiwh)=)&5%C36{dxM_1}4Y4&n7FJO&Agn56>mH~a)WrV@2tC#Oj0Dyp*;W#olmO}2;bYUeZDyBef2)74&6nR-xa?oPU z)f5cKsJjkh>tJmQO;2F8sU`Tc(Gq?&;BP$kO{VKw@R30v-Md?Q_UGHNxTDVBBb8fQ1MSwW1|KYGDdWj*fxD36U!AMP z&qvB|3aEo;lR|(8?+iFzoMx1uZdeL?_g3ng-8n*2})!SU(za1 zExv_%@W>&DgiBiT(Wu&K?#V{lP)bhCyXGKt`R!3jTgC6j#9ZHD>wshOgV{GCe(Oo@ zA89;lN>0-VSEU*{P8uBAd?+Uo#@I8jk3PN#)1e^G2w+JbxXuX$ux4+Ra)6yyln=7iiA z-GcxeOCZP~1$ER-o9QcNO zb%gv`>S{f66t6zM{GvysP|A7*dq>z~B!b0IaE7FoHIOgO6#Dq21f|IOs)H-^k+t=P zKwuOUgwzFsZ`jcW?uJ}YxjCVuF05YDc+}V-lPSBxU`7^qbXZuBzkXg|yczo-DwAO^ zPhuZDxo;mH?VRl0<*$-&=~)CPVg#4!`V20qFrLG#Oy}5|x>|8Ia_%{)C*#a-5lc6w z+XdL8eKDLmhGm9cJ{%iK(`|RO493}{1VvI%=6LgN0DsNea&3={g36N!)Pc=)Nl-aU zmmbnl7Y`c7Y~Y@r&_t)~Xzt-XBthpU9T~5^{{78`gCi*a6Hz{rdeES7Qg-L4S0QKJ zeDx*YP`dI^uN#)G4BV457xr`)ok_dq%|0kb8j#DgE{UOJGLb#vSa;(MO(jy(2HvQg$_I z-+_H|U!k#Z<&sq)@J&kK%$!Ma#F@MsH;7SeC$%wL10EJP&IY;7v7dPxsp@C%?Ii4B zso^H40eQHfFB8U%?{FGO6A`7Lpr1sYdotoddv+X{f)55C4`YXK9aI4c`vN-ZBK3zw z{QZ`e3A;*;@Nt~0^{*cVol#lv`RmWYXX-uo^!-=>0T0JnY5FtN^E+sM;F8^2uxBZ+ z`vn%K@r3`P!DWqpILvSFoXPz|dDdcB#NNc!orZ&8(X2>`34YUd+sn%b;A85zA&F}! zkPOh;XqAgB!3N!mJ2=%}YT zk>Py^GQR{SPjA4xAA>}G&)Z%VoB&~Z=T%c+OLV;kP5m^*TPZym@s3j9VjMMDQ>F7+V1J0y>kvmtmlO!P8%7rrtrSj;1TTLy9>Np)xyeb#x_)O!BeJfD%@fn+QIaHZFA3QQjx$ zsAn?jvN^#$?zOa1BKJY%N#X0GkOV)=wk1!14mMuBeoUf(lkey;k`4fkdmQ{do$Q&r z_%p`-UDyXd?mmQDIFnMQ$DeEpT9t#&B=?m`b_>(a(-ZY97tSU7GzyGsQs6&6(g<_V z#panni!>62lTAz^K_U!Kp*{BCZRl|$y7-sSKJzXKx6BmUmDwZXsVTsnb0!L@`$~*wQrv>-Q`B>oWG85P!-m(V=VH39ANZ^S1)?$D8V3I? z>>E(0qLlP-Cl^RAaVp%v~@4sTVmQKL?5z(QI@RJ&dohTA#XyN>uD0hj2EG;3H>lbtsQaCrdPdZ>ux+gnXJb4f=uppH7ab zB!~*4X>oA{DuvN58~&+u3}CmsJc8d5_K-uOwleseIBC@(_Ct%_y52Tz73VjJXj)+X zgUE4-Wx&wUlcA|8jC~YRpSWX9VY-8R02SmVf{yyR$=lH0ObepEwr4wVE z{Pmyfxbp?mA^M>QEm$`8Ef)SE_EI0_{@pzuzk~fOgiFqx3kIJhUf7wG`AiQ?gyrxrv#vs7}nEaxuE}-a3Qu2@(J5tK7tQ9q+8#sVC)HdC`Sy~ zciXTRp*310F(^?)7A7(`ADaTV2K5z_j(Uz=80y11>hcu!G4l#9KYM*z9QgX-WSn1r zXtUSXo3@?Sj)NJxu2uXbU27S8zmx5hBVHu*RK@=1ubO|TpR|vEgn10W{OB%{JWz#Pknp?i`S=)KtZoBxxxwsolScE z;E6RGum=$lsF9>F!8vQ-U$vbKQU^USJo3nzxIP|!xG<%B=_teWZB9My=G+^b*xX96TEA!CcGG7ETy(Dh8a?3sUR`JWKbHe{?vdE(`@9bG?ogRi5pA5eY;wFRK11;4!I zF_01zsq#cEs9})emAMb&)yXJ{rBA;cmIQVdrIiJ#=o)h1@xOGcxgw}6_e1}1SW|d? z=vfHr&G2UEb2Il#J+U3W29J>O&%*m*BVlhC`{U%kVGzczVZZLn<<1<&khqn5XD%i9 zus>?Ct;>V=ms9Y`w3&|PO+y`r2++B?$oc>PAOJ~3K~y_%CUL{LqrOr5eOU>k1qahP zNh7RUcnP#_)(OI1trqsJy7&-bdt1-F1f+HBUN(%*XCsQ)G}IO7M;e&o;sYSpdZ05G z`Z0*&_JmGqMWtfm=dVA+*H`#Z6t%`07iP2(^~3z(?#j7yo~7^nr!`m@28T80$o-i- z{(B_jXU^n&1|OLDFqS8HbLh;WGs(_eW>&Zb{P@}MyjriLZ2)xoQO$3FwFa-xE0q(9 z^OWRHi_q%6!#Z4VmN7Yit+SLT6b7&tvf08tNy1EgcrHn!hp>0sR(hO`_;@U$e;l|O z)3BmYzkvH;CIhsK`q{4IL0(1_OXz8YLslIhTzirdf~Evs7l+L^oQOtoApipHQ-Uo{Wvh z(`Z9sA-uC0ZEe0PvP}+~<+^aXGIuu$ycu@A22I$vgnd`B-+M**d$DvTXCex@ zGuO6rZo~LZ-q!aybK&)QgyW-KC)qjKV=1cZdn}^6Bb;z4LcRY%R$x^qc$FsPHT}8^ z*x$A9++z=#8X*FK*i_+-f;s~8d^^r`#9e#W7ZFYEJO|R`Y84&|9cpKa@VojLJ5giSgw z_^zN{4zs!41Lfc{$ypvfZZ%9J0I$-d9#ae`(KA_czxX`~L6J)n8pYB66ZX%}0wQ%d zB<*$HDJZLgQhtfgFVfT!fjZ`|{|ZcBl|2Vv1>B7lV~^Ow(+~lB*nsqM zdBQz+^WcXJjpB-;eFOSa&(xp*fn{7Jr6h0=BaMyuz z>FcRa{p^UnSjGPSFf}bgmdKF~mjr#^i@7KaY7B$s#xpgj1G5o}I=i!NXVaqePDTeg z{k}Z*)Mi<+FOI!xb~tl1gU`aK>(g1A=*(_-`94b-5AVYsy-L)o$+1uOqiY_3FQEdz zhb}&rCZHM`EHH(h{r>h8yWJj2R~Y+U+m7GPWH-!f3cHQFdYr+hiv)3*RoQOrLDcrrM?E+8BaWMk*h3;;K6kE3rpIt$ zL8btw5qk(5M*UPCLVTFIL)c&VI8>BfAY;#pPn2@{KfL^_oVjfg24!qpZTh|p_J`t} zYg766K7J#jLJgQ3`HD9vC3Jwj7MY6=*i)PEh-y%qbvWOS{gKkQ>vm!`_MFJi`-h49lt#+&m18PuKe=YV$UjIGV zw+VY4u>Vg^?mz6z^(9}w`F`xZv2VgLzFxt8l{gUL>IY{>YDXqj7{=Za_R{_->@R%% znSsx+Z<~t!yPUcIz^BTv_kgN7_WC~ixU%j@|E=%ZWbDo0w29b5?`~TXyXMbgF9Yb- z-?;oRul;XUx48*N9AdDr#H*n?Pyjo6EgN*xt@+H>R3 zFO`}8ihaetH1^yLKw~u`_K->55cp`>_L#L-$=DChfb^ql1NQx2!oIl_dmgx@t%#0S zOo>)6zhYk$dmQtj_$!v2{?!VDl|`?m>ruL&jXjBV2*SQ4VXi-f{dMSpkFP`3W|Ltb zm9i`L75ie`>y$Mj>?xDKURSh6ol%Nrc1WC>2NG~NYk(_EEA|^dnZNg;Si9l;9^3ve z`Ro<@zk|Icr}7^A?LPz#>>-x#JL6EJM?~zc5P!?b@2-3nnz3&fdz#S{A5Qi1EB3{f z8ab8m3+z|!n7qUaa8R`8*$1%>5yYS{L-3bUdh$~2Gh?5y*S2C`u`j&TG>PtKUzquo zTd5Dao;W-Y*Q=od-_qFke;E7R*f%MyZ@=ZkSM2`^_B7)+!`|w-`QM6tsO}pEo*Wvm zFKnbfjs1ns!s^V}H^JDqnd4Q1`-*)@>}NiHt9Q*(SGg7xNWf*CW7Nf0@>YHr`~FJo zS@I=3iiXQ{EA|!pvX^FcpP7%J?*p5t&-!;!0xn^%Mf10?zi?3mW8W;XPYX9kI>)}v z^!SpzeOI5#R_vQ4_WC`kg?jxr*e{K}|H>ikm5LfYt#=f`*P;~f5N`O zW0i`1#lCzrIbT%=uy1DATU4IE4*NgtvgD7#|+^akQQ7O_+< zUE7%JRk1(iR%#r2*A!T2v2QQ$B57wcDyzAFegl_(d5j);9jsF`&q|m!=?R;ru~Zj z3u`ab>Ruqk-5=DeVt+iEge5f_+yUosuooPlex}vYEX1Iyxqof#*Az>IpqRhjpL&&Z zD~(%B3lhp0VeS%3uP(ce{laUg*gxBZp?!JP^;ebpdX;o5p@{Zw^?4t_?d5)^1w~(3 z!M=8nJ==pO} zLfF6OuJslB|0A+rTTm#1yZ2|&>77_$-_}O)o!E;9*vr3+U&a3I!KB>iY`!q|tOa$4 zeQh1v{xqIsTHfO3cNP2p#l?RVOzwOVmZdr>_Gcc)+KpHEbyOz49QzvE{~tcSl0p^n zDs@}Mpo;ijcQ;-M+z{Ro;rA8$|6!TQ)#|Tcb@q6b5451FD$LGZc%@(melLVr-4gx^ zeHHunUFre$w8)g&QzNq4vRB2R%0>W3GOa%m+SfzfcRQ79g&<1o^C|_m@2+BB@AJ=G z75o3jsa!MY98GR^Dp3?hTO(Gmug3m&uD+?**F8aPEed@i2339hihafYk6uz5bFT$e zv9CUU#r`k522wh=EaC?bz*X!k_7(fTioNpY{{G07nmvr zRYUuV{U0^<>tayK`~Le?dg}EdV_&ha*G}x$QvTdSQmL;#{>#^{xBvGpz+0@k{!&#R zzhYmp|D(o!wSXU8|EdP{GogLOzFvE=e<0Q&tA}4h`|tKN>UG@5f1v#M=SASEk6*F> zPmTS9+J2$lC<0fn`@3JUuh*5>W4?ZEJ9w8ERJ~TY7ms)8`%R&**w<^<`odPdyEUew zY(!1#eaH)2f*+oUx_>TR#lBt#u$TAPlQx8`p8m%|uZ;T)c^b1LX6WC6=f7d9*w^cs zRavXoAu%Z46Y67qKk^ZA6$WZC=`dE8;ioTH=#|Xp6#?`9s@T`-)TU4a{1eyS%&5p6 zd6iuKguW8A8Dk&@^2XMfsqZ_5-!)AD{q0t>s7D(3Jh=O9;X#E(;j=L=T`_hTQylfq%b?jiU}fsOZwGxm59`z{%Nfsq3IpCd1zU8;PYs7=!dQ7ZH&3kUjH;Xph}#Bau01XK8xeKB!Qz2@St_A(^)QuRJ;*58#u#9*n+U2M&G@wCN1|+cbeqM`KT$M2p7>_?vd@ zgnm@(A!5Rw$^hA8h!#G9FBF~^qPd47#CUiJ_+u`S=r>MtMl$OyczJ+WuXOplH~4!@ z=d^T68?&xf*ZcT|+-pjv?Xc=9oSogt>_qUBr|)TVjJ@Ap0{D~19^G{MKK~8yb>n|T zi`d`91M2g0x~wCBFR{FOT80i6q=@H-bbv@Fh%u$;FS}?ds0(Bp^~RA)6*pIZr(?U8 zuD9{q+Z!Ng^5JE^F+G7O?p>GBs&<_R=5yjwII6#EWPp1&!(E(z;?!9|< zpqznFDpp})_7;z3>Mi;}-Jsy7le%h7~5TUD((i4vk z5bJe!^;B=&`+Eq9({NrwahDNr96Q##^i|k9sF2gGGZY1Hr(UXcbDJgd$&F~yy9aB~ z!b|WG8ep$Dvrmk>^x}9jzpjTa`0x%#pF3+;4-NCZ$lD$N0b><13xU8%!W0V$ZLBu( ze}I2IxcN1|yy5c1L-qthyWal_0<{)p76#no(c`b&f7KHkMh68g-X;#1;eKiIMYOk4 z+%@3k7en8U=-k84#*mLr&pdNCLD@b2aqQs-?jH?7;OY+)SCWIEmH;m7UA^D{5%wOL zlkZ>k1}6#G0V2L(a3M6LplU72_6rlEvZvD^%;J;hMBSJ0*l*6&;nd$my#plCF{heY zvia^g^#lZ*nY##gyFf28KeBU=r)BgqU<9CA2d0%9`hk8!*qn?AopVn5JQ0S@Bp!1OT#g@6%qRp78B7AFaXC-g!le#EN{NqowY4PfUzbR6zcbqwb0;nxHp)#$tJ*rz*~ zzHV2*rw~K%IRZEx;Uq!I39!cl#Q1h8lz)AISg$;r*WEjaoF^GDr^7+s*q(>}w`OBJ zECPKr`{P|#i%D&4gK0wsoSg7spn9uy?80;cA!poae8`cwksmq#P&&+|V>t{b;@(5K z_2vNfvp*qkA1RK0KLFnklu#UKSMtHW@#_b33o0BSwse+&pXwJ9o3 z9u5#+*p)|5t8yP5KkW?(rd3ASYT(`$i0iqdPi}@ze3bde_1&p@{Ox-aq`RbTm9m`L z0`FGRo9dut4c&aGV1?oqBl?%vJ-B4gK74<^^61K)U#Z-TH7yE9<%r*x7) z2Z*_YNZn&k{5SRB>lJ!<445CXfIT3uTG^iU@#(bJ|KF;O$Ept|Y%JF1Wz;_vhD$Or zZ}&+&=Efu6N)2Vx5YKv(FF9cI*fS{*=?jxt+ubiD-#B1?>~V| zV@9)x44)d6M~0-<_fXgdk(>kU!JmYxiB_M+o@+U@*f#kx@6dSsR4x+wBE<)phDnH3 zFP}AK-t384qu`L*bC2=u*oG=fR6hb&-RcoqY0kaUJF#ylp_h{RW_IBQ09GF;Cm&xJ zM0|FD_|lPl6gdj@@rd#(u;(g0IJTAEpY*2XJV^e3t&*4|dTo2M$xX3@eC@i({}fRX zg1SWSPCFKjqVIb&16o4=ni>SP2z%a?g8mtCe|kfFEB5g`F`Ovk#nPRS&RbgcaDcc! zY7-Au+an?H|3^d;Ws@A373JjMEz4L2dswL5&10lqes?%$rq+$Qn!@$wUch-5%S(v0 z*I(*Fyl+Pyz}y4($^iR-3BA`o%A@GfyJyXBVUKxa%qT8;@g5!fVg%r}L;qCHJE{S! z{aM#F{|)zp-$}Jc&Oswyfm$7I?NmM#6|WQEnYERvHT!+$9*fGtJh=G!**lo8%j~T0 zYTF=CthzCDjO`H*z~^hTE%8e7bE|zmo9lt+4sQQm_btYa3;5%~%$$4w)WHNc{}1-g z0QNq7geZS#%3%+}YcDG#6kA&qWXMX$SJ1x-`}j*SdwqHbnJ7dyG!|FM#kK+T=|xIk zA@SmxNaw>wE)Lr*aYvIJB)1^0C2JN5T9AtdO~L;ux`)#eI2nTMiYu|KJoJKun?|wa zDFyS1GhF6j^(tlz_1!S=P)(=QMGa^DmtbGY zeTy>y!GByhk86n<*i}9C@O^#ve|Y)=1knf0dV2o%)9pO=l&rOl*n=I2wKj|M9h;&x z(aG81_Qh)+j_tGM2d}>Xf35;0xNuBDi;C70>5ray{U<*DU?eRx@>o`U! zupj?onPCd7M5FV;QTN~j_HeEQ)Q4lI^1~bibW4Wl!&(phZMy0t;lm5PXl^05Bg?4G zF3f$(>EpQwJ<$I|rd#;n-a%(G+=j_he;#{OO1B%I(tk1D9tiPetn&_TRc_e40nscO{mq9&*|WjO?+q*QFnXle(XGXv+4D7 zeHYY%!9)mgkJ?XLUVr~Gf|FH8f63DhPsP8`Rns8<684K5-!%7G6L7vX?N9XYUUDW^too>Gj>X`*jkw1LQxz%quU%io1eiQ6IHi*T@Hq@ z52+9tTn&Fg8F}{d8S+Oo-GxA53mgh{19>T+{&vxTsK1Im`;XaRfW^Gu$UVo5G=!7( zabx~2`2G`O4b*_d1M??idvws1GEfCDj;DUmofr#XA1LBUKJ>icDNVESuB;Q=WHPIJ zMb(${V;0!cs5n6{KOy$y9Y)8%CR0zZzc1n9e;x+(2>iq!QT!NpU-I&^#bjqv{g5~k zDiw%N=)Upu6i?<2{4(|+kBU89u)O?d1&eYfOr;)CXrb_d!^r}&An}|**RfiZh-z{4 zwES}t^pKD_A@ZI5#Z>0UjyVI|wmK7qz^?GtF!$^zf=#9YE;v3$hkwmSIc$G@2p|2-a#x(hVba<)NeHFCH2K?ODWq(kR|q&yFfQlZ38LVScp zb&+~Ib0~L;JHtK<<>|2eQqB^w7k?1@_naR-4%6IEB))Hu+UX2CaX6=Uwn)yI1mHC>~(;r$*O zM6=`dJ84kHSTq#atI!rqTDG!cf7pG@qP9G2(}DM7_5u6Gq4yZ3359(;cOQQj`#xY# zrx?wdY(abXF+nM6@c!Zw34cvC12x^bU7+_C&_%}@B3zbDRe-r!eUDz+9wlES%2j`I^ zH;Nir1Po&}quKtbzcG_X^nK@7SKm*#z)lr?bK1n}HmI*U=k{Yi1DZEi6l8#1#B)z0 zQO7pZR7YVcl#z$62EuHzwo058Ri72;S)Le&)1$PG#X~&8g`p>RgOq7unkX)#9oXZP zcL9fYq!q7HLPK6umH%I0AIE-%sBNTd4XoL8CQMPAqLDltvxNnfxsUR4$nHt*s;dCz*&hn3weNG3=%ORODi%_b$e97 zds&!Es!!zAq^dz2;gZ4(zy090lU{!(_E>!{aQtL8-nC+1fP3;Fc}M_0J}ytXkKb|mrP{YJbaVjf{l`7ie`GWXBU;2>(utNj_mn~aA19=CFt{O1 zYy?19I35Qg8xsRDO?86DMb)!3!`*ad)_lVxFoF-m;M4YlLS-7q2Zz_!n+Jw;Fq=>k z_ES*vq7ky#Q(Cbvz&+(_*l$DsF-{UfjVH+Jfm%#--)MACD^S&NpZoTm*tgoaz8l(6 zO89gq)GQ!_2R=T`C<9FxbXL{*ClsF)N=3_DZ!t}FK&i!+$1gy7L8Zt;9}!hgAx8#& z5`4pu!$Ea|#KYcf`*8yrd6m8XjtMSPAN%_7)IJuH$meRY75f9L3TEksi99Jw?8%3H zT!q0QxSQh$zHBCs{c-Gj%!65t6R%Bw{5TS(vpPJwMjK_Yg68PsQL~GSXDlehGwreu zPX!0~QSPgylNM0_j-ki+a2ETHRD+7MnX~PNb^r=PaA}asL1J+-zP{ZvBuMKC!Kc^G z9F091?`AF}KFCGX1_OWZ+_%|G9{t1f-k_UB_C0*Eu~UW<6^E@of?#8n z3jX#;Y_HU;_CBw8)uyAYfrLTb0eZ(XRFt}-{QzqqS3Rt-m4L0=m-4# zYj5D$B1w@I)fLZNjWn``{QQdj$u+NF%z&I5eRyaj)XiC9aPkrQDRlm_Tf`>~(3+BJOMx~SB%poq|ShNeJLr4jq$G$m2aH<9Cy zh`^t}2a67Vh%h4b;6(rcAOJ~3K~&JI!B8K^I4Pn&X?2BKz9-amu)1JL@f`B(uX4L# zNHm{UHvT^B-@NAG3f!af#x}}PxdeG{6C4j=Ah+Va388*CvJVPvaN5@EFv;eymV?16 zX6#lc9YYv$B9GPU#1qqOXc|vW(|((RuXye|l30e5^DveJ4*TZRZ%|c#3BJ55?rH}H z-)}k`)f<%AT6+WHg|E>Y&^Ur+h7X}@!@In_9#q)FK^`aGr zihQ*i27`TXLVh89P;uv5Y+E6KKKnR2!=6P; zg2d1`{yCw?{{3qou!S~9QA?t+yR}5)ySjRn=r({ zax@Eh?iVV=q4i0G@soCCTv863>~V*7eGg^D_l8^?FFwdl9kO?Uzv_tmyu1siGWRm& z7fw4DJxaR4^Wi5Ix;~Pwm>!3U{gDUSWGW1bO6|bl^D}k>&*q?DE#&eZx^KS)eFl7T zS7Ie>P#loQlp3)B(m*Z0kxwLphg-_Zn3278{kT1E zKWXvCske50=Yds{h)3u}-!t{D42%-pe8^gKVHQ+6y~BN{*h_uSRW_ry@<3<%cpf(T zy*$~J06q@hqoD1PAyGd@{JpJ}Qs&j4f;vl%VGk*-bff%=#kSs;UVdzyr|A?kCpx$F z3|rSD^@UVqlefX!&I4xy-U6EZfIMV#AsJc_dVl#JWP(G+yI~B#@C;!XhKl`$2TC>5 zW^EtOeghA*&G&LB@nGuHLlx>bvv+gd;2wcU;zmz?_%aKt1>v zE}x9X+}n(KsF&c$hy|CvNCWuHGNgztm;4qwS|`|m>EAUdt)`&9@HQ=y_5&4^QV==} zx?;cSf%0s%hx<4@R(PNh`Ifq-f&t`1|YyUj?(Nd>mFaJ9AjZPk=6Q4S)iK!H^GQ*#KC z^LRWDsl?5>pCVJc?zSD5hOows$707;ZeTt5)Nf>Z6f3yk{FWaItMbrhOx1x7&oL_7 z&!1=*spytnwsZH5o;K!ev8yMLfTf&Jcnqk=3Mu<_{OKupHet^L=E2kD*#6bgWWQqUjUb_Y zJPm-`51D5y(siY=FX>Uo#UXZVIw-4J))&l&`-xaIiT&RYe8!w!wf4myC>ney`8Lyp z>6*Wdy@>h^Y0AvD{?3K&AsTx_>aHPFme`C6=VDK>|M)67@V7`CbTC6PyF06s49$n3 zq5y}GC+=%1zxV@fLY9`&HGdgZa zs3B&PH1j!s_+=~{XY3&xRpBoFK(T7)s(j72VXs-VB`St$uF&6b?`9=HWlK=NDZ9UieKGewURfSL$?DJyE>_{M*k6M^wtD;r)HhL5HdW@UguQxwqq;1# zA5iQS=e05Qtov+0ywW-Or8iW32ler$W?DYM>nG|h>w)Tu{S^oAHz)41L`&m1#H`j{RJ1C*Y}+> z{{i+%9b9sUyf$={w@F%yx$m)KjJSrfyzmn#&F5e|z5j-K==6yC$h=yNVCHFH$--Cc zue%H_*TMXG?34Vu403PApsn79J##OS`W}DHK?D6LRFrg9V=w8guB>h0eFlA#9Q(G( zep9P+FMABeeD-)0rW{`!+9&G6X}!s?7yGyem1iuLVCp5##PR>fxM8~0rMki7XNtjD zC>F5~a?SMw?>eLJhL8BAK_rT*+s_Q5+~nh{tO;*F_RKw$;*-*(ia${^_5+R+faO}( z)X@}7H1M|O^sbNb-<^fZL{bSQ;658Tk2B^q*xT?sTZ8*Qb)^aoO70->3_m}AY#b_yebQ@U?Dbyk!NZ3^gBUPuVR1nIRWX}Q>)njkt^6&9J-fI)x<=d>k~mA z!~u$8j|Xn_inO_?(DS*qS{??~^n=r5ZtP_X*qaP{*;VWhJtyziN4Fj)vS?e=BwugE zrFwM~#{Fs`m8N(|MZ{h-n)LxlA;cD=o~rb?K##w?AA9SdMcIzIu{REe3!zR4U@xTe zJ3(Cyhp9Xhs=r)VU4`FX}V=uGv5LRy7`je&Zy8%k_b7SwZw>Sni!(P@^ao{m!ah=uG*njzz zRH*4dEEDle;9Cf#iS{^=DoCaR+}OrS!tDOLaR#RWg;}Mc(ESYdkSOy16L((2e(W0! zlQX?LACLZUWRtO^X;0XTYV8jj`!?WEiHfk-YcpTi*t3{j9O{nktJ8GD z(Xjx1OR`D>&Ue)?T#{?)1D*Rq=iuYt#|pF=?A%aHBm9mOj|0aM_a|GiKaD->K4#cg zWB=9I$DuqJESvQK9c=8C3g0iYj_aGp9>wi2iLaH19^`2iP!AoMWbPemddqz&GfjsB z>VEdSwOZ^6?IZbM@9}RMzc^dO-WrFwXBcMla5PW7UitXJz-yhhfO>r=_DnqI>jd&E zY`l0JSB`yV>}kIM>`Cj2)Gk4K+BuJtr@n1NosHyaoqL2Vc+^br@fYsDK7zdvXyFCS zY4bJ-vDX^rTfty4IL4@{{9`_TARUuKmHMx~qGqp%xqRsajo~8~AATjW;fB%JM&2Koq3pZwT0vP^FK_TW|1nF!wkT(c62E zz5msg79ukCvkuQC_Ifw=3Z}H;EM}SwDJ)CBwX7Od&HWMV<8iOeYV+&$#ngwa8^yds zJIm!`Hh*F4Ria)BGl?{7!e5}B3fO}iZbzk6Xp=X5_1#UwX*sGnzxMI<8uYl<6js;n z{iupKM<3r->$+gdoy$A|Rk$XI|N8Ndky+Db3 zt_%o+kYU>T1YH|AbNwauSdJ&w{}i+F?OyC7=WOhA?CHCzm%lfor!&+m^*=(rj3;=K zW^Lb{;%TwKK2o2_TqLn2L-n~0mG5!89_10>glxhF*S70kC^K7uZ*Ge*k+zU19k~ z#r`L-7c(a~d!C8?cvK%oA8~B3PL`pp{Q%J4ZZ~oyj;y9rs-!pl5HA{k2-HvWGy3fgv|V%o-eXU=Haoc| zW6#HutJqg_zaM*EOsh2(_4@WrVEwt;bh0m!z}2&DolJh$Q)x~Yf_NYFZzgJ%A6~=W z9*|{@*jwDd@GEToEB2?c=RR&xx&IrNnqkjHeXkMg`hJ3g`mXaHe`8?Oy4#1neHH!h z73;(ijWD$dK1q{duX9hQCiV7VAHsR6;HtOeuS5cJf&I2e+v6EM4(6rOJ+o^uy;7|w zyS?+HM99?)`*dty&HVxFlXbX;`szP?&e%unH~&S?Jrw5Sz^Os(T}&^Jg6w|mLv2Yg z_DzWG$JyJfNxjWW1J*_i?crFqV*j^{{mOyeh6iRx+m7D3cl~ZY?S}8!H);)kDpDVh z76c0l%|2Q+_nUJiq<4}c`%7M@Zo~h{wW-<*iQWBEE!N_zx!XT~t$K#HnR}LB0n0Bh zJHD%r<3Dj8q3&ag@!sX-TWk;|?Bl{E2Vm)>)P=U)-gCSJ*sF?ty-q}oYLl8JHRNnJ z_JsW`DM^06t=J!r0Qp{G6XrG8*O=>niWudF?LlpiCvBUspZWbO1*J8Kw2}IRy~tyy zihaEfM2vF7Sr7?-?oiKV6_};5U&X$f`;C5C+MP3pzcluB7yfS|MzL{wXm()_gx_O- z|5|mSZNfg!-iyn;{EGd5<2;Iu+k@DHJsl5Ze~G$_*RZeVep_gtNT*huihaF~ucmEQ ze9uv_O-he5?AulBOJt8XbT9k??8WuiSKsSD2^qIyzr)M7ZPa{=*xSe0ms_%bn0>6; zoaOYcxs%oP`afL!J=kv@cAd>_m}7ta=q3Wc@BiMD!r=-P`+Aiy_FIqTlu|pezpwmT zE77}>{J#HN-F-r3+53upz0P`$+fIN<^<$flzb4l6-XSgl{O-@7&tueN`dw48uh&6i zkCM9^zZHaew_&dzVgJ65#^C=M^5@uJch!2G|G?PeO4?*MaD&)p?pK?8?Av_&1^1{r z^k=vi75jRfC1X4Gg0NQ`q<+>rc|U@E;=Zott=QKSy#K((7h;>52Y#=7od@vW15KZo?$R|-}rg#EB6)qdR^l{NEq9(Rzvo-DK026 zUa`-@vt{-5({k*JeZ7uw54!y;+Aqeu1$!Ar4c=4#zgl}brJZxH9t}FJ*w^dO8k5q< zyE8!^(|K(kS{oPi#;Ley2L1o*6e z_c(Ybq#6xl>EaCm|DW)OU-T=!zlVN0iM@L9rM`0i>)5MRbAj_buXW1b5?ygL_j6B;@&gI& zN3zN@&tYNoV`2d-iWb-#S84ho>>rHm46f#0>>*KS{LT-?9Jn9w^58=WaJC9Tu&V{? zf%(>B4+g6m`$lCWGDDDMX&9lN$N8Rqd_sM2@-ZX8`9ARU$6xX!M=5*XAV95Jhbro26McTcO)MsdK*KVfE#o>j-yZ> zd(GH4Z^!-%HGpRkS0b0T$#&uJ>o9p0VC*^nk2W9fv+rNJuIq?9Jo2u3leB{i>5M!a30%?tA85O4Il4t?xTSmq#DA0{o95`eBB) z=N++cTW@AQfc^Ka(Umf3+?5}IFC}Uqfzij~P#IC@`waB^+uzdPZevDJ##V@xAcJ@O zc#;qz1d%SlJ{=u;2TxN3$8TTMqP}0nUIfQ+FZTpKl==0Y5MlLUv9Dm`?*@m<(3^V& z3v2vD@#n7y{!4r= z>HvGnqrlEez@yFg{~a}9?=kiCh6Lb?vlA@bn4cid!SA7_NQiKPz-0qOeZ~I&xgLO@ z`3t-Q7^7SJY3$!ac%g@8%`^B7oZN)32E zwM|VBuigEN@MKZbog zU^^R;rOVrVpu5Km3Rg)G@tD}3ph$Oi+^78}>$xQ3EyO15`M)j9pRu*74N&L-NtsOU8iTX7cCc`zx-+c9ds7;ij?QAH`nEK5sAHl2BRuP_afQLeB_#+#xNhdrv)L zhSu0)2d{|Zjwl7luiYZ{w>`7c(CW`Dez-jL#JvnV8v_j?KBsZujfMn)6|W8u>vhPe ze9I`w?gjc%Vu&jDGe7?;VslB+N2vGAcU=}sZz(_ytu}E>3$``4wFx~RyCaU6zekA# z?_1xdn?SONxHeLc{O(;S2&kBa_FA`1t}44=ugJP%fli9U#_g`$f~^ zk|+5kHK$ATSJ>bFRv&ynT9_lnA=hE=jcItt;CbU&ILQcM$I%AvlgfsfBcA*0aAEXp z9H^cL=iZ_f-?9IQ{_LG^+!|DjE5Rww+Sfj0>>ZOC` z3OG5;`U8Z5eTO$8tR_I}M~phQA0XE2wb_c{qx#a@dC&e6`nS3R+;B>^h$>oM-!Xle zvF9SWzPrIWI`<(_)0%{~qt}fGB8uyf$_AI>`70+s)##0*am*d`JD?%G^Brc?pUM}* z2_RJsz%`7W9Prg0lwD>PKQa%Sk~jD0>zQW$GTB|QI_9zufJ@ zLyy}*@DtX4VBYk6;+mfyLK@L~`E85k0{$)FC&dle5bh2fd?>}neE$3Z(N^rwB#ILN zEK;Mt5BupBkP9i@ZS-$ji9vA^S6?nC@yOV>Ru{*<1GO+nU-_8ce@u^kA7gF7rR#D7 z_PmQVL1iQDm^$>~U$U?)@jlIbR2fWJ$(B04 z!U3XImHHEI^CDB@SBwvy8ue}1gT|BMx-ktKKLwrCrM;wo?^5KlG3lJ6RQL0!9vc3e zzOeS2H}b*+mxex5@^$Gb9!@P^wH@Knw}_0bdraVECkW|;@LAwdPy%CKEaX2LwBeZq zz2U(&mw&bRy=! z?A>Y&Ys?#A*jlFkV$DbNT^d3}C~(0&78ZJpUtyo#^_G_@{jBKVkK%(&=OdH{QC<&! zi+F=mBZ90)PhFOnyElfD|LC2JiE%rAQGLnJU9OvMRESLhq>E}t_S>*$O~+i~Dj6o?Y8Z!v(oX5sHQ6TCorp z`{o6@K{d^XHGFpAT;|e|X?KggrBc89^3V_7x$?^h62>8dv_5q9o}}^~mTA8Vdv3!- zVMj{AT?HC;h^HeiJ=221rREvzP~?+#%$cfh`HSLka4<$nc>CWE?N?(T=JKd)ILG6w zZM$B=X~Hl}F!6*tgHU59)D7I7FH{Hr&|0#PAN6qSmOWJ=$dz%Sn9Tji;wMK zIIabMb>TA)x^p@AYE}piUVf+B?w0z~FC-tZ2i^xX`rzb`oQ^B?fxGh5=OcOY(wtVW zmJ8wei?yKZ)sb}4+||P$I8ta5Y1@I}~9RH_;E7cRd+ z!QhAX@RUddRoPyT4G!1kZ0G<-Y}dRIL<3$09}sQ;ZY&vsmEJ+QZWhZ1Tq+e>R1FaF z{ADS7Yg>b!=gJm}g@cv)A`i!h@^JnfrcDH2(m|! zP2{5@y}?x!;&&p7`VN?kzT|Cqha+MS^|@pF-Pp6S2OoV9x!1z-oi<~hL_E9R`mN3M zSeUprU`d!tY>5kwMB!P?o(f{$GXL%KeDRwTdT~~h_wwJQv1aXJbX?SeGFiiCIAR`x z&Mfwe**Hn!^t%9O0=+PJF0$3F9Cce#GPL;l9s2kD+#Y%`BW+!nC+*Oo0f`@&i_q1e z{YqoM2qA+rN!a7BzUSS>){8yUG*9j{p@?jD@B|0T-q`25pqLJ29d9Tp6F&YXdsbwB z#%eV(_oLLU^2V|3F-!6DyL5oK;ZgNn)6>H1>RgPgum0{9<3eR;(wluL+x>Z?tFo)1 zZd7uB{Vo?HDA44YC;_hhVkS(irK9qP!GtE!B5oOMDi+IQTLqS0%Ch?4-G$h{UNZ3N zU2g{0SL(0F{;s~vYVamCnR{>~<=z1Dx`wFGTcW~<*5-ZSi{&gC@IsTQ6IIdSK?4_( zQ*XE~g*|9sfUFeige!>c_4i}HW6|KNchG)RN8o)V+DC7a%)J~(zryxmFR6D`>f$MZ ze1a-#EjDiiAKOGz&#D0lC>5K~=To6c%6s5y(pG01*U|SZ;K;>$9ZG`6oqq?aXk=gh z{B95SJZJzy3v@R9YM1^#Pd>~*GMfx;C+W!*!E+%OnRg{{Vp#H_C(@BLTqY1HxdpW}XTFap6_ z6{Ut|Kla`er4YC%_9{b1%9*D6TPm|D#6XlG28E3+y$$*oloL#-2%S}(jxZlmWLb%W z*n_+bD-2u^-Fy=J{I%WCR|Y?Yz0s1aircsOGLl-MjVpQLPlJ$iUpaCACec5BEw0n| zLB4a@{)72^A=QMrM;_4yd&6i^tjOAP++$7;sfQnJ1av4A{BYfuU|$dLK6IhB0gOCq z&F&6D6sv~-03ZNKL_t(Hl})SBwk=7$P&4jT5{N8r{T_YlkX|s@T0%XdTISO3N`_b@ zi%4)!;ORYl-ghjx_fCfL!95fP3(O<@5$x;r73N+HZqOvmYz|f!q zei+4I)DyAn2tLa{jic5n)qsUWs0E-zN;oR#ZwWS+pP4!$usI4G36J~@ij(UI=z5jA ztPy^JY4jx($XM;dUZHX$+qQDlt8jWJlv*YKbg3?D!6+yJe(}=+_)&OErws@sK*Deb ze3v*nR!G!)J#p{=BcX=D+$L;8x*_#bU99ygXjx%_p)(1FWk2>1$XZ)c_e3ZW6`F)v zBVV5X)Tu5&pl)s~#b>!nvA9B^K8aiMDZa;YQlv&G8G1ALov_VC-H%|8MZds0>IqVH zP+hCvas3GyPbdWS(Y;k5TDQ}cq`FxtY!sm>h`n5buS(8E5sE`}p#EL}N~~PgrOP1G z3M{dpZhW35=L{Tz+AtORVEPg2DF%mv0~5Z+-W|DKWiLFU&Y=H!@C9a%+=T0Erz^<` zcdTgx?R8b?9R+KzxDiL)U;6B8#0XuuHPt7Z={xf^u&NG-5ON0|APLKWhS~u3Mq*Vy zB=&E|Pa6ex_K~{Cgg!+L?mu{GF4J!FL9stPfD^q(s0bU-s9>S_p1;m@HG)pB;D)#& z*pv62-{P6whhLwn6A*FK8+hiHJ8#-YLa%f&^aJa?g3b4LO#t+cxd&TMMqva|_rpT3 zqN90u;DMpVzg6r%NPU{UFpPlHg^1NM);2I;;vsFj`Ou0#)CXIns+ z=Mb}b7}?`US{a1&X=)<`0J9f4dJFm<9z@r}!wGGO?-3ZP*P5|UipoOSmUr|YPU;C% zr6$u7BZ6{-o&|NXz&?cZ%OZVU0Q;3>MUdGDg3r{27lVH)xJMj4>fAK0q;tjk$tIAS>fAKZ zfkW3-?muSi<47OG-fECNq3TrmF6zTELa7Ty=zExsb?bYWV{~*!)SiwQ5VxnQXG0my zvNl)E$;Ycbj{U1VC7e$L_OS(zFCEKn1!&(~(=gt`{GGvQ3YZ4h9qik$*Rfrf&aolj z4JBNbHhkfCd>`Snn}6Nw&zucXYbz+2?y9O;PyfoBZud0$j#X3`3o zxL@(?bMg-h*NNwkEUVEWcmJMw7&S5v*KZlO9g5In>mwgf{ z9n{B5MHRcOR=+JfAZpHic3PNM@nq0nCk>-zZ-(9*`>r*@K!>kX75g_Ddq}E49ScSF zV9IE8fglM6K4p?uy*fG@(=AYM`S{R!vtL5YMqv_9;FtmsejS}M>VWV8sl|u*N1vN# z5_?z!cEo$|{nP1vdmZ+%1aq8fIdPJ6oR!D-TzHO+RjVF*&_u-s z3p~CR3R}#1#^*KEhgS#oV`70$4+Tit7r|cnPuGHEw$r0+&B3BF(2gaQ8GoDnDs`u@ z7t4G-p5!kQ23Yn!UOvquQ6Jw;-(NNAntnPZSmhx5R^|E33go-6hhFCi3R$d%z|Nv2 z1JeewE3s7X3S$p@4IZjvoDnn{Ble<1MggtoZPMDi`2$RL#6;DR8wF)*0s9dqoSSo- z(Y!>5J?^_SVw|pYIr#Cd=+;c0$?h`TVN8so36e@_m5t%6*uN{Chc%Hx+?3E5QA75g znlKcWbAtR_bA_>ILk~q-NWBgN1Y0^rC{r$g?Q=I;b8hIU5aAH^0|>qHOjDe2e#+c0 zJMPxgh_uJ(cP$6JO`dvp>&i`V%5Y!odqS%D%v~jFF8?jmQ0#qum%w|6)>+1UoDCZ@3gUXrY)w=m90{p&FZ}o}wz#B`+=U z!B5zTCIj`_;7OTaFZi6FA!*@tH>wG797D~E{=>~_WKEyl~`?uVC${+jxdz%}|!x8%di!cQaD!b&BRkr1jr@>Xhn#QWb zVX{1~!Jd$3VJH@K=fu?^?CCTMgt@3<*&K{SZEALZIS2;6_g&b_zI)@+6G5&=(iXs* zd@aTA?d2_hPx8;M<*W;hq-2XM|gU(-uJ#7LN`#0G7OyJ>mn__;&U~KPr zv6naZDA5!qtD>?Bj+Z171f7&+9q5OcPr*c(F{iRKa6zH)!*6>?@|bU``^Jz=n50=v@zGFGUdqk$g3 zrNcu!DT|Vg`_{n>d7vg?ALcrex!=3GP^W|5KB+%V;=rw$OWbVgJfN9#e~fy>US`;% z%UQkrx48Ie?h$CtKrI`aRyd<(?2RivsW(=klC}&O&Y&{`|8k^qs}Hne-mhIt!`xy` z9Qu<-tV#&&xpf!7_t@{V_m(UClB(6lzx4($Uv|ysut$*%DNf0D)N3nyX|n|*IHgb( zOH&*hxzfSC$X}X!v{&8(6)O6I{ORet=+L-TxH(muu>4-fXsy*fmk-YB03;86B$=3c2V zMNhLZ_1@S(|1IhR_AfP^%-C7U`^1^6w8h);>YYpMSf_94{6+L4&> zsn}mdeTF?NtO}E|+o+vrf|+wA8zh9B&vO@2<(*gF$0zKe4FK3urxa@Mu$MCC4EC%p z>`ii9>xb_cyU}qoc)h@}EKnW+KJ3w#qVNIg8yk!~fiBp~m(|=~i+vot$ah)^mugsC ztW7~PSJK?ivB$)Y$jjXX4rFPt9@x`jPBplq3Qp)_r;M>QDh81|u{Rjlr_kOF@}-wA zV&&uUr5p=e{toqxzQoB`p8gI}-)9bsY>N+p(RE_kY}4i_u~on3es2nwusmV^PVgc6h~8F>tSD( z$Ftv!w|T-f7VGp-@D?@!e+YXM;|kg6jJ$<=b-zm8f={`-ag5X>_Sm?fplf>^yz$@z zbEo0uSZ~>B$}{hwp0H0|zGjsXs-0B3DyM&swK<}!(yrA4_I8T>nzWjFUh`T^eN!oI zJH?)-F-`usTfEg3*y~gcVzh+&cgy`%*WHHpo_mv1Z3#9mXw`Y!JyN8Qvf~Sn*fLiC#!jKV zohQ$HiT!?OBVsQlI&od)w{Xv_%((~h@%gYZ#wH#+hC+nWcaIEa#{MYvr-;bEiF$Iw z%2T^&?j!d`wZk%rZU@(b`SPZ{dk7GgD8UX!@dIZ@f3-E;i_<*6Y2?j z8gRN8-1DCva|eZ%1t#d5*+WJvCzYE5dp(n&z3Fh_1mkw>onTLtLxFuv>ODaza?c8! zfqn58_&E@JAO5w*ks1E(#jlF}x5T^??4z}C29k>S58UI-gHA?RvCpkp-$u&62)-Na zOOs2-)2e+;ec9Hd%*}&l#cEZ`#V%tHH^Dr;e7h6-#)u|sfxY46;43qE8I&Ok}S(Pv2%pYLiwvS@i zs9D9C0~aSk&mN#;uYsZ;U_MsrrceN@Vr+Ze3Vy`?QaF>mB{dSHtEb$vRu7u{>m{B7 z%GQAu`Qcx?usN9FKK4)p`>ZniJ;r_>+>^8t=%2Z-W9k=-u)cv$S%90I-i*6P*z0mh z#?H0MeApVedJ!2oLUtybA%tL_x2LY%4nhbi2a4I z@9#VL71l7`moFm1(R5Ygre6NV71;l{KZJc`ULr){FbNpOStJpAP)pcH?!xN7GYSSK z{%7fm&g?$KxW2@`1RV2c6w9|IdN`gQ{~oJ%wqoxl*vmMpVu3y7o`&UmlYD%_zBfHE z_Q-wHKlILPV4ufj{(bCu$jJ1@Aod1MZaex}i_>b#FJU7Tp&K!Y`N;=Xm-NuZ=?ez>!(_abIDT0Gq6`Jk;f} z$}&q`r)kH@+P4B6pI9gE+T}T@OZAlT?rDB?8mQNxRu(|saF&Jep%|GakzdO*F@x#d z;!27pwNBNas>mm;c*pW>`CX_3UcOMz zb?+wXHLKL>6ie8o1}*+$roN4XN|AmZ?Y`F93LRX>YE3NMp_iWc8B5r=d}P*6;(JW` zG|l>cJc%Gvm=af)BRzhn*J5v6<89xyjgD^|sqa0i{_zD1*xTQF+u()Kfo@6$Ly0|| zxBj@_|A=-8Gx)x!nWH1TBrT_T6y)q0BXbDe1iOyxb+>lY$>#^YtlQDW3v14--TdP~ zeRsWH+k>ksxstT=O|dtZtQr1f`v~T~_iY!$dRnCe*62s<-&pwaCyhN9a@=CiGl2NS z^~e2wYp)Xa!{kBmsp#D=On^mm8@M~Nnjz|F;HFd7?Zle=huC*xSMEATT}f6LknEb_ zZ%JtRe0iA;a}B zr=_4ydLS0KL-6+duCWdfU)@el@$?k?rCZC?2kv9YykqV%kD_qp1(DU|#Hi%x;TiUA zF!oqY5R01#dxIJv@WXzGu^%$_m$EXCv5&(*e&Fw=p1`vKyqm(AguPl)aOfg{y3~8r0gtyl&1#`0kW`A$XP!>gh;&BY3e> zjT~uVJH3NE?)Ls+l*4(~0W(si4*!FltE*J2onb$iO-n1h+YV0^V@5B0kYMoR`}&#t zZ9aZ8b;C0D<(>IG_662Dsn7HBEUd08x?kZQcnE$3&u@Kwh)_?S9~*&Wzkx@!rp^qe z39k)VQFFVopUTT;70Rhm*?_&u89medu-}dSblitdcgFp&KaPD`lvBKzeHjLKSNp|b z^IF5uTd><-zo_(`ely9*KCCbg+`EBtY5P{!)RmlK@20-wD()fb{8B@cry>NGKf%w- zUyuDTAK{zKJ!M^n7fky6UhE5z5?EZupdMk5Y=r+?+wQQo@Stfr>2$;6c-l2>gB3$n zBFMP7;&&%TWgGSYX6WfebSO5ipSfRqV`iz=9Dv=VU4D;U*gyV})RPAHxpVu$`+&qz zGYRc)vCrmy9rjWGGd#2VVZR%D(=0S9%e`T9|HJ-!rwqnocpE zuW;tx{72XE_o#`zxrrd}W4}JM$MccEyA=GKhW%fNtJK~bvuNxm!GAR`|A+m57eU?_ zm9h$$eaUUuN8Mc9PXzn3Q2i6wcYCpS&+c9G!~XZE6+zCh-{wokjGo5O-id<8bct0o z_kSWk*zLVB&#|xN<^Qn%|FFL~Bs#LVAo=(KcUZ)}qKR(*!g}4a&$*}6)6e{{|2_6b zkWbg&mJkxS$cUu)BKE_1YwS;~*Y4x7{}oaFci6k9i>nznV{cfaBk6UW<>jxzzI%5l zu>AwmV38GjL-WJ__t@v-U+Q9y)p?vTFhI<^=EOzzC$Qi8fums7n$4k3>)j9gC(BG1 z#VlWey<71^Tbz7wtOdnWy%2j-$1~S^*K7B7C9jR)A$SiL{|;_HR~1LuiLqGqeGydH+Dg_vED!IpBZ~0|Ic$D$AUclB%55x(%4I7 zu6YuX!@8hp*{rQP!L$9_!QZygtsEM#B=h#e{sjA|bRz%ne;gjE2v0xs7FQBfjO^hN z_TBVttXbm+um|to?dNYZ_q58^Z4Z^K{qNxZ;mSi&jQ$cgpN##gwYB=wf=k9eV(*?9 zKXy8j(#bj2zJK?%-eT@oJMW+?*`FWwkFW=gBVP=B#}uNqJ|gJ#z9g7Ly zBPt5sYLeHm_T|K~KVa@x@3Ykw;t%_$*oW|y%>6gSEbCmv4Zb9Zi%&4Sthc=)$-o1^ z^)~ER9R{jS1Wx}3_VC00)6ApMy1imh{P(fnxVqLosT1lm_U`%a6D7$tj(||xuz&76 zJBRwFZx^Cj&pqvbYUP52$G0XqPx^=b0qmVN!+>5s{P_#DK0m*q8Z3A8t;Sv^k@3N( z=CQvuu{SOl`|kPs_!R7E`qD}_j25DL{1Xo^-w*pWSJ@d&f~KHA|Md^EzV2u}_C-e@ zz-1-&X_Pii1XEJlJBRwQU{#xxnQ<%(H`(eLe>v{IHbAVg1`-)Gc*ZY!s z9rg-r+1dk_9oS=HK8_-b!$;*AdFVIH&D0v~$8r2K*e4^s0sGq@jssQWfW`dOJY`j; zr^`MN{(Zaf)Z_RcQ}5yc++iT|=*;`o$&a7g@BrU+#}P!^^BiWt-WLshg8iONGHP)} z@M$^`PyfB)eg*b8pY-|(<)<&}0OoTMts?u=Ek%w_vfU5Aw_2AT1|am~^@lzFsc|@E`%spdYB%>Z* zgboR4(cHi5sublB!Q3}5c~J@CqmVHu3%A(=^7Lg~VXLAGN&Ce}=6-~^59ZwDX|(=U z>Vw}pkls6D?{TKJdUJ3eC-8n)fiPE&l-%P!;QK>|9%V|Os|wjlDM-Dk;^p5p`ih*8 zw^)0~B?+92Q60*f3@_SkqA?Ha#Fj-6GlNgGcZ!>^(-lVU<)JIN*2KwakhL1rcXE%` z-a=S?Lhh0xy%xJ9GYPC+ayH>to?#I?kV<4zT4iv82cDHm&ikhw$v)sy7(I)HoNC?6za;F9a1{R_GoK6+&f#F z9$~Eq+I!2t_5BdB4^Ea7YyX{Ye)zOu0bx!FKO_10nALkP^+1O2gSvm&{@!A*buG~+ zB44REXNz-toP2JP`mVjwibcB=x%WM<(tv%4)Lx2xEQ`s^hd&0UI;XtFV?6%?>d_-o zl%aFZIWr-@IJ-lFu`@Ybziw<9dophL@bo_fzsDRG7p@WZ821YIU+Lm|+$$Y!Z4~Js z_pkq;yw8%CrocGr{{0;6g+^EmFe|=}aL>zHwwho+eNPATU5o28Y}07m@y_*h0Qd&% zqbDN$MN$zLsJ|lioode&`vIxc!9>17t_k+C(E%mTWIJ%UOLncNbIvjR*GJ-Mx%ct^ zV7Yc>7z|E4aw%`|_BB{P$%PS(rGq5Ab zvnKaxz+UXOQK0eTI8bO!Q0iCB}Uy7TaP`ovj9IIIB-9Osq5PPm= z1xjd!rS{^F=3-lb!)p%OX{s6gl;&T6Me(=jYaV*)8}318U!ODMZJ?SKY%9Kf@6(#5 zP&E7{IV1aW>|=TQ;52muQS-0E}zu!4|+MFci7y|GlG)P%U(X7Ifn~#9k180O0QS+ zK4q0gXVukT8PBeS6tk$3dX6*N4%27nqH_Pt)R9I^w)e5s(R&Qt@l9eibS(Y82JAUG z5qqNsxtk4Pe+8}IPd!%6*Q{Cf?Bb^`My$~bx75E{jxmH9%^>$jYYMsChc*8$c8IgU z{xKtai#_>WDhAH@Yu66f06k+*`6jI6r3#Cll6z9m`-;OR$=>ndcsjhp!$kC=EmE&e zpVIT7RKmF?H#y|?=J3}1FyI*-?h0X(B96i}m8N{)9~=_o=r>f@)hnz!<6`Mr9qh-j zY`FRaWGn_QpbLb(;I&nHfUYX`1#mMEb_0Dt@9%uI-!1?Rba1Z^mFdmW7bDVbR})J|h&Y+mnZNJZzCJ9R1YfJc;oD03ZNK zL_t*B9DoNq;Kmfbg_|X&uq=dYDn|mEl1bsq^da03x3#w{IQ|fHPSNB^RaLM@*9@~7 z+<%7HW5*hBy#KlfA4qu$%s!+mU^%v5z&?#^RtG?uW3O~P6qmG_^=RkeiucNDjyJUWL@P7S1K3mXG`X-L-|tbBQYN?lJ``A+L%5<9~^)&TvDm}5ypL) zN_*cdNO|k1a!1q~A-@i8c)P-KV)SEs8D{riDXHc8+*GKSt^o6C3O{$}WyP>s?Z^I> zdrmp&Sh5pX2lVmrP6g}(_XA!f?%MTe?qloHb3ahZi(wD|1qXx4N&LR3-nM-G&n9}o<(c;alpT=GJ#IN% z5{*p((hSs7GtlL~c|;H+{SkZ-n&kR?kAEg%2sHQT_G^zuplQPO(nTxW)mycg8x4Z(7~&NguP8R``HIYvGm<24=E>2Q7Cjp+og*ZqhE;S7u3;F*L5#6H;j zoh7Ra+>4*Xt)sN00{7vWseb7dpAX|zsvMx|U+O&{8aN!Eu8ZPT(Fy+(zJ8<`j@!u zsat$k#QkS12(CHe6Kzd}LmF%6_Z{Hfa8HHYcI4hgT4UCeer$-eUt{e9_88S;w?Eb5 zQ!kL`u7Jyb#66$AO;p~g`P=1=ao=jqkr?&iD6i4z8y&E}dV?lmT>>g*0EB(m`bKpL zJ>52H44Rzcv$^lK&Y>v+l~d;Tsy`x`?Qryh1Stj!)p@A8-dU6}*Eu8X$0$jrso+9W zDxda)7cBR2v|Ks>(mE~F+dmcCS26dwrKQw;gcyWkNh$vs6ET4hR6GpkK3uTi7wTPUot5e{?ya2Tk7-n1^ptPG1H3xe*U`W@{h^CSQmsor zyeQ37!1X%eKWfitsH(JYhTfY-bshb?wXE@BwH(01`t2!G@8aUL#C_~crb_*N7a@BJ zD6xW_Gyf&_POv9qA2wIVlNb>D-EK}h#ootq5QW&&pOF*l#(jZ{kM%-g>vE*ePnLc1?QDn%o|g{Jzoc%s)nT1!Cg5Bq5D@xJQv1WwPA;;{h>VpTryEEmNp`&e&! zq4t+YqS^6`018i$DmCah>;Aj5Brq2TdlU8eHiUY~l85z~+r-o{>`6`ypC)W)9d#Yn zx_=*y{dE*ecwy(>ILvDs38jvs5I?)DlW6Se{$q)y670`6_tZ^>6;oj?$C@8sr^6uNC!WQXhV|z|T+p?757Prmr=o-kwLxgfd0B zW7-E7n{M1og8P7bDwW~_VGJ}a_XO6#K81>(3VrGq$+)Nb>rw=g6QG2BIn;p@KbL3N zr_}v4fWm#&&&Tf0-d@2y%lwT%wq8agO93qRi_ zTq{1y(daiw%Qaz-tFlVO*?lziS2li0DFnEh&=VtdVjNr>9m+ObyL4*e`T811P20A6 zg+!BJABBB5)a+{;d!>g@#C|gTvN2QAw`$WM_T2*~pF3yb(@z3^XBNSCR%GKnW8WAa z-GOV9y4B=tc_1euY+Ly=>|G5!hyd%h5~=utwy#sZ^|_%vSH=T1|Hn)z7eS$FQZ3ON zPVC_-u_&@7gqveEpY}>>yRnw&CWbc*XE(AxX zR|fTLZSRxB?e}K%FkPZCeBzv`BvLTEA&t9gqBq1nt`e`J=rL)BhF9P)vqSIdbnHpT z$5Wpf)#GYu>!|Z7;}9Eh8$Sknd@r$1oOAI*oHSax_gnAiQ|x74Wb866QhUTbJMyI` zVto^_r}3PGeO#OQU{P67pc=TAK=0?Cr`b`Vad<(}u_p4-B>At!e#DYFvVAZ{wM^8w z!fFUB)lk*AM>pP^68oNo*M)o3Xs-C#mMS9?_KL8l(?cv4>?>_5jJ?+GbEqdIv9S^xiZ`exM!(eI%8F z!;lOXqssVi*0c7NvOS-Q{m27RFk8wU7c$}tPqYH|tVU6bLW7!u-lRa%a?^Ccen9TK z5&X4k4&-)J3MgsfNT-LmD61VJh$|a*PNzQtctHiQ(8fgPzA=?{)m7L>U!S76QYV^a z46(smT#@MAqYf2Kjo|2yG$-@)4(grqF4$%4ng%0Pk^8v!*j0$9Rx#b-t<0doMM7p`#FqQz75B7#WM0m7f1?M>x^ojLf>684HzeW(%I zX_kergZ+hPw4u}Zej5*I8^^j@iRbrS#$(ur-4;*lU8yz~58}eRGDXsXsDsRo z6vf|N+>>lTKz<0JhGY=2+CS$Xj)VWH*q4c1>bL+pVTGtzM0UTh_&nYLoGxwowu&e+}3 zwhbC*xV9Yy^j^k`JKO_$uWIbg>{}bDA8l}_!-LR{a|!B|6XPHzz;O?_ycPSRJ~tWm zI6x-0d6Vp9Pi;Oj`BifmMw*jeRH=9rPEQ7jG=5mfdOPKfr819DBO1HZ@3+ zC7gX#>jhEVMlp9&>`mAbP7Hq$e4K~gVw{2I-m|^um<}t2jw4Am9$0D8c&SC9qY%%z zqwuThURARTo8_y{#QqjL84MfS>F|)=6?Fvzm*8_vB`P0DLTK_41M)neXM22x=|tRy z4VL?e@6inEKfr!MJ?4FE8u5%$6cFuxUrl5#jWfaKTj#9K*ax2rZLT`g3l0l4+-s^B zBJ4>w6R{r*1^m}zis@w8X-M4A$EJ}+GR~I4$8D|KT0*|B)A zTSk8a^jI`KymP5M#Qw+=ldaFwv+1hc1WtW?+%$-Ag-O4|RSU@X&U&Q2(O3*fr}qDY znqtBpSm6-IA4Tkwjx5^dT8CR{ZfVyA9jZn&$;P8&gRPxm z1?}H-3}a84Y*{WnC749tp6*8Q%!1`nSe9qy*I7a_D^)cuPJd`Pz2e=%@kEd=x79 zu?91H{}1-*WS5+L!d}f2d2~M7SEHUb8@|YdJ$Q)bK5V+@W8VhnrR9;sq~aU7#}L!^ z`*UCpI|*&CP*GaP^Qje1;}i6yj~A$EWq2d@>I1NkW@rLFmqCqJzY%-twQ-VH=Gx`| zf%;3Kp+*@!>Xm?meYEf#J=Hb#jC~SiXLBFc^$W1aL_XHd`DE^y`|yoJV|n;k-eZUu zE~w;)RvrZ3M?X$L1rB^a$=s_qVSn?$q~drr8>>la;4x_dQ;DzYsfqW$z&<~C&^*>e zX6*ZPfhuWRf=-kp!XL@-?gf zeIWlX_9h-N{jk3uVs)E_+937h+eHF;^?w-q0(%*5g4mmwzsLM&VaKXqpD1sp*e7#; zdNB*=G)2v~ZIX8)b02)g1LKe|U?6u9J^X+@?rp>2vMtr z*u$p84DHe=6Mq4N&Xi&3(=>pu!X6Lk8gvEhHTBI>E!$gX>&;(UeHiwaZ6l*0#AH`dOsC-+ zJaT;;zYzL#V5g)jJSh@VmjlU`E@02%R~44r#L345O2VGm8;0fuIlZJe6D2WH57_<^ zLBM5XbH>EtK|wX_X}mMMce396wLdDOC)R13u_x?NQR)g;{C{A6tk-q+S>8>@Yl!8q|Y zh5zv&82xeBf6NNsa)K9JGH*wcj|4zdPhu0_7u!#$Cz+)f=IS)I%~~+=l&DDKu|R}v zYrPAUBoAH%TuSUgrtH1|dm4j6B0>>+Ia1uOCQAb2Hld0y;QOXRVpvoVa25o;!SK}n zZP=?%_VG8Fd#dQQ2t4q}ovT3qW!OU@sHjC5JWedo8GDnkhm3tE<&Tx#hT{q4F265g zk9`1h_9}9)jJ>1iet%?d^PxYgQycAl4danKBH5RkhP}1^E!=-N_Up|(3-mxV_an`O z8YdGzzX$tbl&Op~hghrw8T)3Az09etA!VJ$AjPiAguMtaxbv|G#vVAf*OF2sUt@34 zJIt_G+K~`(okf(e=XzfuzkdVvYVwEAv-Yds49ma+@GvOgL3<-Vz6W{*Q3yLPBo6E$ zn}1Zh$=F{eXZ0PnrPdfwhtBF`_L<10V4W3Vf4caLOS|3#dx|mkVs9tY1kjVX0_TP6 zV1I#&U@zSZBqRH7>_3hA%j)!^RHD%6M;?33BRt@Xu$MHwqVC!<#04(Oy}{lr=%0tn zL9?okPLBZ)?ZnFj`-==kIUjo#XXH5xav9NynF8I-7S}-D*TD(6#-In^(bL(|jE>o}v z(VHXexmM5YTtzV=f-$CsIkd0GJm9W1oV}EkTJ&*A=GDuPSuL>`JKlW_w zFJ$9K=3X+xwXjEl86Fzt-a~yk8uxD-d(=0MN)(j_iCn<``?@Ws+c) zA{Gylun)of6!Cbc4`XlU*e65WoQu5#7|Glh*y{t>t9MD&KX~r3yuC{?B(@$89^#tR!BX$ zjbkj5;NNS7qbLF;oeKulhd%=Qk9OtnXq2KSdu?gQx)##Wu`Nx11@?+(S*9Um1^O|j z=UI*PZTxP;(E7=Y)*3rIT;|v(YZ$RVZzY*HaFH_}M15BQ`_7W84#tYq&>>aNaw1eo zs0p{0J~j`aclHMCyT51b+l8?N-H0O*Xv6ZD08C51fGkLz%t z3(lkOQ9ip5(Q8|Wy~#OQVGJF6*{5Oenp`Lpo7q$=*k45Yb{7q8oa#YoJka?#h^n6J zU>~UOPqgt#;y(73=I~?sn*uT@<|GCJ% zjqEoDXRZ4t1;Hir;-LNgl-{FIMaPD`#k8;+oEfkM$5$J9D@8f({}_LGqn*~{I5`I9!iY*vz6XiW_<7&p>JbDuJ_dHDM$9Y z=u?xl-k-<*(axn)8}6b**L1F-LcPlHxkq50bRoc+a>FUG&m)-K)>MA*?t6gIs5bV24iT!0W_8sbO+crjxAWAqYo}fs^vJz=kZ*w;)o0C@DX;nmnHeBGiV7^Avq?8{Uqihpb~p(vrJY%=yL)<(qy zF^Bh+LVMX;s8#Gb7Q!Cy!TxV9LQLodTkjeRI3>IHZHrYaz!PGWVE^O3YRo~CrI%Bs zEWiOLVej#{eujN_DX}MwKjXLMaj~_*dPNL~d`HGUQeOr8Ui$f^$7ck*lJDgHk1j%s zK}yrH6$~kc5jal2UcNpyA zN(zfdiT5qVA0X7%z~1Mg|0Mcm>3HRB-2dr?XxRD0y}9d@$gbqHj8;GHtMaGqy(}Y6 z-VE5?+ZB$v8QPML;0*iA1bf=>?Z%gPGQ2LPf~ZcS&@HS~?&+~0{~|3uWbDHt4S(6c zLs;+6L!WMVR*M(xf83wqIM4vR>C3Que=MpATImI8%{(t$y6s#7{peUZHI2Nw2%=c>#8J%tdnnIk@LPquS+B zICIoQLiv4^eL>%Gj& zIL#uqCr+&&26GI1QhXHbIkYE9A0AHlb;h0?nC@)Tzl?q4UVq`){aeNrN?`g7y6TyH z&|94RZEv8gzh@clqKPvq6xwZLwrSU!t1cl=KkBT#}*R%a_pZ85~p1Fi(hx| z&ZDzt8RVloJu&|zLmsf-lzCIra+owtSB{n`c5oJOm^QWMebTh)^72TTGGu9|6`wuC zM5e(mCx#vq7{q?~xUOo?2CK(r>@U+qKIqH$J+KSG_HV#mJ^G1MC-u_Ty^S+g{d93o zpJxkZ=p*%{hqE!^t|kT_tmN&Wm{aP|3esR7(mp$81x~SRT$`0I(b|u$x_~z;mEo~v zh;A^U+1uWjswWpW*u#YTuf$%4es;|Zxrb*CbkVI|^<~#*3}C&Re+#|VWuv`@H0RS` zIo&opRdNrp4TnqrctbJRKne<#{BXX@LGSO3IJQ)$!?*0@arc_1*4M!ONII81j`n)> z*nQ9&6b!c$H#JRJ*yoRkmk-&?*U8P-@RitKprxp=`Kb34qvb^7xeMDIll2JK0RzCoJv9)$;;1o@jIyx3#+wVdu`j_`Q$$Ar@Pe@dMTiVI5=?o z(Y=xq)i{RqlEio!`yS0b-nkL?mgBB(b@0Tk1qCG@nEQSMH-Z?+%Z z3-^ks59}Am2I2RCigmdA4};<3AE~VjKIA-&Mw+7RugqW+5i6ba>5HqUG!GIR5qjVd zCQy%i2TpYBy(x6<hES-{_QQTV_VYZ{oO%+-M|TvV=UFy8 z+%W`S(J;d9Qb;}__NKSsWfEoUh8iELF8DB+tBz0XWV*-D(2NE-@+>Ul1PO#{4}Jq5aC@KKN3 zUt`0VoZ1WaI$>WY!QEC&>Q7pjg(BxU{R~%8yaoDU zM>7LAw8=;aQm?j+#9UJ^WMZ_L&4q;O~78H zfCBeTrE{&bGCgV%Ti!wsOOJ3B1NOn@2Oce5U-ZBc73ubr33@_>+iO z_+cMU0C2bw4r>Rb{#a+ci~dHQRG6{X-@R;so4GGP@b^-m*>09+0MJrJ6Se*68-wbZ zUE8oOFJe#260wJ9?JrfaKO20_r7&p(Yeqg5KgE`1&g}8*CL=$LwY!)Wlu@Y%`Z%0f z!ai;|Uyl6+RfDPK@dy4c>@QETC+^+GNn7INcc__*MO70YU-c90FRH8CVsYY9$jLGq zJ~n|qN!zJx?gRK?eR^V?sJFhMmPSqz90=`AK1IC6UNv98a?@beANboZURuKs2mW9t zYLB%yUDpTdyGtS6gQjojEg<&t@~U<#4$XOg19IzWI9UCvxt;YTbR7qcP4s_}S~)Q|FYk@m zH~$0nYLXcFfxpLcJdE81`@N1MAbx^9XY??p2;u#S*yE0a9yK2GjH*8Nx|l3oQm@M9 zWiHFVUb&qLOUuGmr^_eV-G`H~pK343-+VdtT9?`aWlHB2`^`5Q`xV&lUrIcx4IrM{ z_gL^-V1GHK(6Ym30O~2YhA*M207}tur(vc-D!YJ;{UY?y*rTcMCqoJkoUYRy!6Lu8 zNQa4gvN0UM{t}Hn9e58zZz=H3*q>tVFVqGEVC*&g zP96SGk@`E(=T=z89wfTQ$}-!7s&>!F{kp-P&3!X`bxu#p6XpLebTW=LPrdl@*!PLX z-aYjxcYFD~7#VvA*n4`uLaR!hB&&s5ePFRKpzW#Gw~iWH(M1ee&6Nt$gR#foE_`-Z zuWyX%rSX2;3}^U%uy>68%ebEi(R}e?;-g(7`OuUGgCjOAErZ+00aAa z3c6I}$8`y}){f2nS7UGR;s@*vye`rXm({pGB24@|#UW*)W{r8-pUaQfYqa*#hPE5~ ziD{qoyxsW+-l7DSjdk0SI_6pqm z@EYvNgEPgc&87cb=vSO*xS2rQgP+=O?)3zF$AtnD9qKh+zLxg&oC>_@b-lL)_ymv0 zN25SuL3GmoSfCDCfw$DR7t@&qVC=>PK7_Of}K&IIl;eW4uICBKGyTwdYj zw28OZe<=6us?!X?e$|idUQ21LUihtPVjoHwX0I^!3W}830`%};ln55iq}ykCW`!s5 zi#;J8t76azD9JV&2R#Ag3&w4HvbsF_}&yB&4 zi0EJJi#7Y#Lf=)SK4QPm%a1-j(LquZR9m_Y`-%FGUUKq_4%qn{AO+i;jO1<$#n@6=e{v7OYm%TIEyf~GgixW?VkY2>Hn)?tg!fPUX6fz1g)(o_O z@jV#pTko4c34O%gt^2_$*bjpJFty9ws)dz1UhakWB5^T&aymR83kWf~?|t8x&H0Mh zPvo3ZcQSj6c|~7wHinzsvjy&7jD4vix_im48H=WI26Hg9fqQBdF|WWrIE7djXdKq8 zQ8r&In(Ojm*sm{8b}OmppWK-!DzP^WMC_-#_;YhFa*=u|be2b)-#Ib*a)N%H{tHj~ z|C{p_v3VX76ew_exP|V_Mi?Wx!e4B{5qZzGsOL|($QxRY@aZs>>hl> zu)TyBlT*>f!EM{LUHd6R95)mvJGYj4UQ7FINP&IWp`$G4R_vM9*uXn8=Tq)g?v6v~ zK@_YfpT*j~L2JJ$2zE&_gScm%3{=7Hp9tkZZS38X+uFR+5P@bjPi{)s2YnZ3Dm;Qn z^N2CaUOr)e%ICBw&f7PGW$HZ@n4!T!AyodbIOsu1g0Fb*Z`%R3bRTb^{($S4u*U{p z_VL5zo4@TfPb5z!vGg+d%suP*ppw_fj}m)Fs&?cia`pPkc}C8N6efw~8?IT7<%^F; zB-X>8OwE(K_G;__nmm+e5A|JoJY)#^$%A20l}!57m5BIv_&YDm>? z>f<;Oz%HW#{p@NfhMv}dG$@%>#}H^fR2}M9C~<*$5tjto=zV3k>RWi zorY3s=D?xy(t}Gm#i78lg_ug{2j9f~9TUNHc0$|u-CFCs1MH=LTb^W_&>7hqnBBbW19ntFw1jv#QQFK#QI;9~D0RUKS0r8?%{`}roMS(|0Ufh}PnxUJ zV4Q&-V)Iw+SmYD-wo2;(L=By17yM;SqBJHoX1I5}Xrz8(Ec18O{1(dy@!r$cTQP@0 zI^4KFQ%#pQR+~mOJ-(1Uu+}nc23YEe8^l=`czt#>yos&qLfe;y+qag0Qh7{0xFpiM z7JJs$FWhjUUPA1<+^3Ey;LKaV9!Q{GJam3TDE;AbOWnQLLL@U2^v2}w)^^2RM1Qf4 z+Xt-H_k3$OecH7&Xd(4Yzo`^kwR=f$x3e)J<#^z@$%i$Q&nd%k zKJ^3kRWbIc{O|OR1H3j;Kk<){ZW?KA`}{zQPx&_Da^~w*i0rXlDp!GC(0CB`a&psf zKZn@+n)O!`+Zq?_z|q`t4z#`4q3L$zP;;=n_UE?~xiD7QC~xzE!g$@LEAUQXaA$4}xV(;02}H>wzI{9k;hvTUYxQs72|13W0=c4vDLQG zba=xDKN4e5`=9dE-0kbg04q0w<%JdN^E$3w_*ytY-! zxcMWj`l&Oy=h78)e;iOfhLQBB-o7I)QIBv1?8gcAHX37X%(g?Q=RSv`Y~A#9NNca@ z?vpLi!a#EL&%hq|+*#q`HOs77!d{jwf`5Y9Sg`jy)<`z?a4)pK@8uVEpRy4g)scVa z3Qu2dj{FI+A28RNN@z*QHg?bPP%i6nkOXyg++P+l; ztQXDmqw!zlZ--^Nd3m%;*k8KF4B;NyvFiXb@1qWXz|DmdvzMyaXX@$9XB^SXZ?q$8 zKRq*GyMH+c``|kP8IZqT?c*=%cDIhV;_7_;QewJ3#K4b3~CR#1Ky)!Jr%h;P#c9R}_ zyowK^z7LzGjcI}Fc-0)xOLEw%A-=!sG;^9dYgf4;&#`YEP64fgJyjsD3CGS%=F2vV zH#T^}7R+v8k8JEqXDe9PE(AqbWnNU8%V`Xq6Pm4EIFA=@i`>TzeiX%HWxN_vMdnMY zAShy@)G=a@u2f*1%04`Gk5OWw>uAgz>{>s&u~(b1k8#*x>=m8em7K>q+jzuA8TVd{ zy>AR_=#l9T*oO;92f&mbvQ{?m;ikhU8v9D=BGnr2tBm@?RlmahkRLm1rE;wknWSLs z>7=XKjs4{4E`Dinya`O};DBZbk6P_Y{G5C8ls;14r#y&l@eV#>vxJZaZSsfeA3o`#WQm+Rj`+wqRi)-TKsgbE{E%$ zrcYsOy`*6R_FUp6XXw@e*jz^{AK;h5LB-h15sbYoGl%UMFTozD zjNJi7QA9micF^l{mMf!y1i!|<8gU2UtjJ;3l6ENf&DG_u`)AO zT#y3}(pNd|3gg=df2O`M`N>9>Jr1uB_Op0u4=+>8O*JXO=2LYNKDhTsR3O{^T9Cl& zV%J`=%??hw!{Jyj_~Z>we0}7evY##;u_D|8IA%gXkATPYDmnSHM9M6hfm+meZEKp= z4DE6GHO-wyD^AI%3y}l-%FFT!?7vZ6dLZ5t_PbBh=AL(sBE!3dyD2iYXCUA_UVRvTEh`~Z-Y-|)4OQ*mwJk$vOnxNi~riVId+nZj?B z%EQ_t+(xO$#q2-Do?{;mi}0;?T`P4LvG$5KY))75tg!tD^B<7P0qS-&P0v3y%>lTB=f&CT`puvXR}t)lAyyZLraA zTSgvv7wX3`7Jag>>YExA!f1Fsm$p%#oG@W$DHPeUT0?OXTs(h}c zUc0^3a_}!-^SF{%4c90e>e0#9o_f*_3>{g(z8or6bmq~1jz-Y4_22K~-)zn(nSsxz zxltQ5cX=8ww!UF zS}&*)i(Fp~Ri=jD1{3L}`MmH=v<2+tDzK-oR|y%sYm=J!PnsHvCR#Akvwzat%hbn! z&6#W0VNkDLP5tGo9#_n70XH(z$u=rV`=o2qALvX`H|Bm0zDtGIGQhN|b^a z+My&Hc(5<`-BN8Fd@UZ^KuAA7C*(aNuKa$S&3VZGsc^J)D>2EIuB5NA}STwz*KralCFYHD9F_WN|Xc5&afE#^Ui3-ew`{pIq7 z*iS=V;M4l}UEkXmU~g=~KKvH2KPYt;iv(uT1ow0qTsgk4f8M<6!9zf}ns$__PHgta zD<3dSTHrs2dQr5vz0T@{g_{ zY5ILS#tYOJFT>@XBo0cIGRC|GeBcgSZZ?K%-%AaVGzm!_LYLHkgpUu4P0_1ny43fW zdjE}%_e(>z;&e+>Aq3UrChUEGY+t=I+AIg%F7{f8voE!nc^KJV?5Dd+tm;O67Tni7 zRec%r@(UhgC;}blB^Sfgqlk)h1tsrMpcAAT*Wu=fwbn?opfo$zLj&5I0wkv$WD1(#1H!%>SYAh zZN&c$bN_oBzn4V`tHvcs+532Qj<)GwMr8TuKIPi*5uI+a`33mHu;)|VJ`(oGeTZdv z)a@~sVlVdWOpW4QW!YeSoAI)wfp2f>99VYq0Tx33_n7&09f5?|0?pucC(J-{OOsVoQ^e0`pV)Vvma9;0bk`v0sEf*wrM-NWx6M z^eA3CJe=h4M>O^dM+U@sU{mVTAfHe~+5jv%He_)=|HG?qv{D5Tyky?6Cli)Hy6O8o-- zzlc2#8PMnoiy$*tp2pac9^bNGDhn>#*s zoWr@F`yzXoPwpGMrkCm1rPrDJw)NIf(GDrqq(O2#W_aS?EB$kx-}-o8IljvBvemht zR_0=5IJv*TS*P3!e?IohWwLIa8D2#_73%RswI)g`Mxj=j!Sa&(i8B)|O=3^=I5FQ? zn0x7W(|csFe~)j#K8gt`RlU`zJim+Bhb7o{ly%AzM_=IMUmjuq6v+F`Pmc;C_Pl|z zwa)|BUW0uXu+uxlpVdExP$0``~-)O^8L? zld*sB1JonG{u51MDa&)y$$gVHlt?{I`hAVDcMVqQF!lzAK17kBSU*tL)aUfg58~~6 z=G(AmFpUl?LZ5}boZu-IcSGCbkbBfKusHk3+OxVGqnUG$eqcw1F5fggYsQJwlTD(& zn5_JwL`|nm(^;Cu2(;nhF#GEm7NKdd=-V+Cd8?5cD@2HxzyH-a&<uk$-Y?&}@f@nl#PHj)OuhkGm{wXtZNnnq?ZO|_5uPVr1YWADz%G~dI% zaRVORQ>Q)7i>uANWYc13zvAb2_%V~rK3zzT7>2>U7Wsww3iPHFw>+U%{@mPG@)U83 zOt`B~^P0>9^y>wXg8)k|N#6?;yyndY1)U&3A))r2@SIpbAiN+r5F*LuM?EN zS0P^%mCx8wD1%>MkJIfj^HjVTdE&MP_P*54DTDjx$v=bVTE}-!x5~SyO#Pz9E0J#f zFtDf=wFcEU_grz^;Kh5vXO3N>CyQCrL}nj*tI+gQ?uR-Sn}LejDybB_bp}>Lh1%5; zl*LY1G4qiG`fGDvirMtryAZ#iA2Ku!DHkHo$qakl@wS6Jc)k)V05jr#5ZDZSo0}-syauN5XTg= za*a;*9uEwZKo4C$Ya#<_kGeZy1GavK`|9`_3+!lC&k=wz% z;%ms*L%<%{LF{WrA)?qp9RS0L*r(&Olg&LULG-eRnPEURRJ^$cRG@y)2FPXl+t@p5 zN+s8HK<@i~FMF{9S8HFKpOKahwcToj{#MpOdi{si_d9`2*dHki2bsqGHPm0Y4H$3k ztXbI9HTMzx;4Nu$N;1=+e1T5PpF9A!Wew7ZeX#AKl%lnBL!(U#7`a|*L^N-kvxj}J z!4YIfTkYnaHhigGOA{zei9J=0F6y1r?QGP}nPX|Fn-t0&@fi*joR|dthfp7}H-%a* zQ*Y{?;bBgesJGr@zN>nE4Jo{~1@_IE*mq1luSS+jVD7^j28Z|f`UThnl_VKCcp^{N z?|GJ#u%{$QN~wuHy{4#Mr^cL{ynwagZ+Bh;5H};-h$Hdkp?cM@X~taQ$26Wt?5CxK z;Z9R)aJAhDZAN%z-{T--TRGuIYU;kbqMs<1K47m;#U5vaw_U`ZZYrKrU_+yeW~|cr z-TSadsYP$4u4Om&9M$to#e`3SpMv@p$&_I%3%8dl`0S44g2=z}a~@a_hm_b8^&ccR z!D&@zBJ=UDIUcFym0&t};POi@W9=(mfe!1p!;_8_9s*_cuu1&H{cvs-GxpeT0Me6={gc-2@N_}uC`W>Bpa=CB`}|D7 z;_t!!@afUsfyydMR$)~CNi$}gV88SY5h19AJ-dkt-En$UxdbTxi?wp9!vJdRv^a{v z*y9vMe^y64>c8NK6W$<6b5z`5Ym;%V6lJ^-d#Xs1L6B$|EbN2kE_&$6r0{#)4c~}s z6=M&QZru7zT8ab7X$Gx7274pU{L+RXZ8^uem-CB;z5JTkV*$67_!|Ex1>{@}tgSg~ z>VUDnL-Ch^zDD0uut&GJa)bE0u*a6-u%mMS9gj}1`>BDu;fq-0Q>y+skys6TwHbSo z1(Q(ubDB>dk)6bLObzTYo&D0nQ(Y-{k8AU;J!f}h@LdZz3m}{ zovovDdc?l(#^DRFrx`9JVaCP1fxM>}#}-gK)pqalj>LKjze~1oA!d(PhxMInx;D7^Xsr|< z-%&vb?P;D$2t17$vycLP*^X|k+H~sJ`5lx&001BWNkl@COjK%FRvJ#A{I zQGZga1s8Z836i7CSlh_M4gPnI z_#=`r0*svF#a@$ueRrQt!k*~C{SHu<=d#RwR927J+YYC~b#3=L>bVxFi<>sNAr#vF zcwS3A>^kUwCH9ZAe$4$LbB}p06fiW@iA6OnxCyfSWZ!pfHSS3VrSA#*J|M47!~S|D zIthLr4e1}=W7ZR7sPUA+xkcX6sXpy(pkR9c?C!IpF$s{VmRU*+1&uDKvlor82QCYcT)ua1^7A%AE>r9cD&-wNL@@AAb4M$c09bG zV>{!TuIqyf#%C4Cx=xYDFSy_2<$t1cq*?L+b4%(e_oRog_ap+#y0y4p) zwBu+iC9D8D`g=M`r&_?{)GtDxPUp@ zohjy=Bn;Ra6ao*X@t{Jto=`6$G1EUGrTsP_XhKWmK7y~N;8VJQ@&KYL8wGkjkgzj>Wl?so{anza!vA{dWKNhWm>szk%osTl#~gA!UJ4+9vVz@2mpH z1xGd9B3(?N4KSGgd|1n4%n^~qJf0OF zZ}s5HKTA^ojq&zaGBr`I?>x9*6R4wbANLbS|3a$b4(sB0S^>U7&$|s?K`9nMtKXlf z9aNfo9cR~IBG&f5=>E@Rj}1cWR87da-0S00mJKM5rvq+mLhh+fFRbIMcoQhi8n{19 zy#&8TpgFcm%ORFa4>9>5Z3dg4Kh-`vH`SHoSq>)cD1<%v+_Y0tfg_%+oxDCq!anbB zVYmJ!?7ROJ`;{qZDW%^j6Tm(xRj}(gp#;lwL+Cn6KA(iClxl4S>baZWXoJ(W4=JnY zEF@go_o8ivns7-p1Yl2prMsENC=biCn{Z3<(b@<12(Q;DJ82(muRR_6Jc&BEhUldI zuwT#p=cXH1Vb7zAtUiFfMGv*WKDhnl9*^2nAguZDI`(X&bAf;v(_|)r^Ca*Ucdyki-R~dVB^!Xogg>P?+Idg$1`Ly)??tH#vk!{*z&h;3uxAqGkXR~f^S@p`R*{p`U* zns9s|juJ!cWvbi84gla2{ATh%=OJt(w3(>3Q%TWDrBQ;|%xJNxxM|MhKAl%kFhga} z`iK1=e{Aa!;-a)&DLoXfrkWNMvR2%SgTd=e17Y=e>Pe+Z+BU-1cz-H)OU19Twuw2@?MMo|=r$+qZSjVC=JSw>E zuO+`lzO1Hkl6y;$xKKN6ogD}$xm`XI_4r#lN(jG>T)ro>w@hPd4=9}*27YbDbI$|z z{SW&uzv$M@NlAoFGMCS4S72{* z$(>>HckV9&zZdH9$rJbEmCI)+yyp{uQ?Un$mT;fO(YJV!f7t(Z?Ad$M8-9MfE?IEB zBljXYr{X9)j7?2UkR37jcnlC;rE!gnN94*DR>5E|f2XmVNL`WqT|vF3{$3*9mh+ow zXy`T=wZ6$A$XH0~v-R}inl>=nsX@z2nNxFmAf_J6ocrDf?Clp}-~FH1>y2u{QlqlX z-UsSQn60HqF`aoc_Wcm&YtP=rW`mE8zUd5hh@&1%%gtkG?qR=|uXL$wIj3H+XCARn z+&kBp%@OxBYe3NV(p`_l0ZSB6#)2F3uq=Te=Dd!NSd>JQG6MHtO~AhW5&+u&)!Hky zF{ig(=d`2Quq_UWgrbiHoaF*rm>p5yJOBSl~d`{IlMsqZ86J(+ymW`gUIhDOt6r16CiM?{}s7`X13G8c$FgiYps z19*SfR}1bpESBgVY{eckdKr5mU$Acy_BZ2?_Y3ae;9G(nL>Fe<7u-j2E4|>0%b`ZB zq-XdE`rzNY1+8J7CDUP{03w(EO4S|@3hcSqn9G~O$GNhUW$p-|YKl}xSlh+tqHJq8 zQ7PDei@9$vzsLGyz(${v3+J$y3@73Q|69jW7r?{ryVxHX>ke{Uk3GJ~0-}E)wAZ(> ze)(o&ac$rO!}=k7Cbv*L2U(S4IYUC+rb6B1;m6-C>sazoA)6ZmQK&!l2vp@hep+iJ zOWB~050^h_?iVh2_d|Mvd$8H|Vxc@vr0P*WOR#5y7J~ccF7~^@k4hfl7tTW;T=%z$ zxA_ketTa7_hI5!@>A{#2r541Z6hBL8#=n7>%9Dra?TGcoQ;_(r-Uj!{#qg=By-#~w z!ajVm1}<-$y#2%e?>q>5H=x!=Sg##oZ|o}U<4n};zNzNk^ik=m*gqIwiD`FB#-6A9 zx;xaIHRsE_C*>)4ix)7L@#j2 z5Bp*NzdVe`anS96(9291BiI}N4EsGRjHi=Qk7`UM9K!zopXV>^_~3q^q2A4Mh(y>^ zrP2)i+=T~_m=C)MeoHFydA=Ub3TEs{13?3y;Sck1IyKUH>}B9_1@AMAeQk69iqzV| zeftT9oc2J=?z=!fSjp(2BAXEhw<&UZcb}o#$|@^QBKGPS_Ln8>AN)90%c7faIJ0*X zAc^oMiqxcHyc_Ok#eM@ruee#cXQd+c1xPcW&hBwCW$e6M@50Zi2eN5wLk1nA)d7&CIqVd@s|@gTbHaYos>52Hkyb zbdOFyi|JTPqQE^-PcK_af7FTVOJk2)jp6ElpA$AUvp+AvUjMK^8Tl?1zDkAJ5$S`~8-&#@11@KAwyE?;E<>GpA8{{Tj-<+hnB+&?t-NWFM5 zH?_H2HlEm}XjP{yc<_%8F>{Y#h1+){Clou3IT3S8ME*ML%lp^;u!pGIblRneKE7|b z4o$Fcih3P&ka~=arLaY1>_ue$m~i$p>{$;FJ$w0BJA|yGMwp~S@hi;c+1~cg0_iBM zTbp`L0*)J|E1prTn9&tvVNbJc@RAu!lp?OIa*63uzV8 zhdS!w9CId~a4&PKF`mC;>>uYux-Ji%ZIdy=zw69Ol^$KEP$%Dt3Hjp0Ot7yA>ygw; z=|$-WTXyb*n`)_E?lztqDXg=b^kOY-m|_E8Y)eC*vNeyBP!S7?x49qeUEfVsdIXJS6hmDRa6 zW8rAN%*-SWROVi_)_RtJ!C625p_gw|^8)Poq@H|yt&5yqlQZu7sn5l3IwmLi*dPf~ zfYK+zV!=xn9Z$0St0|s%6H4Z}HIQd`d>rZ4d@o<#&i+HLt{^maE{#Ez# zIUYvp5qpT%{;cr_PJDbsEPf7;_2kr(K?!o z7;x)j+##a5$1;wtHI1iAC~hfEx`n>yO6hMj_qLHH&%qfHVT=jz%W2q?x}>;e8ZHtp zMn$My*f-7mM(c!o9OMM2VJ{Vc^y?*J|7WQ$N?UHJUla`b0PJ&DHQt2T$Z&kuTy{V+ z2V|}j4}8T#5}A-piiPClBltAC_}pPbo3O8F?s2M-OmG<-x!8uWhto!!3HG^M7Gjnt za=+(Eo15KTClMRk#ppA^N!Z7-Sis5$&R+as>Tj(+UE!z*@R8V0w*VED$(k%>K*<+T zEs9lKnAx+~%Y^55Jd-v2iv3M&?MY7P)KS9kNa}?M1_x2aJPrByh9Z2GPk`IHxdb@@ zGFfk0%SiXjMepX`O_-;3ncDhqvDar{9~~8yPw~D9d-DS7YgOl}w9=yFCk_wMiF>Z- zP!f|_`k2T(|94g7=y+>T|J=u(NBwr}D}hM$p1zlN-kQmy^!MUY=Kf4fc~Oe7=icy(m9*cT(<(kL%Ie z$4V|T2-a(m(J7?2%Gh6cWAA2bGM>{*DZY9E_8>28{TbB1wS3ei>i-b-34G32^Qpd( zWBZu!1xsiB%>5L5Oz+_opk9)OTD_J08n2Bq>z9C$%-C1#M!&^gt5g~)hxgxvy?F)o=X}QK2kO{`E$c$K zx4q8X;{YYWKKvz8A6$jNeH3O?r$mUa^YVdas@QnQ9IP-#y|@o(?Qlcz{bY+!IDNLM zKz%bc%5)2+$6ed8bY}U$EPMHa`&rmex;gXd{fDM>_F7F6`22g=%cL?Bn=%-COze>o z3wUt@c%(wa-Z@RH9u>rBE=eu{`MX{|3NQLtf?QyaIX*P{RIm^ee<PbR>TJO0POFjr#T#+;EWA%=yjy;dR23=I`)Q^1MPW_=SgEg1rRHd7#xd-Mx zM6Ze!*wEhN|3T3)wldmkqXYNB7)HegbzT|UE3nU8N9?<{MeKX5QBtgk4x-c=upe=@ zxjO1)L}Pzh!rtw+YZ3d!E2X4ZeuBNKTyx3iK^Ljjld7FB!9F%gI(M|WXobOl0rru5 zoG22$qIJ*M<0uulUawr&WjtaZ%zdzgS6dp7_hEn7%eTxu^>~w$@B8ra$;tO#N$4+S zifu>S`@lR&-3|Wl-&I`h=Yn+Z2OV)naxiegyAQTrC~ zo1TRa%wkOaH8jAWAK)7 z@_-|_dXfZvYV0MoaaoqN%Glq%LdKoRJ%GODUR0GuYMdop!$(GQ@9BhV==*_2d#6!j zmp5|HOW;rl*>z)wMR+)hmTw4E>*UL{RF}7(`+E&4N8QJVU9Lq9u%hcF`5MEMs4Kd{ zmsqrO`6le~(pm65W4|K9q0}Rj{>0p4Bj|}v%?0iV2!r{T zZtlzbu~!GNw>E5ND9lO@PxSA}xxf3$YEN@ca24IMu@~$wFToyt*3^zoMVob3)v3iC zug9L_qcp1UnXxYf%w}HVRHWd?UW`2-YAKeNTT`i{3z6dag(xLC?{1DLV{6AVxsTcl6Y!%96PN0R zpBeEKTjj1@F%YkZ{^rCGxBlaShH_@;Ohtlh#^< zYl8h%4_w{BXHVR=|6)%|7qXVR#Qr$-cr0g{cxVaN>j*tzUogLT*t*r=leQ$Cmb@DK z%N^`_zASfNt6JEfYz|(FeYA!g_j$9n3kQUIxX=APuc&KL&hm8ZZ@`b()A`*Ppcs`F z@7|;#jjyIYF<-<*8oKr{_E>bwF9CdX5vcbh9*EFSMxIvTzF(enbsT%Q#sbZ;zp%-# zmz+Hv`xgiIshb$}|2K&BLmD@F>vtvW7rF0Q`ZZDX=g8 zIm?Cqu)l}BjyG?5%Jb}BvToHh=9!MtT#WC#wlk<_Y3&QJFZh=SLx9+ibd1lUPuNP* zyjD^#IwO(z!r||ZEi$A&-4H591`z6D;c+?ePb$C&C_fUY<1t6c4b!P(5~~ zfL!UX!(K|a@GAEk#LUB8Rh$c4#{TZ1hi#jYL~QMOM9o1;Mm1n?73{AQ%kt{bKF)$) zdZ&T=1L>%?E2zh&L*TYzFviV?9N(!@*uXuIV3%IZ8)34~`dve+;`nN{Vsj`=|KwXV z_fOU0{_;K8mqX=%r_QXOMy!EnOsmGOD&xCx$ex%s` zI(b_tr}^q^-XikMy}Rsj`n8Y_FJO$)v+y}Bj2rCji9yGW_Z!Ozmh8N=#I?J8k9JPIF1iwAxS>&ZA5-qTbxY_j z_PD(4-ZGbU6*7}BV7hp9lDLPzfPMQO?BTw*HjB4pzzRBXy>qiJj6`~Yy;!x8#Hz1X zQmqFm9O*4}|J88pjmSeM?tNI}_m=e>d#q0OFQXoooO}8^q<&Pk!(h+vpuTYM@vMH- zEGQ_`jEzjigK{I(_jCrhax9<=yQyEJas(4WlpCAHl1ln7n0xhN>{XEldp52} z)(R%^1GWlW;w_P%5AP=2lkYn6SrSkVpZY^c+1Zx`Rj{M>xnSMp(Vbya8HT$~Y&XXq zqmEY^`w8_4K0xY?@)qNu&F`l$^+NrqlS2=25cQD8)Gd;~BQpt)cDS8aX_fx<)U98_ zUIXY4aPyyDh&N*Y>^djy3eBy$EVCQOnsShz*Hgk?Mdb@%?60z(N#g~DT!)xMPdIF& zK6PK@F))o_KhW4A8F)=q_gD_>k}HI z?>shMe0XRq^zKsjSX{jY`&+PL@8u_$`zPSPG?fpzn=mfK$8VhO1xCz7ebU;^Jx}GK zeZ)QusF7215DXofdy6{t*dPt%AnUEBKGoJcCsT5UK>Ixzwk7O?-{D`0ee4O&Oj6tv zaKDZYBmCBHqrRQ#mjI0bn&l7{xi1g!H})UGBeG>$)qd(%V1HSG{f7ki4;xcoeS$Z; zM-MI$Xr4WSAP4W*`>b1{{hn%{_fxOQmmS@*_bR=@qNPp9a4APZ-I2DGyb)5YPoXvA-XkNkn#L(j~78`41 zMdoS@E1O2n(m%s|d!Cc3V->A_zA`RFuN9*%!`xTp2XC=|(E*;0NzZtl(kHTX%H6fB zgNJgqdma3#fl(=`s-*wmmizrn`9Wy7TYxUclIkF_py7kCf6RT?z6twBWm}SE;Zy#! zg(eyE%)QGVzO~GC(lZv%b{t96DJKIBkF9hrMZM3s$DeZv`i%Vgvidpp(7y)zsPuEI zSP+MA2XDP4mwy}e_peo|1ynDV^D^MS0SMxCcxw?p#|tuqV%o&OlR0WKrq_QWU=F-E`_PnZi9y&RF37auj>@$dYV5I8XPu z680~~dIk4OA569H+>RckXtMubw%@oSzULz}0opS67-WmR=Nc7}vo&REplQP2n?lQO z>B4{vsnb$z9p_u`5>lCA4|f0L&;S4+07*naR2I9@cid%qTe~uPF?@}AH9Xg_WwD-J z5B)tvShT#@3GOZ=H)J$0Xp{hjYPmt6K~nVc8w8!3>d;2yEpIv=!$g@}a!oF5ok zXx#EbDGvDHa3kb`wcj+tSj8iU2SP&kmf{libb8m9l|>e69Vk)(EiE%6M;%Sf%A8Hb z1L1|o1`+DK_)8;umAk7%v~~F%Woe^=d)0lYxraxjW$<&!j2G#}7|E`O+Irr2(S_q%HVHBHe$qBztECtV?oF<5 zz$`CHCrqGeV1xZ|x(ZN3d zm?n5MgDz7~d(h=L_PKe>!q(bc*?u-o#?EbFQ*WQ8jqK!!pk5t8_A4pxiVi*dyD|7iBPya4%K5v1o>Pr$eLgmmIg^N5x|C7#Q=ikKU{s zoJ=mg=P>3Sp*r?E&hH|(JFt&c%XARwfb_0ly4~4|y+I}SQYgWGzB4~ut2+78h=w!B z{7u-XbHO^~5pDdva5r!a>Dk=pG+RCJ#mr0b3}TNa-x##`J%NuZuEEQXRrW06Ahb7y>`sF>9wRH_UOV^&CiX7w8(=R+ zrynPR#>1aN+Kh*{!Q7az(ck)^Z+QHmWZCfD<{q(Nml|xXKw-6IZ5(u;jNLb2zbTNG zOWjMA45?fhAzMW0v0^c>hACd4KJbTWwRq-9WpmFak5mF5J~`QV*pS)UU)(o&)Tvp` z-TBz5K$}8Z?#Gn9^?*HSO5Z6|){H}hk}35ln|*gaGSabFe?`mcGw-D@z5K1%FDLCp zHj(=0np}cwtMLFvCyq7!dH@4lXJZ>kKp+Gv;`zPZcu^%ax zE@@3oh+L;=Vj~kKLWRPAOkD{LpOoVpi<0{b)XJ$d#MY%LoaHHfY&yWcm4rR`#2Tna z=NKj!HNnw9H%n}gX}8K`>rmnp_HrloMJS(~eNv=e3FOGXPZD2-RZy0N_AO~}&DOg7Ju|gTD;&Ppi0)x-B4hH^C#-60cnGXH{-2;LCF!z{T$&G5nJuBQ;PgB@$nCEUG={gFuE&VNE5915eU!%Uj9=Hzy)sgfV zR@HJ8wvxaJzZYIBS1gX$Iux4{QU{)*Iz`JdcN)$6F6@&O;l*f6?(q~y6wRj*d+bwV zT@ecbARhBTs>oMQdyO7sEws|pq%>9tHsbzksV{^30lDA*L6!78+@0RAiA{wCV4C}p zuyn~lmr=rAm4hlQ$=XWUhv-YT5AKU_o>wN?BYA<^g!?#;s3>5EIyUqIb;KU5een7M z^=MUSI&l>X$G`B_A@&lwFI__y|9h!N>?8LiWVM@mn(~%>duOd~VM zjvUuVCb=u04$*I760+^2MR%XY!>R(K{cpm4rxNSh`l!Xdi>>MIu2YS?z&Ni2tv!xw z!*Vce(x{To?wTdl>X>^@kh%DF$4EU%4Z#>b zGV^InoA==BTS(~(jWryqbt-=u&Et|Be-HNZY|T?YRC^T5&Qx9$*qLg$PmLS*f_Ya6 zJ$`hq+pO>b1`#3#I}8r`yOqFtE!Xnde{(Nkf&Dz+jyU;LrMu7xGE|;yT%sQQd+JAm zl11pZQP7lty~m)VMRkf^2Cr|llZ%djdvkA=U&Xm#6O{Zd&`Wiu=BXm|?C0|ghbZih zO)6vTR?`&T3p=VA)hM8n%VC#Br3q~?m6#SBj-S&l$2)&_2XRkcK7LROMUe-vUq)}h z{X{YrDMfE!M+edV@Eb4_8b-n2ZlE|o9rj$F3`v5K#!*v|L#N)1J!t#*#^apdNd3-+ z=!VdDg$2lsYKi(0%h{=fCs=`CffQGAQGb}NWS13o!B`ye8eaZ1O@ESl5U6EyFP-gs z+n;%@EEE*n{3%KZJDvKE1N9JAfpk_d@7RJ!GoVKtB*1-2Fe}7DeHXd-Ee)@`*BHiF z!&>zlR5x-d22A_q(;?6!!;msL_KCDHmyA)|O8#XFITLS&UimtV(=Vh2r z@OW9U{=xrGeXMsGS|9xov#9r%QmX3rELzOW-uS)|^qkmpNz#lD@EApGQVqx}n1n`xb2L;EsGrR7 z*61FE*GcOF90&L%26Lo^^CzkA`pEsDjqlID)`uBEG_xZma;Xm9;*MKBso0GqEa`a4 zK@MGWbN`4v>D;RKLeI9jGWFmfgEH&R(V>0oO|R&pGam*0(V$ua|508971*#!yKj%Z zS-1A@EDA-X}$24`k^)U zdL>{KO1-mFvS`k%S11Z!K?}zN(l+MwDp~s2TghX%?pWj}t8!63LXS3I(80PTZDL0AQ-t?d0NF%}=9u1*wfaa8GHM{taIK z)$4cyoA3@^{`LDz0upa@B3PNU7-m5_-?7wTjrTj9PE*uKp@Gz9=4i#`6ZSI#v>K|BtuCxnRJG7KLqt8^*sHFgmc})eUqu@IFHgkq!W(? z9C*l^rz9$|n4q=*P@F zN)aZPCzId(L@6 zBak~Tx^G-beI6i#xn45tHh0`95j!0o`lGVe7TR*z*`I~j@-atc`xzcL(;><(dwL9+MBU19>N3sJMzKtOZX=>NqQLe|Hgq zKV!$I#j0yX_=DTS= z7@S)Bs^1umJ(a=1CAkd+{yuz^8OmkB#MZ<>symF4N;cxM59df`J4JCiJs^Z-yOtur2cqJdEj$-*X74VSjV)^HDNfSe=dq ziq==`3Ug49?-TU_`v^T@KSPWQ+*i#hh_rXohggDt2R)?~AQ3T#EpaiNO`%VufOd)u zSXuQ*eFG>wkeiPhy+U2ked{%uerTFzT4%4WH|ya?LN8JUY8Rh!O~Mc5fAllcRDYKJud+GFLR^8u}wZa z=wR{ZkF;G}*ADJ|+d@52zZ(7ruLcJ{m|)dPH$!keBS;QT(#T2$qwph*WbSdB0f#?T ztaXEh+(PY*t-!u?J6vkih&7w(d^d29IeV>dw|f(vc73N$4zPk0;|$XoZa8fEg6n&) zCc_c#u%|)n@A*E)j={iMZI%TIm{&Fs>$~8Go2kyHF;TjLq$Lo0nk7zNMhocCTYnaC zP|@bZjT*&2!IOF!9?MJ5MNd;NaCXX(=L3E{j$K6P!S2uV1=yE{{H-eqlwghj_fW4V zA7C2>J=`y8qel<(hCw>I4)zEb)apPEEYhBH8Ev3{)_ha=`nffu+$vCC8f+R$+so>$;0UQwgayzY6|6&_3Q;m6nDi{qn`aPk#*2%(sV zVD2w#|DEQ(v6uf&=mEuG)%@@{@BxxtmPSEv`mMqqLqkfO#8D$r z1L_?3*5b(krqSZ62iKO}+k%MyXE7X90ame3z){IR^x$F1-e*touHu1DKKu{7`+JKf zQ~g>@zF`G@e`e1UaU3Z|_u$?_j{_8{WjiNDlrH|=ub5K;)b|G|4*1sdXCwP}SBzZO z=N;L*e45l5dl~iKj!Y&ivB%jjUF06RV*0SsRSau+jM*Ppda));v$SA%EZ!6MpQru; z{||c{tmYW7*HTVGMCwm)Pr_u;@?*Mijtu}xan@%8u_%Ah z?<_wU+ZT1l7x#addm&uH9jTy0V&&Ue# zf`^P^=I}RjulU?j3f@z(CL(tK87)3{a9?7tqZR(IC}E58bR3ZY=vOVc(n z!q=aB*FqW441vA=jpklSbz%zgg?%gTv6e<*$@ttk5|^{?knV;hF~VTr`re`vHJUqI z{8YIovJ5qAh8Dm13l>H}eZU@_9TfTC0Dl~f`5^Y%X(jucz}e1kj4l3d9`Q>jSp)XS zy@0x!83f>l9y<08StZdAx0zJ?296&{MiU2QEx2d+AAU>x3ha5B9#PMkJ@oTYyz_IZ z94MbO6YKzQv-N-b{6HurzI2&FDGmHzfWQ>7dazec3=x*90`?Vb8mGef=6Q zKhDr}5&IP3Q)cgD+(Vg0_!Qz@*t6Jpn!@x27}m;I>|@i=dstO67vJPAQ0Q%<|;KDgT(ReGd12ucb69Yow?_I@NMJ0 z--W$+z}^WfoLhjuZ8mcy7at~%PdIs3ziYRNp#{%dGn1Arupf4|j^V01&%NA!KjdDb z$lTd{q8uu4Ps|I}f0%EoiW4H~5I}NFqihDCH1~0^T%+=>4_cK+>ci^C0c6e3hP-c1?_2G3pC>BsCUTkCod6|LcyzTNnY7`C)-7fBVfb!Wx{J@sh=aElN z2qyEZ?8cJc0Vnj70KGmWfKA*(v0jsa=bh$WtVFX*>`A-K2JbSHZ{8E#TR%<{ouo+R zy%*ZNXS3nVWvmtmJI_@8RU13_alEZ_zn)4+Cg<_Zweaz~oW6pLs*>*T9K>M&6)f-1 zGtb&j3H$S5cBDQvcMDLM00%dvvhJa8a$NsbFTeN(We5`ip8$Ippsk_;iFTOdd_y)L z_0Wxh=MUu=VegUpEt^d|wE(ph&9ek6XR?FKgtEt;W>hcbqmrb^6Q>&-{o|D)+bN+X z&e+4`bUfNQfPVOT0=nY{dx+7+phv~nqnpnq73aK=KJB$U7+yznpN_8HQlul_iamXc zyJTg;9=~zIo=5e-I}9 zL@o<_a4!dW zx!2j;zXkg@n|rZRcf7=2l>V9H_`dZAgES6f8$mtwqtH%}C?Iq*z zQke7x(nU67FLH&bdcnO~&9SN4*ylSd7GXF@en5ZlX>9%Rp%aKb4R4ue7KA^O&6nBF z64BfnH21DB_iw4l9pq=ZR|$La@x$*tVBb8t52k(;0SJfl$&|$Qh_UhX7gSaY+Y1P? zhp#BT(z+7twAzPc$^}j@g&B(=+yp*Gk+_3!as~TzZcI706(-u*lwebf^PK(U54!ih zKO2ZgNM*kg6>=oeo8O36;6)%WHzyhrL2_B#HK_a*k&oz&Ra!;C{g zu{F4ur1UfT)?1ASZ3RaO9XTp@684hx(!rHDGJT$hfxDW)>O*HUJZ$aa@vwXmY|DG@ zR6Ao|M0gAEcRZfpA^QGy(xf4o`NF1qcqA35r>YgDKx{`lQAYO^(l+nDdH>P<9rY@n zS|;pO#@@XHd$751RF7h*@PbkK!25>SgU||ys0li)G!qO+k;iy1VSoOb;bJuxkTD6j zpHkY6xR(z$S7z+*$!m^%dii*)N?zag|8_EVzMY#X=Q8$@ev;ido6bwSDhg;a_TtTD zD*Y#p?hEJ>_R+^*EGWjl=^45uMN{-F9DX9~lJed*r9N&oXzV9EK6pb8F;032UwWEE zh%TIYmdvLh8)lR(Q*4e_ZENaJaX-xSEo_KqZm!7>k0nGgxp}mv;O=R_4-Bsz$K(j+ z9cFKcE7i)D^yc+WIr>S8wAMAPvdTEDo@H(Qhp=`I&;7(&HcLCUkHx0gb z>&&Hy)0M%^4?(@u4(!VhBF$=8)>G%^)Fg`z$6`>~pj@b394xB1 ze;8Pi8J>N{Ua&Ivn<0K+%EHsb_?(a2XKj{>^zIau4q4uWYu__}nQ=67s=l&`7rv_QTE6La|xIeZo z9=1Rnb4^m5uIRc^>RnBz{U_T#=wv=&|7^c+i~YzGinO4e9qpm8?Whm2HE%R*?Xgy% zbrP}j=wj#zgL)rqC=?2SG3ANFKfkIH`=3&5r;WYJD}Xm0m=e9wXrZpPJq-OcO~kuo zA?2b!=75*~_$(Ov5fyj~?TPpGpnMMdxa`rSKS^7%xo;Tm0)%)cIV2|f_BHh5es|V$C=AKp&4;wS$Re0AdxJT?Q zjvEyyjx2EEwrZBoBkFDDNQ)wi*cSV+zd(vx{?2;oTca=R!0dp=mB3(}*sI$_|R4;TNP}y#1x&Aty<| z?KAfNIQCsS=5^a#RjhpWN1&%QnWm(0RfA9&`<=(>tKkk{53#+rs-XTIRVqKEMOyp! z8T!|?7}Sp15_`~5xXmPz3XLF$ek+TMr-d}fTZtlYgx14GUlQ*I#@>?eLhobCW3NcbIDjctYDV5wsrTd)ChVDd z{!Mqr+>2e=ySHL5a|(NFy|vTLx^FS@BR~cnjeWHGV3X@pPlw51>S@MG)KGy6y_V{6 zaIYD$Pk}4d3LO1`NJFZ(!j_&bi(TwHp%l-|z1xcYK6CGMQ6cbvJs;n*ruk{=V89k%vQjMeaQFCVN#LH)K;Yqzg5bFb5lqDkb*&4{DGHkk(4W0TBGo6L;eoapC^ zrqqk*!APvlNhNR6*1=w_B?MPjyRd`bhrL=c_e%@#8v7kz(dfmMu$Sr-_QR``6=DCF zG+ z7EWw1_Wlg^vc&$Od`GSx)>+?=JFzbeA=eA2rMVwoyxTp+HD(oi!R9_kgxan%K}uE#Tc9((Kew^TVQ-fa_Y_Z{dLD>{;m-21V*n=j{~_qTpPV-MT_jyDpM zYUtpDSAp)uO{Lm;Kt2B&wY!xQ;G_!*OGRz!xrj5$xWV(1 z77p_Erh&IqQx9R$Ymj;)K~_cM6oE+Fj`|yMAHLyD&{`(!!`ihqu;&BF0(%hj7}vAc zAbqn3`?4%HwZAS&9$tOM?TXX)apyhus>EK_!u~O7PxXjymuo9iPEe>$tm4Nu)mfDJ>91)jCqy-R6E6V(`8`#8Ugd zhooAXZ3{1ptbL0FV%*VjUkUpR%xo3KA+$P&z2dDaVqbhw+1n>gMcNI1IEa1O_g;c8 zp9Z5_;0crWlTXDa0Tq;bRahj=Xnwl?ewWgZNZ zh{85g@`2L{3QXzHFb^O*Mg1!Fs=$66R)4rQ&hMzu73^8ZBl89MY6bhkm}TR(scp!) zySTH!UTpX!N&o;L07*naR3_|IJ?wb^)?=nRb|37ZBbh8T`cZ*6R~)2=m(7hp>~8~% z^#kdCYD8%wDMdmBLLE>Ip~qdl6BeTF{#Fbkz^pn%6NLTw*3m@2o-}mZg26`}%YZ-2 zU13v3vnHIBnF3>f%SY{J0;Y6)ov|+~R)g>A*Cp&+h}3prAG0k=scgRG!rseLsfxOF z5FDZM!vA^QxckQ5h`q=wqs0F7*dFdcd$j6~Q~Wyv%#>s)Cg&vw<<3(|24@EBL1u9f zB)?*9b?im#TvlTLm?d#g*koYW`$bA`mJ0_G9)R#gQ2+y=1l%+o~u)qo$ z0hPJoiMQymmdUZBfZ}#a4DJql{^1YU56Jzz#=Qphi(S}f?&A{9fyy2BIG&uF^BDr?Fl( z+zZXUl-0{8^3G1{;8rCkszl-Cr`RZu%meVo{t4)9ip zdf{thf2@n)?rWWeV8Or9b^t9i9iIyPV{A_K-T{l@->I46P|6oRD!g{U-j7(N7q%N( zz~@9^?jBi=?s%4ZR|)&%<*#5532MaNuJ~TN;^KI|vP@H@ze78~*yn)@0(656D^G8X z#8CkvLT($U%?D3yGA4%kCL<%oNayxXBtTv5iQDyDL3 z4A;Y%w8_hl*dr4$a?%DS@Z25N#ih818By$8O0FcQ!)hKV8~~LnY9bD6mjvh2Q}4E7 z|8Vyv*i-ZK)4~;QG1f=8Pv(44L%E3e3(X)2;TWX1$ktGRUzz%I*vCSNdLKy}Hw+`> z+XQOMjUn9D8a1|HK2F#Phq=;IC`Oe>=3(3=saXc!6r=ne+}}D!DB#rey;$5<;VG!B zK)ou)RH|q{5C{4899ni76BT1#?pL81VJ^>`2!{0&Qe17eF|re?1P?A3GZ>CpWU`0l47)h9Xr$2YCi9Zz`j9NS0lEIg~l z*#dny$pXt0bKaO*t{&V!e$4%mOZ9Yj%60@^5JgbB8&OIvY`bB>PSvoF^L;@!FLVnaDwFF$9V!j@I-HG9US929wG_I^5eE-O>@{E?9^+uD zQV-7_)iTFP?6a;Zzmuv$Z=6Z?ar@7QQ3x!J4+Qd7eSV(?wlk+^VZ%&(H7Ze=XFhjpONN zM2;tpi303F&U!SE5ptN;(_>ZasRq*HkUdn-pNlbDP-<9rKZcy8~V6DeVO}pM@zxOio>{4+~!-@CQwF| zRctY%UEkavE^LG*1EFGus%FxGJ`|zhAMR^aD3N32dw_;y(Ni7V1bn|DxeunY$ z&|MU6KQi?byv?pA_Uz-}5{&z)*(G_2*4S+kmH`TXeor~EqS65Q^ljWSk5BG>_`Dcl zLWr*rdx-p4Rmijvm=P!HnT0CnGFPQuDNBV>V455bsRHb=yc5pTd{yd6DcLag@r+pm z^~3p_b$Qp%*uyr1w}Cr4eFps8YFA)Sscl+i!!V-rh&#YIV$=wkYaBRK4&B@2Q`~`{ z12WE11Mp#IhDJsWzsa)1V~FUdar>c&Td$YvO6-*=3;px75EO*mj=kSP{Z{OY(hRi{ zvy{Y_*pHLJ^043~&0+D6DoR*WU{<|OoUOnag4DU6u;$|n5l3z%>^)%*XHi3cZugT9 zv%NVi^cH7MQ;4WLDkK^z6h)`<%*Z|61-6>Vy*^I8k_+zXFgw+RLz4r-sPd7Tb`)$Y zRh(k}i2ag#Rn(pHx5LCb{D%)IDi&S4HDmGN-ZMrzBr*n>L{U z`*8idez$vNDwSlU!U>f|31#pporm5@Slkf8+u)T!PbLh2VqsN*+`I0#Uu1ytp<2M6 zY%m7*qVsY%S)MEJu~#DA44-`(bBZp073>S@@tei>P3H%r!SYpo0()Lw%)QJVGawfP z*x#_n7Z)DHPnHIUdrFLN@z)CMQ&*WP`^<3WJj$F0?n7`d+(gADkVI5Qfp*aLC;8L^ zTEo6*GIkmLO)e;oUU6=NJ}ds*jg98?&M-&6;iW*%+cNfGgKJZtu%Dn1I340s&A#k>RqO@6ZVF<+)1UCT z!s+SQ5Qbd;i6vdYJso6|!;MOWm|%nRG%zAgV<$7_OFbN|M~u2{+&@;EUbq?6W6T*-i4)abAa?1@-`S^!V?(qaq z*i^iO*vo2PDz#ub#y+|F6Xy1gO%Yy{ebWM#JTN9$-}y$|-{2G-eSC-k5P4W_7DD21 z<1ME-9Ln9*mzPhHoCe??a(V;Solp-MG&$@lX@8OKSQz^*dL8QCG&{&`Y(P{*qx|C= zgqo3Yv$-eg@rdA#dumOH@}rQqo;#1uWJkci!{UP$KBHK08Q2#3I`$I5B(xr z)ud1+!e>!1w(p!aO2(eDx(43}re?uG0Bb+QG|Wl8?*9mT3^-$U9eg6h-qyfgtx`{! zCpb44wMg&7=z0Uk@36;1qiFL@JZwHRb}5!hK306=Z&S1lrLxj$37$4(*bJo>6xPjl zT|aEPQK6}GC(pfTH3)H-)?n_BQLkQ?e=eyfe_E|9q)iPvSOvZz9Kc25LECL3^>|)i zjwGh61HS4!E*LfeJl@3aFW4$@G0LG2U&_Ss3DaM|o*o&6*o?h{j3zU22K)Oyh|~dz zn+$He8T-l9#(r5F=ootjA49nPlZ3OD!=i~hpRCfDf#BqW7wMG71U~#TgC4l2jAg&& zPO{`)l`S}>PF@Hc!VkB@+(Xa!p+~jo8eaXvY8ghatRrsQ{(N>P;D zQ;CL2I?4F9$3T5n9uio;jQURa_jGoDEc*M=@BJp~WyBtLMjS*)e}e;ur?c2UX7gyl z#+MMWuf4_I8+-bDn-)c~`1`xMles4gTr|MviXDvch0szfNZ+F&kup$!(<~m=Z}Rfx zqPc#dAW`fzkadNgzrNoi;Bn{0zodR~mbhA1oO+C2D;hizv48UI!T;X;y2}HAJXtbX z{#a2sa!-_mG7+8@Ca`peHc`q5sMFFG-;O;|uUtx~-(i1ZU{K;N`W49?rgsAwL>>@y z!0!IE5Z2<0;-ncVUGENPm zhU|Psk{)+W)P^s@Uh;4k(q&m-pA7JDhP||$7IN=0-YsF@z}!D1!~~AfM)IRto7+EP zOy%f4mdTgqo@;jC{C@7hgajWynELQPI7I*-bNedDqIqTWT^cr@5^>&xR?1=QMUkjq z`?3%AdhKWM$5pQbcd9Sm^A3*~NtdP?7vLA&1N{J>5mYll(J6c?I{Cx~5z0|S>A>HK zJ(rke`wIq86h(W8eSe1fl`ubH&o{_Py{hK^0efqy;6EpLux#fD_R-B>Dm5n!A2`5+ zd_Ml`T2tH@d>i;5|Cmh=Rh5#@%PyR9{1(Xa_kK8P?4Q*NuUWj6S$|9O{4z@~c4B{6 zPAXe@=aQmmwkz;;-3*GZDBCKnWlbsC%k%iZiVL!r--Nwj>;;b<*13|MK|F(fw@!Wc zh`p}t<;x}Z*mpn;u`VWg*bh9M_|Dojvar5*qDJRf2>Wyvqy#^lCH7}>dW&#TMbppbqI4&kn0u+jD)vb#Qa=@L-IM`K+^dIP zc$&Y3;PYqUdz$^5zkGfb{-e{!bI+-jW%oN>&)10`%(oKzus_^>lIn(?;0 za?q7BBhwc@UsNzTLcZtA?`kFE&_U8FcVe~J?zBqBt6Nn1zX{)R-s^)PuEU=eD z9}ipWeK$70CH5}Wap>dF!$*Ip&`}3Yn&iftago`}%2#oWd)l%Jf9TXc`*Q)F*e5q3 zgpzHr57hTh6rn+Ar|*?^s`8D$2K&<3N9?WBD-NuXVdKs4pz)`Vdqj9NmIPG6KF^V@xjySm*<5wDo^F)E)ZfmC-<^!=-i3W$ zVJ=vA7t65t+@s3p{Q-M8BFx@J1MJbREsk_ zS!;8QB;P)=5r?DWe zNbqIss~eJ>Qjbp~md$mwv5(5~)~Xt_&Gg%`zo>t|xvzCC{rd02p32k<`SNl~itMXX zZ*+O|a*p z8HQXYW3Q`HPr4pFhSrjJ*njBbU&g+nF@7)h{kLHsITYOj`T z^DE?3B8cxy=v~x*|E2D(bpzka@A}ly*mqB`AL=gVi2X8T2J9>EYH5&69aEn`e4DY? z7xn+awU9Gkvj6Sa>qqPZovs1)Yt&N|>)K$iDw%qGDsPOnE7vhxS3BnKz|U<{3(~&~ zd-up8W4{)moHzD*?QZpreNttrlFW-BzJvNStofq;e__7VHGfvM{bkte6>+K3$FGY0 z8ueWp>Z48rNj=qyPnuC*2wkw^!A1SoL%$eRq+WynUD&&|IvMmZU9+3H$0*jdz#jWb z3xXo`L8@U(|m!^hw9~xu3tB8!&v)ho>GDx8l$0R`+sidqE>(&n=~A zxd*wy#`aefYE$A^FYhnCRP*MCLkmJKr1kH?R|$Jsd*LtNg1vf1Jz`%OL}aX)<6f;Xf4>1_@g*2tJkLEzDSrd@ex12C z*pI8!d)*Lwc^vyv-+@NFHTAleXF%ez_Di!W8};2ETgz!5dN{We_XE=CZv*zXUc#KT z&$BOJI`F9NstQK!HBR?(&fdHJ-nXH?JEy-W@^DL1!EX%W-NY+#5npVE)u&aQrT)$z zk#|vkoLv+LmcmTbx#vOXpMRz}{_7#pEwDYka)XkR9;Q6oyPGN44MyL!;{Hr3;?DZE z#(pvS=5Ny;rJZZ1SHko&4mZq$w)%K-hoY(+3nE#gIf36h*w5y#MX6^H?F; zaDNg*ktbcYw)TazVI%#x|L3x>0L?Vvj;mcX_wqZif0BS$NT&<85IM)x9!^1*Uy#@n z%K8`{=t6jl}>$va3ngzF2iUsFgIaS*Pkd8=pDa)P;+--^9>pZTQ`MSqfdm^kaf z$%Ow~hzEn4FQhK0|3>WBm`Cg}QJuJ#I9}G+c^-xy{|#$x4dIuAvHdEFJfpDY`g=b8 z3|G2P-?!AG*Nxo2FYc0mGn*G^4=!f---z};{34jgzzRFbHFGP2thqu~kMWXR6uXKN zQWRR-VTRFrwzxhJ+CM`P7P_dKITd)y**)1}z7hJu^LeBBRqC($_rb0Akns&+Cz3A$ z_8N+$pm$3W`L*s<=LZ!fx#$zFU>{r;%dOua2e19m-w=C`7lbnJU(rwJ5Y~^ipAQgK zN~!NnU_}vl0nPz8LKcM&|W)Dh(%;K6{opM#YjEMp)4(P;e#mb7|efhn|C)vydjM$9)YWk#VE}CiBPlXY}G^`={8einpSZf%Uw|h5cWr{&t&ZNa7*)2nx;{D_W6NR}=fw z>X7M^u`=^L_W^s(>KX9zb$}jP@On8V%}7jQd<6Sv^k|_fW+ocG?ct?$srU+Y5ldc?se^SVW}0A0qZq(z>=USY7Bwq>e2@pR~L|r!MbHlyi1I9jedak1wi^E%EpQ4S6`#)>!u^;tz12=ep9bmu_P2e8a(`s)# zhLS`QVx2i5PgdUp=it&RWxc{_?tnfdGQuApz@BEth*j+Qe4EQzE=N`|soe!qaR}`dat6eSP%(Xx>M(!Bcr=*^j!MaNr(?TlfFj*S%82l zH-x>t-u`v{)xaJNJ)UgOascnxgP{js)3(CCZWA1eGh0+>_OTW}a}VZT3-bOgwdiO; z#fVoL`?~%r_SlLA2Swhiq>sqA6uWKE9U_lG<%cv*hOPOih+@PjK__2|! zSUwMIRShnQec#G8|Pe(0OuqZ|h!v3^}UNaJg# zYTh9Bfn}LOG0!cv>Rmj&gQ%Wz_6vs|^Y~XW`gJ`u_E69T=RuQsEB8=I(tL=6Du;hT ze=4=v3o2``!FxH@2xTl8G@L%$urStTgYP(fS7NVmN4U7ZuBV~B25C9S3%_IFz4v2S zlOYDR@2D1!W5yKru>|Vj0!a$4Yd;ITxEnPuQlB|sFI&!G0(;I!_>R(dcd`F8UH1OE zo?|b?WDKDHmIY#|3H&WBB8z+;w50snpaG9C23hx@)CtPuX~)LV>(Jx;!Z6Kw*2`;RFHP2MqI zOb?G^Oharh=cdzVoi43>S%&L0ehjGPQ-2G@k7t%8$b!POes!=ZBZrqs}b#ub_u) z9_;#%J= zumAY*Iz7Q6!GdnQWDCPYQGEw~uO;5Wk@l;av#e~@~*bT9z=E^nZLb; zb!7l0UkgnS_!s01hXw)pxgUz@v;Hm9XX6kZby0s||Ma4=Zdf51`?0Q$84V=EQVr%^H$O#LHHWPX`@rHeqh2=MpbJEC6t`U(}L z!*N9b?2nx?)m`B4(m7^g*f@K$UZ!*~vR#n@X^p(F=~sdsMMk5f{K zRFk6?IlW@~tbt+k;UC_6pQ{I}Rc>n6-fL=P6gD5fiVLO)>F z-)6902dQ6QfU$6u1>cQPj*M#jUwXE~-l0w}uy;{<5~+92?bt{}uE<$pZ!PUzsB>YZ zz_D9B#4VFf(`WyXd^KYzFYN2(#;X1_2NoToU7?tDuGZtTW&j_spFyte5cp3`{d`N@ zWAi9?#;X+D7q8WZ8&CVVS4-@1D=W9sU zHdD`2XbF4pHVlt(NAmgq`Cks^UYotxFOKmTdse2w$i}&S-M0(y8TwRSdTLF{joUkH{mfMnx*M|PtZ=HBlsAiVeSC9#he>grVHLER8d;4IfMhiz% zknJxA&K!>FiTZh_4mAh41v*Fw1PP~TgiWAF`Z(jE4cNzPXJv<6MEwUIm z1S1cR4YLz5t2b$yLK&<*=Mlbl`s`K*=UvuUG4=%hUhF?mr0}0&A3%fB99Xvk9am7K zQ04pT(N1~f9_mqc+`fP10?|Oqz`cYRo2v%U9)l5usg!oiS06<&w;SaL>|?W`Hu?5?RfBs$N;eqX zOKKhqi&|pFjRSZ*?#8ju*6+c7c;ye=gy5O;l27Zgel@Ua!nPv<`!xr`viX~t zK6M#F;f?sAk;65{+h*263vkD~l96nI+ z^sP)sh%mTn=s^uHaKBjzYmw0-?Biewclx1)2PFB#z8F56%zZI^mXr+8$NwKg`{KlM zhqI4%L#$)}+H9bqhbP-D>m28dic`3p zZj>TJ?6Ez^b7UuS=UP7uGx*eUFq^4gU=RO~<@gl>UP9k#SB#z3dFu4a^x1dy;j{?v zQ_bI2^D6*AvD!u1|Lo&SEHf1Nm#x_2HnVm=prxTB{>HGPF7_hWA&T7Kw0XYagh(OL z>Nl|+F|enQJ76ymN*}K=PpzTDu|OFfA(~!1Eq?z-?1$RebFvAdZ8`S+ z2!*Ihu<5T%J#b*?CqcImHJC@UDO-D(*-!pwy?6SVAeG*ez5r_aAO zDI3kb%*LL(W)(Kg*FHomrq2@hG@A;liSb}UL50w-m_94E=kgKzb>lm1_j8^{|(}2Kx@NAA7;# zF|4P>LQoaWeb<#EWVk5?U5hN>asq;v9 ze=n+hzb;bC^AqehR(GT8F0IrL;M39m0(+J=TuJEF#D3)~4R6K1Zov*rs~Gz}4~}9( zPa8lz?DGtnqO8@kepkHHChT87fJl8AlOp!5-iM2GXL&%?wA>Pm`4!xw%k3Y^97&P< z?kzvT9w^xwq6*CCTP<{_SFjfk)_w*1zVi2fu=j7pzHUy>Sy0ay2Udubl*q?9@Wf-? z;GTaJpKAp-pQN*~mraOm0{t)Dd_H+df6HUOWXo~$I{Eg?>9bs|YxIAQJu9s}YL4=( z&qwT6FqAtMFGAmWZ2^0?Os|z~I$2O<75i#}f>A7a`GsWNC;Ue2A;1pY3&x%l=eU&& zTE`3S&oRG<7vfkN?L`!t$GdIi{w4I~%aF7T+v-U!th~)-xQ2$zPcVe`SInN}Zl?Pu zUYzI`YG&s`d;G(LC$+HmaI_~>uJ$Xo8S#*}s*F9}Lo~wvNAT-nZ(vBHgp^v6qab5E zG56=Ky?DG5_L|yL@z-#NZGCF1k6=~*gH*a&kMl)2-p3eBfh2JN9!E~gUxWRUd#w)`UGjjR~_Ygw~d58Vo za_RSk_VIQdl|PsEo(p*h`-N8OBEv5c`9W^kT{eJUK#+c~3HHyyub9fm$&hf)jIWOB z)>Fdmf%}@+Q{o^5^{HRg?76|lYCS3(`3P|k%~O2wi$+ezRBXvT)$xc&?8Wkh?FsD{ z*y{!Mf(I1ch4xGACG5T%^7!hNj*p0ix$1ry(|=L_{O%?9^-}p+Er&|h)#PoFXP-b2 z>Lm7$%qx_zQvv!Y+65bey=`69O+Xy^{Yls$EC5v9&Lu~9wdv)S7G<~_&N2& z?M~%$#kDHM8ult-KlEDuoXw}=P4xnNs?Ss1N)1aZ?AMzY>v{QwMiz&_ApDwhY?kt@b8lU~S67vLxmOIT3HRK!`b&mTu9$n$UR9467Ar=|-XB`IacEMJ%_r{y zuvZV;Ovc{!mTdmZ#VJuD?Y;zP4g4zD|Arz?FR)J-_QR-;tlT>{AMGx0 zrxE)S#`wxLh%x=V0)(WLmZDmK)z%+!Q17u1cQ?cCP76vzyvQ(@_OTK6W!Vd1kF8=h zN4fij=1!957n@786MD)phVj{Ew( zVtM(3ds!o=w=8vI6-&TSvzO1<8?k}zd*O|M@E{hgN|SFjY_ zOYFm{^22l%dj=m$pX96i360q6AB$%ZdO=D)%1bZ2c!vGb+{1roCr`=4eb`G@eNl@V z^1Cf2Hj^#QeSdyA_IE)C$=Tsax+u*3Q|!et?9#oS?C&t--?yU<)Prq2bfvR<7p$>XI(J$v?k5xW zqaI8@m=NLr=!<4sO0yu{V~2nC@>QAIhM|o8INydH7#31v*n;*rwjtLX#$R9=9ey$C zv>oQ*sIR}$!3IBB8azn1Zdo>OQfl#m{KLjREgr@mc9#pM|H$0C$bI-l@Qu@2USKbi zvG?zx@6-;Yal0eh>{Ih(k{o=&@m&f6huGe(+yQxnIB4uIvV&GsH=HV)&^`{6e9 z{V@Y*y?dP3QnaaNb5D)i(90P@rLfQRm8eJmOj7-f6_40I1OE{Ai^ zyJ8TK%i;zL470Hh7O}q>eQ;|pD)Y6_AqsWz2N&4O0{alxqjzEVap*0no8NW#cVfvQ zV?QX{dyTr&_7L{G&D?>{N>JsY0ga6co84f;9&_u5{(!5!-mMPz^4?RqPSFx?@)4dY z)gq2@zxcRmR3vO;7xw>OQcp+v)9bYb_HhJKHw=CNedd$cBOiFfQA@{uxhk-aLc3D* z-p)4MaMx_{;I?-(qxc^D;@F=4iW8a@2vvYr(f7VP0KQ1vFKQl(1e%Hg1(!d|-g>}3 z+!sVKDo`J>A2aq*Jfg_uKRzkB_p9FfZVCGfrvK<#P@l~eNd;%>Ble`q-Wz-Te(YWF zp9MMM57^VHv|twPP43Ml2;N}K-3CR2xfn#yc-QppdZj^tHbnUL0QjkV1x1&;d{%dt zIgd?pQVikwju2Gzo>ZAnQxDj~Da$x%yXcNhUjCCGcLMt^&Wk|-nv13X&)lcK5cn_x z?2&p{a&T@V``#bMKAqlc)GX{M0(T&~1q!7IeX>DA00g{z-S5SoY!QkdFQh#Xe3%}g z1!n%725aw?5&hi5Fsae*#-0+BNr|y5Pw8XxigPe8CSnh&lNzYE*t;4&$#&|W<`^|% zZ!-2G=G^KbDee{zCGqv;IV>t66FW-pOT!5% znf!pfnfrbweOqtG)9Msx+e2&**k=cWWp5f`-?@yvyHNTs(|SDblQMfL!-wT8@>azB zqYu;{t}=7c-ZSqyqvQSziQ}#li=*+!W}N` z|2yto6bfhTX_XTAc)puPr6cx`g+Ae4P<(H22nqhuEwLBsCgvF2<2G|}mthXUeQ~tk zP`wc1ZUB2v*avHm*n^}nd_UWr;yxe{qw6?Cg0T0V8-^gWAYo+Oe7nssU&4D|VfRkh zi^XZ3YKc7xN?)P<{~F+D>}|A8a1r$hd&F?QohvCP?2&r9k7XraO)freGq-%dqcMex zc?1`MFRXm{zA%*8ptTR7{%p3D@!;@}DUIhfwg3p?O7X-9*BE9K}2yy`f__)EQm;VWz;}l(2_pAJp)LVenAVANHB?@IF)E9+5YgVV_`J z)HHG9UNG;9=R&KF#;Knbh32+*SDw)q;J2Y3H@M${JtSBEB=*iG>kH6RX3k1e}`zGJxS zc&Kcr_;NZ8PlfIn0v`V~X$tSdJyZzo!O;hD;IW47=HzQM5&OHBs~T{h;u%cl|Avg7 z#j{lV=ctdlJdS!{^^%r^n287swSxydo|1{s(Ey`&VJNv~M@aQi=!+W-Qcu`hfBbgn zT1*V!M9@#bpGE7dr{Mn+_7W0oDY7{H`dtA$YRyekqMmjcD&g@KHdCM;lNzw`jn-Ab zer+ELRMzG`R(kvz?8&0xaVn&k$G?HS=A&g?vk`kPCyhRS#(p@%Aw=9{?b*2x8*Q+^ z?BqjQFWgVuBKGzS_OQz^?)=9H*z0LTWABZPdyRy|dh{^@f(O%jT@;-lh)7DYx+oH}fB@%)Z*>H+)Cbg<;ZM&L9_RRQ)h-fzTLaY}Rz z()bf@Gf-9%jJ+8(pbuz=Aj4vXkb*-)0V*9~9g8k(_+A{h_ZjwN_B~C3r=n-r+&ttG z1fHv7>K|8~(MN-1$HyZNDRs_fwpul5UvXaneXb}yf;~i9mP`%Bfo72(`Bl_Ys+*-& z$;y*MivB2Rt-_HuVCXTUH&($ONDNW^XgWID3V(|-cuFY9so%OA_+5CzlUj=b`}~KP z#3)R7yCdu=;NFBk0*1G+(?B^Q77JVaCnuh1tPJKbAE8G(f~qtDc?F$}RQODX8nDovUTuu!(A;z*%LRUgR#d^ayL40jd2JGGL_(NPX!#*r;PtST@1Ufg(eJ8_Rs z9-9abQE$j$bL(cg=DB*H-j^2MxraF`pQ4^5uGL}eVRhpx!ekS5F(vNRZ{prX2cMl$ z%sYkk3BQdP3bww%{stN#?5Tl$_%mQg2ijpH8O3C^;)!Pv^@5WRemF!~8#(LZRGj5( zoMF*s=C~SAGxhL>v0`op84QV^P74a}x31*%^^l==j-Y2hA8d)Yv$#be4oG&egK(^a zmAnf08SCD-so56`*wfvTZ&Q0`IeTGA2tB>%gjB6*(vdi zi6>Z|-~x~sw4(F7nJROIIOXGaU`!MAu)mn#dXFKRHUhDqp*R9 zuw>8TpA7>ifK)EZr-%`3K6LskRNLiPlv?GDKH4tlD6n70KGj54#eN|Yz;YYrqtwU# zqr>TZDwTviloSf^Xi~#b%VgBAo08%56rmr{&c}y9@;Z>r3)JH~M)&k=QAwv+_6Ghy zJ0JdP!ynG-S%K#ZHw7=BvR_too4gA_bF(ok=%LoPOVf4x2z~)QayHpX=ux4f*NmP1 zVM!aT<+U18IAogZ9KH-VfhaFAfQ|1X(c!p|HC(SNn|AP7k z*z+`PvA9Lm{@&xZ{zT55j%{6bognrSK)qH{{kAz7FrgTeN&4;~ge4iQJd-czINOfm zY#jq9))0EI^Bx=S1@_;n8{`mYY69Q@+irti2pWn5)$WKF_ws83KiGV?gdWcD^(5RV zJqT|Io}#Cs+{h1sHct>zNWIsO%=LXT^~n4I4uh-z9ffH`T*K)tQD8j3y z#!$4rvp^r;o-be0UAFWl)xZMwVBkY&Z)O*6dgBw7ZK@Z^#RK~rK4U6INZ`BS0eUd! zS~}>v^>L6zh~%(<;3w?aMq?CYeQHW6(TmWJnR)0-$Nvt#8lr>#ayom8BkFb~klah^ zlew=){lg$%_VVA1J=Al%s2V0=&^B(`Dk?wj{$i*XN3~X*=Z4&jfxq;^sb4o0>*<34 z=#|vigU1;?>rZ1pA@uj_5Ul-;vBwiQxE-7rZo{5j^o|Bojc5iE`T&IP@1RFxA8doN zAQ>c}cn&0ml!LS$BptEn^o3i=1{%ui7u`3mq+aK|$%G3Cq0b$6iVlh~=pUi&Uy~cL zBO(2;->jSadba*?&Tr+NWs6~kwDT0j0z>faxJ*JF#l9a%Cvq~W1|qBttWZ$;CVpSV z&eIDIwPdhR5Nu=YbGRk7ydIG!>_Oi0re`DEtY_-JgDSm^@g@zor}U1eFunwzPbs+> z2cb8e9;85>u+d`+4hdQt3I7m$y-7SN(G@hT7sh5wINMnE-8q+!wKDXyBtzIwl{Ev)E&&fQ7F-LiacOuzP}9;-tSSuT@v#|o+i@WxsG=dJq&*t! zD6_GE9{vz#oBmBaGl`fX62jx#Z+lD$C0qDtFMQB{uY7 z&1S_n12?rZ9~3$fOcSjCFCf5Vc*#3+%kC(OP=hocFbFZVX6 zBggCWZ61aJj;V(sm8!$w6ifT6gPmCY5$w_QY0}?t5&M>%NpcQLKX?~rHk?b?+Jj!S zO7P6y2!3uj$j}Gp-hc?V>js2Ad?|Rp3X+Om1tj608)XDW8)D^k7o)9XO8XA{JLu_1 zFZ@Z*AUj_8i#Vxv92L;caXOzr%Z=3kSP+jN%~e_wSyA-?`}Xy@*d+&fUTPYHEfR{K z!j{R^11fF*`>+qZ&ohiH8K7L+Icip>Q!8gwr+!&+?yFS=8yvNd8_lO_zG*`uZZoic zGDCi`O>40;fCuoq8)k9s@H%iCM7t%P(a zwT)uwqvwyL@DuJ|b^&`iz<%8On5c!fP=sQTHu@vjcT$l0Iv~SEi!FWp;7tq3+L{il za*trYSd8(^E<%rohK46Wb^ScUi}rU8H(-y0tW=(b{Q~=YqZez`BlIa{Br#{N_3d`Q zz4{!emvicV{?<@J>fDb$5%ybE^8eP1ef;X;9oWaPih?OC?nKTHz=_yP3nQPrp*J6{ z@HaWJqz?Vy|JKcqvUi4C-&=~0NVN7bAcyWeyE&C0yLIeYRttJ=bv!>9y1~N0ouQxY zaPz$^mX*MxwLreMX@uR1fA^e87i-qcbT<%N?qUPc@DuP{Gbt_r*O6}+Clyn_B2o_7o9ZC z=yj|*0gkzG!q^bXZO8t}f+u|)>}<;?2*JSHAy{8+d#>AE#MxnGLGm_yc_oZkJG*)1 z@HrORxbI1e+L%fBxPWJilf!kguW6&k0CArC=LH4Ag7)etT5>N%NjP7hg(Eahs9bFtnU~c)6S6 zF_f=_yR;HHN_oCR2Rg$rn$GVN`5bZFt57Wlr1_1`;gf!=VfzmUqC(9;8q>Tl#W@ zOM)FPg+-`BLtXDMc<#T0KT#+2pTi!i#$savIs0R4?6pMwE6`pyW5Zo$umeoNc-U8L z=SzRvC^<=0PhtV3?nXa89rVM{Z|w0DkKKQ(NTOhrsIYZG820pYLpHQw06Y-(w^=|i zZmD=0!cP)2z!GSmPDxe;7z^CXgx)-JPlV#Wh$ud8)QuBJ^wsFziCbi^AV!uErJJbN%=t# z_Lx6$c(hDf2IB}o-)=ZS{Jy*sh##JQa_*{v^ntTFS5xD!{u-DCBg+5)2o*_0K~(l$ zM($CJxq11e8iV5v7T*!}Ew>qq{}1h0j}qG@Fds|B)KU3lJU0*Kzq^7r%B|q+^R!;^ zo$QPa;8VFk*X|%VM)0Wp*_nY0 zN^AjnfPUDVhZj*eL4tHND<1Rc4_JqG_*>X_5H*or#6i8My)a4yADSPGnxH1W`So0t z*C``!(4+UI*i)hSW?QTpe+jJRZg~rhO0F{wX9Gq-|AO=h(su;xLH+=GsiuCzhd;qN5Cg7O@VEwZAlyneL>h` z|J&#Kp43-ss1f#J5B940=aJ`@M+nM?;aPPuIQVf&(|ki$|KV4MS)31EMWIq16r6DhlI#9puz&(~njHGEY(FusPx zCV}Yf%1^9pO5HGz^u1{}ShgAS4AiPKH#Rr*_ z-M2!Y1b#N>^wj3O{~0g8#Vz6uw1DL6qtnDh8F<=wGbkD)rXKZ<=P zv6llTNW4XCz)2?@zK)M#-+e9gxtvdJ-6TZo0gh1)tkIj0NiPw<%Zu$r_B%hfh}2u2 z|H?v|q-Ly*`Kw+&%ZR=Qd)Eb9kIgWkmL$9DdV#&%#bitFo8AG#%tB%Gm8kd*V-H0< zcwo=i6Zcsh3GjD+HJOj?q%a=@YZ{towRNYV0XIYx=FdnO9SrW(zMNjuqe#(EXHrCc zLEh`EAD@2njmDlUbvr7=6b1H<#stSYHLcwrgl zYbewOZ51Zlm(exw?F+G?cm;b5O^p6oCV%HxbUy!&*bB?p6ZL=h*q#RE;Yc9$o*@A& zQYCE0^@@XnGV`RK37R?r3Ue#0jX38-VptFTwmf~N+E+_l>ILuIs|y z#d+aaDz7~@+^k3z9?2hID~?RMIxddBbndUefH?H?O`YeayK(Ku1^q>Rfjv(jFxnPs z81=AMRtX+QenH>ut`0fx<_qk;m)(^+zJG)JM}y;w3mU3rI$gW`pC4SlDCv|k%bThF zpC(?H?zpr6Z643x*1xT`rS(SN8mu^y4LakO7Gf2=`*E!r&j0f ze|XP=c~hmsuJWfB3~Pm|9gQ~}*i~5=_&>LvlPR_LqUw)l zKVn04zCBmC|GWFw>s{;47p^z@x+2DZdBw@Cn5Hrx7>LA!ETGSygTfZ-%a(n`$zmc zP-^~>eKxz?Rg#nX^&iY@+ZuYv?%wk%ke>P7@7`~CZgrPuU#GLd*N+e4ROIEoSq_}t zFZZ`J_PTh&`b&;-*5BG*mGYQ&>^jW)>(Ay;tNrdTuK`{9`j^_9%p&u1&g~5IOAGkS z&uvgXSXon8S`~l2wAMRk{-j@GcMEl99Y1+ua`KD2ANR5YGHe>V3T8_r(7 z1hlO3^)H6+Mvnh`svZ`-yZ4goZjqAe=Zas)zN)Qzz3bljy;U4NL3G6Nu;ahv*xp1ZTo6K3y zT0wzjZppZ2y8e`PytSLY6_#E2x&vs;K7}XeuXNw23=U;zw|c7&GI<}%&zdRX|Jp># zn7))&KUwkf-JyR#Uu$>xU-|t00gq1jZe=+(gNOVqZ`QMe{8jiNRI)kR|6lFXn|r(5 z8@jy{9|M)|*0TuSK5tJ!q;z#D*!#6-7Oz>G`>1U>+Z^C}*j?-Lo91oEPwo#^{pSjD z-1L|TzsWoIgTvzQvbYVvquisnX)NyES_w`%@lT$d*2uXn_WN}p$b-D!D(d`aeFIC? zAHQ)~Un-R!94!0ze@D1q7XexD`j^-%*3uJOcdwgt2gqG-{LQNqY_t9I$MO9SfeO|q z*0bIRrZKQF*T3$DTHpQbUlkWnxW4E2>b_?{btI#GUw*M)h;QRJ;*0BJ00K`}KbLh* G2~7alTM{Dx literal 106974 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

p@IO-`0 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

pzI0NVKPL5*EN@v|GR5b=A*7 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 - + - + - + @@ -26,28 +26,28 @@ - + - + - + - + @@ -59,197 +59,177 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - - - - - - - - - - - - - - - - - - - - + diff --git a/frontend/assets/resources/prefabs/ControlledCharacter.prefab b/frontend/assets/resources/prefabs/ControlledCharacter.prefab index 2d0aa61..d5cd5c3 100644 --- a/frontend/assets/resources/prefabs/ControlledCharacter.prefab +++ b/frontend/assets/resources/prefabs/ControlledCharacter.prefab @@ -645,6 +645,14 @@ }, { "__uuid__": "9b500cb0-8048-4715-81db-cc975c914225" + }, + null, + null, + { + "__uuid__": "38b2c892-347b-4009-93f8-65b2ab1614f0" + }, + { + "__uuid__": "411f964a-4dd8-424c-b2e2-d92b10474ce2" } ], "playOnLoad": false, diff --git a/frontend/assets/scenes/offline_map.fire b/frontend/assets/scenes/offline_map.fire index 0e41cfd..989043c 100644 --- a/frontend/assets/scenes/offline_map.fire +++ b/frontend/assets/scenes/offline_map.fire @@ -191,8 +191,8 @@ 0, 0, 1, - 1.5, - 1.5, + 1.2, + 1.2, 1 ] }, @@ -464,7 +464,7 @@ "array": [ 0, 0, - 216.63421096211545, + 209.57814771583418, 0, 0, 0, diff --git a/frontend/assets/scripts/AttackingCharacter.js b/frontend/assets/scripts/AttackingCharacter.js index 269fe0a..66188ac 100644 --- a/frontend/assets/scripts/AttackingCharacter.js +++ b/frontend/assets/scripts/AttackingCharacter.js @@ -12,10 +12,12 @@ window.ATK_CHARACTER_STATE = { BlownUp1: [8, "BlownUp1"], LayDown1: [9, "LayDown1"], // The last frame of "LayDown1" should have a simliar boundingbox with the first frame of "GetUp1", otherwise the animation would seem odd GetUp1: [10, "GetUp1"], - Atk2: [11, "Atk2"], - Atk3: [12, "Atk3"], - Atk4: [13, "Atk4"], - Atk5: [14, "Atk5"], + Atk2: [11, "Atk2"], + Atk3: [12, "Atk3"], + Atk4: [13, "Atk4"], + Atk5: [14, "Atk5"], + Dashing: [15, "Dashing"], + OnWall: [16, "OnWall"], }; window.ATK_CHARACTER_STATE_ARR = []; @@ -31,6 +33,8 @@ window.ATK_CHARACTER_STATE_INTERRUPT_WAIVE_SET.add(window.ATK_CHARACTER_STATE.In window.ATK_CHARACTER_STATE_INTERRUPT_WAIVE_SET.add(window.ATK_CHARACTER_STATE.BlownUp1[0]); window.ATK_CHARACTER_STATE_INTERRUPT_WAIVE_SET.add(window.ATK_CHARACTER_STATE.LayDown1[0]); window.ATK_CHARACTER_STATE_INTERRUPT_WAIVE_SET.add(window.ATK_CHARACTER_STATE.GetUp1[0]); +window.ATK_CHARACTER_STATE_INTERRUPT_WAIVE_SET.add(window.ATK_CHARACTER_STATE.Dashing[0]); +window.ATK_CHARACTER_STATE_INTERRUPT_WAIVE_SET.add(window.ATK_CHARACTER_STATE.OnWall[0]); window.ATK_CHARACTER_STATE_IN_AIR_SET = new Set(); window.ATK_CHARACTER_STATE_IN_AIR_SET.add(window.ATK_CHARACTER_STATE.InAirIdle1NoJump[0]); @@ -38,6 +42,7 @@ window.ATK_CHARACTER_STATE_IN_AIR_SET.add(window.ATK_CHARACTER_STATE.InAirIdle1B window.ATK_CHARACTER_STATE_IN_AIR_SET.add(window.ATK_CHARACTER_STATE.InAirAtk1[0]); window.ATK_CHARACTER_STATE_IN_AIR_SET.add(window.ATK_CHARACTER_STATE.InAirAtked1[0]); window.ATK_CHARACTER_STATE_IN_AIR_SET.add(window.ATK_CHARACTER_STATE.BlownUp1[0]); +window.ATK_CHARACTER_STATE_IN_AIR_SET.add(window.ATK_CHARACTER_STATE.OnWall[0]); /* Kindly note that the use of dragonBones anim is an informed choice for the feasibility of "gotoAndPlayByFrame", which is a required feature by "Map.rollbackAndChase". You might find that "cc.Animation" -- the traditional frame anim -- can also suffice this requirement, yet if we want to develop 3D frontend in the future, working with skeletal anim will make a smoother transition. @@ -79,6 +84,8 @@ cc.Class({ updateCharacterAnim(rdfPlayer, prevRdfPlayer, forceAnimSwitch, chConfig) { // As this function might be called after many frames of a rollback, it's possible that the playing animation was predicted, different from "prevRdfPlayer.CharacterState" but same as "newCharacterState". More granular checks are needed to determine whether we should interrupt the playing animation. + let newCharacterState = rdfPlayer.CharacterState; + // Update directions if (this.animComp && this.animComp.node) { if (0 > rdfPlayer.DirX) { @@ -86,9 +93,11 @@ cc.Class({ } else if (0 < rdfPlayer.DirX) { this.animNode.scaleX = (1.0); } + if (ATK_CHARACTER_STATE.OnWall[0] == newCharacterState) { + this.animNode.scaleX *= (-1.0); + } } - let newCharacterState = rdfPlayer.CharacterState; let newAnimName = window.ATK_CHARACTER_STATE_ARR[newCharacterState][1]; let playingAnimName = null; let underlyingAnimationCtrl = null; @@ -139,7 +148,7 @@ cc.Class({ let frameIdxInAnim = rdfPlayer.FramesInChState; if (window.ATK_CHARACTER_STATE.InAirIdle1ByJump == newCharacterState && null != chConfig) { frameIdxInAnim = chConfig.InAirIdleFrameIdxTurningPoint + (frameIdxInAnim - chConfig.InAirIdleFrameIdxTurningPoint) % chConfig.InAirIdleFrameIdxTurnedCycle; // TODO: Anyway to avoid using division here? - } + } let fromTime = (frameIdxInAnim / targetClip.sample); // TODO: Anyway to avoid using division here? this.animComp.play(newAnimName, fromTime); }, diff --git a/frontend/assets/scripts/Map.js b/frontend/assets/scripts/Map.js index 06aed96..2376b80 100644 --- a/frontend/assets/scripts/Map.js +++ b/frontend/assets/scripts/Map.js @@ -607,13 +607,13 @@ cc.Class({ const jsPlayersArr = new Array(pbRdf.playersArr.length).fill(null); for (let k = 0; k < pbRdf.playersArr.length; ++k) { const pbPlayer = pbRdf.playersArr[k]; - const jsPlayer = gopkgs.NewPlayerDownsyncJs(pbPlayer.id, pbPlayer.virtualGridX, pbPlayer.virtualGridY, pbPlayer.dirX, pbPlayer.dirY, pbPlayer.velX, pbPlayer.velY, pbPlayer.framesToRecover, pbPlayer.framesInChState, pbPlayer.activeSkillId, pbPlayer.activeSkillHit, pbPlayer.framesInvinsible, pbPlayer.speed, pbPlayer.battleState, pbPlayer.characterState, pbPlayer.joinIndex, pbPlayer.hp, pbPlayer.maxHp, pbPlayer.colliderRadius, pbPlayer.inAir); + const jsPlayer = gopkgs.NewPlayerDownsyncJs(pbPlayer.id, pbPlayer.virtualGridX, pbPlayer.virtualGridY, pbPlayer.dirX, pbPlayer.dirY, pbPlayer.velX, pbPlayer.velY, pbPlayer.framesToRecover, pbPlayer.framesInChState, pbPlayer.activeSkillId, pbPlayer.activeSkillHit, pbPlayer.framesInvinsible, pbPlayer.speed, pbPlayer.battleState, pbPlayer.characterState, pbPlayer.joinIndex, pbPlayer.hp, pbPlayer.maxHp, pbPlayer.colliderRadius, pbPlayer.inAir, pbPlayer.onWall, pbPlayer.bulletTeamId, pbPlayer.chCollisionTeamId); jsPlayersArr[k] = jsPlayer; } const jsMeleeBulletsArr = new Array(pbRdf.meleeBullets.length).fill(null); for (let k = 0; k < pbRdf.meleeBullets.length; ++k) { const pbBullet = pbRdf.meleeBullets[k]; - const jsMeleeBullet = gopkgs.NewMeleeBulletJs(pbBullet.bulletLocalId, pbBullet.originatedRenderFrameId, pbBullet.offenderJoinIndex, pbBullet.startupFrames, pbBullet.cancellableStFrame, pbBullet.cancellableEdFrame, pbBullet.activeFrames, pbBullet.hitStunFrames, pbBullet.blockStunFrames, pbBullet.pushbackVelX, pbBullet.pushbackVelY, pbBullet.damage, pbBullet.selfLockVelX, pbBullet.selfLockVelY, pbBullet.hitboxOffsetX, pbBullet.hitboxOffsetY, pbBullet.hitboxSizeX, pbBullet.hitboxSizeY, pbBullet.blowUp); + const jsMeleeBullet = gopkgs.NewMeleeBulletJs(pbBullet.bulletLocalId, pbBullet.originatedRenderFrameId, pbBullet.offenderJoinIndex, pbBullet.startupFrames, pbBullet.cancellableStFrame, pbBullet.cancellableEdFrame, pbBullet.activeFrames, pbBullet.hitStunFrames, pbBullet.blockStunFrames, pbBullet.pushbackVelX, pbBullet.pushbackVelY, pbBullet.damage, pbBullet.selfLockVelX, pbBullet.selfLockVelY, pbBullet.hitboxOffsetX, pbBullet.hitboxOffsetY, pbBullet.hitboxSizeX, pbBullet.hitboxSizeY, pbBullet.blowUp, pbBullet.teamId); jsMeleeBulletsArr[k] = jsMeleeBullet; } const jsFireballBulletsArr = new Array(pbRdf.fireballBullets.length).fill(null); @@ -720,6 +720,8 @@ cc.Class({ equalPlayers(lhs, rhs) { if (null == lhs || null == rhs) return false; + if (null == lhs && null != rhs) return false; + if (null != lhs && null == rhs) return false; if (lhs.VirtualGridX != rhs.VirtualGridX) return false; if (lhs.VirtualGridY != rhs.VirtualGridY) return false; if (lhs.DirX != rhs.DirX) return false; @@ -738,9 +740,30 @@ cc.Class({ equalMeleeBullets(lhs, rhs) { if (null == lhs || null == rhs) return false; - if (lhs.BulletLocalId != rhs.BulletLocalId) return false; - if (lhs.OffenderJoinIndex != rhs.OffenderJoinIndex) return false; - if (lhs.OriginatedRenderFrameId != rhs.OriginatedRenderFrameId) return false; + if (null == lhs && null != rhs) return false; + if (null != lhs && null == rhs) return false; + if (lhs.Bullet.BulletLocalId != rhs.Bullet.BulletLocalId) return false; + if (lhs.Bullet.OffenderJoinIndex != rhs.Bullet.OffenderJoinIndex) return false; + if (lhs.Bullet.OriginatedRenderFrameId != rhs.Bullet.OriginatedRenderFrameId) return false; + return true; + }, + + equalFireballBullets(lhs, rhs) { + if (null == lhs || null == rhs) return false; + if (null == lhs && null != rhs) return false; + if (null != lhs && null == rhs) return false; + if (lhs.Bullet.BulletLocalId != rhs.Bullet.BulletLocalId) return false; + if (lhs.Bullet.OffenderJoinIndex != rhs.Bullet.OffenderJoinIndex) return false; + if (lhs.Bullet.OriginatedRenderFrameId != rhs.Bullet.OriginatedRenderFrameId) return false; + + if (lhs.Bullet.VirtualGridX != rhs.Bullet.VirtualGridX) return false; + if (lhs.Bullet.VirtualGridY != rhs.Bullet.VirtualGridY) return false; + if (lhs.Bullet.DirX != rhs.Bullet.DirX) return false; + if (lhs.Bullet.DirY != rhs.Bullet.DirY) return false; + if (lhs.Bullet.VelX != rhs.Bullet.VelX) return false; + if (lhs.Bullet.VelY != rhs.Bullet.VelY) return false; + if (lhs.Bullet.Speed != rhs.Bullet.Speed) return false; + if (lhs.Bullet.SpeciesId != rhs.Bullet.SpeciesId) return false; return true; }, @@ -752,6 +775,9 @@ cc.Class({ for (let k in lhs.meleeBullets) { if (!this.equalMeleeBullets(lhs.meleeBullets[k], rhs.meleeBullets[k])) return false; } + for (let k in lhs.fireballBullet) { + if (!this.equalMeleeBullets(lhs.meleeBullets[k], rhs.meleeBullets[k])) return false; + } return true; }, @@ -927,17 +953,17 @@ batchInputFrameIdRange=[${batch[0].inputFrameId}, ${batch[batch.length - 1].inpu } */ // [WARNING] Don't try to get "prevRdf(i.e. renderFrameId == latest-1)" by "self.recentRenderCache.getByFrameId(...)" here, as the cache might have been updated by asynchronous "onRoomDownsyncFrame(...)" calls! - if (self.othersForcedDownsyncRenderFrameDict.has(rdf.id)) { - const delayedInputFrameId = gopkgs.ConvertToDelayedInputFrameId(rdf.id); - const othersForcedDownsyncRenderFrame = self.othersForcedDownsyncRenderFrameDict.get(rdf.id); + if (self.othersForcedDownsyncRenderFrameDict.has(rdf.Id)) { + const delayedInputFrameId = gopkgs.ConvertToDelayedInputFrameId(rdf.Id); + const othersForcedDownsyncRenderFrame = self.othersForcedDownsyncRenderFrameDict.get(rdf.Id); if (self.lastAllConfirmedInputFrameId >= delayedInputFrameId && !self.equalRoomDownsyncFrames(othersForcedDownsyncRenderFrame, rdf)) { - console.warn(`Mismatched render frame@rdf.id=${rdf.id} w/ inputFrameId=${delayedInputFrameId}: + console.warn(`Mismatched render frame@rdf.id=${rdf.Id} w/ inputFrameId=${delayedInputFrameId}: rdf=${JSON.stringify(rdf)} othersForcedDownsyncRenderFrame=${JSON.stringify(othersForcedDownsyncRenderFrame)}`); // closeWSConnection(constants.RET_CODE.CLIENT_MISMATCHED_RENDER_FRAME, ""); // self.onManualRejoinRequired("[DEBUG] CLIENT_MISMATCHED_RENDER_FRAME"); rdf = othersForcedDownsyncRenderFrame; - self.othersForcedDownsyncRenderFrameDict.delete(rdf.id); + self.othersForcedDownsyncRenderFrameDict.delete(rdf.Id); } } self.applyRoomDownsyncFrameDynamics(rdf, prevRdf); @@ -1305,6 +1331,7 @@ actuallyUsedinputList:{${self.inputFrameDownsyncStr(actuallyUsedInputClone)}}`); case ATK_CHARACTER_STATE.BlownUp1[0]: case ATK_CHARACTER_STATE.InAirIdle1NoJump[0]: case ATK_CHARACTER_STATE.InAirIdle1ByJump[0]: + case ATK_CHARACTER_STATE.OnWall[0]: [colliderWidth, colliderHeight] = [player.ColliderRadius * 2, player.ColliderRadius * 2]; break; } diff --git a/frontend/assets/scripts/OfflineMap.js b/frontend/assets/scripts/OfflineMap.js index c13b031..4160346 100644 --- a/frontend/assets/scripts/OfflineMap.js +++ b/frontend/assets/scripts/OfflineMap.js @@ -129,7 +129,7 @@ cc.Class({ inAir: true, }), ], - speciesIdList: [4096, 0], + speciesIdList: [1, 4096], }); self.selfPlayerInfo = { diff --git a/frontend/assets/scripts/TouchEventsManager.js b/frontend/assets/scripts/TouchEventsManager.js index 2d0f442..85bd01b 100644 --- a/frontend/assets/scripts/TouchEventsManager.js +++ b/frontend/assets/scripts/TouchEventsManager.js @@ -195,15 +195,31 @@ cc.Class({ cc.systemEvent.on(cc.SystemEvent.EventType.KEY_DOWN, function(evt) { switch (evt.keyCode) { case cc.macro.KEY.w: + self.cachedBtnUpLevel = 0; + self.cachedBtnDownLevel = 0; + self.cachedBtnLeftLevel = 0; + self.cachedBtnRightLevel = 0; self.cachedBtnUpLevel = 1; break; case cc.macro.KEY.s: + self.cachedBtnUpLevel = 0; + self.cachedBtnDownLevel = 0; + self.cachedBtnLeftLevel = 0; + self.cachedBtnRightLevel = 0; self.cachedBtnDownLevel = 1; break; case cc.macro.KEY.a: + self.cachedBtnUpLevel = 0; + self.cachedBtnDownLevel = 0; + self.cachedBtnLeftLevel = 0; + self.cachedBtnRightLevel = 0; self.cachedBtnLeftLevel = 1; break; case cc.macro.KEY.d: + self.cachedBtnUpLevel = 0; + self.cachedBtnDownLevel = 0; + self.cachedBtnLeftLevel = 0; + self.cachedBtnRightLevel = 0; self.cachedBtnRightLevel = 1; break; case cc.macro.KEY.h: diff --git a/jsexport/battle/battle.go b/jsexport/battle/battle.go index 50d7a69..a198c8c 100644 --- a/jsexport/battle/battle.go +++ b/jsexport/battle/battle.go @@ -21,7 +21,7 @@ const ( GRAVITY_X = int32(0) GRAVITY_Y = -int32(float64(0.5) * WORLD_TO_VIRTUAL_GRID_RATIO) // makes all "playerCollider.Y" a multiple of 0.5 in all cases - INPUT_DELAY_FRAMES = int32(8) // in the count of render frames + INPUT_DELAY_FRAMES = int32(4) // in the count of render frames INPUT_SCALE_FRAMES = uint32(2) // inputDelayedAndScaledFrameId = ((originalFrameId - InputDelayFrames) >> InputScaleFrames) NST_DELAY_FRAMES = int32(16) // network-single-trip delay in the count of render frames, proposed to be (InputDelayFrames >> 1) because we expect a round-trip delay to be exactly "InputDelayFrames" @@ -29,6 +29,7 @@ const ( SNAP_INTO_PLATFORM_OVERLAP = float64(0.1) SNAP_INTO_PLATFORM_THRESHOLD = float64(0.5) + VERTICAL_PLATFORM_THRESHOLD = float64(0.9) NO_SKILL = -1 NO_SKILL_HIT = -1 @@ -66,6 +67,9 @@ const ( ATK_CHARACTER_STATE_ATK3 = int32(12) ATK_CHARACTER_STATE_ATK4 = int32(13) ATK_CHARACTER_STATE_ATK5 = int32(14) + + ATK_CHARACTER_STATE_DASHING = int32(15) + ATK_CHARACTER_STATE_ONWALL = int32(16) ) var inAirSet = map[int32]bool{ @@ -74,6 +78,7 @@ var inAirSet = map[int32]bool{ ATK_CHARACTER_STATE_INAIR_ATK1: true, ATK_CHARACTER_STATE_INAIR_ATKED1: true, ATK_CHARACTER_STATE_BLOWN_UP1: true, + ATK_CHARACTER_STATE_ONWALL: true, } var noOpSet = map[int32]bool{ @@ -420,6 +425,8 @@ func deriveOpPattern(currPlayerDownsync, thatPlayerInNextFrame *PlayerDownsync, if decodedInput.BtnBLevel > prevBtnBLevel { if _, existent := inAirSet[currPlayerDownsync.CharacterState]; !existent { jumpedOrNot = true + } else if ATK_CHARACTER_STATE_ONWALL == currPlayerDownsync.CharacterState { + jumpedOrNot = true } } } @@ -455,6 +462,7 @@ func ApplyInputFrameDownsyncDynamicsOnSingleRenderFrame(inputsBuffer *RingBuffer VelY: currPlayerDownsync.VelY, CharacterState: currPlayerDownsync.CharacterState, InAir: true, + OnWall: false, Speed: currPlayerDownsync.Speed, BattleState: currPlayerDownsync.BattleState, Score: currPlayerDownsync.Score, @@ -486,15 +494,11 @@ func ApplyInputFrameDownsyncDynamicsOnSingleRenderFrame(inputsBuffer *RingBuffer bulletLocalId := currRenderFrame.BulletLocalIdCounter // 1. Process player inputs for i, currPlayerDownsync := range currRenderFrame.PlayersArr { - jumpedOrNotList[i] = false chConfig := chConfigsOrderedByJoinIndex[i] thatPlayerInNextFrame := nextRenderFramePlayers[i] patternId, jumpedOrNot, effDx, effDy := deriveOpPattern(currPlayerDownsync, thatPlayerInNextFrame, currRenderFrame, inputsBuffer) - if jumpedOrNot { - thatPlayerInNextFrame.VelY = int32(chConfig.JumpingInitVelY) - jumpedOrNotList[i] = true - } + jumpedOrNotList[i] = jumpedOrNot joinIndex := currPlayerDownsync.JoinIndex skillId := chConfig.SkillMapper(patternId, currPlayerDownsync) if skillConfig, existent := skills[skillId]; existent { @@ -573,12 +577,28 @@ func ApplyInputFrameDownsyncDynamicsOnSingleRenderFrame(inputsBuffer *RingBuffer for i, currPlayerDownsync := range currRenderFrame.PlayersArr { joinIndex := currPlayerDownsync.JoinIndex effPushbacks[joinIndex-1].X, effPushbacks[joinIndex-1].Y = float64(0), float64(0) + thatPlayerInNextFrame := nextRenderFramePlayers[i] chConfig := chConfigsOrderedByJoinIndex[i] // Reset playerCollider position from the "virtual grid position" newVx, newVy := currPlayerDownsync.VirtualGridX+currPlayerDownsync.VelX, currPlayerDownsync.VirtualGridY+currPlayerDownsync.VelY if jumpedOrNotList[i] { - newVy += chConfig.JumpingInitVelY // Immediately gets out of any snapping + // We haven't proceeded with "OnWall" calculation for "thatPlayerInNextFrame", thus use "currPlayerDownsync.OnWall" for checking + if ATK_CHARACTER_STATE_ONWALL == currPlayerDownsync.CharacterState { + newVx -= +currPlayerDownsync.VelX // Cancel the alleged horizontal movement against wall first + xfac := int32(-1) + // "thatPlayerInNextFrame.DirX" already stores information of player input + if 0 > thatPlayerInNextFrame.DirX { + xfac = -xfac + } + newVx += xfac * chConfig.WallJumpingInitVelX + newVy += chConfig.WallJumpingInitVelY + thatPlayerInNextFrame.VelX = int32(xfac * chConfig.WallJumpingInitVelX) + thatPlayerInNextFrame.VelY = int32(chConfig.WallJumpingInitVelY) + } else { + thatPlayerInNextFrame.VelY = int32(chConfig.JumpingInitVelY) + newVy += chConfig.JumpingInitVelY // Immediately gets out of any snapping + } } wx, wy := VirtualGridToWorldPos(newVx, newVy) @@ -586,7 +606,7 @@ func ApplyInputFrameDownsyncDynamicsOnSingleRenderFrame(inputsBuffer *RingBuffer switch currPlayerDownsync.CharacterState { case ATK_CHARACTER_STATE_LAY_DOWN1: colliderWidth, colliderHeight = currPlayerDownsync.ColliderRadius*4, currPlayerDownsync.ColliderRadius*2 - case ATK_CHARACTER_STATE_BLOWN_UP1, ATK_CHARACTER_STATE_INAIR_IDLE1_NO_JUMP, ATK_CHARACTER_STATE_INAIR_IDLE1_BY_JUMP: + case ATK_CHARACTER_STATE_BLOWN_UP1, ATK_CHARACTER_STATE_INAIR_IDLE1_NO_JUMP, ATK_CHARACTER_STATE_INAIR_IDLE1_BY_JUMP, ATK_CHARACTER_STATE_ONWALL: colliderWidth, colliderHeight = currPlayerDownsync.ColliderRadius*2, currPlayerDownsync.ColliderRadius*2 } @@ -598,10 +618,14 @@ func ApplyInputFrameDownsyncDynamicsOnSingleRenderFrame(inputsBuffer *RingBuffer // Add to collision system collisionSys.Add(playerCollider) - thatPlayerInNextFrame := nextRenderFramePlayers[i] if currPlayerDownsync.InAir { - thatPlayerInNextFrame.VelX += GRAVITY_X - thatPlayerInNextFrame.VelY += GRAVITY_Y + if ATK_CHARACTER_STATE_ONWALL == currPlayerDownsync.CharacterState && !jumpedOrNotList[i] { + thatPlayerInNextFrame.VelX += GRAVITY_X + thatPlayerInNextFrame.VelY = chConfig.WallSlidingVelY + } else { + thatPlayerInNextFrame.VelX += GRAVITY_X + thatPlayerInNextFrame.VelY += GRAVITY_Y + } } } @@ -692,24 +716,27 @@ func ApplyInputFrameDownsyncDynamicsOnSingleRenderFrame(inputsBuffer *RingBuffer } if landedOnGravityPushback { thatPlayerInNextFrame.InAir = false - if currPlayerDownsync.InAir && 0 >= currPlayerDownsync.VelY { - // fallStopping + fallStopping := (currPlayerDownsync.InAir && 0 >= currPlayerDownsync.VelY) + if fallStopping { thatPlayerInNextFrame.VelY = 0 thatPlayerInNextFrame.VelX = 0 - if _, existent := nonAttackingSet[thatPlayerInNextFrame.CharacterState]; existent { - if ATK_CHARACTER_STATE_BLOWN_UP1 == thatPlayerInNextFrame.CharacterState { - thatPlayerInNextFrame.CharacterState = ATK_CHARACTER_STATE_LAY_DOWN1 - thatPlayerInNextFrame.FramesToRecover = chConfig.LayDownFramesToRecover - } else { + if ATK_CHARACTER_STATE_BLOWN_UP1 == thatPlayerInNextFrame.CharacterState { + thatPlayerInNextFrame.CharacterState = ATK_CHARACTER_STATE_LAY_DOWN1 + thatPlayerInNextFrame.FramesToRecover = chConfig.LayDownFramesToRecover + } else { + switch currPlayerDownsync.CharacterState { + case ATK_CHARACTER_STATE_BLOWN_UP1, ATK_CHARACTER_STATE_INAIR_IDLE1_NO_JUMP, ATK_CHARACTER_STATE_INAIR_IDLE1_BY_JUMP, ATK_CHARACTER_STATE_ONWALL: + // [WARNING] To prevent bouncing due to abrupt change of collider shape, it's important that we check "currPlayerDownsync" instead of "thatPlayerInNextFrame" here! halfColliderWidthDiff, halfColliderHeightDiff := int32(0), currPlayerDownsync.ColliderRadius _, halfColliderWorldHeightDiff := VirtualGridToWorldPos(halfColliderWidthDiff, halfColliderHeightDiff) - effPushbacks[joinIndex-1].Y -= halfColliderWorldHeightDiff // To prevent bouncing due to abrupt change of collider shape - thatPlayerInNextFrame.CharacterState = ATK_CHARACTER_STATE_IDLE1 + effPushbacks[joinIndex-1].Y -= halfColliderWorldHeightDiff } + thatPlayerInNextFrame.CharacterState = ATK_CHARACTER_STATE_IDLE1 + thatPlayerInNextFrame.FramesToRecover = 0 } } else { + // landedOnGravityPushback not fallStopping, could be in LayDown or GetUp if _, existent := nonAttackingSet[thatPlayerInNextFrame.CharacterState]; existent { - // not fallStopping, could be in LayDown or GetUp if ATK_CHARACTER_STATE_LAY_DOWN1 == thatPlayerInNextFrame.CharacterState { if 0 == thatPlayerInNextFrame.FramesToRecover { thatPlayerInNextFrame.CharacterState = ATK_CHARACTER_STATE_GET_UP1 @@ -724,6 +751,30 @@ func ApplyInputFrameDownsyncDynamicsOnSingleRenderFrame(inputsBuffer *RingBuffer } } } + + if thatPlayerInNextFrame.InAir && chConfig.OnWallEnabled { + // [WARNING] Sticking to wall MUST BE based on "InAir", otherwise we would get gravity reduction from ground up incorrectly! + if _, existent := noOpSet[currPlayerDownsync.CharacterState]; !existent { + // [WARNING] Sticking to wall could only be triggered by proactive player input + for _, hardPushbackNorm := range *hardPushbackNorms[joinIndex-1] { + normAlignmentWithHorizon1 := (hardPushbackNorm.X*float64(1.0) + hardPushbackNorm.Y*float64(0.0)) + ctrlAlignmentWithHorizon1 := (float64(thatPlayerInNextFrame.DirX)*float64(1.0) + float64(thatPlayerInNextFrame.DirY)*float64(0.0)) + normAlignmentWithHorizon2 := (hardPushbackNorm.X*float64(-1.0) + hardPushbackNorm.Y*float64(0.0)) + ctrlAlignmentWithHorizon2 := (float64(thatPlayerInNextFrame.DirX)*float64(-1.0) + float64(thatPlayerInNextFrame.DirY)*float64(0.0)) + if VERTICAL_PLATFORM_THRESHOLD < normAlignmentWithHorizon1 && VERTICAL_PLATFORM_THRESHOLD < ctrlAlignmentWithHorizon1 { + thatPlayerInNextFrame.OnWall = true + } + if VERTICAL_PLATFORM_THRESHOLD < normAlignmentWithHorizon2 && VERTICAL_PLATFORM_THRESHOLD < ctrlAlignmentWithHorizon2 { + thatPlayerInNextFrame.OnWall = true + } + } + + if !currPlayerDownsync.OnWall && thatPlayerInNextFrame.OnWall { + // To avoid mysterious climbing up the wall after sticking on it + thatPlayerInNextFrame.VelY = 0 + } + } + } } // 5. Check bullet-anything collisions @@ -842,12 +893,20 @@ func ApplyInputFrameDownsyncDynamicsOnSingleRenderFrame(inputsBuffer *RingBuffer if thatPlayerInNextFrame.InAir { oldNextCharacterState := thatPlayerInNextFrame.CharacterState switch oldNextCharacterState { - case ATK_CHARACTER_STATE_IDLE1, ATK_CHARACTER_STATE_WALKING: + case ATK_CHARACTER_STATE_IDLE1: if jumpedOrNotList[i] || ATK_CHARACTER_STATE_INAIR_IDLE1_BY_JUMP == currPlayerDownsync.CharacterState { thatPlayerInNextFrame.CharacterState = ATK_CHARACTER_STATE_INAIR_IDLE1_BY_JUMP } else { thatPlayerInNextFrame.CharacterState = ATK_CHARACTER_STATE_INAIR_IDLE1_NO_JUMP } + case ATK_CHARACTER_STATE_WALKING: + if thatPlayerInNextFrame.OnWall { + thatPlayerInNextFrame.CharacterState = ATK_CHARACTER_STATE_ONWALL + } else if jumpedOrNotList[i] || ATK_CHARACTER_STATE_INAIR_IDLE1_BY_JUMP == currPlayerDownsync.CharacterState { + thatPlayerInNextFrame.CharacterState = ATK_CHARACTER_STATE_INAIR_IDLE1_BY_JUMP + } else { + thatPlayerInNextFrame.CharacterState = ATK_CHARACTER_STATE_INAIR_IDLE1_NO_JUMP + } case ATK_CHARACTER_STATE_ATK1: thatPlayerInNextFrame.CharacterState = ATK_CHARACTER_STATE_INAIR_ATK1 // No inAir transition for ATK2/ATK3 for now diff --git a/jsexport/battle/characterConfig.go b/jsexport/battle/characterConfig.go index 73902a9..45ce94e 100644 --- a/jsexport/battle/characterConfig.go +++ b/jsexport/battle/characterConfig.go @@ -18,6 +18,12 @@ type CharacterConfig struct { Speed int32 JumpingInitVelY int32 + DashingEnabled bool + OnWallEnabled bool + WallJumpingInitVelX int32 + WallJumpingInitVelY int32 + WallSlidingVelY int32 + SkillMapper SkillMapperType } @@ -38,6 +44,9 @@ var Characters = map[int]*CharacterConfig{ Speed: int32(float64(1.2) * WORLD_TO_VIRTUAL_GRID_RATIO), JumpingInitVelY: int32(float64(8) * WORLD_TO_VIRTUAL_GRID_RATIO), + DashingEnabled: false, + OnWallEnabled: false, + SkillMapper: func(patternId int, currPlayerDownsync *PlayerDownsync) int { if 1 == patternId { if 0 == currPlayerDownsync.FramesToRecover { @@ -81,6 +90,12 @@ var Characters = map[int]*CharacterConfig{ Speed: int32(float64(1.4) * WORLD_TO_VIRTUAL_GRID_RATIO), JumpingInitVelY: int32(float64(7.5) * WORLD_TO_VIRTUAL_GRID_RATIO), + DashingEnabled: true, + OnWallEnabled: true, + WallJumpingInitVelX: int32(float64(7) * WORLD_TO_VIRTUAL_GRID_RATIO), // Default is "appeared facing right", but actually holding ctrl against left + WallJumpingInitVelY: int32(float64(7) * WORLD_TO_VIRTUAL_GRID_RATIO), + WallSlidingVelY: int32(float64(-1) * WORLD_TO_VIRTUAL_GRID_RATIO), + SkillMapper: func(patternId int, currPlayerDownsync *PlayerDownsync) int { if 1 == patternId { if 0 == currPlayerDownsync.FramesToRecover { @@ -124,6 +139,9 @@ var Characters = map[int]*CharacterConfig{ Speed: int32(float64(1.0) * WORLD_TO_VIRTUAL_GRID_RATIO), JumpingInitVelY: int32(float64(7.5) * WORLD_TO_VIRTUAL_GRID_RATIO), + DashingEnabled: false, + OnWallEnabled: false, + SkillMapper: func(patternId int, currPlayerDownsync *PlayerDownsync) int { if 1 == patternId { if 0 == currPlayerDownsync.FramesToRecover { @@ -331,10 +349,10 @@ var skills = map[int]*Skill{ HitStunFrames: MAX_INT32, BlockStunFrames: int32(9), Damage: int32(10), - SelfLockVelX: int32(float64(-0.1) * WORLD_TO_VIRTUAL_GRID_RATIO), + SelfLockVelX: NO_LOCK_VEL, SelfLockVelY: NO_LOCK_VEL, PushbackVelX: int32(float64(2) * WORLD_TO_VIRTUAL_GRID_RATIO), - PushbackVelY: NO_LOCK_VEL, + PushbackVelY: int32(float64(3) * WORLD_TO_VIRTUAL_GRID_RATIO), HitboxOffsetX: int32(float64(24) * WORLD_TO_VIRTUAL_GRID_RATIO), HitboxOffsetY: int32(0), HitboxSizeX: int32(float64(32) * WORLD_TO_VIRTUAL_GRID_RATIO), diff --git a/jsexport/main.go b/jsexport/main.go index 72c9756..e0d8c2e 100644 --- a/jsexport/main.go +++ b/jsexport/main.go @@ -42,7 +42,7 @@ func NewBarrierJs(boundary *Polygon2D) *js.Object { }) } -func NewPlayerDownsyncJs(id, virtualGridX, virtualGridY, dirX, dirY, velX, velY, framesToRecover, framesInChState, activeSkillId, activeSkillHit, framesInvinsible, speed, battleState, characterState, joinIndex, hp, maxHp, colliderRadius int32, inAir bool, bulletTeamId, chCollisionTeamId int32) *js.Object { +func NewPlayerDownsyncJs(id, virtualGridX, virtualGridY, dirX, dirY, velX, velY, framesToRecover, framesInChState, activeSkillId, activeSkillHit, framesInvinsible, speed, battleState, characterState, joinIndex, hp, maxHp, colliderRadius int32, inAir, onWall bool, bulletTeamId, chCollisionTeamId int32) *js.Object { return js.MakeWrapper(&PlayerDownsync{ Id: id, VirtualGridX: virtualGridX, @@ -64,6 +64,7 @@ func NewPlayerDownsyncJs(id, virtualGridX, virtualGridY, dirX, dirY, velX, velY, MaxHp: maxHp, ColliderRadius: colliderRadius, InAir: inAir, + OnWall: onWall, BulletTeamId: bulletTeamId, ChCollisionTeamId: chCollisionTeamId, })