From 748da30bb6c2b4b3d96a290638e2edff7d0fc43d Mon Sep 17 00:00:00 2001 From: Tigercat2000 Date: Thu, 13 Aug 2015 14:39:29 -0700 Subject: [PATCH 01/89] -tg- underware overhaul This commit overhauls the underwear/undershirt system to -tg-'s text-based version. No more magic numbers, just text states. Note, this modifies the SQL Schema, and existing databases must be modified by the following SQL: ALTER TABLE server_db.characters CHANGE underwear underwear MEDIUMTEXT NOT NULL, CHANGE undershirt undershirt MEDIUMTEXT NOT NULL; --- SQL/paradise_schema.sql | 4 +- code/__HELPERS/global_lists.dm | 34 +- code/__HELPERS/mobs.dm | 16 +- code/__HELPERS/sanitize_values.dm | 2 +- code/_globalvars/lists/flavor_misc.dm | 13 +- code/game/dna/dna.dm | 4 +- code/game/gamemodes/nations/nations.dm | 3 +- code/game/gamemodes/vampire/vampire_powers.dm | 3 +- code/game/machinery/computer/hologram.dm | 2 +- code/game/objects/structures/dresser.dm | 31 +- code/modules/admin/verbs/honksquad.dm | 12 +- code/modules/admin/verbs/one_click_antag.dm | 41 +-- code/modules/admin/verbs/randomverbs.dm | 9 +- code/modules/admin/verbs/striketeam.dm | 12 +- .../admin/verbs/striketeam_syndicate.dm | 12 +- code/modules/client/preferences.dm | 65 ++-- code/modules/client/preferences_mysql.dm | 12 +- .../mob/living/carbon/human/human_defines.dm | 4 +- .../mob/living/carbon/human/update_icons.dm | 8 +- code/modules/mob/new_player/new_player.dm | 6 +- .../mob/new_player/preferences_setup.dm | 29 +- .../mob/new_player/sprite_accessories.dm | 344 +++++++++++++++++- icons/mob/human.dmi | Bin 77672 -> 46361 bytes icons/mob/underwear.dmi | Bin 0 -> 33606 bytes 24 files changed, 472 insertions(+), 194 deletions(-) create mode 100644 icons/mob/underwear.dmi diff --git a/SQL/paradise_schema.sql b/SQL/paradise_schema.sql index c05e74a467a..5bd9322806c 100644 --- a/SQL/paradise_schema.sql +++ b/SQL/paradise_schema.sql @@ -50,8 +50,8 @@ CREATE TABLE `characters` ( `eyes_red` smallint(4) NOT NULL, `eyes_green` smallint(4) NOT NULL, `eyes_blue` smallint(4) NOT NULL, - `underwear` smallint(4) NOT NULL, - `undershirt` smallint(4) NOT NULL, + `underwear` mediumtext NOT NULL, + `undershirt` mediumtext NOT NULL, `backbag` smallint(4) NOT NULL, `b_type` varchar(45) NOT NULL, `alternate_option` smallint(4) NOT NULL, diff --git a/code/__HELPERS/global_lists.dm b/code/__HELPERS/global_lists.dm index 210e5ed891e..c69742b94c8 100644 --- a/code/__HELPERS/global_lists.dm +++ b/code/__HELPERS/global_lists.dm @@ -4,32 +4,16 @@ ////////////////////////// /proc/makeDatumRefLists() + //hair + init_sprite_accessory_subtypes(/datum/sprite_accessory/hair, hair_styles_list, hair_styles_male_list, hair_styles_female_list) + //facial hair + init_sprite_accessory_subtypes(/datum/sprite_accessory/facial_hair, facial_hair_styles_list, facial_hair_styles_male_list, facial_hair_styles_female_list) + //underwear + init_sprite_accessory_subtypes(/datum/sprite_accessory/underwear, underwear_list, underwear_m, underwear_f) + //undershirt + init_sprite_accessory_subtypes(/datum/sprite_accessory/undershirt, undershirt_list, undershirt_m, undershirt_f) + var/list/paths - - //Hair - Initialise all /datum/sprite_accessory/hair into an list indexed by hair-style name - paths = subtypesof(/datum/sprite_accessory/hair) - for(var/path in paths) - var/datum/sprite_accessory/hair/H = new path() - hair_styles_list[H.name] = H - switch(H.gender) - if(MALE) hair_styles_male_list += H.name - if(FEMALE) hair_styles_female_list += H.name - else - hair_styles_male_list += H.name - hair_styles_female_list += H.name - - //Facial Hair - Initialise all /datum/sprite_accessory/facial_hair into an list indexed by facialhair-style name - paths = subtypesof(/datum/sprite_accessory/facial_hair) - for(var/path in paths) - var/datum/sprite_accessory/facial_hair/H = new path() - facial_hair_styles_list[H.name] = H - switch(H.gender) - if(MALE) facial_hair_styles_male_list += H.name - if(FEMALE) facial_hair_styles_female_list += H.name - else - facial_hair_styles_male_list += H.name - facial_hair_styles_female_list += H.name - //Surgery Steps - Initialize all /datum/surgery_step into a list paths = subtypesof(/datum/surgery_step) for(var/T in paths) diff --git a/code/__HELPERS/mobs.dm b/code/__HELPERS/mobs.dm index 4658e6691ea..cf23b83bc96 100644 --- a/code/__HELPERS/mobs.dm +++ b/code/__HELPERS/mobs.dm @@ -1,4 +1,16 @@ -proc/random_hair_style(gender, species = "Human") +/proc/random_underwear(var/gender) + switch(gender) + if(MALE) return pick(underwear_m) + if(FEMALE) return pick(underwear_f) + else return pick(underwear_list) + +/proc/random_undershirt(var/gender) + switch(gender) + if(MALE) return pick(undershirt_m) + if(FEMALE) return pick(undershirt_f) + else return pick(undershirt_list) + +proc/random_hair_style(var/gender, species = "Human") var/h_style = "Bald" var/list/valid_hairstyles = list() @@ -29,7 +41,7 @@ proc/random_hair_style(gender, species = "Human") if(SOUTHEAST) return NORTHWEST return 0 -proc/random_facial_hair_style(gender, species = "Human") +proc/random_facial_hair_style(var/gender, species = "Human") var/f_style = "Shaved" var/list/valid_facialhairstyles = list() diff --git a/code/__HELPERS/sanitize_values.dm b/code/__HELPERS/sanitize_values.dm index 4b521f9bfbb..1be69032cf1 100644 --- a/code/__HELPERS/sanitize_values.dm +++ b/code/__HELPERS/sanitize_values.dm @@ -14,7 +14,7 @@ /proc/sanitize_inlist(value, list/List, default) if(value in List) return value if(default) return default - if(List && List.len)return List[1] + if(List && List.len)return pick(List) diff --git a/code/_globalvars/lists/flavor_misc.dm b/code/_globalvars/lists/flavor_misc.dm index 8ec230cc13b..882331d21de 100644 --- a/code/_globalvars/lists/flavor_misc.dm +++ b/code/_globalvars/lists/flavor_misc.dm @@ -8,12 +8,13 @@ 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 //Underwear -var/global/list/underwear_m = list("White", "Grey", "Green", "Blue", "Black", "Mankini", "None") -var/global/list/underwear_f = list("Red", "White", "Yellow", "Blue", "Black", "Thong", "None") -var/global/list/underwear_list = underwear_m + underwear_f - //undershirt -var/global/list/undershirt_t = list("White Shirt", "White Tank top", "Black shirt", "Black Tank top", "Grey Shirt", "Grey tank top", "Lover Shirt", "Blue Ian Shirt", "UK Shirt","I Love NT Shirt", "Peace Shirt", "Band Shirt", "PogoMan Shirt", "Matroska Shirt", "White Short-sleeved shirt", "Purple Short-sleeved shirt", "Blue Short-sleeved shirt", "Green Short-sleeved shirt", "Black Short-Sleeved shirt", "Blue T-Shirt", "Red T-Shirt", "Yellow T-Shirt", "Green T-Shirt", "Blue Polo Shirt", "Red Polo Shirt", "White Polo Shirt", "Gray-Yellow Polo Shirt", "Green Sports Shirt", "Red Sports Shirt", "Blue Sports Shirt", "SS13 Shirt", "Fire Tank Top", "Question Shirt", "Skull Shirt", "Commie Shirt", "Nanotrasen Shirt", "Striped Shirt", "Blue Shirt", "Red Shirt", "Green Shirt", "Meat Shirt", "Tie-Dye Shirt", "Red Jersey", "Blue Jersey", "None") -var/global/list/undershirt_list = undershirt_t +var/global/list/underwear_list = list() //stores /datum/sprite_accessory/underwear indexed by name +var/global/list/underwear_m = list() //stores only underwear name +var/global/list/underwear_f = list() //stores only underwear name + //Undershirts +var/global/list/undershirt_list = list() //stores /datum/sprite_accessory/undershirt indexed by name +var/global/list/undershirt_m = list() //stores only undershirt name +var/global/list/undershirt_f = list() //stores only undershirt name //Backpacks var/global/list/backbaglist = list("Nothing", "Backpack", "Satchel", "Satchel Alt") diff --git a/code/game/dna/dna.dm b/code/game/dna/dna.dm index 2835a1614ed..716d563a6e7 100644 --- a/code/game/dna/dna.dm +++ b/code/game/dna/dna.dm @@ -74,7 +74,7 @@ //Hair var/hair = 0 if(!character.h_style) - character.h_style = "Bald" + character.h_style = random_hair_style(character.gender) var/hrange = round(4095 / hair_styles_list.len) var/index = hair_styles_list.Find(character.h_style) @@ -84,7 +84,7 @@ //Facial Hair var/beard = 0 if(!character.f_style) - character.f_style = "Shaved" + character.f_style = random_facial_hair_style(character.gender) var/f_hrange = round(4095 / facial_hair_styles_list.len) index = facial_hair_styles_list.Find(character.f_style) diff --git a/code/game/gamemodes/nations/nations.dm b/code/game/gamemodes/nations/nations.dm index 52df698a96f..f0cc2f28cbe 100644 --- a/code/game/gamemodes/nations/nations.dm +++ b/code/game/gamemodes/nations/nations.dm @@ -293,8 +293,7 @@ datum/game_mode/nations else new_character.gender = pick(MALE,FEMALE) var/datum/preferences/A = new() - A.randomize_appearance_for(new_character) - new_character.real_name = real_name + A.copy_to(new_character) if(!new_character.real_name) if(new_character.gender == MALE) diff --git a/code/game/gamemodes/vampire/vampire_powers.dm b/code/game/gamemodes/vampire/vampire_powers.dm index eff70300720..1b60f3fb006 100644 --- a/code/game/gamemodes/vampire/vampire_powers.dm +++ b/code/game/gamemodes/vampire/vampire_powers.dm @@ -198,7 +198,8 @@ if(M.current.vampire_power(50, 0)) M.current.visible_message("[M.current.name] transforms!") M.current.client.prefs.real_name = M.current.generate_name() //random_name(M.current.gender) - M.current.client.prefs.randomize_appearance_for(M.current) + M.current.client.prefs.random_character() + M.current.client.prefs.copy_to(M.current) M.current.regenerate_icons() M.current.remove_vampire_blood(50) M.current.verbs -= /client/vampire/proc/vampire_shapeshift diff --git a/code/game/machinery/computer/hologram.dm b/code/game/machinery/computer/hologram.dm index c21e3cf8b4f..bfd95d46457 100644 --- a/code/game/machinery/computer/hologram.dm +++ b/code/game/machinery/computer/hologram.dm @@ -36,7 +36,7 @@ I.Blend(rgb(- src.lumens, -src.lumens, -src.lumens), ICON_SUBTRACT) I.Blend(new /icon('icons/mob/human.dmi', "mouth_m_s"), ICON_OVERLAY) - I.Blend(new /icon('icons/mob/human.dmi', "underwear1_m_s"), ICON_OVERLAY) + I.Blend(new /icon('icons/mob/underwear.dmi', "Mens White"), ICON_OVERLAY) var/icon/U = new /icon('icons/mob/human_face.dmi', "hair_a_s") U.Blend(rgb(src.h_r, src.h_g, src.h_b), ICON_ADD) diff --git a/code/game/objects/structures/dresser.dm b/code/game/objects/structures/dresser.dm index 6a773177c59..10898e80a47 100644 --- a/code/game/objects/structures/dresser.dm +++ b/code/game/objects/structures/dresser.dm @@ -6,47 +6,26 @@ density = 1 anchored = 1 -/obj/structure/dresser/proc/convUnM(mund) - return underwear_m.Find(mund) - -/obj/structure/dresser/proc/convUnF(fund) - return underwear_f.Find(fund) - -/obj/structure/dresser/proc/convUs(us) - return undershirt_list.Find(us) - /obj/structure/dresser/attack_hand(mob/user as mob) if(!Adjacent(user))//no tele-grooming return if(ishuman(user)) var/mob/living/carbon/human/H = user - var/choice = input(user, "Underwear, or Undershirt?", "Changing") as null|anything in list("Underwear","Undershirt") + var/choice = input(user, "Underwear or Undershirt?", "Changing") as null|anything in list("Underwear","Undershirt") if(!Adjacent(user)) return switch(choice) if("Underwear") - if(H.gender == FEMALE) - var/new_undies = input(user, "Select your underwear", "Changing") as null|anything in underwear_f - if(new_undies) - H << "\red You selected [new_undies]." - var/freturn = convUnF(new_undies) - H.underwear = freturn - - else - var/new_undies = input(user, "Select your underwear", "Changing") as null|anything in underwear_m - if(new_undies) - H << "\red You selected [new_undies]." - var/mreturn = convUnM(new_undies) - H.underwear = mreturn + var/new_undies = input(user, "Select your underwear", "Changing") as null|anything in underwear_list + if(new_undies) + H.underwear = new_undies if("Undershirt") var/new_undershirt = input(user, "Select your undershirt", "Changing") as null|anything in undershirt_list if(new_undershirt) - H << "\red You selected [new_undershirt]" - var/usreturn = convUs(new_undershirt) - H.undershirt = usreturn + H.undershirt = new_undershirt add_fingerprint(H) H.update_body() \ No newline at end of file diff --git a/code/modules/admin/verbs/honksquad.dm b/code/modules/admin/verbs/honksquad.dm index 9b383a93d17..e64cbf66574 100644 --- a/code/modules/admin/verbs/honksquad.dm +++ b/code/modules/admin/verbs/honksquad.dm @@ -79,13 +79,13 @@ var/global/sent_honksquad = 0 var/honksquad_rank = pick("Corporal", "Sergeant", "Staff Sergeant", "Sergeant 1st Class", "Master Sergeant", "Sergeant Major") var/honksquad_name = pick(clown_names) - new_honksquad.gender = pick(MALE, FEMALE) - var/datum/preferences/A = new()//Randomize appearance for the commando. - A.randomize_appearance_for(new_honksquad) - - new_honksquad.real_name = "[!honk_leader_selected ? honksquad_rank : honksquad_leader_rank] [honksquad_name]" - new_honksquad.age = !honk_leader_selected ? rand(23,35) : rand(35,45) + if(honk_leader_selected) + A.age = rand(35,45) + A.real_name = "[honksquad_leader_rank] [honksquad_name]" + else + A.real_name = "[honksquad_rank] [honksquad_name]" + A.copy_to(new_honksquad) new_honksquad.dna.ready_dna(new_honksquad)//Creates DNA. diff --git a/code/modules/admin/verbs/one_click_antag.dm b/code/modules/admin/verbs/one_click_antag.dm index 6bb2f96ba06..93e5bb5c078 100644 --- a/code/modules/admin/verbs/one_click_antag.dm +++ b/code/modules/admin/verbs/one_click_antag.dm @@ -396,16 +396,8 @@ client/proc/one_click_antag() //First we spawn a dude. var/mob/living/carbon/human/new_character = new(pick(latejoin))//The mob being spawned. - new_character.gender = pick(MALE,FEMALE) - var/datum/preferences/A = new() - A.randomize_appearance_for(new_character) - if(new_character.gender == MALE) - new_character.real_name = "[pick(first_names_male)] [pick(last_names)]" - else - new_character.real_name = "[pick(first_names_female)] [pick(last_names)]" - new_character.name = new_character.real_name - new_character.age = rand(17,45) + A.copy_to(new_character) new_character.dna.ready_dna(new_character) new_character.key = G_found.key @@ -418,14 +410,13 @@ client/proc/one_click_antag() var/syndicate_commando_rank = pick("Corporal", "Sergeant", "Staff Sergeant", "Sergeant 1st Class", "Master Sergeant", "Sergeant Major") var/syndicate_commando_name = pick(last_names) - new_syndicate_commando.gender = pick(MALE, FEMALE) - var/datum/preferences/A = new()//Randomize appearance for the commando. - A.randomize_appearance_for(new_syndicate_commando) - - new_syndicate_commando.real_name = "[!syndicate_leader_selected ? syndicate_commando_rank : syndicate_commando_leader_rank] [syndicate_commando_name]" - new_syndicate_commando.name = new_syndicate_commando.real_name - new_syndicate_commando.age = !syndicate_leader_selected ? rand(23,35) : rand(35,45) + if(syndicate_leader_selected) + A.real_name = "[syndicate_commando_leader_rank] [syndicate_commando_name]" + A.age = rand(35,45) + else + A.real_name = "[syndicate_commando_rank] [syndicate_commando_name]" + A.copy_to(new_syndicate_commando) new_syndicate_commando.dna.ready_dna(new_syndicate_commando)//Creates DNA. @@ -610,14 +601,7 @@ client/proc/one_click_antag() var/mob/living/carbon/human/newMember = new(L.loc) - newMember.gender = pick(MALE,FEMALE) - A.randomize_appearance_for(newMember) - if(newMember.gender == MALE) - newMember.real_name = "[pick(first_names_male)] [pick(last_names)]" - else - newMember.real_name = "[pick(first_names_female)] [pick(last_names)]" - newMember.name = newMember.real_name - newMember.age = rand(17,45) + A.copy_to(newMember) newMember.dna.ready_dna(newMember) @@ -639,14 +623,7 @@ client/proc/one_click_antag() var/mob/living/carbon/human/newMember = new(L.loc) - newMember.gender = pick(MALE,FEMALE) - A.randomize_appearance_for(newMember) - if(newMember.gender == MALE) - newMember.real_name = "[pick(first_names_male)] [pick(last_names)]" - else - newMember.real_name = "[pick(first_names_female)] [pick(last_names)]" - newMember.name = newMember.real_name - newMember.age = rand(17,45) + A.copy_to(newMember) newMember.dna.ready_dna(newMember) diff --git a/code/modules/admin/verbs/randomverbs.dm b/code/modules/admin/verbs/randomverbs.dm index feb735baef2..d01ff7de39e 100644 --- a/code/modules/admin/verbs/randomverbs.dm +++ b/code/modules/admin/verbs/randomverbs.dm @@ -433,14 +433,11 @@ Traitors and the like can also be revived with the previous role mostly intact. else new_character.gender = pick(MALE,FEMALE) var/datum/preferences/A = new() - A.randomize_appearance_for(new_character) - new_character.real_name = G_found.real_name + A.real_name = G_found.real_name + A.copy_to(new_character) if(!new_character.real_name) - if(new_character.gender == MALE) - new_character.real_name = capitalize(pick(first_names_male)) + " " + capitalize(pick(last_names)) - else - new_character.real_name = capitalize(pick(first_names_female)) + " " + capitalize(pick(last_names)) + new_character.real_name = random_name(new_character.gender) new_character.name = new_character.real_name if(G_found.mind && !G_found.mind.active) diff --git a/code/modules/admin/verbs/striketeam.dm b/code/modules/admin/verbs/striketeam.dm index 347f461dca8..c4fda49439a 100644 --- a/code/modules/admin/verbs/striketeam.dm +++ b/code/modules/admin/verbs/striketeam.dm @@ -104,13 +104,13 @@ var/global/sent_strike_team = 0 var/commando_rank = pick("Corporal", "Sergeant", "Staff Sergeant", "Sergeant 1st Class", "Master Sergeant", "Sergeant Major") var/commando_name = pick(last_names) - new_commando.gender = pick(MALE, FEMALE) - var/datum/preferences/A = new()//Randomize appearance for the commando. - A.randomize_appearance_for(new_commando) - - new_commando.real_name = "[!leader_selected ? commando_rank : commando_leader_rank] [commando_name]" - new_commando.age = !leader_selected ? rand(23,35) : rand(35,45) + if(leader_selected) + A.age = rand(35,45) + A.real_name = "[commando_leader_rank] [commando_name]" + else + A.real_name = "[commando_rank] [commando_name]" + A.copy_to(new_commando) new_commando.dna.ready_dna(new_commando)//Creates DNA. diff --git a/code/modules/admin/verbs/striketeam_syndicate.dm b/code/modules/admin/verbs/striketeam_syndicate.dm index 3113e58c2be..42a635feafb 100644 --- a/code/modules/admin/verbs/striketeam_syndicate.dm +++ b/code/modules/admin/verbs/striketeam_syndicate.dm @@ -108,13 +108,13 @@ var/global/sent_syndicate_strike_team = 0 var/syndicate_commando_rank = pick("Corporal", "Sergeant", "Staff Sergeant", "Sergeant 1st Class", "Master Sergeant", "Sergeant Major") var/syndicate_commando_name = pick(last_names) - new_syndicate_commando.gender = pick(MALE, FEMALE) - var/datum/preferences/A = new()//Randomize appearance for the commando. - A.randomize_appearance_for(new_syndicate_commando) - - new_syndicate_commando.real_name = "[!syndicate_leader_selected ? syndicate_commando_rank : syndicate_commando_leader_rank] [syndicate_commando_name]" - new_syndicate_commando.age = !syndicate_leader_selected ? rand(23,35) : rand(35,45) + if(syndicate_leader_selected) + A.age = rand(35,45) + A.real_name = "[syndicate_commando_leader_rank] [syndicate_commando_name]" + else + A.real_name = "[syndicate_commando_rank] [syndicate_commando_name]" + A.copy_to(new_syndicate_commando) new_syndicate_commando.dna.ready_dna(new_syndicate_commando)//Creates DNA. diff --git a/code/modules/client/preferences.dm b/code/modules/client/preferences.dm index 6c985f2a002..744ddd8a04a 100644 --- a/code/modules/client/preferences.dm +++ b/code/modules/client/preferences.dm @@ -30,7 +30,7 @@ var/global/list/special_role_times = list( //minimum age (in days) for accounts num2text(BE_REV) = 14, num2text(BE_VAMPIRE) = 14, num2text(BE_BLOB) = 14, - num2text(BE_REVENANT) = 14, + num2text(BE_REVENANT) = 14, num2text(BE_OPERATIVE) = 21, num2text(BE_CULTIST) = 21, num2text(BE_RAIDER) = 21, @@ -104,8 +104,8 @@ datum/preferences var/age = 30 //age of character var/spawnpoint = "Arrivals Shuttle" //where this character will spawn (0-2). var/b_type = "A+" //blood type (not-chooseable) - var/underwear = 1 //underwear type - var/undershirt = 1 //undershirt type + var/underwear = "Nude" //underwear type + var/undershirt = "Nude" //undershirt type var/backbag = 2 //backpack type var/h_style = "Bald" //Hair type var/r_hair = 0 //Hair color @@ -185,14 +185,17 @@ datum/preferences var/volume = 100 /datum/preferences/New(client/C) b_type = pick(4;"O-", 36;"O+", 3;"A-", 28;"A+", 1;"B-", 20;"B+", 1;"AB-", 5;"AB+") - if(istype(C)) - if(!IsGuestKey(C.key)) -// load_path(C.ckey) - if(load_preferences(C)) - if(load_character(C)) - return - gender = pick(MALE, FEMALE) + + var/loaded_preferences_successfully = load_preferences(C) + if(loaded_preferences_successfully) + if(load_character(C)) + return + //we couldn't load character data so just randomize the character appearance + name + random_character() //let's create a random character then - rather than a fat, bald and naked man. real_name = random_name(gender) + if(!loaded_preferences_successfully) + save_preferences(C) + save_character(C) //let's save this new random character so it doesn't keep generating new ones. /datum/preferences proc/ShowChoices(mob/user) @@ -316,11 +319,8 @@ datum/preferences dat += "\[...\]

" else dat += "

" - if(gender == MALE) - dat += "Underwear: [underwear_m[underwear]]
" - else - dat += "Underwear: [underwear_f[underwear]]
" - dat += "Undershirt: [undershirt_t[undershirt]]
" + dat += "Underwear:
[underwear]
" + dat += "Undershirt:
[undershirt]
" dat += "Backpack Type:
[backbaglist[backbag]]
" dat += "Nanotrasen Relation:
[nanotrasen_relation]
" dat += "Preview
" @@ -984,10 +984,10 @@ datum/preferences if("f_style") f_style = random_facial_hair_style(gender, species) if("underwear") - underwear = rand(1,underwear_m.len) + underwear = random_underwear(gender) ShowChoices(user) if("undershirt") - undershirt = rand(1,undershirt_t.len) + undershirt = random_undershirt(gender) ShowChoices(user) if("eyes") r_eyes = rand(0,255) @@ -1006,7 +1006,7 @@ datum/preferences /*if("skin_style") h_style = random_skin_style(gender)*/ if("all") - randomize_appearance_for() //no params needed + random_character() if("input") switch(href_list["preference"]) if("name") @@ -1176,16 +1176,17 @@ datum/preferences var/new_underwear = input(user, "Choose your character's underwear:", "Character Preference") as null|anything in underwear_options if(new_underwear) - underwear = underwear_options.Find(new_underwear) + underwear = new_underwear ShowChoices(user) if("undershirt") - var/list/undershirt_options - undershirt_options = undershirt_t - - var/new_undershirt = input(user, "Choose your character's undershirt:", "Character Preference") as null|anything in undershirt_options - if (new_undershirt) - undershirt = undershirt_options.Find(new_undershirt) + var/new_undershirt + if(gender == MALE) + new_undershirt = input(user, "Choose your character's undershirt:", "Character Preference") as null|anything in undershirt_m + else + new_undershirt = input(user, "Choose your character's undershirt:", "Character Preference") as null|anything in undershirt_f + if(new_undershirt) + undershirt = new_undershirt ShowChoices(user) if("eyes") @@ -1340,7 +1341,7 @@ datum/preferences gender = FEMALE else gender = MALE - + underwear = random_underwear(gender) if("hear_adminhelps") sound ^= SOUND_ADMINHELP @@ -1410,7 +1411,10 @@ datum/preferences close_load_dialog(user) if("changeslot") - load_character(user,text2num(href_list["num"])) + if(!load_character(user,text2num(href_list["num"]))) + random_character() + real_name = random_name(gender) + save_character(user) close_load_dialog(user) if("tab") @@ -1420,7 +1424,7 @@ datum/preferences ShowChoices(user) return 1 - proc/copy_to(mob/living/carbon/human/character, safety = 0) + proc/copy_to(mob/living/carbon/human/character) if(be_random_name) real_name = random_name(gender,species) @@ -1517,12 +1521,7 @@ datum/preferences W.buckled_mob = character W.add_fingerprint(character) - if(underwear > underwear_m.len || underwear < 1) - underwear = 0 //I'm sure this is 100% unnecessary, but I'm paranoid... sue me. //HAH NOW NO MORE MAGIC CLONING UNDIES character.underwear = underwear - - if(undershirt > undershirt_t.len || undershirt < 1) - undershirt = 0 character.undershirt = undershirt if(backbag > 4 || backbag < 1) diff --git a/code/modules/client/preferences_mysql.dm b/code/modules/client/preferences_mysql.dm index f098ff77989..c76ef2e3ee9 100644 --- a/code/modules/client/preferences_mysql.dm +++ b/code/modules/client/preferences_mysql.dm @@ -87,8 +87,8 @@ r_eyes = text2num(query.item[23]) g_eyes = text2num(query.item[24]) b_eyes = text2num(query.item[25]) - underwear = text2num(query.item[26]) - undershirt = text2num(query.item[27]) + underwear = query.item[26] + undershirt = query.item[27] backbag = text2num(query.item[28]) b_type = query.item[29] @@ -147,8 +147,8 @@ r_eyes = sanitize_integer(r_eyes, 0, 255, initial(r_eyes)) g_eyes = sanitize_integer(g_eyes, 0, 255, initial(g_eyes)) b_eyes = sanitize_integer(b_eyes, 0, 255, initial(b_eyes)) - underwear = sanitize_integer(underwear, 1, underwear_m.len, initial(underwear)) - undershirt = sanitize_integer(undershirt, 1, undershirt_t.len, initial(undershirt)) + underwear = sanitize_text(underwear, initial(underwear)) + undershirt = sanitize_text(undershirt, initial(undershirt)) backbag = sanitize_integer(backbag, 1, backbaglist.len, initial(backbag)) b_type = sanitize_text(b_type, initial(b_type)) @@ -204,7 +204,7 @@ message_admins("SQL ERROR during character slot saving. Error : \[[err]\]\n") return return 1 - +/* /datum/preferences/proc/random_character(client/C) var/DBQuery/query = dbcon.NewQuery("SELECT slot FROM characters WHERE ckey='[C.ckey]' ORDER BY slot") @@ -218,4 +218,4 @@ load_character(C) return 0 load_character(C,pick(saves)) - return 1 \ No newline at end of file + return 1*/ \ No newline at end of file diff --git a/code/modules/mob/living/carbon/human/human_defines.dm b/code/modules/mob/living/carbon/human/human_defines.dm index 39e0f052f2b..bc10d54b1c8 100644 --- a/code/modules/mob/living/carbon/human/human_defines.dm +++ b/code/modules/mob/living/carbon/human/human_defines.dm @@ -29,8 +29,8 @@ var/age = 30 //Player's age (pure fluff) var/b_type = "A+" //Player's bloodtype - var/underwear = 1 //Which underwear the player wants - var/undershirt = 0 //Which undershirt the player wants. + var/underwear = "Nude" //Which underwear the player wants + var/undershirt = "Nude" //Which undershirt the player wants. var/backbag = 2 //Which backpack type the player has chosen. Nothing, Satchel or Backpack. //Equipment slots diff --git a/code/modules/mob/living/carbon/human/update_icons.dm b/code/modules/mob/living/carbon/human/update_icons.dm index f7db0be92ab..1ba23b125d2 100644 --- a/code/modules/mob/living/carbon/human/update_icons.dm +++ b/code/modules/mob/living/carbon/human/update_icons.dm @@ -318,10 +318,14 @@ var/global/list/damage_icon_parts = list() //Underwear if(underwear && species.flags & HAS_UNDERWEAR) - stand_icon.Blend(new /icon('icons/mob/human.dmi', "underwear[underwear]_[g]_s"), ICON_OVERLAY) + var/datum/sprite_accessory/underwear/U = underwear_list[underwear] + if(U) + stand_icon.Blend(new /icon(U.icon, "uw_[U.icon_state]_s"), ICON_OVERLAY) if(undershirt && species.flags & HAS_UNDERWEAR) - stand_icon.Blend(new /icon('icons/mob/human.dmi', "undershirt[undershirt]_s"), ICON_OVERLAY) + var/datum/sprite_accessory/undershirt/U2 = undershirt_list[undershirt] + if(U2) + stand_icon.Blend(new /icon(U2.icon, "us_[U2.icon_state]_s"), ICON_OVERLAY) if(update_icons) update_icons() diff --git a/code/modules/mob/new_player/new_player.dm b/code/modules/mob/new_player/new_player.dm index 15456b3fa7c..dab6510418c 100644 --- a/code/modules/mob/new_player/new_player.dm +++ b/code/modules/mob/new_player/new_player.dm @@ -468,11 +468,9 @@ if(is_alien_whitelisted(src, client.prefs.language) || !config.usealienwhitelist || !(chosen_language.flags & WHITELISTED)) new_character.add_language(client.prefs.language) if(ticker.random_players || appearance_isbanned(new_character)) - new_character.gender = pick(MALE, FEMALE) + client.prefs.random_character() client.prefs.real_name = random_name(new_character.gender) - client.prefs.randomize_appearance_for(new_character) - else - client.prefs.copy_to(new_character) + client.prefs.copy_to(new_character) src << sound(null, repeat = 0, wait = 0, volume = 85, channel = 1) // MAD JAMS cant last forever yo diff --git a/code/modules/mob/new_player/preferences_setup.dm b/code/modules/mob/new_player/preferences_setup.dm index 363675b723c..b60ebe12c5d 100644 --- a/code/modules/mob/new_player/preferences_setup.dm +++ b/code/modules/mob/new_player/preferences_setup.dm @@ -1,11 +1,12 @@ datum/preferences //The mob should have a gender you want before running this proc. Will run fine without H - proc/randomize_appearance_for(var/mob/living/carbon/human/H) - if(H) - if(H.gender == MALE) - gender = MALE - else - gender = FEMALE + proc/random_character(gender_override) + if(gender_override) + gender = gender_override + else + gender = pick(MALE, FEMALE) + underwear = random_underwear(gender) + undershirt = random_undershirt(gender) if(species == "Human") s_tone = random_skin_tone() h_style = random_hair_style(gender, species) @@ -16,12 +17,8 @@ datum/preferences randomize_eyes_color() if(species == "Unathi" || species == "Tajaran" || species == "Skrell" || species == "Vulpkanin") randomize_skin_color() - underwear = rand(1,underwear_m.len) - undershirt = rand(1,undershirt_t.len) backbag = 2 age = rand(AGE_MIN,AGE_MAX) - if(H) - copy_to(H,1) proc/randomize_hair_color(var/target = "hair") @@ -256,12 +253,16 @@ datum/preferences var/icon/underwear_s = null - if(underwear > 0 && underwear < 7 && current_species.flags & HAS_UNDERWEAR) - underwear_s = new/icon("icon" = 'icons/mob/human.dmi', "icon_state" = "underwear[underwear]_[g]_s") + if(underwear && current_species.flags & HAS_UNDERWEAR) + var/datum/sprite_accessory/underwear/U = underwear_list[underwear] + if(U) + underwear_s = new/icon(U.icon, "[U.icon_state]_s", ICON_OVERLAY) var/icon/undershirt_s = null - if(undershirt > 0 && undershirt < 45 && current_species.flags & HAS_UNDERWEAR) - undershirt_s = new/icon("icon" = 'icons/mob/human.dmi', "icon_state" = "undershirt[undershirt]_s") + if(undershirt && current_species.flags & HAS_UNDERWEAR) + var/datum/sprite_accessory/undershirt/U2 = undershirt_list[undershirt] + if(U2) + undershirt_s = new/icon(U2.icon, "[U2.icon_state]_s", ICON_OVERLAY) var/icon/clothes_s = null var/uniform_dmi='icons/mob/uniform.dmi' diff --git a/code/modules/mob/new_player/sprite_accessories.dm b/code/modules/mob/new_player/sprite_accessories.dm index 24959d7e151..45fe53c3d82 100644 --- a/code/modules/mob/new_player/sprite_accessories.dm +++ b/code/modules/mob/new_player/sprite_accessories.dm @@ -17,16 +17,29 @@ conversion in savefile.dm */ +/proc/init_sprite_accessory_subtypes(var/prototype, var/list/L, var/list/male, var/list/female) + if(!istype(L)) L = list() + if(!istype(male)) male = list() + if(!istype(female)) female = list() + + for(var/path in subtypesof(prototype)) + var/datum/sprite_accessory/D = new path() + + L[D.name] = D + + switch(D.gender) + if(MALE) male += D.name + if(FEMALE) female += D.name + else + male += D.name + female += D.name + return L + /datum/sprite_accessory - - var/icon // the icon file the accessory is located in - var/icon_state // the icon_state of the accessory - var/preview_state // a custom preview state for whatever reason - - var/name // the preview name of the accessory - - // Determines if the accessory will be skipped or included in random hair generations - var/gender = NEUTER + var/icon //the icon file the accessory is located in + var/icon_state //the icon_state of the accessory + var/name //the preview name of the accessory + var/gender = NEUTER //Determines if the accessory will be skipped or included in random hair generations // Restrict some styles to specific species var/list/species_allowed = list("Human") @@ -935,3 +948,316 @@ icon_state = "default" icon = 'icons/mob/human_races/r_skrell.dmi' species_allowed = list("Skrell") + +/////////////////////////// +// Underwear Definitions // +/////////////////////////// +/datum/sprite_accessory/underwear + icon = 'icons/mob/underwear.dmi' + + species_allowed = list("Human","Unathi","Vox","Diona","Kidan","Grey","Plasmaman","Skellington") + + nude + name = "Nude" + icon_state = null + gender = NEUTER + + male_white + name = "Mens White" + icon_state = "male_white" + gender = MALE + + male_grey + name = "Mens Grey" + icon_state = "male_grey" + gender = MALE + + male_green + name = "Mens Green" + icon_state = "male_green" + gender = MALE + + male_blue + name = "Mens Blue" + icon_state = "male_blue" + gender = MALE + + male_black + name = "Mens Black" + icon_state = "male_black" + gender = MALE + + male_mankini + name = "Mankini" + icon_state = "male_mankini" + gender = MALE + + female_red + name = "Ladies Red" + icon_state = "female_red" + gender = FEMALE + + female_white + name = "Ladies White" + icon_state = "female_white" + gender = FEMALE + + female_yellow + name = "Ladies Yellow" + icon_state = "female_yellow" + gender = FEMALE + + female_blue + name = "Ladies Blue" + icon_state = "female_blue" + gender = FEMALE + + female_black + name = "Ladies Black" + icon_state = "female_black" + gender = FEMALE + + female_kinky + name = "Ladies Kinky" + icon_state = "female_kinky" + gender = FEMALE + +//////////////////////////// +// Undershirt Definitions // +//////////////////////////// +/datum/sprite_accessory/undershirt + icon = 'icons/mob/underwear.dmi' + + species_allowed = list("Human","Unathi","Vox","Diona","Kidan","Grey","Plasmaman","Skellington") + +/datum/sprite_accessory/undershirt/nude + name = "Nude" + icon_state = null + gender = NEUTER + +//plain color shirts +/datum/sprite_accessory/undershirt/shirt_white + name = "White Shirt" + icon_state = "shirt_white" + gender = NEUTER + +/datum/sprite_accessory/undershirt/shirt_black + name = "Black Shirt" + icon_state = "shirt_black" + gender = NEUTER + +/datum/sprite_accessory/undershirt/shirt_grey + name = "Grey Shirt" + icon_state = "shirt_grey" + gender = NEUTER + +/datum/sprite_accessory/undershirt/shirt_red + name = "Red Shirt" + icon_state = "shirt_red" + gender = NEUTER + +/datum/sprite_accessory/undershirt/shirt_blue + name = "Blue Shirt" + icon_state = "shirt_blue" + gender = NEUTER + +/datum/sprite_accessory/undershirt/shirt_yellow + name = "Yellow Shirt" + icon_state = "shirt_yellow" + gender = NEUTER + +/datum/sprite_accessory/undershirt/shirt_green + name = "Green Shirt" + icon_state = "shirt_green" + gender = NEUTER + +/datum/sprite_accessory/undershirt/shirt_darkblue + name = "Dark Blue Shirt" + icon_state = "shirt_darkblue" + gender = NEUTER + +/datum/sprite_accessory/undershirt/shirt_darkred + name = "Dark Red Shirt" + icon_state = "shirt_darkred" + gender = NEUTER + +/datum/sprite_accessory/undershirt/shirt_darkgreen + name = "Dark Green Shirt" + icon_state = "shirt_darkgreen" + gender = NEUTER +//end plain color shirts + +/datum/sprite_accessory/undershirt/shirt_heart + name = "Heart Shirt" + icon_state = "shirt_heart" + gender = NEUTER + +/datum/sprite_accessory/undershirt/shirt_corgi + name = "Corgi Shirt" + icon_state = "shirt_corgi" + gender = NEUTER + +/datum/sprite_accessory/undershirt/shirt_jack + name = "Union Jack Shirt" + icon_state = "shirt_jack" + gender = NEUTER + +/datum/sprite_accessory/undershirt/love_nt + name = "I Love NT Shirt" + icon_state = "shirt_lovent" + gender = NEUTER + +/datum/sprite_accessory/undershirt/peace + name = "Peace Shirt" + icon_state = "shirt_peace" + gender = NEUTER + +/datum/sprite_accessory/undershirt/mondmondjaja + name = "Band Shirt" + icon_state = "shirt_band" + gender = NEUTER + +/datum/sprite_accessory/undershirt/pacman + name = "Pogoman Shirt" + icon_state = "shirt_pogoman" + gender = NEUTER + +/datum/sprite_accessory/undershirt/shirt_ss13 + name = "SS13 Shirt" + icon_state = "shirt_ss13" + gender = NEUTER + +/datum/sprite_accessory/undershirt/shirt_question + name = "Question Mark Shirt" + icon_state = "shirt_question" + gender = NEUTER + +/datum/sprite_accessory/undershirt/shirt_skull + name = "Skull Shirt" + icon_state = "shirt_skull" + gender = NEUTER + +/datum/sprite_accessory/undershirt/shirt_commie + name = "Communist Shirt" + icon_state = "shirt_commie" + gender = NEUTER + +/datum/sprite_accessory/undershirt/shirt_nano + name = "Nanotrasen Shirt" + icon_state = "shirt_nano" + gender = NEUTER + +/datum/sprite_accessory/undershirt/shirt_meat + name = "Meat Shirt" + icon_state = "shirt_meat" + gender = NEUTER + +/datum/sprite_accessory/undershirt/shirt_tiedie + name = "Tiedie Shirt" + icon_state = "shirt_tiedie" + gender = NEUTER + +/datum/sprite_accessory/undershirt/blue_striped + name = "Striped Blue Shirt" + icon_state = "shirt_bluestripe" + gender = NEUTER + +/datum/sprite_accessory/undershirt/brightblue_striped + name = "Striped Bright Blue Shirt" + icon_state = "shirt_brightbluestripe" + gender = NEUTER + + +//short sleeved +/datum/sprite_accessory/undershirt/short_white + name = "White Short-sleeved Shirt" + icon_state = "short_white" + gender = NEUTER + +/datum/sprite_accessory/undershirt/short_purple + name = "Purple Short-sleeved Shirt" + icon_state = "short_purple" + gender = NEUTER + +/datum/sprite_accessory/undershirt/short_blue + name = "Blue Short-sleeved Shirt" + icon_state = "short_blue" + gender = NEUTER + +/datum/sprite_accessory/undershirt/short_green + name = "Green Short-sleeved Shirt" + icon_state = "short_green" + gender = NEUTER + +/datum/sprite_accessory/undershirt/short_black + name = "Black Short-sleeved Shirt" + icon_state = "short_black" + gender = NEUTER +//end short sleeved + +//polo shirts +/datum/sprite_accessory/undershirt/polo_blue + name = "Blue Polo Shirt" + icon_state = "polo_blue" + gender = NEUTER + +/datum/sprite_accessory/undershirt/polo_red + name = "Red Polo Shirt" + icon_state = "polo_red" + gender = NEUTER + +/datum/sprite_accessory/undershirt/polo_greyelllow + name = "Grey-Yellow Polo Shirt" + icon_state = "polo_greyellow" + gender = NEUTER +//end polo shirts + +//sport shirts +/datum/sprite_accessory/undershirt/sport_green + name = "Green Sports Shirt" + icon_state = "sport_green" + gender = NEUTER + +/datum/sprite_accessory/undershirt/sport_red + name = "Red Sports Shirt" + icon_state = "sport_red" + gender = NEUTER + +/datum/sprite_accessory/undershirt/sport_blue + name = "Blue Sports Shirt" + icon_state = "sport_blue" + gender = NEUTER +//end sport shirts + +/datum/sprite_accessory/undershirt/jersey_red + name = "Red Jersey" + icon_state = "jersey_red" + gender = NEUTER + +/datum/sprite_accessory/undershirt/jersey_blue + name = "Blue Jersey" + icon_state = "jersey_blue" + gender = NEUTER + + +//tanktops +/datum/sprite_accessory/undershirt/tank_white + name = "White Tank-Top" + icon_state = "tank_white" + gender = NEUTER + +/datum/sprite_accessory/undershirt/tank_black + name = "Black Tank-Top" + icon_state = "tank_black" + gender = NEUTER + +/datum/sprite_accessory/undershirt/tank_grey + name = "Grey Tank-Top" + icon_state = "tank_grey" + gender = NEUTER + +/datum/sprite_accessory/undershirt/tank_fire + name = "Fire Tank-Top" + icon_state = "tank_fire" + gender = NEUTER +//end tanktops \ No newline at end of file diff --git a/icons/mob/human.dmi b/icons/mob/human.dmi index a7bbaf50f7cfe689f275282b12115e4fb2ee3f2f..e7aefc86107bf43010e34d725a4be3091365f80a 100644 GIT binary patch literal 46361 zcmdSAWmp_tw=LR8kN`o01cJK<4cfQ_5;VAbfFL2bG#=cY1lQn@;2xY{!QFy;pwXuL z6z}_f`}w}T&pFS%|L*-kRj*Z5tEyJbImVo0F2Ysc$m2YI_80^L;V3G|sDnUAoezH) zXh07?L!%4O(D%~R`6y%QV*cTs)5mv?4j_=n=jiF0H$S-X(AI?f9+w&7=M@rY5KldJ zwK1k?o=KhSxujWCEmRp>dmMp!p`9Xgd$DtDCgO76>N$T5^=f!a^|>~&M8B;WqB=5| zZsuA>mHM^j5KVtynp0D!!An3R+L`4*i%WBo>9N5{M`xD?g(KSw4U%RUjy9r`(qAk& zC=E02QY;okUjF+-9saOIj-0wYrZeS7`QauB$4Y{9(|vYXl&6^8G~tn|$#2cxdQs-k zzDR90Dv$`EW>2Vg^;;^Fu)-&ZF77kf5)|lx15?1vV zzfqrh4sJV@gTsl+@*h? z!~K#}!IX!?8BLgXnByL2%MiTao-uRqK7i(3v4mm?IqrMKSHIL%$_n0?4)u2RFp?yq zDwubsm^0N_4%a&D+)FPo$=6ya{h7a0m^jxR9-gWB*sgyUe|dG-mfaRRH8X=2NR1IV zz>n=k;t%|wzVOG6d+1R7bHOQ5uRgiVT-PD;HKV{_W;P!?y`akd{-B~to{UG)IQG`q z>w>(NelX4wQ$EEfb|br}UB<<~R0Ft%WY%7jvPHxV;~r!Y*j|%|_UP$!a}v$vy|-5j z-r>>s>+B7cGZI}yWQ>nAr(P|koC{K*IIdjGao1VlhVrR;1Q;ivNWp#!MZ$Tc4^x|7 z6dL*UATQ?W+gZ%%*!xoy|94#@QbVf1oid4+C|t{P@}BiYJTtu|f<$yYi$8mKun%X` zf-KwCd?Y#7`^#&s#Te0Jia5@UO@pg&2F4;;l+>1Od_fyAkeRlviHQ$5NxSH3exOT!r(@lYZFIw z(Kf>&b311tqqcqhC32)0P@C6ug9!(xc1#@&9zJ%~E$G-tus#EV44SirV=lEh09_Jc zenowdvKyxEjgDy;;qpe+&ebY4k|$cHm4FF=>*q<-Wu9{rep_Hu^^;~OzkE!yT|6^3bv?!k9x{Yz-KZ^ZtOD=Z zB;rQR_lpX8j~jh~rHH&&Vw>PYA|5z+PV-xo4f|0Y^^UITA0Ld>kl0{fI9K5bn9Sty z)JMS~djbKzUsbSbOcQ(;3BYPTtT0u|8^u4DJbCo{>3sZE_(8}nlawYdY1nZ{WatJ} zD1RV!+a}lk#wP}U?n!fSXdVxZ;>!nf^X%Kgm=_O+&1=*ACdWk7`x0!Er5*^Qf38@C z=%K~a*UTI5gGyR{w^pL2x6d90PFMsC3QONSSXSprK%tYs6`PtB$ewvX&!AH2neecT zx#ikDLsT?m9E{fCj=@-lBd5{+K~#Hl)uD{A`HB6OYGk=JZ0`>8&Id6FN~AX0Kew>C zr%^5dyB(wa9)r=l`^s%);tr+y-eNiLh{*V25)_)Etjq0fHW*2beP!b3K?ljwtQP4wWdDxL?owx;O%_vJ{xIxb=Kg*LcuRpw3{@DB{Kp z>A#csL+ggbNk^1Ok@sl-7WcLvk5r@z#`+N{JOJcyJIa6 z0~VPHK~K#4eu4J={u;6m83!ak)nb&;rj54aH$^YZ!v$gVw$GC&Z_D9}?_Cpi<{Ug? zjzR%cPxWLY1R1!OWp4v}C2621j6?I`1 zAuE*6J|tcbBoR5(iNe|UFtsu%W?@T7O;bjg)Jxpi?og1xi)QKk%?P*BHUhXQ z`~a8ir-cr7dGFTgV~tq3-&Y;h(}@HtKB}DkJvZ%hhjSiig^%{f{6vAt-u1rXe-${9 zp*eG1EvK$=Kd-Gaj_WbnWiu+@>Ee(FKP=;)w*JXdlXJ2>n?xfHMPCNscj9y+i7`i` z@XrYPR^Iw<$T&Q)!sJJi?@4=+L5OX*FnpUVnOjdO&+pG4CDSZ?hd8dS>#K4v^@wP& zUEHgquY`FGacci_BmyC1WcnDe%G?!IXYdL52Y?Ws zV~NmELa1muQt|mc;3CNNrj>U>iF+ioV_~Uqb^ZqJycb-3XCU%)9QX~Vx~4K z3&Jh@6Fcjd)gWjcJMH6BHD zg-QmtJy&}-ULND|L=p;o1T&lmWaM>zf6tpjwW@V8M2^X%#$Sl19>+_fdW-Nycj!UBo^+(#o`sP>_{;mhTC#5^=@4An7L!9> z1*QkeP|*UeO*CsC++yAzoD1Rrd(`Zx<5oTL7Fkn!j{9LemP6^ad%n+naYqh?xfned zw@cAvkqT*@tIHCU%H`X7e#3boQ-RK>HN}jUw#%=#M;u8`P&eX34#D$}&1G>~)8??WQ(2}_ zDfW?ykjRb9q={NTWlrft4x4h5CgbW>H=v*eIY(%}LvLZVv;-^=YaSC^k9{2TTx}4Y z_GF-IW8^}nZ`FcTbz>|=R2A0S)6r-}=VX>`*7_6HdMv)yBi_TQzn06D?a6R_Wh{RF z*!^C|EIJITg(OabRBkPzOQs%z?er`R_DiLZOBgG996kR#{jqaI2Q_hJ$oGclFKbk8 zYA)+hux1~}j~Rau`5jHkm^j_#d7m(fJ;&D>ul@7BV;IkuF>x{z z0fIX8wcvha{P_17;S0@DXR~h?^=k+~NuENNIz+#g$m1Mq%{(lKZW!4LnglT>-d@4U zvQ{_&I$JwDZLE&Q8+{V{W4Xp$3N}ghh#H0dS0CWkt1VTMSuB36x>@O;+TD#Ox7z(> zNFyK)-Sy(;m|PEVTh*aCS+}pa2aJ(G%KN4F%EDh}0hr7tc2SiSAqL`Sx0CS(5glH- zQnVhUA^R0ooai7+Lew^K6!uGdUR2k4^?--KoK_YHdQ3H5eeguZy+2mjE2eV93^r0O zX1DNHOc>I#NzL=41z0U^^pVUfWKe+%5=~1d_eCY74N53^rgGvr4|tY+HcFAJzhd0s z^W1qCTj6iZNsR!W)Em_xgVs*K$iK(3PAMP={OX;sIU=E#r<{0A_^hm7)g~vHhk4IW z-R9k!_KhYHuXTk^}$p zlZgDvLRo6{tV?+R&G*i2T|dw=p`FrlTp!U#?&$O7-uHB^Yb;WlEX@?F8pVWIkWe*>4oER#4HIH@dC&?5RTFxvwk$NX$OKSn2-rLuCRmu z4A40_%;iM-^}yOIgfBSa8A&srGI{ZCXB^83LCz|;e`erGxUD-&%JKuBxO+ASzvrXkAV?5+{wn>3H=aJx`wd}eX?whzrqPH+&`gCs z(@)f4NY}Yp0`v~Q6?xJTb;E%=bJ`B%HF~fMxJH0$wETrNv63s<#bU!gF@!oC?`+4rm*45E8hEls& zQ!S#h*&`k-cbmMtCTov+2!Vj5B&lHLBuUw-y>0r-@tKv7iQagtAQj` zX$x`|jvx~k`|>ku#*!?^<~&CKKCjGP*&bj~VXcsOvGJqD2BjL8nmpB!GX~{AeA8gU zXA58XTN#SSjX5;I#A;$D)UXx1W^zmR#&ic+Sqm{mt{{`rD~+=+CqADd@pm5pWjN4M zx-;*SNjj32wswA5nbOTj9X4hyc$4O%B5FK&*xZ^vR&C+uRMyfNh`Myn*zC;EAftyU z;2Rm%=8SfJpjG>EopW>Ptm*0L?poF9?f!3`sWgwyQBXOH8QXriHJ0oMo5bvq0ydYjHuA@Ua6B)} z)6178X;uuf0iXfK#N$DIg@-C>Bdsph>7mFFPN42lt`<3+{qv(|W&C2hZ%Ypk80>OL z+J64!M0qY=R)*0Acv*FH@2lgt3Cbd*U1c}P}Wd> z1k!JGF{OmB*}w;VZ=hVGy*c+CYp0A+9J1W(3P7OiP}GQ~LIEVlHjk{90ogH#Yk#DA z`Xu?vFGu1dR}w?7(@K=c-c2iCog5}DCooijo4%nI|K-nu3r_jU#GkU=NoYEkr$5v% zIR%$L5`HEZ$Z2h*aBSw1_w*D3T5Cm_4#-X~6s5~XYFe6`)n}}A(_2-UJ_D~UaUXy( zwCTOD5bSfR`@Gs~{r$Cq>2vB?bvz;I`l}DMZLp@!0<-}FJspCf@o_v*4!jeIugWO; z6ZjS**1@2Hv~zrXJa|^Q*eP)j-29>(@)2rlfRf`0wH<*HcGbSl_S$FJN-N3yQ){Y2 z98{d;^|*@5h~11zT@OtXuZN*G$vfaHxohS~=yuq8HQIH}b95(QgjQ~n>Um-nkCBhz z)7GN(boR|7Wk2q?XQ*EK&o|)!wV6p5&d|6=t=Pcei=7om0Rdw=af2#}M<%T&*uw#^q5XXAqpNS!m!XIeKypj5U(@eO~vI&Mi2vHytJttl% zy89s@%_4&_=_7$2lsU)yRuzL-n65Sr_l6W8OPL21<6RGzEkRwLM}Q@5lz!>wKExIm z>ock3STU@b@4c6Ohn(%4oBmu$juAM#Xs%f+Idp9?;nOv#9aW7%_oYOIQR+Olc9}-+ z&X%4G%rxcT{4~3a4k#`FreR#VVc7XRa1D?q0O?dR&p%qC9-1pG2>#-_O`2QxJ$J^R zaF zvlPmE-L_6@T&Soa+f1f>B%L;#czIQP+>~p5W&{rr0yq#XH>O2-67*p^e+uKS7b%$!di zASaEd6eOC+_)XN|sJZ^Yc55`Zo^rlSYe1?yNB=Y$j60B9(%%X-f5Fj6CegSKy>RQ& zQTt&ysiTIX;+Xntu8t?n#Al7ZFQ$VCn)bpCR#?(6I`HlKD$ADSYig+_^)G966pJ=6 zaBj&T3l7>!zo53~r@$bsYc6X2BUs|aKZDL@u9{Z@CIke1Bp%1UBzy0&?%MXl5R4C~ zX`~TD!Mo_*A|}kNlNIQy)z?~pXf!07+G36#xME7g-k#jzR@A$yWuwL^2c%-AXVzXo ziZl0^V~HQrkA513DBUEkBFrAo{CluK-y@eKFoU$w(xz9A^?hXCvKEskp#A_N5Gk9j z3CkCf<9NB4vn-SYKud*DwG|p1)?5STbqcviITbLo`A7k1pFq%s|7?#W??HlnAqH4( zs9e9N5&=c7C7uj`)s&qECGIbX z7y8l&Cc6oq|C;7p+NQ2sJdg;4-|6XD-y02dU=PNRf8r<{#%%r|p0a(?`wcjjZ61Fq zQo@;~fY;BFSAeEs{BN3y0sVdfNjxU0EeC$MV0g~;r-PNh1eBj1p8bf2K@LT2;DRA;hjy(mA?vfV`$YW4@3=z3+(BN~yz1LoH+b3eYAbEEJ`HWMC;U zfqQD08tCw^coW76f>rtW!mhCbH@Gy8swFhhZg4;~iz_Hfa}%N5H?Ab#_F6E2&0o`^&MfRzyDGR|K`BE^CK%*_7( z*i`4~e2|enpUPm_Hj{4w-_#S3$bHPa)LsvH0b9?lPF^072I8IH;k%>{peaa9k*xjX z`#?JU2ACz)!~~?#EbW0ZiVV~8k^n%(1RO_swi+1AQpJ%Z5aq;dO6Tia{3cpqIiMny z>-7Nr@u@?J=x<_?En6eRpT|@+(cC9|h+NI#yO%}R^kz2M=vg@uI+&Y^5-3t05~!IF}UMF5R!tS8k5oIX9-~OL4TMUGDyV2LZ#+Pk0!tl)<6%>qqh=HpCQ4=NN z0n4>W$WtwF;|6dZCR&VBwbB(KbqSfO6csRRCvYTMl_Ys3gd7Qxf19WY$Xpt*-cB!n zy-Sb5zYI3&(^fo39=M2%vlaAB!iWmc&DiPmKHjax>ft z%>%I5Cg5|rhLs=ybAHIWh|B}2IWhlydpS6iOHB4?TJN*%tA~jLm^?p57nt|s zxd1?|S5%V^^H` zyO4;CL2g``nZ0|94g&1>LsP>)wKe8!u>a3k>RSAazh^n2Tu=g_uoYSA4@9?z_%d#Z z(`dV{SGj;9{*lb9xd@RdB!ZguZWliic$!k6m+>bG0cyOM#djpV$l({oJ$ddg!YC{O zEJ_Ckq`e!k{cGH?kMV!mHHsvjMrWH?mDFUKTY*dv)2Jat~08@axLRJ*VpQg`;$RB^fO60H$5pt3wY!>c0cKf9?MX z@c7Ub@MLCk-&~Bd-SKGrEl(}hzeiE21pjL-K$!_dkdN=8$eZ$E-e}8Abi=VHGS{sG z#q|So<;l!eJ9Z11fosarz>xMo*KJoTN{guPFp{Xl%4zD)9#MZJlL53F15HB`*Yc9) zHzj`MH%Nb1$nj3xJ_4n8ZmlVdiCBIx2pGUmGnV`519A^Mp4x6$Kf25Ji{$PC3}@bJ z%T~d2Vv*~WC$UbILB%3RHxL^vx$m!r>@5RZ*Lf7dteY3V_$42Fr#7@pgQ|1+pik>u z1q9L`0SC0qMt5nL&7h*uNIr>DxyF=QBGRdDpxb{#4f>Aot{?XNjS&Wb*-o*=#)qS^0ozZ@*gcc1ENgi<)RXdoXoTcSJ)qth8$QlBslw82&1c=h4K@aC)IignK9H+9`+F9PEY9WC*JGK~g zFSIn9o8x3JviQYyAQWBK4%xJBf?VwtqYWuQod$AF* zz%k@4NR<4*nbo<~4`cz%jl|0*S5>y1>HMpqz=q}q(fghwcig4Be3C|(;0X5R74{mDuu6n+rf!2j_d+E__Ml?%j4-rE65QB1W5aCS7 znM?%(4_xLrKH}zu`irh|?#>e$(f$|WP6X!t#_BP#xSuuQlp=6~KJ+);YjMsh`k6&I z;|jlh4zVaHgbCrFC?dQlfC&1-Vx0BrQfNPd>35ai+SnB{7*WeX1ReB3D!qg7@aniATmjO-VEp!D2D?$^lGPD z^BLzSKxqZi1Jg6$`?1i0_CMeS0}2@=JO$j-ot0|O#m$C|hk?uX5Xq0#ET2*=;s6;Z zd*OMvc0s)PLtJzvOp1_qWQlIGz&K$zcD?EX>dza`z)JWalmE&*bWeI-?qTug0BM1l z7jQT1=otBAMbw&ezna)4b#D2a#9r`aBV|}QN-p&EZ&CIdOIAYVOHbR{J`mD0Dr`gF z^dZ`*P8yYl=W$^uB8R<3;M|CUx^V(a+O9#Ebg>;6gX&T0-V7jSxhb`2qKzuZga=X% zP+}f5h>GtwCZhSGR(&1Whp1~<2UAhHLFH%ikvbIy362+Raf*(>5Hxsp+lXN%^*6>c zY&_6UURKj@DKhuJw^F-B^VMyHkh5I4GtTi(KNA-1-M>uQS$s;leS6&w?uOL9eX*(T zU0BU7Vbuy??6pe$#^&7<5Xh%xMGlbdTxfBOVz0+oYMABD*Gb@5E9Mf4xj?4oSsG^Phg+!eJf-yC3o`f;UC~P9+NiRa>6Kodb5)rz zMs3sne)=;?cr`jtZ2^y3 zC;mqB{?OZMi!68!jhkr`Hv$~*U66q4qId=RkGiYWMNm+GGP?qZgqIsV7Hc9~!z`fV zC2A6K3c7f45>3KWHhRpyjM&E%1INoHF^|%2j)g^cgwdBb zp2cbi1g3Ga=Q1QO8>;)h)`Egme7--=_H&^FmJ#I5pgd!<9rxU%)4ASEUV;X=u}749 zKE8AV#edfZtO|Cnz38k$K1-Vhx{lmOybPzq+;trvDgN0BkVQX4YTx%tHn|c?uH}cM^>gv{5=R+l zQAbVq+o18#zmjA8`H0AoNA0EtKU^^%OFxIq9N>S)wY7%@RAWX&fblBt z1f%Te*EZaonus8Qpl<0eht|RtBUW=!c?){!SIK@wF7KT>)_-O=qR&g&5Ab+BnpHgX z%gnoAftyZ2xr8rkZoQHN1~|+}`X0iXK9Q6mp}IA#kl80eRDb?COiEA9tAKv%X33d8WC!5Vf zvGT{)_WGmT7^x~O+@9&c>p@Qg>V5yAt6A`s+J~eJd1?rB+TC_2y8AE!(S2|yk67`- zdWaa)Q^Epz(uZ^)Ki$4<_2Ue()$(8ILEt#@KauOd@&iThC#qr-X``WqlMHTo8Xw7c zB#fI-oTR0tV-=3V;K{7_SI{Y7Wh7Y+B>B}{(nFs?GMr2d3T2i?+dWu@kE-ouPisJg zEfwsZa9>uo>>YLqJl|M`YFhw9b@05o$KvgJzgTZbCU2aE)UzMS30!9Uv=|QSXbnDg7;j*y{oUe1gmqfEgGwu-$`C3{$Ni)H5BAZNua=}J81+ffF zwW$E-p2hAOr>`+AL1j~b168k75!wtM;WM{{&k$koB~-5UO0HVqp{v~QM7n%vZ(Rsl zgInMqhvE{D7;Ry1AK?)M8!!ODo=loaUY~IxR}ZR7vd4Bmo@rqCGe~kf9^uco7Y-1@ z^w?L%VVJgq49TcJ?xeZr(c{LcRv1O+AAxegt*8ONbs4^MZD~w4PYOZ)= zsIrV*J-kTq+ri*2dG??7C9bCH?4WMPNHcn#f6kcwyzv^$kg|H%c8_!@mZO)K?3JrG%P5}y&qqqOJ1>SiVbn=URnq8*w_Y^rae)i8wmbC z^#K!;8L@ZDCrPPW0+fb?#W?i{a-Wx`QAsNiDi`<5D$#zUdwOne^Dc1jqR~b%*ll+i zUNpHmRK$R zT-^0nsdBJVl9xDBZ5@1@;0hxX`xCC{YYi@^XC;fP4?UNHf1ShIPLigH%bkqfuWVQp zH&Si+WY7nc=xLO3t7!SsYM&>>K9s{nfd{T3&h`4ffQN$DHC;;J$HFT8W|ik%=Bv=c znPDOi7saE$rSrjrB&4EWUuL}1kxwedJ-&GJsFRH9lY6G_&7(3o8 zPZV7r*mmYg8~J-*^ZUl^t{(+v+`h#Z!GZJ-Sb~rQ=s`^TVX}+ zJi&e|uU5ey#Oc3(5a_ATAMk#eRsK+U^>*hK3#Qz~_MCF;mDL<=qK}T0605gw(RqgA zsH>c7Wm1BPjKga*1LdjpHnREwdaAZX~0X+T@JLIqK)~YLtO^Z|R`;W@X!}k)CFNlm7rvTTGI}z#|Tr+*Z ziM=#Zu1z}|o0nz7S~h1UoLtSrWmgWn>FQ{0`^JvGZ6|W^ES3Z7*9TsL5y~vmPx_4~ zThx^8$btvZveUv!^r>IxRUO?+y8f?*V+r-E-PPk#3dm@IW#7Z*?al}JYod#g3=?{|c0@CskDXoF`1de-$QaRn_VDv{jd2p&!1(L2r>^qX zGc#JbcKA>S$oxXfKbN@tn)vd8M%26(O6gTDJ6O-*?qR#%_DHj6y1%fb;$bO!HfDyG z?SUb}>)`xX5+Ew@3E=~5B56Sg6y^WDT$6A?VZvTR7?an~I}hM8cJk$;_yzoX+GKcG z)~#0(fU#I_7xHPp)7@IK-uwLn|7=IGl=>e4bbp`q3i0jXJW0pHmgdh?DV zKnW``OSF!V8sH={+xxJ3Zo;Md_xfrSzNTn+Wn9ewL>rU-iwuSyz~5iTcfxW2bT8z* zZ=8nd0E}%!aX;y`7s&}MdyzCwZME5ZymfX)_vx2FSJEd5!sQq#&0D+jo6>LA^#39N zKefPAr&$u+Q0#FoWmQB7rcvH^cyJ#$&p743D1+%6m{#LtlOK+M?+J{~4vb#2jSh-T zsSMl4FOt#%s@c5YPz*xlsq3pAwzv%)lnswVF z8`C=Z94ca{&LdIbD5qe93C&QV2ek z`_eVThbx$)wr%&8bV)$WeeTEQN=pImI;_~M^%xA1Y(BqbtrS^dW4k+$tr1gZtVvw8)2rFq1U(smd3r+&9RT+G7|jk z%k1%t=5Lz7w2&Y!;=Hwwag4a#u?n{LaDME2%oz7?w4+bn^T06R5hY{87=xe4hK=Lw zD4pSi;w)}t!MBjo&l+`<)F+BIDInf?dcH9k(wSYR+%bN9Mva|y)SqBtMqPvffvHY@ z_FrtG{N)oNH{#`9=+9O`GplGng4=VC-ToB1$+i0x5>CG1{#XjBMYxy_aFemm=AVYA zgVKT8EYNB=S`FHif5O6;&Yr;$1iDUNvzX7u9Lg!hEHV=ojix57Rej*_|Jf(aI_NIC zkfW*msTkiviufy~W%axP4_?-JnPDBJgvXKbQ3mv--*2Gi?l$6O`6f;bOvd9!Cd0bj zKmH4Ka?g1p0pm!a7e=a=@h=A3v&gdhhqF+@29;Tuy4hzj3`%|ECPi_FJuZxIR0$_P zZDcR1!gx_y+6dgd8HhOy1M2U+s~=oIN7&*U(pPUtsUPV3?xViNKkQ`hlf|LP#R1J% zsaCM!X{@M*EnS`kR^RJR^To#_6htTvNQr1Y9K>Ma!zOk4C(MO}GD(HuV#S1S0oZtrA?mXni^0tD3bz zn%o2^(@0TVTH4Jr>>T(OJ+)HPkbZG4GQQV=>ort1!i+^*emQ%jkGTkKZEQ#egBu<<=5e4xb@ zky>7{%Y1aNy#wEWG3IQGn#C)!4=>@(E77!sLu((PCN=|{UtX>!hK3#{RNo<4Jb-;~^hmGjWG-XB-XH zxL6w=R-UqC$NrVx$Y?#-^v}=cvBCl_F=9t8-TzeP6lX|HSoL$Af2nw}@loD3z4@Pw z?BcESu%FZwBHa!3^|tM+D?}N*+hf__EdkL(q1I!J?7((a!p~rcxSqa#q|7pY`}gl} zclBiIJFFi=$F^clS$47byA)u<|Jy@jlj;yw+Ouq?{g_jLy}M^=Yo8kz-F?>i1+0uW zKN_*f@Nz^-dIxo8`I}^|1BOAI{&nPn4Mw3T;TZ?TVu3ZlABXLx_ za9_HtJ-r>H_Z1t8Q@s7_UVriKLU-SrOZP>aNuKzH^dj&Vo&tV!(hJwY{g6)p8WPwB zQeDBcDh=zz_jLed>{fQlYmWj8yKnw!vJ2UD^f@E;ytJ+RT3j9c{D;H^%B-|A9<~D$r?tHoa=&jEfD* z#dCrSt>0EJFPgElNRFT2QXSqo>scyzV(`tt{7?5`GVc4+8L{4eY+QhcacbilR8m^n zeO}-{V7hqhxi?#>i>vsU9MVWZWp-AqwVu!0v0gdW?$h3d2kI0g?LM5|#?&roh3ZZw zqGQa)zK4NwEOfKtchuE3i9Me z)pf-mZ?aGGCY!rEF%T#>@GlweA}@mMMm)0Vp!K0kx@6;A8-I$$3>U&fJbb^sKcU2) zgD3~lH#gj^9pX=x4tZJ{rb^}$Qx0(w-n3r{P6PC!_&?qj%K))8NOiyvp%!x z280M()r)L2n4}=gn9z<@Ht=VBXy$X0LaH#)Cp{FiDCg`!>bR|5$op)FWU5hr&lK_5 zm@YLkHgQq1r--LiSq0ZS3b1H7x&rt5Bh0yz6?)_PvpSN;vyME#^W*mQ1@A7tQd&Rv zaz>o2IxkJMuBvrh#r+VlBQ7s2l)69yp^QyEO-jy%&pN(*eCVcdBG!PuGb(9xW;H|} zP(UG@-=rt(K2wM-MhX59cGSaR0lRykj`w$0IqxBJr}HOsEy(9R4%t|WQkrD&-QQsJ zrp@})!gI%Ke2V0CabkZ*Zq%z9P+&gKXvg}FIC}2P7)lbA+O2JYE}DY#vs`DAj1Kz&_$dJH*-d?Zqm0FEn%-MFLfW@+n2u zf@IWlz_Bd>KIh$;b3QJ|;?#~EXIIV~Vc=Z`?EfhpK{_gm#68+mhJ+1k2OP@`IQmAyy1@u=o3f}OU4od=Ii4RQn~i?0tz z5DQ%hPw93j*h(qkqLO`BTj`Tlbl4jy7QJg|iiq9<1-Q*KozOa)I2%>tOhW0t3V!He zDqS&oa`nTkrc>`Ql-5f^ z0)~Z$UwxZh!;VWLj6!;Xb){g%K0Lg4%}Yl>1`!LDNEWJRYhOy(xh320aBq;__q=>( zz6H*&XM%yVS?S?XlZ)X*w;CAD`HkK7#o2GuDyCfe>?~Yfv-T=8-FUtU<~j zv_eHFDE+2JNDv5LcSf6&DA#@pxmjZTxsI1McpV3A2mFF`WIACN>VI|-*v>f*#JcRm zjXuY#E-kn0`tP;+%7gNGEP^K;qC!ju@%;VXXm2X7Ql%f%5E&(r#!~P;eYJEky=9`k z3ZT=^I_&0)P95Cfr5G4GXL0;PT+hO3jO$D|rJi^Y0izY{5fShF#LRGcI2sP)HIW}ozgJb$P zDfhG3!s$bou9kU5P1yN5TkS4iuj$rNX@ikEjHgTH-L*vHi^JO=+zXU8lcI1JtxV@j ze_R&=3sYoOVC5O6l{5_L1>;LyM)s=fSz-YCrP>zmihSY2X@SP8<8C^AK$c@zs|Zj(2RPnE5Q3<91UcyE1ov}MEr`tWUA2)<9bFI&=WWfkW;g~4x(_q52}&FSlMc73@i(L! zgWNw)fovoBHCqBukX8kA0o7HxDIN^|)=gvmxw-IRfrhCQzmW;p&9fb@6StS^Zqk=t zNcl(&aEoj@FqmotK$Lk{uicjhFajN&m2%u(5n2DE(N&~2#aN~8Z=dy1@-HB#170o> z>fz2^<|sKjH=p*tn~PP0qou}%wo8mOrLf1&sS7-QU zY#89+G+pNPrILE938sIo1;D239>lA`sY&UX+0sp(Ijxac+5}|y6il{fMZ+R+kSby$ z`}v3h|0}P4WcE*ngyS z6?GXoZ~<856z9oCrE%-Vb#GthXW&~;A?kmulRtmd*9XeR715&1&_HyvW$c%od5MohIuXDV9Axav^@e5Q(rJsvBW`be8dMX|2*7Bog z5?Ah-2rx-&$;ll-6c>cK4yRMl^`p&IJg+;cS6^_;hPv|cW0s-)VAAd=OV3l>P@*3q z-kl__pOYE1H^#gS^P*HM@{iBX#w$7O4_oh`cBAmT${9@1v3rO1r*0`9c>1ca+p=>I zAsl2i`Z=6L02WOc5`u9FvwjW|^}YA8zRynm^2LFx9EgO@hd*g$EuV$FeFHjeM+7yK zB`44Mp1gju8iGYiMJ|0_F)MU(|NawQ)i)y2d(Y<}K8R@{7srYwdUqeWbOE7*YcWNaZvcw0?F{@JI)O0 zFG#QpfSvKW!#SnnDaXncaGh*4(e74N9KCg)sTT&Hk868@v=nbLi~ZR5g{WP9!=wy% z&V~y3rQ?4`^j9sg8SY}QNm+wZ6dY&O9Y7+N*KfTGpMTzP*A#{gv@W>D_ z71DK=5JFWC#$3=kyK2#h8;AhX!{L!(? zYO!oOul&-1d&NzM_Sw3II%!)Dq&S_hY!seLLv;|q!pIBcGheUzy}*Yzt>H&EUqprt z)%WguCzD^=KcbWOn~GJU6{D0>%tdXm)s;E4`!-`8j=N8f0exDXayyt5J1u`m87<1J zn?f=ZQR-sUGgFA#Y2Y9cAlBRkg`Slnlw-ko0+No#3Ill8F^fhi0_`4=?DnHVMb?CW zJU}2iKX6o$=oF&p$3*MpC^so~x0q;68I zZ#pJC>1#*YViOj>$PztE(RJ28Z1`x`t~OUzpSv9zB;W3-!+Q+0Zal;9d%S;U z0`b6aAUT})^;AtvBHj+y+!bJ)fcAFYr4+v&hZ8=ENfZjLbko)mukSOlvnany$I`U5 z{EsW~qbRUUfTW}LI(@p|$r|(>{B>*Qat2AWU>hbk!7{xHDJYioTX}#&@3C$Ep1kbcl=In>hHKYNfF`5 zhNVU-GH9`}3y=#Oi~I)p8!tlzN2}m9`sprZfGd47x~bwAL7dKi+wL*DIcd?7-y6=) zFIl~B-gHM?T#dqX>(o|%ZDWK;oyNql-ZCR>l>q;Emq*pBoBgzJ`xK^K?WZz+XMCXa z>J^C0rfCz632&6>^;QxKZUCCEA>sCty@0kRV^N8(&^!gja34|4b8>Q9oZIH#2?^p& z1qHEpy_FNJviz*QfJc~EJgL^OjI`Xa9 z#(oFKdQm^{Ps1+wZBO#w0{M`Y&rPqs#bT{!(oddFG1BfPbEHOeY36iGe~wyGBO91G z9PJ_!Fq8q=X%EC|q0=UV(a0=hIZffQPUUagUqrigxceP#Z;6 zrF(cG+`TZ+susO*MW3BHcYe2}D8->iRaC{P7}fzM5SXhyop+RXW zMH*DPy9J~>1nHrM?q=e?{Qlp!zI)fYYu&pRyz|DHnRE8pXYXe}`;H5}FYrJ>bQtB$zo>DLHG$zYr?6X1RV z>p}MEAbq<*B=NrXViz<~8)od1%Mkb6SI^;OxU7&q!nN*rY0%F8aZmO~f351fXi?`aeDmscFBcxiv7DFvRVWa2o+BLNrQNJ9xLWnlKid~G1Sly-afUww+Nh) z^4uOdAqeO!5;f*udy0b#>RY$=V~2HKOSnp9prEy5YY_zYS$y^wdL+lqrq71nigVB% z`?pzMLn)jCs)Z3Jfq1J^aJbXCRYRA-H$j4Cg=Z&FVsDF;o7Py(*0~? zT)}N5yQgJqBbJiP{vL$d1Ad3>^o(!H&#C-#@5JD2tbdPG4g@u!AS>?hGo(po&$7wB z@I8wO(tVY!zXAv_ACH5}vykC6l;S>$9kwKz=FQfT$~9Qx($=a?8WLTurs_NQgfPBhJU>h{WhHKu6EVE(PD zI!W3@t&FI1F}oPPoqs|IpyNSD6U=Y|PFfUCS_Ct4TQYa6P62c3Q_Aw9SwRYAXo0)Z zL7LrqXtQg?bSy4HHNJ9HbFl=Bn3WE-Z|qyP$5HK_USmu`NadKg?hO(UR#JTwCCbjP zFXt5iHRBH9~7D=KSzQc!!@!(~C zN?rG_b-I0~aKbn`VdCw57yRU?8OFRnmLs=oWwWy{6K18=OmpBcZ|u_LXMqbS*?a!6 z9^qi9M7N{Y83Cv1&5I94I=hJ$JXW;OdRr%9uNH&0SHt{wf>-Z3LE|qyvga`|lK|J- zyG;2#^}0jt8EA5U{R>mJ-goo1o7(f5o0tK)+Ib>c--v5?;mvs*L^f8RAUA^oGq^1j zebY!_H&f7tpL)1AsiIm$p89n6HQO-MUv>Cm#dipMK)hWXpm#;yh;P^7CkxO@{k(Z% z7-q>U@%*sdu9_j`8EZ~EAV(x%kD?N=EUTkns?SMF$0Gw%I6iq`yqo=~wmqD!6}HAe z$jx$MdY2ge#m0XJ2r^3!Kh;Ar-m~}b9o7s?Y=7mWlt69-TCwZ)L!Q)5;EOvwKZQ}C z2Iq}F*4H9^qnJi>+Wnk*ge<%d-1yzQ1B2lnZ17yGEq0irxZbO@vcu7B66oD$-@D z4SF_`*jTTe9~%XT>?+60QvYe<6I1B4uBW?AV*V_lyK>sG^XF7{$U56*t>#45Xgih4 zE+d#s=K0kr8q1ifO8|oqa$Na|=w&=4s5xX^2*1?3n_edDcQCx>iO3z-YrQ^hP`IF} zd{;jNCiJu;iHubeu>#Rp&0JV8-rYz*$vRIuacdU@UXds5IDGw~pYW%w`g7n2Ma(j( zfyFzLO#0F8VGx~_MjbbtBsh(frQF` zSgsbht7cP#b7&Sbq$&HsBo7zBJ>by~fA-!Bx{Z=7+s%Qu*d&NSolY2zcKJrd{aUei zjWqM4+#7B#n)QcR-TtmuNuX~C;&S^B2#F9Pt!+1|Dkt5DM#<6hj=zu0R&sAg?fxP2 z|MH>gZTe~SrCxe&KL;zMO|~J8Z67#50oOhmUUv4I+jQgtUL}pcCyP@tfH^h2S#($< z*mQirUBZ)|!8CK2pEuU?@2e_`Fd5UFKdfVZ?7ULXE@!e>>}1=MP|99M8SnQ8?b?7~ zt4&RB;d6I4JN@|`d$7xF?lAka4myW2W?<8ria)EUbZ&BzOCmWF7|UkqaUcrka|ie; zryX2^5j=_3VH4ersBHPSMSemUe-+ zkdWlrMPi%RuCCKU9iBEAAr{Xl^{5UF*gs=Zl_hnq!Yn40&mh0Oohgchh1wYV3Yjis zQITS`+7Z}Iukhat8Pf#FeLR={X#HGn;n`!t>&$MX#ERA;=4)p3a-hyBu6EZMnp~7r zG#C*PiTu>G74wfc5cU6W3596&cAL9DzKyZ*@!h(*q3bnI)@nwrFKt)m&`YVX!_c^5 zu$tV^&WH}plWY=!k6rJ^`pTbn(!xb7q4!s`0`DhQR^sQ(KfbhMD%wZY&zZlL2-2v0o+9@L ze7(NfQJ`*)`mu-x>Us7H1lsTP`uMOmVk!e8MGN7T;Oc_7BWq-MUrXn~gE=fF!TB=s z|04$>(NQ+{_Wy7C0e3Q9i*J#HznI9wcIrWZn>wlIZ3ILyH zzJ#DDGi#-OkuJEk0+PL$Q1S>2d8|O82t_6Yg7x^E$Jj1b4eHin#OZ6s|D>W4EPYa%J#t8u-p`9es z`1k}OS1Ty)ckFrvleoKC&L7dQS|tY4o#6)&-Iw19kB{fWszu1os#4RsVVCR3)y|Ek z0{_l}pkuZu=fC`hFJ46KV1Tf*i}`r?ln|AxZj|$fi7OvnNXD`V`c*(@pCw}4ju;EC zvlm}mHbxD<(#Iy0W#1HayE(C%S$z}n^1FB*vf}a93!cwg!|4TpDkBgGP;bEP?1MZ~ zQ&V?#cV98jt-iqm`E8{dG(GJ;SlW|5-rZHOvH3AU`%uUiaU%FIJ|12_Lki_UBBus( z%{wbXuK8BKrTy ziBJlv7RuI)`|1u`sSaGIc3~kxdaIeh)vaJ}@ zPC)`XE(A|`Bt-VKmqORmQ|M7Vo%}_v_VyG#;q z=3jfaMpWuqFHSn9LYaiAa5{c?BTAu{TycwL&mSh~cd`bzghG7s;iUpx$#~eMR4|<0 zgOGxeYO~X=G}*av9aMWOlkRw}HUl4uuKpPmb?OvMg#Zj{Y+T%L2{FpCV1c&MAJp*6 z*{>t-;YX$WnVcXM6%}FRZ<2jt=4Pi3+`}*&k}(z`xYe(%WYmxpKRlShpMxLJM@L87er)uyfc}70*HJxSFfT^e`sMKC zD=`KPc8srPVhpg7_dKZk^v(~$Kcv;bjtXh+_vc#u=lkFd_?fE=;{$V{ZYw(V?!oK! z#>NT!=Ydy!2VPx^{=xw5L2gSnR)C~L6+i-+N?1Rb`{#qt1bEs?w~*vHls$=i0nnEHue@pLL5!%HDmKktXQLrFI@5hv4{Dc%CVxeb#ZF zecl1H%hh2OIS=MK?FT=#d&<`XelLf3o+(4atmoq|wed;l+F{`*cZW%#-wp1|j_-MD zrzc4byPuBbPPfeCYKDhrIxx;*<1k>ei^$&I=ccVbM1cQO($XRZ%(O_p2vRYMVE)m_BA_LnB^ahQB> zY;12i&ePqEqv=o^tI{HQdv(0E^G#}c>_p$koH^VhchIlz`wyb(WwzyhMv#OtjmwrS zKe-HYp1SIxui@c~o1F-g=C+kh_0|`)nX`YnFyC6gZ()2b2`Yn#U!KOQyD#j@#5??i zd{k4K#anGYvCQ>2qJC?|)>Yk<@fGXdPc_3ImQ@N$eNGRn_HX6Q<{lggWsMvzba6HZVn~`^4`2} ze>2NfRc>6bSZUs#n4Nt@9;ZHdJlokq^uL4{`d-$9Ad{DvYzTMd*4udz3pfGEyC?{9 z+4V^b;E6v*&#d3C>stkP-F7EY9~ao68J648F)n?bp2gGk0>fsi6hQ-i0Y%gxLIIX% zqv%-pWh7J6dKKee%7PQj%RAkH-X9`W>y%bmDJ1v( zd~lLWMWnTG_ILGEBbC$@tGvSu(z7N(ue(OiF5MxFA>@DP8=* zY$**&s`ye{Te~tH3A`u846+_>C!=6Rrv~6Rn@PxS$kq~|c6oerc>_Drvw!QIY0~GE z`yTBKc>}6x*Pdlrz-alPI1TxVJU!i{MVYNzF;QBW;LCIMIQ2U1R6Vs3*<7Q4p04lw z#v|x@p~adeZ-?;-@}4-yVPz7Fw86S#Q=eU{jKQH_RWy*h3$HVtB7zb&rALj-jsn*xa4d|-IGW{i03TAPWeBwSWr+ynD{9RLRzRINb=r_gh zEnbTbbWqwCa$&--*(eec-tWoAYM!)BPFfDoy`HEjVL}XGDheo9c5B$+?=!zgl2$z~ zasS@sD~vL*p1q}^f8+sQsCS%i_WZTU`wtLT&sdg>KaT3rU4%1hzx{XwDGqCFWc1ra z0^r#Ok*l@!qX#KB#$bmBYVI9-czEdO=yW+g@!HWzCqv^^s3?`Yn~v0hJpR;FHOPV7VI7m|Q%^2|1RG+a zc_Pqm0%2nKDpNN6sOY^?x0`@}d1p0;!g2)@$TBF(GnI|cR%J?~cd$gQneW}!$iOYr z*c>9Y7#VHZ)t6se~7!DtwEIxU&sCBaqtDxrC`+kb2_=a?zeR}tCxFB1+u)#uFbfxFQ}8aox={RHMDHMutEn3 zLjuWVY^OX%h{1YB0egp-!g4%vmp+y7h6fWk0s zaH3Ky}^EHq{T7nkfoY z;<|yTKt57+@FT#zufM+|SbT{A5Y0?7eF@TxGCr{u*>Tu_X}(30{#8Q1xWLJbPk866 zQXjJ(CHIN_V4;B^e?dxu%OY3(y_bR4rJOG?^1BVj*gArvabePlppo~Ymepe0Ufw-( zG{Ms+@6C>o=68t{Ny3GkxtG&)9mpUZuK+fT$hz(eI=Ke*GMZq&4xie0kM)O2>7|pLcuSNf#Buu&n z53l1{7MXkOUO}MD!guW@uv0+G9jokF~*wfC}J5w!S44nag0Ylw*SW&)-99_{c zEQZh6Qu1Gx(~mH*n#mX zsUD4Ya1zjWaTxU!BUMF>6q-*W+qjv(eA*)LOZ^qr>xyZ7)mHxB8!N0%?tFJvYfT`gi+ zz$=GtUu0lP4k?ASaf1L6Xf`018^$A@a+s-+sm5$y3hn5z%ieKY% z){DvTM&}rz9NNe2zi|K?XE-zzT(wIFny7dwBb%M{>JaCg_oVi*04Rr$%wX;=f~9rNj)VU>MJnd4LEd$1 z%04-G)F#6M4w9wBkMMjRiVj}OIAIm+Pt5475N|etf87ops6U--GxsQ$zs$^ZL(+h9 zVwJWDJv}_y?p_CT17oEp``HJd$~oJQ7YAb`QN}MNSdsv1LufaNzDsg7Cuc+zL1odt z=S41N*;t@#NUL+^j}EevyH%;R*+UrD4r0z{MxxHGvg$b=@jp9v39WBqOypso)i=V6 zn#JFl;{wUQ_(6WfAhA|d_S{kp_wh@vGR7H&(vl2Y62zK;p2K zJp<4zd!{#Z-#mW5(hYsM_!a2;977V4(m^?7IgsE8fGfC2H5z7#C>F5$=Yh4D{YebF zHq^2BcHbenHBUdo7rO4547Jag;}fsI!oq?-C14pmPv+LnH)(V+NASwKAj-K2KF2ES zM3uN5B%Vvp<~?rA;p|UflE(HfDp^q~AR43m&r2NXp1Iqkr;Exl9R7;yxa;pcXP27S z%u$nre|wYUVPL9ocBj>O@nw^o+$m zPs7q=_?}6sctgcxF~AD`Jv5}jDn|Lqgv6n&qvI=LIwxaB1W`x*8~zKxU5uPL)9Pxx zb&na7a{3HXv=_+DEbZ^#C@!hS{v)gi2vpQp9x`)J@`{oVDG5?IbLV>J(r19@zOW-2 zh01c}!-Pv{+%XwGSXxtS2PFKK(cP2LF&N%WUbY5{C7s91$b zA97NE199n_%*7SnpIXEi^n7d2OUcGY>rfQV&5Fq9VpB3(?Ubm5lGHVn=wab&4=A z=?!*bJh+wKL89K;1IP|RoO$-wbr}rV=N=I zo$Y2w?H+n#A~0j^_&C8e8=menbd|l;t&3L7ChKZs&#O4#_I6j=w%5SkgN`e2J-n2Z zk&!T}C%z{0I&(?ck=!sXV)xG50seGBw~mX=-DLdC^`~7O$Wr#c!>RQZ?xL0KeGob* zKvcQl<Nv6 z+VYF2VkZH8&>?>Fb_MmPSF2bMws`@7g5$uMhmaT^mL$q445)Iyc9A-)i%gVX5fTobmn?No?K^%>iu;1ulv<$c(;$3D&pE=el>SPLMi!?Jd7@& ztIlq6b9#mWUpbCmhJ}TtuE>}!R2q)3A}janNlWQ+sUPaGz$%^O*{^z=UIJD!ZKL!z$<3Ar6_%F~A{mJ63q?z_e^qVI9t^kv< zKSV&t^OjK{2n+^SVNW(N;$!JN72=uuS+~#JtSaMtZ$-2)GMLzctXbiydpz-8tFI2g z3i~BKBe__*CR<}5yr^6|7Zv;_7IX@FODSB!0+zA}Nb)C2f>GgwhUGVKDB40W;4T=}& zM=YY?FdL&XR}#tRrET-EDo!69V#R~4ENlOf`aZpFO4+@67x)Tv(^ig!3<|2+!jtQA zS4&_iBEn~h!!ICnpZl@pOHe?@&`0vO+b-PVqL$A6cCep}&hn=j4z3;q2cDlZT9xdh zClI5GvEFS0^^sIe9M?O{6fknA`D#H}Bhx&AJFSHW#F{dF@k}w*Z~M{Rs1<+x{OM6B z9#0*8N^#W>Y)Wdc`{B|zY`YNrkIdY_{92GCgN*(;ma0{;kCduULK7W*r)}clKIS|q zC8XqhWA`kLbLQ@6kaOru?ex_EC`NXt%Gmy;HaRFa-<}{@f^ch};$Um+*Hz2)r$X$H z$TQ65oBahl{U(yt!yzFRdwbr?QQ!U0rKRj6i1vBRojK zr>4%P`1nI3Xw3bfe^$v~j-y|869~1PbjNhE75)=nj(H!K*#z;}>gd=RSjb(;;#{qf z2Z~0}yp%6sTFV=MedF{UZF;})q$q{->|;Jr_S#%R^oHQg4f{M){`Lar-4?ZyA0k0i z{za8vx|OhzXe8fUkaqdAMh%we%i|^&)mjf^>6PgkXl)nD^vq{8+W`a0dGegauZ2im zU7ZnBH0w}USU3=b2xkFJO-<2{t`BtQoGmUX$@d*C4N8b5KJ7H-Mzew z&<`0s$HxePvX?~sxHWZCq?9yMS>cinm3k%vR zWj=)Dqqbg0o#bsuGgi9%p^_InRbGGsPy2@bJnwu{#gLVnYd_d=}*s#ys(JIl1I%Bz!9&5&kJ+h8>BDS2(CNOnV<1sEdUP~Ap)LtN+ z&0|=-z86A;Bv@Afb^8-T9LzMYj503A_IE0ya5-UQ zy*Wm8CS2jqc!Jr#yLCS|} zL0dl#pCKq@z#u!S^8|V_GNLBWAP^}t87BeQUdb=qv)^;-I&5(@3<6tbd%-|0WIj@? z_qeyWSH4(J5%~L|YxU`#!$7;aTiP~!5W%w8I z;QL@)pb4r#7vkEl;(gY!<(_cCXbuADgqQdS<%twV{9VZTc0Z(XQrsy76oge8k(H#4 zqD5bV1GdTY7nGrZ0#6871Pg?+sne5QD|k+!^n)jE10}slQEG(MjHEy#ECb*+-inHb z!!gw!M`1M{6`A*}Wm{t{Cgf6frbHKNnDn z+`sf5n=$`6o}(d(2fY~nT-|gdHk0=lzQ9Skr$Z&@WvXgV*RHs;u<**~Ru-sWRI}bV zgMw5p?wcOd64>ol%ay=1OV_`~_h=xmH!23)w2{deM;GbIITs3^GbnwKNSmkJ3iPar zEiE+yqQp-SUq5@3Ot5A1LwL9J8cB#t+@G1?%UYr&u}A!MDR|`84+lLoYZ^R`U{CiA z^;l2NewOs@+aNfeK|+h#oZK5dxWvK25Lz9XuR!e9b@6WdAIhm^?_DnntC>9o?nIunF3Qcw}{}O5LrNcG_NEi)AyfB=HJP{WdlyY@LnWu&?ZP zdD>%a9=o33Vz8Tt|3_JR{;?^IdE*<}SEhx@HpKjr9F$u&6^qqam{A*k3#Bu+Ilw1K zWnVo$hU1b4bo^;q;mVi+1p{g=0%SBd`rM9W(Qbi5;`i2Jm=Q27e75IFGC&V2{)_5p<_wIPjA22pFU9pgwch=u%lE zP_jKCSwS3#=ik+7R;>vk`H&-uFHoA?#L-*aTP7dd8CccgyA8+(Kh>XYWt6|!DwL}J zo>|v1i=>J_1La;u7Y9&k$!FFu2D18uc5l=*qZx3kO&G#(#Dob__{A0qY<)B3ynptw zgJyh*8h%W5o-6ft+3OYjyb9w=Q{0petRX`|m)J0jR zNtD84en#QO>L2yZJr*mgWTu09=)@^7z{p4$1;3w@HHJxAO%X4|`vGQv@zYKCdEojj z*jP&^)8_HE^MQ_2d!&3spTQ1Xx3LlmrpSwZps(M@XHBjN@b1O@z)AB2VozTYS%8;C z)@SYjOwG8q`Ss4ftfBhk*@?kXmGCE_zCmV-KE*zmSj}H^>4f|ldhaM;suwKcZbb%= z&vzf`tzkHlSXCATIc_{DBZKN$L>ifuGUliIk!PzjXoAnGfKAukcsvL^ zl0IJYLu9@0=|>o4dbSJ!nGXmI`~e8&Vp{alLG-|4Q8<@YFd^F1I%U`e4qXrj1e7cE zw9BDpX_GK+V>)%;@9hg#arplb&|j`13?K#r<(;b@|v>LTR1;lmIs5Xw7uETbqP zSRZ&j@WMR#Z5*`HmwW`E5>3rX7$gBRe^6-^{wJp(0_g5j(_YXZUN^53&dY;mO(gxq zOr=mvJYeui`s~owH$2>H;hWVmEQ2IfW_GNp-}+yZ0|^lM`j z((t(u-ZVkUNa?Ywqr)>fP_~8PPkD@%7%A32JHVLxdNJq7(Kpc@tE^5d?oE1p(8Hcz zbRiYumpyJL)@><#5}(+WMe&8a_x7{Gg5nB;h;{f2kFimmUl^Om$kL-TZv!tuUwD`d z@pewKKkZrOHj|V{_k*g~CoB!Lf1v*FG&zOz8U;k9o_90f=;tzl4${hz4#T3ijjYf^ z2yH`xCTe5djs^0NzqGTUu+Fx-VUmqAzoVmwVGi$5j=M+15i?zQ>>}hL&c+#o={P{0 zIX`vxDpiJ~j9${*IQ>H}U!lWl&|CdI{)cShGy0!bZt`xDaCFM28titDD2qfc4g{rL zA3yj+GFW;}P69BcVCV8fBEM!H1z_|B#>bNa1|oqVU75im5s z7Y*{s{Qjtz+mMXA7S}&|g>{hXo6UB2Ig({P&JtamZXED+oqcxU%}pf;{6(4GsK)xz;0T zt$d}k%rZQU%-q)KayC{Ni-wQQ224@C{@2 zlwYiA{K$c)fcphcees06Na;-g`sYl;{Fl%L-%r?}?3@wh`eX7q&IL-BkVtc>E^=r5 zIbV4T(9_FfnOq@nZFZ~ZM=1Yd+>kU~8AuUg- z4ueh5dO^9Sdv)qt7#G?T=abRC{vM!w=FSYB?Z@lBg*s1Ag)R)iddMhUP}S$|(Ua6+ z`R$$Q<5c|H+uP`Pp9Mzf`doM3t98r><-M2QK@wq2xE4E%458BOT`-(y!--bRr*8TQ z*~`_a?jX4{cGhnn0M=e3o1A FNHHan051WusPnfqrc=OAF*@IV$a7qO@58(EP*j2qdS^Xd{e+e zMzS5e`-NZlRlW78DVUkZ0G#de&!WH)(I(9obNa95#~|Mld2Ik4`{!*KeMom%y(GRKQ}HT{J4OMju*AdUbuR` z%29xu0#M#>hZ=dh9S(BaE?$gO01-qx&_v+cgm3z8xI(T4X=VlS@km~Jtb`b(VkS0_ zCgOg=4u?^DY*TM4GLj8TlaJ#{R`X)VyrC{R<7N)q~ejF{{d$Ic0TJk7M z>}6?h6+p<06>eRmlQbpyZzpJI@-0xr@G+)5HYk8;izj8$Zm@VvzsP=YWsWT)Tl~84 z<>ib+{kv62j(~~jm@2sy9NoBED3`NF#p&$_*NW^IuG0Jot#CYIJmu~6C$T1!q3$t? zAW%!NkDk=v?VmxlqbJrsf?Ib;+{&BTS;q%q`2__@IXSBwK~|HkUm1#?K_lC!$LRh> ze&_m~*y``=+qnJ-0%dBMQ70u}`4G{31H*b3&`5Ttt5mLzlRhq9KE1E#4C9KJpj&nB z{R0-Vgeq04k>4hA!T_MlDC0#4a(KRkxp`Bq)SpZIM*U05t8`=`@v9x&wmS(eltm!= z$zmn!;onVQUjo^DGN0OJUDU(wUYEJSWHxr|3Cf&YT~_E2HYthfn}H@hgeOe^nDb#8 ziL7^MpN~`tEu6?0DW#&J@#OA1?oWe*DjF^z?dIcNdmN+m#aYtcq2`soi#dRAaT+99 z(~4b9SYNj$b{nI?jtW2X3>A|ncL`{4`kmIXpV-_)2qLv?!qmDoUni!g!@fXyG1Z6MVVI8hEWSma#3#23<4@kr+lFv`GXnMs zPd7+B_Bmp&?E3eLKx}XXuuQ(UPI86WBo4*+ih8X)rgGm&%wA-@z|IyXNTMFNB<&~7 zi(N}ctIgoITjeyK8i=~!^zQ(uQLU!`#f)ZjLqrh~WAmkujZ1D%Z*Qyp`wdA@Q>_vh zY1pWhmE?(J1T>3K>A6K+vBzgXvm!g1NXr8X$mq%AlQ4R!-~OWZ_3fN)_PhRl@S%Pm zh?Kv*`6%dCWNa1w&L*hx*}ir7%e#HM;*K6piW>1>vpO>{S;v}TtEpNZ)H!;8Bi&Tx zm|~;?h6(mt=vxf8247b%DR*>NA+2N^&aby5OMgIJCC{Xu>K7U%n+f_$JvTO{SBj*Z zo|^jl5TUmE9&fMGaQz02S&i4#iA6dYE~aEHET67AwHEB`*a6{r6MTGB(j^0vUEG=j z4dh0gkOURCB1bQO9{per`2p0V-3!v`p&P(jj|QDYevKsanM(&isjC-;G4@$cyf-32 z4{nagO4LO?xG(lW!K@~Hq~vuMsW2Fh57MdgLh8Ly?su!p414@F1dt6NA|I*r3Eup& z55E$5&$GMg!DHfn$K4BrtpGC0m-Y&K2*97Z1$#>B8>X?z5=&Z4yQ%b6H^lp>81r3k zW3U`|tsHn17w=)M!$EW8xW$!b2hY`dl^^k+=FfxZ+l4PjZwd+u+;=AO=yS-pdYc?Q z&FoHGNHGBrWcZT$-;-n9@Ory<#2!Fmwx;6u4LsNO8-S;pM?!|kLP!B`2iU5BWeew? zd@%(Lc7Qi8K&AY4KJn|OU6LpiMM)Hy_Jdt%D8|N#u1I{QgtLxuK%1FhoHt3H(V2&m zBJs ztK;p&2h7?TJTs7P@!CQsO7-lM5O5#(@&~2#7|T)meQd!FgG-qXda8h&`jbwYs|bJs z?^xOgTvxqRK9Yi}Y|iJt9A%tdoWzd+$RXe*qqC-AN;n-NRAgI=1vu5Sb{8{`-Jgx*o56HUE-3nGd3#lk?`QXJ#3QQpYa9-LhuCMd#tboOw zzFA&`eww)7rLW>+g!;2p-^DDW0N6KHP?u|GQ24nfskA#4{H^nV6ofeGPXum4R&;#4 zHE4{f8%I<7eWtpQ*A<`MgTq2o9#e}>Q3IW+hI>z2_{>e-$GjW7xHuCYW z{_4}y8mhKAY)5~Q&n~8U=65;_XNP%JrW4RvSXNI`Hv_t{Fn!$9Oh(=y?%^Mk&owm( z?=JVFMn*Kf4(7>%r^%S5y^1FJ#>GAmpXkfaHJBAqWzXTD31HY*5dCb(Q_&_;_(0y6 zjI{WinI=ODGbj>5Thq+GJuTpF(pqNEqx08pA7_6$f8!^$>w<@g8TFb^+7-7YQ<9B= zrWg;vt8E)G@$r$9c3#DF7nHp+f97x?`?wPXLM}LBGgjXFGjz++Xjd{(J;zhbpkSXl zmN;pH*VPZySleR;UEfKgNcm*G5+zU>%dz|^bBieir>(`BSa=_^6F-&_Xc*8-KE3D}#awrF$;)`qzR3*#b!2XN_mO-=9yGhNxJa0G^08(|V3+JNDto(< zXjB;j^1Im5+-|fOhqfN#)X7W8@ zU(oL0*JH~^Xq;|LX_gHN_K!KD&D^WDQPR1~ulJ_h9du3T1wj{bx(~n6_gGZox&hHX zWAXJP0+N`AP|t#*0Wj$CKE^E_Gr<5fY4JV`ci9Plh*%XKbH4X}kw4Tb%^g=NOe+F} z(&-HonEx@nzJnp}!?9oeeq~sa+JI`mGw7kXBRJg|{>JR?an~d%xX1OvIjKBG|8Ou# zOq!zN*nY~w_xpw7)#h~nANM*~53-wShgj6yOa$k6#N-o=sJ3T_)hj>SLSt&@-o@vL z2$@{;b`QV+b5vM#1_h)5QOCHd*-<<|%CkJkJRm^r#JwqlcNrs)G)U>?R3zVtmesC@b0%=id-y?6ZC#0L1$pxlI*4L~bG zDm#mf!U-iECv=`05X^l5&lQy#b}eu9;$$IVi*k_mb?2|!EvK*)cpNi2Cq?qR zgEvF!<9ESjl3J`1;6ZWS(%BjzJdRDA%}$^0RmRKlp&j4e&c<3K-*{(6&FJJ4Bf{WB z3*5y|9!9rHftlxSKb&|J12tX^MGj42vw@*phl$B7CwnAt#HA~c*#kIDRdGJO(%I-w zpMJ0ZiLrU{T1!i7J4J)j+S>Z2^Sg5@8|Og%mqC50N+uAbJltZ;kvm}Y6(sMpI$aXt z=S+~LygPRnHS@t%BMdyAqfn&H>l%*uh%?-$9h)!#invP&wI81uxnmn zr5m1KWE_!|2?gO00mk@(PrBliSLC*vr@vfjS6N5|3ti#3%%-$|A&cEr1y^5mkqd{M zvytDp!sl9@t>z~U<*&Z8YVVUsX04XzcTV7mQ^t7&V~6GSsYK^o9N-04kUjK?-eW4c z-G8-xT(KTubs@4}p4HfeJvWoD#~@`+#uzn1ITQ56qjx!3#+@WF{vtYi%iWhCJ7g2A z6j)MV!3J}(BzkW(8q?fUyo<6vawD#-ioB2l$&oKM2p<$NCQUR%SgG2giH6^em$cyJ zYsD{IawmA4Kt$7}9&c{mE2$tJ9y;H=7o6rnFdP7D{M%*NaVM79A9Hd>kR3l?nt#*9 z5T*>UqTTz{jaHNS%6hInx&R?Mh3e)ZblZER`b5j~FAIqI{_DoE7r6Y6>~q4jqN$=! zS;w9(>Vhb2MTdzf@!GyIFNNq&k8AqHDo`(;+l^JzI6BmROH>B(;rM%RPmZPm3T=FG zH%x{mcO^0h@lHKwzpKRlJCFy~Dfe|wr~@>8eNbD&v?BE)D)X+AdI=M)D>+9@3xzEs zpGU@}GC@Jg0B&Xsp2x#anBK-Vz0Z-aaHKhxkU(sZ*SvM+9#RMjuf+lfG}oL&l1MT0 z#eNt#hbqOthH=da^_yxdRSP^R>tv+gycKo1On1bsNhs*G*?AqHNla=kHFpZ%iVhCWAdVhU8VsT0(|6nq-%x`coX%!-=-%P1H%}SDDO3@dYUybUkH-f}XqNYr8WH@8{oAj*)o1uX0H} zmV)a9_(Nn6TlAsS^dIu3liATZjIzV$Yz8Kk?qZ_C8GzqF-r=7BAZ{>N&reDRu%p;wHtRZL=1^jLJ;IbW~JJS*nnkc-rjOg0O(xy9h= zY~|RvQs@Elf=DSg4&!AIx>XI?D)F~WmXHZN{DN1y88f6}18C$J>|$N-Xmu*YZkn1T z<0VnU^S-t@OeROe_;;gS z7)#vd(GoT(J;_aN;Db!J6W#uz zq5+nawfH7+q*hmk)|$O%OE$LyyQgm-hrQmg~IDZED?QQ%TykX=sJ}s{U0h1SK|aCJpS%yzKUH^UpIO7z0sNKR0cUt-p8?>ez~CHTF^BpL zi?G+SV)%OL*aMTQ>v?}84?>qH#kdj6`3)>tnPd~?=-MlYkGVu|&fP`*U^v0Pq19j6 zRI!heZWJ4jnLY`n0ITJgWKWmVqiYq2s{jNvFgCWGOw{YUs8W!$S7oBBOAa8SV-J2n z$~iH6^VRH6RsS~$wFd{;a;Q|S{>MQja(p92w#dD3z!-$tNq&A`3c-j>E=s{`f^y>t zuRo{Vv%%+R`5N)mE!j~uke6R1UawwxUc8v?05xwsWLXmbY8RrQ`@-qnCVlQtn<8 z3(^(DFQ41@=T_N9If&M6O5QT6f3?RS$o$^g!KE&BlxgXVVyDW8L4r!+GFyip`GN=7 z;RRxoYD{n#G*Za{85z1A@1^J4TADgt3JH|I3*{1$Y7EzE`29bfFg&aTtkea971){i z1C#JkN}v}>cX{$!RRGAqlF-P2@#zrAyI>fsL`VL zUPkXFh)%SK5WPfabWuX|C_w~4wCH8b-M;_7>sqtSoH=LqK4+J=?dN^=c+9ynpZ6#U zIYX(hdT1wpuHNiFnLCHA*tC~-(&cbd1US1Kl9e5HlcK6BZ}M~((B3B{m~@v{BENe8 zP|$oZ*$|8Esg^p(%}$p<1)?qwld`6Ev|@5`qb0XhJJToda4-JP?ca-AsT|cVc(lEL z3NzA8_XyNWCA)(<`0xPJaZFc=WKEnyIoM<|jrzrM$kPH5GvYs1&VJI?RCj+QnMQce zY2lzStdEs9R%dYAYhIu)i@*YBo6pfXuT7ZJi^?TZ$Qd!axVS+Y1KA>FANgQ2M_$SJ z;t6&455LfxL7xQKffZ%K!S=a&9vwxQ`IWe9Sm=e}3zC-{B$gfkmlyvzciry1%*AJ`o@%?m1 zM%_=sJlQD7$)ET9*go-1{2RAt<1LSVh2z1tI`}hUTG!3gm6dAxD9_cT^FL^m{9war zIZfe-3wTy)KAOFg6jH z1qqAuSS#%(;FzOaWO!_BGZwkTkUo!h54c`HvUy4VT9vM4xU*u&8~%md-tltQ=9*bt z-A~z>IYvBNDMN5M zv{0w^JTIQ=lnXz=>ZO6IuUS8!yRa;K^Y}ksDseeASh9quwuPWseYLveK#b_E8$ngB zb9A!}zp~Q&-M{-nVc{$JhZ)^Xdf5NE| z+}94n%>UmbE4+UoE_(|EBH+)uM|Vp-6J6ClC@4*c#MnXacLK*sWc?&vOaLj3}^HQoUurStxEd<>+d^H6Bk{I_YjVRnr18A(^%Lz7gI6VLwaDpxIrd9(F-o%$G? z$StQf9&U7~hE!L)cObj8K`T{a$AyrA7YfGs{^*0f1C7*$AYY-MwdB7U%<^-05ha<2 z1c|)ojrJhI2r!5MRb-gRC`C$69-5Is^HSAm@i0ZyJ4A+)6ZgGs==o)6NQh)NLgLS| zDNJmqB7Bj7p{U^Cux~zoXLU^Q4doJ*+s}ZR46hz|i#PgLAjKPe*>ue}d75=!DLjs3_bYIr$PO>g)Iu zr?=3Y*55LQ=*S08{CBbaTi@`@v$7uS7PdzrR&5qVtgtrtE=Z=;Gr&cQQ}?R6I*T#U zK2{ia@(>suJO@Ah_E!^(y|g!B5YAV>J{8lj3^Bu(YM`qXcash-V+WTuLJ!mhr?yaq zQ=G&5aR@a=lI#w`bhKnB6+X6l7U3IOl}0%7v&{B*r;ZY8!CL|G`uc`;D>T}&)n|=~ zZi_XR?AF)^-kZF4N5-`Cvgc6BKJmo>Z9zVO=g^AqquUYL?Bf+vPPF)$y#Ux zct(i+nlPl3qW1O;auD~Y0nW+I9on<%e33#i-=-gYh+lg6ReWtVNA zJ`MJ7vB(7LZ2Cb35(sPiANAN5j4Yyi%>>VF011%G?hjJ6Vz1Nd4vHs zp^eQ^(hOuYAFyD=f%qnKRqqN`3Uh>BDiwMGDzg?F~}R%7o+8*C;cHUTe8 zo8(*3?|Y#OYG|A>jE^HGNSaE+fuO53(mCUJX*4`8c}M(Z920~mz>LLQ%mpt|O(iTZ zkDpyV0Ke}=3e{O(f{iO35ZU{6iEOK>c+RjY) zMd3j&b~U_O^1{QG;n02v?IKM``lFTgnvz$*Z00#9Hy?%=GpfPMtWl!+Sn)FAycylz zcdyDQ0Uf8Npr6ed_v-qNXvaU|Y2aJSWM5*;j39`Ha4Gvo0`Ay+b<*DSDnW#Q4Rf0P z;B(@HbD6R#bq9l#6hsu%qB*WvSXgjLNH)m@0r8QRo}N;!$y`EyKC^;?0tC`YRbi+e zq+r&Im&~I1s8D9*bfWWTWBHNx&);b!mE9@(oxw)S4n2De%jP?mCo5tSIB|60Do*Tc zp{Yz}-z3~?F*e(daL&4h5(TzKEeL5u@Zr`2GbcMWegkK7CrhG|7dQ0!?_2Oefgi-l zBsP~GHm#TD{rWsMF}@RxFtZ)n;k?g-IWUxtHxd+FkWX5d-U(fPa_>uVKmv&jie{|s zO1wd7~sS-Fb0^q^|%>x8TD+RLd z&-WtO^pd78ka0k|0jTw@i1eqRg2UtVDh$3RCu`(rfOvT)W91L~v<50ZUfy^X;z7Vm z$j%<&OSQdQhG>VcEZ#$}>g4VrNvsoOOSmC+n*y&#XyWpOh*o*=k~#ep=7@{mI+kReKVP8({>BxnY&5dua~iMq^J+RQXFmQ;NX*Lo=DsVx&j6R z^PZi3v++0%kiZkham>*lx#$AJ#+ED9>9!YrT&nYL08C2|AP_`2Dl!xQrq?nsh*|R` zE>R5tktYJk+de!cMa6=`!jMEH$QkIG2mu)$=_66fxkjA*{`BJTyo?bTr`-XG8U}u{#YVvDJUElcE}i zWgdIaewn*`NheyNqBu-?&)$Anx%H&7WmBjV;!a~YGsf=wFz0-&OoPHDG zHfuSHnEIdsiuXQWZwC9qN;mL#T~oi`{MdGc51~4Yes1yISLC5w|IYrZ$=Imuf~eQZRUCiKPB!nsq4`Sn%kNKxF^BS*;iL13 zM^`tp&N^87X%5GV1YNZ}o>f=)>n(S~8lt;Dm9Tf|YXuAYoxL7Abuit9>(2zk$jMz! z<~=OhZWtrRa`Dw|pF)shW7IO0CL{=i%)4BEWLx6$V-=PA9c^DQWhxE$HN-_>_ULQj zPrggh=PG!dw8A)f(q~yIdFEZJi#Q2u2b+m9p%@3q-(Q;=Jz#MDNfx&g1HynegnSG# z;YoOjtfK$a=QyN8oSy4-n|VE{>|9z!9`4saoJN;S+O71Q4;G@^56#Cf_F50tVcg@s z-aI#C)5K`sO`nl~E$qEDbRhHA+qvt_yv^i^bPPi0KK+n9(SY!eyDw!`=M@g0QA^m4va6=CaYB)V=W2Ix?D^|4 zlDU%~={m>!&1F4ODr-B%Xx6H+fxX0;uZ4)bg0s7`&J4Tzog~F2|4bX^1)3gf%t4E* zA}zW@NIyFgm_*2RF(C?Pdq`INRakt9J3wst_g=P`_^;zIulXQ1MpgY-JwWUc6&1y< zjB#sOD=1)%F)=RDUIj`-b)6BrUo5Wp!Co&r!N?ewUV>OY^Ut^9oSadKy}yITX{Tq{ z?=w&3S#)NNT2W9^9v%e(@vf+-D3CqsfA`z63R;{YpJXjmYw{!W)fH3C>#n;I>tb^} zo;q1vfO%F^&nm3XLb0mmZ0(yF6j@7L?zaiuIPc#Tt9IcQdoar4Z0cgVrUzecV%Yh4 z5oGofwg(r5wD|P7Ow~CdNZ39^!SY@YjzrHjZqYAF-DC8VS&9nX5z_K)4~n@d?+Lcv zgX{C7lnvx*gHqJcYbN&n9gQz~Y(>@%D%;QB^lU;{14xmnFJ4>ri~mKtaEwq92;~J5 zT}^i6mvuUOKc)GBTO_+`m*4U%=o<0-0*_>s$#o2J?fC~+=eyC$+8R{Xo%;4DVo_Mu z6?8$H@q~0T85ivC-Mh9F9kB~+*kPB@>42vZj9*>C{5q(n))k34%By(V?flgN@G=t`wtyk$l9#A>>!5 zf$TqLF-(sK6enRjwPxnm)eo<*CX&hTZB|vNLC)Vq1rbJ1gc($95J^P0g*hbCb>DCR zQq!~0@s7p&!?^nvQb$QlO& z`0|Y~;28SrDREmkeX1lqE62Sj(rjN{;K!R)g}~mge)Qah_3X}N!ZfoT%4!ic2R%4B zQS2T*`gBiD^61+RD3(Tuk8wd-_3__Ow7l6*%0-cNvT7cJx{ms<0erw00i0H?OA%`e zh<*(_;c@G~PmX<_gu1m7BloJoRuB(fq0kL0wC5KWT{8+LCe-#U_|EWHm8Zt3iU_YH zHQ*pn;A0mS7Lt;Yb(QqS?tfWQyq|oq$)w=55kY{c-{QwwXL^@o5{E>}f*n;l)X2!l z{2yVtU}wU5*}|H2Lr{fMn&0_ zeWgbUp-!=odK=1c7?mXO{Se^pE3;T|cP6nnRE2c{TJx{|i0PN5Z8U?TZ)>RJmoILv zRk?mG2LJXup>RT|T8|sETOJ4}ARboMdYGA!OuSQO$*%Zhi}RU=IyOQ*whj69ZSdgL zt^*HefgilMxCiME2sA%+PCGuHx%&KyNZl86NqL}P;Zp%8H?QJLpGPgW5i1>AiL7Wl zhtE+NU&K&7{G;07-el^d3aPOND`c8e*xl~4p`^LE@Wpcz5+PCK6oKE2eluftI#c7Y zba!{NZB`KhsR~xDZ_%W(;m+? z@DPb+69HnVB_*QAXIGKpkqW$2bM|@^aB;kF`QQNV&L9m_h`a$-u+1+++#Ug38#1gs zB;@a_3vAHE*Vot1hZBk!yx&-=Kx(sLi#M5G_HBW!X~lBZ<2|-z3YNw7IODc8-Hvr# zW}<6l>adI#97OQ|Tx>4@mABt&syVPT2-{8Ym&xcO3c)9$@>Cvdr*Xk$nfezBpf&qD?O@eiu* zk0t>3HWG0sE=#1sXM3M1sBmZY-a3W6BMQS5q$|W7?7e4`0LauE;v6^!F33@i0XrtU zNWZ?Bn9%-tkStSkn4WAB2dHY0rUFgQV14CKg_9~a9H(NqIUd9@C)BjG0QD>s&;zkP z+T5)~tEJ1+qpv4(Kn}Mk>df3~(XFl-S*;niG)?=_PW)X?M^rxFcU%XMTj=yIh`Xxy zA9ifU=FJtA^_Pqq+tpWUdtoKZf$`6=xDHmIRtb*ry&Mtj;>~Xjgm#b>R8yzsE82;S zJd9ag+aY+Wa$iX1`kl|O;^v&5RpdtTXEqd>WRhe$0bnq4tn1!$W@dgC{Vl62N>h17 zXG25(VmrIG97piJ4(&9y%9_kMhr$Y!VPaA`7mlTgjb zU@CS(J#Vv@VuY|9OW>3NVe0+unB=uh;B!ov;JU&XDJXhNx>8bQAtkK&?G$=ou7iA|7Ls_paw)kt|nH=fztcw;tLRkUM65EK$2hF2TUkGO3TnR$OQtq_G z!Na@z_i=Lf~JH1|P(pxoe`>gcv%AmICz-*^Yg zTU!Kk$B3u2J*Ay1rn`THTuJlXYqmO>gth5qAan2j37XerxxDCpY-)g&Z@$5UU+DJVk84!DO;Zc59E88SjIRk$^H_IRu23-T`dx6f<9UW0`rtyJ0%UM2j z?j{DuWf~^{m-ks0O!R(42afcPWq&7{i1S_rY#@%Vw9;9C(qVOqH)0bB`!C z>F;0>!>thi_$H`3Vu2N+<mci)NM_}k54H78>9p69MzPq z$gyug{3GT=%+dO{VCf}_x+qQf^2nXu@ga&{hqF&yUrZl1MA+vaksG?^d}eNbfO?UQ zF>Z_>*K=m#(7%)zA6#VnCC{UpQ<$QsOWcB6p>bhX>=5Nx&oD)uD-xRjrr>S(Y%x)J z?xxIn&sh)&YB}!(f+OqmP0&uQ$(}9L1~{sB#l+^qWyHkvMQ=6|ZsS9bWMMl&qgIc% zqTT#kLJYR-2$WXhGKUz=>fz zdIZvhfG9Tz+oiS1$r_QlG70Adk9?g9*@3IQ(9(&i6`TiHA63c4 ze|j;gPUAc4_9v{1ox9t|&zzkmS@WukMPe=xwh&O)-pHQzJ81TPvRI`IA<$l_+CN?S zonRv1{Z~Ju;usMIaIbGFFQMNE6*b(wVy-s zt1_3c9=oHTjxJZTXr_fvZ}3D|KiXvA7^vlJI-pi(cog^gdkjRoNWW^Jlr>Vzd6i!p z)ASJ)aMAU$jsB&|*oO9Wb=%ezj0OalHR$KJ>M#>j+0nxxVxRW5V{&rf8QfcF0PU9e zZg@idbCbmqkQO`6Dr9`(61^QL+t9%(y`uCfC;XybVxB6mdV<$5n~QS~~=jZgI(cC{V! zM}S-#oL0@d1zr5R$_wj!u-C;9f~n=oOdX6!We%zsIZoW%6f3l5HIi`vH^_#>r;QIsz);*XjS&*!xkPG}o?Lt3I@i(%S)W?gzI=F+g z(-%t8A^!9Wk)ZO(``$-G++8@AMY{G6!#v-F*Zz84mUHqwuR-|zcbN|jFAzhQ1T2PD zs#UYYEu_a4NDYalPQkZzYM{mLU+kToUp^cD^{st3{Nz2A;)t8P$gXWx+I?2N9Ao?K`Jt3ILtI{; z351osyEt;OF+x`V{yJb_s-Eoqos-z>gLp`6dgT+K*%7%fvCs6JI`n)juq<$GK(Oty zr_uTEoK{#uTa=uOzF&o_Yu(XV%)mM{bd||R(6nHmDQ^UFr*SbzDY4jHe zaf{%nBu`!2c^ym);dlSw0Z20r+}DU|YpBJBbNLvkI4(0*=0JeTI+evXM~=MHV~#B>BUJ^3geF5Iu5dw@MjljbU}Ul>ve1$KiQ1A@2lTzj+^v zH)AVeNFT}gxWz$MxtvPW858;Y`n3M+wnmrZVpd!^QVo77T4uX$e2Dcfhs%*VLHaHS zuMEDWa$fpE7WfK7)=70Z7N_1wgBI!W24|`YTa1C+UHDh<j2{0C_aw|Orl z#1g~y0Uc-hFawk{ljUd-ORZR2w1)F8137XdF;+2Y;R(e@r?3)fVY46nUL9{se-)X& zRmPQgixO%ifndq~W%A_<70~8OZ;ofZy>ZWxAwT?jHWk~tANKq=A%TP(SC$GzTGOk} z`YpI#JHp;u!hnrcpq=o;z`RB^!@pcTx zLYeh7R}Sm0v;~@j|9EuLd`&X6gK8@M9L+KDpX2|lT9SJ}*T5F>=E3}n0Hxb8TT#BE z>(2Q2-v{#phmU0_R7c1RNYose-yU8`99xg)HnU z6>A5NZPq<=GJ7qr(T<=Azu$Kp4u)%kK(S<2N4U~k(1$N-U*5&7$L8tNyLEaVx zs>vUy{KI!iFe0kjUNhg$2M#E}CX~(YOp}{}Deowq^aN}3TW+2I;UllT9J*))cXF%8 z_qkK?+l;HWV$t2bVZN9W&-cAT+l@1{pS_A&J8beTcj!p`;8a64RbbiC;rE9W|9K4K zHpGIMP{x?)c+;0T%9^<;i7VoCjpDZr|%dSSOE@Jvd!C~zeL7S!CT zsZ^o&*w;Uudj1e=25L35t7%gRYL>tr;#~Fm4`Syvz*{ zHemM(u$vmUusrmkWRven*(e}2`@_@yKBsCsk%1UiY20orynu_j6HFY?f9y}`5{f4V zC;p&)pI%tbxVq>CBRE>R7LQqdv_+0pgZT3m@{*e7%bF0QvO)ae+%yd|_Uki4KI&gb zx^woe98G)rVUGkKne^=(>9*nLL;gl}S=F&fn}iRq3+c|TyPEm>Y#zl5j=sh32r2ai z9QS&)98fqM9#+VC>6p0NJG5SFOz_5%%l84D?n6;gcd4~+Ztm_BF@>hi&f^c-Z@I*S zJe|1d;>-Hk62D$-C&bR$Hju_E>DI*uS$fj#w>Cg@@*6C7W=#A7iD2`G*ny5TIjteI?AY7`KJ zC)DHLVehugpCMHx0zU)ksi~{Gj0(V>zjC#;>=RNm-Q?3b9nNsvk63bS-1?|N+IwR; zhQk?imqKw%Ajgoegrgs5g(`u>{rzk3gE?+I?+0|D9zM=_(Qj?n3JZtEoNb}2U2gBqFQ{M=d<|5 z!sMfjs}JR}E``6fC#4Ctv%e>0yi$)2YRPnxx%U{?VB*vf4aDNG&gre(T@IB)Nxe}C zJ%7a<)Mq+A!N3p1Poh*Vb&YgRIRQcbZpWp^a=1;Me)*dyhX+Zkt7c)==y*s_XATLp z?sJnLdz{l~4QL0+~~q}j|-${$N?NbO-8pwB%KdRXUdeSk5enudHl_m?*0 zV9bfY@S_<;Y+u4a=8>7jw@5EZCrY4fLB|w0Nk#8|4iON37L-o!pU}K%XmKt_r_Vk8YtUdDY!a%jw z@M9kU;gzkb!8;D@r=<5pQ`uyG7FSsG5Bjgaabx!DE&U^(lb80dDNdi zRWL>JIiPLchlLe7TqpM~inD#&6SPai0N&TYlPOtEUIyC%vnQ1E+5N#z&jELG3-inl zcP{@{^Jn7hE11gUImS5b`16pT(RoMTQ`uCE;_xI&y2*ha4t`J1p~pq(Ey>6k69Np& zRBHxi$jHdZrxRZW#>B{Bc=y>|GUn_)IfxSvG>>t5Pol+;59_Ji%EsxLfnYd`_t8qi zruZ@K!$$Ku{I%ul3oYsy9GnAJ(OAinXnhk;DPV>&rlO(bvy=2+l|6$X;7>(SU7=Fm HG~|B(Vud** literal 77672 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ℜK9~v`&wW5hTyCPBW3i8$V`K8N~De7|j}kQ4lCX0FQ8c z89iz`x+a`$Z=Y8M?45JQ@&aQ}_@8XxNqWW}eo1?TH^I!aB(^p;Uoo3D2U@e7Jbz?i zVG(8akN@#aiu#QheyAmVe{Zjd6&)rv{Be78lb(g;SE*1@@!I4{Y-icio6RHxu3j+k z6YVB1iT>+VEKhIfw;|Tc66_`ZoL=8#{cmpe@X$-j(2Bq-4|z5QfPSF9gd79N3MgTt zmJ#MZB|e9jn<-MbfLKMybz*s5QknjPDlO9FM1AzSVLqAk!k2bIGC z(SDkMJ>dU)PWvo}+V3)V)A%vsO4_7KOLhscVV&{%kmqgC-M8v^84%6l7_odFZDMvX zkQc-C!qHt0&RNBi8Rk8GBXhb)NP-_CxbpQ&JN1K1mb}S85G_i+72?fSf6DBogc_kN z_)8}O!}SYY^6ZTb%de?YuE)sVzkk7Ldd<<3<;34x|P?$6N{G_69466y@2vv<6tTGbg9QpT&+7uGV4Q(_f}3>;P2hUC-ltCnjg}*n!=7>-OFU4Fsq*BDuwr;g#~R z-;oO89Qo6OypPPrBaCVz_Rs2e5bfbqHqW|A+YCw}_AJ8Z6Qgcnw(`*>$@{sJJ^-;J4$Hu$xX~PB2h^{C1&yc61Sq+^KuJ^6SoiObU;<#= zY8mUQR&oP3L9evi&^@NRfL!V!bEO7^=Vy&jN;<-9HqZXVDso}bPdlMkwM)RE?8c|cW1j05S^WDe_NtDW1Ye%EJx3?$CWY+u=AzS|Ad}jgoM%`c%E2ehd*4%fC@R%540VMKIFyJ-wb9{Ebl8;OI z)jPP|P8_pMAKTCCR>ay(<8GIP%9}$GHuFql*}h#R&anS;pN(&8o(1Z&ay}}<9Yy2` z3@kQ)8B;&Rr+6;fJ|8-sF&W=O(l~-%dHvH3^Lf$bO9716pZqBuvH`_+D=CoOtg)BC znSYYo`;fC<_7@0)#a$=76>3(_?>c|wvn0#YM&vRI^4=yW69hb%yVK}rmjF^=)KZ=; zh5USKw_}sPy&c~<&>ENCR09Oy!VxFWiLpn4!m|J2{hOD6a)2-*j|38{}hThl9!KS*D3nSN=jBu+N?o@7V>yBH0thZR4}ChSCL@c zPe(|e%mLn*F!=1RV?&735^I3{RU6WS!WcJZTDa59yt_x3p! zUtWE8+?NEj%y`A%PpA1^0{NdF;6T3Iqj~!SQkbhw7m$^uIfm%_=j6jTnl+yG<(#9} zJ&z@Rdt7!led0b{xAVvNGPzoy`$xWCT_t<#o3fRNgtq`jMqcLc1Z6ArhkEHFzah{| zmfszO_HehZ)%l$VI2cOKIa%5efaRK&mKLpE>~8LuaPZIJ|=NZ zCD-^Kd6mfO84&UrwYW0N<(Xw?$5xb-oY?JBcfY#rrM_VqB?O#TY-foS$V_6(ZT?Ux zGap7p)&C^uK)Y@!UmXAxi~a>wApCWy=;lyKeDOoKyk3gA{ciDnt)qYb{^=q_XRu^>hCS;$KXu-NZ*WLj z+C$WYy4q26%5F#Q?x(EE^4hG}V^2P_Qal47Kg5Sq145{J@Kyv^s=*9FQ&$J z2WKq_XZK zqI?PBRW|`fp@a#cHpNcd&?Kpr|E&N?!3b&^j$UZ68-7WXz{M3J>ujv1{HJTb=b=De ze0HIrjP%&n{_FB55I^0z#I$?4E-b!XEGF@?&CuLN#_dNLm z2vh)iym{C{;S$Q=nH~uV|A!ABqP0scXCJoV>SOxAiM)pgli6Roz!CI*AzQD`ZyP4~ z)I$5ZFcBLQ(;_(}1Z$AsTHpaGNYm$%psC$#zs#Y4MCwPS0(Oaw(}lX3BC5J* ziZq)UIBPP&Ad4RWa0_^an`GCVNf!i>4A!clEiJ?V-oVQZKlviCcj>%rmJe2-Ka8t8 zz-LoZVVEF6B%lYDv}m}^+??Lj3=L)kF5wBXVN^rTLzN)Gz^%OI8z)X_8TgE0jCS#i zGCz^X=d*TkMXm!ho|bo=+a1Y1UkZvW^vdcx$9e7_6@-)&tM+XKD%`_dza3~iwNfV$a3+6j}_VIuwBZaJLfx$q>B!UG5+t0z|td%UY zcA8G&=#Haj?x!=HqB=|3Lhaq}D_v|-E4$uI_$mOxlcxy(IVhI;XK`VcA?ba94J!i* zN*JAU3eBV**kWPG39prhZHokDL)&&p$6ZKCK!5FBO;lB}j8TWP166a+ zVz5?jK7T!tUDip9{k%qZVy%m{Ge@J*T@2aY!Mqdu@t&N;6Mu~6|FHJeaZz>MzeBfl zcL@rDG$Jra3DO3jbR&&|AT=~dBP!iUNh2W$Ln9I+(k&p}9mCAr&GWqP{oQ}>{aijU z%$&3LKKtxhXRYsExf|v&$iqW5_=I)(d9j^60#s9aK_ zGquN>2A4@P1%BMCBbdu$j2=%n0-Dth{vJGAM9ey(t2Jm(bi-Aa?5X=12f^w>CiAl! z`nvDd)$0u2?&NZx*-zJdn@0%r7a`C8QB536Q#rVlMu_vrXw;NcR@#B*m*|52vyQ6g7dfhr3Ko*z1s zG2fs0KomY)P)TT`PfU>hoz*wJOW_xwd&WDCEsPBF`VaS4Z0d%<=P>QQSIB+!D0e$W z8Dw11uc;GH8P>59^UsfofHbn8=R&tM?^2C2pC5b0x8^|u-z2^58noLjT#k1`%%#P_ zS84o!74No=8Se8L1HGL9ikrR3C88;SljKf)IXI_rGH+x7{8snvC07IThPf030E@QY z_p|NnD;^jFThyod3)x!CFRUWXZLr_S1-wO>JobTk<7~cPw@Np^(CyXB?9rCLA!Rr_ z+xI7;9XAkCo${zkGYnw2ct=0X4x9W^(#j!$=>&YQ7NX;u!^CnuDTx?a>K3u1#1N6$V3Po=rk-74bJ#zR21>kr%ye$UWkZ@$f31$5>rwLU!l6Xl#3AHG-Ddl-Okol^lw%q(LJwS7Ld|7 z+^RS3?d%nB&yQ>^z<`a7l^gDmx|+hn*L}VSUQSl`@2&V1siA*ma*}XK+vMdm3Vkos zIlgNCv+Vl7)0npdGPJ6pwjawOqImUKIV-ribyQ+}@$b7Q*9?hi9iipxb;7E1fIM#K zOuB@f%`Xe8OGa76&bprlHMjdAxgiR4_Lw3jQ=^!CEy0cu2EZFA*uA1h>LPE&0#5!5 zCpPZKTE-gN!?DUDprV+`ulKZF`nuLnAtB8MfMM`h8}4>L*11jYc`p{ymkC)zjWZAJ zarpzCgi(6K_)gg!55=D~aF7vinJcQ_m+M=WiA?&TVX$H*dynww0wm_vefo5Ck!8Za z`XvK7#C!MK8bb{)@GJUFM^%AL0DSpX;v=2Chr1(iR)0NM!_D7%^vBzZ94>NynpSK1 zknLX06fFW@lfQ!7CI0kQv#nA^eLUy=dUAp@0LFnMOomLWwPO5A9TqMwE1LmtB=6`@ z7lTxmGPh;d~=AJWHytn`USWW+_Cn6~`BNC@p^9c&W=k z&q`ND8TZB>k$lfN>=F0U){Wh$_tf5gmwWhKuMu*+3BIdmVMPS!ia$ety1Tl(N6$U+ zfxgrTCciX(hGvqJ%&~4;Vdg-)=PnLn|Ctw(-zD2Wx!!!k13uKBD>2f&!_rF5C5=`N z>zYqqrb5&ItWpy?h}0}k&XfxQtV$Qvum1tO)u25kOmY6vLXkOxV`In@$0`^9A3crR zqt}Fx1h}(fG|uUeQc}iVbA# zCBEip9r#2~LO+qeZN&aqBy34Qj4NRdU{%S(UKrwBZiAgtp0GxNNbTT!Xnzb^RP8nE zPXZPak%_$ilze-WlHH4hi|J>z#nzjmtzUPuDj0mOq)#5STgW^&aws*&Te~0ft%R-4 zKv++>Wt36qh0-q{?P!Bf(?yVr@C-Uqd?kXU2YFEIX4N#XRZ_9E{;!QXr*%D3okkh}P_vU>wVwu^9##$P@kTO}}cO;&vftmI^#X;96D;`}Q?=@fgGR?&W zzG*0KEos8R zEHk}E5$ZHKxMJ;^!7Qdom?3wt=>GK#X;Cjt8lRzt zJZ~08YzJi}CO$w(C1hm{RlKN+;vJU%%`QG+hCKFCH5*A^z^;{K2w1oaI#m>Z7ol8*4_)-g#lA4#S56LVsgg7 z4Y>doqXsWQY_ds5-Mmi~bVDcdnfY-ivb%sfmyg$n1qTZ<0DQG~+%X1KT8)IST!Y|S zi4^V(HO*vGHxl6U@vsd1A9Wue@!r0DJEPI~+e_C7wP_{Nc*WencJmw`OvP*gISn!1 zS(+qJ>ogQqZp3r1|MYvm=Hd+RBY3jD;`I3cFv5XSZC`5t`2UYl?tHJ))25w%^(LFU z+^38;P8rRwU$(Kr6Pz0^Q-hVWb>>2%Sdt`=Ngc0*T?LHZC}En|M1ggY#qh@N5OtM6#i3 z7eugX1%rmR*DkDG?H~jh0_&=OyxlPiJ}PQG7Z>;xIXvzZOh(!o;F_P~toB?wg7#ha zJ~;_ERFASM&$;@?+;XLyzP;_#j>M=govAXr@C3M?!CcRM#qstW0u+^FGl&kESw~-5 z|9IlYdUb)%p*%`>b6Pct4brAOlOcVvlQT!KJFwQqoSR$Gsm^&xt->#(a(JV_KVoJHZwmRzl(2y6kh`wkW+0+-zod7nPlNtXODyxj zk1wzX7zk;6p4!00~=wGvmBT1KSzAiXvVJnPmR&)<^&n(>2Ei1o3TexE5CTFK`d5H}2phH!9ky34 z45;K-NhZXA#n}gy%H7V`DJeNqh&+ohH5f}&Wq%;mvb&=Z&RG_eRg*flp2CoMJF#J* zE4NBg+_LxZS3bE=k*ho*n=zZro9mC`;i|jyRV7ALn7R+D)j4NAF>6sMOQ;Xr7Dq^DoRn}@MH^x9Q6gsT;xc6dMRQE&CQSJd=axb11GNIe)XSD& zckJDh?2?6OUv%`zUNshP$Q=>(zt8z`Xt*5ylG0}%y)^GUdAhVm^uqYKstl zBFKJOzb|Lb#Mbcm`06nQm1;gE$dUlb*vmfk@VHi@Ff;eR+%L;VI669Jk}_&FZth*0 z5_&(zu<>#3Al(NN`x8$IC&7cYZ>H1Ktek*LL3Og}*5NaNnW*xAs^qS1^!Q-^*A|%- zZ>|Tm-VYQtPJNu6GP{2^Fm@0X0!FDeHfg?#Dt9I`7N^O{CR|Ai#FZ|b?{j@%jspI1 z7G>`Z@Qfps3t}W(tM!yD_ah2K_@Ukm!&a(G#(G4Xr4{BU(fuV6xyh|48D{q_it~P2 z^L9lp>P{c^_|4b!iQlXlJ<(x%-+N9CR2A3?+G5~WM0W-UCr=S)79Xe0C0-o#P)C>4 zTP)tMtj39$#Z4Vtc(>qG-_}z#3Sv8f4_;q|!p$Ti+girQB{ZU`q%xV>3Dz`JcqF8x zf8!*iq(BN-?YjZrjBn%*M@}00cFmaI1wH{erKQAMR#3#uWgx6e1_cS%8_HP6{Y)C4 zAJ2+CBn!9Lf3{m>u51~ImFD13l1`puf~hW52QnoG4K~9-1014xQ_0P(DrYrhe`0K` z-C7h2qIomPd^KtRXab78(@gnXkZ$veF1owV51V4Z4;v0e`O;vm6iW4CG4w`bv$gxx zuu|_30%Oqxe*t7z*!AdIz*^)vPrAd_4JXjB_2%$=r_X8$g#7RPn&d~~0(SweQL5WV zA_kAVk$ouv3o*D$@T9P2}eh$+adnja=v3NB)M- zz(n6aIQt_IqDU-WYBLj6JfhDyL7UP3LrJnltADmjz~hFYniteOX=5Jkzf=Q8SwfTmMi# z%r|V`)~TSD`(BG*?ijVz=<{f$20yQ~{j)c>DUv*rn|3m>g=nwLmmSf1AmtEy-T8DJnbbaQsExT~VtwN>6*Ser%OdVA$%j)Pd3NgVBvAlEIFEy=5;b`&g3{t$Iv+4ML`$*M@ zuz^&We~0LYYoOo*&ef##<&76P(F>RNnc2LkTW?87j{esdK+Y5Qg|mc{K3!6gcK7i; zoic+d+Y^uN?aDn_RGQtEqC9F^V4J&AHiEXY0_4@Dot&OFudPmzUnA1Y zlA)CpASthBTF8Ci7ik&SbN=G9tA2HA!kKlo zMl37id*h}~X4H=#YLiZaTpu2VlI{Zi<>}4c3{0aAENVX-ZN1M&$p?5G@c&8b!wpkx zXBA_L1y)%B*tcPJ0%4}>R1{RK(bTb)xVX5GK#rT@w{H`x<|jrg{InKr-*N-5kkbtq zV3Ebe{H1q-G{t_lnUMLqejf=Z>Ysw-5#z z9UK|lH+QT%N*}cS`uv6aemeG5&1?GIY$Wb`dPH|Ne+or)7dhNmj=V}T(B@!%2}7{5 zZn*waxZUX`tq^g~w61>v3(AE(s4Q7OZ}2yM?PpqO1{7<&Q;Xx$aXcWV$^z$Ltas|% zQi%>bgtp4?j#|^2sb5O~P7m~wBABbQdav^iVGQY6BihIS^~LCNBJ&#;sETSk7(Dem zDgs@@0P+#!o^l%=EM& zkr!#>m`epf_T4tcKdc)HajEx*4rR%uYbaoE_dy}WY49NhX?5nvo1pG*p)EQf{?f~p zIDkcRKX&}NIr{lSMkcf)aN`*_sU2l5>-8&A`%8&6$e-<)`+7kas}eJDfJ~dXu`3;m zUOS-fv;pus4yn}J+9K;wmc&?40EIbkTyrbe0_Cr)iKk6De_Qw_+G_+!D7h7P7v{Sf zZ#~)1c@ZlaP3v2~W@XlXGG=Q#p#JM0%WgEVR%g=$=9d$Q9TIrBR6Ic z%jUY^PmbS)Q)_3{{XY4?d|L2t`9h??vuBOEudvSw<-+@hJKfg?A}pL8mD1}5moJTG zrkg%PaR>`BlhFAHfa!A0O(eDTGw>W8J27ahTXdKUmG~s#=S?597HaU(j~Pp2v?iO} zaUR=!wixxNF4@!}RaH?58)M|`W1ly`xWw$86x7w)#XTgSO zFJ}kb3ypYEv{-g4LCiX9X^#{j4Bgv1o(3;f(6d3Vgjh%)%~uHVKc!HSw=c@+0IvJx zPzTx8z(O;h?EMaWlj8CwB|+L;DT5m)9W&h*NhEvccH{hWcBWBiFuPaot}`or-MrWpNsp z95pcQhS$og4A;BvV`|S<5A?>)&=|)W&6~{DyqsM;fswekYxvERnT7ei1&$r|=%r>K ze<~f*FYnGioqy$c^6B(;9lvL{!$9*<+BG;C%!}b5AL-X9#k4wTs*@>k+dGtUM;5D zRj*asf^XKJ(f zy=K=I&+5|HgNOMGU#Y4gz3N`LyRX2>zM$Zzdka0jI^X#}qlC{7AG5e;^xR9nqvYjJ zeT9a!O8W~1-@2@faQOMCH*fZ(ns}<)YKT%w!zwY$)@IwRu&H1f>iOxr^0$4OeAzFt zxmH7@@+H&BfLo)T^N-sC0w2GBmwg6pwx&ZreiAJ#WJ2XROP?&%Zsy>SXd7i)Wk$A5c5(w@kKlIQnn7WFPg)h^0!^* z7l%h)C7RtIgCg_BryTiKEIiUkxHZ-KZ~+DjNw~DT49WDB?u|63%-S*vd+<}a;GrGd z)zT*q9?6qJ<#sVBwbTjSZ9g4^-VLM0!!n~_^AetQk@E2|-v5S5X}A>q;J?BZ+R6F- z{D)OxyjM#ceCHB}CL@#c2}RGs8x$7%o)4?A{9(#1mK(X-0`wO1oBe-YBZo(pgJ*Wa zd*`A9g(Iu-%#o|?DcbDvQT?v1ltefEle^W`)Y^VByDINsTH_Qr0vBYzu?7^;V`a0; zH!!!G>l(Cp<6>js%Cenj$enj4>2NcU<}H?=Rjro_ct~)Rp%&)Q*!8aHppDEO;Xeb3 z`d0_lMF+qyXi2ydeIwfSJ25Q4hu*>L>Q0kRHsx>hqAp>>$2*MrNZ~UrNvx=^r#*+C0?-9i4a9_q>~s=FI7X59?7?eml9^R29g#gmKu8P@=I*xbeYU#Dx$1{dm* zPTSmK8CUNW28yfTP$U1s&SSX8flBd(FYBvELrNf(%Jsj&g{}S1(Zat?plnwsHRqEt z-i*N2mCVrFlsSoQe~0{d;?CBkE%FYX##3hhtZB2Wj+a~_qDUJBQvYRh*=vK7wIou5M z;1T_IY&_SUD_$WJq-$vaKSNI*%p?qszC3GsBUgKBcXF7W1Ws0msqfMj_$Fql@9&x69aXdJV56ElA@xOwz zOZZ=I8cBaW6P|=`kvFa!uoJt&AP%P>{k)sqb6vEQE0rOgrWXo1o{GL&g1V~fLBreVtS?c2A~YRlAz@;6%+x3Vo7X7Z=A z@3eQFUq4l(_A$FpC9%}+Q>vefstY#PQzAHfjI9>qEk_?u(37yI&+nhGi)7$@vam#k zjzXnM?DYcBuiM&A?T~e1t0z3So0+V(cUm5z)hXxDI75hdmGQUtirx5QRwm3M`uAo+ zwJ;ZfRHXQeXUO5LSGh$+1P|j`L!cCa6U$*U%MYYkdIrg7zZkzk;9F~@#ps?3lBr3D zmZ>MXPsuU69pRkaUUXyVou7-34`?PpD?s+PuO#G4FRA4NP^{;u0NjuVPL~LR57!q0 z7cBBkZp`DaVs{Md-RUuKffMaKWO85Jq%B5|IU4$%(1P;xU7icgPYjU@r$68VU}&?; z%V)(tmV9*np1d+?AVEb>B`3>`PRBj@Et$39dU*ee;$4Qe-b#2#3j)JLUuGIdQehmF zk3@%?^Alzxq%3A&E2}dJA3lV(Jx|+hC)BJ_(CcUn*ur@{4b`_5mXl)z2{XVCaEyME z{CC(k-O^^mW7xH#o8^h`hk$oT>EG#&o)Z)AL3m0;XKv4j zZkL8mhq}^!;e%>vmKz|y-+Cc^CF=F-*ZG^-Qr$5K4J0`fr&NSC`tT^*3L3)7$C`Ml zYHB37V>o3%DRMgK6hHkj8^c1!`36by^Tv&SpZF~LXrenjjT7hxKe2d^HBR!sUaM-|d=h>ZD-Pcf+IC8Rj0 z4u8NluD+1u;p0`(>qu!?()iKzN7h@;^sliu+iF>9VCCMhn}(EWbV6?gxRR`CytV`- zCry-QMYZP{$M#ugh6IsI19Ol9h$Fn2GT5g!NPDJSI?y2-+G*iEYkH27_qd;_);FYV zsTOp9J!C4QY)jC-6@_Ytl)?@NJ_zfZhTQvd+YP;9rmEv5<&&X3V0yqS*lcqr4YQ{6 zHRng(T2IVt-{oB=|c0TL1 zjKeQpCw~0+xj8@ zYHG(gS&eR=p_lV9+LBEbZTttb2NKKUFioWbFBHslI(sZk&E$=Xx(S*so*5aL$t9b{I?Z0|SA?Ry_fa0Fzt zw<|z6E9uMi1z7GlpZ8ZRaI@$q+m~qdY7_^ZaV)K?YeF{H@t~=G` z&CErYyv4hl{$$8!mX~}19n^X$H#HfFs?=}aI>_1e^8Iskp?ijG*zaRs2m=WlCx*lN zrRHTtW}s7~GaDmd*dH!1$YiU3^E-q~b>B@!Mn(txsGVzJZ-qSFX-a{X2Y7ikIQUJ* zkNa(uRDLclCcF{B{iwF2L_HJt@6ml~*cSJ~dNLZqh6uS?F(**WVj33GqwT zjG5O0J?fsoi`sHF0u+0H$>z~q6_c~vNq9`ii2m~My}0&G822S#XRY*c1jB!<%L~z;ro=7NCON~ePjY&tFGRc7E^Xn`^Tj=@5>_3Z-hYm-`9m)-&#nbMnbZ$ zrR{wTio1L3XsLt%<}vQ>ceJ=C@QH>b;B;;;eRujYJL;Ag?fA%!+CX|tPB}?Q*th+9 zFD_0I%GL^(t5Z9j^oomJ)<^s_9gZ_uzw6{GzU|%M<(&#PZ;LnQ$9=7jZ(DxOb@=K? z7cJA87W=Ky=KgXk311(uGg7v=jtEt^ShfsvHdDE=N` zle4z5u{iwO=RhY2@Wq!e8t2RWsq((ZJiaW2iC}4`w+~Xdw#;SgVZU_=x~}f-VA@m! z#W;Qv%E}=9M_Ldu?GN3FnQ#cZO8S2YI>}N$_j%b;KVyVoSo#X3=nD`PJ7Eq8$&Lvd3a9p7-k{fVbb&up@5>4W&xxqK&j}ewzKcN>B%H!digePhSNCVf z*2JGbt_vM8QJ?pHzJt)QU={O;bUGME;Jhh)a63hzfpLsgmEOvnbLp7 za4zVkWVtSu9zPTS!-3z4RY`PQJO1q1z-)Sk-$Ox)=e|DZ|D)ADOJ?~#1F33Ol!y&6 z71fCuCV>x7(c3459CC6dCWrhq#GJ^yx6;R}@}6|9YNn_?J}sn~H(4!Ml}(IcEcf0O zJNoKaNcPQM$nR-PUACN!%=xR2rEoMoCM=o#O4w=PDuieZ9S=n}zMD2PMdBp#dKuE+ zMY?}8{;g@~;vxhv6hH-I+4J+Jx5R!0MH1D`>^Q8(+bG#UN#=_gdW?|qf zz7=mMJuLmG9qHsbGk}=al@4WlSR~UaUBC|{Ec{P=vl$MD53L{`Y!<~tXND3cJQ=Jf zjObW*_u!(rp>9Md&p^7A1Z|CYnQR>STtFy@_gMfw55tYp%Q{ySr5Xk1;^7XvMP5CW z0yWuZ=ok`plbag{IEv_9f|uXNd@{@BDCh#HPu+zJ#^ag=y8NLXpXoU) zR5?5R8Tolx6um0H~#nOUYQ-8*d*v6>R~SbLFkoElq|cioCO*_31L`F5m-3cZOa zJ6|cZEuy*9{MKM%UVnapk=s@5*}+Eo-cs}zgU&5_45!+ERxCBBd}nuHaFF(p|3`H( z!aVxd+3D#L$m*XsjvDe_`Did2f&D`~4@__VGJB779oLtNN~D@7qH~{sD|$HMqgsy& zQH1+ym;2}ht3uK0I|iSTmks%?yO5y_=?dGnjz9s zWS8U+;XrRjfc#wDwj9g#m;*@%7|{;mnm@)^)nCPH#*7niSy5ipNym1$G=NlL9&O8a zRV+PFTP4tKQv1>Ah=V3`E7_VS{HW;o{)m^4M9uW#8)FPG(Oq&;;vn;>M?3SOtT%T= zpxTn-M1YA1H=YUXe(;B7le-Z}TUjJkuJOJN4MHH|khovH@6F=Q00{yVX9`DyV!iB!0Iv4LACJ#JBFTEu!;^~;0j;oZf(woN2eNL}1 zP}C;xxYd_Zv+k#vC66bUnW-odF@j#q=}S4yeyX-3+=zO6-pew*bBYzO!LoOmm(0vW zCTbIr_^}9#{r(Sovp|~(vzUpgMeEqNqRC{ zEEzEL+s5PZE%&}cqpE}5`yS<(Sg(a#UxMr z^k#u%3x@Hr4X`KnNWO4IdzdTqLxncYfS{`B1IgKJ@ulhXN@_Ih?1W6}HjpDUg0~*F zU-0U(%-NS-3It~^)gVUE!(6oM!IrLdRnWW$fD14Sgvwp0 zM-QJ=HlX*L|7_h&xv++>*o5)uKtzle)-R=AnDyg2U`GGad_U@8`zOZX|loXk5FIZqd9!!*APtqb*jJ;!jf0&eqcQMoIj+z!- zGr#vM213u%wio^o!f-4zhIi`k&O0uSLN~G725ybG6|adIE=-Y!DpI0yf^mabfBids zyQ+gX)iusqT3W?rWlxo%M7?VMS%5kJ{rk6V(M@g4<|zQJ^4a9~?%n%si(xjwa2-eZ z(eOQ>z`g!m?_2Ywll}L@!M6}n{(s+cejL8j8HzrDkaG8!GnDB3+c+jpFBYpDTm`rY zjHT+dw6xeeIJ~#T761wykUz=ut`h*fKtA+^QvEZy-wg(LdRbTbsakc|^by;u*RKhz zc~x|uKQH;ay1G;(w^wpG5cBgFA7L;D_#KMVi^sCjAiw&$CZ{>1({{PP;7Q`ZKOTXJ z>$@O2e~IwbtNwQ$6js@KjK9D=PC7|K+MJ2#7w6*cW@$7Mf}D(swFzZgsBiLvGgLy@ z5YRw0_n)~?WK*l!D2$AZJnKwOOblA15>f<#rJxvQXk6#)x7S4_<>hxCQAaW?RiAqc z{WBjzOAcr!3fMDMQWPH4F;wrP{% z4cctKX{Nzxe7&Yky|ucgRZI%DYom*J?dHG4M*|Ws4=73y>+9>f5Dq95rpXYXFDzOi zck7n=yU*0Fa6*5MQ%p9gKlgFCqP{H1tNmmF=C$D8@Uj@ib+XL)*o--Xw0x06EDPkg zx>fD5v_qdu-i5{_jj>VJq0V;azO-WWD~w+tl&3*VV(&_IFsr=k1TYPUvXAql#~o6=ws_s(WtCuU@jLZto9t6oUj4Y5EHx3@u@ zSg0SxO40Vuo~~Nvk^tRRx>rNet*~2(tDzaR+i1H-~F1ZcTN{| zo)$krElf@pfBN|GBUa>hjFFL1m>-49Oug1ELBY`e6>P|d4o(pf~UW>0-vtZB;9~MR@qe3ipftw%VmHsAQ$AsSo zHV0LZ#~kwKSFV!76dt`X1hRkOC;jSgBn5S&*Pf|OPYffVZfpp^!R?mSZCfV*1d~8? zU%ZH-=F=vW$VJE_%WBNqu_1wTE(T}u`mdjY+Ew3;S#i>`vV>-@x}$i+!sGa)s# z#5Q{>_Lps~`e2*LNMG-whs^NgB>!k=O})8i*&N;H{w)xmNoEgAJwZr=FOJr>E9MgW zvA+JbcQ=vL_4?=`si>*P&S3mBQMX5Ca7F#$3*>YUeSPm=1waREUysVyP6-Z#iXMS- z7C@tb1p(P&usC|J4&3j8>kZG&3eHAW|L==|^(Fu3V&^B7u=1}B4LEmqNz^PXI4hcW zWfoHrjAFLRI~v;B`tWnd2)0dU?9^7oTFAr}9t7+{Pe}OT!o0jHDMbFKQ+6Lg+IVhI zQYDE`2Or|$<%JWOGCXV_XHU9LCN-M_ctdGn{2hpyu5RGr;j7uVYndGri~o=-_&DZQ zfCn0%xTy;A(bxT)1d66BCdI7_a9$2sqzVU9{!ie9I#M!JC?!^L;WWjcMln zF8$=e0&+`9c^S^FbdKq0YASnqNqsjJ7Nm=I5C>VuK{AuP-6Nlt_1#@nOUpc$%L72> zATxP*w@L+F);8Hv2}*bf4rdZcZOgqs$t3r92h=G09A2;cO4Y4B<$oGrCXVK&FW9XXWx96wH z_t=%{T?`BW2fjZ&GXrd|pLTa$0HJoeG<-2x^0`*mWKC?H+_*cpv$Nx1@O{qZp}zhn zaEYd-CSC9a1FC$u!%PO4zGW>@wqH(y}yeC;*{Yf*M zQS7Or94*RFhKlW2Kc(;c`B6Ztj3`Mr z@xQ(R$pCxje)-}UNVEe804&b=^6@6N*|%4p-|@1f$cv>2B2zwor2Pz?-rdigtg;B% z_}iBx{q~SY(rGd$3kDPb`I0U9X?WRyW^FCf($ezS`fr5*u>lk``9KHb913Wh6Q5?C zeW9m`AyeD#X@eAIQMlv$zL|Jt8w{Q1K zQ5WPey`K09_Mz&$NUwnB;T&0?21FwNr{U|e=x;#xu!Dbg;ioqRrR>r90?n{eX=m2S z0%5-7>#58)@;8I+*u@9-59Sv07MoEQ4A%bVSSYbySjAQcH)U#iEc(Wy@aixMHys82y4QJ~@$sxg+@d+RZruVJq)qQyaDN{@eG2x3P42vz z6roN}6-MHB1pxSy-2&v{-CBR(#Hg*cwN94^F_^;~+G##|{X$rFnshsgRzMSw zox>Zn8lxxv*RNm29q44Y=%`;proI89&$De${`Be5U?39_Gv-rzI!WzR%_j)smdYm7m&g<*%M zfHEHI4&Y)yx{k^R2(H>csqSoFI|{m^ZVevv?V>^3kj_N~J-y-L9?lq=Q>-6!kWZ+f zA8aZ=F_LLOSYcu4x$0taT>Z+IjxH<%7AfV>^{$F(RD1oO^rAaz-z4WErgO^62NO~; z3K(UIh)zyVY+`OczK3JB@Yrxq^?0c}Z1uZ*a0v7llu@nce8!tm{`poyPjGDChg`%& z&_J00xtI}<5Bhu@eFe?UM%VoctEwo<%gedZ&6IbP%>ar7G}vibT^wyLhGX5Oc>Mhh z;9}oREBEa>$j7_+j`U(wH+$1*c#)tApvm+2P981>lsFIfF~QbS(gnXN_sOzW)O!@a zT6slTuLTulOaRk+%F7Tf-1ip@n*W?+ibWT*clXh$*uZ1&=BV~4{1*m;)tdvDu@5NR zEvq@WxjQMArRXgG0fNCCs=dY8q00Y3s`-m$Wc=yj!s)fCm;XW0486r<#S>f4*x?sH z1uE6{E(5@BTXVZQ!&;f>AK)nujhPO7AxP)B!OP7k;QpVHI;}?WKfu_&Cjy$>K!o4? z7c{FPib?H#e46InGbF4;ZvGdz=8NXcG`LDlIY}zrWPfR)^LeV(|Nfo!e`j@Y&wSKm z|5}Fj^#vi;lmM)o9lKD`11k!c8W31H4GjkM|Jf9XJW{>l;rVymU}K0(XGoV>^YDr5S9xw-y><+?C+*S6J`VjQ;w0rX#y7w zLtPh-BB2x1jV-oMS$x-UC#|cis~FU1(ELz{+O9>Esv4bo_6AF3bIrg&!InpWEByZb z`z{Q9#h-a`wD!g3irG?jqc*d=-a=BI~163HKnBB4_ zRG-CdCUlF8F?t4{ae}S5ShsZi(rU9xrsT!e!<;-tHPWCc;?Ji;+Ye40_Xg++5sq4= z<=sKa2DzI*B|B%};FZPuE$z**apKtSb!6r6W%ZKz4A)6`6rOZ55>uRo2M71VD9e8lnKu0T6d?hkw;`Q-56pVKLi*ws+KgRj*baCA~5FAXJ$RxJz_*@agFrz%V+t zPJog_1EIzy=kxTQ`w}kXVoKLm)@~pr=y|Oz5oWc2-VGRLUcP+k);uTeb6ouHV>N1< zK@QH?Gh!Dx9#2a^9{stn5Fc3j6=ynZYj5>`x`PAhidNZkG|-}ljO{l%7n{0@l-M}I z7DRk(^OiQg5RS()UiY$rmNq<%98`2E(bxShUPH-8*HYQCbg%NUubm`Svfu-wXSCzr z^~7^fUn-oGhSMYn$Hp!DPPOM|pr6q9g)6c9m7_-2md!m)k+Bq@z1|5#txvIZ$^cTP ztyouQc<5(FrK*4g-?}-AZ1x%w6DgMS{o<>k;59fxtTAuARK?3aNEfjRcTlzZ7(Lox zD5$2c{s3fq2Pxvrs|^d*9ZM=IdO-A0LVEfaTWb|Z(M-URHPa=@@-MK(sJ^Mws=iyxc&HIA@6v3@lA97aoU7G`F0P-dz=1Gxo_vr@?7e#1`S>DQ{bOa z)%`C{&zMD6Yu(*XrsUf%-Q8#MjuSo+j4?zNc)x^aN#4M!x->iVhiGBID7^O;BG*Jdt=UEpakv+!n62kEU8YO=RVp!8c?fmSSnsE)Tpjdi&^B;wp z=PVhVcKFhzrXIn&nCjtq%*gNG1#_4S((S2v%)>Ffg|V^Ety%K^G7b(7d8h9}Q_VOm z6|HvY%NOS7+3G4=T1?X95g?`Y*o0^V*8U4WQm$(fc)8H(znPxh(kI`1X{4s1(P?J@ zBT@Jp+wOu5OgbYw%*Fb!i^CO>c%xRoZxsG_z`@Q|f8;1LCq+qg*XYx)F6Tjnef%$^ zt|0G9N*r2n64QmFHC#(4j5N=CnNh2i-nahL=e`|s5Jxz~(O&X|dV2d40vY?yh)j32r- z>PRT@3S)2sQ(Op5voYg+f8bbA+xWv-&4q=k&+DBSADNn&z?azG|fKSzC#BrFupj48QlkI>7kT{UPvwMI7mZ63+TsA%T=j#1qj~HxH zg8aE!kfZ$gkw)dma{C3`m+Lk@x{z=4GL^_$l>|aOWEN*zrrNhSksn80!d@GlIK%gf zbT#nxnP-Glve1()W${EAv+(zYX=n!gXgxl#!P9zp`}T*Y5IKM76ojd=5gU>~%t6`a z^uUTEH9&7cQp|VGz!Fm3Y3izotSUm^w8=zGJ7Q#Vx`U_i(WVdkhy8KXR( zr10+-CP^*j{gJR{m~U6RxMZWrfU`uf3wAFOXpqI)%n$RQ&X2Q(rh2GPJCLx))J`64XZ6x zJ}k46XyEkal$6}s1Q6Ntx-cR20$t7B8dUm(zmET)-O@R#Cc%GsSq!3J?f1B^AKHG+ zCay_+n&DTz)NIiW-(PW_zk7=L29xDjK5iVL-p~gA&~hKjxF>xT?WnBYtGY%+uhdSi z1mRkywy}i<1$kDmZWYJsxdIWI*l10}a_=4l@(|cWfv^~R0au$!xtw}`Ql}yNtg<1c zw8AO6l$^16!p~+V@RYuVl=hcvz*o497~L+W47m^~6DhImUjPWtv)#+nGq~c|CCAafb?HUYq(A zw*!-UW{BJQzQw?|oo7#7ODF`SM;UZ+ssrlD&zDdgp6448VB)=ij(%v?KQ<3m>Oy=HegeIU(cUaK|bcqebG z?Q%+SsoRs1=IcCZ@7((2%qSb`!p7Rt?ugnCF zkE{993#**?^jBGqhIGxi_S(=IK^n;Pzp$$)bU~U28_O(7vRYB6SmA0q*UuL%t{^aK6~HG4*_N3@O3GSxyX<4@t(WG$97jIqIeLWO8EjNo#9m- zl7%rrBO~Tc<&nzC$K~6G_wn8}EX4haV{P<5W84rC7Z>N(gd0~Kun6LFS7f$NKR7)Z zK|y805w+;z|0>NN#C+0&l4SjN8-VlwfPnx1W9t8h5qV<&{>jQ>!-L$^O0#BCPc>yI zuN=G0&mY*kOj#ktP*PG7HRgcFfu3gfKi0#8?6#cEW66YkjHUN4*MId&bhl|sNNEPM z2E}}%BE*G6!r$a?E!g{)k1IQ3qSn3>L!MSPkp2tX#cpn*uJJQ5ghkHBBXG#vW?9AT z3$KQ2S=aCS-p>$);nJAvp~=EanwoqJ2~LlX`GJ?srX;3ELrd$KK)XX7@mp?&a(00m z&t0$DEwQ+y6zSrN4cWlNc<p>D-`{q!^^q0wUer z-QA7Swdvkx^3?BrPh9W0&N(0c=Yt4q%{BMhGw(6xxbGp=BC#dL8UB9wN@flbHfpXa zyrT9Yigdz$O1WgzZuJt;V+%WRl_K8-u$LLY-Swk3T157GccPd<4x(&|t@$?j^=p(( z;noXWFYC16H71YBKX-3lo%QK{Oj;MPYO=f(5}IM)PHy5((jHP%R!*uN&?2Ae3m@25 zB$r14e~)?>NMFII3XB3_^`FFISI7u7C_;EIs2|aaN#iPx=5xMNM~gHbIG-$`t?cON zSP!Ir1V5kPa`z^%JY4BvtM}h0O({A2BV92b4{~)I(`gh7Iu&q@A&iV9T!QKU`DB~+ zIcjq%4;_kALVuvb(B`><92veMaM;ow@-G%1+06V4ic=)Jp0T_=JQc9q=?p_&|trmF(%0JQOL&1ctZxXrRVueAF5^!6Lc%mtn#S$*|EVvF}(g)-L zfHI?B>-kty0lIdw0oO|MmR-@rX8?QAR{0YE_*3bMX47G8_T&Dvw&}Q35Qc6=DXlcc>rHaPfJI)nt5)5pol3FHVKow?aMh&cTnT>vtCT>H<~cbqmx?+nng zl0aGHX0O{hlP*g3U+0$}RBs2;dTVxcci$v9wFhp{`Lc^IV>3-8TpZS zTKOTYbXIEyWU1Q7+Mj=iA4lVTV$|~INe0LvG9OQw*95qMKB)7l*N2B5I|vXxjSYd_ zyVC2#>JSElA-~I;8P8USjKDQnpJ%AJc(Ey+Bo`;>f3Y%FkZO5^m>KJ+$C#p8HT=gp?T`BA{d^D){akkvk-@kwV33(y! zizQloOGr9KOrJLBYPqYFoW3XHXquJLMwr`hjOtN3IF8UOiMca>EL~a4fMEd|OKtzb zVpHN+qL+U7*e#kzgt`7zq9^cZ+Vh)~@khA0@0B1eD`QQ6sTfT6 z;>d-@09V}e9P;`vDjc)Zg;;mnDNM=h?N29ecp%1Tjkn4o}Csb0L#6O z=a?U|AEhSI@ywI`9EpgEVuqe4RqGn;lPb+whIz9+O9YKY^x}Au+Cn)v9xj`r_WJ%JP&@dq zDj%3xYF3w;MN^?aXZmjQCbD99PZ<{^nXstBW<4o5zcD-$X@pm4FgzwNKV6P5uo}y~ z4<8Nz9id`!v48`8i~RNi&ebE{MQ#MAgReJHU1}$ZhWO6aUfRLV+P>ZR2urel=tDm8 zb?)BjY1_PFv^B%MuGJ1c1pJAP5aBaM>x&F$)>R9#0d57HS^JjGpkS$~!#>niutSS|wiv?E`SBKXF}|qWhUlbMKSzMgWw6zoTk~6& zEo#aou_128jMYu_b$uWBWxDn}^x;~}nbqvWk6E-ES9K;H=BhX;@3T-_-vXvlZCHgx z5q$A%S+)^0B9`2h=LSM+a+FJ&=BniVni$IJjNxm$=|e%RbP*$#VR3#B?($8|wOd`) z)lq9O)wlOH-nxP2sck3yrcg4>H!Khqd_0R{wY(ek6nKb-t&5`Coby`yYA-7%x4IP` zQlhiO0jfpd-JGW~g_feU&x&tgTw#N)@#(jAVB@&U=-MMN-sE#7Eoq36fB_0kLPSpw zAp6D50ekrDVGPR=qTgL`4>dRGes`w^6+0~5e_FZ1G7F#h$0CvVpQeA)S zGI4c`E*VXfXkrBAL@>jt6>M+{i{TA>S%BFX({WW zcp(hVPC_+bc~2}yL^Rx9>SzP_8t$~;akaYw=WKM{{Kq8JRJOtb)Vo6CGQPiy_e#e)9qAHTV2^QRAgIhAiOTGRb={i**yVEaBXchX;h z9e%3qAZOg4aVszH|F2c>OIjq=_3nNRWO0U`b{+)0>KLSaRB(~P2He+E!Ic=RIO=@* z2PN8t2d&RokJC0apn0yj!GGX%6l+bv-LBCb9b#y_+HD{D*3j7+QmZZ>HLLmlJ8*^G zfJQdh&>b-zQF5GVv!(q`K68&w-ZCh7B|6pPl(@)28{407Y(ru2O(bz2+csDu;gyfJ!DYuZ&DkrXGUhhm0oJ; zY9psLMdCRq=M1GFLT+sUP`94bLQ4t{VTqo?DaI8{rgbml5`Nkurnuxs+=N#$wNZ*S z&i7^7EiN@*^Bhj1k(o=xp8i@QB)Z&sX`l4`H#r&-uBFhE(@4#b?Z9Lisb?uPqAzw{mRz^aY4m86gWH zH;NFu_y-4x$a;=&7U`jk8vvKe;?Zby0bD?AED_sb<#MJR6Ppsp0j=}FB&r`%ah!=a z@A6LStse~*wquHgd>`0u9Oby_Uy52*`uMqU8V9;;bwH%*v2k?u5d2xgdPypehz73# zG;Cw$=jtG!f8ZOmfL-eHV+v+216HOeLl08#gqmj-=W`z}t{J*YOWDp1V(yw@|xH_>bh| zBEuz}YXEd(Q+oDnaK;ahQ}2~q*2Igh@vB<+0gnXoK<(y6Tj;yMmcc?=;2>-^ODSYN&Yd$-hDxy)5imvt@F=E75k)LxwBtC`qC)szdQ;?8aHS?PW0Ap z{Bvr+F9O3YRxI@}w)Gtl5jPg=J^@D*^t`;p-DJUkfHSm0r8ghMxsK3pwa5VncPKKduga`)Oeg2<*z*^qIISm&Uvuc#r{?|f=9vYuJ7OR>+VHMGJUhJN+Ze*G+cgHp!mP{y;2RJ+|<_hYr z2ZHtwKef2LXL|79iQPVte4;6Ji7vs`+kavKOw7!%#>UL}P04zb`&*M-FiPEPTKo{z z19n%gpIXf4|Kmuv{XaO;V+d)mi#K;7%zKRg20j0G zxAn+@vy4;C`Uj1^jJ!C%<7d%CCzD-r@yMC^I0yU*YW9x;Ggp!BS^aA3Z|5#r9p@*l z0!OYer)_n2$kPIWVNNxqs<9)+(6Qj?ikz>=_2R|@^5NznR=Wh94 zGOe%#C*Pn`qyOm=jZ>-u_1xCawHqX+SHt^zGkrL=iS1l5=)E~xc+qlSZ4ocV`r-wx zWCJbFPR1seq*h6Pt;hm+RU5fZIT!dOlx+6I!rYH&iT1z$PXx`{zcTytI<&V06N~sd zB5_a%^TG6f&BKDLSIp96;&@!=+*-xgiVWSvnFmWu%KA}h3j3#l8Pp{C&LmkI3>0^9 z+J2uk)#fR$DC2^%GOxCRQ}wm?3X5LsHob7Fa@#liPjTLlu!u>c+hFrxlniqTCEsbH zVd28-HjLeDBX%C*;1RN}&=Rhs>e^K~Wre2I4c^bmtv(cJ{4^>%$Y}Kb=QraGfoIe) zEwtT-z1Ak`z3GW7QL9;9i2gg+>}hOmwrLE;5Ro1x66XUBy!a6N$hi}Rm?N?_@{i6C9npbX;0 zHgKeFhKX}`kNr8($wfsmt{s}a*AC6XC?g65C2*ft{H~e5tfI^!e07MV2E%-MzsM@O z1ZRlOJ!NCwXDY0P3x`&RM(&RbleCt&_p;fZX)9Dm5(nBRxn=|DR+#|RcxT({544)+ zlbKjq{f%yc*WVyB23(0<(;Vq1gd7bVWaX)Ls;(__ddgFo*s3HlJG&%p(^6T(h5^-Mdh zmJg3yyXlF#FhaXZ9nDA0yq8W>FURtMn(9N3bOkghd%Q+R6Gwp->SX(|eua@I>&5m@ zWbUJcvorTw5b$WeTWX8=sSPvlRn5xEf*^;LUgAGLr?3!w4jlgX=ZF+5fCRJ*XXp;5 z-(P-6#D_kZUSNdW3L-PQ_F`VQOSg{6+T3#J82HvBh)|`CY6%64{V9Itkm&EYKM+Z+ zY{Pz~pnN>$C!6x8pWTkmgP;I}?_`vH4N->dNziOZF$Kl+0vh3g3tuS=X zumB=t=w1YPEIr5L^Ql1v))pRrcH*|0B7k(a_SI83nSlL&dMpu209pqgC>F~7ZSB-l zz@_&FM34>~o%&WoqawkqlATs9A+mN?#m+f}+uh{j&}J;RG%rAqxq=QDZjgQgw{#Gp z@fl>FpT^Va7^U;FAiv@cLFRP@8%kDVEQL7CdBhwvH9)jl_6K?e3ZEh?x*%5yWqRLkrH2!%m zBK&wck}cLcYcq&DodvvX-33n<)GI6cXo+-#m^~5gqx=t{;`|+!3%M3^QrM}sVzbd+VP8(kQ`t0p+X5mm^O%@^CH0AKm$ccgTWTs~v zV2%Tn*D?H{nBD zIi0xnllJ!Y*P8uyI^G;pH0U}`&`Q_00&`!R6m-ptrW;bpyqDlN^mS>a>v3%<8ZZA0 zO-f-lOO&B>y_;Oq89mSI(MwzO{O#`8%6o`S@d#F8+Xz%~RHC-VAK= z1s#*ERm7N8bzyxNdup;`ZedWgN2_+B2CAORyGn7-0o`S(2SV;;aIwkQ8EDYY%v3&| zX$LG&;Q{cI#KB$zk9&!fA9~bhklLLX8ypeg!HFEH2*E$9J>DH4r|55gTL;J zGTj25W8XBn8PhhC&qtZJxqXv>D>a2XQUTrPUejYL3W^#Fi%>FH4ZQO3YqUbdX0XZ3 zbJ`=BSXNQ=j3~)Dg(P*<^ai{PRWWA1G@ko>=CFinYGm$;8)wB{z-t`)fZTzQi_2kb zY9Q#S)>_BtImINQ+vTS)UJIA;Z^o# z^_P6_O49n%#$w-g-rBthrTm?G^=h}Ss;v9Bn)Uc$F1Y&m&j`4Z+@N}HJ1bu-$Rpj= z=i|$y3g+#KgZ>EFcN(Fh5iV?;sT@&n#MmQaEh|kFHl`%c?GQ%@-B9Z&(=# zYGXMJ8WP_pdzWaP{l2>2L}aPOnGft@Q^n?6+P7wXwT_lQzWnv7TmRkII}GY7-;%Q) zFN{w+!5T$H`Vre_+L|PqU51kA2aIsGUAuapP^O>gBC$d)xoh(c@3`hrc!6;7XjeFV zDYG&q@MoX75xJ+cx}6tWARcvaMO}Hht15=46o#r$?I))|O0*%p=>ascGJ|0<)!CbS zdRv>kAXdX`)|LCj)-@8&S+Zg_vmisDq%nNh2J@ZVHh8fdvDU`zzAoDE&&_(r49laC za&PZO?7Bq7i}z01PrbGT`WwIUP!$CanWwEpFBEj{pZ6j}wGELt8(HCu$&IaM*e*_sN}l zytvlxhz$hH^)X&G3#zBpjvjy&@+XGsubXLLGY284@n??xQ&T@7vNzW2hW&y`sfM%k zA(NNAb&QM{7i3abyj)lBd1pWLi9hEFt+r(-E?MIAT}37n;WFe+-L}~hP@oe;e>@;C zwLue!CgQkN@?s9Uwy~t1LlnW9u-Ou>aC2i*N$C{o08X3J5XML%p8)#N(BlQXFJ$=b ze6;|_mnH0fl>2ovDfv2Pps3->UyOs*uE`iQn+kBjdld=nNa+#pneVZIH% z{`iWU#5yH9GXHhVMX5qK^%ZB3>eUN(ZK*uT zPP0mUm%4=Jc$}6fv%3I}SMP_!`O<{!ad#yFKu(u{X57W_-j6o0v#q{ZIj3T|H5j8?P%FuiwDGA+aBTBjC2JNM?+i?;x zlwY_fXT-(n1qo!(>CGTICx6zG{KyNF3>dZlK-`C&VfzxAA9c{DNP=ljxDJe2e&=}F zqCGVfaD~6wJC%0ey^02+3wpkM!Gcae#)^MR5&v3Q8XnC7Ho)U}{zt&c2QB^?5c)rP zLC-x!5BK>WJZSkpVc>aQ6}gl5l*EH0R#{d}1A{!yA}#O}Y`_?hvYOh1Zolmrx4^wV zZ0vb^jNO43ftJ9JS#7V5_lElua{I|o0*2-Tw0Vo4k2)O_R6c}j4RJ%_G2Yn%t~u9j zV?zE?|B=41`+nn(_|FHoeq4Jpoq<_mhf_oA{-?*29B>YC zerg;O3h^BYxlI%YSWg!$`y>$IyXaavVtzryoy0z{j9QC9B?`r&lEt8lY#p!eURXgV z4I2hc=+QeQlUEVdHR`8*BPeVrh!l80Z9#Jv&bp#Am(61R?Fubw!Xcm9@mRR!sOR=Q zSLR_t?b;WOq-lF}sST?o$mg?;o!T*s;cTJi7;DEr3w%!!;j@Q6-b;6&T2g%ox<4jb z@A&=q51EKByq-+Bkn$C*Y@3lYp%!auIXu$nt(qn)+xd%{?-JG|?(!vX7r#S30hrIA zgOSJA@6+2&s|093A3uE}ynT}Z2P3uffX`Q9Zs)jZ=NKL8HiH4;6X4jU9>w;U88H^8 zrb;pc78b}h%FRuGha^Hvs?+_RrtN{S1 zc932Ly60qM*I4R(Ej$81mB4@WAhGbMadxR`Ks}nEhV=PN+I0_kwp|Fiiyh1#7;*Rn zoi5-`tTpL_1)#yDJ8wxNwk&gInEo&k%mb;7ePO4~xXiKajdO5)9{e+0rwW<N-+&4%R4?odqx@`5+eZRg_qK`ek-6P^|}v(fyKfr#Pl)|#rDiVzB8vR ztAKM!3zP%bS#`^m{Y>s*ld`KGLYdcrBW6CQRui;t-=Z*QJ!`><=R-u=<4T2m@8O-O z%S#z$*~{{Bn-}g+yU<|)63qHoX}=HS`()!%d&+w`it@VPrHhz(2wXNcwygWacVI4{b+gvGIuz7lcD@nbL4I%{Rai5nWX*x^YC%E) z!S_C*lhwdg;c`XZudExL3YivXh1s_gJ%p%weJr0!zutJv5gWd>-rQ93$o_TTGH@L$ z5D;+5kRDsNUSG1-$grK6*S>Vf>jTMx0Jz5<7<*%_!2}*r4cpZO9hOHCJqy-no*Ll# zjjIDYxa9;OkBy9l3=OIhodBD}R!bn~O5@zNR=ZYPn?=f?D_&92wdjW&ZzJ3n-L?!o z4no0Vb|d)DdT8wm%ez;od12>@^J268Y}owbsOm>>TG!bx5(k)|2)$VMZAx*~Qu3hY z#>KlnfNiLvLIegpU|iFy%i9=eUKVl zcY|15US59Kn^3F&%NM0MfVQ_pYSHu-GqO<#j};nPHK*;%xwu%M%_tG$C;pU^kXSnC zwra4twlcZ}@68;adp(r-DFH{HCzo*XI0E&vw;s2+6X=KVzWn?~g)W`u!5|4suv(}t zPg065QR4&tj|$vnHM3%7qrC|ozc4&+) z@h2uLDl*%U9ej~qP&5b?JwEMi%&gNjF@3V4q}!Lk65lGHPloR9^7Z$lAG$cIjR&t* zIWHsLowd3vN5233okO6Yj(2lh>5JkLxT$9ki6Jmfm8@pzd&KZ>3-v@ld-DV=C`Gr8*fK~HRM@LXn2vD?h@x}RL=+9$-lv-=6 z%%zvs&;kg_+uU7fYQ6Q83QBNWj?K5C{{)yg3_?PbeZu=VG>8ji_~JU>N;U4M0Z%+i zzR(AZjD;XamYL&kGp<)h+$25y@BPJQ)~wRK(&p8z7Zt=D{e->s<-V@;cdr;;Abl|IqQEob4&gCVZ)heuzP zsLhlJW0hb6J7KFtL_|%xd7JM2A+hb+UCCuA_T_UQ>DHtayhDj6B}lIVu9NYkXEB;r4Zx;l2fK(;L$x&wMU72lPJ-fgGn zyh&{lv=MSgDg?1^D&O9prxY?{rJ4+j#(5Tbx$q#%^Q>>?3- z%NW(6Nq*l*kVBn;1bYugie~QnB5bQHo>@!>?`dvRg4k;jB9}|)(exvB30ov_XWY~4i75*VZl6go zag%(Z9FQI2Z5`F??f54^q`BhFY{)-xB`Hk*nnR!eB`zxehq%c6uYvXbf3bqWIT;9} zffQ*fh=fDGThQv0e}8ZQmKPi+>!4CXO&E}k`|~b`f2e3_Y;hk7Nu+z5P_YzOHf5>( z6oBsCyZ1EAT+h4K`!XZ?bAIlm>AH)bg4dJR`ZSn66W_m+HlKuS(4SAgx_GCXy_A?( zCslX#;6cQH3hK`q<3ZoQhp-1BNyns*D&`K2OT2-^PhxMS$43GFVRakld4b-iDU#L0R#zj&4W|K$0zrRwM%Yndbp zAj{AQ!c=lf!;%{i-kIm10$~{9Lx|JG{(iLm&qJ0=C%WC(E8#-D0K&Uxan4v!y(T>* z1aS!1VE|E#%d|D@y*(0#_$^DwC!Kn1N{!5bK?Y`9fO8W%xjg?KYaG$mlvi`4-Ryt0 zwKG{FkJzc)$VG<$M|X3g2os4!&V(;~#aaDuUlM4$fXKr{V?f})ee;F@Fx|M(V?KRC z2NBtTtp>m+5O?<6tF3vG@=q*42UBO*d>pS;IbeEQGFb8?05KQ91pSb3O2uU?rKzK< zOSQPP1Og@IVV>k@oHIAEynuQnkc@_Wz+r%s6EBbeYMKN^zQ^{f{ZvN+6#&2k!~`+v zz+?%)fS$mzI{j?N^L??0UWKOC*3zh{sinvFKiwZ7Hj9Uncb2GXKTHI{ad6`TOhO)H zvxRfLVoVd@h%g_ww&%vkc%WJHYm^7nlG5py-PO0!=t#C??-0&XH|Izsu|)gJm>TtT ze*#n`p4?Y~@54WAiMirr*iAgzs`-_NC@#7zMkhzhkd@2CCpq3gQ7E_DZ+V4dq0y0I zX}+4=xBkVD;;J5pxU5Mxm7oP&E@8b=!s{QL?!3pSD_{gQ8XdX zT0On+uG4v>>xl=pjA7fazTJkI!2I*TFVt73^V^c+T&J+=GD9G0tyGpP9bqNz@aB#E zd32YLcl{<&7gC}QGcxY>ue6obSn=3vf_h=$-OKaiu_*x5KYU7+nG5RrJ(#GWu5Ro- z==`AaG%zaJq<`9(t39Q*R=rDykb^(#xvzM6Ib~ag3*v@xH_REm&JG%qB?BEV z!LcpKr@FDDp`o#{1*`%x9t#3cw?bG$P&*G0Y*@8fY7J`w>Ka@??C4b`w0pLZmkQ(v zrpho;Ii@BiAO>HUm89skL#}x|UMOYYZ^VgYm8i6|G+Cin)oh=_*U$wiIvNpg124CdynW~ zXO0$i%dlH$hpx%2$vaOYLK>qL>B1e5n45hIs^+ZX(2toR#lM%>P~^{SblLq&f))Xl zFa6L~9eZ{U_r=+iiSX`}_Jxx-7W9xDm2`?@Mp<{UM}E04!h6UyJbZyCzAJQ6*yU~3 z{wxj?{=UC>$*}uYD*<=xB@S}Lw?ImyH_0gK_>{JrXFG5t?iO^i*JY3lNZnvg&)-Gh zK=m7WC@P@b`czS|<##mdhPoBW#g&LVs~K$Riy$2@ZssY~)0(@iuOQ8r?p5B^1r*f< z`a6Mfg4We_UUg61FXVvqzT&hC-)uE3vLyADk<5 z+06<=^&sq0*}xz|me%XuR4&%@Azq8PS3{9Q^3P&2ORR1y!UQF?m?FKnS=`r4pYITCKV z?yoVUxp{ekO$+s(nN@%^(hFVP>D)Yp%k6_N(y|zR7Pn2gff~WJrqkA>X|4~c!7{BF z@}}6ezQ8=#$VO?UbtEL-e&+Cg-HmNT>{!fk0z|DAKFYH*bi(T4V9tuu+fF%NGZOw;>t?+2<^}eV#Lwlp^^99Z8(Xc6sUG?K#pG%f>Lp(G# z{_c+)!*^1S?m|~bWp!%?L8LJ54bHIYtFw*HVtVolgjj;d_T%yyTaoikdx3f9ssdou z;V^SV$mtfCOb5~~lGdHv!lMz+RM-bcZLaganD%=3q#xp13|2De!nv*|ez1Pl0PG_v ztjqj6%Rq-m^%Kh;a~DI_7bsMpCe=%ok+0|eq1}SrPyJ3cdg46v#<^iW$24yim)=rr z0%==O_RIzk{Ko~RW{}nPmfKp(WAc6u*}j&91$^VaT}(oQ@mqx!RLdB7U77yK5(Z>K+=QP=6O*(#_!^0zGp%Ljt;*(D{s z)=srpp>g03qa_XxNz4DU_tt#GzA)Gqy9qpi)Y0ER+BX$gwveiuJ8>8e&{t zqJqyMXhGhY7bI;TAINhaT^@sdtju=u9^VxUN#i}?u_O6&{|T=bySi+nV$5|UGwuF7 zSE9XK@K=hmh#u8vi1<))d8>R+b<6Hnl!Ul-+aEM)1hKv|)ovu{)yaL{c9@7RPi<}O z18TIlT#i(!vE8oU@jj{Ryk1&22|bZdzglS>>4+(wq{t@Sy1&N~{U9Vj{VUvW7;W+()P9W)bhke!rcJIA5K1p0epw%pAWVm+hydq%>Ak zP(Xz!ApOCTb8wK0U2STdji&Z~{00+yF}>h~@tx5dmT|-WOnLx#AnA)|jJs!R)iwSYUCmIXnj|J-DDdy46#RJSHJI| zcQS#^d$RQP-kN)4D9z;~&ZwZ_;kJX)E)EpF>6wiV-Gt<$dA(%Wr+Ti#VD(mdyKi>A zIDmzQUT^1mJ2;cb+szV|f1FI*#-%`@#Y1g*+vil-0*RtsvJN)z;oS116KrcHQeY_R{M`l z&Yfp&2VG*SEspZ&=?J&R?Rf2?g|ldq38Yn1Y2DQjc9902YNWN%v+)y5An4WP&v(^= zpH4q<;{k8d_c}$HsGhfrm?~(^j1$b)u>}`H*}4W6A#IvO(=5+=RuHV+Oop0-`23nL zxxvn3aacteK+#V_UDQT7KxET=7WK8Df5$plF&IwL#;=Dmra|?lyQ*0?d;fX+*>9PH>)RbEMVBHTZ!rHr`s_>Q zG}i_<7*ub(#-wQQ0aznb)*9##&sO5^6Cyw z|EWfd=r$m@hu#n8IuQtr$K(KhQMb^1A$zG((F4Hq1@h)(77Gg8b8dWfgzaA|O zFh5@9E$5Fj+iKoh+2C@Xrc7_6J0KDx4_O-z^!0pb-Nh#0TpyNh<$izRqm*vdNeIn` zOP9~=p)qfnE{wW+4lCz74P+>{`mX-RW&Tl>V0PFPRsT`Wr;oT74Mo4dnnz&DQ$SIl z@u2yzk%qRWsV^o5zVnBM(c$Pm`2wy>ck&sg6#BYl;`(wqr+`t~>jhOOs|yL_p~G|Y z`C1p#V*9JBTc$00ZouE)N5`4Du$+8t%E%*zxI>ygM25N2bNgm^oUH^ykGV#S%?C}?L?HinL!yk>k$Z(8h!^Wc3~i2z&@rguH$)!W`K z_7@^dH#!yCvz<IH;NkVSbw=H6_9XCND#WI4Y5{c&UTN+V4oH9Wh+ z!oo)UnT*{Zb50^(%aUZz^eB{p9|4G9g2W>?Az;Uz!NJLi`{DYnJbnxDW;i(Xv$V2O z?0W`ue&P(=*S@MvgsWIm&zb4nIypN{Ljo z60QJreU5%)f`>=9y{sNy@(X5a7su8I}7nndF{KBVhiu3tlyE*b22O|xABAF_G%OHAiA``xA~ z-{D6MA3p-^!}^b0cYzhf%1o_2(q<@!UQfB<8`sysPL1h(B5z$ScInwC78-c<21oe( z4P=|ofWl4?p&8}C5V!h)X(x;}JRF-#-Vv&??la7jpN5vqy8GJ@F@Xch_z-Wlb5$P= z@u=|nCu5sY65*P07Df~#x^YI`Rul?PB9v}-J%U+``G;C4&l!{7?%emfQ_$GOSGxPgI7!Yn81{1vU z3i?Tmn=V5T9`B%f>e-%O;^jFZ$hB++hb!>ckn>UExz-pJ0B?r`sf@UZUT6?b=&Cs* zm{BWIbgsJQoHQPDrO4yN5zy;;V%|Q)+$b~)+wf%;+PmD7xfPr;ECecj(1#C3l1pfI znyh9-kFWN-0t0Fi4I`T1LILv{lA<*hZ3ypEWzS%x-|s1&=C>JvKZGy0E(hD{u7=(P zi8&MG7;Lq!4x7I&HK5KGtGru+X+w57e{6p-R3uQoMmHUGlWM=BAg=M-ybS>Sx zEPX!gFr1!}g*%a+h@~*$hE{C*P==BN1k|(O@87={=H*q3cw&m7`W2z5hzk@^W4YLi zc*70@=qX?EB+KkGb9!Kj#)+turX6=2w9OK+Fa7@^TXO_mi)5<9hcb-4;|M0Kx5@t zG$(D=-8bPyaREB~HpbkfGUOXQci9V`?C*0Dt-Dy|kCSPKmxR?#sN^qJ4BWKR&oyuK zJN=Ms*IW*n_UgF2(Xk7mdDn@PDS$v};XbmRX*OXG<Y+1Ybvr9}v9#>!m7;W)G)5{QKaqj%6 z!$&(e_BLdArGE4I2z=?@<5m?qg)f|M8>|yWOsYMNCd9}wSYOr&d6^DGHiSeGM@jRr z0Rz(ihjw&gU!Ns~dti6OH!fF6mAc-b+QNgXDGd^8a^Z}Y8)PI8I{whc&|VJqM4F0P z>4}bQY)cqi#qk&4ZYH1Ai1Kzh?@USMaE%|jfj=CID8?!7CZ32Kt1Dwe(~3UaD*nf+ z9;*OXQaQS!m~kO8FD*WI>5lCVDwM(8Yie|#i3gM?0qLk}?rT&&=UQ^f4*@ZdbSHxv+FgC-sm=lyHn;V{>=K z>6Xw;N!9NoT5P%2vm*AlFF$_j&vUWYlljO%(^Apq3+KXSUat0-CwNXP7M!f-BEk{= z^+$_Ox>@#xx9QZRj`UaSYO1Ne>6BYWwZ)u8AR|V%^1q(ae!X+TwHy2g?^$Z+ z>m`F4GB->9SJtDmiWMYQigQ+o33mQ0Thzdwij>hmbgXA0&c;dSHT zvcg$(+~{SCqlyaq`}r;WES#3P<-DF3Ri7RR8`#puz8i=(WvH^lDm+i0?@}>mUq@n2 z=DxRXJ`8U;(TSTD7!oA58xebNK<$C6vOZgXP8?0QR!8Q=NY@Yz2T6^cEA zVANr4_=1dMbXs_!QBF*u%)hcqor;tBdMdu%8IGI4dT=JD!-<_aW+?HgayRW!v;OC- zV%8cs>`DpYA(n75Z#i5w<35$xO8c(I85v$z&gcL9*qhl;+|f=RrGW zd08~IMhjEY+e6(tSq#ER> zN*czn`{6MJY0Hb~SADOXIWL40nEkZ*T`{?KT)GuKNdw1)vzua!Z|Y&VzfD-fvGM(b z1bXrv4R&p;rgr*Z=V;#N*7LquR!@j6&hxMvs+uZpfoH!kt@l^Y-c20Y{dqreUFJip zSo_f2Y(x|qUiXJ=6}|~yKe8|sTU+hhpO)03g;SB2dDH^uTR*uj-W^9Ke8y6m7XYq} z?;H3YTM@2Iv%VcW7u1+})IM?^M{tWooMH=u3FzmSs>#j<* zrmWjOrCy_ef08y=sb=9bt|K@Q(!Tfo4a1p5W$U=fz{I`0;IMIyo0s7v(m$qyMB{R~ z__Q4PS~83owy~eorAl+L@Y6@6TZJlqaV{39T{|P)KdEz8K~qw6Xc+1b@>!OwWrE!qdg_4s<`==c)^rQx|L4%R{~pl5mBNpOnd8~n*!TlyCJ<>JZ%H>$ zRc#K-i{>!MC`a>*SJIk%UZ}_TOusSw<9{pb%EO`T{{D>_*^&|w5kmHz zlmbG$TlOUn*+P`8Nysvm_wak)>w2&2H-F9C z*L|P+oHO@*&iQ^mpY!=*KzYW%O-d6D?h$6J1wW#gebEBTq#lGl{+wG-5NqeRbsfqr zmZU&k6qx0PsLf36!I{qLv~!-Y(+Ycm%bOEHWkVnWG<7+I6KvJgU3|kL06}5@j<;ua!K$31 zIbm?6(nNKXeVbaBO>Gsq)R=##t-YNm|0b1L0VTFJ&A1pr0ml@jl+wP1A(zHChezGTW=&X5(b-T2Y>sy4WqM&N1?Z z!PHV||I-7NA=@4)CRtBFOLjGo>?7=!gpit7W@G9zv3lVSkwu@1T4u&3Bg3t%gw-GE zn1v)uQyDTv1!oRlJgDjs+z2cbClwL*hv6IC5lipR?1sMn*_N);Bq5jmcyEsr!WG*k z0{Ysf2S5;g!#D~E_a;dT>Mr8iBc{>0cNl6MfnjjSUyej#jyZd`@WDHy>+8*lemoYL3EYdeind0e3E>t-F{* z3xgoT4tpnti2kn&q?$9p7|wk^5`@(eT8lU1t*W$93YVo>09P7LYA3q(LJ;TH-n+E9 zg9H944}u<=;Ci?8D6AvCWPek2R_3Hc&j}$2a(V`>LXCjHh3qS~UgJ*t0*No8fIL4h ztgKaV9*6!EqWE9xykgtP!nrAnm!Ct?Z^6J;F;CugKN4hchzQq$Q}bD3jm=YYIgHJ$ z#=zVCyZb1abopO`*#3Ndn`-Ucwb-#CKC1m6f(siB^wdtxBdDtzz9LO_CR7jlL`CbC z*Kcf%TE%mav9HeMioHg6y4j|{BPMB_r@l7to?+u8?n()t#3x+^!d zAegUj5i;jX183k6z@3VBM{6a2zI0%>3?k zg)dS65BnIa-{gTv8{BdpQr$h5mgdo|X9u2E+;A6=1@K#~byc&aV<)7cKm;8mas};h z^M#N1biC?p!IFTIX)_-LF%;g>R5SG-+1)s}7P+1Mg@j-pv)QCqEo8sA;CBtPLxJe& zjq-ZFgTK0Bkg~;4oPEg2uKhJMj^wBipsg6^2E;&!9#jz%`WV@=ox^T~6WHU%9 z3^PJkizD^iQn@Yh!`t&RwPlF|d-~>x5#DlkRCZS}=8M<4%Xb^D7)>F&gEN@+(Jn`0a29EZ0>Q=afV9p2+T z(;p5VA=Vz%`yX?pEIJp1fwbNS^c%<$@wB3?{4*~{cdCB3CD@(!b*&c7a5bn@c}5&o zRZbFpSGaL$fw{c($K>CMJ(H+ow)S={+;YifmFz@KatZn^&vaR)vFAjJuHQoMR}FQt zZGb*Hh*Fqrp*Q)ei)vO3nmog(`8~?|Hg3vSmHv<|`OZ})8krn+7xATZm|AC^4t0`M z@h^{vFf(5mIta_Rk>Z~E@{iJ-4~#|2P&O-th!dI~Id^=pVo^R8@^pMos=`8A`C$H7 zYqR2M`3<&Gy)n1K=>_*;@5vOg8|P_ei*ZZrMBS-$EC}3~pFm!dm0D$8vKmD1ABLGU zu-OGpkUrau&+$f)`w4;LmjKS819INGGrCKw<3Y$d%_+PKJ+;cQk~9Lz-zMMj?vZw7 z@PzD_ElO2vAC@$rk~oP+kUW_M-}?VS+~3CCeSod3v;yq$Y@^}8uGR(Fg2&*;b&-s} zKRc)A9Uqa6uv-~`HzEbwLBCn%iq{g% zRL~!acb=$rad5J)adl{a&S7FMPtPo%6f<7+CZn)cPJ|vsF$T9^DKK_QGFzk}NHCaO zH5K-2l2uU12a_GUOR3iq6@(Q`#i82Pcjjdy)9fAOYq7Z5+62mkom*ZXT(2b`iafO6bD6bU5)H3sOG}V5vl!U$gwa-Z~njuM|Lj z{nev_hjbwk7IU_Yuphc0I)j-Gm3KHo`2CZ8qO6(&X5dytE&z0JIIS5J-1>Jq*FCi| z;`Vbtzq=WfIe>7^z9OUj8HGSZ$v8Jho%fT*0x_%2@wk-JI|I^yxR{Gsgi6YEm<)iM zx8`q&vFGG;u>@e5zR0)b;=pE6J>(ucP9e$({y9rBNsM{#Y+$d|^-}ZZ% zLDnC}HS6nfIXHDF;Z_vn<(G&1dC8rYydWdV<3lMYuGi9VJL?aza7rDY&A!Cw7epUD zTlmY66DjRN2DeQ3zKuaR(IgdPM9mmAMk!RQ)M)3Wxb+?t*G{>Ll;WqiHa2D|CQnUL z#;WctkO%km|RFer$PVLt%LzTLHpWaO0*57VGgZ_ zxJWw5HdDq-?{H}A)dhj&$$o4vF7?kgmX(5*ij|vtpjRHP9S)`bnGSVW=dkM;RFH0{ zPSTPI*4DV5@yPm0y9+hYvPIdT=lvT~11gEyUwZ*`w!z<7Tx+Z;qEM094V7AGBv4y{%ng!NFDw_jdL_e2ZOLM(PLdA5 zva`sd%(W$|P~G6LsM(`tc|ist6QZ>bTKh5h3$0MAOS{{M)6l0Ng?>iy_VhbY$rgUJI;NWzHJwL73PDKGXkNTI$ z)PdeyuHC`;zK3l3})s7uUtdXQ( zw!r7IlO{3R!?oP!I#2>4=Ee3T_rqZ}Ycu$t0D;od;NDYf`{D2S=JSFHey;`I^u0J+$=)LW@DiA((aS)5-Fw$E6W zcw38xuo^3U(4fzCUeVz~9|ks20i>?T{n4Q8`+Z)ZmxB{D9{)2lSy$1+*5?QYNc-NA zQtBZ~D(ic{V=p4}P(VTG^elw6d`+qjx`U7Swt=eq3X&{qY*+XW*tIcnQeA>1ifpidug z*F)xmI(IAcui#+%g9vnWep(CYEaxPj+vGG@u0@$`o$c?#S-z@rFs7!~U8tjN_GwL2 zkGv`#7UHb>pdXL-%xEBM{JSHp2~K&he> z|0K&IUp|55x{)-2@!~6nM*#uy(Bj10dCV4rY4t71yP@lZK~~k~OLk#AW_E3oLBH%F zCiZf1Cs}%MnWM}RFZoQH>p}jPC+^FPRM4=P=Z^HQe|OO56UpS$`^ zDV!!pNs7iU`0`)b*~LVB;~c%%D_TP>w=AhVQ6AZvY39RjLh^MExO0~KaWIk&8*N-K z^59n&^V44?|D24(+h2wnL_>ux1oZI*AxJ$y7Rh>$SBcM4v|JjBBnL`i7u zhL5}v`xv)ejPT3!g_hmz0b!wDk%q^twF1NV5N$(p=jYAIr(TL|8hjS76%F*#9b>)f#ns+^=kBb1ekAWZeZ7Fm8 zc&3hggDAVT;kCWIG;=HP)3CIRg4;HjzYxPHQ(loumnc^+A_RhAJBw2Q#9z(CH?^|K&}SWuB2}+5iQ{F zs3_S~c>y?ahaK>F_ybkl?r2LC{sM+R?;-}kAH(?%e1Ie4!}vxO|LevkPh_FmH&k{H z*&jY$^S<%dV*&cz&`!t&@Q>+m9+|e@BELFFU{2z4c9s2+P diff --git a/icons/mob/underwear.dmi b/icons/mob/underwear.dmi new file mode 100644 index 0000000000000000000000000000000000000000..5c303cbf642fffb2402895328c32221b94219806 GIT binary patch literal 33606 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 F{{cx2m?8iG literal 0 HcmV?d00001 From 0df0c39452a083eaa75292e4f8410dc5956b6ad3 Mon Sep 17 00:00:00 2001 From: Markolie Date: Sat, 15 Aug 2015 18:18:26 +0200 Subject: [PATCH 02/89] Spawn panel improvements --- code/modules/admin/create_object.dm | 27 ++++------ code/modules/admin/topic.dm | 82 ++++++++++++----------------- html/create_object.html | 13 ++--- 3 files changed, 53 insertions(+), 69 deletions(-) diff --git a/code/modules/admin/create_object.dm b/code/modules/admin/create_object.dm index 5b5ee047852..ead589613fd 100644 --- a/code/modules/admin/create_object.dm +++ b/code/modules/admin/create_object.dm @@ -1,4 +1,5 @@ -/var/create_object_html = null +var/create_object_html = null +var/list/create_object_forms = list(/obj, /obj/structure, /obj/machinery, /obj/effect, /obj/item, /obj/mecha, /obj/item/weapon, /obj/item/clothing, /obj/item/stack, /obj/item/device, /obj/item/weapon/reagent_containers, /obj/item/weapon/gun) /datum/admins/proc/create_object(var/mob/user) if (!create_object_html) @@ -9,20 +10,14 @@ user << browse(replacetext(create_object_html, "/* ref src */", "\ref[src]"), "window=create_object;size=425x475") +/datum/admins/proc/quick_create_object(mob/user) + var/path = input("Select the path of the object you wish to create.", "Path", /obj) in create_object_forms + var/html_form = create_object_forms[path] -/datum/admins/proc/quick_create_object(var/mob/user) + if (!html_form) + var/objectjs = list2text(typesof(path), ";") + html_form = file2text('html/create_object.html') + html_form = replacetext(html_form, "null /* object types */", "\"[objectjs]\"") + create_object_forms[path] = html_form - var/quick_create_object_html = null - var/pathtext = null - - pathtext = input("Select the path of the object you wish to create.", "Path", "/obj") in list("/obj","/obj/structure","/obj/item","/obj/item/weapon","/obj/item/clothing","/obj/machinery","/obj/mecha") - - var path = text2path(pathtext) - - if (!quick_create_object_html) - var/objectjs = null - objectjs = list2text(typesof(path), ";") - quick_create_object_html = file2text('html/create_object.html') - quick_create_object_html = replacetext(quick_create_object_html, "null /* object types */", "\"[objectjs]\"") - - user << browse(replacetext(quick_create_object_html, "/* ref src */", "\ref[src]"), "window=quick_create_object;size=425x475") \ No newline at end of file + user << browse(replacetext(html_form, "/* ref src */", "\ref[src]"), "window=qco[path];size=425x475") \ No newline at end of file diff --git a/code/modules/admin/topic.dm b/code/modules/admin/topic.dm index a0ce958a5f4..8c2cb8d1014 100644 --- a/code/modules/admin/topic.dm +++ b/code/modules/admin/topic.dm @@ -1935,28 +1935,13 @@ dirty_paths = href_list["object_list"] var/paths = list() - var/removed_paths = list() for(var/dirty_path in dirty_paths) var/path = text2path(dirty_path) if(!path) - removed_paths += dirty_path continue else if(!ispath(path, /obj) && !ispath(path, /turf) && !ispath(path, /mob)) - removed_paths += dirty_path continue - else if(ispath(path, /obj/item/weapon/gun/energy/pulse_rifle)) - if(!check_rights((R_SERVER|R_EVENT),0)) - removed_paths += dirty_path - continue - else if(ispath(path, /obj/item/weapon/melee/energy/blade))//Not an item one should be able to spawn./N - if(!check_rights((R_SERVER|R_EVENT),0)) - removed_paths += dirty_path - continue - else if(ispath(path, /obj/effect/anomaly/bhole)) - if(!check_rights((R_SERVER|R_EVENT),0)) - removed_paths += dirty_path - continue paths += path if(!paths) @@ -1965,8 +1950,6 @@ if(length(paths) > 5) alert("Select fewer object types, (max 5)") return - else if(length(removed_paths)) - alert("Removed:\n" + list2text(removed_paths, "\n")) var/list/offset = text2list(href_list["offset"],",") var/number = dd_range(1, 100, text2num(href_list["object_count"])) @@ -1978,41 +1961,36 @@ if(!obj_dir || !(obj_dir in list(1,2,4,8,5,6,9,10))) obj_dir = 2 var/obj_name = sanitize(href_list["object_name"]) + + + var/atom/target //Where the object will be spawned var/where = href_list["object_where"] if (!( where in list("onfloor","inhand","inmarked") )) where = "onfloor" - if( where == "inhand" ) - usr << "Support for inhand not available yet. Will spawn on floor." - where = "onfloor" - if ( where == "inhand" ) //Can only give when human or monkey - if ( !( ishuman(usr) ) ) - usr << "Can only spawn in hand when you're a human or a monkey." - where = "onfloor" - else if ( usr.get_active_hand() ) - usr << "Your active hand is full. Spawning on floor." - where = "onfloor" + switch(where) + if("inhand") + if (!iscarbon(usr) && !isrobot(usr)) + usr << "Can only spawn in hand when you're a carbon mob or cyborg." + where = "onfloor" + target = usr - if ( where == "inmarked" ) - if ( !marked_datum ) - usr << "You don't have any object marked. Abandoning spawn." - return - else - if ( !istype(marked_datum,/atom) ) - usr << "The object you have marked cannot be used as a target. Target must be of type /atom. Abandoning spawn." - return - - var/atom/target //Where the object will be spawned - switch ( where ) - if ( "onfloor" ) - switch (href_list["offset_type"]) + if("onfloor") + switch(href_list["offset_type"]) if ("absolute") target = locate(0 + X,0 + Y,0 + Z) if ("relative") target = locate(loc.x + X,loc.y + Y,loc.z + Z) - if ( "inmarked" ) - target = marked_datum + if("inmarked") + if(!marked_datum) + usr << "You don't have any object marked. Abandoning spawn." + return + else if(!istype(marked_datum,/atom)) + usr << "The object you have marked cannot be used as a target. Target must be of type /atom. Abandoning spawn." + return + else + target = marked_datum if(target) for (var/path in paths) @@ -2020,9 +1998,8 @@ if(path in typesof(/turf)) var/turf/O = target var/turf/N = O.ChangeTurf(path) - if(N) - if(obj_name) - N.name = obj_name + if(N && obj_name) + N.name = obj_name else var/atom/O = new path(target) if(O) @@ -2032,18 +2009,29 @@ if(istype(O,/mob)) var/mob/M = O M.real_name = obj_name + if(where == "inhand" && isliving(usr) && istype(O, /obj/item)) + var/mob/living/L = usr + var/obj/item/I = O + L.put_in_hands(I) + if(isrobot(L)) + var/mob/living/silicon/robot/R = L + if(R.module) + R.module.modules += I + I.loc = R.module + R.module.rebuild() + R.activate_module(I) if (number == 1) log_admin("[key_name(usr)] created a [english_list(paths)]") for(var/path in paths) if(ispath(path, /mob)) - message_admins("[key_name_admin(usr)] created a [english_list(paths)]", 1) + message_admins("[key_name_admin(usr)] created a [english_list(paths)]") break else log_admin("[key_name(usr)] created [number]ea [english_list(paths)]") for(var/path in paths) if(ispath(path, /mob)) - message_admins("[key_name_admin(usr)] created [number]ea [english_list(paths)]", 1) + message_admins("[key_name_admin(usr)] created [number]ea [english_list(paths)]") break return diff --git a/html/create_object.html b/html/create_object.html index a1f115b7839..ac47cc7769b 100644 --- a/html/create_object.html +++ b/html/create_object.html @@ -27,7 +27,7 @@
- Type
+ Type
Offset: A @@ -39,12 +39,12 @@ Where:


- +
+{{if data.screen == 0}} + {{for data.mechas}} +
+
+

{{:value.name}}

+

Information

+
+ Pilot: +
+
+ {{:value.pilot}} +
+
+ Integrity: +
+
+ {{:value.integrity}}% +
+
+ Location: +
+
+ {{:value.location}} +
+
+ Airtank: +
+
+ {{:value.airtank}}kPa +
+
+ Active Equipment: +
+
+ {{:value.equipment}} +
+ {{if value.hascargo}} +
+ Cargo Used: +
+
+ {{:value.cargo}}% +
+ {{/if}} + +

Power Cell

+ {{if value.cell}} + + Rating: + + + {{:value.cell_capacity}} + + {{:helper.displayBar(value.cell_percentage, 0, 100, (value.cell_percentage >= 50) ? 'good' : (value.cell_percentage >= 25) ? 'average' : 'bad')}} + {{:value.cell_percentage}}% + {{else}} + Not Installed + {{:helper.displayBar(100, 0, 100, 'bad')}} + {{/if}} + + +

Actions

+ {{:helper.link('Send Message', 'mail-closed', {'send_message' : value.reference})}} + {{:helper.link('Exosuit Log', 'search', {'get_log' : value.reference})}} + {{:helper.link('EMP Pulse', 'alert', {'shock' : value.reference}, null, 'redButton')}} +
+ {{empty}} +
+

No mecha trackers were found.

+
+ {{/for}} +{{else}} +
+ {{:helper.link('Return', 'close', {'return' : 1})}} +
+ {{:data.log}} +{{/if}} \ No newline at end of file diff --git a/nano/templates/pod_tracking.tmpl b/nano/templates/pod_tracking.tmpl index 71d96c312cb..4fd68df82f9 100644 --- a/nano/templates/pod_tracking.tmpl +++ b/nano/templates/pod_tracking.tmpl @@ -16,17 +16,18 @@ h3 {
{{:helper.link('Refresh', 'refresh', {'refresh' : 1})}}

Pods

{{for data.pods}} -
-
-

{{:value.name}}

-
Pilot
-
{{:value.occupant}}
-
Passenger
-
{{:value.occupant2}}
-
Coordinates
-
{{:value.x}}, {{:value.y}}, {{:value.z}}
-
+
+
+

{{:value.name}}

+
Pilot
+
{{:value.occupant}}
+
Passenger
+
{{:value.occupant2}}
+
Coordinates
+
{{:value.x}}, {{:value.y}}, {{:value.z}}
{{empty}} -
No pod trackers detected!
+
+

No pod trackers were found.

+
{{/for}} \ No newline at end of file diff --git a/nano/templates/robot_control.tmpl b/nano/templates/robot_control.tmpl index 61c5464ad2f..2e5e892e0e8 100644 --- a/nano/templates/robot_control.tmpl +++ b/nano/templates/robot_control.tmpl @@ -64,11 +64,10 @@ {{:value.cell_capacity}} {{:helper.displayBar(value.cell_percentage, 0, 100, (value.cell_percentage >= 50) ? 'good' : (value.cell_percentage >= 25) ? 'average' : 'bad')}} - {{:value.cell_percentage}} % + {{:value.cell_percentage}}% {{else}} Not Installed {{:helper.displayBar(100, 0, 100, 'bad')}} - N/A % {{/if}}

Actions

{{if value.status == "Operational"}} From 4b3b9f57b0da2faa042502859f44f844e670eb0e Mon Sep 17 00:00:00 2001 From: Markolie Date: Wed, 19 Aug 2015 01:30:35 +0200 Subject: [PATCH 65/89] Remove NO_POISON from golem/shadow --- code/modules/mob/living/carbon/human/species/golem.dm | 2 +- code/modules/mob/living/carbon/human/species/shadow.dm | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/code/modules/mob/living/carbon/human/species/golem.dm b/code/modules/mob/living/carbon/human/species/golem.dm index 168b1541392..9c5a9ef851e 100644 --- a/code/modules/mob/living/carbon/human/species/golem.dm +++ b/code/modules/mob/living/carbon/human/species/golem.dm @@ -6,7 +6,7 @@ deform = 'icons/mob/human_races/r_golem.dmi' default_language = "Galactic Common" - flags = NO_BREATHE | NO_PAIN | NO_BLOOD | NO_SCAN | NO_POISON + flags = NO_BREATHE | NO_PAIN | NO_BLOOD | NO_SCAN dietflags = DIET_OMNI //golems can eat anything because they are magic or something reagent_tag = PROCESS_ORG diff --git a/code/modules/mob/living/carbon/human/species/shadow.dm b/code/modules/mob/living/carbon/human/species/shadow.dm index c173a2dd231..3e888c026f8 100644 --- a/code/modules/mob/living/carbon/human/species/shadow.dm +++ b/code/modules/mob/living/carbon/human/species/shadow.dm @@ -17,7 +17,7 @@ "brain" = /obj/item/organ/brain ) - flags = NO_BLOOD | NO_BREATHE | NO_SCAN | NO_POISON + flags = NO_BLOOD | NO_BREATHE | NO_SCAN bodyflags = FEET_NOSLIP dietflags = DIET_OMNI //the mutation process allowed you to now digest all foods regardless of initial race reagent_tag = PROCESS_ORG From 23071b580661fa6f7860bec5f613a14e5782adec Mon Sep 17 00:00:00 2001 From: Markolie Date: Wed, 19 Aug 2015 02:24:42 +0200 Subject: [PATCH 66/89] NanoUI AI fixer --- code/game/machinery/computer/aifixer.dm | 87 +++++++++++++------------ nano/templates/ai_fixer.tmpl | 63 ++++++++++++++++++ 2 files changed, 109 insertions(+), 41 deletions(-) create mode 100644 nano/templates/ai_fixer.tmpl diff --git a/code/game/machinery/computer/aifixer.dm b/code/game/machinery/computer/aifixer.dm index 20d715a3a0e..a7dd1874424 100644 --- a/code/game/machinery/computer/aifixer.dm +++ b/code/game/machinery/computer/aifixer.dm @@ -21,57 +21,52 @@ ..() /obj/machinery/computer/aifixer/attack_ai(var/mob/user as mob) - return interact(user) + ui_interact(user) /obj/machinery/computer/aifixer/attack_hand(var/mob/user as mob) - if(..()) - return + ui_interact(user) + +/obj/machinery/computer/aifixer/ui_interact(mob/user, ui_key = "main", var/datum/nanoui/ui = null, var/force_open = 1) + var/data[0] + if(occupant) + data["occupant"] = occupant.name + data["reference"] = "\ref[occupant]" + data["integrity"] = (occupant.health+100)/2 + data["stat"] = occupant.stat + data["active"] = active + data["wireless"] = occupant.control_disabled + data["radio"] = occupant.aiRadio.disabledAi + data["zeroth"] = occupant.laws.zeroth - interact(user) - -/obj/machinery/computer/aifixer/interact(mob/user) - var/dat = "

AI System Integrity Restorer



" - - if (src.occupant) - var/laws - dat += "Stored AI: [src.occupant.name]
System integrity: [(src.occupant.health+100)/2]%
" - - if (src.occupant.laws.zeroth) - laws += "0: [src.occupant.laws.zeroth]
" - + var/laws[0] var/number = 1 - for (var/index = 1, index <= src.occupant.laws.inherent.len, index++) - var/law = src.occupant.laws.inherent[index] - if (length(law) > 0) - laws += "[number]: [law]
" + for (var/index = 1, index <= occupant.laws.inherent.len, index++) + var/law = occupant.laws.inherent[index] + if(length(law) > 0) + laws.Add(list(list("law" = law, "number" = number))) number++ - for (var/index = 1, index <= src.occupant.laws.supplied.len, index++) - var/law = src.occupant.laws.supplied[index] + for (var/index = 1, index <= occupant.laws.supplied.len, index++) + var/law = occupant.laws.supplied[index] if (length(law) > 0) - laws += "[number]: [law]
" - number++ + laws += "[number]: [law]
" + number++ + + data["laws"] = laws + + ui = nanomanager.try_update_ui(user, src, ui_key, ui, data, force_open) - dat += "Laws:
[laws]
" - - if (src.occupant.stat == 2) - dat += "AI nonfunctional" - else - dat += "AI functional" - if (!src.active) - dat += {"

Begin Reconstruction"} - else - dat += "

Reconstruction in process, please wait.
" - dat += {" Close"} - - user << browse(dat, "window=computer;size=400x500") - onclose(user, "computer") - return + if (!ui) + ui = new(user, src, ui_key, "ai_fixer.tmpl", "AI System Integrity Restorer", 550, 500) + ui.set_initial_data(data) + ui.open() + ui.set_auto_update(1) /obj/machinery/computer/aifixer/Topic(href, href_list) if(..()) return 1 - if (href_list["fix"]) + + if(href_list["fix"]) src.active = 1 while (src.occupant.health < 100) src.occupant.adjustOxyLoss(-1) @@ -84,11 +79,21 @@ src.occupant.lying = 0 dead_mob_list -= src.occupant living_mob_list += src.occupant - src.updateUsrDialog() sleep(10) src.active = 0 src.add_fingerprint(usr) - src.updateUsrDialog() + + if(href_list["wireless"]) + var/wireless = text2num(href_list["wireless"]) + if(wireless == 0 || wireless == 1) + occupant.control_disabled = wireless + + if(href_list["radio"]) + var/radio = text2num(href_list["radio"]) + if(radio == 0 || radio == 1) + occupant.aiRadio.disabledAi = radio + + nanomanager.update_uis(src) update_icon() return diff --git a/nano/templates/ai_fixer.tmpl b/nano/templates/ai_fixer.tmpl new file mode 100644 index 00000000000..4e88dc45c91 --- /dev/null +++ b/nano/templates/ai_fixer.tmpl @@ -0,0 +1,63 @@ + +{{if data.occupant}} +
+

Stored AI: {{:data.occupant}}

+

Information

+
+ Integrity +
+
+ {{:data.integrity}}% +
+
+ Status +
+
+ {{if data.stat == 2}} + Non-functional + {{else}} + Functional + {{/if}} +
+
+ Wireless Activity +
+
+ {{:helper.link('Enabled','check',{'wireless' : 0},data.wireless == 0 ? 'selected' : '')}} + {{:helper.link('Disabled','close',{'wireless' : 1},data.wireless == 1 ? 'selected' : '')}} +
+
+ Subspace Transceiver +
+
+ {{:helper.link('Enabled','check',{'radio' : 0},data.radio == 0 ? 'selected' : '')}} + {{:helper.link('Disabled','close',{'radio' : 1},data.radio == 1 ? 'selected' : '')}} +
+

Laws

+ {{if data.zeroth}} + 0: {{:data.zeroth}}
+ {{/if}} + {{for data.laws}} + {{:value.number}}: {{:value.law}}
+ {{empty}} + {{if !data.zeroth}} + No laws detected! + {{/if}} + {{/for}} + +

Actions

+ {{if data.active}} + Reconstruction in progress, please wait. + {{:helper.displayBar(data.integrity, 0, 100, (data.integrity >= 75) ? 'good' : (data.integrity >= 25) ? 'average' : 'bad')}} + {{:data.integrity}}% + {{/if}} +
+ {{:helper.link('Reconstruct', 'wrench', {'fix' : 1}, data.active || data.integrity >= 100 ? 'disabled' : '')}} +
+
+{{else}} +

No artificial intelligence detected.

+{{/if}} \ No newline at end of file From 5bdfbee22b3e59b0ae4fa29796d131da0c091e78 Mon Sep 17 00:00:00 2001 From: Spacemanspark Date: Tue, 18 Aug 2015 19:45:12 -0500 Subject: [PATCH 67/89] Halves the sound of the owl and griffin toys. Oh you no rike grorious sounds? Ding dong bannu! --- code/game/objects/items/toys.dm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/code/game/objects/items/toys.dm b/code/game/objects/items/toys.dm index 7e8a8e66f9d..9b7888c9bcb 100644 --- a/code/game/objects/items/toys.dm +++ b/code/game/objects/items/toys.dm @@ -1183,7 +1183,7 @@ obj/item/toy/cards/deck/syndicate/black if(!cooldown) //for the sanity of everyone var/message = pick("You won't get away this time, Griffin!", "Stop right there, criminal!", "Hoot! Hoot!", "I am the night!") user << "You pull the string on the [src]." - playsound(user, 'sound/misc/hoot.ogg', 50, 1) + playsound(user, 'sound/misc/hoot.ogg', 25, 1) src.loc.visible_message("\icon[src] [message]") cooldown = 1 spawn(30) cooldown = 0 @@ -1202,7 +1202,7 @@ obj/item/toy/cards/deck/syndicate/black if(!cooldown) //for the sanity of everyone var/message = pick("You can't stop me, Owl!", "My plan is flawless! The vault is mine!", "Caaaawwww!", "You will never catch me!") user << "You pull the string on the [src]." - playsound(user, 'sound/misc/caw.ogg', 50, 1) + playsound(user, 'sound/misc/caw.ogg', 25, 1) src.loc.visible_message("\icon[src] [message]") cooldown = 1 spawn(30) cooldown = 0 From 4ef1f9ce0934a27ced46f0f8d921d99019c782b9 Mon Sep 17 00:00:00 2001 From: Alex6511 Date: Tue, 18 Aug 2015 22:04:27 -0400 Subject: [PATCH 68/89] Update shuttle_controller.dm --- code/controllers/shuttle_controller.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/controllers/shuttle_controller.dm b/code/controllers/shuttle_controller.dm index 9c536931ce1..7c8a9847496 100644 --- a/code/controllers/shuttle_controller.dm +++ b/code/controllers/shuttle_controller.dm @@ -279,7 +279,7 @@ var/global/datum/shuttle_controller/shuttle_controller ) WS.announcer = "NSV Icarus" - WS.arrival_message = "Attention, [station_name()], we just tracked a large medical vessel approaching the station from the telecommunications satellite. Can't fire on them without hitting the station - prepare for visitors." + WS.arrival_message = "Attention, [station_name()], we just tracked a large medical vessel approaching the station from the telecommunications satellite. Might have wounded on board, can't destroy it - prepare for visitors." WS.departure_message = "Your guests are pulling away, [station_name()] - moving too fast for us to draw a bead on them. Looks like they're heading back to the telecommunications satellite." WS.interim = locate(/area/shuttle/derelict/ship/transit) From 9bab32fec4ee0d618f18347ff151879d795c509d Mon Sep 17 00:00:00 2001 From: Markolie Date: Wed, 19 Aug 2015 21:58:56 +0200 Subject: [PATCH 69/89] Better escape solution --- code/game/machinery/computer/pod_tracking_console.dm | 1 + code/game/mecha/mecha_control_console.dm | 8 +++++--- nano/templates/exosuit_control.tmpl | 8 +------- 3 files changed, 7 insertions(+), 10 deletions(-) diff --git a/code/game/machinery/computer/pod_tracking_console.dm b/code/game/machinery/computer/pod_tracking_console.dm index 033a77801b4..060b58eda90 100644 --- a/code/game/machinery/computer/pod_tracking_console.dm +++ b/code/game/machinery/computer/pod_tracking_console.dm @@ -37,6 +37,7 @@ ui = new(user, src, ui_key, "pod_tracking.tmpl", "Pod Tracking Console", 400, 500) ui.set_initial_data(data) ui.open() + ui.set_auto_update(1) /obj/machinery/computer/podtracker/Topic(href, href_list) if(..()) diff --git a/code/game/mecha/mecha_control_console.dm b/code/game/mecha/mecha_control_console.dm index 0d0c6b255f3..84c896a0ab3 100644 --- a/code/game/mecha/mecha_control_console.dm +++ b/code/game/mecha/mecha_control_console.dm @@ -35,6 +35,7 @@ ui = new(user, src, ui_key, "exosuit_control.tmpl", "Exosuit Control Console", 420, 500) ui.set_initial_data(data) ui.open() + ui.set_auto_update(1) /obj/machinery/computer/mecha/Topic(href, href_list) if(..()) @@ -80,7 +81,7 @@ var/obj/mecha/M = src.loc var/list/answer[0] answer["reference"] = "\ref[src]" - answer["name"] = html_encode(sanitize(M.name)) // Has to be encoded to prevent NanoUI from blanking - JavaScript decodes it in the .tmpl + answer["name"] = sanitize(replacetext(M.name,"\"","")) // Apostrophes break JSON if(M.cell) answer["cell"] = 1 answer["cell_capacity"] = M.cell.maxcharge @@ -90,8 +91,9 @@ answer["cell"] = 0 answer["integrity"] = M.health/initial(M.health)*100 answer["airtank"] = M.return_pressure() - answer["pilot"] = "[M.occupant||"None"]" - answer["location"] = "[sanitize(get_area(M))||"Unknown"]" + answer["pilot"] = "[M.occupant||"None"]" + var/area/area = get_area(M) + answer["location"] = "[sanitize(area.name)||"Unknown"]" answer["equipment"] = "[M.selected||"None"]" if(istype(M, /obj/mecha/working/ripley)) var/obj/mecha/working/ripley/RM = M diff --git a/nano/templates/exosuit_control.tmpl b/nano/templates/exosuit_control.tmpl index 98588c89e9a..c3b88d50f54 100644 --- a/nano/templates/exosuit_control.tmpl +++ b/nano/templates/exosuit_control.tmpl @@ -2,17 +2,11 @@ Title: Exosuit Control Console Used In File(s): \code\game\mecha\mecha_control_console.dm --> - {{if data.screen == 0}} {{for data.mechas}}
-

{{:value.name}}

+

{{:value.name}}

Information

Pilot: From 2b5f86e062f71c8f52a8fc36173eb491101cbeee Mon Sep 17 00:00:00 2001 From: Markolie Date: Wed, 19 Aug 2015 22:06:55 +0200 Subject: [PATCH 70/89] Single apostrophe instead of double --- code/game/mecha/mecha_control_console.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/game/mecha/mecha_control_console.dm b/code/game/mecha/mecha_control_console.dm index 84c896a0ab3..ce44f2e59b1 100644 --- a/code/game/mecha/mecha_control_console.dm +++ b/code/game/mecha/mecha_control_console.dm @@ -81,7 +81,7 @@ var/obj/mecha/M = src.loc var/list/answer[0] answer["reference"] = "\ref[src]" - answer["name"] = sanitize(replacetext(M.name,"\"","")) // Apostrophes break JSON + answer["name"] = sanitize(replacetext(M.name,"\"","'")) // Double apostrophes break JSON if(M.cell) answer["cell"] = 1 answer["cell_capacity"] = M.cell.maxcharge From b6a1e52e08e62e93d854d3056e24d009e36a51a4 Mon Sep 17 00:00:00 2001 From: Markolie Date: Wed, 19 Aug 2015 22:22:51 +0200 Subject: [PATCH 71/89] Hopefully fix uplink crashing --- code/datums/uplink_item.dm | 42 +++++++++++----------- code/game/objects/items/devices/uplinks.dm | 8 ++--- nano/templates/uplink.tmpl | 5 +-- 3 files changed, 23 insertions(+), 32 deletions(-) diff --git a/code/datums/uplink_item.dm b/code/datums/uplink_item.dm index 7df1764a2a9..2a4a3d3a14b 100644 --- a/code/datums/uplink_item.dm +++ b/code/datums/uplink_item.dm @@ -141,7 +141,7 @@ var/list/uplink_items = list() /datum/uplink_item/jobspecific/syndidonk name = "Syndicate Donk Pockets" - desc = "A box of highly specialized donk pockets with a number of regenerative and stimulating chemicals inside of them; the box comes equipped with a self-heating mechanism." + desc = "A box of highly specialized Donk pockets with a number of regenerative and stimulating chemicals inside of them; the box comes equipped with a self-heating mechanism." reference = "SDP" item = /obj/item/weapon/storage/box/syndidonkpockets cost = 2 @@ -162,7 +162,7 @@ var/list/uplink_items = list() /datum/uplink_item/jobspecific/rad_laser name = "Radiation Laser" - desc = "A radiation laser concealed inside of a Health Analyser, After a moderate delay, causes temporary collapse and radiation. Has adjustable controls, but will not function as a regular health analyser, only appears like one. May not function correctly on radiation resistant humanoids!" + desc = "A radiation laser concealed inside of a Health Analyser. After a moderate delay, causes temporary collapse and radiation. Has adjustable controls, but will not function as a regular health analyser, only appears like one. May not function correctly on radiation resistant humanoids!" reference = "RL" item = /obj/item/device/rad_laser cost = 6 @@ -270,7 +270,7 @@ var/list/uplink_items = list() /datum/uplink_item/dangerous/car name = "C-90gl Compact Assault Rifle" - desc = "A fully-loaded Zashchita Industriya toploading bullpup assault rifle that uses 30-round 5.45x39mm magazines with a togglable underslung 40mm grenade launcher." + desc = "A fully-loaded Zashchita Industriya toploading bullpup assault rifle that uses 30-round 5.45x39mm magazines with a toggleable underslung 40mm grenade launcher." reference = "AR" item = /obj/item/weapon/gun/projectile/automatic/c90gl cost = 18 @@ -297,7 +297,7 @@ var/list/uplink_items = list() /datum/uplink_item/dangerous/flamethrower name = "Flamethrower" - desc = "A flamethrower, fueled by a portion of highly flammable biotoxins stolen previously from Nanotrasen stations. Make a statement by roasting the filth in their own greed. Use with caution." + desc = "A flamethrower, fuelled by a portion of highly flammable bio-toxins stolen previously from Nanotrasen stations. Make a statement by roasting the filth in their own greed. Use with caution." reference = "FT" item = /obj/item/weapon/flamethrower/full/tank cost = 11 @@ -306,7 +306,7 @@ var/list/uplink_items = list() /datum/uplink_item/dangerous/sword name = "Energy Sword" - desc = "The esword is an edged weapon with a blade of pure energy. The sword is small enough to be pocketed when inactive. Activating it produces a loud, distinctive noise." + desc = "The energy sword is an edged weapon with a blade of pure energy. The sword is small enough to be pocketed when inactive. Activating it produces a loud, distinctive noise." reference = "ES" item = /obj/item/weapon/melee/energy/sword cost = 8 @@ -329,7 +329,7 @@ var/list/uplink_items = list() /datum/uplink_item/dangerous/tabungrenades name = "Tabun Gas Grenades" - desc = "A box of four (4) grenades filled with tabun, a deadly neurotoxin. Use extreme caution when handling and be sure to vacate the premise after using; ensure communication is maintaind with team to avoid accidental gassings." + desc = "A box of four (4) grenades filled with Tabun, a deadly neurotoxin. Use extreme caution when handling and be sure to vacate the premise after using; ensure communication is maintained with team to avoid accidental gassings." reference = "TGG" item = /obj/item/weapon/storage/box/syndie_kit/tabun cost = 15 @@ -345,7 +345,7 @@ var/list/uplink_items = list() /datum/uplink_item/dangerous/syndicate_minibomb name = "Syndicate Minibomb" - desc = "The Minibomb is a grenade with a five-second fuse." + desc = "The minibomb is a grenade with a five-second fuse." reference = "SMB" item = /obj/item/weapon/grenade/syndieminibomb cost = 6 @@ -362,7 +362,7 @@ var/list/uplink_items = list() /datum/uplink_item/dangerous/mauler name = "Mauler Exosuit" - desc = "A massive and incredibly deadly Syndicate exosuit. Features long-range targetting, thrust vectoring, and deployable smoke." + desc = "A massive and incredibly deadly Syndicate exosuit. Features long-range targeting, thrust vectoring, and deployable smoke." reference = "ME" item = /obj/mecha/combat/marauder/mauler/loaded cost = 140 @@ -453,8 +453,8 @@ var/list/uplink_items = list() gamemodes = list("nuclear emergency") /datum/uplink_item/ammo/machinegun - name = "Box Magazine - 7.62×51mm" - desc = "A 50-round magazine of 7.62x51mm ammunition for use in the L6 SAW machinegun. By the time you need to use this, you'll already be on a pile of corpses." + name = "Box Magazine - 7.62x51mm" + desc = "A 50-round magazine of 7.62x51mm ammunition for use in the L6 SAW machine gun. By the time you need to use this, you'll already be on a pile of corpses." reference = "762" item = /obj/item/ammo_box/magazine/m762 cost = 12 @@ -489,8 +489,6 @@ var/list/uplink_items = list() item = /obj/item/weapon/cartridge/syndicate cost = 6 -// Commented out until a fix can be found, currently doesn't work with the PDA NanoUI and people keep wasting Telecrystals on it. -- Dave - /datum/uplink_item/stealthy_weapons/silencer name = "Universal Suppressor" desc = "Fitted for use on any small caliber weapon with a threaded barrel, this suppressor will silence the shots of the weapon for increased stealth and superior ambushing capability." @@ -528,7 +526,7 @@ var/list/uplink_items = list() /datum/uplink_item/stealthy_tools/chameleon_stamp name = "Chameleon Stamp" - desc = "A stamp that can be activated to imitate an official Nanotrasen Stamp™. The disguised stamp will work exactly like the real stamp and will allow you to forge false documents to gain access or equipment; \ + desc = "A stamp that can be activated to imitate an official Nanotrasen Stamp. The disguised stamp will work exactly like the real stamp and will allow you to forge false documents to gain access or equipment; \ it can also be used in a washing machine to forge clothing." reference = "CHST" item = /obj/item/weapon/stamp/chameleon @@ -551,14 +549,14 @@ var/list/uplink_items = list() /datum/uplink_item/stealthy_tools/voice_changer name = "Voice Changer" - desc = "A conspicuous gas mask that mimics the voice named on your identification card. When no identification is worn, the mask will render your voice unrecognizable." + desc = "A conspicuous gas mask that mimics the voice named on your identification card. When no identification is worn, the mask will render your voice unrecognisable." reference = "VC" item = /obj/item/clothing/mask/gas/voice cost = 5 /datum/uplink_item/stealthy_tools/chameleon_proj name = "Chameleon-Projector" - desc = "Projects an image across a user, disguising them as an object scanned with it, as long as they don't move the projector from their hand. The disguised user cannot run and rojectiles pass over them." + desc = "Projects an image across a user, disguising them as an object scanned with it, as long as they don't move the projector from their hand. The disguised user cannot run and projectiles pass over them." reference = "CP" item = /obj/item/device/chameleon cost = 7 @@ -594,7 +592,7 @@ var/list/uplink_items = list() /datum/uplink_item/device_tools/emag name = "Cryptographic Sequencer" - desc = "The emag is a small card that unlocks hidden functions in electronic devices, subverts intended functions and characteristically breaks security mechanisms." + desc = "The cryptographic sequencer, also known as an emag, is a small card that unlocks hidden functions in electronic devices, subverts intended functions and characteristically breaks security mechanisms." reference = "EMAG" item = /obj/item/weapon/card/emag cost = 6 @@ -609,7 +607,7 @@ var/list/uplink_items = list() /datum/uplink_item/device_tools/medkit name = "Syndicate Combat Medic Kit" - desc = "The syndicate medkit is a suspicious black and red. Included is a combat stimulant injector for rapid healing, a medical hud for quick identification of injured comrades, \ + desc = "The syndicate medkit is a suspicious black and red. Included is a combat stimulant injector for rapid healing, a medical HUD for quick identification of injured comrades, \ and other medical supplies helpful for a medical field operative." reference = "SCMK" item = /obj/item/weapon/storage/firstaid/tactical @@ -632,8 +630,8 @@ var/list/uplink_items = list() /datum/uplink_item/device_tools/hardsuit name = "Blood-red Hardsuit" - desc = "The feared suit of a syndicate nuclear agent. Features slightly better armoring. When the helmet is deployed your identity will be protected. Toggling the suit into combat mode \ - will allow you all the mobility of a loose fitting uniform without sacrificing armoring. Additionally the suit is collapsible, small enough to fit within a backpack. \ + desc = "The feared suit of a syndicate nuclear agent. Features slightly better armor. When the helmet is deployed your identity will be protected. Toggling the suit into combat mode \ + will allow you all the mobility of a loose fitting uniform without sacrificing armor. Additionally the suit is collapsible, small enough to fit within a backpack. \ Nanotrasen crewmembers are trained to report red space suit sightings, these suits in particular are known to drive employees into a panic." reference = "BRHS" item = /obj/item/weapon/storage/box/syndie_kit/hardsuit @@ -641,7 +639,7 @@ var/list/uplink_items = list() /datum/uplink_item/device_tools/thermal name = "Thermal Imaging Glasses" - desc = "These glasses are thermals disguised as engineers' optical meson scanners. They allow you to see organisms through walls by capturing the upper portion of the infrared light spectrum, emitted as heat and light by objects. Hotter objects, such as warm bodies, cybernetic organisms and artificial intelligence cores emit more of this light than cooler objects like walls and airlocks." + desc = "These glasses are thermals disguised as engineers' optical meson scanners. They allow you to see organisms through walls by capturing the upper portion of the infra-red light spectrum, emitted as heat and light by objects. Hotter objects, such as warm bodies, cybernetic organisms and artificial intelligence cores emit more of this light than cooler objects like walls and airlocks." reference = "THIG" item = /obj/item/clothing/glasses/thermal/syndi cost = 6 @@ -680,7 +678,7 @@ var/list/uplink_items = list() /datum/uplink_item/device_tools/plastic_explosives name = "Composition C-4" - desc = "C-4 is plastic explosive of the common variety Composition C. You can use it to breach walls or connect a signaler to its wiring to make it remotely detonable. It has a modifiable timer with a minimum setting of 10 seconds." + desc = "C-4 is plastic explosive of the common variety Composition C. You can use it to breach walls or connect a signaller to its wiring to make it remotely detonable. It has a modifiable timer with a minimum setting of 10 seconds." reference = "C4" item = /obj/item/weapon/c4 cost = 1 @@ -762,7 +760,7 @@ var/list/uplink_items = list() /datum/uplink_item/implants/uplink name = "Uplink Implant" - desc = "An implant injected into the body, and later activated using a bodily gesture to open an uplink with 5 telecrystals. The ability for an agent to open an uplink after their posessions have been stripped from them makes this implant excellent for escaping confinement." + desc = "An implant injected into the body, and later activated using a bodily gesture to open an uplink with 5 telecrystals. The ability for an agent to open an uplink after their possessions have been stripped from them makes this implant excellent for escaping confinement." reference = "UI" item = /obj/item/weapon/implanter/uplink cost = 14 diff --git a/code/game/objects/items/devices/uplinks.dm b/code/game/objects/items/devices/uplinks.dm index 4efc8bdc2ee..28c573be0bb 100644 --- a/code/game/objects/items/devices/uplinks.dm +++ b/code/game/objects/items/devices/uplinks.dm @@ -50,10 +50,10 @@ var/list/world_uplinks = list() job = user.mind.assigned_role var/dat = "[src.welcome]
" - dat += "Tele-Crystals left: [src.uses]
" + dat += "Telecrystals left: [src.uses]
" dat += "
" dat += "Request item:
" - dat += "Each item costs a number of tele-crystals as indicated by the number following their name.
" + dat += "Each item costs a number of telecrystals as indicated by the number following their name.
" var/category_items = 1 for(var/category in ItemsCategory) @@ -262,10 +262,6 @@ var/list/world_uplinks = list() for(var/datum/data/record/L in data_core.general) if(L.fields["id"] == id) nanoui_data["exploit"] = list() // Setting this to equal L.fields passes it's variables that are lists as reference instead of value. - // We trade off being able to automatically add shit for more control over what gets passed to json - // and if it's sanitized for html. - nanoui_data["exploit"]["nanoui_exploit_record"] = html_encode(L.fields["exploit_record"]) // Change stuff into html - nanoui_data["exploit"]["nanoui_exploit_record"] = replacetext(nanoui_data["exploit"]["nanoui_exploit_record"], "\n", "
") // change line breaks into
nanoui_data["exploit"]["name"] = html_encode(L.fields["name"]) nanoui_data["exploit"]["sex"] = html_encode(L.fields["sex"]) nanoui_data["exploit"]["age"] = html_encode(L.fields["age"]) diff --git a/nano/templates/uplink.tmpl b/nano/templates/uplink.tmpl index a5080f05f36..77550917993 100644 --- a/nano/templates/uplink.tmpl +++ b/nano/templates/uplink.tmpl @@ -12,7 +12,7 @@ Used In File(s): \code\game\objects\items\devices\uplinks.dm
{{:helper.link('Request Items', 'gear', {'menu' : 0}, null, 'fixedLeftWider')}} - {{:helper.link(data.descriptions ? 'Hide Descriptions' : 'Show Descriptions', 'gear', {'descriptions' : 1}, null, 'fixedLeftWider')}} + {{:helper.link(data.descriptions ? 'Hide Descriptions' : 'Show Descriptions', 'gear', {'descriptions' : 1}, data.menu == 0 ? '' : 'disabled', 'fixedLeftWider')}} {{:helper.link('Exploitable Information', 'gear', {'menu' : 1}, null, 'fixedLeftWider')}} {{:helper.link('Return', 'arrowreturn-1-w', {'return' : 1}, null, 'fixedLeft')}} {{:helper.link('Close', 'gear', {'lock' : "1"}, null, 'fixedLeft')}} @@ -80,9 +80,6 @@ Used In File(s): \code\game\objects\items\devices\uplinks.dm Age: {{:data.exploit.age}}
Rank: {{:data.exploit.rank}}
Fingerprint: {{:data.exploit.fingerprint}}
- -
Acquired Information:
- Notes:
{{:data.exploit.nanoui_exploit_record}}

{{else}} No exploitative information acquired! From 4d21896e9809bb1ed13381e49ba11df458260591 Mon Sep 17 00:00:00 2001 From: Markolie Date: Wed, 19 Aug 2015 22:32:52 +0200 Subject: [PATCH 72/89] Fix cargo computer invalid request bug --- code/game/supplyshuttle.dm | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/code/game/supplyshuttle.dm b/code/game/supplyshuttle.dm index d40539cdbf7..847c4179d8f 100644 --- a/code/game/supplyshuttle.dm +++ b/code/game/supplyshuttle.dm @@ -676,11 +676,10 @@ var/list/mechtoys = list( supply_controller.points -= P.cost supply_controller.shoppinglist += O temp = "Thanks for your order.
" - temp += "
Back Main Menu" else temp = "Not enough supply points.
" - temp += "
Back Main Menu" break + temp += "
Back Main Menu" else if (href_list["vieworders"]) temp = "Current approved orders:

" From d623c977417bc019558676becc134f468f80ff01 Mon Sep 17 00:00:00 2001 From: Fox-McCloud Date: Wed, 19 Aug 2015 18:16:52 -0400 Subject: [PATCH 73/89] Detective Scanner Protolathe Production --- code/modules/DetectiveWork/scanner.dm | 1 + code/modules/research/designs/equipment_designs.dm | 11 +++++++++++ 2 files changed, 12 insertions(+) diff --git a/code/modules/DetectiveWork/scanner.dm b/code/modules/DetectiveWork/scanner.dm index d694e4c1645..5aec21ac94e 100644 --- a/code/modules/DetectiveWork/scanner.dm +++ b/code/modules/DetectiveWork/scanner.dm @@ -10,6 +10,7 @@ item_state = "electronic" flags = CONDUCT | NOBLUDGEON slot_flags = SLOT_BELT + origin_tech = "magnets=4;biotech=2" var/scanning = 0 var/list/log = list() diff --git a/code/modules/research/designs/equipment_designs.dm b/code/modules/research/designs/equipment_designs.dm index 10a6a18ee31..ab78834a877 100644 --- a/code/modules/research/designs/equipment_designs.dm +++ b/code/modules/research/designs/equipment_designs.dm @@ -99,4 +99,15 @@ build_type = PROTOLATHE materials = list("$metal" = 4000, "$glass" = 1000) build_path = /obj/item/clothing/mask/gas/welding + category = list("Equipment") + +/datum/design/detective_scanner + name = "Forensic Scanner" + desc = "A high tech scanner designed for forensic evidence collection, DNA recovery, and fiber analysis." + id = "detectivescanner" + req_tech = list("biotech" = 2, "magnets" = 4) + build_type = PROTOLATHE + materials = list("$metal" = 6000, "$glass" = 2000) + build_path = /obj/item/device/detective_scanner + locked = 1 //no validhunting scientists. category = list("Equipment") \ No newline at end of file From 52a99468f124a0ed30bffd76602c5581f57e2540 Mon Sep 17 00:00:00 2001 From: Markolie Date: Thu, 20 Aug 2015 00:59:53 +0200 Subject: [PATCH 74/89] Remove stray light switch in mime's office --- _maps/map_files/cyberiad/cyberiad.dmm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_maps/map_files/cyberiad/cyberiad.dmm b/_maps/map_files/cyberiad/cyberiad.dmm index e24dc3825bc..62d2c9ec126 100644 --- a/_maps/map_files/cyberiad/cyberiad.dmm +++ b/_maps/map_files/cyberiad/cyberiad.dmm @@ -1337,7 +1337,7 @@ "azK" = (/obj/effect/spawner/window/reinforced,/turf/simulated/floor/plating,/area/crew_quarters/fitness) "azL" = (/turf/simulated/wall,/area/mimeoffice) "azM" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/table/woodentable,/obj/item/weapon/reagent_containers/spray/waterflower,/turf/simulated/floor/wood,/area/mimeoffice) -"azN" = (/obj/structure/table/woodentable,/obj/item/weapon/pen/red{pixel_x = 2; pixel_y = 6},/obj/item/weapon/paper_bin,/obj/item/toy/crayon/mime,/obj/machinery/light_switch{name = "light switch "; dir = 2; pixel_x = 0; pixel_y = -22},/turf/simulated/floor/wood,/area/mimeoffice) +"azN" = (/obj/structure/table/woodentable,/obj/item/weapon/pen/red{pixel_x = 2; pixel_y = 6},/obj/item/weapon/paper_bin,/obj/item/toy/crayon/mime,/turf/simulated/floor/wood,/area/mimeoffice) "azO" = (/obj/machinery/camera{c_tag = "Magistrate's Office"; dir = 4; network = list("SS13")},/turf/simulated/floor/carpet,/area/magistrateoffice) "azP" = (/obj/machinery/hologram/holopad,/turf/simulated/floor/carpet,/area/magistrateoffice) "azQ" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/carpet,/area/magistrateoffice) From 286d2301f4a4765693dff7625a616face5df0c7f Mon Sep 17 00:00:00 2001 From: Markolie Date: Thu, 20 Aug 2015 01:29:23 +0200 Subject: [PATCH 75/89] Replace disabling RCD's with exploding them --- .../gamemodes/malfunction/Malf_Modules.dm | 30 +++++++++++-------- code/game/mecha/equipment/tools/tools.dm | 9 +----- code/game/objects/items/weapons/RCD.dm | 4 --- 3 files changed, 18 insertions(+), 25 deletions(-) diff --git a/code/game/gamemodes/malfunction/Malf_Modules.dm b/code/game/gamemodes/malfunction/Malf_Modules.dm index 90e8eaaf814..622ec56bf4f 100644 --- a/code/game/gamemodes/malfunction/Malf_Modules.dm +++ b/code/game/gamemodes/malfunction/Malf_Modules.dm @@ -81,7 +81,6 @@ rcd light flash thingy on matter drain mod_pick_name = "lockdown" description = "Overload the airlock, blast door and fire control networks, locking them down. Caution! This command also electrifies all airlocks. The networks will automatically reset after 120 seconds." cost = 20 - uses = 1 power_type = /mob/living/silicon/ai/proc/lockdown @@ -148,10 +147,10 @@ rcd light flash thingy on matter drain minor_announcement.Announce("Automatic system reboot complete. Have a secure day.","Network Reset") -/datum/AI_Module/large/disable_rcd - module_name = "RCD Disable" +/datum/AI_Module/large/destroy_rcd + module_name = "Destroy RCDs" mod_pick_name = "rcd" - description = "Send a specialised pulse to break all hand-held and exosuit Rapid Cconstruction Devices on the station." + description = "Send a specialised pulse to detonate all hand-held and exosuit Rapid Cconstruction Devices on the station." cost = 25 one_time = 1 @@ -159,19 +158,24 @@ rcd light flash thingy on matter drain /mob/living/silicon/ai/proc/disable_rcd() set category = "Malfunction" - set name = "Disable RCDs" - set desc = "Disable all RCD devices on the station, while sparing onboard cyborg RCDs." + set name = "Destroy RCDs" + set desc = "Detonate all RCDs on the station, while sparing onboard cyborg RCDs." - if(stat) + if(stat || malf_cooldown) return - for(var/obj/item/weapon/rcd/RCD in rcd_list) - if(!istype(/obj/item/weapon/rcd/borg, RCD)) //Ensures that cyborg RCDs are spared. - RCD.disabled = 1 - for(var/obj/item/mecha_parts/mecha_equipment/tool/rcd/MRCD in rcd_list) - MRCD.disabled = 1 + for(var/obj/item/RCD in rcd_list) + if(!istype(RCD, /obj/item/weapon/rcd/borg)) //Ensures that cyborg RCDs are spared. + RCD.audible_message("[RCD] begins to vibrate and buzz loudly!","[RCD] begins vibrating violently!") + spawn(50) //5 seconds to get rid of it! + if(RCD) //Make sure it still exists (In case of chain-reaction) + explosion(RCD, 0, 0, 3, 1, flame_range = 1) + qdel(RCD) - src << "RCD-disabling pulse emitted." + src << "RCD detonation pulse emitted." + malf_cooldown = 1 + spawn(100) + malf_cooldown = 0 /datum/AI_Module/large/mecha_domination module_name = "Viral Mech Domination" diff --git a/code/game/mecha/equipment/tools/tools.dm b/code/game/mecha/equipment/tools/tools.dm index c127723f704..9882151bb21 100644 --- a/code/game/mecha/equipment/tools/tools.dm +++ b/code/game/mecha/equipment/tools/tools.dm @@ -282,7 +282,6 @@ construction_time = 1200 construction_cost = list("metal"=30000,"plasma"=25000,"silver"=20000,"gold"=20000) var/mode = 0 //0 - deconstruct, 1 - wall or floor, 2 - airlock. - var/disabled = 0 //malf var/canRwall = 0 New() @@ -298,7 +297,7 @@ return if(!istype(target, /turf) && !istype(target, /obj/machinery/door/airlock)) target = get_turf(target) - if(!action_checks(target) || disabled || get_dist(chassis, target)>3) return + if(!action_checks(target) || get_dist(chassis, target)>3) return playsound(chassis, 'sound/machines/click.ogg', 50, 1) //meh switch(mode) @@ -309,7 +308,6 @@ occupant_message("Deconstructing [target]...") set_ready_state(0) if(do_after_cooldown(target)) - if(disabled) return chassis.spark_system.start() target:ChangeTurf(/turf/simulated/floor/plating) playsound(target, 'sound/items/Deconstruct.ogg', 50, 1) @@ -318,7 +316,6 @@ occupant_message("Deconstructing [target]...") set_ready_state(0) if(do_after_cooldown(target)) - if(disabled) return chassis.spark_system.start() target:ChangeTurf(/turf/space) playsound(target, 'sound/items/Deconstruct.ogg', 50, 1) @@ -327,7 +324,6 @@ occupant_message("Deconstructing [target]...") set_ready_state(0) if(do_after_cooldown(target)) - if(disabled) return chassis.spark_system.start() qdel(target) playsound(target, 'sound/items/Deconstruct.ogg', 50, 1) @@ -337,7 +333,6 @@ occupant_message("Building Floor...") set_ready_state(0) if(do_after_cooldown(target)) - if(disabled) return target:ChangeTurf(/turf/simulated/floor/plating) playsound(target, 'sound/items/Deconstruct.ogg', 50, 1) chassis.spark_system.start() @@ -346,7 +341,6 @@ occupant_message("Building Wall...") set_ready_state(0) if(do_after_cooldown(target)) - if(disabled) return target:ChangeTurf(/turf/simulated/wall) playsound(target, 'sound/items/Deconstruct.ogg', 50, 1) chassis.spark_system.start() @@ -356,7 +350,6 @@ occupant_message("Building Airlock...") set_ready_state(0) if(do_after_cooldown(target)) - if(disabled) return chassis.spark_system.start() var/obj/machinery/door/airlock/T = new /obj/machinery/door/airlock(target) T.autoclose = 1 diff --git a/code/game/objects/items/weapons/RCD.dm b/code/game/objects/items/weapons/RCD.dm index 3330a3831cf..2d788e219a4 100644 --- a/code/game/objects/items/weapons/RCD.dm +++ b/code/game/objects/items/weapons/RCD.dm @@ -26,8 +26,6 @@ RCD var/working = 0 var/mode = 1 var/canRwall = 0 - var/disabled = 0 - New() desc = "A RCD. It currently holds [matter]/[max_matter] matter-units." @@ -88,8 +86,6 @@ RCD afterattack(atom/A, mob/user, proximity) if(!proximity) return - if(disabled && !isrobot(user)) - return 0 if(istype(A,/area/shuttle)||istype(A,/turf/space/transit)) return 0 if(!(istype(A, /turf) || istype(A, /obj/machinery/door/airlock))) From 87570fc08073bb17ea8d7c887160b506b731e822 Mon Sep 17 00:00:00 2001 From: Markolie Date: Thu, 20 Aug 2015 17:25:55 +0200 Subject: [PATCH 76/89] isNonCrewAntag() checks, key_name fixes --- code/game/dna/genes/vg_powers.dm | 19 ++++++++++++------- code/game/gamemodes/game_mode.dm | 3 ++- code/game/machinery/kitchen/gibber.dm | 6 +++--- code/game/objects/items/weapons/tools.dm | 2 +- code/modules/assembly/bomb.dm | 6 +++--- code/modules/hydroponics/grown.dm | 6 +++--- code/modules/karma/karma.dm | 2 +- code/modules/mob/mob_helpers.dm | 12 ++++++++++++ code/modules/reagents/reagent_dispenser.dm | 4 ++-- code/modules/recycling/disposal.dm | 6 +++--- .../tools/ano_device_battery.dm | 6 +++--- .../vehicle/train/trains/cargo/cargo_train.dm | 8 ++++---- 12 files changed, 49 insertions(+), 31 deletions(-) diff --git a/code/game/dna/genes/vg_powers.dm b/code/game/dna/genes/vg_powers.dm index aec9b2580b5..497e69bc10c 100644 --- a/code/game/dna/genes/vg_powers.dm +++ b/code/game/dna/genes/vg_powers.dm @@ -224,7 +224,7 @@ Obviously, requires DNA2. var/list/validtargets = new /list() for(var/mob/M in living_mob_list) if(M && M.mind) - if(isAntag(M)) + if(M.z != user.z || isNonCrewAntag(M)) continue validtargets += M @@ -277,17 +277,22 @@ Obviously, requires DNA2. action_icon_state = "genetic_view" -/obj/effect/proc_holder/spell/targeted/remoteview/choose_targets(mob/user = usr) +/obj/effect/proc_holder/spell/targeted/remoteview/choose_targets(mob/user = usr) var/list/targets = living_mob_list - var/list/remoteviewers = new /list() + var/list/validtargets = new /list() for(var/mob/M in targets) - if(REMOTE_VIEW in M.mutations) - remoteviewers += M - if(!remoteviewers.len || remoteviewers.len == 1) + if(M && M.mind) + if(M.z != user.z || isNonCrewAntag(M)) + continue + + validtargets += M + + if(!validtargets.len || validtargets.len == 1) usr << "No valid targets with remote view were found!" start_recharge() return - targets += input("Choose the target to spy on.", "Targeting") as mob in remoteviewers + + targets += input("Choose the target to spy on.", "Targeting") as mob in validtargets perform(targets) diff --git a/code/game/gamemodes/game_mode.dm b/code/game/gamemodes/game_mode.dm index d0e2228162c..8809476c3ed 100644 --- a/code/game/gamemodes/game_mode.dm +++ b/code/game/gamemodes/game_mode.dm @@ -238,7 +238,7 @@ var/list/suspects = list() for(var/mob/living/carbon/human/man in player_list) if(man.client && man.mind) // NT relation option - if(isAntag(man)) + if(isNonCrewAntag(man)) continue //NT intelligence ruled out possiblity that those are too classy to pretend to be a crew. if(man.client.prefs.nanotrasen_relation == "Opposed" && prob(50) || \ man.client.prefs.nanotrasen_relation == "Skeptical" && prob(20)) @@ -246,6 +246,7 @@ // Antags else if(special_role == "traitor" && prob(40) || \ special_role == "Changeling" && prob(50) || \ + special_role == "Vampire" && prob(40) || \ special_role == "Cultist" && prob(30) || \ special_role == "Head Revolutionary" && prob(30) || \ special_role == "Shadowling" && prob(15)) diff --git a/code/game/machinery/kitchen/gibber.dm b/code/game/machinery/kitchen/gibber.dm index db49facd824..7c08f2ebd07 100644 --- a/code/game/machinery/kitchen/gibber.dm +++ b/code/game/machinery/kitchen/gibber.dm @@ -374,11 +374,11 @@ new /obj/effect/decal/cleanable/blood/gibs(src) if(!UserOverride) - src.occupant.attack_log += "\[[time_stamp()]\] Was gibbed by [user]/[user.ckey]" //One shall not simply gib a mob unnoticed! - user.attack_log += "\[[time_stamp()]\] Gibbed [src.occupant]/[src.occupant.ckey]" + src.occupant.attack_log += "\[[time_stamp()]\] Was gibbed by [key_name(user)]" //One shall not simply gib a mob unnoticed! + user.attack_log += "\[[time_stamp()]\] Gibbed [key_name(occupant)]" if(src.occupant.ckey) - msg_admin_attack("[user.name] ([user.ckey])[isAntag(user) ? "(ANTAG)" : ""] gibbed [src.occupant] ([src.occupant.ckey]) (JMP)") + msg_admin_attack("[key_name_admin(user)] gibbed [key_name_admin(occupant)]") if(!iscarbon(user)) src.occupant.LAssailant = null diff --git a/code/game/objects/items/weapons/tools.dm b/code/game/objects/items/weapons/tools.dm index a71b1c76df4..b94337a118c 100644 --- a/code/game/objects/items/weapons/tools.dm +++ b/code/game/objects/items/weapons/tools.dm @@ -258,7 +258,7 @@ playsound(src.loc, 'sound/effects/refill.ogg', 50, 1, -6) return else if (istype(O, /obj/structure/reagent_dispensers/fueltank) && get_dist(src,O) <= 1 && src.welding) - msg_admin_attack("[key_name_admin(user)][isAntag(user) ? "(ANTAG)" : ""] triggered a fueltank explosion.") + msg_admin_attack("[key_name_admin(user)] triggered a fueltank explosion.") log_game("[key_name(user)] triggered a fueltank explosion.") user << "\red That was stupid of you." var/obj/structure/reagent_dispensers/fueltank/tank = O diff --git a/code/modules/assembly/bomb.dm b/code/modules/assembly/bomb.dm index 8085fefd999..ec2277c22dd 100644 --- a/code/modules/assembly/bomb.dm +++ b/code/modules/assembly/bomb.dm @@ -44,12 +44,12 @@ if((istype(W, /obj/item/weapon/weldingtool) && W:welding)) if(!status) status = 1 - bombers += "[key_name(user)] welded a single tank bomb. Temp: [bombtank.air_contents.temperature-T0C]" - msg_admin_attack("[key_name_admin(user)][isAntag(user) ? "(ANTAG)" : ""] welded a single tank bomb. Temp: [bombtank.air_contents.temperature-T0C]") + bombers += "[key_name(user)] welded a single tank bomb. Temperature: [bombtank.air_contents.temperature-T0C]" + msg_admin_attack("[key_name_admin(user)] welded a single tank bomb. Temperature: [bombtank.air_contents.temperature-T0C]") user << "A pressure hole has been bored to [bombtank] valve. \The [bombtank] can now be ignited." else status = 0 - bombers += "[key_name(user)] unwelded a single tank bomb. Temp: [bombtank.air_contents.temperature-T0C]" + bombers += "[key_name(user)] unwelded a single tank bomb. Temperature: [bombtank.air_contents.temperature-T0C]" user << "The hole has been closed." add_fingerprint(user) ..() diff --git a/code/modules/hydroponics/grown.dm b/code/modules/hydroponics/grown.dm index 17417104463..f494d7336db 100644 --- a/code/modules/hydroponics/grown.dm +++ b/code/modules/hydroponics/grown.dm @@ -302,9 +302,9 @@ user.lastattacked = M M.lastattacker = user - user.attack_log += "\[[time_stamp()]\] Attacked [M.name] ([M.ckey]) with [name] (INTENT: [uppertext(user.a_intent)]) (DAMTYE: [uppertext(damtype)])" - M.attack_log += "\[[time_stamp()]\] Attacked by [user.name] ([user.ckey]) with [name] (INTENT: [uppertext(user.a_intent)]) (DAMTYE: [uppertext(damtype)])" - msg_admin_attack("[user.name] ([user.ckey])[isAntag(user) ? "(ANTAG)" : ""] attacked [M.name] ([M.ckey]) with [name] (INTENT: [uppertext(user.a_intent)]) (DAMTYE: [uppertext(damtype)])" ) + user.attack_log += "\[[time_stamp()]\] Attacked [key_name(M)] with [name] (INTENT: [uppertext(user.a_intent)]) (DAMTYE: [uppertext(damtype)])" + M.attack_log += "\[[time_stamp()]\] Attacked by [key_name(user)] with [name] (INTENT: [uppertext(user.a_intent)]) (DAMTYE: [uppertext(damtype)])" + msg_admin_attack("[key_name_admin(user)] attacked [key_name_admin(M)] with [name] (INTENT: [uppertext(user.a_intent)]) (DAMTYE: [uppertext(damtype)])" ) if(istype(M, /mob/living/carbon/human)) var/mob/living/carbon/human/H = M diff --git a/code/modules/karma/karma.dm b/code/modules/karma/karma.dm index 6c3a5d35046..4144c4ef5cc 100644 --- a/code/modules/karma/karma.dm +++ b/code/modules/karma/karma.dm @@ -63,7 +63,7 @@ var/list/karma_spenders = list() var/list/karma_list = list("Cancel") for(var/mob/M in player_list) if(M.client && M.mind) - if(isAntag(M)) // Don't include special roles, because players use it to meta + if(isNonCrewAntag(M)) // Don't include special roles, because players use it to meta continue karma_list += M diff --git a/code/modules/mob/mob_helpers.dm b/code/modules/mob/mob_helpers.dm index a67a2eed0d9..31f1c84e09c 100644 --- a/code/modules/mob/mob_helpers.dm +++ b/code/modules/mob/mob_helpers.dm @@ -174,6 +174,18 @@ proc/isAntag(A) if(C.mind && C.mind.special_role) return 1 return 0 + +proc/isNonCrewAntag(A) + if(!isAntag(A)) + return 0 + + var/mob/living/carbon/C = A + var/special_role = C.mind.special_role + var/list/crew_roles = list("traitor", "Changeling", "Vampire", "Cultist", "Head Revolutionary", "Revolutionary", "malfunctioning AI", "Shadowling", "loyalist", "mutineer", "Response Team") + if((special_role in allowed_roles)) + return 0 + + return 1 proc/isnewplayer(A) if(istype(A, /mob/new_player)) diff --git a/code/modules/reagents/reagent_dispenser.dm b/code/modules/reagents/reagent_dispenser.dm index eb13ba91b21..b0d3a7e4a85 100644 --- a/code/modules/reagents/reagent_dispenser.dm +++ b/code/modules/reagents/reagent_dispenser.dm @@ -135,8 +135,8 @@ var/obj/item/device/assembly_holder/H = W if (istype(H.a_left,/obj/item/device/assembly/igniter) || istype(H.a_right,/obj/item/device/assembly/igniter)) - msg_admin_attack("[key_name_admin(user)][isAntag(user) ? "(ANTAG)" : ""] rigged fueltank at ([loc.x],[loc.y],[loc.z]) for explosion.") - log_game("[key_name(user)] rigged fueltank at ([loc.x],[loc.y],[loc.z]) for explosion.") + msg_admin_attack("[key_name_admin(user)] rigged a fueltank for explosion (JMP)") + log_game("[key_name(user)] rigged fueltank a fueltank for explosion at [loc.x], [loc.y], [loc.z]") rig = W user.drop_item() diff --git a/code/modules/recycling/disposal.dm b/code/modules/recycling/disposal.dm index 21cbcd5c49d..e6a16f00765 100644 --- a/code/modules/recycling/disposal.dm +++ b/code/modules/recycling/disposal.dm @@ -169,10 +169,10 @@ msg = "[user.name] stuffs [target.name] into the [src]!" user << "You stuff [target.name] into the [src]!" - user.attack_log += text("\[[time_stamp()]\] Has placed [target.name] ([target.ckey]) in disposals.") - target.attack_log += text("\[[time_stamp()]\] Has been placed in disposals by [user.name] ([user.ckey])") + user.attack_log += text("\[[time_stamp()]\] Has placed [key_name(target)] in disposals.") + target.attack_log += text("\[[time_stamp()]\] Has been placed in disposals by [key_name(user)]") if(target.ckey) - msg_admin_attack("[user] ([user.ckey])[isAntag(user) ? "(ANTAG)" : ""] placed [target] ([target.ckey]) in a disposals unit. (JMP)") + msg_admin_attack("[key_name_admin(user)] placed [key_name_admin(target)] in a disposals unit") else return if (target.client) diff --git a/code/modules/research/xenoarchaeology/tools/ano_device_battery.dm b/code/modules/research/xenoarchaeology/tools/ano_device_battery.dm index bb1d7e30c4f..6df826f3792 100644 --- a/code/modules/research/xenoarchaeology/tools/ano_device_battery.dm +++ b/code/modules/research/xenoarchaeology/tools/ano_device_battery.dm @@ -210,6 +210,6 @@ M.lastattacker = user if(inserted_battery.battery_effect) - user.attack_log += "\[[time_stamp()]\] Tapped [M.name] ([M.ckey]) with [name] (EFFECT: [inserted_battery.battery_effect.effecttype])" - M.attack_log += "\[[time_stamp()]\] Tapped by [user.name] ([user.ckey]) with [name] (EFFECT: [inserted_battery.battery_effect.effecttype])" - msg_admin_attack("[key_name(user)][isAntag(user) ? "(ANTAG)" : ""] tapped [key_name(M)] with [name] (EFFECT: [inserted_battery.battery_effect.effecttype])" ) + user.attack_log += "\[[time_stamp()]\] Tapped [key_name(M)] with [name] (EFFECT: [inserted_battery.battery_effect.effecttype])" + M.attack_log += "\[[time_stamp()]\] Tapped by [key_name(user)] with [name] (EFFECT: [inserted_battery.battery_effect.effecttype])" + msg_admin_attack("[key_name_admin(user)] tapped [key_name_admin(M)] with [name] (EFFECT: [inserted_battery.battery_effect.effecttype])" ) diff --git a/code/modules/vehicle/train/trains/cargo/cargo_train.dm b/code/modules/vehicle/train/trains/cargo/cargo_train.dm index 1daee673201..a8f50cd5463 100644 --- a/code/modules/vehicle/train/trains/cargo/cargo_train.dm +++ b/code/modules/vehicle/train/trains/cargo/cargo_train.dm @@ -144,7 +144,7 @@ /obj/vehicle/train/cargo/trolley/RunOver(var/mob/living/carbon/human/H) ..() - attack_log += text("\[[time_stamp()]\] ran over [H.name] ([H.ckey])") + attack_log += text("\[[time_stamp()]\] ran over [key_name(H)]") /obj/vehicle/train/cargo/engine/RunOver(var/mob/living/carbon/human/H) ..() @@ -153,10 +153,10 @@ var/mob/living/carbon/human/D = load D << "\red \b You ran over [H]!" visible_message("\red \The [src] ran over [H]!") - attack_log += text("\[[time_stamp()]\] ran over [H.name] ([H.ckey]), driven by [D.name] ([D.ckey])") - msg_admin_attack("[D.name] ([D.ckey])[isAntag(D) ? "(ANTAG)" : ""] ran over [H.name] ([H.ckey]). (JMP)") + attack_log += text("\[[time_stamp()]\] ran over [key_name(H)], driven by [key_name(D)]") + msg_admin_attack("[key_name_admin(D)] ran over [key_name_admin(H)]") else - attack_log += text("\[[time_stamp()]\] ran over [H.name] ([H.ckey])") + attack_log += text("\[[time_stamp()]\] ran over [key_name(H)]") //------------------------------------------- From c92e224c34b752a60788d32410cd96aac4f2fc6d Mon Sep 17 00:00:00 2001 From: Markolie Date: Thu, 20 Aug 2015 17:28:39 +0200 Subject: [PATCH 77/89] ERT backpack update --- code/game/response_team.dm | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/code/game/response_team.dm b/code/game/response_team.dm index 03efff51ffe..09871374089 100644 --- a/code/game/response_team.dm +++ b/code/game/response_team.dm @@ -251,7 +251,7 @@ var/send_emergency_team if("Engineer") engineer_slots -= 1 M.equip_to_slot_or_del(new /obj/item/clothing/under/rank/engineer(M), slot_w_uniform) - M.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/industrial(M), slot_back) + M.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/ert/engineer(M), slot_back) M.equip_to_slot_or_del(new /obj/item/weapon/storage/box/responseteam(M), slot_in_backpack) M.equip_to_slot_or_del(new /obj/item/weapon/storage/belt/utility/full/multitool(M), slot_belt) @@ -275,7 +275,7 @@ var/send_emergency_team if("Security") security_slots -= 1 M.equip_to_slot_or_del(new /obj/item/clothing/under/rank/security(M), slot_w_uniform) - M.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/security(M), slot_back) + M.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/ert/security(M), slot_back) M.equip_to_slot_or_del(new /obj/item/weapon/storage/box/responseteam(M), slot_in_backpack) M.equip_to_slot_or_del(new /obj/item/weapon/storage/belt/security/response_team(M), slot_belt) @@ -299,7 +299,7 @@ var/send_emergency_team if("Medic") medical_slots -= 1 M.equip_to_slot_or_del(new /obj/item/clothing/under/rank/medical(M), slot_w_uniform) - M.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/medic(M), slot_back) + M.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/ert/medical(M), slot_back) M.equip_to_slot_or_del(new /obj/item/weapon/storage/box/responseteam(M), slot_in_backpack) var/obj/item/weapon/card/id/W = new(src) @@ -321,7 +321,7 @@ var/send_emergency_team if("Commander") command_slots = 0 M.equip_to_slot_or_del(new /obj/item/clothing/under/rank/centcom_officer(M), slot_w_uniform) - M.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/captain(M), slot_back) + M.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/ert/commander(M), slot_back) M.equip_to_slot_or_del(new /obj/item/weapon/storage/box/responseteam(M), slot_in_backpack) var/obj/item/weapon/card/id/W = new(src) From 1e5d0ef4c801405d7ccd463cc8bc9164c1e845af Mon Sep 17 00:00:00 2001 From: Markolie Date: Thu, 20 Aug 2015 17:31:49 +0200 Subject: [PATCH 78/89] Fix compile --- code/modules/mob/mob_helpers.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/mob/mob_helpers.dm b/code/modules/mob/mob_helpers.dm index 31f1c84e09c..ce8ef0c8cdb 100644 --- a/code/modules/mob/mob_helpers.dm +++ b/code/modules/mob/mob_helpers.dm @@ -182,7 +182,7 @@ proc/isNonCrewAntag(A) var/mob/living/carbon/C = A var/special_role = C.mind.special_role var/list/crew_roles = list("traitor", "Changeling", "Vampire", "Cultist", "Head Revolutionary", "Revolutionary", "malfunctioning AI", "Shadowling", "loyalist", "mutineer", "Response Team") - if((special_role in allowed_roles)) + if((special_role in crew_roles)) return 0 return 1 From 5205f550859cc909bedd2db15bcc8eaa0c6edf4e Mon Sep 17 00:00:00 2001 From: DZD Date: Thu, 20 Aug 2015 11:42:09 -0400 Subject: [PATCH 79/89] Shadowling dethrall fix Should fix thralls not getting their spells removed upon dethralling. --- code/game/gamemodes/shadowling/shadowling.dm | 6 +++--- .../special_shadowling_abilities.dm | 20 +++++++++---------- 2 files changed, 13 insertions(+), 13 deletions(-) diff --git a/code/game/gamemodes/shadowling/shadowling.dm b/code/game/gamemodes/shadowling/shadowling.dm index 8ce55e77526..421582d26a1 100644 --- a/code/game/gamemodes/shadowling/shadowling.dm +++ b/code/game/gamemodes/shadowling/shadowling.dm @@ -152,9 +152,9 @@ Made by Xhuis update_shadow_icons_added(new_thrall_mind) new_thrall_mind.current.attack_log += "\[[time_stamp()]\] Became a thrall" new_thrall_mind.current.add_language("Shadowling Hivemind") - new_thrall_mind.current.AddSpell(new /obj/effect/proc_holder/spell/targeted/lesser_glare) - new_thrall_mind.current.AddSpell(new /obj/effect/proc_holder/spell/targeted/lesser_shadow_walk) - //new_thrall_mind.current.AddSpell(new /obj/effect/proc_holder/spell/targeted/thrall_vision) //Uncomment when vision code is unfucked. + new_thrall_mind.AddSpell(new /obj/effect/proc_holder/spell/targeted/lesser_glare) + new_thrall_mind.AddSpell(new /obj/effect/proc_holder/spell/targeted/lesser_shadow_walk) + //new_thrall_mind.AddSpell(new /obj/effect/proc_holder/spell/targeted/thrall_vision) //Uncomment when vision code is unfucked. new_thrall_mind.current << "You see the truth. Reality has been torn away and you realize what a fool you've been." new_thrall_mind.current << "The shadowlings are your masters. Serve them above all else and ensure they complete their goals." new_thrall_mind.current << "You may not harm other thralls or the shadowlings. However, you do not need to obey other thralls." diff --git a/code/game/gamemodes/shadowling/special_shadowling_abilities.dm b/code/game/gamemodes/shadowling/special_shadowling_abilities.dm index 46d05fa38a9..1566e3b254b 100644 --- a/code/game/gamemodes/shadowling/special_shadowling_abilities.dm +++ b/code/game/gamemodes/shadowling/special_shadowling_abilities.dm @@ -91,11 +91,11 @@ var/list/possibleShadowlingNames = list("U'ruan", "Y`shej", "Nex", "Hel-uae", "N sleep(10) H << "Your powers are awoken. You may now live to your fullest extent. Remember your goal. Cooperate with your thralls and allies." H.mind.remove_spell(/obj/effect/proc_holder/spell/targeted/shadowling_hatch) - H.AddSpell(new /obj/effect/proc_holder/spell/targeted/glare) - H.AddSpell(new /obj/effect/proc_holder/spell/aoe_turf/veil) - H.AddSpell(new /obj/effect/proc_holder/spell/targeted/shadow_walk) - H.AddSpell(new /obj/effect/proc_holder/spell/aoe_turf/flashfreeze) - H.AddSpell(new /obj/effect/proc_holder/spell/targeted/collective_mind) + H.mind.AddSpell(new /obj/effect/proc_holder/spell/targeted/glare) + H.mind.AddSpell(new /obj/effect/proc_holder/spell/aoe_turf/veil) + H.mind.AddSpell(new /obj/effect/proc_holder/spell/targeted/shadow_walk) + H.mind.AddSpell(new /obj/effect/proc_holder/spell/aoe_turf/flashfreeze) + H.mind.AddSpell(new /obj/effect/proc_holder/spell/targeted/collective_mind) /obj/effect/proc_holder/spell/targeted/shadowling_ascend name = "Ascend" @@ -156,11 +156,11 @@ var/list/possibleShadowlingNames = list("U'ruan", "Y`shej", "Nex", "Hel-uae", "N H.mind.transfer_to(A) A.name = H.real_name A.languages = H.languages - A.AddSpell(new /obj/effect/proc_holder/spell/targeted/annihilate) - A.AddSpell(new /obj/effect/proc_holder/spell/targeted/hypnosis) - A.AddSpell(new /obj/effect/proc_holder/spell/targeted/shadowling_phase_shift) - A.AddSpell(new /obj/effect/proc_holder/spell/aoe_turf/ascendant_storm) - A.AddSpell(new /obj/effect/proc_holder/spell/targeted/shadowlingAscendantTransmit) + A.mind.AddSpell(new /obj/effect/proc_holder/spell/targeted/annihilate) + A.mind.AddSpell(new /obj/effect/proc_holder/spell/targeted/hypnosis) + A.mind.AddSpell(new /obj/effect/proc_holder/spell/targeted/shadowling_phase_shift) + A.mind.AddSpell(new /obj/effect/proc_holder/spell/aoe_turf/ascendant_storm) + A.mind.AddSpell(new /obj/effect/proc_holder/spell/targeted/shadowlingAscendantTransmit) if(A.real_name) A.real_name = H.real_name H.invisibility = 60 //This is pretty bad, but is also necessary for the shuttle call to function properly From 59a86e57114bdd166176022125785973a4d88272 Mon Sep 17 00:00:00 2001 From: Markolie Date: Thu, 20 Aug 2015 18:47:19 +0200 Subject: [PATCH 80/89] Make nuclear bomb use wires datum --- code/datums/wires/nuclearbomb.dm | 60 +++++ code/game/gamemodes/nuclear/nuclearbomb.dm | 272 ++++++++------------- nano/templates/nuclear_bomb.tmpl | 121 ++++----- paradise.dme | 1 + 4 files changed, 211 insertions(+), 243 deletions(-) create mode 100644 code/datums/wires/nuclearbomb.dm diff --git a/code/datums/wires/nuclearbomb.dm b/code/datums/wires/nuclearbomb.dm new file mode 100644 index 00000000000..45485c6f272 --- /dev/null +++ b/code/datums/wires/nuclearbomb.dm @@ -0,0 +1,60 @@ +/datum/wires/nuclearbomb + holder_type = /obj/machinery/nuclearbomb + random = 1 + wire_count = 7 + +var/const/NUCLEARBOMB_WIRE_LIGHT = 1 +var/const/NUCLEARBOMB_WIRE_TIMING = 2 +var/const/NUCLEARBOMB_WIRE_SAFETY = 4 + +/datum/wires/nuclearbomb/CanUse(var/mob/living/L) + var/obj/machinery/nuclearbomb/N = holder + if(N.panel_open) + return 1 + return 0 + +/datum/wires/nuclearbomb/GetInteractWindow() + var/obj/machinery/nuclearbomb/N = holder + . += ..() + . += "
The device is [N.timing ? "shaking!" : "still."]
" + . += "The device is is [N.safety ? "quiet" : "whirring"].
" + . += "The lights are [N.lighthack ? "static" : "functional"].
" + +/datum/wires/nuclearbomb/UpdatePulsed(var/index) + var/obj/machinery/nuclearbomb/N = holder + switch(index) + if(NUCLEARBOMB_WIRE_LIGHT) + N.lighthack = !N.lighthack + spawn(100) + N.lighthack = !N.lighthack + if(NUCLEARBOMB_WIRE_TIMING) + if(N.timing) + spawn + N.explode() + if(NUCLEARBOMB_WIRE_SAFETY) + N.safety = !N.safety + spawn(100) + N.safety = !N.safety + if(N.safety == 1) + N.visible_message("\blue The [N] quiets down.") + if(!N.lighthack) + if (N.icon_state == "nuclearbomb2") + N.icon_state = "nuclearbomb1" + else + N.visible_message("\blue The [N] emits a quiet whirling noise!") + +/datum/wires/nuclearbomb/UpdateCut(var/index, var/mended) + var/obj/machinery/nuclearbomb/N = holder + switch(index) + if(NUCLEARBOMB_WIRE_SAFETY) + if(N.timing) + spawn + N.explode() + if(NUCLEARBOMB_WIRE_TIMING) + if(!N.lighthack) + if (N.icon_state == "nuclearbomb2") + N.icon_state = "nuclearbomb1" + N.timing = 0 + bomb_set = 0 + if(NUCLEARBOMB_WIRE_LIGHT) + N.lighthack = !N.lighthack diff --git a/code/game/gamemodes/nuclear/nuclearbomb.dm b/code/game/gamemodes/nuclear/nuclearbomb.dm index faf3f353c16..a23d3c61d2e 100644 --- a/code/game/gamemodes/nuclear/nuclearbomb.dm +++ b/code/game/gamemodes/nuclear/nuclearbomb.dm @@ -9,7 +9,6 @@ var/bomb_set var/deployable = 0.0 var/extended = 0.0 var/lighthack = 0 - var/opened = 0.0 var/timeleft = 120.0 var/timing = 0.0 var/r_code = "ADMIN" @@ -17,15 +16,12 @@ var/bomb_set var/yes_code = 0.0 var/safety = 1.0 var/obj/item/weapon/disk/nuclear/auth = null - var/list/wires = list() - var/light_wire - var/safety_wire - var/timing_wire var/removal_stage = 0 // 0 is no removal, 1 is covers removed, 2 is covers open, 3 is sealant open, 4 is unwrenched, 5 is removed from bolts. var/lastentered var/is_syndicate = 0 use_power = 0 unacidable = 1 + var/datum/wires/nuclearbomb/wires = null /obj/machinery/nuclearbomb/syndicate is_syndicate = 1 @@ -33,23 +29,14 @@ var/bomb_set /obj/machinery/nuclearbomb/New() ..() r_code = "[rand(10000, 99999.0)]"//Creates a random code upon object spawn. - src.wires["Red"] = 0 - src.wires["Blue"] = 0 - src.wires["Green"] = 0 - src.wires["Marigold"] = 0 - src.wires["Fuschia"] = 0 - src.wires["Black"] = 0 - src.wires["Pearl"] = 0 - var/list/w = list("Red","Blue","Green","Marigold","Black","Fuschia","Pearl") - src.light_wire = pick(w) - w -= src.light_wire - src.timing_wire = pick(w) - w -= src.timing_wire - src.safety_wire = pick(w) - w -= src.safety_wire - + wires = new/datum/wires/nuclearbomb(src) + +/obj/machinery/nuclearbomb/Destroy() + qdel(wires) + return ..() + /obj/machinery/nuclearbomb/process() - if (src.timing) + if (timing) bomb_set = 1 //So long as there is one nuke timing, it means one nuke is armed. timeleft = max(timeleft - 2, 0) // 2 seconds per process() if (timeleft <= 0) @@ -60,40 +47,38 @@ var/bomb_set /obj/machinery/nuclearbomb/attackby(obj/item/weapon/O as obj, mob/user as mob, params) if (istype(O, /obj/item/weapon/screwdriver)) - src.add_fingerprint(user) - if (src.auth) - if (src.opened == 0) - src.opened = 1 + add_fingerprint(user) + if (auth) + if (panel_open == 0) + panel_open = 1 overlays += image(icon, "npanel_open") user << "You unscrew the control panel of [src]." else - src.opened = 0 + panel_open = 0 overlays -= image(icon, "npanel_open") user << "You screw the control panel of [src] back on." else - if (src.opened == 0) + if (panel_open == 0) user << "[src] emits a buzzing noise, the panel staying locked in." - if (src.opened == 1) - src.opened = 0 + if (panel_open == 1) + panel_open = 0 overlays -= image(icon, "npanel_open") user << "You screw the control panel of [src] back on." flick("nuclearbombc", src) - ui_interact(user) return - if (istype(O, /obj/item/device/multitool) || istype(O, /obj/item/weapon/wirecutters)) - ui_interact(user) + if (panel_open && (istype(O, /obj/item/device/multitool) || istype(O, /obj/item/weapon/wirecutters))) + return attack_hand(user) - if (src.extended) + if (extended) if (istype(O, /obj/item/weapon/disk/nuclear)) usr.drop_item() O.loc = src - src.auth = O - src.add_fingerprint(user) - ui_interact(user) - return + auth = O + add_fingerprint(user) + return attack_hand(user) - if (src.anchored) + if (anchored) switch(removal_stage) if(0) if(istype(O,/obj/item/weapon/weldingtool)) @@ -163,73 +148,56 @@ var/bomb_set ..() /obj/machinery/nuclearbomb/attack_ghost(mob/user as mob) - ui_interact(user) + attack_hand(user) /obj/machinery/nuclearbomb/attack_hand(mob/user as mob) - if (src.extended) - if (src.opened) + if (extended) + if (panel_open) + wires.Interact(user) + else ui_interact(user) - else if (src.deployable) + else if (deployable) if(removal_stage < 5) - src.anchored = 1 + anchored = 1 visible_message("\red With a steely snap, bolts slide out of [src] and anchor it to the flooring!") else visible_message("\red \The [src] makes a highly unpleasant crunching noise. It looks like the anchoring bolts have been cut.") - if(!src.lighthack) + if(!lighthack) flick("nuclearbombc", src) - src.icon_state = "nuclearbomb1" - src.extended = 1 + icon_state = "nuclearbomb1" + extended = 1 return /obj/machinery/nuclearbomb/ui_interact(mob/user, ui_key = "main", var/datum/nanoui/ui = null, var/force_open = 1) var/data[0] - var/uiwidth - var/uiheight - var/uititle data["is_syndicate"] = is_syndicate - if(!src.opened) - data["hacking"] = 0 - data["auth"] = is_auth(user) - if (is_auth(user)) - if (src.yes_code) - data["authstatus"] = src.timing ? "Functional/Set" : "Functional" - else - data["authstatus"] = "Auth. S2" + data["hacking"] = 0 + data["auth"] = is_auth(user) + if (is_auth(user)) + if (yes_code) + data["authstatus"] = timing ? "Functional/Set" : "Functional" else - if (src.timing) - data["authstatus"] = "Set" - else - data["authstatus"] = "Auth. S1" - data["safe"] = src.safety ? "Safe" : "Engaged" - data["time"] = src.timeleft - data["timer"] = src.timing - data["safety"] = src.safety - data["anchored"] = src.anchored - data["yescode"] = src.yes_code - data["message"] = "AUTH" - if (is_auth(user)) - data["message"] = src.code - if (src.yes_code) - data["message"] = "*****" - uiwidth = 300 - uiheight = 510 - uititle = "Nuke Control Panel" + data["authstatus"] = "Auth. S2" else - data["hacking"] = 1 - var/list/tempwires[0] - for(var/wire in src.wires) - tempwires.Add(list(list("name" = wire, "cut" = src.wires[wire]))) - data["wires"] = tempwires - data["timing"] = src.timing - data["safety"] = src.safety - data["lighthack"] = src.lighthack - uiwidth = 420 - uiheight = 440 - uititle = "Nuclear Bomb Defusion" + if (timing) + data["authstatus"] = "Set" + else + data["authstatus"] = "Auth. S1" + data["safe"] = safety ? "Safe" : "Engaged" + data["time"] = timeleft + data["timer"] = timing + data["safety"] = safety + data["anchored"] = anchored + data["yescode"] = yes_code + data["message"] = "AUTH" + if (is_auth(user)) + data["message"] = code + if (yes_code) + data["message"] = "*****" ui = nanomanager.try_update_ui(user, src, ui_key, ui, data, force_open) if (!ui) - ui = new(user, src, ui_key, "nuclear_bomb.tmpl", uititle, uiwidth, uiheight) + ui = new(user, src, ui_key, "nuclear_bomb.tmpl", "Nuke Control Panel", 300, 510) ui.set_initial_data(data) ui.open() ui.set_auto_update(1) @@ -242,12 +210,12 @@ var/bomb_set if(usr.stat || !usr.canmove || usr.restrained()) return - if (src.deployable) + if (deployable) usr << "\red You close several panels to make [src] undeployable." - src.deployable = 0 + deployable = 0 else usr << "\red You adjust some panels to make [src] deployable." - src.deployable = 1 + deployable = 1 return /obj/machinery/nuclearbomb/proc/is_auth(user as mob) @@ -262,73 +230,29 @@ var/bomb_set if(..()) return 1 - if(href_list["act"]) - var/temp_wire = href_list["wire"] - if(href_list["act"] == "pulse") - if (!istype(usr.get_active_hand(), /obj/item/device/multitool)) - usr << "You need a multitool!" - else - if(src.wires[temp_wire]) - usr << "You can't pulse a cut wire." - else - if(src.light_wire == temp_wire) - src.lighthack = !src.lighthack - spawn(100) src.lighthack = !src.lighthack - if(src.timing_wire == temp_wire) - if(src.timing) - spawn - explode() - if(src.safety_wire == temp_wire) - src.safety = !src.safety - spawn(100) src.safety = !src.safety - if(src.safety == 1) - visible_message("\blue The [src] quiets down.") - if(!src.lighthack) - if (src.icon_state == "nuclearbomb2") - src.icon_state = "nuclearbomb1" - else - visible_message("\blue The [src] emits a quiet whirling noise!") - if(href_list["act"] == "wire") - if (!istype(usr.get_active_hand(), /obj/item/weapon/wirecutters)) - usr << "You need wirecutters!" - else - wires[temp_wire] = !wires[temp_wire] - if(src.safety_wire == temp_wire) - if(src.timing) - spawn - explode() - if(src.timing_wire == temp_wire) - if(!src.lighthack) - if (src.icon_state == "nuclearbomb2") - src.icon_state = "nuclearbomb1" - src.timing = 0 - bomb_set = 0 - if(src.light_wire == temp_wire) - src.lighthack = !src.lighthack - if (href_list["auth"]) - if (src.auth) - src.auth.loc = src.loc - src.yes_code = 0 - src.auth = null + if (auth) + auth.loc = loc + yes_code = 0 + auth = null else var/obj/item/I = usr.get_active_hand() if (istype(I, /obj/item/weapon/disk/nuclear)) usr.drop_item() I.loc = src - src.auth = I + auth = I if (is_auth(usr)) if (href_list["type"]) if (href_list["type"] == "E") - if (src.code == src.r_code) - src.yes_code = 1 - src.code = null + if (code == r_code) + yes_code = 1 + code = null else - src.code = "ERROR" + code = "ERROR" else if (href_list["type"] == "R") - src.yes_code = 0 - src.code = null + yes_code = 0 + code = null else lastentered = text("[]", href_list["type"]) if (text2num(lastentered) == null) @@ -336,48 +260,48 @@ var/bomb_set message_admins("[key_name_admin(usr)] tried to exploit a nuclear bomb by entering non-numerical codes: [lastentered]! ([LOC ? "JMP" : "null"])", 0) log_admin("EXPLOIT: [key_name(usr)] tried to exploit a nuclear bomb by entering non-numerical codes: [lastentered]!") else - src.code += lastentered - if (length(src.code) > 5) - src.code = "ERROR" - if (src.yes_code) + code += lastentered + if (length(code) > 5) + code = "ERROR" + if (yes_code) if (href_list["time"]) var/time = text2num(href_list["time"]) - src.timeleft += time - src.timeleft = min(max(round(src.timeleft), 120), 600) + timeleft += time + timeleft = min(max(round(src.timeleft), 120), 600) if (href_list["timer"]) - if (src.timing == -1.0) + if (timing == -1.0) nanomanager.update_uis(src) return - if (src.safety) + if (safety) usr << "\red The safety is still on." nanomanager.update_uis(src) return - src.timing = !( src.timing ) - if (src.timing) - if(!src.lighthack) - src.icon_state = "nuclearbomb2" - if(!src.safety) - bomb_set = 1//There can still be issues with this reseting when there are multiple bombs. Not a big deal tho for Nuke/N + timing = !(timing) + if (timing) + if(!lighthack) + icon_state = "nuclearbomb2" + if(!safety) + bomb_set = 1//There can still be issues with this resetting when there are multiple bombs. Not a big deal though for Nuke/N else bomb_set = 0 else bomb_set = 0 - if(!src.lighthack) - src.icon_state = "nuclearbomb1" + if(!lighthack) + icon_state = "nuclearbomb1" if (href_list["safety"]) - src.safety = !( src.safety ) + safety = !(safety) if(safety) - src.timing = 0 + timing = 0 bomb_set = 0 if (href_list["anchor"]) if(removal_stage == 5) - src.anchored = 0 + anchored = 0 visible_message("\red \The [src] makes a highly unpleasant crunching noise. It looks like the anchoring bolts have been cut.") nanomanager.update_uis(src) return - src.anchored = !( src.anchored ) - if(src.anchored) + anchored = !(anchored) + if(anchored) visible_message("\red With a steely snap, bolts slide out of [src] and anchor it to the flooring.") else visible_message("\red The anchoring bolts slide back into the depths of [src].") @@ -388,7 +312,7 @@ var/bomb_set return /obj/machinery/nuclearbomb/blob_act() - if (src.timing == -1.0) + if (timing == -1.0) return else return ..() @@ -396,14 +320,14 @@ var/bomb_set #define NUKERANGE 80 /obj/machinery/nuclearbomb/proc/explode() - if (src.safety) - src.timing = 0 + if (safety) + timing = 0 return - src.timing = -1.0 - src.yes_code = 0 - src.safety = 1 - if(!src.lighthack) - src.icon_state = "nuclearbomb3" + timing = -1.0 + yes_code = 0 + safety = 1 + if(!lighthack) + icon_state = "nuclearbomb3" playsound(src,'sound/machines/Alarm.ogg',100,0,5) if (ticker && ticker.mode) ticker.mode.explosion_in_progress = 1 diff --git a/nano/templates/nuclear_bomb.tmpl b/nano/templates/nuclear_bomb.tmpl index 087e3efb640..0eb68e9bd8e 100644 --- a/nano/templates/nuclear_bomb.tmpl +++ b/nano/templates/nuclear_bomb.tmpl @@ -5,84 +5,67 @@ Used In File(s): \code\game\gamemodes\nuclear\nuclearbomb.dm {{if data.is_syndicate}} {{:helper.syndicateMode()}} {{/if}} -{{if !data.hacking}} +
+ Authorization Disk: {{if data.auth}}{{:helper.link('++++++++++', 'eject', {'auth' : 1})}} {{else}} {{:helper.link('----------', 'disk', {'auth' : 1})}}{{/if}} +
+
+
+
Status: {{:data.authstatus}} - {{:data.safe}}
+
Timer: {{:data.time}}
+
+
- Authorization Disk: {{if data.auth}}{{:helper.link('++++++++++', 'eject', {'auth' : 1})}} {{else}} {{:helper.link('----------', 'disk', {'auth' : 1})}}{{/if}} -
+ {{if data.auth && data.yescode}} +
+ Timer: {{:helper.link('On', 'play', {'timer' : 1}, data.timer ? 'selected' : '')}}{{:helper.link('Off', 'stop', {'timer' : 0}, !data.timer ? 'selected' : '')}} +
+
+ Time: {{:helper.link('--', '', {'time' : -10}, data.time <= 60 ? 'disabled' : '')}}{{:helper.link('-', '', {'time' : -1}, data.time <= 60 ? 'disabled' : '')}} {{:data.time}} {{:helper.link('+', '', {'time' : 1})}}{{:helper.link('++', '', {'time' : 10})}} +
+ {{else}} +
+ Timer: {{:helper.link('On', 'play', null, 'disabled')}}{{:helper.link('Off', 'pause', null, 'disabled')}} +
+
+ Time: {{:helper.link('-', '', null, 'disabled')}}{{:helper.link('-', '', null, 'disabled')}} {{:data.time}} {{:helper.link('+', '', null, 'disabled')}}{{:helper.link('++', '', null, 'disabled')}} +
+ {{/if}} +
+
+ {{if data.auth && data.yescode}} +
+ Safety: {{:helper.link('Engaged', 'info', {'safety' : 1}, data.safety ? 'selected' : '')}}{{:helper.link('Disengaged', 'alert', {'safety' : 0}, data.safety ? '' : 'selected')}} +
+
+ Anchor: {{:helper.link('Engaged', 'locked', {'anchor' : 1}, data.anchored ? 'selected' : '')}}{{:helper.link('Disengaged', 'unlocked', {'anchor' : 0}, data.anchored ? '' : 'selected')}} +
+ {{else}} +
+ Safety: {{:helper.link('Engaged', 'info', null, 'disabled')}}{{:helper.link('Disengaged', 'alert', null, 'disabled')}} +
+
+ Anchor: {{:helper.link('Engaged', 'locked', null, 'disabled')}}{{:helper.link('Disengaged', 'unlocked', null, 'disabled')}} +
+ {{/if}} +

+
+
-
Status: {{:data.authstatus}} - {{:data.safe}}
-
Timer: {{:data.time}}
+ >{{if data.message}} {{:data.message}}{{/if}}
- {{if data.auth && data.yescode}} -
- Timer: {{:helper.link('On', 'play', {'timer' : 1}, data.timer ? 'selected' : '')}}{{:helper.link('Off', 'stop', {'timer' : 0}, !data.timer ? 'selected' : '')}} -
-
- Time: {{:helper.link('--', '', {'time' : -10}, data.time <= 60 ? 'disabled' : '')}}{{:helper.link('-', '', {'time' : -1}, data.time <= 60 ? 'disabled' : '')}} {{:data.time}} {{:helper.link('+', '', {'time' : 1})}}{{:helper.link('++', '', {'time' : 10})}} -
- {{else}} -
- Timer: {{:helper.link('On', 'play', null, 'disabled')}}{{:helper.link('Off', 'pause', null, 'disabled')}} -
-
- Time: {{:helper.link('-', '', null, 'disabled')}}{{:helper.link('-', '', null, 'disabled')}} {{:data.time}} {{:helper.link('+', '', null, 'disabled')}}{{:helper.link('++', '', null, 'disabled')}} -
- {{/if}} + {{:helper.link('1', '', {'type' : 1})}}{{:helper.link('2', '', {'type' : 2})}}{{:helper.link('3', '', {'type' : 3})}}
- {{if data.auth && data.yescode}} -
- Safety: {{:helper.link('Engaged', 'info', {'safety' : 1}, data.safety ? 'selected' : '')}}{{:helper.link('Disengaged', 'alert', {'safety' : 0}, data.safety ? '' : 'selected')}} -
-
- Anchor: {{:helper.link('Engaged', 'locked', {'anchor' : 1}, data.anchored ? 'selected' : '')}}{{:helper.link('Disengaged', 'unlocked', {'anchor' : 0}, data.anchored ? '' : 'selected')}} -
- {{else}} -
- Safety: {{:helper.link('Engaged', 'info', null, 'disabled')}}{{:helper.link('Disengaged', 'alert', null, 'disabled')}} -
-
- Anchor: {{:helper.link('Engaged', 'locked', null, 'disabled')}}{{:helper.link('Disengaged', 'unlocked', null, 'disabled')}} -
- {{/if}} -
-
-
-
-
- >{{if data.message}} {{:data.message}}{{/if}} + {{:helper.link('4', '', {'type' : 4})}}{{:helper.link('5', '', {'type' : 5})}}{{:helper.link('6', '', {'type' : 6})}}
-
- {{:helper.link('1', '', {'type' : 1})}}{{:helper.link('2', '', {'type' : 2})}}{{:helper.link('3', '', {'type' : 3})}} -
-
- {{:helper.link('4', '', {'type' : 4})}}{{:helper.link('5', '', {'type' : 5})}}{{:helper.link('6', '', {'type' : 6})}} -
-
- {{:helper.link('7', '', {'type' : 7})}}{{:helper.link('8', '', {'type' : 8})}}{{:helper.link('9', '', {'type' : 9})}} -
-
- {{:helper.link('R', '', {'type' : 'R'})}}{{:helper.link('0', '', {'type' : 0})}}{{:helper.link('E', '', {'type' : 'E'})}} -
+ {{:helper.link('7', '', {'type' : 7})}}{{:helper.link('8', '', {'type' : 8})}}{{:helper.link('9', '', {'type' : 9})}} +
+
+ {{:helper.link('R', '', {'type' : 'R'})}}{{:helper.link('0', '', {'type' : 0})}}{{:helper.link('E', '', {'type' : 'E'})}}
-{{else}} -
-

Exposed Wires

- {{for data.wires}} -
-
{{:value.name}}
-
{{:helper.link(value.cut ? 'Mend' : 'Cut', '', {'wire' : value.name, 'act' : 'wire'})}} {{:helper.link('Pulse', '', {'wire' : value.name, 'act' : 'pulse'})}}
-
- {{/for}} -
-
- The device is {{if data.timing}}shaking!{{else}}still.{{/if}}
- The device is {{if data.safety}}quiet.{{else}}whirring.{{/if}}
- The lights are {{if data.lighthack}}static.{{else}}functional.{{/if}}
-
-{{/if}} \ No newline at end of file +
\ No newline at end of file diff --git a/paradise.dme b/paradise.dme index 2126b1b0b21..a6a115cd804 100644 --- a/paradise.dme +++ b/paradise.dme @@ -225,6 +225,7 @@ #include "code\datums\wires\camera.dm" #include "code\datums\wires\explosive.dm" #include "code\datums\wires\mulebot.dm" +#include "code\datums\wires\nuclearbomb.dm" #include "code\datums\wires\particle_accelerator.dm" #include "code\datums\wires\radio.dm" #include "code\datums\wires\robot.dm" From 4bd4452086f2bd17a57aee89727bfa6b0d9d02a6 Mon Sep 17 00:00:00 2001 From: Markolie Date: Thu, 20 Aug 2015 19:21:46 +0200 Subject: [PATCH 81/89] More nuke updates --- code/datums/wires/nuclearbomb.dm | 3 ++ code/game/gamemodes/nuclear/nuclearbomb.dm | 36 ++++++++++++++-------- nano/templates/nuclear_bomb.tmpl | 2 +- 3 files changed, 28 insertions(+), 13 deletions(-) diff --git a/code/datums/wires/nuclearbomb.dm b/code/datums/wires/nuclearbomb.dm index 45485c6f272..47cce60e349 100644 --- a/code/datums/wires/nuclearbomb.dm +++ b/code/datums/wires/nuclearbomb.dm @@ -30,12 +30,14 @@ var/const/NUCLEARBOMB_WIRE_SAFETY = 4 if(NUCLEARBOMB_WIRE_TIMING) if(N.timing) spawn + message_admins("[key_name_admin(usr)] pulsed a nuclear bomb's detonation wire, causing it to explode (JMP)") N.explode() if(NUCLEARBOMB_WIRE_SAFETY) N.safety = !N.safety spawn(100) N.safety = !N.safety if(N.safety == 1) + set_security_level(N.previous_level) N.visible_message("\blue The [N] quiets down.") if(!N.lighthack) if (N.icon_state == "nuclearbomb2") @@ -49,6 +51,7 @@ var/const/NUCLEARBOMB_WIRE_SAFETY = 4 if(NUCLEARBOMB_WIRE_SAFETY) if(N.timing) spawn + message_admins("[key_name_admin(usr)] cut a nuclear bomb's timing wire, causing it to explode (JMP)") N.explode() if(NUCLEARBOMB_WIRE_TIMING) if(!N.lighthack) diff --git a/code/game/gamemodes/nuclear/nuclearbomb.dm b/code/game/gamemodes/nuclear/nuclearbomb.dm index a23d3c61d2e..4566c9d9d8f 100644 --- a/code/game/gamemodes/nuclear/nuclearbomb.dm +++ b/code/game/gamemodes/nuclear/nuclearbomb.dm @@ -6,21 +6,22 @@ var/bomb_set icon = 'icons/obj/stationobjs.dmi' icon_state = "nuclearbomb0" density = 1 - var/deployable = 0.0 - var/extended = 0.0 + var/deployable = 0 + var/extended = 0 var/lighthack = 0 - var/timeleft = 120.0 - var/timing = 0.0 + var/timeleft = 120 + var/timing = 0 var/r_code = "ADMIN" var/code = "" - var/yes_code = 0.0 - var/safety = 1.0 + var/yes_code = 0 + var/safety = 1 var/obj/item/weapon/disk/nuclear/auth = null var/removal_stage = 0 // 0 is no removal, 1 is covers removed, 2 is covers open, 3 is sealant open, 4 is unwrenched, 5 is removed from bolts. var/lastentered var/is_syndicate = 0 use_power = 0 unacidable = 1 + var/previous_level = "" var/datum/wires/nuclearbomb/wires = null /obj/machinery/nuclearbomb/syndicate @@ -30,6 +31,7 @@ var/bomb_set ..() r_code = "[rand(10000, 99999.0)]"//Creates a random code upon object spawn. wires = new/datum/wires/nuclearbomb(src) + previous_level = get_security_level() /obj/machinery/nuclearbomb/Destroy() qdel(wires) @@ -53,10 +55,12 @@ var/bomb_set panel_open = 1 overlays += image(icon, "npanel_open") user << "You unscrew the control panel of [src]." + playsound(src, 'sound/items/Screwdriver.ogg', 50, 1) else panel_open = 0 overlays -= image(icon, "npanel_open") user << "You screw the control panel of [src] back on." + playsound(src, 'sound/items/Screwdriver.ogg', 50, 1) else if (panel_open == 0) user << "[src] emits a buzzing noise, the panel staying locked in." @@ -64,6 +68,7 @@ var/bomb_set panel_open = 0 overlays -= image(icon, "npanel_open") user << "You screw the control panel of [src] back on." + playsound(src, 'sound/items/Screwdriver.ogg', 50, 1) flick("nuclearbombc", src) return @@ -281,16 +286,20 @@ var/bomb_set if(!lighthack) icon_state = "nuclearbomb2" if(!safety) - bomb_set = 1//There can still be issues with this resetting when there are multiple bombs. Not a big deal though for Nuke/N + message_admins("[key_name_admin(usr)] engaged a nuclear bomb (JMP)") + set_security_level("delta") + bomb_set = 1 //There can still be issues with this resetting when there are multiple bombs. Not a big deal though for Nuke/N else bomb_set = 0 else + set_security_level(previous_level) bomb_set = 0 if(!lighthack) icon_state = "nuclearbomb1" if (href_list["safety"]) safety = !(safety) if(safety) + set_security_level(previous_level) timing = 0 bomb_set = 0 if (href_list["anchor"]) @@ -299,12 +308,15 @@ var/bomb_set visible_message("\red \The [src] makes a highly unpleasant crunching noise. It looks like the anchoring bolts have been cut.") nanomanager.update_uis(src) return - - anchored = !(anchored) - if(anchored) - visible_message("\red With a steely snap, bolts slide out of [src] and anchor it to the flooring.") + + if(!isinspace()) + anchored = !(anchored) + if(anchored) + visible_message("\red With a steely snap, bolts slide out of [src] and anchor it to the flooring.") + else + visible_message("\red The anchoring bolts slide back into the depths of [src].") else - visible_message("\red The anchoring bolts slide back into the depths of [src].") + usr << "There is nothing to anchor to!" nanomanager.update_uis(src) diff --git a/nano/templates/nuclear_bomb.tmpl b/nano/templates/nuclear_bomb.tmpl index 0eb68e9bd8e..3536d17713f 100644 --- a/nano/templates/nuclear_bomb.tmpl +++ b/nano/templates/nuclear_bomb.tmpl @@ -20,7 +20,7 @@ Used In File(s): \code\game\gamemodes\nuclear\nuclearbomb.dm Timer: {{:helper.link('On', 'play', {'timer' : 1}, data.timer ? 'selected' : '')}}{{:helper.link('Off', 'stop', {'timer' : 0}, !data.timer ? 'selected' : '')}}
- Time: {{:helper.link('--', '', {'time' : -10}, data.time <= 60 ? 'disabled' : '')}}{{:helper.link('-', '', {'time' : -1}, data.time <= 60 ? 'disabled' : '')}} {{:data.time}} {{:helper.link('+', '', {'time' : 1})}}{{:helper.link('++', '', {'time' : 10})}} + Time: {{:helper.link('--', '', {'time' : -10}, data.time <= 120 ? 'disabled' : '')}}{{:helper.link('-', '', {'time' : -1}, data.time <= 120 ? 'disabled' : '')}} {{:data.time}} {{:helper.link('+', '', {'time' : 1})}}{{:helper.link('++', '', {'time' : 10})}}
{{else}}
From 93e320c64818261710a7da682be31f1d6aebb63c Mon Sep 17 00:00:00 2001 From: Markolie Date: Thu, 20 Aug 2015 19:33:35 +0200 Subject: [PATCH 82/89] Add mob sprites to ERT backpacks --- code/modules/admin/verbs/debug.dm | 4 ++-- icons/mob/back.dmi | Bin 73885 -> 76663 bytes 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/code/modules/admin/verbs/debug.dm b/code/modules/admin/verbs/debug.dm index eb6b02cc626..1673171ceec 100644 --- a/code/modules/admin/verbs/debug.dm +++ b/code/modules/admin/verbs/debug.dm @@ -922,7 +922,7 @@ But you can call procs that are of type /mob/living/carbon/human/proc/ for that M.equip_to_slot_or_del(new /obj/item/device/radio/headset/ert/alt(M), slot_l_ear) M.equip_to_slot_or_del(new /obj/item/weapon/gun/energy/gun(M), slot_belt) M.equip_to_slot_or_del(new /obj/item/clothing/glasses/sunglasses(M), slot_glasses) - M.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/satchel(M), slot_back) + M.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/ert(M), slot_back) var/obj/item/weapon/card/id/W = new(M) W.name = "[M.real_name]'s ID Card (Emergency Response Team - Member)" @@ -944,7 +944,7 @@ But you can call procs that are of type /mob/living/carbon/human/proc/ for that M.equip_to_slot_or_del(new /obj/item/device/radio/headset/ert/alt(M), slot_l_ear) M.equip_to_slot_or_del(new /obj/item/weapon/gun/energy/gun(M), slot_belt) M.equip_to_slot_or_del(new /obj/item/clothing/glasses/sunglasses(M), slot_glasses) - M.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/satchel(M), slot_back) + M.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/ert/commander(M), slot_back) var/obj/item/weapon/card/id/W = new(M) W.name = "[M.real_name]'s ID Card (Emergency Response Team - Leader)" diff --git a/icons/mob/back.dmi b/icons/mob/back.dmi index 8773d2552482822f371bf8327146b04578b73398..a4c6dd0e843364e2c1fdcea4af15e3b45c22f156 100644 GIT binary patch literal 76663 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 Date: Thu, 20 Aug 2015 20:58:54 +0200 Subject: [PATCH 83/89] dsay fix --- code/modules/mob/mob_helpers.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/mob/mob_helpers.dm b/code/modules/mob/mob_helpers.dm index ce8ef0c8cdb..7108ddc42b4 100644 --- a/code/modules/mob/mob_helpers.dm +++ b/code/modules/mob/mob_helpers.dm @@ -492,7 +492,7 @@ var/list/intents = list("help","disarm","grab","harm") name = realname for(var/mob/M in player_list) - if(M.client && ((!istype(M, /mob/new_player) && M.stat == DEAD) || check_rights(R_MOD,0)) && (M.client.prefs.toggles & CHAT_DEAD)) + if(M.client && ((!istype(M, /mob/new_player) && M.stat == DEAD) || check_rights(R_MOD,0,M)) && (M.client.prefs.toggles & CHAT_DEAD)) var/follow var/lname if(subject) From eb2d2b6df9cdd8778de1b4ba6ba6902686be8342 Mon Sep 17 00:00:00 2001 From: Markolie Date: Thu, 20 Aug 2015 21:13:17 +0200 Subject: [PATCH 84/89] Another dsay fix --- code/modules/mob/mob_helpers.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/mob/mob_helpers.dm b/code/modules/mob/mob_helpers.dm index 7108ddc42b4..e64ec58e553 100644 --- a/code/modules/mob/mob_helpers.dm +++ b/code/modules/mob/mob_helpers.dm @@ -503,7 +503,7 @@ var/list/intents = list("help","disarm","grab","harm") var/mob/dead/observer/DM if(istype(subject, /mob/dead/observer)) DM = subject - if(check_rights(R_MOD,0)) // What admins see + if(check_rights(R_MOD,0,M)) // What admins see lname = "[keyname][(DM && DM.anonsay) ? "*" : (DM ? "" : "^")] ([name])" else if(DM && DM.anonsay) // If the person is actually observer they have the option to be anonymous From 175bea62cacf9edf395bc55f346385d5a71a0572 Mon Sep 17 00:00:00 2001 From: Markolie Date: Thu, 20 Aug 2015 21:25:07 +0200 Subject: [PATCH 85/89] only change alert level on non-syndi nukes --- code/datums/wires/nuclearbomb.dm | 3 ++- code/game/gamemodes/nuclear/nuclearbomb.dm | 9 ++++++--- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/code/datums/wires/nuclearbomb.dm b/code/datums/wires/nuclearbomb.dm index 47cce60e349..e260a90a02c 100644 --- a/code/datums/wires/nuclearbomb.dm +++ b/code/datums/wires/nuclearbomb.dm @@ -37,7 +37,8 @@ var/const/NUCLEARBOMB_WIRE_SAFETY = 4 spawn(100) N.safety = !N.safety if(N.safety == 1) - set_security_level(N.previous_level) + if(!is_syndicate) + set_security_level(N.previous_level) N.visible_message("\blue The [N] quiets down.") if(!N.lighthack) if (N.icon_state == "nuclearbomb2") diff --git a/code/game/gamemodes/nuclear/nuclearbomb.dm b/code/game/gamemodes/nuclear/nuclearbomb.dm index 4566c9d9d8f..0850f6ad46b 100644 --- a/code/game/gamemodes/nuclear/nuclearbomb.dm +++ b/code/game/gamemodes/nuclear/nuclearbomb.dm @@ -287,19 +287,22 @@ var/bomb_set icon_state = "nuclearbomb2" if(!safety) message_admins("[key_name_admin(usr)] engaged a nuclear bomb (JMP)") - set_security_level("delta") + if(!is_syndicate) + set_security_level("delta") bomb_set = 1 //There can still be issues with this resetting when there are multiple bombs. Not a big deal though for Nuke/N else bomb_set = 0 else - set_security_level(previous_level) + if(!is_syndicate) + set_security_level(previous_level) bomb_set = 0 if(!lighthack) icon_state = "nuclearbomb1" if (href_list["safety"]) safety = !(safety) if(safety) - set_security_level(previous_level) + if(!is_syndicate) + set_security_level(previous_level) timing = 0 bomb_set = 0 if (href_list["anchor"]) From f6c8358fa2aa0e4adb14789e0e172638c621d17a Mon Sep 17 00:00:00 2001 From: Markolie Date: Thu, 20 Aug 2015 21:57:41 +0200 Subject: [PATCH 86/89] Fix reference to nuke --- code/datums/wires/nuclearbomb.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/datums/wires/nuclearbomb.dm b/code/datums/wires/nuclearbomb.dm index e260a90a02c..0e28c23fb91 100644 --- a/code/datums/wires/nuclearbomb.dm +++ b/code/datums/wires/nuclearbomb.dm @@ -37,7 +37,7 @@ var/const/NUCLEARBOMB_WIRE_SAFETY = 4 spawn(100) N.safety = !N.safety if(N.safety == 1) - if(!is_syndicate) + if(!N.is_syndicate) set_security_level(N.previous_level) N.visible_message("\blue The [N] quiets down.") if(!N.lighthack) From 8d691a2944d5db39a4f5ecbb2515a1829663b539 Mon Sep 17 00:00:00 2001 From: Spacemanspark Date: Thu, 20 Aug 2015 16:17:38 -0500 Subject: [PATCH 87/89] Making TullyBBurnalot happy (AKA the dumbest grammar PR ever.) Tully is a nerd. --- code/modules/events/mass_hallucination.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/events/mass_hallucination.dm b/code/modules/events/mass_hallucination.dm index b3fbea5343c..c1778e060bc 100644 --- a/code/modules/events/mass_hallucination.dm +++ b/code/modules/events/mass_hallucination.dm @@ -3,4 +3,4 @@ if(!(C.species.flags & IS_SYNTHETIC)) C.hallucination += rand(50, 100) /datum/event/mass_hallucination/announce() - command_announcement.Announce("It seems that station [station_name()] is passing through a minor radiation field, this may cause some hallucination, but no further damage") \ No newline at end of file + command_announcement.Announce("It seems that station [station_name()] is passing through a minor radiation field, this may cause some hallucinations, but no further damage") From 481b13b32e01094d3a48a69a9ce94a27735b251c Mon Sep 17 00:00:00 2001 From: Alex6511 Date: Thu, 20 Aug 2015 19:46:05 -0400 Subject: [PATCH 88/89] Update event_container.dm --- code/modules/events/event_container.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/events/event_container.dm b/code/modules/events/event_container.dm index f7924a83ed7..b1fa2acbed2 100644 --- a/code/modules/events/event_container.dm +++ b/code/modules/events/event_container.dm @@ -157,7 +157,7 @@ var/global/list/severity_to_string = list(EVENT_LEVEL_MUNDANE = "Mundane", EVENT new /datum/event_meta(EVENT_LEVEL_MODERATE, "Viral Infection", /datum/event/viral_infection, 0, list(ASSIGNMENT_MEDICAL = 150)), new /datum/event_meta(EVENT_LEVEL_MODERATE, "Spider Infestation", /datum/event/spider_infestation, 100, list(ASSIGNMENT_SECURITY = 30), 1), new /datum/event_meta(EVENT_LEVEL_MODERATE, "Ion Storm", /datum/event/ion_storm, 0, list(ASSIGNMENT_AI = 50, ASSIGNMENT_CYBORG = 50, ASSIGNMENT_ENGINEER = 15, ASSIGNMENT_SCIENTIST = 5)), - new /datum/event_meta(EVENT_LEVEL_MODERATE, "Borer Infestation", /datum/event/borer_infestation, 20, list(ASSIGNMENT_SECURITY = 20), 1), + //new /datum/event_meta(EVENT_LEVEL_MODERATE, "Borer Infestation", /datum/event/borer_infestation, 20, list(ASSIGNMENT_SECURITY = 20), 1), new /datum/event_meta/alien(EVENT_LEVEL_MODERATE, "Alien Infestation", /datum/event/alien_infestation, 0, list(ASSIGNMENT_SECURITY = 15), 1), //new /datum/event_meta/ninja(EVENT_LEVEL_MODERATE, "Space Ninja", /datum/event/space_ninja, 0, list(ASSIGNMENT_SECURITY = 15), 1), // NON-BAY EVENTS From 45f6e2d34a0eb4285d1beaaf4f7ad5461b047956 Mon Sep 17 00:00:00 2001 From: Alex6511 Date: Thu, 20 Aug 2015 19:48:02 -0400 Subject: [PATCH 89/89] Update event_container.dm --- code/modules/events/event_container.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/events/event_container.dm b/code/modules/events/event_container.dm index b1fa2acbed2..f7924a83ed7 100644 --- a/code/modules/events/event_container.dm +++ b/code/modules/events/event_container.dm @@ -157,7 +157,7 @@ var/global/list/severity_to_string = list(EVENT_LEVEL_MUNDANE = "Mundane", EVENT new /datum/event_meta(EVENT_LEVEL_MODERATE, "Viral Infection", /datum/event/viral_infection, 0, list(ASSIGNMENT_MEDICAL = 150)), new /datum/event_meta(EVENT_LEVEL_MODERATE, "Spider Infestation", /datum/event/spider_infestation, 100, list(ASSIGNMENT_SECURITY = 30), 1), new /datum/event_meta(EVENT_LEVEL_MODERATE, "Ion Storm", /datum/event/ion_storm, 0, list(ASSIGNMENT_AI = 50, ASSIGNMENT_CYBORG = 50, ASSIGNMENT_ENGINEER = 15, ASSIGNMENT_SCIENTIST = 5)), - //new /datum/event_meta(EVENT_LEVEL_MODERATE, "Borer Infestation", /datum/event/borer_infestation, 20, list(ASSIGNMENT_SECURITY = 20), 1), + new /datum/event_meta(EVENT_LEVEL_MODERATE, "Borer Infestation", /datum/event/borer_infestation, 20, list(ASSIGNMENT_SECURITY = 20), 1), new /datum/event_meta/alien(EVENT_LEVEL_MODERATE, "Alien Infestation", /datum/event/alien_infestation, 0, list(ASSIGNMENT_SECURITY = 15), 1), //new /datum/event_meta/ninja(EVENT_LEVEL_MODERATE, "Space Ninja", /datum/event/space_ninja, 0, list(ASSIGNMENT_SECURITY = 15), 1), // NON-BAY EVENTS