From 7aa508c17a6a7efcfb5f0b3a02707d3af1063560 Mon Sep 17 00:00:00 2001 From: red-kangaroo Date: Mon, 17 Jun 2019 19:56:47 +0200 Subject: [PATCH 01/32] Merge remote-tracking branch 'upstream/master' --- FeLib/Include/festring.h | 1 + FeLib/Source/festring.cpp | 76 ++++++++++++------- Main/Source/proto.cpp | 130 ++++++++++++++++++++++++++------ Script/item.dat | 151 ++++++++++++++++++++------------------ 4 files changed, 234 insertions(+), 124 deletions(-) diff --git a/FeLib/Include/festring.h b/FeLib/Include/festring.h index 931aba122..3c1af2a54 100644 --- a/FeLib/Include/festring.h +++ b/FeLib/Include/festring.h @@ -80,6 +80,7 @@ class festring void Empty(); void Assign(sizetype, char); void Resize(sizetype, char = ' '); + void ShrinkWhitespace(); sizetype Find(char, sizetype = 0) const; sizetype Find(cchar* CStr, sizetype Pos = 0) const { return Find(CStr, Pos, strlen(CStr)); } diff --git a/FeLib/Source/festring.cpp b/FeLib/Source/festring.cpp index 71899fc3d..6d26138ce 100644 --- a/FeLib/Source/festring.cpp +++ b/FeLib/Source/festring.cpp @@ -193,8 +193,6 @@ festring& festring::Append(cfestring& Str) sizetype N = Str.Size; sizetype OldSize = Size; sizetype NewSize = OldSize + N; - char* OldPtr = Data; - char* OtherPtr = Str.Data; if(OwnsData && !REFS(Data) && NewSize <= Reserved) { @@ -316,6 +314,43 @@ void festring::Resize(sizetype NewSize, char Char) return; } +/// Shrink the length of every string of spaces to one. Useful for item search. +void festring::ShrinkWhitespace() +{ + if(Find(" ") == NPos) + return; + + EnsureOwnsData(true); + + truth KeepSpace = Size > 0 && Data[Size-1] == ' '; + sizetype slow = 0, fast = 2; + + while(fast < Size) + { + if(Data[slow] != ' ' || Data[slow+1] != ' ') + { + ++slow; + ++fast; + } + else if(Data[fast] != ' ') + { + while(fast < Size && Data[slow+1] == ' ' && Data[fast] != ' ') + { + Data[++slow] = Data[fast++]; + Data[1+slow] = ' '; + } + Data[2+slow] = ' '; + } + else + ++fast; + } + while(slow < Size && Data[slow] != ' ') + ++slow; + + Size = slow + KeepSpace; + Data[Size] = 0; +} + /// Find a char not before the specified position. festring::sizetype festring::Find(char Char, sizetype Pos) const { @@ -336,22 +371,11 @@ festring::sizetype festring::Find(cchar* CStr, return NPos; if(!N) - return 0; - - char Char = CStr[0]; - - while(true) - { - char* Result = static_cast(memchr(Data + Pos, Char, Size - Pos)); - - if(!Result) - return NPos; + return Pos; - if(!strncmp(Result, CStr, N)) - return Result - Data; - else - Pos = Result - Data + 1; - } + for(sizetype i = Pos; i + N <= Size; ++i) + if(Data[i] == CStr[0] && !strncmp(Data + i, CStr, N)) + return i; return NPos; } @@ -362,12 +386,10 @@ festring::sizetype festring::FindLast(char Char, sizetype Pos) const if(Pos >= Size) Pos = Size - 1; // sizetype(-1) == NPos - sizetype i = Pos; - - while(i != NPos && Data[i] != Char) - --i; + while(Pos != NPos && Data[Pos] != Char) + --Pos; - return i; + return Pos; } /// Find the last occurrence of a string not after the specified position. @@ -375,16 +397,17 @@ festring::sizetype festring::FindLast(cchar* CStr, sizetype Pos, sizetype N) const { - if(!N || Size < N) + if(Size < N) return NPos; - char Char = CStr[0]; - if(Pos > Size - N) Pos = Size - N; + if(!N) + return Pos; + for(sizetype i = Pos; i != NPos; --i) - if(Data[i] == Char && !memcmp(Data + i, CStr, N)) + if(Data[i] == CStr[0] && !strncmp(Data + i, CStr, N)) return i; return NPos; @@ -581,7 +604,6 @@ festring& festring::AppendInt(long Integer) *BufferPtr++ = IntegerMap[Integer][1]; *BufferPtr++ = IntegerMap[Integer][2]; *BufferPtr = 0; - char* EndPtr = BufferPtr; for(BufferPtr = IntegerBuffer; *BufferPtr == '0'; ++BufferPtr); diff --git a/Main/Source/proto.cpp b/Main/Source/proto.cpp index 2bf2f665f..2b99d9afc 100644 --- a/Main/Source/proto.cpp +++ b/Main/Source/proto.cpp @@ -337,39 +337,117 @@ character* protosystem::CreateMonster(int MinDanger, int MaxDanger, int SpecialF } template -std::pair CountCorrectNameLetters(const typename type::database* DataBase, cfestring& Identifier) +static void ScoreFlexibleName( + const typename type::database* DataBase, + cfestring& Identifier, + festring& Name, + festring::sizetype& NamePos, + int& NameScore, + std::pair& Result) { - std::pair Result(0, 0); + // noop +} - if(!DataBase->NameSingular.IsEmpty()) +template <> +void ScoreFlexibleName( + const item::database* DataBase, + cfestring& Identifier, + festring& Name, + festring::sizetype& NamePos, + int& NameScore, + std::pair& Result) +{ + if(!DataBase->FlexibleNameSingular.IsEmpty() && DataBase->NameSingular != DataBase->FlexibleNameSingular) { - ++Result.second; + if((NamePos = festring::IgnoreCaseFind(Identifier, " " + DataBase->FlexibleNameSingular + ' ')) != festring::NPos) + { + Name = DataBase->FlexibleNameSingular; + NameScore = DataBase->FlexibleNameSingular.GetSize(); - if(festring::IgnoreCaseFind(Identifier, " " + DataBase->NameSingular + ' ') != festring::NPos) - Result.first += DataBase->NameSingular.GetSize(); + if(Result.second > 0) // view NameSingular plus FlexibleNameSingular as one + --Result.second; + } + else if(Result.second < 1) + ++Result.second; } +} - if(!DataBase->Adjective.IsEmpty()) +template +static std::pair ScoreName(const typename type::database* DataBase, cfestring& Identifier) +{ + std::pair Result(0, 0); // (score, misses) + festring Name; + festring::sizetype NamePos, AdjectivePos, PostfixPos, AliasPos; + int NameScore, AdjectiveScore, PostfixScore, AliasScore; + + NameScore = AdjectiveScore = PostfixScore = AliasScore = 0; + NamePos = AdjectivePos = PostfixPos = AliasPos = festring::NPos; + + if(!DataBase->NameSingular.IsEmpty()) { - ++Result.second; + if((NamePos = festring::IgnoreCaseFind(Identifier, " " + DataBase->NameSingular + ' ')) != festring::NPos) + { + Name = DataBase->NameSingular; + NameScore = DataBase->NameSingular.GetSize(); + } + else + ++Result.second; + } + + if(NamePos == festring::NPos) + ScoreFlexibleName(DataBase, Identifier, Name, NamePos, NameScore, Result); - if(festring::IgnoreCaseFind(Identifier, " " + DataBase->Adjective + ' ') != festring::NPos) - Result.first += DataBase->Adjective.GetSize(); + if(!DataBase->Adjective.IsEmpty()) + { + if((AdjectivePos = festring::IgnoreCaseFind(Identifier, " " + DataBase->Adjective + ' ')) != festring::NPos) + { + if(NamePos == festring::NPos || AdjectivePos < NamePos) + AdjectiveScore = DataBase->Adjective.GetSize(); + else + AdjectiveScore = DataBase->Adjective.GetSize() / 2; + } + else + ++Result.second; } if(!DataBase->PostFix.IsEmpty()) { - ++Result.second; - - if(festring::IgnoreCaseFind(Identifier, " " + DataBase->PostFix + ' ') != festring::NPos) - Result.first += DataBase->PostFix.GetSize(); + if((PostfixPos = festring::IgnoreCaseFind(Identifier, " " + DataBase->PostFix + ' ')) != festring::NPos) + { + if(NamePos == festring::NPos || PostfixPos >= NamePos + Name.GetSize() + 1) + PostfixScore = DataBase->PostFix.GetSize(); + else + PostfixScore = DataBase->PostFix.GetSize() / 2; + } + else + ++Result.second; } for(uint c = 0; c < DataBase->Alias.Size; ++c) - if((Result.first == 0 || DataBase->Alias[c].GetSize() > Result.first) - && festring::IgnoreCaseFind(Identifier, " " + DataBase->Alias[c] + ' ') != festring::NPos) - Result.first += DataBase->Alias[c].GetSize(); + { + cfestring& Alias = DataBase->Alias[c]; + if((AliasPos = festring::IgnoreCaseFind(Identifier, " " + Alias + ' ')) != festring::NPos) + { + if(AdjectivePos != festring::NPos && AdjectivePos >= AliasPos) + AdjectivePos /= 2; + + if(PostfixPos != festring::NPos && PostfixPos < AliasPos + Alias.GetSize() + 1) + PostfixScore /= 2; + + if(AliasPos == AdjectivePos) + AliasScore += (Alias.GetSize() + DataBase->Adjective.GetSize()) / 2; + else if(AliasPos + Alias.GetSize() == PostfixPos + DataBase->PostFix.GetSize()) + AliasScore += (Alias.GetSize() + DataBase->PostFix.GetSize()) / 2; + else + AliasScore += Alias.GetSize(); + + if(NamePos == festring::NPos) + --Result.second; + } + } + + Result.first = NameScore + AdjectiveScore + PostfixScore + AliasScore; return Result; } @@ -378,8 +456,9 @@ template std::pair SearchForP typedef typename type::prototype prototype; typedef typename type::database database; - festring Identifier; - Identifier << ' ' << What << ' '; + festring Identifier = " " + What + ' '; + Identifier.ShrinkWhitespace(); + truth BrokenRequested = festring::IgnoreCaseFind(Identifier, " broken ") != festring::NPos; truth Illegal = false, Conflict = false; std::pair ID(0, 0); @@ -394,20 +473,23 @@ template std::pair SearchForP for(int c = 0; c < ConfigSize; ++c) if(!ConfigData[c]->IsAbstract) { - if(BrokenRequested == !(ConfigData[c]->Config & BROKEN)) + truth IsBroken = ConfigData[c]->Config & BROKEN + || festring::IgnoreCaseFind(" " + ConfigData[c]->Adjective + ' ', " broken ") != festring::NPos; + + if(BrokenRequested == !IsBroken) continue; - std::pair Correct = CountCorrectNameLetters(ConfigData[c], Identifier); + std::pair Score = ScoreName(ConfigData[c], Identifier); - if(Correct == Best) + if(Score == Best) Conflict = true; - else if(Correct.first > Best.first || (Correct.first == Best.first && Correct.second < Best.second)) + else if(Score.first > Best.first || (Score.first == Best.first && Score.second < Best.second)) { if(ConfigData[c]->CanBeWished || game::WizardModeIsActive()) { ID.first = Proto; ID.second = ConfigData[c]->Config; - Best = Correct; + Best = Score; Conflict = false; } else diff --git a/Script/item.dat b/Script/item.dat index a1fde5de3..3214da56d 100644 --- a/Script/item.dat +++ b/Script/item.dat @@ -52,6 +52,8 @@ item UsesLongAdjectiveArticle = false; /* Obligatory: NameSingular */ /* NameSingular + "s" by default: NamePlural */ + /* FlexibleNameSingular = NameSingular */ + /* Alias = Base.Alias; items of unique names should also have unique aliases */ PostFix = ""; ArticleMode = 0; /* Obligatory: MainMaterialConfig */ @@ -284,7 +286,7 @@ meleeweapon WieldedBitmapPos = 160, 16; EnchantmentPlusChance = 5; DamageFlags = SLASH|PIERCE; - Alias == "longsword"; + Alias = { 2, "longsword", "sword"; } } Config BROKEN|LONG_SWORD; @@ -374,7 +376,7 @@ meleeweapon EnchantmentMinusChance = 5; EnchantmentPlusChance = 5; DamageFlags = SLASH; - Alias = { 2, "greatsword", "great sword"; } + Alias = { 4, "greatsword", "great sword", "broadsword", "broad sword"; } } Config BROKEN|TWO_HANDED_SWORD; @@ -465,7 +467,7 @@ meleeweapon EnchantmentMinusChance = 5; EnchantmentPlusChance = 5; DamageFlags = SLASH; - Alias == "curved sword"; + Alias = { 3, "scimitar", "curved sword", "curved blade"; } } Config BROKEN|TWO_HANDED_SCIMITAR; @@ -951,6 +953,7 @@ meleeweapon FormModifier = 75; StrengthModifier = 60; NameSingular = "dagger"; + Alias = { 3, "knife", "cutter", "cut"; } MainMaterialConfig = { 67, DRAGON_BONE, OBSIDIAN, JASPER, JACINTH, DEEP_CORAL, HALCYON, QUARTZITE, ROSE_QUARTZ, AMETHYST, @@ -1074,7 +1077,7 @@ meleeweapon WieldedBitmapPos = 160, 32; EnchantmentPlusChance = 15; DamageFlags = SLASH|PIERCE; - Alias == "shortsword"; + Alias = { 2, "shortsword", "blade"; } } Config BROKEN|SHORT_SWORD; @@ -1231,7 +1234,7 @@ meleeweapon WieldedBitmapPos = 160, 272; EnchantmentPlusChance = 10; DamageFlags = SLASH; - Alias == "battle-axe"; + Alias = { 3, "battleaxe", "battle-axe", "great axe"; } } Config BROKEN|BATTLE_AXE; @@ -1494,6 +1497,7 @@ meleeweapon BitmapPos = 80, 112; FormModifier = 60; NameSingular = "rolling pin"; + Alias == "roller"; MainMaterialConfig = { 20, FUNGI_WOOD, SPRUCE_WOOD, SYCAMORE_WOOD, ELM_WOOD, ASH_WOOD, CYPRESS_WOOD, HOLLY_WOOD, YEW_WOOD, BEECH_WOOD, BAMBOO_WOOD, @@ -1528,6 +1532,7 @@ meleeweapon BitmapPos = 80, 96; FormModifier = 75; NameSingular = "frying pan"; + Alias == "pan"; MainMaterialConfig = { 12, COPPER, BRONZE, IRON, STEEL, METEORIC_STEEL, MITHRIL, OCTIRON, LEAD, ALUMINIUM, NICKEL, CHROME, STAINLESS_STEEL; } @@ -1560,6 +1565,7 @@ meleeweapon FormModifier = 75; StrengthModifier = 50; NameSingular = "beast claw"; + Alias = { 3, "beast claws", "claws", "claw"; } MainMaterialConfig = { 67, DRAGON_BONE, OBSIDIAN, JASPER, JACINTH, DEEP_CORAL, HALCYON, QUARTZITE, ROSE_QUARTZ, AMETHYST, @@ -1721,7 +1727,7 @@ banana /* materialcontainer-> */ NameSingular = "banana"; MainMaterialConfig == BANANA_PEEL; SecondaryMaterialConfig == BANANA_FLESH; - Alias = { 2, "gun", "snack"; } + Alias = { 3, "fruit", "gun", "snack"; } Roundness = 15; CanBeBroken = true; /* MinCharges & MaxCharges overridden */ @@ -1849,7 +1855,7 @@ pickaxe /* meleeweapon-> */ BitmapPos = 0, 96; FormModifier = 35; NameSingular = "pick-axe"; - Alias = { 3, "pick-ax", "pickaxe", "pick axe"; } + Alias = { 4, "pickax", "pick-ax", "pickaxe", "pick axe"; } Roundness = 20; WeaponCategory = AXES; StrengthModifier = 75; @@ -2115,7 +2121,7 @@ bodyarmor /* armor-> */ PriceIsProportionalToEnchantment = true; AttachedGod = SEGES; EnchantmentPlusChance = 2; - Alias = { 5, "AoGH", "life", "health", "armor of greater health", "endurance"; } + Alias = { 5, "AoGH", "armour", "life", "health", "endurance"; } TorsoArmorBitmapPos = 32, 464; ArmArmorBitmapPos = 80, 464; AthleteArmArmorBitmapPos = 80, 480; @@ -2318,6 +2324,7 @@ brokenbottle /* cannot contain anything, so NOT bottle-> */ Config VIAL; { NameSingular = "vial"; + Alias == "phial"; } } @@ -2343,7 +2350,7 @@ scrollofteleportation /* scroll-> */ Possibility = 100; Price = 50; PostFix = "of teleportation"; - Alias == "scroll of teleport"; + Alias = { 2, "teleport", "teleportation"; } AttachedGod = SOPHOS; ReadDifficulty = 50; } @@ -2357,7 +2364,7 @@ scrolloffireballs /* scroll-> */ ReadDifficulty = 1000; CanBeCloned = false; IsPolymorphSpawnable = false; - Alias = { 4, "scroll of fireballs", "scroll of fireball", "power", "magic"; } + Alias = { 4, "fireballs", "fireball", "power", "magic"; } } scrollofearthquake /* scroll-> */ @@ -2367,7 +2374,7 @@ scrollofearthquake /* scroll-> */ PostFix = "of earthquake"; AttachedGod = SILVA; ReadDifficulty = 2500; - Alias = { 2, "scroll of earthquakes", "earthquake"; } + Alias = { 2, "earthquakes", "earthquake"; } } scrollofbodyswitch /* scroll-> */ @@ -2392,7 +2399,7 @@ scrollofcharging /* scroll-> */ IsPolymorphSpawnable = false; AttachedGod = SOPHOS; ReadDifficulty = 500; - Alias = { 2, "scroll of recharge", "scroll of recharging"; } + Alias = { 2, "recharge", "recharging"; } } nut @@ -2498,8 +2505,9 @@ copyofleftnutofpetrus /* nut-> */ DefaultSize = 10; Category = MISC; DefaultMainVolume = 500; - NameSingular = "copy of the left nut of Petrus"; - NamePlural = "copies of the left nut of Petrus"; + NameSingular = "copy"; + NamePlural = "copies"; + PostFix = "of the left nut of Petrus"; FormModifier = 15; AttachedGod = MELLIS; IsValuable = false; @@ -2669,6 +2677,7 @@ wand BeamStyle = SHIELD_BEAM; AttachedGod = LORICATUS; BreakMsg = "releases its powers, causing a number of highly unexpected effects to occur around itself"; + Alias == "wand of door"; } Config WAND_OF_INVISIBILITY; @@ -2737,6 +2746,7 @@ wand BreakEffectRangeSquare = 1; IsKamikazeWeapon = true; BreakMsg = "vaporizes in an instant, unleashing a deadly rainstorm of polluted acid"; + Alias == "wand of acid"; } Config WAND_OF_MIRRORING; @@ -2824,7 +2834,7 @@ scrollofchangematerial /* scroll-> */ Possibility = 5; Price = 2000; PostFix = "of change material"; - Alias == "SoCM"; + Alias = { 2, "SoCM", "scroll of change"; } AttachedGod = LORICATUS; ReadDifficulty = 2000; } @@ -2945,7 +2955,7 @@ whip /* meleeweapon-> */ FlexibilityIsEssential = true; DamageFlags = SLASH; IsSadistWeapon = true; - Alias = { 3, "BDSM", "love", "porn"; } + Alias = { 4, "BDSM", "love", "porn", "sex"; } Config BROKEN; { @@ -2993,7 +3003,7 @@ backpack /* materialcontainer-> */ NameSingular = "backpack"; MainMaterialConfig == LEATHER; SecondaryMaterialConfig == GUN_POWDER; - Alias = { 4, "explosives", "explosion", "dynamite", "death"; } + Alias = { 5, "explosives", "explosion", "dynamite", "death", "gunpowder"; } Roundness = 70; IsTwoHanded = true; AttachedGod = CRUENTUS; @@ -3095,7 +3105,7 @@ stone 5, 5, 5, 5, 3, 2, 1, 1, 25, 50, 75, 50, 50, 50, 50, 50, 50, 5, 75, 75, 75, 50, 25, 25, 25, 50, 50, 50, 50, 50, 25, 5, 50, 50, 50, 25, 20, 15, 10, 5, 2, 1, 2, 5, 1, 1; } - Alias = { 2, "jewel", "gem"; } + Alias = { 4, "jewel", "gem", "jade", "crystal"; } Roundness = 90; AttachedGod = NONE; WieldedBitmapPos = 160, 368; @@ -3111,6 +3121,7 @@ stone MainMaterialConfig == OBSIDIAN; IsValuable = true; TeleportPriority = 2000; + Alias = { 0; } } Config INGOT; @@ -3119,6 +3130,7 @@ stone Possibility = 10; NameSingular = "ingot"; IsValuable = true; + Alias == "metal"; } } @@ -3207,7 +3219,7 @@ key } } -skeletonkey +skeletonkey /* key-> */ { Possibility = 1; Price = 5000; @@ -3309,8 +3321,8 @@ shield /* armor-> */ Possibility = 1; Adjective = "blessed"; PostFix = "of the Phoenix"; + Alias = { 0; } MainMaterialConfig == PHOENIX_FEATHER; - Alias == "Shield of the Phoenix"; EnchantmentPlusChance = 2; StrengthModifier = 150; GearStates = LIFE_SAVED; @@ -3441,6 +3453,7 @@ cloak /* armor-> */ BitmapPos = 32, 352; FormModifier = 20; NameSingular = "cloak"; + Alias = { 5, "robe", "cape", "cowl", "mantle", "blanket"; } MainMaterialConfig = { 38, LINEN_CLOTH, HEMP_CLOTH, WOOL_CLOTH, FELT, FABRIC, ELF_CLOTH, NYMPH_HAIR, OMMEL_HAIR, TROLL_WOOL, HUMAN_SKIN, WOLF_SKIN, @@ -3565,6 +3578,7 @@ cloak /* armor-> */ MaterialConfigChances == 100; EnchantmentPlusChance = 0; NameSingular = "shadow veil"; + Alias = { 0; } AttachedGod = INFUSCOR; CanBeBroken = false; CanBeWished = false; @@ -3584,6 +3598,7 @@ cloak /* armor-> */ { Possibility = 1; NameSingular = "werewolf fur cloak"; + Alias == "werewolf fur"; MainMaterialConfig == WOLF_SKIN; MaterialConfigChances == 100; GearStates = LYCANTHROPY|REGENERATION; @@ -3614,6 +3629,7 @@ cloak /* armor-> */ Possibility = 1; NameSingular = "mantle"; PostFix = "of Al-Khan"; + Alias = { 0; } MainMaterialConfig == SPIDER_SILK; MaterialConfigChances == 100; GearStates = INVISIBLE|TELEPORT; @@ -3705,7 +3721,6 @@ cloak /* armor-> */ 300, 750, 10, 100, 25, 50, 25, 10, 5, 1, 100, 25, 10, 5, 5, 5, 1, 500, 1000, 300, 100, 50, 10, 50, 15, 50, 15, 50, 10, 5; } - Alias == "invulnerability"; } Config BROKEN|CLOAK_OF_PROTECTION; @@ -3731,6 +3746,7 @@ cloak /* armor-> */ { Possibility = 1; NameSingular = "vampire's cowl"; + Alias = { 2, "vampire cowl", "vampiric cowl"; } MainMaterialConfig == BLACK_LEATHER; MaterialConfigChances == 100; GearStates = VAMPIRISM|INFRA_VISION; @@ -3959,6 +3975,7 @@ gauntlet /* armor-> */ FormModifier = 20; NameSingular = "gauntlet"; FlexibleNameSingular = "glove"; + Alias = { 2, "gauntlets", "gloves"; } MainMaterialConfig = { 145, TIN, COPPER, BRONZE, VERDIGRIS, DEEP_BRONZE, BRASS, HEPATIZON, SILVER, MOON_SILVER, FAIRY_STEEL, MITHRIL, PLATINUM, LEAD, @@ -4047,8 +4064,6 @@ gauntlet /* armor-> */ { Possibility = 10; StrengthModifier = 110; - NameSingular = "gauntlet"; - FlexibleNameSingular = "glove"; PostFix = "of strength"; AffectsArmStrength = true; Price = 75; @@ -4074,8 +4089,6 @@ gauntlet /* armor-> */ { Possibility = 10; StrengthModifier = 110; - NameSingular = "gauntlet"; - FlexibleNameSingular = "glove"; PostFix = "of dexterity"; AffectsDexterity = true; Price = 100; @@ -4083,7 +4096,7 @@ gauntlet /* armor-> */ PriceIsProportionalToEnchantment = true; AttachedGod = CLEPTIA; EnchantmentPlusChance = 2; - Alias = { 2, "gauntlet of dexterity", "gauntlets of dexterity"; } + Alias == "dexterity"; } Config BROKEN|GAUNTLET_OF_DEXTERITY; @@ -4168,8 +4181,6 @@ belt /* armor-> */ Config BELT_OF_CARRYING; { Possibility = 5; - NameSingular = "girdle"; - FlexibleNameSingular = "belt"; PostFix = "of carrying"; AffectsCarryingCapacity = true; Price = 75; @@ -4197,8 +4208,6 @@ belt /* armor-> */ Config BELT_OF_LEVITATION; { Possibility = 0; - NameSingular = "girdle"; - FlexibleNameSingular = "belt"; PostFix = "of levitation"; GearStates = LEVITATION; Price = 500; @@ -4222,8 +4231,6 @@ belt /* armor-> */ DefaultMainVolume = 300; StrengthModifier = 150; Possibility = 5; - NameSingular = "girdle"; - FlexibleNameSingular = "belt"; PostFix = "of protection"; MainMaterialConfig = { 30, COPPER, BRONZE, VERDIGRIS, DEEP_BRONZE, BRASS, SILVER, MOON_SILVER, @@ -4260,8 +4267,6 @@ belt /* armor-> */ Config BELT_OF_GIANT_STRENGTH; { Possibility = 5; - NameSingular = "girdle"; - FlexibleNameSingular = "belt"; PostFix = "of giant strength"; Price = 500; AffectsArmStrength = true; @@ -4272,7 +4277,7 @@ belt /* armor-> */ MainMaterialConfig == BEAR_SKIN; MaterialConfigChances == 100; EnchantmentPlusChance = 2; - Alias = { 2, "belt of strength", "strength"; } + Alias == "strength"; } Config BROKEN|BELT_OF_GIANT_STRENGTH; @@ -4291,6 +4296,7 @@ belt /* armor-> */ Possibility = 5; Adjective = "thief's"; NameSingular = "girdle"; + FlexibleNameSingular = "girdle"; Price = 500; AffectsDexterity = true; AffectsAgility = true; @@ -4300,7 +4306,7 @@ belt /* armor-> */ MainMaterialConfig == NYMPH_HAIR; MaterialConfigChances == 100; EnchantmentPlusChance = 2; - Alias = { 3, "thief belt", "dexterity", "agility"; } + Alias = { 4, "thief's belt", "thief girdle", "thief belt", "agility"; } } Config BROKEN|BELT_OF_THIEF; @@ -4317,8 +4323,6 @@ belt /* armor-> */ Config BELT_OF_REGENERATION; { Possibility = 2; - NameSingular = "girdle"; - FlexibleNameSingular = "belt"; PostFix = "of regeneration"; GearStates = REGENERATION; Price = 100; @@ -4515,7 +4519,7 @@ ring Price = 2500; AttachedGod = SEGES; TeleportPriority = 1000; - Alias == "ring of polymorph lock"; + Alias = { 2, "ring of polymorph lock", "unchanging"; } CanBeWished = false; IsPolymorphSpawnable = false; CanBeCloned = false; @@ -4555,7 +4559,7 @@ ring Price = 250; AttachedGod = CRUENTUS; GearStates = FEARLESS; - Alias == "ring of fearlessness"; + Alias = { 2, "fearlessness", "bravery"; } } } @@ -4596,7 +4600,7 @@ amulet GearStates = ESP; Price = 1000; AttachedGod = INFUSCOR; - Alias == "ESP"; + Alias = { 2, "ESP", "telepathy"; } } Config AMULET_OF_WARDING; @@ -4660,6 +4664,7 @@ amulet GearStates = DISEASE_IMMUNITY; Price = 2000; AttachedGod = SEGES; + Alias == "immunity"; } Config AMULET_OF_DIMENSION_ANCHOR; @@ -4681,6 +4686,7 @@ amulet GearStates = FASTING; Price = 2000; AttachedGod = DULCIS; + Alias = { 2, "fasting", "dieting"; } } } @@ -4988,6 +4994,7 @@ itemcontainer { Adjective = "small"; NameSingular = "strong-box"; + Alias = { 5, "strongbox", "strong box", "safe", "coffer", "safety"; } DefaultSize = 30; StorageVolume = 5000; DefaultMainVolume = 250; @@ -5058,6 +5065,7 @@ helmet FormModifier = 10; NameSingular = "helmet"; FlexibleNameSingular = "cap"; + Alias == "helm"; MainMaterialConfig = { 145, TIN, COPPER, BRONZE, VERDIGRIS, DEEP_BRONZE, BRASS, HEPATIZON, SILVER, MOON_SILVER, FAIRY_STEEL, MITHRIL, PLATINUM, LEAD, @@ -5190,8 +5198,6 @@ helmet FormModifier = 25; BitmapPos = 48, 32; Possibility = 1; - NameSingular = "helmet"; - FlexibleNameSingular = "cap"; PostFix = "of piercing perception"; AffectsPerception = true; MainMaterialConfig == ILLITHIUM; @@ -5204,7 +5210,7 @@ helmet HelmetBitmapPos = 96, 432; EnchantmentPlusChance = 2; SoundResistance = 1; - Alias = { 2, "helm of perception", "perception"; } + Alias == "perception"; } Config BROKEN|HELM_OF_PERCEPTION; @@ -5225,8 +5231,6 @@ helmet FormModifier = 25; BitmapPos = 48, 32; Possibility = 1; - NameSingular = "helmet"; - FlexibleNameSingular = "cap"; PostFix = "of understanding"; AffectsWisdom = true; MainMaterialConfig == UNICORN_HORN; @@ -5239,7 +5243,7 @@ helmet HelmetBitmapPos = 96, 432; EnchantmentPlusChance = 2; SoundResistance = 1; - Alias = { 2, "helm of wisdom", "wisdom"; } + Alias == "wisdom"; } Config BROKEN|HELM_OF_UNDERSTANDING; @@ -5260,8 +5264,6 @@ helmet FormModifier = 25; BitmapPos = 48, 32; Possibility = 1; - NameSingular = "helmet"; - FlexibleNameSingular = "cap"; PostFix = "of brilliance"; AffectsIntelligence = true; MainMaterialConfig == ARCANITE; @@ -5273,7 +5275,7 @@ helmet HelmetBitmapPos = 96, 432; EnchantmentPlusChance = 2; SoundResistance = 1; - Alias = { 2, "helm of intelligence", "intelligence"; } + Alias = { 2, "brilliance", "intelligence"; } } Config BROKEN|HELM_OF_BRILLIANCE; @@ -5294,8 +5296,6 @@ helmet FormModifier = 25; BitmapPos = 48, 32; Possibility = 5; - NameSingular = "helmet"; - FlexibleNameSingular = "cap"; PostFix = "of attractivity"; AffectsCharisma = true; MainMaterialConfig == GOLD; @@ -5308,7 +5308,7 @@ helmet HelmetBitmapPos = 96, 432; EnchantmentPlusChance = 2; SoundResistance = 1; - Alias = { 2, "helm of charisma", "charisma"; } + Alias = { 2, "attractivity", "charisma"; } } Config BROKEN|HELM_OF_ATTRACTIVITY; @@ -5331,6 +5331,7 @@ helmet Possibility = 0; Adjective = "Gorovits family"; NameSingular = "gas mask"; + Alias = { 0; } MainMaterialConfig == KEVLAR; MaterialConfigChances == 100; Price = 50; @@ -5360,8 +5361,6 @@ helmet FormModifier = 25; BitmapPos = 48, 32; Possibility = 1; - NameSingular = "helmet"; - FlexibleNameSingular = "cap"; PostFix = "of indomitable will"; AffectsWillPower = true; MainMaterialConfig == OCTIRON; @@ -5373,7 +5372,7 @@ helmet CoverPercentile = 90; HelmetBitmapPos = 96, 432; EnchantmentPlusChance = 2; - Alias = { 3, "helm of willpower", "willpower", "will"; } + Alias = { 2, "willpower", "will"; } } Config BROKEN|HELM_OF_WILLPOWER; @@ -5394,8 +5393,6 @@ helmet FormModifier = 25; BitmapPos = 48, 32; Possibility = 5; - NameSingular = "helmet"; - FlexibleNameSingular = "cap"; PostFix = "of telepathy"; GearStates = ESP; MainMaterialConfig == SOUL_STEEL; @@ -5405,7 +5402,7 @@ helmet CoverPercentile = 90; HelmetBitmapPos = 96, 432; EnchantmentPlusChance = 2; - Alias == "helm of ESP"; + Alias = { 3, "helmet of ESP", "helm of ESP", "cap of ESP"; } } Config BROKEN|HELM_OF_TELEPATHY; @@ -5426,8 +5423,6 @@ helmet FormModifier = 25; BitmapPos = 48, 32; Possibility = 5; - NameSingular = "helmet"; - FlexibleNameSingular = "cap"; PostFix = "of teleportation"; GearStates = TELEPORT; MainMaterialConfig == MITHRIL; @@ -5437,7 +5432,7 @@ helmet CoverPercentile = 90; HelmetBitmapPos = 96, 432; EnchantmentPlusChance = 2; - Alias == "helm of teleport"; + Alias = { 3, "helmet of teleport", "helm of teleport", "cap of teleport"; } } Config BROKEN|HELM_OF_TELEPORTATION; @@ -5502,10 +5497,8 @@ helmet FormModifier = 25; BitmapPos = 48, 32; Possibility = 1; - NameSingular = "helmet"; - FlexibleNameSingular = "cap"; PostFix = "of essence plethora"; - Alias == "helm of mana"; + Alias = { 3, "helmet of mana", "helm of mana", "cap of mana"; } AffectsMana = true; MainMaterialConfig == AMETHYST; MaterialConfigChances == 100; @@ -5537,6 +5530,7 @@ helmet BitmapPos = 80, 208; Possibility = 10; NameSingular = "mask"; + Alias = { 0; } CoverPercentile = 30; HelmetBitmapPos = 112, 129; MainMaterialConfig = { 100, @@ -5607,8 +5601,8 @@ helmet Possibility = 1; Adjective = "war"; NameSingular = "mask"; + Alias = { 0; } PostFix = "of Tlachtlallotlachitl"; - Alias == "war mask"; HelmetBitmapPos = 112, 129; ArticleMode = FORCE_THE; CanBeWished = false; @@ -6062,7 +6056,7 @@ scrollofrepair /* scroll-> */ Possibility = 50; Price = 250; PostFix = "of repair"; - Alias = { 2, "scroll of repairing", "repair"; } + Alias == "repair"; AttachedGod = LORICATUS; ReadDifficulty = 500; } @@ -6248,6 +6242,7 @@ chameleonwhip /* meleeweapon->whip-> */ DefaultSecondaryVolume = 50; StrengthModifier = 100; NameSingular = "chameleon whip"; + Alias = { 0; } MainMaterialConfig == OMMEL_HAIR; SecondaryMaterialConfig == RUBY; Roundness = 2; @@ -6360,6 +6355,7 @@ wondersmellstaff DefaultSecondaryVolume = 200; NameSingular = "staff"; PostFix = "of wondrous smells"; + Alias == "staff of smells"; MainMaterialConfig = { 11, EBONY_WOOD, ARCANITE, OCTIRON, KAURI_WOOD, RATA_WOOD, SIDGURE_WOOD, ORICHALCUM, STAR_METAL, OCCULTUM, CHLOROPHYTE, PRIMORDIAL_ICE; } @@ -6400,7 +6396,7 @@ charmlyre AttachedGod = DULCIS; WieldedBitmapPos = 176, 352; CanBeBurned = false; - Alias = { 5, "charm", "domination", "control", "peace", "world peace"; } + Alias = { 6, "music", "charm", "domination", "control", "peace", "world peace"; } } ennerhead /* head-> */ @@ -6497,6 +6493,7 @@ stick BitmapPos = 80, 240; FormModifier = 40; NameSingular = "stick"; + Alias == "firewood"; MainMaterialConfig = { 7, BALSA_WOOD, PINE_WOOD, FIR_WOOD, BIRCH_WOOD, OAK_WOOD, TEAK_WOOD, EBONY_WOOD; } MaterialConfigChances = { 7, 100, 350, 300, 250, 200, 150, 100; } OKVisualEffects = MIRROR|FLIP; @@ -6521,6 +6518,7 @@ scrollofgolemcreation /* scroll-> */ Possibility = 10; Price = 750; PostFix = "of golem creation"; + Alias = { 2, "SoGC", "golem"; } AttachedGod = SOPHOS; ReadDifficulty = 1000; } @@ -6551,15 +6549,15 @@ holyhandgrenade DefaultSize = 15; Category = MISC; DefaultMainVolume = 200; - NameSingular = "handgrenade of Antioch"; - NamePlural = "handgrenades of Antioch"; + NameSingular = "handgrenade"; + PostFix = "of Antioch"; FormModifier = 15; AttachedGod = VALPURUS; Possibility = 5; Price = 500; MainMaterialConfig == VALPURIUM; Adjective = "holy"; - Alias == "holy grenade"; + Alias = { 3, "holy grenade", "hand grenade", "handgrenade"; } CanBePiled = false; CanBeBurned = false; } @@ -6616,6 +6614,7 @@ weepblade StrengthModifier = 90; NameSingular = "blade"; Adjective = "weeping"; + Alias == "blade of spitting"; MainMaterialConfig = { 13, MILKY_QUARTZ, QUARTZITE, ROSE_QUARTZ, NETHER_QUARTZ, PURPLE_CRYSTAL, BLUE_CRYSTAL, GREEN_CRYSTAL, MAGIC_CRYSTAL, JADEITE, MALACHITE, @@ -6645,7 +6644,7 @@ weepblade } } -acidshield /* armor ->*/ +acidshield /* armor->shield-> */ { DefaultSize = 60; Possibility = 2; @@ -6662,6 +6661,7 @@ acidshield /* armor ->*/ EnchantmentPlusChance = 2; AcidResistance = 3; NameSingular = "acid shield"; + Alias == "shield of spitting"; BitmapPos = 32, 336; WeaponCategory = SHIELDS; CanBeBroken = true; @@ -6759,6 +6759,7 @@ chastitybelt StrengthModifier = 60; BitmapPos = 80, 80; NameSingular = "chastity belt"; + Alias = { 3, "chastity", "abstinence", "invulnerability"; } MainMaterialConfig = { 4, IRON, GOLD, SILVER, PLATINUM; } MaterialConfigChances = { 4, 250, 5, 5, 5; } Roundness = 50; @@ -7096,7 +7097,7 @@ materialmanual /* holybook-> */ AttachedGod = LORICATUS; WieldedBitmapPos = 176, 144; ReadDifficulty = 500; - Alias = { 2, "materials", "manual of materials"; } + Alias = { 2, "materials", "material"; } } ullrbone @@ -7269,6 +7270,8 @@ trinket StrengthModifier = 75; Adjective = "dead"; NameSingular = "fish"; + /* one more "fish" to avoid conflicts with "fish bone" */ + Alias = { 2, "fish", "sardine"; } MainMaterialConfig == SARDINE; Roundness = 15; AttachedGod = SEGES; @@ -7284,6 +7287,7 @@ trinket StrengthModifier = 75; Adjective = "fish"; NameSingular = "skeleton"; + Alias = { 2, "fish bone", "fishbone"; } MainMaterialConfig == BONE; Roundness = 15; AttachedGod = SCABIES; @@ -7299,6 +7303,7 @@ trinket StrengthModifier = 75; Possibility = 1; NameSingular = "timepiece"; + Alias == "clock"; MainMaterialConfig == ARCANITE; SecondaryMaterialConfig == OAK_WOOD; Roundness = 75; From 452b45c9c678b0a5666496f7ef250d29baedf202 Mon Sep 17 00:00:00 2001 From: finduraf Date: Tue, 11 Feb 2025 15:33:16 +0100 Subject: [PATCH 02/32] cicd: VS 17 2022 --- CMakeSettings.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CMakeSettings.json b/CMakeSettings.json index 05fd6da9f..c0fecbfe1 100644 --- a/CMakeSettings.json +++ b/CMakeSettings.json @@ -2,7 +2,7 @@ "configurations": [ { "name": "x86-Release", - "generator": "Visual Studio 15 2017", + "generator": "Visual Studio 17 2022", "configurationType": "Release", "inheritEnvironments": [ "msvc_x86" From aa11d8e4b1c402f734323f96cf25ca4c827e70f3 Mon Sep 17 00:00:00 2001 From: finduraf Date: Tue, 11 Feb 2025 15:41:48 +0100 Subject: [PATCH 03/32] refact: Add gitignore --- .gitignore | 57 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 57 insertions(+) create mode 100644 .gitignore diff --git a/.gitignore b/.gitignore new file mode 100644 index 000000000..b9b95c137 --- /dev/null +++ b/.gitignore @@ -0,0 +1,57 @@ +# Do not track these files. + +# Node artifact files +node_modules/ +dist/ + +# Compiled Java class files +*.class + +# Compiled Python bytecode +*.py[cod] +__pycache__ + +# Log files +log/ +*.log + +# Package files +*.jar +/*egg-info/ + +# Maven +target/ + +# JetBrains IDE +.idea/ +venv/ + +# Visual Studio +.vs* + +# Unit test reports +TEST*.xml + +# Generated by MacOS +.DS_Store + +# Generated by Windows +Thumbs.db + +# Applications +*.app +*.exe +*.war + +# Large media files +*.mp4 +*.tiff +*.avi +*.flv +*.mov +*.wmv + +# Temporary files +~$*.doc* +~$*.xls* +~$*.ppt* From 35233ecc73aa89dec81a6a952d28b8d0e614c0b6 Mon Sep 17 00:00:00 2001 From: finduraf Date: Tue, 11 Feb 2025 15:43:27 +0100 Subject: [PATCH 04/32] fix: Feline brackets --- Main/Source/nonhuman.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Main/Source/nonhuman.cpp b/Main/Source/nonhuman.cpp index 326d97d51..0ffaaa4bc 100644 --- a/Main/Source/nonhuman.cpp +++ b/Main/Source/nonhuman.cpp @@ -164,9 +164,10 @@ truth feline::Catches(item* Thingy) if(CanBeSeenByPlayer()) ADD_MESSAGE("%s catches %s and eats it.", CHAR_NAME(DEFINITE), Thingy->CHAR_NAME(DEFINITE)); - if(PLAYER->GetRelativeDanger(this, true) > 0.1) + if(PLAYER->GetRelativeDanger(this, true) > 0.1) { ChangeTeam(PLAYER->GetTeam()); ADD_MESSAGE("%s seems to be much more friendly towards you.", CHAR_NAME(DEFINITE)); + } } } else if(IsPlayer()) From 3c9ba9ffb956fca7a02696132db170d15ae38c01 Mon Sep 17 00:00:00 2001 From: finduraf Date: Tue, 11 Feb 2025 15:44:10 +0100 Subject: [PATCH 05/32] fix: Aslona wizard RAND call --- Main/Source/human.cpp | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/Main/Source/human.cpp b/Main/Source/human.cpp index de8f4088a..1a3ee9d5a 100644 --- a/Main/Source/human.cpp +++ b/Main/Source/human.cpp @@ -1889,7 +1889,7 @@ truth humanoid::SwitchToCraft(recipedata rpd) {DBGLN; craft* Craft = craft::Spawn(this);DBGLN; DBG4(rpd.GetTool(),rpd.GetTool2(),GetRightArm()?GetRightArm()->IsUsable():0,GetLeftArm()?GetLeftArm()->IsUsable():0); - + bool b1OK=false; bool b2OK=false; item* it; @@ -1901,7 +1901,7 @@ truth humanoid::SwitchToCraft(recipedata rpd) b1OK=true; Craft->SetMoveCraftTool(false); } - + if(!b1OK && GetRightArm() && GetRightArm()->IsUsable()){ if((it = GetRightWielded())){ Craft->SetRightBackupID(it->GetID()); @@ -1914,7 +1914,7 @@ truth humanoid::SwitchToCraft(recipedata rpd) b1OK=true; Craft->SetMoveCraftTool(true); } - + if(!b1OK && GetLeftArm() && GetLeftArm()->IsUsable()){ if((it = GetLeftWielded())){ Craft->SetLeftBackupID(it->GetID()); @@ -1927,11 +1927,11 @@ truth humanoid::SwitchToCraft(recipedata rpd) b1OK=true; Craft->SetMoveCraftTool(true); } - + }else{ b1OK=true; //can craft somethings w/o tools } - + //TODO let the GetTool2() be equipped too? if(b1OK){ @@ -1939,7 +1939,7 @@ truth humanoid::SwitchToCraft(recipedata rpd) SetAction(Craft);DBGLN; return true; } - + ADD_MESSAGE("You have no usable arm."); rpd.SetAlreadyExplained(); return false; @@ -5390,7 +5390,7 @@ void FixSumoWrestlerHouse(festring fsCmdParams) break; } } - + if(SM){ for(int d = 0; d < SM->GetNeighbourSquares(); ++d) { @@ -5412,7 +5412,7 @@ void sumowrestler::GetAICommand() devcons::AddDevCmd("FixSumoHouse",FixSumoWrestlerHouse, "BugFix sumo wrestler house in case banana growers over crowd it."); return true;}(); - + EditNP(-25); SeekLeader(GetLeader()); @@ -7227,7 +7227,7 @@ void aslonawizard::GetAICommand() } if(NearestEnemy && NearestEnemy->GetPos().IsAdjacent(Pos) && - (!(RAND() & 4) || StateIsActivated(PANIC))) + (!(RAND() % 4) || StateIsActivated(PANIC))) { if(CanBeSeenByPlayer()) ADD_MESSAGE("%s invokes a spell and disappears.", CHAR_NAME(DEFINITE)); From ace77df14980ae0a768a187d1124efd4d0a81c77 Mon Sep 17 00:00:00 2001 From: red-kangaroo Date: Mon, 15 Aug 2022 22:43:12 +0200 Subject: [PATCH 06/32] Add some art --- Graphics/Char.png | Bin 31082 -> 31085 bytes Graphics/nuke.png | Bin 0 -> 289850 bytes 2 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 Graphics/nuke.png diff --git a/Graphics/Char.png b/Graphics/Char.png index 01530a88f1d40aa4d48d4137f9d52d1d2a0f4df4..b3e558cdcaf7b33cded423a7f6a6122c267ea937 100644 GIT binary patch delta 25085 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

j2sI$lQ7o%9L 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 diff --git a/Graphics/nuke.png b/Graphics/nuke.png new file mode 100644 index 0000000000000000000000000000000000000000..4cbe9aa3bdbad2ac374fee8fa86f564fe18ed741 GIT binary patch literal 289850 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

HA&6oisGy~=LJixBaD@MW zf0f&AxT~JR9lN2hMav=`lu3aA6CkoKUv=NDPOHI5t`op#hZ^_)!sF&+V=c=>(38W z+g_|)Schdt$d9zV8P_8p9G9{l-yE)AAKCUQP}dvHxAyFJ0AAkdGqq( zw4R{vfBX3UgU9ph>($x6G{)`4Cp}vZtHGD?!5_c*``>b7>mk_o(`{dE3F zJa*CQJiBGU)dL_z0D>qGl88(iA%MhpC?!BEsSF}Qbd!LPV3vKT=n&0J>33Fj_26F7 zDz}RU9AY_`Gk3R#afNx2cGq)VJOXWLYPTH9Fb?HvJIt9rZA!ESlZQf5OIF;W5k&ON z5NokisSpREWJk$PSES%&X=End>?jkSWh{lVV$CemSJt{P-yAwrx(ZA#AO{O2VP@)X zZ19o^2MP3cn6nPnRENqwqZ(_4cHnxIU5Cu<^AZDtsY-VOe|B>H>A+q_?)Hb<9zA#4-JXk3CT zbG}8LeA8aUbaT)4%Y2#d@8_OSSa$7ds=?>N+@H6I-^NJ>LtG}Q_NNs(PX)&_K% zt&F`zPaBakuVX=OdN=E0@oYKNmRSLMMmJD0g7m(RbPF&e4~8!GUff(zfMzteLucbK z7-)3%WtC|rE1S}{vs#*jydx{s3*!*AI3#zc6rrU{>U~KXJz>xtKtzvJc8G2U!3|Ey z&;bgW>E@IHG6c;a+zGjs$VBw{(A0MDLo1{YQ*lG<>Eqz4f=D0)by78*J`RPgC30y4 zp-3;adUP1WnMV*UZTaLM?~Ttt?T^>T-mY14e^}hT4p!PYgb&Kt-L~tN zhhZ9pwjY~@VddKwm#6EaZ!Z^2Z4_Q##%-PsOT^Qo)A9Lbc{sKI@bc*UPy5lo`uw6D z_Pd*6A3s0qbz8^7Q0(|L=2!b#-+t?R`Sk(Zymw{u$Gc~7`To<|gS%CxISCYwg*3t} z8Y~AgBHok`)6kxn=tQ6ESZux6t`SpW8EQ$IBZ)Ck%qRk z$evQ|)-A4{zr386zJC1Z>CvE@wp#b47Y(#gpjmNXT2z?qVZ)%luM&V#kU3cEP;~P$ z1Z%owC^1Z}S?MZEn0Xo0a(|d*Y3ovWXg>Cvxs8h0cjSUhFf~^nnBV}DGBmh38O;n0 zMJ$jZX?5j&4j+3aWW^Q9QWjBAdQi5 zBm^U*CKzRKqXcC}G%lSbV!7Qmwyh1_Cr6z|gQr-$6y_43*P+s!0NuTKElj%iC2brt z0+2GY1>NRk-Frr{{eSph|35!TAhOnJeD&F@$=Cfh3bX_sjJ+?_eU6B6hz>mI^YP);*N^{bwVn$O z;k%2kUcN(|FBsP=ThhkZ_08MwZ2D<$Z|3!b!{Oe^>h=B=XUB}mWw9I*K-MuyB&~pk zG?M@*k(rbMGB3s51fu|?(LC)tAWg-)hH6W_v|6i=LuRViQS<^1ZHe?+W7kcp%d*R= z%v!RW8li>bbbM6i+S|dcR;AaFi%~gvuJ9mv!)6cf@7UZ!biZWPQ$DHDbc$r-ss4-ugb zS#gYwD>&tc+so}?bvvS{FJ*ZB^5$eXT=wNAOQ~8NZ?>;*#*s7|%l@`cE4$v#Wnxnv zhV0Y4G&{D#!q!Tz{r0MzX4a~>8b)p&-2aE)l|TCB>1MvSx%u78eehPtycwQ6J>usd z-@fMH$79o$o@1GL(aulTC@YS;;e2y;@BZc0?=KgJh05TujO#aMo1->&rW}d%ECngE zj1=6>oir~-2}lAE1Uev^W1t~7Zl(9Ozq+0e$^a!9GxZ&#A!z}cNI_-_1(hP;5pp-O zl;|m}A|Ye!1mjRwo3p%K>g2gz7)gJ+w9Vq8B||;-Etf20-jG7``*cwc%oH#%9;*mJ0+=paCa zfb4RI=vF1+4uhG@U8Go!U@FvN)v|%<^id63d`eiE#<7ruU=~hT^{7fAdXEr{P@}se z5H`4H=iW~Kkx4Iy zWiyb|GWXm4{-|B|hU>rk)%fg#AI0xKz2&_r^!b0e_rv@B`HTI%cUHIGTwSm3 zO>uq8wJ%36mVG(L^67FujXzs$TNKXAYWnQM?x$fG>NpH#*jz5lbarVI4u;aQzz8pj zkU;Z7cfyDyB50=K#e+3U_5rzCnF+-b#C|vTDC%isDg{CSlx8NFlr##7??@nIg$5xA zK;<-5tJ>0+>Fltu3d3=%$JKT`KOWYlZmN$wL1La+T4Za$jN@8ODfc>5q9=OmeYtIW z3v^7+vU_gL&wKajIQ?*yn;Pm_D=YSWUT|QU4rQvDfb~i>#$dzL)R%H|)%Kecvn5Mr zG&iW4hr+DWx21c806G&+uhk;w$Y^4)%TQa39(5Pdv1Blsp$vrp1gWVneK!pqq(B?o zjgWRQ11(JwlxgNpB}(QT^r_B=glBXuU5A)c0xXjmsSKGKA!%Q#o79V!V%fB0q#KlO zps^$YNJvNmj1pi(%S0xv(HV5m0Ayw`W131yD|H-eQ6#9QQrt;;6Qqm~_>ZcaNx*1s zFtSxX{3WhG6!!;=y7AM^VXEWRoJYuvesk|+ygalv>}I+#cSonIvr}7sb8>i7gvV`n z!2aO$RoUcf+0UH!ZNS_&&v?B)e7XFaU*22K@$ToZeqWxxd-7qs;ci>-)#WCRgi<%_ zytcY3FI$d}J{Y#Izxd|I57$Tc=FxU<%Gv$v58s>|`N_JgYjwmMlSer|%-g}XcBc|Z zgCQX$qeui44w{oNHxt0(aOZeD83coF4$EO)md@xQ&;yVJ6G#yB6hOcL3IHL3?t~3VV%r_UG%oYOFGlIp9kx69&o+8lcu1xd-Ci=1@%B0Xzos`oc14Rgg z=%S@8e96q-Wln?4LEXuQKGZUF;x@E2cFD{O7Gp}8g6JgR?q*8S0))A7u&&|! zt&11CdCY^Cr}yG!Nwr~k65E!$)s&&Z2a67!oE6u}lhyWM&$=Gi{>zW25;kn^jq_o5 z*si>GW>(wA)02Cb*LAo2Pk-?E_8XO_Z|`nz=Gmv0zaFP&&u+fGesef_bWcwou#J$~v%md3;^CR?duz7l?6E#w<%@mqgBofjb;npUQzR3F zNjWIYN`Xj71g#8%imxnDbKjQTe!Jbx>5)Xzgp`sn0Z0LaXk-FX3MK+1Iskz%5fYeZ zr&CD@N8b*s^R>NGV$!R98b5q`{2luGXRGr6k%~4hU&0A0_LQYDFJ4L zdKXgJS9LYj7K0lySuBkv$wYUA9FS6Ur%CWaA_Xrpg@i1QWghOYwJV$b)p-B@@Zxg3 zSNeX)=_n6hU)&th@2~x`_j2;=RBvwHe49%>e)OQex_t2T#h2qxo|OBKUjF)<9jz_1 z?w{59Vm>Roc=Phs|L_Ov8<@>SS4lytlSbUS8dwu)7@3&RI8)-u`%3r(D&;&3>0h)A^9|+_AFP8jRK#BWMXr z2#}DF9F&wQ&VUuDRAU*ZWJYG4micD4J?sxlFi;pFm zTCz-=)w3t3W%eV+GM;3gHoaT*SgvC`m$6u_REA|sa2#?Ovvq(L1|vh=lz!9?^Q>}g zOK)=rmu=Q!IZXYAb?9NGR>+D1vMB^JBC=Xv+A^mR#4wFshCR)vGCJl}S(VmG8^>{q zL$K7jm19-7m87(sVM>uqOV3o{g8klATo1~ZJ|W9hV2 zt=UzJLa+i+AppUWU4A$Wy;0fcm?rJI=Yovvgb@$`k};dHMu$ltmyw^Vac=*w!wYP>hzZ>tL)Msx$Ie$`a z{^rXc=~wOatgW86_ujuhVcYh#U0)u(KGCM%l-^>c=?C9@lFwiK@bQq_o9k)i58^6^ z{f%$R0)q(BjOv1s5T%5hcNR|ohGA7;g=tPh?iqv6+uQA~CrE2vm=X!Pr6iD)5+sZe z0Kz~MC?p(ogAzsE$7y)$58gg*^KepPZ_{CG-G*%4#`8f-U-}A?%494mmZ@4)6HXX1 zQA#30pw|+e5n-c?X<=*j?v0)i93WsqAc7=2w;+0jLfE%sbVw} zD1d;GM#(ZINYQ%_n5j@EmJq9ZA<(l9m9ibS@aaJiH+r%`~p$pFwmfnEsT zXSwU8t^^Vpof$LnpbR)gN~;o0;??>uZTzq&3bCy$Pa*njcj_VE25 z9evg|eBO>uFdTta^8BqQM+ZOIT``_K`O(jZ-Iwn?nZH4u|K_jwy+8dY?eB*lpI#4V zdBO4i>1Riqw=P$~VY1av?~VQS7q_^XZTIVMo<3V`uxq2z){kFbP2=HWI z*NfMOGcIM;+6dAp6F~7F8EFX;bT+Fir@6x`ddyPa-OM+KeWR5~5mFMANGda7M1oEL zR8j&65)$YpK!Q*$%^b0Q^v==c4VBA*?klQ#_9UqVCz^d2Og0tGb=2))TtfiJ9MnQi zmJVO`EJ1g*V5v|mN2ajR6B9!P64LGf4C1jv-AB)T=^(iN6cEYU7|!bD~gk_9Xi5@_bgbary;|RX_41}p@5Xwgn~STy;`O~hd~fyo#h3rx)AIT9-aDUtbMNgx_`urZF}}{t z2J?24v(Jy;{`A-L`+xe*^~v%6lm7URZSLQ^-hE}UXWjMcWFH5Q&FP!N+0jPavF0+| zfAsG5@*q@(f&`N)5J98E%$@Q8tyCQ7hI9^AJk{qOt@XAzA5CDlg0s)Ai zfdn7`1Ysrsyfaus_Hi_{c_{@xuuPcSq^@CbSsXewnR`uT!o4J61)0g}h;+b+tgV+x z2NJTW8kIdqueU7KBPvBgLaU=?WYk{BIP@G?R^kNOSj({CoV8jRoTQO$q(VJ1(rJJ# zeMw}N62%xXr)hB(Eg)K2vDu;CI#`w*tjRkNVj@a~;L4_=$SR?fp|Y@dxvx8!>1DBD z8kVIgQ-B$g*(HJSzVGmg2%&BlKr)Zs4UtAdf>JOyMH|7)G=^0t!iU7b7B<#uk(maH zbkZ1rY3`A!)*?w{<~$nJx|`8R8p3MnEQOJDAX9=>X7n_q5(JbWKpJHv1X`F|ibcbm z)B3Qh_jdc79>vRP{fFz;=flhGw^!#^xqJV|_gA|^maEmc#B{F9T>crMi(AePy1#k#;;Z3oz1+Sj?>zqCtyll)*RReW9KUz|?D5MN3+hw@>$+(D{+DCF zI(xXpVRcln=XmqQ#oIree{(r_)2MJKAf!NZ_kejZgc9z>y66_^rO6zMwk)mph^~-W z6c!<~43SbM1VAZt16W9QfdWJlpd|sZ_+cE^gbkB+i1lh&IMxAH(@kE{GpctCaG+Xc z7Q!Z4U&#!H452VnOx8Zj%tABB8e&Q2)YB`Khq0n1Z38R~hMWDtmo`Tqy{4kB%u&;v zHOp9uS`i{aN+OLBOvx9NH4m8uLe81m({W%aIh#$!dbDq}!a!Coq;*mhiWO7BjR`LR zdW2O3Gy}9UbSs6X=Cj5@J(oaqXJBMQMOZ^L8Am{|XK&h>qkxe$Z11!B09=SAxV2oge*CLQK>%ACUJ|Ig4T^X$*NRvb>qf8=5 z0p@T*f(%N!5e23ZCSM)dJ3rmNxftKJ)%~wOdGb&H?D)f9E&J#D?d*A#$B&2SueQUq zdtJM)k6XTVdVT$AoZZ|0-_if%4<9}M+j=@IuU?Ov)y?(rU~}{O>+9vD&1`QrfBwM! zm;J+k{e``I%8_S^U0*?#ubgI}I}`SQbO z_dfsYkH*{O@x$YOQwN*QKKSy@o7E%E7@AG><)%J7sd@CY-0W?QM5H;DnXHgNBP1wE zcjp+M9Wl$g+}ICwK{qHduf`LvkKa08 zm61)QE0Z8(=595-(-!K9}V9L!)!kOb&nNQqJc1__0d0lCR-JNsAv{a^mi{}w<0gKz%s<5g|Do8P@& zkG9YI_ii-3_|@@nW|wbvPo{o#as9ZxI*h;k(T#6yIQrp}+yDLl)SnL9{Gy*e8n*q6 zuYUi08Ee?la&h+O^?%FHSI>?fT)b#sef;wAgNNJy=jG|!?>&3Dy;y$!;NsMN_0@mA z*#F>9^w)oR{qsM(e|q}qml3zGaE>?Y`zM=z*dc6xbr^6H?x=QgIpxD==k4<3$ufr_ zIw6Txl8T_Yn-NwhwJgWA7AtD4n5Qx`8m#ON#d|HKn2-fQ18ESvWM)X9$&nHaBolW? zK)6#XVYNoCe0uP`_uoD?OqLuR#W}+{L{cc{OOhd#l?e}ymk}}IQmF!Cw&AKupS~Hg-qDg`~VnL{@coC49 zVsRJl&AZ4Z?rx{WTxRK24G9$gPR12bJ0zD5EbeE?rdv9G!NS2T~8T0}m z(~1Wb9ZV8{f^&q0gre+WmZH^IPk(n|$TnRx=5iDi^-3<}|Q80++Fjcc?n+n#io}d27%U3V6&NdG1 z;-U=pbl46fA3Qzk-}V#r?eb!HgfE8pXAj?WUtRz1A|CkPeYm;*uRr;s&bPa(Z=Rl> zJ$RU3d~{f&FNgB%hmYQW_k;W&*ZKM19CEw;-XH7G=4YFH^~KHOC!752i`@s$e>>yV z_y31q+^$Nk?N=|F>dE@uPiNb_{qEauP1kRF%wK(VxmZ-!zRxGAW5&+x=-siNU0vTU zC;~_~W+Z4ZcOb)!$cSJyv^g!6P;bjTIHP$r0E$TSBml{k@}k~#heVPFLIem9A|S#f znUz{%+?+gl>-{I^`>UBC-XS1UeZQ}6!)O~G_NZl8aa^yeLji|yCnaS>f67l)@Z& z5PT`rp~)-Nm!7@%kO34x0|+RCU@_1M1FX7WAVQ0k0ns9=nOEc?VI)wBWm*PED3D2{ zfLwadOpBBRDM~7pNYPy^wWpbpRw2?#5tJcHFpJI-hGK3INCJx9=3Xj5bCR({W)Cm! zuwg_G5-{g1(n1axU=Rq&+(St-1B5#gVFjXFS`J1IbFSOB|L)~mfAqz#Z^kDt`UgMU z{O;x1;raehErur#`TXna$$5Ns``N8|^>04jo$P=6(Sz?j!(ludmv*$hE)R5kXy0C+ zALfsjYCF~IqksBeEr(X})jM{{r*D44A3eRfzP96If4RTDjp63vIvkBhIX`*!#I71P`G;vsL@b9&R2UJ$U}bp%)2; zgoG4~1dYnaF}n4= z%4pH{%7~C*A#uknBF$+otCp!k63XaOf}|0E()RLDvf7eJ(BvhpD0|A>qMHy2_2_dK zT#&h2n!3@{qZZ2`WybFqVFZgy$^?x{BTGpu)fgerGE;dcKpKp4bcKi{S=@#S0OLR$ zzj{Gr1{E?F?kGuGaR@Y0G8#$1ASppobWhR&?N;lt>-?gB{KesWKgp;6NA++1^M^k> zso&MNQfj& zcM?{FG-q}dU|NKXPQctPdU1gC!Vt{SRm@B&kc!rNz$-|JqztqKJ>AWV7q=27KtW1r zFeeFsG-Dc-1b7Do2?-zxn!#waq@DPySAYM1{l%Ml{p6kU=98O?i(7wk9@opsAWnIh zrt|Ht*V0n#;PvX^*~MquADj)hef8D1LnLVhmzS6KW*=9p)pWSLc)4TAAX$(qBtgKLG_Rg!UaX8>O0nGIP|S_w zG1$$mRmDrFKL?&oS z5};BhKom@n2pBR`gh>!cItZl*f;8_5gb%r=*Q!vaj1n@3jfDnwxn#rHYBMq;fuzBO z=ph(FvZ9_$FcaPrmIYn}B7uaI$$`<~W5zP0Fkil@4an$`LMG^D z21S>kTD?xzyIh_D3>IN&1|lNOnb8BvmI)|Cv&fLs4YU%L9bQ0JSNRV%gnox(=Z5+DO`E5ag46==`DPZ}u14rKB|UtMxIyyqf2q|C3F(%g4WX`R~tsx5M}2+ugbS)#neUHP+|l zA6`svdGW-<|N3X`v**W({%ZSpYQOsk_a7Zk^?ahu*{)wb_i}cQSZ=Pg#&)N%FY8C9 z`TDk{Syu`)D9sok0d}};2D5Rs-WUyvalLJ#8TwIlWUbXgD8=aA6aZZ;#mzj^O^76G zMhKz-nE;Fc9H^^NZTHR4-WtL!4%Xe1?nX%mGu&aMKpMUy0fIzALT1{KNWqz+L##9Sytf`3dWGcVmw>>&tIm*8a?o z+WvNi4Q1ceK`~^-5(cLi|Nm)%vo6c7>^jVIuC@0$w}~4OnHkvw2^3IZp}=0`ASsfP z9xM;~f%3Z_J^Taw+dTZ@q2Z1aEm5pu6}uv;fC5lxGLe~)kr~~+_cVL0=>TPapZoIo zV6j@1vQUiUMO}GlHZLq?Lf^4*U0cDdOeRb58$yQEkdiWyN=Yp{D@LUf5b4~% z>B?%oE1TGt=$xP<5;9T(U=nDO00|%ongIy~i(?0vWi*pu45iV`krHmusA^d{bQuy0 zg={F)2m^c5T#aPu3X^c8=m40FR)DD~6F|(75NMWyVq#wanx>G=wPW>ZZm3tzq1n`$ zyx1hd2+K5A5Ea72#j>M~8C0?onp?rFXmfA1l+L{GN?)wBEM|_@By-J836hh_+~y!b zflh#4Dn>x58Q!v*I~$#)bkj^`z`YXgm2;EHV3a$YxFO93q4RE_TDrqUBv9y1fmYl= zX9P*Nl#u}390bgaDN2;PQvx$-1ZhZGaU>;z2f(wJ2Os|ay-(x3pPs+im&LZv?YEbQ z$Cejucct+VoY`QI<>cI^KEo{^E;Q z`;+A-Kf@pX51;+hTfc9=7^a6WuAY4G?b-F)k88d=J-UB)f4SX$x!!$yeKzir{r1)F z?5uzMWU+5Kb?a}w+$>^q`{1Ba`~KcMJZ&!*mj}MO*T?FQ?)~zsr`xoSXy}Rvp?Hxy zebL*|!ST^Sg}Qm3ReX>#fSR-Q6%n&+wa%fTz%`C_o}e!Oa1Xa0^xvG|7F+1)x-Iv&3SONrF>q z=5Cevy6a0<)aDBF9%FTY1wnc-ueBEh6t))81e62?LMb0KMW{pez6X|doQsNiDM1kK z)`Bt35S=N|Ba~+5X4G6##WIjyv-zT$Qb@YF6S9RSq4qQ)WnH(Z4$!S56d@)Fn5(v! zQjCOU0uT$70!gckoU*vg2$B+LWTBa|DWfxF1QUR#0cpG;aLH_8PJm1*XcTCu zZg41qW(HRwK>!3{RxCj?WCAcH;Jg7d(%~i{VbN@vUw%H^`$7GyUtOHN*st>P(b4$v z%hl=+j>d~@*JsyJ+>6K1-+5?PFL&2(j*ja$FIK)+n};?H!&na@P-&h*XUhh*<@}Ad z4_}mbneSZqyYJt#&;GZEn?Jd=y}tLbe)R6@^d}#``u@G#-oCfet55#s!;jwk?3WA6 z_5RC@#og7jcI(g(2i#qHN@7?lo-@X6N>ED0+Rb_?G;WfgG zLDk(C$9FdCZqZqKuQvM%VKKKUhapOh(vOo{T`sL}40*k}Oq;Xzo%@0|NAqHt4Mme0 zJE|ocq-=AnwZJGdjw2WIdLc+|5)zs8N)STImAD}RAZa8d5dftW5`?@{5(FI-2!H`I zC7^6H#=LfS3f2*3nF%we#WZ)NGa6>nh|EeN6P)Flt+k{9l8BI6aP}!;YO4Yo34(+a zZ33B0WrXF_yntQ^%4#;NEt*%Kiw&0Ml`ex*bVrB*5Htc-svDI}PLn~b#!Om*)*3l> z#j=UtffA75v>DMHf&m~UffDG3D8=2301SYT0v(h<16Yxv8^w%9!ek)9N(J0hoiaoV zCk%v~kY~Sq_4c!iK{aNqmiMo}`SRZH{fmR= zKYiM~d1>s|ZI)@APcNFvuGs51a33zG-P}64&0||^%6gHrxzsM(omFSuVe-xXt@p~q z@%2yJ>8IcP`oDU6`djwA`}+_6)4%_5Ja}Yp_PZY}AME(_(w{s${aVxOZ6rSUsDE{F zyl&T}drYn7(-(QWA3Nv4rvEyYSG#$6@Fr5*;|K2r@dDg+eNI(ClXdC+t-JT{9YWS| zwr*@%RLxzjwjBi;=X7|tSS@>>XB#GT6+_OgcBL$j3a+QIB%6ETxSgv+sL>ofRuwF5+L@8x16EXtcS}|l}A(?Zg zxiXDu=7Lm81fvRk?`Qpvg~V=EDnB;BZ(Oud=LB;d81n_JHGYz-vc+9XEM z&4h%J8A36SQ9#h;AStsHKqE`FQVNY;athIq1ZZ+|PZ$)LAd+qcgo#L68l$05g}MO( zBmpH2B$EJ%1QLKq00Ie-gqZ_MP^u*wYmNGwf4=(<&kLv4FL#%N-(QX#?X7qBG48bN zd?HKnZarV`hl{b4MgL&)V2tZmb8NLNS=*Gn_2}W9(kx&=6G>XUmf3m=iBFF?#%mcIgUbh2kYbe zcQ)(eqd8D5*w;1|2d$Fb1k=n6m44aZT3e2Ne>L{D;?*!iux`2T(ON6sxfA8!FlNCk zcH2FCi~{ZUQ)f2iJ`V3ZS-ZSTx+M*87}P*OHvkget;g4s)bg(wI=}!W^2DbefsVMX&*p znFiYiLj(kY=GJJ0In)$l(j?Gm%}9Zzx>620_sZWmhM{!_2g`ZuC+|F1 zy!z@ixi=mxT(gmV&JCL9slB=!cH?l?FT1iB+I1YKmB;P zecau8wV!|O2gmytx9?o;zxmsrmw)>^1uMSq-V%51_ zk7co{Q0|Nlz^;^1u6vrQ|r)~MNG41(fgVq8UTToZIb0o zFAjNKw!)D1F=a>-qNhmBAdOy()rmAiQKT6R5@==)MN>5^MoQF(d7>K(fSG}6F(=)M z8)*(?n$zesAyX+N5{jh2VrHa7GYTX?KmFf~emwlzpS<&We`T*ft$Fs|_RBMM zino6K``u@sZ|zzqA3ix-et7%!rn|E&SM_-L;`H+T@b*Cr^Sq6hkC!KJpMLhLy~f3T z4eNjL?s)6&@r6Bp`}EoCU2bl#rZM4|my5p8a`q)GGO_8VX%=E+DfF7-*`=|Kmm07* zI^Mt8%&eW~96ZQzKhM+V5Oczgpe8O4ZeI@A@9X+_`|T^(`p)C^t^2E8q7`E*L4uU0 zAV?qxG9^L;q+pOVfq(>(fF;aiDM&8COiCE7gsP#G7-k}sW|*7+vq@$M=9p>KfKr?Q zX@C(50JKVmW>ASXTxnb`djxCWPy0fEZmE>P+@VmU#WWL{bS4QZX3|7L=w)@GX$&)2 z=dEM6n_CoiR77@45r8r$sJQ`zbzK@-8|HC81=W(Pc}}E2gA=Jz7%9mtPz)eJbGJ@0 zN0@`g3>KS0<_y9J0}`RgWI-ZfUT6@F2{D04r6~o#Sd20wKm%w51Op_HEF_Jj8BCO4MZ@+BgoNXN1 znB}SUzPaz$_3qK|=FFEreE8sSJ&k^FbnEQZrIq5{oL;;*l78sgx0r=K`e_&&hi!0e%7nT&!1b=Ij*3m!+iTgpSeY$)#Iq$48RCaGlgITiz7$~B#k#f5Q0d9 z8EHfU1YtB9NthC8UNB)1=a=Y??!WcnT8sI76z6Rm?9|EYe6_v4La{@%tJQQ_HzY^Dt-b7@_S|E8cf48)sjwVml3^tetO9B|mt zv01~}`+{=!QjDS(0|^Q86i5ImNKmGX6d`4r01%`I%kUCvqMM0HNif_@%-Y$U-PH&#f!UL`Eb7U zkO`V)254@~ zS&kA-kXZ&Cu&7c?rxK#MBEw9n(i*F^IoVp$jEZ2PWI#-#b>7sHRjr4`jKXY5qH3Cz zIZu+A=d!GUxc_>GV{v;S)UxQi>Noa1yRNuL!Q9BGT}7~#CZkckSDLj6ZZxw}%(}8- zK*gz!Fr?s231$e8ER{eZU?v!BHO_%zHn(INVbqNT+`LSgELJcGB)}9)*Dq^_2C&dw zgjscy6o~>75CNqCMgj!sZb&Cc2#^8-Ab`XT0ic@^kb)Q7Km!r#swTF6Z&`GOXhs zem>s)G6=7u(IF#rVlj zw-=lHGltdOgT0-ePW$}=n+M1BD9&GVLa^R@bfvh%}Kf zC#96s=FSWbf)YTblwbh`(G5reb=g{rDHxH(yw+MMhjpESVS-t~x)y~>X|P%|gwD+8 zF-gI^E}UImaE_q4v7`k;>==SEl@2e(APT9JIk{{xWs(S)OcFBEKy$PPS?#J~4^Tmo z-j(WBrg4&ykVtq(0D@Z=AZ~;?L1Zvd++}Vl8j=zK2_PwuG(s@aoe+UE01|GPN#G5b z%-x8j@jI5tx#rgT%5K5kSAY4Fm$84aMmQxASr} zPy6lA2zHsMPk!gWeedayUY742ug`w<{Nm2$@)tkfT@LhvyX$SaH$1&{@8KBF_K#*i zIRE9v__%-b<%MZ;_s-GV$3*Ri%D2B~UtBCVpT0Pkw^wJiJ^kS1@t?o-`4>Nbc&|P> ze);t`<>7KJd3C*g_jexr-Nn%Be1C2CHj7pm%9*UkhgR!qxU3I0FNcfsR*QMx`9Xi) z-t4eGy0dH=4Ry|Rt7X}jIzb8VmnF;(HpfS27h0gje63})q za6=Mqhy|EiQi5m*H%o(H2mnT~)>NXH+L#Fmxoi6@F}5PsRqw>XoORhDwk@n$5XCdX zxTv-FX)f+CpKBTtW~EP(fR)HFR%-(hBKr1|VsnWJKd`7?lPmz>K6xNSYgj z1>H0&x=ctx2}DcaYOtOuM{%I*XGthtYltvIn!6%099FBb7(ymU5N;4KGlDmu6lg}K zOdtu$Xl67>xIvf^Bt$ciW;B$}y*S#{u-QC*^!NM4{pEhlvUJ`$=`H7J^kqdX-FH{7 zuf~9KX16{FyKci2b>(y0=WMlZ|LIqse|&iFNxgjervKiZJpXd82erF>eCO!bPJZ!! z{_2Bw9(x_n%ai}<-~Hr&|BLb)?Tc5JR+iUe-sz^(Gq>IT@rVEB_dfeCKY!*w_~x`b zI$HYU!?W@mzxm1k`k(7t4^Fy!_s8)ze|d7hJ$t(S;p*0_%E>ne2X_wpxz~O>be(K- z*v?0fp{-UYy1O5TUEA+{;oZq1hx7e#UFFu5&bx)XsZAM5SY`2($Zj67qK!4Cp>c^i z&d^c6TH5BIH_a2wkgc(+ErjsurSzpxkc@-`7Ld4+0tA49q?AZNfJAfA0-ykhl$1&$ zm6S3fk~Cxl90@90qR^-tAc4#jA(&!pFr*=4noF^811P8f1Q6pS%V<+%YdMY)(cB4^ zZgFt5Fwn-4-O7b6io;EA8AyYdU8?4l*Oc@E%D0mmj8SYA0twoI)aGHk^2_xvn zHpes!HYFNouWSu~Qlt@#fVs>yC$NUp#w>ktp{J0uSw*2CeF1&4aEL(2CWXCV0gh-XZ3+uDU@<05pR@QV<~tfN(=VCP0u-k|~&sW<&%5 zLQtdvR4Q{)3PzKnC83s~h@{M^1RxN~0Fh+2CZr@oCInYABa}%1k;rk|T+=X`A==a! zX|;8xkF028GuA9#hoE>o)@<+Kl#xo zs&)C!-C;k@GMkpy+t!9`yW(t9OswAL^-%9WzFV%iK0La-Xr{8rDHvDdvy-Eb>eIj3 z?k4*AwA=5yyH7TJp1=0dozu&=KfF`E{fobPf1`6;mnYj_{ZdD*3mz)(FY}k5eDL4@ zck8S8)z9k67uT=5-~O}HuYR_F+<)^Qx3~ZF(GU5>YWk`@IQiz)*?W(lpWM4ByX~7x zE6aNCUcY4SU+*?u`PTYdHLr_TqU$?HipBa#^Sr`#c%3`%%dkYq3OSG^`q>u)hC1}|gFwuw_nFdOtXznIsnPU#GhJZ3? zaK)Tado#hz0V%?488&4sm`xBU(J7e)K+wEas5rZ>It-DKAl-}CXkKr0Ws2GrIg5)9 zq?yr?B1$nRO@U%GOA-KSG!UQ}0Ky2tkOIg8$SfcUydlzVKt_OolY}5Qw=j;Sba?aX z*~dSRlkI7F`1r;1i(S7yu9p}4eq~o@%Z~F7b?QrOFX!9$%h~qwO}%@N*V|#pY(uSk zy>qfU-`rmECtnSlo@aaOi^YqtQJ&m84y|L8pZ_0cw@!ygPwJyP!?(Fx-I{~3-YpOC z;~yRU-uHfWesE|nUUVP)&%gWSXZw#<-@p6TeDLZYAO7ZBv%UL6fA;2Tb@KSrPtJe$ zVL^E>7xm;U`up#`?Ncr+-{h_NiU%9*&X-<#&$*ey`fB|=aMZX}1TuypOIJOMnblQDv3mVl5U8p0&NjW9_W ztZNw(0TTiezC%pmB?4qc8^^A%^PCAN;DvNYo9BRIR@%a?>w3595g9@AS|Zz64wl|m zr@Dn9S(s#pAm|8#u@oX`3bD|b1G#tCmU!+fFz87;RXRj zMJ{U0!}abWe*PbR?vEdi_A*|*_6Ns>SEn;`-)uc*wy_$9IS&^H#~xo`Kg5Mk4Q;eu z!_}@l`B%54<%6;R*f6iz4tB%Q^2N8y)rmigQcmuAcl-Kr|Es@#cIV*{zIt)Sde$8s zPH)xe{Kx+=K4_nA^Y&3WJ3o2wFMsdjFJJxRXX_ul_4)se$M-M)L3MrStS&TRc{G2u zdFxi@$?;+y;#=Oj_wMTIvTlcw`|H-1S6`KGbE}a#MK{?9gt+Xk&)#fHKWsfFkvvdnBJ0Qco^vHxUK+vm6gqZ?n<}Of> z1cC%85dW1KLzx0ZK&fQ#I}juYP$U2nGiU@5^OUq~1Vn%d-AI{IP-_$n00Cu0D%~w* zwF`5^OiuGOhA~oNg%VYRV8l3cwCM7MEAo2epGUZN4P$ZoK3bF|ZD@Yh6Ma!0SW@vIxt2wk_UzwB= zG&7G(!CXj_tP}=3LrA((fmRn#=FoERv30tPydF#4U(VL2Es&;Gn1!XlH=9y1>>M4@ zW~GdCu((Y#6`5Y347s_nbd1d0)>>jpceQ4vD_N_liNyjL^9<2Vf)p_|qZ7)A+|SL9 zB|6xIuIrE}1X&iVjEG|NLcl12CNL>6qS&Itq^wIsro)URjG|YQL*M-9s^uTO_o%O>`XUC)(ud$rf?^|Hlwznw~_#tRxfBEXZtN8$xI;Lu&Ih=sM7% z^hwJ((>u#~Do$l_XGq0nA(BqZNHa=FgCrsgW1JFApdwUA#4NXLqB5ZfFeAOuT!9-B zXv$1EVCLP@6{E~Dk_$%yUO@l^K+wQaJz)+wNo8gytFB0ZG$jR)AWbaQBSbSGtHVs@ZHwUZL?Sow0IapsE)&1o@w!1NL!1cH`p>yoCIkJ9y#d#Zb-ObkR zwaI<{(VyRY^`ocL`tE%^{n0So`jflIyUpg&c6)V|Z^rBWGVA8o<26`ud;pkNWl7_x`cY=l#JSzx#6YbhlpNu-*Bs{j)#x?fF0I5s%;b{adTEucxy+ z53Pu2{*{dNRaTHGtG^Z1gHT}X7&;i0!c(`SqViZC_(Tv zGayj}MF=t=6CfmI3NU7-GD%1&0)#SC5KL%Nh74)}f(c|pGSRHGNz8ec3@PupZ{wKj zE=G7QjcU_wTii=^MS`VE&5=qu-JA7dkRU}Msn&vSLTgQAl6fO6S_t4sC9Jq4uuwPX z=0!?*hZsuVc^jt=#Tkw3iZ(S?^WrAuNOK3vlBrSvFHWho4m73cU7s|w0u~d@)JPB_ z0J_Y9>Jc!L(I9+>G~FOb0ubnE0?jB`F(M&?W`t;jAcByDkZ3T9q%?4N^Wxd=^7^gE z$0yIecy;GsyxLEOnD=MHJa<9sWwmRAVmG$!)OFy{hSwuH zUm~WHdrK*%u9RxE7AQ+sdu7m#q9WYgXo3LH(nS)k>lCfgNJLoTG4@SV&6IL@-hip@4Zwcaijffuu!qt0bCI5L77A3?+jQkO&dR*%R!j zbi%BbIY}#!n`;=RHUVbxZs}<@wgsZt zS?M!(ZofaX)_R}kW><^hx+E7Q616GHj+5FnU;X8)jT_&bogT(XuYT!6XY3E>8{fE2 zo3-thAAbJ&Y#48>$HUik(M9B1xmdORaeP7YPQwBe6)u9XNz{d$E2=vv^qU_?3;e?pWM6Z{qwW?*WRA}#ox|u zuDyBm@c!rJ{f+T{ac?^ji^J2sjgouQ`_1?N*?0ce|6}yMU;Mit{NM+7*ZPa0-(e=Y zWxx6JXMg+$J7*W8o}=?|+ITdWajx~IA2{w$=lviXs;R5p(z9x;MU1Qzj+$n+d!?y0 zVH66isR#>4Rn1n_8^T})fS>>fB#;Ug8WLaAC6Ew+RAvf51}R}h3CK*rXv~Bq(~PQB zmYG6|%1l9|tk}?3D=8@=K~#b?0T{COeL9noE`lK8RLD}jWmItxgiAFtyDTO9Zs;1* z(5Ew!rG^M8nITzIDq~1mNp}Xz2ud0< zhe1-Nyecv|ZU&eUqWY!4;%x?2kE2$J=l3bQh;5XGe=B zt9c!|vtj3(-(Npj7#A;|zZ}+Pv*iQtRKtjN=({>?v2*MF53bI&JnLl_Piq8fw%EdNE6ZMCuYE07+G<36V4i8+|{N zUWTT`yh~>Is2Ej-nlMj9CIHfnHR0woc>=CdGz`O-R05SqnA}q_I7vm)krEAXQ3Q$^ zObKPplvy1V0-cILjhYgbCAwv`2JRGeArzQ<7@Ral5(e`Gp#%yNB#=aa26>Sn5&{WH zAi&~A(k-oB`!=hg#C%Zf4{?V(UiFS2bNBvpMhYOo-ox{y*jCZzhw032uIqUNHRgR}^F0viE z$=x@1+96)A-#EH>a;iQ2-COU>^Wk!P|0_McxbD0A`Rc5RGxH15*SUM;+HB{|8yja& zA3uD3?d2ECjT`d^54&3T_U=rdeQrBD&5OgM)^@MHS6*D4X#YnSR!8sN+!~*M>s#Ze zk6yoZ4MCcZPUdC*N7!ywub1n?z}g6aH;oTnmyFJG@FsKBwkDg5qK+Kvh%rms^uB*> zf2L}lqDV7{pqoG`bSY`Zgi`iFp&K!D~k4Ga!HiB8i0MSHxBN#zTkZ@9@%xEZ7HU;TL8A^jh zN)T!C0;a%AW*`kPBbg}~zLs<(Ngy-LKsTouC6EAwOCl2jBvogS-ZbUB+qe5CuZL#- z{AjVU*~EM~-kz<>(bH3GOoGE${c$!U?1s*?a%OMs{@r_JG-mg5&iRw$SoO2j`FQ*G z{<~K$j=S~S*L>@NttaLWKmXwO&wjiZPx}w{@4tNK+U&{lq@Zt_)|%N)*FAk|{OLD7 zxUqeEiC_OO&sN|1(`)l*YGvn#$1(fGDc;*U{;W11+_`qG{P@Ycb!xSFHM#jG-~PKN z|Lx8@?{2o;Xm?#Ns=xmQM%OV^HB=oH1dZmZ)6rW7halcolT*(CeXn&)|-jL**2 zhdNtJ+uPq<%g$+SWQ0UZU5c=gRY8i{xCw%j022Q{8mJVMf>N0w5)e`X=_w^a0fMXu zmr|(d#!SKqrifJ3u;Pr&h*b+-OQEy{VufSOgLn(&UtQsfoE80K~3?Qh)ki;_>)P=6;AXS8c4v0BFfKL` z12)&LtfC$5-}Un^e*DIN^5MPnubyAoe0!FY_IQ+i{BmdggLgJ^cB5{*y0!lN;WyX* z@bsfk-sfUGJ3hF2?LR+w^a5dv=acr$wT+F9cXyw4-Do~8qxBvJM?zIYl(v*%*%J-A zQrfk(*5RWD-LU9#)?5r_vavQDH&TRUP0COsGg7Ky){rs>3<=T*fPhgFQke)SBf>(e zp#&sc3Xzn#yOb#@VGgBCRf=R^oDe(!B7*`WP%TBQA`KL+4pze&&j3i8V#r!6yoeTo z5E6l!jVvoYtAd%dV4A@vNSSv-`ebcFNo;`(c`0Vb9BO*jY#T7$jK&xSfTUZ5Nj3&5 z1%or8NQ0Rrn^G+@L6{L>W@~arq)Dd=f9&kyRz+9tYwKF_vkCmyTe zVwEF1%WSWF@9puUU##Yj4stn9wv6%k>U-;ac-ZA=a=p~JVlT7y%&wfz-@Tn*eSY*( z+wZ+xjL^9+;mvr4^Q+?R_ul{W3=6Bw^a*)rLtCD$pF`XPPE?&I8xiOHi#$*zV zN+&dGyhEQpp0u;AQPbowtkA4&&T;+5Nh`LklYM3DilihO3KcK2VU7)084? z=o759L57$aGyn<*NYMn)2&TD4 zDHf?VD5NkF=$0rnX2?iG5^xZTS`m~)nhc;oLXcP~qXbAW0%1~uq*Hjn_T!`Xe)!?htM6D>nn`I!_uA$3zTd3#&mM37=!d62 zea4$ddpq}=oulXS^;i`xyF0gTU)h+o9fw(abLXqQ|7`X2Z+>=b_wcBUj?0zZ!^h37 z`6}MT>DDm3yMOQBo;_KA>(xPb@nCjy?dYdBKfhkP`C+_u_pZO1;%}ZjnXC_IZ9j3R zG6XBEX>FIHH&G{%8EDsvWK5N%Pi(NYtIL{Rn1LiS=~V)Zq5vO4q+4+)-OT_A0w6&t zK?s9VsftQc5$1K>;C1 z)-+G1#7m_ZNH_o*+>J$o29#2(kVurqvhS>Ik#^ipXDw6yPBSVB7AvaeH6mf&Fsevv zihWIC6G-OGXp9WHd0|FUwWA`l28tU%vPuanZsSQqfTWp`5SzAXN2Bp*GMmk&YdHS@v4dCaTzVhvUjkbKl`}7#c?;gvH4UV-rd>1_{m?L zjK`-hHvgmFyLxog6|dv%+qa+oy9eXn`Mt%j>*(;t-O1@IyV9J!njb#xH^$SwYvuU$ zMO{9BQty0Y+oPs4Gej$lngZc&W(bVeX0x?%)&%J4tC6KN#m%zsCXq-u6Te09Yv3hw z1I*k=njocw%#4hTj9Mk-Fw|NzYeotrkr9$YnHjZKX2^?Cmv|`@nGz%j8Ch#6hrWx* zj1Y$33Kg0YfFMOgjaoqiK*%nYQCpf)+O~Mp7GrTMZe+3))l4VNUAgK8XgTke-D-Y* zelagJM+ypW5<_OCOrRNP<`gWlOv8GZyBQ;7#e$Kdl`N(J%qgV?GxntzbC78;vCfU9 zu?QA7no$EKKx&K65UbkP$mD1|ZX9S?tPqYA%#a`?76%&{00K2g7|kI7LYNULB$x>| z7l?#lq^iRRi9nhl0=fhmL4XtmB;cf!pe~UBs7Yv)s~)qx_}Ldr?_a$NVxf9irlnhCR*s7!=I4>4E?K)S+tIXp&dr_uZ*JUwa=L!^quK26`TIY5Z?iq{ z=J9DestbJl>n{)68+m?o{cb-;bHpp{=6t-?c)K}`c&OH|ZH)AH>!10{$r8h+7q9Jj>j(eno$lsxI6hj=F~;?4pZ)b2XZ-Q6zpWNQErcXNu-!R7Juu zm=YjhDHvUY1SOP6g6^S|1Pn^yl4{6IQKKq^Gzgb8WJ(lBK$i-HbSe}{N)?2;Syd1j zSwm*b1W2S9momhp8*)$)pi2-)8YLP5Gbg_Sd&N|?F2h01tT ztZ5yYgUp-SB?M-M5@w~KMj)-t`7*s2a>%5+6AhLqo|%n1z@}KHdnnRm z-k2has}NL1txYLDu(L?Onvr=%X&o>(XCjP%ppuXoMP$kyH64I^qyQKx0E7%t14V?O zl$$w`LIX$w6bVoeji6ZyAYqk&Bm*+j0g!-1BFXTLQF;7-{db@4y|bf}VeS0&@@&W2 zch@%`&xd|to0IA4VwntJyj1I5E!}3bTue7?v=|nD?{9Ctx%1`!`Rv;Eg@%K={qEKI zgWRZ}zZ%`#!m6v|54LZ7`OC9A?{){c+IHTztCu?$(O&Q8!^vnio?yFKe0%iJXWzco z?4GQB`d3eGe1Gq&(dyQJ{ov0(etvOhXZ0y=u78Tn`%nM<^y-J@y|tUmwY8sodf50* zyXCKZ>s!Od#`%lsYHjnTPj*Y)zV5s0BNQpZ%!d#GnhVA#hUw6Sw+#j`6Gpa;sv<#U z0!je9WNAtgU*02{%MdP-!%# zkb?v%L6Al;B`8CRNC6;;j6^C02qH7tIs~KO1wjKqGm11R6QoE)(uI_2^;U++AuukM z$)=PvH!y3B(#9YV!Ct6?5y*&!12PgmDp{d06KM3Ti3H5OMblVjpf$i)drg{RecPai z6;DOFTZK~9>1I+4L#s$8nxqJG5*bEA1O$_m1Pw4iplSov@WupE3Wg*Q?g|h}qa(ghaEcLjq zZBJfxo11*yO&vc|Gj*{U2V4c?$y!;>H*f4MPL4Osmg~o_Klx4jjhhc&oaQyoPezLe z-R9MM1y7IKUFLK&V6}E@_pqOBjLvAyo9AWlwr#{`BsCyi>-QsV4 zx_#}s{N2fNd6YXF{lP`kPDf5sfHhX5Si%7o3_dX{mTlTljQqoyS zNSP@pQW;5rkOC>X1mRLMRBN2INf;AC6rFcG)&C#G@4a1IQZA9rbzQrxOJ>|Fu4`|y zRknE93IJzkl!J^LX69-tYHoJkL21rseG~5L@@_ zhoHc6NHR`xSDN!G>VHe zA(bBJ*P9+Wf;@O?KiLhJn$k%CBAf;LLJ^P0`MIC4WKTHVjfp6w%9?_pKWGA&`4LzI zKNFb<4>_&=IQ2a@h(Ho=Xun1@I2wyo<-)2vfdoFsXvBaWOW82kDy!J}j~qnz>j#R` zOACax&K6lghrEly`H8qCspao=ocZ@J@C2c$Y5nCii`w~v`FYz)(W7cchhVRe^Pj7Z zEmEC+wkymNqlpUh?FZeeA}$SC7w0Fnq&y%K#wC24%Vu@{plHa9YvO!Buyl`U&F<*k zm*VDa2~maYA)AFEA70@Vga0z^*K}TPyU7H6XgWO$k0MgY2A0ZMv)5$iH#@9N?_4lg z*XBrn`et5}p^)>9YmYSetZhC%u6rNk=gTiMrx@|yl2TJ!<;*(cL9$FSF&Bj<=~<@h;{XVRo!~oqY7h$d zNZEuIHG>fUMvutp$HrRezXgk8hoH_qY)VPE=m=O6!ydV4^+?)-ul#Sg?&oT{)O_?7 zBh@X`437+rxf+<$c}?}~*M6+9B+lOzztsax3S$b~(GpX^Ek9@(YGP-+AIRD4F?|GA zdTvH;8jGB&m3~?&q-kGvd)xMQ_VymeZ1AaZtf_(e+jQQMrMQc416wyDdcO4K4awTF zpt!+a2C*Jwsyw}FXn+7MbFuy;>?2dUMA&iw$=wiPhoA=6_~Eb<%3%^I7?3&+qmMwh z_Pjlw_;UT%S}~??;?ED0)6BNAxZ|bjDR~)p!`FKg4u^xkcik6bXNT=2%s4EM2wO*I zsi}5vUL28};q7WIiN8&TS!eH72OJYSCVF;~-4lOJ9DGrHNL;0<1NYB1D_%W)W_G^b zfAr(e!Mg*^FI7MPQMhwHoC|RY=Q}(+pt+tRd?Xp$g@iPojJjX_ej4;|Dzom*7l)45 zYjM+u>**ZJLTh0B$d%EMPnW1!mJGO|k(Pz`&GZR&c37QRtri201c^ zncDl&koYfXEY+4`w8lVM8m+&Y*gcc#;7Wa;SI(7`1{V5*5V2MW8js;*rc@KlrG&IGdVvedx^aEgWw)p(##ZorJ1?yNJpJbHi{OBN5`lctA3_k_2Uh zJ|I?1KP8vhh>(s`W&uoAk^JaT+4_KNy#`o1EL0O(1Wt*je*$`ISo|I^9!;MlnNFUB zN(R_XT4viru>)-9EEK-BVRU4nWH?*uM~JitQx*y_A^iu=3qQi`3C@+ZB^l+?;9};q zY(4Z76v~Pk7S)&$7pWz~{G~W?r2H70ty!81^^WO#t*NV9^<;8{2L(f;m<8a7oLpV3 z8ZIrlv2yfjHk}QIbl)!avW4kQ_X@d0Ad!$H96enmH8)q1`goBy1VK;f#f^rLa87VU z2+9HuiGeB$eouRM{_kiiF=K%^_|xp-N8f?x#}|jow#R*aNAuH09P$tMa?bvpSa({y z`ZF`Vp1PSj_rZc=U9_`mw%TVPo4{$I8Sa=M5XR?h;Yo-22Hyre!4p9APVg-{=VM3>CZ?d zNg~c5g;WyA7KC@?-)i|~;`tyWeGd+zvsC{K7>ph0biFr~KbIb%AJIZPtqez(AcWk= z!@~3>8gw7S1(4i`^2Y-abZ|{2aTaE-$x2PW(rz|^2?G6w78HtDr32C-u)|bdQn(}t zupNx*nFX_uNh5!H#67SIy8P!|+jMTb`+NP@$*IF(r`%@$-tuxcX;8wB82dzU+AsGb^iT(!C;OB*GRz$ph3kgliR1<51X)6dNZ|fVL?R zs08A-pv%Uf$g>}L*KsAQGXm}iLWXKk*;FV{8dWmg_Y6z`*GK|$DXK&-6Q_v`D=m9W z-x1!g=|$!<|!!`4`6xCWsagO)EqyaqalSVyD6L~QF1v>8-YXx zs8jSYu!awuhW0Kp-c{*EGC+3_h$kmS^puM{2j%hw!k|TB8Q5PTPAaV}j{H@Mfpl?EWwNQxk5O27<4vY69KSrJ*ZaGslYlq7W3V+5c>_n_b& zfE9=g0#ZXp+Y1A?_>v?N#S6TSg9uHkfkCfy9rpJNA1by=2R8;^?5=jd^OZ9pF;JIB zL9&+Au4^tbjT8%VuYR^zKHp>KyicTA+3l3}!^>{Xw3?@yIP8A2Wl8bp;iy{) zY?qe1$b8g(Xn9*?Cq}Y_kiV{z`SHcGQ=R7Em-C~&58N%UkGe#z4>(;rv)rv#7w)fI zK3C{`#ZD6}In6lLvBS7ovJ^F(AhrMS>R;Tq&Zefhe#XK&_riqNhj9l(UX^R^S3m{g z;o4Mfo5<)&N3i5=4$e`&U60GBQ%YryqM$prpr_nS17HXi4gelW=%R4+V15xwQ5FEu zLkc@YpWp-osAofkC)moiqXb_gGBDY{(s@~KF++u!VLVIJ5qQmPN!J8`NH+pX4^UDX zS}F}SmT!G4v~e35g>qjMPjxdM$%|!+fTG6`;)o-rTQ~WjYR%$0$B$|swog~RiJQ_) zkNN#g8iBr>Je}L`ghg7!&O1!mDn33I13k}bjd0$;ecVn7!v=^sOrlK%j7Xas-M0u} zvnHBkC+4!)Q)5Jji;v~{Eb#~|td|B7H=?Kpi@1@OPS`?HvUzxrM$9&F6|5RWSIItt zRw)IbMuG(Rt`rf7$|`9%hU|T+1D{oUOia1dj1}?cvXq;SyM_N>#x8lm;TOKwgUGgz zr)|X5!*H`Pmo~{e3x}z8$bx*4D#?=CiP5U#L+MwO7TKI0N0)y#w&s`5yMH9lPg{%V zwEm-#o9(>xR_OFyiz;!b4puN-2u^W1#e88Vd>j^S^Y_H-&BXHLw%j(DK_s+>NfX+MNrtJ=K@oJC2ue!L z@d0otHYXHA+T{SsqDLU_Y;hPVplDAqZ+w!tT`4K7rj*&%ij>&PMJkl8fS@9=B+RW3 zlgU){)&tv^DDdQ>S&7XCxF{mmx#Gudb=s1el(9tFQ~Q(0k?B7=!3gaT4L=_{eNH3t!Ag>8i`^7}#PMvl>OW(p>>3 z`db(&7H*^pg_1XtWHu{55)Us$!Ao)w<0|iD(Lez-cFP68H9k-p3V${uFhtJH4WUCzsvBQkX9vf4^_e+j7MELG_`C)b*L%d5}W;Ih2$Od|LV1_l5G zu5iZ`4*~8pJV+SmA;g?4@#rxixjMxu0+zVo1=?4@FZ)EV|hKX0^i7S5U?A1cWGIX!tpqkVfLJGIP)cCrq`y}EV(zG%css5m+FLDn@K(@mwy@K z)}~0ttaY=6J13s;YOfT`7w67@Gt?c&U7Zu&E?$QOzabKyoc%b=HBVj-sn}!to+II@^8}zHLl`M*^%(7Z}g8Q#lW|;?!1!V zNua|%urjND^ezJ&mL$Xf)P4ZHO8;_fFi224I1GW}20}#jJ$f5=`ZfR66PK({XsqfoRo*|9 z4m@-AIz6rrI%-^K>km(GUs<^Lh0<%5I>~5I8{GT-=g9xC+r0Nh+sCaMC*ECoE8j!m z{>?&f%cx`g#!=?qgUjPMA>v-TT%t(uQOQnWp8T6Wf_n!t;O}~nOCWJ@qWai9IK+jv z_aN5t+Ix5CMaSV-r&O?K=YXD@>)(T$OMgYK1A^^*LqaBJDOXygf?urvK2TFo{PwSI z#yan+&k^;Y;l>H0i1pH^;Pw2~KMj4`t95^e@;MioeWRM2_V#NxC-`VQcV>3F?)$#K zn~CpqbVkO-!pLThz+h}oSsEA;L7f6fE;o!7HepEQ(gX?6H0L2Kn1cbpVIOoPNvKp6B0F}cBfW`|yDxVbm zggz<`cwd#RB`9y0!lzcW1kW*E*{WC^TasK< zUoQ;^8|Yq&Gi7J-5-<>*1mvJ98qh;ucu-IaLKeo0A&)QBTlWG1Ox+_Ne-I!R5_1C>EJ+GEGPk?d$-nZ?^LwlvUh)B z)zQmmJbw0erintp^`Gsjvzxb4^1rcio^UKW-9NtTWp2q?8gM5O-%=DWSW)Xf|cxn{|hEoh)u$!~){^$>!3D$(L6vBZncfd-EzGi`scRZh_s_p(yBZFt-t55?J<5lDC$00j}Hg+!om`n8gV;c!!QyZ$3gk8-jx;1H6-5I|># zHM}KA2bj!*VzcN0V9GjremHoNjO;B6ww@;-JshSH8XXNUehorn2$J-4+48lw3>t^$ z{=%4_FKcPb!l&O4Et)Em(T@D($iXYjirjvimVz$puaDp}nMFgG;MiD)5hlqr0UpB} zse)q=>Is!QF;!1H6u1rOuEg&l(Y#8)J6ufYlJ9%sJvO|!Q9ul`6aoPdlzpk2TF0(W zLgv~&bp+CvpwFIruGd`!U9Tw?D4$$;_yj$>X?^MJ^HM(G#JisOx{ysrp)G`1n?JQ+ ztwZ$od*M>1XkP9U(8{#gYHLiR_v~^na?ZWW`SsznUfs6!;bzx}lhggUr6p_g=1kvA ze~Yhpy$Xs%g+eJUQ&;VvrOtDoU;8Uo3)w4jzQoBZKICwJal=?U~VWX_^vS2D@vRe>Arec&5Stu2(SPzG}^P>OW6qLckB-;M2-ZsBz z-4mOVO2J5klBjVjGf4`G?FOh#KUCIW0HNs+hN1lEuxUcPErXf>bzP+_R~98G9s>kZ zhJiI<5EiHZq<+3@iYz(b?z*PAF!@!(E7|ldapEX7io&kBMdoO2^D%Rw!nY2OcXQWE z&%F*U0vk`g&*xc77<~)UUay895-x3B`4-PVe-68+ z2_2i6?ykXfA7@rL1K8+U8Lc}+Z{-rjgsqm}g#-|fb2kaP9P-&+L0297?gh)Q+O2XX zW;W6r|6buq0ZJF=zKX#z0e&NKxq&*IW>V&EdDnl;LNJfSv7$Iq?t2(Q7Ysqc$yN(# zxqt|Iy=r=Uw`jU-oO1REq=!De(Qtspqgnq6hS|t~Yy_*?2IeB8$45{nF>?(fCJ`#A zVoGJO9xbY3E36z4m(1`VNWy!0-_&yce5TT=hM%Xph7mMxYIRCe_yERCM z-TBqnOnHl?$6k);(nt|KV0opUMlCrRV2EoPraYt196RI@M+K^4V8G;%q)`BuX4^)U zcP~n^f%JVyC@c%;QJpkPHqhI5H_fPe+ZB0@$N!i{%(VKx8dMf0tJVXfI@u)Kp%nSPJjY$I0~OgSXkmG-qzox^k4hu>%07|C1ACo z?qu_ZE6wIuVCTo=(>?a!(=X;xg^GFa+dGkqU8nKH0{h{p)NpSj%WGRwX6 z1J>QKsiBqj8^&GYpQ`+7#t3Wr5P`!McIn4HOJ?-+Bh=?3I};9ljUcpamjxeto1TdGEqrBkP5x25|Gf@M)jekvdy zCI&e7nnlqVrnX{oldC-V?8~<<8T-vHNqsVl7)H0-JJkJ&&4Q zRxY|_$;Lro+ow1vPb|zTS&54l3=;s;LVM^-nXAGC(DzX{w2FX5uuzFa7EqFM!=Ddk zwwOu`7O1A@98D*H1)$MTa7kGbD59!V*Ra^tCCv`eJYU{lUBfJ~M%(%;!I->dHnD7- z<4F~~Zxv#^P|QC)_bJ=lT0kY;*e<2ws_2WZvYP8GPr9(WYn+YpuIwZvT60jt`?hTL zJyV#Jn(GUV*DO#R1Sm0{V*ZXe6x=(WjnYj5r08ZT@j_{NKp!e2K}$s}Tn|RqgC@+} z1`Mm|@qQ6>MkOC^!Xb2`tG=LT)%OLtroYGt;q2~kl|alL&<`J07TO@W(>`cp(%rVksY zKd&l}nlN_DquS}Ima-LZciFuOqqR>aF87u_I)3jHnynUO*h-In@64T-5#*NwuckJK z>+b6m-lCXQ4SX2)wxe^}I?yMivE}-=$pUA4h*M{i*Ur?n!)lbH!@>8o-OH<0^z$;$ zRuewUki(-tN4jSTvt337iLYNC`-xj?iZtr%DX?0+BI1t^Dy^lwvK0k{e0`d)+isT3 zHK>lw2AcTpvE7=j=(>&y`8Rt#o%_2-O&8982l`Kh1lOfN5s_e^>~Lh7Rk6AdF2T}h{wIdp@Ia+{ z`T6I%&S_R-(*Y|1GN3=d3~w*e?Ms?7u@KYR_gv0SE~D2-Goh> zTe(s>CJi#YY>S_v);Db`a01Z7;mZ8t$~yf|(5YdX+L5p|W~r*G`kotUx{nyjZ6X}w zc?=DgKG;t2$4-G9=#7Om%g7tdWWzQfC^||hgYgtv32xAyt~41M1eu_=jo?p8QNkcY zF@ui(3DHwhrav@q6hm1l<~0$^ooHkf&SdMfr1*k@Hbw6os)cZ@zJ6M5{oAQpF>iV* z+^%j!=aoTz#kBlG70Y`W6Rfoh#=##QFZQiEmKB3mtBKX-OHZ%INt)3mPC|9&)SL|K z8;U``W)t@yhZjM4@x+Akw+YQ6{|!%_;Ws(EF2C2VbCPf75?wgUruf#ZYBa6x??FWJ1Bxj@7Wy!lpt2h527t@7?w-M8!*Q_M zOPK|^`N!6~r{`V_vif7+7&NHBhU(A+>_&OOGunbEvS0IN1kaeXnj0|vL8kOSX?@$W)ZvBc;+n9w+a|;&nxfkfb7qL^^Mk ztVg=z%7Y0wJqQah<~G^aZxRWM{+@o~X4zfRlr;|&q=UwVL|VN>6!YB@50__7d}MYl zOYb&0y19;?Zak2u-l%W=9n>|r^jlgxcYbE|q+jzR19*&%@*W8 zm?i!yV|ugM*3{8539}EsLeyEy_`SNmB5vwT=bpG*c22*Nj2+ZbWLuxuP%n77RKxbI ze`~VEI>duyfvaE{Z~VO0lIdgHbWa6Cq`OR2T>hq#Kn^h-CrMa{)m7 zS&kq-Ocid?=tkN=B^-o7J2=LQ3OLvHl@w4$B7cs)2SXaP(P17+I7Ch!)cFr}7_bD6 z#Z03*-q>088mDtDUlMf1yM42W2nns<1$GELF5BTTE)2wAO5u{ZfugZBkiD4d6X< zkuu03_2V-57P>pXiXS0}BtVnYaE9jO4b@E`kY*A91fvC#YPzH%8)YUnC?yU;-#{Y% zK!_egmjQnNr(myzdbKKa5hfznfPuGHh?j|U9VhokAPsq(v|}gih@i5Va!#%h zKtD;;Fv}mTT=ZA5dYUe4<9d5vVcF{8-&CfuA1)Ols!M}wJ3jvIA0En@-X0yBf1J_R zz0G?4cZl=a(D->jIgjZ~eOHsG`2O7~u8MiK2d)Z!(pLwkCN2L0nhw4APB}Fn@OCPGS}vT;58gI=Fuc}1Q|Tarh}iPl9y;7a^@8ioR4l1%pR1+yBe5sni4rA2yS{^Mvhu;c4i z38XKLnCUyGaRV67*OZj(jL@_pi{(eQQY%2hfp{T5(t)PUKR~Ti`L{=7IZAiX#7^cGSHThe{hKf`M4I?1JNt` zN97#JDw~`HRx$i68!0owWJKF|k5a!D;gZh$7H6)Q4Pp?N$`J!1$Usm^AUPDb^` z222L0znz3p2Vu$Bt0F@E%F-6SqvU5<^R(yR8+4saJzZWaeHiktd0Aq6=RxA#3cjUb zRWa@AHLcE1r~g$%H!F;~aIkoN8CHwn!uA5|Ez0=DNotby16zsQ} zW_=VIW1bW|a_e|ecm4boL7O7CMBH82`e8>y+p*8pw8_}(M6oMz*EcJ&A?1Xlp(dkyIUCwK+NV zbX*YHt)MYE|C0LUoy*Gg_sPw!PplvP4`=#GzVD~T(w6^3TLo`|dO|`${5YyeWfUDm z2@H&OuqcHAKEZWkVt9?{rcY! zjbAmhsz)YNBTEQGiMp!(P>~rX)vr{=huU=I3F9Hm#l&Z zsaS`Ho0v*IL&8Ln70DTn9MN{0#t=x#4R007X#1o7n6D*mVH>Ya)%$IM&rrGm=tzfm zzFg}&yNC!7j*51IJ3#Hk+eExE&@alZ_YJPj7|DXER z+(DwqK4<2!ik#W|tGVr`-&}=-?-h139hKBtF0gAit+W=om6^8qy*MLS-5qv_La4sT|$pCz(^X5g2Sljj;LT{C@=y| zjRHeK2|d|3aB>(-h2J(BS`r(E0O)bY(rXxfrhZcd{tSqOe@6gPJdm`aIk`8$0})Bk z2kORD@dEtfvE7SUdNmvS_tW(zlz4;km$6W-qIL2oce$o@BU||9YlgnPeEi8&$#p77 zl%@Cn-6t6?kbAtcJy>K)lB2zz9a^7^G(WG$7_zA0=sqK}H)1Bl%y7y-vSBb7Sg1_M z^JO2v0E>Ww9zCL*5gbpDpo8$jV#RVN_zxEwi)08fNC`ky8nb3mOLnq7X{87vc{~B^ z2W$T_;8t*z>ax0&1)<21+&;F2>kZY!tL;Myyw8v95mi+a;l;e*_B{Clt=y7cH_^iK z?)knZR$iCH)NJ1=pS53RhkqSKnd-g@t9u7tm=R4lH~N0;mjAw94_Qz=Tf1%|W-30G zdAxW%w{kH`bG5Up)0LNV-m*hueX%Ca(cypm$I;H!BBLR|{alc~;r{OP-1PO0`TX@8JNMn(tpYa3=2K`2KC!Pf zlq<@S;Ew!`ZQI?A=0F|3Z}L{|qpoZg{`>2Eh2D{e1fki>9sG-xfPksxtj-M0XgR|(H7 zGq)WE>zxF%0ZuxSCxKDEFvoXy%c=2TM?l-xx(XKUnvmdMQAaqK`1D0xm-xK= zS&uOB)NZ_&b!~Gt*#9ibM1-U;8*{KPB>p(*eo{@`_~*^h$cy(YojznF-=6vQTEw^O zo1*_kU@lG9@;{r+&W!5)kmJF+nOPAxj)#LUyB3xoJK0a24AfcQvvXbR+xyVmbfL8C zX}8uF*SGF^@%OA`A?~17%G$h8{#B>N!Lp0x#~0U2iNPmREAh+3z5avEsLl7^#Am9H zhw25PqP4%!M%As%4g_+(eY42J8~QhMMsP0BO3)L(8BZF zAY$}%Fu=y^9*<@yB6|d^Cz@z>|4aL`r^B{QqAc4PbdRgxaw?|kbG9+7ROA3|!;&zZ za!*l`QklymS28dXs*QGQ1amBim^AcCl7Pm7<7ar z^9pI+QZJ$dL8wL{p@Yh%_C{q`ET}eI%q}X>_`bb3GP=M8n!*+)mwb=MU?A_0Z3L-^ zYRPU908_%a#!*m6)>^zXA_;7ZfdFpl>SEM@{!ba1d5-zUIEd$0Yj%7F&Kjjwr^bz585!j&zxE$(zVgxK@<&slh)4!McXMr!ww z6lv|`aFob7Cfp_S>53?2BAkEyEAxWW_3IsT>+B_~#dd|IuE4MCgiW@7`ByF;o)9P2oUIv`9Xx~sA;UB>ND&^$ez2)^#8AmS$*GUPb(**HfTx!D)&yPt{` zyg!+<$D!3=S0NE72$Vid89=of&&)K=jG_v)AtOUkWl^Rn<3ul!cbK`-`F}8103lf| z+308%I1cj3pcJh_#WFgs2C}6HsPfbYR!s&D8i;EYJ9G=k+U-$Fz>lc5^fVZ(l3}O` zF6T6T9;t@31dxH}p`q<9g9s3NR?4UZP`#TIhKR==YN~1((s+WS-CV> z**AWAYI8Jie8JP%l}8_Pc~L?7vQg*C`;s^n?nbP=^n0N*(>&$V`7PHm`F)44z{c9@ z&uT9hDfh)34uvys-Nb;vPA?hNxquK)KhNtuqF43Y=K7zx=ervlpUkhC*t|2NZgDI# zB?i*$=jZijn#{a;V|?DW81QWKpK0!?jy`7Z4QBIItKWlvx%X%7-&OqkA183U4}DzUkzQ7(uSR>X;tXUZ7ZmxEvgn4ZZ9l^aeq_<)JBp4WWhOu zOk@Ll`Z%iYTd-})Vl`+fC@CULDa;XXIMIWcNHt=iE>c$g9431MhyaGav=^mzz4~z& z#rkDNdBCNaX|w#5%wmpj1)kH0Cn^BH#4c1k(^RPw$2N2H%2VfNUS3V`pPAw7)w#(1 zcA{R}i!<-@54}G}^J{PZBs4e8tPLLgK4J7-3A!fAyUc3ytw{|n-Poz;+?XcVJvo|{ zYF3>}y+|yV%j%W;yd^>6 zn!a5@mr-7`b#4|RXLFT7*Q1$VSlw@P?q8o&b`ej8CiuQAY$xV2o{#zHoL-o$`0xBV zTM}t*W0iB4f4G}5#+T7yP{<5XA-e~`f)S7~{_au)I;;&rdT42jZ4Adjh@W>&K_&K- zR1=kgpmf{~4hBp#GeR>-Uw<5x3T{o6RKmQYPfnOE@>h>RDN959F6i&^P4`2+9mw)I zcm};v(n?xCZg2WbOjqjHCjZihFC|p!rZs_X2Z(Eo!kh%!x2K&gV9Y%U58uX8cSB0B z{P+Cn%OWO`DX=9}OQ>6=L@UT}00KEuXK_yBNq_;uFf3$|&NsBkj%4%3_z%~FUeQC&88{!*yY@T_w=hGsdr|eHPhtI{w_aPp3(#z4o z(}V58Eo~#;nl5}v_Ju#n2pr8#SNoY$(?aG#>+8EB6#I1*fr)q5JZ=4bHi5{i8w%%x zD{RCHip;&stH6+lA+lDM9GUp#<$8C?MMqsG2sR8%1^_~>-g46e&|3`rfN^Xx7&TFZ zbF3^j9pH*ArJ^gc0Z`Hvf6Q>6)_;@=8>BA4J90yLoEhZo?Hg=mX!Wy{k~>s$TDWyJ z%BbR!_BHfRvNQQ23sM|#kFWkfiZR@Cc8}!x{p(C7_T{{^gT+}tVC%n@3N`>L1)r52Zw%@rnyBVV3BOv; zytbSVlx2S|!f0?ZTDBOJG$iq+kTc_8<9L3jFu3W{pT1t%U2T#0yA@HPn(h_s6oeLy z&V^lezvlXXMDF*sH6uDviY&z64I%R_egw1I#@gC5QrEi)AzeW`OZmj5-u25r+gCQ< ziA$+FtkpY=%Zis(wGBj{$;7za-lI!DkGFCbY$G}SccVH64<@G)-%pc(-0S94U$@}= zFV$Z}#;iyBG8&H2A|?Uq{FY_m&;ck9Bn$|(!F@J#1`;YEln5onE!i0xkz=>*Z$=f{jxUVXYjAze(ic}Xv6(TfM|pymXzzjyUDl2& z!;me*d308kWbr)mr;#|NV)HU*BXvWQx6kdBl%o*{6-HcZhHw(jSu(EGgQW=I*N^@B znK@uc7$9LRS{3~PRry(830q(E2xlsplGMV?#cX3U2m(fCqjeE#=m8Y&yAV_tOflGjP>}JcXjSq(Dz31X9l^8EJlL0&HNw)*&P=L=DS1BQHy*}Ut;v*UjV%Y;7G%ze&N^4#jw-V%A%`#&b-5*080&1y&tcT8#+smbhr zKk`1NXjYiB_(?go0ww;uYFB)-UK%grF50F=BYF1p@b9_f#6^P!&Cpb9L(usu&Gnz3 zKSoE*3ikJ(A2~NZ&e|mBf&jE4{sWL@1JDp09RyTK_av+ofKY+~>d2|Im4Hb~<0$NR zW=bw>O?PqMQ;C6rezq_kWO=1$wX~(M5P@2&uJAq$xpwzkl>`X99$B2?YNEw;GIFQ- zZ78!+tmed`^S1ge9N1|CQ^F_CY*@v!Kc58V=21p4CCk5Mf{7VbOU8H44-L@M1IV_R zpEx*@Youh63{T4J?5m;hqSpAd`&Dd3N_cX=esraAma`pBBF8|W%+B1?r>K<)0}+jo zdG|FU6wLJ*fd%qAYtiwD!)0P};v)b^kc8nKEDA;`NF7m?f8Ax?ks~J;rZnzWmhmF<4*ZcVirD zc**tI=)$ZN2k~H8Gt;_ZiDG-G?|7Sd7T*-)?eRU8nGt!o)=gNm+parq6Q``hOAQ?O zg&a=$;Zl7juD8az7J@%E&)m*A_;Vp0{G#zgx>c@_wS0Z83(fu)7pd8y-;?->xC$EU znvO%X)wiJ+5B+1>&sHf2`Qd@Shc0Jl58p^l?Mb`eo@p}4xPLJfmCCgLTqHyB+FN3z z`RZ%%T-TYljO;c|Zk`LNN#rHfOCV7ooS(Kx`7t>JfV{urY3_ga5~5@esTLmC{Kq^^SJkaNF#_q< zgsbyyRJvvBLdv1HHj142OF#_dIea%B;lUA=0J?`##zt-GX&(@GoF$veQnY*6VYEit z%uE0*27I6S_Jz=^{rSlvag`T$tloxBL}t%I#06t?@0UrdGbG33a4IJXLfdaWR17P7 zs59zSn1r+<0JOZ53B|xS&i1-`o=n*ZP?XnAHHol68+d#K9E+U@vxoN}n851Nk5EaE zJ^J&QKVDy`?%+)ej%1=5y7J8NrY;RW!*8aFWj0bGrOOyobjvCFlMrZwyNy2VAf*1IE9&-q_Q$9 zO)q0W5a&itb)=k?T!m|YO|2j5tb+e3!=p?()gTVM>rHBnEHTGh4E5#7hCp#d^8ewv znHmy27e#{S9BNN5Iv*t zU0j2vPfe=4ZH(CTQe2%8glrrO08PEL<+Q)lc6ynx-!|jrAjO>SWeKC@1-)`<(_W6N zByDin1X`jijba1@Z&}j5jW&A-BtLv(ER=6aD7aM_3K)nr%N`8&39~PPsbjdoyy7S@ zSxT``V6-k1C3k|Lgx3wi7AT%nmr-+}iXmhPNwm=aBMma}ZyJuIiEyhp|JCH)Xb|!c zSTR-L%lG1)?}Oo;8TG+>qdV~LHR@638 z3|%z{eQ>0QA>CWSal{RNm1tfVJxGAE2MNkoCe5QK5vzIB(YgaR98WUT2AAroKI;p< zRY&IHEzOex?Mo}@1x^Fz8hE0WjVKrfdQq8M-&^wPYg!^NdMk7`AD*6!t zw|O3i@r2*8j6qRm-Ha_lnHj!(QtI($uO&YxmH!D>s|>vTMGjX_iX2yx_#}eq7GO{m z`MCzINKiIjlR;|OW14NDXe1DUjzskUxhc^Y)t9;;%1~(sW1+>PKlxFLUCk>ii+P&o z#Ih3N6dCCmy;|ov5uWX(FKTmm6r(RhUFv+Rc_ux8P{gq$WAW;sYWd>uBC0UJ%jJpd z-oa^?L8r$$iD8WU;=WsBVa85y6|w$s^y61j=4SBO3t!)BN^-{LmY}tMjZEkBKh{^z z-CyFRSktF&b|lP|yw5jhQw-Ywd-qdgW0#_Ar59(J`{FBa3ZaR>gLS>@(>I(Q*Clhq zh23(Tb=03Gg&N9ocli#j7dhD2IP!xUO=i!owti1_9rQ0!P`n8pxoC?@EhD5JO_Zcx zb%!(7X^trrbajX=z3TeOQcbk56BOqz;DSX%QD|O$E(l^Y*^nP34pU-?fbr=pU4wO&X~TNzSoR(>-FyxP?!&9)|0=K-{>va`j;MWpZpX+E~>X&%uO}Fnf9dfCLu`Ne3PT z#K6LPWMU+ga9nSbbb>!HW=^0@lN^68-Kva;s={8TtnGW+}1XWqEFXJ7vXNO64GVx$RhVP(8n z>(CjhaI4rj=pxx6y*gIq+(>sjpTG}mtkG~<{kz=ic=Z0?KU;aZf|}C65)%2zIQHeJ zA7k+A`3u(%_=eQK&&ylRc;sZ}+dsAC&KjSW6keqh2wfh#lOUmNSW*fp!3F^So=%U- zsY2a&2f(I+&7{H6P`Gj|$nar$kpU!%RunI8n(C#aK6BKrE+G(@3LhD7VGI>uUX@|4 z-R3joS&!hq&w_9H@=n)9R1gBPH&h;%XG_snzo~WqSFG;3sFZ-3#5fae5{%{R%k(sx zcmVVr$zP8&e_nrKAC8UrTSSX7w8n~Yzb$e=rg-v+%NLVp$4pLhD7n`1f~ZQEWTWWu z(VKARA`H`ZIVzd$7ZuhaNpp^}g-czUB>NC&NdTjixR`8VPQ2p=JfCg7!|dHizw_$b z<8DB)J^y*3p$K*asky4dqCw9Msuu(1L3$PITaIoae)VaW-XzI`NR5Kt5e+9#StOIm z*xh%Jd5dSz0tL>R8@=|Yucvx5rCuNMS(uyco`_iX{|k@Ytrfa{vcGlV^((>6T2R%Y z$^U;8orgPHZy&~!2tu`ul-dmXHHz9JR_#)IQ@hk??Y&A-Tk*52 z_DX8c@aFvsa;_`SInQ_8_vgM`S-arPob0&y6@9xdYrbGY=e}0U+meVke`I>KmnZh< zV&Uz=$YX(#KAOvrgC3tJ__g!P*n<#!cuS@&{$w_h#>q@&+21$7w`nLKy+PmXs$1zw zeGa=_y^#5m)Huy$+e+%cW|3CU{$^RP{b2$BE;R>dvhb27%gh<7H@ipsq{dbM_Adf5 zMpv&MZ~m<7@VWZ>l4uC557~SX3_`GI1j}y%ltlo#pu6Ol;CMJv3oXK9_mN(Zi#A^3 zGgLx^YX$ps$e_5A{m0LwsHq)bh1OJ(L7UmKKCLt@_`#K;8Yqql&J0ef#Asksszk96R~3az$<&3 zoEO;()RuJMH+=jGU*rj87Aq?pSQ~FZTsoa04;&S}D|%N&ll1|wr6Suqwaq^^YA_Hw zm_!&Ng6fCRQM)(94=pl^fOOeo+5Zp%MbLjFFmMWXLQzgU004%<=?(f5NNlgT#&edK zXBQiV7IIC$uCAVjRo!C$gfJi8T^Me-ceNUMrak>NJkNpC+Ncc3Fg$u68(4jko+_YL ztje6+bf+qS?v8cDqWye_?Dapv{hRZalhe&Grh85S8@yFROfkf9hBG4cblDuHjkS&K zN7$3yl@jaM51BVj1fJsSg8Gh>fu!(+VhjS3M}-M>%SXb5bmODqkrRmEq%zcNfQ=RL z8+TfwLXgKuZ0NHiD-JM*9jTxeQ~mq5k^L}tNmjzQ4_x8oLF7K8^tm~)Hjev0ep?l1 zWw8??4|#Mkc`)6lkb#6Q2oJ*WOK9lC`ze$0DFW+=E&V%3mjQ2Cv<+YH0z1tV-4K<{ zUgz7;^*-tdi|_QItXtDS#cmEL|1-!GIU9SahYg%cK@b5S%P-eM{d$R2sk3sS%O@!1 zG2EIqBx4J9HW;2!vKJcE5K0kN*mDu#Pa8u8aGh8ZvWxt+z`>ZP{(t)^z`i{fNh9On#2OA^v!#y==TOUcUk zeiv%LoU@7gC3}%Ld&JA&z>5p~`mta))7$&CwE0{hek2Zi8(w?k+CIJe#V zD6HN#_4e)8dWlhC^}!y=7KWB+TS8vJW7z_9kpg^?S;nT{eC z1jS1sfqTkQB`KTmM$~ihVW?ULUwS4e3Su!rh7MX_xAsa#16bKRwZ8iZv;tUnWxUgwnBahEO3y9?T=b&-0&`v51()V`EA=&~-quAe+!8 z@4*3WVs=`fDi};U95cX**&1UmR4ylxuzpXR)Sa&JoNPG$kwz-!zqD%CCgy3WZQ-Jf_T)6BCp?Q?g z!rj2&2spv=1c4HE;c$##9(kC*%r#+zUvcNxFTX>VF~++ul+L+sPcBDq{uX2l_+Jrp zR_hIcMr%hQE0GqCG!zD$5A3l|ZA*;JO*<~EnNBwJ^cy^7F1?)3VqHZU+pCwPqzyY3 zm}1}U)-7MmdSdrBR+~H={I{LkYXY|~#Omi(xA6^=sj|_ztu5MO{36b`2X-gND}yD) z55QF>?M=UPmv1k&E;Dm4L@sU5GE;BE1+EFkaYLik?UntdUzu@dvfhE!H@#xaGM%$s zP^DO(^|ovV0gAcrEn?fvu{6#e#=`}qH3d}tGpW1Efs~V7htpf`n^<*E8ZiQ@TR?L2e9JfRWbV>+8AQDafk1OU!!dAx92BBZ9ZVuGu7q|{Bx6UaxDtW-=r=Yv6aS{~ zAd+7Ra1r7PBWf+-GuIj4?5}i&|&6y~;dTPG6q;5Fhj5zz_2#Jr5 z{!*s%?SbweHd8ZJWqpt4q?x3Bo++2#nI4r4|E22KASf&CcYHij$JJ`d_y}W|y79^+ z%I2wBpNg1_@3F-)4gcFq{FxK~)G!T6^l-AO!<%VN8aN210I-4rSYW}0aPABw5rqpd zN-I%9z7Uwy>E;^GNxxViZxiK0I;wonK=Cn*N_T*X5|jDld7UD-5P}pG`l3jNUUZ*$ zGG$09#bM=H271&jYzbyB{=qs%PNgfa$qmfA1N=Zwneq|@XMyS@rx($KAObc?L$kW$ zZ!m^hX?D|LWlvqB-$Z->X;|hw*3gX}LePOqExGCJ9$L5)JM9>0yNdv{IOUQp>)&cB zTFHiS6t9s9Hmq^dt!Q-;ptjH)7Iq%6mOF$6Hj3^og>;(SE5Q)^Tq?Kydde&rv$EKd5HOW3cLQMQ(Uu`e6t4t05Yix9%lD_&{6zaw*r$Jcvf(bQ> zvba(>jDff|D8t_s!Z7Sb)E*9_Vsk73fV-YP4ipnpcG8%)Wf@kRTP ze#2k5{2?nccv@JjOeN=y5FzEN^x=D>*<%$!&{G(=bTBrFDp;QU6Uwoii`P-1V30oe zn-SuvXoa26ILYQ!5d$D33E}1Oyi?ekoLo~`TzQKTO(!o%=0pxm&qMP>;mIRyUBLj| zU^p6@2mi}BN(Lq-7lMFL1q#@WLAxtAT=}l2(Y?KwGXjp+>uf2?%}pl-xD#_9CxVQN zGl7Yb`L~Qw90bh1fL27x6r|4Zy@s+ojA zuiYjdzrWkiZW{2+Xg52BOR1r`*5mfT2WQvXo>O`Imn%@_cJ7YbaLD%N?Na$qW_2Ih z7Xr*}4LuHb+Ct20Rm($ecHVy#T|DR-IH76(nVY;`+p&emzLOCDF?yL;^Je?tKU>?c zZPhlUc#)2}?;1I^akskH{d*^~JX7q7+w;BA z)t7RDMVS-IiU=lHFj?1N%9sQ@s4fRB15~7eha0S_(HUEcK?8kASSDh!CZx&767wK} z>8ND#&bxN2Cfj8Tkt+Rv#FdO}eq)qvnrw6OKTPVdV89lSsL<*pWS_MvjNG#qj7pPvklcVDc}Zhnh*hJzR<4YhUNmi5H;UCBa)fnHrLjoO60-rHR=?f{;m`U=^2g2D^+~{tr|6QWwXT1<>p3s=R0FQ!HNI_dEMDxb?!E* z$`LUJvmoh-%BGOoMU&Y)B2UOzKthC$A-)t2fnX4T9}>Zs?no-V@|S9-Bu(5ERTo@0 z3v(mklbp^1frr9Zw&ruUYvC=?Gxd5j*Dm52t{YaOsMwgvm&_)nvE$+D^(nHKH_LXn zch&UxO(!SCWN)=_q_^|t*MFEh{=`Y2PkhZ9R*U=TK;tFU?s1i{Ja5=u$}DY&a}02~ z-Dx;;m0arZIte@tBR$(}HO^#syx?_}x;x|aDA46ptAIt+wIuUrQ=K-0NCs2#YWwUz zJJGF~^kJ1d?k{bvxso%&f8o23J*xwIhj(c7T1X2LetAuJi%P3a^BvPLm>Zi*w|cto z7ZuBn$aFki<~1#|$)ZJok_ZNaKj+kJNR`4B#!&?t5ryAS;WyBQwC8fo7R0j(jXaQi z#ot;wlETSlhFS`p+5$=yPrnX=Yg}Fr6;^`n$&xgLh?_(65}9gLwxvGTzGw>wviLw> zH#m%7gN$|43#FHPlxFM4A!`XIFY9S6`CTaAw~9RYz`|ofW^oy{Chr+?3QKTk#-8;{Unr6n%X};MI z47LFW0fOT}RzT!bl#z<$8&%N)aJBYMla*7bcMv4#!&VuGewps(A0A?$&5`YYyDFdZ zS<~}hu(5z)6-bDC5>Gl;Ng1f{n<9YtNqL=V#A%FMlLYd~nb9ZOLljaIsS3EuNo=9V zp8U`1GrdcJRnt!u{T=&vg7yUIADfsovp#1!M-`=n3P+I&>PaGTjLzM3PhHK&O_Z#5 zPeF3>`Bobql`xS9Lr_6BbR_mMA<_+n45lI=1lTP&SF*fe5V3GD8ATQw3zD$Ff!YN_ z{?Y}V$AKY-O=Krdo9+KH+b;IiPi->qcw`LDt{OUq>)*^*;bqn1#EyDM^_@Nj z+}smQjf>luKD)(@E}G;p{{83FB2=Bep%lKmD}L_vOrl0t>T$R_A#+99sP(|>r0@8q zO*ZIuZC&8_-rwqdnPwLUyf*F?jB9xA&ztOq@xqKr?Zj6p4v#-=X5QF6jjO=f5~7=Owlqb&Lm z^Kw!>lwDOQ*|4ukh&Q@u8XyOFG4Q--Z0IF5s12^7A6-*j8?imxnw538WWXU+l|jwm zxu>8#bs{C4)=XImrB9x&YfL$deu|Ihu!gwgN6SwkACKJo%2t!a{eYDn7zBYslqo-} z)l8dc5LS;!A)DAWLdOn_f-eGj6Iz4;pG1_QfFOPyC^?7cI2mz12||#4!Y&>h2~duJ zkp)5J2v;#ioGTa*ahuD!YiwI%c-mXwVO`z$?_iYXwgtObbBeFI-Er`|!S@CFu$al2Zhwte>``paLIr_osYha~?lDT@t@F{IKxVqQVHQ~Y z?)%!<{N#YIHK+IAfmhYznTH?F9xZseZMG0#26g&ohKB#ON4z$lnOymqTe_*L{x)k8 zaU#Hcb<%tG@t#wKQ_1_dS4~`#s3)Jg5aeZIwwiF?l=uwd3_h&6B91;^>KOkIgecqfRYD8y*>aActOAf z$kvQq8L%;(k{!TG>8lDzD#f#7z$PeVFQRS<$$hiiy6LtvJp5YQKUwS0IbT5z%qNN^y z5#*r|LeB?)-LPq4BHX&G#{3r?M9qF;NtJqSeTyCw^l!@@N7t9m6-z!iE;q5&u7ew{ z)#6hsTOC~pSX?3d^nt9`zlzbbGe1k}5Ld@?|K>p4jq*&Tskpb-@vKN!@0}T^n++#7 z2dC{*^Nw39YY)Hro8H5R?RD;+V#Umhjx>Yj_hoL*i;Rc=&NcIWYxAlxoWQ!^j{jEF zRWkWK_vc$^>2N8>&l5HwVIkY&E-Ot{`}mfSI=RZ;9v@-yI}D7E5w^%2FM&IPStN&=7UO=R( zFJ1%K9^x!4)N3^h;CukVUyQFJ)MYgF%oq{ ziBpM`Oc4x<*_#y5cWQ9d$_y$9j0C~~zUzx7FhW#;{%N~w-+ z$6BO2l2V-uUm>V~!UNeU<}mu&0~#`ag%as_LiBeR0Zf+{B{S zb|f;o!sN2Ev*!Npv@T0}Ny&<59@D5PF2))kmBew`(x;Bh^ewL0!K73052PxWuXhg4 z8=o4RQne%*9>kzPtbk7-vS19Hhy_Rmcm@@W5P`AMX_5YrAgg-;D(2T|OPU*wg1|Hh zqpU=RXa;I@omWyqo1TGu>GZTe%X)pzU5D=(mK#p2$mVa;5fk;+(iQ|dAQ_a{oUDg12%&$0iNc6SpvdinqLY}K&B0vi+49vtUi039@!lppetfmJSAgkyW4-PmH}H1bIWWKy zr#?@UIv=v4bdpKvbQcZ1*8BRlMG&XtTvxS39II{{^onLgbon17a=k68B)^e zb$5cB@||tFv!&@l8(V3Q?BL`_VD?T*&`@_NU<*JP(<{RvL=X_+w6kLvi%1IG6Sto7 zkPCLE#Xhza&06t>+ve?mYtLGjM z3|fTldL$ao=tX|?u)^kz>)u%$QzX-Z0p_BKe}9w-frnsfnJVC8KO9ax&yHR$!k6iD@c`| zF&v(yVDa$?9w07hTA}NTfHD;|Yg)3iCUwShh^dmKWwM|j3{#g)WrH3=fGBYQNJ#2= zd^{W)iUbx?hW>B^paEim|yBu1-bn}v$e!)8_z5Siqpq&IvhnmSY#MA z4V3x0%-`ni-8Nc~xUz&lJ)J5F!OupTH%c>z<~G&-o4&Do?erG!A(*=0$^4bSQe=N+ zmYpPbuFTdn-9y!Om8(a-a8SreTUfjt6u#$n<0jyIyC&wFBrY!s&{T%PdF}5$8>R)X z!Pz6?k^dM8_ILmcD5O$k2#ez6dOrZ2PAZ+!F6(phGO6h~%)`Y?vQY^UVzz>7wH)?| z>h2hg>J-!8R}$AxMjBv+BTBXAKPqOI^J?0Ujm3U{!fH1X|4p%C%Eu;#6t^MamO=tFC&e8Lxz z7Xy8A4W<2>l!xsIW=JsVS+Z8SFDS#N2}RH=6Q=I*7)^N|v%Z(hNBEM_ z+n$OuS--=D;fkJ$;YsrxlVx#lPr22$>n$v#oK!dQ*-U5OQ-HjY<0F~J&3In{W?Y3# zhd77KEVF>0qpR21;&!q_d7OF`-_}-J!?ao3&1V5~^ELD9^KfTr&u2zWW->Q34CXB- zaZ5|{U)t7ZA4op?CD8Vy@yZ#e=DY0Max>CElaGCLAD3%}r#N*BFc4rOtQt3LhH0Gd z-{(9%!d*u@?=KtsZOdN#lMJktOjBwb|It0+XB!eGe$ZRgRKh#4_UHF^wT;y8*w{>b z$@_0&YegqhizV-!ti4}*yL>kE{TH6v(WtAQg`ymAfoQ#=&dwQ|N`gvpsR(tw>=q6M zhoK`h3#h!5Y{j&98VZ7~zB_s8!R99I1V`L-zsNQS+D_%oaVHJGHUUxAJabWxh^e%~ zO&O_`m>P2~;e0D3yuZU)by}V=D)PcKMGA=?(S~bt^Cf(Fs_m644HP`r5{MYFgHCo`qE1wq-n=xhfvytrThPoWjqaPR z<7$yrkCpS0wQj_ttC54LO@X&huj165{MY9RjB8TdBWD`^K&Q=$TYr!J!6mE`q1UQ9 zdHtb&QS##5yo}d1cvQAwA(v_Rl8YJVcbPoD?mSl;fFDpV={Onm;-5AaxERTnHOa}u z{~f>P4RpTRBrKf*%X5E(s23ZD9K36*mYS3NYFjeJ;Cw0CAhdY2f7A7wp-}nF&w_*v z{>LXNG#@$3hnKI{GH-`fo9?~R6YfC=CB<-Nl-wg3Go*lq^3W1Apa67PFq{|#t3a0; z58*4TYaN+ljq*JDilX1zF72+HJulZ(6=can$f=HpwZ1`&IT*K$t<`cAY1y+5$MAH; z+kfF`RVLB#j?J@vfJE4%Ex_7pPu^L3g0RI-dKSq{vvt_1Hk!7Jrl2fJ!QB)3;IBCu zdp0QQbmoR_^1Yuhh}_s_75r~4uIW!lA+)6@0F8PU!3#Xs@ztOs|Kg* zp(_5`5>+~`Gl8WXzqjgKXX*mk0k(}I9ZyEY9(H^)xp{@13!6=B$lUOhJ=2$+-9LL} z^X5Hv>liL@oZBk9%BMGzN$bA2m)Nu2SHj;a%u^mxnVwZx?!ZNV_x^@?NAun;1K#}R z(3^qE?N@?+q(&a9^T!|+1O^?^gvmw7|4A<^<*)}NG=1j%vAv{ZL_6X4I>q<`9W_F84n{2kaeoFTiYV1q z;9z@EC^5*c9s58~(b)1Sa)9(}K1bfR^(m}*=R<+@|-8(Q@_XXB$0g+jmq7$|(ye9KTZDHZb*&y@K1Zhf8dQFmBMS$sQ|X0Ki~C z&};S)xu4mM(!V}&XtFCPGe+xveK%9RiGS%(apsTps%*8%_&VN)#b2{&zigw>(k*oJ5=4s~>?Rmyf@mb#BI>?qm=K6%VgOddc27{otD zk&qY)lJAc|Q`%6xiWE^fr+$J4D`TKw+87idI0b@n<)c)m%wvQhA*iv|G@*s4KJ`JD z1(}P1SdXKogPoF^8i(bEa9_z?+n=Y?MTzwyN9{&Tm5ejo5edKE?(#av&c_A1zCJUN z;U^VStm*x8crae3UR?2#w8rMcz*UHCS#5H?qEfDuk-2P}Y@>_MeaZcsy@M5e4%dUb z#ist-VmJRLJ0$$;n~OFBH`l}Q1(Ud=nvKhm*bYX2Jdcdz*PDYs_jAgZZjTR6Yc`ps zANl(pSa=qA`+A*XA4}7mVVCG)8U!3;ZR1W){wDX#-h2OVO_0PxXTnHka_%A-$=uR% z{_m!5%BI8EFnz(l@%^^|fxz9%qXN4YU=c(P5QKmcDJTjA!y&4yRPls8gANtPrpzQ9 zJ{YXKUsU?oRI|UlxDZuX{N2Xlm@`TT`sqqW%av|GaMyI)d)w{9oV@yeehFLrkMHdC zRs(p$gOPmBafzbty2F-bgJ2OdCWcb-d>#64v$9{CQgbH9-Zne5%%e#OY-e*^ z=2~1YKvI)LNep%keZm@kB2r^fo03g}5*=d^gXeqQO-@)`K!vxIKnf+a);WT}7Rddw z#o(eZ`4Iz~k*VD|zYqG0)#$88DKf?V4vKr$AhH(+!KAczxT z1w+##kN`3nYs~-a;x2-%g}wl8h$#qNH74Y!<^FsVC{!^*2)8}^$Q7qA+ve9i&L?A6 zW%}O^*B$%0k`uS=f;B$l@f87&$_nX#;FbTdW|nT)QmQPboV~2a6BHq3zSctmr#EXY zSAm)Qj#!z%_Cj>Pe z$Xw*YU!N~Hohe)#ZxGI13(eu2&uY!p-bita1H%PpuK(-xe<7Z@olpFgxsOGE6nIh7?GB@^@yHFC5un(gUY)I|Tx>p;6yWD$9RKyQ z(2fe}Lgp_NoD>T9#?B2!LWsYsL{4nJ>gPD~FD#bl?>8O&VK0bodSu{bs#DC!4)tda zc3s|-;R*5Oh8OIXKWX;XXzI*^@elB%Dr0KkO)40X@gEZ;RC%9K8sri7d?KOL>X+iPwB2h3qlwhr(s*^@gPy(UT zRd$=}n{QByxZ6Lu^PP^xSYVp0!&3gUVu9@Bjk-qJom+MC$@>N`n z`?WD9Z7;2->MMmz(JVKGuh#t<&E9R6zOA}xna9ao?^YDxm1ag>d0fxB$e7{lZcj&- zT8_;FYMKwGeilS;^4sASHwSw!CH48QEw7eaT`p(UuN-E$!f%ah0=B!iEIe-iaCt6_ z1a5y1xapZZzf|2mczeq%8hE>w?)m6#N7K=Eg=gTW_ICVD&nk921!BNjqi!umU9g^A?sBH82N zpd$5%8%?A0?*c{JkyN1SZC9nT2H9#Z}g=(O<_Y8oVuJ80eQxpi^ij|8BctsR-j!@-z%#6WDABGFg~MVQ934@36I zd`%cJ6bc5Bcm9xn4TeA<6L2v1L<|N2qT--bCyviEX-)S(#6FoGlVv>|-(K9SYCAY| zBU;9nmYbW%HePwX^Ieq`H_WO%fkgK-vk+5Mn9T<82OOUdrnaZa*4zgAU;q2N?e4Zp z+`%<#?=N+qN&2W_<@S1|jw?=VH`BL7?AM0p;C#pF+&u1d3SUvT%X>1?=kxSqgFVC7 zcEPLawwq~E=8ahAw@c5wti?;Ka<0w?!tUD!92lJ#k6KNY)}%AY0m`=4BTRmb_>@3sd=VAd z`zpwjyNTafRk`_INC-b8Ggy-uEtZ~Frg+?{3_07Hiio6yDc7v&>Jn;}vJ6F2$S1U$ zI%-+2C{2Zg^@p6P+!iUB$WcT-AV#DB5Dg2~q53{YPDddW6G|6~iRurP7uL!9j6sK5 zj935^r`d<|s9p&n`s0z~Sy52kZo47r@-@EDKL8doE2yd!fEDxC20|;hl1mnEL88KA z0s_jx0RxHa9}78uMo$rL)l$`@eT6a?n5Gyy0`S;aS?P;Khj*LH z{x?%q?o-F7A;Xs=)8;v*fmai%yx}(m+n1@!QY#S*&Tj(`G<`e{y;w{e10+X}uthu{ zYOWdzW)}xZf0l@6h%Ejc*j!B<4}0w^zMFG#iM=UMHBYZ_alN^;EEpGLmNl4%8ppy2 zJTXWFhztVmd?8H@qSe$vqXxz;l@l%^l62A;Qjuwyy8NtQcc)&dyO-@WX(5HA5g8cF zzjj-+qOd}450xQCYe2)m$@mF%8pedGsB$OmOw)CQm9EGhezx|A#FJ{bH?*BY<=yjT zYff;wikGP&mF^dmtGXJ?U6p%uAXQMj{kji2rN7izRTuUa2)mc=lRU^6Arl#cc8Yq$ z-Si*|Kqk+U2Ub>sh_D&Z=_JLB6F>ek21;pz@VmkC7ytz2Ea1~NL=(j5BF|D{XJycv za5stNQv#YE3}q+E|G@zPwSDNeA437Po^YXv$N}`k1Q;FJy08>dI5aoC94g zeb-CthQ&q&ihoX4boJk_&snC^uNlQI%G%}l;$zE|ay_%_&5X<)Icr`g?=s?W>XY?q z)!58uImC+9DR|>or69;5{<+rCx z`et;)xqJBI^RUZ-Y=Qd9&EYGzuZ8}fjjOw_y@YlReX4fQzVG~{hwtO!c75_hN1gD) zi(<=0fxoe$o;i$hhfBvhQ!CZOv*36+2@Z^bkaomSCQpp?%T!0VoysPuELq|MaQj@^N$f{9a1suexalk_{wsR>dg0D!Ewi-v zwl`j~>OB0&es6Nc=Q0l!Xf_$DlJ`%b2z#VUL|}%d4A&lZ`P4^C zje#|)Z!AN6q&Tz69m<7QTj}0@b#}I1%JdJa3cyb_C(0ovm&xuR=y7g_ckO*n?mZB@iSuj{_Op$$?S)B;pp#8Vh0xMkP~!l6(T@W_^yt zh)krgBB>;jR7aZDOxR2Hk;HUz&pQDM2-lge_-K%zXOdP6b@E$jHVVq#Qr3a1JU~-X zQWhczCIXX(BAWJ9Kj@+c4EOkiVpOIqpkd>g`L)qG18gB8`oQ=QScU6}I~!I0AEGZx zNf_f^B)ifFuxbu4m^}snW_v*n=C+Gegb79f>{#WIv=)L^gi1jqgD%(rMro-?^kN9b z8lYg(4I_rZ;A|1BX?7HZ>zQC_g@MB$(0p(Z#(U(XlafpJX1AdH=uJ(<%sF5q8CrgIx1sPDr*DgG5DH*K^`?+)k3+*)(|M7db5R7UpO zyL#W!?(!cTJi(1}EuLfLTAG)J)D5yfDlW$92e!Jdq$g@GKZ+4}yXG0-=jU;BKDFP` z@%}q)edg8u^V5}|f&Mpt&$$R0WqAFctHtv-5AavFXX4VCnZt39q~0hxo8WHu!aYBB z9JiLJk~VyI6`T4yPMXVD~f>p*PQFx zek0Ivdd@84`=jRY@Xn}Hu5nQqmqKz+BRe|3v;?3`28EMpA*k}A@?b$6-Dn<~G|7cD z@?k()AqA|dx>hhba5QShVp(KAF-Htluh*F3YjQZqTj$)Iy@y9mH^qXMv zW}JcLI;!t35L>r zvQ`v~vQr$(c|`)0BmBF0teKf0LAD&&H+CpYj*kuw%cEj_39wV74J`qI4{|jy3fQll zN{$kek2f=;)kkuC9rwd!|C<>|{MCWyVAwO+k-cc;J=<}XimO?DZ6YCl(|hb5)vUv_ z;bCte1x5kO!5nfC*tU-&)wHzJxX5(9O2_hZ-_U}RxCfOf9EPmzJ8AEG=k=IH-^V`(uqSQV0q$0`jFD2I|7DsrSu z$F(m3(|+V!b)Psf3Yp>hQ9&{!&5b!eo}!xP+kN`fPMsP7y{7-uA-S9G`?v;k5Z3EZ z5%oGr>Vz#4w4xi&R?|K?1Oz684!RdS$ZMg4hp{5HFct*jC7F9PB#l9V91cl{r+{-b zQs(8OAn}MXJ5D~z1f<5ft<@NPa#+R_r+|RardO2fhr(w|7mc{njns~_y5x%JcSlE= zj`Ke+y?lK9TxsXak7ic~@=^2eZJR#Jdz;0M-pfdBznDAi!$zlOj3=vZma!VinjTLq zG#VLycKl1_FQ$#z(W$C1yE^%md$Wq)xh^``zV0?|5yOh`POc{Ys!AQM zGROVqJta`jD{;Tt{Eg@q;B z`6639+oBxOVOq%vHD++t1R}>m4DE!Qt9h|I@MB$bJ zfFa1kSfv0c1SKYq5j4C=_@U=XkRZKa5*ie78*i9MLH`=?gFGgmRVbwpIt1xQ(AkB8 zqg)iKIPN?bM5RV>Bp4(Rj1n3muOi_rWYV#r1nKz!vjpX0-s$$B+w%Fb+x(Z)>zf_@ z8LWSTS7()Z#iPBo8p(oACC8}bG|}hGA4wJu-qBC%<_ym=kk}-WamsdhV||V5L>YQk zA2=t*DGl$~#8tWzNf$nSFR5du+ishBdxY!I;Vju#?%3K$HJ53Y^}BFzU?3X)uvy92 zdUe4&+CUJt1|E)Fp0%GP2EM&l?B|77Z@=!i?g4t}mwQhIHZIF{;Em&MH=?K71e~BJ zmm}D}H$#Uu@BeG)AxJ2oqS0d0YR#+oy5wOST&-!{BxzcfrGtSZj-p^;Q+1}{_3Z$D z-a%jS40jw&ows4}iH!pj4}chvhmqfn8q)?8YV^l&hRQ=Z8hu?;?Y>HNYfy2>e=2ys z{T)rDa&IhG#YSfYP(d3nrNW^314ix!l*6bBaw{F=_w%^iVfmAMqM%v2)yYAYvZG?@ zq=+QoQqnSu26e&7?QvUI3)W~LH(NS~TSkZqwULgl5Kkv4{4gI!F63AmYUx@|=^iq~ z%}TC7e3b>g1GGx&cNeCoQxNp}wJ?aubaWae|xD$zi1TUX0n`S*gkFK7au`AbPejvMKfR<`cK ztX7=@9j)SMrq?C~)cPLaoCDmY44Tr^m>U)?(srLUE1P@F+`pZd*2@DaNC%hdw1fX;QI1nV|xFfX&1j}?`(aQ-qCqyzNF*)c>JQG z%NN&vvTJ_%mQpf$`&4zic2>N6y4zyZVfrc2$)eRe-z+U@6V=QXhO}DIC4-)j6^}{g z#fA2@v$!(L#bbt(%-o#2oA>KSWADk}zb^V84L>#5wr0N}3WBnS5=F7HnG}9!Mbe~E z#s^acBfM1dfFA)Wsnik;m6au*Q2hzNV!-*DJFciTXc6+lsYXi+ zU7*rR;c^|fF8BgWEnM22i`I3b7?3j*8gnRCG1bot7&l_w0vCdUT&jlP0PZ5#6N3ZX z-9*<&G{>1^E*p=!3~h{7S!VGgigc}HWP^?_H^=i44enqStm;6&C4ZjE!>=$BT@@!D z7L9z$cyM81w+`h1rtB{((>kHsO1>m(dcHw7iDr*-=}+e0z_x7 z*Ct7m>iM1d9)?Y!YaV3?_}r^n>NxooQoOODI#Wf+F&eL6UPelsd6}2oSC_dh$z+&1 zUtp-}@WICh9-K_p*sM>H@7j8*#Rd4)EP8wGZsj^TV%4}N2@kNpb$HTHx!LIFpQ0G> z@U>-Q-X)@`wj^=;?K5s(8uI|omvOmSziCEd&HbiUNf#(iw-fTG6BAR$iLw zlBaoFzf2sGx@%X^tVsX+X?I4m@{Sv#+38!qW`2@92@ioB$cRe2a7jxLBE73k7SF@s zN|h0gRQ+;l^2O_wvi~<8xf~v@h)l2&&2$bGK;X5xrOHt_FiK}V*k?}ibfJ`)dWO)k-+b-|(~cFQ!eY(LOs2zwPB! z!mk|wY)2W7bMgJ=^O?(1Gp$#vJHO~n0^S7pUafER4NkjPUs~5MuKb;xRSDefX~KDW z_X^BsUs`)CsgLl9j^-M7;NSf`S!u165gI8zB2(i^X3-4*39_3+MRlf!1* ztFz;!uKZzXeNhrgCUd4oH!YLm=|8ERWiMrMer^qFZfYJg_j8su^l`GC(6h9<2Wglq;&Xs5f?a!$8+jpcje~QoxwNI$*ns+! zIc?s&v&qUwUWP+PQ+G#c={a|Q<)5^@Yi)e$>)t5lD-!567t`E3yAmN;(A%n99`eTA zc%)_?Tc@gyV+OH6&CTr~zecxjJ0Eh}Yw!!FG`NoAzjLz%en%VI zrwlYqp16^4N$cB*ef-Hz_rQ<`*PZ2#Z|}az&WTZoZ?mdTIe5LR;0``1;=4C!^!_)+ zuV9(1M*)I+JO5&118}voYA0)QAdKMr)u8s0U^1+gJ8oC}DLhJ7p1=V|=K`4i$=IL%NBnSW)ps+Q5-q z0H6to3KnY4g2eQ3bPho*8Y7rQT21 zuD^6?2o#_kx5M?*+>A~hwrS=1g_EO$)5HCnk4}fz&W}GjJQ-ZvtWs{yU)G0r{i|2+ z-`Kg%2h*+7C--lr-Pd1#{@gfpI=oy(KVR%UIijbP@uWqbos=?Q+oQ~}a_+)*9i<*S zCWmuHECwqqgEX1U?(gSeZKv0J8K^ zKm`EBk_<*jppzhJE=VvytSZQx(ReT%kDAd+le`+#UOOSCdRPwzgQiMGF;P*uSszF# z*wpUq+F93keKyb#@VcpJo~pWXMbHWp=Y3@vR7grqm7InULPCXNo{}2@I!g$$l#C=G zL2|-ELBfconkq0S1V}WHMkoX`1eg?B0zfwhD1Zbd7$Ff$3Jb^ts+hr2VwMC#Ly&-w z%}s#Z3`>eokV1heKtLd1c#0trA|R0>@f1mbG%94~Sdx?*2NOyiHIz!6MLy=rlS{MB z$46^vZ}Gxw-NIvhwEG^N7>YNq5&Sja5(fuf3_HTjzzEe+3d-q zv!SkSt`5#Be{tvh%3`({^|OaP2M6ufe*Nm%M^|3hIQ-e#`QLrK_rWJsUxr6dVr>-j zvODfNZft)(vwCu@?G;C{>Kots)4x6`w~vl5RiD3?F3eus`S|E8ro`yzY`A$gtpk0^ z(r{=t-q_yqKGjK&B2G(F`pY|<*Jb}`cIlOF@2|doxf-7>+@m_*9zH&c)zQ2@_wewr z#r=(~t&4+`y$Ls0564oS3<&_5ek(OMU0S3a5RHKV{9zo(e-dsmYKob&5|KX z>Ve7vsbWYeRYj)K7xe`+ryvDAIZ9Y98es;2DD#;SeP7I@?b4vGoCpiLWS%lTB_qr! z4iPF!l@Tr}mcZl@l92?!M1%waAd^fmV-$n{ zPLJ|xxYecW>ztY@tQq*KA3a$wNq6`BLYe3Jc;)hFDp#187t&I=rl+rLU14=V36EXDy7f4sbGW*MoY8NRU)a4kJ+_xr2}b0UAOANd@R)Qh-engi@SlFpxqh#0UwX0U)Ia{)!SQ zfMyU~G#Ukwkc@^Umm(>fsRU3PNq~hANi#g9KyV3?2ofM52oV062$G9LrQYIHVVdF?k}sP7&OpMSGIIhgbU7wg@V+ed>P&Zd1@3#{&L?tk#{!Ic+xhHIbX z)b0C=U;0G9yYr*JUtb*!b@%2oSFV2gqX*ZoZMdSp|G;6j4e< zj)a`gdStaFPv@yJngO0mL_xp=x=}g9v>+=Gpdyta>qKqgTH_e()ehby=Ow&lcz3*clAg4u>y{ z{qQ8~EUfh6s5YIZKI(p@_XY>HKhJH{uoksPu1l9Q^5~>5W~V1-i}kTa zS7&Ta+b(@F-#Gl)&WrW47sk2F`st&|?l{@@x%%9z8W*GgB6O(&R9!SU)EaXrZ2@Ws;DlmsTh|C;j%mg1Ra2G;oIt-)R?hv`ZH`c|K;;^^tw!I(!aPq6qmmIt| zl}V%9ZRcT^GWxw`7Ya0OIVgg+4HwCCz@RtIXW_#?|H1Obw@>yyxG}V*IxLqL9oLuA zn`lFVa(`NP_2&8Yhd=!1r~c;c)d#o2^5Uu3@?Y-%_E#s0;fSeU+Lw#-e(#{OyqllB zihgp|oc9(q$9JaWp@oKz3-Nes7$qm1gz$pZ{j z)?jqX1ePpnB;uVHJr1rKX`53u=sIv#R-`6%#Bf*h5C~FPfmkR-RRRU`vNEl6U}9~R zayCk)%AS?qaW`{!qv*yZlp})!yA()JlPFn(WaSVF5n?tjg1fo_$VP#qc-J^`k|+Y= z1f-nJG)0(BxpHMW8{Dil*S5B9&1kdc;CP4F#fd;hPM+~jq^z;%vO7xwComD* z93&(XSVTCO!yWH9ITy^Hxq_RS0|ZwyWxx&Oc!!ul&H@4)fIHqX2f>M%iNJ6;`8y;8 z&B~sbA_NW)V3~*sK%jTroyg4{8VK$LcPGFdPEH^qe8=I$1Of;E!QoDT69}YrhS-ZI z7dD)?hugdH)$&ScbJ-pJGxD6?YbQI_PEd6MTUn~ zgEmz;8XOe4N#Vip)<`y7?RIZZ+TDUC<$6=eqPhO*4_`d4{Cv^&&|REe9DmrKmxK4e zOt(hgzFMG&qZ`9^85fuH;|CAw&8rtri{7=>vr>b9$dRI=-RfSikfxd zrm7?mgYJB>8TfLlt&@@}U9LTvMhNZTXCS9Es)6r*b zyIb_7YxHO{8{GA8cO!m~cF(Wcx_8{KpPhxn+S1rpGH5n6@y;(7uWkfYDF^FamD;!I zXcDZ8HP~}&N-!glA{dj4FP6n*uzd6U^_C{LAKuz4NV?A2j$$u$xe5uY#kG3fR^h+~ z;Xsms1A!7zr&XzK19r7mNzF*i31AKYlfjsXKp+kgo>fgitV$f1$c))l36>De4In~@ zQ3wd+%A{)UmdV`%l#MdPwd=Ao+FZG#@YFhpVL2t|V2P;7L0of07lt9eBQP~{&*J86 zY=E~&O+_r(zQYJa%nV|QLZ;^ILT*M5f*FFUa#0luFfqZHVL7Wql?`B!6FJP?31mV5 z+?_y7Oax{)eusz&1T#?J;0Aa64hzBD93XNBh}aDVV)jf#4mXCs0|Mc9$N?gUyOV?A zgm>Hl2M8W4*Zp20*FI}l^+|R0@`Uy$?fH4QEr0!N+5gcWrRSllyHH_)VNu50lUU^0 zWs}jX!fvxgPN<6DiO669rk4-SUzOjFb)og;$;sM^p11W<27{{C-)(<&<7k|;`R(0< z`tuiW{11OJDrP&o#rn<33e2VL>RP24-|p{TKi|l;u$zBb->|B`r*FRcul{V-P4w*9 zVfooFpPnrCK3l`vQLVzIXYa#7MTuQfFiA>S@BX3Q^&TCDi)Rg*c=O}!a^?Nq>Eo-z zkFJS?-S*=2#q*DTbWD2|E$7q>`$xQ9))!6x_BEB9#dhbr{ps*>xpCX9E%$pNl*9gr zb0u!w=0!Ih&0ajcoDMdpt7mua4MnqvpSDz${n+Nz8|Acq+*Eg_A7Fl>n2yDocGr~$ zqgu6z@1#ScDjG=D=?5$VPywt7T$B1PhTP8AQkw zEKcrj3WqzqwVZQmG^Wmk1FY?w*s@zzxW!~Ja#e(wtvU`ln>!J~O;a|wnH#&R=(_Gz z=(-SskY!R44nhROcibFirU02ah$RTxj@?NB3Iq_dlPL)10GP;~onTH1Vh|ie%tUaw z5de1(F*zI#W)`R5a03xB6M;ZrA|wYf6T@HxgS)|rjojfNFx=q|z=;?RCV+?(|34=X zxz|PMHs4-t+t*($pPU?&yN}1lm&5xHZ(V-TjD`dH_UkU?dM)FAe}K5hI`-XS(KvTo z7%DFJgXc|dwmqh1>C@v!y)rfD*IF9XSDWeN`N_DaA&+=Shxa^iPnD&JnA{2N) zi#4w{;nt`ML)u+bI^wd}`Q~g}9p3KuRuYJy$#h1!JUOq+Yoq$?&9XPF4&J}sp1;*% zQgmF!lugK#0AT{bjnoVbcd)w~RE>p2BnZri3pO=3a|Jo8W)1{r&4GzB;hmh#vt|c4 zu|PqdvTELKXgKLKn_2E!lTvp9*~wMl24v^5C>x*N3Qg4pC)WgG$ytM|wq#ieJ)|xv zmjwrQfI|o+xf(bB1Gi$9XJRe zg29QI$s9~XaLXWexPwKA909~kZW#tM5SalW0A|i$#dnARa(8n$9AILCGZPWsaRT5( z01>Dp-Objox14s()7tfpZ%*Q$9WLj0hfBTs^{?Ly$K%j;O;nA0y_bvY{oU0r^n28_ zT;4FQv^DO8O$NHM{oB3?-+TG(tf*m|c|UEn?o3?kI&G}&-8lJ0{EMG7f4*3Lz4x;_ z+sAKo|K?)!V&O%v^CGd>deepe=n}iv^TF=dMY~#$U8}>}qutYA?tQ#{uWGJW7tc4> zzW34VSM=e{mzQ-ft15bJz z+waHgDW5fOf3dr@DTp=I!75X|Eddw~KYVOE-`5Z@#*h z&gS&sU);I4@LthSAuR=U3hbK9;3Qsj6p)j;qRY;KL1Y4$5HZ8d-ITgHXkyoR$F~0PYSVf+p4M zTTg0jIm&gbB%VwPjs#cAqGm!2SBJZ)wf>Gdaq2P`RbUAsg+*Z&GK0DkF~Qvx?>NYe z7)r!U4u=B{A`sy21USHeFif+O5ZKA#AO_$>a5D?;aC3KnnF$8C8;ppU+#Tc&ha1R< zKm-Tij&~ft<4y!iITVAz;PeIGAM(MA3t!JKUXQBA`L9u>4 zbgAkF+Fa)0a4gBH!LX^*w(+cylL^w`?)|;p(ERz;p066x7jD&-CX(vLyl(iq92D1X zO&?bE=Hv2*!*7o^mDl*7KbtFb5r%7No7js*?Yb_m7a=arR&9B7(5CQ+2K(bCEMFH( z#7F!4-@pI={!hQS|K5|czioOdoS>2|brdEKKfZA~+r0f|1wCFZ!gO@mt?%8|ldEeF zKWta{GV<=t$@=j4&RBeYOMdxs^X3ok4>lX_m6frtU;XA6>F#8JIeTQz-D1_Iy6We; zv!d!%`E;9Ya?tZNmAfonNA8J*E{_7*8A&e`Wsq1^-P`U)Z_33gK3uK8{_1Ld{b8z4 zUZwGPzg)qdKOsqUSR7L46bk8QwNe!fcXM|V7)acp$sO5UEs(%EkOZVmrk%qwvvuqQ z11n&f$c5l$UFy8cEmIT%L&$UPnof-+w_*XTE>)0TQ@asNVo^%YswN^R`^7wzWl;#! zV@{Tn`9_s$OJ?=1?L@?KEhvHqVkT3~;8;*fY7Us%JAlJG#OSuRq9_<##3)7NoGrVl z8Hi2I=^Z8*i#Z%b?&NOdATSt2Bxdf+1h{9-S`rh%oyZO3Ai&=Nz2j!c0KweB1a*aw z5D0L<2>^kJKx_cq-2&mC5F8+$U^QFTC+C;ap1yg0epw$(@A2yH@r(WOVE!M!T;2KE z4?h3-MgNv-<2s+w%{!G|<;rbclk|txnJOUyWy2%zPD3%eeetW64{koHR!@HZ<@I~L zi?gs#8{}+Mc*-aq{HxpbMsB}XH(#IjuZM5`VSOC-3!O7}UD6zcF;j}6>AL84ba*Z% znE%~$`q{P4%h-iY7<_iBC!6xW{K4P7`TZ|WKcDZ7C8rIWwOmPeb(#^1Rs#v~&C}Bd)2`wDshz*cWN~~iZ&z>HlCO_U$+b*O@!EZh9 zVs$tg_Q$E+Z5J0o#9TM$+f^gw_&~f3RbTp>t3-pnaoI^(j@#zhv(b&oez#sWJ}jp6?dI}r+b&<{)yn%R57L5*#VVA0xco)aFG{P|NV$zdl)G$B?hYbP#3lj{0w&AG z91B;H7&sfljl@lYDMSR$nTXv~3n92$R!ga4L13gTOx|^Ea@9^dlA_82?>S5AsS6o# zQ3WI9>~NK$I}dHn8P=(4N+5ICu_PxlCL{~ya3XW~J0NoRAf|9j z#9~@Y5Frpu2yP%!cOzjBL)rsI_a0Zb%9BzOy9K=FI?j#OZ2*FJu0w+}v z1qza~s#+idE5XE#;m%~@Vr0Th?8*jm1!ZQqlamHwcJK1?^xMtr7d{DZ7iqf9 z4&~N(-90|L^Pm3skEg@x^ya^8gGAKvp9 zj~CTwe0x9B{?YA6k1!sjP|&u(Mygy+%<|*;bQs#@)3^HQaDL$rzCIZjMMFHW?f9U` zd8fH~Bxbk}3_VTT6TLt8gbz z3Tf)0;pq5w^s9Ki8U@z8ZsSO`xm@mzrLLCk`J$2WL2qu{Q_Tm5ZNJ^Dwq?23uLEnn z-Q-tCgS2g^_0qjNrgXWwk>a4*U9C3kI;yby`XF9ysy$n5M%mvSP5QgldT{q(D2<~d zP5_IOnUjfA5z537j8=5kq|gQ z)r>>(41dQQAh=sr=NJNlu$gNk3FB!(-wIe{woOYuGlNA z7*Z3Fn{DWcR7Gy%txx~ir^VUvEt*Vt(}siZzZZGMy{_?Moyy@(2RDwo^Yd5xpWHt1 z^IvX19#q@qqK>mXvZUQ+-C@TSjfL87(H`9`H^uG(H?M#Hz2VoF+t|Coi>EJ&>kmF? zdPNn6`Pp)CXLtLP_VoW*v{J|hwe0=$TU zi3v*I0oa`hW^ht~985&+1UNaq|cIX}9j@)Lh%YR-fwgU(Fu;>p!Zd`E2^V z;?>VDKDxe@;ry#Fm*bDB%>`ZVYO>LOe?TpdE1iW9FB>m%S7UH=cuSW@lS#eY#Zl2w z|8Ts!xL9S~tbDhQz23NAWf^Rq&c@w0<+a=4{m4OIt%=rG37VgSAPHcgD={8co^~9t9<>B{^alf!z;<_LBTn2 zh0bGpVcXeW@q2GKpfV!*K+Na5=emnWW zWc((s>L6cr2m8BKH`-!Zr*+-!TA4n)y?)kgj_>*QpkDW`HnLw1)9G1`Pd7)$BVVk` zzDS2MG?#;cmWy`N`HFV!bnjX>mA9)Vm_O3v>{G*JmrGE#O3Y0j!3g0N@zVl*-15TV)JGe8cCL5!W5 zh{>D@*@&VmmnKqpR^#ZTIT^ekU~2AC1d1VN*MiLe1kWy%5M0;|Zkau+fdVrd7%`hU z{5wkS&X(2OGbDiKH>@OMw@)p7aQ)4nl~GvrsiL*&W``$ z!-w|t<>RwAi%yxccS;;a+|})G#e%k#y+M+-GcGuc=b|--pk zsXve|2iA=p@%tZ7hJB{YD!bv2zV~vKul3_{F1PK)^XvP&v(2{4sjg|Wo)@`VJl&P* zgX?R}%kzCk`~lh*i^=hzM&u~cKigG>=&GYcs9RdiyK8%vHm28a_GXD@vp8Yw4LCvU2>Jo2% zFK+i1c=e03jf{#n%ckEe>n2R};;NZSA?k3q!*RZR(*CobJy^9j$763^KFRyu+G5i+ z+u7??s!TxbX}AhzAA-LYV?+*)z4+3L-k-#mYH z?_rvGPJq{S?r3*5-ya+vghfHFt2E-7Z_9H3#_DQ1ZZ^rhCrvvZ(rUeQhKlqH(r&fZ zm94sJcy!d;pPg+buTRk%ghLv}^_mRy^b=XCKFO4 zp%@9oM1<&Wh=SG}P|a?}kPsq_gb6K?r7YaFol^{;Z1BtgG&`w#R?UD%qRcT;8QT=Q zoi`{;@8US5oU^+Uld2(^o2r4?32@791afFbVu@yLNtTR*q_)#!W|;spgS&zOKh};N761bZ! zyKP;RU2dpr1>_wSyIo^c!FHaFnoW+eVjF(CG z=daiO-s$>J{=moyf_n*Q@_UD z8`RUgfBtW-oxRmOYiM5HeKeZQcAU2tXYZP=d{+xcak(;7|eQ`6M5y4_j| zBFScfEV-(B@MI2i&najZN|9bf4D~j#IMep7gd{KKS&X4_BAX{@;A5;q1<6_Uo%5R^fQqoUeEA z;h-Gu-MC%8s;^Jho4HWyvf1Y253hy$KN(-FdTMRa*xsW@tE)xPzIuF7yBF|K?zP*U zcc-hocXYEqll?o-UN^Uuj_;SVrvUxb~x^Uw`zfNgf^?O~>{dV4Y z@8su$^W8ZHYQ4e8fNNp-4{ry1fK`1&I3q!S|B3c_t=%Cl0ysjb& za%nbeW3wo2-quudp7|)%l-6@DR=Z(^UhA#*dPDSe-P9<;YEvQ?Q}b-%S-q#1wOpUb zc+l*2Zo6tSis$S8t%GXQ`cXAsS>3G-Id;KhueVplE-y0s$r)SBI=J>;v8zG(H=6<| ziktD5X)-y)w`bbz4LffprCXP2Fl60YzY3wIMkN z&R{XmTBWRT{2?! zO-kG*mc)gSP#1(;M2MN-X09x*IROqgb%qmpTld`E)Cp#sRZN-SPGm$NVh)DDmUSJg ziaZ;GiO2!aJAi?I$M6n;K*RuZfPHnJG|LXR4}lGdP<5^!S^#4$|o2i}~Tf;CoMZ2Y>dx$^Oxxdj0dCe}Uh> zb@kVIU3@bAXl0AD9S+Z0?X~0Hv}l;FUM=VCu%uV--Jrowe>Cbgezs~$U*%jMkM!H% zesZCiI;O`bfAWXd{PODd^(XzK+38wnn_{nZ6#1&5 zjZR$Rj#$Sx%FX)h0%-P*?0nwh&SxJ?n?c>>t8M+k>VLi(&%a*nzdzcbo*~9IgE*BG z!3m6@tGo*PRdIW`q$@4Gx<1AHbl#$f#=P!gpOA<&kY%!mo^7zq&p3?>l*C`2K^0TNcQFaaba4rU4D4*E_e z29by}6W$4|ETkGVr(JGq#ZH5a43g_0o$Fe}GDR@S8pfGJ5KE!#7w%CYnWz-sCElHn z+d%;u-mE@fr2pib?hx0m`T?SYd-ByE;c+Fkjxfa9p8QU zgJ;{oxmIjY=^~G$dwV*6bU5wz@7CovkNLsgnf%>$`=g)y;OfcSAbTf~Tw^z99Sj1K zoo~svOI#bYw%>;7xM#bqp*wlfZJCU?B%cm_S5G3b6$5klj0Xj-*DNQxr>?nB21) zu}EZ+AVHYmL|$lTP`q-e5x zeYvsR$`D+*b4r=WO*ybXMG`-`PA_UoKl34DB;dE85hjmqdJP)aDKx|J`RF@cQlN zXB*N~^miv&_eRatw_jfU{=-A|Z9dA&6^U(IyZ+OEGx&#JolkD`mls#Fc{$zGmtVel z{KCq~_3JVny}lez2DH&OOC@Nb-IjE76|1J&9vp2yf4SNgqkQ=2`#&u==wcX5ZQt$5 z;oRd%jT9S zxR7QKnS~4vCzxi>s%oyzAORVXJBhF-D+`4hWpg58VSpH#LmhfCYc@~GG&P-NP02&l zoRpIV5J&+k97+TbS>}k`Du@`lRjD{-u1vem)pHREAPPkpt0){egc#roa$>l%FgX!3 z5y8yK0YeZ|iba4^02s!?AaaL0g}_v5(|Fg>kn*OHO50s(ca2(ElDnI`b{TL->WqXX zxzKO+$vG91{eDfK93Bq+ z@|%^STxxYPHKnZ~1CBKbeenqj0%y+c++UVVgN`bH5t4Okj}^-3S(kohIMq z#f9Cvd*hZjn=tP8(&Yw0h;P0(?0$Wjz#&8-S0WN2S7x%TCIo;OP7ZbwNaPS0P7E-aF@XrC5N5bXZZBsW8Scf@ z$V{x+B}+yjKr<}mrprv0jW%m#DT%BQ`EvM!pMAPFyj(A( zSiZOn^{id)^@ihqH^*MM8ok}!NHl?=Pjz4+y;hk-r2iFF>?d<87tJ^>Ppt)$f zI2w;{-)a^jNALN3r5?;Zb-roMJyBJ1Xih@io}V{^qHR}t(`iF-TsCRDYx4T_u6_T9 zy%+yzn>Yw`)Vmn5j-s?pa4E%{0<$IyeciNa)#CWUgHd<6+G>qzL<>%-ksCkwsMm&* zH$2_1x~tmvTl!w{-Y~as<^Au?|8sl$%~!Ky*~+!yU~+J5|3qf( z=zzO^4u{8mwXTrOs<+>-3tsJbTy$r(l>K$rxr(lJTaTy5ST~Dau)gYUI^6HKyX|gs zz8#FWt8Hs#A?%)4R5LZ*CZ%2!-FBPmo|Unrj$_|JvE$N=xDpARSi5bz+vQ|ikUPad ziWtGfp(xR1RcJP6H~fwlu3`W&LRnA;A~hh_0);pg!eP+Ux(y->cPD2y15;LtF{MPB zh~cU*lfW>L3pqNY;GKa882~#IQ5mfYrbVAk$^cViip0!9B0=E9k%=XctGi2Z6E_Dr zIXT3^6aoMzf`LHf01-QBjO^KvLNh;I^Kf2B=plF1sq_P>Y0DhpUE4VWMB3FTx=@f> zD`rfQ1MSu=L#gb=-flfV7zJO{qk^?=L}?Gs2!nk*UxgB@w141r*}ZK;YOdyi&%SwS zU-+g)uc%Xzcys@c=m`39^WPW!PM)U(v3v&NcpC~@P|YCOFC zqfc%{-M)R=+^kn`o?Y?X2gT>}>&0SyeXniGIFYxlCJX9WA#fxjH_uh@W$Lh9_};#* zs=LRdI|rq*<&AIi-P>1tXXS7>qWRZ28l@5ae5 zuv-$s55%0dT40YRO1k!+qL+R_caeaM78$mzZc!A_R69a0}?Q(H=dsbCP9 zC@%y(W**s!5ITg>gd#f}ADU=18XuH6A*)Rh(L?~@7=wVQL{%gNKms3IZT95)lBBqK4p;CO&qU zNgRPAA`n>O+{PqH1VAQ)5P%S(PeD;e&6vDK2qmXsNKqLgzVC8)`!Bzbi&@rpVGO{w7$?)`@ZHP5{^_4BZf=J6 zTGiXP?_<9@UpSawX6X^zQ{Nm{D5dv7Q?wbE#bP#2?wj9aKRJKb_QTa*Jn4S@4<>V8 zfA=3R;$%+8Z~t)JXj#NAlFN*!Aw(5Y$vAzB#^f)S{OmBuCyVxu@(ek|k(Qf!*N<<$ z3cVe><*bC1$gQsGUb4%WWJqiq025P^06vr%>Rr3<{Y*!@OcV}=UaWFyKU@!&XLk1( zvkAXAgVm?Ef3yEGzwxJbL8rVvdo}<0rGMPsKXmJtm`gKaKG#aO$8G=Oa{c_SeLq|e zcK3$|KEIgYco^=-Phf1kg>Bqi{^%l%V`h(iXX|3&bZ8DZpJ|(jBRzIaol_i8qe2J( zoVwO1jGbM$bnG$BYPuP^>Z~YAH_MmRKmR|?PoI!8PRqKMn87$5OL^QLhiKLNJV)P? z6~`!GGe-3!0)ULDNpeI*W>O?ZR1FC*Nm3C)RS*RxWHzh=NzTSNm*td{L{NhO@Z=#` zr9_4pL5UTe0}&#^A5fyqh=4!>L+lD`5Dh_T!T>CQDnUfiqOvoF4G}RRD1w42AQCXE zD4-%C0D*!EG72C9Fd+gN07V2L%6!ueK|qU1IHQuR#+aN_ODT>)060x)XxkJO(>QdJ z1R|)5BvS-a*ELPM7OW__@u;sj3y0%uR#FI&xXy2Ou-V_fj{n=2Iv&6NJ~cP{*-!sN z+0@how|{rMK5k5Z2r}hmKMC9p3#JeI|MY+U=Z$;!&AmJ})%w@~HBes7d#nn5Wq$Q~ zFbnG;CzBO2k@ZLYjr}zH@S(J_4YvGZmRkGdC*xw$CoeCH?H|4#?rwtx8pfQ_z%=^I zAZRj>)YSI+wFRT6`sb$({=a3 zZTg$Uy-!7sF-CWGIb-NOn9Q3J_qSZMLRMjeBGb^wXdEM169ui2m_z|A zlOwjoY{?QN1!ScJ3P=cK3?n)KHVh)D_yZsT6+nd_s3Ix?fFgn@8kQu=pb1G;0Rc_y z?++6&QSy=rScXKFK%*dnh6p0l$xqFYf*PELsZSQ7Ep)=5F?Tk#5ZW&5JmdwXbh~-7 zGR?KjW*hBkm7U)G%bO>7`>*FeUOWqLe&4S?{mHXuTxX$wbNz69yt#4f5>kKLE+C_D z+*Fydhy9QK`ai$e{kLDq`qQtF!JOlbJpKI4nsPbs##v@q9m@D1r$aQEW=>@H&CYD^ zUY*h1(N`BHbnfJLD(;gnH;1X5A0xR=ELYwb3Q-&yPNKFjtgu_i!|Ch!^W~3L%RhRa zXTa*SNO9nNPT8}Rx^bKWyTKHNqv%2XWV-_p9!{mIV3CrI)hvYKtY{vZfm~I;T;`e4 zaoZiy9DKcmqy2cezaQRye~8asT#wtuC)@b`_%!$5jx_!*KA!3yf0oN#oFvPiK7&P9 z%u{!`{{H@QbyCau`q}Z#>zmilFVp?L9mb_fGGG4DEB)o0?d^w0;)JnZoY^eTOi>;> zDL2fKkdAsPYHAg88A8&@RI_^OZm2wq@b_mntPchGlYsDcZBqZ)588<7{`v^7;Nqv{)e7$d9&STr%a&>9ywU6-i zFPE<*8~^FeXT@-~eqJZ@?(grGi}Bs>dAT2a?00R6p#sy5X3iK5W}p7m=l)&S+#IiB zmHfl0)A`|WkLSxGoA!5GS!V5IP-5s4L?pLzGq6FnKIQBT5Kpg%VK&9W&pI#gmnP8(!NlUOmfKGXtKBgvL|NmQB4K2IK;?f^$Ka z`&_!{V)XrP1hN`J%4oCf~iGVNz( zb^JqFpM89?lzjXC6mzkJx0ruYW!T&w%+N*F$TjbZ%m*N5!%CUU3?UI&NuJn?Q6MH2 zAT|bpP+|loR!OXoV@f8+35`Y}6GAJ60r5yG5S4)`Zj1FE2CklFeoAlAec<0RS7^Ghv*}4 z60?{dWue<`$9nbh#rt8cF~>(!Z{Gguzm;Kqwet1;{bW}Aceh=AWwqQjT4?dvy8ZA_ z&(7k*;_9P|>{9;4hwCYJrzelcFa*2W>>kf!l4g2rj&`06O>I)pjDio~C*sqgyZYoy z^Y-6=^Zex#+tv@?A1_|$?e==fhCh7&rd5~ajDb<2pn*V!F%q`pgfl$9`o(ztJ1$9x za*iRIDh|ENr?{S>_p_pYt~|i3m{K=((|Bz!@{`KqT#vWBnr9~6MmN#==Jn}7PJl5r zL$ZS}DA_X0&X>^x6RDa4C5(!M76&2}B+3{?LJ|>X1$CH&3~3TW5+VUPr67W45{aZp z01AMN98yvwPM|{8azx`;*;!@;5sgS7k|F~VB47kiAjO0Tgb0|BA&EqTsEQU>L#Jyq?(vOb`>u)B!}t04{pypS;>p?Ty-~uT z-WY%+2*k#yf|yLR=Kk)BpM3H8M~AoiVmU`JC`lEGRT1N{(Ew{Wb=Dak6Ppm)Xp6<= z)%ypjKWfC`^~0W{=4Y#^d%QcSDrewIBOmsg`TQdP{UQG{zmuPRk}o#f-%o$~XV>Y& ztKx2XdGiO#LTV27=g%KL%xABMmzq5H+Ju~jp-&z51jPy-Pa*Z8yCoD5jy|CcLFTXK zdwNnHA0iquwL~{FIE*2jj*nM50<3B~eUd}U{rxUlGASk6%yqa}!yn$$;;%k`c;BpF zE&JQUDdY=!{5reD+uN%z&}OrZh}7%4*nao=5Snb(8nAK5suO3Hb=c|oVulkVDOhJf z83kAwG9*wSVpL7RM`b2W>M$u85(xmDVnmB90xG6=svv+fKTZ*uM>Hf;)Ed|rgJ_Th zfKZSbC8Y!?zyg58gaAPSH41_kFr>){7y>|GgDPxMRZta)Sp^80NP&n&$&jif0WuVl zRnFLUQmdllO`5;D93Jm~({Fxs_U6r9^`{q4Pj7F&`8NXGEGH^I9L?c=I==eT z9}RDI)5Ffb_$+M)mc^@A=f6Ci|K*?D{#~=V;5ir6>vpYU7mLzyGjcH*Vv*(}u)Gn9)di%Q@d%1diyM^WR^MK3pP1B5I3}P_Eh}IypfF;1u zWvkzP^M3lt)faaMzqndHVwMcFNr=NJ>-p+ftT!tkyU;?RnRA-am@n*LpM>65m7Aq7 zKD1}$W^U@?+acO%H)Xv!o5AV&&0-<`$b@u0<4gd11r}WKmX|$E&Q8)sV$vi-l%PjPvUd(s7>J@`GY~~m01Rl$6eYJvMp?{+HcCjiRYYb@q(LHN8LA>`N&<*P0KgIf z5K$z7f+i*=O%lmS6eb6vgrFjT#7JZfL_`FMfJDSh3CW-VRYbz5pg@3$0VTyW#T1X? zhpA*gc4J_T9&GG7R|+jwWkE3x2BC|}ki;;i={Tg2ahhm3lhBO87>AKK`h=E~Kdc3!5_W%lReyK) z`G47cv-jP<7H3&MpQZQjh6139J*O!Y=Hrw|P@2}tbjr4chZS~CDovcYe&A;kYIeHs)63%lb4AxSJ zb)T-|`A`4yGS5EtJw2p0ljt0>oxoVs{r#ePe-27xU42lT%XM0K4sRY!#684cf}}xssNxVBxGV_B9I@b zN)k;mL|`TWP>G^3l5tMaurei0CWe3@0!WCMq9XqQT?QJHU`hgjM5rtv07#%BNg$y{ zAyknR0SN#Y6QJP$0Eh^Xkl7fknvf(ZMHFQ~5kNvnR)I)kR6-qxpcPA!X_~zCp>3x~ zA*rIK!eznC7FJV=DyV)^*LT5Gee3swb5TA`y|W1*Ota4_IlTTn*KgnIq$Whcj8jl+EtxDwrO@>w_GA3fU;L-bU0)1GX4>%J z{SpZJL$=8h*F1@Y?RWPVc|OHH7$hI9P67}SXHygN^E`jur~8r6EzM@!jidj7O*aP`Msc$kJK=KUW&y!+(*3x52bs>Q`0+26jm!|lbzM}O}BF)mJT>b%}q zb>LKa85jpT?8|Zm}f?mS%ESfk{>mjZx&D1@!_VkGdM5& z?M*wYK3jZsdK{{UxG3y8f5BCCjEmKI>(5`{@4mO`;>ksR6)wKr9bf$EFZPd#Mm}w~ z<>iH$xOmY{kd0%9@hp4`?yi{=perX}K*ogVyTO$@j9D%z4UY0Y&+F~&)P|ic*Jp?C zXXh^u-+$#}GOB2;S2D&h#mu_oV=}qq`+W6kfm!ZnG#YR+rqq;ZLL**eKM(-#vyE$^JOa$J0U0V$K$FrmPID#}Y?xQHrb>4EwHG z0#3j4W0G7cWyv?kJ(>)W}$V<}xSa@D`q$ zyc-Vjv32!)n#!MC?Avhs?ddY-@OTd6C~0gPSi5=dn&Uyo9<%!T7M|t%UDQky)a=<| zh>~JLhp0+`ph-lmsK$^;sjM?+02D|BDI%x>01_%1WP_?e0Ld$|Xw+Oai703YLa3sk z3e3n736V_@O=1xP2of?10*I<)stH6T0{|oxASO*rR*@MH0U60a0wlvIVn`={+HEH{ zTevue(fh%sXSpZ8h0s;vfdNiW>S=8QEqOV_YJp3?au z`Re#Cvw)7?HCgX%4sjFzr+Ga~bk;F2@DkJ~_gfOLP3`rCC;4YpoPA6kD zuM0P5Wb1>8A&T$v2a_?^&Fwe0oa1pje_nNAU5yRk4C_ynYUak4U#_Vd3^u!G_2pXn-MhmMtEp?<{Os)5470@|Wc@WC>aeRdsK}w3<791B zT+!~ZE1Tuz#obLjG&{Upt>;}r1+*9m5ETeXV-i&a6-fdaA^>w_1tbwg0!5IhqJp5w z47nm|3SKy~5(1!M@lhcqQPdPwkrX&018YhNQzA{OqRbQ}Fe8v<6tW^fNstf?t3j0{ z1t9$ZfN~*>#*#Sjt_(st-QPBmko<8JC5SqBux1qTq3J0b zjDs1TE?hYeQ-3@>c3@%B+c8E^2O}<}2x{13 zP?0D+PKi<^ux+CHYB}6=&yDzzf+s9pw+p@#iGCED&Ct8ckBP3+J-s?ol;K5;3S^k_ z#}=TQYR)-ySutQ9hkVgR-0cvT%S0# z)q>yfOsd(_?e=kIGL)l5K}@I8X;PLc@XV&@GhTEp24=3B*o?<~X&2T9W9D_`r?DM# zyA)4z>{A~p-nQ5@Ha~m%EIaUe)17vc$`WDqhv{NdJ(1e>`|b^m#_!V>3A`T`p|0Q_QVr4UQsLDiXw? zSj&b0BL^TPm86KEDyoQ(k^mwY4HG2-&H-eMcd;*OLfl`{-8qzRU8WR(ONE8%9 zfTU9-1XU#CtVI++L;(Z^{DBI9q~2zPssMt-QAHFmju|@{whv7p@J$yKB20b9)-=)` zqKi6DX1%l#?IecSXbf>06HLwM!O1wrVoHVvf!P#LhnAi`TWOlq4H8FhDM^ZBObTX< z0HIGcmn+#FC-UzOv$J~F?9cX{wa@Shj~~YC`?{a)3dXRY!=ud5Hz%)&6ZlEH_cxee z9DORngE^($UQL+$Q+)d347Wug6P0DeA!9S2BT9RJ>J%9j<7C+w=A^{-I1zN;mvcGF zp-1B>Q(MCnPdgupjew{qE1&`*Y8a7XmX96{@88}&J-)A8lJ(qZuspSG^4Vo*n4Hr_ z;i)bD=HJ8lvrR6?ENA5^OQ%7ZkJ}+l#d$GbdKf^nv*?fGYVrPF=P9E1Lz!6i-P=u^ zzxed&q5wYsy1g!c%Gt6 zVkrg_iNn5|SC^^ju&UW!n(!`3b>XVw_H~@*p`b$osEaK$IGj- zoecUr|LdVHF3$2@8VG9v!$T~GlsD3TN@5=SNgHsln5egL2VfRvCB35k#_MXuL5y-s@%TaUtIj8I9_KGLAAX68R0iK|8Cq9^C3S= zjx>zT&~lE3VnFRDa2aJ#)Q2%n)n&LDC9_joY&>SwSvgIvbkGP{vqp_W(HN3;ESor?VF`l|x^wsOd&A5m^vG0gx30S(Q!N$B~Q8 z-OalT>9=C*Kca|9Jl}%r<;{ zGn&r0b8m=Tz_f0!;9>-8rqRd1%rf~|r&FjfdZRXe+o1a1Z z&`)MOL5@Sd>%Tc1ptc8ib+tavnr2vM4}Wv>YQDYQaW(m3gZ=&egHttwxREcO#@)Zx zKcd_3Ha~ga4LuLOhpE|}UcdMv3%^=9l*jw8ByOHA_wR2$G`4zn{_^UgZLyeuC8;X1 zMPXFP3Pl7YLQSIh0|fuPGk$ah_=zAXPHmiqfJ%f}!v1s!ne$_o#ND?eTP^I%E8iT2EOf%%(JP6yY(YCe zj-r^2c{oYC4^wZiGQT{x&wrM+X7Mz0YaOwgPpDkN$2<`@@E?GB-HwGuEP)CeWv7aP+`pRt|`m4=G z*3c~K%lozo^Em~tItfr_NEtwoR0C#0*z~iH>r?)0{&ilC|MKHkoBEK-0=oSNGp`-- z*it)oDas+Ev*+`xXS2>|?lMc$82D^BP(#D}W^-r{2e&9fij7<0DJ{#fn%II2VEe1j ze7AV<(shTMYuwrF+2$9_Cr7Ap>O-g zeY;**nRer*$guf(cb|=W>|Ve9lOmIeB9@X8QH&G?89=8DK~NQ!l*OD+LVuJ|;2 za=7o}V)*C9tey_&(Uy{A>`+1%`zE)ux#?QJ$ilVnlWjr@_=zfEAOV<@ou4aCJ->oaxPa+-&(N#DBo0Jr+ z5i|67%0K?=%`a!=&9C45+;Z~PRwG$#ZnoKcs!E1LR3#kBFo{`Rtn1Q2JNC{y^xkAv z?X1!3yD$?h$_hvDkSfkou0_39Yu)y63b&sP`>H%1`IF0}%i{?jZBh8Jktl zE~|mav8K{QVojjH7Rco*TddE{HaFMXuAOYt;vz#qVvC9d({Ww=z)7{p$oc&_;?KjzMao>oi%i_)!XS!)zG5+Xj{p|_st3{qt zcIH}|LvR)CM#yE{e^azYVrgQ1Idk1`Gah%+9q5znP=8jIj4`R2oP1P=MI2IYH4q`9 ziXtEYpaP-*AcJZG1yehd0NBn9L?Kd&k;t-D)+s~*W~P)3sidTU7(o>iA_yc+%t-;z z7+^wBKmkW!g4>oN}0Xv%2>$`kpi z(7wdX<_`ThM#^9eeZeg))-6pJMfvwGY313X@>AS7Y zeOK_D4{9aFq@dn9nml4LBp>T+_UfbO)oN_p{g;3GqV1bPUFgFpoMkJM3DbSw z)1N*0D2J%|%#aKn6)$J6hrFP?elGdT<=?Ev%=!AA8B&IE>^7jHDrm7SNCRd}Rk6cjF>9_sb_{ zf_XmcZ*PBduElc0{d2vUeskPh?6vEMx78=h^Zn6m;yxTtlFSfu9EITFl%%XqbJ#v& zKA%7K4{(vS@4vsAw-2xTt0xl46d_QeLWvOp0140lC?KH%Xc7Qa08mvkFtVdG1tv>Y zLSVFj#zLNr;}`(ZP#S?G2_g^~1%eR4B?V-|PW1mnh>C#diBVNSQB(jEr>MxuAV}Y} zP1J1aMX6xpML>dAPE$ATo8FMZ;k3J|q0@!yVv1n`vsaUo^rA^I`lj`9923)|no=;c zvr6V}@>AaA*GX#4BOv`_Vye^d?Q+de@Rpe$scn>eHlIr_nZ3K`IZQPmY|q}0*N z`r*}IR{!TzC!Nw{7$SiXPc4kaSkg~Fx?k3aty3R4rWEgBwI*6L&w0ZK`vq#1$ z1eh;ES1P!{=KHp1xBl^;Z^Ae4{^g&W&G6M|Q}*=btCwr(rN$yxyZLB$eCVjynBxO$ zb*W(Cm>V7@%u1k4x`;ZfpnDx`HJE5Ml3iK|VhFi%yVH;{rPiB*b&`-fTa-3-J;eYs zJhs7Fm`NJka&eU%#-O?E&^h~FU;5P zjrnvNX)*aUYF@=I@vJ0v=XAL3H|NF_iE;g0mv5(Jw0-mam*Ka+ePe!Z3O((HVs*)e z4H-@#Nr{jE0T2;Dl@&k%5mdwws;JGJ7)nUO4vf$ zkW)ec0wkqCgaUxxTGFIS&L}aYLD5(ipGdoAfAG^Rbt!7LFq&+Ze3ME_ZF{;)Rq>Uk zn|h6*3K( zvu+gk#nY$D!_6@DV_x?$dgElY6hllgc(8=SuzIp|Wv9~jzJ~$@h*{CdlyVBiF`d5l z%d9>6*V&8W^!oR@zF?6^0<*G?f+k6F8ODjwkO6`PqyhF^Hhcd0A0@fLiq5jo=IG~T zZ^p_7F0?1h7`akgekL=aLPKYV=?aX)2QXi5fSb~ewZ=EH9EobEd< zKFvQhZO z6-7iqK-3=?!^UL=1+ZCE99>{SjcN@<0mouB3LCCGBM<;{^Z`g>qKqVhn*fo9k)1WH zA(07@n3$2l8r3iXW>aPuAf4WCr<8h%lUjJl1S)?zMVhFe5b8AC`h4^B<3$-_E|d3D z7i5YB`CUJ=(6yuQ2k$We)oxKpr!EEYi4u*S9gnAAR0Q)N(nOocMpB+eG4r~pmN0RU z;bx?7b7B>^S(H|~@~Y16ds4-)*TMt%tQ3}NT z1zr4)-2dIz(J#_gX`D>%h5M9n5{eaNGWn@}cw#?FzmA!p25|&w;@Cqft>e@D zkmjL}bH<0k9K*)WdLI!NI0_92<(&Oao>k*c*8U+tZsUCZ;^Fk6Ui|c?JF>`&v&|No z-S^+c{c;YhWr!wq_s#UMIORxwC<jj3fGGhp_#>+if3L zzq%Vb@cY9zV|G1fMc1=K>`as`2t@U`$-stYXCu*MpPUagIqT?3yCh zy)6_qpR__PV$MI~H5Eu?E9S28azUJbYVs>kLo)Z^1VN})90{rTtq zJm&ZHi(lSe{{0dkm+jq4(`=iqEs>X{`lUb!;TC~F)%5nF1Sp`gQcKWm<{v)7P>ZQf z1eDc^u?khCBjaG!6RVDYm+Ik*1D&Rf(RaHxE0C&G5p9fuX}fX~Z{xb)LuB7xzWt7$ zyW01uCfT%k$~5It8jra{O10+k^z_5K>G0~tp2nu%wBC_aMeC+$zdnBdcH*5+c@^U8 zYsYE6$fj*&`jy?hzB&=-@YB2dfB9zn<|e%!R%u;4Vc7rT^Jahg^WXg8?RUp+Uo1!2 z9!_%#ZA)ag*Ldkl*30`(&vf6qb!|d6jRUFZMdN)i1I9_f$yj{ORb`!J*RS=`LCuwo z0}9O?K8Y#}?@sGQWo|6Ci?*7~I{nO=pGDG|6e0~o1;}85x%yxz;-*(IW-}+y& z?0bk2K)^ELk3bcKP(>6JkVGvjS;JB)Goxlftt<={@|uMR7?4vI^=iB&1qMV_Gytf8 z0EjA;5N3m9$QnUIsH)b2GLVqedQRY*eOo(-z*=`xtP3Kc7 zHLpc$jmcDgG@91T8qqll2Go0>AJ-(v3;-y6QsH$;3$}#3R)hZF(yEG1Kx!PUOl$}; zYnpw#YPAN|aqVA|4>G0Z)eHW&(-~XiLU?v(Qg>^cF3=g< zz8``E_3aRh8l<~7^)ypQO^M5n#d}oigwRr*xA7DG{E(-&Zx6q;=khz~dJ29upn2{Z zyVB2p^4tG=8o$1M_xODrw$GZH`=z3@-+VN?@t}Z&1OiY?JzXIweNX-)C(ZLJr}N!@>i4Vl z>FBmJk6qJY^BIf4u^k4H-Nx4`H`kT_`0QBx>#M=to+f*E@#mDS^Ov^<$8lra{Z05{ zP3P`^*nao%@75ciuY$4au?ivpl8PuHp$Y;bf{Lvbtf^cxph#JZMg9>vskKxAWOW2Y zl2O<<5&?}Na8^JC5VUP9njeuxKtLknEGnY40#b6}w3abd>K9v>v@F1-fHN+Rvoq^? zKGo~1w(sv=-zb=xBO**w23gKW@p(<93dc1ymYhLU+faR&R%kduYeiQSK?MS6OBPZO zZnLqACbka1)*5_?>RdB}=lDsTbDqeP=OyLJ$3#2hy)$G?zoGj0jegco_O4sseYBhF zm$Kb1>s%zhBfsIbDEQ#Xlv-0(*KRsjP%3Jy{qyIC2EDy0@8;{xJPUDI2~`?Rt-XyMFxP zLAohOv!kbFd;Q(_@cKmnDcY4Wmqufg&Gnz;Ki+)a(kbBlG<;?qH%&S&=Q{K^SLuvT z-#ZtgHfBKzsg{aJo88va_J+6b;hN$Cx;+f#;|cs_L@h#UQ^n5K#i(<(RvaZsnb0m! zv>L9tz|hT4>v~MK`BX1=WddK9S?KmBpU0++-Ol{t^27H(NPnfSIc!o>UAcc~me_5~ zY<=fmMohRZ1Z%JUCh?9Sz;Ycm@(h@c9f0t!fq763sN z?2kN2iEKdfvJ`J2rwq;mSYSnEAPY*SRs^CVzpS65%6RkAtE@y zJjOIHQ&|uxibe@Fxmwohx;Eyg=uAo)-u(2-L)SvXQ2?-jEaO}>$9YZ2$}ywyrXwGW zA!BmN9K{BcRHaq{R}=XXU2q(=?}4^MUBxcd7;hU2SQVL&Gc*=!tVm_8wv$KGScGz6 zBL9@2ADTwzVuIgq(ud3K-ECUa4-egwK8{LyVYMC31u{Y!OxBVU7d2>NtYDSx%?oqM zE*jCcd3~st?~Wx#!zx573duT+%|?nkhYD&Wfk|WOi7N<61#b%nZ*qk?yM8x+;>z1E zUeJ+lo<1eq#ZSq1&8zD1Xy&ruS61rYFA!w?!yZN(Syo9#9{Ry=Ku-W?8)a=Y`K z#SsbvfFd9&AR!_s0NNMB&7f1sMMQF9Vdq1~CbS@BS(2b73ISkV+1ABEH3U*iAyptl zP=YsPobMWkM1~9~D-s$JUN2LOse&bPI@TJq31Avr=3@nKuLr0$<7dCP0SZoZgE7mQH55TxnOucdIwY@dLCk)AuZPv$qz0tg}jh=Kxu0)l-r9NO9s3kOxss;#%m43=vtabB~5 z6oG_m1xR8MxsnP}Q(4hkW4Ty^#@FJMtThIR5Dj5jYaDYuO}W*=#!RM3Pph|5bE<-# zw!7Y2`?Pw!aKBe(OqWuzvH~DNiPFMa$QiPsZ7r0v7Knurfoov~O+aLeU@dMtq?xu( zU6aO)S{5|CR@yXmfx=qs;3-~`5(C+SSlG;%Qbm_@gr#^pr@(2oR91ZUGZc*@E%PPr zHXF)9$VCNK0U(fSJsIl+eQ?L9jn3z^!OhiSFv}{~hU0hNCVQJ6*5sT)s1>Cr=c04@QfdNECW+~Lf4?TW$nIr-C``JeOz<1f1g4NXkDq!835*@ z2x_&87}3m!pVeheP7IjD281s+G%nxCxff__~a349yGw!8XZIxvX&uCC_z- zc)4u;^lyG{il2C&YLvdKXC&X_aJzGSUn)|N1XUMW*WG@&yu0Wsx82ngn|}Aa)2JpX z8Q1Lh^X1;{%QW4Z{+4Uy26|H!WH*O?^Y?Fu&T9MS>udf85?(7p1=XymT3C%L5!E^E zXl0{h)@9=w%Q>s5tVkTo*HCBp-L%daj>d8-q*S$t z02ojJCIkxJP;J`ntt^3bTwAj)Xr&b3Hm;_3d=W$y2RRk*QI%H`#w;0~CMhh|st*;* z=<;G3Yr)X^bbgy`jR+Z>sTnFHu(%d0J&8w2EW%Wl+(g_BjiXd$v=A3Q9<_PlCdiQ) z2^0wwE92qLJuQWdkt`yNU`btbbBzTur=qRp){uO2B(|GUErpL$I zt#OtKYeQ5s6BrN{nIkfXyY1)y{WpL3?s&KP+#2-bcnPK@QqD!spFWJ)d(q{5m`C5> zz|#_{nBm2<=|1e*^HKQK)wNr`^IIi04!k$cH%d0KIsAfu_e0Hk{RB3aVrN+1T)XjX zcWcyz&8DLS7OfXDjd3vB5?aTt54&!?Nb69FDiPb8?m&+xsQ&rS|Mc1ATR@A(mm<|# zNrHqfAu0o+sb^y-+E#KtoqG_E(-iDyuZ^1P&!2$|mI!^7dDO$_OKV#PyJ^!6H!qu> zj*rb}=TCoV|KyGQACEZXyRWW(_s35xap3!xZJ9sP?eW{IhiM`65&_s4D=1VE6+u;0 z01&`dW(GrGya5o#qNF7W8nCLpUF)K)9XjhEO>-)e^HQ9{S_+dRP>WPa)Rt(`St1N= zOD@T(!bHPwR3nRtTH!Nxd;O!6`S!uz7{ka!$rtEV{%B z;jrcc!Zw|4UrI$lTQ35&WijRPaf+Uh7m&K9$@_fn$j3xtQELuP(MX+EC#;(sap=;1 z|K*j55q-CL`|Iy?|M_0I?k;CxQ>wBUpqX#pygBjOcx9dd&|ofvw>K|0^OF*L;-Rh+ z?L(oaE7@eV)bGFS=8t|LVIu?|{+NeXKfV4C?Uj2PM*8gVs)_Z~rt;?MZs?7u zrM*q{DGslO*3f!M$hDflP|FV*Zs?Mlt$8T2f@kZS;9BE66|5PI=9Rta8k?T%tF6?T z+hVZb=EZ;h`lEmO#kD#8?)RrLS#$wJ2^C#M6wE|M7(A$BZOcS7_(fPzSpDXU&%7z| z(+qUzb~$Y!f4p3lhl(@naMP&T!(VJ5u0>is?K}Cv-|%O{r*GjrGglvA$?5y+Qf8&6 z5>L}tLl2Xvt-?rP5kUb!Re=!II%i3d0F1H-BQU5E*I1baZ8vuTT(F2>O|y)vVMdwJ zQ12Wf8bbiUV95Ykr{a_uwbrU?m7ze2q|^OTR3URS`2MgTQpz)R-F{ZobK}4ErH*H>0UZQ{ks;U4QrKYRl+?Dl6xT&S=f( z^BRdrrT^lmFV_dYxo&uN7W(D;zxUEy#$y?r*wofmxXdpDctVo8eP??vs#61>G zs`ibTc>3e@?J*1;H44@Si6v};`y&3!f4zvYPEW3f#L#W}hxY}Jrxa+NIhynFFTbGk ze)BlDtT_!0hV8W4vdzr4Tyia)Kp zKyh5h_4xT=81{iSjJwbF3$ix|h@=PzfS@P{NT3#N;}`)7a#c~Zs!BvE%B7;AMil_E ztR!k$@CyWMlzebaV*o%%r6x9pL@lWhk+qdeF2;G4c$ue|N|D*RM!`ErkR(>~=Gg&d z>4PHpM)EwTC6&s;6eO!xPyyt^CvB`%G9^`1;YuosfIw>@0^w|K-_UIOVYj1#zH?_Y zj|sPC&b}`>#%$8+5|QsjIA)K^)s#rkXk{=?urgFcY(kC2u3>0f7^h-z6|kV#h9t^1 za|J;rP$lBHlobdO7k=|U|Lo(tMQPP`)0a>0>+OFQ$fJffF_KlW3IHhFfBoisEWrVn zQUPUM+UC0NeM`8dHP||xnl3W%dJ@)fbN}t(Z~m%#Yuo8}A8&t_$My{*S;#90wyO{# z5vBY%iWD>3Yy~UJ>*ncy|A(txmpBJP933~^GUuBY&*%03of1bh7Y^M961U+-`}Seo z?xv5YfX2T3>Q%I6@rV738%H7tpfiv*&VaiG|LM2qJ5G^|H>H^A`0&uK?KoHPtv0=l zbK4914Uwg7&PiIC@!_F&H_m|wFV*if$wTqbw-^8Wh|yzSB)qgpNmDpg$< zBxUAWi4=$#*(o|pMk&9`q2OLOEu>W^dpzegz59l(uiA9xx82L<^qb$j`uucav)$i4 zeYk9D^KhQl^QG^#N{J$RcyS2L;p(ufwfl)K8GEhjkijba2LnI?hya#cXas0*r_tP*oXBfYdGYv$IyE07rGMq9#Mm8{kx`GZ0hE^LTpu&1klYrS`yiL7o<`4l~o$1WJRs%`k9vi8wTqWFaFCPzIrN_7U*-vlAN8QrH zY<;gHie4BD)itg^+^@F37OW02&E?_UL){*_E~BMVjfkXr$&G6I@Q356rFEVG-DYe` zo-vYbeD5``1L4KKKHQkoC7N<>jU9-ed)|pvf2<6RWhCF z4qNkdT!en)6r>_B7~{MwY(_Q!56xFM<8R}$!@9-#^zFD?$s_g{kJvm*@6I{P<$UDv zX&rMd-`@|PZ9vQw9*;-ZHpei0ZoI9yGtTfo-aHFirz*gT2!Mb9s0e_d7F7hS5o?5z z0DudUAXXs5B{8rPa0QFTARtAqY+6KAE~SbZ0u`>JLd?|AQWy;q3F#Q;`Ba>NF#&_5 zHQUg)#uPI=d$BDanIzYMz%`|sL=ja4Vm81v)n!%El++rG3g`lw1d1%6s9Xx8k*XN_ z7I4r!XV+}Hnr*ovw}^ifJ>rqR72~XDAs)gh8x(`w!>MpZ)Alf+q-=3k8!4ne7*U%72f!)F5n|T+ikP zbT)7Pau@&b6o>5+WA{AAA9e$+6N2$vgzWh7k6?azGkXK#;DklgV6bgX6562d5F&Ej zwqYsSZm-c>mN4isWx#c@z-kbkqUKbM#>NGU2_ ze1GZIi{vAqb%+UWOj=gt<0biFJ5qc5Wx4<8L*Kf$#r^DhVB=KPK(;{e9}p0JgjQ4) zL|IfS5dxG7fl!l@QPG4dz@%D~xJu7U`vY5-AK8;c6SnXJ}|#@KQ>ua#AL z$M+XwTLSC4LrZxn-GO+Gt597FwvFaoDl^y00*s0xyw+M$71i2$%oWgBB893@g{^We zV4+ms_N@g3W=`PC(DYieO06>)X}p!3pmH#|+M42At;Je>@CKtl;4()Dh}I|?Ee5$X zevRk|xv29c*ReEhhiQt%Tg5_wSF^{{G)$=xmxnArH#d*DUQ0bMg=WwApU=OG#?H>xd^7TviPL zoSpT|5fWNb6*WMnh#^eN zc}*oU*pLMlA*%RcIc4jqAar^GM#du6+FX z?%a&yU*xKtaVz`lr}OM?SNYxaY3In0CSy`_ z{c1ViP2W!4=F5FI2RxOBH=j2m89k_gkr+=)&c_y|f~SDI|B~K*^T*)@LIr~;#RWk~ z@#$OnlbiI_x0khdu0oWi=>Py}S;o-Jx~|aK?0B6LZTaQ@@;^O2`{lLG+@)eVS=Q3( znEiI>_J{qn<~1)%)7V)Mr*B|*dHt0s>*3i)Sur$*ZM#r#(DXX^s=itNdHdN%lSA9QkhQsKSwXyzX*RNQ*g8@%-r!mwc&=(Fl>~k7yov02TBLU= zHC=ajww!TZ-K^9FN|$B0@|T!6!*OngquB;ci8`;f;MV7<^m#q$abz0D+;y=)Kmbz# zK>W^|2rDnIh*oHYcB))}p- zLWL5=T1;_Tr+M|C-|U<7LQQs+`^JibGn;MT(aD_DI%cV2brn_uP&R^=$6TEXSd<)8 z1g&$CvpNT&iU?8?8>2|R?e-fFRD^A7Q#yvr(|3`vuB++#LqzYawNusxC0-!dEVg@f zhnKN5uDupnRL!odCB-xMzAla{7bM$w&0Mo<`=-YUn=MF&n#`eG#){xvnG*SWai%qK z_FD2~HxN919N#`Y8o1eR%ACL0f?x`s~HaXVNss3v`Vs#TkaNqsY!_`hA<}i4F@q43}%X_&q^|II<8JUVPmo`E$M)G4@%+C9}&C`4HkDvbf`P03A z`P}bcET`c{&Z+0jO`oQcF&}j+rLpV}H@dE2nfHe>P0FYLtL*>stCzp16XY6a^I znS?wt6hcIU7|22?f+{9h0m&%?Ka`f{<04Pfvvz=L+TfJ8ZWt_xCNOnbXJO6-ok)se zloR^Kt*umgppgj zCJMG)S9GXZENWGGXkP7Ib$2FI?Bw+J5_MC2Xw5O^VgoV>D6=YHdD^X^Ij^>@o4Cx4 zj{Cc3S02&RY7+Z5l=zwM?(XlG>KY3}?46o12Y-|oUp=n8^IND==itrQ8*&C9Nb~21 zZ+{ryLWV0mO-FjUz5WS*qI?zhVWTxP8BAuB4wqS$0+1^r`65y`n^>gX@oAy$S1&%B z9*_U@8+GA(^Lkk6rniYVKDHG^s4eewUw{9t_cUxN)mwZ4Q|m@>Fken{7k~Y$yVoN= zo4^0oABMY@k6jnc6XbR)LdFd+9_#h>*SA`u>1|@nC9Rcxp1-iQETWd1^;4p#Y~2<)%@+&#KH0YGdfWPS zsq^vE_NrZ?XnCqGnDzVhbU*t>U4z5&@6Ag)@nHnE2!INJq^bZ4=6~&bM~DysQEMrn zQcGpA#$v6a0LF!OIBZ(;BeEu7Dd<2iPcs8RENMw1x!Tq)4f2Pxb!(l4`hW z)8pfrHv>SwGo`HK!p+rY{g`uHk`QW5v2ZCwRB8ceiOT)^S@xX)LX^3tRa_GQ5xAC; zOBFC66@V-DTW6iboa?0IWSz$atwB}e3AN@@(Rynf7RS)EMztHd^?np%8;HquUS9ph z*H>|g>r|SqB`)GxE6kV)Y3PS-Xe^Uc5v?(nQY&x-ZvrVZ0}fDU8TuAZ@1K@9uS-?a zIIFZ4FbGhqh?-`wmaM56JLiI}JCocv>UPLQj3Wl4A^?E4HqQ=uoIXBX(sGIE!rkXD=sdF0p;t9|+ZcKH=DWwI zQw`I%-x(CsHa>W7jdjb#1rsl|?Uc^ziBx%)J-v#fxtHEH{?FNBv zF4;ECF86l{MFc?9pRRL8&6jT(*l4(if5K}JfxfyZ<;wwpJXn~YWU9xMr zF5|S!$xt*_()*{G+U@SvOiN`ht5&L)EF;6!e&7t1Q>sWv1c6zQs77mpO)+r|)~W(9 zarVd}mC*ncu2u9$V7Q=E*j&H5Yg$**r67{SGOf|uQUDDat(?F*7f4w}vUjLt#O$6e zPjNARxC#VUzW7E>Fk<@(s$dPFqIF=hN^$MJGi_bbfTLP!6%gaBaV?S{C^K%W=z2mk z9gjSlyjE7#I!(uzkr0TGtjC(#(Cs`}8U-ZfR63gv$4wPqOfQ8gx4xpZJfGixe=@zv z3W?YC3^2Pl&zs_?B4T=+QWW1A%EmYY#%F?9oP0Vh&~%-(UdPQV!~f5xwO;kUslk*> zJeFp^8QOte;{8yoddCn3=UR}3*QM{=eV$8kY*&iILFTa^D_`|ZgcQ*Q5TR1~uP+bZ zdA;dinl4}FkLlwN)6beiBbO8HULTmyT>WIff#3eX?s53}ZM#Y5PwvWJJkB`;TtAg& znPRFP&vhM-waphFT1!Bf*dSr8KxELUw3SW6rDC5>G;~sZT2MK8M5$ImvN2FIn9YE; zlv5A_(Ne?s3A?^Ha8hg=@;4q!>h`p^4V}EVg^5HAqUHWYU&^aB|9TmY^?&@ObAwf3 zBtTRaKm{PQfQSN!DxxZ)hzbY@Qdq^JW+fp2wLbJqC9zU-K}puu=(Z+a1Pr2~TI>8U zmQuW&=HTy4w(ZfudP>1_`|4#|OgA%-6Ba_}4X?4*5?$*}VlLvk24r1K zYr~=`YeIuiD=VTP)}m6XBYXA5^R`jR(-UnDMpIR9n>5B?l`{({sH&(~(*$m0N+z_s zT_4(haB%5w+H!LjxVnesIBF-06c7ZYV9IhY{iYqZJtp?sMx;nC48quX%qTwRB1pBi z)u3LMdir!S43!HQupCoYRRKYSkW?5@@(3FTg^fkq%qr+_?D8Q{C1|~onovq7kKuwzy8C2dH48-Yu%BRHAOY^cO;vbW8wGfX74Ecr*r%+Cx)=hzr3{=MeTAi z_TAxdWseW{Tc>7Rc6dyhswm-8-?Xb&p&Y6J6B2?TSl^0JMPn?aY`k_pX(9w+KouaF z)LAK*BlaHKl8|d5G%(JWeWS*-81u4f<;ocb+uT@zMoA|&vPz9q8y7Fl_4UVD<>}XN zzO)WjuxgAdsGy1hD%etm6_AK4!;cgc5L66+B9V#$0U}m4E;IomASc$2i@j=TEu&FJ z-$+b3tCn0CI3*8TKlGtaX-($Pg|2|9+L(UhcDEfgu#hkz3mQW;mcr{&)y3#NiZGi2 zMrPES7p;PI1w>&%l|m#xVl>WoZ7{i{>A3dZNm{kDHRXaRMSg@x2(h3NGKLbR>$W?w z(=y+8o4LC^bk3d;Oa12Ud+waC;Ef&&gRu~9w!0U@G@WhI;PS!^qAFQq9cxpUQYwQb ziz!QmWQC*JpkPQ;jj`TysY=K|V5}PIv=rT4VNyb7PiI)B8IaZ9o1d{AAmCqpe>3)z4Rn@20n~-~Qw) zcfKE!7AP0Bw4Ph3H5dwJPT1gD(lcXLL<00R3K|p@1u0DQhSp+LsNoW&#`1W33W`ElL ztY5Bnff>PuVo(?W0RRC(t%8aYumxd6LIF@!QLu(9AQ?d<08kM$1l1NP%WU_)Ln+ho zqMgUQ80*tKGifcg|I7&(&$Yy|6xaAeFXcQrsKf5=+Nd%SXid?0@_-;Q7KY1$L1Up7 zn7|mDQ$;NE*s3Lf!UQUSBBCN-NEGbuDwM)?Ja?Qcs>VtcMXAyGHbBNq zt?ezPry?M$?yrZfWHU{SL~7e4V{Yy?)02g!clK(y+VA(rfBYb>F?r2m#TZ9~>Zn#u zg%FSct+B+IFV6Trkja9U1%g3=OtuhkHDrSnl+e+z?F*~5s`Ka?_k1u9pYUqegu3MH z2~1n3rG)-90EhvQ{jZ;s7s zZE5lG=iT)F=?nbrvx&LEXwwUxpv=@owARemdj;sWy|?2$9Z&AUG0cMOjLEgeOs%<^ zb46!0P=H0)PBxmFsS#HV{V*kfnq(LtmC&P$&NnD|h;EscS;V=X^>p@3#whtBP%?zG zc&qBGE92|<@^ZY)ch^G{KmEGyUk-ZlMrLAQ28d|pVsH$Maxn}bRUMidFpvQNGDHOe z14BYUl{&A6RO^&)F;8M<8Hr?e<8aOGa=f&p`1WVvG}S80RPs5jI!jBM&NpME>sME} z%(b1TJY`{ah;_LXXOSQCw5$^DCO=Rbev-|X`F`1#ATQrNEDRO70< z-hg%E%eavXd8ijNilbAr=txRpEOS9Z1JZzs$cRFytVP9KGe2BW%i$!J#MFY*)ZBVE za1GJ7pqUKXIPki;BIj3cuUqx8f#urAEZkH zeiNDHw1hrbtt7R@*LPR;AJZ_t+HTzQ{c=N}lgF<3zQI~c1te&a=b2ql0e2PCL87EC zq!zDE%b8YV?+&!pc{%>tx35gX7Egyy`R(;^Lj{F8TAg!vE9JC$jops!fBWg(b{lth zam&XK=ia_NZSLIXX?xR7I`kH<{nOWfpa0h%)+JBY?Ki`_M7{Tp8p~W}>vnDCec#no zo+xj^&>x#))N14~P!niK1Xv=pCG=qCB$ej8nSlA=QYsEHgn0=YXh}V9yF9CN?4`xQ z`vP$b&!2ry#MTyU8EZ2PY)XOBOyw}%zPbFly!l0!Z(c6{=hNNae6txBASP7+L;y2z zW-5drfP`R-4NZZVNEDe#qXL=&p+OTPw{qqNX`xEWO`8)rwu+R;p+K3>P4V)198agS zjj{-%8wO5?CM$RQs>|sU2Cnn-)QTdgnl{5GAOy^2E=clqa$A}|KWk(H)*m%d!ykbe zG(rQv?RePkR=P-QML<%?Rmp0eM3?|A2SzX;MAGJH)eS8ni5rHUKG(LoeW}0w{tMp7 zv3xmxpW7IL>Xcpo^|)VAn=gNc{=E6`%hPvX&Z?fVr4}|`^0WZ+mL^Ea`hj$cq3g(M zWzi7DTyxzfYCRkHX5emurqWclzUG=EG@+iX4LeQ8I?jx2^D@M%C0ASKG`uUZ%dLVD zBGe-wG+lrF=BaYr>+>Iv5PZJC;EMuzU&X8N;M-<1h22-3+&_Ja^DdnJ1Yezx`|I$) z#xbx+rR=wEiy!*cdCJ1=RJQ9LV6mGk?wx!*++&9;Wsv;*VesGozP|WpKYh9LMG1Q^ zWds4@VV>j9^#t?sbZYxo>)bNE4TnRk2Z`T=U%!LRPj0{9_3CF||McbW{0BA78Vnt3#ErT}U{YDz?XYbH&|FL}u# zsw#_|Dted$47b)Ub$1;1MN~x;$i#@zMAe*M-}PZ!2Q9f(0G5`F0kY)On$;@ookI%Npk|NV z&^w(bc)2Ohve_>m?r*<(t-ra9uXH$lIWJQSn_XT`&W-DwM+fTqNo06xNce5;MD~%Ya-D%lr4Ix39!T{0I?d$LrWFT1_~TYMJ=q z%i&91$YQVw46PLLW~!1ZNCb1cn>TMt98c$@bun)a7?4n1 zD2!_0BXZc>y}HK3p>Do@yIp}h5PbW~SR0!NA}ET8060k&FoP+^j7VP1R$$WINSKEjkhH#uwpK20vFITw2TBdK`wp+;KN{Bh5=&)bdn- zTI<*qMO4U{u~=XR24^bh;(j|n&iz%KvRY9wAa>b-nX0+P;{NJ-s6%HZ37Y{SIs%a< zRgKjQjQY-mD^?_nH=DZTOBz?>auIldsrI+)$B+2ax28u2>11oX$n3AjT~s|Ers3Mc z2Kfs9%VS-Z!USd&9H62LCLA#@DS?yZh)rc~(E*sLM5oL^5lU5zpiL+^pk{K`ZWu>7 zON^llsU$P`%;IU%djGrp5^M0(Ei<^yU5s6* zq7Dl{)KrrWyZw4!Kc=g>>Z-c!1;D+m$r&5iacVIsXr6Cx{ zn3e=?<*Q$XDXVi(fs*ZCe|@u>OVV_TMXM1Tb*|M!m9KYK>uO)Eo=)eJVy)OaA_BDp z1^QZ{y9&7O-KmtP8HU5-?d_}8PhZi?>ng@74VXYx)D+RF8Ui3Pr~xu5pa)e&ASP4m zMGPo_krB33>oO(KA}T^QU(#U$^iZkhqC>aBEQ2Ms}{$MrajXas#P0>CJhRQbL1(sM0W^N{>AVx;3@KX}4Ohn!w;) z#HF~d*T?2eo=$)9=1upkVzoAi9l#h*OAVk&9M9UV)_vc<`S{_IWLacTdkR;h2$PYk zNj*ns>Rt^)XUAN>+}2Xvt2P`qE0OJf?U4F$V8jg@IBCNuJQ8-n@gdzCtxHfYQ0+>EVk}q)Q%#o@fbics>1azq#sTC(m3xtZ(;^`A}QePxA1E*pR}m1gA|5)q8E| zLorhYa>PSCpIc~}DHvVvI%l4*$4|#Ewuz^ynGenioPb|^eH|{JyG?v?`0!w+WL261 zh@nD?Bdu<4c0)LS_|s#G&D+?1*nNHD92%2Xsp=S-)kch^Is-5;1w&HuYNE(!3P{AL zi0D`aiM^I)WiF*wX*Ct7t+Z)wrBv+6R4GQMd0Cl3d3ea^*;=de+B+YNwHTIMl$YAf z{05UpQ&20ds3RstC+tR8l=(7!)zk6uVtwc@OLzEq+jTK)uc3W^#?jYO-Ks0cdK3?Rr{|}s z-}&j(w%x_4-DD(IRwZ{ zBELOfx|KWsx%IDK_C$xL&kJwaG$%G6hvg5e7gv1kXjuj#$USL07SB&4LV;_1NO}j)@;}1d~W%2sN?45XRjO!sdF3o0k*lUQ|o%ROBv8{q?-DE zl`mRnmxV}6b_l3I*j?SQdbjx|A0FqBp5smYGVSzP&2k?{&8a#^C1+J;XyO164FP~n z(OXkMA^;#_0%RlvAwZ(mmNaK0&!Jq(xlYBqdB(n-=Y9m)b>O{qz&IVNjy*6?7_N3u z#CM)xG*zsH2%R*9GMG}!S*F~Sn9wWaKJ2Z8P(M9P+pD3T&gwm=i2_nZ3@X$kuJ5j< z%swxdWJJ~&i=gz?N~(q)1iUZcy>AgT*Wx>zE(v8^&QHt+i=_-N<@Le4(%Y=Wkbc+2T&l`SZI|>t5OUq%K-huo_~a z*nao@Pp&ts%RJAf_4pqSS1AwD(1B3^skrIl`jG{G`{A&;rr|69{qL?et2u;NVQ?s! z0G*rZ?)(7zfAgEqjZ~|mdd?4*Kr6P(;#Z+Ij+~~-apUR}TK~tN{>pSl*4^Q@b>`H&NJgWf#U=w!Iy7j9~xa3swf9~^~QX5~~#QFTW zTZ7xl*Vv&5Kr6XMv@)p+&dh*_$w(2|3p%>L z7-y;T;cT0|ozKVWP>~eTkepNtLwCJ`)qaJFRs}qvHECAKSxd8osG`8mGqr)RIcRO7 zD3?jlngpk%8~|{dmu`46Y_EZR`-ebEVYbO6fwd`zjy* zkNe&uzTEwxnk~W!*CVNM;J$Nwy1&@?{OKP~=|nA7j?gl=IQC6e@shI{i!>mh-Z}JgFH}yuLnO?^Ee^v4LCpBZ&BZ z@Q`^Zkx%Om*W%_$fAaI6Z!V8tet*WVm&-Z#yW8zJBr8M>071}51On6&TXQ5tv6iA? z)A9Na5{*8&fSv+fHs8AKrv3c~V^ZVTb@q(q4Et3moyaDsFHInh&D>PR-A$L~1(x%% z!%}QmjcZ#DP3-z==dn&*@CH@P2P-)ls*@&4fQSH$V2BK0NJ#i2LR2FcY|8Ul)q)G9 z=2XNFV>eP?wg1*XpO`+)6P*t8DRmFtz5eIlw$pm>9i>`{*t3bCYAfKBlvz-+EJ@0| zh$9yRh5@M{w)=+%j^d&}U!c(nTWUZ=2I^U|#m&pWOciP^tr%KsDWg@dxv7Eyl42Mm zl9IKiRO%G?XteSsaUg9K)d0b*_P6Q%(=()eng?&W+;$>R$_mJq8hYxwB;5H+Cltu6 zX-!f+gJ(@DjXGqhrrMBDn&+X40RgaQ+PruaNgz?+0y;;DW7{gJx^og{oNS*g#s20Tq_36 z&0@&3`^)cD?pRX05!6 z)A58O3WJ~{!%n)@>GOOw#GQb{XayC(imh@vFTIzGG1S=AORB@Jf|K6!{So7^yW=+O zoTUY8GOG3X-uy#&wYoiRckQrw(*|s}S7E){uDFzy?1!b_4G1B~(hms`K@5^3FO_^I zXIc@8ajfPrcfC)QY#o@00`rSq=&}BC_oVZskedllS#7)Td0Db~4k1esLK5>=Z(eQ7 z@pI|AAvw17UJsvIA71;GyEm`a3FmRo)XXtfDYRlH{&)T8kO;wyNW}~h0m&f(AcB#J z0yLRVNzh}voDa#MW{w^~Ij-D1<@v+Y^!)KymxQJC|KeY*&&%d&+qJpD5Ib+BimK!+ zTA+zERXI#c6+<6_XCfb(2os#|7j&9{mRdxcsCgy?ZLKNvH#fVDW9%p`P3=dmNdeF3 zEVWwAd$MXSKtrccCAFo+)haBxTL-Jw8uio(b}CnQ`0kxVeV3-Rdo}u?s#KduANtq@ z$THsEvN$vjmMSy3mL{$90)&hZJ4O&=%*X`9PO0nJfY(Iv`sLkP06n943RDkA0lS!f z_rBk4od*rn%5*BCytFS1_dB2FIvvlteQ`P6e|c^pc&vg1MvQ&U*ew}qo~*AAKg4fd z#D#)K3MA%&}6ISJ&(4D0l^DP0IZ6hrj!W)(tFe$rk$| zx;9lta+qqyv9p?+Hf_kQ>#o2qQeD{e;1ofTF?GG6U( zS5(_n9To8|PY;h@j(&(bmwNj1Q<}mVOI@UIY$8(v-oL$#@f`YCY`cy7aH8r35Rm|o z47!nP4M+sYt|v6bIK&mJ`mpwW2;O;W-KJZ&dA!=Z+z{0g$eF5z9y%`$o~J@?46U%` zMTWg!j?W8$`eM{|vF}$@%xRi$UR-TsXdXZ-1eQgS9Z7LWgr;Tyh(^u~O%w@KFt8~A zw1B1N!>Q)gF6f-HFdaYNUFR=PHq!C%bQ}%Q=4mk=!u}HRI30z8l+rjxOxm)D0@T`C zoz!uyH5Vdf?tD$cA#y8?`}5%-D^}WQAuwrTE?6@$^f6&~`+5M{C^>a~Nv+l*+R$d= zoTaI01C!Q*nO~JUn~QqAT958>`hFSoTuRSC@eBm$L+_iVQTUnfdgifOTWG`-N@&oz01 zYQ0r;J~=AvRy3p3iGs&aOQz<6D;HQJdj{uOm6+K{SZjVk`xncnKmTwYW(tGMz4^@r z*4Y;TLj)y4xqp_5ofXT|nqBX^8%}?F3Tqaj$L+3{)F*_lf;rHth~(I@BW46ZKrjFV z1QQ^SFInqp7OZs2cID1EHX8_cHez;o2%`|=VXYTfa_u04{f`A4mUAcs)~K+ zC<#YgmSm{8Gyww>X{8!@D8>lty@O_EX-?)hEjO^*D2(+CtY#|UeYalkulhVm@7RE3 zn#5$O$O@JbfQalzE`)v)gL9W<7^3iQvs-o3yXEt<>kX{gf(`A`BFuLGVNwizzqY4~ z>qG2~8WW0YiE&ubbSYsZu$lz{QWmBv5F8??su`eT#@?YBBE^MB;oR38_G@|M!GZX& zCCuK!`%{q@x1}9FUGd&yHytgdK-lUzZ+`XP{mb*Sr(P!>93R>xp=Zb)8g;%@#_Ft` zRB-FgwA38;+n}xFPPLL16m=`Gcz5B44?ob|DqWyUAA47ao4c`KCFfe=JTGa=Z7Cq4 zopVL1)}i;g)`|v%U5ueAi1M)WhU}VhgABK?$9ZYM28_mWQ5tWl!blwX^xY)3b_+-C zy&GQ$&I?(V05FAc_jUhV+JfHtetDd6m*D2xo8x2=K0JK-%MgFE1>C*qzFgdY{Xczm zeC!D!c`|Os-3)-9$d?8|l?jNPBQ!wbj)8{|7!e&9A$b*6827khJzR!vK6ahoIx!sG z<*?MMs?EHmNtt|+=1sMVb^>cy9S=$3_x>l-At;=>Xo`>nnpX18#SlC*0|J03fPn#+ zfsqMWQ*O(0DZW32u2ul?8pn9GKHQ)4y@WAr@2+~M^UQM#o6xLT^o7V; zEoSJowsc;|IV8zViPc;Pxq6R2`c||SIZhfA00=lQDh)b6`G}QczrDTM(Oi3vR!Y-! zUX%&cOtcEBn0n7hp2sebZ_Qu16;H}?RP4sh<6-O@1Zl+~*AlO<&hNh1DkWG2YN@jC zR7I(CJ&K~g?tH((d^o1Cl&WmiL`)1IG9sFplLq8S9RV_j2t#mZfnEfL0g783@Os>7 z@t22>=dd#^+poUNx^gK=Sm&sOdOk1s(_h|n?F1q`YHDS%?M}{9V=@FJFsWzgB87!x zwt5+Xr}y#AiV1xw1ZqD5lavY_pYC3V^XCgHYMjs8$kd(u;4w{TlNxT`R(V?HDQ6db ztH(6IAYjG+q-!H}aF0FvPl>a63>9*?t&3=I9IS3S!R z_|haTbjmLf?1M-RAUu-~a62h2MYbS6Eh|E`*i9ArrX13!a$J3=EM> z&43JygrFkhG@Sswot}pjT*w;%Q!UBds2qXdk zYOO|Jz*`e=+@^5Qz$lMGjTEb8xeE6W6eYtk)h_xVag)tdk@XbP%1lZ90K>l;MP~GQBqk7Fjq;J znY##Ez(Ipy`1mSnE) zDNnYJsC9whd45+8FTUFOhY!znZUkiLJhtYD5JW(f7=V07Z8lY6=8p5Cz8$u=ce~Z- zm#M{IIW4VdUrxD(#xK{_)>fhGo)2}=0+&>Vm)~5~sr0e+aSrS4Wt{VLx>OPbX4gX^ zF0~Y+=$X+6=%6F#*jn;VP%5D)_1KLc9|oJu-7W3VY?hlhzj(bybx@>arGP~MuzNEI zJbP?~95A#cm@#^1lQs;&vCVTFJhbK_Cz`upBnRn%5D^>-3%b?qb85VsKi!|et=%D) zI*-w(c?zXgajQMsr1KnmNC({xXVqo!_AXC%=r*e_fB0}p;%{Hge@e%HpyBqml+`X= z@PtI=3H^O+TWEA7ySJGF?X+j_S4;;KAisY4S%#RIR)(e{_RgzbH$DViwPKSvN&(K z)MjR_)TJtr$5tD8Q~)-G1~CGd)zE`7azPleD_CTzmRwNu#673U%$#v4`y{-4clqH zg#9Y$RH-#+3dCK^IdlH>Wt>Ds5fK2bHVy>dIc-|iJ3?S=nM@m^_igE_(y_?hF9r{? z%nOXnH3^g~*psyLL-yphb6x7xj8lfW&JV-ihnvpX5)B^Ww+@bzm&%7+-hLJCftnca^Cs-Wh}#+?c<>d^>-EU^)~p~c3USMnzzt% zE6Q4>nN;c`1LA@Wh)pWF+JwMRw5cEyBN7va$Vw1_QommJeI4^O^uA&kV{V8ps(@>a z&8V99R@)@b1!M>q+~Vi&zP$ab7cR*C{qvy<;~td;E`sC?0L%1V>Cn7Ti2rWSwW6dViG1_xC3Ua1?mx988x zJa|2wd5grijIwR53%A4JY)>#<{O~3`nC^cHA8uax_3qm5C@qjTyISJ4F}l#CkmjZs zLiF0Sd7|L0R)vxp7_xUDM$R#rkr$#!kTd%A;(eR`FDvx6xY8 zkiz^db}oJcJk>-8DLsa&Q-2f{fI&4>Rg3t<+1Q^eLv4&lugA9nS+^tF>ev2 z89HSLQ)%2d^ptVdnFl&shl0+k5u+9|9Jrlexc=4C8e9nUddj zL)Uc)dKA}<>u%2H`Egl~?aQ%D%cVQDJZ|ouKgjFhhCckE7IPzPhWP>nEibtOBa`#3 zv?j*hs}WQ2RRu#}rOKWOM3Di(c_;;#WwNWSrQ>tG8p|2r`RU_%7@Zqq2CdB+F_Lrq z7tdcFFRl;9le^0Bum9~|uksz8N=3)S?R54vItb>Zi7Fy1C^&8kW(sWPomYT}*1WT3 zCMPf|bDGYJFSzR^(RfvN;dJ;O2&oQ)*=pnUEPZ{xgniU#DLT7cpefQ=n-}s8%0e)LluDOV1W@Yv%8xiPnS(I>? z#SOt5aaX;UMyApl7Gt$c#=$YV=(`QKqNn3u_0JEz9Tr7hs*^3Z=6gARJPu{$Iyjfv zmCQj>1;g|_e*HIPb&JnhfaLkmmh@zfgXRiOdGOl%?1D?NA6zZqGV|ylAWa82Y`T#K zPb!NUhwJrE>TgcRiNipeP4jhr96h?hm5OYOS%32|pBE}hfpbytTu+mCo|#a13`i2yP<8rd>$5*X*J67(2K!*|7F7KjyaeE$+=Zy z0BPW~HY9^)#tewH5`Y>whuj*3RBX_c(HiH+U+;$OFP|T6bnMnXN)fEJ5&=*b%MgZ# z5RG<-*R?^%m)abn#ctut2DOF|4 zrA#DEsx0nya3r}du4Gaz8E*dhHEr^uQyThO!D>}>T1G}flO}3a0nugE)^#ma2z_8U zlkaxx;7+IF-Q{pku@7QAZk?)M;R5~Ys&AJpJg&XXxm6J)sMVBf!OBb^jl4sxjhKa* zz@!k8bBu@pM5r|oh*Yy|E`+{|;1TuV&#PYz3KugUt%z9H72EKs>7{V~xZADZQUWVD z1ng1V;rTEB<=eeaWDQjmblIJ-)L|^e$Hp-jdKVC!W?71=nnN&vJdcU@J0V05=&Te! ztd#fv&%^g&vgqH;n1hmVW<09p=wZU*@ZQ=h2C4CW;~W;7m*! z01^NZ6OwZTjDX}r;H*-+BGy7vy&dIfOMz~ETmmJDZ?41C%F>!p3HhazEi`RG@o}?5k*_o;-AOM1?7`X-rrpRDwby{j`-19s?EcI|^ypeXaA^2+}s5e=NBV;325G7eH`><-jXr@n)*+ zB15#9acb7@5ix)pHFWEq_HMR~1*~ofq0Sc!;LOcU+vCHZ{y3Q{Ay{)jbO5(t6`&DO zYhJn5TtV0X6laXn82t7BMlW`iThCR&Eg2|~*IZ;JI^q|9{q5^>$9CU?AWYszr@DYh zDtNsqK5FK`$ti1vc3F0u{pPygtv9=2e)7E2hkK=G{cd}gaUPHBo~P--Gr9x@21Fns zmK4#{OIA?>Rg{3{fsp`_V+>SH&D4A%&N($=d;6CA6LqIqu0Hw2RXrh$*=F`Qk*3zca zQFXekrKpGP(`VORYdt2}__0}C%7dA97-*^2hItS#rObwobsEo06Ez1)+c@Rf>X=n) zNXzWY9Gf{353r{f8_?ZTWA&mNkjYR&i~uNeb#r_yrNY33Bg zt$N*rb?4RGXx)%(xPJNM#}C|2w8^%NkyBy<6tb4>_~YH341ai%(}33fC#RnInOWR_ngiOL+$7cI z-00b>^}|w5mvvHGb>enD^R>|W>L<_p{Ns_YSN(c8Ov?hcF|Iapw;CLhyjqv4N(wGO|WY0#OxpMsDl|OFHfF*^4aE1NZra1@;oUs zVS;7eKDnHa^O(N)^=E5cAeGY?<6bPy#A)9(n;?j)nxng``M&^1BzFgMt@Ai}uDMb* zs`KTXx-RkVr$687`Ru$Oe7b%A?PDDum(&mBv13@6rbW!IUgR+DBJ{rqmNbAdl@g6i53iAtG2Uu?nJRzYpSIbVnZJ`S`VeGd19_nZXYXwKf#HG0+068auQgd^K z&KUtCTTH&FgrK0%9E?a3wRu9V$}t8d0O};=16_vRiaQRg)#KfFe*NpexjbSG{nho# z+*(ZbaISz2+VbMr_B7+LnkL%e!^wd1c@Ct;+E5rm5RSoA$(yUA*H&lPw19*hDL-^i zIw1o9cT-r<&gZI)98|N!u1f+95v z_{e&@yxi1N&Rq*v9p&a9vDD@mtK;XN{bKy5`V6ochydDByC9cx?!_;U_fy|3m$2Sg z>hLf_;Qg!p&!1mz=W#yV_cvGD-EzrqU%&YI^_^VpC(vnWyTIzTb}@=oa6}>i0tFI4 z1LtbshzN!b2(E@;fP`9`0d`a$zI*M@Yi<}yA6CQWW_QcbASLKl)rpCS%RJt+wv5N{ z;`3GJz}&|+&t30xCdTOXJX;b#1aJca0CIH)1ORVP)Y@{n__^i+%jtZ7H_6SP|7=}h zzrk|BP3UI-@cNq{XKM3V)Vv?MReA(O0MI%u>ey6ePgY!pzQ@*Fut|#0lrPM=a$Qz8 zPxi~>{lUpVpc#dJ$$0(p^Xpb2>CNRdE{4!I&yMc1Dp*~LA&amek~K2wDtXo6*)_E# z6SS5&Yp?!`$R9EpgNV@O&d z1Oz}ZBea5vIRy4%K6#uypKgVt6h zr=S0o%_vf)CUJe$a_kP57MGT!pjQxR#-c1Kp!sr|QHqo1N!I4vG3R3l5s6AcFX#O2 zckf^rPvm0|tc5*p5ZnPjqArgH0)XHWyg7oqxgept>$wamvX{Yg0U$zmHPwrLKGgYP z?Ax&Dp&o}<3JB)jYEdFXDZ^j>clN*EekyZG$z%$+Sp{p~mX7WpAD7TYjO$Hb@?7HT za(Mde&t9&6_-7M|mt&MJuB*Qs|Kax^zS?ZzJz;o%dwFrwjVJPcpzLe}#Ei(Oibw{4 z$mj+_3J8Gc@DVu@xH&fQX@2*Q|1g9s!*X&Ny5+|o!?owyNRdJWKo&&8?i#skXA3s^&z=C6y92BQ+yVR}a3DiRL;wW4%r$VHFMi0EW0|KiO~Y6J*%#M1&h-!3%R!=@`uD8UX={>ggBHajFHpF4J5TsS|CE6|$+CsX3AeGp`iRIc`?>OM`yZQFQLb z4KQ?KwIL%;#~j+yZ4gk4`vSvm4eea!T-vgj2&*=A0zjl%Awny3!*!hJ+UoF8C@NMf zFceh>!z7F~19F!^*4uT@3SB!NDqrG}2aTX-zv5)DYCv5gf=QhzJwr%xT?s%=1#srT|EQ40X(N z@N@rk6XN=Mi>J_uTP{jiC-7)C?*7ej`R%;aDYV!_=55d7&uEW_yV7^3hqfyiVEJ&K zG9dz|d%Rqx`w#yIz4*=b;s5>i`~B|KCN-=NxmeQUX%f)YjzvffSjdDxs1kq! z5}7w(MkgmEKm-Q|1QJAIX4t)Y`%RnX_07V8^K@RN7lo^mgAutITCd2Fk$W24nx_OP zSOErYOmWUR4BN;1<3Vau10ZT>NZ=kotLm~$=dxbAwbL0vOCt`~pMCw3YZjRMLAcKI z`S$Sm@c2+wo9zTcp9Z>g#Y}5CUnb<%a*<-iyRNgjfsvJ*$Md)t0a+unglKKK#1$7s zYEAh1lfCkjXGxbTU^-sTxi*Qp7c;b~UKb@qmlTm=6iCHVC^K-k4ol{Q<`K;}4SH@A zjOwKf3O2dLlrdGUMn2iJ)C}OVNjyyj8ZZJPHfJqUc+tn&Dpw}7)*K2fOGGd3V9K2O zp7XT0QCwZ`Q(a&jz3YXD+Zh&@lQ&&zB^=7J>9~?P1uKKnXiYDdnNP>`&E{@=3dB)$ zfqM5Qq|4>DI1R0ais)8LBnJy@)fU3RPD`v8PjenuFRu+&&o<|lC4%>oJK^(xR4%2} zxGGJH$NAh}v8$xPV&SeF$R_I&vVejEATh+q6c`aXkQc*<*3eZ2ksVWiiqC%X?w>#CV4GKQX+X`-3dGnXAzJK`ca`grOczhhwAXJRmwYVX2VlxSbP3iP zQ&V6_Z4<6O`+Pl3k^;xa<7x6Kn>N)dH6kIp)ulKyM4!E6`-75o1t|56h&;32?>P*lKSl61~#+ys(A@H^=yI2RA@s~ z518gi9eWn3^LV~?B*qQB!wC zZb(Mr07T@@M2!E!-3{D)I2)BlH~nYjUA}qle|-Ii_n&?7x&6Sw$fJQ82_Omhrs%dsmN<(a1yOcUufV(a@CV=9jhsa)vwdz4?+w3kne0~ML!<(D1+$~Gx zsnS>4bG``%pExyuBQw-Aiphmh}zG)e6V&=hr&8tsYA* zyO3+wZ)yoQi4Wi9^zt`f?#hRy|N7JUgV=82^8F9p{p04E=NaBi-To%7U}qQWw!KT# z5;`>pH$d#rT&TGNARzKbhzRE3u1#A?2>o>SVcV5qU0yu>^nKdShqMv2h{^zH&H;j$ zqDUncGXh6pa#IAa-eL%?Sob78m7z}oNQjVuNT?7m9}0kV?P$llQ>%Z}r+HrOzWCYm zr0$4>31Pf_KZOsc@#)`u+5YMG_1W&}RRXJ}O*W3L6bLEVt|2WZWowvISzC>R#_gJy8{Oz0y8jm=hy{s2&CW`*w|UTRU>!j zvT#T5}(2?znZzLdqhux-OsMonDY+}X_;F(fPt2^X*0 zr#>JOf|&!lS0t3a<7~A$P;b(&dYWe_rFjD)Zxi*Qg9_YVnOEnlCx4h`-)x^;U>+?S z_C&DYGXLt||JT0&lTfBf?q9#Y#p`F!PJcL`V$6gb(Lo~S8CH>-foXBU&_IJbwB>B_ z*mc)p(9!H>5QZ0D{a}|%wi?(7z1bzc$r4Bzq+d^<>R<%g)YQlf5Y3z;G*vKffFV#s zD5~gyk?Vy&`^~5HLr&U|+oWAWsF|aj#R$1u2el!@!|#9lrzaigUDSB%PjBq?KRm__ z=F@2+FbL3Ht#zy@9EuHz$3NM-vj6PG=|||LetUT(%Qwqr{$t~3o5P3JzdP4o-Bijy z=Ka-GD&7k>Ge;2+R3s-g14krg5kx=-aCJ9yYnDQPMofX`3#X^MLKoRmiS8zd1nMG& z4(P3wNP(G!DX=O8Agir~h%wj2 zEXlh*rT+E(x8qRt)nEV3m;TFd-y-fdJddTpR8Dh@0lKtI=aIxTN-6*)=UknmH1w&s zIsgK;YStvcj6tIO^x0MBu7_R9ykIV~9zSe}97x#Q)e*RWq@K;7liGl~S|m2Cncdl2 ziE|(8`E8SHYMU=V*)A6@w0%0!YDke=>ual~b+hmEGR;%28K1|6%o;w-@e+ zdV<*$AI}!wAJ_lwfB3UmCMOv@K$L6T^^?+4$^NNdurB)oF!54)@qCVa+q|YeEj9*RQLVJk)h7n z^C!=)uIeM5Nw{5D^lp)&;4ODItNpX^@Gw9Ba(I7)ekiB4L>fMOd37r1$KmGH*J=Le zcjNMW^L#yjH$2(jYywoI0ANJSPN>GHXb4O~j06aT;ArZo$Y2m6RF8qE7_KX%UUEii z=R)aZ`x8`QRC?RpATv<%KwJKerb~zOi0RVS5G$c0%Z*L900+QoKsX~E=IlC>{0=R z2rkRQ7e@Ky3fgu+IK96dC+dfNP;=}y(RS9Gx)*YN@uKJU_7S zIU`DHsCPfS&%-KDGqIqX5qjypTyVo;zAQ?NP1UrPS)I%c+)bMzQbUrM0;rlJixhKU zMy|hqc+&Ul2iaET;nsHJka{o0QOvCnr8VDws4xHBtG91{c-+1MFH;$N|CHCAefrtc zKa56A^l@Bm1l?LWAFj%Ay^pcKeE+@tWK$3M)r)7#eDg^nYVYpKtIzsN_}RPv=XWo= z-FlY0H~UXELyCbA1knKiKLSERAZ8*01Oz}tpwJK?FNPgpX_XYXcVdSYyQ)f#;En`N zNPqw+5(6T$8VWG82$EL|0hK~AlbUNJL^Lo&1lJ4q`-e-RrM2VKCZEs4i<_7G9zBX8 zBQ%WI|HX@6Klr!bji(Fc8P-&NDoZZs%elX{l(aF{Rvcr942D{Ys*T1SY~}1yvo5 zkV2H*^^h=IM)1M}IWG-3aa1tU+8j{?J*H6ktFM0cVHI0m6UPdDw4u+ecK9+p58v4$gnF)(4%kj5_I zP|s6_`lkzQUtIm{7T)!rzr6p$@29VhZ@wEh;rzRLb$vZdKhCGSgKdP)-=|@_TWyk< z)*8{2&;UOILPkRP|2a4!nIljHGBZI#0z_r<;>Zv)I1mCj5)iwA1SUeTkF+EqsANLI zMg)|^R7G0@1_v|%q>siC&&P|_$Kz>KHBY;r{*-BFR!wC{3$d8y)lItD{N$VCetWt= zC>dIIwE6L@FP;U@mnG1o&47i_v(58ZTWd=(t;JkH#H|4_4Qill-Eh6?hWP$*M2XPy z@$GSOM8<%%G>P0yovE3Ju1^$F(MsZ+LWdnwnQKf#Pl~J6lU?a90md>BCwP1~$<=!C zwam5EI>iE^@2R}khYYw{(Po@%eFN_%Kp;vzsH%1Qr!_ZqGe#D6b44{Gf=V2^%_d2c z!DnqY1Zs2ku49ngnu9>ITG!OC69s&_ZGZoN`AY;&r;2g3yD)u&p?g{&f>*g)eI06DI&Cnl%7OE522DOb(T`0By z+R_{pOk1M>trhRb`*;5Q%c|eJU-jMXxAV&@4gdj4ErvwK8!KvECr%&<&Sk=)`=9>$ z=U2Qcn#%&+!y9||&F$vp)%d&PuRhb|#s00-(aZI#dYs4eVfEr^Qf-8y>IC43@R1|@ z3r7dAR+ZH`fO=?7!M#ZXWNoZuIoUO#fr00JO_I}$nc-75C04#}~H)6{wqFAc+Lh{YT* zH!~AK42k2eT@L?r_{a8Ff3efFN*xAZ8Pb#QHe+9I04Dt0jR-&qd=($NLDI~SBjv>ZR}Ri_kkLC1I-8uquf+VLsbW|IJl?GmmE<%Ik-S`)_`0 zy#M?YzPlaYe1@kZn3$bQix)dN`0+tZPNGhK=f_ozIKA zwc0EIJEe|SX;7@CqI%Es{^eFDY1DV!KD6n>H>Z+_TIFDkkQrT7f!u())h3rpaiS>F z$Aq=ialw6}T)Yo3XP@TOae=VR$I}DfY`3XLr?7|Vbda<@KMVsE+%CA@Tn(r3`OVeg z`)`Nnp#w4^g^q0;rx_#e8hAr=K!}Q!%qawDRe+(4EfDxpY1@gE*%@j%Yi?_zn2=p- zS>}Fx`EPefkDu-uXx8q^cN2G*@9v-c)z7!J^OL1MMbsC2ZJ6N0_wSAckktX8A!75v za*73298~}jf;c(Whw$VOgIMY1(h;gA2=X*9D_;N{#obx*0p)&KT|qr*=zQs&D*{5n z0M)7lBxvT*s-g&*P=g+(7K}|un{Vr!QQH!HIV!FR^T?d$Igq(DAZ9GaeawGcB604| z`~7SmexIJz^5GAEve?FbXhm2ww$dcD_hr?r`{LzJAMOup-aXx%VFP@3zq>{n&*5fz zdl@#5k4qZ z?g32znaCUhSTkV)b0l|UbjPJu5aO7qRb6rqAtJU?#ao%&9W-H^D~D`G{%`{P(_vb+ zzx?T^d%myxzV^V8qZdH3>fz>+IzdU0pV+$-*7hham4!}s$hj+~= z1V$8RvasJCj_0=CHrqgJ1m)BrC?UmuvkjckTafAzfqf3^K0z+cRomj~0Gwi4b=<*t zp;M-tt=(_VVMjH<<+zUL;l-HBuZQ3849Q<<^~d*Rf$e@}{^aKBw^c7^7I)BwZAHt} zcR@qo%Y&_Xu3hgLsbyJcvl~Ky#W5sYHnED)ODYQo4Zx(}zHmOw5BuwYm)TdiG(r-s zDue*+W=dX>iCr5akuN23wd4fu=19WIP*&R4A5IRJ{9?1T=Ua2i#W_aJjoN9VSJUn8 zw}1DI@20EHc#!V4>hUy_QwmRHo+wbkemQ5Id%V={XaDZi4ZeJRI}e@fL#8j@Twr-? zr~K-}52vTQ>4(#k7wP2S7$9L^cNpBEZ1jY6GICph~T{3F?RxlFwt$LWB;Ytz>4#h^EVIKO@v{JLoih(GoTm)6iaDUTA1g8)3Mfbi*4#RcLJMS(Ihao^Q9aw zp66;BklRAR7L4l-PUlJ;R?sPVlg&29=@=Xl9P{D!@o_>S;6MoG)*KmYb>Rk)hAu3o z8dnHrI&m47Tw}szr1f^cky%B+=fiYZ#zzfI6uU;y4SvqeM9SQ#ja}u>zy4&?-ank$ zd@OIv(50A!*p=65m-1;!9b{jLnW7dOyC_{qlCHOi!o7jDDxtL2bpGLQzg<4x>v&nZD|`R&Zj3k0 z#ufxQT6Jd2)N^j37FjNrC;Q;zkeCGOax(6^qz!Yj&CLfl44q*xM+9OFU{xC+&$D6T z&`?ktp`j@T3JUI(qqJ6ykcq0Iff9KmRYK%k7Jrl{@p%7;#2@-$xDMpn&c$Vk5z3fb zAn!N)F#l{{A6ap=jdLC6It)tzbB^27jk~t4}U}`tHDRy}F-yEGm2Nxdv;B#0cPy0OWw+h=gq5Hr=n|(9ocB zZ>>3^g988pAu=I2pgE!-A-cOMnU)GEi2=AZV|9+~dLovPL<9-J5xupVb5$dpPxmyv z`+)t+zy9;~!{eyCG^8k=DgPoyGgl9;eF)#!)UhmhOFIg}yr_nf|0*gaaLpN|kGpB&YLu88CGj+YV zsa?*GIdoX23NiQ$O#^Bf$D$djs{mArwxWa9#}9|rt@2d6io^5umoM9!H}6l{dp=x3 zV69-0NUO0IH&3A|cjyLIVPnxN$ZEa0Ua1-dPzTp$u^W2KOIflJx;k-y7(0|isI6Tp z(X*faB0Q!mZ+&Z~^Wt&5gcs)zWB;q`QzcyP-qx2Pl=sVZ+AD;0JUDD>twz#Wb3$|S z>RY(Khf2v!^SDY{g=0!7pyq~X5xbwB4sYJxjyW$_tuj;fU?fahj@kGsm5WwWK#orC z-q6S#RNSpqV-iGa3yC&YCpU03CGz>WO>4GN^E9ry4rdf}b6tojAC?$&)0JfC6Sr({d@91S%{a{^$Sr>6i8W7;k>~-7W9Bb$6U|yx#hG zO82E$N^5(6x#YV#?4zGk+VZ&%gF6wZI|c(#6mVul03@%D>==nC`eK7Su>g_*IJiRt zB6Kx_j~tQB+|;}}5iF&2Ou%T?%-I>-&05V&GIX7|YpuDqVgQtrpT$k(4eeFo!n z;OpyEpDb8wNQlrOc)%Hvq2wh`^K68IP_hoIKDjm}vYanjV9o^z0TJ1#WN!-u4p@yM zVgPU%QXj)+yWXyGJ|C7ytLZ$NAu5u)X)|&K1VAuVO8q8AS)qx!DG4hBpnIST3fnja z!IiXmydX%>tZ;R+P2f$(>HOn|oRT7gG}9(+gv ztrnt~htzc`u&V(Om(yeIsq2$1m`R&*qB6p;!`w2ix`BPY#igNv z&(DGsr7jdQ-0W{|Gl{l-pKpP^FYQ+Yqjha^g zcR<3{QezdMFWN*9yQ=<7qCpyH__~J^4^OJjJVxJG!hxwR1Uh zOiJR*(o86@iGBEPdHSEc5c0oU#$$V@s|{{rKCNH<`k8(6_W_<>cOST0-^?d&Ag8hK zU)%%;qjg;X#^#J_PObsm90>sc5!V=lnWS0~oCpw|2*Cl|0bD;a12FSSgpLlZ?he*w zVRRv`W~SuUA)plpNnIByV69UI3N~N#?!%k&)V=!GUlf`$M2pv3%p=8QZU!7crNauj z_ySFhyO!tKfNk#f>rS=ghMF(cY8~fVk-b8(N^`;Hfzz5~X(mfbi+2wFzQ2AN@aX1A z=jnF2oM36p-n2FICSZ<4&C$8*hhCy^5>`fS+KO@yyxx$EW3DI&hOI0myQDPdoQ8x; zbs(J{9%oQ}@KnLA;0%RWEfWLJ~o9 z>4=0P)M+fB7!s5gyBNG5dTiE2l8Nhr+Z!37ElxSxm@S_!#m@QJZ(hjqb>&%ZWP*Zg z>TkMsPH*0fDVacLWFhe65gdPg^<|3s}|^tYMCWPcneb8?j69!9aZ{2Z zAOUw>p#8wj<^_133iZP;Uk=orH?XkQa(=9S_qclc_J{Zv|6w>?Hq2@D{+qXRzgdNl zo?E@W{`6?2Ws8AO8+Jjeldhh;njg-@{iesIQC|N8g+rg|Hl!0E!&zMXJY*_bI$pj<+eMfEUExHkQ7am(F&O-P=s`$ zXhrBkp$E}>NxDylJ#bwz_f{?3xZ+qn^&aOq=~CE%WsK^TYk11?@ZEY|`mB@BZ-TyZ`&? zX(qD)r2-8iT-MI3Et5&(gr0Dlu`BOi3WO16quo z1D@O<1V>aMOoL0vXcgO1c_L4GY-iD^5O2a7S<2+H zz3obk!>}xm@1M%hH)e`F*X>7#%kO{lG%bU0Ti0zWEaYac#bcCiSeC(_8hQ0v%^|ch z_rhN4+!~=PEUdBIv%SmWKZ0FJt=iyNuQ&>D7EaPYcR)JmvWK zAG*KY$TB}pr|-X`TblAuKHp!q@w5FGzj$>$t8`$UtD5y2JBO6YnQl9Jm1aq{UF?Q%*fe5OhJRTCFYw1~?HF zlOT=RAs}L?!>tT`4W*#%`k+JfvtwGMEuZ)MeE7l;hx|5p+A*wP8XxM{K7I4|U%mK) zgD}sl^jgcR)@r90Fy%a0Wl0~)>o>18mN)NvFI`Wl_I~*C^OSb2r2F`4mg&vhHpk2G zWsuj_J$KkuJ6ai1OYWYNB4|M{0+<{^U~6!30tI#^f-~Tz#N^EYCMJeE+=+r4h?u+? zSp#Q~aBH3bxP=5WHzx|~T6cEN#&J5mdw+a=yx8Gyp8wIkx7fw?cj2Lnb)`Ts4rl^* zrLd^!I;*?Q<+uXNVqw!;fiLr@*T+*vL!GDG)LNbj2Q~w%IxVQH2^r9cL&RZ!AM)kh zv`jf2%)}(5)+lIGRpYdZD~I4}p^u>#4S6z~8z;`OOb+bo)Gb(NH8-4Xt!@v)qJxWh5OCo7E}?Qc1&j7>C?) zYK2SQhk`gjH7oTjF@wDI9{PTeAqGoCIfwZC;ZD*+S~W;=#Od<>>^!Z4WjQ|er*~B@ zxBYitzs@^eJ1p;B+~xiLmS6qgW6Tz;khq7e97C6X&*K5-xwa6z%=z@)^OuKR<@fG6 z>@3fQ^^DhHugf^p zqQ#*~Y9Vnn3b?)Po~Ew9WbZdV>r?OL=639c@$Pb6`-h|Z-TL+0-MHnCA77#4TU&G8 z??sQ0R`h-6eV``Xguvozl_Z%l2w=Da#PAPTh{)mQpby;PW(IR2gBn6`CSo)5+K6H^ z4sd660FHpVR$s3b_V&%wdd`o6H-UH<(!__bWg&AVo8^aPx$Hf-bhiG~mpQS8Od?*8N+@MWzE5n>Ye zs*IMaHg)bmgxGHbnU=Mv!H8LcFbHm~DFrl@7#LsALYfTNVW(tx(hM=v1B=s;OVgT--4+1tDWbgUOE|;@E^mm^=q{p>r zor?Fvb_h;^9cY9Y*sbMemzCw2Y~{2of}(K<6KF^m0<`RxXEy{kHOr@b3=8JJXr?`!RHca zS&MBCsBH;1Y~)M9J_M0^$vW(6-hB4u zr}f+O)6?~05Gc?xxq5Wx&un==WSlR252 zx>{=l%QYxKaAyXHn8Gj6$MadW`TN)X;oO`tSv5Tm6UDjfa z7u39*+FVzQyPI9K)yV5=n5Rnhd@Ze%QmyMFsOCxmYC)*30(VIe9{0~4tWMQ+QsJOx zMj&Sep*gE6GqIZ+_X#BrEHQHR>s&%=^K`CS4Q=jQZQOO!EH~q7V@Cfr2;&Q}xDBrM~BMUAY^FFht9(Rx$<0B%wjN zeQ!@q4c3~Z)J5O!yvz}{x|hpaA3yR$N(lv=VlZ9i$@?(g=lnR`{po-ESppyWT$k>C z*7M_)dMY&!FL-`>H{ZV;d$e0Sn{aiusRh#3C?e^6dj0OQ`FW2J_L~^peR1`ecz*NS zfBogx$2X;VV0Wgffvi=Ql1;Fz@NOJ=y;h?Smwo^?mp`Ol3ik@|CR$;MXeRJ>WmJ@&tH7p>GJk5b8n{-dRlqHr$dS{uLYVtiPxY? z`~e*9AOHj>W*Fe)WB}ZW7;t<*#BdJ8P5==zwdNEmOx>N_%*X&Z!JSxwxbl1~zI=bY z`N_jw*V?S6-i=JLkFCo{ z96Qw7oX|>PiB<}8B4L&|jx^P2F4Bx6S+GhHm2(J^p!~$ z%K2%XBrpeX@KS@$4zXow_IxO-Wu#36Gt6R#X+}8Ymem27MIkYSmIete=L%9MViuB~ ztEOR~3@_@@r+&YY3w652+x;Q6Dc8o}kj9QJXAHYku4{2Nm*|E_a1v?nwQ_7Z*Y$WR z!30&)6(MLXa84jh&hqT9|C@(ASA_cNk@NQpqHx^Rr&CRvrbV8AWEO8@F=k9t6;QNw zg|vz2AHV*?FFuc_Jf?L-VT~&|}gbx%0V}s6=Ht=VvLMUAkqlfyx?EkU{c$-HD&m^UprN z-_F@?Z`!BzSFeUXMJq+xQa$RmMRaZokQxUexEYwq!R+pEVy6$lASWU?;0|U65y8dH z4Io#Tf}4S)DTIm{n25mSVDj*Xx9xg7<@UpGKKipy#vP7NC4`-(8{sjaEp^xgQxO+& zZLQAp(vrHJofD=@+kEzMXa(E3tTN*9Y0*3{>d2}t>?PMmVl{&U83-*!LSybC&hND5 zme-u3unAcLk&;#;SRhsPu6OsiiG*%*yWwRmqp?lZN9lFZ6giDv$_jKeUwVMa#f3`+AYCsZ7D?pVC^QFC-~^E<=u_tntj!p3>17U`DR*}_^i(0N zMyVe#(8L!cWHTZ3433QOQQs{au!oz zTdUrUm3Y9~mIQZgM$~s9HH;RID9>v1)E^GVsp@0eezL9$Hv3#tNGru!)#=G7#nclK z6Eol}r0T{F5E0lx1cJle$N>krxqEX5If?+NN+F;%vTABzCSs5Sl|r7DbuOpJckT0M z$=Y^2O$FWVVM7+pYQc|~BnX+agvODBa?htrt1{r_$A^m6T-bB9RTd6?TbHspBp|N_ zA#LcH$v_cx1BBZ<93U>EY_R@kwi8opItnQ zT(k(PFPkn_g*mG7E z=ah=M)so?aa%p;gpMUw6_i?@IjG$G@0e3jqN!ZP)>%_F>Wm$?b$cWs@T_cDY z#BK#FR+U^ygpJ7!%n7bdyn#Z}_V%0mt+j-y`JTfkhi7+O4(s&8EA-E% zuYVXnF6aGWD@FUkb0rAenPVV0n3S2^9F89moSZ;FgegH-;O^F73Stpgb69B%ag{!} z0mKY~yOXJfr)#j~a$fYy{bth=3oSEs4~L#rNxCkWIadyWn7!)kxn(8dvOKNbi`#L( zD^IhRD`4~5u1iBXKh5gR#|>FtDJ7~ZT?)Etr9NlC*^7{1b z`2n-^R}+N66Ln=eu0+fIuut#4z3g|Rt(AuDZZ{5}{p|C8Z~i8SeJevup^^8g9l!d; z8)H~k-GpHbuz<+XqEwYlN>Nmx4%4oJOe&aNw4+hM&IpYle9{RSFZP!}SMj~v=y|uM2 zuiqT+J2FmOK#|8Sr`NSysPkF&wCgP&o`+%j)%)qN%TMw-w`qEMymCxaq*B`Dw4|Pa zw71);%UaF)O&YeFZqsjiv~vCSqd$nc7$r{PcG#4EiB>GRnHxSZuuu|mfJ6dzT`)6Z zhd3u{#NyW^7 zxqM^W^5zt}-Qk{}^&kDGH}R*N-~H!5IP~kchaqT?P-kp5-U|a{PUP;y#HIvicYpu` zK!5{o+N!$28VNO_wwx^v#A<*=CV)&qEbMBbI29Xq62<{)%{UGm_X$V z!JHf+cGqd9Xf@`d>J*(=V1|{M5Qs7u63Cq0$PJ<`6RT3ww3)BGiOpRCBd^*=Zqir) z@f4CR)8pF}ZJ|S;Yp(%lSA#1NcT+hROJ#K@P`BYHmtgUb+WPM7L$a#6M6GK)c*Ich zibb~rNZ2a6USv7ep4XzrT~9gFmv_hWQY2JV90r+Z3*_y3n(IRxqbi}U9w@p_g0PLu;1%c zC2>Db>(Wr!stdU^83+32w};KJz5ej_l0JHN$p2~k$;-d`hg@!M=#+yz%`acfqLsyK z76f5-zyUBAPGk;ub2!1^#11cHW^Nila8(f3d7deNw3ZGeM8a;S_<+g7F^b3Swv%o{ zrS;qpLqDJrGcgoKom2`4P9mmFTPYr3Dt&*OmUXewOD$fq_dd@S>THqRDku%nOq~g^ z#?{5uowy6-=y@>{F+?(JiU@)m0RR7iUbHTWM_-NmR*OEoSajDMYj6=jGfihY-mc$eCGSChjh5-pEzez%XKJbv24w8oIG& z@@fVdqNtO#QWDV|ox*y2H3gWhQSj!n-AeJzSgLDLxNMyL=^MEZ%1o_G+IY)v+xc-H z(TAtYu}ec-UvO(O*k1Ye<*rXP)V0b?d_GkMh?t=2^?F*ny{=NP8XsQ9_H=xbr0U)E z>(}Y<^0OqZkk#Tc>@r%3>~JuVt1(FoR+OEo28IZcE}nFCI5Ersftv${!npn;rY*Q>AP25x24A}gu~{)2=D*tAGWtsc$SZK z)o#;sRL`yR55R0B96V4Wt%lknBZ{}Bx_gvJstr4S_xL2ckM*7Hx~EI6A%5}kId8ku z`{KFw`?UUgx9tPm!BCYL89yQd9L(nK1~WLwi2!pA3fVDjm@^Z%e-c*5=&{V z%9>+n?&N(Jqh*i?6gpR?+=vnTn6nT=o3RLrDl=O!Yfc21S#wjEyFz7y5QWv5Bb!mK zImfsmvBlWI8r5B^GsLTc?Udt2v=v3QilWpK8DyZArxl4?h};ZJAu&PK-Hq9u0GM&B z%z@dof>)JotkehC1PKGGY3Q=$mObuLFZFVK)IO3o6~APTUb}5tPq~$bT+n0;Z??Pb zayfJFrXH~V@b!0V@-&uK9rc)({@GA(KfZ3qoEb44I;|}`+q5V%hh3t1Nm0+Q@}b{U zb)<2B*e<8j+tQaO4V}+R={{3a3JyTrQ>-9z2LbG^(ZQja16G+i29R@#s0|Pza&+}2n z@xS~1zyFtKn7Ws1S+t9NGgqg;<_aPbM{U!xwh*EWm8`CF6sCR?Eqfm~7urC#r7D{(9@p0IQn4tcP7qQ2$e|!6F;_T|g8&fRAwoc4GBq`= z#ibzxwL)NOm6E%;Fan5Rs)57i?sglzdQ%b9T0C@QWM&QmC8$GK)}>LMuG3tWsc84` z?9d}}&K=V_uk+HTQkrl2P?t37+K`PIZMGOC_LTDK24Q$J@z$^!VhT`#F|3hWZO%dj zZ3-BHFfI5oLH?l=YVA@GDc&n)v{JD)dMF76V!Mx zq6;xxm?1%k;S)odJyazE1vUbCYZWC%a$8U1F14k27=jk15Tt3X0o3io6gJP3t`_&B z+lFTJ-AGKDjbdXljkh~{I(F;I-P463KEM9G1x-M0igw+^LiFBTdb0WtF?m_^xnFonM zXDu8et6@N!5vj2Q?gki~$s0Kn2{{0F14-(L*qM536VhQR=Zs6d``KT7kt#X3HP@=K zr1d}UAJ*4TH(!kXcwFg=|LNa7+x_qVewm+dtixprH=E!cUy2Kp0S++GS_`eTez?D1 zmi6oliB%-jmgiE2_-u0u_U@8aza9R(en0oOZ#CTQo;qC{m($(PrdlT#rbfB+(LCo(XE&CNNOK@A)bBN>v<_pww-8FUBOX3u33{Oztdb zCP4yVPGs)Ps*vFM=~DCV+2b6LwGRGoNTR_Ew(E0>GWC~GFGRF;zZvFihotko$5 z(^iOUsa5;b2d`FPVlA1eg7JZy6SG1@y8UKMU6)2#xyHD$>&c7B0yYes-7OR%5IY8i z3Kk7X3U|;_7jI|?YAj41YbD`Y+?#t87!wg#I3ugNHjTj~#Sj?U%$$dvzF#*3k(IfL zN1JBebVlT`hB{fQ>9bFsPO9C=YZ-I4&8|b9vwbp{eyexAo=Y?X1n8F=!6K0~8lf*bAV_sv5tQ1n5W^)p61~+qZqtJ;#ouUH9Ob#Mp zW)O3T`T?{H6mqxu?5CgD_q?HMmJF8^?*H;9Umd^weRqf|?g2xpNnii$fBngS_~)NK zoTj*GXo(}m)*MbuMnAG;-1K=_sqbRPH(gT@xVjfbeJh*s7Kh^fPN&O1%rEbMvfF)g zvir8%$I#hNL?0gwm-1i;}=1OprZ5ts=;GYGpGKm=l9ZPZ9mY9E6cSqVvm zAc4)zKoTfG`a!gz4*_htD1-^b@__Eq?yB#F3Hjn+9k>Wy(wkma*pq!$&>_#Lo0B*!;_<)s#X>)hDN!xK4 zn&-mgaWhU?w&IEq^1^|*fyA5iK}a=Q>bOeZEY@N|szUJASg0{6l4$ILQYV_--CRI$ zRRZ;G=r!y+j)`rZS3^Hy&4s8)Tx0O&Jv8mcJ}vXY zBbBwR7rE_k?lvd3k}bH)80T}gI*Zi0JNMl8-NBE)d$PMtpU%a>Sl%A5#ZWKrYYe^B z_tZ`2hTxt)8P978TT>Yh+eGzzIdI9Bx9_v3fzQ%WZKS7Pe4C@IRRYU5-}>)EQg8V7d-kXnqj8(XQn+986F_Di!YB)f$KUL;p$bdk&k3J~THfD;Ny5yt)8r zZb6*LDVS21`ktC0>e`%?L@4A{rE?~;e(2hOgk`a9;~;KrQTNh3veJGVRK|@MB3bEX z=04SRekTXhSWoFtGN*kAU>+lk0SnFrGxtBcLeD6@}*XeL5HLrQ#Wt#T)H+Q#z zF9^)?9xnohWiPTR$2U{I9S;xt=K^Ed&ToG6%~LaX0vrSq20+B#xF+VVv*1nATC`?K zx0kt+HI~HcfB>05X1~s<^XL`Hi(B;(Zr;4pI(F>}Zga8M6fpe!WuJfdlU{Swdl2j0->4ZHxyl% zUDDFVLwTd6>q9GurnP0i>7MPrzvM0Z_4V(c@V}hDho-PDa@N2(}J)+%?=*LAhZ zJgp1jdgjFDZdJM4-NY806X&WI;q@pl-MXGrw|^IQ&o*PbWNpUz^e)~?Uze|5?{>Fg zz~#~jUtWEGuA`K3gNETx|Ge)<&bxcGT1X{yw=Xtry8r0%SXN5k6XKfNn&VPK?C)-a zDv6uO?q=+7?#~ClsJ!fLNMSQVYU9l&thUtY!ia8W05Lg?%(PXAQj*}P4PKi!bpvyx z55%>B0>jIgxReS;C#f|bL6(iFOx*cW$~+CU zUjFT`zbkKc;x`?wd6I4Vi~srbf4)9!#XLj$oieqvZIy9Z1ZtCifpY-7G&d0Zf*d>)tzH> z6eGruh)Dr*cZ%j@#34q+WLY~(a1MdV&B&ZV_<%#$-)~|E4(hFCOXDCF5yfI8a*A#w zD1dmLD!RRar)=B(?c7RCv_3vwnlI-|adXSX0c&loh_0Nrhh6L#-pU8fIrhS>IYkaZ zR0+m`Llpx9!~~F(ri9w+aQDgWvlq`i=5?uPcpK;AxmXiwMuDP{2;7PK97`1ieOd*7rx&Y&`b476CR$D`>B(8`x186J$6fHIQ!#-Hl^?oAznf$F7g9)a;QwjUPYkMlNeX zh{K_@$sN>M>ConP)7{U;ub#YPH~}Cr1F^L#)C@!{ZszVbGM7_h7G@AzBL^`Na~GH; z(y3}EWobhvphQ#dS=SaSO@bf(uJ20Z(>3_puj7k;%+ARI>J<7R3+2d!4tS*aNPskv8fC0GbLg8Zyef z9*RS4Re2aUZL0WbinOR&q%PE@ z1|P>WOsCjMm3BETa*Gdc#Gj!Rbz?fs(xq`TcAPfDsWd<0Dsg`^Bqx`L?q%16yAQu_ zufE!timub;<8+s9%W?rvh-50p1_;(_0%At1mDGS7j^y zU<8ohNyw>jT}?rk-r@Q5)Be?-fBXS9Lk{<^N0EjI%HwjL^zr?V<1nVfPv`YT`|!_X zyX&_~TGjaob)9DcV5bZem_!p-bgZ@bh=8kAW(Fqo-m{@eIpoJTce0|aGy25+{qNq| z`yW3%96}zxa~pTRzfN4HEgDNxh-P3$q-F$&2u%nX4a`Ig2@OCEQB9=@5Gs&&9r=!x z9GRLmKqCAzGXQtphv=|15%ew)c>u2f-V*_NHW6m;8hDJXklT5Vx3TxKqVKCrrJ2>X ztZPOA$1bqt2AxN30xosl+Ug8UkpL7FqzM5+D_n%p%rSa1B0(}!!&-z5nEIEuV~WwA zmecbRMmMFnm^DW+pc!awLg1rMv4b@?NR`+}tZNme&~>tycL;>!7=Vn?#0&umk;tTI z6(=ZE3q~Y2h`QiH&k-j8qAJDId8{IWhz&t%L8}KIB`>RXo13A9r^{m*FVx?rxkVyq zO+B_bL+USeEe4mC$tQ~4iUqe}E;Wa|*og0Dwf~mu{P@#%(>=;utSuIBH_Vqy_+|Hp zN9$U2Gj#oSNHMu8pv_@!fnc(JvxNdqnJr8Y)6FKRWl9hb!nnVpihv0AXO0NbOdFO` z$<#$QL^f_xo06}HL`s4xO{ji+TO9EC<2+a5?_`1m!;QI1H^lGNgcluoMPJ8W588X}dZ6>3#RP-s?F1dN!W z5IASjvS%}?8i@eZ%n6b_#@7D9wAfO_cDl?Ez$%l}%)S|(( z1-MjH^xP*rvOCVN@-99jGU1A(OI{>3SC8=-k*Q9!Fjbd)xe6ZHNL$0-H*Tjl*ha4yJ0)f_Q(J0 zU+B71SDSjr;3ANbf+0I^gh|d8N!yBDN+QRFs)jDLb5+M-K{tf;IK==I$@#SR{^uVT zmtN(cKT%g_UJswT?)C3pF?mxJ(YKhI*rNp@`E9zp=sS-L9C9^!UUx9sDTN499 zH4DXRal4!0`7EA1vq21@5NcU-&KksdR#UY!7K=cJZyVbKpD@7Vu zUe*kKC#vkKjP(4+c^~UCuj>ls(*?)DVG|3F|N4LY&qwsvb$YUk*BJVQ*6MbPwY+~0 zH&t6B>Ni(O*?XoU1J0L;I0S;}=Q<{6+)mTxtG6@c#YY3R@!prvmvi-urpO>_WTvQq zmS=$Gl#HWRMOD&L0T8Vkp{kFb*^NVGw=OhpZ|WA@kgx8&JHU&Z|Nam1e5&W*0Vp`F6cJPv$wU~5C$-?F3rD+h z1gL1>x7V9`ITn;^K5q7#=N}JqY8W>|@VGosw&}3>S`OW>>SZ3|^9TDCCre$0`53?t zy+afPH8B0NHi01{5}{hFRgKUHP1V3E5HPnD5djg5z*G%^P#Z9qi{ox6RVl?WX;E@! zYJ{M`)C9m}t)7Fqe3&mZz%B*wP911l!6l1MOsea%53$lT7f@*8$dCw{778I^Hgy1m zpbY>K35^BN6wssrqIZg>Y6dwIJ7SJ?-h}gWURzraN8I&(eOxn!70@{q5bh&8GAIQp zNCn2y3{$W;?zU2MDcBYR2Vel8pkTRB3Kh7nQmP@?pJ{=h`FzaHYjF`_1yAa(pq;Ze zVMHPo>aHCv5O+IR>s-yp!mYG?p?vk??N`HdtFSB$6{h22%55por%_~MdhUaknFw+f z4L+bCVsr5Dum9)k7u%|4;I|YB1VCEV<>|P<=CgUl!rgX%6YEtUxMZ{GF?)!V(Jjx; z15%2r81bg$OL9mE-Stq@4jMSG*Z@@o4OB=Alc|BOfrPcrjG?QgA){Fp@YWi2!Mg!r za83DmK5n|Yp4v)a29OE_Y8sMsy{(xl$2LLSad~Q26+TTVf9*Rzr+jm1+KUL^9ec-@kpeCTws)`vo&!}3PA|V;5r~y)CAaB|b znz09|WGYHjQ3?h#2Obp+lJ6pEv%sdRKxiVwwNYEuvQ;LrCeXH?kYZ@lBtkYXl_NHv zLRp%{8Jk=JAu<#}1-7$}-sxJ2$yrs&sD#czLuOFarbMhw09k;XFKo4!#Mhi!f%Np@u@bC}&_G^Vpp0 zrxp!Jfk08jTs1JmCaR7~@(~<<2hK zjZ2m<>-J?Y8O#DPpD9awSC9YjeHk{kcw%o-Dyhd6eIwLL$XqDM1xB6cQ*>6>tge%p z$cqx7AOkrDt0>qsSVdRSVQB;c<`_zD7E|<6TrW}ykr51u zsfuYSEei?wRtxQR0ai^RWo%34Wm)QaUT5v7M2LDmAHd>hS;Y_;l{^Hh%Sv4ntxZhS zvk%Th$w+f!cFsyefJ%-;1k|Hd-QSEoty&fPT61&Op1f70Hg~lug`^DT1MAA_BF6jd zhGvkujR}w(EDyO>c6se{6RQD{uw_A#W@NRAg`lN1F~COs^)?fVkGf`XX>bS%DA}PK zTFV+kN}hbANY#&_E)a&)rVMxc|L$g34r|V`OyVS;3Sa=O&R)OXJWt_8aBDd>AF#~p z3URYe7dLhe;&3|riB9uVh@Fsh12i#UeLjA=pgumm_hahz+x?75tF z38ISXgzJ<;=bcw+ppBsBpC7(|R&PdzUeJ(D5gDKaZ7X|#xu69is>`xg03#p>MID-D za2-;yHkU>o)c{P$aZ>^#A_3&4;Fy?W1W4T4fBAInU%&pv%dRdDpQyYhBO3U$R6xU= z?ZF$Eguwy#u1U>?s8woiNG828nj0xFKz2@yyrbaSsa9>h?|UD5#A(xl+q!m< zBAC^80BlrE2}C_=t4%9fhDceAYC~fIG8LrFi?viYx^Gt?Z=(t4z&u0$lc5-mg9W)_Kw_Ulf2LnsKBSWuIEpOC|!bu;}>&x{&sUi^PEx) z6dDTh`ta`Chjre(Jr(mS=~^1NW@bq2V6CibxfVy+ht5RGY8pTqc?LBmE7lQ0tAIAC zfb#@BkfIBWXh2BRT4uMu+S&Z64Liy4>BEpVtCG?F^6{S!Z<1HXp*G2~URFC4>s>1~ z2CamS8nG6}sq?`*0&@fdtwI6Xr&G)=gm(7h^6{K-Tqo@d_p}JxS`nNWwJ`2N9KsL( z>Ggm3t9UAK*UwKMzp!b3d?#Q3S2s8KkKe!ki@^s5*OpS(Wrd1rl(e;mh*}!u?6tW* zI2TkJAgkHZtT)d9NJtFm(3&8*XgQ_il+7`hssL)rh-4tOs!FXQ#oO_u!)`w;5Qa{s zGKb7@#8&)fuCn^w?rJwxzWGIr@@_rX3@&=ZE*+tRkoa&NU!v3o7*7T4RS{jB)=mo~@JTbG`0+g0?QrK#B518M}yK z%PRTO`fVayC5=5^`0hTw`ogBi2ceo70i~7l>1MbrLs&|6wrG0ZR39O$aBSi{TvFF@ zWLvfH4%gCmsUPEJp zd?L5$x=RhQw@F=upo9&XQ7RxgUKU7cxfD?aUZ)HDop<R?q)qc9|8en zAtS;Ie}3J|&>x3iUjFpcXJ4NF^?&={|NTwd|27W((v9sq{!2XWI&b-0;CaoW=-liT zyi=lFDIeQ5GJA)HrYh3F+EUGdqeceEC`xR#8ah`2cI?ez-Y3cqsc9J*$hu zZgBf>Sfdy6w3M_z95kS71)V1&&5|VqH{O)$08&XSB{84+kaqh~Z+15y*YdFJUO87z zrNjA&2+Wf_!{|0KdC6ieLulIw;5(La>_@UPFCS0d&9g%asR>wR{*hu14DKZeNckL`}rV+2Z)!pW54BZ+7nA_!qA~O^B2&u?^wV z)W@I7u}yHZ@v9d9_GM4}`2yHVOlvV+mt2uH8(Y^#x0EXBjxL|9808dNc_v7`5ifu6hU5iWXOs%dO5x}4|*Bl{(xaPYdS;L?bCnrg4S5-RoBk8OV~%q)K)UYwsTr@S;>){Z5M_OBvWWyKVywQsbiBEGqe1BeZ2n0&R z49N*Lh(m-(-{w~DUiba-sp!p3AePIgceM@c^K(Oy^AcDT{4JFN(c3EF#a-xcF84z| zegBY+eW{6|d-d{mXDZ)+m_@GdtVz5%pTK{Xd^4|?+XWmd$I^gEFZvm*H6@wGn~rJu zbiAF<3t`iS;F#6IQ~2tyf7^cir&Vr$`>WgU4;OQ^&U!b5i?9>#9J_+4BXrv~4|Q$2+ji-^-QR8khyGHVi=cBQkP^1@ z`7E(sWN*t-D*2QbF<|EtL$ea11JIDXiIH;#;!zF6ocAgCjtLRFJua7lwFr_&Kz7b_ zXnBUzr$wFXw}EkZrR(#VG`8=m8y5Ix_XDM2o_ULNb8!_{nxphLZ(sf0&lXx+$)(Pl zp;a4bi43JW7nLEG=(>8IeCHyyb@qvSe*E#>Zg=zY?sRFf;?3MER%u$HSfKN#cJ;Bp z+t{a%x2I1h`pdt0p8o#frTu)Nw@=@n?|n+uS)SJ8xwKM4@E#P{X;3?#*HTO_9-SkR z%nrPvQuM%5(Ww!#Q)ta2Yjr8nvSjrhRTLeNCp82WGi|l5r>XTlmdB@!mu1pAJuPVi zZ8?>-IR5eJ7Zd{S#QJz_>BW_PY;9>mo815n5d?zO*@{?9(fe)Wx>iL`pvVoJmGLuo zcwh3-vr7f{{_f3PKUYe}%Mk-zNLO`gj$%hjS}+C&Kz@J(4bJ7Mv(1*C&#yM|>HP7W zsms$6bb{W^)A05$zPWt+Zy#!;4E@b#p0~r@3;h76IdhjX)PkGQX>9E>A7rx)&rkmD z+AVb5TPjT`s2ls*zg}@Ug=&`A86aPu+M1@KCY>7&uQ*1t2)XQZ_4ve(1-v9hZ~Fkxw&9 z{`B+1=~l1rI$85t`{XJ(R**vX_a1-$fOaa?4IN>r43a{P&JhyK7;ZGr0)7nAYD0#0 zspH$dF4L+1a`!+B6Lp;f(mJ*1!q{s$ZPthX`@_vw{`!>YhyU`E|GLT2g8$r;xi5Eb z?!3aR>*;hpo2-{%KkP~?frc!AL^0? z<8GHE_Sm7Bwgs*8(G3w@wWi3Zp$cxd+b{Re$4Oj0H(SnBdF+ymQ@`5F&%gMKUw>M@ zUsvw8lzemj9pIJfi?w`sZv9|O_wx1Fj)|&wzjs%r{{y)(f01^Z+^Wk zo%eYK$~=GfzP|L(9598{$)$Gt$Mac41<7!wp@@jNMA}+)Q5DR9$~+fEVs!+_Av%?Y zF?fziAnGWNdqvaQ48$-r5pbjpguCr#v%e2d-#@mv=ScFy51%$~lE->^toeAlY_7Wn zLc~tbG~?69UK~Z$3cFsH3{qnajY59JNs(N@{ zJk$Q{AdSPzUFrdk|8QKF=WcTVf91xMzI*uR7cWM9cXhoFpK#ahL^_Fb`RS0WC#`ES z=S58fY$=zyOfn8obhAr#CP|c3=Jaw*zgezv9b;UJq@m<`BmeSU7l(;_Gq}0C4~< zjH*q_3Ld03AVzmTezA3rEnZ=Mo}9b=%ip~{)sGV&*G0IAzx}zLEeZM_H`^K3EY+3K z@qF%(3Ie$$bIt^$4& ztGj=Flk#$R$@ta3|645Y>{;v0_~O;~uo)GHm-{k3P3H@Larfz`50%|lFTVds#Hs7C zZ|Lfj3pONYYkoQC3~kAT$qxm}g2z)B2q^7`>yMXt$;k~q`A9LK<>ul~=XKnn6{=8F zmw!6l=dzA%UJ=NFfS_wA7RPe9G{)FY>#}j7Yg2B>NIpB5U%<~xKKP3Dd0zbmZ^q=zfos=)^_ueh z^79YJR2pvo?zI$ zdbNe-bo27VA0Eg@Xy>JdH0++|`PF{_g&mXV&ZX=_xeE zCbou`yN`eWhf_^VU7J=T8?l^W(?K~(90Dq^`O+F~hcWP4SEJ5*XH6niAjw1x3AlsR z#dti|)b-^w0sGCyOpsr+k~Q4+gBPW>ySmt=h2O-R{Qpo#kUSWQ<>hF|eFUkn8-9(y z|9|aOcYOD_P&d-y-4pqEa{~{jp|>=|wpOr9oA7+O`Q>N3;l*B)l@>a^tk7SL>8ZQ! zI?dZxU%u>@LKY+r?>`;>&Oqd%Z}vr=w>I8g=XQ2Err!BFX&SG7ef#wN`Nsq8Ykhk4 zGKrS+>6B}wEmx>51!$%Y4M?*(7C!==Fc5NUQn4;YoGZ0jt4IhU05!9BM8syL8M$&g zJbzkqZsRw1?RiPAR&o&`$(}g$wEo@0&pBRgcXG(!hS1jIbg9gM4RA=o*4gjC{CW&8 zZtr*P`v>8Y(-qBST7BAI?Kgw(zj{$VxojL>e>FTko!y2m#~pQV`X3I%|KLuC7oYDo z_h}M_@y3;=R#k7ldHe5PcHjP7x**D0ueFCfUP1c$b3HvzZXjLuFJZyE`_FIx?%Q&` zAF0~)S6ADsw7vW3`0=p++I!9Hafktj&CvVQ>3nI;@5ZQ?dV1W?wKg1*wdMnZ+}^(& zInl=ly$W~r^Iw&o`u!I#``%3_9bbm^>)Y+M;P@+=o-WQH-N(Opsm?cZT@Ek*=5l@2 zZ9ZEob$;{4+WFKF8j}<8o`8LIyQ{f_AuGqa94|+$Kxsd;i^U!z9SZ%b8~1NVGG5FY zlMC;|e|)>^(G}B1qn-cshd-V{9U_p!S=_QE(28uz-Z2734JSlzA%L7~!Vo<}qi*Y$ z1zQa!{T7Q0DRxyWEym!6G>kSs9gDZ_Zj5ucdwDI>W+XeE4-f0rtvmg=_V?YcX$*)+ z1&_;-u?wyq(TD!-QR1uJcbDCp*X7+0=jmKPfBU=oZrO%>JXO~0q7Auz$clf{V_pS+%NA?aB z*fBYBzGZ8brk{VxLV4M}eYq_cjr91~VjvV5nA&_k9%l;O^@i4|`IzGToTvA52bm%E zi4DN_u;e^1{fq5(?>{}C>uK4&#KWPu;QX+^-Rk2}kAM8O-n<^F_k7jXi;(8!82EYf z>;Lia@f>=NJw2ZV>~c6?5Y6b#@4kE;=ya)dxwNiB=qpsXjRw$|s`b5F)w1(A(!)Rf z;nR!TZhl%n`>UPnRcW1{jpBa%_=oRh+%xWPHo>8DZMjtC7%h8w{%|;ae5S6~n(b!W zTe*F;CsCLl>Z={YwmW}1Os{XZOtLnBeOf*)6|}|_+Vcea`?1uq%bZGPa4O5<2WOpc zwHYOoveud>K&Z{dKrVXA>&U2eY0k^#b$Qe!mRia`az*{`su|NyH@o37*+8ZPhL);|3B zehM$PSXOjS`%x|#j1YYw)j+KnGn3{5j7iI+J?C>KU9`V)O9;^rsVcB%1VbQ49JE5q zD89$ABkeZn(t<&rl`NApC?U@u>ZOSB_0^EG%;tt6=dtUJpIQF{v{DR|%6=NRa-@nC*|~Z?L+S=tON~ZCv7Ju4&2L_23P>=~fT*pw z;P(k98gUxeuwfp0A^@%CZi)c03U*q3faG_3TNnT0W(OH!DLM0SMY|y-)a|Yomuyjv z8=l$)_t$wvj25+rG-}!4@*KDp;BuzuLKidYw5CDJtN`9Q3~B(#t~WyhL^ceRMS|bq z>EybFQK;iuD6re#TwPr!0%{E^al^J8`_61~4wSKI+TE%LZ9vjy3A^I&Ai*haW~LB|0!K}f~7 zM=TceA)w_VF7ASC62NAou!%l2k7nfDm3fxjl)csv(u-x>(&!^mX`5?QbZ7c0K%18s z>}FHN7Ta9)dd<_tvZ4ky4XzG1Ub%xJn~mp01(Gxj2|zVU50F0Jg}y6IO(8|o+KZtg zaI3Qhe74U-)76)cKVD*T*s+Q< zV}zzg4$-@Y*fRM0;-d1Vla)eKKYGRr-Yg~AI(f)$Gv039dDlHp#*ys`YPjL+>|Nvz zw)@=OFW4oA)5SSe;>}3RIE)35p_rr|rgii7s~sQOZ6dH;WEeW!-+pwjUcJpeHS(CG zb(q0y*-Px%F(z$jxm4r?(wwiJ9UNpW9b9TKtb&o`BDI}BHZQR?M`4~fsvNXhoTb$Z zY{tro5mf-mj6x%jre+1h-Sv7u<;|{lqA5nv+^~R<+bw&+q?Zz z6--<+waP@Y>V>2!ay6$p-dQ>44KS+Zg||IzrM{NULR(TdFk(zJa6qVwbzZ6%u}?$i zP!f5RwuYNAFfeWA)5KRWWvvq9&1N^iTHOGr{uT3sv~IVt@k3Lh0CS6&ednw5B98XZdecGoe?=HZPcN8FGF}eLhS+v z${M3%!b;OnV85k+ktb~iPz@*vgaBXxrX2ai!C9u3-qZ%*+$c@NT-2i62UG=RhrS}4 zQeafAMq^s5ufpIQI{aUTF%UDM3LpZQ0keVkh)@>s3`FESivXzOMZB%%MYvO$@Z`oD zkK7hsriR@HGs3jSq>T#%7NzspF}2eA(*+wEHqWZWxL=eb&Q&@rYlBMUs6)mTQsOX6 z8{AoTgRrd^myo$B2oC`p39e?+%z~|jV@IVCEtQ>z)l7R>D6;n?YSzemxwLT@K-#*v z0U~3oM(9x0%1RU%nXNG4pMjyZhFU9;^OBpz*avI5NktSItVndsD#XmH{Je3(SS$Fz zENZF%jfk3oV{?J(8lXmcR__HoGt~-;2@RzwXbo%%OuprY3}VCpL|Pmzc}5o;AV~qI z7^HODwrHoOL9$3gkg8>ItgSkMq#0cSpBFdS!g$Gno6ifBsb=TNM`uXvk|S0RjPn z){F^JOR=?pnRni)6fqz~Byvn(NRGq+oEBk33FteWO6;LTIlr z2=&yw14zCt7QCu~^I8F{s%La6n$2%}*W?6|;m=}02x>)IBoy?eAn&*p1Mp%C1{KFj zO4Xc$6~a1qL`-CASj8N(DpFuA7+^Ib9=B|W)dE;Bn*}^C zNZ#dU(yUpq3O<`7tq_D@Zse&aan7;$;C)@5T*E#v1y9nz_Z?_;fEtA9F$k zcfd`+^>C^nFflO@0!C7Gw^Tm;Z$I<8ZPr@!@I09vBh;SEWJ#@YaES;23aCT;ybXmxSM9y_$u>vuKQh?D*3Vv19AF%fG0e!``Oh9=tOba;gf=yLz zB^Z>YIDpAqcD_JeAqI*?Xtknc?s>72>a%HR5yTl20iZT@5y^fYAoz+Bk7#vJ1z|!F zHP4!(0%7bg2 z0+WIvh!~<7N&+t#1E4B8%M!__DP<{Hhyb$@l6O+FnL(P2EM+8^V^XsMN|1|Lh72TX zB^O{&Ex?*HvZ)dZVCI4#hU5q}CjrUeAPWE>5F!Z@AR-VLfB}*kS{6W6CPqX+W&|@~ zMkeFnM1eqw&_I)s;}XRT5DbaPSt{OBL6{cIQvqMq-MXvH*Df@Uh?E^7lk?7pKny^H z-USDOC{(}^Vi9F7X+iDjo!>fnO_Dl$SrE}25*O`RlA6AD%U$vH_;$~a94 zq)>xXVweC-RLP+l1)ip+Mq?w_kV8>3a3G@S0uzF%HtdUL1_MSLi$fqHuw<+$lcU5S1+pgb zSP)1Gh#-1RnF?88l48J`6et5HkA(=cB+Z7bpvoR33ou}4YC%&`RZu9YAhJhQL_tv| z5g;W~L=sI?aZFK^JbOe11tb(O%|=K>CYDQfn1u+*Kp73P0g5>YiUy{lKul<=fPjFA zQV`8h&4>Za5C8}X?LPrQ3DmJeRc}R+2{ZgBTCx~b zRVkPk=ea~RFmoPr5p^D{2BsiLW)8|6RY}bw#Kb@b21Qi^C9&i%aLSb`2N2SL<{dDR zf%BrX0~8}=Q6y4BW-|qdOELokTtr~ZSt+S7fU2T%-UZKyniZX9aOxbW7+^tQMo=i~2qA)IM1)CM0360bNXQ|T zh17_hVJV6n@}gupg8>+5fs9}UY=KxD7#1Z{M;J?S0nB+LFw`uh1q*o(r3TilCZik&Hx01f*o528?13#h3^XfXFEzm=OSi zSwR6q05C*UGgCkVKt?V~V1QtMLO^DqhGYN;UbiLfRL zET}4^W@K5j=7Of|gC}!TvYARuNL05`$pJblF3OXEccO)YYMTp_Ix%8U!+>V0fCM1Y zc~sRDt@fhmJQd?uj0}LZIA=LyDNwRHA}L~36~mH539}(F7;(^18JRR-0c5mHo{?)2 z1qDZF2xeLg7!ft4qC{q3nlgI=H-n?(d@>aza%$onfhZuc!=go0kRT8K<05lUd1p_1m0Aot<|1$$XLI5BDGBqa#VxVZI zYKB>j2mo_YFhfK#06;W!CZbY`DIx$DQDrh>&Z?%#v}yot0mquNHxVF`2x!OzSZgkp z02NJ%5m=O~T5L)Rf=p}*S`d;HMG&!s4zjS20-A_LHDk$DASSTPfDzge8 zY6X%-1x(abiRz40iUOfhEoMNVqN&M9Ow7c{IRtV+V^rrWN6tIVsbn*3x`t*l zL1&UV5JOR7B4$*x?2rR#V@n1C5H)laWFiq4DgyVaam|AmkXyEN3bfm?SHc zMS^*#; z`x78W1XTk-L{$SdFi=qiKqLfJ11UKrH85fz&uC^)I~iwDP(Ygu05LKuks?b(RWmSO zdC7|6!J~)*ARz);Q9)KA&;kww2*3mt0nn29?{Kl5d*L*lp`>KDQW@l)eylgDIB z3Wea#A_3DP8Ie^QGAx;DD$8W938gr4jAno_i99e>jb?BpUInz61f+D3zF`3n4UI?0 zX;Nocxp@#~L-i?7BDGHmY!2HwVriFoq1IcHP&deH)zA)*vu zD=C|Iq?yPfp$Z_1X-wdqWk3hyG(&*%0v?o{Au}W3xdIIyD5%v|id724jzCQcI8;+m zQz2qBKr0I5on--L0ugaYY5<@h%C2OG@F$9ym_W=JM34YX00fA{$e|W7LX#{CIpv%U z$ss$(1|Z6uC6QARGN?Qw5zt^BjD#s^R*#N|H2d0Tq@qd=P}Mm@XGIe^zZCQ&3~H7N zR5cN^7#8p-si>-%05Lfc-^h>%2sH@?XGFoLNM=ZC&H*U^5<7BMWz!T>K_oVYT#93j z238bJ9h+rkPsBrV4I>mN>X3@5A(Px-difbDJOBx3TlkZ8p)U;XKs*8!5{{& z8N8w8l+{5d5h_-(NfvM_Y^sD%l>`n|DlqfD$ z`hHELNJK;DeZ`hg=Rug+uiC86a}?inK})H4Ipj*~%5qwkgVn8R-KBMvlA@t5rN}6Y z_>K-A54(2NGCFT13sp`Q>M!aAnt43N&^kLHi?x0pvf~6zl?5QjV&HXw3iG&dA3zGC zW@;Pfmz+r#@oh_m9FA%+Ry~&NAghH$0acCaN@5(N#*ubw0$)lh+%&#`atN|4)L_xV zGiio^lDKhNvMH)b7L^1gD^f$61rZ3q3LqLlQAMh$Xc4uJP;z0fhN3A-6#}3$#Ti^k z#h9I|f)#Q(b57XA!{ed7Tpc8)f@I@htJ=`}cvpP0^;vw!;<|ALFJc*mq*PU+7K9ME z%mY$Cl{16pdsGQ zW2)A!4C4Z!b|t%zCUwEFrI^U;T=HC{(xTp#X)daDgTUz6RY5bL4-g~x zI_F|+Ie?fC8Xc08DN&DcD9-zt0|-=ASYk>Ld`2ZMP^&DnItF$CR;MvV?bkNPz)YU= z)L4|dMsvRe^%t(Cx^NrPoD1ZLNc@zMGQf%9F&Flk>imbfyi?19q)CypQtg)o$+=LOMlDN*mJlVH2{{wa#;HD^Z4$+91a{d5oC=iZe0IJZIgsIabI7=Ll?~RcpmnuJ_|eB~A)P ztlnucB9}Ce^Kq>65FL{b^7Np--*;6*Q&kttOGH8RPUUpYE%soN5;|Vu>JrM*1`q?T zjm^sVE)wQEoTc8Z zofQHoWhyE_gqnd<%vP6W!Qj9-1=H!sg0jqq1lt~FlsGto;cSTi9pUx{CuooyTZ{pt zXvhhxx=O^J3s#hcnhZJmT1(R}klPSUi&)bgAKKlLTXJzJ+~N!hNK~TMEiVf<-iDZU zHq!;diXUf|y5n+AVbv4-iSQ;!K3aoI?MYaP@-)pnoprOpdD+(U46IzAht)RS&aTND zyMK@uy{QWphuQVLn|X-Ux<;3!=3;p%tNjH|bFc_8k#J}EoVIIy|4_EOx~`@PD-JLz zvuMc2k$XQ(RojYdWkCS3&P4$aipq7FN=Qouam<#(Qnv!)*g#rdq+#_v&k~A~pt!ED ziWch)-p#nbc1gjJ$5gc#QHQG(i>n+`5QXF1wN{DMWh{#%?)-FB3XM9o@cZQYu+;*J7R;XG;PXOBW1am@@Cj z(?pdI0TJ05cXFOn@E8+UPQg;rQ0JjgM_!gBo>MGp`FSf58b`rUp60yi^0}|X$ujxM z=0yx$=lbKkbPci$r8JEni>soun$DOR|0geQ>oZh{2rB9^#;Ht^`^)XT6!u*WVnpi@ z($Z9O?wUmg-&bzRmP_YP#b(;AN|{sB=5wpSE02%+__3vtn949J`BFTt3Wo#l+)1zWTIV&WH}j zrK$_{9hpqjGF392Gxp8^UqGP0t8(BvkD3H9Ex__|;)_-At~#BBxoT1=v98nIJE?ud z%M0&v7VH{RUePc|uTpu!RH#iyV*Ri*oh4V;6Fc_cb-`8^>XjOs)Vitk4diiXSL|_& zbt8$$)rwL8RK2gIctDe4s8s8inbEO=LcnG6gy39Ru*W&OsH$~7l0gIo1yepe_ zWz@0RQLt(9kipjLF2Lit^T3*`+ESXiSI7ok$<(>L4p6rUKE@2}$#ZZi*wh~ zSDaJTL42sTp3Q9>EVx-`Lf1n{ktH~6j1ttFfTGs}c~lV!^{Uchw4{oeD}t-@$FarT zvD)wPcs1 z&G`gH9pQ4oooF0GogS&LD~G|J?(!-S!>Q(pI*M_*`%v~P z@y-^l^X-VP3aj{j>2KQeBZj&}35+2}1IMJ-nVXR+!JydH`BbXbhZu`_@0T%$lza#s*7XW&$@43poxn4@5PKo`86 zV+%&}lTb#iLR_Ro&2fgRLAJSV97b*pp^)p~IHH{2`z<^rYP+cF9nQ(&ygZ)*I<*Yp1R%UyK6n`w=qMorTx zkwa@5zpC=%iJQu|9W4?MPtaDp-14hyXErqsq^ek>O5!@2x)g+7jHe2PCjefH%R=3KW`7@i{eib{)5 z?_z4WZ9(s!PSfW3Wu27BxAPEM+l43DuU))*lJho{(RO_!oIuDRa1l3uJoBnk36%qO zI!gnnN!Efj8aO|guWb?cY~fXFLB`L1n*+!=cuz~e5z{3rDl`&&%4W{#I+~J;xT?ld zJS6Pj{WSwzng8C5Ag@YbCyf@bM9ldjglvcKle}GB3zO%tJ8FAv{+ zH>_V?J?ozCif3~mrmW|4+lSMFX*`$B&b+tW&{zSwD$C)CZZ`D|yt(Zfmk+ew`KR3B ztiDgvX-Z*J1F?Xehl2Y3kG^a5?Y&#!|9G>)&|onUa)cl*D|Kaw%eu>1iyIl#7gdJFrYlj3w1k4@+1!#S_kyN#A1HWM^9!s=#z z_)$LTAUvMB=N$l!j|b`dDh-S5I+{z}k^^0|4^Q-V zZy57!i!o72Qi!wL^n0hrr@Eh)I6eGuy1w38&Mq|TX~=;!M|Q(K!nXE??egOXx%%Q| zRg&@)rfPe9z~kF=y>=a?Rnt3C3M@evSW?DyHxK&oFm}(Hrqu=_H33HjijPavuIllG zP69V>xErAQvY7~^QtzaJGA(}Xo%eI~NtSxT^)8(!Tn6-^wmF$R zJ-Y25SKBrOPu5_OoPa`OK01^{WX--A#hfD!!xR~-Ce3VviINZAK_13MIe4Fkrs_M$ zg2g-1BODv;M1B&ljpVU~Cw{HI1LM21@h%tGUFDCDZ}ZiT=y{N(-dD*h zTA8Wdb^&ZkzKI2VOEFgK{CZrs(^F}1Dnuc$StCL<4x;JB#t*T$Hn=k8 z>3*TG-G(XzZaPb2OjGoGH_onV`fy%!4jIxgmrq{hw-5Q{t3DnV<|+03@!jeCZoIl! zt^MWBf7JD-{^4jhn*dM0L|m=BcixEIk?P{(!+^Vs&Ha!P!Q`5-EbR)|QJ&6IDs^4# z>WchzHQmjV)cd_3$RSor7k>6r5yZ4eTBw>AB_A~VZoW@$Sti^$nPWUYS@*}wT?l6R4Ba=Kzvk5c9Vil-2=90-{$&PFk;TjXtJdGoD zcA9N97Avv%<>;$6Et_^Y(7q#H%IbQ2`yg>%>xa~>Z&Vd4mW1b|-Qg}K?)UocE)7ro z&*2$U%8RokM+KY>2K0cf-cA;(&;QhZ0pKPjii-&R7 zR4bFy`P|iOigO_X@}5Abt?Jst1Dr;Z;c2_O+VFBbe>_f2_tme0n3lyJ{2jm-&ghZ^XJ!4=G)|ClCA?pD-!yG;X;4@Ik#OyQr+};an(-6 zbT~|7TYn80>QGAU5XP+OIJ}uQ4OWh}8L+IcnpW-(Q1vxA+&$)|GPcMsHuJJ*wXb0m zK)!gE=Q*;RPw4XP<1g>4-F~Ad;Z;2ArqvH6_gksxd^#OUdH!PUnCGzEe^;C<#Z__s zz=z!3?B(&eDj#Xr_q9y1%~HILP(twst6jJ0&|d|r^-+MC6x^TAh*6LQ`mP`L7S z$TeJ~5;|Mr=}dl!8M`20o+~2FM$i81ub(zoU&!sl{Zp*>8kteW=6HO_R7~#mlXb_! zzFE!ltiB2^@%YGFxicHx%bgKCZm&-BlHB7%SlNVO-!^(b1Q~N*6V83*9G&N?Y4LQ@ zx+#Oz9e|LVpQh>l$*5|Z3et_*Je0cWeevt&X?Xqmy?^%ndMn3R)3tw;(B`$#u==%2%ITwfj!-|_mBEQMD~BM~Hr*WOWwpJ228U() z{Ke3%hJ1QBXG*xOJXg=Uxxe1i;UB(r`O`Ayd~Cj4Z7_y)?NeymzG6ylvvH@>UAtdZ zhq@+-t37}Hikou$>FrjRR*hEu>Aq{)n5Lnit8ug5hV^RCPiJl~QdB78^s2&TmKWwK zM=JB}Vb=Cloqv3|Z+~?m&bPU{8DEv=U-|RT=TJ(+{pVlr$<6l%DG>Y*!x!6|{ts&>zsqiw2j2+#9z;oU_V(r%e@>k@6@@kDVPljYNF{_;f|?{Dd)4*%DOdH2Qhbv{*l&L+FHefUTn>BY-wnU1A?_SwcEPDQ7@ z?d()dM|!?;5jQslmV15vbrWQo2lAk<_-em*F)CUn7-OD!WURD*@x1GM%y)^}E#|ZU zbSPbQ;c|FJ$JlFj14Z9frw^M~^nO0+L5=x5x32{nZ|Wnhv_81 zsw{JES|QuV$=x*3Z7yf3YiC*t1q8jQZ{&mQ@R%HRa>%teDO7Z+T&Y?p7vChyxQ!ha zYA>3!S)G`CdYDQ{tFFXr^j09$<^KIfrgKTZ{E+BM( zqJ9;h2IwH$edAVn^i|D>UDxb}ci%mn^ZsxCi%pHyIOGuGF<$+)$^ZNR`VX=_oi5hv zZnvjh(No`t``_QWJ-bgYZm#^8KdaQLFrN>`w_cp8NOaBzwTg>Z{*z?QZ|@_eo1>GgDmazGvDlYQr|F?k57G57Js>B>|AFLub&*2#}BfB zb^l@Tf7AZ`|9tu4?#Jq@w@>%)-OGb~ad`oRr-R1io~GUh0^HB%eZHtIbm`RQEZFo* zF1HXXJwg}hT zmCDKQw)qeC`Q-(lu9O{CIsbT$C70b*H7wfuh9w?xlfM7`cR&3xUH$5}zXHy=sgmJk z^)%cU^{zR+c_&S9SF7ron?C+?WOx4&zxlkYHmO2r*R>Uj<6KSwX}ajEcYpX_9+Y>l zzpWnMyja6O&L8)8X}quAy?%4t5H;1?m!E&}!{5zM|L<`3+wpYqvTeHBP39pl?WP(> zmmfnNAx=;=avHCmeYzXZzJL9F?(0Y$ob!ns=6JaJHD6q}L%culSNX$t|M2mAp6ev* z?)Jk9&W|wv)B8{U_KW^B;?<|m>Q8*Ud;55{tFP+&*XP%Vn_piP{O_Cnu0b((I^}qb z_{j~&-#^W}ufAFxfBGe_KiluaEPeIe5&O+mH7@6b-D(q_9_|jC=Fcyu|8su6YSuP` zx3M%$IFql@@_Cd^KipmS9WDod+24LQ*XtYm@CL75wCCvE+jBE7t8l05D$eI6Y?_Xu zEdsoJxNlY=Qg_k({CmD?bBYVpF#9hqKYlMOJln30u-zip&iQhlI5@r=2iUZJi*{Bw zYZsPMwJo^rhd+#U7ee#lBgCJ7x_|cSFMs3T9GW#(cehX4$epa8zXo45qWk#8RWnYN183v-cuRYagm-V^YPXxy z882RLK`w{8PLlYl`r9`@jq>pQalPAL?6%rfIp3cn<@@3ER$ut^4TVZ1%B=;`o}50gFn`X*%BUUixmS*`tYDCOa)@$-{;JHzE_ zXOF);QeS>~EMMMq&#u~PEW7&tu9%+^fvj)#c-HgOT(oUveDL)`$R2|;p3XURM*4+mQBhYugZCtvt!*7P_^ zI!3#C!P)b6bN=C7y~73DT(r7s!ugl`%Wpo-Kfb@ddh@M*`O4i!_xMkD>uWlnpFa6F z->hPZ)%Ee`TYBE#9wp)aiU$05$;l#q-F$q%IET%Ccd>FP8ZPkYr>A>azucXEd`uQZspR$$!)r3FjpQANRG>cTBuWQcl*tk{m1k4`29cM z{8#JqF`pKFbFuH>ufj_whgcAAdY;UWEPgmvkzDqQ`u^ z^Oaw9bom**j-Q3njB?gc&LcO_r1pkJmD2AwdBCgb1MXIjk}~LZxiAjz5plB*vUS|F^4osy6mma=@w_O5>*EkN^H3KTNKF-X3`O)n9y$ zk=1idOzEV}+STh7{qSyFJ?{@oy%~Rc2habybqpEp?yI#hBoKAJUfz6se_Jju zpY7wj*E9F~>v}A0*9Ify-CCA>K3mte(-~6GdG6^XBIZ}{Fz>JSEKk3@ewf8=KmA&c zG0>9B#g#>>f>~8RlsD7v{Mz;|mS@kJEHC}fQ9gwLhs(dJ zha*-iw|d4O|7g$PVLqHb+pS7S?uGyOZfL{19P1S>0xn&AfxrBm*RR(6&~CwXm%r{` z7~Yq?y|ev}9`j)?>)Ne#nU0V1w9xnZSl@n}v@0)OZGL*Pu8Y6WfG;oFrP$&3^<{qh zPv0Gnv$SE=m!F1R60k59P9ab9f5eS6hkjpq??D(N^fZ2t2VEwFyLU4fuiBft&ue*#G0Z7m@lW68O<2CjE4M<&jr_+!>1O=?`}piL zShQw zGw``v5Tc{1I@gWz^zrskT>JdX!s>7tG3Vi!j^`+=uK8pOIomWESCyBux?C29{_ZWD$l>6xT^4)<>|=Hc`n_nS6%7n=|9gZ3r%7mxS) z$V>2qA>q^+m< zUp{{ScJtL*R?qe?@ag@gT`~bzUk*h-Ly(|SDoha z>htyj|M;d`yFSKTM4F3-C}A6er+j4RVF z^7;zr-yoO{j*Q|pZ?h2+}@sg`pe($|LJ?Ux=Qc-7yJ6*r%$)Xs>O@& z`F{o&mi+$_1YbRpr3qqKKYzUoACW$@Y*)3J9kZS*f)q&*dJy=keEtfu3nbUNfS!De~G#-bcvbs#tHZni+@4?C0-&F7Z`?@s7?y$Bg zRKPH>Ojj`_VcrnqtXO5F%PN#v=UO}Z5=VIEk|^rf;Q*EuJTmQMn@C8rdnk3;`4~_A zI5!-}=#=Jwv_M02b9Y|{^XbE7xn8yyfw6P!s-ot3#Ggvr9FR)dV|n<3-`vGt{grA3 ztVGdzeOSBf)9(136gy!%gOjUk^UQ5~NKIP~J7SYPU%F>bx->>zR@62h1QZtQSSRbH zuq~%bpy<l!@mgKwMn|jcBp{ z=L111$bx)D+AM3iL3)H98VGEOte_+N+_1*}ZlhoPPe=Oh=2J@yR^PU481PhhdfDh* z6JF&5Bj0!~R@>zopAQC9Fx0DX;9+UKnh+CZ`^ABYUCUo}wPlUUHRJJ38Rf(Ib5~S} zHZ%~BfKiJw?v0}=yZmnJJUg%R!wEKunJJXhcaydUUFXbMl0sZ3TZ5^IMa8M+`j+hj zHuS7wGkNCYPh$9Dc6&vH?r@I9c&MEoohAO^0XK$qD@P_A40Tvzm1M|bVcohmf_;IF zA?(Xtxk4uwdbCO5U$-sLr5t&>_1gOQ9z1`3Oyl@*Ut?!((PE99sm-t6D^^v(n~7jZ zl-9|Y=6wV5wkMEDijc|DyerC%4QyE|Ez7%Nzwt+9=bt=}?w`c()}t?8oqF=-y?lOT z;hA2PX>Z`vnnI&ogR!-aQc$E#*Df1vo07@vzw`2`a(eox~{9`{-N{(v=6&BtC2$5%-%Ogf8%}pukT~{_Aif~JFF^! zsKkUexvHa^kGo(7a&8V0-&Lbi&(L+krEb@C{0P1{uYQarN@j13{jLB+by?|*bPpyB zu2$pEN0hyzW2e}txn0H?q6RjhiHoPU5$^CAdbl^nYIR!~3^wQ}fN?y%Xukd7asGC; zzH9odvk#lg>gcG=13ka_*bQdWx|+T6KHL%e;CR$kw-3}E{dWKC&pvDK<;YllyUvL* zKRWT#&CF2&xq58aIIyoBVVz2|J==Em5S*Z=Kn_tjTl*0;htd!2y3 zRk{ZHIM;nkBr4q}Y&0ad-{x4$#NlM(Z9d%cqu0awLCmM7>C|CmPW5p0;kNnWsM!P; zr>yEiB-eX)A~I#$8b*Y4$YMh99Gp&@Jnfmei5g4aZmof)Crh{1 zLIYI=kIzogD%J?!Ey3}K6IgA!*`SRcVvLH7dNY#Rz*Bt_7^qKD&TUICKCGw-6}DX} znwldG=p>V#DOkU}6Il7|DM{GLGrZb&WD;>mDZV0&O6!^s#ni`yE zldGB*&Z|NB2RQw?b#7*U^J6}FIZv}inc#N&>4Wf^9^xu$A=7nBQ0nQ8VGr2JTaEDV z`v5#>ug6VU#D)dwF5hMJ3?ywek3|_b8a17q?Q&u9ofD^QV9OgV<#I zx-_1BhByYdmk}NO4D$@Bb5ND;*oqoma}VLPXmVQwbINi+t^VMdUffE&4p+q@72R+K zwSjJ(1UKLN&u9DG#oQv2YI;FW4~t1TdmU`{;l7+)Ot$y?G@0A$@5mVBEwHr(G}b|b z>pOh}gQEjww^}FDWc=(LjzC-*gEly)seckL^tveb5iaLrpH)egF`~@8dEmRJWji`; zlrWBKrom4|uhzA)ah6!nu(f9g=~{mHLyeLC(PgHu+mkx)@#xis;-)Oz$!1mU_17-KDjUV?!PbNU6iF6l@N|rIF!VBOw@6Dr-uCF!@II9k*57hw%6B>J$D!X?kx$oXkK58i>Hp3E~C!Tfxe)d zyV7+%CW%#k+zqU*Iy;q4m>{XJ0>V5u^q_vkn(*>n(BJnQ}1k~!uQKgdu7@2Q^9O&&eeRY5}RyAF$mml&z&b7lc^RfU$!ZGtVk}$am(XuMg>N^cmmZ--OWRYpW{9KQr@+0`_bi z?NdAz>To*y(thsBXrEV?5&qdTor5G4wWc6%MbAegy@x!l223lkA=i1nuZiXfFgwUT z?E$Gve`MlH?}Cwp(5#yv{GcD(!=Zs_vF~4r8ViFGXHpp>dE>W5rz5B*5gt|fZvA0k z#OY({*;^n%feJc-uw(Jmed&Le2J#`?Z*LA*tF8_UrfS^?iG*N*my z9pG%K`6OIfWAy&xqj7pvjt8I3vb}Jt-ssj(>pFT^*MKlPaQJd3MpW!Sj!x&8xV}5m z(o860+E`}4F2}$63;&z$AAZp9Zq?$?UV5|ru2yaD8Cdj{6o8CRsXP8lvm=JX)MV(O zYReC25NfdNl&$r%k!o8}wUy0^yp-*`%|pEAhG?-p`ucXe0}km||NQB1f8`zyqsJ}z z`M)sC3N|@$bVm5esACbRI#5*WchZrwoo-fr`sSdC$5X8rT+2dCRbas#?R4QL_}y?~`bkBYn_^;kMw8NPG+EJf)%NliWB9a&0=c z4HUczxf3{XSB#tmDHKJgsHB?K2X3VpgMgrJQ>L5cHXIlO&D6S^m1~%Hk(&?tH0eD( zW2WKFtTqMibQ2Tz+>EZ;Di7O18W5Y9k=bB7OM5{?$=;6RNpq>s?Y<=F}>UQM;(wV@8f` z0vo0(&xFXL**5BUs@Yz%Zb13bMdq$#um+kt7g32_r@+H=iyCTdFd;m{0ICM9K|qIR z)DiO47pTPukL5pSSo18+=y}~Z<4F@%V18lob}1c8%O6uFpdc7CjRhlfcU?l;8+`#s z{_@-JpJrYDgBo}Dop~C>9YMBf>>s=!>qNY8>h0uZTQ&wVAWag`@8d#H(?yk%U853sk!9Bz zF6XA!K%e#6-17k7O7(!`MerO%lK?v?yLOD?M>H^%X9*oOU7a)*5uLP%)-bFgQ0hRl z^t^=DWWKsar-K7y=0MsO$|xx4`iA&cp+gisE$jX3Zl{^5w*&fDIk#xRj~F$%tITG% zzHNn&5U;9{)8l|eVOsH)7;3ZkpW8BA*9vlhAdrqOMQK>$>3*Lz91qX>+|tXwt882H zvNT7YClbm_*Y5%1LU41)TU!+tCkT4Fomb8oj;kg;v5`0I+TQFVFm{mwN{MhQrq6~& z6`?YhQflR=doRD!K5GHji&h29u*P{B<$aEI--r8_u#G`JXhUqVISLbKBa(H_cpwoW zVGLbu`A?Vl#jDj!yt{;px6jm5EL^pB97ok{g*^`duA8oeypX7_p%H#9M!F%P>6(X= zF&!~@x5|e{e7Bh#ADF0H?c5Vr!v75q76C5PJ)iQ}difgB;{H$nJpA_ukMu%+*a^#M zx5)7po|bGeiQ`OYfSDEyc~7K46=Du3^S(1pgSS{inn=qQ@^$W9xI8cI(NL{CuMI6* z_hR|b=hi^+(Ny1WurrH(Dzs|C7f=79(1!w3JRR#pskT@6mJn?mp@$01C4OjtXD9Em1(@kb7eU-LYq3ZZ=_RIF_!< z=xIY{gIpmMhiur^eSZ_Z`SY`?QVnrTW1K}}k>+7M>S)}_mkrSq;Ud(~!njrbu$O<$7{ZKUI&+9H9?w{f?uMl+R3 z&2vQoWTm78UhmRgwMl8uMUs?R=8mD|41BFFr6v?JFpQu`OAV>E;|*{OU8}2Jw!P?? zV^r+a$@lRlZYeQjR$5FN#GHG^a$bSnB#K>q`}L&imeeAWiE8hM0qWE$tAXs z43Ow~-6A+M(|R%}E`Qyg{>3=#X5%hz4q1AC_4stV76KLeU;pcqJiDCHC~^jB`y-?X zbpm0_4BOe!@ys{#c$;myL7=MLJ`4O#m1{aUKE|%KNk+#aOEWQ=O>o_E0Y>o!Y~o_Z(E!h4kI7Y=KEYQKu!gOab9yg3FL5o8PI*Su_uC3p>rdHZ`@P$NBpqLP+z}87*dV`bK^3ky zYc!IPF|t!|{MmeJlc#DpM52}q1J1Q@SMc)bF7lEKyH2+2XA_TU48xhX{{);FW_H(( z4)pOUar?U-Ec)5TMO)V7g~-3i+l|W%%e`nS=|9Z44c$NFZ`EUj#Zuk(w4)CR;vz(aGSSmI#Zq2_0!p+ zJ+U z>ip(E{$JwcpH8yk*&Dx_WH#{!(i+C;U11HJFb$h8hFIQKy?Wf_is;$Oa+&eCwO+qH zr%U}}BsZm&e7M;Y>zFSb{TE4&ll<<(gE)UXq6mlIm6kQ|-68#s*I!wcNz!E^&Ia1m z{!T(?`uRowus5w}TMkUBGBr0I@Ou<%v5gwPG^|nHTLaK{k{9tR)qaNOMHuR1n=jt7 zUKIN!UYPJx_e?9n@^He*HV!5~P-1)AHpA0<9y%FMTk#za$@{b%cdP+M z-?}kA`w!LH=`>5}x))Y0!2&_s5wO9y%_M3xvI?~O=rf1hU8<>F<|PO`q?;-0m~R=|+R#Bvv(E991geX-SFp#1 zIrf^{?%24^9aUi^8YdI+9vP)5!g6TE;fFUbob0aj&$`F5HV0GPU^OzQC`WqRIJDe< zh=qM}sNK-kJnYl?|8jVL^0(9dkE|)QrPO4WlEY&O_w8hguJ2mw`@`nj`-M{d;(nXv zx<5f>AJ0yo@&CAY#+O0zSiL^X{*axLuP-m24X`=1c~n#9?%UggLsx$HhX`nbo&TG& zPoKzz=Xlntn?LXW%im{c{DzhV8NT~E9Qp6R%}+i{?z)BzjdHi-lL7O_Ly^eQ%-&>+ zDHUoJ;)5d>=gGkoELB}L0-2g@IniyoESU{`qXTucTGk@j6966#7WUi&X>;|UV{FpM z2Lk&5SjBi@+WQpETwdyD>5e(3QObyFCg1sb{FA6_cmCA@YXlW_0h85_-^TOufXl-F zvlBF8M%P2Vr5o>+`_wD?R$D-o75xm)@CER(g5=gyO2ydpY1u(^pYsz4+YE!k>t;c_xf8 zwqBBZ6EaO>I^c#A{&9CW)XXg!ib7zOmR;N({rr43a`wog)DTX|qmSlmce~0ts@ER# z#(bUWR+m&3-o{~7u^q9dPLKL)0S}zE4-Ut%kW~a-sB~G0c5yVUOI&lyh8FGst^|%# zFOWsoWSsX94yPcgG3tRmI?xzun@?gkC$-^ew9ezUM81L2^#0=jhqpHed_8%q9_y%7 zqXSJA6x5Ysk7}q_nJAui!Y-Z|{d|O*vIQrnzt|3@eDTHRDF$;SgwlaYirt5%D9WF9 zfbJzX?5E}VRI^T-Tr>JClmF`EaF{;j2WQhJ3iFOV*LuoU>E#VW!P(Jhwy?qF{XMWQ z9IgJC4~=yBbw%yRrFR0dYQR2io&W~z^(5WMs}JE>UZlV?E)$6$>Jb~Z&DiJb{3_>N zjhN=W5OdtLfV3H^!&>9@zTdAx6pSc9iY!R@F?4*09eak`?FIto=rrd^L=r!6nQ4H$ zr?$6sEh6)#86M*O4}h7EalMMYDK9FG4K}0*wpPn*{ zOkdt4)f3mfDy^gNu4%?7ZkDIKUZsZ}W*$Er)!S7qK}&e0jk zrh0>49>aZdw=Egf(nmgIMo)FBI4~@Qy0Rg)-#2f-1VR?ez$lHpZu3>{hN0}I!9ljwDFoQZJEw^b$9u$I{fV7m-XFE z5P3g)ad$U(QR@M1n*uKn^nc^Bwfi@(hRs%F0Fn4=SeLD(u9rRVJ1;?Pqn9%Tg*|sSVsdjF5=z{g8e{7brevH;}bn^VI z*F0vH-0T}4JbsKBTFd*08sXa1?l=A4>6>GVAb!7nirvqKX^!Y(T8C{L$2NHBWUDSI zsyr0MY{fRo4%%#wMZ@8mp456LH&)M_OW){b$tpXvC+Vz zRSG6^-ScY8HGifhWv?BXjfuC*4~C9~B%T+T9Od!04aWBEKY3q$rfc0(-U|c?aBU|z zA={sRyuU&Az?K(hBzQia8rt`*38Oy(4i`S9@#ADv-2D(A9l&e^fLQLCE_39;lqblF zYYh|L#f5l)!e}^f9W0uDGh5hp55hV$)ZhSck9N`CL@A%yVfu733@+xh2#bEZU+*9A z(V-@UKM%xXwU}CXAIYJ+eGgB%tN6%)W?49mvKF?XQ){60RV__dcKPbkkCKi{)G;ia z6DBbiJy#u-#?i}SE^ua%9roMY8`M@{FYJ9KLkn7kW5cq9aKwvb^WD}xd8zC^^+%>s zc%D_tPB|zU8Tyt_g%tHpBUMpnmEn4xLFcG_Y}#mT>4lgeHRv8Ut28maX)Na zCJvajzsw5WYDJgw!bAiqdlo2*UtTYJYw#345bULg=^y@2dGr=mRpkP|5d;z45ygwK zHhz81_oFe6{pZI=Z>XaeeWNkUIBxYfcG|~EMt2>3$OHTPa1j7tPwZodR~RzZ?|;}dP6%cM8PKmt2S zd;AFciR&>Lg=;U!-aiPv)S|X43Q#jmx%!rn5(wFpPxp@`^OCr~pDYX$#&=uW^_w4V zc(pIOs)hq^zp{@{KXTq1=_&zQD;--OjRT$9HuwzA(YxP$GQsLTH=FvZKlC+kG=Pob z)RsmEbQ3qwmn1E7uez-@%iMoLR>#{CcgDyBSXU)a`lB&j-r-^3CcCsMD$|(jq}0d} z+FXD0>rTNkfrQx}*mQ2U`ji@)He@}PVL%L$IvO2&THoum1aLg9tINn&C=M&DGIW`Q z${9{8fr+NI(Jn^>0>g178icDV>%dHq~X1hVZtD2CQJbk{w6sNstfkvwSg z!=|+kR3ntHj+&7HUOO;x^nGkYF~v_2*7;^vLZF}cw$*Q+)U+Lxd3^u-r-SI-$=oIR zz#t9YR#j>Gw9^^mI;zJ0$dvP$Fee=|JS zsegCRN2BV~ojg1pIV7{Hnnn7lFlDf>;hIQ|>qsGJPP=I79QK1!a_(frt<1_&FV zjN=0Ws_wd4uaXJdE`ztDc;%LnN+Zp7o!gCVb?MbVe_EWg3>qlf@0)1!sW@;n%T!vO z0Xop1E2Y`U>1CBDd%u4BCXmEzMXnhO+tfR5P77yoHUWOVPc8MZ-Ls)z-`^vyKeaI> zx--PXp*P@Ib6}B6Tgyv)gv&ax>uvOelC(veWvV&wU#qScWl|Cow_G8I$fg^Q`W=!T zw2*R!2N%yq*7EzG7}{KJk!g^g;4VUkl$g^tsu}DmBx;^?IM9+DIno?XMG}?Z_*m^5 zP45sJ52nM5YDW(2sMU(*`eP(y+>pR9%qc2L#nJJb?z^w=)vQaXjYXICNV6u#P8~<{ zCgaLIc|NghTENXGbvQ&CV{LY?zpegIjoZ#Q;+T49Qx?s5&f;V;m+{AIX;JQ6!wDIW zy%A8izx$p;!KHlm*>l?(QYrSa>Ps*l@~+Y6EbGg@@1*Nv;)!Kyx<+;R)AU%1cORk- zQ(9EL;d_wcn)4(^9$Qrst)QJwglC5C2OSiY*RSmK{OSRqNmoKdPx?wikmw8h@r26r= z87x%Bjsqxj44QmAqZstPlJatE%@4L$al`y-r{)txmFi{BVc*9s)m*g~3-Q=O9d~Iu z{7icYR~!3a-0rKvi-7^d$QjvfXNg=@d*f(4tfNk}&^`$EwI1HzDWC6FOFSMDC_u7W z)1#?HNn67SjrfEXk9YFbk<7b}@yhlgO5fGcP%PhCnreVBM;_BHlC8`0UoH^9CJ&QV z5u0inNMZ9~+a3(QZr=VvtQ*g1R^PSe!6-}IMOH9{!5(&vgj{J;UxU%UAwx{tetZ@b zY8yK~hWR#myxWF@6FPf2-Q@Q1DEj;FZZ}?2S!&l>7P({^77fr)3Mtbu)!zTWVO+pKqFG(ND`q5hI>lF1+)jV!HfuW(LxwH#R> zj@W#5BqUfrmXRP&*Wt-4?=cDFr}s|UgT9LsL7KQ=mTp$_&F9? zY8V68V=jXH@W9rR+8%XF4xTz)1I(|BEDLu!HY)q#xeY6Ftdn6?iRAIujnFjz+-Cai z?Tu}?8FFmP+T8rV=-J%&gr)D3_oJaxK0439QiTtzyL^lcYus+HmgWGX zus)iY@z;BMIG6?+rbqrqF~O=gr^c=ll`|ek>MK_^oj#(ob{k94n*-M|Vc1wRqmx*) zoY+(m*aO^UN?p9bL-opmZKibj6h^}atJXc9RrzSJ`c#yglrK&+4kd5d^q9j=^aKTi zgD%@8(Fy?AUSBTr{QA@2%Mt$+`7BF2FrJO8Ld99rH-uuOI50>9G}EAcV;_2?7S=`B zOIPoc67*@G+?IE+H)kf%5FL7bN3EegAL9S}y*M}w?6DiZYX?VG_H^Hm-^{>cwpk{# z3A~4tJ!M?7_WNzB9}LFjdH?aZ@9St=Sw6K?Sr{k+GrgcEFS0!^juz!j^V!Kk`Mpbc zk=LrPbB=+Dr3vc3>&j%m+CCH|3mg!L^qYu6G-d!rV{{7@#->+ zdVg^AbC4Q`!>tUgfrzBP4eRNUM^RtrH=Jvp-IPp=9uwPcRSN?LtQ$k0i24y4tXzaAw(QZ`O^$8mH@D%$XpLmJ4)Xn)<-tyJXueJpxqA32*WmT+A?lc?jIa z(U`?oceZcmWyM~*dh|pz(G0zv38|G8Lr>(j!mjObIkchW7}^ocdI{F0Ce)~jHfv)X z%*81l}& zsx25#$p z2@{93-OxE5T&?Qyw9p-=-fj9II2wo#(fx<$`3!H7KxRvAsZ7AUXK&t2HcupYso%Jf zjUqHrF~+K`tELr9K^@2@KMexFt%wLa)x+ZHz?(Nq-I>n$Buh%!bObkOI!ttxcx!*pZ#JSFzO}of>C{YV%%MaikCHURAn^(sfkP0 z6}_H(X3e|T3zn81H4pUTsmM}6Uc3oG{R~5-5RaS0{Lv1|F1k+lsN<*s%5e&YeB_%&dNB zJd1Bj^J+6W9`*ZB0a^Zh5TN)z7np|?0sCZnBYy{`I%!jm-iiNc;|2w?E&K*YwlICbS8tL z{JyI^-%Yl1hKtp1d_FMjp)8_}@Sy3|D>-3B-;x8Rd9-a1p$OZasS_2}iuTGBm{MeG z7LRrn(p!kIiJIU1CgQ_Kpd05e1M@?CIiEG#N82!A9+u#Ig_6rGmNAlQo@b{ zAS)p_W;N97s;wdA9kv*T2(-A)mZ}QX?9Gg+egl1=>Qqr8g#OGfyy6fJng_>WRm*T* zJbhBW2RJpeAHL@Yo{0O2#cQr~nks50?ReBG(HmpWj8>c4Jv?@U?wg#vcg6OBBr5fEvy>Q116+qO3`+MRk?u~O7C@^hw z0*c*ikZ;5G;Fq)RYy#R^J9+Ljy+ME`c@LNgnAUMXO;X1Ru!Ju9rrD+_z5I4ZUB28H z&(6P`KKy!r^wp907Fr<7Hn^LyA~5wF-AnBqm}+yHBBklMJ>wKAv???;m)v z4vt@0zpcI5xnXHa_xi?YpZ2~Qok9&3VWD(RT)Rgam37xvtW&#v-~y$0`^^;?^p!xk zEscS-O|w1IE$2MVNG!00AT(@0u4DsSajLVAfriQEb@mg zm>N{?D^>NZ$qmNctMTI1VD;OjuXU4wT*Y3HwQ}#+xiPm-jjxwLDF_gju%TFRE>Xpm zs%?xLsSq=VdMirFH(jxe#&eq$xvM()-46CC`<0BYx2KCTa{PwRz<8- zV2v$X#yu@em1N}P^^rN%<2|3^rrLJ!px!edLY`{7b#RS>Nrf znctQ*a9_R+K-bk}*Ed8hf4@9FvgphlK#9BYP)AZiv5~HUk3$o;T~=F~4$a~2o51o9 zh?HHA6)`m620A#KBgS0WslHLI;nm6gT2Uo3>nv!?wA9_UVZL8)9+Ks{)lnhM$-+$b z?McnM4puO}J$!{?U15aNtP${jvxkP7_R;UZI|s@%+PHmwqKCJ2x__5{eCtnjmlH^} z3q6bP@6Ikh>)O%K0(D)YI%|*yTpKsipwxg-1GykrGw_g#rj~6(EpXTl2#&1T;){dB z#b8quPtD`avXZubF#qfqmzStgXXB>X+}-!Y?U>0^!5li<-`7er{Z3k@COc1UBgXM4jJ%UUxeAU>NR~WOSz^ejbf3L$ zZZ>mEWP?LL+8UefXg6S{YJ?l~Bx_ovO?_8n8>!l!1qPzS394XV!xs5CNlcak&pSIB z$T;eb$Qj}FzQxqkV3T)U1>#CF$cB#h%zF4KGJ2ro=rmAOUH8?UGQfTOKxWebYTE9B zUDy*;J@y%}ZOwjW@3E%|2z1n!rY5_V=l43Q*g*zGt1xc?hNjUNj-?5%ID#ZVib*!O z@UtgJ7C6OBXIR{%86lEBhU31%_Gkx3ZYmxbZt#=rR4JpJP`MV1X&(-+Dg7)ht=I&Zmb zIL-<$3S(+%)y<8~i^p5rH@beC{_($?=zJZ@=l}EQsI%eW~3k_q|g&j@Xjyb2l65y0x2+(Mw(%IrrMOd_L%MW^64|- z`!c$EaYJTk59c>B};+sWq)q?jY zu@)inIJ>l@-II!Jd8-#`@cj0o8&3g|65ag8S2r=AQ5X=iNrf8nF=~_JnaWpYlfJ#Q7D1)Ce>PZR5DT)r(%U{*!q)Hfuo;zCB z7XT)rNye_VID36@9ZsJgTUr;)DLHi#7|H57y}G(lX>M)Ls${h$y~4o_G2!a$-&|cL z5511lQ21;@Pw$?d;JEk4`)^9>8Q5&lS`BR>?$9~F(M))8x#MysnDErReifuh$zW)X zOn+*1c|{jrzUbbVQ>$dsYWLJb>&k`SJ^+%F_Wf4-=5@1q*vsW{`?zV`FHsHQLKHbp ztCtBLyV*Jg@6f8c`wL;lhzn~kz8Hy+Hwf#)louYF)BfpU)4Tmp+HFwg-~iXu!RtJnM{A66Dt`qsOrEAG^7|{U29g8)X*?Q>v2l6~R8wqDAarN*_VDp6aC_e+iebUZqNsxlfZgb0h~(IqtnVk0!_r4m*C8>Ho9^-~G1MPO_3sBfnTp9^32R zG*uG@p2Uxc)K^l6ig)9dL7Q~8CbJeF>FLpu9quuq?swn@X9?uoZ~E0W^%S)OFFhrcB^a}`7>+Fg0G4%t^Ya;VKb?MtjEE9--SoM$ zv*No9k*qp)9oP>E2}6?N5HZq@E6WKyhO=j0%ODVRMUfTXDm$neIS2>a@kyC?eK0& zUWmHn12m7rvPyyX>@~5GCvi8R`gNVyQAX9y%f%so(N8VM1-r>_ZnuAK!55L5ZXq_<4It)#-7LAEwK4n%BR%A*i@s)e)}I;~zWkLNp{q%%^=9 z>tdZN=z&;V7NI+sVmQKv$a%J{U<3i+phHO$kKIQe`Q@*!sqQBwO_f@MmupdJb2yc^ zZ&l@x9&I9~i6M-^v7^(w2%mR4l|Atte0&_WAqkmn`sw$%nlD~*e@HGk@8|t8`v%iQ zYn#s}8{P9GyZJYq?p2GE8qq}=Doo?*Yb}Cn2)!yoyn#bPD!_g$N zn*a!4GzbIC^RtG)g*@l$1@vxK6(DZXmfLC4)e14=aLxk^kCg~KVHmn3K^R8su?WYI zS8}k}g~5?rFhr?>)(a8sI7vt{9L_$9k~+f^K_#w#`__Lx_2YyJYgw!^kpC6f>De+t z_!r+^qkh}Z$PBS3P(Nf3V4y=V~2L>UUq{QI4jFCL#!u5B@e;z!?*u^@GO@koLIk??G_SfA{zNrZmOv zRYDy~vqGGzFvq)VkH-h@qYKPa>v&e+gr?3CC;}qx`F+wXW3LU!TFCO81>}Li2+lk5 z2`*5EeBX8{BhUvgvDQwqu~i(Xvn(&0+|XsOr%|JE?2anI(M86iI_3$R5l5l=;$Q#u z_<07d)!gGc0;fYGq&^O`rddTRwRPx)Gm96bd+I-dX3@D&d=ZboY-W4jc44{ZsJXBo zw{dlvSHHeL|FoyK#e9e6rXt*`FjGn- zG;<$CE~0`>22}(kfBEJ?=Q`m~9qe@6O=C8E4ll&^alBzpj*~Eos+7YPR}1pggq`!9Z~KWPp2pn5A5OaN0t*>5uB<|P!y~CzcQPF?bR}|hjvk8>YS5-XA_M?$fpV?))X05rD8&BS~gjk)@fOH4^OnZVc_xaet0*#CA>%jcsp0Kj}Y4rBUl zA`*9g9AiMV%3UxDe$(7^KT}#>ruopDST9bS?Ys)fg1+Ws0C^b4h;$nTW7G%TE@y*t zJPdZAB1VxTbFu&+nf&(VE**4LgN+tto|8PwPcADmvrU#9kMp#Rf-Y|=43z4zV24)U zU!~jee4Z5aF(KCDVo_Ix?hRp9TNGc@aDnVo60q{!X5o8h7gjvKOO>U5GKxuFi{!5C`-TgM4yAVOKZl*heK zUz*xHNC_94Q6@!pkzOTrIweK_&&woRiRmxr$c^%_Os%8B&A31?CyT~}xId*|u71Pk z%NK)fVqStdKpY~l&M-E@G|vFP<_V?9Xed^zuMavG-V!i%DsiVrHK2_<;kWejs7M}Z zKyB=wx2wOn-u>V%+_U?#ikqK2FT4T?>XABFsbIKX(xL=9zrH3$hU?!9Klf@nRPTpR zs`tgc(EjCb$30;jS;#^Mn#=UOu_-9UNb^7loVSnk^TWemqRT|7l!jia(O1jA{&+0( zb{ej9Gc+S&#=UXF4Zal&Fu0g~glKFClicXkbfgX1+J}kN@$r z<bpDMzW?YeNJMe7%!-SybzT&O zRr>s=;p*yHkf1S|kBD-#AM%%+&FBKkd51s0YKFxgT(|S~kHF5vDO& zUau3k*T;@0P|jdQV+4%hS=7Gb$&#gT>SNs;I4c=I__Vg#FPDVapoiGhkK+d2)aal7 zxVkIDqtvv#z`_CtObn#DEYxZ6jX4>eWLNe1$-1;&yoq@+$NBv}d$r0xK$eI_u*5o$ z-(D0~xgRzzSrKn)ucP)Pb8;9oOwtUy1Q47S*Xx(uNJAIOAOj*m98?*YqqwXBCq%Qn zwkYLZYr|N=T8rw?gQBouJj(zef-Ivg)_^gIlSDLhqx55vd@GOpBX7HY2D5g=L{MHH zTRpWZy_RQI-)9GV`;Bz&0fTASA za6FzL9t?Y&R%UBEjS`biyV16tQ++Vo=YwsQrIi~zw>XjS%`|7CNK!lU_^}r{4h&Da z_gJVf=Mgk{k3foWWlkTv_TdljvnWL{z!CB~TQwGd4|-iw*+P zWbtuFD=>pH&*EY7(J-<-J<4>w$_avT`&d_()BXojv<_u2B?J^5^LA==y3cYxF`swFgq{&T|ETVqeBkCj&(bK7TVc{oQU)Q($ zt=#F0JCoNq727D z!zAhF31s5qB*$qU18awT8IeOyb`o5Dm+d+QmRUcct6%@KZ}5i`q&$i9{#`pHbMo#_ z(oM5O@h0n~$d`HQwf4xulT8UXQUNcO_8zL>I=G~Bg4*V#w**gRF~Gw2oxOWG9oKbdTgH9T z@X9?t;ra@S)J~9;Xc!>$c{og2-(Q6P?!$+ymGkk(fA|o=03^v=%m^jAd6^yG+2*Ny z^?E6%Xve5Wr8=n_;$^=d9=6X_BN**I9_4tmDCe_^Q!A%g3U~6Cyt=|6U4kr6D`34- zx~WKc)%B8tvkQG8G4crsX|VtF;}37j5w2It(}5&%952e#cxDVkV9AAm$05A{qgH)a zv$|pkk}ut1$2nr|%sfz2vP2=HX{}bb{Iq@WEX|-gL6i2?)n&o`w4GLI>XPkwS?A#C zm-zZ+w!92Dp{IPc7(B}J8qmIPk4JD(FLN#^)Wu@qPJjp!k4JHN>Cca!I=Z|I0r@M!dUfjrn0s3Cgf5M>Npqofz@)w}9LhyD`u2z*FMykTj*iaf-t_t9 zWu9?O#G)==k@xNAb%es3XYVR7^`;+u>f{9Kq!0xwd0ACl=ujTt!2>!?(56tIz#f?l5DJZrd?`SGTv<;s2YB>q7d;&u7&;k_X zr<8j#VnOGhe*AmJ%jJv96&|KtV$fbwIanA`x**CI-oQFFXM+;xA}WCzcH4spsKOvi z@+!-M@j4~QOGi>Zb}BgKU9nIudgx8GCQYXEghY;u(Y$I1?9Z+PB@EU9N3nO4PiP4N z=0wR1xQI|vQfdZd%pBjj5AUD5=d*e^fKQ+MVX}{edRSKhK4xG3<}Y9IL+AAFILr!D9_RDN^eZYXQV=KX%_5x#_tYaxj}jxR zj5OSE9mi?%i>tfY;ecoYq)JMH448(Vt#2?^m7IbP4?3%=w zrOtSK!2@QCG+_yO9+EWYA-x3|bkVowBCi;P>5_(CyELyzmevh~A#G9s9B4vjBDuI* z0f4cM9L)hm092ju{Lbd3O&2c^v4%<#G$#%V6jVT*oGo;e`_UVQ8N$TLT>y*#iUSVN zZ8}&l3W`&E-gb!ik%ZtwL=*FEpR(k5CmQkOl`Jrl_Pd zVlXS%;S8$g&DZ(-xa%${)OxHKQC{3O8MI9_qsAG(X?xC`nNZ2%(LpQyfU@Ofz0Qc< z`DA%vH4@Z%J#>iO@P%NaGIjFw3xT4!;BH_bMX1UwjTV<4Xfx&B=#xx{aFB43Arl-B zEb*EGJ=79l_566~tdb!{P)35L5C1{`eX)j*yO*IK`Q0T4W(g0w*1$2S5!N)ITw4Sa z7{>__PptDlM|u069}ap+4?e^70~-IrON>O?R+G zm~9W;{M23CU*^Xn;B{O{Z?Ws9slT%9^kMf5*uG#ea#|=SkA2JTE|+BghhsK<#?ycL zuiyTQH1Bbif4z*4?>`?igSh$#e#|ajrCqUj=*@wqZ1ib{=5DA=vP|-ul{)>G|La41 z_41_%r=#L%?naVUt0K9=PEIjHBG1v(w|C2MI3kTRLT`UJ>|J_$2|Jy@d4^)z1sz;{ zmB>)TB>C-ys4m>uky0f3Vs%9c;{@WXZ|{f)jIj1|PqXH7otPPv-|E=w!ACW8*B4o0 zU6ygJ9ITTo#sV#4R0v@&f%U+pm9hq59=)E=oh}w>3Ij9%Cjo~@!E7OAF!q4p#skJt z@D3m|dd7;3YMMYf%_(fp`4XI-9*@3EU~ETdjNjMU^<8t^DV$ye-A}F{fQ8@(;>FS` zUmzDE1#ZHOr9K3pJt4-0f<)6AN9MszB;$$CaZxhcACD7C(>TQWVXNlzLHhbNLeimQ zAAF?T8b~4Vp^l6LQGrOIfYy&6#AVpM>zH_*I2XGlikq*9gzWwnzyIhLb$0w{Qx*?Po7lBbjLhl5(LPMxipcEkZhl9HEokt7{@`p?f_eko$emNP5GuTnLWs@l={3jbZFnZ!rPsl~Sgl($1&xfN=y+1@B;%a2#h#XcB^x8ZL4+ z2N?ICoiR{nYZfU(Q>fNPBx>%?;WQchOSgVk<-=Lmyuf?82FKx0zR4PkxyYP7J!Kqo zk5lA5_wIxw8*R39`#p7jFt5HSBq=J={!ss7xkRu%d_wiN`Gu0G7WT(BSs7a6595xc zXc~(2} z>@AMgVQPsVw=!9lG{`Q50JH}|o&v4YHYziWVTrKc|2+Ob-+vmKufNR??;f>{jI#9g zzy12%KRgs=3N~jQ)vBqjYF#^6QQdlACmYftQ(0Z697j9r7#U3|cfk`OfQ_7|fEo-L zn1=DQjwoG~_VK(um3K|{7@O;F)oE1KsntnE?F`{OMQ~HCN@&Ku19gsOfTo|GlSzyx zR$n07P1Q1AWTeTG7tw!tdp2p&tSkXiIKH^dr*W{B?d719k*kuFl%wdVqA0|&5ujvKa1i9uh1t&C<{+)< zwR9j^e|cTjJ3aF6u7J+Jx;_lGiV=h9RB-b7!^cpUG@y*>X*}amfY53QXqg2WNlZB< zd|}isSyRSm-`b?Asc4!OQtE@nWw9!4tK9khQ^=d@oh?>%RW)MTN~ip|e>QBMk9xOz zS1uN2*F{jd^lvVY+p&E4LIZfgQuaK_beSV3haQQ%Nf?$EWM3!f)40A(i}oMYKmQwY z7Wg<;Z|~a~j2@1o2E(V__Dm2M-#zL)FD}Cb4=Kx&bRqN%{O#|W@Xe}lE?>mX(z;pZ zb;BP{`Behq?Dx}ir>QNC4QZ7xGk)#Qdnx4O$La+*=pi6}`9%W;L&<>pv?RhI-{KVA zq*<7kDcOTpFB$n4qM)##VU)IdJ!s%9#3UHo4HoOiKRlmNHzs-9{T{yj?KKJ!17HS* zpvG1Yel~oaF=1xoosJ+)p`#fL5yZh0j&#VJiQZc{F+qeFk6H<=M(qQfWyngVCFq`~ zdDf21W5QzSAVRBO{pA}ry&cZmgIv_>FMs#u@=|5HritfwZ!YZ9WqNh*q!|6WJx)oJ zC>`QFlkAInnabV!Cy=k(Rx&52k{Sz1G=0L8M63jXtgf?U96ex!6HY?VVBy)KEJfp# zGDL)V?f|F0BjF0A$`yM+0(QYT5 z3+WO}t&;Ba&{t(<6^EdAlb=sdDm9DO*Y*!j%j@w^Wto&2#17zO31>@l51Pg8{hQM5 z1`>|@j*#Z&TK^yaF28;YKc2Rm!_Bf7#F*RtpB~$3CMRAAn!d?4CfYON+!+^Hn(+A} z#pM^pNXL=K00~m(R-3z(m_l;-R{ipH8aC&1KxwzeyRiN`E1su;AOG~RH)_;CZ(2oA z`o(-KuEwGE*6N5U|pNjT(78$1)WHydyNa=I%$g<8ADu*wpZ@(aWf;`;{|_F zUssE|>Y9th5;iIe4MwoGHfAKBX~K~@9+VA9&I?G04KQHhxCx^-YL6x;N)~24+Aw?V zbe7Xh#0c}T4J<{(J#-Vm*r>xmFwYnN>Ngv(|3&g7wlekwPRgY=ToK)Jd4P-TtSaLq;&a zsgm62!>r`-C_Tv1g3O^TdC`RPs8o_mG>w}29uAXO6g~tPp|dtB!BQ41J`alcnPh}= z04AR$BFhO26heThM=nX07r}D~2$~*$e0H=wfT92&+Y+jS?q;?B^Lq*t#=Y`26LhF4I^3h#Th-|-CB zL=cQGN^*V6v;`@WQyMW2+OZoQicep4!O?+D+$q zs|r$(`7|0P(yJHCqzXmaPMvev^8OaL@kaljfHXJyPb>2HQo0 z*3 zNn<-7$Lx9~03N0pIs~PU7-EbmwRJr^T_t%mEg;i8D#@9K=*4U99{$Vk$L!TDL{-M4 z9)HHX0h?Kres^ZEtfNvB%JNFD1uv`@Egss_m{wUtqIM&gR49^ed&B@nH}*JLWy}Pl zDRoXAXO7O@yFd4_|Gebh8Er>O^sqaVs*E#=vxbPvGe`B3g{!S=Lz6}`N~2)Gs7ypb zMDQ7tfy2YDo_mR_oK^|(G2sSqh&^;JQYxrsH3y5O6LZ^{{`uV}ogy;=IeC6sO;WpH zyx$n&5a&YhOt_KW-6tMor5wjFs$ulg;_`-&2r#1@OyTTL20l{~OQ8c62wKDB$3M&| z_VL61`H%ncqU)!aU&UDV4Fw?HuDBTh7Z{S18$FJr1Q(6SqKh*if#<>oXCd-3ZAMPv zID{w(xkuZl$8JC``s3!5fv7k{(<88%{8em6E0K zfnC2@_1{~CpIZ6w^vhw*YFs|KvK7;1fT#{yY2 zrlycnzDpoUjEu@q!s*y|mY#{A5pn0B9%m9rAi(=1DaENB9+QL=XqrQW*anZM{kdK& zhRrZYI=SK{I1a`Ko^6PmrT}vy`)F?)0BEJZBoVy1|f~nfk1Gu^8jJU zh*oZf42}Df&sOE~kSBTF8#T@2;rTKRx}V#KNifc17$nG?l^Wy#g|bxBWNKTJ&~zbc=)6zIh@yZ{7)T?8h$IQ{-Td^pee&&jl9-X0 zhu9l@{wc!5M2KP^DGGpE!TVDqT{O{S-_WO6&uqr7B!|wav zA2J?8^y#ZN&3XRuoK|8-R7Po>H>0q+%4KL~1g0Pu15<=^Ma#RUxi#?$-j&6F8{EJD z^r!#uKmE_llUmuUdEtwfzux`QX3gp<*H4Gotm^z=VRD7XPo`bezCAy68nXN5RZbOv zD63yVe)Y0ua`W>im0V}H;c)PtWV1&Ld$1NH!p}j>$7)p&3s)&Z#3{=`y35-d4wz~diBQr&B^{&$XE{7e z?=``Qc1NB;PDQ$?FesV?VdxM-A(A{z4It($(UpN==P@Hzy66B363A3Ue}Djn=`{Gv zD}p_Am_!GiGy8q>23^B#xx!(|x6eb!GKNVAvPA`Q%uZ>nBiTBOb74As_~Ef!v#`+e zIF^~6#xb%mD+01Y&k|Nl20A?otzqaPt6vT%_uGBnWSH=h4cmxv6rCbV4n$q1OE5m| zHHc|+&jX{$+3sUmtQyWR*tM$sf{jB=R#*K|U%kYwx|?)h3^RX3z&n&Ory`&Ulq!gz zEQi2M-Dwz)HY{E;jI`&n11OBnQ%-@;2`+CcGs_vI38&;R@3Q66{&X786NrAuUcOGO z7c`XsI%A6*v>%?_65NzvBnb;``TDo7z-|xrga(F0`n13PVlf*ei1T<&XmRO6puz#@ zJ;403vH$|_=ANY}6|5waHRta?oV=Qx2eXC(0t=HsqjZ#^emnP&&NVo94)|`Uk9`A< z82Qs>l2EnPbrn7yT$Vx9m~i)9wT+4796y1wDi$S^2Sb4MFiX~j-E+7_68e*!HJE4Z zL*N!{0 zp^g)-bq64=7>RbKFow`%ZKQmmh9)6=ePDE1RR!&*6oROn!fDOXEN2Lu_mRv;v@{RJ z64U9KwhT|hfPs-}MR);qKs^d&j+Du;P?jK!zs!dX$rp@Y<{}Os0}%`(YE)5VXdJD)41|!~)Up&uO{(?f5|IEp!5WNMe>xm4~ZMb7^&I)T{wQ4%Zv$nk(IZ? zs>A@3&~AdqzAW$G?Lol5P>dJ1PTneCc~Q7Z~5j{>m-Xd9ey;1DtF`;$@tS%;Bv zK=yfI)FfGvx!D$LbC>mI<~buY$GHCLie>~%6KHY}Jy9lj>tjk1K4pk45sb!;3h`#z zoI#Q^I7pWitG92==1*ujZ?fpEOf;g>dcxyqP+E;0mY-ZSQkGL6Og|2%{YW!;9OEvG zHf4tl6{wS&Js5YJK|pX0=kw(H4fqUwRmIVS+{$oG{%OiC!sNp_K%|B#dYl2{^n4^H z#-Eeb6FsZ!Wfl%QA2K&~q)w6oBN}FX#1%1N837{*u|X+h<%oOgWI#Nn0(l#=`l2pz zcJvTl+R3n-MqaFn;Lzk-s6m)aQf4GXfVl3wkNl2~^WI926);19jz&F6rd2=8Ja>bR zT8}Z{fo5>(2npWkUZXr2jJHI=^lsB_PR(VJFnpFFdMp@}gfEe{X|-xlYtv*p4s50* zl{zo7gepMeJc#I=$5a>;rYs58YLKrIQ^aXdblpH9Jc7a`sg`yMvpT9gl1_D2oJ%=Kv^7Hkh+Dp zAf%Z}Cc~<_pcA;N`dJ>^5%QpvG^wZ;D`Mv3bo&2+O1FQu#@cwb`7 z%bQ9gc+n7%!oga0lUvC4vo4!LkjxusBo{F%g@{wqYpIiE!-jTt*ciws`T4*Xw<$RE zY)PM5>Dy2HyI?WRl<5yfOPbQm4J{Cyh2uG?IcAJRXb_af<6c{8 zof(V{*H@9cv)3r0aHQae%;#1PnJ6L>L0T zq3haALphF-MG&n5vpGfVyWR0&uN|M9=@o>_nn61Vnpx;`7xMzm zx)AdGB(HJ+Fkt;ou?AvJg_%a}!l<>NUT+^sljz~-pncr%^}fOTvtX!uaCLI{p*;TU zo9KkoU5^qjO0Opi{UD)%RyzQEUzYjWN+lOtxhj*$Gr(y|piHVpDae7-7v)Lhr)L0=K!8FhM1}tUqn`Mt2m}@6U}oA}Q&pckZu?A8Yl%ZhMVXd1 z=8^!cL5W-%W+jxb&~j-)_i~=UExGl{3b}k_I~`L2Wd=jWZMk)m+G^PKc*5%~vH%DK z{-~#u`H#(iI-N%`Z+qIeJoM#zTZPeb_~8tcxA=IVrQY9<$Q^vI%*G%YEn;A4J8Pzn zf#qQ`RGp3861KT1-piiU)ElX5wZx1ku3r4w5DeueMSNG?myJhM8 z0oPyWaHlLk|Lim0-Y+Y4hr`ik`+A-nF|-`g`lxyw9EGKpEOaUMdBFNui}h{Iu>v`v zDxx5mZ+k{@eY6gwAsvUyN_GC*M;MgpoG{R^F2AmM z5$jv}J{lOEb=pPfr3h>7Htlo-rE-*gKULbcwa(ddRch!|y6y<1boz2Tye>cdbRNom z`q*RX4v2>zPAvq{IsAA_R#PnFlUcu)rmyb&{Nq2pJef<)frMJFtGIuAFULVT%OK35 zoBAGiQcZf9=!E5dxo&`_mdoCHTiNmB+uJ2^yWMdA&B(1xD&1l!o!{5D({{RoV~c`Tkbtj3@-%sgr9EVO2?my6dJ$m=^bC zliDeFFz=V8xZ~3w-JVz~JE%ih=k5JFN!|bOgrJPA`%M^D(w0Y9b}6`-gAtoB2OGD% z^#;+l^0tJ1S8hgaNXUwdYY3s{>FH&htZ3sD<&~7K2!nh5as2rA4{-ivPX6?K?CV2$ z_tfKF@7G_yY-aEm&YVb#a(@5#soy`o-rr`W#<_F<@Z)2V&W3vs${#uy82YIbIoJW9 zw~j&uc~rJL?L>_q+4(H93U_a1S>{g3wYp9UDa$^mPuw~A+coK9DV}fZe3&Ms?7-Mj zdjD9(UOwib)V6FzhD_BycrEDtX)e}0WE`{lZtqYZ28fB54mefbh6=B@kL2@~UEE$1_7BfQS|Y*Z@fH$SiSq~%B}`SxO07U zgPqEK9~v%~ZF@xHfWCg6yB~(WY}?T}X?9fsue1x<;;&hk=Pa^EGG~?U6@cr2R@8VxxCfCNX zJ)dJx){c$V-^2HR{|}I=We~a>hXZzdtxB_~EUIpc=>O!WPVetqVX1zxt_AfFo9IOi zIYt`YCwT_IjG~~UR!Yc8YEjY_8z{ZT?Jyu$>Lr(YFG9rYb*mcie9%^gO?W1OxuI~V zd&%Uit`)ZXE}7lnec7`*wQX-$>FNAa_xsm6JZThVJWWUOzA4pVv8PW*e6$^WU*B%) zwk#>$K6=iP3V5lF6jXov7E?~K?a4x{!uXzQh)*4=3f}tBYw@w~JisLn8p;x>8-Lip zB_-3%NG_hMWUgCTcd^wZbOEbn(_TLWwq5xO*QL49_C~>`K$Xi1*`4GoZx3E&e@=aF zQkcUlcCL%JgQ&GtfLdkA24mQ&rP>gmWzI`>+HvS0EtfocTdKgQJ2rbkIXP42^Sjl{ zeN%FKYbhOcI7I0?$gKMVinEnn`G~sdiM}*OSs#xlebCF}@|#q{_#+Xi(580#C{SYxN^jlx_1+z6*|zd2@dljI;KO6Rke7RAuBk4I7u??8 zo)wp=e>%)L(`~+Vg=#<0_wW1k)ZH$L*Cb$%PP=aV+j=;!_oiZ&Tp$M#Zu7_Ae!sN? z=KIRRnB!;pAwhCnOA(FrP-y(qKmR<;fA@QS%qlF<0_s|wu}V*FB_%en+zqu2>wi0r z7!WVt&POiEj8+1o?X8p*YJi$syRr(8ojcjkch&^hf>IKd%w$`}#isf?R8e%fe(a^w zUjH#(%b-gOt@lFi80nyf@n}kEJk!X!ow`vN+c~^#o%!K-|9)LR9#YIr?IMz2B@dEY zUFN^s>n=dmP14sp<8;XD;aLbpY!$Zy8V|aqB_DPOsGSm&PNQztKmNYq|2NN^cCMr(OLj8!o*Mly5_TXAR=C~JpwLkI;_v0FOWyQ7C>^#dO z&)m>U3n|1>jMt6*IfaCpp?nXdE0+-V>yo|1bWaVf%((%&#z-2d0+En-Vi6iBF~EHn z=%uBm!y^{w$yJb4_BCghqkMS4MlF1&%VYBfV)49tleXJmX}h78Q5gMvw2&Y^WNeSB z_RGMbHddvq`KkL;l<{pdiDZ8|wR_V?4DgU*7?A;v(;xoXUsxpDvZ{?rZJUrRQy9)? zGnbauR8s%Bi(fC7*U5VVt7`Y82(%#tsg*=51dWxvJRUg~cYf`lIBj*WDDPer(pm@w zNph(b2CYi|efaV~BG>T%&NSV@G-`WT?wde~LihWAE5JfQGoSb|Z+Y;4*qhDw%g4MX zff90QR%aIdlYM%5bt5nFd)%vVa)Bo0QgEDJR4AooZ>y-Fr0Xco#_~N6Cn1c8yF5<1 zaglD&C==)gXrS8)OO(n|s)fs~svPnfGNh#4)TeD*;>se5f}-eyefsH-ZyB<7jnp(r zomtg{z3(iC+JtplwM4Bn-w8V+Y{qL33UiDN5!gWhYOzKt?s&l3Vs31^qp>nR=EPh; z6nXryO9@y=c&%-Huu!M2NVQ(ED2ZwqtgzsvD?8H`hRH=inPuN8(P{%Gh`>3t-ii)G zQ6{yrJ-(Xf*P+?yoZQ~F*dMiXrtCXGZN)KH2DCs%L2k-wSuPP*rhTT@r%~JTfDxvc z-j?FL><*CD;*_Rv-CID@8R6Y>$zpQxale=TkRD46wSn=1+hdcRL%}FDv<9s-k`e(x zNKGX;WgTBjlbpBNEG*Ph~@rS^8+rIAtQ=Hq`bAoW4Lk%C*AJ6AW zboi*}bFVqbK5UN<4?4DoL?Pi82_xS$HZTM5W zS4F~4sugdE9;9@CIJf1Z^d4?}R-ZnrgO-r{qZ@_oEmuNj25OWeV`~C@pPMkp9}Wjx zQfRmbz*bc&p&tZe6RlDymYq^ZBw1jqOCb1g;GdMzg4f$)%MNlL4|}Yfv^r|4VV!3v z)SrIX>GJh`j?TsEh*=osXLmTg{HNCe)xU1P|Lt~L<%Cy6jSw4Mnq=SiqYATBs$mHG z7Th_PEo3Lq1vDhg-bQDc+HHTNqGj1)kte5N?i`|MrS2kCss*hy-dRZ3jUfrmF;Q&? zBGAUERQ0m8emnu}Ig_+TvsSVe1q`(Bz}fdU7SVNRJE5v%64){$7Mi$JgDKc-7B?PE5xNb@W+L!-qMOc_w9a9 z2-HueUDroFzlz`|-s(J8$yp*@5-DS)5^dQY)tpbgNa1hFhIYHxP|6SuKMjF1ZT6|pYj8c6tyCc>;ika><1Iyzb|#L%Ud-g#$EyyZndN(2sEOvwF(7s zRm)`-t_X*yKxSo3ozvt~a91T1Cq`_kpvsVe!5x|uanF*4;nW&PZI2C_z_c-=qg?8q z2eaQdb+UuSSaEMwDM6eWwHE||9H#XGPbn~0CThMPYGnmn8+L;W1Z+)Xq)WEMb{J&a zgAi}`n6H)4i(K}AX(Z>IfjtUU^z{6K%lq>A z@WeSI?LZsf+v%i!sfjC<#0Ae*E#*O2MC;U6g%-}kyab>aN-9Z>PFtGqGEt^xKDA-e z!b*$r>syFge)(&#e^gzCExnvgK0W0xfB#GQA^e~xAz$1dt9QEZwCa3Yn?ofj5(p{< zb!)t>f|X=Qt3I$fc@ekA4v4Qggc{4!lW%(y!VJjTdtBF5Cal8RQNr^y>%SVvpZGigz65hBwK6ZEhPd}cYx;Rg-KfPbG z7}UpgZEBiS!e6hhmf;}t{4S(S^SrKOU%D6tl}zut6OSNMjEp83`u^J$emK?if!*R? zpGUgCt;%BFvh>nB`j%4DB-Rj7ca*Lg08#OwBbZ%#|(LVC!J zKxsq7X(!z`tt%)AYb9k2a|5ZA&+%HRjT%|9RI&gnWI*0yu4~(3etcD3KeWbsL<`z; zg}FL2Jhe(#3*~N{(z3*Mkcv~ydHMRW6veqae*)KiRa@#YtxJJRRa{iW;aa2on z${6kqI5%h4Q)J1!N6AoQtNZrgP7yI!=Q`0SRBf@_ugEb#v4V3$m6J0Ha^lW#++t0- z?bkMRF%%_L&FhU^V{hkzw(F(I2itYS*aC>UZxtIt&ayv_qlsHBK6kyrg+VM0jU+9U zH^X$jthow-RG_G_Z{1OcFelj$@c6ha!ihC1Wko?zCk}0EAyI#(jtbnVvQw49LGsu+UoY`a0gK`2&q1RJ%*NAS+9lNlT|H~MEm1u zy%{=I7vI0JuJV=r@#W={A^EARmrJ}b6f10B3FAkb&XS25z0W7Lrq4g4KiIr&MeJX% z#r^dSpO13K*4A`?yuGm!hhbYH2`g-?1s|Ibr|wLF)f0-iOVBB8Li(H{*n_I;x>jX! zhW!28icZ9^uiUHC%Ym-HuHDP0p?u7RKfm<-(CzTuX{p^^TXYbJr>0 zR&`3t5>TAHc5XQJB!p>S`3B=rm$}Tf$Hxa8MuWVsa-S0wveJvVg7sDPoZ~&HS7YYZ zwxwV*DWH<5a$$m!TLzO0E2TKz?r3Ix{5-0XiUvq2m@Sg)4OeO$%It*F7Hdf?jMCCf z<=D@TpN)J6Pk>w^tiy)|Zjd^Rg{YzHK`}l;3~9w*gUt9aZ^gKi3Oj z3F}kK*S}wd|H)Y`TiI)FwHQl)N(E{Sq?NWVDS~lQ8QZzs_D1FFMKvX@CYHyOP*y#< z;gG}Q>*L$EGrh<3KiBv1XE!{~pKRW=$hY73>8H;YL|JY-Sto#`R;?nYQh?N!OT}$N zqeM;Q57zpW1cz%|BPR`x6LiL)G1Mjz=I>v=eW~3jRUzYPBMlfm=O zi4$q%RGer2OK&x9qI>khOhN=McRuN=Zqp&;@ar}0-*1f`qnz2YRnHX||Tu?K-cb zpGLV)2Th`JxPR@S0mf)m%I;dH_$^b1)89pkuheBw_EO|WGrcqyB3dxgG8=MP$?N!AdP^=aoN^NK~W5N|NY?< z#Z($$&U>>hiBObU8yIB_C}nHJgi_U-*mq7hL0m(YO22e+eD2ydGspR{ zgY9U2%%Cma?yWmbwg9nEz+o`(JeBwFF<-xKhl%!JC8t=a750K>F_^3r-cpdcgqee&6dOUOw{2ql#azc6s^H@0ZS$hT-e4`Q=~# z&sUD2DqTQG2|^3B)KW3HRbt`nzKJ-vbbS|xKYcovTU+P6UrT3A`KFtwJQ{bJ?!qmP z_kaKODqppQ`e5Ev&4)kG`nTVH!D$*t*N;|&$e31lv>4KsXptnW?9Y=v9a@;f$F-JJ z^9+AHv{RnG^3ZIlu>t&Qq1&H$mp@F@0VS6hwXZcK!B^=OF|7&HUTB?TijNu)nESG^ErG)(VefKI&am{ zS#QVTa2S-hUH)YM960bne>0@ZB?-5F7A$`&CPh{>oRZKnhui@+1uq2Y0x0bz4oc7R0A73uwj&*0z98XqZnDs79nkWYzQ@E zYZRi!l+{3lA_Qj?0*5UrY#}}tx6ft6#@I3m1Mwn-fJUN4>J|biQRzYo&~>gGtu@;k z>&#F5$gQ)dPR3MYnoDo`m**tO zx2t$L9emp)wG2%Ffe0ybo>;^b_gyw2r|LYG@L0Op05>3P_&Gv+tZ-8A?H~V5UE8+E z_urPhZA}y~WNH1|az*iMYTmZ6?7BUDI0H>h$J$UJ)-9uUx$bqBf)Xh6NtKz$r~KvD z+yC`%9h8_tnD1t?O6JRspB)I;-Oq%6A4FY9=?Ruy{PJ1NSNr7VWx1j4^r!KMm$B`& zt*RByeA!584VAgA8uHbPNP5`!KpFP;;1As-Eu{70zo*e022=*>`iHDDD$zEsan~jX zk}R$5Wt|fMi_wfV$I4juxUV1AJL2L7yUXZKX%ylPoF!LyA!5s&ezKt9<9fkw_97~>3DpG({|m&G&$07 zyD8|N{HjOOJb^HVIMX%G!GfPqT7-ub17%&=BZ=XRAEj8>^4qsPpWM(1;F^E^wo^ZF zVNF!qptei#vTs#cA&u0Aw3BgDc57uW;vr1uo;`~-ZdZO9JCzl&G=sq>{QY)KOxh@u zgwY7E>*&H!O@}xy2sYNLawIb}b#ib6eRBVNbrE1W? zMP?y{6fBVif?yU1Sfz9Q(H}Y^teaEOx|TM5I%~n(B_}v&=X&eX7RP5>!{uFf|J(er zO5mps7@T`L+P#RrtB-}nfXnxcwK3_J!=L`()uXOS)>@#EGMqOpCFe@1wUm_x5Td05 z3JL{5z0*p7SwCoe9h+$$)Nk|hMjzj{oGMde@=ndy{e!62x~;L1QTM;}WilnPmN^C4 z>)6Cr;yOz|`EU#N=z1;g>+$KQE&e~&Pj&gon89>|!ZIE*a+`PA6+E2l+wYHitzX~A zvh3e}^YS77N~JQWJL-1!F6HV(C8^qy-nRmOw3bmzu$YK)_QR+{54x9#)^eqUInac3 z9;Z%~hNY(%Hx!K?7pkJ~{OG8R{^*QR>PBdpTe*M#An#0A9#dX`C9vt3NGXsk!FF9= zKr1x9hc#5vlX)@Q@{Z%Xe zvT-ioYOqdwLyM47k8ZGS*NXPXEo-Z&rdAsONZDxj$F9U%%+w9Gx2jT&wWS&>$34+T zs%55@Kq{?8iJ4fSWFkU|Oe7G2TN_M24c*|RC`~AZQLB_wcm7$GmO{*>KTo>UG(Wa_ zeYpI7Ytx_pEC2Vm9fYlo?O{|hOYR1BUpA*Jr?QhBb$5Jzw)6Gt^%|w2n2|twK%TxDxst+UOSGAT0<#nqYD^Y}z`5~L!vrvK>l~!Sy z=PzG=JojrozPh;2^3ap9ZQqyB6K{Oq2fHaPMufw^9)5fHuQyF)g_3zivGr~Q1>b%P zqMHsIEbRM9;1(Kf0cPnOZwXoSxk}yEFRQjXR`LcVHpOc&57GMPNeg}OF1Jy-p2jx3 zj)`RY`1ZDx(4-lTr&H(5wj1v;eBYPNo%62sNeJJcp7H1=S@6|f*PBf1dinnCVkRT1 z>|5H1yf$7^t)|BwVwAq`g*3q0IL&j)rSW=vem?ie`(p{q{dQmA<%yN~lRdniP9spQ zBDB1xuWqskqHQU~+)U@&a?jv;BZ*4P_ivBQuvjS{@$x^H*B?;yI@XR;XsQWal^B%o zz4w@O-N4Hd0y_ios>BuvJS3=k!U31>N%np-liJrb2kgd^Y4ajrEb=&7Snt_T65Hjv zrIwW9gwgQM=B0KBtN6Q?xXpA=yV-xWj)B&X!ymY76KmQ+JZ!O*40$G)=$O_u`Ibg5S z#h@#f+vBH~f12X2e|ZaAp`r1zDZw&A6R_4y5}~EkN)wO1!&WObh0t=8X1%fYub=() zeqpJ-x+AyBfB?Y6h?ba3F};y37vfyAhWht!u8}>zOcvPenU#~hR!BRTvX>S=7C9IN z%lr2TAAe2uaDKtZ*X!0huZr^Lf%k_dX*jO;fE|!VL2{J2@hl2DKwq1(ZHpiHG+Nnt zEwvE7WOzq1N?Pq~%bPUN_U2q<(p1vAKYstdBtMKsdaSX=g1Xb9eEH?k{nH^lq@*oA zSwEZ{hzfQpr89$h-?ug@6+<1nm8lU)OD&hC+4hjhd1PliH6fJj&mF7OSo?lDNa_K{ z=QdyN@cJ2{v(HjB78I!}Q#jGBQ#2G1Xx%PI`hi-}Ib;)Sh}owt#*i-x{I-4lrp|5c zB<8AkTdfkHGMn=E@HA=+IkE5XFa+aJzgpQMxkzGF?XGLVp>0Junn z*YDr9-aofF3E6;_Z_rOEH+|B^9G_2G39cnotmJ?}8!iHKB_UV}3n&60ie!&nl5Wz2 zJ>KkP2YLSa$4Mi!lEC1iViWErKwGaWw8d48B+rvwrmMvwijj>u94aC|saMn>$QQFG#Jg6EaWK!PC z{h0davsX$PfhDv;Ta~q_K`Wt}FeqByp~j?xRnI2ga##1Y{O;^w9hg%uS&OpGwU_bz z8-R5}pjPM%&Saf4NJM3>VUveVmr@};bm065P*arts9Vmyvu-$!m~&$&GFBmoqb1Oi zfl6YK%1C%5bciu(sPO>?dyQdl0CZUl2A<++BV5yy8v`+Sp&g`UcmNXRK zm2a|pdCs@_v9^8BEM$U02RogqbIi2I<#Aup3^prpz(81-GAKbpw1xtKsf65cIQ@7! zyd1B0)`u65m;yaQ2|-&c24@w;wB4e3(ZkBp8{V5%;4D4TKmla~&W5EWkP;Lc;VP+w%3M^y1EZw0FE)X3&bHG+c8Cr99qNf0$e@ zf|Ag^^yHkN2i3ZNSqLl=6H(n7SEQZ&NYI@pu`boi2HGH($jXS;3!^H;LWvasp=NznPZipjQv=RP18YOB)>ZZ|B z5r!I<7WTd7kP7sN@@X=XD=Q4u2|<~p?FLtBL+?2ybd8lhXuTDF#n9^8-qQWsCAL;$ zDs6`n8ww(cBos*GDg@NIDlf{W@ht1Iwf}_yZOPzImLbnuZdoAJ+IQwS=u{cdcwM8? zShq)#9m^`bD$*D!OK!llWSEZ1Op^?)gc_4bcMOH3?^PAnYRNgRqDlgx7*H?(i^oR} zN&Bj?6wNX0zKNI`5*2Di?4t9md()w#xB!N=5LV|U9)}Ad1@k1r z$U0T zKVQFJ6n0QlS*pgG6H5k8DZY{PeYXiIowGe~l$xt<-bo-3rGf_KY#X(nE{rkOY>!j^GU^5`RQmDMgT0nEwi96H$ z6FRM>b-f3$hWED*Ivy-5Qyzs3P|hhZ2&BLcQ5j{cB3rbqjJ8RIL_(2CLiQlEl>r1Z z#7a6hGOF3mf^$tl1QJ^fTR#QS3>MRhtpWfn#7)|LS>zP0Y*hhvQcEJ>Bo%;G08uE9 zh8sev?&;XawP-HXcn_?kkjS-EV&!X1qAF+&trt~URbrFs{{zC-2S^G5blCs^002ov JPDHLkV1nu$y)pm* literal 0 HcmV?d00001 From c88a043b7d91464cf99e9c365a1b74d669293c7d Mon Sep 17 00:00:00 2001 From: red-kangaroo Date: Fri, 30 Sep 2022 11:17:27 +0200 Subject: [PATCH 07/32] Add opposed random check --- Main/Include/game.h | 5 ++- Main/Source/char.cpp | 82 +++++++++++++++++++++++++++++++++--- Main/Source/game.cpp | 90 ++++++++++++++++++++++++---------------- Main/Source/human.cpp | 2 +- Main/Source/lsquare.cpp | 2 +- Main/Source/nonhuman.cpp | 4 +- 6 files changed, 139 insertions(+), 46 deletions(-) diff --git a/Main/Include/game.h b/Main/Include/game.h index b497cd938..40760523d 100644 --- a/Main/Include/game.h +++ b/Main/Include/game.h @@ -501,10 +501,10 @@ class game static void SetEnterImage(cbitmap* What) { EnterImage = What; } static void SetEnterTextDisplacement(v2 What){ EnterTextDisplacement = What; } static int getDefaultItemsListWidth(){ return iListWidth; } - static void AddDebugDrawOverlayFunction(dbgdrawoverlay ddo){vDbgDrawOverlayFunctions.push_back(ddo);} + static void AddDebugDrawOverlayFunction(dbgdrawoverlay ddo){ vDbgDrawOverlayFunctions.push_back(ddo); } static int GetCurrentDungeonTurnsCount(){return iCurrentDungeonTurn;} static int GetSaveFileVersionHardcoded(); - static void ValidateCommandKeys(char Key1,char Key2,char Key3); + static void ValidateCommandKeys(char Key1, char Key2, char Key3); static truth ConfigureCustomKeys(); static festring ToCharIfPossible(int i); static truth ValidateCustomCmdKey(int iNewKey, int iIgnoreIndex, bool bMoveKeys); @@ -512,6 +512,7 @@ class game static void LoadCustomCommandKeys(); static int GetWorldShape() { return WorldShape; } static void SetWorldShape(int What) { WorldShape = What; } + static bool OpposedCheck(int first, int second, int cap = 5); private: static void UpdateCameraCoordinate(int&, int, int, int); static cchar* const Alignment[]; diff --git a/Main/Source/char.cpp b/Main/Source/char.cpp index 60c12b099..1990bf340 100644 --- a/Main/Source/char.cpp +++ b/Main/Source/char.cpp @@ -1575,8 +1575,80 @@ truth character::TryMove(v2 MoveVector, truth Important, truth Run, truth* pbWai return true; } - if(game::TryTravel(WORLD_MAP, WORLD_MAP, game::GetCurrentDungeonIndex())) - return true; + if((GetPos().Y == 0) && (Direction == NORTH)) + ADD_MESSAGE("You are going north."); + if((GetPos().X == (game::GetCurrentLevel()->GetXSize() - 1)) && (Direction == EAST)) + ADD_MESSAGE("You are going east."); + if((GetPos().Y == (game::GetCurrentLevel()->GetYSize() - 1)) && (Direction == SOUTH)) + ADD_MESSAGE("You are going south."); + if((GetPos().X == 0) && (Direction == WEST)) + ADD_MESSAGE("You are going west."); + + if(GetLevel()->LeaveToWorldMap()) + { + if(game::TryTravel(WORLD_MAP, WORLD_MAP, game::GetCurrentDungeonIndex())) + return true; + } + else if((GetPos().Y == 0) && (Direction == NORTH)) + { + if(GetLevel()->AttachedAreaNorth() == WORLD_MAP) + { + if(game::TryTravel(WORLD_MAP, WORLD_MAP, game::GetCurrentDungeonIndex())) + return true; + } + if(GetLevel()->AttachedAreaNorth() == NO_EXIT) + { + ADD_MESSAGE("You cannot leave this area from this direction."); + return false; + } + if(game::TryTravel(game::GetCurrentDungeonIndex(), GetLevel()->AttachedAreaNorth(), STAIRS_UP + SOUTH)) + return true; + } + else if((GetPos().X == (game::GetCurrentLevel()->GetXSize() - 1)) && (Direction == EAST)) + { + if(GetLevel()->AttachedAreaEast() == WORLD_MAP) + { + if(game::TryTravel(WORLD_MAP, WORLD_MAP, game::GetCurrentDungeonIndex())) + return true; + } + if(GetLevel()->AttachedAreaEast() == NO_EXIT) + { + ADD_MESSAGE("You cannot leave this area from this direction."); + return false; + } + if(game::TryTravel(game::GetCurrentDungeonIndex(), GetLevel()->AttachedAreaEast(), STAIRS_UP + WEST)) + return true; + } + else if((GetPos().Y == (game::GetCurrentLevel()->GetYSize() - 1)) && (Direction == SOUTH)) + { + if(GetLevel()->AttachedAreaSouth() == WORLD_MAP) + { + if(game::TryTravel(WORLD_MAP, WORLD_MAP, game::GetCurrentDungeonIndex())) + return true; + } + if(GetLevel()->AttachedAreaSouth() == NO_EXIT) + { + ADD_MESSAGE("You cannot leave this area from this direction."); + return false; + } + if(game::TryTravel(game::GetCurrentDungeonIndex(), GetLevel()->AttachedAreaSouth(), STAIRS_UP + NORTH)) + return true; + } + else if((GetPos().X == 0) && (Direction == WEST)) + { + if(GetLevel()->AttachedAreaWest() == WORLD_MAP) + { + if(game::TryTravel(WORLD_MAP, WORLD_MAP, game::GetCurrentDungeonIndex())) + return true; + } + if(GetLevel()->AttachedAreaWest() == NO_EXIT) + { + ADD_MESSAGE("You cannot leave this area from this direction."); + return false; + } + if(game::TryTravel(game::GetCurrentDungeonIndex(), GetLevel()->AttachedAreaWest(), STAIRS_UP + EAST)) + return true; + } } return false; @@ -1615,8 +1687,8 @@ truth character::TryMove(v2 MoveVector, truth Important, truth Run, truth* pbWai } else MoveTo = MoveTo; // Flat (default) - - + + if(CanMove() && GetArea()->IsValidPos(MoveTo) && (CanMoveOn(GetNearWSquare(MoveTo)) @@ -12687,7 +12759,7 @@ truth character::ReceiveSirenSong(character* Siren) if(Siren->GetRelation(this) != HOSTILE) return false; - if(RAND_N(GetAttribute(WILL_POWER)) > RAND_N(Siren->GetAttribute(CHARISMA))) + if(game::OpposedCheck(GetAttribute(WILL_POWER), Siren->GetAttribute(CHARISMA))) { if(IsPlayer()) ADD_MESSAGE("The beautiful song of %s makes you feel a little sad.", Siren->CHAR_NAME(DEFINITE)); diff --git a/Main/Source/game.cpp b/Main/Source/game.cpp index 321449fd4..1180ad93d 100644 --- a/Main/Source/game.cpp +++ b/Main/Source/game.cpp @@ -5770,7 +5770,7 @@ void game::LoadCustomCommandKeys() static festring fsFile = GetUserDataDir() + CUSTOM_KEYS_FILENAME; FILE *fl = fopen(fsFile.CStr(), "rt"); if(!fl)return; - + festring Line; festring fsMatch; festring fsPostFix="\"=0x"; @@ -5787,7 +5787,7 @@ void game::LoadCustomCommandKeys() break; } } - + int iVal; for(int c=0;c<8;c++){ fsMatch.Empty(); @@ -5796,9 +5796,9 @@ void game::LoadCustomCommandKeys() game::MoveCustomCommandKey[c]=HexToInt(Line); break; } - } + } } - + fclose(fl); } @@ -5824,7 +5824,7 @@ truth game::ValidateCustomCmdKey(int iNewKey, int iIgnoreIndex, bool bMoveKeys) //TODO these SYSTEM messages messes the gameplay message log... but is better than a popup? bool bValid=true; festring fsDesc; - + // conflicts check if(bValid){ command *cmd; @@ -5845,13 +5845,13 @@ truth game::ValidateCustomCmdKey(int iNewKey, int iIgnoreIndex, bool bMoveKeys) bValid=false; break; } - } + } } if(!bValid){ ADD_MESSAGE("SYSTEM: conflicting key '%s'(code is %d or 0x%04X) with command \"%s\", retry...", ToCharIfPossible(iNewKey).CStr(),iNewKey,iNewKey,fsDesc.CStr()); } - + // general invalid key codes if(bValid){ if(iNewKey<0x20){ @@ -5859,7 +5859,7 @@ truth game::ValidateCustomCmdKey(int iNewKey, int iIgnoreIndex, bool bMoveKeys) bValid=false; } } - + return bValid; } @@ -5873,33 +5873,33 @@ festring IntToHexStr(int i) festring game::ToCharIfPossible(int i) { - switch(i){ // these are above 0xFF + switch(i){ // these are above 0xFF //TODO complete this list, if has no #define, use the hexa directly. - case KEY_UP: + case KEY_UP: return "Up"; - case KEY_DOWN: + case KEY_DOWN: return "Down"; - case KEY_RIGHT: + case KEY_RIGHT: return "Right"; - case KEY_LEFT: + case KEY_LEFT: return "Left"; - case KEY_HOME: + case KEY_HOME: return "Home"; - case KEY_END: + case KEY_END: return "End"; - case KEY_PAGE_DOWN: + case KEY_PAGE_DOWN: return "PgDn"; - case KEY_PAGE_UP: + case KEY_PAGE_UP: return "PgUp"; case KEY_DELETE: return "Del"; case KEY_INSERT: return "Ins"; } - + if(i>=0 && i<=0xFF) //these are mapped at fonts gfx files return festring()+(char)i; - + return IntToHexStr(i); } @@ -5911,12 +5911,12 @@ void WriteCustomKeyBindingsCfgFile(FILE *fl,festring fsDesc,int iKey){ /** * Command's (and movement keys) descriptions are used as identifiers at the config file. * These descriptions shall not clash and preferably should not be changed. - * @return + * @return */ truth game::ConfigureCustomKeys() { game::LoadCustomCommandKeys(); //in case there is anything already set - + felist fel(CONST_S("Configure custom keys:")); bool bRet=true; command* cmd; @@ -5926,16 +5926,16 @@ truth game::ConfigureCustomKeys() bool bWizIni=false; festring fsEntry; for(int c = 1; (cmd=commandsystem::GetCommand(c)); ++c){ - fsEntry=cmd->GetDescription(); + fsEntry=cmd->GetDescription(); fsEntry.Resize(60); fsEntry<<"'"<GetKey())<<"' "; fsEntry<GetKey()); - + if(!bWizIni && cmd->IsWizardModeFunction()){ fel.AddEntry("Wizard mode keys:", DARK_GRAY, 20, NO_IMAGE, false); bWizIni=true; } - + fel.AddEntry(fsEntry, LIGHT_GRAY, 0, NO_IMAGE, true); iMoveKeyStart++; } @@ -5955,7 +5955,7 @@ truth game::ConfigureCustomKeys() bRet=false; break; } - + bool bIsMoveKeys = Select >= iMoveKeyStart; int iMvKeyIndex = bIsMoveKeys ? Select-iMoveKeyStart : -1; int iCmdKeyIndex = bIsMoveKeys ? -1 : Select+1; @@ -5965,7 +5965,7 @@ truth game::ConfigureCustomKeys() while(true){ cmd=NULL; festring fsAsk = "Press a key to assign to the command \""; - + if(bIsMoveKeys){ fsAsk<GetKey()); fsAsk<<")"; - + iNewKey=game::AskForKeyPress(fsAsk); if(iNewKey==KEY_ESC){bIgnore=true;break;} @@ -5990,23 +5990,23 @@ truth game::ConfigureCustomKeys() } } if(bIgnore)continue; - + if(!bRet)break; - + if(bIsMoveKeys) game::MoveCustomCommandKey[iMvKeyIndex]=iNewKey; else commandsystem::GetCommand(iCmdKeyIndex)->SetCustomKey(iNewKey); } - + festring fsFl = GetUserDataDir() + CUSTOM_KEYS_FILENAME; - + // backup existing festring fsFlBkp=fsFl+".bkp"; std::ifstream src(fsFl.CStr() , std::ios::binary); std::ofstream dst(fsFlBkp.CStr(), std::ios::binary); dst << src.rdbuf(); - + // write a new in full FILE *fl = fopen(fsFl.CStr(), "wt"); //"a"); festring fsWriteLine; @@ -6016,7 +6016,7 @@ truth game::ConfigureCustomKeys() for(int c=0;c<8;c++) WriteCustomKeyBindingsCfgFile(fl,GetMoveKeyDesc(c),game::MoveCustomCommandKey[c]); fclose(fl); - + if(bRet)game::LoadCustomCommandKeys(); //this here is more to validate if all went ok return bRet; } @@ -6040,7 +6040,7 @@ void game::ValidateCommandKeys(char Key1,char Key2,char Key3) pa=game::MoveAbnormalCommandKey; Key=Key2; break; case DIR_HACK: pa=game::MoveNetHackCommandKey; Key=Key3; break; -/*TODO case DIR_CUSTOM: +/*TODO case DIR_CUSTOM: pa=game::MoveCustomCommandKey; Key=???; break; */ } @@ -6057,7 +6057,7 @@ int game::GetMoveCommandKey(int I) { if(ivanconfig::IsSetupCustomKeys()) return MoveCustomCommandKey[I]; - + switch(ivanconfig::GetDirectionKeyMap()) { case DIR_NORM: @@ -7090,3 +7090,23 @@ void game::ShowDeathSmiley(bitmap* Buffer, truth) if(Buffer == DOUBLE_BUFFER) graphics::BlitDBToScreen(); } + +bool game::OpposedCheck(int first, int second, int cap = 5) +{ + /* Opposed random check + * + * Takes two numbers and rolls a percentage die against a weighted chance + * based on these two numbers, returning whether the first number was + * successful in the roll. Same numbers will always have 50/50 chance, but + * different numbers will always be fit on a 0% to 100% chance of success for + * the first. + * + * Eg. first = 25, second = 50. There is a 33% chance that first will be + * successful and this method will return true. + * + * Can also be capped, which sets both min and max percentage. The default + * cap of 5 will result in chances between 5% and 95%, even if the numbers + * would otherwise have worse/better chances. + */ + return RAND_N(100) < max(cap, min(100 - cap, (first * 100) / (first + second))); +} diff --git a/Main/Source/human.cpp b/Main/Source/human.cpp index 1a3ee9d5a..048753d67 100644 --- a/Main/Source/human.cpp +++ b/Main/Source/human.cpp @@ -7031,7 +7031,7 @@ truth mirrorimp::DrinkMagic(const beamdata& Beam) if(!Beam.Wand->IsExplosive()) return false; - if(Beam.Owner && RAND_N(GetAttribute(MANA)) <= RAND_N(Beam.Owner->GetAttribute(WILL_POWER))) + if(Beam.Owner && game::OpposedCheck(Beam.Owner->GetAttribute(WILL_POWER), GetAttribute(MANA)) { Beam.Owner->EditExperience(WILL_POWER, 100, 1 << 12); return false; diff --git a/Main/Source/lsquare.cpp b/Main/Source/lsquare.cpp index d07aa1dbe..4de4d125a 100644 --- a/Main/Source/lsquare.cpp +++ b/Main/Source/lsquare.cpp @@ -1895,7 +1895,7 @@ truth lsquare::LowerEnchantment(const beamdata& Beam) if(Char) { - if(Beam.Owner && RAND_N(Char->GetAttribute(WILL_POWER)) > RAND_N(Beam.Owner->GetAttribute(MANA))) + if(Beam.Owner && game::OpposedCheck(Char->GetAttribute(WILL_POWER), Beam.Owner->GetAttribute(MANA))) { if(Char->IsPlayer()) ADD_MESSAGE("%s glows dull brown for a second, but then it passes.", RandomItem->CHAR_NAME(DEFINITE)); diff --git a/Main/Source/nonhuman.cpp b/Main/Source/nonhuman.cpp index 0ffaaa4bc..17bc8c67d 100644 --- a/Main/Source/nonhuman.cpp +++ b/Main/Source/nonhuman.cpp @@ -1052,10 +1052,10 @@ int nerfbat::TakeHit(character* Enemy, item* Weapon, bodypart* EnemyBodyPart, v2 if(Return != HAS_DIED) { // Compare Mana against enemy Willpower to see if they resist polymorph. - if(RAND_N(GetAttribute(MANA)) > RAND_N(Enemy->GetAttribute(WILL_POWER))) + if(game::OpposedCheck(GetAttribute(MANA), Enemy->GetAttribute(WILL_POWER))) { if(IsPlayer()) - ADD_MESSAGE("You are engulfed in a malignant aura!."); + ADD_MESSAGE("You are engulfed in a malignant aura!"); else if(CanBeSeenByPlayer()) ADD_MESSAGE("%s is engulfed in a malignant aura!", CHAR_DESCRIPTION(DEFINITE)); From 98318e739fcc97628ff77276963bf8014ca918ef Mon Sep 17 00:00:00 2001 From: finduraf Date: Tue, 11 Feb 2025 22:43:14 +0100 Subject: [PATCH 08/32] feat: Make Lobh-se vomit more --- Main/Source/nonhuman.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Main/Source/nonhuman.cpp b/Main/Source/nonhuman.cpp index 17bc8c67d..55ee55f5a 100644 --- a/Main/Source/nonhuman.cpp +++ b/Main/Source/nonhuman.cpp @@ -2559,7 +2559,7 @@ void lobhse::FinalProcessForBone() void lobhse::Bite(character* Enemy, v2 HitPos, int Direction, truth ForceHit) { - if(!RAND_N(7)) + if(!RAND_N(4)) { if(IsPlayer()) ADD_MESSAGE("You vomit at %s.", Enemy->CHAR_DESCRIPTION(DEFINITE)); From bdd0ea8898758ea6f73207d6711d8be39e9da06c Mon Sep 17 00:00:00 2001 From: finduraf Date: Tue, 11 Feb 2025 22:46:50 +0100 Subject: [PATCH 09/32] feat: Skeleton puppy drools ectoplasm --- Main/Source/nonhuman.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Main/Source/nonhuman.cpp b/Main/Source/nonhuman.cpp index 55ee55f5a..ca7e813f4 100644 --- a/Main/Source/nonhuman.cpp +++ b/Main/Source/nonhuman.cpp @@ -2086,7 +2086,7 @@ void mommo::GetAICommand() void dog::GetAICommand() { if(!game::IsInWilderness() && !(RAND() & 7)) - GetLSquareUnder()->SpillFluid(this, liquid::Spawn(DOG_DROOL, 25 + RAND() % 50), false, false); + GetLSquareUnder()->SpillFluid(this, liquid::Spawn(GetConfig() == SKELETON_DOG ? ECTOPLASM : DOG_DROOL, 25 + RAND() % 50), false, false); character::GetAICommand(); } From f9cea192e5e7b4bc1e34c796f20381b6d3fd9ffc Mon Sep 17 00:00:00 2001 From: finduraf Date: Wed, 12 Feb 2025 08:29:23 +0100 Subject: [PATCH 10/32] feat: Sound resistance helps against siren song Also slightly distinguish siren subtypes via different Charisma, just because. And nerf Charisma of Elianise a bit, as she had more Charisma than archangels... --- Main/Source/char.cpp | 9 ++++++++- Script/char.dat | 12 ++++++++++-- 2 files changed, 18 insertions(+), 3 deletions(-) diff --git a/Main/Source/char.cpp b/Main/Source/char.cpp index 1990bf340..551b985b9 100644 --- a/Main/Source/char.cpp +++ b/Main/Source/char.cpp @@ -12759,7 +12759,14 @@ truth character::ReceiveSirenSong(character* Siren) if(Siren->GetRelation(this) != HOSTILE) return false; - if(game::OpposedCheck(GetAttribute(WILL_POWER), Siren->GetAttribute(CHARISMA))) + // Since siren song is a sound-based attack, modify base resistance by any sound resistance the character may have. + int songResist = GetAttribute(WILL_POWER); + if(!IsHumanoid()) + songResist *= 1 + GetResistance(SOUND); + else if(HasHead()) + songResist *= 1 + GetHead()->GetTotalResistance(SOUND); + + if(game::OpposedCheck(songResist, Siren->GetAttribute(CHARISMA))) { if(IsPlayer()) ADD_MESSAGE("The beautiful song of %s makes you feel a little sad.", Siren->CHAR_NAME(DEFINITE)); diff --git a/Script/char.dat b/Script/char.dat index 7ce6c94fb..24bad8cdc 100644 --- a/Script/char.dat +++ b/Script/char.dat @@ -9274,7 +9274,6 @@ siren DefaultIntelligence = 10; DefaultWillPower = 10; DefaultWisdom = 15; - DefaultCharisma = 50; DefaultMana = 5; Sex = FEMALE; StandVerb = "flaunting"; @@ -9319,6 +9318,7 @@ siren Config LIGHT_ASIAN_SIREN; { + DefaultCharisma = 45; UsesLongAdjectiveArticle = true; NameSingular = "erd-siren"; SkinColor = rgb16(254, 247, 208); @@ -9328,6 +9328,7 @@ siren Config DARK_ASIAN_SIREN; { + DefaultCharisma = 42; UsesLongAdjectiveArticle = true; NameSingular = "ygg-siren"; SkinColor = rgb16(254, 247, 183); @@ -9337,6 +9338,7 @@ siren Config CAUCASIAN_SIREN; { + DefaultCharisma = 39; UsesLongAdjectiveArticle = true; NameSingular = "ary-siren"; SkinColor = rgb16(255, 212, 192); @@ -9346,6 +9348,7 @@ siren Config DARK_SIREN; { + DefaultCharisma = 36; UsesLongAdjectiveArticle = true; NameSingular = "unn-siren"; SkinColor = rgb16(128, 80, 48); @@ -9355,6 +9358,7 @@ siren Config GREEN_SIREN; { + DefaultCharisma = 33; UsesLongAdjectiveArticle = true; NameSingular = "eli-siren"; SkinColor = rgb16(180, 255, 150); @@ -9364,6 +9368,7 @@ siren Config BLUE_SIREN; { + DefaultCharisma = 30; NameSingular = "zar-siren"; SkinColor = rgb16(153, 204, 255); HairColor = rgb16(51, 51, 255); @@ -9373,6 +9378,7 @@ siren Config RED_SIREN; { + DefaultCharisma = 27; NameSingular = "pra-siren"; SkinColor = rgb16(255, 51, 51); HairColor = rgb16(255, 255, 255); @@ -9382,6 +9388,7 @@ siren Config PINK_SIREN; { + DefaultCharisma = 24; NameSingular = "jin-siren"; SkinColor = rgb16(240, 200, 201); HairColor = rgb16(255, 51, 153); @@ -9391,6 +9398,7 @@ siren Config HISPANIC_SIREN; { + DefaultCharisma = 21; NameSingular = "kos-siren"; SkinColor = rgb16(160, 100, 64); HairColor = rgb16(80, 48, 32); @@ -9402,7 +9410,7 @@ siren DefaultIntelligence = 30; DefaultWillPower = 30; DefaultWisdom = 35; - DefaultCharisma = 75; + DefaultCharisma = 50; HeadBitmapPos = 112, 400; SkinColor = rgb16(180, 255, 150); HairColor = rgb16(200, 48, 32); From 28b4735522186bca47be7889cf03bfc99ea79d41 Mon Sep 17 00:00:00 2001 From: finduraf Date: Wed, 12 Feb 2025 09:30:09 +0100 Subject: [PATCH 11/32] fix: Mirror imp death should not replace terrain Fixes #664 --- Main/Source/human.cpp | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/Main/Source/human.cpp b/Main/Source/human.cpp index 048753d67..479ac1c64 100644 --- a/Main/Source/human.cpp +++ b/Main/Source/human.cpp @@ -7053,9 +7053,12 @@ truth mirrorimp::DrinkMagic(const beamdata& Beam) void mirrorimp::CreateCorpse(lsquare* Square) { - decoration* Shard = decoration::Spawn(SHARD); - Shard->InitMaterials(MAKE_MATERIAL(GLASS)); - Square->ChangeOLTerrainAndUpdateLights(Shard); + // Do not replace any interesting terrain! + if (!Square->GetOLTerrain()) { + decoration* Shard = decoration::Spawn(SHARD); + Shard->InitMaterials(MAKE_MATERIAL(GLASS)); + Square->ChangeOLTerrainAndUpdateLights(Shard); + } SendToHell(); } From 0ac28409f3b71486a32a3a6ca57fe84bdacea459 Mon Sep 17 00:00:00 2001 From: finduraf Date: Wed, 12 Feb 2025 10:30:26 +0100 Subject: [PATCH 12/32] doc: Lantern lore by Dark-Star2018 --- Doc/Lore/Fiction/Lantern.txt | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) create mode 100644 Doc/Lore/Fiction/Lantern.txt diff --git a/Doc/Lore/Fiction/Lantern.txt b/Doc/Lore/Fiction/Lantern.txt new file mode 100644 index 000000000..886ac4c67 --- /dev/null +++ b/Doc/Lore/Fiction/Lantern.txt @@ -0,0 +1,17 @@ +Many are the names in the common tongues for the great blessing which holy Legifer hath bestowed on us: "Lumes", "Glims", "Lanthorns", "Little-stars", "Twinkleboxes" and countless others in the tongue of Man alone. Many more exist in the languages of Dwarven-kind or the Elvish kindred and even the barbaric blabber of the Orcs, far more than could be mentioned. + +Yet how poor and pitiful is the gratitude returned to the lord of Order for these daily wonders despite the great benefit that they provide! Little do we seem to think of what should happen if His blessing were to be withdrawn across the world, leaving us all groping in the dark. So for the further enlightenment of the reader (in every meaning of the term) here is the known history of His generosity: + +In ages long past when cities had not begun and villages were but rudely built of straw-daubed walls with hide rooves, all except the highest of nobles lit torches for their homes within and without. Often naught else could be had: rushes burned but would only grow on the banks of warm rivers while coal mining scarce existed past tiny pits. Immeasurable was the amount of labor to keep the fickle fires of countless torches fed well enough to burn brightly but also guard them from catching aflame to everything else! + +Of all the torments of the forces of Chaos in those hard days, few were of greater delight in their loathesome eyes than to set a feeble spirit to flitter about a torch or luchina so that it leaned closely to a curtain to set it ablaze, or topple a poorly fixed oil lamp to the floor to spread flaming liquid all about. Such wicked conjurations gained the name chandl-wyghts (or "candle devils" in more modern speech). in time the more devious servants of darkness learnt to use the mere threat of the spirits for extortion that proved of greater effect than the wanton destructiveness of the spirits themselves. Sigils of protection began to be sold by such merchants who would trade in them that offered a tenday or a month or a season's worth of respite despite furious efforts to quell such round-about funding of evil. Even these sigils in turn became targets for a few bold charlatans, selling counterfeit sigils that held no magic protection at all. However, these forgeries were especially dangerous; risking fates far worse than death for the makers unfortunate enough to be caught by the 'true' salers. + +At length this ville traffic reached the household of a leader of an early guild of chandlers whose name has been lost to the ages. He apparently found one morning a threat scribbled upon a scrap of parchment to pay his tithe to the temple instead for 'insuring' the safety of his family and home. As his very life's work was the proper making of lights and fire-guarding, his rage was so kindled that he at once ran to the temple to shout with such a voice that half the village heard his oaths, demanding some means of the Lawful gods to stop his tormentors. Such had been his devotion to that no less than Iustitia herself appeared on the threshold of the temple. With a voice of thunder she proclaimed a call to holy war upon evil to last until the sun had set that day. + +Of what events transpired that day we know little, save that every man and strong boy for miles around grabbed such arms and armor that were at hand to answer Iustitia's summon to go forth putting a great many dens of evil to the sword. As the last flickers of daylight vanished over the horizon, the mighty archangel vanished to leave behind something most wondrous. A massive tablet stood where she had been, made of a material like glass yet far stronger that no man had ever seen the like of before. It would at some length be given the name "illithium" by learned men of the time. The lengthy canticle of holy words the tablet bore wove a spell that lit a brilliant white glow from within a vessel held by the one with the patience to complete the wearisome chant. As if this gift were not great enough, so amazing was Legifer's grace that even a simple-minded apprentice was able to complete it so long as his attention stayed unbroken. + +As quickly as they could be made, skilled smiths began fashioning more vessels for these blessed lights out of tin or brass with many piercings to let out the light from within. But the tradesman who had first begged Legifer's aid crafted the first true lantern encompassed with glass, knowing its affinity to the god. By the time the pious man went to his eternal reward he claimed to have fashioned at least a hundred-score lanterns with his own hands - and likely so! + +With the dispersal of these blessed lights all across the lands, not only were the ruinous powers sorely hurt but also many who would have perished in some firey tragedy hath lived full lives instead. Countless hearths and halls came to be lit without smoke or a pence's worth of tinder. To say nothing of the relief to forest-wardens when the common man needed far less wood throughout the year. + +Now let thy mind be enlightened by the full truth of Legifer's beneficence, that you may reflect upon his gift to the full measure. From 2fcf992c88a11b8db19c6beb4b5778529b12c504 Mon Sep 17 00:00:00 2001 From: finduraf Date: Thu, 13 Feb 2025 10:05:45 +0100 Subject: [PATCH 13/32] fix: Messed up merge I seem to have cherry-picked unfinished commits. --- Main/Source/char.cpp | 78 ++----------------------------------------- Main/Source/game.cpp | 4 +-- Main/Source/human.cpp | 2 +- 3 files changed, 6 insertions(+), 78 deletions(-) diff --git a/Main/Source/char.cpp b/Main/Source/char.cpp index 551b985b9..3c4afc5d2 100644 --- a/Main/Source/char.cpp +++ b/Main/Source/char.cpp @@ -1575,80 +1575,8 @@ truth character::TryMove(v2 MoveVector, truth Important, truth Run, truth* pbWai return true; } - if((GetPos().Y == 0) && (Direction == NORTH)) - ADD_MESSAGE("You are going north."); - if((GetPos().X == (game::GetCurrentLevel()->GetXSize() - 1)) && (Direction == EAST)) - ADD_MESSAGE("You are going east."); - if((GetPos().Y == (game::GetCurrentLevel()->GetYSize() - 1)) && (Direction == SOUTH)) - ADD_MESSAGE("You are going south."); - if((GetPos().X == 0) && (Direction == WEST)) - ADD_MESSAGE("You are going west."); - - if(GetLevel()->LeaveToWorldMap()) - { - if(game::TryTravel(WORLD_MAP, WORLD_MAP, game::GetCurrentDungeonIndex())) - return true; - } - else if((GetPos().Y == 0) && (Direction == NORTH)) - { - if(GetLevel()->AttachedAreaNorth() == WORLD_MAP) - { - if(game::TryTravel(WORLD_MAP, WORLD_MAP, game::GetCurrentDungeonIndex())) - return true; - } - if(GetLevel()->AttachedAreaNorth() == NO_EXIT) - { - ADD_MESSAGE("You cannot leave this area from this direction."); - return false; - } - if(game::TryTravel(game::GetCurrentDungeonIndex(), GetLevel()->AttachedAreaNorth(), STAIRS_UP + SOUTH)) - return true; - } - else if((GetPos().X == (game::GetCurrentLevel()->GetXSize() - 1)) && (Direction == EAST)) - { - if(GetLevel()->AttachedAreaEast() == WORLD_MAP) - { - if(game::TryTravel(WORLD_MAP, WORLD_MAP, game::GetCurrentDungeonIndex())) - return true; - } - if(GetLevel()->AttachedAreaEast() == NO_EXIT) - { - ADD_MESSAGE("You cannot leave this area from this direction."); - return false; - } - if(game::TryTravel(game::GetCurrentDungeonIndex(), GetLevel()->AttachedAreaEast(), STAIRS_UP + WEST)) - return true; - } - else if((GetPos().Y == (game::GetCurrentLevel()->GetYSize() - 1)) && (Direction == SOUTH)) - { - if(GetLevel()->AttachedAreaSouth() == WORLD_MAP) - { - if(game::TryTravel(WORLD_MAP, WORLD_MAP, game::GetCurrentDungeonIndex())) - return true; - } - if(GetLevel()->AttachedAreaSouth() == NO_EXIT) - { - ADD_MESSAGE("You cannot leave this area from this direction."); - return false; - } - if(game::TryTravel(game::GetCurrentDungeonIndex(), GetLevel()->AttachedAreaSouth(), STAIRS_UP + NORTH)) - return true; - } - else if((GetPos().X == 0) && (Direction == WEST)) - { - if(GetLevel()->AttachedAreaWest() == WORLD_MAP) - { - if(game::TryTravel(WORLD_MAP, WORLD_MAP, game::GetCurrentDungeonIndex())) - return true; - } - if(GetLevel()->AttachedAreaWest() == NO_EXIT) - { - ADD_MESSAGE("You cannot leave this area from this direction."); - return false; - } - if(game::TryTravel(game::GetCurrentDungeonIndex(), GetLevel()->AttachedAreaWest(), STAIRS_UP + EAST)) - return true; - } + if(game::TryTravel(WORLD_MAP, WORLD_MAP, game::GetCurrentDungeonIndex())) + return true; } return false; @@ -12764,7 +12692,7 @@ truth character::ReceiveSirenSong(character* Siren) if(!IsHumanoid()) songResist *= 1 + GetResistance(SOUND); else if(HasHead()) - songResist *= 1 + GetHead()->GetTotalResistance(SOUND); + songResist *= 1 + dynamic_cast(this)->GetHead()->GetTotalResistance(SOUND); if(game::OpposedCheck(songResist, Siren->GetAttribute(CHARISMA))) { diff --git a/Main/Source/game.cpp b/Main/Source/game.cpp index 1180ad93d..ddaf7de65 100644 --- a/Main/Source/game.cpp +++ b/Main/Source/game.cpp @@ -7091,7 +7091,7 @@ void game::ShowDeathSmiley(bitmap* Buffer, truth) graphics::BlitDBToScreen(); } -bool game::OpposedCheck(int first, int second, int cap = 5) +bool game::OpposedCheck(int first, int second, int cap) { /* Opposed random check * @@ -7108,5 +7108,5 @@ bool game::OpposedCheck(int first, int second, int cap = 5) * cap of 5 will result in chances between 5% and 95%, even if the numbers * would otherwise have worse/better chances. */ - return RAND_N(100) < max(cap, min(100 - cap, (first * 100) / (first + second))); + return RAND_N(100) < std::max(cap, std::min(100 - cap, (first * 100) / (first + second))); } diff --git a/Main/Source/human.cpp b/Main/Source/human.cpp index 479ac1c64..580f545d8 100644 --- a/Main/Source/human.cpp +++ b/Main/Source/human.cpp @@ -7031,7 +7031,7 @@ truth mirrorimp::DrinkMagic(const beamdata& Beam) if(!Beam.Wand->IsExplosive()) return false; - if(Beam.Owner && game::OpposedCheck(Beam.Owner->GetAttribute(WILL_POWER), GetAttribute(MANA)) + if(Beam.Owner && game::OpposedCheck(Beam.Owner->GetAttribute(WILL_POWER), GetAttribute(MANA))) { Beam.Owner->EditExperience(WILL_POWER, 100, 1 << 12); return false; From e9342792c7dd4aa5f7c29852ab18535d01264cc2 Mon Sep 17 00:00:00 2001 From: finduraf Date: Wed, 12 Feb 2025 15:17:47 +0100 Subject: [PATCH 14/32] fix: Plural fish --- Script/item.dat | 1 + 1 file changed, 1 insertion(+) diff --git a/Script/item.dat b/Script/item.dat index a4f6f84c3..b1f93b0a4 100644 --- a/Script/item.dat +++ b/Script/item.dat @@ -7545,6 +7545,7 @@ fish BitmapPos = 80, 336; Adjective = "dead"; NameSingular = "fish"; + NamePlural = "fish"; Alias == "sardine"; MainMaterialConfig == SARDINE; AttachedGod = SEGES; From e3f677aaaeab01888ce3b7e30cb70899051fe437 Mon Sep 17 00:00:00 2001 From: finduraf Date: Wed, 12 Feb 2025 15:58:14 +0100 Subject: [PATCH 15/32] fix: Make sure that goblin living quarters are big enough --- Script/dungeons/GoblinFort.dat | 3 +++ 1 file changed, 3 insertions(+) diff --git a/Script/dungeons/GoblinFort.dat b/Script/dungeons/GoblinFort.dat index fa40ab526..efd6e5867 100644 --- a/Script/dungeons/GoblinFort.dat +++ b/Script/dungeons/GoblinFort.dat @@ -1017,6 +1017,7 @@ Dungeon GOBLIN_FORT; { AllowBoobyTrappedDoors = false; Flags = NO_MONSTER_GENERATION; + Size = 4:7,4:7; Square, Random HAS_NO_OTERRAIN; { @@ -1041,6 +1042,7 @@ Dungeon GOBLIN_FORT; { AllowBoobyTrappedDoors = false; Flags = NO_MONSTER_GENERATION; + Size = 4:7,4:7; Square, Random HAS_NO_OTERRAIN; { @@ -1065,6 +1067,7 @@ Dungeon GOBLIN_FORT; { AllowBoobyTrappedDoors = false; Flags = NO_MONSTER_GENERATION; + Size = 5:7,5:7; Square, Random HAS_NO_OTERRAIN; { From a6eb41d222b65ad77963fe64cb4ef58ec00ff018 Mon Sep 17 00:00:00 2001 From: finduraf Date: Thu, 13 Feb 2025 11:06:55 +0100 Subject: [PATCH 16/32] feat: Allow opening chests in wilderness --- Main/Source/command.cpp | 20 +++++++++++--------- Main/Source/human.cpp | 4 ++-- 2 files changed, 13 insertions(+), 11 deletions(-) diff --git a/Main/Source/command.cpp b/Main/Source/command.cpp index 520505301..e6a6bd265 100644 --- a/Main/Source/command.cpp +++ b/Main/Source/command.cpp @@ -102,7 +102,7 @@ command* commandsystem::Command[] = new command(&Drink, "drink liquid", 'D', 'D', 'D', true), new command(&Taste, "taste a bit of liquid", 'T', 'T', 'T', true), new command(&Dip, "dip into liquid", '!', '!', '!', false), - new command(&Open, "open", 'o', 'O', 'o', false), + new command(&Open, "open", 'o', 'O', 'o', true), new command(&Close, "close", 'c', 'c', 'c', false), new command(&Search, "search", 's', 's', 's', false), new command(&Look, "look around", 'l', 'L', 'L', true), @@ -330,6 +330,12 @@ truth commandsystem::Open(character* Char) { if(Char->CanOpen()) { + if(game::IsInWilderness()) + { + item* Item = Char->GetStack()->DrawContents(Char, CONST_S("What do you want to open?"), 0, &item::IsOpenable); + return Item && Item->Open(Char); + } + int Key; if(ivanconfig::GetSmartOpenCloseApply()) @@ -367,9 +373,7 @@ truth commandsystem::Open(character* Char) if(Key == 'i') { - item* Item = Char->GetStack()->DrawContents(Char, - CONST_S("What do you want to open?"), - 0, &item::IsOpenable); + item* Item = Char->GetStack()->DrawContents(Char, CONST_S("What do you want to open?"), 0, &item::IsOpenable); return Item && Item->Open(Char); } } @@ -391,7 +395,7 @@ truth commandsystem::Open(character* Char) Key = game::AskForKeyPress(CONST_S("What do you wish to open? " "[press a direction key or space]")); } - else + else // Old "stupid" open { truth OpenableItems = Char->GetStack()->SortedItems(Char, &item::IsOpenable); @@ -404,16 +408,14 @@ truth commandsystem::Open(character* Char) if(Key == 'i' && OpenableItems) { - item* Item = Char->GetStack()->DrawContents(Char, - CONST_S("What do you want to open?"), - 0, &item::IsOpenable); + item* Item = Char->GetStack()->DrawContents(Char, CONST_S("What do you want to open?"), 0, &item::IsOpenable); return Item && Item->Open(Char); } } v2 DirVect = game::GetDirectionVectorForKey(Key); - if(DirVect != ERROR_V2 && Char->GetArea()->IsValidPos(Char->GetPos() + DirVect)){ + if(DirVect != ERROR_V2 && Char->GetArea()->IsValidPos(Char->GetPos() + DirVect)) { return Char->GetNearLSquare(Char->GetPos() + DirVect)->Open(Char); } } diff --git a/Main/Source/human.cpp b/Main/Source/human.cpp index 580f545d8..d6ee3e5e7 100644 --- a/Main/Source/human.cpp +++ b/Main/Source/human.cpp @@ -7288,8 +7288,8 @@ void aslonawizard::GetAICommand() EditAP(-GetSpellAPCost()); - int GasMaterial[] = { MUSTARD_GAS, MAGIC_VAPOUR, SLEEPING_GAS, TELEPORT_GAS, - EVIL_WONDER_STAFF_VAPOUR, EVIL_WONDER_STAFF_VAPOUR }; + const int GasMaterial[] = { MUSTARD_GAS, MAGIC_VAPOUR, SLEEPING_GAS, TELEPORT_GAS, + EVIL_WONDER_STAFF_VAPOUR, EVIL_WONDER_STAFF_VAPOUR }; ToBeCalled = golem::Spawn(GasMaterial[RAND() % 6]); v2 Where = GetLevel()->GetNearestFreeSquare(ToBeCalled, Square->GetPos()); From d5027f11fa2d15b0547bf49866db35aedc3a1f2c Mon Sep 17 00:00:00 2001 From: finduraf Date: Fri, 14 Feb 2025 09:58:27 +0100 Subject: [PATCH 17/32] fix: Tailoring mode info loads twice This save file version check seems to be a vestige of previous version that got left in... Fixes #669 --- Main/Source/cmdcraft.cpp | 5 ----- 1 file changed, 5 deletions(-) diff --git a/Main/Source/cmdcraft.cpp b/Main/Source/cmdcraft.cpp index 5a5b0d5a0..d8deb6444 100644 --- a/Main/Source/cmdcraft.cpp +++ b/Main/Source/cmdcraft.cpp @@ -399,11 +399,6 @@ void recipedata::Load(inputfile& SaveFile) ; - if(game::GetCurrentSavefileVersion() >= 135){ - SaveFile >> bTailoringMode; - SaveFile >> v2TailoringWorkbenchLocation; - } - // if(otSpawnType!=CTT_NONE) // SaveFile >> otSpawn; rc.integrityCheck(); From 86f270032dc2853328dafcdb65133fbab2f344ff Mon Sep 17 00:00:00 2001 From: finduraf Date: Fri, 14 Feb 2025 16:21:40 +0100 Subject: [PATCH 18/32] doc: INSTALL with VS 2022 --- INSTALL | 48 ++++++++++++++++++++++++++++++++---------------- 1 file changed, 32 insertions(+), 16 deletions(-) diff --git a/INSTALL b/INSTALL index 2be834c2c..7efa2c813 100644 --- a/INSTALL +++ b/INSTALL @@ -19,7 +19,8 @@ cd build cmake .. # ".." refers to the parent directory of "build" make make install -Note: This will make changes to /usr/bin, and you have to either run "sudo make install" instead, or log in as root. + +Note: This will make changes to /usr/bin, and you have to either run "sudo make install" instead, or log in as root. Note: Wizard Mode is disabled by default. To enable it run: mkdir build @@ -40,19 +41,19 @@ like this: CMAKE_CXX_FLAGS="-DFELIST_WAITKEYUP" Under DOS: -If you have DJGPP 2.03+ and gcc 2.952+ -installed, type: +If you have DJGPP 2.03+ and gcc 2.952+ installed, type: make -f ivandj.mak -------------------------------------- -Under Windows - Microsoft Visual Studio 2017 (or better): +Under Windows - Microsoft Visual Studio 2022: -You will need to install the C++ tools with CMake support, along with Git integrations from the Visual Studio Installer. -We will not be using Visual Studio in the traditional way with everything squished into a solution file. -Instead we will use Visual Studio to open a repo folder with a top-level CMakeLists.txt, in conjunction with a CMakeSettings.json file to create the cmake build files. -Then we will use msvc to compile ivan.exe, with the help of libraries we install from vcpkg using Powershell (PS). +You will need to install the C++ tools with CMake support, along with Git integrations from the Visual Studio Installer. +We will not be using Visual Studio in the traditional way with everything squished into a solution file. +Instead we will use Visual Studio to open a repo folder with a top-level CMakeLists.txt, in conjunction with +a CMakeSettings.json file to create the cmake build files. +Then we will use msvc to compile ivan.exe, with the help of libraries we install from vcpkg using Powershell (PS). Install vcpkg and install the needed libraries using Powershell: Here is a condensed summary of applicable instructions from https://github.com/microsoft/vcpkg @@ -76,7 +77,7 @@ zlib:x86-windows 1.2.11-5 A compressio Clone attnam/ivan into a directory (for example C:\Users\yourname\source\repos\ivan) -Open Microsoft Visual Studio (2017) +Open Microsoft Visual Studio 2022 Go File->Open Folder @@ -84,7 +85,8 @@ Select C:\Users\yourname\source\repos\ivan Some stuff will happen automatically. The CMakeSettings.json file will be found, and the CMake cache will be generated. -Next to the green "play" button is some text (Select Startup Item...) in a gray dropdown menu. Select "ivan.exe (Install) (ivan\ivan.exe)". +Next to the green "play" button is some text (Select Startup Item...) in a gray dropdown menu. +Select "ivan.exe (Install) (ivan\ivan.exe)". "Build" will appear in the menu next to "CMake". Click Build->ivan.exe (Install) (ivan\ivan.exe) F7 @@ -93,6 +95,14 @@ This will build ivan.exe and install all the components, automatically copying t The build folder is located in C:\Users\yourname\CMakeBuilds\some-long-code-here-abcdef123456\install\x86-Release\ivan Go there and hit ivan.exe, and you're playing IVAN built using Microsoft Visual Studio!!! +-------------------------------------- + +Under Windows - Microsoft Visual Studio OTHER THAN 2022: + +Instructions are the same as for Microsoft Visual Studio 2022, except that you must open CMakeSettings.json +in the project folder and change the generator to your version of VS. For example: + + "generator": "Visual Studio 15 2017" -------------------------------------- @@ -136,11 +146,13 @@ Follow instructions on the page to install correctly. Run MSYS2.exe from either the "-msys64" or "-msys32" folder, depending on your system, and type these commands $ pacman -Syu -Proceed with installation (option Y), then exit by closing the terminal window. The terminal window will crash and burn eventually but may take some time to do so. +Proceed with installation (option Y), then exit by closing the terminal window. +The terminal window will crash and burn eventually but may take some time to do so. Run MSYS2.exe again: $ pacman -Su -proceed with installation (option Y). This will take a long time to download all the packages, depending on your download speed +Proceed with installation (option Y). +This will take a long time to download all the packages, depending on your download speed. $ pacman -S git Proceed with installation (option Y) etcetera @@ -159,10 +171,11 @@ $ pacman -S mingw-w64-i686-SDL2_mixer $ pacman -S mingw-w64-i686-pkg-config -Now the MSYS2 build system is installed, you only need to follow the instructions below to keep IVAN up to date +Now the MSYS2 build system is installed, you only need to follow the instructions below to keep IVAN up to date. Create an empty folder in \ivan\ called msys2 -run MinGW32.exe (from your "-msys64" or "-msys32" folder, whichever is applicable) and change directory to your newly created \ivan\msys2\ folder +Run MinGW32.exe (from your "-msys64" or "-msys32" folder, whichever is applicable) and change directory to your +newly created \ivan\msys2\ folder. In MinGW32.exe type the following commands, respecting the direction of the slashes: $ cmake .. -G "MSYS Makefiles" -DCMAKE_INSTALL_PREFIX=C:/ivan/inst_msys2 @@ -170,7 +183,8 @@ $ make -j4 install Navigate to \ivan\inst_msys2\ivan and you will find the ivan.exe executable! -You will probably need to copy a bunch of DLLs into the directory where ivan.exe is located. These may include the following, likely not an exhaustive list, but they can be found under for example C:\-msys64\mingw32\bin: +You will probably need to copy a bunch of DLLs into the directory where ivan.exe is located. These may include +the following, likely not an exhaustive list, but they can be found under for example C:\-msys64\mingw32\bin: libpng16-16.dll libstdc++-6.dll libwinpthread-1.dll @@ -180,7 +194,9 @@ libSDL2_mixer-2-0-0.dll libmad-0.dll -Use dependencywalker if you need to check for missing libraries, and if you get the message: "error cannot find entrypoint inflateValidate (in dll libpng16-16.dll)" then you need to include zlib1.dll +Use dependencywalker if you need to check for missing libraries, and if you get the message: + "error cannot find entrypoint inflateValidate (in dll libpng16-16.dll)" +then you need to include zlib1.dll -------------------------------------- From 7fbd9e14a8f884d102872b3503cdd8843407e1c6 Mon Sep 17 00:00:00 2001 From: finduraf Date: Fri, 14 Feb 2025 23:22:37 +0100 Subject: [PATCH 19/32] feat: Make crafting an experimental option While this doesn't fix anything, at least this makes sure that the player knows what they are getting into. Crafting can be pretty unstable, so I feel it's reasonable to relegate it to an experimental option. --- Main/Include/iconf.h | 3 +++ Main/Source/cmdcraft.cpp | 7 ++++++- Main/Source/iconf.cpp | 10 ++++++++++ 3 files changed, 19 insertions(+), 1 deletion(-) diff --git a/Main/Include/iconf.h b/Main/Include/iconf.h index 47e387514..ea7c15885 100644 --- a/Main/Include/iconf.h +++ b/Main/Include/iconf.h @@ -83,6 +83,7 @@ class ivanconfig static int GetWorldShapeConfig() { return WorldShapeConfig.Value; } static int GetWorldSeedConfig() { return WorldSeedConfig.Value; } static int GetWorldSizeNumber() { return WorldSizeConfig.Value; } + static truth IsCraftingEnabled() { return CraftingEnabled.Value; } #ifndef __DJGPP__ static int GetGraphicsScale() { return GraphicsScale.Value; } @@ -268,6 +269,8 @@ class ivanconfig static cycleoption WorldShapeConfig; static numberoption WorldSeedConfig; + static truthoption CraftingEnabled; + #ifndef __DJGPP__ static cycleoption GraphicsScale; static truthoption FullScreenMode; diff --git a/Main/Source/cmdcraft.cpp b/Main/Source/cmdcraft.cpp index 5a5b0d5a0..077d8fd85 100644 --- a/Main/Source/cmdcraft.cpp +++ b/Main/Source/cmdcraft.cpp @@ -3093,8 +3093,13 @@ void addMissingMsg(festring& where, cfestring& what){ */ truth commandsystem::Craft(character* Char) //TODO currently this is an over simplified crafting system... should be easy to add recipes and show their formulas... { - return craftcore::Craft(Char); + if(ivanconfig::IsCraftingEnabled()) + return craftcore::Craft(Char); + + ADD_MESSAGE("Crafting is an experimental system and may cause issues. Enable it in Options, if you wish."); + return false; } + truth craftcore::CheckArms(humanoid* h) { bool bLOk,bROk; //dummy diff --git a/Main/Source/iconf.cpp b/Main/Source/iconf.cpp index 3d98f062d..d1b959ec9 100644 --- a/Main/Source/iconf.cpp +++ b/Main/Source/iconf.cpp @@ -179,6 +179,10 @@ truthoption ivanconfig::UseLightEmiterBasedOnVolume("UseLightEmiterBasedOnVolume "Small light sources emit less light", "This experimental feature still has bugs that happen when splitting rocks etc. Most are fixed after restarting the game.", false); +truthoption ivanconfig::CraftingEnabled( "CraftingEnabled", + "Enable crafting", + "Crafting is an experimental system and may cause issues.", + false); truthoption ivanconfig::ShowFullDungeonName("ShowFullDungeonName", "Show full name of current dungeon", "", @@ -1321,6 +1325,12 @@ void ivanconfig::Initialize() //World shape: Flat, [Horizontal Wrap (cylinder)] // Alt names for world shape: pancake (flat), doughnut (torus), brandy snap (cylinder). + fsCategory="Advanced and Experimental"; + configsystem::AddOption(fsCategory,&AllowImportOldSavegame); + configsystem::AddOption(fsCategory,&UseLightEmiterBasedOnVolume); + configsystem::AddOption(fsCategory,&CraftingEnabled); + configsystem::AddOption(fsCategory,&AutoPickUpMatching); + /******************************** * LOAD AND APPLY some SETTINGS * ********************************/ From 6744a07e4fd7c7274b06c18aa145e3369253f740 Mon Sep 17 00:00:00 2001 From: finduraf Date: Fri, 14 Feb 2025 23:32:25 +0100 Subject: [PATCH 20/32] feat: Make more new options default We have quite a few new options, yet many are disabled by default. A lot of players will never give the Options menu much thought, so they will never discover some nifty quality of life additions that are in the game for many years now. This attempts to set all options that improve QoL but do not alter base IVAN experience as enabled by default. Full screen is on by default now. I have seen many players complain about the small window and I think those who do NOT use fullscreen are in minority. Various extra info and better handling options are enabled. Graphics scaling is NOT enabled by default, because while nice, it radically alters the game's looks, in a way that I feel should not be the default. Old vanilla IVAN graphics still looks the best! StartWithNoPet became StartWithPet. It is a bool option and there is no need to make it negative and thus confusing. Also reorganizes the Options menu to group similar options and to better fit each section on each page. --- Doc/HowTo/ConfigSyntax.txt | 2 +- Main/Include/iconf.h | 10 +-- Main/Source/char.cpp | 2 +- Main/Source/game.cpp | 2 +- Main/Source/iconf.cpp | 147 ++++++++++++++++++------------------- 5 files changed, 78 insertions(+), 85 deletions(-) diff --git a/Doc/HowTo/ConfigSyntax.txt b/Doc/HowTo/ConfigSyntax.txt index 635581efc..505014336 100644 --- a/Doc/HowTo/ConfigSyntax.txt +++ b/Doc/HowTo/ConfigSyntax.txt @@ -8,7 +8,7 @@ { let S = "string", N = "number", T = "truth", C = "cycle"; - let OPTIONS = new Map([["DefaultName",S],["FantasyNamePattern",S],["DefaultPetName",S],["AutoSaveInterval",N],["AltAdentureInfo",T],["BeNice",T],["HoldPosMaxDist",N],["MemorizeEquipmentMode",C],["WarnAboutVeryDangerousMonsters",T],["AutoDropLeftOvers",T],["SmartOpenCloseApply",T],["CenterOnPlayerAfterLook",T],["ShowGodInfo",T],["ShowMapAtDetectMaterial",T],["GoOnStopMode",C],["WaitNeutralsMoveAway",T],["Contrast",N],["WindowWidth",N],["WindowHeight",N],["GraphicsScale",C],["FullScreenMode",T],["ScalingQuality",C],["LookZoom",T],["XBRZScale",C],["XBRZSquaresAroundPlayer",N],["SilhouetteScale",C],["AltSilhouette",C],["AltSilhouettePreventColorGlitch",C],["AltListItemPos",C],["AltListItemWidth",N],["StackListPageLength",N],["DungeonGfxScale",C],["OutlinedGfx",T],["FrameSkip",N],["ShowItemsAtPlayerSquare",C],["RotateTimesPerSquare",C],["HitIndicator",C],["ShowMap",C],["PlaySounds",T],["Volume",N],["MIDIOutputDevice",C],["DirectionKeyMap",C],["SaveGameSortMode",C],["ShowTurn",T],["ShowFullDungeonName",T],["SelectedBkgColor",S],["AllowImportOldSavegame",T],["SavegameSafely",T],["HideWeirdHitAnimationsThatLookLikeMiss",T],["GenerateDefinesValidator",T]]); + let OPTIONS = new Map([["DefaultName",S],["FantasyNamePattern",S],["DefaultPetName",S],["AutoSaveInterval",N],["AltAdventureInfo",T],["BeNice",T],["HoldPosMaxDist",N],["MemorizeEquipmentMode",C],["WarnAboutVeryDangerousMonsters",T],["AutoDropLeftOvers",T],["SmartOpenCloseApply",T],["CenterOnPlayerAfterLook",T],["ShowGodInfo",T],["ShowMapAtDetectMaterial",T],["GoOnStopMode",C],["WaitNeutralsMoveAway",T],["Contrast",N],["WindowWidth",N],["WindowHeight",N],["GraphicsScale",C],["FullScreenMode",T],["ScalingQuality",C],["LookZoom",T],["XBRZScale",C],["XBRZSquaresAroundPlayer",N],["SilhouetteScale",C],["AltSilhouette",C],["AltSilhouettePreventColorGlitch",C],["AltListItemPos",C],["AltListItemWidth",N],["StackListPageLength",N],["DungeonGfxScale",C],["OutlinedGfx",T],["FrameSkip",N],["ShowItemsAtPlayerSquare",C],["RotateTimesPerSquare",C],["HitIndicator",C],["ShowMap",C],["PlaySounds",T],["Volume",N],["MIDIOutputDevice",C],["DirectionKeyMap",C],["SaveGameSortMode",C],["ShowTurn",T],["ShowFullDungeonName",T],["SelectedBkgColor",S],["AllowImportOldSavegame",T],["SavegameSafely",T],["HideWeirdHitAnimationsThatLookLikeMiss",T],["GenerateDefinesValidator",T]]); let VARIABLES = new Map([["XSize",30],["YSize",30]]); let isdigit = function (char) { return /[0-9]/.test(char); }; diff --git a/Main/Include/iconf.h b/Main/Include/iconf.h index ea7c15885..7665f6500 100644 --- a/Main/Include/iconf.h +++ b/Main/Include/iconf.h @@ -55,9 +55,9 @@ class ivanconfig static truth GetLookZoom() { return LookZoom.Value; } static truth IsXBRZScale() { return XBRZScale.Value; } static truth IsAutoPickupThrownItems() { return AutoPickupThrownItems.Value; } - static truth IsAltAdentureInfo() { return AltAdentureInfo.Value; } + static truth IsAltAdventureInfo() { return AltAdventureInfo.Value; } static truth UseDescriptiveHP() { return DescriptiveHP.Value; } - static truth GetNoPet() { return StartWithNoPet.Value; } + static truth GetPet() { return StartWithPet.Value; } static int GetXBRZSquaresAroundPlayer() { return XBRZSquaresAroundPlayer.Value; } static int GetStartingDungeonGfxScale() { return iStartingDungeonGfxScale; } static int GetStartingFontGfx() { return iStartingFontGfx; } @@ -197,7 +197,7 @@ class ivanconfig static stringoption SelectedBkgColor; static stringoption AutoPickUpMatching; static numberoption AutoSaveInterval; - static truthoption AltAdentureInfo; + static truthoption AltAdventureInfo; static truthoption CenterOnPlayerAfterLook; static scrollbaroption Contrast; static truthoption ShowGodInfo; @@ -232,7 +232,7 @@ class ivanconfig static truthoption XBRZScale; static truthoption AutoPickupThrownItems; static truthoption DescriptiveHP; - static truthoption StartWithNoPet; + static truthoption StartWithPet; static cycleoption SaveGameSortMode; static cycleoption DistLimitMagicMushrooms; @@ -263,7 +263,7 @@ class ivanconfig static scrollbaroption Volume; static scrollbaroption SfxVolume; static cycleoption MIDIOutputDevice; - + static cycleoption WorldSizeConfig; static cycleoption LandTypeConfig; static cycleoption WorldShapeConfig; diff --git a/Main/Source/char.cpp b/Main/Source/char.cpp index 3c4afc5d2..1a177d752 100644 --- a/Main/Source/char.cpp +++ b/Main/Source/char.cpp @@ -9374,7 +9374,7 @@ void character::ShowAdventureInfo() const { graphics::SetAllowStretchedBlit(); - if(ivanconfig::IsAltAdentureInfo()) + if(ivanconfig::IsAltAdventureInfo()) { ShowAdventureInfoAlt(); } diff --git a/Main/Source/game.cpp b/Main/Source/game.cpp index ddaf7de65..0a7acef35 100644 --- a/Main/Source/game.cpp +++ b/Main/Source/game.cpp @@ -874,7 +874,7 @@ truth game::Init(cfestring& loadBaseName) DefaultDetectMaterial.Empty(); Player->GetStack()->AddItem(encryptedscroll::Spawn()); - if(!ivanconfig::GetNoPet()) + if(ivanconfig::GetPet()) { character* Doggie = dog::Spawn(); Doggie->SetTeam(GetTeam(0)); diff --git a/Main/Source/iconf.cpp b/Main/Source/iconf.cpp index d1b959ec9..4150eae95 100644 --- a/Main/Source/iconf.cpp +++ b/Main/Source/iconf.cpp @@ -85,7 +85,7 @@ cycleoption ivanconfig::HoldPosMaxDist( "HoldPosMaxDist", cycleoption ivanconfig::ShowItemsAtPlayerSquare("ShowItemsAtPlayerSquare", "Show items at player's square", "", - 0, 12, + 5, 12, &ShowItemsAtPlayerSquareDisplayer, &configsystem::NormalCycleChangeInterface, &ShowItemsAtPlayerSquareChanger); @@ -152,13 +152,13 @@ truthoption ivanconfig::TransparentMapLM( "TransparentMapLM", "Show transparent map of the whole level when in look mode.", true); truthoption ivanconfig::AllowImportOldSavegame("AllowImportOldSavegame", - "Import old savegames (v131 up, experimental)", - "", + "Import old or corrupted save files", + "Attempt to import save files that may be incompatible with the current version of the game, or corrupted. May still result in unstable gameplay.", false); truthoption ivanconfig::WaitNeutralsMoveAway("WaitNeutralsMoveAway", "Wait until neutral NPCs move from your path", "When you try to move in a direction that is blocked by a neutral NPC, skip turns until the path is clear. Will not skip turns if the NPC doesn't move from their square, or if there are hostiles nearby.", - false); + true); truthoption ivanconfig::AllWeightIsRelevant("AllWeightIsRelevant", "Only pile items with equal weight on lists", //clutter are useful now for crafting so their weight matters... "", @@ -188,37 +188,37 @@ truthoption ivanconfig::ShowFullDungeonName("ShowFullDungeonName", "", false); truthoption ivanconfig::ShowGodInfo( "ShowGodInfo", - "Show extra info about gods when praying", + "Extra info about gods", "Remember the last response to a prayer for each god.", - false); + true); truthoption ivanconfig::CenterOnPlayerAfterLook("CenterOnPlayerAfterLook", "Center camera on player after exiting look mode", "Always center the displayed region of the dungeon back on player after exiting look mode.", - false); + true); truthoption ivanconfig::WarnAboutDanger( "WarnAboutVeryDangerousMonsters", "Warn about very dangerous monsters", "Display a warning prompt when you encounter an unusually dangerous monster.", true); truthoption ivanconfig::AutoDropLeftOvers("AutoDropLeftOvers", "Drop food leftovers automatically", - "", + "If there are any remains of your edibles (empty bottle, fish skeleton), drop them automatically.", true); truthoption ivanconfig::LookZoom( "LookZoom", "Zoom in look mode", - "", - false); -truthoption ivanconfig::AltAdentureInfo( "AltAdentureInfo", - "Enhanced message review mode after death", - "", - false); + "Show a zoomed-in view of selected square in look mode.", + true); +truthoption ivanconfig::AltAdventureInfo( "AltAdventureInfo", + "Extra info after death", + "Show more information about your adventure, once it comes to its likely quite bloody end.", + true); truthoption ivanconfig::DescriptiveHP( "DescriptiveHP", "Use health level descriptions", "Display description of your relative health rather than numeric value of your hit points.", false); -truthoption ivanconfig::StartWithNoPet( "StartWithNoPet", - "Start with no pet", - "Do not start the game with a puppy.", - false); +truthoption ivanconfig::StartWithPet( "StartWithPet", + "Start with a pet", + "Start the game with a happy little puppy who likes you very much.", + true); cycleoption ivanconfig::MemorizeEquipmentMode("MemorizeEquipmentMode", "NPCs restore equipped items after polymorph", "", @@ -258,8 +258,8 @@ cycleoption ivanconfig::DistLimitMagicMushrooms("DistLimitMagicMushrooms", 0, 5, &DistLimitMagicMushroomsDisplayer); cycleoption ivanconfig::SaveGameSortMode( "SaveGameSortMode", - "Sort savegame files by dungeon IDs", - "Savegame selection menu will be sorted according to the chosen criterion.", + "Sort save files by", + "Saved game selection menu will be sorted according to the chosen criterion.", 0, 4, &SaveGameSortModeDisplayer, &configsystem::NormalCycleChangeInterface, @@ -283,12 +283,12 @@ cycleoption ivanconfig::AltSilhouettePreventColorGlitch("AltSilhouettePreventCol &AltSilhouettePreventColorGlitchDisplayer); cycleoption ivanconfig::DirectionKeyMap( "DirectionKeyMap", "Movement control scheme", - "Select a pre-defined keybinding scheme for the movement of your character. Normal scheme uses NumPad, or arrow keys along with Home, End, PgUp and PgDn for diagonal directions. Alternative scheme is better suited for laptops and uses number and letter keys on the main keyboard. NetHack scheme uses vi keys. After you select a movement control scheme, you may also check the in game keybindings help to see the currently active movement keys. Any other command keys may be auto changed also to not conflict with this movement keys choice.", + "Select a pre-defined keybinding scheme for the movement of your character. Normal scheme uses NumPad, or arrow keys along with Home, End, PgUp and PgDn for diagonal directions. Alternative scheme is better suited for laptops and uses number and letter keys on the main keyboard. NetHack scheme uses vi keys. After you select a movement control scheme, you may also check the in-game keybindings help (press '?') to see the currently active movement keys. Other command keys may be changed to avoid conflict with the movement keys.", DIR_NORM, 3, // {default value, number of options to cycle through} &DirectionKeyMapDisplayer); truthoption ivanconfig::SetupCustomKeys( "SetupCustomKeys", - "Custom command and movement", //TODO all keys one day, and let it work on main menu - "Lets you assign any command to any key binding of your preference. The default keys here will be from the control scheme option above. Only changed keybindings will be saved at the new config file. This global configuration won't work at main menu, load/start some game.", + "Custom control scheme", //TODO all keys one day, and let it work on main menu + "Lets you assign any command to any key binding of your preference. The default keys are defined by the movement control scheme chosen in the option above.", // This configuration won't work at main menu, load/start some game. false, &configsystem::NormalTruthDisplayer, &configsystem::NormalTruthChangeInterface, @@ -329,30 +329,29 @@ scrollbaroption ivanconfig::SfxVolume( "SfxVolume", &SfxVolumeChangeInterface, &SfxVolumeChanger, &SfxVolumeHandler); - cycleoption ivanconfig::MIDIOutputDevice( "MIDIOutputDevice", "Use MIDI soundtrack", "Select an output device for the game music, or disable soundtrack.", 0, 0, // {default value, number of options to cycle through} &MIDIOutputDeviceDisplayer); -cycleoption ivanconfig::LandTypeConfig("LandTypeConfig", - "What land shapes to generate", +cycleoption ivanconfig::LandTypeConfig( "LandTypeConfig", + "Shape of the continents", "Choose whether to generate continents or pangea. If Pangea is selected, the generator will make all locations reachable from the same landmass.", 0, 2, &LandTypeConfigDisplayer); -cycleoption ivanconfig::WorldSizeConfig("WorldSizeConfig", - "Size of the world map", +cycleoption ivanconfig::WorldSizeConfig( "WorldSizeConfig", + "Size of the world", "Select a world size.", 2, 7, &WorldSizeConfigDisplayer); -cycleoption ivanconfig::WorldShapeConfig("WorldShapeConfig", +cycleoption ivanconfig::WorldShapeConfig( "WorldShapeConfig", "Shape of the world", "This affects the player's movement around the world. Pancake worlds are flat, and the player cannot cross the edges of the world map. Brandy snap worlds are like a cylinder, the world map wraps around the horizontal axis. Doughnut worlds are shaped like a torus, the player can wrap around the horizontal and vertical axes.", 0, 3, &WorldShapeConfigDisplayer); -numberoption ivanconfig::WorldSeedConfig("WorldSeedConfig", +numberoption ivanconfig::WorldSeedConfig( "WorldSeedConfig", "Select a world seed", - "0 gives a random world seed, else select a new one at your own risk. If a world cannot be generated with the given seed after a finite number of attempts, you will get a message saying the world generator encountered a bad seed, what that seed was, and a new world will be generated from a random seed instead of the one specified here.", + "Selecting 0 gives you a random world seed, or select a new one at your own risk. If a world cannot be generated with the given seed after a finite number of attempts, you will get a message saying the world generator encountered a bad seed, what that seed was, and a new world will be generated from a random seed instead of the one specified here.", 0, &WorldSeedConfigDisplayer, &WorldSeedConfigChangeInterface, @@ -369,7 +368,7 @@ cycleoption ivanconfig::GraphicsScale( "GraphicsScale", truthoption ivanconfig::FullScreenMode( "FullScreenMode", "Full screen mode", "Display the game in full screen mode.", - false, + true, &configsystem::NormalTruthDisplayer, &configsystem::NormalTruthChangeInterface, &FullScreenModeChanger); @@ -379,7 +378,7 @@ cycleoption ivanconfig::ScalingQuality( "ScalingQuality", 0, 2, &ScalingQualityDisplayer); truthoption ivanconfig::UseExtraMenuGraphics("UseExtraMenuGraphics", - "Use extra main menu graphics", + "Use alternate main menu graphics", "Add changing graphics and sounds to the main menu.", false, &configsystem::NormalTruthDisplayer, @@ -392,7 +391,7 @@ truthoption ivanconfig::PlaySounds( "PlaySounds", "Use sound effects for combat, explosions and more.", true); truthoption ivanconfig::ShowTurn( "ShowTurn", - "Show game turn on message log", + "Show game turn in message log", "Add a game turn number to each action described in the message log.", false); truthoption ivanconfig::OutlinedGfx( "OutlinedGfx", @@ -510,19 +509,19 @@ void ivanconfig::ShowMapDisplayer(const cycleoption* O, festring& Entry) void ivanconfig::ShowItemsAtPlayerSquareDisplayer(const cycleoption* O, festring& Entry) { - if(O->Value>=10){ - Entry << "Use corners if NPC"; - if(O->Value==11)Entry << "+Items"; + if(O->Value >= 10) { + Entry << "corners if NPC"; + if(O->Value == 11) + Entry << " or items"; Entry << " above"; return; } int iCode = game::ItemUnderCode(O->Value); - - if(iCode==0){ + if(iCode == 0){ Entry << "disabled"; }else - if(iCode==1){ + if(iCode == 1){ Entry << "above head"; }else{ switch(game::ItemUnderCorner(iCode)){ @@ -996,7 +995,7 @@ void ivanconfig::WorldShapeConfigDisplayer(const cycleoption* O, festring& Entry v2 ivanconfig::GetWorldSizeConfig() { v2 WorldSize = v2(49, 49); - + if(WorldSizeConfig.Value == HUGE_WORLD) WorldSize = v2(128, 128); else if(WorldSizeConfig.Value == LARGE_WORLD) @@ -1011,7 +1010,7 @@ v2 ivanconfig::GetWorldSizeConfig() WorldSize = v2(84, 52); else WorldSize = v2(49, 49); //SMALL_WORLD - + return WorldSize; } @@ -1221,6 +1220,7 @@ int ivanconfig::iStartingWindowHeight=-1; int ivanconfig::iStartingDungeonGfxScale=-1; int ivanconfig::iStartingFontGfx=-1; bool ivanconfig::bStartingOutlinedGfx=false; + void ivanconfig::Initialize() { festring fsCategory; @@ -1228,21 +1228,21 @@ void ivanconfig::Initialize() fsCategory="General Setup"; configsystem::AddOption(fsCategory,&DefaultName); configsystem::AddOption(fsCategory,&FantasyNamePattern); + configsystem::AddOption(fsCategory,&StartWithPet); configsystem::AddOption(fsCategory,&DefaultPetName); - configsystem::AddOption(fsCategory,&StartWithNoPet); configsystem::AddOption(fsCategory,&AutoSaveInterval); - configsystem::AddOption(fsCategory,&AltAdentureInfo); - fsCategory="Gameplay Options"; + fsCategory="Gameplay"; configsystem::AddOption(fsCategory,&BeNice); configsystem::AddOption(fsCategory,&HoldPosMaxDist); - //configsystem::AddOption(fsCategory,&MemorizeEquipmentMode); // Let everyone retore equipped items on unpolymorph. + //configsystem::AddOption(fsCategory,&MemorizeEquipmentMode); // Let everyone restore equipped items on unpolymorph. configsystem::AddOption(fsCategory,&WarnAboutDanger); configsystem::AddOption(fsCategory,&AutoDropLeftOvers); configsystem::AddOption(fsCategory,&SmartOpenCloseApply); configsystem::AddOption(fsCategory,&CenterOnPlayerAfterLook); configsystem::AddOption(fsCategory,&DescriptiveHP); - configsystem::AddOption(fsCategory,&ShowGodInfo); //gameplay change in a sense that, to remember what each god is about may be a challenge on itself :) + configsystem::AddOption(fsCategory,&AltAdventureInfo); + configsystem::AddOption(fsCategory,&ShowGodInfo); configsystem::AddOption(fsCategory,&ShowMapAtDetectMaterial); configsystem::AddOption(fsCategory,&GoOnStopMode); configsystem::AddOption(fsCategory,&WaitNeutralsMoveAway); @@ -1251,19 +1251,32 @@ void ivanconfig::Initialize() configsystem::AddOption(fsCategory,&EnhancedLights); configsystem::AddOption(fsCategory,&DistLimitMagicMushrooms); configsystem::AddOption(fsCategory,&AutoPickupThrownItems); - configsystem::AddOption(fsCategory,&AutoPickUpMatching); - fsCategory="Game Window"; + fsCategory="Sounds"; + configsystem::AddOption(fsCategory,&PlaySounds); + + std::vector DeviceNames; + int NumDevices = audio::GetMIDIOutputDevices(DeviceNames); + MIDIOutputDevice.Value = 0; + if( NumDevices ) + { + MIDIOutputDevice.Value = 1; + } + MIDIOutputDevice.CycleCount = NumDevices+1; + + configsystem::AddOption(fsCategory,&MIDIOutputDevice); + configsystem::AddOption(fsCategory,&Volume); + configsystem::AddOption(fsCategory,&SfxVolume); + + fsCategory="Graphics"; +#ifndef __DJGPP__ + configsystem::AddOption(fsCategory,&FullScreenMode); +#endif configsystem::AddOption(fsCategory,&Contrast); configsystem::AddOption(fsCategory,&WindowWidth); configsystem::AddOption(fsCategory,&WindowHeight); #ifndef __DJGPP__ configsystem::AddOption(fsCategory,&GraphicsScale); - configsystem::AddOption(fsCategory,&FullScreenMode); -#endif - - fsCategory="Graphics"; -#ifndef __DJGPP__ configsystem::AddOption(fsCategory,&ScalingQuality); #endif configsystem::AddOption(fsCategory,&LookZoom); @@ -1282,26 +1295,11 @@ void ivanconfig::Initialize() configsystem::AddOption(fsCategory,&ShowItemsAtPlayerSquare); configsystem::AddOption(fsCategory,&RotateTimesPerSquare); configsystem::AddOption(fsCategory,&HitIndicator); + configsystem::AddOption(fsCategory,&HideWeirdHitAnimationsThatLookLikeMiss); configsystem::AddOption(fsCategory,&ShowMap); configsystem::AddOption(fsCategory,&TransparentMapLM); configsystem::AddOption(fsCategory,&UseExtraMenuGraphics); - fsCategory="Sounds"; - configsystem::AddOption(fsCategory,&PlaySounds); - - std::vector DeviceNames; - int NumDevices = audio::GetMIDIOutputDevices(DeviceNames); - MIDIOutputDevice.Value = 0; - if( NumDevices ) - { - MIDIOutputDevice.Value = 1; - } - MIDIOutputDevice.CycleCount = NumDevices+1; - - configsystem::AddOption(fsCategory,&MIDIOutputDevice); - configsystem::AddOption(fsCategory,&Volume); - configsystem::AddOption(fsCategory,&SfxVolume); - fsCategory="Input and Interface"; configsystem::AddOption(fsCategory,&DirectionKeyMap); configsystem::AddOption(fsCategory,&SetupCustomKeys); @@ -1311,15 +1309,10 @@ void ivanconfig::Initialize() configsystem::AddOption(fsCategory,&SelectedBkgColor); configsystem::AddOption(fsCategory,&AllowMouseOnFelist); - fsCategory="Advanced Options"; - configsystem::AddOption(fsCategory,&AllowImportOldSavegame); - configsystem::AddOption(fsCategory,&HideWeirdHitAnimationsThatLookLikeMiss); - configsystem::AddOption(fsCategory,&UseLightEmiterBasedOnVolume); - fsCategory="World Generation"; configsystem::AddOption(fsCategory, &WorldSizeConfig); - configsystem::AddOption(fsCategory, &LandTypeConfig); configsystem::AddOption(fsCategory, &WorldShapeConfig); + configsystem::AddOption(fsCategory, &LandTypeConfig); configsystem::AddOption(fsCategory, &WorldSeedConfig); //World shape: Flat, [Horizontal Wrap (cylinder)] @@ -1351,7 +1344,7 @@ void ivanconfig::Initialize() CalculateContrastLuminance(); audio::ChangeMIDIOutputDevice(MIDIOutputDevice.Value); audio::SetVolumeLevel(Volume.Value); - + if(ivanconfig::IsSetupCustomKeys()) game::LoadCustomCommandKeys(); From c031e66ca0d6e4ca7002ff55dd3478b39d9f49e8 Mon Sep 17 00:00:00 2001 From: finduraf Date: Fri, 14 Feb 2025 23:33:24 +0100 Subject: [PATCH 21/32] feat: Consistent crafting command There is no need to be inconsistent. Offer already uses uppercase in two command sets. --- Main/Source/command.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/Main/Source/command.cpp b/Main/Source/command.cpp index e6a6bd265..417d8d20b 100644 --- a/Main/Source/command.cpp +++ b/Main/Source/command.cpp @@ -71,7 +71,7 @@ int command::GetKey() const return Key1; case DIR_ALT: // Alternative return Key2; - case DIR_HACK: // Nethack + case DIR_HACK: // NetHack return Key3; default: ABORT("This is not Vim!"); @@ -83,7 +83,7 @@ command* commandsystem::Command[] = { 0, - /* Sort according to relaiton and assumed frequency of use */ + /* Sort according to relation and assumed frequency of use */ new command(&NOP, "wait a turn", '.', '.', '.', true), new command(&Go, "go / fastwalk", 'g', 'g', 'g', false), @@ -109,10 +109,10 @@ command* commandsystem::Command[] = new command(&ShowMap, "show map", 'm', 'm', 'm', false), new command(&WhatToEngrave, "engrave / inscribe", 'G', 'G', 'G', false), new command(&Talk, "chat", 'C', 'C', 'C', false), - new command(&Craft, "craft", 'f', 'F', 'f', false), + new command(&Craft, "craft", 'f', 'f', 'f', false), new command(&AssignName, "name team members", 'n', 'n', 'N', false), new command(&IssueCommand, "issue commands to team members", 'I', 'I', 'I', false), - new command(&Offer, "offer to gods", 'O', 'f', 'O', false), + new command(&Offer, "offer to gods", 'O', 'F', 'O', false), new command(&Pray, "pray to gods", 'p', 'p', 'p', false), new command(&Sit, "sit down", '_', '_', '_', false), new command(&Rest, "rest and heal", 'h', 'h', 'H', true), From bb689667e03f616ee5eef725b6a8bce6ce147eee Mon Sep 17 00:00:00 2001 From: finduraf Date: Fri, 14 Feb 2025 23:34:49 +0100 Subject: [PATCH 22/32] feat: Quaff in NetHack scheme This has bothered me for quite a while. Most commands are same in IVAN and NetHack, but NetHack uses (q)uaff, not drink. And we have lowercase q free, so why not make the scheme consistent with NetHack? --- Main/Source/command.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Main/Source/command.cpp b/Main/Source/command.cpp index 417d8d20b..5a72a1eaf 100644 --- a/Main/Source/command.cpp +++ b/Main/Source/command.cpp @@ -99,7 +99,7 @@ command* commandsystem::Command[] = new command(&Zap, "zap a wand", 'z', 'z', 'z', false), new command(&Read, "read", 'r', 'r', 'r', false), new command(&Eat, "eat", 'e', 'e', 'e', true), - new command(&Drink, "drink liquid", 'D', 'D', 'D', true), + new command(&Drink, "drink liquid", 'D', 'D', 'q', true), new command(&Taste, "taste a bit of liquid", 'T', 'T', 'T', true), new command(&Dip, "dip into liquid", '!', '!', '!', false), new command(&Open, "open", 'o', 'O', 'o', true), From 78e46fb7a22c1bdd8bc02b78e40ce9f6ec4f4372 Mon Sep 17 00:00:00 2001 From: finduraf Date: Fri, 14 Feb 2025 23:35:08 +0100 Subject: [PATCH 23/32] cicd: Dev version --- CMakeLists.txt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index e2358bad4..e2aba0b97 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -4,9 +4,9 @@ project(ivan CXX C) set(CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/cmake") set(VERSION_MAJOR 0) -set(VERSION_MINOR 59) +set(VERSION_MINOR 60) set(PROJECT_VERSION "${VERSION_MAJOR}.${VERSION_MINOR}") -#set(VERSION_PATCH 0) +#set(VERSION_PATCH dev) #set(PROJECT_VERSION "${VERSION_MAJOR}.${VERSION_MINOR}.${VERSION_PATCH}") set(CMAKE_CXX_FLAGS "-std=c++11 ${CMAKE_CXX_FLAGS}") From 3343f25faa340f9031b84d2bdebe2acfed3af594 Mon Sep 17 00:00:00 2001 From: finduraf Date: Sun, 16 Feb 2025 22:33:50 +0100 Subject: [PATCH 24/32] feat: Halloween surprise --- Main/Include/game.h | 1 + Main/Source/game.cpp | 12 ++++++++++-- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/Main/Include/game.h b/Main/Include/game.h index 40760523d..771af7889 100644 --- a/Main/Include/game.h +++ b/Main/Include/game.h @@ -433,6 +433,7 @@ class game static long GetScore(); static truth TweraifIsFree(); static truth IsXMas(); + static truth IsSamhain(); static int AddToItemDrawVector(const itemvector&); static void ClearItemDrawVector(); static void ItemEntryDrawer(bitmap*, v2, uint); diff --git a/Main/Source/game.cpp b/Main/Source/game.cpp index 0a7acef35..c0fbc8012 100644 --- a/Main/Source/game.cpp +++ b/Main/Source/game.cpp @@ -876,7 +876,7 @@ truth game::Init(cfestring& loadBaseName) if(ivanconfig::GetPet()) { - character* Doggie = dog::Spawn(); + character* Doggie = dog::Spawn(IsSamhain() ? SKELETON_DOG : 0); Doggie->SetTeam(GetTeam(0)); GetWorldMap()->GetPlayerGroup().push_back(Doggie); Doggie->SetAssignedName(ivanconfig::GetDefaultPetName()); @@ -6106,13 +6106,21 @@ truth game::TweraifIsFree() return true; } -truth game::IsXMas() // returns true if date is christmaseve or day +truth game::IsXMas() // returns true if date is Christmas Eve or Day. { time_t Time = time(0); struct tm* TM = localtime(&Time); return (TM->tm_mon == 11 && (TM->tm_mday == 24 || TM->tm_mday == 25)); } +truth game::IsSamhain() +{ + time_t Time = time(0); + struct tm* TM = localtime(&Time); + // Celebrations of Samhain begin on the evening of 31st October and go through 1st November. + return (TM->tm_mon == 9 && TM->tm_mday == 31) || (TM->tm_mon == 10 && TM->tm_mday == 1); +} + int game::AddToItemDrawVector(const itemvector& What) { ItemDrawVector.push_back(What); From 38d11ac7f841af9bdaab05478b5bd67ce9ba9785 Mon Sep 17 00:00:00 2001 From: finduraf Date: Mon, 17 Feb 2025 09:42:13 +0100 Subject: [PATCH 25/32] fix: Skeleton puppy drools blood Oops, ectoplasm is gas, not liquid. --- Main/Source/nonhuman.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Main/Source/nonhuman.cpp b/Main/Source/nonhuman.cpp index ca7e813f4..23a9eb639 100644 --- a/Main/Source/nonhuman.cpp +++ b/Main/Source/nonhuman.cpp @@ -2086,7 +2086,7 @@ void mommo::GetAICommand() void dog::GetAICommand() { if(!game::IsInWilderness() && !(RAND() & 7)) - GetLSquareUnder()->SpillFluid(this, liquid::Spawn(GetConfig() == SKELETON_DOG ? ECTOPLASM : DOG_DROOL, 25 + RAND() % 50), false, false); + GetLSquareUnder()->SpillFluid(this, liquid::Spawn(GetConfig() == SKELETON_DOG ? BLOOD : DOG_DROOL, 25 + RAND() % 50), false, false); character::GetAICommand(); } From de0f9e7c9a583f28c86f01d010a1f9c113ceba3e Mon Sep 17 00:00:00 2001 From: finduraf Date: Mon, 17 Feb 2025 12:22:26 +0100 Subject: [PATCH 26/32] fix: Duplicate fields in scripts Fixes #659 --- Script/char.dat | 10 +--------- Script/item.dat | 2 -- Script/material.dat | 6 +----- Script/olterra.dat | 4 ---- 4 files changed, 2 insertions(+), 20 deletions(-) diff --git a/Script/char.dat b/Script/char.dat index 24bad8cdc..761568c7e 100644 --- a/Script/char.dat +++ b/Script/char.dat @@ -3125,7 +3125,6 @@ golem DefaultCharisma = 5; DefaultMana = 5; TotalVolume = 100000; - TorsoBitmapPos = 256, 0; TotalSize = 250; NameSingular = "golem"; CanBeGenerated = true; @@ -3168,12 +3167,11 @@ golem AttachedGod = NONE; ClassStates = GAS_IMMUNITY; Frequency = 100; - DangerModifier = 2000; + DangerModifier = 1000; DayRequirementForGeneration = 3; CanTalk = false; CanRead = true; BodyPartsDisappearWhenSevered = true; - DangerModifier = 75; AlwaysUseMaterialAttributes = true; IsEnormous = true; CanChoke = false; @@ -5917,7 +5915,6 @@ gibberling LegBitmapPos = 16, 128; TotalVolume = 30000; TotalSize = 90; - SkinColor = rgb16(100, 100, 200); NameSingular = "gibberling"; CanBeGenerated = true; Sex = UNDEFINED; @@ -6122,7 +6119,6 @@ angel Sex = FEMALE; ClassStates = ESP|GAS_IMMUNITY|TELEPORT_CONTROL; TotalVolume = 60000; - TorsoBitmapPos = 432, 0; TotalSize = 200; CanRead = true; NameSingular = "angel"; @@ -6788,7 +6784,6 @@ orc Belt = RUBY belt { Enchantment = 2; } RightGauntlet = DRAGON_HIDE gauntlet(GAUNTLET_OF_STRENGTH) { Enchantment = 2; } RightBoot = SPIDER_SILK boot { Enchantment = 2; } - LeftWielded = 0; KnownCWeaponSkills == POLE_ARMS; CWeaponSkillHits == 2000; RightSWeaponSkillHits = 1000; @@ -7662,7 +7657,6 @@ eddy HasEyes = false; HasHead = false; HasALeg = false; - CanBeGenerated = true; IgnoreDanger = true; HPRequirementForGeneration = 50; DayRequirementForGeneration = 5; @@ -7836,7 +7830,6 @@ darkmage DayRequirementForGeneration = 15; Frequency = 1500; PanicLevel = 75; - Inventory == lantern; CWeaponSkillHits == 50; RightSWeaponSkillHits = 20; LeftSWeaponSkillHits = 20; @@ -8610,7 +8603,6 @@ necromancer IsUnique = true; CanRead = true; IsPolymorphable = false; - PanicLevel = 0; CanBeCloned = false; BodyPartsDisappearWhenSevered = true; CanBeConfused = false; diff --git a/Script/item.dat b/Script/item.dat index b1f93b0a4..7ff5066df 100644 --- a/Script/item.dat +++ b/Script/item.dat @@ -1821,7 +1821,6 @@ holybanana /* materialcontainer->banana-> */ CanBeMirrored = true; /* will create a peel */ AllowEquip = true; IsValuable = true; - CanBePiled = false; IsMaterialChangeable = false; DescriptiveInfo = "Oily Orpiv was an explorer turned merchant. His commercial empire began its rise when on one expedition, he discovered a small village that never had to deal with the hardships of agriculture because of a seemingly miraculous crop. Oily Orpiv had discovered the banana. Being a follower of Mellis, he saw the monetary potential in this new fruit, subjugated the people and turned them into a highly efficient banana production facility. He made a quick profit that he soon used as investment for further business ventures. It is said that Oily Orpiv saved the third banana he ever saw (he ate the first and sold the second, claiming it was the first one) as a keepsake. When later in his life he became the champion of Mellis, this banana was imbued with powers both beneficial and deadly by Oily Orpiv's appreciative patron."; } @@ -5112,7 +5111,6 @@ itemcontainer OAK_WOOD, TEAK_WOOD, EBONY_WOOD, KAURI_WOOD, RATA_WOOD; } MaterialConfigChances = { 20, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 500, 5, 5, 5, 5, 5, 5; } - Roundness = 60; CanBePiled = false; IsAbstract = true; IsPolymorphSpawnable = false; diff --git a/Script/material.dat b/Script/material.dat index 90afbd268..2082661b1 100644 --- a/Script/material.dat +++ b/Script/material.dat @@ -4575,7 +4575,6 @@ organic /* Substances that spoil but are not flesh. */ Color = rgb16(244, 241, 235); NutritionValue = 1000; NameStem = "ommel bone"; - ConsumeEndMessage = CEM_BONE; SpoilModifier = 48000; AttachedGod = MORTIFER; SoftenedMaterial = DRAGON_BONE; @@ -4651,7 +4650,6 @@ organic /* Substances that spoil but are not flesh. */ Color = rgb16(200, 200, 255); NutritionValue = 1000; NameStem = "ommel tooth"; - ConsumeEndMessage = CEM_BONE; SpoilModifier = 48000; AttachedGod = MORTIFER; SoftenedMaterial = MAMMOTH_TUSK; @@ -5625,7 +5623,7 @@ liquid Alpha = 175; Flexibility = 40; AttachedGod = CRUENTUS; - Acidicity = 500: + Acidicity = 500; RustModifier = 500; ConsumeWisdomLimit = 4; CategoryFlags = IS_BLOOD; @@ -5955,7 +5953,6 @@ flesh SpoilModifier = 20000; PriceModifier = 9000; AttachedGod = SEGES; - BodyFlags = Base&~IS_WARM_BLOODED; BodyFlags = Base&~CAN_HAVE_PARASITE&~IS_WARM_BLOODED; CategoryFlags = Base|IS_GOLEM_MATERIAL; } @@ -5968,7 +5965,6 @@ flesh SpoilModifier = 20000; PriceModifier = 9000; AttachedGod = SEGES; - BodyFlags = Base&~IS_WARM_BLOODED; BodyFlags = Base&~CAN_HAVE_PARASITE&~IS_WARM_BLOODED; CategoryFlags = Base|IS_GOLEM_MATERIAL; } diff --git a/Script/olterra.dat b/Script/olterra.dat index 76cf72607..329f14eaf 100644 --- a/Script/olterra.dat +++ b/Script/olterra.dat @@ -227,7 +227,6 @@ decoration CanBeDestroyed = true; DigMessage = "You ruthlessly chop the beautiful tree down."; MainMaterialConfig == GOLD; - ShowMaterial = false; MaterialColorB = rgb16(224, 224, 0); Adjective = "holy"; NameSingular = "tree"; @@ -466,7 +465,6 @@ decoration MaterialColorB = rgb16(0, 150, 0); NameSingular = "oak tree"; BitmapPos = 32, 336; - ShowMaterial = true; HPModifier = 25; IsAlwaysTransparent = false; } @@ -962,7 +960,6 @@ sign { DigMessage = "You smash the sign to tiny bits."; MainMaterialConfig == BALSA_WOOD; - MaterialColorB = rgb16(200,200,200); /* Uses own postfix */ NameSingular = "sign"; BitmapPos = 16, 336; @@ -1035,7 +1032,6 @@ barwall NameSingular = "bars"; BitmapPos = 16, 112; HPModifier = 25; - ShowThingsUnder = true; AttachedGod = LEGIFER; Config BROKEN_BARWALL; From 207afb661522fb7c4a2a153b7dfefcf47dff4cb0 Mon Sep 17 00:00:00 2001 From: finduraf Date: Thu, 20 Feb 2025 10:35:49 +0100 Subject: [PATCH 27/32] doc: Known issue with localtime --- Main/Source/game.cpp | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/Main/Source/game.cpp b/Main/Source/game.cpp index c0fbc8012..0de8fd7ee 100644 --- a/Main/Source/game.cpp +++ b/Main/Source/game.cpp @@ -908,6 +908,8 @@ truth game::Init(cfestring& loadBaseName) Player->GetStack()->AddItem(Present); ADD_MESSAGE("Atavus is happy today! He gives you %s.", Present->CHAR_NAME(INDEFINITE)); } + if(IsSamhain()) + ADD_MESSAGE("%s looks a little under the weather.", ivanconfig::GetDefaultPetName()); /* Set off the worldmap music */ audio::SetPlaybackStatus(0); @@ -6106,6 +6108,14 @@ truth game::TweraifIsFree() return true; } +// FIXME: +// The time related functions such as time fill data into a tm struct or char array in shared memory and then +// returns a pointer to that memory. If the function is called from multiple places in the same program, and +// especially if it is called from multiple threads in the same program, then the calls will overwrite each other's +// data. Possibly replace calls to localtime with localtime_r. With _r, the application code manages allocation +// of the tm struct. That way, separate calls to the function can use their own storage. +// Unfortunately, localtime_r was only added in C23. + truth game::IsXMas() // returns true if date is Christmas Eve or Day. { time_t Time = time(0); From 303883c19f0a110b6998ad1e44f729674f60ea06 Mon Sep 17 00:00:00 2001 From: finduraf Date: Thu, 20 Feb 2025 10:37:40 +0100 Subject: [PATCH 28/32] feat: Equip both paired items --- Main/Source/char.cpp | 118 ++++++++++++++++++++++++++++++++++--------- 1 file changed, 95 insertions(+), 23 deletions(-) diff --git a/Main/Source/char.cpp b/Main/Source/char.cpp index 1a177d752..19e0a4b42 100644 --- a/Main/Source/char.cpp +++ b/Main/Source/char.cpp @@ -8527,8 +8527,11 @@ void character::ReceiveAntidote(long Amount) } else { - if(IsPlayer()) + if(IsPlayer()) { ADD_MESSAGE("Aaaah... You feel much better."); + } else if(CanBeSeenByPlayer()) { + ADD_MESSAGE("%s looks much better.", CHAR_NAME(DEFINITE)); + } Amount -= GetTemporaryStateCounter(POISONED); DeActivateTemporaryState(POISONED); @@ -8897,33 +8900,27 @@ truth character::MoveTowardsHomePos() truth character::TryToChangeEquipment(stack* MainStack, stack* SecStack, int Chosen) { - if(!GetBodyPartOfEquipment(Chosen)) - { + if(!GetBodyPartOfEquipment(Chosen)) { ADD_MESSAGE("Bodypart missing!"); return false; } item* OldEquipment = GetEquipment(Chosen); + if(OldEquipment) { + if(!IsPlayer() && BoundToUse(OldEquipment, Chosen)) { + ADD_MESSAGE("%s refuses to unequip %s.", CHAR_DESCRIPTION(DEFINITE), OldEquipment->CHAR_NAME(DEFINITE)); + return false; + } - if(!IsPlayer() && BoundToUse(OldEquipment, Chosen)) - { - ADD_MESSAGE("%s refuses to unequip %s.", CHAR_DESCRIPTION(DEFINITE), OldEquipment->CHAR_NAME(DEFINITE)); - return false; - } - - if(OldEquipment) - { - if(!OldEquipment->CanBeUnEquipped(Chosen)) - { + if(!OldEquipment->CanBeUnEquipped(Chosen)) { if(IsPlayer()) ADD_MESSAGE("You fail to unequip %s.", OldEquipment->CHAR_NAME(DEFINITE)); else ADD_MESSAGE("%s fails to unequip %s.", CHAR_DESCRIPTION(DEFINITE), OldEquipment->CHAR_NAME(DEFINITE)); - return false; } - else - OldEquipment->MoveTo(MainStack); + + OldEquipment->MoveTo(MainStack); } sorter Sorter = EquipmentSorter(Chosen); @@ -8948,7 +8945,7 @@ truth character::TryToChangeEquipment(stack* MainStack, stack* SecStack, int Cho SecStack ? festring(GetDescription(DEFINITE) + " is " + GetVerbalBurdenState()) : CONST_S(""), GetVerbalBurdenStateColor(), - NONE_AS_CHOICE|NO_MULTI_SELECT, + NONE_AS_CHOICE|NO_MULTI_SELECT|SELECT_PAIR, Sorter); if(Return == ESCAPED) @@ -8963,6 +8960,7 @@ truth character::TryToChangeEquipment(stack* MainStack, stack* SecStack, int Cho } item* Item = ItemVector.empty() ? 0 : ItemVector[0]; + int otherChosen = -1; if(Item) { @@ -8982,11 +8980,83 @@ truth character::TryToChangeEquipment(stack* MainStack, stack* SecStack, int Cho return false; } + // Handle paired items: + if(Item->HandleInPairs() && ItemVector.size() > 1) { + switch (Chosen) { + case RIGHT_GAUNTLET_INDEX: otherChosen = LEFT_GAUNTLET_INDEX; break; + case LEFT_GAUNTLET_INDEX: otherChosen = RIGHT_GAUNTLET_INDEX; break; + case RIGHT_BOOT_INDEX: otherChosen = LEFT_BOOT_INDEX; break; + case LEFT_BOOT_INDEX: otherChosen = RIGHT_BOOT_INDEX; break; + default: break; + } + + if(otherChosen != -1) { + if(!GetBodyPartOfEquipment(otherChosen) || !game::TruthQuestion("Do you want to wear both items? [y/N]", YES)) + otherChosen = -1; + } + } + Item->RemoveFromSlot(); SetEquipment(Chosen, Item); - if(CheckIfEquipmentIsNotUsable(Chosen)) - Item->MoveTo(MainStack); // small bug? + // Wear first/only item: + if(CheckIfEquipmentIsNotUsable(Chosen)) { + // TODO small bug? + Item->MoveTo(MainStack); + Item = 0; + otherChosen = -1; + } + + // Wear possible second item: + if(otherChosen != -1) + { + item* otherOldEquipment = GetEquipment(otherChosen); + + if(otherOldEquipment) { + if(!IsPlayer() && BoundToUse(otherOldEquipment, otherChosen)) { + ADD_MESSAGE("%s refuses to unequip %s.", CHAR_DESCRIPTION(DEFINITE), otherOldEquipment->CHAR_NAME(DEFINITE)); + otherChosen = -1; + } + + if(otherChosen != -1 && !otherOldEquipment->CanBeUnEquipped(otherChosen)) { + if(IsPlayer()) + ADD_MESSAGE("You fail to unequip %s.", otherOldEquipment->CHAR_NAME(DEFINITE)); + else + ADD_MESSAGE("%s fails to unequip %s.", CHAR_DESCRIPTION(DEFINITE), otherOldEquipment->CHAR_NAME(DEFINITE)); + otherChosen = -1; + } + + if(otherChosen != -1) + otherOldEquipment->MoveTo(MainStack); + } + + item* otherItem = ItemVector[1]; + if(otherChosen != -1 && otherItem) + { + if(!IsPlayer() && !AllowEquipment(otherItem, otherChosen)) { + ADD_MESSAGE("%s refuses to equip %s.", CHAR_DESCRIPTION(DEFINITE), otherItem->CHAR_NAME(DEFINITE)); + otherChosen = -1; + } + + if(otherChosen != -1 && !otherItem->CanBeEquipped(otherChosen)) { + if(IsPlayer()) + ADD_MESSAGE("You fail to equip %s.", otherItem->CHAR_NAME(DEFINITE)); + else + ADD_MESSAGE("%s fails to equip %s.", CHAR_DESCRIPTION(DEFINITE), otherItem->CHAR_NAME(DEFINITE)); + otherChosen = -1; + } + + if(otherChosen != -1) { + otherItem->RemoveFromSlot(); + SetEquipment(otherChosen, otherItem); + + if(CheckIfEquipmentIsNotUsable(otherChosen)) { + otherItem->MoveTo(MainStack); + otherChosen = -1; + } + } + } + } } return Item != OldEquipment; @@ -12511,17 +12581,19 @@ void character::ForcePutNear(v2 Pos) PutTo(NewPos); } -void character::ReceiveMustardGas(int BodyPart, long Volume) +void character::ReceiveMustardGas(int BodyPartIndex, long Volume) { - if(Volume) - GetBodyPart(BodyPart)->AddFluid(liquid::Spawn(MUSTARD_GAS_LIQUID, Volume), CONST_S("skin"), 0, true); + bodypart* BodyPart = GetBodyPart(BodyPartIndex); + + if(BodyPart && Volume) + BodyPart->AddFluid(liquid::Spawn(MUSTARD_GAS_LIQUID, Volume), CONST_S("skin"), 0, true); } void character::ReceiveMustardGasLiquid(int BodyPartIndex, long Modifier) { bodypart* BodyPart = GetBodyPart(BodyPartIndex); - if(BodyPart->GetMainMaterial()->GetInteractionFlags() & IS_AFFECTED_BY_MUSTARD_GAS) + if(BodyPart && BodyPart->GetMainMaterial()->GetInteractionFlags() & IS_AFFECTED_BY_MUSTARD_GAS) { long Tries = Modifier; Modifier -= Tries; //opt%? From e836ef7fd6652eb91d843699d4dcacf23e4091b6 Mon Sep 17 00:00:00 2001 From: finduraf Date: Fri, 21 Feb 2025 11:42:04 +0100 Subject: [PATCH 29/32] fix: CStr, not festring --- Main/Source/game.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Main/Source/game.cpp b/Main/Source/game.cpp index 0de8fd7ee..8b3e4c688 100644 --- a/Main/Source/game.cpp +++ b/Main/Source/game.cpp @@ -909,7 +909,7 @@ truth game::Init(cfestring& loadBaseName) ADD_MESSAGE("Atavus is happy today! He gives you %s.", Present->CHAR_NAME(INDEFINITE)); } if(IsSamhain()) - ADD_MESSAGE("%s looks a little under the weather.", ivanconfig::GetDefaultPetName()); + ADD_MESSAGE("%s looks a little under the weather.", ivanconfig::GetDefaultPetName().CStr()); /* Set off the worldmap music */ audio::SetPlaybackStatus(0); From 12056114b4a5cff0991d24ca52185d6a9cc9c49b Mon Sep 17 00:00:00 2001 From: finduraf Date: Fri, 21 Feb 2025 11:47:11 +0100 Subject: [PATCH 30/32] fix: BlurMemory and Amnesia fail in wilderness --- Main/Source/bodypart.cpp | 12 ++++++++---- Main/Source/char.cpp | 2 +- Main/Source/dungeon.cpp | 22 +++++++++------------- Main/Source/miscitem.cpp | 2 +- 4 files changed, 19 insertions(+), 19 deletions(-) diff --git a/Main/Source/bodypart.cpp b/Main/Source/bodypart.cpp index 7ddf08815..8bf51829a 100644 --- a/Main/Source/bodypart.cpp +++ b/Main/Source/bodypart.cpp @@ -3564,17 +3564,21 @@ void head::SignalPossibleUsabilityChange() if(RAND_N(5)) { ADD_MESSAGE("Your memory becomes blurred."); - GetLevel()->Amnesia(25 + RAND_N(50)); Master->EditExperience(INTELLIGENCE, -80, 1 << 13); - game::SendLOSUpdateRequest(); + if(!game::IsInWilderness()) { + GetLevel()->Amnesia(25 + RAND_N(50)); + game::SendLOSUpdateRequest(); + } } else { ADD_MESSAGE("A terrible concussion garbles your consciousness."); Master->BeginTemporaryState(CONFUSED, 5000 + RAND_N(5000)); Master->EditExperience(INTELLIGENCE, -100, 1 << 14); - GetLevel()->BlurMemory(); - game::SendLOSUpdateRequest(); + if(!game::IsInWilderness()) { + GetLevel()->BlurMemory(); + game::SendLOSUpdateRequest(); + } } } else diff --git a/Main/Source/char.cpp b/Main/Source/char.cpp index 19e0a4b42..3e31fb6f6 100644 --- a/Main/Source/char.cpp +++ b/Main/Source/char.cpp @@ -5042,7 +5042,7 @@ void character::DoDetecting() if(Squares > GetAttribute(INTELLIGENCE) * (25 + RAND() % 51)) { ADD_MESSAGE("An enormous burst of geographical information overwhelms your consciousness. Your mind cannot cope with it and your memories blur."); - Level->BlurMemory(); + Level->BlurMemory(); // !game::IsInWilderness() is already checked by DetectHandler() BeginTemporaryState(CONFUSED, 1000 + RAND() % 1000); EditExperience(INTELLIGENCE, -100, 1 << 12); } diff --git a/Main/Source/dungeon.cpp b/Main/Source/dungeon.cpp index 95bf89cc5..3fc9f6c41 100644 --- a/Main/Source/dungeon.cpp +++ b/Main/Source/dungeon.cpp @@ -94,18 +94,18 @@ truth dungeon::PrepareLevel(int Index, truth Visual) { festring fsGenLoopDL;{const char* pc = std::getenv("IVAN_DebugGenDungeonLevelLoopID");if(pc!=NULL)fsGenLoopDL<SetDungeon(this); NewLevel->SetIndex(Index); @@ -123,11 +123,11 @@ truth dungeon::PrepareLevel(int Index, truth Visual) game::SetEnterTextDisplacement(Displacement); game::TextScreen(CONST_S("Entering ") + GetLevelDescription(Index) + CONST_S("...\n\nThis may take some time, please wait."), - Displacement, WHITE, false, + Displacement, WHITE, false, true, &game::BusyAnimation); game::TextScreen(CONST_S("Entering ") + GetLevelDescription(Index) + CONST_S("...\n\nPress any key to continue."), - Displacement, WHITE, game::GetAutoPlayMode()<2, + Displacement, WHITE, game::GetAutoPlayMode()<2, false, &game::BusyAnimation); game::SetEnterImage(0); delete EnterImage; @@ -158,7 +158,7 @@ truth dungeon::PrepareLevel(int Index, truth Visual) //TODO it is not working well, memory usage keeps increasing... if(NewLevel ){delete NewLevel ;NewLevel=NULL;} if(EnterImage){delete EnterImage;EnterImage=NULL;} - + //retry } } //for() @@ -210,10 +210,6 @@ void dungeon::PrepareMusic(int Index) } audio::SetPlaybackStatus(audio::PLAYING); } - - - - } void dungeon::SaveLevel(cfestring& SaveName, int Number, truth DeleteAfterwards) @@ -312,7 +308,7 @@ inputfile& operator>>(inputfile& SaveFile, dungeon*& Dungeon) /** * The wrong luminance saved to a lsquare problem - * may happen after craft/split eg.: a blue crystal stone, + * may happen after craft/split e.g.: a blue crystal stone, * then you save the game and re-load it and the luminance would be still there. * TODO this workaround will not be necessary when the problem is fixed on it's origin */ @@ -333,7 +329,7 @@ level* dungeon::LoadLevel(inputfile& SaveFile, int Number) Level[Number]->SetLevelScript(GetLevelScript(Number)); PrepareMusic(Number); WorkaroundFixLuminance(Level[Number]); - + return Level[Number]; } diff --git a/Main/Source/miscitem.cpp b/Main/Source/miscitem.cpp index 72e88b3b8..a19bb6566 100644 --- a/Main/Source/miscitem.cpp +++ b/Main/Source/miscitem.cpp @@ -3087,7 +3087,7 @@ void scrollofdetectmaterial::FinishReading(character* Reader) { ADD_MESSAGE("An enormous burst of geographical information overwhelms your " "consciousness. Your mind cannot cope with it and your memories blur."); - Level->BlurMemory(); + Level->BlurMemory(); // !game::IsInWilderness() is already handled by reading command Reader->BeginTemporaryState(CONFUSED, 1000 + RAND() % 1000); Reader->EditExperience(INTELLIGENCE, -100, 1 << 12); } From e7ba98f35f71acb799df1b612a6ff200317898b0 Mon Sep 17 00:00:00 2001 From: finduraf Date: Fri, 21 Feb 2025 18:25:47 +0100 Subject: [PATCH 31/32] feat: Show weight in kg --- FeLib/Include/festring.h | 4 +++ FeLib/Source/festring.cpp | 63 +++++++++++++++++++++++++++++++++++++++ Main/Source/char.cpp | 4 +-- Main/Source/command.cpp | 4 +-- Main/Source/gear.cpp | 15 ++++++---- Main/Source/item.cpp | 7 +++-- Main/Source/miscitem.cpp | 14 +++++---- 7 files changed, 94 insertions(+), 17 deletions(-) diff --git a/FeLib/Include/festring.h b/FeLib/Include/festring.h index 3c1af2a54..2e4f7255a 100644 --- a/FeLib/Include/festring.h +++ b/FeLib/Include/festring.h @@ -119,6 +119,8 @@ class festring void ExtractWord(festring&); long GetCheckSum() const; void EnsureOwnsData(bool = false); + inline bool IsUnique () const { return (OwnsData && Data && (REFS(Data) == 0)); } + void PutWeight (int w); // Nicely formatted weight private: static void InstallIntegerMap(); static void DeInstallIntegerMap(); @@ -126,6 +128,8 @@ class festring void CreateNewData(sizetype); void CreateOwnData(cchar*, sizetype); festring& AppendInt(long); + festring& AppendIntr (cchar* CStr, sizetype clen); + festring& AppendStr (cchar* s); festring& Append(char); festring& Append(cchar*, sizetype); festring& Append(cfestring&); diff --git a/FeLib/Source/festring.cpp b/FeLib/Source/festring.cpp index 6d26138ce..7535dcf44 100644 --- a/FeLib/Source/festring.cpp +++ b/FeLib/Source/festring.cpp @@ -907,3 +907,66 @@ void festring::EnsureOwnsData(bool Unique) CreateOwnData(Data, Size); } } + +festring& festring::AppendIntr(cchar* CStr, sizetype N) +{ + if(N == 0) + return *this; + + sizetype OldSize = Size; + sizetype NewSize = OldSize+N; + char* OldPtr = Data; + + if(OwnsData && IsUnique() && NewSize <= Reserved) { + memmove(OldPtr + OldSize, CStr, N); + Size = NewSize; + } else { + SlowAppend(CStr, N); + } + return *this; +} + +festring& festring::AppendStr(cchar* s) +{ + if(s && s[0]) { + return AppendIntr(s, (sizetype)strlen(s)); + } else { + return *this; + } +} + +void festring::PutWeight(int w) { + if(w < 1000) { + *this << w << "g"; + } else { + int kg = w / 1000; + int g = w % 1000; + + if(g != 0) { + if(g % 100 != 0) { + AppendStr("~"); + + if(g % 100 > 50) + g = g / 100 + 1; + else + g = g / 100; + + if(g == 10) { + kg += 1; + g = 0; + } + } else { + g /= 100; + } + } + + *this << kg; + + if (g != 0) { + AppendStr("."); + (*this) << g; + } + + AppendStr("kg"); + } +} diff --git a/Main/Source/char.cpp b/Main/Source/char.cpp index 3e31fb6f6..72659b6d6 100644 --- a/Main/Source/char.cpp +++ b/Main/Source/char.cpp @@ -11542,9 +11542,7 @@ truth character::EquipmentScreen(stack* MainStack, stack* SecStack) if(IsPlayer()) { festring Total("Total weight: "); - Total << TotalEquippedWeight; - Total << "g"; - + Total.PutWeight(TotalEquippedWeight); List.AddDescription(CONST_S("")); List.AddDescription(Total); } diff --git a/Main/Source/command.cpp b/Main/Source/command.cpp index 5a72a1eaf..ebf9577ca 100644 --- a/Main/Source/command.cpp +++ b/Main/Source/command.cpp @@ -634,8 +634,8 @@ truth commandsystem::ShowInventory(character* Char) { itemvector WhichItem; festring Title("Your inventory (total weight: "); - Title << Char->GetStack()->GetWeight(); - Title << "g)"; + Title.PutWeight(Char->GetStack()->GetWeight()); + Title << ")"; Char->GetStack()->DrawContents(WhichItem, Char, Title, REMEMBER_SELECTED); return false; diff --git a/Main/Source/gear.cpp b/Main/Source/gear.cpp index 48642ae6a..cc3563159 100644 --- a/Main/Source/gear.cpp +++ b/Main/Source/gear.cpp @@ -427,7 +427,8 @@ void meleeweapon::AddInventoryEntry(ccharacter* Viewer, festring& Entry, if(ShowSpecialInfo) { - Entry << " [" << GetWeight() << "g"; + Entry << " ["; + Entry.PutWeight(GetWeight()); if(ivanconfig::IsShowVolume()) Entry << " " << GetVolume() << "cm3"; Entry << ", DAM " << GetBaseMinDamage() << '-' << GetBaseMaxDamage(); @@ -646,7 +647,8 @@ void armor::AddInventoryEntry(ccharacter*, festring& Entry, int Amount, truth Sh } if(ShowSpecialInfo) - Entry << " [" << GetWeight() * Amount << "g"; + Entry << " ["; + Entry.PutWeight(GetWeight() * Amount); if(ivanconfig::IsShowVolume()) Entry << " " << GetVolume() << "cm3"; Entry << ", AV " << GetStrengthValue() << ']'; @@ -659,7 +661,8 @@ void shield::AddInventoryEntry(ccharacter* Viewer, festring& Entry, if(ShowSpecialInfo) { - Entry << " [" << GetWeight() << "g"; + Entry << " ["; + Entry.PutWeight(GetWeight()); if(ivanconfig::IsShowVolume()) Entry << " " << GetVolume() << "cm3"; Entry << ", AV " << GetStrengthValue(); @@ -1408,7 +1411,8 @@ void taiaha::AddInventoryEntry(ccharacter* Viewer, festring& Entry, int, truth S if(ShowSpecialInfo) { - Entry << " [" << GetWeight() << "g"; + Entry << " ["; + Entry.PutWeight(GetWeight()); if(ivanconfig::IsShowVolume()) Entry << " " << GetVolume() << "cm3"; Entry << ", DAM " << GetBaseMinDamage() << '-' << GetBaseMaxDamage(); @@ -1913,7 +1917,8 @@ void chastitybelt::AddInventoryEntry(ccharacter*, festring& Entry, int Amount, t } if(ShowSpecialInfo) - Entry << " [" << GetWeight() * Amount << "g"; + Entry << " ["; + Entry.PutWeight(GetWeight() * Amount); if(ivanconfig::IsShowVolume()) Entry << ", " << GetVolume() << "cm3"; Entry << ", AV " << GetStrengthValue(); diff --git a/Main/Source/item.cpp b/Main/Source/item.cpp index 5f44f2d1a..830074cdf 100644 --- a/Main/Source/item.cpp +++ b/Main/Source/item.cpp @@ -864,8 +864,11 @@ void item::AddInventoryEntry(ccharacter*, festring& Entry, int Amount, truth Sho } if(ShowSpecialInfo){ - Entry << " [" << GetWeight() * Amount << "g"; //TODO if the 1st and 2nd of 3 items have 100g and the last has 2000g, the weight shown would be 300g ... now that lumps, stones and sticks are useful, this may not be that good... - if(ivanconfig::IsShowVolume()){ + //TODO if the 1st and 2nd of 3 items have 100g and the last has 2000g, the weight shown would be 300g ... now that lumps, stones and sticks are useful, this may not be that good... + Entry << " ["; + Entry.PutWeight(GetWeight() * Amount); + + if(ivanconfig::IsShowVolume()) { Entry << " " << GetVolume() * Amount << "cm3"; //the item can be seen therefore it's volume guessed already if(GetSecondaryMaterial()==NULL){ //simple items like ingots sticks etc static char density[20]; diff --git a/Main/Source/miscitem.cpp b/Main/Source/miscitem.cpp index a19bb6566..708ccb548 100644 --- a/Main/Source/miscitem.cpp +++ b/Main/Source/miscitem.cpp @@ -1810,7 +1810,8 @@ void wand::AddInventoryEntry(ccharacter*, festring& Entry, int, truth ShowSpecia if(ShowSpecialInfo) { - Entry << " [" << GetWeight() << "g"; + Entry << " ["; + Entry.PutWeight(GetWeight()); if(ivanconfig::IsShowVolume()) Entry << " " << GetVolume() << "cm3"; @@ -2735,7 +2736,8 @@ void holybanana::AddInventoryEntry(ccharacter* Viewer, festring& Entry, int, tru if(ShowSpecialInfo) { - Entry << " [" << GetWeight() << "g"; + Entry << " ["; + Entry.PutWeight(GetWeight()); if(ivanconfig::IsShowVolume()) Entry << " " << GetVolume() << "cm3"; Entry << ", DAM " << GetBaseMinDamage() << '-' << GetBaseMaxDamage(); @@ -3436,12 +3438,13 @@ void holyhandgrenade::AddInventoryEntry(ccharacter* Viewer, festring& Entry, int if(ShowSpecialInfo) { - Entry << " [" << GetWeight() << "g"; + Entry << " ["; + Entry.PutWeight(GetWeight()); if(!!WillExplodeSoon()) Entry << ", " << "(armed)"; - Entry << ']'; + Entry << "]"; } } @@ -3829,7 +3832,8 @@ void ullrbone::AddInventoryEntry(const character* Viewer, festring& Entry, int, if(ShowSpecialInfo) { - Entry << " [" << GetWeight() << "g"; + Entry << " ["; + Entry.PutWeight(GetWeight()); if(ivanconfig::IsShowVolume()) Entry << " " << GetVolume() << "cm3"; Entry << ", DAM " << GetBaseMinDamage() << '-' << GetBaseMaxDamage(); From 8399cb2b281807d6c2a7c0361c8be35d91b04320 Mon Sep 17 00:00:00 2001 From: finduraf Date: Fri, 21 Feb 2025 18:26:33 +0100 Subject: [PATCH 32/32] fix: No need for doubled brackets This is already shown in square brackets. --- Main/Source/miscitem.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Main/Source/miscitem.cpp b/Main/Source/miscitem.cpp index 708ccb548..6cfc24a5d 100644 --- a/Main/Source/miscitem.cpp +++ b/Main/Source/miscitem.cpp @@ -3442,7 +3442,7 @@ void holyhandgrenade::AddInventoryEntry(ccharacter* Viewer, festring& Entry, int Entry.PutWeight(GetWeight()); if(!!WillExplodeSoon()) - Entry << ", " << "(armed)"; + Entry << ", armed"; Entry << "]"; }