From bd1fdbb91cd950f3a44710e41a427cf4df045ce1 Mon Sep 17 00:00:00 2001 From: Atermonera Date: Sun, 21 Nov 2021 14:47:32 -0800 Subject: [PATCH 01/13] Initialize engine_loader landmark immediately --- code/modules/shieldgen/directional_shield.dm | 2 +- maps/submaps/engine_submaps/engine.dm | 5 +++++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/code/modules/shieldgen/directional_shield.dm b/code/modules/shieldgen/directional_shield.dm index 2677a56536..209dc9ca9a 100644 --- a/code/modules/shieldgen/directional_shield.dm +++ b/code/modules/shieldgen/directional_shield.dm @@ -103,7 +103,7 @@ if(always_on) create_shields() GLOB.moved_event.register(src, src, .proc/moved_event) - ..() + return ..() /obj/item/shield_projector/Destroy() destroy_shields() diff --git a/maps/submaps/engine_submaps/engine.dm b/maps/submaps/engine_submaps/engine.dm index 74db547fb2..403ec45374 100644 --- a/maps/submaps/engine_submaps/engine.dm +++ b/maps/submaps/engine_submaps/engine.dm @@ -3,7 +3,12 @@ name = "Engine Loader" var/clean_turfs // A list of lists, where each list is (x, ) +<<<<<<< HEAD /obj/effect/landmark/engine_loader/New() +======= +INITIALIZE_IMMEDIATE(/obj/effect/landmark/engine_loader) +/obj/effect/landmark/engine_loader/Initialize() +>>>>>>> 2d43d031101... Merge pull request #8354 from Atermonera/fix_engineload if(SSmapping.engine_loader) warning("Duplicate engine_loader landmarks: [log_info_line(src)] and [log_info_line(SSmapping.engine_loader)]") delete_me = TRUE From fe109a0972849153c07d42dd6ae26d824ad009a1 Mon Sep 17 00:00:00 2001 From: Atermonera Date: Mon, 17 Jan 2022 17:30:46 -0800 Subject: [PATCH 02/13] Fixes literally everything dismantling walls --- code/game/turfs/simulated/wall_attacks.dm | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/code/game/turfs/simulated/wall_attacks.dm b/code/game/turfs/simulated/wall_attacks.dm index a03effa2e2..d671e00252 100644 --- a/code/game/turfs/simulated/wall_attacks.dm +++ b/code/game/turfs/simulated/wall_attacks.dm @@ -240,6 +240,10 @@ return // Basic dismantling. +<<<<<<< HEAD +======= + var/dismantle_toolspeed = 0 +>>>>>>> 6489e47e1a7... Merge pull request #8371 from Atermonera/wall_deconstruction_fix if(isnull(construction_stage) || !reinf_material) var/cut_delay = 60 - material.cut_delay @@ -259,6 +263,7 @@ else if(istype(W,/obj/item/weapon/melee/energy/blade)) dismantle_sound = "sparks" dismantle_verb = "slicing" + dismantle_toolspeed = 1 cut_delay *= 0.5 else if(istype(W,/obj/item/weapon/pickaxe)) var/obj/item/weapon/pickaxe/P = W @@ -272,7 +277,7 @@ if(dismantle_sound) playsound(src, dismantle_sound, 100, 1) - if(cut_delay<0) + if(cut_delay < 0) cut_delay = 0 if(!do_after(user,cut_delay * W.toolspeed)) @@ -386,7 +391,7 @@ construction_stage = 0 user.update_examine_panel(src) update_icon() - to_chat(user, "The slice through the support rods.") + to_chat(user, "You slice through the support rods.") return if(0) if(W.is_crowbar()) From e6c3ed8aa94f33cb0a432c9a7fc796618ebfbce7 Mon Sep 17 00:00:00 2001 From: VerySoft Date: Sat, 12 Feb 2022 21:44:11 -0500 Subject: [PATCH 03/13] Map Swap SD Time! --- vorestation.dme | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/vorestation.dme b/vorestation.dme index d085c275e8..bf93f50b65 100644 --- a/vorestation.dme +++ b/vorestation.dme @@ -4093,6 +4093,7 @@ #include "maps\southern_cross\loadout\loadout_suit.dm" #include "maps\southern_cross\loadout\loadout_uniform.dm" #include "maps\southern_cross\loadout\loadout_vr.dm" +#include "maps\stellardelight\stellar_delight.dm" #include "maps\submaps\_helpers.dm" #include "maps\submaps\_readme.dm" #include "maps\submaps\engine_submaps\engine.dm" @@ -4102,6 +4103,5 @@ #include "maps\submaps\space_submaps\debrisfield\debrisfield.dm" #include "maps\submaps\surface_submaps\wilderness\wilderness.dm" #include "maps\submaps\surface_submaps\wilderness\wilderness_areas.dm" -#include "maps\tether\tether.dm" #include "maps\~map_system\maps.dm" // END_INCLUDE From f2bc8d030fa752d5e5751e2129cc687d1c6ba6ed Mon Sep 17 00:00:00 2001 From: Cerebulon Date: Sun, 13 Feb 2022 07:51:04 +0000 Subject: [PATCH 04/13] Cybernetic Augments and Sick Tats --- code/_helpers/global_lists.dm | 3 + code/game/dna/dna2.dm | 6 + .../items/weapons/implants/implantlanguage.dm | 1 + .../loadout/loadout_cyberware.dm | 13 - .../mob/new_player/sprite_accessories.dm | 497 ++++++++++++++++-- icons/mob/human_races/markings.dmi | Bin 36625 -> 44537 bytes 6 files changed, 471 insertions(+), 49 deletions(-) diff --git a/code/_helpers/global_lists.dm b/code/_helpers/global_lists.dm index 1a482e6d24..63c9c1a24e 100644 --- a/code/_helpers/global_lists.dm +++ b/code/_helpers/global_lists.dm @@ -42,6 +42,7 @@ var/global/list/facial_hair_styles_male_list = list() var/global/list/facial_hair_styles_female_list = list() var/global/list/skin_styles_female_list = list() //unused var/global/list/body_marking_styles_list = list() //stores /datum/sprite_accessory/marking indexed by name +var/global/list/body_marking_nopersist_list = list() // Body marking styles, minus non-genetic markings and augments var/global/list/ear_styles_list = list() // Stores /datum/sprite_accessory/ears indexed by type var/global/list/tail_styles_list = list() // Stores /datum/sprite_accessory/tail indexed by type var/global/list/wing_styles_list = list() // Stores /datum/sprite_accessory/wing indexed by type @@ -149,6 +150,8 @@ GLOBAL_LIST_EMPTY(mannequins) for(var/path in paths) var/datum/sprite_accessory/marking/M = new path() body_marking_styles_list[M.name] = M + if(!M.genetic) + body_marking_nopersist_list[M.name] = M //Surgery Steps - Initialize all /datum/surgery_step into a list paths = subtypesof(/datum/surgery_step) diff --git a/code/game/dna/dna2.dm b/code/game/dna/dna2.dm index 93a2895311..795f05ff96 100644 --- a/code/game/dna/dna2.dm +++ b/code/game/dna/dna2.dm @@ -123,6 +123,7 @@ var/global/list/datum/dna/gene/dna_genes[0] // New stuff var/species = SPECIES_HUMAN var/list/body_markings = list() + var/list/body_markings_genetic = list() var/list/body_descriptors = null var/list/genetic_modifiers = list() // Modifiers with the MODIFIER_GENETIC flag are saved. Note that only the type is saved, not an instance. @@ -134,6 +135,7 @@ var/global/list/datum/dna/gene/dna_genes[0] new_dna.b_type=b_type new_dna.real_name=real_name new_dna.species=species +<<<<<<< HEAD new_dna.body_markings=body_markings.Copy() new_dna.base_species=base_species //VOREStation Edit new_dna.custom_species=custom_species //VOREStaton Edit @@ -143,6 +145,10 @@ var/global/list/datum/dna/gene/dna_genes[0] new_dna.custom_ask=custom_ask //VOREStaton Edit new_dna.custom_whisper=custom_whisper //VOREStaton Edit new_dna.custom_exclaim=custom_exclaim //VOREStaton Edit +======= + var/list/body_markings_genetic = (body_markings - body_marking_nopersist_list) + new_dna.body_markings=body_markings_genetic.Copy() +>>>>>>> 4fad562e9e9... Cybernetic Augments and Sick Tats (#8200) for(var/b=1;b<=DNA_SE_LENGTH;b++) new_dna.SE[b]=SE[b] if(b<=DNA_UI_LENGTH) diff --git a/code/game/objects/items/weapons/implants/implantlanguage.dm b/code/game/objects/items/weapons/implants/implantlanguage.dm index 692cdd381f..595e40c2b9 100644 --- a/code/game/objects/items/weapons/implants/implantlanguage.dm +++ b/code/game/objects/items/weapons/implants/implantlanguage.dm @@ -7,6 +7,7 @@ desc = "An implant allowing someone to speak the range of frequencies used in Galactic Common, as well as produce any phonemes that they usually cannot. Only helps with producing sounds, not understanding them." known_implant = TRUE var/list/languages = list(LANGUAGE_GALCOM) // List of languages that this assists with + initialize_loc = BP_HEAD /obj/item/weapon/implant/language/post_implant(mob/M) // Amends the mob's voice organ, then deletes itself if(ishuman(M)) diff --git a/code/modules/client/preference_setup/loadout/loadout_cyberware.dm b/code/modules/client/preference_setup/loadout/loadout_cyberware.dm index 2540e86fc8..1fac24c862 100644 --- a/code/modules/client/preference_setup/loadout/loadout_cyberware.dm +++ b/code/modules/client/preference_setup/loadout/loadout_cyberware.dm @@ -12,19 +12,6 @@ path = /obj/item/weapon/implant/tracking/weak cost = 0 //VOREStation Edit. Changed cost to 0 -// Remove these after generic implant has been in for awhile and everyone has had a reasonable period to copy their old descs. -/datum/gear/utility/implant/dud1 - display_name = "implant, head" - description = "An implant with no obvious purpose (DEPRECATED, USE GENERIC IMPLANT)." - path = /obj/item/weapon/implant/dud - cost = 1 -/datum/gear/utility/implant/dud2 - display_name = "implant, torso" - description = "An implant with no obvious purpose (DEPRECATED, USE GENERIC IMPLANT)." - path = /obj/item/weapon/implant/dud/torso - cost = 1 -// End removal marker. - /datum/gear/utility/implant/generic display_name = "implant, generic, primary" description = "An implant with no obvious purpose." diff --git a/code/modules/mob/new_player/sprite_accessories.dm b/code/modules/mob/new_player/sprite_accessories.dm index a71c2b2963..5f5a3bfe69 100644 --- a/code/modules/mob/new_player/sprite_accessories.dm +++ b/code/modules/mob/new_player/sprite_accessories.dm @@ -2062,9 +2062,12 @@ shaved color_blend_mode = ICON_ADD + var/genetic = TRUE var/body_parts = list() //A list of bodyparts this covers, in organ_tag defines //Reminder: BP_L_FOOT,BP_R_FOOT,BP_L_LEG,BP_R_LEG,BP_L_ARM,BP_R_ARM,BP_L_HAND,BP_R_HAND,BP_TORSO,BP_GROIN,BP_HEAD +//Tattoos + /datum/sprite_accessory/marking/tat_rheart name = "Tattoo (Heart, R. Arm)" icon_state = "tat_rheart" @@ -2117,6 +2120,300 @@ shaved icon_state = "tat_tiger" body_parts = list(BP_L_FOOT,BP_R_FOOT,BP_L_LEG,BP_R_LEG,BP_L_ARM,BP_R_ARM,BP_L_HAND,BP_R_HAND,BP_TORSO,BP_GROIN) +//New tats + +/datum/sprite_accessory/marking/tat_belly + name = "Tattoo (Belly)" + icon_state = "tat_belly" + body_parts = list(BP_TORSO) + +/datum/sprite_accessory/marking/tat_forrest_left + name = "Tattoo (Forrest, Left Eye)" + icon_state = "tat_forrest_l" + body_parts = list(BP_HEAD) + +/datum/sprite_accessory/marking/tat_forrest_right + name = "Tattoo (Forrest, Right Eye)" + icon_state = "tat_forrest_r" + body_parts = list(BP_HEAD) + +/datum/sprite_accessory/marking/tat_hunter_left + name = "Tattoo (Hunter, Left Eye)" + icon_state = "tat_hunter_l" + body_parts = list(BP_HEAD) + +/datum/sprite_accessory/marking/tat_hunter_right + name = "Tattoo (Hunter, Right Eye)" + icon_state = "tat_hunter_r" + body_parts = list(BP_HEAD) + +/datum/sprite_accessory/marking/tat_jaeger_left + name = "Tattoo (Jaeger, Left Eye)" + icon_state = "tat_jaeger_l" + body_parts = list(BP_HEAD) + +/datum/sprite_accessory/marking/tat_jaeger_right + name = "Tattoo (Jaeger, Right Eye)" + icon_state = "tat_jaeger_r" + body_parts = list(BP_HEAD) + +/datum/sprite_accessory/marking/tat_kater_left + name = "Tattoo (Kater, Left Eye)" + icon_state = "tat_kater_l" + body_parts = list(BP_HEAD) + +/datum/sprite_accessory/marking/tat_kater_right + name = "Tattoo (Kater, Right Eye)" + icon_state = "tat_kater_r" + body_parts = list(BP_HEAD) + +/datum/sprite_accessory/marking/tat_lujan_left + name = "Tattoo (Lujan, Left Eye)" + icon_state = "tat_lujan_l" + body_parts = list(BP_HEAD) + +/datum/sprite_accessory/marking/tat_lujan_right + name = "Tattoo (Lujan, Right Eye)" + icon_state = "tat_lujan_r" + body_parts = list(BP_HEAD) + +/datum/sprite_accessory/marking/tat_montana_left + name = "Tattoo (Montana, Left Face)" + icon_state = "tat_montana_l" + body_parts = list(BP_HEAD) + +/datum/sprite_accessory/marking/tat_montana_right + name = "Tattoo (Montana, Right Face)" + icon_state = "tat_montana_r" + body_parts = list(BP_HEAD) + +/datum/sprite_accessory/marking/tat_natasha_left + name = "Tattoo (Natasha, Left Eye)" + icon_state = "tat_natasha_l" + body_parts = list(BP_HEAD) + +/datum/sprite_accessory/marking/tat_natasha_right + name = "Tattoo (Natasha, Right Eye)" + icon_state = "tat_natasha_r" + body_parts = list(BP_HEAD) + +/datum/sprite_accessory/marking/tat_tamoko + name = "Tattoo (Ta Moko, Face)" + icon_state = "tat_tamoko" + body_parts = list(BP_HEAD) + +/datum/sprite_accessory/marking/tat_toshi_left + name = "Tattoo (Toshi, Left Eye)" + icon_state = "tat_toshi_l" + body_parts = list(BP_HEAD) + +/datum/sprite_accessory/marking/tat_toshi_right + name = "Tattoo (Volgin, Right Eye)" + icon_state = "tat_toshi_r" + body_parts = list(BP_HEAD) + +/datum/sprite_accessory/marking/tat_wings_back + name = "Tattoo (Wings, Lower Back)" + icon_state = "tat_wingsback" + body_parts = list(BP_TORSO) + +/datum/sprite_accessory/marking/tilaka + name = "Tilaka" + icon_state = "tilaka" + body_parts = list(BP_HEAD) + + +/datum/sprite_accessory/marking/bands + name = "Color Bands" + icon_state = "bands" + body_parts = list(BP_L_FOOT,BP_R_FOOT,BP_L_LEG,BP_R_LEG,BP_L_ARM,BP_R_ARM,BP_L_HAND,BP_R_HAND,BP_TORSO,BP_GROIN) + +/datum/sprite_accessory/marking/bandsface + name = "Color Bands (Face)" + icon_state = "bandsface" + body_parts = list(BP_HEAD) + species_allowed = list(SPECIES_TAJ,SPECIES_UNATHI) + +/datum/sprite_accessory/marking/bandsface_human + name = "Color Bands (Face)" + icon_state = "bandshumanface" + body_parts = list(BP_HEAD) + species_allowed = list(SPECIES_HUMAN,SPECIES_HUMAN_VATBORN,SPECIES_SKRELL) + +/datum/sprite_accessory/marking/tiger_stripes + name = "Tiger Stripes" + icon_state = "tiger" + body_parts = list(BP_L_FOOT,BP_R_FOOT,BP_L_LEG,BP_R_LEG,BP_L_ARM,BP_R_ARM,BP_TORSO,BP_GROIN) + species_allowed = list(SPECIES_TAJ) //There's a tattoo for non-cats + +/datum/sprite_accessory/marking/tigerhead + name = "Tiger Stripes (Head, Minor)" + icon_state = "tigerhead" + body_parts = list(BP_HEAD) + +/datum/sprite_accessory/marking/tigerface + name = "Tiger Stripes (Head, Major)" + icon_state = "tigerface" + body_parts = list(BP_HEAD) + species_allowed = list(SPECIES_TAJ) //There's a tattoo for non-cats + +/datum/sprite_accessory/marking/backstripe + name = "Back Stripe" + icon_state = "backstripe" + body_parts = list(BP_TORSO) + +/datum/sprite_accessory/marking/bindi + name = "Bindi" + icon_state = "bindi" + body_parts = list(BP_HEAD) + +/datum/sprite_accessory/marking/blush + name = "Blush" + icon_state= "blush" + body_parts = list(BP_HEAD) + +/datum/sprite_accessory/marking/bridge + name = "Bridge" + icon_state = "bridge" + body_parts = list(BP_HEAD) + +/datum/sprite_accessory/marking/brow_left + name = "Brow Left" + icon_state = "brow_l" + body_parts = list(BP_HEAD) + +/datum/sprite_accessory/marking/brow_right + name = "Brow Right" + icon_state = "brow_r" + body_parts = list(BP_HEAD) + +/datum/sprite_accessory/marking/cheekspot_left + name = "Cheek Spot (Left Cheek)" + icon_state = "cheekspot_l" + body_parts = list(BP_HEAD) + +/datum/sprite_accessory/marking/cheekspot_right + name = "Cheek Spot (Right Cheek)" + icon_state = "cheekspot_r" + body_parts = list(BP_HEAD) + +/datum/sprite_accessory/marking/cheshire_left + name = "Cheshire (Left Cheek)" + icon_state = "cheshire_l" + body_parts = list(BP_HEAD) + +/datum/sprite_accessory/marking/cheshire_right + name = "Cheshire (Right Cheek)" + icon_state = "cheshire_r" + body_parts = list(BP_HEAD) + +/datum/sprite_accessory/marking/eyestripe + name = "Eye Stripe" + icon_state = "eyestripe" + body_parts = list(BP_HEAD) + +/datum/sprite_accessory/marking/eyecorner_left + name = "Eye Corner Left" + icon_state = "eyecorner_l" + body_parts = list(BP_HEAD) + +/datum/sprite_accessory/marking/eyecorner_right + name = "Eye Corner Right" + icon_state = "eyecorner_r" + body_parts = list(BP_HEAD) + +/datum/sprite_accessory/marking/fullfacepaint + name = "Full Face Paint" + icon_state = "fullface" + body_parts = list(BP_HEAD) + species_allowed = list(SPECIES_HUMAN,SPECIES_HUMAN_VATBORN,SPECIES_SKRELL) + +/datum/sprite_accessory/marking/lips + name = "Lips" + icon_state = "lips" + body_parts = list(BP_HEAD) + +/datum/sprite_accessory/marking/lowercheek_left + name = "Lower Cheek Left" + icon_state = "lowercheek_l" + body_parts = list(BP_HEAD) + +/datum/sprite_accessory/marking/lowercheek_left + name = "Lower Cheek Right" + icon_state = "lowercheek_r" + body_parts = list(BP_HEAD) + +/datum/sprite_accessory/marking/neck + name = "Neck Cover" + icon_state = "neck" + body_parts = list(BP_HEAD) + +/datum/sprite_accessory/marking/neckthick + name = "Neck Cover (Thick)" + icon_state = "neckthick" + body_parts = list(BP_HEAD) + +/datum/sprite_accessory/marking/nosestripe + name = "Nose Stripe" + icon_state = "nosestripe" + body_parts = list(BP_HEAD) + +/datum/sprite_accessory/marking/nosetape + name = "Nose Tape" + icon_state = "nosetape" + body_parts = list(BP_HEAD) + genetic = FALSE + +/datum/sprite_accessory/marking/scratch_abdomen_left + name = "Scar, Abdomen Left" + icon_state = "scratch_abdomen_l" + body_parts = list(BP_TORSO) + +/datum/sprite_accessory/marking/scratch_abdomen_right + name = "Scar, Abdomen Right" + icon_state = "scratch_abdomen_r" + body_parts = list(BP_TORSO) + +/datum/sprite_accessory/marking/scratch_abdomen_small_left + name = "Scar, Abdomen Small Left" + icon_state = "scratch_abdomensmall_l" + body_parts = list(BP_TORSO) + +/datum/sprite_accessory/marking/scratch_abdomen_small_right + name = "Scar, Abdomen Small Right" + icon_state = "scratch_abdomensmall_r" + body_parts = list(BP_TORSO) + +/datum/sprite_accessory/marking/scratch_back + name = "Scar, Back" + icon_state = "scratch_back" + body_parts = list(BP_TORSO) + +/datum/sprite_accessory/marking/scratch_chest_left + name = "Scar, Chest (Left)" + icon_state = "scratch_chest_l" + body_parts = list(BP_TORSO) + +/datum/sprite_accessory/marking/scratch_chest_right + name = "Scar, Chest (Right)" + icon_state = "scratch_chest_r" + body_parts = list(BP_TORSO) + +/datum/sprite_accessory/marking/skull_paint + name = "Skull Paint" + icon_state = "skull" + body_parts = list(BP_HEAD) + genetic = FALSE + +//Heterochromia + +/datum/sprite_accessory/marking/heterochromia + name = "Heterochromia (right eye)" + icon_state = "heterochromia" + body_parts = list(BP_HEAD) + +//Taj/Unathi shared markings + /datum/sprite_accessory/marking/taj_paw_socks name = "Socks Coloration (Taj)" icon_state = "taj_pawsocks" @@ -2171,42 +2468,6 @@ shaved body_parts = list(BP_HEAD) species_allowed = list(SPECIES_TAJ) -/datum/sprite_accessory/marking/bands - name = "Color Bands" - icon_state = "bands" - body_parts = list(BP_L_FOOT,BP_R_FOOT,BP_L_LEG,BP_R_LEG,BP_L_ARM,BP_R_ARM,BP_L_HAND,BP_R_HAND,BP_TORSO,BP_GROIN) - -/datum/sprite_accessory/marking/bandsface - name = "Color Bands (Face)" - icon_state = "bandsface" - body_parts = list(BP_HEAD) - -/datum/sprite_accessory/marking/tiger_stripes - name = "Tiger Stripes" - icon_state = "tiger" - body_parts = list(BP_L_FOOT,BP_R_FOOT,BP_L_LEG,BP_R_LEG,BP_L_ARM,BP_R_ARM,BP_TORSO,BP_GROIN) - species_allowed = list(SPECIES_TAJ) //There's a tattoo for non-cats - -/datum/sprite_accessory/marking/tigerhead - name = "Tiger Stripes (Head, Minor)" - icon_state = "tigerhead" - body_parts = list(BP_HEAD) - -/datum/sprite_accessory/marking/tigerface - name = "Tiger Stripes (Head, Major)" - icon_state = "tigerface" - body_parts = list(BP_HEAD) - species_allowed = list(SPECIES_TAJ) //There's a tattoo for non-cats - -/datum/sprite_accessory/marking/backstripe - name = "Back Stripe" - icon_state = "backstripe" - body_parts = list(BP_TORSO) - -/datum/sprite_accessory/marking/heterochromia - name = "Heterochromia (right eye)" - icon_state = "heterochromia" - body_parts = list(BP_HEAD) //Taj specific stuff /datum/sprite_accessory/marking/taj_belly @@ -2340,10 +2601,174 @@ shaved do_colouration = 0 +//Cybernetic Augments, some species-limited due to sprite misalignment. /aug/ types are excluded from dna. + +/datum/sprite_accessory/marking/aug + name = "Augment (Backports, Back)" + icon_state = "aug_backports" + genetic = FALSE + body_parts = list(BP_TORSO) + species_allowed = list(SPECIES_HUMAN,SPECIES_SKRELL,SPECIES_TAJ,SPECIES_HUMAN_VATBORN,SPECIES_UNATHI,SPECIES_ZADDAT) + +/datum/sprite_accessory/marking/aug/diode + name = "Augment (Backports Diode, Back)" + icon_state = "aug_backportsdiode" + +/datum/sprite_accessory/marking/aug/backportswide + name = "Augment (Backports Wide, Back)" + icon_state = "aug_backportswide" + body_parts = list(BP_TORSO) + +/datum/sprite_accessory/marking/aug/backportswide/diode + name = "Augment (Backports Wide Diode, Back)" + icon_state = "aug_backportswidediode" + +/datum/sprite_accessory/marking/aug/headcase + name = "Augment (Headcase, Head)" + icon_state = "aug_headcase" + body_parts = list(BP_HEAD) + +/datum/sprite_accessory/marking/aug/headcase_light + name = "Augment (Headcase Light, Head)" + icon_state = "aug_headcaselight" + body_parts = list(BP_HEAD) + +/datum/sprite_accessory/marking/aug/headport + name = "Augment (Headport, Head)" + icon_state = "aug_headport" + body_parts = list(BP_HEAD) + +/datum/sprite_accessory/marking/aug/headport/diode + name = "Augment (Headport Diode, Head)" + icon_state = "aug_headplugdiode" + +/datum/sprite_accessory/marking/aug/lowerjaw + name = "Augment (Lower Jaw, Head)" + icon_state = "aug_lowerjaw" + body_parts = list(BP_HEAD) + species_allowed = list(SPECIES_HUMAN,SPECIES_SKRELL,SPECIES_HUMAN_VATBORN,SPECIES_ZADDAT) + +/datum/sprite_accessory/marking/aug/scalpports + name = "Augment (Scalp Ports)" + icon_state = "aug_scalpports" + body_parts = list(BP_HEAD) + +/datum/sprite_accessory/marking/aug/scalpports/vertex_left + name = "Augment (Scalp Port, Vertex Left)" + icon_state = "aug_vertexport_l" + +/datum/sprite_accessory/marking/aug/scalpports/vertex_right + name = "Augment (Scalp Port, Vertex Right)" + icon_state = "aug_vertexport_r" + +/datum/sprite_accessory/marking/aug/scalpports/occipital_left + name = "Augment (Scalp Port, Occipital Left)" + icon_state = "aug_occipitalport_l" + +/datum/sprite_accessory/marking/aug/scalpports/occipital_right + name = "Augment (Scalp Port, Occipital Right)" + icon_state = "aug_occipitalport_r" + +/datum/sprite_accessory/marking/aug/scalpportsdiode + name = "Augment (Scalp Ports Diode)" + icon_state = "aug_scalpportsdiode" + body_parts = list(BP_HEAD) + +/datum/sprite_accessory/marking/aug/scalpportsdiode/vertex_left + name = "Augment (Scalp Port Diode, Vertex Left)" + icon_state = "aug_vertexportdiode_l" + +/datum/sprite_accessory/marking/aug/scalpportsdiode/vertex_right + name = "Augment (Scalp Port Diode, Vertex Right)" + icon_state = "aug_vertexportdiode_r" + +/datum/sprite_accessory/marking/aug/scalpportsdiode/occipital_left + name = "Augment (Scalp Port Diode, Occipital Left)" + icon_state = "aug_occipitalportdiode_l" + +/datum/sprite_accessory/marking/aug/scalpportsdiode/occipital_right + name = "Augment (Scalp Port Diode, Occipital Right)" + icon_state = "aug_occipitalportdiode_r" + +/datum/sprite_accessory/marking/aug/backside_left + name = "Augment (Backside Left, Head)" + icon_state = "aug_backside_l" + +/datum/sprite_accessory/marking/aug/backside_left/side_diode + name = "Augment (Backside Left Diode, Head)" + icon_state = "aug_sidediode_l" + +/datum/sprite_accessory/marking/aug/backside_right + name = "Augment (Backside Right, Head)" + icon_state = "aug_backside_r" + body_parts = list(BP_HEAD) + +/datum/sprite_accessory/marking/aug/backside_right/side_diode + name = "Augment (Backside Right Diode, Head)" + icon_state = "aug_sidediode_r" + +/datum/sprite_accessory/marking/aug/side_deunan_left + name = "Augment (Deunan, Side Left)" + icon_state = "aug_sidedeunan_l" + body_parts = list(BP_HEAD) + +/datum/sprite_accessory/marking/aug/side_deunan_right + name = "Augment (Deunan, Side Right)" + icon_state = "aug_sidedeunan_r" + body_parts = list(BP_HEAD) + +/datum/sprite_accessory/marking/aug/side_kuze_left + name = "Augment (Kuze, Side Left)" + icon_state = "aug_sidekuze_l" + body_parts = list(BP_HEAD) + +/datum/sprite_accessory/marking/aug/side_kuze_left/side_diode + name = "Augment (Kuze Diode, Side Left)" + icon_state = "aug_sidekuzediode_l" + +/datum/sprite_accessory/marking/aug/side_kuze_right + name = "Augment (Kuze, Side Right)" + icon_state = "aug_sidekuze_r" + body_parts = list(BP_HEAD) + +/datum/sprite_accessory/marking/aug/side_kuze_right/side_diode + name = "Augment (Kuze Diode, Side Right)" + icon_state = "aug_sidekuzediode_r" + +/datum/sprite_accessory/marking/aug/side_kinzie_left + name = "Augment (Kinzie, Side Left)" + icon_state = "aug_sidekinzie_l" + body_parts = list(BP_HEAD) + +/datum/sprite_accessory/marking/aug/side_kinzie_right + name = "Augment (Kinzie, Side Right)" + icon_state = "aug_sidekinzie_r" + body_parts = list(BP_HEAD) + +/datum/sprite_accessory/marking/aug/side_shelly_left + name = "Augment (Shelly, Side Left)" + icon_state = "aug_sideshelly_l" + body_parts = list(BP_HEAD) + +/datum/sprite_accessory/marking/aug/side_shelly_right + name = "Augment (Shelly, Side Right)" + icon_state = "aug_sideshelly_r" + body_parts = list(BP_HEAD) + +/datum/sprite_accessory/marking/aug/chestports + name = "Augment (Chest Ports)" + icon_state = "aug_chestports" + body_parts = list(BP_TORSO) + +/datum/sprite_accessory/marking/aug/abdomenports + name = "Augment (Abdomen Ports)" + icon_state = "aug_abdomenports" + body_parts = list(BP_TORSO) //skin styles - WIP //going to have to re-integrate this with surgery //let the icon_state hold an icon preview for now + /datum/sprite_accessory/skin icon = 'icons/mob/human_races/r_human.dmi' diff --git a/icons/mob/human_races/markings.dmi b/icons/mob/human_races/markings.dmi index f9f91da90bb0b9cca9718afe0e45cde7a4ee28e8..de0dcafb7c667361e4cf2e3227ecc5f52c0d80e3 100644 GIT binary patch literal 44537 zcmb@u2Ut^Uw>26B!Gd5ADbf^BKy}x_@d(VH)`Tl!-_SUdiSy}5XV~#oImFou13{3c9(}UUAE+R<9*UqhuMIG=sVwjw$FtA>KsKP zai21f2&sA(6|sX~`A5fCw$RW>$1nLAf5BiZtdx@@3tKQA&81)YzJv{<-I$*(mlcZe zSJDa^UoPoiFs82g#p5|rwTk?Z@|Zi3b?Rt=Y5m zks+c|UJV6B<241>P#-zmRAnT%EMLMs7BZMgGvg|LVlxfmoi_@;I7-ausB0&~HTi6! zV?3S}*+kU5`=zRVGe%u~{rQ1*SUiV1<95`LVvqb{b>c)=+^6VkQv%5J3oV~@ZX~B( zc(G``e5xDMqu66wGd>;$6%?0Z3WF{wBww25OV>Tyy}KzEN($XNzPJvwW) z{-GYl(@&U!cjs0(Q&NKCMZP8w4^Rn(yoo2(g;qWI%&` z_2!8haNzBby87A6Pu28(CJd{n*U&yyR*y>rMuUqqvdypUcGiVsF0jfiH7me(J_@(LNEcsv!fAJ4 zC``@&CV2XVf3UUN(2Hr)EA$3UgH5M|s`*sZ<U4T&M-$0#N7_Vf$pve*YC|9=NSu(qC*7t-&CXyX9@mm%qzgv?N zs|vsO9BDT_`_(J@O$U471tRPjwfA6WJ4NOfdeUo<4Y7i-5}nQKS5sI6*-a>4%H6&G zldbfoEbYUQ2A9vFV^^N{zdO}%hp`~q=?-hZgf3K8THu2luY!sq_4vCE*ll{^3g{@*%n7MUURV1Q0-GMe(YLT~XnKEs5NFgz$?`=|TM^F9@OGZIi zpALoy9ImZ);KTJs_9k}J#Xc)*rnhAMVs`Bhvo2UZdfrQ$Kbb+{TE#+fB;iNyW>R;J z(ceu1TE*P|TZfFnJNNUH3%fum1IhE?JeBWFdb%8^k}SgFG~ZTtg*9Cdwfx*-K_*Ax zc!!aRQPg`dcz$$5oGyMlF)!56WtDP;!#wx13(r}!f@-6*ziZG=CyFM2)&L6tSH-OiDq^^*Io#$I=^I^XnRGj(&6et1#9#jVJYfr z`>?H|x7%#9{b5Oz&+@C>@0IujoqK{_m9GA~^R&e@W@v>nr*)PuUQYV=vE7 zg_~Eu|A|TT2xB#|KOf|DEU7V~s6PENqv6HoEh#FTf?az~M%pb=7PEY}$F+V#uLf~U zi?5%FI28+L$KCsuo%K|7b%WVl5k<4antc{`+UfC~$t!n7+RQ7QVdY zXSx((v4rTo_EpAA>A8p6{el-Gdk!KJ`O|c?cSb(eSu!0AeK8}G{Vp~&c2z|GYL=#W zeMD64&x($`l>)jazn$gU!Q*HB0VX_i4Xa&-UeyGn zWa#FWF$Y;kNAoqlcs%+y+jx5i37saB0R(at@=*S+mUr6vw6g>AsLu+)=DtW=*?{p` zruZj1@W*+c8#fe!49c(l5=8TmHMo>nX5COR6X1WCmqZiRB;XKgy0KYxMk7ejfxFa% z;nmek&v@y}Nwz}N!%Ixg@GpJvpKrV!%WEoS+&c30YE(#C+?iWu-n{|WGIm`mIFlB- zBt*(k)TYTFJA5)^Y~D^`)(_*iq(O)x{ux+5Uv%lu%djh_FP^-L^`(_Nc_H^p9YS*Q zDqo3&?BvBq*8j;#Ge*RVnu`Be+*ZJB9UmW48!nw{;?E#VN8vYBb2J{(M=D78?K!kP zJ@%Is2nY!1fy;R(lbnJ)cs)Ko9@)4VLl@bqj@nnUv9S@@IM!U%%GYwQF&t6malDnQ zp`6rdWt6Y=xs{AEgODlGODHWBvhQsLf9LfgjtFkK1jlxdVM1hNBqKDAE7M;ChUpSH z`p%VE{_fk{oOy0>aj$g;UsO!Y8ojaiUE(kE2~wXE1~@o4CS`l#;^K^uRLb%sAGL0x zf89mzVM$t&G=90{Xw)Dz@~6rM_qA^()+K1j*hZkxFVH6ZNdnph!~M<8ccD;5X66LD z3Q4;e=z1l-c-Ric%D@nNFYBsU#8qV;BW_wtQ&Ty+iiw!)=+T~*mX{eRDgEs1A|fKb z=H?&l2{XN2UC%Hk?<}rJ$q?$IeDKA^#gS3$9b;q3#wI3Sd&hYMaS@zz*%=M~q>665 zK%(-|YF?(3Y@^?1gU&|XrtEj?vh69iUdMMKTRVelYbEUnFw`+IF;WDk!K3Pj4Klr*JNx^c3k#N$Yig>hzwr3LEoo<+GPt=3ga>>=Rw(P6 z)z#JLE1tf-`U3p?)?a^}aZ8_Wp~f=@HE1g1*82MTOd>j-gLzYvJctXvfB!xrFTt1Z z!d8_=zLvQNPWXqR{v<537fh)F6q>JH@a4-FcBaf2r{f1Yy9BT{1iB(k4Z0#xhlhtI zWNxKDm0(A48=IR+Hkkop9PHccWxdu%SZt0# z)zZ?^L>m=;Qd{ATCm0_nv?dVe+rC!VlOdD3TCUrlzq)FR77mQ9`9Aj~?zRfQx(vzh zn*RR&u}W9@8eD3ap^3i!yOo91q_=N#6&5xX79J?ip|Ujc{mpD`S9P^UQH41OJwEmj4*_;;=n_iFIr~`9GV|Q%GKgwIl zSUBGd9#ckEw&+pLo1R5@R-3a`1RHy1RY+K>P*zm3o0}VBPJ*n@_Q#C0w0aAku8xi{ z@M?%lEn`TTr{QVb$8=qKIh9>UE32IO2;+RM0Wjto+_ZZ}r`=hQ(-pm$uuKWJrPqxv zKkqrrkP!b_>PitgIzGf?b=O13QIX%LwMgc#AQLr|1$cQa=XA*!Sy+b8pFf`>NC8pK z?`$>Sn%6Jf<6_^gV!@B0hU_W`3|FokspSkg$1@|-;Whpx+64gy@)>llQkOU{VpqY* zXmC`pYpu#2f!c4~575)ovu)%SGMVgqiUT`5^9lpQfzOz$r?8;lZw$QVc&IHeZU+&2 z*s#6bDNxmb>K@JJmRtAq_0byapOmSjH}My;C_6Bd#;%v8fFHJ^tJN*Hl9!^2O(p8ir>J5kSu zKWK;jI6A5|LYTbE6#Kn_p;ET#_yw6k8($=5B zV!`~#JL#aVL@ByqQqy_Ct_N3s`833h1v#7|V&l%A6gf=8q`6D!M;^B9lhQy-(-nn8 z(OY1{o&S1^4M(ZchP=W>ln7#U*x{AN#RTVG47t=HNiU{Rvv@R*DXI+?-l0RoicJ5} z)YK%xzAY0cg*y9%=OWgRN#f}}s{SGzeb=UC+~lUB<8hJE#nnch02#N!ZVyU9J&k^*9M2U!sHz`$H-n85yJcau;!V|xL! z*=j6)^x7`C4?Sa4S#fqln?Tnph5GjGTed+%0dg3FaBxrw6=jGtAS}ac9&eVkFB}T6 zdo9tCA0f(|ei2$*TVIb4mQEw>3sVWB`d-I3cAe%Z2*}HtFV9E?O649vUnh>tdv~L* zXm)@HbXy(BsT7gpH>yoI8)))-xhg*FR7X|gZlMw1-NTWp#>;jfjw1^W)V1fkX+N2l zj)~=Q+q`nPT&&9*v5BSGqvf^`AJ)pz`egt61{ar?M?=Yc)zLz{nx&7A9;^54bG~_{ z%YFs+u-{Fj0N{Bu{Rh6Y#?`%n#%0{g`W-U;xmkeroXNA>SImx`+*k-yyS_3y1;f6f zuU^UXR5&%tN=eo6vx8_8cu8Suw&F1_6q+-1)YlgacK(cS1M6NCLJ4cq=Bq#mr?uo2}TaqNy(mPjbYw5Rg;B+Ct9B<+YXM@rSJ@f!)rbx z@w>$)UDjpYITt`YZ*OaJ2f$p6z^&2mPZDk{IjQQNBpt32^(I>N$IG?5PIW2YmOn68-uUy+c-k0Sk5(E zEuFR%wDx@9a%_`*)%vPDZO*^8GE<%-Q|BGKdE>r+f0+J` z@hbAL+xcTvl~;Rn007~JhKB7_)JwvZlDxdU>;rXGg#B<)AC1*kt7rZDcrLY#1F|Q| zt1~k*eHO)qh2O(3aY;s?1_wFp?d`LcuMUjw00z?Nm*+fQrdq_(O6wliLw=1ZxR?8@ zR17jiDi9%lC8|SAX?ku#8~>`@epJ73q<>%GG6II8e`7tFD*9XO2v&mnk<0v5yLdEp z4Qnu2QB|c=WZZDG5V?6iI`^Vq}XS_;sajPVHaCg@O4Bt_kB0-6fBMiT3NP9ZTv#qVIyb$kfb&hp#aPVlW zoeg#SqIgL7%#1NW{kTm0PF`F+m1thG!|vu%Mw!eli-LH)57C!*4|>-R&Dt&(cA8LP zJVYLS9E^HmVFD3K?fhI=h}Km%Ff{B+Znn{tB0&=HSavv;-hgYXTL6Y}Q?K?|d;9tG z=kmfMMZL2#H#5dRa-RcS1`c*rSK=)l&-$!xMG4|Kvh;iH{(9VB2g$w@?_9Npv~ku@w0v(vW}6 zLF^XlpiP`JwcF|4X&O(gNuB58Xcj5DIy}-7t&f=x4-a3eixwkqI`j`5EdADO_#tB4 zNpN!G(791y9lz-=$l`fiNH$r&c*v%w;)Z^^48yUR9Tz$b6U4^W3Fz{SdrxmBx@$Sh zdVbKlX-nTKko006d7hr%@@v|zxwV`0@$YZlNYNyIqaWpyq@2~fOMs4Sc#k}2!_=2- zN4-q(C{2Ae-PzkB8d#v2rz)DcAeN`=*e(s0rLhlgcl3VmL!RM&_uPg+#MFEh=Jz-1 zHF1=`2px{iiob9Tl6{m?-G-VwT4Vq6%g4BUxzOVQ&tl|*5lnqw9ku`=+ zw=;VmW%pl1?bGv{G#&?|18;O4s2_LnyVYhB5;c&!(wl18VWT(jxw@5DlLb%c!tbBo zwgDCYaeVBb8=rYrBybE?hDvid?jFCXoe(oxU%-;4j~v7xr+Z&A!eZM$>G}4r_P)%T z-ZhdXWc%0eAZ#RZDhLKCgNoaS_0s!OZYi@MqSX=u?+0c?$~YU^+B-q{y5pP@bn>%{ zparkUT8=KSemaSH@oKM^zT7R=2jpnvmrr}-YveQ2$59M2gNYr@&CL}~RBk=2>jflU zL{v0UT{(d7mu?|?(`V+V9P18}R1Aw8W^%6oxwBQrPv$N)igUL30jpFbcqM7%e>95r zQ8`XbOzfbNY#QmxxQgC`jCVg2x*L8o2uy##-uigg!9g`uM!z&*-@PE|2(P8Fp39W< zu+uyS+d(g!t?Qfg5=ej0A5N{XQ{*HV8yO|ezBl2?!D6wCE#a5qsJ~W4AOP;Xjyhz-Mw#Tm7W*H#cnmWivb3d_6-o=03KZ?^o>h#A{MQ&n%< zbhKGxWzv?;hjUliH*8F+quFkQM{snM8~mZt`laERJGJ`<1)G0~Z4<7Uf(@iF6~bo_ zYlT(9gr@B#cm=IlfBuug@r#DwK)%?P^ibHY_xH<&_ja! zLRM5UE;3A-gPmX?-}r9(psghAm^ZVRKw#fiqnjrWcq)&#nNV+)i9|w~O)|Wp?iiaI_)}OC%E9&!9hKGxmJk=8Bu#UIYaU#q| zFji^gp6)*%jd~l&=)yl=)pMINzQqjJ;6z3O9Uk)rQNSzUnEv%XJ<*tU<$nB7+xCh*TY z1JL|2Fz}|(Y^HT2i7`CKTap##*(#?s9cT@E~n$c`9 z{#J9L9c4qn;lQsqx$#@`?S)#WK$ex;?*DuC?yb$Q$*Hh0wk6$MZVTUxBs~Lz_**(f zmVm`JJSO15Ki>ff5nfuNu4B1lo0rh-_|r@%RLfr||h3iXrTCyNJVUm>7xG!|}|+%lMto;~OtkrgbQhvf|A%E%>X_!iG2 zTe={&0ZAO*=N^GUVGGz%|F~sP>?{>%?=UH3;5f{tK5qL%Q&;nYX9UV=mhG6-wCtd? zvhqeQ!^eby{V9v(tK=94gY)X@6B|Ywz76~!-x%JSzbMkN_nGwM!I;g-$2SO7s6f9? zL|H#w(R}+g>po93G$aOwuRe5DQ|rw|07@D+JUsjW72?T)d`di&<}g_#fX zN^p;z*?-Ek7o+)&^DXss=J>~EV+#8${U#s5TY{cj{$KhL8bTeKua^?d>< zxa@;Bb)J}RWgfJTv2`(l^(_cHetv$7yQ3yC(%M|A>5@64BO{isu0q@Xm39^ej>TX| zroA$c@%zZ6QDZ+oOb18Iia@~XBjR2xg`yT*R{E|Z4C^AuG3Vt z8G5UZHWW_}Wn^U?0eN-8{ZJ~2IttZH*+M`~u7P!&00=-{<0g3UppTv28C3;r3;^KS z*}+y92C4**BZdG`W@iUf`MP~@5LbrxJploM&Vu5`U+%M8E7>tbz0wDNxLmkkHse7} zbuiPs4b~M`B-n=9Zz{nkRqjj)tOtwQ@_m-xaX6z}P9J282e@lH1UZwjBo#iY$JAt9lx$p9Hj10z3k^LvP`NRx!y z{GtD7#zeh!yv)XeP@S8Xw+mj~C&;|+c{z<=l3c1aTQ~!O)J{g9zL=8`IQyJpgWHZ6 z%pWE3TXhkF31Wa~p#VDdQM>>GHp;D6X1mh_FZ@>EC9B`M5DqB$@?Yp5IDd^Y+%A93x~8o>J2ac|U>|_j68Wd{Bu+E&Tj4TViyVn@>6C z4L@CEICmfeNC0c~3l+Eh4*nJxQvi1g0L-zaJp8d)C4y!XHrdtiY~%6hAp~;Ki=`Vv zAXuu2*aCuN?1ot1t*)N=x0%^WOY zsRxBjYVYp43~d?Ium(-A22oQ}173|>>E3qC`J0w zLk7tc#9&Pxb~r^VS9x@Z6RzuQ&-vYdbNzUtg5dP_>UtHfDgw1ilg7Ol{H!521!_@u z#(YA0jLr-;<2foKBBzfOqV zITH3VK~e(r?{K|SHgz#C%8*Xewb$1lopvwEzAiXgWE2lO{z<((V&H7mHLAZ45z5TG zS+qwhz^|yJ5zdVL;HxJ4wznN~=Su@;t4FGH)!F=R=1R$s8+Pb(Ea-C@>SKS+ zT4x`ef>b6q5C8ZPanLAGjKuq{Bapanu;XA^|AUg9-CYHZ_h;zjw6(QAQ{9O#+1k$6 z%mYI2`5avEJ}NIW@FoGjNnl-T=Ql^jw6(W;n3%AgzGzDAX?V&af zb&9k(%C#z$hgMN`skV7OFgSo_PpGNc-pOO3MB;{Ix5zz+ds1TJWhfNz61TL6HY1~> z3i1oMeN+r@TcJVKJ0{G8rPPdZGPY$(9J`ChZa(5qvfs0xa#e$T@9!6?X3yM|DH+bq zYc8(BQ+_ogf6JbFo+|fDzhhpLd+^9zk2=OPXlt0f5QA61Id!S#@jL3Yvid0u{Ni6v zLzw0o*Q?V%xv83`j?r3U`$nX)qkS6@o*lImY=^BTt(IQQ2 z9qs{D(xWGH9p(2EdMVr-Czy$mH&CuB`9Q82}Af3l_irpA0iM)X~Ho^)w${Kz#h4Y{oH*2uhU6^<+p++bgz6d zdfuvdj5dEl35->?7Ub!!Qc){I`I<+7tyF0z2q`(5RJ&Xg0hy!`b3bz^Go>3$9z>X< zT;#XvrJ}b@VPOEJjRItDp2TgBt^4u|hs&8&m9#c_Ijrger`44mYr1}dFzNb*Hpjrd zwx07ZD{kfd$D|06K5D9iZdPXX7V0)fqgSFrLS|@A_DkPdXb=6*GPF`dAhC)ddgw1; zqI8Tze3I)O;CkM=KmxpdC2DE=l1?l2B${mxS2ZtGeRt_JeqrHbAS+wC{y$y-P+@GT zCp`vm=y0_EDWxZn7&$uiu3GQ418(!K)RlB&s8PL&;5lle+41c3WR*wm-QSo`M_Ge@ zoo$;zBYNCA#m1N8CPTtLCCR5S+_+ID3#PYL$;2cRV-bcuI=UwXuVq621p#V|P<4^< zajKOdzs+;vXs0N#1!zsa^R?QW9s9*FoX1Jll7p5 z`wC;8SJo%F$;tK)&h*?%Nlxw)+gtD^@*c3@ChSE>+uDTc!AC>(oJLdMztc1YCDL~S zJ6v2`yW87e$j)=9+wt8=lk`w#ll9jPJnS^l4=0RS#H^~pa9S_cVjY~%Ex<2LgomFE z*!?xUMEM@n8hck?#qv+QPemO%^NEe!lr4{3{=)X6)Uk?4kAtSyys2YNaKChpPBJ91 z%di)jnbJNQgkL(y2!FmfNyD^o9*_g%J~G4$M72rsNJSs1*Wm+@m1G4vFJq{ZWDn-FRS|jwj;9SN-l0% zaT(PjT&k8S`*`bwNe9WW1+NWgGrb2zcbT}}Q$FjZ?K{A5FtCTZbDC%cgammjTmJ2w zFctRtSv`ra!s@TgK*kW&yx?~J7I53v_Ta}qLAQzI<} zJHW}gj(d}e#L%A&YOfH_VB%GwBXT1l+!Q^OKhR-cViU!t;vtatnqD=k5XhVzP}Alm zL#MZ;1vqE|f3_LYPoA&C+3uqi#$^FJ@dX7TVwEXO7U(J<^#*xB-0?=l(UDYZG}i6f z`rgAi9Eg)DOoxrVo5~Ot3v%#zaXa*y4|`#&dz1K`OoQfABj4k>E(v}6n3tzCGBP61 znIbY;=>~F`I#n|zQ03^3*`LHOErTp)0VrbOE1jG>P)OLxj8q5v?BjkU-U{bdEc_G6 zQfhp6?LNAKRV`c@c`q|yFQwbX55D*#u?ytiyaEED@P-1N;vXR9rT753ipG^NzL5=N z`Cptp17x$tZ5ZiM2{0`!sx)tn$;LbOft)?!+<0hhKGBj}G6}QY&vcxMgzOP#gZSrx z%-^YBrR83(5SMe!m_0X@gnPlA@&H|l^#TYeWulLBBkxlYPad$fwB+<8b()m$$w(p+ zQ&4$N0ks{j&NAuVP8DG0sHv$TR^JD&n~P1tsP;|X9U;^nnF9XXvy34Mq(n8*>GqW` z)z!}`pmVXrMIE%Gp}d-r!CC`~7=>&k4VTMcU7*%eUKj;8i1GC-Rf-BWl}YS{{~ponq- zxdqI&VRvK4B3xKlc&_}w%>Q>Yg?RxE<-1n+dJWr)saGi>0HH6Q`2`NCgVjGZI67LD z$wsZf3@2VS)_5Oxu&Qg5D1+%sxRYsAkIpv?wbr?Gao-80){CQNFa+e$2gr1 z-I*rQYKYKK3l}MnI+ce#DAi2>S11x+ z*0CDOY|`FOKC`Ek z-CqLrebl@c^MRPGhy^euVT&sW)U49a9F5G^F#R5XGWl0^hFr0j{7>Gw8|KH7C{|zWLRVHYJ z-b(y|E5fYE0~6IFp5b}P7^lk$Sgut(SaEXoz+_f(J!c3>b>RXoCyd!8{ZS|t@pZb! zuL|y9FjXoEqiQ8jCSlL_Gd;j=fk4u;A*W2G2shYAfs^KjA=f}S@XY{u)ekB`^YpcH z&UOgVN26{8`_BH1AU}=Z=jG#L0luGOJ^)fH5P^4)@|=WPLtZ*q(XbtYogJ|znMs9v zT&RtW$;!$iXer~w)+3WT7lSMG(Ua`k?qj2>;e8XZto_XMYNK`)&ct68T>>K+RtKg4 zaL(`f}L^rLK(21nRN8d?U@>Frv-D3m6p$7vl(w&AXTQ7WUMp zaLXP0*bKnvXpy{Tp;(^u}$oq0sd+NXZ zlWNr&IMGMq4Y`BBa5&tW_sLjehO~fn>X(r;)@(C?QLDvO!f?yRIU4;H`j3C@)^cVE zBxuw=;eNoM6z{g&6OvI}gKugI0waSn>BW3bzw;Cn&_$%Auul!P_So0=)Fy~Xo1n1< z99qc554qQDb(7`%5@Q#PUE2gEdL?Si zxt`e?%e94f>r<+KMG+)3o5TfyRNpVuj(`4~B!6_RNOLvp``|wA!TgY&C?C5zy{_0+ z03lLr9<4Bj&Me3F-ep^j@`FN3&Yvt;FTu^PT()AWLlU=gMieZEG4+PDqiVH+ldy0A zpvpWZ@?XS~EJ)-A{^eKvdwGX{Ot|8beqTHr7kB%QsS!;4k#dg4_qv|!bmbhlp*(9j z^byZ)MSgz1N{)tWBX5C5z9q4YqnuwX(ZjL57t@JTBINxo#2FmgKo29~HPQ=`aqs_C zBH;_E|F0?}V?E6!V|dpZ!U`ebJqV-#lx`8Y*-hx;(lqS)J%riWmGd{lJJg|i^l|fV zzv3Urw_S;9qh8xR(#%+X3RL-5;--ep2#|Ff{L`h}|$&^k0*9(L2_IUY949f~-&1LJywCi$a88c0k%yN&mq zpRev>C4fo-c9V&1@&`}dR;I|IKb{{dQN5M<2m~9|eUv(;S@Bv+$ekU;2M>SBA`RvJ zy}gLA4j@5s0s3pq+heVxyh_39E%!DlX|b$V77(+F4vetPAUN*_@hm`bfiPX9YaiL) zuZ{!tRWXZ6?=Ax&Gy*7((6|n`&^`)KS3W=zdNyJ4F{{DfLa94J1)#!THA6Z-7}QNl zy=95x{XkY^iH|OF4%;}iwyXPE{9hZvuHq(p9TSCzmV&0TZ7)Wch|R>{4#cObcK7U3 z;5IxS10vljuR#}N=oPq+hLV!lQbsr8BV-uXz^_|Gu$fgMYY1J-&G_hGz%BK3bvs^1 zN9)&Z&J7WW^DuCqCkI$nKI-z;s#+P`XrF!!lQKSK!EaYr-FFtXpUO7bPtYi`u3p02vl`~|oPM)uIGljc2(=@9RacUE`R!t9Zw2$Z9 z)uuiCWBDQhKEB7*svj?b0?i=%_C7nD^Dl-(<;C;h=k^b^fo~N0@Zq%tLtTA+N$q^C z0|P*_gIKmcK*wHa{DOlDU$u4tE@BE-LGdUiWBEd@YVM_sxEv0+i z(n&8qI??IPDKh`XZ~YRL6-Mnu!DqjD*$7DTy{xM>hN?a3QuMx!OGn_gzLb~mAY^*W zJm<7>G!DDh*VlC%TPGv`kWI9#hH@eGg$n`K9y*diTw-M8g7`Rbty=$z7jJ>Q5OY4{ zMW>b|U6)8QLjH4OATVB)qP!)#_SEKZ%kN{nFPw*ri4u8gpJJi5NEwS^-as6vl7!s5 z>yL`Lty-uZSz8UK0M3(VQcF%D)A)yV1m>MM5NX-zlFq*Ev}!1AQJ0qoj>4|qUd_+s zL1boULFjW#_WBurn~CdJTB61ue+GZV8kbQrIGU?Sl)Un*7yYKgQ&Q3WN}O4$V1eO&vH7-C&O#ZL$<`m z+uM6*d$IF;5k^kh1;$B#0&MT^E9a~61YYG&&>+oN9yVO=FMLK=FeBvwQ~3TqEvzdz_GVIN0Q>ebJA6W;!%u$U5j*@nD5fWBl)ar30RK3MDqgYoua6Pn*o-OB z=;qVlS%dce_d&yRo_pm!`!;FI+XR!p*xAaJ+p43g*S% zYR~bg!EpC~9{yXD;(W2VY;@=PVKJ~H5*oKk3)8+Z5hUV!mp5tRf|&?4mSx2Evxu@e z(B3l~^CE1n(lX>E0GZyr=Welf!ANhubNA1w8aGujOZ9&i{a?d>g+1VO%t{zwX9p%d zU=Z+aaBAod2GQF+?FglCk|YH!jJaL@z8?UsF~Tukxnf7vmks7D2c)~to_*5u5w58g zyM3FJSV656jH%M)edRMAU^`0C)YR18cwW5+q-+pL8~5tTa*c~0H5gNiBpK=H!@n#) zHV~U&SB=qmi6=rHgtIf_pQ0US_*#?}@fZa1|05K80a$`?s?``aK9kMJ1P<3uL*ggA zztjZ?<1Jw7rVl`|ff$z!nkRaCdW@$I^9F!5Wd#@!6E!BZRlr~-b=GR+>qedhZ~I6L z=PY31?k99EMh@F~xVyMKk(Vc@pvciLj3&2vDbEP|#ZdROU^q}(Q1B|)+77gLPoicA z;Ecdm$)>~tG%(16OXsdaB!vNMd?=eq{CIYDkULpfSt*FgvQ?yD|+&}-n4eoaycLBdf+z;J{z{^gvo@GJ;k<$evcO`if3&J;W(cQKQ zN-p-uCYrDTtL}AdXCZpCYYYQ_XxDRIkOSL?v*t$r1;g+UQ6GNw-kxJU4KcL=pSIq1 z4@km2_W+u`>0Ferbtezw30%PV*b6=8O%0(3!N1ZRO>|KBHf%^n6};TB;m?HrOhl`5_Le`NvWU!a!F~kK&aAV7lYnFVIjHacfG)&A@gt{Xj#= z1W__YDFZO=QJ$7p-7-%cT9x6zCMD77Ibes}r^YQ4 zQ6HCnF670UyCiVpTLuIe$-j|sbCh~GW>fHl`}RKBq%)QRALP+b-T!#V?SD?;EVHoBUnvUhbuO!8%cAF zC*wcr*lW<`Pul(YEi^R~0eV=%5oKi4;nxKrC2Gp~DBq0zJln|A@BLE#2?+6Hpu#jR zTfW<4SRTjo;>mG!_Y(Z^+gGnb|Hvk$2G#=1N!aL?{EKoVoGD|ZC%sA~d|*yNJBXM5 z@fkcyG!=a@bWX`|A^_s^;@sXo_jM#0ETECL_7uw8UmAj@`@(Qkbl#M zk@D{neBVgmIV#utf2(<%U@=W%dOZQL9e1oau{o>8!0fugXb}@EBCqUsj?F%C4}+-& zg*q_#Ba`SA}|R7?lnEM`aM{&{R; zSQuER0KC3<^7ai4C5YkTdY8o)=k&GEZ0*=$BZAuF$9gpsa}y_Y^P&w4TX0=@Ijt2d z7OdbLnCYP-xLj6R<|PhPELxw%_8u(67b-r*j*y>Lm>ZVlh?mV98dJWAWl&1 z?mMaPpEULWWAzTuiNON**=nU1DZ-RFT3aio#sHyB?^X;-K?OhsD?m8Nd(v@-O1I9ABS!Nj06pgg>WW^5 zW5x|MxtT!Yfq9z($;!A*W_P&(oOW1F=pktzyoUK<5h(swGqidPazbX$?0AUjruH*IYGw*N1g0uiL*ci_M>qz*Am_>-0xD86H#z9O{(2WA4jv6Md{H@ zwuXIx5&d)Vx3S;OIMFiY8uGVGtxExpS3*9ozH4#C)%ny|)azxRA~z6{g#K966G6t2 zl9{>r&dVl|nB8{(PtpRq3gy%&LUgkSXDTrwTwF?OmctG~&C@;$sR>xH#~Z9RPfm)& zY){}O+fi>rN(v(y+o)AAEZ_ANL|2gf=zJOfoF?VPzvEwZgmeDZ)%7|W8)yJ}*m&u# zCv}E=5f~vJnsYYLa@g+=B;ZBBmJ2dkL8B9a8mjEwg!&yYru>kLbRzE~;U?*V zDbm@jVYLV8sV|#7#?T1#gs6n)x~};Kj6R?|(=QGn4&*(@QhNTZ)R0)-T2-4}5;bI9 zhXzq4pYBF8*^(M=@!%%PhR~8 zG3|OKL|9aG*h6ZQ$yLhZeJb_@RAMQ^`GQ&=PMxDUIp4HQ=CWK@sR;if#%Gl0_99$j zl;_Un(8jQDGQ=nik_Xl2B$B4*c>kd{tdV6kC-eL-kjZ2$IsqBr$OC2FVY^{pgYqSp zjVTGP0J8$zyeENZV!N}8j3ibdW2J$d;t8S(Fkb=tn^E2uzWD5@aY5j4>p+jIfukeV zvnr1t+YYi>FC~6&t@tzni{3Y>!&g<%KQY9zflF)=iAWHqHx^xGlvk4T#~rmR6g)S? z_8$n5oNy`GNdW}%k@b-&cpHGX|I=pD{{&~I7bS@@Cg=VCl@5*ZSqFi`rb_=F9kTrc z>XU$&(-#c?TA7`F9~MSQMWtM!&vK#X%<2u0Mz({@3Pi>hMJPaMkRMS}Qa%83q3h5V zlEb-+a5`;ad&<7sg%i{D8Aju(o1(B#!U9 zz(s9T(`7IIp<3+^OPXc@Ob!AW`~F|Cq$C|16qWjVUcvWHf1%>)%* z&J$pB+dmnM_ZDIlIM+ouhXzw==--%@oRSjGx%>yz7?_v_%`UWMpAe_1hQC1#BG;AJ zX~n`D2*M>1)F!;1-AarA1q#3^TQT(yChzj(M7Dka!7wE~J?geL=m>teF$(&AySqrd z_WTHah>dR0LJLO0!$TBW=Au$625iMOZp)rsNsPp&ThT4lc1yqKFg8Wns{NUh9wz^$ z%z>-$eIPJL< z3ztGN(!L6nQqdm)9$$w*E6m#3+8j1eNn+FXEU;1iZZ+f=f7iR519Y`b?D-@C6MQr4 z_H+_xGUx}kw{~+3-~XMng8kuFk0*^4v!+vcV?DoqV_9aCUc?f5xC>S{iiLY zh*66ealBXhve;U3&J6I)X?ef!n<6rC$Q#pMzaUVe^C95&(}Ce#9-QbZbbuIhJKSD8 zoukF;X%qd3by}Gx$A}iT;zfK*T}7UZ+-va}?{DMf3_2n7#A5&>(oO}poL}p5DpO{b0X;CELaatE1?0`jRteUSXTM6U`(?b>vL zUF)w;o$dolD6CSjr&{hwcN?Iu zoPas)qX0jO)+E$*0NVc198?EQfrKJ+=MHzPdB4ZaNnweJJM81cY)}Sk>*CTkQQ8GE zy@?$qz~&Mn?bRy~%$rD0oU^^a`;*-7VQDe(rdId&CY?d~@X@ZX5umoeEXZ5)VGiXA zX{^O(aMXag{kv$V;9hhejNZxj0>}}c{(lOOeYwo39S^vleSIY_w_ZHKB}hrge~OUj0b@#4$N)_4G3l&gwi#c{h;Fmt3yD`bp!#c9 zp+A-sB@YUFHHQ2HM7N)>mDTkDhRQ$X_aHtHF&j5KfBaB(10FH`2^InP5SaDI9-%C||C?bpow`o_5LArvk^}V-a2lNBId= z`}L8jJ$q1e6#-p2@fyb^&9tzAfg2zf_1q-|7HVIR&Joi_qNgYEFOxT~qoP(ppBIn~ zGe9RsA&jOkWu`-OWL#qt~~F z4fyx@)n;WG85!14&ewZHLRU5su~%eNXDwp(OKIQVUL2);le{dkV$@5ZQBU}q&<%dQdFy`KxEC9wXQ*qhtfR#_CNi8tl2|-Y8XF0iljRf^A2N=t^Ao zp}zQjvSF)@sV8?zX!-=WJwrikiZvyIdy!j^%#JwmL=e-1$bgn%R7GiLXZM$VQcz1F zvaUt|0L3;~y+KAmOf-_2wIKg$Jsk*ZA=&2y(Tx_Qsw+>JDfDX$d+dyrqM2(}YFV}q z{V^7!HDeBl(U{>gOVIW6^j+b)s=$*032zpv2LBic=52rs4D^rt`udueLU;ds;Y1Sf zUx05HI00R-iX>CJmHCq{odnnaf@E?siO7L#P7ou!QVeUNgV>s6qGJlkWaHLBCOegZ zbKhA}w{I5)Nh_e4pxaK9zer&i?^;io*hLmL1QFBNHz7pSg;f3q-I?OBjn!4xv&4u4J)^mDjDLP zy!V?1c^4cwv>$>t;pGg!p6@ELB`=L302yngclz#UU1$N{w*c^m#(J2muqRF8{)q_* zQsN9e2w-gVBf~6(tJYY-S6;lJ!uus`fi~XMt#33(tXDz%Oc5ZgFMYegln&d84%we1 zBSCvWGHq;>Jp^r%i=Yi85oFbe+et{?T<)zp6pnx30N5G2!!H(M5rFKi0ZLor^7Ctv z^+#}5dL|}GU{5^CdJ+o|y!%~NgJ2m9ct^jg2ql7h%XXfwU6drU2Z-D`&>t&$p1M~W z^BN>@MC$`sX+)bV;&`5oqc>~1Eid<=ls-$~x!#F??!tHQof3wd;Oibz6tk~kc|Lvw zU-kkJTow46XC*KHxh7frEbQ>R8mOIuz5+_e&&c?6YcJrvGcpkw$!kg`&pRL{2#_Et z{k0`R#Yj)vsT`got$;JwSNd{_*)TaEun0pg&DBrhl z{FaKOP_`0MDOs`=MU1pZQCSnpTG^A`7!@f*NtUdUC2RJ?%(PevWl6?Zld_N9V8+b+ z&)c`(^SpHJ<`JA8gyj#a1?1jk*6^{YWl!Rss zc4jnvk^fs=+zd#B3QKNm>$Py0>kV^z;#yRXt-E>!I=Uoj8=Ik=5N+cP1%9Q9bZdYA zs|jSoA@e{U%!)p>n0?VA4imtC7#?M!(XJ#xvw!O4KJ`bxx@7Mj8#}=`Q9}ibBzS#F z%*?TW3T2|CG&ceh%^r^%G(Z%meEGv_hcd4n_|<)tdItk)3=fNWbp_yNRxRJ4{XEsZYuArk zWe(jR*O8!0k2n$q$tP3=@q4Q_Jvtt^afk`l^m^fb!H20N$5Iv)B`9ZINV*-sYGol$923`|2Ira?9BOlm54J|1 z1jX@YOr-?`prMKP^tC*(tgqC_K}J?|Tk^1JKD!}nA2YxU+U^yzn(OZzhRT=F5{UK z&?X^Nc453X=UBzDrW5|t9_xJvkCBuMtjmOt-IF0-$}q`K3RHM}m2|%_)#v^`JmZ>q zc-y%r#=`+bqYNpdwU3-%4_buJZK)40+O(%{Dr8hlB_#ejGZ9ZE_UmaYC*Cbd#&>AC zf18^q>sWu|=qi4iI7S)iQ02> zMX}ib8}JkZZ(T89vl;KmCrNriU9_Gz)W(0xG0dfj{5Xo9=(F(vUXiL((M{o>sb)ZR zp3#jp1T5Wi1M_I8nqH_FX|Jm@OyivCJoghIz8>5p5#-`OC^D)(RlQXcHhu`N_7b#J z5RqH%w@p=d2p^c_0ltrrqb@@${VRF%2W37mhe7q@_t4Nq3$3RSW7ic)9{duSnu8 zkiS>+&-{t@O3xb>M19eEqPdfZN1c8_>gC8>R7a$Z*(8my1>3cd2+`i7>jwk2A$i$UP$ z=tPQR`eKJ~6+3RwCA+~g|0o;Tw$pTGH!h(1Bz$R6yqAgH0k_XWvW4yP+3E zt83pvgPf(-$beVfN<-Lxhz-@>$^IVaaQkQ5nH4h2TceZ&6O)cq};HvqMbm!Z6*hNx0#L z2r}kus;pIP*3t(LD$y|;OYS1N4&37zLS7R5gxq#po1TX&jY6TPI+@f-IWX@=%WBZM z^cc5nl_*}fjh0o8f^J=}R5yes@jLYsuy!41$zFY-qB;UwTVyj$*1b@PWL>pN6e2Ih zU^g3OH0KI#TyS?F!`5_l2hmShoI06%DUDA(CI>`3PK*T)cBAC-0gGyr_-!QeQY?0{ zLU{P3(aJ-H@09JzO)k{uySAAunyj6DLE=?IZjCm%<;}!iHp!n*)q|*}g4Z_Ch1eH;7aJeF?Mm7d>Yyv2S7iFysu2cqWZR+|0N!7Zb1+O+%f3@^u#F5FhrLwb^$z>fqU^hKVD$m!=0Ua7sA#RUg3) zK33(5l#vN=>@Jt<#rt{r0ug>%o;53fk!B6R#%Ky_IVA*8^#`Z|f}zZes_X*c!taUk zxt*;YlCJJfhefQnwE+d>yCrir7VBWP8j;^PicTN$pEd6PRUQAA4_~T8?KvAe2MGtH zONT9J9W;tau6XZSk|J*mS_QyJRH8@G>Conc7~v+>1l7dkfWFDzs_&HUidYL*G6C!N z&TnzDZ4fS!{q90Vx19R=Tf1b`c0k?H1MN@#7>6kMCaPN-niMDd@ah_1CimC(bbGou z!YNnN5p5?MWnGwTFY}k^3Zi-rGy!NJAtR*oori-jsI&|5CnGCu6m1o$<36BUIXE~z z)zqBGi15+`$7mFqR%sLM*Gis^+6;d1!Z?YPgRvU7XOU)BWIin|dHYWGR4M>mzc?p` zq@Ly1GI{egK{X3dD{fFG#DW%uqel}9%qk8fYWS%n9`#Xb2$@3nIuLu4CLF?501kM; zoSb4hAHMzjjO5mERO1t2zaPhJ+!?>;Y}x_ED>)`^9T^xanHu8f?h7#T@U!VzREgYLD{oWcfP(jBoXBLiTeq!_FL~6 ztI|=DZ4>gvz~`@?HF&;;v+SwBH9Hw^bWKhQU7Mvl%=;BS{v)MSkVgG3b*Ytps=Y|h zYRsNBKAupb$Mtvo7G<^k%*ls0lZGKm8>D5TV4RRn_#NJDu zNV^W<=bI<>^w-@KPbfL>GlfTPl6|t$FR8;YTx90?t$0-QFjXNgo=@1eQ})UfLBw|A z6Pp$t>N;OZ1VQTz@)w+?vjL)I9>?}EZ9!0-AA@vB$fz|fET(lso5Z;N-oRM*glIpl zuEhuxfgxoWS~0?YIak-QUXey@7#7#Zppw5ahSF@6B8a3qgG&*3MOa*1Z_cZFl%Zbx z#qOuU=r>(-!GVc0Z>tZ#-Q;{3P53;y!mlm0FsWy{qlku4XXQ-$sxtLm(EZ=EAEuW< zTX^2%0_9kHG$79&eF8?kbM4yBJWC>B{~-ezvY-B|zEuW`Hw zlbM)P{U!UnexvDBBkO%?_a_PB27am@dYQk59TyWa`VB5|H>ik zowrKzRHyFp4C0(RacjhmBU|J$(LbTmX-wA-HG9xE<6=Biej+c@r7JLcQG0sdx>>(o zM^>VxonwfrM?hb~dGL&}ua#x1kf?n6I2iXl<(;Lh7%u`OutLln$| zI^pysP@aMo-UGqY!#L*f#n7Fgr&v*%%%#Br2p~7vHz#je)&@0ofLw4nDy>CFyuin~T%Db>27Oy4kk zLty3pKm;-9%sija2JKBee4kM&#pKf%E2IPs3j=P&2oFW8x`U*sxk@pYG-)vh0qZqG zS;!hhpB;Sov8KhvUA;j33iGX&QjCO>i~6<%M;!v2AnJPtCPlXzjF$L)s!NlZT39r~VDPgh5s3mfhu*Tbwo=e*f$3 zMu=397VlM!+#ZOxw5xzQAS~+eHJ@GnD+kT1-~j3X3%;J9zX2l<5fPCIbqY5*CD7dg zi~oAmwT24OX6+Fm6Fof&)2WG*|DJElp|1)#x$7W+Nsu=ud-%a`qC0kkw*^cA)A!l4 zj7cW+VN6a|_j3N$I}oOH@L+U-B~kNt{atUu?DN7`aPokRE}I?AeO4=8RaIR~m^cjq`08Is^F? zeO!R)JZ|Gb1s0ti@Wel+FvuxoH^iI6k57Q zQr{whv<=k{XKJR=TLrq0RQ}S85N<|j)LwHg{tc+l>G)>W5SH^XJGsxp@{x=V4VrR%1d_D5=iv;W zfnXsuTmD_3V?S<`ujXZVed}NO+J6U%>Wk+4S#+GZ=F-pmZ-4+j9cH<*3qD#oFN0&* zHokATC4yLe(VVlHV%hp{ejT;@bi|z|p(!C#m>p>vERibPW&hpFQ$uflG__paA@U)6X6 zIPP}TRPfXrnwrC$apm=mU2EkN7*D4ng(-Ge3+nnePE=4+!5=<+m@Y|SAp*$JGpj- zwI|%EKcHy?o_cu+WVcm=7h!=T<0Q);loYn~=M=7n~n-og(XompPD5In2RU{V>6UWXt;n z%4&l@h6;>Po{3_~keV4&5iIeeqP2Dfreca+%~m5$s{P`Mzv=#jPN|4(JOB7Xom?UP z938xo*Au+bFT=HiVDq#?`c&sh%3VIcq2mIz7QSiCjrQx$R8A7;lhe@lubj47!AFt) zQW`5Z*HLI_T<7G<7U-+QzSgAFaR|`uKi=qiLnz}lK80-6=G45neNEr8ytZuG=^IJu98R4jRF9LAQ-NtzQvj-PoO~-ePM65xjQi z&Otnb+Wo2SvB)Ptaz26m{2I!RnC$#(m;b4B`WMjfUp(7Y6J033?g@l#0Y~+IbfeDt z*cZ5S)MqYPWiR|6*hOH2FI1<=R4rQOb>{SN=cuj%XaD!GbEpq-7?S zZj|Pr7ccR!O2JRt*i5m2p;nO9LU_{pql_mL`?AZI`-Y3P2OU`I{mU2j(E%x8Li+$h zi#OU5iC3Ew1znGGO5~ZA?1g`spZ5yoc^T>Q6`!D^vGEEiZi6>SF65#zzLU|(-TsT_P;(8h(OKUD2K)rcFLM??E6F~P#wO* zH%^VRK*cBk9chEa)kP0iSJ$)k7Ts$;Lm_g^5K)QZU`fAnopJHE`zI?$aBOEcfiso@$%a% z%CM5AmS}}2)^dx%{G5C{IsuPGR3DVsH$P~`PPz}wkA9b+`pf0G)pE9D`VBIwOsj?IJ9F}_BN0|~=F(T4+OT$@~$7NC1ne`n<(*uLr zjMLLxwwX8GX*-E6g1Np!=_*rh4D2W{7s2xkZOL^JgZr5`CejR1XsF!>TG_Pe`TyD) zEU(efR5oLWQTcr}`)?$fIOpZcSJbqa2yyZ#+7BnsbSGnibw#kLjXL`uT!7;ERp)1E zJ_{oXrg86Y+XkV%+HnDwQQNoiY~ZTn)>qyzvgki+Znw)qz*O8ObS%t-(xV%&I9lwL zcEF6Fz^7eQ`zX%ot9`jlkCR@2yhXJzaN@N&YZp#-OaYNe0(VGCWe|rie~h85LTk2r z8HQ5#{Kqb*aG_uyfM?t(%T4y@y^JKx{8Y zJ|2qHpqluCwH_Cf$&qTUT5AVbO~%)103`8{#`*|I>-VnTszD-QTO?{^0{O{;8%t~( zV@el0{7wpL&EhOUA?0pumj1ktSX5`#7$f(3&)e-?N14#(ETWiN-QYRZmz0dbX_Xk79m!l4nb_inr~w6$mEGJa&0CRXum1RQ=~~A4bVlG{S4w zE}yaFBo&@^d4}Q)0B>zX5kk;U*S(?dM*94xa;NS#xJ_jnC*o{_O#TEewJ*j1Ay>NF zcXen0E9Rk#xA$RlG~(@t=H&fdyUuWu?C#b`-TNIT?v!+w?ck@hsWs1>wBoVrkiaxi zDC%{GjQtbFP4}5WXfCnecK>JSXr~@|boSv6Bs*WSe?19}39P=@1=`?d8?Sc_{fV`l zbnGW+n8Reeg-%Lk3Pzpk9ULB*A&&|k9cfLI` z0qBkxfWH2+)p*Dnxeih1;0zbr6!x!gM%Fw8xhV1_qD9B%EY~$S!Y`2tq@i zm_TS{zqjG}blwsg@x%+yVr0}F^r;jNV*Vlu)jY+_l(@JNC>hLz*oqP!8JVR>CpOLS zTz|K8v33SWDI+zlg(=F;J}ICz`^Ag%`xi?lUHGi45n_t>^@vMM%scV%h>}ti0Z0hJ zLR!9bjQlB$q`yw5x}X6VdTxy~@#}SIO2qFKIJ}%v%{Q{x{*(B-^dw zB^j4(j%AMwb7bd$Y<=AW;6*P0q66Yj<`fOiw$`VJx`Wd&FNOAXn{0!!0k^{_x#;5KT`pkOz|Ci{f#GJ`hLS>7WxBqfjy49(5Z=c6@d|K_wV%n@oG#s02vT z=FOWQs7a;(ID5W1@yJ#b*CWNv4fjn?yLL?tyMzW%aiYz{&e>rrzTgoM^7%57Mecc) zkYTv^_U-2YkrG8iNwh|{im(3C{y?qZ+ILlYL;*f8YN7|_Stsp>9*sWKb=%oa`51vg zaq%KR$MH-uDTOg%A1tIj)>7f|(5({oo~lz9e=4PO4$kr>@zU2hDoF{w&J}ZjFMa<}5aS0yk^hLi zzPaj(?5;`YitbU*s$iGWuCup|8 zt0@G4?0s6z$`i8?o_3FidQ`XAgw2bj;X)3gOWf{K1Pv4>pqy zq8JvM>I10Q8#uGaF?2D|V4fn|ww;CcMUYs_(9|2`+Sy2XQYm#09SM7=0Ok%Hif*{x zJJ5wFq${#_7pl4;IcYLK1{8=G)K7MGRnXPdjgtWUSIZJ`BcS3c=9v`jf`fOUciMN@ zF+r%;nvvIX!-nlu%7$e$2LW$6k@RrxmM!B#OA1dq*s$#>>A|W`&`|^V=d)el@7NFM zSUO2;Z6n=34^()+TskHI{ki2wlS%sg!$1K$iDqblT-@y6w*zo-c_5fKJH|1N1UB|-$4@KH(l!MZkH#02vZ>W z7@vX|&~QPHHEL?|Em66r#& zjr30$u20J|>2l>zNHukq1A1Rz@D2KpMd>E(!_W&&O8tSZfYn1MFj~(%U zf4v4zqkj{XJb){7`hz?UM17b=L146(>`T8uVavdwH-J54mjVUTGY2ZyUar{kIYC2A z@_ygT7X}+0t>lk2R2UD5KFV=beWetQ|1Dc6J!qMsX}VgcmU=s6En%@f7B5Ryn>4VLL94fz5jPv!c_-us-u<}0y`6p$Up)^ zKwQ3o`1pe94MAlc6x{w@XF!qz|BS4%&@U7q>cAFbFq|Eoyb~Ky1;i3Tt7MHlhH77NDCL;OsOysw#Y;MeO&g$#*gk@q$MnlkeW4mn(Wbwe@qz+8OcPQauX?FmmRj_~2&nuQ6EFB(|Z+~Rm>eQ_1HLg%R) zY|}fk&|i`I1fg}B{JJkzFW^N!sIEBK%=M)U=H_hUVGAU+w>U_5mrAct5lzC*4B=0Y zNl1+Vf7AY3Vr9V+Z~Bs=u^DVi$QqEGLb;F@ml&<9Q|QgQR8h*O^IfpHEdkz8ulXIY zZ)r8Q_MWtjJITe7j)G@Y=)3DKMT62^jgU+9a$JX>`*Wi=1;Et=5SjRY0crdKG_(|f zsesn|!TXqoF_xQeqsTCT@`7zbKvzABHhty2XS)yas2HhwpJ!gBf?}7&yJ}j~Ppd<| zBWdF6+cSlD>Xm(%xioOp0SvX9Jonwt>&33$-P^Zqt1Lj=LF^+S>d}9NE{siyR@Wp9 zClRD?GP9f2V`_%9li;pR*>+X^aiks^5;dI-jzC2flEwA_DJDUZubP6UE?~7UfUcWO zNU4(|APB`1&C8?cF~C0Z@IH>R3D#qgzYcp@5 zsPz89Nf|KnNjdyzSz!7B;-g+MQtlO&v78tZm|4uhE2~G@xHCxM@Zru8>RXE+G~%t9 z((_GgqOFW8b2?d&KTCa`96%dA*v&oylTW1!#b~j;8v5&HV#ai%Q3nS89FKL5n`D7c zd4duqy@1;`Y-v{?A$rr0_EHx_p*5-{&gsVo)a{I8T&!iv%Vc(9dGyy2mulr+I+41k|}k)9^au(aEu?m2M=0CmgPR{Ey=+70Qvzp$K0 zs3!nU^Eei~KxwI!Bj$bkRqB9z$ECnLQE{~_3b@_w6P-m6IOb2VI)^Ryo{gG^D~i@e zjuIk0G;17l$I#pET%Cd4nMyPnOL3IpW7i`lyt;B^Qn_zFYtEKg?_>s+141G>Ssq*&BA}A5s}Ae4iiBR zCjWKE{_%4LSFO~0Ao5GQlU^%XzrKV)-dmw10cGVb{e+KOXMw(w0SgxvK<_1oZh}dW zl8kABdQdg@TEkOEkvIBqAuY=9XB2>C3ZkvF!h=}wh)Mo;vnGC>&V)Bi8r|hY1k-_g z)ffS_smFjj6B}bV{W6k#3>~k~ep(UcBp|8Ex zbFKQ1W$hGCnS~D}jx_cg_u*XxG7SOZC9h|r5q8>^jIOsx;ADhJ3421lv3@VG?#py5qg}8BHd3->Wd^=P_ z1e?6l9|_I-N6iI`p@DAcXYAqGewWTSFWYk|rfk`&1pyUXt?hJ(!mQbiJSPdvyF+NH zh_wA{`jvT^o0I0VN@llzBp_5j@rcT(H`0!4)s49sx>~uei5qQKvYwkCmKs~&IT#|T zphW?~Nsv2W7+0Q!e`Lo_@(2jhz-@j=bUG3SYQ3@<#8d} z%1OyEe52beWq!9$!c?WT^GDMV8$ZpWI!uhT%LTLFa8D6vt^>Jt0G|*+?F&#YO!0zd z4PPDCpJ9$WHea4!AG$n<1rboAQz<%Vmp?*N;^zpbPY*Vc9v_>id6V;ns$H{#Ws-AM zSZa2`a(IsSZF1FnkZ@JA;>ymocO+N=FPrzf-BKMCH_k&J40X|-m$gW)#Tz^MiJOhM zHcfTCx^A=PYT_JoER(2j2fMmS0#{ooE+Th; z^wrLKUO73Tcc5->ik4X%qjksQx0@!v>tT`}@P351u*vO{L`vUlJ0I`n!B-H!vK(L2 z&1LJqa&2Z*pC9#amgGaaYNo1(vKd?A0EU9NrT91-LUSzNU%s4n8ncy|@MY?ZxI=#! zIReuyT()S>u!vCVE`E{MOZFTt{KfBtjJ?iYj6NlM*9W!ztZ8xPae(l%8g?KD-)q}> z)^t88U97ZnS&DaYDd_gAi+iC#noWV;kH^1ks?b^krl4xf zu3Gk#i>__YHV#Da9B@Cf6Duc~O8u-aLfo{ZAo)9$XFX%114>g;OrOfB$5RSq8=dT5 z+BsCIX6Ag=XG^s}mqZwqGz58Uze-(c@kVuWk3rKP71hgjvW8wHypP>si-D7$a%+$Q&(c`I*JL zSzmPAI}=sCz^>qPqBeAWvD3Z^hk>HY*GQ1h>Fq0@tvA0z_c84zll;Rku1S4f&7`wv z73e&jN98^LW0FzMrH7woc4Zbv&OO)gYol;%zEfN{$4E%C8o_rZN?M|%gj&YS&*ddl zMM{AQo#?r-(+i}bM0+*+_qdSXv zmgcZ6&0AijS(%jmVk%G}4@!Tb;aT#QW{ci>`C7@8@LJh``SMs%R;L%xkX%yxtC?Xw zj08~MJqBdskMUyn!8k-0|IXkV#29lcTFI19azZuOcRw@dJCIJXuw7t_&i_`3L$_Rl z^!PdNDNX2qpJ0*@*f%kgwpb(OH`rWUj{{9p!c3?Xo5~6%}GTjsnl&{{{!$W-*57bJv!e< zRrZr*VToHmR>trfyqs1r=5_+s>I3OW9P!VyYU%Tg$Ri6H>XZI$-F`A%!j#w#OBH@_ z0q`Lda#4e?+%LwhNUe^`eO$cwDULFuB6okknLs^Jirg#Y`;1V$r6jM{#Q3MYxevq> z>+xRZ``?KdQ?1KLjp&6&F(}q_M9yYEw|@9aGRN}oiY7?}=ycS8w|D+5n8xC2dPH{j zFDk~SLEs*VsfCs^$Sp_Ik9_JiJR;}Wq$2aFm`CcACb_|GjSYQgwCLsV8h83#_N2-! z-{KzKn992!N3rV{VUY(PzRa7+5{50Hf84Y+{UKh}*^ZF0zbM*Gr$f5*yr1ocVJbTZ zFnoF}yX20QsN}xkPxbQAzBrWdh&OD8crl?ag^8BWaV5x+`@lm`Bgx$e3k7R0dXu_h zXtEw$iL-qUEsw;;70K9^R4`-Fdy=dR;hK2*%cN$5gag|^K$5lVeUSe+EVVba9-ykRxW5U4e z|1)kz?#h<9Vv?}@=_G58)a`=r`cLGgoycQg##Y3x40pbc6*kT+$=FObS1qm&b@qB` zRd=Z@9;qYt4mP(L5Rlv8%zlGHh&I$IoWrI*T)sYN=Vmjbvdk6FaVs;}>J3c+3d|Y9n=7X8 z2$O74EacK}fi&p?Oo5f|N$EN7+)fgNDcMA6rgOYpX4*#HxiWlQ3Mu1!_6x`5`@aj5 z!ZGLDfTj;@7Dmq~_J|dBM8+(@KX>|i^AdZFTS-65(2q4`e{@bGwx3mcGGN0AauILJ zOx8`>CFC`&v}bSbM<-6U8(Go>)}nHzw3s;Z=1ybZ+Cv>7_sJ?^jVh;Ptli(P+PO#p zJ;F#4_>#isAMgqWoW2)ui@wxMO*HJ{=ev;t=TCJOr57rGEoXBQ=wq=3W|&gVEE4Ez0?(jY(!MwoiTpv;=076xQo1%W=P~iIJR36h zvK+PfNQWk)T`ZhJf=Q-ACDwHeA7hn)5#wtwN0DC(jtF3G<`W*d?9Q)=^R7&kGPT)5}si}4iD+1 z40VSeVSn|IX?cgu230DCGLt+Kx8x05j{^Jz{l`=5kwa#>wq*k8@_iUr${v}j zshdKDxa&Ldfa3ns7XZdgVm4R0E8}v~xD;!{2Uv;fLY^8kC+taE^-k!$%lYSl&FU~g zqozFgN0V?PX2nO(JEQj(MaV{l0gfNW9S2EIQ(OA>~3FecvQ;@{`X+qbc$;0`8~Q@SOt@ z&B46rM-%k4E-ZFsVZ5t>_RBpbVe-%Z8&Cko@F!62^^GNIKnnA%CZ-e8*myhx3=I1HJ?va+bSzUD%TpT9PEB z02Q~qk!|&Zah_nlbv`-`zDDLJp(E={pOJ_pOp7xbMo3;)y`@7e{c~7Ihxq=N9Q}a8 zzg(k-hc^DU3)Nk3r}NRSpy|{~i{+_=jgM;$uQmK$5RWARMCj30(fu>Vd`aqZt8wzM zgK9@RE8*!jt4SuyTtzV^{C%$a!}%NzCPcXL|$w+-?jIwVkI+=jZe;%@Ce zj2kX`&*A=4B2f|5(vd8fdl8mk748=k2(Z<%WZEa8sQJc_XYp&Nc`VPg$;mU04Qvug=uE4mCs`UpgG*DjD=npIefIU4sW#nKD6G}?{{ZtkN6PtWzQ z?D1boh=ddU=LfF6Wi77%IL@+{zO#6NpL#`?8ktq1frA0ek4(=!>6>+1n#O~G^u8S>y18;J!suxFS87j(J zux(PGncL>K$p$)7Pji#q`Y~=SUA~_SGbDTb*5gnAdO#97d6O*s-8Z*?4qtbz75e1l z)hDR=?%-j@h4NiNX3i9rSyu|P0(1V8sKm;hu@p#VCoYfF4-oFk2lHljo57t<*Hsk? zy;yRB`L;VBa6E1@mM2qFggIrn7@|IBDqnq?fwACT*r^B7E02mPpyn6}D@Yw}35;w{P}n-pm`uCc9Cs0#vYiFljbDzCJyn#mWq`@LP%BsP2L${UV&C8Q96RE7#l zkLR${>de6?Zk!TL{*0AgRylX7*2W}r*OC)HM>J`!3O#Pa@vcMZ;vr_vcu9Y1hkQ`v z0duq4Gw9tdW0gWfKP)xpkHY?9=qIc>1HNSp5?wiSO;aNBDJQD2>4vn(T@qNhbd+IIzHMo_@ z)4>NmeNI*WhkN(kMTh>|)UgkAJ=F#qX{fL0?Ze=>CHaGIri2aCzoV+cxd&ns%1(qhX9@ zALXCN#4x>wIvcO8xU^@^a0LFzwq@HRpTZs6${f}tQL5q5vL^N%?iNYEVW{K(m{oST z>oBwQvP*HSvX^6r05b)7E&A zzUIufN5f+f_Dzi8sAUs13Pzadq>)7>Cdum7CG|HZ;Krzh&Usr+Qv(2kKn~W{E@N5_^m6{&x|J<=vVn_qOP6g=%)fk51kuts1g|3F#wT2BJ5VPM&KKdo6nTJ0 z^WV#+xwNi(LS#~Rk6MYzcQtZ|pSRRpx-nngcneYjh)FfDefC;*JwyEz`l> zRVpXdJjU7=p~BSEtu%vTQDm*iq=?~CF_3@CtoW%gJ977esm?W}SWR!@Qztep3rL4j zvnEU$E>UMiEd|CuK>I5-}*La-UwZYzEKJ z7|UO`DEcX4eDZk&KF=hloukNbv@@4~;~Q59-L*EM^w!SKPLGmJ(0?dR00U(G8VtQl zUCpqTmx+;HIOb@mMwPBzBbx|G zWPNrX&82HJlnJD|r`uh_BB;+)T+#k+k7EpasxLGF(6*{1yVoZNvm>%-SB3T(lyu94 zHxzMUXswZIXw@I>k)Hpq8tH(h=fCT9nb0L55hV%KSokW(78Mntg;_7dO?M)z$!V>} zzg2s~HO5mbIxjwt=P6nQOnU5#7~INk;4(a8>`$jGGc96--J-F1?!BXF;oYt=*zxA# z?!t52r6DBNA+%M-IUL1MVtveo)#9gyEh&z3^~GCWN;_(r1`F@Z%&BG)r-S9AnO(Ws z+_FiM3WxM7ZdQ1N2_a)UQv&Dr?pCz^+$CSa37&6k>j7_u<+HEvADTau$~C8rL!H~T zfaS72k2KCT2;;fl;jZMss&#TsgA2Ixrt3I^BkkU-&0IfbbVf?LFHhKjl*Wt9ACGsK zE~&|-Y!HsF9T$&**EQTqZ&HUHh3LCLib2G*b+x@oU@eODA;^uRXqx&~suu-k>cp*7@}Zsu($?y+I38h!cuzYvsf1p~mP5Do(WY zPKt9^>1ZTuoUz8grD$ln;NNFnU=&Ep9D;IzcRq7Ncjkt^-Xs^zqebsP`cAJc177NQ zR~PWX{?PW6PxPFLdeuS@hLZ03y1Fa<{rKUlQ%5!+T8DrnRSTR2PmoD?OOZN=@Wh_8 zm%P)eghP15C&AhW5urIyaJ>gw(#lDSYC$W1AwkM4OzQ@gH2h|i*?&AvQx#ZKCGP2v z0}VY4^?HMkm;f-1+RW6Ec6V^mh$a62;soNFeqI80&fK)xUAP+4rgysvF!=o zt>ZlOZsXZ)U-aUQUz)RJ$y%`9-(DS5i~PgF82b`i&3ws3FLmpBfy^64+q03sIeyL3 zIB2VcNF;Rz{mdj)iMlgRKBByAlYUIj3e(;PMFg*mFs8{v`=@QoEvZH9l)*&|18pAG zevT}zY0hAm3h8Ib#%gGR+-Ejb>Az)Pk9cIj=cs(5Pk+du&cN|Iku6(!9dF=vbyT}| zx9mktV!!O@0k!?|Rahhy12dcr&vXHc`<{6o*Ir&8-%&o3;?V!dgnlu)R}*>TkFE$T ztLbX{lYf_V{73Xx$NjGv$^Z1>#&XylrJI}%7{FR)^$mvm^cYSK!h-f>|II5RBSr9) zd62cF07liH@)SMDrlCch?#(|uxA|J{pIy4kyabb${U$-uSTU*@z7%dwKtLhYl>Jo-@e64E~y621} z$l-j(gtrPL_hDSeRE99nfE}_bdIQSKgbhR2nV?Lx?5E~co(v2~E=|75lS0EaL}YMT zQIBuK5?WprKg4nl`F^Y1LJ;QBPjdME|@x-;@)sKts!_EX5@^g(7>> z@E0Q347BR(M~*|sjMjc3$gAee)=aWv#f(K`1=|&eYNg!8BmDb~Y&YnBuNQf72F(_H zZ0KQs#YHj9XXMoUqw`_9AKUXh(L8czq-D;wzD1C>9UP1QO&!L3&<&d11`M+oc0igB zd)L@x#lrsRj$G(zG<@C}`Ve+e2UIvWzJVs(`x+u%Qo@0zbMQM_4*~D+4M~#TJ7^g3 zxN>#b_4!P#M8{b$yh(F6k6~zjN|C|nTiSWJHB|TNT#Na@-1sEa`Xl(f2|DGJta(Z65wqZ7Rb{h_PapScPZ_b;Qm)U=|8eWaLSR42D z2!P3`n}lXP%ajUgs%Vy?;7$bwqw5Z2aCH8_nOWUC|5My>X_r-OCTPvkTqHvPSB4*1Ntr2hGH$t$+?Zpx;+ zq_)YPzWB&nCDY?D2U}pmUj-R>#P*TX^Jgt_XK#zrc4rDRUUJ?}SNiq|wdGJlQ#a6G zipO*Xtk|{;AG`}rgn>~&4whWhw6BAkSBJ;hzy=q`rc|ZW{AthG#Kj{{l*n>1ulV^R z=h3DX&+Y0yEzH+1%%462UE~zuHOC{E2fUiww3kpq_QFSa=d2iy#0pL#sKN{W#t6~> z+0zE74_DD`=*>`7q@{CVlLd~U-}ge*vy^Pn5+C~3xkJ~seT0i2qNVMii3Y0uYXSb+ z!-X=W7>YHtJvk1H`Gj4vsrDG(2rH9)530M%9m!E3NSKK;En(@Aux{6G(%x~LiAi0g zY}n}gO*k~Ps(^tmr)@DLn^1bg^FH=hlR6rq4~dglRFB!BNdi>BDpub;0ff__bGdU- z;uXOM^f0tD82LoP8YFe|-%7s!RYwiy{P$e!|5O_A@7SdOM~&aVx$Kh{=c4w=sXvgu z>3}O;c-v?YtXZhdZP?bqyfN+;`m4)<2b>d zZ#ZrV|Jz`CamF^lNJJ#wBHwdY$G42ATYY?Fs4Z^Qb|UWoG>ZEF2hH~<%VmmrYnmc}8bl)v-i$@!%P35|G*Z) z#GKJvwWP21tty>^ za9o)?x)!@VU{QmkTFFj4vt@37yMiR1I%pp0SI%}O-=lT>mF1smaU5aXtxk9_bC;F5 zgL!FzwRGJJ-0I2gS&jRMc;efgwXI&t`WvgD{_X3k!z{D* zD+%2G#+e2>@_&cXSV+&Z#y{$#x6)@SQiru<682dohxE-`lkmb0iLXftk{XL}BiLNg zotMw``zFqJ{Ktvb=bAB>Tih{;4(s(X2M|U14fS9Qo8=El10EI<(Yjo12nEcQ!Tf224OR z#!KhO-Q9ko_vYVi{S6Vh`MLe}_V#~(H=G5Xpbwky;4x}yW5xYi>K6!v!eJs#L)>p; z04tDt0=cfD@+orQHyz0AMceL`7PvVcUsALaRt!HBzDeQ1z>&TUQzv0kB5|z$r?zVk zYU<457f`_}0@W7eF;TQqq!L()f*1mdTELQSv?8HEg!&>1h!cwmkXT(BH%Ockkt!yw zma4Vkr7<)-LZxU6C=p8niUAvWXp|5FBq1c(bED4A?o3-d+x_dyoZQE`-{W`Ax%WH2 zQ$Up}t3`|U+J4jT&(o^kMUJt2J~3$fS2zDGDjto8{f=@vojw4$|GP|X2N}bm($D8B z*ai9HvQvs8QMqqLwQpA^+jl(owct(B98)cO(d2F06WUSbmAa`z2c*h#luI%((3Mw8 z`g$j-NCGh($M2ZMB<}`Ru`y$ z`Ez6Qr<8-m>}*wU_wqb`jMwI>eORmIn(z8ziEnms;THwVwoD~ck{lwFdk)4u|9{zZ z?QlINL{UK;gjBrYA`uA9 zda-(=8^hH9!;x&YqG1e}p2vVB?(YO-RWk>2d`}TuF9y%OnG)mcgbDY=%{a!AR0_?v zsC}FO^U^^Hck+j3ZhB7vYPL$hQ(Z5rUV8%a-Ya8$2TZy?Eb!+Jm`%okI(4I8ITt?p z-95`k=K1u&wcaV`E~~?@q$K#CD(4c>?Bp0{vKf2Z0tF)PN*|(_)0(4Y$a~SjE&ZCM z9}^e%l2n{kSawf2BzBzyZrB=;C_aurXaoAY8*Y;^D+nPTA5Es3zu%0`1g5C_{(V0{ ztsR+}nd8;`@H}xySeQp%uc{0xAJiDP$Fy5K4)7SjB#R)+F3F~@$WBGfEm(op2+lEu z6hMA7m$gk!a%~>47kFVX*p=!zHGYE~pX;l=ES$Ehv9teCl7G(LTfrH>*gr0o6ce_ZVyz9-2Z=`DdpljxSQp-WuE zo9pxalzD?%B|YuN57s@=)75rOANAPSX2mM@Wu%4lNG)^n?^5tbG0HHtA(JG((@ntQ zYy+0qIx`cqy%li+YGA$bp18#KqR{-P9>W(^?AX*?r@qe7MEy84gtJ7eNbbfbolB4) zZ^Wki^Ww^bE7!iQTl{wUFC<3bjSv^j$A$az$UySr1?iL zlvm9XtY;p&w;Z`79JonfB8YuXbX4S){5xYU-?)lhClnk7M=}$~Xz@R>CkxBkFWjaZ z)I+>C8|hW-#m|ys%xv#p?~+um0+rhtYCvPM9F|K!<`u^XST#sStCdRjzdYPO2|9lO z+uQwIG!F-tC~+x5(;5eCt2Ij+E7r$TN1W<_0)Q{J6K^n9*WZ$fX5fiHrt)#rZB9ijGJoo zje8FfR~e?&ha@SoNPfZm4qmc0JD74fw2lgcqq_X2k!q2|u5%#9805s(l#|3($Ud@+ zWVb^WLm$pEhKcoMbSCNpSu7`tpl=>Wpt2!*@^ro}s}VBq+C7`>(5Jgy^5-f`h^>aW z6Jx+;ZAB271~>yJ&^om}JqZbdt>p_I`@q0#daxIJc;Vh;`;}Xr@1$-537LMyDFRwV zapOW0+W!Ag`ISSVSDGkH@HfO%$A%#LtEta~yXNiQv5hY4*N^i`yi?C^f7WmS`TVQd z2g-Fue-Vh4UN9~WRSTvUBG5-OFW{yODDC~j3`2ppF3Hhope%-`CgDcQg~~2 zPU1R;PVv0b%j*R~sw3JbVFOmz_zz~}U+NM3J1~5u-T)w+!a5iu6rC*zFNo8B0&>xIZgvb8Z8^ z<@CWzB4ys0WFwSAwyYOSROD}+pFE>J8_Ir#hlh_eI;9!hMD*ub+K*gJ+GZX*NQ>-3z-fpI;i9Md%Q=A0^m`FSclOiUUY#5Gr7T zV0Val*1AvbgDC8!=;9BKS@sVmJ(0oNFHrP_H~Tv;4_RqosYb0*f z?hnK2YYR{pP|Bmi$pKEbCsuTkTm_UbaVmh2T*c9sE@vA3rR&6eTzPDPj#C_%d4R0KDK{P-bicH zE!}DF0E}KFjHl;!4;yFL{bQKJB&03kLpFBhr2bjHLAh5SMx_>b9{B$ox~_~}f8)9CO}e-%(#oZusaXO!0UF?!AD^>I-ZYssJf3j&aBumAu6 literal 36625 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 Wq0Q&=ll#T*8&_{B Date: Sun, 13 Feb 2022 14:26:59 +0000 Subject: [PATCH 05/13] Update dna2.dm merge conflict resolution --- code/game/dna/dna2.dm | 2 ++ 1 file changed, 2 insertions(+) diff --git a/code/game/dna/dna2.dm b/code/game/dna/dna2.dm index 93a2895311..733fdb28c9 100644 --- a/code/game/dna/dna2.dm +++ b/code/game/dna/dna2.dm @@ -143,6 +143,8 @@ var/global/list/datum/dna/gene/dna_genes[0] new_dna.custom_ask=custom_ask //VOREStaton Edit new_dna.custom_whisper=custom_whisper //VOREStaton Edit new_dna.custom_exclaim=custom_exclaim //VOREStaton Edit + var/list/body_markings_genetic = (body_markings - body_marking_nopersist_list) + new_dna.body_markings=body_markings_genetic.Copy() for(var/b=1;b<=DNA_SE_LENGTH;b++) new_dna.SE[b]=SE[b] if(b<=DNA_UI_LENGTH) From 8a8c5f1b1a25a3b2f289590fee9455a69a410320 Mon Sep 17 00:00:00 2001 From: Killian <49700375+KillianKirilenko@users.noreply.github.com> Date: Sun, 13 Feb 2022 14:35:18 +0000 Subject: [PATCH 06/13] Update wall_attacks.dm --- code/game/turfs/simulated/wall_attacks.dm | 3 --- 1 file changed, 3 deletions(-) diff --git a/code/game/turfs/simulated/wall_attacks.dm b/code/game/turfs/simulated/wall_attacks.dm index d671e00252..fb07754d1e 100644 --- a/code/game/turfs/simulated/wall_attacks.dm +++ b/code/game/turfs/simulated/wall_attacks.dm @@ -240,10 +240,7 @@ return // Basic dismantling. -<<<<<<< HEAD -======= var/dismantle_toolspeed = 0 ->>>>>>> 6489e47e1a7... Merge pull request #8371 from Atermonera/wall_deconstruction_fix if(isnull(construction_stage) || !reinf_material) var/cut_delay = 60 - material.cut_delay From 9ff6c8ec8964638d358b07e37c518ede87d57b1c Mon Sep 17 00:00:00 2001 From: Killian <49700375+KillianKirilenko@users.noreply.github.com> Date: Sun, 13 Feb 2022 14:51:07 +0000 Subject: [PATCH 07/13] Update engine.dm --- maps/submaps/engine_submaps/engine.dm | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/maps/submaps/engine_submaps/engine.dm b/maps/submaps/engine_submaps/engine.dm index 403ec45374..63a0552c6d 100644 --- a/maps/submaps/engine_submaps/engine.dm +++ b/maps/submaps/engine_submaps/engine.dm @@ -3,12 +3,10 @@ name = "Engine Loader" var/clean_turfs // A list of lists, where each list is (x, ) -<<<<<<< HEAD /obj/effect/landmark/engine_loader/New() -======= INITIALIZE_IMMEDIATE(/obj/effect/landmark/engine_loader) + /obj/effect/landmark/engine_loader/Initialize() ->>>>>>> 2d43d031101... Merge pull request #8354 from Atermonera/fix_engineload if(SSmapping.engine_loader) warning("Duplicate engine_loader landmarks: [log_info_line(src)] and [log_info_line(SSmapping.engine_loader)]") delete_me = TRUE From 75e6549637f3de0d4ae81ca40a7aaa786204dc0e Mon Sep 17 00:00:00 2001 From: Detective-Google <48196179+Detective-Google@users.noreply.github.com> Date: Sun, 13 Feb 2022 10:17:36 -0600 Subject: [PATCH 08/13] no more fun! adds qpads to the no cargo shuttle list, no more teleporting to CC! --- code/controllers/subsystems/supply.dm | 2 ++ 1 file changed, 2 insertions(+) diff --git a/code/controllers/subsystems/supply.dm b/code/controllers/subsystems/supply.dm index 04908f3f31..af096c33a8 100644 --- a/code/controllers/subsystems/supply.dm +++ b/code/controllers/subsystems/supply.dm @@ -56,6 +56,8 @@ SUBSYSTEM_DEF(supply) return 1 if(istype(A,/obj/item/device/perfect_tele_beacon)) //VOREStation Addition: Translocator beacons return 1 //VOREStation Addition: Translocator beacons + if(istype(A,/obj/machinery/power/quantumpad)) // //VOREStation Add: Quantum pads + return 1 //VOREStation Add: Quantum pads for(var/atom/B in A.contents) if(.(B)) From a4970a6bc295c1576e1c4e7c55798735f9f12a61 Mon Sep 17 00:00:00 2001 From: VerySoft Date: Sun, 13 Feb 2022 16:32:20 -0500 Subject: [PATCH 09/13] No Quantum Pads on Shuttles Related to the cargo shuttle thing, the same exploit would work for any shuttle, so! Now it don't. --- code/game/machinery/constructable_frame.dm | 5 +++++ code/modules/telesci/quantum_pad.dm | 14 ++++++++++++++ 2 files changed, 19 insertions(+) diff --git a/code/game/machinery/constructable_frame.dm b/code/game/machinery/constructable_frame.dm index a2f310aaf1..6a61f01502 100644 --- a/code/game/machinery/constructable_frame.dm +++ b/code/game/machinery/constructable_frame.dm @@ -50,6 +50,11 @@ if(istype(P, /obj/item/weapon/circuitboard)) var/obj/item/weapon/circuitboard/B = P if(B.board_type == "machine") + //VOREStation Addition End + if(istype(B, /obj/item/weapon/circuitboard/quantumpad) && istype(get_area(src), /area/shuttle)) + to_chat(user, "This is too unstable a platform for a quantum pad to operate on!") + return + //VOREStation Addition End playsound(src, 'sound/items/Deconstruct.ogg', 50, 1) to_chat(user, "You add the circuit board to the frame.") circuit = P diff --git a/code/modules/telesci/quantum_pad.dm b/code/modules/telesci/quantum_pad.dm index a55004e404..1ca5dfbf4e 100644 --- a/code/modules/telesci/quantum_pad.dm +++ b/code/modules/telesci/quantum_pad.dm @@ -65,6 +65,11 @@ return if(istype(I, /obj/item/device/multitool)) + //VOREStation Addition Start + if(istype(get_area(src), /area/shuttle)) + to_chat(user, "This is too unstable a platform for \the [src] to operate on!") + return + //VOREStation Addition End if(panel_open) var/obj/item/device/multitool/M = I M.connectable = src @@ -128,6 +133,10 @@ if(istype(get_area(src), /area/shuttle)) to_chat(user, "This is too unstable a platform for \the [src] to operate on!") + //VOREStation Addition Start + if(linked_pad) + linked_pad.linked_pad = null + //VOREStation Addition End return if(!powernet) @@ -175,6 +184,11 @@ update_icon() if(!linked_pad) return + //VOREStation Addition Start + if(istype(get_area(src), /area/shuttle)) + to_chat(user, "This is too unstable a platform for \the [src] to operate on!") + return + //VOREStation Addition End playsound(src, 'sound/weapons/flash.ogg', 25, 1) teleporting = 1 From af5b60053392bf2972e51f78426039c831d0308f Mon Sep 17 00:00:00 2001 From: PastelPrinceDan Date: Sun, 13 Feb 2022 22:41:48 +0000 Subject: [PATCH 10/13] folders :) --- maps/stellardelight/stellar_delight3.dmm | 2 ++ 1 file changed, 2 insertions(+) diff --git a/maps/stellardelight/stellar_delight3.dmm b/maps/stellardelight/stellar_delight3.dmm index 9688aec1ba..299c0bacca 100644 --- a/maps/stellardelight/stellar_delight3.dmm +++ b/maps/stellardelight/stellar_delight3.dmm @@ -13225,6 +13225,7 @@ /obj/machinery/atmospherics/unary/vent_scrubber/on{ dir = 8 }, +/obj/item/weapon/folder/white_cmo, /turf/simulated/floor/tiled/eris/white/cargo, /area/crew_quarters/heads/cmo) "VG" = ( @@ -13678,6 +13679,7 @@ /obj/machinery/atmospherics/unary/vent_scrubber/on{ dir = 8 }, +/obj/item/weapon/folder/white_rd, /turf/simulated/floor/tiled/techfloor, /area/crew_quarters/heads/hor) "Xo" = ( From 4b50dff53a09a6ab4e7225082fd4c6702d510682 Mon Sep 17 00:00:00 2001 From: VerySoft Date: Sun, 13 Feb 2022 18:19:03 -0500 Subject: [PATCH 11/13] Uncapitalize curious crystal that way it gets 'the' in front of it in messages. --- code/game/objects/items/weapons/capture_crystal.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/game/objects/items/weapons/capture_crystal.dm b/code/game/objects/items/weapons/capture_crystal.dm index 8b225d9298..5e492eec34 100644 --- a/code/game/objects/items/weapons/capture_crystal.dm +++ b/code/game/objects/items/weapons/capture_crystal.dm @@ -1,5 +1,5 @@ /obj/item/capture_crystal - name = "Curious Crystal" + name = "curious crystal" desc = "A silent, unassuming crystal in what appears to be some kind of steel housing." icon = 'icons/obj/capture_crystal_vr.dmi' icon_state = "inactive" From dee8667de8b5b44b2b31fd400c96defe55424701 Mon Sep 17 00:00:00 2001 From: VerySoft Date: Sun, 13 Feb 2022 19:52:51 -0500 Subject: [PATCH 12/13] Item bank tweak! A couple more restrictions! --- code/modules/client/stored_item.dm | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/code/modules/client/stored_item.dm b/code/modules/client/stored_item.dm index 6ce1a4c524..d2210b2245 100644 --- a/code/modules/client/stored_item.dm +++ b/code/modules/client/stored_item.dm @@ -246,3 +246,7 @@ persist_storable = FALSE /obj/item/weapon/reagent_containers/food/snacks/grown persist_storable = FALSE +/obj/item/weapon/stock_parts + persist_storable = FALSE +/obj/item/weapon/rcd + persist_storable = FALSE \ No newline at end of file From a751b73cd4f071e7dcb39887f57e3377d0813d5c Mon Sep 17 00:00:00 2001 From: VerySoft Date: Sun, 13 Feb 2022 23:37:16 -0500 Subject: [PATCH 13/13] Absorb Languages Makes it so when someone is absorbed, the pred and prey share languages. (and this is undone when unabsorbed/released) --- code/modules/mob/living/living.dm | 3 ++ code/modules/vore/eating/belly_obj_vr.dm | 40 ++++++++++++++++++++++++ code/modules/vore/eating/living_vr.dm | 2 ++ code/modules/vore/eating/vorepanel_vr.dm | 3 ++ 4 files changed, 48 insertions(+) diff --git a/code/modules/mob/living/living.dm b/code/modules/mob/living/living.dm index d27edd297b..e46fd9fc29 100644 --- a/code/modules/mob/living/living.dm +++ b/code/modules/mob/living/living.dm @@ -36,6 +36,9 @@ qdel(selected_image) QDEL_NULL(vorePanel) //VOREStation Add QDEL_LIST_NULL(vore_organs) //VOREStation Add + temp_language_sources = null //VOREStation Add + temp_languages = null //VOREStation Add + if(LAZYLEN(organs)) organs_by_name.Cut() diff --git a/code/modules/vore/eating/belly_obj_vr.dm b/code/modules/vore/eating/belly_obj_vr.dm index e9e5baab15..f96af5c204 100644 --- a/code/modules/vore/eating/belly_obj_vr.dm +++ b/code/modules/vore/eating/belly_obj_vr.dm @@ -374,6 +374,7 @@ ML.muffled = 0 if(ML.absorbed) ML.absorbed = FALSE + handle_absorb_langs(ML, owner) if(ishuman(M) && ishuman(OW)) var/mob/living/carbon/human/Prey = M var/mob/living/carbon/human/Pred = OW @@ -676,6 +677,11 @@ absorb_alert_prey = replacetext(absorb_alert_prey, "%countprey", absorbed_count) M.absorbed = TRUE + if(M.ckey) + owner.temp_language_sources += M + M.temp_language_sources += owner + handle_absorb_langs(M, owner) + to_chat(M, "[absorb_alert_prey]") to_chat(owner, "[absorb_alert_owner]") if(M.noisy) //Mute drained absorbee hunger if enabled. @@ -741,6 +747,7 @@ unabsorb_alert_prey = replacetext(unabsorb_alert_prey, "%countprey", absorbed_count) M.absorbed = FALSE + handle_absorb_langs(M, owner) to_chat(M, "[unabsorb_alert_prey]") to_chat(owner, "[unabsorb_alert_owner]") @@ -752,6 +759,39 @@ if(isanimal(owner)) owner.update_icon() +///////////////////////////////////////////////////////////////////////// +/obj/belly/proc/handle_absorb_langs(var/mob/living/prey, var/mob/living/pred) + for(var/mob/living/p in pred.temp_language_sources) //Let's look at the pred's sources + if (!p.absorbed) + for(var/L in pred.temp_languages) + if(L in p.languages) + pred.languages -= L + pred.temp_languages -= L + pred.temp_language_sources -= p + else + for(var/L in p.languages) + if(L in pred.languages) + continue + pred.languages += L + pred.temp_languages += L + + for(var/mob/living/P in prey.temp_language_sources) //Let's look at the prey's sources + if (!prey.absorbed) + for(var/L in prey.temp_languages) + if(L in P.languages) + prey.languages -= L + prey.temp_languages -= L + prey.temp_language_sources -= P + else + for(var/L in P.languages) + if(L in prey.languages) + continue + prey.languages += L + prey.temp_languages += L + +//////////////////////////////////////////////////////////////////////// + + //Digest a single item //Receives a return value from digest_act that's how much nutrition //the item should be worth diff --git a/code/modules/vore/eating/living_vr.dm b/code/modules/vore/eating/living_vr.dm index 6837cc4d56..ffaaa5ec09 100644 --- a/code/modules/vore/eating/living_vr.dm +++ b/code/modules/vore/eating/living_vr.dm @@ -12,6 +12,8 @@ var/obj/belly/vore_selected // Default to no vore capability. var/list/vore_organs = list() // List of vore containers inside a mob var/absorbed = FALSE // If a mob is absorbed into another + var/list/temp_language_sources = list() //VOREStation Addition - Absorbs add languages to the pred + var/list/temp_languages = list() //VOREStation Addition - Absorbs add languages to the pred var/weight = 137 // Weight for mobs for weightgain system var/weight_gain = 1 // How fast you gain weight var/weight_loss = 0.5 // How fast you lose weight diff --git a/code/modules/vore/eating/vorepanel_vr.dm b/code/modules/vore/eating/vorepanel_vr.dm index 31d74f6d0e..d83744547d 100644 --- a/code/modules/vore/eating/vorepanel_vr.dm +++ b/code/modules/vore/eating/vorepanel_vr.dm @@ -540,6 +540,9 @@ to_chat(user,"You manage to [lowertext(TB.vore_verb)] [M] into your [lowertext(TB.name)]!") to_chat(M,"[host] manages to [lowertext(TB.vore_verb)] you into their [lowertext(TB.name)]!") to_chat(OB.owner,"Someone inside you has eaten someone else!") + if(M.absorbed) + M.absorbed = FALSE + OB.handle_absorb_langs(M, OB.owner) TB.nom_mob(M) /datum/vore_look/proc/pick_from_outside(mob/user, params)