From b96b3c6b9b8f4f1864b01f4812837f5074829144 Mon Sep 17 00:00:00 2001 From: Heroman3003 Date: Tue, 13 Mar 2018 19:36:06 +1000 Subject: [PATCH 01/24] Slime behavior fixes and tweaks --- .../mob/living/simple_animal/slime/ai.dm | 41 ++++++++++++++++++- .../mob/living/simple_animal/slime/life.dm | 26 +++++++----- .../mob/living/simple_animal/slime/slime.dm | 9 ++-- .../living/simple_animal/slime/subtypes.dm | 2 +- 4 files changed, 62 insertions(+), 16 deletions(-) diff --git a/code/modules/mob/living/simple_animal/slime/ai.dm b/code/modules/mob/living/simple_animal/slime/ai.dm index b35ebb6e03..3a8718c997 100644 --- a/code/modules/mob/living/simple_animal/slime/ai.dm +++ b/code/modules/mob/living/simple_animal/slime/ai.dm @@ -5,9 +5,46 @@ return ..() +/mob/living/simple_animal/slime/Found(mob/living/L) + if(isliving(L)) + if(SA_attackable(L)) + if(L.faction == faction && !attack_same) + if(ishuman(L)) + var/mob/living/carbon/human/H = L + if(istype(H.species, /datum/species/monkey)) // istype() is so they'll eat the alien monkeys too. + return H // Monkeys are always food. + else + return + + if(L in friends) + return + + if(istype(L, /mob/living/simple_animal/slime)) + var/mob/living/simple_animal/slime/buddy = L + if(buddy.slime_color == src.slime_color || discipline || unity || buddy.unity) + return // Don't hurt same colored slimes. + else + return buddy //do hurt others + + if(ishuman(L)) + var/mob/living/carbon/human/H = L + if(istype(H.species, /datum/species/monkey)) // istype() is so they'll eat the alien monkeys too. + return H // Monkeys are always food. + + if(issilicon(L) || isbot(L)) + if(discipline && !rabid) + return // We're a good slime. For now at least. + return + return + /mob/living/simple_animal/slime/special_target_check(mob/living/L) - if(L.faction == faction && !attack_same) - return FALSE + if(L.faction == faction && !attack_same && !istype(L, /mob/living/simple_animal/slime)) + if(ishuman(L)) + var/mob/living/carbon/human/H = L + if(istype(H.species, /datum/species/monkey)) // istype() is so they'll eat the alien monkeys too. + return TRUE // Monkeys are always food. + else + return FALSE if(L in friends) return FALSE diff --git a/code/modules/mob/living/simple_animal/slime/life.dm b/code/modules/mob/living/simple_animal/slime/life.dm index 21e7c62820..691b880574 100644 --- a/code/modules/mob/living/simple_animal/slime/life.dm +++ b/code/modules/mob/living/simple_animal/slime/life.dm @@ -112,6 +112,11 @@ if(!speaker.client) return + //Are all slimes being referred to? + var/mass_order = 0 + if(findtext(message, "slimes")) + mass_order = 1 + // Say hello back. if(findtext(message, "hello") || findtext(message, "hi") || findtext(message, "greetings")) delayed_say(pick("Hello...", "Hi..."), speaker) @@ -165,13 +170,14 @@ var/list/valid_names = splittext(L.name, " ") // Should output list("John", "Doe") as an example. for(var/line in valid_names) // Check each part of someone's name. if(findtext(message, lowertext(line))) // If part of someone's name is in the command, the slime targets them if allowed to. - if(special_target_check(L)) - delayed_say("Okay... I attack \the [L]...", speaker) - LoseFollow() - set_target(L) - return - else - delayed_say("No... I won't attack \the [L].", speaker) - return - // If we're here, it couldn't find anyone with that name. - delayed_say("No... I don't know who to attack...", speaker) + if(!(mass_order && line == "slime")) //don't think random other slimes are target + if(special_target_check(L)) + delayed_say("Okay... I attack \the [L]...", speaker) + LoseFollow() + set_target(L, 1) + return + else + delayed_say("No... I won't attack \the [L].", speaker) + return + // If we're here, it couldn't find anyone with that name. + delayed_say("No... I don't know who to attack...", speaker) diff --git a/code/modules/mob/living/simple_animal/slime/slime.dm b/code/modules/mob/living/simple_animal/slime/slime.dm index 93b1f0e9c6..219074dc6c 100644 --- a/code/modules/mob/living/simple_animal/slime/slime.dm +++ b/code/modules/mob/living/simple_animal/slime/slime.dm @@ -356,10 +356,13 @@ baby.mutation_chance = mutation_chance baby.power_charge = round(power_charge / 4) baby.resentment = max(resentment - 1, 0) - baby.discipline = max(discipline - 1, 0) - baby.obedience = max(obedience - 1, 0) - baby.unity = unity + if(!istype(baby, /mob/living/simple_animal/slime/light_pink)) + baby.discipline = max(discipline - 1, 0) + baby.obedience = max(obedience - 1, 0) + if(!istype(baby, /mob/living/simple_animal/slime/rainbow)) + baby.unity = unity baby.faction = faction + baby.attack_same = attack_same baby.friends = friends.Copy() if(rabid) baby.enrage() diff --git a/code/modules/mob/living/simple_animal/slime/subtypes.dm b/code/modules/mob/living/simple_animal/slime/subtypes.dm index 486c04866f..d30bdf0d7d 100644 --- a/code/modules/mob/living/simple_animal/slime/subtypes.dm +++ b/code/modules/mob/living/simple_animal/slime/subtypes.dm @@ -120,7 +120,7 @@ /mob/living/simple_animal/slime/dark_purple desc = "This slime produces ever-coveted phoron. Risky to handle but very much worth it." - color = "#CC23FF" + color = "#660088" slime_color = "dark purple" coretype = /obj/item/slime_extract/dark_purple reagent_injected = "phoron" From 70f7ef7d6f5ecbfb409c5b6c6d4600987ca3c871 Mon Sep 17 00:00:00 2001 From: mistyLuminescence Date: Sat, 17 Mar 2018 21:10:23 +0000 Subject: [PATCH 02/24] Wallet expansion! --- .../objects/items/weapons/storage/wallets.dm | 23 ++++++++++++++++++- 1 file changed, 22 insertions(+), 1 deletion(-) diff --git a/code/game/objects/items/weapons/storage/wallets.dm b/code/game/objects/items/weapons/storage/wallets.dm index 02be9fdfaf..efa5ae3129 100644 --- a/code/game/objects/items/weapons/storage/wallets.dm +++ b/code/game/objects/items/weapons/storage/wallets.dm @@ -10,21 +10,42 @@ /obj/item/weapon/card, /obj/item/clothing/mask/smokable/cigarette/, /obj/item/device/flashlight/pen, + /obj/item/device/camera_bug, + /obj/item/device/gps, + /obj/item/device/tape, + /obj/item/device/hailer, + /obj/item/weapon/cartridge, + /obj/item/device/encryptionkey, + /obj/item/weapon/reagent_containers/glass/beaker/vial, + /obj/item/weapon/reagent_containers/pill, + /obj/item/weapon/reagent_containers/syringe, /obj/item/seeds, /obj/item/stack/medical, /obj/item/weapon/coin, /obj/item/weapon/dice, /obj/item/weapon/disk, + /obj/item/weapon/ducttape, /obj/item/weapon/implanter, /obj/item/weapon/flame/lighter, /obj/item/weapon/flame/match, + /obj/item/weapon/forensics, + /obj/item/weapon/glass_extra, + /obj/item/weapon/haircomb, + /obj/item/weapon/hand, + /obj/item/weapon/key, + /obj/item/weapon/lipstick, /obj/item/weapon/paper, /obj/item/weapon/pen, /obj/item/weapon/photo, /obj/item/weapon/reagent_containers/dropper, + /obj/item/weapon/sample, /obj/item/weapon/screwdriver, /obj/item/weapon/stamp, - /obj/item/clothing/accessory/permit + /obj/item/weapon/surgical/scalpel, + /obj/item/weapon/tape_roll, + /obj/item/toy/bosunwhistle, + /obj/item/clothing/accessory/permit, + /obj/item/clothing/accessory/badge ) slot_flags = SLOT_ID From 49f2a3281cd4c4f838bd541655d34321cb21b44d Mon Sep 17 00:00:00 2001 From: mistyLuminescence Date: Sat, 17 Mar 2018 21:13:47 +0000 Subject: [PATCH 03/24] changelog --- .../MistyLuminescence - Wallets.yml | 36 +++++++++++++++++++ 1 file changed, 36 insertions(+) create mode 100644 html/changelogs/MistyLuminescence - Wallets.yml diff --git a/html/changelogs/MistyLuminescence - Wallets.yml b/html/changelogs/MistyLuminescence - Wallets.yml new file mode 100644 index 0000000000..56be452853 --- /dev/null +++ b/html/changelogs/MistyLuminescence - Wallets.yml @@ -0,0 +1,36 @@ +################################ +# Example Changelog File +# +# Note: This file, and files beginning with ".", and files that don't end in ".yml" will not be read. If you change this file, you will look really dumb. +# +# Your changelog will be merged with a master changelog. (New stuff added only, and only on the date entry for the day it was merged.) +# When it is, any changes listed below will disappear. +# +# Valid Prefixes: +# bugfix +# wip (For works in progress) +# tweak +# soundadd +# sounddel +# rscadd (general adding of nice things) +# rscdel (general deleting of nice things) +# imageadd +# imagedel +# maptweak +# spellcheck (typo fixes) +# experiment +################################# + +# Your name. +author: N3X15 + +# Optional: Remove this file after generating master changelog. Useful for PR changelogs that won't get used again. +delete-after: True + +# Any changes you've made. See valid prefix list above. +# INDENT WITH TWO SPACES. NOT TABS. SPACES. +# SCREW THIS UP AND IT WON'T WORK. +# Also, all entries are changed into a single [] after a master changelog generation. Just remove the brackets when you add new entries. +# Please surround your changes in double quotes ("), as certain characters otherwise screws up compiling. The quotes will not show up in the changelog. +changes: + - tweak: "Wallets can now hold a wider variety of objects." \ No newline at end of file From d644104f058745fef66d2d4c5a3ef32895306308 Mon Sep 17 00:00:00 2001 From: mistyLuminescence Date: Sat, 17 Mar 2018 21:20:19 +0000 Subject: [PATCH 04/24] actually puts my name in the changelog --- html/changelogs/MistyLuminescence - Wallets.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/html/changelogs/MistyLuminescence - Wallets.yml b/html/changelogs/MistyLuminescence - Wallets.yml index 56be452853..085f19d40d 100644 --- a/html/changelogs/MistyLuminescence - Wallets.yml +++ b/html/changelogs/MistyLuminescence - Wallets.yml @@ -22,7 +22,7 @@ ################################# # Your name. -author: N3X15 +author: MistyLuminescence # Optional: Remove this file after generating master changelog. Useful for PR changelogs that won't get used again. delete-after: True From 8769f4605ac6bdbdbd063be2feddeeecd0a5ab19 Mon Sep 17 00:00:00 2001 From: mistyLuminescence Date: Sun, 18 Mar 2018 03:20:36 +0000 Subject: [PATCH 05/24] trims list --- code/game/objects/items/weapons/storage/wallets.dm | 9 --------- 1 file changed, 9 deletions(-) diff --git a/code/game/objects/items/weapons/storage/wallets.dm b/code/game/objects/items/weapons/storage/wallets.dm index efa5ae3129..0ac2bfaf98 100644 --- a/code/game/objects/items/weapons/storage/wallets.dm +++ b/code/game/objects/items/weapons/storage/wallets.dm @@ -10,21 +10,15 @@ /obj/item/weapon/card, /obj/item/clothing/mask/smokable/cigarette/, /obj/item/device/flashlight/pen, - /obj/item/device/camera_bug, - /obj/item/device/gps, /obj/item/device/tape, - /obj/item/device/hailer, /obj/item/weapon/cartridge, /obj/item/device/encryptionkey, /obj/item/weapon/reagent_containers/glass/beaker/vial, - /obj/item/weapon/reagent_containers/pill, - /obj/item/weapon/reagent_containers/syringe, /obj/item/seeds, /obj/item/stack/medical, /obj/item/weapon/coin, /obj/item/weapon/dice, /obj/item/weapon/disk, - /obj/item/weapon/ducttape, /obj/item/weapon/implanter, /obj/item/weapon/flame/lighter, /obj/item/weapon/flame/match, @@ -41,9 +35,6 @@ /obj/item/weapon/sample, /obj/item/weapon/screwdriver, /obj/item/weapon/stamp, - /obj/item/weapon/surgical/scalpel, - /obj/item/weapon/tape_roll, - /obj/item/toy/bosunwhistle, /obj/item/clothing/accessory/permit, /obj/item/clothing/accessory/badge ) From 40efe1d50b7eb4e5f9c9babfb87ff39051083a43 Mon Sep 17 00:00:00 2001 From: Verkister Date: Sat, 24 Mar 2018 12:10:47 +0200 Subject: [PATCH 06/24] Re-establishes existing foundations for human icon This line had no real use at all that I could find. It may even have contributed to various issues. Before this line was added, all basic humanoid species have had their appearances constructed onto an actually existing blank 32x32 icon_state named and called for as "nothing" inside the effects.dmi. There are no untitled blanks either inside the effects.dmi file, so the funky deviant species specific icon_states would never have had any proper fallback either. No negative effects whatsoever detected in testing runs. Maybe slight framerate increase, but that was likely unrelated/placebo lmao --- code/modules/mob/living/carbon/human/human.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/mob/living/carbon/human/human.dm b/code/modules/mob/living/carbon/human/human.dm index d2bf097d71..23d3f05fe0 100644 --- a/code/modules/mob/living/carbon/human/human.dm +++ b/code/modules/mob/living/carbon/human/human.dm @@ -1168,7 +1168,7 @@ if(!(gender in species.genders)) gender = species.genders[1] - icon_state = lowertext(species.name) + //icon_state = lowertext(species.name) //Necessary? species.create_organs(src) From 94c9d631f9eddd3391c482579c8bb6ad918b037e Mon Sep 17 00:00:00 2001 From: Verkister Date: Sat, 24 Mar 2018 14:24:44 +0200 Subject: [PATCH 07/24] Fixes custom accessories not showing up on things Contradictory hardcoding babe. --- code/modules/clothing/under/accessories/accessory.dm | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/code/modules/clothing/under/accessories/accessory.dm b/code/modules/clothing/under/accessories/accessory.dm index e50c563aed..67c82dcf79 100644 --- a/code/modules/clothing/under/accessories/accessory.dm +++ b/code/modules/clothing/under/accessories/accessory.dm @@ -26,7 +26,9 @@ if(icon_override) if("[tmp_icon_state]_tie" in icon_states(icon_override)) tmp_icon_state = "[tmp_icon_state]_tie" - inv_overlay = image(icon = INV_ACCESSORIES_DEF_ICON, icon_state = tmp_icon_state, dir = SOUTH) + inv_overlay = image(icon = icon_override, icon_state = tmp_icon_state, dir = SOUTH) + else + inv_overlay = image(icon = INV_ACCESSORIES_DEF_ICON, icon_state = tmp_icon_state, dir = SOUTH) return inv_overlay /obj/item/clothing/accessory/proc/get_mob_overlay() @@ -387,4 +389,4 @@ /obj/item/clothing/accessory/bracelet/material/glass/New(var/newloc) ..(newloc, "glass") - ..() \ No newline at end of file + ..() From bf8bfc6e00b03d8cca00e9c16d9ec6956495e91d Mon Sep 17 00:00:00 2001 From: Verkister Date: Sat, 24 Mar 2018 16:40:58 +0200 Subject: [PATCH 08/24] Fixes inconsistencies in organ system -Seems the years old conversion to turn old limb names and tags and such to BP constants was never finished. -This also fixes warning spammy diona organ tags. --- code/modules/organs/subtypes/diona.dm | 34 ++++++++++++++---------- code/modules/organs/subtypes/standard.dm | 32 +++++++++++----------- 2 files changed, 36 insertions(+), 30 deletions(-) diff --git a/code/modules/organs/subtypes/diona.dm b/code/modules/organs/subtypes/diona.dm index cdb963e35b..c0e4e60c98 100644 --- a/code/modules/organs/subtypes/diona.dm +++ b/code/modules/organs/subtypes/diona.dm @@ -50,7 +50,7 @@ /obj/item/organ/external/diona/arm name = "left upper tendril" - organ_tag = "l_arm" + organ_tag = BP_L_ARM icon_name = "l_arm" max_damage = 30 min_broken_damage = 20 @@ -61,13 +61,13 @@ /obj/item/organ/external/diona/arm/right name = "right upper tendril" - organ_tag = "r_arm" + organ_tag = BP_R_ARM icon_name = "r_arm" body_part = ARM_RIGHT /obj/item/organ/external/diona/leg name = "left lower tendril" - organ_tag = "l_leg" + organ_tag = BP_L_LEG icon_name = "l_leg" max_damage = 30 min_broken_damage = 20 @@ -79,50 +79,50 @@ /obj/item/organ/external/diona/leg/right name = "right lower tendril" - organ_tag = "r_leg" + organ_tag = BP_R_LEG icon_name = "r_leg" body_part = LEG_RIGHT icon_position = RIGHT /obj/item/organ/external/diona/foot name = "left foot" - organ_tag = "l_foot" + organ_tag = BP_L_FOOT icon_name = "l_foot" max_damage = 25 min_broken_damage = 10 w_class = ITEMSIZE_SMALL body_part = FOOT_LEFT icon_position = LEFT - parent_organ = "l_leg" + parent_organ = BP_R_LEG can_stand = 1 /obj/item/organ/external/diona/foot/right name = "right foot" - organ_tag = "r_foot" + organ_tag = BP_R_FOOT icon_name = "r_foot" body_part = FOOT_RIGHT icon_position = RIGHT - parent_organ = "r_leg" + parent_organ = BP_R_LEG joint = "right ankle" amputation_point = "right ankle" /obj/item/organ/external/diona/hand name = "left grasper" - organ_tag = "l_hand" + organ_tag = BP_L_HAND icon_name = "l_hand" max_damage = 25 min_broken_damage = 15 w_class = ITEMSIZE_SMALL body_part = HAND_LEFT - parent_organ = "l_arm" + parent_organ = BP_L_ARM can_grasp = 1 /obj/item/organ/external/diona/hand/right name = "right grasper" - organ_tag = "r_hand" + organ_tag = BP_R_HAND icon_name = "r_hand" body_part = HAND_RIGHT - parent_organ = "r_arm" + parent_organ = BP_R_ARM //DIONA ORGANS. /obj/item/organ/external/diona/removed() @@ -157,26 +157,32 @@ /obj/item/organ/internal/diona/strata name = "neural strata" parent_organ = BP_TORSO + organ_tag = O_STRATA /obj/item/organ/internal/diona/bladder name = "gas bladder" parent_organ = BP_HEAD + organ_tag = O_GBLADDER /obj/item/organ/internal/diona/polyp name = "polyp segment" parent_organ = BP_GROIN + organ_tag = O_POLYP /obj/item/organ/internal/diona/ligament name = "anchoring ligament" parent_organ = BP_GROIN + organ_tag = O_ANCHOR /obj/item/organ/internal/diona/node name = "receptor node" parent_organ = BP_HEAD + organ_tag = O_RESPONSE /obj/item/organ/internal/diona/nutrients name = O_NUTRIENT parent_organ = BP_TORSO + organ_tag = O_NUTRIENT // These are different to the standard diona organs as they have a purpose in other // species (absorbing radiation and light respectively) @@ -191,8 +197,8 @@ /obj/item/organ/internal/diona/node name = "response node" - parent_organ = "head" - organ_tag = "receptor node" + parent_organ = BP_HEAD + organ_tag = O_RESPONSE icon = 'icons/mob/alien.dmi' icon_state = "claw" diff --git a/code/modules/organs/subtypes/standard.dm b/code/modules/organs/subtypes/standard.dm index eb0518de38..a499a437ab 100644 --- a/code/modules/organs/subtypes/standard.dm +++ b/code/modules/organs/subtypes/standard.dm @@ -72,7 +72,7 @@ owner.custom_pain("A jolt of pain surges through your [name]!",1) /obj/item/organ/external/arm - organ_tag = "l_arm" + organ_tag = BP_L_ARM name = "left arm" icon_name = "l_arm" max_damage = 80 @@ -98,13 +98,13 @@ if (. >= 2) if(prob(.)) owner.custom_pain("A jolt of pain surges through your [name]!",1) - if(organ_tag == "l_arm") //Specific level 2 'feature + if(organ_tag == BP_L_ARM) //Specific level 2 'feature owner.drop_l_hand() - else if(organ_tag == "r_arm") + else if(organ_tag == BP_R_ARM) owner.drop_r_hand() /obj/item/organ/external/arm/right - organ_tag = "r_arm" + organ_tag = BP_R_ARM name = "right arm" icon_name = "r_arm" body_part = ARM_RIGHT @@ -112,7 +112,7 @@ amputation_point = "right shoulder" /obj/item/organ/external/leg - organ_tag = "l_leg" + organ_tag = BP_L_LEG name = "left leg" icon_name = "l_leg" max_damage = 80 @@ -142,7 +142,7 @@ owner.Weaken(5) /obj/item/organ/external/leg/right - organ_tag = "r_leg" + organ_tag = BP_R_LEG name = "right leg" icon_name = "r_leg" body_part = LEG_RIGHT @@ -151,7 +151,7 @@ amputation_point = "right hip" /obj/item/organ/external/foot - organ_tag = "l_foot" + organ_tag = BP_L_FOOT name = "left foot" icon_name = "l_foot" max_damage = 50 @@ -159,7 +159,7 @@ w_class = ITEMSIZE_SMALL body_part = FOOT_LEFT icon_position = LEFT - parent_organ = "l_leg" + parent_organ = BP_L_LEG joint = "left ankle" amputation_point = "left ankle" can_stand = 1 @@ -186,24 +186,24 @@ owner.Weaken(5) /obj/item/organ/external/foot/right - organ_tag = "r_foot" + organ_tag = BP_R_FOOT name = "right foot" icon_name = "r_foot" body_part = FOOT_RIGHT icon_position = RIGHT - parent_organ = "r_leg" + parent_organ = BP_R_LEG joint = "right ankle" amputation_point = "right ankle" /obj/item/organ/external/hand - organ_tag = "l_hand" + organ_tag = BP_L_HAND name = "left hand" icon_name = "l_hand" max_damage = 50 min_broken_damage = 15 w_class = ITEMSIZE_SMALL body_part = HAND_LEFT - parent_organ = "l_arm" + parent_organ = BP_L_ARM joint = "left wrist" amputation_point = "left wrist" can_grasp = 1 @@ -229,17 +229,17 @@ if (. >= 2) if(prob(.)) owner.custom_pain("A jolt of pain surges through your [name]!",1) - if(organ_tag == "l_hand") //Specific level 2 'feature + if(organ_tag == BP_L_HAND) //Specific level 2 'feature owner.drop_l_hand() - else if(organ_tag == "r_hand") + else if(organ_tag == BP_R_HAND) owner.drop_r_hand() /obj/item/organ/external/hand/right - organ_tag = "r_hand" + organ_tag = BP_R_HAND name = "right hand" icon_name = "r_hand" body_part = HAND_RIGHT - parent_organ = "r_arm" + parent_organ = BP_R_ARM joint = "right wrist" amputation_point = "right wrist" From 32860140b47122f4cab1294fd8f0779a13b1e0e9 Mon Sep 17 00:00:00 2001 From: Woodratt Date: Mon, 26 Mar 2018 14:33:43 -0700 Subject: [PATCH 09/24] 44 revolvers Port from Bay - Addition of two more revolvers in 44 cal for variety - Creation of rubber rounds for 44 cal (stats taken from virgo no idea how good they are in actual fights) - Includes 44 ammo speedloaders, regular and rubber speedloaders - Slight adjustments to allow for firing animations taken from Bay (the mosley revolver has a firing animation that plays) - Includes in hand sprites We did already have the 'webley' sprite (it exists in a recolored sprite). However it is a alternate sprite for the detective's 45 revolver. This brings it in as a actual proper revolver with sprites that are different than the detectives revolver, and maybe in the future can be thrown into loot lists and PoIs. --- .../projectiles/ammunition/magazines.dm | 18 +++++++++ code/modules/projectiles/ammunition/rounds.dm | 6 +++ code/modules/projectiles/gun.dm | 6 ++- .../projectiles/guns/projectile/revolver.dm | 22 +++++++++- .../modules/projectiles/projectile/bullets.dm | 8 ++++ html/changelogs/Woodrat - 44 Revolver.yml | 38 ++++++++++++++++++ icons/mob/items/lefthand_guns.dmi | Bin 57492 -> 57783 bytes icons/mob/items/righthand_guns.dmi | Bin 61898 -> 62151 bytes icons/obj/ammo.dmi | Bin 24499 -> 25616 bytes icons/obj/gun.dmi | Bin 87928 -> 89933 bytes 10 files changed, 96 insertions(+), 2 deletions(-) create mode 100644 html/changelogs/Woodrat - 44 Revolver.yml diff --git a/code/modules/projectiles/ammunition/magazines.dm b/code/modules/projectiles/ammunition/magazines.dm index 0e9cf95eb6..94cf0ab21e 100644 --- a/code/modules/projectiles/ammunition/magazines.dm +++ b/code/modules/projectiles/ammunition/magazines.dm @@ -50,6 +50,7 @@ /obj/item/ammo_magazine/s38/rubber name = "speedloader (.38 rubber)" + icon_state = "T38" ammo_type = /obj/item/ammo_casing/a38r /obj/item/ammo_magazine/s38/emp @@ -493,6 +494,23 @@ max_ammo = 9 multiple_sprites = 1 +/obj/item/ammo_magazine/s44 + name = "speedloader (.44)" + icon_state = "44" + ammo_type = /obj/item/ammo_casing/a44 + matter = list(DEFAULT_WALL_MATERIAL = 1260) //metal costs are very roughly based around 1 .45 casing = 75 metal + caliber = ".44" + max_ammo = 6 + multiple_sprites = 1 + +/obj/item/ammo_magazine/s44/empty + initial_ammo = 0 + +/obj/item/ammo_magazine/s44/rubber + name = "speedloader (.44 rubber)" + icon_state = "R44" + ammo_type = /obj/item/ammo_casing/a44r + ///////// 7.62mm ///////// /obj/item/ammo_magazine/m762 diff --git a/code/modules/projectiles/ammunition/rounds.dm b/code/modules/projectiles/ammunition/rounds.dm index 330e11d89b..028d1cac1e 100644 --- a/code/modules/projectiles/ammunition/rounds.dm +++ b/code/modules/projectiles/ammunition/rounds.dm @@ -59,6 +59,12 @@ caliber = ".44" projectile_type = /obj/item/projectile/bullet/pistol/strong +/obj/item/ammo_casing/a44r + icon_state = "r-casing" + desc = "A .44 rubber bullet casing." + caliber = ".44" + projectile_type = /obj/item/projectile/bullet/pistol/rubber/strong + /* * .75 (aka Gyrojet Rockets, aka admin abuse) */ diff --git a/code/modules/projectiles/gun.dm b/code/modules/projectiles/gun.dm index 0fc3441238..49bcaeaa30 100644 --- a/code/modules/projectiles/gun.dm +++ b/code/modules/projectiles/gun.dm @@ -58,6 +58,7 @@ var/move_delay = 1 var/fire_sound = 'sound/weapons/Gunshot.ogg' var/fire_sound_text = "gunshot" + var/fire_anim = null var/recoil = 0 //screen shake var/silenced = 0 var/muzzle_flash = 3 @@ -456,7 +457,7 @@ if(!(target && target.loc)) target = targloc //pointblank = 0 - + var/target_for_log if(ismob(target)) target_for_log = target @@ -497,6 +498,9 @@ //called after successfully firing /obj/item/weapon/gun/proc/handle_post_fire(mob/user, atom/target, var/pointblank=0, var/reflex=0) + if(fire_anim) + flick(fire_anim, src) + if(silenced) if(reflex) user.visible_message( diff --git a/code/modules/projectiles/guns/projectile/revolver.dm b/code/modules/projectiles/guns/projectile/revolver.dm index b33cf11950..481530856f 100644 --- a/code/modules/projectiles/guns/projectile/revolver.dm +++ b/code/modules/projectiles/guns/projectile/revolver.dm @@ -118,7 +118,6 @@ obj/item/weapon/gun/projectile/revolver/detective45/verb/rename_gun() return 1 - // Blade Runner pistol. /obj/item/weapon/gun/projectile/revolver/deckard name = "\improper Deckard .38" @@ -259,3 +258,24 @@ obj/item/weapon/gun/projectile/revolver/detective45/verb/rename_gun() to_chat(user, "\The [src] has a secondary barrel loaded with \a [to_print]") else to_chat(user, "\The [src] has a secondary barrel that is empty.") + + +//Ported from Bay +/obj/item/weapon/gun/projectile/revolver/webley + name = "service revolver" + desc = "A rugged top break revolver based on the Webley Mk. VI model, with modern improvements. Uses .44 magnum rounds." + icon_state = "webley2" + item_state = "webley2" + caliber = ".44" + origin_tech = list(TECH_COMBAT = 2, TECH_MATERIAL = 2) + handle_casings = CYCLE_CASINGS + max_shells = 6 + ammo_type = /obj/item/ammo_casing/a44 + +/obj/item/weapon/gun/projectile/revolver/webley/auto + name = "autorevolver" + icon_state = "mosley" + desc = "A shiny Mosley Autococker automatic revolver, with black accents. Marketed as the 'Revolver for the Modern Era'. Uses .44 magnum rounds." + fire_delay = 5.7 //Autorevolver. Also synced with the animation + fire_anim = "mosley_fire" + origin_tech = list(TECH_COMBAT = 3, TECH_MATERIAL = 2) \ No newline at end of file diff --git a/code/modules/projectiles/projectile/bullets.dm b/code/modules/projectiles/projectile/bullets.dm index d47e729898..36a93a89b0 100644 --- a/code/modules/projectiles/projectile/bullets.dm +++ b/code/modules/projectiles/projectile/bullets.dm @@ -147,6 +147,14 @@ fire_sound = 'sound/weapons/gunshot/gunshot_strong.ogg' damage = 60 +/obj/item/projectile/bullet/pistol/rubber/strong //"rubber" bullets for revolvers and matebas + fire_sound = 'sound/weapons/gunshot/gunshot_strong.ogg' + damage = 10 + agony = 60 + embed_chance = 0 + sharp = 0 + check_armour = "melee" + /obj/item/projectile/bullet/pistol/rubber //"rubber" bullets name = "rubber bullet" damage = 5 diff --git a/html/changelogs/Woodrat - 44 Revolver.yml b/html/changelogs/Woodrat - 44 Revolver.yml new file mode 100644 index 0000000000..c73fc0de09 --- /dev/null +++ b/html/changelogs/Woodrat - 44 Revolver.yml @@ -0,0 +1,38 @@ +################################ +# Example Changelog File +# +# Note: This file, and files beginning with ".", and files that don't end in ".yml" will not be read. If you change this file, you will look really dumb. +# +# Your changelog will be merged with a master changelog. (New stuff added only, and only on the date entry for the day it was merged.) +# When it is, any changes listed below will disappear. +# +# Valid Prefixes: +# bugfix +# wip (For works in progress) +# tweak +# soundadd +# sounddel +# rscadd (general adding of nice things) +# rscdel (general deleting of nice things) +# imageadd +# imagedel +# maptweak +# spellcheck (typo fixes) +# experiment +################################# + +# Your name. +author: Woodrat + +# Optional: Remove this file after generating master changelog. Useful for PR changelogs that won't get used again. +delete-after: True + +# Any changes you've made. See valid prefix list above. +# INDENT WITH TWO SPACES. NOT TABS. SPACES. +# SCREW THIS UP AND IT WON'T WORK. +# Also, all entries are changed into a single [] after a master changelog generation. Just remove the brackets when you add new entries. +# Please surround your changes in double quotes ("), as certain characters otherwise screws up compiling. The quotes will not show up in the changelog. +changes: + - rscadd: "Added two 44 cal revolvers." + - rscadd: "Added 44 cal speedloader for revolvers." + - rscadd: "Added 44 cal rubber rounds." \ No newline at end of file diff --git a/icons/mob/items/lefthand_guns.dmi b/icons/mob/items/lefthand_guns.dmi index 18add13d5ba10741473f50ea6e1c62386178d8b2..1a830a6e49ff82ab429468e9584496cce20d6202 100644 GIT binary patch delta 16792 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 diff --git a/icons/mob/items/righthand_guns.dmi b/icons/mob/items/righthand_guns.dmi index 3e96e5804049bb4eb4c8d1fe47bda27fa3adf367..8a7c74bf3d0f01b4e6b509099ba559daadba1937 100644 GIT binary patch delta 21215 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 delta 20936 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 E0YmX1jsO4v diff --git a/icons/obj/ammo.dmi b/icons/obj/ammo.dmi index 43bb082f573b59f62b8647d058b6a3abf31b52f7..ceea8bf2b7ecc9a53b4f7c1543523532599af852 100644 GIT binary patch literal 25616 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 literal 24499 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 ItY;VWUq(d^hX4Qo diff --git a/icons/obj/gun.dmi b/icons/obj/gun.dmi index 45fc51fb8ef720123b82185304cb4c10dc78c4a0..3ea938e4eef79dc6e1e473c00774b9b767674d47 100644 GIT binary patch delta 11771 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 Q|Na8hm9>;A6s$u2AM;gY`v3p{ From e14140d8dc84406b95ccc80462d3d6d77d0324e1 Mon Sep 17 00:00:00 2001 From: Leshana Date: Wed, 28 Mar 2018 19:09:54 -0400 Subject: [PATCH 10/24] Grant remote profile access to R_DEBUG holders --- code/modules/admin/admin_ranks.dm | 4 ++++ code/modules/admin/holder2.dm | 2 ++ 2 files changed, 6 insertions(+) diff --git a/code/modules/admin/admin_ranks.dm b/code/modules/admin/admin_ranks.dm index 12c00aa708..772c1886a8 100644 --- a/code/modules/admin/admin_ranks.dm +++ b/code/modules/admin/admin_ranks.dm @@ -6,6 +6,10 @@ var/list/admin_ranks = list() //list of all ranks with associated rights var/previous_rights = 0 + //Clear profile access + for(var/A in world.GetConfig("admin")) + world.SetConfig("APP/admin", A, null) + //load text from file var/list/Lines = file2list("config/admin_ranks.txt") diff --git a/code/modules/admin/holder2.dm b/code/modules/admin/holder2.dm index 4f0cba95c4..2d74b43433 100644 --- a/code/modules/admin/holder2.dm +++ b/code/modules/admin/holder2.dm @@ -23,6 +23,8 @@ var/list/admin_datums = list() rank = initial_rank rights = initial_rights admin_datums[ckey] = src + if(rights & R_DEBUG) //grant profile access + world.SetConfig("APP/admin", ckey, "role=admin") /datum/admins/proc/associate(client/C) if(istype(C)) From 88463b5709d0f21b18e2656a44ba145fcb626a9d Mon Sep 17 00:00:00 2001 From: Anewbe Date: Thu, 29 Mar 2018 17:51:55 -0500 Subject: [PATCH 11/24] Normal brute kits disinfect wounds --- code/game/objects/items/stacks/medical.dm | 1 + 1 file changed, 1 insertion(+) diff --git a/code/game/objects/items/stacks/medical.dm b/code/game/objects/items/stacks/medical.dm index eb62b5d674..b5ff773e8b 100644 --- a/code/game/objects/items/stacks/medical.dm +++ b/code/game/objects/items/stacks/medical.dm @@ -111,6 +111,7 @@ user.visible_message("\The [user] places a bandaid over \a [W.desc] on [M]'s [affecting.name].", \ "You place a bandaid over \a [W.desc] on [M]'s [affecting.name]." ) W.bandage() + W.disinfect() used++ affecting.update_damages() if(used == amount) From dfc0dd48bcdd1a00a1541eca52d196fb09e4f552 Mon Sep 17 00:00:00 2001 From: mistyLuminescence Date: Fri, 30 Mar 2018 02:12:58 +0100 Subject: [PATCH 12/24] Removes vials --- code/game/objects/items/weapons/storage/wallets.dm | 1 - 1 file changed, 1 deletion(-) diff --git a/code/game/objects/items/weapons/storage/wallets.dm b/code/game/objects/items/weapons/storage/wallets.dm index 0ac2bfaf98..cb376787ab 100644 --- a/code/game/objects/items/weapons/storage/wallets.dm +++ b/code/game/objects/items/weapons/storage/wallets.dm @@ -13,7 +13,6 @@ /obj/item/device/tape, /obj/item/weapon/cartridge, /obj/item/device/encryptionkey, - /obj/item/weapon/reagent_containers/glass/beaker/vial, /obj/item/seeds, /obj/item/stack/medical, /obj/item/weapon/coin, From f429a176e4e8e2c3e88177f74f5a3c90cbc516bc Mon Sep 17 00:00:00 2001 From: Neerti Date: Fri, 30 Mar 2018 05:28:58 -0400 Subject: [PATCH 13/24] Adds Map Template Groups Adds ability to have many different 'versions' of a PoI, yet only having one show up per round. An example on how to do this is provided with Radio Free Sif (aka DJOutpost). Just make sure all the different versions have the same 'template_group' value. --- code/game/turfs/flooring/flooring_premade.dm | 14 +++++ code/modules/maps/tg/map_template.dm | 19 ++++++- .../surface_submaps/wilderness/DJOutpost2.dmm | 56 +++++++++++++++++++ .../surface_submaps/wilderness/wilderness.dm | 9 +++ .../wilderness/wilderness_areas.dm | 3 + 5 files changed, 100 insertions(+), 1 deletion(-) create mode 100644 maps/submaps/surface_submaps/wilderness/DJOutpost2.dmm diff --git a/code/game/turfs/flooring/flooring_premade.dm b/code/game/turfs/flooring/flooring_premade.dm index 5e0e2e48a7..559e3ad3a2 100644 --- a/code/game/turfs/flooring/flooring_premade.dm +++ b/code/game/turfs/flooring/flooring_premade.dm @@ -68,12 +68,26 @@ icon_state = "wood" initial_flooring = /decl/flooring/wood +/turf/simulated/floor/wood/broken + icon_state = "wood_broken0" // This gets changed when spawned. + +/turf/simulated/floor/wood/broken/initialize() + break_tile() + return ..() + /turf/simulated/floor/wood/sif name = "alien wooden floor" icon = 'icons/turf/flooring/wood.dmi' icon_state = "sifwood" initial_flooring = /decl/flooring/wood/sif +/turf/simulated/floor/wood/sif/broken + icon_state = "sifwood_broken0" // This gets changed when spawned. + +/turf/simulated/floor/wood/sif/broken/initialize() + break_tile() + return ..() + /turf/simulated/floor/grass name = "grass patch" icon = 'icons/turf/flooring/grass.dmi' diff --git a/code/modules/maps/tg/map_template.dm b/code/modules/maps/tg/map_template.dm index f4446c4cf9..2eb5aab12f 100644 --- a/code/modules/maps/tg/map_template.dm +++ b/code/modules/maps/tg/map_template.dm @@ -13,6 +13,7 @@ var/list/global/map_templates = list() /datum/map_template var/name = "Default Template Name" var/desc = "Some text should go here. Maybe." + var/template_group = null // If this is set, no more than one template in the same group will be spawned, per submap seeding. var/width = 0 var/height = 0 var/mappath = null @@ -67,7 +68,7 @@ var/list/global/map_templates = list() admin_notice("Initializing newly created atom(s) in submap.", R_DEBUG) SSatoms.InitializeAtoms(atoms) - + admin_notice("Initializing atmos pipenets and machinery in submap.", R_DEBUG) SSmachines.setup_atmos_machinery(atmos_machines) @@ -189,6 +190,7 @@ var/list/global/map_templates = list() CHECK_TICK var/list/loaded_submap_names = list() + var/list/template_groups_used = list() // Used to avoid spawning three seperate versions of the same PoI. // Now lets start choosing some. while(budget > 0 && overall_sanity > 0) @@ -209,6 +211,14 @@ var/list/global/map_templates = list() // Can we afford it? if(chosen_template.cost > budget) + priority_submaps -= chosen_template + potential_submaps -= chosen_template + continue + + // Did we already place down a very similar submap? + if(chosen_template.template_group && chosen_template.template_group in template_groups_used) + priority_submaps -= chosen_template + potential_submaps -= chosen_template continue // If so, try to place it. @@ -241,14 +251,21 @@ var/list/global/map_templates = list() CHECK_TICK + // For pretty maploading statistics. if(loaded_submap_names[chosen_template.name]) loaded_submap_names[chosen_template.name] += 1 else loaded_submap_names[chosen_template.name] = 1 + // To avoid two 'related' similar submaps existing at the same time. + if(chosen_template.template_group) + template_groups_used += chosen_template.template_group + + // To deduct the cost. if(chosen_template.cost >= 0) budget -= chosen_template.cost + // Remove the submap from our options. if(chosen_template in priority_submaps) // Always remove priority submaps. priority_submaps -= chosen_template else if(!chosen_template.allow_duplicates) diff --git a/maps/submaps/surface_submaps/wilderness/DJOutpost2.dmm b/maps/submaps/surface_submaps/wilderness/DJOutpost2.dmm new file mode 100644 index 0000000000..231a7ec958 --- /dev/null +++ b/maps/submaps/surface_submaps/wilderness/DJOutpost2.dmm @@ -0,0 +1,56 @@ +"a" = (/turf/template_noop,/area/template_noop) +"b" = (/turf/simulated/wall/wood,/area/submap/DJOutpost1) +"c" = (/obj/structure/grille/broken,/obj/item/weapon/material/shard,/obj/item/weapon/material/shard{tag = "icon-shardmedium"; icon_state = "shardmedium"},/obj/item/stack/rods,/turf/simulated/floor,/area/submap/DJOutpost1) +"d" = (/obj/structure/grille/broken,/obj/item/weapon/material/shard,/turf/simulated/floor,/area/submap/DJOutpost1) +"e" = (/turf/simulated/floor/wood/broken,/area/submap/DJOutpost1) +"f" = (/obj/structure/loot_pile/maint/technical,/turf/simulated/floor/wood/broken,/area/submap/DJOutpost1) +"g" = (/obj/structure/sign/goldenplaque{desc = "An award given to Sif Free Radio for media excellency. It looks fake."; name = "Best Radio Station 2558"; pixel_y = 30},/turf/simulated/floor/wood/broken,/area/submap/DJOutpost1) +"h" = (/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/loot_pile/maint/technical,/turf/simulated/floor/wood/broken,/area/submap/DJOutpost1) +"i" = (/obj/structure/loot_pile/surface/bones,/turf/simulated/floor/wood/broken,/area/submap/DJOutpost1) +"k" = (/obj/structure/girder,/turf/simulated/floor,/area/submap/DJOutpost1) +"l" = (/obj/structure/bed/chair/office/dark{dir = 1},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/wood/broken,/area/submap/DJOutpost1) +"m" = (/obj/structure/table/steel_reinforced,/obj/item/device/radio/phone,/turf/simulated/floor/outdoors/dirt,/area/submap/DJOutpost1) +"n" = (/obj/item/stack/rods,/turf/template_noop,/area/template_noop) +"o" = (/turf/simulated/floor/outdoors/dirt,/area/submap/DJOutpost1) +"p" = (/obj/structure/loot_pile/surface/bones,/turf/simulated/floor/outdoors/dirt,/area/submap/DJOutpost1) +"q" = (/obj/structure/table/steel_reinforced,/obj/item/device/radio,/obj/structure/cable/yellow,/turf/simulated/floor/wood/broken,/area/submap/DJOutpost1) +"r" = (/turf/simulated/floor/outdoors/rocks,/area/submap/DJOutpost1) +"s" = (/obj/effect/overlay/snow/floor,/turf/simulated/floor{outdoors = 1},/area/submap/DJOutpost1) +"u" = (/obj/effect/decal/cleanable/ash,/turf/simulated/floor/outdoors/dirt,/area/submap/DJOutpost1) +"w" = (/obj/structure/grille/broken,/obj/item/weapon/material/shard{tag = "icon-shardmedium"; icon_state = "shardmedium"},/turf/simulated/floor,/area/submap/DJOutpost1) +"x" = (/obj/structure/girder,/turf/simulated/floor/outdoors/rocks,/area/submap/DJOutpost1) +"y" = (/obj/structure/table/steel_reinforced,/obj/item/device/radio/intercom/syndicate{desc = "Talk through this."; name = "station intercom (General)"},/turf/simulated/floor/outdoors/dirt,/area/submap/DJOutpost1) +"A" = (/obj/item/stack/rods,/turf/simulated/floor/outdoors/dirt,/area/submap/DJOutpost1) +"B" = (/obj/structure/door_assembly/door_assembly_ext,/turf/simulated/floor/outdoors/rocks,/area/submap/DJOutpost1) +"C" = (/obj/structure/grille/broken,/obj/item/weapon/material/shard{icon_state = "medium"},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor,/area/submap/DJOutpost1) +"D" = (/obj/item/weapon/material/shard{tag = "icon-shardmedium"; icon_state = "shardmedium"},/turf/template_noop,/area/template_noop) +"F" = (/obj/item/device/transfer_valve,/turf/simulated/floor/outdoors/rocks,/area/submap/DJOutpost1) +"G" = (/obj/structure/grille/broken,/obj/item/weapon/material/shard{icon_state = "medium"},/turf/simulated/floor,/area/submap/DJOutpost1) +"H" = (/obj/item/weapon/material/shard{icon_state = "medium"},/turf/template_noop,/area/template_noop) +"I" = (/obj/machinery/door/airlock/external,/turf/simulated/floor/wood/broken,/area/submap/DJOutpost1) +"J" = (/obj/item/weapon/material/shard,/turf/template_noop,/area/template_noop) +"K" = (/obj/structure/sink{dir = 4; icon_state = "sink"; pixel_x = 15; tag = "icon-sink (EAST)"},/turf/simulated/floor/wood/broken,/area/submap/DJOutpost1) +"L" = (/obj/item/weapon/storage/toolbox/mechanical,/turf/simulated/floor/outdoors/rocks,/area/submap/DJOutpost1) +"M" = (/obj/structure/grille/broken,/obj/item/weapon/material/shard{icon_state = "medium"},/obj/item/stack/rods,/turf/simulated/floor,/area/submap/DJOutpost1) +"N" = (/obj/structure/grille/broken,/obj/item/stack/rods,/turf/simulated/floor,/area/submap/DJOutpost1) +"O" = (/obj/structure/lattice,/turf/simulated/floor/outdoors/dirt,/area/submap/DJOutpost1) +"P" = (/obj/effect/decal/cleanable/ash,/turf/simulated/floor/wood/broken,/area/submap/DJOutpost1) +"S" = (/obj/structure/girder,/turf/simulated/floor/outdoors/dirt,/area/submap/DJOutpost1) + +(1,1,1) = {" +aaaaaaaaaaaaaaaaaa +aaabcbbbbbdbaaaaaa +aabbeekffefbbaaaaa +abbePOSoOeegbbaaaa +nweeOooroOiPhCsoaa +DbeporxrrooOlSruoa +abeOrrrrrLmyqxrroa +abbkxrrFrrxbbkrAoa +abPorrrrrroOfbouaa +abeOorrrropeeboaaa +ndeOokxBxkOPfMHaaa +abbeOkOoOkeKbbaaaa +aabbObePebfbbaaaaa +aaabNbbIbbGbaaaaaa +aaaaJaaaaaaaaaaaaa +"} diff --git a/maps/submaps/surface_submaps/wilderness/wilderness.dm b/maps/submaps/surface_submaps/wilderness/wilderness.dm index 0ef6ace495..c10f45c6ad 100644 --- a/maps/submaps/surface_submaps/wilderness/wilderness.dm +++ b/maps/submaps/surface_submaps/wilderness/wilderness.dm @@ -17,6 +17,7 @@ #include "Lab1.dmm" #include "Rocky4.dmm" #include "DJOutpost1.dmm" +#include "DJOutpost2.dmm" #include "Rockybase.dmm" #include "MHR.dmm" #include "GovPatrol.dmm" @@ -132,6 +133,14 @@ name = "DJOutpost1" desc = "Home of Sif Free Radio, the best - and only - radio station for miles around." mappath = 'maps/submaps/surface_submaps/wilderness/DJOutpost1.dmm' + template_group = "Sif Free Radio" + cost = 5 + +/datum/map_template/surface/wilderness/deep/DJOutpost2 + name = "DJOutpost2" + desc = "The cratered remains of Sif Free Radio, the best - and only - radio station for miles around." + mappath = 'maps/submaps/surface_submaps/wilderness/DJOutpost2.dmm' + template_group = "Sif Free Radio" cost = 5 /datum/map_template/surface/wilderness/deep/Boombase diff --git a/maps/submaps/surface_submaps/wilderness/wilderness_areas.dm b/maps/submaps/surface_submaps/wilderness/wilderness_areas.dm index 3751fa3be6..8e37e52da4 100644 --- a/maps/submaps/surface_submaps/wilderness/wilderness_areas.dm +++ b/maps/submaps/surface_submaps/wilderness/wilderness_areas.dm @@ -54,6 +54,9 @@ /area/submap/DJOutpost1 name = "DJOutpost1" +/area/submap/DJOutpost2 + name = "DJOutpost2" + /area/submap/MHR name = "Manhack Rock" From 545cc15849f40855958cf5de715d7918de9285c4 Mon Sep 17 00:00:00 2001 From: MarinaGryphon Date: Fri, 30 Mar 2018 19:36:45 -0500 Subject: [PATCH 14/24] Adds a message on emag to the battle arcade machine. (#5129) * Updates one arcade machine emag message to to_chat, adds another. * Returns 1 in emag_act for orion trail. * Converts a bunch of stuff to macros. Should probably not break anything. * Fixes an improper macro usage. * Attempts to fix all 20 errors. --- code/game/machinery/computer/arcade.dm | 44 ++++++++++++++------------ 1 file changed, 23 insertions(+), 21 deletions(-) diff --git a/code/game/machinery/computer/arcade.dm b/code/game/machinery/computer/arcade.dm index 2f0fce2bd3..bdf4e95fe0 100644 --- a/code/game/machinery/computer/arcade.dm +++ b/code/game/machinery/computer/arcade.dm @@ -271,6 +271,8 @@ /obj/machinery/computer/arcade/battle/emag_act(var/charges, var/mob/user) if(!emagged) + to_chat(user, span("notice","You override the cheat code menu and skip to Cheat #[rand(1, 50)]: Hyper-Lethal Mode.")) + temp = "If you die in the game, you die for real!" player_hp = 30 player_mp = 10 @@ -399,18 +401,18 @@ dat += "
You ran out of food and starved." if(emagged) user.nutrition = 0 //yeah you pretty hongry - user << "Your body instantly contracts to that of one who has not eaten in months. Agonizing cramps seize you as you fall to the floor." + to_chat(user, span("danger", "Your body instantly contracts to that of one who has not eaten in months. Agonizing cramps seize you as you fall to the floor.")) if(fuel <= 0) dat += "
You ran out of fuel, and drift, slowly, into a star." if(emagged) var/mob/living/M = user M.adjust_fire_stacks(5) - M.IgniteMob() //flew into a star, so you're on fire - user << "You feel an immense wave of heat emanate from \the [src]. Your skin bursts into flames." + M.IgniteMob() //flew into a star, so you're on fire + to_chat(user,span("danger", "You feel an immense wave of heat emanate from \the [src]. Your skin bursts into flames.")) dat += "

OK...

" if(emagged) - user << "You're never going to make it to Orion..." + to_chat(user, span("danger", "You're never going to make it to Orion...")) user.death() emagged = 0 //removes the emagged status after you lose gameStatus = ORION_STATUS_START @@ -475,20 +477,20 @@ switch(event) if(ORION_TRAIL_RAIDERS) if(prob(50)) - usr << "You hear battle shouts. The tramping of boots on cold metal. Screams of agony. The rush of venting air. Are you going insane?" + to_chat(usr, span("warning", "You hear battle shouts. The tramping of boots on cold metal. Screams of agony. The rush of venting air. Are you going insane?")) M.hallucination += 30 else - usr << "Something strikes you from behind! It hurts like hell and feel like a blunt weapon, but nothing is there..." + to_chat(usr, span("danger", "Something strikes you from behind! It hurts like hell and feel like a blunt weapon, but nothing is there...")) M.take_organ_damage(25) if(ORION_TRAIL_ILLNESS) var/severity = rand(1,3) //pray to RNGesus. PRAY, PIGS if(severity == 1) - M << "You suddenly feel slightly nauseous." //got off lucky + to_chat(M, span("warning", "You suddenly feel slightly nauseous.")) //got off lucky if(severity == 2) - usr << "You suddenly feel extremely nauseous and hunch over until it passes." + to_chat(usr, span("warning", "You suddenly feel extremely nauseous and hunch over until it passes.")) M.Stun(3) if(severity >= 3) //you didn't pray hard enough - M << "An overpowering wave of nausea consumes over you. You hunch over, your stomach's contents preparing for a spectacular exit." + to_chat(M, span("warning", "An overpowering wave of nausea consumes over you. You hunch over, your stomach's contents preparing for a spectacular exit.")) spawn(30) if(istype(M,/mob/living/carbon/human)) var/mob/living/carbon/human/H = M @@ -499,12 +501,12 @@ src.visible_message("A sudden gust of powerful wind slams \the [M] into the floor!", "You hear a large fwooshing sound, followed by a bang.") M.take_organ_damage(15) else - M << "A violent gale blows past you, and you barely manage to stay standing!" + to_chat(M, span("warning", "A violent gale blows past you, and you barely manage to stay standing!")) if(ORION_TRAIL_COLLISION) //by far the most damaging event if(prob(90) && !hull) var/turf/simulated/floor/F = src.loc F.ChangeTurf(/turf/space) - src.visible_message("Something slams into the floor around \the [src], exposing it to space!", "You hear something crack and break.") + src.visible_message(span("danger", "Something slams into the floor around \the [src], exposing it to space!"), "You hear something crack and break.") else src.visible_message("Something slams into the floor around \the [src] - luckily, it didn't get through!", "You hear something crack.") if(ORION_TRAIL_MALFUNCTION) @@ -573,9 +575,9 @@ event() if(emagged) //has to be here because otherwise it doesn't work src.show_message("\The [src] states, 'YOU ARE EXPERIENCING A BLACKHOLE. BE TERRIFIED.","You hear something say, 'YOU ARE EXPERIENCING A BLACKHOLE. BE TERRFIED'") - usr << "Something draws you closer and closer to the machine." + to_chat(usr, span("warning", "Something draws you closer and closer to the machine.")) sleep(10) - usr << "This is really starting to hurt!" + to_chat(usr, span("danger", "This is really starting to hurt!")) var i; //spawning a literal blackhole would be fun, but a bit disruptive. for(i=0;i<4;i++) var/mob/living/L = usr @@ -1001,12 +1003,12 @@ /obj/machinery/computer/arcade/orion_trail/emag_act(mob/user) if(!emagged) - user << "You override the cheat code menu and skip to Cheat #[rand(1, 50)]: Realism Mode." + to_chat(user, span("notice", "You override the cheat code menu and skip to Cheat #[rand(1, 50)]: Realism Mode.")) name = "The Orion Trail: Realism Edition" desc = "Learn how our ancestors got to Orion, and try not to die in the process!" newgame() emagged = 1 - + return 1 /obj/item/weapon/orion_ship name = "model settler ship" @@ -1021,9 +1023,9 @@ if(!(in_range(user, src))) return if(!active) - user << "There's a little switch on the bottom. It's flipped down." + to_chat(user, span("notice", "There's a little switch on the bottom. It's flipped down.")) else - user << "There's a little switch on the bottom. It's flipped up." + to_chat(user, span("notice", "There's a little switch on the bottom. It's flipped up.")) /obj/item/weapon/orion_ship/attack_self(mob/user) if(active) @@ -1032,17 +1034,17 @@ message_admins("[key_name_admin(usr)] primed an explosive Orion ship for detonation.") log_game("[key_name(usr)] primed an explosive Orion ship for detonation.") - user << "You flip the switch on the underside of [src]." + to_chat(user, span("warning", "You flip the switch on the underside of [src].")) active = 1 - src.visible_message("[src] softly beeps and whirs to life!") + src.visible_message(span("notice", "[src] softly beeps and whirs to life!")) src.audible_message("\The [src] says, 'This is ship ID #[rand(1,1000)] to Orion Port Authority. We're coming in for landing, over.'") sleep(20) - src.visible_message("[src] begins to vibrate...") + src.visible_message(span("warning", "[src] begins to vibrate...")) src.audible_message("\The [src] says, 'Uh, Port? Having some issues with our reactor, could you check it out? Over.'") sleep(30) src.audible_message("\The [src] says, 'Oh, God! Code Eight! CODE EIGHT! IT'S GONNA BL-'") sleep(3.6) - src.visible_message("[src] explodes!") + src.visible_message(span("danger", "[src] explodes!")) explosion(src.loc, 1,2,4) qdel(src) From 4a1ef0dbd6ad6a6f57a3bdd25b4c65a21564246f Mon Sep 17 00:00:00 2001 From: Cameron653 Date: Sat, 31 Mar 2018 11:02:01 -0400 Subject: [PATCH 15/24] Makes syndie dufflebags hint that they let you move faster --- code/game/objects/items/weapons/storage/backpack.dm | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/code/game/objects/items/weapons/storage/backpack.dm b/code/game/objects/items/weapons/storage/backpack.dm index 4d567019ae..cee423a627 100644 --- a/code/game/objects/items/weapons/storage/backpack.dm +++ b/code/game/objects/items/weapons/storage/backpack.dm @@ -138,18 +138,18 @@ /obj/item/weapon/storage/backpack/dufflebag/syndie name = "black dufflebag" - desc = "A large dufflebag for holding extra tactical supplies." + desc = "A large dufflebag for holding extra tactical supplies. This one appears to be made out of lighter material than usual." icon_state = "duffle_syndie" slowdown = 0 /obj/item/weapon/storage/backpack/dufflebag/syndie/med name = "medical dufflebag" - desc = "A large dufflebag for holding extra tactical medical supplies." + desc = "A large dufflebag for holding extra tactical medical supplies. This one appears to be made out of lighter material than usual." icon_state = "duffle_syndiemed" /obj/item/weapon/storage/backpack/dufflebag/syndie/ammo name = "ammunition dufflebag" - desc = "A large dufflebag for holding extra weapons ammunition and supplies." + desc = "A large dufflebag for holding extra weapons ammunition and supplies. This one appears to be made out of lighter material than usual." icon_state = "duffle_syndieammo" /obj/item/weapon/storage/backpack/dufflebag/captain @@ -417,4 +417,4 @@ else H.visible_message("\The [src] decides not to unpack \the [src]!", \ "You decide not to unpack \the [src]!") - return \ No newline at end of file + return From 12bf2d1bf7e12f999a3963bc4f6e9cd13a462ec5 Mon Sep 17 00:00:00 2001 From: Lorwp Date: Sun, 1 Apr 2018 14:39:40 +1000 Subject: [PATCH 16/24] Actually adds adhoc_fallback to pilot headsets --- html/changelogs/lorwp-pilotfallback.yml | 13 +++++++++++++ maps/southern_cross/items/headset_sc.dm | 1 + 2 files changed, 14 insertions(+) create mode 100644 html/changelogs/lorwp-pilotfallback.yml diff --git a/html/changelogs/lorwp-pilotfallback.yml b/html/changelogs/lorwp-pilotfallback.yml new file mode 100644 index 0000000000..eccc2538bb --- /dev/null +++ b/html/changelogs/lorwp-pilotfallback.yml @@ -0,0 +1,13 @@ +# Your name. +author: lorwp + +# Optional: Remove this file after generating master changelog. Useful for PR changelogs that won't get used again. +delete-after: True + +# Any changes you've made. See valid prefix list above. +# INDENT WITH TWO SPACES. NOT TABS. SPACES. +# SCREW THIS UP AND IT WON'T WORK. +# Also, all entries are changed into a single [] after a master changelog generation. Just remove the brackets when you add new entries. +# Please surround your changes in double quotes ("), as certain characters otherwise screws up compiling. The quotes will not show up in the changelog. +changes: + - bugfix: "Fixes Pilot headsets not being able to fallback to shortwave radio" \ No newline at end of file diff --git a/maps/southern_cross/items/headset_sc.dm b/maps/southern_cross/items/headset_sc.dm index d575f3abc6..eca7eeb27d 100644 --- a/maps/southern_cross/items/headset_sc.dm +++ b/maps/southern_cross/items/headset_sc.dm @@ -2,6 +2,7 @@ name = "pilot's headset" desc = "A headset used by pilots, has access to supply and explorer channels." icon_state = "pilot_headset" + adhoc_fallback = TRUE ks2type = /obj/item/device/encryptionkey/pilot /obj/item/device/radio/headset/pilot/alt From 266b25232d3bb9b358112dc0851ad2fa3ce95a7b Mon Sep 17 00:00:00 2001 From: Woodratt Date: Sat, 31 Mar 2018 22:33:11 -0700 Subject: [PATCH 17/24] Map fixes and tweaks - Flashers in brig cells now should work, extra floor flash in communal brig to deal with crims. - Inproper access, SMES rooms. - Trader start point being dark now fixed. - Medical Vendor Plus has more advanced burn and trauma kits. Also splints. - Cell 1 and 2 in the brig can now be accessed by detectives. - Additional r-walls next to the engine room to help with rads. - Floor decals in a couple areas. - RD office now has its telescreen back. --- code/game/area/Space Station 13 areas.dm | 1 + code/game/machinery/vending.dm | 2 +- html/changelogs/Woodrat - Bugfixes.yml | 43 ++++++ maps/southern_cross/southern_cross-1.dmm | 171 +++++++++++------------ 4 files changed, 130 insertions(+), 87 deletions(-) create mode 100644 html/changelogs/Woodrat - Bugfixes.yml diff --git a/code/game/area/Space Station 13 areas.dm b/code/game/area/Space Station 13 areas.dm index df3d06c141..d249518607 100755 --- a/code/game/area/Space Station 13 areas.dm +++ b/code/game/area/Space Station 13 areas.dm @@ -282,6 +282,7 @@ area/space/atmosalert() /area/shuttle/trade name = "\improper Trade Station" icon_state = "red" + dynamic_lighting = 0 /area/shuttle/trade/centcom name = "\improper Trade Shuttle CentCom" diff --git a/code/game/machinery/vending.dm b/code/game/machinery/vending.dm index 939b4da1d0..269346ab71 100644 --- a/code/game/machinery/vending.dm +++ b/code/game/machinery/vending.dm @@ -863,7 +863,7 @@ /obj/item/weapon/reagent_containers/glass/bottle/stoxin = 4,/obj/item/weapon/reagent_containers/glass/bottle/toxin = 4, /obj/item/weapon/reagent_containers/syringe/antiviral = 4,/obj/item/weapon/reagent_containers/syringe = 12, /obj/item/device/healthanalyzer = 5,/obj/item/weapon/reagent_containers/glass/beaker = 4, /obj/item/weapon/reagent_containers/dropper = 2, - /obj/item/stack/medical/advanced/bruise_pack = 3, /obj/item/stack/medical/advanced/ointment = 3, /obj/item/stack/medical/splint = 2, + /obj/item/stack/medical/advanced/bruise_pack = 6, /obj/item/stack/medical/advanced/ointment = 6, /obj/item/stack/medical/splint = 4, /obj/item/weapon/storage/pill_bottle/carbon = 2) contraband = list(/obj/item/weapon/reagent_containers/pill/tox = 3,/obj/item/weapon/reagent_containers/pill/stox = 4,/obj/item/weapon/reagent_containers/pill/antitox = 6) idle_power_usage = 211 //refrigerator - believe it or not, this is actually the average power consumption of a refrigerated vending machine according to NRCan. diff --git a/html/changelogs/Woodrat - Bugfixes.yml b/html/changelogs/Woodrat - Bugfixes.yml new file mode 100644 index 0000000000..9e42ad9edc --- /dev/null +++ b/html/changelogs/Woodrat - Bugfixes.yml @@ -0,0 +1,43 @@ +################################ +# Example Changelog File +# +# Note: This file, and files beginning with ".", and files that don't end in ".yml" will not be read. If you change this file, you will look really dumb. +# +# Your changelog will be merged with a master changelog. (New stuff added only, and only on the date entry for the day it was merged.) +# When it is, any changes listed below will disappear. +# +# Valid Prefixes: +# bugfix +# wip (For works in progress) +# tweak +# soundadd +# sounddel +# rscadd (general adding of nice things) +# rscdel (general deleting of nice things) +# imageadd +# imagedel +# maptweak +# spellcheck (typo fixes) +# experiment +################################# + +# Your name. +author: Woodrat + +# Optional: Remove this file after generating master changelog. Useful for PR changelogs that won't get used again. +delete-after: True + +# Any changes you've made. See valid prefix list above. +# INDENT WITH TWO SPACES. NOT TABS. SPACES. +# SCREW THIS UP AND IT WON'T WORK. +# Also, all entries are changed into a single [] after a master changelog generation. Just remove the brackets when you add new entries. +# Please surround your changes in double quotes ("), as certain characters otherwise screws up compiling. The quotes will not show up in the changelog. +changes: + - bugfix: "Flashers in brig cells now should work, extra floor flash in communal brig to deal with crims." + - bugfix: "Inproper access, SMES rooms." + - bugfix: "Trader start point being dark now fixed." + - rscadd: "Medical Vendor Plus has more advanced burn and trauma kits." + - tweak: "Cell 1 and 2 in the brig can now be accessed by detectives." + - tweak: "Additional r-walls next to the engine room to help with rads." + - tweak: "Floor decals in a couple areas." + - tweak: "RD office now has its telescreen back." \ No newline at end of file diff --git a/maps/southern_cross/southern_cross-1.dmm b/maps/southern_cross/southern_cross-1.dmm index d83266f18c..09dbb2996c 100644 --- a/maps/southern_cross/southern_cross-1.dmm +++ b/maps/southern_cross/southern_cross-1.dmm @@ -2741,7 +2741,7 @@ "baK" = (/obj/machinery/atmospherics/pipe/manifold/hidden/supply,/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 1},/obj/structure/disposalpipe/segment,/turf/simulated/floor/tiled,/area/security/prison) "baL" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled,/area/security/prison) "baM" = (/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/bed/chair{dir = 1},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled,/area/security/prison) -"baN" = (/obj/machinery/atmospherics/pipe/manifold/hidden/supply,/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers,/turf/simulated/floor/tiled,/area/security/prison) +"baN" = (/obj/machinery/atmospherics/pipe/manifold/hidden/supply,/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers,/obj/machinery/flasher{id = "permflash"; name = "Floor mounted flash"; pixel_x = 0},/obj/effect/floor_decal/industrial/outline/yellow,/turf/simulated/floor/tiled,/area/security/prison) "baO" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 1},/turf/simulated/floor/tiled,/area/security/prison) "baP" = (/obj/machinery/flasher{id = "permflash"; name = "Floor mounted flash"; pixel_x = 0},/obj/effect/floor_decal/industrial/outline/yellow,/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 1},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled,/area/security/prison) "baQ" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 9},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 10},/turf/simulated/floor/tiled,/area/security/prison) @@ -2920,10 +2920,10 @@ "beh" = (/obj/machinery/door/airlock/external{name = "Toxins Test Chamber"},/turf/simulated/floor/airless,/area/rnd/test_area) "bei" = (/obj/structure/sign/warning/high_voltage,/turf/simulated/wall/r_wall,/area/security/security_cell_hallway) "bej" = (/obj/structure/cable/green{d2 = 4; icon_state = "0-4"},/obj/machinery/door/firedoor/border_only,/obj/machinery/atmospherics/pipe/simple/hidden,/obj/effect/wingrille_spawn/reinforced,/turf/simulated/floor/plating,/area/security/security_cell_hallway) -"bek" = (/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable/green{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/cable/green{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/door/firedoor/glass,/obj/effect/floor_decal/industrial/hatch/yellow,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/door/window/brigdoor/northright{id = "Cell 2"; name = "Cell 2"; req_access = list(2)},/turf/simulated/floor/tiled,/area/security/security_cell_hallway) +"bek" = (/obj/machinery/light,/turf/simulated/floor/tiled/airless,/area/rnd/test_area) "bel" = (/obj/structure/cable/green{d2 = 8; icon_state = "0-8"},/obj/machinery/door/firedoor/border_only,/obj/effect/wingrille_spawn/reinforced,/turf/simulated/floor/plating,/area/security/security_cell_hallway) "bem" = (/obj/structure/cable/green{d2 = 4; icon_state = "0-4"},/obj/machinery/door/firedoor/border_only,/obj/effect/wingrille_spawn/reinforced,/turf/simulated/floor/plating,/area/security/security_cell_hallway) -"ben" = (/obj/structure/cable/green{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/cable/green{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/door/firedoor/glass,/obj/effect/floor_decal/industrial/hatch/yellow,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/door/window/brigdoor/northright{id = "Cell 1"; name = "Cell 1"; req_access = list(2)},/turf/simulated/floor/tiled,/area/security/security_cell_hallway) +"ben" = (/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable/green{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/cable/green{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/door/firedoor/glass,/obj/effect/floor_decal/industrial/hatch/yellow,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/door/window/brigdoor/northright{id = "Cell 2"; name = "Cell 2"; req_access = null; req_one_access = list(2,4)},/turf/simulated/floor/tiled,/area/security/security_cell_hallway) "beo" = (/obj/machinery/door/firedoor/glass,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 5},/obj/machinery/door/airlock/glass_security{id_tag = "prisonexit"; name = "Brig Exit"; req_access = list(2)},/turf/simulated/floor/tiled/steel_grid,/area/security/prison) "bep" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/door/firedoor/glass,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 10},/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/door/airlock/glass_security{id_tag = "prisonexit"; name = "Brig Exit"; req_access = list(2)},/turf/simulated/floor/tiled/steel_grid,/area/security/prison) "beq" = (/obj/structure/table/reinforced,/obj/machinery/door/firedoor/border_only,/obj/machinery/door/window/northright{name = "Visitation"; req_access = list(2)},/obj/item/weapon/book/codex/corp_regs,/obj/machinery/door/blast/regular{density = 0; icon_state = "pdoor0"; id = "Prison Gate"; name = "Communal Brig Blast Door"; opacity = 0},/turf/simulated/floor/tiled,/area/security/prison) @@ -2951,12 +2951,12 @@ "beM" = (/obj/structure/closet/emcloset,/turf/simulated/floor/airless,/area/rnd/test_area) "beN" = (/obj/structure/lattice,/obj/effect/landmark{name = "carpspawn"},/turf/space,/area/space) "beO" = (/obj/structure/cable/green{d2 = 2; icon_state = "0-2"},/obj/machinery/door/firedoor/border_only,/obj/effect/wingrille_spawn/reinforced,/turf/simulated/floor/plating,/area/security/security_cell_hallway) -"beP" = (/obj/machinery/camera/network/security{c_tag = "SEC - Cell Hallway 1"; dir = 4},/obj/machinery/door_timer/cell_3{id = "Cell 2"; name = "Cell 2"; pixel_y = 32},/obj/effect/floor_decal/borderfloor{dir = 9},/obj/effect/floor_decal/corner/red/border{dir = 9},/turf/simulated/floor/tiled,/area/security/security_cell_hallway) -"beQ" = (/obj/machinery/atmospherics/pipe/simple/hidden,/obj/machinery/button/remote/blast_door{id = "Cell 2"; name = "Cell 2 Door"; pixel_x = -1; pixel_y = 28; req_access = list(2)},/obj/effect/floor_decal/borderfloor/corner{dir = 1},/obj/effect/floor_decal/corner/red/bordercorner{dir = 1},/turf/simulated/floor/tiled,/area/security/security_cell_hallway) +"beP" = (/obj/structure/cable/green{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/cable/green{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/door/firedoor/glass,/obj/effect/floor_decal/industrial/hatch/yellow,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/door/window/brigdoor/northright{id = "Cell 1"; name = "Cell 1"; req_access = null; req_one_access = list(2,4)},/turf/simulated/floor/tiled,/area/security/security_cell_hallway) +"beQ" = (/obj/machinery/camera/network/security{c_tag = "SEC - Cell Hallway 1"; dir = 4},/obj/effect/floor_decal/borderfloor{dir = 9},/obj/effect/floor_decal/corner/red/border{dir = 9},/obj/machinery/door_timer/cell_2{pixel_y = 32; req_access = null; req_one_access = list(2,4)},/turf/simulated/floor/tiled,/area/security/security_cell_hallway) "beR" = (/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/tiled,/area/security/security_cell_hallway) "beS" = (/obj/item/device/radio/intercom{dir = 1; name = "Station Intercom (General)"; pixel_y = 21},/obj/effect/floor_decal/borderfloor/corner{dir = 4},/obj/effect/floor_decal/corner/red/bordercorner{dir = 4},/turf/simulated/floor/tiled,/area/security/security_cell_hallway) -"beT" = (/obj/machinery/atmospherics/unary/vent_pump/on,/obj/machinery/door_timer/cell_3{id = "Cell 1"; name = "Cell 1"; pixel_x = 0; pixel_y = 32},/obj/effect/floor_decal/borderfloor{dir = 1},/obj/effect/floor_decal/corner/red/border{dir = 1},/turf/simulated/floor/tiled,/area/security/security_cell_hallway) -"beU" = (/obj/machinery/button/remote/blast_door{id = "Cell 1"; name = "Cell 1 Door"; pixel_x = -1; pixel_y = 28; req_access = list(2)},/obj/effect/floor_decal/borderfloor/corner{dir = 1},/obj/effect/floor_decal/corner/red/bordercorner{dir = 1},/turf/simulated/floor/tiled,/area/security/security_cell_hallway) +"beT" = (/obj/machinery/atmospherics/pipe/simple/hidden,/obj/machinery/button/remote/blast_door{id = "Cell 2"; name = "Cell 2 Door"; pixel_x = -1; pixel_y = 28; req_access = null; req_one_access = list(2,4)},/obj/effect/floor_decal/borderfloor/corner{dir = 1},/obj/effect/floor_decal/corner/red/bordercorner{dir = 1},/obj/machinery/button/flasher{id = "Cell 2"; name = "Cell 2 Flash"; pixel_x = -1; pixel_y = 36; req_access = list(2,4); tag = "Cell 2"},/turf/simulated/floor/tiled,/area/security/security_cell_hallway) +"beU" = (/obj/machinery/atmospherics/unary/vent_pump/on,/obj/effect/floor_decal/borderfloor{dir = 1},/obj/effect/floor_decal/corner/red/border{dir = 1},/obj/machinery/door_timer/cell_1{pixel_y = 32; req_access = null; req_one_access = list(2,4)},/turf/simulated/floor/tiled,/area/security/security_cell_hallway) "beV" = (/obj/item/device/radio/intercom{dir = 1; name = "Station Intercom (General)"; pixel_y = 21},/turf/simulated/floor/tiled,/area/security/security_cell_hallway) "beW" = (/obj/machinery/computer/security/telescreen{desc = "Big Brother is watching."; layer = 3.4; name = "Brig Monitor"; network = list("Prison"); pixel_x = 0; pixel_y = 28},/obj/effect/floor_decal/industrial/warning/corner{dir = 4},/obj/machinery/atmospherics/unary/vent_scrubber/on,/turf/simulated/floor/tiled,/area/security/security_cell_hallway) "beX" = (/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 1},/turf/simulated/floor/tiled,/area/security/security_cell_hallway) @@ -3247,7 +3247,7 @@ "bkw" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/disposalpipe/segment,/turf/simulated/floor/tiled/dark,/area/security/brig) "bkx" = (/obj/effect/floor_decal/industrial/hatch/yellow,/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/window/northright{name = "Security Delivery"; req_access = list(1)},/turf/simulated/floor/tiled,/area/security/brig) "bky" = (/turf/simulated/wall/r_wall,/area/maintenance/substation/security) -"bkz" = (/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock/engineering{name = "Security Substation"; req_one_access = list(1,11,24)},/turf/simulated/floor/plating,/area/maintenance/substation/security) +"bkz" = (/obj/machinery/button/remote/blast_door{id = "Cell 1"; name = "Cell 1 Door"; pixel_x = -1; pixel_y = 28; req_access = null; req_one_access = list(2,4)},/obj/effect/floor_decal/borderfloor/corner{dir = 1},/obj/effect/floor_decal/corner/red/bordercorner{dir = 1},/obj/machinery/button/flasher{id = "Cell 1"; name = "Cell 1 Flash"; pixel_x = -1; pixel_y = 36; req_access = list(2,4); tag = "Cell 1"},/turf/simulated/floor/tiled,/area/security/security_cell_hallway) "bkA" = (/turf/simulated/wall/r_wall,/area/engineering/atmos) "bkB" = (/obj/machinery/atmospherics/pipe/simple/visible/green{tag = "icon-intact (SOUTHEAST)"; icon_state = "intact"; dir = 6},/turf/simulated/wall/r_wall,/area/engineering/atmos) "bkC" = (/obj/machinery/atmospherics/pipe/manifold/visible/green{tag = "icon-map (EAST)"; icon_state = "map"; dir = 4},/obj/machinery/door/firedoor/border_only,/obj/effect/wingrille_spawn/reinforced,/obj/machinery/door/blast/regular{density = 0; dir = 1; icon_state = "pdoor0"; id = "atmoslockdown"; name = "Atmospherics Lockdown"; opacity = 0},/turf/simulated/floor/plating,/area/engineering/atmos) @@ -4289,7 +4289,7 @@ "bEy" = (/obj/machinery/portable_atmospherics/canister/sleeping_agent,/obj/effect/floor_decal/industrial/hatch/yellow,/obj/machinery/atmospherics/unary/vent_scrubber/on,/turf/simulated/floor/tiled/dark,/area/rnd/storage) "bEz" = (/obj/machinery/portable_atmospherics/canister/carbon_dioxide,/obj/effect/floor_decal/industrial/hatch/yellow,/obj/item/device/radio/intercom{dir = 4; name = "Station Intercom (General)"; pixel_x = 21},/turf/simulated/floor/tiled/dark,/area/rnd/storage) "bEA" = (/turf/simulated/wall/r_wall,/area/rnd/toxins_launch) -"bEB" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock/research{name = "Toxins Launch Room"; req_access = list(7)},/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/tiled/white,/area/rnd/toxins_launch) +"bEB" = (/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock/engineering{name = "Security Substation"; req_access = list(1); req_one_access = null},/turf/simulated/floor/plating,/area/maintenance/substation/security) "bEC" = (/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 4; frequency = 1379; id_tag = "eng_port_pump"},/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 9},/obj/machinery/airlock_sensor{frequency = 1379; id_tag = "eng_port_sensor"; pixel_x = -24; pixel_y = 0},/turf/simulated/floor,/area/engineering/drone_fabrication) "bED" = (/obj/machinery/atmospherics/pipe/manifold/hidden{dir = 1; icon_state = "map"; tag = "icon-manifold-f (NORTH)"},/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 1},/turf/simulated/floor,/area/engineering/drone_fabrication) "bEE" = (/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 8; frequency = 1379; id_tag = "eng_port_pump"},/obj/effect/floor_decal/industrial/warning{dir = 5},/obj/machinery/light/small{dir = 4; pixel_y = 0},/turf/simulated/floor,/area/engineering/drone_fabrication) @@ -4352,7 +4352,7 @@ "bFJ" = (/obj/structure/flora/pottedplant/mysterious,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/tiled/white,/area/crew_quarters/heads/sc/hor) "bFK" = (/obj/structure/table/reinforced,/obj/machinery/computer/skills,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 10},/turf/simulated/floor/tiled/white,/area/crew_quarters/heads/sc/hor) "bFL" = (/obj/structure/table/reinforced,/obj/item/weapon/folder/white_rd,/obj/item/weapon/stamp/rd{pixel_x = 3; pixel_y = -2},/obj/item/clothing/glasses/welding/superior,/turf/simulated/floor/tiled/white,/area/crew_quarters/heads/sc/hor) -"bFM" = (/obj/structure/table/reinforced,/obj/item/weapon/paper_bin{pixel_x = 1; pixel_y = 9},/obj/item/weapon/pen/multi,/obj/item/weapon/paper/monitorkey,/obj/effect/floor_decal/borderfloorwhite{dir = 4},/obj/effect/floor_decal/corner/blue/border{dir = 4},/turf/simulated/floor/tiled/white,/area/crew_quarters/heads/sc/hor) +"bFM" = (/turf/simulated/wall,/area/crew_quarters/heads/sc/hor) "bFN" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 4},/turf/simulated/floor/wood,/area/rnd/research) "bFO" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/wood,/area/rnd/research) "bFP" = (/obj/machinery/hologram/holopad,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 10},/turf/simulated/floor/wood,/area/rnd/research) @@ -4360,21 +4360,21 @@ "bFR" = (/obj/structure/closet/secure_closet/scientist,/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 4},/obj/machinery/light{icon_state = "tube1"; dir = 8},/obj/effect/floor_decal/borderfloorwhite/corner{dir = 1},/obj/effect/floor_decal/corner/purple/bordercorner{dir = 1},/turf/simulated/floor/tiled/white,/area/rnd/research_lockerroom) "bFS" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/cable/green{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/simulated/floor/tiled/white,/area/rnd/research_lockerroom) "bFT" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 5},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/effect/floor_decal/steeldecal/steel_decals4,/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 10},/turf/simulated/floor/tiled/white,/area/rnd/research_lockerroom) -"bFU" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock{name = "Research Restroom"; req_access = list(47)},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/tiled/freezer,/area/rnd/research_restroom_sc) -"bFV" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/tiled/freezer,/area/rnd/research_restroom_sc) +"bFU" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock/research{name = "Toxins Launch Room"; req_access = list(7)},/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/tiled/steel_grid,/area/rnd/toxins_launch) +"bFV" = (/obj/structure/table/reinforced,/obj/item/weapon/paper_bin{pixel_x = 1; pixel_y = 9},/obj/item/weapon/pen/multi,/obj/item/weapon/paper/monitorkey,/obj/effect/floor_decal/borderfloorwhite{dir = 4},/obj/effect/floor_decal/corner/blue/border{dir = 4},/obj/machinery/computer/security/telescreen{desc = "Used for watching the RD's goons from the safety of his office."; name = "Research Monitor"; network = list("Research","Toxins Test Area","Robots","Anomaly Isolation","Research Outpost"); pixel_x = 32; pixel_y = -4},/turf/simulated/floor/tiled/white,/area/crew_quarters/heads/sc/hor) "bFW" = (/obj/structure/table/glass,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 10},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 10},/obj/machinery/light{dir = 1},/obj/item/weapon/towel{color = "#800080"; name = "purple towel"},/obj/item/weapon/towel{color = "#800080"; name = "purple towel"},/obj/item/weapon/towel{color = "#800080"; name = "purple towel"},/obj/item/weapon/towel{color = "#800080"; name = "purple towel"},/obj/item/weapon/towel{color = "#800080"; name = "purple towel"},/obj/item/weapon/towel{color = "#800080"; name = "purple towel"},/obj/item/weapon/soap/nanotrasen,/obj/random/soap,/obj/structure/cable/green{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/extinguisher_cabinet{pixel_y = 30},/turf/simulated/floor/tiled/freezer,/area/rnd/research_restroom_sc) "bFX" = (/turf/simulated/floor/tiled/freezer,/area/rnd/research_restroom_sc) "bFY" = (/obj/structure/window/basic,/obj/structure/undies_wardrobe,/obj/machinery/alarm{dir = 8; icon_state = "alarm0"; pixel_x = 22},/obj/item/device/radio/intercom{dir = 1; name = "Station Intercom (General)"; pixel_y = 21},/turf/simulated/floor/tiled/freezer,/area/rnd/research_restroom_sc) "bFZ" = (/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 8},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 8},/obj/effect/floor_decal/borderfloorwhite{dir = 8},/obj/effect/floor_decal/corner/purple/border{dir = 8},/turf/simulated/floor/tiled/white,/area/rnd/research) "bGa" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/cable/green{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/effect/floor_decal/steeldecal/steel_decals4,/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 10},/turf/simulated/floor/tiled/white,/area/rnd/research) -"bGb" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/door/airlock/research{name = "Toxins Storage"; req_access = list(8)},/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/tiled,/area/rnd/storage) +"bGb" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock{name = "Research Restroom"; req_access = list(47)},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/tiled/steel_grid,/area/rnd/research_restroom_sc) "bGc" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/cable/green{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 1},/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 6},/turf/simulated/floor/tiled,/area/rnd/storage) "bGd" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers,/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 1},/turf/simulated/floor/tiled,/area/rnd/storage) "bGe" = (/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 1},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 1},/turf/simulated/floor/tiled,/area/rnd/storage) "bGf" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 10},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 1},/turf/simulated/floor/tiled,/area/rnd/storage) "bGg" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 9},/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 1},/turf/simulated/floor/tiled,/area/rnd/storage) "bGh" = (/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 1},/obj/effect/floor_decal/steeldecal/steel_decals4,/turf/simulated/floor/tiled,/area/rnd/storage) -"bGi" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock/research{name = "Toxins Storage"; req_access = list(8)},/turf/simulated/floor/tiled,/area/rnd/storage) +"bGi" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 1},/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 6},/turf/simulated/floor/tiled/freezer,/area/rnd/research_restroom_sc) "bGj" = (/obj/machinery/newscaster{pixel_y = 30},/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 1},/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 6},/turf/simulated/floor/tiled/white,/area/rnd/mixing) "bGk" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 6},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 6},/obj/machinery/ai_status_display{pixel_y = 32},/obj/structure/cable/green{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/simulated/floor/tiled/white,/area/rnd/mixing) "bGl" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/effect/floor_decal/industrial/warning/corner{icon_state = "warningcorner"; dir = 4},/obj/machinery/firealarm{dir = 2; pixel_y = 24},/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/tiled/white,/area/rnd/mixing) @@ -4442,7 +4442,7 @@ "bHv" = (/obj/structure/table/glass,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/item/weapon/paper_bin{pixel_x = -3; pixel_y = 7},/obj/item/weapon/pen,/turf/simulated/floor/wood,/area/rnd/research) "bHw" = (/obj/structure/bed/chair{dir = 8},/turf/simulated/floor/wood,/area/rnd/research) "bHx" = (/obj/structure/disposalpipe/segment,/turf/simulated/floor/wood,/area/rnd/research) -"bHy" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock/research{name = "Research Locker Room"; req_access = list(47)},/turf/simulated/floor/tiled/white,/area/rnd/research_lockerroom) +"bHy" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/door/airlock/research{name = "Toxins Storage"; req_access = list(8)},/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/tiled/steel_grid,/area/rnd/storage) "bHz" = (/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 1},/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 6},/turf/simulated/floor/tiled/white,/area/rnd/research_lockerroom) "bHA" = (/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/tiled/white,/area/rnd/research_lockerroom) "bHB" = (/obj/effect/floor_decal/borderfloorwhite/corner,/obj/effect/floor_decal/corner/purple/bordercorner,/turf/simulated/floor/tiled/white,/area/rnd/research_lockerroom) @@ -4591,15 +4591,15 @@ "bKo" = (/obj/structure/ladder/updown,/obj/effect/floor_decal/industrial/outline/yellow,/turf/simulated/floor/plating,/area/storage/emergency_storage/seconddeck/fs_emergency) "bKp" = (/obj/structure/closet/hydrant{pixel_x = 32},/obj/machinery/alarm{dir = 1; pixel_y = -22},/turf/simulated/floor/plating,/area/storage/emergency_storage/seconddeck/fs_emergency) "bKq" = (/obj/effect/floor_decal/industrial/warning/corner{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/light/small{dir = 4; pixel_y = 0},/obj/effect/floor_decal/industrial/warning/corner,/obj/structure/disposalpipe/segment,/turf/simulated/floor/plating,/area/maintenance/research) -"bKr" = (/obj/machinery/door/firedoor,/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/door/airlock/engineering{name = "Science Substation"; req_one_access = list(11,24,47)},/turf/simulated/floor/plating,/area/maintenance/substation/research) +"bKr" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock/research{name = "Toxins Storage"; req_access = list(8)},/turf/simulated/floor/tiled/steel_grid,/area/rnd/storage) "bKs" = (/obj/machinery/door/firedoor/glass,/obj/effect/wingrille_spawn/reinforced/polarized{id = "rdoffice"},/turf/simulated/floor/plating,/area/crew_quarters/heads/sc/hor) -"bKt" = (/obj/machinery/door/firedoor/border_only,/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/door/airlock/command{id_tag = null; name = "Research Director Quarters"; req_access = list(30)},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/tiled/white,/area/crew_quarters/heads/sc/hor) +"bKt" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock/research{name = "Research Locker Room"; req_access = list(47)},/turf/simulated/floor/tiled/steel_grid,/area/rnd/research_lockerroom) "bKu" = (/obj/machinery/door/firedoor/border_only,/obj/effect/wingrille_spawn/reinforced/polarized{id = "rdoffice"},/obj/structure/disposalpipe/segment,/turf/simulated/floor/plating,/area/crew_quarters/heads/sc/hor) "bKv" = (/obj/machinery/door/firedoor/glass,/turf/simulated/floor/wood,/area/rnd/research) "bKw" = (/obj/machinery/door/firedoor/border_only,/obj/effect/wingrille_spawn/reinforced,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/plating,/area/rnd/research) "bKx" = (/obj/machinery/door/firedoor/glass,/obj/structure/disposalpipe/segment,/turf/simulated/floor/wood,/area/rnd/research) "bKy" = (/obj/machinery/ai_status_display,/turf/simulated/wall,/area/rnd/research_restroom_sc) -"bKz" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock{name = "Research Restroom"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/tiled/freezer,/area/rnd/research_restroom_sc) +"bKz" = (/obj/machinery/door/firedoor,/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/door/airlock/engineering{name = "Science Substation"; req_access = list(47); req_one_access = null},/turf/simulated/floor/plating,/area/maintenance/substation/research) "bKA" = (/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/effect/floor_decal/borderfloorwhite/corner{dir = 4},/obj/effect/floor_decal/corner/purple/bordercorner{dir = 4},/turf/simulated/floor/tiled/white,/area/rnd/research) "bKB" = (/turf/simulated/wall/r_wall,/area/rnd/mixing) "bKC" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/closet/bombcloset,/obj/machinery/light{dir = 8},/obj/structure/sign/warning/nosmoking_2{pixel_x = -32},/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/tiled/white,/area/rnd/mixing) @@ -4796,7 +4796,7 @@ "bOl" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/effect/floor_decal/borderfloorwhite/corner{dir = 8},/obj/effect/floor_decal/corner/purple/bordercorner{dir = 8},/turf/simulated/floor/tiled/white,/area/rnd/research) "bOm" = (/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 8},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 1},/obj/structure/cable/green{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment,/turf/simulated/floor/tiled/white,/area/rnd/research) "bOn" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/effect/floor_decal/steeldecal/steel_decals4,/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 10},/turf/simulated/floor/tiled/white,/area/rnd/research) -"bOo" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/door/firedoor/glass,/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/door/airlock/glass_research{name = "Toxins Lab"; req_access = list(7)},/turf/simulated/floor/tiled/white,/area/rnd/mixing) +"bOo" = (/obj/machinery/door/firedoor/border_only,/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/door/airlock/command{id_tag = null; name = "Research Director Quarters"; req_access = list(30)},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/tiled/steel_grid,/area/crew_quarters/heads/sc/hor) "bOp" = (/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers,/obj/machinery/atmospherics/pipe/manifold/hidden/supply,/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable/green{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 1},/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 6},/turf/simulated/floor/tiled/white,/area/rnd/mixing) "bOq" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/hologram/holopad,/obj/structure/cable/green{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/effect/floor_decal/industrial/outline/grey,/turf/simulated/floor/tiled/white,/area/rnd/mixing) "bOr" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled/white,/area/rnd/mixing) @@ -4864,9 +4864,9 @@ "bPB" = (/obj/machinery/status_display,/turf/simulated/wall,/area/assembly/robotics) "bPC" = (/turf/simulated/wall/r_wall,/area/assembly/robotics) "bPD" = (/obj/structure/disposalpipe/segment,/turf/simulated/wall/r_wall,/area/rnd/misc_lab) -"bPE" = (/obj/machinery/door/firedoor/border_only,/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/door/airlock/research{name = "Miscellaneous Reseach Room"; req_access = list(); req_one_access = list(7,29)},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/tiled/white,/area/rnd/misc_lab) +"bPE" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock{name = "Research Restroom"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/tiled/steel_grid,/area/rnd/research_restroom_sc) "bPF" = (/turf/simulated/wall/r_wall,/area/rnd/misc_lab) -"bPG" = (/obj/machinery/door/firedoor/border_only,/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/door/airlock/command{name = "Server Room"; req_access = list(30)},/turf/simulated/floor/tiled/dark,/area/server) +"bPG" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/door/firedoor/glass,/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/door/airlock/glass_research{name = "Toxins Lab"; req_access = list(7)},/turf/simulated/floor/tiled/steel_grid,/area/rnd/mixing) "bPH" = (/obj/structure/sign/warning/server_room,/turf/simulated/wall/r_wall,/area/server) "bPI" = (/turf/simulated/wall/r_wall,/area/server) "bPJ" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 4},/obj/effect/floor_decal/borderfloorwhite{dir = 10},/obj/effect/floor_decal/corner/purple/border{dir = 10},/turf/simulated/floor/tiled/white,/area/rnd/research) @@ -5038,11 +5038,11 @@ "bST" = (/obj/effect/floor_decal/industrial/warning/corner{icon_state = "warningcorner"; dir = 8},/obj/structure/cable/green{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled/white,/area/rnd/lab) "bSU" = (/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 6},/turf/simulated/floor/tiled/white,/area/rnd/lab) "bSV" = (/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/effect/floor_decal/steeldecal/steel_decals4,/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 10},/turf/simulated/floor/tiled/white,/area/rnd/lab) -"bSW" = (/obj/machinery/door/firedoor/glass,/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/door/airlock/glass_research{name = "Research and Development"; req_access = list(7)},/turf/simulated/floor/tiled/white,/area/rnd/lab) +"bSW" = (/obj/machinery/door/firedoor/border_only,/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/door/airlock/research{name = "Miscellaneous Reseach Room"; req_access = list(); req_one_access = list(7,29)},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/tiled/steel_grid,/area/rnd/misc_lab) "bSX" = (/obj/structure/cable/green{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/structure/cable/green{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 6},/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 1},/turf/simulated/floor/tiled/white,/area/rnd/research) "bSY" = (/obj/machinery/atmospherics/pipe/manifold4w/hidden/supply,/obj/machinery/atmospherics/pipe/manifold4w/hidden/scrubbers,/obj/structure/cable/green{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/disposalpipe/segment,/turf/simulated/floor/tiled/white,/area/rnd/research) "bSZ" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/effect/floor_decal/steeldecal/steel_decals4,/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 10},/turf/simulated/floor/tiled/white,/area/rnd/research) -"bTa" = (/obj/machinery/door/firedoor/glass,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/door/airlock/glass_research{name = "Robotics Lab"; req_access = list(29,47)},/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/tiled/white,/area/assembly/robotics) +"bTa" = (/obj/machinery/door/firedoor/border_only,/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/door/airlock/command{name = "Server Room"; req_access = list(30)},/turf/simulated/floor/tiled/steel_grid,/area/server) "bTb" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 1},/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 6},/turf/simulated/floor/tiled/white,/area/assembly/robotics) "bTc" = (/obj/effect/floor_decal/industrial/warning/corner,/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 1},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers,/obj/structure/cable/green{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/tiled/white,/area/assembly/robotics) "bTd" = (/obj/effect/floor_decal/industrial/warning,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/tiled/white,/area/assembly/robotics) @@ -5238,7 +5238,7 @@ "bWL" = (/obj/machinery/hologram/holopad,/obj/effect/floor_decal/industrial/outline/grey,/turf/simulated/floor/tiled,/area/rnd/lab) "bWM" = (/obj/machinery/computer/rdconsole/core,/obj/effect/floor_decal/industrial/outline/yellow,/turf/simulated/floor/tiled,/area/rnd/lab) "bWN" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/light{dir = 4},/obj/effect/floor_decal/borderfloorwhite{dir = 4},/obj/effect/floor_decal/corner/purple/border{dir = 4},/turf/simulated/floor/tiled/white,/area/rnd/lab) -"bWO" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock/research{id_tag = "researchdoor"; name = "Research Division Access"; req_access = list(47)},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment,/turf/simulated/floor/tiled/dark,/area/rnd/research) +"bWO" = (/obj/machinery/door/firedoor/glass,/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/door/airlock/glass_research{name = "Research and Development"; req_access = list(7)},/turf/simulated/floor/tiled/steel_grid,/area/rnd/lab) "bWP" = (/obj/effect/floor_decal/industrial/warning{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/power/apc{dir = 8; name = "west bump"; pixel_x = -24},/obj/machinery/light_switch{pixel_x = -36},/obj/structure/cable/green,/turf/simulated/floor/tiled/white,/area/assembly/robotics) "bWQ" = (/obj/machinery/mecha_part_fabricator,/obj/effect/floor_decal/industrial/outline/yellow,/turf/simulated/floor/tiled,/area/assembly/robotics) "bWR" = (/obj/effect/floor_decal/industrial/outline/yellow,/obj/structure/table/steel_reinforced,/obj/item/device/robotanalyzer,/obj/item/device/robotanalyzer,/obj/item/device/mmi/digital/robot,/turf/simulated/floor/tiled,/area/assembly/robotics) @@ -5575,7 +5575,7 @@ "cdk" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/structure/disposalpipe/segment,/obj/machinery/alarm{dir = 4; pixel_x = -22; pixel_y = 0},/turf/simulated/floor/plating,/area/maintenance/research) "cdl" = (/obj/structure/table/rack{dir = 8; layer = 2.9},/obj/random/maintenance/clean,/obj/random/maintenance/clean,/obj/random/maintenance/clean,/obj/random/maintenance/clean,/obj/item/weapon/material/shard,/turf/simulated/floor/plating,/area/maintenance/research) "cdm" = (/turf/simulated/wall/r_wall,/area/rnd/research_foyer) -"cdn" = (/obj/machinery/door/firedoor/glass,/obj/machinery/door/airlock/glass{name = "Research Access"},/turf/simulated/floor/tiled/white,/area/rnd/research_foyer) +"cdn" = (/obj/machinery/door/firedoor/glass,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/door/airlock/glass_research{name = "Robotics Lab"; req_access = list(29,47)},/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/tiled/steel_grid,/area/assembly/robotics) "cdo" = (/obj/machinery/door/firedoor/border_only,/obj/effect/wingrille_spawn/reinforced,/obj/structure/disposalpipe/segment,/turf/simulated/floor/plating,/area/rnd/research_foyer) "cdp" = (/obj/effect/floor_decal/industrial/outline/yellow,/obj/machinery/recharge_station,/obj/machinery/button/remote/blast_door{dir = 2; id = "Skynet_launch"; name = "Mech Bay Door Control"; pixel_x = 0; pixel_y = -26; req_access = list(29)},/obj/machinery/status_display{density = 0; layer = 4; pixel_x = -32; pixel_y = 0},/turf/simulated/floor/tiled/techmaint,/area/assembly/chargebay) "cdq" = (/obj/effect/floor_decal/industrial/warning,/turf/simulated/floor/tiled/techfloor,/area/assembly/chargebay) @@ -5682,7 +5682,7 @@ "cfn" = (/obj/machinery/alarm{dir = 8; icon_state = "alarm0"; pixel_x = 22},/turf/simulated/floor/plating,/area/maintenance/research_medical) "cfo" = (/obj/machinery/light{dir = 8},/turf/simulated/floor/tiled/white,/area/rnd/research) "cfp" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 5},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 8},/obj/structure/cable/green{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/disposalpipe/segment,/turf/simulated/floor/tiled/white,/area/rnd/research) -"cfq" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/door/firedoor/glass,/obj/machinery/door/airlock/glass_research{name = "Workshop"; req_access = list(47)},/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/tiled/dark,/area/rnd/workshop) +"cfq" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock/research{id_tag = "researchdoor"; name = "Research Division Access"; req_access = list(47)},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment,/turf/simulated/floor/tiled/steel_grid,/area/rnd/research) "cfr" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/cable/green{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 9},/turf/simulated/floor/tiled/dark,/area/rnd/workshop) "cfs" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled/dark,/area/rnd/workshop) "cft" = (/obj/random/junk,/obj/structure/extinguisher_cabinet{pixel_x = 28; pixel_y = 0},/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 8},/obj/effect/floor_decal/borderfloorblack{dir = 4},/obj/effect/floor_decal/corner/green/border{dir = 4},/turf/simulated/floor/tiled/dark,/area/rnd/workshop) @@ -5837,7 +5837,7 @@ "cim" = (/obj/machinery/atmospherics/unary/vent_scrubber/on,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/structure/sign/deck/second{pixel_x = 32},/turf/simulated/floor/tiled/dark,/area/hallway/primary/seconddeck/starboard) "cin" = (/turf/simulated/wall/r_wall,/area/hallway/primary/seconddeck/starboard) "cio" = (/turf/unsimulated/mask,/area/hallway/primary/seconddeck/starboard) -"cip" = (/obj/machinery/door/airlock/research{name = "Research Access"; req_access = list(47)},/obj/machinery/door/firedoor/border_only,/obj/structure/disposalpipe/segment,/turf/simulated/floor/tiled/white,/area/rnd/research) +"cip" = (/obj/machinery/door/firedoor/glass,/obj/machinery/door/airlock/glass{name = "Research Access"},/turf/simulated/floor/tiled/steel_grid,/area/rnd/research_foyer) "ciq" = (/obj/machinery/ai_status_display,/turf/simulated/wall/r_wall,/area/rnd/workshop) "cir" = (/obj/structure/sink{icon_state = "sink"; dir = 8; pixel_x = -12; pixel_y = 2},/obj/machinery/alarm{dir = 4; pixel_x = -22; pixel_y = 0},/obj/effect/floor_decal/borderfloorwhite{dir = 8},/obj/effect/floor_decal/corner/lime/border{dir = 8},/turf/simulated/floor/tiled/white,/area/medical/virology) "cis" = (/obj/effect/floor_decal/borderfloorwhite/corner{dir = 4},/obj/effect/floor_decal/corner/lime/bordercorner{dir = 4},/turf/simulated/floor/tiled/white,/area/medical/virology) @@ -6167,8 +6167,8 @@ "coE" = (/obj/random/obstruction,/turf/simulated/floor/plating,/area/maintenance/apmaint) "coF" = (/obj/structure/reagent_dispensers/fueltank,/turf/simulated/floor/plating,/area/maintenance/apmaint) "coG" = (/obj/structure/reagent_dispensers/watertank,/turf/simulated/floor/plating,/area/maintenance/apmaint) -"coH" = (/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/turf/simulated/floor/plating,/area/maintenance/apmaint) -"coI" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/structure/disposalpipe/junction{dir = 1; icon_state = "pipe-j2"},/turf/simulated/floor/plating,/area/maintenance/apmaint) +"coH" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/door/firedoor/glass,/obj/machinery/door/airlock/glass_research{name = "Workshop"; req_access = list(47)},/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/tiled/steel_grid,/area/rnd/workshop) +"coI" = (/obj/machinery/door/airlock/research{name = "Research Access"; req_access = list(47)},/obj/machinery/door/firedoor/border_only,/obj/structure/disposalpipe/segment,/turf/simulated/floor/tiled/steel_grid,/area/rnd/research) "coJ" = (/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 1},/obj/machinery/vending/coffee,/obj/structure/sign/deck/second{pixel_x = -32},/turf/simulated/floor/tiled/dark,/area/hallway/primary/seconddeck/port) "coK" = (/obj/machinery/alarm{dir = 1; pixel_y = -22},/obj/machinery/vending/snack,/turf/simulated/floor/tiled/dark,/area/hallway/primary/seconddeck/port) "coL" = (/obj/structure/sign/directions/bridge{dir = 4; pixel_y = 10},/obj/structure/sign/directions/evac{dir = 4; pixel_y = -10},/obj/structure/sign/directions/cargo{dir = 2},/turf/simulated/wall,/area/maintenance/apmaint) @@ -6330,9 +6330,9 @@ "crL" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/effect/floor_decal/industrial/warning{dir = 6},/obj/machinery/firealarm{dir = 4; pixel_x = 24},/turf/simulated/floor/tiled,/area/engineering/engine_smes) "crM" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 6},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/turf/simulated/floor,/area/maintenance/apmaint) "crN" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor,/area/maintenance/apmaint) -"crO" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/disposalpipe/segment,/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor,/area/maintenance/apmaint) +"crO" = (/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/turf/simulated/floor/plating,/area/maintenance/apmaint) "crP" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 5},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/atmospherics/pipe/manifold/hidden/supply,/obj/structure/disposalpipe/sortjunction/wildcard{dir = 8},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/simulated/floor/plating,/area/maintenance/apmaint) -"crQ" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/alarm{dir = 1; icon_state = "alarm0"; pixel_y = -22},/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/catwalk,/turf/simulated/floor/plating,/area/maintenance/apmaint) +"crQ" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/structure/disposalpipe/junction{dir = 1},/turf/simulated/floor/plating,/area/maintenance/apmaint) "crR" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/catwalk,/turf/simulated/floor/plating,/area/maintenance/apmaint) "crS" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 10},/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/catwalk,/turf/simulated/floor/plating,/area/maintenance/apmaint) "crT" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 10},/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/catwalk,/turf/simulated/floor/plating,/area/maintenance/apmaint) @@ -6495,9 +6495,9 @@ "cuU" = (/obj/effect/floor_decal/industrial/warning/corner,/obj/machinery/light{dir = 4},/turf/simulated/floor,/area/engineering/engine_room) "cuV" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/structure/disposalpipe/segment,/turf/simulated/floor/plating,/area/maintenance/apmaint) "cuW" = (/obj/structure/reagent_dispensers/fueltank,/turf/simulated/floor/plating,/area/construction/seconddeck/construction1) -"cuX" = (/obj/structure/disposalpipe/segment,/obj/item/stack/tile/floor,/turf/simulated/floor/plating,/area/construction/seconddeck/construction1) +"cuX" = (/turf/simulated/floor,/area/maintenance/apmaint) "cuY" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/simulated/floor/tiled,/area/construction/seconddeck/construction1) -"cuZ" = (/obj/random/maintenance/engineering,/obj/random/maintenance/clean,/turf/simulated/floor/tiled/steel,/area/construction/seconddeck/construction1) +"cuZ" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/alarm{dir = 1; icon_state = "alarm0"; pixel_y = -22},/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/catwalk,/obj/structure/disposalpipe/segment,/turf/simulated/floor/plating,/area/maintenance/apmaint) "cva" = (/obj/machinery/atmospherics/pipe/tank/air{dir = 4},/turf/simulated/floor/plating,/area/maintenance/apmaint) "cvb" = (/obj/machinery/atmospherics/pipe/simple/hidden/cyan{dir = 10; icon_state = "intact"; tag = "icon-intact-f (NORTHWEST)"},/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 4},/turf/simulated/floor/plating,/area/maintenance/apmaint) "cvc" = (/obj/machinery/atmospherics/valve/digital/open,/turf/simulated/floor/plating,/area/maintenance/apmaint) @@ -6603,9 +6603,9 @@ "cwY" = (/obj/effect/floor_decal/industrial/outline/blue,/obj/machinery/portable_atmospherics/canister/phoron,/turf/simulated/floor/plating,/area/engineering/engine_room) "cwZ" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 9; pixel_y = 0},/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},/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/turf/simulated/floor/plating,/area/maintenance/apmaint) "cxa" = (/obj/structure/reagent_dispensers/watertank,/turf/simulated/floor/plating,/area/construction/seconddeck/construction1) -"cxb" = (/obj/structure/disposalpipe/segment,/turf/simulated/floor/plating,/area/construction/seconddeck/construction1) +"cxb" = (/obj/random/maintenance/engineering,/obj/random/maintenance/clean,/obj/structure/disposalpipe/segment,/turf/simulated/floor/tiled/steel,/area/construction/seconddeck/construction1) "cxc" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/simulated/floor/tiled,/area/construction/seconddeck/construction1) -"cxd" = (/obj/machinery/power/apc{dir = 4; name = "east bump"; pixel_x = 24},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/random/maintenance/clean,/turf/simulated/floor/tiled/steel,/area/construction/seconddeck/construction1) +"cxd" = (/obj/machinery/power/apc{dir = 4; name = "east bump"; pixel_x = 24},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/random/maintenance/clean,/obj/structure/disposalpipe/segment,/turf/simulated/floor/tiled/steel,/area/construction/seconddeck/construction1) "cxe" = (/obj/machinery/atmospherics/pipe/manifold/hidden/cyan{dir = 4},/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 4},/obj/machinery/meter,/turf/simulated/floor/plating,/area/maintenance/apmaint) "cxf" = (/obj/machinery/conveyor{dir = 1; id = "packageSort1"},/obj/machinery/ai_status_display{pixel_x = -32; pixel_y = 0},/turf/simulated/floor/plating,/area/quartermaster/delivery) "cxg" = (/obj/effect/floor_decal/industrial/warning{dir = 9},/obj/machinery/alarm{pixel_y = 23},/obj/machinery/atmospherics/unary/vent_pump/on,/turf/simulated/floor/tiled,/area/quartermaster/delivery) @@ -6696,9 +6696,9 @@ "cyN" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/structure/disposalpipe/segment,/turf/simulated/floor,/area/maintenance/apmaint) "cyO" = (/turf/simulated/wall,/area/storage/emergency_storage/seconddeck/port_emergency) "cyP" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock{name = "Emergency Storage"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/simulated/floor/plating,/area/storage/emergency_storage/seconddeck/port_emergency) -"cyQ" = (/obj/structure/disposalpipe/segment,/obj/machinery/alarm{dir = 4; icon_state = "alarm0"; pixel_x = -22},/turf/simulated/floor/plating,/area/construction/seconddeck/construction1) -"cyR" = (/obj/item/stack/cable_coil/random,/turf/simulated/floor/plating,/area/construction/seconddeck/construction1) -"cyS" = (/turf/simulated/floor/tiled,/area/construction/seconddeck/construction1) +"cyQ" = (/obj/structure/disposalpipe/segment,/turf/simulated/floor/tiled,/area/construction/seconddeck/construction1) +"cyR" = (/obj/item/stack/cable_coil/random,/obj/machinery/alarm{dir = 4; icon_state = "alarm0"; pixel_x = -22},/turf/simulated/floor/plating,/area/construction/seconddeck/construction1) +"cyS" = (/obj/item/stack/tile/floor,/obj/structure/disposalpipe/segment,/turf/simulated/floor/plating,/area/construction/seconddeck/construction1) "cyT" = (/obj/machinery/atmospherics/valve,/obj/effect/floor_decal/industrial/warning{dir = 6},/turf/simulated/floor/plating,/area/maintenance/apmaint) "cyU" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/meter,/turf/simulated/floor/plating,/area/maintenance/apmaint) "cyV" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/meter,/obj/machinery/light/small{dir = 4; pixel_y = 0},/turf/simulated/floor/plating,/area/maintenance/apmaint) @@ -6787,7 +6787,7 @@ "cAA" = (/turf/simulated/floor/plating,/area/storage/emergency_storage/seconddeck/port_emergency) "cAB" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/simulated/floor/plating,/area/storage/emergency_storage/seconddeck/port_emergency) "cAC" = (/obj/machinery/floodlight,/turf/simulated/floor/plating,/area/storage/emergency_storage/seconddeck/port_emergency) -"cAD" = (/turf/simulated/floor/plating,/area/construction/seconddeck/construction1) +"cAD" = (/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/turf/simulated/floor/tiled,/area/construction/seconddeck/construction1) "cAE" = (/obj/item/stack/tile/floor,/turf/simulated/floor/plating,/area/construction/seconddeck/construction1) "cAF" = (/obj/structure/table/steel,/obj/machinery/cell_charger,/obj/random/tech_supply,/obj/random/tech_supply,/obj/random/tech_supply,/obj/random/tech_supply,/obj/random/maintenance/engineering,/turf/simulated/floor/tiled/steel,/area/construction/seconddeck/construction1) "cAG" = (/obj/effect/floor_decal/industrial/warning,/obj/machinery/atmospherics/pipe/simple/hidden{dir = 5; icon_state = "intact"; tag = "icon-intact-f (NORTHEAST)"},/turf/simulated/floor/plating,/area/maintenance/apmaint) @@ -6867,9 +6867,9 @@ "cCc" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/machinery/door/firedoor/border_only,/obj/structure/disposalpipe/segment,/obj/machinery/door/airlock/maintenance{req_access = list(12)},/turf/simulated/floor,/area/maintenance/apmaint) "cCd" = (/obj/structure/table/rack{dir = 1},/obj/item/clothing/suit/fire/firefighter,/obj/item/weapon/tank/oxygen,/obj/item/clothing/mask/gas,/obj/item/weapon/extinguisher,/obj/item/clothing/head/hardhat/red,/obj/item/clothing/glasses/meson,/obj/random/maintenance/engineering,/obj/random/maintenance/clean,/obj/machinery/alarm{dir = 4; icon_state = "alarm0"; pixel_x = -22},/turf/simulated/floor/plating,/area/storage/emergency_storage/seconddeck/port_emergency) "cCe" = (/obj/machinery/portable_atmospherics/powered/pump/filled,/obj/machinery/light/small{dir = 4},/turf/simulated/floor/plating,/area/storage/emergency_storage/seconddeck/port_emergency) -"cCf" = (/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/obj/structure/table/rack{dir = 1},/obj/random/maintenance/clean,/obj/random/maintenance/clean,/obj/random/maintenance/clean,/obj/random/powercell,/turf/simulated/floor/plating,/area/construction/seconddeck/construction1) -"cCg" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/plating,/area/construction/seconddeck/construction1) -"cCh" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/tiled,/area/construction/seconddeck/construction1) +"cCf" = (/obj/structure/table/rack{dir = 1},/obj/random/maintenance/clean,/obj/random/maintenance/clean,/obj/random/maintenance/clean,/obj/random/powercell,/turf/simulated/floor/plating,/area/construction/seconddeck/construction1) +"cCg" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 9; pixel_y = 0},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor,/area/maintenance/cargo) +"cCh" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor,/area/maintenance/cargo) "cCi" = (/obj/structure/table/rack{dir = 1},/obj/random/maintenance/engineering,/obj/random/maintenance/engineering,/obj/random/maintenance/clean,/obj/random/maintenance/clean,/obj/random/cash,/turf/simulated/floor,/area/maintenance/apmaint) "cCj" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/wall,/area/construction/seconddeck/construction1) "cCk" = (/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/obj/machinery/door/blast/regular{density = 0; dir = 1; icon_state = "pdoor0"; id = "crglockdown"; name = "Cargo Lockdown"; opacity = 0},/turf/simulated/floor/plating,/area/maintenance/apmaint) @@ -6954,8 +6954,8 @@ "cDL" = (/obj/machinery/conveyor{dir = 4; id = "garbage"},/turf/simulated/floor,/area/maintenance/disposal) "cDM" = (/obj/structure/disposaloutlet{dir = 8},/obj/structure/disposalpipe/trunk{dir = 4},/turf/simulated/floor,/area/maintenance/disposal) "cDN" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/wall/r_wall,/area/maintenance/disposal) -"cDO" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 6},/obj/structure/closet/emcloset,/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor,/area/maintenance/cargo) -"cDP" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 9; pixel_y = 0},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/turf/simulated/floor,/area/maintenance/cargo) +"cDO" = (/obj/effect/floor_decal/borderfloorwhite{dir = 8},/obj/effect/floor_decal/corner/paleblue/border{dir = 8},/turf/simulated/floor/tiled/white,/area/medical/medbay_primary_storage) +"cDP" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/hidden/universal,/turf/simulated/floor,/area/maintenance/cargo) "cDQ" = (/obj/structure/table/rack,/obj/random/powercell,/obj/random/powercell,/obj/random/tech_supply,/obj/random/tech_supply,/obj/random/tech_supply,/obj/random/tank,/obj/random/maintenance/clean,/obj/random/maintenance/clean,/obj/machinery/atmospherics/pipe/simple/visible/universal,/obj/structure/catwalk,/obj/random/cash,/turf/simulated/floor/plating,/area/maintenance/central) "cDR" = (/obj/structure/table/standard,/obj/item/device/t_scanner,/obj/item/weapon/storage/box/lights/mixed,/obj/item/weapon/storage/box/lights/mixed,/turf/simulated/floor/plating,/area/storage/emergency_storage/seconddeck/port_emergency) "cDS" = (/obj/machinery/power/apc{dir = 2; name = "south bump"; pixel_y = -24},/obj/structure/cable,/turf/simulated/floor/plating,/area/storage/emergency_storage/seconddeck/port_emergency) @@ -7017,7 +7017,7 @@ "cEW" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/cable/green{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/disposalpipe/segment,/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 8},/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 5},/turf/simulated/floor/tiled/white,/area/medical/chemistry) "cEX" = (/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/camera/network/medbay{c_tag = "MED - Chemistry"; dir = 1},/obj/effect/floor_decal/borderfloorwhite/corner,/obj/effect/floor_decal/corner/beige/bordercorner,/turf/simulated/floor/tiled/white,/area/medical/chemistry) "cEY" = (/obj/structure/closet/wardrobe/chemistry_white,/obj/item/device/radio/headset/headset_med,/obj/machinery/power/apc{dir = 2; name = "south bump"; pixel_y = -24},/obj/machinery/light_switch{pixel_x = 11; pixel_y = -24},/obj/item/device/radio/intercom{dir = 4; name = "Station Intercom (General)"; pixel_x = 21},/obj/structure/cable/green{d2 = 8; icon_state = "0-8"},/obj/item/weapon/storage/box/pillbottles,/obj/effect/floor_decal/borderfloorwhite{dir = 6},/obj/effect/floor_decal/corner/beige/border{dir = 6},/turf/simulated/floor/tiled/white,/area/medical/chemistry) -"cEZ" = (/obj/machinery/vending/medical,/obj/effect/floor_decal/borderfloorwhite{dir = 8},/obj/effect/floor_decal/corner/paleblue/border{dir = 8},/turf/simulated/floor/tiled/white,/area/medical/medbay_primary_storage) +"cEZ" = (/obj/machinery/alarm{dir = 4; icon_state = "alarm0"; pixel_x = -22},/turf/simulated/floor,/area/maintenance/cargo) "cFa" = (/obj/structure/cable/green{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 8},/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 5},/turf/simulated/floor/tiled/white,/area/medical/medbay_primary_storage) "cFb" = (/obj/structure/table/standard,/obj/item/roller,/obj/item/roller{pixel_y = 8},/obj/item/roller{pixel_y = 16},/obj/machinery/power/apc{dir = 4; name = "east bump"; pixel_x = 24},/obj/machinery/light_switch{dir = 2; name = "light switch "; pixel_x = 36; pixel_y = 0},/obj/structure/cable/green{d2 = 8; icon_state = "0-8"},/obj/structure/disposalpipe/segment,/obj/effect/floor_decal/borderfloorwhite{dir = 4},/obj/effect/floor_decal/corner/paleblue/border{dir = 4},/turf/simulated/floor/tiled/white,/area/medical/medbay_primary_storage) "cFc" = (/obj/structure/table/rack,/obj/item/clothing/suit/radiation,/obj/item/clothing/head/radiation,/obj/item/weapon/storage/toolbox/emergency,/obj/item/device/defib_kit/loaded,/obj/item/device/defib_kit/loaded,/turf/simulated/floor/tiled/dark,/area/medical/biostorage) @@ -7035,8 +7035,8 @@ "cFo" = (/obj/structure/sign/warning/moving_parts,/turf/simulated/wall,/area/maintenance/disposal) "cFp" = (/obj/machinery/door/firedoor/border_only,/obj/effect/wingrille_spawn/reinforced,/turf/simulated/floor,/area/maintenance/disposal) "cFq" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock/maintenance{name = "Disposal Access"; req_access = list(12)},/turf/simulated/floor,/area/maintenance/disposal) -"cFr" = (/obj/machinery/atmospherics/pipe/simple/hidden/universal,/obj/machinery/alarm{dir = 4; icon_state = "alarm0"; pixel_x = -22},/turf/simulated/floor,/area/maintenance/cargo) -"cFs" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/simulated/floor,/area/maintenance/cargo) +"cFr" = (/obj/structure/disposalpipe/segment,/obj/machinery/vending/medical,/turf/simulated/wall,/area/medical/medbay_primary_storage) +"cFs" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/hidden{dir = 9; icon_state = "intact"; tag = "icon-intact-f (NORTHWEST)"},/turf/simulated/floor,/area/maintenance/cargo) "cFt" = (/obj/structure/closet/crate,/obj/random/maintenance/engineering,/obj/random/maintenance/clean,/obj/random/maintenance/clean,/obj/random/maintenance/clean,/turf/simulated/floor,/area/maintenance/cargo) "cFu" = (/obj/random/obstruction,/turf/simulated/floor/plating,/area/maintenance/cargo) "cFv" = (/obj/effect/floor_decal/corner/brown/full{dir = 8},/obj/structure/table/rack{dir = 8; layer = 2.9},/turf/simulated/floor/tiled/steel,/area/maintenance/cargo) @@ -7097,7 +7097,7 @@ "cGy" = (/obj/machinery/door/firedoor/glass,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/door/airlock/glass_medical{name = "Chemistry Laboratory"; req_access = list(33)},/obj/structure/disposalpipe/segment,/turf/simulated/floor/tiled/steel_grid,/area/medical/chemistry) "cGz" = (/obj/machinery/door/firedoor/border_only,/obj/effect/wingrille_spawn/reinforced,/turf/simulated/floor/plating,/area/medical/medbay_primary_storage) "cGA" = (/obj/machinery/door/firedoor/glass,/obj/machinery/door/airlock/glass_medical{name = "Medbay Equipment"; req_access = list(5)},/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/tiled/steel_grid,/area/medical/medbay_primary_storage) -"cGB" = (/obj/machinery/door/firedoor/border_only,/obj/effect/wingrille_spawn/reinforced,/obj/structure/disposalpipe/segment,/turf/simulated/floor/plating,/area/medical/medbay_primary_storage) +"cGB" = (/obj/machinery/atmospherics/pipe/simple/hidden{dir = 6},/turf/simulated/floor,/area/maintenance/cargo) "cGC" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock/medical{name = "Secondary Storage"; req_access = list(5)},/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/tiled/steel_grid,/area/medical/biostorage) "cGD" = (/obj/structure/table/glass,/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 1},/turf/simulated/floor/tiled/white,/area/medical/medbay2) "cGE" = (/obj/structure/bed/chair{dir = 8},/obj/machinery/newscaster{pixel_x = 30; pixel_y = 0},/turf/simulated/floor/tiled/white,/area/medical/medbay2) @@ -7109,7 +7109,7 @@ "cGK" = (/turf/simulated/floor,/area/maintenance/disposal) "cGL" = (/obj/item/device/radio/intercom{dir = 4; name = "Station Intercom (General)"; pixel_x = 21},/obj/machinery/firealarm{dir = 2; layer = 3.3; pixel_x = 0; pixel_y = 26},/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 5},/turf/simulated/floor,/area/maintenance/disposal) "cGM" = (/obj/machinery/light/small{dir = 8},/turf/simulated/floor,/area/maintenance/cargo) -"cGN" = (/obj/machinery/atmospherics/binary/pump/on{dir = 2; target_pressure = 200},/turf/simulated/floor,/area/maintenance/cargo) +"cGN" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/effect/floor_decal/industrial/warning/corner{dir = 8},/obj/machinery/atmospherics/binary/pump/on{dir = 2; target_pressure = 200},/turf/simulated/floor,/area/maintenance/cargo) "cGO" = (/turf/simulated/floor,/area/maintenance/cargo) "cGP" = (/obj/structure/reagent_dispensers/fueltank,/turf/simulated/floor/plating,/area/maintenance/cargo) "cGQ" = (/obj/effect/wingrille_spawn/reinforced,/turf/simulated/floor/plating,/area/maintenance/cargo) @@ -7208,7 +7208,7 @@ "cIF" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/simulated/floor,/area/maintenance/disposal) "cIG" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock/maintenance{name = "Disposal Access"; req_access = list(12)},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor,/area/maintenance/disposal) "cIH" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/effect/floor_decal/industrial/warning,/turf/simulated/floor,/area/maintenance/cargo) -"cII" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/effect/floor_decal/industrial/warning/corner{dir = 8},/obj/machinery/atmospherics/pipe/simple/hidden,/turf/simulated/floor,/area/maintenance/cargo) +"cII" = (/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/door/firedoor,/obj/machinery/door/airlock/engineering{name = "Medbay Substation"; req_access = list(5); req_one_access = null},/turf/simulated/floor/plating,/area/maintenance/substation/medical) "cIJ" = (/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,/area/maintenance/cargo) "cIK" = (/obj/structure/reagent_dispensers/watertank,/turf/simulated/floor/plating,/area/maintenance/cargo) "cIL" = (/obj/effect/floor_decal/corner/brown{dir = 1},/obj/item/frame/light/small,/turf/simulated/floor/tiled,/area/maintenance/cargo) @@ -7324,7 +7324,7 @@ "cKR" = (/turf/simulated/wall,/area/storage/emergency_storage/seconddeck/as_emergency) "cKS" = (/obj/effect/floor_decal/industrial/warning/corner{icon_state = "warningcorner"; dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/plating,/area/maintenance/medbay) "cKT" = (/turf/simulated/wall/r_wall,/area/maintenance/substation/medical) -"cKU" = (/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/door/firedoor,/obj/machinery/door/airlock/engineering{name = "Medbay Substation"; req_one_access = list(11,24,5)},/turf/simulated/floor/plating,/area/maintenance/substation/medical) +"cKU" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/machinery/door/firedoor,/obj/machinery/door/airlock/engineering{name = "Cargo Substation"; req_one_access = list(11,24,50)},/turf/simulated/floor/plating,/area/maintenance/substation/cargo) "cKV" = (/turf/simulated/wall,/area/maintenance/substation/medical) "cKW" = (/obj/machinery/door/firedoor/border_only,/obj/effect/wingrille_spawn/reinforced/polarized{id = "cmooffice"},/obj/structure/disposalpipe/segment,/turf/simulated/floor/plating,/area/crew_quarters/heads/sc/cmo) "cKX" = (/obj/machinery/door/firedoor/glass,/obj/effect/wingrille_spawn/reinforced/polarized{id = "cmooffice"},/turf/simulated/floor/plating,/area/crew_quarters/heads/sc/cmo) @@ -7633,7 +7633,7 @@ "cQO" = (/obj/machinery/door/blast/regular{density = 0; dir = 1; icon_state = "pdoor0"; id = "crglockdown"; name = "Cargo Lockdown"; opacity = 0},/turf/simulated/floor/plating,/area/maintenance/cargo) "cQP" = (/obj/structure/table/steel,/obj/machinery/cell_charger,/obj/item/clothing/head/soft,/obj/item/clothing/head/soft,/obj/machinery/light,/turf/simulated/floor/tiled/dark,/area/quartermaster/office) "cQQ" = (/obj/structure/table/steel,/obj/machinery/recharger,/obj/item/weapon/stamp{pixel_x = -3; pixel_y = 3},/obj/item/weapon/hand_labeler,/turf/simulated/floor/tiled/dark,/area/quartermaster/office) -"cQR" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/machinery/door/firedoor,/obj/machinery/door/airlock/engineering{name = "Cargo Substation"; req_one_access = list(11,24)},/turf/simulated/floor/plating,/area/maintenance/substation/cargo) +"cQR" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/door/airlock/glass_medical{name = "Patient Ward"},/turf/simulated/floor/tiled/steel_grid,/area/medical/patient_wing) "cQS" = (/obj/structure/closet/crate,/obj/random/drinkbottle,/obj/random/tech_supply,/obj/random/tech_supply,/obj/random/action_figure,/obj/random/plushie,/obj/effect/floor_decal/industrial/warning/corner{dir = 4},/turf/simulated/floor/plating,/area/maintenance/bar) "cQT" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 8},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 8},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/effect/floor_decal/industrial/warning{dir = 1},/turf/simulated/floor/plating,/area/maintenance/bar) "cQU" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/effect/floor_decal/industrial/warning/corner{icon_state = "warningcorner"; dir = 1},/turf/simulated/floor/plating,/area/maintenance/bar) @@ -7933,7 +7933,7 @@ "cWC" = (/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 1},/obj/machinery/hologram/holopad,/obj/effect/floor_decal/industrial/outline/grey,/turf/simulated/floor/tiled/white,/area/medical/ward) "cWD" = (/obj/structure/cable/green{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 1},/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 1},/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/tiled/white,/area/medical/ward) "cWE" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/effect/floor_decal/steeldecal/steel_decals4,/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 10},/turf/simulated/floor/tiled/white,/area/medical/ward) -"cWF" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/door/airlock/glass_medical{name = "Patient Ward"},/turf/simulated/floor/tiled/white,/area/medical/patient_wing) +"cWF" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock/glass_medical{name = "Patient Ward"},/turf/simulated/floor/tiled/steel_grid,/area/medical/patient_wing) "cWG" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 6},/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 1},/turf/simulated/floor/tiled/white,/area/medical/patient_wing) "cWH" = (/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 1},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/tiled/white,/area/medical/patient_wing) "cWI" = (/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 1},/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 1},/obj/structure/cable/green{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 9},/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 4},/turf/simulated/floor/tiled/white,/area/medical/patient_wing) @@ -8001,7 +8001,6 @@ "cXS" = (/obj/structure/extinguisher_cabinet{pixel_y = -30},/obj/effect/floor_decal/borderfloorwhite/corner{dir = 8},/obj/effect/floor_decal/corner/paleblue/bordercorner{dir = 8},/turf/simulated/floor/tiled/white,/area/medical/ward) "cXT" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 8},/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 5},/turf/simulated/floor/tiled/white,/area/medical/ward) "cXU" = (/obj/machinery/alarm{dir = 1; icon_state = "alarm0"; pixel_y = -22},/obj/effect/floor_decal/steeldecal/steel_decals4,/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 10},/turf/simulated/floor/tiled/white,/area/medical/ward) -"cXV" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock/glass_medical{name = "Patient Ward"},/turf/simulated/floor/tiled/white,/area/medical/patient_wing) "cXW" = (/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 6},/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 1},/turf/simulated/floor/tiled/white,/area/medical/patient_wing) "cXX" = (/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 1},/turf/simulated/floor/tiled/white,/area/medical/patient_wing) "cXY" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 8},/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 5},/turf/simulated/floor/tiled/white,/area/medical/patient_wing) @@ -10918,15 +10917,15 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaabbtbbubbvaXMbbwbbxbbybbzbbAbbBbbCbbDbbEbbFbbGbakbaSbbHbbIbbJbbKbbLbbMbbNbbObaobbPbbQbbRbbSbapbaobbTbbUbbVbbWbbXbbXbbYbbZbcabcbbccbcdbcebcdbcfaYjaafaafaafaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaWsaWtaWtaWtbaCaWtbcgbaDbchaWtbaEaWtaWtaWtaWsaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaafaafaafaWBaWBbcibcjbckaXhbclbcmbcnaXhbcobcpaXhaXLbcqbcrbcrbcrbcsbctbcubcvbcwbcxbcybczbaobaobcAbaobaobaobcBbcCbcDbcEbcFbbUbcGbbUbcHaYjbcIbcJbcKbcJbcLaYjaaaaaaaaaaadbcMaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaWsaWsaWtaWtaWtaWtbcgbaDbchaWtaWtaWtaWtaWsaWsaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaadaadaadaafaagaadaadaadaadaadaadaadaadaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaabcNbcObcPbcQbcRbcSbcPbcTbcRbcUbcVaXhbcWbcXbcrbcYbcZbdabdbbdcbcrbddbdebdfbdgbdhbdibdjbdkbdlbdmbdnbdobdpbdqbdrbbUbbUbbUbdsbdtbdubdvbdwbdxbduaYjaaaaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaWsaWtaWtaWtaWtbcgbaDbchaWtaWtaWtaWtaWsaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadJadKaadaaaaaaaafaaaaaaaafaaaaaaaafaaaaafaaaaaaaadaadaadaagaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaabcNbdybdzbdAbcRbdBbdzbdAbcRbdCbdDaXhbdEbdFbcrbdGbdHbdIbdJbdKbdLbdMbcxbdNbdObdPbdQbdRbdQbdSbdgbdTbcCbdUbdVbdWbdXbdYbdZbdYbeabebbecbedbeebefaWXaaaaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabegaWsbehaWsaWtaWtbcgbaDbchaWtaWtaWsbehaWsbegaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaadaagaaaaaaaaaaaaaafaaaaaaaafaaaaaaaafaaaaafaaaaaaaaaaaaaaaaafaadaaaaaaaaaaaaaaaaaaaadaafaafaafbeibcNbejbekbelbcRbembenbelbcRbeobepaXhbeqberbcrbesbdHbetbdHbeubevbcwbewbexbeybezbeAbeBbeCbeDbdgbeEbeFbeGbeHbbUbeIbeJbeJbeJbeJbeJbeKbeKbeKbeKbeLbeLaafaafaafaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabegbeMbaDaWsaWsaWsaWtbaDaWtaWsaWsaWsbaDbeMbegaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaadaadaaaaaaaaaaaaaaaaaaaafaaaaaaaafaaaaaaaafaaaaafaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaaaaafbeNaaaaaaaaabeObePbeQbeRbeSbeTbeUbeRbeVbeWbeXbeYaXhbeZbfabcrbfbbfcbfdbdHbfebffbcwbcxbfgbfhbfibdQbfjbdQbfkbflbfmbfnbfobfpbfqbfrbeJbfsbftbfubfvbfwbfxbfybfzbfAbeLaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaabegbaDbfBbegaaaaWsaWsbfCaWsaWsaaabegbfDbfEbegaaaaaaaaaabcaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadJadKaadaaaaaaaafaaaaaaaafaaaaaaaafaaaaafaaaaaaaadaadaadaagaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaabcNbdybdzbdAbcRbdBbdzbdAbcRbdCbdDaXhbdEbdFbcrbdGbdHbdIbdJbdKbdLbdMbcxbdNbdObdPbdQbdRbdQbdSbdgbdTbcCbdUbdVbdWbdXbdYbdZbdYbeabebbecbedbeebefaWXaaaaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabegaWsbehaWsaWtbekbcgbaDbchbekaWtaWsbehaWsbegaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaadaagaaaaaaaaaaaaaafaaaaaaaafaaaaaaaafaaaaafaaaaaaaaaaaaaaaaafaadaaaaaaaaaaaaaaaaaaaadaafaafaafbeibcNbejbenbelbcRbembePbelbcRbeobepaXhbeqberbcrbesbdHbetbdHbeubevbcwbewbexbeybezbeAbeBbeCbeDbdgbeEbeFbeGbeHbbUbeIbeJbeJbeJbeJbeJbeKbeKbeKbeKbeLbeLaafaafaafaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabegbeMbaDaWsaWsaWsaWtbaDaWtaWsaWsaWsbaDbeMbegaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaadaadaaaaaaaaaaaaaaaaaaaafaaaaaaaafaaaaaaaafaaaaafaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaaaaafbeNaaaaaaaaabeObeQbeTbeRbeSbeUbkzbeRbeVbeWbeXbeYaXhbeZbfabcrbfbbfcbfdbdHbfebffbcwbcxbfgbfhbfibdQbfjbdQbfkbflbfmbfnbfobfpbfqbfrbeJbfsbftbfubfvbfwbfxbfybfzbfAbeLaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaabegbaDbfBbegaaaaWsaWsbfCaWsaWsaaabegbfDbfEbegaaaaaaaaaabcaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaadaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaafaaaaaaaafbfFaafaaaaaaaaaaaaaaaaaabfGaaaaaaaaaaaaaaaabcaaaaaaaaaaaabfHbfIbfJbfKbfLbfMbfNbfObfPbfQbfRbfSaXhbcWbfTbcrbfUbfVbfWbfXbfYbfZbcwbcxbgabgbbgcbgdbgebgfbggbdgbghbghbgibgjbghbgkbeJbglbgmbgnbeJbgobgpbgqbgrbgsbeLaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaafaafaafbegbehbgtbegaaaaafaaaaaaaaaaafaaabegbgtbgubegaafaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaagaadaafaafaafaafaafaafbgvbgvbgvbgvbgvbgvbgvbgvbgvbgvbgwbgvbgvbgvbgvaafaafaafaafaadaaaaaaaaaaaaaadaaaaaaaaaaaabgxbgybgzbgybcRbgAbcRbgBbcRbcRbgCbgDbgEbgFbgGbcrbgHbgIbgJbgKbgLbcrbgMbgNbgObdgbgPbgQbgRbdgbdgbdgbgSbgTbgUbgVbgWbgXbhXbgYbgZbhabeJbhbbhcbhdbhebhfbeLaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabcaaaaaaaaabhgbhgbhgaaaaaaaafaaaaaaaaaaafaaaaaabhgbhhbhgaaaaaaaaaaagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaadaaaaafaaaaaaaaaaaaaaaaaabgvbhibhjbgvbhkbhlbgvbhmbhnbgvbhobgvbhpbhqbgvaaaaaaaaaaaaaadaaaaaaaaaaaaaadaafaafaafbgxbgxbhrbhsbgybhtbhubcRbhvbhwbcRbhxbhybhzbhAbhBbhCbhDbhEbhFbhGbhHbhIbhJbhKbhLbhIbhMbhNbhObhPbhQbhRbhSbhTbhUbhTbhVbhWbstbhXbhYbhXbeJbhZbiabhZbeKbeKbeLaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaaaaaaaaabhgaaaaaaaaaaafaaaaaaaaaaafaaaaaaaaabhhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaadaaaaaaaafaaaaaaaaaaaaaaaaaabgvbibbicbgvbidbiebgvbifbigbgvbgwbgvbihbiibgvaaaaaaaaaaaaaadaadaaaaaaaaaaadaaaaaaaaabgxbijbikbilbgybimbinbcRbiobipbcRbiqbirbisbitbiubivbiwbixbiybizbiAbiBbiCbiDbiEbiFbiGbiHbiIbiJbiKbiLbiKbiKbiMbiKbiNbiObiPbiQbiRbiSbiTbiUbiVbiWbiXbiYbiZaaaaaaaaaabcaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabhgaaaaaaaaaaafaaaaaaaaaaafaaaaaaaaabhhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaadaaaaaaaaaaafaaaaaaaabaaaaaaaaabgvbjabjbbgvbjabjbbgvbjcbjdbgvbgwbgvbjabjebgvaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaabgxbjfbjgbjhbgybjibjjbcRbjkbjlbcRbjmbjnbjmbjmbjobjpbjqbjmbjrbjsbjtbjubjvbjwbjxbjubjybjsbjzbjAbjBbjCbfgbjDbjEbjFbjGbjHbjIbjJbjKbjLbjMbjNbjObjPbjQbjRbjSaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabhgaaaaaaaaaaafaaaaaaaaaaafaaaaaaaaabhhbjTaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaabjUbgwaaabjUbgwaaabjVbjVaaabgwaaabjUbjWaaaaaaaaaaaaaaaaaaaafbfGaaaaaaaaaaaaaaaaaabgxbjXbjgbjYbgxbcNbcNbcNbcNbcRbcRbjZbkabkbbkcbkdbkebkfbkgbjrbkhbkibkjbkkbklbkmbknbkobkpbkqbkrbksbktbkubkqbkvbkvbkvbkvbkvbkvbkvbkvbkwbkxbkybkybkybkzbkyaaaaaaaaaaagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabhgaaaaaaaaaaafaaaaaaaaaaafaaaaaaaaabhhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaabjUbgwaaabjUbgwaaabjVbjVaaabgwaaabjUbjWaaaaaaaaaaaaaaaaaaaafbfGaaaaaaaaaaaaaaaaaabgxbjXbjgbjYbgxbcNbcNbcNbcNbcRbcRbjZbkabkbbkcbkdbkebkfbkgbjrbkhbkibkjbkkbklbkmbknbkobkpbkqbkrbksbktbkubkqbkvbkvbkvbkvbkvbkvbkvbkvbkwbkxbkybkybkybEBbkyaaaaaaaaaaagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabhgaaaaaaaaaaafaaaaaaaaaaafaaaaaaaaabhhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaafaaaaaaaaaaaaaaabkAbkBbkCbkDbkEbkCbkFbkGbkHbkIbkJbkFbkGbkKbkLbkMbkAbkAaaaaaaaaaaaaaadaaaaaaaadaaaaaaaaabgxbgxbkNbgxbgxbkObkPbkQbjrbkRbkSbkTbkUbkVbkWbkXbkYbkZblablbblcbldbleblfblgblhblibljblkbllblmblnbloblpblqbkvblrblsbltblublvblwbkvblxblybkyblzblAblBbkyaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafbhgaafaafaafaafaaaaaaaaaaafaafaafaafbhhaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaafaaaaaaaaaaaabkAblCblDblEblFblGblHblIblJblKblLblMblNblOblPblQblRblSblTbkAaafaafaafaadaafabcaadaafaafaafblUblVblVblVblWblXblYblZbjrbmabmbbmcbmdbmebkZbmfbmgbmhbmibmjbmkbldbmlbmmbmnbmoblcbljbmpbmqbmrbmsbmtbmubmvbkvbmwbmxbmybmzbmAbmBbmCbmDbmEbmFbmGbmHbmIbkyaafaafaafaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabmJbhgbmJaaaaaaaafaaaaaaaaaaafaaaaaabmJbhhbmJaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaafaaaaaaaaaaaabkAbmKbmLbmMbmNbmLbmObmPbmQbmRbmLbmSbmNbmTbmMbmUbmLbmVbmWbkAaaaaaaaaaaafaaaaaaaaaaaaaaaaaablUbmXbmYbmZblWblWbnablWbjrbnbbncbndbnebnfbngbnhbnibnjbnkbnlbnmbnnbnobnpbnqbnrbnobnsblkbntbnubnvbnwbnxbnybkvbnzbnAbmAbnBbmAbnCbmCbnDbnEbkybkybkybkybkyaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafbhgaafaafaafaafaaaaaaaaaaafaafaafaafbhhaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa @@ -10943,52 +10942,52 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadJaaaaaaaaaaaaaaaaaaaaaaaaaaabkAbzcbzdbzebkAbkAbzfbzgbzhbzgbzibzjbzkbuvbutbzlbutbuvbuvbuwbuwbzmbuwbuwbuxbznbzobzpbuxbzqbzrbzsbztbuxbymbynbrbbrbbrbbrbbrbbrbbrbbrbbrbbrbbrbbrbbrbbrbbrbbrbbzubzvbzwbzxbxhcOBdcSdfrbuWbzAbzBbzCbzDbzEbuWbzFbzGbzHbxqbzIbuZbzJbzKbzLbzMbzNbzNbzNbzNbzNbzNbzObzNbzNbzNbzNbzPbzQbzRbzSbzTbzUbzVbzWbyObyPbzXbyObzYbzZbAabAbbAcbAdbxIaaaaaabhgaaaaaaaaaaaabyWbAebyZbAfbAgbAhbyWbAibyWaaaaaaaaaaadaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaabAjbAjbAjbAjaaaaaaaaabAjaaaaaaaaaaaaaaabAjaaaaaaaaabAjbAjbAjbAjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagaaaaafaaaaaaaaaaaaaaaaaabAkbAkbAkbAkbAkbAkbAkbAkbAkbAlbAmbAnbAobApbAqbArbAsbAtbAtbAubAvbAwbAxbAybAzbAAbABbACbvCbADbAEbAFbuxbDJbymbymbymbAGbAHbAIbwUbAJbAKbALbAMbwUbwUbwUbwUbwUbwUbANbAObwUbAPbAQbuxbARbASbATbxhbxhbxhbxhbuWbAVbAWbAXbAYbAZbuWbBabBbbBcbBdbBebuZbBfbxibBgbBhbBibBjbBkbxibxibBlbBlbBlbBlbBlbBlbBlbBmbBnbBobBpbBqbBrbBrbBrbBrbBsbBsbBsbBsbBsbBtbBubBvbBwbBwbBxbBwbBxbBwbBxbBwbBwbBybBzbBAbBBbBCbyWbBDbyWbyWaaaaaaaaaaadaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaabAjbAjbAjbAjaaaaaaaaabAjbAjbAjbAjbAjbAjbAjaaaaaaaaabAjbAjbAjbAjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaadaafaafaaaaaabBEbBFbBGbBHbAkbBIbBJbBKbBLbBMbBMbBNbAkbBObBPbBQbBRbBSbBTbBUbBVbBUbBWbBXbBYbBZbCabCbbCcbCdbCebCfbvCbCgbzobChbuxbCibCjbymbymbuxbCkbClbymbCmbCnbuxbuxbCobuxbuxbCpbymbymbAQbCqbymbCrbuxbuxbCsbCtbCubvZbvZbCvbyJbuWbCwbCxbuWbuWbuWbuWbuZbuZbCybuZbuZbuZbBfbxibCzbCAbBibwnbCBbCCbCDbBlbCEbCFbCGbCHbCIbBlbCJbCJbCKbCJbCJbBrbCLbCMbCNbBsbCObBsbCPbBsbCQbCRbCSbBwbCTbCUbCVbCVbCWbCXbCYbBwbCZbDabDbbDcbDdbDebDfbDgbyWaaaaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaabAjbAjbAjbAjaaaaaabAjbAjbAjbAjbAjbAjbAjbAjbAjaaaaaabAjbAjbAjbAjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaagaadaadaaaaabaaaaaaaaabBEbDhbDhbDibAkbDjbDjbDjbDkbBMbDlbDmbAkbDnbDobDpbDqbDrbDsbDtbCfbDubDvbDwbDxbDubDybDybDzbDAbDBbDybuxbDCbDDbDEbuxbuxbuxbDFbymbuxbCrbDGbDGbDHbDGbDGbDIbymbImbuxbDKbymbDLbuxbvFbymbCrbymbuxbDMbDNbDObvZbxibxibzzbDPbxibDQbAUbAUbAUbAUbBgbDRbDSbDTbDUbDVbDWbDXbDYbvZbDZbDZbDZbDZbEabBlbEbbEcbEdbEebEfbEgbEhbEibEjbEkbElbBrbEmbEnbEobBsbEpbBsbEqbBsbBsbErbEsbEtbEubEvbCVbEwbExbEybEzbBwbEAbEAbEAbEBbEAbEAbEAbEAbEAbEAaafaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaabAjbAjbAjbAjaaaaaabAjbAjbAjbAjbAjbAjbAjbAjbAjaaaaaabAjbAjbAjbAjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaadaadaadaagaadaadaadaagaafaaaaafaaaaaaaaaaaaaaaaaaaaabBEbECbEDbEEbAkbEFbEGbEGbEHbEGbEIbEJbAkbEKbELbEMbENbEObEPbEQbERbESbETbEUbEVbEWbEXbEYbEZbFabFbbFcbuxbFdbFebFfbFgbFhbuxbvGbvFbuxbFibDGbFjbFkbFlbDGbFmbFnbChbuxbzpbymbFobuxbvGbymbFpbFqbFrbFsbFtbFubFvbDTbFwbDTbFxbDTbFybDTbDTbDTbDTbFzbFAbFBbFBbFBbFBbFBbFBbFCbFDbDZbFEbFFbFGbEabFHbFIbFJbFKbFLbFMbEgbFNbFObFPbEjbFQbBrbFRbFSbFTbFUbFVbFWbFXbFYbBsbFZbGabGbbGcbGdbGebGdbGfbGgbGhbGibGjbGkbGlbGmbGnbGobGpbGqbGrbGsaaaaaaaaaabcaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaabAjbAjbAjbAjbAjbAjbAjbAjbAjbAjbAjbAjbAjbAjbAjbAjbAjbAjbAjbAjbAjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaadaaaaaaaafaaaaaaaaaaaaaafaaaaaaaafaaaaaaaaaaaaaaaaaaaaabBEbGtbGubGvbAkbGwbEGbEGbGxbGybGzbGAbGBbGCbGDbGEbGFbEObGGbGHbERbGIbGJbGKbGLbGMbEXbGNbGObGPbGQbGRbuxbGSbGTbGUbGVbFhbuxbAQbAQbuxbGWbDGbGXbFkbGYbDGbuxbuxbuxbuxbGZbGZbGZbuxbuxbuxbuxbuxbHabHbbHcbHdbHabvZbvZbvZbvZbvZbvibvibvibvZbvZbvZbvZbFBbHebHfbHgbHhbFBbHibHjbHkbHlbHmbHnbEabHobHpbEcbHqbHrbHsbEgbHtbHubHvbHwbHxbHybHzbHAbHBbBsbHCbHDbHEbHFbBsbHGbHHbBwbHIbHJbHKbHJbHKbHJbHLbEtbHMbHNbHObHPbHQbHRbHSbHTbHUbHVaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaabAjbAjbAjbAjaaaaaabAjbAjbAjbAjbAjbAjbAjbAjbAjaaaaaabAjbAjbAjbAjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaagaadaadaaaaabaaaaaaaaabBEbDhbDhbDibAkbDjbDjbDjbDkbBMbDlbDmbAkbDnbDobDpbDqbDrbDsbDtbCfbDubDvbDwbDxbDubDybDybDzbDAbDBbDybuxbDCbDDbDEbuxbuxbuxbDFbymbuxbCrbDGbDGbDHbDGbDGbDIbymbImbuxbDKbymbDLbuxbvFbymbCrbymbuxbDMbDNbDObvZbxibxibzzbDPbxibDQbAUbAUbAUbAUbBgbDRbDSbDTbDUbDVbDWbDXbDYbvZbDZbDZbDZbDZbEabBlbEbbEcbEdbEebEfbFMbEhbEibEjbEkbElbBrbEmbEnbEobBsbEpbBsbEqbBsbBsbErbEsbEtbEubEvbCVbEwbExbEybEzbBwbEAbEAbEAbFUbEAbEAbEAbEAbEAbEAaafaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaabAjbAjbAjbAjaaaaaabAjbAjbAjbAjbAjbAjbAjbAjbAjaaaaaabAjbAjbAjbAjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaadaadaadaagaadaadaadaagaafaaaaafaaaaaaaaaaaaaaaaaaaaabBEbECbEDbEEbAkbEFbEGbEGbEHbEGbEIbEJbAkbEKbELbEMbENbEObEPbEQbERbESbETbEUbEVbEWbEXbEYbEZbFabFbbFcbuxbFdbFebFfbFgbFhbuxbvGbvFbuxbFibDGbFjbFkbFlbDGbFmbFnbChbuxbzpbymbFobuxbvGbymbFpbFqbFrbFsbFtbFubFvbDTbFwbDTbFxbDTbFybDTbDTbDTbDTbFzbFAbFBbFBbFBbFBbFBbFBbFCbFDbDZbFEbFFbFGbEabFHbFIbFJbFKbFLbFVbFMbFNbFObFPbEjbFQbBrbFRbFSbFTbGbbGibFWbFXbFYbBsbFZbGabHybGcbGdbGebGdbGfbGgbGhbKrbGjbGkbGlbGmbGnbGobGpbGqbGrbGsaaaaaaaaaabcaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaabAjbAjbAjbAjbAjbAjbAjbAjbAjbAjbAjbAjbAjbAjbAjbAjbAjbAjbAjbAjbAjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaadaaaaaaaafaaaaaaaaaaaaaafaaaaaaaafaaaaaaaaaaaaaaaaaaaaabBEbGtbGubGvbAkbGwbEGbEGbGxbGybGzbGAbGBbGCbGDbGEbGFbEObGGbGHbERbGIbGJbGKbGLbGMbEXbGNbGObGPbGQbGRbuxbGSbGTbGUbGVbFhbuxbAQbAQbuxbGWbDGbGXbFkbGYbDGbuxbuxbuxbuxbGZbGZbGZbuxbuxbuxbuxbuxbHabHbbHcbHdbHabvZbvZbvZbvZbvZbvibvibvibvZbvZbvZbvZbFBbHebHfbHgbHhbFBbHibHjbHkbHlbHmbHnbEabHobHpbEcbHqbHrbHsbEgbHtbHubHvbHwbHxbKtbHzbHAbHBbBsbHCbHDbHEbHFbBsbHGbHHbBwbHIbHJbHKbHJbHKbHJbHLbEtbHMbHNbHObHPbHQbHRbHSbHTbHUbHVaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaabAjbAjbAjbAjbAjbAjbAjbAjbAjbAjbAjbAjbAjbAjbAjbAjbAjbAjbAjbAjbAjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaafaaaaaaaaaaaaaafaaabHWbHWbHWbHWbHWbHWbHWbHXbHXbBEbHYbHZbDibAkbIabIabIbbIcbIdbIebIfbAkbIgbIhbIibIjbIkbIlccMbCfbInbIobIpbIqbIrbDybIsbItbIubIvbIwbIxbIxbIybIxbIxbIxbIxbuxbuxbuxbIzbDGbIAbIBbICbDGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabIDbIEbIFbIGbIHbIIbIDaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabFBbIJbIKbILbILbIMbINbBqbDZbIObIPbIQbEabIRbISbITbIUbIVbIWbEgbEjbHubIXbIYbIZbBrbJabJbbJcbBsbJdbJebJfbJgbBsbJhbJibBwbBwbJjbJkbJlbJjbJmbJjbBwbJnbJobJpbJqbJrbJsbJtbJqbJubJvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaabAjbAjbAjbAjbAjbAjbAjbAjbAjbAjbAjbAjbAjbAjbAjbAjbAjbAjbAjbAjbAjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaaaaafaaaaaaaaaaaaaafbHWbHWbJwbJxbJybJzbJAbHWbJBbJCbJDbJEbJFbJGbAkbIabIabJHbJIbJJbJKbJLbAkbJMbJNbJObJPbCfbERbJQbCfbJRbJSbJTbJUbJVbDybGNbJWbJXbJYbJZbIxbKabKbbKcbKdbKebIxbKfbKgbuxbCrbDGbKhbKibDGbDGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabIDbKjbKkbHcbKlbKmbIDaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabFBbFBbKnbKobKpbFBbKqbvZbEabDZbKrbDZbEabBlbEgbKsbKtbKsbKubBlbKvbxIbKwbxIbKxbBrbBrbBrbBrbKybBsbKzbBsbBsbBsbHGbKAbyVbBwbBwbBwbBwbBwbBwbBwbBwbKBbKCbKDbKEbKFbKBbKGbKBbKHbKIbKJbKKaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaabAjbAjbAjbAjbAjbAjbAjbAjbAjbAjbAjbAjbAjbAjbAjbAjbAjbAjbAjbAjbAjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaaaaafaaaaaaaaaaaaaafbHWbHWbJwbJxbJybJzbJAbHWbJBbJCbJDbJEbJFbJGbAkbIabIabJHbJIbJJbJKbJLbAkbJMbJNbJObJPbCfbERbJQbCfbJRbJSbJTbJUbJVbDybGNbJWbJXbJYbJZbIxbKabKbbKcbKdbKebIxbKfbKgbuxbCrbDGbKhbKibDGbDGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabIDbKjbKkbHcbKlbKmbIDaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabFBbFBbKnbKobKpbFBbKqbvZbEabDZbKzbDZbEabBlbEgbKsbOobKsbKubBlbKvbxIbKwbxIbKxbBrbBrbBrbBrbKybBsbPEbBsbBsbBsbHGbKAbyVbBwbBwbBwbBwbBwbBwbBwbBwbKBbKCbKDbKEbKFbKBbKGbKBbKHbKIbKJbKKaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaabAjbAjbAjbAjbAjbAjbAjbAjbAjbAjbAjbAjbAjbAjbAjbAjbAjbAjbAjbAjbAjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaadaafaafaafbKLbKMbKMbKMbKMbKNbKObKPbKQbKRbKSbKTbKUbHWbKVbKWbKXbKYbKZbBEbAkbAkbAkbAkbAkbAkbAkbAkbAkbLabLbbLcbLdbLebLfbLgbLhbLibLjbLkbLlbLmbEXbLnbLobLpbLqbLrbLsbLtbLubLvbLwbLxbIxbLybLzbLAbCrbDGbDGbDGbDGaaaaaaaaaaaaaaaaaabLBbLBbLCbLCbLCbLBbLBbLDbLEbHcbLFbLGbLHbLHbIDbIDbIDbLHbLHaaaaaaaaaaaaaaaaaabFBbFBbFBbFBbFBbLIbBqbLJbLKbLLbLMbLNbLObLPbLQbLRbLSbLTbLUbLVbLWbLXbLYbLZbMabMbbMcbMbbMdbMebMfbMgbMhbMibMjbMkbMlbMmbMmbMnbMobMpbMmbMqbMrbJvbMsbMtbMubMvbMwbMxbMybMzbMAbMAbMBaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaabAjbAjbAjbAjbAjbAjbAjbAjbAjbAjbAjbAjbAjbAjbAjbAjbAjbAjbAjbAjbAjaaaaaaaaaaaaaaaaaaaabaaaaadaadaadaadaadaadaadaagaadaaaaaaaaaaaabMCbMDbMEbKMbMDbKNbMFbMGbMHbMIbMJbMKbMLbMMbMNbMObMPbMQbBEbMRbMSbMTbMUbMVbMWbMXbMYbMZbNabNbbNcbNdbNebNfbNgbNhbNibNjbNkbLkbLlbLmbEXbNlbJWbNmbNnbNobIxbNpbNqbNrbNsbNtbIxbNubNvbuxbCrbymbuxaaaaaaaaaaabaaaaaabLCbLCbLBbNwbNxbNybNzbNAbNBbNCbNDbHcbNEbNFbNGbNHbNIbNJbNKbNLbLHbIDbIDaaaaaaaabaaaaaaaaabvZbNMbDXbNNbBqbCKbNObNPbNQbNRbNSbNTbNUbNVbNWbNXbNYbNXbNZbOabObbNXbOabNXbOcbOdbOebNXbOfbOgbNWbNYbOabOhbNZbNXbOibOjbOkbOhbOlbOmbOnbOobOpbOqbOrbOsbOtbOubOvbOwbOxbOxdgpaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaabAjbAjbAjbAjbAjbAjbAjbAjbAjbAjbAjbAjbAjbAjbAjbAjbAjbAjbAjbAjbAjaaaaaaaaaaaaaaaaaaaaaaadaadaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabKLbMDbMDbKMbMDbKNbMFbOybOzbOAbOBbOCbODbHWbOEbKXbOFbOGbOHbOIbOJbOKbOLbOMbONbOObOPbOQbORbOSbOTbOKbOUbOVbLgbNhbOWbNjbOXbOYbOZbPabDybDybDzbPbbDzbDybIxbIxbPcbPdbNsbPebIxbPfbPgbAQbCrbymbuxaaaaaaaaaaaaaaabLCbLCbPhbPibPhbPjbPkbPlbNAbNAbPmbNDbHcbNEbPmbNHbNHbPnbPobPpbPqbPrbPqbIDbIDaaaaaaaaaaaaaaabvZbPsbPtbPubPvbPvbPwbPxbPwbPwbPwbPwbPybPzbCSbPAbPAbPAbPAbPBbPAbPAbPAbPAbPAbPAbPAbPCbPDbPEbPFbPFbPFbPFbPFbPFbPFbPGbPHbPIbPJbPKbPLbJvbPMbPNbMubPObPPbPQbMybPRbPSbPTbMBaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaabAjbAjbAjbAjbAjbAjbAjbAjbAjbAjbAjbAjbAjbAjbAjbAjbAjbAjbAjbAjbAjaaaaaaaaaaaaaaaaaaaabaaaaadaadaadaadaadaadaadaagaadaaaaaaaaaaaabMCbMDbMEbKMbMDbKNbMFbMGbMHbMIbMJbMKbMLbMMbMNbMObMPbMQbBEbMRbMSbMTbMUbMVbMWbMXbMYbMZbNabNbbNcbNdbNebNfbNgbNhbNibNjbNkbLkbLlbLmbEXbNlbJWbNmbNnbNobIxbNpbNqbNrbNsbNtbIxbNubNvbuxbCrbymbuxaaaaaaaaaaabaaaaaabLCbLCbLBbNwbNxbNybNzbNAbNBbNCbNDbHcbNEbNFbNGbNHbNIbNJbNKbNLbLHbIDbIDaaaaaaaabaaaaaaaaabvZbNMbDXbNNbBqbCKbNObNPbNQbNRbNSbNTbNUbNVbNWbNXbNYbNXbNZbOabObbNXbOabNXbOcbOdbOebNXbOfbOgbNWbNYbOabOhbNZbNXbOibOjbOkbOhbOlbOmbOnbPGbOpbOqbOrbOsbOtbOubOvbOwbOxbOxdgpaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaabAjbAjbAjbAjbAjbAjbAjbAjbAjbAjbAjbAjbAjbAjbAjbAjbAjbAjbAjbAjbAjaaaaaaaaaaaaaaaaaaaaaaadaadaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabKLbMDbMDbKMbMDbKNbMFbOybOzbOAbOBbOCbODbHWbOEbKXbOFbOGbOHbOIbOJbOKbOLbOMbONbOObOPbOQbORbOSbOTbOKbOUbOVbLgbNhbOWbNjbOXbOYbOZbPabDybDybDzbPbbDzbDybIxbIxbPcbPdbNsbPebIxbPfbPgbAQbCrbymbuxaaaaaaaaaaaaaaabLCbLCbPhbPibPhbPjbPkbPlbNAbNAbPmbNDbHcbNEbPmbNHbNHbPnbPobPpbPqbPrbPqbIDbIDaaaaaaaaaaaaaaabvZbPsbPtbPubPvbPvbPwbPxbPwbPwbPwbPwbPybPzbCSbPAbPAbPAbPAbPBbPAbPAbPAbPAbPAbPAbPAbPCbPDbSWbPFbPFbPFbPFbPFbPFbPFbTabPHbPIbPJbPKbPLbJvbPMbPNbMubPObPPbPQbMybPRbPSbPTbMBaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaabAjbAjbAjbAjbAjbAjbAjbAjbAjbAjbAjbAjbAjbAjbAjbAjbAjbAjbAjbAjbAjbAjbAjaaaaaaaaaaaaaaaaadaadaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabMCbKMbKMbKMbKMbKNbKObPUbPVbPVbPWbPXbPYbHWbPZbQabQbbQcbDibQdbQebQfbQgbQhbQibQhbQhbQjbQhbQgbQkbQlbQmbQnbQobQpbQkbQqbQrbQsbOZbQtbQubQvbQwbQxbQybQzbQAbQBbQCbQDbNsbQEbIxbQFbPgbAQbCrbQGbuxaaaaaaaaaaaabLCbLCbQHbQIbQJbQKbQLbQMbQNbQJbQObQPbQQbHcbQRbQPbQSbNEbQTbQUbQVbQWbNEbQXbQYbIDbIDaaaaaaaaaaaabvZbQZbvZbvZbPvbRabRbbRcbRdbRebRfbRgbRhbRibEsbRjbRkbRlbRmbRnbRobRpbRqbRrbRsbRtbPAbPCbRubRvbRwbRxbPFbRybRzbRAbPFbRBbRCbPIbPIbRDbREbRFbRGbRHbRIbRJbKBbKKbKBbKBbKBbKBbKGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaabAjbAjbAjbAjbAjbAjbAjbAjbAjbAjbAjbAjbAjbAjbAjbAjbAjbAjbAjbAjbAjbAjbAjaaaaaaaaaaaaaaaaadaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaaabHWbRKbRLbRMbRNbRObRPbHWbRQbRRbQbbRSbDibRTbRUbQgbQgbRVbRWbRXbRYbRZbSabSbbQkbScbSdbSebSfbSgbShbSibSjbSkbEVbSlbSmbSnbSobSpbSqbSrbSsbStbStbSubStbStbStbStbuxbuxbCrbSvbuxaaaaaaaaabLCbLCbQHbQIbSwbSwbSxbSybSzbSAbSAbSBbSCbSDbSEbSFbSGbSHbSIbSJbSJbSKbSLbSMbSMbQXbQYbIDbIDaaaaaaaaabvZbSNbSObSPbPvbSQbSRbSSbSTbSUbSVbSWbSXbSYbSZbTabTbbTcbTdbTdbTdbTebTfbTgbThbTibTjbPCbTkbTlbTmbTnbTobTobTobTobPFbTpbTqbTrbPIbTsbTtbKBbTubTvbTwbTxbTybTzbTAbTBbJvaaaaaaaabaaaaaaaaaabcaadaadaadaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaabAjbAjbAjbAjbAjbAjbAjbAjbAjbAjbAjbAjbAjbAjbAjbAjbAjbAjbAjbAjbAjbAjbAjaaaaaaaaaaaaaaaaadaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaaabHWbRKbRLbRMbRNbRObRPbHWbRQbRRbQbbRSbDibRTbRUbQgbQgbRVbRWbRXbRYbRZbSabSbbQkbScbSdbSebSfbSgbShbSibSjbSkbEVbSlbSmbSnbSobSpbSqbSrbSsbStbStbSubStbStbStbStbuxbuxbCrbSvbuxaaaaaaaaabLCbLCbQHbQIbSwbSwbSxbSybSzbSAbSAbSBbSCbSDbSEbSFbSGbSHbSIbSJbSJbSKbSLbSMbSMbQXbQYbIDbIDaaaaaaaaabvZbSNbSObSPbPvbSQbSRbSSbSTbSUbSVbWObSXbSYbSZcdnbTbbTcbTdbTdbTdbTebTfbTgbThbTibTjbPCbTkbTlbTmbTnbTobTobTobTobPFbTpbTqbTrbPIbTsbTtbKBbTubTvbTwbTxbTybTzbTAbTBbJvaaaaaaaabaaaaaaaaaabcaadaadaadaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaabAjbAjbAjbAjbAjbAjbAjbAjbAjbAjbAjbAjbAjbAjbAjbAjbAjbAjbAjbAjbAjaaaaaaaaaaaaaaaaaaaafaaaaaaaaabKLbTCbKLbTCbKLbTCbKLbTCbKLbTCbKLbTCaafaafbTDbTEbTDbTDbTDbTDbTDbTEbTFbTGbTDbBEbTHbQbbTIbDibTJbTKbQgbTLbTMbTNbTObTPbTQbTRbTSbQkbTTbTUbTVbTWbTXbTYbTZbSjbUabEVbUbbUcbUdbUebUfbUgbUhbUibStbUjbUkbUlbUlbUmbStbUnbymbCrbUobGZaaaaaaaaabLCbUpbQIbSwbUqbUrbUsbUtbUubUvbUwbUxbUybUzbUAbUBbQPbUCbNEbUDbUEbUFbUGbUHbUIbSMbQXbUJbIDaaaaaaaaabvibUKbxibULbPvbUMbUNbUObUPbUQbURbUSbUTbUUbUVbRjbUWbUXbUYbUZbUYbVabTibVbbVcbVdbVebPCbVfbVgbVhbVibVjbVkbTobVlbPFbVmbVnbVobPIbVpbVqbKBbVrbVsbVtbVtbVtbVsbVsbVubHVaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaadaagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabAjbAjbAjbAjbAjbAjbAjbAjbAjbAjbAjbAjbAjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaaabVvbVwbVxbVwbVxbVwbVxbVwbVxbVwbVxbVwbVybVzbVAbVBbVCbVDbVBbVEbVBbVFbVGbVHbVIbBEbVJbVKbVLbVMbVNbVObQgbVPbTMbVQbVRbVSbVTbTRbVUbQkbVVbVWbVXbVYbVZbWabNjbWbbWcbWdbWebWfbWgbWhbWibWjbUhbWkbWlbWmbWnbWobWpbWqbStbWrbymbCrbWsbGZaaaaaabLBbLBbWtbQJbSwbWubWvbWwbWxbWybWxbWxbWzbWAbKjbWBbWCbWDbWDbWEbWFbWGbWDbWDbWHbUHbSMbNEbWIbLHbLHaaaaaabvibUKbxibWJbPvbWKbWLbWMbUPbWNbPvbPvbxHbWObxHbPCbPCbWPbWQbWRbWSbVabWTbWUbWVbWWbWXbPCbWYbWZbXabXbbVjbXcbTobXdbPFbXebXfbXgbPIbXhbBvbKBbVrbXibXjbXkbXlbXmbXnbVubGsaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaaaaadaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabAjbAjbAjbAjbAjbAjbAjbAjbAjbAjbAjbAjbAjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaaabVvbVwbVxbVwbVxbVwbVxbVwbVxbVwbVxbVwbVybVzbVAbVBbVCbVDbVBbVEbVBbVFbVGbVHbVIbBEbVJbVKbVLbVMbVNbVObQgbVPbTMbVQbVRbVSbVTbTRbVUbQkbVVbVWbVXbVYbVZbWabNjbWbbWcbWdbWebWfbWgbWhbWibWjbUhbWkbWlbWmbWnbWobWpbWqbStbWrbymbCrbWsbGZaaaaaabLBbLBbWtbQJbSwbWubWvbWwbWxbWybWxbWxbWzbWAbKjbWBbWCbWDbWDbWEbWFbWGbWDbWDbWHbUHbSMbNEbWIbLHbLHaaaaaabvibUKbxibWJbPvbWKbWLbWMbUPbWNbPvbPvbxHcfqbxHbPCbPCbWPbWQbWRbWSbVabWTbWUbWVbWWbWXbPCbWYbWZbXabXbbVjbXcbTobXdbPFbXebXfbXgbPIbXhbBvbKBbVrbXibXjbXkbXlbXmbXnbVubGsaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaaaaadaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabAjbAjbAjbAjbAjbAjbAjbAjbAjbAjbAjbAjbAjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaaabMCbKMbKMbKMbKMbKMbKMbKMbKMbKMbKMbKMbVybXobXpbXqbXrbXsbXtbXrbXsbXubXvbXwbXxbBEbXybXzbKZbDibXAbXBbQgbXCbTMbTObXDbXEbTObTRbXFbQkbXGbXHbXIbXJbXKbXLbXMbXNbXObGLbXPbUcbQwbXQbXRbXRbXSbQwbStbXTbXUbXVbXWbXXbStbWrbymbCrbDLbGZaaaaaabLBbXYbXZbYabYbbYcbWwbWwbYdbYebYfbWwbYgbWAbWAbYhbWDbWDbYibYjbYkbYlbYmbWDbWDbYnbYobYpbYqbYrbLHaaaaaabvibUKbYscvCbPvbYtbYubYubYvbYwbUSbYxbYybYzbYAbYBbRjbYCbYDbYDbYDbYEbYFbYFbYGbYHbYFbYIbYJbYKbYLbYMbTobTobTobYNbPFbYObYPbYQbPIbRDbREbKBbYRbKBbKBbKBbKBbKBbKBbKBbKBbYSbYSaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabAjbAjbAjbAjbAjbAjbAjbAjbAjbAjbAjbAjbAjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagaaaaaaaaabKLbTCbKLbTCbKLbTCbKLbTCbKLbTCbKLbTCaadbYTbYUbYVbYWbYXbYVbYWbYXbXubYYbYZbZabBEbZbbZcbZbbDibZdbZebQgbZfbZgbZhbZibXEbZhbZjbZkbQkbZlbZmbZnbZobZpbZqbSibOXbEVbEVbSlbZrbZsbQwbQwbQwbQwbZtbStbZubStbZvbStbStbStbuxbymbCrbZwbuxaaaaaabLCbZxbZybZzbZAbZBbZCbZDbZEbZFbZGbWwbZHbZHbZIbZJbWDbZKbZLbZMbZMbZNbZObZPbWDbZQbZRbZSbYqbZTbIDaaaaaabvZbUKbAUbvZbPvbZUbZVbZWbZWbZXbZYbZZcaacabcaccadcaecafcagcagcagcahcaicajcakcalcambYIcancaocapcaqbPFcarcascatbPFcaucavcawbPIbRDbREcaxcaycazcaAcaBcaCcaDcaEcaFcaGcaHcaIcaIcaHcaHcaHcaHcaHaaaaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabAjbAjbAjbAjbAjbAjbAjbAjbAjbAjbAjbAjbAjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaabVvbVwbVxbVwbVxbVwbVxbVwbVxbVwbVxbVwbVycaJbTDcaKbYWbYXbYVbYWbYXbXucaLcaMcaMcaMcaMcaMcaMcaMcaNcaObQgcaPcaQcaRcaScaTcaUcaVcaWbQkbQkcaXbQkcaYcaZbQkcbacbbbEVcbccbdbQucbecbfcbgcbhcbicbjbStcbkbStcblbStcbmcbncbobymbCrbymbuxaaaaaabLCcbpcbqcbrcbscbtcbucbvcbwcbxcbycbzcbAcbBcbCcbDbWDcbEcbFcbGcbHcbIbZOcbJcbKcbLcbMcbNcbOcbPbIDaaaaaabvZbUKcbQcbRbPvbPvcbScbTcbUcbVbUScbWcbXcbYcbZccaccbcccccdcceccfccgcaicchcciccjcckbYIbPFcclbPFbPFbPFbPFbPFbPFbPFbPIbPIbPIbPIccmccncaxccoccpccqccrccscctcaCcaFcaFcaHccuccvccwcaHccxccycaHcaHaafaafaafaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabAjbAjbAjbAjbAjbAjbAjbAjbAjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaafaafaafbVvcczccAcczccAcczccAcczccAcczccAcczbVyccBbTDccCbYWccDccEbYWccDbXuccFcaMccGccHccIccJccKcaMbXAccLcaWcaWcaWcaWcaWcaWcaWcaWcaWcCibQkbQkbQkbQkbQkbQkccNccObDxccPccNccQccQccQccQccQccQccQccRccRccRccRbStccSccTbuxccUccVccWbuxaaaaaabLCccXccYccZcdacdbbWwbWwbWwbWwbWwbWwcdccddcddcdebWDbWDbWDbWDbWDcdfbZOcdgbWDcdhcbMcdicbOcdjbIDaaaaaabvZcdkbxibxicdlbPvbPvbPvbPvbPvbPvcdmcdncdocdncdmbPCbPCbPCbPCbPCbPCbYIcdpcdqcdqcdrbYIcdscdscdscdtcducdvcdwcdxcdycdzcdAbxHcdBcdCcdDcdEcdFcdGcdHccrccscdIcaCcdJcaFcdKcdLcdMcdNcaIcdOcdMcdPcaHaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabAjbAjbAjbAjbAjbAjbAjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaabMCcdQbMCcdQbMCcdQbMCcdQbMCcdQbMCcdQaafaafbTDcdRcdScdTcdUcdVcdTcdWcdXcdYcdZceacebceccedceebXAcefcegcehceicejcekcekcekcekcekcekcekcekcekcelcemcenceocepceqceqcerbuxcescescetbDLceubymbAQbAQbvFbvGbuxcevbuxbuxbymbCrcewbuxaaaaaabLBcexccYbQJceycezceAceBceCceDceEceFceGceHceHceIceHceHceHceJceKceLceMceNbWDbNEceObNEcbObNGbLHaaaaaabvZcePceQceQceQceRceSbxiceTceUbvZceVceWceXceWceYceZcfacfbcfccfdcfebYIbYIcffcfgbYIbYIcfhcficficfjcfkcflcfmcfmcfmcdvcfnbxHcfocfpbOncfqcfrcfscftccrccsccscdIcdIcaFcaHcfucfvcfwcfxcfycfzcfAcfBcfCaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabAjbAjbAjbAjbAjbAjbAjbAjbAjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaafaafaafbVvcczccAcczccAcczccAcczccAcczccAcczbVyccBbTDccCbYWccDccEbYWccDbXuccFcaMccGccHccIccJccKcaMbXAccLcaWcaWcaWcaWcaWcaWcaWcaWcaWcCibQkbQkbQkbQkbQkbQkccNccObDxccPccNccQccQccQccQccQccQccQccRccRccRccRbStccSccTbuxccUccVccWbuxaaaaaabLCccXccYccZcdacdbbWwbWwbWwbWwbWwbWwcdccddcddcdebWDbWDbWDbWDbWDcdfbZOcdgbWDcdhcbMcdicbOcdjbIDaaaaaabvZcdkbxibxicdlbPvbPvbPvbPvbPvbPvcdmcipcdocipcdmbPCbPCbPCbPCbPCbPCbYIcdpcdqcdqcdrbYIcdscdscdscdtcducdvcdwcdxcdycdzcdAbxHcdBcdCcdDcdEcdFcdGcdHccrccscdIcaCcdJcaFcdKcdLcdMcdNcaIcdOcdMcdPcaHaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabAjbAjbAjbAjbAjbAjbAjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaabMCcdQbMCcdQbMCcdQbMCcdQbMCcdQbMCcdQaafaafbTDcdRcdScdTcdUcdVcdTcdWcdXcdYcdZceacebceccedceebXAcefcegcehceicejcekcekcekcekcekcekcekcekcekcelcemcenceocepceqceqcerbuxcescescetbDLceubymbAQbAQbvFbvGbuxcevbuxbuxbymbCrcewbuxaaaaaabLBcexccYbQJceycezceAceBceCceDceEceFceGceHceHceIceHceHceHceJceKceLceMceNbWDbNEceObNEcbObNGbLHaaaaaabvZcePceQceQceQceRceSbxiceTceUbvZceVceWceXceWceYceZcfacfbcfccfdcfebYIbYIcffcfgbYIbYIcfhcficficfjcfkcflcfmcfmcfmcdvcfnbxHcfocfpbOncoHcfrcfscftccrccsccscdIcdIcaFcaHcfucfvcfwcfxcfycfzcfAcfBcfCaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaafaaaaaabTDcfDbXrcfEcfFcfGcfHbXucfIcaMcaMcaMcaMcfJcfKcfLcfMcfNcfOcfOcfPcfQcfRcfRcfRcfRcfRcfRcfRcencencencfScfTcfUcfVcfWcfXcfYcfZcgacgbcgacgacgacgacgacgccgccgccgccgdcgccgccgccgecgfbuxbLCbLCbLBcggccYcghcgicgjcgkcglcglcgmceEcgnbWAbWAbWAbWAbWAbWAbWAcgnbWEcgocgpcgqbWDcgrcgscgtcgucgvbLHcgwcgwbvZbUKbxibAUbCCbCDcgxbxicgybxicgzcgAcgBcgCcgDcgAcgEcfacgFcgGcgHcgIcgJcgKcgLcgMcgNcgNcgOcdtcdtcdtcdtcdtcdtcdtcfmcdvcgPbxHcgQcgRcgScaxcgTcgUcgVccrccscdIcgWcgXcaFcaHcgYcgZchacaHcaIchbcaIcaHcaHaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaafaaabTEbTDchcchcbTDchdchechfbXuchgchhchichjchkchlchmchnchochpchqchrchschtcfRchuchuchuchuchuchvchwchxcenchychzchAchBchCchDchEbuxbuxbuxbuxbuxbuxbuxbuxbuxbuxbuxbuxbuxbuxbuxbuxbuxchFchGchHchIbLBchJchKchLchMchNcgkcgkchOchPceEchQbWAchRchRchRchRchRbWAchSbWDchTchUbWDbWDchVchWchVchXchYchZciacibciccidbvgbvZbvZbvZbvZbvZbvZbvZbvZciecifcigcihcieceZceZceZciiceZceZceZceZcijcikcgNcilcimcinciociociociociocdtcdvcdvcaGbxHcipbxHbxHcaxciqcaxcaxccrcaFcaGcaHcaHcaHcaHcircgZciscitciucivciwcixcaHcaHaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaafaaabTEbTDchcchcbTDchdchechfbXuchgchhchichjchkchlchmchnchochpchqchrchschtcfRchuchuchuchuchuchvchwchxcenchychzchAchBchCchDchEbuxbuxbuxbuxbuxbuxbuxbuxbuxbuxbuxbuxbuxbuxbuxbuxbuxchFchGchHchIbLBchJchKchLchMchNcgkcgkchOchPceEchQbWAchRchRchRchRchRbWAchSbWDchTchUbWDbWDchVchWchVchXchYchZciacibciccidbvgbvZbvZbvZbvZbvZbvZbvZbvZciecifcigcihcieceZceZceZciiceZceZceZceZcijcikcgNcilcimcinciociociociociocdtcdvcdvcaGbxHcoIbxHbxHcaxciqcaxcaxccrcaFcaGcaHcaHcaHcaHcircgZciscitciucivciwcixcaHcaHaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaafaafaafaafaafaafaafciybTDcizciAciBciCciDciEciFciGciHciIciJciKciLciMciNciOciPciQciRcfOciSciTcfRchuchuchuchuchuciUciVciWciXciYciZcjacjbcjccjdcjecjfcjgchCcjdcjhcjicjbcjjcjkcjlcjmcjbcjncjociWcjpcjqcjrcjscjtcjucjvbUwbUwcjwcjxcjycjzcgkceEceEceEcdcbWAchRchRchRchRchRbWAcgnbWDbWDbWDbWDciacjAcjBcjCcjDcjDcjEcjFcjGcjHcjIcjJcjKcjLcjMcjNcjOcjPcjQcjRcjNcjOcjScjTcjUcjVcjWcjXcjTcjYcjZckackbcijckcckdckeckfckgciociociociociocdtckhcdvckickjckkcklcaGckmcknckockpcaCckqckrcaHckscktcaHckucgZcdMcdMcdMcgZcdMckvckwcaIaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaackxckyckzckAckBckCckDckEckFckGckHckIckJckKckLckMchnbLgckNcfOcfOckOcencfRchuchuchuchuchuckPckQckRckSckTckUckVckWckXckWckYckUckZckUckUclaclbckUckUclccldcledhndhpdhqclhclicljclkcllclmcllcllcllcllcllclncloclpbYhclqclrceHclsbWAchRchRchRchRchRbWAcltbZJcluclvclwclxclyclzclAclAclAclAclAclBclCclDclEclFclGclHclIclHclHclJclKclHclIclLclHclMclHclHclNclHclHclOclPclJclQclRclSclTclUclVciociociociociocdtclWcdvclXclYclZcmacmbcmccmdcmecmfcmgcmhcmicmjcmkcmlcmmcmncmocmpcmqcmrcmscmtcdMcmucmvaafaafaafaadaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaafaafaafaafaafaafaafaafaafaafaaabTDcmwciAcmxcmycmzcmAcmBcmCcmDcmEcmFcmGcmHcmIcmJcmKcfOcfOcfOcmLcmMcmNcfRchuchuchuchuchucmOcmPciWciXcmQcmRcmScmTcjccmUcmVcmWcmXchCdhscmYcmZcmTcnacnbcnccndcngdhSdiqcnhcnicnjcnkcnlcnmcnncnobUwbUwcnpcnqcnrcnsbWAcntcnucddcddbWAchRchRchRchRchRbWAcnvcnwcnxcnybWAcnzcnAcnBcnCcnDcnDcnEcnFcnGcnHcnIcnJcjKcjLcjPcnKcjPcjPcnLcnMcnNcnOcnPcnQcnRcnRcnScnTcnLcnRcnUcnVcnWcnXckcckdcnYcnZcoaciociociociociocdtcobcoccaGcodcoecofcaGcogcohcogcoicojcokcolcaHcomconcaHcoocopcoqcdMcorcgZcdMcoscotcaIaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaafaaabTEbTDchcchcbTDcoucovcowbXucoxchhcoycozcoAcoBcoCcoDcoEcoFcoGcoHcoIcmLcfRchuchuchuchuchuchvcoJcoKcencencoLchEcoMchCcoNcoOcoPcoPcoPcoPcoPcoPcoQcoQcoRcoScoQdirdwgdwqditcoTcoVcoWchGcoXcnsbLBcoYchKchLcoZchNbLBbWAcgncpacpbcpcbWAchRchRchRchRchRcpdcpdcpecpdcpdcpdcpdcpfchWchVchXcpgchZcphcpiciccpjcpkcpkcpkcplcpmcpncpncpncpncpncpocpncpncpncpncpncpncppcpqcprcnVcpsciecptcgNcpuciecinciociociociociocdtcpvcdvcaGcpwcpxcpycpzcpzcpzcpAcpzcpBcpzcpzcaHcaHcaHcaHcpCcpDcpEcpFcpGcpHcpIcpJcaHcaHaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagaaaaaaaaaaafaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaafaaaaaabTDcpKcpLcpMcpNchecmDbXucpOcpPcpPcpQcpPcpRcpScpPcoEcmLcmLcpTcpUcmLcfRcfRcfRcfRcfRcfRcfRcencencencpVcpWcpXcpYcpZcqacpXcqbcqccqdcqecqfcqgcqhcqicqjcqkcqlcoQdwTdwWdwTdwUcqncqocoVbLCbLCcqpcqqcqrcqscqtcqubWzcqvcqwcqxcqxcqxcqycqycqzcqAcqBcqpcpdcqCcqDcqEcqFcqGcpdcqHcqIcjCcqJcqKchZcgwcgwcpkcqLcqMcqNcqOcqPcqPcqQcqRcqScqTcqUcqVcqWcqXcqYcqZcracracrbcrccrdcrecrfcrgcrhcrhcrhcricdtcdtcdtcdtcdtcdtcdtcfmcdvcrjcpwcrkcrlcrmcrncrocrpcrqcrrcrscrtcrucrvcrvcaHcrwcgZcrxcaHcaIcrycaIcaHcaHaaaaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaabKLbTCbKLbTCbKLbTCbKLbTCbKLbTCbKLbTCaafaafbTDcrzbXrcrAcrBcrCcrDcrEcrFcrGcrHcrIcrJcrKcrLcpPcrMcrNcrNcrOcrPcrQcrRcrRcrRcrScrTcrUcrVcpVcpVcrWcpVcencrXcrXcrXcrXcrXcoPcrYcrZcsacsbcsccoQcsdcsecsfcsgcoQdyidypdybdwUcshcqocoVaaaaaacqpcsicqrcsjcskcslbWzcsmcsncqxcsocspcsqcsrcsjcsjcsjcsscstcsucsvcswcsxcsycpdcszcsAcjDcsBcsCchZaaaaaacpkcsDcsEcsFcpkcsGcsHcpncsIcsJcsKcsLcsMcsNcsOcsPcsQcsRcsScpncsTcsUcsVcsVcsWcrhcdvcdvcsXcfmcfmcfmcfmcfmcfmcfmcfmcdvcsYcpwcsZctacrmctbctcctdctectfctgcthcticrvcrvctjctkctlctmcaIctnctoctpcaHaaaaaaaaaaaaaadabcaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaafaafaafbVvbVwbVxbVwbVxbVwbVxbVwbVxbVwbVxbVwbVybVzbTDctqctrctscttctrctuctvctwcpPctxctyctzctActBcpPctCctDctDctEctFctDctDctGctGctHctHctIctJctIctKctIctIctLctLctMctNctMctLctLctOctOctOctPctOctOctQctRctScoQcoQdUPdUQdBMdwUctTcqocoVaaaaaactUctVctWctXcskctYbWzctZcuacubcuccudcuecufcugcuhcsjcuicujcukculcumcuncuocpdcupcsAcuqcurcuscgwaaaaaacpkcutcuucuucuucuvcuwcuucuucuxcuxcuxcuycuzcuAcuzcuzcuzcuzcuBcuCcuDcuEcuFcuCcuGcuGcuGcuGcuGcuGcuGcuHcuHcuHcuHcuIcuIcuIcuIcuJcuKcuLctbcuMcrqcrqcrqcrqcrqcrvcrvcrvcaHcuNcorcuOcaIcdOcdMcdPcaHaaaaaaaaaaadaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaabVvcczccAcczccAcczccAcczccAcczccAcczbVycaJbTDcaKcuPcuQcuRcuScuQcuTcuUcpPcpPcpPcpPcpPcpPcpPcuVctDcuWcuXcuYcuZctDcvacvbcvccvcctIcvdctIcvecvfcvgcvhcvicvjcvkcvjcvlcvmcvncvocvpcvqcvrctOcvscvtcvucvvcoQdUSdUTdURdwUcvwcqocoVaaaaaactUcvxcvycvzcvAcvBbWzcDQcvDcqxcvEcvFcvGcvHcvIcvJcsjcvKcvLcvMcvNcumcvOcvPcvQcvRcsAcvScvTcvUcgwaaaaaacpkcsDcuucvVcvWcvXcvYcvZcwacwbcwccwdcuycwecwfcwgcwhcwicwjcwkcwlcwmcwncwocwpcwqcwrcwscwtcwucwvcwwcwxcwycwzcwAcwBcwCcwDcwEcwFcwGcrmcwHcwIcwJcrqcrqcrqcwKcwLcwIcrvcaHcwMcwNcwOcaHccxcwPcaHcaHaafaafaafaadaXGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaabMCcdQbMCcdQbMCcdQbMCcdQbMCcdQbMCcdQaadbYTcwQcwRcwScwTcwUcwScwTcwVcwWcwXcwYbTDcrMcrNcrNcrNcwZctDcxacxbcxccxdctDcvacxectHctHctIcxfcxgcxhcxicxjcxkcxlcxlcxlcxmcxncxocxpcxqcxrcxscxtcxucxvcxwcxxcvvcoQdwUdwUdwUdwUcoVcqocoVaaaaaactUcxycqrcxzcxAcxBbWzcxCcxDcqxcxEcxFcxGcsrcxHcxIcxJcvKcxKcxLcxMcxNcxOcxPcpdcvRcxQcxRcxScxTcgwaaaaaacpkcsDcuucxUcxVcxWcxXcxYcxZcyacybcyccuzcydcyecyfcygcyhcyicyjcykcylcymcyncyocypcyqcyrcyscyrcytcwwcyucyvcywcwAcyxcyycyzcwEcyAcyBcrmcrmcrmcrmcrmcrmcrmcrmcrmcpzcpzcaHcyCcaIcaHcaHcaHcaHcaHaaaaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaaaadaaaaaaaaabKLbKMbKMbKMbKMbKMbKMbKMcyDbKMbKMbKMbVybXocyEcyFcyGcyHcyIcyJcyHcyKcyLcyLcyMbTDcyNcmLcyOcyOcyPcyOcyOcyQcyRcySctDctDcyTcyUcyVctIcyWcyXcyYcyZczaczbcxlcxlczcczdczeczfctOczgczhcziczjctOcoQcoQczkcoQcoQcqmcqmcqmcqmcoVcqoczlaaaaaacqpcsicqrczmcznczobWAbWAczpcqxcxEczqczrcsrcsjcvAcsjczscpdcztczuczvczwcpdcpdczxczyczzczAczBchZaaaaaaczCcsDcuuczDczEcxWczFczGcxZczHczIczJcuzczKcyeczLczMczNczOczPczQczRczSczTczUczVczWczXczYczXczZcAacAbcAccAdcwAcAecAfcAgcwEcAhcAicAjcAkcAlcAmcAncAocApcAqcArcAsbYScAtcAuaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaaabVvcczccAcczccAcczccAcczccAcczccAcczbVyccBbTDbTDcAvcAwcAxbVEcAxcAycyLcyLcAzbTDcyNcmLcyOcAAcABcACcyOcuXcADcAEcAFctDcAGcAHcAIctIcAJcAKcALcAMcANcAOcAPcAQcAQcARczecAScATcAUcAVcAWcAXctOcAYcAZcBacBbcBccqmcBdcqmcBecoVcqoczlaaaaaacqpcqpcBfcsjcuhcBgcBhbWAcBicqxcqxcqxcqxcBjcBkcBlcBkcBmcpdcpdcBncBocpdcpdcBpcBqcBrcjDcBschZchZaaaaaaczCcsDcuucuucBtcBucBvcBwcxZcBxcBycBzcuzcBAcBBcBCcBCcBDcBEcBFcBGcBHcBIcwocBJcypcBKcBLcBMcBNcBOcuGcBPcBQcBRcwAcBScBTcBUcwEcBVcBWcBXcBYcBYcAmcBZcCacCbcAmcAmcAsaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaaaaagaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagaaaaaaaaabMCcdQbMCcdQbMCcdQbMCcdQbMCcdQbMCcdQaafaafaafbTEbTDbTDbTDbTDbTDbTDbTDbTDbTDbTDcCccencyOcCdcABcCecyOcCfcCgcChcNpcCjcCkcClcCmctIcCncCocCpcCqctIcCrcCscCtcCtcCucCvcCwcxpcCxcCycxrcCzctOcAYcCAcCBcCCcBbcBbcqmcBdcqmcoVcqoczlaaaaaaaaactUcCDcCEcuhcCFcCGcCHcCIcCJcCKcCKcCLcCMcCNcskcCOcCMcCPcnDcCQcCRcCScCTcCUcCVcBrcCWcCXcgwaaaaaaaaaczCcsDcCYcuucCZcDacDbcDccxZcDdcDecDdcuzcDfcyecDgcDhcDicDjcDkcDlcwmcDmcwocDncypcDoczXcDpczXcDqcuGcDrcDscDtcwAcDucDvcDwcwEcDxcDycDzcDAcDBcDCcDDcDEcApcDFcDGcAsaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaadaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaaacDHcDIcDJcDKcDLcDLcDMcDNcDOcDPcPXcyOcDRcDScDTcyOctDctDctDctDcDUcDVcDWcDUctIcDXctIcDYcDZctIcEacEbcEccEccEdcEecEactOcEfcEgcEhcEictOcEjcEjcEjcEkcEjcBbcBbcBbcqmcoVcqocoVaaaaaaaaactUctUcElcCEcuhcuhcEmcEncEocEocEpcEqcErcEscEtcEucErcEvcEwcExcExcEycEzcBrcBrcCWcEAcgwcgwaaaaaaaaacpkcsDcEBcuucuucECcEDcEEcxZcEFcEGcEHcuzcEIcEJcEKcELcEMcENcEOcEPcEQcERcEScETcuGcEUcEVcEWcEXcEYcuGcEZcFacFbcwAcFccFdcFecwEcFfcFgcFhcFicFjcAmcFkcFlcFmcAscAscAsaafaafaafabcaafaaaaaaaagaadaadaadaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaadaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaaacDHcFncFocFpcFqcDHcDHcDHcFrcFscFtcyOcyOcyOcyOcyOcFucFvcFwcFxcDUcFycFzcFAcFBcFCcFDcFEcFFctIcFGcFHcFIcFJcFKcFLcFMctOcxpcFNcxpcFOctOcFPcFQcFRcFScEjcoVcoVcFTcoVcoVcFUcoVaaaaaaaaaaaactUctUcElcCEcsjcFVcFWcFXcFYcsjcFZcGacGbcskcGccGacGdcjDcGecGfcGgcGhcjDcCWcEAcgwcgwaaaaaaaaaaaacpkcsDcGicGjcGkcGlcGmcGncGocGpcGqcGrcuzcGscuzcuzcGtcGucGtcuycuEcGvcuEcGwcuEcuGcwwcGxcGycwwcuGcuGcGzcGAcGBcwAcwEcGCcwEcwEcFfcFgcFhcGDcGEcAmcGFcGGcGHcAsaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaadaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaaacFpcGIcFpcGJcGKcGLcDHcGMcGNcFscGOcGPcGQcGRcGScGTcFucGUcGVcFxcDUcGWcGXcGYcGZcHacDUcHbcHccHdcHecHfcHgcHgcHhcHicHjcHkcHlcHmcHncHocEjcHpcHqcHrcHscEjcHtcHucBbcHvcHwcHxcoVaaaaaaaaaaaaaaactUctUcHycHzcHycHAcHBcHCcHDcHDcHEcslcskcslcHEcHFcHFcHGcHHcHIcHJcHKcHJcgwcgwaaaaaaaaaaaaaaacpkcHLcHMcGjcHNcHOcHPcHQcHRcHScHTcHUcHVcHWcHXcHYcHZcIacHUcIbcIccIdcIecIfcIgcIhcIicIjcIkcIlcImcIncIocIpcIqcIrcIscItcIucIvcIwcIxcIycIzcIAcAmcAmcIBcAmcAsaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaadaadaadaagaafaafaafaagaadaadaadaadaadaadaagaaaaaaaaacFpcICcIDcIEcGKcIFcIGcIHcIIcIJcGOcIKcGQcGRcGScGTcGTcILcIMcFxcDUcINcIOcIPcIQcIRcIScITcIUcIVcIWcIXcIVcIVcIYcIZcJacJbcJccITcJdcJecJfcJgcJhcJicJjcJkcHtcHucBbcFUcBbcJlcoVaaaaaaaaaaabaaaaaactUctUcqpcJmcJncJocJpcHDcsicJqcslcskcslcJrczBcHFcJscJtcJucJvchZcgwcgwaaaaaaaabaaaaaaaaacpkcJwcJxcGjcGkcJycJzcJAcJBcJCcJDcJEcJFcJGcJHcJIcJJcJIcJEcJKcJLcJMcJNcJOcJPcJQcJRcJScJTcJUcJVcJWcJXcJYdUUcKacJXcKbcJXcKccJXcKdcKecKfcKgcKhcKicKjcKkcKlaaaaaaaabaaaaadaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaaacDHcKmcKncKocGKcKpcDHcKqcKrcKscKtcKtcKucKtcKucKvcKwcKxcIMcIMcDUcKycKzcKzcKAcKBcKCcHgcKDcHgcKEcHgcHgcHgcKDcKFcKGcKGcKGcKGcKGcKGcKHcKIcKJcKKcKLcEjcHtcHucBbcKMcKNcKNcKNcKNcKNaaaaaaaaaaaaaaaaaacqpcqpctUctUctUcqpcqpcqpcKOcKPcKQcqpchZchZcgwcgwcgwchZchZaaaaaaaaaaaaaaaaaacKRcKRcKRcKRcKScKTcKTcKUcKVcKTcKWcKXcKYcKXcKZcLacLbcLccLdcLccLbcLbcLbcLecLfcLgcLbcLhcLicLjcLkcLjcLhcLhcLlcLmcLncLmcLlcAjcLocLpcLqcLrcAjcLscLtcLucLvcLwcLxcLyaaaaaaaaaaafaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaafaaabTEbTDchcchcbTDcoucovcowbXucoxchhcoycozcoAcoBcoCcoDcoEcoFcoGcmLcrQcrOcfRchuchuchuchuchuchvcoJcoKcencencoLchEcoMchCcoNcoOcoPcoPcoPcoPcoPcoPcoQcoQcoRcoScoQdirdwgdwqditcoTcoVcoWchGcoXcnsbLBcoYchKchLcoZchNbLBbWAcgncpacpbcpcbWAchRchRchRchRchRcpdcpdcpecpdcpdcpdcpdcpfchWchVchXcpgchZcphcpiciccpjcpkcpkcpkcplcpmcpncpncpncpncpncpocpncpncpncpncpncpncppcpqcprcnVcpsciecptcgNcpuciecinciociociociociocdtcpvcdvcaGcpwcpxcpycpzcpzcpzcpAcpzcpBcpzcpzcaHcaHcaHcaHcpCcpDcpEcpFcpGcpHcpIcpJcaHcaHaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagaaaaaaaaaaafaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaafaaaaaabTDcpKcpLcpMcpNchecmDbXucpOcpPcpPcpQcpPcpRcpScpPcoEcmLcmLcmLcpUcpTcfRcfRcfRcfRcfRcfRcfRcencencencpVcpWcpXcpYcpZcqacpXcqbcqccqdcqecqfcqgcqhcqicqjcqkcqlcoQdwTdwWdwTdwUcqncqocoVbLCbLCcqpcqqcqrcqscqtcqubWzcqvcqwcqxcqxcqxcqycqycqzcqAcqBcqpcpdcqCcqDcqEcqFcqGcpdcqHcqIcjCcqJcqKchZcgwcgwcpkcqLcqMcqNcqOcqPcqPcqQcqRcqScqTcqUcqVcqWcqXcqYcqZcracracrbcrccrdcrecrfcrgcrhcrhcrhcricdtcdtcdtcdtcdtcdtcdtcfmcdvcrjcpwcrkcrlcrmcrncrocrpcrqcrrcrscrtcrucrvcrvcaHcrwcgZcrxcaHcaIcrycaIcaHcaHaaaaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaabKLbTCbKLbTCbKLbTCbKLbTCbKLbTCbKLbTCaafaafbTDcrzbXrcrAcrBcrCcrDcrEcrFcrGcrHcrIcrJcrKcrLcpPcuXcrMcrNcrNcrPcuZcrRcrRcrRcrScrTcrUcrVcpVcpVcrWcpVcencrXcrXcrXcrXcrXcoPcrYcrZcsacsbcsccoQcsdcsecsfcsgcoQdyidypdybdwUcshcqocoVaaaaaacqpcsicqrcsjcskcslbWzcsmcsncqxcsocspcsqcsrcsjcsjcsjcsscstcsucsvcswcsxcsycpdcszcsAcjDcsBcsCchZaaaaaacpkcsDcsEcsFcpkcsGcsHcpncsIcsJcsKcsLcsMcsNcsOcsPcsQcsRcsScpncsTcsUcsVcsVcsWcrhcdvcdvcsXcfmcfmcfmcfmcfmcfmcfmcfmcdvcsYcpwcsZctacrmctbctcctdctectfctgcthcticrvcrvctjctkctlctmcaIctnctoctpcaHaaaaaaaaaaaaaadabcaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaafaafaafbVvbVwbVxbVwbVxbVwbVxbVwbVxbVwbVxbVwbVybVzbTDctqctrctscttctrctuctvctwcpPctxctyctzctActBcpPcuXctCctDctDctFctEctDctGctGctHctHctIctJctIctKctIctIctLctLctMctNctMctLctLctOctOctOctPctOctOctQctRctScoQcoQdUPdUQdBMdwUctTcqocoVaaaaaactUctVctWctXcskctYbWzctZcuacubcuccudcuecufcugcuhcsjcuicujcukculcumcuncuocpdcupcsAcuqcurcuscgwaaaaaacpkcutcuucuucuucuvcuwcuucuucuxcuxcuxcuycuzcuAcuzcuzcuzcuzcuBcuCcuDcuEcuFcuCcuGcuGcuGcuGcuGcuGcuGcuHcuHcuHcuHcuIcuIcuIcuIcuJcuKcuLctbcuMcrqcrqcrqcrqcrqcrvcrvcrvcaHcuNcorcuOcaIcdOcdMcdPcaHaaaaaaaaaaadaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaabVvcczccAcczccAcczccAcczccAcczccAcczbVycaJbTDcaKcuPcuQcuRcuScuQcuTcuUcpPcpPcpPcpPcpPcpPcpPcuXcuVctDcuWcuYcxbctDcvacvbcvccvcctIcvdctIcvecvfcvgcvhcvicvjcvkcvjcvlcvmcvncvocvpcvqcvrctOcvscvtcvucvvcoQdUSdUTdURdwUcvwcqocoVaaaaaactUcvxcvycvzcvAcvBbWzcDQcvDcqxcvEcvFcvGcvHcvIcvJcsjcvKcvLcvMcvNcumcvOcvPcvQcvRcsAcvScvTcvUcgwaaaaaacpkcsDcuucvVcvWcvXcvYcvZcwacwbcwccwdcuycwecwfcwgcwhcwicwjcwkcwlcwmcwncwocwpcwqcwrcwscwtcwucwvcwwcwxcwycwzcwAcwBcwCcwDcwEcwFcwGcrmcwHcwIcwJcrqcrqcrqcwKcwLcwIcrvcaHcwMcwNcwOcaHccxcwPcaHcaHaafaafaafaadaXGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaabMCcdQbMCcdQbMCcdQbMCcdQbMCcdQbMCcdQaadbYTcwQcwRcwScwTcwUcwScwTcwVcwWcwXcwYbTDcfRcrMcrNcrNcrNcwZctDcxacxccxdctDcvacxectHctHctIcxfcxgcxhcxicxjcxkcxlcxlcxlcxmcxncxocxpcxqcxrcxscxtcxucxvcxwcxxcvvcoQdwUdwUdwUdwUcoVcqocoVaaaaaactUcxycqrcxzcxAcxBbWzcxCcxDcqxcxEcxFcxGcsrcxHcxIcxJcvKcxKcxLcxMcxNcxOcxPcpdcvRcxQcxRcxScxTcgwaaaaaacpkcsDcuucxUcxVcxWcxXcxYcxZcyacybcyccuzcydcyecyfcygcyhcyicyjcykcylcymcyncyocypcyqcyrcyscyrcytcwwcyucyvcywcwAcyxcyycyzcwEcyAcyBcrmcrmcrmcrmcrmcrmcrmcrmcrmcpzcpzcaHcyCcaIcaHcaHcaHcaHcaHaaaaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaaaadaaaaaaaaabKLbKMbKMbKMbKMbKMbKMbKMcyDbKMbKMbKMbVybXocyEcyFcyGcyHcyIcyJcyHcyKcyLcyLcyMbTDcfRcyNcmLcyOcyOcyPcyOctDcyRcyQctDctDcyTcyUcyVctIcyWcyXcyYcyZczaczbcxlcxlczcczdczeczfctOczgczhcziczjctOcoQcoQczkcoQcoQcqmcqmcqmcqmcoVcqoczlaaaaaacqpcsicqrczmcznczobWAbWAczpcqxcxEczqczrcsrcsjcvAcsjczscpdcztczuczvczwcpdcpdczxczyczzczAczBchZaaaaaaczCcsDcuuczDczEcxWczFczGcxZczHczIczJcuzczKcyeczLczMczNczOczPczQczRczSczTczUczVczWczXczYczXczZcAacAbcAccAdcwAcAecAfcAgcwEcAhcAicAjcAkcAlcAmcAncAocApcAqcArcAsbYScAtcAuaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaaabVvcczccAcczccAcczccAcczccAcczccAcczbVyccBbTDbTDcAvcAwcAxbVEcAxcAycyLcyLcAzbTDcfRcyNcmLcyOcAAcABcACctDcAEcyScAFctDcAGcAHcAIctIcAJcAKcALcAMcANcAOcAPcAQcAQcARczecAScATcAUcAVcAWcAXctOcAYcAZcBacBbcBccqmcBdcqmcBecoVcqoczlaaaaaacqpcqpcBfcsjcuhcBgcBhbWAcBicqxcqxcqxcqxcBjcBkcBlcBkcBmcpdcpdcBncBocpdcpdcBpcBqcBrcjDcBschZchZaaaaaaczCcsDcuucuucBtcBucBvcBwcxZcBxcBycBzcuzcBAcBBcBCcBCcBDcBEcBFcBGcBHcBIcwocBJcypcBKcBLcBMcBNcBOcuGcBPcBQcBRcwAcBScBTcBUcwEcBVcBWcBXcBYcBYcAmcBZcCacCbcAmcAmcAsaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaaaaagaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagaaaaaaaaabMCcdQbMCcdQbMCcdQbMCcdQbMCcdQbMCcdQaafaafaafbTEbTDbTDbTDbTDbTDbTDbTDbTDbTDbTDcfRcCccencyOcCdcABcCectDcCfcADcNpcCjcCkcClcCmctIcCncCocCpcCqctIcCrcCscCtcCtcCucCvcCwcxpcCxcCycxrcCzctOcAYcCAcCBcCCcBbcBbcqmcBdcqmcoVcqoczlaaaaaaaaactUcCDcCEcuhcCFcCGcCHcCIcCJcCKcCKcCLcCMcCNcskcCOcCMcCPcnDcCQcCRcCScCTcCUcCVcBrcCWcCXcgwaaaaaaaaaczCcsDcCYcuucCZcDacDbcDccxZcDdcDecDdcuzcDfcyecDgcDhcDicDjcDkcDlcwmcDmcwocDncypcDoczXcDpczXcDqcuGcDrcDscDtcwAcDucDvcDwcwEcDxcDycDzcDAcDBcDCcDDcDEcApcDFcDGcAsaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaadaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaaacDHcDIcDJcDKcDLcDLcDMcDNcMXcChcCgcPXcyOcDRcDScDTctDctDctDctDcDUcDVcDWcDUctIcDXctIcDYcDZctIcEacEbcEccEccEdcEecEactOcEfcEgcEhcEictOcEjcEjcEjcEkcEjcBbcBbcBbcqmcoVcqocoVaaaaaaaaactUctUcElcCEcuhcuhcEmcEncEocEocEpcEqcErcEscEtcEucErcEvcEwcExcExcEycEzcBrcBrcCWcEAcgwcgwaaaaaaaaacpkcsDcEBcuucuucECcEDcEEcxZcEFcEGcEHcuzcEIcEJcEKcELcEMcENcEOcEPcEQcERcEScETcuGcEUcEVcEWcEXcEYcuGcDOcFacFbcwAcFccFdcFecwEcFfcFgcFhcFicFjcAmcFkcFlcFmcAscAscAsaafaafaafabcaafaaaaaaaagaadaadaadaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaadaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaaacDHcFncFocFpcFqcDHcDHcDHcMXcEZcDPcFtcyOcyOcyOcyOcGTcFvcFwcFxcDUcFycFzcFAcFBcFCcFDcFEcFFctIcFGcFHcFIcFJcFKcFLcFMctOcxpcFNcxpcFOctOcFPcFQcFRcFScEjcoVcoVcFTcoVcoVcFUcoVaaaaaaaaaaaactUctUcElcCEcsjcFVcFWcFXcFYcsjcFZcGacGbcskcGccGacGdcjDcGecGfcGgcGhcjDcCWcEAcgwcgwaaaaaaaaaaaacpkcsDcGicGjcGkcGlcGmcGncGocGpcGqcGrcuzcGscuzcuzcGtcGucGtcuycuEcGvcuEcGwcuEcuGcwwcGxcGycwwcuGcuGcGzcGAcFrcwAcwEcGCcwEcwEcFfcFgcFhcGDcGEcAmcGFcGGcGHcAsaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaadaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaaacFpcGIcFpcGJcGKcGLcDHcGMcGBcLFcFscGPcGQcGRcGScGTcFucGUcGVcFxcDUcGWcGXcGYcGZcHacDUcHbcHccHdcHecHfcHgcHgcHhcHicHjcHkcHlcHmcHncHocEjcHpcHqcHrcHscEjcHtcHucBbcHvcHwcHxcoVaaaaaaaaaaaaaaactUctUcHycHzcHycHAcHBcHCcHDcHDcHEcslcskcslcHEcHFcHFcHGcHHcHIcHJcHKcHJcgwcgwaaaaaaaaaaaaaaacpkcHLcHMcGjcHNcHOcHPcHQcHRcHScHTcHUcHVcHWcHXcHYcHZcIacHUcIbcIccIdcIecIfcIgcIhcIicIjcIkcIlcImcIncIocIpcIqcIrcIscItcIucIvcIwcIxcIycIzcIAcAmcAmcIBcAmcAsaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaadaadaadaagaafaafaafaagaadaadaadaadaadaadaagaaaaaaaaacFpcICcIDcIEcGKcIFcIGcIHcGNcKtcIJcIKcGQcGRcGScGTcGTcILcIMcFxcDUcINcIOcIPcIQcIRcIScITcIUcIVcIWcIXcIVcIVcIYcIZcJacJbcJccITcJdcJecJfcJgcJhcJicJjcJkcHtcHucBbcFUcBbcJlcoVaaaaaaaaaaabaaaaaactUctUcqpcJmcJncJocJpcHDcsicJqcslcskcslcJrczBcHFcJscJtcJucJvchZcgwcgwaaaaaaaabaaaaaaaaacpkcJwcJxcGjcGkcJycJzcJAcJBcJCcJDcJEcJFcJGcJHcJIcJJcJIcJEcJKcJLcJMcJNcJOcJPcJQcJRcJScJTcJUcJVcJWcJXcJYdUUcKacJXcKbcJXcKccJXcKdcKecKfcKgcKhcKicKjcKkcKlaaaaaaaabaaaaadaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaaacDHcKmcKncKocGKcKpcDHcKqcKrcGOcKscKtcKucKtcKucKvcKwcKxcIMcIMcDUcKycKzcKzcKAcKBcKCcHgcKDcHgcKEcHgcHgcHgcKDcKFcKGcKGcKGcKGcKGcKGcKHcKIcKJcKKcKLcEjcHtcHucBbcKMcKNcKNcKNcKNcKNaaaaaaaaaaaaaaaaaacqpcqpctUctUctUcqpcqpcqpcKOcKPcKQcqpchZchZcgwcgwcgwchZchZaaaaaaaaaaaaaaaaaacKRcKRcKRcKRcKScKTcKTcIIcKVcKTcKWcKXcKYcKXcKZcLacLbcLccLdcLccLbcLbcLbcLecLfcLgcLbcLhcLicLjcLkcLjcLhcLhcLlcLmcLncLmcLlcAjcLocLpcLqcLrcAjcLscLtcLucLvcLwcLxcLyaaaaaaaaaaafaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaafaafaafcLzcLAcDHcLBcLCcLDcDHcKqcLEcLFcLGcLHcLIcLJcLKcLLcGTcLMcIMcIMcDUcLNcLOcKzcLPcLQcDUcLRcLScHgcLTcLUcLUcLUcLScLVcKGcLWcLWcLWcLWcLWcLXcLYcLYcLZcLYcoVcoVcoVcBbcFUcKNcMacMbcMccKNcKNaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaactUcMdcMecMfcMgcMhctUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacKRcKRcMicMjcKRcMkcKVcMlcMmcMncKTcMocMpcMqcMrcMscKZcMtcMucMvcMwcMxcLbcMycMzcMAcMBcMCcLhcMDcMEcMFcMGcMHcMIcMJcMKcMLcMMcMNcMOcMOcMOcMOcMOcMOcMPcMQcMRcMScMTcMUcMVaaaaaaaaaaagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaacMWcDHcFpcFpcDHcDHcMXcMYcMYcMXcMZcNacMXcMXcLLcGTcIMcIMcIMcDUcNbcNccNdcNecNfcDUcNgcHgcHgcNhcNicHgcHgcHgcNjcNkcLWcLWcLWcLWcLWcLXcNlcNmcNncLYcNocQkcoVcBbcNqcNrcNscNscNtcNucKNaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaactUcNvcNwcNxcNycNzctUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacKRcNAcNBcNCcKRcNDcKVcNEcNFcNGcKTcNHcNIcNJcNKcNLcNMcNNcNOcNPcNQcNRcLccNScNTcNUcNVcNWcNXcNYcNZcOacObcOccLhcOdcOecOfcOgcOhcMOcOicOjcOkcOlcMOcOmcOncLucOocOpcOqcLyaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaaaaaacMXcOrcOscOtcMXcLLcGTcIMcIMcIMcDUcDUcDUcDUcDUcDUcDUcOucOvcHgcHgcOwcOwcOwcHgcOxcOycLWcLWcLWcLWcLWcLXcOzcOAdUVcLYcOCcBbcODcOEcOFcKNcOGcOHcOIcOJcKNcoVcoVcoVcoVczlczlczlcoVcoVcoVcoVcoVcOKcOLcMfcOMcOKcpkcpkcpkcpkcpkczCczCczCcpkcpkcpkcpkcKRcONcOOcOPcKRcOQcKVcORcOScOTcKTcOUcOVcOWcOXcOYcKZcOZcPacPbcPccPdcLfcNScNTcPecPfcPgcPhcPicPjcPkcPlcPmcLhcPncPocPpcPqcPrcMOcPscPtcPtcPucMOcPvcPwcPxcPycPzcPAcKlaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaaaaaacMXcPBcPCcPDcMXcLLcGTcGTcPEcIMcFucFucIMcIMcIMcPFcGTcEacPGcEacEacPHcPIcPJcPKcPLcPMcLWcLWcLWcLWcLWcLXcPNcPOcPPcLYcPQcPRcoVcPScPTcKNcKNcKNcKNcKNcKNcPUcPVcPWcQZcPYcPZcQacQacQacQacQacQacQbcQccQdcQecQfcQgcQgcQgcQgcQgcQgcQhcQicpkcQjcSpcQlcKRcQmcOOcQncKRcQocKVcKVcQpcKVcKTcQqcQrcQscQtcQucKXcQvcQwcQxcQycPdcLccNScQzcQAcQBcQCcQDcQEcQFcQGcQHcQIcLhcLlcLlcLlcLlcLlcMOcPscQJcQKcPucMOcQLcQMcKlcKlcKlcKlcKlaafaafaafaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaafaaaaaaaaaaaacMXcQNcQNcMXcMXcLLcIMcGTcGTcFucFucGTcGTcGTcGTcGTcGTcQOcQOcQOcEacEacEacEacQPcQQcKGcLWcLWcLWcLWcLWcLXcLYcQRcLYcLYcoVcoVcoVcQScQTcQUcHwcQVcQWcQXcHwcQacQYdFLcRacRbcRccPUcAYcPUcPUcRdcRecoVcRfcRgcRhcpkcRicRjcRicRkcRlcRmcRncQocRmcsFcsFcRocKRcKRcRpcKRcKRcQocpkcGjcRqcRrcLacRscRtcRucRvcRwcKZcRxcRycRzcRAcRBcLbcRCcRDcREcRFcRGcRHcRIcRJcRKcRLcRMcRNcROcRPcRQcRRcRScMOcRTcRUcPtcRVcMOcRWcRXcpwaaaaaaaaaaaaaaaaaaaaaabcaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaafaaaaaaaaaaaacMXcQNcQNcMXcMXcLLcIMcGTcGTcFucFucGTcGTcGTcGTcGTcGTcQOcQOcQOcEacEacEacEacQPcQQcKGcLWcLWcLWcLWcLWcLXcLYcKUcLYcLYcoVcoVcoVcQScQTcQUcHwcQVcQWcQXcHwcQacQYdFLcRacRbcRccPUcAYcPUcPUcRdcRecoVcRfcRgcRhcpkcRicRjcRicRkcRlcRmcRncQocRmcsFcsFcRocKRcKRcRpcKRcKRcQocpkcGjcRqcRrcLacRscRtcRucRvcRwcKZcRxcRycRzcRAcRBcLbcRCcRDcREcRFcRGcRHcRIcRJcRKcRLcRMcRNcROcRPcRQcRRcRScMOcRTcRUcPtcRVcMOcRWcRXcpwaaaaaaaaaaaaaaaaaaaaaabcaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabcaadaadaaaaaaaaacMXcRYcRZcSacMXcSbcKvcSccSdcSecSfcSgcShcIMcSicIMcSjcSkcSkcSkcSlcSmcSmcEacEacEacKGcKGcKGcKGcKGcKGcKGcQOcSncQOcGTcSocGTdTdcBbcFUcBbcSqcSrcPScSscBbcPUcPUcRdcPUcPUcStcAYcSucSvcSwcSucSucSucSxcSycSzcSAcSAcSAcSAcSAcSAcSAcSBcSCcSDcSDcSDcSEcSFcSGcSHcSDcSDcSIcSJcSKcSLcSMcLacLacLacLacLacLacLacSNcLbcLbcLbcSOcLbcSPcSQcSRcSScSPcLhcSTcLhcLhcLhcMIcSUcSVcSWcSXcSYcSZcTacPtcTbcTccTdcTecTfcTgcpwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabfGaafaafaafaafaaaaaaaaacMXcMXcSbcKucKucKucThcTicTicTicTjcTicTicTicTkcKucKucKucKucThcKucKucKucKucKucKucKucKucTlcTmcTncTocTpcKucTqcTrcTscTtcTucTucTucTucTucTucTucSucSucSucSucSucSucSucTvcTwcTxcTycSucTzcTAcTBcSAcTCcTDcTEcTFcTGcSAcTHcsFcsEcsFcsFcTIcTJcTJcTJcTJcTJcTJcTKcTLcsFcTMcTNcTOcTPcTQcTQcTRcTScTTcTUcTVcTWcTXcSRcTYcTZcUacUbcUccSRcUdcTWcTVcTUcUecSUcUfcUgcUhcUicUjcMOcUkcUlcUmcUncUocUpcUqcpwaaaaaaaaaabcaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaafaaaaaaaaaaaacMXcMXcMYcMYcMYcMXcMXcMXcMYcMYcMYcMXcMXcMXcMXcMXcMXcMXcMXcIMcIMcIMcIMcIMcIMcIMcIMcIMcIMcIMcMXcMXcMXcMXcUrcUscUtcTucUucUvcUwcUxcUycTucUzcUAcUBcUCcUDcUEcUFcUGcUGcUHcUIcSucUJcUKcULcUMcUNcUOcUPcUQcURcSAcUScUTcpkcUUcUVcRmcTJcUWcUXcUYcUZcVacsFcTLcVbcVccVdcVecVfcVgcVhcGjcTScVicUacVjcVkcVlcSRcVmcVncVocVpcVqcSRcVrcVkcVjcUacVscSUcSUcSUcSUcVtcSUcMOcMOcMOcMOcMOcMOcVucVvcVwaafaafaafabcaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaadaaaaaaaafaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaaacMXcMXcVxcVycVzcVAcVBcVCcVDcVEcVFcMXcMXaaaaaaaaaczlcVGcVHcTucTucTucVIcVJcVKcTucVLcVMcVNcVOcVPcVQcSucVRcVScVTcVUcSucVVcVWcVXcSAcVYcVZcWacWbcWccSAcWdcWecTJcTJcTJcTJcTJcWfcWgcWhcWicWjcqMcWkcWlcWmcWmcWlcWncWocWpcWqcWrcWscWtcWucWvcWwcWxcWycWzcWAcWycWycWxcWAcWBcWCcWycWDcWEcWFcWGcWHcWIcWJcWKcWLcWMcWNcWOcWPcWQcWRcWSaaaaaaaaaaagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaadaagaadaadaaaaaaaaaaafaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaaacMXcMXcMXcMYcMYcMYcMYcMYcMXcMXcMXaaaaaaaaaaaaczlcWTcWUcTucWVcWWcWXcWYcWZcTucXacXbcXccXdcXecXfcSucSucXgcSucSucSucXhcUKcXicSAcSAcXjcXkcXlcXmcSAcXncXocXpcXqcXrcXscTJcXtcXucXvcXwcTJcXxcQocXycXzcXAcXBcXCcXCcXDcGjcTScXEcXFcXGcXHcXIcXJcXKcXLcXMcXNcXKcXOcXPcXQcXRcXScXTcXUcXVcXWcXXcXYcXZcYacYbcYccYdcYecYfcYgcYhcYiaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaadaaaaaaaafaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaaacMXcMXcVxcVycVzcVAcVBcVCcVDcVEcVFcMXcMXaaaaaaaaaczlcVGcVHcTucTucTucVIcVJcVKcTucVLcVMcVNcVOcVPcVQcSucVRcVScVTcVUcSucVVcVWcVXcSAcVYcVZcWacWbcWccSAcWdcWecTJcTJcTJcTJcTJcWfcWgcWhcWicWjcqMcWkcWlcWmcWmcWlcWncWocWpcWqcWrcWscWtcWucWvcWwcWxcWycWzcWAcWycWycWxcWAcWBcWCcWycWDcWEcQRcWGcWHcWIcWJcWKcWLcWMcWNcWOcWPcWQcWRcWSaaaaaaaaaaagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaadaagaadaadaaaaaaaaaaafaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaaacMXcMXcMXcMYcMYcMYcMYcMYcMXcMXcMXaaaaaaaaaaaaczlcWTcWUcTucWVcWWcWXcWYcWZcTucXacXbcXccXdcXecXfcSucSucXgcSucSucSucXhcUKcXicSAcSAcXjcXkcXlcXmcSAcXncXocXpcXqcXrcXscTJcXtcXucXvcXwcTJcXxcQocXycXzcXAcXBcXCcXCcXDcGjcTScXEcXFcXGcXHcXIcXJcXKcXLcXMcXNcXKcXOcXPcXQcXRcXScXTcXUcWFcXWcXXcXYcXZcYacYbcYccYdcYecYfcYgcYhcYiaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaadaaaaaaaafaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaabaafaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaaacUrcVGcVHcTucTucTucTucYjcTucYkcYlcYlcYmcYlcYlcYncYocYpcYqcYrcYscYtcYucUKcYvcYwcYxcYycYzcYAcYBcYCcYDcYEcYFcYGcYHcYIcTJcTJcTJcYJcTJcTJcpkcYKcYLcYMcYNcYOcTRczCczCcTRcTScTScYPcYQcYRcYScYRcSPcYTcYUcYVcSPcYWcYXcYYcYZcYYcZacZbcZbcZbcZccZdcZccZecZfcZgcZfcZhcZicZjcZicWSaaaaaaaadaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaagaadaadabcaagaagaadaadaadaadaafaaeaaaaafaagaadaadaadaadaadaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaaacUrcUscZkcZlcZmcZncSucZocTwcZpcZqcZqcZrcZqcZqcZscTwcZtcZucZvcZwcYtcZxcZycZzcZAcZBcZCcXocZDcZEcXocZFcZGcZHcZIcZJcZKcZLcZMcZNcZOcZPcTJcZQcZRcZScZTcZTcTRaaaaaaaafaaaaaaaaacYPcZUcZVcZWcZXcZYcZYcZZcZYcZYdaadabdacdaddaedafdagdahcZbdaidajdakcZedaldamdancZhcWScYicWScVwaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaaaaafaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaaaaaacUrcUrdaodapdaqdaqdaqdardasdatdatdaudatdavdatdawdaxdaydazdaAdazdaBdaCdaDdaEdaFdaGdaHdaIdaJdaKdaJdaJdaLdaMdaNdaOdaPdaQdaRdaQdaQdaSdaTcTJdaUcZRdaVdaWdaXdaYaaaaaaaafaaaaaaaaacYPdaZdbadbbdbcdbddbedbfdbgdbhdbidbjdbkdblcYYdbmdbndbocZbdbpdbqdbrcZedbsdbtdbucZhaaaaaaaaaaafaafaafaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa From d1db08ffebaf35f0799e6e76f88eb27b01dcd5df Mon Sep 17 00:00:00 2001 From: atermonera Date: Sun, 1 Apr 2018 15:13:48 -0700 Subject: [PATCH 18/24] Updates changelog --- html/changelog.html | 40 +++++++++++++++++ html/changelogs/.all_changelog.yml | 34 +++++++++++++++ html/changelogs/Anewbe - Medkits.yml | 36 ---------------- html/changelogs/Billybangles - Markers.yml | 38 ---------------- .../Cameron - Xenoarch Upgrades.yml | 37 ---------------- .../Heroman3003 - Gripper Fixes.yml | 8 ---- .../MistyLuminescence - Wallets.yml | 36 ---------------- html/changelogs/Woodrat - 44 Revolver.yml | 38 ---------------- html/changelogs/Woodrat - Random Changes.yml | 43 ------------------- 9 files changed, 74 insertions(+), 236 deletions(-) delete mode 100644 html/changelogs/Anewbe - Medkits.yml delete mode 100644 html/changelogs/Billybangles - Markers.yml delete mode 100644 html/changelogs/Cameron - Xenoarch Upgrades.yml delete mode 100644 html/changelogs/Heroman3003 - Gripper Fixes.yml delete mode 100644 html/changelogs/MistyLuminescence - Wallets.yml delete mode 100644 html/changelogs/Woodrat - 44 Revolver.yml delete mode 100644 html/changelogs/Woodrat - Random Changes.yml diff --git a/html/changelog.html b/html/changelog.html index 3796656cc9..e81411a62c 100644 --- a/html/changelog.html +++ b/html/changelog.html @@ -53,6 +53,46 @@ -->
+

01 April 2018

+

Anewbe updated:

+
    +
  • Medical Doctors and EMTs spawn with white medkits.
  • +
+

Cameron653 updated:

+
    +
  • Adds a xenoarch excavation tool, craftable in R&D. Allows depth selection of 1-30
  • +
  • Adds a xenoarch multitool, craftable in R&D. Has xenoarch counter, measure tool, and depth scanner all in one.
  • +
+

Heroman3003 updated:

+
    +
  • Attaching exosuit equipment with a gripper correctly removes it from the gripper.
  • +
  • Engineering gripper can no longer duplicate frame parts.
  • +
+

MistyLuminescence updated:

+
    +
  • Wallets can now hold a wider variety of objects.
  • +
+

Woodrat updated:

+
    +
  • Added two 44 cal revolvers.
  • +
  • Added 44 cal speedloader for revolvers.
  • +
  • Added 44 cal rubber rounds.
  • +
  • Fixed the icon_state for 'structure/plushie/carp' and the random first aid kit spawner.
  • +
  • Added a random chance tool spawn for power tools (most of the time it should still just be regular tools).
  • +
  • Adjusted the spawn rate of medkits, combat medkits should be more rare.
  • +
  • Cash split into its own loot item.
  • +
  • Plushies split into large and small plushies.
  • +
  • All the extra plushie spawns added to the random plushie spawn.
  • +
  • Eightball and conch shell added to toy spawns.
  • +
  • Added spawn points for the large plushies, cash, and the power tools to the station.
  • +
+

battlefieldCommander updated:

+
    +
  • Added permanent markers, an alternative to crayons.
  • +
  • The chemistry recipe for paint now uses marker ink instead of crayon dust.
  • +
  • Removed crayon boxes from the map. They can still be ordered from cargo in case you need a snack.
  • +
+

15 March 2018

Anewbe updated:

    diff --git a/html/changelogs/.all_changelog.yml b/html/changelogs/.all_changelog.yml index 86e2c39d73..e708982110 100644 --- a/html/changelogs/.all_changelog.yml +++ b/html/changelogs/.all_changelog.yml @@ -4039,3 +4039,37 @@ DO NOT EDIT THIS FILE BY HAND! AUTOMATICALLY GENERATED BY ss13_genchangelog.py. - tweak: Names of the crates for the munitions and security catogory supply packs have been adjusted slightly. In certain places contents also adjusted. - bugfix: Holoplant now comes in a crate. +2018-04-01: + Anewbe: + - tweak: Medical Doctors and EMTs spawn with white medkits. + Cameron653: + - rscadd: Adds a xenoarch excavation tool, craftable in R&D. Allows depth selection + of 1-30 + - rscadd: Adds a xenoarch multitool, craftable in R&D. Has xenoarch counter, measure + tool, and depth scanner all in one. + Heroman3003: + - bugfix: Attaching exosuit equipment with a gripper correctly removes it from the + gripper. + - bugfix: Engineering gripper can no longer duplicate frame parts. + MistyLuminescence: + - tweak: Wallets can now hold a wider variety of objects. + Woodrat: + - rscadd: Added two 44 cal revolvers. + - rscadd: Added 44 cal speedloader for revolvers. + - rscadd: Added 44 cal rubber rounds. + - bugfix: Fixed the icon_state for 'structure/plushie/carp' and the random first + aid kit spawner. + - rscadd: Added a random chance tool spawn for power tools (most of the time it + should still just be regular tools). + - tweak: Adjusted the spawn rate of medkits, combat medkits should be more rare. + - tweak: Cash split into its own loot item. + - tweak: Plushies split into large and small plushies. + - rscadd: All the extra plushie spawns added to the random plushie spawn. + - tweak: Eightball and conch shell added to toy spawns. + - rscadd: Added spawn points for the large plushies, cash, and the power tools to + the station. + battlefieldCommander: + - rscadd: Added permanent markers, an alternative to crayons. + - tweak: The chemistry recipe for paint now uses marker ink instead of crayon dust. + - rscdel: Removed crayon boxes from the map. They can still be ordered from cargo + in case you need a snack. diff --git a/html/changelogs/Anewbe - Medkits.yml b/html/changelogs/Anewbe - Medkits.yml deleted file mode 100644 index 48624d92bf..0000000000 --- a/html/changelogs/Anewbe - Medkits.yml +++ /dev/null @@ -1,36 +0,0 @@ -################################ -# Example Changelog File -# -# Note: This file, and files beginning with ".", and files that don't end in ".yml" will not be read. If you change this file, you will look really dumb. -# -# Your changelog will be merged with a master changelog. (New stuff added only, and only on the date entry for the day it was merged.) -# When it is, any changes listed below will disappear. -# -# Valid Prefixes: -# bugfix -# wip (For works in progress) -# tweak -# soundadd -# sounddel -# rscadd (general adding of nice things) -# rscdel (general deleting of nice things) -# imageadd -# imagedel -# maptweak -# spellcheck (typo fixes) -# experiment -################################# - -# Your name. -author: Anewbe - -# Optional: Remove this file after generating master changelog. Useful for PR changelogs that won't get used again. -delete-after: True - -# Any changes you've made. See valid prefix list above. -# INDENT WITH TWO SPACES. NOT TABS. SPACES. -# SCREW THIS UP AND IT WON'T WORK. -# Also, all entries are changed into a single [] after a master changelog generation. Just remove the brackets when you add new entries. -# Please surround your changes in double quotes ("), as certain characters otherwise screws up compiling. The quotes will not show up in the changelog. -changes: - - tweak: "Medical Doctors and EMTs spawn with white medkits." \ No newline at end of file diff --git a/html/changelogs/Billybangles - Markers.yml b/html/changelogs/Billybangles - Markers.yml deleted file mode 100644 index afab2bf8cb..0000000000 --- a/html/changelogs/Billybangles - Markers.yml +++ /dev/null @@ -1,38 +0,0 @@ -################################ -# Example Changelog File -# -# Note: This file, and files beginning with ".", and files that don't end in ".yml" will not be read. If you change this file, you will look really dumb. -# -# Your changelog will be merged with a master changelog. (New stuff added only, and only on the date entry for the day it was merged.) -# When it is, any changes listed below will disappear. -# -# Valid Prefixes: -# bugfix -# wip (For works in progress) -# tweak -# soundadd -# sounddel -# rscadd (general adding of nice things) -# rscdel (general deleting of nice things) -# imageadd -# imagedel -# maptweak -# spellcheck (typo fixes) -# experiment -################################# - -# Your name. -author: battlefieldCommander - -# Optional: Remove this file after generating master changelog. Useful for PR changelogs that won't get used again. -delete-after: True - -# Any changes you've made. See valid prefix list above. -# INDENT WITH TWO SPACES. NOT TABS. SPACES. -# SCREW THIS UP AND IT WON'T WORK. -# Also, all entries are changed into a single [] after a master changelog generation. Just remove the brackets when you add new entries. -# Please surround your changes in double quotes ("), as certain characters otherwise screws up compiling. The quotes will not show up in the changelog. -changes: - - rscadd: "Added permanent markers, an alternative to crayons." - - tweak: "The chemistry recipe for paint now uses marker ink instead of crayon dust." - - rscdel: "Removed crayon boxes from the map. They can still be ordered from cargo in case you need a snack." diff --git a/html/changelogs/Cameron - Xenoarch Upgrades.yml b/html/changelogs/Cameron - Xenoarch Upgrades.yml deleted file mode 100644 index b352e0d3b7..0000000000 --- a/html/changelogs/Cameron - Xenoarch Upgrades.yml +++ /dev/null @@ -1,37 +0,0 @@ -################################ -# Example Changelog File -# -# Note: This file, and files beginning with ".", and files that don't end in ".yml" will not be read. If you change this file, you will look really dumb. -# -# Your changelog will be merged with a master changelog. (New stuff added only, and only on the date entry for the day it was merged.) -# When it is, any changes listed below will disappear. -# -# Valid Prefixes: -# bugfix -# wip (For works in progress) -# tweak -# soundadd -# sounddel -# rscadd (general adding of nice things) -# rscdel (general deleting of nice things) -# imageadd -# imagedel -# maptweak -# spellcheck (typo fixes) -# experiment -################################# - -# Your name. -author: Cameron653 - -# Optional: Remove this file after generating master changelog. Useful for PR changelogs that won't get used again. -delete-after: True - -# Any changes you've made. See valid prefix list above. -# INDENT WITH TWO SPACES. NOT TABS. SPACES. -# SCREW THIS UP AND IT WON'T WORK. -# Also, all entries are changed into a single [] after a master changelog generation. Just remove the brackets when you add new entries. -# Please surround your changes in double quotes ("), as certain characters otherwise screws up compiling. The quotes will not show up in the changelog. -changes: - - rscadd: "Adds a xenoarch excavation tool, craftable in R&D. Allows depth selection of 1-30" - - rscadd: "Adds a xenoarch multitool, craftable in R&D. Has xenoarch counter, measure tool, and depth scanner all in one." diff --git a/html/changelogs/Heroman3003 - Gripper Fixes.yml b/html/changelogs/Heroman3003 - Gripper Fixes.yml deleted file mode 100644 index c320b73d93..0000000000 --- a/html/changelogs/Heroman3003 - Gripper Fixes.yml +++ /dev/null @@ -1,8 +0,0 @@ - -author: Heroman3003 - -delete-after: True - -changes: - - bugfix: "Fixed a bug where same piece of exosuit equipment could be attached several times with exosuit gripper" - - bugfix: "Fixed a bug where frame parts could dupe frames with engineering gripper" diff --git a/html/changelogs/MistyLuminescence - Wallets.yml b/html/changelogs/MistyLuminescence - Wallets.yml deleted file mode 100644 index 085f19d40d..0000000000 --- a/html/changelogs/MistyLuminescence - Wallets.yml +++ /dev/null @@ -1,36 +0,0 @@ -################################ -# Example Changelog File -# -# Note: This file, and files beginning with ".", and files that don't end in ".yml" will not be read. If you change this file, you will look really dumb. -# -# Your changelog will be merged with a master changelog. (New stuff added only, and only on the date entry for the day it was merged.) -# When it is, any changes listed below will disappear. -# -# Valid Prefixes: -# bugfix -# wip (For works in progress) -# tweak -# soundadd -# sounddel -# rscadd (general adding of nice things) -# rscdel (general deleting of nice things) -# imageadd -# imagedel -# maptweak -# spellcheck (typo fixes) -# experiment -################################# - -# Your name. -author: MistyLuminescence - -# Optional: Remove this file after generating master changelog. Useful for PR changelogs that won't get used again. -delete-after: True - -# Any changes you've made. See valid prefix list above. -# INDENT WITH TWO SPACES. NOT TABS. SPACES. -# SCREW THIS UP AND IT WON'T WORK. -# Also, all entries are changed into a single [] after a master changelog generation. Just remove the brackets when you add new entries. -# Please surround your changes in double quotes ("), as certain characters otherwise screws up compiling. The quotes will not show up in the changelog. -changes: - - tweak: "Wallets can now hold a wider variety of objects." \ No newline at end of file diff --git a/html/changelogs/Woodrat - 44 Revolver.yml b/html/changelogs/Woodrat - 44 Revolver.yml deleted file mode 100644 index c73fc0de09..0000000000 --- a/html/changelogs/Woodrat - 44 Revolver.yml +++ /dev/null @@ -1,38 +0,0 @@ -################################ -# Example Changelog File -# -# Note: This file, and files beginning with ".", and files that don't end in ".yml" will not be read. If you change this file, you will look really dumb. -# -# Your changelog will be merged with a master changelog. (New stuff added only, and only on the date entry for the day it was merged.) -# When it is, any changes listed below will disappear. -# -# Valid Prefixes: -# bugfix -# wip (For works in progress) -# tweak -# soundadd -# sounddel -# rscadd (general adding of nice things) -# rscdel (general deleting of nice things) -# imageadd -# imagedel -# maptweak -# spellcheck (typo fixes) -# experiment -################################# - -# Your name. -author: Woodrat - -# Optional: Remove this file after generating master changelog. Useful for PR changelogs that won't get used again. -delete-after: True - -# Any changes you've made. See valid prefix list above. -# INDENT WITH TWO SPACES. NOT TABS. SPACES. -# SCREW THIS UP AND IT WON'T WORK. -# Also, all entries are changed into a single [] after a master changelog generation. Just remove the brackets when you add new entries. -# Please surround your changes in double quotes ("), as certain characters otherwise screws up compiling. The quotes will not show up in the changelog. -changes: - - rscadd: "Added two 44 cal revolvers." - - rscadd: "Added 44 cal speedloader for revolvers." - - rscadd: "Added 44 cal rubber rounds." \ No newline at end of file diff --git a/html/changelogs/Woodrat - Random Changes.yml b/html/changelogs/Woodrat - Random Changes.yml deleted file mode 100644 index ad03c5bd4a..0000000000 --- a/html/changelogs/Woodrat - Random Changes.yml +++ /dev/null @@ -1,43 +0,0 @@ -################################ -# Example Changelog File -# -# Note: This file, and files beginning with ".", and files that don't end in ".yml" will not be read. If you change this file, you will look really dumb. -# -# Your changelog will be merged with a master changelog. (New stuff added only, and only on the date entry for the day it was merged.) -# When it is, any changes listed below will disappear. -# -# Valid Prefixes: -# bugfix -# wip (For works in progress) -# tweak -# soundadd -# sounddel -# rscadd (general adding of nice things) -# rscdel (general deleting of nice things) -# imageadd -# imagedel -# maptweak -# spellcheck (typo fixes) -# experiment -################################# - -# Your name. -author: Woodrat - -# Optional: Remove this file after generating master changelog. Useful for PR changelogs that won't get used again. -delete-after: True - -# Any changes you've made. See valid prefix list above. -# INDENT WITH TWO SPACES. NOT TABS. SPACES. -# SCREW THIS UP AND IT WON'T WORK. -# Also, all entries are changed into a single [] after a master changelog generation. Just remove the brackets when you add new entries. -# Please surround your changes in double quotes ("), as certain characters otherwise screws up compiling. The quotes will not show up in the changelog. -changes: - - bugfix: "Fixed the icon_state for 'structure/plushie/carp' and the random first aid kit spawner." - - rscadd: "Added a random chance tool spawn for power tools (most of the time it should still just be regular tools)." - - tweak: "Adjusted the spawn rate of medkits, combat medkits should be more rare." - - tweak: "Cash split into its own loot item." - - tweak: "Plushies split into large and small plushies." - - rscadd: "All the extra plushie spawns added to the random plushie spawn." - - tweak: "Eightball and conch shell added to toy spawns." - - rscadd: "Added spawn points for the large plushies, cash, and the power tools to the station." \ No newline at end of file From 1f4bdc4389a7da75e7557f83eece56056ce9c969 Mon Sep 17 00:00:00 2001 From: Leshana Date: Sun, 1 Apr 2018 22:03:10 -0400 Subject: [PATCH 19/24] Reverted use of 'usr' back to 'user' from commit 05fd53ebccf2e4f2be0b60f405bff8d200c0b72d --- code/game/objects/items/crayons.dm | 22 +++++++++---------- .../objects/items/weapons/storage/fancy.dm | 8 +++---- 2 files changed, 15 insertions(+), 15 deletions(-) diff --git a/code/game/objects/items/crayons.dm b/code/game/objects/items/crayons.dm index 2ad51ca887..f1a99a6090 100644 --- a/code/game/objects/items/crayons.dm +++ b/code/game/objects/items/crayons.dm @@ -46,11 +46,11 @@ if(colour != "#FFFFFF" && shadeColour != "#000000") colour = "#FFFFFF" shadeColour = "#000000" - to_chat(usr,"You will now draw in white and black with this crayon.") + to_chat(user, "You will now draw in white and black with this crayon.") else colour = "#000000" shadeColour = "#FFFFFF" - to_chat(usr,"You will now draw in black and white with this crayon.") + to_chat(user, "You will now draw in black and white with this crayon.") return /obj/item/weapon/pen/crayon/rainbow @@ -72,22 +72,22 @@ switch(drawtype) if("letter") drawtype = input("Choose the letter.", "Crayon scribbles") in list("a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z") - to_chat(usr,"You start drawing a letter on the [target.name].") + to_chat(user, "You start drawing a letter on the [target.name].") if("graffiti") - to_chat(usr,"You start drawing graffiti on the [target.name].") + to_chat(user, "You start drawing graffiti on the [target.name].") if("rune") - to_chat(usr,"You start drawing a rune on the [target.name].") + to_chat(user, "You start drawing a rune on the [target.name].") if("arrow") drawtype = input("Choose the arrow.", "Crayon scribbles") in list("left", "right", "up", "down") - to_chat(usr,"You start drawing an arrow on the [target.name].") + to_chat(user, "You start drawing an arrow on the [target.name].") if(instant || do_after(user, 50)) new /obj/effect/decal/cleanable/crayon(target,colour,shadeColour,drawtype) - to_chat(usr,"You finish drawing.") + to_chat(user, "You finish drawing.") target.add_fingerprint(user) // Adds their fingerprints to the floor the crayon is drawn on. if(uses) uses-- if(!uses) - to_chat(usr,"You used up your crayon!") + to_chat(user, "You used up your crayon!") qdel(src) return @@ -158,11 +158,11 @@ if(colour != "#FFFFFF" && shadeColour != "#000000") colour = "#FFFFFF" shadeColour = "#000000" - to_chat(usr,"You will now draw in white and black with this marker.") + to_chat(user, "You will now draw in white and black with this marker.") else colour = "#000000" shadeColour = "#FFFFFF" - to_chat(usr,"You will now draw in black and white with this marker.") + to_chat(user, "You will now draw in black and white with this marker.") return /obj/item/weapon/pen/crayon/marker/rainbow @@ -179,7 +179,7 @@ /obj/item/weapon/pen/crayon/marker/attack(mob/M as mob, mob/user as mob) if(M == user) - to_chat(usr,"You take a bite of the marker and swallow it.") + to_chat(user, "You take a bite of the marker and swallow it.") user.nutrition += 1 user.reagents.add_reagent("marker_ink",6) if(uses) diff --git a/code/game/objects/items/weapons/storage/fancy.dm b/code/game/objects/items/weapons/storage/fancy.dm index 762720e390..c1de372dc1 100644 --- a/code/game/objects/items/weapons/storage/fancy.dm +++ b/code/game/objects/items/weapons/storage/fancy.dm @@ -107,10 +107,10 @@ if(istype(W,/obj/item/weapon/pen/crayon)) switch(W:colourName) if("mime") - to_chat(usr,"This crayon is too sad to be contained in this box.") + to_chat(user, "This crayon is too sad to be contained in this box.") return if("rainbow") - to_chat(usr,"This crayon is too powerful to be contained in this box.") + to_chat(user, "This crayon is too powerful to be contained in this box.") return ..() @@ -149,10 +149,10 @@ if(istype(W,/obj/item/weapon/pen/crayon/marker)) switch(W:colourName) if("mime") - to_chat(usr,"This marker is too depressing to be contained in this box.") + to_chat(user, "This marker is too depressing to be contained in this box.") return if("rainbow") - to_chat(usr,"This marker is too childish to be contained in this box.") + to_chat(user, "This marker is too childish to be contained in this box.") return ..() From 6cb7d9a10c19ed512a7074f69e8807514384de2e Mon Sep 17 00:00:00 2001 From: MarinaGryphon Date: Sun, 1 Apr 2018 22:46:13 -0500 Subject: [PATCH 20/24] Fixes wallet-HUD interaction issues. (#5130) * Fixes wallet-HUD interaction issues. * Fixes HUDs, too. Forgot to commit this the first time. Also hopefully didn't change the map to examplemap. * Fixes an indentation error. --- code/game/machinery/newscaster.dm | 17 +--- code/modules/mob/living/carbon/human/human.dm | 95 +++++++------------ 2 files changed, 38 insertions(+), 74 deletions(-) diff --git a/code/game/machinery/newscaster.dm b/code/game/machinery/newscaster.dm index 5ce605afcc..b9bd4a6855 100644 --- a/code/game/machinery/newscaster.dm +++ b/code/game/machinery/newscaster.dm @@ -935,20 +935,11 @@ obj/item/weapon/newspaper/attackby(obj/item/weapon/W as obj, mob/user as mob) /obj/machinery/newscaster/proc/scan_user(mob/living/user as mob) if(istype(user,/mob/living/carbon/human)) //User is a human var/mob/living/carbon/human/human_user = user - if(human_user.wear_id) //Newscaster scans you - if(istype(human_user.wear_id, /obj/item/device/pda)) //autorecognition, woo! - var/obj/item/device/pda/P = human_user.wear_id - if(P.id) - scanned_user = GetNameAndAssignmentFromId(P.id) - else - scanned_user = "Unknown" - else if(istype(human_user.wear_id, /obj/item/weapon/card/id)) - var/obj/item/weapon/card/id/ID = human_user.wear_id - scanned_user = GetNameAndAssignmentFromId(ID) - else - scanned_user ="Unknown" + var/obj/item/weapon/card/id/I = human_user.GetIdCard() + if(I) + scanned_user = GetNameAndAssignmentFromId(I) else - scanned_user ="Unknown" + scanned_user = "Unknown" else var/mob/living/silicon/ai_user = user scanned_user = "[ai_user.name] ([ai_user.job])" diff --git a/code/modules/mob/living/carbon/human/human.dm b/code/modules/mob/living/carbon/human/human.dm index 19bd85494b..e13facfc9e 100644 --- a/code/modules/mob/living/carbon/human/human.dm +++ b/code/modules/mob/living/carbon/human/human.dm @@ -393,12 +393,9 @@ var/modified = 0 var/perpname = "wot" - if(wear_id) - var/obj/item/weapon/card/id/I = wear_id.GetID() - if(I) - perpname = I.registered_name - else - perpname = name + var/obj/item/weapon/card/id/I = GetIdCard() + if(I) + perpname = I.registered_name else perpname = name @@ -432,14 +429,11 @@ var/perpname = "wot" var/read = 0 - if(wear_id) - if(istype(wear_id,/obj/item/weapon/card/id)) - perpname = wear_id:registered_name - else if(istype(wear_id,/obj/item/device/pda)) - var/obj/item/device/pda/tempPda = wear_id - perpname = tempPda.owner + var/obj/item/weapon/card/id/I = GetIdCard() + if(I) + perpname = I.registered_name else - perpname = src.name + perpname = name for (var/datum/data/record/E in data_core.general) if (E.fields["name"] == perpname) for (var/datum/data/record/R in data_core.security) @@ -462,14 +456,11 @@ var/perpname = "wot" var/read = 0 - if(wear_id) - if(istype(wear_id,/obj/item/weapon/card/id)) - perpname = wear_id:registered_name - else if(istype(wear_id,/obj/item/device/pda)) - var/obj/item/device/pda/tempPda = wear_id - perpname = tempPda.owner + var/obj/item/weapon/card/id/I = GetIdCard() + if(I) + perpname = I.registered_name else - perpname = src.name + perpname = name for (var/datum/data/record/E in data_core.general) if (E.fields["name"] == perpname) for (var/datum/data/record/R in data_core.security) @@ -490,14 +481,11 @@ if (href_list["secrecordadd"]) if(hasHUD(usr,"security")) var/perpname = "wot" - if(wear_id) - if(istype(wear_id,/obj/item/weapon/card/id)) - perpname = wear_id:registered_name - else if(istype(wear_id,/obj/item/device/pda)) - var/obj/item/device/pda/tempPda = wear_id - perpname = tempPda.owner + var/obj/item/weapon/card/id/I = GetIdCard() + if(I) + perpname = I.registered_name else - perpname = src.name + perpname = name for (var/datum/data/record/E in data_core.general) if (E.fields["name"] == perpname) for (var/datum/data/record/R in data_core.security) @@ -521,14 +509,11 @@ var/perpname = "wot" var/modified = 0 - if(wear_id) - if(istype(wear_id,/obj/item/weapon/card/id)) - perpname = wear_id:registered_name - else if(istype(wear_id,/obj/item/device/pda)) - var/obj/item/device/pda/tempPda = wear_id - perpname = tempPda.owner + var/obj/item/weapon/card/id/I = GetIdCard() + if(I) + perpname = I.registered_name else - perpname = src.name + perpname = name for (var/datum/data/record/E in data_core.general) if (E.fields["name"] == perpname) @@ -560,14 +545,11 @@ var/perpname = "wot" var/read = 0 - if(wear_id) - if(istype(wear_id,/obj/item/weapon/card/id)) - perpname = wear_id:registered_name - else if(istype(wear_id,/obj/item/device/pda)) - var/obj/item/device/pda/tempPda = wear_id - perpname = tempPda.owner + var/obj/item/weapon/card/id/I = GetIdCard() + if(I) + perpname = I.registered_name else - perpname = src.name + perpname = name for (var/datum/data/record/E in data_core.general) if (E.fields["name"] == perpname) for (var/datum/data/record/R in data_core.medical) @@ -591,14 +573,11 @@ var/perpname = "wot" var/read = 0 - if(wear_id) - if(istype(wear_id,/obj/item/weapon/card/id)) - perpname = wear_id:registered_name - else if(istype(wear_id,/obj/item/device/pda)) - var/obj/item/device/pda/tempPda = wear_id - perpname = tempPda.owner + var/obj/item/weapon/card/id/I = GetIdCard() + if(I) + perpname = I.registered_name else - perpname = src.name + perpname = name for (var/datum/data/record/E in data_core.general) if (E.fields["name"] == perpname) for (var/datum/data/record/R in data_core.medical) @@ -619,14 +598,11 @@ if (href_list["medrecordadd"]) if(hasHUD(usr,"medical")) var/perpname = "wot" - if(wear_id) - if(istype(wear_id,/obj/item/weapon/card/id)) - perpname = wear_id:registered_name - else if(istype(wear_id,/obj/item/device/pda)) - var/obj/item/device/pda/tempPda = wear_id - perpname = tempPda.owner + var/obj/item/weapon/card/id/I = GetIdCard() + if(I) + perpname = I.registered_name else - perpname = src.name + perpname = name for (var/datum/data/record/E in data_core.general) if (E.fields["name"] == perpname) for (var/datum/data/record/R in data_core.medical) @@ -1593,12 +1569,9 @@ if(hasHUD(user,"security")) //Try to find their name var/perpname - if(wear_id) - var/obj/item/weapon/card/id/I = wear_id.GetID() - if(I) - perpname = I.registered_name - else - perpname = name + var/obj/item/weapon/card/id/I = GetIdCard() + if(I) + perpname = I.registered_name else perpname = name //Try to find their record From a6cfbc4f4232d57fadc152c5553f0906e659fbdd Mon Sep 17 00:00:00 2001 From: Arokha Sieyes Date: Sat, 17 Feb 2018 19:47:39 -0600 Subject: [PATCH 21/24] Initial cleanup/changes --- code/__defines/misc.dm | 6 +- code/_helpers/mobs.dm | 9 + code/datums/datacore.dm | 177 +----------------- .../items/weapons/id cards/station_ids.dm | 5 +- code/global.dm | 4 + code/modules/mob/living/carbon/human/human.dm | 3 +- 6 files changed, 27 insertions(+), 177 deletions(-) diff --git a/code/__defines/misc.dm b/code/__defines/misc.dm index 3a8ee870e5..3239b4a022 100644 --- a/code/__defines/misc.dm +++ b/code/__defines/misc.dm @@ -236,4 +236,8 @@ #define USE_FAIL_DEAD 4 #define USE_FAIL_INCAPACITATED 5 #define USE_FAIL_NOT_IN_USER 6 -#define USE_FAIL_IS_SILICON 7 \ No newline at end of file +#define USE_FAIL_IS_SILICON 7 + +//Useful for building semicolon-delimited time readouts when trying to find slowdowns in procs +var/world_time_test = 0 +#define TIMETEST ;world << "TIME DBG;[__FILE__];[__LINE__]; [round(world.tick_usage)]% ([round(world.tick_usage - world_time_test)]%)";world_time_test = world.tick_usage \ No newline at end of file diff --git a/code/_helpers/mobs.dm b/code/_helpers/mobs.dm index e82e618651..bc111ccbcb 100644 --- a/code/_helpers/mobs.dm +++ b/code/_helpers/mobs.dm @@ -277,6 +277,15 @@ Proc for attack log creation, because really why not return humans +/proc/cached_character_icon(var/mob/desired) + var/cachekey = "\ref[desired][desired.real_name]" + + if(cached_character_icons[cachekey]) + . = cached_character_icons[cachekey] + else + . = getCompoundIcon(desired) + cached_character_icons[cachekey] = . + /proc/getviewsize(view) var/viewX var/viewY diff --git a/code/datums/datacore.dm b/code/datums/datacore.dm index 8e21740082..291f41a8d8 100644 --- a/code/datums/datacore.dm +++ b/code/datums/datacore.dm @@ -243,7 +243,7 @@ L.fields["citizenship"] = H.citizenship L.fields["faction"] = H.personal_faction L.fields["religion"] = H.religion - L.fields["image"] = getFlatIcon(H) //This is god-awful + L.fields["image"] = icon(cached_character_icon(H), dir = SOUTH) L.fields["antagfac"] = H.antag_faction L.fields["antagvis"] = H.antag_vis if(H.exploit_record && !jobban_isbanned(H, "Records")) @@ -256,182 +256,13 @@ /proc/generate_record_id() return add_zero(num2hex(rand(1, 65535)), 4) //no point generating higher numbers because of the limitations of num2hex -/proc/get_id_photo(var/mob/living/carbon/human/H, var/assigned_role) - var/icon/preview_icon = null - - var/g = "m" - if (H.gender == FEMALE) - g = "f" - - var/icon/icobase = H.species.icobase - - preview_icon = new /icon(icobase, "torso_[g]") - var/icon/temp - temp = new /icon(icobase, "groin_[g]") - preview_icon.Blend(temp, ICON_OVERLAY) - temp = new /icon(icobase, "head_[g]") - preview_icon.Blend(temp, ICON_OVERLAY) - - for(var/obj/item/organ/external/E in H.organs) - preview_icon.Blend(E.get_icon(), ICON_OVERLAY) - - //Tail - var/use_species_tail = H.species.get_tail(H) - if(use_species_tail) - temp = new/icon("icon" = 'icons/effects/species.dmi', "icon_state" = "[use_species_tail]_s") - preview_icon.Blend(temp, ICON_OVERLAY) - - // Skin tone - if(H.species.flags & HAS_SKIN_TONE) - if (H.s_tone >= 0) - preview_icon.Blend(rgb(H.s_tone, H.s_tone, H.s_tone), ICON_ADD) - else - preview_icon.Blend(rgb(-H.s_tone, -H.s_tone, -H.s_tone), ICON_SUBTRACT) - - // Skin color - if(H.species.flags & HAS_SKIN_TONE) - if(!H.species || H.species.flags & HAS_SKIN_COLOR) - preview_icon.Blend(rgb(H.r_skin, H.g_skin, H.b_skin), ICON_ADD) - - var/use_eye_icon = "eyes_s" - var/obj/item/organ/external/head/temp_head = H.get_organ(BP_HEAD) - if(temp_head) use_eye_icon = temp_head.eye_icon - var/icon/eyes_s = new/icon("icon" = 'icons/mob/human_face.dmi', "icon_state" = use_eye_icon) - - if (H.species.flags & HAS_EYE_COLOR) - eyes_s.Blend(rgb(H.r_eyes, H.g_eyes, H.b_eyes), ICON_ADD) - - var/datum/sprite_accessory/hair_style = hair_styles_list[H.h_style] - if(hair_style) - var/icon/hair_s = new/icon("icon" = hair_style.icon, "icon_state" = "[hair_style.icon_state]_s") - hair_s.Blend(rgb(H.r_hair, H.g_hair, H.b_hair), ICON_ADD) - eyes_s.Blend(hair_s, ICON_OVERLAY) - - var/datum/sprite_accessory/facial_hair_style = facial_hair_styles_list[H.f_style] - if(facial_hair_style) - var/icon/facial_s = new/icon("icon" = facial_hair_style.icon, "icon_state" = "[facial_hair_style.icon_state]_s") - facial_s.Blend(rgb(H.r_facial, H.g_facial, H.b_facial), ICON_ADD) - eyes_s.Blend(facial_s, ICON_OVERLAY) - - var/icon/clothes_s = null - if(!assigned_role) assigned_role = H.mind.assigned_role - switch(assigned_role) - if("Head of Personnel") - clothes_s = new /icon('icons/mob/uniform.dmi', "hop_s") - clothes_s.Blend(new /icon('icons/mob/feet.dmi', "brown"), ICON_UNDERLAY) - if("Bartender") - clothes_s = new /icon('icons/mob/uniform.dmi', "ba_suit_s") - clothes_s.Blend(new /icon('icons/mob/feet.dmi', "black"), ICON_UNDERLAY) - if("Gardener") - clothes_s = new /icon('icons/mob/uniform.dmi', "hydroponics_s") - clothes_s.Blend(new /icon('icons/mob/feet.dmi', "black"), ICON_UNDERLAY) - if("Chef") - clothes_s = new /icon('icons/mob/uniform.dmi', "chef_s") - clothes_s.Blend(new /icon('icons/mob/feet.dmi', "black"), ICON_UNDERLAY) - if("Janitor") - clothes_s = new /icon('icons/mob/uniform.dmi', "janitor_s") - clothes_s.Blend(new /icon('icons/mob/feet.dmi', "black"), ICON_UNDERLAY) - if("Librarian") - clothes_s = new /icon('icons/mob/uniform.dmi', "red_suit_s") - clothes_s.Blend(new /icon('icons/mob/feet.dmi', "black"), ICON_UNDERLAY) - if("Quartermaster") - clothes_s = new /icon('icons/mob/uniform.dmi', "qm_s") - clothes_s.Blend(new /icon('icons/mob/feet.dmi', "brown"), ICON_UNDERLAY) - if("Cargo Technician") - clothes_s = new /icon('icons/mob/uniform.dmi', "cargotech_s") - clothes_s.Blend(new /icon('icons/mob/feet.dmi', "black"), ICON_UNDERLAY) - if("Shaft Miner") - clothes_s = new /icon('icons/mob/uniform.dmi', "miner_s") - clothes_s.Blend(new /icon('icons/mob/feet.dmi', "black"), ICON_UNDERLAY) - if("Lawyer") - clothes_s = new /icon('icons/mob/uniform.dmi', "internalaffairs_s") - clothes_s.Blend(new /icon('icons/mob/feet.dmi', "brown"), ICON_UNDERLAY) - if("Chaplain") - clothes_s = new /icon('icons/mob/uniform.dmi', "chapblack_s") - clothes_s.Blend(new /icon('icons/mob/feet.dmi', "black"), ICON_UNDERLAY) - if("Research Director") - clothes_s = new /icon('icons/mob/uniform.dmi', "director_s") - clothes_s.Blend(new /icon('icons/mob/feet.dmi', "brown"), ICON_UNDERLAY) - clothes_s.Blend(new /icon('icons/mob/suit.dmi', "labcoat_open"), ICON_OVERLAY) - if("Scientist") - clothes_s = new /icon('icons/mob/uniform.dmi', "sciencewhite_s") - clothes_s.Blend(new /icon('icons/mob/feet.dmi', "white"), ICON_UNDERLAY) - clothes_s.Blend(new /icon('icons/mob/suit.dmi', "labcoat_tox_open"), ICON_OVERLAY) - if("Chemist") - clothes_s = new /icon('icons/mob/uniform.dmi', "chemistrywhite_s") - clothes_s.Blend(new /icon('icons/mob/feet.dmi', "white"), ICON_UNDERLAY) - clothes_s.Blend(new /icon('icons/mob/suit.dmi', "labcoat_chem_open"), ICON_OVERLAY) - if("Chief Medical Officer") - clothes_s = new /icon('icons/mob/uniform.dmi', "cmo_s") - clothes_s.Blend(new /icon('icons/mob/feet.dmi', "brown"), ICON_UNDERLAY) - clothes_s.Blend(new /icon('icons/mob/suit.dmi', "labcoat_cmo_open"), ICON_OVERLAY) - if("Medical Doctor") - clothes_s = new /icon('icons/mob/uniform.dmi', "medical_s") - clothes_s.Blend(new /icon('icons/mob/feet.dmi', "white"), ICON_UNDERLAY) - clothes_s.Blend(new /icon('icons/mob/suit.dmi', "labcoat_open"), ICON_OVERLAY) - if("Geneticist") - clothes_s = new /icon('icons/mob/uniform.dmi', "geneticswhite_s") - clothes_s.Blend(new /icon('icons/mob/feet.dmi', "white"), ICON_UNDERLAY) - clothes_s.Blend(new /icon('icons/mob/suit.dmi', "labcoat_gen_open"), ICON_OVERLAY) - if("Virologist") - clothes_s = new /icon('icons/mob/uniform.dmi', "virologywhite_s") - clothes_s.Blend(new /icon('icons/mob/feet.dmi', "white"), ICON_UNDERLAY) - clothes_s.Blend(new /icon('icons/mob/suit.dmi', "labcoat_vir_open"), ICON_OVERLAY) - if("Colony Director") - clothes_s = new /icon('icons/mob/uniform.dmi', "captain_s") - clothes_s.Blend(new /icon('icons/mob/feet.dmi', "brown"), ICON_UNDERLAY) - if("Head of Security") - clothes_s = new /icon('icons/mob/uniform.dmi', "hosred_s") - clothes_s.Blend(new /icon('icons/mob/feet.dmi', "jackboots"), ICON_UNDERLAY) - if("Warden") - clothes_s = new /icon('icons/mob/uniform.dmi', "warden_s") - clothes_s.Blend(new /icon('icons/mob/feet.dmi', "jackboots"), ICON_UNDERLAY) - if("Detective") - clothes_s = new /icon('icons/mob/uniform.dmi', "detective_s") - clothes_s.Blend(new /icon('icons/mob/feet.dmi', "brown"), ICON_UNDERLAY) - clothes_s.Blend(new /icon('icons/mob/suit.dmi', "detective"), ICON_OVERLAY) - if("Security Officer") - clothes_s = new /icon('icons/mob/uniform.dmi', "secred_s") - clothes_s.Blend(new /icon('icons/mob/feet.dmi', "jackboots"), ICON_UNDERLAY) - if("Chief Engineer") - clothes_s = new /icon('icons/mob/uniform.dmi', "chief_s") - clothes_s.Blend(new /icon('icons/mob/feet.dmi', "brown"), ICON_UNDERLAY) - clothes_s.Blend(new /icon('icons/mob/belt.dmi', "utility"), ICON_OVERLAY) - if("Station Engineer") - clothes_s = new /icon('icons/mob/uniform.dmi', "engine_s") - clothes_s.Blend(new /icon('icons/mob/feet.dmi', "orange"), ICON_UNDERLAY) - clothes_s.Blend(new /icon('icons/mob/belt.dmi', "utility"), ICON_OVERLAY) - if("Atmospheric Technician") - clothes_s = new /icon('icons/mob/uniform.dmi', "atmos_s") - clothes_s.Blend(new /icon('icons/mob/feet.dmi', "black"), ICON_UNDERLAY) - clothes_s.Blend(new /icon('icons/mob/belt.dmi', "utility"), ICON_OVERLAY) - if("Roboticist") - clothes_s = new /icon('icons/mob/uniform.dmi', "robotics_s") - clothes_s.Blend(new /icon('icons/mob/feet.dmi', "black"), ICON_UNDERLAY) - clothes_s.Blend(new /icon('icons/mob/suit.dmi', "labcoat_open"), ICON_OVERLAY) - else - clothes_s = new /icon('icons/mob/uniform.dmi', "grey_s") - clothes_s.Blend(new /icon('icons/mob/feet.dmi', "black"), ICON_UNDERLAY) - preview_icon.Blend(eyes_s, ICON_OVERLAY) - if(clothes_s) - preview_icon.Blend(clothes_s, ICON_OVERLAY) - qdel(eyes_s) - qdel(clothes_s) - - return preview_icon - /datum/datacore/proc/CreateGeneralRecord(var/mob/living/carbon/human/H, var/id) ResetPDAManifest() var/icon/front var/icon/side - if(H) - front = getFlatIcon(H, SOUTH) - side = getFlatIcon(H, WEST) - else - var/mob/living/carbon/human/dummy = new() - front = new(get_id_photo(dummy), dir = SOUTH) - side = new(get_id_photo(dummy), dir = WEST) - qdel(dummy) + var/icon/charicon = cached_character_icon(H) + front = icon(charicon, dir = SOUTH) + side = icon(charicon, dir = WEST) if(!id) id = text("[]", add_zero(num2hex(rand(1, 65536)), 4)) var/datum/data/record/G = new /datum/data/record() diff --git a/code/game/objects/items/weapons/id cards/station_ids.dm b/code/game/objects/items/weapons/id cards/station_ids.dm index 314320ffe7..d3d8b4d1a6 100644 --- a/code/game/objects/items/weapons/id cards/station_ids.dm +++ b/code/game/objects/items/weapons/id cards/station_ids.dm @@ -55,8 +55,9 @@ name = "[src.registered_name]'s ID Card ([src.assignment])" /obj/item/weapon/card/id/proc/set_id_photo(var/mob/M) - front = getFlatIcon(M, SOUTH) - side = getFlatIcon(M, WEST) + var/icon/charicon = cached_character_icon(M) + front = icon(charicon,dir = SOUTH) + side = icon(charicon,dir = WEST) /mob/proc/set_id_info(var/obj/item/weapon/card/id/id_card) id_card.age = 0 diff --git a/code/global.dm b/code/global.dm index 1f6124602a..8c6ae38f97 100644 --- a/code/global.dm +++ b/code/global.dm @@ -194,3 +194,7 @@ var/list/station_departments = list("Command", "Medical", "Engineering", "Scienc //Icons for in-game HUD glasses. Why don't we just share these a little bit? var/static/icon/ingame_hud = icon('icons/mob/hud.dmi') var/static/icon/ingame_hud_med = icon('icons/mob/hud_med.dmi') + +//Keyed list for caching icons so you don't need to make them for records, IDs, etc all separately. +//Could be useful for AI impersonation or something at some point? +var/static/list/cached_character_icons = list() diff --git a/code/modules/mob/living/carbon/human/human.dm b/code/modules/mob/living/carbon/human/human.dm index e13facfc9e..1cea9e2113 100644 --- a/code/modules/mob/living/carbon/human/human.dm +++ b/code/modules/mob/living/carbon/human/human.dm @@ -1090,7 +1090,7 @@ else usr << "You failed to check the pulse. Try again." -/mob/living/carbon/human/proc/set_species(var/new_species, var/default_colour) +/mob/living/carbon/human/proc/set_species(var/new_species, var/default_colour, var/regen_icons = TRUE) if(!dna) if(!new_species) @@ -1153,6 +1153,7 @@ maxHealth = species.total_health spawn(0) + if(regen_icons) regenerate_icons() make_blood() if(vessel.total_volume < species.blood_volume) vessel.maximum_volume = species.blood_volume From 0e2f41ea8688bf879cf6c79c5b18009676f8ac0a Mon Sep 17 00:00:00 2001 From: Arokha Sieyes Date: Sat, 17 Feb 2018 21:39:26 -0600 Subject: [PATCH 22/24] More optimizations for character joins --- code/__defines/misc.dm | 6 +----- code/datums/datacore.dm | 10 ++++++---- code/datums/outfits/outfit.dm | 8 +++++--- code/game/jobs/job_controller.dm | 3 ++- code/modules/client/preferences.dm | 2 +- code/modules/mob/new_player/new_player.dm | 2 +- 6 files changed, 16 insertions(+), 15 deletions(-) diff --git a/code/__defines/misc.dm b/code/__defines/misc.dm index 3239b4a022..3a8ee870e5 100644 --- a/code/__defines/misc.dm +++ b/code/__defines/misc.dm @@ -236,8 +236,4 @@ #define USE_FAIL_DEAD 4 #define USE_FAIL_INCAPACITATED 5 #define USE_FAIL_NOT_IN_USER 6 -#define USE_FAIL_IS_SILICON 7 - -//Useful for building semicolon-delimited time readouts when trying to find slowdowns in procs -var/world_time_test = 0 -#define TIMETEST ;world << "TIME DBG;[__FILE__];[__LINE__]; [round(world.tick_usage)]% ([round(world.tick_usage - world_time_test)]%)";world_time_test = world.tick_usage \ No newline at end of file +#define USE_FAIL_IS_SILICON 7 \ No newline at end of file diff --git a/code/datums/datacore.dm b/code/datums/datacore.dm index 291f41a8d8..b665465084 100644 --- a/code/datums/datacore.dm +++ b/code/datums/datacore.dm @@ -260,11 +260,13 @@ ResetPDAManifest() var/icon/front var/icon/side - var/icon/charicon = cached_character_icon(H) - front = icon(charicon, dir = SOUTH) - side = icon(charicon, dir = WEST) + if(H) + var/icon/charicon = cached_character_icon(H) + front = icon(charicon, dir = SOUTH) + side = icon(charicon, dir = WEST) - if(!id) id = text("[]", add_zero(num2hex(rand(1, 65536)), 4)) + if(!id) + id = text("[]", add_zero(num2hex(rand(1, 65536)), 4)) var/datum/data/record/G = new /datum/data/record() G.name = "Employee Record #[id]" G.fields["name"] = "New Record" diff --git a/code/datums/outfits/outfit.dm b/code/datums/outfits/outfit.dm index ac653e2647..a37c339e21 100644 --- a/code/datums/outfits/outfit.dm +++ b/code/datums/outfits/outfit.dm @@ -101,7 +101,6 @@ var/list/outfits_decls_by_type_ H.equip_to_slot_or_del(new path(H), slot_in_backpack) post_equip(H) - H.regenerate_icons() if(W) // We set ID info last to ensure the ID photo is as correct as possible. H.set_id_info(W) return 1 @@ -158,15 +157,18 @@ var/list/outfits_decls_by_type_ W.rank = rank if(assignment) W.assignment = assignment - H.set_id_info(W) if(H.equip_to_slot_or_del(W, id_slot)) return W -/decl/hierarchy/outfit/proc/equip_pda(mob/living/carbon/human/H, assignment) +/decl/hierarchy/outfit/proc/equip_pda(mob/living/carbon/human/H, rank, assignment) if(!pda_slot || !pda_type) return var/obj/item/device/pda/pda = new pda_type(H) if(H.equip_to_slot_or_del(pda, pda_slot)) + pda.owner = H.real_name + pda.ownjob = assignment + pda.ownrank = rank + pda.name = "PDA-[H.real_name] ([assignment])" return pda /decl/hierarchy/outfit/dd_SortValue() diff --git a/code/game/jobs/job_controller.dm b/code/game/jobs/job_controller.dm index d40330ca48..75e17bd792 100644 --- a/code/game/jobs/job_controller.dm +++ b/code/game/jobs/job_controller.dm @@ -507,7 +507,8 @@ var/global/datum/controller/occupations/job_master proc/spawnId(var/mob/living/carbon/human/H, rank, title) if(!H) return 0 - var/obj/item/weapon/card/id/C = null + var/obj/item/weapon/card/id/C = H.get_equipped_item(slot_wear_id) + if(istype(C)) return 0 var/datum/job/job = null for(var/datum/job/J in occupations) diff --git a/code/modules/client/preferences.dm b/code/modules/client/preferences.dm index 546c0594cf..0b93d1bd64 100644 --- a/code/modules/client/preferences.dm +++ b/code/modules/client/preferences.dm @@ -273,7 +273,7 @@ datum/preferences ShowChoices(usr) return 1 -/datum/preferences/proc/copy_to(mob/living/carbon/human/character, icon_updates = 1) +/datum/preferences/proc/copy_to(mob/living/carbon/human/character, icon_updates = TRUE) // Sanitizing rather than saving as someone might still be editing when copy_to occurs. player_setup.sanitize_setup() diff --git a/code/modules/mob/new_player/new_player.dm b/code/modules/mob/new_player/new_player.dm index 1d49c1aacb..ce34765ac0 100644 --- a/code/modules/mob/new_player/new_player.dm +++ b/code/modules/mob/new_player/new_player.dm @@ -453,7 +453,7 @@ client.prefs.real_name = random_name(new_character.gender) client.prefs.randomize_appearance_and_body_for(new_character) else - client.prefs.copy_to(new_character) + client.prefs.copy_to(new_character, icon_updates = TRUE) src << sound(null, repeat = 0, wait = 0, volume = 85, channel = 1) // MAD JAMS cant last forever yo From 7da46a6dcc13033f2367d2b3cbd4163f64ea2acf Mon Sep 17 00:00:00 2001 From: Leshana Date: Mon, 2 Apr 2018 21:47:55 -0400 Subject: [PATCH 23/24] Switch cables and pipes to use define constants instead of literals for layers. Also fix a few things to be on the correct plane. Basically the under-floor stuff is supposed to be on PLATING_PLANE. Portable atmospherics go on object layer so they are above stationary machinery, given that they move around. Fixed wires to be on top of pipes like they used to be, otherwise they'd be obscured too often. --- code/ATMOSPHERICS/atmospherics.dm | 6 +++--- code/ATMOSPHERICS/pipes/cap.dm | 8 ++++---- code/ATMOSPHERICS/pipes/he_pipes.dm | 2 +- code/ATMOSPHERICS/pipes/manifold.dm | 9 ++++----- code/ATMOSPHERICS/pipes/manifold4w.dm | 9 ++++----- code/ATMOSPHERICS/pipes/pipe_base.dm | 2 +- code/ATMOSPHERICS/pipes/simple.dm | 8 ++++---- code/ATMOSPHERICS/pipes/tank.dm | 1 + code/__defines/_planes+layers.dm | 5 +++-- code/__defines/construction.dm | 7 ++++++- code/game/machinery/atmoalter/portable_atmospherics.dm | 1 + code/modules/multiz/pipes.dm | 8 ++++---- code/modules/power/cable.dm | 3 ++- code/modules/power/cable_ender.dm | 3 ++- code/modules/power/cable_heavyduty.dm | 3 ++- code/modules/recycling/disposal.dm | 1 + 16 files changed, 43 insertions(+), 33 deletions(-) diff --git a/code/ATMOSPHERICS/atmospherics.dm b/code/ATMOSPHERICS/atmospherics.dm index 8d3aa08493..acb1da7b02 100644 --- a/code/ATMOSPHERICS/atmospherics.dm +++ b/code/ATMOSPHERICS/atmospherics.dm @@ -17,7 +17,7 @@ Pipelines + Other Objects -> Pipe network var/nodealert = 0 var/power_rating //the maximum amount of power the machine can use to do work, affects how powerful the machine is, in Watts - layer = PIPES_LAYER + layer = ATMOS_LAYER plane = PLATING_PLANE var/pipe_flags = PIPING_DEFAULT_LAYER_ONLY // Allow other layers by exception basis. @@ -202,12 +202,12 @@ Pipelines + Other Objects -> Pipe network if(PIPING_LAYER_SCRUBBER) icon_state = "[icon_state]-scrubbers" connect_types = CONNECT_TYPE_SCRUBBER - layer = 2.38 + layer = PIPES_SCRUBBER_LAYER icon_connect_type = "-scrubbers" if(PIPING_LAYER_SUPPLY) icon_state = "[icon_state]-supply" connect_types = CONNECT_TYPE_SUPPLY - layer = 2.39 + layer = PIPES_SUPPLY_LAYER icon_connect_type = "-supply" if(pipe_flags & PIPING_ALL_LAYER) connect_types = CONNECT_TYPE_REGULAR|CONNECT_TYPE_SUPPLY|CONNECT_TYPE_SCRUBBER diff --git a/code/ATMOSPHERICS/pipes/cap.dm b/code/ATMOSPHERICS/pipes/cap.dm index 4658b9c40c..a03ce16af5 100644 --- a/code/ATMOSPHERICS/pipes/cap.dm +++ b/code/ATMOSPHERICS/pipes/cap.dm @@ -79,7 +79,7 @@ icon_state = "cap-scrubbers" connect_types = CONNECT_TYPE_SCRUBBER piping_layer = PIPING_LAYER_SCRUBBER - layer = 2.38 + layer = PIPES_SCRUBBER_LAYER icon_connect_type = "-scrubbers" color = PIPE_COLOR_RED @@ -89,7 +89,7 @@ icon_state = "cap-supply" connect_types = CONNECT_TYPE_SUPPLY piping_layer = PIPING_LAYER_SUPPLY - layer = 2.39 + layer = PIPES_SUPPLY_LAYER icon_connect_type = "-supply" color = PIPE_COLOR_BLUE @@ -104,7 +104,7 @@ icon_state = "cap-f-scrubbers" connect_types = CONNECT_TYPE_SCRUBBER piping_layer = PIPING_LAYER_SCRUBBER - layer = 2.38 + layer = PIPES_SCRUBBER_LAYER icon_connect_type = "-scrubbers" color = PIPE_COLOR_RED @@ -114,6 +114,6 @@ icon_state = "cap-f-supply" connect_types = CONNECT_TYPE_SUPPLY piping_layer = PIPING_LAYER_SUPPLY - layer = 2.39 + layer = PIPES_SUPPLY_LAYER icon_connect_type = "-supply" color = PIPE_COLOR_BLUE diff --git a/code/ATMOSPHERICS/pipes/he_pipes.dm b/code/ATMOSPHERICS/pipes/he_pipes.dm index fe6580b1ce..2d77e3a4ca 100644 --- a/code/ATMOSPHERICS/pipes/he_pipes.dm +++ b/code/ATMOSPHERICS/pipes/he_pipes.dm @@ -12,7 +12,7 @@ construction_type = /obj/item/pipe/binary/bendable pipe_state = "he" - layer = 2.41 + layer = PIPES_HE_LAYER var/initialize_directions_he var/surface = 2 //surface area in m^2 var/icon_temperature = T20C //stop small changes in temperature causing an icon refresh diff --git a/code/ATMOSPHERICS/pipes/manifold.dm b/code/ATMOSPHERICS/pipes/manifold.dm index bca6dd3379..524d420d39 100644 --- a/code/ATMOSPHERICS/pipes/manifold.dm +++ b/code/ATMOSPHERICS/pipes/manifold.dm @@ -18,7 +18,6 @@ var/obj/machinery/atmospherics/node3 level = 1 - layer = 2.4 //under wires with their 2.44 /obj/machinery/atmospherics/pipe/manifold/New() ..() @@ -166,7 +165,7 @@ icon_state = "map-scrubbers" connect_types = CONNECT_TYPE_SCRUBBER piping_layer = PIPING_LAYER_SCRUBBER - layer = 2.38 + layer = PIPES_SCRUBBER_LAYER icon_connect_type = "-scrubbers" color = PIPE_COLOR_RED @@ -176,7 +175,7 @@ icon_state = "map-supply" connect_types = CONNECT_TYPE_SUPPLY piping_layer = PIPING_LAYER_SUPPLY - layer = 2.39 + layer = PIPES_SUPPLY_LAYER icon_connect_type = "-supply" color = PIPE_COLOR_BLUE @@ -212,7 +211,7 @@ icon_state = "map-scrubbers" connect_types = CONNECT_TYPE_SCRUBBER piping_layer = PIPING_LAYER_SCRUBBER - layer = 2.38 + layer = PIPES_SCRUBBER_LAYER icon_connect_type = "-scrubbers" color = PIPE_COLOR_RED @@ -222,7 +221,7 @@ icon_state = "map-supply" connect_types = CONNECT_TYPE_SUPPLY piping_layer = PIPING_LAYER_SUPPLY - layer = 2.39 + layer = PIPES_SUPPLY_LAYER icon_connect_type = "-supply" color = PIPE_COLOR_BLUE diff --git a/code/ATMOSPHERICS/pipes/manifold4w.dm b/code/ATMOSPHERICS/pipes/manifold4w.dm index 88adc47d62..0cc022423b 100644 --- a/code/ATMOSPHERICS/pipes/manifold4w.dm +++ b/code/ATMOSPHERICS/pipes/manifold4w.dm @@ -19,7 +19,6 @@ var/obj/machinery/atmospherics/node4 level = 1 - layer = 2.4 //under wires with their 2.44 /obj/machinery/atmospherics/pipe/manifold4w/New() ..() @@ -168,7 +167,7 @@ icon_state = "map_4way-scrubbers" connect_types = CONNECT_TYPE_SCRUBBER piping_layer = PIPING_LAYER_SCRUBBER - layer = 2.38 + layer = PIPES_SCRUBBER_LAYER icon_connect_type = "-scrubbers" color = PIPE_COLOR_RED @@ -178,7 +177,7 @@ icon_state = "map_4way-supply" connect_types = CONNECT_TYPE_SUPPLY piping_layer = PIPING_LAYER_SUPPLY - layer = 2.39 + layer = PIPES_SUPPLY_LAYER icon_connect_type = "-supply" color = PIPE_COLOR_BLUE @@ -214,7 +213,7 @@ icon_state = "map_4way-scrubbers" connect_types = CONNECT_TYPE_SCRUBBER piping_layer = PIPING_LAYER_SCRUBBER - layer = 2.38 + layer = PIPES_SCRUBBER_LAYER icon_connect_type = "-scrubbers" color = PIPE_COLOR_RED @@ -224,7 +223,7 @@ icon_state = "map_4way-supply" connect_types = CONNECT_TYPE_SUPPLY piping_layer = PIPING_LAYER_SUPPLY - layer = 2.39 + layer = PIPES_SUPPLY_LAYER icon_connect_type = "-supply" color = PIPE_COLOR_BLUE diff --git a/code/ATMOSPHERICS/pipes/pipe_base.dm b/code/ATMOSPHERICS/pipes/pipe_base.dm index 4e852ed0c8..19b05e8b71 100644 --- a/code/ATMOSPHERICS/pipes/pipe_base.dm +++ b/code/ATMOSPHERICS/pipes/pipe_base.dm @@ -7,7 +7,7 @@ var/datum/pipeline/parent var/volume = 0 - layer = 2.4 //under wires with their 2.44 + layer = PIPES_LAYER use_power = 0 pipe_flags = 0 // Does not have PIPING_DEFAULT_LAYER_ONLY flag. diff --git a/code/ATMOSPHERICS/pipes/simple.dm b/code/ATMOSPHERICS/pipes/simple.dm index 77290e5d8a..6aee81807e 100644 --- a/code/ATMOSPHERICS/pipes/simple.dm +++ b/code/ATMOSPHERICS/pipes/simple.dm @@ -173,7 +173,7 @@ icon_state = "intact-scrubbers" connect_types = CONNECT_TYPE_SCRUBBER piping_layer = PIPING_LAYER_SCRUBBER - layer = 2.38 + layer = PIPES_SCRUBBER_LAYER icon_connect_type = "-scrubbers" color = PIPE_COLOR_RED @@ -183,7 +183,7 @@ icon_state = "intact-supply" connect_types = CONNECT_TYPE_SUPPLY piping_layer = PIPING_LAYER_SUPPLY - layer = 2.39 + layer = PIPES_SUPPLY_LAYER icon_connect_type = "-supply" color = PIPE_COLOR_BLUE @@ -219,7 +219,7 @@ icon_state = "intact-scrubbers" connect_types = CONNECT_TYPE_SCRUBBER piping_layer = PIPING_LAYER_SCRUBBER - layer = 2.38 + layer = PIPES_SCRUBBER_LAYER icon_connect_type = "-scrubbers" color = PIPE_COLOR_RED @@ -229,7 +229,7 @@ icon_state = "intact-supply" connect_types = CONNECT_TYPE_SUPPLY piping_layer = PIPING_LAYER_SUPPLY - layer = 2.39 + layer = PIPES_SUPPLY_LAYER icon_connect_type = "-supply" color = PIPE_COLOR_BLUE diff --git a/code/ATMOSPHERICS/pipes/tank.dm b/code/ATMOSPHERICS/pipes/tank.dm index c8015225e0..95ab01efe0 100644 --- a/code/ATMOSPHERICS/pipes/tank.dm +++ b/code/ATMOSPHERICS/pipes/tank.dm @@ -11,6 +11,7 @@ volume = 10000 //in liters, 1 meters by 1 meters by 2 meters ~tweaked it a little to simulate a pressure tank without needing to recode them yet var/start_pressure = 25*ONE_ATMOSPHERE + layer = ATMOS_LAYER level = 1 dir = SOUTH initialize_directions = SOUTH diff --git a/code/__defines/_planes+layers.dm b/code/__defines/_planes+layers.dm index a044b16c85..8d0bfe6f11 100644 --- a/code/__defines/_planes+layers.dm +++ b/code/__defines/_planes+layers.dm @@ -57,8 +57,9 @@ What is the naming convention for planes or layers? #define SPACE_PLANE -43 // Space turfs themselves #define PLATING_PLANE -44 // Plating #define DISPOSAL_LAYER 2.1 // Under objects, even when planeswapped - #define WIRES_LAYER 2.2 // Under objects, even when planeswapped - #define PIPES_LAYER 2.3 // Under objects, even when planeswapped + #define PIPES_LAYER 2.2 // Under objects, even when planeswapped + #define WIRES_LAYER 2.3 // Under objects, even when planeswapped + #define ATMOS_LAYER 2.4 // Pipe-like atmos machinery that goes on the floor, like filters. #define ABOVE_UTILITY 2.5 // Above stuff like pipes and wires #define TURF_PLANE -45 // Turfs themselves, most flooring #define ABOVE_TURF_LAYER 2.1 // Snow and such diff --git a/code/__defines/construction.dm b/code/__defines/construction.dm index 837ad7ed38..2bae550a22 100644 --- a/code/__defines/construction.dm +++ b/code/__defines/construction.dm @@ -28,7 +28,7 @@ #define PIPE_BENDABLE 1 //6 directions: N/S, E/W, N/E, N/W, S/E, S/W #define PIPE_TRINARY 2 //4 directions: N/E/S, E/S/W, S/W/N, W/N/E #define PIPE_TRIN_M 3 //8 directions: N->S+E, S->N+E, N->S+W, S->N+W, E->W+S, W->E+S, E->W+N, W->E+N -#define PIPE_DIRECTIONAL 4 //4 directions: N, S, E, W +#define PIPE_DIRECTIONAL 4 //4 directions: N, S, E, W #define PIPE_ONEDIR 5 //1 direction: N/S/E/W #define PIPE_UNARY_FLIPPABLE 6 //8 directions: N, S, E, W, N-flipped, S-flipped, E-flipped, W-flipped #define PIPE_TRIN_T 7 //8 directions: N->S+E, S->N+E, N->S+W, S->N+W, E->W+S, W->E+S, E->W+N, W->E+N @@ -45,6 +45,11 @@ #define PIPING_LAYER_SCRUBBER 3 #define PIPING_LAYER_DEFAULT PIPING_LAYER_REGULAR +// We offset the layer values of the different pipe types to ensure they look nice +#define PIPES_SCRUBBER_LAYER (PIPES_LAYER - 0.02) +#define PIPES_SUPPLY_LAYER (PIPES_LAYER - 0.01) +#define PIPES_HE_LAYER (PIPES_LAYER + 0.01) + // Pipe flags #define PIPING_ALL_LAYER 1 //intended to connect with all layers, check for all instead of just one. #define PIPING_ONE_PER_TURF 2 //can only be built if nothing else with this flag is on the tile already. diff --git a/code/game/machinery/atmoalter/portable_atmospherics.dm b/code/game/machinery/atmoalter/portable_atmospherics.dm index 92004f9afe..84d00eff04 100644 --- a/code/game/machinery/atmoalter/portable_atmospherics.dm +++ b/code/game/machinery/atmoalter/portable_atmospherics.dm @@ -1,6 +1,7 @@ /obj/machinery/portable_atmospherics name = "atmoalter" use_power = 0 + layer = OBJ_LAYER // These are mobile, best not be under everything. var/datum/gas_mixture/air_contents = new var/obj/machinery/atmospherics/portables_connector/connected_port diff --git a/code/modules/multiz/pipes.dm b/code/modules/multiz/pipes.dm index 8d03c8f862..e2796ccff8 100644 --- a/code/modules/multiz/pipes.dm +++ b/code/modules/multiz/pipes.dm @@ -201,7 +201,7 @@ obj/machinery/atmospherics/pipe/zpipe/up/scrubbers desc = "A scrubbers pipe segment to connect upwards." connect_types = CONNECT_TYPE_SCRUBBER piping_layer = PIPING_LAYER_SCRUBBER - layer = 2.38 + layer = PIPES_SCRUBBER_LAYER icon_connect_type = "-scrubbers" color = PIPE_COLOR_RED @@ -211,7 +211,7 @@ obj/machinery/atmospherics/pipe/zpipe/up/supply desc = "A supply pipe segment to connect upwards." connect_types = CONNECT_TYPE_SUPPLY piping_layer = PIPING_LAYER_SUPPLY - layer = 2.39 + layer = PIPES_SUPPLY_LAYER icon_connect_type = "-supply" color = PIPE_COLOR_BLUE @@ -221,7 +221,7 @@ obj/machinery/atmospherics/pipe/zpipe/down/scrubbers desc = "A scrubbers pipe segment to connect downwards." connect_types = CONNECT_TYPE_SCRUBBER piping_layer = PIPING_LAYER_SCRUBBER - layer = 2.38 + layer = PIPES_SCRUBBER_LAYER icon_connect_type = "-scrubbers" color = PIPE_COLOR_RED @@ -231,6 +231,6 @@ obj/machinery/atmospherics/pipe/zpipe/down/supply desc = "A supply pipe segment to connect downwards." connect_types = CONNECT_TYPE_SUPPLY piping_layer = PIPING_LAYER_SUPPLY - layer = 2.39 + layer = PIPES_SUPPLY_LAYER icon_connect_type = "-supply" color = PIPE_COLOR_BLUE diff --git a/code/modules/power/cable.dm b/code/modules/power/cable.dm index 853705abed..5ad1e727da 100644 --- a/code/modules/power/cable.dm +++ b/code/modules/power/cable.dm @@ -53,7 +53,8 @@ var/list/possible_cable_coil_colours = list( icon_state = "0-1" var/d1 = 0 var/d2 = 1 - layer = 2.44 //Just below unary stuff, which is at 2.45 and above pipes, which are at 2.4 + plane = PLATING_PLANE + layer = WIRES_LAYER color = COLOR_RED var/obj/machinery/power/breakerbox/breaker_box diff --git a/code/modules/power/cable_ender.dm b/code/modules/power/cable_ender.dm index 3276855271..d6975091ea 100644 --- a/code/modules/power/cable_ender.dm +++ b/code/modules/power/cable_ender.dm @@ -8,7 +8,8 @@ icon = 'icons/obj/power_cond_heavy.dmi' name = "large power cable" desc = "This cable is tough. It cannot be cut with simple hand tools." - layer = 2.39 //Just below pipes, which are at 2.4 + plane = PLATING_PLANE + layer = PIPES_LAYER - 0.05 //Just below pipes color = null unacidable = 1 var/id = null diff --git a/code/modules/power/cable_heavyduty.dm b/code/modules/power/cable_heavyduty.dm index 99c91a6b74..a286517965 100644 --- a/code/modules/power/cable_heavyduty.dm +++ b/code/modules/power/cable_heavyduty.dm @@ -7,7 +7,8 @@ icon = 'icons/obj/power_cond_heavy.dmi' name = "large power cable" desc = "This cable is tough. It cannot be cut with simple hand tools." - layer = 2.39 //Just below pipes, which are at 2.4 + plane = PLATING_PLANE + layer = PIPES_LAYER - 0.05 //Just below pipes color = null /obj/structure/cable/heavyduty/attackby(obj/item/W, mob/user) diff --git a/code/modules/recycling/disposal.dm b/code/modules/recycling/disposal.dm index fdae51e647..07c8429bfb 100644 --- a/code/modules/recycling/disposal.dm +++ b/code/modules/recycling/disposal.dm @@ -663,6 +663,7 @@ var/dpdir = 0 // bitmask of pipe directions dir = 0 // dir will contain dominant direction for junction pipes var/health = 10 // health points 0-10 + plane = PLATING_PLANE layer = DISPOSAL_LAYER // slightly lower than wires and other pipes var/base_icon_state // initial icon state on map var/sortType = "" From 8c3e41a7053244f41c67da74a4d7b200b022dc50 Mon Sep 17 00:00:00 2001 From: Leshana Date: Wed, 4 Apr 2018 20:35:15 -0400 Subject: [PATCH 24/24] Small fixes and ports discovered during merge. (#5138) * POLARIS: No string compare for assistants * POLARIS: Move these planes to more useful places * POLARIS: Only spam ghosts with chat messages from things with real clients * Fix small forgotten lines of text accidentally left out of VS syncs. * Fix typo'd plane in lighting.dm and remove redundant definitions. --- code/__defines/_planes+layers.dm | 11 ++++++----- .../client/preference_setup/occupation/occupation.dm | 6 +++--- code/modules/mob/emote.dm | 2 +- code/modules/mob/living/carbon/human/update_icons.dm | 3 +++ code/modules/mob/living/say.dm | 2 +- code/modules/mob/living/simple_animal/animals/cat.dm | 1 + code/modules/power/lighting.dm | 9 +++++---- 7 files changed, 20 insertions(+), 14 deletions(-) diff --git a/code/__defines/_planes+layers.dm b/code/__defines/_planes+layers.dm index a044b16c85..0b4e1d7d5c 100644 --- a/code/__defines/_planes+layers.dm +++ b/code/__defines/_planes+layers.dm @@ -40,10 +40,6 @@ What is the naming convention for planes or layers? */ -#define PLANE_ADMIN1 -92 //Purely for shenanigans -#define PLANE_ADMIN2 -91 //And adminbuse -#define PLANE_ADMIN3 -90 //And generating salt - #define SPACE_PLANE -82 // Reserved for use in space/parallax #define PARALLAX_PLANE -80 // Reserved for use in space/parallax @@ -105,7 +101,8 @@ What is the naming convention for planes or layers? #define HUD_LAYER 20 // Above lighting, but below obfuscation. For in-game HUD effects (whereas SCREEN_LAYER is for abstract/OOC things like inventory slots) #define SCREEN_LAYER 22 // Mob HUD/effects layer - + +#define PLANE_ADMIN1 3 //Purely for shenanigans (below lighting) #define PLANE_PLANETLIGHTING 4 //Lighting on planets #define PLANE_LIGHTING 5 //Where the lighting (and darkness) lives #define PLANE_LIGHTING_ABOVE 6 //For glowy eyes etc. that shouldn't be affected by darkness @@ -127,6 +124,8 @@ What is the naming convention for planes or layers? #define PLANE_MESONS 30 //Stuff seen with mesons, like open ceilings. This is 30 for downstreams. +#define PLANE_ADMIN2 33 //Purely for shenanigans (above lighting) + //Fullscreen overlays under inventory #define PLANE_FULLSCREEN 90 //Blindness, mesons, druggy, etc #define OBFUSCATION_LAYER 5 //Where images covering the view for eyes are put @@ -143,6 +142,8 @@ What is the naming convention for planes or layers? #define LAYER_HUD_ABOVE 4 //Things that reside above items (highlights) #define PLANE_PLAYER_HUD_ITEMS 96 //Separate layer with which to apply colorblindness +#define PLANE_ADMIN3 99 //Purely for shenanigans (above HUD) + ////////////////////////// /atom/proc/hud_layerise() diff --git a/code/modules/client/preference_setup/occupation/occupation.dm b/code/modules/client/preference_setup/occupation/occupation.dm index 1a09ee6ae9..58a8003cf9 100644 --- a/code/modules/client/preference_setup/occupation/occupation.dm +++ b/code/modules/client/preference_setup/occupation/occupation.dm @@ -94,7 +94,7 @@ if(job.minimum_character_age && user.client && (user.client.prefs.age < job.minimum_character_age)) . += "[rank] \[MINIMUM CHARACTER AGE: [job.minimum_character_age]]" continue - if((pref.job_civilian_low & ASSISTANT) && job.flag != ASSISTANT) + if((pref.job_civilian_low & ASSISTANT) && job.type != /datum/job/assistant) . += "[rank]" continue if((rank in command_positions) || (rank == "AI"))//Bold head jobs @@ -106,7 +106,7 @@ . += "" - if(job.flag == ASSISTANT)//Assistant is special + if(job.type == /datum/job/assistant)//Assistant is special if(pref.job_civilian_low & ASSISTANT) . += " \[Yes]" else @@ -180,7 +180,7 @@ if(!job) return 0 - if(job.flag == ASSISTANT) + if(job.type == /datum/job/assistant) if(pref.job_civilian_low & job.flag) pref.job_civilian_low &= ~job.flag else diff --git a/code/modules/mob/emote.dm b/code/modules/mob/emote.dm index eb0137a57d..e086895d2e 100644 --- a/code/modules/mob/emote.dm +++ b/code/modules/mob/emote.dm @@ -29,7 +29,7 @@ var/turf/T = get_turf(src) if(!T) return - var/list/in_range = get_mobs_and_objs_in_view_fast(T,range,2) + var/list/in_range = get_mobs_and_objs_in_view_fast(T,range,2,remote_ghosts = client ? TRUE : FALSE) var/list/m_viewers = in_range["mobs"] var/list/o_viewers = in_range["objs"] diff --git a/code/modules/mob/living/carbon/human/update_icons.dm b/code/modules/mob/living/carbon/human/update_icons.dm index 71717886f8..3a935a59f7 100644 --- a/code/modules/mob/living/carbon/human/update_icons.dm +++ b/code/modules/mob/living/carbon/human/update_icons.dm @@ -756,6 +756,9 @@ var/global/list/damage_icon_parts = list() //see UpdateDamageIcon() //update whether handcuffs appears on our hud. /mob/living/carbon/proc/update_hud_handcuffed() + if(QDESTROYING(src)) + return + if(hud_used && hud_used.l_hand_hud_object && hud_used.r_hand_hud_object) hud_used.l_hand_hud_object.update_icon() hud_used.r_hand_hud_object.update_icon() diff --git a/code/modules/mob/living/say.dm b/code/modules/mob/living/say.dm index 4b4edeb25c..9a22e3b816 100644 --- a/code/modules/mob/living/say.dm +++ b/code/modules/mob/living/say.dm @@ -292,7 +292,7 @@ proc/get_radio_key_from_channel(var/channel) sound_vol *= 0.5 //Obtain the mobs and objects in the message range - var/list/results = get_mobs_and_objs_in_view_fast(T, world.view) + var/list/results = get_mobs_and_objs_in_view_fast(T, world.view, remote_ghosts = client ? TRUE : FALSE) listening = results["mobs"] listening_obj = results["objs"] else diff --git a/code/modules/mob/living/simple_animal/animals/cat.dm b/code/modules/mob/living/simple_animal/animals/cat.dm index 74121bdd53..c700d1ec06 100644 --- a/code/modules/mob/living/simple_animal/animals/cat.dm +++ b/code/modules/mob/living/simple_animal/animals/cat.dm @@ -156,6 +156,7 @@ /mob/living/simple_animal/cat/fluff/Runtime name = "Runtime" desc = "Her fur has the look and feel of velvet, and her tail quivers occasionally." + tt_desc = "Felis medicalis" gender = FEMALE icon_state = "cat" item_state = "cat" diff --git a/code/modules/power/lighting.dm b/code/modules/power/lighting.dm index f80454d9bd..98d4d2233f 100644 --- a/code/modules/power/lighting.dm +++ b/code/modules/power/lighting.dm @@ -16,7 +16,7 @@ icon = 'icons/obj/lighting.dmi' icon_state = "tube-construct-stage1" anchored = 1 - plane = MOB_LAYER + plane = MOB_PLANE layer = ABOVE_MOB_LAYER var/stage = 1 var/fixture_type = "tube" @@ -133,8 +133,6 @@ icon = 'icons/obj/lighting.dmi' icon_state = "bulb-construct-stage1" anchored = 1 - plane = MOB_LAYER - layer = ABOVE_MOB_LAYER stage = 1 fixture_type = "bulb" sheets_refunded = 1 @@ -145,6 +143,8 @@ icon = 'icons/obj/lighting.dmi' icon_state = "flamp-construct-stage1" anchored = 0 + plane = OBJ_PLANE + layer = OBJ_LAYER stage = 1 fixture_type = "flamp" sheets_refunded = 2 @@ -157,7 +157,7 @@ icon_state = "tube1" desc = "A lighting fixture." anchored = 1 - plane = MOB_LAYER + plane = MOB_PLANE layer = ABOVE_MOB_LAYER use_power = 2 idle_power_usage = 2 @@ -194,6 +194,7 @@ fitting = "bulb" brightness_range = 5 brightness_power = 2 + plane = OBJ_PLANE layer = OBJ_LAYER brightness_color = "#FFF4E5" desc = "A floor lamp."