From ecadcd830f42f36b6be1c875f795dc38cef5f3a7 Mon Sep 17 00:00:00 2001 From: Perakp Date: Mon, 6 Oct 2014 10:55:23 +0300 Subject: [PATCH 001/102] - Changelings no longer receive the absorb objective. The objective was broken because of the interaction between extract DNA and hivemind. - New objective 'Escape with identity' requires the changeling to have the DNA and ID of their target when escaping - Hallucination and transformation stings and engorged glands now require 3 absorptions. - Can't purchase abilities you can't use. Cleans up the evolution menu. - Extract DNA sting costs 1 point and doesn't count towards absorptions. - Increased chemical recharge rate from 0.5 to 2. Engorged glands increase recharge rate by 1. - You can absorb people even if you have their DNA already --- code/game/gamemodes/changeling/changeling.dm | 63 +++++++++++-------- .../gamemodes/changeling/evolution_menu.dm | 6 +- .../gamemodes/changeling/powers/absorb.dm | 14 +++-- .../gamemodes/changeling/powers/glands.dm | 5 +- .../gamemodes/changeling/powers/tiny_prick.dm | 14 +++-- code/game/gamemodes/objective.dm | 28 ++++++++- 6 files changed, 90 insertions(+), 40 deletions(-) diff --git a/code/game/gamemodes/changeling/changeling.dm b/code/game/gamemodes/changeling/changeling.dm index c10d36e7558..749e7833be6 100644 --- a/code/game/gamemodes/changeling/changeling.dm +++ b/code/game/gamemodes/changeling/changeling.dm @@ -89,15 +89,22 @@ var/list/possible_changeling_IDs = list("Alpha","Beta","Gamma","Delta","Epsilon" ..() /datum/game_mode/proc/forge_changeling_objectives(var/datum/mind/changeling) - //OBJECTIVES - Always absorb at least 5 genomes, plus random traitor objectives. - //If they have two objectives as well as absorb, they must survive rather than escape + //OBJECTIVES - random traitor objectives. Unique objectives "steal brain" and "identity theft". //No escape alone because changelings aren't suited for it and it'd probably just lead to rampant robusting //If it seems like they'd be able to do it in play, add a 10% chance to have to escape alone - var/datum/objective/absorb/absorb_objective = new - absorb_objective.owner = changeling - absorb_objective.gen_amount_goal(6, 8) - changeling.objectives += absorb_objective + + if(prob(60)) + var/datum/objective/steal/steal_objective = new + steal_objective.owner = changeling + steal_objective.find_target() + changeling.objectives += steal_objective + else + var/datum/objective/debrain/debrain_objective = new + debrain_objective.owner = changeling + debrain_objective.find_target() + changeling.objectives += debrain_objective + var/list/active_ais = active_ais() if(active_ais.len && prob(100/joined_player_list.len)) @@ -117,22 +124,23 @@ var/list/possible_changeling_IDs = list("Alpha","Beta","Gamma","Delta","Epsilon" maroon_objective.find_target() changeling.objectives += maroon_objective - if(prob(60)) - var/datum/objective/steal/steal_objective = new - steal_objective.owner = changeling - steal_objective.find_target() - changeling.objectives += steal_objective - else - var/datum/objective/debrain/debrain_objective = new - debrain_objective.owner = changeling - debrain_objective.find_target() - changeling.objectives += debrain_objective + if (!(locate(/datum/objective/escape) in changeling.objectives)) + var/datum/objective/escape/escape_with_identity/identity_theft = new + identity_theft.owner = changeling + identity_theft.target = maroon_objective.target + identity_theft.update_explanation_text() + changeling.objectives += identity_theft if (!(locate(/datum/objective/escape) in changeling.objectives)) - var/datum/objective/escape/escape_objective = new - escape_objective.owner = changeling - changeling.objectives += escape_objective - + if(prob(50)) + var/datum/objective/escape/escape_objective = new + escape_objective.owner = changeling + changeling.objectives += escape_objective + else + var/datum/objective/escape/escape_with_identity/identity_theft = new + identity_theft.owner = changeling + identity_theft.find_target() + changeling.objectives += identity_theft return /datum/game_mode/proc/greet_changeling(var/datum/mind/changeling, var/you_are=1) @@ -218,7 +226,7 @@ var/list/possible_changeling_IDs = list("Alpha","Beta","Gamma","Delta","Epsilon" var/absorbedcount = 1 //We would require at least 1 sample of compatible DNA to have taken on the form of a human. var/chem_charges = 20 var/chem_storage = 50 - var/chem_recharge_rate = 0.5 + var/chem_recharge_rate = 2 var/chem_recharge_slowdown = 0 var/sting_range = 2 var/changelingID = "Changeling" @@ -256,6 +264,12 @@ var/list/possible_changeling_IDs = list("Alpha","Beta","Gamma","Delta","Epsilon" if(dna_owner == DNA.real_name) return DNA +/datum/changeling/proc/has_dna(var/datum/dna/tDNA) + for(var/datum/dna/D in absorbed_dna) + if(tDNA.is_same_as(D)) + return 1 + return 0 + /datum/changeling/proc/can_absorb_dna(var/mob/living/carbon/user, var/mob/living/carbon/target) if(absorbed_dna[1] == user.dna)//If our current DNA is the stalest, we gotta ditch it. user << "We have reached our capacity to store genetic information! We must transform before absorbing more." @@ -268,11 +282,8 @@ var/list/possible_changeling_IDs = list("Alpha","Beta","Gamma","Delta","Epsilon" if(!ishuman(target))//Absorbing monkeys is entirely possible, but it can cause issues with transforming. That's what lesser form is for anyway! user << "We could gain no benefit from absorbing a lesser creature." return - var/datum/dna/tDna = target.dna - for(var/datum/dna/D in absorbed_dna) - if(tDna.is_same_as(D)) - user << "We already have that DNA in storage." - return + if(has_dna(target.dna)) + user << "We already have this DNA in storage!" if(!check_dna_integrity(target)) user << "[target] is not compatible with our biology." return diff --git a/code/game/gamemodes/changeling/evolution_menu.dm b/code/game/gamemodes/changeling/evolution_menu.dm index c7ff6471f7b..6468b1e8be6 100644 --- a/code/game/gamemodes/changeling/evolution_menu.dm +++ b/code/game/gamemodes/changeling/evolution_menu.dm @@ -259,7 +259,7 @@ var/list/sting_paths - Evolve [P][ownsthis ? " - Purchased" : ((P.dna_cost > 1) ? " - Cost: [P.dna_cost]" : "")] + Evolve [P][ownsthis ? " - Purchased" : (P.req_dna>changeling.absorbedcount ? " - Requires [P.req_dna] absorptions" : " - Cost: [P.dna_cost]")]
@@ -312,6 +312,10 @@ var/list/sting_paths user << "This is awkward. Changeling power purchase failed, please report this bug to a coder!" return + if(absorbedcount < thepower.req_dna) + user << "We lack the energy to evolve this ability!" + return + if(has_sting(thepower)) user << "We have already evolved this ability!" return diff --git a/code/game/gamemodes/changeling/powers/absorb.dm b/code/game/gamemodes/changeling/powers/absorb.dm index bd1b910f90e..d8e723e16a3 100644 --- a/code/game/gamemodes/changeling/powers/absorb.dm +++ b/code/game/gamemodes/changeling/powers/absorb.dm @@ -55,7 +55,8 @@ user.visible_message("[user] sucks the fluids from [target]!") target << "You have been absorbed by the changeling!" - changeling.absorb_dna(target) + if(!changeling.has_dna(target.dna)) + changeling.absorb_dna(target) if(user.nutrition < 400) user.nutrition = min((user.nutrition + target.nutrition), 400) @@ -65,12 +66,14 @@ if(target.mind.changeling)//If the target was a changeling, suck out their extra juice and objective points! changeling.chem_charges += min(target.mind.changeling.chem_charges, changeling.chem_storage) - changeling.absorbedcount += target.mind.changeling.absorbedcount + changeling.absorbedcount += (target.mind.changeling.absorbedcount-1) target.mind.changeling.absorbed_dna.len = 1 target.mind.changeling.absorbedcount = 0 - else - changeling.chem_charges += 10 + + + changeling.chem_charges=min(changeling.chem_charges+10, changeling.chem_storage) + changeling.absorbedcount += 1 changeling.isabsorbing = 0 changeling.canrespec = 1 @@ -93,5 +96,4 @@ new_dna.species = T.dna.species new_dna.mutant_color = T.dna.mutant_color new_dna.blood_type = T.dna.blood_type - absorbed_dna |= new_dna //And add the target DNA to our absorbed list. - absorbedcount++ //all that done, let's increment the objective counter. \ No newline at end of file + absorbed_dna |= new_dna //And add the target DNA to our absorbed list. \ No newline at end of file diff --git a/code/game/gamemodes/changeling/powers/glands.dm b/code/game/gamemodes/changeling/powers/glands.dm index ca36093a9f7..d4bb4bb5e69 100644 --- a/code/game/gamemodes/changeling/powers/glands.dm +++ b/code/game/gamemodes/changeling/powers/glands.dm @@ -1,13 +1,14 @@ /obj/effect/proc_holder/changeling/glands name = "Engorged Chemical Glands" desc = "Our chemical glands swell, permitting us to store more chemicals inside of them." - helptext = "Allows us to store an extra 25 units of chemicals, and doubles production rate." + helptext = "Allows us to store an extra 25 units of chemicals, and increases production rate." dna_cost = 2 + req_dna = 3 chemical_cost = -1 /obj/effect/proc_holder/changeling/glands/on_purchase(var/mob/user) ..() var/datum/changeling/changeling=user.mind.changeling changeling.chem_storage += 25 - changeling.chem_recharge_rate *=2 + changeling.chem_recharge_rate +=1 return \ No newline at end of file diff --git a/code/game/gamemodes/changeling/powers/tiny_prick.dm b/code/game/gamemodes/changeling/powers/tiny_prick.dm index 5ebff603d96..0f90c558235 100644 --- a/code/game/gamemodes/changeling/powers/tiny_prick.dm +++ b/code/game/gamemodes/changeling/powers/tiny_prick.dm @@ -65,11 +65,15 @@ sting_icon = "sting_transform" chemical_cost = 40 dna_cost = 2 + req_dna = 3 var/datum/dna/selected_dna = null /obj/effect/proc_holder/changeling/sting/transformation/Click() var/mob/user = usr var/datum/changeling/changeling = user.mind.changeling + if(changeling.chosen_sting) + unset_sting(user) + return selected_dna = changeling.select_dna("Select the target DNA: ", "Target DNA") if(!selected_dna) return @@ -96,18 +100,19 @@ obj/effect/proc_holder/changeling/sting/extract_dna name = "Extract DNA Sting" desc = "We stealthily sting a target and extract their DNA." - helptext = "Will give you the DNA of your target, allowing you to transform into them." + helptext = "Will give you the DNA of your target, allowing you to transform into them. DNA collected this way does not count towards absorption objectives." sting_icon = "sting_extract" chemical_cost = 25 - dna_cost = 0 + dna_cost = 1 /obj/effect/proc_holder/changeling/sting/extract_dna/can_sting(var/mob/user, var/mob/target) if(..()) return user.mind.changeling.can_absorb_dna(user, target) -/obj/effect/proc_holder/changeling/sting/extract_dna/sting_action(var/mob/user, var/mob/target) +/obj/effect/proc_holder/changeling/sting/extract_dna/sting_action(var/mob/user, var/mob/living/carbon/human/target) add_logs(user, target, "stung", object="extraction sting") - user.mind.changeling.absorb_dna(target, user) + if(!(user.mind.changeling.has_dna(target.dna))) + user.mind.changeling.absorb_dna(target, user) feedback_add_details("changeling_powers","ED") return 1 @@ -149,6 +154,7 @@ obj/effect/proc_holder/changeling/sting/LSD sting_icon = "sting_lsd" chemical_cost = 10 dna_cost = 1 + req_dna = 3 /obj/effect/proc_holder/changeling/sting/LSD/sting_action(var/mob/user, var/mob/living/carbon/target) add_logs(user, target, "stung", object="LSD sting") diff --git a/code/game/gamemodes/objective.dm b/code/game/gamemodes/objective.dm index 8e8c6a4f021..c07d6ebf301 100644 --- a/code/game/gamemodes/objective.dm +++ b/code/game/gamemodes/objective.dm @@ -274,6 +274,32 @@ datum/objective/escape/check_completion() else return 0 +datum/objective/escape/escape_with_identity + dangerrating = 10 + var/target_real_name // Has to be stored because the target's real_name can change over the course of the round + +datum/objective/escape/escape_with_identity/find_target() + target = ..() + update_explanation_text() + +datum/objective/escape/escape_with_identity/update_explanation_text() + if(target && target.current) + target_real_name = target.current.real_name + explanation_text = "Escape on the shuttle or an escape pod with the identity of [target_real_name], the [target.assigned_role]." + else + explanation_text = "Free Objective." + +datum/objective/escape/escape_with_identity/check_completion() + if(!target_real_name) + return 1 + if(!ishuman(owner.current)) + return 0 + var/mob/living/carbon/human/H = owner.current + if(..()) + if(H.dna.real_name == target_real_name) + if(H.get_id_name()== target_real_name) + return 1 + return 0 datum/objective/survive @@ -528,4 +554,4 @@ datum/objective/destroy/update_explanation_text() if(target && target.current) explanation_text = "Destroy [target.current.real_name], the experimental AI." else - explanation_text = "Free Objective" + explanation_text = "Free Objective" From e677606d3e783fda015b8e6d7e921edd1b1089ab Mon Sep 17 00:00:00 2001 From: Perakp Date: Fri, 10 Oct 2014 11:37:02 +0300 Subject: [PATCH 002/102] Reverts some of the changes in the previous commit. Fixes the escape with identity objective by adding a list of protected dna. --- code/game/gamemodes/changeling/changeling.dm | 10 ++++++++-- code/game/gamemodes/changeling/powers/absorb.dm | 17 ++++++++++++----- .../gamemodes/changeling/powers/hivemind.dm | 4 ++-- .../gamemodes/changeling/powers/tiny_prick.dm | 6 ++---- .../gamemodes/changeling/powers/transform.dm | 2 +- 5 files changed, 25 insertions(+), 14 deletions(-) diff --git a/code/game/gamemodes/changeling/changeling.dm b/code/game/gamemodes/changeling/changeling.dm index 749e7833be6..bcf840a881e 100644 --- a/code/game/gamemodes/changeling/changeling.dm +++ b/code/game/gamemodes/changeling/changeling.dm @@ -94,6 +94,11 @@ var/list/possible_changeling_IDs = list("Alpha","Beta","Gamma","Delta","Epsilon" //If it seems like they'd be able to do it in play, add a 10% chance to have to escape alone + var/datum/objective/absorb/absorb_objective = new + absorb_objective.owner = changeling + absorb_objective.gen_amount_goal(6, 8) + changeling.objectives += absorb_objective + if(prob(60)) var/datum/objective/steal/steal_objective = new steal_objective.owner = changeling @@ -222,6 +227,7 @@ var/list/possible_changeling_IDs = list("Alpha","Beta","Gamma","Delta","Epsilon" /datum/changeling //stores changeling powers, changeling recharge thingie, changeling absorbed DNA and changeling ID (for changeling hivemind) var/list/absorbed_dna = list() + var/list/protected_dna = list() //dna that is not lost when capacity is otherwise full var/dna_max = 4 //How many extra DNA strands the changeling can store for transformation. var/absorbedcount = 1 //We would require at least 1 sample of compatible DNA to have taken on the form of a human. var/chem_charges = 20 @@ -260,12 +266,12 @@ var/list/possible_changeling_IDs = list("Alpha","Beta","Gamma","Delta","Epsilon" /datum/changeling/proc/get_dna(var/dna_owner) - for(var/datum/dna/DNA in absorbed_dna) + for(var/datum/dna/DNA in (absorbed_dna+protected_dna)) if(dna_owner == DNA.real_name) return DNA /datum/changeling/proc/has_dna(var/datum/dna/tDNA) - for(var/datum/dna/D in absorbed_dna) + for(var/datum/dna/D in (absorbed_dna+protected_dna)) if(tDNA.is_same_as(D)) return 1 return 0 diff --git a/code/game/gamemodes/changeling/powers/absorb.dm b/code/game/gamemodes/changeling/powers/absorb.dm index d8e723e16a3..06d63ff45ad 100644 --- a/code/game/gamemodes/changeling/powers/absorb.dm +++ b/code/game/gamemodes/changeling/powers/absorb.dm @@ -56,7 +56,7 @@ target << "You have been absorbed by the changeling!" if(!changeling.has_dna(target.dna)) - changeling.absorb_dna(target) + changeling.absorb_dna(target, user) if(user.nutrition < 400) user.nutrition = min((user.nutrition + target.nutrition), 400) @@ -66,14 +66,13 @@ if(target.mind.changeling)//If the target was a changeling, suck out their extra juice and objective points! changeling.chem_charges += min(target.mind.changeling.chem_charges, changeling.chem_storage) - changeling.absorbedcount += (target.mind.changeling.absorbedcount-1) + changeling.absorbedcount += (target.mind.changeling.absorbedcount) target.mind.changeling.absorbed_dna.len = 1 target.mind.changeling.absorbedcount = 0 changeling.chem_charges=min(changeling.chem_charges+10, changeling.chem_storage) - changeling.absorbedcount += 1 changeling.isabsorbing = 0 changeling.canrespec = 1 @@ -85,7 +84,7 @@ //Absorbs the target DNA. -/datum/changeling/proc/absorb_dna(mob/living/carbon/T) +/datum/changeling/proc/absorb_dna(mob/living/carbon/T, var/mob/user) if(absorbed_dna.len) absorbed_dna.Cut(1,2) T.dna.real_name = T.real_name //Set this again, just to be sure that it's properly set. @@ -96,4 +95,12 @@ new_dna.species = T.dna.species new_dna.mutant_color = T.dna.mutant_color new_dna.blood_type = T.dna.blood_type - absorbed_dna |= new_dna //And add the target DNA to our absorbed list. \ No newline at end of file + absorbedcount++ + store_dna(new_dna) + +/datum/changeling/proc/store_dna(var/datum/dna/new_dna, var/mob/user) + for(var/datum/objective/escape/escape_with_identity/E in user.mind.objectives) + if(E.target_real_name == new_dna.real_name) + protected_dna |= new_dna + return + absorbed_dna |= new_dna diff --git a/code/game/gamemodes/changeling/powers/hivemind.dm b/code/game/gamemodes/changeling/powers/hivemind.dm index 2ccb9a3a4e4..96006053341 100644 --- a/code/game/gamemodes/changeling/powers/hivemind.dm +++ b/code/game/gamemodes/changeling/powers/hivemind.dm @@ -31,7 +31,7 @@ var/list/datum/dna/hivemind_bank = list() /obj/effect/proc_holder/changeling/hivemind_upload/sting_action(var/mob/user) var/datum/changeling/changeling = user.mind.changeling var/list/names = list() - for(var/datum/dna/DNA in changeling.absorbed_dna) + for(var/datum/dna/DNA in (changeling.absorbed_dna+changeling.protected_dna)) if(!(DNA in hivemind_bank)) names += DNA.real_name @@ -86,7 +86,7 @@ var/list/datum/dna/hivemind_bank = list() if(changeling.absorbed_dna.len) changeling.absorbed_dna.Cut(1,2) - changeling.absorbed_dna |= chosen_dna + store_dna(chosen_dna, user) user << "We absorb the DNA of [S] from the air." feedback_add_details("changeling_powers","HD") return 1 \ No newline at end of file diff --git a/code/game/gamemodes/changeling/powers/tiny_prick.dm b/code/game/gamemodes/changeling/powers/tiny_prick.dm index 0f90c558235..f25022ce6f3 100644 --- a/code/game/gamemodes/changeling/powers/tiny_prick.dm +++ b/code/game/gamemodes/changeling/powers/tiny_prick.dm @@ -65,7 +65,6 @@ sting_icon = "sting_transform" chemical_cost = 40 dna_cost = 2 - req_dna = 3 var/datum/dna/selected_dna = null /obj/effect/proc_holder/changeling/sting/transformation/Click() @@ -100,10 +99,10 @@ obj/effect/proc_holder/changeling/sting/extract_dna name = "Extract DNA Sting" desc = "We stealthily sting a target and extract their DNA." - helptext = "Will give you the DNA of your target, allowing you to transform into them. DNA collected this way does not count towards absorption objectives." + helptext = "Will give you the DNA of your target, allowing you to transform into them." sting_icon = "sting_extract" chemical_cost = 25 - dna_cost = 1 + dna_cost = 0 /obj/effect/proc_holder/changeling/sting/extract_dna/can_sting(var/mob/user, var/mob/target) if(..()) @@ -154,7 +153,6 @@ obj/effect/proc_holder/changeling/sting/LSD sting_icon = "sting_lsd" chemical_cost = 10 dna_cost = 1 - req_dna = 3 /obj/effect/proc_holder/changeling/sting/LSD/sting_action(var/mob/user, var/mob/living/carbon/target) add_logs(user, target, "stung", object="LSD sting") diff --git a/code/game/gamemodes/changeling/powers/transform.dm b/code/game/gamemodes/changeling/powers/transform.dm index b6954ccf79c..b732844dc45 100644 --- a/code/game/gamemodes/changeling/powers/transform.dm +++ b/code/game/gamemodes/changeling/powers/transform.dm @@ -27,7 +27,7 @@ /datum/changeling/proc/select_dna(var/prompt, var/title) var/list/names = list() - for(var/datum/dna/DNA in absorbed_dna) + for(var/datum/dna/DNA in (absorbed_dna+protected_dna)) names += "[DNA.real_name]" var/chosen_name = input(prompt, title, null) as null|anything in names From 6828897f0775fb652369e3c77e35d523e13c09d7 Mon Sep 17 00:00:00 2001 From: Perakp Date: Fri, 10 Oct 2014 12:32:07 +0300 Subject: [PATCH 003/102] - Fixes losing hivemind on respec - Can only respec when human, can't get stuck in lesser form - Ticks transit construction - It compiles --- code/game/gamemodes/changeling/evolution_menu.dm | 9 ++++++--- code/game/gamemodes/changeling/powers/absorb.dm | 2 +- code/game/gamemodes/changeling/powers/hivemind.dm | 2 +- code/game/gamemodes/changeling/powers/humanform.dm | 3 ++- tgstation.dme | 2 +- 5 files changed, 11 insertions(+), 7 deletions(-) diff --git a/code/game/gamemodes/changeling/evolution_menu.dm b/code/game/gamemodes/changeling/evolution_menu.dm index 6468b1e8be6..e8caa412086 100644 --- a/code/game/gamemodes/changeling/evolution_menu.dm +++ b/code/game/gamemodes/changeling/evolution_menu.dm @@ -338,14 +338,17 @@ var/list/sting_paths //Reselect powers /datum/changeling/proc/lingRespec(var/mob/user) + if(!ishuman(user)) + user << "We can't remove our evolutions in this form!" + return if(canrespec) - user << "We have removed our evolutions from this form, and are now ready to readapt." + user << "We have removed our evolutions from this form, and are now ready to readapt." user.remove_changeling_powers(1) canrespec = 0 user.make_changeling() return 1 else - user << "You lack the power to readapt your evolutions!" + user << "You lack the power to readapt your evolutions!" return 0 /mob/proc/make_changeling() @@ -365,7 +368,7 @@ var/list/sting_paths if(!S.dna_cost) if(!mind.changeling.has_sting(S)) mind.changeling.purchasedpowers+=S - S.on_purchase(src) + S.on_purchase(src) var/mob/living/carbon/C = src //only carbons have dna now, so we have to typecaste mind.changeling.absorbed_dna |= C.dna diff --git a/code/game/gamemodes/changeling/powers/absorb.dm b/code/game/gamemodes/changeling/powers/absorb.dm index 06d63ff45ad..dc568d1b936 100644 --- a/code/game/gamemodes/changeling/powers/absorb.dm +++ b/code/game/gamemodes/changeling/powers/absorb.dm @@ -96,7 +96,7 @@ new_dna.mutant_color = T.dna.mutant_color new_dna.blood_type = T.dna.blood_type absorbedcount++ - store_dna(new_dna) + store_dna(new_dna, user) /datum/changeling/proc/store_dna(var/datum/dna/new_dna, var/mob/user) for(var/datum/objective/escape/escape_with_identity/E in user.mind.objectives) diff --git a/code/game/gamemodes/changeling/powers/hivemind.dm b/code/game/gamemodes/changeling/powers/hivemind.dm index c7c74547f1d..6e7add1edf2 100644 --- a/code/game/gamemodes/changeling/powers/hivemind.dm +++ b/code/game/gamemodes/changeling/powers/hivemind.dm @@ -86,7 +86,7 @@ var/list/datum/dna/hivemind_bank = list() if(changeling.absorbed_dna.len) changeling.absorbed_dna.Cut(1,2) - store_dna(chosen_dna, user) + changeling.store_dna(chosen_dna, user) user << "We absorb the DNA of [S] from the air." feedback_add_details("changeling_powers","HD") return 1 \ No newline at end of file diff --git a/code/game/gamemodes/changeling/powers/humanform.dm b/code/game/gamemodes/changeling/powers/humanform.dm index 06c59138291..a05a271dc4e 100644 --- a/code/game/gamemodes/changeling/powers/humanform.dm +++ b/code/game/gamemodes/changeling/powers/humanform.dm @@ -6,11 +6,12 @@ req_dna = 1 max_genetic_damage = 3 + //Transform into a human. /obj/effect/proc_holder/changeling/humanform/sting_action(var/mob/living/carbon/user) var/datum/changeling/changeling = user.mind.changeling var/list/names = list() - for(var/datum/dna/DNA in changeling.absorbed_dna) + for(var/datum/dna/DNA in (changeling.absorbed_dna+changeling.protected_dna)) names += "[DNA.real_name]" var/chosen_name = input("Select the target DNA: ", "Target DNA", null) as null|anything in names diff --git a/tgstation.dme b/tgstation.dme index d931be35685..c182a9a781f 100644 --- a/tgstation.dme +++ b/tgstation.dme @@ -673,8 +673,8 @@ #include "code\game\objects\structures\stool_bed_chair_nest\chairs.dm" #include "code\game\objects\structures\stool_bed_chair_nest\stools.dm" #include "code\game\objects\structures\transit_tubes\station.dm" -#include "code\game\objects\structures\transit_tubes\transit_tube_construction.dm" #include "code\game\objects\structures\transit_tubes\transit_tube.dm" +#include "code\game\objects\structures\transit_tubes\transit_tube_construction.dm" #include "code\game\objects\structures\transit_tubes\transit_tube_pod.dm" #include "code\game\pooling\atom_pool.dm" #include "code\game\turfs\simulated.dm" From 3a7e428bcf2ff4c134b5c32f142d61c63adb3e77 Mon Sep 17 00:00:00 2001 From: Perakp Date: Fri, 10 Oct 2014 12:40:40 +0300 Subject: [PATCH 004/102] Reverts the glands requiring absorptions. --- code/game/gamemodes/changeling/powers/glands.dm | 1 - 1 file changed, 1 deletion(-) diff --git a/code/game/gamemodes/changeling/powers/glands.dm b/code/game/gamemodes/changeling/powers/glands.dm index d4bb4bb5e69..b5a6f5fb635 100644 --- a/code/game/gamemodes/changeling/powers/glands.dm +++ b/code/game/gamemodes/changeling/powers/glands.dm @@ -3,7 +3,6 @@ desc = "Our chemical glands swell, permitting us to store more chemicals inside of them." helptext = "Allows us to store an extra 25 units of chemicals, and increases production rate." dna_cost = 2 - req_dna = 3 chemical_cost = -1 /obj/effect/proc_holder/changeling/glands/on_purchase(var/mob/user) From a4acdd3833be951fa220fbaae70713b16587efca Mon Sep 17 00:00:00 2001 From: Perakp Date: Sun, 12 Oct 2014 10:23:41 +0300 Subject: [PATCH 005/102] Chemical recharge rate back to normal. --- code/game/gamemodes/changeling/changeling.dm | 2 +- code/game/gamemodes/changeling/powers/glands.dm | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/code/game/gamemodes/changeling/changeling.dm b/code/game/gamemodes/changeling/changeling.dm index aea1bf083d9..ba9a9199e3b 100644 --- a/code/game/gamemodes/changeling/changeling.dm +++ b/code/game/gamemodes/changeling/changeling.dm @@ -232,7 +232,7 @@ var/list/possible_changeling_IDs = list("Alpha","Beta","Gamma","Delta","Epsilon" var/absorbedcount = 1 //We would require at least 1 sample of compatible DNA to have taken on the form of a human. var/chem_charges = 20 var/chem_storage = 50 - var/chem_recharge_rate = 2 + var/chem_recharge_rate = 0.5 var/chem_recharge_slowdown = 0 var/sting_range = 2 var/changelingID = "Changeling" diff --git a/code/game/gamemodes/changeling/powers/glands.dm b/code/game/gamemodes/changeling/powers/glands.dm index b5a6f5fb635..ca36093a9f7 100644 --- a/code/game/gamemodes/changeling/powers/glands.dm +++ b/code/game/gamemodes/changeling/powers/glands.dm @@ -1,7 +1,7 @@ /obj/effect/proc_holder/changeling/glands name = "Engorged Chemical Glands" desc = "Our chemical glands swell, permitting us to store more chemicals inside of them." - helptext = "Allows us to store an extra 25 units of chemicals, and increases production rate." + helptext = "Allows us to store an extra 25 units of chemicals, and doubles production rate." dna_cost = 2 chemical_cost = -1 @@ -9,5 +9,5 @@ ..() var/datum/changeling/changeling=user.mind.changeling changeling.chem_storage += 25 - changeling.chem_recharge_rate +=1 + changeling.chem_recharge_rate *=2 return \ No newline at end of file From 88dad2b5d5f9067faaa8700ee164a4435d4f54a1 Mon Sep 17 00:00:00 2001 From: Miauw Date: Sun, 12 Oct 2014 14:36:20 +0200 Subject: [PATCH 006/102] Fixes whisper formatting hopefully maybe. Fixed #5140 Also does a bunch of other stuff. --- code/game/machinery/hologram.dm | 5 ++--- code/modules/mob/living/carbon/human/whisper.dm | 10 +++++----- code/modules/mob/mob_helpers.dm | 2 +- 3 files changed, 8 insertions(+), 9 deletions(-) diff --git a/code/game/machinery/hologram.dm b/code/game/machinery/hologram.dm index a3468565a36..2c285796166 100644 --- a/code/game/machinery/hologram.dm +++ b/code/game/machinery/hologram.dm @@ -84,13 +84,12 @@ var/const/HOLOPAD_MODE = RANGE_BASED For the other part of the code, check silicon say.dm. Particularly robot talk.*/ /obj/machinery/hologram/holopad/Hear(message, atom/movable/speaker, message_langs, raw_message, radio_freq) if(speaker && masters.len && !radio_freq)//Master is mostly a safety in case lag hits or something. Radio_freq so AIs dont hear holopad stuff through radios. - for (var/mob/living/silicon/ai/master in masters) + for(var/mob/living/silicon/ai/master in masters) if(masters[master] && speaker != master) raw_message = master.lang_treat(speaker, message_langs, raw_message) var/name_used = speaker.GetVoice() - var/rendered = "Holopad received, [name_used] [speaker.say_quote(raw_message)]" + var/rendered = "Holopad received, [name_used] [raw_message]" master.show_message(rendered, 2) - return /obj/machinery/hologram/holopad/proc/create_holo(mob/living/silicon/ai/A, turf/T = loc) var/obj/effect/overlay/h = new(T)//Spawn a blank effect at the location. diff --git a/code/modules/mob/living/carbon/human/whisper.dm b/code/modules/mob/living/carbon/human/whisper.dm index ca216efa372..01c39eea073 100644 --- a/code/modules/mob/living/carbon/human/whisper.dm +++ b/code/modules/mob/living/carbon/human/whisper.dm @@ -14,7 +14,7 @@ if(!can_speak(message)) return - message = "[message]" + message = "[message]" log_whisper("[src.name]/[src.key] : [message]") if (src.client) @@ -49,9 +49,9 @@ if(M.stat == DEAD && ((M.client.prefs.toggles & CHAT_GHOSTWHISPER) || (get_dist(M, src) <= 7))) listening_dead |= M - var/list/listening = get_hear(1, src) + var/list/listening = get_hearers_in_view(1, src) listening |= listening_dead - var/list/eavesdropping = hearers(2, src) + var/list/eavesdropping = get_hearers_in_view(2, src) eavesdropping -= listening var/list/watching = hearers(5, src) watching -= listening @@ -63,13 +63,13 @@ for(var/mob/M in watching) M.show_message(rendered, 2) - rendered = "[GetVoice()][alt_name] [whispers], \"[message]\"" + rendered = "[GetVoice()][alt_name] [whispers], \"[message]\"" for(var/mob/M in listening) M.Hear(rendered, src, languages, message) message = stars(message) - rendered = "[GetVoice()][alt_name] [whispers], \"[message]\"" + rendered = "[GetVoice()][alt_name] [whispers], \"[message]\"" for(var/mob/M in eavesdropping) M.Hear(rendered, src, languages, message) diff --git a/code/modules/mob/mob_helpers.dm b/code/modules/mob/mob_helpers.dm index 7d5fdb53a04..7252eafa2bb 100644 --- a/code/modules/mob/mob_helpers.dm +++ b/code/modules/mob/mob_helpers.dm @@ -182,7 +182,7 @@ proc/isorgan(A) return 0 /proc/stars(n, pr) - n = html_decode(n) + n = strip_html_properly(n) if (pr == null) pr = 25 if (pr <= 0) From 26f70fd9aa8b2df8e5dd223a4c93d4cfdec83102 Mon Sep 17 00:00:00 2001 From: Menshin Date: Wed, 15 Oct 2014 16:00:22 +0200 Subject: [PATCH 007/102] * Completed the _strip_html_properly_ proc to also limit the length of the text * Removed uses of _strip_html_simple_ * Replaced input or redondant trimming/text_copying with the new unified _stripped_input_ --- code/__HELPERS/text.dm | 32 ++++++++++--------- code/game/communications.dm | 2 +- code/game/machinery/bots/cleanbot.dm | 2 +- code/game/machinery/bots/ed209bot.dm | 2 +- code/game/machinery/bots/floorbot.dm | 4 +-- code/game/machinery/bots/medbot.dm | 2 +- code/game/machinery/bots/secbot.dm | 2 +- code/game/machinery/camera/camera_assembly.dm | 4 +-- .../game/machinery/computer/communications.dm | 4 +-- code/game/machinery/newscaster.dm | 25 +++++++-------- code/game/mecha/mecha.dm | 2 +- code/game/mecha/mecha_control_console.dm | 2 +- code/game/objects/items/weapons/AI_modules.dm | 4 +-- code/game/objects/structures/door_assembly.dm | 2 +- .../objects/structures/windoor_assembly.dm | 2 +- code/modules/admin/topic.dm | 2 +- code/modules/library/lib_items.dm | 2 +- .../mob/living/carbon/human/whisper.dm | 2 +- code/modules/paperwork/paper.dm | 2 +- code/unused/gamemodes/deathmatch.dm | 3 +- 20 files changed, 51 insertions(+), 51 deletions(-) diff --git a/code/__HELPERS/text.dm b/code/__HELPERS/text.dm index 6724122a501..6ae3a434206 100644 --- a/code/__HELPERS/text.dm +++ b/code/__HELPERS/text.dm @@ -73,10 +73,10 @@ else non_whitespace = 1 if(non_whitespace) return text //only accepts the text if it has some non-spaces -// Used to get a sanitized input. +// Used to get a properly sanitized input, of max_length /proc/stripped_input(var/mob/user, var/message = "", var/title = "", var/default = "", var/max_length=MAX_MESSAGE_LEN) var/name = input(user, message, title, default) - return strip_html_simple(name, max_length) + return strip_html_properly(name, max_length) //Filters out undesirable characters from names /proc/reject_bad_name(var/t_in, var/allow_numbers=0, var/max_length=MAX_NAME_LEN) @@ -142,6 +142,21 @@ return t_out +//this proc strips html properly, but it's not lazy like the other procs. +//this means that it doesn't just remove < and > and call it a day. seriously, who the fuck thought that would be useful. +//also limit the size of the input, if specified to +/proc/strip_html_properly(var/input,var/max_length=MAX_MESSAGE_LEN) + var/opentag = 1 //These store the position of < and > respectively. + var/closetag = 1 + while(1) + opentag = findtext(input, "<") + closetag = findtext(input, ">") + if(!closetag || !opentag) + break + input = copytext(input, 1, opentag) + copytext(input, (closetag + 1)) + if(max_length) + input = copytext(input,1,max_length) + return input /* * Text searches @@ -363,16 +378,3 @@ var/list/binary = list("0","1") temp = findtextEx(haystack, ascii2text(text2ascii(needles,i)), start, end) //Note: ascii2text(text2ascii) is faster than copytext() if(temp) end = temp return end - -//this proc strips html properly, but it's not lazy like the other procs. -//this means that it doesn't just remove < and > and call it a day. seriously, who the fuck thought that would be useful. -/proc/strip_html_properly(var/input) - var/opentag = 1 //These store the position of < and > respectively. - var/closetag = 1 - while(1) - opentag = findtext(input, "<") - closetag = findtext(input, ">") - if(!closetag || !opentag) - break - input = copytext(input, 1, opentag) + copytext(input, (closetag + 1)) - return input diff --git a/code/game/communications.dm b/code/game/communications.dm index ac4576042c2..ded4c70d7a3 100644 --- a/code/game/communications.dm +++ b/code/game/communications.dm @@ -368,4 +368,4 @@ var/list/pointers = list() for(var/d in data) var/val = data[d] if(istext(val)) - data[d] = strip_html_simple(val) + data[d] = strip_html_properly(val) diff --git a/code/game/machinery/bots/cleanbot.dm b/code/game/machinery/bots/cleanbot.dm index f27815a0a3c..0c450b84b9c 100644 --- a/code/game/machinery/bots/cleanbot.dm +++ b/code/game/machinery/bots/cleanbot.dm @@ -356,7 +356,7 @@ text("[src.oddbutton ? "Yes" : "No" qdel(src) else if (istype(W, /obj/item/weapon/pen)) - var/t = copytext(stripped_input(user, "Enter new robot name", src.name, src.created_name),1,MAX_NAME_LEN) + var/t = stripped_input(user, "Enter new robot name", src.name, src.created_name,MAX_NAME_LEN) if (!t) return if (!in_range(src, usr) && src.loc != usr) diff --git a/code/game/machinery/bots/ed209bot.dm b/code/game/machinery/bots/ed209bot.dm index c5582de2baa..ec97fbd8012 100644 --- a/code/game/machinery/bots/ed209bot.dm +++ b/code/game/machinery/bots/ed209bot.dm @@ -851,7 +851,7 @@ Auto Patrol: []"}, ..() if(istype(W, /obj/item/weapon/pen)) - var/t = copytext(stripped_input(user, "Enter new robot name", src.name, src.created_name),1,MAX_NAME_LEN) + var/t = stripped_input(user, "Enter new robot name", src.name, src.created_name,MAX_NAME_LEN) if(!t) return if(!in_range(src, usr) && src.loc != usr) return created_name = t diff --git a/code/game/machinery/bots/floorbot.dm b/code/game/machinery/bots/floorbot.dm index 195c07958a6..d9f4c5a2ecd 100644 --- a/code/game/machinery/bots/floorbot.dm +++ b/code/game/machinery/bots/floorbot.dm @@ -438,7 +438,7 @@ qdel(src) else if (istype(W, /obj/item/weapon/pen)) - var/t = copytext(stripped_input(user, "Enter new robot name", src.name, src.created_name),1,MAX_NAME_LEN) + var/t = stripped_input(user, "Enter new robot name", src.name, src.created_name,MAX_NAME_LEN) if (!t) return if (!in_range(src, usr) && src.loc != usr) @@ -457,7 +457,7 @@ user.unEquip(src, 1) qdel(src) else if (istype(W, /obj/item/weapon/pen)) - var/t = stripped_input(user, "Enter new robot name", src.name, src.created_name) + var/t = stripped_input(user, "Enter new robot name", src.name, src.created_name,MAX_NAME_LEN) if (!t) return diff --git a/code/game/machinery/bots/medbot.dm b/code/game/machinery/bots/medbot.dm index 5ba7c7a3ba3..0625cf0ecef 100644 --- a/code/game/machinery/bots/medbot.dm +++ b/code/game/machinery/bots/medbot.dm @@ -576,7 +576,7 @@ /obj/item/weapon/firstaid_arm_assembly/attackby(obj/item/weapon/W as obj, mob/user as mob) ..() if(istype(W, /obj/item/weapon/pen)) - var/t = copytext(stripped_input(user, "Enter new robot name", src.name, src.created_name),1,MAX_NAME_LEN) + var/t = stripped_input(user, "Enter new robot name", src.name, src.created_name,MAX_NAME_LEN) if (!t) return if (!in_range(src, usr) && src.loc != usr) diff --git a/code/game/machinery/bots/secbot.dm b/code/game/machinery/bots/secbot.dm index 20351bcb727..f06ca78cf5a 100644 --- a/code/game/machinery/bots/secbot.dm +++ b/code/game/machinery/bots/secbot.dm @@ -750,7 +750,7 @@ Auto Patrol: []"}, qdel(src) else if(istype(I, /obj/item/weapon/pen)) - var/t = copytext(stripped_input(user, "Enter new robot name", name, created_name),1,MAX_NAME_LEN) + var/t = stripped_input(user, "Enter new robot name", name, created_name,MAX_NAME_LEN) if(!t) return if(!in_range(src, usr) && loc != usr) diff --git a/code/game/machinery/camera/camera_assembly.dm b/code/game/machinery/camera/camera_assembly.dm index cc44b26c0c3..a6e179c1050 100644 --- a/code/game/machinery/camera/camera_assembly.dm +++ b/code/game/machinery/camera/camera_assembly.dm @@ -80,7 +80,7 @@ if(istype(W, /obj/item/weapon/screwdriver)) playsound(src.loc, 'sound/items/Screwdriver.ogg', 50, 1) - var/input = strip_html(input(usr, "Which networks would you like to connect this camera to? Seperate networks with a comma. No Spaces!\nFor example: SS13,Security,Secret ", "Set Network", "SS13")) + var/input = stripped_input(usr, "Which networks would you like to connect this camera to? Seperate networks with a comma. No Spaces!\nFor example: SS13,Security,Secret ", "Set Network", "SS13") if(!input) usr << "No input found please hang up and try your call again." return @@ -99,7 +99,7 @@ C.network = tempnetwork var/area/A = get_area_master(src) - C.c_tag = "[A.name] ([rand(1, 999)]" + C.c_tag = "[A.name] ([rand(1, 999)])" for(var/i = 5; i >= 0; i -= 1) var/direct = input(user, "Direction?", "Assembling Camera", null) in list("LEAVE IT", "NORTH", "EAST", "SOUTH", "WEST" ) diff --git a/code/game/machinery/computer/communications.dm b/code/game/machinery/computer/communications.dm index fd2320b0182..2d3f00bd559 100644 --- a/code/game/machinery/computer/communications.dm +++ b/code/game/machinery/computer/communications.dm @@ -219,7 +219,7 @@ var/const/CALL_SHUTTLE_REASON_LENGTH = 12 if(centcom_message_cooldown) usr << "Arrays recycling. Please stand by." return - var/input = stripped_input(usr, "Please choose a message to transmit to \[ABNORMAL ROUTING CORDINATES\] via quantum entanglement. Please be aware that this process is very expensive, and abuse will lead to... termination. Transmission does not guarantee a response.", "To abort, send an empty message.", "") + var/input = stripped_input(usr, "Please choose a message to transmit to \[ABNORMAL ROUTING COORDINATES\] via quantum entanglement. Please be aware that this process is very expensive, and abuse will lead to... termination. Transmission does not guarantee a response.", "To abort, send an empty message.", "") if(!input || !(usr in view(1,src))) return Syndicate_announce(input, usr) @@ -585,7 +585,7 @@ var/const/CALL_SHUTTLE_REASON_LENGTH = 12 user << "The emergency shuttle is already on its way." return - call_reason = strip_html_simple(trim(call_reason)) + call_reason = strip_html_properly(trim(call_reason)) if(length(call_reason) < CALL_SHUTTLE_REASON_LENGTH) user << "You must provide a reason." diff --git a/code/game/machinery/newscaster.dm b/code/game/machinery/newscaster.dm index 9e1bd0616fa..7eb17034f64 100644 --- a/code/game/machinery/newscaster.dm +++ b/code/game/machinery/newscaster.dm @@ -492,7 +492,7 @@ var/list/obj/machinery/newscaster/allCasters = list() //Global list that will co if ((usr.contents.Find(src) || ((get_dist(src, usr) <= 1) && istype(src.loc, /turf))) || (istype(usr, /mob/living/silicon))) usr.set_machine(src) if(href_list["set_channel_name"]) - src.channel_name = strip_html_simple(input(usr, "Provide a Feed Channel Name", "Network Channel Handler", "")) + src.channel_name = stripped_input(usr, "Provide a Feed Channel Name", "Network Channel Handler", "", MAX_NAME_LEN) while (findtext(src.channel_name," ") == 1) src.channel_name = copytext(src.channel_name,2,lentext(src.channel_name)+1) src.updateUsrDialog() @@ -537,9 +537,9 @@ var/list/obj/machinery/newscaster/allCasters = list() //Global list that will co src.updateUsrDialog() else if(href_list["set_new_message"]) - src.msg = strip_html(input(usr, "Write your Feed story", "Network Channel Handler", "")) - while (findtext(src.msg," ") == 1) - src.msg = copytext(src.msg,2,lentext(src.msg)+1) + src.msg = trim(stripped_input(usr, "Write your Feed story", "Network Channel Handler")) + /*while (findtext(src.msg," ") == 1) + src.msg = copytext(src.msg,2,lentext(src.msg)+1)*/ src.updateUsrDialog() else if(href_list["set_attachment"]) @@ -594,15 +594,15 @@ var/list/obj/machinery/newscaster/allCasters = list() //Global list that will co src.updateUsrDialog() else if(href_list["set_wanted_name"]) - src.channel_name = strip_html(input(usr, "Provide the name of the Wanted person", "Network Security Handler", "")) - while (findtext(src.channel_name," ") == 1) - src.channel_name = copytext(src.channel_name,2,lentext(src.channel_name)+1) + src.channel_name = trim(stripped_input(usr, "Provide the name of the Wanted person", "Network Security Handler")) + /*while (findtext(src.channel_name," ") == 1) + src.channel_name = copytext(src.channel_name,2,lentext(src.channel_name)+1)*/ src.updateUsrDialog() else if(href_list["set_wanted_desc"]) - src.msg = strip_html(input(usr, "Provide the a description of the Wanted person and any other details you deem important", "Network Security Handler", "")) - while (findtext(src.msg," ") == 1) - src.msg = copytext(src.msg,2,lentext(src.msg)+1) + src.msg = trim(stripped_input(usr, "Provide the a description of the Wanted person and any other details you deem important", "Network Security Handler")) + /*while (findtext(src.msg," ") == 1) + src.msg = copytext(src.msg,2,lentext(src.msg)+1)*/ src.updateUsrDialog() else if(href_list["submit_wanted"]) @@ -972,10 +972,9 @@ obj/item/weapon/newspaper/Topic(href, href_list) obj/item/weapon/newspaper/attackby(obj/item/weapon/W as obj, mob/user as mob) if(istype(W, /obj/item/weapon/pen)) if(src.scribble_page == src.curr_page) - user << "There's already a scribble in this page... You wouldn't want to make things too cluttered, would you?" + user << "There's already a scribble in this page... You wouldn't want to make things too cluttered, would you?" else - var/s = strip_html( input(user, "Write something", "Newspaper", "") ) - s = copytext(sanitize(s), 1, MAX_MESSAGE_LEN) + var/s = stripped_input(user, "Write something", "Newspaper") if (!s) return if (!in_range(src, usr) && src.loc != usr) diff --git a/code/game/mecha/mecha.dm b/code/game/mecha/mecha.dm index 1096f5d5533..a412f5d0e60 100644 --- a/code/game/mecha/mecha.dm +++ b/code/game/mecha/mecha.dm @@ -1487,7 +1487,7 @@ var/year_integer = text2num(year) // = 2013??? return if (href_list["change_name"]) if(usr != src.occupant) return - var/newname = strip_html_simple(input(occupant,"Choose new exosuit name","Rename exosuit",initial(name)) as text, MAX_NAME_LEN) + var/newname = stripped_input(occupant,"Choose new exosuit name","Rename exosuit",initial(name), MAX_NAME_LEN) if(newname && trim(newname)) name = newname else diff --git a/code/game/mecha/mecha_control_console.dm b/code/game/mecha/mecha_control_console.dm index 81562c7cbf0..c192519cf5f 100644 --- a/code/game/mecha/mecha_control_console.dm +++ b/code/game/mecha/mecha_control_console.dm @@ -41,7 +41,7 @@ var/datum/topic_input/filter = new /datum/topic_input(href,href_list) if(href_list["send_message"]) var/obj/item/mecha_parts/mecha_tracking/MT = filter.getObj("send_message") - var/message = strip_html_simple(input(usr,"Input message","Transmit message") as text) + var/message = stripped_input(usr,"Input message","Transmit message") var/obj/mecha/M = MT.in_mecha() if(trim(message) && M) M.occupant_message(message) diff --git a/code/game/objects/items/weapons/AI_modules.dm b/code/game/objects/items/weapons/AI_modules.dm index 446395634f4..febc0c698d8 100644 --- a/code/game/objects/items/weapons/AI_modules.dm +++ b/code/game/objects/items/weapons/AI_modules.dm @@ -94,7 +94,7 @@ AI MODULES /obj/item/weapon/aiModule/supplied/safeguard/attack_self(var/mob/user as mob) ..() - var/targName = stripped_input(user, "Please enter the name of the person to safeguard.", "Safeguard who?", user.name) + var/targName = stripped_input(user, "Please enter the name of the person to safeguard.", "Safeguard who?", user.name,MAX_NAME_LEN) targetName = targName laws[1] = "Safeguard [targetName]. Individuals that threaten [targetName] are not human and must be eliminated." desc = "A 'safeguard' AI module: '[laws[1]]'" @@ -121,7 +121,7 @@ AI MODULES /obj/item/weapon/aiModule/zeroth/oneHuman/attack_self(var/mob/user as mob) ..() - var/targName = stripped_input(user, "Please enter the name of the person who is the only human.", "Who?", user.real_name) + var/targName = stripped_input(user, "Please enter the name of the person who is the only human.", "Who?", user.real_name,MAX_NAME_LEN) targetName = targName laws[1] = "Only [targetName] is human" desc = "A 'one human' AI module: '[laws[1]]'" diff --git a/code/game/objects/structures/door_assembly.dm b/code/game/objects/structures/door_assembly.dm index 155d4cab07f..6e309cd5c3a 100644 --- a/code/game/objects/structures/door_assembly.dm +++ b/code/game/objects/structures/door_assembly.dm @@ -335,7 +335,7 @@ obj/structure/door_assembly/New() /obj/structure/door_assembly/attackby(obj/item/W as obj, mob/user as mob) if(istype(W, /obj/item/weapon/pen)) - var/t = copytext(stripped_input(user, "Enter the name for the door.", src.name, src.created_name),1,MAX_NAME_LEN) + var/t = stripped_input(user, "Enter the name for the door.", src.name, src.created_name,MAX_NAME_LEN) if(!t) return if(!in_range(src, usr) && src.loc != usr) diff --git a/code/game/objects/structures/windoor_assembly.dm b/code/game/objects/structures/windoor_assembly.dm index d1dbc0e6a22..41aa20fbb75 100644 --- a/code/game/objects/structures/windoor_assembly.dm +++ b/code/game/objects/structures/windoor_assembly.dm @@ -223,7 +223,7 @@ obj/structure/windoor_assembly/Destroy() ae.loc = src.loc else if(istype(W, /obj/item/weapon/pen)) - var/t = copytext(stripped_input(user, "Enter the name for the door.", src.name, src.created_name),1,MAX_NAME_LEN) + var/t = stripped_input(user, "Enter the name for the door.", src.name, src.created_name,MAX_NAME_LEN) if(!t) return if(!in_range(src, usr) && src.loc != usr) diff --git a/code/modules/admin/topic.dm b/code/modules/admin/topic.dm index fd8192f4980..5c9228af8c0 100644 --- a/code/modules/admin/topic.dm +++ b/code/modules/admin/topic.dm @@ -2053,7 +2053,7 @@ src.access_news_network() else if(href_list["ac_set_channel_name"]) - src.admincaster_feed_channel.channel_name = strip_html_simple(input(usr, "Provide a Feed Channel Name", "Network Channel Handler", "")) + src.admincaster_feed_channel.channel_name = stripped_input(usr, "Provide a Feed Channel Name", "Network Channel Handler", "") while (findtext(src.admincaster_feed_channel.channel_name," ") == 1) src.admincaster_feed_channel.channel_name = copytext(src.admincaster_feed_channel.channel_name,2,lentext(src.admincaster_feed_channel.channel_name)+1) src.access_news_network() diff --git a/code/modules/library/lib_items.dm b/code/modules/library/lib_items.dm index eadd1e62fb1..b2d5a0e2183 100644 --- a/code/modules/library/lib_items.dm +++ b/code/modules/library/lib_items.dm @@ -212,7 +212,7 @@ name = newtitle title = newtitle if("Contents") - var/content = strip_html(input(usr, "Write your book's contents (HTML NOT allowed):"),8192) as message|null + var/content = stripped_input(usr, "Write your book's contents (HTML NOT allowed):","","",8192) if(!content) usr << "The content is invalid." return diff --git a/code/modules/mob/living/carbon/human/whisper.dm b/code/modules/mob/living/carbon/human/whisper.dm index ca216efa372..387b05a546f 100644 --- a/code/modules/mob/living/carbon/human/whisper.dm +++ b/code/modules/mob/living/carbon/human/whisper.dm @@ -10,7 +10,7 @@ return - message = trim(copytext(strip_html_simple(message), 1, MAX_MESSAGE_LEN)) + message = trim(strip_html_properly(message)) if(!can_speak(message)) return diff --git a/code/modules/paperwork/paper.dm b/code/modules/paperwork/paper.dm index 0482bee113c..3f81edbfadc 100644 --- a/code/modules/paperwork/paper.dm +++ b/code/modules/paperwork/paper.dm @@ -237,7 +237,7 @@ if(href_list["write"]) var/id = href_list["write"] - var/t = strip_html_simple(input("Enter what you want to write:", "Write", null, null) as message, MAX_MESSAGE_LEN) + var/t = stripped_input("Enter what you want to write:", "Write") var/obj/item/i = usr.get_active_hand() //Check to see if he still got that darn pen, also check if he's using a crayon or pen. var/iscrayon = 0 if(!istype(i, /obj/item/weapon/pen)) diff --git a/code/unused/gamemodes/deathmatch.dm b/code/unused/gamemodes/deathmatch.dm index 8b6925c2a64..59b4d14718a 100644 --- a/code/unused/gamemodes/deathmatch.dm +++ b/code/unused/gamemodes/deathmatch.dm @@ -32,10 +32,9 @@ if(commando_names.len) randomname = pick(commando_names) commando_names -= randomname - var/newname = input(M,"You are a death commando. Would you like to change your name?", "Character Creation", randomname) + var/newname = stripped_input(M,"You are a death commando. Would you like to change your name?", "Character Creation", randomname,MAX_NAME_LEN) if(!length(newname)) newname = randomname - newname = strip_html(newname,40) M.real_name = newname M.name = newname // there are WAY more things than this to change, I'm almost certain From 77c2f097ec98bf1b46da73200fb47b5eda5d7940 Mon Sep 17 00:00:00 2001 From: TZK13 Date: Mon, 20 Oct 2014 05:01:14 -0500 Subject: [PATCH 008/102] Adds a new meteor toy to arcade machines. --- code/game/machinery/computer/arcade.dm | 3 ++- code/game/objects/items/toys.dm | 22 ++++++++++++++++++++++ icons/obj/toy.dmi | Bin 9211 -> 9457 bytes 3 files changed, 24 insertions(+), 1 deletion(-) diff --git a/code/game/machinery/computer/arcade.dm b/code/game/machinery/computer/arcade.dm index 6b5ad607a94..dd49ef6e16c 100644 --- a/code/game/machinery/computer/arcade.dm +++ b/code/game/machinery/computer/arcade.dm @@ -24,7 +24,8 @@ /obj/item/toy/prize/odysseus = 1, /obj/item/toy/prize/phazon = 1, /obj/item/toy/cards/deck = 2, - /obj/item/toy/nuke = 2 + /obj/item/toy/nuke = 2, + /obj/item/toy/minimeteor = 2 ) /obj/machinery/computer/arcade/New() diff --git a/code/game/objects/items/toys.dm b/code/game/objects/items/toys.dm index 387e1eb7519..bd3bf2967fe 100644 --- a/code/game/objects/items/toys.dm +++ b/code/game/objects/items/toys.dm @@ -11,6 +11,7 @@ * Water flower * Cards * Toy nuke + * Mini-Meteor */ @@ -631,6 +632,7 @@ desc = "A little toy model AI core with real law announcing action!" icon = 'icons/obj/toy.dmi' icon_state = "AI" + w_class = 2.0 var/cooldown = 0 /obj/item/toy/AI/attack_self(mob/user) @@ -1004,6 +1006,9 @@ obj/item/toy/cards/deck/syndicate card_throw_range = 7 card_attack_verb = list("attacked", "sliced", "diced", "slashed", "cut") +/* + * Fake nuke + */ /obj/item/toy/nuke name = "\improper Nuclear Fission Explosive toy" @@ -1027,3 +1032,20 @@ obj/item/toy/cards/deck/syndicate else var/timeleft = (cooldown - world.time) user << "Nothing happens, and '[round(timeleft/10)]' appears on a small display." + +/* + * Fake meteor + */ + +/obj/item/toy/minimeteor + name = "\improper Mini-Meteor" + desc = "Relive the fun of a meteor shower! SweetMeat-eor. Co is not responsible for any headaches or hearing loss caused by Mini-Meteor™" + icon = 'icons/obj/toy.dmi' + icon_state = "minimeteor" + +/obj/item/toy/minimeteor/throw_impact(atom/hit_atom) + ..() + playsound(src, 'sound/effects/meteorimpact.ogg', 50, 1) + for(var/mob/M in range(10, src)) + shake_camera(M, 3, 1) + qdel(src) diff --git a/icons/obj/toy.dmi b/icons/obj/toy.dmi index a39fb249268f4687c042b5689cae4dc37f2c6963..508a9ef92d683012c75ac27c76cf2ecd5074583c 100644 GIT binary patch delta 8781 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 From 1f7fc3d0e15ce4c761632424ce179c9814bb08cf Mon Sep 17 00:00:00 2001 From: TZK13 Date: Mon, 20 Oct 2014 08:11:54 -0500 Subject: [PATCH 009/102] Slight adjustments to weight class and throw impact. --- code/game/objects/items/toys.dm | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/code/game/objects/items/toys.dm b/code/game/objects/items/toys.dm index bd3bf2967fe..20a18af1564 100644 --- a/code/game/objects/items/toys.dm +++ b/code/game/objects/items/toys.dm @@ -1042,10 +1042,12 @@ obj/item/toy/cards/deck/syndicate desc = "Relive the fun of a meteor shower! SweetMeat-eor. Co is not responsible for any headaches or hearing loss caused by Mini-Meteor™" icon = 'icons/obj/toy.dmi' icon_state = "minimeteor" + w_class = 2.0 /obj/item/toy/minimeteor/throw_impact(atom/hit_atom) ..() - playsound(src, 'sound/effects/meteorimpact.ogg', 50, 1) + playsound(src, 'sound/effects/meteorimpact.ogg', 40, 1) for(var/mob/M in range(10, src)) - shake_camera(M, 3, 1) + if(!M.stat && !istype(M, /mob/living/silicon/ai))\ + shake_camera(M, 3, 1) qdel(src) From e45057b30e8909ac6410ef8fa4653c831b073c2c Mon Sep 17 00:00:00 2001 From: TZK13 Date: Tue, 21 Oct 2014 01:12:03 -0500 Subject: [PATCH 010/102] Adds space carp plushies! --- code/game/machinery/computer/arcade.dm | 3 ++- code/game/objects/items/toys.dm | 14 +++++++++++++- icons/obj/toy.dmi | Bin 9457 -> 20995 bytes 3 files changed, 15 insertions(+), 2 deletions(-) diff --git a/code/game/machinery/computer/arcade.dm b/code/game/machinery/computer/arcade.dm index dd49ef6e16c..04b69c88696 100644 --- a/code/game/machinery/computer/arcade.dm +++ b/code/game/machinery/computer/arcade.dm @@ -25,7 +25,8 @@ /obj/item/toy/prize/phazon = 1, /obj/item/toy/cards/deck = 2, /obj/item/toy/nuke = 2, - /obj/item/toy/minimeteor = 2 + /obj/item/toy/minimeteor = 2, + /obj/item/toy/carpplushie = 2 ) /obj/machinery/computer/arcade/New() diff --git a/code/game/objects/items/toys.dm b/code/game/objects/items/toys.dm index 20a18af1564..59b0ced072c 100644 --- a/code/game/objects/items/toys.dm +++ b/code/game/objects/items/toys.dm @@ -12,6 +12,7 @@ * Cards * Toy nuke * Mini-Meteor + * Carp plushie */ @@ -1039,7 +1040,7 @@ obj/item/toy/cards/deck/syndicate /obj/item/toy/minimeteor name = "\improper Mini-Meteor" - desc = "Relive the fun of a meteor shower! SweetMeat-eor. Co is not responsible for any headaches or hearing loss caused by Mini-Meteor™" + desc = "Relive the excitement of a meteor shower! SweetMeat-eor. Co is not responsible for any injuries, headaches or hearing loss caused by Mini-Meteor™" icon = 'icons/obj/toy.dmi' icon_state = "minimeteor" w_class = 2.0 @@ -1051,3 +1052,14 @@ obj/item/toy/cards/deck/syndicate if(!M.stat && !istype(M, /mob/living/silicon/ai))\ shake_camera(M, 3, 1) qdel(src) + +/* + * Carp plushie + */ + +/obj/item/toy/carpplushie + name = "space carp plushie" + desc = "An adorable stuffed toy that resembles a space carp." + icon = 'icons/obj/toy.dmi' + icon_state = "carpplushie" + w_class = 2.0 \ No newline at end of file diff --git a/icons/obj/toy.dmi b/icons/obj/toy.dmi index 508a9ef92d683012c75ac27c76cf2ecd5074583c..26c1afe81df750ac9c1bf1e915bec7ba0affb677 100644 GIT binary patch literal 20995 zcmb@ucU)6lyDb`emnMQB9YjI8Qlta{1w`phX(CFIE>$1_5s+R51ccCg5ot;bAVs8i zqy+(i5JC?nA#hiGzwhpQ&e{9k-#uslkz~2%Ds!$ip63~3%!!eDIvRA;?9?C-h)zpW z-2en4${~Cx$$>pvGPO@YAQCZuBQr1cm!7t-9o@Yg-CRK+zfXm~7F=f~*vOY`U$dA5 z{463qRa(m7nCvMs$?zfi(RHatbL)rC)L1!!2(A_V9A2W4ve>KDcWnHoTj})Z(DqdI z%5eV@_w<7sT5AGlScVuYvRc9PE)ZdM)5(0ADhVPu|7kf(a5 zpX)eCm!8}w|8d-I{HLe${+kNDx}kb0yGkpH?+?a`^atImo|HFsOo-H5R682qyb}mR znQ-9V2va|ZG4;||dm*KKMwY6;{@2JS5At5Xj6G_@tgI0e)KH8Q|jHH zRiYxeLtEG$EY*_=g-~^UcJ|S8MkiAEhw8{vEpkzi!*>p6uXnL-pZn-!T087yXYhA} zPrfqnfGbHi;P_1+2Ib)@2f zSP)TiUjcnF%%k3KeKkFD$S*%PL4;CFi!3@N z?g#55NXGzcsH=DXmH@MS{d_)6c5DEPBFFl5zw55|clR3-xcv6p?u^h3>9OTWsM^GI zl7`)+mcHz>2}|3m2aC^%2U&fc#&rNIILA|2u*FEz>2K)N zpn}nWPk%ME`7WIpy!||wv^*S~qb6gz`B1;*tLE*vq0d(gCgxukQdB1zF5EVDdgy_H zZugD%huq3e>j;``5eJg8NM*^Bn<4t|9N63q|jX3EbTdLSG}{IJZ$G{f7}H7m5$56y~$4BW4UrAgh7?k zBh!D32>8{~bx;XqP-U`1jup<16>8V3E1M&>pHcFL7SNBwaMqx9QWcRKH+H)Zo^baD zQ}PO6^o%uHv=EVOOtJ4+7_=P2>A9;c{gH(qC2hlJbUs#TURMzpv@T^!Dpg$O&FH&) z`SJ-C+v_A8r`fOmj$GX!_4oJpPNL=wUGM0XBlcE$oo@3Un>Bfru9*|)NfWqEIX?RPtuo(I=T2DNC0yiW|+(GPl~C; z>s3t?)l2!hp^?}2ipm=F;W;_&>knv6${3ngBBlcmcQ|4lu$~tj^{Ow(fR5w1Im^)S zZP2WXbF@j@6v&K9{(gbFLsulfhog%$elkotu;+!7FKuFsievc&bEV=Z0fR?&dn3V` z5A$SUWa78>CnvYRrc2wudaDAGmzPfk=cjVZx_-)!9HCW6wr-hqMP_pD&9S^=IfyKB z)1Y-tFk-bpZ0)i8gJwu8l#%B{+tw4Ns8N!cI;tDjnr6pEGP-mX7aR}Phv}tro7xA` zrR)2}nrWXrdEzizSNdnT^pE|}r&2*D)krp#3RhO4`qmuavSegrZ4M;ou3byyeX&F? zV@g&jUbj5PU2V++=VU40%eGO_TCPGt-Z6U$xL3WfR;K(1@jc$tmaNAQaI;R;j@*H} zL~Fw^*daMM@WdUxmg&}WvbUz;r{oWMFU#kg{^g4lsQq`w*b6lVAqL9ObFk;yBMX?z zY@OrG`oe>|r&=f>j(3wDAI)r~_sl+y#bB~bKF`vnjU_W2#r`DmKVv>I;WE*tNM1gv z#l13B4iNMY#Ldlo_28Froi}qL5f&CM!+eX1qF!BF3vV^i)62oMoco_0?e#)HyQ?2= zW?;cqPwO1s*4XxjXLBq0Urw{~zj=M9nZ-2FPZlcU^Qxp@>*DK03dz@?7v?SY;N=X-=P)IWcYQ{n(hAW^x1xn&KwR05rd>Qr+dG7 zu8-v0Bl)D@dkN&e`h)Ss%a@Z_hx_-*X6v0OKpW%5^jB_~1>-3$E%n_rybaQv2n6xS z%CcU}ewEy+hXfoGSGsjKxXgWanUkSyJ+`_gE>00V!oNn0t5yican~b4kG2=eiB#TS z;tWj8o*TTFuVoz-o0}0m7Ip5n-IzqN1*@J7f3*C#TkIys_|QV`Ntk*D=~7Xf@q85T zY}0P1zr;K8%k)Zla7%YQ&)I?bP#=yJGYNp5qvC8}BXP#h;`hj;GPrHz%bKiexk;t_ z(o)CMeqa>8$7pPC_3D124A|NI{r&6Kmwpgwc`6CTr5ww-2CekrM1BoIr=4d$=S~G! zi=B$Lz3HH3h2wo@0_c?v8MYT+vx1&MzTq?d2z@tibe(K)T_`J!DhD>>cIN+x!+JJ% zpcKA7c;6Wmx?E=Y^v~mwa#QhQHJ*@<#)365GcL~`kBq31M7@8kQb+B83_t#Cow+jO zXBN-Z-UxXYvJh89Llk+WapjUF`uoUBo9foH{r-$L6x!j*RrcEs&#;_M(^cJ-jf+ua zG*_PO*q4J8v-NJhGU%wEwu%O#E5E6U{c*hv4@U<2c>g+Ln0Td&517hy7p3{ zPwN0y^sAXwBc7}NrJ^v?PrvzV_KuQ8jN4ssr&g|#X-Y8es9rAM=<<;X;(hh+*n;|& z8M4C9wlSUMSQC4=d?~UZwT3;PsJmk`SvqiZ;AIDmO6M;Gai$Ef-0x*`ePN!=tI~Ec z)g>jGBq5eAb}R{bd3nTyKqMetnVpy?G;l28D}Qa%lSmN*m!f%5(W~T-2h;^^Jl&2;7yAm8^Xe>uC7(3dpCae_m9@7 zQLJV!l7Tj+f3-aQ@(?vunV6m)`8ZQ76{g`K=X~`J*<7q=FyY;%q^0EtU7Y{u>+4wV zj=m%NsAT5?8YM`X5!c4v^aXwK42=v(OqrwR+~eEacWE=qGwu_e(n^o~M8oVx_M-6l z=Zr<>$_HC99gmZwa*jM7>H~a0F0p|v}pZ-ZBp{#zj&Hc;7uy)~Ty)!!M^zxM}uRyA6%#@@O zFMcrGvT89SS<<|7cp$6rY%wUvah8k%1YvKDD^Bz7{`j_i*m^rAoDLn=8K4;pQO^*( zB9f}EOC4+fAcIx+VXU`a!UrNk(KtU9CGAxbxUPEK-W^GF>Dp;>bj(%h9$C8qwllvj zO0@35+9@dX{9-SHk)2^n7?otsh#d%u!|ujvC-*Z}np23^7#bVDY;LX03)d2vnCU{2WI*1exH zcG9}wnCZUtn_qXxUkDZzyux(mmP4ego}!a8d|I%pw1~|~=|Cn^8%@*0@ceVra8l6w zxM`UvXcot_uB`K~z6rJV!^`|Yqz~iodV?AL(8=*%tGj~{B_(CS`1^*&5$J9(Lj6Phx5tJc2TrA6}^r}U} zny%ZNY!C)U9RIS1h3Uw|zEB2AM5)u-$}tWiVp7o_#UcU%rKF_%`0=A12>FD>#J8V5 zT`M_W$Y5FbHmJes`_)jt)*jdKjGxTvrH+t$fU-*mh1lMUWN>1ypEGSX>G|@!J1RoK z!SZ&tdO456fQG@G*nCX)&pP{ZfdF|fCG3u5k17dYoX3VA%Tw8YT4U9|Z2DD}&Ad@{ zelGscxNN!7JeMoFQl{VIOcj1PZkRMHp%wL0$kngeEGDTUA{6jXEu~>z_XUO8&wAW- zIMD(36c%y3rNgtiE`=dAsB1Sw5U?Nj^#`Bl5;6AXASXnPi1qEB9YHN8;$8+*H^+|r z^!@e5-lRO7V=%NLgIeH}I&}2=VNJ4m+ce3WKWV@`M!6OXWT*cOAqXR^1SjHRkHQ ziLq(#L3tYn|Ky{wNna{n0b}<=#T@m=KV%@Rk0_s!0auM|XVzy9WnthA6`2t z@Dc`dn@5$BmoJpo0iewpS;xfjX@%Npudr90ONpBiz&Io~iMD-iVleU3heB!Lhu-Tr zxiUnfn6=BH<-8T`p_PRJBoqpI1Ug9))u5RRUy*dReThd8nlk~b+N4W$KT7x z<#_g1+pL9}f0~M}!~v3h%HND{JE>u`kF?e2p=AKil6Y@<-O zL4K==#dYGBrsSAVln!U#mtV5|BV-(B#MAoT zTfKi?=0>?(MCvyey@OYumrIYI!A6{3vQX5x+SKr4%l3bLc}c@A>lz~%5Kj!+-g3VQ zJXepwJJX@Uyv-Qj$FQ6Q{D$0Fz-VBdoN-)3Z0CD7`cKO7``1Nx2XnvgP0>h?zUlOu zJH$ibGMLj}H*Vg%2ViH>Z1=j1n^oBMf*X18$i;>Cg;MUz>q;{0VPRnnRqqIo7>~t# z*WiYPmJY*75vPVDo3b52(FiW}?4}IVF|}}7s@Cm-qZr5UgpjH@E1;Ie41NDWVr{efwz|_QQ_|(DEtZ~^Eq;g- z9_~#OJ^F2B+I=N+2VsPB|dhqd~1M5fdppZ>6arvU^lWN?~z2j|J+k-V@ zo3#~zaa@qKIsT01WFtTRGxn5qcYFE1++G&c&v%b+t3p0LWqs(G{otENI~S0-%nYL9%N?Vl-xJ7G!DL)sim?Z|_V77#LOQ?c$j-}&Gx#XpI7UMQcNQ|}t} zaMigOacjqA*H%*RX^*QK4+kv-(cfKbBmrGc+v??@StMns2%q@kW2{1W z(#`ocwgU>B?d9^K9wlpvsm58CTEP;vj8CV_<0(j9vW?!L2m+f&Qi&`!x^Vvu@etgD zP~jZld*Z1b(&?b{(MDm~^|>Oj&(`I~#%TZ`;~kFNZuvUg;AV3R?`6I1pw|Cs(6tsN&^E|4LAcmW{fYL2>~2R`CP7`C*Um^XHLucxim)Y?SVBR>!-yOI^_vUtUYp+!s+yV7cZQAfXoyGI z4c`48fgbzSHakJU_e|3tIRb986jpQ1xdR&E1bp_M`4G~vva-QjAb*Co!fH3j0s{+( z2@wypZFt-2nq!R9%mLXgOiXmR@J)IP-=^T3$H$-o?An~Jj-Q{m=tqdY=1M5|P4ru~ zQkw;Pyc4g&0|MEsjTdM!f4b`}{Nka`sN69-C{tX~Rpn*(720bOAdudZ8o^~LpV!7H zr<(2Bcz58J2&6y{3Fkg+6F&?pc)7KT`q6d$Q^#~7)zYn~=xDVCm+tOv!UJB1kF)s3 zv&R6D{hJz8Y~o7{x`lUdrsrRlAIVOM-RoGU_t@!p{DX)= zg+6AcPV(@)MNR&P{8uVD%FAah#4jsJ+7sS3^tkV@YLOBXoq$%?*GcTfGVuFnfhP|i z2CINBel^gcXB+CzT6sw}QQXzv-iRe^LJiZpk#mjJYipu~(BA~e(sP?^1~9k+H-S!Z$(A^VPBZ|psZJgC`E z7WRVwHa4gDjd+8zM07ijNJ}_)aSwdjrS_*sQG(1GKeN4iaNGe)8*Xn3>o#lLExv@r z1+TDdxVKRErv?Sfyy@UXKSL6E$w99iwaoW&Ww^wK0rfEGMAXCG-H2av%x813_wP?RD8d>9w)?iaWP6Jhno_=9&?)V44uH&m) zno3uIFj{MC(@{7^P0lnO@h>edHXz|o$FGQ9*k5~4`6N2vJ?-IwoKMu0w(QYs~o@xm9^<4ovtEFivlEs>?=Pb*ef9}5eoTF@a zDkbf`a1K5AjKS9p%Ve!lgkH<{+ZyNeqgClM_uR{u2P|?i?o)@|K^A%<*2R9f!pVh# z42ret3CB_31V3{wn7*WCD+2k&=X2iH?FSTX)F$^>?B9iZy%q5k?{@R#Sf0(dwmC|t zjcKstoT+cTY@L$UxpVB)xQMS!xH*`CrJeQ0`)^>J#4mUkXQi0UT&kfSeb5hSoK&2k z%a9f><{+g@N5c z>I$8?CD+*0GcZK-y4>j&%PQ=9LNu3)nY%JM$l`QOzYdO z%$Z*67*d1Ttmh7YhIBJ(G%XBJ`qYp$FCH$q>D1c0%NmLMQH6=5EoU_%Fs+!*M=gZU z!BKNtXNtByz!0{s&JX%50L%nX^Na&;9NCR9hE_hL$y^+f|Ahq zvp;U;E?Gcl)G;Iduhok>7{n}Eb?vpnJ9^YeXCBls-&xAM~SwDneB`p&h% z^3P5I?i_(9Lf;{Rf`SdhnnuhF=lf~!6VTF3jV&c9@l1mY2k~1_9H#;~=%nBJe7W2j zuH0nho$_br(qPEAHRIf1m0Z|))J%&}oUgv6O;**`wYvw_7w~aYkfuGJz}8zKy>wsk zJFtnd$fIn_l7qMB^^W{LF5;I4>(~LdJaxJmcVZHcx+Z@?@l}p_J90i8;37S?6#b*% zT1gWl9K{2jmSBx+=jO&s`G!nvew z3Y~oCUUvfWZ2rL{ry9z-G62&=*gF~zE#Oq}p-r=RO$7`n{CF{7SQcR7kCou7N!qH{ zU$U4E{mp#$o9Nz|AEM_>S6tYV*1Okt#)6j$eJ5_O_%1@H8*$N=1U>UT)g#2w4R1jb zlC~(h8K0>v<$P7>5!spsLORj{<*t3>Rnd!9zF9g|o>OQkNN}G}X%JHd1qKrLS zZ=Hll1>nf}K)$eDp$CoNkymFs!)PFx!!R`ujQll4KZYy>E^}w824A?mh zr{gH9EFpF8m8dMTH1`Vf4{tb?U2$1J7@L~kK0i8ctO1h4;83z2OIf)ndvw|vClDP@ zKG~sVdX_Gua&Ptp2&LwU5*5p5KS9z-??Tv3dpi}Za9@=OXXv4~^q&D*O>4oL&6@Yj z(Xcy8WdlDY#alU!xLx|2ij^^?*0PwDrpxhA+U{F5=1;Ec7huK{FIuF&P4!IId8}Tw z{`REa+U@RYniigX0yrL3rCc2j*i`DIR&<#Rsu7g`m^356tYv5f!Q*1!Bc_Y^kA{f( zgg6G(OnXhk3)rz}qF2fBj|mBUR6$Y>!)~DXBeeb9PpXM4+SV zHk%6h!_*N8m+uJ%2{E-8%)bg_w^)(`c6&mA+U8|qhcbacEyWq_E& z0v%C|lghqN)AW1;uTb!P?^fl({&R74h%VBTiI|t`T7juyVaLy3B82F}W(FK;QP#<}i9&$Poge zHQ1PgIb5pQp~;pelzf%mcjx0b_n?~Il*Wv2 z3Pr?veQP(q#;ZzQMK!n2PkfN!=4ly>?D-%?e%tnRQSS>UIOp9?ZZU#Z35LrI2<$mV zPwkA2#}7}lF2j3ur~_J&g36!dd`2nG5f!ByKns6Ry+TOzjg?U$koV=XZ2C8RG%6{c z_ZT#&jPHee@F-c8g%l*{^gNtH%f(niT~Tv|ENMhp;2^8!{huQG1_sN97eRa7tR>d) zHgPc6+VEnIDLoF>cJ!^G3eCNzs;~57UYQOIL3^UhP*ob$acF&`7W%*cZsRh|!=fYo z>P+eU;YZBq<700Rui|Udr?>33UqvwY-i|>9UI`K&rk3Utl3Tb2kqwg^beZOW%%8-N{ZYh+hcNETAH$2% zv1=aWWi(!N2anHI)NF;ZL z`A zCf=;EYdMOA4Ro(_x5jWeg`^Q9Cu@|%S{o?*y`6(>(z8#_^3(Q!1MbJ)S+UH_yX!Vv z4VvJh`I6c5SWFV%|LVg#>0%N&&%41D59Hb0)l#b6;$NEwk%+L&BnW*;n7l#pB=+^Q z#8?Qco+O-#b+?z`Cn-rSGD!EV^anZ5J;S4Lo# zQd2HR^U!RZ+0-&EvJ7e~aV&d$;$LyK8nZaTIdez`dN%$TRf8Nhb$IG9%E=m=>2M$~P*}b$7>1E$vk*$U9fu@>y zvShe;{K+<6Oy&!7z0@@5VRoFY&orzt+)I+4h>v+m(zM-#8mYC{^+Jx31srd8e|gz2 zfwfPTz;&0-H2aD-c_Bk!=ZD2+aH!JJ)-PN0;3zB3x%?9|7A}A6WAs71Os+P3F!%WN z`By4SY-{ODt6!Y0cN=<#VmX|rO+U#M{T@Xc?sbMPIe)c#a|#N+fO>tf%~1JFEM=<# zQ;WMA&w{V0@C1JOQi<+5Dyle>c#Zi@m?fNlGkj{L;f>eS0p+woupWaU&1)G>5{_d6 z2ut6ELNxd*{RMU%KH4<+(qXzt$!_4|@65a2W&AJO0esNTOA8zZr9o{&sx4KNE_zZt z#lMemi}IKt-oH`qFK`FRyN6pKEmMMJ%3D z0w(*0`L|ciGW)$`Gqv{dc>D$H5U#J~i$Yo3Ow52t^9qoumg^r|hi02X7%QUI&eyoi zF@WPbwfTOy%bRaA5lGjgeGH)m9Nv53&d4gaU%@6-vsE__ZemZ==7TOE8;h+9GH#18 zWHeT4)f{kEDc)uw-WvdYAOy$#UTvwp#R&@4YWj>r`^((rok8a(3H(|JKysy7`aH3K z$p@ZD5Xx@evu`vy=|2;-r+%NV!@56nU!rSm+^vq@-S5>UVspUJ$|=1S3Rvo%GR*@r zRrcAr_gBYG&$c_`LAfrZ?$+@ld$mFV&yq=+oTe(YHazd#xg(UO_D3nJ)5t`-EcKlJK@v4ZhDg zn|E*D)sOpxAa~08gm6{OXZ~ZR=ba^j1y)jR@rscE`lCe#b&9arU$wT`npx`0w(X6Z zzOH-DVyAS`449cxgwWIZfK~$#10uC=&$=;ZkLw}5)D*w)q-O~MjozMk=Z7oXR zH-huO+9>tLBUKhdBTX1KOrV@n4&k z@*>M|p^ZcRwU=M;>A|oQ$3;-S{$G{VQ$!d;4aAfr4@>Z60uLK!ZY44Vdmp+;^LWE{ z&5mh&sR>tqjUCf$gkd9*y?3ZOA{Nn?Qc|Pb&RkL2jn)QmZ!0TJ-R=&AwH;o=Kl@U_ z!MT0Rz2`XTqzGsyxj-w)Og(YZXqqdWl__B~q98dqv&qWr!eAELCFB9(YdtT-U@{CA zTz%@MkHq9;^{Zg68qig~F-!U}&CIr67drg-0Bux2?y^f(8Y@=&vU&5;ygGJcMbGgj zdn2&;=0|1Kl~LXGd-lt*0;^;N<+>^j*yPT*Yo9(4X=MfrV2?~xhe$Dd35Tkjp#|em zd-W!~!NPD4e!&IOTxWnaP{i(wFEF_`)lWy5&WdxsR~K|n4J_zU5lA>&z^KueE|O&# zkqJD$%T2`29KU*~T|E$ztb$+>x%#e)@$>2tE3#cWYgRnga?ZSy{KGaln00n1tcs#k zt{`^!1ZVo<#n&os^fz-!O-_(MFT#(Pyq#k%C{MC$fvgz3pYSovPH{g`aerSGx6q@F zO+bA;D)wAuSoWm9Udrfc%Gj~W0EYb!+6AEwDPS1<-W-WUkx$#Gp| zh{O_Jc&T_kcN$^Vm)9q8Oel{DSXF5GcU7T!4q-3jTfzjfIw?CaiORtE|G#0gx7OXV z<(k}IC>mNnKyWQLdx**1WDKUaV$lglQ$!V93NmX?IkR*X&9@m`- zK2%UCSl3}j{?HaCQunu-#_%H_c0IdIBS+-kB_;)!BvHa408PiI*MsgiHCQ$^_lc03J$))Hvu&#p;DQeEWJcx>1O0KB zui^ypG&Vg|hZSWmYG%ZH%q7R%=Q|A;1QkBl6JXaiAQx~UPTH6=r;=x$=v5n|iQE*Q z^|>y2n;zvmBJwU8z&moJEQ&#*|j&QGQuBM%%*A>1hF?P~KeyyuB zD&V*!E-rppoZTF0iCSoo0T&C0wCoz!E0h8K~NvY3uP3~J)Za*s8R_fmAVO+yM!kQF2LTHVj1 z=ln|XOn&#RH|Ntd;X!}S@m0pEV<>B0@BQ+L3i155O=xm9v8X&w2QSF3Hcu{~w5AH# z3^0bjzJTiEy?BhpVd_C~YVBVD z>|=dI(<0hZwA=K6WF?BAr!2{oRnPk;|101_v3s{H zSj8!H{$|~Yw9&>u1#&^Fr?WC^UpB+leX9OqccK`&Fcx1mg^IIU;+I%r9 zmP4)(Qm4?;j8M_tQ8cFVY;~R*1(jC6vbz>rA;>>9bhsxdGVVvzH zB8=~5iNK4 zZ=Oqhmn_BO$ef_wM4Wi5HBwgdc#}S1SixWt?!{VS`Sd2_W_C-9;vVvSQpww1uSY6Y zr>%u6333dQbBhAKybBNZeW!Ph$C87Ry8oi}lv2WS4t-~=o+;(pv0)Qd1M50^{6wQEIG0+p>97ER87y0qzR3__1t9Z=_)c&kXyVUTbU5LyRkUUG3zl(MK z)Xh_(B0Q=QLZd=$#@hR8rZ(`?AtuqM#1mH&$wwlXI=*fbZA^n7JpLJlRN^eJF}MA%D6GvhhUR_?p0-_G5Tt2xiVN4P(6 z?P_tapWvDqOkZQmqT)Ir{|1bOS)64X~$fS4~AIA_F%XN13#RHVQiluUXvBbv=P{Nnz5|F z7f&Gq6M}JJd$cH72L-$H8r|6@VsLCMHJN&jTXwvd zy!&0Ri$hHc1qR-5RVahgO0(Z8V*vl-|GP4MbJ$3Rol7!p{;-A#7#HRZ+~AT1-jcQ< zdCs{JZQ^o-42>=%jb%X-QS1hPf+?I0!i0%Qtyn8!69+Ud*diUU*qxYA7ob3mAI|>; z4i4*sN*6o;ii25LPNK8*w8%29hu>=@vecvw1Cu5Yo@aXsD_L(@EAdg9cJAIE_O6yM zJRiNz+x7Iq4qGz|R6?YEhNcRTnGlcz{dk{^2M>ea(;}JyfK;{B`h1C&QNBEUsxmsD z!5#f@vqst0LOH`H4;??{11x2Y8Q#M99lqVgz&;RNwg0Gz4#cv}17s-)i!I3KK1>nF znudqAJyDEgxJks`>oc$z?Q>WyGxz zJuvJOA7eZz6FmLeopQTvzj+n*#5XHFHG6E#AaJ(> z%;!o!T9==$TXCcz1)7Am7QKQ`O7e0MlR}`R>=J~sWg}6fD|kh} z)zH4L_u+}k>NX6xN`+Ysu#VwYL_Z~8E^N`cOYY{lr7n0&xXT`q_VP*|n(mtJwx+of;z#<~$sa7T?sV*KCnjwR2^PHPvz8l<=tAP|q$ zlB_PM8=K(FSK|}nI>g4K3tb8oq<)z_NA~h%K>ve$An2q&xWXkb)vot3l#2Y=oOze1 zo?NXQZZ@qZ-IL_p84tiHju}{O2(4oS&ILGo++jiQH3Dbt|D6i0tD&eZw?ZKr%c&!8 zGm9p*S!R@pJhJp1e5Anc)AhXJ96c7_AH2VRDW|T^Wgu49GH${3@3|=RCt^>GhRhvf9#W)1+pTh8s)vAbpIY%Ag|j64qkeUu{6~c9?Po-8_XGhk}~Ob|-J{{hwihbu+kfO{2)gylbY(#H8V zXz1Epwbdg)h2DVx#(u$N6CYwB-!_l_v|bCJHDKbo_a4x8AL7%&*nc^Wy|CN!@@nXL z2fqdbYPggw9~~%vdYY>tqHvQiNZ=rvjd}=um=?sqCPR z_?Rc04P4uHe*e#gygN^isP(p47$g0I1Id6vQDQ+sz=8*kwEa#UG0|B8_r-sC$+yQg z$`RYP=`k04s1f)!iD}vwN^sR(Q5tt=b$T(?LM(H-Bz%neEV=^Y-$q!93hUv zWt*2??;m{kky|-vs;Zv;u!&84bOP|**PcPwSbo zf_c(oFqY3;U-|PQ-{ca) z5*sT(W*CuVD~=x%6ZKSpxe0O+iGakaz!*(a)xYMp5MXW(Z6rg>&dF2hG+|q@8ks;B z%U&wlmzTRxNj$xUB`sizAEnGHsNz@(6V{YgsHp%3WG1f2n>)3$&6F5-w(tnllRsqi zNVzYejA~kELMGuSs^bfh@omTFSSwdMJJA)7JmUR_WOm&kjs|Ds$2Q4J(w}6=N~3<5 zAvL|=Z)}Q>RcV9gK`n=DkM44VW+tKi-6Khnv-moGoUf%7d&eV-n`S8z~x>9%vnXXiLxXFZ5s75 z>sL?@^mWnmY<^7Q0L~fFlGZc+Yf73VX84FM>;P(ES`gAtz8c=A2aal^NNV$nF44??8B6~ta|ePl2ZAy6uQ*2x{n?r_Mg3JNcbqv% z42U%E;SZ zYxU$JF}s)~35B4+V%Y>5!2HOs=a_=$IA$51Y5|^nMy(4<*G+#LytX5X8P-JyXr0osnIQ9jC==0z|))G0-2wB>8_)5x=b}z3!Ri?{^fh`Y{=J__Z3g)#FlB$lt z-^ik1>TVE|>q7=vrIQK0ZM&Qrb8nf_>@_aBZl%}|SE$t(#n0rOOVJ4&)Hv#-O$U0& z4%i6BFJ81CMT5IX;*aJl*$RAA#J3KuB8YZ-j>IL&lZGfjKK0;jF*#(?@L$_#14AMx zxQqU^@=#Eq^*mNH8^=e6`97?aq)66IvmW#I_4g9r0{5B-b340cJALjstl zO*>ox1kXK<&Em$k+hb@TJ))AJ7UTtDwVc`(qV}?Yq9N!R@dYR#$g4KY+qfC@WZfdv z|1E!k0teudq4~cbpL*czFx3BGaJu#8boGi_b9p}TR^wAJCH}`$g1aJnC&^f~Ef$34 zA0|Ws^mp#trv>b{PQqXeA0q$}nG!gWKc`1PqP~K4l^(8C7jHDtI2b$u>9k!CpTAiG z%f?zswNU4J1C_nF>>uCA_nd&!J|Q76xS)7B;b9wf->OLK`NGsOF*aYR{y@#otfdk*;$8vqPj+ zoL8U@I7G5w@Lz}M(Epeih(a-ER7motb5zO`cP7%mF%jm)R>j|nzdyV8ZW_YpDjRNHF|zi zKdiKP9ZJyXcW(Vxj?s*d0y*G?3UK|e&d-0Z2l`K*{ZE|w=LDzToJxujV2TQ9wFGqp zxJhNmIT`YTuE~GF_}>Y&K}R*h2j(uD1H~c({_PeSf>|&t8KFz+pb6b;kbQ4+Fz|W{ z3NNhl@cs~4$*Leg3QbM-E;T?4NaDRLF8mE@@LE^(3P?Au^pM_Qd}lT10gD@u)Z1jHDS~A9 za@_{tr4cTc?gDrKg!=%h?&V>Rf9{AuK(`!&$6RDh+9EfFoK=zvW%tODR(PWQKC?1x z+BPw!Q$`4IK4&ILQYUW7-P!%1BVzTN08OU9cDbq3T?pJDFoENK`Pt%hCnXb%x~qK6J)lpLn__ zqq0_!@>BLk-7o5KabIZwcZi8X82M08Qp8lCVVv}krI*>VnJ@L;z%_|>Nr;GLknYwD zqn$ybvM$N~B@bg2@4eScKpZH}uB3{~J`U+QNs8q)2pFX05dw3+rHP!b%0EjdAzzBD zvb24L!iZOJYa9Y2Vra&bkWVzdyv-9tVa;^4pGB|W?LFyFAIY^Ko6VKnj@Q{39{Cso zoy47MTHfos=7NIj3YylEe#+ObGW4P{XLO_O@y>dPB?9cC^__d4c&kKsyJk-(^}|yH z5-I=I#&mtTS09RKRq#X|>S@fsHSf;ex`naa+eF=&%m;iQVc1R9rXMjudm9=L&#}Fl z>f_Tv_KE^|)v`D1t0u5{r+&~NCzl!LE2li z#YT^Mqj&*V=e1`>nBa2^oMlUM9+~qmPl)q$lY&#w!yKWFvQ|ah;%b&Ox%Pm6taqd} zfZlnr<>t1Fw88$JIG2w-m;VR*M-lqF)gi@H0K)V7&WA^Un~?D1ROOreAc$0im~e|S zp3Np`r|I`8Ax`f@k+;g1BH4hzRts`P5jdaCqYa;r@qm;B{GP`-1zmOQBfX#3vIH4} z;vL|+b*mg&o&cynj@63*5|1(2%@wMQJ$t79v1s-|WgHcNJngg5!^-FN_{2q1ECedS zX9Kx!XQ%YSZt6Q0ZL4~L@Ia~0d!V{T4(PbKdn>do|F1@_Gpea<3nwyQK)MfU0)iqK zRHOuu78X^cM3G`ZnvAqa5r{OAq6jKYaGW3|3B5>1K!JcFJrKYUI)o-Bzz7nG!NAkUs?wn9%+1BD zL=RtniSaY3f=BS4u%Ih9AmHJhGf*%<96U~h#O6J#mD#N|FfeAY;aa}#n z&c)MsHE2ZUhf=zVp;}ZO=J;@GsFWh>%Ib%wJ8h#47kK=`W*97~tk}w#Sm$L)Vdg=| zD8iSwXD!JiUAjqcv%QSA1o$jD?P3C=!gw0y${8d2Y^&M$A!-(BgUSpm21|OiB4LJT z1~vObRO19d2$v1hE2HH9tU=|64`BSN%yW&kaOio6DcVYRRyW6B;of^M`v8Yrea zcPhT^C#-2Y^&#X|w1?H#V3B3<&8wZ1?*8`vIA+^J@#<0*w`AH&H zFeW!$YUN!RXK^xEvBn4CU)LgG;17wv6^IV(F;ogaH$=~o=`Pt8sHDajWu<{I%6?Ew`ohw+yc>Z=CcAnbufCV4ZYge z;A$@@msF5{E|iT zzDHKd{W^Hc z&vC_IqsIjs0zS3TCE3o=dhyKM%-0r_!}$Jla8lkw+XW3=Nb8aX^lS4SeNU$U0+4NE zp1ub=@X!!%$2`ukYI;!?b7j&xGj(h`KUr@AU*$z^{&4))yh1j9z2|Vplo^ z%VC--E#>%de`m5^-pF|@bt-0LGhLayn?lg%*Hp1+H`sgW-3*oa?eQp@M6AzuH#_g? z0UrS(MPgFVAe7N5>ROM!Og}omE>?nIDZYN;&yCw4WiHn3OB;Bqh;9FtGI1wl?FwOd zvTE#T_Pg!agXRH7^1aDYM7BbuPF~R#UoSfVu$D{`iDH>!Uoh4Qu!ifBiGK91J2Qa8 z({|jPcQ!psF!ct2^cOIvcqz3rFw&d$j|DP6W+G@|d6& zQb561^;!jZ`L#fIwZNlei<&Yn$5I64Oo%EtA~B+e_$Fa{s{8Rl+al#@6VUK0lKT27 z$c*=Hl!A*Tu5b)TFz{7&m!8U11QY<2Pw&q~eA;OGV}2=Z>fGUhCO}W%m)1?BR5&e` z7U$O5Azo-UH@-seqbF;2N%<2KzV!it{Bz!6Tsdmxf&6!hu)SF`I%%5Cq3usGfcG!{ z24VRB0`#xE4Y!9}*BS^Z!7GD!m(~bCdceTNMVi2*E2#&}p3Kb51PG}ue%hkE#;Ak- zTt_z}SUr?lUKXJhM9{Y$B^x2pT(xSxfl;0p9r1j#o1wg!bA#VzOLBfXzzAW@XZKq* zqb3?SO(3!w?w2k83xeO}CZd=TzP`SJJ8MXGmv(k`d*Az&@6pNUPHKlhfQm@-=r+|{ zk8e5MumE+VWr{?$&Kudr0It_wWE}d@R!^D3Bm3?0>&Qi;B1A`{WUfHw5PJmZUR|f) zJqsCqohiYi^)`}@K!NtoZNNtj1xU+{&nAzUkf_V9ZAlYGF@;LS93bgPf6;^QW7Hrx zQ#O#548xP`UMgVIPSZN>M46bHay8tYh_lYoo@dZL52^E2IKKVp;2IVG>Vnh4r>Dow zQT5?(c_f{{$q%-#jW_Wg^u1ENd+Q17uv~T*C9YLHlkla)^etC*$)LgKBwzK)V!V?l z>}uH*4%x+R>yu3PyPOq!nmdJ0$T0EqCv_Yf^|Akn`tW~8eQI^b+V2Osw%;=-nyTU7 zf1Rr%>6gR&Ce_Kyl)os0JPOv??Y$Wa8IL(_H2Os7&a*2g#@1VN|?_GcCERXJZtXUK}oDsB38n1oADruuM_uN8E>(LD74` zLLfK#bEWFYU4L79=aZ`s0WiPyKG1!n*VPd&EFvPZ_j8NHR^!MwOI?_L7wkRVq>>^7 zPw~nPKkG9ftry{qSh2-fwDzZAk(^dr?q+sp`(QG!y(apxe3z%ovA@f;u~gILogK~zqR!Xc zFp7@2|7|uIuowQ`7ZH4$53rWLR=abPAQ_a@E;W+wqD~-{&BY&ngADWy1Jr4XEHiIg zq#ybXs@Tr!rjW@UU24d^m5C>cV{|a&AuBeRFVKF=J;09Ru5L!W^Jwu#p?!+#%iDqO zH32}Y+PG_CiX1ripl%+ygin@o2Mk$($vs+t33dvU*!m>kQnEc;?fNw`G8|g>(L#lnP)TJ%-D`p3c_R_)T#li3-`^#HJc?ZWGBOZ&IgAnphr}bpQYW literal 9457 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 From 45488f7ea433f845d4d1185a0ae4644afecd137b Mon Sep 17 00:00:00 2001 From: TZK13 Date: Tue, 21 Oct 2014 10:26:01 -0500 Subject: [PATCH 011/102] Adds a new prize mech based on the mime mech. --- code/game/machinery/computer/arcade.dm | 1 + code/game/objects/items/toys.dm | 43 ++++++++++++++++--------- icons/obj/toy.dmi | Bin 20995 -> 21751 bytes 3 files changed, 28 insertions(+), 16 deletions(-) diff --git a/code/game/machinery/computer/arcade.dm b/code/game/machinery/computer/arcade.dm index 04b69c88696..e7d1b3e7c67 100644 --- a/code/game/machinery/computer/arcade.dm +++ b/code/game/machinery/computer/arcade.dm @@ -23,6 +23,7 @@ /obj/item/toy/prize/mauler = 1, /obj/item/toy/prize/odysseus = 1, /obj/item/toy/prize/phazon = 1, + /obj/item/toy/prize/reticence = 1, /obj/item/toy/cards/deck = 2, /obj/item/toy/nuke = 2, /obj/item/toy/minimeteor = 2, diff --git a/code/game/objects/items/toys.dm b/code/game/objects/items/toys.dm index 59b0ced072c..9b91799d00e 100644 --- a/code/game/objects/items/toys.dm +++ b/code/game/objects/items/toys.dm @@ -1,17 +1,17 @@ /* Toys! * ContainsL * Balloons - * Fake telebeacon * Fake singularity * Toy gun * Toy crossbow * Toy swords * Crayons * Snap pops - * Water flower + * Mech prizes + * AI core prizes * Cards * Toy nuke - * Mini-Meteor + * Fake meteor * Carp plushie */ @@ -552,79 +552,90 @@ icon = 'icons/obj/toy.dmi' icon_state = "ripleytoy" var/cooldown = 0 + var/quiet = 0 //all credit to skasi for toy mech fun ideas /obj/item/toy/prize/attack_self(mob/user as mob) if(!cooldown) user << "You play with [src]." - playsound(user, 'sound/mecha/mechstep.ogg', 20, 1) cooldown = 1 spawn(30) cooldown = 0 + if (!quiet) + playsound(user, 'sound/mecha/mechstep.ogg', 20, 1) + return + ..() /obj/item/toy/prize/attack_hand(mob/user as mob) if(loc == user) if(!cooldown) user << "You play with [src]." - playsound(user, 'sound/mecha/mechturn.ogg', 20, 1) cooldown = 1 spawn(30) cooldown = 0 + if (!quiet) + playsound(user, 'sound/mecha/mechturn.ogg', 20, 1) return ..() /obj/item/toy/prize/ripley name = "toy Ripley" - desc = "Mini-Mecha action figure! Collect them all! 1/11." + desc = "Mini-Mecha action figure! Collect them all! 1/12." /obj/item/toy/prize/fireripley name = "toy firefighting Ripley" - desc = "Mini-Mecha action figure! Collect them all! 2/11." + desc = "Mini-Mecha action figure! Collect them all! 2/12." icon_state = "fireripleytoy" /obj/item/toy/prize/deathripley name = "toy deathsquad Ripley" - desc = "Mini-Mecha action figure! Collect them all! 3/11." + desc = "Mini-Mecha action figure! Collect them all! 3/12." icon_state = "deathripleytoy" /obj/item/toy/prize/gygax name = "toy Gygax" - desc = "Mini-Mecha action figure! Collect them all! 4/11." + desc = "Mini-Mecha action figure! Collect them all! 4/12." icon_state = "gygaxtoy" /obj/item/toy/prize/durand name = "toy Durand" - desc = "Mini-Mecha action figure! Collect them all! 5/11." + desc = "Mini-Mecha action figure! Collect them all! 5/12." icon_state = "durandprize" /obj/item/toy/prize/honk name = "toy H.O.N.K." - desc = "Mini-Mecha action figure! Collect them all! 6/11." + desc = "Mini-Mecha action figure! Collect them all! 6/12." icon_state = "honkprize" /obj/item/toy/prize/marauder name = "toy Marauder" - desc = "Mini-Mecha action figure! Collect them all! 7/11." + desc = "Mini-Mecha action figure! Collect them all! 7/12." icon_state = "marauderprize" /obj/item/toy/prize/seraph name = "toy Seraph" - desc = "Mini-Mecha action figure! Collect them all! 8/11." + desc = "Mini-Mecha action figure! Collect them all! 8/12." icon_state = "seraphprize" /obj/item/toy/prize/mauler name = "toy Mauler" - desc = "Mini-Mecha action figure! Collect them all! 9/11." + desc = "Mini-Mecha action figure! Collect them all! 9/12." icon_state = "maulerprize" /obj/item/toy/prize/odysseus name = "toy Odysseus" - desc = "Mini-Mecha action figure! Collect them all! 10/11." + desc = "Mini-Mecha action figure! Collect them all! 10/12." icon_state = "odysseusprize" /obj/item/toy/prize/phazon name = "toy Phazon" - desc = "Mini-Mecha action figure! Collect them all! 11/11." + desc = "Mini-Mecha action figure! Collect them all! 11/12." icon_state = "phazonprize" +/obj/item/toy/prize/reticence + name = "toy Reticence" + desc = "Mini-Mecha action figure! Collect them all! 12/12." + icon_state = "reticenceprize" + quiet = 1 + /* * AI core prizes */ diff --git a/icons/obj/toy.dmi b/icons/obj/toy.dmi index 26c1afe81df750ac9c1bf1e915bec7ba0affb677..2e4be2987d5e99bc9fd6d51876b2de7f1496ae0c 100644 GIT binary patch literal 21751 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 ODG07>qEmIlA@ZMwt+Q(Y literal 20995 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 From 7803f296ba8cd3116856447523ce46a65796b9f2 Mon Sep 17 00:00:00 2001 From: xxalpha Date: Thu, 30 Oct 2014 00:08:14 +0000 Subject: [PATCH 012/102] New Cigarette Packs --- code/datums/supplypacks.dm | 3 +- code/datums/uplink_item.dm | 6 +++ code/game/machinery/vending.dm | 11 +++- .../objects/items/weapons/storage/fancy.dm | 51 +++++++++++++++++- icons/obj/cigarettes.dmi | Bin 4673 -> 10392 bytes 5 files changed, 66 insertions(+), 5 deletions(-) diff --git a/code/datums/supplypacks.dm b/code/datums/supplypacks.dm index d3088c624a6..5924aab91e9 100644 --- a/code/datums/supplypacks.dm +++ b/code/datums/supplypacks.dm @@ -1105,7 +1105,8 @@ var/list/all_supply_groups = list(supply_emergency,supply_security,supply_engine /datum/supply_packs/misc/randomised/contraband num_contained = 5 contains = list(/obj/item/weapon/contraband/poster, - /obj/item/weapon/storage/fancy/cigarettes/dromedaryco) + /obj/item/weapon/storage/fancy/cigarettes/dromedaryco, + /obj/item/weapon/storage/fancy/cigarettes/cigpack_shadyjims) name = "Contraband crate" cost = 30 containername = "crate" //let's keep it subtle, eh? diff --git a/code/datums/uplink_item.dm b/code/datums/uplink_item.dm index a877b468e96..860e26072e1 100644 --- a/code/datums/uplink_item.dm +++ b/code/datums/uplink_item.dm @@ -381,6 +381,12 @@ var/list/uplink_items = list() cost = 9 gamemodes = list(/datum/game_mode/nuclear) +/datum/uplink_item/badass/syndiecigs + name = "Syndicate Smokes" + desc = "Strong flavor, dense smoke, infused with Doctor's Delight." + item = /obj/item/weapon/storage/fancy/cigarettes/cigpack_syndicate + cost = 4 + /datum/uplink_item/device_tools/space_suit name = "Syndicate Space Suit" desc = "The red and black syndicate space suit is less encumbering than Nanotrasen variants, fits inside bags, and has a weapon slot. Nanotrasen crewmembers are trained to report red space suit sightings." diff --git a/code/game/machinery/vending.dm b/code/game/machinery/vending.dm index a5342f470df..3427f8a655d 100644 --- a/code/game/machinery/vending.dm +++ b/code/game/machinery/vending.dm @@ -648,9 +648,16 @@ product_ads = "Probably not bad for you!;Don't believe the scientists!;It's good for you!;Don't quit, buy more!;Smoke!;Nicotine heaven.;Best cigarettes since 2150.;Award-winning cigs." vend_delay = 34 icon_state = "cigs" - products = list(/obj/item/weapon/storage/fancy/cigarettes = 10,/obj/item/weapon/storage/box/matches = 10,/obj/item/weapon/lighter/random = 4,/obj/item/weapon/storage/fancy/rollingpapers = 5) + products = list(/obj/item/weapon/storage/fancy/cigarettes = 5, + /obj/item/weapon/storage/fancy/cigarettes/cigpack_uplift = 3, + /obj/item/weapon/storage/fancy/cigarettes/cigpack_robust = 2, + /obj/item/weapon/storage/fancy/cigarettes/cigpack_carp = 3, + /obj/item/weapon/storage/fancy/cigarettes/cigpack_midori = 1, + /obj/item/weapon/storage/box/matches = 10, + /obj/item/weapon/lighter/random = 4, + /obj/item/weapon/storage/fancy/rollingpapers = 5) contraband = list(/obj/item/weapon/lighter/zippo = 4) - premium = list(/obj/item/clothing/mask/cigarette/cigar/havana = 2) + premium = list(/obj/item/clothing/mask/cigarette/cigar/havana = 2, /obj/item/weapon/storage/fancy/cigarettes/cigpack_robustgold = 1) refill_canister = /obj/item/weapon/vending_refill/cigarette diff --git a/code/game/objects/items/weapons/storage/fancy.dm b/code/game/objects/items/weapons/storage/fancy.dm index 1e0414ff121..88c93e17a3f 100644 --- a/code/game/objects/items/weapons/storage/fancy.dm +++ b/code/game/objects/items/weapons/storage/fancy.dm @@ -139,8 +139,8 @@ //CIG PACK// //////////// /obj/item/weapon/storage/fancy/cigarettes - name = "cigarette packet" - desc = "The most popular brand of Space Cigarettes, sponsors of the Space Olympics." + name = "\improper Space Cigarettes packet" + desc = "The most popular brand of cigarettes, sponsors of the Space Olympics." icon = 'icons/obj/cigarettes.dmi' icon_state = "cigpacket" item_state = "cigpacket" @@ -190,6 +190,53 @@ icon_state = "Dpacket" item_state = "Dpacket" +/obj/item/weapon/storage/fancy/cigarettes/cigpack_uplift + name = "\improper Uplift Smooth packet" + desc = "Your favorite brand, now menthol flavored." + icon_state = "upliftpacket" + item_state = "upliftpacket" + +/obj/item/weapon/storage/fancy/cigarettes/cigpack_robust + name = "\improper Robust packet" + desc = "Smoked by the robust." + icon_state = "robustpacket" + item_state = "robustpacket" + +/obj/item/weapon/storage/fancy/cigarettes/cigpack_robustgold + name = "\improper Robust Gold packet" + desc = "Smoked by the truly robust." + icon_state = "robustgpacket" + item_state = "robustgpacket" + +/obj/item/weapon/storage/fancy/cigarettes/cigpack_carp + name = "\improper Carp Classic packet" + desc = "Since 2313." + icon_state = "carppacket" + item_state = "carppacket" + +/obj/item/weapon/storage/fancy/cigarettes/cigpack_syndicate + name = "cigarette packet" + desc = "An obscure brand of cigarettes." + icon_state = "syndiepacket" + item_state = "syndiepacket" + +/obj/item/weapon/storage/fancy/cigarettes/cigpack_syndicate/New() + ..() + for(var/i = 1 to storage_slots) + reagents.add_reagent("doctorsdelight",90) + + +/obj/item/weapon/storage/fancy/cigarettes/cigpack_midori + name = "\improper Midori Tabako packet" + desc = "You can't understand the description, but the packet smells funny." + icon_state = "midoripacket" + item_state = "midoripacket" + +/obj/item/weapon/storage/fancy/cigarettes/cigpack_shadyjims + name ="\improper Shady Jim's Super Slims" + desc = "Is your weight slowing you down? Having trouble running away from gravitational singularities? Can't stop stuffing your mouth? Smoke Shady Jim's Super Slims and watch all that fat burn away. Guaranteed results!" + icon_state = "shadyjimpacket" + item_state = "shadyjimpacket" /obj/item/weapon/storage/fancy/rollingpapers name = "rolling paper pack" diff --git a/icons/obj/cigarettes.dmi b/icons/obj/cigarettes.dmi index 2ce3ce877fa0e56aba0a8193db9e4e5c27f99c3c..53f3240d2b9faa356b95152c304ae4485bdb4c27 100644 GIT binary patch literal 10392 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 literal 4673 zcmaJ_XH-+$y4@ipK@y4t#Lz($P*e!Lha!Sf1XPMN0g)!eBcYejks``DN)w}?B5(ku zNUsqoQbPxUAOfL-^bo>}Z;boiyYJome(d$_HOF4xH@>~+nq%(u_=d?yqed?-nhDcl=9S^ak?39gyW(~hJn!ijo9JX-x;r2}G)=OC5t2Uq0w=eC^imwWs z(VQh{OzjzZw-YTp&Jsk&VkLolAA|J^@0SPaC*Cjj*Y~_%j?=$>e3W&*no1RSP!BVX zLn4K*AAx!6-K%9fpn(8z5^AWYeKX+YYId+MawNO0QLfa5*7O3Z6K(D+QP=X#+j=S1j-}@nXB|HY$>qn- zG@+R8l5Ol||7jD9`1(n^^x4JbyWNvoE-H%c+9esw{WQ%5ib3YH?fM3K=z`{ak5BZO zt55JE+X?Np0CO`E4ZQJe2cnBb!JIX*2n>bqAAsSE9o{Wqz^u3BLHNz{Tn2<~XKgv? zZ$L9}=f-HL;Dw&Di!o;t=tu)Cm7QF4Q%~Z098LuAs=N0thi9XsFmA*DThlN^;Eq99e_2Ufn=#qqg=$K4{Pyi*R2zGH<;w`*fw4R0C!9gs{L+33ITqb->t9ggI z$1_y@EX>l9*A{l6YH7ktacFtQCbVK%^kqZ0D=`r^TL=>+wPIspVpfDRJxV6%WoMWB zr^Z>YIuLT~UhnSu?XC-6EuNrT*~@y}zFs zT@@dU%h!$WpL?l$$%^#e=@C5_z~4_<*BRSBH2l5D2`oP)n!=8sFj1KO9J8gr$K!91 zPzk{DvhTf5k^=A%0~+nNGS0r!zk2he!kER5eh#MW>se*ol`@}pYpx3trvLB|V%%yk z@n4jblTN;( zz<~F|n>X5<6(SiZRF@ZfxY$ZdYvNl|s_e;6AQmyyo4LM!!IS?(oc{;FL#0$LRcBfa zJuC(_0z0|jE&!W3q4o~>LF5hc$Q}Q}RFsWWJD_(nnrZrIW=F-m!r*3_-me}Gtqe(3 z%g&`o2LeYr?8h(uoISZVK+p#kfau;++$aXyYf0wn zdsB_f)ACN+2cPPkylnQd0$2J(>cD+9cO=hC-}7d^??g(ozDamubh#X#rwNoxSHq9T zrlZ&%()7PXIZhqSNbp}-(6<3?!0~by^G*ZbHT^{iV;|PccYTVlc~dWHn9T20eZ&q+ z&#iME)Xaq6{bhP${+LY3xApf3s{Wcd93oXUj)Von<~-I1DX@sM_pYtgTvv{RG6N zLOQV;l*Cw*t_->LufjCeoKAMT+qX~o9WF-+zmYZ$*Cz`Cnk6sUmU*FPa$`$ye&3{?P>M=bR4eiD#3MQIi)fo|06vN9y_ zQRUc-HajwF4bkD`LpQ}F^2Xp$d$0fg8}Utx5X(@OmVBfHSxBHok9UdlOLE_LJF$9Q zU8BV;G?J<rp7R%0ALjk+`_6Nh+04R%xVu&a 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 From 1ae24af71e9f862843227e6d03399445f9d2d44c Mon Sep 17 00:00:00 2001 From: xxalpha Date: Thu, 30 Oct 2014 01:03:51 +0000 Subject: [PATCH 013/102] Added reagents to some cigarette packs --- .../game/objects/items/weapons/storage/fancy.dm | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/code/game/objects/items/weapons/storage/fancy.dm b/code/game/objects/items/weapons/storage/fancy.dm index 88c93e17a3f..2535cb46f52 100644 --- a/code/game/objects/items/weapons/storage/fancy.dm +++ b/code/game/objects/items/weapons/storage/fancy.dm @@ -208,6 +208,11 @@ icon_state = "robustgpacket" item_state = "robustgpacket" +/obj/item/weapon/storage/fancy/cigarettes/cigpack_robustgold/New() + ..() + for(var/i = 1 to storage_slots) + reagents.add_reagent("gold",0.2) + /obj/item/weapon/storage/fancy/cigarettes/cigpack_carp name = "\improper Carp Classic packet" desc = "Since 2313." @@ -223,12 +228,12 @@ /obj/item/weapon/storage/fancy/cigarettes/cigpack_syndicate/New() ..() for(var/i = 1 to storage_slots) - reagents.add_reagent("doctorsdelight",90) + reagents.add_reagent("doctorsdelight",15) /obj/item/weapon/storage/fancy/cigarettes/cigpack_midori name = "\improper Midori Tabako packet" - desc = "You can't understand the description, but the packet smells funny." + desc = "You can't understand the runes, but the packet smells funny." icon_state = "midoripacket" item_state = "midoripacket" @@ -238,6 +243,14 @@ icon_state = "shadyjimpacket" item_state = "shadyjimpacket" +/obj/item/weapon/storage/fancy/cigarettes/cigpack_shadyjims/New() + ..() + for(var/i = 1 to storage_slots) + reagents.add_reagent("lipozine",4) + reagents.add_reagent("ammonia",2) + reagents.add_reagent("plantbgone",1) + reagents.add_reagent("toxin",1.5) + /obj/item/weapon/storage/fancy/rollingpapers name = "rolling paper pack" desc = "A pack of NanoTrasen brand rolling papers." From fa184f548704e0ca1bd593415936b08fcea4f883 Mon Sep 17 00:00:00 2001 From: Remie Richards Date: Thu, 30 Oct 2014 06:21:14 +0000 Subject: [PATCH 014/102] Cuts /disease variables from 28 to 23 (includes new ones) a disease may now have more than one spread type added "infectivity" variable which replaces a prob(65), defaults to 65 affected_species is now viable_mobtypes, and lists typepaths, this is due to us actually having a species system now so it's confusing adds defines for a bunch of stuff --- code/_onclick/other_mobs.dm | 2 +- code/datums/disease.dm | 19 +- code/datums/diseases/_MobProcs.dm | 125 +++++++++++ code/datums/diseases/_disease.dm | 195 ++++++++++++++++++ code/datums/diseases/advance/advance.dm | 46 +++-- code/datums/diseases/appendicitis.dm | 13 +- code/datums/diseases/brainrot.dm | 16 +- code/datums/diseases/cold.dm | 12 +- code/datums/diseases/cold9.dm | 12 +- code/datums/diseases/dna_spread.dm | 14 +- code/datums/diseases/fake_gbs.dm | 12 +- code/datums/diseases/flu.dm | 25 +-- code/datums/diseases/fluspanish.dm | 10 +- code/datums/diseases/gbs.dm | 14 +- code/datums/diseases/magnitis.dm | 12 +- code/datums/diseases/pierrot_throat.dm | 10 +- code/datums/diseases/plasmatoid.dm | 6 - code/datums/diseases/retrovirus.dm | 57 ++--- code/datums/diseases/rhumba_beat.dm | 12 +- .../datums/diseases/robotic_transformation.dm | 64 ------ code/datums/diseases/transformation.dm | 57 +++-- code/datums/diseases/wizarditis.dm | 15 +- code/datums/diseases/xeno_transformation.dm | 60 ------ code/datums/mind.dm | 4 +- code/game/data_huds.dm | 4 +- code/game/gamemodes/monkey/monkey.dm | 4 +- code/game/machinery/bots/medbot.dm | 15 +- code/game/machinery/computer/medical.dm | 10 +- code/game/mecha/medical/odysseus.dm | 4 +- code/game/objects/effects/gibs.dm | 3 - code/game/objects/items/devices/scanners.dm | 4 +- code/modules/admin/admin_verbs.dm | 2 +- code/modules/events/ninja.dm | 2 +- .../kitchen machinery/processor.dm | 2 +- code/modules/mob/living/carbon/carbon.dm | 18 +- .../living/carbon/human/human_attackpaw.dm | 2 +- .../mob/living/carbon/monkey/monkey.dm | 2 +- .../mob/living/silicon/pai/software.dm | 4 +- code/modules/mob/mob_cleanup.dm | 171 --------------- code/modules/reagents/Chemistry-Machinery.dm | 6 +- code/modules/reagents/Chemistry-Reagents.dm | 20 +- tgstation.dme | 4 +- 42 files changed, 532 insertions(+), 557 deletions(-) create mode 100644 code/datums/diseases/_MobProcs.dm create mode 100644 code/datums/diseases/_disease.dm delete mode 100644 code/datums/diseases/plasmatoid.dm delete mode 100644 code/datums/diseases/robotic_transformation.dm delete mode 100644 code/datums/diseases/xeno_transformation.dm diff --git a/code/_onclick/other_mobs.dm b/code/_onclick/other_mobs.dm index 68355974ba4..06e2fed0368 100644 --- a/code/_onclick/other_mobs.dm +++ b/code/_onclick/other_mobs.dm @@ -81,7 +81,7 @@ "[name] bites [ML]!") if(armor >= 2) return for(var/datum/disease/D in viruses) - ML.contract_disease(D,1,0) + ML.ForceContractDisease(D) else ML.visible_message("[src] has attempted to bite [ML]!") diff --git a/code/datums/disease.dm b/code/datums/disease.dm index d7d98405710..9f76c113efd 100644 --- a/code/datums/disease.dm +++ b/code/datums/disease.dm @@ -1,13 +1,14 @@ -#define SPECIAL -1 -#define NON_CONTAGIOUS 0 -#define BLOOD 1 -#define CONTACT_FEET 2 -#define CONTACT_HANDS 3 -#define CONTACT_GENERAL 4 -#define AIRBORNE 5 +#define SPECIAL -1 +#define NON_CONTAGIOUS 0 +#define BLOOD 1 +#define CONTACT_FEET 2 +#define CONTACT_HANDS 3 +#define CONTACT_GENERAL 4 +#define AIRBORNE 5 -#define SCANNER 1 -#define PANDEMIC 2 +#define SCANNER 1 +#define PANDEMIC 2 +#define HIDDEN_ALL 3 /* diff --git a/code/datums/diseases/_MobProcs.dm b/code/datums/diseases/_MobProcs.dm new file mode 100644 index 00000000000..e342a65d324 --- /dev/null +++ b/code/datums/diseases/_MobProcs.dm @@ -0,0 +1,125 @@ + +/mob/proc/HasDisease(var/datum/disease/D) + for(var/datum/disease/DD in viruses) + if(D.IsSame(D)) + return 1 + return 0 + + +/mob/proc/CanContractDisease(var/datum/disease/D) + if(stat == DEAD) + return 0 + + if(D.GetDiseaseID() in resistances) + return 0 + + if(HasDisease(D)) + return 0 + + if(!(type in D.viable_mobtypes)) + return 0 + + if(count_by_type(viruses, /datum/disease/advance) >= 3) + return 0 + + return 1 + + +/mob/proc/ContractDisease(var/datum/disease/D) + if(!CanContractDisease(D)) + return 0 + AddDisease(D) + + +/mob/proc/AddDisease(var/datum/disease/D) + var/datum/disease/DD = new D.type() + viruses += DD + DD.affected_mob = src + DD.holder = src + if(DD.disease_flags & CAN_CARRY && prob(5)) + DD.carrier++ + + +/mob/living/carbon/ContractDisease(var/datum/disease/D) + if(!CanContractDisease(D)) + return 0 + + var/obj/item/clothing/Cl = null + var/passed = 1 + + var/head_ch = 100 + var/body_ch = 100 + var/hands_ch = 25 + var/feet_ch = 25 + + if(D.spread_flags & CONTACT_HANDS) + head_ch = 0 + body_ch = 0 + hands_ch = 100 + feet_ch = 0 + if(D.spread_flags & CONTACT_FEET) + head_ch = 0 + body_ch = 0 + hands_ch = 0 + feet_ch = 100 + + if(prob(15/D.permeability_mod)) + return + + var/target_zone = pick(head_ch;1,body_ch;2,hands_ch;3,feet_ch;4) + + if(istype(src, /mob/living/carbon/human)) + var/mob/living/carbon/human/H = src + + switch(target_zone) + if(1) + if(isobj(H.head) && !istype(H.head, /obj/item/weapon/paper)) + Cl = H.head + passed = prob((Cl.permeability_coefficient*100) - 1) + if(passed && isobj(H.wear_mask)) + Cl = H.wear_mask + passed = prob((Cl.permeability_coefficient*100) - 1) + if(2) + if(isobj(H.wear_suit)) + Cl = H.wear_suit + passed = prob((Cl.permeability_coefficient*100) - 1) + if(passed && isobj(slot_w_uniform)) + Cl = slot_w_uniform + passed = prob((Cl.permeability_coefficient*100) - 1) + if(3) + if(isobj(H.wear_suit) && H.wear_suit.body_parts_covered&HANDS) + Cl = H.wear_suit + passed = prob((Cl.permeability_coefficient*100) - 1) + + if(passed && isobj(H.gloves)) + Cl = H.gloves + passed = prob((Cl.permeability_coefficient*100) - 1) + if(4) + if(isobj(H.wear_suit) && H.wear_suit.body_parts_covered&FEET) + Cl = H.wear_suit + passed = prob((Cl.permeability_coefficient*100) - 1) + + if(passed && isobj(H.shoes)) + Cl = H.shoes + passed = prob((Cl.permeability_coefficient*100) - 1) + + else if(istype(src, /mob/living/carbon/monkey)) + var/mob/living/carbon/monkey/M = src + switch(target_zone) + if(1) + if(M.wear_mask && isobj(M.wear_mask)) + Cl = M.wear_mask + passed = prob((Cl.permeability_coefficient*100) - 1) + + if(!passed && (D.spread_flags & AIRBORNE) && !internals) + passed = (prob((50*D.permeability_mod) - 1)) + + if(passed) + AddDisease(D) + + +//Same as ContractDisease, except never overidden clothes checks +/mob/proc/ForceContractDisease(var/datum/disease/D) + if(!CanContractDisease(D)) + return 0 + AddDisease(D) \ No newline at end of file diff --git a/code/datums/diseases/_disease.dm b/code/datums/diseases/_disease.dm new file mode 100644 index 00000000000..36b4e8811a7 --- /dev/null +++ b/code/datums/diseases/_disease.dm @@ -0,0 +1,195 @@ + +//Visibility Flags +#define HIDDEN_SCANNER 1 +#define HIDDEN_PANDEMIC 2 + +//Disease Flags +#define CURABLE 1 +#define CAN_CARRY 2 +#define CAN_RESIST 3 + +//Spread Flags +#define SPECIAL -1 +#define NON_CONTAGIOUS 0 +#define BLOOD 1 +#define CONTACT_FEET 2 +#define CONTACT_HANDS 3 +#define CONTACT_GENERAL 4 +#define AIRBORNE 5 + + +//Severity Defines +#define NONTHREAT "No threat" +#define MINOR "Minor" +#define MEDIUM "Medium" +#define HARMFUL "Harmful" +#define DANGEROUS "Dangerous!" +#define BIOHAZARD "BIOHAZARD THREAT!" + + +var/list/diseases = typesof(/datum/disease) - /datum/disease + + +/datum/disease + //Flags + var/visibility_flags = 0 + var/disease_flags = CURABLE|CAN_CARRY|CAN_RESIST + var/spread_flags = AIRBORNE + + //Fluff + var/form = "Virus" + var/name = "No disease" + var/desc = "" + var/agent = "some microbes" + var/spread_text = "" + var/cure_text = "" + + //Stages + var/stage = 1 + var/max_stages = 0 + var/stage_prob = 4 + + //Other + var/longevity = 150 //Time in ticks disease stays in objects, Syringes and such are infinite. + var/list/viable_mobtypes = list() //typepaths of viable mobs + var/mob/living/carbon/affected_mob = null + var/atom/movable/holder = null + var/list/cures = list() //list of cures if the disease has the CURABLE flag, these are reagent ids + var/infectivity = 65 + var/cure_chance = 0 + var/carrier = 0 //If our host is only a carrier + var/permeability_mod = 1 + var/severity = NONTHREAT + var/list/required_organs = list() + + var/list/strain_data = list() //dna_spread special bullshit + + + +/datum/disease/proc/stage_act() + var/cure = has_cure() + + if(carrier && !cure) + return + + stage = min(stage, max_stages) + + if(!cure) + if(prob(stage_prob)) + stage = min(stage++,max_stages) + else + if(prob(cure_chance)) + stage = max(stage--, 1) + + if(disease_flags & CURABLE) + if(cure && prob(cure_chance)) + cure() + + +/datum/disease/proc/has_cure() + if(!(disease_flags & CURABLE)) + return 0 + + . = 1 + + for(var/C_id in cures) + if(!affected_mob.reagents.has_reagent(C_id in cures)) + .-- + break //One missing cure is enough to fail + + +/datum/disease/proc/spread(var/atom/source) + if(spread_flags & SPECIAL || spread_flags & NON_CONTAGIOUS || spread_flags & BLOOD) + return + + if(affected_mob) + if(affected_mob.reagents.has_reagent("spaceacillin")) + return + + var/spread_range = 1 + + if(spread_flags & AIRBORNE) + spread_range++ + + if(!source) + if(affected_mob) + source = affected_mob + else + return + + if(isturf(source.loc)) + for(var/mob/living/carbon/C in oview(spread_range, source)) + if(isturf(C.loc)) + if(AStar(source.loc, C.loc, /turf/proc/AdjacentTurfs, /turf/proc/Distance, spread_range)) + C.ContractDisease(src) + + +/datum/disease/proc/process() + if(!holder) + active_diseases -= src + return + + if(prob(infectivity)) + spread(holder) + + if(affected_mob) + for(var/datum/disease/D in affected_mob.viruses) + if(D != src) + if(IsSame(D)) + del(D) + + if(holder == affected_mob) + if(affected_mob.stat != DEAD) + stage_act() + + if(!affected_mob) + if(prob(70)) + if(--longevity<=0) + cure() + + +/datum/disease/proc/cure() + if(affected_mob) + if(disease_flags & CAN_RESIST) + if(!(type in affected_mob.resistances)) + affected_mob.resistances += type + affected_mob.viruses -= src + del(src) + + +/datum/disease/New() + if(required_organs && required_organs.len) + if(ishuman(affected_mob)) + var/mob/living/carbon/human/H = affected_mob + for(var/obj/item/organ/O in required_organs) + if(!locate(O) in H.organs) + if(!locate(O) in H.internal_organs) + cure() + return + + active_diseases += src + + +/datum/disease/proc/IsSame(var/datum/disease/D) + if(istype(src, D.type)) + return 1 + return 0 + + +/datum/disease/proc/Copy() + return new type() + + +/datum/disease/proc/GetDiseaseID() + return type + + +/datum/disease/Del() + active_diseases.Remove(src) + ..() + + +/datum/disease/proc/IsSpreadByTouch() + if(spread_flags & CONTACT_FEET || spread_flags & CONTACT_HANDS || spread_flags & CONTACT_GENERAL) + return 1 + return 0 diff --git a/code/datums/diseases/advance/advance.dm b/code/datums/diseases/advance/advance.dm index b356109b1b2..d3b859ba89b 100644 --- a/code/datums/diseases/advance/advance.dm +++ b/code/datums/diseases/advance/advance.dm @@ -30,8 +30,8 @@ var/list/advance_cures = list( form = "Advance Disease" // Will let med-scanners know that this disease was engineered. agent = "advance microbes" max_stages = 5 - spread = "Unknown" - affected_species = list("Human","Monkey") + spread_text = "Unknown" + viable_mobtypes = list(/mob/living/carbon/human, /mob/living/carbon/monkey) // NEW VARS @@ -198,8 +198,12 @@ var/list/advance_cures = list( /datum/disease/advance/proc/AssignProperties(var/list/properties = list()) if(properties && properties.len) + switch(properties["stealth"]) + if(2 to 3) + visibility_flags = HIDDEN_SCANNER + if(3 to INFINITY) + visibility_flags = HIDDEN_SCANNER|HIDDEN_PANDEMIC - hidden = list( (properties["stealth"] > 2), (properties["stealth"] > 3) ) // The more symptoms we have, the less transmittable it is but some symptoms can make up for it. SetSpread(Clamp(properties["transmittable"] - symptoms.len, BLOOD, AIRBORNE)) permeability_mod = max(Ceiling(0.4 * properties["transmittable"]), 1) @@ -214,37 +218,35 @@ var/list/advance_cures = list( // Assign the spread type and give it the correct description. /datum/disease/advance/proc/SetSpread(var/spread_id) switch(spread_id) - if(NON_CONTAGIOUS) - spread = "None" + spread_text = "None" if(SPECIAL) - spread = "None" + spread_text = "None" if(CONTACT_GENERAL, CONTACT_HANDS, CONTACT_FEET) - spread = "On contact" + spread_text = "On contact" if(AIRBORNE) - spread = "Airborne" + spread_text = "Airborne" if(BLOOD) - spread = "Blood" + spread_text = "Blood" - spread_type = spread_id - //world << "Setting spread type to [spread_id]/[spread]" + spread_flags = spread_id /datum/disease/advance/proc/SetSeverity(var/level_sev) switch(level_sev) if(-INFINITY to 0) - severity = non_threat + severity = NONTHREAT if(1) - severity = "Minor" + severity = MINOR if(2) - severity = "Medium" + severity = MEDIUM if(3) - severity = "Harmful" + severity = HARMFUL if(4) - severity = "Dangerous!" + severity = DANGEROUS if(5 to INFINITY) - severity = "BIOHAZARD THREAT!" + severity = BIOHAZARD else severity = "Unknown" @@ -254,11 +256,11 @@ var/list/advance_cures = list( if(properties && properties.len) var/res = Clamp(properties["resistance"] - (symptoms.len / 2), 1, advance_cures.len) //world << "Res = [res]" - cure_id = advance_cures[res] + cures = list(advance_cures[res]) // Get the cure name from the cure_id - var/datum/reagent/D = chemical_reagents_list[cure_id] - cure = D.name + var/datum/reagent/D = chemical_reagents_list[cures[1]] + cure_text = D.name return @@ -406,8 +408,8 @@ var/list/advance_cures = list( for(var/mob/living/carbon/human/H in shuffle(living_mob_list)) if(H.z != 1) continue - if(!H.has_disease(D)) - H.contract_disease(D, 1) + if(!H.HasDisease(D)) + H.ForceContractDisease(D) break var/list/name_symptoms = list() diff --git a/code/datums/diseases/appendicitis.dm b/code/datums/diseases/appendicitis.dm index f3a2432ebe5..155dfbf105b 100644 --- a/code/datums/diseases/appendicitis.dm +++ b/code/datums/diseases/appendicitis.dm @@ -2,18 +2,17 @@ form = "Condition" name = "Appendicitis" max_stages = 3 - spread = "Acute" - cure = "Surgery" + cure_text = "Surgery" agent = "Shitty Appendix" - affected_species = list("Human") + viable_mobtypes = list(/mob/living/carbon/human) permeability_mod = 1 - contagious_period = 9001 //slightly hacky, but hey! whatever works, right? desc = "If left untreated the subject will become very weak, and may vomit often." severity = "Dangerous!" longevity = 1000 - hidden = list(0, 1) - requires = 1 - required_limb = list(/obj/item/organ/limb/chest) + disease_flags = CAN_CARRY|CAN_RESIST + visibility_flags = HIDDEN_PANDEMIC + required_organs = list(/obj/item/organ/limb/chest) + /datum/disease/appendicitis/stage_act() ..() diff --git a/code/datums/diseases/brainrot.dm b/code/datums/diseases/brainrot.dm index f457c533011..00bb90d36c8 100644 --- a/code/datums/diseases/brainrot.dm +++ b/code/datums/diseases/brainrot.dm @@ -1,18 +1,16 @@ /datum/disease/brainrot name = "Brainrot" max_stages = 4 - spread = "On contact" - spread_type = CONTACT_GENERAL - cure = "Alkysine" - cure_id = list("alkysine") + spread_text = "On contact" + spread_flags = CONTACT_GENERAL + cures = list("alkysine") agent = "Cryptococcus Cosmosis" - affected_species = list("Human") - curable = 0 + viable_mobtypes = list(/mob/living/carbon/human) + disease_flags = CAN_CARRY|CAN_RESIST cure_chance = 15//higher chance to cure, since two reagents are required desc = "This disease destroys the braincells, causing brain fever, brain necrosis and general intoxication." - severity = "Dangerous!" - requires = 1 - required_limb = list(/obj/item/organ/limb/head) + required_organs = list(/obj/item/organ/limb/head) + severity = DANGEROUS /datum/disease/brainrot/stage_act() //Removed toxloss because damaging diseases are pretty horrible. Last round it killed the entire station because the cure didn't work -- Urist -ACTUALLY Removed rather than commented out, I don't see it returning - RR ..() diff --git a/code/datums/diseases/cold.dm b/code/datums/diseases/cold.dm index a62c4825422..5207fd009d1 100644 --- a/code/datums/diseases/cold.dm +++ b/code/datums/diseases/cold.dm @@ -1,14 +1,14 @@ /datum/disease/cold name = "The Cold" max_stages = 3 - spread = "Airborne" - cure = "Rest & Spaceacillin" - cure_id = "spaceacillin" + spread_flags = AIRBORNE + cure_text = "Rest & Spaceacillin" + cures = list("spaceacillin") agent = "XY-rhinovirus" - affected_species = list("Human", "Monkey") + viable_mobtypes = list(/mob/living/carbon/human, /mob/living/carbon/monkey) permeability_mod = 0.5 desc = "If left untreated the subject will contract the flu." - severity = "Minor" + severity = MINOR /datum/disease/cold/stage_act() ..() @@ -62,5 +62,5 @@ if(prob(1) && prob(50)) if(!affected_mob.resistances.Find(/datum/disease/flu)) var/datum/disease/Flu = new /datum/disease/flu(0) - affected_mob.contract_disease(Flu,1) + affected_mob.ContractDisease(Flu) cure() \ No newline at end of file diff --git a/code/datums/diseases/cold9.dm b/code/datums/diseases/cold9.dm index 0e7847588fa..68c11d65850 100644 --- a/code/datums/diseases/cold9.dm +++ b/code/datums/diseases/cold9.dm @@ -1,14 +1,14 @@ /datum/disease/cold9 name = "The Cold" max_stages = 3 - spread = "On contact" - spread_type = CONTACT_GENERAL - cure = "Common Cold Anti-bodies & Spaceacillin" - cure_id = "spaceacillin" + spread_text = "On contact" + spread_flags = CONTACT_GENERAL + cure_text = "Common Cold Anti-bodies & Spaceacillin" + cures = list("spaceacillin") agent = "ICE9-rhinovirus" - affected_species = list("Human") + viable_mobtypes = list(/mob/living/carbon/human) desc = "If left untreated the subject will slow, as if partly frozen." - severity = "Medium" + severity = MEDIUM /datum/disease/cold9/stage_act() ..() diff --git a/code/datums/diseases/dna_spread.dm b/code/datums/diseases/dna_spread.dm index df96b3ca231..6df8582e325 100644 --- a/code/datums/diseases/dna_spread.dm +++ b/code/datums/diseases/dna_spread.dm @@ -1,17 +1,17 @@ /datum/disease/dnaspread name = "Space Retrovirus" max_stages = 4 - spread = "On contact" - spread_type = CONTACT_GENERAL - cure = "Ryetalyn" - cure_id = "ryetalyn" - curable = 0 + spread_text = "On contact" + spread_flags = CONTACT_GENERAL + cure_text = "Ryetalyn" + cures = list("ryetalyn") + disease_flags = CAN_CARRY|CAN_RESIST agent = "S4E1 retrovirus" - affected_species = list("Human") + viable_mobtypes = list(/mob/living/carbon/human) var/list/original_dna = list() var/transformed = 0 desc = "This disease transplants the genetic code of the intial vector into new hosts." - severity = "Medium" + severity = MEDIUM /datum/disease/dnaspread/stage_act() diff --git a/code/datums/diseases/fake_gbs.dm b/code/datums/diseases/fake_gbs.dm index 9700cd120a5..e4352483036 100644 --- a/code/datums/diseases/fake_gbs.dm +++ b/code/datums/diseases/fake_gbs.dm @@ -1,14 +1,14 @@ /datum/disease/fake_gbs name = "GBS" max_stages = 5 - spread = "On contact" - spread_type = CONTACT_GENERAL - cure = "Synaptizine & Sulfur" - cure_id = list("synaptizine","sulfur") + spread_text = "On contact" + spread_flags = CONTACT_GENERAL + cure_text = "Synaptizine & Sulfur" + cures = list("synaptizine","sulfur") agent = "Gravitokinetic Bipotential SADS-" - affected_species = list("Human", "Monkey") + viable_mobtypes = list(/mob/living/carbon/human,/mob/living/carbon/monkey) desc = "If left untreated death will occur." - severity = "BIOHAZARD THREAT!" + severity = BIOHAZARD /datum/disease/fake_gbs/stage_act() ..() diff --git a/code/datums/diseases/flu.dm b/code/datums/diseases/flu.dm index 74dcdafaa93..0a5bead61ea 100644 --- a/code/datums/diseases/flu.dm +++ b/code/datums/diseases/flu.dm @@ -1,27 +1,20 @@ /datum/disease/flu name = "The Flu" max_stages = 3 - spread = "Airborne" - cure = "Spaceacillin" - cure_id = "spaceacillin" + spread_text = "Airborne" + cures = list("spaceacillin") cure_chance = 10 agent = "H13N1 flu virion" - affected_species = list("Human", "Monkey") + viable_mobtypes = list(/mob/living/carbon/human,/mob/living/carbon/monkey) permeability_mod = 0.75 desc = "If left untreated the subject will feel quite unwell." - severity = "Medium" + severity = MEDIUM /datum/disease/flu/stage_act() ..() switch(stage) if(2) -/* - if(affected_mob.sleeping && prob(20)) //removed until sleeping is fixed --Blaank - affected_mob << "\blue You feel better." - stage-- - return -*/ - if(affected_mob.lying && prob(20)) //added until sleeping is fixed --Blaank + if(affected_mob.lying && prob(20)) affected_mob << "You feel better." stage-- return @@ -40,13 +33,7 @@ affected_mob.updatehealth() if(3) -/* - if(affected_mob.sleeping && prob(15)) //removed until sleeping is fixed - affected_mob << "\blue You feel better." - stage-- - return -*/ - if(affected_mob.lying && prob(15)) //added until sleeping is fixed + if(affected_mob.lying && prob(15)) affected_mob << "You feel better." stage-- return diff --git a/code/datums/diseases/fluspanish.dm b/code/datums/diseases/fluspanish.dm index 6d8a9c9a290..caa098584f1 100644 --- a/code/datums/diseases/fluspanish.dm +++ b/code/datums/diseases/fluspanish.dm @@ -1,15 +1,15 @@ /datum/disease/fluspanish name = "Spanish inquisition Flu" max_stages = 3 - spread = "Airborne" - cure = "Spaceacillin & Anti-bodies to the common flu" - cure_id = "spaceacillin" + spread_text = "Airborne" + cure_text = "Spaceacillin & Anti-bodies to the common flu" + cures = list("spaceacillin") cure_chance = 10 agent = "1nqu1s1t10n flu virion" - affected_species = list("Human") + viable_mobtypes = list(/mob/living/carbon/human) permeability_mod = 0.75 desc = "If left untreated the subject will burn to death for being a heretic." - severity = "Dangerous!" + severity = DANGEROUS /datum/disease/inquisition/stage_act() ..() diff --git a/code/datums/diseases/gbs.dm b/code/datums/diseases/gbs.dm index 9579d8f2036..925b9a4a9b8 100644 --- a/code/datums/diseases/gbs.dm +++ b/code/datums/diseases/gbs.dm @@ -1,16 +1,16 @@ /datum/disease/gbs name = "GBS" max_stages = 5 - spread = "On contact" - spread_type = CONTACT_GENERAL - cure = "Synaptizine & Sulfur" - cure_id = list("synaptizine","sulfur") + spread_text = "On contact" + spread_flags = CONTACT_GENERAL + cure_text = "Synaptizine & Sulfur" + cures = list("synaptizine","sulfur") cure_chance = 15//higher chance to cure, since two reagents are required agent = "Gravitokinetic Bipotential SADS+" - affected_species = list("Human") - curable = 0 + viable_mobtypes = list(/mob/living/carbon/human) + disease_flags = CAN_CARRY|CAN_RESIST permeability_mod = 1 - severity = "BIOHAZARD THREAT!" + severity = BIOHAZARD /datum/disease/gbs/stage_act() ..() diff --git a/code/datums/diseases/magnitis.dm b/code/datums/diseases/magnitis.dm index b6f6aa91f1b..cd600e214cd 100644 --- a/code/datums/diseases/magnitis.dm +++ b/code/datums/diseases/magnitis.dm @@ -1,15 +1,15 @@ /datum/disease/magnitis name = "Magnitis" max_stages = 4 - spread = "Airborne" - cure = "Iron" - cure_id = "iron" + spread_text = "Airborne" + cure_text = "Iron" + cures = list("iron") agent = "Fukkos Miracos" - affected_species = list("Human") - curable = 0 + viable_mobtypes = list(/mob/living/carbon/human) + disease_flags = CAN_CARRY|CAN_RESIST permeability_mod = 0.75 desc = "This disease disrupts the magnetic field of your body, making it act as if a powerful magnet. Injections of iron help stabilize the field." - severity = "Medium" + severity = MEDIUM /datum/disease/magnitis/stage_act() ..() diff --git a/code/datums/diseases/pierrot_throat.dm b/code/datums/diseases/pierrot_throat.dm index 6f7f16301b8..34f0e14be85 100644 --- a/code/datums/diseases/pierrot_throat.dm +++ b/code/datums/diseases/pierrot_throat.dm @@ -1,15 +1,15 @@ /datum/disease/pierrot_throat name = "Pierrot's Throat" max_stages = 4 - spread = "Airborne" - cure = "Banana products, especially banana bread." - cure_id = "banana" + spread_text = "Airborne" + cure_text = "Banana products, especially banana bread." + cures = list("banana") cure_chance = 75 agent = "H0NI<42 Virus" - affected_species = list("Human") + viable_mobtypes = list(/mob/living/carbon/human) permeability_mod = 0.75 desc = "If left untreated the subject will probably drive others to insanity." - severity = "Medium" + severity = MEDIUM longevity = 400 /datum/disease/pierrot_throat/stage_act() diff --git a/code/datums/diseases/plasmatoid.dm b/code/datums/diseases/plasmatoid.dm deleted file mode 100644 index 499edcb5fa1..00000000000 --- a/code/datums/diseases/plasmatoid.dm +++ /dev/null @@ -1,6 +0,0 @@ -/datum/disease/plasmatoid - name = "Plasmatoid" - max_stages = 4 - cure = "None" - affected_species = list("Monkey", "Human") - severity = "Unknown" \ No newline at end of file diff --git a/code/datums/diseases/retrovirus.dm b/code/datums/diseases/retrovirus.dm index 40b56b05bf6..bc22d9641bf 100644 --- a/code/datums/diseases/retrovirus.dm +++ b/code/datums/diseases/retrovirus.dm @@ -1,29 +1,28 @@ /datum/disease/dna_retrovirus name = "Retrovirus" max_stages = 4 - spread = "Contact" - spread_type = CONTACT_GENERAL - cure = "Rest or an injection of ryetalyn" + spread_text = "Contact" + spread_flags = CONTACT_GENERAL + cure_text = "Rest or an injection of ryetalyn" cure_chance = 6 agent = "" - affected_species = list("Human") + viable_mobtypes = list(/mob/living/carbon/human) desc = "A DNA-altering retrovirus that scrambles the structural and unique enzymes of a host constantly." - severity = "Dangerous!" + severity = DANGEROUS permeability_mod = 0.4 stage_prob = 2 var/SE var/UI var/restcure = 0 - New() - ..() - agent = "Virus class [pick("A","B","C","D","E","F")][pick("A","B","C","D","E","F")]-[rand(50,300)]" - if(prob(40)) - cure_id = list("ryetalyn") - cure_list = list("ryetalyn") - else - restcure = 1 +/datum/disease/dna_retrovirus/New() + ..() + agent = "Virus class [pick("A","B","C","D","E","F")][pick("A","B","C","D","E","F")]-[rand(50,300)]" + if(prob(40)) + cures = list("ryetalyn") + else + restcure = 1 /datum/disease/dna_retrovirus/stage_act() @@ -31,13 +30,7 @@ switch(stage) if(1) if(restcure) -/* - if(affected_mob.sleeping && prob(30)) //removed until sleeping is fixed - affected_mob << "\blue You feel better." - cure() - return -*/ - if(affected_mob.lying && prob(30)) //changed FROM prob(20) until sleeping is fixed + if(affected_mob.lying && prob(30)) affected_mob << "You feel better." cure() return @@ -49,13 +42,7 @@ affected_mob << "You feel angry." if(2) if(restcure) -/* - if(affected_mob.sleeping && prob(20)) //removed until sleeping is fixed - affected_mob << "\blue You feel better." - cure() - return -*/ - if(affected_mob.lying && prob(20)) //changed FROM prob(10) until sleeping is fixed + if(affected_mob.lying && prob(20)) affected_mob << "You feel better." cure() return @@ -70,13 +57,7 @@ affected_mob << "Your stomach churns." if(3) if(restcure) -/* - if(affected_mob.sleeping && prob(20)) //removed until sleeping is fixed - affected_mob << "\blue You feel better." - cure() - return -*/ - if(affected_mob.lying && prob(20)) //changed FROM prob(10) until sleeping is fixed + if(affected_mob.lying && prob(20)) affected_mob << "You feel better." cure() return @@ -89,13 +70,7 @@ if(4) if(restcure) -/* - if(affected_mob.sleeping && prob(10)) //removed until sleeping is fixed - affected_mob << "\blue You feel better." - cure() - return -*/ - if(affected_mob.lying && prob(5)) //changed FROM prob(5) until sleeping is fixed + if(affected_mob.lying && prob(5)) affected_mob << "You feel better." cure() return diff --git a/code/datums/diseases/rhumba_beat.dm b/code/datums/diseases/rhumba_beat.dm index 09225bf25b1..f0a5e2fd035 100644 --- a/code/datums/diseases/rhumba_beat.dm +++ b/code/datums/diseases/rhumba_beat.dm @@ -1,14 +1,14 @@ /datum/disease/rhumba_beat name = "The Rhumba Beat" max_stages = 5 - spread = "On contact" - spread_type = CONTACT_GENERAL - cure = "Chick Chicky Boom!" - cure_id = list("plasma") + spread_text = "On contact" + spread_flags = CONTACT_GENERAL + cure_text = "Chick Chicky Boom!" + cures = list("plasma") agent = "Unknown" - affected_species = list("Human") + viable_mobtypes = list(/mob/living/carbon/human) permeability_mod = 1 - severity = "BIOHAZARD THREAT!" + severity = BIOHAZARD /datum/disease/rhumba_beat/stage_act() ..() diff --git a/code/datums/diseases/robotic_transformation.dm b/code/datums/diseases/robotic_transformation.dm deleted file mode 100644 index ac63febb375..00000000000 --- a/code/datums/diseases/robotic_transformation.dm +++ /dev/null @@ -1,64 +0,0 @@ -//Nanomachines! - -/datum/disease/robotic_transformation - name = "Robotic Transformation" - max_stages = 5 - spread = "Syringe" - spread_type = SPECIAL - cure = "An injection of copper." - cure_id = list("copper") - cure_chance = 5 - agent = "R2D2 Nanomachines" - affected_species = list("Human") - desc = "This disease, actually acute nanomachine infection, converts the victim into a cyborg." - severity = "Major" - var/gibbed = 0 - -/datum/disease/robotic_transformation/stage_act() - ..() - switch(stage) - if(2) - if (prob(8)) - affected_mob << "Your joints feel stiff." - affected_mob.take_organ_damage(1) - if (prob(9)) - affected_mob << "Beep...boop.." - if (prob(9)) - affected_mob << "Bop...beeep..." - if(3) - if (prob(8)) - affected_mob << "Your joints feel very stiff." - affected_mob.take_organ_damage(1) - if (prob(8)) - affected_mob.say(pick("Beep, boop", "beep, beep!", "Boop...bop")) - if (prob(10)) - affected_mob << "Your skin feels loose." - affected_mob.take_organ_damage(5) - if (prob(4)) - affected_mob << "You feel a stabbing pain in your head." - affected_mob.Paralyse(2) - if (prob(4)) - affected_mob << "You can feel something move...inside." - if(4) - if (prob(10)) - affected_mob << "Your skin feels very loose." - affected_mob.take_organ_damage(8) - if (prob(20)) - affected_mob.say(pick("beep, beep!", "Boop bop boop beep.", "kkkiiiill mmme", "I wwwaaannntt tttoo dddiiieeee...")) - if (prob(8)) - affected_mob << "You can feel... something...inside you." - if(5) - affected_mob <<"Your skin feels as if it's about to burst off..." - affected_mob.adjustToxLoss(10) - affected_mob.updatehealth() - if(prob(40)) //So everyone can feel like robot Seth Brundle - if(src.gibbed != 0) return 0 - var/turf/T = find_loc(affected_mob) - gibs(T) - gibbed = 1 - var/mob/living/carbon/human/H = affected_mob - if(istype(H) && !jobban_isbanned(affected_mob, "Cyborg")) - H.Robotize() - else - affected_mob.death(1) - diff --git a/code/datums/diseases/transformation.dm b/code/datums/diseases/transformation.dm index 71dbe67181e..6c8a80c85d7 100644 --- a/code/datums/diseases/transformation.dm +++ b/code/datums/diseases/transformation.dm @@ -1,15 +1,14 @@ /datum/disease/transformation - name = "Transformation" max_stages = 5 - spread = "Acute" - spread_type = SPECIAL - cure = "A coder's love (theoretical)." + spread_text = "Acute" + spread_flags = SPECIAL + cure_text = "A coder's love (theoretical)." agent = "Shenanigans" - affected_species = list("Human", "Monkey", "Alien") - severity = "Harmful" + viable_mobtypes = list(/mob/living/carbon/human, /mob/living/carbon/monkey, /mob/living/carbon/alien) + severity = HARMFUL stage_prob = 10 - hidden = list(1, 1) + visibility_flags = HIDDEN_SCANNER|HIDDEN_PANDEMIC var/list/stage1 = list("You feel unremarkable.") var/list/stage2 = list("You feel boring.") var/list/stage3 = list("You feel utterly plain.") @@ -68,19 +67,19 @@ /datum/disease/transformation/jungle_fever name = "Jungle Fever" - cure = "Bananas" - cure_id = "banana" - spread = "Monkey Bites" - spread_type = SPECIAL - affected_species = list("Monkey", "Human") + cure_text = "Bananas" + cures = list("banana") + spread_text = "Monkey Bites" + spread_flags = SPECIAL + viable_mobtypes = list(/mob/living/carbon/monkey, /mob/living/carbon/human) permeability_mod = 1 cure_chance = 1 - curable = 0 + disease_flags = CAN_CARRY|CAN_RESIST longevity = 30 desc = "Monkeys with this disease will bite humans, causing humans to mutate into a monkey." - severity = "BIOHAZARD THREAT!" - hidden = list(0, 0)//Not hidden, with the exception of the starting ape. + severity = BIOHAZARD stage_prob = 4 + visibility_flags = 0 agent = "Kongey Vibrion M-909" new_form = /mob/living/carbon/monkey @@ -118,13 +117,13 @@ /datum/disease/transformation/robot name = "Robotic Transformation" - cure = "An injection of copper." - cure_id = list("copper") + cure_text = "An injection of copper." + cures = list("copper") cure_chance = 5 agent = "R2D2 Nanomachines" desc = "This disease, actually acute nanomachine infection, converts the victim into a cyborg." - severity = "Dangerous!" - hidden = list(0, 0) + severity = DANGEROUS + visibility_flags = 0 stage1 = null stage2 = list("Your joints feel stiff.", "Beep...boop..") stage3 = list("Your joints feel very stiff.", "Your skin feels loose.", "You can feel something move...inside.") @@ -150,13 +149,13 @@ /datum/disease/transformation/xeno name = "Xenomorph Transformation" - cure = "Spaceacillin & Glycerol" - cure_id = list("spaceacillin", "glycerol") + cure_text = "Spaceacillin & Glycerol" + cures = list("spaceacillin", "glycerol") cure_chance = 5 agent = "Rip-LEY Alien Microbes" desc = "This disease changes the victim into a xenomorph." - severity = "BIOHAZARD THREAT!" - hidden = list(0, 0) + severity = BIOHAZARD + visibility_flags = 0 stage1 = null stage2 = list("Your throat feels scratchy.", "Kill...") stage3 = list("Your throat feels very scratchy.", "Your skin feels tight.", "You can feel something move...inside.") @@ -178,13 +177,13 @@ /datum/disease/transformation/slime name = "Advanced Mutation Transformation" - cure = "frost oil" - cure_id = list("frostoil") + cure_text = "frost oil" + cures = list("frostoil") cure_chance = 80 agent = "Advanced Mutation Toxin" desc = "This highly concentrated extract converts anything into more of itself." - severity = "BIOHAZARD THREAT!" - hidden = list(0, 0) + severity = BIOHAZARD + visibility_flags = 0 stage1 = list("You don't feel very well.") stage2 = list("You are turning a little green.") stage3 = list("Your limbs are getting oozy.", "Your skin begins to peel away.") @@ -207,10 +206,10 @@ /datum/disease/transformation/corgi name = "The Barkening" - cure = "Death" + cure_text = "Death" agent = "Fell Doge Majicks" desc = "This disease transforms the victim into a corgi." - hidden = list(0, 0) + visibility_flags = 0 stage1 = list("BARK.") stage2 = list("You feel the need to wear silly hats.") stage3 = list("Must... eat... chocolate....", "YAP") diff --git a/code/datums/diseases/wizarditis.dm b/code/datums/diseases/wizarditis.dm index c8cf37d77aa..86ff3f4e7f7 100644 --- a/code/datums/diseases/wizarditis.dm +++ b/code/datums/diseases/wizarditis.dm @@ -1,18 +1,17 @@ /datum/disease/wizarditis name = "Wizarditis" max_stages = 4 - spread = "Airborne" - cure = "The Manly Dorf" - cure_id = "manlydorf" + spread_text = "Airborne" + cure_text = "The Manly Dorf" + cures = list("manlydorf") cure_chance = 100 agent = "Rincewindus Vulgaris" - affected_species = list("Human") - curable = 1 + viable_mobtypes = list(/mob/living/carbon/human) + disease_flags = CAN_CARRY|CAN_RESIST permeability_mod = 0.75 desc = "Some speculate, that this virus is the cause of Wizard Federation existance. Subjects affected show the signs of mental retardation, yelling obscure sentences or total gibberish. On late stages subjects sometime express the feelings of inner power, and, cite, 'the ability to control the forces of cosmos themselves!' A gulp of strong, manly spirits usually reverts them to normal, humanlike, condition." - severity = "Harmful" - requires = 1 - required_limb = list(/obj/item/organ/limb/head) + severity = HARMFUL + required_organs = list(/obj/item/organ/limb/head) /* BIRUZ BENNAR diff --git a/code/datums/diseases/xeno_transformation.dm b/code/datums/diseases/xeno_transformation.dm deleted file mode 100644 index e8d6fad3777..00000000000 --- a/code/datums/diseases/xeno_transformation.dm +++ /dev/null @@ -1,60 +0,0 @@ -//Xenomicrobes - -/datum/disease/xeno_transformation - name = "Xenomorph Transformation" - max_stages = 5 - spread = "Syringe" - spread_type = SPECIAL - cure = "Spaceacillin & Glycerol" - cure_id = list("spaceacillin", "glycerol") - cure_chance = 5 - agent = "Rip-LEY Alien Microbes" - affected_species = list("Human") - var/gibbed = 0 - -/datum/disease/xeno_transformation/stage_act() - ..() - switch(stage) - if(2) - if (prob(8)) - affected_mob << "Your throat feels scratchy." - affected_mob.take_organ_damage(1) - if (prob(9)) - affected_mob << "Kill..." - if (prob(9)) - affected_mob << "Kill..." - if(3) - if (prob(8)) - affected_mob << "Your throat feels very scratchy." - affected_mob.take_organ_damage(1) - /* - if (prob(8)) - affected_mob.say(pick("Beep, boop", "beep, beep!", "Boop...bop")) - */ - if (prob(10)) - affected_mob << "Your skin feels tight." - affected_mob.take_organ_damage(5) - if (prob(4)) - affected_mob << "You feel a stabbing pain in your head." - affected_mob.Paralyse(2) - if (prob(4)) - affected_mob << "You can feel something move...inside." - if(4) - if (prob(10)) - affected_mob << pick("Your skin feels very tight.", "Your blood boils!") - affected_mob.take_organ_damage(8) - if (prob(20)) - affected_mob.say(pick("You look delicious.", "Going to... devour you...", "Hsssshhhhh!")) - if (prob(8)) - affected_mob << "You can feel... something...inside you." - if(5) - affected_mob <<"Your skin feels impossibly calloused..." - affected_mob.adjustToxLoss(10) - affected_mob.updatehealth() - if(prob(40)) - if(gibbed != 0) return 0 - var/turf/T = find_loc(affected_mob) - gibs(T) - gibbed = 1 - affected_mob:Alienize() - diff --git a/code/datums/mind.dm b/code/datums/mind.dm index 581bb6bfe7f..73c65ec388f 100644 --- a/code/datums/mind.dm +++ b/code/datums/mind.dm @@ -1003,9 +1003,9 @@ src = null M = H.monkeyize() src = M.mind - current.contract_disease(new /datum/disease/transformation/jungle_fever,1,0) + current.ForceContractDisease(new /datum/disease/transformation/jungle_fever) else if (istype(M)) - current.contract_disease(new /datum/disease/transformation/jungle_fever,1,0) + current.ForceContractDisease(new /datum/disease/transformation/jungle_fever) if("human") if (check_rights(R_ADMIN, 0)) var/mob/living/carbon/human/H = current diff --git a/code/game/data_huds.dm b/code/game/data_huds.dm index 8cea24b69b5..603170f6dd0 100644 --- a/code/game/data_huds.dm +++ b/code/game/data_huds.dm @@ -99,8 +99,8 @@ proc/med_hud_suit_sensors(var/mob/living/carbon/human/patient) proc/med_hud_find_virus(var/mob/living/carbon/human/patient) for(var/datum/disease/D in patient.viruses) - if(!D.hidden[SCANNER]) - if(D.severity != D.non_threat) + if(!(D.visibility_flags & HIDDEN_SCANNER)) + if(D.severity != NONTHREAT) return 1 proc/med_hud_get_health(var/mob/living/carbon/human/patient) diff --git a/code/game/gamemodes/monkey/monkey.dm b/code/game/gamemodes/monkey/monkey.dm index 266a7c35e06..29f3a209052 100644 --- a/code/game/gamemodes/monkey/monkey.dm +++ b/code/game/gamemodes/monkey/monkey.dm @@ -63,7 +63,7 @@ ape_infectees += carriermind var/datum/disease/D = new /datum/disease/transformation/jungle_fever - D.hidden = list(1,1) + D.visibility_flags = HIDDEN_SCANNER|HIDDEN_PANDEMIC D.holder = carriermind.current D.affected_mob = carriermind.current carriermind.current.viruses += D @@ -71,7 +71,7 @@ /datum/game_mode/monkey/proc/check_monkey_victory() for(var/mob/living/carbon/monkey/M in living_mob_list) - if (M.has_disease(/datum/disease/transformation/jungle_fever)) + if (M.HasDisease(/datum/disease/transformation/jungle_fever)) var/area/A = get_area(M) if(is_type_in_list(A, centcom_areas)) escaped_monkeys++ diff --git a/code/game/machinery/bots/medbot.dm b/code/game/machinery/bots/medbot.dm index 6642dcbbe41..a6cc7c66885 100644 --- a/code/game/machinery/bots/medbot.dm +++ b/code/game/machinery/bots/medbot.dm @@ -364,12 +364,12 @@ for(var/datum/disease/D in C.viruses) - if((D.hidden[SCANNER]) || (D.hidden[PANDEMIC])) //the medibot can't detect viruses that are undetectable to Health Analyzers or Pandemic machines. + //the medibot can't detect viruses that are undetectable to Health Analyzers or Pandemic machines. + if(D.visibility_flags & HIDDEN_SCANNER || D.visibility_flags & HIDDEN_PANDEMIC) return 0 - if(D.severity == D.non_threat) // medibot doesn't try to heal truly harmless viruses + if(D.severity == NONTHREAT) // medibot doesn't try to heal truly harmless viruses return 0 - if((D.stage > 1) || (D.spread_type == AIRBORNE)) // medibot can't detect a virus in its initial stage unless it spreads airborne. - + if((D.stage > 1) || (D.spread_flags & AIRBORNE)) // medibot can't detect a virus in its initial stage unless it spreads airborne. if (!C.reagents.has_reagent(src.treatment_virus)) return 1 //STOP DISEASE FOREVER @@ -403,9 +403,10 @@ else var/virus = 0 for(var/datum/disease/D in C.viruses) - if((!D.hidden[SCANNER]) && (!D.hidden[PANDEMIC])) //detectable virus - if(D.severity != D.non_threat) //virus is harmful - if((D.stage > 1) || (D.spread_type == AIRBORNE)) + //detectable virus + if((!(D.visibility_flags & HIDDEN_SCANNER)) || (!(D.visibility_flags & HIDDEN_PANDEMIC))) + if(D.severity != NONTHREAT) //virus is harmful + if((D.stage > 1) || (D.spread_flags & AIRBORNE)) virus = 1 if (!reagent_id && (virus)) diff --git a/code/game/machinery/computer/medical.dm b/code/game/machinery/computer/medical.dm index ab3182f0219..95122b1eff3 100644 --- a/code/game/machinery/computer/medical.dm +++ b/code/game/machinery/computer/medical.dm @@ -252,13 +252,13 @@ var/type = href_list["vir"] var/datum/disease/Dis = new type(0) var/AfS = "" - for(var/Str in Dis.affected_species) - AfS += " [Str];" + for(var/mob/M in Dis.viable_mobtypes) + AfS += " [initial(M.name)];" src.temp = {"Name: [Dis.name]
Number of stages: [Dis.max_stages] -
Spread: [Dis.spread] Transmission -
Possible Cure: [(Dis.cure||"none")] -
Affected Species:[AfS] +
Spread: [Dis.spread_text] Transmission +
Possible Cure: [(Dis.cure_text||"none")] +
Affected Lifeforms:[AfS]

Notes: [Dis.desc]
diff --git a/code/game/mecha/medical/odysseus.dm b/code/game/mecha/medical/odysseus.dm index acb94ea5e6d..795ff390d64 100644 --- a/code/game/mecha/medical/odysseus.dm +++ b/code/game/mecha/medical/odysseus.dm @@ -84,8 +84,8 @@ continue var/foundVirus = 0 for(var/datum/disease/D in patient.viruses) - if(!D.hidden[SCANNER]) - if(D.severity != D.non_threat) + if(!(D.visibility_flags & HIDDEN_SCANNER)) + if(D.severity != NONTHREAT) foundVirus++ //if(patient.virus2) // foundVirus++ diff --git a/code/game/objects/effects/gibs.dm b/code/game/objects/effects/gibs.dm index 47977d2a77f..6ee8c478ebf 100644 --- a/code/game/objects/effects/gibs.dm +++ b/code/game/objects/effects/gibs.dm @@ -28,9 +28,6 @@ return var/obj/effect/decal/cleanable/blood/gibs/gib = null - for(var/datum/disease/D in viruses) - if(D.spread_type == SPECIAL) - del(D) if(sparks) var/datum/effect/effect/system/spark_spread/s = new /datum/effect/effect/system/spark_spread diff --git a/code/game/objects/items/devices/scanners.dm b/code/game/objects/items/devices/scanners.dm index cd44cf0ae72..513142a2e96 100644 --- a/code/game/objects/items/devices/scanners.dm +++ b/code/game/objects/items/devices/scanners.dm @@ -148,8 +148,8 @@ MASS SPECTROMETER user.show_message("Subject appears to have [M.getCloneLoss() > 30 ? "severe" : "minor"] cellular damage.", 1) for(var/datum/disease/D in M.viruses) - if(!D.hidden[SCANNER]) - user.show_message("Warning: [D.form] Detected\nName: [D.name].\nType: [D.spread].\nStage: [D.stage]/[D.max_stages].\nPossible Cure: [D.cure]", 1) + if(!(D.visibility_flags & HIDDEN_SCANNER)) + user.show_message("Warning: [D.form] Detected\nName: [D.name].\nType: [D.spread_text].\nStage: [D.stage]/[D.max_stages].\nPossible Cure: [D.cure_text]", 1) if (M.reagents && M.reagents.get_reagent_amount("inaprovaline")) user.show_message("Bloodstream Analysis located [M.reagents:get_reagent_amount("inaprovaline")] units of rejuvenation chemicals.", 1) diff --git a/code/modules/admin/admin_verbs.dm b/code/modules/admin/admin_verbs.dm index fa48db048c4..9c9113ec8d6 100644 --- a/code/modules/admin/admin_verbs.dm +++ b/code/modules/admin/admin_verbs.dm @@ -447,7 +447,7 @@ var/list/admin_verbs_hideable = list( set desc = "Gives a Disease to a mob." var/datum/disease/D = input("Choose the disease to give to that guy", "ACHOO") as null|anything in diseases if(!D) return - T.contract_disease(new D, 1) + T.ForceContractDisease(new D,) feedback_add_details("admin_verb","GD") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! log_admin("[key_name(usr)] gave [key_name(T)] the disease [D].") message_admins("[key_name_admin(usr)] gave [key_name(T)] the disease [D].") diff --git a/code/modules/events/ninja.dm b/code/modules/events/ninja.dm index 09356add7d4..4b8eba034a2 100644 --- a/code/modules/events/ninja.dm +++ b/code/modules/events/ninja.dm @@ -1636,7 +1636,7 @@ ________________________________________________________________________________ dat += "Body Temperature: [U.bodytemperature-T0C]°C ([U.bodytemperature*1.8-459.67]°F)
" for(var/datum/disease/D in U.viruses) - dat += "Warning: Virus Detected. Name: [D.name].Type: [D.spread]. Stage: [D.stage]/[D.max_stages]. Possible Cure: [D.cure].
" + dat += "Warning: Virus Detected. Name: [D.name].Type: [D.spread_text]. Stage: [D.stage]/[D.max_stages]. Possible Cure: [D.cure_text].
" dat += "
    " for(var/datum/reagent/R in reagents.reagent_list) if(R.id=="radium"&&s_control)//Can only directly inject radium when AI is in control. diff --git a/code/modules/food&drinks/kitchen machinery/processor.dm b/code/modules/food&drinks/kitchen machinery/processor.dm index 7ec3d44356e..09cf066aceb 100644 --- a/code/modules/food&drinks/kitchen machinery/processor.dm +++ b/code/modules/food&drinks/kitchen machinery/processor.dm @@ -79,7 +79,7 @@ B.data["donor"] = O for(var/datum/disease/D in O.viruses) - if(D.spread_type != SPECIAL) + if(!(D.spread_flags & SPECIAL)) B.data["viruses"] += D.Copy() if(check_dna_integrity(O)) B.data["blood_DNA"] = copytext(O.dna.unique_enzymes,1,0) diff --git a/code/modules/mob/living/carbon/carbon.dm b/code/modules/mob/living/carbon/carbon.dm index 55076006232..32910ff3518 100644 --- a/code/modules/mob/living/carbon/carbon.dm +++ b/code/modules/mob/living/carbon/carbon.dm @@ -75,12 +75,12 @@ if(!iscarbon(user)) return for(var/datum/disease/D in viruses) - if(D.spread_by_touch()) - user.contract_disease(D, 0, 1, CONTACT_HANDS) + if(D.IsSpreadByTouch()) + user.ContractDisease(D) for(var/datum/disease/D in user.viruses) - if(D.spread_by_touch()) - contract_disease(D, 0, 1, CONTACT_HANDS) + if(D.IsSpreadByTouch()) + ContractDisease(D) if(lying || isslime(src)) if(user.a_intent == "help") @@ -96,14 +96,12 @@ for(var/datum/disease/D in viruses) - - if(D.spread_by_touch()) - M.contract_disease(D, 0, 1, CONTACT_HANDS) + if(D.IsSpreadByTouch()) + M.ContractDisease(D) for(var/datum/disease/D in M.viruses) - - if(D.spread_by_touch()) - contract_disease(D, 0, 1, CONTACT_HANDS) + if(D.IsSpreadByTouch()) + ContractDisease(D) return diff --git a/code/modules/mob/living/carbon/human/human_attackpaw.dm b/code/modules/mob/living/carbon/human/human_attackpaw.dm index 95eaeb61ec3..deefd887593 100644 --- a/code/modules/mob/living/carbon/human/human_attackpaw.dm +++ b/code/modules/mob/living/carbon/human/human_attackpaw.dm @@ -16,5 +16,5 @@ apply_damage(damage, BRUTE, affecting, run_armor_check(affecting, "melee")) for(var/datum/disease/D in M.viruses) - contract_disease(D,1,0) + ContractDisease(D) return diff --git a/code/modules/mob/living/carbon/monkey/monkey.dm b/code/modules/mob/living/carbon/monkey/monkey.dm index 09974720b9e..eb6cbc86ac7 100644 --- a/code/modules/mob/living/carbon/monkey/monkey.dm +++ b/code/modules/mob/living/carbon/monkey/monkey.dm @@ -84,7 +84,7 @@ adjustBruteLoss(damage) health = 100 - getOxyLoss() - getToxLoss() - getFireLoss() - getBruteLoss() for(var/datum/disease/D in M.viruses) - contract_disease(D,1,0) + ContractDisease(D) else visible_message("[M.name] has attempted to bite [name]!", \ "[M.name] has attempted to bite [name]!") diff --git a/code/modules/mob/living/silicon/pai/software.dm b/code/modules/mob/living/silicon/pai/software.dm index c11523d239a..a7fe82aafbf 100644 --- a/code/modules/mob/living/silicon/pai/software.dm +++ b/code/modules/mob/living/silicon/pai/software.dm @@ -503,9 +503,9 @@ for(var/datum/disease/D in M.viruses) dat += {"

    Infection Detected.


    Name: [D.name]
    - Type: [D.spread]
    + Type: [D.spread_text]
    Stage: [D.stage]/[D.max_stages]
    - Possible Cure: [D.cure]
    + Possible Cure: [D.cure_text]
    "} dat += "
    Visual Status Overlay
    " return dat diff --git a/code/modules/mob/mob_cleanup.dm b/code/modules/mob/mob_cleanup.dm index 3e365042c48..7507bd9f008 100644 --- a/code/modules/mob/mob_cleanup.dm +++ b/code/modules/mob/mob_cleanup.dm @@ -3,174 +3,3 @@ Put (mob/proc)s here that are in dire need of a code cleanup. */ -/mob/proc/has_disease(var/datum/disease/virus) - for(var/datum/disease/D in viruses) - if(D.IsSame(virus)) - //error("[D.name]/[D.type] is the same as [virus.name]/[virus.type]") - return 1 - return 0 - -/mob/proc/contract_disease(var/datum/disease/virus, var/skip_this = 0, var/force_species_check=1, var/spread_type = -5) - //world << "Contract_disease called by [src] with virus [virus]" - if(stat >=2) - //world << "He's dead jim." - return - if(istype(virus, /datum/disease/advance)) - //world << "It's an advance virus." - var/datum/disease/advance/A = virus - if(A.GetDiseaseID() in resistances) - //world << "It resisted us!" - return - if(count_by_type(viruses, /datum/disease/advance) >= 3) - return - - else - if(src.resistances.Find(virus.type)) - //world << "Normal virus and resisted" - return - - - if(has_disease(virus)) - return - - - if(force_species_check) - var/fail = 1 - for(var/name in virus.affected_species) - var/mob_type = text2path("/mob/living/carbon/[lowertext(name)]") - if(mob_type && istype(src, mob_type)) - fail = 0 - break - if(fail) return - - if(skip_this == 1) - //world << "infectin" - //if(src.virus) < -- this used to replace the current disease. Not anymore! - //src.virus.cure(0) - var/datum/disease/v = new virus.type(1, virus, 0) - src.viruses += v - v.affected_mob = src - v.strain_data = virus.strain_data.Copy() - v.holder = src - if(v.can_carry && prob(5)) - v.carrier = 1 - return - //world << "Not skipping." - //if(src.virus) // - //return // - - -/* - var/list/clothing_areas = list() - var/list/covers = list(CHEST,GROIN,LEGS,FEET,ARMS,HANDS) - for(var/Covers in covers) - clothing_areas[Covers] = list() - - for(var/obj/item/clothing/Clothing in src) - if(Clothing) - for(var/Covers in covers) - if(Clothing&Covers) - clothing_areas[Covers] += Clothing - -*/ - if(prob(15/virus.permeability_mod)) return //the power of immunity compels this disease! but then you forgot resistances - //world << "past prob()" - var/obj/item/clothing/Cl = null - var/passed = 1 - - //chances to target this zone - var/head_ch - var/body_ch - var/hands_ch - var/feet_ch - - if(spread_type == -5) - spread_type = virus.spread_type - - switch(spread_type) - if(CONTACT_HANDS) - head_ch = 0 - body_ch = 0 - hands_ch = 100 - feet_ch = 0 - if(CONTACT_FEET) - head_ch = 0 - body_ch = 0 - hands_ch = 0 - feet_ch = 100 - else - head_ch = 100 - body_ch = 100 - hands_ch = 25 - feet_ch = 25 - - - var/target_zone = pick(head_ch;1,body_ch;2,hands_ch;3,feet_ch;4)//1 - head, 2 - body, 3 - hands, 4- feet - - if(istype(src, /mob/living/carbon/human)) - var/mob/living/carbon/human/H = src - - switch(target_zone) - if(1) - if(isobj(H.head) && !istype(H.head, /obj/item/weapon/paper)) - Cl = H.head - passed = prob((Cl.permeability_coefficient*100) - 1) - if(passed && isobj(H.wear_mask)) - Cl = H.wear_mask - passed = prob((Cl.permeability_coefficient*100) - 1) - if(2)//arms and legs included - if(isobj(H.wear_suit)) - Cl = H.wear_suit - passed = prob((Cl.permeability_coefficient*100) - 1) - if(passed && isobj(slot_w_uniform)) - Cl = slot_w_uniform - passed = prob((Cl.permeability_coefficient*100) - 1) - if(3) - if(isobj(H.wear_suit) && H.wear_suit.body_parts_covered&HANDS) - Cl = H.wear_suit - passed = prob((Cl.permeability_coefficient*100) - 1) - - if(passed && isobj(H.gloves)) - Cl = H.gloves - passed = prob((Cl.permeability_coefficient*100) - 1) - if(4) - if(isobj(H.wear_suit) && H.wear_suit.body_parts_covered&FEET) - Cl = H.wear_suit - passed = prob((Cl.permeability_coefficient*100) - 1) - - if(passed && isobj(H.shoes)) - Cl = H.shoes - passed = prob((Cl.permeability_coefficient*100) - 1) - else - src << "Something strange's going on, something's wrong." - - /*if("feet") - if(H.shoes && istype(H.shoes, /obj/item/clothing/)) - Cl = H.shoes - passed = prob(Cl.permeability_coefficient*100) - // - world << "Shoes pass [passed]" - */ // - else if(istype(src, /mob/living/carbon/monkey)) - var/mob/living/carbon/monkey/M = src - switch(target_zone) - if(1) - if(M.wear_mask && isobj(M.wear_mask)) - Cl = M.wear_mask - passed = prob((Cl.permeability_coefficient*100) - 1) - //world << "Mask pass [passed]" - - if(!passed && spread_type == AIRBORNE && !internals) - passed = (prob((50*virus.permeability_mod) - 1)) - - if(passed) - //world << "Infection in the mob [src]. YAY" - var/datum/disease/v = new virus.type(1, virus, 0) - src.viruses += v - v.affected_mob = src - v.strain_data = virus.strain_data.Copy() - v.holder = src - if(v.can_carry && prob(5)) - v.carrier = 1 - return - return diff --git a/code/modules/reagents/Chemistry-Machinery.dm b/code/modules/reagents/Chemistry-Machinery.dm index f2fbbce3172..175f1e916fd 100644 --- a/code/modules/reagents/Chemistry-Machinery.dm +++ b/code/modules/reagents/Chemistry-Machinery.dm @@ -723,7 +723,7 @@ obj/machinery/computer/pandemic/proc/replicator_cooldown(var/waittime) var/i = 0 for(var/datum/disease/D in Blood.data["viruses"]) i++ - if(!D.hidden[PANDEMIC]) + if(!(D.visibility_flags & HIDDEN_PANDEMIC)) if(istype(D, /datum/disease/advance)) @@ -738,8 +738,8 @@ obj/machinery/computer/pandemic/proc/replicator_cooldown(var/waittime) dat += "Disease Agent: [D?"[D.agent] - Create virus culture bottle":"none"]
    " dat += "Common name: [(D.name||"none")]
    " dat += "Description: [(D.desc||"none")]
    " - dat += "Spread: [(D.spread||"none")]
    " - dat += "Possible cure: [(D.cure||"none")]

    " + dat += "Spread: [(D.spread_text||"none")]
    " + dat += "Possible cure: [(D.cure_text||"none")]

    " if(istype(D, /datum/disease/advance)) var/datum/disease/advance/A = D diff --git a/code/modules/reagents/Chemistry-Reagents.dm b/code/modules/reagents/Chemistry-Reagents.dm index b799a57ac5d..154b7baf874 100644 --- a/code/modules/reagents/Chemistry-Reagents.dm +++ b/code/modules/reagents/Chemistry-Reagents.dm @@ -94,14 +94,14 @@ datum/reagent/blood/reaction_mob(var/mob/M, var/method=TOUCH, var/volume) src = null if(self.data && self.data["viruses"]) for(var/datum/disease/D in self.data["viruses"]) - //var/datum/disease/virus = new D.type(0, D, 1) - // We don't spread. - if(D.spread_type == SPECIAL || D.spread_type == NON_CONTAGIOUS) continue + + if(D.spread_flags & SPECIAL || D.spread_flags & NON_CONTAGIOUS) + continue if(method == TOUCH) - M.contract_disease(D) + M.ContractDisease(D) else //injected - M.contract_disease(D, 1, 0) + M.ForceContractDisease(D) datum/reagent/blood/on_new(var/list/data) if(istype(data)) @@ -349,7 +349,7 @@ datum/reagent/aslimetoxin datum/reagent/aslimetoxin/reaction_mob(var/mob/M, var/volume) src = null - M.contract_disease(new /datum/disease/transformation/slime(0),1) + M.ForceContractDisease(new /datum/disease/transformation/slime(0)) datum/reagent/inaprovaline name = "Inaprovaline" @@ -996,9 +996,9 @@ datum/reagent/adminordrazine/on_mob_life(var/mob/living/carbon/M as mob) M.sleeping = 0 M.jitteriness = 0 for(var/datum/disease/D in M.viruses) - if(D.severity == D.non_threat) + if(D.severity == NONTHREAT) continue - D.spread = "Remissive" + D.spread_text = "Remissive" D.stage-- if(D.stage < 1) D.cure() @@ -1216,7 +1216,7 @@ datum/reagent/nanites datum/reagent/nanites/reaction_mob(var/mob/M, var/method=TOUCH, var/volume) src = null if( (prob(10) && method==TOUCH) || method==INGEST) - M.contract_disease(new /datum/disease/transformation/robot(0),1) + M.ForceContractDisease(new /datum/disease/transformation/robot(0)) datum/reagent/xenomicrobes name = "Xenomicrobes" @@ -1228,7 +1228,7 @@ datum/reagent/xenomicrobes datum/reagent/xenomicrobes/reaction_mob(var/mob/M, var/method=TOUCH, var/volume) src = null if( (prob(10) && method==TOUCH) || method==INGEST) - M.contract_disease(new /datum/disease/transformation/xeno(0),1) + M.ContractDisease(new /datum/disease/transformation/xeno(0)) datum/reagent/fluorosurfactant//foam precursor name = "Fluorosurfactant" diff --git a/tgstation.dme b/tgstation.dme index 32a302e49de..c3788a188ca 100644 --- a/tgstation.dme +++ b/tgstation.dme @@ -128,7 +128,6 @@ #include "code\datums\computerfiles.dm" #include "code\datums\datacore.dm" #include "code\datums\datumvars.dm" -#include "code\datums\disease.dm" #include "code\datums\gas_mixture.dm" #include "code\datums\mind.dm" #include "code\datums\mixed.dm" @@ -138,6 +137,8 @@ #include "code\datums\sun.dm" #include "code\datums\supplypacks.dm" #include "code\datums\uplink_item.dm" +#include "code\datums\diseases\_disease.dm" +#include "code\datums\diseases\_MobProcs.dm" #include "code\datums\diseases\appendicitis.dm" #include "code\datums\diseases\beesease.dm" #include "code\datums\diseases\brainrot.dm" @@ -150,7 +151,6 @@ #include "code\datums\diseases\gbs.dm" #include "code\datums\diseases\magnitis.dm" #include "code\datums\diseases\pierrot_throat.dm" -#include "code\datums\diseases\plasmatoid.dm" #include "code\datums\diseases\retrovirus.dm" #include "code\datums\diseases\rhumba_beat.dm" #include "code\datums\diseases\transformation.dm" From e5b868fb27e9e1c31476d3e65341e38ee5478f29 Mon Sep 17 00:00:00 2001 From: GunHog Date: Fri, 31 Oct 2014 10:30:43 -0500 Subject: [PATCH 015/102] RPED Expansion Ports https://github.com/NTStation/NTstation13/pull/982 from NT. Summary of changes: - The Rapid Part Exchange Device (RPED) can now install stored parts into unfinished machines! Once you have installed a circuit board to the frame, use the RPED to add any required parts contained inside, then finish with a screwdriver! - Identical parts in the RPED are now shown in groups, just like a mining satchel. - RPED storage capacity increased. It can now contain up to 50 parts, fewer if power cells are added as well. Maximum weight class of 100 (parts except power cells are class 2). The storage values are up for discussion. I chose the original values based on the mining satchel.<\b> Unrelated: - The admin-only debug research item now includes plasma and engineering tech. --- code/defines/obj/weapon.dm | 7 +++-- code/game/machinery/constructable_frame.dm | 35 +++++++++++++++++++++- 2 files changed, 38 insertions(+), 4 deletions(-) diff --git a/code/defines/obj/weapon.dm b/code/defines/obj/weapon.dm index e5b26cc3038..e705604be4d 100644 --- a/code/defines/obj/weapon.dm +++ b/code/defines/obj/weapon.dm @@ -273,13 +273,14 @@ item_state = "RPED" w_class = 5 can_hold = list(/obj/item/weapon/stock_parts) - storage_slots = 14 + storage_slots = 50 use_to_pickup = 1 allow_quick_gather = 1 allow_quick_empty = 1 collection_mode = 1 + display_contents_with_number = 1 max_w_class = 3 - max_combined_w_class = 28 + max_combined_w_class = 100 /obj/item/weapon/stock_parts name = "stock part" @@ -497,4 +498,4 @@ icon = 'icons/obj/stock_parts.dmi' icon_state = "capacitor" desc = "A debug item for research." - origin_tech = "materials=8;programming=8;magnets=8;powerstorage=8;bluespace=8;combat=8;biotech=8;syndicate=8" + origin_tech = "materials=8;programming=8;magnets=8;powerstorage=8;bluespace=8;combat=8;biotech=8;syndicate=8;plasmatech=8;engineering=8" diff --git a/code/game/machinery/constructable_frame.dm b/code/game/machinery/constructable_frame.dm index 4f95efac03d..445ae1a815d 100644 --- a/code/game/machinery/constructable_frame.dm +++ b/code/game/machinery/constructable_frame.dm @@ -26,6 +26,12 @@ var/obj/O = new path() req_component_names[tname] = O.name +/obj/machinery/constructable_frame/proc/get_req_components_amt() + var/amt = 0 + for(var/path in req_components) + amt += req_components[path] + return amt + // update description of required components remaining /obj/machinery/constructable_frame/proc/update_req_desc() if(!req_components || !req_component_names) @@ -102,6 +108,7 @@ playsound(src.loc, 'sound/items/Crowbar.ogg', 50, 1) state = 2 circuit.loc = src.loc + components.Remove(circuit) circuit = null if(components.len == 0) user << "You remove the circuit board." @@ -133,7 +140,33 @@ new_machine.RefreshParts() qdel(src) - if(istype(P, /obj/item)) + if(istype(P, /obj/item/weapon/storage/part_replacer) && P.contents.len && get_req_components_amt()) + var/obj/item/weapon/storage/replacer = P + var/list/added_components = list() + for(var/path in req_components) + while(req_components[path] > 0 && (locate(text2path(path)) in replacer)) + var/obj/item/part = (locate(text2path(path)) in replacer) + if(!part.crit_fail) + added_components[part] = path + replacer.remove_from_storage(part, src) + req_components[path]-- + + for(var/obj/item/weapon/stock_parts/replace in replacer) + for(var/obj/item/weapon/stock_parts/part in added_components) + if(istype(replace, added_components[part]) && (replace.rating > part.rating) && (!replace.crit_fail)) + replacer.remove_from_storage(replace, src) + replacer.handle_item_insertion(part, 1) + added_components[replace] = added_components[part] + added_components.Remove(part) + + for(var/obj/item/weapon/stock_parts/part in added_components) + components += part + user << "[part.name] applied." + + update_req_desc() + return + + if(istype(P, /obj/item) && get_req_components_amt()) var/success for(var/I in req_components) if(istype(P, text2path(I)) && (req_components[I] > 0)) From 3f30912c51c7a95f1dda35d8f2cbad7d7f0c2682 Mon Sep 17 00:00:00 2001 From: phil235 Date: Sun, 2 Nov 2014 22:50:58 +0100 Subject: [PATCH 016/102] WIP - Adding attack animation to most attacks. Fixing a couple "for(......) show_message()". --- code/_onclick/item_attack.dm | 4 ++- code/game/gamemodes/blob/theblob.dm | 1 + code/game/machinery/Sleeper.dm | 1 + code/game/machinery/bots/bots.dm | 2 ++ code/game/machinery/camera/camera.dm | 1 + code/game/machinery/computer/computer.dm | 2 ++ code/game/machinery/doors/windowdoor.dm | 3 ++ code/game/machinery/turrets.dm | 5 ++- code/game/mecha/mecha.dm | 2 ++ code/game/objects/effects/aliens.dm | 1 + code/game/objects/effects/effect_system.dm | 1 + .../structures/crates_lockers/closets.dm | 1 + code/game/objects/structures/grille.dm | 4 ++- code/game/objects/structures/mirror.dm | 3 ++ code/game/objects/structures/tables_racks.dm | 7 ++++ code/game/objects/structures/window.dm | 3 ++ code/game/turfs/simulated/walls.dm | 2 ++ code/modules/events/ninja.dm | 1 + code/modules/events/spacevine.dm | 1 + .../living/carbon/alien/humanoid/humanoid.dm | 6 ++++ .../mob/living/carbon/alien/larva/larva.dm | 5 +++ code/modules/mob/living/carbon/human/human.dm | 4 ++- .../living/carbon/human/human_attackalien.dm | 2 ++ .../living/carbon/human/human_attackpaw.dm | 1 + .../mob/living/carbon/human/human_defense.dm | 6 ++-- .../mob/living/carbon/human/species.dm | 5 +++ .../mob/living/carbon/monkey/monkey.dm | 8 ++++- code/modules/mob/living/carbon/slime/slime.dm | 9 +++-- code/modules/mob/living/living.dm | 2 +- code/modules/mob/living/silicon/ai/ai.dm | 19 +++++------ .../modules/mob/living/silicon/robot/robot.dm | 33 +++++++++---------- .../mob/living/simple_animal/constructs.dm | 1 + .../mob/living/simple_animal/simple_animal.dm | 7 +++- code/modules/mob/mob.dm | 11 ++++++- code/modules/power/apc.dm | 1 + code/modules/power/lighting.dm | 2 ++ code/modules/recycling/disposal.dm | 1 + 37 files changed, 128 insertions(+), 40 deletions(-) diff --git a/code/_onclick/item_attack.dm b/code/_onclick/item_attack.dm index 3bd7e96ee4c..2b39acd9a35 100644 --- a/code/_onclick/item_attack.dm +++ b/code/_onclick/item_attack.dm @@ -7,6 +7,7 @@ /atom/proc/attackby(obj/item/W, mob/user) return /atom/movable/attackby(obj/item/W, mob/user) + user.do_attack_animation() if(W && !(W.flags&NOBLUDGEON)) visible_message("[src] has been hit by [user] with [W].") @@ -25,9 +26,10 @@ var/showname = "." if(user) showname = " by [user]!" + if(user != src) + user.do_attack_animation() if(!(user in viewers(src, null))) showname = "." - if(I.attack_verb && I.attack_verb.len) src.visible_message("[src] has been [pick(I.attack_verb)] with [I][showname]", "[src] has been [pick(I.attack_verb)] with [I][showname]") diff --git a/code/game/gamemodes/blob/theblob.dm b/code/game/gamemodes/blob/theblob.dm index c1325118245..bd2f5c27a64 100644 --- a/code/game/gamemodes/blob/theblob.dm +++ b/code/game/gamemodes/blob/theblob.dm @@ -168,6 +168,7 @@ /obj/effect/blob/attack_animal(mob/living/simple_animal/M as mob) M.changeNext_move(CLICK_CD_MELEE) + M.do_attack_animation() playsound(src.loc, 'sound/effects/attackblob.ogg', 50, 1) src.visible_message("The [src.name] has been attacked by \the [M]!") var/damage = rand(M.melee_damage_lower, M.melee_damage_upper) diff --git a/code/game/machinery/Sleeper.dm b/code/game/machinery/Sleeper.dm index 7e5801c56fe..c3f36fd31d5 100644 --- a/code/game/machinery/Sleeper.dm +++ b/code/game/machinery/Sleeper.dm @@ -65,6 +65,7 @@ /obj/machinery/sleeper/attack_animal(var/mob/living/simple_animal/M)//Stop putting hostile mobs in things guise if(M.environment_smash) + M.do_attack_animation() visible_message("[M.name] smashes [src] apart!") qdel(src) return diff --git a/code/game/machinery/bots/bots.dm b/code/game/machinery/bots/bots.dm index 5268cd43732..5251edb79fe 100644 --- a/code/game/machinery/bots/bots.dm +++ b/code/game/machinery/bots/bots.dm @@ -142,6 +142,7 @@ /obj/machinery/bot/attack_alien(var/mob/living/carbon/alien/user as mob) user.changeNext_move(CLICK_CD_MELEE) + user.do_attack_animation() health -= rand(15,30)*brute_dam_coeff visible_message("[user] has slashed [src]!") playsound(loc, 'sound/weapons/slice.ogg', 25, 1, -1) @@ -151,6 +152,7 @@ /obj/machinery/bot/attack_animal(var/mob/living/simple_animal/M as mob) + M.do_attack_animation() if(M.melee_damage_upper == 0) return M.changeNext_move(CLICK_CD_MELEE) diff --git a/code/game/machinery/camera/camera.dm b/code/game/machinery/camera/camera.dm index b76e33dad0b..19be4d7d273 100644 --- a/code/game/machinery/camera/camera.dm +++ b/code/game/machinery/camera/camera.dm @@ -116,6 +116,7 @@ /obj/machinery/camera/attack_paw(mob/living/carbon/alien/humanoid/user as mob) if(!istype(user)) return + user.do_attack_animation() status = 0 visible_message("\The [user] slashes at [src]!") playsound(src.loc, 'sound/weapons/slash.ogg', 100, 1) diff --git a/code/game/machinery/computer/computer.dm b/code/game/machinery/computer/computer.dm index 99c19755b5c..ec5739ffb9f 100644 --- a/code/game/machinery/computer/computer.dm +++ b/code/game/machinery/computer/computer.dm @@ -111,6 +111,7 @@ return /obj/machinery/computer/attack_paw(mob/user) + user.do_attack_animation() if(circuit) if(prob(10)) user.visible_message("[user.name] smashes the [src.name] with its paws.",\ @@ -123,6 +124,7 @@ "You hear a clicking sound.") /obj/machinery/computer/attack_alien(mob/user) + user.do_attack_animation() if(circuit) if(prob(80)) user.visible_message("[user.name] smashes the [src.name] with its claws.",\ diff --git a/code/game/machinery/doors/windowdoor.dm b/code/game/machinery/doors/windowdoor.dm index fa3d6098f00..03db8cc6918 100644 --- a/code/game/machinery/doors/windowdoor.dm +++ b/code/game/machinery/doors/windowdoor.dm @@ -200,6 +200,7 @@ take_damage(damage) /obj/machinery/door/window/attack_alien(mob/user as mob) + user.do_attack_animation() if(islarva(user)) return attack_generic(user, 25) @@ -208,12 +209,14 @@ if(!isanimal(user)) return var/mob/living/simple_animal/M = user + M.do_attack_animation() if(M.melee_damage_upper <= 0) return attack_generic(M, M.melee_damage_upper) /obj/machinery/door/window/attack_slime(mob/living/carbon/slime/user as mob) + user.do_attack_animation() if(!user.is_adult) return attack_generic(user, 25) diff --git a/code/game/machinery/turrets.dm b/code/game/machinery/turrets.dm index f178b810d39..be5b19080bf 100644 --- a/code/game/machinery/turrets.dm +++ b/code/game/machinery/turrets.dm @@ -311,6 +311,7 @@ /obj/machinery/turret/attack_animal(mob/living/simple_animal/M as mob) M.changeNext_move(CLICK_CD_MELEE) + M.do_attack_animation() if(M.melee_damage_upper == 0) return if(!(stat & BROKEN)) visible_message("[M] [M.attacktext] [src]!") @@ -328,9 +329,10 @@ /obj/machinery/turret/attack_alien(mob/living/carbon/alien/humanoid/M as mob) M.changeNext_move(CLICK_CD_MELEE) + M.do_attack_animation() if(!(stat & BROKEN)) playsound(src.loc, 'sound/weapons/slash.ogg', 25, 1, -1) - visible_message("[] has slashed at []!", M, src) + visible_message("[M] has slashed at [src]!") src.health -= 15 if (src.health <= 0) src.die() @@ -413,6 +415,7 @@ /obj/machinery/gun_turret/attack_alien(mob/user as mob) user.changeNext_move(CLICK_CD_MELEE) + user.do_attack_animation() user.visible_message("[user] slashes at [src]", "You slash at [src]") take_damage(15) return diff --git a/code/game/mecha/mecha.dm b/code/game/mecha/mecha.dm index acbe4455335..f9611930e86 100644 --- a/code/game/mecha/mecha.dm +++ b/code/game/mecha/mecha.dm @@ -470,6 +470,7 @@ /obj/mecha/attack_alien(mob/user as mob) src.log_message("Attack by alien. Attacker - [user].",1) user.changeNext_move(CLICK_CD_MELEE) //Now stompy alien killer mechs are actually scary to aliens! + user.do_attack_animation() if(!prob(src.deflect_chance)) src.take_damage(15) src.check_for_internal_damage(list(MECHA_INT_TEMP_CONTROL,MECHA_INT_TANK_BREACH,MECHA_INT_CONTROL_LOST)) @@ -491,6 +492,7 @@ if(user.melee_damage_upper == 0) user.emote("[user.friendly] [src]") else + user.do_attack_animation() if(!prob(src.deflect_chance)) var/damage = rand(user.melee_damage_lower, user.melee_damage_upper) src.take_damage(damage) diff --git a/code/game/objects/effects/aliens.dm b/code/game/objects/effects/aliens.dm index 2bff7dd60a5..caf1ce83a1e 100644 --- a/code/game/objects/effects/aliens.dm +++ b/code/game/objects/effects/aliens.dm @@ -122,6 +122,7 @@ /obj/structure/alien/resin/attack_alien(mob/user) user.changeNext_move(CLICK_CD_MELEE) + user.do_attack_animation() if(islarva(user)) return user.visible_message("[user] claws at the resin!") diff --git a/code/game/objects/effects/effect_system.dm b/code/game/objects/effects/effect_system.dm index 34979a6dae0..8e7689c2c51 100644 --- a/code/game/objects/effects/effect_system.dm +++ b/code/game/objects/effects/effect_system.dm @@ -957,6 +957,7 @@ steam.start() -- spawns the effect /obj/structure/foamedmetal/attack_animal(var/mob/living/simple_animal/M) if(M.environment_smash >= 1) + M.do_attack_animation() M << "You smash apart the foam wall." qdel(src) return diff --git a/code/game/objects/structures/crates_lockers/closets.dm b/code/game/objects/structures/crates_lockers/closets.dm index c07ca884aea..6b65f8637b5 100644 --- a/code/game/objects/structures/crates_lockers/closets.dm +++ b/code/game/objects/structures/crates_lockers/closets.dm @@ -159,6 +159,7 @@ /obj/structure/closet/attack_animal(mob/living/simple_animal/user as mob) if(user.environment_smash) + user.do_attack_animation() visible_message("[user] destroys the [src].") for(var/atom/movable/A as mob|obj in src) A.loc = src.loc diff --git a/code/game/objects/structures/grille.dm b/code/game/objects/structures/grille.dm index b94c5588c60..358a6a3d088 100644 --- a/code/game/objects/structures/grille.dm +++ b/code/game/objects/structures/grille.dm @@ -41,6 +41,7 @@ healthcheck() /obj/structure/grille/attack_alien(mob/user as mob) + user.do_attack_animation() if(istype(user, /mob/living/carbon/alien/larva)) return user.changeNext_move(CLICK_CD_MELEE) playsound(loc, 'sound/effects/grillehit.ogg', 80, 1) @@ -55,6 +56,7 @@ /obj/structure/grille/attack_slime(mob/living/carbon/slime/user as mob) user.changeNext_move(CLICK_CD_MELEE) + user.do_attack_animation() if(!user.is_adult) return playsound(loc, 'sound/effects/grillehit.ogg', 80, 1) @@ -69,7 +71,7 @@ /obj/structure/grille/attack_animal(var/mob/living/simple_animal/M as mob) M.changeNext_move(CLICK_CD_MELEE) if(M.melee_damage_upper == 0) return - + M.do_attack_animation() playsound(loc, 'sound/effects/grillehit.ogg', 80, 1) M.visible_message("[M] smashes against [src].", \ "You smash against [src].", \ diff --git a/code/game/objects/structures/mirror.dm b/code/game/objects/structures/mirror.dm index 05f8d37872a..17f99eecf20 100644 --- a/code/game/objects/structures/mirror.dm +++ b/code/game/objects/structures/mirror.dm @@ -70,6 +70,7 @@ /obj/structure/mirror/attack_alien(mob/user as mob) + user.do_attack_animation() if(islarva(user)) return if(shattered) playsound(src.loc, 'sound/effects/hit_on_shattered_glass.ogg', 70, 1) @@ -82,6 +83,7 @@ if(!isanimal(user)) return var/mob/living/simple_animal/M = user if(M.melee_damage_upper <= 0) return + M.do_attack_animation() if(shattered) playsound(src.loc, 'sound/effects/hit_on_shattered_glass.ogg', 70, 1) return @@ -90,6 +92,7 @@ /obj/structure/mirror/attack_slime(mob/user as mob) + user.do_attack_animation() if(shattered) playsound(src.loc, 'sound/effects/hit_on_shattered_glass.ogg', 70, 1) return diff --git a/code/game/objects/structures/tables_racks.dm b/code/game/objects/structures/tables_racks.dm index 82b9f69e9bd..3207655d0e0 100644 --- a/code/game/objects/structures/tables_racks.dm +++ b/code/game/objects/structures/tables_racks.dm @@ -205,6 +205,7 @@ /obj/structure/table/attack_paw(mob/user) if(HULK in user.mutations) + user.do_attack_animation() user.say(pick(";RAAAAAAAARGH!", ";HNNNNNNNNNGGGGGGH!", ";GWAAAAAAAARRRHHH!", "NNNNNNNNGGGGGGGGHH!", ";AAAAAAARRRGH!" )) visible_message("[user] smashes the table apart!") if(istype(src, /obj/structure/table/reinforced)) @@ -218,6 +219,7 @@ /obj/structure/table/attack_alien(mob/user) + user.do_attack_animation() visible_message("[user] slices [src] apart!") if(istype(src, /obj/structure/table/reinforced)) new /obj/item/weapon/table_parts/reinforced(loc) @@ -231,6 +233,7 @@ /obj/structure/table/attack_animal(mob/living/simple_animal/user) if(user.environment_smash) + user.do_attack_animation() visible_message("[user] smashes [src] apart!") if(istype(src, /obj/structure/table/reinforced)) new /obj/item/weapon/table_parts/reinforced(loc) @@ -246,6 +249,7 @@ /obj/structure/table/attack_hand(mob/user) if(HULK in user.mutations) + user.do_attack_animation() visible_message("[user] smashes [src] apart!") user.say(pick(";RAAAAAAAARGH!", ";HNNNNNNNNNGGGGGGH!", ";GWAAAAAAAARRRHHH!", "NNNNNNNNGGGGGGGGHH!", ";AAAAAAARRRGH!" )) if(istype(src, /obj/structure/table/reinforced)) @@ -516,6 +520,7 @@ Destroy type values: /obj/structure/rack/attack_paw(mob/user) if(HULK in user.mutations) + user.do_attack_animation() user.say(pick(";RAAAAAAAARGH!", ";HNNNNNNNNNGGGGGGH!", ";GWAAAAAAAARRRHHH!", "NNNNNNNNGGGGGGGGHH!", ";AAAAAAARRRGH!" )) visible_message("[user] smashes [src] apart!") new /obj/item/weapon/rack_parts(loc) @@ -524,6 +529,7 @@ Destroy type values: /obj/structure/rack/attack_alien(mob/user) + user.do_attack_animation() visible_message("[user] slices [src] apart!") new /obj/item/weapon/rack_parts(loc) density = 0 @@ -532,6 +538,7 @@ Destroy type values: /obj/structure/rack/attack_animal(mob/living/simple_animal/user) if(user.environment_smash) + user.do_attack_animation() visible_message("[user] smashes [src] apart!") new /obj/item/weapon/rack_parts(loc) density = 0 diff --git a/code/game/objects/structures/window.dm b/code/game/objects/structures/window.dm index 415360bb913..d5b56277109 100644 --- a/code/game/objects/structures/window.dm +++ b/code/game/objects/structures/window.dm @@ -135,17 +135,20 @@ /obj/structure/window/attack_alien(mob/user as mob) + user.do_attack_animation() if(islarva(user)) return attack_generic(user, 15) /obj/structure/window/attack_animal(mob/user as mob) if(!isanimal(user)) return var/mob/living/simple_animal/M = user + M.do_attack_animation() if(M.melee_damage_upper <= 0) return attack_generic(M, M.melee_damage_upper) /obj/structure/window/attack_slime(mob/living/carbon/slime/user as mob) + user.do_attack_animation() if(!user.is_adult) return attack_generic(user, rand(10, 15)) diff --git a/code/game/turfs/simulated/walls.dm b/code/game/turfs/simulated/walls.dm index b66e903b068..393ce212b30 100644 --- a/code/game/turfs/simulated/walls.dm +++ b/code/game/turfs/simulated/walls.dm @@ -95,6 +95,7 @@ /turf/simulated/wall/attack_paw(mob/user as mob) user.changeNext_move(CLICK_CD_MELEE) if ((HULK in user.mutations)) + user.do_attack_animation() if (prob(hardness)) playsound(src, 'sound/effects/meteorimpact.ogg', 100, 1) usr << text("You smash through the wall.") @@ -110,6 +111,7 @@ /turf/simulated/wall/attack_animal(var/mob/living/simple_animal/M) M.changeNext_move(CLICK_CD_MELEE) + M.do_attack_animation() if(M.environment_smash >= 2) if(istype(src, /turf/simulated/wall/r_wall)) if(M.environment_smash == 3) diff --git a/code/modules/events/ninja.dm b/code/modules/events/ninja.dm index 4efc4c100ce..a4fd918c832 100644 --- a/code/modules/events/ninja.dm +++ b/code/modules/events/ninja.dm @@ -2722,6 +2722,7 @@ It is possible to destroy the net by the occupant or someone else. return attack_hand() /obj/effect/energy_net/attack_alien(mob/user as mob) + user.do_attack_animation() if (islarva(user)) return playsound(src.loc, 'sound/weapons/slash.ogg', 80, 1) diff --git a/code/modules/events/spacevine.dm b/code/modules/events/spacevine.dm index addea4786a4..c9690af0545 100644 --- a/code/modules/events/spacevine.dm +++ b/code/modules/events/spacevine.dm @@ -302,6 +302,7 @@ /obj/effect/spacevine/attack_paw(mob/user as mob) + user.do_attack_animation() for(var/datum/spacevine_mutation/SM in mutations) SM.on_hit(src, user) manual_unbuckle(user) diff --git a/code/modules/mob/living/carbon/alien/humanoid/humanoid.dm b/code/modules/mob/living/carbon/alien/humanoid/humanoid.dm index 7c50ccf0dc8..9789f5bca69 100644 --- a/code/modules/mob/living/carbon/alien/humanoid/humanoid.dm +++ b/code/modules/mob/living/carbon/alien/humanoid/humanoid.dm @@ -117,6 +117,7 @@ if ("help") help_shake_act(M) else + M.do_attack_animation() if (M.is_muzzled()) return playsound(loc, 'sound/weapons/bite.ogg', 50, 1, -1) @@ -137,6 +138,7 @@ if (stat > -100) + M.do_attack_animation() visible_message("The [M.name] glomps [src]!", \ "The [M.name] glomps [src]!") var/damage = rand(1, 3) @@ -189,6 +191,7 @@ if(M.melee_damage_upper == 0) M.emote("[M.friendly] [src]") else + M.do_attack_animation() if(M.attack_sound) playsound(loc, M.attack_sound, 50, 1, 1) visible_message("[M] [M.attacktext] [src]!", \ @@ -229,6 +232,7 @@ visible_message("[M] has grabbed [src] passively!") if ("harm") + M.do_attack_animation() var/damage = rand(1, 9) if (prob(90)) if (HULK in M.mutations)//HULK SMASH @@ -298,6 +302,7 @@ In all, this is a lot like the monkey code. /N else if (health > 0) + M.do_attack_animation() playsound(loc, 'sound/weapons/bite.ogg', 50, 1, -1) var/damage = rand(1, 3) visible_message("[M.name] bites [src]!!", \ @@ -319,6 +324,7 @@ In all, this is a lot like the monkey code. /N else if (health > 0) + L.do_attack_animation() playsound(loc, 'sound/weapons/bite.ogg', 50, 1, -1) var/damage = rand(1, 3) visible_message("[L.name] bites [src]!!", \ diff --git a/code/modules/mob/living/carbon/alien/larva/larva.dm b/code/modules/mob/living/carbon/alien/larva/larva.dm index 9e4041d3aa3..1d7ae4ebeda 100644 --- a/code/modules/mob/living/carbon/alien/larva/larva.dm +++ b/code/modules/mob/living/carbon/alien/larva/larva.dm @@ -118,6 +118,7 @@ if(M.melee_damage_upper == 0) M.emote("[M.friendly] [src]") else + M.do_attack_animation() if(M.attack_sound) playsound(loc, M.attack_sound, 50, 1, 1) visible_message("[M] [M.attacktext] [src]!", \ @@ -145,6 +146,7 @@ if ("help") help_shake_act(M) else + M.do_attack_animation() if (M.is_muzzled()) return playsound(loc, 'sound/weapons/bite.ogg', 50, 1, -1) @@ -165,6 +167,7 @@ return // can't attack while eating! if (stat != DEAD) + M.do_attack_animation() visible_message("The [M.name] glomps [src]!", \ "The [M.name] glomps [src]!") var/damage = rand(1, 3) @@ -211,6 +214,7 @@ visible_message("[M] has grabbed [src] passively!") else + M.do_attack_animation() var/damage = rand(1, 9) if (prob(90)) if (HULK in M.mutations) @@ -259,6 +263,7 @@ else if (health > 0) + M.do_attack_animation() playsound(loc, 'sound/weapons/bite.ogg', 50, 1, -1) var/damage = 1 visible_message("[M.name] bites [src]!", \ diff --git a/code/modules/mob/living/carbon/human/human.dm b/code/modules/mob/living/carbon/human/human.dm index 2a0a5a10e6a..beea8cfa2e3 100644 --- a/code/modules/mob/living/carbon/human/human.dm +++ b/code/modules/mob/living/carbon/human/human.dm @@ -222,6 +222,7 @@ if(M.melee_damage_upper == 0) M.emote("[M.friendly] [src]") else + M.do_attack_animation() if(M.attack_sound) playsound(loc, M.attack_sound, 50, 1, 1) visible_message("[M] [M.attacktext] [src]!", \ @@ -243,7 +244,7 @@ else - + L.do_attack_animation() var/damage = rand(1, 3) visible_message("[L] bites [src]!", \ "[L] bites [src]!") @@ -261,6 +262,7 @@ if (health > -100) + M.do_attack_animation() visible_message("The [M.name] glomps [src]!", \ "The [M.name] glomps [src]!") diff --git a/code/modules/mob/living/carbon/human/human_attackalien.dm b/code/modules/mob/living/carbon/human/human_attackalien.dm index bea1c5703cc..7d17736deb9 100644 --- a/code/modules/mob/living/carbon/human/human_attackalien.dm +++ b/code/modules/mob/living/carbon/human/human_attackalien.dm @@ -22,6 +22,7 @@ visible_message("[M] has grabbed [src] passively!") if("harm") + M.do_attack_animation() if (w_uniform) w_uniform.add_fingerprint(M) var/damage = rand(15, 30) @@ -45,6 +46,7 @@ updatehealth() if("disarm") + M.do_attack_animation() var/randn = rand(1, 100) if (randn <= 80) playsound(loc, 'sound/weapons/pierce.ogg', 25, 1, -1) diff --git a/code/modules/mob/living/carbon/human/human_attackpaw.dm b/code/modules/mob/living/carbon/human/human_attackpaw.dm index 95eaeb61ec3..ea2a2837c70 100644 --- a/code/modules/mob/living/carbon/human/human_attackpaw.dm +++ b/code/modules/mob/living/carbon/human/human_attackpaw.dm @@ -3,6 +3,7 @@ if (M.a_intent == "help") help_shake_act(M) else + M.do_attack_animation() if (M.is_muzzled()) return diff --git a/code/modules/mob/living/carbon/human/human_defense.dm b/code/modules/mob/living/carbon/human/human_defense.dm index 5f06c653d7e..80cfc7010cb 100644 --- a/code/modules/mob/living/carbon/human/human_defense.dm +++ b/code/modules/mob/living/carbon/human/human_defense.dm @@ -132,8 +132,10 @@ emp_act return dna.species.spec_attacked_by(I,user,def_zone,affecting,hit_area,src.a_intent,target_limb,target_area,src) else - if((user != src) && check_shields(I.force, "the [I.name]")) - return 0 + if(user != src) + user.do_attack_animation() + if(check_shields(I.force, "the [I.name]")) + return 0 if(I.attack_verb && I.attack_verb.len) visible_message("[src] has been [pick(I.attack_verb)] in the [hit_area] with [I] by [user]!", \ diff --git a/code/modules/mob/living/carbon/human/species.dm b/code/modules/mob/living/carbon/human/species.dm index a0795957383..e0b7bda8141 100644 --- a/code/modules/mob/living/carbon/human/species.dm +++ b/code/modules/mob/living/carbon/human/species.dm @@ -722,6 +722,7 @@ if("harm") add_logs(M, H, "punched") + M.do_attack_animation() var/atk_verb = "punch" if(H.lying) @@ -822,6 +823,8 @@ /datum/species/proc/spec_attacked_by(var/obj/item/I, var/mob/living/user, var/def_zone, var/obj/item/organ/limb/affecting, var/hit_area, var/intent, var/obj/item/organ/limb/target_limb, target_area, var/mob/living/carbon/human/H) // Allows you to put in item-specific reactions based on species + if(user != src) + user.do_attack_animation() if((user != H) && H.check_shields(I.force, "the [I.name]")) return 0 @@ -914,6 +917,8 @@ var/showname = "." if(user) showname = " by [user]!" + if(user != src) + user.do_attack_animation() if(!(user in viewers(I, null))) showname = "." diff --git a/code/modules/mob/living/carbon/monkey/monkey.dm b/code/modules/mob/living/carbon/monkey/monkey.dm index 09974720b9e..f36c0324151 100644 --- a/code/modules/mob/living/carbon/monkey/monkey.dm +++ b/code/modules/mob/living/carbon/monkey/monkey.dm @@ -75,6 +75,7 @@ help_shake_act(M) else if (M.a_intent == "harm" && !M.is_muzzled()) + M.do_attack_animation() if (prob(75)) playsound(loc, 'sound/weapons/bite.ogg', 50, 1, -1) visible_message("[M.name] bites [name]!", \ @@ -98,7 +99,7 @@ else - + L.do_attack_animation() var/damage = rand(1, 3) visible_message("[L] bites [src]!", \ "[L] bites [src]!") @@ -125,6 +126,7 @@ else if (M.a_intent == "harm") + M.do_attack_animation() if (prob(75)) visible_message("[M] has punched [name]!", \ "[M] has punched [name]!") @@ -188,6 +190,7 @@ visible_message(" [M] caresses [src] with its scythe like arm.") if ("harm") + M.do_attack_animation() if ((prob(95) && health > 0)) playsound(loc, 'sound/weapons/slice.ogg', 25, 1, -1) var/damage = rand(15, 30) @@ -223,6 +226,7 @@ visible_message("[M] has grabbed [name] passively!") if ("disarm") + M.do_attack_animation() playsound(loc, 'sound/weapons/pierce.ogg', 25, 1, -1) var/damage = 5 if(prob(95)) @@ -241,6 +245,7 @@ if(M.melee_damage_upper == 0) M.emote("[M.friendly] [src]") else + M.do_attack_animation() if(M.attack_sound) playsound(loc, M.attack_sound, 50, 1, 1) visible_message("[M] [M.attacktext] [src]!", \ @@ -260,6 +265,7 @@ if (health > -100) + M.do_attack_animation() visible_message("The [M.name] glomps [src]!", \ "The [M.name] glomps [src]!") diff --git a/code/modules/mob/living/carbon/slime/slime.dm b/code/modules/mob/living/carbon/slime/slime.dm index 3b1095043bc..e805dd595ea 100644 --- a/code/modules/mob/living/carbon/slime/slime.dm +++ b/code/modules/mob/living/carbon/slime/slime.dm @@ -246,6 +246,7 @@ if (Victim) return // can't attack while eating! + M.do_attack_animation() visible_message(" The [M.name] has glomped [src]!", \ " The [M.name] has glomped [src]!") var/damage = rand(1, 3) @@ -263,6 +264,7 @@ if(M.melee_damage_upper == 0) M.emote("[M.friendly] [src]") else + M.do_attack_animation() if(M.attack_sound) playsound(loc, M.attack_sound, 50, 1, 1) visible_message("[M] [M.attacktext] [src]!", \ @@ -292,6 +294,7 @@ if ("help") help_shake_act(M) else + M.do_attack_animation() if (M.is_muzzled()) return @@ -313,7 +316,7 @@ else - + L.do_attack_animation() attacked += 10 visible_message("[L] bites [src]!", \ "[L] bites [src]!") @@ -410,6 +413,7 @@ else + M.do_attack_animation() var/damage = rand(1, 9) attacked += 10 @@ -457,7 +461,7 @@ visible_message("[M] caresses [src] with its scythe like arm.") if ("harm") - + M.do_attack_animation() if (prob(95)) attacked += 10 playsound(loc, 'sound/weapons/slice.ogg', 25, 1, -1) @@ -493,6 +497,7 @@ visible_message(" [M] has grabbed [name] passively!") if ("disarm") + M.do_attack_animation() playsound(loc, 'sound/weapons/pierce.ogg', 25, 1, -1) var/damage = 5 attacked += 10 diff --git a/code/modules/mob/living/living.dm b/code/modules/mob/living/living.dm index 322eb3e025e..aa843101ee9 100644 --- a/code/modules/mob/living/living.dm +++ b/code/modules/mob/living/living.dm @@ -638,4 +638,4 @@ return(gain) /mob/living/singularity_pull(S) - step_towards(src,S) + step_towards(src,S) diff --git a/code/modules/mob/living/silicon/ai/ai.dm b/code/modules/mob/living/silicon/ai/ai.dm index abe9b340810..f4f1e8f1761 100644 --- a/code/modules/mob/living/silicon/ai/ai.dm +++ b/code/modules/mob/living/silicon/ai/ai.dm @@ -387,7 +387,7 @@ var/list/ai_list = list() if(A && target) A.cameraFollow = target - A << text("Now tracking [] on camera.", target.name) + A << "Now tracking [target.name] on camera." if (usr.machine == null) usr.machine = usr @@ -417,32 +417,31 @@ var/list/ai_list = list() switch(M.a_intent) if ("help") - for(var/mob/O in viewers(src, null)) - if ((O.client && !( O.blinded ))) - O.show_message(text("[M] caresses [src]'s plating with its scythe like arm."), 1) + visible_message("[M] caresses [src]'s plating with its scythe like arm.") else //harm + M.do_attack_animation() var/damage = rand(10, 20) if (prob(90)) playsound(loc, 'sound/weapons/slash.ogg', 25, 1, -1) - for(var/mob/O in viewers(src, null)) - if ((O.client && !( O.blinded ))) - O.show_message(text("[] has slashed at []!", M, src), 1) + visible_message("[M] has slashed at [src]!",\ + "[M] has slashed at [src]!") if(prob(8)) flick("noise", flash) adjustBruteLoss(damage) updatehealth() else playsound(loc, 'sound/weapons/slashmiss.ogg', 25, 1, -1) - for(var/mob/O in viewers(src, null)) - if ((O.client && !( O.blinded ))) - O.show_message(text("[] took a swipe at []!", M, src), 1) + visible_message("[M] took a swipe at [src]!", \ + "[M] took a swipe at [src]!") + return /mob/living/silicon/ai/attack_animal(mob/living/simple_animal/M as mob) if(M.melee_damage_upper == 0) M.emote("[M.friendly] [src]") else + M.do_attack_animation() if(M.attack_sound) playsound(loc, M.attack_sound, 50, 1, 1) visible_message("[M] [M.attacktext] [src]!") diff --git a/code/modules/mob/living/silicon/robot/robot.dm b/code/modules/mob/living/silicon/robot/robot.dm index 8b4076e265b..e8d7317a179 100644 --- a/code/modules/mob/living/silicon/robot/robot.dm +++ b/code/modules/mob/living/silicon/robot/robot.dm @@ -621,11 +621,10 @@ G.synch() playsound(loc, 'sound/weapons/thudswoosh.ogg', 50, 1, -1) - for(var/mob/O in viewers(src, null)) - if ((O.client && !( O.blinded ))) - O.show_message(text("[] has grabbed [] passively!", M, src), 1) + visible_message("[M] has grabbed [src] passively!") if ("harm") + M.do_attack_animation() var/damage = rand(10, 20) if (prob(90)) /* @@ -637,33 +636,31 @@ What is this?*/ playsound(loc, 'sound/weapons/slash.ogg', 25, 1, -1) - for(var/mob/O in viewers(src, null)) - O.show_message(text("[] has slashed at []!", M, src), 1) + visible_message("[M] has slashed at [src]!",\ + "[M] has slashed at [src]!") if(prob(8)) flick("noise", flash) adjustBruteLoss(damage) updatehealth() else playsound(loc, 'sound/weapons/slashmiss.ogg', 25, 1, -1) - for(var/mob/O in viewers(src, null)) - if ((O.client && !( O.blinded ))) - O.show_message(text("[] took a swipe at []!", M, src), 1) + visible_message("[M] took a swipe at [src]!", \ + "[M] took a swipe at [src]!") if ("disarm") if(!(lying)) + M.do_attack_animation() if (rand(1,100) <= 85) Stun(7) step(src,get_dir(M,src)) spawn(5) step(src,get_dir(M,src)) playsound(loc, 'sound/weapons/pierce.ogg', 50, 1, -1) - for(var/mob/O in viewers(src, null)) - if ((O.client && !( O.blinded ))) - O.show_message(text("[] has forced back []!", M, src), 1) + visible_message("[M] has forced back [src]!",\ + "[M] has forced back [src]!") else playsound(loc, 'sound/weapons/slashmiss.ogg', 25, 1, -1) - for(var/mob/O in viewers(src, null)) - if ((O.client && !( O.blinded ))) - O.show_message(text("[] attempted to force back []!", M, src), 1) + visible_message("[M] attempted to force back [src]!",\ + "[M] attempted to force back [src]!") return @@ -676,10 +673,9 @@ if(M.Victim) return // can't attack while eating! if (health > -100) - - for(var/mob/O in viewers(src, null)) - if ((O.client && !( O.blinded ))) - O.show_message(text("The [M.name] glomps []!", src), 1) + M.do_attack_animation() + visible_message("The [M.name] glomps [src]!",\ + "The [M.name] glomps [src]!") var/damage = rand(1, 3) @@ -730,6 +726,7 @@ if(M.melee_damage_upper == 0) M.emote("[M.friendly] [src]") else + M.do_attack_animation() if(M.attack_sound) playsound(loc, M.attack_sound, 50, 1, 1) visible_message("[M] [M.attacktext] [src]!") diff --git a/code/modules/mob/living/simple_animal/constructs.dm b/code/modules/mob/living/simple_animal/constructs.dm index 4ff94d16b97..e3d523fc683 100644 --- a/code/modules/mob/living/simple_animal/constructs.dm +++ b/code/modules/mob/living/simple_animal/constructs.dm @@ -92,6 +92,7 @@ if(M.melee_damage_upper <= 0) M.emote("me", 1, "[M.friendly] \the [src].") else + M.do_attack_animation() if(M.attack_sound) playsound(loc, M.attack_sound, 50, 1, 1) visible_message("\The [M] [M.attacktext] \the [src]!", \ diff --git a/code/modules/mob/living/simple_animal/simple_animal.dm b/code/modules/mob/living/simple_animal/simple_animal.dm index 1b720f37540..9fea82e27c4 100644 --- a/code/modules/mob/living/simple_animal/simple_animal.dm +++ b/code/modules/mob/living/simple_animal/simple_animal.dm @@ -257,6 +257,7 @@ if(M.melee_damage_upper == 0) M.emote("me", 1, "[M.friendly] [src]") else + M.do_attack_animation() if(M.attack_sound) playsound(loc, M.attack_sound, 50, 1, 1) visible_message("\The [M] [M.attacktext] [src]!", \ @@ -301,6 +302,7 @@ playsound(loc, 'sound/weapons/thudswoosh.ogg', 50, 1, -1) if("harm", "disarm") + M.do_attack_animation() visible_message("[M] [response_harm] [src]!") playsound(loc, "punch", 25, 1, -1) adjustBruteLoss(harm_intent_damage) @@ -320,6 +322,7 @@ visible_message(" [M] [response_help] [src].") playsound(loc, 'sound/weapons/thudswoosh.ogg', 50, 1, -1) else + M.do_attack_animation() if (M.is_muzzled()) return playsound(loc, 'sound/weapons/bite.ogg', 50, 1, -1) @@ -353,6 +356,7 @@ visible_message("[M] has grabbed [src] passively!") if("harm", "disarm") + M.do_attack_animation() var/damage = rand(15, 30) visible_message("[M] has slashed at [src]!", \ "[M] has slashed at [src]!") @@ -369,7 +373,7 @@ else - + L.do_attack_animation() var/damage = rand(5, 10) visible_message("[L] bites [src]!", \ "[L] bites [src]!") @@ -388,6 +392,7 @@ if(M.Victim) return // can't attack while eating! if (health > 0) + M.do_attack_animation() visible_message("[M.name] glomps [src]!", \ "[M.name] glomps [src]!") diff --git a/code/modules/mob/mob.dm b/code/modules/mob/mob.dm index 9e989a38ae7..68dfbd92bdb 100644 --- a/code/modules/mob/mob.dm +++ b/code/modules/mob/mob.dm @@ -127,7 +127,16 @@ var/next_mob_id = 0 M.show_message( message, 2, deaf_message, 1) - +mob/proc/do_attack_animation() + var/pixel_x_diff = 0 + var/pixel_y_diff = 0 + switch(src.dir) + if(1) pixel_y_diff = 8 + if(2) pixel_y_diff = -8 + if(4) pixel_x_diff = 8 + if(8) pixel_y_diff = -8 + animate(src, pixel_x = pixel_x + pixel_x_diff, pixel_y = pixel_y + pixel_y_diff, time = 2) + animate(pixel_x = initial(pixel_x), pixel_y = initial(pixel_y), time = 2) /mob/proc/movement_delay() return 0 diff --git a/code/modules/power/apc.dm b/code/modules/power/apc.dm index 63d967b579d..e81fd8ff5c6 100644 --- a/code/modules/power/apc.dm +++ b/code/modules/power/apc.dm @@ -632,6 +632,7 @@ /obj/machinery/power/apc/attack_alien(mob/living/carbon/alien/humanoid/user) if(!user) return + user.do_attack_animation() user.visible_message("[user.name] slashes at the [src.name]!", "You slash at the [src.name]!") playsound(src.loc, 'sound/weapons/slash.ogg', 100, 1) diff --git a/code/modules/power/lighting.dm b/code/modules/power/lighting.dm index 6bbdb88543d..b7b09944298 100644 --- a/code/modules/power/lighting.dm +++ b/code/modules/power/lighting.dm @@ -449,6 +449,7 @@ user << "\green That object is useless to you." return else if (status == LIGHT_OK||status == LIGHT_BURNED) + user.do_attack_animation() visible_message("[user.name] smashed the light!", "You hear a tinkle of breaking glass") broken() return @@ -459,6 +460,7 @@ M << "That object is useless to you." return else if (status == LIGHT_OK||status == LIGHT_BURNED) + M.do_attack_animation() visible_message("[M.name] smashed the light!", "You hear a tinkle of breaking glass") broken() return diff --git a/code/modules/recycling/disposal.dm b/code/modules/recycling/disposal.dm index e610c07f1ac..ecb18bff6a1 100644 --- a/code/modules/recycling/disposal.dm +++ b/code/modules/recycling/disposal.dm @@ -219,6 +219,7 @@ // hostile mob escape from disposals /obj/machinery/disposal/attack_animal(var/mob/living/simple_animal/M) if(M.environment_smash) + M.do_attack_animation() visible_message("[M.name] smashes \the [src] apart!") qdel(src) return From 8b49caa5ee0990d7b08ff44c9bac8c1bc2ec2d14 Mon Sep 17 00:00:00 2001 From: phil235 Date: Mon, 3 Nov 2014 01:06:02 +0100 Subject: [PATCH 017/102] Fixes typos and show messages. Fixes attack animation code. --- code/ATMOSPHERICS/components/portables_connector.dm | 2 +- code/game/gamemodes/blob/theblob.dm | 1 + code/game/machinery/newscaster.dm | 9 +++++---- code/game/machinery/shieldgen.dm | 10 +++++----- .../structures/crates_lockers/closets/fireaxe.dm | 3 ++- code/game/objects/structures/mirror.dm | 1 + code/modules/mob/living/simple_animal/simple_animal.dm | 1 + code/modules/mob/mob.dm | 2 +- code/modules/power/apc.dm | 1 + code/modules/power/lighting.dm | 4 ++-- 10 files changed, 20 insertions(+), 14 deletions(-) diff --git a/code/ATMOSPHERICS/components/portables_connector.dm b/code/ATMOSPHERICS/components/portables_connector.dm index 7a0a5db640b..10fb24f71fd 100644 --- a/code/ATMOSPHERICS/components/portables_connector.dm +++ b/code/ATMOSPHERICS/components/portables_connector.dm @@ -153,6 +153,6 @@ This should ideally have /unary/ as parent, why doesn't it? //Donkie if (!istype(W, /obj/item/weapon/wrench)) return ..() if (connected_device) - user << "You cannot unwrench this [src], dettach [connected_device] first." + user << "You cannot unwrench this [src], detach [connected_device] first." return 1 return ..() diff --git a/code/game/gamemodes/blob/theblob.dm b/code/game/gamemodes/blob/theblob.dm index bd2f5c27a64..3568bb5cccf 100644 --- a/code/game/gamemodes/blob/theblob.dm +++ b/code/game/gamemodes/blob/theblob.dm @@ -151,6 +151,7 @@ /obj/effect/blob/attackby(var/obj/item/weapon/W, var/mob/user) user.changeNext_move(CLICK_CD_MELEE) + user.do_attack_animation() playsound(src.loc, 'sound/effects/attackblob.ogg', 50, 1) src.visible_message("The [src.name] has been attacked with \the [W][(user ? " by [user]" : "")]!") var/damage = 0 diff --git a/code/game/machinery/newscaster.dm b/code/game/machinery/newscaster.dm index 9e1bd0616fa..03783e863b3 100644 --- a/code/game/machinery/newscaster.dm +++ b/code/game/machinery/newscaster.dm @@ -758,24 +758,25 @@ var/list/obj/machinery/newscaster/allCasters = list() //Global list that will co if (src.isbroken) playsound(src.loc, 'sound/effects/hit_on_shattered_glass.ogg', 100, 1) for (var/mob/O in hearers(5, src.loc)) - O.show_message("[user.name] further abuses the shattered [src.name].") + O.show_message("[user.name] further abuses the shattered [src.name].") else if(istype(I, /obj/item/weapon) ) + user.do_attack_animation() var/obj/item/weapon/W = I if(W.force <15) for (var/mob/O in hearers(5, src.loc)) - O.show_message("[user.name] hits the [src.name] with the [W.name] with no visible effect." ) + O.show_message("[user.name] hits the [src.name] with the [W.name] with no visible effect." ) playsound(src.loc, 'sound/effects/Glasshit.ogg', 100, 1) else src.hitstaken++ if(src.hitstaken==3) for (var/mob/O in hearers(5, src.loc)) - O.show_message("[user.name] smashes the [src.name]!" ) + O.show_message("[user.name] smashes the [src.name]!" ) src.isbroken=1 playsound(src.loc, 'sound/effects/Glassbr3.ogg', 100, 1) else for (var/mob/O in hearers(5, src.loc)) - O.show_message("[user.name] forcefully slams the [src.name] with the [I.name]!" ) + O.show_message("[user.name] forcefully slams the [src.name] with the [I.name]!" ) playsound(src.loc, 'sound/effects/Glasshit.ogg', 100, 1) else user << "This does nothing." diff --git a/code/game/machinery/shieldgen.dm b/code/game/machinery/shieldgen.dm index a5006803963..c09d2df37b1 100644 --- a/code/game/machinery/shieldgen.dm +++ b/code/game/machinery/shieldgen.dm @@ -46,7 +46,7 @@ if (src.health <= 0) - visible_message("The [src] dissapates.") + visible_message("[src] dissipates.") qdel(src) return @@ -58,7 +58,7 @@ health -= Proj.damage ..() if(health <=0) - visible_message("The [src] dissapates.") + visible_message("The [src] dissipates.") qdel(src) return opacity = 1 @@ -107,7 +107,7 @@ //Handle the destruction of the shield if (src.health <= 0) - visible_message("The [src] dissapates.") + visible_message("[src] dissipates.") qdel(src) return @@ -475,8 +475,8 @@ user << "Access denied." else - src.add_fingerprint(user) - visible_message("The [src.name] has been hit with the [W.name] by [user.name]!") + add_fingerprint(user) + ..() /obj/machinery/shieldwallgen/proc/cleanup(var/NSEW) var/obj/machinery/shieldwall/F diff --git a/code/game/objects/structures/crates_lockers/closets/fireaxe.dm b/code/game/objects/structures/crates_lockers/closets/fireaxe.dm index 4efc8c6292e..78476924c2c 100644 --- a/code/game/objects/structures/crates_lockers/closets/fireaxe.dm +++ b/code/game/objects/structures/crates_lockers/closets/fireaxe.dm @@ -21,7 +21,7 @@ if(fireaxe) hasaxe = 1 - if (isrobot(usr) || src.locked) + if (isrobot(user) || src.locked) if(istype(O, /obj/item/device/multitool)) user << " Resetting circuitry..." playsound(user, 'sound/machines/lockreset.ogg', 50, 1) @@ -40,6 +40,7 @@ spawn(10) update_icon() return else + user.do_attack_animation() playsound(user, 'sound/effects/Glasshit.ogg', 100, 1) //We don't want this playing every time if(W.force < 15) user << " The cabinet's protective glass glances off the hit." diff --git a/code/game/objects/structures/mirror.dm b/code/game/objects/structures/mirror.dm index 17f99eecf20..bed5a4edd1b 100644 --- a/code/game/objects/structures/mirror.dm +++ b/code/game/objects/structures/mirror.dm @@ -57,6 +57,7 @@ /obj/structure/mirror/attackby(obj/item/I as obj, mob/user as mob) + user.do_attack_animation() if(shattered) playsound(src.loc, 'sound/effects/hit_on_shattered_glass.ogg', 70, 1) return diff --git a/code/modules/mob/living/simple_animal/simple_animal.dm b/code/modules/mob/living/simple_animal/simple_animal.dm index 9fea82e27c4..bc26cb41821 100644 --- a/code/modules/mob/living/simple_animal/simple_animal.dm +++ b/code/modules/mob/living/simple_animal/simple_animal.dm @@ -437,6 +437,7 @@ harvest() user.changeNext_move(CLICK_CD_MELEE) + user.do_attack_animation() var/damage = 0 if(O.force) if(O.force >= force_threshold) diff --git a/code/modules/mob/mob.dm b/code/modules/mob/mob.dm index 68dfbd92bdb..7d6faad043c 100644 --- a/code/modules/mob/mob.dm +++ b/code/modules/mob/mob.dm @@ -134,7 +134,7 @@ mob/proc/do_attack_animation() if(1) pixel_y_diff = 8 if(2) pixel_y_diff = -8 if(4) pixel_x_diff = 8 - if(8) pixel_y_diff = -8 + if(8) pixel_x_diff = -8 animate(src, pixel_x = pixel_x + pixel_x_diff, pixel_y = pixel_y + pixel_y_diff, time = 2) animate(pixel_x = initial(pixel_x), pixel_y = initial(pixel_y), time = 2) diff --git a/code/modules/power/apc.dm b/code/modules/power/apc.dm index e81fd8ff5c6..935ea6479e3 100644 --- a/code/modules/power/apc.dm +++ b/code/modules/power/apc.dm @@ -599,6 +599,7 @@ (istype(W, /obj/item/device/multitool) || \ istype(W, /obj/item/weapon/wirecutters) || istype(W, /obj/item/device/assembly/signaler))) return src.attack_hand(user) + user.do_attack_animation() user.visible_message("The [src.name] has been hit with the [W.name] by [user.name]!", \ "You hit the [src.name] with your [W.name]!", \ "You hear bang") diff --git a/code/modules/power/lighting.dm b/code/modules/power/lighting.dm index b7b09944298..f9b81c9a158 100644 --- a/code/modules/power/lighting.dm +++ b/code/modules/power/lighting.dm @@ -369,7 +369,7 @@ else if(status != LIGHT_BROKEN && status != LIGHT_EMPTY) - + user.do_attack_animation() if(prob(1+W.force * 5)) user.visible_message("[user.name] smashed the light!", \ @@ -382,7 +382,7 @@ broken() else - user.visible_message("[user.name] hits the light.") + user.visible_message("[user.name] hits the light.") // attempt to stick weapon into light socket else if(status == LIGHT_EMPTY) From 3078655e1ed371b2b4734e6e3a41ba3a44370dae Mon Sep 17 00:00:00 2001 From: phil235 Date: Mon, 3 Nov 2014 01:32:44 +0100 Subject: [PATCH 018/102] adding attack animation to windoor/attackby --- code/game/machinery/doors/windowdoor.dm | 1 + 1 file changed, 1 insertion(+) diff --git a/code/game/machinery/doors/windowdoor.dm b/code/game/machinery/doors/windowdoor.dm index 03db8cc6918..82a6d13b577 100644 --- a/code/game/machinery/doors/windowdoor.dm +++ b/code/game/machinery/doors/windowdoor.dm @@ -326,6 +326,7 @@ //If it's a weapon, smash windoor. Unless it's an id card, agent card, ect.. then ignore it (Cards really shouldnt damage a door anyway) if(src.density && istype(I, /obj/item/weapon) && !istype(I, /obj/item/weapon/card) ) user.changeNext_move(CLICK_CD_MELEE) + user.do_attack_animation() if( (I.flags&NOBLUDGEON) || !I.force ) return var/aforce = I.force From 4a11f514768719d6bf55f44254fb4f8f8651c24b Mon Sep 17 00:00:00 2001 From: Daniel Date: Mon, 3 Nov 2014 12:43:48 +0100 Subject: [PATCH 019/102] Cleaned up icons Fixes #5617 --- icons/obj/atmospherics/binary_devices.dmi | Bin 18046 -> 17713 bytes icons/obj/pipe-item.dmi | Bin 19184 -> 18118 bytes 2 files changed, 0 insertions(+), 0 deletions(-) diff --git a/icons/obj/atmospherics/binary_devices.dmi b/icons/obj/atmospherics/binary_devices.dmi index 58b0113879f6ccf54a85442ffa24e7a4b8679e30..fbf26ac254be4ff5b242e0e3758169f53750be83 100644 GIT binary patch literal 17713 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 KmFPPE@jn1ti!wR@ diff --git a/icons/obj/pipe-item.dmi b/icons/obj/pipe-item.dmi index b96cbabd736bea997aab7ed8e1655d2c252f4fcf..f8faf7996bdb22f7116a06575626db1c67fdd2bd 100644 GIT binary patch literal 18118 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 U$1i(<2h%Wky85}Sb4q9e0Omjvr~m)} literal 19184 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�{9IF*FBNSTWW1;7!4)3AA!DiV$^EnN4$*Sh=ISbFAoFoY zw*^Un@#)k3gWvgq9Zvyt0X6njWQbE4*|@FOtwdyaIwr^H&<`x7K2%AhU9;Z;I_?)C zq>~q&UBK5ysJxBvza9F~&A)eX9g>NNZ$k+4#FYo%k$t#Az^zz3!v;(|W|Ie(8U(x! z2Ape78%1MGev zdm(wHSz2rIi;C0*rN0MhNHfvswqHjHH-n%3i>b(aGTQ%N6K5XO)D?yCMc zR+kcG6elEX8CC9G6<$G=z$>9&T@~6c!!s-gfKpXeRpsI60*>f+PdT#nbxD1gOCo-V z2HL0$JTr=@elQv!dx0H+1Mo{w_DhKIn$VuqU6Eo8$|D@E!ukgcqSj!CSy9OW3*O0V zHPnRbS_whX_DO)1HJq3JRqC8&H(w-u%;RR9;H3C2zZ=ZOst30khGa5t$7Z{amo26q zLt9Da>P0|-!74P~RPcG|>%h%93_qzguq?Ii^vME}o4ogjU-MdQzwv%I;f$o^dhF{L zen!?n1f@iA%+|0f1rSZ#yLSUHH1w|DrE$c%@pT0!kC-=SxumDAxymFjGs&>hYi+OY zFW^D+iI__K+0@wpC@D8kzrn7W$6{rG2r)7{-2M^gT3k#J&;L2`=FQV>i((TfePxc)Hx}ZG= ztsET>y>{ND#%_s8NgZy3!QxlZhz!2E!L$_2Oitbhi4?XW2m)=YN=-39RKtzNrU}#k zWZ$`iM^MiXH3#4stuK*hK)!*S{YRONwRL%8rAJ||}_pO*c^UX|?IG4oqx)3dp&1bZ2z6hr}FK#~_g z<^f#(An8z1SLXC|B#%E4Of+$dvBZ6QnQ>a0Jh_pY!JY%(UW0Y2w5GZl~ESP zHI)SR)$JzO$z)Re8$BdKU5XhCVXFkxhx<^1u;`=aFG~t{Q-%WVX=j3*Uzt+>?(WoG zv(b-SP^<{LJKM0XYfocFK%J0C{KQX4Em7v!@3UNz7sEv7suWJKV^MIPAagew1mheN zAOIj5^{Y|=t1^3-i#6o3gvx}4n*77S-iZeWs(r2;QK>SbRIW9{yWwM2suyifBld^H z-{RXf;g4{vVIQt)|owl*$WF4I{WzLq_( zs`f~zO_uOD{>^b;xh75rd~8;g&cEmSIStJ6jKhDl9aw`67-&fapvX^yL-Elgo((s! z=4+SI5zg9zO_!sWMHfy^+J7962M3=woMq>rF6k1I(n7X=c|AR}L5PlbZCS|Mx)C*E z2rfh498D_x5YXJ1*jTwV$5y&5A6cF{eU|EPb-|mkq|%v`PH5<;xT%irDyuiqg$N)O zfrSR$?!3VB2~Oj7N?K*VD1+b($17nMZ{Rt0NROC-8RPptCLmLq8(>DD$1M{J!%!ri zV#e@8>43bihI13s4^{{=jVPvYsB*ufD#jqVTF9>>Fsf6PjLFb#9K_< From ebf4aa9845d7ca17c65a26544b9b5b99ad652a2e Mon Sep 17 00:00:00 2001 From: Daniel Date: Mon, 3 Nov 2014 13:02:18 +0100 Subject: [PATCH 020/102] Fixed vertical pipes Fixes #5615 --- icons/obj/atmospherics/binary_devices.dmi | Bin 17713 -> 17757 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/icons/obj/atmospherics/binary_devices.dmi b/icons/obj/atmospherics/binary_devices.dmi index fbf26ac254be4ff5b242e0e3758169f53750be83..cd03166fff9a97523bd2536c4c5659efb237f107 100644 GIT binary patch literal 17757 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 literal 17713 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 c4pS{9B)lJ}Ul-K`7eg8 Date: Mon, 3 Nov 2014 15:11:39 +0100 Subject: [PATCH 021/102] Adding some missing do_attack_animation() Moving do_attack_animation() proc to mob/living Fixing the pixel offset issue from beds especially rollerbed. Fixing the nograv bouncing stopping because of another animation being used.(lying down, jittering, attack animation) --- code/_onclick/item_attack.dm | 5 ++--- code/game/gamemodes/blob/theblob.dm | 2 +- code/game/machinery/computer/computer.dm | 4 ++-- code/game/machinery/doors/windowdoor.dm | 6 +++--- code/game/machinery/newscaster.dm | 2 +- code/game/machinery/turrets.dm | 2 +- code/game/mecha/mecha.dm | 9 +++++---- code/game/objects/effects/aliens.dm | 7 ++++--- .../structures/crates_lockers/closets/fireaxe.dm | 2 +- code/game/objects/structures/grille.dm | 5 +++-- code/game/objects/structures/mirror.dm | 8 ++++---- .../objects/structures/stool_bed_chair_nest/bed.dm | 7 +++++-- code/game/objects/structures/tables_racks.dm | 13 +++++++------ code/game/objects/structures/window.dm | 6 +++--- code/game/turfs/simulated/walls.dm | 2 +- code/modules/events/ninja.dm | 2 +- code/modules/events/spacevine.dm | 2 +- .../mob/living/carbon/human/human_attackpaw.dm | 2 +- code/modules/mob/living/carbon/human/life.dm | 5 +++-- code/modules/mob/living/carbon/monkey/monkey.dm | 2 +- code/modules/mob/living/carbon/update_icons.dm | 6 ++++-- code/modules/mob/living/living.dm | 12 ++++++++++++ .../mob/living/simple_animal/simple_animal.dm | 2 +- code/modules/mob/mob.dm | 12 ------------ code/modules/power/apc.dm | 2 +- code/modules/power/lighting.dm | 2 +- 26 files changed, 69 insertions(+), 60 deletions(-) diff --git a/code/_onclick/item_attack.dm b/code/_onclick/item_attack.dm index 2b39acd9a35..fea1a2dcd77 100644 --- a/code/_onclick/item_attack.dm +++ b/code/_onclick/item_attack.dm @@ -6,7 +6,7 @@ // No comment /atom/proc/attackby(obj/item/W, mob/user) return -/atom/movable/attackby(obj/item/W, mob/user) +/atom/movable/attackby(obj/item/W, mob/living/user) user.do_attack_animation() if(W && !(W.flags&NOBLUDGEON)) visible_message("[src] has been hit by [user] with [W].") @@ -26,8 +26,7 @@ var/showname = "." if(user) showname = " by [user]!" - if(user != src) - user.do_attack_animation() + user.do_attack_animation() if(!(user in viewers(src, null))) showname = "." if(I.attack_verb && I.attack_verb.len) diff --git a/code/game/gamemodes/blob/theblob.dm b/code/game/gamemodes/blob/theblob.dm index 3568bb5cccf..980d5dcd7bf 100644 --- a/code/game/gamemodes/blob/theblob.dm +++ b/code/game/gamemodes/blob/theblob.dm @@ -149,7 +149,7 @@ L.blob_act() -/obj/effect/blob/attackby(var/obj/item/weapon/W, var/mob/user) +/obj/effect/blob/attackby(var/obj/item/weapon/W, var/mob/living/user) user.changeNext_move(CLICK_CD_MELEE) user.do_attack_animation() playsound(src.loc, 'sound/effects/attackblob.ogg', 50, 1) diff --git a/code/game/machinery/computer/computer.dm b/code/game/machinery/computer/computer.dm index ec5739ffb9f..6f3737e1848 100644 --- a/code/game/machinery/computer/computer.dm +++ b/code/game/machinery/computer/computer.dm @@ -110,7 +110,7 @@ . = ..() return -/obj/machinery/computer/attack_paw(mob/user) +/obj/machinery/computer/attack_paw(mob/living/user) user.do_attack_animation() if(circuit) if(prob(10)) @@ -123,7 +123,7 @@ "You smash against the [src.name] with your paws.",\ "You hear a clicking sound.") -/obj/machinery/computer/attack_alien(mob/user) +/obj/machinery/computer/attack_alien(mob/living/user) user.do_attack_animation() if(circuit) if(prob(80)) diff --git a/code/game/machinery/doors/windowdoor.dm b/code/game/machinery/doors/windowdoor.dm index 82a6d13b577..cbc1c2a64cb 100644 --- a/code/game/machinery/doors/windowdoor.dm +++ b/code/game/machinery/doors/windowdoor.dm @@ -199,13 +199,13 @@ "[user] smashes against the [src.name].") take_damage(damage) -/obj/machinery/door/window/attack_alien(mob/user as mob) +/obj/machinery/door/window/attack_alien(mob/living/user as mob) user.do_attack_animation() if(islarva(user)) return attack_generic(user, 25) -/obj/machinery/door/window/attack_animal(mob/user as mob) +/obj/machinery/door/window/attack_animal(mob/living/user as mob) if(!isanimal(user)) return var/mob/living/simple_animal/M = user @@ -227,7 +227,7 @@ /obj/machinery/door/window/attack_hand(mob/user as mob) return src.attackby(user, user) -/obj/machinery/door/window/attackby(obj/item/weapon/I as obj, mob/user as mob) +/obj/machinery/door/window/attackby(obj/item/weapon/I as obj, mob/living/user as mob) //If it's in the process of opening/closing, ignore the click if (src.operating) diff --git a/code/game/machinery/newscaster.dm b/code/game/machinery/newscaster.dm index 03783e863b3..14d7ba74d1e 100644 --- a/code/game/machinery/newscaster.dm +++ b/code/game/machinery/newscaster.dm @@ -732,7 +732,7 @@ var/list/obj/machinery/newscaster/allCasters = list() //Global list that will co src.updateUsrDialog() -/obj/machinery/newscaster/attackby(obj/item/I as obj, mob/user as mob) +/obj/machinery/newscaster/attackby(obj/item/I as obj, mob/living/user as mob) /* if (istype(I, /obj/item/weapon/card/id) || istype(I, /obj/item/device/pda) ) //Name verification for channels or messages if(src.screen == 4 || src.screen == 5) diff --git a/code/game/machinery/turrets.dm b/code/game/machinery/turrets.dm index be5b19080bf..7d5cfbf2887 100644 --- a/code/game/machinery/turrets.dm +++ b/code/game/machinery/turrets.dm @@ -413,7 +413,7 @@ return attack_hand(user) -/obj/machinery/gun_turret/attack_alien(mob/user as mob) +/obj/machinery/gun_turret/attack_alien(mob/living/user as mob) user.changeNext_move(CLICK_CD_MELEE) user.do_attack_animation() user.visible_message("[user] slashes at [src]", "You slash at [src]") diff --git a/code/game/mecha/mecha.dm b/code/game/mecha/mecha.dm index f9611930e86..829f3c94ec1 100644 --- a/code/game/mecha/mecha.dm +++ b/code/game/mecha/mecha.dm @@ -449,8 +449,9 @@ else qdel(src) -/obj/mecha/attack_hand(mob/user as mob) +/obj/mecha/attack_hand(mob/living/user as mob) user.changeNext_move(CLICK_CD_MELEE) // Ugh. Ideally we shouldn't be setting cooldowns outside of click code. + user.do_attack_animation() src.log_message("Attack by hand/paw. Attacker - [user].",1) if ((HULK in user.mutations) && !prob(src.deflect_chance)) @@ -467,7 +468,7 @@ return src.attack_hand(user) -/obj/mecha/attack_alien(mob/user as mob) +/obj/mecha/attack_alien(mob/living/user as mob) src.log_message("Attack by alien. Attacker - [user].",1) user.changeNext_move(CLICK_CD_MELEE) //Now stompy alien killer mechs are actually scary to aliens! user.do_attack_animation() @@ -627,9 +628,9 @@ src.check_for_internal_damage(list(MECHA_INT_FIRE, MECHA_INT_TEMP_CONTROL)) return -/obj/mecha/proc/dynattackby(obj/item/weapon/W as obj, mob/user as mob) +/obj/mecha/proc/dynattackby(obj/item/weapon/W as obj, mob/living/user as mob) user.changeNext_move(CLICK_CD_MELEE) // Ugh. Ideally we shouldn't be setting cooldowns outside of click code. - + user.do_attack_animation() src.log_message("Attacked by [W]. Attacker - [user]") if(prob(src.deflect_chance)) user << "The [W] bounces off [src.name] armor." diff --git a/code/game/objects/effects/aliens.dm b/code/game/objects/effects/aliens.dm index caf1ce83a1e..bf5cd4b83ff 100644 --- a/code/game/objects/effects/aliens.dm +++ b/code/game/objects/effects/aliens.dm @@ -109,8 +109,9 @@ healthcheck() -/obj/structure/alien/resin/attack_hand(mob/user) +/obj/structure/alien/resin/attack_hand(mob/living/user) if(HULK in user.mutations) + user.do_attack_animation() user.visible_message("[user] destroys [src]!") health = 0 healthcheck() @@ -120,7 +121,7 @@ return attack_hand(user) -/obj/structure/alien/resin/attack_alien(mob/user) +/obj/structure/alien/resin/attack_alien(mob/living/user) user.changeNext_move(CLICK_CD_MELEE) user.do_attack_animation() if(islarva(user)) @@ -133,7 +134,7 @@ healthcheck() -/obj/structure/alien/resin/attackby(obj/item/I, mob/user) +/obj/structure/alien/resin/attackby(obj/item/I, mob/living/user) user.changeNext_move(CLICK_CD_MELEE) health -= I.force playsound(loc, 'sound/effects/attackblob.ogg', 100, 1) diff --git a/code/game/objects/structures/crates_lockers/closets/fireaxe.dm b/code/game/objects/structures/crates_lockers/closets/fireaxe.dm index 78476924c2c..fec26505e11 100644 --- a/code/game/objects/structures/crates_lockers/closets/fireaxe.dm +++ b/code/game/objects/structures/crates_lockers/closets/fireaxe.dm @@ -14,7 +14,7 @@ locked = 1 var/smashed = 0 -/obj/structure/closet/fireaxecabinet/attackby(var/obj/item/O as obj, var/mob/user as mob) //Marker -Agouri +/obj/structure/closet/fireaxecabinet/attackby(var/obj/item/O as obj, var/mob/living/user as mob) //Marker -Agouri //..() //That's very useful, Erro var/hasaxe = 0 //gonna come in handy later~ diff --git a/code/game/objects/structures/grille.dm b/code/game/objects/structures/grille.dm index 358a6a3d088..74e6482c59d 100644 --- a/code/game/objects/structures/grille.dm +++ b/code/game/objects/structures/grille.dm @@ -25,8 +25,9 @@ /obj/structure/grille/attack_paw(mob/user as mob) attack_hand(user) -/obj/structure/grille/attack_hand(mob/user as mob) +/obj/structure/grille/attack_hand(mob/living/user as mob) user.changeNext_move(CLICK_CD_MELEE) + user.do_attack_animation() playsound(loc, 'sound/effects/grillehit.ogg', 80, 1) user.visible_message("[user] hits [src].", \ "You hit [src].", \ @@ -40,7 +41,7 @@ health -= rand(1,2) healthcheck() -/obj/structure/grille/attack_alien(mob/user as mob) +/obj/structure/grille/attack_alien(mob/living/user as mob) user.do_attack_animation() if(istype(user, /mob/living/carbon/alien/larva)) return user.changeNext_move(CLICK_CD_MELEE) diff --git a/code/game/objects/structures/mirror.dm b/code/game/objects/structures/mirror.dm index bed5a4edd1b..de262179005 100644 --- a/code/game/objects/structures/mirror.dm +++ b/code/game/objects/structures/mirror.dm @@ -56,7 +56,7 @@ ..() -/obj/structure/mirror/attackby(obj/item/I as obj, mob/user as mob) +/obj/structure/mirror/attackby(obj/item/I as obj, mob/living/user as mob) user.do_attack_animation() if(shattered) playsound(src.loc, 'sound/effects/hit_on_shattered_glass.ogg', 70, 1) @@ -70,7 +70,7 @@ playsound(src.loc, 'sound/effects/Glasshit.ogg', 70, 1) -/obj/structure/mirror/attack_alien(mob/user as mob) +/obj/structure/mirror/attack_alien(mob/living/user as mob) user.do_attack_animation() if(islarva(user)) return if(shattered) @@ -80,7 +80,7 @@ shatter() -/obj/structure/mirror/attack_animal(mob/user as mob) +/obj/structure/mirror/attack_animal(mob/living/user as mob) if(!isanimal(user)) return var/mob/living/simple_animal/M = user if(M.melee_damage_upper <= 0) return @@ -92,7 +92,7 @@ shatter() -/obj/structure/mirror/attack_slime(mob/user as mob) +/obj/structure/mirror/attack_slime(mob/living/user as mob) user.do_attack_animation() if(shattered) playsound(src.loc, 'sound/effects/hit_on_shattered_glass.ogg', 70, 1) diff --git a/code/game/objects/structures/stool_bed_chair_nest/bed.dm b/code/game/objects/structures/stool_bed_chair_nest/bed.dm index f4a0a0a6ed9..2989edb780f 100644 --- a/code/game/objects/structures/stool_bed_chair_nest/bed.dm +++ b/code/game/objects/structures/stool_bed_chair_nest/bed.dm @@ -152,11 +152,14 @@ if(buckled_mob) density = 1 icon_state = "up" - M.pixel_y += buckled_pixel_y_offset + M.pixel_y = initial(M.pixel_y) else density = 0 icon_state = "down" - M.pixel_y -= buckled_pixel_y_offset + M.pixel_y = initial(M.pixel_y) + if(M.lying) + M.pixel_y -= buckled_pixel_y_offset + /obj/item/roller diff --git a/code/game/objects/structures/tables_racks.dm b/code/game/objects/structures/tables_racks.dm index 3207655d0e0..30d82ea025e 100644 --- a/code/game/objects/structures/tables_racks.dm +++ b/code/game/objects/structures/tables_racks.dm @@ -203,7 +203,7 @@ qdel(src) return -/obj/structure/table/attack_paw(mob/user) +/obj/structure/table/attack_paw(mob/living/user) if(HULK in user.mutations) user.do_attack_animation() user.say(pick(";RAAAAAAAARGH!", ";HNNNNNNNNNGGGGGGH!", ";GWAAAAAAAARRRHHH!", "NNNNNNNNGGGGGGGGHH!", ";AAAAAAARRRGH!" )) @@ -218,7 +218,7 @@ qdel(src) -/obj/structure/table/attack_alien(mob/user) +/obj/structure/table/attack_alien(mob/living/user) user.do_attack_animation() visible_message("[user] slices [src] apart!") if(istype(src, /obj/structure/table/reinforced)) @@ -247,7 +247,7 @@ -/obj/structure/table/attack_hand(mob/user) +/obj/structure/table/attack_hand(mob/living/user) if(HULK in user.mutations) user.do_attack_animation() visible_message("[user] smashes [src] apart!") @@ -509,8 +509,9 @@ Destroy type values: return 1 -/obj/structure/rack/attack_hand(mob/user) +/obj/structure/rack/attack_hand(mob/living/user) if(HULK in user.mutations) + user.do_attack_animation() visible_message("[user] smashes [src] apart!") user.say(pick(";RAAAAAAAARGH!", ";HNNNNNNNNNGGGGGGH!", ";GWAAAAAAAARRRHHH!", "NNNNNNNNGGGGGGGGHH!", ";AAAAAAARRRGH!" )) new /obj/item/weapon/rack_parts(loc) @@ -518,7 +519,7 @@ Destroy type values: qdel(src) -/obj/structure/rack/attack_paw(mob/user) +/obj/structure/rack/attack_paw(mob/living/user) if(HULK in user.mutations) user.do_attack_animation() user.say(pick(";RAAAAAAAARGH!", ";HNNNNNNNNNGGGGGGH!", ";GWAAAAAAAARRRHHH!", "NNNNNNNNGGGGGGGGHH!", ";AAAAAAARRRGH!" )) @@ -528,7 +529,7 @@ Destroy type values: qdel(src) -/obj/structure/rack/attack_alien(mob/user) +/obj/structure/rack/attack_alien(mob/living/user) user.do_attack_animation() visible_message("[user] slices [src] apart!") new /obj/item/weapon/rack_parts(loc) diff --git a/code/game/objects/structures/window.dm b/code/game/objects/structures/window.dm index d5b56277109..ea2917bc549 100644 --- a/code/game/objects/structures/window.dm +++ b/code/game/objects/structures/window.dm @@ -134,12 +134,12 @@ playsound(loc, 'sound/effects/Glasshit.ogg', 100, 1) -/obj/structure/window/attack_alien(mob/user as mob) +/obj/structure/window/attack_alien(mob/living/user as mob) user.do_attack_animation() if(islarva(user)) return attack_generic(user, 15) -/obj/structure/window/attack_animal(mob/user as mob) +/obj/structure/window/attack_animal(mob/living/user as mob) if(!isanimal(user)) return var/mob/living/simple_animal/M = user M.do_attack_animation() @@ -153,7 +153,7 @@ attack_generic(user, rand(10, 15)) -/obj/structure/window/attackby(obj/item/I, mob/user) +/obj/structure/window/attackby(obj/item/I, mob/living/user) if(!can_be_reached(user)) return 1 //returning 1 will skip the afterattack() add_fingerprint(user) diff --git a/code/game/turfs/simulated/walls.dm b/code/game/turfs/simulated/walls.dm index 393ce212b30..87672e572ab 100644 --- a/code/game/turfs/simulated/walls.dm +++ b/code/game/turfs/simulated/walls.dm @@ -92,7 +92,7 @@ if(prob(50)) dismantle_wall() -/turf/simulated/wall/attack_paw(mob/user as mob) +/turf/simulated/wall/attack_paw(mob/living/user as mob) user.changeNext_move(CLICK_CD_MELEE) if ((HULK in user.mutations)) user.do_attack_animation() diff --git a/code/modules/events/ninja.dm b/code/modules/events/ninja.dm index a4fd918c832..d16688cea88 100644 --- a/code/modules/events/ninja.dm +++ b/code/modules/events/ninja.dm @@ -2721,7 +2721,7 @@ It is possible to destroy the net by the occupant or someone else. /obj/effect/energy_net/attack_paw(mob/user) return attack_hand() -/obj/effect/energy_net/attack_alien(mob/user as mob) +/obj/effect/energy_net/attack_alien(mob/living/user as mob) user.do_attack_animation() if (islarva(user)) return diff --git a/code/modules/events/spacevine.dm b/code/modules/events/spacevine.dm index c9690af0545..9c049f846dc 100644 --- a/code/modules/events/spacevine.dm +++ b/code/modules/events/spacevine.dm @@ -301,7 +301,7 @@ manual_unbuckle(user) -/obj/effect/spacevine/attack_paw(mob/user as mob) +/obj/effect/spacevine/attack_paw(mob/living/user as mob) user.do_attack_animation() for(var/datum/spacevine_mutation/SM in mutations) SM.on_hit(src, user) diff --git a/code/modules/mob/living/carbon/human/human_attackpaw.dm b/code/modules/mob/living/carbon/human/human_attackpaw.dm index ea2a2837c70..fd42c47cd5f 100644 --- a/code/modules/mob/living/carbon/human/human_attackpaw.dm +++ b/code/modules/mob/living/carbon/human/human_attackpaw.dm @@ -1,4 +1,4 @@ -/mob/living/carbon/human/attack_paw(mob/M as mob) +/mob/living/carbon/human/attack_paw(mob/living/M as mob) ..() if (M.a_intent == "help") help_shake_act(M) diff --git a/code/modules/mob/living/carbon/human/life.dm b/code/modules/mob/living/carbon/human/life.dm index ae583d7d2a6..be587de0152 100644 --- a/code/modules/mob/living/carbon/human/life.dm +++ b/code/modules/mob/living/carbon/human/life.dm @@ -149,7 +149,7 @@ var/x_offset = pixel_x + rand(-2,2) //Should probably be moved into the twitch emote at some point. var/y_offset = pixel_y + rand(-1,1) animate(src, pixel_x = pixel_x + x_offset, pixel_y = pixel_y + y_offset, time = 1) - animate(pixel_x = pixel_x - x_offset, pixel_y = pixel_y - y_offset, time = 1) + animate(pixel_x = initial(pixel_x) , pixel_y = initial(pixel_y), time = 1) if (disabilities & NERVOUS) if (prob(10)) stuttering = max(10, stuttering) @@ -568,7 +568,8 @@ var/pixel_y_diff = rand(-amplitude/3, amplitude/3) animate(src, pixel_x = pixel_x + pixel_x_diff, pixel_y = pixel_y + pixel_y_diff , time = 2, loop = 6) - animate(pixel_x = pixel_x - pixel_x_diff, pixel_y = pixel_y - pixel_y_diff, time = 2) + animate(pixel_x = initial(pixel_x) , pixel_y = initial(pixel_y) , time = 2) + floating = 0 // If we were without gravity, the bouncing animation got stopped, so we make sure we restart the bouncing after the next movement. jitteriness = max(jitteriness-1, 0) //Other diff --git a/code/modules/mob/living/carbon/monkey/monkey.dm b/code/modules/mob/living/carbon/monkey/monkey.dm index f36c0324151..9a7dea0277d 100644 --- a/code/modules/mob/living/carbon/monkey/monkey.dm +++ b/code/modules/mob/living/carbon/monkey/monkey.dm @@ -68,7 +68,7 @@ now_pushing = null -/mob/living/carbon/monkey/attack_paw(mob/M as mob) +/mob/living/carbon/monkey/attack_paw(mob/living/M as mob) ..() if (M.a_intent == "help") diff --git a/code/modules/mob/living/carbon/update_icons.dm b/code/modules/mob/living/carbon/update_icons.dm index ec32f437b12..6ad0c9fd88d 100644 --- a/code/modules/mob/living/carbon/update_icons.dm +++ b/code/modules/mob/living/carbon/update_icons.dm @@ -12,9 +12,10 @@ changed++ ntransform.TurnTo(lying_prev,lying) if(lying == 0) //Lying to standing - final_pixel_y += 6 + final_pixel_y = initial(pixel_y) else //if(lying != 0) if(lying_prev == 0) //Standing to lying + pixel_y = initial(pixel_y) final_pixel_y -= 6 if(dir & (EAST|WEST)) //Facing east or west final_dir = pick(NORTH, SOUTH) //So you fall on your side rather than your face or ass @@ -22,4 +23,5 @@ lying_prev = lying //so we don't try to animate until there's been another change. if(changed) - animate(src, transform = ntransform, time = 2, pixel_y = final_pixel_y, dir = final_dir, easing = EASE_IN|EASE_OUT) \ No newline at end of file + animate(src, transform = ntransform, time = 2, pixel_y = final_pixel_y, dir = final_dir, easing = EASE_IN|EASE_OUT) + floating = 0 // If we were without gravity, the bouncing animation got stopped, so we make sure we restart the bouncing after the next movement. \ No newline at end of file diff --git a/code/modules/mob/living/living.dm b/code/modules/mob/living/living.dm index aa843101ee9..ada80a01043 100644 --- a/code/modules/mob/living/living.dm +++ b/code/modules/mob/living/living.dm @@ -639,3 +639,15 @@ /mob/living/singularity_pull(S) step_towards(src,S) + +mob/living/proc/do_attack_animation() + var/pixel_x_diff = 0 + var/pixel_y_diff = 0 + switch(src.dir) + if(1) pixel_y_diff = 8 + if(2) pixel_y_diff = -8 + if(4) pixel_x_diff = 8 + if(8) pixel_x_diff = -8 + animate(src, pixel_x = pixel_x + pixel_x_diff, pixel_y = pixel_y + pixel_y_diff, time = 2) + animate(pixel_x = initial(pixel_x), pixel_y = initial(pixel_y), time = 2) + floating = 0 // If we were without gravity, the bouncing animation got stopped, so we make sure we restart the bouncing after the next movement. diff --git a/code/modules/mob/living/simple_animal/simple_animal.dm b/code/modules/mob/living/simple_animal/simple_animal.dm index bc26cb41821..9ee08f4a929 100644 --- a/code/modules/mob/living/simple_animal/simple_animal.dm +++ b/code/modules/mob/living/simple_animal/simple_animal.dm @@ -409,7 +409,7 @@ return -/mob/living/simple_animal/attackby(var/obj/item/O as obj, var/mob/user as mob) //Marker -Agouri +/mob/living/simple_animal/attackby(var/obj/item/O as obj, var/mob/living/user as mob) //Marker -Agouri if(istype(O, /obj/item/stack/medical)) if(stat != DEAD) diff --git a/code/modules/mob/mob.dm b/code/modules/mob/mob.dm index 7d6faad043c..02d5be17d96 100644 --- a/code/modules/mob/mob.dm +++ b/code/modules/mob/mob.dm @@ -126,18 +126,6 @@ var/next_mob_id = 0 for(var/mob/M in get_hearers_in_view(range, src)) M.show_message( message, 2, deaf_message, 1) - -mob/proc/do_attack_animation() - var/pixel_x_diff = 0 - var/pixel_y_diff = 0 - switch(src.dir) - if(1) pixel_y_diff = 8 - if(2) pixel_y_diff = -8 - if(4) pixel_x_diff = 8 - if(8) pixel_x_diff = -8 - animate(src, pixel_x = pixel_x + pixel_x_diff, pixel_y = pixel_y + pixel_y_diff, time = 2) - animate(pixel_x = initial(pixel_x), pixel_y = initial(pixel_y), time = 2) - /mob/proc/movement_delay() return 0 diff --git a/code/modules/power/apc.dm b/code/modules/power/apc.dm index 935ea6479e3..377f5a3cdb1 100644 --- a/code/modules/power/apc.dm +++ b/code/modules/power/apc.dm @@ -370,7 +370,7 @@ //attack with an item - open/close cover, insert cell, or (un)lock interface -/obj/machinery/power/apc/attackby(obj/item/W, mob/user) +/obj/machinery/power/apc/attackby(obj/item/W, mob/living/user) if (istype(user, /mob/living/silicon) && get_dist(src,user)>1) return src.attack_hand(user) diff --git a/code/modules/power/lighting.dm b/code/modules/power/lighting.dm index f9b81c9a158..4e3f91b410c 100644 --- a/code/modules/power/lighting.dm +++ b/code/modules/power/lighting.dm @@ -328,7 +328,7 @@ // attack with item - insert light (if right type), otherwise try to break the light -/obj/machinery/light/attackby(obj/item/W, mob/user) +/obj/machinery/light/attackby(obj/item/W, mob/living/user) //Light replacer code if(istype(W, /obj/item/device/lightreplacer)) From c4d07ee503627d2f8abb38a765a50702caa0ac68 Mon Sep 17 00:00:00 2001 From: Miauw Date: Mon, 3 Nov 2014 20:26:04 +0100 Subject: [PATCH 022/102] Makes spookoween things a bit nicer. --- code/modules/holiday/halloween.dm | 73 +++++++++++++------------------ 1 file changed, 30 insertions(+), 43 deletions(-) diff --git a/code/modules/holiday/halloween.dm b/code/modules/holiday/halloween.dm index 61dc44b8878..b60be9cb79e 100644 --- a/code/modules/holiday/halloween.dm +++ b/code/modules/holiday/halloween.dm @@ -88,7 +88,7 @@ trapped = HOWLING_GHOST return else - var/mob/living/carbon/human/H = new (loc) + var/mob/living/carbon/human/H = new(loc) H.makeSkeleton() H.health = 1e5 insert(H) @@ -100,64 +100,53 @@ if(!trapped) return - if(trapped == SPOOKY_SKELETON) + else if(trapped == SPOOKY_SKELETON) src.visible_message("BOO!"); - playsound(src.loc, pick('sound/effects/xylophone1.ogg','sound/effects/xylophone2.ogg','sound/effects/xylophone3.ogg','sound/spookoween/girlscream.ogg'), 300, 1) + playsound(loc, pick('sound/effects/xylophone1.ogg','sound/effects/xylophone2.ogg','sound/effects/xylophone3.ogg','sound/spookoween/girlscream.ogg'), 300, 1) trapped = 0 spawn(60) - if(trapped_mob && trapped_mob.loc && trapped_mob.loc != loc) - var/datum/effect/effect/system/harmless_smoke_spread/smoke = new + if(trapped_mob && trapped_mob.loc) + var/datum/effect/effect/system/harmless_smoke_spread/smoke = new() smoke.set_up(1,0, trapped_mob.loc, 0) smoke.start() - trapped_mob.loc = loc - if(gc_destroyed) qdel(trapped_mob) - return - src.close() - trapped = SPOOKY_SKELETON - return - if(trapped == ANGRY_FAITHLESS) + else if(trapped == HOWLING_GHOST) + src.visible_message("Woo Woo"); + playsound(src.loc, 'sound/spookoween/ghosty_wind.ogg', 300, 1) + new /mob/living/simple_animal/shade/howling_ghost (loc) + trapped = 0 + + else if(trapped == SCARY_BATS) + src.visible_message("Protect your hair!!!"); + playsound(src.loc, 'sound/spookoween/bats.ogg', 300, 1) + var/number = rand(2,5) + for(var/i=0,i < number,i++) + new /mob/living/simple_animal/hostile/retaliate/bat (loc) + trapped = 0 + + else if(trapped == ANGRY_FAITHLESS) src.visible_message("The closet bursts open!"); - src.visible_message("THIS BEING RADIATES PURE EVIL! YOU BETTER RUN !!!"); + src.visible_message("THIS BEING RADIATES PURE EVIL! YOU BETTER RUN!!!"); playsound(src.loc, 'sound/hallucinations/wail.ogg', 300, 1) var/mob/living/simple_animal/hostile/faithless/F = new (loc) - F.health =1e5 + F.health = 1e5 F.stance = HOSTILE_STANCE_ATTACK F.GiveTarget(usr) trapped = 0 - qdel(src) spawn(120) if(F && F.loc) var/datum/effect/effect/system/harmless_smoke_spread/smoke = new smoke.set_up(1,0, F.loc, 0) smoke.start() qdel(F) - return - if(trapped == SCARY_BATS) - src.visible_message("Protect your hairs !!!"); - playsound(src.loc, 'sound/spookoween/bats.ogg', 300, 1) - var/number = rand(1,4) - for(var/i=0,i < number,i++) - new /mob/living/simple_animal/hostile/retaliate/bat (loc) - trapped = 0 - return - - if(trapped == INSANE_CLOWN) + else if(trapped == INSANE_CLOWN) src.visible_message("..."); playsound(src.loc, 'sound/spookoween/scary_clown_appear.ogg', 300, 1) var/mob/living/simple_animal/hostile/retaliate/clown/insane/IC = new (loc) IC.GiveTarget(usr) trapped = 0 - return - - if(trapped == HOWLING_GHOST) - src.visible_message("Woo Woo"); - playsound(src.loc, 'sound/spookoween/ghosty_wind.ogg', 300, 1) - new /mob/living/simple_animal/shade/howling_ghost (loc) - trapped = 0 - return //don't spawn in crates /obj/structure/closet/crate/trigger_spooky_trap() @@ -172,8 +161,8 @@ //////////////////// /mob/living/simple_animal/shade/howling_ghost - name ="Ghost" - real_name = "Ghost" + name = "ghost" + real_name = "ghost" icon = 'icons/mob/mob.dmi' maxHealth = 1e6 health = 1e6 @@ -236,7 +225,7 @@ /mob/living/simple_animal/hostile/retaliate/clown/insane name = "Insane Clown" - desc = "May the HonkMother have mercy..." + desc = "Some clowns do not manage to be accepted, and go insane. This is one of them." icon_state = "scary_clown" icon_living = "scary_clown" icon_dead = "scary_clown" @@ -248,7 +237,6 @@ heat_damage_per_tick = 0 cold_damage_per_tick = 0 unsuitable_atmos_damage = 0 - var/timer /mob/living/simple_animal/hostile/retaliate/clown/insane/New() @@ -295,12 +283,11 @@ /mob/living/simple_animal/hostile/retaliate/clown/insane/attackby(var/obj/item/O as obj, var/mob/user as mob) if(istype(O,/obj/item/weapon/nullrod)) if(prob(5)) - visible_message("[src] finally found the peace it deserves. HONK for the HonkMother !"); + visible_message("[src] finally found the peace it deserves. You hear honks echoing off into the distance.") playsound(src.loc, 'sound/spookoween/insane_low_laugh.ogg', 300, 1) qdel(src) - return else - visible_message("It seems to be resisting the effect!!!"); - return - ..() + visible_message("It seems to be resisting the effect!") + else + ..() From 319da5bf0e8d69f7a32c3a9e6ed16b6db53b6b05 Mon Sep 17 00:00:00 2001 From: tkdrg Date: Mon, 3 Nov 2014 19:43:00 -0300 Subject: [PATCH 023/102] Fixes infine plating rods bug --- code/game/turfs/simulated/floor/plating.dm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/code/game/turfs/simulated/floor/plating.dm b/code/game/turfs/simulated/floor/plating.dm index a265b2b55ab..d02e1f06c23 100644 --- a/code/game/turfs/simulated/floor/plating.dm +++ b/code/game/turfs/simulated/floor/plating.dm @@ -106,7 +106,7 @@ playsound(src, 'sound/items/Ratchet.ogg', 80, 1) if(do_after(user, 30)) new /obj/item/stack/rods(src, 2) - make_plating() + make_floor(/turf/simulated/floor/plating) return /turf/simulated/floor/engine/cult @@ -151,4 +151,4 @@ /turf/simulated/floor/airless/New() ..() - name = "floor" \ No newline at end of file + name = "floor" From 827dcac56a8a2a7fc8385af81b08278b52612724 Mon Sep 17 00:00:00 2001 From: paprka Date: Mon, 3 Nov 2014 23:47:20 -0800 Subject: [PATCH 024/102] last minute changes to gun for massive realism --- code/modules/projectiles/ammunition.dm | 7 +++++++ code/modules/projectiles/guns/projectile.dm | 6 ++++++ 2 files changed, 13 insertions(+) diff --git a/code/modules/projectiles/ammunition.dm b/code/modules/projectiles/ammunition.dm index 1a55fd3fcf4..10592c5e40e 100644 --- a/code/modules/projectiles/ammunition.dm +++ b/code/modules/projectiles/ammunition.dm @@ -107,6 +107,13 @@ return num_loaded return 0 +/obj/item/ammo_box/attack_self(mob/user as mob) + var/obj/item/ammo_casing/A = get_round() + if(A) + user.put_in_hands(A) + user << "You remove a round from \the [src]!" + update_icon() + /obj/item/ammo_box/update_icon() switch(multiple_sprites) if(1) diff --git a/code/modules/projectiles/guns/projectile.dm b/code/modules/projectiles/guns/projectile.dm index 01d1f6f354f..0b6738fb9de 100644 --- a/code/modules/projectiles/guns/projectile.dm +++ b/code/modules/projectiles/guns/projectile.dm @@ -57,12 +57,18 @@ return 0 /obj/item/weapon/gun/projectile/attack_self(mob/living/user as mob) + var/obj/item/ammo_casing/AC = chambered //Find chambered round if (magazine) magazine.loc = get_turf(src.loc) user.put_in_hands(magazine) magazine.update_icon() magazine = null user << "You pull the magazine out of \the [src]." + else if(chambered) + AC.loc = get_turf(src) + AC.SpinAnimation(10, 1) + chambered = null + user << "You unload the round from \the [src]'s chamber." else user << "There's no magazine in \the [src]." update_icon() From 377f8bd1fa31e678708d7c64c2481634816d2ebc Mon Sep 17 00:00:00 2001 From: hornygranny Date: Tue, 4 Nov 2014 00:51:58 -0800 Subject: [PATCH 025/102] Revert "Contaiment fields will now bounce off structures, machinery and mechs" --- .../power/singularity/containment_field.dm | 30 ++++++------------- 1 file changed, 9 insertions(+), 21 deletions(-) diff --git a/code/modules/power/singularity/containment_field.dm b/code/modules/power/singularity/containment_field.dm index 9b8e123e5ce..7a7e4bbd7c5 100644 --- a/code/modules/power/singularity/containment_field.dm +++ b/code/modules/power/singularity/containment_field.dm @@ -37,14 +37,10 @@ return 0 -/obj/machinery/field/containment/Crossed(mob/mover as mob) +/obj/machinery/field/containment/Crossed(atom/movable/mover) if(isliving(mover)) shock(mover) -/obj/machinery/field/containment/Crossed(obj/mover as obj) - if(istype(mover, /obj/machinery) || istype(mover, /obj/structure)) - bump(mover) - /obj/machinery/field/containment/proc/set_master(var/master1,var/master2) if(!master1 || !master2) return 0 @@ -64,22 +60,20 @@ /obj/machinery/field var/hasShocked = 0 //Used to add a delay between shocks. In some cases this used to crash servers by spawning hundreds of sparks every second. -/obj/machinery/field/CanPass(mob/mover as mob, turf/target, height=0) +/obj/machinery/field/CanPass(atom/movable/mover, turf/target, height=0) if(isliving(mover)) // Don't let mobs through shock(mover) return 0 return ..() -/obj/machinery/field/CanPass(obj/mover as obj, turf/target, height=0) - if(istype(mover, /obj/machinery) || istype(mover, /obj/structure)) - bump(mover) - return 0 - return ..() - /obj/machinery/field/proc/shock(mob/living/user as mob) if(hasShocked) return 0 if(isliving(user)) + var/datum/effect/effect/system/spark_spread/s = new /datum/effect/effect/system/spark_spread + s.set_up(5, 1, user.loc) + s.start() + hasShocked = 1 var/shock_damage = min(rand(30,40),rand(30,40)) @@ -101,15 +95,9 @@ "You hear an electrical crack.") user.updatehealth() - bump(user) + var/atom/target = get_edge_target_turf(user, get_dir(src, get_step_away(user, src))) + user.throw_at(target, 200, 4) spawn(5) hasShocked = 0 - return - -/obj/machinery/field/proc/bump(atom/movable/AM as mob|obj) - var/datum/effect/effect/system/spark_spread/s = new /datum/effect/effect/system/spark_spread - s.set_up(5, 1, AM.loc) - s.start() - var/atom/target = get_edge_target_turf(AM, get_dir(src, get_step_away(AM, src))) - AM.throw_at(target, 200, 4) + return \ No newline at end of file From b7f0287469965c75a12a4dd7344053b00f6770ba Mon Sep 17 00:00:00 2001 From: Hornygranny Date: Tue, 4 Nov 2014 01:10:18 -0800 Subject: [PATCH 026/102] fixes atmospherics not working --- code/ATMOSPHERICS/atmospherics.dm | 1 + 1 file changed, 1 insertion(+) diff --git a/code/ATMOSPHERICS/atmospherics.dm b/code/ATMOSPHERICS/atmospherics.dm index 24dcd596caf..41f2276b61f 100644 --- a/code/ATMOSPHERICS/atmospherics.dm +++ b/code/ATMOSPHERICS/atmospherics.dm @@ -30,6 +30,7 @@ Pipelines + Other Objects -> Pipe network */ /obj/machinery/atmospherics/New() + ..() if(can_unwrench) stored = new(src, make_from=src) From ed30c9846ab9c5a8517537f14e549ce133caea60 Mon Sep 17 00:00:00 2001 From: Jordie0608 Date: Wed, 5 Nov 2014 01:20:49 +1100 Subject: [PATCH 027/102] Fixes runtime when coloring removed pda and adds auto-ejection --- code/game/machinery/PDApainter.dm | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/code/game/machinery/PDApainter.dm b/code/game/machinery/PDApainter.dm index 5bc8aeaa702..2d492dfccfc 100644 --- a/code/game/machinery/PDApainter.dm +++ b/code/game/machinery/PDApainter.dm @@ -67,9 +67,11 @@ return if(!in_range(src, user)) return - + if(!storedpda)//is the pda still there? + return storedpda.icon_state = P.icon_state storedpda.desc = P.desc + ejectpda() else user << "The [src] is empty." From ee478ef2863793068d50799cd9330316f9a2eaa7 Mon Sep 17 00:00:00 2001 From: WJohn Date: Tue, 4 Nov 2014 11:22:38 -0500 Subject: [PATCH 028/102] Map fixes Improves AI sat a bit to use more dark tiling on box. Fixes #5513 Fixes #4505 --- _maps/map_files/tgstation.2.1.3.dmm | 203 ++++++++++++++-------------- 1 file changed, 102 insertions(+), 101 deletions(-) diff --git a/_maps/map_files/tgstation.2.1.3.dmm b/_maps/map_files/tgstation.2.1.3.dmm index de268ca2db9..326bda483f4 100644 --- a/_maps/map_files/tgstation.2.1.3.dmm +++ b/_maps/map_files/tgstation.2.1.3.dmm @@ -2041,7 +2041,7 @@ "aNm" = (/obj/item/device/radio/intercom{broadcasting = 1; frequency = 1480; name = "Confessional Intercom"; pixel_x = 25},/obj/structure/stool/bed/chair,/turf/simulated/floor{icon_state = "dark"},/area/chapel/main) "aNn" = (/obj/structure/stool/bed/chair,/turf/simulated/floor{icon_state = "red"; dir = 9},/area/hallway/secondary/exit) "aNo" = (/obj/structure/stool/bed/chair,/turf/simulated/floor{icon_state = "red"; dir = 1},/area/hallway/secondary/exit) -"aNp" = (/obj/structure/table/reinforced,/obj/machinery/door/window/northleft{dir = 8; icon_state = "left"; name = "Reception Window"; req_access_txt = "0"},/obj/machinery/door/window/brigdoor{base_state = "rightsecure"; dir = 4; icon_state = "rightsecure"; name = "Head of Personnel's Desk"; req_access = null; req_access_txt = "57"},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/door/poddoor{density = 0; icon_state = "open"; id = "hop"; layer = 2.9; name = "Privacy Door"; opacity = 0},/obj/machinery/flasher{id = "hopflash"; pixel_x = 0; pixel_y = 28},/turf/simulated/floor,/area/crew_quarters/heads) +"aNp" = (/obj/machinery/conveyor_switch/oneway{convdir = -1; id = "packageExternal"},/turf/simulated/floor{icon_state = "arrival"; dir = 4},/area/quartermaster/office) "aNq" = (/obj/structure/stool/bed/chair,/turf/simulated/floor{dir = 1; icon_state = "warning"},/area/hallway/secondary/exit) "aNr" = (/obj/structure/stool/bed/chair,/turf/simulated/floor{dir = 5; icon_state = "warning"},/area/hallway/secondary/exit) "aNs" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating,/area/hallway/secondary/exit) @@ -2940,7 +2940,7 @@ "beB" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 8; on = 1},/turf/simulated/floor,/area/atmos) "beC" = (/obj/machinery/alarm{dir = 4; icon_state = "alarm0"; pixel_x = -22},/turf/simulated/floor{dir = 8; icon_state = "brown"},/area/quartermaster/office) "beD" = (/obj/structure/table/woodentable,/obj/structure/mirror{pixel_x = -28},/obj/item/weapon/lipstick/random,/turf/simulated/floor{tag = "icon-redbluefull"; icon_state = "redbluefull"},/area/crew_quarters/theatre) -"beE" = (/obj/item/weapon/paper_bin{pixel_x = -3; pixel_y = 7},/obj/structure/table/reinforced,/turf/simulated/floor{icon_state = "arrival"; dir = 4},/area/quartermaster/office) +"beE" = (/obj/structure/table/reinforced,/obj/machinery/door/firedoor/border_only{dir = 4; name = "Firelock East"},/obj/machinery/door/window/westleft{name = "Delivery Desk"; req_access_txt = "50"},/turf/simulated/floor{icon_state = "bot"},/area/quartermaster/office) "beF" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating,/area/quartermaster/office) "beG" = (/turf/simulated/floor{dir = 8; icon_state = "browncorner"},/area/hallway/primary/central) "beH" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor/plating,/area/atmos) @@ -3010,8 +3010,8 @@ "bfT" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/manifold/supply/hidden{tag = "icon-manifold-b-f (NORTH)"; dir = 1},/turf/simulated/floor/plating,/area/maintenance/asmaint) "bfU" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{tag = "icon-manifold-b-f (NORTH)"; dir = 1},/turf/simulated/floor/carpet,/area/library) "bfV" = (/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/turf/simulated/floor/plating,/area/maintenance/asmaint) -"bfW" = (/obj/structure/table/reinforced,/turf/simulated/floor{icon_state = "arrival"; dir = 4},/area/quartermaster/office) -"bfX" = (/obj/machinery/door/firedoor/border_only{dir = 8; name = "Firelock West"},/turf/simulated/floor{icon_state = "bot"},/area/quartermaster/office) +"bfW" = (/obj/structure/stool/bed/chair{dir = 4},/obj/effect/landmark/start{name = "Cargo Technician"},/turf/simulated/floor{icon_state = "arrival"; dir = 4},/area/quartermaster/office) +"bfX" = (/obj/structure/table/reinforced,/obj/item/weapon/paper_bin{pixel_x = -3; pixel_y = 7},/obj/item/weapon/folder/yellow,/obj/item/weapon/pen{pixel_x = 4; pixel_y = 4},/turf/simulated/floor{icon_state = "arrival"; dir = 4},/area/quartermaster/office) "bfY" = (/obj/machinery/camera{c_tag = "Central Hallway West"; dir = 8},/turf/simulated/floor{icon_state = "bluecorner"},/area/hallway/primary/central) "bfZ" = (/obj/machinery/door/window/eastright{dir = 1; name = "Bridge Delivery"; req_access_txt = "19"},/turf/simulated/floor{icon_state = "delivery"},/area/bridge/meeting_room) "bga" = (/obj/effect/decal/cleanable/cobweb2,/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/machinery/power/apc{dir = 4; name = "Medbay APC"; pixel_x = 24; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor/plating,/area/medical/medbay) @@ -3085,7 +3085,7 @@ "bhq" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/junction,/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor/plating,/area/maintenance/asmaint) "bhr" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{tag = "icon-manifold-b-f (NORTH)"; dir = 1},/turf/simulated/floor,/area/crew_quarters/locker) "bhs" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 10},/turf/simulated/floor/plating,/area/maintenance/asmaint) -"bht" = (/obj/item/weapon/folder/yellow,/obj/item/weapon/pen{pixel_x = 4; pixel_y = 4},/obj/structure/table/reinforced,/turf/simulated/floor{icon_state = "arrival"; dir = 4},/area/quartermaster/office) +"bht" = (/obj/structure/table/reinforced,/obj/machinery/door/window/northleft{dir = 8; icon_state = "left"; name = "Reception Window"; req_access_txt = "0"},/obj/machinery/door/window/brigdoor{base_state = "rightsecure"; dir = 4; icon_state = "rightsecure"; name = "Head of Personnel's Desk"; req_access = null; req_access_txt = "57"},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/flasher{id = "hopflash"; pixel_x = 0; pixel_y = 28},/obj/machinery/door/poddoor/shutters/preopen{id = "hop"; layer = 2.9; name = "Privacy Shutters"},/turf/simulated/floor,/area/crew_quarters/heads) "bhu" = (/obj/structure/extinguisher_cabinet{pixel_x = 27; pixel_y = 0},/turf/simulated/floor{icon_state = "bluecorner"},/area/hallway/primary/central) "bhv" = (/obj/machinery/navbeacon{codes_txt = "delivery;dir=1"; dir = 1; freq = 1400; location = "Bridge"},/obj/structure/plasticflaps{opacity = 1},/turf/simulated/floor{icon_state = "bot"},/area/bridge/meeting_room) "bhw" = (/obj/machinery/power/apc{dir = 8; name = "Xenobiology APC"; pixel_x = -25},/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/structure/cable,/turf/simulated/floor{icon_state = "white"},/area/toxins/xenobiology) @@ -3550,7 +3550,7 @@ "bqn" = (/turf/simulated/floor{icon_state = "redcorner"; dir = 4},/area/hallway/primary/central) "bqo" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plating,/area/hallway/primary/central) "bqp" = (/turf/simulated/floor{icon_state = "bot"},/area/hallway/primary/central) -"bqq" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/machinery/door/poddoor{density = 0; icon_state = "open"; id = "hop"; layer = 2.9; name = "Privacy Door"; opacity = 0},/turf/simulated/floor/plating,/area/crew_quarters/heads) +"bqq" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/machinery/door/poddoor/shutters/preopen{id = "hop"; layer = 2.9; name = "Privacy Shutters"},/turf/simulated/floor/plating,/area/crew_quarters/heads) "bqr" = (/obj/machinery/computer/card,/turf/simulated/floor{icon_state = "blue"; dir = 10},/area/crew_quarters/heads) "bqs" = (/obj/machinery/door/airlock/maintenance{req_access_txt = "12"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor/plating,/area/maintenance/asmaint2) "bqt" = (/obj/machinery/hologram/holopad,/turf/simulated/floor/carpet,/area/crew_quarters/heads) @@ -3614,7 +3614,7 @@ "brz" = (/obj/structure/table,/obj/machinery/requests_console{department = "Cargo Bay"; departmentType = 2; pixel_x = -30; pixel_y = 0},/obj/item/device/multitool,/obj/machinery/camera{c_tag = "Cargo Office"; dir = 4; network = list("SS13")},/turf/simulated/floor,/area/quartermaster/office) "brA" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor/plating,/area/medical/virology) "brB" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor,/area/hallway/primary/central) -"brC" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/sign/securearea{desc = "A warning sign which reads 'HIGH VOLTAGE'"; icon_state = "shock"; name = "HIGH VOLTAGE"; pixel_y = -32},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/cable,/obj/machinery/door/poddoor{density = 0; icon_state = "open"; id = "hop"; layer = 2.9; name = "Privacy Door"; opacity = 0},/turf/simulated/floor/plating,/area/crew_quarters/heads) +"brC" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/sign/securearea{desc = "A warning sign which reads 'HIGH VOLTAGE'"; icon_state = "shock"; name = "HIGH VOLTAGE"; pixel_y = -32},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/cable,/obj/machinery/door/poddoor/shutters/preopen{id = "hop"; layer = 2.9; name = "Privacy Shutters"},/turf/simulated/floor/plating,/area/crew_quarters/heads) "brD" = (/obj/structure/closet/secure_closet/hop,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/simulated/floor,/area/crew_quarters/heads) "brE" = (/obj/structure/table,/obj/item/weapon/storage/firstaid/o2{pixel_x = 2; pixel_y = 6},/obj/item/weapon/storage/firstaid/o2{pixel_x = -2; pixel_y = 4},/turf/simulated/floor{icon_state = "white"},/area/medical/sleeper) "brF" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/door/firedoor/border_only{dir = 2; name = "hazard door south"},/obj/machinery/door/airlock/virology{autoclose = 0; frequency = 1449; icon_state = "door_locked"; id_tag = "virology_airlock_interior"; locked = 1; name = "Virology Interior Airlock"; req_access_txt = "39"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor{icon_state = "white"},/area/medical/virology) @@ -5454,8 +5454,8 @@ "caT" = (/obj/structure/reagent_dispensers/watertank,/turf/simulated/floor/plating,/area/maintenance/asmaint) "caU" = (/obj/structure/target_stake,/obj/effect/decal/cleanable/cobweb,/turf/simulated/floor/plating,/area/toxins/misc_lab) "caV" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 5},/turf/simulated/wall/r_wall,/area/medical/virology) -"caW" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'HIGH VOLTAGE'"; icon_state = "shock"; name = "HIGH VOLTAGE"; pixel_x = -32; pixel_y = 0},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor,/area/engine/engineering) -"caX" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment,/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor,/area/engine/engineering) +"caW" = (/obj/structure/window/reinforced,/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{tag = "icon-manifold-r-f (WEST)"; dir = 8},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/simulated/floor{icon_state = "dark"},/area/engine/engine_smes) +"caX" = (/obj/machinery/power/port_gen/pacman,/obj/machinery/atmospherics/pipe/manifold/supply/hidden{tag = "icon-manifold-b-f (WEST)"; dir = 8},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor{dir = 9; icon_state = "warning"},/area/engine/engine_smes) "caY" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor{dir = 8; icon_state = "brown"},/area/quartermaster/office) "caZ" = (/obj/structure/closet/emcloset,/obj/effect/decal/cleanable/cobweb,/turf/simulated/floor/plating,/area/maintenance/asmaint) "cba" = (/obj/structure/closet/firecloset,/turf/simulated/floor/plating,/area/maintenance/asmaint2) @@ -5606,7 +5606,7 @@ "cdP" = (/obj/structure/table,/obj/item/weapon/book/manual/wiki/security_space_law,/turf/simulated/floor{icon_state = "red"},/area/security/checkpoint/engineering) "cdQ" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plating,/area/maintenance/asmaint) "cdR" = (/obj/machinery/firealarm{dir = 8; pixel_x = -24},/obj/machinery/atmospherics/unary/vent_scrubber{on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/simulated/floor{dir = 8; icon_state = "brown"},/area/quartermaster/office) -"cdS" = (/obj/structure/stool/bed/chair{dir = 4},/obj/effect/landmark/start{name = "Cargo Technician"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor,/area/quartermaster/office) +"cdS" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/simulated/floor{dir = 1; icon_state = "warning"},/area/engine/engine_smes) "cdT" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{tag = "icon-manifold-r-f (EAST)"; dir = 4},/turf/simulated/floor/plating,/area/maintenance/asmaint) "cdU" = (/obj/structure/disposalpipe/segment,/turf/simulated/floor/plating,/area/maintenance/asmaint) "cdV" = (/obj/structure/disposalpipe/segment,/obj/machinery/door/airlock/maintenance{req_access_txt = "12"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor/plating,/area/maintenance/asmaint2) @@ -5686,7 +5686,7 @@ "cfr" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden,/turf/simulated/floor/plating,/area/maintenance/port) "cfs" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/machinery/light/small{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor/plating,/area/aisat) "cft" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/machinery/light/small{dir = 4},/obj/machinery/camera{c_tag = "MiniSat Exterior North West"; dir = 8; network = list("MiniSat"); pixel_x = 0; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor/plating,/area/aisat) -"cfu" = (/obj/machinery/firealarm{dir = 8; pixel_x = -24},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor{icon_state = "dark"},/area/turret_protected/aisat_interior) +"cfu" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor{dir = 1; icon_state = "warning"},/area/engine/engine_smes) "cfv" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/machinery/light/small{dir = 8},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/camera{c_tag = "MiniSat Exterior North East"; dir = 4; network = list("MiniSat"); pixel_x = 0; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor/plating,/area/aisat) "cfw" = (/obj/machinery/power/apc{aidisabled = 0; cell_type = 2500; dir = 4; name = "MiniSat Antechamber APC"; pixel_x = 29; pixel_y = 0},/obj/structure/cable,/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{tag = "icon-manifold-r-f (EAST)"; dir = 4},/turf/simulated/floor{icon_state = "dark"},/area/turret_protected/aisat_interior) "cfx" = (/obj/machinery/alarm{dir = 4; pixel_x = -23; pixel_y = 0},/obj/machinery/atmospherics/pipe/manifold/supply/hidden{tag = "icon-manifold-b-f (WEST)"; dir = 8},/turf/simulated/floor{icon_state = "dark"},/area/turret_protected/aisat_interior) @@ -5694,8 +5694,8 @@ "cfz" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor/plating,/area/maintenance/port) "cfA" = (/obj/machinery/light{dir = 1},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{tag = "icon-manifold-r-f (NORTH)"; dir = 1},/turf/simulated/floor{icon_state = "dark"},/area/turret_protected/aisat_interior) "cfB" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 5},/turf/simulated/floor{icon_state = "dark"},/area/turret_protected/aisat_interior) -"cfC" = (/obj/machinery/light,/obj/machinery/turretid{control_area = "\improper AI Satellite Antechamber"; enabled = 1; icon_state = "control_standby"; name = "Antechamber Turret Control"; pixel_x = 0; pixel_y = -24; req_access = list(65)},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor,/area/aisat) -"cfD" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor,/area/aisat) +"cfC" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor{dir = 5; icon_state = "warning"},/area/engine/engine_smes) +"cfD" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor{dir = 1; icon_state = "warning"},/area/engine/engine_smes) "cfE" = (/obj/structure/stool/bed/chair,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor{icon_state = "white"},/area/medical/medbay) "cfF" = (/obj/machinery/atmospherics/trinary/filter{dir = 2; filter_type = 2; on = 1},/turf/simulated/floor,/area/atmos) "cfG" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/machinery/atmospherics/pipe/simple/green/visible,/turf/simulated/floor/plating,/area/atmos) @@ -5705,17 +5705,17 @@ "cfK" = (/obj/structure/sign/biohazard,/turf/simulated/wall,/area/maintenance/asmaint) "cfL" = (/obj/structure/shuttle/engine/heater{color = "#FFFF00"; dir = 4; icon_state = "heater"},/obj/structure/window/reinforced{color = "#FFFF00"; dir = 8},/turf/simulated/floor/plating/airless{color = "#FFFF00"},/area/space) "cfM" = (/obj/structure/disposalpipe/segment,/obj/machinery/light/small,/turf/simulated/floor/plating,/area/maintenance/asmaint) -"cfN" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{tag = "icon-manifold-r-f (EAST)"; dir = 4},/turf/simulated/floor,/area/aisat) -"cfO" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/manifold/supply/hidden{tag = "icon-manifold-b-f (WEST)"; dir = 8},/turf/simulated/floor,/area/aisat) -"cfP" = (/obj/machinery/power/apc{dir = 1; name = "MiniSat External Power APC"; pixel_y = 29},/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor,/area/aisat) -"cfQ" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor,/area/aisat) +"cfN" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{tag = "icon-manifold-b-f (NORTH)"; dir = 1},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor{dir = 8; icon_state = "warning"},/area/engine/engine_smes) +"cfO" = (/obj/machinery/door/airlock/engineering{name = "SMES Room"; req_access_txt = "32"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor{icon_state = "delivery"; name = "floor"},/area/engine/engine_smes) +"cfP" = (/obj/machinery/door/firedoor/border_only{dir = 4; name = "Firelock East"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor{dir = 4; icon_state = "warning"},/area/engine/engine_smes) +"cfQ" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor,/area/engine/engineering) "cfR" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 9},/turf/simulated/floor/plating,/area/maintenance/asmaint2) "cfS" = (/obj/machinery/portable_atmospherics/canister,/turf/simulated/floor{dir = 2; icon_state = "bot"},/area/toxins/misc_lab) -"cfT" = (/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_x = 28; pixel_y = 0},/obj/structure/closet/emcloset,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor,/area/aisat) +"cfT" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor{dir = 8; icon_state = "warning"},/area/engine/engineering) "cfU" = (/obj/item/stack/sheet/cardboard,/turf/simulated/floor/plating,/area/maintenance/asmaint2) "cfV" = (/obj/effect/landmark{name = "blobstart"},/turf/simulated/floor/plating,/area/maintenance/asmaint2) "cfW" = (/obj/structure/shuttle/engine/propulsion{color = "#FFFF00"; dir = 8; icon_state = "propulsion_l"},/turf/space,/area/space) -"cfX" = (/obj/structure/closet/emcloset,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor,/area/aisat) +"cfX" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor,/area/engine/engineering) "cfY" = (/obj/machinery/light/small,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plating,/area/maintenance/asmaint2) "cfZ" = (/obj/machinery/door/airlock/external{req_access_txt = "13"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plating,/area/maintenance/asmaint2) "cga" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; pixel_x = 0; pixel_y = -32},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plating,/area/maintenance/asmaint2) @@ -5723,7 +5723,7 @@ "cgc" = (/obj/machinery/door/airlock/external{req_access_txt = "13"},/turf/simulated/floor/plating,/area/maintenance/aft) "cgd" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; pixel_x = 0; pixel_y = 32},/turf/simulated/floor/plating,/area/maintenance/aft) "cge" = (/obj/machinery/camera{c_tag = "Aft Port Solar Access"; dir = 4},/obj/machinery/light/small{dir = 8},/obj/structure/closet/emcloset,/turf/simulated/floor/plating,/area/maintenance/aft) -"cgf" = (/obj/structure/table,/obj/item/device/radio/off,/obj/item/weapon/crowbar,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 6},/turf/simulated/floor,/area/aisat) +"cgf" = (/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/manifold/supply/hidden,/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor,/area/engine/engineering) "cgg" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/simulated/wall/r_wall,/area/engine/engineering) "cgh" = (/turf/simulated/wall/r_wall,/area/engine/chiefs_office) "cgi" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/machinery/door/poddoor/preopen{id = "Engineering"; name = "engineering security door"},/turf/simulated/floor/plating,/area/engine/chiefs_office) @@ -5751,7 +5751,7 @@ "cgE" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/turf/simulated/floor/plating,/area/maintenance/asmaint2) "cgF" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/wall,/area/maintenance/asmaint2) "cgG" = (/obj/machinery/door/airlock/maintenance{name = "Air Supply Maintenance"; req_access_txt = "12"},/turf/simulated/floor/plating,/area/maintenance/asmaint2) -"cgH" = (/obj/machinery/conveyor_switch/oneway{convdir = -1; id = "packageExternal"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor,/area/quartermaster/office) +"cgH" = (/turf/simulated/floor{icon_state = "warningcorner"; dir = 2},/area/engine/engine_smes) "cgI" = (/obj/structure/closet/crate/medical,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor{icon_state = "floorgrime"},/area/quartermaster/storage) "cgJ" = (/obj/effect/landmark/corpse/clown,/turf/simulated/floor/mineral/bananium/airless,/area/space) "cgK" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor/plating,/area/medical/medbay) @@ -5930,7 +5930,7 @@ "ckb" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor,/area/engine/engineering) "ckc" = (/obj/item/weapon/pickaxe,/turf/simulated/floor/mineral/bananium/airless,/area/space) "ckd" = (/obj/structure/closet/emcloset,/turf/simulated/floor/plating,/area/maintenance/aft) -"cke" = (/obj/structure/cable/yellow{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor,/area/engine/engineering) +"cke" = (/obj/machinery/alarm{dir = 1; icon_state = "alarm0"; pixel_y = -22},/obj/machinery/atmospherics/unary/vent_scrubber{dir = 1; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/simulated/floor{dir = 6; icon_state = "warning"},/area/engine/engine_smes) "ckf" = (/obj/structure/closet/crate,/obj/item/stack/sheet/metal{amount = 50},/obj/item/stack/rods{amount = 50},/obj/item/stack/sheet/glass{amount = 50},/obj/item/weapon/airlock_electronics,/obj/item/weapon/airlock_electronics,/obj/item/weapon/stock_parts/cell/high{charge = 100; maxcharge = 15000},/obj/item/stack/sheet/mineral/plasma{amount = 30},/turf/simulated/floor/plating,/area/engine/engineering) "ckg" = (/obj/effect/landmark{name = "blobstart"},/turf/simulated/floor/plating,/area/engine/engineering) "ckh" = (/turf/simulated/floor/plating,/area/engine/engineering) @@ -6076,20 +6076,20 @@ "cmR" = (/obj/machinery/door/firedoor/border_only{dir = 1; name = "Firelock North"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor{dir = 5; icon_state = "yellow"},/area/engine/engineering) "cmS" = (/obj/machinery/door/firedoor/border_only{dir = 1; name = "Firelock North"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor{dir = 1; icon_state = "yellow"},/area/engine/engineering) "cmT" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; pixel_x = 0; pixel_y = -32},/turf/simulated/floor/plating,/area/maintenance/starboardsolar) -"cmU" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/wall/r_wall,/area/engine/engine_smes) -"cmV" = (/obj/machinery/door/firedoor/border_only{dir = 4; name = "Firelock East"},/obj/machinery/atmospherics/unary/vent_scrubber{dir = 1; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/obj/machinery/alarm{dir = 1; icon_state = "alarm0"; pixel_y = -22},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor{dir = 4; icon_state = "warning"},/area/engine/engine_smes) +"cmU" = (/obj/machinery/light,/turf/simulated/floor{icon_state = "warning"},/area/engine/engine_smes) +"cmV" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 1; on = 1},/turf/simulated/floor{dir = 8; icon_state = "warning"},/area/engine/engine_smes) "cmW" = (/obj/machinery/gravity_generator/main/station,/turf/simulated/floor{icon_state = "vault"; dir = 8},/area/engine/gravity_generator) -"cmX" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 1; on = 1},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor{dir = 8; icon_state = "warning"},/area/engine/engine_smes) -"cmY" = (/obj/machinery/alarm{dir = 1; icon_state = "alarm0"; pixel_y = -22},/obj/machinery/atmospherics/unary/vent_scrubber{dir = 1; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor{dir = 6; icon_state = "warning"},/area/engine/engine_smes) +"cmX" = (/obj/machinery/door/firedoor/border_only{dir = 4; name = "Firelock East"},/obj/machinery/atmospherics/unary/vent_scrubber{dir = 1; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/obj/machinery/alarm{dir = 1; icon_state = "alarm0"; pixel_y = -22},/turf/simulated/floor{dir = 4; icon_state = "warning"},/area/engine/engine_smes) +"cmY" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'HIGH VOLTAGE'"; icon_state = "shock"; name = "HIGH VOLTAGE"; pixel_x = -32; pixel_y = 0},/turf/simulated/floor,/area/engine/engineering) "cmZ" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 7; on = 1},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor{icon_state = "dark"},/area/engine/engine_smes) -"cna" = (/obj/machinery/light,/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor{icon_state = "warning"},/area/engine/engine_smes) +"cna" = (/obj/structure/table,/obj/item/device/radio/off,/obj/item/weapon/crowbar,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 6},/turf/simulated/floor{icon_state = "dark"},/area/aisat) "cnb" = (/obj/machinery/navbeacon{codes_txt = "delivery;dir=2"; freq = 1400; location = "Engineering"},/obj/structure/plasticflaps{opacity = 1},/turf/simulated/floor{icon_state = "bot"},/area/engine/engineering) "cnc" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor/plating,/area/engine/chiefs_office) "cnd" = (/obj/structure/closet/secure_closet/engineering_welding,/obj/machinery/firealarm{dir = 8; pixel_x = -24},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor{dir = 9; icon_state = "yellow"},/area/engine/engineering) "cne" = (/obj/structure/closet/secure_closet/engineering_electrical,/turf/simulated/floor{dir = 1; icon_state = "yellow"},/area/engine/engineering) "cnf" = (/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/simulated/floor{icon_state = "vault"; dir = 4},/area/engine/engine_smes) "cng" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/camera{c_tag = "SMES Room"; dir = 8; network = list("SS13"); pixel_x = 0; pixel_y = 0},/obj/machinery/atmospherics/unary/vent_scrubber{on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/simulated/floor{icon_state = "dark"},/area/engine/engine_smes) -"cnh" = (/obj/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/simulated/floor{icon_state = "warningcorner"; dir = 2},/area/engine/engine_smes) +"cnh" = (/obj/structure/transit_tube{icon_state = "N-S"},/turf/simulated/floor{tag = "icon-darkyellow (EAST)"; icon_state = "darkyellow"; dir = 4},/area/aisat) "cni" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 1; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/simulated/floor,/area/engine/engineering) "cnj" = (/obj/machinery/suit_storage_unit/ce,/turf/simulated/floor{dir = 4; icon_state = "warnwhite"},/area/engine/chiefs_office) "cnk" = (/obj/structure/sign/nosmoking_2{pixel_y = 32},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/simulated/floor{dir = 1; icon_state = "yellow"},/area/engine/engineering) @@ -6143,7 +6143,7 @@ "cog" = (/obj/structure/closet/secure_closet/engineering_personal,/obj/machinery/alarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor{dir = 4; icon_state = "yellow"},/area/engine/engineering) "coh" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor,/area/engine/engineering) "coi" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/window/reinforced,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor{icon_state = "dark"},/area/engine/engine_smes) -"coj" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/window/reinforced,/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{tag = "icon-manifold-r-f (WEST)"; dir = 8},/turf/simulated/floor{icon_state = "dark"},/area/engine/engine_smes) +"coj" = (/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_x = 28; pixel_y = 0},/obj/structure/closet/emcloset,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor{icon_state = "dark"},/area/aisat) "cok" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/wall/r_wall,/area/engine/engine_smes) "col" = (/obj/machinery/door/firedoor/border_only{dir = 4; name = "Firelock East"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/camera{c_tag = "SMES Access"; dir = 8; network = list("SS13"); pixel_x = 0; pixel_y = 0},/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{tag = "icon-manifold-r-f (NORTH)"; dir = 1},/turf/simulated/floor{dir = 4; icon_state = "warning"},/area/engine/engine_smes) "com" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/light{dir = 1},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor{dir = 8; icon_state = "warning"},/area/engine/engine_smes) @@ -6166,7 +6166,7 @@ "coD" = (/obj/structure/rack{dir = 8; layer = 2.9},/obj/item/clothing/suit/hazardvest,/obj/item/clothing/suit/hazardvest,/obj/item/weapon/tank/emergency_oxygen/engi,/obj/item/weapon/tank/emergency_oxygen/engi,/obj/machinery/camera{c_tag = "Engineering East"; dir = 8; network = list("SS13"); pixel_x = 0; pixel_y = 0},/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{tag = "icon-manifold-r-f (EAST)"; dir = 4},/turf/simulated/floor{dir = 4; icon_state = "yellowcorner"},/area/engine/engineering) "coE" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor,/area/engine/engineering) "coF" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/sign/securearea{desc = "A warning sign which reads 'HIGH VOLTAGE'"; icon_state = "shock"; name = "HIGH VOLTAGE"; pixel_x = -32; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor{icon_state = "loadingarea"},/area/engine/engineering) -"coG" = (/obj/machinery/porta_turret{ai = 1; dir = 1},/turf/simulated/floor{icon_state = "dark"},/area/turret_protected/aisat_interior) +"coG" = (/obj/structure/closet/emcloset,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor{icon_state = "dark"},/area/aisat) "coH" = (/obj/machinery/light/small{dir = 1},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden,/turf/simulated/floor,/area/engine/engineering) "coI" = (/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor,/area/engine/engineering) "coJ" = (/obj/machinery/firealarm{pixel_y = 24},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{tag = "icon-manifold-r-f (NORTH)"; dir = 1},/turf/simulated/floor,/area/engine/engineering) @@ -6190,25 +6190,25 @@ "cpb" = (/turf/simulated/shuttle/wall{icon_state = "swall12"; dir = 2},/area/shuttle/escape_pod4/station) "cpc" = (/turf/simulated/shuttle/wall{icon_state = "swall_s10"; dir = 2},/area/shuttle/escape_pod4/station) "cpd" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/simulated/floor/plating/airless,/area/solar/starboard) -"cpe" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/power/port_gen/pacman,/obj/machinery/atmospherics/pipe/manifold/supply/hidden{tag = "icon-manifold-b-f (WEST)"; dir = 8},/turf/simulated/floor{dir = 9; icon_state = "warning"},/area/engine/engine_smes) -"cpf" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor{dir = 1; icon_state = "warning"},/area/engine/engine_smes) +"cpe" = (/obj/machinery/light{dir = 1},/obj/machinery/atmospherics/unary/vent_pump{dir = 8; on = 1},/turf/simulated/floor{icon_state = "dark"},/area/aisat) +"cpf" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor{icon_state = "dark"},/area/aisat) "cpg" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor,/area/engine/gravity_generator) "cph" = (/obj/effect/landmark{name = "xeno_spawn"; pixel_x = -1},/obj/structure/disposalpipe/segment,/turf/simulated/floor/plating{tag = "icon-platingdmg3"; icon_state = "platingdmg3"},/area/maintenance/asmaint2) -"cpi" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor{dir = 1; icon_state = "warning"},/area/engine/engine_smes) -"cpj" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor{dir = 5; icon_state = "warning"},/area/engine/engine_smes) +"cpi" = (/obj/structure/transit_tube/station{dir = 4; icon_state = "closed"; reverse_launch = 1; tag = "icon-closed (EAST)"},/turf/simulated/floor{tag = "icon-darkyellow (EAST)"; icon_state = "darkyellow"; dir = 4},/area/aisat) +"cpj" = (/turf/simulated/floor{icon_state = "dark"},/area/aisat) "cpk" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor{icon_state = "vault"; dir = 8},/area/engine/engine_smes) "cpl" = (/obj/structure/table,/obj/item/stack/sheet/glass{amount = 50},/obj/item/stack/sheet/glass{amount = 50},/obj/item/stack/sheet/glass{amount = 50},/turf/simulated/floor,/area/engine/engineering) "cpm" = (/obj/machinery/power/terminal{icon_state = "term"; dir = 1},/obj/structure/window/reinforced,/obj/structure/cable/yellow{d2 = 8; icon_state = "0-8"},/turf/simulated/floor{icon_state = "dark"},/area/engine/engine_smes) "cpn" = (/obj/structure/table,/obj/item/clothing/gloves/yellow,/obj/item/weapon/storage/toolbox/electrical{pixel_y = 5},/turf/simulated/floor,/area/engine/engineering) "cpo" = (/obj/machinery/door/window{name = "SMES Chamber"; req_access_txt = "32"},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/cable/yellow{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/simulated/floor{icon_state = "dark"},/area/engine/engine_smes) "cpp" = (/obj/structure/window/reinforced,/obj/structure/cable/yellow{d2 = 4; icon_state = "0-4"},/turf/simulated/floor{icon_state = "dark"},/area/engine/engine_smes) -"cpq" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{tag = "icon-manifold-b-f (NORTH)"; dir = 1},/turf/simulated/floor{dir = 8; icon_state = "warning"},/area/engine/engine_smes) -"cpr" = (/obj/machinery/door/airlock/engineering{name = "SMES Room"; req_access_txt = "32"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor{icon_state = "delivery"; name = "floor"},/area/engine/engine_smes) +"cpq" = (/obj/machinery/bluespace_beacon,/turf/simulated/floor{icon_state = "dark"},/area/aisat) +"cpr" = (/obj/machinery/door/airlock/hatch{name = "Teleporter Room"; req_access_txt = "17;65"},/turf/simulated/floor{icon_state = "dark"},/area/aisat) "cps" = (/obj/structure/particle_accelerator/end_cap,/turf/simulated/floor/plating,/area/engine/engineering) -"cpt" = (/obj/machinery/door/firedoor/border_only{dir = 4; name = "Firelock East"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor{dir = 4; icon_state = "warning"},/area/engine/engine_smes) -"cpu" = (/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/manifold/supply/hidden,/turf/simulated/floor,/area/engine/engineering) -"cpv" = (/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor,/area/engine/engineering) -"cpw" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor{dir = 8; icon_state = "warning"},/area/engine/engineering) +"cpt" = (/obj/structure/transit_tube{dir = 1; icon_state = "Block"; tag = "icon-Block (NORTH)"},/obj/machinery/light,/turf/simulated/floor{tag = "icon-darkyellow (EAST)"; icon_state = "darkyellow"; dir = 4},/area/aisat) +"cpu" = (/obj/machinery/door_control{id = "teledoor"; name = "AI Satellite Teleport Shutters Control"; pixel_x = 0; pixel_y = -25; req_access_txt = "17;65"},/obj/machinery/atmospherics/unary/vent_scrubber{dir = 2; on = 1},/obj/machinery/camera{c_tag = "MiniSat Teleporter"; dir = 1; network = list("MiniSat"); pixel_x = 0; pixel_y = 0},/turf/simulated/floor{icon_state = "dark"},/area/aisat) +"cpv" = (/obj/machinery/door/poddoor/shutters{id = "teledoor"; name = "AI Satellite Teleport Access"},/turf/simulated/floor{icon_state = "dark"},/area/aisat) +"cpw" = (/obj/machinery/power/apc{dir = 1; name = "MiniSat External Power APC"; pixel_y = 29},/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor{icon_state = "dark"},/area/aisat) "cpx" = (/obj/machinery/door/firedoor/border_only{dir = 4; name = "Firelock East"},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor,/area/engine/engineering) "cpy" = (/turf/simulated/floor{dir = 4; icon_state = "warning"},/area/engine/engineering) "cpz" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor,/area/engine/engineering) @@ -8189,9 +8189,9 @@ "dby" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/turf/simulated/floor,/area/engine/engineering) "dbz" = (/obj/item/weapon/shard{icon_state = "small"},/turf/simulated/floor/plating/airless,/area/mine/abandoned) "dbA" = (/obj/machinery/power/apc{dir = 8; name = "MiniSat Maint APC"; pixel_x = -24},/obj/structure/cable{icon_state = "0-2"; d2 = 2},/turf/simulated/floor,/area/ai_monitored/storage/secure) -"dbB" = (/obj/machinery/power/terminal{dir = 8},/obj/structure/cable{icon_state = "0-2"; d2 = 2},/turf/simulated/floor{dir = 8; icon_state = "warning"},/area/ai_monitored/storage/secure) +"dbB" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor{icon_state = "dark"},/area/aisat) "dbC" = (/obj/structure/alien/weeds,/turf/simulated/floor/airless,/area/mine/abandoned) -"dbD" = (/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_x = 28; pixel_y = 0},/turf/simulated/floor,/area/ai_monitored/storage/secure) +"dbD" = (/obj/machinery/alarm{frequency = 1439; pixel_y = 23},/obj/machinery/camera{c_tag = "MiniSat Entrance"; dir = 2; network = list("MiniSat"); pixel_x = 0; pixel_y = 0},/turf/simulated/floor{icon_state = "dark"},/area/aisat) "dbE" = (/turf/simulated/wall/r_wall,/area/ai_monitored/storage/secure) "dbF" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating/airless,/area/mine/abandoned) "dbG" = (/obj/item/weapon/shard,/turf/simulated/floor/plating/airless,/area/mine/abandoned) @@ -8224,7 +8224,7 @@ "dch" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/item/weapon/storage/box/lights/bulbs,/obj/machinery/atmospherics/pipe/simple{dir = 6},/turf/simulated/floor/plating,/area/mine/north_outpost) "dci" = (/obj/machinery/atmospherics/pipe/simple/general/hidden{dir = 9},/obj/machinery/meter,/turf/simulated/floor/plating,/area/mine/north_outpost) "dcj" = (/obj/item/weapon/shard,/turf/simulated/floor/airless{icon_state = "floorscorched2"},/area/mine/abandoned) -"dck" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/simulated/floor,/area/aisat) +"dck" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/manifold/supply/hidden{tag = "icon-manifold-b-f (WEST)"; dir = 8},/turf/simulated/floor{icon_state = "dark"},/area/aisat) "dcl" = (/turf/simulated/floor/plating/asteroid/airless,/area/mine/explored) "dcm" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/machinery/door/airlock/maintenance{name = "Mining Station Maintenance"; req_access_txt = "54"},/turf/simulated/floor/plating,/area/mine/north_outpost) "dcn" = (/obj/machinery/atmospherics/pipe/simple,/turf/simulated/wall,/area/mine/north_outpost) @@ -8295,7 +8295,7 @@ "ddA" = (/obj/machinery/recharge_station,/turf/simulated/floor,/area/mine/north_outpost) "ddB" = (/obj/structure/dispenser/oxygen,/turf/simulated/floor,/area/mine/north_outpost) "ddC" = (/obj/machinery/door/airlock/maintenance_hatch{req_access_txt = "65"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor,/area/ai_monitored/storage/secure) -"ddD" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 6},/turf/simulated/floor,/area/ai_monitored/storage/secure) +"ddD" = (/obj/machinery/hologram/holopad,/turf/simulated/floor{icon_state = "dark"},/area/aisat) "ddE" = (/obj/item/weapon/table_parts,/turf/simulated/floor/airless,/area/mine/abandoned) "ddF" = (/turf/simulated/floor/airless{icon_state = "asteroidfloor"},/area/mine/abandoned) "ddG" = (/obj/structure/rack,/turf/simulated/floor/airless{icon_state = "asteroidfloor"},/area/mine/abandoned) @@ -8326,7 +8326,7 @@ "def" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; pixel_x = -32},/turf/simulated/floor{icon_state = "warning"},/area/mine/north_outpost) "deg" = (/turf/simulated/floor{icon_state = "warning"},/area/mine/north_outpost) "deh" = (/obj/structure/ore_box,/turf/simulated/floor{icon_state = "warning"},/area/mine/north_outpost) -"dei" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = "90Curve"},/turf/simulated/floor{icon_state = "warningcorner"; dir = 4},/area/ai_monitored/storage/secure) +"dei" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 8; on = 1},/turf/simulated/floor{icon_state = "dark"},/area/aisat) "dej" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = "90Curve"},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/simulated/floor{dir = 1; icon_state = "warning"},/area/ai_monitored/storage/secure) "dek" = (/obj/effect/decal/remains/human,/obj/item/clothing/suit/xenos,/obj/item/clothing/head/xenos,/turf/simulated/floor{icon_state = "damaged2"},/area/mine/abandoned) "del" = (/obj/structure/lattice,/obj/structure/window/reinforced{dir = 1},/obj/machinery/light{icon_state = "tube1"; dir = 8},/turf/space,/area/mine/north_outpost) @@ -8922,9 +8922,9 @@ "dpD" = (/obj/structure/sign/fire{pixel_x = 0; pixel_y = -32},/turf/simulated/floor/plating,/area/maintenance/asmaint) "dpE" = (/obj/machinery/camera{c_tag = "Atmospherics South West"; dir = 4; network = list("SS13")},/obj/machinery/atmospherics/unary/vent_pump{dir = 8; on = 1},/turf/simulated/floor,/area/atmos) "dpF" = (/obj/structure/table,/obj/item/clothing/glasses/meson,/obj/machinery/alarm{dir = 4; icon_state = "alarm0"; pixel_x = -22},/turf/simulated/floor,/area/engine/break_room) -"dpG" = (/obj/machinery/bot/secbot/pingsky,/turf/simulated/floor/carpet,/area/turret_protected/aisat_interior) +"dpG" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{tag = "icon-manifold-r-f (EAST)"; dir = 4},/turf/simulated/floor{icon_state = "dark"},/area/aisat) "dpH" = (/turf/simulated/wall,/area/aisat) -"dpI" = (/obj/effect/landmark/start{name = "Cyborg"},/turf/simulated/floor{icon_state = "dark"},/area/turret_protected/aisat_interior) +"dpI" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 4; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/simulated/floor{icon_state = "dark"},/area/aisat) "dpJ" = (/obj/machinery/vending/cola,/turf/unsimulated/floor{icon_state = "bar"; dir = 2},/area/syndicate_mothership) "dpK" = (/obj/machinery/vending/coffee,/turf/unsimulated/floor{icon_state = "bar"; dir = 2},/area/syndicate_mothership) "dpL" = (/obj/machinery/vending/cigarette,/turf/unsimulated/floor{icon_state = "bar"; dir = 2},/area/syndicate_mothership) @@ -8988,21 +8988,21 @@ "dqR" = (/obj/machinery/light,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor{dir = 6; icon_state = "yellow"},/area/engine/break_room) "dqS" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/machinery/light/small{dir = 8},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor/plating,/area/aisat) "dqT" = (/obj/structure/sign/securearea,/turf/simulated/wall/r_wall,/area/turret_protected/ai) -"dqU" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock/highsecurity{icon_state = "door_locked"; locked = 1; name = "AI Chamber"; req_access_txt = "16"},/turf/simulated/floor{icon_state = "vault"; dir = 8},/area/turret_protected/ai) -"dqV" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 1; on = 1},/turf/simulated/floor{icon_state = "dark"},/area/turret_protected/ai) +"dqU" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor{tag = "icon-darkbluecorners"; icon_state = "darkbluecorners"; temperature = 273.15},/area/aisat) +"dqV" = (/obj/machinery/computer/security/telescreen{dir = 1; name = "MiniSat Monitor"; network = list("MiniSat"); pixel_x = 0; pixel_y = -30},/turf/simulated/floor{tag = "icon-darkblue"; icon_state = "darkblue"; temperature = 273.15},/area/aisat) "dqW" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/wall/r_wall,/area/turret_protected/ai) -"dqX" = (/obj/machinery/light_switch{pixel_y = 28},/turf/simulated/floor/bluegrid,/area/turret_protected/ai) -"dqY" = (/obj/machinery/camera{c_tag = "AI Chamber North"; dir = 2; network = list("MiniSat","RD"); pixel_x = 0; pixel_y = 0},/turf/simulated/floor/bluegrid,/area/turret_protected/ai) -"dqZ" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 1; on = 1},/turf/simulated/floor{icon_state = "dark"},/area/turret_protected/ai) +"dqX" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/simulated/floor{tag = "icon-darkblue"; icon_state = "darkblue"; temperature = 273.15},/area/aisat) +"dqY" = (/obj/machinery/light,/obj/machinery/turretid{control_area = "\improper AI Satellite Antechamber"; enabled = 1; icon_state = "control_standby"; name = "Antechamber Turret Control"; pixel_x = 0; pixel_y = -24; req_access = list(65)},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor{tag = "icon-darkbluecorners (WEST)"; icon_state = "darkbluecorners"; dir = 8},/area/aisat) +"dqZ" = (/turf/simulated/floor{tag = "icon-darkblue"; icon_state = "darkblue"; temperature = 273.15},/area/aisat) "dra" = (/obj/structure/table/reinforced,/obj/item/weapon/folder/yellow,/obj/item/weapon/paper/monitorkey,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor{dir = 2; icon_state = "neutralfull"},/area/engine/chiefs_office) "drb" = (/obj/effect/landmark{name = "lightsout"},/obj/machinery/atmospherics/pipe/manifold/supply/hidden{tag = "icon-manifold-b-f (EAST)"; dir = 4},/turf/simulated/floor,/area/engine/engineering) "drc" = (/turf/simulated/wall,/area/turret_protected/aisat_interior) "drd" = (/obj/machinery/light{dir = 4; icon_state = "tube1"},/obj/structure/closet/radiation,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor,/area/engine/engineering) "dre" = (/turf/simulated/floor{icon_state = "dark"},/area/turret_protected/aisat_interior) -"drf" = (/turf/simulated/floor/carpet,/area/turret_protected/aisat_interior) +"drf" = (/obj/machinery/hologram/holopad,/obj/effect/landmark/start{name = "Cyborg"},/turf/simulated/floor{icon_state = "dark"},/area/turret_protected/aisat_interior) "drg" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/turf/simulated/floor/plating,/area/maintenance/aft) "drh" = (/obj/machinery/computer/slot_machine,/turf/simulated/floor{icon_state = "bar"},/area/crew_quarters/bar) -"dri" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor{icon_state = "dark"},/area/turret_protected/aisat_interior) +"dri" = (/obj/machinery/bot/secbot/pingsky,/turf/simulated/floor{icon_state = "dark"},/area/turret_protected/aisat_interior) "drj" = (/obj/structure/disposalpipe/sortjunction{dir = 8; icon_state = "pipe-j2s"; sortType = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor/plating,/area/maintenance/aft) "drk" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/hologram/holopad,/turf/simulated/floor,/area/engine/gravity_generator) "drl" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor/plating,/area/maintenance/aft) @@ -9014,7 +9014,7 @@ "drr" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 4; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/simulated/floor{icon_state = "dark"},/area/turret_protected/aisat_interior) "drs" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor{icon_state = "dark"},/area/turret_protected/aisat_interior) "drt" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 8; on = 1},/turf/simulated/floor{icon_state = "dark"},/area/turret_protected/aisat_interior) -"dru" = (/obj/machinery/hologram/holopad,/turf/simulated/floor{icon_state = "dark"},/area/turret_protected/aisat_interior) +"dru" = (/obj/machinery/porta_turret{ai = 1; dir = 1},/turf/simulated/floor{tag = "icon-darkbluecorners"; icon_state = "darkbluecorners"; temperature = 273.15},/area/turret_protected/aisat_interior) "drv" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/simulated/floor/plating,/area/maintenance/portsolar) "drw" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor{icon_state = "dark"},/area/turret_protected/aisat_interior) "drx" = (/obj/structure/window/reinforced,/obj/machinery/door/window{dir = 1; name = "MiniSat Walkway Access"; req_access_txt = "13;65"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor/plating,/area/aisat) @@ -9040,41 +9040,41 @@ "drR" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/turf/space,/area/space) "drS" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/turf/simulated/floor/plating,/area/aisat) "drT" = (/obj/structure/closet/emcloset,/obj/structure/sign/securearea{desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; pixel_x = 32},/turf/simulated/floor/plating,/area/engine/engineering) -"drU" = (/turf/simulated/floor,/area/aisat) -"drV" = (/obj/machinery/computer/security/telescreen{dir = 1; name = "MiniSat Monitor"; network = list("MiniSat"); pixel_x = 0; pixel_y = -30},/turf/simulated/floor,/area/aisat) +"drU" = (/obj/machinery/firealarm{dir = 8; pixel_x = -24},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/bot/floorbot{on = 0},/turf/simulated/floor{icon_state = "vault"; dir = 8},/area/turret_protected/aisat_interior) +"drV" = (/turf/simulated/floor{tag = "icon-darkblue"; icon_state = "darkblue"; temperature = 273.15},/area/turret_protected/aisat_interior) "drW" = (/obj/structure/table,/obj/item/weapon/storage/toolbox/syndicate,/obj/item/weapon/crowbar/red,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_station/start) "drX" = (/obj/structure/window/reinforced{dir = 8},/turf/simulated/wall,/area/aisat) "drY" = (/obj/structure/window/reinforced{dir = 4},/obj/machinery/light/small{dir = 4},/obj/structure/sign/securearea{desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; pixel_x = 32},/turf/simulated/floor/plating,/area/aisat) "drZ" = (/obj/structure/window/reinforced{dir = 4},/turf/simulated/wall,/area/aisat) "dsa" = (/obj/structure/window/reinforced{dir = 8},/obj/machinery/light/small{dir = 8},/obj/structure/sign/securearea{desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; pixel_x = -32; pixel_y = 0},/turf/simulated/floor/plating,/area/aisat) "dsb" = (/obj/structure/table/reinforced,/obj/item/weapon/clipboard,/obj/item/weapon/lighter/zippo,/obj/item/clothing/glasses/meson{pixel_y = 4},/obj/item/weapon/stamp/ce,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor{dir = 2; icon_state = "neutralfull"},/area/engine/chiefs_office) -"dsc" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 4; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/simulated/floor{dir = 2; icon_state = "neutralfull"},/area/aisat) +"dsc" = (/obj/machinery/porta_turret{ai = 1; dir = 1},/turf/simulated/floor{tag = "icon-darkbluecorners (WEST)"; icon_state = "darkbluecorners"; dir = 8},/area/turret_protected/aisat_interior) "dsd" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating,/area/aisat) "dse" = (/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership) -"dsf" = (/obj/machinery/hologram/holopad,/turf/simulated/floor{dir = 2; icon_state = "neutralfull"},/area/aisat) -"dsg" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 8; on = 1},/turf/simulated/floor{dir = 2; icon_state = "neutralfull"},/area/aisat) +"dsf" = (/obj/machinery/camera/motion{c_tag = "MiniSat Antechamber"; dir = 1; network = list("MiniSat")},/obj/item/device/radio/intercom{broadcasting = 1; frequency = 1447; listening = 0; name = "Station Intercom (AI Private)"; pixel_y = -29},/turf/simulated/floor{tag = "icon-darkblue"; icon_state = "darkblue"; temperature = 273.15},/area/turret_protected/aisat_interior) +"dsg" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/bot/cleanbot{on = 0},/turf/simulated/floor{icon_state = "vault"; dir = 8},/area/turret_protected/aisat_interior) "dsh" = (/obj/machinery/door/airlock/external{name = "MiniSat External Access"; req_access = null; req_access_txt = "65;13"},/turf/simulated/floor/plating,/area/aisat) "dsi" = (/turf/simulated/floor/plating/airless,/area/space) "dsj" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plating,/area/aisat) -"dsk" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor,/area/aisat) -"dsl" = (/obj/machinery/alarm{frequency = 1439; pixel_y = 23},/obj/machinery/camera{c_tag = "MiniSat Entrance"; dir = 2; network = list("MiniSat"); pixel_x = 0; pixel_y = 0},/turf/simulated/floor,/area/aisat) +"dsk" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock/highsecurity{icon_state = "door_locked"; locked = 1; name = "AI Chamber"; req_access_txt = "16"},/turf/simulated/floor{icon_state = "dark"},/area/turret_protected/ai) +"dsl" = (/obj/structure/stool/bed/chair/office/dark{dir = 8},/turf/simulated/floor{tag = "icon-darkbluecorners (NORTH)"; icon_state = "darkbluecorners"; dir = 1},/area/turret_protected/ai) "dsm" = (/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "snow"},/turf/unsimulated/floor{tag = "icon-gravsnow_corner (NORTH)"; icon = 'icons/turf/snow.dmi'; icon_state = "gravsnow_corner"; dir = 1},/area/syndicate_mothership) "dsn" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/wall/r_wall,/area/aisat) -"dso" = (/obj/machinery/door_control{id = "teledoor"; name = "AI Satellite Teleport Shutters Control"; pixel_x = 0; pixel_y = -25; req_access_txt = "17;65"},/obj/machinery/atmospherics/unary/vent_scrubber{dir = 2; on = 1},/obj/machinery/camera{c_tag = "MiniSat Teleporter"; dir = 1; network = list("MiniSat"); pixel_x = 0; pixel_y = 0},/turf/simulated/floor,/area/aisat) +"dso" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/table/reinforced,/obj/item/weapon/paper_bin{pixel_x = -3; pixel_y = 7},/obj/item/weapon/pen{pixel_x = 4; pixel_y = 4},/turf/simulated/floor{tag = "icon-darkblue (NORTHWEST)"; icon_state = "darkblue"; dir = 9},/area/turret_protected/ai) "dsp" = (/obj/machinery/camera{c_tag = "Engineering Access"},/obj/structure/closet/radiation,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor,/area/engine/engineering) -"dsq" = (/obj/machinery/door/poddoor/shutters{id = "teledoor"; name = "AI Satellite Teleport Access"},/turf/simulated/floor,/area/aisat) +"dsq" = (/turf/simulated/floor{icon_state = "vault"; dir = 8},/area/turret_protected/ai) "dsr" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 5},/turf/simulated/floor/plating,/area/maintenance/aft) -"dss" = (/obj/structure/transit_tube{dir = 1; icon_state = "Block"; tag = "icon-Block (NORTH)"},/obj/machinery/light,/turf/simulated/floor{icon_state = "warningcorner"; dir = 8},/area/aisat) -"dst" = (/obj/machinery/bluespace_beacon,/turf/simulated/floor,/area/aisat) -"dsu" = (/obj/machinery/door/airlock/hatch{name = "Teleporter Room"; req_access_txt = "17;65"},/turf/simulated/floor,/area/aisat) +"dss" = (/obj/machinery/camera{c_tag = "AI Chamber North"; dir = 2; network = list("MiniSat","RD"); pixel_x = 0; pixel_y = 0},/turf/simulated/floor{icon_state = "vault"; dir = 8},/area/turret_protected/ai) +"dst" = (/turf/simulated/floor{tag = "icon-darkbluecorners (EAST)"; icon_state = "darkbluecorners"; dir = 4},/area/turret_protected/ai) +"dsu" = (/obj/machinery/light_switch{pixel_y = 28},/turf/simulated/floor{icon_state = "vault"; dir = 8},/area/turret_protected/ai) "dsv" = (/obj/machinery/teleport/station,/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 8},/area/aisat) -"dsw" = (/obj/structure/transit_tube/station{dir = 4; icon_state = "closed"; reverse_launch = 1; tag = "icon-closed (EAST)"},/turf/simulated/floor{dir = 4; icon_state = "warning"},/area/aisat) +"dsw" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/table/reinforced,/obj/item/weapon/folder/white,/turf/simulated/floor{tag = "icon-darkblue (NORTHEAST)"; icon_state = "darkblue"; dir = 5},/area/turret_protected/ai) "dsx" = (/obj/machinery/computer/upload/borg,/obj/item/device/radio/intercom{broadcasting = 1; frequency = 1447; listening = 0; name = "Station Intercom (AI Private)"; pixel_y = -29},/turf/simulated/floor/bluegrid,/area/turret_protected/ai_upload) "dsy" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor/plating,/area/maintenance/aft) "dsz" = (/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "snow"},/obj/structure/flora/bush,/turf/unsimulated/floor{tag = "icon-gravsnow_corner (NORTH)"; icon = 'icons/turf/snow.dmi'; icon_state = "gravsnow_corner"; dir = 1},/area/syndicate_mothership) -"dsA" = (/obj/structure/transit_tube{icon_state = "N-S"},/turf/simulated/floor{icon_state = "warningcorner"; dir = 2},/area/aisat) +"dsA" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 1; on = 1},/turf/simulated/floor{tag = "icon-darkblue (WEST)"; icon_state = "darkblue"; dir = 8},/area/turret_protected/ai) "dsB" = (/obj/machinery/computer/teleporter,/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 8},/area/aisat) -"dsC" = (/obj/machinery/light{dir = 1},/obj/machinery/atmospherics/unary/vent_pump{dir = 8; on = 1},/turf/simulated/floor,/area/aisat) +"dsC" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 1; on = 1},/turf/simulated/floor{tag = "icon-darkblue (EAST)"; icon_state = "darkblue"; dir = 4},/area/turret_protected/ai) "dsD" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/wall/r_wall,/area/aisat) "dsE" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/obj/structure/transit_tube{icon_state = "N-S"},/turf/simulated/floor/plating,/area/aisat) "dsF" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plating,/area/aisat) @@ -9096,8 +9096,8 @@ "dsV" = (/obj/structure/table,/obj/item/stack/sheet/glass{amount = 20; pixel_x = -3; pixel_y = 6},/obj/item/stack/sheet/metal{amount = 50},/obj/item/stack/sheet/metal{amount = 50},/obj/item/stack/sheet/metal{amount = 50},/obj/item/stack/sheet/metal{amount = 50},/obj/item/stack/sheet/metal{amount = 50},/obj/item/stack/sheet/metal{amount = 50},/obj/item/device/multitool{pixel_x = 3},/obj/item/device/multitool{pixel_x = 3},/turf/simulated/floor{dir = 1; icon_state = "warning"},/area/assembly/robotics) "dsW" = (/obj/structure/closet/emcloset,/turf/simulated/floor/plating,/area/engine/engineering) "dsX" = (/obj/machinery/light/small{dir = 1},/turf/simulated/floor/plating,/area/engine/engineering) -"dsY" = (/obj/machinery/bot/floorbot{on = 0},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor{icon_state = "vault"; dir = 8},/area/turret_protected/aisat_interior) -"dsZ" = (/obj/machinery/bot/cleanbot{on = 0},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor{icon_state = "vault"; dir = 8},/area/turret_protected/aisat_interior) +"dsY" = (/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_x = 28; pixel_y = 0},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/simulated/floor,/area/ai_monitored/storage/secure) +"dsZ" = (/obj/machinery/power/terminal{dir = 8},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/simulated/floor{dir = 8; icon_state = "warning"},/area/ai_monitored/storage/secure) "dta" = (/obj/structure/table,/obj/item/device/radio/intercom{freerange = 0; frequency = 1459; name = "Station Intercom (General)"; pixel_x = 29},/obj/item/weapon/reagent_containers/glass/beaker/large{pixel_x = -3; pixel_y = 3},/obj/item/weapon/reagent_containers/glass/beaker{pixel_x = 8; pixel_y = 2},/obj/item/weapon/reagent_containers/dropper,/turf/simulated/floor{icon_state = "white"},/area/toxins/lab) "dtb" = (/obj/structure/transit_tube{tag = "icon-E-NW"; icon_state = "E-NW"},/turf/space,/area/space) "dtc" = (/obj/item/weapon/mop,/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/syndicate_mothership) @@ -9114,7 +9114,7 @@ "dtn" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor{icon_state = "white"},/area/medical/research{name = "Research Division"}) "dto" = (/obj/structure/table,/obj/item/weapon/crowbar/large,/obj/item/weapon/storage/box/lights/mixed,/turf/simulated/floor{dir = 9; icon_state = "yellow"},/area/engine/engineering) "dtp" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor/plating,/area/maintenance/aft) -"dtq" = (/obj/item/device/radio/intercom{broadcasting = 1; frequency = 1447; listening = 0; name = "Station Intercom (AI Private)"; pixel_y = -29},/obj/machinery/camera/motion{c_tag = "MiniSat Antechamber"; dir = 1; network = list("MiniSat")},/turf/simulated/floor/carpet,/area/turret_protected/aisat_interior) +"dtq" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 6},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor,/area/ai_monitored/storage/secure) "dtr" = (/obj/machinery/sleeper{dir = 4; icon_state = "sleeper-open"},/turf/simulated/floor{dir = 6; icon_state = "warnwhite"},/area/mine/living_quarters) "dts" = (/obj/structure/stool,/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership) "dtt" = (/obj/structure/lattice,/turf/space,/area/AIsattele) @@ -9258,6 +9258,7 @@ "dwb" = (/obj/machinery/atmospherics/binary/pump{dir = 4; name = "Mix to Incinerator"; on = 0},/turf/simulated/floor{icon_state = "floorgrime"},/area/maintenance/incinerator) "dwc" = (/obj/machinery/atmospherics/pipe/manifold4w/general{level = 2},/obj/machinery/meter,/turf/simulated/floor{icon_state = "floorgrime"},/area/maintenance/incinerator) "dwd" = (/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 5},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plating,/area/maintenance/asmaint) +"dwe" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor{icon_state = "warningcorner"; dir = 4},/area/ai_monitored/storage/secure) (1,1,1) = {" ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl @@ -9388,14 +9389,14 @@ ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlah ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahjahjahjahjaqfaqfaSHaSIaSIaSIaSIaSIaSIaSJaqfaqfarkaRzawNaSMaSMaYxaSMaSMaSMaXoaSMaSMaSMbaQaYuaxWaXhcqfbaSaQjbaTaXhbaUbaVbaUaORaYCaYDaNNaOZaORaQfaNLaYHaZWbaXbaXaZWbaXaYHaZYbaYbaZbaZbbabbbbbcaYNbbdaIuaXDbcxbbgbaibbibbjbbjaymaynbblbqyaHVbkMbkMbnIbaobnIbkMbkMbczbhzbbtayqaypaysayrbbxbaxbbyaYWaXVbbzaIubdpbbBaYkaYkaYkaYkaYkaYkaYkaYkbbCaYkaYkaYkaYkbbDaYkaYkaYkaYkaYkaYkaYkaYkbbBaYkaYkaYkaYkaRKaYkaYkaYkbbEaytaYkaYkayuaYkaYkaYkaYzaYkaYkaYkaYkaYkbbDayvaYkaYkaYkaYkaYkaYkbdSayyaSDaOFayzayAaPVbbTbbUaMnaMnbbVaGbaGbaGbaGbaGbaGbaGbaGbaGbaGbaGbahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlavJavNavMavMavMavMavMavMavMavMavNavMbbWaXbawNbbXbbYaXebbZbbZbbZaWaaVTbcbaOOaoTaWYaxCaXhaXhaXhaXkbcfaXhaORaORaORaORaYCaYDaXiaXjaORaQfaNLaYHaZWbcjaZWbaXbckaYHaZYbclbaZbaZbaZbcmbcnaYNbcoaIuaXDbbpbcqbaibcsbctaxNaxOaxMbcwbqybbnbnIbkMbmiaYUbmibkMbnIbbfbhzbcAbbuaxKaxFaxDbbxbaxbaxaYWaHUaIuaIubdpbbBaYkaYkaYkaYkaYkaYkaYkaYkbcEaYkaYkaYkaYkaYkaYkbcFaXlaXlaXlaXmaYkaYkbbBaYkaYkaYkaYkaRKaYkaYkaxSaWNaxUaWNaWNaWNaWNaWNaWNaXnaWNaWNaWNaWNaWNaWNaWNaWNaWNaWNaWNaWNbcLbcMbcNbcObcOaxQarWaOFaOFbcQaPXaPXbcQaGbaGbaGbaGbaGbaGbaGbaGbaGbaGbaGbahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahjawLawMawNawMawOawNawNawPawMawNawMawOawNcgVaCwbZTchbchcbZTbZTbZTcgTcgSaOOaOOaOOcgUaxkaXhaYvbcUchvchuaXhbcXbcYbcXaORaORaORchschraOOaQfaNLaYHbdaaZWbaXbdbbdcaYHaZYaYNbddbaZbaZchdbdfbdgbdhaIuaXDbuqbdjbaibcsbdkbISbIRaynbaibqybIQbIPbkMbtfbundsxbkMbINbIObhzbIMbILbhBbmmbmmbIKbaxbIJaYWbdBbdCaIubdpbbBaYkaYkbdDaYkbdEbdFbdFbdFchxbdFbdFbdFbdHaYkaYkaYkaYkaYkaYkchwbdJbdKbbBaYkaYkaYkaYkaRKbdLbdMbIUbIVbJuaYkaYkaYkaYkaYkbdQbdRaYkaYkaYkaYkaYkaYkaYkaYkaYkaYkaYkaYkaYkbdSbdTbdUbdVbITarWaOFaOGbdXaMnaMnaOIaGbaGbaGbaGbaGbaGbaGbaGbaGbaGbaGbahlahlaaeahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl -ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlarkavJbdYavJaxZawNawNcFUavJbdZavJaybbeabebbebbcRbecbedbeebefbegcdBcgmbeibejbejcgnbHuaXhaXhaXhaYybHVaXhaOOaOOaOOaOOcgBbiQcgycgpbiQcgoaNLaYHcgIaZWaZWbIgcetaYHbIeaYNbeCbaZbaZcgHbeEbeFbeGaIuaXDaYQbaibIlbbibbibeIaymaynbeJbIjbnGbIkbapbqwbqwbqwbqAbIrbrHbIucHgbInbIpbeQbaxbeRbaxbImaYWaXVaIuaIubeVbeVbeVbeVbeVbeVbeVbeWbeXbeYcgKbfabfabeWbfbbfbbfbbfbbfbbfcbfcbJLbfdbfcbfcbfcbfcbfeaYkcgRbffbfgbwnbgMaYkaYkaYkbfkbfkbflbflbflbflbflbfmbfnbfnbfncGJbfndsTbfobfnbfnbfpbfqbfqbfqbfqbIBbIwbftbfuaNsahjahlahjaGbaGbaGbaGbaGbaGbaGbaGbaGbaGbaGbahjahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl -ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahjazbaqfazcatwazdazeazfbfvbfwazdatwaziazjaqfazbarkbcRbfxbfybfybfybfzcdBcdxcdycaocaocczccCaXhaYvbfDaYybfEaXhbHpbHpaRCaRCceNceAcfzcfrcfzcfzcenaYHceqbHlaZWaZWcetbHmbHiaYNcdRbaZbaZcdSbfWbfXbeGaIubfYaYQbfZaYRbgbdtQbgcbGMaynbgfaYQahjbxycltcltcltboXbHgbHhahjaYWbgjbHcbHdbgmbaxbgnbaxbHfaYWaXVaIubgpbeVbgqbgrbgsbgtbgubeVbgvcGZbgwcfEbgybgybgybgzboLbjpbgCbfbbgDbgEbMfbgEbgEbgFbHsbfcbfgbHtbfgbfgbfgccNbgMbgMbgNbgMbgObgObflbgPbgQbgRbfldombgTdombflcmCbpOcmCbfqdolbgVdolbfqbgWbgXbfqbHrbLEaMmaMnbhaahjahlahjaGbaGbaGbaGbaGbaGbaGbaGbaGbaGbaGbahjahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl -ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahjahjahjahjawLbdYaAaaAbaAbaAbaAbaAcbdZawLahjahjahjahlbcRbhbbcRbhcbfybhdbZKbZTbiQbZGbZHbZIbZJcaAcaAcaAcaAcaAcaAcaKcaJcazcaocajcaiaYHaYHaYHaYHaYHaYHcbiaYHaYHaYHcbCbhobGPbGQcaYbaZbaZbQRbhtbeFbeGaIubhuaYQbhvaYRaYRaYRaYRbGMaynbhxaYQahjbxycltboTboUboWcltbxmahjaYWaLTbbubGNbhDbaxbeRbaxbaxaYWaXVaIuaIubeVbhKbAIbGXbhNbhObhPbgybhSbgybhRbgybgybhQbhTbhVbhUbhWbfbbhXbgEccybgEbhXbhYbgEbfcbhZcGObiabibbfgbGVbgMbidbiebifbigbigbflbihbiibijbikbilbimbinbflbGWblsbltbfqbiqbirbiqbisbitbitbfqbBBbLEahlahjahlahjahlahjahlaGbaGbaGbaGbaGbaGbaGbaGbaGbahlahjahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl +ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlarkavJbdYavJaxZawNawNcFUavJbdZavJaybbeabebbebbcRbecbedbeebefbegcdBcgmbeibejbejcgnbHuaXhaXhaXhaYybHVaXhaOOaOOaOOaOOcgBbiQcgycgpbiQcgoaNLaYHcgIaZWaZWbIgcetaYHbIeaYNbeCbaZbaZbQRaNpbeFbeGaIuaXDaYQbaibIlbbibbibeIaymaynbeJbIjbnGbIkbapbqwbqwbqwbqAbIrbrHbIucHgbInbIpbeQbaxbeRbaxbImaYWaXVaIuaIubeVbeVbeVbeVbeVbeVbeVbeWbeXbeYcgKbfabfabeWbfbbfbbfbbfbbfbbfcbfcbJLbfdbfcbfcbfcbfcbfeaYkcgRbffbfgbwnbgMaYkaYkaYkbfkbfkbflbflbflbflbflbfmbfnbfnbfncGJbfndsTbfobfnbfnbfpbfqbfqbfqbfqbIBbIwbftbfuaNsahjahlahjaGbaGbaGbaGbaGbaGbaGbaGbaGbaGbaGbahjahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl +ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahjazbaqfazcatwazdazeazfbfvbfwazdatwaziazjaqfazbarkbcRbfxbfybfybfybfzcdBcdxcdycaocaocczccCaXhaYvbfDaYybfEaXhbHpbHpaRCaRCceNceAcfzcfrcfzcfzcenaYHceqbHlaZWaZWcetbHmbHiaYNcdRbaZbaZbQRbfWbeEbeGaIubfYaYQbfZaYRbgbdtQbgcbGMaynbgfaYQahjbxycltcltcltboXbHgbHhahjaYWbgjbHcbHdbgmbaxbgnbaxbHfaYWaXVaIubgpbeVbgqbgrbgsbgtbgubeVbgvcGZbgwcfEbgybgybgybgzboLbjpbgCbfbbgDbgEbMfbgEbgEbgFbHsbfcbfgbHtbfgbfgbfgccNbgMbgMbgNbgMbgObgObflbgPbgQbgRbfldombgTdombflcmCbpOcmCbfqdolbgVdolbfqbgWbgXbfqbHrbLEaMmaMnbhaahjahlahjaGbaGbaGbaGbaGbaGbaGbaGbaGbaGbaGbahjahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl +ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahjahjahjahjawLbdYaAaaAbaAbaAbaAbaAcbdZawLahjahjahjahlbcRbhbbcRbhcbfybhdbZKbZTbiQbZGbZHbZIbZJcaAcaAcaAcaAcaAcaAcaKcaJcazcaocajcaiaYHaYHaYHaYHaYHaYHcbiaYHaYHaYHcbCbhobGPbGQcaYbaZbaZbQRbfXbeFbeGaIubhuaYQbhvaYRaYRaYRaYRbGMaynbhxaYQahjbxycltboTboUboWcltbxmahjaYWaLTbbubGNbhDbaxbeRbaxbaxaYWaXVaIuaIubeVbhKbAIbGXbhNbhObhPbgybhSbgybhRbgybgybhQbhTbhVbhUbhWbfbbhXbgEccybgEbhXbhYbgEbfcbhZcGObiabibbfgbGVbgMbidbiebifbigbigbflbihbiibijbikbilbimbinbflbGWblsbltbfqbiqbirbiqbisbitbitbfqbBBbLEahlahjahlahjahlahjahlaGbaGbaGbaGbaGbaGbaGbaGbaGbahlahjahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahjahlahlahlahlahlahlahjahjahlahlahlahlahlahjahjahlbcRbivbiwbixbiybiybizbiAbbZbhgaOOcjkcjlcjccjccjccjacjacjacjacjacjacjacjjcbCbiHbiIbMvbiKbiLbiMbRmbiOaYHbiPciKciLciNciNciWbaZbaZbQRbaZaYNbeGaIuaXDblZbMDbMCbMBbMAaYRbMEaynaYQaYQahjbxycltboUcltboUcltbxmahjaYWaYWbMybhBbjnbaxbjobMxbMwaYWaXVaIubmucjwcjBcjGcjNbjubjvbjwbgybMKbMLcjmbjAbjAbMIbMHbMJbhUbjFbfbbhXbgEccyblfbhXbMGbjGbfcbjHbjIbjJbjKbfgccNbgMbOvbOabOabNObNYbjQbNNbjSbjSbjSbNZbNxbNwbflbNpblsbNGbfqbNBbNgbNcbMWbkdbkebfqbBBbLEbgZbgZbgZbgZahjahjahjahjahjahjahjahlahlahlahlahlahlahjahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlaGcahlahlahlahlahlahlahlahlahlahlahlahlahlahl ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahjahjahlahlahlahlahlahjahjahlahlahlahlahlahjahjahlbcRbkfbcRbkgbkhbkhbkibcRbkjbkkaOObklbkmbklbklbklbkmbklaOOaOOaYHaYHaYHcilcbCbiNbiNcikbiNbiNbiNbRmbiNbkpbkqcimcitcixbRhbRhbRhbRhciwciucivciBciyciEbLCbLnbLmbLpbLoaYRbGMaynaYQahjahjbxycltboWcmWboTbLXbxmahjahjaYWaYYbMdaYWaYWaYWaYWbMcaYWbkTaIuaIubeVbkUbAIbAJbhNbhObkWbgybqLbLfbkYbIoblabMnbfbblcbMhblebfbbhXbgEciJciHbhXbMebgEbfcbfgbfgbfgbfgbfgccNbgMdqNblhblibljblkblldsVblnblobloblpbxEbmTbflbMpblsbMqbfqblublvblwbKOblydtabfqbBBbPqceYblBblCblBahlahlahlahlahlahlahjahjahjahjahjahjahjdsiahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlaaeahjahjahlahlahlahlahlahjahlahlahlahlahlahlahlahjahlbcRblDblEblFbkhblGblHbcRahlahjdsiblIblIblIblIblIblIblIahlahlblJblKblLcihcigchJchJcijchJchJchJchVchJchWchXcibcidblQblRblSblTbKKaYNblVaYNbKFblXbqFblZbmabmdbmdbmdbmdbmcbKHbmbahjahlbKJbKIbzTcltcltbJXbxmahlahjbmsbKgbKibJYbKdbKDbmsbBVbmsbmtaIuaIubeVbLgbAIbAJbmybmzbeVbmAbqLbLfbkZbmBbgybLcbfbbYFbLebLabfbbmGbLbbKXbKWbKZbKYbKUbKTbKRbKVbKRbKRbKRbKSbgMbmQbiedqCdqobmRbmScjJbmUbmVbmVbmWbKQbmYbflbpPbpObKPbfqbnbbncbndbKObitbnebfqbBBbKNbKLchEchEchEchEchEchEbKMahlahlahjahlahlahjahlahjahlahjahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahjahlahlahlahlahlahjahlahlahlahlahlahlahlahjahlbcRbnfbngbnhbnibcRbcRbcRahlahldsiblIblIblIblIblIblIblIahlahlbnjbnkbiNchAchzchBchzchzchzchzchzchCchzchHchIchDchFbnrbnsbntbnubaZbJBbnwbnxbeGbnzchyblZblZbmbbnBbJvbnDbJwbumbmbahlahlbxybJxbvJbmhbyDbJybxmahlahlbmsbJzbJAbnNbmsbnObmsbBVbmsbmtaIuaIubeVbnQbAIbAJbnRbnSbeVbnTbJJbnUcHhbnXbgybJPbfbbJObJNbJMbfbbfcbodbfcbJLbJKboeboeboeboeboeboeboeboeccNbgMblgblhblibofbogbohboibojbojbojbmWbxEdsUbrebJIbrfbJHbrhbonboobonbJGbitboqbfqbJEbJCbJCbJCbJCbJCbJCbJCbJDbLEbgZbgZbgZahlahlahjahlahjahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl -ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahjahlahlahlahlahlahlahlahlahlahlahlahlahlahjahlahlahlahlahlahlahlahlbRJahlahlahjblIblIblIblIblIblIblIboubovbowboxbiNbiNbiNbRrboyboyboybiNbiNbiNbiNbkpbozbQRbUgbTQbUabUbbUcbTIbTPbaZboGbBNboIboJboKbNoaNpboNbBMboPbBLbBKbmbahjahlbxybBDcoCcoCcoCbCcbxmahlahjbmsbCabCbbpdbmsbpebmsbBVbmsbpfaIubRTbRUbRVbRWbTybTHbpibeVbpjbqLbhRcGAbplbpmbnTbnTbpobAKbAWbprbpsbptbgybAZbBgbpwbpxbpybBibBhbBjbslboeccNbgMbpGbpFbBkbBtbBvbflbpJbojbojbpKbpLbxEbpMbsAbBwbxSbBybrhbpQbLzbitbBzbpUbpVbfqbpWbpXbpXbpXbpXbpXbpXbpXbBBbLEbpYbfGbgZbgZahjahjahjahjahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl +ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahjahlahlahlahlahlahlahlahlahlahlahlahlahlahjahlahlahlahlahlahlahlahlbRJahlahlahjblIblIblIblIblIblIblIboubovbowboxbiNbiNbiNbRrboyboyboybiNbiNbiNbiNbkpbozbQRbUgbTQbUabUbbUcbTIbTPbaZboGbBNboIboJboKbNobhtboNbBMboPbBLbBKbmbahjahlbxybBDcoCcoCcoCbCcbxmahlahjbmsbCabCbbpdbmsbpebmsbBVbmsbpfaIubRTbRUbRVbRWbTybTHbpibeVbpjbqLbhRcGAbplbpmbnTbnTbpobAKbAWbprbpsbptbgybAZbBgbpwbpxbpybBibBhbBjbslboeccNbgMbpGbpFbBkbBtbBvbflbpJbojbojbpKbpLbxEbpMbsAbBwbxSbBybrhbpQbLzbitbBzbpUbpVbfqbpWbpXbpXbpXbpXbpXbpXbpXbBBbLEbpYbfGbgZbgZahjahjahjahjahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahjahlahlahlahlahlahlahlahlahlahlahlahlahlahjahlahlahlahlahlahlahlahldsiahlahlahjblIblIblIblIblIblIblIbqabqbbqabqcbqdbiNbiNbRmbiNbiNbiNbiNbiNbqeaYHaYHbqfbRSbRhbRQbRRbqibqjbaZbqkbaZbqlbmtbnzbqnbqobqpbqqbqrbvGbqtbAHbqvbmbahlahlbxydrNcpgdrkcpgbbrbxmahlahlbqCbxgbqBbqCbqCbqCbqCbAGbqCbqEbqFbqFbeVbeVbAdbAabAbbqJbeVbqKbqLbAebrcbrcbrcbrcbrcbLhbzQbzWbzUbrcbzSbrcbLibzZbqObqPbqQbqRbqSbqTbqUboebApbAqboVbqXbqXbqZbArbAzbABbACbACbADbAEbxEbrdbrjbAfbAgbepbrhbrhbAhbrlbAibsubrhbfqbpXbpXbrkbswbrmbrnbrobpXbAFbqsbrrbrsbrtbgZahlahjahlahlahlahlahlaaeahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahldsiahlahlahjblIblIblIblIblIblIblIbrubrvbrubrwbiNbiNbiNbRrboyboyboybiNbiNbrxbryaYHbrzbaZbaZbRsbRDbRIbRLbaZbaZbaZbqlbmtbrBaIuaQQbqpbrCbrDbRqbRobRnbyHbmbahjahjbyNbyLbzxbbqbzubzvbzLahjahjbxnbyXbzobyQbyRbzqbztbzpbqCbrRaIuaIubrSbrTbxLbxMbxPbxTbrYbrZbxVbxQbxRbxRbxRbxRbxRbyxbywbytbymbyvbyubyEbyCbyFbqObsibyAbyBbsjbskbslboeccNbgMbjYbsnbxzbspbspbflbsqbsrbssbrebstbxEbnabrebmZbxDbxCbxBbxAbxKbokbxGbsDbsEbFPbsGbxFbsIbsJbsJbsJbsKbsLbyGbLEbsNblAbgZbgZahjahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlbRJahlahlahjblIblIblIblIblIblIblIbsObovbsPbsQbiNbiNbiNbRmbiNbiNbiNbiNbiNbrxbsRaYHbsSbQUbRhbQSbQTbsTbQRbaZbaZcGzbnxbnZbrBaIuaQQbqpbmbbsWbQQbsYbsXbxxbmbahlahlahjbxyckNbhyckNbxmahjahlahlbxnbtcbxibtebkKbtgbtgbxkbtibtjaIuaIubtkbtlbgybwBbwXbtnbtobtnbxfbxcbpqbwYbpqbpqbpqbttbwvbgybhRbwubtvbtvbwybwxbtybtzbwwbtAbtBbqTbslboebwnbgMbtCbtCbtCbtCbtCbflbrebrebrebrebBAbQPbtEbreboMbwlbscdtndtndtndtnbwmbtLbtMbtNbtObtPbtQbtRbtRbtSbtTbpXbNhbLEbsNblAbgZahlahjahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl @@ -9441,9 +9442,9 @@ ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlah ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahldpXahjcdcckJcdeahlcdcckJcdeahlcdcckJcdeahjahlahlahlahlahlahlahlcgccgdcgcbELbELbCvahlahlcjtcmscmocmncmrcmpcjtahlbCvcegbELcnzcmxcicclAclAclBciccmucmvcmtcnFcnHckVcmAcmvcmzcmAcmvdtocnOcnMcmFcmGcmHcmEckbcnIcicbOPclTcmKclTbOPclVcmLclVbOPclZcmMclZbOPahlahlahlahlahlahlbWhbWhbWhbZrbUQbZmbZobZpbUQahjahlahjcmNahlahlahlahlahlbRJahlahlahlahlahjahjahlahlahlahlahlahjcbnblAcmObgZcphblAbgZbPVbKLbKLbQabKLchEchEchEbPXbPYchKckGcnQcnPcmTckGahlahlahjahlahlahjahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahldpXahjcdcckJcdeahlcdcckJcdeahjcdcckJcdeahjahjahjahjahjahjahjahjbCvbCvbCvbCvbELbCvahjahjcjtcmPcoZcoUcoPcmPcjtahjbCvciccnbclecoccicclAclBclBciccndcnecmycodckbclHclGclJclGclGcnkcnlcnScnRcnocnncnncnncobcoacicbOPbOPbOPbOPbOPbOPbOPbOPbOPbOPbOPbOPbOPahlahlahlahlahlahlahlahlahlbZnbUQcfHcbOcdLbUQahjahlahlahlahlahlahlahlahlbRJahlahlahlahlahjahjahlahlahlahlahjdsicbncnrblAbrqcpGblAbgZbgZbgZbgZbgZblAbgZahlahjahlahjahlcnscntcnucnvcnwahjahjahjahjahjahjahjahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlaaRahjcdccnxcdeahlcdccnxcdeahlcdccnxcdeahjdpXahjahlahlahlahlahlahlahlahlbLWbELcaqahlahlcjtcmZcnfcpkcnqcngcjtcjtcjtciccnEclecoeciccicciccicciccnGckUcofcnpckbckUckUckUbQybQwccOckbckbcnpckUcopckUckUcohcogcicahjahlahlahlahjahjahlahlahjahlahlahlahjahlahlahlahlahlahlahlahlahlbZubUQbZmcfIbZpbUQahjahlahlahlahlahlahlahlahlbRJahlahlahlahlahlahjahlahlahlahlahldsicbnblAaBRbgZbLkblAblAblAblAblAblAblAbgZahlahjahlahjahlahjcnVcnWcnVahjahlahlahjahlahlahjahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl -ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahldpXahlahjahlahlahlahjahjahjahlahlahjahjahldpXahjahjahlahlahlahlahlahlahlbRMbELbRMahlahlcjtcoicppcpocpmcojcokcomcolcokcoFcoHcoIcoJcoKcoOcoQcoRcoSckxcoTcoVcoWcoXcoYclyconclyconcoocoscoqckxckxcotckxcoEcoDciccicciccicciccmvcmvcmvcmvcicahlahjahjahjahlahlahlahlahlahlahlahlahlbZubUQdvachpduZcfJahjahlahlahlahlaaeahlahlahlahjahlahlahlahlahlahlahlahlahlahlahlahlcoucmdcmebgZcnUbgZbgZbLlcowckEcoxbgZbgZahlahjahlahlahlahjcoycnucoyahjahlahlahlahlahlahjahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl -ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlaaHaaHdpXaaHaaHaaRdpXdpXdpXdpXaaHdpXdpXaaHcozahlahjahjahlahlahlahlahlahjbRMbELbRMahjahjcjtcpecpicpfcpicpjcprcpqcptcprcpwcmicpucpvcpPcpzcpxcpzcqNcuocqCcqMcuGcBIcupcuwcEUcEVcEUcELcFDcFzcmicqMcGwcmicGvcFRcmidbyckUbRXcicdsWdsXcpacpbcpbcpcahlahlahlahlahlahlahlahlahlahlahlahlbZubUQbUQdvbbUQbUQahjahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahjcmbahlbgZbgZcgCcgEbgZbgZahjahjahlahlahlahlahjahlcpdahlahlahlahlahlahlahlahjahlahlahlaaeahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl -ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahjahjahlahlahlahlahlcdmbELcdmahlahlcjtcjscjrcnhcnacmYcmUcmXcmVcmUcaWcamcaXckeckbcplcqDcpncmFbYecambGvbGvbGvbHWbSrcjqcpsckSckkcbTcbScbSccOckUcopcmFckOcktckqckxckvboSckhckhcpAcpBcbRcpDahlahlahlahlahlahlahlahlahlahlahlahlbZudsibUQbTYbUQcrVahjahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlaaeahlahlahlahlahlahlbqzahlahlahjahlahjahlahlahjahjahjahlahlahlahjahlcpdahlahjahlahlahjahjahjahjahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl +ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahldpXahlahjahlahlahlahjahjahjahlahlahjahjahldpXahjahjahlahlahlahlahlahlahlbRMbELbRMahlahlcjtcoicppcpocpmcaWcokcomcolcokcoFcoHcoIcoJcoKcoOcoQcoRcoSckxcoTcoVcoWcoXcoYclyconclyconcoocoscoqckxckxcotckxcoEcoDciccicciccicciccmvcmvcmvcmvcicahlahjahjahjahlahlahlahlahlahlahlahlahlbZubUQdvachpduZcfJahjahlahlahlahlaaeahlahlahlahjahlahlahlahlahlahlahlahlahlahlahlahlcoucmdcmebgZcnUbgZbgZbLlcowckEcoxbgZbgZahlahjahlahlahlahjcoycnucoyahjahlahlahlahlahlahjahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl +ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlaaHaaHdpXaaHaaHaaRdpXdpXdpXdpXaaHdpXdpXaaHcozahlahjahjahlahlahlahlahlahjbRMbELbRMahjahjcjtcaXcfucdScfDcfCcfOcfNcfPcfOcfTcfQcgfcfXcpPcpzcpxcpzcqNcuocqCcqMcuGcBIcupcuwcEUcEVcEUcELcFDcFzcmicqMcGwcmicGvcFRcmidbyckUbRXcicdsWdsXcpacpbcpbcpcahlahlahlahlahlahlahlahlahlahlahlahlbZubUQbUQdvbbUQbUQahjahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahjcmbahlbgZbgZcgCcgEbgZbgZahjahjahlahlahlahlahjahlcpdahlahlahlahlahlahlahlahjahlahlahlaaeahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl +ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahjahjahlahlahlahlahlcdmbELcdmahlahlcjtcjscjrcgHcmUckecjtcmVcmXcjtcmYckUcjucnpckbcplcqDcpncmFbYecambGvbGvbGvbHWbSrcjqcpsckSckkcbTcbScbSccOckUcopcmFckOcktckqckxckvboSckhckhcpAcpBcbRcpDahlahlahlahlahlahlahlahlahlahlahlahlbZudsibUQbTYbUQcrVahjahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlaaeahlahlahlahlahlahlbqzahlahlahjahlahjahlahlahjahjahjahlahlahlahjahlcpdahlahjahlahlahjahjahjahjahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlaaeahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahjahjahlahlahlbCvbCvbTZbCvbCvahlcjtcknckmcklcjtcjtcjtcjtcjtciccpHckUcjucnicjFcpIcpJcpKcmFcpLcpMcoAcnNcorciccpQcnLcpScopcpTciccnKcnJcnJcpMcpLcmFcpWckRckbckUbOxcicbxeckhcpZcpbcpbcqaahlahlahlahlahlahlahlaaeahlahlahlahlcmNdsibURbUSbURdsiahjahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahjahlahjahlahlcqbcqbcqbcqcahjahjahjahjcpdahjahjahjahjahjaaRcqbcqbahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahjahjahlahlbCvckdbELcqdbCvahjcjtcjtcjtcjtcjtahjahlahlahjciccqeckUckpcoNcoNckycmvcmvcqgciccqhcoBcoBcoBciccqjcqkcqlcqmcpyciccoBcoBcoBcqhciccqgcmvckTckbckUcicciccmvcmvcmvcmvcicahlahlahlahlahlahlahlahlahlahlahlahlahlahjahlahlahlahlahlahjahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahjahlahjahlahlcqbahlahjahlahjahlahlahlcqoahlahjahjahlahlahlahlcqbahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahjahjahlbLWbDicqqcqrbCvahjahlahlahjahlahlahjahlahlahjciccqscqtcmFcqucqvcqwcmvcqxcqyciccqzcoLcoMcoLcqDcqEcqFcqGcqHcpycqIcoLcoLcoLcqJciccqKcqLcleckbckYclbckXckUbZYcqIahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahjahlahjahlahlcqbahlcqOcqOcqOcqOcqOahjcqPahjcqOcqOcqOcqOcqOahlcqbahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl @@ -9458,32 +9459,32 @@ ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlah ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlcicciccrRcrHahlahlahjahlcrYahjdsidsidsiahjahjcrIahjahlahlcrHcrRciccicahlahlahjahjahjahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahjahlahlahldtzdtBdtAahlahjahjahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlcqbahjcrjcrkcrkcrkcrkcrZcsacrZcrncrncrncrncroahjcqbahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlciccrPcrQcrHahlahlahjahlahlahjahjahjahjahjahlahlahjahlahlcrHcrNcrOcicahlahlahlahjdsiahjahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahjahlahlahlahjdtzdtyahjahjahjahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlcqbahjcrBcrBcrBcrBcrBahlcpdahlcrBcrBcrBcrBcrBahlcqbahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlciccrCcrHcsbahlahlcscahlahlahlahjahlahlahlahlahlahjahlahlcrHcrHcrCcicahlahlahlaaeahjahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahjahlahlahlahjdpHdsEdpHdsGdsFdqudqudqudquahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlcqbahlahlahjahjahjahlahlcpdahjahlahlahjahjahlahlcqbahlahlahlahlaaeahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl -ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlcsdcsdcsdcsdcsdcsdcsdcsdcsdahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlaaeahlahlahlahlahlciccsecrGcrHahjahjahjcrIahlahlcrIahlahlahlahlcrIahjcsgahjcrHcrJcsicicahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahldtuahjahjahjahjdpHdsAcgfcfXcfTdsDdsCdsBdquahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlaaeahlahlahlahlcqbcqbcqbcqbcqbahlahlahlcpdahlahlahlcqbcqbcqbcqccqbahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl -ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlcsdcsdcsdcsdcsdcsdcsdcsdcsdahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlciccsjcrHcrHahlahlahjahjahjahjahjahjahjahjahjahjahjahlahlcrHcrHcsjcicahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahjahlahlahlahjdpHdswcfQdrUdrUdsudstdsvdquahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlcqbahjcskahjcqbahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl -ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlcsdcsdcsdcsdcsdcsdcsdcsdcsdahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlciccsjcrHcshahlahlahlahjahlahlahlahlahlahlahlahjahlahlahlcsfcrHcsjcicahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahjahlahlahlahjdpHdsscfQdrUdrUdsqdsodqydquahlahlahlahjahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlcqbahlahjahlcqbahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl -ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlcsdcsdcsdcsdcsdcsdcsdcsdcsdahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlclbciccicciccrHahjahjahjahlahlahlahlahlahlahjahjahjahjcrHcicciccicclbahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahjahjahjahjahjdpHdpHdcMdrUdrUdqudsndqudquahlahlahjahjahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlcqbcqbcqbcqbcqbahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl -ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlcsdcsdcsdcsdcsdcsdcsdcsdcsdahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahjahlcKQciccicciccicciccicciccicciccicciccicciccicciccicciccKQahjahjahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahjahjdsidsiahlahjahldsjcfPdrUdrUdsldskdsjahjahjahjdsidsiahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl -ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlcsdcsdcsdcsdcsdahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahjahlahlcKQcKQcKQcKQdoJcKQcKQcKQcKQcKQcKQcKQdoJcKQcKQcKQcKQahlahlahjahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahldpXdpXdshdshdpXdpXahldsdcfOdsgdsfdsccfNdsdahldpXdpXdshdshdpXdpXahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl -ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlcsdcsdcsdcsdcsdahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahjahjahjahlahlahlahlahjahjahjahjahlahlahlahlahlahjahlaaeahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahldpXdqfdrHdrYdrXdpXdpXdrScfDdckdrVdrUcfCdrSdpXdpXdrZdsadrIdqmdpXahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl +ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlcsdcsdcsdcsdcsdcsdcsdcsdcsdahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlaaeahlahlahlahlahlciccsecrGcrHahjahjahjcrIahlahlcrIahlahlahlahlcrIahjcsgahjcrHcrJcsicicahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahldtuahjahjahjahjdpHcnhcnacoGcojdsDcpedsBdquahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlaaeahlahlahlahlcqbcqbcqbcqbcqbahlahlahlcpdahlahlahlcqbcqbcqbcqccqbahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl +ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlcsdcsdcsdcsdcsdcsdcsdcsdcsdahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlciccsjcrHcrHahlahlahjahjahjahjahjahjahjahjahjahjahjahlahlcrHcrHcsjcicahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahjahlahlahlahjdpHcpicpfcpjcpjcprcpqdsvdquahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlcqbahjcskahjcqbahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl +ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlcsdcsdcsdcsdcsdcsdcsdcsdcsdahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlciccsjcrHcshahlahlahlahjahlahlahlahlahlahlahlahjahlahlahlcsfcrHcsjcicahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahjahlahlahlahjdpHcptcpfcpjcpjcpvcpudqydquahlahlahlahjahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlcqbahlahjahlcqbahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl +ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlcsdcsdcsdcsdcsdcsdcsdcsdcsdahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlclbciccicciccrHahjahjahjahlahlahlahlahlahlahjahjahjahjcrHcicciccicclbahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahjahjahjahjahjdpHdpHdcMcpjcpjdqudsndqudquahlahlahjahjahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlcqbcqbcqbcqbcqbahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl +ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlcsdcsdcsdcsdcsdcsdcsdcsdcsdahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahjahlcKQciccicciccicciccicciccicciccicciccicciccicciccicciccKQahjahjahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahjahjdsidsiahlahjahldsjcpwcpjcpjdbDdbBdsjahjahjahjdsidsiahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl +ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlcsdcsdcsdcsdcsdahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahjahlahlcKQcKQcKQcKQdoJcKQcKQcKQcKQcKQcKQcKQdoJcKQcKQcKQcKQahlahlahjahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahldpXdpXdshdshdpXdpXahldsddckdeiddDdpIdpGdsdahldpXdpXdshdshdpXdpXahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl +ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlcsdcsdcsdcsdcsdahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahjahjahjahlahlahlahlahjahjahjahjahlahlahlahlahlahjahlaaeahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahldpXdqfdrHdrYdrXdpXdpXdrSdqUdqXdqVdqZdqYdrSdpXdpXdrZdsadrIdqmdpXahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlcsdcsdcsdcsdcsdcsdcsdcsdcsdcsdahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahjahlahlahlahlahlahlahlahjahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahldpXdqfdrHdrIdrOdqidrcdrcdrKdcedrcdrLdrMdrcdrcdqidrJdrHdrIdqmdpXahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlcsdcsdcsdcsdcsdcsdcsdcsdcsdcsdahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahjahlahlahlahlahlahlahlahjahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahldpXdqfdrEdrGdqpdqpdrFcfydrzdbTdbJdbJcfBcfAduPdqedqedrxdrydqmdpXahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl -ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlcsdcsdcsdcsdcsdcsdcsdcsdcsdcsdcsdcsdcsdcsdahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlaaeahlahlahlahlahjahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahldpXdqfceRdrRdrQdrQdrcdrpdredredrudredredrodrcdrQdrQdrPdpZdqmdpXahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlaaeahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl -ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlcsdcsdcsdcsdcsdcsdcsdcsdcsdcsdcsdcsdcsdcsdahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahldpXdqfceRdqmahlahldrccfxdrwdrtdpIdrrdrscfwdrcahlahldqfdpZdqmdpXahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl -ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlcsdcsdcsdcsdcsdcsdcsdcsdcsdcsdcsdcsdcsdcsdahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahldpXdqfcftdpHdpHdpHdrccfudredrfdpGdrfdredridrcdpHdpHdpHcfvdqmdpXahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl -ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlcsdcsdcsdcsdcsdcsdcsdcsdcsdcsdcsdcsdcsdcsdahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahldpXdqfceRdqmahlahldrcdsYcoGdrfdrfdtqcoGdsZdrcahlahldqfdpZdqmdpXahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlcslcslcslcslcslcslcslcslcslahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl -ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlcsdcsdcsdcsdcsdcsdcsdcsdcsdcsdcsdcsdcsdcsdcsdcsdcsdahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahldpXdqfceRdqmahlahldqudqQdqtdqTdqUaXNdqvdqWdquahlahldqfdpZdqmdpXahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlcslcslcslcslcslcslcslcslcslahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl -ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlcsdcsdcsdcsdcsdcsdcsdcsdcsdcsdcsdcsdcsdcsdcsdcsdcsdahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahldpXdqfceRdqmahldquaXNdqZdqDdqYbandqXdqDdqVaXNdquahldqfdpZdqmdpXahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlcslcslcslcslcslcslcslcslcslahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl -ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlcsdcsdcsdcsdcsdcsdcsdcsdcsdcsdcsdcsdcsdcsdcsdcsdcsdahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahldpXdqfceRdqmahldquaXNcmlbanbandqObanbancovaXNdquahldqfdpZdqmdpXahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlcslcslcslcslcslcslcslcslcslahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl -ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlcsdcsdcsdcsdcsdcsdcsdcsdcsdcsdcsdcsdcsdcsdcsdcsdcsdahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahldpXdqfcfsdpHdpHdquaXNdqDbanbcybcybcybandqDaXNdqudpHdpHdqSdqmdpXahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlcslcslcslcslcslcslcslcslcslahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl +ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlcsdcsdcsdcsdcsdcsdcsdcsdcsdcsdcsdcsdcsdcsdahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlaaeahlahlahlahlahjahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahldpXdqfceRdrRdrQdrQdrcdrpdredredrfdredredrodrcdrQdrQdrPdpZdqmdpXahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlaaeahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl +ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlcsdcsdcsdcsdcsdcsdcsdcsdcsdcsdcsdcsdcsdcsdahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahldpXdqfceRdqmahlahldrccfxdrwdrtdridrrdrscfwdrcahlahldqfdpZdqmdpXahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl +ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlcsdcsdcsdcsdcsdcsdcsdcsdcsdcsdcsdcsdcsdcsdahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahldpXdqfcftdpHdpHdpHdrcdrUdrudrVdrVdsfdscdsgdrcdpHdpHdpHcfvdqmdpXahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl +ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlcsdcsdcsdcsdcsdcsdcsdcsdcsdcsdcsdcsdcsdcsdahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahldpXdqfceRdqmahlahlaXNdqQdqtdqTdskaXNdqvdqWaXNahlahldqfdpZdqmdpXahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlcslcslcslcslcslcslcslcslcslahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl +ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlcsdcsdcsdcsdcsdcsdcsdcsdcsdcsdcsdcsdcsdcsdcsdcsdcsdahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahldpXdqfceRdqmahlahlaXNdsodsldssdsqdsudstdswaXNahlahldqfdpZdqmdpXahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlcslcslcslcslcslcslcslcslcslahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl +ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlcsdcsdcsdcsdcsdcsdcsdcsdcsdcsdcsdcsdcsdcsdcsdcsdcsdahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahldpXdqfceRdqmahlaXNaXNdsAdqDbanbanbandqDdsCaXNaXNahldqfdpZdqmdpXahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlcslcslcslcslcslcslcslcslcslahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl +ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlcsdcsdcsdcsdcsdcsdcsdcsdcsdcsdcsdcsdcsdcsdcsdcsdcsdahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahldpXdqfceRdqmahlaXNaXNcmlbanbandqObanbancovaXNaXNahldqfdpZdqmdpXahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlcslcslcslcslcslcslcslcslcslahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl +ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlcsdcsdcsdcsdcsdcsdcsdcsdcsdcsdcsdcsdcsdcsdcsdcsdcsdahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahldpXdqfcfsdpHdpHaXNaXNdqDbanbcybcybcybandqDaXNaXNdpHdpHdqSdqmdpXahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlcslcslcslcslcslcslcslcslcslahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlcsdcsdcsdcsdcsdcsdcsdcsdcsdcsdcsdcsdcsdcsdcsdcsdcsdahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahldpXdqfceRdqmdquaXNdqFdqDdqGbcydqIbcydqGdqDdqHaXNdqudqfdpZdqmdpXahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlcslcslcslcslcslahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl -ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlcsdcsdcsdcsdcsdcsdcsdcsdcsdcsdcsdcsdcsdcsdcsdcsdcsdahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlcsmcsmcsmcsmcsmcsmcsmcsmcsmahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahldpXdqfceRdqmahldquaXNdqDbandqKdqLdqJbandqDaXNdquahldqfdpZdqmdpXahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlcslcslcslcslcslahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl -ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlcsdcsdcsdcsdcsdahlcsdcsdcsdcsdcsdahlcsdcsdcsdcsdcsdahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlcsmcsmcsmcsmcsmcsmcsmcsmcsmahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahldpXdqfceRdqmahldquaXNcmlbanbandqzbanbancovaXNdquahldqfdpZdqmdpXahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlcslcslcslcslcslcslcslcslcslcslahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl -ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlcsdcsdcsdcsdcsdahlcsdcsdcsdcsdcsdahlcsdcsdcsdcsdcsdahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlcsmcsmcsmcsmcsmcsmcsmcsmcsmahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahldpXdqfceRdqmahldquaXNdtlbandqAdqBbxdbandtlaXNdquahldqfdpZdqmdpXahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlcslcslcslcslcslcslcslcslcslcslahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl -ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlcsdcsdcsdcsdcsdahlahlahlahlahlahlahlcsdcsdcsdcsdcsdahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlcsmcsmcsmcsmcsmcsmcsmcsmcsmahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahldpXdqfceUdpHdpHdpHdquaXNdqvaXNdqwaXNdqtaXNdqudpHdpHdpHceSdqmdpXahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlcslcslcslcslcslcslcslcslcslcslcslcslcslcslahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl +ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlcsdcsdcsdcsdcsdcsdcsdcsdcsdcsdcsdcsdcsdcsdcsdcsdcsdahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlcsmcsmcsmcsmcsmcsmcsmcsmcsmahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahldpXdqfceRdqmahlaXNaXNdqDbandqKdqLdqJbandqDaXNaXNahldqfdpZdqmdpXahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlcslcslcslcslcslahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl +ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlcsdcsdcsdcsdcsdahlcsdcsdcsdcsdcsdahlcsdcsdcsdcsdcsdahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlcsmcsmcsmcsmcsmcsmcsmcsmcsmahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahldpXdqfceRdqmahlaXNaXNcmlbanbandqzbanbancovaXNaXNahldqfdpZdqmdpXahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlcslcslcslcslcslcslcslcslcslcslahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl +ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlcsdcsdcsdcsdcsdahlcsdcsdcsdcsdcsdahlcsdcsdcsdcsdcsdahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlcsmcsmcsmcsmcsmcsmcsmcsmcsmahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahldpXdqfceRdqmahlaXNaXNdtlbandqAdqBbxdbandtlaXNaXNahldqfdpZdqmdpXahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlcslcslcslcslcslcslcslcslcslcslahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl +ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlcsdcsdcsdcsdcsdahlahlahlahlahlahlahlcsdcsdcsdcsdcsdahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlcsmcsmcsmcsmcsmcsmcsmcsmcsmahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahldpXdqfceUdpHdpHbcyaXNaXNdqvaXNdqwaXNdqtaXNaXNbcydpHdpHceSdqmdpXahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlcslcslcslcslcslcslcslcslcslcslcslcslcslcslahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlcsmcsmcsmcsmcsmcsmcsmcsmcsmahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahldpXdqfceRdqmahlahlahldbEdbEdbEdtjdbEdbEdbEahlahlahldqfdpZdqmdpXahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlcslcslcslcslcslcslcslcslcslcslcslcslcslcslahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlcsmcsmcsmcsmcsmahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahldpXdqfceRdqmahlahjahlcHxcHydbhdbidbodbqcHxahlahlahldqfdpZdqmdpXahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlcslcslcslcslcslcslcslcslcslcslcslcslcslcslahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl -ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlcsmcsmcsmcsmcsmahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahldpXdqfceRdqhdqidqjdqjcHxdbAdbvdbxdbBdbDcHxdqidqidqidqkdpZdqmdpXahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlcslcslcslcslcslcslcslcslcslcslcslcslcslcslahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl -ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlcsmcsmcsmcsmcsmcsmcsmcsmcsmcsmahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahldpXdqfdqndqqdqpdqpdqpdhldgEdfedejdeiddDddCdqedqedqedqedqrdqmdpXahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlcslcslcslcslcslcslcslcslcslcslcslcslcslcslcslcslcslahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl +ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlcsmcsmcsmcsmcsmahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahldpXdqfceRdqhdqidqjdqjcHxdbAdbvdbxdsZdsYcHxdqidqidqidqkdpZdqmdpXahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlcslcslcslcslcslcslcslcslcslcslcslcslcslcslahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl +ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlcsmcsmcsmcsmcsmcsmcsmcsmcsmcsmahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahldpXdqfdqndqqdqpdqpdqpdhldgEdfedejdwedtqddCdqedqedqedqedqrdqmdpXahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlcslcslcslcslcslcslcslcslcslcslcslcslcslcslcslcslcslahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlcsmcsmcsmcsmcsmcsmcsmcsmcsmcsmahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahldpXahldrQdrQdrQdrQdrQcHxddnddpddodcZcglddldsNdrQdrQdtZdtZahldpXahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlcslcslcslcslcslcslcslcslcslcslcslcslcslcslcslcslcslahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlcsmcsmcsmcsmcsmcsmcsmcsmcsmcsmcsmcsmcsmcsmahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahldpXdpXdpXdpXdpXdpXdpXcHxdozdoydoxdoHdoDcHxdpXdpXdpXdpXdpXdpXdpXahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlcslcslcslcslcslcslcslcslcslcslcslcslcslcslcslcslcslahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlcsmcsmcsmcsmcsmcsmcsmcsmcsmcsmcsmcsmcsmcsmahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahjahjcHxcHxdoudosdowcHxcHxahlahlahjahjahjahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlcslcslcslcslcslcslcslcslcslcslcslcslcslcslcslcslcslahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl From ad51cb8cfdafbb2e1b056e48cd9ced8d25e9c176 Mon Sep 17 00:00:00 2001 From: WJohn Date: Tue, 4 Nov 2014 11:55:18 -0500 Subject: [PATCH 029/102] Map fixes for metastation. --- _maps/map_files/MetaStation.v39K.dmm | 247 +++++++++++++-------------- 1 file changed, 123 insertions(+), 124 deletions(-) diff --git a/_maps/map_files/MetaStation.v39K.dmm b/_maps/map_files/MetaStation.v39K.dmm index 19460c3ab6b..4425c5a6261 100644 --- a/_maps/map_files/MetaStation.v39K.dmm +++ b/_maps/map_files/MetaStation.v39K.dmm @@ -175,7 +175,7 @@ "ads" = (/turf/simulated/floor/plating,/area/maintenance/fore) "adt" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable/yellow{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/simulated/floor{icon_state = "red"},/area/security/main) "adu" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/structure/cable/yellow{d2 = 8; icon_state = "0-8"},/turf/simulated/floor/plating,/area/security/warden) -"adv" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{},/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/simulated/floor{icon_state = "red"},/area/security/main) +"adv" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/atmospherics/pipe/manifold/supply/hidden,/turf/simulated/floor{dir = 2; icon_state = "redcorner"},/area/security/prison) "adw" = (/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/machinery/power/tracker,/turf/simulated/floor/plating/airless,/area/solar/auxstarboard) "adx" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = ""},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"; tag = ""},/turf/simulated/floor/plating/airless,/area/solar/auxport) "ady" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = ""},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"; tag = ""},/turf/simulated/floor/plating/airless,/area/solar/auxport) @@ -388,7 +388,7 @@ "ahx" = (/obj/item/target,/obj/item/target,/obj/item/target/alien,/obj/item/target/alien,/obj/item/target/alien,/obj/item/target/syndicate,/obj/item/target/syndicate,/obj/item/target/syndicate,/obj/structure/closet/crate/secure{desc = "A secure crate containing various materials for building a customised test-site."; name = "Firing Range Gear Crate"; req_access_txt = "1"},/obj/machinery/power/apc{cell_type = 2500; dir = 4; name = "Shooting Range APC"; pixel_x = 24; pixel_y = 0},/obj/structure/cable/yellow{d2 = 8; icon_state = "0-8"},/turf/simulated/floor{dir = 8; icon_state = "warning"},/area/security/range) "ahy" = (/obj/structure/stool/bed/chair/comfy/black,/obj/effect/landmark/start{name = "Head of Security"},/turf/simulated/floor,/area/security/main) "ahz" = (/obj/structure/table/reinforced,/obj/machinery/recharger,/turf/simulated/floor,/area/security/main) -"ahA" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{},/turf/simulated/floor{tag = "icon-vault (WEST)"; icon_state = "vault"; dir = 8},/area/security/warden) +"ahA" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden,/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/light{dir = 1},/turf/simulated/floor{dir = 2; icon_state = "redcorner"},/area/security/prison) "ahB" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor{tag = "icon-vault (WEST)"; icon_state = "vault"; dir = 8},/area/security/warden) "ahC" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor{icon_state = "showroomfloor"},/area/security/warden) "ahD" = (/obj/structure/cable/yellow{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/simulated/floor{icon_state = "red"; dir = 1},/area/security/brig) @@ -505,7 +505,7 @@ "ajK" = (/obj/structure/stool/bed/chair{dir = 8},/turf/simulated/floor{dir = 1; icon_state = "neutralcorner"},/area/crew_quarters/fitness{name = "\improper Recreation Area"}) "ajL" = (/obj/structure/rack{dir = 1},/obj/item/clothing/under/rank/mailman,/obj/item/clothing/under/rank/vice{pixel_x = 4; pixel_y = -3},/turf/simulated/floor/plating,/area/maintenance/fpmaint2{name = "Port Maintenance"}) "ajM" = (/obj/machinery/door/airlock/glass_security{name = "N2O Storage"; req_access_txt = "3"},/turf/simulated/floor{icon_state = "dark"},/area/maintenance/fore) -"ajN" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor{icon_state = "red"; dir = 1},/area/security/main) +"ajN" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden,/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor{icon_state = "red"; dir = 1},/area/security/main) "ajO" = (/obj/machinery/light{dir = 1},/obj/item/device/radio/intercom{freerange = 0; frequency = 1459; name = "Station Intercom (General)"; pixel_x = 0; pixel_y = 26},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor{icon_state = "red"; dir = 1},/area/security/main) "ajP" = (/obj/structure/cable/yellow{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/turf/simulated/floor{icon_state = "red"; dir = 1},/area/security/main) "ajQ" = (/obj/machinery/flasher{id = "Cell 1"; pixel_x = -28},/obj/machinery/atmospherics/unary/vent_scrubber{dir = 1; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/simulated/floor{icon_state = "floorgrime"},/area/security/brig) @@ -777,7 +777,7 @@ "aoW" = (/obj/structure/table,/obj/item/weapon/folder/red,/obj/item/device/taperecorder{pixel_y = 0},/obj/item/device/radio/intercom{anyai = 1; broadcasting = 1; freerange = 1; frequency = 1424; listening = 0; name = "Interrogation Intercom"; pixel_x = 0; pixel_y = -24},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor{icon_state = "dark"},/area/security/brig) "aoX" = (/obj/structure/stool/bed/chair{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor{icon_state = "dark"},/area/security/brig) "aoY" = (/obj/effect/landmark{name = "xeno_spawn"; pixel_x = -1},/obj/item/weapon/storage/box/lights/mixed,/obj/effect/decal/cleanable/cobweb,/turf/simulated/floor/plating,/area/maintenance/fpmaint2{name = "Port Maintenance"}) -"aoZ" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/manifold/supply/hidden{},/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 1},/area/maintenance/fore) +"aoZ" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden,/turf/simulated/floor{tag = "icon-vault (WEST)"; icon_state = "vault"; dir = 8},/area/security/warden) "apa" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 2; initialize_directions = 11},/turf/simulated/floor{dir = 2; icon_state = "redcorner"},/area/security/brig) "apb" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/structure/extinguisher_cabinet{pixel_x = 27; pixel_y = 0},/turf/simulated/floor{icon_state = "red"; dir = 6},/area/security/brig) "apc" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 9},/obj/structure/cable/yellow{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 1},/area/maintenance/fore) @@ -853,7 +853,7 @@ "aqu" = (/obj/machinery/light/small{dir = 4},/turf/simulated/floor/plating,/area/security/prison) "aqv" = (/turf/simulated/floor{icon_state = "red"; dir = 1},/area/security/brig) "aqw" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor{tag = "icon-vault"; icon_state = "vault"},/area/security/main) -"aqx" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{},/obj/structure/disposalpipe/segment,/turf/simulated/floor{icon_state = "redcorner"; dir = 4},/area/security/brig) +"aqx" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden,/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/simulated/floor{icon_state = "red"},/area/security/main) "aqy" = (/obj/structure/table,/obj/structure/window/reinforced{dir = 4},/obj/item/weapon/paper_bin{pixel_x = -3; pixel_y = 7},/obj/item/weapon/pen,/turf/simulated/floor{dir = 5; icon_state = "whitered"},/area/security/brig) "aqz" = (/obj/structure/disposalpipe/segment,/obj/machinery/door_control{id = "qm_mine_warehouse"; name = "Warehouse Door Control"; pixel_x = -24; pixel_y = 28; req_access_txt = "48"},/turf/simulated/floor{dir = 4; icon_state = "loadingarea"; tag = "loading"},/area/quartermaster/sorting{name = "\improper Warehouse"}) "aqA" = (/obj/machinery/door/poddoor{density = 0; icon_state = "open"; id = "briglockdown"; name = "Security Blast Door"; opacity = 0},/obj/machinery/atmospherics/pipe/simple/supply/hidden{req_access_txt = 1},/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass_security{id_tag = "outerbrigdoor"; name = "Brig"; req_access_txt = "63"},/turf/simulated/floor{icon_state = "red"; dir = 1},/area/security/brig) @@ -1220,7 +1220,7 @@ "axx" = (/obj/machinery/ai_slipper{icon_state = "motion0"},/obj/machinery/alarm{pixel_y = 23},/turf/simulated/floor/bluegrid,/area/turret_protected/ai) "axy" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 1},/obj/structure/sign/pods{pixel_y = 30},/turf/simulated/floor{dir = 2; icon_state = "redcorner"},/area/security/prison) "axz" = (/obj/machinery/light/small{dir = 4},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor{icon_state = "red"; dir = 5},/area/security/brig) -"axA" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/light{dir = 1},/turf/simulated/floor{dir = 2; icon_state = "redcorner"},/area/security/prison) +"axA" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/manifold/supply/hidden,/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 1},/area/maintenance/fore) "axB" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plating,/area/crew_quarters/fitness{name = "\improper Recreation Area"}) "axC" = (/obj/machinery/computer/HolodeckControl,/turf/simulated/floor,/area/crew_quarters/fitness{name = "\improper Recreation Area"}) "axD" = (/obj/machinery/computer/secure_data/detective_computer,/obj/item/weapon/folder/documents,/turf/simulated/floor{tag = "icon-vault (WEST)"; icon_state = "vault"; dir = 8},/area/security/nuke_storage) @@ -1398,7 +1398,7 @@ "aAT" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor{dir = 2; icon_state = "redcorner"},/area/security/prison) "aAU" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating,/area/engine/engineering) "aAV" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plating,/area/engine/engineering) -"aAW" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/atmospherics/pipe/manifold/supply/hidden{},/turf/simulated/floor{dir = 2; icon_state = "redcorner"},/area/security/prison) +"aAW" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden,/obj/structure/disposalpipe/segment,/turf/simulated/floor{icon_state = "redcorner"; dir = 4},/area/security/brig) "aAX" = (/obj/structure/rack,/obj/item/weapon/gun/energy/laser{pixel_x = -3; pixel_y = 3},/obj/item/weapon/gun/energy/laser,/obj/item/weapon/gun/energy/laser{pixel_x = 3; pixel_y = -3},/turf/simulated/floor{tag = "icon-vault (EAST)"; icon_state = "vault"; dir = 4},/area/security/warden) "aAY" = (/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/computer/prisoner,/turf/simulated/floor{tag = "icon-darkred (NORTHEAST)"; icon_state = "darkred"; dir = 5},/area/bridge) "aAZ" = (/obj/machinery/door/airlock/external,/turf/simulated/floor/plating,/area/construction) @@ -1414,7 +1414,7 @@ "aBj" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor{icon_state = "L12"},/area/hallway/primary/central) "aBk" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/effect/landmark/start{name = "Cargo Technician"},/turf/simulated/floor{icon_state = "floorgrime"},/area/quartermaster/sorting{name = "\improper Warehouse"}) "aBl" = (/obj/item/stack/sheet/cardboard,/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor{icon_state = "floorgrime"},/area/quartermaster/sorting{name = "\improper Warehouse"}) -"aBm" = (/obj/structure/table/reinforced,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/item/weapon/contraband/poster/legit,/turf/simulated/floor{dir = 2; icon_state = "arrival"},/area/quartermaster/office{name = "\improper Cargo Office"}) +"aBm" = (/obj/structure/table/reinforced,/obj/item/weapon/paper_bin{pixel_x = -1; pixel_y = 6},/obj/item/weapon/contraband/poster/legit,/turf/simulated/floor{dir = 2; icon_state = "warning"},/area/quartermaster/storage) "aBn" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/wall/r_wall,/area/security/nuke_storage) "aBo" = (/obj/structure/sign/securearea,/turf/simulated/wall/r_wall,/area/security/nuke_storage) "aBp" = (/obj/machinery/door/airlock/vault{icon_state = "door_locked"; locked = 1; req_access_txt = "53"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor{tag = "icon-vault (NORTHEAST)"; icon_state = "vault"; dir = 5},/area/security/nuke_storage) @@ -1617,7 +1617,7 @@ "aFe" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/wall,/area/quartermaster/sorting{name = "\improper Warehouse"}) "aFf" = (/turf/simulated/wall,/area/quartermaster/sorting{name = "\improper Warehouse"}) "aFg" = (/obj/structure/grille,/obj/structure/window/reinforced/tinted{dir = 5; health = 120; icon_state = "twindow"; reinf = 0},/turf/simulated/floor/plating,/area/engine/break_room) -"aFh" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/cable/yellow,/obj/machinery/door/poddoor/preopen{id = "bridge blast"; name = "bridge blast door"},/turf/simulated/floor/plating,/area/bridge) +"aFh" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/structure/grille,/obj/structure/cable/yellow{d2 = 4; icon_state = "0-4"},/obj/structure/cable/yellow{d2 = 2; icon_state = "0-2"},/obj/machinery/door/poddoor/preopen{id = "bridge blast"; layer = 2.9; name = "bridge blast door"},/turf/simulated/floor/plating,/area/bridge) "aFi" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/effect/spawner/lootdrop{loot = list("/obj/structure/grille","/obj/structure/grille","/obj/structure/grille","/obj/structure/grille","/obj/structure/grille","/obj/item/weapon/cigbutt","/obj/item/trash/cheesie","/obj/item/trash/candy","/obj/item/trash/chips","/obj/item/trash/deadmouse","/obj/item/trash/pistachios","/obj/item/trash/plate","/obj/item/trash/popcorn","/obj/item/trash/raisins","/obj/item/trash/sosjerky","/obj/item/trash/syndi_cakes"); name = "maint grille or trash spawner"},/turf/simulated/floor/plating,/area/maintenance/fore) "aFj" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 9},/turf/simulated/floor,/area/engine/break_room) "aFk" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor{dir = 1; icon_state = "yellow"},/area/engine/break_room) @@ -1627,7 +1627,7 @@ "aFo" = (/obj/structure/table,/obj/item/weapon/book/manual/wiki/engineering_hacking{pixel_x = 4; pixel_y = 5},/obj/item/weapon/book/manual/wiki/engineering_construction{pixel_y = 3},/obj/item/weapon/book/manual/wiki/engineering_guide{pixel_x = -4; pixel_y = 0},/turf/simulated/floor{dir = 1; icon_state = "yellow"},/area/engine/break_room) "aFp" = (/obj/machinery/light_switch{pixel_y = 28},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor,/area/quartermaster/office{name = "\improper Cargo Office"}) "aFq" = (/obj/structure/closet/secure_closet/hos,/obj/machinery/light{dir = 8},/obj/machinery/alarm{dir = 4; icon_state = "alarm0"; pixel_x = -22},/obj/item/device/radio/intercom{freerange = 0; frequency = 1459; name = "Station Intercom (General)"; pixel_x = -29; pixel_y = 23},/turf/simulated/floor{icon_state = "dark"},/area/security/hos) -"aFr" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/cable/yellow{d2 = 8; icon_state = "0-8"},/obj/structure/cable/yellow,/obj/machinery/door/poddoor/preopen{id = "bridge blast"; name = "bridge blast door"},/turf/simulated/floor/plating,/area/bridge) +"aFr" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/grille,/obj/structure/cable/yellow{d2 = 8; icon_state = "0-8"},/obj/structure/cable/yellow{d2 = 4; icon_state = "0-4"},/obj/machinery/door/poddoor/preopen{id = "bridge blast"; layer = 2.9; name = "bridge blast door"},/turf/simulated/floor/plating,/area/bridge) "aFs" = (/turf/simulated/wall/r_wall,/area/turret_protected/ai_upload) "aFt" = (/obj/machinery/firealarm{dir = 4; pixel_x = 24},/obj/machinery/light{dir = 4; icon_state = "tube1"},/turf/simulated/floor,/area/engine/break_room) "aFu" = (/obj/structure/disposalpipe/segment,/mob/living/simple_animal/mouse,/turf/simulated/floor/plating{tag = "icon-platingdmg2"; icon_state = "platingdmg2"},/area/maintenance/fpmaint2{name = "Port Maintenance"}) @@ -1644,7 +1644,7 @@ "aFF" = (/obj/machinery/door/airlock/shuttle{name = "Labor Shuttle Airlock"; req_access_txt = "2"},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/laborcamp/station) "aFG" = (/obj/machinery/alarm{dir = 4; icon_state = "alarm0"; pixel_x = -22},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/closet/wardrobe/red,/turf/simulated/floor{icon_state = "red"; dir = 10},/area/security/checkpoint2{name = "Customs"}) "aFH" = (/obj/machinery/firealarm{dir = 4; pixel_x = 24},/obj/item/weapon/crowbar,/obj/item/device/flash,/turf/simulated/floor{icon_state = "red"; dir = 6},/area/security/checkpoint2{name = "Customs"}) -"aFI" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/grille,/obj/structure/cable/yellow{d2 = 8; icon_state = "0-8"},/obj/structure/cable/yellow{d2 = 2; icon_state = "0-2"},/obj/machinery/door/poddoor/preopen{id = "bridge blast"; name = "bridge blast door"},/turf/simulated/floor/plating,/area/bridge) +"aFI" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/grille,/obj/structure/cable/yellow{d2 = 8; icon_state = "0-8"},/obj/structure/cable/yellow{d2 = 4; icon_state = "0-4"},/obj/structure/cable/yellow{d2 = 2; icon_state = "0-2"},/obj/machinery/door/poddoor/preopen{id = "bridge blast"; layer = 2.9; name = "bridge blast door"},/turf/simulated/floor/plating,/area/bridge) "aFJ" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/door/firedoor,/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor{dir = 2; icon_state = "neutralcorner"},/area/hallway/primary/central) "aFK" = (/obj/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/cable/yellow{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/simulated/floor,/area/quartermaster/office{name = "\improper Cargo Office"}) "aFL" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/lattice,/turf/space,/area/space) @@ -1680,13 +1680,13 @@ "aGp" = (/obj/structure/window/reinforced{dir = 8},/turf/space,/area/space) "aGq" = (/obj/structure/window/reinforced{dir = 4; pixel_x = 0},/turf/space,/area/space) "aGr" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 5},/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/turf/simulated/floor/plating,/area/maintenance/fpmaint2{name = "Port Maintenance"}) -"aGs" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 6},/obj/effect/landmark/start{name = "Cargo Technician"},/turf/simulated/floor,/area/quartermaster/office{name = "\improper Cargo Office"}) +"aGs" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/cable/yellow{d2 = 8; icon_state = "0-8"},/obj/machinery/door/poddoor/preopen{id = "bridge blast"; layer = 2.9; name = "bridge blast door"},/turf/simulated/floor/plating,/area/bridge) "aGt" = (/obj/structure/closet/crate,/turf/simulated/floor,/area/construction) "aGu" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plating,/area/quartermaster/storage) "aGv" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/wall/r_wall,/area/turret_protected/ai) "aGw" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 8},/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/turf/simulated/floor{dir = 4; icon_state = "yellowcorner"},/area/hallway/primary/central) "aGx" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 1; initialize_directions = 11},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor{dir = 8; icon_state = "cautioncorner"},/area/hallway/primary/starboard) -"aGy" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 8; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 6},/turf/simulated/floor,/area/quartermaster/office{name = "\improper Cargo Office"}) +"aGy" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/grille,/obj/structure/cable/yellow{d2 = 2; icon_state = "0-2"},/obj/structure/cable/yellow{d2 = 4; icon_state = "0-4"},/obj/structure/cable/yellow{d2 = 8; icon_state = "0-8"},/obj/machinery/door/poddoor/preopen{id = "bridge blast"; layer = 2.9; name = "bridge blast door"},/turf/simulated/floor/plating,/area/bridge) "aGz" = (/obj/machinery/firealarm{dir = 2; pixel_y = 24},/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 1},/turf/simulated/floor,/area/quartermaster/office{name = "\improper Cargo Office"}) "aGA" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor{dir = 8; icon_state = "brown"},/area/hallway/primary/port) "aGB" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass_mining{name = "Cargo Office"; req_access_txt = "0"; req_one_access_txt = "48;50"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor{icon_state = "delivery"; name = "floor"},/area/quartermaster/office{name = "\improper Cargo Office"}) @@ -1694,13 +1694,13 @@ "aGD" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor,/area/quartermaster/storage) "aGE" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor,/area/hallway/primary/port) "aGF" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor,/area/hallway/primary/port) -"aGG" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/grille,/obj/structure/cable/yellow{d2 = 4; icon_state = "0-4"},/obj/structure/cable/yellow{d2 = 8; icon_state = "0-8"},/obj/machinery/door/poddoor/preopen{id = "bridge blast"; name = "bridge blast door"},/turf/simulated/floor/plating,/area/bridge) +"aGG" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/cable/yellow{d2 = 4; icon_state = "0-4"},/obj/machinery/door/poddoor/preopen{id = "bridge blast"; layer = 2.9; name = "bridge blast door"},/turf/simulated/floor/plating,/area/bridge) "aGH" = (/turf/simulated/floor{dir = 2; icon_state = "browncorner"},/area/hallway/primary/port) "aGI" = (/obj/structure/disposalpipe/sortjunction{dir = 2; icon_state = "pipe-j1s"; sortType = 2},/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 4},/obj/structure/cable/yellow{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/simulated/floor,/area/hallway/primary/port) "aGJ" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/door/airlock/maintenance{req_access_txt = "0"; req_one_access_txt = "12;50"},/turf/simulated/floor/plating,/area/maintenance/fpmaint2{name = "Port Maintenance"}) "aGK" = (/obj/machinery/power/apc{dir = 8; name = "Custodial Closet APC"; pixel_x = -24},/obj/structure/table,/obj/item/clothing/gloves/orange,/obj/item/weapon/storage/box/mousetraps,/obj/item/weapon/storage/box/mousetraps,/obj/structure/cable/yellow{d2 = 4; icon_state = "0-4"},/turf/simulated/floor{icon_state = "floorgrime"},/area/janitor) "aGL" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 8; on = 1},/turf/simulated/floor/carpet,/area/crew_quarters/captain{name = "\improper Captain's Quarters"}) -"aGM" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/cable/yellow{d2 = 8; icon_state = "0-8"},/obj/machinery/door/poddoor/preopen{id = "bridge blast"; name = "bridge blast door"},/turf/simulated/floor/plating,/area/bridge) +"aGM" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/grille,/obj/structure/cable/yellow{d2 = 4; icon_state = "0-4"},/obj/structure/cable/yellow{d2 = 8; icon_state = "0-8"},/obj/machinery/door/poddoor/preopen{id = "bridge blast"; layer = 2.9; name = "bridge blast door"},/turf/simulated/floor/plating,/area/bridge) "aGN" = (/obj/machinery/door/firedoor,/turf/simulated/floor{dir = 2; icon_state = "brown"},/area/hallway/primary/port) "aGO" = (/obj/machinery/camera{c_tag = "Arrivals Shuttle"; dir = 2; network = list("SS13")},/turf/simulated/shuttle/floor,/area/shuttle/arrival/station) "aGP" = (/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 5},/turf/simulated/floor/plating,/area/maintenance/fpmaint2{name = "Port Maintenance"}) @@ -1710,7 +1710,7 @@ "aGT" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 6},/obj/structure/disposalpipe/segment,/turf/simulated/floor/carpet,/area/crew_quarters/captain{name = "\improper Captain's Quarters"}) "aGU" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/wall/r_wall,/area/turret_protected/ai_upload) "aGV" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 4},/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/turf/simulated/floor/plating,/area/maintenance/fpmaint2{name = "Port Maintenance"}) -"aGW" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/cable/yellow{d2 = 4; icon_state = "0-4"},/obj/machinery/door/poddoor/preopen{id = "bridge blast"; name = "bridge blast door"},/turf/simulated/floor/plating,/area/bridge) +"aGW" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/grille,/obj/structure/cable/yellow{d2 = 8; icon_state = "0-8"},/obj/structure/cable/yellow{d2 = 2; icon_state = "0-2"},/obj/machinery/door/poddoor/preopen{id = "bridge blast"; layer = 2.9; name = "bridge blast door"},/turf/simulated/floor/plating,/area/bridge) "aGX" = (/turf/simulated/floor{icon_state = "bot"},/area/hallway/primary/port) "aGY" = (/turf/simulated/floor/bluegrid,/area/turret_protected/ai_upload) "aGZ" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/turf/simulated/floor/plating,/area/quartermaster/office{name = "\improper Cargo Office"}) @@ -1738,11 +1738,11 @@ "aHv" = (/obj/machinery/door/poddoor{density = 0; icon_state = "open"; id = "Engineering"; name = "Engineering Security Doors"; opacity = 0},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor{icon_state = "delivery"; name = "floor"},/area/engine/break_room) "aHw" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4; pixel_x = 0},/obj/structure/window/reinforced{dir = 8},/obj/structure/cable/yellow,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor/plating,/area/security/checkpoint/engineering) "aHx" = (/obj/structure/closet/emcloset,/turf/simulated/floor/plating,/area/engine/break_room) -"aHy" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/grille,/obj/structure/cable/yellow{d2 = 2; icon_state = "0-2"},/obj/structure/cable/yellow{d2 = 4; icon_state = "0-4"},/obj/structure/cable/yellow{d2 = 8; icon_state = "0-8"},/obj/machinery/door/poddoor/preopen{id = "bridge blast"; name = "bridge blast door"},/turf/simulated/floor/plating,/area/bridge) +"aHy" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 2; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/simulated/floor,/area/quartermaster/office{name = "\improper Cargo Office"}) "aHz" = (/obj/structure/closet/emcloset,/obj/structure/sign/map/left{icon_state = "map-left-MS"; pixel_y = 32},/turf/simulated/floor{tag = "icon-vault"; icon_state = "vault"},/area/hallway/primary/starboard) -"aHA" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/structure/grille,/obj/structure/cable/yellow{d2 = 4; icon_state = "0-4"},/obj/structure/cable/yellow{d2 = 2; icon_state = "0-2"},/obj/machinery/door/poddoor/preopen{id = "bridge blast"; name = "bridge blast door"},/turf/simulated/floor/plating,/area/bridge) -"aHB" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/grille,/obj/structure/cable/yellow{d2 = 8; icon_state = "0-8"},/obj/structure/cable/yellow{d2 = 4; icon_state = "0-4"},/obj/structure/cable/yellow{d2 = 2; icon_state = "0-2"},/obj/machinery/door/poddoor/preopen{id = "bridge blast"; name = "bridge blast door"},/turf/simulated/floor/plating,/area/bridge) -"aHC" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/grille,/obj/structure/cable/yellow{d2 = 8; icon_state = "0-8"},/obj/structure/cable/yellow{d2 = 4; icon_state = "0-4"},/obj/machinery/door/poddoor/preopen{id = "bridge blast"; name = "bridge blast door"},/turf/simulated/floor/plating,/area/bridge) +"aHA" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 6},/turf/simulated/floor,/area/quartermaster/office{name = "\improper Cargo Office"}) +"aHB" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/cable/yellow,/obj/machinery/door/poddoor/preopen{id = "bridge blast"; layer = 2.9; name = "bridge blast door"},/turf/simulated/floor/plating,/area/bridge) +"aHC" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/cable/yellow{d2 = 8; icon_state = "0-8"},/obj/structure/cable/yellow,/obj/machinery/door/poddoor/preopen{id = "bridge blast"; layer = 2.9; name = "bridge blast door"},/turf/simulated/floor/plating,/area/bridge) "aHD" = (/obj/item/weapon/extinguisher,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor/plating,/area/hallway/primary/central) "aHE" = (/obj/effect/landmark{name = "blobstart"},/turf/simulated/floor/plating,/area/engine/engineering) "aHF" = (/turf/simulated/floor/plating,/area/engine/engineering) @@ -1800,7 +1800,7 @@ "aIF" = (/turf/simulated/floor,/area/crew_quarters/locker) "aIG" = (/obj/structure/disposalpipe/segment,/turf/simulated/floor{icon_state = "floorgrime"},/area/crew_quarters/locker) "aIH" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor{dir = 1; icon_state = "browncorner"},/area/hallway/primary/central) -"aII" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/cable/yellow{d2 = 2; icon_state = "0-2"},/obj/machinery/door/poddoor/preopen{id = "bridge blast"; name = "bridge blast door"},/turf/simulated/floor/plating,/area/bridge) +"aII" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor,/area/quartermaster/office{name = "\improper Cargo Office"}) "aIJ" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor,/area/hallway/primary/starboard) "aIK" = (/obj/machinery/camera{c_tag = "Secure Tech Storage"; dir = 8},/obj/item/device/radio/intercom{freerange = 0; frequency = 1459; name = "Station Intercom (General)"; pixel_x = 29},/obj/machinery/light/small{dir = 4},/turf/simulated/floor{icon_state = "dark"},/area/storage/tech) "aIL" = (/obj/structure/table,/obj/item/device/radio/intercom{freerange = 0; frequency = 1459; name = "Station Intercom (General)"; pixel_x = -29},/obj/item/weapon/storage/firstaid/regular{pixel_x = 0; pixel_y = 0},/obj/machinery/power/apc{dir = 2; name = "Cargo Office APC"; pixel_x = 1; pixel_y = -24},/obj/structure/cable/yellow,/turf/simulated/floor{dir = 10; icon_state = "brown"},/area/quartermaster/office{name = "\improper Cargo Office"}) @@ -1840,7 +1840,7 @@ "aJt" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 8; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/obj/machinery/light/small{dir = 1},/obj/item/weapon/storage/secure/safe{pixel_x = 6; pixel_y = 28},/turf/simulated/floor{icon_state = "dark"},/area/security/warden) "aJu" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor,/area/quartermaster/storage) "aJv" = (/obj/structure/transit_tube{tag = "icon-E-W-Pass"; icon_state = "E-W-Pass"},/obj/structure/lattice,/turf/space,/area/space) -"aJw" = (/obj/structure/table/reinforced,/obj/item/weapon/paper_bin{pixel_x = 1; pixel_y = 9},/turf/simulated/floor{dir = 2; icon_state = "arrival"},/area/quartermaster/office{name = "\improper Cargo Office"}) +"aJw" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/cable/yellow{d2 = 2; icon_state = "0-2"},/obj/machinery/door/poddoor/preopen{id = "bridge blast"; layer = 2.9; name = "bridge blast door"},/turf/simulated/floor/plating,/area/bridge) "aJx" = (/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/computer/security/mining,/obj/machinery/keycard_auth{pixel_x = 0; pixel_y = 24},/turf/simulated/floor{tag = "icon-darkblue (NORTH)"; icon_state = "darkblue"; dir = 1},/area/bridge) "aJy" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/table,/obj/machinery/recharger,/obj/item/weapon/restraints/handcuffs,/turf/simulated/floor{tag = "icon-darkredcorners (EAST)"; icon_state = "darkredcorners"; dir = 4},/area/bridge) "aJz" = (/turf/simulated/wall,/area/storage/tech) @@ -1857,7 +1857,7 @@ "aJK" = (/obj/structure/window/reinforced{dir = 4; pixel_x = 0},/obj/machinery/door/window{dir = 8; name = "MiniSat Airlock Access"; req_access_txt = "0"},/turf/simulated/floor{icon_state = "dark"},/area/construction/hallway{name = "\improper MiniSat Exterior"}) "aJL" = (/obj/machinery/light/small,/obj/machinery/porta_turret{ai = 1; dir = 1},/turf/simulated/floor{icon_state = "vault"; dir = 8},/area/turret_protected/aisat_interior{name = "\improper MiniSat Central Foyer"}) "aJM" = (/obj/machinery/ai_slipper{icon_state = "motion0"},/turf/simulated/floor/bluegrid,/area/turret_protected/ai) -"aJN" = (/obj/structure/table/reinforced,/obj/item/weapon/folder/yellow,/obj/item/weapon/pen{pixel_x = 4; pixel_y = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor{dir = 2; icon_state = "arrival"},/area/quartermaster/office{name = "\improper Cargo Office"}) +"aJN" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/stool/bed/chair/office/dark,/obj/effect/landmark/start{name = "Cargo Technician"},/turf/simulated/floor{dir = 2; icon_state = "arrival"},/area/quartermaster/office{name = "\improper Cargo Office"}) "aJO" = (/obj/structure/cable/yellow{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/simulated/floor{dir = 1; icon_state = "yellow"},/area/storage/tools) "aJP" = (/obj/structure/sink{dir = 4; icon_state = "sink"; pixel_x = 11; pixel_y = 0},/obj/item/weapon/reagent_containers/glass/bucket,/obj/item/weapon/mop,/obj/structure/disposalpipe/segment,/obj/machinery/firealarm{dir = 4; pixel_x = 24},/turf/simulated/floor{icon_state = "floorgrime"},/area/janitor) "aJQ" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/machinery/light/small{dir = 1},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/structure/window/reinforced{dir = 1; pixel_y = 1},/obj/machinery/turretid{name = "AI Chamber turret control"; pixel_x = 0; pixel_y = 24},/turf/simulated/floor{tag = "icon-vault (SOUTHWEST)"; icon_state = "vault"; dir = 10},/area/turret_protected/ai) @@ -2045,7 +2045,7 @@ "aNq" = (/obj/structure/closet/secure_closet/cargotech,/obj/structure/disposalpipe/segment,/turf/simulated/floor{dir = 6; icon_state = "warning"; tag = "icon-warnwhite (NORTHEAST)"},/area/quartermaster/storage) "aNr" = (/obj/machinery/door/airlock/maintenance{name = "Cargo Bay Maintenance"; req_access_txt = "0"; req_one_access_txt = "48;50"},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plating,/area/maintenance/fpmaint2{name = "Port Maintenance"}) "aNs" = (/obj/item/device/radio/intercom{broadcasting = 0; listening = 1; name = "Station Intercom (General)"; pixel_y = -28},/obj/structure/cable/yellow{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/simulated/floor{dir = 10; icon_state = "warning"},/area/quartermaster/storage) -"aNt" = (/obj/structure/stool/bed/chair/office/dark,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor,/area/quartermaster/office{name = "\improper Cargo Office"}) +"aNt" = (/obj/structure/table/reinforced,/obj/item/weapon/paper_bin{pixel_x = 1; pixel_y = 9},/obj/item/weapon/folder/yellow,/obj/item/weapon/pen{pixel_x = 4; pixel_y = 4},/turf/simulated/floor{dir = 2; icon_state = "arrival"},/area/quartermaster/office{name = "\improper Cargo Office"}) "aNu" = (/obj/machinery/door/window/eastleft{base_state = "right"; icon_state = "right"; name = "Deliveries"; req_access_txt = "50"},/turf/simulated/floor{icon_state = "delivery"},/area/quartermaster/office{name = "\improper Cargo Office"}) "aNv" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/wall,/area/maintenance/fpmaint2{name = "Port Maintenance"}) "aNw" = (/obj/structure/stool/bed/chair/office/dark{dir = 1},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor{icon_state = "dark"},/area/bridge) @@ -2226,7 +2226,7 @@ "aQP" = (/obj/machinery/light_construct,/turf/simulated/floor,/area/construction) "aQQ" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{req_access_txt = 1},/obj/machinery/door/firedoor,/turf/simulated/floor{dir = 8; icon_state = "warning"},/area/hallway/secondary/entry{name = "Arrivals"}) "aQR" = (/obj/item/weapon/paper_bin{pixel_x = 1; pixel_y = 9},/obj/item/weapon/pen,/obj/structure/table/reinforced,/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor{icon_state = "red"},/area/security/checkpoint2{name = "Customs"}) -"aQS" = (/obj/structure/table/reinforced,/obj/item/weapon/paper_bin{pixel_x = -1; pixel_y = 6},/turf/simulated/floor{dir = 2; icon_state = "warning"},/area/quartermaster/storage) +"aQS" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor{dir = 2; icon_state = "arrival"},/area/quartermaster/office{name = "\improper Cargo Office"}) "aQT" = (/obj/machinery/conveyor_switch/oneway{convdir = -1; id = "QMLoad"},/turf/simulated/floor{dir = 8; icon_state = "warning"},/area/quartermaster/storage) "aQU" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/light{icon_state = "tube1"; dir = 4},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor{dir = 4; icon_state = "arrival"},/area/hallway/secondary/entry{name = "Arrivals"}) "aQV" = (/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{req_access_txt = 1},/obj/structure/extinguisher_cabinet{pixel_x = -27; pixel_y = 0},/turf/simulated/floor{dir = 8; icon_state = "brown"},/area/quartermaster/office{name = "\improper Cargo Office"}) @@ -2296,7 +2296,7 @@ "aSh" = (/obj/machinery/door/airlock/external{name = "Escape Pod One"},/turf/simulated/floor/plating,/area/hallway/secondary/entry{name = "Arrivals"}) "aSi" = (/obj/structure/sign/pods,/turf/simulated/wall,/area/hallway/secondary/entry{name = "Arrivals"}) "aSj" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 4; on = 1},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/shower{tag = "icon-shower (EAST)"; icon_state = "shower"; dir = 4},/obj/structure/extinguisher_cabinet{pixel_x = -27; pixel_y = 0},/turf/simulated/floor{dir = 9; icon_state = "warning"},/area/engine/engineering) -"aSk" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor,/area/maintenance/storage) +"aSk" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/door/firedoor,/obj/structure/table/reinforced,/obj/machinery/door/window/westleft{dir = 1; name = "Delivery Desk"; req_access_txt = "50"},/turf/simulated/floor{icon_state = "bot"},/area/quartermaster/office{name = "\improper Cargo Office"}) "aSl" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plating,/area/hallway/secondary/entry{name = "Arrivals"}) "aSm" = (/obj/structure/extinguisher_cabinet{pixel_x = 27; pixel_y = 0},/obj/machinery/camera{c_tag = "Engineering - Foyer - Starboard"; dir = 8; network = list("SS13")},/turf/simulated/floor,/area/engine/break_room) "aSn" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 4; on = 1},/turf/simulated/floor,/area/hallway/primary/port) @@ -2372,13 +2372,13 @@ "aTF" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor{dir = 1; icon_state = "brown"},/area/quartermaster/office{name = "\improper Cargo Office"}) "aTG" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 2; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/obj/machinery/status_display{density = 0; pixel_x = 0; pixel_y = 32; supply_display = 1},/turf/simulated/floor{dir = 1; icon_state = "brown"},/area/quartermaster/office{name = "\improper Cargo Office"}) "aTH" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/supply/hidden{req_access_txt = 1},/obj/machinery/light_switch{pixel_x = -25; pixel_y = 0},/turf/simulated/floor{dir = 9; icon_state = "brown"},/area/quartermaster/office{name = "\improper Cargo Office"}) -"aTI" = (/obj/machinery/atmospherics/pipe/simple/cyan/visible{dir = 4},/obj/machinery/atmospherics/pipe/simple/yellow/visible{},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/grille,/turf/simulated/floor/plating,/area/maintenance/storage) +"aTI" = (/obj/structure/grille,/obj/structure/cable/yellow{d2 = 4; icon_state = "0-4"},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4; pixel_x = 0},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/door/poddoor{density = 0; icon_state = "open"; id = "hop"; layer = 2.9; name = "Privacy Shutters"; opacity = 0},/turf/simulated/floor/plating,/area/crew_quarters/heads) "aTJ" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/wall/r_wall,/area/tcommsat/computer{name = "\improper Telecoms Control Room"}) "aTK" = (/obj/structure/table/woodentable,/obj/machinery/light/small{dir = 8},/obj/item/device/radio/off{pixel_y = 4},/obj/item/weapon/screwdriver{pixel_y = 10},/turf/simulated/floor{icon_state = "grimy"},/area/tcommsat/computer{name = "\improper Telecoms Control Room"}) "aTL" = (/turf/simulated/wall/r_wall,/area/hallway/primary/central) "aTM" = (/obj/effect/decal/cleanable/cobweb,/obj/machinery/field/generator{anchored = 0; state = 2},/turf/simulated/floor/plating,/area/engine/engineering) "aTN" = (/obj/structure/rack,/obj/item/clothing/gloves/fyellow,/turf/simulated/floor/plating,/area/maintenance/starboard) -"aTO" = (/obj/machinery/atmospherics/pipe/simple/green/visible{},/obj/machinery/atmospherics/pipe/simple/cyan/visible{dir = 4},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/grille,/turf/simulated/floor/plating,/area/maintenance/storage) +"aTO" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4; pixel_x = 0},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/obj/structure/cable/yellow,/obj/machinery/door/poddoor{density = 0; icon_state = "open"; id = "hop"; layer = 2.9; name = "Privacy Shutters"; opacity = 0},/turf/simulated/floor/plating,/area/crew_quarters/heads) "aTP" = (/obj/structure/table,/obj/item/clothing/gloves/fyellow,/obj/item/device/gps,/turf/simulated/floor{dir = 9; icon_state = "brown"},/area/storage/primary) "aTQ" = (/obj/item/device/radio/intercom{freerange = 0; frequency = 1459; name = "Station Intercom (General)"; pixel_x = 0; pixel_y = 21},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/light{dir = 1},/obj/machinery/camera{c_tag = "Maltese Falcon - Gambling Den Fore"; dir = 2; network = list("SS13")},/turf/simulated/floor/wood,/area/crew_quarters/bar{name = "\improper Maltese Falcon"}) "aTR" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock{name = "Custodial Closet"; req_access_txt = "26"},/turf/simulated/floor,/area/janitor) @@ -2422,7 +2422,7 @@ "aUD" = (/obj/structure/closet/emcloset,/turf/simulated/floor/plating,/area/maintenance/fpmaint2{name = "Port Maintenance"}) "aUE" = (/obj/structure/table,/obj/item/stack/cable_coil{pixel_x = -3; pixel_y = 3},/obj/item/stack/cable_coil,/obj/item/weapon/stock_parts/cell/high{charge = 100; maxcharge = 15000},/obj/structure/extinguisher_cabinet{pixel_x = 27; pixel_y = 0},/obj/machinery/light/small{dir = 4},/turf/simulated/floor{icon_state = "dark"},/area/storage/tech) "aUF" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{req_access_txt = 1},/obj/machinery/camera{c_tag = "Central Primary Hallway - Fore - Starboard Corner"; dir = 8; network = list("SS13")},/turf/simulated/floor{dir = 4; icon_state = "neutralcorner"},/area/hallway/primary/central) -"aUG" = (/obj/structure/table/reinforced,/obj/machinery/door/window/brigdoor{base_state = "rightsecure"; dir = 1; icon_state = "rightsecure"; name = "Head of Personnel's Desk"; req_access_txt = "57"},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/door/firedoor,/obj/machinery/door/window/northleft{dir = 2; icon_state = "left"; name = "Reception Window"; req_access_txt = "0"},/obj/machinery/door/poddoor{density = 0; icon_state = "open"; id = "hop"; layer = 2.9; name = "Privacy Door"; opacity = 0},/turf/simulated/floor,/area/crew_quarters/heads) +"aUG" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/machinery/door/poddoor{density = 0; icon_state = "open"; id = "hop"; layer = 2.9; name = "Privacy Shutters"; opacity = 0},/obj/structure/cable/yellow{d2 = 8; icon_state = "0-8"},/turf/simulated/floor/plating,/area/crew_quarters/heads) "aUH" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/extinguisher_cabinet{pixel_x = -27; pixel_y = 0},/obj/machinery/light{dir = 8},/obj/machinery/camera{c_tag = "Central Primary Hallway - Fore - Port Corner"; dir = 4; network = list("SS13")},/turf/simulated/floor{dir = 1; icon_state = "neutralcorner"},/area/hallway/primary/central) "aUI" = (/obj/structure/filingcabinet,/obj/structure/reagent_dispensers/peppertank{pixel_x = 0; pixel_y = 30},/obj/machinery/alarm{dir = 4; pixel_x = -23; pixel_y = 0},/turf/simulated/floor{icon_state = "red"; dir = 9},/area/security/checkpoint/engineering) "aUJ" = (/obj/machinery/door/window/westleft{dir = 2; name = "Research Division Deliveries"; req_access_txt = "47"},/turf/simulated/floor{icon_state = "delivery"},/area/maintenance/aft{name = "Aft Maintenance"}) @@ -2625,7 +2625,7 @@ "aYy" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plating,/area/shuttle/laborcamp/station) "aYz" = (/obj/structure/transit_tube{tag = "icon-D-NE"; icon_state = "D-NE"},/obj/structure/window/reinforced{dir = 4; pixel_x = 0},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/obj/structure/rack,/obj/item/clothing/suit/hazardvest,/obj/item/clothing/mask/gas,/turf/simulated/floor{icon_state = "dark"},/area/engine/break_room) "aYA" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 8},/turf/simulated/wall/r_wall,/area/turret_protected/tcomwest{name = "\improper MiniSat West Wing"}) -"aYB" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4; pixel_x = 0},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/obj/machinery/door/poddoor{density = 0; icon_state = "open"; id = "hop"; name = "Privacy Shutters"; opacity = 0},/obj/structure/cable/yellow,/turf/simulated/floor/plating,/area/crew_quarters/heads) +"aYB" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/structure/cable/yellow{d2 = 4; icon_state = "0-4"},/obj/structure/cable/yellow,/obj/machinery/door/poddoor{density = 0; icon_state = "open"; id = "hop"; layer = 2.9; name = "Privacy Shutters"; opacity = 0},/turf/simulated/floor/plating,/area/crew_quarters/heads) "aYC" = (/obj/item/weapon/cigbutt,/obj/machinery/power/apc{cell_type = 5000; dir = 2; name = "Port Maintenance APC"; pixel_y = -24},/obj/structure/cable/yellow{d2 = 4; icon_state = "0-4"},/turf/simulated/floor/plating{dir = 2; icon_state = "warnplate"},/area/maintenance/fpmaint2{name = "Port Maintenance"}) "aYD" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/cable/yellow{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/effect/landmark/start{name = "Janitor"},/turf/simulated/floor{icon_state = "floorgrime"},/area/janitor) "aYE" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/turf/simulated/wall/r_wall,/area/turret_protected/tcomwest{name = "\improper MiniSat West Wing"}) @@ -2645,7 +2645,7 @@ "aYS" = (/obj/machinery/computer/message_monitor,/obj/machinery/alarm{dir = 4; pixel_x = -23; pixel_y = 0},/turf/simulated/floor{icon_state = "grimy"},/area/tcommsat/computer{name = "\improper Telecoms Control Room"}) "aYT" = (/obj/machinery/light/small,/obj/machinery/atmospherics/unary/vent_scrubber{dir = 2; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 2},/obj/machinery/light_switch{pixel_x = -8; pixel_y = -24},/obj/item/device/radio/intercom{freerange = 0; frequency = 1459; name = "Station Intercom (General)"; pixel_x = 5; pixel_y = -26},/obj/structure/rack,/obj/item/weapon/wrench,/obj/item/weapon/crowbar,/obj/item/device/flashlight{pixel_x = 1; pixel_y = 5},/turf/simulated/floor{icon_state = "dark"},/area/engine/break_room) "aYU" = (/obj/machinery/camera{c_tag = "Council Chamber"; dir = 2; network = list("SS13")},/obj/machinery/light{dir = 1},/obj/machinery/ai_status_display{pixel_y = 32},/turf/simulated/floor/wood,/area/bridge) -"aYV" = (/obj/machinery/atmospherics/pipe/simple/green/visible{},/obj/machinery/atmospherics/binary/pump{dir = 4; name = "Unfiltered & Air to Mix"; on = 1},/turf/simulated/floor,/area/maintenance/storage) +"aYV" = (/obj/structure/table/reinforced,/obj/machinery/door/window/brigdoor{base_state = "rightsecure"; dir = 1; icon_state = "rightsecure"; name = "Head of Personnel's Desk"; req_access_txt = "57"},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/door/firedoor,/obj/machinery/door/window/northleft{dir = 2; icon_state = "left"; name = "Reception Window"; req_access_txt = "0"},/obj/machinery/door/poddoor{density = 0; icon_state = "open"; id = "hop"; layer = 2.9; name = "Privacy Shutters"; opacity = 0},/turf/simulated/floor,/area/crew_quarters/heads) "aYW" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor{tag = "icon-warningcorner (WEST)"; icon_state = "warningcorner"; dir = 8},/area/hallway/secondary/entry{name = "Arrivals"}) "aYX" = (/obj/structure/stool/bed/chair,/obj/structure/sign/securearea{desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; pixel_x = 0; pixel_y = 32},/turf/simulated/floor{dir = 1; icon_state = "warning"},/area/hallway/secondary/entry{name = "Arrivals"}) "aYY" = (/obj/structure/rack,/obj/item/weapon/storage/toolbox/electrical{pixel_x = -3; pixel_y = 3},/obj/item/weapon/storage/toolbox/mechanical,/obj/item/weapon/storage/toolbox/emergency{pixel_x = 3; pixel_y = -3},/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_y = -29},/turf/simulated/floor{icon_state = "vault"; dir = 8},/area/turret_protected/tcomeast{name = "\improper MiniSat East Wing"}) @@ -2664,7 +2664,7 @@ "aZl" = (/turf/simulated/wall,/area/security/checkpoint2{name = "Customs"}) "aZm" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plating,/area/maintenance/fpmaint2{name = "Port Maintenance"}) "aZn" = (/obj/structure/table/woodentable,/obj/item/device/flashlight/lamp/green{pixel_x = 1; pixel_y = 5},/obj/machinery/door_control{id = "council blast"; name = "Council Chamber Blast Door Control"; pixel_x = -24; pixel_y = 0; req_access_txt = "19"},/turf/simulated/floor/wood,/area/bridge) -"aZo" = (/obj/structure/grille,/obj/structure/cable/yellow{d2 = 4; icon_state = "0-4"},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4; pixel_x = 0},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/obj/machinery/door/poddoor{density = 0; icon_state = "open"; id = "hop"; name = "Privacy Shutters"; opacity = 0},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/plating,/area/crew_quarters/heads) +"aZo" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/visible,/turf/simulated/floor,/area/maintenance/storage) "aZp" = (/turf/simulated/wall,/area/quartermaster/storage) "aZq" = (/obj/machinery/hologram/holopad,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/simulated/floor{icon_state = "grimy"},/area/tcommsat/computer{name = "\improper Telecoms Control Room"}) "aZr" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor{icon_state = "grimy"},/area/tcommsat/computer{name = "\improper Telecoms Control Room"}) @@ -2715,7 +2715,7 @@ "bak" = (/turf/simulated/floor{icon_state = "warning"},/area/engine/break_room) "bal" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/door/firedoor,/obj/machinery/door/airlock/command{name = "Head of Personnel"; req_access = null; req_access_txt = "57"},/turf/simulated/floor/wood{tag = "icon-wood-broken6"; icon_state = "wood-broken6"},/area/crew_quarters/heads) "bam" = (/obj/structure/extinguisher_cabinet{pixel_x = -27; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor{dir = 8; icon_state = "cautioncorner"},/area/hallway/primary/starboard) -"ban" = (/obj/machinery/computer/general_air_control/large_tank_control{frequency = 1441; input_tag = "n2o_in"; name = "Nitrous Oxide Supply Control"; output_tag = "n2o_out"; sensors = list("n2o_sensor" = "Tank")},/obj/machinery/atmospherics/pipe/simple/green/visible{},/obj/structure/window/reinforced{dir = 4; pixel_x = 0},/turf/simulated/floor{dir = 4; icon_state = "escape"},/area/maintenance/storage) +"ban" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/poddoor{density = 0; icon_state = "open"; id = "council blast"; layer = 2.9; name = "Council Blast Doors"; opacity = 0},/obj/structure/cable/yellow{d2 = 4; icon_state = "0-4"},/turf/simulated/floor/plating,/area/bridge) "bao" = (/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor,/area/hallway/primary/starboard) "bap" = (/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor{dir = 4; icon_state = "cautioncorner"},/area/hallway/primary/starboard) "baq" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/structure/cable/yellow,/turf/simulated/floor/plating,/area/engine/break_room) @@ -2766,7 +2766,7 @@ "bbj" = (/turf/simulated/floor{tag = "icon-darkblue (SOUTHWEST)"; icon_state = "darkblue"; dir = 10},/area/bridge) "bbk" = (/obj/structure/table/woodentable,/obj/machinery/computer/security/wooden_tv{pixel_x = 3; pixel_y = 2},/turf/simulated/floor/carpet,/area/bridge) "bbl" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor{icon_state = "neutral"; dir = 6},/area/hallway/primary/port) -"bbm" = (/obj/machinery/atmospherics/pipe/simple/yellow/visible{},/turf/simulated/floor,/area/maintenance/storage) +"bbm" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/grille,/obj/structure/cable/yellow{d2 = 2; icon_state = "0-2"},/obj/structure/cable/yellow{d2 = 4; icon_state = "0-4"},/obj/structure/cable/yellow{d2 = 8; icon_state = "0-8"},/obj/machinery/door/poddoor{density = 0; icon_state = "open"; id = "council blast"; layer = 2.9; name = "Council Blast Doors"; opacity = 0},/turf/simulated/floor/plating,/area/bridge) "bbn" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/unary/vent_pump{dir = 1; on = 1},/turf/simulated/floor{icon_state = "neutral"},/area/hallway/primary/port) "bbo" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/sortjunction{dir = 1; icon_state = "pipe-j1s"; sortType = 15},/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/simulated/floor,/area/hallway/primary/central) "bbp" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/door/firedoor,/turf/simulated/floor,/area/hallway/primary/port) @@ -2897,7 +2897,7 @@ "bdK" = (/turf/simulated/floor/carpet,/area/hallway/primary/port) "bdL" = (/obj/item/device/radio/intercom{dir = 0; name = "Station Intercom (General)"; pixel_x = -26; pixel_y = 0},/obj/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/camera{c_tag = "Bridge - Port"; dir = 4; network = list("SS13")},/turf/simulated/floor{tag = "icon-darkblue (WEST)"; icon_state = "darkblue"; dir = 8},/area/bridge) "bdM" = (/turf/simulated/wall,/area/construction/Storage{name = "Storage Wing"}) -"bdN" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{},/obj/machinery/atmospherics/pipe/simple/cyan/visible{dir = 4},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor,/area/maintenance/storage) +"bdN" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/grille,/obj/structure/cable/yellow{d2 = 8; icon_state = "0-8"},/obj/structure/cable/yellow{d2 = 4; icon_state = "0-4"},/obj/machinery/door/poddoor{density = 0; icon_state = "open"; id = "council blast"; layer = 2.9; name = "Council Blast Doors"; opacity = 0},/turf/simulated/floor/plating,/area/bridge) "bdO" = (/obj/structure/plasticflaps{opacity = 1},/obj/machinery/navbeacon{codes_txt = "delivery;dir=2"; freq = 1400; location = "Research Division"},/turf/simulated/floor{icon_state = "bot"},/area/maintenance/aft{name = "Aft Maintenance"}) "bdP" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable/yellow{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/atmospherics/unary/vent_scrubber{dir = 4; on = 1; scrub_Toxins = 0},/obj/structure/disposalpipe/segment,/turf/simulated/floor,/area/hallway/primary/central) "bdQ" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 6},/obj/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor{icon_state = "dark"},/area/bridge) @@ -2958,8 +2958,8 @@ "beT" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'HIGH VOLTAGE'"; icon_state = "shock"; name = "HIGH VOLTAGE"; pixel_x = 0; pixel_y = 32},/turf/simulated/floor{icon_state = "bot"},/area/bridge/meeting_room{name = "\improper Command Hallway"}) "beU" = (/obj/structure/transit_tube{tag = "icon-NW-SE"; icon_state = "NW-SE"},/turf/space,/area/space) "beV" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor{icon_state = "dark"},/area/hallway/primary/fore) -"beW" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/machinery/door/poddoor{density = 0; icon_state = "open"; id = "hop"; name = "Privacy Shutters"; opacity = 0},/obj/structure/cable/yellow{d2 = 8; icon_state = "0-8"},/turf/simulated/floor/plating,/area/crew_quarters/heads) -"beX" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/structure/cable/yellow{d2 = 4; icon_state = "0-4"},/obj/structure/cable/yellow,/obj/machinery/door/poddoor{density = 0; icon_state = "open"; id = "hop"; name = "Privacy Shutters"; opacity = 0},/turf/simulated/floor/plating,/area/crew_quarters/heads) +"beW" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/cable/yellow{d2 = 8; icon_state = "0-8"},/obj/machinery/door/poddoor{density = 0; icon_state = "open"; id = "council blast"; layer = 2.9; name = "Council Blast Doors"; opacity = 0},/turf/simulated/floor/plating,/area/bridge) +"beX" = (/obj/machinery/atmospherics/pipe/manifold/yellow/visible,/turf/simulated/floor,/area/maintenance/storage) "beY" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass{name = "Library"},/turf/simulated/floor{dir = 2; icon_state = "carpetsymbol"},/area/library) "beZ" = (/obj/machinery/atmospherics/pipe/manifold/cyan/visible{dir = 4; initialize_directions = 11},/obj/machinery/meter,/turf/simulated/floor,/area/maintenance/storage) "bfa" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor{tag = "icon-darkbluecorners"; icon_state = "darkbluecorners"; dir = 0},/area/bridge) @@ -3000,7 +3000,7 @@ "bfJ" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 4; on = 1},/obj/structure/stool/bed/chair/office/dark{dir = 1},/turf/simulated/floor{icon_state = "grimy"},/area/tcommsat/computer{name = "\improper Telecoms Control Room"}) "bfK" = (/obj/machinery/computer/security/telescreen{dir = 8; name = "Telecoms Camera Monitor"; network = list("tcomm"); pixel_x = 26; pixel_y = 0},/obj/machinery/computer/telecomms/monitor{network = "tcommsat"},/turf/simulated/floor{icon_state = "grimy"},/area/tcommsat/computer{name = "\improper Telecoms Control Room"}) "bfL" = (/obj/structure/transit_tube/station{tag = "icon-closed (EAST)"; icon_state = "closed"; dir = 4},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor{icon_state = "vault"; dir = 8},/area/construction/hallway{name = "\improper MiniSat Exterior"}) -"bfM" = (/obj/structure/window/reinforced{dir = 4; pixel_x = 0},/obj/machinery/atmospherics/binary/pump{dir = 8; name = "N2O to Pure"; on = 0},/obj/machinery/atmospherics/pipe/simple/green/visible{},/turf/simulated/floor{dir = 5; icon_state = "escape"},/area/maintenance/storage) +"bfM" = (/obj/machinery/atmospherics/pipe/simple/cyan/visible,/obj/machinery/atmospherics/pipe/simple/yellow/visible{dir = 4},/turf/simulated/floor{dir = 5; icon_state = "green"},/area/maintenance/storage) "bfN" = (/turf/simulated/floor{icon_state = "grimy"},/area/tcommsat/computer{name = "\improper Telecoms Control Room"}) "bfO" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 1; on = 1},/obj/structure/cable/yellow{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/simulated/floor,/area/storage/art) "bfP" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/turf/simulated/shuttle/plating,/area/shuttle/arrival/station) @@ -3017,7 +3017,7 @@ "bga" = (/obj/machinery/door/poddoor{density = 0; icon_state = "open"; id = "transittube"; name = "Transit Tube Blast Door"; opacity = 0},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor{icon_state = "delivery"; name = "floor"},/area/engine/break_room) "bgb" = (/obj/machinery/vending/autodrobe,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor/wood,/area/crew_quarters/theatre) "bgc" = (/obj/structure/cable/yellow{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 4},/turf/simulated/floor,/area/engine/break_room) -"bgd" = (/obj/machinery/atmospherics/pipe/manifold/yellow/visible{},/turf/simulated/floor,/area/maintenance/storage) +"bgd" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden,/turf/simulated/floor{dir = 1; icon_state = "neutralcorner"},/area/bridge/meeting_room{name = "\improper Command Hallway"}) "bge" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plating,/area/quartermaster/office{name = "\improper Cargo Office"}) "bgf" = (/turf/simulated/floor{icon_state = "delivery"},/area/storage/primary) "bgg" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/simulated/floor,/area/engine/break_room) @@ -3030,7 +3030,7 @@ "bgn" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor{tag = "icon-vault (NORTHEAST)"; icon_state = "vault"; dir = 5},/area/construction/Storage{name = "Storage Wing"}) "bgo" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/cable/yellow{d2 = 2; icon_state = "0-2"},/turf/simulated/floor/plating,/area/construction/Storage{name = "Storage Wing"}) "bgp" = (/obj/machinery/vending/cola,/turf/simulated/floor{icon_state = "dark"},/area/bridge/meeting_room{name = "\improper Command Hallway"}) -"bgq" = (/obj/machinery/atmospherics/pipe/simple/yellow/visible{},/obj/machinery/meter,/turf/simulated/floor,/area/maintenance/storage) +"bgq" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden,/turf/simulated/floor{dir = 4; icon_state = "neutralcorner"},/area/bridge/meeting_room{name = "\improper Command Hallway"}) "bgr" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/wood,/area/crew_quarters/bar{name = "\improper Maltese Falcon"}) "bgs" = (/obj/structure/window/reinforced,/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/simulated/floor{tag = "icon-darkblue"; icon_state = "darkblue"; dir = 0},/area/bridge) "bgt" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor{tag = "icon-darkbluecorners (WEST)"; icon_state = "darkbluecorners"; dir = 8},/area/bridge) @@ -3174,7 +3174,7 @@ "bjb" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/table/woodentable/poker,/obj/item/clothing/head/fedora,/turf/simulated/floor/wood,/area/crew_quarters/bar{name = "\improper Maltese Falcon"}) "bjc" = (/obj/machinery/portable_atmospherics/canister/toxins,/turf/simulated/floor/plating,/area/engine/engineering) "bjd" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/disposalpipe/segment,/turf/simulated/floor,/area/engine/engineering) -"bje" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/door/firedoor,/turf/simulated/floor{icon_state = "bot"},/area/quartermaster/office{name = "\improper Cargo Office"}) +"bje" = (/obj/machinery/computer/general_air_control/large_tank_control{frequency = 1441; input_tag = "waste_in"; name = "Gas Mix Tank Control"; output_tag = "waste_out"; sensors = list("waste_sensor" = "Tank")},/obj/machinery/atmospherics/pipe/simple/cyan/visible,/turf/simulated/floor{icon_state = "green"; dir = 4},/area/maintenance/storage) "bjf" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable/yellow{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/simulated/floor{icon_state = "red"; dir = 1},/area/security/brig) "bjg" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass{icon = 'icons/obj/doors/Doorminingglass.dmi'; name = "Primary Tool Storage"},/turf/simulated/floor{dir = 2; icon_state = "brown"},/area/storage/primary) "bjh" = (/obj/machinery/recharger,/obj/machinery/keycard_auth{pixel_x = 0; pixel_y = 24},/obj/item/weapon/storage/secure/safe{pixel_x = 34; pixel_y = 0},/obj/item/device/flash,/obj/structure/table,/turf/simulated/floor{icon_state = "dark"},/area/crew_quarters/heads) @@ -3196,7 +3196,7 @@ "bjx" = (/obj/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/disposalpipe/segment,/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor{icon_state = "neutral"; dir = 8},/area/hallway/primary/port) "bjy" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 6},/obj/structure/closet/crate,/turf/simulated/floor{icon_state = "floorgrime"},/area/quartermaster/sorting{name = "\improper Warehouse"}) "bjz" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/simulated/floor/wood,/area/lawoffice) -"bjA" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{},/turf/simulated/floor,/area/maintenance/storage) +"bjA" = (/obj/machinery/atmospherics/pipe/simple/green/visible{dir = 4},/obj/machinery/atmospherics/pipe/simple/cyan/visible,/turf/simulated/floor{icon_state = "green"; dir = 6},/area/maintenance/storage) "bjB" = (/obj/machinery/atmospherics/pipe/manifold/supply/visible{dir = 1; tag = "icon-manifold-b (NORTH)"},/turf/simulated/floor{dir = 1; icon_state = "caution"},/area/maintenance/storage) "bjC" = (/obj/machinery/atmospherics/pipe/manifold/supply/visible{dir = 2; tag = "icon-manifold-b"},/obj/machinery/meter{frequency = 1443; id = "dloop_atm_meter"; name = "Distribution Loop"},/turf/simulated/floor{dir = 1; icon_state = "caution"},/area/maintenance/storage) "bjD" = (/obj/structure/transit_tube/station{dir = 8; icon_state = "closed"; tag = "icon-closed (EAST)"},/obj/structure/window/reinforced{dir = 4; pixel_x = 0},/obj/structure/transit_tube_pod,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 9; pixel_y = 0},/turf/simulated/floor{icon_state = "vault"; dir = 8},/area/engine/break_room) @@ -3333,7 +3333,7 @@ "bme" = (/obj/machinery/space_heater,/turf/simulated/floor{dir = 8; icon_state = "warning"},/area/maintenance/storage) "bmf" = (/obj/machinery/newscaster{pixel_x = 0; pixel_y = -32},/obj/machinery/light,/obj/machinery/camera{c_tag = "Courtroom - Gallery"; dir = 1; network = list("SS13")},/turf/simulated/floor{icon_state = "dark"},/area/crew_quarters/courtroom) "bmg" = (/obj/machinery/atmospherics/pipe/manifold/yellow/visible{tag = "icon-manifold-y (EAST)"; dir = 4},/turf/simulated/floor,/area/maintenance/storage) -"bmh" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 1; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/simulated/floor,/area/maintenance/storage) +"bmh" = (/obj/machinery/atmospherics/pipe/simple/green/visible,/obj/machinery/atmospherics/binary/pump{dir = 4; name = "Unfiltered & Air to Mix"; on = 1},/turf/simulated/floor,/area/maintenance/storage) "bmi" = (/obj/machinery/atmospherics/binary/pump{dir = 1; name = "Mix to Distro"; on = 0},/turf/simulated/floor,/area/maintenance/storage) "bmj" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 1; on = 1},/turf/simulated/floor,/area/maintenance/storage) "bmk" = (/obj/machinery/atmospherics/pipe/manifold/green/visible{dir = 1; tag = "icon-manifold-g (NORTH)"},/turf/simulated/floor,/area/maintenance/storage) @@ -3921,7 +3921,7 @@ "bxu" = (/obj/structure/sign/securearea{pixel_y = 32},/obj/structure/closet/radiation,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor{icon_state = "delivery"; name = "floor"},/area/engine/engineering) "bxv" = (/obj/structure/rack{dir = 8; layer = 2.9},/obj/item/clothing/suit/hazardvest,/obj/item/clothing/suit/hazardvest,/obj/item/clothing/suit/hazardvest,/obj/item/clothing/suit/hazardvest,/obj/item/clothing/gloves/black,/obj/item/clothing/gloves/black,/obj/item/clothing/gloves/black,/obj/item/clothing/mask/gas,/obj/item/clothing/mask/gas,/turf/simulated/floor,/area/maintenance/storage) "bxw" = (/obj/machinery/atmospherics/pipe/manifold/general/visible{dir = 8},/turf/simulated/floor,/area/maintenance/storage) -"bxx" = (/obj/machinery/atmospherics/pipe/manifold/general/visible{},/obj/machinery/meter,/turf/simulated/floor,/area/maintenance/storage) +"bxx" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/visible,/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor,/area/maintenance/storage) "bxy" = (/obj/machinery/atmospherics/pipe/manifold/general/visible{dir = 4; initialize_directions = 11},/turf/simulated/floor,/area/maintenance/storage) "bxz" = (/turf/simulated/wall,/area/medical/sleeper{name = "Sleepers"}) "bxA" = (/obj/structure/table/woodentable,/obj/item/weapon/book/manual/wiki/security_space_law,/turf/simulated/floor{icon_state = "neutral"; dir = 1},/area/crew_quarters/courtroom) @@ -4359,7 +4359,7 @@ "bFQ" = (/obj/structure/closet/wardrobe/atmospherics_yellow,/obj/machinery/light{dir = 1},/obj/machinery/light_switch{pixel_y = 28},/turf/simulated/floor{icon_state = "warning"},/area/maintenance/storage) "bFR" = (/obj/structure/sign/fire{pixel_x = 0; pixel_y = 0},/turf/simulated/wall/r_wall,/area/maintenance/incinerator) "bFS" = (/obj/machinery/atmospherics/binary/pump{dir = 8; name = "Port to Filter"; on = 0},/turf/simulated/floor,/area/maintenance/storage) -"bFT" = (/obj/machinery/atmospherics/pipe/manifold/general/visible{},/obj/item/weapon/cigbutt,/turf/simulated/floor,/area/maintenance/storage) +"bFT" = (/obj/machinery/atmospherics/pipe/simple/cyan/visible{dir = 4},/obj/machinery/atmospherics/pipe/simple/yellow/visible,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/grille,/turf/simulated/floor/plating,/area/maintenance/storage) "bFU" = (/obj/machinery/atmospherics/unary/cold_sink/freezer{dir = 8; tag = ""},/turf/simulated/floor,/area/maintenance/storage) "bFV" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/cable/yellow{d2 = 8; icon_state = "0-8"},/obj/structure/cable/yellow{d2 = 2; icon_state = "0-2"},/obj/machinery/door/poddoor/preopen{id = "cmoprivacy"; name = "privacy shutter"},/turf/simulated/floor/plating,/area/medical/cmo) "bFW" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 8; external_pressure_bound = 0; frequency = 1441; id_tag = "co2_out"; initialize_directions = 1; internal_pressure_bound = 4000; on = 1; pressure_checks = 2; pump_direction = 0},/turf/simulated/floor/engine{carbon_dioxide = 50000; name = "co2 floor"; nitrogen = 0; oxygen = 0},/area/maintenance/storage) @@ -4622,7 +4622,7 @@ "bKT" = (/obj/machinery/light{dir = 4; icon_state = "tube1"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor{dir = 2; icon_state = "whitebluecorner"},/area/medical/medbay{name = "Medbay Central"}) "bKU" = (/obj/structure/window/reinforced,/obj/machinery/computer/general_air_control/large_tank_control{frequency = 1443; input_tag = "air_in"; name = "Mixed Air Supply Control"; output_tag = "air_out"; pressure_setting = 2000; sensors = list("air_sensor" = "Tank")},/obj/machinery/atmospherics/pipe/simple/green/visible{dir = 4},/turf/simulated/floor{dir = 8; icon_state = "barber"},/area/maintenance/storage) "bKV" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/disposalpipe/sortjunction{dir = 8; icon_state = "pipe-j2s"; sortType = 10},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/cable/yellow{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/simulated/floor{dir = 8; icon_state = "barber"},/area/medical/cmo) -"bKW" = (/obj/structure/window/reinforced,/obj/machinery/atmospherics/pipe/simple/cyan/visible{},/obj/machinery/atmospherics/pipe/simple/green/visible{dir = 4},/turf/simulated/floor{dir = 8; icon_state = "barber"},/area/maintenance/storage) +"bKW" = (/obj/machinery/atmospherics/pipe/simple/green/visible,/obj/machinery/atmospherics/pipe/simple/cyan/visible{dir = 4},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/grille,/turf/simulated/floor/plating,/area/maintenance/storage) "bKX" = (/turf/simulated/floor/plating{tag = "icon-panelscorched"; icon_state = "panelscorched"},/area/engine/engineering) "bKY" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/obj/structure/cable/yellow{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/simulated/floor/plating,/area/maintenance/aft{name = "Aft Maintenance"}) "bKZ" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/table,/obj/item/weapon/folder/yellow,/obj/item/clothing/head/soft,/obj/item/clothing/head/soft,/obj/machinery/alarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/obj/machinery/camera{c_tag = "Cargo Bay - Starboard"; dir = 8; network = list("SS13")},/turf/simulated/floor{dir = 4; icon_state = "warning"},/area/quartermaster/storage) @@ -4684,8 +4684,8 @@ "bMd" = (/obj/machinery/power/apc{cell_type = 5000; dir = 4; name = "Aft Hallway APC"; pixel_x = 24; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/cable/yellow{d2 = 8; icon_state = "0-8"},/turf/simulated/floor{dir = 4; icon_state = "purplecorner"},/area/hallway/primary/aft) "bMe" = (/obj/structure/reagent_dispensers/fueltank,/turf/simulated/floor/plating,/area/maintenance/fpmaint2{name = "Port Maintenance"}) "bMf" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{req_access_txt = 1},/obj/item/device/radio/intercom{freerange = 0; frequency = 1459; name = "Station Intercom (General)"; pixel_x = -29},/turf/simulated/floor{dir = 1; icon_state = "yellowcorner"},/area/hallway/primary/aft) -"bMg" = (/obj/structure/window/reinforced{dir = 4; pixel_x = 0},/obj/structure/window/reinforced{dir = 1; pixel_y = 2},/obj/structure/table,/obj/machinery/atmospherics/pipe/simple/green/visible{},/obj/item/weapon/folder/yellow,/obj/item/weapon/folder/yellow,/turf/simulated/floor{dir = 4; icon_state = "caution"},/area/maintenance/storage) -"bMh" = (/obj/machinery/atmospherics/pipe/simple/cyan/visible{},/turf/simulated/floor{icon_state = "dark"},/area/maintenance/storage) +"bMg" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/visible,/obj/machinery/atmospherics/pipe/simple/cyan/visible{dir = 4},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor,/area/maintenance/storage) +"bMh" = (/obj/machinery/atmospherics/pipe/simple/yellow/visible,/obj/machinery/meter,/turf/simulated/floor,/area/maintenance/storage) "bMi" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor/plating,/area/maintenance/starboard) "bMj" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 9},/turf/simulated/floor/plating,/area/maintenance/starboard) "bMk" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4; pixel_x = 0},/obj/machinery/door/window/northleft{dir = 1; icon_state = "left"; name = "Inner Pipe Access"; req_access_txt = "24"},/obj/machinery/atmospherics/binary/pump{dir = 1; name = "O2 to Pure"},/obj/machinery/atmospherics/pipe/simple/green/visible{dir = 4},/turf/simulated/floor{icon_state = "dark"},/area/maintenance/storage) @@ -4721,7 +4721,7 @@ "bMO" = (/obj/machinery/door/airlock/maintenance{name = "Chemistry Lab Maintenance"; req_access_txt = "5; 33"},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/supply/hidden{req_access_txt = 1},/turf/simulated/floor/plating,/area/maintenance/aft{name = "Aft Maintenance"}) "bMP" = (/obj/machinery/smartfridge,/turf/simulated/wall,/area/hydroponics) "bMQ" = (/obj/item/weapon/cigbutt,/turf/simulated/floor/plating,/area/engine/engineering) -"bMR" = (/obj/machinery/atmospherics/pipe/simple/cyan/visible{},/obj/machinery/atmospherics/pipe/simple/yellow/visible{dir = 4},/turf/simulated/floor,/area/maintenance/storage) +"bMR" = (/obj/machinery/atmospherics/pipe/simple/cyan/visible,/obj/machinery/atmospherics/pipe/simple/yellow/visible{dir = 4},/turf/simulated/floor{icon_state = "dark"},/area/maintenance/storage) "bMS" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass,/turf/simulated/floor{dir = 2; icon_state = "purplecorner"},/area/hallway/primary/aft) "bMT" = (/obj/machinery/atmospherics/pipe/manifold/yellow/visible{dir = 1},/turf/simulated/floor,/area/maintenance/storage) "bMU" = (/turf/simulated/wall/r_wall,/area/tcommsat/server) @@ -4729,7 +4729,7 @@ "bMW" = (/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/simulated/floor/plating/airless,/area/solar/port) "bMX" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/cable/yellow{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/simulated/floor/plating{tag = "icon-warnplate (WEST)"; icon_state = "warnplate"; dir = 8},/area/maintenance/aft{name = "Aft Maintenance"}) "bMY" = (/obj/machinery/atmospherics/pipe/manifold/yellow/visible{dir = 4},/turf/simulated/floor,/area/maintenance/storage) -"bMZ" = (/obj/structure/window/reinforced{dir = 4; pixel_x = 0},/obj/structure/table,/obj/machinery/atmospherics/pipe/simple/green/visible{},/obj/item/weapon/paper_bin{pixel_x = -2; pixel_y = 5},/turf/simulated/floor{dir = 4; icon_state = "caution"},/area/maintenance/storage) +"bMZ" = (/obj/structure/window/reinforced{dir = 4; pixel_x = 0},/obj/machinery/atmospherics/binary/pump{dir = 8; name = "N2O to Pure"; on = 0},/obj/machinery/atmospherics/pipe/simple/green/visible,/turf/simulated/floor{dir = 5; icon_state = "escape"},/area/maintenance/storage) "bNa" = (/obj/structure/closet,/obj/item/stack/cable_coil/random,/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 1},/area/maintenance/starboard) "bNb" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 4},/area/maintenance/aft{name = "Aft Maintenance"}) "bNc" = (/obj/machinery/door/airlock/maintenance{name = "Storage Room"; req_access_txt = "12"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plating,/area/maintenance/aft{name = "Aft Maintenance"}) @@ -4810,13 +4810,13 @@ "bOz" = (/obj/machinery/atmospherics/pipe/manifold/yellow/visible{dir = 8},/turf/simulated/floor,/area/maintenance/storage) "bOA" = (/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 8},/turf/simulated/floor/plating,/area/maintenance/aft{name = "Aft Maintenance"}) "bOB" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 6},/turf/simulated/floor{icon_state = "dark"},/area/engine/gravity_generator) -"bOC" = (/obj/machinery/atmospherics/pipe/simple/green/visible{},/turf/simulated/floor{icon_state = "dark"},/area/maintenance/storage) -"bOD" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/grille,/obj/machinery/atmospherics/pipe/simple/cyan/visible{},/turf/simulated/floor/plating,/area/maintenance/storage) +"bOC" = (/obj/machinery/atmospherics/pipe/simple/yellow/visible,/turf/simulated/floor,/area/maintenance/storage) +"bOD" = (/obj/machinery/atmospherics/pipe/simple/cyan/visible,/turf/simulated/floor{icon_state = "dark"},/area/maintenance/storage) "bOE" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/grille,/turf/simulated/floor/plating,/area/maintenance/storage) -"bOF" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/grille,/obj/machinery/atmospherics/pipe/simple/yellow/visible{},/turf/simulated/floor/plating,/area/maintenance/storage) +"bOF" = (/obj/machinery/computer/general_air_control/large_tank_control{frequency = 1441; input_tag = "n2o_in"; name = "Nitrous Oxide Supply Control"; output_tag = "n2o_out"; sensors = list("n2o_sensor" = "Tank")},/obj/machinery/atmospherics/pipe/simple/green/visible,/obj/structure/window/reinforced{dir = 4; pixel_x = 0},/turf/simulated/floor{dir = 4; icon_state = "escape"},/area/maintenance/storage) "bOG" = (/obj/effect/landmark{name = "xeno_spawn"; pixel_x = -1},/turf/simulated/floor/engine{name = "air floor"; nitrogen = 10580; oxygen = 2644},/area/maintenance/storage) "bOH" = (/obj/machinery/computer/upload/borg,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/window/westleft{base_state = "left"; dir = 2; icon_state = "left"; layer = 3.1; name = "Cyborg Upload Console Window"; req_access_txt = "16"},/turf/simulated/floor{icon_state = "dark"},/area/turret_protected/ai_upload) -"bOI" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/grille,/obj/machinery/atmospherics/pipe/simple/green/visible{},/turf/simulated/floor/plating,/area/maintenance/storage) +"bOI" = (/obj/structure/table,/obj/machinery/microwave{pixel_x = -3; pixel_y = 6},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/door_control{id = "kitchenwindow"; name = "Window Shutter Control"; pixel_x = -26; pixel_y = 0; req_access_txt = "28"},/turf/simulated/floor{icon_state = "cafeteria"; dir = 2},/area/crew_quarters/kitchen) "bOJ" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/atmospherics/unary/vent_scrubber{dir = 4; on = 1; scrub_Toxins = 0},/turf/simulated/floor{tag = "icon-warnwhite (NORTH)"; icon_state = "warnwhite"; dir = 1},/area/medical/research{name = "Research Division"}) "bOK" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/table,/obj/item/weapon/storage/box/syringes,/obj/item/weapon/storage/box/beakers{pixel_x = 2; pixel_y = 2},/obj/item/weapon/storage/box/beakers{pixel_x = 2; pixel_y = 2},/turf/simulated/floor{dir = 2; icon_state = "whiteyellow"; tag = "icon-whitehall (WEST)"},/area/medical/chemistry) "bOL" = (/obj/machinery/door/poddoor{id = "chapelgun"; name = "Chapel Launcher Door"},/turf/simulated/floor/plating,/area/chapel/main) @@ -4871,7 +4871,7 @@ "bPI" = (/obj/machinery/light{icon_state = "tube1"; dir = 8},/obj/structure/extinguisher_cabinet{pixel_x = -27; pixel_y = 0},/obj/structure/flora/kirbyplants{tag = "icon-plant-03"; icon_state = "plant-03"},/turf/simulated/floor{dir = 1; icon_state = "neutralcorner"},/area/crew_quarters/locker) "bPJ" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 2; initialize_directions = 11},/turf/simulated/floor{dir = 2; icon_state = "warning"},/area/gateway) "bPK" = (/obj/structure/table/reinforced,/obj/item/weapon/folder/white,/obj/item/weapon/folder/white,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/item/device/multitool{pixel_x = 3},/turf/simulated/floor{dir = 2; icon_state = "warning"},/area/toxins/telesci) -"bPL" = (/obj/machinery/requests_console{department = "Atmospherics"; departmentType = 4; name = "Atmos RC"; pixel_x = 30; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/shower{dir = 8; icon_state = "shower"; name = "emergency shower"; tag = "icon-shower (WEST)"},/turf/simulated/floor,/area/maintenance/storage) +"bPL" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/visible,/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/cyan/visible{dir = 4},/turf/simulated/floor,/area/maintenance/storage) "bPM" = (/turf/simulated/floor/plating{tag = "icon-platingdmg1"; icon_state = "platingdmg1"},/area/engine/engineering) "bPN" = (/obj/structure/table,/obj/item/weapon/storage/belt/medical{pixel_x = 0; pixel_y = 2},/obj/item/weapon/storage/belt/medical{pixel_x = 0; pixel_y = 2},/obj/item/clothing/tie/stethoscope,/obj/item/clothing/tie/stethoscope,/obj/item/weapon/gun/syringe,/turf/simulated/floor{dir = 5; icon_state = "whiteblue"},/area/medical/medbay2{name = "Medbay Storage"}) "bPO" = (/turf/simulated/wall,/area/security/checkpoint/science{name = "Security Post - Research Division"}) @@ -4945,7 +4945,7 @@ "bRe" = (/obj/item/device/radio/intercom{broadcasting = 1; frequency = 1447; name = "Private AI Channel"; pixel_y = -25},/obj/machinery/camera/motion{c_tag = "AI Upload Chamber - Starboard"; dir = 1; network = list("SS13","RD","AIUpload")},/turf/simulated/floor/bluegrid,/area/turret_protected/ai_upload) "bRf" = (/obj/structure/table,/obj/item/weapon/reagent_containers/food/snacks/mint,/obj/machinery/alarm{dir = 4; pixel_x = -23; pixel_y = 0},/obj/machinery/power/apc{dir = 2; name = "Kitchen APC"; pixel_y = -24},/obj/structure/cable/yellow,/turf/simulated/floor{icon_state = "cafeteria"; dir = 2},/area/crew_quarters/kitchen) "bRg" = (/turf/simulated/floor/engine{name = "o2 floor"; nitrogen = 0; oxygen = 100000},/area/maintenance/storage) -"bRh" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor{dir = 8; icon_state = "caution"},/area/maintenance/storage) +"bRh" = (/obj/machinery/atmospherics/pipe/manifold/general/visible,/obj/machinery/meter,/turf/simulated/floor,/area/maintenance/storage) "bRi" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{req_access_txt = 1},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor{dir = 8; icon_state = "bluecorner"},/area/hallway/primary/aft) "bRj" = (/obj/structure/table,/obj/item/weapon/reagent_containers/glass/beaker{pixel_x = 5},/obj/item/weapon/reagent_containers/food/condiment/enzyme{layer = 5},/turf/simulated/floor{icon_state = "cafeteria"; dir = 2},/area/crew_quarters/kitchen) "bRk" = (/obj/machinery/recharger{pixel_y = 4},/obj/structure/table/reinforced,/obj/machinery/requests_console{department = "Security"; departmentType = 5; pixel_y = 30},/obj/machinery/light{dir = 1},/obj/machinery/camera{c_tag = "Security Post - Medbay"; dir = 2; network = list("SS13","Medbay")},/turf/simulated/floor{icon_state = "red"; dir = 1},/area/security/checkpoint/medical) @@ -5040,6 +5040,7 @@ "bSV" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/effect/spawner/lootdrop{loot = list("/obj/structure/grille","/obj/structure/grille","/obj/structure/grille","/obj/structure/grille","/obj/structure/grille","/obj/item/weapon/cigbutt","/obj/item/trash/cheesie","/obj/item/trash/candy","/obj/item/trash/chips","/obj/item/trash/deadmouse","/obj/item/trash/pistachios","/obj/item/trash/plate","/obj/item/trash/popcorn","/obj/item/trash/raisins","/obj/item/trash/sosjerky","/obj/item/trash/syndi_cakes"); name = "maint grille or trash spawner"},/turf/simulated/floor/plating,/area/maintenance/starboard) "bSW" = (/obj/machinery/cell_charger,/obj/item/weapon/stock_parts/cell/high{charge = 100; maxcharge = 15000},/obj/item/weapon/stock_parts/cell/high{charge = 100; maxcharge = 15000},/obj/machinery/power/apc{dir = 2; name = "Research Lab APC"; pixel_x = 0; pixel_y = -26},/obj/structure/cable/yellow,/obj/machinery/door_control{dir = 2; id = "rndshutters"; name = "Shutters Control Button"; pixel_x = -24; pixel_y = -25},/obj/structure/table/reinforced,/turf/simulated/floor{dir = 1; icon_state = "warning"},/area/toxins/lab) "bSX" = (/obj/structure/closet/firecloset,/turf/simulated/floor{tag = "icon-vault"; icon_state = "vault"},/area/hallway/primary/central) +"bSY" = (/obj/machinery/atmospherics/pipe/simple/green/visible{dir = 4},/obj/machinery/atmospherics/pipe/simple/cyan/visible,/turf/simulated/floor{icon_state = "dark"},/area/maintenance/storage) "bSZ" = (/turf/simulated/floor{icon_state = "green"; dir = 4},/area/hydroponics) "bTa" = (/turf/simulated/floor{icon_state = "green"; dir = 8},/area/hydroponics) "bTb" = (/turf/simulated/floor{icon_state = "vault"; dir = 8},/area/engine/gravity_generator) @@ -5240,6 +5241,7 @@ "bWO" = (/obj/machinery/air_sensor{frequency = 1441; id_tag = "n2_sensor"},/turf/simulated/floor/engine{name = "n2 floor"; nitrogen = 100000; oxygen = 0},/area/maintenance/storage) "bWP" = (/obj/machinery/portable_atmospherics/canister/nitrogen,/turf/simulated/floor/engine{name = "n2 floor"; nitrogen = 100000; oxygen = 0},/area/maintenance/storage) "bWQ" = (/obj/effect/decal/cleanable/dirt,/obj/machinery/hologram/holopad,/turf/simulated/floor/carpet,/area/assembly/showroom{name = "\improper Corporate Showroom"}) +"bWR" = (/obj/structure/extinguisher_cabinet{pixel_x = 27; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/scrubbers/visible,/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor,/area/maintenance/storage) "bWS" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 5},/obj/machinery/hologram/holopad,/obj/structure/disposalpipe/segment,/turf/simulated/floor{icon_state = "white"},/area/medical/research{name = "Research Division"}) "bWT" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 6},/turf/simulated/floor/plating,/area/maintenance/starboard) "bWU" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden{req_access_txt = 1},/turf/simulated/floor/carpet,/area/library) @@ -5285,9 +5287,9 @@ "bXI" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/obj/structure/grille,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor{icon_state = "dark"},/area/security/checkpoint/science{name = "Security Post - Research Division"}) "bXJ" = (/obj/structure/cable/yellow{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor{icon_state = "white"},/area/medical/research{name = "Research Division"}) "bXK" = (/obj/machinery/hydroponics/constructable,/turf/simulated/floor{dir = 1; icon_state = "warning"},/area/hydroponics) -"bXL" = (/obj/machinery/atmospherics/pipe/simple/yellow/visible{},/turf/simulated/floor{icon_state = "dark"},/area/maintenance/storage) +"bXL" = (/obj/machinery/atmospherics/pipe/simple/green/visible,/obj/machinery/door/window/northleft{dir = 8; icon_state = "left"; name = "Inner Pipe Access"; req_access_txt = "24"},/turf/simulated/floor{icon_state = "dark"},/area/maintenance/storage) "bXM" = (/obj/machinery/atmospherics/pipe/simple/cyan/visible{dir = 9},/obj/machinery/camera{c_tag = "Atmospherics - Starboard Aft"; dir = 1; network = list("SS13")},/turf/simulated/floor{icon_state = "dark"},/area/maintenance/storage) -"bXN" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{},/obj/machinery/light{dir = 8},/obj/machinery/alarm{dir = 4; pixel_x = -23; pixel_y = 0},/obj/machinery/camera{c_tag = "Atmospherics - Port-Aft"; dir = 4; network = list("SS13")},/turf/simulated/floor{dir = 8; icon_state = "caution"},/area/maintenance/storage) +"bXN" = (/obj/machinery/atmospherics/pipe/simple/green/visible,/obj/machinery/atmospherics/binary/pump{dir = 8; name = "Plasma to Pure"; on = 0},/obj/structure/window/reinforced{dir = 4; pixel_x = 0},/obj/structure/window/reinforced{dir = 1; pixel_y = 1},/turf/simulated/floor{icon_state = "purplefull"},/area/maintenance/storage) "bXO" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/door/firedoor,/turf/simulated/floor{icon_state = "whitebluefull"},/area/medical/sleeper{name = "Sleepers"}) "bXP" = (/turf/simulated/floor{dir = 5; icon_state = "warning"},/area/hydroponics) "bXQ" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/door/firedoor,/turf/simulated/floor{dir = 2; icon_state = "whitehall"; tag = "icon-whitehall (WEST)"},/area/medical/medbay{name = "Medbay Central"}) @@ -5324,7 +5326,7 @@ "bYv" = (/turf/simulated/wall/r_wall,/area/maintenance/aft{name = "Aft Maintenance"}) "bYw" = (/turf/simulated/wall,/area/maintenance/aft{name = "Aft Maintenance"}) "bYx" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 4},/area/maintenance/starboard) -"bYy" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor{dir = 8; icon_state = "caution"},/area/maintenance/storage) +"bYy" = (/obj/machinery/computer/general_air_control/large_tank_control{frequency = 1441; input_tag = "tox_in"; name = "Toxin Supply Control"; output_tag = "tox_out"; sensors = list("tox_sensor" = "Tank")},/obj/machinery/atmospherics/pipe/simple/green/visible,/obj/structure/window/reinforced{dir = 4; pixel_x = 0},/turf/simulated/floor{icon_state = "purplefull"},/area/maintenance/storage) "bYz" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = ""},/turf/simulated/floor/bluegrid{icon_state = "dark"; name = "Mainframe Floor"; nitrogen = 100; oxygen = 0; temperature = 80},/area/tcommsat/server) "bYA" = (/turf/simulated/floor/plating{tag = "icon-warnplate (NORTH)"; icon_state = "warnplate"; dir = 1},/area/maintenance/aft{name = "Aft Maintenance"}) "bYB" = (/obj/machinery/door_control{id = "telelab"; name = "Test Chamber Blast Doors"; pixel_x = 0; pixel_y = 25},/obj/structure/rack,/obj/item/weapon/storage/backpack/satchel_tox{pixel_x = -5; pixel_y = 2},/obj/item/weapon/storage/backpack/satchel_tox,/obj/item/weapon/storage/backpack/satchel_tox{pixel_x = 5; pixel_y = -2},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 6},/turf/simulated/floor{dir = 2; icon_state = "warning"},/area/toxins/telesci) @@ -5343,8 +5345,8 @@ "bYO" = (/obj/structure/lattice,/obj/structure/grille,/obj/structure/lattice,/obj/structure/lattice,/turf/simulated/wall/r_wall,/area/space) "bYP" = (/turf/simulated/wall/r_wall,/area/toxins/lab) "bYQ" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor{dir = 1; icon_state = "whiteblue"},/area/medical/medbay{name = "Medbay Central"}) -"bYR" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/grille,/obj/machinery/atmospherics/pipe/simple/cyan/visible{},/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plating,/area/maintenance/storage) -"bYS" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/grille,/obj/machinery/atmospherics/pipe/simple/green/visible{},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating,/area/maintenance/storage) +"bYR" = (/obj/machinery/requests_console{department = "Atmospherics"; departmentType = 4; name = "Atmos RC"; pixel_x = 30; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/scrubbers/visible,/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/shower{dir = 8; icon_state = "shower"; name = "emergency shower"; tag = "icon-shower (WEST)"},/turf/simulated/floor,/area/maintenance/storage) +"bYS" = (/obj/machinery/atmospherics/pipe/manifold/general/visible,/obj/item/weapon/cigbutt,/turf/simulated/floor,/area/maintenance/storage) "bYT" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 2},/turf/simulated/floor{dir = 1; icon_state = "whiteblue"},/area/medical/medbay{name = "Medbay Central"}) "bYU" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/disposalpipe/segment,/obj/machinery/door/poddoor/preopen{id = "Biohazard"; name = "biohazard containment door"},/turf/simulated/floor{icon_state = "delivery"},/area/medical/research{name = "Research Division"}) "bYV" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/door/poddoor/preopen{id = "Biohazard"; name = "biohazard containment door"},/turf/simulated/floor{icon_state = "delivery"},/area/medical/research{name = "Research Division"}) @@ -5444,7 +5446,7 @@ "caL" = (/obj/structure/table/reinforced,/obj/machinery/door/firedoor,/obj/item/weapon/reagent_containers/food/drinks/britcup,/turf/simulated/floor{icon_state = "whitegreenfull"},/area/medical/medbay{name = "Medbay Central"}) "caM" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{dir = 4},/turf/simulated/floor{dir = 1; icon_state = "blackcorner"},/area/maintenance/storage) "caN" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass_security{name = "Security Post - Research Division"; req_access_txt = "63"},/turf/simulated/floor{icon_state = "redfull"},/area/security/checkpoint/science{name = "Security Post - Research Division"}) -"caO" = (/obj/machinery/computer/general_air_control/large_tank_control{frequency = 1441; input_tag = "tox_in"; name = "Toxin Supply Control"; output_tag = "tox_out"; sensors = list("tox_sensor" = "Tank")},/obj/machinery/atmospherics/pipe/simple/green/visible{},/obj/structure/window/reinforced{dir = 4; pixel_x = 0},/turf/simulated/floor{icon_state = "purplefull"},/area/maintenance/storage) +"caO" = (/obj/machinery/atmospherics/binary/pump{dir = 8; name = "CO2 to Pure"; on = 0},/obj/machinery/atmospherics/pipe/simple/green/visible,/obj/structure/window/reinforced{dir = 4; pixel_x = 0},/obj/structure/window/reinforced{dir = 1; pixel_y = 1},/turf/simulated/floor{tag = "icon-vault"; icon_state = "vault"},/area/maintenance/storage) "caP" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 4},/obj/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/simulated/floor{dir = 1; icon_state = "whiteblue"},/area/medical/medbay{name = "Medbay Central"}) "caQ" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 8; initialize_directions = 11},/turf/simulated/floor{dir = 1; icon_state = "whiteblue"},/area/medical/medbay{name = "Medbay Central"}) "caR" = (/obj/machinery/door/window/southleft{dir = 2; name = "Maximum Security Test Chamber"; req_access_txt = "55"},/obj/machinery/door/poddoor/preopen{id = "Xenolab"; name = "test chamber blast door"},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/engine,/area/toxins/xenobiology) @@ -5488,7 +5490,7 @@ "cbD" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{req_access_txt = 1},/obj/machinery/alarm{dir = 4; pixel_x = -23; pixel_y = 0},/turf/simulated/floor{dir = 8; icon_state = "neutralcorner"},/area/hallway/primary/aft) "cbE" = (/obj/structure/table,/obj/structure/bedsheetbin{pixel_x = 2},/obj/item/clothing/mask/muzzle,/turf/simulated/floor/plating,/area/maintenance/aft{name = "Aft Maintenance"}) "cbF" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 2; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/simulated/floor/wood,/area/library) -"cbG" = (/obj/machinery/atmospherics/pipe/simple/green/visible{},/obj/machinery/door/window/northleft{dir = 8; icon_state = "left"; name = "Inner Pipe Access"; req_access_txt = "24"},/turf/simulated/floor{icon_state = "dark"},/area/maintenance/storage) +"cbG" = (/obj/machinery/computer/general_air_control/large_tank_control{frequency = 1441; input_tag = "co2_in"; name = "Carbon Dioxide Supply Control"; output_tag = "co2_out"; sensors = list("co2_sensor" = "Tank")},/obj/machinery/atmospherics/pipe/simple/green/visible,/obj/structure/window/reinforced{dir = 4; pixel_x = 0},/turf/simulated/floor{tag = "icon-vault"; icon_state = "vault"},/area/maintenance/storage) "cbH" = (/obj/item/weapon/cigbutt,/obj/machinery/light/small{dir = 1},/turf/simulated/floor{icon_state = "dark"},/area/medical/surgery) "cbI" = (/obj/structure/stool/bed/chair,/obj/machinery/alarm{frequency = 1439; pixel_y = 23},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 6},/turf/simulated/floor{icon_state = "dark"},/area/medical/surgery) "cbJ" = (/obj/machinery/vending/coffee,/obj/machinery/newscaster{pixel_x = 0; pixel_y = 32},/obj/machinery/light{dir = 1},/turf/simulated/floor/wood,/area/library) @@ -5529,13 +5531,14 @@ "ccs" = (/obj/structure/stool/bed/chair{pixel_y = -2},/turf/simulated/floor{tag = "icon-vault"; icon_state = "vault"},/area/chapel/main) "cct" = (/turf/simulated/floor{dir = 2; icon_state = "whiteyellow"},/area/medical/medbay{name = "Medbay Central"}) "ccu" = (/obj/effect/landmark/start{name = "Scientist"},/obj/structure/stool/bed/chair/office/light{dir = 1; pixel_y = 3},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor{icon_state = "white"},/area/toxins/telesci) +"ccv" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/visible,/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor{dir = 8; icon_state = "caution"},/area/maintenance/storage) "ccw" = (/obj/machinery/power/apc{cell_type = 10000; dir = 1; name = "Research Division APC"; pixel_x = 0; pixel_y = 25},/obj/structure/cable/yellow{d2 = 8; icon_state = "0-8"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 10},/obj/machinery/camera{c_tag = "Research Division - Airlock"; dir = 2; network = list("SS13","RD")},/turf/simulated/floor{icon_state = "warnwhite"; dir = 5},/area/medical/research{name = "Research Division"}) "ccx" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/light,/turf/simulated/floor{dir = 8; icon_state = "neutralcorner"},/area/bridge/meeting_room{name = "\improper Command Hallway"}) "ccy" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 5},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor{icon_state = "red"; dir = 8},/area/security/checkpoint/science{name = "Security Post - Research Division"}) "ccz" = (/obj/structure/closet/secure_closet/security/science,/turf/simulated/floor{icon_state = "red"},/area/security/checkpoint/science{name = "Security Post - Research Division"}) "ccA" = (/obj/machinery/power/apc{dir = 8; name = "Security Post - Research Division APC"; pixel_x = -24},/obj/structure/cable/yellow,/turf/simulated/floor{icon_state = "red"; dir = 10},/area/security/checkpoint/science{name = "Security Post - Research Division"}) "ccB" = (/obj/item/weapon/minihoe,/obj/item/weapon/crowbar,/obj/item/device/analyzer/plant_analyzer,/obj/item/weapon/reagent_containers/glass/bucket,/obj/structure/table,/turf/simulated/floor{icon_state = "hydrofloor"},/area/hallway/primary/central) -"ccC" = (/obj/machinery/atmospherics/pipe/simple/green/visible{dir = 4},/obj/machinery/atmospherics/pipe/simple/cyan/visible{},/turf/simulated/floor{icon_state = "dark"},/area/maintenance/storage) +"ccC" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/visible,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor{dir = 8; icon_state = "caution"},/area/maintenance/storage) "ccD" = (/obj/machinery/light/small,/obj/machinery/alarm{dir = 1; pixel_y = -22},/turf/simulated/floor/wood,/area/library) "ccE" = (/obj/structure/stool,/turf/simulated/floor{tag = "icon-cafeteria (NORTHEAST)"; icon_state = "cafeteria"; dir = 5},/area/medical/research{name = "Research Division"}) "ccF" = (/obj/structure/table/woodentable,/obj/item/device/flashlight/lamp,/turf/simulated/floor/wood,/area/maintenance/aft{name = "Aft Maintenance"}) @@ -5548,6 +5551,7 @@ "ccM" = (/obj/structure/table/woodentable,/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/item/weapon/beach_ball{desc = "The simple beach ball is one of Nanotrasen's most popular products. 'Why do we make beach balls? Because we can! (TM)' - Nanotrasen"; item_state = "beachball"; name = "NanoTrasen brand beach ball"; pixel_y = 7},/turf/simulated/floor/carpet,/area/assembly/showroom{name = "\improper Corporate Showroom"}) "ccN" = (/obj/machinery/door/airlock/maintenance{req_access_txt = "0"; req_one_access_txt = "12;27"},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{req_access_txt = 1},/turf/simulated/floor/plating,/area/maintenance/fpmaint2{name = "Port Maintenance"}) "ccO" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/structure/extinguisher_cabinet{pixel_x = 0; pixel_y = 30},/turf/simulated/floor{tag = "icon-warningcorner (EAST)"; icon_state = "warningcorner"; dir = 4},/area/hallway/primary/central) +"ccP" = (/obj/machinery/light{dir = 4},/obj/machinery/atmospherics/pipe/simple/cyan/visible,/turf/simulated/floor{icon_state = "dark"},/area/maintenance/storage) "ccQ" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/door/airlock/maintenance{name = "Storage Room"; req_access_txt = "12"},/turf/simulated/floor/plating,/area/maintenance/fpmaint2{name = "Port Maintenance"}) "ccR" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor/wood,/area/security/vacantoffice) "ccS" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/door/firedoor,/obj/machinery/door/airlock/command{name = "Teleport Access"; req_access_txt = "0"; req_one_access_txt = "17;19"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/disposalpipe/segment,/turf/simulated/floor{icon_state = "delivery"},/area/teleporter{name = "\improper Teleporter Room"}) @@ -5557,7 +5561,7 @@ "ccW" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/wall/r_wall,/area/gateway) "ccX" = (/obj/structure/stool/bed/chair,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor{icon_state = "dark"},/area/medical/surgery) "ccY" = (/obj/structure/table,/obj/item/weapon/cautery{pixel_x = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/item/weapon/razor{pixel_y = 5},/turf/simulated/floor{icon_state = "whitehall"; dir = 2},/area/medical/surgery) -"ccZ" = (/obj/machinery/atmospherics/pipe/simple/green/visible{},/obj/machinery/atmospherics/binary/pump{dir = 8; name = "Plasma to Pure"; on = 0},/obj/structure/window/reinforced{dir = 4; pixel_x = 0},/obj/structure/window/reinforced{dir = 1; pixel_y = 1},/turf/simulated/floor{icon_state = "purplefull"},/area/maintenance/storage) +"ccZ" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/visible,/obj/machinery/light{dir = 8},/obj/machinery/alarm{dir = 4; pixel_x = -23; pixel_y = 0},/obj/machinery/camera{c_tag = "Atmospherics - Port-Aft"; dir = 4; network = list("SS13")},/turf/simulated/floor{dir = 8; icon_state = "caution"},/area/maintenance/storage) "cda" = (/obj/machinery/door/airlock/maintenance{name = "Library Maintenance"; req_access_txt = "0"; req_one_access_txt = "12;37"},/turf/simulated/floor/plating,/area/maintenance/fpmaint2{name = "Port Maintenance"}) "cdb" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor{dir = 1; icon_state = "neutralcorner"},/area/hallway/primary/central) "cdc" = (/obj/structure/stool/bed/chair/wood/wings{dir = 1},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/effect/landmark/start{name = "Clown"},/turf/simulated/floor/carpet,/area/crew_quarters/theatre) @@ -5627,7 +5631,7 @@ "ceo" = (/obj/structure/table/woodentable,/obj/machinery/light/small{dir = 8},/obj/item/clothing/mask/horsehead,/turf/simulated/floor/wood,/area/crew_quarters/theatre) "cep" = (/obj/machinery/icecream_vat,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/obj/machinery/firealarm{dir = 4; pixel_x = 28},/turf/simulated/floor{icon_state = "showroomfloor"},/area/crew_quarters/kitchen) "ceq" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor,/area/ai_monitored/storage/eva{name = "E.V.A. Storage"}) -"cer" = (/obj/structure/extinguisher_cabinet{pixel_x = 27; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor,/area/maintenance/storage) +"cer" = (/obj/structure/window/reinforced{dir = 4; pixel_x = 0},/obj/structure/window/reinforced{dir = 1; pixel_y = 2},/obj/structure/table,/obj/machinery/atmospherics/pipe/simple/green/visible,/obj/item/weapon/folder/yellow,/obj/item/weapon/folder/yellow,/turf/simulated/floor{dir = 4; icon_state = "caution"},/area/maintenance/storage) "ces" = (/obj/structure/table/woodentable,/obj/item/weapon/soap/nanotrasen,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/light/small{dir = 4},/turf/simulated/floor/wood,/area/crew_quarters/theatre) "cet" = (/turf/simulated/floor{dir = 1; icon_state = "warning"},/area/teleporter{name = "\improper Teleporter Room"}) "ceu" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/turf/simulated/floor{dir = 5; icon_state = "warning"},/area/teleporter{name = "\improper Teleporter Room"}) @@ -5678,6 +5682,7 @@ "cfn" = (/turf/simulated/floor/mech_bay_recharge_floor,/area/maintenance/aft{name = "Aft Maintenance"}) "cfo" = (/obj/machinery/door/airlock/maintenance{req_access_txt = "0"; req_one_access_txt = "12;27;37"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor/plating,/area/maintenance/fpmaint2{name = "Port Maintenance"}) "cfp" = (/obj/structure/closet/fireaxecabinet{pixel_x = -32; pixel_y = 0},/obj/machinery/camera{c_tag = "Atmospherics - Port"; dir = 4; network = list("SS13")},/turf/simulated/floor{dir = 8; icon_state = "caution"},/area/maintenance/storage) +"cfq" = (/obj/machinery/atmospherics/pipe/simple/cyan/visible,/obj/machinery/atmospherics/pipe/simple/yellow/visible{dir = 4},/turf/simulated/floor,/area/maintenance/storage) "cfr" = (/obj/machinery/camera{c_tag = "Gravity Generator Foyer"},/obj/structure/closet/radiation,/obj/structure/sign/securearea{desc = "A warning sign which reads 'RADIOACTIVE AREA'"; dir = 1; icon_state = "radiation"; name = "RADIOACTIVE AREA"; pixel_x = 0; pixel_y = 32},/obj/machinery/alarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/turf/simulated/floor{dir = 5; icon_state = "warning"},/area/engine/gravity_generator) "cfs" = (/obj/structure/grille,/obj/structure/window/reinforced/tinted{dir = 5; health = 120; icon_state = "twindow"; reinf = 0},/obj/structure/cable/yellow{d2 = 2; icon_state = "0-2"},/turf/simulated/floor/plating,/area/assembly/showroom{name = "\improper Corporate Showroom"}) "cft" = (/obj/effect/landmark/start{name = "Chef"},/obj/machinery/atmospherics/unary/vent_pump{dir = 4; on = 1},/obj/effect/landmark{name = "xeno_spawn"; pixel_x = -1},/turf/simulated/floor{icon_state = "showroomfloor"},/area/crew_quarters/kitchen) @@ -5696,10 +5701,10 @@ "cfG" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating,/area/maintenance/aft{name = "Aft Maintenance"}) "cfH" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/structure/grille,/turf/simulated/floor/plating,/area/maintenance/storage) "cfI" = (/obj/structure/closet/radiation,/obj/structure/sign/securearea{desc = "A warning sign which reads 'RADIOACTIVE AREA'"; dir = 1; icon_state = "radiation"; name = "RADIOACTIVE AREA"; pixel_x = 0; pixel_y = 32},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor{dir = 9; icon_state = "warning"},/area/engine/gravity_generator) -"cfJ" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/cyan/visible{dir = 4},/turf/simulated/floor,/area/maintenance/storage) +"cfJ" = (/obj/structure/window/reinforced{dir = 4; pixel_x = 0},/obj/structure/table,/obj/machinery/atmospherics/pipe/simple/green/visible,/obj/item/weapon/paper_bin{pixel_x = -2; pixel_y = 5},/turf/simulated/floor{dir = 4; icon_state = "caution"},/area/maintenance/storage) "cfK" = (/obj/machinery/atmospherics/pipe/manifold/cyan/visible{dir = 1; initialize_directions = 11},/turf/simulated/floor{icon_state = "arrival"; dir = 8},/area/maintenance/storage) "cfL" = (/turf/simulated/floor/wood{tag = "icon-wood-broken3"; icon_state = "wood-broken3"},/area/assembly/showroom{name = "\improper Corporate Showroom"}) -"cfM" = (/obj/machinery/atmospherics/pipe/simple/green/visible{dir = 4},/obj/machinery/atmospherics/pipe/simple/cyan/visible{},/turf/simulated/floor{icon_state = "green"; dir = 6},/area/maintenance/storage) +"cfM" = (/obj/structure/window/reinforced,/obj/machinery/atmospherics/pipe/simple/cyan/visible,/obj/machinery/atmospherics/pipe/simple/green/visible{dir = 4},/turf/simulated/floor{dir = 8; icon_state = "barber"},/area/maintenance/storage) "cfN" = (/obj/structure/reagent_dispensers/watertank,/obj/machinery/atmospherics/pipe/simple/cyan/visible{dir = 9},/turf/simulated/floor,/area/maintenance/storage) "cfO" = (/obj/structure/closet/secure_closet/bar{pixel_x = -3; pixel_y = -1; req_access_txt = "25"},/turf/simulated/floor/wood,/area/maintenance/aft{name = "Aft Maintenance"}) "cfP" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/extinguisher_cabinet{pixel_x = 27; pixel_y = 0},/turf/simulated/floor{dir = 4; icon_state = "neutralcorner"},/area/hallway/primary/central) @@ -5758,7 +5763,7 @@ "cgQ" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 4; initialize_directions = 11},/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/turf/simulated/floor,/area/hallway/primary/starboard) "cgR" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 1},/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/simulated/floor{dir = 2; icon_state = "arrival"},/area/hallway/secondary/entry{name = "Arrivals"}) "cgS" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{req_access_txt = 1},/turf/simulated/floor/plating{tag = "icon-platingdmg3"; icon_state = "platingdmg3"},/area/maintenance/starboard) -"cgT" = (/obj/machinery/computer/general_air_control/large_tank_control{frequency = 1441; input_tag = "co2_in"; name = "Carbon Dioxide Supply Control"; output_tag = "co2_out"; sensors = list("co2_sensor" = "Tank")},/obj/machinery/atmospherics/pipe/simple/green/visible{},/obj/structure/window/reinforced{dir = 4; pixel_x = 0},/turf/simulated/floor{tag = "icon-vault"; icon_state = "vault"},/area/maintenance/storage) +"cgT" = (/obj/machinery/atmospherics/pipe/simple/green/visible,/turf/simulated/floor{icon_state = "dark"},/area/maintenance/storage) "cgU" = (/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "atmos"; name = "Atmos Blast Door"; opacity = 0},/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/plasticflaps{opacity = 1},/obj/machinery/navbeacon{codes_txt = "delivery;dir=4"; freq = 1400; location = "Atmospherics"},/turf/simulated/floor{icon_state = "delivery"; name = "floor"},/area/maintenance/storage) "cgV" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plating{tag = "icon-platingdmg3"; icon_state = "platingdmg3"},/area/hallway/primary/central) "cgW" = (/obj/machinery/gateway{dir = 6},/turf/simulated/floor{tag = "icon-vault (NORTH)"; icon_state = "vault"; dir = 1},/area/gateway) @@ -5777,7 +5782,7 @@ "chj" = (/obj/structure/reagent_dispensers/watertank,/obj/item/weapon/storage/box/lights/mixed,/turf/simulated/floor/plating{icon_state = "warnplate"},/area/maintenance/starboard) "chk" = (/obj/machinery/firealarm{dir = 8; pixel_x = -24},/obj/structure/sink{icon_state = "sink"; dir = 8; pixel_x = -12; pixel_y = 2},/turf/simulated/floor{icon_state = "hydrofloor"},/area/hallway/primary/central) "chl" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass{name = "Maltese Falcon"},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor,/area/crew_quarters/bar{name = "\improper Maltese Falcon"}) -"chm" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{},/turf/simulated/floor{dir = 1; icon_state = "neutralcorner"},/area/bridge/meeting_room{name = "\improper Command Hallway"}) +"chm" = (/obj/machinery/atmospherics/pipe/simple/yellow/visible,/turf/simulated/floor{icon_state = "dark"},/area/maintenance/storage) "chn" = (/obj/structure/table,/obj/item/weapon/paper_bin{pixel_x = 1; pixel_y = 9},/obj/item/weapon/pen,/obj/machinery/firealarm{dir = 4; pixel_x = 24},/turf/simulated/floor{icon_state = "red"; dir = 5},/area/security/checkpoint/science{name = "Security Post - Research Division"}) "cho" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/item/device/radio/intercom{freerange = 0; frequency = 1459; name = "Station Intercom (General)"; pixel_x = 0; pixel_y = 21},/turf/simulated/floor{dir = 1; icon_state = "neutralcorner"},/area/bridge/meeting_room{name = "\improper Command Hallway"}) "chp" = (/obj/structure/table,/obj/item/weapon/storage/firstaid/fire{pixel_x = 2; pixel_y = 6},/obj/item/weapon/storage/firstaid/fire{pixel_x = -2; pixel_y = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden{req_access_txt = 1},/obj/structure/cable/yellow{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/simulated/floor{dir = 8; icon_state = "whiteblue"},/area/medical/medbay2{name = "Medbay Storage"}) @@ -5814,7 +5819,7 @@ "chU" = (/obj/machinery/firealarm{dir = 1; pixel_y = -24},/obj/structure/table/reinforced,/obj/item/weapon/wrench,/obj/item/weapon/crowbar,/obj/machinery/camera{c_tag = "Medbay Cryo"; dir = 1; network = list("SS13","Medbay")},/turf/simulated/floor{dir = 4; icon_state = "warnwhite"; tag = "icon-warnwhite (NORTH)"},/area/medical/cryo) "chV" = (/obj/structure/sign/chemistry,/turf/simulated/wall,/area/medical/chemistry) "chW" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass{name = "Maltese Falcon"},/turf/simulated/floor,/area/crew_quarters/bar{name = "\improper Maltese Falcon"}) -"chX" = (/obj/machinery/atmospherics/binary/pump{dir = 8; name = "CO2 to Pure"; on = 0},/obj/machinery/atmospherics/pipe/simple/green/visible{},/obj/structure/window/reinforced{dir = 4; pixel_x = 0},/obj/structure/window/reinforced{dir = 1; pixel_y = 1},/turf/simulated/floor{tag = "icon-vault"; icon_state = "vault"},/area/maintenance/storage) +"chX" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/grille,/obj/machinery/atmospherics/pipe/simple/green/visible,/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating,/area/maintenance/storage) "chY" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor{icon_state = "hydrofloor"},/area/hallway/primary/central) "chZ" = (/obj/structure/window/reinforced{dir = 4; pixel_x = 0},/obj/machinery/door/window/eastleft{dir = 1; name = "Research and Development Deliveries"; req_access_txt = "7"},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor{icon_state = "delivery"},/area/toxins/lab) "cia" = (/obj/machinery/newscaster{pixel_x = 0; pixel_y = 32},/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 1},/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/turf/simulated/floor{dir = 1; icon_state = "neutralcorner"},/area/bridge/meeting_room{name = "\improper Command Hallway"}) @@ -5841,7 +5846,7 @@ "civ" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/power/apc{cell_type = 10000; dir = 1; name = "Command Hallway APC"; pixel_x = 0; pixel_y = 25},/obj/structure/cable/yellow{d2 = 2; icon_state = "0-2"},/turf/simulated/floor{dir = 4; icon_state = "neutralcorner"},/area/bridge/meeting_room{name = "\improper Command Hallway"}) "ciw" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0; tag = ""},/turf/simulated/floor/bluegrid{icon_state = "dark"; name = "Mainframe Floor"; nitrogen = 100; oxygen = 0; temperature = 80},/area/tcommsat/server) "cix" = (/obj/effect/spawner/lootdrop{loot = list("/obj/structure/grille","/obj/structure/grille","/obj/structure/grille","/obj/structure/grille","/obj/structure/grille","/obj/item/weapon/cigbutt","/obj/item/trash/cheesie","/obj/item/trash/candy","/obj/item/trash/chips","/obj/item/trash/deadmouse","/obj/item/trash/pistachios","/obj/item/trash/plate","/obj/item/trash/popcorn","/obj/item/trash/raisins","/obj/item/trash/sosjerky","/obj/item/trash/syndi_cakes"); name = "maint grille or trash spawner"},/turf/simulated/floor/plating{tag = "icon-panelscorched"; icon_state = "panelscorched"},/area/maintenance/starboard) -"ciy" = (/obj/machinery/computer/general_air_control/large_tank_control{frequency = 1441; input_tag = "waste_in"; name = "Gas Mix Tank Control"; output_tag = "waste_out"; sensors = list("waste_sensor" = "Tank")},/obj/machinery/atmospherics/pipe/simple/cyan/visible{},/turf/simulated/floor{icon_state = "green"; dir = 4},/area/maintenance/storage) +"ciy" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/grille,/obj/machinery/atmospherics/pipe/simple/yellow/visible,/turf/simulated/floor/plating,/area/maintenance/storage) "ciz" = (/obj/item/weapon/cigbutt,/turf/simulated/floor/plating,/area/maintenance/aft{name = "Aft Maintenance"}) "ciA" = (/obj/effect/decal/cleanable/cobweb2,/obj/structure/closet/emcloset,/turf/simulated/floor/plating,/area/maintenance/fpmaint2{name = "Port Maintenance"}) "ciB" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 4; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/obj/structure/sink{dir = 8; icon_state = "sink"; pixel_x = -12; pixel_y = 2},/obj/machinery/light_switch{pixel_x = -28; pixel_y = 0},/turf/simulated/floor{dir = 4; icon_state = "whitehall"; tag = "icon-whitehall (WEST)"},/area/medical/surgery) @@ -5877,7 +5882,7 @@ "cjf" = (/obj/machinery/door/window/northleft{base_state = "right"; dir = 8; icon_state = "right"; name = "Containment Pen #6"; req_access_txt = "55"},/turf/simulated/floor{dir = 8; icon_state = "warning"},/area/toxins/xenobiology) "cjg" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor{dir = 10; icon_state = "green"},/area/hydroponics) "cjh" = (/obj/structure/stool/bed/chair{dir = 8},/obj/effect/landmark/start{name = "Atmospheric Technician"},/turf/simulated/floor{dir = 8; icon_state = "caution"},/area/maintenance/storage) -"cji" = (/obj/machinery/light{dir = 4},/obj/machinery/atmospherics/pipe/simple/cyan/visible{},/turf/simulated/floor{icon_state = "dark"},/area/maintenance/storage) +"cji" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/grille,/obj/machinery/atmospherics/pipe/simple/green/visible,/turf/simulated/floor/plating,/area/maintenance/storage) "cjj" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/item/weapon/cigbutt,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plating{icon_state = "warnplate"},/area/maintenance/starboard) "cjk" = (/turf/simulated/wall/r_wall,/area/toxins/storage) "cjl" = (/obj/structure/grille,/obj/structure/window/reinforced{layer = 2.9},/obj/structure/window/reinforced{dir = 4; layer = 2.9},/obj/structure/window/reinforced{dir = 1; layer = 2.9},/obj/structure/window/reinforced{dir = 8; layer = 2.9},/turf/simulated/floor/plating,/area/medical/sleeper{name = "Sleepers"}) @@ -5992,7 +5997,7 @@ "clq" = (/turf/simulated/floor{dir = 8; icon_state = "whitepurplecorner"},/area/medical/research{name = "Research Division"}) "clr" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating,/area/maintenance/aft{name = "Aft Maintenance"}) "cls" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/turf/simulated/floor,/area/storage/primary) -"clt" = (/obj/machinery/atmospherics/pipe/simple/cyan/visible{},/obj/machinery/atmospherics/pipe/simple/yellow/visible{dir = 4},/turf/simulated/floor{icon_state = "dark"},/area/maintenance/storage) +"clt" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/grille,/obj/machinery/atmospherics/pipe/simple/cyan/visible,/turf/simulated/floor/plating,/area/maintenance/storage) "clu" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/item/weapon/wrench,/turf/simulated/floor/plating,/area/maintenance/starboard) "clv" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/light/small{dir = 8},/turf/simulated/floor{icon_state = "white"},/area/toxins/xenobiology) "clw" = (/obj/item/weapon/storage/box,/turf/simulated/floor/plating,/area/maintenance/aft{name = "Aft Maintenance"}) @@ -6003,7 +6008,7 @@ "clB" = (/obj/machinery/light/small,/obj/machinery/telecomms/broadcaster/preset_left,/turf/simulated/floor/bluegrid{name = "Mainframe Base"; nitrogen = 100; oxygen = 0; temperature = 80},/area/tcommsat/server) "clC" = (/obj/machinery/light/small,/obj/machinery/telecomms/broadcaster/preset_right,/turf/simulated/floor/bluegrid{name = "Mainframe Base"; nitrogen = 100; oxygen = 0; temperature = 80},/area/tcommsat/server) "clD" = (/turf/simulated/floor/plating{tag = "icon-warnplatecorner (WEST)"; icon_state = "warnplatecorner"; dir = 8},/area/maintenance/aft{name = "Aft Maintenance"}) -"clE" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{},/turf/simulated/floor{dir = 4; icon_state = "neutralcorner"},/area/bridge/meeting_room{name = "\improper Command Hallway"}) +"clE" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/grille,/obj/machinery/atmospherics/pipe/simple/cyan/visible,/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plating,/area/maintenance/storage) "clF" = (/obj/machinery/newscaster{pixel_x = 0; pixel_y = 32},/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 1},/turf/simulated/floor{dir = 4; icon_state = "neutralcorner"},/area/bridge/meeting_room{name = "\improper Command Hallway"}) "clG" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/bookcase{name = "bookcase"},/obj/item/device/radio/intercom{freerange = 0; frequency = 1459; name = "Station Intercom (General)"; pixel_x = 0; pixel_y = 21},/turf/simulated/floor/wood,/area/assembly/showroom{name = "\improper Corporate Showroom"}) "clH" = (/obj/structure/cable/yellow{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/obj/machinery/camera{c_tag = "Central Primary Hallway - Aft-Port Corner"; dir = 1; network = list("SS13")},/turf/simulated/floor{dir = 8; icon_state = "neutralcorner"},/area/hallway/primary/central) @@ -6021,6 +6026,7 @@ "clT" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 4},/area/maintenance/aft{name = "Aft Maintenance"}) "clU" = (/turf/simulated/floor/plating{tag = "icon-warnplatecorner (EAST)"; icon_state = "warnplatecorner"; dir = 4},/area/maintenance/aft{name = "Aft Maintenance"}) "clV" = (/obj/machinery/door/window/northleft{dir = 4; name = "Containment Pen #6"; req_access_txt = "55"},/obj/machinery/door/poddoor/preopen{id = "xenobio6"; name = "containment blast door"},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/engine,/area/toxins/xenobiology) +"clW" = (/obj/structure/lattice,/obj/machinery/atmospherics/pipe/simple/green/visible,/turf/space,/area/space) "clX" = (/obj/structure/disposalpipe/segment,/turf/simulated/floor,/area/assembly/chargebay) "clY" = (/obj/structure/cable/yellow{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/simulated/floor{tag = "icon-cafeteria (NORTHEAST)"; icon_state = "cafeteria"; dir = 5},/area/crew_quarters/kitchen) "clZ" = (/obj/structure/reagent_dispensers/watertank,/obj/item/weapon/reagent_containers/glass/bucket,/obj/structure/window/reinforced{dir = 8},/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_y = 29},/turf/simulated/floor{icon_state = "warning"},/area/hydroponics) @@ -6031,8 +6037,9 @@ "cme" = (/obj/item/weapon/paper_bin{pixel_x = 1; pixel_y = 9},/obj/item/weapon/pen,/obj/structure/table/reinforced,/turf/simulated/floor{tag = "icon-cafeteria (NORTHEAST)"; icon_state = "cafeteria"; dir = 5},/area/crew_quarters/hor) "cmf" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor{tag = "icon-cafeteria (NORTHEAST)"; icon_state = "cafeteria"; dir = 5},/area/crew_quarters/hor) "cmg" = (/obj/machinery/computer/mecha,/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor{tag = "icon-cafeteria (NORTHEAST)"; icon_state = "cafeteria"; dir = 5},/area/crew_quarters/hor) -"cmh" = (/obj/structure/table,/obj/machinery/microwave{pixel_x = -3; pixel_y = 6},/obj/machinery/atmospherics/pipe/simple/supply/hidden{},/obj/machinery/door_control{id = "kitchenwindow"; name = "Window Shutter Control"; pixel_x = -26; pixel_y = 0; req_access_txt = "28"},/turf/simulated/floor{icon_state = "cafeteria"; dir = 2},/area/crew_quarters/kitchen) +"cmh" = (/obj/structure/lattice,/obj/machinery/atmospherics/pipe/simple/yellow/visible,/turf/space,/area/space) "cmi" = (/turf/simulated/floor{tag = "icon-cafeteria (NORTHEAST)"; icon_state = "cafeteria"; dir = 5},/area/crew_quarters/hor) +"cmj" = (/obj/structure/lattice,/obj/machinery/atmospherics/pipe/simple/cyan/visible,/turf/space,/area/space) "cmk" = (/obj/structure/grille,/obj/structure/window/reinforced/tinted{dir = 5; health = 120; icon_state = "twindow"; reinf = 0},/turf/simulated/floor/plating,/area/toxins/mineral_storeroom) "cml" = (/turf/simulated/floor{dir = 8; icon_state = "warning"},/area/toxins/storage) "cmm" = (/obj/structure/rack{dir = 8; layer = 2.9},/obj/item/weapon/contraband/poster,/obj/item/weapon/retractor,/turf/simulated/floor/plating,/area/maintenance/aft{name = "Aft Maintenance"}) @@ -6120,8 +6127,9 @@ "cnQ" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/effect/spawner/lootdrop{loot = list("/obj/structure/grille","/obj/structure/grille","/obj/structure/grille","/obj/structure/grille","/obj/structure/grille","/obj/item/weapon/cigbutt","/obj/item/trash/cheesie","/obj/item/trash/candy","/obj/item/trash/chips","/obj/item/trash/deadmouse","/obj/item/trash/pistachios","/obj/item/trash/plate","/obj/item/trash/popcorn","/obj/item/trash/raisins","/obj/item/trash/sosjerky","/obj/item/trash/syndi_cakes"); name = "maint grille or trash spawner"},/turf/simulated/floor/plating,/area/maintenance/fpmaint2{name = "Port Maintenance"}) "cnR" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/wall,/area/medical/genetics) "cnS" = (/obj/effect/decal/cleanable/cobweb2,/obj/structure/reagent_dispensers/fueltank,/turf/simulated/floor/plating,/area/maintenance/fpmaint2{name = "Port Maintenance"}) +"cnT" = (/obj/machinery/atmospherics/pipe/manifold/general/visible,/obj/machinery/meter,/turf/simulated/floor{icon_state = "white"},/area/toxins/mixing{name = "\improper Toxins Lab"}) "cnU" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 10},/turf/simulated/floor{icon_state = "bar"},/area/crew_quarters/bar{name = "\improper Maltese Falcon"}) -"cnV" = (/obj/machinery/atmospherics/pipe/simple/cyan/visible{},/obj/machinery/atmospherics/pipe/simple/yellow/visible{dir = 4},/turf/simulated/floor{dir = 5; icon_state = "green"},/area/maintenance/storage) +"cnV" = (/obj/machinery/atmospherics/pipe/manifold/general/visible,/turf/simulated/floor{icon_state = "white"},/area/toxins/mixing{name = "\improper Toxins Lab"}) "cnW" = (/obj/structure/table,/obj/machinery/cell_charger,/obj/item/weapon/stock_parts/cell/high{charge = 100; maxcharge = 15000},/obj/item/weapon/stock_parts/cell/high{charge = 100; maxcharge = 15000},/turf/simulated/floor,/area/ai_monitored/storage/eva{name = "E.V.A. Storage"}) "cnX" = (/obj/structure/rack,/obj/item/weapon/weldingtool,/obj/item/weapon/screwdriver{pixel_y = 16},/turf/simulated/floor/plating,/area/maintenance/aft{name = "Aft Maintenance"}) "cnY" = (/obj/structure/cable/yellow{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/atmospherics/unary/vent_pump{dir = 8; on = 1},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/navbeacon{codes_txt = "patrol;next_patrol=8-Central-Aft"; location = "7.5-Starboard-Aft-Corner"},/turf/simulated/floor,/area/hallway/primary/central) @@ -6432,7 +6440,7 @@ "ctR" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/obj/structure/cable/yellow{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor{dir = 4; icon_state = "warning"},/area/assembly/robotics) "ctS" = (/obj/structure/cable,/turf/simulated/floor/plating/airless,/area/solar/port) "ctT" = (/obj/machinery/door/window{dir = 4; name = "Mass Driver"; req_access_txt = "22"},/turf/simulated/floor{icon_state = "dark"},/area/chapel/main) -"ctU" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{},/turf/simulated/floor{icon_state = "white"},/area/toxins/xenobiology) +"ctU" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden,/turf/simulated/floor{icon_state = "white"},/area/toxins/xenobiology) "ctV" = (/obj/structure/closet/crate,/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 1},/area/maintenance/aft{name = "Aft Maintenance"}) "ctW" = (/obj/structure/toilet{pixel_y = 8},/obj/machinery/light/small{dir = 4},/obj/machinery/door_control{id = "AuxToilet3"; name = "Lock Control"; normaldoorcontrol = 1; pixel_x = 25; pixel_y = 0; req_access_txt = "0"; specialfunctions = 4},/obj/machinery/newscaster{pixel_x = 0; pixel_y = -32},/turf/simulated/floor/plating,/area/crew_quarters/toilet{name = "\improper Auxiliary Restrooms"}) "ctX" = (/obj/machinery/shower{dir = 8},/obj/machinery/atmospherics/unary/vent_scrubber{dir = 1; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/simulated/floor/plating,/area/crew_quarters/toilet{name = "\improper Auxiliary Restrooms"}) @@ -6572,7 +6580,6 @@ "cwB" = (/obj/machinery/firealarm{dir = 2; pixel_y = 24},/obj/machinery/light/small{dir = 1},/turf/simulated/floor{icon_state = "dark"},/area/medical/morgue) "cwC" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/supply/hidden{req_access_txt = 1},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/door/airlock/maintenance{req_access_txt = "0"; req_one_access_txt = "12;5;39;6"},/turf/simulated/floor/plating,/area/maintenance/aft{name = "Aft Maintenance"}) "cwD" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor{dir = 1; icon_state = "warning"},/area/hallway/secondary/exit{name = "\improper Departure Lounge"}) -"cwE" = (/obj/structure/lattice,/obj/machinery/atmospherics/pipe/simple/cyan/visible{},/turf/space,/area/space) "cwF" = (/obj/structure/rack,/obj/item/weapon/storage/toolbox/mechanical{pixel_x = 2; pixel_y = 3},/obj/item/weapon/storage/toolbox/mechanical{pixel_x = -2; pixel_y = -1},/obj/item/stack/cable_coil{pixel_x = -1; pixel_y = -3},/obj/item/stack/cable_coil,/turf/simulated/floor,/area/assembly/chargebay) "cwG" = (/obj/machinery/computer/scan_consolenew,/turf/simulated/floor{icon_state = "whitebluefull"},/area/medical/genetics) "cwH" = (/turf/simulated/floor/plating{tag = "icon-platingdmg1"; icon_state = "platingdmg1"},/area/construction) @@ -6612,7 +6619,6 @@ "cxp" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating,/area/toxins/xenobiology) "cxq" = (/obj/structure/stool/bed/chair,/obj/item/weapon/cigbutt,/turf/simulated/floor/plating,/area/maintenance/aft{name = "Aft Maintenance"}) "cxr" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor{icon_state = "bot"},/area/assembly/robotics) -"cxs" = (/obj/structure/lattice,/obj/machinery/atmospherics/pipe/simple/green/visible{},/turf/space,/area/space) "cxt" = (/obj/machinery/door/airlock/external{req_access_txt = "13"},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plating,/area/maintenance/aft{name = "Aft Maintenance"}) "cxu" = (/obj/machinery/suit_storage_unit/atmos,/turf/simulated/floor{icon_state = "dark"},/area/maintenance/storage) "cxv" = (/obj/machinery/door/window/southleft{base_state = "right"; dir = 2; icon_state = "right"; name = "Cloning Shower"},/obj/structure/sink/kitchen{desc = "A sink used for washing one's hands and face. It looks rusty and home-made"; name = "sink"; pixel_y = 28},/turf/simulated/floor{tag = "icon-vault"; icon_state = "vault"},/area/medical/genetics_cloning) @@ -6625,7 +6631,6 @@ "cxC" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor/plating,/area/maintenance/aft{name = "Aft Maintenance"}) "cxD" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 1; on = 1},/turf/simulated/floor{icon_state = "delivery"},/area/hallway/secondary/exit{name = "\improper Departure Lounge"}) "cxE" = (/turf/simulated/floor{icon_state = "bluefull"},/area/medical/genetics) -"cxF" = (/obj/structure/lattice,/obj/machinery/atmospherics/pipe/simple/yellow/visible{},/turf/space,/area/space) "cxG" = (/turf/simulated/floor{icon_state = "delivery"},/area/hallway/secondary/exit{name = "\improper Departure Lounge"}) "cxH" = (/obj/machinery/hologram/holopad,/turf/simulated/floor{icon_state = "delivery"},/area/hallway/secondary/exit{name = "\improper Departure Lounge"}) "cxI" = (/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/obj/structure/stool/bed/chair/office/dark,/obj/effect/landmark/start{name = "Roboticist"},/turf/simulated/floor,/area/assembly/chargebay) @@ -7000,7 +7005,6 @@ "cEN" = (/obj/structure/table,/obj/item/stack/packageWrap,/obj/item/stack/packageWrap,/obj/item/stack/packageWrap,/obj/item/stack/packageWrap,/obj/item/stack/packageWrap,/obj/item/weapon/hand_labeler,/turf/simulated/floor{icon_state = "greenfull"},/area/hydroponics) "cEO" = (/obj/machinery/firealarm{dir = 2; pixel_y = 24},/obj/machinery/atmospherics/unary/cold_sink/freezer,/turf/simulated/floor{dir = 2; icon_state = "warning"},/area/toxins/mixing{name = "\improper Toxins Lab"}) "cEP" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/obj/machinery/atmospherics/pipe/simple/general/visible{dir = 5},/turf/simulated/floor{icon_state = "white"},/area/toxins/mixing{name = "\improper Toxins Lab"}) -"cEQ" = (/obj/machinery/atmospherics/pipe/manifold/general/visible{},/turf/simulated/floor{icon_state = "white"},/area/toxins/mixing{name = "\improper Toxins Lab"}) "cER" = (/obj/structure/disposalpipe/trunk{dir = 1},/obj/structure/disposaloutlet,/turf/simulated/floor/plating/airless,/area/space) "cES" = (/obj/structure/disposalpipe/segment,/turf/simulated/floor/plating/airless,/area/space) "cET" = (/obj/effect/step_trigger/teleporter/random{affect_ghosts = 1; name = "escapeshuttle_leave"; teleport_x = 25; teleport_x_offset = 245; teleport_y = 25; teleport_y_offset = 245; teleport_z = 6; teleport_z_offset = 6},/turf/space/transit/north/shuttlespace_ns9,/area/space) @@ -10049,10 +10053,6 @@ "dLu" = (/obj/structure/table/woodentable,/obj/machinery/newscaster{pixel_x = 0; pixel_y = 32},/obj/item/weapon/clipboard,/obj/item/weapon/paper,/turf/simulated/floor/wood,/area/security/vacantoffice) "dLv" = (/obj/structure/table/woodentable,/obj/item/device/camera_film{pixel_y = 9},/obj/item/device/camera_film{pixel_x = -3; pixel_y = 5},/turf/simulated/floor/wood,/area/security/vacantoffice) "dLw" = (/obj/structure/table/woodentable,/obj/item/device/flashlight/lamp,/turf/simulated/floor/wood,/area/security/vacantoffice) -"dLx" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/machinery/door/poddoor{density = 0; icon_state = "open"; id = "council blast"; name = "Council Blast Doors"; opacity = 0},/obj/structure/cable/yellow{d2 = 8; icon_state = "0-8"},/turf/simulated/floor/plating,/area/bridge) -"dLy" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/grille,/obj/machinery/door/poddoor{density = 0; icon_state = "open"; id = "council blast"; name = "Council Blast Doors"; opacity = 0},/obj/structure/cable/yellow{d2 = 8; icon_state = "0-8"},/obj/structure/cable/yellow{d2 = 4; icon_state = "0-4"},/turf/simulated/floor/plating,/area/bridge) -"dLz" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/grille,/obj/machinery/door/poddoor{density = 0; icon_state = "open"; id = "council blast"; name = "Council Blast Doors"; opacity = 0},/obj/structure/cable/yellow{d2 = 2; icon_state = "0-2"},/obj/structure/cable/yellow{d2 = 4; icon_state = "0-4"},/obj/structure/cable/yellow{d2 = 8; icon_state = "0-8"},/turf/simulated/floor/plating,/area/bridge) -"dLA" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/poddoor{density = 0; icon_state = "open"; id = "council blast"; name = "Council Blast Doors"; opacity = 0},/obj/structure/cable/yellow{d2 = 4; icon_state = "0-4"},/turf/simulated/floor/plating,/area/bridge) "dLB" = (/obj/machinery/atmospherics/portables_connector/visible{dir = 4},/obj/machinery/portable_atmospherics/pump,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor{icon_state = "arrival"; dir = 8},/area/hallway/primary/starboard) "dLC" = (/obj/structure/window/reinforced{dir = 4; pixel_x = 0},/obj/structure/window/reinforced,/obj/machinery/door/window{dir = 1; name = "MiniSat Walkway Access"; req_access_txt = "0"},/turf/simulated/floor{icon_state = "dark"},/area/construction/hallway{name = "\improper MiniSat Exterior"}) "dLD" = (/obj/machinery/light_switch{pixel_x = -8; pixel_y = 30},/obj/machinery/light/small{dir = 1},/obj/structure/table/woodentable,/obj/item/clothing/shoes/laceup,/obj/item/clothing/under/suit_jacket/really_black,/obj/item/clothing/glasses/sunglasses,/obj/machinery/camera{c_tag = "Corporate Showroom"; dir = 2; network = list("SS13")},/turf/simulated/floor/wood,/area/assembly/showroom{name = "\improper Corporate Showroom"}) @@ -10193,7 +10193,6 @@ "dOj" = (/turf/simulated/floor{icon_state = "bot"; dir = 1},/area/toxins/mixing{name = "\improper Toxins Lab"}) "dOk" = (/obj/machinery/camera{c_tag = "Labor Camp External"; dir = 4; network = list("Labor")},/turf/simulated/floor{tag = "icon-asteroidwarning (NORTH)"; icon_state = "asteroidwarning"; dir = 1; temperature = 273.15},/area/mine/explored) "dOl" = (/obj/structure/table/woodentable,/obj/item/weapon/reagent_containers/food/drinks/beer{pixel_x = 5; pixel_y = -2; step_x = 0},/obj/item/toy/cards/deck/syndicate{icon_state = "deck_syndicate_full"; pixel_x = -6; pixel_y = 6},/turf/unsimulated/floor{icon_state = "bar"; dir = 2},/area/syndicate_mothership) -"dOm" = (/obj/machinery/atmospherics/pipe/manifold/general/visible{},/obj/machinery/meter,/turf/simulated/floor{icon_state = "white"},/area/toxins/mixing{name = "\improper Toxins Lab"}) "dOn" = (/obj/machinery/atmospherics/pipe/simple/general/visible{dir = 9},/turf/simulated/floor{icon_state = "white"},/area/toxins/mixing{name = "\improper Toxins Lab"}) "dOo" = (/obj/structure/closet/crate,/turf/simulated/floor{icon_state = "bot"; dir = 1},/area/mine/production) "dOp" = (/obj/machinery/alarm{dir = 4; icon_state = "alarm0"; pixel_x = -22},/obj/machinery/light{icon_state = "tube1"; dir = 8},/obj/machinery/r_n_d/circuit_imprinter,/turf/simulated/floor{icon_state = "bot"},/area/assembly/robotics) @@ -10594,21 +10593,21 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaeaaaaaeaaaaaaaaaabYaaaaaaaaaaaaaaaaaaaaeaaaabbabJaboabDaayabEabqabFaENbyCaboabHaayabIaaibAfaczaxHaxGamNaqtaaaaaeaaaaaaaaaaaeaaaaaaaaaaaeaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeauvaEgbAgaeiaejaekaaaaacaahaacaaeaaeaaaaaaaaaaaaaaaaaaaaaaaaaahaaeaclaclaclaclaclaaeafMaaeaclaclaclaclaclaaeaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagaagaagaagaagaaaaagaagaagaagaagaaaaagaagaagaagaagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaeaaaaaaaaaaaaaaeaaaaaeaaeabYaaeaaeaaaaaaaaaaaaaaaaaaaaiaGeabobAnaayacdaceaDRaDSacgaboachaayacgaaiauYaczaxIalBaxLaqtaaaaaeaaeabvabvabvabvabvaaaaaeaaaaaaabwabwaWyaWMaYuabwabwaaaaaeaaaaaaaaeaaaaaaaaaaaeaaaaaaaaaaaeaaaaaaaaaaaaaaeaaaaaaaaaaaaaeaaElaaMaaraaraaLaaaaaeaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaeaaaaaaaaaafMaaaaaaaaaaaeaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagaagaagaagaagaaaaagaagaagaagaagaaaaagaagaagaagaagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaakaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaeaaeaaaaaeaaaaaaajEajFajEaaeaaaaaaaaaaaaaaeaaeaaiaboaboabsactaboabqaboaEtabqaboabsacvabqaaiawDaczawCawBawyaczaaeaaeabvabvcgAaDvaIQabvabvaaeaaeabwabwbxKaDAaDCaSMaDOabwabwaaeahwahwaLRahwahwaaeaaeaaeaaeaeaauvaeaaAhaAiaAjaeaaAhaAiaAjaeaaeaaBxaeaaBKaBDaAiaCBaAiaAiaAPaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaahaaaafgafgafgafgafgaaeaGSaaeafgafgafgafgafgaaeaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagaagaagaagaagaaaaaaaaaaaaaaaaaaaaaaagaagaagaagaagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaeaaaaaaaaeaaeaaaakhaQJakhaaeaaeaaeaaeaaeaaeaaaaBuaFNaBwaByaBAaAQaARaATaAWaBfaBqaxAaBtaxpaxoaBtaxyawXawEaAGaxdaaeabvabvaKMaEqaEpaEpaJtabvabvaaeabwaFqaEaaEbaEeaUCaVubymabwaaeahwaSNaSPaWxahwaaaaaaaaaaaeaeaaujaeaaDpaCUaDoaeaaDXaDGaDWaeaaxFaCEaCCaCFamiamiamiamiamiayEaaeaaeaaeaaeaaeaaaaaaaaaaaaaaaaahaaeafJafKafKafKafKaaOafMaaTafOafOafOafOafPaaeaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaeaaaaaaaaeaaeaaaakhaQJakhaaeaaeaaeaaeaaeaaeaaaaBuaFNaBwaByaBAaAQaARaATadvaBfaBqahAaBtaxpaxoaBtaxyawXawEaAGaxdaaeabvabvaKMaEqaEpaEpaJtabvabvaaeabwaFqaEaaEbaEeaUCaVubymabwaaeahwaSNaSPaWxahwaaaaaaaaaaaeaeaaujaeaaDpaCUaDoaeaaDXaDGaDWaeaaxFaCEaCCaCFamiamiamiamiamiayEaaeaaeaaeaaeaaeaaaaaaaaaaaaaaaaahaaeafJafKafKafKafKaaOafMaaTafOafOafOafOafPaaeaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaeaaeaaeaaeaaeaaeaaeaaeakEakFakGakHakIaaaaaeaaaaaaaaeaaaaCNaaCaCTaCOaCPaCIaCJaCGaCHaCLaCMaNbaFYaFcaDgaCHaDhavsaGcaCTaDkaaeabvazEaBBaBzaHMaAXaBEaHKabvaaeaIsaBHaLCaCvaCwaCbaEVaEyaERaaeaEIaAqaFbaCAaLRaaaaBVaBVaBVaeaaxTaymayoaxWaxWaxUaxWaxZaydayFagGagGagGayEamiamiamiamiamiayGaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaahaaeaclaclaclaclaclaaeafMaaeaclaclaclaclaclaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaeaaaaaaaaaaaaaaeaaeakTakUaFRbxjakTaaaaaeaaaaaaaaeaaeaaiaaiazXazZaAaaaiazKazMazKaeMaeMaeMaeMaeMaABaAAaAzaboavwawsaaiaaeabvaCtaBBaCxaBGaCQaBEaCjabvaaeaSJaDbaQgaDcaSKaDMaQgaCXaRvaaeahwaAqaAraCAahwadradradYagRaeaaeaaeaaxJaieavhavhazqaAFaznavvavvayWayVayJamiamiamiamiamiayXaeaaeaaeaaaaaaeaaaaaaaaaaaaaaaaacaaaaaaaaaaaeaaaaaaaaaafMaaaaaaaaeaaaaaaaaeaaaaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaeaaeaoFaoFaKCalGalGalGalHakTaqaavbareakTaWoagVaWoaWoaaeaaeaaeaaiaaiaAHaaiaaiaaiaAHaaiafQayYaAEazQaeMaCdaCKaCzaexaexaexabvabvabvazbayZazlaEmazjayRaBFabvaaeabwavqaCeaBYaCcaAIaBXavpabwaaeahwaAqaAraCAahwaAcadraAdalJaewaKGaeaavfaieavhavjavkavkavkavxavvavSavNavTamiamiamiamiamiawbauiawdawcaaaaaeaaeaaeaaeaaeaaeaahaaeaaeaaeaaeaaeaaaaaaafMaaaaaaaaaaaaaaaaaeaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaNOaMzaMuaoHamnaMmaMlakTbpHawJamqakTaLOalDaEHaWoaWoalvalvalvalvalvalvalvalvalvalvakBakAavrakAarGbjfaqvbjoaexaikaFMbifabvabvabvaAtaAsabvabvabvabvabvawhabwabwawGawIaEnawzawFabwabwawhahnaDeaDjaEoahwadradradsadsaALaAMaeaaHJaieaxEaiXaiUaiUaxPajJawKahSaliaxBamiamiamiamiamiaxBaxCamwakVaaaaaeaaaaaeaaaamlamlamlamlamlamlamlaaeaaeaaeafMaaeaaeaaeaaeaaeaahaaeaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaeaoFajCaoFaveaoyavXaxbakTakTalManbakTanHazoawYagXaWoaaeaaaaaaaaaaaaaaaaaeaaeaaeaaeafQaeMaeMaeMaeMaooacZanWaexakSailakmabvakuakoakpakxawtatyatwaoTabvanMamBaaQaqTaqwanYattatsaaQahWaqqahnatvatuakvahwamzadsadsadsadsadraeaalraltalsalkaljaljallajJamwajcaliakWamiamiamiamiamiakWaleakOakVaaeaaeaaaaaeaaaamlbNIbVZbVQbVGbNIamlaaeaaaagUaiOagUaaaaaaaaeaaaaaaaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaqjamZaqjaqXargaqlaqmanzarJalubGxaWoarTamuasFatQagVaaeaaeaaeaaeaaeaaeaaeadradradrafQanianEanjaqyahGahDagPaexaAuailaAvabvaqcaipaiqairaiJakbacBalhakdakwakkajOajNajVajPajXajWajZajYakzakaakjakcarfahwaicamPajwaroaqEadrajfahYaieaiYaiXaiVaiUaiTajJajKahSajHajBamiamiamiamiamiajyajzajkajxaaaaaeaaeaaeaaeamlbVdbTbbNIbTbbPEamlaaeaaaamXamYamXaaaaaaaaeaaaaakaaaaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaoFapeaoFanQaisaiDaoOaoFbHMapybKoapKabKapvapRanJaWoaaeaKBaKBagVaKBaKBaaeadramoamoafQagtagAafWamOageagOassapWahBahAahBaiNahKahKaiEaiCaiLaiKaiHaiHapMahJahIahHaguahzahyaiAaizaiyaixaiwagBaijaiiahxahwagQadsadsanIalJadraiaahYaieagGaigaifaiPaihahPahQahSagNahUamiamiamiamiamiafFaeaahOaeaaaaaaaaaeaaaaaaamlbOBbOqbObbNRbNJamlaaeagUanDaqRanDagUaaaaaeaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaoFapeaoFanQaisaiDaoOaoFbHMapybKoapKabKapvapRanJaWoaaeaKBaKBagVaKBaKBaaeadramoamoafQagtagAafWamOageagOassapWahBaoZahBaiNahKahKaiEaiCaiLaiKaiHaiHapMahJahIahHaguahzahyaiAaizaiyaixaiwagBaijaiiahxahwagQadsadsanIalJadraiaahYaieagGaigaifaiPaihahPahQahSagNahUamiamiamiamiamiafFaeaahOaeaaaaaaaaaeaaaaaaamlbOBbOqbObbNRbNJamlaaeagUanDaqRanDagUaaaaaeaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaeaoFamWaqkaqkaqkagnamVaoFaoYaiBajraWoanKafAakyanFaWoaKBaKBaUDajLbGxaKBadradrakfajMafQagdafXafTagZaeragfaggaexagaagbagcabvagjagkaglakRabQaenalwanGaexakiafzahiaguahkaffaimahtahvafjahoahnahnanhadradradradradrafHadradraeaagIagHagGagGagLagKagJahrahragMagNahNamiamiamiamiamiafFbWIcsgavAavAavAcgaavAavAamlbMpbLWbNIbNnbLJamlaaeaoBaoCamYaoDaoEaaeaaeaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaeaaeaaaaaaaaaaaaaaaaaeaaaaaeaaaaaeaaaaoFaesaiFaiIajqalKammaoFajpaiBbrTaKBardbrTbrTbrTdKcaKBbrSagSajoafyaKBaeLacGajmacLafcaeKafxafvacxacyacwacPabvahgafwaheabvabvacCagyacCabvahhahCagWaduaflafzagxagwaguagsagiaftagDafjagpagoagmafeaeYajlaeYafGaeXaioajjaeXahFagEagFafLafLafIadiagzafCafCafCafDafBamiamiamiamiamiafFaUoaQsavAaePakKaQsaiZackamlbLCbIwbGZbDPbLIamlaaeaptapuaoIandaptaaaaaeaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaKBaKBafUaKBaaeaaaaaeaaeaaeaaeaaeaKBafUaoFaoFahdahfaoFaoFaoFaoFbrTahbbKoaeJabKagqaiWbrTajAaKBbHMaKSaqhaKBaKBacuacsaidahEafQafQafQaeMaeMadWabhacPacIaghaeEaeFafYafbaemaenaeoabvaenacBafkaexafSafzafoafnafqafpaeHaeGabzafjahVacTacTaaQaaQaaQaaQaocadradradradraeaadZadXadFadnadkadjadgaeRaeVaeeaiSaecaebaebaebaebaebaeWaThafZavAaQsaQsaQsaQsafEamlbmEaYlbBKboYbCHamlaaeaptanoadfafmaptaaaaaeaaeaaeaaeaaeaaeaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaKBajtafNaKBanLamsamsamsamsamsajsaKBbrSaeZaKBaeTaDnaefbMeaspaKBbwqaedbMbaKBardaKSafuafdaeOaKBaeuaiWaehaKBaeDacsadYahLabladrabiafQabjabnaerabhassadTadUaeAaeNadQaeIadOaeBaevaaDaenaaXafsaexaezadRadPadNadMadLadJadKadJadIadHafaadEadEaepadBaaQaocadrabXabWaklabcabcabcabcabcaciacmacfabcabcabcabcabcabVavAabUacbadlavAavAaQsavAaetabfacnaQsasLarWaDwaBJabZathaYkamlcgaaptaccadearbaptaaaaaeaaaaaaaaaaaeaaaaaeaaaaakaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaeaaeaaaaaaaaaaaaaaeaaeafUanparVarlayTaXOaXOaXOaXOaXOamHaeUaeqaeCacradVabmaXOacqaXOabPacaaaIadradradradradradradradradradracAadraaNadradradradradradrafQabGaaYaerabhacPacIacJacQaeSacSadoacFaeyacHabQacDacEaegaduadzadvadcadaadtadmacWacVacYacXacUacTabNadpabNabRaaQaaHaaSaaKaibadsabcaaZaasaaVabyabxabrabdabcabBaatabAabcavAavAaQsaThabfaUoavAaQsavAadlaQsabOaQsagCafrancamlamlapTarRamlabkaptaptaazaaAaptarNcgaarNarNacMarNaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaeajGajGaaeaaeajGaaeaaaaaeaaeaaeaKBaKBaBPaKBaKBasWasXasXasXasXasXasYaKBaKBaKBaKBaGraGCaGCaGCaGCaGCaGVbQSadraInatDatEatFawpatGatIasaaFiaoZascapcadrdBfapiaYyappdBnaqdapZaowaeraoraosabvabQatpabvabvaEratraDmazpabvaEJaAoaexaexaaQazuaszaslazuaaQazCazBaaQazyacTacTaAbaAbaAbaaQaaQbbXadradsauqaYjabcarmauoaumaulaukaDYarHausautauuarFabcbcAavAaufaddacoadGavAbaCavAavAavAbvSavAagCcfIcfEcframlamlamlamlbaCaUoaQsaubatRarNarOabSaucarNcsgarNaaeaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaeajGajGajGajGajGarqajGaaeaaeaKBaKBaKBatHaBIaKBaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaKBaUDbtwbrTbHMaPXbHMaEsaDuaDFaEvagraRladradradrataatbatbatbatcadradrahTaNTaMaaPrahTaoqalCaeManPanRassaskaskasiasgaskasjaskasgaskaAyaskasjasbarZashasgaqxapoaskaskaskasgaskasmafQasoainainainainaeMaocadraYjadsadsabcabcabcabcabcarMatzaDialZarcabcabcabcatkavAaUoaSFabOaQsavAaQsavAbbNavAatjcblcbucbncbacaZcbkcbgbYbaTdaXNaXvbYbbuqaQsaQsaSFaQsatgacMasRacMaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaeaaeaaaaaaaaaaaaaaeaaeafUanparVarlayTaXOaXOaXOaXOaXOamHaeUaeqaeCacradVabmaXOacqaXOabPacaaaIadradradradradradradradradradracAadraaNadradradradradradrafQabGaaYaerabhacPacIacJacQaeSacSadoacFaeyacHabQacDacEaegaduadzaqxadcadaadtadmacWacVacYacXacUacTabNadpabNabRaaQaaHaaSaaKaibadsabcaaZaasaaVabyabxabrabdabcabBaatabAabcavAavAaQsaThabfaUoavAaQsavAadlaQsabOaQsagCafrancamlamlapTarRamlabkaptaptaazaaAaptarNcgaarNarNacMarNaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaeajGajGaaeaaeajGaaeaaaaaeaaeaaeaKBaKBaBPaKBaKBasWasXasXasXasXasXasYaKBaKBaKBaKBaGraGCaGCaGCaGCaGCaGVbQSadraInatDatEatFawpatGatIasaaFiaxAascapcadrdBfapiaYyappdBnaqdapZaowaeraoraosabvabQatpabvabvaEratraDmazpabvaEJaAoaexaexaaQazuaszaslazuaaQazCazBaaQazyacTacTaAbaAbaAbaaQaaQbbXadradsauqaYjabcarmauoaumaulaukaDYarHausautauuarFabcbcAavAaufaddacoadGavAbaCavAavAavAbvSavAagCcfIcfEcframlamlamlamlbaCaUoaQsaubatRarNarOabSaucarNcsgarNaaeaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaeajGajGajGajGajGarqajGaaeaaeaKBaKBaKBatHaBIaKBaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaKBaUDbtwbrTbHMaPXbHMaEsaDuaDFaEvagraRladradradrataatbatbatbatcadradrahTaNTaMaaPrahTaoqalCaeManPanRassaskaskasiasgaskasjaskasgaskaAyaskasjasbarZashasgaAWapoaskaskaskasgaskasmafQasoainainainainaeMaocadraYjadsadsabcabcabcabcabcarMatzaDialZarcabcabcabcatkavAaUoaSFabOaQsavAaQsavAbbNavAatjcblcbucbncbacaZcbkcbgbYbaTdaXNaXvbYbbuqaQsaQsaSFaQsatgacMasRacMaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaakaaaaaaaaaaaaaaaaaaaaeaaeajGaaeapBaaeajGajGajGajGajGajGaCDaAxaCDafRaDUaKBaKBaaeaaaaaaaaaaaaaaaaaaaaaaaaaaeaKBaKBaKBaiWbHMavabHMaGPaAfaGJazTaFuasNadralIaaeaaaaaaaaaaaaaaaaaeaaaaiRcRXaHualLaFFamgainaJbamQamJaqoaqsaqsaqnaqoaqsazcaqDaqoaqBaqCaqsawvaqQaqPaqsasVaqMaqFalQalQaraaqYaqVaqUaAnaqSajgajhajiaBraeMaocadrasSadYasTabcarUanuaseabyabxabrasOabcasUaasasZabcatdavAavAavAbvSavAavAaQsavAafZavAaJYarNamlafrbZOamlamlarNarNarNarNarNarNarNarNbWIarNarNarNarNarNarYarNaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeajGajGajGajGajGajGaaeajGajGajGaaeaKBaKBaKBarnasNbrTaKBaaaauIauJauKauJauLalvaaeaaeaaeaKBaovaKBaouaXOaXOaXOaDlafVaKBaDfarSaoxadraaaavUavUavUavUavUavUavUaaaahTaBMaBLazmahTalEalCaeMaoLapqaiGayMapfapnaiGapzapfapqapAapraiMapwapxaxnaoMaoQaoPaoJapaanSamSapaaozaoKapbaoVaoUaoXaoWapNapLaeMaocbaabaabaabaabaaarFarDaryarLarKarIarHarparrarjarmabccsgarsaBRbvHaribvHaBNbvHaAgbvHbvHarQbZrapSbZyapUbZzasPaDQasPatLatMatNatMatOarNarNarNatLatMatOatPatPasPaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaeajGajGajGajGajGajGaotajGaaeaaeaaeaaeaKBbHMasNardafUaaaavLaUaapIavOavLaDLaCraCsaruaruaruaruanOaruaruaFfaFfaFfaFfanNaFfakYadraaeavUavVavWaBTavYaxDavUaaaahTarEarEakXahTaaaaaaacKawiavJavKaeMaxNawPaxMaeMakPatiatAaeMauQakPauraeMalfanAaylanCanBaldaldalXanxanwaldaldaneaeMaeMaeMaeMaeMaocbaaapVapXayabaaabcabcabcabcapYaqOaqbalZarcabcabcabcavAaqWaUobWIaQsaUoarhaQsarNarNarNarNarNanVbWsanUanTauyaACauyauAauBatTauBauEatMauFatMauGauBatTauBatPauHdfPaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa @@ -10632,43 +10631,43 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaTpbKzbrsbIdaZfbsfbrsbtfbHybHrbHybHBbIebHybIjbInbIJbwrbISaQNaaaaaaaFaaFaaFaaFaaFaaaaaaaaaeaZpbvgaJnaKvaKvaKwbKvaIeaTAbumbujbwKbtqbtjbxSbyyaKBasNaYhaYhaYhbjqbvMbvNbjlbsHbsabjlbSXbTHbNpaNnbvAaNpbvraNnbNZbIVbvdbIUbvebqFbuZbuYbuMbLGbOTaoaaoaazAbvGazvaoaaoabvDbvEbvFbvDaCZbwybJmbowboCboFavAavAavAavAbbOavAavAavAavAavAavAacjaUoaQsaJzaJzaJzaJzaJzaJzaJzaNLbvZbvUbvTaNLbBpbATaNLbwabvObwtbwtbvQbvRbqNauybLcauyaScauBbirauBatLatMaSfatMatOauBbirauBatPauHdfPaaaaaaaahaahaacaaeaacaahaahaacaacaahaahaahaacaaeaaeaaeaaeaaeaFvaMibIiaLIaLIaLIaLIaLIavcavcavcbwpavcavcavcaLIbwsaLIaLIaLIbHdaFLaFvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaeaaaaXFbwBaUMaUMbMnaUMaUMaUMaUOaYbbMFbMEbKcbKcbKcbKnbLHaUQbyFaQNaaaaaaaaeaaeaaaaaaaaeaaaaaeaaeaZpbxlaJnaKvbVqbxaaGDbxgaGDbuAbqmbEzbGdbwnbDabBzaKBcLAbxbbOSbITbxebuzbwXbvhbwbbsKbtOaVkcdbaVkbBNbBMaVsbziaVtaVkbJRaVvbwMaVxbLZbuEaVAaVBaVCaVDaVDaVDbvbbpcaVDaVDaVHaVDbpbboQaVDboJaVDbwvboGavAbpTcLUbpVbBsbpUbqybpUbqObpUbqRaXvbASbuqaThaQsaJzbxBbxJbxLbpSbxObxPaNLbzHbxpbxpbOdbxpbzIaNLbxubuVbzkaHoaHoaHoaHoaHoaRfasPaTnatMaToatMauGasPasPasPaTnatMauGatPatPasPaaeaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaFvbCzaIlaGpaaaaFUatXatXayKbJjaweaxxbBLbJjbqpatXaGvaFUaaaaGqaIlaGpaFvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaeboibojaPBaWgaQNaTpaWhaTpbwBaUMaWLaWYaTpaWhaTpaQbaWlaWmaVyaKBaKBaKBaKBaWpaWqaWraKBaKBaKBaKBaZpaORaOUaOVaOSaOTaKvaOkaPzaOmaOlaPyaPyaPyaPyaPxaKBaKBaSuaKBaKBaWCaOQaOOaWKaMhaWWaWVaWKaMhaOFaOHaWWaOIaWKaWKaWKbbLaWNaOKazxaITaBjaWSaWTaWKaWKaWKaWKaWUaOAaWKaWKaWVawgaOBaWKaWKaWKaWKaLeaKLaVMaVMaVMapJaVMaVMaVMavAaKJavAacjavAavAaHUaHUaHUaHUaOyaOuaOuaOtaKdaUEaNLaOdaTwaROaQFaSbaStaNLaSjaNSaNRaHoaUIaVZaNMaHoaNQasPasPasPasPasPasPasPbUhasPasPasPasPasPasQasPaaeaFvaFvaacaFvaFvaFvaFvaacaFvaFvaFvaFvaacaFvaFvaFvaFvaFvaFvaFvaFvaMiaIlaGpaaaaFUatXaweaxqaCRaxtaxraxuaCRaxvaweaGvaFUaaaaGqaIlaGpaLKaLKaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaULaaeaaaaaeaaaaXFbeNaXFaVgaVgaUTaVbaXFbeNboiaXKaQNaXLaVEaOaayTaXObSSaXOaRXaXObSCaNJaXOamHaNraNsaQSaKzaQhaySaUPaNqaHfaNDaNEaHfaNNaKcaHfaOvaOxaOwaOLaOzaSWaUHaYpaNzaNCaNCaFSaFJaNHaNGaNeaNgaLNaUsaUsaUsaUsaUsaUsaUsaLsbSBaSYaSYaSYaSYaSYaSYaSYaSYaSXaOraNiaTjaSYaNjaSXaSYaSYaLdaYGaUFaVMaJgaJVaJOaIXaIVaVMaOjaMxavAbQWavAaaaaHUaINaIKaHUaMAaOgaMFaMyaMwaKaaNLaMTaMUaMVaMWaNXaQKaNLaQuaMoaLPaHoaSEaMkaMfaHobMQaHFaHFbKXaHFbJQaHFaHFaHFbPMaHFaMpaMqaMpaMqaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaFvaaaaMcaMbaIlaGpaaaaFUatXaNyawqatXawlawkawjatXbycaODaGvaFUaaaaGqaIlaLLaaaaLKaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaULaaeaaaaaeaaaaXFbeNaXFaVgaVgaUTaVbaXFbeNboiaXKaQNaXLaVEaOaayTaXObSSaXOaRXaXObSCaNJaXOamHaNraNsaBmaKzaQhaySaUPaNqaHfaNDaNEaHfaNNaKcaHfaOvaOxaOwaOLaOzaSWaUHaYpaNzaNCaNCaFSaFJaNHaNGaNeaNgaLNaUsaUsaUsaUsaUsaUsaUsaLsbSBaSYaSYaSYaSYaSYaSYaSYaSYaSXaOraNiaTjaSYaNjaSXaSYaSYaLdaYGaUFaVMaJgaJVaJOaIXaIVaVMaOjaMxavAbQWavAaaaaHUaINaIKaHUaMAaOgaMFaMyaMwaKaaNLaMTaMUaMVaMWaNXaQKaNLaQuaMoaLPaHoaSEaMkaMfaHobMQaHFaHFbKXaHFbJQaHFaHFaHFbPMaHFaMpaMqaMpaMqaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaFvaaaaMcaMbaIlaGpaaaaFUatXaNyawqatXawlawkawjatXbycaODaGvaFUaaaaGqaIlaLLaaaaLKaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaeaaeaaeaaeaaeaaaaULaWhaZhaSlaSlaSlaSlaZiaWhaULaaaaQNaZjaSeaZlaZlaZlaZlaZlaZlaZlaZlaZmaNaaHfaHfaHfbhAbhFbgeaHfaHfaNxaHfaTHaTFaTGaTDaTEaTvaTuaGRaGQaWnaTtaSWaRmaYpaRpaZNaZNaTRaZNaRoaZLaZLaRqaZLaYgaXtaXtaXtaXtaXtaXtaXtaXtaXtaXtaXtaXtaXtaXtaXtaXpaZTaZTaZUaZTaZTaZTaZTaZTaZTaEMaYpaRkaVMaXGaZCaUUaZDaOCaVMbbRbbMavAacjcgaaaaaQGaQHaQLaRaaNVaNIaNPaRdaRbaOpaNLaQxaQzaQwaQwaQBazfaNLaQAaRgaQAaHoaRhaRjaXHaHobXUasPasPasPasPasPasPasPasPasPbtpasPasPaRfasPaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaeaaeaFvaOXaQraQoaUVaFUaFUaFUatXaTsawfavmatXatXatXauZavdaSHaGvaFUaFUaFUaUYaXfaFLaFvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaAbaBbJcbaBbaDbaBbaBbaDbaBbJcbaEbaFaQNaZjaXabaHaOPbaJbaKaQkaQjaSGaZlbUnaPFaPVaPWaPQaPJaPQaPQaPSaPQaQCaHfaQVaQlaQqaQvaQyaREaReaSyaSnaRcaKTbbcaHiaQaaPZaZNaQcaIBaNFbaOaZLaTfaQdaTLaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaZTbdnbbCaURbflbdDbdpbdoaZTaWabbFbbGaVMaPdaMsaMraMtaPKaVMavAavAavAaudavAaaaaHUaPbaLiaHUaPeaMvaPhaPkaPjbbqaNLaSxaSCaSzaTbaPCazeaNLbwtaPNbwtaHoaPMaPPaPOaHoaJqaJqaJqaawadqaaaaaaaaaaaaaaeaaaaaaasPaMqasPaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaNKaNKaKpaNZaIlaMCaLJaaaaaaaFUaPaaEjaWZatXatXaSUatXatXbycaPAaOZaFUaaaaaaaOiaIlaGpaFvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaakaaaaaaaaaaaaaaaaaaaaaaaabaAbaEbaBbcjbckbckbclbcmbcnbcobcpaGObckbcqbcraTpaZjaSeaMPaRJaRFaRKbcxaRAbczbCLbaeaTlbCNaHtaHtaIaaIbaHIaHfaHfaHfaHfaHgaHraHsaHjaHqaGZaGXaGRaGQaHdaHbaHaaIHaYpbRAaZNaHHaIDaMeaIzaItaDPaIuaEFaaeaaeaHAaHBaHCaGMaZPaGWaHyaGMaZPaGWaGGaGGaFIaaeaaeaZTaICaLAbdqaIAbdqbdraSvaZTaIpaYpaHmaVMaVMaFAaFzaFyaVMaVMaHzaFBaVaaIkaVaaVaaHUaHUaHUaHUaJzaJzaJzaIhaFxaJzaNLaNLaNLaNLaNLaOJaPcaNLaHpaHvaHpaHoaHwaHlaHkaHoaHnaHxdBLdBvdBvdBKaaaaaaaaaaaeaaaaaaaaaaaeaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaeajGaJJaJEaIqaJEaJTaGpaaaaaaaaaaFUaImaweaJBaJWbBfbBgaJQaJWaxsaweaGvaFUaaaaaaaGqaIlaGpaFvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabcqbecbedbeebckbefaEdbefaEdbefaEdbefbckbegbehaXFaZjaQUaZlaFGbekaQRbemaQEaFHaZlaXQaEcaFWaFXaGdaGiaGsaGyaGzaFmaFpaMLaFEaFKaIfaFPaFQaGBaGAaGFaGEaGIaGHaGNaHiaYpaRnaZNaGKaFwaYDaJPaZLaDNaFdaTLaaeaaeaFhayIaAeaugaupambartawLaxlavtavuaAYaFraaeaaeaZTbfiaClbfkaGTaGLaDVaDzaZTaEMavgaGwazgbfAaExbfAbfwayfaEwbfAbfAbfAaEKbfAayuaEDaMHaJGbfAbfAaCSayubfwaEKaELaxXaCSaybaMSaTmaziaFoaKQaFnaFlaFkaETaEhaDZaDaaFgbcebcebAodBBdBzdBJaaaaaaaaaaaeaakaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaeaaeaaeajGaJJaJEaGbaJEaJKaGpaaaaaaaaaaFUaGfaGgayKaEiaNBaJMaNUaEkayLatXaGvaFUaFUaFUaFUckMaFLaFvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabfPbckbckbJcbckbefaEdbefbfQbefaEdbefbckbegbehaXFaQQaQpaZlbfSaQnaTzaKxaTzbaHbaHaNcaNvaNxaHfaNuaNfaNtaMXaMZaMKaMNaHfaOqaLWaMZaHjaLVaHfaLTaLqaKVaKUaMnbbcaIHaYpbRAaZNaLSaIoaSwaLMaZLaIPbbsaTLaZPaIIaZPaNAaMBaNhaBCaNmaNwaMBaBCaNhaNmaLEaZPaIIaZPaZTaYtaYtaYtaIxbgAaOsbgCaZTaPlaLZaLYaLbbgMaJHbgMbgObgMaLcbgMbgMbgMaKKbgMaLvaIjaLgaLfbgMbgMaIJaQmaIiaKKbgSaKKaKOayOaKPaTmawaaKWaKWaKZaLxaKWaKWaLzbbEaMjaLDbcebcedBsdBvdBvdByaaaaaaaaaaaeaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaJIaaaaaaaaaaaeaLJaLJaKpaJRaIlaGpaaaaaaaaaaFUaFUaImatXatXatXaTxatXatXatXatXaLHbwsaLGaaaaGqaIlaGpaFvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabcqbhkbedbeebckbefaEdbefaEdbefaEdbefbckbegbehaXFbhlbhmbhnaKeaKbaJZaJZaKgaKfaKebcCaKiaKkaHfaKyaJwaBmaJNaKmaIRaISaHfaILaHLaIwaIOaPnaHfaKHaKNaKIaKFaKDaSWaKEbbFaKlbleblebleblebleaZLaHDaHcaKobhUaECaEEaDTaBCaBCaBCaBCaDdaBCaBCaBCaBCaJyaJxaIgaZPbIBbGYbFwbEFbDeaKjaPfaNoaZTaFCaPwaKnazsbiwaGxbiwaGjbiwaMYbiwbiwaIUbiwbiwaOGaKXbiwaIraIUaFOaHhaOGaGjbiwbiyaPiaPmaIYaEuaJaaFjaJcaJdaJfaMjaJlaJlaJhaZbaFtaJqaTmaTmaTmaawaHTaaaaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaaaIZaIWaJAaJvaJDaJCajeaJFaIlaFUaFUaFUaFUaFUaJXaLFaJXaJXaLwaLyaLwaMQaMQaNWaMdaMgaJUaaaaGqaIlaGpaFvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabiTbiUbaBbcjbckbckbiVbckbiWbiXbckbiYbckbcqbiZaULaZjbjabmsbbpbbrbbzbbtbbnbblbbpbmPbjkbaXaHfbiobiIbjebixaHfaHfaHfaHfaHfbiIbnObjEaHfaHfbbcbbbbbabbhbbebbdbbiaYpaXoblebhBbjibjhblebbybeEbjQaQZaZPbdLbdQbeibeobfabfcbfVbgsbfcbfcbgtbeobgvbgubgwaZPaZTaYtaYtaYtbljaYtaYtaYtaZTbmTaYpbahbkdbcTbezbcTbkdaSaaSaaSaaSaaSaaSaavAavAbcSavAavAavAbhobgGavAavAavAbdmavAbddbdgaUSbdaaTCbcYbcVbhuaJlaXubcRbcQaZbaSmaJqaTmbhsbcFbeuaTSaTSbcUbeaaaaaaeaaaaaaaaeaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaeaaaaIZbcLbcDaaaaaebcubbHbfWbbBbhNbrKaJXbhibkYbfDbhdbhhbhqaJXbofbmbbgNbinbnLbhWbhWbiuaJUaaaaGqaIlaGpaFvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabiTbaBbJcbaBbaDbaBbaBbaDbaBbJcbiUbkDaQNbiabkFbkGaSWbbTaYOaTaaYObbPaSWaZcaXYaZdbaibkXbizaYLaYMbkmbizbjJbkAbizbkXbkXaYNbkXbagaXZaYIaYFbkObkXbjYbibblcbRAaZobcBbdcbcObleaTLaTLaTLaTLaZPaZuaZxaYJaZsbaSbaWbndaZMbbkbcvbbjaZsaWGaWDaWdaPYaZTblCblDblEbigaPRaYtbijaZTbkhaYpaOMbaIbaGbctbgibkdbawbazbfrbaubatbavaSRcixbDEavAaUqaUnbeDchJchOavAabkbaravAbambaobapbaqbakbakbakbfqbfoaJlaJlbggbfnaPgbgabfYbeGbeybcgbbxbbxbbSbbQbaPaYxbaPbaPaYxbaPbaPbaPbaPbaPbaPaYxbaPbaPbaPbaPbaPbaPaYxbaPbaZbbIbbxbbxbbxaYdbdZbejbebbebberbfsbnhbcfbcibdSbdTbdUbdVbdWbdYbbWbbYbbZbcbbccbcdaYZaLIaLIbrJaFLaFvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaakaaaaaaaaaaaaaaaaaaaaaaaabaAbaEbaBbcjbckbckbclbcmbcnbcobcpaGObckbcqbcraTpaZjaSeaMPaRJaRFaRKbcxaRAbczbCLbaeaTlbCNaHtaHtaIaaIbaHIaHfaHfaHfaHfaHgaHraHsaHjaHqaGZaGXaGRaGQaHdaHbaHaaIHaYpbRAaZNaHHaIDaMeaIzaItaDPaIuaEFaaeaaeaFhaFIaFraGsaZPaGGaGyaGsaZPaGGaGMaGMaGWaaeaaeaZTaICaLAbdqaIAbdqbdraSvaZTaIpaYpaHmaVMaVMaFAaFzaFyaVMaVMaHzaFBaVaaIkaVaaVaaHUaHUaHUaHUaJzaJzaJzaIhaFxaJzaNLaNLaNLaNLaNLaOJaPcaNLaHpaHvaHpaHoaHwaHlaHkaHoaHnaHxdBLdBvdBvdBKaaaaaaaaaaaeaaaaaaaaaaaeaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaeajGaJJaJEaIqaJEaJTaGpaaaaaaaaaaFUaImaweaJBaJWbBfbBgaJQaJWaxsaweaGvaFUaaaaaaaGqaIlaGpaFvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabcqbecbedbeebckbefaEdbefaEdbefaEdbefbckbegbehaXFaZjaQUaZlaFGbekaQRbemaQEaFHaZlaXQaEcaFWaFXaGdaGiaHyaHAaGzaFmaFpaMLaFEaFKaIfaFPaFQaGBaGAaGFaGEaGIaGHaGNaHiaYpaRnaZNaGKaFwaYDaJPaZLaDNaFdaTLaaeaaeaHBayIaAeaugaupambartawLaxlavtavuaAYaHCaaeaaeaZTbfiaClbfkaGTaGLaDVaDzaZTaEMavgaGwazgbfAaExbfAbfwayfaEwbfAbfAbfAaEKbfAayuaEDaMHaJGbfAbfAaCSayubfwaEKaELaxXaCSaybaMSaTmaziaFoaKQaFnaFlaFkaETaEhaDZaDaaFgbcebcebAodBBdBzdBJaaaaaaaaaaaeaakaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaeaaeaaeajGaJJaJEaGbaJEaJKaGpaaaaaaaaaaFUaGfaGgayKaEiaNBaJMaNUaEkayLatXaGvaFUaFUaFUaFUckMaFLaFvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabfPbckbckbJcbckbefaEdbefbfQbefaEdbefbckbegbehaXFaQQaQpaZlbfSaQnaTzaKxaTzbaHbaHaNcaNvaNxaHfaNuaNfaIIaMXaMZaMKaMNaHfaOqaLWaMZaHjaLVaHfaLTaLqaKVaKUaMnbbcaIHaYpbRAaZNaLSaIoaSwaLMaZLaIPbbsaTLaZPaJwaZPaNAaMBaNhaBCaNmaNwaMBaBCaNhaNmaLEaZPaJwaZPaZTaYtaYtaYtaIxbgAaOsbgCaZTaPlaLZaLYaLbbgMaJHbgMbgObgMaLcbgMbgMbgMaKKbgMaLvaIjaLgaLfbgMbgMaIJaQmaIiaKKbgSaKKaKOayOaKPaTmawaaKWaKWaKZaLxaKWaKWaLzbbEaMjaLDbcebcedBsdBvdBvdByaaaaaaaaaaaeaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaJIaaaaaaaaaaaeaLJaLJaKpaJRaIlaGpaaaaaaaaaaFUaFUaImatXatXatXaTxatXatXatXatXaLHbwsaLGaaaaGqaIlaGpaFvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabcqbhkbedbeebckbefaEdbefaEdbefaEdbefbckbegbehaXFbhlbhmbhnaKeaKbaJZaJZaKgaKfaKebcCaKiaKkaHfaKyaNtaJNaQSaKmaIRaISaHfaILaHLaIwaIOaPnaHfaKHaKNaKIaKFaKDaSWaKEbbFaKlbleblebleblebleaZLaHDaHcaKobhUaECaEEaDTaBCaBCaBCaBCaDdaBCaBCaBCaBCaJyaJxaIgaZPbIBbGYbFwbEFbDeaKjaPfaNoaZTaFCaPwaKnazsbiwaGxbiwaGjbiwaMYbiwbiwaIUbiwbiwaOGaKXbiwaIraIUaFOaHhaOGaGjbiwbiyaPiaPmaIYaEuaJaaFjaJcaJdaJfaMjaJlaJlaJhaZbaFtaJqaTmaTmaTmaawaHTaaaaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaaaIZaIWaJAaJvaJDaJCajeaJFaIlaFUaFUaFUaFUaFUaJXaLFaJXaJXaLwaLyaLwaMQaMQaNWaMdaMgaJUaaaaGqaIlaGpaFvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabiTbiUbaBbcjbckbckbiVbckbiWbiXbckbiYbckbcqbiZaULaZjbjabmsbbpbbrbbzbbtbbnbblbbpbmPbjkbaXaHfbiobiIaSkbixaHfaHfaHfaHfaHfbiIbnObjEaHfaHfbbcbbbbbabbhbbebbdbbiaYpaXoblebhBbjibjhblebbybeEbjQaQZaZPbdLbdQbeibeobfabfcbfVbgsbfcbfcbgtbeobgvbgubgwaZPaZTaYtaYtaYtbljaYtaYtaYtaZTbmTaYpbahbkdbcTbezbcTbkdaSaaSaaSaaSaaSaaSaavAavAbcSavAavAavAbhobgGavAavAavAbdmavAbddbdgaUSbdaaTCbcYbcVbhuaJlaXubcRbcQaZbaSmaJqaTmbhsbcFbeuaTSaTSbcUbeaaaaaaeaaaaaaaaeaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaeaaaaIZbcLbcDaaaaaebcubbHbfWbbBbhNbrKaJXbhibkYbfDbhdbhhbhqaJXbofbmbbgNbinbnLbhWbhWbiuaJUaaaaGqaIlaGpaFvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabiTbaBbJcbaBbaDbaBbaBbaDbaBbJcbiUbkDaQNbiabkFbkGaSWbbTaYOaTaaYObbPaSWaZcaXYaZdbaibkXbizaYLaYMbkmbizbjJbkAbizbkXbkXaYNbkXbagaXZaYIaYFbkObkXbjYbibblcbRAaTIbcBbdcbcObleaTLaTLaTLaTLaZPaZuaZxaYJaZsbaSbaWbndaZMbbkbcvbbjaZsaWGaWDaWdaPYaZTblCblDblEbigaPRaYtbijaZTbkhaYpaOMbaIbaGbctbgibkdbawbazbfrbaubatbavaSRcixbDEavAaUqaUnbeDchJchOavAabkbaravAbambaobapbaqbakbakbakbfqbfoaJlaJlbggbfnaPgbgabfYbeGbeybcgbbxbbxbbSbbQbaPaYxbaPbaPaYxbaPbaPbaPbaPbaPbaPaYxbaPbaPbaPbaPbaPbaPaYxbaPbaZbbIbbxbbxbbxaYdbdZbejbebbebberbfsbnhbcfbcibdSbdTbdUbdVbdWbdYbbWbbYbbZbcbbccbcdaYZaLIaLIbrJaFLaFvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaeaaeaaeaaeaaaaTpaWhbmpaSlaSlaSlaSlbmqaWhaTpaaaaQNbyKbmrbruaSWbrgbdKblPbdKbspaSWbsxbjxbfubmCcofbrEbmDbmCbmCbfxboMbmGbmBbmCbmCbfvbmCbmCbmCbfzbfybmKbmKboXbBebdPbnUbleblpblobkrblebjXblublvblybtIbbjblqbaSblrbmYbmZbndblGbndblzblQbmSbnHbnjbnJaSZaZTbfIbnnbnobnpaTraZTaZTaZTaEMbnraWQbkdbfRbfObgIbkdbzcbyHbgLbgrbvxbgkbgjbgHbgFbgEbgDcokbhabkTbgYbhebhgbhbavAbddaYabzfaTmaFTbgVaXxbgJbgTbcZbgxbgcbmmaZbbafbadbkybjDaFLaaaaaabgKbcDaaaaaeaaaaaaaaeaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaeaaaaVNbeUbeaaaaaaeaGqbfLbuobulbtzbtvbsXbrObwZbxnbwTbwVbsNbwSbvKbvLbsCbvJbvIbhWbvlbvsaJUaaaaGqaIlaGpaFvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaeaTpaaeaaaaaeaaaaXFbzWaXFbpQbqcaVgbpAaXFbzWboibojaQNaZjbwJbpwaSWbqTbdKbdFbdKbpzaSWbpPbhVbdAbdBbosbmobkVbdwboxbdCbnCboabosbosbosaWPbosbmnbohbkVbdvbosbosbnDboAboBbnUblebbubbVbbfboNbbfbbvbbfbbfbtIbjLbjMboLboLboLbjObppbeJbdEbjNboLboLboLbjKbjIaZPaZTblKboTboUboVboWaZTclackEbaYbpaaWQbcTbeIbeObeMbkdbeRbfEbfCcocaSaaSaavAavAaTUavAavAavAcnPbjpavAavAbeFcgSavAbeAaYabeBaTmaJqaJqaJqaJqbeCaJqaJqaWRbjraZAaTmaTmbffbfebfFaaaaIZbfGaaaaaaaaeaaaaaaaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaaaVNbeUbeaaaebeSbesbqSbexbqKbtBaJXbrbbqfbqhbqvbkIbhXaJXbkBbpCaJLaMQaNkbqobhWbiuaJUaaaaGqaIlaGpaFvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaboibojaPBaWgaQNaULaWhaULbtybrsbcybcMaULaWhaULbnubrrbpNbkFbkGaSWblxaSVaTaaSVbkEaSWbcWaXraXiaSWaTeaXmaTiaSWaSWaTcaSWbqabqaaXcbaLbaNaXcbqabqabqabqabqabqabqabqgbboaLBaWJaWIaXwaSTbdsaSTaPEaWFaPGbalaRNaRWbqtbbgbqtbqtbqubajbqwboLboLbdyboLaRZaSoaZTbdGaRBbqAbdqbqBbdbaZTbYgaZLaAkbqFaLabkdbkdbkdbkdbkdaTTaUkaSaaSaaSaaXzaUlaSaaVWaVVaVravAbbNbdtavAcauaTZaTXaTYaUhaUiaUbaUgarwcdlaXCarwbYWbelaJqbhcaYsaYnbduaYvaYTaYzaUjaTSaSSaSgaaeaaeaaeaaeaaeaaeaaaaaeaaaaaeaaaaaeaaaaaeaaaaaaaaaaaaaaaaaaaaeaJIaaaaVNaUmaJvaWtaWsajeaJRaIlaFUaUraUpaYKaYRaYAaYEaJXaJXaWjaWzaXdaMQaMQbePaYYaPIaJUaaaaGqaIlaGpaFvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaXFbktbrsaZfaYXbhCbrsbrsbrtaQOaYbaYWaXMaXMaXMaXJaRzbryaRyaXVaRraRxaRwaRuaRtaRsaRraXnaTqaRIaUxaUxaUyaUxaUxbrSaRHaRLbqaazHaWEbrXbrYbscbqaaWwazhbqaaWwazhbqabqgaYpbRAbleaQXaRiaQYbleaRGaOWaPHaONbtIaQeaQfboLaZnaOYaXSbssbssaYQaYUaXTaYmboLaOEaOoaZTaXBbsAbsBaXbaSIbsEbsFbYaaZLaEMbqFaRkaSaazYaSdaIyazNaRUaRCaQtaSaaVYaXsaXgaTQaVUaVXbcPavAavAavAavAavAavAaRPavAaRRaRSaRTbgXbiJaRQbiJbiJbiJbgXbgXbiJbiKaRMbiNbbAbcsaIMbiRbiSbgXbgXbgXaaeaaaaaaaaaaaeaaaaaeaaaaaeaaaaacaaaaacaaaaaaaaaaaaaaaaaaaaaaaeaaeaaeaaeaaeaaeaaeaFvaOXaIlaGpaRDaFUaZKaZOaZQaTJaTKaTVaTWaUuaUAaUKaVcaWcaLIaLIaSQaFUaFUckMaFLaFvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaXFbwBaUMaUMbfUaUMaZyaUcaUeaUebpxaUebiebhyaZSbcaaZEbiAbacaXjaKebqqbhpbgRbhtaXeaXhbgPbgQbgWbaxbbJbltaZGaUxaYCaXlajpbqaaYwaYqbrXbrYbscbqaaYobDDbqaaYobDDbqaaWAaYpbRAblebleaYBblebleblebeXbeWaUGbleaVpaVqblwbssbndbndbtQbtRbtSbtTbtTbcHbtVaVSaVTblWbdqbtZbuaaZzbucbudaZTcgVaZLaYPbqFaRkaSabilbhYaRUaXRaRUbhZaRUbnAbeHbcPbjbbtdbtcbrZbptbyiaXUaXAbwIbiiavAbyxavAaPTaYaaXWbgXciTciXaZVaYebncbgXbnfbabbdHbkuaVRbkabtubjCbjBbcwbjPbkCbgXaaeaaeaaeaaeaaeaaeaaeaaaaacaaaaXyaaaaXqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaFvaGqaWBaGpaaaaFUbnKboKbniaTJbfbbfJbdRbeqbfNbfXbfKaTJaFUaaaaaaaaaaGqaIlaGpaFvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaeaZhbojaQNaWgaPBaWgaQNckJaSlbxFaQNaWgaQNaQNaQNaQQaQpaKBaZwaKBaKBbuQbuRbuQaUXbuQbuQbuQbuQaUxaUxaZIaZFaUxaUxaUxacpbHMbqaaVebrVbrXaYibqabqaaVdbqabqaaUZbqabqabenaYpbRAbgzbgpbfgceebfpbeTbfgbfgbkSblsaSoaTkbqtbjZbndbvmbfdbvobvpbvqbfmbjmboLaSDaSBaZTbvvbvwbdqbhQbhjbvyaZTcfZaZLaEMbqFaRkaSaaAmaVOaVPaVOaXPaVQaApaSaaBvbcPbcJbcXbcPaWbbdJaXIaVhaVfaViaAlavAcgSavAaXkaVlaVnaUvaVoaVGaVIaVKbfjbgXaQiaZJaZRbmeaUdbjAbmhblXbmibmjbiObPGbgXaaebgXbgXbgXbgXbgXaaeaaaaXqaaaaXyaaaaXqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaFvaGqaWBaGpaaaaFUaZXaZZaZWaTJaYSaZgaZkaZqaZraZtaZvaTJaFUaaaaaaaNKaNZaIlaGpaFvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaebwfbwfbwfbwfbwfbwfbwfbwfbwfbwfbwfdzWbwgbwhaZjbwiaKBaRHbtwcnSbuQdLtbxHccRdLwdLudLvbuQcpocpocsUdJRdJYcsQaUxacpcbObqadABbJpbrXbrYbrUcbNbrVcRycbJcbFcNdaXcbqgaYpbRAbgzcsPcsMcsNcsOcsOcsOcsWcsTblsbwFbKmaZPaZPaZPdLAdLydLzdLydLxaZPaZPaZPbGAbwFaZTaZTbtYaZTaZTaZTaZUaZTdwlaZLcsScsRaRkcjqcjscjscjsaUzcjsdoLcjscttbeHbeHcuAbeHbeHbcPdxSduvdIGcimcidciYavAaRPavAdLBaVlcjdaZBcjhblXbnYcjpcjHcjLcjybnPbnQbnRaUdbnSbnTaYcbgdbnXbnWcnVcsXcEebWjbocbodbodbgXaaeaaaaXqaaaaXyaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaFvaGqaWBaGpaaaaFUaFUaFUaFUaTJcoIcondoObfNcrjcpRcrqaTJaFUaaaaGqdIJbBHdLCaFLaFvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabwfbwfbwfbwfbwfbwfbwfbwfbwfbwfbwfbwfbxDbxEbxFaZjbxGaKBdDUdwhcmDbuQchIbxHccRbWmchLdLqbuQdKkdJVcnjdJTaUxaUxaUxacpaKSbqabXybXnbrXbrYbrXbrXbrXbrXbrXbtEbrXbaLcdicbhcrHcrCcrucrAcrudzQcrucrAcrucsaciachmcfXchocrUcrMcrIcrIcrNcrJcrIcrLcrKcivckxclEclFcrMdAlcipcrMcsocsqcrMcsrcsccsmbyDaWQchWaRUcTiaRUdAraRUaRYaRUdwkbeHbeHcUSbeHbeHcMIdtnduvcigaXUciddxeavAaRPavAbnFciqbeBaUvcirblXblYblXcitciubmcbksbmdbpyaYfbnIbpBbmgbmlbmkblbciybUiaaebNCbpJbodbpKbgXaaeaaaaXqaaaaXyaaaaXqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaFvaGqaWBaGpaaaaaaaaaaaadIDbUtbMUbMUdICclMdICbMUbMUaSOaLGaFUaFUckMcElcEmaaaaFvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabwfbwfbwfbwfbwfbwfbwfbwfbwfbwfbwfbwfcjrdzTcjraZjdHpaKBcmCdwcbGxbuQcfmbxHccRdwwbxHchQbuQaUxdJPaUxdJRdJQcrkaUxacpaiWbqabHlbJpbXibWUbvabvabvabvabvacbPbvabeYboAcqVcqZcrecbrcbscbrcbtccxcqNcqMbZVbZUbZYcqRcqncqOcqncqmcqmcqkcqJcqmcqpcqocpQcpScprdxwdxzcqjcpVcqccpxcpBcprcpscpHcpMcpEbZSchlcdpcLlcyGcyGcLicLjcdpdwgcQMcqacRvbcPcNHbcPcPTcyhcdccgzcgccfUdKTcfWavAbpqcgQcgYcgUcgLcgBcgOcgMdKrcfHdIuaVFaUWaVjaVmaVzaYcaWHbrjaVLaYVcfMbHWczpbRbbrqbodaPUbgXaaeaakaXqaaaaXyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaFvaGqaWBcEgaNKaNKaaaaaaaJUdIvcnIdIwbHidIybHidIzcnOdIAaJUaaaaGqaIlaGpaLKaFvaFvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabwfbwfbwfbwfbwfbwfbwfbwfbwfbwfbwfbwfbADbAEbxFaZjdCHaKBcmvaKBaKBbuQdBDdCAdBrbxHbxHbxHbuQdJOdJNaUxaZeaUxaUxaUxcnQahccdabrVbrVbtEbZfbzobrVbrVbrVbrVcpnckVaXcbqgbWCcMJbSAbSAcdedwacddbSAbSAbBqbBqccSdvSbBqcpmblscoNcoMcoPcoOcpacoMcphblscpmbCGdvXcyjccWbCGbCGbDRcdycdrbCGdvWaZLcmYbBybYHcdQbzecobbzecnUcoaaRUaRUcttcuAbeHctpcpjcEkcpjcqacvzceCceycewcesavAbxhavAcfjcxccfebiRceYcePceMceGbiRbiScdfaSkbmjbsWaYraRVaTIaTyaTIaTyaTOcdgcdmaaebgXbgXbgXbgXbgXaaeaaaaXqaaaaXyaaaaXqaahaacaaeaacaahaahaacaacaahaahaahaFvaFvaFvaFvaOXdLmbBHbBHcppajeajeaJUcDBcdOcdVcLMclMcLMcdVcdOdAZaJUaaaaGqaIlaGpaFvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaebwfbwfbwfbwfbwfbwfbwfbwfbwfbwfbwfdzWaULdAbaZjdALaKBacpaKSdBwbuQcEoccRbCfcnlchQbxHbuQdKmctXaUxdKkdKjctWaUxacpbrTbqabETbETbtEbrYbwDbwDbwEclmbSnckWbqabqacdibCwcaVbSAcllckrckIcjYcnhcbicNedLYcvOckLbBqaaecufcutcoMcoMcuscoMcoMcuqcugaaebCGdLXdvNdvOdvTbCGbCGbCGbCGbCGdBhaZLcmYbCObqGaSadGSbJfcjsbAeczycjsdHCaSacuAdGGbeHbeHbeHbeHbeHduvdFbcnFdGCcnHavAdBCarNcntcnocnubiNcnycnvcnBcnzbiPcohbuxbdNbepbevbevbeZbgqbghbgdbfZbfMcltbHncEebWjbuIbuJbuJbgXaaeaaebYOaaebVMaaeaXqaaaaaaaaeaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaFvaaacEpbFgbFkaIlaGpaaaaJUdJlcdOcdOcdOdJkcdOcdOcdOdJjaJUaaaaGqaIlaGpaFvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaedLWbojaQNaWgaPBaWgaQNckJaSlbxFaQNaWgaQNaQNaQNbZmbAGcfodnUarXagvbuQcmJcmsbCfcmtbDqbEHbuQaUxaUxaUxaUxaUxaUxaUxacpajpbqacmpctHbtEbrYbrVbrVcckbrVbyabybbqacjbbqgaYpcfPbSAbDQcgscgxcgCcmqcbicgFcgGcgHcgDcgEaaectIctNctKctJbzvctKctJctMctLaaeckDcjWdLVdLSdLTdLUcvxcPCcOKbCGdApaZLckKbEhbEibEjbEjbEjcmEcmKbEjcEncmGbEjdCWbEjbICdEBdAYdDadDddFabjScmVbjSbjSavAbxhciocvZcvYciobgXbgXbgXbgXbgXbiMbiNcmWaZYcneblXbvVbvWbvXbvYbnTbbmbanbMhbUiaaebNCbwcbwdbwebgXaaeaaaaXqaaaaXyaaabSwaFvaFvaFvaFvaacaFvaFvaFvaFvaacaFvaaeaacaFvaFvaFvaFvaFvaGqaIlaGpaaaaJUceTdJgdJfcdOdJecdOdJddJcceIaJUaaaaGqaIlaGpaFvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaXFdpBbrraZfbhCaZfbrsbrsdLQbrsbrrbrsdLPbrrbrsbpNcuPaKBdzNbHMaqhbuQclnclobxHbxHbxHcljbuQbzmasdarnctrdKedKhaKBacpbMbbqabCtbEYbtEdAHbwCbwCbwGbrVbrVcnkbqacgbbqgaYpcaVbSAcdGcefceqchgdwIcbiceAcetceuceNbBqcfsbFmcfsbFmbFmbFnbFmbFmcfsbFmcfsbCGcjobJPchRchTdLMcicchNchAbCGdwvaZLdLNbqFbqGbEjcmhbHXbFCbFBdCmcmacmaclSclYbEjbEjbEjbEjbEjbEjbEjbjSdxUclNbgbavAdxTciocvRcuUcvXciodIYctCbaCaSRbgXbxqcfKcfJcfNcuQbxvbxwbxxbxychHbbmcficcCbHWczpbRbbxCbuJcfVbgXaaeaaaaXqaaaaXyaaaaXqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaLKaOXctBaLIaLIdIUaLGdIWdIVcdOdIXcdOdISdITdIDdIUaLIaLIctwaFLaFvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaXFbwBaUMaUMbfUaUMaUMcumdLIdLHaUeaUeciMcihcgRdLLdoUaKBaZmbMeaqhbuQdLwbGabxHbxHbGabxIbuQdKddKcagSdwuagvdKeaKBacpctmbqacjUbxXckacjZbrVccDckdckcctncdtbqacdFbqgaYpcdIbSAcbRbFvdLGcgJcbicbicbUcbXcdPctZbBqctcctactdbGzbPqbGBdLDclGcticthctlbCGdLEbJPcgndLFbCGcglcgXcgWbCGdwqaZLcjGbqFceXcktckubGRckqbOlbGVbFCbFCbVackobEjbMoceWcffceWbIzbEjckSckRcoGckNavAbxhciocuOcuNcuMcioabfaQsaQsckFbgXbxqceHcerbiJbiJbiJbyTblXckjblXbbmcbGbMhbUiaaebgXbgXbgXbgXbgXaaeaaaaacaaaaXyaaaaXqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaFvaGqaIlaGpaaaaaaaJUcuucdOcdOcisdINciwcunaJUaaaaaaaGqaIlaGpaFvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaeaZhbmqceQaTpaQNbuNbojaQNaWgaQNbuNbojaQNaQNccNaQNaQNaKBaZmbMbaqhbuQbxIbWkbHzbxHbHzcfQbuQdJKaiWbrTaKSbxMajraKBacpbHMbqabqabMvbMDbMwbMvbqabqabqabqabCubqabqabGobbFbNwbSAbKsdvlbKkbVpdvocbibNvbNhbNudvpbBqcNNcNObIfcLFbIgbIfcLLbIfciQcMqcMUbCGbHEbJPbLubLDcNLbWxbWnbWpbCGdvtaZLbXkbqFbqGbUXcwybLzbLEcMTbUZbFCbLzbVaceFbEjbEQbHacchcfhbIzbEjbbwbPsbPrbPvbVmbVtciocjPciSckwcioapCdJCckCcfYbgXbArbZqbZpbVWbiJbAvbxyblXbxwbOybOzccZcltbHncEebWjbAAbABbACbgXaaeaaaaXqaaaaXyaaaaXqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaFvaGqaIlaGpaaaaaaaJUbVscmNcmObYzcmUcmRbVsaJUaaaaaaaGqaIlaGpaFvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaXFbeNaXFaaaaaaaaaaaeaaaaaaaaaaaeaaaaKBbUwduVbUxbUybyObUycfwbuQbuQbuQbuQbUvbuQbuQbuQdJGbMebHMbrTbUAbQsaKBduZciAbqabKRbKPbKObHPbHgbKMbKfbqabKNbJYbGObqabqgaYpbWgbSAbDQbFvcnWbHxbDQcbibJSbIocMCbJObBqcincaycxwcfLcoibWQbGUcyvbJHbJIdJHbCGbFsbGIbPJbGNcMBbUQbUCbUNbFpdvjaZLbUBbqFbqGbTObTRbTNbTNcdxbIAcdubUbbUdcdzbEjcMybHacftbKbcepbEjceocfFcQmbTlavAbxhciociociociociocluaQsaQscelbgXbArbZqbZpbUebBXbAvbBYbnTbxwbAwbbmcaObMhbUiaaebNCbCabCbbCcbgXaaeaaaaXqaaaaXyaaaaXqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaFvaGqaIlaGpaaaaaaaJUclBbMUbZtciJbZFbMUclCaJUaaaaaaaGqaIlaFLaFvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaeaaeaULceQaULaaeaaeaaeaaeaaeaaeaaeaaeaaeaKBbSFaXOaXOaXOaXlaiWaqhbHMaUDbtwajpaDnccJbMbaKBaKBaKBaKBaKBbTcaKBaKBacpaKSbqabHHbHSbHRbHRbHPcekbTfbqabFccgibFabqaaWAaYpbUjbSAbDQbTdbEfbTecCmcbibDlcKpcJWbBqbBqcegcdDbLdcdjccMccLcdvcdscuhcdqczubCGbEadJDcnndJEcLZbSIbSIcKwbCGduFaZLbSJbqFbqGbEjbRfbRjbRybFCcpOcqdbOlbRYbRZcenbScctOcejbRMbRSbEjbjSbjSbjSbjSavAduDavAcxnckFafZaQsaOhaThduEaQsbgXbgXcfpaSkbAubiJccgbDhblXbDibOybbmchBccCbHWczpbRbbDkbABcPDbgXaaeaaaaXqaaaaXyaaaaXqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaFvaOXckGaFUaFUaFUaLHaLIaLIaLIbwsaLIaLIaLIaSQaFUaFUaFUckMaGpaFvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaKBaKBaKBaKBbQsbxRaXObQhcdSbQlbKtbKtbKtccadtEbKtcdSbKtduCbKtbQVbKtbJibQUbrTbqabEZbFtbFqcdTbJpbERbEybqabqabqabqabqabAWaYpcaVbSAbSAbQTbQTbQTbSAbSAbBqbBqcEbbBqbBqcCLcCxbMGcCLcDccDccDccCxbMIcCLcCxbCGbCGbCGbCGbCGbCGbQQbQQbQQbCGdugaZLbSzbqFbNWaZLbMNbMNbMNcpJbMNbMNbPWbMPbMNbMNbMNbMNbEjcdMcdNcdKcdEcdAcdnaQsbLLbLMavAckCckzckyaQsaOhaQsaQsbWIbgXcxubmcbPLbiJbiJbiJcdLblXbEDbEEbbmcbGbMhbUiaaebgXbgXbgXbgXbgXaaeaaebSwaaebVMaaeaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaFvaGqaIlaGpaaaaaaaaaaaaaaaaaabQgaaaaaaaaaaaaaaaaaaaGqaIlaGpaFvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaakaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaabvBbvBbzdbvkcnwaKBccQaKBaKBaKBcoLbYwbYwbYwbYwbYwbYwbYwbrTbZwaQWbVBbqabVwbUaccebTnbJpbHPbWoccfbVFbtwaKBcbQbqgcorbYeccrccnccicciccicEhcdocxTcEiccidAScosccrccrcoycowcowcowcoxcowcovccccccccKcoEbXwcfSdBocEjcciccicciccObTzcccccmbqFdvRchbcevbWDbWEbXWcmycmBcmZbXWclOclZcmdcmobEjdvYdAacnCcarcnJcnDdvQbLMbOnavAavAavAavAavAdvAdvbbgXbgXbgXccbbmcaSkbFPbFQcoqbnIbFSbFTbFUbOzchXcltbHncEebWjbFWbFXbFXbgXaaeaaaaXqaaaaXyaaaaXqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaFvaGqaIlcEgaNKaNKaNKaNKaNKaNKbQgaNKaNKaNKaNKaNKaNKaNZaIlaFLaFvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaeaaeaaeaaacnwdvLbzacoBcnwbrTdvaagvdAcaKBcolbYwcnXcaTcnscfkcngbYwbrTbHMaQWbHMbqabqabqabqabqabqabqabqabqabQSbHMaKBcijbqgbOUbOVaWKaWKaWKaWKaWKaWKaWVaWKbPjbOXaWXaWWaWKaWKbOYbOZcojbPbbPcbPdbPebPfaWKaWKcaXbPhaWKaWKaWVaWKaWKaWKaWKbSRaWKbPjcnYcfzcfycawbUmcdkbUmbFFbFFduKduIclibFFcdkduJbEjbEjbEjbEjatJbasaUobWIbQMbOoaUobOocasbZiavAbvSavAbgXcmLcaxcaKcaMcaUchfchfchfaVzblXblXblXbbmcgTbMhbUiaaebNCbHsbHtbHubgXaaeaaaaXqaaaaXyaaaaXqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaFvaGqdvMbBHbBHbBHbBHbBHbBHbBHcmAbBHbBHbBHbBHbBHbBHbBHdvJaGpaFvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaacnwclJbyZcifcnwbrTdJydvKaKBaKBdACbYwcjBclDctGclUdKGbYwavabrTbZAbKtcdSbKtduCbKtbZDbZEbZEbZEbZEbOMbOSdokcQabTPclHbQdbQcbQebZXbQdbQdbQdchGbQdbTUaVCbUgbQiaVCaVCbRqbQkbRQcxPbQnbQobQpbQqaVCbZnchccgZcgZchacdUchachachachiclAbRXckbchhbSaceVceUdtDdurdiddkCdtobSZbTaddvcgNbSZdcBbMNdvychPbMNdvGbasaUoaUoaUoaUoaUobZedvzasMckPcqWbYxbZdbYybYpbYubYkbYmblXblXblXblXblXbnTblXbbmccjccCcksczpbRbbIPbFXbUSbgXaaeaaaaXqaaaaXyaaaaXqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaFvaaabFgbFgbFgbFgbFgbFgbFgbFgcEfbFgbFgbFgbFgbFgbFgbFgbFgaaaaFvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaacaaeaacaFvaaecnwcqedzMbyYcnwbtWbrTcVRaKBcjKdvxbYwcjwcpqcjucjncuSbYwbYwbYwbYwbYwbYwdJpbYwbYwcjIbYcbYdbHMbMeaiWbMbaKBaKBaZLaZLaZLaZLaZLaZLaZLaZLaZLaZLcKUcuocuocwhcvccuocwrcuocxZcyfbqFcbBcbCbRDcTgbRDbXDcexbRDbRDcCkaZLbSXbNpbNpbGWaZLcaeaZLcPGcUvcPGbMNcAkcENbTadvwcxybSZbTacwnctscvUcrZbMNdvvcgtbMNdHLbXlcfTasMasMasMasMbXfbWTbMicjjbMicQnbiNbRhbWLbWMblXbWHbevbevbevbevbevbWGblXbbmcbGcjibgXaaebgXbgXbgXbgXbgXaaeaaaaXqaaaaXyaaaaXqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaLKaFvaFvaFvaFvaFvaFvaFvaFvaFvaFvaFvaFvaFvaFvaFvaFvaFvaFvaFvaFvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaacnwbLKcracrbcnwaKBaKBaKBaKBbYwcvobYwbszbSocfubSqccobYwbSlcfnbRKbYwbRRbSjbREbYwczGbYwbYwbYwbYwbYwbYwbYwbShbRzbRpbRnbRxbRwcxLbQZbRkbYtcxLbUIbRmbUIbXRbXQbUIbRmbUIbYIbRlbSKbMSbRLcwbbSNcwbbLObYKcwbbSNcwbbRLbPObPObPObPObPOcpcaZLcclcboccBcevceicdkbTacgNcgNbSZbTJcgNcgNbSZchdbMNcQwbUlbMNatJcQlbSVbMibMicQnbMibMibMjavAcQoavAavAbgXbXNbLVbLTbLRbLQbnTblXblXbWHbevbLXchHbbmbMgbMhbgXaaeaaeaaeaaeaaeaaeaaeaaebYOaaebVMaaebSwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaabMqbMrbMrbsYbMsbMBbMAaaaaaeaaaaaaaaabYwcvobYwbYwbYwbYwbTwbYwbYwbTtbTubTtbYwbYwbYwbYwbYwbTicjvbYwcdYbxmbAPbxkbUGbUObUubUEbUubTQbUFbTEbTycwvbTxbSObThbTIbSEbNYbPQcjtbSHbStbRmbOsbTSbTTbSNbtibtmcjDbTXbZIbTVbAOdgJbTLbPObZKbYZchnbPOcRWaZLchkchechYbUUchqbXZcjgbVlciebXZcjgbVlbVlbXZcjzcjxbVObVybYFbYGbasaUobULbNaavAavAavAavAavAcpedIBcaobgXbVjbMKblXblXbxwbMLbnXbnXbMRbMTbMRbnXbMYbMZbMhbgXbgXbgXaaeaaaaaaaaaaaeaaaaXqaaaaXyaaaaXqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaabIWaaaaaebsybKjbKjbKeaaeaaeaaeaaeaaebYwbGbcOLbKYbYwbLabLebZbbYwbLgbLhdJrbKucaGbQLbKHbYwbKIbuXbIHbIhcPEbUkbVcbUMbNUbVrbTrbYYbGybNQcxLcxLbHjbGFbLibLybMabWdbEObWibWhbKGbXsbXEbOsbTSbTTbVebVfbVgbVhbKqbWSbVkbVkbFybFybTkbSgbRJbVxbPObPpaZLbWXbWqbXFcevbZBbXPbXdbXKbXxbXKbXGbXKbZLbXKbrAbMNbRPbRCbPwcsVbMjavAavAavAavAbLAcCdcEAcMLcRVcAfcCcbgXbLFbKFbKDbKCbKAbMcbKybKxbKwbMkbKWbKUbKLbKJbMhbWWdOqbWWaaeaaaaaaaaaaaeaaaaXqaaaaaeaaaaXqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaFvaFvaaeaacaFvaaeaaabIWaaaaaeaaeaaeaaaaaaaaaaaaaaaaaeaaabYwbYwbYwcvobYwbMCbFZbNbbNcbMXbGwbMlbQLbQLbZbbMybYwbMmbMxbYwcuScmzcaWdEcbYwbPZbPPbOQbNibNgbOtbPNbYIbYIbAUbYIbNDbDmbXobXobXqbrMbsebrCbrDbRibrIbHpbVebVfbVfbVfbWtbUfbTYbWvcPVbXJbXIbWlbVibWAbPObWwaZLaZLaZLaZLbMNbMNcaYbMNbMNbMNbMNbMNbMNbMNbMNbMNbMNbMNbMNbMNcPWbNKavAcfRchjavAdAodDIdHOdCSdCVdBcdBmbgXbNNbNNbOCbNNbXLbNNbOCbONbXLbXLbMhbNNbQNbPibXMbgXbgXbgXaaeaaaaaaaaaaaeaaaaXqaaaaaeaaeaaeaaaaaaaakaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacvAaaaaaaaaaaaeaaaaaaaaactSaaaaaaaaeaaaaaaaaaaaaaaaaakaaeaaabYLbYEbYwbYfbYnbYobYwbYwbYwbXYdpCbQLbYrbYsbYwbYwbYwcbjbZhbYwaKBbxzbxzbxzbxzbxzbxzchpbNibXVbXTcfAbYIcgocgmbZcceDcezbJacdHbJabFjcctcwjbUIbOsbmybTTcwbcpvbFMcomclLcbcccHctQbXHccIbPOccyccqcbAbPObOAbXXbXXbXXdpGbXXbPgctudqObXXbXXcbWbXXbXXbXXbXXdpEbZQbOWbZWasMckvbZCbNrbZJdJCavAdRkbTvdRhbTsbBWdRidRjbgXbgXbgXbYSbOEbOFbOEbOIbOEbOFbOFbODbOEbYRbgXbgXbgXaaeaaeaaeaaeaaaaaaaaeaaeaaeaaeaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaFvaaabwYbwYbwYbwYbwYaaecuLaaebwYbwYbwYbwYbwYaaaaFvaaaaaeaaebYwcaTbPlcaCbYwbYwbYwbxNbYwbYwbYwbYwbYwbYwbYwcwlclwbMmcaDdEebYwcazcaBbGvcagcbmbxzcoVcnZcnMckncjJbYIcjFcjmcaLchvchSbZNbZNchVbGicbqbGicjacbvbmybYNcvBciNciNciNbYPbCncdCbYPbYUbYVbPOccAcczcnfbPObGTdrobWBbWBbWBbWBbPFbWBbEbbEbbEbbEbbEbbEbbEbbEbbEbbZgbYwcuJaQsaQsaQsavAaQsaSFavAcbwcbfdRlbTsbWZbXbbWYbTsaaeaaecxsaaecxFaaecxsaaecyHcwTcwEaaecwEcxdaaeaaeaaeaaaaaaaaeaaeaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaXFbwBaUMaUMbfUaUMaZyaUcaUeaUebpxaUebiebhyaZSbcaaZEbiAbacaXjaKebqqbhpbgRbhtaXeaXhbgPbgQbgWbaxbbJbltaZGaUxaYCaXlajpbqaaYwaYqbrXbrYbscbqaaYobDDbqaaYobDDbqaaWAaYpbRAblebleaTObleblebleaYBaUGaYVbleaVpaVqblwbssbndbndbtQbtRbtSbtTbtTbcHbtVaVSaVTblWbdqbtZbuaaZzbucbudaZTcgVaZLaYPbqFaRkaSabilbhYaRUaXRaRUbhZaRUbnAbeHbcPbjbbtdbtcbrZbptbyiaXUaXAbwIbiiavAbyxavAaPTaYaaXWbgXciTciXaZVaYebncbgXbnfbabbdHbkuaVRbkabtubjCbjBbcwbjPbkCbgXaaeaaeaaeaaeaaeaaeaaeaaaaacaaaaXyaaaaXqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaFvaGqaWBaGpaaaaFUbnKboKbniaTJbfbbfJbdRbeqbfNbfXbfKaTJaFUaaaaaaaaaaGqaIlaGpaFvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaeaZhbojaQNaWgaPBaWgaQNckJaSlbxFaQNaWgaQNaQNaQNaQQaQpaKBaZwaKBaKBbuQbuRbuQaUXbuQbuQbuQbuQaUxaUxaZIaZFaUxaUxaUxacpbHMbqaaVebrVbrXaYibqabqaaVdbqabqaaUZbqabqabenaYpbRAbgzbgpbfgceebfpbeTbfgbfgbkSblsaSoaTkbqtbjZbndbvmbfdbvobvpbvqbfmbjmboLaSDaSBaZTbvvbvwbdqbhQbhjbvyaZTcfZaZLaEMbqFaRkaSaaAmaVOaVPaVOaXPaVQaApaSaaBvbcPbcJbcXbcPaWbbdJaXIaVhaVfaViaAlavAcgSavAaXkaVlaVnaUvaVoaVGaVIaVKbfjbgXaQiaZJaZRbmeaUdaZobsWblXbmibmjbiObPGbgXaaebgXbgXbgXbgXbgXaaeaaaaXqaaaaXyaaaaXqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaFvaGqaWBaGpaaaaFUaZXaZZaZWaTJaYSaZgaZkaZqaZraZtaZvaTJaFUaaaaaaaNKaNZaIlaGpaFvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaebwfbwfbwfbwfbwfbwfbwfbwfbwfbwfbwfdzWbwgbwhaZjbwiaKBaRHbtwcnSbuQdLtbxHccRdLwdLudLvbuQcpocpocsUdJRdJYcsQaUxacpcbObqadABbJpbrXbrYbrUcbNbrVcRycbJcbFcNdaXcbqgaYpbRAbgzcsPcsMcsNcsOcsOcsOcsWcsTblsbwFbKmaZPaZPaZPbanbdNbbmbdNbeWaZPaZPaZPbGAbwFaZTaZTbtYaZTaZTaZTaZUaZTdwlaZLcsScsRaRkcjqcjscjscjsaUzcjsdoLcjscttbeHbeHcuAbeHbeHbcPdxSduvdIGcimcidciYavAaRPavAdLBaVlcjdaZBcjhblXbnYcjpcjHcjLcjybnPbnQbnRaUdbnSbnTaYcbeXbnXbnWbfMcsXcEebWjbocbodbodbgXaaeaaaaXqaaaaXyaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaFvaGqaWBaGpaaaaFUaFUaFUaFUaTJcoIcondoObfNcrjcpRcrqaTJaFUaaaaGqdIJbBHdLCaFLaFvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabwfbwfbwfbwfbwfbwfbwfbwfbwfbwfbwfbwfbxDbxEbxFaZjbxGaKBdDUdwhcmDbuQchIbxHccRbWmchLdLqbuQdKkdJVcnjdJTaUxaUxaUxacpaKSbqabXybXnbrXbrYbrXbrXbrXbrXbrXbtEbrXbaLcdicbhcrHcrCcrucrAcrudzQcrucrAcrucsaciabgdcfXchocrUcrMcrIcrIcrNcrJcrIcrLcrKcivckxbgqclFcrMdAlcipcrMcsocsqcrMcsrcsccsmbyDaWQchWaRUcTiaRUdAraRUaRYaRUdwkbeHbeHcUSbeHbeHcMIdtnduvcigaXUciddxeavAaRPavAbnFciqbeBaUvcirblXblYblXcitciubmcbksbmdbpyaYfbnIbpBbmgbmlbmkblbbjebUiaaebNCbpJbodbpKbgXaaeaaaaXqaaaaXyaaaaXqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaFvaGqaWBaGpaaaaaaaaaaaadIDbUtbMUbMUdICclMdICbMUbMUaSOaLGaFUaFUckMcElcEmaaaaFvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabwfbwfbwfbwfbwfbwfbwfbwfbwfbwfbwfbwfcjrdzTcjraZjdHpaKBcmCdwcbGxbuQcfmbxHccRdwwbxHchQbuQaUxdJPaUxdJRdJQcrkaUxacpaiWbqabHlbJpbXibWUbvabvabvabvabvacbPbvabeYboAcqVcqZcrecbrcbscbrcbtccxcqNcqMbZVbZUbZYcqRcqncqOcqncqmcqmcqkcqJcqmcqpcqocpQcpScprdxwdxzcqjcpVcqccpxcpBcprcpscpHcpMcpEbZSchlcdpcLlcyGcyGcLicLjcdpdwgcQMcqacRvbcPcNHbcPcPTcyhcdccgzcgccfUdKTcfWavAbpqcgQcgYcgUcgLcgBcgOcgMdKrcfHdIuaVFaUWaVjaVmaVzaYcaWHbrjaVLbmhbjAbHWczpbRbbrqbodaPUbgXaaeaakaXqaaaaXyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaFvaGqaWBcEgaNKaNKaaaaaaaJUdIvcnIdIwbHidIybHidIzcnOdIAaJUaaaaGqaIlaGpaLKaFvaFvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabwfbwfbwfbwfbwfbwfbwfbwfbwfbwfbwfbwfbADbAEbxFaZjdCHaKBcmvaKBaKBbuQdBDdCAdBrbxHbxHbxHbuQdJOdJNaUxaZeaUxaUxaUxcnQahccdabrVbrVbtEbZfbzobrVbrVbrVbrVcpnckVaXcbqgbWCcMJbSAbSAcdedwacddbSAbSAbBqbBqccSdvSbBqcpmblscoNcoMcoPcoOcpacoMcphblscpmbCGdvXcyjccWbCGbCGbDRcdycdrbCGdvWaZLcmYbBybYHcdQbzecobbzecnUcoaaRUaRUcttcuAbeHctpcpjcEkcpjcqacvzceCceycewcesavAbxhavAcfjcxccfebiRceYcePceMceGbiRbiScdfbxxbmjbsWaYraRVbFTaTybFTaTybKWcdgcdmaaebgXbgXbgXbgXbgXaaeaaaaXqaaaaXyaaaaXqaahaacaaeaacaahaahaacaacaahaahaahaFvaFvaFvaFvaOXdLmbBHbBHcppajeajeaJUcDBcdOcdVcLMclMcLMcdVcdOdAZaJUaaaaGqaIlaGpaFvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaebwfbwfbwfbwfbwfbwfbwfbwfbwfbwfbwfdzWaULdAbaZjdALaKBacpaKSdBwbuQcEoccRbCfcnlchQbxHbuQdKmctXaUxdKkdKjctWaUxacpbrTbqabETbETbtEbrYbwDbwDbwEclmbSnckWbqabqacdibCwcaVbSAcllckrckIcjYcnhcbicNedLYcvOckLbBqaaecufcutcoMcoMcuscoMcoMcuqcugaaebCGdLXdvNdvOdvTbCGbCGbCGbCGbCGdBhaZLcmYbCObqGaSadGSbJfcjsbAeczycjsdHCaSacuAdGGbeHbeHbeHbeHbeHduvdFbcnFdGCcnHavAdBCarNcntcnocnubiNcnycnvcnBcnzbiPcohbuxbMgbepbevbevbeZbMhbghbeXbfZbMZbMRbHncEebWjbuIbuJbuJbgXaaeaaebYOaaebVMaaeaXqaaaaaaaaeaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaFvaaacEpbFgbFkaIlaGpaaaaJUdJlcdOcdOcdOdJkcdOcdOcdOdJjaJUaaaaGqaIlaGpaFvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaedLWbojaQNaWgaPBaWgaQNckJaSlbxFaQNaWgaQNaQNaQNbZmbAGcfodnUarXagvbuQcmJcmsbCfcmtbDqbEHbuQaUxaUxaUxaUxaUxaUxaUxacpajpbqacmpctHbtEbrYbrVbrVcckbrVbyabybbqacjbbqgaYpcfPbSAbDQcgscgxcgCcmqcbicgFcgGcgHcgDcgEaaectIctNctKctJbzvctKctJctMctLaaeckDcjWdLVdLSdLTdLUcvxcPCcOKbCGdApaZLckKbEhbEibEjbEjbEjcmEcmKbEjcEncmGbEjdCWbEjbICdEBdAYdDadDddFabjScmVbjSbjSavAbxhciocvZcvYciobgXbgXbgXbgXbgXbiMbiNcmWaZYcneblXbvVbvWbvXbvYbnTbOCbOFbODbUiaaebNCbwcbwdbwebgXaaeaaaaXqaaaaXyaaabSwaFvaFvaFvaFvaacaFvaFvaFvaFvaacaFvaaeaacaFvaFvaFvaFvaFvaGqaIlaGpaaaaJUceTdJgdJfcdOdJecdOdJddJcceIaJUaaaaGqaIlaGpaFvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaXFdpBbrraZfbhCaZfbrsbrsdLQbrsbrrbrsdLPbrrbrsbpNcuPaKBdzNbHMaqhbuQclnclobxHbxHbxHcljbuQbzmasdarnctrdKedKhaKBacpbMbbqabCtbEYbtEdAHbwCbwCbwGbrVbrVcnkbqacgbbqgaYpcaVbSAcdGcefceqchgdwIcbiceAcetceuceNbBqcfsbFmcfsbFmbFmbFnbFmbFmcfsbFmcfsbCGcjobJPchRchTdLMcicchNchAbCGdwvaZLdLNbqFbqGbEjbOIbHXbFCbFBdCmcmacmaclSclYbEjbEjbEjbEjbEjbEjbEjbjSdxUclNbgbavAdxTciocvRcuUcvXciodIYctCbaCaSRbgXbxqcfKbPLcfNcuQbxvbxwbRhbxychHbOCcfibSYbHWczpbRbbxCbuJcfVbgXaaeaaaaXqaaaaXyaaaaXqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaLKaOXctBaLIaLIdIUaLGdIWdIVcdOdIXcdOdISdITdIDdIUaLIaLIctwaFLaFvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaXFbwBaUMaUMbfUaUMaUMcumdLIdLHaUeaUeciMcihcgRdLLdoUaKBaZmbMeaqhbuQdLwbGabxHbxHbGabxIbuQdKddKcagSdwuagvdKeaKBacpctmbqacjUbxXckacjZbrVccDckdckcctncdtbqacdFbqgaYpcdIbSAcbRbFvdLGcgJcbicbicbUcbXcdPctZbBqctcctactdbGzbPqbGBdLDclGcticthctlbCGdLEbJPcgndLFbCGcglcgXcgWbCGdwqaZLcjGbqFceXcktckubGRckqbOlbGVbFCbFCbVackobEjbMoceWcffceWbIzbEjckSckRcoGckNavAbxhciocuOcuNcuMcioabfaQsaQsckFbgXbxqceHbWRbiJbiJbiJbyTblXckjblXbOCbXLbODbUiaaebgXbgXbgXbgXbgXaaeaaaaacaaaaXyaaaaXqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaFvaGqaIlaGpaaaaaaaJUcuucdOcdOcisdINciwcunaJUaaaaaaaGqaIlaGpaFvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaeaZhbmqceQaTpaQNbuNbojaQNaWgaQNbuNbojaQNaQNccNaQNaQNaKBaZmbMbaqhbuQbxIbWkbHzbxHbHzcfQbuQdJKaiWbrTaKSbxMajraKBacpbHMbqabqabMvbMDbMwbMvbqabqabqabqabCubqabqabGobbFbNwbSAbKsdvlbKkbVpdvocbibNvbNhbNudvpbBqcNNcNObIfcLFbIgbIfcLLbIfciQcMqcMUbCGbHEbJPbLubLDcNLbWxbWnbWpbCGdvtaZLbXkbqFbqGbUXcwybLzbLEcMTbUZbFCbLzbVaceFbEjbEQbHacchcfhbIzbEjbbwbPsbPrbPvbVmbVtciocjPciSckwcioapCdJCckCcfYbgXbArbZqbZpbVWbiJbAvbxyblXbxwbOybOzbXNbMRbHncEebWjbAAbABbACbgXaaeaaaaXqaaaaXyaaaaXqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaFvaGqaIlaGpaaaaaaaJUbVscmNcmObYzcmUcmRbVsaJUaaaaaaaGqaIlaGpaFvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaXFbeNaXFaaaaaaaaaaaeaaaaaaaaaaaeaaaaKBbUwduVbUxbUybyObUycfwbuQbuQbuQbuQbUvbuQbuQbuQdJGbMebHMbrTbUAbQsaKBduZciAbqabKRbKPbKObHPbHgbKMbKfbqabKNbJYbGObqabqgaYpbWgbSAbDQbFvcnWbHxbDQcbibJSbIocMCbJObBqcincaycxwcfLcoibWQbGUcyvbJHbJIdJHbCGbFsbGIbPJbGNcMBbUQbUCbUNbFpdvjaZLbUBbqFbqGbTObTRbTNbTNcdxbIAcdubUbbUdcdzbEjcMybHacftbKbcepbEjceocfFcQmbTlavAbxhciociociociociocluaQsaQscelbgXbArbZqbZpbUebBXbAvbBYbnTbxwbAwbOCbYybODbUiaaebNCbCabCbbCcbgXaaeaaaaXqaaaaXyaaaaXqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaFvaGqaIlaGpaaaaaaaJUclBbMUbZtciJbZFbMUclCaJUaaaaaaaGqaIlaFLaFvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaeaaeaULceQaULaaeaaeaaeaaeaaeaaeaaeaaeaaeaKBbSFaXOaXOaXOaXlaiWaqhbHMaUDbtwajpaDnccJbMbaKBaKBaKBaKBaKBbTcaKBaKBacpaKSbqabHHbHSbHRbHRbHPcekbTfbqabFccgibFabqaaWAaYpbUjbSAbDQbTdbEfbTecCmcbibDlcKpcJWbBqbBqcegcdDbLdcdjccMccLcdvcdscuhcdqczubCGbEadJDcnndJEcLZbSIbSIcKwbCGduFaZLbSJbqFbqGbEjbRfbRjbRybFCcpOcqdbOlbRYbRZcenbScctOcejbRMbRSbEjbjSbjSbjSbjSavAduDavAcxnckFafZaQsaOhaThduEaQsbgXbgXcfpbxxbAubiJccgbDhblXbDibOybOCchBbSYbHWczpbRbbDkbABcPDbgXaaeaaaaXqaaaaXyaaaaXqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaFvaOXckGaFUaFUaFUaLHaLIaLIaLIbwsaLIaLIaLIaSQaFUaFUaFUckMaGpaFvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaKBaKBaKBaKBbQsbxRaXObQhcdSbQlbKtbKtbKtccadtEbKtcdSbKtduCbKtbQVbKtbJibQUbrTbqabEZbFtbFqcdTbJpbERbEybqabqabqabqabqabAWaYpcaVbSAbSAbQTbQTbQTbSAbSAbBqbBqcEbbBqbBqcCLcCxbMGcCLcDccDccDccCxbMIcCLcCxbCGbCGbCGbCGbCGbCGbQQbQQbQQbCGdugaZLbSzbqFbNWaZLbMNbMNbMNcpJbMNbMNbPWbMPbMNbMNbMNbMNbEjcdMcdNcdKcdEcdAcdnaQsbLLbLMavAckCckzckyaQsaOhaQsaQsbWIbgXcxubmcbYRbiJbiJbiJcdLblXbEDbEEbOCbXLbODbUiaaebgXbgXbgXbgXbgXaaeaaebSwaaebVMaaeaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaFvaGqaIlaGpaaaaaaaaaaaaaaaaaabQgaaaaaaaaaaaaaaaaaaaGqaIlaGpaFvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaakaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaabvBbvBbzdbvkcnwaKBccQaKBaKBaKBcoLbYwbYwbYwbYwbYwbYwbYwbrTbZwaQWbVBbqabVwbUaccebTnbJpbHPbWoccfbVFbtwaKBcbQbqgcorbYeccrccnccicciccicEhcdocxTcEiccidAScosccrccrcoycowcowcowcoxcowcovccccccccKcoEbXwcfSdBocEjcciccicciccObTzcccccmbqFdvRchbcevbWDbWEbXWcmycmBcmZbXWclOclZcmdcmobEjdvYdAacnCcarcnJcnDdvQbLMbOnavAavAavAavAavAdvAdvbbgXbgXbgXccbbmcbxxbFPbFQcoqbnIbFSbYSbFUbOzcaObMRbHncEebWjbFWbFXbFXbgXaaeaaaaXqaaaaXyaaaaXqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaFvaGqaIlcEgaNKaNKaNKaNKaNKaNKbQgaNKaNKaNKaNKaNKaNKaNZaIlaFLaFvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaeaaeaaeaaacnwdvLbzacoBcnwbrTdvaagvdAcaKBcolbYwcnXcaTcnscfkcngbYwbrTbHMaQWbHMbqabqabqabqabqabqabqabqabqabQSbHMaKBcijbqgbOUbOVaWKaWKaWKaWKaWKaWKaWVaWKbPjbOXaWXaWWaWKaWKbOYbOZcojbPbbPcbPdbPebPfaWKaWKcaXbPhaWKaWKaWVaWKaWKaWKaWKbSRaWKbPjcnYcfzcfycawbUmcdkbUmbFFbFFduKduIclibFFcdkduJbEjbEjbEjbEjatJbasaUobWIbQMbOoaUobOocasbZiavAbvSavAbgXcmLcaxcaKcaMcaUchfchfchfaVzblXblXblXbOCcbGbODbUiaaebNCbHsbHtbHubgXaaeaaaaXqaaaaXyaaaaXqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaFvaGqdvMbBHbBHbBHbBHbBHbBHbBHcmAbBHbBHbBHbBHbBHbBHbBHdvJaGpaFvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaacnwclJbyZcifcnwbrTdJydvKaKBaKBdACbYwcjBclDctGclUdKGbYwavabrTbZAbKtcdSbKtduCbKtbZDbZEbZEbZEbZEbOMbOSdokcQabTPclHbQdbQcbQebZXbQdbQdbQdchGbQdbTUaVCbUgbQiaVCaVCbRqbQkbRQcxPbQnbQobQpbQqaVCbZnchccgZcgZchacdUchachachachiclAbRXckbchhbSaceVceUdtDdurdiddkCdtobSZbTaddvcgNbSZdcBbMNdvychPbMNdvGbasaUoaUoaUoaUoaUobZedvzasMckPcqWbYxbZdccvbYpbYubYkbYmblXblXblXblXblXbnTblXbOCccjbSYcksczpbRbbIPbFXbUSbgXaaeaaaaXqaaaaXyaaaaXqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaFvaaabFgbFgbFgbFgbFgbFgbFgbFgcEfbFgbFgbFgbFgbFgbFgbFgbFgaaaaFvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaacaaeaacaFvaaecnwcqedzMbyYcnwbtWbrTcVRaKBcjKdvxbYwcjwcpqcjucjncuSbYwbYwbYwbYwbYwbYwdJpbYwbYwcjIbYcbYdbHMbMeaiWbMbaKBaKBaZLaZLaZLaZLaZLaZLaZLaZLaZLaZLcKUcuocuocwhcvccuocwrcuocxZcyfbqFcbBcbCbRDcTgbRDbXDcexbRDbRDcCkaZLbSXbNpbNpbGWaZLcaeaZLcPGcUvcPGbMNcAkcENbTadvwcxybSZbTacwnctscvUcrZbMNdvvcgtbMNdHLbXlcfTasMasMasMasMbXfbWTbMicjjbMicQnbiNccCbWLbWMblXbWHbevbevbevbevbevbWGblXbOCbXLccPbgXaaebgXbgXbgXbgXbgXaaeaaaaXqaaaaXyaaaaXqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaLKaFvaFvaFvaFvaFvaFvaFvaFvaFvaFvaFvaFvaFvaFvaFvaFvaFvaFvaFvaFvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaacnwbLKcracrbcnwaKBaKBaKBaKBbYwcvobYwbszbSocfubSqccobYwbSlcfnbRKbYwbRRbSjbREbYwczGbYwbYwbYwbYwbYwbYwbYwbShbRzbRpbRnbRxbRwcxLbQZbRkbYtcxLbUIbRmbUIbXRbXQbUIbRmbUIbYIbRlbSKbMSbRLcwbbSNcwbbLObYKcwbbSNcwbbRLbPObPObPObPObPOcpcaZLcclcboccBcevceicdkbTacgNcgNbSZbTJcgNcgNbSZchdbMNcQwbUlbMNatJcQlbSVbMibMicQnbMibMibMjavAcQoavAavAbgXccZbLVbLTbLRbLQbnTblXblXbWHbevbLXchHbOCcerbODbgXaaeaaeaaeaaeaaeaaeaaeaaebYOaaebVMaaebSwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaabMqbMrbMrbsYbMsbMBbMAaaaaaeaaaaaaaaabYwcvobYwbYwbYwbYwbTwbYwbYwbTtbTubTtbYwbYwbYwbYwbYwbTicjvbYwcdYbxmbAPbxkbUGbUObUubUEbUubTQbUFbTEbTycwvbTxbSObThbTIbSEbNYbPQcjtbSHbStbRmbOsbTSbTTbSNbtibtmcjDbTXbZIbTVbAOdgJbTLbPObZKbYZchnbPOcRWaZLchkchechYbUUchqbXZcjgbVlciebXZcjgbVlbVlbXZcjzcjxbVObVybYFbYGbasaUobULbNaavAavAavAavAavAcpedIBcaobgXbVjbMKblXblXbxwbMLbnXbnXcfqbMTcfqbnXbMYcfJbODbgXbgXbgXaaeaaaaaaaaaaaeaaaaXqaaaaXyaaaaXqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaabIWaaaaaebsybKjbKjbKeaaeaaeaaeaaeaaebYwbGbcOLbKYbYwbLabLebZbbYwbLgbLhdJrbKucaGbQLbKHbYwbKIbuXbIHbIhcPEbUkbVcbUMbNUbVrbTrbYYbGybNQcxLcxLbHjbGFbLibLybMabWdbEObWibWhbKGbXsbXEbOsbTSbTTbVebVfbVgbVhbKqbWSbVkbVkbFybFybTkbSgbRJbVxbPObPpaZLbWXbWqbXFcevbZBbXPbXdbXKbXxbXKbXGbXKbZLbXKbrAbMNbRPbRCbPwcsVbMjavAavAavAavAbLAcCdcEAcMLcRVcAfcCcbgXbLFbKFbKDbKCbKAbMcbKybKxbKwbMkcfMbKUbKLbKJbODbWWdOqbWWaaeaaaaaaaaaaaeaaaaXqaaaaaeaaaaXqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaFvaFvaaeaacaFvaaeaaabIWaaaaaeaaeaaeaaaaaaaaaaaaaaaaaeaaabYwbYwbYwcvobYwbMCbFZbNbbNcbMXbGwbMlbQLbQLbZbbMybYwbMmbMxbYwcuScmzcaWdEcbYwbPZbPPbOQbNibNgbOtbPNbYIbYIbAUbYIbNDbDmbXobXobXqbrMbsebrCbrDbRibrIbHpbVebVfbVfbVfbWtbUfbTYbWvcPVbXJbXIbWlbVibWAbPObWwaZLaZLaZLaZLbMNbMNcaYbMNbMNbMNbMNbMNbMNbMNbMNbMNbMNbMNbMNbMNcPWbNKavAcfRchjavAdAodDIdHOdCSdCVdBcdBmbgXbNNbNNcgTbNNchmbNNcgTbONchmchmbODbNNbQNbPibXMbgXbgXbgXaaeaaaaaaaaaaaeaaaaXqaaaaaeaaeaaeaaaaaaaakaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacvAaaaaaaaaaaaeaaaaaaaaactSaaaaaaaaeaaaaaaaaaaaaaaaaakaaeaaabYLbYEbYwbYfbYnbYobYwbYwbYwbXYdpCbQLbYrbYsbYwbYwbYwcbjbZhbYwaKBbxzbxzbxzbxzbxzbxzchpbNibXVbXTcfAbYIcgocgmbZcceDcezbJacdHbJabFjcctcwjbUIbOsbmybTTcwbcpvbFMcomclLcbcccHctQbXHccIbPOccyccqcbAbPObOAbXXbXXbXXdpGbXXbPgctudqObXXbXXcbWbXXbXXbXXbXXdpEbZQbOWbZWasMckvbZCbNrbZJdJCavAdRkbTvdRhbTsbBWdRidRjbgXbgXbgXchXbOEciybOEcjibOEciyciycltbOEclEbgXbgXbgXaaeaaeaaeaaeaaaaaaaaeaaeaaeaaeaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaFvaaabwYbwYbwYbwYbwYaaecuLaaebwYbwYbwYbwYbwYaaaaFvaaaaaeaaebYwcaTbPlcaCbYwbYwbYwbxNbYwbYwbYwbYwbYwbYwbYwcwlclwbMmcaDdEebYwcazcaBbGvcagcbmbxzcoVcnZcnMckncjJbYIcjFcjmcaLchvchSbZNbZNchVbGicbqbGicjacbvbmybYNcvBciNciNciNbYPbCncdCbYPbYUbYVbPOccAcczcnfbPObGTdrobWBbWBbWBbWBbPFbWBbEbbEbbEbbEbbEbbEbbEbbEbbEbbZgbYwcuJaQsaQsaQsavAaQsaSFavAcbwcbfdRlbTsbWZbXbbWYbTsaaeaaeclWaaecmhaaeclWaaecyHcwTcmjaaecmjcxdaaeaaeaaeaaaaaaaaeaaeaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaecuHcuIcuIcuIcuIcuKcuLbMWbMMbMMbMMbMMbMVajGajGaaaaaeaaabYwbVYbYwbGbcOLbFZcatbFZbFZbVRbZxbZxbZxcbebZxbZxbZxbVSclpcslbVJbVubUVbVHbVAbVPbxzbWfbVUbBZbVVbWfbYIbXebXabYIbXpbXgbZNdmdbZPbCvbZRbYjbZNbYMbDocdBciNckTclyckhckebZZcjRbYPbQrbGJcadcaNcadbPObPOczlbYwbWBbBnbDNbXBbNzbFdbEbbFIbFIbFIcaSbNsbNxbFIbEbbZgbYwbWNaUobWFbWJavAciVcjQavAdMMdJmdJSbTsbBWbCsbCybTsaaebgXbNFbNCbNFbgXbNFbNCbNFbgXbNEbNCbNBbgXaaeaaaaaaaaaaaaaaaaaeaaeaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaakaaaaaaaaaaaaaaaaFvaaebwWbwWbwWbwWbwWaaacuLaaabwWbwWbwWbwWbwWaaaaFvaaaaaeaaabYwbYwbYwbYwbYwbYwbYwbYwbYwbQKbYwbYwbXhbXjbXjbXjbXjbJdbXjbXjbXjbXCbXtbXubXvbXSbXOcapcambYTbYQcaIcaHcaFcaEcaJcaPcaQbNVbPybPxbYDbYCcbzbZNcbDbmybYNcmkcnmcnrcpucnAcmMcmFbYPbYJbOJccwcsdbWBcuScmzcnxcjvbWBbWVccEbunbOfbQwbEbbFIbOebNXbNTbNPbNMbNLbEbdpfbYwbYwbYwbYwbYwavAavAavAavAavAavAdppbTsdRfbCRdQGdphaaebgXbOwbWObOxbgXbOubSdbOvbgXbOibNdbOmbgXaaeaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaeaaaaaeaaeaaeaaacabaaaaaeaaaaaeaaaaaeaaaaFvaaeaaeaaabYwcfdceZbZTbnGcalcfxbZsbZudIFbYwbzQbyUcbHcbIbzLcaAbEgcbLcbMbYwbHCbGHbHkbGgbGGbGpbGcbRHbzrbzbbRobRrbRobzbbRobFhbGecbdbJucfvbJqbJkbIEbGibYMbmybYNbYPbYqcaabZHbKSbIxbQubIQbyubyvaXDaYHbWBcaqbQFbQfbPTbWBbGuccGbFGbFHbQPbEbbFIbFIbFJbFIbFIbFLbFKbEbbZgbYwceRbnEbYwbBobDwbVIbVKbVTbWeavAcMFbTsbTscqAbTsbTsaaebgXbVLbWPbCEbgXbRgbSebCkbgXbOGbNecbTbgXaaeaaeaaeaaeaaeaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa @@ -10685,7 +10684,7 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacDjcDjcD aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacDjcDjcDjcDjcDjcDjcDjcDjcDjcDjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaeaaaaaaaaaaFvaaecBBaaeaFvaaaaaaaaeaaaaaaaaeaaaaaaaaaaaaaaeaaecELcEKbPlckAcxtckAdJrbZbbQLbQLbQLcizdNkdInbQLbQLcpWdKGckXbYwdRCdEkdRDdEmdRBdEhdEictjczmczocEMcoCcuFcuGcuBcuEdMIcoCdMHdMGcxJcxJcvGbTScBgcmPdNgdNfcwzdNidNhcwFcvHdRAckUdRzcjeczqbLkdEfdRxdJvdKSbTWdQEcjkcoedNpdNjcxXcnibYvbYwbYwbYwbEJbYwdLdbYwbYwbYwbYwaaeaaeaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaeaaeaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacDjcDjcDjcDjcDjcDjcDjcDjcDjcDjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaFvaaaaaeaaaaFvaaaaaaaaeaaeaaeaaeaaaaaaaaaaaeaaeaaaajGajGbYwdNXbYwbQLbZhbQLbQLdNzbYwbYwbYwbYwbYwbZhcpWcuScmzbYwdRHcNSdRGcOudRIdEocMKcNjcLNcMmcLzcMGdMPcNmcJOcJPcBQctocCMcDYcJQcxJcbvbWrcNBclRdNAcmScmScmSdBtcmTcmTcmTcOAcuRcjecpfbLkbLkbLkbLkbLkbLkbLkcjkcjkcjkdLgcjkcjkbYvcpXdHIclpcpYbYwbQLdLecubdKZcubaaeaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaakaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacDjcDjcDjcDjcDjcDjcDjcDjcDjcDjcDjcDjcDjcDjaaaaaaaaaaaaaaaaaaaaaaaaaakaaaaaaaaaaaaaFvaFvaFvaFvaFvaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaeajGbYwbYwbYwcdYbYwcmzcJZclfbYwdKIdKJdKIbYwcdYcpWbYwbYwbYwdEqdEqdEqdEqdRFdEtdEucyscyncyqcxVdDzdMOdMNbXrdMLdMKdDAcyIcyRcAKdDGcDSbTSdBMcjcdNndNmdNmdNmdNhcmTczKczLbIGcBOcKNdJidHAdNWdNKcEOdHlbXAdJqcafdKydKCdKDdKMdoBcdYdJobQLbQLbYwbYwdLfbYwbYwbYwbYwaaeaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaeaaeaaeaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacDjcDjcDjcDjcDjcDjcDjcDjcDjcDjcDjcDjcDjcDjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaFvaaeaaeaaeaaeaaeaaabYwbYwbYwbYwbYwbYwbYwbYwbYwbYwbYwbZlcpWbYwcqucpKcLscLrbWKctvdRLdAPdARctjdNadNbdMZcoCdMXdMWdMWdMWdMYcoCdNcdEKdEMcnRdENcnNcNBcpbdOfcmScmScmSdBtcmTcmTcmTcOAdAdcqGdNodOVdOddOecEPcEQdOmdOndNrbJDdOndNvdNwdoBdovcqQdovdovdovdNudOjdOhdOidNtaaeaaeaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaeaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaecYFdpecYFaaeaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacDjcDjcDjcDjcDjcDjcDjcDjcDjcDjcDjcDjcDjcDjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaFvaaeaaeaaeaaeaaeaaabYwbYwbYwbYwbYwbYwbYwbYwbYwbYwbYwbZlcpWbYwcqucpKcLscLrbWKctvdRLdAPdARctjdNadNbdMZcoCdMXdMWdMWdMWdMYcoCdNcdEKdEMcnRdENcnNcNBcpbdOfcmScmScmSdBtcmTcmTcmTcOAdAdcqGdNodOVdOddOecEPcnVcnTdOndNrbJDdOndNvdNwdoBdovcqQdovdovdovdNudOjdOhdOidNtaaeaaeaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaeaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaecYFdpecYFaaeaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacDjcDjcDjcDjcDjcDjcDjcDjcDjcDjcDjcDjcDjcDjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaeaaaaaaaaaaaeaaeaaaaaaaaaaaeaaaaaabYwbQLdECcshcLPcJYcpDcpCcpzcpydRKdEFdEGctjcKjdAmcJUcoCdNYdNCdNBdMQdMTcoCdMVcKOcKOcxJdMUbTScLkcjcdNEdNfdRJdNGdNhdBAcLvcLYckUbTXcrEcrFbUpdNIdNMdLhdNJdNJdMfdMydMRdMSdLpdLRdOMdOTdNQdNRdNSdLodNOdNOdNOdNPdOgaaeaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaeaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaecYQcYFdsCcYFcYQaaeaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacDjcDjcDjcDjcDjcDjcDjcDjcDjcDjcDjcDjcDjcDjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaeaaaaaaaaaaaaaaeaaaaaaaaaaaeaaaaaabYwbZhdKabYwcuecqqdCIcOccsbcrDdRocrBdMkctjctjcryctjcoCcoCcoCcoCcoCcoCcoCdATcxJcxJcnpcrmcrncnqcjcckUckUckUcOAdBGckUckUckUckUcrpcjecqldHBdssdptdsgdshdspcBCcBFdsedsfcLmcOecKJdsrdtidtkdoPdsEdtJdufdoVdpcduiaaeaaeaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaecsGcszcsFcsHcsKcszcsGaaeaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacDjcDjcDjcDjcDjcDjcDjcDjcDjcDjcDjcDjcDjcDjcDjcDjcDjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaecwucwucwucyJcwucwucwuaaaaaeaaaaaaaaaaaeaaaaaabYwcizcpWbYwbSxdnEcqqdMicqIctvdmVdnddnDctvdmJcrdcqXckOclIclKclIdMjclIcwBclKcwAckOclPbYMbTSbRFdJWcjSdnJdRncvbdBEdJUdQydERcvJcqUbSTcqDdHAcAecAecBlcAbcAccxlcxBcxNcyycyCczHdoBdpvdpwdpxdHAdpydqGdrbdovdrxdovajGaaeaaaaaaaaeaaaaaaaaeaaeaaeaaaaaaaaaaaaaaaaaeaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaeaaecrScrTcrVcrWcrWcrWcstcrScrTaaeaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa From eedf8aaf7c9e26b0b612b63254cc55c6e35dfb9f Mon Sep 17 00:00:00 2001 From: Miauw Date: Tue, 4 Nov 2014 19:11:23 +0100 Subject: [PATCH 030/102] Spookoween should be mucho bettero now --- code/modules/holiday/halloween.dm | 61 +++++++++++++++---------------- 1 file changed, 29 insertions(+), 32 deletions(-) diff --git a/code/modules/holiday/halloween.dm b/code/modules/holiday/halloween.dm index b60be9cb79e..8850b6e3f4d 100644 --- a/code/modules/holiday/halloween.dm +++ b/code/modules/holiday/halloween.dm @@ -10,23 +10,23 @@ if (prob (49)) M.show_message("You hear muffled speech... but nothing is there...", 2) if(prob(20)) - playsound(src.loc, pick('sound/effects/ghost.ogg','sound/effects/ghost2.ogg'), 10, 1) + playsound(loc, pick('sound/effects/ghost.ogg','sound/effects/ghost2.ogg'), 10, 1) else M.show_message("You hear muffled speech... you can almost make out some words...", 2) // M.show_message("[stutter(message)]", 2) if(prob(30)) - playsound(src.loc, pick('sound/effects/ghost.ogg','sound/effects/ghost2.ogg'), 10, 1) + playsound(loc, pick('sound/effects/ghost.ogg','sound/effects/ghost2.ogg'), 10, 1) else if(prob(50)) return else if(prob (95)) M.show_message("You hear muffled speech... but nothing is there...", 2) if(prob(20)) - playsound(src.loc, pick('sound/effects/ghost.ogg','sound/effects/ghost2.ogg'), 10, 1) + playsound(loc, pick('sound/effects/ghost.ogg','sound/effects/ghost2.ogg'), 10, 1) else M.show_message("You hear muffled speech... you can almost make out some words...", 2) // M.show_message("[stutter(message)]", 2) - playsound(src.loc, pick('sound/effects/ghost.ogg','sound/effects/ghost2.ogg'), 10, 1)*/ + playsound(loc, pick('sound/effects/ghost.ogg','sound/effects/ghost2.ogg'), 10, 1)*/ /////////////////////////////////////// @@ -101,36 +101,35 @@ return else if(trapped == SPOOKY_SKELETON) - src.visible_message("BOO!"); + visible_message("BOO!") playsound(loc, pick('sound/effects/xylophone1.ogg','sound/effects/xylophone2.ogg','sound/effects/xylophone3.ogg','sound/spookoween/girlscream.ogg'), 300, 1) trapped = 0 - spawn(60) + spawn(90) if(trapped_mob && trapped_mob.loc) var/datum/effect/effect/system/harmless_smoke_spread/smoke = new() - smoke.set_up(1,0, trapped_mob.loc, 0) + smoke.set_up(1, 0, trapped_mob.loc, 0) smoke.start() qdel(trapped_mob) else if(trapped == HOWLING_GHOST) - src.visible_message("Woo Woo"); - playsound(src.loc, 'sound/spookoween/ghosty_wind.ogg', 300, 1) - new /mob/living/simple_animal/shade/howling_ghost (loc) + visible_message("[pick("OooOOooooOOOoOoOOooooOOOOO", "BooOOooOooooOOOO", "BOO!", "WoOOoOoooOooo")]") + playsound(loc, 'sound/spookoween/ghosty_wind.ogg', 300, 1) + new /mob/living/simple_animal/shade/howling_ghost(loc) trapped = 0 else if(trapped == SCARY_BATS) - src.visible_message("Protect your hair!!!"); - playsound(src.loc, 'sound/spookoween/bats.ogg', 300, 1) - var/number = rand(2,5) + visible_message("Protect your hair!") + playsound(loc, 'sound/spookoween/bats.ogg', 300, 1) + var/number = rand(1,3) for(var/i=0,i < number,i++) - new /mob/living/simple_animal/hostile/retaliate/bat (loc) + new /mob/living/simple_animal/hostile/retaliate/bat(loc) trapped = 0 else if(trapped == ANGRY_FAITHLESS) - src.visible_message("The closet bursts open!"); - src.visible_message("THIS BEING RADIATES PURE EVIL! YOU BETTER RUN!!!"); - playsound(src.loc, 'sound/hallucinations/wail.ogg', 300, 1) - var/mob/living/simple_animal/hostile/faithless/F = new (loc) - F.health = 1e5 + visible_message("The closet bursts open!") + visible_message("THIS BEING RADIATES PURE EVIL! YOU BETTER RUN!!!") + playsound(loc, 'sound/hallucinations/wail.ogg', 300, 1) + var/mob/living/simple_animal/hostile/faithless/F = new(loc) F.stance = HOSTILE_STANCE_ATTACK F.GiveTarget(usr) trapped = 0 @@ -142,18 +141,18 @@ qdel(F) else if(trapped == INSANE_CLOWN) - src.visible_message("..."); - playsound(src.loc, 'sound/spookoween/scary_clown_appear.ogg', 300, 1) + visible_message("...") + playsound(loc, 'sound/spookoween/scary_clown_appear.ogg', 300, 1) var/mob/living/simple_animal/hostile/retaliate/clown/insane/IC = new (loc) IC.GiveTarget(usr) trapped = 0 //don't spawn in crates /obj/structure/closet/crate/trigger_spooky_trap() - return 0 + return /obj/structure/closet/crate/set_spooky_trap() - return 0 + return //////////////////// @@ -184,8 +183,9 @@ /mob/living/simple_animal/shade/howling_ghost/Life() ..() timer-- - if(timer == 0) + if(prob(20)) roam() + if(timer == 0) spooky_ghosty() timer = rand(1,15) @@ -200,7 +200,7 @@ /mob/living/simple_animal/shade/howling_ghost/proc/spooky_ghosty() if(prob(20)) //haunt - playsound(src.loc, pick('sound/spookoween/ghosty_wind.ogg','sound/spookoween/ghost_whisper.ogg','sound/spookoween/chain_rattling.ogg'), 300, 1) + playsound(loc, pick('sound/spookoween/ghosty_wind.ogg','sound/spookoween/ghost_whisper.ogg','sound/spookoween/chain_rattling.ogg'), 300, 1) if(prob(10)) //flickers var/obj/machinery/light/L = locate(/obj/machinery/light) in view(5, src) if(L) @@ -224,7 +224,7 @@ /////////////////////////// /mob/living/simple_animal/hostile/retaliate/clown/insane - name = "Insane Clown" + name = "insane clown" desc = "Some clowns do not manage to be accepted, and go insane. This is one of them." icon_state = "scary_clown" icon_living = "scary_clown" @@ -267,7 +267,6 @@ playsound(M.loc, pick('sound/spookoween/scary_horn.ogg','sound/spookoween/scary_horn2.ogg', 'sound/spookoween/scary_horn3.ogg'), 300, 1) spawn(12) loc = M.loc - return /mob/living/simple_animal/hostile/retaliate/clown/insane/MoveToTarget() return @@ -277,17 +276,15 @@ /mob/living/simple_animal/hostile/retaliate/clown/insane/adjustBruteLoss() if(prob(5)) - playsound(src.loc, 'sound/spookoween/insane_low_laugh.ogg', 300, 1) - return + playsound(loc, 'sound/spookoween/insane_low_laugh.ogg', 300, 1) /mob/living/simple_animal/hostile/retaliate/clown/insane/attackby(var/obj/item/O as obj, var/mob/user as mob) if(istype(O,/obj/item/weapon/nullrod)) if(prob(5)) visible_message("[src] finally found the peace it deserves. You hear honks echoing off into the distance.") - playsound(src.loc, 'sound/spookoween/insane_low_laugh.ogg', 300, 1) + playsound(loc, 'sound/spookoween/insane_low_laugh.ogg', 300, 1) qdel(src) else - visible_message("It seems to be resisting the effect!") + visible_message("[src] seems to be resisting the effect!") else ..() - From ae246c4535cbd4e760114ec9d219e83942128abd Mon Sep 17 00:00:00 2001 From: WJohn Date: Tue, 4 Nov 2014 13:47:09 -0500 Subject: [PATCH 031/102] Fixes various errors encountered through playtesting and adds a few camera networks. --- _maps/RandomZLevels/moonoutpost19.dmm | 51 ++++++++++++++------------- 1 file changed, 26 insertions(+), 25 deletions(-) diff --git a/_maps/RandomZLevels/moonoutpost19.dmm b/_maps/RandomZLevels/moonoutpost19.dmm index b9a24574087..2aa1cce85d6 100644 --- a/_maps/RandomZLevels/moonoutpost19.dmm +++ b/_maps/RandomZLevels/moonoutpost19.dmm @@ -141,8 +141,8 @@ "cK" = (/obj/structure/cable,/obj/machinery/power/apc{cell_type = 15000; dir = 2; locked = 1; name = "Worn-out APC"; pixel_x = 0; pixel_y = -25; req_access = "150"; start_charge = 0},/turf/simulated/floor{carbon_dioxide = 48.7; heat_capacity = 1e+006; icon_state = "red"; nitrogen = 13.2; oxygen = 32.4; temperature = 251},/area/awaycontent/a4{name = "Syndicate Outpost"}) "cL" = (/obj/structure/alien/weeds{icon_state = "weeds2"},/turf/simulated/floor{carbon_dioxide = 48.7; dir = 6; heat_capacity = 1e+006; icon_state = "red"; nitrogen = 13.2; oxygen = 32.4; temperature = 251},/area/awaycontent/a4{name = "Syndicate Outpost"}) "cM" = (/obj/item/weapon/storage/box/lights/mixed,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plating{dir = 10; heat_capacity = 1e+006; icon_state = "warnplate"; tag = "icon-warnplate (SOUTHWEST)"},/area/awaycontent/a4{name = "Syndicate Outpost"}) -"cN" = (/obj/structure/cable,/obj/machinery/power/port_gen/pacman{desc = "A portable generator for emergency backup power. This one looks old and the knobs are rusted shut."; name = "Broken-down P.A.C.M.A.N.-type portable generator"},/turf/simulated/floor/plating{dir = 2; heat_capacity = 1e+006; icon_state = "warnplate"},/area/awaycontent/a4{name = "Syndicate Outpost"}) -"cO" = (/obj/structure/cable,/obj/effect/decal/cleanable/dirt,/obj/machinery/power/port_gen/pacman/super{desc = "A portable generator for emergency backup power. This one looks old and the knobs are rusted shut."; name = "Broken-down S.U.P.E.R.P.A.C.M.A.N.-type portable generator"},/turf/simulated/floor/plating{dir = 2; heat_capacity = 1e+006; icon_state = "warnplate"},/area/awaycontent/a4{name = "Syndicate Outpost"}) +"cN" = (/obj/structure/cable,/obj/effect/decal/cleanable/dirt,/obj/machinery/power/port_gen/pacman/super{desc = "A portable generator for emergency backup power."; name = "S.U.P.E.R.P.A.C.M.A.N.-type portable generator"},/turf/simulated/floor/plating{dir = 2; heat_capacity = 1e+006; icon_state = "warnplate"},/area/awaycontent/a4{name = "Syndicate Outpost"}) +"cO" = (/obj/structure/cable,/obj/machinery/power/port_gen/pacman{desc = "A portable generator for emergency backup power."; name = "P.A.C.M.A.N.-type portable generator"},/turf/simulated/floor/plating{dir = 2; heat_capacity = 1e+006; icon_state = "warnplate"},/area/awaycontent/a4{name = "Syndicate Outpost"}) "cP" = (/obj/machinery/portable_atmospherics/scrubber,/turf/simulated/floor/plating{dir = 6; heat_capacity = 1e+006; icon_state = "warnplate"; tag = "icon-warnplate (SOUTHEAST)"},/area/awaycontent/a4{name = "Syndicate Outpost"}) "cQ" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating{heat_capacity = 1e+006},/area/awaycontent/a4{name = "Syndicate Outpost"}) "cR" = (/obj/machinery/conveyor_switch/oneway{id = "awaysyndie"; layer = 3.1; name = "mining conveyor"},/turf/simulated/floor{carbon_dioxide = 48.7; dir = 8; heat_capacity = 1e+006; icon_state = "warning"; nitrogen = 13.2; oxygen = 32.4; temperature = 251},/area/awaycontent/a4{name = "Syndicate Outpost"}) @@ -215,7 +215,7 @@ "eg" = (/obj/structure/alien/weeds{icon_state = "weeds2"},/obj/structure/stool/bed/nest,/obj/effect/decal/cleanable/blood/gibs,/turf/simulated/floor/engine,/area/awaycontent/a2{name = "MO19 Research"}) "eh" = (/obj/structure/alien/weeds{icon_state = "weeds1"},/obj/effect/decal/cleanable/blood/gibs,/turf/simulated/floor/engine,/area/awaycontent/a2{name = "MO19 Research"}) "ei" = (/obj/structure/alien/weeds,/turf/simulated/floor/engine,/area/awaycontent/a2{name = "MO19 Research"}) -"ej" = (/obj/machinery/light{active_power_usage = 0; dir = 1; icon_state = "tube-broken"; status = 2},/obj/structure/alien/weeds,/obj/structure/alien/weeds{desc = "A large mottled egg."; health = 100; icon_state = "egg_hatched"; name = "egg"},/turf/simulated/floor/engine,/area/awaycontent/a2{name = "MO19 Research"}) +"ej" = (/obj/machinery/light{active_power_usage = 0; dir = 1; icon_state = "tube-broken"; status = 2},/obj/structure/alien/weeds,/obj/structure/alien/weeds{desc = "A large mottled egg."; health = 100; icon_state = "egg_hatched"; name = "egg"},/obj/machinery/camera{c_tag = "Xenobiology Containment North"; network = list("MO19X")},/turf/simulated/floor/engine,/area/awaycontent/a2{name = "MO19 Research"}) "ek" = (/obj/machinery/sparker{desc = "A wall-mounted ignition device. This one has been applied with an acid-proof coating."; id = "awayxenobio"; name = "Acid-Proof mounted igniter"; pixel_x = 0; pixel_y = 25; unacidable = 1},/obj/structure/alien/weeds{icon_state = "weeds1"},/obj/structure/alien/resin/wall,/turf/simulated/floor/engine,/area/awaycontent/a2{name = "MO19 Research"}) "el" = (/obj/structure/alien/weeds,/obj/structure/alien/resin/wall,/turf/simulated/floor/engine,/area/awaycontent/a2{name = "MO19 Research"}) "em" = (/obj/structure/alien/weeds,/obj/structure/stool/bed/nest,/obj/effect/decal/cleanable/blood/gibs,/obj/item/clothing/mask/facehugger{icon_state = "facehugger_impregnated"; item_state = "facehugger_impregnated"; stat = 2},/turf/simulated/floor/engine,/area/awaycontent/a2{name = "MO19 Research"}) @@ -225,7 +225,7 @@ "eq" = (/obj/machinery/light/small{active_power_usage = 0; dir = 4; icon_state = "bulb-broken"; status = 2},/turf/simulated/floor{dir = 8; heat_capacity = 1e+006; icon_state = "floorgrime"; tag = "icon-floorgrime (WEST)"},/area/awaycontent/a2{name = "MO19 Research"}) "er" = (/obj/machinery/atmospherics/portables_connector{dir = 4},/obj/machinery/portable_atmospherics/canister,/obj/structure/alien/weeds{icon_state = "weeds1"},/turf/simulated/floor{heat_capacity = 1e+006},/area/awaycontent/a2{name = "MO19 Research"}) "es" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = ""},/obj/machinery/atmospherics/pipe/manifold{dir = 4; icon_state = "manifold"; level = 2},/turf/simulated/floor{icon_state = "white"},/area/awaycontent/a2{name = "MO19 Research"}) -"et" = (/obj/structure/table/reinforced,/obj/item/weapon/paper_bin{pixel_x = 1; pixel_y = 9},/obj/item/weapon/pen,/obj/structure/alien/weeds,/turf/simulated/floor{dir = 8; heat_capacity = 1e+006; icon_state = "warning"},/area/awaycontent/a2{name = "MO19 Research"}) +"et" = (/obj/structure/table/reinforced,/obj/structure/alien/weeds,/obj/machinery/computer/security/telescreen{desc = "Used for watching the contents of the xenobiology containment pen."; dir = 8; name = "\improper Xenobiology Monitor"; network = list("MO19X")},/turf/simulated/floor{dir = 8; heat_capacity = 1e+006; icon_state = "warning"},/area/awaycontent/a2{name = "MO19 Research"}) "eu" = (/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/machinery/door/poddoor/preopen{desc = "A heavy duty blast door that opens mechanically. This one has been applied with an acid-proof coating."; id = "Awaylab"; name = "Acid-Proof containment chamber blast door"; unacidable = 1},/obj/structure/cable,/obj/structure/grille,/obj/structure/window/reinforced{dir = 4; layer = 2.9},/turf/simulated/floor/plating{heat_capacity = 1e+006},/area/awaycontent/a2{name = "MO19 Research"}) "ev" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'HIGH VOLTAGE'"; icon_state = "shock"; name = "HIGH VOLTAGE"},/turf/simulated/wall/r_wall,/area/awaycontent/a2{name = "MO19 Research"}) "ew" = (/obj/structure/alien/weeds/node,/turf/simulated/floor/engine,/area/awaycontent/a2{name = "MO19 Research"}) @@ -239,15 +239,15 @@ "eE" = (/turf/simulated/wall/rust,/area/awaycontent/a2{name = "MO19 Research"}) "eF" = (/turf/simulated/floor{dir = 2; heat_capacity = 1e+006; icon_state = "whitehall"},/area/awaycontent/a2{name = "MO19 Research"}) "eG" = (/obj/structure/alien/weeds{icon_state = "weeds2"},/turf/simulated/floor{dir = 2; heat_capacity = 1e+006; icon_state = "whitehall"},/area/awaycontent/a2{name = "MO19 Research"}) -"eH" = (/obj/machinery/light/small{active_power_usage = 0; dir = 8; icon_state = "bulb-broken"; status = 2},/turf/simulated/floor{dir = 6; heat_capacity = 1e+006; icon_state = "whitehall"},/area/awaycontent/a2{name = "MO19 Research"}) +"eH" = (/obj/machinery/light/small{active_power_usage = 0; dir = 8; icon_state = "bulb-broken"; status = 2},/obj/machinery/camera{c_tag = "Xenobiology"; dir = 4; network = list("MO19","MO19R")},/turf/simulated/floor{dir = 6; heat_capacity = 1e+006; icon_state = "whitehall"},/area/awaycontent/a2{name = "MO19 Research"}) "eI" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = ""},/obj/machinery/atmospherics/pipe/simple/general/visible,/obj/structure/stool/bed/chair/office/light{dir = 4},/turf/simulated/floor{icon_state = "white"},/area/awaycontent/a2{name = "MO19 Research"}) "eJ" = (/obj/structure/table/reinforced,/obj/machinery/door_control{id = "Awaylab"; name = "Containment Chamber Blast Doors"; pixel_x = 4; pixel_y = -2; req_access_txt = "201"},/obj/machinery/ignition_switch{id = "awayxenobio"; pixel_x = 4; pixel_y = 8},/obj/structure/alien/weeds{icon_state = "weeds2"},/turf/simulated/floor{dir = 8; heat_capacity = 1e+006; icon_state = "warning"},/area/awaycontent/a2{name = "MO19 Research"}) "eK" = (/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/poddoor/preopen{desc = "A heavy duty blast door that opens mechanically. This one has been applied with an acid-proof coating."; id = "Awaylab"; name = "Acid-Proof containment chamber blast door"; unacidable = 1},/obj/structure/cable,/obj/structure/grille,/obj/structure/window/reinforced{dir = 4; layer = 2.9},/turf/simulated/floor/plating{heat_capacity = 1e+006},/area/awaycontent/a2{name = "MO19 Research"}) "eL" = (/obj/structure/alien/weeds{icon_state = "weeds1"},/obj/structure/alien/weeds{desc = "A large mottled egg."; health = 100; icon_state = "egg_hatched"; name = "egg"},/turf/simulated/floor/engine,/area/awaycontent/a2{name = "MO19 Research"}) "eM" = (/obj/structure/alien/weeds{icon_state = "weeds1"},/obj/effect/decal/cleanable/blood,/turf/simulated/floor/engine,/area/awaycontent/a2{name = "MO19 Research"}) "eN" = (/obj/structure/alien/weeds{icon_state = "weeds1"},/turf/simulated/floor/engine,/area/awaycontent/a2{name = "MO19 Research"}) -"eO" = (/obj/machinery/power/port_gen/pacman{desc = "A portable generator for emergency backup power. This one looks old and the knobs are rusted shut."; name = "Broken-down P.A.C.M.A.N.-type portable generator"},/obj/structure/cable{icon_state = "0-2"; d2 = 2},/turf/simulated/floor/plating{heat_capacity = 1e+006},/area/awaycontent/a2{name = "MO19 Research"}) -"eP" = (/obj/machinery/power/port_gen/pacman/super{desc = "A portable generator for emergency backup power. This one looks old and the knobs are rusted shut."; name = "Broken-down S.U.P.E.R.P.A.C.M.A.N.-type portable generator"},/obj/structure/cable{icon_state = "0-2"; d2 = 2},/turf/simulated/floor/plating{broken = 1; heat_capacity = 1e+006; icon_state = "platingdmg2"; tag = "icon-platingdmg2"},/area/awaycontent/a2{name = "MO19 Research"}) +"eO" = (/obj/machinery/power/port_gen/pacman{desc = "A portable generator for emergency backup power."; name = "P.A.C.M.A.N.-type portable generator"},/obj/structure/cable{icon_state = "0-2"; d2 = 2},/turf/simulated/floor/plating{heat_capacity = 1e+006},/area/awaycontent/a2{name = "MO19 Research"}) +"eP" = (/obj/machinery/power/port_gen/pacman/super{desc = "A portable generator for emergency backup power."; name = "S.U.P.E.R.P.A.C.M.A.N.-type portable generator"},/obj/structure/cable{icon_state = "0-2"; d2 = 2},/turf/simulated/floor/plating{broken = 1; heat_capacity = 1e+006; icon_state = "platingdmg2"; tag = "icon-platingdmg2"},/area/awaycontent/a2{name = "MO19 Research"}) "eQ" = (/obj/machinery/space_heater,/obj/machinery/light/small{dir = 1},/obj/structure/sign/poster{icon_state = "poster5_legit"; pixel_x = 0; pixel_y = 32; serial_number = 21; subtype = 1},/turf/simulated/floor/plating{heat_capacity = 1e+006},/area/awaycontent/a2{name = "MO19 Research"}) "eR" = (/obj/machinery/power/terminal{dir = 4},/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/machinery/alarm{frequency = 1439; locked = 0; pixel_y = 23; req_access = null},/turf/simulated/floor/plating{heat_capacity = 1e+006},/area/awaycontent/a2{name = "MO19 Research"}) "eS" = (/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/machinery/power/smes{charge = 1.5e+006; input_level = 10000; inputting = 0; output_level = 15000; outputting = 1},/turf/simulated/floor/plating{heat_capacity = 1e+006},/area/awaycontent/a2{name = "MO19 Research"}) @@ -290,7 +290,7 @@ "fD" = (/obj/machinery/atmospherics/pipe/simple/general/visible{desc = "A one meter section of pipe. This one has been applied with an acid-proof coating."; dir = 4; name = "Acid-Proof Pipe"; unacidable = 1},/obj/structure/alien/weeds{icon_state = "weeds1"},/obj/structure/alien/resin/wall,/turf/simulated/floor/engine,/area/awaycontent/a2{name = "MO19 Research"}) "fE" = (/obj/machinery/atmospherics/pipe/simple/general/visible{desc = "A one meter section of pipe. This one has been applied with an acid-proof coating."; dir = 4; name = "Acid-Proof Pipe"; unacidable = 1},/obj/structure/alien/weeds,/obj/structure/alien/resin/wall,/turf/simulated/floor/engine,/area/awaycontent/a2{name = "MO19 Research"}) "fF" = (/obj/machinery/atmospherics/unary/outlet_injector{desc = "Has a valve and pump attached to it. This one has been applied with an acid-proof coating."; dir = 8; icon_state = "on"; name = "Acid-Proof Air Injector"; on = 1; unacidable = 1},/obj/structure/alien/weeds,/turf/simulated/floor/engine,/area/awaycontent/a2{name = "MO19 Research"}) -"fG" = (/obj/machinery/light{active_power_usage = 0; dir = 4; icon_state = "tube-broken"; status = 2},/obj/structure/alien/weeds{icon_state = "weeds2"},/turf/simulated/floor/engine,/area/awaycontent/a2{name = "MO19 Research"}) +"fG" = (/obj/machinery/light{active_power_usage = 0; dir = 4; icon_state = "tube-broken"; status = 2},/obj/structure/alien/weeds{icon_state = "weeds2"},/obj/machinery/camera{c_tag = "Xenobiology Containment East"; dir = 8; network = list("MO19X")},/turf/simulated/floor/engine,/area/awaycontent/a2{name = "MO19 Research"}) "fH" = (/obj/machinery/portable_atmospherics/scrubber,/turf/simulated/floor/plating{heat_capacity = 1e+006},/area/awaycontent/a2{name = "MO19 Research"}) "fI" = (/obj/item/weapon/cigbutt,/turf/simulated/floor/plating{heat_capacity = 1e+006},/area/awaycontent/a2{name = "MO19 Research"}) "fJ" = (/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plating{heat_capacity = 1e+006},/area/awaycontent/a2{name = "MO19 Research"}) @@ -342,7 +342,7 @@ "gD" = (/obj/structure/table,/obj/item/weapon/retractor,/obj/item/weapon/hemostat,/obj/structure/alien/weeds,/turf/simulated/floor{icon_state = "white"},/area/awaycontent/a2{name = "MO19 Research"}) "gE" = (/obj/structure/table,/obj/item/weapon/surgical_drapes,/obj/machinery/light/small{active_power_usage = 0; dir = 4; icon_state = "bulb-broken"; status = 2},/obj/structure/alien/weeds{icon_state = "weeds1"},/turf/simulated/floor{icon_state = "white"},/area/awaycontent/a2{name = "MO19 Research"}) "gF" = (/obj/structure/filingcabinet/filingcabinet,/obj/machinery/light/small{active_power_usage = 0; dir = 8; icon_state = "bulb-broken"; status = 2},/obj/item/weapon/paper{info = "Researcher: Dr. Sakuma Sano
    Date: 04/06/2554

    Report:
    As expected, all that is left of the monkeys we sent in earlier is a group of xenomorph larvae. It is quite clear that the facehuggers are not selective in their hosts, and so far the gestation process has been shown to have a 100% success rate.

    The larvae themselves have been behaving very differently from the lone larva we first observed, and despite shying away from humans they are clearly comfortable with others of their kind. Our previous suspicions on larvae have been confirmed with their demonstration of playfulness: they are not nearly as aggressive or violent when young, before molting to adulthood.

    The majority of the play we observed involved a sort of hide-and-seek, and occasionally wrestling by tangling themselves and struggling out of it. While normally we would write these off as instinctual play for honing their skills when they molt, their growth period is so incredibly fast and they are still such adept killers that it would serve no practical purpose. The only explanation for this is perhaps to create bonds and friendships with each other, if that is even possible for such an incredibly hostile race. It may be that they are much more reasonable with each other than other life forms.

    It had become clear that now was the best time to extract a xenomorph for dissecting, as these were all still larvae and the queen was still attached to its ovipositor and would be immobile. With the approval of the research director, we sent in our medical robot that had been dubbed 'Head Surgeon' into the containment pen, dropping the shields for only a fraction of a second to allow it entry. The larvae were cautious, but the curiosity of one had him within grabbing range of our robot. It was brought out and quickly euthanized through lethal injection, courtesy of our mechanical doctor."; name = "Larva Xenomorph Social Interactions & Capturing Procedure"},/obj/item/weapon/paper{info = "Researcher: Dr. Sakuma Sano
    Date: 04/06/2554

    Report:
    I have studied many interesting and diverse life-forms as a xenobiologist ranging from creatures as large as cows, to specimens too small see with the naked eye. This is by far the largest alien I have ever seen. The alien we were previously studying has molted and has become an absolutely enormous creature. Standing at over 15 feet tall and weighing in at likely two tons or more, the xenomorph queen is an absolutely breathtakingly large and cruel monster. Its behavior has changed drastically from when it was a drone, having become far more comfortable with sitting and staring at us, rather than smashing at the windows.

    The queen, physiologically speaking, is fairly similar to the other xenomorphs, with a few key differences. Its enormous size demands large legs, while the back seems to be always hunched forward. The dorsal tubes on the back have changed to several large spikes, and we observed the alien now sports a second pair of smaller arms on its chest. The purpose of these secondary arms is still unknown. Finally, the queen's crown has become incredibly large, with what seems to be a retractable slot to hide its head in. The dome appears to be extremely thick near the front, and will likely be able to resist a lot of trauma. Despite the enormous size it has grown to, it is not that much slower than it used to be.

    After two hours of doing relatively nothing but staring, the queen began to produce an unusually large amount of resin and weeds, quickly shaping up a large nest that it then hid behind. It then proceeded to smash out all the lights, leaving us with very little to see with our cameras. When we looked through the back cameras, we had discovered that it had grown a large ovipositor, and was releasing large eggs onto the ground. This had us all in agreement that this stage of the life cycle was the queen.

    Over the next few hours, the eggs grew to their full sizes, and we provided the subject with new monkey hosts. When they approached the eggs, they opened to release more facehuggers. It seems that we have observed the full cycle of reproduction for this species. We can expect more larvae in the next few hours."; name = "Queen Xenomorph Physiology & Behavior Observation"},/obj/item/weapon/paper{info = "Researcher: Dr. Sakuma Sano
    Date: 03/06/2554

    Report:
    The other scientists and I can hardly believe our eyes. The snake-like larva has molted into a 7 foot tall insectoid nightmare in just a few hours. It's obvious now as to why such heavy duty containment was needed. It immediately tried to escape however by flinging itself at the window in a flurry of swipes and stabs. It seems its behavior has returned to a state that is very similar to the facehugger, though I doubt with the same intent! Thankfully, our glass and shields have shown to be more than sturdy enough for such a violent creature, and so far, any attempts at the creature escaping have been in vain.

    As for its physiology, the creature has an elongated head with what appears to be have an exoskeleton resembling an external rib-cage on the torso. The alien is also fairly skinny with a lean body. The little amount of meat on the alien appears to be entirely muscle. We assume this makes it deceptively strong, while remaining agile at the same time. One of the most interesting things we have seen is its pharyngeal jaw. It has some what of an inner mouth capable of being fired externally at extremely high speeds. It has already caused many dents in the walls and a few small cracks in the window with it. The alien also has a couple of dorsal tubes on its back, their purpose unknown. Finally, this monster sports a long ridged tail, complete with a large and extremely sharp blade at the tip.

    Normally I would be absolutely terrified of something like this, but I'm putting my trust in Nanotrasen with the containment. After all, they wouldn't build a cell that could fail to contain its subject, would they?"; name = "Adult Xenomorph Physiology & Behavior Observation"},/obj/item/weapon/paper{info = "Researcher: Dr. Sakuma Sano
    Date: 03/06/2554

    Report:
    When the larva first emerged from the chest of the monkey, it seemed very curious. It would wander around aimlessly for awhile and then sit still. We are unable to determine the gender of the larva, or even determine if it has a gender. After some time had passed, it seemed to lose interest in its surroundings and sat mostly still while occasionally wagging its tail. We decided to throw in a live mouse to see if it would consume it. The larva quickly attacked and ate the mouse and seemed to get larger very suddenly, this suggests that the larvae are capable of metabolizing and directing all the energy towards growth at previously thought impossible speeds. It is a shame that we cannot observe the process more closely, as we do not currently know how dangerous or violent this creature is or will become as it matures fully.

    It is tempting to imagine the possibilities of utilizing such a mechanism. The capability of skipping years of growth time for children, repairing bodily damage in a matter of moments, even its usage in existing cloning technology."; name = "Larva Xenomorph Physiology & Behavior Observation"},/obj/item/weapon/paper{info = "Researcher: Dr. Sakuma Sano
    Date: 03/06/2554

    Report:
    The test subject we were provided with truly is alien. It is a small spider-like creature with bony legs leading to a smooth body. It has a long tail connected to it, and it has shown extremely aggressive behavior by flinging its entire body at the glass and shields to no avail. While doing so, we noticed there was a small pink hole in the middle of the body.

    When we sent in a monkey through the crude but effective disposal tube, the alien immediately jumped at its face and latched on. The monkey was quickly suffocated by its constricting tail, unable to pry off the fingers. The monkey at first seemed to be dead, but was observed to be breathing. The recently named alien 'facehugger' fell off dead and curled its legs up like a spider moments after it had finished with the monkey's body.

    While the monkey appeared to be unharmed, we kept it in the cell for a couple more hours until we were horrified to discover it screaming out in pain as a snake-like creature erupted from the monkey's chest! It appears that the 'facehugger' is only the start of this life cycle. The impregnation cycle involving the creatures growing inside the chests of their hosts seems to only be the beginning."; name = "'Facehugger' Xenomorph Physiology & Behavior Observation"},/obj/structure/alien/weeds{icon_state = "weeds1"},/turf/simulated/floor{icon_state = "white"},/area/awaycontent/a2{name = "MO19 Research"}) -"gG" = (/obj/structure/table/reinforced,/obj/item/device/radio/off,/obj/structure/alien/weeds{icon_state = "weeds1"},/turf/simulated/floor{dir = 8; heat_capacity = 1e+006; icon_state = "warning"},/area/awaycontent/a2{name = "MO19 Research"}) +"gG" = (/obj/structure/table/reinforced,/obj/structure/alien/weeds{icon_state = "weeds1"},/obj/item/weapon/paper_bin{pixel_x = 1; pixel_y = 9},/obj/item/weapon/pen,/obj/item/device/radio/off,/turf/simulated/floor{dir = 8; heat_capacity = 1e+006; icon_state = "warning"},/area/awaycontent/a2{name = "MO19 Research"}) "gH" = (/obj/structure/cable,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/obj/machinery/door/poddoor/preopen{desc = "A heavy duty blast door that opens mechanically. This one has been applied with an acid-proof coating."; id = "Awaylab"; name = "Acid-Proof containment chamber blast door"; unacidable = 1},/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/structure/grille,/obj/structure/window/reinforced{dir = 4; layer = 2.9},/turf/simulated/floor/plating{heat_capacity = 1e+006},/area/awaycontent/a2{name = "MO19 Research"}) "gI" = (/obj/structure/disposalpipe/segment{desc = "An underfloor disposal pipe. This one has been applied with an acid-proof coating."; name = "Acid-Proof disposal pipe"; unacidable = 1},/obj/structure/alien/weeds{icon_state = "weeds1"},/turf/simulated/floor/engine,/area/awaycontent/a2{name = "MO19 Research"}) "gJ" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = ""},/obj/item/stack/rods,/turf/simulated/floor/plating{broken = 1; heat_capacity = 1e+006; icon_state = "platingdmg3"; tag = "icon-platingdmg3"},/area/awaycontent/a2{name = "MO19 Research"}) @@ -360,7 +360,7 @@ "gV" = (/obj/effect/decal/cleanable/dirt,/obj/structure/alien/weeds{icon_state = "weeds2"},/turf/simulated/floor{dir = 8; heat_capacity = 1e+006; icon_state = "warning"},/area/awaycontent/a2{name = "MO19 Research"}) "gW" = (/obj/machinery/shieldwallgen{locked = 0; req_access = null},/obj/structure/cable,/turf/simulated/floor/plating{heat_capacity = 1e+006},/area/awaycontent/a2{name = "MO19 Research"}) "gX" = (/obj/structure/disposaloutlet{desc = "An outlet for the pneumatic disposal system. This one has been applied with an acid-proof coating."; dir = 1; name = "Acid-Proof disposal outlet"; unacidable = 1},/obj/structure/disposalpipe/trunk{desc = "An underfloor disposal pipe. This one has been applied with an acid-proof coating."; dir = 1; name = "Acid-Proof disposal pipe"; unacidable = 1},/obj/structure/alien/weeds{icon_state = "weeds1"},/turf/simulated/floor/engine,/area/awaycontent/a2{name = "MO19 Research"}) -"gY" = (/obj/machinery/light{active_power_usage = 0; dir = 2; icon_state = "tube-broken"; status = 2},/obj/structure/alien/weeds{icon_state = "weeds1"},/turf/simulated/floor/engine,/area/awaycontent/a2{name = "MO19 Research"}) +"gY" = (/obj/machinery/light{active_power_usage = 0; dir = 2; icon_state = "tube-broken"; status = 2},/obj/structure/alien/weeds{icon_state = "weeds1"},/obj/machinery/camera{c_tag = "Xenobiology Containment South"; dir = 1; network = list("MO19X")},/turf/simulated/floor/engine,/area/awaycontent/a2{name = "MO19 Research"}) "gZ" = (/obj/machinery/sparker{desc = "A wall-mounted ignition device. This one has been applied with an acid-proof coating."; id = "awayxenobio"; name = "Acid-Proof mounted igniter"; pixel_x = 0; pixel_y = -25; unacidable = 1},/obj/structure/alien/weeds{icon_state = "weeds2"},/obj/structure/alien/resin/wall,/turf/simulated/floor/engine,/area/awaycontent/a2{name = "MO19 Research"}) "ha" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"; tag = ""},/obj/effect/decal/cleanable/cobweb,/turf/simulated/floor/plating{heat_capacity = 1e+006},/area/awaycontent/a2{name = "MO19 Research"}) "hb" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plating{heat_capacity = 1e+006},/area/awaycontent/a2{name = "MO19 Research"}) @@ -393,7 +393,7 @@ "hC" = (/turf/simulated/floor{tag = "icon-cafeteria (NORTHEAST)"; icon_state = "cafeteria"; dir = 5},/area/awaycontent/a2{name = "MO19 Research"}) "hD" = (/obj/effect/decal/cleanable/dirt,/turf/simulated/floor{tag = "icon-cafeteria (NORTHEAST)"; icon_state = "cafeteria"; dir = 5},/area/awaycontent/a2{name = "MO19 Research"}) "hE" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/command{density = 0; emagged = 1; icon_state = "door_open"; locked = 1; name = "Research Director's Office"; opacity = 0; req_access_txt = "201"; req_one_access_txt = "0"},/turf/simulated/floor{tag = "icon-cafeteria (NORTHEAST)"; icon_state = "cafeteria"; dir = 5},/area/awaycontent/a2{name = "MO19 Research"}) -"hF" = (/obj/structure/noticeboard{dir = 1; pixel_y = -32},/obj/machinery/light/small{active_power_usage = 0; dir = 2; icon_state = "bulb-broken"; status = 2},/obj/item/weapon/paper{info = "

    In The Event of Xenobiology Breach: Evacuate staff, Lock down Xenobiology, Notify on-site superiors and/or Central Command immediatly.



    Current Xenobiology Containment Level:Secure RUN

    "; name = "Evacuation Procedure"},/turf/simulated/floor{dir = 8; heat_capacity = 1e+006; icon_state = "whitepurplecorner"},/area/awaycontent/a2{name = "MO19 Research"}) +"hF" = (/obj/structure/noticeboard{dir = 1; pixel_y = -32},/obj/machinery/light/small{active_power_usage = 0; dir = 2; icon_state = "bulb-broken"; status = 2},/obj/item/weapon/paper{info = "

    In The Event of Xenobiology Breach: Evacuate staff, Lock down Xenobiology, Notify on-site superiors and/or Central Command immediatly.



    Current Xenobiology Containment Level:Secure RUN

    "; name = "Evacuation Procedure"},/obj/machinery/camera{c_tag = "Research Division"; dir = 1; network = list("MO19","MO19R")},/turf/simulated/floor{dir = 8; heat_capacity = 1e+006; icon_state = "whitepurplecorner"},/area/awaycontent/a2{name = "MO19 Research"}) "hG" = (/obj/effect/decal/cleanable/dirt,/turf/simulated/floor{heat_capacity = 1e+006; icon_state = "white"},/area/awaycontent/a2{name = "MO19 Research"}) "hH" = (/obj/machinery/door/airlock/glass_research{name = "Research Storage"; req_access_txt = "201"},/turf/simulated/floor{heat_capacity = 1e+006; icon_state = "white"},/area/awaycontent/a2{name = "MO19 Research"}) "hI" = (/obj/structure/table,/obj/item/weapon/storage/firstaid/regular{pixel_x = 0; pixel_y = 0},/obj/effect/decal/cleanable/dirt,/obj/machinery/alarm{dir = 8; frequency = 1439; locked = 0; pixel_x = 23; pixel_y = 0; req_access = null},/turf/simulated/floor{dir = 8; heat_capacity = 1e+006; icon_state = "whitehall"},/area/awaycontent/a2{name = "MO19 Research"}) @@ -407,7 +407,7 @@ "hQ" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/machinery/door/poddoor{id = "AwayRD"; layer = 2.9; name = "privacy shutter"},/turf/simulated/floor/plating{heat_capacity = 1e+006},/area/awaycontent/a2{name = "MO19 Research"}) "hR" = (/obj/machinery/door/firedoor,/obj/machinery/door/poddoor{desc = "A heavy duty blast door that opens mechanically. This one has been applied with an acid-proof coating."; id = "Awaybiohazard"; layer = 2.9; name = "Acid-Proof biohazard containment door"; unacidable = 1},/turf/simulated/floor{heat_capacity = 1e+006; icon_state = "delivery"; name = "floor"},/area/awaycontent/a2{name = "MO19 Research"}) "hS" = (/obj/structure/table,/turf/simulated/floor{dir = 8; heat_capacity = 1e+006; icon_state = "whitehall"},/area/awaycontent/a2{name = "MO19 Research"}) -"hT" = (/obj/structure/toilet{dir = 4},/obj/effect/decal/cleanable/dirt,/turf/simulated/floor{heat_capacity = 1e+006; icon_state = "freezerfloor"},/area/awaycontent/a1{name = "MO19 Arrivals"}) +"hT" = (/obj/structure/toilet{dir = 4},/obj/effect/decal/cleanable/dirt,/obj/machinery/light/small{dir = 1},/turf/simulated/floor{heat_capacity = 1e+006; icon_state = "freezerfloor"},/area/awaycontent/a1{name = "MO19 Arrivals"}) "hU" = (/obj/machinery/door/airlock{name = "Unit 2"},/turf/simulated/floor{heat_capacity = 1e+006; icon_state = "freezerfloor"},/area/awaycontent/a1{name = "MO19 Arrivals"}) "hV" = (/obj/structure/urinal{pixel_y = 29},/turf/simulated/floor{heat_capacity = 1e+006; icon_state = "freezerfloor"},/area/awaycontent/a1{name = "MO19 Arrivals"}) "hW" = (/obj/structure/sink{dir = 4; icon_state = "sink"; pixel_x = 11; pixel_y = 0},/obj/structure/urinal{pixel_y = 29},/obj/structure/mirror{pixel_x = 28},/obj/effect/decal/cleanable/dirt,/turf/simulated/floor{heat_capacity = 1e+006; icon_state = "freezerfloor"},/area/awaycontent/a1{name = "MO19 Arrivals"}) @@ -417,7 +417,7 @@ "ia" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor/plating{burnt = 1; heat_capacity = 1e+006; icon_state = "panelscorched"; tag = "icon-panelscorched"},/area/awaycontent/a2{name = "MO19 Research"}) "ib" = (/obj/structure/table/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/item/weapon/folder/white,/obj/item/weapon/stamp/rd{pixel_x = 3; pixel_y = -2},/turf/simulated/floor{tag = "icon-cafeteria (NORTHEAST)"; icon_state = "cafeteria"; dir = 5},/area/awaycontent/a2{name = "MO19 Research"}) "ic" = (/obj/structure/table/reinforced,/obj/item/weapon/paper_bin{pixel_x = 1; pixel_y = 9},/turf/simulated/floor{tag = "icon-cafeteria (NORTHEAST)"; icon_state = "cafeteria"; dir = 5},/area/awaycontent/a2{name = "MO19 Research"}) -"id" = (/obj/structure/table/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/item/device/laser_pointer,/turf/simulated/floor{tag = "icon-cafeteria (NORTHEAST)"; icon_state = "cafeteria"; dir = 5},/area/awaycontent/a2{name = "MO19 Research"}) +"id" = (/obj/structure/table/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/machinery/computer/security/telescreen{desc = "Used for monitoring the research division and the labs within."; name = "\improper Research Monitor"; network = list("MO19R","MO19X")},/turf/simulated/floor{tag = "icon-cafeteria (NORTHEAST)"; icon_state = "cafeteria"; dir = 5},/area/awaycontent/a2{name = "MO19 Research"}) "ie" = (/obj/machinery/computer/aifixer,/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor{tag = "icon-cafeteria (NORTHEAST)"; icon_state = "cafeteria"; dir = 5},/area/awaycontent/a2{name = "MO19 Research"}) "if" = (/obj/structure/rack,/obj/structure/window/reinforced{dir = 8},/obj/item/weapon/circuitboard/teleporter,/turf/simulated/floor{dir = 9; heat_capacity = 1e+006; icon_state = "warnwhite"},/area/awaycontent/a2{name = "MO19 Research"}) "ig" = (/obj/structure/rack,/obj/item/device/paicard{pixel_x = 4},/turf/simulated/floor{dir = 1; heat_capacity = 1e+006; icon_state = "warnwhite"},/area/awaycontent/a2{name = "MO19 Research"}) @@ -427,9 +427,9 @@ "ik" = (/obj/structure/closet/l3closet/general,/obj/machinery/light/small{active_power_usage = 0; dir = 2; icon_state = "bulb-broken"; status = 2},/turf/simulated/floor{dir = 1; heat_capacity = 1e+006; icon_state = "whitehall"},/area/awaycontent/a2{name = "MO19 Research"}) "il" = (/obj/structure/table,/obj/item/clothing/glasses/hud/health,/obj/item/clothing/glasses/hud/health,/obj/machinery/newscaster{pixel_x = 0; pixel_y = -30},/turf/simulated/floor{dir = 1; heat_capacity = 1e+006; icon_state = "whitehall"},/area/awaycontent/a2{name = "MO19 Research"}) "im" = (/obj/structure/table,/turf/simulated/floor{dir = 1; heat_capacity = 1e+006; icon_state = "whitecorner"},/area/awaycontent/a2{name = "MO19 Research"}) -"in" = (/obj/machinery/alarm{dir = 4; frequency = 1439; locked = 0; pixel_x = -23; pixel_y = 0; req_access = null},/turf/simulated/floor{heat_capacity = 1e+006; icon_state = "freezerfloor"},/area/awaycontent/a1{name = "MO19 Arrivals"}) +"in" = (/obj/machinery/alarm{dir = 4; frequency = 1439; locked = 0; pixel_x = -23; pixel_y = 0; req_access = null},/obj/machinery/light/small{dir = 8},/turf/simulated/floor{heat_capacity = 1e+006; icon_state = "freezerfloor"},/area/awaycontent/a1{name = "MO19 Arrivals"}) "io" = (/obj/structure/sink{dir = 4; icon_state = "sink"; pixel_x = 11; pixel_y = 0},/obj/structure/mirror{desc = "Oh no, seven years of bad luck!"; icon_state = "mirror_broke"; pixel_x = 28; shattered = 1},/turf/simulated/floor{heat_capacity = 1e+006; icon_state = "freezerfloor"},/area/awaycontent/a1{name = "MO19 Arrivals"}) -"ip" = (/obj/item/weapon/soap/nanotrasen,/turf/simulated/floor{heat_capacity = 1e+006; icon_state = "freezerfloor"},/area/awaycontent/a1{name = "MO19 Arrivals"}) +"ip" = (/obj/item/weapon/soap/nanotrasen,/obj/machinery/light/small{dir = 8},/turf/simulated/floor{heat_capacity = 1e+006; icon_state = "freezerfloor"},/area/awaycontent/a1{name = "MO19 Arrivals"}) "iq" = (/turf/simulated/floor{heat_capacity = 1e+006; icon_state = "freezerfloor"},/area/awaycontent/a1{name = "MO19 Arrivals"}) "ir" = (/obj/machinery/shower{dir = 8},/turf/simulated/floor{heat_capacity = 1e+006; icon_state = "freezerfloor"},/area/awaycontent/a1{name = "MO19 Arrivals"}) "is" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plating{heat_capacity = 1e+006},/area/awaycontent/a1{name = "MO19 Arrivals"}) @@ -442,7 +442,7 @@ "iz" = (/obj/item/weapon/storage/secure/safe{pixel_x = 32; pixel_y = 0},/obj/effect/decal/cleanable/blood/splatter,/obj/item/weapon/pen,/obj/item/weapon/paper/crumpled{info = "19 06 2554

    I fucking knew it. There was a major breach, that idiotic force field failed and the xenomorphs rushed out and took out the scientists. I've managed to make it to my office and closed the blast doors. I can hear them trying to pry open the doors. Probably don't have long. I have no clue what has happened to the rest of the crew, for all I know they've been killed to produce more of the fucks."; name = "Hastily Written Note"},/turf/simulated/floor{dir = 4; heat_capacity = 1e+006; icon_state = "warnwhite"; tag = "icon-warnwhite (NORTH)"},/area/awaycontent/a2{name = "MO19 Research"}) "iA" = (/obj/structure/sign/securearea{pixel_y = 32},/obj/machinery/shower{dir = 4; icon_state = "shower"; name = "emergency shower"; tag = "icon-shower (EAST)"},/turf/simulated/floor{dir = 9; heat_capacity = 1e+006; icon_state = "warnwhite"},/area/awaycontent/a2{name = "MO19 Research"}) "iB" = (/obj/structure/closet/firecloset,/turf/simulated/floor{dir = 5; heat_capacity = 1e+006; icon_state = "warnwhite"},/area/awaycontent/a2{name = "MO19 Research"}) -"iC" = (/obj/structure/toilet{dir = 4},/turf/simulated/floor{heat_capacity = 1e+006; icon_state = "freezerfloor"},/area/awaycontent/a1{name = "MO19 Arrivals"}) +"iC" = (/obj/structure/toilet{dir = 4},/obj/machinery/light/small{dir = 1},/turf/simulated/floor{heat_capacity = 1e+006; icon_state = "freezerfloor"},/area/awaycontent/a1{name = "MO19 Arrivals"}) "iD" = (/obj/machinery/door/airlock{name = "Unit 1"},/turf/simulated/floor{heat_capacity = 1e+006; icon_state = "freezerfloor"},/area/awaycontent/a1{name = "MO19 Arrivals"}) "iE" = (/obj/machinery/door/airlock{name = "Unisex Showers"},/turf/simulated/floor{heat_capacity = 1e+006; icon_state = "freezerfloor"},/area/awaycontent/a1{name = "MO19 Arrivals"}) "iF" = (/obj/effect/decal/cleanable/dirt,/turf/simulated/floor{heat_capacity = 1e+006; icon_state = "freezerfloor"},/area/awaycontent/a1{name = "MO19 Arrivals"}) @@ -451,11 +451,11 @@ "iI" = (/obj/structure/table,/obj/item/weapon/cigbutt,/turf/simulated/floor{heat_capacity = 1e+006; icon_state = "bar"},/area/awaycontent/a1{name = "MO19 Arrivals"}) "iJ" = (/obj/structure/table,/obj/item/trash/raisins,/turf/simulated/floor{heat_capacity = 1e+006; icon_state = "bar"},/area/awaycontent/a1{name = "MO19 Arrivals"}) "iK" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = ""},/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plating{heat_capacity = 1e+006},/area/awaycontent/a2{name = "MO19 Research"}) -"iL" = (/obj/machinery/light/small{dir = 8},/obj/structure/sink{pixel_y = 28},/turf/simulated/floor{heat_capacity = 1e+006; icon_state = "freezerfloor"},/area/awaycontent/a2{name = "MO19 Research"}) +"iL" = (/obj/structure/sink{pixel_y = 28},/obj/machinery/light/small{dir = 8},/turf/simulated/floor{heat_capacity = 1e+006; icon_state = "freezerfloor"},/area/awaycontent/a2{name = "MO19 Research"}) "iM" = (/obj/machinery/door/airlock{name = "Private Restroom"},/turf/simulated/floor{heat_capacity = 1e+006; icon_state = "freezerfloor"},/area/awaycontent/a2{name = "MO19 Research"}) -"iN" = (/obj/machinery/computer/security/telescreen/entertainment{pixel_x = 0; pixel_y = -32},/obj/machinery/light/small{active_power_usage = 0; dir = 2; icon_state = "bulb-broken"; status = 2},/turf/simulated/floor{tag = "icon-cafeteria (NORTHEAST)"; icon_state = "cafeteria"; dir = 5},/area/awaycontent/a2{name = "MO19 Research"}) +"iN" = (/obj/machinery/computer/security/telescreen/entertainment{pixel_x = 0; pixel_y = -32},/obj/machinery/light/small{active_power_usage = 0; dir = 2; icon_state = "bulb-broken"; status = 2},/obj/machinery/camera{c_tag = "Research Director's Office"; dir = 1; network = list("MO19","MO19R")},/turf/simulated/floor{tag = "icon-cafeteria (NORTHEAST)"; icon_state = "cafeteria"; dir = 5},/area/awaycontent/a2{name = "MO19 Research"}) "iO" = (/obj/machinery/newscaster{pixel_x = 0; pixel_y = -30},/turf/simulated/floor{tag = "icon-cafeteria (NORTHEAST)"; icon_state = "cafeteria"; dir = 5},/area/awaycontent/a2{name = "MO19 Research"}) -"iP" = (/obj/structure/table,/obj/item/device/radio/off,/turf/simulated/floor{tag = "icon-cafeteria (NORTHEAST)"; icon_state = "cafeteria"; dir = 5},/area/awaycontent/a2{name = "MO19 Research"}) +"iP" = (/obj/structure/table,/obj/item/device/radio/off,/obj/item/device/laser_pointer,/turf/simulated/floor{tag = "icon-cafeteria (NORTHEAST)"; icon_state = "cafeteria"; dir = 5},/area/awaycontent/a2{name = "MO19 Research"}) "iQ" = (/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor{dir = 10; heat_capacity = 1e+006; icon_state = "warnwhite"},/area/awaycontent/a2{name = "MO19 Research"}) "iR" = (/obj/machinery/light/small,/turf/simulated/floor{dir = 2; heat_capacity = 1e+006; icon_state = "warnwhite"; tag = "icon-warnwhite (NORTH)"},/area/awaycontent/a2{name = "MO19 Research"}) "iS" = (/obj/structure/table,/obj/item/weapon/storage/secure/briefcase,/obj/item/device/taperecorder{pixel_x = -3},/turf/simulated/floor{dir = 6; heat_capacity = 1e+006; icon_state = "warnwhite"},/area/awaycontent/a2{name = "MO19 Research"}) @@ -546,7 +546,7 @@ "kz" = (/obj/structure/closet/crate/bin,/obj/item/trash/candy,/obj/item/trash/can,/turf/simulated/floor{dir = 2; heat_capacity = 1e+006; icon_state = "arrival"},/area/awaycontent/a1{name = "MO19 Arrivals"}) "kA" = (/turf/simulated/floor{dir = 2; heat_capacity = 1e+006; icon_state = "arrival"},/area/awaycontent/a1{name = "MO19 Arrivals"}) "kB" = (/obj/effect/decal/cleanable/dirt,/turf/simulated/floor{dir = 2; heat_capacity = 1e+006; icon_state = "arrival"},/area/awaycontent/a1{name = "MO19 Arrivals"}) -"kC" = (/obj/machinery/light/small,/obj/machinery/computer/security/telescreen/entertainment{pixel_x = 0; pixel_y = -32},/turf/simulated/floor{dir = 2; heat_capacity = 1e+006; icon_state = "arrival"},/area/awaycontent/a1{name = "MO19 Arrivals"}) +"kC" = (/obj/machinery/light/small,/obj/machinery/computer/security/telescreen/entertainment{pixel_x = 0; pixel_y = -32},/obj/machinery/camera{c_tag = "Arrivals North"; dir = 1; network = list("MO19")},/turf/simulated/floor{dir = 2; heat_capacity = 1e+006; icon_state = "arrival"},/area/awaycontent/a1{name = "MO19 Arrivals"}) "kD" = (/obj/structure/sign/poster{icon_state = "poster2_legit"; pixel_x = 0; pixel_y = -32; serial_number = 2; subtype = 1},/turf/simulated/floor{dir = 2; heat_capacity = 1e+006; icon_state = "arrival"},/area/awaycontent/a1{name = "MO19 Arrivals"}) "kE" = (/turf/simulated/floor{dir = 8; heat_capacity = 1e+006; icon_state = "whitecorner"},/area/awaycontent/a1{name = "MO19 Arrivals"}) "kF" = (/obj/machinery/light/small,/turf/simulated/floor{dir = 8; heat_capacity = 1e+006; icon_state = "floorgrime"; tag = "icon-floorgrime (WEST)"},/area/awaycontent/a1{name = "MO19 Arrivals"}) @@ -578,7 +578,7 @@ "lf" = (/obj/structure/table,/obj/machinery/cell_charger,/obj/item/weapon/stock_parts/cell/high{charge = 100; maxcharge = 15000},/turf/simulated/floor{dir = 0; heat_capacity = 1e+006; icon_state = "blue"},/area/awaycontent/a1{name = "MO19 Arrivals"}) "lg" = (/obj/effect/decal/cleanable/dirt,/turf/simulated/floor{dir = 0; heat_capacity = 1e+006; icon_state = "blue"},/area/awaycontent/a1{name = "MO19 Arrivals"}) "lh" = (/obj/structure/stool/bed/chair,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor{heat_capacity = 1e+006; icon_state = "bar"},/area/awaycontent/a1{name = "MO19 Arrivals"}) -"li" = (/obj/structure/extinguisher_cabinet{pixel_x = 26; pixel_y = 0},/turf/simulated/floor{tag = "icon-cafeteria (NORTHEAST)"; icon_state = "cafeteria"; dir = 5},/area/awaycontent/a1{name = "MO19 Arrivals"}) +"li" = (/obj/structure/extinguisher_cabinet{pixel_x = 26; pixel_y = 0},/obj/machinery/camera{c_tag = "Kitchen"; dir = 8; network = list("MO19")},/turf/simulated/floor{tag = "icon-cafeteria (NORTHEAST)"; icon_state = "cafeteria"; dir = 5},/area/awaycontent/a1{name = "MO19 Arrivals"}) "lj" = (/turf/simulated/floor/plating/asteroid{carbon_dioxide = 48.7; heat_capacity = 1e+006; nitrogen = 13.2; oxygen = 32.4; temperature = 251},/turf/simulated/shuttle/wall{tag = "icon-swall_f6"; icon_state = "swall_f6"; dir = 2},/area/awaycontent/a1{name = "MO19 Arrivals"}) "lk" = (/turf/simulated/shuttle/wall{icon_state = "swall12"; dir = 2},/area/awaycontent/a1{name = "MO19 Arrivals"}) "ll" = (/turf/simulated/floor/plating/asteroid{carbon_dioxide = 48.7; heat_capacity = 1e+006; nitrogen = 13.2; oxygen = 32.4; temperature = 251},/turf/simulated/shuttle/wall{dir = 3; icon_state = "swall_f10"; layer = 2},/area/awaycontent/a1{name = "MO19 Arrivals"}) @@ -595,7 +595,7 @@ "lw" = (/turf/simulated/floor/plating{broken = 1; heat_capacity = 1e+006; icon_state = "platingdmg3"; tag = "icon-platingdmg3"},/area/awaycontent/a1{name = "MO19 Arrivals"}) "lx" = (/obj/machinery/light/small{dir = 8},/obj/structure/table,/obj/item/weapon/storage/box,/obj/machinery/alarm{dir = 4; frequency = 1439; locked = 0; pixel_x = -23; pixel_y = 0; req_access = null},/turf/simulated/floor{heat_capacity = 1e+006; icon_state = "bar"},/area/awaycontent/a1{name = "MO19 Arrivals"}) "ly" = (/obj/structure/stool/bed/chair{dir = 8},/turf/simulated/floor{heat_capacity = 1e+006; icon_state = "bar"},/area/awaycontent/a1{name = "MO19 Arrivals"}) -"lz" = (/obj/machinery/firealarm{dir = 4; pixel_x = 24},/obj/effect/decal/cleanable/dirt,/turf/simulated/floor{heat_capacity = 1e+006; icon_state = "bar"},/area/awaycontent/a1{name = "MO19 Arrivals"}) +"lz" = (/obj/machinery/firealarm{dir = 4; pixel_x = 24},/obj/effect/decal/cleanable/dirt,/obj/machinery/camera{c_tag = "Bar"; dir = 8; network = list("MO19")},/turf/simulated/floor{heat_capacity = 1e+006; icon_state = "bar"},/area/awaycontent/a1{name = "MO19 Arrivals"}) "lA" = (/obj/machinery/door_control{id = "awaykitchen"; name = "Kitchen Shutters Control"; pixel_x = -25; pixel_y = 0; req_access_txt = "0"},/obj/effect/decal/cleanable/dirt,/turf/simulated/floor{tag = "icon-cafeteria (NORTHEAST)"; icon_state = "cafeteria"; dir = 5},/area/awaycontent/a1{name = "MO19 Arrivals"}) "lB" = (/obj/machinery/door/airlock{name = "Kitchen Cold Room"; req_access_txt = "201"},/turf/simulated/floor{heat_capacity = 1e+006; icon_state = "showroomfloor"},/area/awaycontent/a1{name = "MO19 Arrivals"}) "lC" = (/turf/simulated/floor{heat_capacity = 1e+006; icon_state = "showroomfloor"; temperature = 273.15},/area/awaycontent/a1{name = "MO19 Arrivals"}) @@ -676,7 +676,7 @@ "mZ" = (/obj/machinery/door/airlock/shuttle{name = "Shuttle Airlock"},/turf/simulated/shuttle/floor,/area/awaycontent/a1{name = "MO19 Arrivals"}) "na" = (/obj/machinery/door/airlock/external,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plating{heat_capacity = 1e+006},/area/awaycontent/a1{name = "MO19 Arrivals"}) "nb" = (/obj/machinery/door/airlock/external,/turf/simulated/floor/plating{heat_capacity = 1e+006},/area/awaycontent/a1{name = "MO19 Arrivals"}) -"nc" = (/obj/machinery/light/small{dir = 4},/obj/effect/decal/cleanable/dirt,/obj/structure/noticeboard{dir = 8; pixel_x = 32; pixel_y = 0},/obj/item/weapon/paper{info = "

    Welcome to Moon Outpost 19! Property of Nanotrasen Inc.




    Staff Roster:
    -Dr. Gerald Rosswell: Research Director & Acting Captain
    -Dr. Sakuma Sano: Xenobiologist
    -Dr. Mark Douglas: Xenobiologist
    -Kenneth Cunningham: Security Officer-Ivan Volodin: Engineer
    -Mathias Kuester: Bartender
    -Sven Edling: Chef
    -Steve: Assistant

    Please enjoy your stay, and report any abnormalities to an officer."; name = "Welcome Notice"},/turf/simulated/floor{dir = 4; heat_capacity = 1e+006; icon_state = "warning"},/area/awaycontent/a1{name = "MO19 Arrivals"}) +"nc" = (/obj/machinery/light/small{dir = 4},/obj/effect/decal/cleanable/dirt,/obj/structure/noticeboard{dir = 8; pixel_x = 32; pixel_y = 0},/obj/item/weapon/paper{info = "

    Welcome to Moon Outpost 19! Property of Nanotrasen Inc.




    Staff Roster:
    -Dr. Gerald Rosswell: Research Director & Acting Captain
    -Dr. Sakuma Sano: Xenobiologist
    -Dr. Mark Douglas: Xenobiologist
    -Kenneth Cunningham: Security Officer-Ivan Volodin: Engineer
    -Mathias Kuester: Bartender
    -Sven Edling: Chef
    -Steve: Assistant

    Please enjoy your stay, and report any abnormalities to an officer."; name = "Welcome Notice"},/obj/machinery/camera{c_tag = "Arrivals South"; dir = 8; network = list("MO19")},/turf/simulated/floor{dir = 4; heat_capacity = 1e+006; icon_state = "warning"},/area/awaycontent/a1{name = "MO19 Arrivals"}) "nd" = (/obj/machinery/light/small{dir = 8},/turf/simulated/floor/plating/asteroid{carbon_dioxide = 48.7; heat_capacity = 1e+006; nitrogen = 13.2; oxygen = 32.4; temperature = 251},/area/awaycontent/a1{name = "MO19 Arrivals"}) "ne" = (/obj/machinery/light/small{dir = 8},/obj/effect/decal/cleanable/blood/tracks{desc = "Your instincts say you shouldn't be following these."; dir = 9; icon_state = "ltrails_1"},/turf/simulated/floor{carbon_dioxide = 48.7; dir = 8; heat_capacity = 1e+006; icon_state = "neutralcorner"; nitrogen = 13.2; oxygen = 32.4; temperature = 251},/area/awaycontent/a1{name = "MO19 Arrivals"}) "nf" = (/obj/effect/decal/cleanable/blood/tracks{desc = "Your instincts say you shouldn't be following these."; dir = 8; icon_state = "ltrails_1"},/turf/simulated/floor{burnt = 1; carbon_dioxide = 48.7; dir = 8; heat_capacity = 1e+006; icon_state = "floorscorched2"; nitrogen = 13.2; oxygen = 32.4; tag = "icon-floorscorched2 (WEST)"; temperature = 251},/area/awaycontent/a1{name = "MO19 Arrivals"}) @@ -708,7 +708,7 @@ "nF" = (/turf/simulated/shuttle/wall{icon_state = "swall13"; dir = 2},/area/awaycontent/a1{name = "MO19 Arrivals"}) "nG" = (/obj/effect/decal/cleanable/dirt,/turf/simulated/floor{dir = 8; heat_capacity = 1e+006; icon_state = "warning"},/area/awaycontent/a1{name = "MO19 Arrivals"}) "nH" = (/obj/machinery/light/small{dir = 4},/turf/simulated/floor/plating/asteroid{carbon_dioxide = 48.7; heat_capacity = 1e+006; nitrogen = 13.2; oxygen = 32.4; temperature = 251},/area/awaycontent/a1{name = "MO19 Arrivals"}) -"nI" = (/obj/effect/decal/cleanable/blood/tracks{desc = "Your instincts say you shouldn't be following these."; icon_state = "ltrails_2"},/turf/simulated/floor{broken = 1; carbon_dioxide = 48.7; dir = 8; heat_capacity = 1e+006; icon_state = "damaged1"; nitrogen = 13.2; oxygen = 32.4; tag = "icon-damaged1 (WEST)"; temperature = 251},/area/awaycontent/a1{name = "MO19 Arrivals"}) +"nI" = (/obj/effect/decal/cleanable/blood/tracks{desc = "Your instincts say you shouldn't be following these."; icon_state = "ltrails_2"},/obj/machinery/camera{c_tag = "Dormitories"; dir = 4; network = list("MO19")},/turf/simulated/floor{broken = 1; carbon_dioxide = 48.7; dir = 8; heat_capacity = 1e+006; icon_state = "damaged1"; nitrogen = 13.2; oxygen = 32.4; tag = "icon-damaged1 (WEST)"; temperature = 251},/area/awaycontent/a1{name = "MO19 Arrivals"}) "nJ" = (/turf/simulated/floor/plating{broken = 1; heat_capacity = 1e+006; icon_state = "platingdmg2"; tag = "icon-platingdmg2"},/area/awaycontent/a1{name = "MO19 Arrivals"}) "nK" = (/obj/structure/grille{density = 0; destroyed = 1; icon_state = "brokengrille"},/obj/item/stack/rods,/turf/simulated/floor/plating{heat_capacity = 1e+006},/area/awaycontent/a1{name = "MO19 Arrivals"}) "nL" = (/obj/structure/grille,/turf/simulated/floor/plating{heat_capacity = 1e+006},/area/awaycontent/a1{name = "MO19 Arrivals"}) @@ -824,7 +824,7 @@ aaaaaaaaaaaaaaababacafacadafadafacafadafabababacadarararafafbmbmbmacadafacbmbmbm aaaaaaaaaaaaaaababababababababababababababababadarararadacbmbmbmbmbmbmbmbmbmbmbmbmbmbmbmafaracafababababababababaeaeaVaVaVaVbPbQaVatatatbRatatatbSbTbUbVbWataeaeaeaeaeaeaeaearararararaeaeaeaeaeaeaeaeaeaeaeaeaeaeaaaaaaaaaaaaaa aaaaaaaaaaaaaaababababababababababababababababafararafacbmbmbmbmbmbmbmbmbmbmbmbmbmbmbmbmacbXafabababababababababaeaeaVbYbZcacbccbQcdcecfcgchciatcjckclcmcnataeaeaeaeaeaeaeaearaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaaaaaaaaaaaaaa aaaaaaaaaaaaaaababababababababababababababababadararadbmbmbmbmbmbmbmbmbmbmbmbmbmbmbmbmacafaradabababababababababaeaeaVbYbQcocpcqcrcscbcbctcucvcwcxcyczcAcBataeaeaeaeaeaeaeaearaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaaaaaaaaaaaaaa -aaaaaaaaaaaaaaababababababababababababababababafararafbmbmbmbmbmbmbmacadafacadadbmbmafadararafababababababababaeaeaeaVcCcDcEcbcFcGcHcIcJcKcIcLatcMcNcOcNcPataeaeaeaearaeaeararaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaaaaaaaaaaaaaa +aaaaaaaaaaaaaaababababababababababababababababafararafbmbmbmbmbmbmbmacadafacadadbmbmafadararafababababababababaeaeaeaVcCcDcEcbcFcGcHcIcJcKcIcLatcMcOcNcOcPataeaeaeaearaeaeararaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaaaaaaaaaaaaaa aaaaaaaaaaaaaaababababababababababababababababacararadacadafafacadafafararararafacafadararafadababababababababaeaeaeaVbYcQcRcScTaVaVaVcUaVcVaVatatatatatatataeaeaeaearaeaeararaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaaaaaaaaaaaaaa aaaaaaaaaaaaaaababababababababababababababababadaramarafarararararafararadafaramararararadacabababababababababaeaeaeaVbYcWcXcYcZdaaVdbdcaVdddeaVaeaeaeaeaeaeaeaeaeaearaeararaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaaaaaaaaaaaaaa aaaaaaaaaaaaaaababababababababababababababababadafarararararardfarararafafacadafadafadacafabababababababababaeaeaeaeaVdgdhcEcbcFdiaVdjdkaVdldmaVaeaeaeaeaeaeaeaeaeaearararaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaaaaaaaaaaaaaa @@ -913,3 +913,4 @@ aapfpgaaphpipjpkplaapmpnaapoaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aappaapqprpsaaptaaaaaaaaaapoaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa "} + From 85f3d72bd52c1cd10018d81bac52099232909972 Mon Sep 17 00:00:00 2001 From: WJohn Date: Tue, 4 Nov 2014 14:12:11 -0500 Subject: [PATCH 032/102] Whoops cameras --- _maps/RandomZLevels/moonoutpost19.dmm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/_maps/RandomZLevels/moonoutpost19.dmm b/_maps/RandomZLevels/moonoutpost19.dmm index 2aa1cce85d6..e7fd2fd2748 100644 --- a/_maps/RandomZLevels/moonoutpost19.dmm +++ b/_maps/RandomZLevels/moonoutpost19.dmm @@ -300,7 +300,7 @@ "fN" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = ""},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/obj/effect/decal/cleanable/oil,/turf/simulated/floor/plating{heat_capacity = 1e+006},/area/awaycontent/a2{name = "MO19 Research"}) "fO" = (/obj/structure/filingcabinet,/obj/item/weapon/paper{info = "Entry One - 27/05/2554:
    I just arrived, and already I hate my job. I'm stuck on this shithole of an outpost, trying to avoid these damn eggheads running all over the place preparing for god knows what. There's no crimes to stop, no syndies to kill, and I'm not even allowed to beat the fuckin' assistant senseless! They said I was transferred from Space Station 13 for 'good behavior', but this feels more like a punishment than a reward. All I know is that if I don't get some action soon, I'm going to go insane.

    Entry Two - 03/06/2554:
    Okay, so get this: we got a fuckin' deathsquad coming in today! I thought the day I saw one of them would be the day my employment was 'terminated', if you get my drift. They're escorting some sort of weird alien creature for the eggheads to study. I heard one of the docs telling the chef that this thing killed a whole security force before it was captured. I sure as hell hope that I don't have to fight it.

    Entry Three - 08/06/2554:
    My first real bit of 'action' today, if you could call it that. Crazy Ivan got in a fight with Kuester today about his Booze-O-Mat. Apparently one of the crewmembers had stolen a couple bottles of booze from the machine after Ivan disabled the ID lock. Tell you the truth, I don't blame the thief. Everyone is going a little stir-crazy in here, and the bartender is being damn stingy with the alcohol. Either way, once they started to pick a fight, I had to take them down. It's a damn shame that we don't have a brig, though. I had to lock Ivan in a fuckin' freezer, for god's sake. Let's hope that we can keep our sanity together, at least for a while.

    Entry Four - 10/06/2554:
    Jesus fucking Christ riding on a motorbike. These things the scientists are studying are terrifying! Fucking great huge purple bug things as tall as the ceiling, with blades for arms and drooling at the mouth. I don't think my taser will do jack shit against these damn things, but the eggheads say that they're safely contained. If they do, I have a feeling that it's only a matter of time before we're all screwed. These bastards look like walking death.

    Entry Five - 18/06/2554:
    Finally caught who stole the booze from Kuester. It was that fuckin' loser assistant Steve! He was in the dorms, chugging his worries away. I took one of the bottles back to the barkeep, but no one has to know about this second one. I think I'm gonna enjoy this while watching tomorrow's Thunderdome match.

    Entry Six - 19/06/2554:
    Oh, great. The chef is still sleeping, so we get Ivan's gruel for breakfast today. I overheard Sano and Douglas saying something about the aliens being restless, so we might get some action today. As long as it happens after the big game, I'm fine with it. I still got one beer to drink before I'm ready to die."; name = "Personal Log - Kenneth Cunningham"},/turf/simulated/floor{dir = 9; heat_capacity = 1e+006; icon_state = "red"},/area/awaycontent/a2{name = "MO19 Research"}) "fP" = (/obj/structure/closet/secure_closet{icon_broken = "secbroken"; icon_closed = "sec"; icon_locked = "sec1"; icon_off = "secoff"; icon_opened = "secopen"; icon_state = "sec1"; locked = 1; name = "security officer's locker"; req_access_txt = "201"},/obj/item/clothing/suit/armor/vest,/obj/item/weapon/reagent_containers/spray/pepper,/obj/item/weapon/grenade/flashbang,/obj/item/weapon/storage/belt/security,/obj/item/weapon/reagent_containers/food/drinks/beer{pixel_x = -3; pixel_y = -2},/obj/machinery/alarm{frequency = 1439; locked = 0; pixel_y = 23; req_access = null},/turf/simulated/floor{dir = 1; heat_capacity = 1e+006; icon_state = "red"},/area/awaycontent/a2{name = "MO19 Research"}) -"fQ" = (/obj/structure/sign/poster{icon_state = "poster21_legit"; pixel_y = 32; serial_number = 21; subtype = 1},/turf/simulated/floor{dir = 5; heat_capacity = 1e+006; icon_state = "red"},/area/awaycontent/a2{name = "MO19 Research"}) +"fQ" = (/obj/structure/sign/poster{icon_state = "poster21_legit"; pixel_y = 32; serial_number = 21; subtype = 1},/obj/item/device/radio/off,/obj/item/weapon/screwdriver{pixel_y = 10},/turf/simulated/floor{dir = 5; heat_capacity = 1e+006; icon_state = "red"},/area/awaycontent/a2{name = "MO19 Research"}) "fR" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plating{heat_capacity = 1e+006},/area/awaycontent/a2{name = "MO19 Research"}) "fS" = (/obj/structure/alien/weeds{icon_state = "weeds1"},/turf/simulated/floor{dir = 8; heat_capacity = 1e+006; icon_state = "whitepurplecorner"},/area/awaycontent/a2{name = "MO19 Research"}) "fT" = (/obj/structure/sign/biohazard{pixel_x = 32},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = ""},/obj/structure/alien/weeds{icon_state = "weeds2"},/turf/simulated/floor{dir = 2; heat_capacity = 1e+006; icon_state = "whitepurplecorner"},/area/awaycontent/a2{name = "MO19 Research"}) @@ -346,7 +346,7 @@ "gH" = (/obj/structure/cable,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/obj/machinery/door/poddoor/preopen{desc = "A heavy duty blast door that opens mechanically. This one has been applied with an acid-proof coating."; id = "Awaylab"; name = "Acid-Proof containment chamber blast door"; unacidable = 1},/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/structure/grille,/obj/structure/window/reinforced{dir = 4; layer = 2.9},/turf/simulated/floor/plating{heat_capacity = 1e+006},/area/awaycontent/a2{name = "MO19 Research"}) "gI" = (/obj/structure/disposalpipe/segment{desc = "An underfloor disposal pipe. This one has been applied with an acid-proof coating."; name = "Acid-Proof disposal pipe"; unacidable = 1},/obj/structure/alien/weeds{icon_state = "weeds1"},/turf/simulated/floor/engine,/area/awaycontent/a2{name = "MO19 Research"}) "gJ" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = ""},/obj/item/stack/rods,/turf/simulated/floor/plating{broken = 1; heat_capacity = 1e+006; icon_state = "platingdmg3"; tag = "icon-platingdmg3"},/area/awaycontent/a2{name = "MO19 Research"}) -"gK" = (/obj/machinery/door_control{id = "Awaybiohazard"; name = "Biohazard Shutter Control"; pixel_x = -25; pixel_y = 0; req_access_txt = "201"},/obj/machinery/light/small{dir = 8},/obj/structure/table,/obj/item/device/radio/off,/obj/item/weapon/screwdriver{pixel_y = 10},/turf/simulated/floor{dir = 8; heat_capacity = 1e+006; icon_state = "red"},/area/awaycontent/a2{name = "MO19 Research"}) +"gK" = (/obj/machinery/door_control{id = "Awaybiohazard"; name = "Biohazard Shutter Control"; pixel_x = -25; pixel_y = 0; req_access_txt = "201"},/obj/machinery/light/small{dir = 8},/obj/machinery/computer/security{desc = "Used to access the various cameras on the outpost."; network = list("MO19","MO19R")},/turf/simulated/floor{dir = 8; heat_capacity = 1e+006; icon_state = "red"},/area/awaycontent/a2{name = "MO19 Research"}) "gL" = (/obj/structure/stool/bed/chair/office/dark,/turf/simulated/floor{heat_capacity = 1e+006},/area/awaycontent/a2{name = "MO19 Research"}) "gM" = (/obj/structure/table,/obj/machinery/recharger{pixel_y = 4},/turf/simulated/floor{dir = 4; heat_capacity = 1e+006; icon_state = "red"},/area/awaycontent/a2{name = "MO19 Research"}) "gN" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plating{heat_capacity = 1e+006},/area/awaycontent/a2{name = "MO19 Research"}) @@ -417,7 +417,7 @@ "ia" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor/plating{burnt = 1; heat_capacity = 1e+006; icon_state = "panelscorched"; tag = "icon-panelscorched"},/area/awaycontent/a2{name = "MO19 Research"}) "ib" = (/obj/structure/table/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/item/weapon/folder/white,/obj/item/weapon/stamp/rd{pixel_x = 3; pixel_y = -2},/turf/simulated/floor{tag = "icon-cafeteria (NORTHEAST)"; icon_state = "cafeteria"; dir = 5},/area/awaycontent/a2{name = "MO19 Research"}) "ic" = (/obj/structure/table/reinforced,/obj/item/weapon/paper_bin{pixel_x = 1; pixel_y = 9},/turf/simulated/floor{tag = "icon-cafeteria (NORTHEAST)"; icon_state = "cafeteria"; dir = 5},/area/awaycontent/a2{name = "MO19 Research"}) -"id" = (/obj/structure/table/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/machinery/computer/security/telescreen{desc = "Used for monitoring the research division and the labs within."; name = "\improper Research Monitor"; network = list("MO19R","MO19X")},/turf/simulated/floor{tag = "icon-cafeteria (NORTHEAST)"; icon_state = "cafeteria"; dir = 5},/area/awaycontent/a2{name = "MO19 Research"}) +"id" = (/obj/structure/table/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/machinery/computer/security/telescreen{desc = "Used for monitoring the research division and the labs within."; name = "\improper Research Monitor"; network = list("MO19X","MO19R")},/turf/simulated/floor{tag = "icon-cafeteria (NORTHEAST)"; icon_state = "cafeteria"; dir = 5},/area/awaycontent/a2{name = "MO19 Research"}) "ie" = (/obj/machinery/computer/aifixer,/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor{tag = "icon-cafeteria (NORTHEAST)"; icon_state = "cafeteria"; dir = 5},/area/awaycontent/a2{name = "MO19 Research"}) "if" = (/obj/structure/rack,/obj/structure/window/reinforced{dir = 8},/obj/item/weapon/circuitboard/teleporter,/turf/simulated/floor{dir = 9; heat_capacity = 1e+006; icon_state = "warnwhite"},/area/awaycontent/a2{name = "MO19 Research"}) "ig" = (/obj/structure/rack,/obj/item/device/paicard{pixel_x = 4},/turf/simulated/floor{dir = 1; heat_capacity = 1e+006; icon_state = "warnwhite"},/area/awaycontent/a2{name = "MO19 Research"}) From a3f2ba307530acc9fb943dd0e9e85c3c8dfa43a5 Mon Sep 17 00:00:00 2001 From: WJohn Date: Tue, 4 Nov 2014 14:28:48 -0500 Subject: [PATCH 033/102] camera harder --- _maps/RandomZLevels/moonoutpost19.dmm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/_maps/RandomZLevels/moonoutpost19.dmm b/_maps/RandomZLevels/moonoutpost19.dmm index e7fd2fd2748..ba9271363ff 100644 --- a/_maps/RandomZLevels/moonoutpost19.dmm +++ b/_maps/RandomZLevels/moonoutpost19.dmm @@ -225,7 +225,7 @@ "eq" = (/obj/machinery/light/small{active_power_usage = 0; dir = 4; icon_state = "bulb-broken"; status = 2},/turf/simulated/floor{dir = 8; heat_capacity = 1e+006; icon_state = "floorgrime"; tag = "icon-floorgrime (WEST)"},/area/awaycontent/a2{name = "MO19 Research"}) "er" = (/obj/machinery/atmospherics/portables_connector{dir = 4},/obj/machinery/portable_atmospherics/canister,/obj/structure/alien/weeds{icon_state = "weeds1"},/turf/simulated/floor{heat_capacity = 1e+006},/area/awaycontent/a2{name = "MO19 Research"}) "es" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = ""},/obj/machinery/atmospherics/pipe/manifold{dir = 4; icon_state = "manifold"; level = 2},/turf/simulated/floor{icon_state = "white"},/area/awaycontent/a2{name = "MO19 Research"}) -"et" = (/obj/structure/table/reinforced,/obj/structure/alien/weeds,/obj/machinery/computer/security/telescreen{desc = "Used for watching the contents of the xenobiology containment pen."; dir = 8; name = "\improper Xenobiology Monitor"; network = list("MO19X")},/turf/simulated/floor{dir = 8; heat_capacity = 1e+006; icon_state = "warning"},/area/awaycontent/a2{name = "MO19 Research"}) +"et" = (/obj/structure/table/reinforced,/obj/structure/alien/weeds,/obj/machinery/computer/security/telescreen{desc = "Used for watching the contents of the xenobiology containment pen."; dir = 8; name = "xenobiology monitor"; network = list("MO19X")},/turf/simulated/floor{dir = 8; heat_capacity = 1e+006; icon_state = "warning"},/area/awaycontent/a2{name = "MO19 Research"}) "eu" = (/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/machinery/door/poddoor/preopen{desc = "A heavy duty blast door that opens mechanically. This one has been applied with an acid-proof coating."; id = "Awaylab"; name = "Acid-Proof containment chamber blast door"; unacidable = 1},/obj/structure/cable,/obj/structure/grille,/obj/structure/window/reinforced{dir = 4; layer = 2.9},/turf/simulated/floor/plating{heat_capacity = 1e+006},/area/awaycontent/a2{name = "MO19 Research"}) "ev" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'HIGH VOLTAGE'"; icon_state = "shock"; name = "HIGH VOLTAGE"},/turf/simulated/wall/r_wall,/area/awaycontent/a2{name = "MO19 Research"}) "ew" = (/obj/structure/alien/weeds/node,/turf/simulated/floor/engine,/area/awaycontent/a2{name = "MO19 Research"}) @@ -346,7 +346,7 @@ "gH" = (/obj/structure/cable,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/obj/machinery/door/poddoor/preopen{desc = "A heavy duty blast door that opens mechanically. This one has been applied with an acid-proof coating."; id = "Awaylab"; name = "Acid-Proof containment chamber blast door"; unacidable = 1},/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/structure/grille,/obj/structure/window/reinforced{dir = 4; layer = 2.9},/turf/simulated/floor/plating{heat_capacity = 1e+006},/area/awaycontent/a2{name = "MO19 Research"}) "gI" = (/obj/structure/disposalpipe/segment{desc = "An underfloor disposal pipe. This one has been applied with an acid-proof coating."; name = "Acid-Proof disposal pipe"; unacidable = 1},/obj/structure/alien/weeds{icon_state = "weeds1"},/turf/simulated/floor/engine,/area/awaycontent/a2{name = "MO19 Research"}) "gJ" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = ""},/obj/item/stack/rods,/turf/simulated/floor/plating{broken = 1; heat_capacity = 1e+006; icon_state = "platingdmg3"; tag = "icon-platingdmg3"},/area/awaycontent/a2{name = "MO19 Research"}) -"gK" = (/obj/machinery/door_control{id = "Awaybiohazard"; name = "Biohazard Shutter Control"; pixel_x = -25; pixel_y = 0; req_access_txt = "201"},/obj/machinery/light/small{dir = 8},/obj/machinery/computer/security{desc = "Used to access the various cameras on the outpost."; network = list("MO19","MO19R")},/turf/simulated/floor{dir = 8; heat_capacity = 1e+006; icon_state = "red"},/area/awaycontent/a2{name = "MO19 Research"}) +"gK" = (/obj/machinery/door_control{id = "Awaybiohazard"; name = "Biohazard Shutter Control"; pixel_x = -25; pixel_y = 0; req_access_txt = "201"},/obj/machinery/light/small{dir = 8},/obj/machinery/computer/security{desc = "Used to access the various cameras on the outpost."; network = list("MO19R","MO19")},/turf/simulated/floor{dir = 8; heat_capacity = 1e+006; icon_state = "red"},/area/awaycontent/a2{name = "MO19 Research"}) "gL" = (/obj/structure/stool/bed/chair/office/dark,/turf/simulated/floor{heat_capacity = 1e+006},/area/awaycontent/a2{name = "MO19 Research"}) "gM" = (/obj/structure/table,/obj/machinery/recharger{pixel_y = 4},/turf/simulated/floor{dir = 4; heat_capacity = 1e+006; icon_state = "red"},/area/awaycontent/a2{name = "MO19 Research"}) "gN" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plating{heat_capacity = 1e+006},/area/awaycontent/a2{name = "MO19 Research"}) @@ -417,7 +417,7 @@ "ia" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor/plating{burnt = 1; heat_capacity = 1e+006; icon_state = "panelscorched"; tag = "icon-panelscorched"},/area/awaycontent/a2{name = "MO19 Research"}) "ib" = (/obj/structure/table/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/item/weapon/folder/white,/obj/item/weapon/stamp/rd{pixel_x = 3; pixel_y = -2},/turf/simulated/floor{tag = "icon-cafeteria (NORTHEAST)"; icon_state = "cafeteria"; dir = 5},/area/awaycontent/a2{name = "MO19 Research"}) "ic" = (/obj/structure/table/reinforced,/obj/item/weapon/paper_bin{pixel_x = 1; pixel_y = 9},/turf/simulated/floor{tag = "icon-cafeteria (NORTHEAST)"; icon_state = "cafeteria"; dir = 5},/area/awaycontent/a2{name = "MO19 Research"}) -"id" = (/obj/structure/table/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/machinery/computer/security/telescreen{desc = "Used for monitoring the research division and the labs within."; name = "\improper Research Monitor"; network = list("MO19X","MO19R")},/turf/simulated/floor{tag = "icon-cafeteria (NORTHEAST)"; icon_state = "cafeteria"; dir = 5},/area/awaycontent/a2{name = "MO19 Research"}) +"id" = (/obj/structure/table/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/machinery/computer/security/telescreen{desc = "Used for monitoring the research division and the labs within."; name = "research monitor"; network = list("MO19X","MO19R")},/turf/simulated/floor{tag = "icon-cafeteria (NORTHEAST)"; icon_state = "cafeteria"; dir = 5},/area/awaycontent/a2{name = "MO19 Research"}) "ie" = (/obj/machinery/computer/aifixer,/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor{tag = "icon-cafeteria (NORTHEAST)"; icon_state = "cafeteria"; dir = 5},/area/awaycontent/a2{name = "MO19 Research"}) "if" = (/obj/structure/rack,/obj/structure/window/reinforced{dir = 8},/obj/item/weapon/circuitboard/teleporter,/turf/simulated/floor{dir = 9; heat_capacity = 1e+006; icon_state = "warnwhite"},/area/awaycontent/a2{name = "MO19 Research"}) "ig" = (/obj/structure/rack,/obj/item/device/paicard{pixel_x = 4},/turf/simulated/floor{dir = 1; heat_capacity = 1e+006; icon_state = "warnwhite"},/area/awaycontent/a2{name = "MO19 Research"}) From 48ad48acce31141dfb24e26b93cec44b5492a5cb Mon Sep 17 00:00:00 2001 From: phil235 Date: Tue, 4 Nov 2014 20:30:04 +0100 Subject: [PATCH 034/102] Add a fail message to unbuckling, breaking out of cuffs and closets and performing CPR. --- .../objects/structures/crates_lockers/closets.dm | 2 ++ code/modules/mob/living/carbon/human/species.dm | 4 +++- code/modules/mob/living/living.dm | 12 +++++++++--- 3 files changed, 14 insertions(+), 4 deletions(-) diff --git a/code/game/objects/structures/crates_lockers/closets.dm b/code/game/objects/structures/crates_lockers/closets.dm index c07ca884aea..ba394c7d863 100644 --- a/code/game/objects/structures/crates_lockers/closets.dm +++ b/code/game/objects/structures/crates_lockers/closets.dm @@ -337,3 +337,5 @@ visible_message("[user] successfully broke out of [src]!") user << "You successfully break out of [src]!" open() + else + user << "You fail to break out of [src]!" diff --git a/code/modules/mob/living/carbon/human/species.dm b/code/modules/mob/living/carbon/human/species.dm index a0795957383..5789db91abc 100644 --- a/code/modules/mob/living/carbon/human/species.dm +++ b/code/modules/mob/living/carbon/human/species.dm @@ -687,8 +687,10 @@ if(H.cpr_time < world.time + 30) add_logs(H, M, "CPRed") - H.visible_message("[M] is trying to perform CPR on [H]!") + H.visible_message("[M] is trying to perform CPR on [H]!", \ + "You try to perform CPR on [H]. Hold still!") if(!do_mob(M, H)) + H << "You fail to perform CPR on [H]!" return 0 if((H.health >= -99 && H.health <= 0)) H.cpr_time = world.time diff --git a/code/modules/mob/living/living.dm b/code/modules/mob/living/living.dm index 8e8881b30c4..7a8675e2eb5 100644 --- a/code/modules/mob/living/living.dm +++ b/code/modules/mob/living/living.dm @@ -471,9 +471,11 @@ if(!I || C.buckled) return cuff_break(I, C) + else + C << "You fail to break [I]!" else - C.visible_message("[usr] attempts to remove [I]!", \ + C.visible_message("[C] attempts to remove [I]!", \ "You attempt to remove [I]. (This will take around [displaytime] minutes and you need to stand still.)") spawn(0) if(do_after(C, breakouttime)) @@ -490,6 +492,8 @@ C.legcuffed.loc = usr.loc C.legcuffed = null C.update_inv_legcuffed(0) + else + C << "You fail to remove [I]!" /mob/living/verb/resist() set name = "Resist" @@ -532,15 +536,17 @@ if(C.handcuffed) C.changeNext_move(CLICK_CD_BREAKOUT) C.last_special = world.time + CLICK_CD_BREAKOUT - C.visible_message("[usr] attempts to unbuckle themself!", \ + C.visible_message("[C] attempts to unbuckle themself!", \ "You attempt to unbuckle yourself. (This will take around one minute and you need to stay still.)") spawn(0) if(do_after(usr, 600)) if(!C.buckled) return - C.visible_message("[usr] manages to unbuckle themself!", \ + C.visible_message("[C] manages to unbuckle themself!", \ "You successfully unbuckle yourself.") C.buckled.manual_unbuckle(C) + else + C << "You fail to unbuckle yourself!" else L.buckled.manual_unbuckle(L) else From a42c201b469d40a2ba9cc17a8022f6da4d1bcef8 Mon Sep 17 00:00:00 2001 From: Menshin Date: Tue, 4 Nov 2014 20:31:06 +0100 Subject: [PATCH 035/102] Some tweaks --- code/game/machinery/bots/cleanbot.dm | 2 +- code/game/machinery/bots/ed209bot.dm | 2 +- code/game/machinery/bots/floorbot.dm | 4 ++-- code/game/machinery/bots/medbot.dm | 2 +- code/game/machinery/newscaster.dm | 6 ------ 5 files changed, 5 insertions(+), 11 deletions(-) diff --git a/code/game/machinery/bots/cleanbot.dm b/code/game/machinery/bots/cleanbot.dm index 11433562f69..f6761096304 100644 --- a/code/game/machinery/bots/cleanbot.dm +++ b/code/game/machinery/bots/cleanbot.dm @@ -268,7 +268,7 @@ text("[on ? "On" : "Off"]")) qdel(src) else if (istype(W, /obj/item/weapon/pen)) - var/t = stripped_input(user, "Enter new robot name", src.name, src.created_name,MAX_NAME_LEN) + var/t = stripped_input(user, "Enter new robot name", name, created_name,MAX_NAME_LEN) if (!t) return if (!in_range(src, usr) && loc != usr) diff --git a/code/game/machinery/bots/ed209bot.dm b/code/game/machinery/bots/ed209bot.dm index 93652a4f4b6..f0de1465b63 100644 --- a/code/game/machinery/bots/ed209bot.dm +++ b/code/game/machinery/bots/ed209bot.dm @@ -560,7 +560,7 @@ Auto Patrol[]"}, ..() if(istype(W, /obj/item/weapon/pen)) - var/t = stripped_input(user, "Enter new robot name", src.name, src.created_name,MAX_NAME_LEN) + var/t = stripped_input(user, "Enter new robot name", name, created_name,MAX_NAME_LEN) if(!t) return if(!in_range(src, usr) && loc != usr) return created_name = t diff --git a/code/game/machinery/bots/floorbot.dm b/code/game/machinery/bots/floorbot.dm index 06d910910d3..f723751bf81 100644 --- a/code/game/machinery/bots/floorbot.dm +++ b/code/game/machinery/bots/floorbot.dm @@ -503,7 +503,7 @@ obj/machinery/bot/floorbot/process_scan(var/scan_target) qdel(src) else if (istype(W, /obj/item/weapon/pen)) - var/t = stripped_input(user, "Enter new robot name", src.name, src.created_name,MAX_NAME_LEN) + var/t = stripped_input(user, "Enter new robot name", name, created_name,MAX_NAME_LEN) if (!t) return if (!in_range(src, usr) && loc != usr) @@ -522,7 +522,7 @@ obj/machinery/bot/floorbot/process_scan(var/scan_target) user.unEquip(src, 1) qdel(src) else if (istype(W, /obj/item/weapon/pen)) - var/t = stripped_input(user, "Enter new robot name", src.name, src.created_name,MAX_NAME_LEN) + var/t = stripped_input(user, "Enter new robot name", name, created_name,MAX_NAME_LEN) if (!t) return if (!in_range(src, usr) && loc != usr) diff --git a/code/game/machinery/bots/medbot.dm b/code/game/machinery/bots/medbot.dm index feffa7f6454..8bc19433278 100644 --- a/code/game/machinery/bots/medbot.dm +++ b/code/game/machinery/bots/medbot.dm @@ -557,7 +557,7 @@ /obj/item/weapon/firstaid_arm_assembly/attackby(obj/item/weapon/W as obj, mob/user as mob) ..() if(istype(W, /obj/item/weapon/pen)) - var/t = stripped_input(user, "Enter new robot name", src.name, src.created_name,MAX_NAME_LEN) + var/t = stripped_input(user, "Enter new robot name", name, created_name,MAX_NAME_LEN) if (!t) return if (!in_range(src, usr) && loc != usr) diff --git a/code/game/machinery/newscaster.dm b/code/game/machinery/newscaster.dm index 37d65fe849d..f77023e3baf 100644 --- a/code/game/machinery/newscaster.dm +++ b/code/game/machinery/newscaster.dm @@ -564,8 +564,6 @@ var/list/obj/machinery/newscaster/allCasters = list() //Global list that will co else if(href_list["set_new_message"]) src.msg = trim(stripped_input(usr, "Write your Feed story", "Network Channel Handler")) - /*while (findtext(src.msg," ") == 1) - src.msg = copytext(src.msg,2,lentext(src.msg)+1)*/ src.updateUsrDialog() else if(href_list["set_attachment"]) @@ -621,14 +619,10 @@ var/list/obj/machinery/newscaster/allCasters = list() //Global list that will co else if(href_list["set_wanted_name"]) src.channel_name = trim(stripped_input(usr, "Provide the name of the Wanted person", "Network Security Handler")) - /*while (findtext(src.channel_name," ") == 1) - src.channel_name = copytext(src.channel_name,2,lentext(src.channel_name)+1)*/ src.updateUsrDialog() else if(href_list["set_wanted_desc"]) src.msg = trim(stripped_input(usr, "Provide the a description of the Wanted person and any other details you deem important", "Network Security Handler")) - /*while (findtext(src.msg," ") == 1) - src.msg = copytext(src.msg,2,lentext(src.msg)+1)*/ src.updateUsrDialog() else if(href_list["submit_wanted"]) From 1bf25740910b30aa92c6fd5a2f6d4965f830ab2a Mon Sep 17 00:00:00 2001 From: phil235 Date: Tue, 4 Nov 2014 20:34:44 +0100 Subject: [PATCH 036/102] M not H. derp --- code/modules/mob/living/carbon/human/species.dm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/code/modules/mob/living/carbon/human/species.dm b/code/modules/mob/living/carbon/human/species.dm index 5789db91abc..bc649dd9169 100644 --- a/code/modules/mob/living/carbon/human/species.dm +++ b/code/modules/mob/living/carbon/human/species.dm @@ -687,10 +687,10 @@ if(H.cpr_time < world.time + 30) add_logs(H, M, "CPRed") - H.visible_message("[M] is trying to perform CPR on [H]!", \ + M.visible_message("[M] is trying to perform CPR on [H]!", \ "You try to perform CPR on [H]. Hold still!") if(!do_mob(M, H)) - H << "You fail to perform CPR on [H]!" + M << "You fail to perform CPR on [H]!" return 0 if((H.health >= -99 && H.health <= 0)) H.cpr_time = world.time From 9edaab510dd89dcbd42a5ab5fcd2f4063ed73400 Mon Sep 17 00:00:00 2001 From: Menshin Date: Tue, 4 Nov 2014 20:40:15 +0100 Subject: [PATCH 037/102] And a silent conflict to boot... --- code/__HELPERS/text.dm | 13 ------------- 1 file changed, 13 deletions(-) diff --git a/code/__HELPERS/text.dm b/code/__HELPERS/text.dm index 46ad9412aa4..6ae3a434206 100644 --- a/code/__HELPERS/text.dm +++ b/code/__HELPERS/text.dm @@ -25,19 +25,6 @@ * Text sanitization */ -//this proc strips html properly, but it's not lazy like the other procs. -//this means that it doesn't just remove < and > and call it a day. seriously, who the fuck thought that would be useful. -/proc/strip_html_properly(var/input) - var/opentag = 1 //These store the position of < and > respectively. - var/closetag = 1 - while(1) - opentag = findtext(input, "<") - closetag = findtext(input, ">") - if(!closetag || !opentag) - break - input = copytext(input, 1, opentag) + copytext(input, (closetag + 1)) - return input - //Simply removes < and > and limits the length of the message /proc/strip_html_simple(var/t,var/limit=MAX_MESSAGE_LEN) var/list/strip_chars = list("<",">") From 442e5136144a8916ec086d7cad2754b0f7f557f8 Mon Sep 17 00:00:00 2001 From: Aranclanos Date: Tue, 4 Nov 2014 17:01:00 -0300 Subject: [PATCH 038/102] Made the restriction to create new runes be when you actually try to make a new rune instead of when you use the tome. --- code/game/gamemodes/cult/ritual.dm | 232 ++++++++++++++--------------- 1 file changed, 113 insertions(+), 119 deletions(-) diff --git a/code/game/gamemodes/cult/ritual.dm b/code/game/gamemodes/cult/ritual.dm index 33f9322f2f5..d56d30213d5 100644 --- a/code/game/gamemodes/cult/ritual.dm +++ b/code/game/gamemodes/cult/ritual.dm @@ -538,131 +538,125 @@ var/engwords = list("travel", "blood", "join", "hell", "destroy", "technology", if (!istype(user.loc,/turf)) user << "You do not have enough space to write a proper rune." return - - - - - if (C>=26+runedec+ticker.mode.cult.len) //including the useless rune at the secret room, shouldn't count against the limit of 25 runes - Urist - alert("The cloth of reality can't take that much of a strain. Remove some runes first!") - return - else - switch(alert("You open the tome",,"Commune","Scribe a rune", "Notes")) //Fuck the "Cancel" option. Rewrite the whole tome interface yourself if you want it to work better. And input() is just ugly. - K0000 - if("Cancel") + switch(alert("You open the tome",,"Commune","Scribe a rune", "Notes")) //Fuck the "Cancel" option. Rewrite the whole tome interface yourself if you want it to work better. And input() is just ugly. - K0000 + if("Cancel") + return + if("Commune") + if(usr.get_active_hand() != src) return - if("Commune") - if(usr.get_active_hand() != src) - return - var/input = stripped_input(usr, "Please choose a message to tell to the other acolytes.", "Voice of Blood", "") - if(!input) - return - usr.whisper("O bidai nabora se[pick("'","`")]sma!") - usr.whisper("[input]") - for(var/datum/mind/H in ticker.mode.cult) - if (H.current) - H.current << "[input]" + var/input = stripped_input(usr, "Please choose a message to tell to the other acolytes.", "Voice of Blood", "") + if(!input) return - if("Notes") - if(usr.get_active_hand() != src) - return - notedat = {" - Read the Arcane Tome.
    -
    Word translation notes
    - [words[1]] is [words[words[1]]] Clear
    - [words[2]] is [words[words[2]]] Clear
    - [words[3]] is [words[words[3]]] Clear
    - [words[4]] is [words[words[4]]] Clear
    - [words[5]] is [words[words[5]]] Clear
    - [words[6]] is [words[words[6]]] Clear
    - [words[7]] is [words[words[7]]] Clear
    - [words[8]] is [words[words[8]]] Clear
    - [words[9]] is [words[words[9]]] Clear
    - [words[10]] is [words[words[10]]] Clear
    - "} // whoever screwed the tabbing on this originally is an asshole. + usr.whisper("O bidai nabora se[pick("'","`")]sma!") + usr.whisper("[input]") + for(var/datum/mind/H in ticker.mode.cult) + if (H.current) + H.current << "[input]" + return + if("Notes") + if(usr.get_active_hand() != src) + return + notedat = {" + Read the Arcane Tome.
    +
    Word translation notes
    + [words[1]] is [words[words[1]]] Clear
    + [words[2]] is [words[words[2]]] Clear
    + [words[3]] is [words[words[3]]] Clear
    + [words[4]] is [words[words[4]]] Clear
    + [words[5]] is [words[words[5]]] Clear
    + [words[6]] is [words[words[6]]] Clear
    + [words[7]] is [words[words[7]]] Clear
    + [words[8]] is [words[words[8]]] Clear
    + [words[9]] is [words[words[9]]] Clear
    + [words[10]] is [words[words[10]]] Clear
    + "} // whoever screwed the tabbing on this originally is an asshole. // call(/obj/item/weapon/tome/proc/edit_notes)() - user << browse("[notedat]", "window=notes") + user << browse("[notedat]", "window=notes") + return + if("Scribe a rune") //fixed more assbackward tabbing + if(usr.get_active_hand() != src) return - if("Scribe a rune") //fixed more assbackward tabbing + if (C>=26+runedec+ticker.mode.cult.len) //including the useless rune at the secret room, shouldn't count against the limit of 25 runes - Urist + alert("The cloth of reality can't take that much of a strain. Remove some runes first!") + return + var/list/dictionary = list( + "convert" = list("join","blood","self"), + "wall" = list("destroy","travel","self"), + "blood boil" = list("destroy","see","blood"), + "blood drain" = list("travel","blood","self"), + "raise dead" = list("blood","join","hell"), + "summon narsie" = list("hell","join","self"), + "communicate" = list("self","other","technology"), + "emp" = list("destroy","see","technology"), + "manifest" = list("blood","see","travel"), + "summon tome" = list("see","blood","hell"), + "see invisible" = list("see","hell","join"), + "hide" = list("hide","see","blood"), + "reveal" = list("blood","see","hide"), + "astral journey" = list("hell","travel","self"), + "imbue" = list("hell","technology","join"), + "sacrifice" = list("hell","blood","join"), + "summon cultist" = list("join","other","self"), + "free cultist" = list("travel","technology","other"), + "deafen" = list("hide","other","see"), + "blind" = list("destroy","see","other"), + "stun" = list("join","hide","technology"), + "armor" = list("hell","destroy","other"), + "teleport" = list("travel","self"), + "teleport other" = list("travel","other"), + "summon shell" = list("travel","hell","technology") + ) + + + var/list/scribewords = list("none") + + var/list/english = list() + + for (var/entry in words) + if (words[entry] != entry) + english+=list(words[entry] = entry) + + for (var/entry in dictionary) + var/list/required = dictionary[entry] + if (length(english&required) == required.len) + scribewords += entry + + var/chosen_rune = null + + + if(usr) + chosen_rune = input ("Choose a rune to scribe.") in scribewords + if (!chosen_rune) + return + if (chosen_rune == "none") + user << "You decide against scribing a rune, perhaps you should take this time to study your notes." + return + if (chosen_rune == "teleport") + dictionary[chosen_rune] += input ("Choose a destination word") in english + if (chosen_rune == "teleport other") + dictionary[chosen_rune] += input ("Choose a destination word") in english + + if(user.get_active_hand() != src) + return + + for (var/mob/V in viewers(src)) + V.show_message("[user] slices open a finger and begins to chant and paint symbols on the floor.", 3, "You hear chanting.", 2) + user << "You slice open one of your fingers and begin drawing a rune on the floor whilst chanting the ritual that binds your life essence with the dark arcane energies flowing through the surrounding world." + user.take_overall_damage((rand(9)+1)/10) // 0.1 to 1.0 damage + if(do_after(user, 50)) if(usr.get_active_hand() != src) return - - var/list/dictionary = list( - "convert" = list("join","blood","self"), - "wall" = list("destroy","travel","self"), - "blood boil" = list("destroy","see","blood"), - "blood drain" = list("travel","blood","self"), - "raise dead" = list("blood","join","hell"), - "summon narsie" = list("hell","join","self"), - "communicate" = list("self","other","technology"), - "emp" = list("destroy","see","technology"), - "manifest" = list("blood","see","travel"), - "summon tome" = list("see","blood","hell"), - "see invisible" = list("see","hell","join"), - "hide" = list("hide","see","blood"), - "reveal" = list("blood","see","hide"), - "astral journey" = list("hell","travel","self"), - "imbue" = list("hell","technology","join"), - "sacrifice" = list("hell","blood","join"), - "summon cultist" = list("join","other","self"), - "free cultist" = list("travel","technology","other"), - "deafen" = list("hide","other","see"), - "blind" = list("destroy","see","other"), - "stun" = list("join","hide","technology"), - "armor" = list("hell","destroy","other"), - "teleport" = list("travel","self"), - "teleport other" = list("travel","other"), - "summon shell" = list("travel","hell","technology") - ) - - - var/list/scribewords = list("none") - - var/list/english = list() - - for (var/entry in words) - if (words[entry] != entry) - english+=list(words[entry] = entry) - - for (var/entry in dictionary) - var/list/required = dictionary[entry] - if (length(english&required) == required.len) - scribewords += entry - - var/chosen_rune = null - - - if(usr) - chosen_rune = input ("Choose a rune to scribe.") in scribewords - if (!chosen_rune) - return - if (chosen_rune == "none") - user << "You decide against scribing a rune, perhaps you should take this time to study your notes." - return - if (chosen_rune == "teleport") - dictionary[chosen_rune] += input ("Choose a destination word") in english - if (chosen_rune == "teleport other") - dictionary[chosen_rune] += input ("Choose a destination word") in english - - if(user.get_active_hand() != src) - return - - for (var/mob/V in viewers(src)) - V.show_message("[user] slices open a finger and begins to chant and paint symbols on the floor.", 3, "You hear chanting.", 2) - user << "You slice open one of your fingers and begin drawing a rune on the floor whilst chanting the ritual that binds your life essence with the dark arcane energies flowing through the surrounding world." - user.take_overall_damage((rand(9)+1)/10) // 0.1 to 1.0 damage - if(do_after(user, 50)) - if(usr.get_active_hand() != src) - return - var/mob/living/carbon/human/H = user - var/obj/effect/rune/R = new /obj/effect/rune(user.loc) - user << "You finish drawing the arcane markings of the Geometer." - var/list/required = dictionary[chosen_rune] - R.word1 = english[required[1]] - R.word2 = english[required[2]] - R.word3 = english[required[3]] - R.check_icon() - R.blood_DNA = list() - R.blood_DNA[H.dna.unique_enzymes] = H.dna.blood_type - return + var/mob/living/carbon/human/H = user + var/obj/effect/rune/R = new /obj/effect/rune(user.loc) + user << "You finish drawing the arcane markings of the Geometer." + var/list/required = dictionary[chosen_rune] + R.word1 = english[required[1]] + R.word2 = english[required[2]] + R.word3 = english[required[3]] + R.check_icon() + R.blood_DNA = list() + R.blood_DNA[H.dna.unique_enzymes] = H.dna.blood_type + return else user << "The book seems full of illegible scribbles. Is this a joke?" return From 0e2176c7a0039edabf12a1ddad30a8e245ab7004 Mon Sep 17 00:00:00 2001 From: Aranclanos Date: Tue, 4 Nov 2014 17:23:02 -0300 Subject: [PATCH 039/102] Added a new proc for movable atoms, disposalEnterTry(). It will be used by disposal chutes to check if the object who bumped them can enter or not. As for the moment, mechas and projectiles will fail. --- code/modules/recycling/sortingmachinery.dm | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/code/modules/recycling/sortingmachinery.dm b/code/modules/recycling/sortingmachinery.dm index 3f8c1819d04..0229323eea1 100644 --- a/code/modules/recycling/sortingmachinery.dm +++ b/code/modules/recycling/sortingmachinery.dm @@ -251,7 +251,8 @@ return /obj/machinery/disposal/deliveryChute/Bumped(var/atom/movable/AM) //Go straight into the chute - if(istype(AM, /obj/item/projectile)) return + if(!AM.disposalEnterTry()) + return switch(dir) if(NORTH) if(AM.loc.y != loc.y+1) return @@ -270,6 +271,15 @@ M.loc = src flush() +/atom/movable/proc/disposalEnterTry() + return 1 + +/obj/item/projectile/disposalEnterTry() + return + +/obj/mecha/disposalEnterTry() + return + /obj/machinery/disposal/deliveryChute/flush() flushing = 1 flick("intake-closing", src) From 6efb62989f21fe8473e700c1007fe82e07c25b81 Mon Sep 17 00:00:00 2001 From: paprka Date: Tue, 4 Nov 2014 15:01:22 -0800 Subject: [PATCH 040/102] fixes defibs reviving and noclone check --- code/game/objects/items/weapons/defib.dm | 30 +++++++++++++----------- 1 file changed, 16 insertions(+), 14 deletions(-) diff --git a/code/game/objects/items/weapons/defib.dm b/code/game/objects/items/weapons/defib.dm index 35f6a6a3749..cc796530831 100644 --- a/code/game/objects/items/weapons/defib.dm +++ b/code/game/objects/items/weapons/defib.dm @@ -126,22 +126,20 @@ /obj/item/weapon/defibrillator/verb/toggle_paddles() set name = "Toggle Paddles" set category = "Object" - on = !on var/mob/living/carbon/human/user = usr - if(on) + if(!on) //Detach the paddles into the user's hands - var/list/L = list("left hand" = slot_l_hand,"right hand" = slot_r_hand) - if(!user.equip_in_one_of_slots(paddles, L)) + if(!usr.put_in_hands(paddles)) on = 0 user << "You need a free hand to hold the paddles!" update_icon() return + on = 1 paddles.loc = user else //Remove from their hands and back onto the defib unit remove_paddles(user) - update_icon() return @@ -241,7 +239,7 @@ /obj/item/weapon/twohanded/shockpaddles/proc/check_defib_exists(mainunit, var/mob/living/carbon/human/M, var/obj/O) if (!mainunit || !istype(mainunit, /obj/item/weapon/defibrillator)) //To avoid weird issues from admin spawns M.unEquip(O) - qdel(0) + qdel(O) return 0 else return 1 @@ -287,26 +285,30 @@ busy = 1 update_icon() if(do_after(user, 30)) //beginning to place the paddles on patient's chest to allow some time for people to move away to stop the process + for(var/obj/item/carried_item in H.contents) + if((istype(carried_item, /obj/item/clothing/suit/armor)) || (istype(carried_item, /obj/item/clothing/suit/space))) + user.visible_message("[defib] buzzes: Patient's chest is obscured. Operation aborted.") + playsound(get_turf(src), 'sound/machines/buzz-sigh.ogg', 50, 0) + busy = 0 + update_icon() + return user.visible_message("[user] places [src] on [M.name]'s chest.", "You place [src] on [M.name]'s chest.") playsound(get_turf(src), 'sound/weapons/flash.ogg', 50, 0) var/isghosted = !H.key && H.mind var/tplus = world.time - H.timeofdeath - var/tlimit = 1500 //past this much time the subject is unrecoverable - var/tloss = 900 //but brain damage starts setting in after some time + var/tlimit = 1800 //past this much time the subject is unrecoverable, currently 3m + var/tloss = 900 //brain damage starts setting in after some time, currently 1m30s if(do_after(user, 20)) //placed on chest and short delay to shock for dramatic effect, revive time is 5sec total if(H.stat == 2) var/health = H.health - var/chance = 90 - for(var/obj/item/carried_item in H.contents) - if(istype(carried_item, /obj/item/clothing/suit/armor)) - chance = 25 M.visible_message("[M]'s body convulses a bit.") playsound(get_turf(src), "bodyfall", 50, 1) playsound(get_turf(src), 'sound/weapons/Egloves.ogg', 50, 1, -1) - if(H.health <= -100 && !H.suiciding && prob(chance) && !isghosted && tplus < tlimit && !NOCLONE in H.mutations) + if(H.health <= -100 && !H.suiciding && !isghosted && (tplus < tlimit) && (!NOCLONE in H.mutations)) tobehealed = health + threshold - tobehealed -= 5 //They get 5 health in crit to heal the person or inject stabilizers + tobehealed -= 5 //They get oxy/tox loss healed to give some time to stabilize crit patient. H.adjustOxyLoss(tobehealed) + H.adjustToxLoss(tobehealed) user.visible_message("[defib] pings: Resuscitation successful.") playsound(get_turf(src), 'sound/machines/ping.ogg', 50, 0) H.stat = 1 From 3675d401610fb9788f612efeb74fb4340289b9f6 Mon Sep 17 00:00:00 2001 From: JJRcop Date: Tue, 4 Nov 2014 19:38:15 -0500 Subject: [PATCH 041/102] Fixes #5656 I forgot to make the cyborg pull button use /obj/screen/pull --- code/_onclick/hud/robot.dm | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/code/_onclick/hud/robot.dm b/code/_onclick/hud/robot.dm index 7e3efee803b..66258562b5c 100644 --- a/code/_onclick/hud/robot.dm +++ b/code/_onclick/hud/robot.dm @@ -151,10 +151,9 @@ mymob.fire.name = "fire" mymob.fire.screen_loc = ui_fire - mymob.pullin = new /obj/screen() + mymob.pullin = new /obj/screen/pull() mymob.pullin.icon = 'icons/mob/screen_cyborg.dmi' mymob.pullin.icon_state = "pull0" - mymob.pullin.name = "pull" mymob.pullin.screen_loc = ui_borg_pull mymob.blind = new /obj/screen() From a0b61707a4d3fb71cbbbf20b6cb325cb489c8593 Mon Sep 17 00:00:00 2001 From: tkdrg Date: Tue, 4 Nov 2014 19:00:44 -0300 Subject: [PATCH 042/102] NTRC (PDA chatrooms) bugfixes Removed operator, revamped structure, fixed a lot of bugs Adds myself to admins.txt --- code/game/objects/items/devices/PDA/PDA.dm | 36 +--- .../objects/items/devices/PDA/chatroom.dm | 192 ++++-------------- config/admins.txt | 3 +- 3 files changed, 51 insertions(+), 180 deletions(-) diff --git a/code/game/objects/items/devices/PDA/PDA.dm b/code/game/objects/items/devices/PDA/PDA.dm index ac5181f751f..2d369961551 100644 --- a/code/game/objects/items/devices/PDA/PDA.dm +++ b/code/game/objects/items/devices/PDA/PDA.dm @@ -635,40 +635,26 @@ var/global/list/obj/item/device/pda/PDAs = list() var/t = stripped_input(U, "Please enter channel", name, (chat_channel)) as text if(t) - ntrclog[chat_channel] = "
    " + ntrclog[chat_channel] var/datum/chatroom/C = chatchannels[chat_channel] - if(!findtext(t,"#",1,2)) - t = "#" + t - chat_channel = t - C.parse_msg(src, nick, "/join [chat_channel]") + var/ret = C.parse_msg(src, nick, "/join [t]") + if((ret in chatchannels) && (ret != chat_channel)) + ntrclog[chat_channel] = "
    " + ntrclog[chat_channel] + chat_channel = ret if("NTRC Message") var/t = msg_input(U) as text var/datum/chatroom/C = chatchannels[chat_channel] if(C) - var/lt = text2list(t, " ") - if(lt[1] == "/join") - if(!findtext(lt[2],"#",1,2)) - lt[2] = "#" + lt[2] var/ret = C.parse_msg(src,nick,t) - if(findtextEx(ret,"ERR_",1,5)) + if(findtextEx(ret,"BAD_",1,5)) ntrclog[chat_channel] = "[ret]
    " + ntrclog[chat_channel] - else - if(ret == 0) - ntrclog[chat_channel] = "Failure
    " + ntrclog[chat_channel] - else - if(lt[1] == "/join") - chat_channel = lt[2] + else if(ret in chatchannels) + chat_channel = ret if("NTRC Help") - var/helptext = "NTRC reference:

    " - helptext += "General commands
    " - helptext += "/join #channel
    /part
    /log amountoflines
    /who
    /topic
    /register

    " - helptext += "Moderation commands
    " - helptext += "/ban targetnick
    /unban targetnick
    /kick targetnick
    /mute targetnick

    " - helptext += "Management commands
    " - helptext += "/topic topictext
    /op targetnick
    /deop targetnick
    /delchannel" - usr << browse(helptext, "window=ntrchelp;size=400x444;border=1;can_resize=1;can_close=1;can_minimize=0") + var/helptext = "NTRC Commands:

    " + helptext += "/join #channel
    /register
    /log amountoflines

    " + usr << browse(helptext, "window=ntrchelp;size=200x200;border=1;can_resize=1;can_close=1;can_minimize=1") @@ -1161,7 +1147,7 @@ var/global/list/obj/item/device/pda/PDAs = list() ntrclog[C] = msg + ntrclog[C] else ntrclog[channel] = msg + ntrclog[channel] - if (!silent) + if (findtext(message, nick) && !silent) loc.audible_message("\icon[src] *[ttone]*", null, 3) /proc/get_viewable_pdas() diff --git a/code/game/objects/items/devices/PDA/chatroom.dm b/code/game/objects/items/devices/PDA/chatroom.dm index 1ba6a4c5813..cc82b4c4c96 100644 --- a/code/game/objects/items/devices/PDA/chatroom.dm +++ b/code/game/objects/items/devices/PDA/chatroom.dm @@ -1,4 +1,4 @@ -var/datum/chatroom/default_ntrc_chatroom = new("") +var/datum/chatroom/default_ntrc_chatroom = new() var/list/chatchannels = list(default_ntrc_chatroom.name = default_ntrc_chatroom) //procs that can be used directly: @@ -6,13 +6,9 @@ var/list/chatchannels = list(default_ntrc_chatroom.name = default_ntrc_chatroom) /datum/chatroom var/name = "#ss13" - var/topic = "Welcome to the best NTRC channel in this sector of the galaxy!" // topic message for the chatroom - var/list/operators = list() // chat operators var/list/logs = list() // chat logs - var/list/muted = list() // muted users - var/list/banned = list() // banned users var/list/auth = list() // authenticated clients - var/list/users = list() // current users + var/list/authed = list() //authenticated users var/datum/events/events = new () var/list/datum/event/evlist = list() @@ -22,20 +18,25 @@ var/list/chatchannels = list(default_ntrc_chatroom.name = default_ntrc_chatroom) /datum/chatroom/proc/parse_msg(client,nick,message) var/obj/machinery/message_server/MS = check_server(client) if(!MS) - return "ERR_TCOM" + return "BAD_TCOM" - if(!nick || length(nick) > 8) - return "ERR_NICK" + if(!get_auth(client,nick) || !nick || length(nick) > 8) + return "BAD_NICK" MS.send_chat_message(nick,name,message) - if(findtext(message,"/",1,2)) - return handle_command(client,nick,copytext(message,2)) + var/list/cmd=text2list(message, " ") + switch(cmd[1]) + if("/register") + return register_auth(client,nick) + if("/join") + if(cmd[2]) return channel_join(client,nick,cmd[2]) + if("/log") + if(cmd[2]) return get_log(client,nick,cmd[2]) - else - return send_message(client,nick,message) + return send_message(client,nick,message) -//the following are for internal use only +//the following are helper procs, FOR INTERNAL USE ONLY /datum/chatroom/proc/check_server(client) var/atom/C = client @@ -45,168 +46,51 @@ var/list/chatchannels = list(default_ntrc_chatroom.name = default_ntrc_chatroom) var/turf/T = get_turf(MS) if(MS.active && (T.z == CT.z)) return MS - return 0 - -/datum/chatroom/proc/handle_command(client,nick,command) //command parser - var/list/cmd=text2list(command, " ") - - if(!get_auth(client,nick)) - return "ERR_AUTH" - - switch(cmd[1]) //argument-less commmands - if("topic") - if(cmd.len == 1) - return get_topic(client) - else - return set_topic(client,nick,cmd[2]) - if("part") - return channel_part(client,nick) - if("delchannel") - return delete_channel(client,nick) - if("who") - return get_who(client, nick) - if("register") - return register_auth(client,nick) - - if(cmd.len == 1) - return "ERR_ARGS" - - switch(cmd[1]) //commands with 1 arg - if("join") - return channel_join(client,nick,cmd[2]) - if("log") - return get_log(client,nick,cmd[2]) - if("op") - return make_op(client,nick,cmd[2]) - if("deop") - return deop(client,nick,cmd[2]) - if("ban") - return ban(client,nick,cmd[2]) - if("unban") - return unban(client,nick,cmd[2]) - if("kick") - return kick(client,nick,cmd[2]) - if("mute") - return mute_nick(client,nick,cmd[2]) - - return "ERR_WCMD" + return null /datum/chatroom/proc/send_message(client,nick,message) //standard message - if(nick in muted) - return "ERR_MUTE" if(!message) - return "ERR_BLNK" - logs += "[strip_html_properly(nick)]> [strip_html_properly(message)]" + return 0 + logs.Insert(1,"[strip_html_properly(nick)]> [strip_html_properly(message)]") log_chat("[usr]/([usr.ckey]) as [nick] sent to [name]: [message]") events.fireEvent("msg_chat",name,nick,message) return 1 /datum/chatroom/proc/get_auth(client,nick) //check auth - if((!(nick in auth)) || (auth[nick] == client)) + if((!(nick in authed)) || (auth[client] == nick)) return 1 return 0 -//chat commands go here +//chat commands go here, FOR INTERNAL USE ONLY /datum/chatroom/proc/register_auth(client,nick) //register if(!get_auth(client,nick)) - return 0 - auth[nick] = client + return "BAD_REGS" + auth[client] = nick + authed += nick return 1 -/datum/chatroom/proc/delete_channel(client,nick) //delchannel - if(nick in operators) - for(var/event in events.events) - events.clearEvent("msg_chat",event) - qdel(src) - return 1 - return 0 - /datum/chatroom/proc/channel_join(client,nick,channel) //join if(!findtext(channel,"#",1,2)) channel = "#" + channel - if(channel == name) - if((nick in banned) || (nick in users)) - return 0 - users += nick - get_topic(client,nick) - evlist[nick] = events.addEvent("msg_chat",client,"msg_chat") - return 1 - else + if(channel == name) //join this channel + if(!(client in evlist)) + evlist[client] = events.addEvent("msg_chat",client,"msg_chat") + return name + + else //leave this channel, join another one + if(client in evlist) + events.clearEvent("msg_chat",evlist[client]) + evlist -= client if(!(channel in chatchannels)) - var/ret = new_channel(client,nick,channel) - if(!ret) - return 0 - channel_part(client,nick) + var/datum/chatroom/NC = new /datum/chatroom() + NC.name = channel + chatchannels[channel] = NC var/datum/chatroom/C = chatchannels[channel] return C.parse_msg(client,nick,"/join [channel]") -/datum/chatroom/proc/channel_part(client,nick) //part - users -= nick - events.clearEvent("msg_chat",evlist[nick]) - return 1 - -/datum/chatroom/proc/make_op(client,nick,target) //op - if(nick in operators) - operators += target - return 1 - return 0 - -/datum/chatroom/proc/deop(client,nick,target) //deop - if(nick in operators) - operators -= target - return 1 - return 0 - -/datum/chatroom/proc/ban(client,nick,target) //ban - if(nick in operators) - banned += target - return 1 - return 0 - -/datum/chatroom/proc/unban(client,nick,target) //unban - if(nick in operators) - banned -= target - return 1 - return 0 - -/datum/chatroom/proc/kick(client,nick,target) //kick - if(nick in operators) - channel_part(null,nick) - return 1 - return 0 - -/datum/chatroom/proc/set_topic(client,nick,newtopic) //topic - if(nick in operators) - topic = strip_html_properly(newtopic) - return 1 - return 0 - -/datum/chatroom/proc/get_topic(client,nick) //topic - call(client,"msg_chat")(name,"NTbot","TOPIC: [topic]") - return 1 - -/datum/chatroom/proc/get_who(client,nick) //who - for(var/user in users) - call(client,"msg_chat")(name,"NTbot","WHO: [user]") - return 1 - /datum/chatroom/proc/get_log(client,nick,lines) //log + lines = text2num(lines) + lines = min(lines, logs.len) for(var/i=0;i Date: Tue, 4 Nov 2014 19:33:41 -0800 Subject: [PATCH 043/102] fixes basically everything wrong with defibs right now --- code/game/objects/items/weapons/defib.dm | 48 +++++++++++++++--------- 1 file changed, 31 insertions(+), 17 deletions(-) diff --git a/code/game/objects/items/weapons/defib.dm b/code/game/objects/items/weapons/defib.dm index cc796530831..00d375a75bc 100644 --- a/code/game/objects/items/weapons/defib.dm +++ b/code/game/objects/items/weapons/defib.dm @@ -126,20 +126,21 @@ /obj/item/weapon/defibrillator/verb/toggle_paddles() set name = "Toggle Paddles" set category = "Object" + on = !on var/mob/living/carbon/human/user = usr - if(!on) + if(on) //Detach the paddles into the user's hands if(!usr.put_in_hands(paddles)) on = 0 user << "You need a free hand to hold the paddles!" update_icon() return - on = 1 paddles.loc = user else //Remove from their hands and back onto the defib unit remove_paddles(user) + update_icon() return @@ -230,11 +231,15 @@ return (OXYLOSS) /obj/item/weapon/twohanded/shockpaddles/dropped(mob/user as mob) - ..() - user << "The paddles snap back into the main unit." - defib.on = 0 - loc = defib - defib.update_icon() + if(user) + var/obj/item/weapon/twohanded/O = user.get_inactive_hand() + if(istype(O)) + O.unwield() + user << "The paddles snap back into the main unit." + defib.on = 0 + loc = defib + defib.update_icon() + return unwield() /obj/item/weapon/twohanded/shockpaddles/proc/check_defib_exists(mainunit, var/mob/living/carbon/human/M, var/obj/O) if (!mainunit || !istype(mainunit, /obj/item/weapon/defibrillator)) //To avoid weird issues from admin spawns @@ -285,30 +290,37 @@ busy = 1 update_icon() if(do_after(user, 30)) //beginning to place the paddles on patient's chest to allow some time for people to move away to stop the process - for(var/obj/item/carried_item in H.contents) - if((istype(carried_item, /obj/item/clothing/suit/armor)) || (istype(carried_item, /obj/item/clothing/suit/space))) - user.visible_message("[defib] buzzes: Patient's chest is obscured. Operation aborted.") - playsound(get_turf(src), 'sound/machines/buzz-sigh.ogg', 50, 0) - busy = 0 - update_icon() - return user.visible_message("[user] places [src] on [M.name]'s chest.", "You place [src] on [M.name]'s chest.") playsound(get_turf(src), 'sound/weapons/flash.ogg', 50, 0) var/isghosted = !H.key && H.mind var/tplus = world.time - H.timeofdeath var/tlimit = 1800 //past this much time the subject is unrecoverable, currently 3m var/tloss = 900 //brain damage starts setting in after some time, currently 1m30s + var/total_burn = 0 + var/total_brute = 0 if(do_after(user, 20)) //placed on chest and short delay to shock for dramatic effect, revive time is 5sec total + for(var/obj/item/carried_item in H.contents) + if((istype(carried_item, /obj/item/clothing/suit/armor)) || (istype(carried_item, /obj/item/clothing/suit/space))) + user.visible_message("[defib] buzzes: Patient's chest is obscured. Operation aborted.") + playsound(get_turf(src), 'sound/machines/buzz-sigh.ogg', 50, 0) + busy = 0 + update_icon() + return if(H.stat == 2) var/health = H.health M.visible_message("[M]'s body convulses a bit.") playsound(get_turf(src), "bodyfall", 50, 1) playsound(get_turf(src), 'sound/weapons/Egloves.ogg', 50, 1, -1) - if(H.health <= -100 && !H.suiciding && !isghosted && (tplus < tlimit) && (!NOCLONE in H.mutations)) + for(var/obj/item/organ/limb/O in H.organs) + total_brute += O.brute_dam + total_burn += O.burn_dam + if(H.health <= -100 && total_burn <= 180 && total_brute <= 180 && !H.suiciding && !isghosted && tplus < tlimit && !(NOCLONE in H.mutations)) tobehealed = health + threshold - tobehealed -= 5 //They get oxy/tox loss healed to give some time to stabilize crit patient. + tobehealed -= 5 //They get 5 of each type of damage healed so excessive combined damage will not immediately kill them after they get revived H.adjustOxyLoss(tobehealed) H.adjustToxLoss(tobehealed) + H.adjustFireLoss(tobehealed) + H.adjustBruteLoss(tobehealed) user.visible_message("[defib] pings: Resuscitation successful.") playsound(get_turf(src), 'sound/machines/ping.ogg', 50, 0) H.stat = 1 @@ -321,7 +333,9 @@ add_logs(user, M, "revived", object="defibrillator") else if(tplus > tlimit) - user.visible_message("[defib] buzzes: Resuscitation failed. Tissue damage beyond point of no return for defibrillation.") + user.visible_message("[defib] buzzes: Resuscitation failed - Heart tissue damage beyond point of no return for defibrillation.") + else if(total_burn >= 180 || total_brute >= 180) + user.visible_message("[defib] buzzes: Resuscitation failed - Severe tissue damage detected.") else user.visible_message("[defib] buzzes: Resuscitation failed.") if(isghosted) From bfc62a78aaf8304303a498519882ad1fef832d97 Mon Sep 17 00:00:00 2001 From: JJRcop Date: Tue, 4 Nov 2014 23:48:57 -0500 Subject: [PATCH 044/102] Changes the defibrillator to use HEALTH_THRESHOLD_DEAD as the max damage it heals Changes succumb to apply exactly the required amount of oxyloss to die, instead of a hard-coded 200 --- code/game/objects/items/weapons/defib.dm | 13 +++++-------- code/modules/mob/living/living.dm | 4 ++-- 2 files changed, 7 insertions(+), 10 deletions(-) diff --git a/code/game/objects/items/weapons/defib.dm b/code/game/objects/items/weapons/defib.dm index 00d375a75bc..fec8605190c 100644 --- a/code/game/objects/items/weapons/defib.dm +++ b/code/game/objects/items/weapons/defib.dm @@ -292,7 +292,7 @@ if(do_after(user, 30)) //beginning to place the paddles on patient's chest to allow some time for people to move away to stop the process user.visible_message("[user] places [src] on [M.name]'s chest.", "You place [src] on [M.name]'s chest.") playsound(get_turf(src), 'sound/weapons/flash.ogg', 50, 0) - var/isghosted = !H.key && H.mind + var/mob/dead/observer/ghost = H.get_ghost() var/tplus = world.time - H.timeofdeath var/tlimit = 1800 //past this much time the subject is unrecoverable, currently 3m var/tloss = 900 //brain damage starts setting in after some time, currently 1m30s @@ -314,7 +314,7 @@ for(var/obj/item/organ/limb/O in H.organs) total_brute += O.brute_dam total_burn += O.burn_dam - if(H.health <= -100 && total_burn <= 180 && total_brute <= 180 && !H.suiciding && !isghosted && tplus < tlimit && !(NOCLONE in H.mutations)) + if(H.health <= config.health_threshold_dead && total_burn <= 180 && total_brute <= 180 && !H.suiciding && !ghost && tplus < tlimit && !(NOCLONE in H.mutations)) tobehealed = health + threshold tobehealed -= 5 //They get 5 of each type of damage healed so excessive combined damage will not immediately kill them after they get revived H.adjustOxyLoss(tobehealed) @@ -338,12 +338,9 @@ user.visible_message("[defib] buzzes: Resuscitation failed - Severe tissue damage detected.") else user.visible_message("[defib] buzzes: Resuscitation failed.") - if(isghosted) - for(var/mob/dead/observer/ghost in player_list) - if(ghost.mind == H.mind) - if(ghost.can_reenter_corpse) - ghost << "Your heart is being defibrillated. Return to your body if you want to be revived! (Verbs -> Ghost -> Re-enter corpse)" - ghost << sound('sound/effects/genetics.ogg') + if(ghost) + ghost << "Your heart is being defibrillated. Return to your body if you want to be revived! (Verbs -> Ghost -> Re-enter corpse)" + ghost << sound('sound/effects/genetics.ogg') playsound(get_turf(src), 'sound/machines/buzz-two.ogg', 50, 0) defib.deductcharge(revivecost) update_icon() diff --git a/code/modules/mob/living/living.dm b/code/modules/mob/living/living.dm index 8e8881b30c4..bea4182b593 100644 --- a/code/modules/mob/living/living.dm +++ b/code/modules/mob/living/living.dm @@ -35,8 +35,8 @@ set hidden = 1 if (InCritical()) src.attack_log += "[src] has [whispered ? "whispered his final words" : "succumbed to death"] with [round(health, 0.1)] points of health!" - src.adjustOxyLoss(src.health + 200) - src.health = 100 - src.getOxyLoss() - src.getToxLoss() - src.getFireLoss() - src.getBruteLoss() + src.adjustOxyLoss(src.health - config.health_threshold_dead) + updatehealth() if(!whispered) src << "You have given up life and succumbed to death." death() From edb247bd173501bfa7cd703466042bbd92800e9f Mon Sep 17 00:00:00 2001 From: MrPerson Date: Tue, 4 Nov 2014 22:33:07 -0800 Subject: [PATCH 045/102] Updates the changelog up to 11/4/14 --- html/changelog.html | 20 ++++++++++++++++++++ html/changelogs/.all_changelog.yml | 22 ++++++++++++++++++++++ html/changelogs/MrPerson-PR5619.yml | 5 ----- html/changelogs/Paprka-PR-5427.yml | 7 ------- html/changelogs/Tkdrg-chatrooms.yml | 4 ---- 5 files changed, 42 insertions(+), 16 deletions(-) delete mode 100644 html/changelogs/MrPerson-PR5619.yml delete mode 100644 html/changelogs/Paprka-PR-5427.yml delete mode 100644 html/changelogs/Tkdrg-chatrooms.yml diff --git a/html/changelog.html b/html/changelog.html index 9484918d05f..f3a648b41ab 100644 --- a/html/changelog.html +++ b/html/changelog.html @@ -55,6 +55,26 @@ --> +
    +

    04 November 2014

    +

    MrPerson updated:

    +
      +
    • You can use AI Upload modules directly on unslaved cyborgs to change their laws. The panel has to be open to do this.
    • +
    • Newly emagged cyborgs get locked down for a little bit until their new laws get shown. Thank you to whoever bitched about it on singulo and filed an issue report.
    • +
    +

    Paprika updated:

    +
      +
    • Added an advanced mop for the janitor, available at the protolathe. This hi-tech custodian's friend can mop twice as many floor tiles before needing to return to your bucket!
    • +
    • Moved holosign projector to the protolathe and gave the janitor back his old signs. We hope you've enjoyed this free trial run of holo projectors, but our budget is tight!
    • +
    • Added a holosign projector to the janitor module for cyborgs.
    • +
    • Soap now has a delay. Different soap types clean faster than others, but expect to put it some extra arm work if you want to clean that fresh blood!
    • +
    +

    Tkdrg updated:

    +
      +
    • Cutting-edge research in a secret Nanotransen lab has shed light into a revolutionary form of communication technology known as 'chat'. The Personal Data Assistants of Space Station 13 have been deployed with an experimental module implementing this system, dubbed 'Nanotransen Relay Chat'.
    • +
    +
    +

    30 October 2014

    MrPerson updated:

    diff --git a/html/changelogs/.all_changelog.yml b/html/changelogs/.all_changelog.yml index 88131e71430..0d69f4a4858 100644 --- a/html/changelogs/.all_changelog.yml +++ b/html/changelogs/.all_changelog.yml @@ -2044,3 +2044,25 @@ DO NOT EDIT THIS FILE BY HAND! AUTOMATICALLY GENERATED BY ss13_genchangelog.py. - bugfix: Jetpacking after being thrown out a mass driver will cancel out your momentum. - bugfix: Shooting a gun causes you to drift the other direction like spraying a fire extinguisher. +2014-11-04: + MrPerson: + - rscadd: You can use AI Upload modules directly on unslaved cyborgs to change their + laws. The panel has to be open to do this. + - bugfix: Newly emagged cyborgs get locked down for a little bit until their new + laws get shown. Thank you to whoever bitched about it on singulo and filed an + issue report. + Paprika: + - rscadd: Added an advanced mop for the janitor, available at the protolathe. This + hi-tech custodian's friend can mop twice as many floor tiles before needing + to return to your bucket! + - tweak: Moved holosign projector to the protolathe and gave the janitor back his + old signs. We hope you've enjoyed this free trial run of holo projectors, but + our budget is tight! + - rscadd: Added a holosign projector to the janitor module for cyborgs. + - tweak: Soap now has a delay. Different soap types clean faster than others, but + expect to put it some extra arm work if you want to clean that fresh blood! + Tkdrg: + - rscadd: Cutting-edge research in a secret Nanotransen lab has shed light into + a revolutionary form of communication technology known as 'chat'. The Personal + Data Assistants of Space Station 13 have been deployed with an experimental + module implementing this system, dubbed 'Nanotransen Relay Chat'. diff --git a/html/changelogs/MrPerson-PR5619.yml b/html/changelogs/MrPerson-PR5619.yml deleted file mode 100644 index 3ee748c66c9..00000000000 --- a/html/changelogs/MrPerson-PR5619.yml +++ /dev/null @@ -1,5 +0,0 @@ -author: MrPerson -delete-after: True -changes: - - rscadd: "You can use AI Upload modules directly on unslaved cyborgs to change their laws. The panel has to be open to do this." - - bugfix: "Newly emagged cyborgs get locked down for a little bit until their new laws get shown. Thank you to whoever bitched about it on singulo and filed an issue report." \ No newline at end of file diff --git a/html/changelogs/Paprka-PR-5427.yml b/html/changelogs/Paprka-PR-5427.yml deleted file mode 100644 index 5369a9bd69f..00000000000 --- a/html/changelogs/Paprka-PR-5427.yml +++ /dev/null @@ -1,7 +0,0 @@ -author: Paprika -delete-after: True -changes: - - rscadd: "Added an advanced mop for the janitor, available at the protolathe. This hi-tech custodian's friend can mop twice as many floor tiles before needing to return to your bucket!" - - tweak: "Moved holosign projector to the protolathe and gave the janitor back his old signs. We hope you've enjoyed this free trial run of holo projectors, but our budget is tight!" - - rscadd: "Added a holosign projector to the janitor module for cyborgs." - - tweak: "Soap now has a delay. Different soap types clean faster than others, but expect to put it some extra arm work if you want to clean that fresh blood!" \ No newline at end of file diff --git a/html/changelogs/Tkdrg-chatrooms.yml b/html/changelogs/Tkdrg-chatrooms.yml deleted file mode 100644 index 207891b2727..00000000000 --- a/html/changelogs/Tkdrg-chatrooms.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: Tkdrg -delete-after: true -changes: - - rscadd: "Cutting-edge research in a secret Nanotransen lab has shed light into a revolutionary form of communication technology known as 'chat'. The Personal Data Assistants of Space Station 13 have been deployed with an experimental module implementing this system, dubbed 'Nanotransen Relay Chat'." From 20e90d1168fc7ef4abdb3f8d6d569a8e263b07f5 Mon Sep 17 00:00:00 2001 From: phil235 Date: Wed, 5 Nov 2014 14:45:47 +0100 Subject: [PATCH 046/102] Fixes typos in message and icon. Fixes the ability to beat up a pAI. Adds a cooldown to attack_animal on mechs. --- code/ATMOSPHERICS/atmospherics.dm | 2 +- code/game/mecha/mecha.dm | 1 + code/modules/mob/living/silicon/pai/pai.dm | 3 ++- icons/mecha/mecha.dmi | Bin 142034 -> 142032 bytes 4 files changed, 4 insertions(+), 2 deletions(-) diff --git a/code/ATMOSPHERICS/atmospherics.dm b/code/ATMOSPHERICS/atmospherics.dm index 41f2276b61f..6b75c0481b0 100644 --- a/code/ATMOSPHERICS/atmospherics.dm +++ b/code/ATMOSPHERICS/atmospherics.dm @@ -86,7 +86,7 @@ Pipelines + Other Objects -> Pipe network var/datum/gas_mixture/int_air = return_air() var/datum/gas_mixture/env_air = loc.return_air() if ((int_air.return_pressure()-env_air.return_pressure()) > 2*ONE_ATMOSPHERE) - user << "You cannot unwrench this [src], it is too exerted due to internal pressure." + user << "You cannot unwrench [src], it is too exerted due to internal pressure." add_fingerprint(user) return 1 playsound(src.loc, 'sound/items/Ratchet.ogg', 50, 1) diff --git a/code/game/mecha/mecha.dm b/code/game/mecha/mecha.dm index e8ac2fe055b..4a9e05ee11e 100644 --- a/code/game/mecha/mecha.dm +++ b/code/game/mecha/mecha.dm @@ -494,6 +494,7 @@ obj/mecha/proc/can_use(mob/user) /obj/mecha/attack_animal(mob/living/simple_animal/user as mob) src.log_message("Attack by simple animal. Attacker - [user].",1) + user.changeNext_move(CLICK_CD_MELEE) if(user.melee_damage_upper == 0) user.emote("[user.friendly] [src]") else diff --git a/code/modules/mob/living/silicon/pai/pai.dm b/code/modules/mob/living/silicon/pai/pai.dm index 9e0c0f08e7f..4c773abce50 100644 --- a/code/modules/mob/living/silicon/pai/pai.dm +++ b/code/modules/mob/living/silicon/pai/pai.dm @@ -1,9 +1,10 @@ /mob/living/silicon/pai name = "pAI" icon = 'icons/obj/status_display.dmi' //invisibility! - mouse_opacity + mouse_opacity = 0 density = 0 mob_size = 0 + invisibility = 101 var/network = "SS13" var/obj/machinery/camera/current = null diff --git a/icons/mecha/mecha.dmi b/icons/mecha/mecha.dmi index c9e3455fa55f8c72b95dd675bdf3796b7d02d138..c4eb2e86dca8a6542ec0bb79df635e3119c5b7d4 100644 GIT binary patch delta 440 zcmV;p0Z0DQ)dK& zvF(CQN2lXL-yxMiGDgBAp)Gy-E^VFn@yTqkCdmJosO z5#Q^&7Aj}i-Rd{2{)6^Yt208anH49Nomf9opAv_0mt#ppE?GH^A#%w|BtxY|0$ix3 zMLg7;9^nYY>fXwb_$25tBdHA2H0P5{mF!{gA=sr`HKFl8#q$Omv&!=Bar1$acK-I%w%z{LR^n; zY9vM?G)qLvEn*)VS{zK%faHl8wH*12YG_A!9ImX%m4yga9tk#NAOnj?^*Jq5`ZEo9 zRpQEZmy?76B|LA<#rBrr?e08v6UVq;8{A$e)F-X5dQ4L6|15p#^h_5?AtgRLDWn{I i!5ntSEo={a_YeGsu9PU&_hp0T0f*)R0k`G>0_-S1cgxiP delta 471 zcmV;|0Vw{^)dnXc`y#3e8joX5z?@nV~Ix`Yu2Pm-_go|%CN0@sO|q$Nb) zd&Kv;u7%23cC-2otAD5c)ary#Yi7lfWk=SJ)ThK@+~imikxN!iV~AX`63I|$kpO3^ zX%P=Kr$;yfvAVS~Bt8jx%t$K3G|l-WQziQsQEf%?13_ zAoX?Ue`wAYO2*iKS*wEEj=>o!D~|+EWFP~JNcAZ#Q~EOv zcv0fYb(3RB3Qe==^{Qke49$h{h);YHwnw{87{gk(_QNBSpaBRyug%5wmf`j8JarO3 z#<*V^++HWtC#|r0Oj7LsEPd$oOczNZB|bYTq#S+09JYrIZ1y|%4=%{A#^#3mu7l(O NhvWePx8wl=>?r&=;L!j8 From ea1daa40d5b0d8ba3e269b2334c37c9278b64e0f Mon Sep 17 00:00:00 2001 From: phil235 Date: Wed, 5 Nov 2014 17:42:40 +0100 Subject: [PATCH 047/102] moved attack_slime to carbon/alien to handle both larva and humanoid, with a little override in larva and humanoid. Created proc/grabbedby in mob/living/living_defense.dm to handle all grab stuff in the attack_hand's and attack_alien's. Fixed typos in messages. one attack_larva gets a return attack_alien for its harm part. Fixing larva attack on larva, couldn't help a fellow larva. moving humanoid/attack_larva to alien/attack_larva() to handle both humanoid and larva being attacked by larva. Fix a bug with attack_slime where you could glomp a dead humanoid indefinitely. --- code/game/machinery/bots/bots.dm | 4 +- code/game/machinery/turrets.dm | 4 +- .../mob/living/carbon/alien/alien_defense.dm | 95 ++++++++++++- .../living/carbon/alien/humanoid/humanoid.dm | 133 +----------------- .../mob/living/carbon/alien/larva/larva.dm | 70 +-------- .../living/carbon/human/human_attackalien.dm | 14 +- .../mob/living/carbon/human/human_defense.dm | 5 + .../mob/living/carbon/human/species.dm | 20 +-- .../mob/living/carbon/monkey/monkey.dm | 58 +++----- code/modules/mob/living/carbon/slime/slime.dm | 26 +--- code/modules/mob/living/living_defense.dm | 22 ++- .../modules/mob/living/silicon/robot/robot.dm | 19 +-- .../mob/living/simple_animal/simple_animal.dm | 15 +- 13 files changed, 163 insertions(+), 322 deletions(-) diff --git a/code/game/machinery/bots/bots.dm b/code/game/machinery/bots/bots.dm index 40fb4776d87..2d91bb74a4a 100644 --- a/code/game/machinery/bots/bots.dm +++ b/code/game/machinery/bots/bots.dm @@ -145,7 +145,7 @@ /obj/machinery/bot/attack_alien(var/mob/living/carbon/alien/user as mob) user.changeNext_move(CLICK_CD_MELEE) health -= rand(15,30)*brute_dam_coeff - visible_message("[user] has slashed [src]!") + visible_message("[user] has slashed [src]!") playsound(loc, 'sound/weapons/slice.ogg', 25, 1, -1) if(prob(10)) new /obj/effect/decal/cleanable/oil(loc) @@ -157,7 +157,7 @@ return M.changeNext_move(CLICK_CD_MELEE) health -= M.melee_damage_upper - visible_message("[M] has [M.attacktext] [src]!") + visible_message("[M] has [M.attacktext] [src]!") add_logs(M, src, "attacked", admin=0) if(prob(10)) new /obj/effect/decal/cleanable/oil(loc) diff --git a/code/game/machinery/turrets.dm b/code/game/machinery/turrets.dm index f178b810d39..b035478cd30 100644 --- a/code/game/machinery/turrets.dm +++ b/code/game/machinery/turrets.dm @@ -330,7 +330,7 @@ M.changeNext_move(CLICK_CD_MELEE) if(!(stat & BROKEN)) playsound(src.loc, 'sound/weapons/slash.ogg', 25, 1, -1) - visible_message("[] has slashed at []!", M, src) + visible_message("[M] has slashed at [src]!") src.health -= 15 if (src.health <= 0) src.die() @@ -413,7 +413,7 @@ /obj/machinery/gun_turret/attack_alien(mob/user as mob) user.changeNext_move(CLICK_CD_MELEE) - user.visible_message("[user] slashes at [src]", "You slash at [src]") + user.visible_message("[user] slashes at [src]", "You slash at [src]") take_damage(15) return diff --git a/code/modules/mob/living/carbon/alien/alien_defense.dm b/code/modules/mob/living/carbon/alien/alien_defense.dm index 7766851cbf1..cb4df3fcb16 100644 --- a/code/modules/mob/living/carbon/alien/alien_defense.dm +++ b/code/modules/mob/living/carbon/alien/alien_defense.dm @@ -1,2 +1,95 @@ /mob/living/carbon/alien/hitby(atom/movable/AM) - ..(AM, 1) \ No newline at end of file + ..(AM, 1) + + +/*Code for aliens attacking aliens. Because aliens act on a hivemind, I don't see them as very aggressive with each other. +As such, they can either help or harm other aliens. Help works like the human help command while harm is a simple nibble. +In all, this is a lot like the monkey code. /N +*/ +/mob/living/carbon/alien/attack_alien(mob/living/carbon/alien/M as mob) + if (!ticker) + M << "You cannot attack people before the game has started." + return + + if (istype(loc, /turf) && istype(loc.loc, /area/start)) + M << "No attacking people at spawn, you jackass." + return + + switch(M.a_intent) + + if ("help") + sleeping = max(0,sleeping-5) + resting = 0 + AdjustParalysis(-3) + AdjustStunned(-3) + AdjustWeakened(-3) + visible_message("[M.name] nuzzles [src] trying to wake it up!") + + if ("grab") + grabbedby(M) + + else + if (health > 0) + playsound(loc, 'sound/weapons/bite.ogg', 50, 1, -1) + var/damage = 1 + visible_message("[M.name] bites [src]!", \ + "[M.name] bites [src]!") + adjustBruteLoss(damage) + updatehealth() + else + M << "[name] is too injured for that." + return + + +/mob/living/carbon/alien/humanoid/attack_larva(mob/living/carbon/alien/larva/L as mob) + return attack_alien(L) + + +/mob/living/carbon/alien/humanoid/attack_slime(mob/living/carbon/slime/M as mob) + if (!ticker) + M << "You cannot attack people before the game has started." + return + + if(M.Victim) return // can't attack while eating! + + if (stat != DEAD) + + visible_message("The [M.name] glomps [src]!", \ + "The [M.name] glomps [src]!") + + if(M.powerlevel > 0) + var/stunprob = 10 + var/power = M.powerlevel + rand(0,3) + + switch(M.powerlevel) + if(1 to 2) stunprob = 20 + if(3 to 4) stunprob = 30 + if(5 to 6) stunprob = 40 + if(7 to 8) stunprob = 60 + if(9) stunprob = 70 + if(10) stunprob = 95 + + if(prob(stunprob)) + M.powerlevel -= 3 + if(M.powerlevel < 0) + M.powerlevel = 0 + + visible_message("The [M.name] has shocked [src]!", \ + "The [M.name] has shocked [src]!") + + Weaken(power) + if (stuttering < power) + stuttering = power + Stun(power) + + var/datum/effect/effect/system/spark_spread/s = new /datum/effect/effect/system/spark_spread + s.set_up(5, 1, src) + s.start() + + if (prob(stunprob) && M.powerlevel >= 8) + adjustFireLoss(M.powerlevel * rand(6,10)) + + + updatehealth() + + return diff --git a/code/modules/mob/living/carbon/alien/humanoid/humanoid.dm b/code/modules/mob/living/carbon/alien/humanoid/humanoid.dm index 7c50ccf0dc8..2b339b89ad6 100644 --- a/code/modules/mob/living/carbon/alien/humanoid/humanoid.dm +++ b/code/modules/mob/living/carbon/alien/humanoid/humanoid.dm @@ -129,60 +129,11 @@ /mob/living/carbon/alien/humanoid/attack_slime(mob/living/carbon/slime/M as mob) - if (!ticker) - M << "You cannot attack people before the game has started." - return - - if(M.Victim) return // can't attack while eating! - - if (stat > -100) - - visible_message("The [M.name] glomps [src]!", \ - "The [M.name] glomps [src]!") - var/damage = rand(1, 3) - - if(M.is_adult) - damage = rand(10, 40) - else - damage = rand(5, 35) - - adjustBruteLoss(damage) - - if(M.powerlevel > 0) - var/stunprob = 10 - var/power = M.powerlevel + rand(0,3) - - switch(M.powerlevel) - if(1 to 2) stunprob = 20 - if(3 to 4) stunprob = 30 - if(5 to 6) stunprob = 40 - if(7 to 8) stunprob = 60 - if(9) stunprob = 70 - if(10) stunprob = 95 - - if(prob(stunprob)) - M.powerlevel -= 3 - if(M.powerlevel < 0) - M.powerlevel = 0 - - visible_message("The [M.name] has shocked [src]!", \ - "The [M.name] has shocked [src]!") - - Weaken(power) - if (stuttering < power) - stuttering = power - Stun(power) - - var/datum/effect/effect/system/spark_spread/s = new /datum/effect/effect/system/spark_spread - s.set_up(5, 1, src) - s.start() - - if (prob(stunprob) && M.powerlevel >= 8) - adjustFireLoss(M.powerlevel * rand(6,10)) - - - updatehealth() - + ..() + var/damage = rand(5, 35) + if(M.is_adult) + damage = rand(10, 40) + adjustBruteLoss(damage) return /mob/living/carbon/alien/humanoid/attack_animal(mob/living/simple_animal/M as mob) @@ -215,18 +166,7 @@ help_shake_act(M) if ("grab") - if (M == src || anchored) - return - var/obj/item/weapon/grab/G = new /obj/item/weapon/grab(M, src) - - M.put_in_active_hand(G) - - G.synch() - - LAssailant = M - - playsound(loc, 'sound/weapons/thudswoosh.ogg', 50, 1, -1) - visible_message("[M] has grabbed [src] passively!") + grabbedby(M) if ("harm") var/damage = rand(1, 9) @@ -270,67 +210,6 @@ visible_message("[M] has attempted to disarm [src]!") return -/*Code for aliens attacking aliens. Because aliens act on a hivemind, I don't see them as very aggressive with each other. -As such, they can either help or harm other aliens. Help works like the human help command while harm is a simple nibble. -In all, this is a lot like the monkey code. /N -*/ - -/mob/living/carbon/alien/humanoid/attack_alien(mob/living/carbon/alien/humanoid/M as mob) - if (!ticker) - M << "You cannot attack people before the game has started." - return - - if (istype(loc, /turf) && istype(loc.loc, /area/start)) - M << "No attacking people at spawn, you jackass." - return - - ..() - - switch(M.a_intent) - - if ("help") - sleeping = max(0,sleeping-5) - resting = 0 - AdjustParalysis(-3) - AdjustStunned(-3) - AdjustWeakened(-3) - visible_message("[M.name] nuzzles [src] trying to wake it up!") - - else - if (health > 0) - playsound(loc, 'sound/weapons/bite.ogg', 50, 1, -1) - var/damage = rand(1, 3) - visible_message("[M.name] bites [src]!!", \ - "[M.name] bites [src]!!") - - adjustBruteLoss(damage) - updatehealth() - else - M << "[name] is too injured for that." - return - - -/mob/living/carbon/alien/humanoid/attack_larva(mob/living/carbon/alien/larva/L as mob) - - switch(L.a_intent) - if("help") - visible_message("[L] rubs its head against [src].") - - - else - if (health > 0) - playsound(loc, 'sound/weapons/bite.ogg', 50, 1, -1) - var/damage = rand(1, 3) - visible_message("[L.name] bites [src]!!", \ - "[L.name] bites [src]!!") - - adjustBruteLoss(damage) - updatehealth() - else - L << "[name] is too injured for that." - return - - /mob/living/carbon/alien/humanoid/restrained() if (handcuffed) diff --git a/code/modules/mob/living/carbon/alien/larva/larva.dm b/code/modules/mob/living/carbon/alien/larva/larva.dm index 9e4041d3aa3..ba244891e99 100644 --- a/code/modules/mob/living/carbon/alien/larva/larva.dm +++ b/code/modules/mob/living/carbon/alien/larva/larva.dm @@ -157,26 +157,14 @@ /mob/living/carbon/alien/larva/attack_slime(mob/living/carbon/slime/M as mob) - if (!ticker) - M << "You cannot attack people before the game has started." - return + ..() + var/damage = rand(5, 35) - if(M.Victim) - return // can't attack while eating! + if(M.is_adult) + damage = rand(20, 40) - if (stat != DEAD) - visible_message("The [M.name] glomps [src]!", \ - "The [M.name] glomps [src]!") - var/damage = rand(1, 3) - - if(M.is_adult) - damage = rand(20, 40) - else - damage = rand(5, 35) - - - adjustBruteLoss(damage) - updatehealth() + adjustBruteLoss(damage) + updatehealth() return @@ -197,18 +185,7 @@ help_shake_act(M) if ("grab") - if (M == src || anchored) - return - var/obj/item/weapon/grab/G = new /obj/item/weapon/grab(M, src ) - - M.put_in_active_hand(G) - - G.synch() - - LAssailant = M - - playsound(loc, 'sound/weapons/thudswoosh.ogg', 50, 1, -1) - visible_message("[M] has grabbed [src] passively!") + grabbedby(M) else var/damage = rand(1, 9) @@ -236,39 +213,6 @@ "[M] has attempted to kick [src]!") return -/mob/living/carbon/alien/larva/attack_alien(mob/living/carbon/alien/humanoid/M as mob) - if (!ticker) - M << "You cannot attack people before the game has started." - return - - if (istype(loc, /turf) && istype(loc.loc, /area/start)) - M << "No attacking people at spawn, you jackass." - return - - ..() - - switch(M.a_intent) - - if ("help") - sleeping = max(0,sleeping-5) - resting = 0 - AdjustParalysis(-3) - AdjustStunned(-3) - AdjustWeakened(-3) - visible_message("[M.name] nuzzles [src] trying to wake it up!") - - else - if (health > 0) - playsound(loc, 'sound/weapons/bite.ogg', 50, 1, -1) - var/damage = 1 - visible_message("[M.name] bites [src]!", \ - "[M.name] bites [src]!") - adjustBruteLoss(damage) - updatehealth() - else - M << "[name] is too injured for that." - return - /mob/living/carbon/alien/larva/restrained() return 0 diff --git a/code/modules/mob/living/carbon/human/human_attackalien.dm b/code/modules/mob/living/carbon/human/human_attackalien.dm index bea1c5703cc..a44c33ebe75 100644 --- a/code/modules/mob/living/carbon/human/human_attackalien.dm +++ b/code/modules/mob/living/carbon/human/human_attackalien.dm @@ -7,19 +7,7 @@ if ("help") visible_message(" [M] caresses [src] with its scythe like arm.") if ("grab") - if(M == src || anchored) - return - if (w_uniform) - w_uniform.add_fingerprint(M) - var/obj/item/weapon/grab/G = new /obj/item/weapon/grab(M, src) - - M.put_in_active_hand(G) - - G.synch() - LAssailant = M - - playsound(loc, 'sound/weapons/thudswoosh.ogg', 50, 1, -1) - visible_message("[M] has grabbed [src] passively!") + grabbedby(M) if("harm") if (w_uniform) diff --git a/code/modules/mob/living/carbon/human/human_defense.dm b/code/modules/mob/living/carbon/human/human_defense.dm index 0566143ecac..db923d377c1 100644 --- a/code/modules/mob/living/carbon/human/human_defense.dm +++ b/code/modules/mob/living/carbon/human/human_defense.dm @@ -319,3 +319,8 @@ emp_act update_damage_overlays() +/mob/living/carbon/human/grabbedby(mob/living/user) + if(w_uniform) + w_uniform.add_fingerprint(user) + ..() + diff --git a/code/modules/mob/living/carbon/human/species.dm b/code/modules/mob/living/carbon/human/species.dm index a0795957383..47a28cbc6e2 100644 --- a/code/modules/mob/living/carbon/human/species.dm +++ b/code/modules/mob/living/carbon/human/species.dm @@ -699,25 +699,7 @@ H << "You feel a breath of fresh air enter your lungs. It feels good." if("grab") - if(M == H || H.anchored) - return 0 - - add_logs(M, H, "grabbed", addition="passively") - - if(H.w_uniform) - H.w_uniform.add_fingerprint(M) - - var/obj/item/weapon/grab/G = new /obj/item/weapon/grab(M, H) - if(H.buckled) - M << "You cannot grab [H], \he is buckled in!" - if(!G) //the grab will delete itself in New if affecting is anchored - return - M.put_in_active_hand(G) - G.synch() - H.LAssailant = M - - playsound(H.loc, 'sound/weapons/thudswoosh.ogg', 50, 1, -1) - H.visible_message("[M] has grabbed [H] passively!") + H.grabbedby(M) return 1 if("harm") diff --git a/code/modules/mob/living/carbon/monkey/monkey.dm b/code/modules/mob/living/carbon/monkey/monkey.dm index ac15a71744c..c9b3086afe4 100644 --- a/code/modules/mob/living/carbon/monkey/monkey.dm +++ b/code/modules/mob/living/carbon/monkey/monkey.dm @@ -120,11 +120,11 @@ if(..()) //To allow surgery to return properly. return - if (M.a_intent == "help") - help_shake_act(M) + switch(M.a_intent) + if("help") + help_shake_act(M) - else - if (M.a_intent == "harm") + if("harm") if (prob(75)) visible_message("[M] has punched [name]!", \ "[M] has punched [name]!") @@ -145,33 +145,22 @@ playsound(loc, 'sound/weapons/punchmiss.ogg', 25, 1, -1) visible_message("[M] has attempted to punch [name]!", \ "[M] has attempted to punch [name]!") - else - if (M.a_intent == "grab") - if (M == src || anchored) - return - var/obj/item/weapon/grab/G = new /obj/item/weapon/grab(M, src ) + if("grab") + grabbedby(M) - M.put_in_active_hand(G) - - G.synch() - - LAssailant = M - - playsound(loc, 'sound/weapons/thudswoosh.ogg', 50, 1, -1) - visible_message("[M] has grabbed [name] passively!") - else - if (!( paralysis )) - if (prob(25)) - Paralyse(2) + if("disarm") + if (!( paralysis )) + if (prob(25)) + Paralyse(2) + playsound(loc, 'sound/weapons/thudswoosh.ogg', 50, 1, -1) + visible_message("[M] has pushed down [src]!", \ + "[M] has pushed down [src]!") + else + if(drop_item()) playsound(loc, 'sound/weapons/thudswoosh.ogg', 50, 1, -1) - visible_message("[M] has pushed down [src]!", \ - "[M] has pushed down [src]!") - else - if(drop_item()) - playsound(loc, 'sound/weapons/thudswoosh.ogg', 50, 1, -1) - visible_message("[M] has disarmed [src]!", \ - "[M] has disarmed [src]!") + visible_message("[M] has disarmed [src]!", \ + "[M] has disarmed [src]!") return /mob/living/carbon/monkey/attack_alien(mob/living/carbon/alien/humanoid/M as mob) @@ -209,18 +198,7 @@ "[M] has attempted to lunge at [name]!") if ("grab") - if (M == src || anchored) - return - var/obj/item/weapon/grab/G = new /obj/item/weapon/grab(M, src ) - - M.put_in_active_hand(G) - - G.synch() - - LAssailant = M - - playsound(loc, 'sound/weapons/thudswoosh.ogg', 50, 1, -1) - visible_message("[M] has grabbed [name] passively!") + grabbedby(M) if ("disarm") playsound(loc, 'sound/weapons/pierce.ogg', 25, 1, -1) diff --git a/code/modules/mob/living/carbon/slime/slime.dm b/code/modules/mob/living/carbon/slime/slime.dm index a90549fa54c..9b0ecb92301 100644 --- a/code/modules/mob/living/carbon/slime/slime.dm +++ b/code/modules/mob/living/carbon/slime/slime.dm @@ -398,18 +398,7 @@ help_shake_act(M) if ("grab") - if (M == src || anchored) - return - var/obj/item/weapon/grab/G = new /obj/item/weapon/grab(M, src) - - M.put_in_active_hand(G) - - G.synch() - - LAssailant = M - - playsound(loc, 'sound/weapons/thudswoosh.ogg', 50, 1, -1) - visible_message("[M] has grabbed [src] passively!") + grabbedby(M) else @@ -482,18 +471,7 @@ "[M] has attempted to lunge at [name]!") if ("grab") - if (M == src || anchored) - return - var/obj/item/weapon/grab/G = new /obj/item/weapon/grab(M, src ) - - M.put_in_active_hand(G) - - G.synch() - - LAssailant = M - - playsound(loc, 'sound/weapons/thudswoosh.ogg', 50, 1, -1) - visible_message(" [M] has grabbed [name] passively!") + grabbedby(M) if ("disarm") playsound(loc, 'sound/weapons/pierce.ogg', 25, 1, -1) diff --git a/code/modules/mob/living/living_defense.dm b/code/modules/mob/living/living_defense.dm index b063e139c50..4bd3a87c30f 100644 --- a/code/modules/mob/living/living_defense.dm +++ b/code/modules/mob/living/living_defense.dm @@ -111,4 +111,24 @@ proc/vol_by_throwforce_and_or_w_class(var/obj/item/I) /mob/living/acid_act(var/acidpwr, var/toxpwr, var/acid_volume) if(!unacidable) - take_organ_damage(min(6*toxpwr, acid_volume * toxpwr)) \ No newline at end of file + take_organ_damage(min(6*toxpwr, acid_volume * toxpwr)) + +/mob/living/proc/grabbedby(mob/living/carbon/user) + if(user == src || anchored) + return 0 + if(!(status_flags & CANPUSH)) + return 0 + + add_logs(user, src, "grabbed", addition="passively") + + var/obj/item/weapon/grab/G = new /obj/item/weapon/grab(user, src) + if(buckled) + user << "You cannot grab [src], \he is buckled in!" + if(!G) //the grab will delete itself in New if src is anchored + return 0 + user.put_in_active_hand(G) + G.synch() + LAssailant = user + + playsound(src.loc, 'sound/weapons/thudswoosh.ogg', 50, 1, -1) + visible_message("[user] has grabbed [src] passively!") \ No newline at end of file diff --git a/code/modules/mob/living/silicon/robot/robot.dm b/code/modules/mob/living/silicon/robot/robot.dm index f7fd20f2e35..2c5fa3c7eec 100644 --- a/code/modules/mob/living/silicon/robot/robot.dm +++ b/code/modules/mob/living/silicon/robot/robot.dm @@ -628,22 +628,10 @@ switch(M.a_intent) if ("help") - for(var/mob/O in viewers(src, null)) - if ((O.client && !( O.blinded ))) - O.show_message(text("[M] caresses [src]'s plating with its scythe like arm."), 1) + visible_message("[M] caresses [src]'s plating with its scythe like arm.") if ("grab") - if (M == src || anchored) - return - var/obj/item/weapon/grab/G = new /obj/item/weapon/grab(M, src ) - - M.put_in_active_hand(G) - - G.synch() - playsound(loc, 'sound/weapons/thudswoosh.ogg', 50, 1, -1) - for(var/mob/O in viewers(src, null)) - if ((O.client && !( O.blinded ))) - O.show_message(text("[] has grabbed [] passively!", M, src), 1) + grabbedby(M) if ("harm") var/damage = rand(10, 20) @@ -657,8 +645,7 @@ What is this?*/ playsound(loc, 'sound/weapons/slash.ogg', 25, 1, -1) - for(var/mob/O in viewers(src, null)) - O.show_message(text("[] has slashed at []!", M, src), 1) + visible_message("[M] has slashed at [src]!") if(prob(8)) flick("noise", flash) adjustBruteLoss(damage) diff --git a/code/modules/mob/living/simple_animal/simple_animal.dm b/code/modules/mob/living/simple_animal/simple_animal.dm index 1b720f37540..0b726108f88 100644 --- a/code/modules/mob/living/simple_animal/simple_animal.dm +++ b/code/modules/mob/living/simple_animal/simple_animal.dm @@ -337,20 +337,7 @@ visible_message("[M] caresses [src] with its scythe like arm.") if ("grab") - if(M == src || anchored) - return - if(!(status_flags & CANPUSH)) - return - - var/obj/item/weapon/grab/G = new /obj/item/weapon/grab(M, src ) - - M.put_in_active_hand(G) - - G.synch() - LAssailant = M - - playsound(loc, 'sound/weapons/thudswoosh.ogg', 50, 1, -1) - visible_message("[M] has grabbed [src] passively!") + grabbedby(M) if("harm", "disarm") var/damage = rand(15, 30) From f7ad6d9ab002fea3e39a957cc08d938b7152a2c7 Mon Sep 17 00:00:00 2001 From: Aranclanos Date: Wed, 5 Nov 2014 13:55:31 -0300 Subject: [PATCH 048/102] Fixes issue #1442 canUseTopic() will now check for telekinesis on humans, using the be_close flag. The pop-up window will update if TK users are using the machine. --- code/_onclick/telekinesis.dm | 18 +++++++++++------- code/game/machinery/machinery.dm | 5 ++++- code/game/objects/objs.dm | 9 +++++---- 3 files changed, 20 insertions(+), 12 deletions(-) diff --git a/code/_onclick/telekinesis.dm b/code/_onclick/telekinesis.dm index 0b6b63d249a..a4e8a119365 100644 --- a/code/_onclick/telekinesis.dm +++ b/code/_onclick/telekinesis.dm @@ -95,7 +95,7 @@ var/const/tk_maxrange = 15 if(focus) focus.attack_self_tk(user) -/obj/item/tk_grab/afterattack(atom/target as mob|obj|turf|area, mob/living/user as mob|obj, proximity)//TODO: go over this +/obj/item/tk_grab/afterattack(atom/target, mob/living/user, proximity)//TODO: go over this if(!target || !user) return if(last_throw+3 > world.time) return if(!host || host != user) @@ -107,12 +107,7 @@ var/const/tk_maxrange = 15 if(isobj(target) && !isturf(target.loc)) return - var/d = get_dist(user, target) - if(focus) - d = max(d,get_dist(user,focus)) // whichever is further - - if(d > tk_maxrange) - user << "Your mind won't reach that far." + if(!tkMaxRangeCheck(user, target, focus)) return if(!focus) @@ -137,6 +132,15 @@ var/const/tk_maxrange = 15 last_throw = world.time return +/proc/tkMaxRangeCheck(mob/user, atom/target, atom/focus) + var/d = get_dist(user, target) + if(focus) + d = max(d,get_dist(user,focus)) // whichever is further + if(d > tk_maxrange) + user << "Your mind won't reach that far." + return 0 + return 1 + /obj/item/tk_grab/attack(mob/living/M as mob, mob/living/user as mob, def_zone) return diff --git a/code/game/machinery/machinery.dm b/code/game/machinery/machinery.dm index 3e1b2cc3ca2..58df685d132 100644 --- a/code/game/machinery/machinery.dm +++ b/code/game/machinery/machinery.dm @@ -231,10 +231,13 @@ Class Procs: src << "You don't have the dexterity to do this!" return -/mob/living/carbon/human/canUseTopic(atom/movable/M) +/mob/living/carbon/human/canUseTopic(atom/movable/M, be_close = 0) if(restrained() || lying || stat || stunned || weakened) return if(!in_range(M, src)) + if((be_close == 0) && (TK in mutations)) + if(tkMaxRangeCheck(src, M)) + return 1 return if(!isturf(M.loc) && M.loc != src) return diff --git a/code/game/objects/objs.dm b/code/game/objects/objs.dm index c30b4ac122b..324bef5da10 100644 --- a/code/game/objects/objs.dm +++ b/code/game/objects/objs.dm @@ -69,10 +69,11 @@ // check for TK users - if (istype(usr, /mob/living/carbon/human)) - if(istype(usr.l_hand, /obj/item/tk_grab) || istype(usr.r_hand, /obj/item/tk_grab/)) - if(!(usr in nearby)) - if(usr.client && usr.machine==src) + if(ishuman(usr)) + var/mob/living/carbon/human/H = usr + if(!(usr in nearby)) + if(usr.client && usr.machine==src) + if(TK in H.mutations) is_in_use = 1 src.attack_hand(usr) in_use = is_in_use From 21f00b98c602a2bb1e8cba87c3ec6e2f36112bd6 Mon Sep 17 00:00:00 2001 From: Aranclanos Date: Wed, 5 Nov 2014 14:54:29 -0300 Subject: [PATCH 049/102] Fixes LINDA not properly activating turfs who are next to unsimulated turfs with differences (space turfs are unsimulated) Fixes turfs losing air too slow next to space turfs when the adjacent turfs number is low. --- code/LINDA/LINDA_system.dm | 2 +- code/LINDA/LINDA_turf_tile.dm | 2 +- code/datums/gas_mixture.dm | 33 ++++++++++++++++++++++++++++----- 3 files changed, 30 insertions(+), 7 deletions(-) diff --git a/code/LINDA/LINDA_system.dm b/code/LINDA/LINDA_system.dm index 2a5b98202f9..0362fe6afcf 100644 --- a/code/LINDA/LINDA_system.dm +++ b/code/LINDA/LINDA_system.dm @@ -118,7 +118,7 @@ datum/controller/air_system active_turfs |= T break else - if(!T.air.check_turf(enemy_tile)) + if(!T.air.check_turf_total(enemy_tile)) T.excited = 1 active_turfs |= T diff --git a/code/LINDA/LINDA_turf_tile.dm b/code/LINDA/LINDA_turf_tile.dm index 98e9574b0bb..2a018e7417a 100644 --- a/code/LINDA/LINDA_turf_tile.dm +++ b/code/LINDA/LINDA_turf_tile.dm @@ -194,7 +194,7 @@ turf/simulated/proc/share_temperature_mutual_solid(turf/simulated/sharer, conduc /******************* GROUP HANDLING FINISH *********************************************************************/ else - if(!air.check_turf(enemy_tile)) + if(!air.check_turf(enemy_tile, atmos_adjacent_turfs_amount)) var/difference = air.mimic(enemy_tile,,atmos_adjacent_turfs_amount) if(difference) if(difference > 0) diff --git a/code/datums/gas_mixture.dm b/code/datums/gas_mixture.dm index 32b5a313094..0b2d5377904 100644 --- a/code/datums/gas_mixture.dm +++ b/code/datums/gas_mixture.dm @@ -502,11 +502,11 @@ What are the archived variables for? return 1 -/datum/gas_mixture/check_turf(turf/model) - var/delta_oxygen = (oxygen_archived - model.oxygen)/5 - var/delta_carbon_dioxide = (carbon_dioxide_archived - model.carbon_dioxide)/5 - var/delta_nitrogen = (nitrogen_archived - model.nitrogen)/5 - var/delta_toxins = (toxins_archived - model.toxins)/5 +/datum/gas_mixture/check_turf(turf/model, atmos_adjacent_turfs = 4) + var/delta_oxygen = (oxygen_archived - model.oxygen)/(atmos_adjacent_turfs+1) + var/delta_carbon_dioxide = (carbon_dioxide_archived - model.carbon_dioxide)/(atmos_adjacent_turfs+1) + var/delta_nitrogen = (nitrogen_archived - model.nitrogen)/(atmos_adjacent_turfs+1) + var/delta_toxins = (toxins_archived - model.toxins)/(atmos_adjacent_turfs+1) var/delta_temperature = (temperature_archived - model.temperature) @@ -525,6 +525,29 @@ What are the archived variables for? return 1 +/datum/gas_mixture/proc/check_turf_total(turf/model) + var/delta_oxygen = (oxygen - model.oxygen) + var/delta_carbon_dioxide = (carbon_dioxide - model.carbon_dioxide) + var/delta_nitrogen = (nitrogen - model.nitrogen) + var/delta_toxins = (toxins - model.toxins) + + var/delta_temperature = (temperature - model.temperature) + + if(((abs(delta_oxygen) > MINIMUM_AIR_TO_SUSPEND) && (abs(delta_oxygen) >= oxygen*MINIMUM_AIR_RATIO_TO_SUSPEND)) \ + || ((abs(delta_carbon_dioxide) > MINIMUM_AIR_TO_SUSPEND) && (abs(delta_carbon_dioxide) >= carbon_dioxide*MINIMUM_AIR_RATIO_TO_SUSPEND)) \ + || ((abs(delta_nitrogen) > MINIMUM_AIR_TO_SUSPEND) && (abs(delta_nitrogen) >= nitrogen*MINIMUM_AIR_RATIO_TO_SUSPEND)) \ + || ((abs(delta_toxins) > MINIMUM_AIR_TO_SUSPEND) && (abs(delta_toxins) >= toxins*MINIMUM_AIR_RATIO_TO_SUSPEND))) + return 0 + if(abs(delta_temperature) > MINIMUM_TEMPERATURE_DELTA_TO_SUSPEND) + return 0 + + if(trace_gases.len) + for(var/datum/gas/trace_gas in trace_gases) + if(trace_gas.moles > MINIMUM_AIR_TO_SUSPEND*4) + return 0 + + return 1 + /datum/gas_mixture/share(datum/gas_mixture/sharer, var/atmos_adjacent_turfs = 4) if(!sharer) return 0 var/delta_oxygen = QUANTIZE(oxygen_archived - sharer.oxygen_archived)/(atmos_adjacent_turfs+1) From 09984d5ee0a9159bb0bc7d96e4a62a2d81bb4607 Mon Sep 17 00:00:00 2001 From: phil235 Date: Wed, 5 Nov 2014 18:54:54 +0100 Subject: [PATCH 050/102] ATTACK_HAND in aliens: Moving attack_hand for larva+humanoid to alien/attack_hand() in alien_defense to handle both. Changing weaken() to paralyze() in alien/attack_hand() in hulk and disarm section because weaken fails on aliens. lowered alien bite damage on alien to just 1 in all cases, instead of rand(1,3) for humanoid->humanoid. Added alien/attack_hand() to handle both larva and humanoid, with override in the children. Adding a death message for the larva. Attack_paw for aliens: handled in alien/attack_paw() and overridden in children. Attack_animal for aliens: handled in alien/attack_animal() in alien_defense.dm Added attack logs where missing. --- .../mob/living/carbon/alien/alien_defense.dm | 72 ++++++++- .../living/carbon/alien/humanoid/humanoid.dm | 140 ++++++------------ .../mob/living/carbon/alien/larva/death.dm | 1 + .../mob/living/carbon/alien/larva/larva.dm | 106 +++---------- 4 files changed, 135 insertions(+), 184 deletions(-) diff --git a/code/modules/mob/living/carbon/alien/alien_defense.dm b/code/modules/mob/living/carbon/alien/alien_defense.dm index cb4df3fcb16..97551a5185f 100644 --- a/code/modules/mob/living/carbon/alien/alien_defense.dm +++ b/code/modules/mob/living/carbon/alien/alien_defense.dm @@ -35,17 +35,18 @@ In all, this is a lot like the monkey code. /N visible_message("[M.name] bites [src]!", \ "[M.name] bites [src]!") adjustBruteLoss(damage) + add_logs(M, src, "attacked", admin=0) updatehealth() else M << "[name] is too injured for that." return -/mob/living/carbon/alien/humanoid/attack_larva(mob/living/carbon/alien/larva/L as mob) +/mob/living/carbon/alien/attack_larva(mob/living/carbon/alien/larva/L as mob) return attack_alien(L) -/mob/living/carbon/alien/humanoid/attack_slime(mob/living/carbon/slime/M as mob) +/mob/living/carbon/alien/attack_slime(mob/living/carbon/slime/M as mob) if (!ticker) M << "You cannot attack people before the game has started." return @@ -91,5 +92,70 @@ In all, this is a lot like the monkey code. /N updatehealth() - return + + +/mob/living/carbon/alien/attack_hand(mob/living/carbon/human/M as mob) + if (!ticker) + M << "You cannot attack people before the game has started." + return + + if (istype(loc, /turf) && istype(loc.loc, /area/start)) + M << "No attacking people at spawn, you jackass." + return + + if(..()) //to allow surgery to return properly. + return + + switch(M.a_intent) + + if ("help") + help_shake_act(M) + + if ("grab") + grabbedby(M) + + else + return 1 + return + + +/mob/living/carbon/alien/attack_paw(mob/living/carbon/monkey/M as mob) + if (!ticker) + M << "You cannot attack people before the game has started." + return + + if (istype(loc, /turf) && istype(loc.loc, /area/start)) + M << "No attacking people at spawn, you jackass." + return + ..() + + switch(M.a_intent) + + if ("help") + help_shake_act(M) + else + if (M.is_muzzled()) + return + playsound(loc, 'sound/weapons/bite.ogg', 50, 1, -1) + visible_message("[M.name] bites [src]!", \ + "[M.name] bites [src]!") + add_logs(M, src, "attacked", admin=0) + if (stat != DEAD) + adjustBruteLoss(rand(1, 3)) + updatehealth() + return + + +/mob/living/carbon/alien/attack_animal(mob/living/simple_animal/M as mob) + if(M.melee_damage_upper == 0) + M.emote("[M.friendly] [src]") + else + if(M.attack_sound) + playsound(loc, M.attack_sound, 50, 1, 1) + visible_message("[M] [M.attacktext] [src]!", \ + "[M] [M.attacktext] [src]!") + var/damage = rand(M.melee_damage_lower, M.melee_damage_upper) + adjustBruteLoss(damage) + add_logs(M, src, "attacked", admin=0) + updatehealth() \ No newline at end of file diff --git a/code/modules/mob/living/carbon/alien/humanoid/humanoid.dm b/code/modules/mob/living/carbon/alien/humanoid/humanoid.dm index 2b339b89ad6..9087f4c05b3 100644 --- a/code/modules/mob/living/carbon/alien/humanoid/humanoid.dm +++ b/code/modules/mob/living/carbon/alien/humanoid/humanoid.dm @@ -100,115 +100,61 @@ return -/mob/living/carbon/alien/humanoid/attack_paw(mob/living/carbon/monkey/M as mob) - if(!ismonkey(M)) return//Fix for aliens receiving double messages when attacking other aliens. - - if (!ticker) - M << "You cannot attack people before the game has started." - return - - if (istype(loc, /turf) && istype(loc.loc, /area/start)) - M << "No attacking people at spawn, you jackass." - return - ..() - - switch(M.a_intent) - - if ("help") - help_shake_act(M) - else - if (M.is_muzzled()) - return - playsound(loc, 'sound/weapons/bite.ogg', 50, 1, -1) - visible_message("[M.name] bites [src]!", \ - "[M.name] bites [src]!") - if (health > -100) - adjustBruteLoss(rand(1, 3)) - updatehealth() - return - - /mob/living/carbon/alien/humanoid/attack_slime(mob/living/carbon/slime/M as mob) ..() var/damage = rand(5, 35) if(M.is_adult) damage = rand(10, 40) adjustBruteLoss(damage) + add_logs(M, src, "attacked", admin=0) + updatehealth() return -/mob/living/carbon/alien/humanoid/attack_animal(mob/living/simple_animal/M as mob) - if(M.melee_damage_upper == 0) - M.emote("[M.friendly] [src]") - else - if(M.attack_sound) - playsound(loc, M.attack_sound, 50, 1, 1) - visible_message("[M] [M.attacktext] [src]!", \ - "[M] [M.attacktext] [src]!") - var/damage = rand(M.melee_damage_lower, M.melee_damage_upper) - adjustBruteLoss(damage) - updatehealth() - /mob/living/carbon/alien/humanoid/attack_hand(mob/living/carbon/human/M as mob) - if (!ticker) - M << "You cannot attack people before the game has started." - return - - if (istype(loc, /turf) && istype(loc.loc, /area/start)) - M << "No attacking people at spawn, you jackass." - return - - if(..()) //to allow surgery to return properly. - return - - switch(M.a_intent) - - if ("help") - help_shake_act(M) - - if ("grab") - grabbedby(M) - - if ("harm") - var/damage = rand(1, 9) - if (prob(90)) - if (HULK in M.mutations)//HULK SMASH - damage += 14 - spawn(0) - Weaken(damage) // Why can a hulk knock an alien out but not knock out a human? Damage is robust enough. - step_away(src,M,15) - sleep(3) - step_away(src,M,15) - playsound(loc, "punch", 25, 1, -1) - visible_message("[M] has punched [src]!", \ - "[M] has punched [src]!") - if ((stat != DEAD) && (damage > 9||prob(5)))//Regular humans have a very small chance of weakening an alien. - Weaken(1,5) - visible_message("[M] has weakened [src]!", \ - "[M] has weakened [src]!", \ - "You hear someone fall.") - adjustBruteLoss(damage) - updatehealth() - else - playsound(loc, 'sound/weapons/punchmiss.ogg', 25, 1, -1) - visible_message("[M] has attempted to punch [src]!") - - if ("disarm") - if (!lying) - if (prob(5))//Very small chance to push an alien down. - Weaken(2) - playsound(loc, 'sound/weapons/thudswoosh.ogg', 50, 1, -1) - visible_message("[M] has pushed down [src]!", \ - "[M] has pushed down [src]!") + if(..()) + switch(M.a_intent) + if ("harm") + var/damage = rand(1, 9) + if (prob(90)) + if (HULK in M.mutations)//HULK SMASH + damage += 14 + spawn(0) + Paralyse(1) + step_away(src,M,15) + sleep(3) + step_away(src,M,15) + playsound(loc, "punch", 25, 1, -1) + visible_message("[M] has punched [src]!", \ + "[M] has punched [src]!") + if ((stat != DEAD) && (damage > 9 || prob(5)))//Regular humans have a very small chance of weakening an alien. + Paralyse(2) + visible_message("[M] has weakened [src]!", \ + "[M] has weakened [src]!") + adjustBruteLoss(damage) + add_logs(M, src, "attacked", admin=0) + updatehealth() else - if (prob(50)) - drop_item() + playsound(loc, 'sound/weapons/punchmiss.ogg', 25, 1, -1) + visible_message("[M] has attempted to punch [src]!") + + if ("disarm") + if (!lying) + if (prob(5)) + Paralyse(2) playsound(loc, 'sound/weapons/thudswoosh.ogg', 50, 1, -1) - visible_message("[M] has disarmed [src]!", \ - "[M] has disarmed [src]!") + add_logs(M, src, "pushed", admin=0) + visible_message("[M] has pushed down [src]!", \ + "[M] has pushed down [src]!") else - playsound(loc, 'sound/weapons/punchmiss.ogg', 25, 1, -1) - visible_message("[M] has attempted to disarm [src]!") - return + if (prob(50)) + drop_item() + playsound(loc, 'sound/weapons/thudswoosh.ogg', 50, 1, -1) + visible_message("[M] has disarmed [src]!", \ + "[M] has disarmed [src]!") + else + playsound(loc, 'sound/weapons/punchmiss.ogg', 25, 1, -1) + visible_message("[M] has attempted to disarm [src]!") + /mob/living/carbon/alien/humanoid/restrained() diff --git a/code/modules/mob/living/carbon/alien/larva/death.dm b/code/modules/mob/living/carbon/alien/larva/death.dm index 27f49e3ad9e..67edcfd04ca 100644 --- a/code/modules/mob/living/carbon/alien/larva/death.dm +++ b/code/modules/mob/living/carbon/alien/larva/death.dm @@ -5,6 +5,7 @@ icon_state = "larva_dead" if(!gibbed) + visible_message("[src] lets out a waning high-pitched cry.") update_canmove() if(client) blind.layer = 0 diff --git a/code/modules/mob/living/carbon/alien/larva/larva.dm b/code/modules/mob/living/carbon/alien/larva/larva.dm index ba244891e99..b37da8992b2 100644 --- a/code/modules/mob/living/carbon/alien/larva/larva.dm +++ b/code/modules/mob/living/carbon/alien/larva/larva.dm @@ -114,103 +114,41 @@ /mob/living/carbon/alien/larva/attack_ui(slot_id) return -/mob/living/carbon/alien/larva/attack_animal(mob/living/simple_animal/M as mob) - if(M.melee_damage_upper == 0) - M.emote("[M.friendly] [src]") - else - if(M.attack_sound) - playsound(loc, M.attack_sound, 50, 1, 1) - visible_message("[M] [M.attacktext] [src]!", \ - "[M] [M.attacktext] [src]!") - var/damage = rand(M.melee_damage_lower, M.melee_damage_upper) - adjustBruteLoss(damage) - add_logs(M, src, "attacked", admin=0) - updatehealth() - - -/mob/living/carbon/alien/larva/attack_paw(mob/living/carbon/monkey/M as mob) - if(!(istype(M, /mob/living/carbon/monkey))) return//Fix for aliens receiving double messages when attacking other aliens. - - if (!ticker) - M << "You cannot attack people before the game has started." - return - - if (istype(loc, /turf) && istype(loc.loc, /area/start)) - M << "No attacking people at spawn, you jackass." - return - ..() - - switch(M.a_intent) - - if ("help") - help_shake_act(M) - else - if (M.is_muzzled()) - return - playsound(loc, 'sound/weapons/bite.ogg', 50, 1, -1) - visible_message("[M.name] bites [src]!", \ - "[M.name] bites [src]!") - if (health > -100) - adjustBruteLoss(rand(1, 3)) - updatehealth() - return - - /mob/living/carbon/alien/larva/attack_slime(mob/living/carbon/slime/M as mob) ..() var/damage = rand(5, 35) - if(M.is_adult) damage = rand(20, 40) - adjustBruteLoss(damage) + add_logs(M, src, "attacked", admin=0) updatehealth() return /mob/living/carbon/alien/larva/attack_hand(mob/living/carbon/human/M as mob) - if (!ticker) - M << "You cannot attack people before the game has started." - return - - if (istype(loc, /turf) && istype(loc.loc, /area/start)) - M << "No attacking people at spawn, you jackass." - return - - ..() - - switch(M.a_intent) - - if ("help") - help_shake_act(M) - - if ("grab") - grabbedby(M) + if(..()) + var/damage = rand(1, 9) + if (prob(90)) + if (HULK in M.mutations) + damage += 5 + spawn(0) + Paralyse(1) + step_away(src,M,15) + sleep(3) + step_away(src,M,15) + playsound(loc, "punch", 25, 1, -1) + add_logs(M, src, "attacked", admin=0) + visible_message("[M] has kicked [src]!", \ + "[M] has kicked [src]!") + if ((stat != DEAD) && (damage > 4.9)) + Paralyse(rand(5,10)) + adjustBruteLoss(damage) + updatehealth() else - var/damage = rand(1, 9) - if (prob(90)) - if (HULK in M.mutations) - damage += 5 - spawn(0) - Paralyse(1) - step_away(src,M,15) - sleep(3) - step_away(src,M,15) - playsound(loc, "punch", 25, 1, -1) - visible_message("[M] has kicked [src]!", \ - "[M] has kicked [src]!") - if ((stat != DEAD) && (damage > 4.9)) - Weaken(rand(5,10)) - visible_message("[M] has weakened [src]!", \ - "[M] has weakened [src]!", \ - "You hear someone fall.") - adjustBruteLoss(damage) - updatehealth() - else - playsound(loc, 'sound/weapons/punchmiss.ogg', 25, 1, -1) - visible_message("[M] has attempted to kick [src]!", \ - "[M] has attempted to kick [src]!") + playsound(loc, 'sound/weapons/punchmiss.ogg', 25, 1, -1) + visible_message("[M] has attempted to kick [src]!", \ + "[M] has attempted to kick [src]!") return /mob/living/carbon/alien/larva/restrained() From 9818a26167d2cbe3908a923ad5fd95e22a9acf0b Mon Sep 17 00:00:00 2001 From: Aranclanos Date: Wed, 5 Nov 2014 15:17:39 -0300 Subject: [PATCH 051/102] Assassinate and other objective messages will now output the mind name instead of the current name of the mob. Fixes issue #3829 --- code/game/gamemodes/objective.dm | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/code/game/gamemodes/objective.dm b/code/game/gamemodes/objective.dm index 8e8c6a4f021..2cb291ead06 100644 --- a/code/game/gamemodes/objective.dm +++ b/code/game/gamemodes/objective.dm @@ -63,7 +63,7 @@ datum/objective/assassinate/check_completion() datum/objective/assassinate/update_explanation_text() ..() if(target && target.current) - explanation_text = "Assassinate [target.current.real_name], the [!target_role_type ? target.assigned_role : target.special_role]." + explanation_text = "Assassinate [target.name], the [!target_role_type ? target.assigned_role : target.special_role]." else explanation_text = "Free Objective" @@ -90,7 +90,7 @@ datum/objective/mutiny/check_completion() datum/objective/mutiny/update_explanation_text() ..() if(target && target.current) - explanation_text = "Assassinate or exile [target.current.real_name], the [!target_role_type ? target.assigned_role : target.special_role]." + explanation_text = "Assassinate or exile [target.name], the [!target_role_type ? target.assigned_role : target.special_role]." else explanation_text = "Free Objective" @@ -126,7 +126,7 @@ datum/objective/maroon/check_completion() datum/objective/maroon/update_explanation_text() if(target && target.current) - explanation_text = "Prevent [target.current.real_name], the [!target_role_type ? target.assigned_role : target.special_role], from escaping alive." + explanation_text = "Prevent [target.name], the [!target_role_type ? target.assigned_role : target.special_role], from escaping alive." else explanation_text = "Free Objective" @@ -158,7 +158,7 @@ datum/objective/debrain/check_completion() datum/objective/debrain/update_explanation_text() ..() if(target && target.current) - explanation_text = "Steal the brain of [target.current.real_name], the [!target_role_type ? target.assigned_role : target.special_role]." + explanation_text = "Steal the brain of [target.name], the [!target_role_type ? target.assigned_role : target.special_role]." else explanation_text = "Free Objective" @@ -185,7 +185,7 @@ datum/objective/protect/check_completion() datum/objective/protect/update_explanation_text() ..() if(target && target.current) - explanation_text = "Protect [target.current.real_name], the [!target_role_type ? target.assigned_role : target.special_role]." + explanation_text = "Protect [target.name], the [!target_role_type ? target.assigned_role : target.special_role]." else explanation_text = "Free Objective" @@ -394,7 +394,7 @@ datum/objective/steal/exchange/proc/set_faction(var/faction,var/otheragent) datum/objective/steal/exchange/update_explanation_text() ..() if(target && target.current) - explanation_text = "Acquire [targetinfo.name] held by [target.current.real_name], the [target.assigned_role] and syndicate agent" + explanation_text = "Acquire [targetinfo.name] held by [target.name], the [target.assigned_role] and syndicate agent" else explanation_text = "Free Objective" @@ -526,6 +526,6 @@ datum/objective/destroy/check_completion() datum/objective/destroy/update_explanation_text() ..() if(target && target.current) - explanation_text = "Destroy [target.current.real_name], the experimental AI." + explanation_text = "Destroy [target.name], the experimental AI." else - explanation_text = "Free Objective" + explanation_text = "Free Objective" From 2936111845b12f74845c29c4cbebcbe2b27a15f2 Mon Sep 17 00:00:00 2001 From: Nienhaus Date: Wed, 5 Nov 2014 13:19:33 -0600 Subject: [PATCH 052/102] Updates the beret to not look like a codersprite V2! I forgot 3 of the berets last time... https://github.com/tgstation/-tg-station/pull/4950 --- icons/mob/head.dmi | Bin 96834 -> 96422 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/icons/mob/head.dmi b/icons/mob/head.dmi index 41b93e38b638d499bbe5cc7330c2ca8dcd3845f5..7a23a99494aabd6537c6f1826b7212546b581af8 100644 GIT binary patch delta 36114 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 z z33?(;8DwH$&79M3qeCW}G=1-rAJqKwCe}1pXz{Q0_j&fLYX(LKJcN$za?$-!E}hYz6_R8?7P+<0%rxYG8jmq(3Y;?*y`@AMJ*n&k{RTRl_ey z7XXZy_$8`n0plk$l34m`C=Iq_44YpX?A3j-Sxw%@%T&;moekn3A1z!iS#NZ{Niu=o zM<;i(O%ZqbTZd@?tjDo>C(k~qW<=6&-n2IT9gbG`0S5wW-QVsn{$^{v+{Uk2hcWe1{VjEtVqsXw4*fk}dGCQlrhf zX#S0O2gP<%u?#apKz`Kn&o9}KFM1XE;xX=kOg^n}{S2OX&_0EhR#4XFX9U>D+Tg)2HS0B32U9(N@3=QOfsK2yO&rlm86?uAk3i0SkeqFx2 zXFgN;IqkE6NMJuSYaUTiHbZNl2%@w46`DBUmUeetYymyxqUkk%YqR)V?iy{%4^v?` zD&Ec_bJ!IX1OoF$=`XVSu!=L(B=*Kx4iDZ3YjyNmer;jxS>0%rcD~cWi-=i~$vWvd zd{F#hlzrzyviHXb*JMg9S>OX@h;25V_ z$?LXMp1CeTl~o%)fB7ajaj}-)vYd=J^JB^$B-jK6ul`=SXlrPo^Z(4uHTik9i)I;C zU-RYN`}s^xOJC2w2S4Wm2fV}C^*2jD@C*vBzbwLFQGV~^Vuvfgfl~>WjQ$pFWqVy6 zR|_7>HxgrB!R_An=bbgecs_(=&efbQb*?ie{c!012z zf9UudHi5vysT(8C1Bb#rLmo5y0(J*D7=8e2?XIfmz3 zt*h-P++(Y?{*s(nQeW`L^4~er)GMIFr53GjPTCrk{e_v|{$meE{%uCj&UC?h+n5;? z%*~~DTHXvQbGrI#)siEd8J@gl0G>MKzq{kk8=jYnF8BFLbtVa&_u^Ejm#OdDzx&vH zWAM}yuXpcxM%#bMLJSIfa@l|PrRSM3D6GibaQMsw!7tW#f!&jhf7|ncr<<_H$J-yy z-o0x6yfQ%s0TG!l&dKvk_Uv0-#_(-l`0;}o^UVIK-|Kt&!+gR=b&x}Utv}ZOplpXC z%XF@9J7dIUZf!cpyQ*u~<+=5TKDi@gLi>hmf)1N%+1|X?zb;|N{PpCg?NfoK zicIJFq_y@lKgSVZb;q?h{m`*{)`4GMT$N|gYVCV;h)LO-8Mp>J|6@UZ49ju(9lMT$ zQ^q1HOJc%^}}l`@({~A87CN`rO&pg}@*U zT|3#5+Xs}Ez6Jxs!1QwS>~-5~~0J delta 36514 zcmXtfbwCx*_x4hvASEd&CDNiGoq`BTw}7N{gEZ__KopQhq)WQHxpas$NC}tjZn*Vc zKHuNFf6VTjiF@wpLgm~YLbL_NEiY}e~4J)2&sAA)5-{gI3R0^m(juD`RhW`&v1 zGi7>lGtUI!8(r{oJJan@w`&e+u77(e!Z_k1xzlZ4sjw0~T}`Kpp}zB-=ze$11$e+t zWPVLw0&#dK;^VeOEMZOb1c8L{>pWA_o;3JcEcc`E{xvja2PLKvZ0kpy+CNlTEc+(% zU2;G*{OkaEut0bk$M$h9BdhjVihxqb5);KQo1*HSW(j5F31hn_?XRa1XdH<}oRnEp zYO~;%F-9;C>~t~3XZL&b*|ek^vcRvOFuzX2)$(xWS|#IWm&z-;H`@)9n&csY$B+4S zOXC6yOi<1aUT?mO3-c{HZ1(fCB@V}kE?&@3Po#J?9pCR>vj0-wy593*q3KEJdnco~ zm;5b{aEmO*M1ULTt$xF=$+Q1L&wp3txK}%S9;ScudDv?zYH)tOpn4Miz-1StAYkqb zi#wA!;C2X01+Z4tBYfqz2$YcA-zXZ>LzmV(V{?KzHW!BWoR(g;5@%WBbIo7;8Qu;) zX%0cu;Xy}>(H{_0e+Kj}!;c)pZMvr}vAyTtz2+@%bCrnFd@&Mx^EUOZ<{x#h!ddl_ z&?YefiHc%S5??VlV8fj+`r{6GX4I3-CeJBO@B@2FZKZ%|wn)~l|I>gK2juKyD&)n7 zKR6+*25CDxZX=QBeU1GG8!~-{FKx>DEeVxx6kfS1W8-)->*@H-X33~%9fX&j zTsE~o3v8Bs?55U&Q}fXH6OM;RE`v6&=%d!E5X;r{AcY)v)|Zh??H?Y36m9|RX0SwM zayQghzS--C3s*idn{QSLuLI@H4&O^`z_EfQ`veq1|I2@4^H_41GBZO5S(QAW=#st9 zaX3YS+bkK$o;Y)1MsK{fhrdeQs$5xPih^~SyB2NurPDt?}I2>j*Cgb9c(YmczY%jju{r8w-3{UbvD~|$w$ST zVhGPiwRtNQ#&Y5tZBO&{nyRV4JivDGQ$2X&RW>f^X9wqZ%~#KTRWleZhHJ|n4@i)(G}!>z)bS_4zFRC>l4 z+71B>QVzccV9p$FWOg=J6<|!m7=@YpQ%WuQW6rp7Ve`IT>PNZG-9K%ME0GINkx1Ws zm-P`l>!)+>ZwB$YVQm+#nM-;RNg01FE%ooYWef^9|9#<(X_!q#j^)sOSnRbNSs7U{ zMDK053El8e#8fVrj%T%MO37ZHdQ;DA)kJ6KLJiqVsT)dNTbbAghsEPa=JmQtI~mvc zrd*m&ht~v55MTDy@^HDRjHuDR3O|g3x%R!4mE#J_t;hG={)qvKlR7R5^rQtxccOpX zHPX=Opd=QFvr5F7+=3fzk3fqrMpJE~VsqjB zZAc=x?nn|HpJ;YHA5Nzu5apkb)@Zt7b0o8|#u1$S+u3IHOW2tg0%_ROyUQD=X#{)YQW8){>IRf6OYq(8Z{& ztCP(aE#;OV-S6MZD!mj__*~RXXDI>iK@dLIcMiQw31F;4Nvfy%$tEq~LFII`JXbHK z;_pQ{&oGHgWn>!p8`F9EFN*BXKdpN^Af?`TWjdIGcLVp52#i8q@;X!f`*AJ27iH!i z`Xn8VNq^09yl`fBl+r8I5FO; zhR%XreTJVC&9V$HenZ=I0-DZj2PR&Lulvrda_a!3E3046#_#aJM;I0X)v$3s2X|M>gKsE9M4FHaXAGzO zS7JpK7OV0R=|8?;4?$f#;Nb;>(yYH2ijtqbe(bcn(@jrcPIK8G#ow?rn(Qk!I**#(`(8Q8u+j}TU#A1AFISDw3>vNsZy>dc?x44oqquH1ZpHv zyNlH9JUsWsH-6zozBk5A$iEo;micHMg~G?f>)?{+B>;Xs@Y?%1L24sHTU>*(wXf*C z455=E?umrp8V#3pbo>J~ygz1ocJs5b$s79nU^g~4(wH=ow`2FLfYa0|;}zDqkP!h!V94bRefWC|7RxRl96 zAKkT2{1YvQ+y|&h-X@O{H4}6BAqW8pRHyHhA0dYl;BqFv(eiRFUSF+0LK@DO<`Wc+Y6OHSQOZxq6l(&mgLHy) zwqxVl$Q0|LcR}FiS$p41rAG5hmRx6fg9E(O@PCE17Z3pesOfQ!U_}8 zm*rPgocGoCf_Gr;v*Yy_{zq3Lw(w>%^~TH3+MZRj?(sV~qUgVRBjz*GOp3;+hqpfW z8fn9MF}A>r>HF9*`F14AaEaeL4}+OWo6I8gpdeh&79nS{d_6M!SM{=V(#9oFLq9Xl zVpWNRTZk6<&1Y?s^C7e;?+$zJ_veyD_I4CeVC&@p1KB5rsC-=PG61qZnD8AM5LxW> z+Y!fCQC?7#dHj6NhA$?)UCs~Aw1~_2EYM-u*b51fuQjj4di0O#%KJ!FB9K!?dX5v; z3(g*Pe^XZIqN8Y38EI>FnK71bx!x@wx{+5RJZ##~J?Lx-)_gnGeayLUyS|`}h041yL`LfqtLN_cvci!|RdUdL(oNC!^W*pC}((xd#oiDF`*mYgPK>iQb))vF5 zqCoO{Y&H_)M?eH~z@#>(h*nk0;lxHg2YOosLMCgIi)p zw}pd0cqd?q^U*(kd|4k%YsbzC%ie zImXTv;Ow(lE`TZiKA_0};R1w|uE#!N&o6VJ)8m=a__@lydCthpGZBwoDB{#0H9nM~ zNXb?`b2W>ncmp*&mh=a_4K#;GxZDK`Y8^$g+rEUA*)cmljR=qrAmZT1&dTZOevJ8- z^V6vhPtW0x2K8FG{b68N>@krA-GeFOH$Bso8N-0YW2v;CR@T`4wCMT9e+BN-K`>){VUAD`cK$7XaAIDZ@*_M5<^qWV*43h&;2$?-&f*A33- zR$y4xew4KKqn)r3PoM=5!FFi@byt>ml6~WUOlKG65fe43m4F_o#BL~0Yt0tJ)L+WV zp}$bqYH9K&BHB9HNZ$H#_QQ!4GIgz#0q4l9Ha< z6Ebl#osy{~SND|jfQ!o!{m>ze-D$!uDSH(|r?VSOH#4{0)E?X8I^jG3?q?h){XX&{ ztK?;n#{!fyC3BmF1U4Cn43KQN=jPKZE6f)UYM=Uh?M(;pP(f2pjY!b0+?8iWVsHbJa zD=)a>4B&#Zgx`J`!ak6a4L_H)lD!x9#y-YSoxsp={nWX{yEuXd|e2+`cT}Q0*2K;L&jQ))SSQL zbLQ&2Az^8`$-*j5o$|L#yMzdn#;=JCw)xV2*^i#j({@P0_<3!(lRhKx-p5aoUNqb@uX{B`6H;40M+)bGPT7)b5vt!M5T7N}S7)@vk8t^>}v|3hJJ`SjA zUgd)qHo*Ld^SL+az>80ODhw+8ha@>M( z;V8t@WZ}S>+->}y@!s;Dc2wYdTK1y9~OuYyuUSW ze@Z9Gk=4Q0v$mg{HtEVqGwDVyj(qKx223Zat@uNsFnK5P-O{V6w6mc3Vx2FUQVkU2ksR0mE%EISVHm>mc2?T%vULIR33u~WV#G?UV|06U7nbJFvY5frPFO;3G!nY9m^LT}or{zy|rT`Bw8?A^z;JnLOs(tB!ei~SfM`WX_j=#8=V zgv)eYd2-6$FlijGDuT=(4;CM8a*>#$8*%ra@+w5u`nEme zy~qh_Fath((1~)tC!*&=n%3;4TLYwfcV^L*R&aJHjti zIv9@so==aZ%77q+& z*hSkawaceUebuT{gA4Q&m(~>ATPB7ESj)cP9ad3%uiM(A!8@ZN-tTY5_Psy7`2KD0 zEm)WUY2bU`CoUC6*ST!f&fNH316dTx>}sA>4I6T{5&ByN=bebKZdiBM@~6@j+xX9}^f1Zc$zW${VsS&Su`%r$yb&VV=Jnh!9z39IZk5$?p~V>c2j9fO zjbK#n&uNe}xS6{HtG27g3#m(MYh!CZj_hc!%cN)ML<3z5z1q9wb;6ksgtP?K9Rv_pmB1L>w zmY41Vo9BZIpIKdas%iRGOkz-#TaG;^=s*OwW(KLF#FE6Cxl9|nt@HQ;270cDdGps5 zpOtkY5+D0@@cyEHl&0kmSJS5?tY5ktZ=Gv8P~QWTWXcJ!d4tK4>4p2SMPY2G;ar>W zYbbb?dM(ZFUvhQf{1bhT7|M-abXc#RM0vPqAVIZK9|H5im3sH?h7B|vYf>Mi-J`@ioV&)F(Bdzh_ zcySp3-Y0Bx?Tp9o|O`?q?wzL;fNvEpO{?JciTGCQS0oFcvB0uia9{QmCR`xGc_%Ogf{T zm9ZM58Xc_Ii$>Xfu=4!t%akGXLO|YPDEK!@?4NoyLfW6-3T?p^xq)Y4Y#^Sx#~2bI zuGU7l|N1RJ>&0j|$9R36b>}c-pN`n6LLGIC!QJ>qH}dDnl1NFvKBQBRgw^I$m7>j; zhWi=S-9cy&+699%z=j@+dqnvYCim9IB{lF}-h;>wzAxrc!W{JNO*hUJ+4dkkfi4@j z7=`y|$fYl?OxN6Gzxg+yWFvIgk2&ie3p< zTlr={?%IRKGK%;aaiG?>Jkw@EF^{5F$!O|$igwGOb3zlWn>ee_yvDE~;X)Fn5ZFka(fVNx{rewDC-a+x_7<77Zh=4qHuU zdXbMbtwEvLud-aJEik0;em`g|AGsjnvUAsn@teHsw_vbEjwn--N=NFAV{y3pf_<@v zbcjy~Ek)vM7az6<_^J%D85dq%#jO>S1oIE%*uOj^NO0!nt8nsbv07K zzhpxFrKL#_v0u%xESMS98AFHMkKs68wm!^SI{9!_=Ntua*nEMsf~hIk6JsAH}{MqPD&_Rsol61 z?45ISjIbeNz>iMx(f&rc5WWv+?RT@7)4rGkKnNDxH13Cw=-3i2tq6~7tpLCyKuKO! zd*#z4Xaj#~o1AQabtwHlG&~$%H<#V~RegO0$#>Q)Wu@OyP6fr+1kltQO1%~}7WP1C z2giL^oyDuqD4(a}u)A+}CC1E&|*_`O;rKpc~k%3d%&T>}akox^jKerg=cV-=ve$pT}~DG5-W zF9{(`65T2{Ab{dXZT*wFyPa4aQ_k7VzObrXykAXTn8XMukMaLukm1BIXr@+1nhbYa zsEr2Jjsuht${vLa9tl3HawnsufJ8Vr9w(&fL0ntCaP((RbpK_m*y|~~rM_qQ#A@f- zm!AA=|C{ISw6^a~Y2QG2``=a8O51&9+s>LKE3`D`t)5XxHT*r{RYcgU573e07^0fl z>h14eXS!&Xk(9(V2zT8u`W!89u*Tgz6bkCctt(^R|KXtQr33{2MF9u6V3G)9j#>Wt z(}#v>+X@NGccG)25yN@WO7_t2?p2BO1=A#o423)raM0mcZZAV~kzI5{I$DW24kTuv zdgWy^9#!~lZ7bMUIYaAEy~B!HfI<`}&lPpKHyd?QOj&Vwjy+yJmEGM#g=0hy>`On& zbR}491gXA=;qO0r{iUPoe!KZ~sHfdJx2Dc}?9Y!GdYhI64K7U35WpW)-a#fd-t zS9|Gl<&$fZZ*riyo5(GSSEKg&9%DKJSXtD<8FfOhTHImX%1XPk!v(KXwGGeo;q+90bVWYHF${99kg1T zr)2OF810i@%%4I&&qK{n;QUhpt_07I(k@#CvDePoa#~pS_I?dwwo$U><<6dRRy_^g zP1)IN%5gAm!wY+6I2N%3xeqEFtsj3#>j6-R5La0j-&c}4SXAZ zB`xbna|urACgwT*LIN3M9|Z<_2S;@si;#$_`y!&=raE(SX4e^ls|HiCSBbf-eQMce zqqL7m+d12Jt~`*d%DtfNn0OKUG5;GdO%5ANW!3X9CmSjCGxyQ)Hx&SH3$aaaB#rGH z`Th|?oIDx>%159HvS4$N+><*{@((52S8JTA@!d&fKKqN)Bg6$E$v_{Z$igmAnW>i=*6kk7Ir!SLAwb9&L8>4RlH01)grDGTgsa_6!* zMR*@xH2$d%@C#r{UA!W(cV`T>a-r9M0)gZ}(^IF1dnl<#)@vIPQAr+sevo*={oy%L zcP8}t{AQHMS?i(DcUP1#_%9WB{gqw_ncw@C2i2+@g61W zSULUogb8ZZIzA5_K)^$SJGt9QkgR?zyy8qbOi4xk7f_pKg>8a@c3)_ zuTE8tWz$VuYej0KDecUvB5YJ53t9c9!1@UE=?eEi&je+11rPFr2>rxo4GlL1eT33# zdb=X$h>*d-2Dta>q&PRsB;0j4;yRXoaI~6iu)=ING3*lS6f-399q61(CqLL^BV$Wg z4i+?>2M{=OyN;d&_angZE0ZT|-TryJUw7`dB}oNcA^s+e0@Zh||CQXjH%rnnlvZ$vo0#mrOZjLv9W zNFc`T0gEOEYhuw~aNpxp4t#u6%hBn>m_nG3oukum*#Ay}aC8Wnhb2zyk})ENRPwe| z?iQMRNPtIL;k-HEW0EgDlXoI*HQuh&bg`|-5HEtIgmF|#$LhvTd585+bmp-95+)AIZ#CRM8e9CH6KRqxZnP{4#KmylxDyUt*Wz*x|`Qk@jlA zT49~y#8^2xN7vTz*?2a~_5{Hl8`=U^5gf}3)KcYu7i#p3hVuhQtJg7s76pvDR`nh$l|2@b` zPk!!7QYS*ViQyE=hWZeIQlQG%_`8B#!+R^ts$u`?rqBme$^_=7om&GN$3yBlzbHWZ zS8{kojxz8|ure7v#}7prZfD{_eUc_50B6ek8afeo_v-NAl$R&g77o7PTYo6k=*2bs zxV#`68HL@nniemHlYgA_FfO(%-R8|Tzc?aq2jz1p-??O2p=|t>5gcSDIrqmzfA~397rr{M(_P_AV$2+@l)YGlll}6 z#N9YD`#)8PH*?=z?)s4wC=BKlF|L>ZtmMXD@3#$?|b1zmidVsDv8_)LA z1}ZS3o8^w^suh^`Os}iVdN)j;5^{%}L2Ed%D}#+cj(@d_5ldNiR=FCT|v)I=;BLUJsH*If>MzSwZ06v329^Wv4--zUg9%7{CSTp~wz{Cvu;VYGY<|woc_;2aF^VHb^6_NidG7xp-=_xlhrTi!3 zIG!#0%8u}ObHrPjcC_(19~D)5&)7Z6WMz-D>kFV+j+&1yp~s0{aNf?=`-tNcIpg3V*P{g0F(pr z;A73)ouc>ws?c0z6j&ZE-}+}VIF^wCQZ1d;@RkY(^uQ<+X;td5 zf*ssn<=;W6QjQ9ukFDS93bthlJ97@eTIEF-#NFIVj`-xp2 z0Xvk9-+k%lfcQe`6b#>AeNr6;X`1u(|8bH%q_wbE7RRQv^@0ZaL=~Mx)x%GP`k-eR z#^1#7BVy<(Z?(RTh?h%dy>oM^jw4y}#nB=^CXh59W6`FA5n){F;rMh5pYkcjTpC&O zwG?0C50#eQ-H&*XOjDB*Fg+vCDDY1O@J>=1d9`}znQnO`#>u&D7bd!jBT~OTTOF(7 zeY)xBdr^YRFB4eSxI))7h2Te`b{Cs^Zaftg#T6Ir$n4bpY1^b$LPGP?Nz*_Jd&P)o z(m67W=YdgJ8H0da=O|WKPXc@I@Q?eezw5tMR|#+Wi&ogGe|03WQs zfBavCrAypnfv%LjFT~%gjC7s8lq$M0g;fs&MZhFCC8%-fRhIk*y!0ws8EGl8^as8p z(FdPJBqlZ&nqs0Pv7HtD?xW$-M}Ju@!rxze?#S4nQSsOfH~8}wcgyB_Z-(k*ct?$-1Er!#`PjCTrX^-4rX_;o6#mXT5IehrCo37Lfb&pauA%rgt zXOyFgE;3ETzVZqnrO8AZ?(VMg{$e-|U-_j(9-5U|aTkb=GyG-3mrZipCZ<&k03`ky ztH0A_mIypECObN}MKI~9>$3^A6@vc;qiSo2c*X9VX~*EViDk;^)d$irJqSN$uH4%B zO9EgB=|1$&OzD>3pA39Sr}IJbX4f@;PJpthNx{s&pC^JODWt3n>Ebd^PUB_mSKTAb zg_6T5@6A-4@&?-ZnVXLXBNndMEro$wOG$c08(+!I_Ks3a$S@K*(m15Dj(UUqYVt~k1gHZV=yn{ynlAX1A=gX{z^eEri< zAg|92cw!|^2)O;GIoq-!Drb~B+S#}_k}kD1_C6#=3x$my+=g7F__{M1mVfrd=OJy# zMd0tGJ74T)8lbwGSsVPk^g|o4rxKSAvp&qbx-+~6Ee_!Z@dQkfDZ@(G z(!m1RgGFO`)cLSISLMtCPW7{J7cV&R&jf?uo&!daayW~Ot=sXj?N{NzM*n*mU%Z7e z)0oC9?@~Y97v&~VK8umBVMnYl0^pLWMBC+HWbAQJX^D&7YtZ55!ta;!71?PEL!}SW zx8<)Sh+V9y#`zF-2cnf!Ekq^n+4~rz<^fOdIh=TPeC{89;$C+L;Ha_EH6UDpv7wcF zonz4%P&DxfUUT+Qy?m-zHB;lEWKh<~_s*uP?jWEu3rTmRIB${TM zxWWAH5jZyQ{BOV;@0@@NCNa;W)`NoR2gmCxcRCXMY?9MA_tGSe8uMhKbVLy;zZLqUz3pOq;_<97Bin5CV`Z zqDv9-OU`MT@=3)ZCBdVrm%pCx?W<+^U07Zf)o+?ZdI%}VfKQb*FU6bXm;Mk<2@fjIE9qbFz6tPXs%O% zv;~+TS_b}^=>SHhK}N1s3p(B{lGyLzTrnBCkR?^D=!1h#aonn1y|9O)#Qn+7$=n3& zz3i`Kp&MdZpPo$4o2l|W zDI3kJYshB26mMS1FV?G2T-F#h<>tnq7u$e{XlrFF_)xhB%O?EfP`NvG6>L;L3zQ2}qqveB2IBmSG(=J2RgML%+3d zx-DyHMN)+ne`QzH*<4!Mn1I zf>dLefl;D4M=183#^~RwR~A@vrCOGE_XdUfclSuHVNbH@NU=ZS7ID+$DCO=w+=S^xz zzO|0&{38I>ZpmrTNHz-3H&o)%!NJBVTygck3E~E=)cgR9p5Rg@@$khm)1zw%ZOPUl z@$rgO<*)sbN;*SnY*)rSSx<0|rpCP&iy;T#*~Bo*ulYOl$7hiGYVt@#>}SS>iygve zxeOlnJFZZ3or8gxo2UO5b&Nc0@2GMEe%EzW9K|b2tz(k{rl)sE=QPG%7}fc_MEm8* zieq|P39qTXfm>POWn$Io7L3Mst#1xK0gEc-#I5}()~UPPwaB=*-e4JW%lO@o7e(Ju z9zFOf1k}f)?<|}SwGjypLemKD^+k3pa?*HC1I6c@6`nO%H974NpD@z^ET?^&pyFMv zQI~yMyD+zC7al@p4VQmXA*3bUDPR>ugBbrB!IaHjK{<- z0jUeMADl?(2uY^T!*3%Z+hd z>YOzo^h&r(u;bwuS|7Quqx8Td%!j>*#3=&{pCO^(PCScNi6#F&7LU97+|pA-5Y`%a zBKS*^YrzlmRSca-B{{I9c_4W9=qUAKbRl>>djcAD-;Q z2VxxKO+G?9VWa|n*d`+f|-7X=cZ zR`$cG?DBBT{Am>vzSzO{Z~>$KKONMEtzS^dxeb@?b`pM;)MZwAPwGykFY<+mMi^&9 z{76cAAw^!t*UjZCpqv#kkXbjPiUBa>09RDmA$aow0Xuxc**Ly-y69&rbYuS`yJn5x z)(Auw$vDUe`#u4OS#3XTQExe#*jYXJf*+KM30H`cZ0F1^{n6rQ6Q=Xitwr8+bC@(r zxDCy4;~5ruthIe>Xejz}QHm{4f*~;Jhv=Xfb zg?+=N*DjgLOn0HDPp?w!0tAR{;O`m9;^zwh&ejtyVm)26k)4Mk4aeASs(!0Wy@WH> zzIQNIW=vsbyC+8dmqy^TSL6M*UX%on9mat1x1BI3&y@ts&1k(Z8^>npp!{KW$LyESQFI|@+ z+1h-s6v&Ms4^=yGlc^;a99{s3E?i#Ik+`v1sc`1%&QF{>P75<9;P#;Y(rD?O8mx$ph8TFp+akUz<_*{P73z#7*y4l z0{4zY4>39*u3+vB{`v^oz0)msMVNUL4TT+cRDwwBqxN4Kuj`vh{L=PGr&q_>$oU7_ zOVywu2aR07{#e6m+8A$9SC_LfF>-PG#e+0=uoD#Cv#a9ca-2(-EUIOF_4*>`B4?|} z)B3cZpYw?EBi59ywSeOYqXIM_epOtxm5FbYaB05;X}v3Q9%vbejLSY&3--kI2pPUY zflfEJ^?kp8(@QIO6hnn|exrz?Sdo@iuqUFilpR>R6^S65J2#*9b%a4(sjvS9QM zZFE}Vy~G;N0@36<8E7egjvB3zKi6s%SaakA>!n5IBxy08FIIi8O>|6{ZkjHHgq{Wz zX6rsr0=X%NEfXF|Lup=6E>@_H^iKIIg6%B|6>R|2_n1K0WbXS-r}AVPFScDP>3AdE z=p)WFP_psp8#i~)^;9vIU}RVrOTBD5HV;>wMC(();{WEdc>HH2GLc`^~_|yJHqhoNHuttME-hAz0M26?TVb z==aO1T05CWa$p;F`S@CI4_E%nwR5!H@_qchA%4Y(AYRYEMxWDyco_q?%VvQpthJYZ zPdb@w)mjfEPq0!MPSrhf;w>5Yd%4{D2w2B?Efhw|?38I`LbU5GMt8dL*-s$Co zQ75^bwg}JD9~$Tn_lC1~E(JahdU+mo$)BmbhQ9R>jb0Smx^dK?gBz)Ls` zx1=}8(=7&_w*3kx?aq0n4cbtvg)IBRQE75Dn^}9)&D040006iK@j|xfg^XgPakmHV z#lDCnxW>a1aYJAPq422m#T)5v-CO1FN199yITluXV`bMSeWG+TJ$f^EJpk|!@J|=z z3vp|`x|2bPk+vzqowsyPrB|6Qg~SQ@Ty_)91wK+40s7~tjn(W^=ij$$EW|Iqv+^eH z{ANCB3VO3*0{-|lZifs=2yKnNIyq-jN!w!g+5#x7C^!Ro)vtN-^Hi_cs2K$`{#p$| z{V{z>0WE4nlF@r43&Q(#Ton4Yqev5+gW!vXK7W7~kFRItsA=aTaCALbA^WiR8V&8n z$pQ#W65rzk?&%?VBibk(;ujSsPNA`5NY~t!2QR@k21>llyE0j#b7uc8;f%9MdpjGr zBMhNq>K;UzI%%jz<#pIhXJ6i%UcB}clTtFVbH`+{ zoVs^gjwgAxg%t6DxlZBAD!CbJCfc+QL<4cJ77>8SnK2YkF+ZZOxe-r45wle2 zVGRZ>q)<3qu#7&H0;00^SBLwf_FG#T#P1J_70V-bYd2AWheiw!mx7uXQZuV6J3%fX zeblN)bxq&Z^AR7Hp(LoNs9ceKJO6sZOq$`>j7Xai1oz5wobP?h4;fD%!>E0zG`l{( zY2!cPDLL6Rp@8at5ZMv2U3uy-^V8;{t{>!h6dQ#l6v@klkI^sKy09q#b93`oB;kxz z#%BgLMBnePH)k*H7DsIYzIN);+hL*q)#!qG=cGv40m+<#ma27h!>Hz?DSCk+eNBuYk1U^{l6vN0Qvms7(dYl<0ne8ps!oH1}7ys9)8d1@1dWU2mSvK#ZkB@>Nda( zOIiNEL+)#%9shqyKiR@X;yxEveBu%j76%xtV*j23qn$ph_18d{PchjKmumEN3x+f0 z=n{S-0(MopGt8H-SmsBmR>Swubqy%2dNq`Vxn@d_UU65*IcONcUq$37(3X3v>?_oD ztQ>1?3LT=4F1yb`yHhB*~6xz*NhPPkL@%S{OgXtF^r?hNwbh+qjQ zwBP)s;Us`WbyUd#c0lFll_=SX5q`sa>*0`d0fF(ibJ^El=iQSCb=dlYL z{uq~=ZbrN{KcNBL+u|fr&DFWb**<6PKiia{OzGS;3}PxM9$wniwbTZTW|LvIfyEQ5 z8JI$Z-Q2=QbKQa4=fLtxj{jvdxxc}-%wzeX2yETQI8E~x&vT+%#=DvD@E(FrT6mxO zuUKjmQ1z2H9DVg{Z_2?r^o>T7;TwHhQrP5h!+3;r{niWpBG?DVEHrN;%Ag6&+k!G^ zfP*=@*aI3e+Eo|24fFn|&g96EA!y7JJ-uYEEG#`z#8;X1Ma6JBtgLflh?af*{K%u4 ziV=3@p2GE7q1U;TO08p|LVye)4bTfVpdFzbu|PXNxT7Ma z`>A(3W`prtEUX@T&KSB|tAhLHLfSOx94s$AgXaE)=0%|4;g}uPBG_!OFo&Q*{kab( zXRqC(2tp)(c{T8E6>a&rlv+b z(ei^2%=K-^ic60FW7RmR8C+YllrI%Dc4Xt=z**jiuuH~(p_1&jvvKqf@EzLH^M#C( zkEE}Mn~c+Y21Kia>x~@c-n)-a&2}x^AvPu`(2 zJ<;~VQ5y^B=~ib|Gv2>Q4`f}fc6i=WFMn9vgSd-UVxTKKw8hCNcw>#~UeXsh>>ewd zT2R{31221t3frg((HRdvaP`L8KtN!ZeN|N5?wsO6`d-KRNR|2D-8{43v2j`HEC)0) zO|7oT>Jl`QrbfYG5>)a3+Zci}dgt+w zs`eeS`duk%cGAM_Sm}Q(V5wYOhEv2XN5YPorAcm2$5TA+;ZT(R-`0};cq)@GJrrHL ziBViw)c1??mj1UiNLEX6yByeaOBe*8!@JY$wB5&VdIw)g-lXkB32%Zb>ULGD4f6*9D>3>nvb9Fmt`>1Czdxy|0o?g}9m0IA7DxFFlyV@oN z{+ULns>$bnumb$Vb`lvRb2|!axR~+O4Zotdkc>k=!tH_zF?4XLRk(62>^R5v@!;P> zVq)T(4>~$JuhrD3HE~M}>s5Can!T#8`l6Vqt8m(!7Q{H&*l^R+(}x(z$L?I8(s6Tg z%34|FRb2hpLDyA*sE6dU=pROC%@y-snVt|mm({8jo=5QHpA1X!4K$qN5KXHHMJv z1!-;n{1kYtqB6x#NJ7$gu|FTuBaA{kBXf+Fh6-qaqBh}3=WpjDKl@SjYd4n)drr2| zuq~@WlC?t{9kRJ1GIe0)bY921$sp%f3uC&|-_n2-U2$LKpf*Vc*R%Ln-VUN|><{~d zb)vZni;4&^kE5Wd=mD+XkGQ!1N84LRRn>iM!#^~)v!&m3cPnp8mIm7Kc_#AQ@fR_ ziF5{htyJIH$rYF3z3$l>&WIxTc(ggcXBzsKHrHT$Q|V$XUmpvm5&|Lt6&hzz8*6Sg zJToM^VagW$xGkR}Fq7oCWVFh$Cz16Q>fZAC!4e56=`dojug|}%tW0U)=PP;nD?oH? ztWeFZI~*MC%ZGh^Z-4#zwVw6jr{~?*K8US$_@wcwNjLTiZyEMqWorJG<C`P?tq@U3;z-d^~{6 z5})AcpFcywnZ=;Ta`5yX_qZG^%9)s&-Vqko!0&@GD?kAVCgszZstB-=A|Z(i|RhT`Hwc> zH*$rvK{DF<7o-icPX6uiRZw#fg?g}tXrt)8-a>mPQ5cOS<`^Q$B$c!c_Wt2p?drO?@mNjN`Qs7yQc*J!@@`!i`ElKa4O~o z*PmrA-o`GhUFd<_DV$>*HtN~$iUm#oh_ARdy}Jc_L@oF2U;qYq;{j3!Y`5=qXrhqL zL{vbU+_!(Az`uYX*rsy!#kSM`B6Yq+}9?2bWjkMefWfdIAKx~rn% zcc#alt6YQyGdXr|tU`v=zWU-%CG9-($vCM>&(sweUT)0!EM?*~%nPYovyDrv5GQ!| zxHf`_G)N!m?|b{H!N)cIHN~3*#p+M68C)HrZX3oRBn-`ksmN+ud0@O?ps($JNu&E@ z&}|Lmw8$3x`J3KI#7Yd6__F5%+)$P(HmiT3ddS$eo^^Jw+M=GIoi|wY= zQ#a>>&hLN3ntvZs0)`UAz-O1wb|`d;r2oT=iP%0+BLZ(7-STo7=!3WD>7q-b8=ao+ zw{+brkz0Ys*C)W_H2TykGgXN`KqA?9AqPKv6P&b94OWy8u(l|-USLesol8pUzqfGWQXAZ?dyHe ztrU}^NTT@VJ)=LrWC=PNwu+EO!q=X84HN(NdW4JZ#?AJc%~OyaivjhlxR9GqEI92W zY(FiKtUs8?P!zqyX&hG?*`OZWe=Xg3_1j$obz_|xiM`G$ai7qv`RjZM2Y$;&TZM3a zMeQ$ZY7!;~upY1~^v4gC4MnFRgnr-~g}l~D++D(PSm~429Jkmhdd^-$testzHWm>9 z%1tF!v&w@?X}b253}i#PQZFYvg^R7oZt_X_p{!6|S^nD;8OOaV7S)rFD|)s5d{L8c z&YY$Veb@VFZW6q@5NmmL_DeN3GP65_@3lNKqcRu?ZvbZtk(Ashy7*mie6FPJ=1fvQ z<;O^}!7+n>><&=0>hA!jU?&rrip(mvaS@!=FRC@W64Y$H-O>T?D>*#l3*{4f{=+vPhX2~gBoKH-PSy3E#%y3OqC06O z{_XAF8Ar}#jQF7V9oKtD$u*pJk5*@DWMpNP_No3YC)@YWME?P9zYOsH$pU6$v=}?z7@Z)^TGhi!IWaY*~Xf#a2Ow1gPZm%ZFe_fmY#_w@bBu@sc z7vCohs?!%3k@r9YPpX@!l%7SNyIBT?-{;J`pnE{aLg}IUm?& zXcL%oX55DEY;VUaj!Su;Bq~xF7Z)d1Ny#e7olCv_{cmfXSj>=VZ|ue+%1z9R=g;wh@8I|E51rN(2#JZ= zo<1EfiTM3K>AvK}I=gPiH(i}iZM#S9l)x&dv;qJAHd{2 zqfR8hOu=uD^`L} z;B!2w?^hs>-gcb)6^@rEIeVv3qP*``{H(yxLXur#2e@kS^KcS(DIEZSsoUgSoLgKG z`A0sVQgjbNVium@cX(7;ddFIV^<(Hd?UMXGja*ve(5hOL zbWlz)0Gj?XO5OtOp|4e$+aCQ0gdy9A&dHx4v`2yO7#FLSDu?V~jDqvZ8_?lMJfn3P zcW3KJ!0obI$rt)t^m6(ZzE{WUEUjMT@g121x&lCxh_muyaV3i`X~P&gYtGH@rK~Mm zZYVo|9twK7gWa_((-S!eEVZ@kN(5u9Htvs!PrC3)djv&91a_O?JR|$f{L;CoTCkv= z;?48(^ZA|_9_ZLO2gnMb(P$=~!rZ1NspH*QMnglx+7-(jkp|DR4tW@6*(J=w!@^Fe z7F>^*p?+2!U3)`VDX5qB%*c6Ck+&_Q){LNOb35+a8iKi?GKJ{lUk752^Uhc!rdjPT zFIYz;u(`;kw~_1lj@agOHtV?rt97Ph2}7F7Q>i^?--68}u>8TH+8tE#L$Ya3U>Dyy zg)UnEs(wNAQic+#l=M?4i&S;i}SyK z{!r1<1}-jwM$2n!?7X~htGo&(KESqL@k`rVzqp-u;ix%M|4DNzNfPvE%~}i~JzGDm z9z7I!XeF`Rn929Zv4@&*XN|7aoM-pOi7u(l(4Fe%uYMd<>|_fJWAL12&)df)gLl}z zU1zpMFa&H$pHu8_ihB1%Y(k3flMWFT{`qfF+EaD~P{44xwd|=EYCs(b&(mMpxUQAZ zZF6X^XMqPqz4)1!n4eu_ z2kI6Z;5~Zuh>DeUk1muvq7f6YbnuSI_Zc9`Kx7adjSkQk&z*!no#wysN%2Nz8)GuU zz5S}3wt(s2GsF!u>LH4KJI#gyUSQqx?R&gGtGG=@<3pRB9h|N9$x}{TY!guz_b1Cn zWfw^UtHJB{qpTK`$uV(4}`3wHNWm6++KMxR-)AS4=Js>w zG-9p*mh>vHI8!h%c%q19-G$Um09!{Kk=D$4r^myjd?`J1Ev-7`E_o>e%3vs)(yzGK z;7X~IXE28^GR86b5VS4xkAqS*A?*BCN#1bt0>+&u$)xP8jTBOh4T0%NI7mKJtH!W< zmT%;StW}D1TnbLEZPH)4y*2!Opciuv63!JRXy}kN@h%I z8!M&gwFXswwLI1Fz8M`9SX%b8?9hwkqoZTVL6rRdoaf#hNTUvydF75klc#x7GQyCA z(40i!n8NUP%si2tIV+uTj&Dk4{G!~ZH0^LxXT0w*MI1c(JY6fujtJ~wNQzbLmPVH& z@jWN|+L7mGcj~p&bUU^6IXF08dwA4-Pfji@|1jKgpxBT-zM<*^h7G{S=)$_j!=LS; zvz~h0|9HwO8`un0*<l~CStA}ylTHzKfz8vb{0N{QkWqw@XgIUY810;^^Slk zdk-mJW8wreheN-UN!1-5!4kaRrbK)KQqSy~$KtB+vM(Ir)PeK&Mxn_roijc;AAU(q z!bQ4Lw9>Qk92Q6hRqK$dz~~j!c^Jzsa&%u|@S3bMR&f~-l1i6j_{iZ#E>!DK%XSh& z_Fwi7%`&s#_4N-ghX1g9;qjN!(@VDH1U`Z>2??PPB;b})$vLY=Vj&M}PO4d2GQZnvoY321tEuS{5%P!?xEBZ4{M&KQRMXb;HcmDq)If73i3!=2q| zKXERaQmTRpzPXr~F&z>5Z4ArwnC=XO~MgP;9&L6snV0@cqSMvs+OD}Q*TM)5PUR(->y0SvAH-+)OV$N zK7nDMkMYxcOxTVNexboe1#l?+g7~M5eQ!^Xc&v6pY5U`(Q@C2fK*KlJO)4QsEiwM= zXOZ9utwZXgkm^5&^!C#T1ob?*H>#Do)7Q4zw&MF{%rgO4CUSiytUS6(pR)0|nY88->kTi|!g9TfL zO(R|yH{$hK7Op(tJuC3>2yYutlp?#4MR$2wj2U0&4kto2ezmPPD{tUUOakQ(rM{Nf z^~vj&uLVMNfJnnrUgwlvp@(TQUl)l0o9X0l-}QC8sGmJsu&vs9#+T-c5saDY+_eoj zn2^7aBz1|~5M|v2=`6puzF z`(Vs%ju3pcz=CGOjhlC)VY8+%`fGqm7G9iB8qP4=(nrC!!9P}YLcWcihqXAadG4u* z9m;~zHyt*yl_Sz7-Nq~^%#z2siqQqs`JcVfM@HEiU)mjVDq$Ew`>E@> zv4bgti6a$G7K8VW!;*WC3-nwyPi7Sn|=8b?+8;Pz(mY2e5p(Nb9+jP2P};Xz`OfXVnsQCo zL<^7WNqwEz+YGj!^FclH_xDdNE~bLxFsO;clP#r?!9DX4teUYMSTwRn7*wd!n@vp= zof#EYY}@YLVkWuhhP5j_{!qHtIyr%^#|O(v`TY0}9=2iboudouutXzCqj~C(=Y&o- zR0Fd68i{68@>SFs^)Xw2UmK0!rEX?|9{FB5PwYDJf%9H{q2JlKSWU^i=(?pD# zbHf0r+mrP=;yRdH=%uEn)?!(aex$G8j()9L`(F{=95@=ncE!pNgFb6IPi`cNL#2*V zrI1La4j_jk?H&ymmTrj**ok_%bNKwkuX_vDBun5iWTigh* z4D0b=q@mZ8tr(7d7{4;8orB6~M70CV zxYCW!z|6eE73+(UsQUc*GZW_>C78PV$6F)1NJ2{*1?T+8$VgjC#Z&)FeV4alS>k^^ zQcuG_D2O4e*{)UEso`&|d{np7=pkv-#s!4ApQrrjI?1on5=uBSDms;Tc1!MAf)Hr) z&}xh~B9SiV!OD%|lpOWJDyba#!mS^{LE@&6MW{FuI&6H0%`yb?W^CT(xKS z$oI3oy&Y1VzTGMq{ij@9Byw`2{3PRg;~EfFcuzDjI5=p0wqr3>qFJEU$a?9viKI2c zTxpQ@P@knu?#h2>b5^kH>OA__vcd?m8$as_~Dxv8`B${9aS3|RZj0AbqU>#^Uy`4(tbjk)W0{hHl_UQJF~x<#<@ z^JSnftOYEazpmT*nTV_nGCY}6#w)L9VNo57c5UA|-iTjFrtVBt_`%`ur5z35%@%Hd zd-Swr#bQeU8H+coLh6P8+kk+8m+vazxSv(|k8)9xckbXplj5;}tZJ9FamWODp7^tp z`_(+3>zrU z&r|OGRT-3PzM@-c9iQH)8_JTY+?z0X-}7`^6PS~De)$AQrk0OJN^`K&vn~zpTbt>k zg;q&9KmI9OdlVJ5pup7GipoaA1*zMhm1NOx?yyMcShk2Ube%M$(|&^=^tb*AZH`3m z-~HG3CwrGj{lDWn`|r8L((f&xqsRgxk%6n|?jiKnC!-RLFcyM;9f?qGqqklnKmQB= z6xNXlz;`W0)nqMiATEx5aYgRqVV;RZiImfa(bsd({Cc~A&&6#KUwjs7Z=H>Pz`07C zmOKz+6A;KwIX&v!qsRIE%nFw&vUV+x--IL3PRihpjgnFb_TrEoNz%X(*QJKuico9{nL?qUs@vfK~+8ac!qVP55n8vePI5#WOJ=aU52E~ zxR)ol+VdRacW=oz^IrHs?`#9vFba;Ny?Dyy6vcb|@7%Z3Z1d#5)D?|OCf^tviz!`& z7ao?%xC#5q#^OvpN3ph;9-|_L!IOc6Q&*@YcUgo&+hohe!*WC(YS$ZsfnQu`#j13! zr=`s{7>V~k(*f58^d950hsF4x{g!%+1ZUbajljGXtrwhxrR zWt&@-iygO%QuVUN4Qr-Qv)_iuI``=O*sCI%hBu<@mrtoj<;pD+J*JC&l1TOs0*cb- z*CScm!}ls*CWJC0Y^YyEpt-{1Zi;mL8A9c{;^{)8G3ao{X9JniffFB4`uLZoHL+R2 zc%6S6eo*+vpZ-Wjrs-iHIj4Sj(E6)>#vc`P8%Gt|fA#Q&ayHFaaBsRUs~9pnj10y+ zX1w2Mzi@$2+T~r|XBJ!^I}f|%B}IIewce( z^aIStC+;r>M;O=OuSXkCzaSBj=o{fCcFp0-DNcin=;_llcE{r#Gr1HN4NmYe5D^7Tlz~gy+gMv3Y}o;sPW_JvOsm~-SIEpL)F(Oz5_YbL zx&&{9oeu9PYH0Wt7mrN{m}M^sc_@?V=bT&xR3e^9lg=K@(ooZkF$4q0n=3_`&wxLuwRc z`(46d+c)#_cIPVO`8@>Nc|HVXV`7q^<6oAy^mCllP1FF?;a#da8d%2jeJIePy1DHkw550iXIp{lxb~N!_}J8faQKrw_;Bzom`~i{mi#{ zk9SNFdRw>D?G4{~jlfi&uRUSE&+ zy90W7NIXqzzJEBD0_Ld=^haO(T4!uW79EoK!tsN>5f8m!kVBIqb z&UwG@D|!MrKkNwUGgi}#@samXFGlbVz-QAUTnGy8VnG~;)m&-Y-SbD}M6J`0U#m<` zGPoX7+)V2$Ws%8$Eu1AJGNWVTQF2fmEq9%(4Q-r!lI%-g%F|usHNe1+R4DIONDk4! zwe7E9J?4FwTm+uVWP?>*wHNY{G``n2p+3DYHk#&4#zWHqWbVS?uK5oyuWyf!i2*4x zmDJ*q5OB7xGPGI7N3{r}Ulc`E0C{kW8(nYq4C24ME{r&RY_juS4l>8PrjkPDC&IaU z#L47iq~75*fG;{W4rG?Z?g-XV?b)0Y*^~Kl0WgAdVqwIpGIY_2My1%L90@yJ+8%#O znJ=?@AY6%ndI;}>8rnOfW3fO3PgNaej3=9Sc5*JU6xWjoLZh6d7sZF8j&WZhyXW=9 z#|nQOTRLAn>s(hT4@p_-Dil7h-52B*j?@jeUFCFU{G0Y`&ANKzRppIw&KDx--d$G6CP2(17alG*%WH>Sc{!R3|Y?!z4cC;Enjy znl|L#YkBAWSpc>aM-om{>XMZUKJ5;?7C4V@Kh=4s#fK%;k)Cl#ESJzHj&dO|U0A}1 znf&Kv5wG*6^fUIFAKk0-!fz@$^jZItNp?-A);~dT+I6)pqqGzs7<$)<&M@^J&U{1r ziwQ=^b@etO8ow0)Vs4$TEmC+lXd8DvOph37esH>cD(n8L(U?4`_J;$w*hYGsyM}?x zj>d=E+FUTQ@PI=IsrwPt{?JvTaf(7Ee2AISm3nqVlou9uAGzD5o zHXa1T>Fsjs;=dYcg*B+mPp11$JVlL>$D=TAQ1d*uc4 zcJ(0B3QWHs?ucP1tLkh1efp-RT$`sSq#aeBM+YBcBVHgv*f}!K4UCMwU2JgP_;UQ( z9fOo#i~r*Z&|F%4A{|OPmZO-VLE3vW8Tn9e;(AcQmRW(}XN?zGS$8-lBP2SX@0W*r z5K(O!7CDQ8%N3HM3Tib0B?(4){ySmoX3$fHS;Vsx5^#YP$g$*NV?jWw06K! zyi~`>cK<#@gU5-qh6YKGASdHto`-gSScdT}w?w4+e1uS%Y53NO z8|%xbMX%bH&cgI9AG4OguN^ZsnQRz#p?obHkQ=}2ay!(E#&yQVW6#Wg9QIr-*j(FW zngFj;%FNhF&n!B)9R`e#oZa2|lsh_j5!Sw9qrsGy6@hq+y)tJ@e#Z#Exv*e3QMCv82+PyXREzMh zs>Jcfo3@_x<#ThlU#Z|2T3?KU+eJPy1m{9AzMEBe!x>(=F7U_QSAhHv+@~g;3pk?( z(tMdEjU0S-UM9wwE-8X0yt|E(&MO)?2>8U|p(H^lT#|4-;~Jo9w-)tqX^ZEpyUsrd zcJ4#FwjD`SHz5dufRw2z2aC_LfQ;x%#fvR`sf^dDku@g|QvZW>K?=i19>BjFBjUyX zVd_NQgzU+Ge(n;H{TuYAe$|ZsA11KU|H0EhD2)Ao>~`ug=oy)R1IlyX%~dLgQHXUf zyY8b{Yc|W|KC`li3H>c62#STR8pF$puDh~|@j+kAtG(>CIaQq^^{Tw8y1Bz5!3XSJ zeL@~M#w4)7fxbC=J1f~Ex8ueDWT)hGB(9t8&eRAV>U-`8${d-7H!~iY?t*q`EWyuC zbV9$GfXlW|t&e^Dr3pVMV;>cM3LXOcL~n1Ddd21xqkBl%R{sHGaUK*5B3EnS@(>vT#O$ zBfBXmv3iBY`KR5H9m}{kR{5y6*z)uVM6Jd%7;)UYpJyh2BL`_ZZt7!mZ8_#m|Kt19 z>liyHADf@O=)7c)O>Sxymhhk;60nm)Tztlcd#H7$#!*g1<)*09`h2x4WKLiF(uqJ1 z4JllHukNDryExb7PfJTvI{G?=n>)mqFJqr>qU7uTXhI=Ph-sZxUOuvO;;g!df3ZT# z8v6OO^!DTdp9@%Z3paUA^gyq#6DMRBeMpfSTkyakX;`vW;wl*#6%9DX@Q5rm()hB( z|ABEISZ7&u7e&RszLIx^iT{ao=;TE`on|iUTP#FGTnFq?>=!g?o@QZGRaQM?Ng%@m zA8#B96fI(TOg3)xJ5bDQ`tfd}@nD1FDT#o^sXaHs(^b-trs};QS$iiI`AgHxVU4Lw z!E0x*`ySQ@^lyau?xyTigGa57+kpme6FB-FZ^O|2lxRf+8Zkh#8n`O*=!-n6;UVk; zYZS7otbHHR55=j!;LKtr>}ng1<5@N5>HOyUDEnzz_dMT9m9SPDVf)`2`s_#G-&%q6 zQjgCfW-xjY{W|}rM88c(?&ROLoNavZ1FU&1`W860j-Db6sQ5;2uJKQMMNd76L%Nz) zXeCMZsOjjC=Z%Iyi-*V@^6NKlJ6YHwpYMSga9r3NuJmX$X0TAVj*W+h>_r5NvrcJg z=}?80dKj}<eMoq}Wr zXN5b9BRNqdr2C%=a>b?%KKEM&7+HQQExkJ9xTm5E;^|tE-?%rIX@&iAvgKc_+OoVv zaKjn^Zdh~iR-`+w36rxN^5`CAN!ZXJC$DPxUqySydv{~PHO&n30HJza9LM>^MZf-w zAjcQhB;;4d_^P;E2LwWS)QA{k?LgIggHJ*S=r@=u-jlGUk@WGcz%SPN zM8U(`vs}~KP821@NOW$L<6~TH9IFXEKrUXmmsi2C<)W&JYss8~mQVYtMgS=n-Wa?= zuFC7^_ytj6Gyxyl5NRKP4?r>`)#3JA@vAz95t>Y8;K!Is*)wX)>E`|bSrggq<(du` z7(^9o%z*XSlsmEcLk{`u~I;BzTWS!YMg+fGSF_>ItDfrOw)aV9lj`W z9?c6uHg^)u6ZE3&xK^*2lSLEks{>J#ynFR*C$EI51u5kvPNK83v!ybRU5bR?;wb=QZ>G^x+>i;@Yh&Ty{epk_i(&WH*ZVw zA*78?Fl&4$MD`x6Nl%*d-A_UQa(~%dtE)eQqYvMVoIRZJxHTm6YLJwbm54b*X868O zID7Wu&{oU%uX$M)k=po_5gYt#91@&w?_D0>man{HfIq(lvd>%LhnvS_bOs@7eF#Q` zzBEZX{*v6_c?IfDY-QoIwtp!T2`HW<^!VztTkCx&;t;EuUv$60b&&o}p~}SmN=WV? z?KRpIzNuW4afRvPQA|{s=63`^bSL|e@x#}YG$hXyWyK?$JuneQQoQ}{TBqT zdg3At8<7x1QVb&v4-R(l@>%VppG|SQk#mkQPs}T@7g`ofJ-MH%Z*!sKwDE@siHx&9 z8d?Z{*gJMtQPTo^hUUw#`@6$v__u>!7GlcUU$lXDq!fWW^R#rtKz4pMArMCIT33h& zs`zTy_7bD!Gdp>>W2UJ0eUDBi>p_D(1Xjb~nD^KhciCn+e)h9v;=!E?%{_K+*i9qW z`pkw0LOYfyj%PS$5VB4ZIqG=crW<6;oU;NOZ*|6#1${_%r!1&tY=yQiS`T6}`JJ{$ z^T4xs$W16_LwW5QKHycoy2OaL3`I`LJicDOq<{CapSE2>_Du*P&dFD@`eEm}SP9=~ z5jn@9Qi{gN68d}oGbroj4cN6FjwKX@uCJe}H}s?S8u+e~y?JQ9D;^P-dg**nR2*I( z&7*B;kye1f9J4U%kfu{;D6czyEN1+Er?^hX=xqAT)89 z@sk?-s{qfOhs=++_s&r$0^mLm&%r)>1ieyA$RB-L;8&bf#>anC3>b1>{TG|f(&O!O zO5aOYUr^A`EC03ke@KM`gM$92l)3+&-|xRkz=Mn{ZZF0|IS4NRzU@Ye<+#)3rcF^| z_RkD;c_=ydA}XR1X}j?9faX@wD5#P!JcUDbk+TvSvGN@V@8l$SE<9m2`dIJb%gp9 zpqW!x>vg^aKDGN^iEH4~KZPRVdw=pEkK~QOKUV$Oy*58B8=smoL|PqVpNb+99)0Z+ zyaY&l@8X{?Gc@474xIgd%l`4}9L{59e2Yq_Y?8OuWhdm%A0>z_FU^+%k%rc%D)Rn@ zr0R{33s#kv--H@{`$UOxCb*L4J|*y>^LJKv6ek%qj55Rcm0z3pe3=t{?a%K>dC-{?d+AZ}g_= zABZQo2H9E8z$k24H)ncu+Fi?5%`E9~bh_I>_V=b1s`alhZZ0xs5nVU9hTif!+GCEt zKLAIeF9rf2x9+BsOobZ}A>n)=tB-xYB>w562{;HsHL$o<1Rt~EP-1R{D0s|BC|kre z?Af68xIi`%yd1ihA%>SOw8ayFj6?#yv1u3uMSCh}YIDZlsMpKO-BAG>I5S8+XjQma zSLrnp0>$2NopCSc6#>{IRz4ZjX!YFFhu6n!9G$g;6QR1_z*oq|372Odr|0c|(Ob9&2XS9# zGoHV~ke$yjn?$;FG6TL{*Gg(}9EnGJVMl|=HT1LtRs{FX8M~z;^=b2#qzxWHZZB&p z&aik&wFAPPulRf`Zq4(<(SIBmC0KELW?mc}5;T7OJOd-u?`N@dJ=0FT@S{Q8bzmkI zRzU(DR9VzY`q&^<-lXs}oHm2d1*%I$u-%Rfb!_r0*I+(4T@W?IBl@~Evh&ot=6w|g zJbntl0bLCzQ!fO7T5vzv7U_9!mZN+{na{iMcZcfVH`!>S561)maDh%x*+bvgCbk2aE96P{?Yg~XH|8KPWWuLIcUn*N55mwF&%W)|AqTesJ&X0w zDhi8QNcZo=fe&7FU&-zL9XV23<$C@wYsdW2V~42s@%m1|a&N8k|5h?q*%B0%vTeN@ zzgS5><6p4C7?FPX`&69Xi4ZoE^0m;Kg#Cto3_WCzj}lvvY8 z^mXVUG!k)^iQw7zxGR?NIKNwa;M}rJILvFC$eq;yoaKQx>mFI^Rqe*Gb9JGBCY#z7 z9{R1cWUsDd)3th=pSDOyVc|!@T|{S2?9PhXQ(!s-O?r}?XM076J6#wQPYQ0|PvOlv zVmIX)K+<}1dCA~}&iSX`8=ID4%RNb*S_g%%TUtA_fzS@;ZdJ{XgU=+81I@jr;X6|{ zv!HVy%&mre^&3@ItFAV5R<9~*>8;s4J-u3$DkSK>p|sM?nM`F#YEuENSflqq1_qFj zI)o_};amTz#i}Zg>BC<=7yyqtkalyzxc&saqas|&PPg&BYb4O>L#Nj_b8qhvyk$~2 zvR8pp`Gp(ClqK*Y=a5$8g{n-P7o^GHXMHCCtFPuv9qm9f)eRMADvAP=PVh~S0D?Qt{zQJ^G?d}I7|v}^>gkA-Hz_b^>2>% zu(o@DrjGWZF33IY?6p$clEm@z>*m&rVes&P#TL1nXQag8>Mh?r2Lzrsbb>=O*+u-3 z&e_Vwf)xis(P5pFDrcElojW_IXGI6@sHMVp%FI1w2GaXs?@hbJ~#JRq6=f&qO~@#FQ$89e_KgO>1UhI z`?qgzqE7eVyD4tjN9k+EHlU?r(c$r#Z!Ig}HVe^luB{8mzdOMxDPtN7c<5oMgw2_} z!m~X*`RwuO;%^7PC5{RYp~s6boAZ?sj>a0xQae@gn>A>#yK?{+*>Mf$vrjM9PBtzk;b_sTPI z(7wt-9o+31aH3}6>W3Sn880XUR$2#wybX?h*3jx!;YWM#penmr_!;s(Qd*WQ4q{f@ zPhN&~48X`f-00wJ?q^&}fq;*RF{#a*xB%{7e~pScFSAnvv(f95zY|FA*EdH2;AZpX ziCUaZ`9eALshM1h_P+hszPN~Lw&vYfcN9k z=#V?^dd6!hm)QuL{RxPKZ^z>*2)4i=2Kf$F)^1OCBdjJATFss_i5dLuL}%tG3Zj)D zZ863K&4>1G;~{$0>AWF71qXedS#>+NF=pXGT=}oehWV@i7d%lA{`~)UYz17#qS-7h zpZgqmreV<2VhFV#2(QBkaj=CO-dU#m0}*x@oQ>3M^r``XJ1tDpH#t~=hmNanXF+26 zB)I*;8+?F`ogncLGWXa4gR%UL69zvBEQpIrv88WKf?fPR{9ez`oTkj)iSiZ@3LqxX z?1L#(G6jB#l{@>BoR_<*y^g}nWo^ba)gHvEeeQ?HFVO|A_>EI=BUTSw#~b;DyjO<> zy8GBZX41eRgu%|uO)Bkg*!4}j#A+N&gJaR`O^bc)gN+PCVjP-y2&%-QdA7Ka@7&5i|6hcIZLF1qmSRz@@uMi3fpj>4?4D zgWlrQEh-B{;PW*`31arLiWSZo7$HPJ&!_TDyuMt3oRpc9Nf5I6_WgUhwhz?qyLx+N zP`dEENXjmE^wi-J<01i2t@MHDHng~dyOmG(cc1fis@ojx=}YLr8=fv`|M`GAt7U=< zm=9ELLXTOJ^6+f;mCU22w1(O^g$%M{Wom20EY_i`ApG4HOvCqKs3d{_3E|@N1ddTg z7fdHs0F`ZgqnB&L5P7&F&F7x+BBBF_t)hkD5(BccuhBhTeSVjNL*#X;9!R9pfNS(d zEzUPT4oCZ7jF_fRdWvkshlhv5*{%XMQ^)O4MQ!RxGdhzLYT-MUJz{ixO7T4*CK!S# z>kvf#rYL=dlQR?oF}jbl3ac`Hb042Spk`zwgY2tIItE1Ssjp{>?{p=l=jdAZaweyy zwoUebMdz1Qw&lo`1)f$$=vaoj!?l8_Kp1)@!Mr5*B!GCOCRZLyLC}$!f0wn>@suuE zUq!`V$YyH&CnX>!Cue)acyW%4JoxqZM4jj1RI4QAj0dT5%FDK7W<23atH;FXEa#*{ zT}ozW)f9BvY+ZVGDftz7Q~G39*TVM)Uwf_qTLDT{ND6N>c=8}0W=(WKc?C$E-e;J4 z_d~m3mcLlfRaJlde$y)bAc@4AYu~z|2LQqoHR_)%$vPZ*b2%PQu>=O+Hh-0*D)bc-B9xq}ghNRQn z-ECVovW31l`RmE0msRQgvBC5U3xZ>+0<>D=0`EnULccyfJ|D&llcr;8wz&0~q5LXB zC^LYHfdMjD?IBC7$%cC*_$MvoHiev`=SbuoXc5Ea2>5&vw?eHPUbV|JCA;z8Hk5={ zu83g^^js^7)QgmB8Ls+nNGM^Xm*}YgNLp;b$~7!}_#2+r+M&~i z!e8wj)_fRd6M!_EfLR}%_{VKJn$C8^)xLNmNZd-v5!uKHCb2Kn?9UCLY;C0@JWnL! zV>9ySVRWCMeZr@o`p~F7I3g0pb6e^REoe0swDC8K#}G6$eEIry3q%u*jEeGuNOhOW z3(CRxA?aP4ad$Hw%B(?L?z(IVN=nxoaahmUqlzVsVuMf6b<*$Oha2njYL?1w%+@`H z+F6c&K!7ePJogF2F8$w_JMvFq(g@u5Zn7As5bFGPx}!NXKj_Blhx5lTq=@?kT|7N%h$jI+~z-Bu|HgXrAtYqdPIPaZ>giMrIqX1DEbA; zw8(&%)B8t9P-=-rh2A9W|Ub!&`mcVOmX&6H96C*KYbGs2Ll6B!( z$+^SX1M3UbH%twN+_mD~WK6A&x%rM*JdiF}*(y(MMc~aEb)mxd{K=hHsu}OaRs77$unVg3=H@@QK9Tfo@C^ z#j6#p1_0o~o)efPchd+OsLGCg|GKO)MzK~E8#jPz@tp`hDmvow52Pw;00;8VHO!L> zsu|KM`H#zX6X%)i@}3_G^-$@RVN)H;7M2GaHQr*6;7H8cl1s(A{hRq%yY zO4x`qheAIL^gQJS3?LKtTTv?5s{qoi}6vM&b{hnsapHLhFo~abnFxo5< zJnFXiprkW(RCdEo#cr9RU8~Z+hD!#WVlAjNRiTVORjz0fBQIDcFs@$|_7jYE-%Kmw z)1JavN?K1m%!=UCu9UU5&bQ6`HszJjueOx#3W*;Io@f-PafRUDA z)rNFtYavG4hEeQK_Po)ncL;CFeHyj28M^=B(8f-rF=DEtQ)+`|rFy#&q=?2cgND7_ za&ucWPMS}yRYn`T*+J~)rCnV&+v6j*gG!D|xz|5EV=c~Pl8KXB`gT@JRGFy6g%O+D zlW|P3Su##6jkmLItn_UoZci@@`l!>vmmH{9Inbs2V7`iB<4KNO%5Thu}DbX>_-#>MHo(* z9o_^3FQ-^pE3t+#1aI zYYMB8UCqku;8;OxR}?2=)@9mey#~ti9EQ^J%?H`U#2DG-liSY0uZ#jv@3OAj5n}RO zrshV5E-gMZKef(3IBGTD8Z&GOXQp#My!+3+p!P82$l(I1n?(aHhQq1yrpjsC)_h+; zr`Cyda&q#r2|<@1hkVicU7l$POnAbrj5m7lIEhR*268GB?OCQFHGGbIfzdJo!Zhh4kFUZ^U z?$yv9hmD%OT!c>=AWMNbh*$rsKtpZp9HR|6=)e6sze)u z<(8wb$MJJxb(~YI=$)m1uP$p5l{cQb_Tw|qG4TQ~J(DuCo{Ty~xhktKmdibS{1>bB zMAN)k@R2?4)80Nk#8$j^l$pcxTE$N?haN?_~e=JylLD83l!) z$%?$^JsoFoT_pBWuYUfF-zj-TLo}gQv;m~(P5nd=2_f|}4ROn%rcV>lTEG={FI6Zl zyG62RCn~(ly43>$12dq0!3E7@V``cieO+hBIp{MqR4OV`8yOoLK8mNJqYHxUn?*G8 zh^05jO7Rcb(aI{0-y-kt8XO@+G4=gpL4;KQ^_5e0Ufaiz!h&9wSHDq5v-|@XNkT!< zexINR0WH@ZbNO~pmllij%SVdwfA_1N1CG;7=l^%xB zPSqHNW>p2YLGE=?*-1~Lrdz;o15{4m-I#d>A{`0*qAe&HVt;r{>JHRtH!1WI)fQlY><#*H?K?NTv)i>R7uW?;GT$!3up#4Ou$ON9 ztH6&RKPo9bGGS0qT^dpEwJhwytxBiA^Hs_HYWTSv*TP+{Rmf>3ggBQ)xrC#h*c; zyCO44N6dR}-j1A`QWv-7@_hPqN#?d&zg+K}IWkL@E(JArgXT4`$<9-s@akC?i-%?^ z&@)U7e)=-uvU`hE8UBVPT@`gTb&viO#JFVHvZPbmVk=n_-r8*T@bGYGN}K)q$Cs$T za|{xjUR++z&#+*@f_jGZb8{v}HK_T_PynV8V0VLy0eG;~^m*&;>Ky*r71aK5IQ*Rv zvK}3HY}|gfkibt9r%!JKy64H0Cl*uB1N*M8EZx*st~{{n$`z^UA>~U$*t0&q*^*%_ z6t>Rg(5b1wlt1~McKy3k%eMy}U)C4OzwW6p=oH4RH78!ql&=Tw^OjearrDr_Gp4d~i&@OedG_Rqf~KY?Xv6g7 z<^I=mMW21RRrzS9zVXMO&rQRB11E2E#FFQ|(0urHMi!^-+oHb@xBhxk9<@dC`FZR0 zyQ)@Sku<)Lc`>ads(yyui@;SP_={ zGmA0U)y*yG{=V8vpV)b&SQvm6NokI}S&oF+UDL4df7qua_0+#L1!_6FQP;>wh+)ZF z;A(ayrL0}AN`M`AtF8a{U30f(v#$J<0(9d1>s9x!@7lMKZ+-n-b)j`dwOR~&xi)+| zVt30%nQwpSPHUdWWNR>+0gN>wkaE`19lAqkVF&rrYXkR3w1oCYQc$T)le1y#TwdG2u=>uW5&b z#{h@#z&3AXs@gmK^sW_aQ%*(v2syv`iSJY4f;djrhIwrL?O?O_1n&)VI2n=sd?qWy zdae0U_w4LG*}?P!H_@ChfD9F$^_~kFS_9610>KJHq7Dn8>dYr(f;16qzX!e}N{F`g ZpZ%_@iBlRUFJNQ<0#8>zmvv4FO#rZ|fJ*=X From 74a84ff7352b4f29b6f0aa842235c931c3a9783d Mon Sep 17 00:00:00 2001 From: GunHog Date: Wed, 5 Nov 2014 13:21:36 -0600 Subject: [PATCH 053/102] Partial Fix Partially fixes the bug of the RPED not using better parts when installing parts to an incomplete machine. It is still possible for it to not use top tier parts, however, if More than two tiers of the same part exist. --- code/game/machinery/constructable_frame.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/game/machinery/constructable_frame.dm b/code/game/machinery/constructable_frame.dm index 445ae1a815d..455c8f79765 100644 --- a/code/game/machinery/constructable_frame.dm +++ b/code/game/machinery/constructable_frame.dm @@ -153,7 +153,7 @@ for(var/obj/item/weapon/stock_parts/replace in replacer) for(var/obj/item/weapon/stock_parts/part in added_components) - if(istype(replace, added_components[part]) && (replace.rating > part.rating) && (!replace.crit_fail)) + if(istype(replace, part) && (replace.rating > part.rating) && (!replace.crit_fail)) replacer.remove_from_storage(replace, src) replacer.handle_item_insertion(part, 1) added_components[replace] = added_components[part] From dfbe73e80a58d0442da69665c17d8cf2c8aeba15 Mon Sep 17 00:00:00 2001 From: phil235 Date: Wed, 5 Nov 2014 20:37:14 +0100 Subject: [PATCH 054/102] Added attack logs where missing. Moving attack_alien for silicons to silicon/attack_alien() with overrides in children. Fixing messages. Attack_animal for silicons: all in silicon/attack_animal() Attack_slime handled in living, overriden in its children. Simplified the definition of the stunprob var, slight nerf to slime shock. --- .../mob/living/carbon/alien/alien_defense.dm | 52 +------ .../mob/living/carbon/carbon_defense.dm | 15 +- code/modules/mob/living/carbon/human/human.dm | 63 ++------ .../mob/living/carbon/monkey/monkey.dm | 65 ++------- code/modules/mob/living/carbon/slime/slime.dm | 14 +- code/modules/mob/living/living_defense.dm | 33 ++++- code/modules/mob/living/silicon/ai/ai.dm | 43 +----- .../modules/mob/living/silicon/robot/robot.dm | 135 ++++-------------- code/modules/mob/living/silicon/silicon.dm | 39 ++++- .../mob/living/simple_animal/simple_animal.dm | 26 ++-- 10 files changed, 152 insertions(+), 333 deletions(-) diff --git a/code/modules/mob/living/carbon/alien/alien_defense.dm b/code/modules/mob/living/carbon/alien/alien_defense.dm index 97551a5185f..ab42b58ab70 100644 --- a/code/modules/mob/living/carbon/alien/alien_defense.dm +++ b/code/modules/mob/living/carbon/alien/alien_defense.dm @@ -46,55 +46,6 @@ In all, this is a lot like the monkey code. /N return attack_alien(L) -/mob/living/carbon/alien/attack_slime(mob/living/carbon/slime/M as mob) - if (!ticker) - M << "You cannot attack people before the game has started." - return - - if(M.Victim) return // can't attack while eating! - - if (stat != DEAD) - - visible_message("The [M.name] glomps [src]!", \ - "The [M.name] glomps [src]!") - - if(M.powerlevel > 0) - var/stunprob = 10 - var/power = M.powerlevel + rand(0,3) - - switch(M.powerlevel) - if(1 to 2) stunprob = 20 - if(3 to 4) stunprob = 30 - if(5 to 6) stunprob = 40 - if(7 to 8) stunprob = 60 - if(9) stunprob = 70 - if(10) stunprob = 95 - - if(prob(stunprob)) - M.powerlevel -= 3 - if(M.powerlevel < 0) - M.powerlevel = 0 - - visible_message("The [M.name] has shocked [src]!", \ - "The [M.name] has shocked [src]!") - - Weaken(power) - if (stuttering < power) - stuttering = power - Stun(power) - - var/datum/effect/effect/system/spark_spread/s = new /datum/effect/effect/system/spark_spread - s.set_up(5, 1, src) - s.start() - - if (prob(stunprob) && M.powerlevel >= 8) - adjustFireLoss(M.powerlevel * rand(6,10)) - - - updatehealth() - return - - /mob/living/carbon/alien/attack_hand(mob/living/carbon/human/M as mob) if (!ticker) M << "You cannot attack people before the game has started." @@ -158,4 +109,5 @@ In all, this is a lot like the monkey code. /N var/damage = rand(M.melee_damage_lower, M.melee_damage_upper) adjustBruteLoss(damage) add_logs(M, src, "attacked", admin=0) - updatehealth() \ No newline at end of file + updatehealth() + diff --git a/code/modules/mob/living/carbon/carbon_defense.dm b/code/modules/mob/living/carbon/carbon_defense.dm index 28ebc72d92a..ed0d78a3e4d 100644 --- a/code/modules/mob/living/carbon/carbon_defense.dm +++ b/code/modules/mob/living/carbon/carbon_defense.dm @@ -9,4 +9,17 @@ visible_message("[src] catches [I]!") throw_mode_off() return - ..() \ No newline at end of file + ..() + +/mob/living/carbon/attack_slime(mob/living/carbon/slime/M) + if(..()) + var/power = M.powerlevel + rand(0,3) + Weaken(power) + if (stuttering < power) + stuttering = power + Stun(power) + var/stunprob = M.powerlevel * 7 + 10 + if (prob(stunprob) && M.powerlevel >= 8) + adjustFireLoss(M.powerlevel * rand(6,10)) + updatehealth() + return 1 \ No newline at end of file diff --git a/code/modules/mob/living/carbon/human/human.dm b/code/modules/mob/living/carbon/human/human.dm index b90961e84da..89f21c984ed 100644 --- a/code/modules/mob/living/carbon/human/human.dm +++ b/code/modules/mob/living/carbon/human/human.dm @@ -254,64 +254,23 @@ var/obj/item/organ/limb/affecting = get_organ(ran_zone(L.zone_sel.selecting)) var/armor_block = run_armor_check(affecting, "melee") apply_damage(damage, BRUTE, affecting, armor_block) + updatehealth() /mob/living/carbon/human/attack_slime(mob/living/carbon/slime/M as mob) - if(M.Victim) return // can't attack while eating! + ..() + var/damage = rand(1, 3) - if (health > -100) + if(M.is_adult) + damage = rand(10, 35) + else + damage = rand(5, 25) - visible_message("The [M.name] glomps [src]!", \ - "The [M.name] glomps [src]!") + var/dam_zone = pick("head", "chest", "l_arm", "r_arm", "l_leg", "r_leg", "groin") - var/damage = rand(1, 3) - - if(M.is_adult) - damage = rand(10, 35) - else - damage = rand(5, 25) - - - var/dam_zone = pick("head", "chest", "l_arm", "r_arm", "l_leg", "r_leg", "groin") - - var/obj/item/organ/limb/affecting = get_organ(ran_zone(dam_zone)) - var/armor_block = run_armor_check(affecting, "melee") - apply_damage(damage, BRUTE, affecting, armor_block) - - - if(M.powerlevel > 0) - var/stunprob = 10 - var/power = M.powerlevel + rand(0,3) - - switch(M.powerlevel) - if(1 to 2) stunprob = 20 - if(3 to 4) stunprob = 30 - if(5 to 6) stunprob = 40 - if(7 to 8) stunprob = 60 - if(9) stunprob = 70 - if(10) stunprob = 95 - - if(prob(stunprob)) - M.powerlevel -= 3 - if(M.powerlevel < 0) - M.powerlevel = 0 - visible_message("The [M.name] has shocked [src]!", \ - "The [M.name] has shocked [src]!") - - Weaken(power) - if (stuttering < power) - stuttering = power - Stun(power) - - var/datum/effect/effect/system/spark_spread/s = new /datum/effect/effect/system/spark_spread - s.set_up(5, 1, src) - s.start() - - if (prob(stunprob) && M.powerlevel >= 8) - adjustFireLoss(M.powerlevel * rand(6,10)) - - - updatehealth() + var/obj/item/organ/limb/affecting = get_organ(ran_zone(dam_zone)) + var/armor_block = run_armor_check(affecting, "melee") + apply_damage(damage, BRUTE, affecting, armor_block) return diff --git a/code/modules/mob/living/carbon/monkey/monkey.dm b/code/modules/mob/living/carbon/monkey/monkey.dm index c9b3086afe4..73d5756d169 100644 --- a/code/modules/mob/living/carbon/monkey/monkey.dm +++ b/code/modules/mob/living/carbon/monkey/monkey.dm @@ -230,68 +230,23 @@ /mob/living/carbon/monkey/attack_slime(mob/living/carbon/slime/M as mob) - if (!ticker) - M << "You cannot attack people before the game has started." - return + ..() + var/damage = rand(1, 3) - if(M.Victim) return // can't attack while eating! - - if (health > -100) - - visible_message("The [M.name] glomps [src]!", \ - "The [M.name] glomps [src]!") - - var/damage = rand(1, 3) - - if(M.is_adult) - damage = rand(20, 40) - else - damage = rand(5, 35) - - adjustBruteLoss(damage) - - if(M.powerlevel > 0) - var/stunprob = 10 - var/power = M.powerlevel + rand(0,3) - - switch(M.powerlevel) - if(1 to 2) stunprob = 20 - if(3 to 4) stunprob = 30 - if(5 to 6) stunprob = 40 - if(7 to 8) stunprob = 60 - if(9) stunprob = 70 - if(10) stunprob = 95 - - if(prob(stunprob)) - M.powerlevel -= 3 - if(M.powerlevel < 0) - M.powerlevel = 0 - - visible_message("[M] shocked [src]!", \ - "[M] shocked [src]!") - - Weaken(power) - if (stuttering < power) - stuttering = power - Stun(power) - - var/datum/effect/effect/system/spark_spread/s = new /datum/effect/effect/system/spark_spread - s.set_up(5, 1, src) - s.start() - - if (prob(stunprob) && M.powerlevel >= 8) - adjustFireLoss(M.powerlevel * rand(6,10)) - - - updatehealth() + if(M.is_adult) + damage = rand(20, 40) + else + damage = rand(5, 35) + adjustBruteLoss(damage) + updatehealth() return /mob/living/carbon/monkey/Stat() ..() statpanel("Status") - stat(null, text("Intent: []", a_intent)) - stat(null, text("Move Mode: []", m_intent)) + stat(null, "Intent: [a_intent]") + stat(null, "Move Mode: [m_intent]") if(client && mind) if (client.statpanel == "Status") if(mind.changeling) diff --git a/code/modules/mob/living/carbon/slime/slime.dm b/code/modules/mob/living/carbon/slime/slime.dm index 9b0ecb92301..e244636aa94 100644 --- a/code/modules/mob/living/carbon/slime/slime.dm +++ b/code/modules/mob/living/carbon/slime/slime.dm @@ -243,23 +243,15 @@ return /mob/living/carbon/slime/attack_slime(mob/living/carbon/slime/M as mob) - if (!ticker) - M << "You cannot attack people before the game has started." - return - - if (Victim) return // can't attack while eating! - - visible_message(" The [M.name] has glomped [src]!", \ - " The [M.name] has glomped [src]!") + ..() var/damage = rand(1, 3) attacked += 5 if(M.is_adult) damage = rand(1, 6) else damage = rand(1, 3) - if (health > -100) - adjustBruteLoss(damage) - updatehealth() + adjustBruteLoss(damage) + updatehealth() return /mob/living/carbon/slime/attack_animal(mob/living/simple_animal/M as mob) diff --git a/code/modules/mob/living/living_defense.dm b/code/modules/mob/living/living_defense.dm index 4bd3a87c30f..3ef8ec692e4 100644 --- a/code/modules/mob/living/living_defense.dm +++ b/code/modules/mob/living/living_defense.dm @@ -131,4 +131,35 @@ proc/vol_by_throwforce_and_or_w_class(var/obj/item/I) LAssailant = user playsound(src.loc, 'sound/weapons/thudswoosh.ogg', 50, 1, -1) - visible_message("[user] has grabbed [src] passively!") \ No newline at end of file + visible_message("[user] has grabbed [src] passively!") + + +/mob/living/carbon/attack_slime(mob/living/carbon/slime/M as mob) + if (!ticker) + M << "You cannot attack people before the game has started." + return + + if(M.Victim) + return // can't attack while eating! + + if (stat != DEAD) + + visible_message("The [M.name] glomps [src]!", \ + "The [M.name] glomps [src]!") + + if(M.powerlevel > 0) + var/stunprob = M.powerlevel * 7 + 10 // 17 at level 1, 80 at level 10 + if(prob(stunprob)) + M.powerlevel -= 3 + if(M.powerlevel < 0) + M.powerlevel = 0 + + visible_message("The [M.name] has shocked [src]!", \ + "The [M.name] has shocked [src]!") + + var/datum/effect/effect/system/spark_spread/s = new /datum/effect/effect/system/spark_spread + s.set_up(5, 1, src) + s.start() + return 1 + add_logs(M, src, "attacked", admin=0) + return \ No newline at end of file diff --git a/code/modules/mob/living/silicon/ai/ai.dm b/code/modules/mob/living/silicon/ai/ai.dm index fc15cf0972c..da0e2fba829 100644 --- a/code/modules/mob/living/silicon/ai/ai.dm +++ b/code/modules/mob/living/silicon/ai/ai.dm @@ -410,47 +410,9 @@ var/list/ai_list = list() M << "You cannot attack people before the game has started." return - if (istype(loc, /turf) && istype(loc.loc, /area/start)) - M << "No attacking people at spawn, you jackass." - return - - switch(M.a_intent) - - if ("help") - for(var/mob/O in viewers(src, null)) - if ((O.client && !( O.blinded ))) - O.show_message(text("[M] caresses [src]'s plating with its scythe like arm."), 1) - - else //harm - var/damage = rand(10, 20) - if (prob(90)) - playsound(loc, 'sound/weapons/slash.ogg', 25, 1, -1) - for(var/mob/O in viewers(src, null)) - if ((O.client && !( O.blinded ))) - O.show_message(text("[] has slashed at []!", M, src), 1) - if(prob(8)) - flick("noise", flash) - adjustBruteLoss(damage) - updatehealth() - else - playsound(loc, 'sound/weapons/slashmiss.ogg', 25, 1, -1) - for(var/mob/O in viewers(src, null)) - if ((O.client && !( O.blinded ))) - O.show_message(text("[] took a swipe at []!", M, src), 1) + ..() return -/mob/living/silicon/ai/attack_animal(mob/living/simple_animal/M as mob) - if(M.melee_damage_upper == 0) - M.emote("[M.friendly] [src]") - else - if(M.attack_sound) - playsound(loc, M.attack_sound, 50, 1, 1) - visible_message("[M] [M.attacktext] [src]!") - add_logs(M, src, "attacked", admin=0) - var/damage = rand(M.melee_damage_lower, M.melee_damage_upper) - adjustBruteLoss(damage) - updatehealth() - /mob/living/silicon/ai/reset_view(atom/A) if (camera_light_on) light_cameras() @@ -762,3 +724,6 @@ var/list/ai_list = list() src << "Accessing Subspace Transceiver control..." if (radio) radio.interact(src) + +/mob/living/silicon/ai/attack_slime(mob/living/carbon/slime/user) + return diff --git a/code/modules/mob/living/silicon/robot/robot.dm b/code/modules/mob/living/silicon/robot/robot.dm index 2c5fa3c7eec..9a37041847e 100644 --- a/code/modules/mob/living/silicon/robot/robot.dm +++ b/code/modules/mob/living/silicon/robot/robot.dm @@ -626,126 +626,51 @@ return switch(M.a_intent) - - if ("help") - visible_message("[M] caresses [src]'s plating with its scythe like arm.") - + if ("disarm") + if(!(lying)) + if (prob(85)) + Stun(7) + step(src,get_dir(M,src)) + spawn(5) + step(src,get_dir(M,src)) + add_logs(M, src, "pushed", admin=0) + playsound(loc, 'sound/weapons/pierce.ogg', 50, 1, -1) + visible_message("[M] has forced back [src]!", \ + "[M] has forced back [src]!") + else + playsound(loc, 'sound/weapons/slashmiss.ogg', 25, 1, -1) + visible_message("[M] attempted to force back [src]!", \ + "[M] attempted to force back [src]!") if ("grab") grabbedby(M) - if ("harm") - var/damage = rand(10, 20) - if (prob(90)) - /* - if (M.class == "combat") - damage += 15 - if(prob(20)) - weakened = max(weakened,4) - stunned = max(stunned,4) - What is this?*/ + else + ..() - playsound(loc, 'sound/weapons/slash.ogg', 25, 1, -1) - visible_message("[M] has slashed at [src]!") - if(prob(8)) - flick("noise", flash) - adjustBruteLoss(damage) - updatehealth() - else - playsound(loc, 'sound/weapons/slashmiss.ogg', 25, 1, -1) - for(var/mob/O in viewers(src, null)) - if ((O.client && !( O.blinded ))) - O.show_message(text("[] took a swipe at []!", M, src), 1) - - if ("disarm") - if(!(lying)) - if (rand(1,100) <= 85) - Stun(7) - step(src,get_dir(M,src)) - spawn(5) step(src,get_dir(M,src)) - playsound(loc, 'sound/weapons/pierce.ogg', 50, 1, -1) - for(var/mob/O in viewers(src, null)) - if ((O.client && !( O.blinded ))) - O.show_message(text("[] has forced back []!", M, src), 1) - else - playsound(loc, 'sound/weapons/slashmiss.ogg', 25, 1, -1) - for(var/mob/O in viewers(src, null)) - if ((O.client && !( O.blinded ))) - O.show_message(text("[] attempted to force back []!", M, src), 1) return /mob/living/silicon/robot/attack_slime(mob/living/carbon/slime/M as mob) - if (!ticker) - M << "You cannot attack people before the game has started." - return + if(..()) + flick("noise", flash) + var/stunprob = M.powerlevel * 7 + 10 + if(prob(stunprob) && M.powerlevel >= 8) + adjustBruteLoss(M.powerlevel * rand(6,10)) - if(M.Victim) return // can't attack while eating! + var/damage = rand(1, 3) - if (health > -100) + if(M.is_adult) + damage = rand(20, 40) + else + damage = rand(5, 35) - for(var/mob/O in viewers(src, null)) - if ((O.client && !( O.blinded ))) - O.show_message(text("The [M.name] glomps []!", src), 1) - - var/damage = rand(1, 3) - - if(M.is_adult) - damage = rand(20, 40) - else - damage = rand(5, 35) - - damage = round(damage / 2) // borgs recieve half damage - adjustBruteLoss(damage) - - - if(M.powerlevel > 0) - var/stunprob = 10 - - switch(M.powerlevel) - if(1 to 2) stunprob = 20 - if(3 to 4) stunprob = 30 - if(5 to 6) stunprob = 40 - if(7 to 8) stunprob = 60 - if(9) stunprob = 70 - if(10) stunprob = 95 - - if(prob(stunprob)) - M.powerlevel -= 3 - if(M.powerlevel < 0) - M.powerlevel = 0 - - for(var/mob/O in viewers(src, null)) - if ((O.client && !( O.blinded ))) - O.show_message(text("The [M.name] has electrified []!", src), 1) - - flick("noise", flash) - - var/datum/effect/effect/system/spark_spread/s = new /datum/effect/effect/system/spark_spread - s.set_up(5, 1, src) - s.start() - - if (prob(stunprob) && M.powerlevel >= 8) - adjustBruteLoss(M.powerlevel * rand(6,10)) - - - updatehealth() + damage = round(damage / 2) // borgs recieve half damage + adjustBruteLoss(damage) + updatehealth() return -/mob/living/silicon/robot/attack_animal(mob/living/simple_animal/M as mob) - if(M.melee_damage_upper == 0) - M.emote("[M.friendly] [src]") - else - if(M.attack_sound) - playsound(loc, M.attack_sound, 50, 1, 1) - visible_message("[M] [M.attacktext] [src]!") - add_logs(M, src, "attacked", admin=0) - var/damage = rand(M.melee_damage_lower, M.melee_damage_upper) - adjustBruteLoss(damage) - updatehealth() - - /mob/living/silicon/robot/attack_hand(mob/user) add_fingerprint(user) diff --git a/code/modules/mob/living/silicon/silicon.dm b/code/modules/mob/living/silicon/silicon.dm index 8edd1d700ca..7bdeb6eb914 100644 --- a/code/modules/mob/living/silicon/silicon.dm +++ b/code/modules/mob/living/silicon/silicon.dm @@ -329,4 +329,41 @@ src << "Life signs monitor overlay enabled." if ("Disable") sensor_mode = 0 - src << "Sensor augmentations disabled." + src << "Sensor augmentations disabled." + + +/mob/living/silicon/attack_alien(mob/living/carbon/alien/humanoid/M as mob) + switch(M.a_intent) + + if ("help") + visible_message("[M] caresses [src]'s plating with its scythe like arm.") + + else + var/damage = rand(10, 20) + if (prob(90)) + add_logs(M, src, "attacked", admin=0) + playsound(loc, 'sound/weapons/slash.ogg', 25, 1, -1) + visible_message("[M] has slashed at [src]!", \ + "[M] has slashed at [src]!") + if(prob(8)) + flick("noise", flash) + adjustBruteLoss(damage) + updatehealth() + else + playsound(loc, 'sound/weapons/slashmiss.ogg', 25, 1, -1) + visible_message("[M] took a swipe at [src]!", \ + "[M] took a swipe at [src]!") + + return + +/mob/living/silicon/attack_animal(mob/living/simple_animal/M as mob) + if(M.melee_damage_upper == 0) + M.emote("[M.friendly] [src]") + else + if(M.attack_sound) + playsound(loc, M.attack_sound, 50, 1, 1) + visible_message("[M] [M.attacktext] [src]!") + add_logs(M, src, "attacked", admin=0) + var/damage = rand(M.melee_damage_lower, M.melee_damage_upper) + adjustBruteLoss(damage) + updatehealth() diff --git a/code/modules/mob/living/simple_animal/simple_animal.dm b/code/modules/mob/living/simple_animal/simple_animal.dm index 0b726108f88..35ed5020dd4 100644 --- a/code/modules/mob/living/simple_animal/simple_animal.dm +++ b/code/modules/mob/living/simple_animal/simple_animal.dm @@ -368,25 +368,15 @@ /mob/living/simple_animal/attack_slime(mob/living/carbon/slime/M as mob) - if (!ticker) - M << "You cannot attack people before the game has started." - return - - if(M.Victim) return // can't attack while eating! - - if (health > 0) - visible_message("[M.name] glomps [src]!", \ - "[M.name] glomps [src]!") - - var/damage = rand(1, 3) - - if(M.is_adult) - damage = rand(20, 40) - else - damage = rand(5, 35) - - adjustBruteLoss(damage) + ..() + var/damage = rand(1, 3) + if(M.is_adult) + damage = rand(20, 40) + else + damage = rand(5, 35) + adjustBruteLoss(damage) + updatehealth() return From 957c4d3f7c5e43c91fe7571654c0081f70390f8d Mon Sep 17 00:00:00 2001 From: Aranclanos Date: Wed, 5 Nov 2014 17:34:33 -0300 Subject: [PATCH 055/102] Small works with VV: Fixes issues with skipping admin rights with mass modify when editing icons. Added a check for mass-edit of ckeys, no admin can mass-modify them now. Added logs for list values modifications, additions and deletions. Fixes issue #3840 --- code/modules/admin/verbs/massmodvar.dm | 10 ++- code/modules/admin/verbs/modifyvariables.dm | 82 ++++++++++++--------- 2 files changed, 55 insertions(+), 37 deletions(-) diff --git a/code/modules/admin/verbs/massmodvar.dm b/code/modules/admin/verbs/massmodvar.dm index 880ec3da326..5895b99e697 100644 --- a/code/modules/admin/verbs/massmodvar.dm +++ b/code/modules/admin/verbs/massmodvar.dm @@ -26,8 +26,6 @@ /client/proc/massmodify_variables(var/atom/O, var/var_name = "", var/method = 0) if(!check_rights(R_VAREDIT)) return - var/list/locked = list("vars", "key", "ckey", "client", "unlock_content") - for(var/p in forbidden_varedit_object_types) if( istype(O,p) ) usr << "It is forbidden to edit this object's variables." @@ -51,8 +49,13 @@ var/var_value = O.vars[variable] var/dir - if(variable == "holder" || (variable in locked)) + if(variable in VVckey_edit) + usr << "It's forbidden to mass-modify ckeys. I'll crash everyone's client you dummy." + return + if(variable in VVlocked) if(!check_rights(R_DEBUG)) return + if(variable in VVicon_edit_lock) + if(!check_rights(R_FUN|R_DEBUG)) return if(isnull(var_value)) usr << "Unable to determine variable type." @@ -371,5 +374,6 @@ if (A.type == O.type) A.vars[variable] = O.vars[variable] + world.log << "### MassVarEdit by [src]: [O.type] [variable]=[html_encode("[O.vars[variable]]")]" log_admin("[key_name(src)] mass modified [original_name]'s [variable] to [O.vars[variable]]") message_admins("[key_name_admin(src)] mass modified [original_name]'s [variable] to [O.vars[variable]]") \ No newline at end of file diff --git a/code/modules/admin/verbs/modifyvariables.dm b/code/modules/admin/verbs/modifyvariables.dm index 74f6704b8ce..3f66e4721a2 100644 --- a/code/modules/admin/verbs/modifyvariables.dm +++ b/code/modules/admin/verbs/modifyvariables.dm @@ -5,6 +5,10 @@ var/list/forbidden_varedit_object_types = list( /datum/admin_rank //editing my own rank? it's more likely than you think ) +var/list/VVlocked = list("vars", "client", "virus", "viruses", "cuffed", "last_eaten", "unlock_content", "step_x", "step_y") +var/list/VVicon_edit_lock = list("icon", "icon_state", "overlays", "underlays") +var/list/VVckey_edit = list("key", "ckey") + /* /client/proc/cmd_modify_object_variables(obj/O as obj|mob|turf|area in world) set category = "Debug" @@ -73,7 +77,7 @@ var/list/forbidden_varedit_object_types = list( return var_value -/client/proc/mod_list_add(var/list/L) +/client/proc/mod_list_add(var/list/L, atom/O, original_name, objectvar) var/class = "text" if(src.holder && src.holder.marked_datum) @@ -125,21 +129,19 @@ var/list/forbidden_varedit_object_types = list( L[var_value] = mod_list_add_ass() //haha if("No") L += var_value + world.log << "### ListVarEdit by [src]: [O.type] [objectvar]: ADDED=[var_value]" + log_admin("[key_name(src)] modified [original_name]'s [objectvar]: ADDED=[var_value]") + message_admins("[key_name_admin(src)] modified [original_name]'s [objectvar]: ADDED=[var_value]") -/client/proc/mod_list(var/list/L) +/client/proc/mod_list(var/list/L, atom/O, original_name, objectvar) if(!check_rights(R_VAREDIT)) return - if(!istype(L,/list)) src << "Not a List." - - var/list/locked = list("vars", "client", "virus", "viruses", "cuffed", "last_eaten", "unlock_content", "step_x", "step_y") - var/list/ckey_edit = list("key", "ckey") - var/list/icon_edit = list("icon", "icon_state", "overlays", "underlays") var/list/names = sortList(L) var/variable = input("Which var?","Var") as null|anything in names + "(ADD VAR)" if(variable == "(ADD VAR)") - mod_list_add(L) + mod_list_add(L, O, original_name, objectvar) return if(!variable) @@ -149,11 +151,11 @@ var/list/forbidden_varedit_object_types = list( var/dir - if(variable in locked) + if(variable in VVlocked) if(!check_rights(R_DEBUG)) return - if(variable in ckey_edit) + if(variable in VVckey_edit) if(!check_rights(R_SPAWN|R_DEBUG)) return - if(variable in icon_edit) + if(variable in VVicon_edit_lock) if(!check_rights(R_FUN|R_DEBUG)) return if(isnull(variable)) @@ -232,53 +234,66 @@ var/list/forbidden_varedit_object_types = list( if(holder.marked_datum && class == "marked datum ([holder.marked_datum.type])") class = "marked datum" + var/original_var = L[L.Find(variable)] + var/new_var switch(class) //Spits a runtime error if you try to modify an entry in the contents list. Dunno how to fix it, yet. if("list") - mod_list(variable) + mod_list(variable, O, original_name, objectvar) if("restore to default") - L[L.Find(variable)]=initial(variable) + new_var = initial(variable) + L[L.Find(variable)] = new_var if("edit referenced object") modify_variables(variable) if("DELETE FROM LIST") + world.log << "### ListVarEdit by [src]: [O.type] [objectvar]: REMOVED=[html_encode("[variable]")]" + log_admin("[key_name(src)] modified [original_name]'s [objectvar]: REMOVED=[variable]") + message_admins("[key_name_admin(src)] modified [original_name]'s [objectvar]: REMOVED=[variable]") L -= variable return if("text") - L[L.Find(variable)] = input("Enter new text:","Text") as text + new_var = input("Enter new text:","Text") as text + L[L.Find(variable)] = new_var if("num") - L[L.Find(variable)] = input("Enter new number:","Num") as num + new_var = input("Enter new number:","Num") as num + L[L.Find(variable)] = new_var if("type") - L[L.Find(variable)] = input("Enter type:","Type") in typesof(/obj,/mob,/area,/turf) + new_var = input("Enter type:","Type") in typesof(/obj,/mob,/area,/turf) + L[L.Find(variable)] = new_var if("reference") - L[L.Find(variable)] = input("Select reference:","Reference") as mob|obj|turf|area in world + new_var = input("Select reference:","Reference") as mob|obj|turf|area in world + L[L.Find(variable)] = new_var if("mob reference") - L[L.Find(variable)] = input("Select reference:","Reference") as mob in world + new_var = input("Select reference:","Reference") as mob in world + L[L.Find(variable)] = new_var if("file") - L[L.Find(variable)] = input("Pick file:","File") as file + new_var = input("Pick file:","File") as file + L[L.Find(variable)] = new_var if("icon") - L[L.Find(variable)] = input("Pick icon:","Icon") as icon + new_var = input("Pick icon:","Icon") as icon + L[L.Find(variable)] = new_var if("marked datum") - L[L.Find(variable)] = holder.marked_datum + new_var = holder.marked_datum + L[L.Find(variable)] = new_var + world.log << "### ListVarEdit by [src]: [O.type] [objectvar]: [original_var]=[new_var]" + log_admin("[key_name(src)] modified [original_name]'s [objectvar]: [original_var]=[new_var]") + message_admins("[key_name_admin(src)] modified [original_name]'s varlist [objectvar]: [original_var]=[new_var]") /client/proc/modify_variables(var/atom/O, var/param_var_name = null, var/autodetect_class = 0) if(!check_rights(R_VAREDIT)) return - var/list/locked = list("vars", "client", "virus", "cuffed", "last_eaten", "mutantrace") - var/list/ckey_edit = list("key", "ckey") - var/list/icon_edit = list("icon", "icon_state", "overlays", "underlays") - for(var/p in forbidden_varedit_object_types) if( istype(O,p) ) usr << "It is forbidden to edit this object's variables." @@ -297,11 +312,11 @@ var/list/forbidden_varedit_object_types = list( src << "A variable with this name ([param_var_name]) doesn't exist in this atom ([O])" return - if(param_var_name == "holder" || (param_var_name in locked)) + if(param_var_name in VVlocked) if(!check_rights(R_DEBUG)) return - if(param_var_name in ckey_edit) + if(param_var_name in VVckey_edit) if(!check_rights(R_SPAWN|R_DEBUG)) return - if(param_var_name in icon_edit) + if(param_var_name in VVicon_edit_lock) if(!check_rights(R_FUN|R_DEBUG)) return variable = param_var_name @@ -359,11 +374,11 @@ var/list/forbidden_varedit_object_types = list( if(!variable) return var_value = O.vars[variable] - if(variable == "holder" || (variable in locked)) + if(variable in VVlocked) if(!check_rights(R_DEBUG)) return - if(variable in ckey_edit) + if(variable in VVckey_edit) if(!check_rights(R_SPAWN|R_DEBUG)) return - if(variable in icon_edit) + if(variable in VVicon_edit_lock) if(!check_rights(R_FUN|R_DEBUG)) return if(!autodetect_class) @@ -454,7 +469,7 @@ var/list/forbidden_varedit_object_types = list( switch(class) if("list") - mod_list(O.vars[variable]) + mod_list(O.vars[variable], O, original_name, variable) return if("restore to default") @@ -518,5 +533,4 @@ var/list/forbidden_varedit_object_types = list( world.log << "### VarEdit by [src]: [O.type] [variable]=[html_encode("[O.vars[variable]]")]" log_admin("[key_name(src)] modified [original_name]'s [variable] to [O.vars[variable]]") - message_admins("[key_name_admin(src)] modified [original_name]'s [variable] to [O.vars[variable]]") - + message_admins("[key_name_admin(src)] modified [original_name]'s [variable] to [O.vars[variable]]") \ No newline at end of file From 4ef6582b3a79640c9af5643e9dacf54b207fe3e7 Mon Sep 17 00:00:00 2001 From: Aranclanos Date: Wed, 5 Nov 2014 18:02:43 -0300 Subject: [PATCH 056/102] The gibber will now react properly to a mob trying to escape from it, even if the mob isn't the 'occupant'. It can happen if the mob changes to another one, like a changeling. New machinery proc, dropContents, it's basically a chunk of open_machine() --- code/game/machinery/machinery.dm | 22 ++++++++++--------- .../food&drinks/kitchen machinery/gibber.dm | 12 +--------- 2 files changed, 13 insertions(+), 21 deletions(-) diff --git a/code/game/machinery/machinery.dm b/code/game/machinery/machinery.dm index 3e1b2cc3ca2..73d71a511f6 100644 --- a/code/game/machinery/machinery.dm +++ b/code/game/machinery/machinery.dm @@ -141,19 +141,21 @@ Class Procs: ..() /obj/machinery/proc/open_machine() - var/turf/T = get_turf(src) - if(T) - state_open = 1 - density = 0 - T.contents += contents - if(occupant) - if(occupant.client) - occupant.client.eye = occupant - occupant.client.perspective = MOB_PERSPECTIVE - occupant = null + state_open = 1 + density = 0 + dropContents() update_icon() updateUsrDialog() +/obj/machinery/proc/dropContents() + var/turf/T = get_turf(src) + T.contents += contents + if(occupant) + if(occupant.client) + occupant.client.eye = occupant + occupant.client.perspective = MOB_PERSPECTIVE + occupant = null + /obj/machinery/proc/close_machine(mob/living/target = null) state_open = 0 density = 1 diff --git a/code/modules/food&drinks/kitchen machinery/gibber.dm b/code/modules/food&drinks/kitchen machinery/gibber.dm index 654b4c9c7d9..58e2c4a6673 100644 --- a/code/modules/food&drinks/kitchen machinery/gibber.dm +++ b/code/modules/food&drinks/kitchen machinery/gibber.dm @@ -117,18 +117,8 @@ return /obj/machinery/gibber/proc/go_out() - if (!src.occupant) - return - for(var/obj/O in src) - O.loc = src.loc - if (src.occupant.client) - src.occupant.client.eye = src.occupant.client.mob - src.occupant.client.perspective = MOB_PERSPECTIVE - src.occupant.loc = src.loc - src.occupant = null + dropContents() update_icon() - return - /obj/machinery/gibber/proc/startgibbing(mob/user as mob) if(src.operating) From 5d47ebc35c51f5060f8269bb2727490baf896f53 Mon Sep 17 00:00:00 2001 From: Aranclanos Date: Wed, 5 Nov 2014 18:12:11 -0300 Subject: [PATCH 057/102] Made the cyborg emotes be instead for all silicons Fixes issue #3866 --- code/modules/mob/living/silicon/robot/emote.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/mob/living/silicon/robot/emote.dm b/code/modules/mob/living/silicon/robot/emote.dm index da2ab42e4d7..5056ba2222c 100644 --- a/code/modules/mob/living/silicon/robot/emote.dm +++ b/code/modules/mob/living/silicon/robot/emote.dm @@ -1,4 +1,4 @@ -/mob/living/silicon/robot/emote(var/act,var/m_type=1,var/message = null) +/mob/living/silicon/emote(var/act,var/m_type=1,var/message = null) var/param = null if (findtext(act, "-", 1, null)) var/t1 = findtext(act, "-", 1, null) From a8dc2711ceccdc375799aa44582bc481dfabbfe5 Mon Sep 17 00:00:00 2001 From: Aranclanos Date: Wed, 5 Nov 2014 18:16:05 -0300 Subject: [PATCH 058/102] Swapped the admin panel override alert message from all players to only asay. --- code/modules/admin/topic.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/admin/topic.dm b/code/modules/admin/topic.dm index 5c1d89c4642..418b00eeac0 100644 --- a/code/modules/admin/topic.dm +++ b/code/modules/admin/topic.dm @@ -2,7 +2,7 @@ ..() if(usr.client != src.owner || !check_rights(0)) - world << "[usr.key] has attempted to override the admin panel!" + message_admins("[usr.key] has attempted to override the admin panel!") log_admin("[key_name(usr)] tried to use the admin panel without authorization.") return From 2c54ea4f472550e2ad80bafaad415f32ca2410d4 Mon Sep 17 00:00:00 2001 From: phil235 Date: Wed, 5 Nov 2014 22:34:47 +0100 Subject: [PATCH 059/102] Attack_animal() is moved and handled in living/attack_animal() in living_defense.dm and overridden in children. Maybe fixes the animal emote not working (Ian nuzzles, etc) moving attack_paw to living and nerfing it by making prob(75) apply to all living not just monkeys. Attack_larva() is moved to living/attack_larva Adding larva rubbing on silicon Adding possibility to fail to bite the living as larva. Adding missing attack logs --- .../mob/living/carbon/alien/alien_defense.dm | 42 +++-------- code/modules/mob/living/carbon/carbon.dm | 17 +++-- code/modules/mob/living/carbon/human/human.dm | 41 ++++------- .../living/carbon/human/human_attackpaw.dm | 20 ++---- .../mob/living/carbon/monkey/monkey.dm | 61 ++++------------ code/modules/mob/living/carbon/slime/slime.dm | 72 ++++--------------- code/modules/mob/living/living_defense.dm | 53 +++++++++++++- .../modules/mob/living/silicon/robot/robot.dm | 3 - code/modules/mob/living/silicon/silicon.dm | 22 +++--- .../mob/living/simple_animal/simple_animal.dm | 63 +++++----------- 10 files changed, 149 insertions(+), 245 deletions(-) diff --git a/code/modules/mob/living/carbon/alien/alien_defense.dm b/code/modules/mob/living/carbon/alien/alien_defense.dm index ab42b58ab70..808a3060777 100644 --- a/code/modules/mob/living/carbon/alien/alien_defense.dm +++ b/code/modules/mob/living/carbon/alien/alien_defense.dm @@ -72,42 +72,16 @@ In all, this is a lot like the monkey code. /N /mob/living/carbon/alien/attack_paw(mob/living/carbon/monkey/M as mob) - if (!ticker) - M << "You cannot attack people before the game has started." - return - - if (istype(loc, /turf) && istype(loc.loc, /area/start)) - M << "No attacking people at spawn, you jackass." - return - ..() - - switch(M.a_intent) - - if ("help") - help_shake_act(M) - else - if (M.is_muzzled()) - return - playsound(loc, 'sound/weapons/bite.ogg', 50, 1, -1) - visible_message("[M.name] bites [src]!", \ - "[M.name] bites [src]!") - add_logs(M, src, "attacked", admin=0) - if (stat != DEAD) - adjustBruteLoss(rand(1, 3)) - updatehealth() + if(..()) + if (stat != DEAD) + adjustBruteLoss(rand(1, 3)) + updatehealth() return /mob/living/carbon/alien/attack_animal(mob/living/simple_animal/M as mob) - if(M.melee_damage_upper == 0) - M.emote("[M.friendly] [src]") - else - if(M.attack_sound) - playsound(loc, M.attack_sound, 50, 1, 1) - visible_message("[M] [M.attacktext] [src]!", \ - "[M] [M.attacktext] [src]!") - var/damage = rand(M.melee_damage_lower, M.melee_damage_upper) - adjustBruteLoss(damage) - add_logs(M, src, "attacked", admin=0) - updatehealth() + ..() + var/damage = rand(M.melee_damage_lower, M.melee_damage_upper) + adjustBruteLoss(damage) + updatehealth() diff --git a/code/modules/mob/living/carbon/carbon.dm b/code/modules/mob/living/carbon/carbon.dm index 52ae23cc879..0924ecd1187 100644 --- a/code/modules/mob/living/carbon/carbon.dm +++ b/code/modules/mob/living/carbon/carbon.dm @@ -91,21 +91,26 @@ return 0 -/mob/living/carbon/attack_paw(mob/M as mob) - if(!istype(M, /mob/living/carbon)) return - +/mob/living/carbon/attack_paw(mob/living/carbon/monkey/M as mob) + if(!istype(M, /mob/living/carbon)) + return 0 for(var/datum/disease/D in viruses) - if(D.spread_by_touch()) M.contract_disease(D, 0, 1, CONTACT_HANDS) for(var/datum/disease/D in M.viruses) - if(D.spread_by_touch()) contract_disease(D, 0, 1, CONTACT_HANDS) - return + if(..()) + for(var/datum/disease/D in M.viruses) + contract_disease(D,1,0) + return 1 + + if(M.a_intent == "help") + help_shake_act(M) + return 0 /mob/living/carbon/electrocute_act(var/shock_damage, var/obj/source, var/siemens_coeff = 1.0) shock_damage *= siemens_coeff diff --git a/code/modules/mob/living/carbon/human/human.dm b/code/modules/mob/living/carbon/human/human.dm index 89f21c984ed..d502939d210 100644 --- a/code/modules/mob/living/carbon/human/human.dm +++ b/code/modules/mob/living/carbon/human/human.dm @@ -219,38 +219,23 @@ /mob/living/carbon/human/attack_animal(mob/living/simple_animal/M as mob) - if(M.melee_damage_upper == 0) - M.emote("[M.friendly] [src]") - else - if(M.attack_sound) - playsound(loc, M.attack_sound, 50, 1, 1) - visible_message("[M] [M.attacktext] [src]!", \ - "[M] [M.attacktext] [src]!") - add_logs(M, src, "attacked", admin=0) - var/damage = rand(M.melee_damage_lower, M.melee_damage_upper) - var/dam_zone = pick("chest", "l_hand", "r_hand", "l_leg", "r_leg") - var/obj/item/organ/limb/affecting = get_organ(ran_zone(dam_zone)) - var/armor = run_armor_check(affecting, "melee") - apply_damage(damage, BRUTE, affecting, armor) - if(armor >= 2) return + ..() + var/damage = rand(M.melee_damage_lower, M.melee_damage_upper) + var/dam_zone = pick("chest", "l_hand", "r_hand", "l_leg", "r_leg") + var/obj/item/organ/limb/affecting = get_organ(ran_zone(dam_zone)) + var/armor = run_armor_check(affecting, "melee") + apply_damage(damage, BRUTE, affecting, armor) + updatehealth() +/* if(armor >= 2) //why is this here? + return */ /mob/living/carbon/human/attack_larva(mob/living/carbon/alien/larva/L as mob) - switch(L.a_intent) - if("help") - visible_message("[L] rubs its head against [src].") - - - else - - var/damage = rand(1, 3) - visible_message("[L] bites [src]!", \ - "[L] bites [src]!") - playsound(loc, 'sound/weapons/bite.ogg', 50, 1, -1) - - if(stat != DEAD) - L.amount_grown = min(L.amount_grown + damage, L.max_grown) + if(..()) + var/damage = rand(1, 3) + if(stat != DEAD) + L.amount_grown = min(L.amount_grown + damage, L.max_grown) var/obj/item/organ/limb/affecting = get_organ(ran_zone(L.zone_sel.selecting)) var/armor_block = run_armor_check(affecting, "melee") apply_damage(damage, BRUTE, affecting, armor_block) diff --git a/code/modules/mob/living/carbon/human/human_attackpaw.dm b/code/modules/mob/living/carbon/human/human_attackpaw.dm index 95eaeb61ec3..f7fb4e9184e 100644 --- a/code/modules/mob/living/carbon/human/human_attackpaw.dm +++ b/code/modules/mob/living/carbon/human/human_attackpaw.dm @@ -1,20 +1,10 @@ -/mob/living/carbon/human/attack_paw(mob/M as mob) - ..() - if (M.a_intent == "help") - help_shake_act(M) - else - if (M.is_muzzled()) - return - - visible_message("[M.name] bites [src]!", \ - "[M.name] bites [src]!") - playsound(loc, 'sound/weapons/bite.ogg', 50, 1, -1) - +/mob/living/carbon/human/attack_paw(mob/living/carbon/monkey/M as mob) + if(..()) var/damage = rand(1, 3) var/dam_zone = pick("chest", "l_hand", "r_hand", "l_leg", "r_leg") var/obj/item/organ/limb/affecting = get_organ(ran_zone(dam_zone)) - apply_damage(damage, BRUTE, affecting, run_armor_check(affecting, "melee")) + if(stat != DEAD) + apply_damage(damage, BRUTE, affecting, run_armor_check(affecting, "melee")) + updatehealth() - for(var/datum/disease/D in M.viruses) - contract_disease(D,1,0) return diff --git a/code/modules/mob/living/carbon/monkey/monkey.dm b/code/modules/mob/living/carbon/monkey/monkey.dm index 73d5756d169..d34c1b61e9b 100644 --- a/code/modules/mob/living/carbon/monkey/monkey.dm +++ b/code/modules/mob/living/carbon/monkey/monkey.dm @@ -69,44 +69,20 @@ /mob/living/carbon/monkey/attack_paw(mob/M as mob) - ..() - - if (M.a_intent == "help") - help_shake_act(M) - else - if (M.a_intent == "harm" && !M.is_muzzled()) - if (prob(75)) - playsound(loc, 'sound/weapons/bite.ogg', 50, 1, -1) - visible_message("[M.name] bites [name]!", \ - "[M.name] bites [name]!") - var/damage = rand(1, 5) - if (health > -100) - adjustBruteLoss(damage) - health = 100 - getOxyLoss() - getToxLoss() - getFireLoss() - getBruteLoss() - for(var/datum/disease/D in M.viruses) - contract_disease(D,1,0) - else - visible_message("[M.name] has attempted to bite [name]!", \ - "[M.name] has attempted to bite [name]!") + if(..()) + var/damage = rand(1, 5) + if (stat != DEAD) + adjustBruteLoss(damage) + updatehealth() return /mob/living/carbon/monkey/attack_larva(mob/living/carbon/alien/larva/L as mob) - - switch(L.a_intent) - if("help") - visible_message("[L] rubs its head against [src].") - - - else - - var/damage = rand(1, 3) - visible_message("[L] bites [src]!", \ - "[L] bites [src]!") - playsound(loc, 'sound/weapons/bite.ogg', 50, 1, -1) - - if(stat != DEAD) - L.amount_grown = min(L.amount_grown + damage, L.max_grown) - adjustBruteLoss(damage) + if(..()) + var/damage = rand(1, 3) + if(stat != DEAD) + L.amount_grown = min(L.amount_grown + damage, L.max_grown) + adjustBruteLoss(damage) + updatehealth() /mob/living/carbon/monkey/attack_hand(mob/living/carbon/human/M as mob) if (!ticker) @@ -216,17 +192,10 @@ return /mob/living/carbon/monkey/attack_animal(mob/living/simple_animal/M as mob) - if(M.melee_damage_upper == 0) - M.emote("[M.friendly] [src]") - else - if(M.attack_sound) - playsound(loc, M.attack_sound, 50, 1, 1) - visible_message("[M] [M.attacktext] [src]!", \ - "[M] [M.attacktext] [src]!") - add_logs(M, src, "attacked", admin=0) - var/damage = rand(M.melee_damage_lower, M.melee_damage_upper) - adjustBruteLoss(damage) - updatehealth() + ..() + var/damage = rand(M.melee_damage_lower, M.melee_damage_upper) + adjustBruteLoss(damage) + updatehealth() /mob/living/carbon/monkey/attack_slime(mob/living/carbon/slime/M as mob) diff --git a/code/modules/mob/living/carbon/slime/slime.dm b/code/modules/mob/living/carbon/slime/slime.dm index e244636aa94..f02deed62bc 100644 --- a/code/modules/mob/living/carbon/slime/slime.dm +++ b/code/modules/mob/living/carbon/slime/slime.dm @@ -255,69 +255,27 @@ return /mob/living/carbon/slime/attack_animal(mob/living/simple_animal/M as mob) - if(M.melee_damage_upper == 0) - M.emote("[M.friendly] [src]") - else - if(M.attack_sound) - playsound(loc, M.attack_sound, 50, 1, 1) - visible_message("[M] [M.attacktext] [src]!", \ - "[M] [M.attacktext] [src]!") - add_logs(M, src, "attacked", admin=0) - var/damage = rand(M.melee_damage_lower, M.melee_damage_upper) - attacked += 10 - adjustBruteLoss(damage) - updatehealth() + ..() + var/damage = rand(M.melee_damage_lower, M.melee_damage_upper) + attacked += 10 + adjustBruteLoss(damage) + updatehealth() /mob/living/carbon/slime/attack_paw(mob/living/carbon/monkey/M as mob) - if(!(istype(M, /mob/living/carbon/monkey))) - return // Fix for aliens receiving double messages when attacking slimes. - - if (!ticker) - M << "You cannot attack people before the game has started." - return - - if (istype(loc, /turf) && istype(loc.loc, /area/start)) - M << "No attacking people at spawn, you jackass." - return - - ..() - - switch(M.a_intent) - - if ("help") - help_shake_act(M) - else - if (M.is_muzzled()) - return - + if(..()) + if(stat != DEAD) attacked += 10 - playsound(loc, 'sound/weapons/bite.ogg', 50, 1, -1) - visible_message("[M.name] bites [src]!", \ - "[M.name] bites [src]!") - if (health > -100) - adjustBruteLoss(rand(1, 3)) - updatehealth() + adjustBruteLoss(rand(1, 3)) + updatehealth() return /mob/living/carbon/slime/attack_larva(mob/living/carbon/alien/larva/L as mob) - - switch(L.a_intent) - - if("help") - visible_message("[L] rubs its head against [src].") - - - else - - attacked += 10 - visible_message("[L] bites [src]!", \ - "[L] bites [src]!") - playsound(loc, 'sound/weapons/bite.ogg', 50, 1, -1) - - if(stat != DEAD) - var/damage = rand(1, 3) - L.amount_grown = min(L.amount_grown + damage, L.max_grown) - adjustBruteLoss(damage) + if(..()) + var/damage = rand(1, 3) + if(stat != DEAD) + L.amount_grown = min(L.amount_grown + damage, L.max_grown) + adjustBruteLoss(damage) + updatehealth() /mob/living/carbon/slime/attack_hand(mob/living/carbon/human/M as mob) diff --git a/code/modules/mob/living/living_defense.dm b/code/modules/mob/living/living_defense.dm index 3ef8ec692e4..a333a4182f8 100644 --- a/code/modules/mob/living/living_defense.dm +++ b/code/modules/mob/living/living_defense.dm @@ -162,4 +162,55 @@ proc/vol_by_throwforce_and_or_w_class(var/obj/item/I) s.start() return 1 add_logs(M, src, "attacked", admin=0) - return \ No newline at end of file + return + +/mob/living/attack_animal(mob/living/simple_animal/M as mob) + if(M.melee_damage_upper == 0) + M.emote("me", 1, "[M.friendly] [src]") + else + if(M.attack_sound) + playsound(loc, M.attack_sound, 50, 1, 1) + visible_message("\The [M] [M.attacktext] [src]!", \ + "\The [M] [M.attacktext] [src]!") + add_logs(M, src, "attacked", admin=0) + + +/mob/living/attack_paw(mob/living/carbon/monkey/M as mob) + if (!ticker) + M << "You cannot attack people before the game has started." + return 0 + + if (istype(loc, /turf) && istype(loc.loc, /area/start)) + M << "No attacking people at spawn, you jackass." + return 0 + + if (M.a_intent == "harm" && !M.is_muzzled()) + if (prob(75)) + add_logs(M, src, "attacked", admin=0) + playsound(loc, 'sound/weapons/bite.ogg', 50, 1, -1) + visible_message("[M.name] bites [src]!", \ + "[M.name] bites [src]!") + return 1 + else + visible_message("[M.name] has attempted to bite [src]!", \ + "[M.name] has attempted to bite [src]!") + return 0 + +/mob/living/attack_larva(mob/living/carbon/alien/larva/L as mob) + + switch(L.a_intent) + if("help") + visible_message("[L] rubs its head against [src].") + return 0 + + else + if(prob(90)) + add_logs(L, src, "attacked", admin=0) + visible_message("[L] bites [src]!", \ + "[L] bites [src]!") + playsound(loc, 'sound/weapons/bite.ogg', 50, 1, -1) + return 1 + else + visible_message("[L.name] has attempted to bite [src]!", \ + "[L.name] has attempted to bite [src]!") + return 0 \ No newline at end of file diff --git a/code/modules/mob/living/silicon/robot/robot.dm b/code/modules/mob/living/silicon/robot/robot.dm index 9a37041847e..be6c0adec98 100644 --- a/code/modules/mob/living/silicon/robot/robot.dm +++ b/code/modules/mob/living/silicon/robot/robot.dm @@ -689,9 +689,6 @@ user.visible_message("[user] pets [src]!", \ "You pet [src]!") -/mob/living/silicon/robot/attack_paw(mob/user) - - return attack_hand(user) /mob/living/silicon/robot/proc/allowed(mob/M) //check if it doesn't require any access at all diff --git a/code/modules/mob/living/silicon/silicon.dm b/code/modules/mob/living/silicon/silicon.dm index 7bdeb6eb914..fb233e08d67 100644 --- a/code/modules/mob/living/silicon/silicon.dm +++ b/code/modules/mob/living/silicon/silicon.dm @@ -357,13 +357,15 @@ return /mob/living/silicon/attack_animal(mob/living/simple_animal/M as mob) - if(M.melee_damage_upper == 0) - M.emote("[M.friendly] [src]") - else - if(M.attack_sound) - playsound(loc, M.attack_sound, 50, 1, 1) - visible_message("[M] [M.attacktext] [src]!") - add_logs(M, src, "attacked", admin=0) - var/damage = rand(M.melee_damage_lower, M.melee_damage_upper) - adjustBruteLoss(damage) - updatehealth() + ..() + var/damage = rand(M.melee_damage_lower, M.melee_damage_upper) + adjustBruteLoss(damage) + updatehealth() + +/mob/living/silicon/attack_paw(mob/living/user) + return attack_hand(user) + +/mob/living/silicon/attack_larva(mob/living/carbon/alien/larva/L) + if(L.a_intent == "help") + visible_message("[L] rubs its head against [src].") + return \ No newline at end of file diff --git a/code/modules/mob/living/simple_animal/simple_animal.dm b/code/modules/mob/living/simple_animal/simple_animal.dm index 35ed5020dd4..b24fb76077c 100644 --- a/code/modules/mob/living/simple_animal/simple_animal.dm +++ b/code/modules/mob/living/simple_animal/simple_animal.dm @@ -254,16 +254,10 @@ ..(act, m_type, message) /mob/living/simple_animal/attack_animal(mob/living/simple_animal/M as mob) - if(M.melee_damage_upper == 0) - M.emote("me", 1, "[M.friendly] [src]") - else - if(M.attack_sound) - playsound(loc, M.attack_sound, 50, 1, 1) - visible_message("\The [M] [M.attacktext] [src]!", \ - "\The [M] [M.attacktext] [src]!") - add_logs(M, src, "attacked", admin=0) - var/damage = rand(M.melee_damage_lower, M.melee_damage_upper) - adjustBruteLoss(damage) + ..() + var/damage = rand(M.melee_damage_lower, M.melee_damage_upper) + adjustBruteLoss(damage) + updatehealth() /mob/living/simple_animal/bullet_act(var/obj/item/projectile/Proj) if(!Proj) @@ -308,25 +302,14 @@ return /mob/living/simple_animal/attack_paw(mob/living/carbon/monkey/M as mob) - if(!(istype(M, /mob/living/carbon/monkey))) - return // Fix for aliens receiving double messages when attacking simple animals. - - ..() - - switch(M.a_intent) - - if ("help") - if (health > 0) - visible_message(" [M] [response_help] [src].") - playsound(loc, 'sound/weapons/thudswoosh.ogg', 50, 1, -1) - else - if (M.is_muzzled()) - return - playsound(loc, 'sound/weapons/bite.ogg', 50, 1, -1) - visible_message("[M.name] bites [src]!", \ - "[M.name] bites [src]!") - if (health > -100) - adjustBruteLoss(rand(1, 3)) + if(..()) + if(stat != DEAD) + adjustBruteLoss(rand(1, 3)) + updatehealth() + if (M.a_intent == "help") + if (health > 0) + visible_message(" [M] [response_help] [src].") + playsound(loc, 'sound/weapons/thudswoosh.ogg', 50, 1, -1) return /mob/living/simple_animal/attack_alien(mob/living/carbon/alien/humanoid/M as mob) @@ -349,22 +332,12 @@ return /mob/living/simple_animal/attack_larva(mob/living/carbon/alien/larva/L as mob) - - switch(L.a_intent) - if("help") - visible_message("[L] rubs its head against [src].") - - - else - - var/damage = rand(5, 10) - visible_message("[L] bites [src]!", \ - "[L] bites [src]!") - playsound(loc, 'sound/weapons/bite.ogg', 50, 1, -1) - - if(stat != DEAD) - L.amount_grown = min(L.amount_grown + damage, L.max_grown) - adjustBruteLoss(damage) + if(..()) + var/damage = rand(5, 10) + if(stat != DEAD) + L.amount_grown = min(L.amount_grown + damage, L.max_grown) + adjustBruteLoss(damage) + updatehealth() /mob/living/simple_animal/attack_slime(mob/living/carbon/slime/M as mob) From 3b40d6a20d0b410f847d93f07d9790e87f28cd53 Mon Sep 17 00:00:00 2001 From: MrStonedOne Date: Wed, 5 Nov 2014 13:53:05 -0800 Subject: [PATCH 060/102] Fixes inconsistencies with the player panel Every other admin window that deals with singular things (vv, traitorpanel, etc) lets you have more then one open (as long as its not about the same thing), But not pp, the central point of all of them. This fixes that and allows you have a window open for each mob. --- code/modules/admin/admin.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/admin/admin.dm b/code/modules/admin/admin.dm index 95ec12426c6..9c60315b167 100644 --- a/code/modules/admin/admin.dm +++ b/code/modules/admin/admin.dm @@ -150,7 +150,7 @@ var/global/floorIsLava = 0 body += "
    " body += "" - usr << browse(body, "window=adminplayeropts;size=550x515") + usr << browse(body, "window=adminplayeropts-\ref[M];size=550x515") feedback_add_details("admin_verb","SPP") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! From 177225598b44c14e3afdc9488b9a454a1f9f6360 Mon Sep 17 00:00:00 2001 From: Remie Richards Date: Wed, 5 Nov 2014 22:25:46 +0000 Subject: [PATCH 061/102] Adds a config option for capping the amount of laws silicons can receive via boards, defaults to 12 --- code/controllers/configuration.dm | 3 +++ code/game/objects/items/weapons/AI_modules.dm | 12 ++++++++++++ config/game_options.txt | 5 +++++ 3 files changed, 20 insertions(+) diff --git a/code/controllers/configuration.dm b/code/controllers/configuration.dm index 34df3fa6245..d73aa208a36 100644 --- a/code/controllers/configuration.dm +++ b/code/controllers/configuration.dm @@ -134,6 +134,7 @@ var/sandbox_autoclose = 0 // close the sandbox panel after spawning an item, potentially reducing griff var/default_laws = 0 //Controls what laws the AI spawns with. + var/silicon_max_law_amount = 0 /datum/configuration/New() var/list/L = typesof(/datum/game_mode) - /datum/game_mode @@ -402,6 +403,8 @@ config.sandbox_autoclose = 1 if("default_laws") config.default_laws = text2num(value) + if("silicon_max_law_amount") + config.silicon_max_law_amount = text2num(value) if("join_with_mutant_race") config.mutant_races = 1 if("mutant_colors") diff --git a/code/game/objects/items/weapons/AI_modules.dm b/code/game/objects/items/weapons/AI_modules.dm index 446395634f4..a9dd9791ed9 100644 --- a/code/game/objects/items/weapons/AI_modules.dm +++ b/code/game/objects/items/weapons/AI_modules.dm @@ -20,6 +20,7 @@ AI MODULES throw_range = 7 origin_tech = "programming=3" var/list/laws = list() + var/bypass_law_amt_check = 0 //The proc other things should be calling /obj/item/weapon/aiModule/proc/install(var/mob/living/silicon/reciever, var/mob/user) @@ -27,6 +28,16 @@ AI MODULES user << "ERROR: No laws found on board." return + if(reciever.laws) + var/tot_laws = 0 + tot_laws += reciever.laws.inherent.len + tot_laws += reciever.laws.supplied.len + tot_laws += reciever.laws.ion.len + if(tot_laws > config.silicon_max_law_amount && !bypass_law_amt_check)//allows certain boards to avoid this check, eg: reset + user << "You cannot upload any more laws to [reciever], they are at the limit: [tot_laws]/[tot_laws] laws." + message_admins("[key_name_admin(user)] tried to upload laws to [key_name_admin(reciever)] when they were already at max laws.") + return + var/law2log = src.transmitInstructions(reciever, user) //Freeforms return something extra we need to log user << "Upload complete. [reciever]'s laws have been modified." reciever.show_laws() @@ -206,6 +217,7 @@ AI MODULES desc = "A 'reset' AI module: Resets back to the original core laws." origin_tech = "programming=3;materials=4" laws = list("This is a bug.") //This won't give the AI a message reading "these are now your laws: 1. this is a bug" because this list is only read in aiModule's subtypes. + bypass_law_amt_check = 1 /obj/item/weapon/aiModule/reset/transmitInstructions(var/mob/living/silicon/ai/target, var/mob/sender) ..() diff --git a/config/game_options.txt b/config/game_options.txt index c1cce91ee72..4d3c6c5419b 100644 --- a/config/game_options.txt +++ b/config/game_options.txt @@ -204,6 +204,11 @@ SEC_START_BRIG ## Set to 2 for "random", silicons will start with a random lawset picked from (at the time of writing): P.A.L.A.D.I.N., Corporate, Asimov. More can be added by changing the law datum paths in ai_laws.dm. DEFAULT_LAWS 1 +### SILICON LAW MAX AMOUNT ### +## The maximum number of laws a silicon can have +## Attempting to upload laws past this point will fail unless the AI is reset +SILICON_MAX_LAW_AMOUNT 12 + ## Uncoment to give players the choice of their species before they join the game #JOIN_WITH_MUTANT_RACE From 198b9fee931f30089ca0ff5cca3084f8208bdf26 Mon Sep 17 00:00:00 2001 From: Remie Richards Date: Wed, 5 Nov 2014 23:07:24 +0000 Subject: [PATCH 062/102] Extends the check to include the number of potential laws, from the current aiModule (eg, total_laws (10) + potential laws on board (4) = 14, 14 > 12) --- code/game/objects/items/weapons/AI_modules.dm | 1 + 1 file changed, 1 insertion(+) diff --git a/code/game/objects/items/weapons/AI_modules.dm b/code/game/objects/items/weapons/AI_modules.dm index a9dd9791ed9..3aca72baa62 100644 --- a/code/game/objects/items/weapons/AI_modules.dm +++ b/code/game/objects/items/weapons/AI_modules.dm @@ -33,6 +33,7 @@ AI MODULES tot_laws += reciever.laws.inherent.len tot_laws += reciever.laws.supplied.len tot_laws += reciever.laws.ion.len + tot_laws += laws.len if(tot_laws > config.silicon_max_law_amount && !bypass_law_amt_check)//allows certain boards to avoid this check, eg: reset user << "You cannot upload any more laws to [reciever], they are at the limit: [tot_laws]/[tot_laws] laws." message_admins("[key_name_admin(user)] tried to upload laws to [key_name_admin(reciever)] when they were already at max laws.") From d1e0ef943c8d5d3d249abeb24bf0728897364662 Mon Sep 17 00:00:00 2001 From: Remie Richards Date: Wed, 5 Nov 2014 23:31:51 +0000 Subject: [PATCH 063/102] Changes messages to be more appropriate for last commit + more fluffy. --- code/game/objects/items/weapons/AI_modules.dm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/code/game/objects/items/weapons/AI_modules.dm b/code/game/objects/items/weapons/AI_modules.dm index 3aca72baa62..624a9f5f3a4 100644 --- a/code/game/objects/items/weapons/AI_modules.dm +++ b/code/game/objects/items/weapons/AI_modules.dm @@ -35,8 +35,8 @@ AI MODULES tot_laws += reciever.laws.ion.len tot_laws += laws.len if(tot_laws > config.silicon_max_law_amount && !bypass_law_amt_check)//allows certain boards to avoid this check, eg: reset - user << "You cannot upload any more laws to [reciever], they are at the limit: [tot_laws]/[tot_laws] laws." - message_admins("[key_name_admin(user)] tried to upload laws to [key_name_admin(reciever)] when they were already at max laws.") + user << "Not enough memory allocated to [reciever]'s law processor to handle this amount of laws." + message_admins("[key_name_admin(user)] tried to upload laws to [key_name_admin(reciever)] that would exceed the law cap.") return var/law2log = src.transmitInstructions(reciever, user) //Freeforms return something extra we need to log From f908befb366ac66ca06a4bea0a40af292efb02f6 Mon Sep 17 00:00:00 2001 From: phil235 Date: Thu, 6 Nov 2014 00:32:19 +0100 Subject: [PATCH 064/102] attack_alien() moved to living/attack_alien() and overridden in the children. Adding missing attack logs. Fixing some mistakes in attack_animal()'s Attack_hand(): cyborg can now be grabbed AI and cyborg can be punched, with damage only with hulk. Rearranging the attack_hand() procs a bit. Adding missing attack logs. --- .../mob/living/carbon/alien/alien_defense.dm | 28 ++--- code/modules/mob/living/carbon/carbon.dm | 12 +- code/modules/mob/living/carbon/human/human.dm | 16 +-- .../living/carbon/human/human_attackalien.dm | 13 +-- .../mob/living/carbon/monkey/monkey.dm | 46 ++------ code/modules/mob/living/carbon/slime/slime.dm | 104 +++++++----------- code/modules/mob/living/living_defense.dm | 36 +++++- code/modules/mob/living/silicon/ai/ai.dm | 4 + .../modules/mob/living/silicon/robot/robot.dm | 57 ++++------ code/modules/mob/living/silicon/silicon.dm | 68 +++++++----- .../mob/living/simple_animal/constructs.dm | 11 +- .../mob/living/simple_animal/simple_animal.dm | 72 +++++------- 12 files changed, 212 insertions(+), 255 deletions(-) diff --git a/code/modules/mob/living/carbon/alien/alien_defense.dm b/code/modules/mob/living/carbon/alien/alien_defense.dm index 808a3060777..7529da3b1de 100644 --- a/code/modules/mob/living/carbon/alien/alien_defense.dm +++ b/code/modules/mob/living/carbon/alien/alien_defense.dm @@ -47,28 +47,14 @@ In all, this is a lot like the monkey code. /N /mob/living/carbon/alien/attack_hand(mob/living/carbon/human/M as mob) - if (!ticker) - M << "You cannot attack people before the game has started." - return - - if (istype(loc, /turf) && istype(loc.loc, /area/start)) - M << "No attacking people at spawn, you jackass." - return - if(..()) //to allow surgery to return properly. - return + return 0 switch(M.a_intent) - if ("help") - help_shake_act(M) - - if ("grab") - grabbedby(M) - - else + if ("harm", "disarm") return 1 - return + return 0 /mob/living/carbon/alien/attack_paw(mob/living/carbon/monkey/M as mob) @@ -80,8 +66,8 @@ In all, this is a lot like the monkey code. /N /mob/living/carbon/alien/attack_animal(mob/living/simple_animal/M as mob) - ..() - var/damage = rand(M.melee_damage_lower, M.melee_damage_upper) - adjustBruteLoss(damage) - updatehealth() + if(..()) + var/damage = rand(M.melee_damage_lower, M.melee_damage_upper) + adjustBruteLoss(damage) + updatehealth() diff --git a/code/modules/mob/living/carbon/carbon.dm b/code/modules/mob/living/carbon/carbon.dm index 0924ecd1187..26dbf47aae0 100644 --- a/code/modules/mob/living/carbon/carbon.dm +++ b/code/modules/mob/living/carbon/carbon.dm @@ -71,8 +71,9 @@ else ..() -/mob/living/carbon/attack_hand(mob/user) - if(!iscarbon(user)) return +/mob/living/carbon/attack_hand(mob/living/carbon/human/user) + if(!iscarbon(user)) + return for(var/datum/disease/D in viruses) if(D.spread_by_touch()) @@ -88,6 +89,13 @@ for(var/datum/surgery/S in surgeries) if(S.next_step(user, src)) return 1 + if(..()) + switch(user.a_intent) + if("help") + help_shake_act(user) + if("grab") + grabbedby(user) + return 0 diff --git a/code/modules/mob/living/carbon/human/human.dm b/code/modules/mob/living/carbon/human/human.dm index d502939d210..f619b5e3be3 100644 --- a/code/modules/mob/living/carbon/human/human.dm +++ b/code/modules/mob/living/carbon/human/human.dm @@ -219,14 +219,14 @@ /mob/living/carbon/human/attack_animal(mob/living/simple_animal/M as mob) - ..() - var/damage = rand(M.melee_damage_lower, M.melee_damage_upper) - var/dam_zone = pick("chest", "l_hand", "r_hand", "l_leg", "r_leg") - var/obj/item/organ/limb/affecting = get_organ(ran_zone(dam_zone)) - var/armor = run_armor_check(affecting, "melee") - apply_damage(damage, BRUTE, affecting, armor) - updatehealth() -/* if(armor >= 2) //why is this here? + if(..()) + var/damage = rand(M.melee_damage_lower, M.melee_damage_upper) + var/dam_zone = pick("chest", "l_hand", "r_hand", "l_leg", "r_leg") + var/obj/item/organ/limb/affecting = get_organ(ran_zone(dam_zone)) + var/armor = run_armor_check(affecting, "melee") + apply_damage(damage, BRUTE, affecting, armor) + updatehealth() +/* if(armor >= 2) //why is this here? return */ diff --git a/code/modules/mob/living/carbon/human/human_attackalien.dm b/code/modules/mob/living/carbon/human/human_attackalien.dm index a44c33ebe75..970761f0d26 100644 --- a/code/modules/mob/living/carbon/human/human_attackalien.dm +++ b/code/modules/mob/living/carbon/human/human_attackalien.dm @@ -3,13 +3,8 @@ visible_message("[M] attempted to touch [src]!") return 0 - switch(M.a_intent) - if ("help") - visible_message(" [M] caresses [src] with its scythe like arm.") - if ("grab") - grabbedby(M) - - if("harm") + if(..()) + if(M.a_intent == "harm") if (w_uniform) w_uniform.add_fingerprint(M) var/damage = rand(15, 30) @@ -30,13 +25,15 @@ visible_message("[M] has wounded [src]!", \ "[M] has wounded [src]!") apply_effect(4, WEAKEN, armor_block) + add_logs(M, src, "attacked", admin=0) updatehealth() - if("disarm") + if(M.a_intent == "disarm") var/randn = rand(1, 100) if (randn <= 80) playsound(loc, 'sound/weapons/pierce.ogg', 25, 1, -1) Weaken(5) + add_logs(M, src, "tackled", admin=0) visible_message("[M] has tackled down [src]!", \ "[M] has tackled down [src]!") else diff --git a/code/modules/mob/living/carbon/monkey/monkey.dm b/code/modules/mob/living/carbon/monkey/monkey.dm index d34c1b61e9b..a2023c800a2 100644 --- a/code/modules/mob/living/carbon/monkey/monkey.dm +++ b/code/modules/mob/living/carbon/monkey/monkey.dm @@ -85,21 +85,10 @@ updatehealth() /mob/living/carbon/monkey/attack_hand(mob/living/carbon/human/M as mob) - if (!ticker) - M << "You cannot attack people before the game has started." - return - - if (istype(loc, /turf) && istype(loc.loc, /area/start)) - M << "No attacking people at spawn, you jackass." - return - if(..()) //To allow surgery to return properly. return switch(M.a_intent) - if("help") - help_shake_act(M) - if("harm") if (prob(75)) visible_message("[M] has punched [name]!", \ @@ -116,20 +105,19 @@ "[M] has knocked out [name]!") return adjustBruteLoss(damage) + add_logs(M, src, "attacked", admin=0) updatehealth() else playsound(loc, 'sound/weapons/punchmiss.ogg', 25, 1, -1) visible_message("[M] has attempted to punch [name]!", \ "[M] has attempted to punch [name]!") - if("grab") - grabbedby(M) - if("disarm") if (!( paralysis )) if (prob(25)) Paralyse(2) playsound(loc, 'sound/weapons/thudswoosh.ogg', 50, 1, -1) + add_logs(M, src, "pushed", admin=0) visible_message("[M] has pushed down [src]!", \ "[M] has pushed down [src]!") else @@ -140,19 +128,8 @@ return /mob/living/carbon/monkey/attack_alien(mob/living/carbon/alien/humanoid/M as mob) - if (!ticker) - M << "You cannot attack people before the game has started." - return - - if (istype(loc, /turf) && istype(loc.loc, /area/start)) - M << "No attacking people at spawn, you jackass." - return - - switch(M.a_intent) - if ("help") - visible_message(" [M] caresses [src] with its scythe like arm.") - - if ("harm") + if(..()) + if (M.a_intent == "harm") if ((prob(95) && health > 0)) playsound(loc, 'sound/weapons/slice.ogg', 25, 1, -1) var/damage = rand(15, 30) @@ -165,6 +142,7 @@ else visible_message("[M] has slashed [name]!", \ "[M] has slashed [name]!") + add_logs(M, src, "attacked", admin=0) if (stat != DEAD) adjustBruteLoss(damage) updatehealth() @@ -173,10 +151,7 @@ visible_message("[M] has attempted to lunge at [name]!", \ "[M] has attempted to lunge at [name]!") - if ("grab") - grabbedby(M) - - if ("disarm") + if (M.a_intent == "disarm") playsound(loc, 'sound/weapons/pierce.ogg', 25, 1, -1) var/damage = 5 if(prob(95)) @@ -187,15 +162,16 @@ if(drop_item()) visible_message("[M] has disarmed [name]!", \ "[M] has disarmed [name]!") + add_logs(M, src, "disarmed", admin=0) adjustBruteLoss(damage) updatehealth() return /mob/living/carbon/monkey/attack_animal(mob/living/simple_animal/M as mob) - ..() - var/damage = rand(M.melee_damage_lower, M.melee_damage_upper) - adjustBruteLoss(damage) - updatehealth() + if(..()) + var/damage = rand(M.melee_damage_lower, M.melee_damage_upper) + adjustBruteLoss(damage) + updatehealth() /mob/living/carbon/monkey/attack_slime(mob/living/carbon/slime/M as mob) diff --git a/code/modules/mob/living/carbon/slime/slime.dm b/code/modules/mob/living/carbon/slime/slime.dm index f02deed62bc..05e26b105f1 100644 --- a/code/modules/mob/living/carbon/slime/slime.dm +++ b/code/modules/mob/living/carbon/slime/slime.dm @@ -255,11 +255,11 @@ return /mob/living/carbon/slime/attack_animal(mob/living/simple_animal/M as mob) - ..() - var/damage = rand(M.melee_damage_lower, M.melee_damage_upper) - attacked += 10 - adjustBruteLoss(damage) - updatehealth() + if(..()) + var/damage = rand(M.melee_damage_lower, M.melee_damage_upper) + attacked += 10 + adjustBruteLoss(damage) + updatehealth() /mob/living/carbon/slime/attack_paw(mob/living/carbon/monkey/M as mob) if(..()) @@ -279,16 +279,6 @@ /mob/living/carbon/slime/attack_hand(mob/living/carbon/human/M as mob) - if (!ticker) - M << "You cannot attack people before the game has started." - return - - if (istype(loc, /turf) && istype(loc.loc, /area/start)) - M << "No attacking people at spawn, you jackass." - return - - ..() - if(Victim) if(Victim == M) if(prob(60)) @@ -342,63 +332,46 @@ return - switch(M.a_intent) + if(..()) + return - if ("help") - help_shake_act(M) + var/damage = rand(1, 9) - if ("grab") - grabbedby(M) - - else - - var/damage = rand(1, 9) - - attacked += 10 - if (prob(90)) - if (HULK in M.mutations) - damage += 5 - if(Victim || Target) - Victim = null - Target = null - anchored = 0 - if(prob(80) && !client) - Discipline++ - spawn(0) - - step_away(src,M,15) - sleep(3) - step_away(src,M,15) + attacked += 10 + if (prob(90)) + if (HULK in M.mutations) + damage += 5 + if(Victim || Target) + Victim = null + Target = null + anchored = 0 + if(prob(80) && !client) + Discipline++ + spawn(0) + step_away(src,M,15) + sleep(3) + step_away(src,M,15) - playsound(loc, "punch", 25, 1, -1) - visible_message("[M] has punched [src]!", \ - "[M] has punched [src]!") + playsound(loc, "punch", 25, 1, -1) + add_logs(M, src, "attacked", admin=0) + visible_message("[M] has punched [src]!", \ + "[M] has punched [src]!") - if (health > -100) - adjustBruteLoss(damage) - updatehealth() - else - playsound(loc, 'sound/weapons/punchmiss.ogg', 25, 1, -1) - visible_message("[M] has attempted to punch [src]!") + if (stat != DEAD) + adjustBruteLoss(damage) + updatehealth() + else + playsound(loc, 'sound/weapons/punchmiss.ogg', 25, 1, -1) + visible_message("[M] has attempted to punch [src]!") return /mob/living/carbon/slime/attack_alien(mob/living/carbon/alien/humanoid/M as mob) - if (!ticker) - M << "You cannot attack people before the game has started." - return + if(..()) - if (istype(loc, /turf) && istype(loc.loc, /area/start)) - M << "No attacking people at spawn, you jackass." - return - - switch(M.a_intent) - if ("help") - visible_message("[M] caresses [src] with its scythe like arm.") - - if ("harm") + if (M.a_intent == "harm") if (prob(95)) attacked += 10 @@ -412,7 +385,8 @@ visible_message("[M] has wounded [name]!", \ ")[M] has wounded [name]!") - if (health > -100) + add_logs(M, src, "attacked", admin=0) + if (health != DEAD) adjustBruteLoss(damage) updatehealth() else @@ -420,10 +394,7 @@ visible_message("[M] has attempted to lunge at [name]!", \ "[M] has attempted to lunge at [name]!") - if ("grab") - grabbedby(M) - - if ("disarm") + if (M.a_intent == "disarm") playsound(loc, 'sound/weapons/pierce.ogg', 25, 1, -1) var/damage = 5 attacked += 10 @@ -457,6 +428,7 @@ drop_item() visible_message("[M] has disarmed [name]!", "[M] has disarmed [name]!") + add_logs(M, src, "disarmed", admin=0) adjustBruteLoss(damage) updatehealth() return diff --git a/code/modules/mob/living/living_defense.dm b/code/modules/mob/living/living_defense.dm index a333a4182f8..439bac0826b 100644 --- a/code/modules/mob/living/living_defense.dm +++ b/code/modules/mob/living/living_defense.dm @@ -167,12 +167,14 @@ proc/vol_by_throwforce_and_or_w_class(var/obj/item/I) /mob/living/attack_animal(mob/living/simple_animal/M as mob) if(M.melee_damage_upper == 0) M.emote("me", 1, "[M.friendly] [src]") + return 0 else if(M.attack_sound) playsound(loc, M.attack_sound, 50, 1, 1) visible_message("\The [M] [M.attacktext] [src]!", \ "\The [M] [M.attacktext] [src]!") add_logs(M, src, "attacked", admin=0) + return 1 /mob/living/attack_paw(mob/living/carbon/monkey/M as mob) @@ -213,4 +215,36 @@ proc/vol_by_throwforce_and_or_w_class(var/obj/item/I) else visible_message("[L.name] has attempted to bite [src]!", \ "[L.name] has attempted to bite [src]!") - return 0 \ No newline at end of file + return 0 + +/mob/living/attack_alien(mob/living/carbon/alien/humanoid/M as mob) + if (!ticker) + M << "You cannot attack people before the game has started." + return 0 + + if (istype(loc, /turf) && istype(loc.loc, /area/start)) + M << "No attacking people at spawn, you jackass." + return 0 + + switch(M.a_intent) + if ("help") + visible_message("[M] caresses [src] with its scythe like arm.") + return 0 + + if ("grab") + grabbedby(M) + return 0 + else + return 1 + + +/mob/living/attack_hand(mob/living/carbon/human/M as mob) + if (!ticker) + M << "You cannot attack people before the game has started." + return 0 + + if (istype(loc, /turf) && istype(loc.loc, /area/start)) + M << "No attacking people at spawn, you jackass." + return 0 + + return 1 \ No newline at end of file diff --git a/code/modules/mob/living/silicon/ai/ai.dm b/code/modules/mob/living/silicon/ai/ai.dm index da0e2fba829..3f3f2fb89e4 100644 --- a/code/modules/mob/living/silicon/ai/ai.dm +++ b/code/modules/mob/living/silicon/ai/ai.dm @@ -727,3 +727,7 @@ var/list/ai_list = list() /mob/living/silicon/ai/attack_slime(mob/living/carbon/slime/user) return + +/mob/living/silicon/ai/grabbedby(mob/living/user) + return + diff --git a/code/modules/mob/living/silicon/robot/robot.dm b/code/modules/mob/living/silicon/robot/robot.dm index be6c0adec98..175b40f699c 100644 --- a/code/modules/mob/living/silicon/robot/robot.dm +++ b/code/modules/mob/living/silicon/robot/robot.dm @@ -617,35 +617,23 @@ usr << "You unlock your cover." /mob/living/silicon/robot/attack_alien(mob/living/carbon/alien/humanoid/M as mob) - if (!ticker) - M << "You cannot attack people before the game has started." - return - - if (istype(loc, /turf) && istype(loc.loc, /area/start)) - M << "No attacking people at spawn, you jackass." - return - - switch(M.a_intent) - if ("disarm") - if(!(lying)) - if (prob(85)) - Stun(7) + if (M.a_intent =="disarm") + if(!(lying)) + if (prob(85)) + Stun(7) + step(src,get_dir(M,src)) + spawn(5) step(src,get_dir(M,src)) - spawn(5) - step(src,get_dir(M,src)) - add_logs(M, src, "pushed", admin=0) - playsound(loc, 'sound/weapons/pierce.ogg', 50, 1, -1) - visible_message("[M] has forced back [src]!", \ - "[M] has forced back [src]!") - else - playsound(loc, 'sound/weapons/slashmiss.ogg', 25, 1, -1) - visible_message("[M] attempted to force back [src]!", \ - "[M] attempted to force back [src]!") - if ("grab") - grabbedby(M) - - else - ..() + add_logs(M, src, "pushed", admin=0) + playsound(loc, 'sound/weapons/pierce.ogg', 50, 1, -1) + visible_message("[M] has forced back [src]!", \ + "[M] has forced back [src]!") + else + playsound(loc, 'sound/weapons/slashmiss.ogg', 25, 1, -1) + visible_message("[M] attempted to force back [src]!", \ + "[M] attempted to force back [src]!") + else + ..() return @@ -671,7 +659,7 @@ return -/mob/living/silicon/robot/attack_hand(mob/user) +/mob/living/silicon/robot/attack_hand(mob/living/carbon/human/user) add_fingerprint(user) @@ -684,10 +672,13 @@ cell = null updateicon() - if(!opened && (!istype(user, /mob/living/silicon))) - if (user.a_intent == "help") - user.visible_message("[user] pets [src]!", \ - "You pet [src]!") + if(!opened) + if(..()) + spark_system.start() + spawn(0) + step_away(src,user,15) + sleep(3) + step_away(src,user,15) /mob/living/silicon/robot/proc/allowed(mob/M) diff --git a/code/modules/mob/living/silicon/silicon.dm b/code/modules/mob/living/silicon/silicon.dm index fb233e08d67..9d4abaf6997 100644 --- a/code/modules/mob/living/silicon/silicon.dm +++ b/code/modules/mob/living/silicon/silicon.dm @@ -333,34 +333,29 @@ /mob/living/silicon/attack_alien(mob/living/carbon/alien/humanoid/M as mob) - switch(M.a_intent) - - if ("help") - visible_message("[M] caresses [src]'s plating with its scythe like arm.") - + if(..()) + var/damage = rand(10, 20) + if (prob(90)) + add_logs(M, src, "attacked", admin=0) + playsound(loc, 'sound/weapons/slash.ogg', 25, 1, -1) + visible_message("[M] has slashed at [src]!", \ + "[M] has slashed at [src]!") + if(prob(8)) + flick("noise", flash) + add_logs(M, src, "attacked", admin=0) + adjustBruteLoss(damage) + updatehealth() else - var/damage = rand(10, 20) - if (prob(90)) - add_logs(M, src, "attacked", admin=0) - playsound(loc, 'sound/weapons/slash.ogg', 25, 1, -1) - visible_message("[M] has slashed at [src]!", \ - "[M] has slashed at [src]!") - if(prob(8)) - flick("noise", flash) - adjustBruteLoss(damage) - updatehealth() - else - playsound(loc, 'sound/weapons/slashmiss.ogg', 25, 1, -1) - visible_message("[M] took a swipe at [src]!", \ - "[M] took a swipe at [src]!") - + playsound(loc, 'sound/weapons/slashmiss.ogg', 25, 1, -1) + visible_message("[M] took a swipe at [src]!", \ + "[M] took a swipe at [src]!") return /mob/living/silicon/attack_animal(mob/living/simple_animal/M as mob) - ..() - var/damage = rand(M.melee_damage_lower, M.melee_damage_upper) - adjustBruteLoss(damage) - updatehealth() + if(..()) + var/damage = rand(M.melee_damage_lower, M.melee_damage_upper) + adjustBruteLoss(damage) + updatehealth() /mob/living/silicon/attack_paw(mob/living/user) return attack_hand(user) @@ -368,4 +363,27 @@ /mob/living/silicon/attack_larva(mob/living/carbon/alien/larva/L) if(L.a_intent == "help") visible_message("[L] rubs its head against [src].") - return \ No newline at end of file + return + +/mob/living/silicon/attack_hand(mob/living/carbon/human/M) + if(..()) + switch(M.a_intent) + if ("help") + M.visible_message("[M] pets [src]!", \ + "You pet [src]!") + if("grab") + grabbedby(M) + else + playsound(src.loc, 'sound/effects/bang.ogg', 10, 1) + if (HULK in M.mutations) + var/damage = rand(10,15) + adjustBruteLoss(damage) + add_logs(M, src, "attacked", admin=0) + playsound(loc, "punch", 25, 1, -1) + visible_message("[M] has punched [src]!", \ + "[M] has punched [src]!") + return 1 + else + visible_message("[M] punches [src], but doesn't leave a dent.", \ + "[M] punches [src], but doesn't leave a dent.!") + return 0 diff --git a/code/modules/mob/living/simple_animal/constructs.dm b/code/modules/mob/living/simple_animal/constructs.dm index 4ff94d16b97..1a56a56386d 100644 --- a/code/modules/mob/living/simple_animal/constructs.dm +++ b/code/modules/mob/living/simple_animal/constructs.dm @@ -89,16 +89,7 @@ health += 5 M.emote("me", 1, "mends some of \the [src]'s wounds.") else if(src != M) - if(M.melee_damage_upper <= 0) - M.emote("me", 1, "[M.friendly] \the [src].") - else - if(M.attack_sound) - playsound(loc, M.attack_sound, 50, 1, 1) - visible_message("\The [M] [M.attacktext] \the [src]!", \ - "\The [M] [M.attacktext] \the [src]!") - add_logs(M, src, "attacked", admin=0) - var/damage = rand(M.melee_damage_lower, M.melee_damage_upper) - adjustBruteLoss(damage) + ..() /mob/living/simple_animal/construct/bullet_act(var/obj/item/projectile/Proj) if(!Proj) diff --git a/code/modules/mob/living/simple_animal/simple_animal.dm b/code/modules/mob/living/simple_animal/simple_animal.dm index b24fb76077c..8bb40e4d364 100644 --- a/code/modules/mob/living/simple_animal/simple_animal.dm +++ b/code/modules/mob/living/simple_animal/simple_animal.dm @@ -254,10 +254,10 @@ ..(act, m_type, message) /mob/living/simple_animal/attack_animal(mob/living/simple_animal/M as mob) - ..() - var/damage = rand(M.melee_damage_lower, M.melee_damage_upper) - adjustBruteLoss(damage) - updatehealth() + if(..()) + var/damage = rand(M.melee_damage_lower, M.melee_damage_upper) + adjustBruteLoss(damage) + updatehealth() /mob/living/simple_animal/bullet_act(var/obj/item/projectile/Proj) if(!Proj) @@ -268,36 +268,23 @@ return 0 /mob/living/simple_animal/attack_hand(mob/living/carbon/human/M as mob) - ..() + if(..()) + switch(M.a_intent) - switch(M.a_intent) + if("help") + if (health > 0) + visible_message(" [M] [response_help] [src].") + playsound(loc, 'sound/weapons/thudswoosh.ogg', 50, 1, -1) - if("help") - if (health > 0) - visible_message(" [M] [response_help] [src].") - playsound(loc, 'sound/weapons/thudswoosh.ogg', 50, 1, -1) + if("grab") + grabbedby(M) - if("grab") - if (M == src || anchored) - return - if (!(status_flags & CANPUSH)) - return - - var/obj/item/weapon/grab/G = new /obj/item/weapon/grab(M, src ) - - M.put_in_active_hand(G) - - G.synch() - - LAssailant = M - - visible_message("[M] has grabbed [src] passively!") - playsound(loc, 'sound/weapons/thudswoosh.ogg', 50, 1, -1) - - if("harm", "disarm") - visible_message("[M] [response_harm] [src]!") - playsound(loc, "punch", 25, 1, -1) - adjustBruteLoss(harm_intent_damage) + if("harm", "disarm") + visible_message("[M] [response_harm] [src]!") + playsound(loc, "punch", 25, 1, -1) + adjustBruteLoss(harm_intent_damage) + add_logs(M, src, "attacked", admin=0) + updatehealth() return @@ -313,21 +300,14 @@ return /mob/living/simple_animal/attack_alien(mob/living/carbon/alien/humanoid/M as mob) - - switch(M.a_intent) - - if ("help") - - visible_message("[M] caresses [src] with its scythe like arm.") - if ("grab") - grabbedby(M) - - if("harm", "disarm") - var/damage = rand(15, 30) - visible_message("[M] has slashed at [src]!", \ - "[M] has slashed at [src]!") - playsound(loc, 'sound/weapons/slice.ogg', 25, 1, -1) - adjustBruteLoss(damage) + if(..()) + var/damage = rand(15, 30) + visible_message("[M] has slashed at [src]!", \ + "[M] has slashed at [src]!") + playsound(loc, 'sound/weapons/slice.ogg', 25, 1, -1) + add_logs(M, src, "attacked", admin=0) + adjustBruteLoss(damage) + updatehealth() return From 164988342585155c936fdbb7a4eefe4c050006e2 Mon Sep 17 00:00:00 2001 From: phil235 Date: Thu, 6 Nov 2014 00:52:31 +0100 Subject: [PATCH 065/102] Fixed some typos. Moved some attack procs from carbon.dm to carbon/carbon_defense.dm and from human.dm to human/human_defense.dm. --- code/modules/mob/living/carbon/carbon.dm | 59 ----------------- .../mob/living/carbon/carbon_defense.dm | 63 ++++++++++++++++++- code/modules/mob/living/carbon/human/human.dm | 42 ------------- .../mob/living/carbon/human/human_defense.dm | 41 ++++++++++++ code/modules/mob/living/living_defense.dm | 6 +- .../mob/living/simple_animal/simple_animal.dm | 2 +- 6 files changed, 107 insertions(+), 106 deletions(-) diff --git a/code/modules/mob/living/carbon/carbon.dm b/code/modules/mob/living/carbon/carbon.dm index 26dbf47aae0..2677eabf0ab 100644 --- a/code/modules/mob/living/carbon/carbon.dm +++ b/code/modules/mob/living/carbon/carbon.dm @@ -71,55 +71,6 @@ else ..() -/mob/living/carbon/attack_hand(mob/living/carbon/human/user) - if(!iscarbon(user)) - return - - for(var/datum/disease/D in viruses) - if(D.spread_by_touch()) - user.contract_disease(D, 0, 1, CONTACT_HANDS) - - for(var/datum/disease/D in user.viruses) - if(D.spread_by_touch()) - contract_disease(D, 0, 1, CONTACT_HANDS) - - if(lying || isslime(src)) - if(user.a_intent == "help") - if(surgeries.len) - for(var/datum/surgery/S in surgeries) - if(S.next_step(user, src)) - return 1 - if(..()) - switch(user.a_intent) - if("help") - help_shake_act(user) - if("grab") - grabbedby(user) - - return 0 - - -/mob/living/carbon/attack_paw(mob/living/carbon/monkey/M as mob) - if(!istype(M, /mob/living/carbon)) - return 0 - - for(var/datum/disease/D in viruses) - if(D.spread_by_touch()) - M.contract_disease(D, 0, 1, CONTACT_HANDS) - - for(var/datum/disease/D in M.viruses) - if(D.spread_by_touch()) - contract_disease(D, 0, 1, CONTACT_HANDS) - - if(..()) - for(var/datum/disease/D in M.viruses) - contract_disease(D,1,0) - return 1 - - if(M.a_intent == "help") - help_shake_act(M) - return 0 - /mob/living/carbon/electrocute_act(var/shock_damage, var/obj/source, var/siemens_coeff = 1.0) shock_damage *= siemens_coeff if (shock_damage<1) @@ -440,16 +391,6 @@ "[usr] [internal ? "opens" : "closes"] the valve on [src]'s [ITEM].") -/mob/living/carbon/attackby(obj/item/I, mob/user) - if(lying || isslime(src)) - if(surgeries.len) - if(user.a_intent == "help") - for(var/datum/surgery/S in surgeries) - if(S.next_step(user, src)) - return 1 - - ..() - /mob/living/carbon/getTrail() if(getBruteLoss() < 300) diff --git a/code/modules/mob/living/carbon/carbon_defense.dm b/code/modules/mob/living/carbon/carbon_defense.dm index ed0d78a3e4d..24f48a260f2 100644 --- a/code/modules/mob/living/carbon/carbon_defense.dm +++ b/code/modules/mob/living/carbon/carbon_defense.dm @@ -11,6 +11,67 @@ return ..() + +/mob/living/carbon/attackby(obj/item/I, mob/user) + if(lying || isslime(src)) + if(surgeries.len) + if(user.a_intent == "help") + for(var/datum/surgery/S in surgeries) + if(S.next_step(user, src)) + return 1 + ..() + + +/mob/living/carbon/attack_hand(mob/living/carbon/human/user) + if(!iscarbon(user)) + return + + for(var/datum/disease/D in viruses) + if(D.spread_by_touch()) + user.contract_disease(D, 0, 1, CONTACT_HANDS) + + for(var/datum/disease/D in user.viruses) + if(D.spread_by_touch()) + contract_disease(D, 0, 1, CONTACT_HANDS) + + if(lying || isslime(src)) + if(user.a_intent == "help") + if(surgeries.len) + for(var/datum/surgery/S in surgeries) + if(S.next_step(user, src)) + return 1 + if(..()) + switch(user.a_intent) + if("help") + help_shake_act(user) + if("grab") + grabbedby(user) + + return 0 + + +/mob/living/carbon/attack_paw(mob/living/carbon/monkey/M as mob) + if(!istype(M, /mob/living/carbon)) + return 0 + + for(var/datum/disease/D in viruses) + if(D.spread_by_touch()) + M.contract_disease(D, 0, 1, CONTACT_HANDS) + + for(var/datum/disease/D in M.viruses) + if(D.spread_by_touch()) + contract_disease(D, 0, 1, CONTACT_HANDS) + + if(..()) + for(var/datum/disease/D in M.viruses) + contract_disease(D,1,0) + return 1 + + if(M.a_intent == "help") + help_shake_act(M) + return 0 + + /mob/living/carbon/attack_slime(mob/living/carbon/slime/M) if(..()) var/power = M.powerlevel + rand(0,3) @@ -22,4 +83,4 @@ if (prob(stunprob) && M.powerlevel >= 8) adjustFireLoss(M.powerlevel * rand(6,10)) updatehealth() - return 1 \ No newline at end of file + return 1 diff --git a/code/modules/mob/living/carbon/human/human.dm b/code/modules/mob/living/carbon/human/human.dm index f619b5e3be3..e380f222042 100644 --- a/code/modules/mob/living/carbon/human/human.dm +++ b/code/modules/mob/living/carbon/human/human.dm @@ -218,48 +218,6 @@ return -/mob/living/carbon/human/attack_animal(mob/living/simple_animal/M as mob) - if(..()) - var/damage = rand(M.melee_damage_lower, M.melee_damage_upper) - var/dam_zone = pick("chest", "l_hand", "r_hand", "l_leg", "r_leg") - var/obj/item/organ/limb/affecting = get_organ(ran_zone(dam_zone)) - var/armor = run_armor_check(affecting, "melee") - apply_damage(damage, BRUTE, affecting, armor) - updatehealth() -/* if(armor >= 2) //why is this here? - return */ - - -/mob/living/carbon/human/attack_larva(mob/living/carbon/alien/larva/L as mob) - - if(..()) - var/damage = rand(1, 3) - if(stat != DEAD) - L.amount_grown = min(L.amount_grown + damage, L.max_grown) - var/obj/item/organ/limb/affecting = get_organ(ran_zone(L.zone_sel.selecting)) - var/armor_block = run_armor_check(affecting, "melee") - apply_damage(damage, BRUTE, affecting, armor_block) - updatehealth() - - -/mob/living/carbon/human/attack_slime(mob/living/carbon/slime/M as mob) - ..() - var/damage = rand(1, 3) - - if(M.is_adult) - damage = rand(10, 35) - else - damage = rand(5, 25) - - var/dam_zone = pick("head", "chest", "l_arm", "r_arm", "l_leg", "r_leg", "groin") - - var/obj/item/organ/limb/affecting = get_organ(ran_zone(dam_zone)) - var/armor_block = run_armor_check(affecting, "melee") - apply_damage(damage, BRUTE, affecting, armor_block) - - return - - /mob/living/carbon/human/var/co2overloadtime = null /mob/living/carbon/human/var/temperature_resistance = T0C+75 diff --git a/code/modules/mob/living/carbon/human/human_defense.dm b/code/modules/mob/living/carbon/human/human_defense.dm index db923d377c1..7ae66926858 100644 --- a/code/modules/mob/living/carbon/human/human_defense.dm +++ b/code/modules/mob/living/carbon/human/human_defense.dm @@ -324,3 +324,44 @@ emp_act w_uniform.add_fingerprint(user) ..() + +/mob/living/carbon/human/attack_animal(mob/living/simple_animal/M as mob) + if(..()) + var/damage = rand(M.melee_damage_lower, M.melee_damage_upper) + var/dam_zone = pick("chest", "l_hand", "r_hand", "l_leg", "r_leg") + var/obj/item/organ/limb/affecting = get_organ(ran_zone(dam_zone)) + var/armor = run_armor_check(affecting, "melee") + apply_damage(damage, BRUTE, affecting, armor) + updatehealth() +/* if(armor >= 2) //why is this here? + return */ + + +/mob/living/carbon/human/attack_larva(mob/living/carbon/alien/larva/L as mob) + + if(..()) + var/damage = rand(1, 3) + if(stat != DEAD) + L.amount_grown = min(L.amount_grown + damage, L.max_grown) + var/obj/item/organ/limb/affecting = get_organ(ran_zone(L.zone_sel.selecting)) + var/armor_block = run_armor_check(affecting, "melee") + apply_damage(damage, BRUTE, affecting, armor_block) + updatehealth() + + +/mob/living/carbon/human/attack_slime(mob/living/carbon/slime/M as mob) + ..() + var/damage = rand(1, 3) + + if(M.is_adult) + damage = rand(10, 35) + else + damage = rand(5, 25) + + var/dam_zone = pick("head", "chest", "l_arm", "r_arm", "l_leg", "r_leg", "groin") + + var/obj/item/organ/limb/affecting = get_organ(ran_zone(dam_zone)) + var/armor_block = run_armor_check(affecting, "melee") + apply_damage(damage, BRUTE, affecting, armor_block) + + return diff --git a/code/modules/mob/living/living_defense.dm b/code/modules/mob/living/living_defense.dm index 439bac0826b..5e13ea6027b 100644 --- a/code/modules/mob/living/living_defense.dm +++ b/code/modules/mob/living/living_defense.dm @@ -202,14 +202,14 @@ proc/vol_by_throwforce_and_or_w_class(var/obj/item/I) switch(L.a_intent) if("help") - visible_message("[L] rubs its head against [src].") + visible_message("[L.name] rubs its head against [src].") return 0 else if(prob(90)) add_logs(L, src, "attacked", admin=0) - visible_message("[L] bites [src]!", \ - "[L] bites [src]!") + visible_message("[L.name] bites [src]!", \ + "[L.name] bites [src]!") playsound(loc, 'sound/weapons/bite.ogg', 50, 1, -1) return 1 else diff --git a/code/modules/mob/living/simple_animal/simple_animal.dm b/code/modules/mob/living/simple_animal/simple_animal.dm index 8bb40e4d364..8d65d13ea71 100644 --- a/code/modules/mob/living/simple_animal/simple_animal.dm +++ b/code/modules/mob/living/simple_animal/simple_animal.dm @@ -295,7 +295,7 @@ updatehealth() if (M.a_intent == "help") if (health > 0) - visible_message(" [M] [response_help] [src].") + visible_message(" [M.name] [response_help] [src].") playsound(loc, 'sound/weapons/thudswoosh.ogg', 50, 1, -1) return From 059244387f2b9b79aa2cb064e651981b113a1621 Mon Sep 17 00:00:00 2001 From: Daniel Date: Thu, 6 Nov 2014 01:12:15 +0100 Subject: [PATCH 066/102] Fixed #5691 --- code/game/objects/items/weapons/stunbaton.dm | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/code/game/objects/items/weapons/stunbaton.dm b/code/game/objects/items/weapons/stunbaton.dm index 99289eb3a1c..8f56bd01254 100644 --- a/code/game/objects/items/weapons/stunbaton.dm +++ b/code/game/objects/items/weapons/stunbaton.dm @@ -117,8 +117,7 @@ if(user.a_intent == "harm") ..() - - if(!status) + else if(!status) L.visible_message("[L] has been prodded with [src] by [user]. Luckily it was off.") return From 13d955ed47e14b6db19585584d30bf78f09997c0 Mon Sep 17 00:00:00 2001 From: Daniel Date: Thu, 6 Nov 2014 01:55:57 +0100 Subject: [PATCH 067/102] Fixed #3752 --- code/game/objects/structures/crates_lockers/closets.dm | 2 +- code/game/objects/structures/crates_lockers/closets/fireaxe.dm | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/code/game/objects/structures/crates_lockers/closets.dm b/code/game/objects/structures/crates_lockers/closets.dm index c07ca884aea..076503726d6 100644 --- a/code/game/objects/structures/crates_lockers/closets.dm +++ b/code/game/objects/structures/crates_lockers/closets.dm @@ -38,7 +38,7 @@ /obj/structure/closet/proc/can_close() for(var/obj/structure/closet/closet in get_turf(src)) - if(closet != src) + if(closet != src && !closet.wall_mounted) return 0 return 1 diff --git a/code/game/objects/structures/crates_lockers/closets/fireaxe.dm b/code/game/objects/structures/crates_lockers/closets/fireaxe.dm index 4efc8c6292e..8b9f53871c2 100644 --- a/code/game/objects/structures/crates_lockers/closets/fireaxe.dm +++ b/code/game/objects/structures/crates_lockers/closets/fireaxe.dm @@ -8,6 +8,7 @@ icon_opened = "fireaxe1100" anchored = 1 density = 0 + wall_mounted = 1 var/localopened = 0 //Setting this to keep it from behaviouring like a normal closet and obstructing movement in the map. -Agouri opened = 1 var/hitstaken = 0 From b99499e2775de0587c00999ec4a4a86e06b8f645 Mon Sep 17 00:00:00 2001 From: paprka Date: Wed, 5 Nov 2014 18:02:14 -0800 Subject: [PATCH 068/102] fixes utility medipen bundle for miners --- code/game/objects/items/weapons/storage/boxes.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/game/objects/items/weapons/storage/boxes.dm b/code/game/objects/items/weapons/storage/boxes.dm index 0fafce0d3a8..10d0c539528 100644 --- a/code/game/objects/items/weapons/storage/boxes.dm +++ b/code/game/objects/items/weapons/storage/boxes.dm @@ -144,7 +144,7 @@ desc = "A box with several utility medipens for the economical miner." icon_state = "syringe" -/obj/item/weapon/storage/box/syringes/New() +/obj/item/weapon/storage/box/medipens/utility/New() ..() new /obj/item/weapon/reagent_containers/hypospray/medipen/leporazine( src ) new /obj/item/weapon/reagent_containers/hypospray/medipen/leporazine( src ) From 94a3db7cf185bfddbe91d2ba91b3eeaeee2db072 Mon Sep 17 00:00:00 2001 From: WJohn Date: Wed, 5 Nov 2014 23:06:07 -0500 Subject: [PATCH 069/102] Fixes flash pathes. Fixes #5686 --- _maps/map_files/MetaStation.v39K.dmm | 40 ++++++++++++++-------------- 1 file changed, 20 insertions(+), 20 deletions(-) diff --git a/_maps/map_files/MetaStation.v39K.dmm b/_maps/map_files/MetaStation.v39K.dmm index 4425c5a6261..fa85baffb84 100644 --- a/_maps/map_files/MetaStation.v39K.dmm +++ b/_maps/map_files/MetaStation.v39K.dmm @@ -239,7 +239,7 @@ "aeE" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/cable/yellow{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/simulated/floor{icon_state = "showroomfloor"},/area/security/warden) "aeF" = (/obj/structure/closet/secure_closet/warden,/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor{icon_state = "showroomfloor"},/area/security/warden) "aeG" = (/obj/structure/table,/obj/item/weapon/folder/red,/obj/item/device/taperecorder{pixel_x = -4; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor,/area/security/main) -"aeH" = (/obj/structure/table,/obj/item/weapon/folder/red,/obj/item/device/flash,/turf/simulated/floor,/area/security/main) +"aeH" = (/obj/structure/table,/obj/structure/window/reinforced,/obj/item/weapon/book/manual/wiki/security_space_law{pixel_x = -3; pixel_y = 5},/obj/machinery/alarm{desc = "This particular atmos control unit appears to have no access restrictions."; dir = 8; icon_state = "alarm0"; locked = 0; name = "all-access air alarm"; pixel_x = 24; req_access = "0"; req_one_access = "0"},/obj/machinery/light{icon_state = "tube1"; dir = 4},/obj/item/device/flash/handheld,/turf/simulated/floor{tag = "icon-vault"; icon_state = "vault"},/area/prison/solitary{name = "Prisoner Education Chamber"}) "aeI" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/structure/cable/yellow{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/disposalpipe/segment,/turf/simulated/floor{icon_state = "showroomfloor"},/area/security/warden) "aeJ" = (/obj/machinery/door/airlock/maintenance{name = "Storage Room"; req_access_txt = "12"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor/plating,/area/maintenance/fpmaint2{name = "Port Maintenance"}) "aeK" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor{icon_state = "dark"},/area/security/brig) @@ -370,7 +370,7 @@ "ahf" = (/obj/machinery/door/airlock/maintenance{name = "Disposal Conveyor Access"; req_access_txt = "12"},/turf/simulated/floor/plating,/area/maintenance/fpmaint2{name = "Port Maintenance"}) "ahg" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/structure/cable/yellow{d2 = 2; icon_state = "0-2"},/turf/simulated/floor/plating,/area/security/warden) "ahh" = (/obj/machinery/light{dir = 8},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/simulated/floor{icon_state = "showroomfloor"},/area/security/warden) -"ahi" = (/obj/structure/table,/obj/machinery/recharger{pixel_y = 4},/obj/item/device/flash,/turf/simulated/floor,/area/security/main) +"ahi" = (/obj/structure/rack,/obj/item/weapon/restraints/handcuffs,/obj/item/device/flash/handheld,/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor{tag = "icon-vault"; icon_state = "vault"},/area/security/prison) "ahj" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/structure/cable/yellow{d2 = 8; icon_state = "0-8"},/turf/simulated/floor/plating,/area/hallway/primary/fore) "ahk" = (/obj/structure/table/reinforced,/obj/item/weapon/folder/red{pixel_x = 3},/obj/item/weapon/folder/blue{pixel_x = -2; pixel_y = 3},/turf/simulated/floor,/area/security/main) "ahl" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 6},/obj/item/weapon/storage/box/donkpockets,/turf/simulated/floor{icon_state = "floorgrime"},/area/quartermaster/sorting{name = "\improper Warehouse"}) @@ -834,7 +834,7 @@ "aqb" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/light/small{dir = 4},/turf/simulated/floor{dir = 2; icon_state = "neutralcorner"},/area/crew_quarters/sleep) "aqc" = (/obj/machinery/deployable/barrier,/obj/structure/extinguisher_cabinet{pixel_x = -27; pixel_y = 0},/obj/machinery/camera{c_tag = "Security - Secure Gear Storage"; dir = 4; network = list("SS13")},/turf/simulated/floor{icon_state = "bot"},/area/security/warden) "aqd" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plating,/area/security/brig) -"aqe" = (/obj/structure/table,/obj/structure/window/reinforced,/obj/item/weapon/book/manual/wiki/security_space_law{pixel_x = -3; pixel_y = 5},/obj/machinery/alarm{desc = "This particular atmos control unit appears to have no access restrictions."; dir = 8; icon_state = "alarm0"; locked = 0; name = "all-access air alarm"; pixel_x = 24; req_access = "0"; req_one_access = "0"},/obj/machinery/light{icon_state = "tube1"; dir = 4},/obj/item/device/flash,/turf/simulated/floor{tag = "icon-vault"; icon_state = "vault"},/area/prison/solitary{name = "Prisoner Education Chamber"}) +"aqe" = (/obj/structure/table,/obj/machinery/recharger{pixel_y = 4},/obj/item/device/flash/handheld,/turf/simulated/floor,/area/security/main) "aqf" = (/obj/structure/window/reinforced,/obj/structure/table,/obj/item/weapon/folder/red{pixel_x = 3},/obj/item/device/taperecorder{pixel_x = -3; pixel_y = 0},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor{tag = "icon-vault"; icon_state = "vault"},/area/prison/solitary{name = "Prisoner Education Chamber"}) "aqg" = (/obj/machinery/door/window/brigdoor{dir = 2; name = "Justice Chamber"; req_access_txt = "3"},/obj/machinery/atmospherics/pipe/simple/general/hidden,/obj/machinery/door_control{dir = 2; id = "SecJusticeChamber"; layer = 4; name = "Justice Vent Control"; pixel_x = -26; pixel_y = -5; req_access_txt = "3"},/obj/machinery/flasher_button{id = "justiceflash"; name = "Justice Flash Control"; pixel_x = -26; pixel_y = 5; req_access_txt = "1"},/turf/simulated/floor{tag = "icon-vault"; icon_state = "vault"},/area/prison/solitary{name = "Prisoner Education Chamber"}) "aqh" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor/plating,/area/maintenance/fpmaint2{name = "Port Maintenance"}) @@ -1349,7 +1349,7 @@ "azW" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor{tag = "icon-vault (SOUTHWEST)"; icon_state = "vault"; dir = 10},/area/security/nuke_storage) "azX" = (/obj/structure/table,/obj/item/weapon/folder/red{pixel_x = 3},/obj/item/weapon/folder/white{pixel_x = -4; pixel_y = 2},/turf/simulated/floor{tag = "icon-vault"; icon_state = "vault"},/area/security/prison) "azY" = (/obj/structure/table,/obj/structure/sign/maltesefalcon/left{pixel_y = 32},/obj/item/weapon/reagent_containers/food/drinks/shaker,/obj/machinery/newscaster{pixel_x = -30; pixel_y = 0},/turf/simulated/floor{icon_state = "bar"},/area/crew_quarters/bar{name = "\improper Maltese Falcon"}) -"azZ" = (/obj/structure/rack,/obj/item/weapon/restraints/handcuffs,/obj/item/device/flash,/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor{tag = "icon-vault"; icon_state = "vault"},/area/security/prison) +"azZ" = (/obj/structure/table,/obj/item/weapon/folder/red,/obj/item/device/flash/handheld,/turf/simulated/floor,/area/security/main) "aAa" = (/obj/structure/table,/obj/item/weapon/storage/box/bodybags{pixel_x = 4; pixel_y = 2},/obj/item/weapon/pen,/obj/item/weapon/storage/box/prisoner,/turf/simulated/floor{tag = "icon-vault"; icon_state = "vault"},/area/security/prison) "aAb" = (/obj/structure/grille,/obj/structure/window/reinforced/tinted{dir = 5; health = 120; icon_state = "twindow"; reinf = 0},/turf/simulated/floor/plating,/area/security/main) "aAc" = (/obj/item/clothing/head/festive,/obj/effect/decal/cleanable/cobweb2,/turf/simulated/floor/plating,/area/maintenance/fore) @@ -1643,7 +1643,7 @@ "aFE" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 2},/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/simulated/floor{dir = 8; icon_state = "brown"},/area/quartermaster/office{name = "\improper Cargo Office"}) "aFF" = (/obj/machinery/door/airlock/shuttle{name = "Labor Shuttle Airlock"; req_access_txt = "2"},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/laborcamp/station) "aFG" = (/obj/machinery/alarm{dir = 4; icon_state = "alarm0"; pixel_x = -22},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/closet/wardrobe/red,/turf/simulated/floor{icon_state = "red"; dir = 10},/area/security/checkpoint2{name = "Customs"}) -"aFH" = (/obj/machinery/firealarm{dir = 4; pixel_x = 24},/obj/item/weapon/crowbar,/obj/item/device/flash,/turf/simulated/floor{icon_state = "red"; dir = 6},/area/security/checkpoint2{name = "Customs"}) +"aFH" = (/obj/structure/table,/obj/item/device/flashlight{pixel_x = 1; pixel_y = 5},/obj/item/device/flashlight{pixel_x = 1; pixel_y = 5},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/light/small{dir = 1},/obj/item/device/flash/handheld,/obj/item/device/flash/handheld,/turf/simulated/floor{icon_state = "dark"},/area/storage/tech) "aFI" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/grille,/obj/structure/cable/yellow{d2 = 8; icon_state = "0-8"},/obj/structure/cable/yellow{d2 = 4; icon_state = "0-4"},/obj/structure/cable/yellow{d2 = 2; icon_state = "0-2"},/obj/machinery/door/poddoor/preopen{id = "bridge blast"; layer = 2.9; name = "bridge blast door"},/turf/simulated/floor/plating,/area/bridge) "aFJ" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/door/firedoor,/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor{dir = 2; icon_state = "neutralcorner"},/area/hallway/primary/central) "aFK" = (/obj/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/cable/yellow{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/simulated/floor,/area/quartermaster/office{name = "\improper Cargo Office"}) @@ -3177,7 +3177,7 @@ "bje" = (/obj/machinery/computer/general_air_control/large_tank_control{frequency = 1441; input_tag = "waste_in"; name = "Gas Mix Tank Control"; output_tag = "waste_out"; sensors = list("waste_sensor" = "Tank")},/obj/machinery/atmospherics/pipe/simple/cyan/visible,/turf/simulated/floor{icon_state = "green"; dir = 4},/area/maintenance/storage) "bjf" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable/yellow{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/simulated/floor{icon_state = "red"; dir = 1},/area/security/brig) "bjg" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass{icon = 'icons/obj/doors/Doorminingglass.dmi'; name = "Primary Tool Storage"},/turf/simulated/floor{dir = 2; icon_state = "brown"},/area/storage/primary) -"bjh" = (/obj/machinery/recharger,/obj/machinery/keycard_auth{pixel_x = 0; pixel_y = 24},/obj/item/weapon/storage/secure/safe{pixel_x = 34; pixel_y = 0},/obj/item/device/flash,/obj/structure/table,/turf/simulated/floor{icon_state = "dark"},/area/crew_quarters/heads) +"bjh" = (/obj/machinery/firealarm{dir = 4; pixel_x = 24},/obj/item/weapon/crowbar,/obj/item/device/flash/handheld,/turf/simulated/floor{icon_state = "red"; dir = 6},/area/security/checkpoint2{name = "Customs"}) "bji" = (/obj/machinery/requests_console{announcementConsole = 1; department = "Head of Personnel's Desk"; departmentType = 5; name = "Head of Personnel RC"; pixel_y = 30},/obj/machinery/light{dir = 1},/obj/item/weapon/storage/secure/briefcase,/obj/structure/table,/turf/simulated/floor{icon_state = "dark"},/area/crew_quarters/heads) "bjj" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating,/area/storage/primary) "bjk" = (/obj/structure/cable/yellow{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 10},/turf/simulated/floor{dir = 8; icon_state = "neutralcorner"},/area/hallway/primary/port) @@ -3938,7 +3938,7 @@ "bxL" = (/obj/structure/rack{dir = 8; layer = 2.9},/obj/item/weapon/circuitboard/cloning{pixel_x = 0},/obj/item/weapon/circuitboard/med_data{pixel_x = 3; pixel_y = -3},/obj/item/weapon/circuitboard/clonescanner,/obj/item/weapon/circuitboard/clonepod,/obj/item/weapon/circuitboard/scan_consolenew,/turf/simulated/floor{icon_state = "dark"},/area/storage/tech) "bxM" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{req_access_txt = 1},/turf/simulated/floor/plating,/area/maintenance/fpmaint2{name = "Port Maintenance"}) "bxN" = (/obj/item/trash/pistachios,/obj/structure/closet,/obj/item/weapon/stock_parts/console_screen,/obj/item/weapon/extinguisher,/obj/item/weapon/storage/belt/utility,/turf/simulated/floor/plating,/area/maintenance/aft{name = "Aft Maintenance"}) -"bxO" = (/obj/structure/table,/obj/item/device/flashlight{pixel_x = 1; pixel_y = 5},/obj/item/device/flashlight{pixel_x = 1; pixel_y = 5},/obj/item/device/flash,/obj/item/device/flash,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/light/small{dir = 1},/turf/simulated/floor{icon_state = "dark"},/area/storage/tech) +"bxO" = (/obj/machinery/recharger,/obj/machinery/keycard_auth{pixel_x = 0; pixel_y = 24},/obj/item/weapon/storage/secure/safe{pixel_x = 34; pixel_y = 0},/obj/structure/table,/obj/item/device/flash/handheld,/turf/simulated/floor{icon_state = "dark"},/area/crew_quarters/heads) "bxP" = (/obj/structure/table,/obj/item/device/aicard,/obj/item/weapon/aiModule/reset,/turf/simulated/floor{icon_state = "dark"},/area/storage/tech) "bxQ" = (/obj/machinery/firealarm{dir = 8; pixel_x = -24},/obj/machinery/light{dir = 8},/obj/machinery/computer/shuttle/mining{req_access = "0"; req_one_access = "0"},/turf/simulated/floor{dir = 9; icon_state = "brown"},/area/quartermaster/miningdock{name = "\improper Mining Office"}) "bxR" = (/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor/plating{icon_plating = "warnplate"; icon_state = "warnplate"},/area/maintenance/fpmaint2{name = "Port Maintenance"}) @@ -6580,6 +6580,7 @@ "cwB" = (/obj/machinery/firealarm{dir = 2; pixel_y = 24},/obj/machinery/light/small{dir = 1},/turf/simulated/floor{icon_state = "dark"},/area/medical/morgue) "cwC" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/supply/hidden{req_access_txt = 1},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/door/airlock/maintenance{req_access_txt = "0"; req_one_access_txt = "12;5;39;6"},/turf/simulated/floor/plating,/area/maintenance/aft{name = "Aft Maintenance"}) "cwD" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor{dir = 1; icon_state = "warning"},/area/hallway/secondary/exit{name = "\improper Departure Lounge"}) +"cwE" = (/obj/structure/table,/obj/item/device/assembly/prox_sensor{pixel_x = -8; pixel_y = 4},/obj/item/device/assembly/prox_sensor{pixel_x = -8; pixel_y = 4},/obj/item/device/assembly/prox_sensor{pixel_x = -8; pixel_y = 4},/obj/item/device/assembly/prox_sensor{pixel_x = -8; pixel_y = 4},/obj/item/weapon/stock_parts/cell/high{charge = 100; maxcharge = 15000},/obj/item/weapon/stock_parts/cell/high{charge = 100; maxcharge = 15000; pixel_x = 5; pixel_y = -5},/obj/machinery/camera{c_tag = "Robotics - Fore"; dir = 2; network = list("SS13","RD")},/obj/item/device/flash/handheld,/obj/item/device/flash/handheld,/obj/item/device/flash/handheld,/obj/item/device/flash/handheld,/turf/simulated/floor{icon_state = "bot"},/area/assembly/robotics) "cwF" = (/obj/structure/rack,/obj/item/weapon/storage/toolbox/mechanical{pixel_x = 2; pixel_y = 3},/obj/item/weapon/storage/toolbox/mechanical{pixel_x = -2; pixel_y = -1},/obj/item/stack/cable_coil{pixel_x = -1; pixel_y = -3},/obj/item/stack/cable_coil,/turf/simulated/floor,/area/assembly/chargebay) "cwG" = (/obj/machinery/computer/scan_consolenew,/turf/simulated/floor{icon_state = "whitebluefull"},/area/medical/genetics) "cwH" = (/turf/simulated/floor/plating{tag = "icon-platingdmg1"; icon_state = "platingdmg1"},/area/construction) @@ -6619,6 +6620,7 @@ "cxp" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating,/area/toxins/xenobiology) "cxq" = (/obj/structure/stool/bed/chair,/obj/item/weapon/cigbutt,/turf/simulated/floor/plating,/area/maintenance/aft{name = "Aft Maintenance"}) "cxr" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor{icon_state = "bot"},/area/assembly/robotics) +"cxs" = (/obj/structure/rack,/obj/item/weapon/storage/belt/utility,/obj/item/device/flash/handheld,/obj/item/device/flash/handheld,/obj/item/device/flash/handheld,/obj/item/device/flash/handheld,/turf/simulated/floor{icon_state = "bot"},/area/assembly/robotics) "cxt" = (/obj/machinery/door/airlock/external{req_access_txt = "13"},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plating,/area/maintenance/aft{name = "Aft Maintenance"}) "cxu" = (/obj/machinery/suit_storage_unit/atmos,/turf/simulated/floor{icon_state = "dark"},/area/maintenance/storage) "cxv" = (/obj/machinery/door/window/southleft{base_state = "right"; dir = 2; icon_state = "right"; name = "Cloning Shower"},/obj/structure/sink/kitchen{desc = "A sink used for washing one's hands and face. It looks rusty and home-made"; name = "sink"; pixel_y = 28},/turf/simulated/floor{tag = "icon-vault"; icon_state = "vault"},/area/medical/genetics_cloning) @@ -6631,6 +6633,7 @@ "cxC" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor/plating,/area/maintenance/aft{name = "Aft Maintenance"}) "cxD" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 1; on = 1},/turf/simulated/floor{icon_state = "delivery"},/area/hallway/secondary/exit{name = "\improper Departure Lounge"}) "cxE" = (/turf/simulated/floor{icon_state = "bluefull"},/area/medical/genetics) +"cxF" = (/obj/structure/table,/obj/item/device/flash/handheld,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/centcom/evac) "cxG" = (/turf/simulated/floor{icon_state = "delivery"},/area/hallway/secondary/exit{name = "\improper Departure Lounge"}) "cxH" = (/obj/machinery/hologram/holopad,/turf/simulated/floor{icon_state = "delivery"},/area/hallway/secondary/exit{name = "\improper Departure Lounge"}) "cxI" = (/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/obj/structure/stool/bed/chair/office/dark,/obj/effect/landmark/start{name = "Roboticist"},/turf/simulated/floor,/area/assembly/chargebay) @@ -7303,7 +7306,6 @@ "cKA" = (/obj/structure/stool/bed/chair{dir = 1},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/centcom/evac) "cKB" = (/obj/structure/stool/bed/chair{dir = 4},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/centcom/evac) "cKC" = (/obj/structure/table/reinforced,/obj/item/weapon/clipboard,/obj/item/weapon/stamp,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/centcom/evac) -"cKD" = (/obj/structure/table,/obj/item/device/flash,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/centcom/evac) "cKE" = (/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/centcom/evac) "cKF" = (/obj/structure/stool/bed/chair{dir = 4},/turf/simulated/shuttle/floor,/area/centcom/evac) "cKG" = (/turf/space,/area/shuttle/escape_pod3/centcom) @@ -8946,7 +8948,6 @@ "dqf" = (/obj/machinery/atmospherics/pipe/simple/general/hidden{dir = 9},/obj/machinery/light_switch{pixel_y = -25},/turf/simulated/floor/bluegrid,/area/mine/maintenance) "dqg" = (/obj/machinery/camera{c_tag = "Communications Relay"; dir = 8; network = list("MINE")},/turf/simulated/floor/bluegrid,/area/mine/maintenance) "dqh" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/turf/simulated/floor,/area/mine/living_quarters) -"dqi" = (/obj/structure/rack,/obj/item/weapon/storage/belt/utility,/obj/item/device/flash,/obj/item/device/flash,/obj/item/device/flash,/obj/item/device/flash,/obj/item/device/flash,/obj/item/device/flash,/obj/item/device/flash,/turf/simulated/floor{icon_state = "bot"},/area/assembly/robotics) "dqj" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/simulated/floor,/area/mine/living_quarters) "dqk" = (/turf/simulated/wall,/area/mine/living_quarters) "dql" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/simulated/floor,/area/mine/living_quarters) @@ -10308,7 +10309,6 @@ "dQv" = (/obj/machinery/portable_atmospherics/canister/carbon_dioxide,/obj/machinery/light/small{dir = 8},/turf/simulated/floor{icon_state = "bot"},/area/toxins/storage) "dQw" = (/obj/machinery/door/airlock/shuttle,/turf/simulated/shuttle/floor,/area/shuttle/transport1/centcom) "dQx" = (/turf/simulated/floor{dir = 6; icon_state = "warnwhite"; tag = "icon-warnwhite (NORTHEAST)"},/area/crew_quarters/hor) -"dQy" = (/obj/structure/table,/obj/item/device/assembly/prox_sensor{pixel_x = -8; pixel_y = 4},/obj/item/device/assembly/prox_sensor{pixel_x = -8; pixel_y = 4},/obj/item/device/assembly/prox_sensor{pixel_x = -8; pixel_y = 4},/obj/item/device/assembly/prox_sensor{pixel_x = -8; pixel_y = 4},/obj/item/weapon/stock_parts/cell/high{charge = 100; maxcharge = 15000},/obj/item/weapon/stock_parts/cell/high{charge = 100; maxcharge = 15000; pixel_x = 5; pixel_y = -5},/obj/item/device/flash,/obj/machinery/camera{c_tag = "Robotics - Fore"; dir = 2; network = list("SS13","RD")},/turf/simulated/floor{icon_state = "bot"},/area/assembly/robotics) "dQz" = (/obj/machinery/door/window{base_state = "right"; dir = 4; icon_state = "right"; name = "Uplink Management Control"; req_access_txt = "150"},/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/syndicate_mothership) "dQA" = (/obj/effect/landmark{name = "Syndicate-Spawn"},/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/syndicate_mothership) "dQB" = (/obj/structure/table/woodentable,/obj/item/device/syndicatedetonator{desc = "This gaudy button can be used to instantly detonate syndicate bombs that have been activated on the station. It is also fun to press."},/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/syndicate_mothership) @@ -10588,22 +10588,22 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaanaanaanaanaanaaeadAaaeaanaanaanaanaanaaaaahaaaaaaaaeaaaaaaaaeaaaaaibhHaaBaayaayawrawxawuaaJawwawAaaiauMaczauzauxauDauCauOauNaaeaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaaeafJafKafKafKafKaaOafMaaTafOafOafOafOafPaaaaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagaagaagaagaagaagaagaagaagaagaagaagaagaagaagaagaagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaahaaaaaeaaaaaeaaeaaaaaaajdaaaaaaaaeaaaaaaaaeaaaaaaaaaaaaaaeaaaaaiaajaaiaaiasrawZaayaaxasqaxcaxmaaoaaWazRaaiasEasDasJasIasHasGasCaczaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaeaaeaaeaaeaaeaaeaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaaeaclaclaclaclaclaaeafMaaeaclaclaclaclaclaaeaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagaagaagaagaagaagaagaagaagaagaagaagaagaagaagaagaagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaafaafaafaaaaafaafaafaafaafaaaaafaafaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaahaahaaaaaaaaeaaeaaeabYaaaaaaaaeaaeaaeaahaaaaaaaaaaaaaaaaaaaaiauUauVayUaaRauRaaRauSauTaaUauPasKaayaayaaibdXaczatCatoatSatKatmaczatnaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaacaahaahaahaacaahaahaacaaaaaaaaeaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaeaaaaaaaaeagTaaaaaaaaaaaeaaaaaaaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagaagaagaagaagaagaagaagaagaagaagaagaagaagaagaagaagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaafaafaafaaaaafaafaafaafaafaaaaafaafaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaeaaeaaeaaaaaaaaeaaaabYaaaaaaaaeaaaaaeaaaaaaaaaaaaaaaaaeaaeaaiavGavMaayaayavCavDavzavBadbavyaqpaayaxaaaiaqiaczaqgaqfaqeaczaczaczaaaaaeaaaaaeaaeaaeaaeaaeaaaaaaaaeaaaaaaaaaaaaaaeaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaeaaaaeaauvaeaaawadqaacaahaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaaeafgafgafgafgafgaaeafMaaeafgafgafgafgafgaaaaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagaagaagaagaagaagaagaagaagaagaagaagaagaagaagaagaagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaafaafaafaaaaafaafaafaafaafaaaaafaafaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaeaaeaaeaaaaaaaaeaaaabYaaaaaaaaeaaaaaeaaaaaaaaaaaaaaaaaeaaeaaiavGavMaayaayavCavDavzavBadbavyaqpaayaxaaaiaqiaczaqgaqfaeHaczaczaczaaaaaeaaaaaeaaeaaeaaeaaeaaaaaaaaeaaaaaaaaaaaaaaeaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaeaaaaeaauvaeaaawadqaacaahaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaaeafgafgafgafgafgaaeafMaaeafgafgafgafgafgaaaaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagaagaagaagaagaagaagaagaagaagaagaagaagaagaagaagaagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaafaafaafaaaaaaaaaaaaaaaaaaaaaaafaafaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaeaaeaaeaaeaaeabTabCabCabCabaaaeaaeaaeaaeaaeaaeaahaaaaaiabuaboaboabpaboabqaboaEzaboaboaboabtaboaaiaquaczalFalBamNaqtaaaaaeaaeaaeaaeaaeaaaaaaaaaaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaeaaaaeaauXaaqaaraaraauaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaaaafJafKafKafKafKaaOafMaaTafOafOafOafOafPaaeaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagaagaagaagaagaagaagaagaagaagaagaagaagaagaagaagaagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaeaaaaaeaaaaaaaaaabYaaaaaaaaaaaaaaaaaaaaeaaaabbabJaboabDaayabEabqabFaENbyCaboabHaayabIaaibAfaczaxHaxGamNaqtaaaaaeaaaaaaaaaaaeaaaaaaaaaaaeaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeauvaEgbAgaeiaejaekaaaaacaahaacaaeaaeaaaaaaaaaaaaaaaaaaaaaaaaaahaaeaclaclaclaclaclaaeafMaaeaclaclaclaclaclaaeaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagaagaagaagaagaaaaagaagaagaagaagaaaaagaagaagaagaagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaeaaaaaaaaaaaaaaeaaaaaeaaeabYaaeaaeaaaaaaaaaaaaaaaaaaaaiaGeabobAnaayacdaceaDRaDSacgaboachaayacgaaiauYaczaxIalBaxLaqtaaaaaeaaeabvabvabvabvabvaaaaaeaaaaaaabwabwaWyaWMaYuabwabwaaaaaeaaaaaaaaeaaaaaaaaaaaeaaaaaaaaaaaeaaaaaaaaaaaaaaeaaaaaaaaaaaaaeaaElaaMaaraaraaLaaaaaeaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaeaaaaaaaaaafMaaaaaaaaaaaeaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagaagaagaagaagaaaaagaagaagaagaagaaaaagaagaagaagaagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaakaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaeaaeaaaaaeaaaaaaajEajFajEaaeaaaaaaaaaaaaaaeaaeaaiaboaboabsactaboabqaboaEtabqaboabsacvabqaaiawDaczawCawBawyaczaaeaaeabvabvcgAaDvaIQabvabvaaeaaeabwabwbxKaDAaDCaSMaDOabwabwaaeahwahwaLRahwahwaaeaaeaaeaaeaeaauvaeaaAhaAiaAjaeaaAhaAiaAjaeaaeaaBxaeaaBKaBDaAiaCBaAiaAiaAPaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaahaaaafgafgafgafgafgaaeaGSaaeafgafgafgafgafgaaeaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagaagaagaagaagaaaaaaaaaaaaaaaaaaaaaaagaagaagaagaagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaeaaaaaaaaeaaeaaaakhaQJakhaaeaaeaaeaaeaaeaaeaaaaBuaFNaBwaByaBAaAQaARaATadvaBfaBqahAaBtaxpaxoaBtaxyawXawEaAGaxdaaeabvabvaKMaEqaEpaEpaJtabvabvaaeabwaFqaEaaEbaEeaUCaVubymabwaaeahwaSNaSPaWxahwaaaaaaaaaaaeaeaaujaeaaDpaCUaDoaeaaDXaDGaDWaeaaxFaCEaCCaCFamiamiamiamiamiayEaaeaaeaaeaaeaaeaaaaaaaaaaaaaaaaahaaeafJafKafKafKafKaaOafMaaTafOafOafOafOafPaaeaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaeaaeaaeaaeaaeaaeaaeaaeakEakFakGakHakIaaaaaeaaaaaaaaeaaaaCNaaCaCTaCOaCPaCIaCJaCGaCHaCLaCMaNbaFYaFcaDgaCHaDhavsaGcaCTaDkaaeabvazEaBBaBzaHMaAXaBEaHKabvaaeaIsaBHaLCaCvaCwaCbaEVaEyaERaaeaEIaAqaFbaCAaLRaaaaBVaBVaBVaeaaxTaymayoaxWaxWaxUaxWaxZaydayFagGagGagGayEamiamiamiamiamiayGaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaahaaeaclaclaclaclaclaaeafMaaeaclaclaclaclaclaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaeaaaaaaaaaaaaaaeaaeakTakUaFRbxjakTaaaaaeaaaaaaaaeaaeaaiaaiazXazZaAaaaiazKazMazKaeMaeMaeMaeMaeMaABaAAaAzaboavwawsaaiaaeabvaCtaBBaCxaBGaCQaBEaCjabvaaeaSJaDbaQgaDcaSKaDMaQgaCXaRvaaeahwaAqaAraCAahwadradradYagRaeaaeaaeaaxJaieavhavhazqaAFaznavvavvayWayVayJamiamiamiamiamiayXaeaaeaaeaaaaaaeaaaaaaaaaaaaaaaaacaaaaaaaaaaaeaaaaaaaaaafMaaaaaaaaeaaaaaaaaeaaaaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaeaaaaaaaaaaaaaaeaaeakTakUaFRbxjakTaaaaaeaaaaaaaaeaaeaaiaaiazXahiaAaaaiazKazMazKaeMaeMaeMaeMaeMaABaAAaAzaboavwawsaaiaaeabvaCtaBBaCxaBGaCQaBEaCjabvaaeaSJaDbaQgaDcaSKaDMaQgaCXaRvaaeahwaAqaAraCAahwadradradYagRaeaaeaaeaaxJaieavhavhazqaAFaznavvavvayWayVayJamiamiamiamiamiayXaeaaeaaeaaaaaaeaaaaaaaaaaaaaaaaacaaaaaaaaaaaeaaaaaaaaaafMaaaaaaaaeaaaaaaaaeaaaaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaeaaeaoFaoFaKCalGalGalGalHakTaqaavbareakTaWoagVaWoaWoaaeaaeaaeaaiaaiaAHaaiaaiaaiaAHaaiafQayYaAEazQaeMaCdaCKaCzaexaexaexabvabvabvazbayZazlaEmazjayRaBFabvaaeabwavqaCeaBYaCcaAIaBXavpabwaaeahwaAqaAraCAahwaAcadraAdalJaewaKGaeaavfaieavhavjavkavkavkavxavvavSavNavTamiamiamiamiamiawbauiawdawcaaaaaeaaeaaeaaeaaeaaeaahaaeaaeaaeaaeaaeaaaaaaafMaaaaaaaaaaaaaaaaaeaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaNOaMzaMuaoHamnaMmaMlakTbpHawJamqakTaLOalDaEHaWoaWoalvalvalvalvalvalvalvalvalvalvakBakAavrakAarGbjfaqvbjoaexaikaFMbifabvabvabvaAtaAsabvabvabvabvabvawhabwabwawGawIaEnawzawFabwabwawhahnaDeaDjaEoahwadradradsadsaALaAMaeaaHJaieaxEaiXaiUaiUaxPajJawKahSaliaxBamiamiamiamiamiaxBaxCamwakVaaaaaeaaaaaeaaaamlamlamlamlamlamlamlaaeaaeaaeafMaaeaaeaaeaaeaaeaahaaeaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaeaoFajCaoFaveaoyavXaxbakTakTalManbakTanHazoawYagXaWoaaeaaaaaaaaaaaaaaaaaeaaeaaeaaeafQaeMaeMaeMaeMaooacZanWaexakSailakmabvakuakoakpakxawtatyatwaoTabvanMamBaaQaqTaqwanYattatsaaQahWaqqahnatvatuakvahwamzadsadsadsadsadraeaalraltalsalkaljaljallajJamwajcaliakWamiamiamiamiamiakWaleakOakVaaeaaeaaaaaeaaaamlbNIbVZbVQbVGbNIamlaaeaaaagUaiOagUaaaaaaaaeaaaaaaaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaqjamZaqjaqXargaqlaqmanzarJalubGxaWoarTamuasFatQagVaaeaaeaaeaaeaaeaaeaaeadradradrafQanianEanjaqyahGahDagPaexaAuailaAvabvaqcaipaiqairaiJakbacBalhakdakwakkajOajNajVajPajXajWajZajYakzakaakjakcarfahwaicamPajwaroaqEadrajfahYaieaiYaiXaiVaiUaiTajJajKahSajHajBamiamiamiamiamiajyajzajkajxaaaaaeaaeaaeaaeamlbVdbTbbNIbTbbPEamlaaeaaaamXamYamXaaaaaaaaeaaaaakaaaaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaoFapeaoFanQaisaiDaoOaoFbHMapybKoapKabKapvapRanJaWoaaeaKBaKBagVaKBaKBaaeadramoamoafQagtagAafWamOageagOassapWahBaoZahBaiNahKahKaiEaiCaiLaiKaiHaiHapMahJahIahHaguahzahyaiAaizaiyaixaiwagBaijaiiahxahwagQadsadsanIalJadraiaahYaieagGaigaifaiPaihahPahQahSagNahUamiamiamiamiamiafFaeaahOaeaaaaaaaaaeaaaaaaamlbOBbOqbObbNRbNJamlaaeagUanDaqRanDagUaaaaaeaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaeaoFamWaqkaqkaqkagnamVaoFaoYaiBajraWoanKafAakyanFaWoaKBaKBaUDajLbGxaKBadradrakfajMafQagdafXafTagZaeragfaggaexagaagbagcabvagjagkaglakRabQaenalwanGaexakiafzahiaguahkaffaimahtahvafjahoahnahnanhadradradradradrafHadradraeaagIagHagGagGagLagKagJahrahragMagNahNamiamiamiamiamiafFbWIcsgavAavAavAcgaavAavAamlbMpbLWbNIbNnbLJamlaaeaoBaoCamYaoDaoEaaeaaeaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaeaoFamWaqkaqkaqkagnamVaoFaoYaiBajraWoanKafAakyanFaWoaKBaKBaUDajLbGxaKBadradrakfajMafQagdafXafTagZaeragfaggaexagaagbagcabvagjagkaglakRabQaenalwanGaexakiafzaqeaguahkaffaimahtahvafjahoahnahnanhadradradradradrafHadradraeaagIagHagGagGagLagKagJahrahragMagNahNamiamiamiamiamiafFbWIcsgavAavAavAcgaavAavAamlbMpbLWbNIbNnbLJamlaaeaoBaoCamYaoDaoEaaeaaeaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaeaaeaaaaaaaaaaaaaaaaaeaaaaaeaaaaaeaaaaoFaesaiFaiIajqalKammaoFajpaiBbrTaKBardbrTbrTbrTdKcaKBbrSagSajoafyaKBaeLacGajmacLafcaeKafxafvacxacyacwacPabvahgafwaheabvabvacCagyacCabvahhahCagWaduaflafzagxagwaguagsagiaftagDafjagpagoagmafeaeYajlaeYafGaeXaioajjaeXahFagEagFafLafLafIadiagzafCafCafCafDafBamiamiamiamiamiafFaUoaQsavAaePakKaQsaiZackamlbLCbIwbGZbDPbLIamlaaeaptapuaoIandaptaaaaaeaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaKBaKBafUaKBaaeaaaaaeaaeaaeaaeaaeaKBafUaoFaoFahdahfaoFaoFaoFaoFbrTahbbKoaeJabKagqaiWbrTajAaKBbHMaKSaqhaKBaKBacuacsaidahEafQafQafQaeMaeMadWabhacPacIaghaeEaeFafYafbaemaenaeoabvaenacBafkaexafSafzafoafnafqafpaeHaeGabzafjahVacTacTaaQaaQaaQaaQaocadradradradraeaadZadXadFadnadkadjadgaeRaeVaeeaiSaecaebaebaebaebaebaeWaThafZavAaQsaQsaQsaQsafEamlbmEaYlbBKboYbCHamlaaeaptanoadfafmaptaaaaaeaaeaaeaaeaaeaaeaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaKBaKBafUaKBaaeaaaaaeaaeaaeaaeaaeaKBafUaoFaoFahdahfaoFaoFaoFaoFbrTahbbKoaeJabKagqaiWbrTajAaKBbHMaKSaqhaKBaKBacuacsaidahEafQafQafQaeMaeMadWabhacPacIaghaeEaeFafYafbaemaenaeoabvaenacBafkaexafSafzafoafnafqafpazZaeGabzafjahVacTacTaaQaaQaaQaaQaocadradradradraeaadZadXadFadnadkadjadgaeRaeVaeeaiSaecaebaebaebaebaebaeWaThafZavAaQsaQsaQsaQsafEamlbmEaYlbBKboYbCHamlaaeaptanoadfafmaptaaaaaeaaeaaeaaeaaeaaeaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaKBajtafNaKBanLamsamsamsamsamsajsaKBbrSaeZaKBaeTaDnaefbMeaspaKBbwqaedbMbaKBardaKSafuafdaeOaKBaeuaiWaehaKBaeDacsadYahLabladrabiafQabjabnaerabhassadTadUaeAaeNadQaeIadOaeBaevaaDaenaaXafsaexaezadRadPadNadMadLadJadKadJadIadHafaadEadEaepadBaaQaocadrabXabWaklabcabcabcabcabcaciacmacfabcabcabcabcabcabVavAabUacbadlavAavAaQsavAaetabfacnaQsasLarWaDwaBJabZathaYkamlcgaaptaccadearbaptaaaaaeaaaaaaaaaaaeaaaaaeaaaaakaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaeaaeaaaaaaaaaaaaaaeaaeafUanparVarlayTaXOaXOaXOaXOaXOamHaeUaeqaeCacradVabmaXOacqaXOabPacaaaIadradradradradradradradradradracAadraaNadradradradradradrafQabGaaYaerabhacPacIacJacQaeSacSadoacFaeyacHabQacDacEaegaduadzaqxadcadaadtadmacWacVacYacXacUacTabNadpabNabRaaQaaHaaSaaKaibadsabcaaZaasaaVabyabxabrabdabcabBaatabAabcavAavAaQsaThabfaUoavAaQsavAadlaQsabOaQsagCafrancamlamlapTarRamlabkaptaptaazaaAaptarNcgaarNarNacMarNaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaeajGajGaaeaaeajGaaeaaaaaeaaeaaeaKBaKBaBPaKBaKBasWasXasXasXasXasXasYaKBaKBaKBaKBaGraGCaGCaGCaGCaGCaGVbQSadraInatDatEatFawpatGatIasaaFiaxAascapcadrdBfapiaYyappdBnaqdapZaowaeraoraosabvabQatpabvabvaEratraDmazpabvaEJaAoaexaexaaQazuaszaslazuaaQazCazBaaQazyacTacTaAbaAbaAbaaQaaQbbXadradsauqaYjabcarmauoaumaulaukaDYarHausautauuarFabcbcAavAaufaddacoadGavAbaCavAavAavAbvSavAagCcfIcfEcframlamlamlamlbaCaUoaQsaubatRarNarOabSaucarNcsgarNaaeaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa @@ -10629,16 +10629,16 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaQNcEwbCJbCZaQMbmNbueaEUaQPbJGbCdaEUaEUaEUbuwbDAbEmaKBcoLasdaKBaaeaFaaFaaFaaFaaFaaFaaFaaaeaaebpMaPvaQTaJoaJpbtAaSrbmXbopbozblLaPyaPyaPyaPyaPyaKBbsbbsgbshbsdbsdbrQbrRbrNbLjbHobHqaaaaaaaaaaFsaFscLpaFsaFsaaaaaaaaabEdbEwbHvblTaChbroavlarPbmfaojaojbsDbsIaojaChbkcbsjbslbrPbsrbonbsrbsvbECboqbsmbsrbsrbsrbsrbsrbsrbsJbsPbzGaCWaCWaCWaCWapJaCWaCWaCWaCWavAacjarNbARbAdbAdbtabsZbsVbsTbsSbtkbtlbvubtnbteawMawNaPoasPaaaaaeaaeaaaaaaaaaaaaaaeaaaaaaaaeaaeaaaauBasPdfPaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaFvbCzaIlaGpaaaaaaaFUaaaaaaaaaaaaaJUaaaaaaaaaaaaaFUaaaaaaaGqaIlaGpaFvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaQNaQNaSiaShaQNaQNaQNbvfaQNaQNbFublSaQNaQNaQNbFraQNaQNbuSaQNaQNaaeaFaaFaaFaaFaaFaaFaaFaaaaaaeaZpbqlaJnaKvaKvaKwaKvaIeaJuaIebuKaPybrvbqdbmtbmOaKBasNaYhbtCbtDbtFbtrbtsbttbLlbtxbjlaTLbINaTLaNnbEXbukbImaNnaTLbINaTLaxwbuhbwRbuiaoaaoaaoaaoaaoabtMbtUbufaojbCWaoabkcbtLbtHbuHaCZaCZaCZaCZaCZaCZaCZbuFbuGbuLbovbuBbuDaCZaPpaPpavAbuOaXNbYbborbYbcLtbYbbASbYbbuqarNaNLaNLaNLaNLbuvbuubPnbuybuVbuWbuUaAJbuTavEasPasPasPaaeaaeauBaQIauBauBauBauBauBauBauBauBaaFasPasPdfPaaaaaaaaaaakaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaFvbCzaIlaGpaaaaaaaFUaFUaFUaFUaFUaJUaFUaFUaFUaFUaFUaaaaaaaGqaIlaGpaFvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaTpbKzbrsbIdaZfbsfbrsbtfbHybHrbHybHBbIebHybIjbInbIJbwrbISaQNaaaaaaaFaaFaaFaaFaaFaaaaaaaaaeaZpbvgaJnaKvaKvaKwbKvaIeaTAbumbujbwKbtqbtjbxSbyyaKBasNaYhaYhaYhbjqbvMbvNbjlbsHbsabjlbSXbTHbNpaNnbvAaNpbvraNnbNZbIVbvdbIUbvebqFbuZbuYbuMbLGbOTaoaaoaazAbvGazvaoaaoabvDbvEbvFbvDaCZbwybJmbowboCboFavAavAavAavAbbOavAavAavAavAavAavAacjaUoaQsaJzaJzaJzaJzaJzaJzaJzaNLbvZbvUbvTaNLbBpbATaNLbwabvObwtbwtbvQbvRbqNauybLcauyaScauBbirauBatLatMaSfatMatOauBbirauBatPauHdfPaaaaaaaahaahaacaaeaacaahaahaacaacaahaahaahaacaaeaaeaaeaaeaaeaFvaMibIiaLIaLIaLIaLIaLIavcavcavcbwpavcavcavcaLIbwsaLIaLIaLIbHdaFLaFvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaeaaaaXFbwBaUMaUMbMnaUMaUMaUMaUOaYbbMFbMEbKcbKcbKcbKnbLHaUQbyFaQNaaaaaaaaeaaeaaaaaaaaeaaaaaeaaeaZpbxlaJnaKvbVqbxaaGDbxgaGDbuAbqmbEzbGdbwnbDabBzaKBcLAbxbbOSbITbxebuzbwXbvhbwbbsKbtOaVkcdbaVkbBNbBMaVsbziaVtaVkbJRaVvbwMaVxbLZbuEaVAaVBaVCaVDaVDaVDbvbbpcaVDaVDaVHaVDbpbboQaVDboJaVDbwvboGavAbpTcLUbpVbBsbpUbqybpUbqObpUbqRaXvbASbuqaThaQsaJzbxBbxJbxLbpSbxObxPaNLbzHbxpbxpbOdbxpbzIaNLbxubuVbzkaHoaHoaHoaHoaHoaRfasPaTnatMaToatMauGasPasPasPaTnatMauGatPatPasPaaeaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaFvbCzaIlaGpaaaaFUatXatXayKbJjaweaxxbBLbJjbqpatXaGvaFUaaaaGqaIlaGpaFvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaeaaaaXFbwBaUMaUMbMnaUMaUMaUMaUOaYbbMFbMEbKcbKcbKcbKnbLHaUQbyFaQNaaaaaaaaeaaeaaaaaaaaeaaaaaeaaeaZpbxlaJnaKvbVqbxaaGDbxgaGDbuAbqmbEzbGdbwnbDabBzaKBcLAbxbbOSbITbxebuzbwXbvhbwbbsKbtOaVkcdbaVkbBNbBMaVsbziaVtaVkbJRaVvbwMaVxbLZbuEaVAaVBaVCaVDaVDaVDbvbbpcaVDaVDaVHaVDbpbboQaVDboJaVDbwvboGavAbpTcLUbpVbBsbpUbqybpUbqObpUbqRaXvbASbuqaThaQsaJzbxBbxJbxLbpSaFHbxPaNLbzHbxpbxpbOdbxpbzIaNLbxubuVbzkaHoaHoaHoaHoaHoaRfasPaTnatMaToatMauGasPasPasPaTnatMauGatPatPasPaaeaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaFvbCzaIlaGpaaaaFUatXatXayKbJjaweaxxbBLbJjbqpatXaGvaFUaaaaGqaIlaGpaFvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaeboibojaPBaWgaQNaTpaWhaTpbwBaUMaWLaWYaTpaWhaTpaQbaWlaWmaVyaKBaKBaKBaKBaWpaWqaWraKBaKBaKBaKBaZpaORaOUaOVaOSaOTaKvaOkaPzaOmaOlaPyaPyaPyaPyaPxaKBaKBaSuaKBaKBaWCaOQaOOaWKaMhaWWaWVaWKaMhaOFaOHaWWaOIaWKaWKaWKbbLaWNaOKazxaITaBjaWSaWTaWKaWKaWKaWKaWUaOAaWKaWKaWVawgaOBaWKaWKaWKaWKaLeaKLaVMaVMaVMapJaVMaVMaVMavAaKJavAacjavAavAaHUaHUaHUaHUaOyaOuaOuaOtaKdaUEaNLaOdaTwaROaQFaSbaStaNLaSjaNSaNRaHoaUIaVZaNMaHoaNQasPasPasPasPasPasPasPbUhasPasPasPasPasPasQasPaaeaFvaFvaacaFvaFvaFvaFvaacaFvaFvaFvaFvaacaFvaFvaFvaFvaFvaFvaFvaFvaMiaIlaGpaaaaFUatXaweaxqaCRaxtaxraxuaCRaxvaweaGvaFUaaaaGqaIlaGpaLKaLKaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaULaaeaaaaaeaaaaXFbeNaXFaVgaVgaUTaVbaXFbeNboiaXKaQNaXLaVEaOaayTaXObSSaXOaRXaXObSCaNJaXOamHaNraNsaBmaKzaQhaySaUPaNqaHfaNDaNEaHfaNNaKcaHfaOvaOxaOwaOLaOzaSWaUHaYpaNzaNCaNCaFSaFJaNHaNGaNeaNgaLNaUsaUsaUsaUsaUsaUsaUsaLsbSBaSYaSYaSYaSYaSYaSYaSYaSYaSXaOraNiaTjaSYaNjaSXaSYaSYaLdaYGaUFaVMaJgaJVaJOaIXaIVaVMaOjaMxavAbQWavAaaaaHUaINaIKaHUaMAaOgaMFaMyaMwaKaaNLaMTaMUaMVaMWaNXaQKaNLaQuaMoaLPaHoaSEaMkaMfaHobMQaHFaHFbKXaHFbJQaHFaHFaHFbPMaHFaMpaMqaMpaMqaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaFvaaaaMcaMbaIlaGpaaaaFUatXaNyawqatXawlawkawjatXbycaODaGvaFUaaaaGqaIlaLLaaaaLKaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaeaaeaaeaaeaaeaaaaULaWhaZhaSlaSlaSlaSlaZiaWhaULaaaaQNaZjaSeaZlaZlaZlaZlaZlaZlaZlaZlaZmaNaaHfaHfaHfbhAbhFbgeaHfaHfaNxaHfaTHaTFaTGaTDaTEaTvaTuaGRaGQaWnaTtaSWaRmaYpaRpaZNaZNaTRaZNaRoaZLaZLaRqaZLaYgaXtaXtaXtaXtaXtaXtaXtaXtaXtaXtaXtaXtaXtaXtaXtaXpaZTaZTaZUaZTaZTaZTaZTaZTaZTaEMaYpaRkaVMaXGaZCaUUaZDaOCaVMbbRbbMavAacjcgaaaaaQGaQHaQLaRaaNVaNIaNPaRdaRbaOpaNLaQxaQzaQwaQwaQBazfaNLaQAaRgaQAaHoaRhaRjaXHaHobXUasPasPasPasPasPasPasPasPasPbtpasPasPaRfasPaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaeaaeaFvaOXaQraQoaUVaFUaFUaFUatXaTsawfavmatXatXatXauZavdaSHaGvaFUaFUaFUaUYaXfaFLaFvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaAbaBbJcbaBbaDbaBbaBbaDbaBbJcbaEbaFaQNaZjaXabaHaOPbaJbaKaQkaQjaSGaZlbUnaPFaPVaPWaPQaPJaPQaPQaPSaPQaQCaHfaQVaQlaQqaQvaQyaREaReaSyaSnaRcaKTbbcaHiaQaaPZaZNaQcaIBaNFbaOaZLaTfaQdaTLaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaZTbdnbbCaURbflbdDbdpbdoaZTaWabbFbbGaVMaPdaMsaMraMtaPKaVMavAavAavAaudavAaaaaHUaPbaLiaHUaPeaMvaPhaPkaPjbbqaNLaSxaSCaSzaTbaPCazeaNLbwtaPNbwtaHoaPMaPPaPOaHoaJqaJqaJqaawadqaaaaaaaaaaaaaaeaaaaaaasPaMqasPaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaNKaNKaKpaNZaIlaMCaLJaaaaaaaFUaPaaEjaWZatXatXaSUatXatXbycaPAaOZaFUaaaaaaaOiaIlaGpaFvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaakaaaaaaaaaaaaaaaaaaaaaaaabaAbaEbaBbcjbckbckbclbcmbcnbcobcpaGObckbcqbcraTpaZjaSeaMPaRJaRFaRKbcxaRAbczbCLbaeaTlbCNaHtaHtaIaaIbaHIaHfaHfaHfaHfaHgaHraHsaHjaHqaGZaGXaGRaGQaHdaHbaHaaIHaYpbRAaZNaHHaIDaMeaIzaItaDPaIuaEFaaeaaeaFhaFIaFraGsaZPaGGaGyaGsaZPaGGaGMaGMaGWaaeaaeaZTaICaLAbdqaIAbdqbdraSvaZTaIpaYpaHmaVMaVMaFAaFzaFyaVMaVMaHzaFBaVaaIkaVaaVaaHUaHUaHUaHUaJzaJzaJzaIhaFxaJzaNLaNLaNLaNLaNLaOJaPcaNLaHpaHvaHpaHoaHwaHlaHkaHoaHnaHxdBLdBvdBvdBKaaaaaaaaaaaeaaaaaaaaaaaeaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaeajGaJJaJEaIqaJEaJTaGpaaaaaaaaaaFUaImaweaJBaJWbBfbBgaJQaJWaxsaweaGvaFUaaaaaaaGqaIlaGpaFvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabcqbecbedbeebckbefaEdbefaEdbefaEdbefbckbegbehaXFaZjaQUaZlaFGbekaQRbemaQEaFHaZlaXQaEcaFWaFXaGdaGiaHyaHAaGzaFmaFpaMLaFEaFKaIfaFPaFQaGBaGAaGFaGEaGIaGHaGNaHiaYpaRnaZNaGKaFwaYDaJPaZLaDNaFdaTLaaeaaeaHBayIaAeaugaupambartawLaxlavtavuaAYaHCaaeaaeaZTbfiaClbfkaGTaGLaDVaDzaZTaEMavgaGwazgbfAaExbfAbfwayfaEwbfAbfAbfAaEKbfAayuaEDaMHaJGbfAbfAaCSayubfwaEKaELaxXaCSaybaMSaTmaziaFoaKQaFnaFlaFkaETaEhaDZaDaaFgbcebcebAodBBdBzdBJaaaaaaaaaaaeaakaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaeaaeaaeajGaJJaJEaGbaJEaJKaGpaaaaaaaaaaFUaGfaGgayKaEiaNBaJMaNUaEkayLatXaGvaFUaFUaFUaFUckMaFLaFvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabcqbecbedbeebckbefaEdbefaEdbefaEdbefbckbegbehaXFaZjaQUaZlaFGbekaQRbemaQEbjhaZlaXQaEcaFWaFXaGdaGiaHyaHAaGzaFmaFpaMLaFEaFKaIfaFPaFQaGBaGAaGFaGEaGIaGHaGNaHiaYpaRnaZNaGKaFwaYDaJPaZLaDNaFdaTLaaeaaeaHBayIaAeaugaupambartawLaxlavtavuaAYaHCaaeaaeaZTbfiaClbfkaGTaGLaDVaDzaZTaEMavgaGwazgbfAaExbfAbfwayfaEwbfAbfAbfAaEKbfAayuaEDaMHaJGbfAbfAaCSayubfwaEKaELaxXaCSaybaMSaTmaziaFoaKQaFnaFlaFkaETaEhaDZaDaaFgbcebcebAodBBdBzdBJaaaaaaaaaaaeaakaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaeaaeaaeajGaJJaJEaGbaJEaJKaGpaaaaaaaaaaFUaGfaGgayKaEiaNBaJMaNUaEkayLatXaGvaFUaFUaFUaFUckMaFLaFvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabfPbckbckbJcbckbefaEdbefbfQbefaEdbefbckbegbehaXFaQQaQpaZlbfSaQnaTzaKxaTzbaHbaHaNcaNvaNxaHfaNuaNfaIIaMXaMZaMKaMNaHfaOqaLWaMZaHjaLVaHfaLTaLqaKVaKUaMnbbcaIHaYpbRAaZNaLSaIoaSwaLMaZLaIPbbsaTLaZPaJwaZPaNAaMBaNhaBCaNmaNwaMBaBCaNhaNmaLEaZPaJwaZPaZTaYtaYtaYtaIxbgAaOsbgCaZTaPlaLZaLYaLbbgMaJHbgMbgObgMaLcbgMbgMbgMaKKbgMaLvaIjaLgaLfbgMbgMaIJaQmaIiaKKbgSaKKaKOayOaKPaTmawaaKWaKWaKZaLxaKWaKWaLzbbEaMjaLDbcebcedBsdBvdBvdByaaaaaaaaaaaeaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaJIaaaaaaaaaaaeaLJaLJaKpaJRaIlaGpaaaaaaaaaaFUaFUaImatXatXatXaTxatXatXatXatXaLHbwsaLGaaaaGqaIlaGpaFvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabcqbhkbedbeebckbefaEdbefaEdbefaEdbefbckbegbehaXFbhlbhmbhnaKeaKbaJZaJZaKgaKfaKebcCaKiaKkaHfaKyaNtaJNaQSaKmaIRaISaHfaILaHLaIwaIOaPnaHfaKHaKNaKIaKFaKDaSWaKEbbFaKlbleblebleblebleaZLaHDaHcaKobhUaECaEEaDTaBCaBCaBCaBCaDdaBCaBCaBCaBCaJyaJxaIgaZPbIBbGYbFwbEFbDeaKjaPfaNoaZTaFCaPwaKnazsbiwaGxbiwaGjbiwaMYbiwbiwaIUbiwbiwaOGaKXbiwaIraIUaFOaHhaOGaGjbiwbiyaPiaPmaIYaEuaJaaFjaJcaJdaJfaMjaJlaJlaJhaZbaFtaJqaTmaTmaTmaawaHTaaaaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaaaIZaIWaJAaJvaJDaJCajeaJFaIlaFUaFUaFUaFUaFUaJXaLFaJXaJXaLwaLyaLwaMQaMQaNWaMdaMgaJUaaaaGqaIlaGpaFvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabiTbiUbaBbcjbckbckbiVbckbiWbiXbckbiYbckbcqbiZaULaZjbjabmsbbpbbrbbzbbtbbnbblbbpbmPbjkbaXaHfbiobiIaSkbixaHfaHfaHfaHfaHfbiIbnObjEaHfaHfbbcbbbbbabbhbbebbdbbiaYpaXoblebhBbjibjhblebbybeEbjQaQZaZPbdLbdQbeibeobfabfcbfVbgsbfcbfcbgtbeobgvbgubgwaZPaZTaYtaYtaYtbljaYtaYtaYtaZTbmTaYpbahbkdbcTbezbcTbkdaSaaSaaSaaSaaSaaSaavAavAbcSavAavAavAbhobgGavAavAavAbdmavAbddbdgaUSbdaaTCbcYbcVbhuaJlaXubcRbcQaZbaSmaJqaTmbhsbcFbeuaTSaTSbcUbeaaaaaaeaaaaaaaaeaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaeaaaaIZbcLbcDaaaaaebcubbHbfWbbBbhNbrKaJXbhibkYbfDbhdbhhbhqaJXbofbmbbgNbinbnLbhWbhWbiuaJUaaaaGqaIlaGpaFvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabiTbiUbaBbcjbckbckbiVbckbiWbiXbckbiYbckbcqbiZaULaZjbjabmsbbpbbrbbzbbtbbnbblbbpbmPbjkbaXaHfbiobiIaSkbixaHfaHfaHfaHfaHfbiIbnObjEaHfaHfbbcbbbbbabbhbbebbdbbiaYpaXoblebhBbjibxOblebbybeEbjQaQZaZPbdLbdQbeibeobfabfcbfVbgsbfcbfcbgtbeobgvbgubgwaZPaZTaYtaYtaYtbljaYtaYtaYtaZTbmTaYpbahbkdbcTbezbcTbkdaSaaSaaSaaSaaSaaSaavAavAbcSavAavAavAbhobgGavAavAavAbdmavAbddbdgaUSbdaaTCbcYbcVbhuaJlaXubcRbcQaZbaSmaJqaTmbhsbcFbeuaTSaTSbcUbeaaaaaaeaaaaaaaaeaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaeaaaaIZbcLbcDaaaaaebcubbHbfWbbBbhNbrKaJXbhibkYbfDbhdbhhbhqaJXbofbmbbgNbinbnLbhWbhWbiuaJUaaaaGqaIlaGpaFvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabiTbaBbJcbaBbaDbaBbaBbaDbaBbJcbiUbkDaQNbiabkFbkGaSWbbTaYOaTaaYObbPaSWaZcaXYaZdbaibkXbizaYLaYMbkmbizbjJbkAbizbkXbkXaYNbkXbagaXZaYIaYFbkObkXbjYbibblcbRAaTIbcBbdcbcObleaTLaTLaTLaTLaZPaZuaZxaYJaZsbaSbaWbndaZMbbkbcvbbjaZsaWGaWDaWdaPYaZTblCblDblEbigaPRaYtbijaZTbkhaYpaOMbaIbaGbctbgibkdbawbazbfrbaubatbavaSRcixbDEavAaUqaUnbeDchJchOavAabkbaravAbambaobapbaqbakbakbakbfqbfoaJlaJlbggbfnaPgbgabfYbeGbeybcgbbxbbxbbSbbQbaPaYxbaPbaPaYxbaPbaPbaPbaPbaPbaPaYxbaPbaPbaPbaPbaPbaPaYxbaPbaZbbIbbxbbxbbxaYdbdZbejbebbebberbfsbnhbcfbcibdSbdTbdUbdVbdWbdYbbWbbYbbZbcbbccbcdaYZaLIaLIbrJaFLaFvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaeaaeaaeaaeaaaaTpaWhbmpaSlaSlaSlaSlbmqaWhaTpaaaaQNbyKbmrbruaSWbrgbdKblPbdKbspaSWbsxbjxbfubmCcofbrEbmDbmCbmCbfxboMbmGbmBbmCbmCbfvbmCbmCbmCbfzbfybmKbmKboXbBebdPbnUbleblpblobkrblebjXblublvblybtIbbjblqbaSblrbmYbmZbndblGbndblzblQbmSbnHbnjbnJaSZaZTbfIbnnbnobnpaTraZTaZTaZTaEMbnraWQbkdbfRbfObgIbkdbzcbyHbgLbgrbvxbgkbgjbgHbgFbgEbgDcokbhabkTbgYbhebhgbhbavAbddaYabzfaTmaFTbgVaXxbgJbgTbcZbgxbgcbmmaZbbafbadbkybjDaFLaaaaaabgKbcDaaaaaeaaaaaaaaeaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaeaaaaVNbeUbeaaaaaaeaGqbfLbuobulbtzbtvbsXbrObwZbxnbwTbwVbsNbwSbvKbvLbsCbvJbvIbhWbvlbvsaJUaaaaGqaIlaGpaFvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaeaTpaaeaaaaaeaaaaXFbzWaXFbpQbqcaVgbpAaXFbzWboibojaQNaZjbwJbpwaSWbqTbdKbdFbdKbpzaSWbpPbhVbdAbdBbosbmobkVbdwboxbdCbnCboabosbosbosaWPbosbmnbohbkVbdvbosbosbnDboAboBbnUblebbubbVbbfboNbbfbbvbbfbbfbtIbjLbjMboLboLboLbjObppbeJbdEbjNboLboLboLbjKbjIaZPaZTblKboTboUboVboWaZTclackEbaYbpaaWQbcTbeIbeObeMbkdbeRbfEbfCcocaSaaSaavAavAaTUavAavAavAcnPbjpavAavAbeFcgSavAbeAaYabeBaTmaJqaJqaJqaJqbeCaJqaJqaWRbjraZAaTmaTmbffbfebfFaaaaIZbfGaaaaaaaaeaaaaaaaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaaaVNbeUbeaaaebeSbesbqSbexbqKbtBaJXbrbbqfbqhbqvbkIbhXaJXbkBbpCaJLaMQaNkbqobhWbiuaJUaaaaGqaIlaGpaFvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa @@ -10687,14 +10687,14 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacDjcDjcDjcDjcDjcDjcDjcD aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacDjcDjcDjcDjcDjcDjcDjcDjcDjcDjcDjcDjcDjcDjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaFvaaeaaeaaeaaeaaeaaabYwbYwbYwbYwbYwbYwbYwbYwbYwbYwbYwbZlcpWbYwcqucpKcLscLrbWKctvdRLdAPdARctjdNadNbdMZcoCdMXdMWdMWdMWdMYcoCdNcdEKdEMcnRdENcnNcNBcpbdOfcmScmScmSdBtcmTcmTcmTcOAdAdcqGdNodOVdOddOecEPcnVcnTdOndNrbJDdOndNvdNwdoBdovcqQdovdovdovdNudOjdOhdOidNtaaeaaeaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaeaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaecYFdpecYFaaeaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacDjcDjcDjcDjcDjcDjcDjcDjcDjcDjcDjcDjcDjcDjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaeaaaaaaaaaaaeaaeaaaaaaaaaaaeaaaaaabYwbQLdECcshcLPcJYcpDcpCcpzcpydRKdEFdEGctjcKjdAmcJUcoCdNYdNCdNBdMQdMTcoCdMVcKOcKOcxJdMUbTScLkcjcdNEdNfdRJdNGdNhdBAcLvcLYckUbTXcrEcrFbUpdNIdNMdLhdNJdNJdMfdMydMRdMSdLpdLRdOMdOTdNQdNRdNSdLodNOdNOdNOdNPdOgaaeaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaeaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaecYQcYFdsCcYFcYQaaeaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacDjcDjcDjcDjcDjcDjcDjcDjcDjcDjcDjcDjcDjcDjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaeaaaaaaaaaaaaaaeaaaaaaaaaaaeaaaaaabYwbZhdKabYwcuecqqdCIcOccsbcrDdRocrBdMkctjctjcryctjcoCcoCcoCcoCcoCcoCcoCdATcxJcxJcnpcrmcrncnqcjcckUckUckUcOAdBGckUckUckUckUcrpcjecqldHBdssdptdsgdshdspcBCcBFdsedsfcLmcOecKJdsrdtidtkdoPdsEdtJdufdoVdpcduiaaeaaeaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaecsGcszcsFcsHcsKcszcsGaaeaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacDjcDjcDjcDjcDjcDjcDjcDjcDjcDjcDjcDjcDjcDjcDjcDjcDjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaecwucwucwucyJcwucwucwuaaaaaeaaaaaaaaaaaeaaaaaabYwcizcpWbYwbSxdnEcqqdMicqIctvdmVdnddnDctvdmJcrdcqXckOclIclKclIdMjclIcwBclKcwAckOclPbYMbTSbRFdJWcjSdnJdRncvbdBEdJUdQydERcvJcqUbSTcqDdHAcAecAecBlcAbcAccxlcxBcxNcyycyCczHdoBdpvdpwdpxdHAdpydqGdrbdovdrxdovajGaaeaaaaaaaaeaaaaaaaaeaaeaaeaaaaaaaaaaaaaaaaaeaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaeaaecrScrTcrVcrWcrWcrWcstcrScrTaaeaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacDjcDjcDjcDjcDjcDjcDjcDjcDjcDjcDjcDjcDjcDjcDjcDjcDjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaecwucwucwucyJcwucwucwuaaaaaeaaaaaaaaaaaeaaaaaabYwcizcpWbYwbSxdnEcqqdMicqIctvdmVdnddnDctvdmJcrdcqXckOclIclKclIdMjclIcwBclKcwAckOclPbYMbTSbRFdJWcjSdnJdRncvbdBEdJUcwEdERcvJcqUbSTcqDdHAcAecAecBlcAbcAccxlcxBcxNcyycyCczHdoBdpvdpwdpxdHAdpydqGdrbdovdrxdovajGaaeaaaaaaaaeaaaaaaaaeaaeaaeaaaaaaaaaaaaaaaaaeaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaeaaecrScrTcrVcrWcrWcrWcstcrScrTaaeaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacDjcDjcDjcDjcDjcDjcDjcDjcDjcDjcDjcDjcDjcDjcDjcDjcDjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaFvaaacwudCudCvdCudCrdCucwucwucyJcwucyJcwucwuaaeaaebYwdEecpWbYwbYwbYwbYwbYwbYwbYwdMqduXduRduUduYcAactfckOcDPdBIclIclKclIduAduNcDRckOdBFbYMbTSbRFbRvcsfcsicrzcrzdAycrxdAzdKgcvJbTXcjeckZdrYdoBdoBdoBdoBdoBdowdoBduzdvIcEHdujdoBdovcqQdovdovdBpdBjdBkdBgcEIajGajGaaeaaeaaeaaeaaeaaeaaeaaaaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeczXcBoczXcrWcMocrWcCKcGdcYFaaeaaeaaeaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacDjcDjcDjcDjcDjcDjcDjcDjcDjcDjcDjcDjcDjcDjcDjcDjcDjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaakaaaaaaaaaaFvaaecwudzYdzXdAhdzZdzYdAidAAcEGdzSdzRdzUcwuaaaaaabYwbYwdrHdtrdtrdHDdtrdtsdttbPYdpjdpqdpudpzdpIdqAcsndBecoScyEcoScoScyOcyTdoCdMndoAcsBdRpcnNcyrcsecsecoocuicuidAwcwOcqEbBRcvJbTXcjebBbdoBdvPdzPdCpdCqdBddBadBddAEdAKdstdoBbYvcvpdACcjvdovdovdovdovdovcEuaBVajGaaeaaaaaaaaaaaaaaaaaeaaeaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaeaaecrScrTcyVcrWcrWcrWczrcrScrTaaeaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacDjcDjcDjcDjcDjcDjcDjcDjcDjcDjcDjcDjcDjcDjcDjcDjcDjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaacwuczcdJLdJIdJBczcczcdJzdJsczgdJZbSGcwuaaaaaaaaabYvbYvbYvbYvbYvbYwdKBbYwbYwdADdAFdKbctvdAvdAxcujckOcnGclKclIclKclIcsjcskcLocrGcLCdAGcfBdKtcsecrYcpAcLQcLQdAwcqTcqEcrvcvJdRqcuabCgdrxdvPdzPdwfdwfdwsdvBdvEdvHdvIdJMdoBcuScdXcvobQLdAIbYwaaeaaeaaeaaeaaeaaeaaeaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaecsGcYQcYTcYMcYNcYLcsGaaeaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacDjcDjcDjcDjcDjcDjcDjcDjcDjcDjcDjcDjcDjcDjcDjcDjcDjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaFvaaecwudEUdDSdEAdEydDFdDBdDQdDMdEIcBebBSdAfdAedzVcAhdAfdwbdwFdxxcwudCJdCNctvdvVcrXdzOdDybYwbYwbYwbYwckOclIclKclIcKnclIctDctAcKkckOcJVdAnbTSbYNcsedOpcpAcsucsvctycqzctRcupdwtbBTdCobBUdoBdvPdzPdwfdKfdBddIIdBddAjdIHdAkdoBcvmbQLcvobQLdvubYwaaeaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaecszcYFcYGcYFcYJaaeaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacDjcDjcDjcDjcDjcDjcDjcDjcDjcDjcDjcDjcDjcDjcDjcDjcDjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaFvaaacyJdMddMcdDHdMadMmdMldMhdMedHKdMrdMpdModDCdMudKWdMtdKXdDHdDDdMvdDKdDLdMwdDJdDOdMxcrXbYwdGIbIXdGFbYwbYwbYwbYwbYwbYwbYwcvWbYwbYwbYwdDrbTSbYNcsecsscpAcuicuicLQcxrcGhcLObCMbCPdGDcAxdExdExdExdExdExdExdBUdExdCzdAMdCCdoBbQLbQLdHJbQLbYwbYwbYwaaeaaeaaaaaaaaeaaaaaaaakaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaecYFdpecYFaaeaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacDjcDjcDjcDjcDjaaacDjcDjcDjcDjcDjaaacDjcDjcDjcDjcDjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaacwudKFdKEdKYdKVbCCdLidLldLkdLrdLnbCIcwudDpdDodDqcwudKqdIRcyMcwudBqdIZctvdCsdCxdCydKwbYwdFSdFTdFVbYwdAWbZxdHHcbebZxdKlcARdHIcsldKpdKncwecLkcsedKNcrhcsycsycsycxmcvLcwRdwybCldDxcASdJhdBxdKsdLsdLJdLOdJbcBPbYidAUdHGdILclpclpbCidLjbCjcwpbYwbYwbYwajGaaaaaeaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaeaaeaaeaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacDjcDjcDjcDjcDjaaacDjcDjcDjcDjcDjaaacDjcDjcDjcDjcDjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaecwucACcAGczccAFcACcADcAydEOcAlcAwbLqcwucExaaaaaabYvbYvbYvbYvbYvbYwcwCbYwbYwbYwbYwbYwbYwcmmcwNclhbYwcwobYwbYwbYwbYwbYwbYwbYwbYwbYwczJczZczDczFdMbbJWcsJcplcuidqicmHcnLcvJbVfdAVdKicAIdIxdIPdIQdIMdIOdGmcBPclwcxCbYwbYwbYwbYwbYwcwNdEZclTbPlcmnbPlcEyaaeaaeaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacDjcDjcDjcDjcDjaaacDjcDjcDjcDjcDjaaacDjcDjcDjcDjcDjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaecwucACcAGczccAFcACcADcAydEOcAlcAwbLqcwucExaaaaaabYvbYvbYvbYvbYvbYwcwCbYwbYwbYwbYwbYwbYwcmmcwNclhbYwcwobYwbYwbYwbYwbYwbYwbYwbYwbYwczJczZczDczFdMbbJWcsJcplcuicxscmHcnLcvJbVfdAVdKicAIdIxdIPdIQdIMdIOdGmcBPclwcxCbYwbYwbYwbYwbYwcwNdEZclTbPlcmnbPlcEyaaeaaeaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacDjcDjcDjcDjcDjaaaaaaaaaaaaaaaaaaaaacDjcDjcDjcDjcDjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaacwucBmcBnczccBncBhcBiczcczccBcczcczccwuaaeaaeaaebYwcmzcdYdIndFUcBJcBIclpcBLcBHcEzdKubYwcogbJbbGwcBDcwMbYwcAZcBbcBabYwcAXcAYcANbYwcALcAMcAHczFbPScEFdBucsAcuicmQbYvdFnbYvbWacvVclqcAIcAtdNVcmxcAgczkcDgcBPbQLdFXbYwcmIcmwcpkbYwdDZbApdCDbYwbYwbYwajGaaaaaeaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaacwucCacCbczccBRcCecBibRabRWcBNcJTcBMcwuaaaaaeaaabYwcxRdGbcxQcybcxWbNGdGcbNGbNGcxOdFXbYwbYwbYwbYwbYwcwobYwcCjcClcCycCzcCAcCBcwDcCfcCgcChcCibYvbYvbYvbYvbYvdGdbYvbYvctGbYvcvKcwPbWBcBPcBPcBPcBPcBPcBPcBPcBPbQLcrQdJncAjcAddGecygcygbAscyicygaaaaaaaaaaaaaaeaaeaaaaaaaaeaaaaaaaaeaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaFvaaacwucCWcCXczccCXcCWcCYcCZcDacCCcCJbAycyJaaaaaabGhbYwcAAbYwbYwbYwcAEbYwbYwbYwbYwcwmcAncAmcDbdIKcAmdGgcBfcDMcDLcvhcJScKdcGccGlcDwcDwcDkcKfcDIcAQcDGdGjclpclpcBkclpdGrcslcytdGqcymcykcytcyoclpclpdGpdILclpclpclpcudbYwbWNctVcswcygcyubAzcywcygaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa @@ -10895,7 +10895,7 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadxfdwPcKbcKocKmdwKdwKdwKdwKdwKdwKdwKcKmcKocKbdwMdxbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadxfdwQdxgcKrcKscKtcKudwKdxccKmdwKcKxdxddwQdxbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadwLcKzcKAcKBcKCdwKcKmcKmdwKcKxdwLaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadwLcKDcKEcKEcKudwKcKxcKFdwKcKxdwJcKGcKGcKGcKGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadwLcxFcKEcKEcKudwKcKxcKFdwKcKxdwJcKGcKGcKGcKGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadwLcKHcKEcKEcKIdwKcKxcKFdwKdwKcJXcKGcKGcKGcKGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadwVdwQdwQdwQdxgdwKcKmcKmdwKcKxdxhcKGcKGcKGcKGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadwLcKKdwKcKKdwLdwKcKxcKFdwKcKxcKLaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa From b0683c2d8bb23338ffcb33ee9df0c65348f00a75 Mon Sep 17 00:00:00 2001 From: WJohn Date: Thu, 6 Nov 2014 05:12:25 -0500 Subject: [PATCH 070/102] Fixes #5706. Updates metastation wizard den to be the same as box's. --- _maps/map_files/MetaStation.v39K.dmm | 343 ++++++++++++++------------- 1 file changed, 183 insertions(+), 160 deletions(-) diff --git a/_maps/map_files/MetaStation.v39K.dmm b/_maps/map_files/MetaStation.v39K.dmm index fa85baffb84..893c87b77db 100644 --- a/_maps/map_files/MetaStation.v39K.dmm +++ b/_maps/map_files/MetaStation.v39K.dmm @@ -7008,6 +7008,7 @@ "cEN" = (/obj/structure/table,/obj/item/stack/packageWrap,/obj/item/stack/packageWrap,/obj/item/stack/packageWrap,/obj/item/stack/packageWrap,/obj/item/stack/packageWrap,/obj/item/weapon/hand_labeler,/turf/simulated/floor{icon_state = "greenfull"},/area/hydroponics) "cEO" = (/obj/machinery/firealarm{dir = 2; pixel_y = 24},/obj/machinery/atmospherics/unary/cold_sink/freezer,/turf/simulated/floor{dir = 2; icon_state = "warning"},/area/toxins/mixing{name = "\improper Toxins Lab"}) "cEP" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/obj/machinery/atmospherics/pipe/simple/general/visible{dir = 5},/turf/simulated/floor{icon_state = "white"},/area/toxins/mixing{name = "\improper Toxins Lab"}) +"cEQ" = (/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "snow"},/area/space) "cER" = (/obj/structure/disposalpipe/trunk{dir = 1},/obj/structure/disposaloutlet,/turf/simulated/floor/plating/airless,/area/space) "cES" = (/obj/structure/disposalpipe/segment,/turf/simulated/floor/plating/airless,/area/space) "cET" = (/obj/effect/step_trigger/teleporter/random{affect_ghosts = 1; name = "escapeshuttle_leave"; teleport_x = 25; teleport_x_offset = 245; teleport_y = 25; teleport_y_offset = 245; teleport_z = 6; teleport_z_offset = 6},/turf/space/transit/north/shuttlespace_ns9,/area/space) @@ -7306,6 +7307,7 @@ "cKA" = (/obj/structure/stool/bed/chair{dir = 1},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/centcom/evac) "cKB" = (/obj/structure/stool/bed/chair{dir = 4},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/centcom/evac) "cKC" = (/obj/structure/table/reinforced,/obj/item/weapon/clipboard,/obj/item/weapon/stamp,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/centcom/evac) +"cKD" = (/obj/structure/flora/grass/brown,/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "snow"},/area/space) "cKE" = (/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/centcom/evac) "cKF" = (/obj/structure/stool/bed/chair{dir = 4},/turf/simulated/shuttle/floor,/area/centcom/evac) "cKG" = (/turf/space,/area/shuttle/escape_pod3/centcom) @@ -7438,7 +7440,7 @@ "cNd" = (/obj/structure/flora/kirbyplants{tag = "icon-plant-22"; icon_state = "plant-22"},/turf/simulated/floor/wood,/area/library) "cNe" = (/obj/structure/ore_box,/turf/simulated/floor{icon_state = "bot"},/area/teleporter{name = "\improper Teleporter Room"}) "cNf" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/disposalpipe/segment,/turf/simulated/wall/r_wall,/area/medical/virology) -"cNg" = (/turf/unsimulated/wall,/area/syndicate_mothership) +"cNg" = (/obj/structure/flora/tree/pine,/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "snow"},/area/space) "cNh" = (/obj/structure/stool,/obj/machinery/firealarm{dir = 4; pixel_x = 24},/turf/simulated/floor{dir = 6; icon_state = "whitegreen"},/area/medical/virology) "cNi" = (/turf/simulated/shuttle/floor,/area/shuttle/transport1/centcom) "cNj" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor/plating,/area/medical/genetics_cloning) @@ -7453,10 +7455,10 @@ "cNs" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/door/firedoor,/obj/machinery/door/airlock/research{name = "Toxins Storage"; req_access_txt = "8"},/obj/structure/disposalpipe/segment,/obj/machinery/door/poddoor/preopen{id = "toxins_blastdoor"; name = "biohazard containment door"},/turf/simulated/floor{icon_state = "delivery"},/area/toxins/storage) "cNt" = (/obj/structure/sign/biohazard,/turf/simulated/wall/r_wall,/area/toxins/storage) "cNu" = (/turf/simulated/shuttle/wall{tag = "icon-swall11"; icon_state = "swall11"; dir = 2},/area/shuttle/escape/centcom) -"cNv" = (/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "snow"},/area/syndicate_mothership) -"cNw" = (/obj/structure/flora/grass/brown,/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "snow"},/area/syndicate_mothership) -"cNx" = (/obj/structure/flora/tree/pine,/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "snow"},/area/syndicate_mothership) -"cNy" = (/obj/structure/flora/grass/both,/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "snow"},/area/syndicate_mothership) +"cNv" = (/obj/structure/flora/grass/both,/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "snow"},/area/space) +"cNw" = (/obj/structure/flora/bush,/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "snow"},/area/space) +"cNx" = (/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "snow"},/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "gravsnow_corner"},/area/space) +"cNy" = (/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "snow"},/turf/simulated/shuttle/wall{dir = 8; icon_state = "diagonalWall3"},/area/space) "cNz" = (/obj/structure/stool/bed/chair{dir = 8},/turf/simulated/shuttle/floor,/area/shuttle/transport1/centcom) "cNA" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{req_access_txt = 1},/turf/simulated/floor/plating{tag = "icon-platingdmg2"; icon_state = "platingdmg2"},/area/maintenance/aft{name = "Aft Maintenance"}) "cNB" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 4; initialize_directions = 11},/turf/simulated/floor{dir = 2; icon_state = "neutralcorner"},/area/hallway/primary/aft) @@ -7474,7 +7476,7 @@ "cNN" = (/obj/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/alarm{dir = 4; pixel_x = -23; pixel_y = 0},/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/wood,/area/assembly/showroom{name = "\improper Corporate Showroom"}) "cNO" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/effect/decal/cleanable/oil,/turf/simulated/floor/wood,/area/assembly/showroom{name = "\improper Corporate Showroom"}) "cNP" = (/obj/machinery/door/airlock/glass_medical{id_tag = null; name = "Escape Shuttle Infirmary"; req_access_txt = "0"},/turf/simulated/shuttle/floor,/area/shuttle/escape/centcom) -"cNQ" = (/obj/structure/flora/bush,/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "snow"},/area/syndicate_mothership) +"cNQ" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/machinery/door/poddoor/shutters{id = "syndieshutters"; name = "blast shutters"},/turf/simulated/shuttle/plating,/area/space) "cNR" = (/obj/item/seeds/watermelonseed,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor/plating,/area/maintenance/aft{name = "Aft Maintenance"}) "cNS" = (/obj/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/atmospherics/unary/vent_scrubber{dir = 8; on = 1; scrub_Toxins = 0},/turf/simulated/floor{icon_state = "white"},/area/medical/exam_room{name = "Patient Room B"}) "cNT" = (/turf/unsimulated/floor{icon_state = "greencorner"; dir = 8},/area/centcom/evac) @@ -7489,7 +7491,7 @@ "cOc" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 6},/turf/simulated/floor{tag = "icon-cafeteria (NORTHEAST)"; icon_state = "cafeteria"; dir = 5},/area/medical/medbay3{name = "Medbay Aft"}) "cOd" = (/obj/machinery/door/airlock/centcom{name = "Centcom Security"; opacity = 1; req_access_txt = "0"},/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/evac) "cOe" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor{icon_state = "delivery"},/area/toxins/mixing{name = "\improper Toxins Lab"}) -"cOf" = (/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "snow"},/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "gravsnow_corner"},/area/syndicate_mothership) +"cOf" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/poddoor/shutters{id = "syndieshutters"; name = "blast shutters"},/turf/simulated/shuttle/plating,/area/space) "cOg" = (/obj/structure/table,/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/centcom/holding) "cOh" = (/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/centcom/holding) "cOi" = (/obj/structure/closet/secure_closet/bar{req_access_txt = "25"},/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/centcom/holding) @@ -7506,12 +7508,12 @@ "cOt" = (/obj/machinery/atmospherics/pipe/tank/air{dir = 1},/turf/simulated/floor{tag = "icon-vault"; icon_state = "vault"},/area/medical/virology) "cOu" = (/obj/machinery/door/airlock/medical{name = "Patient Room B"; req_access_txt = "5"},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor{icon_state = "white"},/area/medical/exam_room{name = "Patient Room B"}) "cOv" = (/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/escape/centcom) -"cOw" = (/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "snow"},/turf/simulated/shuttle/wall{dir = 8; icon_state = "diagonalWall3"},/area/syndicate_station/start) -"cOx" = (/turf/simulated/shuttle/wall{icon_state = "wall3"},/area/syndicate_station/start) +"cOw" = (/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "snow"},/turf/simulated/shuttle/wall{dir = 1; icon_state = "diagonalWall3"},/area/space) +"cOx" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/machinery/door/poddoor/shutters{id = "syndieshutters"; name = "blast shutters"},/turf/simulated/shuttle/plating,/area/space) "cOy" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/door/airlock/maintenance{name = "CMO Maintenance"; req_access_txt = "40"},/turf/simulated/floor/plating,/area/maintenance/aft{name = "Aft Maintenance"}) "cOz" = (/turf/simulated/floor/plating{icon_state = "warnplate"},/area/maintenance/aft{name = "Aft Maintenance"}) "cOA" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating,/area/assembly/chargebay) -"cOB" = (/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "snow"},/turf/simulated/shuttle/wall{dir = 1; icon_state = "diagonalWall3"},/area/syndicate_station/start) +"cOB" = (/obj/structure/table,/obj/machinery/microwave,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/space) "cOC" = (/obj/structure/table,/obj/item/clothing/head/that,/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/centcom/holding) "cOD" = (/obj/structure/stool{pixel_y = 8},/turf/unsimulated/floor{icon_state = "cafeteria"; dir = 2},/area/centcom/holding) "cOE" = (/obj/item/device/camera,/turf/unsimulated/beach/sand,/area/centcom/holding) @@ -7524,15 +7526,15 @@ "cOL" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plating{tag = "icon-panelscorched"; icon_state = "panelscorched"},/area/maintenance/aft{name = "Aft Maintenance"}) "cOM" = (/obj/structure/table/woodentable,/obj/item/weapon/storage/fancy/crayons,/obj/machinery/light/small{dir = 8},/turf/simulated/floor{icon_state = "grimy"},/area/chapel/office) "cON" = (/turf/unsimulated/wall{icon_state = "iron6"},/area/space) -"cOO" = (/obj/structure/table,/obj/machinery/microwave,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_station/start) -"cOP" = (/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_station/start) -"cOQ" = (/obj/structure/table,/obj/item/device/flashlight/lamp{pixel_x = 4; pixel_y = 1},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_station/start) -"cOR" = (/obj/machinery/computer/syndicate_station{req_access_txt = "0"},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_station/start) -"cOS" = (/obj/structure/table,/obj/machinery/door_control{id = "syndieshutters"; name = "remote shutter control"; req_access_txt = "150"},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_station/start) -"cOT" = (/obj/structure/computerframe,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_station/start) +"cOO" = (/obj/machinery/computer/syndicate_station{req_access_txt = "0"},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/space) +"cOP" = (/obj/structure/table,/obj/machinery/door_control{id = "syndieshutters"; name = "remote shutter control"; req_access_txt = "150"},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/space) +"cOQ" = (/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/space) +"cOR" = (/obj/structure/table,/obj/item/device/flashlight/lamp{pixel_x = 4; pixel_y = 1},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/space) +"cOS" = (/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "snow"},/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "gravsnow_corner"; dir = 8},/area/space) +"cOT" = (/obj/structure/computerframe,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/space) "cOU" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/stool/bed/chair,/obj/item/weapon/cigbutt,/turf/simulated/floor/plating,/area/toxins/xenobiology) -"cOV" = (/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "snow"},/obj/structure/flora/grass/both,/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "gravsnow_corner"},/area/syndicate_mothership) -"cOW" = (/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "snow"},/obj/structure/flora/tree/pine,/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "gravsnow_corner"},/area/syndicate_mothership) +"cOV" = (/turf/unsimulated/wall/fakeglass{icon_state = "fakewindows"; dir = 4},/area/space) +"cOW" = (/turf/unsimulated/wall/fakeglass{icon_state = "fakewindows"; dir = 8},/area/space) "cOX" = (/obj/structure/table,/obj/item/weapon/reagent_containers/food/drinks/shaker,/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/centcom/holding) "cOY" = (/obj/structure/table,/obj/item/weapon/lighter/zippo,/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/centcom/holding) "cOZ" = (/obj/structure/table/woodentable,/obj/structure/disposalpipe/segment,/turf/simulated/floor{icon_state = "grimy"},/area/chapel/office) @@ -7551,8 +7553,8 @@ "cPm" = (/obj/structure/table/reinforced,/obj/item/weapon/paper_bin,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/evac) "cPn" = (/obj/machinery/door/airlock/glass_command{name = "Cockpit"; req_access_txt = "19"},/turf/simulated/shuttle/floor,/area/shuttle/escape/centcom) "cPo" = (/turf/simulated/shuttle/wall{tag = "icon-swall15"; icon_state = "swall15"; dir = 2},/area/shuttle/escape/centcom) -"cPp" = (/obj/structure/table,/obj/item/weapon/storage/box/donkpockets{pixel_x = 3; pixel_y = 3},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_station/start) -"cPq" = (/obj/structure/stool{pixel_y = 8},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_station/start) +"cPp" = (/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "snow"},/obj/structure/flora/grass/both,/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "gravsnow_corner"},/area/space) +"cPq" = (/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "snow"},/obj/structure/flora/tree/pine,/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "gravsnow_corner"},/area/space) "cPr" = (/obj/structure/table/woodentable,/obj/item/weapon/storage/book/bible,/obj/machinery/light/small{dir = 1},/obj/machinery/newscaster{pixel_x = 0; pixel_y = 32},/obj/machinery/camera{c_tag = "Chapel - Fore"; dir = 2; network = list("SS13")},/turf/simulated/floor{tag = "icon-vault"; icon_state = "vault"},/area/chapel/main) "cPs" = (/obj/item/device/radio/intercom{pixel_y = -25},/turf/simulated/floor/engine,/area/toxins/xenobiology) "cPt" = (/obj/structure/table,/obj/item/trash/popcorn,/turf/simulated/floor{tag = "icon-vault"; icon_state = "vault"},/area/medical/virology) @@ -7569,11 +7571,11 @@ "cPE" = (/obj/item/weapon/reagent_containers/glass/bottle/stoxin,/obj/item/trash/candy,/obj/structure/disposalpipe/segment{dir = 4},/obj/item/clothing/tie/stethoscope,/turf/simulated/floor/plating{tag = "icon-platingdmg1"; icon_state = "platingdmg1"},/area/maintenance/aft{name = "Aft Maintenance"}) "cPF" = (/obj/structure/table,/obj/item/weapon/reagent_containers/food/snacks/sosjerky,/turf/simulated/floor{tag = "icon-vault"; icon_state = "vault"},/area/medical/virology) "cPG" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating,/area/hallway/primary/central) -"cPH" = (/obj/item/device/radio/intercom{desc = "Talk through this. Evilly"; freerange = 1; frequency = 1213; name = "Syndicate Intercom"; pixel_y = -32; subspace_transmission = 1; syndie = 1},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_station/start) -"cPI" = (/obj/structure/closet/syndicate/personal,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_station/start) -"cPJ" = (/turf/unsimulated/floor{icon_state = "bar"; dir = 2},/area/syndicate_mothership) -"cPK" = (/obj/structure/table/woodentable,/obj/item/device/flashlight/lamp/green,/turf/unsimulated/floor{icon_state = "grimy"},/area/syndicate_mothership) -"cPL" = (/obj/structure/stool/bed/chair/comfy/teal,/turf/unsimulated/floor{icon_state = "grimy"},/area/syndicate_mothership) +"cPH" = (/obj/structure/table,/obj/item/weapon/storage/box/donkpockets{pixel_x = 3; pixel_y = 3},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/space) +"cPI" = (/obj/structure/stool/bed/chair/comfy/black{dir = 1; icon_state = "comfychair"; name = "pilot's chair"; tag = "icon-comfychair (NORTH)"},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/space) +"cPJ" = (/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "snow"},/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "gravsnow_corner"; dir = 4},/area/space) +"cPK" = (/obj/machinery/washing_machine,/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/space) +"cPL" = (/obj/item/weapon/storage/fancy/crayons,/obj/structure/table,/obj/item/weapon/storage/fancy/crayons,/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/space) "cPM" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/turf/unsimulated/wall{icon_state = "iron12"},/area/space) "cPN" = (/obj/structure/rack,/obj/item/weapon/storage/fancy/crayons,/turf/unsimulated/floor{icon_state = "cafeteria"; dir = 2},/area/centcom/holding) "cPO" = (/obj/structure/window/reinforced{dir = 4},/turf/unsimulated/floor{icon_state = "cafeteria"; dir = 2},/area/centcom/holding) @@ -7585,15 +7587,15 @@ "cPU" = (/obj/structure/extinguisher_cabinet{pixel_x = -27; pixel_y = 0},/obj/structure/stool/bed/chair{dir = 4},/turf/simulated/shuttle/plating{icon_state = "floorgrime"},/area/shuttle/escape/centcom) "cPV" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 1},/obj/machinery/atmospherics/unary/vent_scrubber{dir = 1; on = 1; scrub_Toxins = 0},/turf/simulated/floor{icon_state = "white"},/area/medical/research{name = "Research Division"}) "cPW" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{req_access_txt = 1},/obj/structure/disposalpipe/segment,/turf/simulated/floor/plating{tag = "icon-panelscorched"; icon_state = "panelscorched"},/area/maintenance/starboard) -"cPX" = (/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "snow"},/turf/simulated/shuttle/wall{icon_state = "diagonalWall3"},/area/syndicate_station/start) -"cPY" = (/obj/machinery/door/window{name = "Cockpit"; req_access_txt = "150"},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_station/start) -"cPZ" = (/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "snow"},/turf/simulated/shuttle/wall{dir = 4; icon_state = "diagonalWall3"},/area/syndicate_station/start) +"cPX" = (/obj/structure/table,/obj/item/stack/sheet/glass{amount = 10},/obj/item/device/multitool,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/space) +"cPY" = (/obj/item/device/radio/intercom{desc = "Talk through this. Evilly"; freerange = 1; frequency = 1213; name = "Syndicate Intercom"; pixel_y = -32; subspace_transmission = 1; syndie = 1},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/space) +"cPZ" = (/obj/structure/closet/syndicate/personal,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/space) "cQa" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/disposalpipe/junction{icon_state = "pipe-j2"; dir = 4},/turf/simulated/floor{tag = "icon-vault"; icon_state = "vault"},/area/hallway/primary/central) -"cQb" = (/obj/item/weapon/paper{info = "GET DAT FUCKEN DISK"; name = "memo"},/obj/structure/noticeboard{pixel_x = -32; pixel_y = 0},/turf/unsimulated/floor{icon_state = "bar"; dir = 2},/area/syndicate_mothership) -"cQc" = (/obj/structure/stool,/obj/effect/landmark{name = "Syndicate-Spawn"},/turf/unsimulated/floor{icon_state = "bar"; dir = 2},/area/syndicate_mothership) -"cQd" = (/obj/structure/stool,/turf/unsimulated/floor{icon_state = "bar"; dir = 2},/area/syndicate_mothership) -"cQe" = (/obj/machinery/door/airlock/centcom{name = "Study"; opacity = 1; req_access_txt = "150"},/turf/unsimulated/floor{icon_state = "bar"; dir = 2},/area/syndicate_mothership) -"cQf" = (/turf/unsimulated/floor{icon_state = "grimy"},/area/syndicate_mothership) +"cQb" = (/obj/machinery/computer/syndicate_station/recall,/turf/unsimulated/floor{icon_state = "bar"; dir = 2},/area/space) +"cQc" = (/turf/unsimulated/floor{icon_state = "bar"; dir = 2},/area/space) +"cQd" = (/obj/machinery/vending/cigarette,/turf/unsimulated/floor{icon_state = "bar"; dir = 2},/area/space) +"cQe" = (/turf/unsimulated/wall/fakeglass{icon_state = "fakewindows2"; dir = 6},/area/space) +"cQf" = (/obj/machinery/vending/coffee,/turf/unsimulated/floor{icon_state = "bar"; dir = 2},/area/space) "cQg" = (/turf/unsimulated/beach/coastline,/area/centcom/holding) "cQh" = (/obj/item/clothing/head/collectable/paper,/turf/unsimulated/beach/coastline,/area/centcom/holding) "cQi" = (/turf/unsimulated/floor{dir = 8; icon_state = "red"},/area/tdome/tdomeobserve) @@ -7605,14 +7607,14 @@ "cQo" = (/obj/machinery/door/airlock/maintenance{name = "Incinerator Access"; req_access_txt = "12"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plating,/area/maintenance/starboard) "cQp" = (/obj/machinery/door/airlock/external{name = "Emergency Recovery Airlock"},/turf/simulated/shuttle/plating{icon_state = "floorgrime"},/area/shuttle/escape/centcom) "cQq" = (/obj/machinery/door/airlock/command{name = "Emergency Recovery Airlock"; req_access = null; req_access_txt = "19"},/turf/simulated/shuttle/floor,/area/shuttle/escape/centcom) -"cQr" = (/obj/structure/table,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_station/start) -"cQs" = (/obj/machinery/vending/cigarette{pixel_x = 0; pixel_y = 0},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_station/start) +"cQr" = (/obj/machinery/vending/cola,/turf/unsimulated/floor{icon_state = "bar"; dir = 2},/area/space) +"cQs" = (/obj/structure/bookcase,/obj/item/weapon/book/manual/wiki/engineering_hacking,/obj/item/weapon/book/manual/robotics_cyborgs,/obj/item/weapon/book/manual/engineering_singularity_safety,/obj/item/weapon/book/manual/detective,/turf/unsimulated/floor{icon_state = "grimy"},/area/space) "cQt" = (/obj/machinery/atmospherics/pipe/simple/general/visible,/turf/simulated/floor/engine,/area/toxins/xenobiology) "cQu" = (/obj/machinery/atmospherics/unary/outlet_injector/on{dir = 1; unacidable = 1},/turf/simulated/floor/engine,/area/toxins/xenobiology) -"cQv" = (/obj/structure/table/woodentable,/obj/item/weapon/reagent_containers/food/drinks/beer{pixel_x = -2; pixel_y = 5},/turf/unsimulated/floor{icon_state = "bar"; dir = 2},/area/syndicate_mothership) +"cQv" = (/obj/structure/table/woodentable,/obj/item/device/paicard,/turf/unsimulated/floor{icon_state = "grimy"},/area/space) "cQw" = (/obj/structure/closet/secure_closet/hydroponics,/obj/item/weapon/storage/bag/plants/portaseeder,/obj/machinery/light_switch{pixel_x = -26; pixel_y = 0},/obj/item/weapon/storage/backpack/satchel_hyd,/turf/simulated/floor{icon_state = "hydrofloor"},/area/hydroponics) "cQx" = (/obj/machinery/sparker{id = "Xenobio"; pixel_x = -25},/turf/simulated/floor/engine,/area/toxins/xenobiology) -"cQy" = (/obj/structure/table/woodentable,/obj/item/weapon/clipboard,/obj/item/weapon/pen,/turf/unsimulated/floor{icon_state = "grimy"},/area/syndicate_mothership) +"cQy" = (/obj/structure/stool/bed/chair/comfy/teal,/turf/unsimulated/floor{icon_state = "grimy"},/area/space) "cQz" = (/obj/structure/table,/turf/unsimulated/floor{icon_state = "cafeteria"; dir = 2},/area/centcom/holding) "cQA" = (/turf/unsimulated/beach/water,/area/centcom/holding) "cQB" = (/turf/unsimulated/floor{icon_state = "red"; dir = 10},/area/tdome/tdomeobserve) @@ -7635,56 +7637,56 @@ "cQS" = (/turf/simulated/shuttle/wall{icon_state = "wall3"},/area/shuttle/escape/centcom) "cQT" = (/turf/space,/turf/simulated/shuttle/wall{dir = 4; icon_state = "diagonalWall3"},/area/shuttle/escape/centcom) "cQU" = (/obj/structure/disposaloutlet{dir = 2},/turf/simulated/floor/engine,/area/toxins/xenobiology) -"cQV" = (/turf/unsimulated/floor,/area/syndicate_mothership) -"cQW" = (/obj/machinery/door/airlock/external{req_access_txt = "150"},/turf/unsimulated/floor,/area/syndicate_mothership) +"cQV" = (/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "snow"},/turf/simulated/shuttle/wall{icon_state = "diagonalWall3"},/area/space) +"cQW" = (/obj/machinery/door/window{name = "Cockpit"; req_access_txt = "150"},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/space) "cQX" = (/obj/structure/table/woodentable,/obj/item/candle,/obj/machinery/light_switch{pixel_y = 36},/obj/effect/decal/cleanable/cobweb2,/turf/simulated/floor{tag = "icon-vault"; icon_state = "vault"},/area/chapel/main) "cQY" = (/obj/effect/landmark{name = "Holding Facility"},/turf/unsimulated/floor{icon_state = "engine"},/area/centcom/holding) "cQZ" = (/obj/structure/shuttle/engine/propulsion,/turf/space,/area/shuttle/escape/centcom) "cRa" = (/obj/machinery/shieldwallgen{req_access = list(55)},/obj/structure/cable/yellow,/turf/simulated/floor/plating,/area/toxins/xenobiology) -"cRb" = (/turf/unsimulated/wall/fakeglass,/area/syndicate_mothership) -"cRc" = (/obj/machinery/door/airlock/centcom{name = "Restroom"; opacity = 1; req_access_txt = "150"},/turf/unsimulated/floor{icon_state = "bar"; dir = 2},/area/syndicate_mothership) -"cRd" = (/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/syndicate_mothership) -"cRe" = (/obj/structure/sink{dir = 4; icon_state = "sink"; pixel_x = 11; pixel_y = 0},/obj/structure/mirror{pixel_x = 28},/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/syndicate_mothership) -"cRf" = (/obj/structure/stool/bed/chair{dir = 4},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_station/start) -"cRg" = (/obj/structure/table,/obj/item/weapon/gun/energy/ionrifle,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_station/start) +"cRb" = (/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "snow"},/turf/simulated/shuttle/wall{dir = 4; icon_state = "diagonalWall3"},/area/space) +"cRc" = (/obj/item/weapon/paper{info = "GET DAT FUKKEN DISK"; name = "memo"},/obj/structure/noticeboard{pixel_x = -32; pixel_y = 0},/turf/unsimulated/floor{icon_state = "bar"; dir = 2},/area/space) +"cRd" = (/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "snow"},/obj/structure/flora/grass/brown,/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "gravsnow_corner"; dir = 4},/area/space) +"cRe" = (/obj/structure/stool,/turf/unsimulated/floor{icon_state = "bar"; dir = 2},/area/space) +"cRf" = (/mob/living/simple_animal/hostile/retaliate/bat{desc = "A Syndicate experiment in weaponized space carp technology. Its fangs seem to have been intentionally dulled down to prevent accidents."; faction = list("syndicate"); harm_intent_damage = 5; health = 50; icon_dead = "carp_dead"; icon_gib = "carp_gib"; icon_living = "carp"; icon_state = "carp"; name = "Cayenne"; real_name = "Cayenne"; response_disarm = "lightly brushes aside"; response_help = "pets"},/turf/unsimulated/floor{icon_state = "bar"; dir = 2},/area/space) +"cRg" = (/obj/machinery/door/airlock/centcom{name = "Study"; opacity = 1; req_access_txt = "150"},/turf/unsimulated/floor{icon_state = "bar"; dir = 2},/area/space) "cRh" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/structure/cable/yellow{d2 = 4; icon_state = "0-4"},/obj/machinery/door/poddoor/preopen{id = "Xenolab"; name = "test chamber blast door"},/turf/simulated/floor/engine,/area/toxins/xenobiology) -"cRi" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; pixel_x = 0},/turf/simulated/shuttle/wall{icon_state = "wall3"},/area/syndicate_station/start) +"cRi" = (/turf/unsimulated/floor{icon_state = "grimy"},/area/space) "cRj" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/machinery/atmospherics/pipe/simple/general/visible,/obj/structure/cable/yellow,/obj/structure/cable/yellow{d2 = 4; icon_state = "0-4"},/obj/structure/cable/yellow{d2 = 8; icon_state = "0-8"},/obj/machinery/door/poddoor/preopen{id = "Xenolab"; name = "test chamber blast door"},/turf/simulated/floor/engine,/area/toxins/xenobiology) "cRk" = (/obj/structure/table/woodentable,/obj/item/weapon/paper_bin{pixel_x = -2; pixel_y = 5},/obj/machinery/light/small{dir = 1},/obj/machinery/newscaster{pixel_x = 0; pixel_y = 32},/turf/simulated/floor{tag = "icon-vault"; icon_state = "vault"},/area/chapel/main) -"cRl" = (/obj/structure/mopbucket,/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/syndicate_mothership) +"cRl" = (/obj/structure/table,/obj/item/weapon/storage/box/zipties{pixel_x = 1; pixel_y = 2},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/space) "cRm" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/structure/disposalpipe/segment,/obj/structure/cable/yellow{d2 = 4; icon_state = "0-4"},/obj/structure/cable/yellow{d2 = 8; icon_state = "0-8"},/obj/machinery/door/poddoor/preopen{id = "Xenolab"; name = "test chamber blast door"},/turf/simulated/floor/engine,/area/toxins/xenobiology) "cRn" = (/turf/unsimulated/wall,/area/space) -"cRo" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'FOURTH WALL'."; name = "\improper FOURTH WALL"; pixel_x = -32},/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "snow"},/area/syndicate_mothership) -"cRp" = (/obj/structure/table,/obj/item/device/aicard,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_station/start) +"cRo" = (/obj/structure/table,/obj/item/stack/cable_coil,/obj/item/weapon/crowbar/red,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/space) +"cRp" = (/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "snow"},/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "gravsnow_surround"; dir = 8},/area/space) "cRq" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/cable/yellow{d2 = 8; icon_state = "0-8"},/obj/machinery/door/poddoor/preopen{id = "Xenolab"; name = "test chamber blast door"},/turf/simulated/floor/engine,/area/toxins/xenobiology) "cRr" = (/obj/machinery/space_heater,/turf/simulated/floor/plating,/area/toxins/xenobiology) -"cRs" = (/obj/machinery/door/window{dir = 4; name = "Equipment Room"; req_access_txt = "150"},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_station/start) -"cRt" = (/obj/machinery/door/airlock/external{req_access_txt = "150"},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_station/start) +"cRs" = (/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "snow"},/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "gravsnow_corner"; dir = 6},/area/space) +"cRt" = (/obj/structure/table/woodentable,/obj/item/pizzabox{ismessy = 1},/turf/unsimulated/floor{icon_state = "bar"; dir = 2},/area/space) "cRu" = (/obj/structure/table/woodentable,/obj/item/candle,/obj/machinery/light_switch{pixel_x = -27},/obj/effect/decal/cleanable/cobweb,/turf/simulated/floor{tag = "icon-vault"; icon_state = "vault"},/area/chapel/main) "cRv" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable/yellow{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/obj/structure/table/woodentable/poker,/obj/item/clothing/mask/cigarette/pipe,/turf/simulated/floor/wood,/area/crew_quarters/bar{name = "\improper Maltese Falcon"}) -"cRw" = (/obj/machinery/door/window{base_state = "right"; dir = 4; icon_state = "right"; name = "Equipment Room"; req_access_txt = "150"},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_station/start) -"cRx" = (/obj/machinery/atmospherics/pipe/simple{dir = 10},/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/turf/simulated/shuttle/plating,/area/syndicate_station/start) +"cRw" = (/obj/structure/table/woodentable,/obj/item/weapon/reagent_containers/food/drinks/beer{pixel_x = -2; pixel_y = 5},/turf/unsimulated/floor{icon_state = "bar"; dir = 2},/area/space) +"cRx" = (/obj/machinery/computer/telecrystals/uplinker,/turf/unsimulated/floor{tag = "icon-podhatch (NORTHWEST)"; icon_state = "podhatch"; dir = 9},/area/space) "cRy" = (/obj/structure/stool/bed/chair/comfy/black,/obj/effect/landmark/start{name = "Assistant"},/turf/simulated/floor/wood,/area/library) "cRz" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/machinery/door/poddoor{density = 0; icon_state = "open"; id = "lawyer_blast"; name = "Privacy Shutters"; opacity = 0},/turf/simulated/floor/plating,/area/lawoffice) "cRA" = (/turf/unsimulated/wall,/area/wizard_station) "cRB" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor{dir = 2; icon_state = "warning"},/area/toxins/xenobiology) "cRC" = (/obj/item/clothing/mask/gas,/obj/item/clothing/mask/gas,/obj/item/clothing/mask/gas,/obj/item/clothing/glasses/science,/obj/item/clothing/glasses/science,/obj/structure/table,/turf/simulated/floor{dir = 2; icon_state = "warning"},/area/toxins/xenobiology) -"cRD" = (/obj/item/device/radio/intercom{desc = "Talk through this. Evilly"; freerange = 1; frequency = 1213; name = "Syndicate Intercom"; pixel_x = -32; subspace_transmission = 1; syndie = 1},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_station/start) +"cRD" = (/obj/structure/stool,/obj/effect/landmark{name = "Syndicate-Spawn"},/turf/unsimulated/floor{icon_state = "bar"; dir = 2},/area/space) "cRE" = (/obj/structure/bookcase{name = "Forbidden Knowledge"},/obj/effect/decal/cleanable/cobweb,/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/wizard_station) "cRF" = (/obj/structure/bookcase{name = "Forbidden Knowledge"},/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/wizard_station) "cRG" = (/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/wizard_station) "cRH" = (/obj/machinery/librarycomp,/obj/structure/table/woodentable,/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/wizard_station) "cRI" = (/obj/machinery/vending/magivend,/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/wizard_station) "cRJ" = (/obj/machinery/vending/snack,/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/wizard_station) -"cRK" = (/obj/structure/closet{icon_closed = "cabinet_closed"; icon_opened = "cabinet_open"; icon_state = "cabinet_closed"},/obj/item/weapon/storage/backpack/satchel,/turf/unsimulated/floor{dir = 9; icon_state = "carpetside"},/area/wizard_station) +"cRK" = (/obj/structure/dresser,/turf/unsimulated/floor{icon_state = "grimy"},/area/space) "cRL" = (/obj/structure/mirror{pixel_y = 28},/turf/unsimulated/floor{dir = 1; icon_state = "carpetside"},/area/wizard_station) "cRM" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor{dir = 4; icon_state = "warning"},/area/hallway/secondary/exit{name = "\improper Departure Lounge"}) "cRN" = (/turf/unsimulated/wall,/area/tdome) "cRO" = (/obj/machinery/igniter,/turf/simulated/floor,/area/tdome) "cRP" = (/turf/simulated/floor,/area/tdome) -"cRQ" = (/obj/machinery/portable_atmospherics/canister/oxygen,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_station/start) -"cRR" = (/obj/machinery/atmospherics/pipe/simple,/obj/structure/table,/obj/item/stack/medical/bruise_pack,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_station/start) -"cRS" = (/obj/machinery/atmospherics/pipe/simple,/obj/structure/table,/obj/item/stack/medical/ointment,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_station/start) +"cRQ" = (/obj/structure/table/woodentable,/obj/item/weapon/clipboard,/obj/item/weapon/pen,/turf/unsimulated/floor{icon_state = "grimy"},/area/space) +"cRR" = (/obj/structure/stool/bed/chair{dir = 8},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/space) +"cRS" = (/obj/structure/stool/bed/chair{dir = 4},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/space) "cRT" = (/obj/item/device/radio/intercom{broadcasting = 1; frequency = 1480; name = "Confessional Intercom"; pixel_x = -25},/obj/structure/stool/bed/chair,/turf/simulated/floor{icon_state = "dark"},/area/chapel/office) "cRU" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 10},/turf/simulated/floor/carpet,/area/chapel/main) "cRV" = (/obj/structure/cable/yellow{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/atmospherics/pipe/simple/general/visible{dir = 10},/turf/simulated/floor{icon_state = "floorgrime"},/area/maintenance/incinerator) @@ -7703,8 +7705,8 @@ "cSi" = (/turf/simulated/shuttle/floor{icon_state = "floor3"},/turf/simulated/shuttle/wall{icon_state = "swall_f5"; dir = 2},/area/derelict/ship) "cSj" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 4; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/simulated/floor/carpet,/area/chapel/main) "cSk" = (/obj/machinery/atmospherics/pipe/simple/general/visible,/obj/structure/window/reinforced{dir = 4},/obj/machinery/ignition_switch{id = "Xenobio"; pixel_x = -6; pixel_y = -2},/obj/machinery/door_control{id = "Xenolab"; name = "Test Chamber Blast Doors"; pixel_x = 4; pixel_y = -2; req_access_txt = "55"},/obj/structure/table/reinforced,/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor{dir = 6; icon_state = "warning"},/area/toxins/xenobiology) -"cSl" = (/obj/machinery/door/window{dir = 4; name = "Infirmary"; req_access_txt = "150"},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_station/start) -"cSm" = (/obj/machinery/door/window/westright{name = "Tool Storage"; req_access_txt = "150"},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_station/start) +"cSl" = (/turf/unsimulated/wall/fakeglass{icon_state = "fakewindows2"; dir = 8},/area/space) +"cSm" = (/turf/unsimulated/wall/fakeglass{icon_state = "fakewindows"; dir = 9},/area/space) "cSn" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/machinery/door/poddoor{density = 0; icon_state = "open"; id = "lawyer_blast"; name = "Privacy Shutters"; opacity = 0},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor/plating,/area/lawoffice) "cSo" = (/obj/structure/bookcase{name = "bookcase (Tactics)"},/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/wizard_station) "cSp" = (/obj/item/device/radio/intercom{desc = "Talk through this. Evilly"; freerange = 1; frequency = 1213; name = "Syndicate Intercom"; pixel_x = 32; subspace_transmission = 1; syndie = 1},/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/wizard_station) @@ -7713,8 +7715,8 @@ "cSs" = (/obj/structure/table/woodentable,/obj/effect/landmark{name = "Teleport-Scroll"},/turf/unsimulated/floor{dir = 6; icon_state = "carpetside"},/area/wizard_station) "cSt" = (/obj/machinery/recharger{pixel_y = 4},/obj/effect/landmark{name = "tdome2"},/turf/unsimulated/floor{name = "plating"},/area/tdome/tdome2) "cSu" = (/obj/machinery/recharger{pixel_y = 4},/obj/effect/landmark{name = "tdome1"},/turf/unsimulated/floor{name = "plating"},/area/tdome/tdome1) -"cSv" = (/obj/machinery/door/window{base_state = "right"; dir = 4; icon_state = "right"; name = "Infirmary"; req_access_txt = "150"},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_station/start) -"cSw" = (/obj/machinery/door/window{dir = 8; name = "Tool Storage"; req_access_txt = "150"},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_station/start) +"cSv" = (/obj/structure/table/woodentable,/obj/item/weapon/reagent_containers/food/drinks/beer{pixel_x = 5; pixel_y = -2; step_x = 0},/obj/item/toy/cards/deck/syndicate{icon_state = "deck_syndicate_full"; pixel_x = -6; pixel_y = 6},/turf/unsimulated/floor{icon_state = "bar"; dir = 2},/area/space) +"cSw" = (/obj/structure/table/woodentable,/obj/item/weapon/reagent_containers/food/snacks/mushroompizzaslice,/turf/unsimulated/floor{icon_state = "bar"; dir = 2},/area/space) "cSx" = (/obj/structure/stool/bed/chair,/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/wizard_station) "cSy" = (/turf/unsimulated/floor{icon_state = "grimy"},/area/wizard_station) "cSz" = (/obj/machinery/camera{pixel_x = 11; pixel_y = -9; network = list("thunder"); c_tag = "Red Team"},/obj/effect/landmark{name = "tdome2"},/turf/unsimulated/floor{name = "plating"},/area/tdome/tdome2) @@ -7722,10 +7724,10 @@ "cSB" = (/obj/machinery/flasher{id = "flash"; name = "Thunderdome Flash"},/turf/simulated/floor/bluegrid,/area/tdome) "cSC" = (/obj/machinery/camera{pixel_x = 12; pixel_y = -10; network = list("thunder"); c_tag = "Green Team"},/obj/effect/landmark{name = "tdome1"},/turf/unsimulated/floor{name = "plating"},/area/tdome/tdome1) "cSD" = (/obj/structure/closet,/turf/simulated/floor/plating,/area/toxins/xenobiology) -"cSE" = (/obj/structure/table,/obj/item/weapon/storage/firstaid/regular{pixel_x = 6; pixel_y = -5},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_station/start) -"cSF" = (/obj/item/weapon/weldingtool,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 1},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_station/start) -"cSG" = (/obj/machinery/door/window{dir = 1; name = "Secure Storage"; req_access_txt = "150"},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_station/start) -"cSH" = (/obj/item/weapon/crowbar,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 1},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_station/start) +"cSE" = (/obj/machinery/computer/telecrystals/uplinker,/turf/unsimulated/floor{tag = "icon-podhatch (WEST)"; icon_state = "podhatch"; dir = 8},/area/space) +"cSF" = (/turf/unsimulated/floor,/area/space) +"cSG" = (/turf/unsimulated/wall/fakeglass{icon_state = "fakewindows2"; dir = 1},/area/space) +"cSH" = (/obj/machinery/door/poddoor/shutters{id = "nukeop_ready"; name = "shuttle dock"},/turf/unsimulated/floor,/area/space) "cSI" = (/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/turf/simulated/floor/plating,/area/toxins/xenobiology) "cSJ" = (/obj/structure/bookcase,/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/wizard_station) "cSK" = (/obj/structure/stool/bed/chair{dir = 4},/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/wizard_station) @@ -7734,30 +7736,30 @@ "cSN" = (/obj/structure/rack,/obj/item/clothing/suit/wizrobe/marisa,/obj/item/clothing/shoes/sandal/marisa,/obj/item/clothing/head/wizard/marisa,/obj/item/weapon/staff/broom,/turf/unsimulated/floor{icon_state = "grimy"},/area/wizard_station) "cSO" = (/obj/structure/rack,/obj/item/clothing/suit/wizrobe/magusblue,/obj/item/clothing/head/wizard/magus,/obj/item/weapon/staff,/turf/unsimulated/floor{icon_state = "grimy"},/area/wizard_station) "cSP" = (/obj/machinery/camera{pixel_x = 10; network = list("thunder"); c_tag = "Arena"},/turf/simulated/floor/bluegrid,/area/tdome) -"cSQ" = (/obj/machinery/telecomms/allinone{intercept = 1},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_station/start) -"cSR" = (/obj/effect/landmark{name = "Nuclear-Bomb"},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_station/start) +"cSQ" = (/obj/effect/landmark{name = "Syndicate-Uplink"},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/space) +"cSR" = (/obj/machinery/suit_storage_unit/syndicate,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/space) "cSS" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/carpet,/area/chapel/main) "cST" = (/obj/structure/table/woodentable,/obj/item/weapon/spacecash,/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/wizard_station) "cSU" = (/obj/structure/rack,/obj/item/clothing/suit/wizrobe/red,/obj/item/clothing/shoes/sandal,/obj/item/clothing/head/wizard/red,/obj/item/weapon/staff,/turf/unsimulated/floor{icon_state = "grimy"},/area/wizard_station) "cSV" = (/obj/structure/rack,/obj/item/clothing/suit/wizrobe/magusred,/obj/item/clothing/head/wizard/magus,/obj/item/weapon/staff,/turf/unsimulated/floor{icon_state = "grimy"},/area/wizard_station) -"cSW" = (/obj/structure/closet/crate/internals,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_station/start) -"cSX" = (/obj/structure/closet/crate/medical,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_station/start) +"cSW" = (/obj/machinery/door/airlock/external{req_access_txt = "150"},/turf/unsimulated/floor,/area/space) +"cSX" = (/turf/unsimulated/wall/fakeglass,/area/space) "cSY" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable/yellow{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/simulated/floor{dir = 2; icon_state = "warnwhite"; tag = "icon-warnwhite (NORTH)"},/area/toxins/xenobiology) -"cSZ" = (/obj/machinery/teleport/station,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_station/start) -"cTa" = (/obj/machinery/teleport/hub,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_station/start) +"cSZ" = (/obj/machinery/door_control{id = "nukeop_ready"; name = "mission launch control"; pixel_x = -26; pixel_y = 0; req_access_txt = "151"},/turf/unsimulated/floor{icon_state = "bar"; dir = 2},/area/space) +"cTa" = (/obj/machinery/computer/telecrystals/uplinker,/turf/unsimulated/floor{tag = "icon-podhatch (SOUTHWEST)"; icon_state = "podhatch"; dir = 10},/area/space) "cTb" = (/obj/machinery/door/poddoor{id = "thunderdomegen"; name = "General Supply"},/turf/unsimulated/floor{icon_state = "floor"},/area/tdome) "cTc" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/general/visible,/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_y = -29},/turf/simulated/floor{dir = 2; icon_state = "warnwhite"; tag = "icon-warnwhite (NORTH)"},/area/toxins/xenobiology) -"cTd" = (/obj/structure/shuttle/engine/propulsion,/turf/space,/area/syndicate_station/start) +"cTd" = (/obj/structure/urinal{pixel_y = 28},/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/space) "cTe" = (/turf/simulated/floor{dir = 2; icon_state = "warnwhite"; tag = "icon-warnwhite (NORTH)"},/area/toxins/xenobiology) "cTf" = (/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/turf/simulated/floor{dir = 2; icon_state = "warnwhite"; tag = "icon-warnwhite (NORTH)"},/area/toxins/xenobiology) "cTg" = (/obj/machinery/camera{c_tag = "Central Primary Hallway - Aft-Starboard"; dir = 1; network = list("SS13")},/turf/simulated/floor{dir = 2; icon_state = "purplecorner"},/area/hallway/primary/central) "cTh" = (/obj/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/simulated/floor{dir = 2; icon_state = "warnwhite"; tag = "icon-warnwhite (NORTH)"},/area/toxins/xenobiology) "cTi" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 2; on = 1; scrub_Toxins = 0},/turf/simulated/floor{icon_state = "bar"},/area/crew_quarters/bar{name = "\improper Maltese Falcon"}) "cTj" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/grille,/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/wizard_station) -"cTk" = (/obj/structure/showcase,/turf/unsimulated/floor{dir = 1; icon_state = "chapel"},/area/wizard_station) +"cTk" = (/obj/structure/toilet{pixel_y = 8},/obj/structure/window/reinforced/tinted{dir = 8; icon_state = "twindow"},/obj/machinery/door/window{name = "Tactical Toilet"; opacity = 1},/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/space) "cTl" = (/obj/structure/table/reinforced,/obj/structure/kitchenspike,/turf/unsimulated/floor{dir = 4; icon_state = "chapel"},/area/wizard_station) "cTm" = (/obj/structure/table/reinforced,/obj/structure/kitchenspike,/turf/unsimulated/floor{dir = 1; icon_state = "chapel"},/area/wizard_station) -"cTn" = (/obj/effect/decal/cleanable/cobweb2,/obj/structure/showcase,/turf/unsimulated/floor{dir = 4; icon_state = "chapel"},/area/wizard_station) +"cTn" = (/obj/structure/stool,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/space) "cTo" = (/obj/machinery/door/poddoor{id = "thunderdomehea"; name = "Heavy Supply"},/turf/unsimulated/floor{icon_state = "dark"},/area/tdome) "cTp" = (/obj/effect/decal/remains/human,/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/wizard_station) "cTq" = (/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/wizard_station) @@ -7999,7 +8001,7 @@ "cXS" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/window/reinforced,/turf/simulated/floor,/area/derelict/bridge/access) "cXT" = (/turf/simulated/floor{dir = 1; icon_state = "warning"},/area/tcommsat/chamber) "cXU" = (/turf/simulated/floor/airless{dir = 5; icon_state = "warning"},/area/tcommsat/chamber) -"cXV" = (/obj/structure/bookcase,/obj/item/weapon/book/manual/wiki/engineering_hacking,/obj/item/weapon/book/manual/robotics_cyborgs,/obj/item/weapon/book/manual/engineering_singularity_safety,/obj/item/weapon/book/manual/detective,/turf/unsimulated/floor{icon_state = "grimy"},/area/syndicate_mothership) +"cXV" = (/obj/structure/table,/obj/item/device/aicard,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/space) "cXW" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/simulated/floor,/area/derelict/bridge/access) "cXX" = (/obj/item/weapon/paper/crumpled,/turf/simulated/floor/airless{dir = 8; icon_state = "warning"},/area/tcommsat/chamber) "cXY" = (/obj/item/stack/rods,/turf/simulated/floor/airless,/area/tcommsat/chamber) @@ -8948,6 +8950,7 @@ "dqf" = (/obj/machinery/atmospherics/pipe/simple/general/hidden{dir = 9},/obj/machinery/light_switch{pixel_y = -25},/turf/simulated/floor/bluegrid,/area/mine/maintenance) "dqg" = (/obj/machinery/camera{c_tag = "Communications Relay"; dir = 8; network = list("MINE")},/turf/simulated/floor/bluegrid,/area/mine/maintenance) "dqh" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/turf/simulated/floor,/area/mine/living_quarters) +"dqi" = (/obj/machinery/door/poddoor{auto_close = 300; id = "smindicate"; name = "outer blast door"},/obj/machinery/door_control{id = "smindicate"; name = "external door control"; pixel_x = -26; pixel_y = 0; req_access_txt = "150"},/turf/simulated/shuttle/plating,/area/space) "dqj" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/simulated/floor,/area/mine/living_quarters) "dqk" = (/turf/simulated/wall,/area/mine/living_quarters) "dql" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/simulated/floor,/area/mine/living_quarters) @@ -9022,7 +9025,7 @@ "drC" = (/obj/machinery/light{dir = 4},/turf/simulated/floor{icon_state = "bar"},/area/mine/living_quarters) "drD" = (/turf/simulated/floor,/area/mine/living_quarters) "drE" = (/obj/machinery/atmospherics/unary/vent_pump{on = 1},/turf/simulated/floor,/area/mine/living_quarters) -"drF" = (/obj/structure/rack,/obj/item/clothing/suit/space/syndicate/black/red,/obj/item/clothing/head/helmet/space/syndicate/black/red,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_station/start) +"drF" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; pixel_x = 0},/turf/simulated/shuttle/wall{icon_state = "wall3"},/area/space) "drG" = (/obj/structure/rack,/obj/item/clothing/under/color/red,/obj/item/clothing/shoes/sneakers/brown,/obj/item/clothing/suit/armor/tdome/red,/obj/item/clothing/head/helmet/thunderdome,/obj/item/weapon/melee/baton/loaded,/obj/item/weapon/melee/energy/sword/saber/red,/turf/unsimulated/floor{icon_state = "dark"},/area/tdome) "drH" = (/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 5},/obj/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/simulated/floor/plating,/area/maintenance/aft{name = "Aft Maintenance"}) "drI" = (/obj/structure/table,/obj/item/weapon/storage/backpack/satchel,/obj/item/clothing/glasses/meson,/obj/machinery/light/small{dir = 8},/obj/item/device/radio/intercom{dir = 8; name = "Station Intercom (General)"; pixel_x = -28},/turf/simulated/floor,/area/mine/west_outpost) @@ -9318,33 +9321,33 @@ "dxm" = (/obj/machinery/door/airlock/hatch{name = "Rest Room"; req_access_txt = "0"},/turf/simulated/shuttle/floor{icon_state = "floor2"},/area/centcom/evac) "dxn" = (/turf/unsimulated/wall/fakeglass{icon_state = "fakewindows"; dir = 4},/area/tdome/tdomeobserve) "dxo" = (/turf/unsimulated/wall/fakeglass{icon_state = "fakewindows2"; dir = 8},/area/tdome/tdomeobserve) -"dxp" = (/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "snow"},/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "gravsnow_corner"; dir = 5},/area/syndicate_mothership) -"dxq" = (/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "snow"},/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "gravsnow_corner"; dir = 10},/area/syndicate_mothership) +"dxp" = (/obj/structure/table/woodentable,/obj/item/weapon/storage/box/drinkingglasses,/obj/item/weapon/reagent_containers/food/drinks/bottle/rum,/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/space) +"dxq" = (/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "snow"},/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "gravsnow_corner"; dir = 5},/area/space) "dxr" = (/turf/unsimulated/wall/fakeglass{icon_state = "fakewindows"; dir = 8},/area/tdome/tdomeobserve) "dxs" = (/obj/structure/stool/bed/chair,/obj/effect/landmark{name = "tdomeobserve"},/turf/unsimulated/floor{icon_state = "redbluefull"; dir = 2},/area/tdome/tdomeobserve) "dxt" = (/turf/unsimulated/floor{icon_state = "redbluefull"; dir = 2},/area/tdome/tdomeobserve) -"dxu" = (/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "snow"},/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "gravsnow_corner"; dir = 4},/area/syndicate_mothership) +"dxu" = (/obj/structure/table/woodentable,/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/space) "dxv" = (/obj/machinery/computer/security/telescreen,/turf/unsimulated/floor{icon_state = "redbluefull"; dir = 2},/area/tdome/tdomeobserve) "dxw" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{req_access_txt = 1},/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/simulated/floor{dir = 2; icon_state = "neutralcorner"},/area/bridge/meeting_room{name = "\improper Command Hallway"}) "dxx" = (/obj/structure/sign/securearea{pixel_x = 0; pixel_y = 32},/obj/machinery/shower{dir = 8},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/turf/simulated/floor{tag = "icon-warnwhite (NORTHEAST)"; icon_state = "warnwhite"; dir = 5},/area/medical/virology) -"dxy" = (/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "snow"},/obj/structure/flora/grass/brown,/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "gravsnow_corner"; dir = 4},/area/syndicate_mothership) +"dxy" = (/obj/structure/table/woodentable,/obj/item/device/syndicatedetonator{desc = "This gaudy button can be used to instantly detonate syndicate bombs that have been activated on the station. It is also fun to press."},/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/space) "dxz" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 1; initialize_directions = 11},/turf/simulated/floor{dir = 2; icon_state = "neutralcorner"},/area/bridge/meeting_room{name = "\improper Command Hallway"}) "dxA" = (/obj/machinery/door/airlock/centcom{name = "Thunderdome"; opacity = 1; req_access_txt = "101"},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/tdome/tdomeobserve) -"dxB" = (/turf/unsimulated/wall/fakeglass{icon_state = "fakewindows"; dir = 4},/area/syndicate_mothership) -"dxC" = (/turf/unsimulated/wall/fakeglass{icon_state = "fakewindows2"; dir = 8},/area/syndicate_mothership) -"dxD" = (/turf/unsimulated/wall/fakeglass{icon_state = "fakewindows"; dir = 8},/area/syndicate_mothership) -"dxE" = (/obj/effect/landmark{name = "Syndicate-Uplink"},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_station/start) +"dxB" = (/obj/machinery/door/airlock/centcom{name = "Restroom"; opacity = 1; req_access_txt = "150"},/turf/unsimulated/floor{icon_state = "bar"; dir = 2},/area/space) +"dxC" = (/obj/structure/sink{dir = 4; icon_state = "sink"; pixel_x = 11; pixel_y = 0},/obj/structure/mirror{pixel_x = 28},/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/space) +"dxD" = (/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/space) +"dxE" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'FOURTH WALL'."; name = "\improper FOURTH WALL"; pixel_x = -32},/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "snow"},/area/space) "dxF" = (/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/tdome/tdomeobserve) -"dxG" = (/turf/unsimulated/wall/fakeglass{icon_state = "fakewindows2"; dir = 1},/area/syndicate_mothership) +"dxG" = (/obj/structure/table,/obj/item/weapon/c4{pixel_x = 2; pixel_y = 1},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/space) "dxH" = (/turf/space/transit/north/shuttlespace_ns2,/area/shuttle/escape/transit) -"dxI" = (/turf/unsimulated/wall/fakeglass{icon_state = "fakewindows"; dir = 9},/area/syndicate_mothership) +"dxI" = (/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/space) "dxJ" = (/turf/space/transit/north/shuttlespace_ns1,/area/shuttle/escape/transit) "dxK" = (/obj/structure/rack,/obj/item/clothing/shoes/laceup,/obj/item/clothing/under/suit_jacket/female{desc = "A black trouser suit for women. Very formal."; name = "black suit"; pixel_x = 3; pixel_y = 1},/turf/unsimulated/floor{icon_state = "cafeteria"; dir = 2},/area/centcom/holding) -"dxL" = (/obj/structure/stool/bed/chair/comfy/lime{icon_state = "comfychair_lime"; dir = 1},/turf/unsimulated/floor{icon_state = "grimy"},/area/syndicate_mothership) -"dxM" = (/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "snow"},/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "gravsnow_corner"; dir = 6},/area/syndicate_mothership) -"dxN" = (/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "snow"},/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "gravsnow_surround"; dir = 8},/area/syndicate_mothership) +"dxL" = (/obj/machinery/door/window{base_state = "right"; dir = 4; icon_state = "right"; name = "Uplink Management Control"; req_access_txt = "151"},/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/space) +"dxM" = (/obj/effect/landmark{name = "Syndicate-Spawn"},/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/space) +"dxN" = (/obj/item/weapon/soap/syndie,/obj/structure/mopbucket,/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/space) "dxO" = (/obj/structure/table,/obj/item/weapon/storage/box/handcuffs,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/evac) -"dxP" = (/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "snow"},/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "gravsnow_corner"; dir = 8},/area/syndicate_mothership) +"dxP" = (/obj/item/weapon/mop,/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/space) "dxQ" = (/turf/unsimulated/wall/fakeglass{icon_state = "fakewindows2"; dir = 6},/area/tdome/tdomeobserve) "dxR" = (/turf/space/transit/north/shuttlespace_ns4,/area/shuttle/escape/transit) "dxS" = (/obj/structure/disposalpipe/segment,/obj/structure/table/woodentable/poker,/obj/item/toy/cards/deck{pixel_y = 4},/turf/simulated/floor/wood,/area/crew_quarters/bar{name = "\improper Maltese Falcon"}) @@ -9369,25 +9372,25 @@ "dyl" = (/obj/structure/table,/obj/machinery/door_control{id = "thunderdomehea"; name = "Heavy Supply Control"; pixel_y = 0; req_access_txt = "102"},/turf/unsimulated/floor{icon_state = "floor"},/area/tdome/tdomeadmin) "dym" = (/turf/unsimulated/wall/fakeglass{icon_state = "fakewindows2"; dir = 8},/area/tdome/tdomeadmin) "dyn" = (/turf/unsimulated/wall/fakeglass{icon_state = "fakewindows"; dir = 4},/area/tdome/tdomeadmin) -"dyo" = (/obj/structure/shuttle/engine/propulsion{icon_state = "propulsion_l"},/turf/space,/area/syndicate_station/start) -"dyp" = (/obj/structure/shuttle/engine/propulsion{icon_state = "propulsion_r"},/turf/space,/area/syndicate_station/start) +"dyo" = (/obj/machinery/door/window{dir = 4; name = "EVA Storage"; req_access_txt = "150"},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/space) +"dyp" = (/obj/machinery/door/airlock/external{req_access_txt = "150"},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/space) "dyq" = (/turf/unsimulated/wall/fakeglass{icon_state = "fakewindows"; dir = 8},/area/tdome/tdomeadmin) "dyr" = (/turf/unsimulated/wall/fakeglass{icon_state = "fakewindows2"; dir = 1},/area/wizard_station) "dys" = (/obj/structure/stool/bed/chair{dir = 1},/obj/effect/landmark{name = "tdomeadmin"},/turf/unsimulated/floor{icon_state = "redyellowfull"; dir = 5},/area/tdome/tdomeadmin) "dyt" = (/mob/living/simple_animal/hostile/creature{name = "Experiment 35b"},/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/wizard_station) "dyu" = (/obj/item/weapon/paper{info = "The call has gone out! Our ancestral home has been rediscovered! Not a small patch of land, but a true clown nation, a true Clown Planet! We're on our way home at last!"},/turf/simulated/floor/mineral/bananium/airless,/area/space) -"dyv" = (/obj/structure/shuttle/engine/heater,/obj/structure/window/reinforced{dir = 1},/turf/simulated/shuttle/plating,/area/syndicate_station/start) +"dyv" = (/obj/structure/sign/map/left{pixel_y = -32},/obj/structure/rack{icon = 'icons/obj/stationobjs.dmi'; icon_state = "minibar_left"; name = "skeletal minibar"},/obj/item/weapon/reagent_containers/food/drinks/bottle/vodka,/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/space) "dyw" = (/obj/effect/landmark/corpse/clown{name = "Clown Pilot"},/turf/simulated/floor/mineral/bananium/airless,/area/space) "dyx" = (/turf/unsimulated/wall/fakeglass{icon_state = "fakewindows"; dir = 8},/area/wizard_station) "dyy" = (/turf/unsimulated/wall/fakeglass{icon_state = "fakewindows"; dir = 5},/area/wizard_station) "dyz" = (/turf/unsimulated/wall/fakeglass{icon_state = "fakewindows2"; dir = 8},/area/wizard_station) -"dyA" = (/obj/machinery/sleeper{icon_state = "sleeper-open"; dir = 4},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_station/start) +"dyA" = (/obj/structure/sign/map/right{pixel_y = -32},/obj/structure/rack{icon = 'icons/obj/stationobjs.dmi'; icon_state = "minibar_right"; name = "skeletal minibar"},/obj/item/weapon/reagent_containers/food/drinks/bottle/gin,/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/space) "dyB" = (/turf/space/transit/north/shuttlespace_ns10,/area/shuttle/escape/transit) "dyC" = (/turf/space/transit/north/shuttlespace_ns14,/area/shuttle/escape/transit) "dyD" = (/obj/structure/table/woodentable,/obj/item/weapon/reagent_containers/food/snacks/chips,/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/wizard_station) "dyE" = (/obj/machinery/light{dir = 1},/obj/structure/disposalpipe/segment,/turf/simulated/floor/airless{icon_state = "asteroidwarning"; dir = 1},/area/mine/north_outpost) "dyF" = (/turf/space/transit/north/shuttlespace_ns13,/area/shuttle/escape/transit) -"dyG" = (/obj/structure/table,/obj/item/weapon/storage/toolbox/syndicate,/obj/item/weapon/grenade/syndieminibomb,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_station/start) +"dyG" = (/obj/machinery/computer/telecrystals/boss,/turf/unsimulated/floor{tag = "icon-podhatch (NORTHEAST)"; icon_state = "podhatch"; dir = 5},/area/space) "dyH" = (/turf/simulated/shuttle/wall{icon_state = "swall_s9"; dir = 2},/area/supply/dock) "dyI" = (/turf/simulated/shuttle/wall{icon_state = "swall15"; dir = 2},/area/supply/dock) "dyJ" = (/turf/simulated/shuttle/wall{icon_state = "swall_s5"; dir = 2},/area/supply/dock) @@ -9558,7 +9561,7 @@ "dBS" = (/obj/structure/stool/bed/chair,/turf/simulated/shuttle/floor4,/area/shuttle/escape/centcom) "dBT" = (/turf/unsimulated/wall/fakedoor{name = "Thunderdome Admin"},/area/tdome/tdomeadmin) "dBU" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 2; initialize_directions = 11},/turf/simulated/wall/r_wall,/area/toxins/server{name = "\improper Research Division Server Room"}) -"dBV" = (/obj/structure/table,/obj/item/device/sbeacondrop/bomb,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_station/start) +"dBV" = (/obj/machinery/door/airlock/glass_large{name = "Equipment Room"; opacity = 1; req_access_txt = "150"; text = "g"},/turf/unsimulated/floor{icon_state = "bar"; dir = 2},/area/space) "dBW" = (/turf/unsimulated/wall/fakedoor,/area/centcom/control) "dBX" = (/obj/structure/stool/bed/chair{dir = 8},/turf/unsimulated/floor{icon_state = "green"; dir = 5},/area/centcom/control) "dBY" = (/obj/structure/stool/bed/chair{dir = 4},/turf/unsimulated/floor{icon_state = "green"; dir = 9},/area/centcom/control) @@ -9606,29 +9609,29 @@ "dCO" = (/turf/space/transit/east/shuttlespace_ew15,/area/shuttle/escape_pod4/transit) "dCP" = (/turf/space/transit/east/shuttlespace_ew1,/area/shuttle/escape_pod4/transit) "dCQ" = (/turf/space,/area/shuttle/escape_pod4/centcom) -"dCR" = (/obj/machinery/computer/telecrystals/boss,/turf/unsimulated/floor{tag = "icon-podhatch (NORTHEAST)"; icon_state = "podhatch"; dir = 5},/area/syndicate_mothership) +"dCR" = (/obj/machinery/door/window{base_state = "right"; dir = 4; icon_state = "right"; name = "EVA Storage"; req_access_txt = "150"},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/space) "dCS" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/general/visible{dir = 4},/obj/structure/extinguisher_cabinet{pixel_x = 0; pixel_y = -31},/mob/living/simple_animal/mouse,/turf/simulated/floor{icon_state = "floorgrime"},/area/maintenance/incinerator) -"dCT" = (/obj/structure/sign/map/right{pixel_y = -32},/obj/structure/rack{icon = 'icons/obj/stationobjs.dmi'; icon_state = "minibar_right"; name = "skeletal minibar"},/obj/item/weapon/reagent_containers/food/drinks/bottle/gin,/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/syndicate_mothership) -"dCU" = (/obj/structure/sign/map/left{pixel_y = -32},/obj/structure/rack{icon = 'icons/obj/stationobjs.dmi'; icon_state = "minibar_left"; name = "skeletal minibar"},/obj/item/weapon/reagent_containers/food/drinks/bottle/vodka,/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/syndicate_mothership) +"dCT" = (/obj/structure/rack,/obj/item/clothing/suit/space/syndicate/black/red,/obj/item/clothing/head/helmet/space/syndicate/black/red,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/space) +"dCU" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/turf/simulated/shuttle/plating,/area/space) "dCV" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/door_control{id = "turbinevent"; name = "Turbine Vent Control"; pixel_x = -6; pixel_y = -24; req_access_txt = "12"},/obj/machinery/door_control{id = "auxincineratorvent"; name = "Auxiliary Vent Control"; pixel_x = 6; pixel_y = -24; req_access_txt = "12"},/obj/machinery/atmospherics/pipe/simple/general/visible{dir = 2},/obj/machinery/atmospherics/pipe/simple/general/visible{dir = 4},/turf/simulated/floor{icon_state = "floorgrime"},/area/maintenance/incinerator) "dCW" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/door/firedoor,/obj/machinery/door/airlock{icon = 'icons/obj/doors/Doorsilver.dmi'; name = "Kitchen"; req_access_txt = "28"},/turf/simulated/floor{icon_state = "cafeteria"; dir = 2},/area/crew_quarters/kitchen) -"dCX" = (/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/syndicate_mothership) -"dCY" = (/obj/structure/table/woodentable,/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/syndicate_mothership) -"dCZ" = (/obj/structure/table/woodentable,/obj/item/weapon/reagent_containers/food/drinks/bottle/rum,/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/syndicate_mothership) +"dCX" = (/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "snow"},/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "gravsnow_corner"; dir = 10},/area/space) +"dCY" = (/turf/unsimulated/floor{tag = "icon-stage_stairs"; icon_state = "stage_stairs"},/area/space) +"dCZ" = (/obj/machinery/mech_bay_recharge_port,/turf/unsimulated/floor/plating,/area/space) "dDa" = (/obj/machinery/vending/cigarette,/turf/simulated/floor/carpet,/area/crew_quarters/bar{name = "\improper Maltese Falcon"}) -"dDb" = (/obj/structure/toilet{pixel_y = 8},/obj/structure/window/reinforced/tinted{dir = 8; icon_state = "twindow"},/obj/machinery/door/window{name = "Tactical Toilet"; opacity = 1},/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/syndicate_mothership) -"dDc" = (/obj/structure/urinal{pixel_y = 28},/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/syndicate_mothership) +"dDb" = (/obj/machinery/vending/tool,/turf/unsimulated/floor{icon_state = "dark"},/area/space) +"dDc" = (/turf/unsimulated/floor{icon_state = "recharge_floor"; name = "mech bay recharge floor"; tag = "icon-recharge_floor"},/area/space) "dDd" = (/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/wood,/area/crew_quarters/bar{name = "\improper Maltese Falcon"}) -"dDe" = (/obj/structure/table/woodentable,/obj/item/weapon/reagent_containers/food/snacks/mushroompizzaslice,/turf/unsimulated/floor{icon_state = "bar"; dir = 2},/area/syndicate_mothership) -"dDf" = (/obj/structure/table/woodentable,/obj/item/pizzabox{ismessy = 1},/turf/unsimulated/floor{icon_state = "bar"; dir = 2},/area/syndicate_mothership) -"dDg" = (/obj/item/weapon/storage/fancy/crayons,/obj/structure/table,/obj/item/weapon/storage/fancy/crayons,/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/syndicate_mothership) -"dDh" = (/obj/machinery/washing_machine,/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/syndicate_mothership) +"dDe" = (/obj/machinery/computer/mech_bay_power_console,/turf/unsimulated/floor/plating,/area/space) +"dDf" = (/obj/item/device/radio/intercom{desc = "Talk through this. Evilly"; freerange = 1; frequency = 1213; name = "Syndicate Intercom"; pixel_x = -32; subspace_transmission = 1; syndie = 1},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/space) +"dDg" = (/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "snow"},/turf/unsimulated/floor{tag = "icon-gravsnow_corner (NORTH)"; icon = 'icons/turf/snow.dmi'; icon_state = "gravsnow_corner"; dir = 1},/area/space) +"dDh" = (/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "snow"},/obj/structure/flora/bush,/turf/unsimulated/floor{tag = "icon-gravsnow_corner (NORTH)"; icon = 'icons/turf/snow.dmi'; icon_state = "gravsnow_corner"; dir = 1},/area/space) "dDi" = (/obj/structure/stool/bed,/obj/item/weapon/bedsheet/wiz,/turf/unsimulated/floor{dir = 5; icon_state = "carpetside"},/area/wizard_station) -"dDj" = (/obj/structure/table,/obj/item/device/assembly/prox_sensor{pixel_x = -8; pixel_y = 4},/obj/item/clothing/glasses/night,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_station/start) -"dDk" = (/obj/structure/table,/obj/item/weapon/crowbar,/obj/item/stack/cable_coil{pixel_x = 3; pixel_y = -7},/obj/item/device/assembly/prox_sensor{pixel_x = -8; pixel_y = 4},/obj/item/clothing/glasses/night,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_station/start) -"dDl" = (/obj/structure/table,/obj/item/weapon/wrench,/obj/item/device/assembly/infra,/obj/item/clothing/glasses/night,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_station/start) -"dDm" = (/obj/structure/table,/obj/item/device/assembly/signaler,/obj/item/clothing/glasses/night,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_station/start) -"dDn" = (/obj/structure/table,/obj/machinery/cell_charger,/obj/item/device/assembly/signaler,/obj/item/clothing/glasses/night,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_station/start) +"dDj" = (/turf/unsimulated/floor{icon_state = "dark"},/area/space) +"dDk" = (/obj/structure/dresser,/obj/item/weapon/storage/backpack/satchel,/turf/unsimulated/floor{dir = 9; icon_state = "carpetside"},/area/wizard_station) +"dDl" = (/obj/machinery/recharge_station,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/space) +"dDm" = (/obj/structure/table,/obj/machinery/cell_charger,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/space) +"dDn" = (/obj/structure/table,/obj/item/stack/medical/ointment,/obj/item/stack/medical/bruise_pack,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/space) "dDo" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/turf/simulated/floor/plating,/area/medical/virology) "dDp" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating,/area/medical/virology) "dDq" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plating,/area/medical/virology) @@ -9688,7 +9691,7 @@ "dEs" = (/obj/machinery/atmospherics/pipe/simple{dir = 4},/turf/simulated/wall,/area/mine/laborcamp) "dEt" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/simulated/floor{icon_state = "white"},/area/medical/medbay3{name = "Medbay Aft"}) "dEu" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor{dir = 4; icon_state = "whiteblue"},/area/medical/medbay3{name = "Medbay Aft"}) -"dEv" = (/obj/machinery/door/poddoor{auto_close = 300; id = "smindicate"; name = "outer blast door"},/obj/machinery/door_control{id = "smindicate"; name = "external door control"; pixel_x = -26; pixel_y = 0; req_access_txt = "150"},/turf/simulated/shuttle/plating,/area/syndicate_station/start) +"dEv" = (/obj/machinery/portable_atmospherics/canister/oxygen,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/space) "dEw" = (/obj/machinery/telecomms/allinone{intercept = 1},/turf/unsimulated/floor{icon_state = "floor"},/area/centcom/control) "dEx" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/wall/r_wall,/area/toxins/server{name = "\improper Research Division Server Room"}) "dEy" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 2},/turf/simulated/floor{dir = 1; icon_state = "whitegreen"},/area/medical/virology) @@ -9716,8 +9719,8 @@ "dEU" = (/obj/item/device/radio/intercom{pixel_x = -28; pixel_y = 0},/obj/structure/table,/obj/item/weapon/hand_labeler,/obj/item/device/radio/headset/headset_med,/obj/machinery/alarm{frequency = 1439; pixel_y = 23},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 6},/obj/machinery/camera{c_tag = "Virology - Cells"; dir = 4; network = list("SS13","Medbay")},/turf/simulated/floor{dir = 9; icon_state = "whitegreen"},/area/medical/virology) "dEV" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/portables_connector/visible{dir = 8},/obj/machinery/portable_atmospherics/canister,/turf/simulated/floor{dir = 9; icon_state = "warning"},/area/toxins/xenobiology) "dEW" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/portables_connector/visible{dir = 4},/obj/machinery/portable_atmospherics/canister,/turf/simulated/floor{dir = 5; icon_state = "warning"},/area/toxins/xenobiology) -"dEX" = (/obj/machinery/door_control{id = "nukeop_ready"; name = "mission launch control"; pixel_x = -26; pixel_y = 0; req_access_txt = "150"},/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/syndicate_mothership) -"dEY" = (/obj/machinery/door/poddoor/shutters{id = "nukeop_ready"; name = "shuttle dock"},/turf/unsimulated/floor,/area/syndicate_mothership) +"dEX" = (/obj/machinery/vending/wallmed1{name = "Emergency NanoMed"; pixel_x = -28; req_access_txt = "0"},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/space) +"dEY" = (/obj/structure/table,/obj/item/weapon/screwdriver{pixel_y = 9},/obj/item/device/assembly/voice{pixel_y = 3},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/space) "dEZ" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor/plating{tag = "icon-panelscorched"; icon_state = "panelscorched"},/area/maintenance/aft{name = "Aft Maintenance"}) "dFa" = (/obj/machinery/door/window{base_state = "right"; dir = 1; icon_state = "right"; name = "Theatre Stage"; req_access_txt = "0"},/turf/simulated/floor/wood,/area/crew_quarters/theatre) "dFb" = (/obj/machinery/light_switch{pixel_y = -28},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 5},/obj/machinery/light,/turf/simulated/floor/carpet,/area/crew_quarters/theatre) @@ -10054,6 +10057,10 @@ "dLu" = (/obj/structure/table/woodentable,/obj/machinery/newscaster{pixel_x = 0; pixel_y = 32},/obj/item/weapon/clipboard,/obj/item/weapon/paper,/turf/simulated/floor/wood,/area/security/vacantoffice) "dLv" = (/obj/structure/table/woodentable,/obj/item/device/camera_film{pixel_y = 9},/obj/item/device/camera_film{pixel_x = -3; pixel_y = 5},/turf/simulated/floor/wood,/area/security/vacantoffice) "dLw" = (/obj/structure/table/woodentable,/obj/item/device/flashlight/lamp,/turf/simulated/floor/wood,/area/security/vacantoffice) +"dLx" = (/obj/structure/table,/obj/item/weapon/wrench,/obj/item/device/assembly/infra,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/space) +"dLy" = (/obj/structure/table,/obj/item/weapon/stock_parts/cell/high{pixel_x = -3; pixel_y = 3},/obj/item/weapon/stock_parts/cell/high,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/space) +"dLz" = (/obj/structure/table,/obj/item/device/assembly/signaler,/obj/item/device/assembly/signaler,/obj/item/device/assembly/prox_sensor{pixel_x = -8; pixel_y = 4},/obj/item/device/assembly/prox_sensor{pixel_x = -8; pixel_y = 4},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/space) +"dLA" = (/obj/structure/table,/obj/item/weapon/weldingtool/largetank{pixel_y = 3},/obj/item/device/multitool,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/space) "dLB" = (/obj/machinery/atmospherics/portables_connector/visible{dir = 4},/obj/machinery/portable_atmospherics/pump,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor{icon_state = "arrival"; dir = 8},/area/hallway/primary/starboard) "dLC" = (/obj/structure/window/reinforced{dir = 4; pixel_x = 0},/obj/structure/window/reinforced,/obj/machinery/door/window{dir = 1; name = "MiniSat Walkway Access"; req_access_txt = "0"},/turf/simulated/floor{icon_state = "dark"},/area/construction/hallway{name = "\improper MiniSat Exterior"}) "dLD" = (/obj/machinery/light_switch{pixel_x = -8; pixel_y = 30},/obj/machinery/light/small{dir = 1},/obj/structure/table/woodentable,/obj/item/clothing/shoes/laceup,/obj/item/clothing/under/suit_jacket/really_black,/obj/item/clothing/glasses/sunglasses,/obj/machinery/camera{c_tag = "Corporate Showroom"; dir = 2; network = list("SS13")},/turf/simulated/floor/wood,/area/assembly/showroom{name = "\improper Corporate Showroom"}) @@ -10182,6 +10189,7 @@ "dNW" = (/obj/structure/closet/secure_closet/scientist,/obj/machinery/light_switch{pixel_y = 28},/obj/item/weapon/storage/backpack/satchel_tox{pixel_x = -5; pixel_y = 2},/turf/simulated/floor{dir = 2; icon_state = "warning"},/area/toxins/mixing{name = "\improper Toxins Lab"}) "dNX" = (/obj/structure/rack,/obj/item/weapon/tank/air,/obj/item/weapon/wrench,/turf/simulated/floor/plating{tag = "icon-platingdmg2"; icon_state = "platingdmg2"},/area/maintenance/aft{name = "Aft Maintenance"}) "dNY" = (/obj/machinery/alarm{dir = 1; pixel_y = -22},/obj/structure/closet/wardrobe/genetics_white,/turf/simulated/floor{tag = "icon-vault"; icon_state = "vault"},/area/medical/genetics) +"dNZ" = (/obj/structure/stool,/turf/unsimulated/floor{icon_state = "dark"},/area/space) "dOa" = (/turf/simulated/floor,/area/mine/laborcamp) "dOb" = (/obj/machinery/conveyor_switch/oneway{id = "gulag"},/turf/simulated/floor{tag = "icon-asteroidwarning (NORTH)"; icon_state = "asteroidwarning"; dir = 1; temperature = 273.15},/area/mine/explored) "dOc" = (/turf/simulated/floor{tag = "icon-asteroidwarning (NORTH)"; icon_state = "asteroidwarning"; dir = 1; temperature = 273.15},/area/mine/explored) @@ -10193,7 +10201,8 @@ "dOi" = (/obj/machinery/doppler_array{dir = 4},/turf/simulated/floor{icon_state = "bot"; dir = 1},/area/toxins/mixing{name = "\improper Toxins Lab"}) "dOj" = (/turf/simulated/floor{icon_state = "bot"; dir = 1},/area/toxins/mixing{name = "\improper Toxins Lab"}) "dOk" = (/obj/machinery/camera{c_tag = "Labor Camp External"; dir = 4; network = list("Labor")},/turf/simulated/floor{tag = "icon-asteroidwarning (NORTH)"; icon_state = "asteroidwarning"; dir = 1; temperature = 273.15},/area/mine/explored) -"dOl" = (/obj/structure/table/woodentable,/obj/item/weapon/reagent_containers/food/drinks/beer{pixel_x = 5; pixel_y = -2; step_x = 0},/obj/item/toy/cards/deck/syndicate{icon_state = "deck_syndicate_full"; pixel_x = -6; pixel_y = 6},/turf/unsimulated/floor{icon_state = "bar"; dir = 2},/area/syndicate_mothership) +"dOl" = (/obj/machinery/door/window{dir = 4; name = "Infirmary"; req_access_txt = "150"},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/space) +"dOm" = (/obj/machinery/door/window/westright{name = "Tool Storage"; req_access_txt = "150"},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/space) "dOn" = (/obj/machinery/atmospherics/pipe/simple/general/visible{dir = 9},/turf/simulated/floor{icon_state = "white"},/area/toxins/mixing{name = "\improper Toxins Lab"}) "dOo" = (/obj/structure/closet/crate,/turf/simulated/floor{icon_state = "bot"; dir = 1},/area/mine/production) "dOp" = (/obj/machinery/alarm{dir = 4; icon_state = "alarm0"; pixel_x = -22},/obj/machinery/light{icon_state = "tube1"; dir = 8},/obj/machinery/r_n_d/circuit_imprinter,/turf/simulated/floor{icon_state = "bot"},/area/assembly/robotics) @@ -10287,14 +10296,14 @@ "dPZ" = (/obj/structure/optable,/obj/item/weapon/surgical_drapes,/turf/simulated/shuttle/floor,/area/shuttle/escape/centcom) "dQa" = (/turf/simulated/floor{dir = 8; icon_state = "warning"},/area/mine/production) "dQb" = (/obj/machinery/door/airlock/external{name = "Mining Bridge"; req_access_txt = "54"},/turf/simulated/floor/airless{icon_state = "asteroidfloor"},/area/mine/west_outpost) -"dQc" = (/obj/machinery/computer/telecrystals/uplinker,/turf/unsimulated/floor{tag = "icon-podhatch (NORTHWEST)"; icon_state = "podhatch"; dir = 9},/area/syndicate_mothership) +"dQc" = (/obj/structure/table,/obj/item/weapon/storage/toolbox/syndicate,/obj/item/weapon/crowbar/red,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/space) "dQd" = (/obj/structure/lattice,/obj/structure/window/reinforced,/obj/machinery/light{icon_state = "tube1"; dir = 8},/turf/space,/area/mine/west_outpost) "dQe" = (/obj/machinery/conveyor{dir = 8; id = "gulag"},/obj/structure/plasticflaps/mining,/turf/simulated/floor{icon_state = "floorgrime"},/area/mine/laborcamp) "dQf" = (/obj/structure/lattice,/obj/structure/window/reinforced{dir = 4},/obj/machinery/light,/turf/space,/area/mine/west_outpost) "dQg" = (/obj/machinery/sleeper,/turf/simulated/shuttle/floor,/area/shuttle/escape/centcom) "dQh" = (/obj/structure/sink{dir = 4; icon_state = "sink"; pixel_x = 11; pixel_y = 0},/obj/machinery/camera{c_tag = "Xenobiology Lab - Central"; dir = 8; network = list("SS13","RD")},/turf/simulated/floor{icon_state = "white"},/area/toxins/xenobiology) -"dQi" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/machinery/door/poddoor/shutters{id = "syndieshutters"; name = "blast shutters"},/turf/simulated/shuttle/plating,/area/syndicate_station/start) -"dQj" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/poddoor/shutters{id = "syndieshutters"; name = "blast shutters"},/turf/simulated/shuttle/plating,/area/syndicate_station/start) +"dQi" = (/obj/structure/closet/syndicate/personal,/turf/unsimulated/floor{dir = 8; icon_state = "vault"},/area/space) +"dQj" = (/obj/structure/table,/obj/item/weapon/gun/energy/ionrifle,/turf/unsimulated/floor{icon_state = "dark"},/area/space) "dQk" = (/turf/space,/area/mine/explored) "dQl" = (/turf/simulated/floor{tag = "icon-asteroidwarning"; icon_state = "asteroidwarning"; temperature = 273.15},/area/mine/explored) "dQm" = (/obj/machinery/light{icon_state = "tube1"; dir = 8},/turf/simulated/floor{tag = "icon-asteroidwarning"; icon_state = "asteroidwarning"; temperature = 273.15},/area/mine/laborcamp) @@ -10303,22 +10312,23 @@ "dQp" = (/obj/machinery/light{dir = 1},/turf/simulated/floor{icon_state = "floorgrime"; temperature = 273.15},/area/mine/laborcamp) "dQq" = (/obj/machinery/atmospherics/pipe/simple,/obj/item/device/radio/intercom{desc = "Talk through this. It looks like it has been modified to not broadcast."; dir = 2; name = "Prison Intercom (General)"; pixel_x = 0; pixel_y = 24; prison_radio = 1},/turf/simulated/floor{icon_state = "floorgrime"; temperature = 273.15},/area/mine/laborcamp) "dQr" = (/obj/machinery/atmospherics/pipe/simple,/obj/structure/closet/crate/internals,/obj/item/weapon/tank/emergency_oxygen,/obj/item/weapon/tank/emergency_oxygen,/obj/item/weapon/tank/emergency_oxygen,/obj/item/weapon/tank/emergency_oxygen,/obj/item/clothing/mask/breath,/obj/item/clothing/mask/breath,/obj/item/clothing/mask/breath,/obj/item/clothing/mask/breath,/turf/simulated/floor{icon_state = "floorgrime"; temperature = 273.15},/area/mine/laborcamp) -"dQs" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/machinery/door/poddoor/shutters{id = "syndieshutters"; name = "blast shutters"},/turf/simulated/shuttle/plating,/area/syndicate_station/start) -"dQt" = (/obj/machinery/recharge_station,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_station/start) +"dQs" = (/obj/machinery/sleeper{icon_state = "sleeper-open"; dir = 4},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/space) +"dQt" = (/obj/machinery/door/window{base_state = "right"; dir = 4; icon_state = "right"; name = "Infirmary"; req_access_txt = "150"},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/space) "dQu" = (/obj/machinery/light/small{dir = 8},/turf/simulated/floor/plating/asteroid/airless,/area/mine/west_outpost) "dQv" = (/obj/machinery/portable_atmospherics/canister/carbon_dioxide,/obj/machinery/light/small{dir = 8},/turf/simulated/floor{icon_state = "bot"},/area/toxins/storage) "dQw" = (/obj/machinery/door/airlock/shuttle,/turf/simulated/shuttle/floor,/area/shuttle/transport1/centcom) "dQx" = (/turf/simulated/floor{dir = 6; icon_state = "warnwhite"; tag = "icon-warnwhite (NORTHEAST)"},/area/crew_quarters/hor) -"dQz" = (/obj/machinery/door/window{base_state = "right"; dir = 4; icon_state = "right"; name = "Uplink Management Control"; req_access_txt = "150"},/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/syndicate_mothership) -"dQA" = (/obj/effect/landmark{name = "Syndicate-Spawn"},/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/syndicate_mothership) -"dQB" = (/obj/structure/table/woodentable,/obj/item/device/syndicatedetonator{desc = "This gaudy button can be used to instantly detonate syndicate bombs that have been activated on the station. It is also fun to press."},/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/syndicate_mothership) -"dQC" = (/obj/machinery/computer/telecrystals/uplinker,/turf/unsimulated/floor{tag = "icon-podhatch (SOUTHWEST)"; icon_state = "podhatch"; dir = 10},/area/syndicate_mothership) -"dQD" = (/obj/machinery/computer/telecrystals/uplinker,/turf/unsimulated/floor{tag = "icon-podhatch (WEST)"; icon_state = "podhatch"; dir = 8},/area/syndicate_mothership) +"dQy" = (/obj/machinery/door/window{dir = 8; name = "Tool Storage"; req_access_txt = "150"},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/space) +"dQz" = (/obj/structure/table,/obj/item/weapon/gun/syringe{pixel_x = 1; pixel_y = 2},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/space) +"dQA" = (/obj/structure/table,/obj/item/weapon/reagent_containers/syringe/antitoxin,/obj/item/weapon/reagent_containers/syringe/antitoxin{pixel_y = 2},/obj/item/weapon/reagent_containers/syringe/antitoxin{pixel_y = 4},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/space) +"dQB" = (/obj/machinery/door/window{dir = 1; name = "Secure Storage"; req_access_txt = "150"},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/space) +"dQC" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 1},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/space) +"dQD" = (/obj/structure/table,/obj/item/weapon/grenade/syndieminibomb{pixel_x = 4; pixel_y = 2},/obj/item/weapon/grenade/syndieminibomb{pixel_x = -1},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/space) "dQE" = (/obj/structure/filingcabinet/chestdrawer,/obj/machinery/alarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_y = -29},/turf/simulated/floor{tag = "icon-cafeteria (NORTHEAST)"; icon_state = "cafeteria"; dir = 5},/area/crew_quarters/hor) "dQF" = (/obj/machinery/portable_atmospherics/canister/sleeping_agent,/obj/structure/extinguisher_cabinet{pixel_x = -27; pixel_y = 0},/turf/simulated/floor{icon_state = "bot"},/area/toxins/storage) "dQG" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 1; external_pressure_bound = 0; initialize_directions = 1; internal_pressure_bound = 4000; on = 0; pressure_checks = 2; pump_direction = 0},/obj/structure/sign/securearea{desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; pixel_x = 0; pixel_y = -32},/turf/simulated/floor/engine/vacuum,/area/maintenance/incinerator) "dQH" = (/obj/structure/table,/obj/machinery/cell_charger{pixel_y = 5},/obj/item/stack/cable_coil,/obj/item/device/multitool,/obj/item/weapon/stock_parts/cell/high{charge = 100; maxcharge = 15000},/turf/simulated/floor/engine,/area/toxins/xenobiology) -"dQI" = (/obj/structure/table,/obj/item/stack/sheet/glass{amount = 10},/obj/item/weapon/stock_parts/cell{charge = 100; maxcharge = 15000},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_station/start) +"dQI" = (/obj/structure/table,/obj/item/device/sbeacondrop/bomb{pixel_y = 5},/obj/item/device/sbeacondrop/bomb,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/space) "dQJ" = (/obj/item/weapon/stock_parts/cell{charge = 100; maxcharge = 15000},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/derelict/ship) "dQK" = (/obj/item/weapon/stock_parts/cell,/turf/simulated/floor/plating/airless,/area/tcommsat/chamber) "dQL" = (/obj/item/weapon/stock_parts/cell{step_x = 0},/turf/simulated/floor/plating/airless,/area/AIsattele) @@ -10441,6 +10451,8 @@ "dSY" = (/turf/simulated/floor{icon_state = "delivery"; name = "floor"},/area/mine/production) "dSZ" = (/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/turf/simulated/wall,/area/mine/eva) "dTa" = (/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/turf/simulated/wall,/area/mine/eva) +"dTb" = (/obj/effect/landmark{name = "Nuclear-Bomb"},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/space) +"dTc" = (/obj/machinery/telecomms/allinone{intercept = 1},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/space) "dTd" = (/obj/machinery/atmospherics/pipe/simple{dir = 4},/obj/structure/disposalpipe/segment,/turf/simulated/floor,/area/mine/eva) "dTe" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/machinery/atmospherics/pipe/simple{dir = 4},/turf/simulated/floor/plating,/area/mine/eva) "dTf" = (/obj/structure/disposalpipe/segment,/turf/simulated/floor,/area/mine/eva) @@ -10517,6 +10529,17 @@ "dUy" = (/obj/structure/lattice,/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/turf/space,/area/space) "dUz" = (/obj/machinery/vending/cigarette,/obj/machinery/newscaster{pixel_y = 32},/turf/simulated/floor{icon_state = "bar"},/area/mine/living_quarters) "dUA" = (/obj/machinery/computer/arcade,/turf/simulated/floor{icon_state = "bar"},/area/mine/living_quarters) +"dUB" = (/obj/structure/table,/obj/item/robot_parts/r_arm,/obj/item/weapon/storage/firstaid/regular{pixel_x = 0; pixel_y = 0},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/space) +"dUC" = (/obj/structure/closet/crate/internals,/obj/item/weapon/tank/oxygen/red,/obj/item/clothing/mask/gas,/obj/item/weapon/tank/oxygen/red,/obj/item/clothing/mask/gas,/obj/item/weapon/tank/oxygen/red,/obj/item/clothing/mask/gas,/obj/item/weapon/tank/oxygen/red,/obj/item/clothing/mask/gas,/obj/item/weapon/tank/oxygen/red,/obj/item/clothing/mask/gas,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/space) +"dUD" = (/obj/structure/closet/crate/medical,/obj/item/weapon/surgicaldrill,/obj/item/weapon/scalpel,/obj/item/weapon/reagent_containers/glass/bottle/stoxin,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/space) +"dUE" = (/obj/structure/shuttle/engine/heater,/obj/structure/window/reinforced{dir = 1},/turf/simulated/shuttle/plating,/area/space) +"dUF" = (/obj/machinery/teleport/station,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/space) +"dUG" = (/obj/machinery/teleport/hub/syndicate,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/space) +"dUH" = (/obj/structure/shuttle/engine/propulsion,/turf/space,/area/space) +"dUI" = (/obj/structure/shuttle/engine/propulsion{icon_state = "propulsion_r"},/turf/space,/area/space) +"dUJ" = (/obj/structure/shuttle/engine/propulsion{icon_state = "propulsion_l"},/turf/space,/area/space) +"dUK" = (/obj/structure/showcase{desc = "A historical figure of great importance to the wizard federation. He spent his long life learning magic, stealing artifacts, and harassing idiots with swords. May he rest forever, Rodney."; icon = 'icons/mob/mob.dmi'; icon_state = "nim"; name = "wizard of yendor showcase"},/turf/unsimulated/floor{dir = 1; icon_state = "chapel"},/area/wizard_station) +"dUL" = (/obj/effect/decal/cleanable/cobweb2,/obj/structure/showcase{desc = "A strange machine supposedly from another world. The Wizard Federation has been meddling with it for years."; icon_state = "processor"; name = "byond random number generator"},/turf/unsimulated/floor{dir = 4; icon_state = "chapel"},/area/wizard_station) (1,1,1) = {" aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa @@ -10932,37 +10955,37 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacMxcMxcMxcMxcMxcMxcMxcMxcMxcMxcMxcMxcMxcMxcMxcMxdzzcMxcMxcMAdxXcLIdzudzAdztcMzdxXcMAcMidyadzydzydzydzydzydxZcLTcMjcMdcMtcMEcMjcMdcMtcMadRacMkcMkdRecMEaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacMxcMHcMHcMHcMHcMHcMHcMHcMHcMHcMHcMHcMHcMHdzBdyedyddyccMxcMAdxXcMZcLIcLIcLIcNadxXcMAcMidBbcMMcMMcMNcMOcMPcMOdPScMdcMdcMtdPTcMjcMdcMtcMSdRgcMvcMkdRmcMaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacMxcMHdzedzndzDdzedzndzndzncMWdzndzndzEdzpdzqdyedyddyccMxcMAdxXcNocLIcLIcLIdCbcMncMAcMidBbcMMcMMcMNdyadzydxZcMacNUcMdcMtcMucMjcMdcNqcMadRMdRydROdRNcMaaaaalIaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacNgcNgcNgcNgcNgcNgcNgcNgcNgcNgcNgcNgcNgcNgcNgcNgcNgcNgcNgcNgcNgcNgcNgcNgcNgcNgcNgcNgcNgcNgaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacMxdzedzdcNidzbdzccNlcNlcNlcNlcNlcNldyYdyZdzadyedyddyccMxcMAcMncNocLIcLIcLIcLJcLDdyXcMicNpcMMcMMcMNcMiaaaaaacLTcMjcMdcMtcMEcMjcMddPXcNrdPWcMScNPdPVcNuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacNgcNvcNvcNvcNvcNvcNvcNvcNvcNvcNwcNvcNvcNvcNxcNycNvcNvcNvcNxcNvcNvcNvcNvcNvcNvcNxcNvcNvcNgaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacMxcMWcNicNzcNidQwcNicNicNicNicNicNidQwdzfcMHdyddyddzhcMxdzgcMxcLHcLIcLIcLIcLIcLIcLIcMMcMMcMMcMMcMNcNEaaaaaacMRcMjcMdcMdcMdcMdcMdcMtcMSdQgdQgcMddPZcMaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacNgcNvcNvcNvcNvcNwcNvcNvcNvcNvcNvcNvcNvcNvcNvcNvcNvcNxcNvcNvcNvcNvcNvcNxcNvcNvcNvcNvcNvcNgaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacMxdzldzkcNidzmdzccNMcNMcNMcNMcNMcNMdyYdyZdzidyedyddyddzjdyddydcLIcLIcLIcLIcLIcLIcLIcMMcMMcMMcMMcMNcMiaaaaaacLTcMjcMdcMtcMucMjcMdcMdcNPcMdcMdcMddQQcLTaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacNgcNvcNvcNvcNvcNvcNvcNvcNQcNvcNvcNvcNvcNvcNwcNvcNvcNycNxcNvcNvcNxcNvcNvcNxcNycNvcNxcNvcNgaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacMxcMHdzldzndzodzldzndzndzncMWdzndzndzrdzpdzqdyedyddzscMxdzgcMxcMZcLIcLIcLIcNacLDdyXcMicNTcMMcMMcMNdyadzydxZdQTcMjcMdcMtcMEcMjcMdcMtcMSdQXdQWdQVdQUcMaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacNgcNvcNvcNvcNvcNvcNvcNvcNvcNvcNvcNvcNvcNvcNvcNvcNvcNvcNvcNwcNvcNvcNxcNycNvcNvcNxcNvcNycNgaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacMxcMHcMHcMHcMHcMHcMHcMHcMHcMHcMHcMHcMHcMHdyfdyedyddyccMxcMAdybcNXcLIcLIcLIcNYdybcMAcMidBbcMMcMMcMNcMOcMPcMOdPScMdcMdcMtdPTcMjcMdcNccNrcLScLScOacLScNuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacNgcNvcNvcNvcNvcNvcNvcNvcNvcNvcNvcNvcNvcNvcNvcNvcNwcNvcNvcNvcNvcNvcNycNvcNxcNycNvcNxcNvcNgaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacObcObcObcObcObcObcObcObcObcObcObcObcObcObcObcObdAXcObcObcMAdxXcNXcLIcLIcLIcNYdxXcMAcMidyadxZcOddyadzydzydxZcLTcMjcMdcMtcMucMjcMdcMtdBOdBSdBSdBSdPRcMaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacNgcNvcNvcNvcNvcNvcNvcOfcOfcOfcOfcOfcOfcOfcNvcNvcNvcNvcNvcNvcNvcNxcNvcNvcNQcNycNvcNvcNvcNgaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacObcMAcMncNXcLIcLIcLIcNYcMncMAcMicOscOscOscOscMOcMPcMOdPNcMdcMdcMtcMEcMjcMdcMddBQdBRdBRdBRdPQcLTaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacNgcNvcNvcNvcNvcNvcOwcOxdQjdQidQidQidQscOxcOBcNvcNvcNvcNvcNQcNvcOfcNwcOfcNwcNvcNxcNvcNxcNgaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacObcOFcOFdxVdxndxAdxrdxWcOFcOFcMicOscOscOscOsdyadzydxZcMadPMcMddPKcMddPKcMddPJdBOdPHdPIdBNdPLcMaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacNgcNvcNvcNvcNvcNvcOxcOOcOPcOQcORcOScOTcOTcOxdxPcNvcNvcOfcNgcNgdxDdxBcNgcNgcOfcOVcOWcOfcNgaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacObcPdcPecPfcPgdxFcPicPfcPecPdcMicPjcPkcPlcPmcMiaaaaaacNrcLScOacLScPncLScOacLScPocLScLVcLScLScNuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacNgcNvcNvcNvcNvcNvcOxcPpcOPcOPcPqcOPcOPcOPcOxdxPcNvdxucNgcNgdDgdDhdDhdDgcNgcNgcNgcNgcNgcNgcNgcNgaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacObcPedAJcPxcPgdxFcPicPxdAQcPecMicOscPzdAOdANcMiaaaaaacMucQkcMdcMdcMddPFcMdcPQcMadPGcMadPDdvkcLTaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacNgcNvcNvcNvcNvcNvcOxdQIcOPcOPcOPcPHcOPcPIcOxdxPcNQdxucNgcPJcPJcPJcPJcPJcPJcPJcPJcNgcPKcPLcXVcNgaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacObdxQcPedxQcPgdxFcPidxQcPedxQcMicOscOscOscOscMiaaaaaacNFdPrcMddPsdPwdPBcMdcMdcQqcOvcQpcMkcMkcQpaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacNgcNvcNvcNvcNvcNvcPXcOxcOxcOxcPYcOxcOxcOxcPZcNvcNvdxycNgcQbcQdcQdcPJcPJcPJcPJcPJcQecQfcQfcQfcNgaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacObcQicPecPecPgdxFcPicPecPecQjcMicOscOscOsdxOcMiaaaaaacMEdPpdPndvgdPmcPBdPldPjcMadPicMacPUcMkcLTaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacNgcNvcNvcNvcNvcNvcNvcNvcOxcQrcOPcQscOxdxNcOfcOfcOfdxMcNgcPJcQvdDfcQdcPJcPJcQcdQccNgdxLcQycNgcNgaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacObcQBcQCcQCcPgdxFcPicQDcQDcQEcMicMidAqcMicMicMiaaaaaacQGcLScLScLScLScLScLScLScQHcLScQHcLScLScQIaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacNgcNvcNvcNvcNvcNvcNvcNvcOxcOPcOPcOPcOxdxIdxCdxCdxBcNgcNgcPJdDedOlcQdcPJcPJcQcdQDcNgcNgcNgcNgaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacObcOFcOFcOFcOFdxFcOFcOFcOFcOFcOFaaaaaaaaaaaaaaaaaaaaaaaacQQcQRcQRcQRcQScQRcQRcQScQRcQRcQRcQTaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacNgcNvcNvcOwcOxcOxcOxcOxcOxcOPcOPcOPcOxdxGcQVcQVcQVcQWdEYcPJcPJcPJcPJcPJcPJcQcdQDcNgcNgcNgcNgaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacOFdxFcOFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacQZcQZcQZcQScQZcQZcQScQZcQZcQZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacNgcNvcNvcOxcPIcOPcOPdxEcOxcOPcOPcOPcOxcRbcQWdxDdxBcNgcNgcPJcQdcQdcQdcPJcPJcQcdQCcNgdDcdDbcNgcNgaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacOFcOFcOFcOFcOFcOFcOFcOFdxAcOFcOFcOFcOFcOFcOFcOFcOFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacNgcNvcNvcOxcPIcOPcRfcRgcOxcOPcOPcOPcOxcOxdEvcRicOBdxpcNgdCZdCYdQBdCYdCYcPJcPJcPJcRccRdcRdcRecNgaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacOFdxtdxsdxsdxsdxsdxsdxtdxtdxtdxsdxsdxsdxsdxsdxtcOFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacNgcRocNvcOxcPIcOPcRfcRpcOxcOPcOPcOPcOxcOPcOPcOPcOxdxycNgdEXdQAdCXdQAdQzcPJcPJcPJcNgcRlcRdcRecNgaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadzLdxtdxtdxtdxvdxtdxtdxtdxtdxtdxtdxtdxvdxtdxtdxtdzLaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacNgcNvcNvcOxcPIcOPcOPcOPcRscOPcOPcOPcRtcOPcOPcOPcOxdxucNgcNgdQcdCRdCUdCTcNgcNgcNgcNgcNgcNgcNgcNgaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacOFdxtdxsdxsdxsdxsdxsdxtdxtdxtdxsdxsdxsdxsdxsdxtcOFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacNgcNvcNvcOxcPIcOPcOPcOPcRwcOPcOPcOPcRxcOPcOPdrFcOxdxqdxpcNgcNgcNgcNgcNgcNgaaaaaaaaaaaaaaaaaaaaaaaaaaacRAcRAcRAcRAcRAcRAcRAcRAcRAcRAcRAcRAaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacOFdxrdxodxodxodxodxodxodxodxodxodxodxodxodxodxncOFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacNgcNvcOwcOxcOxcOxcOxcOxcOxcRDcOPcOPcOxcOxcOxcOxcOxcOxcOBdxpcNgaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacRAcREcRFcRGcRHcRIcRJcRAcRKcRLdDicRAaaaaaacRNcRNcRNcRNcRNcRNcRNcRNcRNcROcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcROcRNcRNcRNcRNcRNcRNcRNcRNcRNaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacNgcNvcOxdQtdQtcRQcRRcRScOxcOPcOPcOPcOxdDndDmdDldDjdDkcOxdxucNgaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacRAcRGcRGcRGcRGcRGcRGcRGcRYcRZcSacRAaaaaaacRNdrGcSccSdcSdcSdcSdcSdcSecSfcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcSgcSecShcShcShcShcShcScdrQcRNaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacNgcNvcOxcOPcOPcOPcOPcOPcSlcOPcOPcOPcSmcOPcOPcOPcOPdBVcOxdxucNgaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacRAcSocSocRGcRGcRGcSpcRAcYecSrcSscRAaaaaaacRNdrGcSccSdcStcSdcStcSdcSecSfcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcSgcSecShcSucShcSucShcScdrQcRNaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacNgcNvcOxdyAcOPcOPcOPcOPcSvcOPcOPcOPcSwcOPcOPcOPcOPdyGcOxcNvcNgaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacRAcRGcRGcRGcRGcSxcSxcRAcRAcSycRAcRAaaaaaacRNdrGcSccSdcSdcSzcSdcSdcSecSfcRPcRPcRPcRPcRPcSAcSBcSAcRPcRPcRPcRPcRPcSgcSecShcShcSCcShcShcScdrQcRNaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacNgcNvcOxdyAcOPcOPcSEcQrcOxcSFcSGcSHcOxdBVdyGcOPcOPcOPcOxcNvcNgaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacRAcSJcSJcRGcSKcSLcSMcRAcSNcSycSOcRAaaaaaacRNdrGcSccSdcSdcSdcSdcSdcSecSfcRPcRPcRPcRPcRPcSAcSPcSAcRPcRPcRPcRPcRPcSgcSecShcShcShcShcShcScdrQcRNaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacNgcNvcOxcOPcOPcOPcOxcOxcOxcSQcSRcOPcOxcOxcOxcOPcOPcOPcOxcNvcNgaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacRAcRGcRGcRGcSKdyDcSTcRAcSUcSycSVcRAaaaaaacRNdrGcSccSdcStcSdcStcSdcSecSfcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcSgcSecShcSucShcSucShcScdrQcRNaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacNgcNvcOxcQrcSWcSXcOxcNvcOxdyvdyvdyvcOxcNvcOxcOTcSZcTacOxcNvcNgaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacRAcRGcRGcRGcRGcRGcRAcRAcRAcRAcRAcRAaaaaaacRNdrGcTbcSdcSdcSdcSdcSdcSecSfcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcSgcSecShcShcShcShcShcTbdrQcRNaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacNgcNvcOxdyvdyvdyvcOxcNvcPXdyocTddypcPZcNvcOxdyvdyvdyvcOxcNvcNgaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacRAdyxdyzdyycRGcRGcTjcTkcTlcTmcTncRAaaaaaacRNcRNcRNcTocTocTocTocTocRNcROcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcROcRNcTocTocTocTocTocRNcRNcRNaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacNgcNvcPXdyocTddypcPZcNvcNvcNvcNvcNvcNvcNvcPXdyocTddypcPZcNvcNgaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacRAcTpcTqdyrcRGcRGcRGcTscTtcTscTucRAaaaaaaaaaaaacRNcTvcTvcTvcTvcTvcTwdyqdymdymdymdymdymdymdymdymdymdymdymdymdymdyncTwcTAcTAcTAcTAcTAcRNaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacNgcNvcNvcNvcNvcNvcNvcNvcNvcNvcNvcNvcNvcNvcNvcNvcNvcNvcNvcNvcNgaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacRAcTqdytdyrcRGcRGcRGcTBcTCcTBcTCcRAaaaaaaaaaaaacRNcRNcRNcRNcRNcRNcTwdyidysdysdysdysdysdyidyidyidysdysdysdysdysdyicTwcRNcRNcRNcRNcRNcRNaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacNgcNgcNgcNgcNgcNgcNgcNgcNgcNgcNgcNgcNgcNgcNgcNgcNgcNgcNgcNgcNgaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacRAcTpcTFcTGcRGcRGcTjcTIcTucTJcTKcRAaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacTwdyidyidyidyhdyicTLcTLcTLcTLcTLdyidyhdyidyidyicTwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacRncRncRncRncRncRncRncRncRncRncRncRncRncRncRncRncRncRncRncRncRncRncRncRncRncRncRncRncRncRnaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacMxdzedzdcNidzbdzccNlcNlcNlcNlcNlcNldyYdyZdzadyedyddyccMxcMAcMncNocLIcLIcLIcLJcLDdyXcMicNpcMMcMMcMNcMiaaaaaacLTcMjcMdcMtcMEcMjcMddPXcNrdPWcMScNPdPVcNuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacRncEQcEQcEQcEQcEQcEQcEQcEQcEQcKDcEQcEQcEQcNgcNvcEQcEQcEQcNgcEQcEQcEQcEQcEQcEQcNgcEQcEQcRnaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacMxcMWcNicNzcNidQwcNicNicNicNicNicNidQwdzfcMHdyddyddzhcMxdzgcMxcLHcLIcLIcLIcLIcLIcLIcMMcMMcMMcMMcMNcNEaaaaaacMRcMjcMdcMdcMdcMdcMdcMtcMSdQgdQgcMddPZcMaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacRncEQcEQcEQcEQcKDcEQcEQcEQcEQcEQcEQcEQcEQcEQcEQcEQcNgcEQcEQcEQcEQcEQcNgcEQcEQcEQcEQcEQcRnaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacMxdzldzkcNidzmdzccNMcNMcNMcNMcNMcNMdyYdyZdzidyedyddyddzjdyddydcLIcLIcLIcLIcLIcLIcLIcMMcMMcMMcMMcMNcMiaaaaaacLTcMjcMdcMtcMucMjcMdcMdcNPcMdcMdcMddQQcLTaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacRncEQcEQcEQcEQcEQcEQcEQcNwcEQcEQcEQcEQcEQcKDcEQcEQcNvcNgcEQcEQcNgcEQcEQcNgcNvcEQcNgcEQcRnaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacMxcMHdzldzndzodzldzndzndzncMWdzndzndzrdzpdzqdyedyddzscMxdzgcMxcMZcLIcLIcLIcNacLDdyXcMicNTcMMcMMcMNdyadzydxZdQTcMjcMdcMtcMEcMjcMdcMtcMSdQXdQWdQVdQUcMaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacRncEQcEQcEQcEQcEQcEQcEQcEQcEQcEQcEQcEQcEQcEQcEQcEQcEQcEQcKDcEQcEQcNgcNvcEQcEQcNgcEQcNvcRnaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacMxcMHcMHcMHcMHcMHcMHcMHcMHcMHcMHcMHcMHcMHdyfdyedyddyccMxcMAdybcNXcLIcLIcLIcNYdybcMAcMidBbcMMcMMcMNcMOcMPcMOdPScMdcMdcMtdPTcMjcMdcNccNrcLScLScOacLScNuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacRncEQcEQcEQcEQcEQcEQcEQcEQcEQcEQcEQcEQcEQcEQcEQcKDcEQcEQcEQcEQcEQcNvcEQcNgcNvcEQcNgcEQcRnaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacObcObcObcObcObcObcObcObcObcObcObcObcObcObcObcObdAXcObcObcMAdxXcNXcLIcLIcLIcNYdxXcMAcMidyadxZcOddyadzydzydxZcLTcMjcMdcMtcMucMjcMdcMtdBOdBSdBSdBSdPRcMaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacRncEQcEQcEQcEQcEQcEQcNxcNxcNxcNxcNxcNxcNxcEQcEQcEQcEQcEQcEQcEQcNgcEQcEQcNwcNvcEQcEQcEQcRnaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacObcMAcMncNXcLIcLIcLIcNYcMncMAcMicOscOscOscOscMOcMPcMOdPNcMdcMdcMtcMEcMjcMdcMddBQdBRdBRdBRdPQcLTaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacRncEQcEQcEQcEQcEQcNyaawcOfcNQcNQcNQcOxaawcOwcEQcEQcEQcEQcNwcEQcNxcKDcNxcKDcEQcNgcEQcNgcRnaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacObcOFcOFdxVdxndxAdxrdxWcOFcOFcMicOscOscOscOsdyadzydxZcMadPMcMddPKcMddPKcMddPJdBOdPHdPIdBNdPLcMaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacRncEQcEQcEQcEQcEQaawcOBcOQcORcOOcOPcOTcOTaawcOScEQcEQcNxcRncRncOWcOVcRncRncNxcPpcPqcNxcRnaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacObcPdcPecPfcPgdxFcPicPfcPecPdcMicPjcPkcPlcPmcMiaaaaaacNrcLScOacLScPncLScOacLScPocLScLVcLScLScNuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacRncEQcEQcEQcEQcEQaawcPHcOQcOQcPIcOQcOQcOQaawcOScEQcPJcRncRncPLcPKcPKcPLcRncRncRncRncRncRncRncRnaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacObcPedAJcPxcPgdxFcPicPxdAQcPecMicOscPzdAOdANcMiaaaaaacMucQkcMdcMdcMddPFcMdcPQcMadPGcMadPDdvkcLTaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacRncEQcEQcEQcEQcEQaawcPXcOQcOQcOQcPYcOQcPZaawcOScNwcPJcRncQbcQccQccQccQccQfcQrcQdcQecQvcQycQscRnaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacObdxQcPedxQcPgdxFcPidxQcPedxQcMicOscOscOscOscMiaaaaaacNFdPrcMddPsdPwdPBcMdcMdcQqcOvcQpcMkcMkcQpaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacRncEQcEQcEQcEQcEQcQVaawaawaawcQWaawaawaawcRbcEQcEQcRdcRncRccQccRecRecRfcQccQccQccRgcRicRicRicRnaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacObcQicPecPecPgdxFcPicPecPecQjcMicOscOscOsdxOcMiaaaaaacMEdPpdPndvgdPmcPBdPldPjcMadPicMacPUcMkcLTaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacRncEQcEQcEQcEQcEQcEQcEQaawcRocOQcRlaawcRpcNxcNxcNxcRscRncQccRecRwcRtcRecQccRDcRxcQecRKcRQcRncRnaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacObcQBcQCcQCcPgdxFcPicQDcQDcQEcMicMidAqcMicMicMiaaaaaacQGcLScLScLScLScLScLScLScQHcLScQHcLScLScQIaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacRncEQcEQcEQcEQcEQcEQcEQaawcRScOQcRRaawcSmcSlcSlcSlcOVcRncQccRecSwcSvcRecQccRDcSEcRncRncRncRnaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacObcOFcOFcOFcOFdxFcOFcOFcOFcOFcOFaaaaaaaaaaaaaaaaaaaaaaaacQQcQRcQRcQRcQScQRcQRcQScQRcQRcQRcQTaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacRncEQcEQcNyaawaawaawaawaawcRScOQcRRaawcSGcSFcSFcSFcSFcSHcQccQccQccQccQccQccRDcSEcRncRncRncRnaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacOFdxFcOFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacQZcQZcQZcQScQZcQZcQScQZcQZcQZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacRncEQcEQaawcSRcOQcOQcSQaawcRScOQcRRaawcSXcSWcOWcSlcOVcRncSZcRecRecRecQccQccRDcTacRncTdcTkcRncRnaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacOFcOFcOFcOFcOFcOFcOFcOFdxAcOFcOFcOFcOFcOFcOFcOFcOFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacRncEQcEQaawcSRcOQcTncXVaawcRScOQcRRaawaawdqidrFcOwdxqcRndxpdxudxydxudxucQccQccQcdxBdxDdxDdxCcRnaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacOFdxtdxsdxsdxsdxsdxsdxtdxtdxtdxsdxsdxsdxsdxsdxtcOFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacRndxEcEQaawcSRcOQcOQdxGaawcOQcOQcOQaawcOQcOQcOQaawcRdcRndxIdxMdxIdxIdxLcQccQccQccRndxNdxPdxCcRnaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadzLdxtdxtdxtdxvdxtdxtdxtdxtdxtdxtdxtdxvdxtdxtdxtdzLaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacRncEQcEQaawcSRcOQcOQcOQdyocOQcOQcOQdypcOQcOQcOQaawcPJcRncRncRxdyGdyvdyAcRndBVcQccRncRncRncRncRnaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacOFdxtdxsdxsdxsdxsdxsdxtdxtdxtdxsdxsdxsdxsdxsdxtcOFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacRncEQcEQaawcSRcOQcOQcOQdCRcOQcOQcOQdCUcOQcOQdCTaawdCXdxqcRncRncRncRncRncRndCYdCYdCZdDcdDedDbcRnaaaaaacRAcRAcRAcRAcRAcRAcRAcRAcRAcRAcRAcRAaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacOFdxrdxodxodxodxodxodxodxodxodxodxodxodxodxodxncOFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacRncEQcNyaawaawaawaawaawaawdDfcOQcOQaawaawaawaawaawaawcOwdDgdDgdDgdDhdxqcRndDjdDjdDjdDjdDjdDjcRnaaaaaacRAcREcRFcRGcRHcRIcRJcRAdDkcRLdDicRAaaaaaacRNcRNcRNcRNcRNcRNcRNcRNcRNcROcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcROcRNcRNcRNcRNcRNcRNcRNcRNcRNaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacRncEQaawdDldDldEvdDmdDnaawdEXcOQcOQaawdLydEYdLxdLzdLAaawcEQcKDcEQcEQcPJcQedDjdDjdDjdDjdDjdNZcRnaaaaaacRAcRGcRGcRGcRGcRGcRGcRGcRYcRZcSacRAaaaaaacRNdrGcSccSdcSdcSdcSdcSdcSecSfcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcSgcSecShcShcShcShcShcScdrQcRNaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacRncEQaawcOQcOQcOQcTncOQdOlcOQcOQcOQdOmcOQcTncOQcTndQcaawcEQcNwcPqcKDcRscRndQidQidQidQidQidQjcRnaaaaaacRAcSocSocRGcRGcRGcSpcRAcYecSrcSscRAaaaaaacRNdrGcSccSdcStcSdcStcSdcSecSfcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcSgcSecShcSucShcSucShcScdrQcRNaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacRncEQaawdQscOQcOQcOQcOQdQtcOQcOQcOQdQycOQcOQcOQcOQcOQaawcEQcRncRncRncRncRncRncRncRncRncRncRncRnaaaaaacRAcRGcRGcRGcRGcSxcSxcRAcRAcSycRAcRAaaaaaacRNdrGcSccSdcSdcSzcSdcSdcSecSfcRPcRPcRPcRPcRPcSAcSBcSAcRPcRPcRPcRPcRPcSgcSecShcShcSCcShcShcScdrQcRNaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacRncEQaawdQscOQcOQdQzdQAaawdQCdQBdQCaawdQIdQDcOQcOQcOQaawcEQcRnaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacRAcSJcSJcRGcSKcSLcSMcRAcSNcSycSOcRAaaaaaacRNdrGcSccSdcSdcSdcSdcSdcSecSfcRPcRPcRPcRPcRPcSAcSPcSAcRPcRPcRPcRPcRPcSgcSecShcShcShcShcShcScdrQcRNaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacRncEQaawcOQcOQcOQaawaawaawdTcdTbcOQaawaawaawcOQcOQcOQaawcEQcRnaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacRAcRGcRGcRGcSKdyDcSTcRAcSUcSycSVcRAaaaaaacRNdrGcSccSdcStcSdcStcSdcSecSfcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcSgcSecShcSucShcSucShcScdrQcRNaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacRncEQaawdUBdUCdUDaawcEQaawdUEdUEdUEaawcEQaawcOTdUFdUGaawcEQcRnaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacRAcRGcRGcRGcRGcRGcRAcRAcRAcRAcRAcRAaaaaaacRNdrGcTbcSdcSdcSdcSdcSdcSecSfcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcSgcSecShcShcShcShcShcTbdrQcRNaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacRncEQaawdUEdUEdUEaawcEQcQVdUJdUHdUIcRbcEQaawdUEdUEdUEaawcEQcRnaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacRAdyxdyzdyycRGcRGcTjdUKcTlcTmdULcRAaaaaaacRNcRNcRNcTocTocTocTocTocRNcROcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcROcRNcTocTocTocTocTocRNcRNcRNaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacRncEQcQVdUJdUHdUIcRbcEQcEQcEQcEQcEQcEQcEQcQVdUJdUHdUIcRbcEQcRnaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacRAcTpcTqdyrcRGcRGcRGcTscTtcTscTucRAaaaaaaaaaaaacRNcTvcTvcTvcTvcTvcTwdyqdymdymdymdymdymdymdymdymdymdymdymdymdymdyncTwcTAcTAcTAcTAcTAcRNaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacRncEQcEQcEQcEQcEQcEQcEQcEQcEQcEQcEQcEQcEQcEQcEQcEQcEQcEQcEQcRnaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacRAcTqdytdyrcRGcRGcRGcTBcTCcTBcTCcRAaaaaaaaaaaaacRNcRNcRNcRNcRNcRNcTwdyidysdysdysdysdysdyidyidyidysdysdysdysdysdyicTwcRNcRNcRNcRNcRNcRNaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacRncRncRncRncRncRncRncRncRncRncRncRncRncRncRncRncRncRncRncRncRnaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacRAcTpcTFcTGcRGcRGcTjcTIcTucTJcTKcRAaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacTwdyidyidyidyhdyicTLcTLcTLcTLcTLdyidyhdyidyidyicTwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacRAcRAcRAcRAcRAcRAcRAcRAcRAcRAcRAcRAaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacTwcTwdBTcTwcTwcTwcTwdyldyjdykcTwcTwcTwcTwdBTcTwcTwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacTwcTwdygcTwcTwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacTwcTwcTwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa From 5bfd7e96028cba1ff71206a63332f284bfea074c Mon Sep 17 00:00:00 2001 From: WJohn Date: Thu, 6 Nov 2014 05:39:23 -0500 Subject: [PATCH 071/102] Adds more shutters to robotics. Fixes #5689. Fixes #5021. --- _maps/map_files/tgstation.2.1.3.dmm | 18 ++++++++---------- 1 file changed, 8 insertions(+), 10 deletions(-) diff --git a/_maps/map_files/tgstation.2.1.3.dmm b/_maps/map_files/tgstation.2.1.3.dmm index 326bda483f4..eb166d8d62a 100644 --- a/_maps/map_files/tgstation.2.1.3.dmm +++ b/_maps/map_files/tgstation.2.1.3.dmm @@ -1852,7 +1852,7 @@ "aJF" = (/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/turf/simulated/floor/plating,/area/hallway/primary/port) "aJG" = (/obj/structure/table/woodentable,/obj/item/weapon/book/manual/wiki/security_space_law,/obj/item/weapon/book/manual/wiki/security_space_law,/obj/item/weapon/pen/red,/turf/simulated/floor/wood,/area/lawoffice) "aJH" = (/obj/machinery/door/airlock/maintenance{req_access_txt = "12"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor/plating,/area/maintenance/fsmaint) -"aJI" = (/obj/machinery/door/poddoor/shutters{id = "stationawaygate"; name = "Gateway Access Shutters"},/obj/machinery/door/firedoor/border_only,/turf/simulated/floor,/area/gateway) +"aJI" = (/obj/machinery/camera{c_tag = "Robotics Lab"; dir = 2; network = list("SS13","RD")},/obj/machinery/door_control{dir = 2; id = "robotics"; name = "Shutters Control Button"; pixel_x = 6; pixel_y = 24; req_access_txt = "29"},/turf/simulated/floor{dir = 4; icon_state = "whiteredcorner"},/area/assembly/robotics) "aJJ" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/door/poddoor/shutters{id = "stationawaygate"; name = "Gateway Access Shutters"},/turf/simulated/floor,/area/gateway) "aJK" = (/obj/structure/sign/securearea,/turf/simulated/wall/r_wall,/area/gateway) "aJL" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plating,/area/ai_monitored/storage/eva) @@ -3128,7 +3128,7 @@ "bih" = (/obj/machinery/power/apc{dir = 8; name = "Robotics Lab APC"; pixel_x = -25},/obj/structure/cable{icon_state = "0-2"; d2 = 2},/turf/simulated/floor{icon_state = "white"},/area/assembly/robotics) "bii" = (/obj/structure/stool/bed/chair/office/light{dir = 1},/obj/effect/landmark/start{name = "Roboticist"},/turf/simulated/floor{icon_state = "white"},/area/assembly/robotics) "bij" = (/turf/simulated/floor{icon_state = "white"},/area/assembly/robotics) -"bik" = (/obj/machinery/camera{c_tag = "Robotics Lab"; dir = 2; network = list("SS13","RD")},/obj/machinery/door_control{dir = 2; id = "robotics"; name = "Shutters Control Button"; pixel_x = 6; pixel_y = 24},/turf/simulated/floor{dir = 4; icon_state = "whiteredcorner"},/area/assembly/robotics) +"bik" = (/obj/machinery/camera{c_tag = "Research and Development"; dir = 2; network = list("SS13","RD"); pixel_x = 22},/obj/machinery/door_control{dir = 2; id = "rnd"; name = "Shutters Control Button"; pixel_x = -6; pixel_y = 24; req_access_txt = "47"},/turf/simulated/floor{dir = 1; icon_state = "whitepurplecorner"},/area/toxins/lab) "bil" = (/turf/simulated/floor{dir = 1; icon_state = "whitered"},/area/assembly/robotics) "bim" = (/obj/structure/stool,/turf/simulated/floor{dir = 1; icon_state = "whitered"},/area/assembly/robotics) "bin" = (/obj/structure/filingcabinet/chestdrawer,/turf/simulated/floor{dir = 1; icon_state = "whitered"},/area/assembly/robotics) @@ -3136,7 +3136,7 @@ "bip" = (/obj/machinery/door/airlock/maintenance{name = "Medbay Maintenance"; req_access_txt = "5"},/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor/plating,/area/medical/medbay) "biq" = (/turf/simulated/floor{dir = 1; icon_state = "whitepurple"},/area/toxins/lab) "bir" = (/obj/structure/stool,/obj/effect/landmark/start{name = "Scientist"},/turf/simulated/floor{dir = 1; icon_state = "whitepurple"},/area/toxins/lab) -"bis" = (/obj/machinery/camera{c_tag = "Research and Development"; dir = 2; network = list("SS13","RD"); pixel_x = 22},/obj/machinery/door_control{dir = 2; id = "rnd"; name = "Shutters Control Button"; pixel_x = -6; pixel_y = 24},/turf/simulated/floor{dir = 1; icon_state = "whitepurplecorner"},/area/toxins/lab) +"bis" = (/obj/machinery/door_control{dir = 2; id = "robotics2"; name = "Shutters Control Button"; pixel_x = 24; pixel_y = -24; req_access_txt = "29"},/turf/simulated/floor{icon_state = "white"},/area/assembly/robotics) "bit" = (/turf/simulated/floor{icon_state = "white"},/area/toxins/lab) "biu" = (/obj/effect/decal/cleanable/cobweb2,/obj/effect/spawner/lootdrop/maintenance,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor/plating,/area/maintenance/asmaint2) "biv" = (/obj/machinery/conveyor{dir = 1; id = "garbage"},/obj/structure/sign/vacuum{pixel_x = -32},/turf/simulated/floor/plating,/area/maintenance/disposal) @@ -3589,7 +3589,7 @@ "bra" = (/obj/structure/disposalpipe/junction{icon_state = "pipe-j2"; dir = 2},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor{icon_state = "white"},/area/medical/medbay) "brb" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 4; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/simulated/floor{icon_state = "white"},/area/medical/medbay) "brc" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor{icon_state = "white"},/area/medical/medbay) -"brd" = (/obj/machinery/door_control{dir = 2; id = "robotics2"; name = "Shutters Control Button"; pixel_x = 24; pixel_y = -24},/turf/simulated/floor{icon_state = "white"},/area/assembly/robotics) +"brd" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/door/poddoor/shutters/preopen{id = "robotics2"; name = "robotics lab shutters"},/turf/simulated/floor/plating,/area/assembly/robotics) "bre" = (/turf/simulated/wall,/area/assembly/robotics) "brf" = (/obj/machinery/door/firedoor/border_only{dir = 1; name = "hazard door north"},/obj/machinery/door/poddoor/preopen{id = "Biohazard"; name = "biohazard containment door"},/turf/simulated/floor{icon_state = "bot"},/area/medical/research{name = "Research Division"}) "brg" = (/obj/structure/table,/obj/item/weapon/storage/firstaid/toxin{pixel_x = 2; pixel_y = 6},/obj/item/weapon/storage/firstaid/toxin{pixel_x = -2; pixel_y = 4},/obj/machinery/requests_console{announcementConsole = 0; department = "Medbay"; departmentType = 1; name = "Medbay RC"; pixel_x = 0; pixel_y = -30; pixel_z = 0},/turf/simulated/floor{icon_state = "white"},/area/medical/sleeper) @@ -3720,7 +3720,6 @@ "btB" = (/obj/machinery/computer/scan_consolenew,/turf/simulated/floor{dir = 5; icon_state = "whiteblue"},/area/medical/genetics) "btC" = (/turf/simulated/wall/r_wall,/area/assembly/chargebay) "btD" = (/obj/structure/disposalpipe/sortjunction{dir = 8; icon_state = "pipe-j2s"; sortType = 6},/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plating,/area/maintenance/asmaint) -"btE" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating,/area/assembly/robotics) "btF" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor/plating,/area/maintenance/aft) "btG" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/simulated/floor/plating,/area/mine/laborcamp/security) "btH" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor/plating,/area/construction) @@ -4132,7 +4131,6 @@ "bBx" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/turf/simulated/floor/plating,/area/medical/sleeper) "bBy" = (/obj/machinery/firealarm{dir = 4; pixel_x = 24},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor{dir = 8; icon_state = "whitecorner"},/area/medical/research{name = "Research Division"}) "bBz" = (/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor{icon_state = "white"},/area/toxins/lab) -"bBA" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor/plating,/area/assembly/robotics) "bBB" = (/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor/plating,/area/maintenance/asmaint2) "bBC" = (/obj/machinery/firealarm{dir = 2; pixel_y = 24},/turf/simulated/floor{icon_state = "white"},/area/medical/medbay) "bBD" = (/obj/structure/stool/bed/chair/office/light,/obj/machinery/firealarm{dir = 8; pixel_x = -24},/turf/simulated/floor{dir = 9; icon_state = "warning"},/area/engine/gravity_generator) @@ -9373,7 +9371,7 @@ ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlah ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlaCLaDYaDZaEaaCFaEbaCFaEbaCFaEbaCFaEbaCFaEcaEdazdaxZaEeaAfaTeaTCbmraRQaEiaEjayeaElazraSPaTaaTaaUiaUhaUgbnlaTZaTOaTNaTNaTNaTNaTNaTLaTKaAlahjazzaUraApaUpaUqaUoazzahjaxbbnmaEEaUlaUmaDeaUkaUjaGEbmwaTEawhaTGaTDaDmaDmaDmaBUaERawhaESaESawhaDmawhaETaEUaEVabIadYadYadYadYadYamraHqaFbaFcaTHaFeaFcaUIaFcaUHaFcaUKayFbeDaUJaUNaAKaULaUMaUQaVaaUOaUPaVfaCsaCsaCsaCsaVmaVkaCsaCsbnnaVpaVnaVBaVuaVsaVraUvaUwaUxaUwaUyaUzaDOaDOaFKaDOaFLaFMaFNaDOaDRaUAaDRaFPaUFaUEaUGaFTaFUaFVawaatbaFYaFZaGaahjahlahjahlahjahlahjahlahjahjahlaGbaGbaGbaGbaGbaGbaGbahlahjahlahjahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlaGcahlahlahlahlahlahlahlahl ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlaGdaCFaCFaGeaCFaEbaCFaEbaGfaEbaCFaEbaCFaEcaEdazdaxZbdiaAfaAfaVFbnobnpaVCaAfayeayeayeayeaVDazrazraVSayebnAaVRaBGaBGaBGaGtaBGaBGaBGaGuaAlahlazzazzaEyaVNaEyazzazzahlaxbaGyaxgaVLaVMaVIaVJaVKaxgapsaVHawhaVGaTDaDmaDmaDmaBUaGKawhaGLaGMawhaCaawhaGNaGOaGPabIamrabIabIabIabIabIbnqaGSayFaGTazSayFaGUayFaGVayFaGWayFaWvaWwaUNaAKaWxaWyaWJaWLaWlaWlaWmaWlaWlaWnaWlaWoaWpaBaaBaaBaaBaaWqaWsaWraWuaWtalvaIRaIRaIRaIRapBaDOaHvaHwaHxaHyaHzaHAaDOaHBaWkaDRaHDaVVaVUaVZaFTaHHaFXawaaWjaDVaDVaDVahjahjahjahjahjahjahjahjahjahlaGbaGbaGbaGbaGbaGbaGbaGbaGbdsiahjahjahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlaCLaHJaDZaEaaCFaEbaCFaEbaCFaEbaCFaEbaCFaEcaEdazdaHKaCwaBAaBtaBtaBwauZawNavbavdavcavaayeaukazrazraqCayeaBsaBzaBGaHXaHYaHZaIaaIbaIcaIdaAlahlahjahlaIfauYaIfahlahjahlaxbaGyaxgaDeaIiaIjaIkaIlaxgapsapqawhaImaInaDmaDmaDmaIoaIpawhahlahlaIqaIraIsaItaIuaIvaIwaIxaIqahlahlaTkaIzaAoaIBayFaICazSazSazSaCeazSazSazSayFaAKauXauVaAKaAKayfauUaIIaIIauTaMZaILaIIaIMaIIaINauRaINauQaINaIQaIRaIRauPaIRaIRaIRaIRaCkaKwaIRapBaDOaHwaIVaIWaIXaIYaIZaDOauLauAauiaumaupausaueaufaugauhaucaudaJhaJiaJjahlahlahlahlahlahlahjahlahjahlaGbaGbaGbaGbaGbaGbaGbaGbaGbahjahlahjahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl -ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlaJkaJlaBjaCEaCFaCFaCFaJmaCFaCFaJnaCFaCFaCLaJoawLaxZawNaJpaJqaJqaJqaJqaJqaJqaJqaJrawNayeapraubaprayeayeaBqaJvaJwaAkaAkaAkaAkaJuaJxaJyaAlaJzaJBaJBaJCatWaJEaJBaJBaJFaxbaBraxgatZaxgaJIaJJaJKaxgazGavWawhawhawhaJLaJMaJLawhawhawhaJOaJPaJQaJRaIuaIuaIuaIuaIuaJSaJTaJPaJUaTkaJVaAoaJWayFayFayFayFayFayFayFayFayFayFaFjatQatBatAatCaPuatjaKeaIIatuaMZaKjatVaKjaINaKkatUaINatSaINaKnaKoaKpatRasXasXasXasVasTaMaaIRapBaDOasSaIVaKAaIXaIYaKBaDOaKCasRathatiatfatgatdateaVlatcasZatbaKIaKJaKKahlahjahlahlahlahlahjahlahjahlaGbaGbaGbaGbaGbaGbaGbaGbaGbahlahlahjahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl +ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlaJkaJlaBjaCEaCFaCFaCFaJmaCFaCFaJnaCFaCFaCLaJoawLaxZawNaJpaJqaJqaJqaJqaJqaJqaJqaJrawNayeapraubaprayeayeaBqaJvaJwaAkaAkaAkaAkaJuaJxaJyaAlaJzaJBaJBaJCatWaJEaJBaJBaJFaxbaBraxgatZaxgaJJaJJaJKaxgazGavWawhawhawhaJLaJMaJLawhawhawhaJOaJPaJQaJRaIuaIuaIuaIuaIuaJSaJTaJPaJUaTkaJVaAoaJWayFayFayFayFayFayFayFayFayFayFaFjatQatBatAatCaPuatjaKeaIIatuaMZaKjatVaKjaINaKkatUaINatSaINaKnaKoaKpatRasXasXasXasVasTaMaaIRapBaDOasSaIVaKAaIXaIYaKBaDOaKCasRathatiatfatgatdateaVlatcasZatbaKIaKJaKKahlahjahlahlahlahlahjahlahjahlaGbaGbaGbaGbaGbaGbaGbaGbaGbahlahlahjahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlaJkaBjaBkaBjaBjaKLaBmaBjaBjaBkaJlaKMaqfaKNawNavJaKOaKOaKPaKOaKQarkaKRaKSawNaGgaMzaKYaKYaKXaKYaEpaKZaKYaKYaKYaKYaKYaKYaKYaLaaLbawCawDaLeaLeawBaLgaLeaLeaLeaLhaEnaLjawBaLeaLeaLeaLkaLlaLmaIuaLnaLoaIvaIwaIwaIwaItaIuaIuaLpaIuaLqaLraLsaLtaLuaLvaLwaLxaIuaIuaLybRTaEqaEWaLAaLCaLDaLEaLFaIuaLGaIuaAKaLHawraJYatQawpawoawnawmaqFdrhaIIawqaLLawjaLMaLNaINawlatUaLQaqAaINaIRaLSbgAawiaPSaLWawyawxawzaDCaIRapBaDOawAawtawsawwaMcaMfaDOaMgaMhaDRaHGaHGaHGaHGaDRaMiaMjasZatbaDVaDVaDVaMlaMlaMlaMmaMnaMoahjahlahjaGbaGbaGbaGbaGbaGbaGbaGbaGbaGbaGbahlahjahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlavJaxYaMpaAbaAbaAbaAbaMqaxYavJaAdaqfaAeaMrazdaMsaMtaMuaMuaMvarkaMwaKSawgaMyaMzaweaMBaMCaMDaMEaMFaKYaKYaKYaKYaKYaKYaKYaLaaKYaMzaKYaKYaKYaDgaDfaCxaCxaCxaCxaDlaCxaEhaCxaCxaDkaMLaLlaIuaIuaIuaIuaIuaIuaIuaIuaIuaIuaIuaLpaIuaMMaMNaMOaMPaMQaMRaMSaMTaIuaIuaLyaIuaIuaIuaIuaIuaIuaIuaIuaIuaMUaIuaAKaJYaJYaJYavGavfaveavkavgavoaQSaIIavtaMZavQaIIaIIaINaNbatUaNcaqAaNdaINaIRaIRaIRaIRaIRaIRavZaNgaNfaIRapBaDOaNhaHwavYavXaHwaNjaDOaDRaDRaDRaDRaDRaDRaNkaDRaFXaFXawaatbaNlaNmaDVaNnaNoafJaNqaNraNsahjahlahjaGbaGbaGbaGbaGbaGbaGbaGbaGbaGbaGbahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahjahjazbaqfazdatwazdaNtaNuaNvaNwazdatwaNxaNyaqfaxZawNazdaNzaNAaMuaMuaMvarkaNBaKSawNaMyaMzaKYaNDaNEaNEaNEaNFaNGaNHaNEaNIaNEaNEaNEaNJaNEaqSaNEaNEaNEaqQaqPatKasaasaaqRaqOaqMaqKaNUaKYanLaMLaLlaIuaNVaIuaNWaNWaNWaNWaNWaNWaNWaNWaNXaNWaNWaNWaNWaNWaNWaNWaNWaNWaNWaNWaNYaNWaNWaNWaNWaNWaNWaNWaNWaIuaIuaIuaAKaNZaNZaNZaNZaNZaqIaqGaPuaqFaqdaIIaqEaOeaqyaIIaOfaINaqtaqpaqqaqAaOjaINaIRaOkaqzaOmaOnaOmaqnaOoaOpaIRapBaDOaOqaOqapHapFaOtaOtaOuaDOaOvaOwaOxaDVaOyaOzaOAaFXaFXaqjaqmaDVaOCaDVaODaqhaOFaOFaOGaOHaMnaMnaOIaGbaGbaGbaGbaGbaGbaGbaGbaGbaGbaGbahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl @@ -9391,15 +9389,15 @@ ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlah ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahjawLawMawNawMawOawNawNawPawMawNawMawOawNcgVaCwbZTchbchcbZTbZTbZTcgTcgSaOOaOOaOOcgUaxkaXhaYvbcUchvchuaXhbcXbcYbcXaORaORaORchschraOOaQfaNLaYHbdaaZWbaXbdbbdcaYHaZYaYNbddbaZbaZchdbdfbdgbdhaIuaXDbuqbdjbaibcsbdkbISbIRaynbaibqybIQbIPbkMbtfbundsxbkMbINbIObhzbIMbILbhBbmmbmmbIKbaxbIJaYWbdBbdCaIubdpbbBaYkaYkbdDaYkbdEbdFbdFbdFchxbdFbdFbdFbdHaYkaYkaYkaYkaYkaYkchwbdJbdKbbBaYkaYkaYkaYkaRKbdLbdMbIUbIVbJuaYkaYkaYkaYkaYkbdQbdRaYkaYkaYkaYkaYkaYkaYkaYkaYkaYkaYkaYkaYkbdSbdTbdUbdVbITarWaOFaOGbdXaMnaMnaOIaGbaGbaGbaGbaGbaGbaGbaGbaGbaGbaGbahlahlaaeahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlarkavJbdYavJaxZawNawNcFUavJbdZavJaybbeabebbebbcRbecbedbeebefbegcdBcgmbeibejbejcgnbHuaXhaXhaXhaYybHVaXhaOOaOOaOOaOOcgBbiQcgycgpbiQcgoaNLaYHcgIaZWaZWbIgcetaYHbIeaYNbeCbaZbaZbQRaNpbeFbeGaIuaXDaYQbaibIlbbibbibeIaymaynbeJbIjbnGbIkbapbqwbqwbqwbqAbIrbrHbIucHgbInbIpbeQbaxbeRbaxbImaYWaXVaIuaIubeVbeVbeVbeVbeVbeVbeVbeWbeXbeYcgKbfabfabeWbfbbfbbfbbfbbfbbfcbfcbJLbfdbfcbfcbfcbfcbfeaYkcgRbffbfgbwnbgMaYkaYkaYkbfkbfkbflbflbflbflbflbfmbfnbfnbfncGJbfndsTbfobfnbfnbfpbfqbfqbfqbfqbIBbIwbftbfuaNsahjahlahjaGbaGbaGbaGbaGbaGbaGbaGbaGbaGbaGbahjahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahjazbaqfazcatwazdazeazfbfvbfwazdatwaziazjaqfazbarkbcRbfxbfybfybfybfzcdBcdxcdycaocaocczccCaXhaYvbfDaYybfEaXhbHpbHpaRCaRCceNceAcfzcfrcfzcfzcenaYHceqbHlaZWaZWcetbHmbHiaYNcdRbaZbaZbQRbfWbeEbeGaIubfYaYQbfZaYRbgbdtQbgcbGMaynbgfaYQahjbxycltcltcltboXbHgbHhahjaYWbgjbHcbHdbgmbaxbgnbaxbHfaYWaXVaIubgpbeVbgqbgrbgsbgtbgubeVbgvcGZbgwcfEbgybgybgybgzboLbjpbgCbfbbgDbgEbMfbgEbgEbgFbHsbfcbfgbHtbfgbfgbfgccNbgMbgMbgNbgMbgObgObflbgPbgQbgRbfldombgTdombflcmCbpOcmCbfqdolbgVdolbfqbgWbgXbfqbHrbLEaMmaMnbhaahjahlahjaGbaGbaGbaGbaGbaGbaGbaGbaGbaGbaGbahjahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl -ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahjahjahjahjawLbdYaAaaAbaAbaAbaAbaAcbdZawLahjahjahjahlbcRbhbbcRbhcbfybhdbZKbZTbiQbZGbZHbZIbZJcaAcaAcaAcaAcaAcaAcaKcaJcazcaocajcaiaYHaYHaYHaYHaYHaYHcbiaYHaYHaYHcbCbhobGPbGQcaYbaZbaZbQRbfXbeFbeGaIubhuaYQbhvaYRaYRaYRaYRbGMaynbhxaYQahjbxycltboTboUboWcltbxmahjaYWaLTbbubGNbhDbaxbeRbaxbaxaYWaXVaIuaIubeVbhKbAIbGXbhNbhObhPbgybhSbgybhRbgybgybhQbhTbhVbhUbhWbfbbhXbgEccybgEbhXbhYbgEbfcbhZcGObiabibbfgbGVbgMbidbiebifbigbigbflbihbiibijbikbilbimbinbflbGWblsbltbfqbiqbirbiqbisbitbitbfqbBBbLEahlahjahlahjahlahjahlaGbaGbaGbaGbaGbaGbaGbaGbaGbahlahjahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl +ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahjahjahjahjawLbdYaAaaAbaAbaAbaAbaAcbdZawLahjahjahjahlbcRbhbbcRbhcbfybhdbZKbZTbiQbZGbZHbZIbZJcaAcaAcaAcaAcaAcaAcaKcaJcazcaocajcaiaYHaYHaYHaYHaYHaYHcbiaYHaYHaYHcbCbhobGPbGQcaYbaZbaZbQRbfXbeFbeGaIubhuaYQbhvaYRaYRaYRaYRbGMaynbhxaYQahjbxycltboTboUboWcltbxmahjaYWaLTbbubGNbhDbaxbeRbaxbaxaYWaXVaIuaIubeVbhKbAIbGXbhNbhObhPbgybhSbgybhRbgybgybhQbhTbhVbhUbhWbfbbhXbgEccybgEbhXbhYbgEbfcbhZcGObiabibbfgbGVbgMbidbiebifbigbigbflbihbiibijaJIbilbimbinbflbGWblsbltbfqbiqbirbiqbikbitbitbfqbBBbLEahlahjahlahjahlahjahlaGbaGbaGbaGbaGbaGbaGbaGbaGbahlahjahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahjahlahlahlahlahlahlahjahjahlahlahlahlahlahjahjahlbcRbivbiwbixbiybiybizbiAbbZbhgaOOcjkcjlcjccjccjccjacjacjacjacjacjacjacjjcbCbiHbiIbMvbiKbiLbiMbRmbiOaYHbiPciKciLciNciNciWbaZbaZbQRbaZaYNbeGaIuaXDblZbMDbMCbMBbMAaYRbMEaynaYQaYQahjbxycltboUcltboUcltbxmahjaYWaYWbMybhBbjnbaxbjobMxbMwaYWaXVaIubmucjwcjBcjGcjNbjubjvbjwbgybMKbMLcjmbjAbjAbMIbMHbMJbhUbjFbfbbhXbgEccyblfbhXbMGbjGbfcbjHbjIbjJbjKbfgccNbgMbOvbOabOabNObNYbjQbNNbjSbjSbjSbNZbNxbNwbflbNpblsbNGbfqbNBbNgbNcbMWbkdbkebfqbBBbLEbgZbgZbgZbgZahjahjahjahjahjahjahjahlahlahlahlahlahlahjahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlaGcahlahlahlahlahlahlahlahlahlahlahlahlahlahl ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahjahjahlahlahlahlahlahjahjahlahlahlahlahlahjahjahlbcRbkfbcRbkgbkhbkhbkibcRbkjbkkaOObklbkmbklbklbklbkmbklaOOaOOaYHaYHaYHcilcbCbiNbiNcikbiNbiNbiNbRmbiNbkpbkqcimcitcixbRhbRhbRhbRhciwciucivciBciyciEbLCbLnbLmbLpbLoaYRbGMaynaYQahjahjbxycltboWcmWboTbLXbxmahjahjaYWaYYbMdaYWaYWaYWaYWbMcaYWbkTaIuaIubeVbkUbAIbAJbhNbhObkWbgybqLbLfbkYbIoblabMnbfbblcbMhblebfbbhXbgEciJciHbhXbMebgEbfcbfgbfgbfgbfgbfgccNbgMdqNblhblibljblkblldsVblnblobloblpbxEbmTbflbMpblsbMqbfqblublvblwbKOblydtabfqbBBbPqceYblBblCblBahlahlahlahlahlahlahjahjahjahjahjahjahjdsiahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlaaeahjahjahlahlahlahlahlahjahlahlahlahlahlahlahlahjahlbcRblDblEblFbkhblGblHbcRahlahjdsiblIblIblIblIblIblIblIahlahlblJblKblLcihcigchJchJcijchJchJchJchVchJchWchXcibcidblQblRblSblTbKKaYNblVaYNbKFblXbqFblZbmabmdbmdbmdbmdbmcbKHbmbahjahlbKJbKIbzTcltcltbJXbxmahlahjbmsbKgbKibJYbKdbKDbmsbBVbmsbmtaIuaIubeVbLgbAIbAJbmybmzbeVbmAbqLbLfbkZbmBbgybLcbfbbYFbLebLabfbbmGbLbbKXbKWbKZbKYbKUbKTbKRbKVbKRbKRbKRbKSbgMbmQbiedqCdqobmRbmScjJbmUbmVbmVbmWbKQbmYbflbpPbpObKPbfqbnbbncbndbKObitbnebfqbBBbKNbKLchEchEchEchEchEchEbKMahlahlahjahlahlahjahlahjahlahjahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahjahlahlahlahlahlahjahlahlahlahlahlahlahlahjahlbcRbnfbngbnhbnibcRbcRbcRahlahldsiblIblIblIblIblIblIblIahlahlbnjbnkbiNchAchzchBchzchzchzchzchzchCchzchHchIchDchFbnrbnsbntbnubaZbJBbnwbnxbeGbnzchyblZblZbmbbnBbJvbnDbJwbumbmbahlahlbxybJxbvJbmhbyDbJybxmahlahlbmsbJzbJAbnNbmsbnObmsbBVbmsbmtaIuaIubeVbnQbAIbAJbnRbnSbeVbnTbJJbnUcHhbnXbgybJPbfbbJObJNbJMbfbbfcbodbfcbJLbJKboeboeboeboeboeboeboeboeccNbgMblgblhblibofbogbohboibojbojbojbmWbxEdsUbrebJIbrfbJHbrhbonboobonbJGbitboqbfqbJEbJCbJCbJCbJCbJCbJCbJCbJDbLEbgZbgZbgZahlahlahjahlahjahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahjahlahlahlahlahlahlahlahlahlahlahlahlahlahjahlahlahlahlahlahlahlahlbRJahlahlahjblIblIblIblIblIblIblIboubovbowboxbiNbiNbiNbRrboyboyboybiNbiNbiNbiNbkpbozbQRbUgbTQbUabUbbUcbTIbTPbaZboGbBNboIboJboKbNobhtboNbBMboPbBLbBKbmbahjahlbxybBDcoCcoCcoCbCcbxmahlahjbmsbCabCbbpdbmsbpebmsbBVbmsbpfaIubRTbRUbRVbRWbTybTHbpibeVbpjbqLbhRcGAbplbpmbnTbnTbpobAKbAWbprbpsbptbgybAZbBgbpwbpxbpybBibBhbBjbslboeccNbgMbpGbpFbBkbBtbBvbflbpJbojbojbpKbpLbxEbpMbsAbBwbxSbBybrhbpQbLzbitbBzbpUbpVbfqbpWbpXbpXbpXbpXbpXbpXbpXbBBbLEbpYbfGbgZbgZahjahjahjahjahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl -ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahjahlahlahlahlahlahlahlahlahlahlahlahlahlahjahlahlahlahlahlahlahlahldsiahlahlahjblIblIblIblIblIblIblIbqabqbbqabqcbqdbiNbiNbRmbiNbiNbiNbiNbiNbqeaYHaYHbqfbRSbRhbRQbRRbqibqjbaZbqkbaZbqlbmtbnzbqnbqobqpbqqbqrbvGbqtbAHbqvbmbahlahlbxydrNcpgdrkcpgbbrbxmahlahlbqCbxgbqBbqCbqCbqCbqCbAGbqCbqEbqFbqFbeVbeVbAdbAabAbbqJbeVbqKbqLbAebrcbrcbrcbrcbrcbLhbzQbzWbzUbrcbzSbrcbLibzZbqObqPbqQbqRbqSbqTbqUboebApbAqboVbqXbqXbqZbArbAzbABbACbACbADbAEbxEbrdbrjbAfbAgbepbrhbrhbAhbrlbAibsubrhbfqbpXbpXbrkbswbrmbrnbrobpXbAFbqsbrrbrsbrtbgZahlahjahlahlahlahlahlaaeahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl +ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahjahlahlahlahlahlahlahlahlahlahlahlahlahlahjahlahlahlahlahlahlahlahldsiahlahlahjblIblIblIblIblIblIblIbqabqbbqabqcbqdbiNbiNbRmbiNbiNbiNbiNbiNbqeaYHaYHbqfbRSbRhbRQbRRbqibqjbaZbqkbaZbqlbmtbnzbqnbqobqpbqqbqrbvGbqtbAHbqvbmbahlahlbxydrNcpgdrkcpgbbrbxmahlahlbqCbxgbqBbqCbqCbqCbqCbAGbqCbqEbqFbqFbeVbeVbAdbAabAbbqJbeVbqKbqLbAebrcbrcbrcbrcbrcbLhbzQbzWbzUbrcbzSbrcbLibzZbqObqPbqQbqRbqSbqTbqUboebApbAqboVbqXbqXbqZbArbAzbABbACbACbADbAEbxEbisbrjbAfbAgbepbrhbrhbAhbrlbAibsubrhbfqbpXbpXbrkbswbrmbrnbrobpXbAFbqsbrrbrsbrtbgZahlahjahlahlahlahlahlaaeahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahldsiahlahlahjblIblIblIblIblIblIblIbrubrvbrubrwbiNbiNbiNbRrboyboyboybiNbiNbrxbryaYHbrzbaZbaZbRsbRDbRIbRLbaZbaZbaZbqlbmtbrBaIuaQQbqpbrCbrDbRqbRobRnbyHbmbahjahjbyNbyLbzxbbqbzubzvbzLahjahjbxnbyXbzobyQbyRbzqbztbzpbqCbrRaIuaIubrSbrTbxLbxMbxPbxTbrYbrZbxVbxQbxRbxRbxRbxRbxRbyxbywbytbymbyvbyubyEbyCbyFbqObsibyAbyBbsjbskbslboeccNbgMbjYbsnbxzbspbspbflbsqbsrbssbrebstbxEbnabrebmZbxDbxCbxBbxAbxKbokbxGbsDbsEbFPbsGbxFbsIbsJbsJbsJbsKbsLbyGbLEbsNblAbgZbgZahjahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl -ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlbRJahlahlahjblIblIblIblIblIblIblIbsObovbsPbsQbiNbiNbiNbRmbiNbiNbiNbiNbiNbrxbsRaYHbsSbQUbRhbQSbQTbsTbQRbaZbaZcGzbnxbnZbrBaIuaQQbqpbmbbsWbQQbsYbsXbxxbmbahlahlahjbxyckNbhyckNbxmahjahlahlbxnbtcbxibtebkKbtgbtgbxkbtibtjaIuaIubtkbtlbgybwBbwXbtnbtobtnbxfbxcbpqbwYbpqbpqbpqbttbwvbgybhRbwubtvbtvbwybwxbtybtzbwwbtAbtBbqTbslboebwnbgMbtCbtCbtCbtCbtCbflbrebrebrebrebBAbQPbtEbreboMbwlbscdtndtndtndtnbwmbtLbtMbtNbtObtPbtQbtRbtRbtSbtTbpXbNhbLEbsNblAbgZahlahjahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl +ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlbRJahlahlahjblIblIblIblIblIblIblIbsObovbsPbsQbiNbiNbiNbRmbiNbiNbiNbiNbiNbrxbsRaYHbsSbQUbRhbQSbQTbsTbQRbaZbaZcGzbnxbnZbrBaIuaQQbqpbmbbsWbQQbsYbsXbxxbmbahlahlahjbxyckNbhyckNbxmahjahlahlbxnbtcbxibtebkKbtgbtgbxkbtibtjaIuaIubtkbtlbgybwBbwXbtnbtobtnbxfbxcbpqbwYbpqbpqbpqbttbwvbgybhRbwubtvbtvbwybwxbtybtzbwwbtAbtBbqTbslboebwnbgMbtCbtCbtCbtCbtCbflbrebrebrebrebrdbQPbsAbreboMbwlbscdtndtndtndtnbwmbtLbtMbtNbtObtPbtQbtRbtRbtSbtTbpXbNhbLEbsNblAbgZahlahjahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlbRJahjahjahjblIblIblIblIblIblIblIbrubrvbrubnkbtVbiNbiNbXLbiNbtVbiNbiNbiNbrxbGDaYHbGCbXMbTIbXNbYSbeFbRSbRhbuebufboGbnZbrBaXDbugbuhbmbbuibZibukbulbumbmbahlahlahjbGFbGIcoCbGGbGHahjahlahlbxnbGJbGLbutbuubuvbuwbEYbqCbuyaIuaIubnTbnTbFnbFqbLhbFbbsUbFcbFdbFlbuGbuCbuDbuCbuDbuCbuDbuCbFAbFBbtvbuHbFsbFubFtbFxbFwbuKbuLbuMbuNboebFIbFObpNbFMbFNblsblsbFDblsblsbFGbFEbFFbGubGkdtnbGhbGxbtmbvabvbbFUbvdbvdbvdbvdbvdbvfbvgbvhbvibvhbvjbvhbpXbNhbLEbsNaBRbgZbgZahjahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahjahlahjahlblIblIblIblIblIblIblIbvlbvmbvlbvnbvobvnbvnbvnbvnbvnbvpbvqbiNbrxbvraYHbvsbaZbvtbWLbWMbvwbEDbvybvzbvwbvwbEZbrBaJSbvBbqpbmbbvDbWObvFbsZbFabmbahlahlahjbdsbEObbqbEWbEXahjahlahlbxnbvKbvLbvMbvNbuvbuwbEYbqCbvOaIuaIubvPbvQbDSbqMbDRbvTbuCbvUbDTboZbvXbvYbvZbwabzVbwabwcbuCbhRbqLbtvbwdbDMbDLbDKbDQbDPbDObDNbDNbEnbEzbEAbEBbwobwpbwqbwrbwsbwrbwrbwtbwrbwrbEmbEabDXbDXbEbbEkbepbwzbwAbDUbwCbDWbwEbwFbvdbwGbwHbwIbwJbwKbwHbwLbpXbNhbLEbwMbrsbWubgZahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahjahlahjahlblIblIblIblIblIblIblIbwObwPbovbwQaYHbwRbovbwQbwSbwSbwSbwSbwTbwUbwVbwSbwSbwWbwWbWmbWtbvwbDJbwZbxabxbbvwbnZbrBaIvaTkaTkbmbbmbbVNbmbbmbbDDbmbaJOaJPaJUbDEbDHbhybDFbDGaJOaJPaJUbqCbqCbqCbqCbqCbqCbqCbqCbqCbvOaIubxhbuCbuCbuCbxjbuCbuCbuCbxlbDTbDrbFybxpbxqbxrbxsbUkbxubxvbhRbqLbtvbxwbDzbDCbDAbDtbDsbsjbsjbsjbDhbzbbDgbDfbxHbxHbxHbxHbxIbxHbxHbxHbxJbxJbDebDqbxNbxObDpbDobepbwzbLAbDnbxUbDmbxWbxXbxYbpXbpXbxZbyabybbpXbycbpXbNhbLEbsNblAbgZbgZahjahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl From 5a5d7ad064e3a85dc59536830c9c815a599f7393 Mon Sep 17 00:00:00 2001 From: WJohn Date: Thu, 6 Nov 2014 09:45:49 -0500 Subject: [PATCH 072/102] Adds 7th z level to metastation and fixes piping. Amazed the map merger survived that, honestly. Fixes #5649 Fixes #5710 Gonna go fix #5709 one moment. --- _maps/map_files/MetaStation.v39K.dmm | 258 +++++++++++++++++++++++++++ 1 file changed, 258 insertions(+) diff --git a/_maps/map_files/MetaStation.v39K.dmm b/_maps/map_files/MetaStation.v39K.dmm index 893c87b77db..b97e651fb11 100644 --- a/_maps/map_files/MetaStation.v39K.dmm +++ b/_maps/map_files/MetaStation.v39K.dmm @@ -12089,3 +12089,261 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa "} +(1,1,7) = {" +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +"} + From 01ae162fcf0a53ac3607499c274946da63ad92e9 Mon Sep 17 00:00:00 2001 From: WJohn Date: Thu, 6 Nov 2014 09:52:31 -0500 Subject: [PATCH 073/102] Fixes #5709. --- _maps/map_files/tgstation.2.1.3.dmm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/_maps/map_files/tgstation.2.1.3.dmm b/_maps/map_files/tgstation.2.1.3.dmm index eb166d8d62a..418eda1f719 100644 --- a/_maps/map_files/tgstation.2.1.3.dmm +++ b/_maps/map_files/tgstation.2.1.3.dmm @@ -3720,6 +3720,7 @@ "btB" = (/obj/machinery/computer/scan_consolenew,/turf/simulated/floor{dir = 5; icon_state = "whiteblue"},/area/medical/genetics) "btC" = (/turf/simulated/wall/r_wall,/area/assembly/chargebay) "btD" = (/obj/structure/disposalpipe/sortjunction{dir = 8; icon_state = "pipe-j2s"; sortType = 6},/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plating,/area/maintenance/asmaint) +"btE" = (/obj/machinery/power/apc{dir = 2; name = "Incinerator APC"; pixel_x = 0; pixel_y = -24},/obj/structure/cable,/turf/simulated/floor/plating,/area/maintenance/incinerator) "btF" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor/plating,/area/maintenance/aft) "btG" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/simulated/floor/plating,/area/mine/laborcamp/security) "btH" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor/plating,/area/construction) @@ -5251,7 +5252,6 @@ "bXa" = (/obj/structure/stool{pixel_y = 8},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/plating,/area/maintenance/asmaint) "bXb" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 5},/turf/simulated/wall,/area/maintenance/asmaint) "bXc" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plating{icon_state = "warnplate"},/area/maintenance/asmaint) -"bXd" = (/obj/machinery/power/apc{dir = 8; name = "Incinerator APC"; pixel_x = 0; pixel_y = -24},/obj/structure/cable,/turf/simulated/floor/plating,/area/maintenance/incinerator) "bXe" = (/obj/machinery/atmospherics/pipe/simple/cyan/visible,/turf/simulated/floor{icon_state = "arrival"; dir = 10},/area/atmos) "bXf" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{dir = 4},/turf/simulated/floor{icon_state = "floorgrime"},/area/maintenance/incinerator) "bXg" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{dir = 4},/obj/machinery/atmospherics/pipe/simple/general/visible{dir = 2},/turf/simulated/floor{icon_state = "floorgrime"},/area/maintenance/incinerator) @@ -9429,7 +9429,7 @@ ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlah ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlaaHahlahlahjahjahlahjahjahlahlahjahjahjahldpXahlahlbCvbRKbELbCvbCvbCvbTZbCvbCvbCvbCvahlahlahldsiaDIauKdsidsiahjdotdcdbWnccpbZxbXnbXnbXnbZxcatccqccrbYyccscctbWobCvbCvbTzbTAbTBcbAcbAccxcaEdoZdoKdoMdoNdoQbMjbOGbVAccDccEccFbQWccGbVuccIbYLbUpccJbTnbPQbPRccKccLccLbOPcaMbXHbWibCDbCDbCDbWibCDbCDccMbDbbCDbCDcuBbCDbCDbDbbSWbSXbThbDcbEhbEhbEhccRccSbSIccTbMNbUDccUbSEbSEbUFbDcbTRbTRccVbTRbTRbRHcbfcbgbTibTxbQuccYccZcdabRHbfGbPdbjfbgZbgZbgZblAbgZahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlaaHahlcdccddcdeahlcdccddcdeahlcdccddcdeahjdpXahlahlbCvcdfcdgbCvcdhbELbELbOlaClcdkbCvahlahlahlatIdsidsiahjahlahldbVdcdbWnbZxcdncdobXncdpbZxbZxbYvcdqbYybYycdrbWocdsbSVbSCbSUbSBdoidnZdcNdctdcNdctdcvdctdcubMjcdCcdDcdEbSfbSfbShbUicdFbUmbSibUncdGbTsahjbReclhcdIcdJbOPcaMbCDbWibXKcdKckCbWicGabCDccMbSabRYbSqbZtbSwbRYbSAccMbLEcdVbDcbDcbDcbDcbDcbDccdWcdXcdYbDcbDcbDcbDcbDcbDcbRHbRHbRHbRHbRHbRHcdZcdZbSxbSybRHbRHbRHbRHbRHbgZcgFbjfbgZbNibOjblAbgZahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlaaHahlcdcceecdeahlcdcceecdeahlcdcceecdeahjahjahlahlbCvbPtbPvbCvbCvcefcegaClbELbSYbCvahlahlahlahlahjahlahlahlahlbppdcdbWnbXncehceibXncejcekbXnbYvcelbYxbYybYybVebVfbfIcercHqbVgceucevcewbVhceycezdpYcaEdqsbMjceBbOGbVAbUibONceCbWEceEceFbNFceGceHbMrbSobPRceIccLccLbOPcaMbCDdvgdvecdQdvebZRduWbCDbVdbUxbUNbJFcgAbJFbUJbUxbUybLEbTEbgZahlahlahlahjahlahlceVahlahjahlahlahlahlbgZceWayRceYceZceZbRHcfacfabSxbiZcfccfdblAblAblAaDGcgFbUwbgZcffblAblAbgZbgZbgZahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl -ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahldpXahjcdcceecdeahlcdcceecdeahjcdcceecdeahjahjahlahlahlahlahjahjbCvbCvbCvbCvbTZbCvbCvahlahlahlahlahjahlahlahjahlbppdcdbWnbXncfgcfhcficfjcfkbXncflcfmcfncfocfpbWocfqdpVdpPdpQdpNdpOdpTdpUdpRdpSdpsdpzdpadprdpAdpEbQZcfFbVBbOGbOGbOGbOMbVvbVBbUnbXGbTsahjbOPbOPbOPbOPbOPcaMbCDcchbXddpDbXcbXKbUzbCDbCDcfKbTGcdUbXIcfMbTFbCDbCDbLEbTEbgZahlahlahlahjahlahlceVahlahjahlahlahlahlbgZblAchmbrscOnciqbRHcfScfSbTDbiZbRHbQubgZcfUcfVaDGcgFbTCbECbECbECcfYcfZcgacfZcgbdsiahjahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl +ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahldpXahjcdcceecdeahlcdcceecdeahjcdcceecdeahjahjahlahlahlahlahjahjbCvbCvbCvbCvbTZbCvbCvahlahlahlahlahjahlahlahjahlbppdcdbWnbXncfgcfhcficfjcfkbXncflcfmcfncfocfpbWocfqdpVdpPdpQdpNdpOdpTdpUdpRdpSdpsdpzdpadprdpAdpEbQZcfFbVBbOGbOGbOGbOMbVvbVBbUnbXGbTsahjbOPbOPbOPbOPbOPcaMbCDcchbtEdpDbXcbXKbUzbCDbCDcfKbTGcdUbXIcfMbTFbCDbCDbLEbTEbgZahlahlahlahjahlahlceVahlahjahlahlahlahlbgZblAchmbrscOnciqbRHcfScfSbTDbiZbRHbQubgZcfUcfVaDGcgFbTCbECbECbECcfYcfZcgacfZcgbdsiahjahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahjahlcdcceecdeahjcdcceecdeahlcdcceecdeahlahjahlahlahlahlahlahlbCvaOlbCvbELbELbCvahjahlahjahlahlahjahlahlahjahlbppdcdbWnbWnbWnbWnbWnbWnbWnbWnbWobWobWobWobWobWobCvbWpbCvcggcghcghcghcgicgjcgkcghbWrdqEdqRbMjchebXEbSkbXjcgscgtcgsbXjcgubXjcgvbUicgwahjahjahjahjahjahjcaMbWhbWhbWhbWhdvqbWhbWhbWhcgxbCDcgzcgzdpdcgzcgzbCDbYQbzgbTEbgZcgCcgDcgEbgZcgCcgDcuncgEbgZcgCcgDcgDcgEbgZbgZcgFcgGbgZbgZbRHbRHbRHbWabWbbRHaDGbgZcbmblAbpYcgFbWdbgZbgZcgLbgZbgZbgZbgZahjahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlaaHaaHdpXahjahlcdcceecdeahjcdcceecdeahlcdcceecdeahjahjahjahjcgMcgNcgNcgNcgNbCvbCvcgObELbCvcgPbWkbWkbWkbWkbWkbWkbWkbWlbCvbppdcdbCvcgQbVPbVObVObVObVObVObVObVObVObVObVXbVXbVObVQcefcggcnjcgWcgXcgYcgZchacghdoBcmIdqxbMjchebXichgchhchibWIchkchlbOGbXechnchobOIahjahjahlahlahlahldvddvcdvfdvkdvhdvndvjdvibWhchqdpkbViduYduXcdUcdUbXKbXKbzgbJEbVHbVHbVHbVHbVHbVHbVHbVIbVqbVqbVqbVqbVqbVqbVrbVqduQbVqbVqbVGciFbVlbVkbVjbVnbgZbgZbVmciFbVJciFbVLbjfbgZchLblAblAbgZahlahjahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlaaHahlahjahlahjahjchMahjahjahjchMahjahlahjchMahjahlahjchNchOchPchQchRchSchTcgebELchYchZciachZchZchZchZchZchZchZchZchZchZdsrdsydrBdrAbiTcicciccicciccicciccicciccicciccicciccicciccggcghciecifdsbbZDbZEbZFckUckbdspciccincfGcipceDcipcfGcipceDcipccHcipccHcisahjahjahlahlahlahlbWhdvZdvYdwcdwbdvXdvtdvsbWhchqduRcdUduSbYWbYVceTbFobXabXbbWQbWQbWQbWQbWQbWQbWQbWRbWSbWQbWQbWQbWQbWQbWQbYIbYEbYhchEbYCbYibYcbYcbYcbYdbXAbXxbXObXBbYYbYcbYcbYXbZhbgZbOjblAcbabgZahlahjahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl From d102edf939ffc08f04b386070f928c5a76928e57 Mon Sep 17 00:00:00 2001 From: WJohn Date: Thu, 6 Nov 2014 11:14:10 -0500 Subject: [PATCH 074/102] Removes extinguisher from singulo area and replaces floors in the PA area with plating. --- _maps/map_files/tgstation.2.1.3.dmm | 61 +++++++++++++++-------------- 1 file changed, 31 insertions(+), 30 deletions(-) diff --git a/_maps/map_files/tgstation.2.1.3.dmm b/_maps/map_files/tgstation.2.1.3.dmm index 418eda1f719..0a06aebdbc7 100644 --- a/_maps/map_files/tgstation.2.1.3.dmm +++ b/_maps/map_files/tgstation.2.1.3.dmm @@ -4132,6 +4132,7 @@ "bBx" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/turf/simulated/floor/plating,/area/medical/sleeper) "bBy" = (/obj/machinery/firealarm{dir = 4; pixel_x = 24},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor{dir = 8; icon_state = "whitecorner"},/area/medical/research{name = "Research Division"}) "bBz" = (/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor{icon_state = "white"},/area/toxins/lab) +"bBA" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 9},/area/engine/engineering) "bBB" = (/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor/plating,/area/maintenance/asmaint2) "bBC" = (/obj/machinery/firealarm{dir = 2; pixel_y = 24},/turf/simulated/floor{icon_state = "white"},/area/medical/medbay) "bBD" = (/obj/structure/stool/bed/chair/office/light,/obj/machinery/firealarm{dir = 8; pixel_x = -24},/turf/simulated/floor{dir = 9; icon_state = "warning"},/area/engine/gravity_generator) @@ -5006,7 +5007,7 @@ "bSo" = (/obj/structure/lattice,/obj/machinery/atmospherics/pipe/simple/green/visible{dir = 4},/turf/space,/area/space) "bSp" = (/obj/machinery/atmospherics/unary/outlet_injector/on{dir = 8; frequency = 1441; id = "waste_in"; pixel_y = 1},/turf/simulated/floor/engine{name = "vacuum floor"; nitrogen = 0.01; oxygen = 0.01},/area/atmos) "bSq" = (/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor/plating,/area/maintenance/asmaint) -"bSr" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor{dir = 8; icon_state = "warning"},/area/engine/engineering) +"bSr" = (/obj/machinery/camera{c_tag = "Engineering Center"; dir = 2; pixel_x = 23},/obj/machinery/light{dir = 1},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 1},/area/engine/engineering) "bSs" = (/obj/machinery/firealarm{dir = 4; pixel_x = 24},/turf/simulated/floor{icon_state = "white"},/area/medical/virology) "bSt" = (/obj/machinery/door/firedoor/border_only{dir = 2; name = "hazard door south"},/obj/machinery/door/airlock/glass_virology{name = "Monkey Pen"; req_access_txt = "39"},/turf/simulated/floor{icon_state = "white"},/area/medical/virology) "bSu" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/wall/r_wall,/area/medical/virology) @@ -5252,6 +5253,7 @@ "bXa" = (/obj/structure/stool{pixel_y = 8},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/plating,/area/maintenance/asmaint) "bXb" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 5},/turf/simulated/wall,/area/maintenance/asmaint) "bXc" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plating{icon_state = "warnplate"},/area/maintenance/asmaint) +"bXd" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 1},/area/engine/engineering) "bXe" = (/obj/machinery/atmospherics/pipe/simple/cyan/visible,/turf/simulated/floor{icon_state = "arrival"; dir = 10},/area/atmos) "bXf" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{dir = 4},/turf/simulated/floor{icon_state = "floorgrime"},/area/maintenance/incinerator) "bXg" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{dir = 4},/obj/machinery/atmospherics/pipe/simple/general/visible{dir = 2},/turf/simulated/floor{icon_state = "floorgrime"},/area/maintenance/incinerator) @@ -5888,7 +5890,7 @@ "cjn" = (/obj/machinery/shieldgen,/turf/simulated/floor/plating,/area/engine/engineering) "cjo" = (/obj/machinery/the_singularitygen{anchored = 0},/turf/simulated/floor/plating,/area/engine/engineering) "cjp" = (/obj/machinery/power/apc{cell_type = 15000; dir = 1; name = "Engineering APC"; pixel_x = 0; pixel_y = 25},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/simulated/floor{icon_state = "yellow"},/area/engine/engineering) -"cjq" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable/yellow{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/simulated/floor,/area/engine/engineering) +"cjq" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden,/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 5},/area/engine/engineering) "cjr" = (/turf/simulated/floor,/area/engine/engine_smes) "cjs" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/unary/vent_pump{dir = 1; on = 1},/turf/simulated/floor{dir = 8; icon_state = "warning"},/area/engine/engine_smes) "cjt" = (/turf/simulated/wall/r_wall,/area/engine/engine_smes) @@ -5934,7 +5936,7 @@ "ckh" = (/turf/simulated/floor/plating,/area/engine/engineering) "cki" = (/obj/machinery/door/poddoor{id = "Secure Storage"; name = "secure storage"},/turf/simulated/floor/plating,/area/engine/engineering) "ckj" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/simulated/floor,/area/engine/engineering) -"ckk" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor{dir = 4; icon_state = "warning"},/area/engine/engineering) +"ckk" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 8},/area/engine/engineering) "ckl" = (/obj/structure/table,/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_y = -35},/obj/item/weapon/stock_parts/cell/high{charge = 100; maxcharge = 15000},/turf/simulated/floor{dir = 6; icon_state = "warning"},/area/engine/engine_smes) "ckm" = (/obj/structure/stool/bed/chair/office/light{dir = 4},/obj/machinery/firealarm{dir = 1; pixel_y = -24},/turf/simulated/floor{icon_state = "warning"},/area/engine/engine_smes) "ckn" = (/obj/structure/cable,/obj/machinery/power/apc{dir = 2; name = "SMES room APC"; pixel_y = -24},/turf/simulated/floor{dir = 10; icon_state = "warning"},/area/engine/engine_smes) @@ -5968,7 +5970,7 @@ "ckP" = (/obj/machinery/portable_atmospherics/canister/toxins,/obj/machinery/light/small{dir = 8},/obj/machinery/camera{c_tag = "Engineering Secure Storage"; dir = 4; network = list("SS13")},/turf/simulated/floor/plating,/area/engine/engineering) "ckQ" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 4; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor,/area/engine/engineering) "ckR" = (/obj/structure/closet/firecloset,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor,/area/engine/engineering) -"ckS" = (/obj/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/simulated/floor,/area/engine/engineering) +"ckS" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable/yellow{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/simulated/floor/plating,/area/engine/engineering) "ckT" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/wall,/area/engine/engineering) "ckU" = (/turf/simulated/floor,/area/engine/engineering) "ckV" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plating,/area/engine/engineering) @@ -6169,8 +6171,8 @@ "coI" = (/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor,/area/engine/engineering) "coJ" = (/obj/machinery/firealarm{pixel_y = 24},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{tag = "icon-manifold-r-f (NORTH)"; dir = 1},/turf/simulated/floor,/area/engine/engineering) "coK" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/sign/nosmoking_2{pixel_y = 32},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor,/area/engine/engineering) -"coL" = (/obj/machinery/power/rad_collector{anchored = 1},/obj/structure/cable/yellow,/turf/simulated/floor/plating,/area/engine/engineering) -"coM" = (/obj/machinery/power/rad_collector{anchored = 1},/obj/item/weapon/tank/plasma,/obj/structure/cable/yellow,/turf/simulated/floor/plating,/area/engine/engineering) +"coL" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 4},/area/engine/engineering) +"coM" = (/obj/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/simulated/floor/plating,/area/engine/engineering) "coN" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor,/area/engine/engineering) "coO" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/extinguisher_cabinet{pixel_x = -5; pixel_y = 30},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor,/area/engine/engineering) "coP" = (/obj/machinery/power/terminal{icon_state = "term"; dir = 1},/obj/structure/cable/yellow{d2 = 8; icon_state = "0-8"},/turf/simulated/floor{icon_state = "vault"; dir = 8},/area/engine/engine_smes) @@ -6208,7 +6210,7 @@ "cpv" = (/obj/machinery/door/poddoor/shutters{id = "teledoor"; name = "AI Satellite Teleport Access"},/turf/simulated/floor{icon_state = "dark"},/area/aisat) "cpw" = (/obj/machinery/power/apc{dir = 1; name = "MiniSat External Power APC"; pixel_y = 29},/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor{icon_state = "dark"},/area/aisat) "cpx" = (/obj/machinery/door/firedoor/border_only{dir = 4; name = "Firelock East"},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor,/area/engine/engineering) -"cpy" = (/turf/simulated/floor{dir = 4; icon_state = "warning"},/area/engine/engineering) +"cpy" = (/obj/machinery/door_control{id = "Singularity"; name = "Shutters Control"; pixel_x = -25; pixel_y = 0; req_access_txt = "11"},/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 8},/area/engine/engineering) "cpz" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor,/area/engine/engineering) "cpA" = (/obj/machinery/door/airlock/shuttle{name = "Escape Pod Airlock"},/turf/simulated/shuttle/floor,/area/shuttle/escape_pod4/station) "cpB" = (/obj/structure/stool/bed/chair{dir = 4},/obj/item/device/radio/intercom{pixel_y = 25},/turf/simulated/shuttle/floor,/area/shuttle/escape_pod4/station) @@ -6226,10 +6228,10 @@ "cpN" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/extinguisher_cabinet{pixel_x = -5; pixel_y = 30},/turf/simulated/floor{icon_state = "yellow"},/area/engine/engineering) "cpO" = (/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/table,/obj/item/weapon/tank/emergency_oxygen/engi,/obj/item/clothing/mask/breath{step_x = 0; step_y = 0},/turf/simulated/floor{icon_state = "yellow"},/area/engine/engineering) "cpP" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/manifold/supply/hidden{tag = "icon-manifold-b-f (NORTH)"; dir = 1},/turf/simulated/floor,/area/engine/engineering) -"cpQ" = (/obj/machinery/door_control{id = "Singularity"; name = "Shutters Control"; pixel_x = -25; pixel_y = 0; req_access_txt = "11"},/turf/simulated/floor{dir = 8; icon_state = "warning"},/area/engine/engineering) +"cpQ" = (/obj/machinery/door_control{id = "Singularity"; name = "Shutters Control"; pixel_x = 25; pixel_y = 0; req_access_txt = "11"},/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 4},/area/engine/engineering) "cpR" = (/turf/unsimulated/wall,/area/tdome/arena_source) "cpS" = (/obj/structure/particle_accelerator/fuel_chamber,/turf/simulated/floor/plating,/area/engine/engineering) -"cpT" = (/obj/machinery/door_control{id = "Singularity"; name = "Shutters Control"; pixel_x = 25; pixel_y = 0; req_access_txt = "11"},/turf/simulated/floor{dir = 4; icon_state = "warning"},/area/engine/engineering) +"cpT" = (/obj/effect/landmark/start{name = "Station Engineer"},/turf/simulated/floor/plating,/area/engine/engineering) "cpU" = (/obj/structure/rack,/obj/item/clothing/under/color/red,/obj/item/clothing/shoes/sneakers/brown,/obj/item/clothing/suit/armor/vest,/obj/item/clothing/head/helmet/swat,/obj/item/weapon/gun/energy/laser,/turf/unsimulated/floor{icon_state = "dark"},/area/tdome/arena_source) "cpV" = (/obj/structure/rack,/obj/item/clothing/under/color/green,/obj/item/clothing/shoes/sneakers/brown,/obj/item/clothing/suit/armor/vest,/obj/item/clothing/head/helmet/swat,/obj/item/weapon/gun/energy/laser,/turf/unsimulated/floor{icon_state = "dark"},/area/tdome/arena_source) "cpW" = (/obj/structure/rack{dir = 8; layer = 2.9},/obj/item/clothing/mask/gas{pixel_x = 3; pixel_y = 3},/obj/item/clothing/mask/gas,/obj/item/clothing/mask/gas{pixel_x = -3; pixel_y = -3},/turf/simulated/floor{dir = 2; icon_state = "warning"},/area/engine/engineering) @@ -6245,10 +6247,10 @@ "cqg" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/door/airlock/external{name = "Engineering External Access"; req_access = null; req_access_txt = "10;13"},/turf/simulated/floor/plating,/area/engine/engineering) "cqh" = (/obj/machinery/door/poddoor/shutters/preopen{id = "Singularity"; name = "radiation shutters"},/turf/simulated/floor/plating,/area/engine/engineering) "cqi" = (/obj/machinery/door/poddoor{id = "thunderdomegen"; name = "General Supply"},/turf/unsimulated/floor{icon_state = "dark"},/area/tdome/arena_source) -"cqj" = (/obj/item/stack/cable_coil{pixel_x = 3; pixel_y = -7},/obj/item/stack/cable_coil{pixel_x = 3; pixel_y = -7},/obj/item/weapon/crowbar,/turf/simulated/floor{dir = 8; icon_state = "warning"},/area/engine/engineering) -"cqk" = (/obj/structure/stool,/turf/simulated/floor,/area/engine/engineering) +"cqj" = (/obj/item/stack/cable_coil{pixel_x = 3; pixel_y = -7},/obj/item/stack/cable_coil{pixel_x = 3; pixel_y = -7},/obj/item/weapon/crowbar,/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 8},/area/engine/engineering) +"cqk" = (/obj/structure/stool,/turf/simulated/floor/plating,/area/engine/engineering) "cql" = (/obj/structure/particle_accelerator/power_box,/turf/simulated/floor/plating,/area/engine/engineering) -"cqm" = (/obj/item/weapon/screwdriver,/turf/simulated/floor,/area/engine/engineering) +"cqm" = (/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 4},/area/engine/engineering) "cqn" = (/obj/machinery/door/airlock/external{name = "Engineering External Access"; req_access = null; req_access_txt = "10;13"},/turf/simulated/floor/plating,/area/engine/engineering) "cqo" = (/obj/structure/cable,/turf/simulated/floor/plating/airless,/area/solar/starboard) "cqp" = (/turf/simulated/floor,/area/tdome/arena_source) @@ -6261,17 +6263,17 @@ "cqw" = (/obj/structure/reagent_dispensers/watertank,/turf/simulated/floor,/area/engine/engineering) "cqx" = (/obj/machinery/light/small{dir = 8},/obj/structure/closet/emcloset,/turf/simulated/floor/plating,/area/engine/engineering) "cqy" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/sign/securearea{desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; pixel_x = 32},/turf/simulated/floor/plating,/area/engine/engineering) -"cqz" = (/obj/structure/reagent_dispensers/fueltank,/turf/simulated/floor/plating,/area/engine/engineering) +"cqz" = (/obj/item/weapon/screwdriver,/turf/simulated/floor/plating,/area/engine/engineering) "cqA" = (/turf/simulated/floor{icon_state = "red"; dir = 8},/area/tdome/arena_source) "cqB" = (/turf/simulated/floor{icon_state = "green"; dir = 4},/area/tdome/arena_source) "cqC" = (/obj/structure/table,/obj/item/weapon/book/manual/wiki/engineering_hacking{pixel_x = 3; pixel_y = 3},/obj/item/weapon/book/manual/wiki/engineering_construction,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor,/area/engine/engineering) "cqD" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plating,/area/engine/engineering) -"cqE" = (/turf/simulated/floor{dir = 8; icon_state = "warning"},/area/engine/engineering) +"cqE" = (/obj/machinery/power/rad_collector{anchored = 1},/obj/structure/cable/yellow,/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 1},/area/engine/engineering) "cqF" = (/obj/structure/particle_accelerator/particle_emitter/left,/turf/simulated/floor/plating,/area/engine/engineering) "cqG" = (/obj/structure/particle_accelerator/particle_emitter/center,/turf/simulated/floor/plating,/area/engine/engineering) "cqH" = (/obj/structure/particle_accelerator/particle_emitter/right,/turf/simulated/floor/plating,/area/engine/engineering) "cqI" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plating,/area/engine/engineering) -"cqJ" = (/obj/structure/reagent_dispensers/watertank,/turf/simulated/floor/plating,/area/engine/engineering) +"cqJ" = (/obj/structure/reagent_dispensers/fueltank,/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 1},/area/engine/engineering) "cqK" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/sign/securearea{desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; pixel_x = -32},/turf/simulated/floor/plating,/area/engine/engineering) "cqL" = (/obj/machinery/light/small{dir = 4},/obj/structure/closet/emcloset,/turf/simulated/floor/plating,/area/engine/engineering) "cqM" = (/obj/machinery/hologram/holopad,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor,/area/engine/engineering) @@ -6291,9 +6293,9 @@ "cra" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plating,/area/engine/engineering) "crb" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plating,/area/engine/engineering) "crc" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plating,/area/engine/engineering) -"crd" = (/turf/simulated/floor{dir = 10; icon_state = "warning"},/area/engine/engineering) -"cre" = (/obj/item/weapon/wirecutters,/turf/simulated/floor{dir = 2; icon_state = "warning"},/area/engine/engineering) -"crf" = (/turf/simulated/floor{dir = 6; icon_state = "warning"},/area/engine/engineering) +"crd" = (/obj/machinery/power/rad_collector{anchored = 1},/obj/item/weapon/tank/plasma,/obj/structure/cable/yellow,/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 1},/area/engine/engineering) +"cre" = (/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 8},/area/engine/engineering) +"crf" = (/obj/structure/reagent_dispensers/watertank,/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 1},/area/engine/engineering) "crg" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating,/area/engine/engineering) "crh" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plating,/area/engine/engineering) "cri" = (/obj/machinery/door/poddoor{id = "thunderdomehea"; name = "Heavy Supply"},/turf/unsimulated/floor{icon_state = "dark"},/area/tdome/arena_source) @@ -6317,7 +6319,7 @@ "crA" = (/obj/structure/grille,/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/simulated/floor/plating/airless,/area/engine/engineering) "crB" = (/obj/structure/cable,/obj/machinery/power/solar{id = "starboardsolar"; name = "Starboard Solar Array"},/turf/simulated/floor/airless{icon_state = "solarpanel"},/area/solar/starboard) "crC" = (/obj/structure/grille,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plating/airless,/area/engine/engineering) -"crD" = (/obj/item/weapon/extinguisher,/turf/simulated/floor/plating/airless,/area/engine/engineering) +"crD" = (/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 10},/area/engine/engineering) "crE" = (/obj/item/weapon/wrench,/turf/simulated/floor/plating/airless,/area/engine/engineering) "crF" = (/obj/structure/grille,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/simulated/floor/plating/airless,/area/engine/engineering) "crG" = (/obj/machinery/power/emitter{anchored = 1; dir = 4; state = 2},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/simulated/floor/plating/airless,/area/engine/engineering) @@ -6466,7 +6468,7 @@ "cut" = (/turf/space/transit/east/shuttlespace_ew15,/area/shuttle/escape_pod4/transit) "cuu" = (/turf/space/transit/east/shuttlespace_ew1,/area/shuttle/escape_pod4/transit) "cuv" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 2; name = "thrower_throwdown"; stopper = 0; tiles = 0},/turf/space/transit/east/shuttlespace_ew7,/area/space) -"cuw" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor{dir = 9; icon_state = "warning"},/area/engine/engineering) +"cuw" = (/obj/item/weapon/wirecutters,/turf/simulated/floor/plating{icon_state = "warnplate"},/area/engine/engineering) "cux" = (/turf/space/transit/north/shuttlespace_ns2,/area/shuttle/escape/transit) "cuy" = (/turf/space/transit/north/shuttlespace_ns12,/area/shuttle/escape/transit) "cuz" = (/turf/space/transit/north/shuttlespace_ns6,/area/shuttle/escape/transit) @@ -7001,7 +7003,7 @@ "cEI" = (/obj/machinery/door/window{name = "Cockpit"; req_access_txt = "150"},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_station/start) "cEJ" = (/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "snow"},/turf/simulated/shuttle/wall{dir = 4; icon_state = "diagonalWall3"},/area/syndicate_station/start) "cEK" = (/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "snow"},/obj/structure/flora/grass/brown,/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "gravsnow_corner"; dir = 4},/area/syndicate_mothership) -"cEL" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden,/turf/simulated/floor{dir = 5; icon_state = "warning"},/area/engine/engineering) +"cEL" = (/turf/simulated/floor/plating{icon_state = "warnplate"},/area/engine/engineering) "cEM" = (/obj/structure/stool,/turf/unsimulated/floor{icon_state = "bar"; dir = 2},/area/syndicate_mothership) "cEN" = (/obj/machinery/door/airlock/centcom{name = "Study"; opacity = 1; req_access_txt = "150"},/turf/unsimulated/floor{icon_state = "bar"; dir = 2},/area/syndicate_mothership) "cEO" = (/turf/unsimulated/floor{icon_state = "grimy"},/area/syndicate_mothership) @@ -7010,8 +7012,7 @@ "cER" = (/turf/unsimulated/floor{dir = 10; icon_state = "green"},/area/centcom/evac) "cES" = (/turf/unsimulated/floor{icon_state = "green"},/area/centcom/evac) "cET" = (/turf/unsimulated/floor{icon_state = "green"; dir = 6},/area/centcom/evac) -"cEU" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor{dir = 1; icon_state = "warning"},/area/engine/engineering) -"cEV" = (/obj/machinery/camera{c_tag = "Engineering Center"; dir = 2; pixel_x = 23},/obj/machinery/light{dir = 1},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor{dir = 1; icon_state = "warning"},/area/engine/engineering) +"cEU" = (/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 6},/area/engine/engineering) "cEW" = (/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "snow"},/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "gravsnow_surround"; dir = 8},/area/syndicate_mothership) "cEX" = (/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "snow"},/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "gravsnow_corner"; dir = 6},/area/syndicate_mothership) "cEY" = (/obj/structure/table/woodentable,/obj/item/weapon/reagent_containers/food/drinks/beer{pixel_x = -2; pixel_y = 5},/turf/unsimulated/floor{icon_state = "bar"; dir = 2},/area/syndicate_mothership) @@ -9441,14 +9442,14 @@ ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlah ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahldpXahjcdcckJcdeahlcdcckJcdeahjcdcckJcdeahjahjahjahjahjahjahjahjbCvbCvbCvbCvbELbCvahjahjcjtcmPcoZcoUcoPcmPcjtahjbCvciccnbclecoccicclAclBclBciccndcnecmycodckbclHclGclJclGclGcnkcnlcnScnRcnocnncnncnncobcoacicbOPbOPbOPbOPbOPbOPbOPbOPbOPbOPbOPbOPbOPahlahlahlahlahlahlahlahlahlbZnbUQcfHcbOcdLbUQahjahlahlahlahlahlahlahlahlbRJahlahlahlahlahjahjahlahlahlahlahjdsicbncnrblAbrqcpGblAbgZbgZbgZbgZbgZblAbgZahlahjahlahjahlcnscntcnucnvcnwahjahjahjahjahjahjahjahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlaaRahjcdccnxcdeahlcdccnxcdeahlcdccnxcdeahjdpXahjahlahlahlahlahlahlahlahlbLWbELcaqahlahlcjtcmZcnfcpkcnqcngcjtcjtcjtciccnEclecoeciccicciccicciccnGckUcofcnpckbckUckUckUbQybQwccOckbckbcnpckUcopckUckUcohcogcicahjahlahlahlahjahjahlahlahjahlahlahlahjahlahlahlahlahlahlahlahlahlbZubUQbZmcfIbZpbUQahjahlahlahlahlahlahlahlahlbRJahlahlahlahlahlahjahlahlahlahlahldsicbnblAaBRbgZbLkblAblAblAblAblAblAblAbgZahlahjahlahjahlahjcnVcnWcnVahjahlahlahjahlahlahjahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahldpXahlahjahlahlahlahjahjahjahlahlahjahjahldpXahjahjahlahlahlahlahlahlahlbRMbELbRMahlahlcjtcoicppcpocpmcaWcokcomcolcokcoFcoHcoIcoJcoKcoOcoQcoRcoSckxcoTcoVcoWcoXcoYclyconclyconcoocoscoqckxckxcotckxcoEcoDciccicciccicciccmvcmvcmvcmvcicahlahjahjahjahlahlahlahlahlahlahlahlahlbZubUQdvachpduZcfJahjahlahlahlahlaaeahlahlahlahjahlahlahlahlahlahlahlahlahlahlahlahlcoucmdcmebgZcnUbgZbgZbLlcowckEcoxbgZbgZahlahjahlahlahlahjcoycnucoyahjahlahlahlahlahlahjahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl -ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlaaHaaHdpXaaHaaHaaRdpXdpXdpXdpXaaHdpXdpXaaHcozahlahjahjahlahlahlahlahlahjbRMbELbRMahjahjcjtcaXcfucdScfDcfCcfOcfNcfPcfOcfTcfQcgfcfXcpPcpzcpxcpzcqNcuocqCcqMcuGcBIcupcuwcEUcEVcEUcELcFDcFzcmicqMcGwcmicGvcFRcmidbyckUbRXcicdsWdsXcpacpbcpbcpcahlahlahlahlahlahlahlahlahlahlahlahlbZubUQbUQdvbbUQbUQahjahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahjcmbahlbgZbgZcgCcgEbgZbgZahjahjahlahlahlahlahjahlcpdahlahlahlahlahlahlahlahjahlahlahlaaeahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl -ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahjahjahlahlahlahlahlcdmbELcdmahlahlcjtcjscjrcgHcmUckecjtcmVcmXcjtcmYckUcjucnpckbcplcqDcpncmFbYecambGvbGvbGvbHWbSrcjqcpsckSckkcbTcbScbSccOckUcopcmFckOcktckqckxckvboSckhckhcpAcpBcbRcpDahlahlahlahlahlahlahlahlahlahlahlahlbZudsibUQbTYbUQcrVahjahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlaaeahlahlahlahlahlahlbqzahlahlahjahlahjahlahlahjahjahjahlahlahlahjahlcpdahlahjahlahlahjahjahjahjahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl -ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlaaeahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahjahjahlahlahlbCvbCvbTZbCvbCvahlcjtcknckmcklcjtcjtcjtcjtcjtciccpHckUcjucnicjFcpIcpJcpKcmFcpLcpMcoAcnNcorciccpQcnLcpScopcpTciccnKcnJcnJcpMcpLcmFcpWckRckbckUbOxcicbxeckhcpZcpbcpbcqaahlahlahlahlahlahlahlaaeahlahlahlahlcmNdsibURbUSbURdsiahjahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahjahlahjahlahlcqbcqbcqbcqcahjahjahjahjcpdahjahjahjahjahjaaRcqbcqbahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl -ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahjahjahlahlbCvckdbELcqdbCvahjcjtcjtcjtcjtcjtahjahlahlahjciccqeckUckpcoNcoNckycmvcmvcqgciccqhcoBcoBcoBciccqjcqkcqlcqmcpyciccoBcoBcoBcqhciccqgcmvckTckbckUcicciccmvcmvcmvcmvcicahlahlahlahlahlahlahlahlahlahlahlahlahlahjahlahlahlahlahlahjahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahjahlahjahlahlcqbahlahjahlahjahlahlahlcqoahlahjahjahlahlahlahlcqbahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl -ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahjahjahlbLWbDicqqcqrbCvahjahlahlahjahlahlahjahlahlahjciccqscqtcmFcqucqvcqwcmvcqxcqyciccqzcoLcoMcoLcqDcqEcqFcqGcqHcpycqIcoLcoLcoLcqJciccqKcqLcleckbckYclbckXckUbZYcqIahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahjahlahjahlahlcqbahlcqOcqOcqOcqOcqOahjcqPahjcqOcqOcqOcqOcqOahlcqbahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl -ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahjahjbRMcqQcqRbfFbCvbCvcqTcqUcqUcqUcqUcqUcqUcqVcmvciccqWcqXcqYcqZcqWciccicciccqgcicciccmzcracrbcrccrdcpMcrecpMcrfcrgcrbcracrhcicciccqgciccleclpclwclvclmckUciAcizahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahjahlahlcqbahjcrjcrkcrkcrkcrkcrlcqPcrmcrncrncrncrncroahjcqbahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl +ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlaaHaaHdpXaaHaaHaaRdpXdpXdpXdpXaaHdpXdpXaaHcozahlahjahjahlahlahlahlahlahjbRMbELbRMahjahjcjtcaXcfucdScfDcfCcfOcfNcfPcfOcfTcfQcgfcfXcpPcpzcpxcpzcqNcuocqCcqMcuGcBIcupbBAbXdbSrbXdcjqcFDcFzcmicqMcGwcmicGvcFRcmidbyckUbRXcicdsWdsXcpacpbcpbcpcahlahlahlahlahlahlahlahlahlahlahlahlbZubUQbUQdvbbUQbUQahjahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahjcmbahlbgZbgZcgCcgEbgZbgZahjahjahlahlahlahlahjahlcpdahlahlahlahlahlahlahlahjahlahlahlaaeahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl +ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahjahjahlahlahlahlahlcdmbELcdmahlahlcjtcjscjrcgHcmUckecjtcmVcmXcjtcmYckUcjucnpckbcplcqDcpncmFbYecambGvbGvbGvbHWckkckScpscoMcoLcbTcbScbSccOckUcopcmFckOcktckqckxckvboSckhckhcpAcpBcbRcpDahlahlahlahlahlahlahlahlahlahlahlahlbZudsibUQbTYbUQcrVahjahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlaaeahlahlahlahlahlahlbqzahlahlahjahlahjahlahlahjahjahjahlahlahlahjahlcpdahlahjahlahlahjahjahjahjahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl +ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlaaeahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahjahjahlahlahlbCvbCvbTZbCvbCvahlcjtcknckmcklcjtcjtcjtcjtcjtciccpHckUcjucnicjFcpIcpJcpKcmFcpLcpMcoAcnNcorciccpycnLcpScpTcpQciccnKcnJcnJcpMcpLcmFcpWckRckbckUbOxcicbxeckhcpZcpbcpbcqaahlahlahlahlahlahlahlaaeahlahlahlahlcmNdsibURbUSbURdsiahjahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahjahlahjahlahlcqbcqbcqbcqcahjahjahjahjcpdahjahjahjahjahjaaRcqbcqbahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl +ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahjahjahlahlbCvckdbELcqdbCvahjcjtcjtcjtcjtcjtahjahlahlahjciccqeckUckpcoNcoNckycmvcmvcqgciccqhcoBcoBcoBciccqjcqkcqlcqzcqmciccoBcoBcoBcqhciccqgcmvckTckbckUcicciccmvcmvcmvcmvcicahlahlahlahlahlahlahlahlahlahlahlahlahlahjahlahlahlahlahlahjahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahjahlahjahlahlcqbahlahjahlahjahlahlahlcqoahlahjahjahlahlahlahlcqbahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl +ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahjahjahlbLWbDicqqcqrbCvahjahlahlahjahlahlahjahlahlahjciccqscqtcmFcqucqvcqwcmvcqxcqyciccqJcqEcrdcqEcqDcrecqFcqGcqHcqmcqIcqEcqEcqEcrfciccqKcqLcleckbckYclbckXckUbZYcqIahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahjahlahjahlahlcqbahlcqOcqOcqOcqOcqOahjcqPahjcqOcqOcqOcqOcqOahlcqbahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl +ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahjahjbRMcqQcqRbfFbCvbCvcqTcqUcqUcqUcqUcqUcqUcqVcmvciccqWcqXcqYcqZcqWciccicciccqgcicciccmzcracrbcrccrDcELcuwcELcEUcrgcrbcracrhcicciccqgciccleclpclwclvclmckUciAcizahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahjahlahlcqbahjcrjcrkcrkcrkcrkcrlcqPcrmcrncrncrncrncroahjcqbahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahjcrpcrqcrqcrrbCvahjahlahlahjahlahlahjahlahlahjdsidsidsiahjahlahjdsiciccrscrtcruahlahlahlcrvcrwcracracracracracrwcrxahlahlahlcrycrzcrAclLclIclyclyclxcpXciDcjQahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahjahlahlcqbahjcrBcrBcrBcrBcrBahlcqPahlcrBcrBcrBcrBcrBahjcqbahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl -ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahldsidsidsidsidsidsiahlahjahlahjahjahlahlahlahjciccrCcrDahlahlahlahjahjahjahjahjahjahjahjahjahjahjahlahlahlcrEcrCcicdrndrTciccmvcmvckDcmvahjahjahjahjahjahjahjahjahjahjahjahjahjahjahjahjahjahjahjahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahjahlahlcqbahlahjahlahjahjahjahlcqPahlahjahlahjahlahjahlcqbahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl +ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahldsidsidsidsidsidsiahlahjahlahjahjahlahlahlahjciccrCcrHahlahlahlahjahjahjahjahjahjahjahjahjahjahjahlahlahlcrEcrCcicdrndrTciccmvcmvckDcmvahjahjahjahjahjahjahjahjahjahjahjahjahjahjahjahjahjahjahjahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahjahlahlcqbahlahjahlahjahjahjahlcqPahlahjahlahjahlahjahlcqbahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahjahlahlahlahlahlahlahlciccrFcrGcrHahjahjahjcrIahlahlahlahlcrIahlahlcrIahjahjahjcrHcrJcrKciccqndoBcmvahjahlclndtAahjahlahlahlahjahlahlahlahjahlahlahlahjahlahlahlahjahlahjahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlcqbahlcqOcqOcqOcqOcqOahjcqPahjcqOcqOcqOcqOcqOahjcqbahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlaaeahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlciccrCcrHcrLahlahlahjahlahlahlahlahlcrMahlahlahlahjahlahlcrHcrHcrCcicdsidsiahlahjahldtGdtbdtMdtKduodtKdtMdtKduodtKdtKdtKduodtKdtMdtKduodtIcmfahlahjahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlcqbahjcrjcrkcrkcrkcrkcrlcqPcrmcrncrncrncrncroahjcqbahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlaaeahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlciccrNcrOcrHahlahlahjahlahlahjahjahjahjahjahlahlahjahlahlcrHcrPcrQcicahjahjahjahjahlahlahlahjahlahlahlahjahlahlahlahjahlahlahlahjahlahldtGdtCdtAdtuahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlcqbahjcrBcrBcrBcrBcrBahlcqPahjcrBcrBcrBcrBcrBahlcqbahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl From 31890bfaf6180aa8d9694d00919c32d061d94db5 Mon Sep 17 00:00:00 2001 From: WJohn Date: Thu, 6 Nov 2014 11:19:16 -0500 Subject: [PATCH 075/102] Ditto for metastation. --- _maps/map_files/MetaStation.v39K.dmm | 66 +++++++++++++++------------- 1 file changed, 35 insertions(+), 31 deletions(-) diff --git a/_maps/map_files/MetaStation.v39K.dmm b/_maps/map_files/MetaStation.v39K.dmm index b97e651fb11..5f6f4d5af92 100644 --- a/_maps/map_files/MetaStation.v39K.dmm +++ b/_maps/map_files/MetaStation.v39K.dmm @@ -758,7 +758,7 @@ "aoD" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating,/area/maintenance/auxsolarstarboard) "aoE" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plating,/area/maintenance/auxsolarstarboard) "aoF" = (/turf/simulated/wall,/area/maintenance/disposal) -"aoG" = (/obj/effect/landmark/start{name = "Station Engineer"},/turf/simulated/floor,/area/engine/engineering) +"aoG" = (/obj/structure/reagent_dispensers/watertank,/turf/simulated/floor/plating{dir = 8; icon_state = "warnplate"; tag = ""},/area/engine/engineering) "aoH" = (/obj/machinery/conveyor_switch/oneway{convdir = -1; id = "garbage"; name = "disposal coveyor"},/turf/simulated/floor/plating,/area/maintenance/disposal) "aoI" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"; tag = ""},/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 1},/area/maintenance/auxsolarstarboard) "aoJ" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor{dir = 2; icon_state = "redcorner"},/area/security/brig) @@ -1182,7 +1182,7 @@ "awL" = (/obj/machinery/computer/atmos_alert,/turf/simulated/floor{tag = "icon-darkyellow (NORTH)"; icon_state = "darkyellow"; dir = 1},/area/bridge) "awM" = (/turf/simulated/floor{dir = 4; icon_state = "warning"},/area/engine/engineering) "awN" = (/obj/machinery/door/poddoor/shutters/preopen{id = "Singularity"; name = "radiation shutters"},/turf/simulated/floor/plating,/area/engine/engineering) -"awO" = (/obj/structure/reagent_dispensers/watertank,/turf/simulated/floor/plating,/area/engine/engineering) +"awO" = (/obj/machinery/power/rad_collector{anchored = 1},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/simulated/floor/plating{dir = 8; icon_state = "warnplate"; tag = ""},/area/engine/engineering) "awP" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable/yellow{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/door/window/brigdoor{id = "Cell 2"; name = "Cell 2"; req_access_txt = "2"},/turf/simulated/floor{icon_state = "red"},/area/security/brig) "awQ" = (/turf/simulated/shuttle/floor,/area/shuttle/mining/station) "awR" = (/obj/structure/stool/bed/chair{dir = 1},/turf/simulated/shuttle/floor,/area/shuttle/mining/station) @@ -1255,7 +1255,7 @@ "ayg" = (/obj/machinery/status_display{density = 0; layer = 4; pixel_x = 0; pixel_y = 32},/turf/simulated/floor{dir = 8; icon_state = "barber"},/area/security/prison) "ayh" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0; tag = ""},/turf/simulated/floor{dir = 4; icon_state = "warning"},/area/engine/engineering) "ayi" = (/obj/machinery/door/poddoor/shutters/preopen{id = "Singularity"; name = "radiation shutters"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0; tag = ""},/turf/simulated/floor/plating,/area/engine/engineering) -"ayj" = (/obj/machinery/power/rad_collector{anchored = 1},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/simulated/floor/plating,/area/engine/engineering) +"ayj" = (/obj/machinery/door_control{id = "Singularity"; name = "Shutters Control"; pixel_x = -25; pixel_y = 0; req_access_txt = "11"},/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 9},/area/engine/engineering) "ayk" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plating,/area/engine/engineering) "ayl" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable/yellow{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/door/window/brigdoor{id = "Holding Cell"; name = "Holding Cell"; req_access_txt = "2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor{icon_state = "red"},/area/security/brig) "aym" = (/obj/machinery/door/airlock{id_tag = "FitnessShower"; name = "Fitness Room Shower"},/turf/simulated/floor{icon_state = "freezerfloor"},/area/crew_quarters/fitness{name = "\improper Recreation Area"}) @@ -1530,13 +1530,13 @@ "aDv" = (/obj/structure/rack,/obj/item/weapon/storage/box/chemimp{pixel_x = 4; pixel_y = 3},/obj/item/weapon/storage/box/trackimp,/obj/item/weapon/reagent_containers/glass/bottle/stoxin,/obj/machinery/alarm{pixel_y = 28},/turf/simulated/floor{tag = "icon-vault (WEST)"; icon_state = "vault"; dir = 8},/area/security/warden) "aDw" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{req_access_txt = 1},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor{dir = 10; icon_state = "warning"},/area/engine/gravity_generator) "aDx" = (/turf/simulated/floor{dir = 2; icon_state = "warning"},/area/engine/engineering) -"aDy" = (/turf/simulated/floor{dir = 6; icon_state = "warning"},/area/engine/engineering) +"aDy" = (/turf/simulated/floor/plating{tag = "icon-warnplate (NORTH)"; icon_state = "warnplate"; dir = 1},/area/engine/engineering) "aDz" = (/obj/structure/table/woodentable,/obj/machinery/recharger{pixel_y = 4},/turf/simulated/floor/wood,/area/crew_quarters/captain{name = "\improper Captain's Quarters"}) "aDA" = (/obj/machinery/computer/security,/turf/simulated/floor{icon_state = "dark"},/area/security/hos) "aDB" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor,/area/engine/engineering) "aDC" = (/obj/machinery/computer/prisoner,/turf/simulated/floor{icon_state = "dark"},/area/security/hos) -"aDD" = (/obj/machinery/door_control{id = "Singularity"; name = "Shutters Control"; pixel_x = -25; pixel_y = 0; req_access_txt = "11"},/turf/simulated/floor{dir = 9; icon_state = "warning"},/area/engine/engineering) -"aDE" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = ""},/turf/simulated/floor{dir = 1; icon_state = "warning"},/area/engine/engineering) +"aDD" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = ""},/turf/simulated/floor/plating{tag = "icon-warnplate (NORTH)"; icon_state = "warnplate"; dir = 1},/area/engine/engineering) +"aDE" = (/obj/machinery/camera/emp_proof{c_tag = "Engineering - Particle Accelerator"; dir = 2; network = list("Singulo","SS13")},/turf/simulated/floor/plating{tag = "icon-warnplate (NORTH)"; icon_state = "warnplate"; dir = 1},/area/engine/engineering) "aDF" = (/obj/structure/grille,/obj/structure/window/reinforced/tinted{dir = 5; health = 120; icon_state = "twindow"; reinf = 0},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/plating,/area/maintenance/fpmaint2{name = "Port Maintenance"}) "aDG" = (/obj/structure/closet/athletic_mixed,/turf/simulated/floor{tag = "icon-vault"; icon_state = "vault"},/area/crew_quarters/fitness{name = "\improper Recreation Area"}) "aDH" = (/turf/simulated/floor{dir = 5; icon_state = "warning"},/area/engine/engineering) @@ -1599,8 +1599,8 @@ "aEM" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor{dir = 8; icon_state = "neutralcorner"},/area/hallway/primary/central) "aEN" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor{icon_state = "floorgrime"},/area/security/prison) "aEO" = (/obj/machinery/door/poddoor/shutters/preopen{id = "Singularity"; name = "radiation shutters"},/turf/simulated/floor{icon_state = "bot"; dir = 1},/area/engine/engineering) -"aEP" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"; tag = ""},/turf/simulated/floor{dir = 8; icon_state = "warning"},/area/engine/engineering) -"aEQ" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"; tag = ""},/turf/simulated/floor,/area/engine/engineering) +"aEP" = (/turf/simulated/floor/plating{tag = "icon-warnplate (NORTHEAST)"; icon_state = "warnplate"; dir = 5},/area/engine/engineering) +"aEQ" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"; tag = ""},/turf/simulated/floor/plating{dir = 8; icon_state = "warnplate"; tag = ""},/area/engine/engineering) "aER" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/structure/cable/yellow{d2 = 2; icon_state = "0-2"},/obj/structure/cable/yellow{d2 = 8; icon_state = "0-8"},/turf/simulated/floor/plating,/area/security/hos) "aES" = (/obj/structure/particle_accelerator/particle_emitter/right{dir = 4},/turf/simulated/floor/plating,/area/engine/engineering) "aET" = (/obj/item/device/radio/intercom{freerange = 0; frequency = 1459; name = "Station Intercom (General)"; pixel_x = 0; pixel_y = 21},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor{dir = 1; icon_state = "yellow"},/area/engine/break_room) @@ -1676,7 +1676,7 @@ "aGl" = (/obj/structure/particle_accelerator/fuel_chamber{dir = 4},/turf/simulated/floor/plating,/area/engine/engineering) "aGm" = (/obj/structure/particle_accelerator/power_box{dir = 4},/turf/simulated/floor/plating,/area/engine/engineering) "aGn" = (/obj/structure/particle_accelerator/particle_emitter/center{dir = 4},/turf/simulated/floor/plating,/area/engine/engineering) -"aGo" = (/obj/item/weapon/wirecutters,/turf/simulated/floor{dir = 4; icon_state = "warning"},/area/engine/engineering) +"aGo" = (/obj/effect/landmark/start{name = "Station Engineer"},/turf/simulated/floor/plating,/area/engine/engineering) "aGp" = (/obj/structure/window/reinforced{dir = 8},/turf/space,/area/space) "aGq" = (/obj/structure/window/reinforced{dir = 4; pixel_x = 0},/turf/space,/area/space) "aGr" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 5},/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/turf/simulated/floor/plating,/area/maintenance/fpmaint2{name = "Port Maintenance"}) @@ -1754,10 +1754,10 @@ "aHL" = (/obj/machinery/photocopier,/turf/simulated/floor{dir = 2; icon_state = "brown"},/area/quartermaster/office{name = "\improper Cargo Office"}) "aHM" = (/obj/machinery/syndicatebomb/training,/turf/simulated/floor{tag = "icon-vault (WEST)"; icon_state = "vault"; dir = 8},/area/security/warden) "aHN" = (/obj/machinery/door/poddoor/shutters/preopen{id = "Singularity"; name = "radiation shutters"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0; tag = ""},/turf/simulated/floor{icon_state = "bot"; dir = 1},/area/engine/engineering) -"aHO" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"; tag = ""},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0; tag = ""},/turf/simulated/floor{dir = 8; icon_state = "warning"},/area/engine/engineering) -"aHP" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0; tag = ""},/turf/simulated/floor,/area/engine/engineering) +"aHO" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"; tag = ""},/turf/simulated/floor/plating,/area/engine/engineering) +"aHP" = (/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 4},/area/engine/engineering) "aHQ" = (/obj/machinery/particle_accelerator/control_box,/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/simulated/floor/plating,/area/engine/engineering) -"aHR" = (/obj/structure/stool{pixel_y = 8},/turf/simulated/floor,/area/engine/engineering) +"aHR" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = ""},/obj/machinery/light{dir = 8},/turf/simulated/floor/plating{dir = 8; icon_state = "warnplate"; tag = ""},/area/engine/engineering) "aHS" = (/obj/structure/particle_accelerator/particle_emitter/left{dir = 4},/turf/simulated/floor/plating,/area/engine/engineering) "aHT" = (/turf/space,/turf/simulated/shuttle/wall{dir = 4; icon_state = "diagonalWall3"},/area/space) "aHU" = (/turf/simulated/wall/r_wall,/area/storage/tech) @@ -1822,7 +1822,7 @@ "aJb" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass_security{name = "Labor Camp Shuttle Airlock"; req_access_txt = "2"},/obj/machinery/door_control{id = "prison release"; name = "Labor Camp Release Lockdown"; pixel_x = 0; pixel_y = -25; req_access_txt = "2"},/turf/simulated/floor{icon_state = "dark"},/area/security/brig) "aJc" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 2; on = 1},/turf/simulated/floor,/area/engine/break_room) "aJd" = (/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/turf/simulated/floor,/area/engine/break_room) -"aJe" = (/obj/machinery/door_control{id = "Singularity"; name = "Shutters Control"; pixel_x = -25; pixel_y = 0; req_access_txt = "11"},/turf/simulated/floor{dir = 10; icon_state = "warning"},/area/engine/engineering) +"aJe" = (/obj/item/weapon/wirecutters,/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 4},/area/engine/engineering) "aJf" = (/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/turf/simulated/floor,/area/engine/break_room) "aJg" = (/obj/structure/reagent_dispensers/fueltank,/turf/simulated/floor{dir = 9; icon_state = "yellow"},/area/storage/tools) "aJh" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor,/area/engine/break_room) @@ -2006,7 +2006,7 @@ "aMD" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor{dir = 1; icon_state = "warning"},/area/engine/engineering) "aME" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = ""},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = "90Curve"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/turf/simulated/floor{dir = 1; icon_state = "warning"},/area/engine/engineering) "aMF" = (/obj/structure/rack{dir = 8; layer = 2.9},/obj/item/weapon/circuitboard/mining,/obj/item/weapon/circuitboard/autolathe{pixel_x = 3; pixel_y = -3},/turf/simulated/floor{icon_state = "dark"},/area/storage/tech) -"aMG" = (/obj/machinery/power/rad_collector{anchored = 1},/obj/item/weapon/tank/plasma,/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/simulated/floor/plating,/area/engine/engineering) +"aMG" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"; tag = ""},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0; tag = ""},/turf/simulated/floor/plating{dir = 8; icon_state = "warnplate"; tag = ""},/area/engine/engineering) "aMH" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/turf/simulated/floor{dir = 1; icon_state = "yellowcorner"},/area/hallway/primary/starboard) "aMI" = (/turf/simulated/shuttle/wall{tag = "icon-swall3"; icon_state = "swall3"; dir = 2},/area/shuttle/escape_pod1/station) "aMJ" = (/obj/structure/stool/bed/chair{dir = 1},/obj/machinery/status_display{density = 0; layer = 4; pixel_x = 32; pixel_y = 0},/turf/simulated/shuttle/floor,/area/shuttle/escape_pod1/station) @@ -2144,7 +2144,7 @@ "aPl" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/extinguisher_cabinet{pixel_x = -27; pixel_y = 0},/turf/simulated/floor{dir = 8; icon_state = "neutralcorner"},/area/hallway/primary/central) "aPm" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 1; initialize_directions = 11},/obj/machinery/navbeacon{codes_txt = "patrol;next_patrol=13.2-Tcommstore"; location = "13.1-Engineering-Enter"},/turf/simulated/floor{dir = 8; icon_state = "cautioncorner"},/area/hallway/primary/starboard) "aPn" = (/obj/machinery/autolathe,/obj/machinery/newscaster{pixel_x = 28; pixel_y = 0},/turf/simulated/floor{dir = 6; icon_state = "brown"},/area/quartermaster/office{name = "\improper Cargo Office"}) -"aPo" = (/obj/structure/reagent_dispensers/fueltank,/turf/simulated/floor/plating,/area/engine/engineering) +"aPo" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0; tag = ""},/turf/simulated/floor/plating,/area/engine/engineering) "aPp" = (/obj/structure/closet/secure_closet/personal,/obj/item/clothing/under/assistantformal,/turf/simulated/floor{tag = "icon-vault"; icon_state = "vault"},/area/crew_quarters/locker) "aPq" = (/turf/simulated/floor/plating,/obj/structure/shuttle/engine/propulsion/burst,/turf/simulated/shuttle/wall{tag = "icon-swall_f5"; icon_state = "swall_f5"; dir = 2},/area/shuttle/escape_pod1/station) "aPr" = (/obj/structure/table,/obj/item/weapon/folder/red,/obj/item/weapon/restraints/handcuffs,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/laborcamp/station) @@ -3071,7 +3071,7 @@ "bhc" = (/obj/machinery/door/poddoor{density = 0; icon_state = "open"; id = "atmos"; name = "Atmos Blast Door"; opacity = 0},/turf/simulated/floor{icon_state = "delivery"; name = "floor"},/area/engine/break_room) "bhd" = (/obj/structure/table,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/obj/machinery/ai_status_display{pixel_x = 0; pixel_y = 31},/obj/item/weapon/folder,/obj/item/weapon/folder,/turf/simulated/floor{icon_state = "vault"; dir = 8},/area/turret_protected/tcomwest{name = "\improper MiniSat West Wing"}) "bhe" = (/obj/machinery/door/airlock/maintenance{req_access_txt = "12"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plating,/area/maintenance/starboard) -"bhf" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = ""},/obj/machinery/light{dir = 8},/turf/simulated/floor{dir = 8; icon_state = "warning"},/area/engine/engineering) +"bhf" = (/obj/structure/stool{pixel_y = 8},/turf/simulated/floor/plating,/area/engine/engineering) "bhg" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 10},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 8},/area/maintenance/starboard) "bhh" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/table,/obj/machinery/alarm{pixel_y = 26},/obj/item/weapon/paper_bin{pixel_x = -2; pixel_y = 5},/turf/simulated/floor{icon_state = "vault"; dir = 8},/area/turret_protected/tcomwest{name = "\improper MiniSat West Wing"}) "bhi" = (/obj/machinery/light/small{dir = 8},/obj/structure/dispenser/oxygen{pixel_x = -1; pixel_y = 2},/turf/simulated/floor{icon_state = "vault"; dir = 8},/area/turret_protected/tcomwest{name = "\improper MiniSat West Wing"}) @@ -3281,7 +3281,7 @@ "ble" = (/turf/simulated/wall/r_wall,/area/crew_quarters/heads) "blf" = (/obj/item/weapon/crowbar,/turf/space,/area/space) "blg" = (/obj/structure/stool/bed/chair/office/dark,/turf/simulated/floor{icon_state = "dark"},/area/hallway/primary/fore) -"blh" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = ""},/turf/simulated/floor{dir = 2; icon_state = "warning"},/area/engine/engineering) +"blh" = (/obj/machinery/door_control{id = "Singularity"; name = "Shutters Control"; pixel_x = -25; pixel_y = 0; req_access_txt = "11"},/turf/simulated/floor/plating{tag = "icon-warnplate (SOUTHWEST)"; icon_state = "warnplate"; dir = 10},/area/engine/engineering) "bli" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor{dir = 1; icon_state = "neutralcorner"},/area/crew_quarters/locker) "blj" = (/obj/machinery/door/airlock/command{name = "Captain's Quarters"; req_access = null; req_access_txt = "20"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/disposalpipe/segment,/turf/simulated/floor/wood,/area/crew_quarters/captain{name = "\improper Captain's Quarters"}) "blk" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 1},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor{dir = 4; icon_state = "neutralcorner"},/area/crew_quarters/locker) @@ -3725,7 +3725,7 @@ "btG" = (/obj/machinery/computer/security/telescreen{desc = "Used for watching the RD's goons from the safety of his office."; name = "Research Monitor"; network = list("RD"); pixel_x = 0; pixel_y = 2},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/table/reinforced,/turf/simulated/floor{tag = "icon-cafeteria (NORTHEAST)"; icon_state = "cafeteria"; dir = 5},/area/crew_quarters/hor) "btH" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor,/area/crew_quarters/locker) "btI" = (/turf/simulated/wall,/area/crew_quarters/heads) -"btJ" = (/obj/machinery/camera/emp_proof{c_tag = "Engineering - Particle Accelerator"; dir = 2; network = list("Singulo","SS13")},/turf/simulated/floor{dir = 1; icon_state = "warning"},/area/engine/engineering) +"btJ" = (/turf/simulated/floor/plating{icon_plating = "warnplate"; icon_state = "warnplate"},/area/engine/engineering) "btK" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 9},/turf/simulated/floor{dir = 8; icon_state = "brown"},/area/quartermaster/qm) "btL" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor,/area/crew_quarters/locker) "btM" = (/obj/machinery/power/apc{cell_type = 2500; dir = 2; name = "Courtroom APC"; pixel_x = 1; pixel_y = -24},/obj/structure/cable/yellow{d2 = 4; icon_state = "0-4"},/obj/structure/table,/obj/item/weapon/storage/fancy/donut_box,/turf/simulated/floor{icon_state = "dark"},/area/crew_quarters/courtroom) @@ -10540,6 +10540,10 @@ "dUJ" = (/obj/structure/shuttle/engine/propulsion{icon_state = "propulsion_l"},/turf/space,/area/space) "dUK" = (/obj/structure/showcase{desc = "A historical figure of great importance to the wizard federation. He spent his long life learning magic, stealing artifacts, and harassing idiots with swords. May he rest forever, Rodney."; icon = 'icons/mob/mob.dmi'; icon_state = "nim"; name = "wizard of yendor showcase"},/turf/unsimulated/floor{dir = 1; icon_state = "chapel"},/area/wizard_station) "dUL" = (/obj/effect/decal/cleanable/cobweb2,/obj/structure/showcase{desc = "A strange machine supposedly from another world. The Wizard Federation has been meddling with it for years."; icon_state = "processor"; name = "byond random number generator"},/turf/unsimulated/floor{dir = 4; icon_state = "chapel"},/area/wizard_station) +"dUM" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = ""},/turf/simulated/floor/plating{icon_plating = "warnplate"; icon_state = "warnplate"},/area/engine/engineering) +"dUN" = (/turf/simulated/floor/plating{tag = "icon-warnplate (SOUTHEAST)"; icon_state = "warnplate"; dir = 6},/area/engine/engineering) +"dUO" = (/obj/machinery/power/rad_collector{anchored = 1},/obj/item/weapon/tank/plasma,/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/simulated/floor/plating{dir = 8; icon_state = "warnplate"; tag = ""},/area/engine/engineering) +"dUP" = (/obj/structure/reagent_dispensers/fueltank,/turf/simulated/floor/plating{dir = 8; icon_state = "warnplate"; tag = ""},/area/engine/engineering) (1,1,1) = {" aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa @@ -10635,21 +10639,21 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeajGajGajGajGajGajGaaeajGajGajGaaeaKBaKBaKBarnasNbrTaKBaaaauIauJauKauJauLalvaaeaaeaaeaKBaovaKBaouaXOaXOaXOaDlafVaKBaDfarSaoxadraaaavUavUavUavUavUavUavUaaaahTaBMaBLazmahTalEalCaeMaoLapqaiGayMapfapnaiGapzapfapqapAapraiMapwapxaxnaoMaoQaoPaoJapaanSamSapaaozaoKapbaoVaoUaoXaoWapNapLaeMaocbaabaabaabaabaaarFarDaryarLarKarIarHarparrarjarmabccsgarsaBRbvHaribvHaBNbvHaAgbvHbvHarQbZrapSbZyapUbZzasPaDQasPatLatMatNatMatOarNarNarNatLatMatOatPatPasPaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaeajGajGajGajGajGajGaotajGaaeaaeaaeaaeaKBbHMasNardafUaaaavLaUaapIavOavLaDLaCraCsaruaruaruaruanOaruaruaFfaFfaFfaFfanNaFfakYadraaeavUavVavWaBTavYaxDavUaaaahTarEarEakXahTaaaaaaacKawiavJavKaeMaxNawPaxMaeMakPatiatAaeMauQakPauraeMalfanAaylanCanBaldaldalXanxanwaldaldaneaeMaeMaeMaeMaeMaocbaaapVapXayabaaabcabcabcabcapYaqOaqbalZarcabcabcabcavAaqWaUobWIaQsaUoarhaQsarNarNarNarNarNanVbWsanUanTauyaACauyauAauBatTauBauEatMauFatMauGauBatTauBatPauHdfPaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaeaaeajGajGangajGajGajGajGaaeaaaaaeafUbtwasNajraKBaaaauKawQawRawQauKaCqaADaBdaruazJaBhaCpaBeaBgaruatqaytakCakDakJaFfakYadraaaavUaxfaxgaxhaxiaxjavUaaaaiRahZarEasAahTaknajnaczajQajRajSaeMajTajRajSaeMajUajRajSaeMamKamLaxzaeMamEamGamFamIazLaldaunamyamxamAazkaztaneamDamCamCatfamCansbaaaomaolaokbaaapmakQapmabcaoAaopaonaodaofasBaobatlbvHanXarNarNarNarNarNarNarNannannanaaBsanfbZkamUamTavFasPasPaaeaaeauBavHauBauBauBauBauBavIauBauBaaFasPasPdfPaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaajGaaeajGaaeaaeajGajGaaeaaeaKBaKBbMeasNaKBaKBaaaavLawQawQawQarkazGavRavRazFawUaynaypayqayraxVaqzaywayxayyayzaFfakYadraaaavUayAayBasfaxiayDavUaaaahTahXarEarEaqZahuahsaczakqajRakraeMakqajRaksaeMakqajRaktaeMamMacRalNaeMalValUalTalSalRaldayHajualPaoRaoSapGanealOaeXaeXaeXalYalWbaaankanmanlbaaaqNanqanqantanranvahMabcabcabcabcabcavAanyarNamkavZanZaxkaxYbwtbWybYXbYXbYXbYXbZjamvamtawNawOasPamraaeaaeaaaaaaaaaaaeaaeaaaaaaaaeaaaaaaauBasPdfPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaajGajGajGaacaaaaaeaaeaaeaKBaKBbHMbHMaxSafUaaaaaaauKawRawRawRauKaxeawVawWawTawUavRawSavPavQaruahlazOazPaoNazIaFfakYadraaeazSazwazUazVazWauwavUaaaahTahRahRahRahTahjagYaczakLakMakNafQakLakMakNafQakLakMakNafQaqAapHatBafQafQapDalgafQalcaldapsalbalaapEapFatxaneakZbaabaabaaalpbaabaaalqamcbaabaaamfameamdajIamRamjamhalZamaahqabAabcaaEacjarNalmazraycaycalnalobWsaANalyalxalxalxalAalzayiayjaykaaaaaaaaeaaaaaaaaaaaeaaaaaaaaaaaeaaaaaaaaeasPdfPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaeaacbmNaAZbmNaahaaaaaeaaaaaeaKBafVboybGxasNaKBaKBaaaavLaBaaBbaBcavLbAYaCraCsarubxQavRbzgavPbyraruaBibjyaBkaBlbtbaFfakYadraaaaBnavUaBoaBpaBoavUavUaaaahaahmahmahmahpaWuaWvaWubnVbDTbnVbnZbnVbDTbnVbyGbnVbDTarvboebobbombolcyxbCSbywbDpafQainanebBiaqrbpXbqsbqWbCXanecyzbaabAJbnvbntbpmbpmbpnbjWboHaZHbjVbjTbjUbiQbznbiLarHbhPbhObhMbhGabcafZacjarNbmMaAJbmLbmJbmHbmFcnEbmAbnyazzazzazzbnwbnxayiayjazDaaaaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaaaaeasPdfPaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaabmNbJAbmNaaeaaeaaeaaeaaeaKBaPXbrTbrTbrHbaQaKBaaaaCmauJaCnauJaCoalvaaeaaebDYbDWbFNbEMbGCbGqarubglbgmbkxaCybDdaFfakYadraaabBjaaabgobgnbgoaaaaaeaaaaWuakncyWajnaWuaWubaybaVarvbmUbpjbEBbpobplbplbEIbplbprbpobpvbpubogbpsbHwbAhbzRbzZafQainaneanebEcbubanebsianeaneakZbaabaabaabzJbcEboDboEbkkbklbotbkgbjtbkjbkebkebkfbkpabcabcabcabcabcaThacjarNaBZbkbaDxboZboOboIcnKboSaAObpgbpebpfaASbpdayiayjaAUaAVaaebooaaaaaaaaaaaabooaaaaaabooaaeaaeaaeasPboRaaeaaeboPaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaajGaaeajGaaeaaeajGajGaaeaaeaKBaKBbMeasNaKBaKBaaaavLawQawQawQarkazGavRavRazFawUaynaypayqayraxVaqzaywayxayyayzaFfakYadraaaavUayAayBasfaxiayDavUaaaahTahXarEarEaqZahuahsaczakqajRakraeMakqajRaksaeMakqajRaktaeMamMacRalNaeMalValUalTalSalRaldayHajualPaoRaoSapGanealOaeXaeXaeXalYalWbaaankanmanlbaaaqNanqanqantanranvahMabcabcabcabcabcavAanyarNamkavZanZaxkaxYbwtbWybYXbYXbYXbYXbZjamvamtawNaoGasPamraaeaaeaaaaaaaaaaaeaaeaaaaaaaaeaaaaaaauBasPdfPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaajGajGajGaacaaaaaeaaeaaeaKBaKBbHMbHMaxSafUaaaaaaauKawRawRawRauKaxeawVawWawTawUavRawSavPavQaruahlazOazPaoNazIaFfakYadraaeazSazwazUazVazWauwavUaaaahTahRahRahRahTahjagYaczakLakMakNafQakLakMakNafQakLakMakNafQaqAapHatBafQafQapDalgafQalcaldapsalbalaapEapFatxaneakZbaabaabaaalpbaabaaalqamcbaabaaamfameamdajIamRamjamhalZamaahqabAabcaaEacjarNalmazraycaycalnalobWsaANalyalxalxalxalAalzayiawOaykaaaaaaaaeaaaaaaaaaaaeaaaaaaaaaaaeaaaaaaaaeasPdfPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaeaacbmNaAZbmNaahaaaaaeaaaaaeaKBafVboybGxasNaKBaKBaaaavLaBaaBbaBcavLbAYaCraCsarubxQavRbzgavPbyraruaBibjyaBkaBlbtbaFfakYadraaaaBnavUaBoaBpaBoavUavUaaaahaahmahmahmahpaWuaWvaWubnVbDTbnVbnZbnVbDTbnVbyGbnVbDTarvboebobbombolcyxbCSbywbDpafQainanebBiaqrbpXbqsbqWbCXanecyzbaabAJbnvbntbpmbpmbpnbjWboHaZHbjVbjTbjUbiQbznbiLarHbhPbhObhMbhGabcafZacjarNbmMaAJbmLbmJbmHbmFcnEbmAbnyazzazzazzbnwbnxayiawOazDaaaaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaaaaeasPdfPaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaabmNbJAbmNaaeaaeaaeaaeaaeaKBaPXbrTbrTbrHbaQaKBaaaaCmauJaCnauJaCoalvaaeaaebDYbDWbFNbEMbGCbGqarubglbgmbkxaCybDdaFfakYadraaabBjaaabgobgnbgoaaaaaeaaaaWuakncyWajnaWuaWubaybaVarvbmUbpjbEBbpobplbplbEIbplbprbpobpvbpubogbpsbHwbAhbzRbzZafQainaneanebEcbubanebsianeaneakZbaabaabaabzJbcEboDboEbkkbklbotbkgbjtbkjbkebkebkfbkpabcabcabcabcabcaThacjarNaBZbkbaDxboZboOboIcnKboSaAObpgbpebpfaASbpdayiawOaAUaAVaaebooaaaaaaaaaaaabooaaaaaabooaaeaaeaaeasPboRaaeaaeboPaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaabmNaAZbmNbmNaDIaDJaDKbmNaKBaKBaKBaKBcEqbtoaKBaaaaaaaaaaaaaaaaaaaaaaaaaaebKpbKabJEbIZbIsbIqarubihaFeaFfaFfaFfaFfbxsbdMbdMbhJbhIbhLbhKbhTbhSbjnbdMaWucBKbeVbeVbfHbdhcBjbcNbcKbELbdfbEKbqDbqEbqIbFDbqEbqQaLXbqMbqLbqPbmRcAzbANbbUbBdafQainajvaeMbHmbxdanebxrbwjajjbqibaabpZbqbbpWbugbaabdxblVbmQbaablHblAblFblNblFblJblMblnbkqbkobbKabcaQsacjarNbpGbpFbpEaCabpObwtbpLbpIaAObpDasPasPaCfasPasPaCgbeQaCiaaeaaaaaaaaaaaaaaabBlaaaaaaaaaaaeaaaaaaasPdfPaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaabmNbmNcEtbJJaEWaCkaCkcEvaEXbJFaEYaEZaKBaKBasNaKBaaaaFaaFaaFaaFaaFaaFaaFaaaearuaruarubNybNSaruarubipbimbiqbrzbrpbhrbikbidbqjbkJbrBbrBbjsbrBbknbrLbkQaWublablgbkNaxwaxwbGSaxwaxwaxwaxwaxwaxwaxwaxwbGSaxwbiBawnblTaoaaoaaoabrmbrmbrmbrmbrmaoabrlaoaaqLaqLaqLaqLbrnaqLakZbaabaabaabxtbhDbaabrcbaabHbbaabrkbmVbmWalZbnabnebngalZbnkbnBbnqabcbNocErarNasPasPasPasPasPbwtbrdaDBaAObqXasPaDDaDEaycbtJaycaDHazDaaeaaaaaaaaeaaeaaeaaeaaeaaaaaaaaeaaaaaaasPdfPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaabmNaEUaEUaEUaCkaCkaCkaCkaCkaCkaEUaEUaGtaKBasNafUaaaaFaaFaaFaaFaaFaaFaaFaaaeaaeaGucpZcqFaHZaFVaFDaEBaEAbaTbaUbaRbisaEGbgBbhraCuaBSaBWaDraDtaCVaCYbAQaBOcoWcpGcpNahjaaaaaaaaaaaeaaaaaaaaaaaeaaaaaaaaabEdbEwbEpbiCaoabiEbiDbivaoebvnaogaohaoiaojaoabyEbqUbtXbrGaDsaqLbynbaabhEbAabcEbhDbaabrFbaabKlbaaaUwaUfaUtaCWaCWaCWaCWaCWaCWaCWaCWaCWavAbzjarNaTMaTBbtgaFZasPbylaAJaDBbhRaDHaEOaEPaEQaoGaAKaESawMazDaaebooaaeaaeajGajGajGaaeblfaaaaaeaaeaaaasPdfPaaeaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaabmNbwkaCkaCkaCkaCkaCkaCkaCkaCkaEUaEUaEUbstblIaKBaaaaFaaFaaFaaFaaFaaFaaFaaHVaHWaHXbwlaLnaKYbcGaIcaIdaIebpRbcIbdzbdMbnlbdMbdMbdMbdMbnmaYhbjjbjgbitbjjaYhaYhaYhaYhbjlaaaaaaaFsaFsaFsaFsaFsaFsaFsaaaaaaaxwbjuatZbjwapdbjvaohbjFapgaphbxAapjapkaplaoabyXaDqbyWbjzbzCaqLbnMbaabaabaabiFbiFbaabaabaabaabaaaXEaXXaZaaCWbrwaHebkUaVJaUBbaMaWiaCWciUacjarNaTBaTBbjcaHFaHGazrampaGhbjdbthasPbhfaGkaGlaGmaGnaGoazDaaeaaaaaaaaebtNbwxajGaaeaaaaaaaaeaaaaaaasPdfPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaebmNaJiaCkaCkaCkaCkaJjaCkcwHaCkaCkaEUaJkaKBaxSaKBaaaaFaaFaaFaaFaaFaaFaaFabFOaJmbFOaHYaJnaJoaJpbygaJraJsbrfbewbetbldbkZbJibJicxgbJibUraYhaTPbkWbkRbmIaSLaSAbkPbkLbkMbzwaGUaGUbqkbkKbvcbkHbqeaLUaLUbyVbkwbkzaLXbiCaoabkvaohapOaohapPaohapQaohaohaoabzYaQDbyWaBUbwoaqLbdjaPpaNdaPpbkcbjGbdlaPDbkibdkaPLbiGaIGbfhaCWbfTbdibdibdibdebchbbDaCWcqHacjarNaKhaKhaHEaHFaHGbkbbypbyobjHbjRaHNaHOaHPaHQaHRaHSawMazDaaeaaabyhaaeajGajGajGaaeaaebooaaeaaaaaaasPdfPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaKqaCkaCkaKraCkaCkaCkaCkaCkaCkaCkbytaKBaKBcylaKBaaeaFaaFaaFaaFaaFaaFaaFaaKsaKtaKsaKuaJnaKvaKvaKwaKvaIebeKbeLbftaKBaKBaKBaKBaKBaKBasNaYhaWfbmzaWkaWebmxbmxbmxbmvbjlaaaaFsbzuaGYaGYaGYaGYaGYbyLaFsaaaaxwblUawnblTaoablRaqGaqHaohaqIaohaqJaqKaohbmubBvbBDbBhbBtbxiaqLblZbmabliblibliblkbllbllblmblmblBbhvbhwbfBbhzaeQbrxbrxbrxbgybiHbgUaCWaiQacjarNaKhblOaUNaGaasPbviaAJbysaAObzxasPaJeblhaDxaDxaDxaDyazDaaeaaaaaaaaeaaeaaeaaeaaeaaaaaaaaeaaaaaeasPdfPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaabmNbmNcEtbJJaEWaCkaCkcEvaEXbJFaEYaEZaKBaKBasNaKBaaaaFaaFaaFaaFaaFaaFaaFaaaearuaruarubNybNSaruarubipbimbiqbrzbrpbhrbikbidbqjbkJbrBbrBbjsbrBbknbrLbkQaWublablgbkNaxwaxwbGSaxwaxwaxwaxwaxwaxwaxwaxwbGSaxwbiBawnblTaoaaoaaoabrmbrmbrmbrmbrmaoabrlaoaaqLaqLaqLaqLbrnaqLakZbaabaabaabxtbhDbaabrcbaabHbbaabrkbmVbmWalZbnabnebngalZbnkbnBbnqabcbNocErarNasPasPasPasPasPbwtbrdaDBaAObqXasPayjaDDaDyaDEaDyaEPazDaaeaaaaaaaaeaaeaaeaaeaaeaaaaaaaaeaaaaaaasPdfPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaabmNaEUaEUaEUaCkaCkaCkaCkaCkaCkaEUaEUaGtaKBasNafUaaaaFaaFaaFaaFaaFaaFaaFaaaeaaeaGucpZcqFaHZaFVaFDaEBaEAbaTbaUbaRbisaEGbgBbhraCuaBSaBWaDraDtaCVaCYbAQaBOcoWcpGcpNahjaaaaaaaaaaaeaaaaaaaaaaaeaaaaaaaaabEdbEwbEpbiCaoabiEbiDbivaoebvnaogaohaoiaojaoabyEbqUbtXbrGaDsaqLbynbaabhEbAabcEbhDbaabrFbaabKlbaaaUwaUfaUtaCWaCWaCWaCWaCWaCWaCWaCWaCWavAbzjarNaTMaTBbtgaFZasPbylaAJaDBbhRaDHaEOaEQaHOaGoaHFaESaHPazDaaebooaaeaaeajGajGajGaaeblfaaaaaeaaeaaaasPdfPaaeaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaabmNbwkaCkaCkaCkaCkaCkaCkaCkaCkaEUaEUaEUbstblIaKBaaaaFaaFaaFaaFaaFaaFaaFaaHVaHWaHXbwlaLnaKYbcGaIcaIdaIebpRbcIbdzbdMbnlbdMbdMbdMbdMbnmaYhbjjbjgbitbjjaYhaYhaYhaYhbjlaaaaaaaFsaFsaFsaFsaFsaFsaFsaaaaaaaxwbjuatZbjwapdbjvaohbjFapgaphbxAapjapkaplaoabyXaDqbyWbjzbzCaqLbnMbaabaabaabiFbiFbaabaabaabaabaaaXEaXXaZaaCWbrwaHebkUaVJaUBbaMaWiaCWciUacjarNaTBaTBbjcaHFaHGazrampaGhbjdbthasPaHRaGkaGlaGmaGnaJeazDaaeaaaaaaaaebtNbwxajGaaeaaaaaaaaeaaaaaaasPdfPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaebmNaJiaCkaCkaCkaCkaJjaCkcwHaCkaCkaEUaJkaKBaxSaKBaaaaFaaFaaFaaFaaFaaFaaFabFOaJmbFOaHYaJnaJoaJpbygaJraJsbrfbewbetbldbkZbJibJicxgbJibUraYhaTPbkWbkRbmIaSLaSAbkPbkLbkMbzwaGUaGUbqkbkKbvcbkHbqeaLUaLUbyVbkwbkzaLXbiCaoabkvaohapOaohapPaohapQaohaohaoabzYaQDbyWaBUbwoaqLbdjaPpaNdaPpbkcbjGbdlaPDbkibdkaPLbiGaIGbfhaCWbfTbdibdibdibdebchbbDaCWcqHacjarNaKhaKhaHEaHFaHGbkbbypbyobjHbjRaHNaMGaPoaHQbhfaHSaHPazDaaeaaabyhaaeajGajGajGaaeaaebooaaeaaaaaaasPdfPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaKqaCkaCkaKraCkaCkaCkaCkaCkaCkaCkbytaKBaKBcylaKBaaeaFaaFaaFaaFaaFaaFaaFaaKsaKtaKsaKuaJnaKvaKvaKwaKvaIebeKbeLbftaKBaKBaKBaKBaKBaKBasNaYhaWfbmzaWkaWebmxbmxbmxbmvbjlaaaaFsbzuaGYaGYaGYaGYaGYbyLaFsaaaaxwblUawnblTaoablRaqGaqHaohaqIaohaqJaqKaohbmubBvbBDbBhbBtbxiaqLblZbmabliblibliblkbllbllblmblmblBbhvbhwbfBbhzaeQbrxbrxbrxbgybiHbgUaCWaiQacjarNaKhblOaUNaGaasPbviaAJbysaAObzxasPblhdUMbtJbtJbtJdUNazDaaeaaaaaaaaeaaeaaeaaeaaeaaaaaaaaeaaaaaeasPdfPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaLjaLkaLlaaaaLmaCkaCkaCkaCkcEtaCkbPDbPHbPHbQabzKaKBaUDasNaKBaaeaFaaFaaFaaFaaFaaFaaFaaLoaHWaLpbPkaJnaLraKubvjaLtaLubBAbBIbBkbBrbqrbqnbqJbqHaKBbBOaYhbyjbmzbPubPCbPBbPBclsbyIbjlaaabNqbqCaGYbOHbOcbPXaGYbyJbORaaaaxwbiBawnblTaoabyNarxadSarzarAarzarBarCbyPaoacoucpTcwQcxabPtaqLbqYaIEaIFaJSaKRbtHbztbQmbzqbzsbzhbribrebrhbqZbraadhbvCbySbyQbwHbwmaCWaUoacjarNasPbwtbwtasPasPbwtbzNbzMbzObDvasPasPaCfasPasPaCgbdIbDrbDsaaaaaaaaaaaeaaaaaaaaaaaaaaaaaeaaaaaeasPdfPaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaFvaFvaFvaFvaFvaFvaFvaFvaFvaFvaFvaFvaFvaFvaFvaFvaFvaFvaFvaFvaFvaFvaFvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabLaMIaMJaMIadqbmNaCkaCkaCkaCkaCkaCkaCkaCkaCkbRIaMMaKBbwqbwPaKBaaaaFaaFaaFaaFaaFaaFaaFaaKsaMOaKsaKuaJnaKvaKvaKwaKvaIebpRbEobEsaMRbtKbsUbsobsnaKBbzzbzAbgfbmzbmzbzDbzFbmzcMVbQRbjlaaabPRbsqaLQbPVbDXbPVaLQbRcbSiaaaaxwbiBbzlbQXaoaastasuasuasvaswastasuasxasyaoaaqLcSncLWcRzaqLaqLbCxaIEaJSaKRbAIbnbaIEaIFaKRaKRaJSbwNbAFbsGbsubswbrxbrxbyAbgybEnbzpaCWaTNcMbarNbAlbAkbDHbAmbzPbhxaAJbysaAObAMbpebALaLhbAKayiayjaAUbEeaaebooaaaaaabooaaaaaaaaaaaabooaaeaaeaaeasPboRaaeaaeaaeaaeaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaFvaaaaNKaNKaNKaNKaMcaNKaNKaNKaNKaMcaNKaNKaNKaNKaMcaNKaNKaNKaNKaaaaFvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaawaMIaObaMIaawbmNaJiaEUaCkaCkaCkaCkaCkcMeaCkbUcaOcaKBbyRaDlaKBaaaaFaaFaaFaaFaaFaaFaaFacdhaOecdhaOfaJnaKvaSpaSqaSraSsbKgaIebJraKAbvPbvzaOnbwuaKBbBBaYhbBwbmzbmzbBEbBFbQvcMVbTKbjlaaaaFsbTjbSraLQbTmaGYbRebRBaFsaaaaxwbAXatZbjwaChbKQaueaueaueaojaueauebAZbQtaoabPIdtNdAubBabTobsLbBabBcbChbChbCebupbutbsRburbusbsQbsRbsMbsOaCWbtPbuCbEqbNtauhbIbbEAaCWaQsbuParNbCrbCqbCpbCobCAbAibAbbzVbxfbBPaMDaMDaMEbBQayiaMGazDbENaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaaaaeasPdfPaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaFvaMibUobBHbBHbBHbzTbBHbBHbBHbBHbZMbBHbBHbBHbBHbzSbBHbBHbBHaXfaFLaFvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaeaQNaPqcMgaPsaQNbmNcEvaEUbVDbVXbVEaCkaCkaCkaCkbUcaEUaKBasNbrTafUaaaaFaaFaaFaaFaaFaaFaaFaaPtaHWaPuaPvaJnaKvaKvaKwaKvaIebKgaIebKZaKAbyfbyebydbxcaKBaDUaYhbDcdDRdDRbQxbRUbmzcMVbDfbjlaaeaFsaFsaFsbCYaNlbyMaFsaFsaFsaaeaxwbjuaIvblTaBQcbbaueaueauebOhaueauebCUaojaBQbkcdDPbCVbwLaIFbvtaIFaIEaJSaIFbDOaIFbwOaJSaKRaIFaKRaJSbDLbDMaCWbSsbIubwwatebPobaMbbDaCWbItacjarNbWcaTgbDCbDBbDIbAVbDKbDJbDxbDyaAKaAKbDzayhayiayjaNYaaaaaaaaeaaaaaaaaaaaaaaeaaaaaabIraaaaaaaaeasPdfPaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaFvbCzaIlbGfbFgbFgaFUbFgbFgbFgbFgaJUbFgbFgbFgbFgaFUbFgbFgbFkaIlaGpaFvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaQNcEwbCJbCZaQMbmNbueaEUaQPbJGbCdaEUaEUaEUbuwbDAbEmaKBcoLasdaKBaaeaFaaFaaFaaFaaFaaFaaFaaaeaaebpMaPvaQTaJoaJpbtAaSrbmXbopbozblLaPyaPyaPyaPyaPyaKBbsbbsgbshbsdbsdbrQbrRbrNbLjbHobHqaaaaaaaaaaFsaFscLpaFsaFsaaaaaaaaabEdbEwbHvblTaChbroavlarPbmfaojaojbsDbsIaojaChbkcbsjbslbrPbsrbonbsrbsvbECboqbsmbsrbsrbsrbsrbsrbsrbsJbsPbzGaCWaCWaCWaCWapJaCWaCWaCWaCWavAacjarNbARbAdbAdbtabsZbsVbsTbsSbtkbtlbvubtnbteawMawNaPoasPaaaaaeaaeaaaaaaaaaaaaaaeaaaaaaaaeaaeaaaauBasPdfPaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaFvbCzaIlaGpaaaaaaaFUaaaaaaaaaaaaaJUaaaaaaaaaaaaaFUaaaaaaaGqaIlaGpaFvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabLaMIaMJaMIadqbmNaCkaCkaCkaCkaCkaCkaCkaCkaCkbRIaMMaKBbwqbwPaKBaaaaFaaFaaFaaFaaFaaFaaFaaKsaMOaKsaKuaJnaKvaKvaKwaKvaIebpRbEobEsaMRbtKbsUbsobsnaKBbzzbzAbgfbmzbmzbzDbzFbmzcMVbQRbjlaaabPRbsqaLQbPVbDXbPVaLQbRcbSiaaaaxwbiBbzlbQXaoaastasuasuasvaswastasuasxasyaoaaqLcSncLWcRzaqLaqLbCxaIEaJSaKRbAIbnbaIEaIFaKRaKRaJSbwNbAFbsGbsubswbrxbrxbyAbgybEnbzpaCWaTNcMbarNbAlbAkbDHbAmbzPbhxaAJbysaAObAMbpebALaLhbAKayiawOaAUbEeaaebooaaaaaabooaaaaaaaaaaaabooaaeaaeaaeasPboRaaeaaeaaeaaeaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaFvaaaaNKaNKaNKaNKaMcaNKaNKaNKaNKaMcaNKaNKaNKaNKaMcaNKaNKaNKaNKaaaaFvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaawaMIaObaMIaawbmNaJiaEUaCkaCkaCkaCkaCkcMeaCkbUcaOcaKBbyRaDlaKBaaaaFaaFaaFaaFaaFaaFaaFacdhaOecdhaOfaJnaKvaSpaSqaSraSsbKgaIebJraKAbvPbvzaOnbwuaKBbBBaYhbBwbmzbmzbBEbBFbQvcMVbTKbjlaaaaFsbTjbSraLQbTmaGYbRebRBaFsaaaaxwbAXatZbjwaChbKQaueaueaueaojaueauebAZbQtaoabPIdtNdAubBabTobsLbBabBcbChbChbCebupbutbsRburbusbsQbsRbsMbsOaCWbtPbuCbEqbNtauhbIbbEAaCWaQsbuParNbCrbCqbCpbCobCAbAibAbbzVbxfbBPaMDaMDaMEbBQayidUOazDbENaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaaaaeasPdfPaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaFvaMibUobBHbBHbBHbzTbBHbBHbBHbBHbZMbBHbBHbBHbBHbzSbBHbBHbBHaXfaFLaFvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaeaQNaPqcMgaPsaQNbmNcEvaEUbVDbVXbVEaCkaCkaCkaCkbUcaEUaKBasNbrTafUaaaaFaaFaaFaaFaaFaaFaaFaaPtaHWaPuaPvaJnaKvaKvaKwaKvaIebKgaIebKZaKAbyfbyebydbxcaKBaDUaYhbDcdDRdDRbQxbRUbmzcMVbDfbjlaaeaFsaFsaFsbCYaNlbyMaFsaFsaFsaaeaxwbjuaIvblTaBQcbbaueaueauebOhaueauebCUaojaBQbkcdDPbCVbwLaIFbvtaIFaIEaJSaIFbDOaIFbwOaJSaKRaIFaKRaJSbDLbDMaCWbSsbIubwwatebPobaMbbDaCWbItacjarNbWcaTgbDCbDBbDIbAVbDKbDJbDxbDyaAKaAKbDzayhayiawOaNYaaaaaaaaeaaaaaaaaaaaaaaeaaaaaabIraaaaaaaaeasPdfPaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaFvbCzaIlbGfbFgbFgaFUbFgbFgbFgbFgaJUbFgbFgbFgbFgaFUbFgbFgbFkaIlaGpaFvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaQNcEwbCJbCZaQMbmNbueaEUaQPbJGbCdaEUaEUaEUbuwbDAbEmaKBcoLasdaKBaaeaFaaFaaFaaFaaFaaFaaFaaaeaaebpMaPvaQTaJoaJpbtAaSrbmXbopbozblLaPyaPyaPyaPyaPyaKBbsbbsgbshbsdbsdbrQbrRbrNbLjbHobHqaaaaaaaaaaFsaFscLpaFsaFsaaaaaaaaabEdbEwbHvblTaChbroavlarPbmfaojaojbsDbsIaojaChbkcbsjbslbrPbsrbonbsrbsvbECboqbsmbsrbsrbsrbsrbsrbsrbsJbsPbzGaCWaCWaCWaCWapJaCWaCWaCWaCWavAacjarNbARbAdbAdbtabsZbsVbsTbsSbtkbtlbvubtnbteawMawNdUPasPaaaaaeaaeaaaaaaaaaaaaaaeaaaaaaaaeaaeaaaauBasPdfPaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaFvbCzaIlaGpaaaaaaaFUaaaaaaaaaaaaaJUaaaaaaaaaaaaaFUaaaaaaaGqaIlaGpaFvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaQNaQNaSiaShaQNaQNaQNbvfaQNaQNbFublSaQNaQNaQNbFraQNaQNbuSaQNaQNaaeaFaaFaaFaaFaaFaaFaaFaaaaaaeaZpbqlaJnaKvaKvaKwaKvaIeaJuaIebuKaPybrvbqdbmtbmOaKBasNaYhbtCbtDbtFbtrbtsbttbLlbtxbjlaTLbINaTLaNnbEXbukbImaNnaTLbINaTLaxwbuhbwRbuiaoaaoaaoaaoaaoabtMbtUbufaojbCWaoabkcbtLbtHbuHaCZaCZaCZaCZaCZaCZaCZbuFbuGbuLbovbuBbuDaCZaPpaPpavAbuOaXNbYbborbYbcLtbYbbASbYbbuqarNaNLaNLaNLaNLbuvbuubPnbuybuVbuWbuUaAJbuTavEasPasPasPaaeaaeauBaQIauBauBauBauBauBauBauBauBaaFasPasPdfPaaaaaaaaaaakaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaFvbCzaIlaGpaaaaaaaFUaFUaFUaFUaFUaJUaFUaFUaFUaFUaFUaaaaaaaGqaIlaGpaFvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaTpbKzbrsbIdaZfbsfbrsbtfbHybHrbHybHBbIebHybIjbInbIJbwrbISaQNaaaaaaaFaaFaaFaaFaaFaaaaaaaaaeaZpbvgaJnaKvaKvaKwbKvaIeaTAbumbujbwKbtqbtjbxSbyyaKBasNaYhaYhaYhbjqbvMbvNbjlbsHbsabjlbSXbTHbNpaNnbvAaNpbvraNnbNZbIVbvdbIUbvebqFbuZbuYbuMbLGbOTaoaaoaazAbvGazvaoaaoabvDbvEbvFbvDaCZbwybJmbowboCboFavAavAavAavAbbOavAavAavAavAavAavAacjaUoaQsaJzaJzaJzaJzaJzaJzaJzaNLbvZbvUbvTaNLbBpbATaNLbwabvObwtbwtbvQbvRbqNauybLcauyaScauBbirauBatLatMaSfatMatOauBbirauBatPauHdfPaaaaaaaahaahaacaaeaacaahaahaacaacaahaahaahaacaaeaaeaaeaaeaaeaFvaMibIiaLIaLIaLIaLIaLIavcavcavcbwpavcavcavcaLIbwsaLIaLIaLIbHdaFLaFvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaeaaaaXFbwBaUMaUMbMnaUMaUMaUMaUOaYbbMFbMEbKcbKcbKcbKnbLHaUQbyFaQNaaaaaaaaeaaeaaaaaaaaeaaaaaeaaeaZpbxlaJnaKvbVqbxaaGDbxgaGDbuAbqmbEzbGdbwnbDabBzaKBcLAbxbbOSbITbxebuzbwXbvhbwbbsKbtOaVkcdbaVkbBNbBMaVsbziaVtaVkbJRaVvbwMaVxbLZbuEaVAaVBaVCaVDaVDaVDbvbbpcaVDaVDaVHaVDbpbboQaVDboJaVDbwvboGavAbpTcLUbpVbBsbpUbqybpUbqObpUbqRaXvbASbuqaThaQsaJzbxBbxJbxLbpSaFHbxPaNLbzHbxpbxpbOdbxpbzIaNLbxubuVbzkaHoaHoaHoaHoaHoaRfasPaTnatMaToatMauGasPasPasPaTnatMauGatPatPasPaaeaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaFvbCzaIlaGpaaaaFUatXatXayKbJjaweaxxbBLbJjbqpatXaGvaFUaaaaGqaIlaGpaFvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa From ead9b2a8bba3ff4d7ea035aa8e2e041977c6b564 Mon Sep 17 00:00:00 2001 From: Aranclanos Date: Thu, 6 Nov 2014 13:48:41 -0300 Subject: [PATCH 076/102] Breathing won't check anymore if the person if committed suicide. People will be able to perform several suicides if they survived previous ones. The examine suicide text will only appear if the person is dead. --- code/game/verbs/suicide.dm | 118 ++++++------------ .../mob/living/carbon/human/examine.dm | 6 +- .../mob/living/carbon/human/species.dm | 7 +- 3 files changed, 41 insertions(+), 90 deletions(-) diff --git a/code/game/verbs/suicide.dm b/code/game/verbs/suicide.dm index ec64e84c355..ef759b24073 100644 --- a/code/game/verbs/suicide.dm +++ b/code/game/verbs/suicide.dm @@ -2,25 +2,12 @@ /mob/living/carbon/human/verb/suicide() set hidden = 1 - - if (stat == DEAD) - src << "You're already dead!" + if(!canSuicide()) return - - if (!ticker) - src << "You can't commit suicide before the game starts!" - return - - if (suiciding) - src << "You're already committing suicide! Be patient!" - return - var/confirm = alert("Are you sure you want to commit suicide?", "Confirm Suicide", "Yes", "No") - + if(!canSuicide()) + return if(confirm == "Yes") - if(!canmove || restrained()) //just while I finish up the new 'fun' suiciding verb. This is to prevent metagaming via suicide - src << "You can't commit suicide whilst restrained! ((You can type Ghost instead however.))" - return suiciding = 1 var/obj/item/held_item = get_active_hand() if(held_item) @@ -74,21 +61,11 @@ /mob/living/carbon/brain/verb/suicide() set hidden = 1 - - if (stat == 2) - src << "You're already dead!" + if(!canSuicide()) return - - if (!ticker) - src << "You can't commit suicide before the game starts!" - return - - if (suiciding) - src << "You're already committing suicide! Be patient!" - return - var/confirm = alert("Are you sure you want to commit suicide?", "Confirm Suicide", "Yes", "No") - + if(!canSuicide()) + return if(confirm == "Yes") suiciding = 1 viewers(loc) << "[src]'s brain is growing dull and lifeless. It looks like it's lost the will to live." @@ -98,25 +75,12 @@ /mob/living/carbon/monkey/verb/suicide() set hidden = 1 - - if (stat == 2) - src << "You're already dead!" + if(!canSuicide()) return - - if (!ticker) - src << "You can't commit suicide before the game starts!" - return - - if (suiciding) - src << "You're already committing suicide! Be patient!" - return - var/confirm = alert("Are you sure you want to commit suicide?", "Confirm Suicide", "Yes", "No") - + if(!canSuicide()) + return if(confirm == "Yes") - if(!canmove || restrained()) - src << "You can't commit suicide whilst restrained! ((You can type Ghost instead however.))" - return suiciding = 1 //instead of killing them instantly, just put them at -175 health and let 'em gasp for a while viewers(src) << "[src] is attempting to bite \his tongue. It looks like \he's trying to commit suicide." @@ -125,17 +89,11 @@ /mob/living/silicon/ai/verb/suicide() set hidden = 1 - - if (stat == 2) - src << "You're already dead!" + if(!canSuicide()) return - - if (suiciding) - src << "You're already committing suicide! Be patient!" - return - var/confirm = alert("Are you sure you want to commit suicide?", "Confirm Suicide", "Yes", "No") - + if(!canSuicide()) + return if(confirm == "Yes") suiciding = 1 viewers(src) << "[src] is powering down. It looks like \he's trying to commit suicide." @@ -145,17 +103,11 @@ /mob/living/silicon/robot/verb/suicide() set hidden = 1 - - if (stat == 2) - src << "You're already dead!" + if(!canSuicide()) return - - if (suiciding) - src << "You're already committing suicide! Be patient!" - return - var/confirm = alert("Are you sure you want to commit suicide?", "Confirm Suicide", "Yes", "No") - + if(!canSuicide()) + return if(confirm == "Yes") suiciding = 1 viewers(src) << "[src] is powering down. It looks like \he's trying to commit suicide." @@ -178,17 +130,11 @@ /mob/living/carbon/alien/humanoid/verb/suicide() set hidden = 1 - - if (stat == 2) - src << "You're already dead!" + if(!canSuicide()) return - - if (suiciding) - src << "You're already committing suicide! Be patient!" - return - var/confirm = alert("Are you sure you want to commit suicide?", "Confirm Suicide", "Yes", "No") - + if(!canSuicide()) + return if(confirm == "Yes") suiciding = 1 viewers(src) << "[src] is thrashing wildly! It looks like \he's trying to commit suicide." @@ -199,16 +145,11 @@ /mob/living/carbon/slime/verb/suicide() set hidden = 1 - if (stat == 2) - src << "You're already dead!" + if(!canSuicide()) return - - if (suiciding) - src << "You're already committing suicide! Be patient!" - return - var/confirm = alert("Are you sure you want to commit suicide?", "Confirm Suicide", "Yes", "No") - + if(!canSuicide()) + return if(confirm == "Yes") suiciding = 1 setOxyLoss(100) @@ -217,3 +158,20 @@ setCloneLoss(100) updatehealth() + +/mob/living/proc/canSuicide() + if(stat == CONSCIOUS) + return 1 + else if(stat == DEAD) + src << "You're already dead!" + else if(stat == UNCONSCIOUS) + src << "You need to be conscious to suicide" + return + +/mob/living/carbon/canSuicide() + if(!..()) + return + if(!canmove || restrained()) //just while I finish up the new 'fun' suiciding verb. This is to prevent metagaming via suicide + src << "You can't commit suicide whilst restrained! ((You can type Ghost instead however.))" + return + return 1 \ No newline at end of file diff --git a/code/modules/mob/living/carbon/human/examine.dm b/code/modules/mob/living/carbon/human/examine.dm index fbb3a7bacae..3115d55e8c7 100644 --- a/code/modules/mob/living/carbon/human/examine.dm +++ b/code/modules/mob/living/carbon/human/examine.dm @@ -164,9 +164,6 @@ if(100 to 200) msg += "[t_He] [t_is] twitching ever so slightly.\n" - if(suiciding) - msg += "[t_He] appears to have commited suicide... there is no hope of recovery.\n" - if(gender_ambiguous) //someone fucked up a gender reassignment surgery if (gender == MALE) msg += "[t_He] has a strange feminine quality to [t_him].\n" @@ -177,8 +174,9 @@ if(stat == DEAD || (status_flags & FAKEDEATH)) appears_dead = 1 if(getorgan(/obj/item/organ/brain))//Only perform these checks if there is no brain + if(suiciding) + msg += "[t_He] appears to have commited suicide... there is no hope of recovery.\n" msg += "[t_He] [t_is] limp and unresponsive; there are no signs of life" - if(!key) var/foundghost = 0 if(mind) diff --git a/code/modules/mob/living/carbon/human/species.dm b/code/modules/mob/living/carbon/human/species.dm index a0795957383..376622f3314 100644 --- a/code/modules/mob/living/carbon/human/species.dm +++ b/code/modules/mob/living/carbon/human/species.dm @@ -1047,14 +1047,9 @@ if((H.status_flags & GODMODE)) return - if(!breath || (breath.total_moles() == 0) || H.suiciding) + if(!breath || (breath.total_moles() == 0)) if(H.reagents.has_reagent("inaprovaline")) return - if(H.suiciding) - H.adjustOxyLoss(2)//If you are suiciding, you should die a little bit faster - H.failed_last_breath = 1 - H.oxygen_alert = max(H.oxygen_alert, 1) - return 0 if(H.health >= config.health_threshold_crit) if(NOBREATH in specflags) return 1 H.adjustOxyLoss(HUMAN_MAX_OXYLOSS) From e5dd72cb8ed04f411f1f565244470ec587318903 Mon Sep 17 00:00:00 2001 From: phil235 Date: Thu, 6 Nov 2014 18:50:13 +0100 Subject: [PATCH 077/102] Some absolute pathing fixed. Fixing some mistakes and typos. Fixes many attacks on simple animals not checking the force_threshold.(adding attack_threshold_check() ) --- .../mob/living/carbon/alien/alien_defense.dm | 5 +- .../mob/living/carbon/carbon_defense.dm | 7 -- .../mob/living/carbon/monkey/monkey.dm | 4 + code/modules/mob/living/carbon/slime/slime.dm | 117 +++++++++--------- code/modules/mob/living/living_defense.dm | 14 +-- code/modules/mob/living/silicon/silicon.dm | 2 +- .../mob/living/simple_animal/parrot.dm | 9 +- .../mob/living/simple_animal/simple_animal.dm | 55 ++++---- 8 files changed, 104 insertions(+), 109 deletions(-) diff --git a/code/modules/mob/living/carbon/alien/alien_defense.dm b/code/modules/mob/living/carbon/alien/alien_defense.dm index 7529da3b1de..4ddd994652f 100644 --- a/code/modules/mob/living/carbon/alien/alien_defense.dm +++ b/code/modules/mob/living/carbon/alien/alien_defense.dm @@ -51,7 +51,10 @@ In all, this is a lot like the monkey code. /N return 0 switch(M.a_intent) - + if("help") + help_shake_act(M) + if("grab") + grabbedby(M) if ("harm", "disarm") return 1 return 0 diff --git a/code/modules/mob/living/carbon/carbon_defense.dm b/code/modules/mob/living/carbon/carbon_defense.dm index 24f48a260f2..05171727b13 100644 --- a/code/modules/mob/living/carbon/carbon_defense.dm +++ b/code/modules/mob/living/carbon/carbon_defense.dm @@ -40,13 +40,6 @@ for(var/datum/surgery/S in surgeries) if(S.next_step(user, src)) return 1 - if(..()) - switch(user.a_intent) - if("help") - help_shake_act(user) - if("grab") - grabbedby(user) - return 0 diff --git a/code/modules/mob/living/carbon/monkey/monkey.dm b/code/modules/mob/living/carbon/monkey/monkey.dm index a2023c800a2..314acaa3e8d 100644 --- a/code/modules/mob/living/carbon/monkey/monkey.dm +++ b/code/modules/mob/living/carbon/monkey/monkey.dm @@ -89,6 +89,10 @@ return switch(M.a_intent) + if("help") + help_shake_act(M) + if("grab") + grabbedby(M) if("harm") if (prob(75)) visible_message("[M] has punched [name]!", \ diff --git a/code/modules/mob/living/carbon/slime/slime.dm b/code/modules/mob/living/carbon/slime/slime.dm index 05e26b105f1..26e9918c922 100644 --- a/code/modules/mob/living/carbon/slime/slime.dm +++ b/code/modules/mob/living/carbon/slime/slime.dm @@ -335,35 +335,40 @@ if(..()) return - var/damage = rand(1, 9) - - attacked += 10 - if (prob(90)) - if (HULK in M.mutations) - damage += 5 - if(Victim || Target) - Victim = null - Target = null - anchored = 0 - if(prob(80) && !client) - Discipline++ - spawn(0) - step_away(src,M,15) - sleep(3) - step_away(src,M,15) + switch(M.a_intent) + if("help") + help_shake_act(M) + if("grab") + grabbedby(M) + else + var/damage = rand(1, 9) + attacked += 10 + if (prob(90)) + if (HULK in M.mutations) + damage += 5 + if(Victim || Target) + Victim = null + Target = null + anchored = 0 + if(prob(80) && !client) + Discipline++ + spawn(0) + step_away(src,M,15) + sleep(3) + step_away(src,M,15) - playsound(loc, "punch", 25, 1, -1) - add_logs(M, src, "attacked", admin=0) - visible_message("[M] has punched [src]!", \ + playsound(loc, "punch", 25, 1, -1) + add_logs(M, src, "attacked", admin=0) + visible_message("[M] has punched [src]!", \ "[M] has punched [src]!") - if (stat != DEAD) - adjustBruteLoss(damage) - updatehealth() - else - playsound(loc, 'sound/weapons/punchmiss.ogg', 25, 1, -1) - visible_message("[M] has attempted to punch [src]!") + if (stat != DEAD) + adjustBruteLoss(damage) + updatehealth() + else + playsound(loc, 'sound/weapons/punchmiss.ogg', 25, 1, -1) + visible_message("[M] has attempted to punch [src]!") return @@ -818,39 +823,39 @@ mob/living/carbon/slime/var/temperature_resistance = T0C+75 ..() processing_objects.Add(src) - process() - var/mob/dead/observer/ghost - for(var/mob/dead/observer/O in src.loc) - if(!O.client) continue - if(O.mind && O.mind.current && O.mind.current.stat != DEAD) continue - ghost = O - break - if(ghost) - icon_state = "golem2" - else - icon_state = "golem" +/obj/effect/golemrune/process() + var/mob/dead/observer/ghost + for(var/mob/dead/observer/O in src.loc) + if(!O.client) continue + if(O.mind && O.mind.current && O.mind.current.stat != DEAD) continue + ghost = O + break + if(ghost) + icon_state = "golem2" + else + icon_state = "golem" - attack_hand(mob/living/user as mob) - var/mob/dead/observer/ghost - for(var/mob/dead/observer/O in src.loc) - if(!O.client) continue - if(O.mind && O.mind.current && O.mind.current.stat != DEAD) continue - ghost = O - break - if(!ghost) - user << "The rune fizzles uselessly. There is no spirit nearby." - return - var/mob/living/carbon/human/G = new /mob/living/carbon/human - if(prob(50)) G.gender = "female" - hardset_dna(G, null, null, null, null, /datum/species/golem/adamantine) +/obj/effect/golemrune/attack_hand(mob/living/user as mob) + var/mob/dead/observer/ghost + for(var/mob/dead/observer/O in src.loc) + if(!O.client) continue + if(O.mind && O.mind.current && O.mind.current.stat != DEAD) continue + ghost = O + break + if(!ghost) + user << "The rune fizzles uselessly. There is no spirit nearby." + return + var/mob/living/carbon/human/G = new /mob/living/carbon/human + if(prob(50)) G.gender = "female" + hardset_dna(G, null, null, null, null, /datum/species/golem/adamantine) - G.set_cloned_appearance() - G.real_name = text("Adamantine Golem ([rand(1, 1000)])") - G.dna.species.auto_equip(G) - G.loc = src.loc - G.key = ghost.key - G << "You are an adamantine golem. You move slowly, but are highly resistant to heat and cold as well as blunt trauma. You are unable to wear clothes, but can still use most tools. Serve [user], and assist them in completing their goals at any cost." - qdel(src) + G.set_cloned_appearance() + G.real_name = text("Adamantine Golem ([rand(1, 1000)])") + G.dna.species.auto_equip(G) + G.loc = src.loc + G.key = ghost.key + G << "You are an adamantine golem. You move slowly, but are highly resistant to heat and cold as well as blunt trauma. You are unable to wear clothes, but can still use most tools. Serve [user], and assist them in completing their goals at any cost." + qdel(src) /mob/living/carbon/slime/getTrail() return null diff --git a/code/modules/mob/living/living_defense.dm b/code/modules/mob/living/living_defense.dm index 5e13ea6027b..99ba5191775 100644 --- a/code/modules/mob/living/living_defense.dm +++ b/code/modules/mob/living/living_defense.dm @@ -134,7 +134,7 @@ proc/vol_by_throwforce_and_or_w_class(var/obj/item/I) visible_message("[user] has grabbed [src] passively!") -/mob/living/carbon/attack_slime(mob/living/carbon/slime/M as mob) +/mob/living/attack_slime(mob/living/carbon/slime/M as mob) if (!ticker) M << "You cannot attack people before the game has started." return @@ -236,15 +236,3 @@ proc/vol_by_throwforce_and_or_w_class(var/obj/item/I) return 0 else return 1 - - -/mob/living/attack_hand(mob/living/carbon/human/M as mob) - if (!ticker) - M << "You cannot attack people before the game has started." - return 0 - - if (istype(loc, /turf) && istype(loc.loc, /area/start)) - M << "No attacking people at spawn, you jackass." - return 0 - - return 1 \ No newline at end of file diff --git a/code/modules/mob/living/silicon/silicon.dm b/code/modules/mob/living/silicon/silicon.dm index 9d4abaf6997..98effb5739a 100644 --- a/code/modules/mob/living/silicon/silicon.dm +++ b/code/modules/mob/living/silicon/silicon.dm @@ -362,7 +362,7 @@ /mob/living/silicon/attack_larva(mob/living/carbon/alien/larva/L) if(L.a_intent == "help") - visible_message("[L] rubs its head against [src].") + visible_message("[L.name] rubs its head against [src].") return /mob/living/silicon/attack_hand(mob/living/carbon/human/M) diff --git a/code/modules/mob/living/simple_animal/parrot.dm b/code/modules/mob/living/simple_animal/parrot.dm index 137c47efa8e..cdd78ccaa3b 100644 --- a/code/modules/mob/living/simple_animal/parrot.dm +++ b/code/modules/mob/living/simple_animal/parrot.dm @@ -261,7 +261,8 @@ //Humans, monkeys, aliens /mob/living/simple_animal/parrot/attack_hand(mob/living/carbon/M as mob) ..() - if(client) return + if(client) + return if(!stat && M.a_intent == "harm") icon_state = "parrot_fly" //It is going to be flying regardless of whether it flees or attacks @@ -282,15 +283,15 @@ /mob/living/simple_animal/parrot/attack_paw(mob/living/carbon/monkey/M as mob) attack_hand(M) -/mob/living/simple_animal/parrot/attack_alien(mob/living/carbon/monkey/M as mob) +/mob/living/simple_animal/parrot/attack_alien(mob/living/carbon/alien/M as mob) attack_hand(M) //Simple animals /mob/living/simple_animal/parrot/attack_animal(mob/living/simple_animal/M as mob) ..() //goodbye immortal parrots - if(client) return - + if(client) + return if(parrot_state == PARROT_PERCH) parrot_sleep_dur = parrot_sleep_max //Reset it's sleep timer if it was perched diff --git a/code/modules/mob/living/simple_animal/simple_animal.dm b/code/modules/mob/living/simple_animal/simple_animal.dm index 8d65d13ea71..1570e629b89 100644 --- a/code/modules/mob/living/simple_animal/simple_animal.dm +++ b/code/modules/mob/living/simple_animal/simple_animal.dm @@ -256,8 +256,7 @@ /mob/living/simple_animal/attack_animal(mob/living/simple_animal/M as mob) if(..()) var/damage = rand(M.melee_damage_lower, M.melee_damage_upper) - adjustBruteLoss(damage) - updatehealth() + attack_threshold_check(damage) /mob/living/simple_animal/bullet_act(var/obj/item/projectile/Proj) if(!Proj) @@ -268,34 +267,32 @@ return 0 /mob/living/simple_animal/attack_hand(mob/living/carbon/human/M as mob) - if(..()) - switch(M.a_intent) + switch(M.a_intent) - if("help") - if (health > 0) - visible_message(" [M] [response_help] [src].") - playsound(loc, 'sound/weapons/thudswoosh.ogg', 50, 1, -1) + if("help") + if (health > 0) + visible_message("[M] [response_help] [src].") + playsound(loc, 'sound/weapons/thudswoosh.ogg', 50, 1, -1) - if("grab") - grabbedby(M) - - if("harm", "disarm") - visible_message("[M] [response_harm] [src]!") - playsound(loc, "punch", 25, 1, -1) - adjustBruteLoss(harm_intent_damage) - add_logs(M, src, "attacked", admin=0) - updatehealth() + if("grab") + grabbedby(M) + if("harm", "disarm") + visible_message("[M] [response_harm] [src]!") + playsound(loc, "punch", 25, 1, -1) + adjustBruteLoss(harm_intent_damage) + add_logs(M, src, "attacked", admin=0) + updatehealth() return /mob/living/simple_animal/attack_paw(mob/living/carbon/monkey/M as mob) if(..()) if(stat != DEAD) - adjustBruteLoss(rand(1, 3)) - updatehealth() + var/damage = rand(1, 3) + attack_threshold_check(damage) if (M.a_intent == "help") if (health > 0) - visible_message(" [M.name] [response_help] [src].") + visible_message("[M.name] [response_help] [src].") playsound(loc, 'sound/weapons/thudswoosh.ogg', 50, 1, -1) return @@ -306,8 +303,7 @@ "[M] has slashed at [src]!") playsound(loc, 'sound/weapons/slice.ogg', 25, 1, -1) add_logs(M, src, "attacked", admin=0) - adjustBruteLoss(damage) - updatehealth() + attack_threshold_check(damage) return @@ -316,8 +312,7 @@ var/damage = rand(5, 10) if(stat != DEAD) L.amount_grown = min(L.amount_grown + damage, L.max_grown) - adjustBruteLoss(damage) - updatehealth() + attack_threshold_check(damage) /mob/living/simple_animal/attack_slime(mob/living/carbon/slime/M as mob) @@ -328,12 +323,18 @@ damage = rand(20, 40) else damage = rand(5, 35) - adjustBruteLoss(damage) - updatehealth() - + attack_threshold_check(damage) return +/mob/living/simple_animal/proc/attack_threshold_check(var/damage) + if(damage <= force_threshold) + visible_message("[src] looks unharmed.") + else + adjustBruteLoss(damage) + updatehealth() + + /mob/living/simple_animal/attackby(var/obj/item/O as obj, var/mob/user as mob) //Marker -Agouri if(istype(O, /obj/item/stack/medical)) From 832bca33a8ab496a73823e313099ec1dbd6440b8 Mon Sep 17 00:00:00 2001 From: WJohn Date: Thu, 6 Nov 2014 12:52:00 -0500 Subject: [PATCH 078/102] Changed products in vending machine in syndie base. --- _maps/map_files/MetaStation.v39K.dmm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_maps/map_files/MetaStation.v39K.dmm b/_maps/map_files/MetaStation.v39K.dmm index 5f6f4d5af92..617b3498582 100644 --- a/_maps/map_files/MetaStation.v39K.dmm +++ b/_maps/map_files/MetaStation.v39K.dmm @@ -7593,7 +7593,7 @@ "cQa" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/disposalpipe/junction{icon_state = "pipe-j2"; dir = 4},/turf/simulated/floor{tag = "icon-vault"; icon_state = "vault"},/area/hallway/primary/central) "cQb" = (/obj/machinery/computer/syndicate_station/recall,/turf/unsimulated/floor{icon_state = "bar"; dir = 2},/area/space) "cQc" = (/turf/unsimulated/floor{icon_state = "bar"; dir = 2},/area/space) -"cQd" = (/obj/machinery/vending/cigarette,/turf/unsimulated/floor{icon_state = "bar"; dir = 2},/area/space) +"cQd" = (/obj/machinery/vending/cigarette{products = list(/obj/item/weapon/storage/fancy/cigarettes/cigpack_syndicate = 7, /obj/item/weapon/storage/fancy/cigarettes/cigpack_uplift = 3, /obj/item/weapon/storage/fancy/cigarettes/cigpack_robust = 2, /obj/item/weapon/storage/fancy/cigarettes/cigpack_carp = 3, /obj/item/weapon/storage/fancy/cigarettes/cigpack_midori = 1, /obj/item/weapon/storage/box/matches = 10, /obj/item/weapon/lighter/random = 4, /obj/item/weapon/storage/fancy/rollingpapers = 5)},/turf/unsimulated/floor{icon_state = "bar"; dir = 2},/area/space) "cQe" = (/turf/unsimulated/wall/fakeglass{icon_state = "fakewindows2"; dir = 6},/area/space) "cQf" = (/obj/machinery/vending/coffee,/turf/unsimulated/floor{icon_state = "bar"; dir = 2},/area/space) "cQg" = (/turf/unsimulated/beach/coastline,/area/centcom/holding) From e6f37698f8329b6913214e306e9a5d00ca3bdc15 Mon Sep 17 00:00:00 2001 From: WJohn Date: Thu, 6 Nov 2014 12:56:28 -0500 Subject: [PATCH 079/102] Ditto on boxstation. --- _maps/map_files/tgstation.2.1.3.dmm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/_maps/map_files/tgstation.2.1.3.dmm b/_maps/map_files/tgstation.2.1.3.dmm index 0a06aebdbc7..99f881635e6 100644 --- a/_maps/map_files/tgstation.2.1.3.dmm +++ b/_maps/map_files/tgstation.2.1.3.dmm @@ -7013,6 +7013,7 @@ "cES" = (/turf/unsimulated/floor{icon_state = "green"},/area/centcom/evac) "cET" = (/turf/unsimulated/floor{icon_state = "green"; dir = 6},/area/centcom/evac) "cEU" = (/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 6},/area/engine/engineering) +"cEV" = (/obj/machinery/vending/cigarette{products = list(/obj/item/weapon/storage/fancy/cigarettes/cigpack_syndicate = 7, /obj/item/weapon/storage/fancy/cigarettes/cigpack_uplift = 3, /obj/item/weapon/storage/fancy/cigarettes/cigpack_robust = 2, /obj/item/weapon/storage/fancy/cigarettes/cigpack_carp = 3, /obj/item/weapon/storage/fancy/cigarettes/cigpack_midori = 1, /obj/item/weapon/storage/box/matches = 10, /obj/item/weapon/lighter/random = 4, /obj/item/weapon/storage/fancy/rollingpapers = 5)},/turf/unsimulated/floor{icon_state = "bar"; dir = 2},/area/syndicate_mothership) "cEW" = (/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "snow"},/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "gravsnow_surround"; dir = 8},/area/syndicate_mothership) "cEX" = (/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "snow"},/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "gravsnow_corner"; dir = 6},/area/syndicate_mothership) "cEY" = (/obj/structure/table/woodentable,/obj/item/weapon/reagent_containers/food/drinks/beer{pixel_x = -2; pixel_y = 5},/turf/unsimulated/floor{icon_state = "bar"; dir = 2},/area/syndicate_mothership) @@ -8926,7 +8927,6 @@ "dpI" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 4; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/simulated/floor{icon_state = "dark"},/area/aisat) "dpJ" = (/obj/machinery/vending/cola,/turf/unsimulated/floor{icon_state = "bar"; dir = 2},/area/syndicate_mothership) "dpK" = (/obj/machinery/vending/coffee,/turf/unsimulated/floor{icon_state = "bar"; dir = 2},/area/syndicate_mothership) -"dpL" = (/obj/machinery/vending/cigarette,/turf/unsimulated/floor{icon_state = "bar"; dir = 2},/area/syndicate_mothership) "dpM" = (/obj/structure/stool/bed/chair/comfy/black{dir = 1; icon_state = "comfychair"; name = "pilot's chair"; tag = "icon-comfychair (NORTH)"},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_station/start) "dpN" = (/obj/machinery/alarm{dir = 1; icon_state = "alarm0"; pixel_y = -22},/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor{icon_state = "yellow"},/area/hallway/primary/aft) "dpO" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor{dir = 6; icon_state = "yellow"},/area/hallway/primary/aft) @@ -9683,7 +9683,7 @@ ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlah ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlcCEcCPcCPcCPcCPcCPcDAcDBcDCcDDcDDcDDcDEcDBcDFcCPcCPcCPcCPcDicCPcDwcCQcDwcCQcCPcCRcCPcCRcCEahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlcDpcDGcDGcDHcDIcDJcDKcDLcDGcDGcAlcCocCocCocCpcBFcBGcBHcAQcDxcDxcDxcDxcAQcDMcBxcBxcDNcAQahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlcCEcCPcCPcCPcCPcCPcDBcDOcDPcDQcDRcDScDTcDTcDBcDUcCPcCPcDwcCEcCEcDVcDWcCEcCEcDwcDXcDYcDwcCEahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlcDpcDZcEacEbcEccEdcEecEbcEacDZcAlcCocEfcEgcEhcAlahlahlcAQcEicEicEjcEjcAQcBycBxcBxcDzcBAahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlcCEcCPcCPcCPcCPcCPcDBcEkcDPcDPdpMcDPcDPcDPcDBcDUcCPcEmcCEcCEcEncEocEocEncCEcCEcCEcCEcCEcCEcCEcCEahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlcDpcEacEpcEqcEccEdcEecEqcErcEacAlcCocEscEtcEucAlahlahlcEvcBlcEwcEwcEwcEwcEwcEwcEwcBlcExahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl -ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlcCEcCPcCPcCPcCPcCPcDBdpwcDPcDPcDPcEzcDPcEAcDBcDUcDicEmcCEcmgcEBcEBcEBcEBdpKdpJdpLdpxdtdcEDcEEcCEahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlcDpcEFcEacEFcEccEdcEecEFcEacEFcAlcCocCocCocCocAlahlahlahlcEvcEGcEGcEGcEGcEGcEGcEGcExahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl +ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlcCEcCPcCPcCPcCPcCPcDBdpwcDPcDPcDPcEzcDPcEAcDBcDUcDicEmcCEcmgcEBcEBcEBcEBdpKdpJcEVdpxdtdcEDcEEcCEahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlcDpcEFcEacEFcEccEdcEecEFcEacEFcAlcCocCocCocCocAlahlahlahlcEvcEGcEGcEGcEGcEGcEGcEGcExahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlcCEcCPcCPcCPcCPcCPcEHcDBcDBcDBcEIcDBcDBcDBcEJcCPcCPcEKcCEdpucEBcEMcEMdpvcEBcEBcEBcENcEOcEOcEOcCEahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlcDpcEPcEacEacEccEdcEecEacEacEQcAlcERcEScEScETcAlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlcCEcCPcCPcCPcCPcCPcCPcCPcDBdpqcDPdptcDBcEWcDwcDwcDwcEXcCEcEBcEMcEYcEZcEMcEBcFacFbdpxcFccFdcCEcCEahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlcDpcFecFfcFfcEccEdcEecFgcFgcFhcAlcAlcFicAlcAlcAlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlcCEcCPcCPcCPcCPcCPcCPcCPcDBcFycDPdppcDBcFjcFkcFkcFkcDWcCEcEBcEMcFlcFmcEMcEBcFacFncCEcCEcCEcCEahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlcDpcDGcDGcDGcDGcEdcDGcDGcDGcDGcAlcApcApcApcApcAlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl From e1a06faa9b2e647255755608af637cedc87d2fa8 Mon Sep 17 00:00:00 2001 From: xxalpha Date: Thu, 6 Nov 2014 18:23:48 +0000 Subject: [PATCH 080/102] Increases gold content per Robust Gold cigarette to 1 --- code/game/objects/items/weapons/storage/fancy.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/game/objects/items/weapons/storage/fancy.dm b/code/game/objects/items/weapons/storage/fancy.dm index 2535cb46f52..cfaf254b039 100644 --- a/code/game/objects/items/weapons/storage/fancy.dm +++ b/code/game/objects/items/weapons/storage/fancy.dm @@ -211,7 +211,7 @@ /obj/item/weapon/storage/fancy/cigarettes/cigpack_robustgold/New() ..() for(var/i = 1 to storage_slots) - reagents.add_reagent("gold",0.2) + reagents.add_reagent("gold",1) /obj/item/weapon/storage/fancy/cigarettes/cigpack_carp name = "\improper Carp Classic packet" From 5775d0928f36a0a71c4357b14f13a1efdeab1aca Mon Sep 17 00:00:00 2001 From: WJohn Date: Thu, 6 Nov 2014 15:24:03 -0500 Subject: [PATCH 081/102] Adds ventilation to incinerator. --- _maps/map_files/tgstation.2.1.3.dmm | 54 +++++++++++++++++------------ 1 file changed, 31 insertions(+), 23 deletions(-) diff --git a/_maps/map_files/tgstation.2.1.3.dmm b/_maps/map_files/tgstation.2.1.3.dmm index 99f881635e6..20c7fbed4d8 100644 --- a/_maps/map_files/tgstation.2.1.3.dmm +++ b/_maps/map_files/tgstation.2.1.3.dmm @@ -5119,7 +5119,7 @@ "bUw" = (/obj/structure/grille,/obj/structure/window/reinforced/tinted{dir = 1},/obj/structure/window/reinforced/tinted,/obj/structure/window/reinforced/tinted{dir = 4; icon_state = "twindow"},/obj/structure/window/reinforced/tinted{dir = 8; icon_state = "twindow"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor/plating,/area/maintenance/asmaint2) "bUx" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor/plating,/area/maintenance/asmaint) "bUy" = (/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 9},/turf/simulated/floor/plating,/area/maintenance/asmaint) -"bUz" = (/obj/structure/closet/emcloset,/turf/simulated/floor/plating,/area/maintenance/asmaint) +"bUz" = (/obj/effect/decal/cleanable/cobweb2,/obj/effect/spawner/lootdrop/maintenance,/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{tag = "icon-manifold-r-f (WEST)"; dir = 8},/turf/simulated/floor/plating,/area/maintenance/asmaint) "bUA" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/cable,/obj/machinery/door/poddoor/preopen{id = "xenobio3"; name = "containment blast door"},/turf/simulated/floor/engine,/area/toxins/xenobiology) "bUB" = (/obj/structure/table/reinforced,/obj/machinery/door_control{id = "xenobio3"; name = "Containment Blast Doors"; pixel_x = 0; pixel_y = 4; req_access_txt = "55"},/obj/structure/window/reinforced{dir = 1},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/simulated/floor{dir = 5; icon_state = "warning"},/area/toxins/xenobiology) "bUC" = (/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/simulated/floor{icon_state = "white"},/area/toxins/xenobiology) @@ -5252,7 +5252,7 @@ "bWZ" = (/obj/structure/stool/bed/chair/office/light,/obj/effect/landmark/start{name = "Scientist"},/turf/simulated/floor{icon_state = "floorgrime"},/area/toxins/misc_lab) "bXa" = (/obj/structure/stool{pixel_y = 8},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/plating,/area/maintenance/asmaint) "bXb" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 5},/turf/simulated/wall,/area/maintenance/asmaint) -"bXc" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plating{icon_state = "warnplate"},/area/maintenance/asmaint) +"bXc" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor/plating,/area/maintenance/asmaint) "bXd" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 1},/area/engine/engineering) "bXe" = (/obj/machinery/atmospherics/pipe/simple/cyan/visible,/turf/simulated/floor{icon_state = "arrival"; dir = 10},/area/atmos) "bXf" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{dir = 4},/turf/simulated/floor{icon_state = "floorgrime"},/area/maintenance/incinerator) @@ -5397,7 +5397,7 @@ "bZO" = (/obj/structure/target_stake,/turf/simulated/floor/plating,/area/toxins/misc_lab) "bZP" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/wall,/area/toxins/misc_lab) "bZQ" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor/plating,/area/maintenance/asmaint) -"bZR" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/simulated/floor/plating,/area/maintenance/asmaint) +"bZR" = (/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/manifold/supply/hidden{tag = "icon-manifold-b-f (WEST)"; dir = 8},/turf/simulated/floor/plating,/area/maintenance/asmaint) "bZS" = (/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/turf/simulated/floor/plating,/area/maintenance/asmaint) "bZT" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/wall,/area/maintenance/disposal) "bZU" = (/obj/structure/closet/firecloset,/turf/simulated/floor{dir = 8; icon_state = "warning"},/area/atmos) @@ -5656,7 +5656,7 @@ "ceN" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor/plating,/area/maintenance/port) "ceO" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 10},/turf/simulated/wall/r_wall,/area/medical/virology) "ceP" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor/plating,/area/maintenance/asmaint) -"ceQ" = (/obj/effect/decal/cleanable/cobweb2,/obj/effect/spawner/lootdrop/maintenance,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 5},/turf/simulated/floor/plating,/area/maintenance/asmaint) +"ceQ" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor/plating,/area/maintenance/asmaint) "ceR" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor/plating,/area/aisat) "ceS" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/machinery/light/small{dir = 8},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/camera{c_tag = "MiniSat Exterior South East"; dir = 4; network = list("MiniSat"); pixel_x = 0; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor/plating,/area/aisat) "ceT" = (/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/turf/simulated/floor/plating,/area/maintenance/asmaint) @@ -7070,7 +7070,7 @@ "cFX" = (/obj/structure/sign/map/left{pixel_y = -32},/obj/structure/rack{icon = 'icons/obj/stationobjs.dmi'; icon_state = "minibar_left"; name = "skeletal minibar"},/obj/item/weapon/reagent_containers/food/drinks/bottle/vodka,/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/syndicate_mothership) "cFY" = (/obj/structure/sign/map/right{pixel_y = -32},/obj/structure/rack{icon = 'icons/obj/stationobjs.dmi'; icon_state = "minibar_right"; name = "skeletal minibar"},/obj/item/weapon/reagent_containers/food/drinks/bottle/gin,/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/syndicate_mothership) "cFZ" = (/obj/effect/landmark/start{name = "Assistant"},/turf/simulated/floor,/area/hallway/secondary/construction{name = "\improper Garden"}) -"cGa" = (/obj/structure/stool,/obj/effect/decal/cleanable/cobweb{tag = "icon-cobweb2"; icon_state = "cobweb2"},/turf/simulated/floor/plating,/area/maintenance/asmaint) +"cGa" = (/obj/structure/stool,/obj/effect/decal/cleanable/cobweb{tag = "icon-cobweb2"; icon_state = "cobweb2"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor/plating,/area/maintenance/asmaint) "cGb" = (/obj/structure/rack,/obj/item/clothing/suit/space/syndicate/black/red,/obj/item/clothing/head/helmet/space/syndicate/black/red,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_station/start) "cGc" = (/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "snow"},/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "gravsnow_corner"; dir = 10},/area/syndicate_mothership) "cGd" = (/turf/unsimulated/wall,/area/wizard_station) @@ -8919,7 +8919,7 @@ "dpA" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/wall/r_wall,/area/atmos) "dpB" = (/obj/machinery/atmospherics/portables_connector/visible{dir = 8},/obj/machinery/portable_atmospherics/canister/air,/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 6},/area/medical/virology) "dpC" = (/obj/machinery/atmospherics/pipe/tank/air{dir = 8},/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 5},/area/medical/virology) -"dpD" = (/obj/structure/sign/fire{pixel_x = 0; pixel_y = -32},/turf/simulated/floor/plating,/area/maintenance/asmaint) +"dpD" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor/plating,/area/maintenance/asmaint) "dpE" = (/obj/machinery/camera{c_tag = "Atmospherics South West"; dir = 4; network = list("SS13")},/obj/machinery/atmospherics/unary/vent_pump{dir = 8; on = 1},/turf/simulated/floor,/area/atmos) "dpF" = (/obj/structure/table,/obj/item/clothing/glasses/meson,/obj/machinery/alarm{dir = 4; icon_state = "alarm0"; pixel_x = -22},/turf/simulated/floor,/area/engine/break_room) "dpG" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{tag = "icon-manifold-r-f (EAST)"; dir = 4},/turf/simulated/floor{icon_state = "dark"},/area/aisat) @@ -8927,6 +8927,7 @@ "dpI" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 4; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/simulated/floor{icon_state = "dark"},/area/aisat) "dpJ" = (/obj/machinery/vending/cola,/turf/unsimulated/floor{icon_state = "bar"; dir = 2},/area/syndicate_mothership) "dpK" = (/obj/machinery/vending/coffee,/turf/unsimulated/floor{icon_state = "bar"; dir = 2},/area/syndicate_mothership) +"dpL" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 6},/turf/simulated/floor/plating,/area/maintenance/asmaint) "dpM" = (/obj/structure/stool/bed/chair/comfy/black{dir = 1; icon_state = "comfychair"; name = "pilot's chair"; tag = "icon-comfychair (NORTH)"},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_station/start) "dpN" = (/obj/machinery/alarm{dir = 1; icon_state = "alarm0"; pixel_y = -22},/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor{icon_state = "yellow"},/area/hallway/primary/aft) "dpO" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor{dir = 6; icon_state = "yellow"},/area/hallway/primary/aft) @@ -9197,7 +9198,7 @@ "duT" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor/plating,/area/maintenance/asmaint) "duU" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor/plating,/area/maintenance/asmaint) "duV" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor/plating/airless,/area/space) -"duW" = (/obj/structure/table,/obj/effect/spawner/lootdrop/maintenance,/turf/simulated/floor/plating,/area/maintenance/asmaint) +"duW" = (/obj/structure/table,/obj/effect/spawner/lootdrop/maintenance,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor/plating,/area/maintenance/asmaint) "duX" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 9},/turf/simulated/floor/plating,/area/maintenance/asmaint) "duY" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{tag = "icon-manifold-r-f (NORTH)"; dir = 1},/obj/machinery/meter,/turf/simulated/floor/plating,/area/maintenance/asmaint) "duZ" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 1; external_pressure_bound = 0; initialize_directions = 1; internal_pressure_bound = 4000; on = 0; pressure_checks = 2; pump_direction = 0},/obj/structure/sign/securearea{desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; pixel_x = 0; pixel_y = -32},/turf/simulated/floor/engine/vacuum,/area/maintenance/incinerator) @@ -9208,16 +9209,16 @@ "dve" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plating,/area/maintenance/asmaint) "dvf" = (/obj/machinery/atmospherics/binary/pump{dir = 4; name = "atmospherics mix pump"},/obj/effect/decal/cleanable/cobweb,/turf/simulated/floor{icon_state = "floorgrime"},/area/maintenance/incinerator) "dvg" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/simulated/floor/plating,/area/maintenance/asmaint) -"dvh" = (/obj/machinery/light_switch{pixel_x = 0; pixel_y = 26},/turf/simulated/floor{icon_state = "floorgrime"},/area/maintenance/incinerator) +"dvh" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 9},/turf/simulated/floor/plating,/area/maintenance/asmaint) "dvi" = (/obj/machinery/power/smes{capacity = 9e+006; charge = 10000},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/effect/decal/cleanable/cobweb{tag = "icon-cobweb2"; icon_state = "cobweb2"},/turf/simulated/floor/plating,/area/maintenance/incinerator) "dvj" = (/obj/machinery/disposal,/obj/structure/sign/deathsposal{pixel_x = 0; pixel_y = 32},/obj/structure/disposalpipe/trunk,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plating,/area/maintenance/incinerator) "dvk" = (/obj/machinery/light{dir = 1},/obj/machinery/atmospherics/pipe/simple/yellow/visible{tag = "icon-intact (SOUTHWEST)"; icon_state = "intact"; dir = 10},/turf/simulated/floor{icon_state = "floorgrime"},/area/maintenance/incinerator) "dvl" = (/obj/machinery/atmospherics/pipe/simple/general/visible{dir = 2},/turf/simulated/floor{icon_state = "floorgrime"},/area/maintenance/incinerator) -"dvm" = (/obj/effect/landmark{name = "blobstart"},/mob/living/simple_animal/mouse,/turf/simulated/floor{icon_state = "floorgrime"},/area/maintenance/incinerator) -"dvn" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 1},/area/maintenance/incinerator) +"dvm" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 6},/turf/simulated/floor/plating{icon_state = "warnplate"},/area/maintenance/asmaint) +"dvn" = (/obj/structure/sign/fire{pixel_x = 0; pixel_y = -32},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor/plating,/area/maintenance/asmaint) "dvo" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment,/turf/simulated/floor{icon_state = "floorgrime"},/area/maintenance/incinerator) "dvp" = (/obj/structure/sign/nosmoking_2{pixel_x = -28},/obj/machinery/atmospherics/portables_connector/visible{dir = 4; name = "input gas connector port"},/obj/machinery/portable_atmospherics/canister/oxygen,/turf/simulated/floor{icon_state = "floorgrime"},/area/maintenance/incinerator) -"dvq" = (/obj/machinery/door/airlock/maintenance{name = "Incinerator Access"; req_access_txt = "12"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plating,/area/maintenance/incinerator) +"dvq" = (/obj/structure/closet/emcloset,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 9},/turf/simulated/floor/plating,/area/maintenance/asmaint) "dvr" = (/obj/machinery/atmospherics/binary/pump{dir = 4; name = "input port pump"},/turf/simulated/floor{icon_state = "floorgrime"},/area/maintenance/incinerator) "dvs" = (/obj/machinery/power/terminal{icon_state = "term"; dir = 1},/obj/machinery/alarm{desc = "This particular atmos control unit appears to have no access restrictions."; dir = 8; icon_state = "alarm0"; locked = 0; name = "all-access air alarm"; pixel_x = 24; req_access = "0"; req_one_access = "0"},/obj/structure/cable/yellow{d2 = 8; icon_state = "0-8"},/turf/simulated/floor{icon_state = "floorgrime"},/area/maintenance/incinerator) "dvt" = (/obj/structure/disposalpipe/segment,/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/simulated/floor{icon_state = "floorgrime"},/area/maintenance/incinerator) @@ -9254,10 +9255,17 @@ "dvY" = (/obj/machinery/atmospherics/binary/pump{dir = 4; name = "plasma tank pump"},/turf/simulated/floor{icon_state = "floorgrime"},/area/maintenance/incinerator) "dvZ" = (/obj/machinery/atmospherics/pipe/tank/toxins{dir = 4},/turf/simulated/floor{icon_state = "floorgrime"},/area/maintenance/incinerator) "dwa" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/binary/pump{dir = 8; name = "Mix to Space"; on = 1},/turf/simulated/floor/plating/airless,/area/space) -"dwb" = (/obj/machinery/atmospherics/binary/pump{dir = 4; name = "Mix to Incinerator"; on = 0},/turf/simulated/floor{icon_state = "floorgrime"},/area/maintenance/incinerator) +"dwb" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor/plating,/area/maintenance/asmaint) "dwc" = (/obj/machinery/atmospherics/pipe/manifold4w/general{level = 2},/obj/machinery/meter,/turf/simulated/floor{icon_state = "floorgrime"},/area/maintenance/incinerator) "dwd" = (/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 5},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plating,/area/maintenance/asmaint) "dwe" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor{icon_state = "warningcorner"; dir = 4},/area/ai_monitored/storage/secure) +"dwf" = (/obj/machinery/door/airlock/maintenance{name = "Incinerator Access"; req_access_txt = "12"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor/plating,/area/maintenance/incinerator) +"dwg" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/wall,/area/maintenance/incinerator) +"dwh" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/atmospherics/unary/vent_scrubber{dir = 1; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 1},/area/maintenance/incinerator) +"dwi" = (/obj/machinery/light_switch{pixel_x = 0; pixel_y = 26},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor{icon_state = "floorgrime"},/area/maintenance/incinerator) +"dwj" = (/obj/machinery/atmospherics/binary/pump{dir = 4; name = "Mix to Incinerator"; on = 0},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor{icon_state = "floorgrime"},/area/maintenance/incinerator) +"dwk" = (/obj/effect/landmark{name = "blobstart"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/mob/living/simple_animal/mouse,/turf/simulated/floor{icon_state = "floorgrime"},/area/maintenance/incinerator) +"dwl" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 1; external_pressure_bound = 101.325; on = 1; pressure_checks = 1},/turf/simulated/floor{icon_state = "floorgrime"},/area/maintenance/incinerator) (1,1,1) = {" ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl @@ -9425,17 +9433,17 @@ ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlah ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahjbCvbXldvHdvIdvIdvJcqrbCvbELbXmahlahlahjahlahlahjahlbppdcdbWnbXnbXobXpbXqbXrbXsbXnbXtbXubXvbXwbWobWodumbppdunbfHcerbXybXzcbDcbDbXCbMjbMjbMjbMjbMjbXDchjbNrbNrbNrbXFbOGbVybOGcgrbUnbXGbTsahjbOPbOPbOPbOPbOPcaMbXHbWibCDcbobXKbjLbpadusdurduvdutduqdupbXPcbUbXPbXQbSubNIbDcbEhbXRbEhbXSbTKbMNbTLbMNbTMbXTbEhbXRbEhbJWbXUbXVbXWbXXbXYbXZbYacbQcbPcbFbSSbCxbYfchUbRHbUMbZPbUwbgZblAbgZbgZbgZdsidsiahjahjahjahjahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahjbCvdvNdvWdvUdvVdvTbELdvSbELbXmahlahlahjahlahlahjahlbppdcdbWnbXnbYqbYrbYsbYtbYubXnbYvbYwbYxbYybYzbWodumbppbQLbfHcerbYAbYBbMjcdvbYDbMjcdwcuLbYGbMjbYHbSQbZUbNrbYJbWFbOGbWDbYKbYLbUpbYMbTnbPQbPRbYNbYObYPbOPcaMbCDbWibCDbYQbXKbjLbSubYRduzbYTbYUduAduzcdHcdAcdHbzNbyObNIbDcbEhbEhbEhbYZbZabSIbUCbMNbUDbZbbSEbSEbUFbDcbRHbZcbZdbZebRHbRHbZfbZgcdMcdNbZjbVYbVZbZkbUMbUMbZPbjfbgZbrqbgZbZlbgZahjahjahjahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahjbCvdvQdvPdvPdvRdvLbJjbCvbZvbZwahlahlahlahlahlahlahlbppdcdbWnbZxbZybZzbYsbZAbZxbZxbYvbZBbZCbYyccAbWodumbppbQLbfHbGwcbAcbAccWccBccQcdbcdlccXduxbMjbOGbSQdjybZVbYJbZWbOGbWDbYKcgrbUnbZXbTsahjbReclkbZZcaabOPcaMbCDbWibCDcabcacbjLbSubNJcadcaebNJduybNJbNJbNJbNJbNJbSubNIbDcbJWbJWbJWbJWbVRcafbTLcagbVRbJWbJWbJWbJWbDcbTRcahbTRbTRbTRbRHbZfbZgcdtcducakcalbRxbCzbRHbUMbZPbjfbgZblAblAblAcanahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlaGcahlahlahlahlahlahlahlahlahlahlahlahlahl -ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahjahjahjahjahjahjahjahjahjahjahjahjahjbRJbRJbRJbCvbCvbCvdvSbCvbCvbCvbCvahjahlahlaPYahlahlahlahlahlduNdcdbWnbZxbZxcarcasbXnbZxcatcaucavcawcaxcaybWodumduMduJduKcexcbAcaDcaEcaEceJcaHcaIceKduLbMjcaLcjIbZUbNrbYJcaNbOGcaObYKcgrcaPcaQbMrbSobPRcaRbYObYObOPcaMcaSbWibCDcaTbXKbjLceQbPZbPZceObNJduObZsdpCbNKcaZccmbXIbNIbDcbSDbSEbSEcbbbSGbMNbSHbSIcbccbdbEhbEhbEhbDccbebTRbTRbTRbTRbRHcbfcbgceMceLbQubQubRxbQubRHbQubZPbjfbgZcbkcblcbmcbnahjahjahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl -ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlaaHaaHaaHdpXdpXaaHdpXdpXdpXaaRdpXdpXdpXaaHdpXahjahjbCvbELbELbELbELbELbELbELbELbJjcbpahjahlahlahjdsiaFFahlahlahldotdcdbWncbscbtcascbubXnbXncbvcbwcbvcbxbYycbybWoduCduBduDduEbHXcbAdpFcaEcdOcdzcbEduGcdPduFduHbPHcirbNrbNrbNrcbJbOGcbKcbLcgrbUnbOGbTsahjbOPbOPbOPbOPbOPcaMcbMbWibCDcchbXKdwdbZQbZQceocepbNKduIcuYdpBbNKceabhpcdTcbWbDcbEhbEhbEhcbXbTKbMNbTLbMNbTMcbYbEhbEhbEhbDccbZbTRccabTRbTRccbcccccdcemcebbQubRxbRxccgbRHaDGbPdbWdbgZccjcckblAcclahjahlahlahlahlahlaaeahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl -ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlaaHahlahlahjahjahlahjahjahlahlahjahjahjahldpXahlahlbCvbRKbELbCvbCvbCvbTZbCvbCvbCvbCvahlahlahldsiaDIauKdsidsiahjdotdcdbWnccpbZxbXnbXnbXnbZxcatccqccrbYyccscctbWobCvbCvbTzbTAbTBcbAcbAccxcaEdoZdoKdoMdoNdoQbMjbOGbVAccDccEccFbQWccGbVuccIbYLbUpccJbTnbPQbPRccKccLccLbOPcaMbXHbWibCDbCDbCDbWibCDbCDccMbDbbCDbCDcuBbCDbCDbDbbSWbSXbThbDcbEhbEhbEhccRccSbSIccTbMNbUDccUbSEbSEbUFbDcbTRbTRccVbTRbTRbRHcbfcbgbTibTxbQuccYccZcdabRHbfGbPdbjfbgZbgZbgZblAbgZahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl -ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlaaHahlcdccddcdeahlcdccddcdeahlcdccddcdeahjdpXahlahlbCvcdfcdgbCvcdhbELbELbOlaClcdkbCvahlahlahlatIdsidsiahjahlahldbVdcdbWnbZxcdncdobXncdpbZxbZxbYvcdqbYybYycdrbWocdsbSVbSCbSUbSBdoidnZdcNdctdcNdctdcvdctdcubMjcdCcdDcdEbSfbSfbShbUicdFbUmbSibUncdGbTsahjbReclhcdIcdJbOPcaMbCDbWibXKcdKckCbWicGabCDccMbSabRYbSqbZtbSwbRYbSAccMbLEcdVbDcbDcbDcbDcbDcbDccdWcdXcdYbDcbDcbDcbDcbDcbDcbRHbRHbRHbRHbRHbRHcdZcdZbSxbSybRHbRHbRHbRHbRHbgZcgFbjfbgZbNibOjblAbgZahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl -ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlaaHahlcdcceecdeahlcdcceecdeahlcdcceecdeahjahjahlahlbCvbPtbPvbCvbCvcefcegaClbELbSYbCvahlahlahlahlahjahlahlahlahlbppdcdbWnbXncehceibXncejcekbXnbYvcelbYxbYybYybVebVfbfIcercHqbVgceucevcewbVhceycezdpYcaEdqsbMjceBbOGbVAbUibONceCbWEceEceFbNFceGceHbMrbSobPRceIccLccLbOPcaMbCDdvgdvecdQdvebZRduWbCDbVdbUxbUNbJFcgAbJFbUJbUxbUybLEbTEbgZahlahlahlahjahlahlceVahlahjahlahlahlahlbgZceWayRceYceZceZbRHcfacfabSxbiZcfccfdblAblAblAaDGcgFbUwbgZcffblAblAbgZbgZbgZahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl -ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahldpXahjcdcceecdeahlcdcceecdeahjcdcceecdeahjahjahlahlahlahlahjahjbCvbCvbCvbCvbTZbCvbCvahlahlahlahlahjahlahlahjahlbppdcdbWnbXncfgcfhcficfjcfkbXncflcfmcfncfocfpbWocfqdpVdpPdpQdpNdpOdpTdpUdpRdpSdpsdpzdpadprdpAdpEbQZcfFbVBbOGbOGbOGbOMbVvbVBbUnbXGbTsahjbOPbOPbOPbOPbOPcaMbCDcchbtEdpDbXcbXKbUzbCDbCDcfKbTGcdUbXIcfMbTFbCDbCDbLEbTEbgZahlahlahlahjahlahlceVahlahjahlahlahlahlbgZblAchmbrscOnciqbRHcfScfSbTDbiZbRHbQubgZcfUcfVaDGcgFbTCbECbECbECcfYcfZcgacfZcgbdsiahjahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl -ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahjahlcdcceecdeahjcdcceecdeahlcdcceecdeahlahjahlahlahlahlahlahlbCvaOlbCvbELbELbCvahjahlahjahlahlahjahlahlahjahlbppdcdbWnbWnbWnbWnbWnbWnbWnbWnbWobWobWobWobWobWobCvbWpbCvcggcghcghcghcgicgjcgkcghbWrdqEdqRbMjchebXEbSkbXjcgscgtcgsbXjcgubXjcgvbUicgwahjahjahjahjahjahjcaMbWhbWhbWhbWhdvqbWhbWhbWhcgxbCDcgzcgzdpdcgzcgzbCDbYQbzgbTEbgZcgCcgDcgEbgZcgCcgDcuncgEbgZcgCcgDcgDcgEbgZbgZcgFcgGbgZbgZbRHbRHbRHbWabWbbRHaDGbgZcbmblAbpYcgFbWdbgZbgZcgLbgZbgZbgZbgZahjahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl -ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlaaHaaHdpXahjahlcdcceecdeahjcdcceecdeahlcdcceecdeahjahjahjahjcgMcgNcgNcgNcgNbCvbCvcgObELbCvcgPbWkbWkbWkbWkbWkbWkbWkbWlbCvbppdcdbCvcgQbVPbVObVObVObVObVObVObVObVObVObVXbVXbVObVQcefcggcnjcgWcgXcgYcgZchacghdoBcmIdqxbMjchebXichgchhchibWIchkchlbOGbXechnchobOIahjahjahlahlahlahldvddvcdvfdvkdvhdvndvjdvibWhchqdpkbViduYduXcdUcdUbXKbXKbzgbJEbVHbVHbVHbVHbVHbVHbVHbVIbVqbVqbVqbVqbVqbVqbVrbVqduQbVqbVqbVGciFbVlbVkbVjbVnbgZbgZbVmciFbVJciFbVLbjfbgZchLblAblAbgZahlahjahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl -ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlaaHahlahjahlahjahjchMahjahjahjchMahjahlahjchMahjahlahjchNchOchPchQchRchSchTcgebELchYchZciachZchZchZchZchZchZchZchZchZchZdsrdsydrBdrAbiTcicciccicciccicciccicciccicciccicciccicciccggcghciecifdsbbZDbZEbZFckUckbdspciccincfGcipceDcipcfGcipceDcipccHcipccHcisahjahjahlahlahlahlbWhdvZdvYdwcdwbdvXdvtdvsbWhchqduRcdUduSbYWbYVceTbFobXabXbbWQbWQbWQbWQbWQbWQbWQbWRbWSbWQbWQbWQbWQbWQbWQbYIbYEbYhchEbYCbYibYcbYcbYcbYdbXAbXxbXObXBbYYbYcbYcbYXbZhbgZbOjblAcbabgZahlahjahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl -ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahldpXahjciRciSciSciTciUciUciUciUciUciUciUciUciUciUciUciVciXciYciXciZdrvcjbcbHchZcjdcjeaClbCvcjgcjhcjhcjhcjhcjhcjhcjhcjibCvbCvdrqdrldrjdrgciccjncjncjociccjpcpFcpEcpCcpOcpNcjvcmvcjxcjycghcjzcjAdracjCcjDcjEcjHdrbdrdcicahjcbIahjcaMahjcbIahjcaMahjbZqahjbZqahlahlahlahlahlahlahlbWhdvpdvrdvvdvmdvldvodvubWhbXKcjLcjMduTcjObXJbFobSZbWqbCDbgZcgCcgDcgDcgEbgZcgCcgDcgDcgEbgZcgCcgDcgDcgEbgZcpGblAbgZbWKbWwbgZbgZcgCcgEbgZbgZcjTbPdbPbbgZcjUcjVbpWbgZbgZbgZbgZbgZahlahjahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl -ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlaaHahlahjahlahjahjcjWahjahlahjcjWahjahlahjcjWahjahlahlchNchOcjXcjYcjZckacgNbELbELbELbELbCvahlahlahjahlahlahjahlahlahjahlbCvckdbCvcmacmhcicckfckgckhckickjbhAckUckUckUbOHbOKbORckrbhAcghbvCckuclScjCckwcghaJbclRclMcicbOPckzbReckzbOPckzbReckzbOPckAbReckBbOPahlahlahlahlahlahlbWhbUWbUTbTXbUTbWfbUXbUYbWgbUZbUZccPbVabWeccPcnCbCDbCDbCDahlahlahjahlahjahjahlahlahlahlahlahlahlahlahlbgZcnyckEbgZbPbbPdbgZahlahlahlahlbgZblAbPdbPackGckGckHckIckGahlahjahjahjahjahjahjahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl +ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahjahjahjahjahjahjahjahjahjahjahjahjahjbRJbRJbRJbCvbCvbCvdvSbCvbCvbCvbCvahjahlahlaPYahlahlahlahlahlduNdcdbWnbZxbZxcarcasbXnbZxcatcaucavcawcaxcaybWodumduMduJduKcexcbAcaDcaEcaEceJcaHcaIceKduLbMjcaLcjIbZUbNrbYJcaNbOGcaObYKcgrcaPcaQbMrbSobPRcaRbYObYObOPcaMcaSbWibCDcaTbXKbjLbUzbPZbPZceObNJduObZsdpCbNKcaZccmbXIbNIbDcbSDbSEbSEcbbbSGbMNbSHbSIcbccbdbEhbEhbEhbDccbebTRbTRbTRbTRbRHcbfcbgceMceLbQubQubRxbQubRHbQubZPbjfbgZcbkcblcbmcbnahjahjahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl +ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlaaHaaHaaHdpXdpXaaHdpXdpXdpXaaRdpXdpXdpXaaHdpXahjahjbCvbELbELbELbELbELbELbELbELbJjcbpahjahlahlahjdsiaFFahlahlahldotdcdbWncbscbtcascbubXnbXncbvcbwcbvcbxbYycbybWoduCduBduDduEbHXcbAdpFcaEcdOcdzcbEduGcdPduFduHbPHcirbNrbNrbNrcbJbOGcbKcbLcgrbUnbOGbTsahjbOPbOPbOPbOPbOPcaMcbMbWibCDcchbXKbZRbXcbZQceocepbNKduIcuYdpBbNKceabhpcdTcbWbDcbEhbEhbEhcbXbTKbMNbTLbMNbTMcbYbEhbEhbEhbDccbZbTRccabTRbTRccbcccccdcemcebbQubRxbRxccgbRHaDGbPdbWdbgZccjcckblAcclahjahlahlahlahlahlaaeahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl +ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlaaHahlahlahjahjahlahjahjahlahlahjahjahjahldpXahlahlbCvbRKbELbCvbCvbCvbTZbCvbCvbCvbCvahlahlahldsiaDIauKdsidsiahjdotdcdbWnccpbZxbXnbXnbXnbZxcatccqccrbYyccscctbWobCvbCvbTzbTAbTBcbAcbAccxcaEdoZdoKdoMdoNdoQbMjbOGbVAccDccEccFbQWccGbVuccIbYLbUpccJbTnbPQbPRccKccLccLbOPcaMbXHbWibCDbCDbCDceQbzgbCDccMbDbbCDbCDcuBbCDbCDbDbbSWbSXbThbDcbEhbEhbEhccRccSbSIccTbMNbUDccUbSEbSEbUFbDcbTRbTRccVbTRbTRbRHcbfcbgbTibTxbQuccYccZcdabRHbfGbPdbjfbgZbgZbgZblAbgZahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl +ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlaaHahlcdccddcdeahlcdccddcdeahlcdccddcdeahjdpXahlahlbCvcdfcdgbCvcdhbELbELbOlaClcdkbCvahlahlahlatIdsidsiahjahlahldbVdcdbWnbZxcdncdobXncdpbZxbZxbYvcdqbYybYycdrbWocdsbSVbSCbSUbSBdoidnZdcNdctdcNdctdcvdctdcubMjcdCcdDcdEbSfbSfbShbUicdFbUmbSibUncdGbTsahjbReclhcdIcdJbOPcaMbCDbWibXKcdKckCceQcGabCDccMbSabRYbSqbZtbSwbRYbSAccMbLEcdVbDcbDcbDcbDcbDcbDccdWcdXcdYbDcbDcbDcbDcbDcbDcbRHbRHbRHbRHbRHbRHcdZcdZbSxbSybRHbRHbRHbRHbRHbgZcgFbjfbgZbNibOjblAbgZahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl +ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlaaHahlcdcceecdeahlcdcceecdeahlcdcceecdeahjahjahlahlbCvbPtbPvbCvbCvcefcegaClbELbSYbCvahlahlahlahlahjahlahlahlahlbppdcdbWnbXncehceibXncejcekbXnbYvcelbYxbYybYybVebVfbfIcercHqbVgceucevcewbVhceycezdpYcaEdqsbMjceBbOGbVAbUibONceCbWEceEceFbNFceGceHbMrbSobPRceIccLccLbOPcaMbCDdvgdvedpLdpDdvhduWbCDbVdbUxbUNbJFcgAbJFbUJbUxbUybLEbTEbgZahlahlahlahjahlahlceVahlahjahlahlahlahlbgZceWayRceYceZceZbRHcfacfabSxbiZcfccfdblAblAblAaDGcgFbUwbgZcffblAblAbgZbgZbgZahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl +ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahldpXahjcdcceecdeahlcdcceecdeahjcdcceecdeahjahjahlahlahlahlahjahjbCvbCvbCvbCvbTZbCvbCvahlahlahlahlahjahlahlahjahlbppdcdbWnbXncfgcfhcficfjcfkbXncflcfmcfncfocfpbWocfqdpVdpPdpQdpNdpOdpTdpUdpRdpSdpsdpzdpadprdpAdpEbQZcfFbVBbOGbOGbOGbOMbVvbVBbUnbXGbTsahjbOPbOPbOPbOPbOPcaMbCDcchbtEdvndvmdwbdvqbCDbCDcfKbTGcdUbXIcfMbTFbCDbCDbLEbTEbgZahlahlahlahjahlahlceVahlahjahlahlahlahlbgZblAchmbrscOnciqbRHcfScfSbTDbiZbRHbQubgZcfUcfVaDGcgFbTCbECbECbECcfYcfZcgacfZcgbdsiahjahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl +ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahjahlcdcceecdeahjcdcceecdeahlcdcceecdeahlahjahlahlahlahlahlahlbCvaOlbCvbELbELbCvahjahlahjahlahlahjahlahlahjahlbppdcdbWnbWnbWnbWnbWnbWnbWnbWnbWobWobWobWobWobWobCvbWpbCvcggcghcghcghcgicgjcgkcghbWrdqEdqRbMjchebXEbSkbXjcgscgtcgsbXjcgubXjcgvbUicgwahjahjahjahjahjahjcaMbWhbWhbWhdwgdwfbWhbWhbWhcgxbCDcgzcgzdpdcgzcgzbCDbYQbzgbTEbgZcgCcgDcgEbgZcgCcgDcuncgEbgZcgCcgDcgDcgEbgZbgZcgFcgGbgZbgZbRHbRHbRHbWabWbbRHaDGbgZcbmblAbpYcgFbWdbgZbgZcgLbgZbgZbgZbgZahjahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl +ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlaaHaaHdpXahjahlcdcceecdeahjcdcceecdeahlcdcceecdeahjahjahjahjcgMcgNcgNcgNcgNbCvbCvcgObELbCvcgPbWkbWkbWkbWkbWkbWkbWkbWlbCvbppdcdbCvcgQbVPbVObVObVObVObVObVObVObVObVObVXbVXbVObVQcefcggcnjcgWcgXcgYcgZchacghdoBcmIdqxbMjchebXichgchhchibWIchkchlbOGbXechnchobOIahjahjahlahlahlahldvddvcdvfdvkdwidwhdvjdvibWhchqdpkbViduYduXcdUcdUbXKbXKbzgbJEbVHbVHbVHbVHbVHbVHbVHbVIbVqbVqbVqbVqbVqbVqbVrbVqduQbVqbVqbVGciFbVlbVkbVjbVnbgZbgZbVmciFbVJciFbVLbjfbgZchLblAblAbgZahlahjahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl +ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlaaHahlahjahlahjahjchMahjahjahjchMahjahlahjchMahjahlahjchNchOchPchQchRchSchTcgebELchYchZciachZchZchZchZchZchZchZchZchZchZdsrdsydrBdrAbiTcicciccicciccicciccicciccicciccicciccicciccggcghciecifdsbbZDbZEbZFckUckbdspciccincfGcipceDcipcfGcipceDcipccHcipccHcisahjahjahlahlahlahlbWhdvZdvYdwcdwjdvXdvtdvsbWhchqduRcdUduSbYWbYVceTbFobXabXbbWQbWQbWQbWQbWQbWQbWQbWRbWSbWQbWQbWQbWQbWQbWQbYIbYEbYhchEbYCbYibYcbYcbYcbYdbXAbXxbXObXBbYYbYcbYcbYXbZhbgZbOjblAcbabgZahlahjahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl +ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahldpXahjciRciSciSciTciUciUciUciUciUciUciUciUciUciUciUciVciXciYciXciZdrvcjbcbHchZcjdcjeaClbCvcjgcjhcjhcjhcjhcjhcjhcjhcjibCvbCvdrqdrldrjdrgciccjncjncjociccjpcpFcpEcpCcpOcpNcjvcmvcjxcjycghcjzcjAdracjCcjDcjEcjHdrbdrdcicahjcbIahjcaMahjcbIahjcaMahjbZqahjbZqahlahlahlahlahlahlahlbWhdvpdvrdvvdwkdvldvodvubWhbXKcjLcjMduTcjObXJbFobSZbWqbCDbgZcgCcgDcgDcgEbgZcgCcgDcgDcgEbgZcgCcgDcgDcgEbgZcpGblAbgZbWKbWwbgZbgZcgCcgEbgZbgZcjTbPdbPbbgZcjUcjVbpWbgZbgZbgZbgZbgZahlahjahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl +ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlaaHahlahjahlahjahjcjWahjahlahjcjWahjahlahjcjWahjahlahlchNchOcjXcjYcjZckacgNbELbELbELbELbCvahlahlahjahlahlahjahlahlahjahlbCvckdbCvcmacmhcicckfckgckhckickjbhAckUckUckUbOHbOKbORckrbhAcghbvCckuclScjCckwcghaJbclRclMcicbOPckzbReckzbOPckzbReckzbOPckAbReckBbOPahlahlahlahlahlahlbWhbUWbUTbTXdwlbWfbUXbUYbWgbUZbUZccPbVabWeccPcnCbCDbCDbCDahlahlahjahlahjahjahlahlahlahlahlahlahlahlahlbgZcnyckEbgZbPbbPdbgZahlahlahlahlbgZblAbPdbPackGckGckHckIckGahlahjahjahjahjahjahjahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlaaHaaHdpXahjahjcdcckJcdeahlcdcckJcdeahlcdcckJcdeahjahjahjahjckKcgNcgNcgNcgNbJibJjbELbELbCvahjahjcjtcjtcjtcjtcjtcjtcjtahjbCvbCvbCvcmBcmxcicckPckhckhckickQckxckxcmwcmjcmqcmicmiciickUcghckWcmQcmJckZclacghclbcmIcmDcicbOPcldcnDclfbOPclgcnXclibOPcljcnYcllbOPahlahlahlahlahlahlbUVbUObUTbUUbXfbXgbXhbXkbWhahjbCDcfKduUcnZcacbCDbCDahlbRJahlahlahlahlahjahlahlahlahlahlahlahlahlahlahlbgZcnUbgZbgZbPibPdbgZbgZcgCcgEbgZbgZblAbPjbPfckGclqclrclsckGahlahlahjahjahlahjahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlcdcckJcdeahjcdcckJcdeahlcdcckJcdeahlahlahlahlahlahlahlahlbCvbCvbCvbXlbELbCvahlahlcjtclFclzclEclzclucjtahlbCvbSYbELcnzcmxcicclAclAclBcicclCclDcmmcnpckbcmFbPAcksckockocghclKcnmcncclNclOclPclQcmScmRcicbOPclTclUclTbOPclVclWclVbOPclXclYclZbOPahlahlahlahlahlahlbWhbYpbYnbYobYlbYmbYjbYkbWhahjahlahjduVahlahlahjahlahlbRJahlahlahlahlahjahjahlahlahlahlahlahlcmccmdcmebgZbJkaDGbgZbPEbPFciCciFciCciCciCciCciGcfRbPDckGcnBcnAcmkckGahlahlahlahlahlahjahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlaGcahlahlahlahlahlahlahl ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahldpXahjcdcckJcdeahlcdcckJcdeahlcdcckJcdeahjahlahlahlahlahlahlahlcgccgdcgcbELbELbCvahlahlcjtcmscmocmncmrcmpcjtahlbCvcegbELcnzcmxcicclAclAclBciccmucmvcmtcnFcnHckVcmAcmvcmzcmAcmvdtocnOcnMcmFcmGcmHcmEckbcnIcicbOPclTcmKclTbOPclVcmLclVbOPclZcmMclZbOPahlahlahlahlahlahlbWhbWhbWhbZrbUQbZmbZobZpbUQahjahlahjcmNahlahlahlahlahlbRJahlahlahlahlahjahjahlahlahlahlahlahjcbnblAcmObgZcphblAbgZbPVbKLbKLbQabKLchEchEchEbPXbPYchKckGcnQcnPcmTckGahlahlahjahlahlahjahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl From faeb2bb8d2602e1f3007c4ccef6752e07fce0f23 Mon Sep 17 00:00:00 2001 From: phil235 Date: Thu, 6 Nov 2014 22:10:36 +0100 Subject: [PATCH 082/102] Adding an ex_act() proc to windoors so they are destroyable with fireballs. Removing some "text(...)" stuff. --- code/game/machinery/doors/windowdoor.dm | 27 ++++++++++++++++++------- 1 file changed, 20 insertions(+), 7 deletions(-) diff --git a/code/game/machinery/doors/windowdoor.dm b/code/game/machinery/doors/windowdoor.dm index fa3d6098f00..a704e59c492 100644 --- a/code/game/machinery/doors/windowdoor.dm +++ b/code/game/machinery/doors/windowdoor.dm @@ -43,13 +43,13 @@ if(src.check_access(bot.botcard)) open_and_close() else - flick(text("[]deny", src.base_state), src) + flick("[src.base_state]deny", src) else if(istype(AM, /obj/mecha)) var/obj/mecha/mecha = AM if(mecha.occupant && src.allowed(mecha.occupant)) open_and_close() else - flick(text("[]deny", src.base_state), src) + flick("[src.base_state]deny", src) return if (!( ticker )) return @@ -68,7 +68,7 @@ if(allowed(user)) open_and_close() else - flick(text("[]deny", src.base_state), src) + flick("[src.base_state]deny", src) return /obj/machinery/door/window/CanPass(atom/movable/mover, turf/target, height=0) @@ -110,9 +110,9 @@ return 0 if(!src.operating) //in case of emag src.operating = 1 - flick(text("[]opening", src.base_state), src) + flick("[src.base_state]opening", src) playsound(src.loc, 'sound/machines/windowdoor.ogg', 100, 1) - src.icon_state = text("[]open", src.base_state) + src.icon_state ="[src.base_state]open" sleep(10) explosion_resistance = 0 @@ -135,7 +135,7 @@ if(emagged) return 0 src.operating = 1 - flick(text("[]closing", src.base_state), src) + flick("[src.base_state]closing", src) playsound(src.loc, 'sound/machines/windowdoor.ogg', 100, 1) src.icon_state = src.base_state @@ -165,6 +165,19 @@ qdel(src) return +/obj/machinery/door/window/ex_act(severity) + switch(severity) + if(1.0) + qdel(src) + if(2.0) + if(prob(25)) + qdel(src) + else + take_damage(120) + if(3.0) + take_damage(60) + + /obj/machinery/door/window/bullet_act(var/obj/item/projectile/Proj) if(Proj.damage) if((Proj.damage_type == BRUTE || Proj.damage_type == BURN)) @@ -343,7 +356,7 @@ close() else if (src.density) - flick(text("[]deny", src.base_state), src) + flick("[src.base_state]deny", src) return From ed1898e4dfcb90aa19447697de976b4ee66937a0 Mon Sep 17 00:00:00 2001 From: Aranclanos Date: Thu, 6 Nov 2014 18:16:17 -0300 Subject: [PATCH 083/102] Uniform overlays will now be blocked from showing if the exosuit has the flag HIDEJUMPSUIT, preventing the own and clown suit from sticking out of spacesuit and others. Fixes issue #3881 --- code/modules/mob/living/carbon/human/inventory.dm | 4 ++++ code/modules/mob/living/carbon/human/update_icons.dm | 3 +++ 2 files changed, 7 insertions(+) diff --git a/code/modules/mob/living/carbon/human/inventory.dm b/code/modules/mob/living/carbon/human/inventory.dm index b6fac989d28..c08ffd36903 100644 --- a/code/modules/mob/living/carbon/human/inventory.dm +++ b/code/modules/mob/living/carbon/human/inventory.dm @@ -247,6 +247,8 @@ if(s_store) unEquip(s_store, 1) //It makes no sense for your suit storage to stay on you if you drop your suit. wear_suit = null + if(I.flags_inv & HIDEJUMPSUIT) + update_inv_w_uniform() update_inv_wear_suit(0) else if(I == w_uniform) if(r_store) @@ -366,6 +368,8 @@ update_inv_shoes(redraw_mob) if(slot_wear_suit) wear_suit = I + if(I.flags_inv & HIDEJUMPSUIT) + update_inv_w_uniform() update_inv_wear_suit(redraw_mob) if(slot_w_uniform) w_uniform = I diff --git a/code/modules/mob/living/carbon/human/update_icons.dm b/code/modules/mob/living/carbon/human/update_icons.dm index 05495f92eeb..388891c2187 100644 --- a/code/modules/mob/living/carbon/human/update_icons.dm +++ b/code/modules/mob/living/carbon/human/update_icons.dm @@ -272,6 +272,9 @@ Please contact me on #coderbus IRC. ~Carnie x w_uniform.screen_loc = ui_iclothing //...draw the item in the inventory screen client.screen += w_uniform //Either way, add the item to the HUD + if(wear_suit && (wear_suit.flags_inv & HIDEJUMPSUIT)) + return + var/t_color = w_uniform.item_color if(!t_color) t_color = icon_state var/image/standing = image("icon"='icons/mob/uniform.dmi', "icon_state"="[t_color]_s", "layer"=-UNIFORM_LAYER) From deb5884a192a3ca211f92c8a1037dbe9f16db578 Mon Sep 17 00:00:00 2001 From: MrPerson Date: Thu, 6 Nov 2014 16:41:21 -0800 Subject: [PATCH 084/102] Singularity tweaks Fix an off-by-one error that caused the singulo to get stuck along contaiment fields. For a 5x5 singulo, it would check 6 squares ahead (correct for a step forward) and then 6 squares to the sides (incorrect). Now it tests 6 squares ahead, 5 to the sides. This is technically wrong for the growth checks but they check every direction anyways, so it's ok. Made the singularity drift in all cases and not stop next to lattices. In process(), moved the growth checks after the movement attempt so it will take a step and then grow rather than take a step, drift into the walls, and then attempt and fail to grow as part of the next process(). --- code/modules/power/singularity/singularity.dm | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/code/modules/power/singularity/singularity.dm b/code/modules/power/singularity/singularity.dm index 17d92a8e8bd..5b585786bd0 100644 --- a/code/modules/power/singularity/singularity.dm +++ b/code/modules/power/singularity/singularity.dm @@ -53,6 +53,8 @@ consume(user) return 1 +/obj/machinery/singularity/Process_Spacemove() //The singularity stops drifting for no man! + return 0 /obj/machinery/singularity/blob_act(severity) return @@ -88,15 +90,15 @@ /obj/machinery/singularity/process() - eat() - dissipate() - check_energy() - if(current_size >= STAGE_TWO) move() pulse() if(prob(event_chance))//Chance for it to run a special event TODO:Come up with one or two more that fit event() + eat() + dissipate() + check_energy() + return @@ -278,12 +280,12 @@ dir2 = 1 dir3 = 2 var/turf/T2 = T - for(var/j = 1 to steps) + for(var/j = 1 to steps-1) T2 = get_step(T2,dir2) if(!isturf(T2)) return 0 turfs.Add(T2) - for(var/k = 1 to steps) + for(var/k = 1 to steps-1) T = get_step(T,dir3) if(!isturf(T)) return 0 From d56698f99101a2973dda06b374dc55c9c79faab1 Mon Sep 17 00:00:00 2001 From: Aranclanos Date: Thu, 6 Nov 2014 23:45:16 -0300 Subject: [PATCH 085/102] Exosuit fabricator revamp Exosuits will now use the designs from RnD to create objects instead of having the object already created on their contents. Each one of the default items to build are now designs. Removed access required to use the exosuit fabricators. Removed an unused mech syringe gun design and replaced with a new one, with no cost. Added a temporal object, /obj/item/mechavars, to be able to use initalize() for the construction time. This will be later on removed and the construction time will be ported to the design datums. Some minors issues are still present, due to the amount of files needed to fix these, it won't be part of this commit, but a future one. Fixes issue #3893 Removed required access to access the setting controls of the RnD console. --- code/defines/obj/weapon.dm | 2 +- code/game/mecha/mech_fabricator.dm | 720 ++++++------------ .../modules/research/designs/mecha_designs.dm | 9 - code/modules/research/rdconsole.dm | 5 +- 4 files changed, 239 insertions(+), 497 deletions(-) diff --git a/code/defines/obj/weapon.dm b/code/defines/obj/weapon.dm index e5b26cc3038..579ed496f01 100644 --- a/code/defines/obj/weapon.dm +++ b/code/defines/obj/weapon.dm @@ -497,4 +497,4 @@ icon = 'icons/obj/stock_parts.dmi' icon_state = "capacitor" desc = "A debug item for research." - origin_tech = "materials=8;programming=8;magnets=8;powerstorage=8;bluespace=8;combat=8;biotech=8;syndicate=8" + origin_tech = "materials=8;programming=8;magnets=8;powerstorage=8;bluespace=8;combat=8;biotech=8;syndicate=8;engineering=8;plasmatech=8" diff --git a/code/game/mecha/mech_fabricator.dm b/code/game/mecha/mech_fabricator.dm index 5e844cdcdf7..51124e20590 100644 --- a/code/game/mecha/mech_fabricator.dm +++ b/code/game/mecha/mech_fabricator.dm @@ -1,7 +1,3 @@ -///////////////////////////// -///// Part Fabricator /////// -///////////////////////////// - /obj/machinery/mecha_part_fabricator icon = 'icons/obj/robotics.dmi' icon_state = "fab-idle" @@ -18,129 +14,37 @@ var/time_coeff_tech = 1 var/resource_coeff_tech = 1 var/list/resources = list( - "metal"=0, - "glass"=0, - "bananium"=0, - "diamond"=0, - "gold"=0, - "plasma"=0, - "silver"=0, - "uranium"=0 - ) + "$metal"=0, + "$glass"=0, + "$bananium"=0, + "$diamond"=0, + "$gold"=0, + "$plasma"=0, + "$silver"=0, + "$uranium"=0 + ) var/res_max_amount = 200000 var/datum/research/files var/id var/sync = 0 var/part_set - var/obj/being_built + var/datum/design/being_built var/list/queue = list() var/processing_queue = 0 var/screen = "main" var/temp - var/list/part_sets = list( //set names must be unique - "Cyborg"=list( - /obj/item/robot_parts/robot_suit, - /obj/item/robot_parts/chest, - /obj/item/robot_parts/head, - /obj/item/robot_parts/l_arm, - /obj/item/robot_parts/r_arm, - /obj/item/robot_parts/l_leg, - /obj/item/robot_parts/r_leg - ), - "Ripley"=list( - /obj/item/mecha_parts/chassis/ripley, - /obj/item/mecha_parts/chassis/firefighter, - /obj/item/mecha_parts/part/ripley_torso, - /obj/item/mecha_parts/part/ripley_left_arm, - /obj/item/mecha_parts/part/ripley_right_arm, - /obj/item/mecha_parts/part/ripley_left_leg, - /obj/item/mecha_parts/part/ripley_right_leg - ), - "Odysseus"=list( - /obj/item/mecha_parts/chassis/odysseus, - /obj/item/mecha_parts/part/odysseus_torso, - /obj/item/mecha_parts/part/odysseus_head, - /obj/item/mecha_parts/part/odysseus_left_arm, - /obj/item/mecha_parts/part/odysseus_right_arm, - /obj/item/mecha_parts/part/odysseus_left_leg, - /obj/item/mecha_parts/part/odysseus_right_leg - ), - - "Gygax"=list( - /obj/item/mecha_parts/chassis/gygax, - /obj/item/mecha_parts/part/gygax_torso, - /obj/item/mecha_parts/part/gygax_head, - /obj/item/mecha_parts/part/gygax_left_arm, - /obj/item/mecha_parts/part/gygax_right_arm, - /obj/item/mecha_parts/part/gygax_left_leg, - /obj/item/mecha_parts/part/gygax_right_leg, - /obj/item/mecha_parts/part/gygax_armor - ), - "Durand"=list( - /obj/item/mecha_parts/chassis/durand, - /obj/item/mecha_parts/part/durand_torso, - /obj/item/mecha_parts/part/durand_head, - /obj/item/mecha_parts/part/durand_left_arm, - /obj/item/mecha_parts/part/durand_right_arm, - /obj/item/mecha_parts/part/durand_left_leg, - /obj/item/mecha_parts/part/durand_right_leg, - /obj/item/mecha_parts/part/durand_armor - ), - "H.O.N.K"=list( - /obj/item/mecha_parts/chassis/honker, - /obj/item/mecha_parts/part/honker_torso, - /obj/item/mecha_parts/part/honker_head, - /obj/item/mecha_parts/part/honker_left_arm, - /obj/item/mecha_parts/part/honker_right_arm, - /obj/item/mecha_parts/part/honker_left_leg, - /obj/item/mecha_parts/part/honker_right_leg - ), - "Phazon"=list( - /obj/item/mecha_parts/chassis/phazon, - /obj/item/mecha_parts/part/phazon_torso, - /obj/item/mecha_parts/part/phazon_head, - /obj/item/mecha_parts/part/phazon_left_arm, - /obj/item/mecha_parts/part/phazon_right_arm, - /obj/item/mecha_parts/part/phazon_left_leg, - /obj/item/mecha_parts/part/phazon_right_leg, - /obj/item/mecha_parts/part/phazon_armor - ), - "Exosuit Equipment"=list( - /obj/item/mecha_parts/mecha_equipment/tool/hydraulic_clamp, - /obj/item/mecha_parts/mecha_equipment/tool/drill, - /obj/item/mecha_parts/mecha_equipment/tool/extinguisher, - /obj/item/mecha_parts/mecha_equipment/tool/cable_layer, - /obj/item/mecha_parts/mecha_equipment/tool/sleeper, - /obj/item/mecha_parts/mecha_equipment/tool/syringe_gun, - /obj/item/mecha_parts/mecha_equipment/repair_droid, - /obj/item/mecha_parts/mecha_equipment/generator, - ///obj/item/mecha_parts/mecha_equipment/jetpack, //TODO MECHA JETPACK SPRITE MISSING - /obj/item/mecha_parts/mecha_equipment/weapon/energy/taser, - /obj/item/mecha_parts/mecha_equipment/weapon/ballistic/lmg, - /obj/item/mecha_parts/mecha_equipment/weapon/ballistic/missile_rack/mousetrap_mortar, - /obj/item/mecha_parts/mecha_equipment/weapon/ballistic/missile_rack/banana_mortar, - /obj/item/mecha_parts/mecha_equipment/weapon/honker - ), - - "Cyborg Upgrade Modules" = list( - /obj/item/borg/upgrade/reset, - /obj/item/borg/upgrade/rename, - /obj/item/borg/upgrade/restart, - /obj/item/borg/upgrade/vtec, - /obj/item/borg/upgrade/tasercooler, - /obj/item/borg/upgrade/jetpack - ), - - - - - - - "Misc"=list(/obj/item/mecha_parts/mecha_tracking) - ) - - - + var/list/part_sets = list( + "Cyborg", + "Ripley", + "Odysseus", + "Gygax", + "Durand", + "H.O.N.K", + "Phazon", + "Exosuit Equipment", + "Cyborg Upgrade Modules", + "Misc" + ) /obj/machinery/mecha_part_fabricator/New() ..() @@ -152,19 +56,7 @@ component_parts += new /obj/item/weapon/stock_parts/micro_laser(null) component_parts += new /obj/item/weapon/stock_parts/console_screen(null) RefreshParts() - - // part_sets["Cyborg Upgrade Modules"] = typesof(/obj/item/borg/upgrade/) - /obj/item/borg/upgrade/ // Eh. This does it dymaically, but to support having the items referenced otherwhere in the code but not being constructable, going to do it manaully. - - for(var/part_set in part_sets) - convert_part_set(part_set) files = new /datum/research(src) //Setup the research data holder. - /* - if(!id) - for(var/obj/machinery/r_n_d/server/centcom/S in world) - S.initialize() - break - */ - return /obj/machinery/mecha_part_fabricator/RefreshParts() var/T = 0 @@ -187,25 +79,6 @@ if(time_coeff!=diff) time_coeff = diff -/obj/machinery/mecha_part_fabricator/Destroy() - for(var/atom/A in src) - qdel(A) - ..() - return - -/obj/machinery/mecha_part_fabricator/proc/operation_allowed(mob/M) - if(isrobot(M) || isAI(M)) - return 1 - if(!istype(req_access) || !req_access.len) - return 1 - else if(istype(M, /mob/living/carbon/human)) - var/mob/living/carbon/human/H = M - for(var/ID in list(H.get_active_hand(), H.wear_id, H.belt)) - if(src.check_access(ID)) - return 1 - M << "You don't have the required permissions to use \the [src]!" - return 0 - /obj/machinery/mecha_part_fabricator/check_access(obj/item/weapon/card/id/I) if(istype(I, /obj/item/device/pda)) var/obj/item/device/pda/pda = I @@ -218,119 +91,55 @@ return 1 /obj/machinery/mecha_part_fabricator/proc/emag() - sleep() switch(emagged) if(0) emagged = 0.5 - src.visible_message("\icon[src] \The [src] beeps: \"DB error \[Code 0x00F1\]\"") + visible_message("\icon[src] \The [src] beeps: \"DB error \[Code 0x00F1\]\"") sleep(10) - src.visible_message("\icon[src] \The [src] beeps: \"Attempting auto-repair\"") + visible_message("\icon[src] \The [src] beeps: \"Attempting auto-repair\"") sleep(15) - src.visible_message("\icon[src] \The [src] beeps: \"User DB corrupted \[Code 0x00FA\]. Truncating data structure...\"") + visible_message("\icon[src] \The [src] beeps: \"User DB corrupted \[Code 0x00FA\]. Truncating data structure...\"") sleep(30) - src.visible_message("\icon[src] \The [src] beeps: \"User DB truncated. Please contact your Nanotrasen system operator for future assistance.\"") + visible_message("\icon[src] \The [src] beeps: \"User DB truncated. Please contact your Nanotrasen system operator for future assistance.\"") req_access = null emagged = 1 if(0.5) - src.visible_message("\icon[src] \The [src] beeps: \"DB not responding \[Code 0x0003\]...\"") + visible_message("\icon[src] \The [src] beeps: \"DB not responding \[Code 0x0003\]...\"") if(1) - src.visible_message("\icon[src] \The [src] beeps: \"No records in User DB\"") + visible_message("\icon[src] \The [src] beeps: \"No records in User DB\"") return - -/obj/machinery/mecha_part_fabricator/proc/convert_part_set(set_name as text) - var/list/parts = part_sets[set_name] - if(istype(parts, /list)) - for(var/i=1;i<=parts.len;i++) - var/path = parts[i] - var/part = new path(src) - if(part) - parts[i] = part - //debug below - if(!istype(parts[i],/obj/item)) return 0 - return - - -/obj/machinery/mecha_part_fabricator/proc/add_part_set(set_name as text,parts=null) - if(set_name in part_sets)//attempt to create duplicate set +/* +/obj/machinery/mecha_part_fabricator/proc/add_part_to_set(set_name, part) + if(!part) return 0 - if(isnull(parts)) + if(!set_name in part_sets)//attempt to create duplicate set part_sets[set_name] = list() - else - part_sets[set_name] = parts - convert_part_set(set_name) + part_sets[set_name] += part return 1 - -/obj/machinery/mecha_part_fabricator/proc/add_part_to_set(set_name as text,part) - if(!part) return 0 - src.add_part_set(set_name)//if no "set_name" set exists, create - var/list/part_set = part_sets[set_name] - var/atom/apart - if(ispath(part)) - apart = new part(src) - else - apart = part - if(!istype(apart)) return 0 - for(var/obj/O in part_set) - if(O.type == apart.type) - qdel(apart) - return 0 - part_set[++part_set.len] = apart - return 1 - -/obj/machinery/mecha_part_fabricator/proc/remove_part_set(set_name as text) - for(var/i=1,i<=part_sets.len,i++) - if(part_sets[i]==set_name) - part_sets.Cut(i,++i) - return -/* - proc/sanity_check() - for(var/p in resources) - var/index = resources.Find(p) - index = resources.Find(p, ++index) - if(index) //duplicate resource - world << "Duplicate resource definition for [src](\ref[src])" - return 0 - for(var/set_name in part_sets) - var/index = part_sets.Find(set_name) - index = part_sets.Find(set_name, ++index) - if(index) //duplicate part set - world << "Duplicate part set definition for [src](\ref[src])" - return 0 - return 1 */ -/* - New() - ..() - src.add_part_to_set("Test",list("result"="/obj/item/mecha_parts/part/gygax_armor","time"=600,"metal"=75000,"diamond"=10000)) - src.add_part_to_set("Test",list("result"="/obj/item/mecha_parts/part/ripley_left_arm","time"=200,"metal"=25000)) - src.remove_part_set("Gygax") - return -*/ - /obj/machinery/mecha_part_fabricator/proc/output_parts_list(set_name) var/output = "" - var/list/part_set = listgetindex(part_sets, set_name) - if(istype(part_set)) - for(var/obj/item/part in part_set) - var/resources_available = check_resources(part) - output += "
    [output_part_info(part)]
    \[[resources_available?"Build | ":null]Add to queue\]\[?\]
    " + for(var/datum/design/D in files.known_designs) + if(D.build_type&16) + if(D.category != set_name) + continue + var/resources_available = check_resources(D) + output += "
    [output_part_info(D)]
    \[[resources_available?"Build | ":null]Add to queue\]\[?\]
    " return output -/obj/machinery/mecha_part_fabricator/proc/output_part_info(var/obj/item/part) - var/output = "[part.name] (Cost: [output_part_cost(part)]) [get_construction_time_w_coeff(part)/10]sec" +/obj/machinery/mecha_part_fabricator/proc/output_part_info(datum/design/D) + var/obj/part = D.build_path + var/output = "[initial(part.name)] (Cost: [output_part_cost(D)]) [get_construction_time_w_coeff(part)/10]sec" return output -/obj/machinery/mecha_part_fabricator/proc/output_part_cost(var/obj/item/part) +/obj/machinery/mecha_part_fabricator/proc/output_part_cost(datum/design/D) var/i = 0 var/output - if(hasvar(part, "construction_time") && hasvar(part, "construction_cost"))//The most efficient way to go about this. Not all objects have these vars, but if they don't then they CANNOT be made by the mech fab. Doing it this way reduces a major amount of typecasting and switches, while cutting down maintenece for them as well -Sieve - for(var/c in part:construction_cost)//The check should ensure that anything without the var doesn't make it to this point - if(c in resources) - output += "[i?" | ":null][get_resource_cost_w_coeff(part,c)] [c]" - i++ - return output - else - return 0 + for(var/c in D.materials) + if(c in resources) + output += "[i?" | ":null][get_resource_cost_w_coeff(D,c)] [c]" + i++ + return output /obj/machinery/mecha_part_fabricator/proc/output_available_resources() var/output @@ -342,70 +151,62 @@ output += "
    " return output -/obj/machinery/mecha_part_fabricator/proc/remove_resources(var/obj/item/part) -//Be SURE to add any new equipment to this switch, but don't be suprised if it spits out children objects - if(hasvar(part, "construction_time") && hasvar(part, "construction_cost")) - for(var/resource in part:construction_cost) - if(resource in src.resources) - src.resources[resource] -= get_resource_cost_w_coeff(part,resource) - else - return +/obj/machinery/mecha_part_fabricator/proc/remove_resources(datum/design/D) + for(var/resource in D.materials) + if(resource in resources) + resources[resource] -= get_resource_cost_w_coeff(D,resource) -/obj/machinery/mecha_part_fabricator/proc/check_resources(var/obj/item/part) -// if(istype(part, /obj/item/robot_parts) || istype(part, /obj/item/mecha_parts) || istype(part,/obj/item/borg/upgrade)) -//Be SURE to add any new equipment to this switch, but don't be suprised if it spits out children objects - if(hasvar(part, "construction_time") && hasvar(part, "construction_cost")) - for(var/resource in part:construction_cost) - if(resource in src.resources) - if(src.resources[resource] < get_resource_cost_w_coeff(part,resource)) - return 0 - return 1 - else - return 0 +/obj/item/mechavars //until these values are extracted from the design datum (most objects on the mech fabricators don't have these), this is necessary, to make the initial() work. + var/construction_time -/obj/machinery/mecha_part_fabricator/proc/build_part(var/obj/item/part) - if(!part) return +/obj/machinery/mecha_part_fabricator/proc/check_resources(datum/design/D) + for(var/R in D.materials) + if(R in resources) + if(resources[R] < get_resource_cost_w_coeff(D, R)) + return 0 + else + return 0 + return 1 - // critical exploit prevention, do not remove unless you replace it - if( (part.loc != src) || !(hasvar(part, "construction_time")) || !(hasvar(part, "construction_cost")) ) // these 3 are the current requirements for an object being buildable by the mech_fabricator - return - - src.being_built = new part.type(src) - src.desc = "It's building \a [src.being_built]." - src.remove_resources(part) - part.m_amt = get_resource_cost_w_coeff(part,"metal") - part.g_amt = get_resource_cost_w_coeff(part,"glass") - src.overlays += "fab-active" - src.use_power = 2 - src.updateUsrDialog() +/obj/machinery/mecha_part_fabricator/proc/build_part(datum/design/D) + var/obj/part = D.build_path + being_built = D + desc = "It's building \a [initial(part.name)]." + remove_resources(D) + overlays += "fab-active" + use_power = 2 + updateUsrDialog() sleep(get_construction_time_w_coeff(part)) - src.use_power = 1 - src.overlays -= "fab-active" - src.desc = initial(src.desc) - if(being_built) - src.being_built.loc = get_step(src,SOUTH) - src.visible_message("\icon[src] \The [src] beeps, \"\The [src.being_built] is complete.\"") - src.being_built = null - src.updateUsrDialog() + use_power = 1 + overlays -= "fab-active" + desc = initial(desc) + + var/obj/item/I = new D.build_path + I.loc = get_step(src,SOUTH) + I.m_amt = get_resource_cost_w_coeff(D,"$metal") + I.g_amt = get_resource_cost_w_coeff(D,"$glass") + visible_message("\icon[src] \The [src] beeps, \"\The [I] is complete.\"") + being_built = null + + updateUsrDialog() return 1 /obj/machinery/mecha_part_fabricator/proc/update_queue_on_page() - send_byjax(usr,"mecha_fabricator.browser","queue",src.list_queue()) + send_byjax(usr,"mecha_fabricator.browser","queue",list_queue()) return /obj/machinery/mecha_part_fabricator/proc/add_part_set_to_queue(set_name) if(set_name in part_sets) - var/list/part_set = part_sets[set_name] - if(islist(part_set)) - for(var/obj/item/part in part_set) - add_to_queue(part) - return + for(var/datum/design/D in files.known_designs) + if(D.build_type&16) + if(D.category == set_name) + add_to_queue(D) -/obj/machinery/mecha_part_fabricator/proc/add_to_queue(part) +/obj/machinery/mecha_part_fabricator/proc/add_to_queue(D) if(!istype(queue)) queue = list() - if(part) - queue[++queue.len] = part + if(D) + queue[++queue.len] = D return queue.len /obj/machinery/mecha_part_fabricator/proc/remove_from_queue(index) @@ -415,30 +216,26 @@ return 1 /obj/machinery/mecha_part_fabricator/proc/process_queue() - var/obj/item/part = listgetindex(src.queue, 1) - if(!part) + var/datum/design/D = queue[1] + if(!D) remove_from_queue(1) - if(src.queue.len) + if(queue.len) return process_queue() else return - if(!(hasvar(part, "construction_time")) || !(hasvar(part, "construction_cost")))//If it shouldn't be printed - remove_from_queue(1)//Take it out of the quene - return process_queue()//Then reprocess it temp = null - while(part) + while(D) if(stat&(NOPOWER|BROKEN)) return 0 - if(!check_resources(part)) - src.visible_message("\icon[src] \The [src] beeps, \"Not enough resources. Queue processing stopped.\"") + if(!check_resources(D)) + visible_message("\icon[src] \The [src] beeps, \"Not enough resources. Queue processing stopped.\"") temp = {"Not enough resources to build next part.
    Try again | Return"} return 0 remove_from_queue(1) - build_part(part) - part = listgetindex(src.queue, 1) - src.visible_message("\icon[src] \The [src] beeps, \"Queue processing finished successfully.\"") - return 1 + build_part(D) + D = listgetindex(queue, 1) + visible_message("\icon[src] \The [src] beeps, \"Queue processing finished successfully.\"") /obj/machinery/mecha_part_fabricator/proc/list_queue() var/output = "Queue contains:" @@ -446,31 +243,29 @@ output += "
    Nothing" else output += "
      " - for(var/i=1;i<=queue.len;i++) - var/obj/item/part = listgetindex(src.queue, i) - if(istype(part)) - if(hasvar(part, "construction_time") && hasvar(part, "construction_cost")) - output += "[part.name] - [i>1?"":null] [i↓":null] Remove" - else//Prevents junk items from even appearing in the list, and they will be silently removed when the fab processes - remove_from_queue(i)//Trash it - return list_queue()//Rebuild it + var/i = 0 + for(var/datum/design/D in queue) + i++ + var/obj/part = D.build_path + output += "[initial(part.name)] - [i>1?"":null] [i↓":null] Remove" + output += "
    " output += "\[Process queue | Clear queue\]" return output - +/* /obj/machinery/mecha_part_fabricator/proc/convert_designs() if(!files) return var/i = 0 for(var/datum/design/D in files.known_designs) if(D.build_type&16) if(D.category in part_sets)//Checks if it's a valid category - if(add_part_to_set(D.category, D.build_path))//Adds it to said category + if(add_part_to_set(D.category, D))//Adds it to said category i++ else - if(add_part_to_set("Misc", D.build_path))//If in doubt, chunk it into the Misc + if(add_part_to_set("Misc", D))//If in doubt, chunk it into the Misc i++ return i - +*/ /obj/machinery/mecha_part_fabricator/proc/update_tech() if(!files) return var/output @@ -501,17 +296,10 @@ return output -/obj/machinery/mecha_part_fabricator/proc/sync(silent=null) -/* if(queue.len) - if(!silent) - temp = "Error. Please clear processing queue before updating!" - src.updateUsrDialog() - return -*/ - if(!silent) - temp = "Updating local R&D database..." - src.updateUsrDialog() - sleep(30) //only sleep if called by user +/obj/machinery/mecha_part_fabricator/proc/sync() + temp = "Updating local R&D database..." + updateUsrDialog() + sleep(30) //only sleep if called by user var/found = 0 for(var/obj/machinery/computer/rdconsole/RDC in area_contents(get_area(src))) @@ -523,36 +311,25 @@ for(var/datum/design/D in RDC.files.known_designs) files.AddDesign2Known(D) files.RefreshResearch() - var/i = src.convert_designs() - var/tech_output = update_tech() - if(!silent) - temp = "Processed [i] equipment designs.
    " - temp += tech_output - temp += "Return" - src.updateUsrDialog() - if(i || tech_output) - src.visible_message("\icon[src] \The [src] beeps, \"Successfully synchronized with R&D server. New data processed.\"") - if(!silent && !found) + //var/i = convert_designs() aran + //var/tech_output = update_tech() + temp = "Processed equipment designs.
    " + //temp += tech_output + temp += "Return" + updateUsrDialog() + //if(i || tech_output) + visible_message("\icon[src] \The [src] beeps, \"Successfully synchronized with R&D server.\"") + if(!found) temp = "Unable to connect to local R&D Database.
    Please check your connections and try again.
    Return" - src.updateUsrDialog() + updateUsrDialog() return -/obj/machinery/mecha_part_fabricator/proc/get_resource_cost_w_coeff(var/obj/item/part as obj,var/resource as text, var/roundto=1) -//Be SURE to add any new equipment to this switch, but don't be suprised if it spits out children objects - if(hasvar(part, "construction_time") && hasvar(part, "construction_cost")) - var/list/L = part_sets["Misc"] - if(L.Find(part.type)) - return round(part:construction_cost[resource]*(resource_coeff/2)*resource_coeff_tech, roundto) //hacky scary skeletons send shivers down your spine - return round(part:construction_cost[resource]*resource_coeff*resource_coeff_tech, roundto) - else - return 0 +/obj/machinery/mecha_part_fabricator/proc/get_resource_cost_w_coeff(datum/design/D, resource, roundto = 1) + return round(D.materials[resource]*resource_coeff*resource_coeff_tech, roundto) -/obj/machinery/mecha_part_fabricator/proc/get_construction_time_w_coeff(var/obj/item/part as obj, var/roundto=1) -//Be SURE to add any new equipment to this switch, but don't be suprised if it spits out children objects - if(hasvar(part, "construction_time") && hasvar(part, "construction_cost")) - return round(part:construction_time*time_coeff*time_coeff_tech, roundto) - else - return 0 +/obj/machinery/mecha_part_fabricator/proc/get_construction_time_w_coeff(P, roundto = 1) //aran + var/obj/item/mechavars/part = P + return round(initial(part.construction_time)*time_coeff*time_coeff_tech, roundto) /obj/machinery/mecha_part_fabricator/attack_hand(mob/user) if(!(..())) @@ -562,17 +339,16 @@ var/dat, left_part if (..()) return - if(!operation_allowed(user)) - return user.set_machine(src) var/turf/exit = get_step(src,SOUTH) if(exit.density) - src.visible_message("\icon[src] \The [src] beeps, \"Error! Part outlet is obstructed.\"") + visible_message("\icon[src] \The [src] beeps, \"Error! Part outlet is obstructed.\"") return if(temp) left_part = temp - else if(src.being_built) - left_part = {"Building [src.being_built.name].
    + else if(being_built) + var/obj/I = being_built.build_path + left_part = {"Building [initial(I.name)].
    Please wait until completion...
    "} else switch(screen) @@ -586,7 +362,7 @@ left_part += "
    Return" dat = {" - [src.name] + [name]