diff --git a/code/ATMOSPHERICS/components/unary/cold_sink.dm b/code/ATMOSPHERICS/components/unary/cold_sink.dm index faefa64883d..1905c35e4cc 100644 --- a/code/ATMOSPHERICS/components/unary/cold_sink.dm +++ b/code/ATMOSPHERICS/components/unary/cold_sink.dm @@ -24,6 +24,10 @@ /obj/machinery/atmospherics/unary/freezer/New() ..() initialize_directions = dir + +/obj/machinery/atmospherics/unary/freezer/map/New() + ..() + circuit = new circuit(src) component_parts = list() component_parts += new /obj/item/weapon/stock_parts/matter_bin(src) component_parts += new /obj/item/weapon/stock_parts/capacitor(src) diff --git a/code/ATMOSPHERICS/components/unary/heat_source.dm b/code/ATMOSPHERICS/components/unary/heat_source.dm index aa51d9669f0..302beb6baf4 100644 --- a/code/ATMOSPHERICS/components/unary/heat_source.dm +++ b/code/ATMOSPHERICS/components/unary/heat_source.dm @@ -25,6 +25,9 @@ ..() initialize_directions = dir +/obj/machinery/atmospherics/unary/heater/map/New() + ..() + circuit = new circuit(src) component_parts = list() component_parts += new /obj/item/weapon/stock_parts/matter_bin(src) component_parts += new /obj/item/weapon/stock_parts/capacitor(src) diff --git a/code/__defines/chemistry.dm b/code/__defines/chemistry.dm index 4fbdebf6f11..31f0233b238 100644 --- a/code/__defines/chemistry.dm +++ b/code/__defines/chemistry.dm @@ -24,6 +24,7 @@ #define IS_TAJARA 5 #define IS_XENOS 6 #define IS_TESHARI 7 +#define IS_SLIME 8 #define CE_STABLE "stable" // Inaprovaline #define CE_ANTIBIOTIC "antibiotic" // Spaceacilin diff --git a/code/__defines/damage_organs.dm b/code/__defines/damage_organs.dm index 09931cb622b..152e22a11a6 100644 --- a/code/__defines/damage_organs.dm +++ b/code/__defines/damage_organs.dm @@ -9,6 +9,7 @@ #define CUT "cut" #define BRUISE "bruise" +#define PIERCE "pierce" #define STUN "stun" #define WEAKEN "weaken" diff --git a/code/__defines/machinery.dm b/code/__defines/machinery.dm index eaa0b7d2a9f..8060dcee214 100644 --- a/code/__defines/machinery.dm +++ b/code/__defines/machinery.dm @@ -27,12 +27,12 @@ var/global/defer_powernet_rebuild = 0 // True if net rebuild will be called #define AI_CAMERA_LUMINOSITY 6 // Camera networks -#define NETWORK_CRESCENT "Crescent" -#define NETWORK_CAFE_DOCK "Cafe Dock" +#define NETWORK_CRESCENT "Spaceport" +// #define NETWORK_CAFE_DOCK "Cafe Dock" #define NETWORK_CARGO "Cargo" #define NETWORK_CIVILIAN "Civilian" -#define NETWORK_CIVILIAN_EAST "Civilian East" -#define NETWORK_CIVILIAN_WEST "Civilian West" +// #define NETWORK_CIVILIAN_EAST "Civilian East" +// #define NETWORK_CIVILIAN_WEST "Civilian West" #define NETWORK_COMMAND "Command" #define NETWORK_ENGINE "Engine" #define NETWORK_ENGINEERING "Engineering" @@ -41,7 +41,7 @@ var/global/defer_powernet_rebuild = 0 // True if net rebuild will be called #define NETWORK_EXODUS "Northern Star" #define NETWORK_MEDICAL "Medical" #define NETWORK_MERCENARY "MercurialNet" -#define NETWORK_MINE "MINE" +#define NETWORK_MINE "Mining Outpost" #define NETWORK_NORTHERN_STAR "Northern Star" #define NETWORK_RESEARCH "Research" #define NETWORK_RESEARCH_OUTPOST "Research Outpost" diff --git a/code/__defines/misc.dm b/code/__defines/misc.dm index e9f44499a4a..3441f5ce2a4 100644 --- a/code/__defines/misc.dm +++ b/code/__defines/misc.dm @@ -78,10 +78,10 @@ // Setting this much higher than 1024 could allow spammers to DOS the server easily. #define MAX_MESSAGE_LEN 1024 -#define MAX_PAPER_MESSAGE_LEN 3072 -#define MAX_BOOK_MESSAGE_LEN 9216 +#define MAX_PAPER_MESSAGE_LEN 6144 +#define MAX_BOOK_MESSAGE_LEN 12288 #define MAX_LNAME_LEN 64 -#define MAX_NAME_LEN 26 +#define MAX_NAME_LEN 52 // Event defines. #define EVENT_LEVEL_MUNDANE 1 diff --git a/code/__defines/mobs.dm b/code/__defines/mobs.dm index 8cd66329823..39036252f0c 100644 --- a/code/__defines/mobs.dm +++ b/code/__defines/mobs.dm @@ -136,9 +136,15 @@ #define INCAPACITATION_RESTRAINED 1 #define INCAPACITATION_BUCKLED_PARTIALLY 2 #define INCAPACITATION_BUCKLED_FULLY 4 +#define INCAPACITATION_STUNNED 8 +#define INCAPACITATION_FORCELYING 16 //needs a better name - represents being knocked down BUT still conscious. +#define INCAPACITATION_KNOCKOUT 32 + #define INCAPACITATION_DEFAULT (INCAPACITATION_RESTRAINED|INCAPACITATION_BUCKLED_FULLY) -#define INCAPACITATION_ALL (INCAPACITATION_RESTRAINED|INCAPACITATION_BUCKLED_PARTIALLY|INCAPACITATION_BUCKLED_FULLY) +#define INCAPACITATION_KNOCKDOWN (INCAPACITATION_KNOCKOUT|INCAPACITATION_FORCELYING) +#define INCAPACITATION_DISABLED (INCAPACITATION_KNOCKDOWN|INCAPACITATION_STUNNED) +#define INCAPACITATION_ALL (~INCAPACITATION_NONE) // Bodyparts and organs. #define O_MOUTH "mouth" diff --git a/code/__defines/species_languages.dm b/code/__defines/species_languages.dm index 2dec4406a46..27fc17055ca 100644 --- a/code/__defines/species_languages.dm +++ b/code/__defines/species_languages.dm @@ -8,9 +8,9 @@ // unused: 0x8000 - higher than this will overflow // Species spawn flags -#define IS_WHITELISTED 0x1 // Must be whitelisted to play. -#define CAN_JOIN 0x2 // Species is selectable in chargen. -#define IS_RESTRICTED 0x4 // Is not a core/normally playable species. (castes, mutantraces) +#define SPECIES_IS_WHITELISTED 0x1 // Must be whitelisted to play. +#define SPECIES_IS_RESTRICTED 0x2 // Is not a core/normally playable species. (castes, mutantraces) +#define SPECIES_CAN_JOIN 0x4 // Species is selectable in chargen. // Species appearance flags #define HAS_SKIN_TONE 0x1 // Skin tone selectable in chargen. (0-255) @@ -19,6 +19,7 @@ #define HAS_UNDERWEAR 0x8 // Underwear is drawn onto the mob icon. #define HAS_EYE_COLOR 0x10 // Eye colour selectable in chargen. (RGB) #define HAS_HAIR_COLOR 0x20 // Hair colour selectable in chargen. (RGB) +#define RADIATION_GLOWS 0x40 // Radiation causes this character to glow. // Languages. #define LANGUAGE_SOL_COMMON "Sol Common" @@ -29,6 +30,7 @@ #define LANGUAGE_ROOTSPEAK "Rootspeak" #define LANGUAGE_TRADEBAND "Tradeband" #define LANGUAGE_GUTTER "Gutter" +#define LANGUAGE_SCHECHI "Schechi" // Language flags. #define WHITELISTED 1 // Language is available if the speaker is whitelisted. diff --git a/code/_helpers/global_lists.dm b/code/_helpers/global_lists.dm index 901a985e3fd..7ce97d62e68 100644 --- a/code/_helpers/global_lists.dm +++ b/code/_helpers/global_lists.dm @@ -23,6 +23,9 @@ var/global/list/joblist = list() //list of all jobstypes, minus borg and AI var/global/list/turfs = list() //list of all turfs +#define all_genders_define_list list(MALE,FEMALE,PLURAL,NEUTER) +#define all_genders_text_list list("Male","Female","Plural","Neuter") + //Languages/species/whitelist. var/global/list/all_species[0] var/global/list/all_languages[0] @@ -191,16 +194,22 @@ var/global/list/string_slot_flags = list( language_keys[lowertext(L.key)] = L var/rkey = 0 - paths = typesof(/datum/species)-/datum/species + paths = typesof(/datum/species) for(var/T in paths) + rkey++ - var/datum/species/S = new T + + var/datum/species/S = T + if(!initial(S.name)) + continue + + S = new T S.race_key = rkey //Used in mob icon caching. all_species[S.name] = S - if(!(S.spawn_flags & IS_RESTRICTED)) + if(!(S.spawn_flags & SPECIES_IS_RESTRICTED)) playable_species += S.name - if(S.spawn_flags & IS_WHITELISTED) + if(S.spawn_flags & SPECIES_IS_WHITELISTED) whitelisted_species += S.name //Posters diff --git a/code/_helpers/text.dm b/code/_helpers/text.dm index 72549c9ee13..be836248a6c 100644 --- a/code/_helpers/text.dm +++ b/code/_helpers/text.dm @@ -323,3 +323,5 @@ proc/TextPreview(var/string,var/len=40) if(48 to 57) //Numbers return 1 return 0 + +#define gender2text(gender) capitalize(gender) \ No newline at end of file diff --git a/code/_helpers/unsorted.dm b/code/_helpers/unsorted.dm index dc17e47a594..b770693a69a 100644 --- a/code/_helpers/unsorted.dm +++ b/code/_helpers/unsorted.dm @@ -137,7 +137,7 @@ Turf and target are seperate in case you want to teleport some distance from a t //Now to find a box from center location and make that our destination. for(var/turf/T in block(locate(center.x+b1xerror,center.y+b1yerror,location.z), locate(center.x+b2xerror,center.y+b2yerror,location.z) )) - if(density&&T.density) continue//If density was specified. + if(density&&(T.density||T.contains_dense_objects())) continue//If density was specified. if(T.x>world.maxx || T.x<1) continue//Don't want them to teleport off the map. if(T.y>world.maxy || T.y<1) continue destination_list += T @@ -146,7 +146,7 @@ Turf and target are seperate in case you want to teleport some distance from a t else return else//Same deal here. - if(density&&destination.density) return + if(density&&(destination.density||destination.contains_dense_objects())) return if(destination.x>world.maxx || destination.x<1) return if(destination.y>world.maxy || destination.y<1) return else return @@ -1310,7 +1310,7 @@ var/mob/dview/dview_mob = new // call to generate a stack trace and print to runtime logs /proc/crash_with(msg) CRASH(msg) - + /proc/screen_loc2turf(scr_loc, turf/origin) var/tX = splittext(scr_loc, ",") var/tY = splittext(tX[2], ":") @@ -1321,4 +1321,4 @@ var/mob/dview/dview_mob = new tX = max(1, min(world.maxx, origin.x + (text2num(tX) - (world.view + 1)))) tY = max(1, min(world.maxy, origin.y + (text2num(tY) - (world.view + 1)))) return locate(tX, tY, tZ) - + diff --git a/code/_onclick/ai.dm b/code/_onclick/ai.dm index dfb6de5e911..c5c48dbbf2c 100644 --- a/code/_onclick/ai.dm +++ b/code/_onclick/ai.dm @@ -121,9 +121,9 @@ /obj/machinery/door/airlock/AIShiftClick() // Opens and closes doors! if(density) - Topic(src, list("src"= "\ref[src]", "command"="open", "activate" = "1"), 1) // 1 meaning no window (consistency!) + Topic(src, list("command"="open", "activate" = "1")) else - Topic(src, list("src"= "\ref[src]", "command"="open", "activate" = "0"), 1) + Topic(src, list("command"="open", "activate" = "0")) return 1 /atom/proc/AICtrlClick() @@ -131,17 +131,17 @@ /obj/machinery/door/airlock/AICtrlClick() // Bolts doors if(locked) - Topic(src, list("src"= "\ref[src]", "command"="bolts", "activate" = "0"), 1)// 1 meaning no window (consistency!) + Topic(src, list("command"="bolts", "activate" = "0")) else - Topic(src, list("src"= "\ref[src]", "command"="bolts", "activate" = "1"), 1) + Topic(src, list("command"="bolts", "activate" = "1")) return 1 /obj/machinery/power/apc/AICtrlClick() // turns off/on APCs. - Topic(src, list("src"= "\ref[src]", "breaker"="1"), 1) // 1 meaning no window (consistency!) + Topic(src, list("breaker"="1")) return 1 /obj/machinery/turretid/AICtrlClick() //turns off/on Turrets - Topic(src, list("src"= "\ref[src]", "command"="enable", "value"="[!enabled]"), 1) // 1 meaning no window (consistency!) + Topic(src, list("command"="enable", "value"="[!enabled]")) return 1 /atom/proc/AIAltClick(var/atom/A) @@ -150,14 +150,14 @@ /obj/machinery/door/airlock/AIAltClick() // Electrifies doors. if(!electrified_until) // permanent shock - Topic(src, list("src"= "\ref[src]", "command"="electrify_permanently", "activate" = "1"), 1) // 1 meaning no window (consistency!) + Topic(src, list("command"="electrify_permanently", "activate" = "1")) else // disable/6 is not in Topic; disable/5 disables both temporary and permanent shock - Topic(src, list("src"= "\ref[src]", "command"="electrify_permanently", "activate" = "0"), 1) + Topic(src, list("command"="electrify_permanently", "activate" = "0")) return 1 /obj/machinery/turretid/AIAltClick() //toggles lethal on turrets - Topic(src, list("src"= "\ref[src]", "command"="lethal", "value"="[!lethal]"), 1) // 1 meaning no window (consistency!) + Topic(src, list("command"="lethal", "value"="[!lethal]")) return 1 /atom/proc/AIMiddleClick(var/mob/living/silicon/user) @@ -169,9 +169,9 @@ return if(!src.lights) - Topic(src, list("src"= "\ref[src]", "command"="lights", "activate" = "1"), 1) // 1 meaning no window (consistency!) + Topic(src, list("command"="lights", "activate" = "1")) else - Topic(src, list("src"= "\ref[src]", "command"="lights", "activate" = "0"), 1) + Topic(src, list("command"="lights", "activate" = "0")) return 1 // diff --git a/code/_onclick/click.dm b/code/_onclick/click.dm index 9b729d1d7c3..d131ddd6d31 100644 --- a/code/_onclick/click.dm +++ b/code/_onclick/click.dm @@ -103,10 +103,6 @@ // A is your location but is not a turf; or is on you (backpack); or is on something on you (box in backpack); sdepth is needed here because contents depth does not equate inventory storage depth. var/sdepth = A.storage_depth(src) if((!isturf(A) && A == loc) || (sdepth != -1 && sdepth <= 1)) - // faster access to objects already on you - if(A.loc != src) - setMoveCooldown(10) //getting something out of a backpack - if(W) var/resolved = W.resolve_attackby(A, src) if(!resolved && A && W) @@ -127,8 +123,6 @@ sdepth = A.storage_depth_turf() if(isturf(A) || isturf(A.loc) || (sdepth != -1 && sdepth <= 1)) if(A.Adjacent(src)) // see adjacent.dm - setMoveCooldown(5) - if(W) // Return 1 in attackby() to prevent afterattack() effects (when safely moving items for example) var/resolved = W.resolve_attackby(A,src) @@ -198,15 +192,8 @@ if((LASER in mutations) && a_intent == I_HURT) LaserEyes(A) // moved into a proc below else if(TK in mutations) - switch(get_dist(src,A)) - if(1 to 5) // not adjacent may mean blocked by window - setMoveCooldown(2) - if(5 to 7) - setMoveCooldown(5) - if(8 to tk_maxrange) - setMoveCooldown(10) - else - return + if(get_dist(src, A) > tk_maxrange) + return A.attack_tk(src) /* Restrained ClickOn diff --git a/code/_onclick/hud/hud.dm b/code/_onclick/hud/hud.dm index a73779ef722..66d453ac36d 100644 --- a/code/_onclick/hud/hud.dm +++ b/code/_onclick/hud/hud.dm @@ -256,7 +256,7 @@ datum/hud/New(mob/owner) if(ishuman(mymob)) human_hud(ui_style, ui_color, ui_alpha, mymob) // Pass the player the UI style chosen in preferences else if(isrobot(mymob)) - robot_hud() + robot_hud(ui_style, ui_color, ui_alpha, mymob) else if(isbrain(mymob)) brain_hud(ui_style) else if(isalien(mymob)) diff --git a/code/_onclick/hud/robot.dm b/code/_onclick/hud/robot.dm index a272ba83aa0..c6783e7bf76 100644 --- a/code/_onclick/hud/robot.dm +++ b/code/_onclick/hud/robot.dm @@ -1,7 +1,20 @@ var/obj/screen/robot_inventory +/* +/mob/living/silicon/robot/instantiate_hud(var/datum/hud/HUD, var/ui_style, var/ui_color, var/ui_alpha) + HUD.robot_hud(ui_style, ui_color, ui_alpha, src)*/ +/datum/hud/proc/robot_hud(ui_style='icons/mob/screen1_robot.dmi', var/ui_color = "#ffffff", var/ui_alpha = 255, var/mob/living/silicon/robot/target) +/* var/datum/hud_data/hud_data + if(!istype(target)) + hud_data = new() -/datum/hud/proc/robot_hud() + if(hud_data.icon) + ui_style = hud_data.icon*/ + + if(ui_style == 'icons/mob/screen/minimalist.dmi') + ui_style = 'icons/mob/screen1_robot_minimalist.dmi' + else + ui_style = 'icons/mob/screen1_robot.dmi' src.adding = list() src.other = list() @@ -12,7 +25,9 @@ var/obj/screen/robot_inventory using = new /obj/screen() using.name = "radio" using.set_dir(SOUTHWEST) - using.icon = 'icons/mob/screen1_robot.dmi' + using.icon = ui_style + using.color = ui_color + using.alpha = ui_alpha using.icon_state = "radio" using.screen_loc = ui_movi using.layer = 20 @@ -23,7 +38,9 @@ var/obj/screen/robot_inventory using = new /obj/screen() using.name = "module1" using.set_dir(SOUTHWEST) - using.icon = 'icons/mob/screen1_robot.dmi' + using.icon = ui_style + using.color = ui_color + using.alpha = ui_alpha using.icon_state = "inv1" using.screen_loc = ui_inv1 using.layer = 20 @@ -33,7 +50,9 @@ var/obj/screen/robot_inventory using = new /obj/screen() using.name = "module2" using.set_dir(SOUTHWEST) - using.icon = 'icons/mob/screen1_robot.dmi' + using.icon = ui_style + using.color = ui_color + using.alpha = ui_alpha using.icon_state = "inv2" using.screen_loc = ui_inv2 using.layer = 20 @@ -43,7 +62,9 @@ var/obj/screen/robot_inventory using = new /obj/screen() using.name = "module3" using.set_dir(SOUTHWEST) - using.icon = 'icons/mob/screen1_robot.dmi' + using.icon = ui_style + using.color = ui_color + using.alpha = ui_alpha using.icon_state = "inv3" using.screen_loc = ui_inv3 using.layer = 20 @@ -56,7 +77,8 @@ var/obj/screen/robot_inventory using = new /obj/screen() using.name = "act_intent" using.set_dir(SOUTHWEST) - using.icon = 'icons/mob/screen1_robot.dmi' + using.icon = ui_style + using.alpha = ui_alpha using.icon_state = mymob.a_intent using.screen_loc = ui_acti using.layer = 20 @@ -65,47 +87,60 @@ var/obj/screen/robot_inventory //Cell mymob:cells = new /obj/screen() - mymob:cells.icon = 'icons/mob/screen1_robot.dmi' + mymob:cells.icon = ui_style mymob:cells.icon_state = "charge-empty" + mymob:cells.alpha = ui_alpha mymob:cells.name = "cell" mymob:cells.screen_loc = ui_toxin + src.other += mymob:cells //Health mymob.healths = new /obj/screen() - mymob.healths.icon = 'icons/mob/screen1_robot.dmi' + mymob.healths.icon = ui_style mymob.healths.icon_state = "health0" + mymob.healths.alpha = ui_alpha mymob.healths.name = "health" mymob.healths.screen_loc = ui_borg_health + src.other += mymob.healths //Installed Module mymob.hands = new /obj/screen() - mymob.hands.icon = 'icons/mob/screen1_robot.dmi' + mymob.hands.icon = ui_style mymob.hands.icon_state = "nomod" + mymob.hands.alpha = ui_alpha mymob.hands.name = "module" mymob.hands.screen_loc = ui_borg_module + src.other += mymob.hands //Module Panel using = new /obj/screen() using.name = "panel" - using.icon = 'icons/mob/screen1_robot.dmi' + using.icon = ui_style using.icon_state = "panel" + using.alpha = ui_alpha using.screen_loc = ui_borg_panel using.layer = 19 src.adding += using //Store mymob.throw_icon = new /obj/screen() - mymob.throw_icon.icon = 'icons/mob/screen1_robot.dmi' + mymob.throw_icon.icon = ui_style mymob.throw_icon.icon_state = "store" + mymob.throw_icon.alpha = ui_alpha + mymob.throw_icon.color = ui_color mymob.throw_icon.name = "store" mymob.throw_icon.screen_loc = ui_borg_store + src.other += mymob.throw_icon //Inventory robot_inventory = new /obj/screen() robot_inventory.name = "inventory" - robot_inventory.icon = 'icons/mob/screen1_robot.dmi' + robot_inventory.icon = ui_style robot_inventory.icon_state = "inventory" + robot_inventory.alpha = ui_alpha + robot_inventory.color = ui_color robot_inventory.screen_loc = ui_borg_inventory + src.other += robot_inventory //Temp mymob.bodytemp = new /obj/screen() @@ -113,24 +148,30 @@ var/obj/screen/robot_inventory mymob.bodytemp.name = "body temperature" mymob.bodytemp.screen_loc = ui_temp - mymob.oxygen = new /obj/screen() - mymob.oxygen.icon = 'icons/mob/screen1_robot.dmi' + mymob.oxygen.icon = ui_style mymob.oxygen.icon_state = "oxy0" + mymob.oxygen.alpha = ui_alpha mymob.oxygen.name = "oxygen" mymob.oxygen.screen_loc = ui_oxygen + src.other += mymob.oxygen mymob.fire = new /obj/screen() - mymob.fire.icon = 'icons/mob/screen1_robot.dmi' + mymob.fire.icon = ui_style mymob.fire.icon_state = "fire0" + mymob.fire.alpha = ui_alpha mymob.fire.name = "fire" mymob.fire.screen_loc = ui_fire + src.other += mymob.fire mymob.pullin = new /obj/screen() - mymob.pullin.icon = 'icons/mob/screen1_robot.dmi' + mymob.pullin.icon = ui_style mymob.pullin.icon_state = "pull0" + mymob.pullin.alpha = ui_alpha + mymob.pullin.color = ui_color mymob.pullin.name = "pull" mymob.pullin.screen_loc = ui_borg_pull + src.other += mymob.pullin mymob.blind = new /obj/screen() mymob.blind.icon = 'icons/mob/screen1_full.dmi' @@ -140,22 +181,32 @@ var/obj/screen/robot_inventory mymob.blind.layer = 0 mymob.flash = new /obj/screen() - mymob.flash.icon = 'icons/mob/screen1_robot.dmi' + mymob.flash.icon = ui_style mymob.flash.icon_state = "blank" mymob.flash.name = "flash" mymob.flash.screen_loc = ui_entire_screen mymob.flash.layer = 17 + src.other += mymob.flash mymob.zone_sel = new /obj/screen/zone_sel() - mymob.zone_sel.icon = 'icons/mob/screen1_robot.dmi' + mymob.zone_sel.icon = ui_style + mymob.zone_sel.alpha = ui_alpha mymob.zone_sel.overlays.Cut() mymob.zone_sel.overlays += image('icons/mob/zone_sel.dmi', "[mymob.zone_sel.selecting]") //Handle the gun settings buttons mymob.gun_setting_icon = new /obj/screen/gun/mode(null) + mymob.gun_setting_icon.icon = ui_style + mymob.gun_setting_icon.alpha = ui_alpha mymob.item_use_icon = new /obj/screen/gun/item(null) + mymob.item_use_icon.icon = ui_style + mymob.item_use_icon.alpha = ui_alpha mymob.gun_move_icon = new /obj/screen/gun/move(null) + mymob.gun_move_icon.icon = ui_style + mymob.gun_move_icon.alpha = ui_alpha mymob.radio_use_icon = new /obj/screen/gun/radio(null) + mymob.radio_use_icon.icon = ui_style + mymob.radio_use_icon.alpha = ui_alpha mymob.client.screen = list() diff --git a/code/_onclick/other_mobs.dm b/code/_onclick/other_mobs.dm index c0a0cac8b3f..ac07b8d0755 100644 --- a/code/_onclick/other_mobs.dm +++ b/code/_onclick/other_mobs.dm @@ -92,7 +92,7 @@ if (powerlevel > 0 && !istype(A, /mob/living/carbon/slime)) if(ishuman(M)) var/mob/living/carbon/human/H = M - stunprob *= H.species.siemens_coefficient + stunprob *= max(H.species.siemens_coefficient,0) switch(power * 10) diff --git a/code/_onclick/telekinesis.dm b/code/_onclick/telekinesis.dm index 354e3771215..d416475a27b 100644 --- a/code/_onclick/telekinesis.dm +++ b/code/_onclick/telekinesis.dm @@ -107,20 +107,11 @@ var/const/tk_maxrange = 15 return var/d = get_dist(user, target) - if(focus) d = max(d,get_dist(user,focus)) // whichever is further - switch(d) - if(0) - ; - if(1 to 5) // not adjacent may mean blocked by window - if(!proximity) - user.setMoveCooldown(2) - if(5 to 7) - user.setMoveCooldown(5) - if(8 to tk_maxrange) - user.setMoveCooldown(10) - else - user << "Your mind won't reach that far." - return + if(focus) + d = max(d, get_dist(user, focus)) // whichever is further + if(d > tk_maxrange) + user << "Your mind won't reach that far." + return if(!focus) focus_object(target, user) diff --git a/code/datums/datacore.dm b/code/datums/datacore.dm index 0d0f77a957a..cc603aa2df5 100644 --- a/code/datums/datacore.dm +++ b/code/datums/datacore.dm @@ -1,3 +1,4 @@ + /hook/startup/proc/createDatacore() data_core = new /datum/datacore() return 1 @@ -25,11 +26,11 @@ var/dat = {" @@ -186,7 +187,7 @@ G.fields["fingerprint"] = md5(H.dna.uni_identity) G.fields["p_stat"] = "Active" G.fields["m_stat"] = "Stable" - G.fields["sex"] = H.gender + G.fields["sex"] = gender2text(H.gender) G.fields["species"] = H.get_species() G.fields["home_system"] = H.home_system G.fields["citizenship"] = H.citizenship @@ -199,6 +200,7 @@ var/datum/data/record/M = CreateMedicalRecord(H.real_name, id) M.fields["b_type"] = H.b_type M.fields["b_dna"] = H.dna.unique_enzymes + M.fields["id_gender"] = gender2text(H.identifying_gender) if(H.med_record && !jobban_isbanned(H, "Records")) M.fields["notes"] = H.med_record @@ -214,7 +216,8 @@ L.fields["rank"] = H.mind.assigned_role L.fields["age"] = H.age L.fields["fingerprint"] = md5(H.dna.uni_identity) - L.fields["sex"] = H.gender + L.fields["sex"] = gender2text(H.gender) + L.fields["id_gender"] = gender2text(H.identifying_gender) L.fields["b_type"] = H.b_type L.fields["b_dna"] = H.dna.unique_enzymes L.fields["enzymes"] = H.dna.SE // Used in respawning @@ -255,8 +258,9 @@ preview_icon.Blend(E.get_icon(), ICON_OVERLAY) //Tail - if(H.species.tail) - temp = new/icon("icon" = 'icons/effects/species.dmi', "icon_state" = "[H.species.tail]_s") + 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 @@ -418,7 +422,7 @@ G.fields["id"] = id G.fields["rank"] = "Unassigned" G.fields["real_rank"] = "Unassigned" - G.fields["sex"] = "Male" + G.fields["sex"] = "Unknown" G.fields["age"] = "Unknown" G.fields["fingerprint"] = "Unknown" G.fields["p_stat"] = "Active" @@ -460,6 +464,7 @@ M.fields["name"] = name M.fields["b_type"] = "AB+" M.fields["b_dna"] = md5(name) + M.fields["id_gender"] = "Unknown" M.fields["mi_dis"] = "None" M.fields["mi_dis_d"] = "No minor disabilities have been declared." M.fields["ma_dis"] = "None" diff --git a/code/datums/recipe.dm b/code/datums/recipe.dm index 460a13f7b7a..23af6093efa 100644 --- a/code/datums/recipe.dm +++ b/code/datums/recipe.dm @@ -76,7 +76,7 @@ checklist = items.Copy() // You should really trust Copy if(istype(container, /obj/machinery)) var/obj/machinery/machine = container - for(var/obj/O in (machine.contents - machine.component_parts)) + for(var/obj/O in ((machine.contents - machine.component_parts) - machine.circuit)) if(istype(O,/obj/item/weapon/reagent_containers/food/snacks/grown)) continue // Fruit is handled in check_fruit(). var/found = 0 @@ -110,7 +110,7 @@ var/obj/result_obj = new result(container) if(istype(container, /obj/machinery)) var/obj/machinery/machine = container - for (var/obj/O in ((machine.contents-result_obj)-machine.component_parts)) + for (var/obj/O in ((machine.contents-result_obj - machine.component_parts) - machine.circuit)) O.reagents.trans_to_obj(result_obj, O.reagents.total_volume) qdel(O) else @@ -128,7 +128,7 @@ var/obj/result_obj = new result(container) if(istype(container, /obj/machinery)) var/obj/machinery/machine = container - for (var/obj/O in ((machine.contents-result_obj)-machine.component_parts)) + for (var/obj/O in ((machine.contents-result_obj - machine.component_parts) - machine.circuit)) if (O.reagents) O.reagents.del_reagent("nutriment") O.reagents.update_total() diff --git a/code/datums/supplypacks.dm b/code/datums/supplypacks.dm index a2157fa39ec..601533acc33 100644 --- a/code/datums/supplypacks.dm +++ b/code/datums/supplypacks.dm @@ -31,12 +31,12 @@ var/list/all_supply_groups = list("Operations","Security","Hospitality","Enginee /datum/supply_packs/specialops name = "Special Ops supplies" - contains = list(/obj/item/weapon/storage/box/emps, - /obj/item/weapon/grenade/smokebomb, - /obj/item/weapon/grenade/smokebomb, - /obj/item/weapon/grenade/smokebomb, - /obj/item/weapon/pen/reagent/paralysis, - /obj/item/weapon/grenade/chem_grenade/incendiary) + contains = list( + /obj/item/weapon/storage/box/emps, + /obj/item/weapon/grenade/smokebomb = 3, + /obj/item/weapon/pen/reagent/paralysis, + /obj/item/weapon/grenade/chem_grenade/incendiary + ) cost = 20 containertype = /obj/structure/closet/crate containername = "Special Ops crate" @@ -45,13 +45,13 @@ var/list/all_supply_groups = list("Operations","Security","Hospitality","Enginee /datum/supply_packs/forensics name = "Auxiliary forensic tools" - contains = list(/obj/item/weapon/forensics/sample_kit, - /obj/item/weapon/forensics/sample_kit/powder, - /obj/item/weapon/storage/box/swabs, - /obj/item/weapon/storage/box/swabs, - /obj/item/weapon/storage/box/swabs, - /obj/item/device/uv_light, - /obj/item/weapon/reagent_containers/spray/luminol) + contains = list( + /obj/item/weapon/forensics/sample_kit, + /obj/item/weapon/forensics/sample_kit/powder, + /obj/item/weapon/storage/box/swabs = 3, + /obj/item/device/uv_light, + /obj/item/weapon/reagent_containers/spray/luminol + ) cost = 30 containertype = /obj/structure/closet/crate containername = "Auxiliary forensic tools" @@ -59,18 +59,14 @@ var/list/all_supply_groups = list("Operations","Security","Hospitality","Enginee /datum/supply_packs/food name = "Kitchen supply crate" - contains = list(/obj/item/weapon/reagent_containers/food/condiment/flour, - /obj/item/weapon/reagent_containers/food/condiment/flour, - /obj/item/weapon/reagent_containers/food/condiment/flour, - /obj/item/weapon/reagent_containers/food/condiment/flour, - /obj/item/weapon/reagent_containers/food/drinks/milk, - /obj/item/weapon/reagent_containers/food/drinks/milk, - /obj/item/weapon/storage/fancy/egg_box, - /obj/item/weapon/reagent_containers/food/snacks/tofu, - /obj/item/weapon/reagent_containers/food/snacks/tofu, - /obj/item/weapon/reagent_containers/food/snacks/meat, - /obj/item/weapon/reagent_containers/food/snacks/meat - ) + contains = list( + /obj/item/weapon/reagent_containers/food/condiment/flour = 6, + /obj/item/weapon/reagent_containers/food/drinks/milk = 3, + /obj/item/weapon/reagent_containers/food/drinks/soymilk = 2, + /obj/item/weapon/storage/fancy/egg_box = 2, + /obj/item/weapon/reagent_containers/food/snacks/tofu = 4, + /obj/item/weapon/reagent_containers/food/snacks/meat = 4 + ) cost = 10 containertype = /obj/structure/closet/crate/freezer containername = "Food crate" @@ -110,9 +106,7 @@ var/list/all_supply_groups = list("Operations","Security","Hospitality","Enginee /datum/supply_packs/beanbagammo name = "Beanbag shells" - contains = list(/obj/item/weapon/storage/box/beanbags, - /obj/item/weapon/storage/box/beanbags, - /obj/item/weapon/storage/box/beanbags) + contains = list(/obj/item/weapon/storage/box/beanbags = 3) cost = 30 containertype = /obj/structure/closet/crate containername = "Beanbag shells" @@ -120,12 +114,7 @@ var/list/all_supply_groups = list("Operations","Security","Hospitality","Enginee /datum/supply_packs/toner name = "Toner cartridges" - contains = list(/obj/item/device/toner, - /obj/item/device/toner, - /obj/item/device/toner, - /obj/item/device/toner, - /obj/item/device/toner, - /obj/item/device/toner) + contains = list(/obj/item/device/toner = 6) cost = 10 containertype = /obj/structure/closet/crate containername = "Toner cartridges" @@ -133,20 +122,18 @@ var/list/all_supply_groups = list("Operations","Security","Hospitality","Enginee /datum/supply_packs/party name = "Party equipment" - contains = list(/obj/item/weapon/storage/box/drinkingglasses, - /obj/item/weapon/reagent_containers/food/drinks/shaker, - /obj/item/weapon/reagent_containers/food/drinks/flask/barflask, - /obj/item/weapon/reagent_containers/food/drinks/bottle/patron, - /obj/item/weapon/reagent_containers/food/drinks/bottle/goldschlager, - /obj/item/weapon/reagent_containers/food/drinks/bottle/specialwhiskey, - /obj/item/weapon/storage/fancy/cigarettes/dromedaryco, - /obj/item/weapon/lipstick/random, - /obj/item/weapon/reagent_containers/food/drinks/bottle/small/ale, - /obj/item/weapon/reagent_containers/food/drinks/bottle/small/ale, - /obj/item/weapon/reagent_containers/food/drinks/bottle/small/beer, - /obj/item/weapon/reagent_containers/food/drinks/bottle/small/beer, - /obj/item/weapon/reagent_containers/food/drinks/bottle/small/beer, - /obj/item/weapon/reagent_containers/food/drinks/bottle/small/beer) + contains = list( + /obj/item/weapon/storage/box/drinkingglasses, + /obj/item/weapon/reagent_containers/food/drinks/shaker, + /obj/item/weapon/reagent_containers/food/drinks/flask/barflask, + /obj/item/weapon/reagent_containers/food/drinks/bottle/patron, + /obj/item/weapon/reagent_containers/food/drinks/bottle/goldschlager, + /obj/item/weapon/reagent_containers/food/drinks/bottle/specialwhiskey, + /obj/item/weapon/storage/fancy/cigarettes/dromedaryco, + /obj/item/weapon/lipstick/random, + /obj/item/weapon/reagent_containers/food/drinks/bottle/small/ale = 2, + /obj/item/weapon/reagent_containers/food/drinks/bottle/small/beer = 4 + ) cost = 20 containertype = /obj/structure/closet/crate containername = "Party equipment" @@ -154,10 +141,12 @@ var/list/all_supply_groups = list("Operations","Security","Hospitality","Enginee /datum/supply_packs/lasertag name = "Lasertag equipment" - contains = list(/obj/item/weapon/gun/energy/lasertag/red, - /obj/item/clothing/suit/redtag, - /obj/item/weapon/gun/energy/lasertag/blue, - /obj/item/clothing/suit/bluetag) + contains = list( + /obj/item/weapon/gun/energy/lasertag/red, + /obj/item/clothing/suit/redtag, + /obj/item/weapon/gun/energy/lasertag/blue, + /obj/item/clothing/suit/bluetag + ) containertype = /obj/structure/closet containername = "Lasertag Closet" group = "Hospitality" @@ -165,12 +154,10 @@ var/list/all_supply_groups = list("Operations","Security","Hospitality","Enginee /datum/supply_packs/internals name = "Internals crate" - contains = list(/obj/item/clothing/mask/gas, - /obj/item/clothing/mask/gas, - /obj/item/clothing/mask/gas, - /obj/item/weapon/tank/air, - /obj/item/weapon/tank/air, - /obj/item/weapon/tank/air) + contains = list( + /obj/item/clothing/mask/gas = 3, + /obj/item/weapon/tank/air = 3 + ) cost = 10 containertype = /obj/structure/closet/crate/internals containername = "Internals crate" @@ -178,29 +165,15 @@ var/list/all_supply_groups = list("Operations","Security","Hospitality","Enginee /datum/supply_packs/evacuation name = "Emergency equipment" - contains = list(/obj/item/weapon/storage/toolbox/emergency, - /obj/item/weapon/storage/toolbox/emergency, - /obj/item/clothing/suit/storage/hazardvest, - /obj/item/clothing/suit/storage/hazardvest, - /obj/item/clothing/suit/storage/vest, - /obj/item/clothing/suit/storage/vest, - /obj/item/weapon/tank/emergency_oxygen/engi, - /obj/item/weapon/tank/emergency_oxygen/engi, - /obj/item/weapon/tank/emergency_oxygen/engi, - /obj/item/weapon/tank/emergency_oxygen/engi, - /obj/item/clothing/suit/space/emergency, - /obj/item/clothing/suit/space/emergency, - /obj/item/clothing/suit/space/emergency, - /obj/item/clothing/suit/space/emergency, - /obj/item/clothing/head/helmet/space/emergency, - /obj/item/clothing/head/helmet/space/emergency, - /obj/item/clothing/head/helmet/space/emergency, - /obj/item/clothing/head/helmet/space/emergency, - /obj/item/clothing/mask/gas, - /obj/item/clothing/mask/gas, - /obj/item/clothing/mask/gas, - /obj/item/clothing/mask/gas, - /obj/item/clothing/mask/gas) + contains = list( + /obj/item/weapon/storage/toolbox/emergency = 2, + /obj/item/clothing/suit/storage/hazardvest = 2, + /obj/item/clothing/suit/storage/vest = 2, + /obj/item/weapon/tank/emergency_oxygen/engi = 4, + /obj/item/clothing/suit/space/emergency = 4, + /obj/item/clothing/head/helmet/space/emergency = 4, + /obj/item/clothing/mask/gas = 4 + ) cost = 45 containertype = /obj/structure/closet/crate/internals containername = "Emergency crate" @@ -209,9 +182,7 @@ var/list/all_supply_groups = list("Operations","Security","Hospitality","Enginee /datum/supply_packs/inflatable name = "Inflatable barriers" - contains = list(/obj/item/weapon/storage/briefcase/inflatable, - /obj/item/weapon/storage/briefcase/inflatable, - /obj/item/weapon/storage/briefcase/inflatable) + contains = list(/obj/item/weapon/storage/briefcase/inflatable = 3) cost = 20 containertype = /obj/structure/closet/crate containername = "Inflatable Barrier Crate" @@ -219,26 +190,23 @@ var/list/all_supply_groups = list("Operations","Security","Hospitality","Enginee /datum/supply_packs/janitor name = "Janitorial supplies" - contains = list(/obj/item/weapon/reagent_containers/glass/bucket, - /obj/item/weapon/mop, - /obj/item/clothing/under/rank/janitor, - /obj/item/weapon/cartridge/janitor, - /obj/item/clothing/gloves/black, - /obj/item/clothing/head/soft/purple, - /obj/item/weapon/storage/belt/janitor, - /obj/item/clothing/shoes/galoshes, - /obj/item/weapon/caution, - /obj/item/weapon/caution, - /obj/item/weapon/caution, - /obj/item/weapon/caution, - /obj/item/weapon/storage/bag/trash, - /obj/item/device/lightreplacer, - /obj/item/weapon/reagent_containers/spray/cleaner, - /obj/item/weapon/reagent_containers/glass/rag, - /obj/item/weapon/grenade/chem_grenade/cleaner, - /obj/item/weapon/grenade/chem_grenade/cleaner, - /obj/item/weapon/grenade/chem_grenade/cleaner, - /obj/structure/mopbucket) + contains = list( + /obj/item/weapon/reagent_containers/glass/bucket, + /obj/item/weapon/mop, + /obj/item/clothing/under/rank/janitor, + /obj/item/weapon/cartridge/janitor, + /obj/item/clothing/gloves/black, + /obj/item/clothing/head/soft/purple, + /obj/item/weapon/storage/belt/janitor, + /obj/item/clothing/shoes/galoshes, + /obj/item/weapon/caution = 4, + /obj/item/weapon/storage/bag/trash, + /obj/item/device/lightreplacer, + /obj/item/weapon/reagent_containers/spray/cleaner, + /obj/item/weapon/reagent_containers/glass/rag, + /obj/item/weapon/grenade/chem_grenade/cleaner = 3, + /obj/structure/mopbucket + ) cost = 10 containertype = /obj/structure/closet/crate containername = "Janitorial supplies" @@ -246,9 +214,7 @@ var/list/all_supply_groups = list("Operations","Security","Hospitality","Enginee /datum/supply_packs/lightbulbs name = "Replacement lights" - contains = list(/obj/item/weapon/storage/box/lights/mixed, - /obj/item/weapon/storage/box/lights/mixed, - /obj/item/weapon/storage/box/lights/mixed) + contains = list(/obj/item/weapon/storage/box/lights/mixed = 3) cost = 10 containertype = /obj/structure/closet/crate containername = "Replacement lights" @@ -256,10 +222,12 @@ var/list/all_supply_groups = list("Operations","Security","Hospitality","Enginee /datum/supply_packs/wizard name = "Wizard costume" - contains = list(/obj/item/weapon/staff, - /obj/item/clothing/suit/wizrobe/fake, - /obj/item/clothing/shoes/sandal, - /obj/item/clothing/head/wizard/fake) + contains = list( + /obj/item/weapon/staff, + /obj/item/clothing/suit/wizrobe/fake, + /obj/item/clothing/shoes/sandal, + /obj/item/clothing/head/wizard/fake + ) cost = 20 containertype = /obj/structure/closet/crate containername = "Wizard costume crate" @@ -268,15 +236,11 @@ var/list/all_supply_groups = list("Operations","Security","Hospitality","Enginee /datum/supply_packs/foam_weapons name = "Foam Weapon Crate" contains = list( - /obj/item/weapon/material/sword/foam, - /obj/item/weapon/material/sword/foam, - /obj/item/weapon/material/twohanded/baseballbat/foam, - /obj/item/weapon/material/twohanded/baseballbat/foam, - /obj/item/weapon/material/twohanded/spear/foam, - /obj/item/weapon/material/twohanded/spear/foam, - /obj/item/weapon/material/twohanded/fireaxe/foam, - /obj/item/weapon/material/twohanded/fireaxe/foam - ) + /obj/item/weapon/material/sword/foam = 2, + /obj/item/weapon/material/twohanded/baseballbat/foam = 2, + /obj/item/weapon/material/twohanded/spear/foam = 2, + /obj/item/weapon/material/twohanded/fireaxe/foam = 2 + ) cost = 80 containertype = /obj/structure/closet/crate containername = "foam weapon crate" @@ -314,29 +278,25 @@ var/list/all_supply_groups = list("Operations","Security","Hospitality","Enginee containername = "Corgi Crate" group = "Hydroponics" -/datum/supply_packs/hydroponics // -- Skie +/datum/supply_packs/hydroponics name = "Hydroponics Supply Crate" - contains = list(/obj/item/weapon/reagent_containers/spray/plantbgone, - /obj/item/weapon/reagent_containers/spray/plantbgone, - /obj/item/weapon/reagent_containers/spray/plantbgone, - /obj/item/weapon/reagent_containers/spray/plantbgone, - /obj/item/weapon/reagent_containers/glass/bottle/ammonia, - /obj/item/weapon/reagent_containers/glass/bottle/ammonia, - /obj/item/weapon/material/hatchet, - /obj/item/weapon/material/minihoe, - /obj/item/device/analyzer/plant_analyzer, - /obj/item/clothing/gloves/botanic_leather, - /obj/item/clothing/suit/apron, - /obj/item/weapon/material/minihoe, - /obj/item/weapon/storage/box/botanydisk - ) // Updated with new things + contains = list( + /obj/item/weapon/reagent_containers/spray/plantbgone = 4, + /obj/item/weapon/reagent_containers/glass/bottle/ammonia = 2, + /obj/item/weapon/material/hatchet, + /obj/item/weapon/material/minihoe, + /obj/item/device/analyzer/plant_analyzer, + /obj/item/clothing/gloves/botanic_leather, + /obj/item/clothing/suit/apron, + /obj/item/weapon/material/minihoe, + /obj/item/weapon/storage/box/botanydisk + ) cost = 15 containertype = /obj/structure/closet/crate/hydroponics containername = "Hydroponics crate" access = access_hydroponics group = "Hydroponics" -//farm animals - useless and annoying, but potentially a good source of food /datum/supply_packs/cow name = "Cow crate" cost = 30 @@ -363,23 +323,25 @@ var/list/all_supply_groups = list("Operations","Security","Hospitality","Enginee /datum/supply_packs/seeds name = "Seeds crate" - contains = list(/obj/item/seeds/chiliseed, - /obj/item/seeds/berryseed, - /obj/item/seeds/cornseed, - /obj/item/seeds/eggplantseed, - /obj/item/seeds/tomatoseed, - /obj/item/seeds/appleseed, - /obj/item/seeds/soyaseed, - /obj/item/seeds/wheatseed, - /obj/item/seeds/carrotseed, - /obj/item/seeds/harebell, - /obj/item/seeds/lemonseed, - /obj/item/seeds/orangeseed, - /obj/item/seeds/grassseed, - /obj/item/seeds/sunflowerseed, - /obj/item/seeds/chantermycelium, - /obj/item/seeds/potatoseed, - /obj/item/seeds/sugarcaneseed) + contains = list( + /obj/item/seeds/chiliseed, + /obj/item/seeds/berryseed, + /obj/item/seeds/cornseed, + /obj/item/seeds/eggplantseed, + /obj/item/seeds/tomatoseed, + /obj/item/seeds/appleseed, + /obj/item/seeds/soyaseed, + /obj/item/seeds/wheatseed, + /obj/item/seeds/carrotseed, + /obj/item/seeds/harebell, + /obj/item/seeds/lemonseed, + /obj/item/seeds/orangeseed, + /obj/item/seeds/grassseed, + /obj/item/seeds/sunflowerseed, + /obj/item/seeds/chantermycelium, + /obj/item/seeds/potatoseed, + /obj/item/seeds/sugarcaneseed + ) cost = 10 containertype = /obj/structure/closet/crate/hydroponics containername = "Seeds crate" @@ -388,16 +350,12 @@ var/list/all_supply_groups = list("Operations","Security","Hospitality","Enginee /datum/supply_packs/weedcontrol name = "Weed control crate" - contains = list(/obj/item/weapon/material/hatchet, - /obj/item/weapon/material/hatchet, - /obj/item/weapon/reagent_containers/spray/plantbgone, - /obj/item/weapon/reagent_containers/spray/plantbgone, - /obj/item/weapon/reagent_containers/spray/plantbgone, - /obj/item/weapon/reagent_containers/spray/plantbgone, - /obj/item/clothing/mask/gas, - /obj/item/clothing/mask/gas, - /obj/item/weapon/grenade/chem_grenade/antiweed, - /obj/item/weapon/grenade/chem_grenade/antiweed) + contains = list( + /obj/item/weapon/material/hatchet = 2, + /obj/item/weapon/reagent_containers/spray/plantbgone = 4, + /obj/item/clothing/mask/gas = 2, + /obj/item/weapon/grenade/chem_grenade/antiweed = 2 + ) cost = 25 containertype = /obj/structure/closet/crate/hydroponics containername = "Weed control crate" @@ -406,17 +364,13 @@ var/list/all_supply_groups = list("Operations","Security","Hospitality","Enginee /datum/supply_packs/exoticseeds name = "Exotic seeds crate" - contains = list(/obj/item/seeds/replicapod, - /obj/item/seeds/replicapod, - /obj/item/seeds/libertymycelium, - /obj/item/seeds/reishimycelium, - /obj/item/seeds/random, - /obj/item/seeds/random, - /obj/item/seeds/random, - /obj/item/seeds/random, - /obj/item/seeds/random, - /obj/item/seeds/random, - /obj/item/seeds/kudzuseed) + contains = list( + /obj/item/seeds/replicapod = 2, + /obj/item/seeds/libertymycelium, + /obj/item/seeds/reishimycelium, + /obj/item/seeds/random = 6, + /obj/item/seeds/kudzuseed + ) cost = 15 containertype = /obj/structure/closet/crate/hydroponics containername = "Exotic Seeds crate" @@ -425,16 +379,18 @@ var/list/all_supply_groups = list("Operations","Security","Hospitality","Enginee /datum/supply_packs/medical name = "Medical crate" - contains = list(/obj/item/weapon/storage/firstaid/regular, - /obj/item/weapon/storage/firstaid/fire, - /obj/item/weapon/storage/firstaid/toxin, - /obj/item/weapon/storage/firstaid/o2, - /obj/item/weapon/storage/firstaid/adv, - /obj/item/weapon/reagent_containers/glass/bottle/antitoxin, - /obj/item/weapon/reagent_containers/glass/bottle/inaprovaline, - /obj/item/weapon/reagent_containers/glass/bottle/stoxin, - /obj/item/weapon/storage/box/syringes, - /obj/item/weapon/storage/box/autoinjectors) + contains = list( + /obj/item/weapon/storage/firstaid/regular, + /obj/item/weapon/storage/firstaid/fire, + /obj/item/weapon/storage/firstaid/toxin, + /obj/item/weapon/storage/firstaid/o2, + /obj/item/weapon/storage/firstaid/adv, + /obj/item/weapon/reagent_containers/glass/bottle/antitoxin, + /obj/item/weapon/reagent_containers/glass/bottle/inaprovaline, + /obj/item/weapon/reagent_containers/glass/bottle/stoxin, + /obj/item/weapon/storage/box/syringes, + /obj/item/weapon/storage/box/autoinjectors + ) cost = 10 containertype = /obj/structure/closet/crate/medical containername = "Medical crate" @@ -442,9 +398,7 @@ var/list/all_supply_groups = list("Operations","Security","Hospitality","Enginee /datum/supply_packs/bloodpack name = "BloodPack crate" - contains = list(/obj/item/weapon/storage/box/bloodpacks, - /obj/item/weapon/storage/box/bloodpacks, - /obj/item/weapon/storage/box/bloodpacks) + contains = list(/obj/item/weapon/storage/box/bloodpacks = 3) cost = 10 containertype = /obj/structure/closet/crate/medical containername = "BloodPack crate" @@ -452,9 +406,7 @@ var/list/all_supply_groups = list("Operations","Security","Hospitality","Enginee /datum/supply_packs/bodybag name = "Body bag crate" - contains = list(/obj/item/weapon/storage/box/bodybags, - /obj/item/weapon/storage/box/bodybags, - /obj/item/weapon/storage/box/bodybags) + contains = list(/obj/item/weapon/storage/box/bodybags = 3) cost = 10 containertype = /obj/structure/closet/crate/medical containername = "Body bag crate" @@ -462,9 +414,7 @@ var/list/all_supply_groups = list("Operations","Security","Hospitality","Enginee /datum/supply_packs/cryobag name = "Stasis bag crate" - contains = list(/obj/item/bodybag/cryobag, - /obj/item/bodybag/cryobag, - /obj/item/bodybag/cryobag) + contains = list(/obj/item/bodybag/cryobag = 3) cost = 50 containertype = /obj/structure/closet/crate/medical containername = "Stasis bag crate" @@ -472,22 +422,7 @@ var/list/all_supply_groups = list("Operations","Security","Hospitality","Enginee /datum/supply_packs/virus name = "Virus sample crate" -/* contains = list(/obj/item/weapon/reagent_containers/glass/bottle/flu_virion, - /obj/item/weapon/reagent_containers/glass/bottle/cold, - /obj/item/weapon/reagent_containers/glass/bottle/epiglottis_virion, - /obj/item/weapon/reagent_containers/glass/bottle/liver_enhance_virion, - /obj/item/weapon/reagent_containers/glass/bottle/fake_gbs, - /obj/item/weapon/reagent_containers/glass/bottle/magnitis, - /obj/item/weapon/reagent_containers/glass/bottle/pierrot_throat, - /obj/item/weapon/reagent_containers/glass/bottle/brainrot, - /obj/item/weapon/reagent_containers/glass/bottle/hullucigen_virion, - /obj/item/weapon/storage/box/syringes, - /obj/item/weapon/storage/box/beakers, - /obj/item/weapon/reagent_containers/glass/bottle/mutagen)*/ - contains = list(/obj/item/weapon/virusdish/random, - /obj/item/weapon/virusdish/random, - /obj/item/weapon/virusdish/random, - /obj/item/weapon/virusdish/random) + contains = list(/obj/item/weapon/virusdish/random = 4) cost = 25 containertype = "/obj/structure/closet/crate/secure" containername = "Virus sample crate" @@ -540,14 +475,12 @@ var/list/all_supply_groups = list("Operations","Security","Hospitality","Enginee /datum/supply_packs/electrical name = "Electrical maintenance crate" - contains = list(/obj/item/weapon/storage/toolbox/electrical, - /obj/item/weapon/storage/toolbox/electrical, - /obj/item/clothing/gloves/yellow, - /obj/item/clothing/gloves/yellow, - /obj/item/weapon/cell, - /obj/item/weapon/cell, - /obj/item/weapon/cell/high, - /obj/item/weapon/cell/high) + contains = list( + /obj/item/weapon/storage/toolbox/electrical = 2, + /obj/item/clothing/gloves/yellow = 2, + /obj/item/weapon/cell = 2, + /obj/item/weapon/cell/high = 2 + ) cost = 15 containertype = /obj/structure/closet/crate containername = "Electrical maintenance crate" @@ -555,15 +488,12 @@ var/list/all_supply_groups = list("Operations","Security","Hospitality","Enginee /datum/supply_packs/mechanical name = "Mechanical maintenance crate" - contains = list(/obj/item/weapon/storage/belt/utility/full, - /obj/item/weapon/storage/belt/utility/full, - /obj/item/weapon/storage/belt/utility/full, - /obj/item/clothing/suit/storage/hazardvest, - /obj/item/clothing/suit/storage/hazardvest, - /obj/item/clothing/suit/storage/hazardvest, - /obj/item/clothing/head/welding, - /obj/item/clothing/head/welding, - /obj/item/clothing/head/hardhat) + contains = list( + /obj/item/weapon/storage/belt/utility/full = 3, + /obj/item/clothing/suit/storage/hazardvest = 3, + /obj/item/clothing/head/welding = 2, + /obj/item/clothing/head/hardhat + ) cost = 10 containertype = /obj/structure/closet/crate containername = "Mechanical maintenance crate" @@ -595,30 +525,12 @@ var/list/all_supply_groups = list("Operations","Security","Hospitality","Enginee /datum/supply_packs/solar name = "Solar Pack crate" - contains = list(/obj/item/solar_assembly, - /obj/item/solar_assembly, - /obj/item/solar_assembly, - /obj/item/solar_assembly, - /obj/item/solar_assembly, - /obj/item/solar_assembly, - /obj/item/solar_assembly, - /obj/item/solar_assembly, - /obj/item/solar_assembly, - /obj/item/solar_assembly, - /obj/item/solar_assembly, - /obj/item/solar_assembly, - /obj/item/solar_assembly, - /obj/item/solar_assembly, - /obj/item/solar_assembly, - /obj/item/solar_assembly, - /obj/item/solar_assembly, - /obj/item/solar_assembly, - /obj/item/solar_assembly, - /obj/item/solar_assembly, - /obj/item/solar_assembly, // 21 Solar Assemblies. 1 Extra for the controller, - /obj/item/weapon/circuitboard/solar_control, - /obj/item/weapon/tracker_electronics, - /obj/item/weapon/paper/solar) + contains = list( + /obj/item/solar_assembly = 21, + /obj/item/weapon/circuitboard/solar_control, + /obj/item/weapon/tracker_electronics, + /obj/item/weapon/paper/solar + ) cost = 20 containertype = /obj/structure/closet/crate containername = "Solar pack crate" @@ -626,8 +538,7 @@ var/list/all_supply_groups = list("Operations","Security","Hospitality","Enginee /datum/supply_packs/engine name = "Emitter crate" - contains = list(/obj/machinery/power/emitter, - /obj/machinery/power/emitter) + contains = list(/obj/machinery/power/emitter = 2) cost = 10 containertype = /obj/structure/closet/crate/secure containername = "Emitter crate" @@ -636,8 +547,7 @@ var/list/all_supply_groups = list("Operations","Security","Hospitality","Enginee /datum/supply_packs/engine/field_gen name = "Field Generator crate" - contains = list(/obj/machinery/field_generator, - /obj/machinery/field_generator) + contains = list(/obj/machinery/field_generator = 2) containertype = /obj/structure/closet/crate/secure containername = "Field Generator crate" access = access_ce @@ -653,22 +563,22 @@ var/list/all_supply_groups = list("Operations","Security","Hospitality","Enginee /datum/supply_packs/engine/collector name = "Collector crate" - contains = list(/obj/machinery/power/rad_collector, - /obj/machinery/power/rad_collector, - /obj/machinery/power/rad_collector) + contains = list(/obj/machinery/power/rad_collector = 3) containername = "Collector crate" group = "Engineering" /datum/supply_packs/engine/PA name = "Particle Accelerator crate" cost = 40 - contains = list(/obj/structure/particle_accelerator/fuel_chamber, - /obj/machinery/particle_accelerator/control_box, - /obj/structure/particle_accelerator/particle_emitter/center, - /obj/structure/particle_accelerator/particle_emitter/left, - /obj/structure/particle_accelerator/particle_emitter/right, - /obj/structure/particle_accelerator/power_box, - /obj/structure/particle_accelerator/end_cap) + contains = list( + /obj/structure/particle_accelerator/fuel_chamber, + /obj/machinery/particle_accelerator/control_box, + /obj/structure/particle_accelerator/particle_emitter/center, + /obj/structure/particle_accelerator/particle_emitter/left, + /obj/structure/particle_accelerator/particle_emitter/right, + /obj/structure/particle_accelerator/power_box, + /obj/structure/particle_accelerator/end_cap + ) containertype = /obj/structure/closet/crate/secure containername = "Particle Accelerator crate" access = access_ce @@ -676,9 +586,11 @@ var/list/all_supply_groups = list("Operations","Security","Hospitality","Enginee /datum/supply_packs/mecha_ripley name = "Circuit Crate (\"Ripley\" APLU)" - contains = list(/obj/item/weapon/book/manual/ripley_build_and_repair, - /obj/item/weapon/circuitboard/mecha/ripley/main, - /obj/item/weapon/circuitboard/mecha/ripley/peripherals) + contains = list( + /obj/item/weapon/book/manual/ripley_build_and_repair, + /obj/item/weapon/circuitboard/mecha/ripley/main, + /obj/item/weapon/circuitboard/mecha/ripley/peripherals + ) cost = 30 containertype = /obj/structure/closet/crate/secure containername = "APLU \"Ripley\" Circuit Crate" @@ -687,8 +599,10 @@ var/list/all_supply_groups = list("Operations","Security","Hospitality","Enginee /datum/supply_packs/mecha_odysseus name = "Circuit Crate (\"Odysseus\")" - contains = list(/obj/item/weapon/circuitboard/mecha/odysseus/peripherals, - /obj/item/weapon/circuitboard/mecha/odysseus/main) + contains = list( + /obj/item/weapon/circuitboard/mecha/odysseus/peripherals, + /obj/item/weapon/circuitboard/mecha/odysseus/main + ) cost = 25 containertype = /obj/structure/closet/crate/secure containername = "\"Odysseus\" Circuit Crate" @@ -705,16 +619,12 @@ var/list/all_supply_groups = list("Operations","Security","Hospitality","Enginee /datum/supply_packs/robotics name = "Robotics assembly crate" - contains = list(/obj/item/device/assembly/prox_sensor, - /obj/item/device/assembly/prox_sensor, - /obj/item/device/assembly/prox_sensor, - /obj/item/weapon/storage/toolbox/electrical, - /obj/item/device/flash, - /obj/item/device/flash, - /obj/item/device/flash, - /obj/item/device/flash, - /obj/item/weapon/cell/high, - /obj/item/weapon/cell/high) + contains = list( + /obj/item/device/assembly/prox_sensor = 3, + /obj/item/weapon/storage/toolbox/electrical, + /obj/item/device/flash = 4, + /obj/item/weapon/cell/high = 2 + ) cost = 10 containertype = /obj/structure/closet/crate/secure/gear containername = "Robotics assembly" @@ -723,18 +633,12 @@ var/list/all_supply_groups = list("Operations","Security","Hospitality","Enginee /datum/supply_packs/phoron name = "Phoron assembly crate" - contains = list(/obj/item/weapon/tank/phoron, - /obj/item/weapon/tank/phoron, - /obj/item/weapon/tank/phoron, - /obj/item/device/assembly/igniter, - /obj/item/device/assembly/igniter, - /obj/item/device/assembly/igniter, - /obj/item/device/assembly/prox_sensor, - /obj/item/device/assembly/prox_sensor, - /obj/item/device/assembly/prox_sensor, - /obj/item/device/assembly/timer, - /obj/item/device/assembly/timer, - /obj/item/device/assembly/timer) + contains = list( + /obj/item/weapon/tank/phoron = 3, + /obj/item/device/assembly/igniter = 3, + /obj/item/device/assembly/prox_sensor = 3, + /obj/item/device/assembly/timer = 3 + ) cost = 10 containertype = /obj/structure/closet/crate/secure/phoron containername = "Phoron assembly crate" @@ -743,16 +647,13 @@ var/list/all_supply_groups = list("Operations","Security","Hospitality","Enginee /datum/supply_packs/weapons name = "Weapons crate" - contains = list(/obj/item/weapon/melee/baton, - /obj/item/weapon/melee/baton, - /obj/item/weapon/gun/energy/gun, - /obj/item/weapon/gun/energy/gun, - /obj/item/weapon/gun/energy/taser, - /obj/item/weapon/gun/energy/taser, - /obj/item/weapon/gun/projectile/colt/detective, - /obj/item/weapon/gun/projectile/colt/detective, - /obj/item/weapon/storage/box/flashbangs, - /obj/item/weapon/storage/box/flashbangs) + contains = list( + /obj/item/weapon/melee/baton = 2, + /obj/item/weapon/gun/energy/gun = 2, + /obj/item/weapon/gun/energy/taser = 2, + /obj/item/weapon/gun/projectile/colt/detective = 2, + /obj/item/weapon/storage/box/flashbangs = 2 + ) cost = 40 containertype = /obj/structure/closet/crate/secure/weapon containername = "Weapons crate" @@ -761,10 +662,12 @@ var/list/all_supply_groups = list("Operations","Security","Hospitality","Enginee /datum/supply_packs/flareguns name = "Flare guns crate" - contains = list(/obj/item/weapon/gun/projectile/sec/flash, - /obj/item/ammo_magazine/c45m/flash, - /obj/item/weapon/gun/projectile/shotgun/doublebarrel/flare, - /obj/item/weapon/storage/box/flashshells) + contains = list( + /obj/item/weapon/gun/projectile/sec/flash, + /obj/item/ammo_magazine/c45m/flash, + /obj/item/weapon/gun/projectile/shotgun/doublebarrel/flare, + /obj/item/weapon/storage/box/flashshells + ) cost = 25 containertype = /obj/structure/closet/crate/secure/weapon containername = "Flare gun crate" @@ -773,10 +676,9 @@ var/list/all_supply_groups = list("Operations","Security","Hospitality","Enginee /datum/supply_packs/eweapons name = "Experimental weapons crate" - contains = list(/obj/item/weapon/gun/energy/xray, - /obj/item/weapon/gun/energy/xray, - /obj/item/weapon/shield/energy, - /obj/item/weapon/shield/energy) + contains = list( + /obj/item/weapon/gun/energy/xray = 2, + /obj/item/weapon/shield/energy = 2) cost = 125 containertype = /obj/structure/closet/crate/secure/weapon containername = "Experimental weapons crate" @@ -785,17 +687,19 @@ var/list/all_supply_groups = list("Operations","Security","Hospitality","Enginee /datum/supply_packs/randomised/armor num_contained = 5 - contains = list(/obj/item/clothing/suit/storage/vest, - /obj/item/clothing/suit/storage/vest/officer, - /obj/item/clothing/suit/storage/vest/warden, - /obj/item/clothing/suit/storage/vest/hos, - /obj/item/clothing/suit/storage/vest/pcrc, - /obj/item/clothing/suit/storage/vest/detective, - /obj/item/clothing/suit/storage/vest/heavy, - /obj/item/clothing/suit/storage/vest/heavy/officer, - /obj/item/clothing/suit/storage/vest/heavy/warden, - /obj/item/clothing/suit/storage/vest/heavy/hos, - /obj/item/clothing/suit/storage/vest/heavy/pcrc) + contains = list( + /obj/item/clothing/suit/storage/vest, + /obj/item/clothing/suit/storage/vest/officer, + /obj/item/clothing/suit/storage/vest/warden, + /obj/item/clothing/suit/storage/vest/hos, + /obj/item/clothing/suit/storage/vest/pcrc, + /obj/item/clothing/suit/storage/vest/detective, + /obj/item/clothing/suit/storage/vest/heavy, + /obj/item/clothing/suit/storage/vest/heavy/officer, + /obj/item/clothing/suit/storage/vest/heavy/warden, + /obj/item/clothing/suit/storage/vest/heavy/hos, + /obj/item/clothing/suit/storage/vest/heavy/pcrc + ) name = "Armor crate" cost = 40 @@ -806,18 +710,14 @@ var/list/all_supply_groups = list("Operations","Security","Hospitality","Enginee /datum/supply_packs/riot_gear name = "Riot gear crate" - contains = list(/obj/item/weapon/melee/baton, - /obj/item/weapon/melee/baton, - /obj/item/weapon/melee/baton, - /obj/item/weapon/shield/riot, - /obj/item/weapon/shield/riot, - /obj/item/weapon/shield/riot, - /obj/item/weapon/handcuffs, - /obj/item/weapon/handcuffs, - /obj/item/weapon/handcuffs, - /obj/item/weapon/storage/box/flashbangs, - /obj/item/weapon/storage/box/beanbags, - /obj/item/weapon/storage/box/handcuffs) + contains = list( + /obj/item/weapon/melee/baton = 3, + /obj/item/weapon/shield/riot = 3, + /obj/item/weapon/handcuffs = 3, + /obj/item/weapon/storage/box/flashbangs, + /obj/item/weapon/storage/box/beanbags, + /obj/item/weapon/storage/box/handcuffs + ) cost = 40 containertype = /obj/structure/closet/crate/secure containername = "riot gear crate" @@ -826,10 +726,12 @@ var/list/all_supply_groups = list("Operations","Security","Hospitality","Enginee /datum/supply_packs/riot_armor name = "Riot armor set crate" - contains = list(/obj/item/clothing/head/helmet/riot, - /obj/item/clothing/suit/armor/riot, - /obj/item/clothing/gloves/arm_guard/riot, - /obj/item/clothing/shoes/leg_guard/riot) + contains = list( + /obj/item/clothing/head/helmet/riot, + /obj/item/clothing/suit/armor/riot, + /obj/item/clothing/gloves/arm_guard/riot, + /obj/item/clothing/shoes/leg_guard/riot + ) cost = 30 containertype = /obj/structure/closet/crate/secure containername = "riot armor set crate" @@ -838,10 +740,12 @@ var/list/all_supply_groups = list("Operations","Security","Hospitality","Enginee /datum/supply_packs/ablative_armor name = "Ablative armor set crate" - contains = list(/obj/item/clothing/head/helmet/laserproof, - /obj/item/clothing/suit/armor/laserproof, - /obj/item/clothing/gloves/arm_guard/laserproof, - /obj/item/clothing/shoes/leg_guard/laserproof) + contains = list( + /obj/item/clothing/head/helmet/laserproof, + /obj/item/clothing/suit/armor/laserproof, + /obj/item/clothing/gloves/arm_guard/laserproof, + /obj/item/clothing/shoes/leg_guard/laserproof + ) cost = 40 containertype = /obj/structure/closet/crate/secure containername = "ablative armor set crate" @@ -850,10 +754,12 @@ var/list/all_supply_groups = list("Operations","Security","Hospitality","Enginee /datum/supply_packs/bullet_resistant_armor name = "Bullet resistant armor set crate" - contains = list(/obj/item/clothing/head/helmet/bulletproof, - /obj/item/clothing/suit/armor/bulletproof, - /obj/item/clothing/gloves/arm_guard/bulletproof, - /obj/item/clothing/shoes/leg_guard/bulletproof) + contains = list( + /obj/item/clothing/head/helmet/bulletproof, + /obj/item/clothing/suit/armor/bulletproof, + /obj/item/clothing/gloves/arm_guard/bulletproof, + /obj/item/clothing/shoes/leg_guard/bulletproof + ) cost = 35 containertype = /obj/structure/closet/crate/secure containername = "bullet resistant armor set crate" @@ -862,10 +768,12 @@ var/list/all_supply_groups = list("Operations","Security","Hospitality","Enginee /datum/supply_packs/combat_armor name = "Combat armor set crate" - contains = list(/obj/item/clothing/head/helmet/combat, - /obj/item/clothing/suit/armor/combat, - /obj/item/clothing/gloves/arm_guard/combat, - /obj/item/clothing/shoes/leg_guard/combat) + contains = list( + /obj/item/clothing/head/helmet/combat, + /obj/item/clothing/suit/armor/combat, + /obj/item/clothing/gloves/arm_guard/combat, + /obj/item/clothing/shoes/leg_guard/combat + ) cost = 40 containertype = /obj/structure/closet/crate/secure containername = "combat armor set crate" @@ -879,28 +787,28 @@ var/list/all_supply_groups = list("Operations","Security","Hospitality","Enginee cost = 60 group = "Security" access = access_armory - contains = list(/obj/item/clothing/under/tactical, - /obj/item/clothing/suit/armor/tactical, - /obj/item/clothing/head/helmet/tactical, - /obj/item/clothing/mask/balaclava/tactical, - /obj/item/clothing/glasses/sunglasses/sechud/tactical, - /obj/item/weapon/storage/belt/security/tactical, - /obj/item/clothing/shoes/jackboots, - /obj/item/clothing/gloves/black, - /obj/item/clothing/under/tactical, - /obj/item/clothing/suit/armor/tactical, - /obj/item/clothing/head/helmet/tactical, - /obj/item/clothing/mask/balaclava/tactical, - /obj/item/clothing/glasses/sunglasses/sechud/tactical, - /obj/item/weapon/storage/belt/security/tactical, - /obj/item/clothing/shoes/jackboots, - /obj/item/clothing/gloves/black) + contains = list( + /obj/item/clothing/under/tactical, + /obj/item/clothing/suit/armor/tactical, + /obj/item/clothing/head/helmet/tactical, + /obj/item/clothing/mask/balaclava/tactical, + /obj/item/clothing/glasses/sunglasses/sechud/tactical, + /obj/item/weapon/storage/belt/security/tactical, + /obj/item/clothing/shoes/jackboots, + /obj/item/clothing/gloves/black, + /obj/item/clothing/under/tactical, + /obj/item/clothing/suit/armor/tactical, + /obj/item/clothing/head/helmet/tactical, + /obj/item/clothing/mask/balaclava/tactical, + /obj/item/clothing/glasses/sunglasses/sechud/tactical, + /obj/item/weapon/storage/belt/security/tactical, + /obj/item/clothing/shoes/jackboots, + /obj/item/clothing/gloves/black + ) /datum/supply_packs/energyweapons name = "Energy weapons crate" - contains = list(/obj/item/weapon/gun/energy/laser, - /obj/item/weapon/gun/energy/laser, - /obj/item/weapon/gun/energy/laser) + contains = list(/obj/item/weapon/gun/energy/laser = 3) cost = 50 containertype = /obj/structure/closet/crate/secure containername = "energy weapons crate" @@ -909,10 +817,11 @@ var/list/all_supply_groups = list("Operations","Security","Hospitality","Enginee /datum/supply_packs/shotgun name = "Shotgun crate" - contains = list(/obj/item/weapon/storage/box/shotgunammo, - /obj/item/weapon/storage/box/shotgunshells, - /obj/item/weapon/gun/projectile/shotgun/pump/combat, - /obj/item/weapon/gun/projectile/shotgun/pump/combat) + contains = list( + /obj/item/weapon/storage/box/shotgunammo, + /obj/item/weapon/storage/box/shotgunshells, + /obj/item/weapon/gun/projectile/shotgun/pump/combat = 2 + ) cost = 65 containertype = /obj/structure/closet/crate/secure containername = "Shotgun crate" @@ -921,8 +830,7 @@ var/list/all_supply_groups = list("Operations","Security","Hospitality","Enginee /datum/supply_packs/erifle name = "Energy marksman crate" - contains = list(/obj/item/weapon/gun/energy/sniperrifle, - /obj/item/weapon/gun/energy/sniperrifle) + contains = list(/obj/item/weapon/gun/energy/sniperrifle = 2) cost = 90 containertype = /obj/structure/closet/crate/secure containername = "Energy marksman crate" @@ -931,10 +839,10 @@ var/list/all_supply_groups = list("Operations","Security","Hospitality","Enginee /datum/supply_packs/shotgunammo name = "Ballistic ammunition crate" - contains = list(/obj/item/weapon/storage/box/shotgunammo, - /obj/item/weapon/storage/box/shotgunammo, - /obj/item/weapon/storage/box/shotgunshells, - /obj/item/weapon/storage/box/shotgunshells) + contains = list( + /obj/item/weapon/storage/box/shotgunammo = 2, + /obj/item/weapon/storage/box/shotgunshells = 2 + ) cost = 60 containertype = /obj/structure/closet/crate/secure containername = "ballistic ammunition crate" @@ -943,9 +851,10 @@ var/list/all_supply_groups = list("Operations","Security","Hospitality","Enginee /datum/supply_packs/ionweapons name = "Electromagnetic weapons crate" - contains = list(/obj/item/weapon/gun/energy/ionrifle, - /obj/item/weapon/gun/energy/ionrifle, - /obj/item/weapon/storage/box/emps) + contains = list( + /obj/item/weapon/gun/energy/ionrifle = 2, + /obj/item/weapon/storage/box/emps + ) cost = 50 containertype = /obj/structure/closet/crate/secure containername = "electromagnetic weapons crate" @@ -955,8 +864,10 @@ var/list/all_supply_groups = list("Operations","Security","Hospitality","Enginee /datum/supply_packs/randomised/automatic name = "Automatic weapon crate" num_contained = 2 - contains = list(/obj/item/weapon/gun/projectile/automatic/wt550, - /obj/item/weapon/gun/projectile/automatic/z8) + contains = list( + /obj/item/weapon/gun/projectile/automatic/wt550, + /obj/item/weapon/gun/projectile/automatic/z8 + ) cost = 90 containertype = /obj/structure/closet/crate/secure containername = "Automatic weapon crate" @@ -966,30 +877,20 @@ var/list/all_supply_groups = list("Operations","Security","Hospitality","Enginee /datum/supply_packs/randomised/autoammo name = "Automatic weapon ammunition crate" num_contained = 6 - contains = list(/obj/item/ammo_magazine/mc9mmt, - /obj/item/ammo_magazine/mc9mmt/rubber, - /obj/item/ammo_magazine/a556) + contains = list( + /obj/item/ammo_magazine/mc9mmt, + /obj/item/ammo_magazine/mc9mmt/rubber, + /obj/item/ammo_magazine/a556 + ) cost = 20 containertype = /obj/structure/closet/crate/secure containername = "Automatic weapon ammunition crate" access = access_armory group = "Security" -/* -/datum/supply_packs/loyalty - name = "Loyalty implant crate" - contains = list (/obj/item/weapon/storage/lockbox/loyalty) - cost = 60 - containertype = /obj/structure/closet/crate/secure - containername = "Loyalty implant crate" - access = access_armory - group = "Security" -*/ - /datum/supply_packs/energy_guns name = "energy guns crate" - contains = list(/obj/item/weapon/gun/energy/gun, - /obj/item/weapon/gun/energy/gun) + contains = list(/obj/item/weapon/gun/energy/gun = 2) cost = 50 containertype = /obj/structure/closet/crate/secure containername = "energy guns crate" @@ -998,10 +899,7 @@ var/list/all_supply_groups = list("Operations","Security","Hospitality","Enginee /datum/supply_packs/securitybarriers name = "Security barrier crate" - contains = list(/obj/machinery/deployable/barrier, - /obj/machinery/deployable/barrier, - /obj/machinery/deployable/barrier, - /obj/machinery/deployable/barrier) + contains = list(/obj/machinery/deployable/barrier = 4) cost = 20 containertype = /obj/structure/closet/crate/secure/gear containername = "Security barrier crate" @@ -1009,10 +907,7 @@ var/list/all_supply_groups = list("Operations","Security","Hospitality","Enginee /datum/supply_packs/securityshieldgen name = "Wall shield Generators" - contains = list(/obj/machinery/shieldwallgen, - /obj/machinery/shieldwallgen, - /obj/machinery/shieldwallgen, - /obj/machinery/shieldwallgen) + contains = list(/obj/machinery/shieldwallgen = 4) cost = 20 containertype = /obj/structure/closet/crate/secure containername = "wall shield generators crate" @@ -1021,26 +916,28 @@ var/list/all_supply_groups = list("Operations","Security","Hospitality","Enginee /datum/supply_packs/randomised var/num_contained = 4 //number of items picked to be contained in a randomised crate - contains = list(/obj/item/clothing/head/collectable/chef, - /obj/item/clothing/head/collectable/paper, - /obj/item/clothing/head/collectable/tophat, - /obj/item/clothing/head/collectable/captain, - /obj/item/clothing/head/collectable/beret, - /obj/item/clothing/head/collectable/welding, - /obj/item/clothing/head/collectable/flatcap, - /obj/item/clothing/head/collectable/pirate, - /obj/item/clothing/head/collectable/kitty, - /obj/item/clothing/head/collectable/rabbitears, - /obj/item/clothing/head/collectable/wizard, - /obj/item/clothing/head/collectable/hardhat, - /obj/item/clothing/head/collectable/HoS, - /obj/item/clothing/head/collectable/thunderdome, - /obj/item/clothing/head/collectable/swat, - /obj/item/clothing/head/collectable/slime, - /obj/item/clothing/head/collectable/police, - /obj/item/clothing/head/collectable/slime, - /obj/item/clothing/head/collectable/xenom, - /obj/item/clothing/head/collectable/petehat) + contains = list( + /obj/item/clothing/head/collectable/chef, + /obj/item/clothing/head/collectable/paper, + /obj/item/clothing/head/collectable/tophat, + /obj/item/clothing/head/collectable/captain, + /obj/item/clothing/head/collectable/beret, + /obj/item/clothing/head/collectable/welding, + /obj/item/clothing/head/collectable/flatcap, + /obj/item/clothing/head/collectable/pirate, + /obj/item/clothing/head/collectable/kitty, + /obj/item/clothing/head/collectable/rabbitears, + /obj/item/clothing/head/collectable/wizard, + /obj/item/clothing/head/collectable/hardhat, + /obj/item/clothing/head/collectable/HoS, + /obj/item/clothing/head/collectable/thunderdome, + /obj/item/clothing/head/collectable/swat, + /obj/item/clothing/head/collectable/slime, + /obj/item/clothing/head/collectable/police, + /obj/item/clothing/head/collectable/slime, + /obj/item/clothing/head/collectable/xenom, + /obj/item/clothing/head/collectable/petehat + ) name = "Collectable hat crate!" cost = 200 containertype = /obj/structure/closet/crate @@ -1053,23 +950,22 @@ var/list/all_supply_groups = list("Operations","Security","Hospitality","Enginee /datum/supply_packs/artscrafts name = "Arts and Crafts supplies" - contains = list(/obj/item/weapon/storage/fancy/crayons, - /obj/item/device/camera, - /obj/item/device/camera_film, - /obj/item/device/camera_film, - /obj/item/weapon/storage/photo_album, - /obj/item/weapon/packageWrap, - /obj/item/weapon/reagent_containers/glass/paint/red, - /obj/item/weapon/reagent_containers/glass/paint/green, - /obj/item/weapon/reagent_containers/glass/paint/blue, - /obj/item/weapon/reagent_containers/glass/paint/yellow, - /obj/item/weapon/reagent_containers/glass/paint/purple, - /obj/item/weapon/reagent_containers/glass/paint/black, - /obj/item/weapon/reagent_containers/glass/paint/white, - /obj/item/weapon/contraband/poster, - /obj/item/weapon/wrapping_paper, - /obj/item/weapon/wrapping_paper, - /obj/item/weapon/wrapping_paper) + contains = list( + /obj/item/weapon/storage/fancy/crayons, + /obj/item/device/camera, + /obj/item/device/camera_film = 2, + /obj/item/weapon/storage/photo_album, + /obj/item/weapon/packageWrap, + /obj/item/weapon/reagent_containers/glass/paint/red, + /obj/item/weapon/reagent_containers/glass/paint/green, + /obj/item/weapon/reagent_containers/glass/paint/blue, + /obj/item/weapon/reagent_containers/glass/paint/yellow, + /obj/item/weapon/reagent_containers/glass/paint/purple, + /obj/item/weapon/reagent_containers/glass/paint/black, + /obj/item/weapon/reagent_containers/glass/paint/white, + /obj/item/weapon/contraband/poster, + /obj/item/weapon/wrapping_paper = 3 + ) cost = 10 containertype = "/obj/structure/closet/crate" containername = "Arts and Crafts crate" @@ -1078,10 +974,12 @@ var/list/all_supply_groups = list("Operations","Security","Hospitality","Enginee /datum/supply_packs/randomised/contraband num_contained = 5 - contains = list(/obj/item/seeds/bloodtomatoseed, - /obj/item/weapon/storage/pill_bottle/zoom, - /obj/item/weapon/storage/pill_bottle/happy, - /obj/item/weapon/reagent_containers/food/drinks/bottle/pwine) + contains = list( + /obj/item/seeds/bloodtomatoseed, + /obj/item/weapon/storage/pill_bottle/zoom, + /obj/item/weapon/storage/pill_bottle/happy, + /obj/item/weapon/reagent_containers/food/drinks/bottle/pwine + ) name = "Contraband crate" cost = 30 @@ -1092,16 +990,7 @@ var/list/all_supply_groups = list("Operations","Security","Hospitality","Enginee /datum/supply_packs/boxes name = "Empty boxes" - contains = list(/obj/item/weapon/storage/box, - /obj/item/weapon/storage/box, - /obj/item/weapon/storage/box, - /obj/item/weapon/storage/box, - /obj/item/weapon/storage/box, - /obj/item/weapon/storage/box, - /obj/item/weapon/storage/box, - /obj/item/weapon/storage/box, - /obj/item/weapon/storage/box, - /obj/item/weapon/storage/box) + contains = list(/obj/item/weapon/storage/box = 10) cost = 10 containertype = "/obj/structure/closet/crate" containername = "Empty box crate" @@ -1109,17 +998,19 @@ var/list/all_supply_groups = list("Operations","Security","Hospitality","Enginee /datum/supply_packs/surgery name = "Surgery crate" - contains = list(/obj/item/weapon/cautery, - /obj/item/weapon/surgicaldrill, - /obj/item/clothing/mask/breath/medical, - /obj/item/weapon/tank/anesthetic, - /obj/item/weapon/FixOVein, - /obj/item/weapon/hemostat, - /obj/item/weapon/scalpel, - /obj/item/weapon/bonegel, - /obj/item/weapon/retractor, - /obj/item/weapon/bonesetter, - /obj/item/weapon/circular_saw) + contains = list( + /obj/item/weapon/cautery, + /obj/item/weapon/surgicaldrill, + /obj/item/clothing/mask/breath/medical, + /obj/item/weapon/tank/anesthetic, + /obj/item/weapon/FixOVein, + /obj/item/weapon/hemostat, + /obj/item/weapon/scalpel, + /obj/item/weapon/bonegel, + /obj/item/weapon/retractor, + /obj/item/weapon/bonesetter, + /obj/item/weapon/circular_saw + ) cost = 25 containertype = "/obj/structure/closet/crate/secure" containername = "Surgery crate" @@ -1128,15 +1019,13 @@ var/list/all_supply_groups = list("Operations","Security","Hospitality","Enginee /datum/supply_packs/sterile name = "Sterile equipment crate" - contains = list(/obj/item/clothing/under/rank/medical/green, - /obj/item/clothing/under/rank/medical/green, - /obj/item/clothing/head/surgery/green, - /obj/item/clothing/head/surgery/green, - /obj/item/weapon/storage/box/masks, - /obj/item/weapon/storage/box/gloves, - /obj/item/weapon/storage/belt/medical, - /obj/item/weapon/storage/belt/medical, - /obj/item/weapon/storage/belt/medical) + contains = list( + /obj/item/clothing/under/rank/medical/green = 2, + /obj/item/clothing/head/surgery/green = 2, + /obj/item/weapon/storage/box/masks, + /obj/item/weapon/storage/box/gloves, + /obj/item/weapon/storage/belt/medical = 3 + ) cost = 15 containertype = "/obj/structure/closet/crate" containername = "Sterile equipment crate" @@ -1144,10 +1033,12 @@ var/list/all_supply_groups = list("Operations","Security","Hospitality","Enginee /datum/supply_packs/randomised/pizza num_contained = 5 - contains = list(/obj/item/pizzabox/margherita, - /obj/item/pizzabox/mushroom, - /obj/item/pizzabox/meat, - /obj/item/pizzabox/vegetable) + contains = list( + /obj/item/pizzabox/margherita, + /obj/item/pizzabox/mushroom, + /obj/item/pizzabox/meat, + /obj/item/pizzabox/vegetable + ) name = "Surprise pack of five pizzas" cost = 15 containertype = /obj/structure/closet/crate/freezer @@ -1156,33 +1047,35 @@ var/list/all_supply_groups = list("Operations","Security","Hospitality","Enginee /datum/supply_packs/randomised/costume num_contained = 3 - contains = list(/obj/item/clothing/suit/pirate, - /obj/item/clothing/suit/judgerobe, - /obj/item/clothing/suit/wcoat, - /obj/item/clothing/suit/hastur, - /obj/item/clothing/suit/holidaypriest, - /obj/item/clothing/suit/nun, - /obj/item/clothing/suit/imperium_monk, - /obj/item/clothing/suit/ianshirt, - /obj/item/clothing/under/gimmick/rank/captain/suit, - /obj/item/clothing/under/gimmick/rank/head_of_personnel/suit, - /obj/item/clothing/under/lawyer/purpsuit, - /obj/item/clothing/under/rank/mailman, - /obj/item/clothing/under/dress/dress_saloon, - /obj/item/clothing/suit/suspenders, - /obj/item/clothing/suit/storage/toggle/labcoat/mad, - /obj/item/clothing/suit/bio_suit/plaguedoctorsuit, - /obj/item/clothing/under/schoolgirl, - /obj/item/clothing/under/owl, - /obj/item/clothing/under/waiter, - /obj/item/clothing/under/gladiator, - /obj/item/clothing/under/soviet, - /obj/item/clothing/under/scratch, - /obj/item/clothing/under/wedding/bride_white, - /obj/item/clothing/suit/chef, - /obj/item/clothing/suit/apron/overalls, - /obj/item/clothing/under/redcoat, - /obj/item/clothing/under/kilt) + contains = list( + /obj/item/clothing/suit/pirate, + /obj/item/clothing/suit/judgerobe, + /obj/item/clothing/suit/wcoat, + /obj/item/clothing/suit/hastur, + /obj/item/clothing/suit/holidaypriest, + /obj/item/clothing/suit/nun, + /obj/item/clothing/suit/imperium_monk, + /obj/item/clothing/suit/ianshirt, + /obj/item/clothing/under/gimmick/rank/captain/suit, + /obj/item/clothing/under/gimmick/rank/head_of_personnel/suit, + /obj/item/clothing/under/lawyer/purpsuit, + /obj/item/clothing/under/rank/mailman, + /obj/item/clothing/under/dress/dress_saloon, + /obj/item/clothing/suit/suspenders, + /obj/item/clothing/suit/storage/toggle/labcoat/mad, + /obj/item/clothing/suit/bio_suit/plaguedoctorsuit, + /obj/item/clothing/under/schoolgirl, + /obj/item/clothing/under/owl, + /obj/item/clothing/under/waiter, + /obj/item/clothing/under/gladiator, + /obj/item/clothing/under/soviet, + /obj/item/clothing/under/scratch, + /obj/item/clothing/under/wedding/bride_white, + /obj/item/clothing/suit/chef, + /obj/item/clothing/suit/apron/overalls, + /obj/item/clothing/under/redcoat, + /obj/item/clothing/under/kilt + ) name = "Costumes crate" cost = 10 containertype = /obj/structure/closet/crate @@ -1190,21 +1083,22 @@ var/list/all_supply_groups = list("Operations","Security","Hospitality","Enginee group = "Miscellaneous" /datum/supply_packs/formal_wear - contains = list(/obj/item/clothing/head/bowler, - /obj/item/clothing/head/that, - /obj/item/clothing/suit/storage/toggle/internalaffairs, - /obj/item/clothing/suit/storage/toggle/lawyer/bluejacket, - /obj/item/clothing/suit/storage/toggle/lawyer/purpjacket, - /obj/item/clothing/under/suit_jacket, - /obj/item/clothing/under/suit_jacket/female, - /obj/item/clothing/under/suit_jacket/really_black, - /obj/item/clothing/under/suit_jacket/red, - /obj/item/clothing/under/lawyer/bluesuit, - /obj/item/clothing/under/lawyer/purpsuit, - /obj/item/clothing/shoes/black, - /obj/item/clothing/shoes/black, - /obj/item/clothing/shoes/leather, - /obj/item/clothing/suit/wcoat) + contains = list( + /obj/item/clothing/head/bowler, + /obj/item/clothing/head/that, + /obj/item/clothing/suit/storage/toggle/internalaffairs, + /obj/item/clothing/suit/storage/toggle/lawyer/bluejacket, + /obj/item/clothing/suit/storage/toggle/lawyer/purpjacket, + /obj/item/clothing/under/suit_jacket, + /obj/item/clothing/under/suit_jacket/female, + /obj/item/clothing/under/suit_jacket/really_black, + /obj/item/clothing/under/suit_jacket/red, + /obj/item/clothing/under/lawyer/bluesuit, + /obj/item/clothing/under/lawyer/purpsuit, + /obj/item/clothing/shoes/black = 2, + /obj/item/clothing/shoes/leather, + /obj/item/clothing/suit/wcoat + ) name = "Formalwear closet" cost = 30 containertype = /obj/structure/closet @@ -1213,9 +1107,11 @@ var/list/all_supply_groups = list("Operations","Security","Hospitality","Enginee /datum/supply_packs/randomised/card_packs num_contained = 5 - contains = list(/obj/item/weapon/pack/cardemon, - /obj/item/weapon/pack/spaceball, - /obj/item/weapon/deck/holder) + contains = list( + /obj/item/weapon/pack/cardemon, + /obj/item/weapon/pack/spaceball, + /obj/item/weapon/deck/holder + ) name = "Trading Card Crate" cost = 10 containertype = /obj/structure/closet/crate @@ -1258,16 +1154,6 @@ var/list/all_supply_groups = list("Operations","Security","Hospitality","Enginee group = "Engineering" access = access_ce - -/* /datum/supply_packs/smsmall // Currently nonfunctional, waiting on virgil - name = "Supermatter Shard" - contains = list(/obj/machinery/power/supermatter/shard) - cost = 25 - containertype = /obj/structure/closet/crate/secure/phoron - containername = "Supermatter shard crate (CAUTION)" - access = access_ce - group = "Engineering" */ - /datum/supply_packs/eftpos contains = list(/obj/item/device/eftpos) name = "EFTPOS scanner" @@ -1314,14 +1200,12 @@ var/list/all_supply_groups = list("Operations","Security","Hospitality","Enginee /datum/supply_packs/bee_keeper name = "Beekeeping crate" - contains = list(/obj/item/beehive_assembly, - /obj/item/bee_smoker, - /obj/item/honey_frame, - /obj/item/honey_frame, - /obj/item/honey_frame, - /obj/item/honey_frame, - /obj/item/honey_frame, - /obj/item/bee_pack) + contains = list( + /obj/item/beehive_assembly, + /obj/item/bee_smoker, + /obj/item/honey_frame = 5, + /obj/item/bee_pack + ) cost = 40 containertype = /obj/structure/closet/crate/hydroponics containername = "Beekeeping crate" @@ -1338,19 +1222,20 @@ var/list/all_supply_groups = list("Operations","Security","Hospitality","Enginee group = "Miscellaneous" /datum/supply_packs/bureaucracy - contains = list(/obj/item/weapon/clipboard, - /obj/item/weapon/clipboard, - /obj/item/weapon/pen/red, - /obj/item/weapon/pen/blue, - /obj/item/weapon/pen/blue, - /obj/item/device/camera_film, - /obj/item/weapon/folder/blue, - /obj/item/weapon/folder/red, - /obj/item/weapon/folder/yellow, - /obj/item/weapon/hand_labeler, - /obj/item/weapon/tape_roll, - /obj/structure/filingcabinet/chestdrawer{anchored = 0}, - /obj/item/weapon/paper_bin) + contains = list( + /obj/item/weapon/clipboard = 2, + /obj/item/weapon/pen/red, + /obj/item/weapon/pen/blue, + /obj/item/weapon/pen/blue, + /obj/item/device/camera_film, + /obj/item/weapon/folder/blue, + /obj/item/weapon/folder/red, + /obj/item/weapon/folder/yellow, + /obj/item/weapon/hand_labeler, + /obj/item/weapon/tape_roll, + /obj/structure/filingcabinet/chestdrawer{anchored = 0}, + /obj/item/weapon/paper_bin + ) name = "Office supplies" cost = 15 containertype = /obj/structure/closet/crate @@ -1358,12 +1243,10 @@ var/list/all_supply_groups = list("Operations","Security","Hospitality","Enginee group = "Supply" /datum/supply_packs/radsuit - contains = list(/obj/item/clothing/suit/radiation, - /obj/item/clothing/suit/radiation, - /obj/item/clothing/suit/radiation, - /obj/item/clothing/head/radiation, - /obj/item/clothing/head/radiation, - /obj/item/clothing/head/radiation) + contains = list( + /obj/item/clothing/suit/radiation = 3, + /obj/item/clothing/head/radiation = 3 + ) name = "Radiation suits package" cost = 20 containertype = /obj/structure/closet/radiation @@ -1463,10 +1346,12 @@ var/list/all_supply_groups = list("Operations","Security","Hospitality","Enginee containertype = /obj/structure/closet/crate/secure group = "Engineering" access = access_tech_storage - contains = list(/obj/item/weapon/stock_parts/micro_laser, - /obj/item/weapon/stock_parts/capacitor, - /obj/item/weapon/stock_parts/matter_bin, - /obj/item/weapon/circuitboard/pacman) + contains = list( + /obj/item/weapon/stock_parts/micro_laser, + /obj/item/weapon/stock_parts/capacitor, + /obj/item/weapon/stock_parts/matter_bin, + /obj/item/weapon/circuitboard/pacman + ) /datum/supply_packs/super_pacman_parts name = "Super P.A.C.M.A.N. portable generator parts" @@ -1475,20 +1360,24 @@ var/list/all_supply_groups = list("Operations","Security","Hospitality","Enginee containertype = /obj/structure/closet/crate/secure group = "Engineering" access = access_tech_storage - contains = list(/obj/item/weapon/stock_parts/micro_laser, - /obj/item/weapon/stock_parts/capacitor, - /obj/item/weapon/stock_parts/matter_bin, - /obj/item/weapon/circuitboard/pacman/super) + contains = list( + /obj/item/weapon/stock_parts/micro_laser, + /obj/item/weapon/stock_parts/capacitor, + /obj/item/weapon/stock_parts/matter_bin, + /obj/item/weapon/circuitboard/pacman/super + ) /datum/supply_packs/witch name = "Witch costume" containername = "Witch costume" containertype = /obj/structure/closet cost = 20 - contains = list(/obj/item/clothing/suit/wizrobe/marisa/fake, - /obj/item/clothing/shoes/sandal, - /obj/item/clothing/head/wizard/marisa/fake, - /obj/item/weapon/staff/broom) + contains = list( + /obj/item/clothing/suit/wizrobe/marisa/fake, + /obj/item/clothing/shoes/sandal, + /obj/item/clothing/head/wizard/marisa/fake, + /obj/item/weapon/staff/broom + ) group = "Miscellaneous" /datum/supply_packs/randomised/costume_hats @@ -1497,20 +1386,22 @@ var/list/all_supply_groups = list("Operations","Security","Hospitality","Enginee containertype = /obj/structure/closet cost = 10 num_contained = 3 - contains = list(/obj/item/clothing/head/redcoat, - /obj/item/clothing/head/mailman, - /obj/item/clothing/head/plaguedoctorhat, - /obj/item/clothing/head/pirate, - /obj/item/clothing/head/hasturhood, - /obj/item/clothing/head/powdered_wig, - /obj/item/clothing/head/hairflower, - /obj/item/clothing/head/hairflower/yellow, - /obj/item/clothing/head/hairflower/blue, - /obj/item/clothing/head/hairflower/pink, - /obj/item/clothing/mask/gas/owl_mask, - /obj/item/clothing/mask/gas/monkeymask, - /obj/item/clothing/head/helmet/gladiator, - /obj/item/clothing/head/ushanka) + contains = list( + /obj/item/clothing/head/redcoat, + /obj/item/clothing/head/mailman, + /obj/item/clothing/head/plaguedoctorhat, + /obj/item/clothing/head/pirate, + /obj/item/clothing/head/hasturhood, + /obj/item/clothing/head/powdered_wig, + /obj/item/clothing/head/hairflower, + /obj/item/clothing/head/hairflower/yellow, + /obj/item/clothing/head/hairflower/blue, + /obj/item/clothing/head/hairflower/pink, + /obj/item/clothing/mask/gas/owl_mask, + /obj/item/clothing/mask/gas/monkeymask, + /obj/item/clothing/head/helmet/gladiator, + /obj/item/clothing/head/ushanka + ) group = "Miscellaneous" /datum/supply_packs/spare_pda @@ -1519,9 +1410,7 @@ var/list/all_supply_groups = list("Operations","Security","Hospitality","Enginee containertype = /obj/structure/closet/crate containername = "Spare PDA crate" group = "Supply" - contains = list(/obj/item/device/pda, - /obj/item/device/pda, - /obj/item/device/pda) + contains = list(/obj/item/device/pda = 3) /datum/supply_packs/randomised/dresses name = "Womens formal dress locker" @@ -1529,17 +1418,19 @@ var/list/all_supply_groups = list("Operations","Security","Hospitality","Enginee containertype = /obj/structure/closet cost = 15 num_contained = 3 - contains = list(/obj/item/clothing/under/wedding/bride_orange, - /obj/item/clothing/under/wedding/bride_purple, - /obj/item/clothing/under/wedding/bride_blue, - /obj/item/clothing/under/wedding/bride_red, - /obj/item/clothing/under/wedding/bride_white, - /obj/item/clothing/under/sundress, - /obj/item/clothing/under/dress/dress_green, - /obj/item/clothing/under/dress/dress_pink, - /obj/item/clothing/under/dress/dress_orange, - /obj/item/clothing/under/dress/dress_yellow, - /obj/item/clothing/under/dress/dress_saloon) + contains = list( + /obj/item/clothing/under/wedding/bride_orange, + /obj/item/clothing/under/wedding/bride_purple, + /obj/item/clothing/under/wedding/bride_blue, + /obj/item/clothing/under/wedding/bride_red, + /obj/item/clothing/under/wedding/bride_white, + /obj/item/clothing/under/sundress, + /obj/item/clothing/under/dress/dress_green, + /obj/item/clothing/under/dress/dress_pink, + /obj/item/clothing/under/dress/dress_orange, + /obj/item/clothing/under/dress/dress_yellow, + /obj/item/clothing/under/dress/dress_saloon + ) group = "Miscellaneous" /datum/supply_packs/painters @@ -1548,20 +1439,20 @@ var/list/all_supply_groups = list("Operations","Security","Hospitality","Enginee containername = "station painting supplies crate" containertype = /obj/structure/closet/crate group = "Engineering" - contains = list(/obj/item/device/pipe_painter, - /obj/item/device/pipe_painter, - /obj/item/device/floor_painter, - /obj/item/device/floor_painter) - + contains = list( + /obj/item/device/pipe_painter = 2, + /obj/item/device/floor_painter = 2, + /obj/item/device/closet_painter = 2 + ) /datum/supply_packs/randomised/exosuit_mod num_contained = 1 contains = list( - /obj/item/device/kit/paint/ripley, - /obj/item/device/kit/paint/ripley/death, - /obj/item/device/kit/paint/ripley/flames_red, - /obj/item/device/kit/paint/ripley/flames_blue - ) + /obj/item/device/kit/paint/ripley, + /obj/item/device/kit/paint/ripley/death, + /obj/item/device/kit/paint/ripley/flames_red, + /obj/item/device/kit/paint/ripley/flames_blue + ) name = "Random APLU modkit" cost = 200 containertype = /obj/structure/closet/crate @@ -1570,32 +1461,29 @@ var/list/all_supply_groups = list("Operations","Security","Hospitality","Enginee /datum/supply_packs/randomised/exosuit_mod/durand contains = list( - /obj/item/device/kit/paint/durand, - /obj/item/device/kit/paint/durand/seraph, - /obj/item/device/kit/paint/durand/phazon - ) + /obj/item/device/kit/paint/durand, + /obj/item/device/kit/paint/durand/seraph, + /obj/item/device/kit/paint/durand/phazon + ) name = "Random Durand exosuit modkit" /datum/supply_packs/randomised/exosuit_mod/gygax contains = list( - /obj/item/device/kit/paint/gygax, - /obj/item/device/kit/paint/gygax/darkgygax, - /obj/item/device/kit/paint/gygax/recitence - ) + /obj/item/device/kit/paint/gygax, + /obj/item/device/kit/paint/gygax/darkgygax, + /obj/item/device/kit/paint/gygax/recitence + ) name = "Random Gygax exosuit modkit" /datum/supply_packs/engineeringvoidsuits name = "Engineering voidsuits" - contains = list(/obj/item/clothing/suit/space/void/engineering, - /obj/item/clothing/suit/space/void/engineering, - /obj/item/clothing/head/helmet/space/void/engineering, - /obj/item/clothing/head/helmet/space/void/engineering, - /obj/item/clothing/mask/breath, - /obj/item/clothing/mask/breath, - /obj/item/clothing/shoes/magboots, - /obj/item/clothing/shoes/magboots, - /obj/item/weapon/tank/oxygen, - /obj/item/weapon/tank/oxygen) + contains = list( + /obj/item/clothing/suit/space/void/engineering = 2, + /obj/item/clothing/head/helmet/space/void/engineering = 2, + /obj/item/clothing/mask/breath = 2, + /obj/item/clothing/shoes/magboots = 2, + /obj/item/weapon/tank/oxygen = 2 + ) cost = 40 containertype = "/obj/structure/closet/crate/secure" containername = "Engineering voidsuit crate" @@ -1604,16 +1492,13 @@ var/list/all_supply_groups = list("Operations","Security","Hospitality","Enginee /datum/supply_packs/atmosvoidsuits name = "Atmospheric voidsuits" - contains = list(/obj/item/clothing/suit/space/void/atmos, - /obj/item/clothing/suit/space/void/atmos, - /obj/item/clothing/head/helmet/space/void/atmos, - /obj/item/clothing/head/helmet/space/void/atmos, - /obj/item/clothing/mask/breath, - /obj/item/clothing/mask/breath, - /obj/item/clothing/shoes/magboots, - /obj/item/clothing/shoes/magboots, - /obj/item/weapon/tank/oxygen, - /obj/item/weapon/tank/oxygen) + contains = list( + /obj/item/clothing/suit/space/void/atmos = 2, + /obj/item/clothing/head/helmet/space/void/atmos = 2, + /obj/item/clothing/mask/breath = 2, + /obj/item/clothing/shoes/magboots = 2, + /obj/item/weapon/tank/oxygen = 2, + ) cost = 45 containertype = "/obj/structure/closet/crate/secure" containername = "Atmospheric voidsuit crate" @@ -1622,14 +1507,12 @@ var/list/all_supply_groups = list("Operations","Security","Hospitality","Enginee /datum/supply_packs/miningvoidsuits name = "Mining voidsuits" - contains = list(/obj/item/clothing/suit/space/void/mining, - /obj/item/clothing/suit/space/void/mining, - /obj/item/clothing/head/helmet/space/void/mining, - /obj/item/clothing/head/helmet/space/void/mining, - /obj/item/clothing/mask/breath, - /obj/item/clothing/mask/breath, - /obj/item/weapon/tank/oxygen, - /obj/item/weapon/tank/oxygen) + contains = list( + /obj/item/clothing/suit/space/void/mining = 2, + /obj/item/clothing/head/helmet/space/void/mining = 2, + /obj/item/clothing/mask/breath = 2, + /obj/item/weapon/tank/oxygen = 2 + ) cost = 35 containertype = "/obj/structure/closet/crate/secure" containername = "Mining voidsuit crate" @@ -1639,10 +1522,15 @@ var/list/all_supply_groups = list("Operations","Security","Hospitality","Enginee /datum/supply_packs/randomised/webbing name = "Webbing crate" num_contained = 4 - contains = list(/obj/item/clothing/accessory/storage/black_vest, - /obj/item/clothing/accessory/storage/brown_vest, - /obj/item/clothing/accessory/storage/white_vest, - /obj/item/clothing/accessory/storage/webbing) + contains = list( + /obj/item/clothing/accessory/storage/black_vest, + /obj/item/clothing/accessory/storage/brown_vest, + /obj/item/clothing/accessory/storage/white_vest, + /obj/item/clothing/accessory/storage/black_drop_pouches, + /obj/item/clothing/accessory/storage/brown_drop_pouches, + /obj/item/clothing/accessory/storage/white_drop_pouches, + /obj/item/clothing/accessory/storage/webbing + ) cost = 15 containertype = "/obj/structure/closet/crate" containername = "Webbing crate" @@ -1650,16 +1538,13 @@ var/list/all_supply_groups = list("Operations","Security","Hospitality","Enginee /datum/supply_packs/securityvoidsuits name = "Security voidsuits" - contains = list(/obj/item/clothing/suit/space/void/security, - /obj/item/clothing/suit/space/void/security, - /obj/item/clothing/head/helmet/space/void/security, - /obj/item/clothing/head/helmet/space/void/security, - /obj/item/clothing/mask/breath, - /obj/item/clothing/mask/breath, - /obj/item/clothing/shoes/magboots, - /obj/item/clothing/shoes/magboots, - /obj/item/weapon/tank/oxygen, - /obj/item/weapon/tank/oxygen) + contains = list( + /obj/item/clothing/suit/space/void/security = 2, + /obj/item/clothing/head/helmet/space/void/security = 2, + /obj/item/clothing/mask/breath = 2, + /obj/item/clothing/shoes/magboots = 2, + /obj/item/weapon/tank/oxygen = 2 + ) cost = 55 containertype = "/obj/structure/closet/crate/secure" containername = "Security voidsuit crate" @@ -1669,10 +1554,12 @@ var/list/all_supply_groups = list("Operations","Security","Hospitality","Enginee /datum/supply_packs/randomised/holster name = "Holster crate" num_contained = 4 - contains = list(/obj/item/clothing/accessory/holster, - /obj/item/clothing/accessory/holster/armpit, - /obj/item/clothing/accessory/holster/waist, - /obj/item/clothing/accessory/holster/hip) + contains = list( + /obj/item/clothing/accessory/holster, + /obj/item/clothing/accessory/holster/armpit, + /obj/item/clothing/accessory/holster/waist, + /obj/item/clothing/accessory/holster/hip + ) cost = 15 containertype = "/obj/structure/closet/crate/secure" containername = "Holster crate" @@ -1681,16 +1568,13 @@ var/list/all_supply_groups = list("Operations","Security","Hospitality","Enginee /datum/supply_packs/medicalvoidsuits name = "Medical voidsuits" - contains = list(/obj/item/clothing/suit/space/void/medical, - /obj/item/clothing/suit/space/void/medical, - /obj/item/clothing/head/helmet/space/void/medical, - /obj/item/clothing/head/helmet/space/void/medical, - /obj/item/clothing/mask/breath, - /obj/item/clothing/mask/breath, - /obj/item/clothing/shoes/magboots, - /obj/item/clothing/shoes/magboots, - /obj/item/weapon/tank/oxygen, - /obj/item/weapon/tank/oxygen) + contains = list( + /obj/item/clothing/suit/space/void/medical = 2, + /obj/item/clothing/head/helmet/space/void/medical = 2, + /obj/item/clothing/mask/breath = 2, + /obj/item/clothing/shoes/magboots = 2, + /obj/item/weapon/tank/oxygen = 2 + ) cost = 40 containertype = "/obj/structure/closet/crate/secure" containername = "Medical voidsuit crate" @@ -1699,18 +1583,12 @@ var/list/all_supply_groups = list("Operations","Security","Hospitality","Enginee /datum/supply_packs/securityextragear name = "Security surplus equipment" - contains = list(/obj/item/weapon/storage/belt/security, - /obj/item/weapon/storage/belt/security, - /obj/item/weapon/storage/belt/security, - /obj/item/clothing/glasses/sunglasses/sechud, - /obj/item/clothing/glasses/sunglasses/sechud, - /obj/item/clothing/glasses/sunglasses/sechud, - /obj/item/device/radio/headset/headset_sec/alt, - /obj/item/device/radio/headset/headset_sec/alt, - /obj/item/device/radio/headset/headset_sec/alt, - /obj/item/clothing/suit/storage/hooded/wintercoat/security, - /obj/item/clothing/suit/storage/hooded/wintercoat/security, - /obj/item/clothing/suit/storage/hooded/wintercoat/security) + contains = list( + /obj/item/weapon/storage/belt/security = 3, + /obj/item/clothing/glasses/sunglasses/sechud = 3, + /obj/item/device/radio/headset/headset_sec/alt = 3, + /obj/item/clothing/suit/storage/hooded/wintercoat/security = 3 + ) cost = 25 containertype = "/obj/structure/closet/crate/secure" containername = "Security surplus equipment" @@ -1719,25 +1597,25 @@ var/list/all_supply_groups = list("Operations","Security","Hospitality","Enginee /datum/supply_packs/detectivegear name = "Forensic investigation equipment" - contains = list(/obj/item/weapon/storage/box/evidence, - /obj/item/weapon/storage/box/evidence, - /obj/item/clothing/suit/storage/vest/detective, - /obj/item/weapon/cartridge/detective, - /obj/item/device/radio/headset/headset_sec, - /obj/item/taperoll/police, - /obj/item/clothing/glasses/sunglasses, - /obj/item/device/camera, - /obj/item/weapon/folder/red, - /obj/item/weapon/folder/blue, - /obj/item/weapon/storage/belt/detective, - /obj/item/clothing/gloves/black, - /obj/item/device/taperecorder, - /obj/item/device/mass_spectrometer, - /obj/item/device/camera_film, - /obj/item/device/camera_film, - /obj/item/weapon/storage/photo_album, - /obj/item/device/reagent_scanner, - /obj/item/device/flashlight/maglight) + contains = list( + /obj/item/weapon/storage/box/evidence = 2, + /obj/item/clothing/suit/storage/vest/detective, + /obj/item/weapon/cartridge/detective, + /obj/item/device/radio/headset/headset_sec, + /obj/item/taperoll/police, + /obj/item/clothing/glasses/sunglasses, + /obj/item/device/camera, + /obj/item/weapon/folder/red, + /obj/item/weapon/folder/blue, + /obj/item/weapon/storage/belt/detective, + /obj/item/clothing/gloves/black, + /obj/item/device/taperecorder, + /obj/item/device/mass_spectrometer, + /obj/item/device/camera_film = 2, + /obj/item/weapon/storage/photo_album, + /obj/item/device/reagent_scanner, + /obj/item/device/flashlight/maglight + ) cost = 35 containertype = "/obj/structure/closet/crate/secure" containername = "Forensic equipment" @@ -1746,26 +1624,20 @@ var/list/all_supply_groups = list("Operations","Security","Hospitality","Enginee /datum/supply_packs/detectiveclothes name = "Investigation apparel" - contains = list(/obj/item/clothing/under/det/black, - /obj/item/clothing/under/det/black, - /obj/item/clothing/under/det/grey, - /obj/item/clothing/under/det/grey, - /obj/item/clothing/head/det/grey, - /obj/item/clothing/head/det/grey, - /obj/item/clothing/under/det, - /obj/item/clothing/under/det, - /obj/item/clothing/head/det, - /obj/item/clothing/head/det, - /obj/item/clothing/suit/storage/det_trench, - /obj/item/clothing/suit/storage/det_trench/grey, - /obj/item/clothing/suit/storage/forensics/red, - /obj/item/clothing/suit/storage/forensics/blue, - /obj/item/clothing/under/det/corporate, - /obj/item/clothing/under/det/corporate, - /obj/item/clothing/accessory/badge/holo/detective, - /obj/item/clothing/accessory/badge/holo/detective, - /obj/item/clothing/gloves/black, - /obj/item/clothing/gloves/black) + contains = list( + /obj/item/clothing/under/det/black = 2, + /obj/item/clothing/under/det/grey = 2, + /obj/item/clothing/head/det/grey = 2, + /obj/item/clothing/under/det = 2, + /obj/item/clothing/head/det = 2, + /obj/item/clothing/suit/storage/det_trench, + /obj/item/clothing/suit/storage/det_trench/grey, + /obj/item/clothing/suit/storage/forensics/red, + /obj/item/clothing/suit/storage/forensics/blue, + /obj/item/clothing/under/det/corporate = 2, + /obj/item/clothing/accessory/badge/holo/detective = 2, + /obj/item/clothing/gloves/black = 2 + ) cost = 20 containertype = "/obj/structure/closet/crate/secure" containername = "Investigation clothing" @@ -1774,27 +1646,29 @@ var/list/all_supply_groups = list("Operations","Security","Hospitality","Enginee /datum/supply_packs/officergear name = "Officer equipment" - contains = list(/obj/item/clothing/suit/storage/vest/officer, - /obj/item/clothing/head/helmet, - /obj/item/weapon/cartridge/security, - /obj/item/clothing/accessory/badge/holo, - /obj/item/clothing/accessory/badge/holo/cord, - /obj/item/device/radio/headset/headset_sec, - /obj/item/weapon/storage/belt/security, - /obj/item/device/flash, - /obj/item/weapon/reagent_containers/spray/pepper, - /obj/item/weapon/grenade/flashbang, - /obj/item/weapon/melee/baton/loaded, - /obj/item/clothing/glasses/sunglasses/sechud, - /obj/item/taperoll/police, - /obj/item/clothing/gloves/black, - /obj/item/device/hailer, - /obj/item/device/flashlight/flare, - /obj/item/clothing/accessory/storage/black_vest, - /obj/item/clothing/head/soft/sec/corp, - /obj/item/clothing/under/rank/security/corp, - /obj/item/weapon/gun/energy/taser, - /obj/item/device/flashlight/maglight) + contains = list( + /obj/item/clothing/suit/storage/vest/officer, + /obj/item/clothing/head/helmet, + /obj/item/weapon/cartridge/security, + /obj/item/clothing/accessory/badge/holo, + /obj/item/clothing/accessory/badge/holo/cord, + /obj/item/device/radio/headset/headset_sec, + /obj/item/weapon/storage/belt/security, + /obj/item/device/flash, + /obj/item/weapon/reagent_containers/spray/pepper, + /obj/item/weapon/grenade/flashbang, + /obj/item/weapon/melee/baton/loaded, + /obj/item/clothing/glasses/sunglasses/sechud, + /obj/item/taperoll/police, + /obj/item/clothing/gloves/black, + /obj/item/device/hailer, + /obj/item/device/flashlight/flare, + /obj/item/clothing/accessory/storage/black_vest, + /obj/item/clothing/head/soft/sec/corp, + /obj/item/clothing/under/rank/security/corp, + /obj/item/weapon/gun/energy/taser, + /obj/item/device/flashlight/maglight + ) cost = 30 containertype = "/obj/structure/closet/crate/secure" containername = "Officer equipment" @@ -1803,25 +1677,27 @@ var/list/all_supply_groups = list("Operations","Security","Hospitality","Enginee /datum/supply_packs/wardengear name = "Warden equipment" - contains = list(/obj/item/clothing/suit/storage/vest/warden, - /obj/item/clothing/under/rank/warden, - /obj/item/clothing/under/rank/warden/corp, - /obj/item/clothing/suit/armor/vest/warden, - /obj/item/clothing/suit/armor/vest/warden/alt, - /obj/item/clothing/head/helmet/warden, - /obj/item/weapon/cartridge/security, - /obj/item/device/radio/headset/headset_sec, - /obj/item/clothing/glasses/sunglasses/sechud, - /obj/item/taperoll/police, - /obj/item/device/hailer, - /obj/item/clothing/accessory/badge/holo/warden, - /obj/item/weapon/storage/box/flashbangs, - /obj/item/weapon/storage/belt/security, - /obj/item/weapon/reagent_containers/spray/pepper, - /obj/item/weapon/melee/baton/loaded, - /obj/item/weapon/storage/box/holobadge, - /obj/item/clothing/head/beret/sec/corporate/warden, - /obj/item/device/flashlight/maglight) + contains = list( + /obj/item/clothing/suit/storage/vest/warden, + /obj/item/clothing/under/rank/warden, + /obj/item/clothing/under/rank/warden/corp, + /obj/item/clothing/suit/armor/vest/warden, + /obj/item/clothing/suit/armor/vest/warden/alt, + /obj/item/clothing/head/helmet/warden, + /obj/item/weapon/cartridge/security, + /obj/item/device/radio/headset/headset_sec, + /obj/item/clothing/glasses/sunglasses/sechud, + /obj/item/taperoll/police, + /obj/item/device/hailer, + /obj/item/clothing/accessory/badge/holo/warden, + /obj/item/weapon/storage/box/flashbangs, + /obj/item/weapon/storage/belt/security, + /obj/item/weapon/reagent_containers/spray/pepper, + /obj/item/weapon/melee/baton/loaded, + /obj/item/weapon/storage/box/holobadge, + /obj/item/clothing/head/beret/sec/corporate/warden, + /obj/item/device/flashlight/maglight + ) cost = 45 containertype = "/obj/structure/closet/crate/secure" containername = "Warden equipment" @@ -1830,23 +1706,25 @@ var/list/all_supply_groups = list("Operations","Security","Hospitality","Enginee /datum/supply_packs/headofsecgear name = "Head of security equipment" - contains = list(/obj/item/clothing/head/helmet/HoS, - /obj/item/clothing/suit/storage/vest/hos, - /obj/item/clothing/under/rank/head_of_security/corp, - /obj/item/clothing/suit/armor/hos, - /obj/item/clothing/head/helmet/HoS/dermal, - /obj/item/weapon/cartridge/hos, - /obj/item/device/radio/headset/heads/hos, - /obj/item/clothing/glasses/sunglasses/sechud, - /obj/item/weapon/storage/belt/security, - /obj/item/device/flash, - /obj/item/device/hailer, - /obj/item/clothing/accessory/badge/holo/hos, - /obj/item/clothing/accessory/holster/waist, - /obj/item/weapon/melee/telebaton, - /obj/item/weapon/shield/riot/tele, - /obj/item/clothing/head/beret/sec/corporate/hos, - /obj/item/device/flashlight/maglight) + contains = list( + /obj/item/clothing/head/helmet/HoS, + /obj/item/clothing/suit/storage/vest/hos, + /obj/item/clothing/under/rank/head_of_security/corp, + /obj/item/clothing/suit/armor/hos, + /obj/item/clothing/head/helmet/HoS/dermal, + /obj/item/weapon/cartridge/hos, + /obj/item/device/radio/headset/heads/hos, + /obj/item/clothing/glasses/sunglasses/sechud, + /obj/item/weapon/storage/belt/security, + /obj/item/device/flash, + /obj/item/device/hailer, + /obj/item/clothing/accessory/badge/holo/hos, + /obj/item/clothing/accessory/holster/waist, + /obj/item/weapon/melee/telebaton, + /obj/item/weapon/shield/riot/tele, + /obj/item/clothing/head/beret/sec/corporate/hos, + /obj/item/device/flashlight/maglight + ) cost = 65 containertype = "/obj/structure/closet/crate/secure" containername = "Head of security equipment" @@ -1855,34 +1733,19 @@ var/list/all_supply_groups = list("Operations","Security","Hospitality","Enginee /datum/supply_packs/securityclothing name = "Security uniform crate" - contains = list(/obj/item/weapon/storage/backpack/satchel_sec, - /obj/item/weapon/storage/backpack/satchel_sec, - /obj/item/weapon/storage/backpack/security, - /obj/item/weapon/storage/backpack/security, - /obj/item/clothing/accessory/armband, - /obj/item/clothing/accessory/armband, - /obj/item/clothing/accessory/armband, - /obj/item/clothing/accessory/armband, - /obj/item/clothing/under/rank/security, - /obj/item/clothing/under/rank/security, - /obj/item/clothing/under/rank/security, - /obj/item/clothing/under/rank/security, - /obj/item/clothing/under/rank/security2, - /obj/item/clothing/under/rank/security2, - /obj/item/clothing/under/rank/security2, - /obj/item/clothing/under/rank/security2, - /obj/item/clothing/under/rank/warden, - /obj/item/clothing/under/rank/head_of_security, - /obj/item/clothing/suit/armor/hos/jensen, - /obj/item/clothing/head/soft/sec, - /obj/item/clothing/head/soft/sec, - /obj/item/clothing/head/soft/sec, - /obj/item/clothing/head/soft/sec, - /obj/item/clothing/gloves/black, - /obj/item/clothing/gloves/black, - /obj/item/clothing/gloves/black, - /obj/item/clothing/gloves/black, - /obj/item/weapon/storage/box/holobadge) + contains = list( + /obj/item/weapon/storage/backpack/satchel/sec = 2, + /obj/item/weapon/storage/backpack/security = 2, + /obj/item/clothing/accessory/armband = 4, + /obj/item/clothing/under/rank/security = 4, + /obj/item/clothing/under/rank/security2 = 4, + /obj/item/clothing/under/rank/warden, + /obj/item/clothing/under/rank/head_of_security, + /obj/item/clothing/suit/armor/hos/jensen, + /obj/item/clothing/head/soft/sec = 4, + /obj/item/clothing/gloves/black = 4, + /obj/item/weapon/storage/box/holobadge + ) cost = 20 containertype = "/obj/structure/closet/crate/secure" containername = "Security uniform crate" @@ -1891,33 +1754,21 @@ var/list/all_supply_groups = list("Operations","Security","Hospitality","Enginee /datum/supply_packs/navybluesecurityclothing name = "Navy blue security uniform crate" - contains = list(/obj/item/weapon/storage/backpack/satchel_sec, - /obj/item/weapon/storage/backpack/satchel_sec, - /obj/item/weapon/storage/backpack/security, - /obj/item/weapon/storage/backpack/security, - /obj/item/clothing/under/rank/security/navyblue, - /obj/item/clothing/under/rank/security/navyblue, - /obj/item/clothing/under/rank/security/navyblue, - /obj/item/clothing/under/rank/security/navyblue, - /obj/item/clothing/suit/security/navyofficer, - /obj/item/clothing/suit/security/navyofficer, - /obj/item/clothing/suit/security/navyofficer, - /obj/item/clothing/suit/security/navyofficer, - /obj/item/clothing/under/rank/warden/navyblue, - /obj/item/clothing/suit/security/navywarden, - /obj/item/clothing/under/rank/head_of_security/navyblue, - /obj/item/clothing/suit/security/navyhos, - /obj/item/clothing/head/beret/sec/navy/officer, - /obj/item/clothing/head/beret/sec/navy/officer, - /obj/item/clothing/head/beret/sec/navy/officer, - /obj/item/clothing/head/beret/sec/navy/officer, - /obj/item/clothing/head/beret/sec/navy/warden, - /obj/item/clothing/head/beret/sec/navy/hos, - /obj/item/clothing/gloves/black, - /obj/item/clothing/gloves/black, - /obj/item/clothing/gloves/black, - /obj/item/clothing/gloves/black, - /obj/item/weapon/storage/box/holobadge) + contains = list( + /obj/item/weapon/storage/backpack/satchel/sec = 2, + /obj/item/weapon/storage/backpack/security = 2, + /obj/item/clothing/under/rank/security/navyblue = 4, + /obj/item/clothing/suit/security/navyofficer = 4, + /obj/item/clothing/under/rank/warden/navyblue, + /obj/item/clothing/suit/security/navywarden, + /obj/item/clothing/under/rank/head_of_security/navyblue, + /obj/item/clothing/suit/security/navyhos, + /obj/item/clothing/head/beret/sec/navy/officer = 4, + /obj/item/clothing/head/beret/sec/navy/warden, + /obj/item/clothing/head/beret/sec/navy/hos, + /obj/item/clothing/gloves/black = 4, + /obj/item/weapon/storage/box/holobadge + ) cost = 20 containertype = "/obj/structure/closet/crate/secure" containername = "Navy blue security uniform crate" @@ -1926,33 +1777,20 @@ var/list/all_supply_groups = list("Operations","Security","Hospitality","Enginee /datum/supply_packs/corporatesecurityclothing name = "Corporate security uniform crate" - contains = list(/obj/item/weapon/storage/backpack/satchel_sec, - /obj/item/weapon/storage/backpack/satchel_sec, - /obj/item/weapon/storage/backpack/security, - /obj/item/weapon/storage/backpack/security, - /obj/item/clothing/under/rank/security/corp, - /obj/item/clothing/under/rank/security/corp, - /obj/item/clothing/under/rank/security/corp, - /obj/item/clothing/under/rank/security/corp, - /obj/item/clothing/head/soft/sec/corp, - /obj/item/clothing/head/soft/sec/corp, - /obj/item/clothing/head/soft/sec/corp, - /obj/item/clothing/head/soft/sec/corp, - /obj/item/clothing/under/rank/warden/corp, - /obj/item/clothing/under/rank/head_of_security/corp, - /obj/item/clothing/head/beret/sec, - /obj/item/clothing/head/beret/sec, - /obj/item/clothing/head/beret/sec, - /obj/item/clothing/head/beret/sec, - /obj/item/clothing/head/beret/sec/corporate/warden, - /obj/item/clothing/head/beret/sec/corporate/hos, - /obj/item/clothing/under/det/corporate, - /obj/item/clothing/under/det/corporate, - /obj/item/clothing/gloves/black, - /obj/item/clothing/gloves/black, - /obj/item/clothing/gloves/black, - /obj/item/clothing/gloves/black, - /obj/item/weapon/storage/box/holobadge) + contains = list( + /obj/item/weapon/storage/backpack/satchel/sec = 2, + /obj/item/weapon/storage/backpack/security = 2, + /obj/item/clothing/under/rank/security/corp = 4, + /obj/item/clothing/head/soft/sec/corp = 4, + /obj/item/clothing/under/rank/warden/corp, + /obj/item/clothing/under/rank/head_of_security/corp, + /obj/item/clothing/head/beret/sec = 4, + /obj/item/clothing/head/beret/sec/corporate/warden, + /obj/item/clothing/head/beret/sec/corporate/hos, + /obj/item/clothing/under/det/corporate = 2, + /obj/item/clothing/gloves/black = 4, + /obj/item/weapon/storage/box/holobadge + ) cost = 20 containertype = "/obj/structure/closet/crate/secure" containername = "Corporate security uniform crate" @@ -1961,13 +1799,15 @@ var/list/all_supply_groups = list("Operations","Security","Hospitality","Enginee /datum/supply_packs/securitybiosuit name = "Security biohazard gear" - contains = list(/obj/item/clothing/head/bio_hood/security, - /obj/item/clothing/under/rank/security, - /obj/item/clothing/suit/bio_suit/security, - /obj/item/clothing/shoes/white, - /obj/item/clothing/mask/gas, - /obj/item/weapon/tank/oxygen, - /obj/item/clothing/gloves/latex) + contains = list( + /obj/item/clothing/head/bio_hood/security, + /obj/item/clothing/under/rank/security, + /obj/item/clothing/suit/bio_suit/security, + /obj/item/clothing/shoes/white, + /obj/item/clothing/mask/gas, + /obj/item/weapon/tank/oxygen, + /obj/item/clothing/gloves/latex + ) cost = 35 containertype = "/obj/structure/closet/crate/secure" containername = "Security biohazard gear" @@ -1976,18 +1816,12 @@ var/list/all_supply_groups = list("Operations","Security","Hospitality","Enginee /datum/supply_packs/medicalextragear name = "Medical surplus equipment" - contains = list(/obj/item/weapon/storage/belt/medical, - /obj/item/weapon/storage/belt/medical, - /obj/item/weapon/storage/belt/medical, - /obj/item/clothing/glasses/hud/health, - /obj/item/clothing/glasses/hud/health, - /obj/item/clothing/glasses/hud/health, - /obj/item/device/radio/headset/headset_med/alt, - /obj/item/device/radio/headset/headset_med/alt, - /obj/item/device/radio/headset/headset_med/alt, - /obj/item/clothing/suit/storage/hooded/wintercoat/medical, - /obj/item/clothing/suit/storage/hooded/wintercoat/medical, - /obj/item/clothing/suit/storage/hooded/wintercoat/medical) + contains = list( + /obj/item/weapon/storage/belt/medical = 3, + /obj/item/clothing/glasses/hud/health = 3, + /obj/item/device/radio/headset/headset_med/alt = 3, + /obj/item/clothing/suit/storage/hooded/wintercoat/medical = 3 + ) cost = 15 containertype = "/obj/structure/closet/crate/secure" containername = "Medical surplus equipment" @@ -1996,21 +1830,23 @@ var/list/all_supply_groups = list("Operations","Security","Hospitality","Enginee /datum/supply_packs/cmogear name = "Chief medical officer equipment" - contains = list(/obj/item/weapon/storage/belt/medical, - /obj/item/device/radio/headset/heads/cmo, - /obj/item/clothing/under/rank/chief_medical_officer, - /obj/item/weapon/reagent_containers/hypospray, - /obj/item/clothing/accessory/stethoscope, - /obj/item/clothing/glasses/hud/health, - /obj/item/clothing/suit/storage/toggle/labcoat/cmo, - /obj/item/clothing/suit/storage/toggle/labcoat/cmoalt, - /obj/item/clothing/mask/surgical, - /obj/item/clothing/shoes/white, - /obj/item/weapon/cartridge/cmo, - /obj/item/clothing/gloves/latex, - /obj/item/device/healthanalyzer, - /obj/item/device/flashlight/pen, - /obj/item/weapon/reagent_containers/syringe) + contains = list( + /obj/item/weapon/storage/belt/medical, + /obj/item/device/radio/headset/heads/cmo, + /obj/item/clothing/under/rank/chief_medical_officer, + /obj/item/weapon/reagent_containers/hypospray, + /obj/item/clothing/accessory/stethoscope, + /obj/item/clothing/glasses/hud/health, + /obj/item/clothing/suit/storage/toggle/labcoat/cmo, + /obj/item/clothing/suit/storage/toggle/labcoat/cmoalt, + /obj/item/clothing/mask/surgical, + /obj/item/clothing/shoes/white, + /obj/item/weapon/cartridge/cmo, + /obj/item/clothing/gloves/latex, + /obj/item/device/healthanalyzer, + /obj/item/device/flashlight/pen, + /obj/item/weapon/reagent_containers/syringe + ) cost = 60 containertype = "/obj/structure/closet/crate/secure" containername = "Chief medical officer equipment" @@ -2019,20 +1855,22 @@ var/list/all_supply_groups = list("Operations","Security","Hospitality","Enginee /datum/supply_packs/doctorgear name = "Medical Doctor equipment" - contains = list(/obj/item/weapon/storage/belt/medical, - /obj/item/device/radio/headset/headset_med, - /obj/item/clothing/under/rank/medical, - /obj/item/clothing/accessory/stethoscope, - /obj/item/clothing/glasses/hud/health, - /obj/item/clothing/suit/storage/toggle/labcoat, - /obj/item/clothing/mask/surgical, - /obj/item/weapon/storage/firstaid/adv, - /obj/item/clothing/shoes/white, - /obj/item/weapon/cartridge/medical, - /obj/item/clothing/gloves/latex, - /obj/item/device/healthanalyzer, - /obj/item/device/flashlight/pen, - /obj/item/weapon/reagent_containers/syringe) + contains = list( + /obj/item/weapon/storage/belt/medical, + /obj/item/device/radio/headset/headset_med, + /obj/item/clothing/under/rank/medical, + /obj/item/clothing/accessory/stethoscope, + /obj/item/clothing/glasses/hud/health, + /obj/item/clothing/suit/storage/toggle/labcoat, + /obj/item/clothing/mask/surgical, + /obj/item/weapon/storage/firstaid/adv, + /obj/item/clothing/shoes/white, + /obj/item/weapon/cartridge/medical, + /obj/item/clothing/gloves/latex, + /obj/item/device/healthanalyzer, + /obj/item/device/flashlight/pen, + /obj/item/weapon/reagent_containers/syringe + ) cost = 20 containertype = "/obj/structure/closet/crate/secure" containername = "Medical Doctor equipment" @@ -2041,20 +1879,22 @@ var/list/all_supply_groups = list("Operations","Security","Hospitality","Enginee /datum/supply_packs/chemistgear name = "Chemist equipment" - contains = list(/obj/item/weapon/storage/box/beakers, - /obj/item/device/radio/headset/headset_med, - /obj/item/weapon/storage/box/autoinjectors, - /obj/item/clothing/under/rank/chemist, - /obj/item/clothing/glasses/science, - /obj/item/clothing/suit/storage/toggle/labcoat/chemist, - /obj/item/clothing/mask/surgical, - /obj/item/clothing/shoes/white, - /obj/item/weapon/cartridge/chemistry, - /obj/item/clothing/gloves/latex, - /obj/item/weapon/reagent_containers/dropper, - /obj/item/device/healthanalyzer, - /obj/item/weapon/storage/box/pillbottles, - /obj/item/weapon/reagent_containers/syringe) + contains = list( + /obj/item/weapon/storage/box/beakers, + /obj/item/device/radio/headset/headset_med, + /obj/item/weapon/storage/box/autoinjectors, + /obj/item/clothing/under/rank/chemist, + /obj/item/clothing/glasses/science, + /obj/item/clothing/suit/storage/toggle/labcoat/chemist, + /obj/item/clothing/mask/surgical, + /obj/item/clothing/shoes/white, + /obj/item/weapon/cartridge/chemistry, + /obj/item/clothing/gloves/latex, + /obj/item/weapon/reagent_containers/dropper, + /obj/item/device/healthanalyzer, + /obj/item/weapon/storage/box/pillbottles, + /obj/item/weapon/reagent_containers/syringe + ) cost = 15 containertype = "/obj/structure/closet/crate/secure" containername = "Chemist equipment" @@ -2063,25 +1903,27 @@ var/list/all_supply_groups = list("Operations","Security","Hospitality","Enginee /datum/supply_packs/paramedicgear name = "Paramedic equipment" - contains = list(/obj/item/weapon/storage/belt/medical/emt, - /obj/item/device/radio/headset/headset_med, - /obj/item/clothing/under/rank/medical/black, - /obj/item/clothing/accessory/armband/medgreen, - /obj/item/clothing/glasses/hud/health, - /obj/item/clothing/suit/storage/toggle/labcoat/emt, - /obj/item/clothing/under/rank/medical/paramedic, - /obj/item/clothing/suit/storage/toggle/fr_jacket, - /obj/item/clothing/mask/gas, - /obj/item/clothing/under/rank/medical/paramedic, - /obj/item/clothing/accessory/stethoscope, - /obj/item/weapon/storage/firstaid/adv, - /obj/item/clothing/shoes/jackboots, - /obj/item/clothing/gloves/latex, - /obj/item/device/healthanalyzer, - /obj/item/weapon/cartridge/medical, - /obj/item/device/flashlight/pen, - /obj/item/weapon/reagent_containers/syringe, - /obj/item/clothing/accessory/storage/white_vest) + contains = list( + /obj/item/weapon/storage/belt/medical/emt, + /obj/item/device/radio/headset/headset_med, + /obj/item/clothing/under/rank/medical/black, + /obj/item/clothing/accessory/armband/medgreen, + /obj/item/clothing/glasses/hud/health, + /obj/item/clothing/suit/storage/toggle/labcoat/emt, + /obj/item/clothing/under/rank/medical/paramedic, + /obj/item/clothing/suit/storage/toggle/fr_jacket, + /obj/item/clothing/mask/gas, + /obj/item/clothing/under/rank/medical/paramedic, + /obj/item/clothing/accessory/stethoscope, + /obj/item/weapon/storage/firstaid/adv, + /obj/item/clothing/shoes/jackboots, + /obj/item/clothing/gloves/latex, + /obj/item/device/healthanalyzer, + /obj/item/weapon/cartridge/medical, + /obj/item/device/flashlight/pen, + /obj/item/weapon/reagent_containers/syringe, + /obj/item/clothing/accessory/storage/white_vest + ) cost = 20 containertype = "/obj/structure/closet/crate/secure" containername = "Paramedic equipment" @@ -2090,78 +1932,40 @@ var/list/all_supply_groups = list("Operations","Security","Hospitality","Enginee /datum/supply_packs/psychiatristgear name = "Psychiatrist equipment" - contains = list(/obj/item/clothing/under/rank/psych, - /obj/item/device/radio/headset/headset_med, - /obj/item/clothing/under/rank/psych/turtleneck, - /obj/item/clothing/shoes/laceup, - /obj/item/clothing/suit/storage/toggle/labcoat, - /obj/item/clothing/shoes/white, - /obj/item/weapon/clipboard, - /obj/item/weapon/folder/white, - /obj/item/weapon/pen, - /obj/item/weapon/cartridge/medical) + contains = list( + /obj/item/clothing/under/rank/psych, + /obj/item/device/radio/headset/headset_med, + /obj/item/clothing/under/rank/psych/turtleneck, + /obj/item/clothing/shoes/laceup, + /obj/item/clothing/suit/storage/toggle/labcoat, + /obj/item/clothing/shoes/white, + /obj/item/weapon/clipboard, + /obj/item/weapon/folder/white, + /obj/item/weapon/pen, + /obj/item/weapon/cartridge/medical + ) cost = 15 containertype = "/obj/structure/closet/crate/secure" containername = "Psychiatrist equipment" access = access_psychiatrist group = "Medical" -/* -/datum/supply_packs/geneticistgear - name = "Geneticist equipment" - contains = list(/obj/item/weapon/storage/belt/medical, - /obj/item/device/radio/headset/headset_medsci, - /obj/item/clothing/under/rank/geneticist, - /obj/item/clothing/accessory/stethoscope, - /obj/item/clothing/suit/storage/toggle/labcoat/genetics, - /obj/item/clothing/mask/surgical, - /obj/item/clothing/shoes/white, - /obj/item/clothing/gloves/latex, - /obj/item/weapon/cartridge/medical, - /obj/item/device/healthanalyzer, - /obj/item/device/flashlight/pen, - /obj/item/weapon/reagent_containers/syringe) - cost = 15 - containertype = "/obj/structure/closet/crate/secure" - containername = "Geneticist equipment" - access = access_genetics - group = "Medical" -*/ - /datum/supply_packs/medicalscrubs name = "Medical scrubs" - contains = list(/obj/item/clothing/shoes/white, - /obj/item/clothing/shoes/white, - /obj/item/clothing/shoes/white, - /obj/item/clothing/under/rank/medical/blue, - /obj/item/clothing/under/rank/medical/blue, - /obj/item/clothing/under/rank/medical/blue, - /obj/item/clothing/under/rank/medical/green, - /obj/item/clothing/under/rank/medical/green, - /obj/item/clothing/under/rank/medical/green, - /obj/item/clothing/under/rank/medical/purple, - /obj/item/clothing/under/rank/medical/purple, - /obj/item/clothing/under/rank/medical/purple, - /obj/item/clothing/under/rank/medical/black, - /obj/item/clothing/under/rank/medical/black, - /obj/item/clothing/under/rank/medical/black, - /obj/item/clothing/head/surgery, - /obj/item/clothing/head/surgery, - /obj/item/clothing/head/surgery, - /obj/item/clothing/head/surgery/purple, - /obj/item/clothing/head/surgery/purple, - /obj/item/clothing/head/surgery/purple, - /obj/item/clothing/head/surgery/blue, - /obj/item/clothing/head/surgery/blue, - /obj/item/clothing/head/surgery/blue, - /obj/item/clothing/head/surgery/green, - /obj/item/clothing/head/surgery/green, - /obj/item/clothing/head/surgery/green, - /obj/item/clothing/head/surgery/black, - /obj/item/clothing/head/surgery/black, - /obj/item/clothing/head/surgery/black, - /obj/item/weapon/storage/box/masks, - /obj/item/weapon/storage/box/gloves) + contains = list( + /obj/item/clothing/shoes/white = 3,, + /obj/item/clothing/under/rank/medical/blue = 3, + /obj/item/clothing/under/rank/medical/green = 3, + /obj/item/clothing/under/rank/medical/purple = 3, + /obj/item/clothing/under/rank/medical/black = 3, + /obj/item/clothing/head/surgery = 3, + /obj/item/clothing/head/surgery/purple = 3, + /obj/item/clothing/head/surgery/blue = 3, + /obj/item/clothing/head/surgery/green = 3, + /obj/item/clothing/head/surgery/black = 3, + /obj/item/weapon/storage/box/masks, + /obj/item/weapon/storage/box/gloves + ) cost = 15 containertype = "/obj/structure/closet/crate/secure" containername = "Medical scrubs crate" @@ -2170,15 +1974,16 @@ var/list/all_supply_groups = list("Operations","Security","Hospitality","Enginee /datum/supply_packs/autopsy name = "Autopsy equipment" - contains = list(/obj/item/weapon/folder/white, - /obj/item/device/camera, - /obj/item/device/camera_film, - /obj/item/device/camera_film, - /obj/item/weapon/autopsy_scanner, - /obj/item/weapon/scalpel, - /obj/item/weapon/storage/box/masks, - /obj/item/weapon/storage/box/gloves, - /obj/item/weapon/pen) + contains = list( + /obj/item/weapon/folder/white, + /obj/item/device/camera, + /obj/item/device/camera_film = 2, + /obj/item/weapon/autopsy_scanner, + /obj/item/weapon/scalpel, + /obj/item/weapon/storage/box/masks, + /obj/item/weapon/storage/box/gloves, + /obj/item/weapon/pen + ) cost = 20 containertype = "/obj/structure/closet/crate/secure" containername = "Autopsy equipment crate" @@ -2187,32 +1992,26 @@ var/list/all_supply_groups = list("Operations","Security","Hospitality","Enginee /datum/supply_packs/medicaluniforms name = "Medical uniforms" - contains = list(/obj/item/clothing/shoes/white, - /obj/item/clothing/shoes/white, - /obj/item/clothing/shoes/white, - /obj/item/clothing/under/rank/chief_medical_officer, - /obj/item/clothing/under/rank/geneticist, - /obj/item/clothing/under/rank/virologist, - /obj/item/clothing/under/rank/nursesuit, - /obj/item/clothing/under/rank/nurse, - /obj/item/clothing/under/rank/orderly, - /obj/item/clothing/under/rank/medical, - /obj/item/clothing/under/rank/medical, - /obj/item/clothing/under/rank/medical, - /obj/item/clothing/under/rank/medical/paramedic, - /obj/item/clothing/under/rank/medical/paramedic, - /obj/item/clothing/under/rank/medical/paramedic, - /obj/item/clothing/suit/storage/toggle/labcoat, - /obj/item/clothing/suit/storage/toggle/labcoat, - /obj/item/clothing/suit/storage/toggle/labcoat, - /obj/item/clothing/suit/storage/toggle/labcoat/cmo, - /obj/item/clothing/suit/storage/toggle/labcoat/emt, - /obj/item/clothing/suit/storage/toggle/labcoat/cmoalt, - /obj/item/clothing/suit/storage/toggle/labcoat/genetics, - /obj/item/clothing/suit/storage/toggle/labcoat/virologist, - /obj/item/clothing/suit/storage/toggle/labcoat/chemist, - /obj/item/weapon/storage/box/masks, - /obj/item/weapon/storage/box/gloves) + contains = list( + /obj/item/clothing/shoes/white = 3, + /obj/item/clothing/under/rank/chief_medical_officer, + /obj/item/clothing/under/rank/geneticist, + /obj/item/clothing/under/rank/virologist, + /obj/item/clothing/under/rank/nursesuit, + /obj/item/clothing/under/rank/nurse, + /obj/item/clothing/under/rank/orderly, + /obj/item/clothing/under/rank/medical = 3, + /obj/item/clothing/under/rank/medical/paramedic = 3, + /obj/item/clothing/suit/storage/toggle/labcoat = 3, + /obj/item/clothing/suit/storage/toggle/labcoat/cmo, + /obj/item/clothing/suit/storage/toggle/labcoat/emt, + /obj/item/clothing/suit/storage/toggle/labcoat/cmoalt, + /obj/item/clothing/suit/storage/toggle/labcoat/genetics, + /obj/item/clothing/suit/storage/toggle/labcoat/virologist, + /obj/item/clothing/suit/storage/toggle/labcoat/chemist, + /obj/item/weapon/storage/box/masks, + /obj/item/weapon/storage/box/gloves + ) cost = 15 containertype = "/obj/structure/closet/crate/secure" containername = "Medical uniform crate" @@ -2221,28 +2020,17 @@ var/list/all_supply_groups = list("Operations","Security","Hospitality","Enginee /datum/supply_packs/medicalbiosuits name = "Medical biohazard gear" - contains = list(/obj/item/clothing/head/bio_hood, - /obj/item/clothing/head/bio_hood, - /obj/item/clothing/head/bio_hood, - /obj/item/clothing/suit/bio_suit, - /obj/item/clothing/suit/bio_suit, - /obj/item/clothing/suit/bio_suit, - /obj/item/clothing/head/bio_hood/virology, - /obj/item/clothing/suit/bio_suit/virology, - /obj/item/clothing/suit/bio_suit/cmo, - /obj/item/clothing/head/bio_hood/cmo, - /obj/item/clothing/mask/gas, - /obj/item/clothing/mask/gas, - /obj/item/clothing/mask/gas, - /obj/item/clothing/mask/gas, - /obj/item/clothing/mask/gas, - /obj/item/weapon/tank/oxygen, - /obj/item/weapon/tank/oxygen, - /obj/item/weapon/tank/oxygen, - /obj/item/weapon/tank/oxygen, - /obj/item/weapon/tank/oxygen, - /obj/item/weapon/storage/box/masks, - /obj/item/weapon/storage/box/gloves) + contains = list( + /obj/item/clothing/head/bio_hood = 3, + /obj/item/clothing/suit/bio_suit = 3, + /obj/item/clothing/head/bio_hood/virology = 2, + /obj/item/clothing/suit/bio_suit/cmo, + /obj/item/clothing/head/bio_hood/cmo, + /obj/item/clothing/mask/gas = 5, + /obj/item/weapon/tank/oxygen = 5, + /obj/item/weapon/storage/box/masks, + /obj/item/weapon/storage/box/gloves + ) cost = 50 containertype = "/obj/structure/closet/crate/secure" containername = "Medical biohazard equipment" @@ -2251,13 +2039,7 @@ var/list/all_supply_groups = list("Operations","Security","Hospitality","Enginee /datum/supply_packs/portablefreezers name = "Portable freezers crate" - contains = list(/obj/item/weapon/storage/box/freezer, - /obj/item/weapon/storage/box/freezer, - /obj/item/weapon/storage/box/freezer, - /obj/item/weapon/storage/box/freezer, - /obj/item/weapon/storage/box/freezer, - /obj/item/weapon/storage/box/freezer, - /obj/item/weapon/storage/box/freezer) + contains = list(/obj/item/weapon/storage/box/freezer = 7) cost = 25 containertype = "/obj/structure/closet/crate/secure" containername = "Portable freezers" @@ -2266,21 +2048,23 @@ var/list/all_supply_groups = list("Operations","Security","Hospitality","Enginee /datum/supply_packs/minergear name = "Shaft miner equipment" - contains = list(/obj/item/weapon/storage/backpack/industrial, - /obj/item/weapon/storage/backpack/satchel_eng, - /obj/item/clothing/suit/storage/hooded/wintercoat/miner, - /obj/item/device/radio/headset/headset_cargo, - /obj/item/clothing/under/rank/miner, - /obj/item/clothing/gloves/black, - /obj/item/clothing/shoes/black, - /obj/item/device/analyzer, - /obj/item/weapon/storage/bag/ore, - /obj/item/device/flashlight/lantern, - /obj/item/weapon/shovel, - /obj/item/weapon/pickaxe, - /obj/item/weapon/mining_scanner, - /obj/item/clothing/glasses/material, - /obj/item/clothing/glasses/meson) + contains = list( + /obj/item/weapon/storage/backpack/industrial, + /obj/item/weapon/storage/backpack/satchel/eng, + /obj/item/clothing/suit/storage/hooded/wintercoat/miner, + /obj/item/device/radio/headset/headset_cargo, + /obj/item/clothing/under/rank/miner, + /obj/item/clothing/gloves/black, + /obj/item/clothing/shoes/black, + /obj/item/device/analyzer, + /obj/item/weapon/storage/bag/ore, + /obj/item/device/flashlight/lantern, + /obj/item/weapon/shovel, + /obj/item/weapon/pickaxe, + /obj/item/weapon/mining_scanner, + /obj/item/clothing/glasses/material, + /obj/item/clothing/glasses/meson + ) cost = 15 containertype = "/obj/structure/closet/crate/secure" containername = "Shaft miner equipment" @@ -2289,18 +2073,18 @@ var/list/all_supply_groups = list("Operations","Security","Hospitality","Enginee /datum/supply_packs/chaplaingear name = "Chaplain equipment" - contains = list(/obj/item/clothing/under/rank/chaplain, - /obj/item/clothing/shoes/black, - /obj/item/clothing/suit/nun, - /obj/item/clothing/head/nun_hood, - /obj/item/clothing/suit/chaplain_hoodie, - /obj/item/clothing/head/chaplain_hood, - /obj/item/clothing/suit/holidaypriest, - /obj/item/clothing/under/wedding/bride_white, - /obj/item/weapon/storage/backpack/cultpack, - /obj/item/weapon/storage/fancy/candle_box, - /obj/item/weapon/storage/fancy/candle_box, - /obj/item/weapon/storage/fancy/candle_box) + contains = list( + /obj/item/clothing/under/rank/chaplain, + /obj/item/clothing/shoes/black, + /obj/item/clothing/suit/nun, + /obj/item/clothing/head/nun_hood, + /obj/item/clothing/suit/chaplain_hoodie, + /obj/item/clothing/head/chaplain_hood, + /obj/item/clothing/suit/holidaypriest, + /obj/item/clothing/under/wedding/bride_white, + /obj/item/weapon/storage/backpack/cultpack, + /obj/item/weapon/storage/fancy/candle_box = 3 + ) cost = 10 containertype = "/obj/structure/closet/crate" containername = "Chaplain equipment crate" diff --git a/code/game/antagonist/antagonist.dm b/code/game/antagonist/antagonist.dm index e9d5ef71b5e..d91242ea8b5 100644 --- a/code/game/antagonist/antagonist.dm +++ b/code/game/antagonist/antagonist.dm @@ -63,13 +63,19 @@ var/list/global_objectives = list() // Universal objectives if any. var/list/candidates = list() // Potential candidates. var/list/faction_members = list() // Semi-antags (in-round revs, borer thralls) - + var/allow_latejoin = 0 //Determines whether or not the game mode will allow for the template to spawn try_latespawn // ID card stuff. var/default_access = list() var/id_type = /obj/item/weapon/card/id + var/antag_text = "You are an antagonist! Within the rules, \ + try to act as an opposing force to the crew. Further RP and try to make sure \ + other players have fun! If you are confused or at a loss, always adminhelp, \ + and before taking extreme actions, please try to also contact the administration! \ + Think through your actions and make the roleplay immersive! Please remember all \ + rules aside from those without explicit exceptions apply to antagonists." /datum/antagonist/New() ..() diff --git a/code/game/antagonist/antagonist_create.dm b/code/game/antagonist/antagonist_create.dm index 24cca9d6400..733ec3eda08 100644 --- a/code/game/antagonist/antagonist_create.dm +++ b/code/game/antagonist/antagonist_create.dm @@ -99,11 +99,14 @@ player.current << "[leader_welcome_text]" else player.current << "[welcome_text]" + if (config.objectives_disabled) + player.current << "[antag_text]" if((flags & ANTAG_HAS_NUKE) && !spawned_nuke) create_nuke() - show_objectives(player) + if (!config.objectives_disabled) + show_objectives(player) return 1 /datum/antagonist/proc/set_antag_name(var/mob/living/player) diff --git a/code/game/antagonist/antagonist_objectives.dm b/code/game/antagonist/antagonist_objectives.dm index 63597103781..5dc6c5f327a 100644 --- a/code/game/antagonist/antagonist_objectives.dm +++ b/code/game/antagonist/antagonist_objectives.dm @@ -46,8 +46,8 @@ round for everybody else.", "Ambitions", mind.ambitions) as null|message if(isnull(new_ambitions)) return - mind.ambitions = new_ambitions new_ambitions = sanitize(new_ambitions) + mind.ambitions = new_ambitions if(new_ambitions) src << "You've set your goal to be '[new_ambitions]'." else diff --git a/code/game/antagonist/outsider/ert.dm b/code/game/antagonist/outsider/ert.dm index 98a44442dc6..29ea3d27c10 100644 --- a/code/game/antagonist/outsider/ert.dm +++ b/code/game/antagonist/outsider/ert.dm @@ -7,6 +7,12 @@ var/datum/antagonist/ert/ert role_text = "Emergency Responder" role_text_plural = "Emergency Responders" welcome_text = "As member of the Emergency Response Team, you answer only to your leader and company officials." + antag_text = "You are an anti antagonist! Within the rules, \ + try to save the station and its inhabitants from the ongoing crisis. \ + Try to make sure other players have fun! If you are confused or at a loss, always adminhelp, \ + and before taking extreme actions, please try to also contact the administration! \ + Think through your actions and make the roleplay immersive! Please remember all \ + rules aside from those without explicit exceptions apply to the ERT." leader_welcome_text = "As leader of the Emergency Response Team, you answer only to the Company, and have authority to override the Captain where it is necessary to achieve your mission goals. It is recommended that you attempt to cooperate with the captain where possible, however." landmark_id = "Response Team" id_type = /obj/item/weapon/card/id/centcom/ERT @@ -41,6 +47,6 @@ var/datum/antagonist/ert/ert player.equip_to_slot_or_del(new /obj/item/clothing/shoes/swat(src), slot_shoes) player.equip_to_slot_or_del(new /obj/item/clothing/gloves/swat(src), slot_gloves) player.equip_to_slot_or_del(new /obj/item/clothing/glasses/sunglasses(src), slot_glasses) - + create_id(role_text, player) return 1 diff --git a/code/game/antagonist/outsider/mercenary.dm b/code/game/antagonist/outsider/mercenary.dm index 4c071130ad4..8e460d38b6a 100644 --- a/code/game/antagonist/outsider/mercenary.dm +++ b/code/game/antagonist/outsider/mercenary.dm @@ -39,7 +39,7 @@ var/datum/antagonist/mercenary/mercs player.equip_to_slot_or_del(new /obj/item/clothing/shoes/swat(player), slot_shoes) player.equip_to_slot_or_del(new /obj/item/clothing/gloves/swat(player), slot_gloves) if(player.backbag == 2) player.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack(player), slot_back) - if(player.backbag == 3) player.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/satchel_norm(player), slot_back) + if(player.backbag == 3) player.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/satchel/norm(player), slot_back) if(player.backbag == 4) player.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/satchel(player), slot_back) player.equip_to_slot_or_del(new /obj/item/weapon/storage/box/engineer(player.back), slot_in_backpack) player.equip_to_slot_or_del(new /obj/item/weapon/reagent_containers/pill/cyanide(player), slot_in_backpack) diff --git a/code/game/antagonist/outsider/wizard.dm b/code/game/antagonist/outsider/wizard.dm index ac8c0ef44db..14e5f900631 100644 --- a/code/game/antagonist/outsider/wizard.dm +++ b/code/game/antagonist/outsider/wizard.dm @@ -81,7 +81,7 @@ var/datum/antagonist/wizard/wizards wizard_mob.equip_to_slot_or_del(new /obj/item/clothing/suit/wizrobe(wizard_mob), slot_wear_suit) wizard_mob.equip_to_slot_or_del(new /obj/item/clothing/head/wizard(wizard_mob), slot_head) if(wizard_mob.backbag == 2) wizard_mob.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack(wizard_mob), slot_back) - if(wizard_mob.backbag == 3) wizard_mob.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/satchel_norm(wizard_mob), slot_back) + if(wizard_mob.backbag == 3) wizard_mob.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/satchel/norm(wizard_mob), slot_back) if(wizard_mob.backbag == 4) wizard_mob.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/satchel(wizard_mob), slot_back) wizard_mob.equip_to_slot_or_del(new /obj/item/weapon/storage/box(wizard_mob), slot_in_backpack) wizard_mob.equip_to_slot_or_del(new /obj/item/weapon/teleportation_scroll(wizard_mob), slot_r_store) @@ -98,7 +98,7 @@ var/datum/antagonist/wizard/wizards break if(!survivor) feedback_set_details("round_end_result","loss - wizard killed") - world << "The [(current_antagonists.len>1)?"[role_text_plural] have":"[role_text] has"] been killed by the crew! The Space Wizards Federation has been taught a lesson they will not soon forget!" + world << "The [(current_antagonists.len>1)?"[role_text_plural] have":"[role_text] has"] been killed by the crew!" //To batch-remove wizard spells. Linked to mind.dm. /mob/proc/spellremove() diff --git a/code/game/antagonist/station/renegade.dm b/code/game/antagonist/station/renegade.dm index b077977fd7a..887b3a1b3f2 100644 --- a/code/game/antagonist/station/renegade.dm +++ b/code/game/antagonist/station/renegade.dm @@ -3,31 +3,51 @@ var/datum/antagonist/renegade/renegades /datum/antagonist/renegade role_text = "Renegade" role_text_plural = "Renegades" - welcome_text = "Your own safety matters above all else, trust no one and kill anyone who gets in your way. However, armed as you are, now would be the perfect time to settle that score or grab that pair of yellow gloves you've been eyeing..." + welcome_text = "Something's going to go wrong today, you can just feel it. You're paranoid, you've got a gun, and you're going to survive." + antag_text = "You are a minor antagonist! Within the rules, \ + try to protect yourself and what's important to you. You aren't here to cause trouble, \ + you're just more willing (and equipped) to go to extremes to stop it than others are. \ + Your job is to somewhat oppose the other antagonists, should they threaten you, in ways that aren't quite legal themselves. \ + Try to make sure other players have fun! If you are confused or at a loss, always adminhelp, \ + and before taking extreme actions, please try to also contact the administration! \ + Think through your actions and make the roleplay immersive! Please remember all \ + rules aside from those without explicit exceptions apply to antagonists." + id = MODE_RENEGADE flags = ANTAG_SUSPICIOUS | ANTAG_IMPLANT_IMMUNE | ANTAG_RANDSPAWN | ANTAG_VOTABLE - hard_cap = 5 - hard_cap_round = 7 - + hard_cap = 8 hard_cap_round = 12 - initial_spawn_req = 3 - initial_spawn_target = 6 + initial_spawn_req = 2 + initial_spawn_target = 4 var/list/spawn_guns = list( - /obj/item/weapon/gun/energy/gun, /obj/item/weapon/gun/energy/laser, - /obj/item/weapon/gun/projectile, - /obj/item/weapon/gun/projectile/revolver/detective, - /obj/item/weapon/gun/projectile/automatic/c20r, - /obj/item/weapon/gun/projectile/deagle/camo, - /obj/item/weapon/gun/projectile/pistol, - /obj/item/weapon/silencer, - /obj/item/weapon/gun/projectile/shotgun/pump, - /obj/item/weapon/gun/projectile/shotgun/pump/combat, + /obj/item/weapon/gun/energy/captain, + /obj/item/weapon/gun/energy/lasercannon, + /obj/item/weapon/gun/energy/xray, + /obj/item/weapon/gun/energy/gun, + /obj/item/weapon/gun/energy/gun/burst, + /obj/item/weapon/gun/energy/gun/nuclear, + /obj/item/weapon/gun/energy/crossbow, + /obj/item/weapon/gun/energy/crossbow/largecrossbow, /obj/item/weapon/gun/projectile/automatic, /obj/item/weapon/gun/projectile/automatic/mini_uzi, - /obj/item/weapon/gun/energy/crossbow + /obj/item/weapon/gun/projectile/automatic/c20r, + /obj/item/weapon/gun/projectile/automatic/sts35, + /obj/item/weapon/gun/projectile/automatic/wt550, + /obj/item/weapon/gun/projectile/automatic/z8, + /obj/item/weapon/gun/projectile/colt/detective, + /obj/item/weapon/gun/projectile/sec/wood, + /obj/item/weapon/gun/projectile/silenced, + /obj/item/weapon/gun/projectile/pistol, + /obj/item/weapon/gun/projectile/revolver, + /obj/item/weapon/gun/projectile/shotgun/pump, + /obj/item/weapon/gun/projectile/shotgun/pump/combat, + /obj/item/weapon/gun/projectile/shotgun/doublebarrel, + list(/obj/item/weapon/gun/projectile/shotgun/doublebarrel/pellet, /obj/item/weapon/gun/projectile/shotgun/doublebarrel/sawn), + list(/obj/item/weapon/gun/projectile/deagle, /obj/item/weapon/gun/projectile/deagle/gold, /obj/item/weapon/gun/projectile/deagle/camo), + list(/obj/item/weapon/gun/projectile/revolver/detective, /obj/item/weapon/gun/projectile/revolver/deckard) ) /datum/antagonist/renegade/New() @@ -49,7 +69,19 @@ var/datum/antagonist/renegade/renegades return var/gun_type = pick(spawn_guns) + if(islist(gun_type)) + gun_type = pick(gun_type) var/obj/item/gun = new gun_type(get_turf(player)) + + // Attempt to put into a container. + if(player.equip_to_storage(gun)) + return + + // If that failed, attempt to put into any valid non-handslot + if(player.equip_to_appropriate_slot(gun)) + return + + // If that failed, then finally attempt to at least let the player carry the weapon player.put_in_hands(gun) diff --git a/code/game/gamemodes/changeling/absorbed_dna.dm b/code/game/gamemodes/changeling/absorbed_dna.dm index 2527f906975..bdf243b4125 100644 --- a/code/game/gamemodes/changeling/absorbed_dna.dm +++ b/code/game/gamemodes/changeling/absorbed_dna.dm @@ -3,10 +3,12 @@ var/datum/dna/dna var/speciesName var/list/languages + var/identifying_gender -/datum/absorbed_dna/New(var/newName, var/newDNA, var/newSpecies, var/newLanguages) +/datum/absorbed_dna/New(var/newName, var/newDNA, var/newSpecies, var/newLanguages, var/newIdentifying_Gender) ..() name = newName dna = newDNA speciesName = newSpecies languages = newLanguages + identifying_gender = newIdentifying_Gender \ No newline at end of file diff --git a/code/game/gamemodes/changeling/changeling_powers.dm b/code/game/gamemodes/changeling/changeling_powers.dm index 7e6563ca4b1..ae5ede15665 100644 --- a/code/game/gamemodes/changeling/changeling_powers.dm +++ b/code/game/gamemodes/changeling/changeling_powers.dm @@ -85,7 +85,7 @@ var/global/list/possible_changeling_IDs = list("Alpha","Beta","Gamma","Delta","E var/mob/living/carbon/human/H = src if(istype(H)) - var/datum/absorbed_dna/newDNA = new(H.real_name, H.dna, H.species.name, H.languages) + var/datum/absorbed_dna/newDNA = new(H.real_name, H.dna, H.species.name, H.languages, H.identifying_gender) absorbDNA(newDNA) return 1 diff --git a/code/game/gamemodes/changeling/powers/transform.dm b/code/game/gamemodes/changeling/powers/transform.dm index 793b3a42eaf..0eec3ed2135 100644 --- a/code/game/gamemodes/changeling/powers/transform.dm +++ b/code/game/gamemodes/changeling/powers/transform.dm @@ -39,6 +39,7 @@ H.b_type = "AB+" //For some reason we have two blood types on the mob. for(var/flavor in H.flavor_texts) //Nulls out flavor text, so we don't keep our previous mob's flavor. flavor = null + H.identifying_gender = chosen_dna.identifying_gender src.real_name = chosen_dna.name src.flavor_text = "" src.UpdateAppearance() diff --git a/code/game/gamemodes/cult/cult_items.dm b/code/game/gamemodes/cult/cult_items.dm index 83b124efc90..564fc4d004d 100644 --- a/code/game/gamemodes/cult/cult_items.dm +++ b/code/game/gamemodes/cult/cult_items.dm @@ -1,6 +1,6 @@ /obj/item/weapon/melee/cultblade name = "cult blade" - desc = "An arcane weapon wielded by the followers of Nar-Sie" + desc = "An arcane weapon wielded by the followers of Nar-Sie." icon_state = "cultblade" item_state = "cultblade" w_class = 4 @@ -56,7 +56,7 @@ /obj/item/clothing/suit/cultrobes name = "cult robes" - desc = "A set of armored robes worn by the followers of Nar-Sie" + desc = "A set of armored robes worn by the followers of Nar-Sie." icon_state = "cultrobes" item_state = "cultrobes" body_parts_covered = UPPER_TORSO|LOWER_TORSO|LEGS|ARMS @@ -74,7 +74,7 @@ /obj/item/clothing/suit/cultrobes/magusred name = "magus robes" - desc = "A set of armored robes worn by the followers of Nar-Sie" + desc = "A set of armored robes worn by the followers of Nar-Sie." icon_state = "magusred" item_state = "magusred" body_parts_covered = UPPER_TORSO|LOWER_TORSO|LEGS|FEET|ARMS|HANDS @@ -82,7 +82,7 @@ /obj/item/clothing/head/helmet/space/cult name = "cult helmet" - desc = "A space worthy helmet used by the followers of Nar-Sie" + desc = "A space worthy helmet used by the followers of Nar-Sie." icon_state = "cult_helmet" armor = list(melee = 60, bullet = 50, laser = 30, energy = 15, bomb = 30, bio = 30, rad = 30) siemens_coefficient = 0 @@ -94,7 +94,7 @@ name = "cult armour" icon_state = "cult_armour" item_state = "cult_armour" - desc = "A bulky suit of armour, bristling with spikes. It looks space proof." + desc = "A bulky suit of armour, bristling with spikes. It looks space-worthy." w_class = 3 allowed = list(/obj/item/weapon/book/tome,/obj/item/weapon/melee/cultblade,/obj/item/weapon/tank/emergency_oxygen,/obj/item/device/suit_cooling_unit) slowdown = 1 diff --git a/code/game/gamemodes/cult/cult_structures.dm b/code/game/gamemodes/cult/cult_structures.dm index 226df14bfbc..0f2c4d83b66 100644 --- a/code/game/gamemodes/cult/cult_structures.dm +++ b/code/game/gamemodes/cult/cult_structures.dm @@ -8,18 +8,18 @@ /obj/structure/cult/talisman name = "Altar" - desc = "A bloodstained altar dedicated to Nar-Sie" + desc = "A bloodstained altar dedicated to Nar-Sie." icon_state = "talismanaltar" /obj/structure/cult/forge name = "Daemon forge" - desc = "A forge used in crafting the unholy weapons used by the armies of Nar-Sie" + desc = "A forge used in crafting the unholy weapons used by the armies of Nar-Sie." icon_state = "forge" /obj/structure/cult/pylon name = "Pylon" - desc = "A floating crystal that hums with an unearthly energy" + desc = "A floating crystal that hums with an unearthly energy." icon_state = "pylon" var/isbroken = 0 light_range = 5 @@ -71,7 +71,7 @@ /obj/structure/cult/tome name = "Desk" - desc = "A desk covered in arcane manuscripts and tomes in unknown languages. Looking at the text makes your skin crawl" + desc = "A desk covered in arcane manuscripts and tomes in unknown languages. Looking at the text makes your skin crawl." icon_state = "tomealtar" //sprites for this no longer exist -Pete @@ -86,7 +86,7 @@ /obj/effect/gateway name = "gateway" - desc = "You're pretty sure that abyss is staring back" + desc = "You're pretty sure that abyss is staring back." icon = 'icons/obj/cult.dmi' icon_state = "hole" density = 1 diff --git a/code/game/gamemodes/cult/narsie.dm b/code/game/gamemodes/cult/narsie.dm index f746e702977..ea866ad8566 100644 --- a/code/game/gamemodes/cult/narsie.dm +++ b/code/game/gamemodes/cult/narsie.dm @@ -143,7 +143,7 @@ var/global/list/narsie_list = list() /obj/singularity/narsie/proc/narsiefloor(var/turf/T)//leaving "footprints" if(!(istype(T, /turf/simulated/wall/cult)||istype(T, /turf/space))) if(T.icon_state != "cult-narsie") - T.desc = "something that goes beyond your understanding went this way" + T.desc = "something that goes beyond your understanding went this way." T.icon = 'icons/turf/flooring/cult.dmi' T.icon_state = "cult-narsie" T.set_light(1) diff --git a/code/game/gamemodes/cult/runes.dm b/code/game/gamemodes/cult/runes.dm index 4ecef5449a0..37445326cae 100644 --- a/code/game/gamemodes/cult/runes.dm +++ b/code/game/gamemodes/cult/runes.dm @@ -346,6 +346,7 @@ var/list/sacrificed = list() for(var/mob/observer/dead/O in loc) if(!O.client) continue if(O.mind && O.mind.current && O.mind.current.stat != DEAD) continue + if(!(O.client.prefs.be_special & BE_CULTIST)) continue ghost = O break @@ -442,6 +443,7 @@ var/list/sacrificed = list() if(!O.client) continue if(!O.MayRespawn()) continue if(O.mind && O.mind.current && O.mind.current.stat != DEAD) continue + if(!(O.client.prefs.be_special & BE_CULTIST)) continue ghost = O break if(!ghost) diff --git a/code/game/gamemodes/game_mode.dm b/code/game/gamemodes/game_mode.dm index a0be65c729f..2aa1d2b024a 100644 --- a/code/game/gamemodes/game_mode.dm +++ b/code/game/gamemodes/game_mode.dm @@ -201,7 +201,6 @@ var/global/list/additional_antag_types = list() display_roundstart_logout_report() spawn (rand(waittime_l, waittime_h)) - send_intercept() spawn(rand(100,150)) announce_ert_disabled() @@ -373,56 +372,6 @@ var/global/list/additional_antag_types = list() /datum/game_mode/proc/check_win() //universal trigger to be called at mob death, nuke explosion, etc. To be called from everywhere. return 0 -/datum/game_mode/proc/send_intercept() - - var/intercepttext = "Cent. Com. Update Requested status information:
" - intercepttext += " In case you have misplaced your copy, attached is a list of personnel whom reliable sources™ suspect may be affiliated with subversive elements:
" - - var/list/disregard_roles = list() - for(var/antag_type in all_antag_types) - var/datum/antagonist/antag = all_antag_types[antag_type] - if(antag.flags & ANTAG_SUSPICIOUS) - disregard_roles |= antag.role_text - - var/list/suspects = list() - for(var/mob/living/carbon/human/man in player_list) if(man.client && man.mind) - - // NT relation option - var/special_role = man.mind.special_role - var/datum/antagonist/special_role_data = get_antag_data(special_role) - - if (special_role in disregard_roles) - continue - else if(man.client.prefs.nanotrasen_relation == COMPANY_OPPOSED && prob(50) || \ - man.client.prefs.nanotrasen_relation == COMPANY_SKEPTICAL && prob(20)) - suspects += man - // Antags - else if(special_role_data && prob(special_role_data.suspicion_chance)) - suspects += man - - // Some poor people who were just in the wrong place at the wrong time.. - else if(prob(10)) - suspects += man - - for(var/mob/M in suspects) - if(player_is_antag(M.mind, only_offstation_roles = 1)) - continue - switch(rand(1, 100)) - if(1 to 50) - intercepttext += "Someone with the job of [M.mind.assigned_role]
" - else - intercepttext += "[M.name], the [M.mind.assigned_role]
" - - for (var/obj/machinery/computer/communications/comm in machines) - if (!(comm.stat & (BROKEN | NOPOWER)) && comm.prints_intercept) - var/obj/item/weapon/paper/intercept = new /obj/item/weapon/paper( comm.loc ) - intercept.name = "Cent. Com. Status Summary" - intercept.info = intercepttext - - comm.messagetitle.Add("Cent. Com. Status Summary") - comm.messagetext.Add(intercepttext) - world << sound('sound/AI/commandreport.ogg') - /datum/game_mode/proc/get_players_for_role(var/role, var/antag_id) var/list/players = list() var/list/candidates = list() @@ -567,25 +516,10 @@ proc/get_nt_opposed() if(dudes.len == 0) return null return pick(dudes) -//Announces objectives/generic antag text. -/proc/show_generic_antag_text(var/datum/mind/player) - if(player.current) - player.current << \ - "You are an antagonist! Within the rules, \ - try to act as an opposing force to the crew. Further RP and try to make sure \ - other players have fun! If you are confused or at a loss, always adminhelp, \ - and before taking extreme actions, please try to also contact the administration! \ - Think through your actions and make the roleplay immersive! Please remember all \ - rules aside from those without explicit exceptions apply to antagonists." - /proc/show_objectives(var/datum/mind/player) if(!player || !player.current) return - if(config.objectives_disabled) - show_generic_antag_text(player) - return - var/obj_count = 1 player.current << "Your current objectives:" for(var/datum/objective/objective in player.objectives) diff --git a/code/game/gamemodes/mixed/traitorrenegade.dm b/code/game/gamemodes/mixed/traitorrenegade.dm index c9430b10f9e..c69f67c02a0 100644 --- a/code/game/gamemodes/mixed/traitorrenegade.dm +++ b/code/game/gamemodes/mixed/traitorrenegade.dm @@ -3,9 +3,9 @@ round_description = "Subversive elements have invaded the station, and certain individuals are feeling uncertain about their safety." extended_round_description = "Traitors and renegades spawn during this round." config_tag = "traitorren" - required_players = 10 //I don't think we can have it lower and not need an ERT every round. + required_players = 11 //I don't think we can have it lower and not need an ERT every round. required_players_secret = 11 //I don't think we can have it lower and not need an ERT every round. required_enemies = 4 end_on_antag_death = 0 - antag_tags = list(MODE_TRAITOR, MODE_RENEGADE) - require_all_templates = 1 \ No newline at end of file + antag_tags = list(MODE_AUTOTRAITOR, MODE_RENEGADE) + require_all_templates = 1 diff --git a/code/game/gamemodes/mixed/visitors.dm b/code/game/gamemodes/mixed/visitors.dm index e9a59198191..853e5039d42 100644 --- a/code/game/gamemodes/mixed/visitors.dm +++ b/code/game/gamemodes/mixed/visitors.dm @@ -3,8 +3,8 @@ round_description = "A space wizard and a ninja have invaded the station!" extended_round_description = "A ninja and wizard spawn during this round." config_tag = "visitors" - required_players = 6 - required_players_secret = 6 + required_players = 8 + required_players_secret = 8 required_enemies = 2 end_on_antag_death = 0 antag_tags = list(MODE_WIZARD, MODE_NINJA) diff --git a/code/game/gamemodes/ninja/ninja.dm b/code/game/gamemodes/ninja/ninja.dm index d71412dc8a1..480c69d27fa 100644 --- a/code/game/gamemodes/ninja/ninja.dm +++ b/code/game/gamemodes/ninja/ninja.dm @@ -10,7 +10,7 @@ only hope this unknown assassin isn't here for you." config_tag = "ninja" required_players = 1 - required_players_secret = 8 + required_players_secret = 6 required_enemies = 1 end_on_antag_death = 0 antag_tags = list(MODE_NINJA) \ No newline at end of file diff --git a/code/game/gamemodes/wizard/wizard.dm b/code/game/gamemodes/wizard/wizard.dm index 0cc48203c57..9da98075f3c 100644 --- a/code/game/gamemodes/wizard/wizard.dm +++ b/code/game/gamemodes/wizard/wizard.dm @@ -4,7 +4,7 @@ extended_round_description = "A powerful entity capable of manipulating the elements around him, most commonly referred to as a 'wizard', has infiltrated the station. They have a wide variety of powers and spells available to them that makes your own simple moral self tremble with fear and excitement. Ultimately, their purpose is unknown. However, it is up to you and your crew to decide if their powers can be used for good or if their arrival foreshadows the destruction of the entire station." config_tag = "wizard" required_players = 1 - required_players_secret = 8 + required_players_secret = 6 required_enemies = 1 end_on_antag_death = 0 antag_tags = list(MODE_WIZARD) diff --git a/code/game/jobs/job/assistant.dm b/code/game/jobs/job/assistant.dm index 19a578b3553..ff87fb58e41 100644 --- a/code/game/jobs/job/assistant.dm +++ b/code/game/jobs/job/assistant.dm @@ -7,7 +7,7 @@ total_positions = -1 spawn_positions = -1 supervisors = "absolutely everyone" - selection_color = "#dddddd" + selection_color = "#515151" economic_modifier = 1 access = list() //See /datum/job/assistant/get_access() minimal_access = list() //See /datum/job/assistant/get_access() @@ -17,7 +17,7 @@ if(!H) return 0 switch(H.backbag) if(2) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack(H), slot_back) - if(3) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/satchel_norm(H), slot_back) + if(3) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/satchel/norm(H), slot_back) if(4) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/satchel(H), slot_back) if (H.mind.role_alt_title) switch(H.mind.role_alt_title) diff --git a/code/game/jobs/job/captain.dm b/code/game/jobs/job/captain.dm index 5f60ee90f55..d3a9246238e 100644 --- a/code/game/jobs/job/captain.dm +++ b/code/game/jobs/job/captain.dm @@ -10,7 +10,7 @@ var/datum/announcement/minor/captain_announcement = new(do_newscast = 1) total_positions = 1 spawn_positions = 1 supervisors = "company officials and Corporate Regulations" - selection_color = "#ccccff" + selection_color = "#1D1D4F" alt_titles = list("Station Administrator") idtype = /obj/item/weapon/card/id/gold req_admin_notify = 1 @@ -28,7 +28,7 @@ var/datum/announcement/minor/captain_announcement = new(do_newscast = 1) H.equip_to_slot_or_del(new /obj/item/device/radio/headset/heads/captain(H), slot_l_ear) switch(H.backbag) if(2) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/captain(H), slot_back) - if(3) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/satchel_cap(H), slot_back) + if(3) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/satchel/cap(H), slot_back) if(4) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/satchel(H), slot_back) var/obj/item/clothing/under/U = new /obj/item/clothing/under/rank/captain(H) if(H.age>49) @@ -63,7 +63,7 @@ var/datum/announcement/minor/captain_announcement = new(do_newscast = 1) total_positions = 1 spawn_positions = 1 supervisors = "the captain" - selection_color = "#ddddff" + selection_color = "#2F2F7F" idtype = /obj/item/weapon/card/id/silver req_admin_notify = 1 minimal_player_age = 10 @@ -91,7 +91,7 @@ var/datum/announcement/minor/captain_announcement = new(do_newscast = 1) H.equip_to_slot_or_del(new /obj/item/device/radio/headset/heads/hop(H), slot_l_ear) switch(H.backbag) if(2) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack(H), slot_back) - if(3) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/satchel_norm(H), slot_back) + if(3) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/satchel/norm(H), slot_back) if(4) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/satchel(H), slot_back) H.equip_to_slot_or_del(new /obj/item/clothing/under/rank/head_of_personnel(H), slot_w_uniform) H.equip_to_slot_or_del(new /obj/item/clothing/shoes/brown(H), slot_shoes) diff --git a/code/game/jobs/job/civilian.dm b/code/game/jobs/job/civilian.dm index 48769efa197..64dc22615ee 100644 --- a/code/game/jobs/job/civilian.dm +++ b/code/game/jobs/job/civilian.dm @@ -8,7 +8,7 @@ total_positions = 2 spawn_positions = 2 supervisors = "the head of personnel" - selection_color = "#dddddd" + selection_color = "#515151" access = list(access_hydroponics, access_bar, access_kitchen) minimal_access = list(access_bar) alt_titles = list("Barista") @@ -18,7 +18,7 @@ if(!H) return 0 switch(H.backbag) if(2) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack(H), slot_back) - if(3) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/satchel_norm(H), slot_back) + if(3) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/satchel/norm(H), slot_back) if(4) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/satchel(H), slot_back) H.equip_to_slot_or_del(new /obj/item/device/radio/headset/headset_service(H), slot_l_ear) H.equip_to_slot_or_del(new /obj/item/clothing/shoes/black(H), slot_shoes) @@ -37,7 +37,7 @@ total_positions = 2 spawn_positions = 2 supervisors = "the head of personnel" - selection_color = "#dddddd" + selection_color = "#515151" access = list(access_hydroponics, access_bar, access_kitchen) minimal_access = list(access_kitchen) alt_titles = list("Cook") @@ -64,7 +64,7 @@ total_positions = 2 spawn_positions = 1 supervisors = "the head of personnel" - selection_color = "#dddddd" + selection_color = "#515151" access = list(access_hydroponics, access_bar, access_kitchen) minimal_access = list(access_hydroponics) alt_titles = list("Hydroponicist") @@ -81,7 +81,7 @@ H.equip_to_slot_or_del(new /obj/item/device/pda/botanist(H), slot_belt) switch(H.backbag) if(2) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/hydroponics(H), slot_back) - if(3) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/satchel_hyd(H), slot_back) + if(3) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/satchel/hyd(H), slot_back) if(4) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/satchel(H), slot_back) return 1 @@ -97,7 +97,7 @@ total_positions = 1 spawn_positions = 1 supervisors = "the head of personnel" - selection_color = "#dddddd" + selection_color = "#515151" economic_modifier = 5 access = list(access_maint_tunnels, access_mailsorting, access_cargo, access_cargo_bot, access_qm, access_mining, access_mining_station) minimal_access = list(access_maint_tunnels, access_mailsorting, access_cargo, access_cargo_bot, access_qm, access_mining, access_mining_station) @@ -127,7 +127,7 @@ total_positions = 2 spawn_positions = 2 supervisors = "the quartermaster and the head of personnel" - selection_color = "#dddddd" + selection_color = "#515151" access = list(access_maint_tunnels, access_mailsorting, access_cargo, access_cargo_bot, access_qm, access_mining, access_mining_station) minimal_access = list(access_maint_tunnels, access_cargo, access_cargo_bot, access_mailsorting) @@ -152,7 +152,7 @@ total_positions = 3 spawn_positions = 3 supervisors = "the quartermaster and the head of personnel" - selection_color = "#dddddd" + selection_color = "#515151" economic_modifier = 5 access = list(access_maint_tunnels, access_mailsorting, access_cargo, access_cargo_bot, access_qm, access_mining, access_mining_station) minimal_access = list(access_mining, access_mining_station, access_mailsorting) @@ -163,7 +163,7 @@ H.equip_to_slot_or_del(new /obj/item/device/radio/headset/headset_cargo (H), slot_l_ear) switch(H.backbag) if(2) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/industrial(H), slot_back) - if(3) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/satchel_eng(H), slot_back) + if(3) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/satchel/eng(H), slot_back) if(4) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/satchel(H), slot_back) H.equip_to_slot_or_del(new /obj/item/clothing/under/rank/miner(H), slot_w_uniform) H.equip_to_slot_or_del(new /obj/item/device/pda/shaftminer(H), slot_belt) @@ -191,7 +191,7 @@ total_positions = 2 spawn_positions = 2 supervisors = "the head of personnel" - selection_color = "#dddddd" + selection_color = "#515151" access = list(access_janitor, access_maint_tunnels) minimal_access = list(access_janitor, access_maint_tunnels) alt_titles = list("Custodian") @@ -217,7 +217,7 @@ total_positions = 1 spawn_positions = 1 supervisors = "the head of personnel" - selection_color = "#dddddd" + selection_color = "#515151" access = list(access_library, access_maint_tunnels) minimal_access = list(access_library) alt_titles = list("Journalist") @@ -243,7 +243,7 @@ total_positions = 2 spawn_positions = 2 supervisors = "company officials and Corporate Regulations" - selection_color = "#dddddd" + selection_color = "#515151" economic_modifier = 7 access = list(access_lawyer, access_sec_doors, access_maint_tunnels, access_heads) minimal_access = list(access_lawyer, access_sec_doors, access_heads) @@ -254,7 +254,7 @@ H.equip_to_slot_or_del(new /obj/item/device/radio/headset/ia(H), slot_l_ear) switch(H.backbag) if(2) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack(H), slot_back) - if(3) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/satchel_norm(H), slot_back) + if(3) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/satchel/norm(H), slot_back) if(4) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/satchel(H), slot_back) H.equip_to_slot_or_del(new /obj/item/clothing/under/rank/internalaffairs(H), slot_w_uniform) H.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/toggle/internalaffairs(H), slot_wear_suit) diff --git a/code/game/jobs/job/civilian_chaplain.dm b/code/game/jobs/job/civilian_chaplain.dm index a9f441dd224..cf162c14949 100644 --- a/code/game/jobs/job/civilian_chaplain.dm +++ b/code/game/jobs/job/civilian_chaplain.dm @@ -8,7 +8,7 @@ total_positions = 1 spawn_positions = 1 supervisors = "the head of personnel" - selection_color = "#dddddd" + selection_color = "#515151" access = list(access_morgue, access_chapel_office, access_crematorium, access_maint_tunnels) minimal_access = list(access_morgue, access_chapel_office, access_crematorium) alt_titles = list("Counselor") diff --git a/code/game/jobs/job/engineering.dm b/code/game/jobs/job/engineering.dm index 15cae264ebd..707bab08995 100644 --- a/code/game/jobs/job/engineering.dm +++ b/code/game/jobs/job/engineering.dm @@ -8,7 +8,7 @@ total_positions = 1 spawn_positions = 1 supervisors = "the captain" - selection_color = "#ffeeaa" + selection_color = "#7F6E2C" idtype = /obj/item/weapon/card/id/silver req_admin_notify = 1 economic_modifier = 10 @@ -33,7 +33,7 @@ H.equip_to_slot_or_del(new /obj/item/device/radio/headset/heads/ce(H), slot_l_ear) switch(H.backbag) if(2) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/industrial(H), slot_back) - if(3) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/satchel_eng(H), slot_back) + if(3) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/satchel/eng(H), slot_back) if(4) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/satchel(H), slot_back) H.equip_to_slot_or_del(new /obj/item/clothing/under/rank/chief_engineer(H), slot_w_uniform) H.equip_to_slot_or_del(new /obj/item/device/pda/heads/ce(H), slot_l_store) @@ -58,7 +58,7 @@ total_positions = 5 spawn_positions = 5 supervisors = "the chief engineer" - selection_color = "#fff5cc" + selection_color = "#5B4D20" economic_modifier = 5 access = list(access_eva, access_engine, access_engine_equip, access_tech_storage, access_maint_tunnels, access_external_airlocks, access_construction, access_atmospherics) minimal_access = list(access_eva, access_engine, access_engine_equip, access_tech_storage, access_maint_tunnels, access_external_airlocks, access_construction) @@ -70,7 +70,7 @@ H.equip_to_slot_or_del(new /obj/item/device/radio/headset/headset_eng(H), slot_l_ear) switch(H.backbag) if(2) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/industrial(H), slot_back) - if(3) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/satchel_eng(H), slot_back) + if(3) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/satchel/eng(H), slot_back) if(4) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/satchel(H), slot_back) H.equip_to_slot_or_del(new /obj/item/clothing/under/rank/engineer(H), slot_w_uniform) H.equip_to_slot_or_del(new /obj/item/clothing/shoes/workboots(H), slot_shoes) @@ -95,7 +95,7 @@ total_positions = 3 spawn_positions = 2 supervisors = "the chief engineer" - selection_color = "#fff5cc" + selection_color = "#5B4D20" economic_modifier = 5 access = list(access_eva, access_engine, access_engine_equip, access_tech_storage, access_maint_tunnels, access_external_airlocks, access_construction, access_atmospherics, access_external_airlocks) minimal_access = list(access_eva, access_engine, access_atmospherics, access_maint_tunnels, access_emergency_storage, access_construction, access_external_airlocks) @@ -106,7 +106,7 @@ H.equip_to_slot_or_del(new /obj/item/device/radio/headset/headset_eng(H), slot_l_ear) switch(H.backbag) if(2) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack(H), slot_back) - if(3) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/satchel_norm(H), slot_back) + if(3) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/satchel/norm(H), slot_back) if(4) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/satchel(H), slot_back) H.equip_to_slot_or_del(new /obj/item/clothing/under/rank/atmospheric_technician(H), slot_w_uniform) H.equip_to_slot_or_del(new /obj/item/clothing/shoes/workboots(H), slot_shoes) diff --git a/code/game/jobs/job/job.dm b/code/game/jobs/job/job.dm index 3df95692477..2ae944adfda 100644 --- a/code/game/jobs/job/job.dm +++ b/code/game/jobs/job/job.dm @@ -31,7 +31,7 @@ /datum/job/proc/equip_backpack(var/mob/living/carbon/human/H) switch(H.backbag) if(2) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack(H), slot_back) - if(3) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/satchel_norm(H), slot_back) + if(3) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/satchel/norm(H), slot_back) if(4) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/satchel(H), slot_back) /datum/job/proc/equip_survival(var/mob/living/carbon/human/H) diff --git a/code/game/jobs/job/medical.dm b/code/game/jobs/job/medical.dm index 6bfd8c16cff..8a769df0b57 100644 --- a/code/game/jobs/job/medical.dm +++ b/code/game/jobs/job/medical.dm @@ -8,7 +8,7 @@ total_positions = 1 spawn_positions = 1 supervisors = "the captain" - selection_color = "#ffddf0" + selection_color = "#026865" idtype = /obj/item/weapon/card/id/silver req_admin_notify = 1 economic_modifier = 10 @@ -28,7 +28,7 @@ H.equip_to_slot_or_del(new /obj/item/device/radio/headset/heads/cmo(H), slot_l_ear) switch(H.backbag) if(2) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/medic(H), slot_back) - if(3) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/satchel_med(H), slot_back) + if(3) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/satchel/med(H), slot_back) if(4) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/satchel(H), slot_back) H.equip_to_slot_or_del(new /obj/item/clothing/under/rank/chief_medical_officer(H), slot_w_uniform) H.equip_to_slot_or_del(new /obj/item/clothing/shoes/brown(H), slot_shoes) @@ -47,7 +47,7 @@ total_positions = 5 spawn_positions = 3 supervisors = "the chief medical officer" - selection_color = "#ffeef0" + selection_color = "#013D3B" economic_modifier = 7 access = list(access_medical, access_medical_equip, access_morgue, access_surgery, access_chemistry, access_virology, access_genetics, access_eva) minimal_access = list(access_medical, access_medical_equip, access_morgue, access_surgery, access_virology, access_eva) @@ -60,7 +60,7 @@ H.equip_to_slot_or_del(new /obj/item/weapon/storage/firstaid/adv(H), slot_l_hand) switch(H.backbag) if(2) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/medic(H), slot_back) - if(3) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/satchel_med(H), slot_back) + if(3) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/satchel/med(H), slot_back) if(4) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/satchel(H), slot_back) if (H.mind.role_alt_title) switch(H.mind.role_alt_title) @@ -77,7 +77,7 @@ H.equip_to_slot_or_del(new /obj/item/clothing/mask/surgical(H), slot_wear_mask) switch(H.backbag) if(2) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/virology(H), slot_back) - if(3) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/satchel_vir(H), slot_back) + if(3) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/satchel/vir(H), slot_back) if(4) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/satchel(H), slot_back) if("Medical Doctor") H.equip_to_slot_or_del(new /obj/item/clothing/under/rank/medical(H), slot_w_uniform) @@ -110,7 +110,7 @@ total_positions = 2 spawn_positions = 2 supervisors = "the chief medical officer" - selection_color = "#ffeef0" + selection_color = "#013D3B" economic_modifier = 5 access = list(access_medical, access_medical_equip, access_morgue, access_surgery, access_chemistry, access_virology, access_genetics) minimal_access = list(access_medical, access_medical_equip, access_chemistry) @@ -125,7 +125,7 @@ H.equip_to_slot_or_del(new /obj/item/device/pda/chemist(H), slot_belt) switch(H.backbag) if(2) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/chemistry(H), slot_back) - if(3) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/satchel_chem(H), slot_back) + if(3) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/satchel/chem(H), slot_back) if(4) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/satchel(H), slot_back) H.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/toggle/labcoat/chemist(H), slot_wear_suit) return 1 @@ -141,7 +141,7 @@ total_positions = 0 spawn_positions = 0 supervisors = "the chief medical officer and research director" - selection_color = "#ffeef0" + selection_color = "#013D3B" economic_modifier = 7 access = list(access_medical, access_morgue, access_surgery, access_chemistry, access_virology, access_genetics, access_research) minimal_access = list(access_medical, access_morgue, access_genetics, access_research) @@ -154,7 +154,7 @@ H.equip_to_slot_or_del(new /obj/item/device/pda/geneticist(H), slot_belt) switch(H.backbag) if(2) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/genetics(H), slot_back) - if(3) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/satchel_gen(H), slot_back) + if(3) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/satchel/gen(H), slot_back) if(4) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/satchel(H), slot_back) H.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/toggle/labcoat/genetics(H), slot_wear_suit) H.equip_to_slot_or_del(new /obj/item/device/flashlight/pen(H), slot_s_store) @@ -171,7 +171,7 @@ spawn_positions = 1 economic_modifier = 5 supervisors = "the chief medical officer" - selection_color = "#ffeef0" + selection_color = "#013D3B" access = list(access_medical, access_medical_equip, access_morgue, access_psychiatrist) minimal_access = list(access_medical, access_medical_equip, access_psychiatrist) alt_titles = list("Psychologist") @@ -181,7 +181,7 @@ H.equip_to_slot_or_del(new /obj/item/device/radio/headset/headset_med(H), slot_l_ear) switch(H.backbag) if(2) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack(H), slot_back) - if(3) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/satchel_norm(H), slot_back) + if(3) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/satchel/norm(H), slot_back) if(4) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/satchel(H), slot_back) if (H.mind.role_alt_title) switch(H.mind.role_alt_title) @@ -205,7 +205,7 @@ total_positions = 2 spawn_positions = 2 supervisors = "the chief medical officer" - selection_color = "#ffeef0" + selection_color = "#013D3B" economic_modifier = 4 access = list(access_medical, access_medical_equip, access_morgue, access_surgery, access_chemistry, access_virology, access_eva, access_maint_tunnels, access_external_airlocks, access_psychiatrist) minimal_access = list(access_medical, access_medical_equip, access_morgue, access_eva, access_maint_tunnels, access_external_airlocks) @@ -218,7 +218,7 @@ H.equip_to_slot_or_del(new /obj/item/weapon/storage/firstaid/adv(H), slot_l_hand) switch(H.backbag) if(2) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/medic(H), slot_back) - if(3) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/satchel_med(H), slot_back) + if(3) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/satchel/med(H), slot_back) if(4) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/satchel(H), slot_back) if (H.mind.role_alt_title) switch(H.mind.role_alt_title) diff --git a/code/game/jobs/job/science.dm b/code/game/jobs/job/science.dm index b892ad228fa..99482457cce 100644 --- a/code/game/jobs/job/science.dm +++ b/code/game/jobs/job/science.dm @@ -8,7 +8,7 @@ total_positions = 1 spawn_positions = 1 supervisors = "the captain" - selection_color = "#ffddff" + selection_color = "#AD6BAD" idtype = /obj/item/weapon/card/id/silver req_admin_notify = 1 economic_modifier = 15 @@ -34,7 +34,7 @@ H.equip_to_slot_or_del(new /obj/item/weapon/clipboard(H), slot_l_hand) switch(H.backbag) if(2) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/toxins(H), slot_back) - if(3) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/satchel_tox(H), slot_back) + if(3) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/satchel/tox(H), slot_back) if(4) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/satchel(H), slot_back) H.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/toggle/labcoat(H), slot_wear_suit) return 1 @@ -50,7 +50,7 @@ total_positions = 5 spawn_positions = 3 supervisors = "the research director" - selection_color = "#ffeeff" + selection_color = "#633D63" economic_modifier = 7 access = list(access_robotics, access_tox, access_tox_storage, access_research, access_xenobiology, access_xenoarch) minimal_access = list(access_tox, access_tox_storage, access_research, access_xenoarch) @@ -66,7 +66,7 @@ H.equip_to_slot_or_del(new /obj/item/device/pda/science(H), slot_belt) switch(H.backbag) if(2) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/toxins(H), slot_back) - if(3) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/satchel_tox(H), slot_back) + if(3) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/satchel/tox(H), slot_back) if(4) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/satchel(H), slot_back) H.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/toggle/labcoat/science(H), slot_wear_suit) return 1 @@ -80,7 +80,7 @@ total_positions = 3 spawn_positions = 2 supervisors = "the research director" - selection_color = "#ffeeff" + selection_color = "#633D63" economic_modifier = 7 access = list(access_robotics, access_tox, access_tox_storage, access_research, access_xenobiology, access_hydroponics) minimal_access = list(access_research, access_xenobiology, access_hydroponics, access_tox_storage) @@ -96,7 +96,7 @@ H.equip_to_slot_or_del(new /obj/item/device/pda/science(H), slot_belt) switch(H.backbag) if(2) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/toxins(H), slot_back) - if(3) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/satchel_tox(H), slot_back) + if(3) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/satchel/tox(H), slot_back) if(4) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/satchel(H), slot_back) H.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/toggle/labcoat/science(H), slot_wear_suit) return 1 @@ -110,7 +110,7 @@ total_positions = 2 spawn_positions = 2 supervisors = "research director" - selection_color = "#ffeeff" + selection_color = "#633D63" economic_modifier = 5 access = list(access_robotics, access_tox, access_tox_storage, access_tech_storage, access_morgue, access_research) //As a job that handles so many corpses, it makes sense for them to have morgue access. minimal_access = list(access_robotics, access_tech_storage, access_morgue, access_research) //As a job that handles so many corpses, it makes sense for them to have morgue access. @@ -122,7 +122,7 @@ if(!H) return 0 H.equip_to_slot_or_del(new /obj/item/device/radio/headset/headset_sci(H), slot_l_ear) if(H.backbag == 2) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack(H), slot_back) - if(H.backbag == 3) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/satchel_norm(H), slot_back) + if(H.backbag == 3) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/satchel/norm(H), slot_back) H.equip_to_slot_or_del(new /obj/item/clothing/under/rank/roboticist(H), slot_w_uniform) H.equip_to_slot_or_del(new /obj/item/clothing/shoes/black(H), slot_shoes) H.equip_to_slot_or_del(new /obj/item/device/pda/roboticist(H), slot_r_store) diff --git a/code/game/jobs/job/security.dm b/code/game/jobs/job/security.dm index ff13bf5cbfd..31884169f6c 100644 --- a/code/game/jobs/job/security.dm +++ b/code/game/jobs/job/security.dm @@ -8,7 +8,7 @@ total_positions = 1 spawn_positions = 1 supervisors = "the captain" - selection_color = "#ffdddd" + selection_color = "#8E2929" idtype = /obj/item/weapon/card/id/silver req_admin_notify = 1 economic_modifier = 10 @@ -27,7 +27,7 @@ if(!H) return 0 switch(H.backbag) if(2) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/security(H), slot_back) - if(3) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/satchel_sec(H), slot_back) + if(3) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/satchel/sec(H), slot_back) if(4) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/satchel(H), slot_back) H.equip_to_slot_or_del(new /obj/item/device/radio/headset/heads/hos(H), slot_l_ear) H.equip_to_slot_or_del(new /obj/item/clothing/under/rank/head_of_security(H), slot_w_uniform) @@ -55,7 +55,7 @@ total_positions = 1 spawn_positions = 1 supervisors = "the head of security" - selection_color = "#ffeeee" + selection_color = "#601C1C" economic_modifier = 5 access = list(access_security, access_eva, access_sec_doors, access_brig, access_armory, access_maint_tunnels, access_morgue, access_external_airlocks) minimal_access = list(access_security, access_eva, access_sec_doors, access_brig, access_armory, access_maint_tunnels, access_external_airlocks) @@ -66,7 +66,7 @@ H.equip_to_slot_or_del(new /obj/item/device/radio/headset/headset_sec(H), slot_l_ear) switch(H.backbag) if(2) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/security(H), slot_back) - if(3) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/satchel_sec(H), slot_back) + if(3) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/satchel/sec(H), slot_back) if(4) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/satchel(H), slot_back) H.equip_to_slot_or_del(new /obj/item/clothing/under/rank/warden(H), slot_w_uniform) H.equip_to_slot_or_del(new /obj/item/clothing/shoes/jackboots(H), slot_shoes) @@ -92,7 +92,7 @@ total_positions = 2 spawn_positions = 2 supervisors = "the head of security" - selection_color = "#ffeeee" + selection_color = "#601C1C" alt_titles = list("Forensic Technician","Investigator") access = list(access_security, access_sec_doors, access_forensics_lockers, access_morgue, access_maint_tunnels, access_eva, access_external_airlocks) minimal_access = list(access_security, access_sec_doors, access_forensics_lockers, access_morgue, access_maint_tunnels, access_eva, access_external_airlocks) @@ -103,7 +103,7 @@ H.equip_to_slot_or_del(new /obj/item/device/radio/headset/headset_sec(H), slot_l_ear) switch(H.backbag) if(2) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack(H), slot_back) - if(3) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/satchel_norm(H), slot_back) + if(3) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/satchel/norm(H), slot_back) if(4) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/satchel(H), slot_back) H.equip_to_slot_or_del(new /obj/item/clothing/under/det(H), slot_w_uniform) H.equip_to_slot_or_del(new /obj/item/clothing/shoes/laceup(H), slot_shoes) @@ -134,7 +134,7 @@ total_positions = 4 spawn_positions = 4 supervisors = "the head of security" - selection_color = "#ffeeee" + selection_color = "#601C1C" alt_titles = list("Junior Officer") economic_modifier = 4 access = list(access_security, access_eva, access_sec_doors, access_brig, access_maint_tunnels, access_morgue, access_external_airlocks) @@ -145,7 +145,7 @@ H.equip_to_slot_or_del(new /obj/item/device/radio/headset/headset_sec(H), slot_l_ear) switch(H.backbag) if(2) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/security(H), slot_back) - if(3) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/satchel_sec(H), slot_back) + if(3) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/satchel/sec(H), slot_back) if(4) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/satchel(H), slot_back) H.equip_to_slot_or_del(new /obj/item/clothing/under/rank/security(H), slot_w_uniform) H.equip_to_slot_or_del(new /obj/item/clothing/shoes/jackboots(H), slot_shoes) diff --git a/code/game/jobs/job/silicon.dm b/code/game/jobs/job/silicon.dm index b64508499ca..fb9aeb793fd 100644 --- a/code/game/jobs/job/silicon.dm +++ b/code/game/jobs/job/silicon.dm @@ -5,7 +5,7 @@ faction = "Station" total_positions = 0 // Not used for AI, see is_position_available below and modules/mob/living/silicon/ai/latejoin.dm spawn_positions = 1 - selection_color = "#ccffcc" + selection_color = "#3F823F" supervisors = "your laws" req_admin_notify = 1 minimal_player_age = 7 @@ -38,7 +38,7 @@ total_positions = 2 spawn_positions = 2 supervisors = "your laws and the AI" //Nodrak - selection_color = "#ddffdd" + selection_color = "#254C25" minimal_player_age = 1 alt_titles = list("Robot", "Drone") account_allowed = 0 diff --git a/code/game/machinery/Sleeper.dm b/code/game/machinery/Sleeper.dm index 4b6ac3fd119..877dfa1065d 100644 --- a/code/game/machinery/Sleeper.dm +++ b/code/game/machinery/Sleeper.dm @@ -9,6 +9,7 @@ use_power = 1 idle_power_usage = 40 interact_offline = 1 + circuit = /obj/item/weapon/circuitboard/sleeper_console //obj/machinery/sleep_console/New() //..() @@ -32,8 +33,39 @@ /obj/machinery/sleep_console/attack_hand(var/mob/user) if(..()) return 1 + if(connected) + connected.ui_interact(user) - connected.ui_interact(user) +/obj/machinery/sleep_console/attackby(var/obj/item/I, var/mob/user) + if(istype(I, /obj/item/weapon/screwdriver) && circuit) + user << "You start disconnecting the monitor." + playsound(src.loc, 'sound/items/Screwdriver.ogg', 50, 1) + if(do_after(user, 20)) + var/obj/structure/frame/A = new /obj/structure/frame( src.loc ) + var/obj/item/weapon/circuitboard/M = new circuit( A ) + A.circuit = M + A.anchored = 1 + A.density = 1 + A.frame_type = M.board_type + for (var/obj/C in src) + C.forceMove(loc) + if (src.stat & BROKEN) + user << "The broken glass falls out." + new /obj/item/weapon/material/shard( src.loc ) + A.state = 3 + A.icon_state = "[A.frame_type]_3" + else + user << "You disconnect the monitor." + A.state = 4 + A.icon_state = "[A.frame_type]_4" + A.pixel_x = pixel_x + A.pixel_y = pixel_y + A.dir = dir + M.deconstruct(src) + qdel(src) + else + src.attack_hand(user) + return /obj/machinery/sleep_console/power_change() ..() @@ -49,6 +81,7 @@ icon_state = "sleeper_0" density = 1 anchored = 1 + circuit = /obj/item/weapon/circuitboard/sleeper var/mob/living/carbon/human/occupant = null var/list/available_chemicals = list("inaprovaline" = "Inaprovaline", "stoxin" = "Soporific", "paracetamol" = "Paracetamol", "anti_toxin" = "Dylovene", "dexalin" = "Dexalin") var/obj/item/weapon/reagent_containers/glass/beaker = null @@ -59,8 +92,29 @@ active_power_usage = 200 //builtin health analyzer, dialysis machine, injectors. /obj/machinery/sleeper/New() + ..() + spawn(5) + //src.machine = locate(/obj/machinery/mineral/processing_unit, get_step(src, machinedir)) + var/obj/machinery/sleep_console/C = locate(/obj/machinery/sleep_console) in range(2,src) + if(C) + C.connected = src + return + return + +/obj/machinery/sleeper/map/New() ..() beaker = new /obj/item/weapon/reagent_containers/glass/beaker/large(src) + circuit = new circuit(src) + component_parts = list() + component_parts += new /obj/item/weapon/stock_parts/scanning_module(src) + component_parts += new /obj/item/weapon/reagent_containers/glass/beaker(src) + component_parts += new /obj/item/weapon/reagent_containers/glass/beaker(src) + component_parts += new /obj/item/weapon/reagent_containers/glass/beaker(src) + component_parts += new /obj/item/weapon/reagent_containers/syringe(src) + component_parts += new /obj/item/weapon/reagent_containers/syringe(src) + component_parts += new /obj/item/weapon/reagent_containers/syringe(src) + component_parts += new /obj/item/stack/material/glass/reinforced(src, 2) + RefreshParts() /obj/machinery/sleeper/initialize() update_icon() @@ -156,6 +210,10 @@ return 1 /obj/machinery/sleeper/attackby(var/obj/item/I, var/mob/user) + if(default_deconstruction_screwdriver(user, I)) + return + if(default_deconstruction_crowbar(user, I)) + return add_fingerprint(user) if(istype(I, /obj/item/weapon/reagent_containers/glass)) if(!beaker) @@ -230,7 +288,9 @@ occupant.loc = loc occupant = null for(var/atom/movable/A in src) // In case an object was dropped inside or something - if(A == beaker) + if(A == beaker || A == circuit) + continue + if(A in component_parts) continue A.loc = loc update_use_power(1) diff --git a/code/game/machinery/adv_med.dm b/code/game/machinery/adv_med.dm index 5aa321ca415..90ff3f0d6b7 100644 --- a/code/game/machinery/adv_med.dm +++ b/code/game/machinery/adv_med.dm @@ -9,11 +9,31 @@ icon_state = "body_scanner_0" density = 1 anchored = 1 + circuit = /obj/item/weapon/circuitboard/body_scanner use_power = 1 idle_power_usage = 60 active_power_usage = 10000 //10 kW. It's a big all-body scanner. +/obj/machinery/bodyscanner/New() + ..() + spawn( 5 ) + var/obj/machinery/body_scanconsole/C = locate(/obj/machinery/body_scanconsole) in range(2,src) + if(C) + C.connected = src + return + return + +/obj/machinery/bodyscanner/map/New() + ..() + circuit = new circuit(src) + component_parts = list() + component_parts += new /obj/item/weapon/stock_parts/scanning_module(src) + component_parts += new /obj/item/weapon/stock_parts/scanning_module(src) + component_parts += new /obj/item/weapon/stock_parts/scanning_module(src) + component_parts += new /obj/item/stack/material/glass/reinforced(src, 2) + RefreshParts() + /obj/machinery/bodyscanner/relaymove(mob/user as mob) if (user.stat) return @@ -53,6 +73,10 @@ src.icon_state = "body_scanner_1" for(var/obj/O in src) //O = null + if(O in component_parts) + continue + if(O == circuit) + continue qdel(O) //Foreach goto(124) src.add_fingerprint(usr) @@ -62,6 +86,10 @@ if ((!( src.occupant ) || src.locked)) return for(var/obj/O in src) + if(O in component_parts) + continue + if(O == circuit) + continue O.loc = src.loc //Foreach goto(30) if (src.occupant.client) @@ -73,35 +101,50 @@ src.icon_state = "body_scanner_0" return -/obj/machinery/bodyscanner/attackby(obj/item/weapon/grab/G as obj, user as mob) - if ((!( istype(G, /obj/item/weapon/grab) ) || !( ismob(G.affecting) ))) +/obj/machinery/bodyscanner/attackby(var/obj/item/G, user as mob) + if(default_deconstruction_screwdriver(user, G)) return - if (src.occupant) - user << "The scanner is already occupied!" + if(default_deconstruction_crowbar(user, G)) return - if (G.affecting.abiotic()) - user << "Subject cannot have abiotic items on." - return - var/mob/M = G.affecting - if (M.client) - M.client.perspective = EYE_PERSPECTIVE - M.client.eye = src - M.loc = src - src.occupant = M - update_use_power(2) - src.icon_state = "body_scanner_1" - for(var/obj/O in src) - O.loc = src.loc - //Foreach goto(154) - src.add_fingerprint(user) - //G = null - qdel(G) + + if(istype(G, /obj/item/weapon/grab)) + var/obj/item/weapon/grab/H = G + if(!(ismob(H.affecting))) + return + if (src.occupant) + user << "The scanner is already occupied!" + return + if (H.affecting.abiotic()) + user << "Subject cannot have abiotic items on." + return + var/mob/M = H.affecting + if (M.client) + M.client.perspective = EYE_PERSPECTIVE + M.client.eye = src + M.loc = src + src.occupant = M + update_use_power(2) + src.icon_state = "body_scanner_1" + for(var/obj/O in src) + if(O in component_parts) + continue + if(O == circuit) + continue + O.loc = src.loc + //Foreach goto(154) + src.add_fingerprint(user) + //G = null + qdel(G) return /obj/machinery/bodyscanner/ex_act(severity) switch(severity) if(1.0) for(var/atom/movable/A as mob|obj in src) + if(A in component_parts) + continue + if(A == circuit) + continue A.loc = src.loc ex_act(severity) //Foreach goto(35) @@ -111,6 +154,10 @@ if(2.0) if (prob(50)) for(var/atom/movable/A as mob|obj in src) + if(A in component_parts) + continue + if(A == circuit) + continue A.loc = src.loc ex_act(severity) //Foreach goto(108) @@ -120,6 +167,10 @@ if(3.0) if (prob(25)) for(var/atom/movable/A as mob|obj in src) + if(A in component_parts) + continue + if(A == circuit) + continue A.loc = src.loc ex_act(severity) //Foreach goto(181) @@ -166,11 +217,12 @@ dir = 8 density = 0 anchored = 1 + circuit = /obj/item/weapon/circuitboard/scanner_console /obj/machinery/body_scanconsole/New() ..() spawn( 5 ) - src.connected = locate(/obj/machinery/bodyscanner, get_step(src, WEST)) //We assume dir = 8 so scanner is WEST. Other sprites do exist. + src.connected = locate(/obj/machinery/bodyscanner) in range(2,src) return return @@ -228,6 +280,36 @@ user << browse(dat, "window=scanconsole;size=430x600") return +/obj/machinery/body_scanconsole/attackby(var/obj/item/I, var/mob/user) + if(istype(I, /obj/item/weapon/screwdriver) && circuit) + user << "You start disconnecting the monitor." + playsound(src.loc, 'sound/items/Screwdriver.ogg', 50, 1) + if(do_after(user, 20)) + var/obj/structure/frame/A = new /obj/structure/frame( src.loc ) + var/obj/item/weapon/circuitboard/M = new circuit( A ) + A.circuit = M + A.anchored = 1 + A.density = 1 + A.frame_type = M.board_type + for (var/obj/C in src) + C.forceMove(loc) + if (src.stat & BROKEN) + user << "The broken glass falls out." + new /obj/item/weapon/material/shard( src.loc ) + A.state = 3 + A.icon_state = "[A.frame_type]_3" + else + user << "You disconnect the monitor." + A.state = 4 + A.icon_state = "[A.frame_type]_4" + A.pixel_x = pixel_x + A.pixel_y = pixel_y + A.dir = dir + M.deconstruct(src) + qdel(src) + else + src.attack_hand(user) + return /obj/machinery/body_scanconsole/Topic(href, href_list) if (..()) diff --git a/code/game/machinery/autolathe.dm b/code/game/machinery/autolathe.dm index 14512fb8391..051223d6fe4 100644 --- a/code/game/machinery/autolathe.dm +++ b/code/game/machinery/autolathe.dm @@ -23,12 +23,14 @@ var/datum/wires/autolathe/wires = null - /obj/machinery/autolathe/New() - ..() wires = new(src) + +/obj/machinery/autolathe/map/New() + ..() //Create parts for lathe. + circuit = new circuit(src) component_parts = list() component_parts += new /obj/item/weapon/stock_parts/matter_bin(src) component_parts += new /obj/item/weapon/stock_parts/matter_bin(src) diff --git a/code/game/machinery/autolathe_datums.dm b/code/game/machinery/autolathe_datums.dm index 244b74f17fc..4506854ed0d 100644 --- a/code/game/machinery/autolathe_datums.dm +++ b/code/game/machinery/autolathe_datums.dm @@ -32,6 +32,11 @@ path = /obj/item/weapon/reagent_containers/glass/bucket category = "General" +/datum/autolathe/recipe/bucket/drinkingglass + name = "drinking glass" + path = /obj/item/weapon/reagent_containers/food/drinks/drinkingglass + category = "General" + /datum/autolathe/recipe/flashlight name = "flashlight" path = /obj/item/device/flashlight @@ -226,26 +231,21 @@ path = /obj/item/weapon/circuitboard/fax category = "Engineering" -/datum/autolathe/recipe/conveyor - name = "conveyor electronics" - path = /obj/item/weapon/circuitboard/conveyor - category = "Engineering" - /datum/autolathe/recipe/microwave name = "microwave electronics" path = /obj/item/weapon/circuitboard/microwave category = "Engineering" -/datum/autolathe/recipe/vending - name = "vending machine electronics" - path = /obj/item/weapon/circuitboard/vending - category = "Engineering" - /datum/autolathe/recipe/washing name = "washing machine electronics" path = /obj/item/weapon/circuitboard/washing category = "Engineering" +/datum/autolathe/recipe/request + name = "request console electronics" + path = /obj/item/weapon/circuitboard/request + category = "Engineering" + /datum/autolathe/recipe/motor name = "motor" path = /obj/item/weapon/stock_parts/motor diff --git a/code/game/machinery/biogenerator.dm b/code/game/machinery/biogenerator.dm index 04a0e87c348..8122d49b334 100644 --- a/code/game/machinery/biogenerator.dm +++ b/code/game/machinery/biogenerator.dm @@ -21,8 +21,11 @@ var/datum/reagents/R = new/datum/reagents(1000) reagents = R R.my_atom = src - beaker = new /obj/item/weapon/reagent_containers/glass/bottle(src) +/obj/machinery/biogenerator/map/New() + ..() + beaker = new /obj/item/weapon/reagent_containers/glass/bottle(src) + circuit = new circuit(src) component_parts = list() component_parts += new /obj/item/weapon/stock_parts/matter_bin(src) component_parts += new /obj/item/weapon/stock_parts/manipulator(src) diff --git a/code/game/machinery/camera/presets.dm b/code/game/machinery/camera/presets.dm index 0b3121779f3..136bafa90ed 100644 --- a/code/game/machinery/camera/presets.dm +++ b/code/game/machinery/camera/presets.dm @@ -1,10 +1,10 @@ // PRESETS var/global/list/station_networks = list( - NETWORK_CAFE_DOCK, +// NETWORK_CAFE_DOCK, NETWORK_CARGO, NETWORK_CIVILIAN, - NETWORK_CIVILIAN_EAST, - NETWORK_CIVILIAN_WEST, +// NETWORK_CIVILIAN_EAST, +// NETWORK_CIVILIAN_WEST, NETWORK_COMMAND, NETWORK_ENGINE, NETWORK_ENGINEERING, @@ -29,8 +29,10 @@ var/global/list/engineering_networks = list( /obj/machinery/camera/network/crescent network = list(NETWORK_CRESCENT) +/* /obj/machinery/camera/network/cafe_dock network = list(NETWORK_CAFE_DOCK) +*/ /obj/machinery/camera/network/cargo network = list(NETWORK_CARGO) @@ -38,11 +40,13 @@ var/global/list/engineering_networks = list( /obj/machinery/camera/network/civilian network = list(NETWORK_CIVILIAN) +/* /obj/machinery/camera/network/civilian_east network = list(NETWORK_CIVILIAN_EAST) /obj/machinery/camera/network/civilian_west network = list(NETWORK_CIVILIAN_WEST) +*/ /obj/machinery/camera/network/command network = list(NETWORK_COMMAND) diff --git a/code/game/machinery/cell_charger.dm b/code/game/machinery/cell_charger.dm index 29ca91ab570..9ff0b2f894a 100644 --- a/code/game/machinery/cell_charger.dm +++ b/code/game/machinery/cell_charger.dm @@ -6,7 +6,7 @@ anchored = 1 use_power = 1 idle_power_usage = 5 - active_power_usage = 40000 //40 kW. (this the power drawn when charging) + active_power_usage = 60000 //60 kW. (this the power drawn when charging) power_channel = EQUIP var/obj/item/weapon/cell/charging = null var/chargelevel = -1 diff --git a/code/game/machinery/cloning.dm b/code/game/machinery/cloning.dm index 3f7a8d600ce..eed2d4d031f 100644 --- a/code/game/machinery/cloning.dm +++ b/code/game/machinery/cloning.dm @@ -45,8 +45,9 @@ var/eject_wait = 0 //Don't eject them as soon as they are created fuckkk var/biomass = CLONE_BIOMASS * 3 -/obj/machinery/clonepod/New() +/obj/machinery/clonepod/map/New() ..() + circuit = new circuit(src) component_parts = list() component_parts += new /obj/item/weapon/stock_parts/manipulator(src) component_parts += new /obj/item/weapon/stock_parts/manipulator(src) diff --git a/code/game/machinery/computer/guestpass.dm b/code/game/machinery/computer/guestpass.dm index cb07d373a8a..f0b763ed998 100644 --- a/code/game/machinery/computer/guestpass.dm +++ b/code/game/machinery/computer/guestpass.dm @@ -61,6 +61,7 @@ ..() uid = "[rand(100,999)]-G[rand(10,99)]" + /obj/machinery/computer/guestpass/attackby(obj/I, mob/user) if(istype(I, /obj/item/weapon/screwdriver) && circuit) user << "You start disconnecting the monitor." @@ -83,7 +84,7 @@ return if(istype(I, /obj/item/weapon/card/id)) if(!giver && user.unEquip(I)) - I.loc = src + I.forceMove(src) giver = I updateUsrDialog() else if(giver) diff --git a/code/game/machinery/computer/medical.dm b/code/game/machinery/computer/medical.dm index 3eee7615b37..3150003f46b 100644 --- a/code/game/machinery/computer/medical.dm +++ b/code/game/machinery/computer/medical.dm @@ -6,7 +6,7 @@ icon_keyboard = "med_key" icon_screen = "medcomp" light_color = "#315ab4" - req_one_access = list(access_medical, access_forensics_lockers) + req_one_access = list(access_medical, access_forensics_lockers, access_robotics) circuit = /obj/item/weapon/circuitboard/med_data var/obj/item/weapon/card/id/scan = null var/authenticated = null @@ -49,11 +49,11 @@ /obj/machinery/computer/med_data/attack_hand(mob/user as mob) if(..()) return - var/dat + var/dat = list() if (src.temp) - dat = text("[src.temp]

Clear Screen") + dat += text("[src.temp]

Clear Screen") else - dat = text("Confirm Identity: []
", src, (src.scan ? text("[]", src.scan.name) : "----------")) + dat += text("Confirm Identity: []
", src, (src.scan ? text("[]", src.scan.name) : "----------")) if (src.authenticated) switch(src.screen) if(1.0) @@ -85,8 +85,12 @@ if ((istype(src.active1, /datum/data/record) && data_core.general.Find(src.active1))) dat += "
NameRankActivity
" if(pref_mob.is_preference_enabled(client_pref.key)) - . += "" + . += "" else - . += "" + . += "" . += "" . += "
Name: [active1.fields["name"]] \ ID: [active1.fields["id"]]
\n \ - Sex: [active1.fields["sex"]]
\n \ - Age: [active1.fields["age"]]
\n \ + Sex: [active1.fields["sex"]]
\n" + if ((istype(src.active2, /datum/data/record) && data_core.medical.Find(src.active2))) + dat += "Gender identity: [active2.fields["id_gender"]]
" + else + dat += "Gender identity: Unknown
" + dat += "Age: [active1.fields["age"]]
\n \ Fingerprint: [active1.fields["fingerprint"]]
\n \ Physical Status: [active1.fields["p_stat"]]
\n \ Mental Status: [active1.fields["m_stat"]]
\ @@ -135,6 +139,7 @@ else else dat += text("{Log In}", src) + dat = jointext(dat,null) user << browse(text("Medical Records[]", dat), "window=med_rec") onclose(user, "med_rec") return @@ -249,10 +254,10 @@ src.active1.fields["fingerprint"] = t1 if("sex") if (istype(src.active1, /datum/data/record)) - if (src.active1.fields["sex"] == "Male") - src.active1.fields["sex"] = "Female" - else - src.active1.fields["sex"] = "Male" + src.active1.fields["sex"] = next_in_list(src.active1.fields["sex"], all_genders_text_list) + if("id_gender") + if (istype(src.active2, /datum/data/record)) + src.active2.fields["id_gender"] = next_in_list(src.active2.fields["id_gender"], all_genders_text_list) if("age") if (istype(src.active1, /datum/data/record)) var/t1 = input("Please input age:", "Med. records", src.active1.fields["age"], null) as num diff --git a/code/game/machinery/exonet_node.dm b/code/game/machinery/exonet_node.dm index f826bbafff4..23206a73e71 100644 --- a/code/game/machinery/exonet_node.dm +++ b/code/game/machinery/exonet_node.dm @@ -18,7 +18,7 @@ // Proc: New() // Parameters: None // Description: Adds components to the machine for deconstruction. -/obj/machinery/exonet_node/New() +/obj/machinery/exonet_node/map/New() ..() component_parts = list() diff --git a/code/game/machinery/frame.dm b/code/game/machinery/frame.dm index 35f0cf6af0c..a264df51f29 100644 --- a/code/game/machinery/frame.dm +++ b/code/game/machinery/frame.dm @@ -13,10 +13,13 @@ var/list/req_component_names = null var/list/alarms = list("firealarm", "airalarm", "intercom", "keycard") - var/list/machines = list("machine", "photocopier", "fax", "microwave", "conveyor", "vending", "recharger", "wrecharger", "washing", "grinder") - var/list/computers = list("computer", "holopad") - var/list/displays = list("display", "guestpass", "newscaster", "atm") - var/list/no_circuit = list("wrecharger", "recharger", "grinder","conveyor") + var/list/machines = list( + "machine", "photocopier", "fax", "microwave", "conveyor", "recharger", "wrecharger", + "washing", "grinder", "teleporter_hub", "teleporter_station", "medpod", "dna_analyzer", + "massdriver") + var/list/computers = list("computer", "holopad", "console") + var/list/displays = list("display", "guestpass", "newscaster", "atm", "request") + var/list/no_circuit = list("wrecharger", "recharger", "grinder", "conveyor", "massdriver") /obj/structure/frame/proc/update_desc() var/D @@ -35,15 +38,16 @@ req_components[A] = circuit.req_components[A] req_component_names = circuit.req_components.Copy() for(var/A in req_components) - var/cp = text2path(A) - var/obj/ct = new cp() // have to quickly instantiate it get name - req_component_names[A] = ct.name + var/obj/ct = A + req_component_names[A] = initial(ct.name) /obj/structure/frame/New(var/loc, var/dir, var/building = 0, var/obj/item/frame/frame_type, mob/user as mob) ..() if(building) src.frame_type = frame_type icon_state = "[frame_type]_0" + if(dir) + src.set_dir(dir) if(frame_type in alarms) if(loc) @@ -69,7 +73,7 @@ if(loc) src.loc = loc - if(frame_type == "display" || frame_type == "atm") + if(frame_type == "display" || frame_type == "atm" || frame_type == "request") pixel_x = (dir & 3)? 0 : (dir == 4 ? -32 : 32) pixel_y = (dir & 3)? (dir == 1 ? -32 : 32) : 0 @@ -104,8 +108,8 @@ circuit = new /obj/item/weapon/circuitboard/grinder(src) if(frame_type == "conveyor") circuit = new /obj/item/weapon/circuitboard/conveyor(src) - if(dir) - src.set_dir(dir) + if(frame_type == "massdriver") + circuit = new /obj/item/weapon/circuitboard/mass_driver(src) if(frame_type == "computer") density = 1 @@ -214,12 +218,25 @@ if(component_check) playsound(src.loc, 'sound/items/Screwdriver.ogg', 50, 1) var/obj/machinery/new_machine = new src.circuit.build_path(src.loc, src.dir) - if(!new_machine.component_parts) - for(var/obj/O in src.components) - O.forceMove(null) - new_machine.RefreshParts() + if(new_machine.component_parts) + new_machine.component_parts.Cut() + else + new_machine.component_parts = list() src.circuit.construct(new_machine) + + for(var/obj/O in src.components) + if(circuit.contain_parts) + O.loc = new_machine + else + O.loc = null + new_machine.component_parts += O + + circuit.loc = null + new_machine.circuit = circuit + + new_machine.RefreshParts() + new_machine.pixel_x = src.pixel_x new_machine.pixel_y = src.pixel_y qdel(src) @@ -243,6 +260,7 @@ var/obj/machinery/B = new src.circuit.build_path ( src.loc ) B.pixel_x = src.pixel_x B.pixel_y = src.pixel_y + B.set_dir(dir) src.circuit.construct(B) qdel(src) return @@ -253,6 +271,7 @@ var/obj/machinery/B = new src.circuit.build_path ( src.loc ) B.pixel_x = src.pixel_x B.pixel_y = src.pixel_y + B.set_dir(dir) src.circuit.construct(B) qdel(src) return @@ -386,13 +405,13 @@ if(state == 3) if(frame_type in machines) for(var/I in req_components) - if(istype(P, text2path(I)) && (req_components[I] > 0)) + if(istype(P, I) && (req_components[I] > 0)) playsound(src.loc, 'sound/items/Deconstruct.ogg', 50, 1) - if(istype(P, /obj/item/stack)) - var/obj/item/stack/CP = P + if(istype(P, /obj/item/stack/cable_coil)) + var/obj/item/stack/cable_coil/CP = P if(CP.get_amount() > 1) var/camt = min(CP.amount, req_components[I]) // amount of cable to take, idealy amount required, but limited by amount provided - var/obj/item/stack/CC = new /obj/item/stack(src) + var/obj/item/stack/cable_coil/CC = new /obj/item/stack/cable_coil(src) CC.amount = camt CC.update_icon() CP.use(camt) @@ -400,6 +419,20 @@ req_components[I] -= camt update_desc() break + + if(istype(P, /obj/item/stack/material/glass/reinforced)) + var/obj/item/stack/material/glass/reinforced/CP = P + if(CP.get_amount() > 1) + var/camt = min(CP.amount, req_components[I]) // amount of cable to take, idealy amount required, but limited by amount provided + var/obj/item/stack/material/glass/reinforced/CC = new /obj/item/stack/material/glass/reinforced(src) + CC.amount = camt + CC.update_icon() + CP.use(camt) + components += CC + req_components[I] -= camt + update_desc() + break + user.drop_item() P.forceMove(src) components += P diff --git a/code/game/machinery/iv_drip.dm b/code/game/machinery/iv_drip.dm index 1df586b809e..4ae639c039e 100644 --- a/code/game/machinery/iv_drip.dm +++ b/code/game/machinery/iv_drip.dm @@ -37,6 +37,8 @@ /obj/machinery/iv_drip/MouseDrop(over_object, src_location, over_location) ..() + if(!isliving(usr)) + return if(attached) visible_message("[src.attached] is detached from \the [src]") diff --git a/code/game/machinery/kitchen/microwave.dm b/code/game/machinery/kitchen/microwave.dm index e4b36b94027..7f82a34f1c1 100644 --- a/code/game/machinery/kitchen/microwave.dm +++ b/code/game/machinery/kitchen/microwave.dm @@ -1,4 +1,3 @@ - /obj/machinery/microwave name = "Microwave" icon = 'icons/obj/kitchen.dmi' @@ -31,6 +30,9 @@ reagents = new/datum/reagents(100) reagents.my_atom = src +/obj/machinery/microwave/map/New() + ..() + circuit = new circuit(src) component_parts = list() component_parts += new /obj/item/weapon/stock_parts/console_screen(src) component_parts += new /obj/item/weapon/stock_parts/motor(src) @@ -114,7 +116,7 @@ user << "It's dirty!" return 1 else if(is_type_in_list(O,acceptable_items)) - if (contents.len>=(max_n_of_items + component_parts.len)) //Adds component_parts to the maximum number of items. + if (contents.len>=(max_n_of_items + component_parts.len + 1)) //Adds component_parts to the maximum number of items. The 1 is from the circuit user << "This [src] is full of ingredients, you cannot put more." return 1 if(istype(O, /obj/item/stack) && O:get_amount() > 1) // This is bad, but I can't think of how to change it @@ -177,7 +179,7 @@ var/list/items_counts = new var/list/items_measures = new var/list/items_measures_p = new - for (var/obj/O in (contents-component_parts)) + for (var/obj/O in ((contents - component_parts) - circuit)) var/display_name = O.name if (istype(O,/obj/item/weapon/reagent_containers/food/snacks/egg)) items_measures[display_name] = "egg" @@ -237,7 +239,7 @@ if(stat & (NOPOWER|BROKEN)) return start() - if (reagents.total_volume==0 && !(locate(/obj) in (contents-component_parts))) //dry run + if (reagents.total_volume==0 && !(locate(/obj) in ((contents - component_parts) - circuit))) //dry run if (!wzhzhzh(10)) abort() return @@ -299,7 +301,7 @@ return 1 /obj/machinery/microwave/proc/has_extra_item() - for (var/obj/O in (contents-component_parts)) + for (var/obj/O in ((contents - component_parts) - circuit)) if ( \ !istype(O,/obj/item/weapon/reagent_containers/food) && \ !istype(O, /obj/item/weapon/grown) \ @@ -360,7 +362,7 @@ /obj/machinery/microwave/proc/fail() var/obj/item/weapon/reagent_containers/food/snacks/badrecipe/ffuu = new(src) var/amount = 0 - for (var/obj/O in (contents-ffuu)-component_parts) + for (var/obj/O in (((contents - ffuu) - component_parts) - circuit)) amount++ if (O.reagents) var/id = O.reagents.get_master_reagent_id() diff --git a/code/game/machinery/machinery.dm b/code/game/machinery/machinery.dm index 9ad2fd73eb1..3681d1e7980 100644 --- a/code/game/machinery/machinery.dm +++ b/code/game/machinery/machinery.dm @@ -286,8 +286,7 @@ Class Procs: var/obj/item/weapon/circuitboard/CB = circuit var/P for(var/obj/item/weapon/stock_parts/A in component_parts) - for(var/D in CB.req_components) - var/T = text2path(D) + for(var/T in CB.req_components) if(ispath(A.type, T)) P = T break @@ -328,14 +327,14 @@ Class Procs: /obj/machinery/proc/dismantle() playsound(loc, 'sound/items/Crowbar.ogg', 50, 1) var/obj/structure/frame/A = new /obj/structure/frame( src.loc ) - var/obj/item/weapon/circuitboard/M = new circuit( A ) + var/obj/item/weapon/circuitboard/M = circuit A.circuit = M A.anchored = 1 A.density = 1 A.frame_type = M.board_type if(A.frame_type in A.no_circuit) A.need_circuit = 0 - for (var/obj/D in src) + for (var/obj/D in src.component_parts) D.forceMove(loc) if(A.components) A.components.Cut() @@ -344,10 +343,12 @@ Class Procs: component_parts = list() A.icon_state = "[A.frame_type]_3" A.state = 3 + A.dir = dir A.pixel_x = pixel_x A.pixel_y = pixel_y A.check_components() A.update_desc() + M.loc = null M.deconstruct(src) qdel(src) return 1 diff --git a/code/game/machinery/mass_driver.dm b/code/game/machinery/mass_driver.dm index abd98091760..f94427bf3aa 100644 --- a/code/game/machinery/mass_driver.dm +++ b/code/game/machinery/mass_driver.dm @@ -9,12 +9,41 @@ use_power = 1 idle_power_usage = 2 active_power_usage = 50 + circuit = /obj/item/weapon/circuitboard/mass_driver var/power = 1.0 var/code = 1.0 var/id = 1.0 var/drive_range = 50 //this is mostly irrelevant since current mass drivers throw into space, but you could make a lower-range mass driver for interstation transport or something I guess. +/obj/machinery/mass_driver/map/New() + ..() + circuit = new circuit(src) + component_parts = list() + component_parts += new /obj/item/weapon/stock_parts/motor(src) + component_parts += new /obj/item/weapon/stock_parts/motor(src) + component_parts += new /obj/item/weapon/stock_parts/gear(src) + component_parts += new /obj/item/weapon/stock_parts/gear(src) + component_parts += new /obj/item/weapon/stock_parts/spring(src) + component_parts += new /obj/item/weapon/stock_parts/capacitor(src) + component_parts += new /obj/item/stack/cable_coil(src, 5) + RefreshParts() + +/obj/machinery/mass_driver/attackby(var/obj/item/I, mob/user) + if(default_deconstruction_screwdriver(user, I)) + return + if(default_deconstruction_crowbar(user, I)) + return + + if(istype(I, /obj/item/device/multitool)) + if(panel_open) + var/input = sanitize(input(usr, "What id would you like to give this conveyor?", "Multitool-Conveyor interface", id)) + if(!input) + usr << "No input found please hang up and try your call again." + return + id = input + return + return /obj/machinery/mass_driver/proc/drive(amount) if(stat & (BROKEN|NOPOWER)) diff --git a/code/game/machinery/recharger.dm b/code/game/machinery/recharger.dm index 95c62a8ccdb..77aed2300fa 100644 --- a/code/game/machinery/recharger.dm +++ b/code/game/machinery/recharger.dm @@ -15,9 +15,9 @@ obj/machinery/recharger var/icon_state_idle = "recharger0" //also when unpowered var/portable = 1 circuit = /obj/item/weapon/circuitboard/recharger - frame_type = "recharger" -obj/machinery/recharger/New() +obj/machinery/recharger/map/New() + circuit = new circuit(src) component_parts = list() component_parts += new /obj/item/weapon/stock_parts/capacitor(src) component_parts += new /obj/item/stack/cable_coil(src, 5) @@ -171,4 +171,13 @@ obj/machinery/recharger/wallcharger icon_state_idle = "wrecharger0" portable = 0 circuit = /obj/item/weapon/circuitboard/recharger/wrecharger - frame_type = "wrecharger" \ No newline at end of file + frame_type = "wrecharger" + +obj/machinery/recharger/wallcharger/map/New() + circuit = new circuit(src) + component_parts = list() + component_parts += new /obj/item/weapon/stock_parts/capacitor(src) + component_parts += new /obj/item/stack/cable_coil(src, 5) + RefreshParts() + ..() + return \ No newline at end of file diff --git a/code/game/machinery/rechargestation.dm b/code/game/machinery/rechargestation.dm index c3759100fb3..204f48e0d68 100644 --- a/code/game/machinery/rechargestation.dm +++ b/code/game/machinery/rechargestation.dm @@ -22,9 +22,9 @@ var/weld_power_use = 2300 // power used per point of brute damage repaired. 2.3 kW ~ about the same power usage of a handheld arc welder var/wire_power_use = 500 // power used per point of burn damage repaired. -/obj/machinery/recharge_station/New() +/obj/machinery/recharge_station/map/New() ..() - + circuit = new circuit(src) component_parts = list() component_parts += new /obj/item/weapon/stock_parts/manipulator(src) component_parts += new /obj/item/weapon/stock_parts/manipulator(src) diff --git a/code/game/machinery/requests_console.dm b/code/game/machinery/requests_console.dm index 7e2d5216985..fc39af88f7a 100644 --- a/code/game/machinery/requests_console.dm +++ b/code/game/machinery/requests_console.dm @@ -28,6 +28,7 @@ var/list/obj/machinery/requests_console/allConsoles = list() anchored = 1 icon = 'icons/obj/terminals.dmi' icon_state = "req_comp0" + circuit = /obj/item/weapon/circuitboard/request var/department = "Unknown" //The list of all departments on the station (Determined from this variable on each unit) Set this to the same thing if you want several consoles in one department var/list/message_log = list() //List of all messages var/departmentType = 0 //Bitflag. Zero is reply-only. Map currently uses raw numbers instead of defines. @@ -79,7 +80,7 @@ var/list/obj/machinery/requests_console/allConsoles = list() req_console_supplies |= department if (departmentType & RC_INFO) req_console_information |= department - + set_light(1) /obj/machinery/requests_console/Destroy() @@ -199,27 +200,29 @@ var/list/obj/machinery/requests_console/allConsoles = list() //err... hacking code, which has no reason for existing... but anyway... it was once supposed to unlock priority 3 messanging on that console (EXTREME priority...), but the code for that was removed. /obj/machinery/requests_console/attackby(var/obj/item/weapon/O as obj, var/mob/user as mob) - /* - if (istype(O, /obj/item/weapon/crowbar)) - if(open) - open = 0 - icon_state="req_comp0" - else - open = 1 - if(hackState == 0) - icon_state="req_comp_open" - else if(hackState == 1) - icon_state="req_comp_rewired" - if (istype(O, /obj/item/weapon/screwdriver)) - if(open) - if(hackState == 0) - hackState = 1 - icon_state="req_comp_rewired" - else if(hackState == 1) - hackState = 0 - icon_state="req_comp_open" - else - user << "You can't do much with that."*/ + if(default_deconstruction_screwdriver(user, O)) + return + if(default_deconstruction_crowbar(user, O)) + return + if(istype(O, /obj/item/device/multitool)) + if(panel_open) + var/input = sanitize(input(usr, "What Department id would you like to give this Request Console?", "Multitool-Request Console interface", department)) + if(!input) + usr << "No input found please hang up and try your call again." + return + department = input + announcement.title = "[department] announcement" + announcement.newscast = 1 + + name = "[department] Requests Console" + allConsoles += src + if (departmentType & RC_ASSIST) + req_console_assistance |= department + if (departmentType & RC_SUPPLY) + req_console_supplies |= department + if (departmentType & RC_INFO) + req_console_information |= department + return if (istype(O, /obj/item/weapon/card/id)) if(inoperable(MAINT)) return diff --git a/code/game/machinery/teleporter.dm b/code/game/machinery/teleporter.dm index b107dcc42d9..13ff75e0713 100644 --- a/code/game/machinery/teleporter.dm +++ b/code/game/machinery/teleporter.dm @@ -170,6 +170,7 @@ use_power = 1 idle_power_usage = 10 active_power_usage = 2000 + circuit = /obj/item/weapon/circuitboard/teleporter_hub var/obj/machinery/computer/teleporter/com @@ -178,6 +179,21 @@ underlays.Cut() underlays += image('icons/obj/stationobjs.dmi', icon_state = "tele-wires") +/obj/machinery/teleport/hub/map/New() + ..() + circuit = new circuit(src) + component_parts = list() + component_parts += new /obj/item/weapon/stock_parts/scanning_module(src) + component_parts += new /obj/item/weapon/stock_parts/scanning_module(src) + component_parts += new /obj/item/weapon/stock_parts/scanning_module(src) + component_parts += new /obj/item/weapon/stock_parts/scanning_module(src) + component_parts += new /obj/item/weapon/stock_parts/micro_laser(src) + component_parts += new /obj/item/weapon/stock_parts/micro_laser(src) + component_parts += new /obj/item/weapon/stock_parts/micro_laser(src) + component_parts += new /obj/item/weapon/stock_parts/micro_laser(src) + component_parts += new /obj/item/stack/cable_coil(src, 10) + RefreshParts() + /obj/machinery/teleport/hub/Bumped(M as mob|obj) spawn() if (src.icon_state == "tele1") @@ -307,6 +323,7 @@ use_power = 1 idle_power_usage = 10 active_power_usage = 2000 + circuit = /obj/item/weapon/circuitboard/teleporter_station var/obj/machinery/teleport/hub/com /obj/machinery/teleport/station/New() @@ -314,6 +331,16 @@ overlays.Cut() overlays += image('icons/obj/stationobjs.dmi', icon_state = "controller-wires") +/obj/machinery/teleport/station/map/New() + ..() + circuit = new circuit(src) + component_parts = list() + component_parts += new /obj/item/weapon/stock_parts/console_screen(src) + component_parts += new /obj/item/weapon/stock_parts/capacitor(src) + component_parts += new /obj/item/weapon/stock_parts/capacitor(src) + component_parts += new /obj/item/stack/cable_coil(src, 10) + RefreshParts() + /obj/machinery/teleport/station/attackby(var/obj/item/weapon/W) src.attack_hand() diff --git a/code/game/machinery/vending.dm b/code/game/machinery/vending.dm index fdc5786a499..fd0996e2bc9 100644 --- a/code/game/machinery/vending.dm +++ b/code/game/machinery/vending.dm @@ -4,12 +4,14 @@ /datum/data/vending_product var/product_name = "generic" // Display name for the product var/product_path = null - var/amount = 0 // Amount held in the vending machine - var/price = 0 // Price to buy one - var/display_color = null // Display color for vending machine listing + var/amount = 0 // The original amount held in the vending machine + var/list/instances + var/price = 0 // Price to buy one + var/display_color = null // Display color for vending machine listing var/category = CAT_NORMAL // CAT_HIDDEN for contraband, CAT_COIN for premium + var/vending_machine // The vending machine we belong to -/datum/data/vending_product/New(var/path, var/name = null, var/amount = 1, var/price = 0, var/color = null, var/category = CAT_NORMAL) +/datum/data/vending_product/New(var/vending_machine, var/path, var/name = null, var/amount = 1, var/price = 0, var/color = null, var/category = CAT_NORMAL) ..() src.product_path = path @@ -24,6 +26,43 @@ src.price = price src.display_color = color src.category = category + src.vending_machine = vending_machine + +/datum/data/vending_product/Destroy() + vending_machine = null + if(instances) + for(var/product in instances) + qdel(product) + instances.Cut() + . = ..() + +/datum/data/vending_product/proc/get_amount() + return instances ? instances.len : amount + +/datum/data/vending_product/proc/add_product(var/atom/movable/product) + if(product.type != product_path) + return 0 + init_products() + product.forceMove(vending_machine) + instances += product + +/datum/data/vending_product/proc/get_product(var/product_location) + if(!get_amount() || !product_location) + return + init_products() + + var/atom/movable/product = instances[instances.len] // Remove the last added product + instances -= product + product.forceMove(product_location) + return product + +/datum/data/vending_product/proc/init_products() + if(instances) + return + instances = list() + for(var/i = 1 to amount) + var/new_product = new product_path(vending_machine) + instances += new_product /** * A vending machine @@ -36,8 +75,6 @@ layer = 2.9 anchored = 1 density = 1 - circuit = /obj/item/weapon/circuitboard/vending - frame_type = "vending" var/icon_vend //Icon_state when vending var/icon_deny //Icon_state when denying access @@ -96,14 +133,6 @@ /obj/machinery/vending/New() ..() wires = new(src) - component_parts = list() - component_parts += new /obj/item/weapon/stock_parts/spring(src) - component_parts += new /obj/item/weapon/stock_parts/spring(src) - component_parts += new /obj/item/weapon/stock_parts/motor(src) - component_parts += new /obj/item/weapon/stock_parts/motor(src) - component_parts += new /obj/item/weapon/stock_parts/console_screen(src) - component_parts += new /obj/item/stack/material/glass/reinforced(src, 2) - RefreshParts() spawn(4) if(src.product_slogans) src.slogan_list += splittext(src.product_slogans, ";") @@ -140,7 +169,7 @@ var/category = current_list[2] for(var/entry in current_list[1]) - var/datum/data/vending_product/product = new/datum/data/vending_product(entry) + var/datum/data/vending_product/product = new/datum/data/vending_product(src, entry) product.price = (entry in src.prices) ? src.prices[entry] : 0 product.amount = (current_list[1][entry]) ? current_list[1][entry] : 1 @@ -153,6 +182,9 @@ wires = null qdel(coin) coin = null + for(var/datum/data/vending_product/R in product_records) + qdel(R) + product_records = null return ..() /obj/machinery/vending/ex_act(severity) @@ -224,7 +256,7 @@ return else if(istype(W, /obj/item/weapon/coin) && premium.len > 0) user.drop_item() - W.loc = src + W.forceMove(src) coin = W categories |= CAT_COIN user << "You insert \the [W] into \the [src]." @@ -242,9 +274,6 @@ user << "You [anchored? "un" : ""]secured \the [src]!" anchored = !anchored return - else if(default_deconstruction_crowbar(user, W)) - return - else for(var/datum/data/vending_product/R in product_records) @@ -423,7 +452,7 @@ "name" = I.product_name, "price" = I.price, "color" = I.display_color, - "amount" = I.amount))) + "amount" = I.get_amount()))) data["products"] = listed_products @@ -453,10 +482,10 @@ usr << "There is no coin in this machine." return - coin.loc = src.loc + coin.forceMove(src.loc) if(!usr.get_active_hand()) usr.put_in_hands(coin) - usr << "You remove the [coin] from the [src]" + usr << "You remove \the [coin] from \the [src]" coin = null categories &= ~CAT_COIN @@ -517,13 +546,13 @@ else user << "You weren't able to pull the coin out fast enough, the machine ate it, string and all." qdel(coin) + coin = null categories &= ~CAT_COIN else qdel(coin) + coin = null categories &= ~CAT_COIN - R.amount-- - if(((src.last_reply + (src.vend_delay + 200)) <= world.time) && src.vend_reply) spawn(0) src.speak(src.vend_reply) @@ -533,16 +562,31 @@ if (src.icon_vend) //Show the vending animation if needed flick(src.icon_vend,src) spawn(src.vend_delay) - new R.product_path(get_turf(src)) + R.get_product(get_turf(src)) + if(prob(1)) + sleep(3) + if(R.get_product(get_turf(src))) + src.visible_message("\The [src] clunks as it vends an additional item.") + src.status_message = "" src.status_error = 0 src.vend_ready = 1 currently_vending = null nanomanager.update_uis(src) -/obj/machinery/vending/proc/stock(var/datum/data/vending_product/R, var/mob/user) - user << "You insert \the [src] in the product receptor." - R.amount++ + +/** + * Add item to the machine + * + * Checks if item is vendable in this machine should be performed before + * calling. W is the item being inserted, R is the associated vending_product entry. + */ +/obj/machinery/vending/proc/stock(obj/item/weapon/W, var/datum/data/vending_product/R, var/mob/user) + if(!user.unEquip(W)) + return + + user << "You insert \the [W] in the product receptor." + R.add_product(W) nanomanager.update_uis(src) @@ -592,15 +636,8 @@ //Oh no we're malfunctioning! Dump out some product and break. /obj/machinery/vending/proc/malfunction() for(var/datum/data/vending_product/R in src.product_records) - if (R.amount <= 0) //Try to use a record that actually has something to dump. - continue - var/dump_path = R.product_path - if (!dump_path) - continue - - while(R.amount>0) - new dump_path(src.loc) - R.amount-- + while(R.get_amount()>0) + R.get_product(loc) break stat |= BROKEN @@ -615,20 +652,15 @@ return 0 for(var/datum/data/vending_product/R in src.product_records) - if (R.amount <= 0) //Try to use a record that actually has something to dump. + throw_item = R.get_product(loc) + if (!throw_item) continue - var/dump_path = R.product_path - if (!dump_path) - continue - - R.amount-- - throw_item = new dump_path(src.loc) break if (!throw_item) return 0 spawn(0) throw_item.throw_at(target, 16, 3, src) - src.visible_message("[src] launches [throw_item.name] at [target.name]!") + src.visible_message("\The [src] launches \a [throw_item] at \the [target]!") return 1 /* @@ -656,7 +688,7 @@ icon = 'icons/obj/objects.dmi' icon_state = "dispenser" product_paths = "/obj/item/weapon/tank/oxygen;/obj/item/weapon/tank/phoron;/obj/item/weapon/tank/emergency_oxygen;/obj/item/weapon/tank/emergency_oxygen/engi;/obj/item/clothing/mask/breath" - product_amounts = "10;10;10;5;25" + productamounts = "10;10;10;5;25" vend_delay = 0 */ @@ -882,7 +914,7 @@ for(var/entry in current_list[1]) var/obj/item/seeds/S = new entry(src) var/name = S.name - var/datum/data/vending_product/product = new/datum/data/vending_product(entry, name) + var/datum/data/vending_product/product = new/datum/data/vending_product(src, entry, name) product.price = (entry in src.prices) ? src.prices[entry] : 0 product.amount = (current_list[1][entry]) ? current_list[1][entry] : 1 @@ -905,8 +937,26 @@ desc = "A kitchen and restaurant equipment vendor." product_ads = "Mm, food stuffs!;Food and food accessories.;Get your plates!;You like forks?;I like forks.;Woo, utensils.;You don't really need these..." icon_state = "dinnerware" - products = list(/obj/item/weapon/tray = 8,/obj/item/weapon/material/kitchen/utensil/fork = 6, /obj/item/weapon/material/kitchen/utensil/knife = 6, /obj/item/weapon/material/kitchen/utensil/spoon = 6, /obj/item/weapon/material/knife = 3,/obj/item/weapon/reagent_containers/food/drinks/drinkingglass = 8,/obj/item/clothing/suit/chef/classic = 2) - contraband = list(/obj/item/weapon/material/kitchen/rollingpin = 2, /obj/item/weapon/material/knife/butch = 2) + products = list( + /obj/item/weapon/tray = 8, + /obj/item/weapon/material/kitchen/utensil/fork = 6, + /obj/item/weapon/material/kitchen/utensil/knife = 6, + /obj/item/weapon/material/kitchen/utensil/spoon = 6, + /obj/item/weapon/material/knife = 3, + /obj/item/weapon/reagent_containers/food/drinks/drinkingglass = 8, + /obj/item/clothing/suit/chef/classic = 2, + /obj/item/weapon/storage/toolbox/lunchbox = 3, + /obj/item/weapon/storage/toolbox/lunchbox/heart = 3, + /obj/item/weapon/storage/toolbox/lunchbox/cat = 3, + /obj/item/weapon/storage/toolbox/lunchbox/nt = 3, + /obj/item/weapon/storage/toolbox/lunchbox/mars = 3, + /obj/item/weapon/storage/toolbox/lunchbox/cti = 3, + /obj/item/weapon/storage/toolbox/lunchbox/nymph = 3, + /obj/item/weapon/storage/toolbox/lunchbox/syndicate = 3) + + + contraband = list(/obj/item/weapon/material/kitchen/rollingpin = 2, + /obj/item/weapon/material/knife/butch = 2) /obj/machinery/vending/sovietsoda name = "BODA" @@ -924,8 +974,10 @@ icon_deny = "tool-deny" //req_access = list(access_maint_tunnels) //Maintenance access products = list(/obj/item/stack/cable_coil/random = 10,/obj/item/weapon/crowbar = 5,/obj/item/weapon/weldingtool = 3,/obj/item/weapon/wirecutters = 5, - /obj/item/weapon/wrench = 5,/obj/item/device/analyzer = 5,/obj/item/device/t_scanner = 5,/obj/item/weapon/screwdriver = 5) - contraband = list(/obj/item/weapon/weldingtool/hugetank = 2,/obj/item/clothing/gloves/fyellow = 2) + /obj/item/weapon/wrench = 5,/obj/item/device/analyzer = 5,/obj/item/device/t_scanner = 5,/obj/item/weapon/screwdriver = 5, + /obj/item/device/flashlight/glowstick = 3, /obj/item/device/flashlight/glowstick/red = 3, /obj/item/device/flashlight/glowstick/blue = 3, + /obj/item/device/flashlight/glowstick/orange =3, /obj/item/device/flashlight/glowstick/yellow = 3) + contraband = list(/obj/item/weapon/weldingtool/hugetank = 2,/obj/item/clothing/gloves/fyellow = 2, ) premium = list(/obj/item/clothing/gloves/yellow = 1) /obj/machinery/vending/engivend @@ -939,12 +991,15 @@ /obj/item/weapon/circuitboard/airalarm = 10,/obj/item/weapon/circuitboard/firealarm = 10,/obj/item/weapon/circuitboard/status_display = 2, /obj/item/weapon/circuitboard/ai_status_display = 2,/obj/item/weapon/circuitboard/newscaster = 2,/obj/item/weapon/circuitboard/holopad = 2, /obj/item/weapon/circuitboard/intercom = 4,/obj/item/weapon/circuitboard/security/telescreen/entertainment = 4, - /obj/item/weapon/circuitboard/atm = 0,/obj/item/weapon/circuitboard/guestpass = 0,/obj/item/weapon/circuitboard/keycard_auth = 0, - /obj/item/weapon/circuitboard/photocopier = 0,/obj/item/weapon/circuitboard/fax = 0,/obj/item/weapon/circuitboard/conveyor = 0, - /obj/item/weapon/circuitboard/microwave = 0,/obj/item/weapon/circuitboard/vending = 0,/obj/item/weapon/circuitboard/washing = 0, - /obj/item/weapon/stock_parts/motor = 0,/obj/item/weapon/stock_parts/spring = 0,/obj/item/weapon/stock_parts/gear = 0) + /obj/item/weapon/stock_parts/motor = 2,/obj/item/weapon/stock_parts/spring = 2,/obj/item/weapon/stock_parts/gear = 2, + /obj/item/weapon/circuitboard/atm,/obj/item/weapon/circuitboard/guestpass,/obj/item/weapon/circuitboard/keycard_auth, + /obj/item/weapon/circuitboard/photocopier,/obj/item/weapon/circuitboard/fax,/obj/item/weapon/circuitboard/request, + /obj/item/weapon/circuitboard/microwave,/obj/item/weapon/circuitboard/washing,/obj/item/weapon/circuitboard/scanner_console, + /obj/item/weapon/circuitboard/sleeper_console,/obj/item/weapon/circuitboard/body_scanner,/obj/item/weapon/circuitboard/sleeper, + /obj/item/weapon/circuitboard/dna_analyzer) contraband = list(/obj/item/weapon/cell/potato = 3) premium = list(/obj/item/weapon/storage/belt/utility = 3) + product_records = list() //This one's from bay12 /obj/machinery/vending/engineering diff --git a/code/game/machinery/wall_frames.dm b/code/game/machinery/wall_frames.dm index fd0fd3ce7c2..701d4ebab23 100644 --- a/code/game/machinery/wall_frames.dm +++ b/code/game/machinery/wall_frames.dm @@ -22,11 +22,12 @@ if(!build_machine_type) return - var/ndir if(!frame_type) var/response = input(usr, "What kind of frame would you like to make?", "Frame type request", null) in list("Computer", "Machine", "Holopad", "Conveyor", - "Photocopier", "Fax", "Microwave", "Vending Machine", + "Photocopier", "Fax", "Microwave", "Recharger", "Washing Machine", "Grinder", + "Medical Console", "Medical Pod", "DNA Analyzer", + "Mass Driver", "Cancel") if(response == "Cancel") @@ -37,22 +38,29 @@ switch(response) if("Holopad") new /obj/item/stack/material/steel( usr.loc, 1 ) //holopads are smaller, they only need 4 sheets - if("Conveyor") - ndir = get_dir(src,usr) - if (!(ndir in cardinal)) - return if("Fax") new /obj/item/stack/material/steel( usr.loc, 2 ) //faxes are smaller, they only need 3 sheets if("Microwave") new /obj/item/stack/material/steel( usr.loc, 1 ) //microwaves are smaller, they only need 4 sheets - if("Vending Machine") - frame_type = "vending" if("Recharger") new /obj/item/stack/material/steel( usr.loc, 2 ) //rechargers are smaller, they only need 3 sheets if("Washing Machine") frame_type = "washing" if("Grinder") new /obj/item/stack/material/steel( usr.loc, 2 ) //grinders are smaller, they only need 3 sheets + if("Medical Console") + frame_type = "console" + if("Medical Pod") + frame_type = "medpod" + if("DNA Analyzer") + frame_type = "dna_analyzer" + if("Mass Driver") + frame_type = "massdriver" + + var/ndir + ndir = usr.dir + if (!(ndir in cardinal)) + return var/obj/machinery/M = new build_machine_type(get_turf(src.loc), ndir, 1, frame_type) M.fingerprints = src.fingerprints @@ -64,7 +72,7 @@ if(!frame_type) var/response = input(usr, "What kind of frame would you like to make?", "Frame type request", null) in list("Fire Alarm", "Air Alarm", "Display", "Newscaster", "ATM", "Guest Pass Console", "Intercom", "Keycard Authenticator", - "Wall Charger", + "Wall Charger", "Supply Request Console", "Cancel") if(response == "Cancel") @@ -92,6 +100,8 @@ if("Wall Charger") frame_type = "wrecharger" new /obj/item/stack/material/steel( usr.loc, 2 ) //wall rechargers are smaller, they only need 3 sheets + if("Supply Request Console") + frame_type = "request" if(!build_machine_type) return diff --git a/code/game/machinery/washing_machine.dm b/code/game/machinery/washing_machine.dm index 830a848bfe7..4babe5cd1b7 100644 --- a/code/game/machinery/washing_machine.dm +++ b/code/game/machinery/washing_machine.dm @@ -21,7 +21,8 @@ var/obj/crayon var/list/washing = list() -/obj/machinery/washing_machine/New() +/obj/machinery/washing_machine/map/New() + circuit = new circuit(src) component_parts = list() component_parts += new /obj/item/weapon/stock_parts/motor(src) component_parts += new /obj/item/weapon/stock_parts/gear(src) diff --git a/code/game/objects/effects/effect_system.dm b/code/game/objects/effects/effect_system.dm index 586ba9b721e..fcb52986a49 100644 --- a/code/game/objects/effects/effect_system.dm +++ b/code/game/objects/effects/effect_system.dm @@ -193,16 +193,14 @@ steam.start() -- spawns the effect affect(M) /obj/effect/effect/smoke/proc/affect(var/mob/living/carbon/M) - if (istype(M)) + if (!istype(M)) return 0 - if (M.internal != null) - if(M.wear_mask && (M.wear_mask.item_flags & AIRTIGHT)) + if(M.wear_mask && (M.wear_mask.item_flags & AIRTIGHT)) + return 0 + if(istype(M,/mob/living/carbon/human)) + var/mob/living/carbon/human/H = M + if(H.head && (H.head.item_flags & AIRTIGHT)) return 0 - if(istype(M,/mob/living/carbon/human)) - var/mob/living/carbon/human/H = M - if(H.head && (H.head.item_flags & AIRTIGHT)) - return 0 - return 0 return 1 ///////////////////////////////////////////// @@ -225,7 +223,8 @@ steam.start() -- spawns the effect ///////////////////////////////////////////// /obj/effect/effect/smoke/bad - time_to_live = 200 + time_to_live = 600 + //var/list/projectiles /obj/effect/effect/smoke/bad/Move() ..() @@ -235,70 +234,25 @@ steam.start() -- spawns the effect /obj/effect/effect/smoke/bad/affect(var/mob/living/carbon/M) if (!..()) return 0 - M.drop_item() M.adjustOxyLoss(1) - if (M.coughedtime != 1) - M.coughedtime = 1 + if(prob(25)) M.emote("cough") - spawn ( 20 ) - M.coughedtime = 0 -/obj/effect/effect/smoke/bad/CanPass(atom/movable/mover, turf/target, height=0, air_group=0) - if(air_group || (height==0)) return 1 - if(istype(mover, /obj/item/projectile/beam)) - var/obj/item/projectile/beam/B = mover - B.damage = (B.damage/2) +/* Not feasile until a later date +/obj/effect/effect/smoke/bad/Crossed(atom/movable/M as mob|obj) + ..() + if(istype(M, /obj/item/projectile/beam)) + var/obj/item/projectile/beam/B = M + if(!(B in projectiles)) + B.damage = (B.damage/2) + projectiles += B + destroyed_event.register(B, src, /obj/effect/effect/smoke/bad/proc/on_projectile_delete) + world << "Damage is: [B.damage]" return 1 -///////////////////////////////////////////// -// Sleep smoke -///////////////////////////////////////////// -/obj/effect/effect/smoke/sleepy - -/obj/effect/effect/smoke/sleepy/Move() - ..() - for(var/mob/living/carbon/M in get_turf(src)) - affect(M) - -/obj/effect/effect/smoke/sleepy/affect(mob/living/carbon/M as mob ) - if (!..()) - return 0 - - M.drop_item() - M:sleeping += 1 - if (M.coughedtime != 1) - M.coughedtime = 1 - M.emote("cough") - spawn ( 20 ) - M.coughedtime = 0 -///////////////////////////////////////////// -// Mustard Gas -///////////////////////////////////////////// - - -/obj/effect/effect/smoke/mustard - name = "mustard gas" - icon_state = "mustard" - -/obj/effect/effect/smoke/mustard/Move() - ..() - for(var/mob/living/carbon/human/R in get_turf(src)) - affect(R) - -/obj/effect/effect/smoke/mustard/affect(var/mob/living/carbon/human/R) - if (!..()) - return 0 - if (R.wear_suit != null) - return 0 - - R.burn_skin(0.75) - if (R.coughedtime != 1) - R.coughedtime = 1 - R.emote("gasp") - spawn (20) - R.coughedtime = 0 - R.updatehealth() - return +/obj/effect/effect/smoke/bad/proc/on_projectile_delete(obj/item/projectile/beam/proj) + projectiles -= proj +*/ ///////////////////////////////////////////// // Smoke spread @@ -321,7 +275,7 @@ steam.start() -- spawns the effect if(direct) direction = direct -/datum/effect/effect/system/smoke_spread/start() +/datum/effect/effect/system/smoke_spread/start(var/I) var/i = 0 for(i=0, i 20) @@ -331,6 +285,7 @@ steam.start() -- spawns the effect src.location = get_turf(holder) var/obj/effect/effect/smoke/smoke = PoolOrNew(smoke_type, src.location) src.total_smoke++ + smoke.color = I var/direction = src.direction if(!direction) if(src.cardinals) @@ -348,14 +303,6 @@ steam.start() -- spawns the effect /datum/effect/effect/system/smoke_spread/bad smoke_type = /obj/effect/effect/smoke/bad -/datum/effect/effect/system/smoke_spread/sleepy - smoke_type = /obj/effect/effect/smoke/sleepy - - -/datum/effect/effect/system/smoke_spread/mustard - smoke_type = /obj/effect/effect/smoke/mustard - - ///////////////////////////////////////////// //////// Attach an Ion trail to any object, that spawns when it moves (like for the jetpack) /// just pass in the object to attach it to in set_up @@ -507,9 +454,9 @@ steam.start() -- spawns the effect M << "The solution violently explodes." explosion( - location, - round(min(devst, BOMBCAP_DVSTN_RADIUS)), - round(min(heavy, BOMBCAP_HEAVY_RADIUS)), - round(min(light, BOMBCAP_LIGHT_RADIUS)), + location, + round(min(devst, BOMBCAP_DVSTN_RADIUS)), + round(min(heavy, BOMBCAP_HEAVY_RADIUS)), + round(min(light, BOMBCAP_LIGHT_RADIUS)), round(min(flash, BOMBCAP_FLASH_RADIUS)) ) diff --git a/code/game/objects/items/bodybag.dm b/code/game/objects/items/bodybag.dm index 3a6d55ca7d0..88b513e06e7 100644 --- a/code/game/objects/items/bodybag.dm +++ b/code/game/objects/items/bodybag.dm @@ -86,6 +86,17 @@ qdel(src) return +/obj/structure/closet/body_bag/proc/get_occupants() + var/list/occupants = list() + for(var/mob/living/carbon/human/H in contents) + occupants += H + return occupants + +/obj/structure/closet/body_bag/proc/update(var/broadcast=0) + if(istype(loc, /obj/structure/morgue)) + var/obj/structure/morgue/M = loc + M.update(broadcast) + /obj/structure/closet/body_bag/update_icon() if(opened) icon_state = icon_opened diff --git a/code/game/objects/items/devices/flashlight.dm b/code/game/objects/items/devices/flashlight.dm index c7f90e97468..83ac8851ddf 100644 --- a/code/game/objects/items/devices/flashlight.dm +++ b/code/game/objects/items/devices/flashlight.dm @@ -199,7 +199,7 @@ src.force = on_damage src.damtype = "fire" processing_objects += src - + /obj/item/device/flashlight/flare/proc/ignite() //Used for flare launchers. on = !on update_icon() @@ -208,6 +208,76 @@ processing_objects += src return 1 +//Glowsticks + +/obj/item/device/flashlight/glowstick + name = "green glowstick" + desc = "A green military-grade glowstick." + w_class = 2.0 + brightness_on = 4 + light_power = 2 + light_color = "#49F37C" + icon_state = "glowstick" + item_state = "glowstick" + var/fuel = 0 + +/obj/item/device/flashlight/glowstick/New() + fuel = rand(1600, 2000) + ..() + +/obj/item/device/flashlight/glowstick/process() + fuel = max(fuel - 1, 0) + if(!fuel || !on) + turn_off() + if(!fuel) + src.icon_state = "[initial(icon_state)]-empty" + processing_objects -= src + +/obj/item/device/flashlight/glowstick/proc/turn_off() + on = 0 + update_icon() + +/obj/item/device/flashlight/glowstick/attack_self(mob/user) + + if(!fuel) + user << "The glowstick has already been turned on." + return + if(on) + return + + . = ..() + if(.) + user.visible_message("[user] cracks and shakes the glowstick.", "You crack and shake the glowstick, turning it on!") + processing_objects += src + +/obj/item/device/flashlight/glowstick/red + name = "red glowstick" + desc = "A red military-grade glowstick." + light_color = "#FC0F29" + icon_state = "glowstick_red" + item_state = "glowstick_red" + +/obj/item/device/flashlight/glowstick/blue + name = "blue glowstick" + desc = "A blue military-grade glowstick." + light_color = "#599DFF" + icon_state = "glowstick_blue" + item_state = "glowstick_blue" + +/obj/item/device/flashlight/glowstick/orange + name = "orange glowstick" + desc = "A orange military-grade glowstick." + light_color = "#FA7C0B" + icon_state = "glowstick_orange" + item_state = "glowstick_orange" + +/obj/item/device/flashlight/glowstick/yellow + name = "yellow glowstick" + desc = "A yellow military-grade glowstick." + light_color = "#FEF923" + icon_state = "glowstick_yellow" + item_state = "glowstick_yellow" + /obj/item/device/flashlight/slime gender = PLURAL name = "glowing slime extract" diff --git a/code/game/objects/items/devices/locker_painter.dm b/code/game/objects/items/devices/locker_painter.dm new file mode 100644 index 00000000000..567e2963482 --- /dev/null +++ b/code/game/objects/items/devices/locker_painter.dm @@ -0,0 +1,140 @@ +/obj/item/device/closet_painter + name = "closet painter" + icon = 'icons/obj/bureaucracy.dmi' + icon_state = "labeler1" + item_state = "flight" + + var/colour = "plain" + var/colour_secure = "plain" + + var/list/colours = list( + "plain" = list("open" = "open", "closed" = "closed"), + "blue" = list("open" = "open", "closed" = "blue"), + "mixed" = list("open" = "open", "closed" = "mixed"), + "grey" = list("open" = "open", "closed" = "grey"), + "green" = list("open" = "open", "closed" = "green"), + "orange" = list("open" = "open", "closed" = "orange"), + "pink" = list("open" = "open", "closed" = "pink"), + "red" = list("open" = "open", "closed" = "red"), + "white" = list("open" = "open", "closed" = "white"), + "yellow" = list("open" = "open", "closed" = "yellow"), + "black" = list("open" = "open", "closed" = "black"), + "bio" = list("open" = "bioopen", "closed" = "bio"), + "bio-virology" = list("open" = "bio_virologyopen", "closed" = "bio_virology"), + "bio-security" = list("open" = "bio_securityopen", "closed" = "bio_security"), + "bio-janitor" = list("open" = "bio_janitoropen", "closed" = "bio_janitor"), + "bio-scientist" = list("open" = "bio_scientistopen", "closed" = "bio_scientist"), + "bombsuit" = list("open" = "bombsuitopen", "closed" = "bombsuit"), + "bombsuit-security" = list("open" = "bombsuitsecopen", "closed" = "bombsuitsec"), + "full-red" = list("open" = "syndicateopen", "closed" = "syndicate"), + "full-green" = list("open" = "syndicate1open", "closed" = "syndicate1"), + "full-purple" = list("open" = "aclosetopen", "closed" = "acloset"), + "mining" = list("open" = "miningopen", "closed" = "mining"), + "emergency" = list("open" = "emergencyopen", "closed" = "emergency"), + "fire" = list("open" = "fireclosetopen", "closed" = "firecloset"), + "tool" = list("open" = "toolclosetopen", "closed" = "toolcloset"), + "radiation" = list("open" = "toolclosetopen", "closed" = "radsuitcloset") + ) + + var/list/colours_secure = list( + "plain" = list("open" = "open", "closed" = "secure", "locked" = "secure1", "broken" = "securebroken", "off" = "secureoff"), + "medical-red" = list("open" = "medicalopen", "closed" = "medical", "locked" = "medical1", "broken" = "medicalbroken", "off" = "medicaloff"), + "medical-green" = list("open" = "securemedopen", "closed" = "securemed", "locked" = "securemed1", "broken" = "securemedbroken", "off" = "securemedoff"), + "CMO" = list("open" = "cmosecureopen", "closed" = "cmosecure", "locked" = "cmosecure1", "broken" = "cmosecurebroken", "off" = "cmosecureoff"), + "cargo" = list("open" = "securecargoopen", "closed" = "securecargo", "locked" = "securecargo1", "broken" = "securecargobroken", "off" = "securecargooff"), + "mining" = list("open" = "miningsecopen", "closed" = "miningsec", "locked" = "miningsec1", "broken" = "miningsecbroken", "off" = "miningsecoff"), + "QM" = list("open" = "secureqmopen", "closed" = "secureqm", "locked" = "secureqm1", "broken" = "secureqmbroken", "off" = "secureqmoff"), + "hydroponics" = list("open" = "hydrosecureopen", "closed" = "hydrosecure", "locked" = "hydrosecure1", "broken" = "hydrosecurebroken", "off" = "hydrosecureoff"), + "atmospherics" = list("open" = "secureatmopen", "closed" = "secureatm", "locked" = "secureatm1", "broken" = "secureatmbroken", "off" = "secureatmoff"), + "engineer" = list("open" = "secureengopen", "closed" = "secureeng", "locked" = "secureeng1", "broken" = "secureengbroken", "off" = "secureengoff"), + "CE" = list("open" = "secureceopen", "closed" = "securece", "locked" = "securece1", "broken" = "securecebroken", "off" = "secureceoff"), + "electrical" = list("open" = "toolclosetopen", "closed" = "secureengelec", "locked" = "secureengelec1", "broken" = "secureengelecbroken", "off" = "secureengelecoff"), + "welding" = list("open" = "toolclosetopen", "closed" = "secureengweld", "locked" = "secureengweld1", "broken" = "secureengweldbroken", "off" = "secureengweldoff"), + "research" = list("open" = "secureresopen", "closed" = "secureres", "locked" = "secureres1", "broken" = "secureresbroken", "off" = "secureresoff"), + "RD" = list("open" = "rdsecureopen", "closed" = "rdsecure", "locked" = "rdsecure1", "broken" = "rdsecurebroken", "off" = "rdsecureoff"), + "security" = list("open" = "secopen", "closed" = "sec", "locked" = "sec1", "broken" = "secbroken", "off" = "secoff"), + "warden" = list("open" = "wardensecureopen", "closed" = "wardensecure", "locked" = "wardensecure1", "broken" = "wardensecurebroken", "off" = "wardensecureoff"), + "HoS" = list("open" = "hossecureopen", "closed" = "hossecure", "locked" = "hossecure1", "broken" = "hossecurebroken", "off" = "hossecureoff"), + "HoP" = list("open" = "hopsecureopen", "closed" = "hopsecure", "locked" = "hopsecure1", "broken" = "hopsecurebroken", "off" = "hopsecureoff"), + "Captain" = list("open" = "capsecureopen", "closed" = "capsecure", "locked" = "capsecure1", "broken" = "capsecurebroken", "off" = "capsecureoff") + ) + +/obj/item/device/closet_painter/afterattack(atom/A, var/mob/user, proximity) + if(!proximity) + return + + if(!istype(A,/obj/structure/closet)) + user << "\The [src] can only be used on closets." + return + + var/config_error + + if(istype(A,/obj/structure/closet/secure_closet)) + var/obj/structure/closet/secure_closet/F = A + if(F.broken) + user << "\The [src] cannot paint broken closets." + return + + var/list/colour_data = colours_secure[colour_secure] + if(!islist(colour_data)) + config_error = 1 + if(!config_error) + F.icon_opened = colour_data["open"] + F.icon_closed = colour_data["closed"] + F.icon_locked = colour_data["locked"] + F.icon_broken = colour_data["broken"] + F.icon_off = colour_data["off"] + F.update_icon() + + else + var/obj/structure/closet/F = A + var/list/colour_data = colours[colour] + if(!islist(colour_data)) + config_error = 1 + if(!config_error) + F.icon_opened = colour_data["open"] + F.icon_closed = colour_data["closed"] + F.update_icon() + + if(config_error) + user << "\The [src] flashes an error light. You might need to reconfigure it." + return + +/obj/item/device/closet_painter/attack_self(var/mob/user) + var/choice = input("Do you wish to change the regular closet colour or the secure closet colour?") as null|anything in list("Regular Closet Colour","Secure Closet Colour") + if(choice == "Regular Closet Colour") + choose_colour() + else if(choice == "Secure Closet Colour") + choose_colour_secure() + +/obj/item/device/closet_painter/examine(mob/user) + ..(user) + user << "It is configured to produce the '[colour]' paint scheme or the '[colour_secure]' secure closet paint scheme." + +/obj/item/device/closet_painter/verb/choose_colour() + set name = "Choose Colour" + set desc = "Choose a regular closet painter colour." + set category = "Object" + set src in usr + + if(usr.incapacitated()) + return + + var/new_colour = input("Select a colour.") as null|anything in colours + if(new_colour && !isnull(colours[new_colour])) + colour = new_colour + usr << "You set \the [src] regular closet colour to '[colour]'." + +/obj/item/device/closet_painter/verb/choose_colour_secure() + set name = "Choose Secure Colour" + set desc = "Choose a secure closet painter colour." + set category = "Object" + set src in usr + + if(usr.incapacitated()) + return + + var/new_colour_secure = input("Select a colour.") as null|anything in colours_secure + if(new_colour_secure && !isnull(colours_secure[new_colour_secure])) + colour_secure = new_colour_secure + usr << "You set \the [src] secure closet colour to '[colour_secure]'." \ No newline at end of file diff --git a/code/game/objects/items/devices/suit_cooling.dm b/code/game/objects/items/devices/suit_cooling.dm index 37ceba94459..c8b66fe38f3 100644 --- a/code/game/objects/items/devices/suit_cooling.dm +++ b/code/game/objects/items/devices/suit_cooling.dm @@ -31,7 +31,7 @@ /obj/item/device/suit_cooling_unit/New() processing_objects |= src - cell = new/obj/item/weapon/cell() //comes with the crappy default power cell - high-capacity ones shouldn't be hard to find + cell = new/obj/item/weapon/cell/high() //comes not with the crappy default power cell - because this is dedicated EVA equipment cell.loc = src /obj/item/device/suit_cooling_unit/process() diff --git a/code/game/objects/items/devices/uplink_items.dm b/code/game/objects/items/devices/uplink_items.dm index 3c4ecc3e19d..bc9666990b5 100644 --- a/code/game/objects/items/devices/uplink_items.dm +++ b/code/game/objects/items/devices/uplink_items.dm @@ -155,6 +155,10 @@ datum/uplink_item/dd_SortValue() name = "9mm" path = /obj/item/ammo_magazine/mc9mm +/datum/uplink_item/item/ammo/c45m + name = ".45" + path = /obj/item/ammo_magazine/c45m + /datum/uplink_item/item/ammo/darts name = "Darts" path = /obj/item/ammo_magazine/chemdart @@ -163,6 +167,14 @@ datum/uplink_item/dd_SortValue() name = "14.5mm" path = /obj/item/weapon/storage/box/sniperammo +/datum/uplink_item/item/ammo/a556 + name = "5.56mm" + path = /obj/item/ammo_magazine/a556 + +/datum/uplink_item/item/ammo/a556/ap + name = "5.56mm AP" + path = /obj/item/ammo_magazine/a556/ap + /datum/uplink_item/item/ammo/a10mm name = "10mm" path = /obj/item/ammo_magazine/a10mm @@ -171,6 +183,23 @@ datum/uplink_item/dd_SortValue() name = "7.62mm" path = /obj/item/ammo_magazine/a762 +/datum/uplink_item/item/ammo/a762/ap + name = "7.62mm AP" + path = /obj/item/ammo_magazine/a762/ap + +/datum/uplink_item/item/ammo/g12 + name = "12 gauge" + path = /obj/item/ammo_magazine/g12 + +/datum/uplink_item/item/ammo/g12/beanbag + name = "12 gauge beanbag" + path = /obj/item/ammo_magazine/g12/beanbag + item_cost = 1 // Discount due to it being LTL. + +/datum/uplink_item/item/ammo/g12/pellet + name = "12 gauge pellet" + path = /obj/item/ammo_magazine/g12/pellet + /*************************************** * Highly Visible and Dangerous Weapons * ***************************************/ @@ -192,10 +221,10 @@ datum/uplink_item/dd_SortValue() item_cost = 5 path = /obj/item/weapon/gun/energy/crossbow -/datum/uplink_item/item/visible_weapons/g9mm - name = "Silenced 9mm" +/datum/uplink_item/item/visible_weapons/silenced_45 + name = "Silenced .45" item_cost = 5 - path = /obj/item/weapon/storage/box/syndie_kit/g9mm + path = /obj/item/weapon/gun/projectile/silenced /datum/uplink_item/item/visible_weapons/riggedlaser name = "Exosuit Rigged Laser" @@ -223,6 +252,36 @@ datum/uplink_item/dd_SortValue() item_cost = 7 path = /obj/item/weapon/gun/projectile/automatic/sts35 +/datum/uplink_item/item/visible_weapons/combatshotgun + name = "Combat Shotgun" + item_cost = 7 + path = /obj/item/weapon/gun/projectile/shotgun/pump/combat + +/datum/uplink_item/item/visible_weapons/egun + name = "Energy Gun" + item_cost = 5 + path = /obj/item/weapon/gun/energy/gun + +/datum/uplink_item/item/visible_weapons/lasercannon + name = "Laser Cannon" + item_cost = 6 + path = /obj/item/weapon/gun/energy/lasercannon + +/datum/uplink_item/item/visible_weapons/lasercarbine + name = "Laser Carbine" + item_cost = 7 + path = /obj/item/weapon/gun/energy/laser + +/datum/uplink_item/item/visible_weapons/ionrifle + name = "Ion Rifle" + item_cost = 5 + path = /obj/item/weapon/gun/energy/ionrifle + +/datum/uplink_item/item/visible_weapons/xray + name = "Xray Gun" + item_cost = 7 + path = /obj/item/weapon/gun/energy/xray + /************************************* * Stealthy and Inconspicuous Weapons * *************************************/ @@ -387,10 +446,6 @@ datum/uplink_item/dd_SortValue() item_cost = 20 path = /obj/item/weapon/circuitboard/teleporter -/datum/uplink_item/item/tools/teleporter/New() - ..() - antag_roles = list(MODE_MERCENARY) - /datum/uplink_item/item/tools/money name = "Operations Funding" item_cost = 3 @@ -573,7 +628,6 @@ datum/uplink_item/dd_SortValue() /datum/uplink_item/item/badassery/surplus/New() ..() - antag_roles = list(MODE_MERCENARY) desc = "A crate containing [item_worth] telecrystal\s worth of surplus leftovers." /datum/uplink_item/item/badassery/surplus/get_goods(var/obj/item/device/uplink/U, var/loc) @@ -622,7 +676,6 @@ var/image/default_abstract_uplink_icon ..() name = "[command_name()] Update Announcement" desc = "Causes a falsified [command_name()] Update. Triggers immediately after supplying additional data." - antag_roles = list(MODE_MERCENARY) /datum/uplink_item/abstract/announcements/fake_centcom/get_goods(var/obj/item/device/uplink/U, var/loc, var/mob/user, var/list/args) command_announcement.Announce(args.["message"], args.["title"]) @@ -633,10 +686,6 @@ var/image/default_abstract_uplink_icon desc = "Creates a fake crew arrival announcement as well as fake crew records, using your current appearance (including held items!) and worn id card. Trigger with care!" item_cost = 4 -/datum/uplink_item/abstract/announcements/fake_crew_arrival/New() - ..() - antag_roles = list(MODE_MERCENARY) - /datum/uplink_item/abstract/announcements/fake_crew_arrival/get_goods(var/obj/item/device/uplink/U, var/loc, var/mob/user, var/list/args) if(!user) return 0 diff --git a/code/game/objects/items/devices/uplink_random_lists.dm b/code/game/objects/items/devices/uplink_random_lists.dm index 4359918ceea..70cca951051 100644 --- a/code/game/objects/items/devices/uplink_random_lists.dm +++ b/code/game/objects/items/devices/uplink_random_lists.dm @@ -38,7 +38,7 @@ var/datum/uplink_random_selection/default_uplink_selection = new/datum/uplink_ra /datum/uplink_random_selection/default/New() ..() - items += new/datum/uplink_random_item(/datum/uplink_item/item/visible_weapons/g9mm) + items += new/datum/uplink_random_item(/datum/uplink_item/item/visible_weapons/silenced_45) items += new/datum/uplink_random_item(/datum/uplink_item/item/ammo/mc9mm) items += new/datum/uplink_random_item(/datum/uplink_item/item/visible_weapons/revolver) items += new/datum/uplink_random_item(/datum/uplink_item/item/ammo/a357) diff --git a/code/game/objects/items/stacks/medical.dm b/code/game/objects/items/stacks/medical.dm index 451b2c41af1..c55fd587c0b 100644 --- a/code/game/objects/items/stacks/medical.dm +++ b/code/game/objects/items/stacks/medical.dm @@ -2,8 +2,8 @@ name = "medical pack" singular_name = "medical pack" icon = 'icons/obj/items.dmi' - amount = 5 - max_amount = 5 + amount = 10 + max_amount = 10 w_class = 2 throw_speed = 4 throw_range = 20 @@ -65,24 +65,43 @@ var/obj/item/organ/external/affecting = H.get_organ(user.zone_sel.selecting) if(affecting.open == 0) - if(!affecting.bandage()) + if(affecting.is_bandaged()) user << "The wounds on [M]'s [affecting.name] have already been bandaged." return 1 else + user.visible_message("\The [user] starts treating [M]'s [affecting.name].", \ + "You start treating [M]'s [affecting.name]." ) + var/used = 0 for (var/datum/wound/W in affecting.wounds) if (W.internal) continue + if(W.bandaged) + continue + if(used == amount) + break + if(!do_mob(user, M, W.damage/5)) + user << "You must stand still to bandage wounds." + break + if (W.current_stage <= W.max_bleeding_stage) - user.visible_message("\The [user] bandages [W.desc] on [M]'s [affecting.name].", \ - "You bandage [W.desc] on [M]'s [affecting.name]." ) + user.visible_message("\The [user] bandages \a [W.desc] on [M]'s [affecting.name].", \ + "You bandage \a [W.desc] on [M]'s [affecting.name]." ) //H.add_side_effect("Itch") - else if (istype(W,/datum/wound/bruise)) - user.visible_message("\The [user] places a bruise patch over [W.desc] on [M]'s [affecting.name].", \ - "You place a bruise patch over [W.desc] on [M]'s [affecting.name]." ) + else if (W.damage_type == BRUISE) + user.visible_message("\The [user] places a bruise patch over \a [W.desc] on [M]'s [affecting.name].", \ + "You place a bruise patch over \a [W.desc] on [M]'s [affecting.name]." ) else - user.visible_message("\The [user] places a bandaid over [W.desc] on [M]'s [affecting.name].", \ - "You place a bandaid over [W.desc] on [M]'s [affecting.name]." ) - use(1) + 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() + used++ + affecting.update_damages() + if(used == amount) + if(affecting.is_bandaged()) + user << "\The [src] is used up." + else + user << "\The [src] is used up, but there are more wounds to treat on \the [affecting.name]." + use(used) else if (can_operate(H)) //Checks if mob is lying down on table for surgery if (do_surgery(H,user,src)) @@ -108,13 +127,19 @@ var/obj/item/organ/external/affecting = H.get_organ(user.zone_sel.selecting) if(affecting.open == 0) - if(!affecting.salve()) + if(affecting.is_salved()) user << "The wounds on [M]'s [affecting.name] have already been salved." return 1 else - user.visible_message("[user] salves wounds on [M]'s [affecting.name].", \ - "You salve wounds on [M]'s [affecting.name]." ) + user.visible_message("\The [user] starts salving wounds on [M]'s [affecting.name].", \ + "You start salving the wounds on [M]'s [affecting.name]." ) + if(!do_mob(user, M, 10)) + user << "You must stand still to salve wounds." + return 1 + user.visible_message("[user] salved wounds on [M]'s [affecting.name].", \ + "You salved wounds on [M]'s [affecting.name]." ) use(1) + affecting.salve() else if (can_operate(H)) //Checks if mob is lying down on table for surgery if (do_surgery(H,user,src)) @@ -127,7 +152,7 @@ singular_name = "advanced trauma kit" desc = "An advanced trauma kit for severe injuries." icon_state = "traumakit" - heal_brute = 12 + heal_brute = 0 origin_tech = list(TECH_BIO = 1) /obj/item/stack/medical/advanced/bruise_pack/attack(mob/living/carbon/M as mob, mob/user as mob) @@ -139,29 +164,43 @@ var/obj/item/organ/external/affecting = H.get_organ(user.zone_sel.selecting) if(affecting.open == 0) - var/bandaged = affecting.bandage() - var/disinfected = affecting.disinfect() - - if(!(bandaged || disinfected)) + if(affecting.is_bandaged() && affecting.is_disinfected()) user << "The wounds on [M]'s [affecting.name] have already been treated." return 1 else + user.visible_message("\The [user] starts treating [M]'s [affecting.name].", \ + "You start treating [M]'s [affecting.name]." ) + var/used = 0 for (var/datum/wound/W in affecting.wounds) if (W.internal) continue + if (W.bandaged && W.disinfected) + continue + if(used == amount) + break + if(!do_mob(user, M, W.damage/5)) + user << "You must stand still to bandage wounds." + break if (W.current_stage <= W.max_bleeding_stage) - user.visible_message("\The [user] cleans [W.desc] on [M]'s [affecting.name] and seals the edges with bioglue.", \ - "You clean and seal [W.desc] on [M]'s [affecting.name]." ) - //H.add_side_effect("Itch") - else if (istype(W,/datum/wound/bruise)) - user.visible_message("\The [user] places a medical patch over [W.desc] on [M]'s [affecting.name].", \ - "You place a medical patch over [W.desc] on [M]'s [affecting.name]." ) + user.visible_message("\The [user] cleans \a [W.desc] on [M]'s [affecting.name] and seals the edges with bioglue.", \ + "You clean and seal \a [W.desc] on [M]'s [affecting.name]." ) + else if (W.damage_type == BRUISE) + user.visible_message("\The [user] places a medical patch over \a [W.desc] on [M]'s [affecting.name].", \ + "You place a medical patch over \a [W.desc] on [M]'s [affecting.name]." ) else - user.visible_message("\The [user] smears some bioglue over [W.desc] on [M]'s [affecting.name].", \ - "You smear some bioglue over [W.desc] on [M]'s [affecting.name]." ) - if (bandaged) - affecting.heal_damage(heal_brute,0) - use(1) + user.visible_message("\The [user] smears some bioglue over \a [W.desc] on [M]'s [affecting.name].", \ + "You smear some bioglue over \a [W.desc] on [M]'s [affecting.name]." ) + W.bandage() + W.disinfect() + W.heal_damage(heal_brute) + used++ + affecting.update_damages() + if(used == amount) + if(affecting.is_bandaged()) + user << "\The [src] is used up." + else + user << "\The [src] is used up, but there are more wounds to treat on \the [affecting.name]." + use(used) else if (can_operate(H)) //Checks if mob is lying down on table for surgery if (do_surgery(H,user,src)) @@ -174,7 +213,7 @@ singular_name = "advanced burn kit" desc = "An advanced treatment kit for severe burns." icon_state = "burnkit" - heal_burn = 12 + heal_burn = 0 origin_tech = list(TECH_BIO = 1) @@ -187,14 +226,20 @@ var/obj/item/organ/external/affecting = H.get_organ(user.zone_sel.selecting) if(affecting.open == 0) - if(!affecting.salve()) + if(affecting.is_salved()) user << "The wounds on [M]'s [affecting.name] have already been salved." return 1 else + user.visible_message("\The [user] starts salving wounds on [M]'s [affecting.name].", \ + "You start salving the wounds on [M]'s [affecting.name]." ) + if(!do_mob(user, M, 10)) + user << "You must stand still to salve wounds." + return 1 user.visible_message( "[user] covers wounds on [M]'s [affecting.name] with regenerative membrane.", \ "You cover wounds on [M]'s [affecting.name] with regenerative membrane." ) affecting.heal_damage(0,heal_burn) use(1) + affecting.salve() else if (can_operate(H)) //Checks if mob is lying down on table for surgery if (do_surgery(H,user,src)) diff --git a/code/game/objects/items/weapons/cards_ids.dm b/code/game/objects/items/weapons/cards_ids.dm index 17e9d35ab95..6d1a2eaa3dc 100644 --- a/code/game/objects/items/weapons/cards_ids.dm +++ b/code/game/objects/items/weapons/cards_ids.dm @@ -68,6 +68,7 @@ icon_state = "emag" item_state = "card-id" origin_tech = list(TECH_MAGNET = 2, TECH_ILLEGAL = 2) + var/default_uses = 10 var/uses = 10 /obj/item/weapon/card/emag/resolve_attackby(atom/A, mob/user) @@ -87,6 +88,12 @@ qdel(src) return 1 +/obj/item/weapon/card/emag/attackby(obj/item/O as obj, mob/user as mob) + if(istype(O, /obj/item/device/telecrystal)) + src.uses += default_uses/2 //Adds half the default amount of uses which is more than you get per TC when buying, as to balance the utility of having multiple emags vs one heavily usable one + usr << "You add \the [O] to \the [src]. Increasing the uses of \the [src] to [uses]." + qdel(O) + /obj/item/weapon/card/id name = "identification card" diff --git a/code/game/objects/items/weapons/circuitboards/frame.dm b/code/game/objects/items/weapons/circuitboards/frame.dm index 30be1d52f7b..3acb2de7558 100644 --- a/code/game/objects/items/weapons/circuitboards/frame.dm +++ b/code/game/objects/items/weapons/circuitboards/frame.dm @@ -36,6 +36,12 @@ board_type = "atm" matter = list(DEFAULT_WALL_MATERIAL = 50, "glass" = 50) +/obj/item/weapon/circuitboard/request + name = T_BOARD("reques console") + build_path = /obj/machinery/requests_console + board_type = "request" + matter = list(DEFAULT_WALL_MATERIAL = 50, "glass" = 50) + //Alarm /obj/item/weapon/circuitboard/firealarm @@ -70,6 +76,18 @@ board_type = "holopad" matter = list(DEFAULT_WALL_MATERIAL = 50, "glass" = 50) +/obj/item/weapon/circuitboard/scanner_console + name = T_BOARD("body scanner console") + build_path = /obj/machinery/body_scanconsole + board_type = "console" + origin_tech = list(TECH_MAGNET = 2, TECH_BIO = 2) + +/obj/item/weapon/circuitboard/sleeper_console + name = T_BOARD("sleeper console") + build_path = /obj/machinery/sleep_console + board_type = "console" + origin_tech = list(TECH_MAGNET = 2, TECH_BIO = 2) + //Machine /obj/item/weapon/circuitboard/photocopier @@ -78,10 +96,10 @@ board_type = "photocopier" matter = list(DEFAULT_WALL_MATERIAL = 50, "glass" = 50) req_components = list( - "/obj/item/weapon/stock_parts/scanning_module" = 1, - "/obj/item/weapon/stock_parts/motor" = 1, - "/obj/item/weapon/stock_parts/micro_laser" = 1, - "/obj/item/weapon/stock_parts/matter_bin" = 1) + /obj/item/weapon/stock_parts/scanning_module = 1, + /obj/item/weapon/stock_parts/motor = 1, + /obj/item/weapon/stock_parts/micro_laser = 1, + /obj/item/weapon/stock_parts/matter_bin = 1) /obj/item/weapon/circuitboard/fax name = T_BOARD("fax") @@ -89,19 +107,19 @@ board_type = "fax" matter = list(DEFAULT_WALL_MATERIAL = 50, "glass" = 50) req_components = list( - "/obj/item/weapon/stock_parts/scanning_module" = 1, - "/obj/item/weapon/stock_parts/motor" = 1, - "/obj/item/weapon/stock_parts/micro_laser" = 1, - "/obj/item/weapon/stock_parts/matter_bin" = 1) + /obj/item/weapon/stock_parts/scanning_module = 1, + /obj/item/weapon/stock_parts/motor = 1, + /obj/item/weapon/stock_parts/micro_laser = 1, + /obj/item/weapon/stock_parts/matter_bin = 1) /obj/item/weapon/circuitboard/conveyor name = T_BOARD("conveyor") build_path = /obj/machinery/conveyor board_type = "conveyor" req_components = list( - "/obj/item/weapon/stock_parts/gear" = 2, - "/obj/item/weapon/stock_parts/motor" = 2, - "/obj/item/stack/cable_coil" = 5) + /obj/item/weapon/stock_parts/gear = 2, + /obj/item/weapon/stock_parts/motor = 2, + /obj/item/stack/cable_coil = 5) /obj/item/weapon/circuitboard/microwave name = T_BOARD("microwave") @@ -109,29 +127,17 @@ board_type = "microwave" matter = list(DEFAULT_WALL_MATERIAL = 50, "glass" = 50) req_components = list( - "/obj/item/weapon/stock_parts/console_screen" = 1, - "/obj/item/weapon/stock_parts/motor" = 1, - "/obj/item/weapon/stock_parts/capacitor" = 1) - -/obj/item/weapon/circuitboard/vending - name = T_BOARD("vending") - build_path = /obj/machinery/vending - board_type = "vending" - matter = list(DEFAULT_WALL_MATERIAL = 50, "glass" = 50) - req_components = list( - "/obj/item/weapon/stock_parts/console_screen" = 1, - "/obj/item/weapon/stock_parts/motor" = 2, - "/obj/item/weapon/stock_parts/spring" = 2, - "/obj/item/stack/material/glass/reinforced" = 2) + /obj/item/weapon/stock_parts/console_screen = 1, + /obj/item/weapon/stock_parts/motor = 1, + /obj/item/weapon/stock_parts/capacitor = 1) /obj/item/weapon/circuitboard/recharger name = T_BOARD("recharger") build_path = /obj/machinery/recharger board_type = "recharger" - matter = list(DEFAULT_WALL_MATERIAL = 50, "glass" = 50) req_components = list( - "/obj/item/weapon/stock_parts/capacitor" = 1, - "/obj/item/stack/cable_coil" = 5) + /obj/item/weapon/stock_parts/capacitor = 1, + /obj/item/stack/cable_coil = 5) /obj/item/weapon/circuitboard/recharger/wrecharger name = T_BOARD("wall recharger") @@ -144,18 +150,78 @@ board_type = "washing" matter = list(DEFAULT_WALL_MATERIAL = 50, "glass" = 50) req_components = list( - "/obj/item/weapon/stock_parts/motor" = 1, - "/obj/item/weapon/stock_parts/gear" = 2) + /obj/item/weapon/stock_parts/motor = 1, + /obj/item/weapon/stock_parts/gear = 2) /obj/item/weapon/circuitboard/grinder name = T_BOARD("reagent grinder") build_path = /obj/machinery/reagentgrinder board_type = "grinder" - matter = list(DEFAULT_WALL_MATERIAL = 50, "glass" = 50) req_components = list( - "/obj/item/weapon/stock_parts/motor" = 1, - "/obj/item/weapon/stock_parts/gear" = 1, - "/obj/item/weapon/reagent_containers/glass/beaker/large" = 1) + /obj/item/weapon/stock_parts/motor = 1, + /obj/item/weapon/stock_parts/gear = 1, + /obj/item/weapon/reagent_containers/glass/beaker/large = 1) + +/obj/item/weapon/circuitboard/teleporter_hub + name = T_BOARD("teleporter hub") + build_path = /obj/machinery/teleport/hub + board_type = "teleporter_hub" +// origin_tech = list(TECH_DATA = 2, TECH_BLUESPACE = 4) + req_components = list( + /obj/item/weapon/stock_parts/scanning_module = 4, + /obj/item/weapon/stock_parts/micro_laser = 4, + /obj/item/stack/cable_coil = 10) + +/obj/item/weapon/circuitboard/teleporter_station + name = T_BOARD("teleporter station") + build_path = /obj/machinery/teleport/station + board_type = "teleporter_station" +// origin_tech = list(TECH_DATA = 2, TECH_BLUESPACE = 3) + req_components = list( + /obj/item/weapon/stock_parts/console_screen = 1, + /obj/item/weapon/stock_parts/capacitor = 2, + /obj/item/stack/cable_coil = 10) + +/obj/item/weapon/circuitboard/body_scanner + name = T_BOARD("body scanner") + build_path = /obj/machinery/bodyscanner + board_type = "medpod" + origin_tech = list(TECH_MAGNET = 2, TECH_BIO = 2) + req_components = list( + /obj/item/weapon/stock_parts/scanning_module = 3, + /obj/item/stack/material/glass/reinforced = 2) + +/obj/item/weapon/circuitboard/sleeper + name = T_BOARD("sleeper") + build_path = /obj/machinery/sleeper + board_type = "medpod" + origin_tech = list(TECH_MAGNET = 2, TECH_BIO = 2) + req_components = list( + /obj/item/weapon/stock_parts/scanning_module = 1, + /obj/item/weapon/reagent_containers/glass/beaker = 3, + /obj/item/weapon/reagent_containers/syringe = 3, + /obj/item/stack/material/glass/reinforced = 2) + +/obj/item/weapon/circuitboard/dna_analyzer + name = T_BOARD("dna analyzer") + build_path = /obj/machinery/dnaforensics + board_type = "dna_analyzer" + origin_tech = list(TECH_MAGNET = 4, TECH_BIO = 2, TECH_DATA = 2) + req_components = list( + /obj/item/weapon/stock_parts/scanning_module = 2, + /obj/item/weapon/stock_parts/micro_laser = 1, + /obj/item/weapon/stock_parts/console_screen = 1) + +/obj/item/weapon/circuitboard/mass_driver + name = T_BOARD("mass driver") + build_path = /obj/machinery/mass_driver + board_type = "massdriver" + req_components = list( + /obj/item/weapon/stock_parts/gear = 2, + /obj/item/weapon/stock_parts/motor = 2, + /obj/item/weapon/stock_parts/capacitor = 1, + /obj/item/weapon/stock_parts/spring = 1, + /obj/item/stack/cable_coil = 5) //for testing - If this is still in when I commit, someone shoot me. --leaving in for now, shouldn't be able to get these on station anyways. /obj/item/weapon/storage/box/frame_parts @@ -175,7 +241,6 @@ new /obj/item/weapon/circuitboard/photocopier( src ) new /obj/item/weapon/circuitboard/fax( src ) new /obj/item/weapon/circuitboard/microwave( src ) - new /obj/item/weapon/circuitboard/vending( src ) new /obj/item/weapon/circuitboard/washing( src ) new /obj/item/weapon/stock_parts/scanning_module( src ) new /obj/item/weapon/stock_parts/motor( src ) diff --git a/code/game/objects/items/weapons/circuitboards/machinery/biogenerator.dm b/code/game/objects/items/weapons/circuitboards/machinery/biogenerator.dm index 65949ae338b..716e763515c 100644 --- a/code/game/objects/items/weapons/circuitboards/machinery/biogenerator.dm +++ b/code/game/objects/items/weapons/circuitboards/machinery/biogenerator.dm @@ -1,5 +1,5 @@ #ifndef T_BOARD -#error T_BOARD macro is not defined but we need it! +#error T_BOARD macro is not defined but we need it! #endif /obj/item/weapon/circuitboard/biogenerator @@ -8,5 +8,5 @@ board_type = "machine" origin_tech = list(TECH_DATA = 2) req_components = list( - "/obj/item/weapon/stock_parts/matter_bin" = 1, - "/obj/item/weapon/stock_parts/manipulator" = 1) \ No newline at end of file + /obj/item/weapon/stock_parts/matter_bin = 1, + /obj/item/weapon/stock_parts/manipulator = 1) \ No newline at end of file diff --git a/code/game/objects/items/weapons/circuitboards/machinery/cloning.dm b/code/game/objects/items/weapons/circuitboards/machinery/cloning.dm index b80a3abd34a..a1edb3f4646 100644 --- a/code/game/objects/items/weapons/circuitboards/machinery/cloning.dm +++ b/code/game/objects/items/weapons/circuitboards/machinery/cloning.dm @@ -1,5 +1,5 @@ #ifndef T_BOARD -#error T_BOARD macro is not defined but we need it! +#error T_BOARD macro is not defined but we need it! #endif /obj/item/weapon/circuitboard/clonepod @@ -8,10 +8,10 @@ board_type = "machine" origin_tech = list(TECH_DATA = 3, TECH_BIO = 3) req_components = list( - "/obj/item/stack/cable_coil" = 2, - "/obj/item/weapon/stock_parts/scanning_module" = 2, - "/obj/item/weapon/stock_parts/manipulator" = 2, - "/obj/item/weapon/stock_parts/console_screen" = 1) + /obj/item/stack/cable_coil = 2, + /obj/item/weapon/stock_parts/scanning_module = 2, + /obj/item/weapon/stock_parts/manipulator = 2, + /obj/item/weapon/stock_parts/console_screen = 1) /obj/item/weapon/circuitboard/clonescanner name = T_BOARD("cloning scanner") @@ -19,8 +19,8 @@ board_type = "machine" origin_tech = list(TECH_DATA = 2, TECH_BIO = 2) req_components = list( - "/obj/item/weapon/stock_parts/scanning_module" = 1, - "/obj/item/weapon/stock_parts/manipulator" = 1, - "/obj/item/weapon/stock_parts/micro_laser" = 1, - "/obj/item/weapon/stock_parts/console_screen" = 1, - "/obj/item/stack/cable_coil" = 2) + /obj/item/weapon/stock_parts/scanning_module = 1, + /obj/item/weapon/stock_parts/manipulator = 1, + /obj/item/weapon/stock_parts/micro_laser = 1, + /obj/item/weapon/stock_parts/console_screen = 1, + /obj/item/stack/cable_coil = 2) diff --git a/code/game/objects/items/weapons/circuitboards/machinery/mech_recharger.dm b/code/game/objects/items/weapons/circuitboards/machinery/mech_recharger.dm index 6b8eb5d5e5c..4515bfd74bc 100644 --- a/code/game/objects/items/weapons/circuitboards/machinery/mech_recharger.dm +++ b/code/game/objects/items/weapons/circuitboards/machinery/mech_recharger.dm @@ -1,5 +1,5 @@ #ifndef T_BOARD -#error T_BOARD macro is not defined but we need it! +#error T_BOARD macro is not defined but we need it! #endif /obj/item/weapon/circuitboard/mech_recharger @@ -8,6 +8,6 @@ board_type = "machine" origin_tech = list(TECH_DATA = 2, TECH_POWER = 2, TECH_ENGINEERING = 2) req_components = list( - "/obj/item/weapon/stock_parts/capacitor" = 2, - "/obj/item/weapon/stock_parts/scanning_module" = 1, - "/obj/item/weapon/stock_parts/manipulator" = 2) \ No newline at end of file + /obj/item/weapon/stock_parts/capacitor = 2, + /obj/item/weapon/stock_parts/scanning_module = 1, + /obj/item/weapon/stock_parts/manipulator = 2) \ No newline at end of file diff --git a/code/game/objects/items/weapons/circuitboards/machinery/mining_drill.dm b/code/game/objects/items/weapons/circuitboards/machinery/mining_drill.dm index a31a73684a4..653d20d6669 100644 --- a/code/game/objects/items/weapons/circuitboards/machinery/mining_drill.dm +++ b/code/game/objects/items/weapons/circuitboards/machinery/mining_drill.dm @@ -1,5 +1,5 @@ #ifndef T_BOARD -#error T_BOARD macro is not defined but we need it! +#error T_BOARD macro is not defined but we need it! #endif /obj/item/weapon/circuitboard/miningdrill @@ -8,10 +8,10 @@ board_type = "machine" origin_tech = list(TECH_DATA = 1, TECH_ENGINEERING = 1) req_components = list( - "/obj/item/weapon/stock_parts/capacitor" = 1, - "/obj/item/weapon/cell" = 1, - "/obj/item/weapon/stock_parts/matter_bin" = 1, - "/obj/item/weapon/stock_parts/micro_laser" = 1) + /obj/item/weapon/stock_parts/capacitor = 1, + /obj/item/weapon/cell = 1, + /obj/item/weapon/stock_parts/matter_bin = 1, + /obj/item/weapon/stock_parts/micro_laser = 1) /obj/item/weapon/circuitboard/miningdrillbrace name = T_BOARD("mining drill brace") diff --git a/code/game/objects/items/weapons/circuitboards/machinery/pacman.dm b/code/game/objects/items/weapons/circuitboards/machinery/pacman.dm index 02bf65fb0a8..a5cd69b0f4a 100644 --- a/code/game/objects/items/weapons/circuitboards/machinery/pacman.dm +++ b/code/game/objects/items/weapons/circuitboards/machinery/pacman.dm @@ -1,5 +1,5 @@ #ifndef T_BOARD -#error T_BOARD macro is not defined but we need it! +#error T_BOARD macro is not defined but we need it! #endif /obj/item/weapon/circuitboard/pacman @@ -8,10 +8,10 @@ board_type = "machine" origin_tech = list(TECH_DATA = 3, TECH_POWER = 3, TECH_PHORON = 3, TECH_ENGINEERING = 3) req_components = list( - "/obj/item/weapon/stock_parts/matter_bin" = 1, - "/obj/item/weapon/stock_parts/micro_laser" = 1, - "/obj/item/stack/cable_coil" = 2, - "/obj/item/weapon/stock_parts/capacitor" = 1) + /obj/item/weapon/stock_parts/matter_bin = 1, + /obj/item/weapon/stock_parts/micro_laser = 1, + /obj/item/stack/cable_coil = 2, + /obj/item/weapon/stock_parts/capacitor = 1) /obj/item/weapon/circuitboard/pacman/super name = T_BOARD("SUPERPACMAN-type generator") diff --git a/code/game/objects/items/weapons/circuitboards/machinery/power.dm b/code/game/objects/items/weapons/circuitboards/machinery/power.dm index a8d2e1ea372..5c8975a207f 100644 --- a/code/game/objects/items/weapons/circuitboards/machinery/power.dm +++ b/code/game/objects/items/weapons/circuitboards/machinery/power.dm @@ -1,5 +1,5 @@ #ifndef T_BOARD -#error T_BOARD macro is not defined but we need it! +#error T_BOARD macro is not defined but we need it! #endif /obj/item/weapon/circuitboard/smes @@ -7,18 +7,18 @@ build_path = "/obj/machinery/power/smes/buildable" board_type = "machine" origin_tech = list(TECH_POWER = 6, TECH_ENGINEERING = 4) - req_components = list("/obj/item/weapon/smes_coil" = 1, "/obj/item/stack/cable_coil" = 30) + req_components = list(/obj/item/weapon/smes_coil = 1, /obj/item/stack/cable_coil = 30) /obj/item/weapon/circuitboard/batteryrack name = T_BOARD("battery rack PSU") build_path = "/obj/machinery/power/smes/batteryrack" board_type = "machine" origin_tech = list(TECH_POWER = 3, TECH_ENGINEERING = 2) - req_components = list("/obj/item/weapon/cell" = 3) + req_components = list(/obj/item/weapon/cell = 3) /obj/item/weapon/circuitboard/ghettosmes name = T_BOARD("makeshift PSU") desc = "An APC circuit repurposed into some power storage device controller" build_path = "/obj/machinery/power/smes/batteryrack/makeshift" board_type = "machine" - req_components = list("/obj/item/weapon/cell" = 3) + req_components = list(/obj/item/weapon/cell = 3) diff --git a/code/game/objects/items/weapons/circuitboards/machinery/recharge_station.dm b/code/game/objects/items/weapons/circuitboards/machinery/recharge_station.dm index 27e4c652c6f..a3684cd894c 100644 --- a/code/game/objects/items/weapons/circuitboards/machinery/recharge_station.dm +++ b/code/game/objects/items/weapons/circuitboards/machinery/recharge_station.dm @@ -1,5 +1,5 @@ #ifndef T_BOARD -#error T_BOARD macro is not defined but we need it! +#error T_BOARD macro is not defined but we need it! #endif /obj/item/weapon/circuitboard/recharge_station @@ -8,7 +8,7 @@ board_type = "machine" origin_tech = list(TECH_DATA = 3, TECH_ENGINEERING = 3) req_components = list( - "/obj/item/stack/cable_coil" = 5, - "/obj/item/weapon/stock_parts/capacitor" = 2, - "/obj/item/weapon/stock_parts/manipulator" = 2, - "/obj/item/weapon/cell" = 1) \ No newline at end of file + /obj/item/stack/cable_coil = 5, + /obj/item/weapon/stock_parts/capacitor = 2, + /obj/item/weapon/stock_parts/manipulator = 2, + /obj/item/weapon/cell = 1) \ No newline at end of file diff --git a/code/game/objects/items/weapons/circuitboards/machinery/research.dm b/code/game/objects/items/weapons/circuitboards/machinery/research.dm index ee2a2b054c8..bf0eb357f43 100644 --- a/code/game/objects/items/weapons/circuitboards/machinery/research.dm +++ b/code/game/objects/items/weapons/circuitboards/machinery/research.dm @@ -1,5 +1,5 @@ #ifndef T_BOARD -#error T_BOARD macro is not defined but we need it! +#error T_BOARD macro is not defined but we need it! #endif obj/item/weapon/circuitboard/rdserver @@ -8,8 +8,8 @@ obj/item/weapon/circuitboard/rdserver board_type = "machine" origin_tech = list(TECH_DATA = 3) req_components = list( - "/obj/item/stack/cable_coil" = 2, - "/obj/item/weapon/stock_parts/scanning_module" = 1) + /obj/item/stack/cable_coil = 2, + /obj/item/weapon/stock_parts/scanning_module = 1) /obj/item/weapon/circuitboard/destructive_analyzer name = T_BOARD("destructive analyzer") @@ -17,9 +17,9 @@ obj/item/weapon/circuitboard/rdserver board_type = "machine" origin_tech = list(TECH_MAGNET = 2, TECH_ENGINEERING = 2, TECH_DATA = 2) req_components = list( - "/obj/item/weapon/stock_parts/scanning_module" = 1, - "/obj/item/weapon/stock_parts/manipulator" = 1, - "/obj/item/weapon/stock_parts/micro_laser" = 1) + /obj/item/weapon/stock_parts/scanning_module = 1, + /obj/item/weapon/stock_parts/manipulator = 1, + /obj/item/weapon/stock_parts/micro_laser = 1) /obj/item/weapon/circuitboard/autolathe name = T_BOARD("autolathe") @@ -27,9 +27,9 @@ obj/item/weapon/circuitboard/rdserver board_type = "machine" origin_tech = list(TECH_ENGINEERING = 2, TECH_DATA = 2) req_components = list( - "/obj/item/weapon/stock_parts/matter_bin" = 3, - "/obj/item/weapon/stock_parts/manipulator" = 1, - "/obj/item/weapon/stock_parts/console_screen" = 1) + /obj/item/weapon/stock_parts/matter_bin = 3, + /obj/item/weapon/stock_parts/manipulator = 1, + /obj/item/weapon/stock_parts/console_screen = 1) /obj/item/weapon/circuitboard/protolathe name = T_BOARD("protolathe") @@ -37,10 +37,9 @@ obj/item/weapon/circuitboard/rdserver board_type = "machine" origin_tech = list(TECH_ENGINEERING = 2, TECH_DATA = 2) req_components = list( - "/obj/item/weapon/stock_parts/matter_bin" = 2, - "/obj/item/weapon/stock_parts/manipulator" = 2, - "/obj/item/weapon/reagent_containers/glass/beaker" = 2) - + /obj/item/weapon/stock_parts/matter_bin = 2, + /obj/item/weapon/stock_parts/manipulator = 2, + /obj/item/weapon/reagent_containers/glass/beaker = 2) /obj/item/weapon/circuitboard/circuit_imprinter name = T_BOARD("circuit imprinter") @@ -48,9 +47,9 @@ obj/item/weapon/circuitboard/rdserver board_type = "machine" origin_tech = list(TECH_ENGINEERING = 2, TECH_DATA = 2) req_components = list( - "/obj/item/weapon/stock_parts/matter_bin" = 1, - "/obj/item/weapon/stock_parts/manipulator" = 1, - "/obj/item/weapon/reagent_containers/glass/beaker" = 2) + /obj/item/weapon/stock_parts/matter_bin = 1, + /obj/item/weapon/stock_parts/manipulator = 1, + /obj/item/weapon/reagent_containers/glass/beaker = 2) /obj/item/weapon/circuitboard/mechfab name = "Circuit board (Exosuit Fabricator)" @@ -58,7 +57,7 @@ obj/item/weapon/circuitboard/rdserver board_type = "machine" origin_tech = list(TECH_DATA = 3, TECH_ENGINEERING = 3) req_components = list( - "/obj/item/weapon/stock_parts/matter_bin" = 2, - "/obj/item/weapon/stock_parts/manipulator" = 1, - "/obj/item/weapon/stock_parts/micro_laser" = 1, - "/obj/item/weapon/stock_parts/console_screen" = 1) + /obj/item/weapon/stock_parts/matter_bin = 2, + /obj/item/weapon/stock_parts/manipulator = 1, + /obj/item/weapon/stock_parts/micro_laser = 1, + /obj/item/weapon/stock_parts/console_screen = 1) diff --git a/code/game/objects/items/weapons/circuitboards/machinery/shieldgen.dm b/code/game/objects/items/weapons/circuitboards/machinery/shieldgen.dm index 6dc0a3f7ab8..7218b7f094d 100644 --- a/code/game/objects/items/weapons/circuitboards/machinery/shieldgen.dm +++ b/code/game/objects/items/weapons/circuitboards/machinery/shieldgen.dm @@ -1,5 +1,5 @@ #ifndef T_BOARD -#error T_BOARD macro is not defined but we need it! +#error T_BOARD macro is not defined but we need it! #endif /obj/item/weapon/circuitboard/shield_gen_ex @@ -8,12 +8,12 @@ build_path = "/obj/machinery/shield_gen/external" origin_tech = list(TECH_BLUESPACE = 4, TECH_PHORON = 3) req_components = list( - "/obj/item/weapon/stock_parts/manipulator/pico" = 2, - "/obj/item/weapon/stock_parts/subspace/transmitter" = 1, - "/obj/item/weapon/stock_parts/subspace/crystal" = 1, - "/obj/item/weapon/stock_parts/subspace/amplifier" = 1, - "/obj/item/weapon/stock_parts/console_screen" = 1, - "/obj/item/stack/cable_coil" = 5) + /obj/item/weapon/stock_parts/manipulator/pico = 2, + /obj/item/weapon/stock_parts/subspace/transmitter = 1, + /obj/item/weapon/stock_parts/subspace/crystal = 1, + /obj/item/weapon/stock_parts/subspace/amplifier = 1, + /obj/item/weapon/stock_parts/console_screen = 1, + /obj/item/stack/cable_coil = 5) /obj/item/weapon/circuitboard/shield_gen name = T_BOARD("bubble shield generator") @@ -21,12 +21,12 @@ build_path = "/obj/machinery/shield_gen" origin_tech = list(TECH_BLUESPACE = 4, TECH_PHORON = 3) req_components = list( - "/obj/item/weapon/stock_parts/manipulator/pico" = 2, - "/obj/item/weapon/stock_parts/subspace/transmitter" = 1, - "/obj/item/weapon/stock_parts/subspace/crystal" = 1, - "/obj/item/weapon/stock_parts/subspace/amplifier" = 1, - "/obj/item/weapon/stock_parts/console_screen" = 1, - "/obj/item/stack/cable_coil" = 5) + /obj/item/weapon/stock_parts/manipulator/pico = 2, + /obj/item/weapon/stock_parts/subspace/transmitter = 1, + /obj/item/weapon/stock_parts/subspace/crystal = 1, + /obj/item/weapon/stock_parts/subspace/amplifier = 1, + /obj/item/weapon/stock_parts/console_screen = 1, + /obj/item/stack/cable_coil = 5) /obj/item/weapon/circuitboard/shield_cap name = T_BOARD("shield capacitor") @@ -34,9 +34,9 @@ build_path = "/obj/machinery/shield_capacitor" origin_tech = list(TECH_MAGNET = 3, TECH_POWER = 4) req_components = list( - "/obj/item/weapon/stock_parts/manipulator/pico" = 2, - "/obj/item/weapon/stock_parts/subspace/filter" = 1, - "/obj/item/weapon/stock_parts/subspace/treatment" = 1, - "/obj/item/weapon/stock_parts/subspace/analyzer" = 1, - "/obj/item/weapon/stock_parts/console_screen" = 1, - "/obj/item/stack/cable_coil" = 5) + /obj/item/weapon/stock_parts/manipulator/pico = 2, + /obj/item/weapon/stock_parts/subspace/filter = 1, + /obj/item/weapon/stock_parts/subspace/treatment = 1, + /obj/item/weapon/stock_parts/subspace/analyzer = 1, + /obj/item/weapon/stock_parts/console_screen = 1, + /obj/item/stack/cable_coil = 5) diff --git a/code/game/objects/items/weapons/circuitboards/machinery/telecomms.dm b/code/game/objects/items/weapons/circuitboards/machinery/telecomms.dm index 9ee761a7305..43b654d58de 100644 --- a/code/game/objects/items/weapons/circuitboards/machinery/telecomms.dm +++ b/code/game/objects/items/weapons/circuitboards/machinery/telecomms.dm @@ -10,69 +10,69 @@ build_path = "/obj/machinery/telecomms/receiver" origin_tech = list(TECH_DATA = 4, TECH_ENGINEERING = 3, TECH_BLUESPACE = 2) req_components = list( - "/obj/item/weapon/stock_parts/subspace/ansible" = 1, - "/obj/item/weapon/stock_parts/subspace/filter" = 1, - "/obj/item/weapon/stock_parts/manipulator" = 2, - "/obj/item/weapon/stock_parts/micro_laser" = 1) + /obj/item/weapon/stock_parts/subspace/ansible = 1, + /obj/item/weapon/stock_parts/subspace/filter = 1, + /obj/item/weapon/stock_parts/manipulator = 2, + /obj/item/weapon/stock_parts/micro_laser = 1) /obj/item/weapon/circuitboard/telecomms/hub name = T_BOARD("hub mainframe") build_path = "/obj/machinery/telecomms/hub" origin_tech = list(TECH_DATA = 4, TECH_ENGINEERING = 4) req_components = list( - "/obj/item/weapon/stock_parts/manipulator" = 2, - "/obj/item/stack/cable_coil" = 2, - "/obj/item/weapon/stock_parts/subspace/filter" = 2) + /obj/item/weapon/stock_parts/manipulator = 2, + /obj/item/stack/cable_coil = 2, + /obj/item/weapon/stock_parts/subspace/filter = 2) /obj/item/weapon/circuitboard/telecomms/relay name = T_BOARD("relay mainframe") build_path = "/obj/machinery/telecomms/relay" origin_tech = list(TECH_DATA = 3, TECH_ENGINEERING = 4, TECH_BLUESPACE = 3) req_components = list( - "/obj/item/weapon/stock_parts/manipulator" = 2, - "/obj/item/stack/cable_coil" = 2, - "/obj/item/weapon/stock_parts/subspace/filter" = 2) + /obj/item/weapon/stock_parts/manipulator = 2, + /obj/item/stack/cable_coil = 2, + /obj/item/weapon/stock_parts/subspace/filter = 2) /obj/item/weapon/circuitboard/telecomms/bus name = T_BOARD("bus mainframe") build_path = "/obj/machinery/telecomms/bus" origin_tech = list(TECH_DATA = 4, TECH_ENGINEERING = 4) req_components = list( - "/obj/item/weapon/stock_parts/manipulator" = 2, - "/obj/item/stack/cable_coil" = 1, - "/obj/item/weapon/stock_parts/subspace/filter" = 1) + /obj/item/weapon/stock_parts/manipulator = 2, + /obj/item/stack/cable_coil = 1, + /obj/item/weapon/stock_parts/subspace/filter = 1) /obj/item/weapon/circuitboard/telecomms/processor name = T_BOARD("processor unit") build_path = "/obj/machinery/telecomms/processor" origin_tech = list(TECH_DATA = 4, TECH_ENGINEERING = 4) req_components = list( - "/obj/item/weapon/stock_parts/manipulator" = 3, - "/obj/item/weapon/stock_parts/subspace/filter" = 1, - "/obj/item/weapon/stock_parts/subspace/treatment" = 2, - "/obj/item/weapon/stock_parts/subspace/analyzer" = 1, - "/obj/item/stack/cable_coil" = 2, - "/obj/item/weapon/stock_parts/subspace/amplifier" = 1) + /obj/item/weapon/stock_parts/manipulator = 3, + /obj/item/weapon/stock_parts/subspace/filter = 1, + /obj/item/weapon/stock_parts/subspace/treatment = 2, + /obj/item/weapon/stock_parts/subspace/analyzer = 1, + /obj/item/stack/cable_coil = 2, + /obj/item/weapon/stock_parts/subspace/amplifier = 1) /obj/item/weapon/circuitboard/telecomms/server name = T_BOARD("telecommunication server") build_path = "/obj/machinery/telecomms/server" origin_tech = list(TECH_DATA = 4, TECH_ENGINEERING = 4) req_components = list( - "/obj/item/weapon/stock_parts/manipulator" = 2, - "/obj/item/stack/cable_coil" = 1, - "/obj/item/weapon/stock_parts/subspace/filter" = 1) + /obj/item/weapon/stock_parts/manipulator = 2, + /obj/item/stack/cable_coil = 1, + /obj/item/weapon/stock_parts/subspace/filter = 1) /obj/item/weapon/circuitboard/telecomms/broadcaster name = T_BOARD("subspace broadcaster") build_path = "/obj/machinery/telecomms/broadcaster" origin_tech = list(TECH_DATA = 4, TECH_ENGINEERING = 4, TECH_BLUESPACE = 2) req_components = list( - "/obj/item/weapon/stock_parts/manipulator" = 2, - "/obj/item/stack/cable_coil" = 1, - "/obj/item/weapon/stock_parts/subspace/filter" = 1, - "/obj/item/weapon/stock_parts/subspace/crystal" = 1, - "/obj/item/weapon/stock_parts/micro_laser/high" = 2) + /obj/item/weapon/stock_parts/manipulator = 2, + /obj/item/stack/cable_coil = 1, + /obj/item/weapon/stock_parts/subspace/filter = 1, + /obj/item/weapon/stock_parts/subspace/crystal = 1, + /obj/item/weapon/stock_parts/micro_laser/high = 2) //This isn't a real telecomms board but I don't want to make a whole file to hold only one circuitboard. /obj/item/weapon/circuitboard/telecomms/exonet_node @@ -80,10 +80,10 @@ build_path = "/obj/machinery/exonet_node" origin_tech = list(TECH_DATA = 5, TECH_ENGINEERING = 5, TECH_BLUESPACE = 4) req_components = list( - "/obj/item/weapon/stock_parts/subspace/ansible" = 1, - "/obj/item/weapon/stock_parts/subspace/filter" = 1, - "/obj/item/weapon/stock_parts/manipulator" = 2, - "/obj/item/weapon/stock_parts/micro_laser" = 1, - "/obj/item/weapon/stock_parts/subspace/crystal" = 1, - "/obj/item/weapon/stock_parts/subspace/treatment" = 2, - "/obj/item/stack/cable_coil" = 2) + /obj/item/weapon/stock_parts/subspace/ansible = 1, + /obj/item/weapon/stock_parts/subspace/filter = 1, + /obj/item/weapon/stock_parts/manipulator = 2, + /obj/item/weapon/stock_parts/micro_laser = 1, + /obj/item/weapon/stock_parts/subspace/crystal = 1, + /obj/item/weapon/stock_parts/subspace/treatment = 2, + /obj/item/stack/cable_coil = 2) diff --git a/code/game/objects/items/weapons/circuitboards/machinery/unary_atmos.dm b/code/game/objects/items/weapons/circuitboards/machinery/unary_atmos.dm index 045f29592ae..38438d6327a 100644 --- a/code/game/objects/items/weapons/circuitboards/machinery/unary_atmos.dm +++ b/code/game/objects/items/weapons/circuitboards/machinery/unary_atmos.dm @@ -1,5 +1,5 @@ #ifndef T_BOARD -#error T_BOARD macro is not defined but we need it! +#error T_BOARD macro is not defined but we need it! #endif /obj/item/weapon/circuitboard/unary_atmos @@ -18,16 +18,16 @@ build_path = "/obj/machinery/atmospherics/unary/heater" origin_tech = list(TECH_POWER = 2, TECH_ENGINEERING = 1) req_components = list( - "/obj/item/stack/cable_coil" = 5, - "/obj/item/weapon/stock_parts/matter_bin" = 1, - "/obj/item/weapon/stock_parts/capacitor" = 2) + /obj/item/stack/cable_coil = 5, + /obj/item/weapon/stock_parts/matter_bin = 1, + /obj/item/weapon/stock_parts/capacitor = 2) /obj/item/weapon/circuitboard/unary_atmos/cooler name = T_BOARD("gas cooling system") build_path = "/obj/machinery/atmospherics/unary/freezer" origin_tech = list(TECH_MAGNET = 2, TECH_ENGINEERING = 2) req_components = list( - "/obj/item/stack/cable_coil" = 2, - "/obj/item/weapon/stock_parts/matter_bin" = 1, - "/obj/item/weapon/stock_parts/capacitor" = 2, - "/obj/item/weapon/stock_parts/manipulator" = 1) + /obj/item/stack/cable_coil = 2, + /obj/item/weapon/stock_parts/matter_bin = 1, + /obj/item/weapon/stock_parts/capacitor = 2, + /obj/item/weapon/stock_parts/manipulator = 1) diff --git a/code/game/objects/items/weapons/grenades/smokebomb.dm b/code/game/objects/items/weapons/grenades/smokebomb.dm index 704df83db8a..d64627fcf38 100644 --- a/code/game/objects/items/weapons/grenades/smokebomb.dm +++ b/code/game/objects/items/weapons/grenades/smokebomb.dm @@ -1,5 +1,5 @@ /obj/item/weapon/grenade/smokebomb - desc = "It is set to detonate in 2 seconds." + desc = "It is set to detonate in 2 seconds. These high-tech grenades can have their color adapted on the fly with a multitool!" name = "smoke bomb" icon = 'icons/obj/grenade.dmi' icon_state = "flashbang" @@ -7,6 +7,8 @@ item_state = "flashbang" slot_flags = SLOT_BELT var/datum/effect/effect/system/smoke_spread/bad/smoke + var/smoke_color + var/smoke_strength = 8 /obj/item/weapon/grenade/smokebomb/New() ..() @@ -22,18 +24,15 @@ playsound(src.loc, 'sound/effects/smoke.ogg', 50, 1, -3) src.smoke.set_up(10, 0, usr.loc) spawn(0) - src.smoke.start() - sleep(10) - src.smoke.start() - sleep(10) - src.smoke.start() - sleep(10) - src.smoke.start() + for(var/i = 1 to smoke_strength) + src.smoke.start(smoke_color) + sleep(10) + qdel(src) - for(var/obj/effect/blob/B in view(8,src)) - var/damage = round(30/(get_dist(B,src)+1)) - B.health -= damage - B.update_icon() - sleep(80) - qdel(src) return + +/obj/item/weapon/grenade/smokebomb/attackby(obj/item/I as obj, mob/user as mob) + if(istype(I,/obj/item/device/multitool)) + var/new_smoke_color = input(user, "Choose a color for the smoke:", "Smoke Color", smoke_color) as color|null + if(new_smoke_color) + smoke_color = new_smoke_color diff --git a/code/game/objects/items/weapons/storage/backpack.dm b/code/game/objects/items/weapons/storage/backpack.dm index 85091725811..9eebc7b3f02 100644 --- a/code/game/objects/items/weapons/storage/backpack.dm +++ b/code/game/objects/items/weapons/storage/backpack.dm @@ -203,6 +203,15 @@ slot_r_hand_str = "duffle_med", ) +/obj/item/weapon/storage/backpack/dufflebag/emt + name = "EMT dufflebag" + desc = "A large dufflebag for holding extra medical supplies. This one has reflective stripes!" + icon_state = "duffle_emt" + item_state_slots = list( + slot_l_hand_str = "duffle_emt", + slot_r_hand_str = "duffle_emt", + ) + /obj/item/weapon/storage/backpack/dufflebag/sec name = "security dufflebag" desc = "A large dufflebag for holding extra security supplies and ammunition." @@ -235,12 +244,12 @@ ..() new /obj/item/weapon/storage/wallet/random( src ) -/obj/item/weapon/storage/backpack/satchel_norm +/obj/item/weapon/storage/backpack/satchel/norm name = "satchel" desc = "A trendy looking satchel." icon_state = "satchel-norm" -/obj/item/weapon/storage/backpack/satchel_eng +/obj/item/weapon/storage/backpack/satchel/eng name = "industrial satchel" desc = "A tough satchel with extra pockets." icon_state = "satchel-eng" @@ -249,7 +258,7 @@ slot_r_hand_str = "engiepack", ) -/obj/item/weapon/storage/backpack/satchel_med +/obj/item/weapon/storage/backpack/satchel/med name = "medical satchel" desc = "A sterile satchel used in medical departments." icon_state = "satchel-med" @@ -258,27 +267,27 @@ slot_r_hand_str = "medicalpack", ) -/obj/item/weapon/storage/backpack/satchel_vir +/obj/item/weapon/storage/backpack/satchel/vir name = "virologist satchel" desc = "A sterile satchel with virologist colours." icon_state = "satchel-vir" -/obj/item/weapon/storage/backpack/satchel_chem +/obj/item/weapon/storage/backpack/satchel/chem name = "chemist satchel" desc = "A sterile satchel with chemist colours." icon_state = "satchel-chem" -/obj/item/weapon/storage/backpack/satchel_gen +/obj/item/weapon/storage/backpack/satchel/gen name = "geneticist satchel" desc = "A sterile satchel with geneticist colours." icon_state = "satchel-gen" -/obj/item/weapon/storage/backpack/satchel_tox +/obj/item/weapon/storage/backpack/satchel/tox name = "scientist satchel" desc = "Useful for holding research materials." icon_state = "satchel-tox" -/obj/item/weapon/storage/backpack/satchel_sec +/obj/item/weapon/storage/backpack/satchel/sec name = "security satchel" desc = "A robust satchel for security related needs." icon_state = "satchel-sec" @@ -287,12 +296,12 @@ slot_r_hand_str = "securitypack", ) -/obj/item/weapon/storage/backpack/satchel_hyd +/obj/item/weapon/storage/backpack/satchel/hyd name = "hydroponics satchel" desc = "A green satchel for plant related work." icon_state = "satchel_hyd" -/obj/item/weapon/storage/backpack/satchel_cap +/obj/item/weapon/storage/backpack/satchel/cap name = "captain's satchel" desc = "An exclusive satchel for officers." icon_state = "satchel-cap" diff --git a/code/game/objects/items/weapons/storage/boxes.dm b/code/game/objects/items/weapons/storage/boxes.dm index 657d2f4f5a4..47a2f00b213 100644 --- a/code/game/objects/items/weapons/storage/boxes.dm +++ b/code/game/objects/items/weapons/storage/boxes.dm @@ -333,6 +333,8 @@ new /obj/item/weapon/grenade/smokebomb(src) new /obj/item/weapon/grenade/smokebomb(src) new /obj/item/weapon/grenade/smokebomb(src) + new /obj/item/weapon/grenade/smokebomb(src) + new /obj/item/weapon/grenade/smokebomb(src) /obj/item/weapon/storage/box/anti_photons name = "box of anti-photon grenades" diff --git a/code/game/objects/items/weapons/storage/firstaid.dm b/code/game/objects/items/weapons/storage/firstaid.dm index 9b9918d92fc..4bd5592704f 100644 --- a/code/game/objects/items/weapons/storage/firstaid.dm +++ b/code/game/objects/items/weapons/storage/firstaid.dm @@ -14,6 +14,7 @@ throw_speed = 2 throw_range = 8 var/empty = 0 + max_storage_space = 14 /obj/item/weapon/storage/firstaid/fire @@ -131,8 +132,8 @@ /obj/item/weapon/storage/firstaid/surgery name = "surgery kit" desc = "Contains tools for surgery." - storage_slots = 10 - max_storage_space = 23 + max_storage_space = 21 + max_w_class = 3 /obj/item/weapon/storage/firstaid/surgery/New() ..() @@ -163,6 +164,8 @@ allow_quick_gather = 1 use_to_pickup = 1 use_sound = null + max_storage_space = 14 + max_w_class = 1 /obj/item/weapon/storage/pill_bottle/antitox name = "bottle of Dylovene pills" diff --git a/code/game/objects/items/weapons/storage/toolbox.dm b/code/game/objects/items/weapons/storage/toolbox.dm index 8c6365d6fd4..13cbc06dc7a 100644 --- a/code/game/objects/items/weapons/storage/toolbox.dm +++ b/code/game/objects/items/weapons/storage/toolbox.dm @@ -136,10 +136,10 @@ filled = TRUE /obj/item/weapon/storage/toolbox/lunchbox/mars - name = "\improper Mars university lunchbox" + name = "\improper Mojave university lunchbox" icon_state = "lunchbox_marsuniversity" item_state = "toolbox_red" - desc = "A little lunchbox. This one is branded with the Mars university logo!" + desc = "A little lunchbox. This one is branded with the Mojave university logo!" /obj/item/weapon/storage/toolbox/lunchbox/mars/filled filled = TRUE diff --git a/code/game/objects/structures/crates_lockers/closets.dm b/code/game/objects/structures/crates_lockers/closets.dm index 5029e166d21..d88e8c5372f 100644 --- a/code/game/objects/structures/crates_lockers/closets.dm +++ b/code/game/objects/structures/crates_lockers/closets.dm @@ -247,6 +247,16 @@ src.update_icon() for(var/mob/M in viewers(src)) M.show_message("[src] has been [welded?"welded shut":"unwelded"] by [user.name].", 3, "You hear welding.", 2) + else if(istype(W, /obj/item/weapon/wrench)) + if(welded) + if(anchored) + user.visible_message("\The [user] begins unsecuring \the [src] from the floor.", "You start unsecuring \the [src] from the floor.") + else + user.visible_message("\The [user] begins securing \the [src] to the floor.", "You start securing \the [src] to the floor.") + if(do_after(user, 20)) + if(!src) return + user << "You [anchored? "un" : ""]secured \the [src]!" + anchored = !anchored else src.attack_hand(user) return diff --git a/code/game/objects/structures/crates_lockers/closets/secure/cargo.dm b/code/game/objects/structures/crates_lockers/closets/secure/cargo.dm index cc186812945..c7095514cc1 100644 --- a/code/game/objects/structures/crates_lockers/closets/secure/cargo.dm +++ b/code/game/objects/structures/crates_lockers/closets/secure/cargo.dm @@ -13,7 +13,7 @@ if(prob(75)) new /obj/item/weapon/storage/backpack(src) else - new /obj/item/weapon/storage/backpack/satchel_norm(src) + new /obj/item/weapon/storage/backpack/satchel/norm(src) if(prob(25)) new /obj/item/weapon/storage/backpack/dufflebag(src) new /obj/item/clothing/under/rank/cargotech(src) @@ -44,7 +44,7 @@ if(prob(75)) new /obj/item/weapon/storage/backpack(src) else - new /obj/item/weapon/storage/backpack/satchel_norm(src) + new /obj/item/weapon/storage/backpack/satchel/norm(src) if(prob(25)) new /obj/item/weapon/storage/backpack/dufflebag(src) new /obj/item/clothing/under/rank/cargo(src) diff --git a/code/game/objects/structures/crates_lockers/closets/secure/engineering.dm b/code/game/objects/structures/crates_lockers/closets/secure/engineering.dm index cec9b898550..787e0adb3bd 100644 --- a/code/game/objects/structures/crates_lockers/closets/secure/engineering.dm +++ b/code/game/objects/structures/crates_lockers/closets/secure/engineering.dm @@ -14,7 +14,7 @@ if(prob(50)) new /obj/item/weapon/storage/backpack/industrial(src) else - new /obj/item/weapon/storage/backpack/satchel_eng(src) + new /obj/item/weapon/storage/backpack/satchel/eng(src) if(prob(50)) new /obj/item/weapon/storage/backpack/dufflebag/eng(src) new /obj/item/clothing/accessory/storage/brown_vest(src) @@ -113,7 +113,7 @@ if(prob(50)) new /obj/item/weapon/storage/backpack/industrial(src) else - new /obj/item/weapon/storage/backpack/satchel_eng(src) + new /obj/item/weapon/storage/backpack/satchel/eng(src) if(prob(50)) new /obj/item/weapon/storage/backpack/dufflebag/eng(src) new /obj/item/clothing/accessory/storage/brown_vest(src) @@ -147,7 +147,7 @@ if(prob(50)) new /obj/item/weapon/storage/backpack/industrial(src) else - new /obj/item/weapon/storage/backpack/satchel_eng(src) + new /obj/item/weapon/storage/backpack/satchel/eng(src) if(prob(50)) new /obj/item/weapon/storage/backpack/dufflebag/eng(src) new /obj/item/clothing/accessory/storage/brown_vest(src) diff --git a/code/game/objects/structures/crates_lockers/closets/secure/freezer.dm b/code/game/objects/structures/crates_lockers/closets/secure/freezer.dm index 0722b5b0771..62401902b64 100644 --- a/code/game/objects/structures/crates_lockers/closets/secure/freezer.dm +++ b/code/game/objects/structures/crates_lockers/closets/secure/freezer.dm @@ -18,11 +18,10 @@ New() ..() - for(var/i = 0, i < 6, i++) + for(var/i = 1 to 7) new /obj/item/weapon/reagent_containers/food/condiment/flour(src) - new /obj/item/weapon/reagent_containers/food/condiment/sugar(src) - for(var/i = 0, i < 3, i++) - new /obj/item/weapon/reagent_containers/food/snacks/meat/monkey(src) + for(var/i = 1 to 2) + new /obj/item/weapon/reagent_containers/food/condiment/sugar(src) return @@ -43,7 +42,7 @@ New() ..() - for(var/i = 0, i < 4, i++) + for(var/i = 1 to 10) new /obj/item/weapon/reagent_containers/food/snacks/meat/monkey(src) return @@ -61,11 +60,11 @@ New() ..() - for(var/i = 0, i < 5, i++) + for(var/i = 1 to 6) new /obj/item/weapon/reagent_containers/food/drinks/milk(src) - for(var/i = 0, i < 3, i++) + for(var/i = 1 to 4) new /obj/item/weapon/reagent_containers/food/drinks/soymilk(src) - for(var/i = 0, i < 2, i++) + for(var/i = 1 to 4) new /obj/item/weapon/storage/fancy/egg_box(src) return @@ -84,10 +83,10 @@ New() ..() - for(var/i = 0, i < 3, i++) + for(var/i = 1 to 3) new /obj/item/weapon/spacecash/c1000(src) - for(var/i = 0, i < 5, i++) + for(var/i = 1 to 4) new /obj/item/weapon/spacecash/c500(src) - for(var/i = 0, i < 6, i++) + for(var/i = 1 to 5) new /obj/item/weapon/spacecash/c200(src) return diff --git a/code/game/objects/structures/crates_lockers/closets/secure/medical.dm b/code/game/objects/structures/crates_lockers/closets/secure/medical.dm index b424c65be5a..fdd1ed5c807 100644 --- a/code/game/objects/structures/crates_lockers/closets/secure/medical.dm +++ b/code/game/objects/structures/crates_lockers/closets/secure/medical.dm @@ -65,7 +65,7 @@ if(prob(50)) new /obj/item/weapon/storage/backpack/medic(src) else - new /obj/item/weapon/storage/backpack/satchel_med(src) + new /obj/item/weapon/storage/backpack/satchel/med(src) if(prob(50)) new /obj/item/weapon/storage/backpack/dufflebag/med(src) new /obj/item/clothing/under/rank/nursesuit (src) @@ -131,6 +131,7 @@ New() ..() + new /obj/item/weapon/storage/backpack/dufflebag/emt(src) new /obj/item/weapon/storage/box/autoinjectors(src) new /obj/item/weapon/storage/box/syringes(src) new /obj/item/weapon/reagent_containers/glass/bottle/inaprovaline(src) @@ -168,7 +169,7 @@ if(prob(50)) new /obj/item/weapon/storage/backpack/medic(src) else - new /obj/item/weapon/storage/backpack/satchel_med(src) + new /obj/item/weapon/storage/backpack/satchel/med(src) if(prob(50)) new /obj/item/weapon/storage/backpack/dufflebag/med(src) new /obj/item/clothing/suit/bio_suit/cmo(src) diff --git a/code/game/objects/structures/crates_lockers/closets/secure/personal.dm b/code/game/objects/structures/crates_lockers/closets/secure/personal.dm index d91b22fe74d..2930b8c0a02 100644 --- a/code/game/objects/structures/crates_lockers/closets/secure/personal.dm +++ b/code/game/objects/structures/crates_lockers/closets/secure/personal.dm @@ -10,7 +10,7 @@ if(prob(50)) new /obj/item/weapon/storage/backpack(src) else - new /obj/item/weapon/storage/backpack/satchel_norm(src) + new /obj/item/weapon/storage/backpack/satchel/norm(src) new /obj/item/device/radio/headset( src ) return @@ -94,7 +94,7 @@ else user << "Access Denied" return - + /obj/structure/closet/secure_closet/personal/emag_act(var/remaining_charges, var/mob/user, var/visual_feedback, var/audible_feedback) if(!broken) broken = 1 @@ -102,7 +102,7 @@ desc = "It appears to be broken." icon_state = src.icon_broken if(visual_feedback) - visible_message("[visual_feedback]", "[audible_feedback]") + visible_message("[visual_feedback]", "[audible_feedback]") return 1 /obj/structure/closet/secure_closet/personal/verb/reset() diff --git a/code/game/objects/structures/crates_lockers/closets/secure/secure_closets.dm b/code/game/objects/structures/crates_lockers/closets/secure/secure_closets.dm index 1ce97a64a79..49fe7bbdd3a 100644 --- a/code/game/objects/structures/crates_lockers/closets/secure/secure_closets.dm +++ b/code/game/objects/structures/crates_lockers/closets/secure/secure_closets.dm @@ -87,6 +87,17 @@ spark_system.start() playsound(src.loc, 'sound/weapons/blade1.ogg', 50, 1) playsound(src.loc, "sparks", 50, 1) + else if(istype(W, /obj/item/weapon/wrench)) + if(welded) + if(anchored) + user.visible_message("\The [user] begins unsecuring \the [src] from the floor.", "You start unsecuring \the [src] from the floor.") + else + user.visible_message("\The [user] begins securing \the [src] to the floor.", "You start securing \the [src] to the floor.") + if(do_after(user, 20)) + if(!src) return + user << "You [anchored? "un" : ""]secured \the [src]!" + anchored = !anchored + return else if(istype(W,/obj/item/weapon/packageWrap) || istype(W,/obj/item/weapon/weldingtool)) return ..(W,user) else diff --git a/code/game/objects/structures/crates_lockers/closets/secure/security.dm b/code/game/objects/structures/crates_lockers/closets/secure/security.dm index 5a692dc1c4a..6aa1ee66f64 100644 --- a/code/game/objects/structures/crates_lockers/closets/secure/security.dm +++ b/code/game/objects/structures/crates_lockers/closets/secure/security.dm @@ -88,13 +88,14 @@ icon_opened = "hossecureopen" icon_broken = "hossecurebroken" icon_off = "hossecureoff" + storage_capacity = 2.5 * MOB_MEDIUM New() ..() if(prob(50)) new /obj/item/weapon/storage/backpack/security(src) else - new /obj/item/weapon/storage/backpack/satchel_sec(src) + new /obj/item/weapon/storage/backpack/satchel/sec(src) if(prob(50)) new /obj/item/weapon/storage/backpack/dufflebag/sec(src) new /obj/item/clothing/head/helmet/HoS(src) @@ -143,7 +144,7 @@ if(prob(50)) new /obj/item/weapon/storage/backpack/security(src) else - new /obj/item/weapon/storage/backpack/satchel_sec(src) + new /obj/item/weapon/storage/backpack/satchel/sec(src) if(prob(50)) new /obj/item/weapon/storage/backpack/dufflebag/sec(src) new /obj/item/clothing/suit/storage/vest/warden(src) @@ -187,7 +188,7 @@ if(prob(50)) new /obj/item/weapon/storage/backpack/security(src) else - new /obj/item/weapon/storage/backpack/satchel_sec(src) + new /obj/item/weapon/storage/backpack/satchel/sec(src) if(prob(50)) new /obj/item/weapon/storage/backpack/dufflebag/sec(src) new /obj/item/clothing/suit/storage/vest/officer(src) diff --git a/code/game/objects/structures/crates_lockers/closets/wardrobe.dm b/code/game/objects/structures/crates_lockers/closets/wardrobe.dm index 0c49681489c..0736a13f13c 100644 --- a/code/game/objects/structures/crates_lockers/closets/wardrobe.dm +++ b/code/game/objects/structures/crates_lockers/closets/wardrobe.dm @@ -14,15 +14,15 @@ if(prob(50)) new /obj/item/weapon/storage/backpack/security(src) else - new /obj/item/weapon/storage/backpack/satchel_sec(src) + new /obj/item/weapon/storage/backpack/satchel/sec(src) if(prob(50)) new /obj/item/weapon/storage/backpack/security(src) else - new /obj/item/weapon/storage/backpack/satchel_sec(src) + new /obj/item/weapon/storage/backpack/satchel/sec(src) if(prob(50)) new /obj/item/weapon/storage/backpack/security(src) else - new /obj/item/weapon/storage/backpack/satchel_sec(src) + new /obj/item/weapon/storage/backpack/satchel/sec(src) new /obj/item/clothing/under/rank/security(src) new /obj/item/clothing/under/rank/security(src) new /obj/item/clothing/under/rank/security(src) @@ -361,8 +361,8 @@ new /obj/item/clothing/suit/storage/hooded/wintercoat/science(src) new /obj/item/weapon/storage/backpack/toxins(src) new /obj/item/weapon/storage/backpack/toxins(src) - new /obj/item/weapon/storage/backpack/satchel_tox(src) - new /obj/item/weapon/storage/backpack/satchel_tox(src) + new /obj/item/weapon/storage/backpack/satchel/tox(src) + new /obj/item/weapon/storage/backpack/satchel/tox(src) return /obj/structure/closet/wardrobe/robotics_black @@ -382,8 +382,8 @@ new /obj/item/clothing/gloves/black(src) new /obj/item/weapon/storage/backpack/toxins(src) new /obj/item/weapon/storage/backpack/toxins(src) - new /obj/item/weapon/storage/backpack/satchel_tox(src) - new /obj/item/weapon/storage/backpack/satchel_tox(src) + new /obj/item/weapon/storage/backpack/satchel/tox(src) + new /obj/item/weapon/storage/backpack/satchel/tox(src) return @@ -404,8 +404,8 @@ new /obj/item/clothing/suit/storage/toggle/labcoat/chemist(src) new /obj/item/weapon/storage/backpack/chemistry(src) new /obj/item/weapon/storage/backpack/chemistry(src) - new /obj/item/weapon/storage/backpack/satchel_chem(src) - new /obj/item/weapon/storage/backpack/satchel_chem(src) + new /obj/item/weapon/storage/backpack/satchel/chem(src) + new /obj/item/weapon/storage/backpack/satchel/chem(src) return @@ -426,8 +426,8 @@ new /obj/item/clothing/suit/storage/toggle/labcoat/genetics(src) new /obj/item/weapon/storage/backpack/genetics(src) new /obj/item/weapon/storage/backpack/genetics(src) - new /obj/item/weapon/storage/backpack/satchel_gen(src) - new /obj/item/weapon/storage/backpack/satchel_gen(src) + new /obj/item/weapon/storage/backpack/satchel/gen(src) + new /obj/item/weapon/storage/backpack/satchel/gen(src) return @@ -450,8 +450,8 @@ new /obj/item/clothing/mask/surgical(src) new /obj/item/weapon/storage/backpack/virology(src) new /obj/item/weapon/storage/backpack/virology(src) - new /obj/item/weapon/storage/backpack/satchel_vir(src) - new /obj/item/weapon/storage/backpack/satchel_vir(src) + new /obj/item/weapon/storage/backpack/satchel/vir(src) + new /obj/item/weapon/storage/backpack/satchel/vir(src) return @@ -626,7 +626,7 @@ new /obj/item/clothing/shoes/brown(src) new /obj/item/clothing/gloves/captain(src) new /obj/item/clothing/under/dress/dress_cap(src) - new /obj/item/weapon/storage/backpack/satchel_cap(src) + new /obj/item/weapon/storage/backpack/satchel/cap(src) new /obj/item/clothing/head/caphat/formal(src) new /obj/item/clothing/under/captainformal(src) new /obj/item/clothing/suit/storage/hooded/wintercoat/captain(src) diff --git a/code/game/objects/structures/girders.dm b/code/game/objects/structures/girders.dm index 867dada6d91..9c103a8ed28 100644 --- a/code/game/objects/structures/girders.dm +++ b/code/game/objects/structures/girders.dm @@ -143,7 +143,8 @@ user << "You begin adding the plating..." - if(!do_after(user,40) || !S.use(2)) + var/amount_to_use = reinf_material ? 1 : 2 + if(!do_after(user,40) || !S.use(amount_to_use)) return 1 //once we've gotten this far don't call parent attackby() if(anchored) @@ -167,7 +168,7 @@ user << "\The [src] is already reinforced." return 0 - if(S.get_amount() < 2) + if(S.get_amount() < 1) user << "There isn't enough material here to reinforce the girder." return 0 @@ -177,7 +178,7 @@ return 0 user << "Now reinforcing..." - if (!do_after(user,40) || !S.use(2)) + if (!do_after(user,40) || !S.use(1)) return 1 //don't call parent attackby() past this point user << "You added reinforcement!" diff --git a/code/game/objects/structures/morgue.dm b/code/game/objects/structures/morgue.dm index 949cbc1ff67..bd280787827 100644 --- a/code/game/objects/structures/morgue.dm +++ b/code/game/objects/structures/morgue.dm @@ -18,6 +18,7 @@ dir = EAST density = 1 var/obj/structure/m_tray/connected = null + var/list/occupants = list() anchored = 1.0 /obj/structure/morgue/Destroy() @@ -26,12 +27,28 @@ connected = null return ..() -/obj/structure/morgue/proc/update() +/obj/structure/morgue/proc/get_occupants() + occupants.Cut() + for(var/mob/living/carbon/human/H in contents) + occupants += H + for(var/obj/structure/closet/body_bag/B in contents) + occupants += B.get_occupants() + +/obj/structure/morgue/proc/update(var/broadcast=0) if (src.connected) src.icon_state = "morgue0" else if (src.contents.len) src.icon_state = "morgue2" + get_occupants() + for (var/mob/living/carbon/human/H in occupants) + if(H.isSynthetic() || H.suiciding || !H.ckey || !H.client || (NOCLONE in H.mutations) || (H.species && H.species.flags & NO_SCAN)) + src.icon_state = "morgue2" + break + else + src.icon_state = "morgue3" + if(broadcast) + broadcast_medical_hud_message("[src] was able to establish a mental interface with occupant.", src) else src.icon_state = "morgue1" return diff --git a/code/game/supplyshuttle.dm b/code/game/supplyshuttle.dm index 47a3c5a63e9..9496413be73 100644 --- a/code/game/supplyshuttle.dm +++ b/code/game/supplyshuttle.dm @@ -288,9 +288,11 @@ var/list/mechtoys = list( for(var/typepath in contains) if(!typepath) continue - var/atom/B2 = new typepath(A) - if(SP.amount && B2:amount) B2:amount = SP.amount - if(slip) slip.info += "
  • [B2.name]
  • " //add the item to the manifest + var/number_of_items = max(1, contains[typepath]) + for(var/j = 1 to number_of_items) + var/atom/B2 = new typepath(A) + if(SP.amount && B2:amount) B2:amount = SP.amount + if(slip) slip.info += "
  • [B2.name]
  • " //add the item to the manifest //manifest finalisation if(slip) diff --git a/code/game/turfs/flooring/flooring.dm b/code/game/turfs/flooring/flooring.dm index bd95b7f594d..369f42fc385 100644 --- a/code/game/turfs/flooring/flooring.dm +++ b/code/game/turfs/flooring/flooring.dm @@ -69,7 +69,7 @@ var/list/flooring_types name = "carpet" icon_base = "bcarpet" build_type = null - flags = TURF_HAS_EDGES + flags = TURF_HAS_EDGES | TURF_HAS_CORNERS | TURF_REMOVE_CROWBAR | TURF_CAN_BURN /decl/flooring/tiling name = "floor" @@ -186,7 +186,7 @@ var/list/flooring_types icon = 'icons/turf/flooring/circuit.dmi' icon_base = "bcircuit" build_type = null - flags = TURF_ACID_IMMUNE | TURF_CAN_BREAK + flags = TURF_ACID_IMMUNE | TURF_CAN_BREAK | TURF_REMOVE_CROWBAR can_paint = 1 /decl/flooring/reinforced/circuit/green diff --git a/code/game/turfs/simulated/wall_attacks.dm b/code/game/turfs/simulated/wall_attacks.dm index 23ffac6465d..ffc2297d02d 100644 --- a/code/game/turfs/simulated/wall_attacks.dm +++ b/code/game/turfs/simulated/wall_attacks.dm @@ -217,8 +217,7 @@ if (istype(W, /obj/item/weapon/wirecutters)) playsound(src, 'sound/items/Wirecutter.ogg', 100, 1) construction_stage = 5 - new /obj/item/stack/rods( src ) - user << "You cut the outer grille." + user << "You cut through the outer grille." update_icon() return if(5) @@ -229,16 +228,13 @@ return construction_stage = 4 update_icon() - user << "You remove the support lines." + user << "You unscrew the support lines." + return + else if (istype(W, /obj/item/weapon/wirecutters)) + construction_stage = 6 + user << "You mend the outer grille." + update_icon() return - else if( istype(W, /obj/item/stack/rods) ) - var/obj/item/stack/O = W - if(O.get_amount()>0) - O.use(1) - construction_stage = 6 - update_icon() - user << "You replace the outer grille." - return if(4) var/cut_cover if(istype(W,/obj/item/weapon/weldingtool)) @@ -261,6 +257,15 @@ update_icon() user << "You press firmly on the cover, dislodging it." return + else if (istype(W, /obj/item/weapon/screwdriver)) + user << "You begin screwing down the support lines." + playsound(src, 'sound/items/Screwdriver.ogg', 100, 1) + if(!do_after(user,40) || !istype(src, /turf/simulated/wall) || construction_stage != 4) + return + construction_stage = 5 + update_icon() + user << "You screw down the support lines." + return if(3) if (istype(W, /obj/item/weapon/crowbar)) user << "You struggle to pry off the cover." @@ -299,8 +304,7 @@ return construction_stage = 0 update_icon() - new /obj/item/stack/rods(src) - user << "The support rods drop out as you cut them loose from the frame." + user << "The slice through the support rods." return if(0) if(istype(W, /obj/item/weapon/crowbar)) diff --git a/code/game/turfs/simulated/walls.dm b/code/game/turfs/simulated/walls.dm index 16235a72fc3..db48305926e 100644 --- a/code/game/turfs/simulated/walls.dm +++ b/code/game/turfs/simulated/walls.dm @@ -162,7 +162,8 @@ reinf_material.place_dismantled_girder(src, reinf_material) else material.place_dismantled_girder(src) - material.place_dismantled_product(src,devastated) + if(!devastated) + material.place_dismantled_product(src) for(var/obj/O in src.contents) //Eject contents! if(istype(O,/obj/structure/sign/poster)) diff --git a/code/game/verbs/ignore.dm b/code/game/verbs/ignore.dm new file mode 100644 index 00000000000..b772bd4e813 --- /dev/null +++ b/code/game/verbs/ignore.dm @@ -0,0 +1,44 @@ +/client/verb/ignore(key_to_ignore as text) + set name = "Ignore" + set category = "OOC" + set desc = "Makes OOC and Deadchat messages from a specific player not appear to you." + + if(!key_to_ignore) + return + key_to_ignore = ckey(sanitize(key_to_ignore)) + if(prefs && prefs.ignored_players) + if(key_to_ignore in prefs.ignored_players) + usr << "[key_to_ignore] is already being ignored." + return + prefs.ignored_players |= key_to_ignore + prefs.save_preferences() + usr << "Now ignoring [key_to_ignore]." + +/client/verb/unignore(key_to_unignore as text) + set name = "Unignore" + set category = "OOC" + set desc = "Reverts your ignoring of a specific player." + + if(!key_to_unignore) + return + key_to_unignore = ckey(sanitize(key_to_unignore)) + if(prefs && prefs.ignored_players) + if(!(key_to_unignore in prefs.ignored_players)) + usr << "[key_to_unignore] isn't being ignored." + return + prefs.ignored_players -= key_to_unignore + prefs.save_preferences() + usr << "Reverted ignore on [key_to_unignore]." + +/mob/proc/is_key_ignored(var/key_to_check) + if(client) + return client.is_key_ignored(key_to_check) + return 0 + +/client/proc/is_key_ignored(var/key_to_check) + key_to_check = ckey(key_to_check) + if(key_to_check in prefs.ignored_players) + if(directory[key_to_check] in admins) // This is here so this is only evaluated if someone is actually being blocked. + return 0 + return 1 + return 0 \ No newline at end of file diff --git a/code/game/verbs/ooc.dm b/code/game/verbs/ooc.dm index 1e976a2afcd..fd9a37935eb 100644 --- a/code/game/verbs/ooc.dm +++ b/code/game/verbs/ooc.dm @@ -51,6 +51,8 @@ for(var/client/target in clients) if(target.is_preference_enabled(/datum/client_preference/show_ooc)) + if(target.is_key_ignored(key)) // If we're ignored by this person, then do nothing. + continue var/display_name = src.key if(holder) if(holder.fakekey) diff --git a/code/modules/client/preference_setup/general/01_basic.dm b/code/modules/client/preference_setup/general/01_basic.dm index efd55d37ec3..2588836df56 100644 --- a/code/modules/client/preference_setup/general/01_basic.dm +++ b/code/modules/client/preference_setup/general/01_basic.dm @@ -1,12 +1,20 @@ +datum/preferences + var/biological_gender = MALE + var/identifying_gender = MALE + +datum/preferences/proc/set_biological_gender(var/gender) + biological_gender = gender + identifying_gender = gender + /datum/category_item/player_setup_item/general/basic name = "Basic" sort_order = 1 - var/list/valid_player_genders = list(MALE, FEMALE, NEUTER, PLURAL) /datum/category_item/player_setup_item/general/basic/load_character(var/savefile/S) S["real_name"] >> pref.real_name S["name_is_always_random"] >> pref.be_random_name - S["gender"] >> pref.gender + S["gender"] >> pref.biological_gender + S["id_gender"] >> pref.identifying_gender S["age"] >> pref.age S["spawnpoint"] >> pref.spawnpoint S["OOC_Notes"] >> pref.metadata @@ -14,7 +22,8 @@ /datum/category_item/player_setup_item/general/basic/save_character(var/savefile/S) S["real_name"] << pref.real_name S["name_is_always_random"] << pref.be_random_name - S["gender"] << pref.gender + S["gender"] << pref.biological_gender + S["id_gender"] << pref.identifying_gender S["age"] << pref.age S["spawnpoint"] << pref.spawnpoint S["OOC_Notes"] << pref.metadata @@ -22,27 +31,32 @@ /datum/category_item/player_setup_item/general/basic/sanitize_character() if(!pref.species) pref.species = "Human" var/datum/species/S = all_species[pref.species ? pref.species : "Human"] - pref.age = sanitize_integer(pref.age, S.min_age, S.max_age, initial(pref.age)) - pref.gender = sanitize_inlist(pref.gender, valid_player_genders, pick(valid_player_genders)) - pref.real_name = sanitize_name(pref.real_name, pref.species) + pref.age = sanitize_integer(pref.age, S.min_age, S.max_age, initial(pref.age)) + pref.biological_gender = sanitize_inlist(pref.biological_gender, get_genders(), pick(get_genders())) + pref.identifying_gender = (pref.identifying_gender in all_genders_define_list) ? pref.identifying_gender : pref.biological_gender + pref.real_name = sanitize_name(pref.real_name, pref.species) if(!pref.real_name) - pref.real_name = random_name(pref.gender, pref.species) - pref.spawnpoint = sanitize_inlist(pref.spawnpoint, spawntypes, initial(pref.spawnpoint)) - pref.be_random_name = sanitize_integer(pref.be_random_name, 0, 1, initial(pref.be_random_name)) + pref.real_name = random_name(pref.identifying_gender, pref.species) + pref.spawnpoint = sanitize_inlist(pref.spawnpoint, spawntypes, initial(pref.spawnpoint)) + pref.be_random_name = sanitize_integer(pref.be_random_name, 0, 1, initial(pref.be_random_name)) /datum/category_item/player_setup_item/general/basic/content() - . = "Name: " + . = list() + . += "Name: " . += "[pref.real_name]
    " - . += "(Random Name) " - . += "(Always Random Name: [pref.be_random_name ? "Yes" : "No"])" + . += "Randomize Name
    " + . += "Always Random Name: [pref.be_random_name ? "Yes" : "No"]" . += "
    " - . += "Gender: [capitalize(lowertext(pref.gender))]
    " + . += "Biological Gender: [gender2text(pref.biological_gender)]
    " + . += "Gender Identity: [gender2text(pref.identifying_gender)]
    " . += "Age: [pref.age]
    " . += "Spawn Point: [pref.spawnpoint]
    " if(config.allow_Metadata) . += "OOC Notes: Edit
    " + . = jointext(.,null) /datum/category_item/player_setup_item/general/basic/OnTopic(var/href,var/list/href_list, var/mob/user) + var/datum/species/S = all_species[pref.species] if(href_list["rename"]) var/raw_name = input(user, "Choose your character's name:", "Character Name") as text|null if (!isnull(raw_name) && CanUseTopic(user)) @@ -55,20 +69,27 @@ return TOPIC_NOACTION else if(href_list["random_name"]) - pref.real_name = random_name(pref.gender, pref.species) + pref.real_name = random_name(pref.identifying_gender, pref.species) return TOPIC_REFRESH else if(href_list["always_random_name"]) pref.be_random_name = !pref.be_random_name return TOPIC_REFRESH - else if(href_list["gender"]) - pref.gender = next_in_list(pref.gender, valid_player_genders) + else if(href_list["bio_gender"]) + var/new_gender = input(user, "Choose your character's biological gender:", "Character Preference", pref.biological_gender) as null|anything in get_genders() + if(new_gender && CanUseTopic(user)) + pref.set_biological_gender(new_gender) + return TOPIC_REFRESH + + else if(href_list["id_gender"]) + var/new_gender = input(user, "Choose your character's identifying gender:", "Character Preference", pref.identifying_gender) as null|anything in all_genders_define_list + if(new_gender && CanUseTopic(user)) + pref.identifying_gender = new_gender return TOPIC_REFRESH else if(href_list["age"]) if(!pref.species) pref.species = "Human" - var/datum/species/S = all_species[pref.species] var/new_age = input(user, "Choose your character's age:\n([S.min_age]-[S.max_age])", "Character Preference", pref.age) as num|null if(new_age && CanUseTopic(user)) pref.age = max(min(round(text2num(new_age)), S.max_age), S.min_age) @@ -76,8 +97,8 @@ else if(href_list["spawnpoint"]) var/list/spawnkeys = list() - for(var/S in spawntypes) - spawnkeys += S + for(var/spawntype in spawntypes) + spawnkeys += spawntype var/choice = input(user, "Where would you like to spawn when late-joining?") as null|anything in spawnkeys if(!choice || !spawntypes[choice] || !CanUseTopic(user)) return TOPIC_NOACTION pref.spawnpoint = choice @@ -90,3 +111,12 @@ return TOPIC_REFRESH return ..() + +/datum/category_item/player_setup_item/general/basic/proc/get_genders() + var/datum/species/S = all_species[pref.species] + var/list/possible_genders = S.genders + if(!pref.organ_data || pref.organ_data[BP_TORSO] != "cyborg") + return possible_genders + possible_genders = possible_genders.Copy() + possible_genders |= NEUTER + return possible_genders \ No newline at end of file diff --git a/code/modules/client/preference_setup/general/03_body.dm b/code/modules/client/preference_setup/general/03_body.dm index db9fa5227d5..0f26f2d55b6 100644 --- a/code/modules/client/preference_setup/general/03_body.dm +++ b/code/modules/client/preference_setup/general/03_body.dm @@ -73,6 +73,7 @@ var/global/list/valid_bloodtypes = list("A+", "A-", "B+", "B-", "AB+", "AB-", "O if(!pref.rlimb_data) pref.rlimb_data = list() /datum/category_item/player_setup_item/general/body/content(var/mob/user) + . = list() pref.update_preview_icon() if(pref.preview_icon_front && pref.preview_icon_side) user << browse_rsc(pref.preview_icon_front, "preview_icon.png") @@ -186,12 +187,13 @@ var/global/list/valid_bloodtypes = list("A+", "A-", "B+", "B-", "AB+", "AB-", "O if(has_flag(mob_species, HAS_SKIN_COLOR)) . += "
    Body Color
    " . += "Change Color
    __

    " + . = jointext(.,null) /datum/category_item/player_setup_item/general/body/proc/has_flag(var/datum/species/mob_species, var/flag) return mob_species && (mob_species.appearance_flags & flag) /datum/category_item/player_setup_item/general/body/OnTopic(var/href,var/list/href_list, var/mob/user) - var/mob_species = all_species[pref.species] + var/datum/species/mob_species = all_species[pref.species] if(href_list["random"]) pref.randomize_appearance_for() @@ -220,13 +222,17 @@ var/global/list/valid_bloodtypes = list("A+", "A-", "B+", "B-", "AB+", "AB-", "O var/prev_species = pref.species pref.species = href_list["set_species"] if(prev_species != pref.species) + if(!(pref.biological_gender in mob_species.genders)) + pref.set_biological_gender(mob_species.genders[1]) + + //grab one of the valid hair styles for the newly chosen species var/list/valid_hairstyles = list() for(var/hairstyle in hair_styles_list) var/datum/sprite_accessory/S = hair_styles_list[hairstyle] - if(pref.gender == MALE && S.gender == FEMALE) + if(pref.biological_gender == MALE && S.gender == FEMALE) continue - if(pref.gender == FEMALE && S.gender == MALE) + if(pref.biological_gender == FEMALE && S.gender == MALE) continue if(!(pref.species in S.species_allowed)) continue @@ -242,9 +248,9 @@ var/global/list/valid_bloodtypes = list("A+", "A-", "B+", "B-", "AB+", "AB-", "O var/list/valid_facialhairstyles = list() for(var/facialhairstyle in facial_hair_styles_list) var/datum/sprite_accessory/S = facial_hair_styles_list[facialhairstyle] - if(pref.gender == MALE && S.gender == FEMALE) + if(pref.biological_gender == MALE && S.gender == FEMALE) continue - if(pref.gender == FEMALE && S.gender == MALE) + if(pref.biological_gender == FEMALE && S.gender == MALE) continue if(!(pref.species in S.species_allowed)) continue @@ -336,9 +342,9 @@ var/global/list/valid_bloodtypes = list("A+", "A-", "B+", "B-", "AB+", "AB-", "O var/list/valid_facialhairstyles = list() for(var/facialhairstyle in facial_hair_styles_list) var/datum/sprite_accessory/S = facial_hair_styles_list[facialhairstyle] - if(pref.gender == MALE && S.gender == FEMALE) + if(pref.biological_gender == MALE && S.gender == FEMALE) continue - if(pref.gender == FEMALE && S.gender == MALE) + if(pref.biological_gender == FEMALE && S.gender == MALE) continue if(!(pref.species in S.species_allowed)) continue @@ -536,9 +542,9 @@ var/global/list/valid_bloodtypes = list("A+", "A-", "B+", "B-", "AB+", "AB-", "O dat += "

    " dat += "Language: [current_species.language]
    " dat += "" - if(current_species.spawn_flags & CAN_JOIN) + if(current_species.spawn_flags & SPECIES_CAN_JOIN) dat += "
    Often present on human stations." - if(current_species.spawn_flags & IS_WHITELISTED) + if(current_species.spawn_flags & SPECIES_IS_WHITELISTED) dat += "
    Whitelist restricted." if(!current_species.has_organ[O_HEART]) dat += "
    Does not have a circulatory system." @@ -566,9 +572,9 @@ var/global/list/valid_bloodtypes = list("A+", "A-", "B+", "B-", "AB+", "AB-", "O var/restricted = 0 if(config.usealienwhitelist) //If we're using the whitelist, make sure to check it! - if(!(current_species.spawn_flags & CAN_JOIN)) + if(!(current_species.spawn_flags & SPECIES_CAN_JOIN)) restricted = 2 - else if((current_species.spawn_flags & IS_WHITELISTED) && !is_alien_whitelisted(preference_mob(),current_species)) + else if((current_species.spawn_flags & SPECIES_IS_WHITELISTED) && !is_alien_whitelisted(preference_mob(),current_species)) restricted = 1 if(restricted) diff --git a/code/modules/client/preference_setup/global/02_settings.dm b/code/modules/client/preference_setup/global/02_settings.dm index 60eeeb144e7..c7635cbb91a 100644 --- a/code/modules/client/preference_setup/global/02_settings.dm +++ b/code/modules/client/preference_setup/global/02_settings.dm @@ -61,9 +61,9 @@ . += "
    [client_pref.description]: [client_pref.enabled_description] [client_pref.disabled_description][client_pref.enabled_description] [client_pref.disabled_description][client_pref.enabled_description] [client_pref.disabled_description][client_pref.enabled_description] [client_pref.disabled_description]
    " diff --git a/code/modules/client/preference_setup/global/05_ooc.dm b/code/modules/client/preference_setup/global/05_ooc.dm new file mode 100644 index 00000000000..08aa97836a9 --- /dev/null +++ b/code/modules/client/preference_setup/global/05_ooc.dm @@ -0,0 +1,38 @@ +/datum/category_item/player_setup_item/player_global/ooc + name = "OOC" + sort_order = 5 + +/datum/category_item/player_setup_item/player_global/ooc/load_preferences(var/savefile/S) + S["ignored_players"] >> pref.ignored_players + + +/datum/category_item/player_setup_item/player_global/ooc/save_preferences(var/savefile/S) + S["ignored_players"] << pref.ignored_players + + +/datum/category_item/player_setup_item/player_global/ooc/sanitize_preferences() + if(isnull(pref.ignored_players)) + pref.ignored_players = list() + +/datum/category_item/player_setup_item/player_global/ooc/content(var/mob/user) + . += "OOC:
    " + . += "Ignored Players
    " + for(var/ignored_player in pref.ignored_players) + . += "[ignored_player] (Unignore)
    " + . += "(Ignore Player)" + +/datum/category_item/player_setup_item/player_global/ooc/OnTopic(var/href,var/list/href_list, var/mob/user) + if(href_list["unignore_player"]) + if(CanUseTopic(user)) + pref.ignored_players -= href_list["unignore_player"] + return TOPIC_REFRESH + + if(href_list["ignore_player"]) + if(CanUseTopic(user)) + var/player_to_ignore = input(user, "Who do you want to ignore?","Ignore") as null|text + if(player_to_ignore) + player_to_ignore = sanitize(ckey(player_to_ignore)) + pref.ignored_players |= player_to_ignore + return TOPIC_REFRESH + + return ..() diff --git a/code/modules/client/preference_setup/loadout/loadout.dm b/code/modules/client/preference_setup/loadout/loadout.dm index 4244cd0037c..cd1e3eff4c4 100644 --- a/code/modules/client/preference_setup/loadout/loadout.dm +++ b/code/modules/client/preference_setup/loadout/loadout.dm @@ -82,6 +82,7 @@ var/list/gear_datums = list() total_cost += G.cost /datum/category_item/player_setup_item/loadout/content() + . = list() var/total_cost = 0 if(pref.gear && pref.gear.len) for(var/i = 1; i <= pref.gear.len; i++) @@ -92,8 +93,8 @@ var/list/gear_datums = list() var/fcolor = "#3366CC" if(total_cost < MAX_GEAR_COST) fcolor = "#E67300" - . += list() - . += "" + + . += "
    " . += "" . += "" var/datum/loadout_category/LC = loadout_categories[current_tab] @@ -123,7 +127,7 @@ var/list/gear_datums = list() for(var/gear_name in LC.gear) var/datum/gear/G = LC.gear[gear_name] var/ticked = (G.display_name in pref.gear) - . += "" + . += "" . += "" . += "" if(ticked) @@ -132,7 +136,7 @@ var/list/gear_datums = list() . += " [tweak.get_contents(get_tweak_metadata(G, tweak))]" . += "" . += "
    [total_cost]/[MAX_GEAR_COST] loadout points spent. \[Clear Loadout\]
    " @@ -105,15 +106,18 @@ var/list/gear_datums = list() else . += " |" if(category == current_tab) - . += " [category] " + . += " [category] " else var/datum/loadout_category/LC = loadout_categories[category] - var/tcolor = "#3366CC" + var/make_orange = FALSE for(var/thing in LC.gear) if(thing in pref.gear) - tcolor = "#E67300" + make_orange = TRUE break - . += " [category] " + if(make_orange) + . += " [category] " + else + . += " [category] " . += "
    [G.display_name]
    [G.display_name][G.cost][G.description]
    " - . = jointext(.) + . = jointext(., null) /datum/category_item/player_setup_item/loadout/proc/get_gear_metadata(var/datum/gear/G) . = pref.gear[G.display_name] diff --git a/code/modules/client/preference_setup/loadout/loadout_accessories.dm b/code/modules/client/preference_setup/loadout/loadout_accessories.dm index ced70ebef82..a5c66d2e797 100644 --- a/code/modules/client/preference_setup/loadout/loadout_accessories.dm +++ b/code/modules/client/preference_setup/loadout/loadout_accessories.dm @@ -136,6 +136,21 @@ path = /obj/item/clothing/accessory/storage/white_vest allowed_roles = list("Paramedic","Chief Medical Officer","Medical Doctor") +/datum/gear/accessory/brown_drop_pouches + display_name = "drop pouches, engineering" + path = /obj/item/clothing/accessory/storage/brown_drop_pouches + allowed_roles = list("Station Engineer","Atmospheric Technician","Chief Engineer") + +/datum/gear/accessory/black_drop_pouches + display_name = "drop pouches, security" + path = /obj/item/clothing/accessory/storage/black_drop_pouches + allowed_roles = list("Security Officer","Head of Security","Warden") + +/datum/gear/accessory/white_drop_pouches + display_name = "drop pouches, medical" + path = /obj/item/clothing/accessory/storage/white_drop_pouches + allowed_roles = list("Paramedic","Chief Medical Officer","Medical Doctor") + /datum/gear/accessory/webbing display_name = "webbing, simple" path = /obj/item/clothing/accessory/storage/webbing diff --git a/code/modules/client/preference_setup/loadout/loadout_suit.dm b/code/modules/client/preference_setup/loadout/loadout_suit.dm index 80b5e2bd6a2..494f5d9a848 100644 --- a/code/modules/client/preference_setup/loadout/loadout_suit.dm +++ b/code/modules/client/preference_setup/loadout/loadout_suit.dm @@ -125,31 +125,31 @@ ponchos[initial(poncho.name)] = poncho gear_tweaks += new/datum/gear_tweak/path(sortAssoc(ponchos)) -/datum/gear/suit/poncho/roles/security +/datum/gear/suit/roles/poncho/security display_name = "poncho, security" path = /obj/item/clothing/suit/poncho/roles/security allowed_roles = list("Head of Security", "Warden", "Detective", "Security Officer") -/datum/gear/suit/poncho/roles/medical +/datum/gear/suit/roles/poncho/medical display_name = "poncho, medical" path = /obj/item/clothing/suit/poncho/roles/medical allowed_roles = list("Medical Doctor","Chief Medical Officer","Chemist","Paramedic","Geneticist") -/datum/gear/suit/poncho/roles/engineering +/datum/gear/suit/roles/poncho/engineering display_name = "poncho, engineering" path = /obj/item/clothing/suit/poncho/roles/engineering allowed_roles = list("Chief Engineer","Atmospheric Technician", "Station Engineer") -/datum/gear/suit/poncho/roles/science +/datum/gear/suit/roles/poncho/science display_name = "poncho, science" path = /obj/item/clothing/suit/poncho/roles/science allowed_roles = list("Research Director","Scientist", "Roboticist", "Xenobotanist") -/datum/gear/suit/poncho/roles/cargo +/datum/gear/suit/roles/poncho/cargo display_name = "poncho, cargo" path = /obj/item/clothing/suit/poncho/roles/cargo allowed_roles = list("Quartermaster","Cargo Technician") - + /datum/gear/suit/unathi_robe display_name = "roughspun robe" path = /obj/item/clothing/suit/unathi/robe @@ -195,3 +195,52 @@ display_name = "forensics, red" path = /obj/item/clothing/suit/storage/forensics/red allowed_roles = list("Detective") + +/datum/gear/suit/wintercoat + display_name = "winter coat" + path = /obj/item/clothing/suit/storage/hooded/wintercoat + +/datum/gear/suit/wintercoat/captain + display_name = "winter coat, captain" + path = /obj/item/clothing/suit/storage/hooded/wintercoat/captain + allowed_roles = list("Captain") + +/datum/gear/suit/wintercoat/security + display_name = "winter coat, security" + path = /obj/item/clothing/suit/storage/hooded/wintercoat/security + allowed_roles = list("Security Officer, Head of Security, Warden, Detective") + +/datum/gear/suit/wintercoat/medical + display_name = "winter coat, medical" + path = /obj/item/clothing/suit/storage/hooded/wintercoat/medical + allowed_roles = list("Medical Doctor","Chief Medical Officer","Chemist","Paramedic","Geneticist") + +/datum/gear/suit/wintercoat/science + display_name = "winter coat, science" + path = /obj/item/clothing/suit/storage/hooded/wintercoat/science + allowed_roles = list("Research Director","Scientist", "Roboticist", "Xenobotanist") + +/datum/gear/suit/wintercoat/engineering + display_name = "winter coat, engineering" + path = /obj/item/clothing/suit/storage/hooded/wintercoat/engineering + allowed_roles = list("Chief Engineer","Atmospheric Technician", "Station Engineer") + +/datum/gear/suit/wintercoat/atmos + display_name = "winter coat, atmospherics" + path = /obj/item/clothing/suit/storage/hooded/wintercoat/engineering/atmos + allowed_roles = list("Chief Engineer", "Atmospheric Technician") + +/datum/gear/suit/wintercoat/hydro + display_name = "winter coat, hydroponics" + path = /obj/item/clothing/suit/storage/hooded/wintercoat/hydro + allowed_roles = list("Botanist", "Xenobotanist") + +/datum/gear/suit/wintercoat/cargo + display_name = "winter coat, cargo" + path = /obj/item/clothing/suit/storage/hooded/wintercoat/cargo + allowed_roles = list("Quartermaster","Cargo Technician") + +/datum/gear/suit/wintercoat/miner + display_name = "winter coat, mining" + path = /obj/item/clothing/suit/storage/hooded/wintercoat/miner + allowed_roles = list("Shaft Miner") diff --git a/code/modules/client/preference_setup/loadout/loadout_uniform.dm b/code/modules/client/preference_setup/loadout/loadout_uniform.dm index 5ea992d0932..904a4e7b804 100644 --- a/code/modules/client/preference_setup/loadout/loadout_uniform.dm +++ b/code/modules/client/preference_setup/loadout/loadout_uniform.dm @@ -6,8 +6,15 @@ sort_category = "Uniforms and Casual Dress" /datum/gear/uniform/cheongsam - display_name = "cheongsam, white" - path = /obj/item/clothing/under/cheongsam + display_name = "cheongsam selection" + +/datum/gear/uniform/cheongsam/New() + ..() + var/list/cheongasms = list() + for(var/cheongasm in typesof(/obj/item/clothing/under/cheongsam)) + var/obj/item/clothing/under/cheongsam/cheongasm_type = cheongasm + cheongasms[initial(cheongasm_type.name)] = cheongasm_type + gear_tweaks += new/datum/gear_tweak/path(sortAssoc(cheongasms)) /datum/gear/uniform/kilt display_name = "kilt" @@ -329,4 +336,36 @@ /datum/gear/uniform/navyhossuit display_name = "uniform, navy blue (Head of Security)" path = /obj/item/clothing/under/rank/head_of_security/navyblue - allowed_roles = list("Head of Security") \ No newline at end of file + allowed_roles = list("Head of Security") + +/datum/gear/uniform/shortplaindress + display_name = "plain dress" + path = /obj/item/clothing/under/dress/white3 + +/datum/gear/uniform/shortplaindress/New() + ..() + gear_tweaks = list(gear_tweak_free_color_choice) + +/datum/gear/uniform/longdress + display_name = "long dress" + path = /obj/item/clothing/under/dress/white2 + +/datum/gear/uniform/longdress/New() + ..() + gear_tweaks = list(gear_tweak_free_color_choice) + +/datum/gear/uniform/longwidedress + display_name = "long wide dress" + path = /obj/item/clothing/under/dress/white4 + +/datum/gear/uniform/longwidedress/New() + ..() + gear_tweaks = list(gear_tweak_free_color_choice) + +/datum/gear/uniform/reddress + display_name = "red dress with belt" + path = /obj/item/clothing/under/dress/darkred + +/datum/gear/uniform/whitewedding + display_name= "white wedding dress" + path = /obj/item/clothing/under/dress/white \ No newline at end of file diff --git a/code/modules/client/preference_setup/occupation/occupation.dm b/code/modules/client/preference_setup/occupation/occupation.dm index 62c3fc206d2..09dd7f573e4 100644 --- a/code/modules/client/preference_setup/occupation/occupation.dm +++ b/code/modules/client/preference_setup/occupation/occupation.dm @@ -58,9 +58,10 @@ if(!job_master) return + . = list() . += "
    " . += "Choose occupation chances
    Unavailable occupations are crossed out.
    " - . += "
    " // Table within a table for alignment, also allows you to easily add more colomns. + . += "
    " // Table within a table for alignment, also allows you to easily add more columns. . += "" var/index = -1 @@ -93,7 +94,7 @@ . += "[rank]" continue if((pref.job_civilian_low & ASSISTANT) && (rank != "Assistant")) - . += "[rank]" + . += "[rank]" continue if((rank in command_positions) || (rank == "AI"))//Bold head jobs . += "[rank]" @@ -106,40 +107,39 @@ if(rank == "Assistant")//Assistant is special if(pref.job_civilian_low & ASSISTANT) - . += " \[Yes]" + . += " \[Yes]" else - . += " \[No]" + . += " \[No]" if(job.alt_titles) //Blatantly cloned from a few lines down. . += "" . += "" continue if(pref.GetJobDepartment(job, 1) & job.flag) - . += " \[High]" + . += " \[High]" else if(pref.GetJobDepartment(job, 2) & job.flag) - . += " \[Medium]" + . += " \[Medium]" else if(pref.GetJobDepartment(job, 3) & job.flag) - . += " \[Low]" + . += " \[Low]" else - . += " \[NEVER]" + . += " \[NEVER]" if(job.alt_titles) . += "" . += "" - . += "
    \[MINIMUM CHARACTER AGE: [job.minimum_character_age]]
     \[[pref.GetPlayerAltTitle(job)]\]
     \[[pref.GetPlayerAltTitle(job)]\]
    " - - . += "
    " + . += "
    " switch(pref.alternate_option) if(GET_RANDOM_JOB) - . += "

    Get random job if preferences unavailable

    " + . += "Get random job if preferences unavailable" if(BE_ASSISTANT) - . += "

    Be assistant if preference unavailable

    " + . += "Be assistant if preference unavailable" if(RETURN_TO_LOBBY) - . += "

    Return to lobby if preference unavailable

    " + . += "Return to lobby if preference unavailable" - . += "
    \[Reset\]
    " + . += "\[Reset\]
    " . += "
    " + . = jointext(.,null) /datum/category_item/player_setup_item/occupation/OnTopic(href, href_list, user) if(href_list["reset_jobs"]) diff --git a/code/modules/client/preference_setup/skills/skills.dm b/code/modules/client/preference_setup/skills/skills.dm index 8370f35668b..7255e25bc46 100644 --- a/code/modules/client/preference_setup/skills/skills.dm +++ b/code/modules/client/preference_setup/skills/skills.dm @@ -19,6 +19,7 @@ if(pref.used_skillpoints < 0) pref.used_skillpoints = 0 /datum/category_item/player_setup_item/skills/content() + . = list() . += "Select your Skills
    " . += "Current skill level: [pref.GetSkillClass(pref.used_skillpoints)] ([pref.used_skillpoints])
    " . += "Use preconfigured skillset
    " @@ -30,16 +31,22 @@ var/level = pref.skills[S.ID] . += "" . += "[S.name]" - . += "\[Untrained\]" + . += skill_to_button(S, "Untrained", level, SKILL_NONE) // secondary skills don't have an amateur level if(S.secondary) . += "" else - . += "\[Amateur\]" - . += "\[Trained\]" - . += "\[Professional\]" + . += skill_to_button(S, "Amateur", level, SKILL_BASIC) + . += skill_to_button(S, "Trained", level, SKILL_ADEPT) + . += skill_to_button(S, "Professional", level, SKILL_EXPERT) . += "" . += "" + . = jointext(.,null) + +/datum/category_item/player_setup_item/proc/skill_to_button(var/skill, var/level_name, var/current_level, var/selection_level) + if(current_level == selection_level) + return "[level_name]" + return "[level_name]" /datum/category_item/player_setup_item/skills/OnTopic(href, href_list, user) if(href_list["skillinfo"]) diff --git a/code/modules/client/preferences.dm b/code/modules/client/preferences.dm index cc339556c30..0e9bf5323bd 100644 --- a/code/modules/client/preferences.dm +++ b/code/modules/client/preferences.dm @@ -25,7 +25,6 @@ datum/preferences //character preferences var/real_name //our character's name var/be_random_name = 0 //whether we are a random name every round - var/gender = MALE //gender of character (well duh) var/age = 30 //age of character var/spawnpoint = "Arrivals Shuttle" //where this character will spawn (0-2). var/b_type = "A+" //blood type (not-chooseable) @@ -108,6 +107,7 @@ datum/preferences // OOC Metadata: var/metadata = "" + var/list/ignored_players = list() var/client/client = null var/client_ckey = null @@ -116,11 +116,12 @@ datum/preferences var/communicator_visibility = 0 var/datum/category_collection/player_setup_collection/player_setup + var/datum/browser/panel /datum/preferences/New(client/C) player_setup = new(src) - gender = pick(MALE, FEMALE) - real_name = random_name(gender,species) + set_biological_gender(pick(MALE, FEMALE)) + real_name = random_name(identifying_gender,species) b_type = pick(4;"O-", 36;"O+", 3;"A-", 28;"A+", 1;"B-", 20;"B+", 1;"AB-", 5;"AB+") gear = list() @@ -211,7 +212,10 @@ datum/preferences dat += player_setup.content(user) dat += "" - user << browse(dat, "window=preferences;size=635x736") + //user << browse(dat, "window=preferences;size=635x736") + var/datum/browser/popup = new(user, "Character Setup","Character Setup", 635, 736, src) + popup.set_content(dat) + popup.open() /datum/preferences/proc/process_link(mob/user, list/href_list) if(!user) return @@ -254,7 +258,7 @@ datum/preferences // Sanitizing rather than saving as someone might still be editing when copy_to occurs. player_setup.sanitize_setup() if(be_random_name) - real_name = random_name(gender,species) + real_name = random_name(identifying_gender,species) if(config.humans_need_surnames) var/firstspace = findtext(real_name, " ") @@ -284,7 +288,8 @@ datum/preferences character.gen_record = gen_record character.exploit_record = exploit_record - character.gender = gender + character.gender = biological_gender + character.identifying_gender = identifying_gender character.age = age character.b_type = b_type @@ -374,7 +379,11 @@ datum/preferences dat += "
    " dat += "
    " - user << browse(dat, "window=saves;size=300x390") + //user << browse(dat, "window=saves;size=300x390") + panel = new(user, "Character Slots", "Character Slots", 300, 390, src) + panel.set_content(dat) + panel.open() /datum/preferences/proc/close_load_dialog(mob/user) - user << browse(null, "window=saves") \ No newline at end of file + //user << browse(null, "window=saves") + panel.close() \ No newline at end of file diff --git a/code/modules/client/preferences_toggle_procs.dm b/code/modules/client/preferences_toggle_procs.dm index f074fee298c..bcd4e3a0c1a 100644 --- a/code/modules/client/preferences_toggle_procs.dm +++ b/code/modules/client/preferences_toggle_procs.dm @@ -8,7 +8,7 @@ toggle_preference(pref_path) - src << "You will [ (is_preference_enabled(pref_path)) ? "now" : " no longer"] hear all mob speech as a ghost." + src << "You will [ (is_preference_enabled(pref_path)) ? "now" : "no longer"] hear all mob speech as a ghost." prefs.save_preferences() @@ -23,7 +23,7 @@ toggle_preference(pref_path) - src << "You will [ (is_preference_enabled(pref_path)) ? "now" : " no longer"] see all emotes as a ghost." + src << "You will [ (is_preference_enabled(pref_path)) ? "now" : "no longer"] see all emotes as a ghost." prefs.save_preferences() @@ -222,4 +222,4 @@ src << "You will [ (is_preference_enabled(pref_path)) ? "now" : "no longer"] receive attack logs." prefs.save_preferences() - feedback_add_details("admin_verb","TBeSpecial") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! \ No newline at end of file + feedback_add_details("admin_verb","TBeSpecial") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! diff --git a/code/modules/client/ui_style.dm b/code/modules/client/ui_style.dm index 7a021879a97..e6e4ff6ddb5 100644 --- a/code/modules/client/ui_style.dm +++ b/code/modules/client/ui_style.dm @@ -9,6 +9,15 @@ "minimalist" = 'icons/mob/screen/minimalist.dmi' ) +/var/all_ui_styles_robot = list( + "Midnight" = 'icons/mob/screen1_robot.dmi', + "Orange" = 'icons/mob/screen1_robot.dmi', + "old" = 'icons/mob/screen1_robot.dmi', + "White" = 'icons/mob/screen1_robot.dmi', + "old-noborder" = 'icons/mob/screen1_robot.dmi', + "minimalist" = 'icons/mob/screen1_robot_minimalist.dmi' + ) + /proc/ui_style2icon(ui_style) if(ui_style in all_ui_styles) return all_ui_styles[ui_style] @@ -21,8 +30,9 @@ set desc = "Configure your user interface" if(!ishuman(usr)) - usr << "You must be human to use this verb." - return + if(!isrobot(usr)) + usr << "You must be a human or a robot to use this verb." + return var/UI_style_new = input(usr, "Select a style. White is recommended for customization") as null|anything in all_ui_styles if(!UI_style_new) return @@ -42,6 +52,8 @@ icons.Add(usr.radio_use_icon) var/icon/ic = all_ui_styles[UI_style_new] + if(isrobot(usr)) + ic = all_ui_styles_robot[UI_style_new] for(var/obj/screen/I in icons) if(I.name in list(I_HELP, I_HURT, I_DISARM, I_GRAB)) continue diff --git a/code/modules/clothing/clothing.dm b/code/modules/clothing/clothing.dm index 88ef03dda2d..8c6fd55c690 100644 --- a/code/modules/clothing/clothing.dm +++ b/code/modules/clothing/clothing.dm @@ -337,11 +337,11 @@ overlays |= light_overlay_cache["[light_overlay]_icon"] // Generate and cache the on-mob icon, which is used in update_inv_head(). - var/cache_key = "[light_overlay][H ? "_[H.species.get_bodytype()]" : ""]" + var/cache_key = "[light_overlay][H ? "_[H.species.get_bodytype(H)]" : ""]" if(!light_overlay_cache[cache_key]) var/use_icon = 'icons/mob/light_overlays.dmi' - if(H && sprite_sheets[H.species.get_bodytype()]) - use_icon = sprite_sheets[H.species.get_bodytype()] + if(H && sprite_sheets[H.species.get_bodytype(H)]) + use_icon = sprite_sheets[H.species.get_bodytype(H)] light_overlay_cache[cache_key] = image("icon" = use_icon, "icon_state" = "[light_overlay]") if(H) @@ -535,8 +535,8 @@ var/icon/under_icon if(icon_override) under_icon = icon_override - else if(H && sprite_sheets && sprite_sheets[H.species.get_bodytype()]) - under_icon = sprite_sheets[H.species.get_bodytype()] + else if(H && sprite_sheets && sprite_sheets[H.species.get_bodytype(H)]) + under_icon = sprite_sheets[H.species.get_bodytype(H)] else if(item_icons && item_icons[slot_w_uniform_str]) under_icon = item_icons[slot_w_uniform_str] else @@ -558,8 +558,8 @@ var/icon/under_icon if(icon_override) under_icon = icon_override - else if(H && sprite_sheets && sprite_sheets[H.species.get_bodytype()]) - under_icon = sprite_sheets[H.species.get_bodytype()] + else if(H && sprite_sheets && sprite_sheets[H.species.get_bodytype(H)]) + under_icon = sprite_sheets[H.species.get_bodytype(H)] else if(item_icons && item_icons[slot_w_uniform_str]) under_icon = item_icons[slot_w_uniform_str] else diff --git a/code/modules/clothing/spacesuits/rig/modules/computer.dm b/code/modules/clothing/spacesuits/rig/modules/computer.dm index 11d551ace00..c8a2296680a 100644 --- a/code/modules/clothing/spacesuits/rig/modules/computer.dm +++ b/code/modules/clothing/spacesuits/rig/modules/computer.dm @@ -449,8 +449,9 @@ drain_complete(H) return - // Attempts to drain up to 40kW, determines this value from remaining cell capacity to ensure we don't drain too much.. - var/to_drain = min(40000, ((holder.cell.maxcharge - holder.cell.charge) / CELLRATE)) + // Attempts to drain up to 12.5*cell-capacity kW, determines this value from remaining cell capacity to ensure we don't drain too much. + // 1Ws/(12.5*CELLRATE) = 40s to charge + var/to_drain = min(12.5*holder.cell.maxcharge, ((holder.cell.maxcharge - holder.cell.charge) / CELLRATE)) var/target_drained = interfaced_with.drain_power(0,0,to_drain) if(target_drained <= 0) H << "Your power sink flashes a red light; there is no power left in [interfaced_with]." @@ -460,14 +461,14 @@ holder.cell.give(target_drained * CELLRATE) total_power_drained += target_drained - return 1 + return /obj/item/rig_module/power_sink/proc/drain_complete(var/mob/living/M) if(!interfaced_with) - if(M) M << "Total power drained: [round(total_power_drained/1000)]kJ." + if(M) M << "Total power drained: [round(total_power_drained*CELLRATE)] cell units." else - if(M) M << "Total power drained from [interfaced_with]: [round(total_power_drained/1000)]kJ." + if(M) M << "Total power drained from [interfaced_with]: [round(total_power_drained*CELLRATE)] cell units." interfaced_with.drain_power(0,1,0) // Damage the victim. drain_loc = null diff --git a/code/modules/clothing/spacesuits/rig/modules/ninja.dm b/code/modules/clothing/spacesuits/rig/modules/ninja.dm index 8ee748e04a3..5f6ce6249cc 100644 --- a/code/modules/clothing/spacesuits/rig/modules/ninja.dm +++ b/code/modules/clothing/spacesuits/rig/modules/ninja.dm @@ -67,7 +67,7 @@ name = "teleportation module" desc = "A complex, sleek-looking, hardsuit-integrated teleportation module." icon_state = "teleporter" - use_power_cost = 40 + use_power_cost = 200 redundant = 1 usable = 1 selectable = 1 @@ -97,8 +97,6 @@ /obj/item/rig_module/teleporter/engage(var/atom/target, var/notify_ai) - if(!..()) return 0 - var/mob/living/carbon/human/H = holder.wearer if(!istype(H.loc, /turf)) @@ -109,9 +107,13 @@ if(target) T = get_turf(target) else - T = get_teleport_loc(get_turf(H), H, rand(5, 9)) + T = get_teleport_loc(get_turf(H), H, 6, 1, 1, 1) - if(!T || T.density) + if(!T) + H << "No valid teleport target found." + return 0 + + if(T.density) H << "You cannot teleport into solid walls." return 0 @@ -127,6 +129,8 @@ H << "You cannot teleport to such a distant object." return 0 + if(!..()) return 0 + phase_out(H,get_turf(H)) H.forceMove(T) phase_in(H,get_turf(H)) diff --git a/code/modules/clothing/spacesuits/rig/modules/vision.dm b/code/modules/clothing/spacesuits/rig/modules/vision.dm index aa106eda02a..ddff6aefe00 100644 --- a/code/modules/clothing/spacesuits/rig/modules/vision.dm +++ b/code/modules/clothing/spacesuits/rig/modules/vision.dm @@ -50,6 +50,7 @@ usable = 1 toggleable = 1 disruptive = 0 + module_cooldown = 0 engage_string = "Cycle Visor Mode" activate_string = "Enable Visor" diff --git a/code/modules/clothing/spacesuits/rig/rig.dm b/code/modules/clothing/spacesuits/rig/rig.dm index 7db3dd1dc11..26d7de90820 100644 --- a/code/modules/clothing/spacesuits/rig/rig.dm +++ b/code/modules/clothing/spacesuits/rig/rig.dm @@ -472,8 +472,8 @@ var/species_icon = 'icons/mob/rig_back.dmi' // Since setting mob_icon will override the species checks in // update_inv_wear_suit(), handle species checks here. - if(wearer && sprite_sheets && sprite_sheets[wearer.species.get_bodytype()]) - species_icon = sprite_sheets[wearer.species.get_bodytype()] + if(wearer && sprite_sheets && sprite_sheets[wearer.species.get_bodytype(wearer)]) + species_icon = sprite_sheets[wearer.species.get_bodytype(wearer)] mob_icon = image("icon" = species_icon, "icon_state" = "[icon_state]") if(installed_modules.len) @@ -495,6 +495,8 @@ return 1 if(istype(user)) + if(!canremove) + return 1 if(malfunction_check(user)) return 0 if(user.back != src) diff --git a/code/modules/clothing/spacesuits/rig/suits/alien.dm b/code/modules/clothing/spacesuits/rig/suits/alien.dm index 0bdd033a35b..e2ded4c4684 100644 --- a/code/modules/clothing/spacesuits/rig/suits/alien.dm +++ b/code/modules/clothing/spacesuits/rig/suits/alien.dm @@ -9,7 +9,7 @@ offline_slowdown = 10 vision_restriction = 1 offline_vision_restriction = 2 - + chest_type = /obj/item/clothing/suit/space/rig helm_type = /obj/item/clothing/head/helmet/space/rig/unathi boot_type = /obj/item/clothing/shoes/magboots/rig/unathi @@ -24,9 +24,10 @@ /obj/item/clothing/head/helmet/space/rig/unathi species_restricted = list("Unathi") + force = 5 /obj/item/clothing/suit/space/rig/unathi species_restricted = list("Unathi") - + /obj/item/clothing/shoes/magboots/rig/unathi species_restricted = list("Unathi") \ No newline at end of file diff --git a/code/modules/clothing/spacesuits/rig/suits/light.dm b/code/modules/clothing/spacesuits/rig/suits/light.dm index bc5c15fbb07..3c4975f7d31 100644 --- a/code/modules/clothing/spacesuits/rig/suits/light.dm +++ b/code/modules/clothing/spacesuits/rig/suits/light.dm @@ -82,6 +82,7 @@ chest_type = /obj/item/clothing/suit/space/rig/light/ninja glove_type = /obj/item/clothing/gloves/rig/light/ninja + cell_type = /obj/item/weapon/cell/hyper req_access = list(access_syndicate) diff --git a/code/modules/clothing/spacesuits/void/void.dm b/code/modules/clothing/spacesuits/void/void.dm index 04f74d164e3..6632e9a86bd 100644 --- a/code/modules/clothing/spacesuits/void/void.dm +++ b/code/modules/clothing/spacesuits/void/void.dm @@ -15,12 +15,14 @@ sprite_sheets_refit = list( "Unathi" = 'icons/mob/species/unathi/helmet.dmi', "Tajara" = 'icons/mob/species/tajaran/helmet.dmi', - "Skrell" = 'icons/mob/species/skrell/helmet.dmi', + "Skrell" = 'icons/mob/species/skrell/helmet.dmi' + //Teshari have a general sprite sheet defined in modules/clothing/clothing.dm ) sprite_sheets_obj = list( "Unathi" = 'icons/obj/clothing/species/unathi/hats.dmi', "Tajara" = 'icons/obj/clothing/species/tajaran/hats.dmi', "Skrell" = 'icons/obj/clothing/species/skrell/hats.dmi', + "Teshari" = 'icons/obj/clothing/species/seromi/hats.dmi' ) light_overlay = "helmet_light" @@ -40,12 +42,14 @@ sprite_sheets_refit = list( "Unathi" = 'icons/mob/species/unathi/suit.dmi', "Tajara" = 'icons/mob/species/tajaran/suit.dmi', - "Skrell" = 'icons/mob/species/skrell/suit.dmi', + "Skrell" = 'icons/mob/species/skrell/suit.dmi' + //Teshari have a general sprite sheet defined in modules/clothing/clothing.dm ) sprite_sheets_obj = list( "Unathi" = 'icons/obj/clothing/species/unathi/suits.dmi', "Tajara" = 'icons/obj/clothing/species/tajaran/suits.dmi', "Skrell" = 'icons/obj/clothing/species/skrell/suits.dmi', + "Teshari" = 'icons/obj/clothing/species/seromi/suits.dmi' ) //Breach thresholds, should ideally be inherited by most (if not all) voidsuits. diff --git a/code/modules/clothing/suits/miscellaneous.dm b/code/modules/clothing/suits/miscellaneous.dm index cb7db449328..a260d835134 100644 --- a/code/modules/clothing/suits/miscellaneous.dm +++ b/code/modules/clothing/suits/miscellaneous.dm @@ -517,8 +517,8 @@ icon_closed = "cti_hoodie" /obj/item/clothing/suit/storage/toggle/hoodie/mu - name = "mars university hoodie" - desc = "A warm, gray sweatshirt. It bears the letters ‘MU’ on the front, a lettering to the well-known public college, Mars University." + name = "mojave university hoodie" + desc = "A warm, gray sweatshirt. It bears the letters ‘MU’ on the front, a lettering to the well-known public college, Mojave University." icon_state = "mu_hoodie" item_state = "mu_hoodie" icon_open = "mu_hoodie_open" diff --git a/code/modules/clothing/under/accessories/storage.dm b/code/modules/clothing/under/accessories/storage.dm index 0e9a004a2ef..cc305a78e87 100644 --- a/code/modules/clothing/under/accessories/storage.dm +++ b/code/modules/clothing/under/accessories/storage.dm @@ -68,6 +68,27 @@ icon_state = "vest_white" slots = 5 +/obj/item/clothing/accessory/storage/black_drop_pouches + name = "black drop pouches" + gender = PLURAL + desc = "Robust black synthcotton bags to hold whatever you need, but cannot hold in hands." + icon_state = "thigh_black" + slots = 5 + +/obj/item/clothing/accessory/storage/brown_drop_pouches + name = "black drop pouches" + gender = PLURAL + desc = "Worn brownish synthcotton bags to hold whatever you need, but cannot hold in hands." + icon_state = "thigh_brown" + slots = 5 + +/obj/item/clothing/accessory/storage/white_drop_pouches + name = "white drop pouches" + gender = PLURAL + desc = "Durable white synthcotton bags to hold whatever you need, but cannot hold in hands." + icon_state = "thigh_white" + slots = 5 + /obj/item/clothing/accessory/storage/knifeharness name = "decorated harness" desc = "A heavily decorated harness of sinew and leather with two knife-loops." diff --git a/code/modules/clothing/under/color.dm b/code/modules/clothing/under/color.dm index c852147ba33..9267b96cc17 100644 --- a/code/modules/clothing/under/color.dm +++ b/code/modules/clothing/under/color.dm @@ -14,7 +14,7 @@ /obj/item/clothing/under/color/blackjumpskirt name = "black jumpskirt" - desc = "A black jumpskirt, Sol size 0." + desc = "A slimming black jumpskirt." icon_state = "blackjumpskirt" item_state = "bl_suit" worn_state = "blackjumpskirt" diff --git a/code/modules/clothing/under/jobs/security.dm b/code/modules/clothing/under/jobs/security.dm index eb8310d2191..65bcf80fc09 100644 --- a/code/modules/clothing/under/jobs/security.dm +++ b/code/modules/clothing/under/jobs/security.dm @@ -227,7 +227,6 @@ item_state = "hostrench" flags_inv = 0 siemens_coefficient = 0.6 - body_parts_covered = UPPER_TORSO|ARMS /* * Navy uniforms diff --git a/code/modules/clothing/under/miscellaneous.dm b/code/modules/clothing/under/miscellaneous.dm index 91ade60b71a..929578ccbfb 100644 --- a/code/modules/clothing/under/miscellaneous.dm +++ b/code/modules/clothing/under/miscellaneous.dm @@ -561,6 +561,27 @@ worn_state = "mai_yang" body_parts_covered = UPPER_TORSO|LOWER_TORSO|LEGS +/obj/item/clothing/under/cheongsam/red + name = "red cheongsam" + desc = "It is a red cheongsam dress." + icon_state = "cheongsam-red" + item_state = "cheongsam-red" + worn_state = "cheongsam-red" + +/obj/item/clothing/under/cheongsam/blue + name = "blue cheongsam" + desc = "It is a blue cheongsam dress." + icon_state = "cheongsam-blue" + item_state = "cheongsam-blue" + worn_state = "cheongsam-blue" + +/obj/item/clothing/under/cheongsam/black + name = "black cheongsam" + desc = "It is a black cheongsam dress." + icon_state = "cheongsam-black" + item_state = "cheongsam-black" + worn_state = "cheongsam-black" + /obj/item/clothing/under/blazer name = "blue blazer" desc = "A bold but yet conservative outfit, red corduroys, navy blazer and a tie." @@ -608,4 +629,42 @@ desc = "How... minimalist." icon_state = "gear_harness" worn_state = "gear_harness" - body_parts_covered = 0 \ No newline at end of file + body_parts_covered = 0 + +/obj/item/clothing/under/dress/white + name = "white wedding dress" + desc = "A fancy white dress with a blue underdress." + icon_state = "whitedress1" + item_state = "whitedress1" + worn_state = "whitedress1" + flags_inv = HIDESHOES + +/obj/item/clothing/under/dress/white2 + name = "long dress" + desc = "A long dress." + icon_state = "whitedress2" + item_state = "whitedress2" + worn_state = "whitedress2" + flags_inv = HIDESHOES + +/obj/item/clothing/under/dress/white3 + name = "short dress" + desc = "A short, plain dress." + icon_state = "whitedress3" + item_state = "whitedress3" + worn_state = "whitedress3" + +/obj/item/clothing/under/dress/white4 + name = "long flared dress" + desc = "A long white dress that flares out at the bottom." + icon_state = "whitedress4" + item_state = "whitedress4" + worn_state = "whitedress4" + flags_inv = HIDESHOES + +/obj/item/clothing/under/dress/darkred + name = "fancy dark red dress" + desc = "A short, red dress with a black belt. Fancy." + icon_state = "darkreddress" + item_state = "darkreddress" + worn_state = "darkreddress" \ No newline at end of file diff --git a/code/modules/clothing/under/pants.dm b/code/modules/clothing/under/pants.dm index f3c38cc4331..9fdcb52b29f 100644 --- a/code/modules/clothing/under/pants.dm +++ b/code/modules/clothing/under/pants.dm @@ -11,7 +11,7 @@ icon_state = "jeansclassic" /obj/item/clothing/under/pants/mustangjeans - name = "Must Hang jeans" + name = "must hang jeans" desc = "Made in the finest space jeans factory this side of Alpha Centauri." icon_state = "jeansmustang" @@ -26,7 +26,7 @@ icon_state = "jeansgrey" /obj/item/clothing/under/pants/youngfolksjeans - name = "Young Folks jeans" + name = "young folks jeans" desc = "For those tired of boring old jeans. Relive the passion of your youth!" icon_state = "jeansyoungfolks" @@ -63,4 +63,71 @@ /obj/item/clothing/under/pants/camo name = "camo pants" desc = "A pair of woodland camouflage pants. Probably not the best choice for a space station." - icon_state = "camopants" \ No newline at end of file + icon_state = "camopants" + +//Baggy Pants// + +/obj/item/clothing/under/pants/baggy + name = "baggy jeans" + desc = "A nondescript pair of tough baggy blue jeans." + icon_state = "baggy_jeans" + +/obj/item/clothing/under/pants/baggy/classicjeans + name = "baggy classic jeans" + desc = "You feel cooler already." + icon_state = "baggy_jeansclassic" + +/obj/item/clothing/under/pants/baggy/mustangjeans + name = "maggy must hang jeans" + desc = "Made in the finest space jeans factory this side of Alpha Centauri." + icon_state = "baggy_jeansmustang" + +/obj/item/clothing/under/pants/baggy/blackjeans + name = "baggy black jeans" + desc = "Only for those who can pull it off." + icon_state = "baggy_jeansblack" + +/obj/item/clothing/under/pants/baggy/greyjeans + name = "baggy grey jeans" + desc = "Only for those who can pull it off." + icon_state = "baggy_jeansgrey" + +/obj/item/clothing/under/pants/baggy/youngfolksjeans + name = "baggy young folks jeans" + desc = "For those tired of boring old jeans. Relive the passion of your youth!" + icon_state = "baggy_jeansyoungfolks" + +/obj/item/clothing/under/pants/baggy/white + name = "baggy white pants" + desc = "Plain white pants. Boring." + icon_state = "baggy_whitepants" + +/obj/item/clothing/under/pants/baggy/red + name = "baggy red pants" + desc = "Bright red pants. Overflowing with personality." + icon_state = "baggy_redpants" + +/obj/item/clothing/under/pants/baggy/black + name = "baggy black pants" + desc = "These pants are dark, like your soul." + icon_state = "baggy_blackpants" + +/obj/item/clothing/under/pants/baggy/tan + name = "baggy tan pants" + desc = "Some tan pants. You look like a white collar worker with these on." + icon_state = "baggy_tanpants" + +/obj/item/clothing/under/pants/baggy/track + name = "baggy track pants" + desc = "A pair of track pants, for the athletic." + icon_state = "baggy_trackpants" + +/obj/item/clothing/under/pants/baggy/khaki + name = "baggy khaki pants" + desc = "A pair of dust beige khaki pants." + icon_state = "baggy_khaki" + +/obj/item/clothing/under/pants/baggy/camo + name = "baggy camo pants" + desc = "A pair of woodland camouflage pants. Probably not the best choice for a space station." + icon_state = "baggy_camopants" \ No newline at end of file diff --git a/code/modules/detectivework/microscope/dnascanner.dm b/code/modules/detectivework/microscope/dnascanner.dm index 4b3cafea50b..b3c28740146 100644 --- a/code/modules/detectivework/microscope/dnascanner.dm +++ b/code/modules/detectivework/microscope/dnascanner.dm @@ -6,6 +6,7 @@ icon_state = "dnaopen" anchored = 1 density = 1 + circuit = /obj/item/weapon/circuitboard/dna_analyzer var/obj/item/weapon/forensics/swab/bloodsamp = null var/closed = 0 @@ -15,6 +16,15 @@ var/last_process_worldtime = 0 var/report_num = 0 +/obj/machinery/dnaforensics/map/New() + circuit = new circuit(src) + component_parts = list() + component_parts += new /obj/item/weapon/stock_parts/console_screen(src) + component_parts += new /obj/item/weapon/stock_parts/micro_laser(src) + component_parts += new /obj/item/weapon/stock_parts/scanning_module(src) + component_parts += new /obj/item/weapon/stock_parts/scanning_module(src) + RefreshParts() + /obj/machinery/dnaforensics/attackby(var/obj/item/W, mob/user as mob) if(bloodsamp) @@ -22,7 +32,13 @@ return if(closed) - user << "Open the cover before inserting the sample." + if(!scanning) + if(default_deconstruction_screwdriver(user, W)) + return + if(default_deconstruction_crowbar(user, W)) + return + else + user << "Open the cover before inserting the sample." return var/obj/item/weapon/forensics/swab/swab = W diff --git a/code/modules/economy/cash.dm b/code/modules/economy/cash.dm index f18eac3b9dd..1229cee322f 100644 --- a/code/modules/economy/cash.dm +++ b/code/modules/economy/cash.dm @@ -21,9 +21,11 @@ if(istype(W, /obj/item/weapon/spacecash/ewallet)) return 0 var/obj/item/weapon/spacecash/SC = W + SC.adjust_worth(src.worth) if(istype(user, /mob/living/carbon/human)) var/mob/living/carbon/human/h_user = user + h_user.drop_from_inventory(src) h_user.drop_from_inventory(SC) h_user.put_in_hands(SC) @@ -77,6 +79,7 @@ /obj/item/weapon/spacecash/attack_self() var/amount = input(usr, "How many Thalers do you want to take? (0 to [src.worth])", "Take Money", 20) as num amount = round(Clamp(amount, 0, src.worth)) + if(!amount) return @@ -135,6 +138,7 @@ proc/spawn_money(var/sum, spawnloc, mob/living/carbon/human/human_user as mob) var/obj/item/weapon/spacecash/SC = new (spawnloc) + SC.set_worth(sum) if (ishuman(human_user) && !human_user.get_active_hand()) human_user.put_in_hands(SC) diff --git a/code/modules/materials/materials.dm b/code/modules/materials/materials.dm index 70f69be8347..920b751117d 100644 --- a/code/modules/materials/materials.dm +++ b/code/modules/materials/materials.dm @@ -195,9 +195,8 @@ var/list/name_to_material // General wall debris product placement. // Not particularly necessary aside from snowflakey cult girders. -/material/proc/place_dismantled_product(var/turf/target,var/is_devastated) - for(var/x=1;x<(is_devastated?2:3);x++) - place_sheet(target) +/material/proc/place_dismantled_product(var/turf/target) + place_sheet(target) // Debris product. Used ALL THE TIME. /material/proc/place_sheet(var/turf/target) diff --git a/code/modules/mining/drilling/drill.dm b/code/modules/mining/drilling/drill.dm index baa3306c88d..404344f6900 100644 --- a/code/modules/mining/drilling/drill.dm +++ b/code/modules/mining/drilling/drill.dm @@ -39,10 +39,10 @@ var/need_update_field = 0 var/need_player_check = 0 -/obj/machinery/mining/drill/New() +/obj/machinery/mining/drill/map/New() ..() - + circuit = new circuit(src) component_parts = list() component_parts += new /obj/item/weapon/stock_parts/matter_bin(src) component_parts += new /obj/item/weapon/stock_parts/capacitor(src) @@ -290,7 +290,7 @@ /obj/machinery/mining/brace/New() ..() - + component_parts = list() component_parts += new /obj/item/weapon/circuitboard/miningdrillbrace(src) diff --git a/code/modules/mining/mine_items.dm b/code/modules/mining/mine_items.dm index 71d1d807bd7..ce3ec04a25a 100644 --- a/code/modules/mining/mine_items.dm +++ b/code/modules/mining/mine_items.dm @@ -16,7 +16,7 @@ if(prob(50)) new /obj/item/weapon/storage/backpack/industrial(src) else - new /obj/item/weapon/storage/backpack/satchel_eng(src) + new /obj/item/weapon/storage/backpack/satchel/eng(src) new /obj/item/device/radio/headset/headset_cargo(src) new /obj/item/clothing/under/rank/miner(src) new /obj/item/clothing/gloves/black(src) diff --git a/code/modules/mob/dead/observer/observer.dm b/code/modules/mob/dead/observer/observer.dm index 68c631101d3..a7c4384f4fa 100644 --- a/code/modules/mob/dead/observer/observer.dm +++ b/code/modules/mob/dead/observer/observer.dm @@ -9,7 +9,7 @@ var/global/list/image/ghost_sightless_images = list() //this is a list of images /mob/observer/dead name = "ghost" desc = "It's a g-g-g-g-ghooooost!" //jinkies! - icon = 'icons/mob/mob.dmi' + icon = 'icons/mob/ghost.dmi' icon_state = "ghost" layer = 4 stat = DEAD @@ -35,6 +35,39 @@ var/global/list/image/ghost_sightless_images = list() //this is a list of images var/seedarkness = 1 incorporeal_move = 1 + var/is_manifest = 0 //If set to 1, the ghost is able to whisper. Usually only set if a cultist drags them through the veil. + var/ghost_sprite = null + var/global/list/possible_ghost_sprites = list( + "Clear" = "blank", + "Green Blob" = "otherthing", + "Bland" = "ghost", + "Robed-B" = "ghost1", + "Robed-BAlt" = "ghost2", + "Corgi" = "ghostian", + "King" = "ghostking", + "Shade" = "shade", + "Hecate" = "ghost-narsie", + "Glowing Statue" = "armour", + "Artificer" = "artificer", + "Behemoth" = "behemoth", + "Harvester" = "harvester", + "Wraith" = "wraith", + "Viscerator" = "viscerator", + "Bats" = "bat", + "Red Robes" = "robe_red", + "Faithless" = "faithless", + "Shadowform" = "forgotten", + "Black Cat" = "blackcat", + "Dark Ethereal" = "bloodguardian", + "Holy Ethereal" = "lightguardian", + "Red Elemental" = "magicRed", + "Blue Elemental" = "magicBlue", + "Pink Elemental" = "magicPink", + "Orange Elemental" = "magicOrange", + "Green Elemental" = "magicGreen", + "Daemon" = "daemon" + ) + /mob/observer/dead/New(mob/body) sight |= SEE_TURFS | SEE_MOBS | SEE_OBJS | SEE_SELF see_invisible = SEE_INVISIBLE_OBSERVER @@ -155,6 +188,12 @@ Works together with spawning an observer, noted above. ghost.can_reenter_corpse = can_reenter_corpse ghost.timeofdeath = src.timeofdeath //BS12 EDIT ghost.key = key + if(istype(loc, /obj/structure/morgue)) + var/obj/structure/morgue/M = loc + M.update() + else if(istype(loc, /obj/structure/closet/body_bag)) + var/obj/structure/closet/body_bag/B = loc + B.update() if(ghost.client) ghost.client.time_died_as_mouse = ghost.timeofdeath if(ghost.client && !ghost.client.holder && !config.antag_hud_allowed) // For new ghosts we remove the verb from even showing up if it's not allowed. @@ -224,6 +263,12 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp mind.current.ajourn=0 mind.current.key = key mind.current.teleop = null + if(istype(mind.current.loc, /obj/structure/morgue)) + var/obj/structure/morgue/M = mind.current.loc + M.update(1) + else if(istype(mind.current.loc, /obj/structure/closet/body_bag)) + var/obj/structure/closet/body_bag/B = mind.current.loc + B.update(1) if(!admin_ghosted) announce_ghost_joinleave(mind, 0, "They now occupy their body again.") return 1 @@ -605,11 +650,12 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp return 1 /mob/observer/dead/proc/manifest(mob/user) - var/is_manifest = 0 + is_manifest = 0 if(!is_manifest) is_manifest = 1 verbs += /mob/observer/dead/proc/toggle_visibility - + verbs += /mob/observer/dead/proc/ghost_whisper + src << "As you are now in the realm of the living, you can whisper to the living with the Spectral Whisper verb, inside the IC tab." if(src.invisibility != 0) user.visible_message( \ "\The [user] drags ghost, [src], to our plane of reality!", \ @@ -741,3 +787,44 @@ mob/observer/dead/MayRespawn(var/feedback = 0) if((!target) || (!ghost)) return . = "follow" . += target.extra_ghost_link(ghost) + +//Culted Ghosts + +/mob/observer/dead/proc/ghost_whisper() + set name = "Spectral Whisper" + set category = "IC" + + if(is_manifest) //Only able to whisper if it's hit with a tome. + var/list/options = list() + for(var/mob/living/Ms in view(src)) + options += Ms + var/mob/living/M = input(src, "Select who to whisper to:", "Whisper to?", null) as null|mob in options + if(!M) + return 0 + var/msg = sanitize(input(src, "Message:", "Spectral Whisper") as text|null) + if(msg) + log_say("SpectralWhisper: [key_name(usr)]->[M.key] : [msg]") + M << " You hear a strange, unidentifiable voice in your head... [msg]" + src << " You said: '[msg]' to [M]." + else + return + return 1 + else + src << "You have not been pulled past the veil!" + +/mob/observer/dead/verb/choose_ghost_sprite() + set category = "Ghost" + set name = "Choose Sprite" + + icon = 'icons/mob/ghost.dmi' + var/choice + var/finalized = "No" + while(finalized == "No" && src.client) + + choice = input(usr,"What would you like to use for your ghost sprite?") as null|anything in possible_ghost_sprites + if(!choice) return + + icon_state = possible_ghost_sprites[choice] + finalized = alert("Look at your sprite. Is this what you wish to use?",,"No","Yes") + + ghost_sprite = possible_ghost_sprites[choice] diff --git a/code/modules/mob/emote.dm b/code/modules/mob/emote.dm index 8ab162dbc43..7fb80529095 100644 --- a/code/modules/mob/emote.dm +++ b/code/modules/mob/emote.dm @@ -84,4 +84,7 @@ if(input) log_emote("Ghost/[src.key] : [input]") - say_dead_direct(input, src) + if(!invisibility) //If the ghost is made visible by admins or cult. And to see if the ghost has toggled its own visibility, as well. -Mech + visible_message("[src] [input]") + else + say_dead_direct(input, src) diff --git a/code/modules/mob/holder.dm b/code/modules/mob/holder.dm index ac63e4e5825..dc8dbccb013 100644 --- a/code/modules/mob/holder.dm +++ b/code/modules/mob/holder.dm @@ -138,7 +138,7 @@ var/list/holder_mob_icon_cache = list() var/skin_colour = rgb(owner.r_skin, owner.g_skin, owner.b_skin) var/hair_colour = rgb(owner.r_hair, owner.g_hair, owner.b_hair) var/eye_colour = rgb(owner.r_eyes, owner.g_eyes, owner.b_eyes) - var/species_name = lowertext(owner.species.get_bodytype()) + var/species_name = lowertext(owner.species.get_bodytype(owner)) for(var/cache_entry in generate_for_slots) var/cache_key = "[owner.species]-[cache_entry]-[skin_colour]-[hair_colour]" diff --git a/code/modules/mob/inventory.dm b/code/modules/mob/inventory.dm index d5fde7978df..9d979787c5b 100644 --- a/code/modules/mob/inventory.dm +++ b/code/modules/mob/inventory.dm @@ -24,7 +24,14 @@ var/list/slot_equipment_priority = list( \ //This proc is called whenever someone clicks an inventory ui slot. /mob/proc/attack_ui(var/slot) var/obj/item/W = get_active_hand() - if(istype(W)) + + var/obj/item/E = get_equipped_item(slot) + if (istype(E)) + if(istype(W)) + E.attackby(W,src) + else + E.attack_hand(src) + else equip_to_slot_if_possible(W, slot) /* Inventory manipulation */ @@ -44,6 +51,7 @@ var/list/slot_equipment_priority = list( \ if(!W.mob_can_equip(src, slot)) if(del_on_fail) qdel(W) + else if(!disable_warning) src << "\red You are unable to equip that." //Only print if del_on_fail is false @@ -176,6 +184,7 @@ var/list/slot_equipment_priority = list( \ break return slot + //This differs from remove_from_mob() in that it checks if the item can be unequipped first. /mob/proc/unEquip(obj/item/I, force = 0) //Force overrides NODROP for things like wizarditis and admin undress. if(!(force || canUnEquip(I))) @@ -183,6 +192,7 @@ var/list/slot_equipment_priority = list( \ drop_from_inventory(I) return 1 + //Attemps to remove an object on a mob. /mob/proc/remove_from_mob(var/obj/O) src.u_equip(O) diff --git a/code/modules/mob/language/language.dm b/code/modules/mob/language/language.dm index cc0a1d2016e..223b01e1109 100644 --- a/code/modules/mob/language/language.dm +++ b/code/modules/mob/language/language.dm @@ -158,7 +158,12 @@ // Can we speak this language, as opposed to just understanding it? /mob/proc/can_speak(datum/language/speaking) - return (speaking.can_speak_special(src) && (universal_speak || (speaking && speaking.flags & INNATE) || speaking in src.languages)) +//Prevents someone from speaking a null language. + if(speaking) + return (speaking.can_speak_special(src) && (universal_speak || (speaking && (speaking.flags & INNATE)) || speaking in src.languages)) + else + log_debug("[src] attempted to speak a null language.") + return 0 /mob/proc/get_language_prefix() if(client && client.prefs.language_prefixes && client.prefs.language_prefixes.len) diff --git a/code/modules/mob/living/bot/farmbot.dm b/code/modules/mob/living/bot/farmbot.dm index 1187d16b5fd..e623f58be86 100644 --- a/code/modules/mob/living/bot/farmbot.dm +++ b/code/modules/mob/living/bot/farmbot.dm @@ -22,6 +22,7 @@ var/obj/structure/reagent_dispensers/watertank/tank + /mob/living/bot/farmbot/New(var/newloc, var/newTank) ..(newloc) if(!newTank) @@ -29,6 +30,7 @@ tank = newTank tank.forceMove(src) + /mob/living/bot/farmbot/attack_hand(var/mob/user as mob) . = ..() if(.) @@ -105,10 +107,13 @@ else icon_state = "farmbot[on]" + /mob/living/bot/farmbot/handleRegular() if(emagged && prob(1)) flick("farmbot_broke", src) + + /mob/living/bot/farmbot/handleAdjacentTarget() UnarmedAttack(target) @@ -148,11 +153,13 @@ /mob/living/bot/farmbot/UnarmedAttack(var/atom/A, var/proximity) if(!..()) return + if(busy) return if(istype(A, /obj/machinery/portable_atmospherics/hydroponics)) var/obj/machinery/portable_atmospherics/hydroponics/T = A + var/t = confirmTarget(T) switch(t) if(0) @@ -161,6 +168,7 @@ action = "water" // Needs a better one update_icons() visible_message("[src] starts [T.dead? "removing the plant from" : "harvesting"] \the [A].") + busy = 1 if(do_after(src, 30)) visible_message("[src] [T.dead? "removes the plant from" : "harvests"] \the [A].") @@ -169,6 +177,7 @@ action = "water" update_icons() visible_message("[src] starts watering \the [A].") + busy = 1 if(do_after(src, 30)) playsound(loc, 'sound/effects/slosh.ogg', 25, 1) @@ -178,6 +187,7 @@ action = "hoe" update_icons() visible_message("[src] starts uprooting the weeds in \the [A].") + busy = 1 if(do_after(src, 30)) visible_message("[src] uproots the weeds in \the [A].") @@ -186,10 +196,13 @@ action = "fertile" update_icons() visible_message("[src] starts fertilizing \the [A].") + busy = 1 if(do_after(src, 30)) + visible_message("[src] fertilizes \the [A].") T.reagents.add_reagent("ammonia", 10) + busy = 0 action = "" update_icons() @@ -200,19 +213,23 @@ action = "water" update_icons() visible_message("[src] starts refilling its tank from \the [A].") + busy = 1 while(do_after(src, 10) && tank.reagents.total_volume < tank.reagents.maximum_volume) tank.reagents.add_reagent("water", 10) if(prob(5)) playsound(loc, 'sound/effects/slosh.ogg', 25, 1) + busy = 0 action = "" update_icons() visible_message("[src] finishes refilling its tank.") else if(emagged && ishuman(A)) var/action = pick("weed", "water") + busy = 1 spawn(50) // Some delay + busy = 0 switch(action) if("weed") @@ -225,6 +242,7 @@ A.attack_generic(src, 5, t) if("water") flick("farmbot_water", src) + visible_message("[src] splashes [A] with water!") tank.reagents.splash(A, 100) @@ -249,6 +267,7 @@ qdel(src) return + /mob/living/bot/farmbot/confirmTarget(var/atom/targ) if(!..()) return 0 @@ -296,6 +315,7 @@ var/obj/tank w_class = 3.0 + /obj/item/weapon/farmbot_arm_assembly/New(var/newloc, var/theTank) ..(newloc) if(!theTank) // If an admin spawned it, it won't have a watertank it, so lets make one for em! @@ -309,7 +329,9 @@ ..() return + user << "You add the robot arm to [src]." + user.drop_from_inventory(S) qdel(S) @@ -321,6 +343,7 @@ build_step++ user << "You add the plant analyzer to [src]." name = "farmbot assembly" + user.remove_from_mob(W) qdel(W) @@ -328,6 +351,7 @@ build_step++ user << "You add a bucket to [src]." name = "farmbot assembly with bucket" + user.remove_from_mob(W) qdel(W) @@ -335,14 +359,17 @@ build_step++ user << "You add a minihoe to [src]." name = "farmbot assembly with bucket and minihoe" + user.remove_from_mob(W) qdel(W) else if((isprox(W)) && (build_step == 3)) build_step++ user << "You complete the Farmbot! Beep boop." + var/mob/living/bot/farmbot/S = new /mob/living/bot/farmbot(get_turf(src), tank) S.name = created_name + user.remove_from_mob(W) qdel(W) qdel(src) diff --git a/code/modules/mob/living/carbon/human/appearance.dm b/code/modules/mob/living/carbon/human/appearance.dm index 823ac808ec2..c3813000bbb 100644 --- a/code/modules/mob/living/carbon/human/appearance.dm +++ b/code/modules/mob/living/carbon/human/appearance.dm @@ -143,13 +143,13 @@ var/datum/species/current_species = all_species[current_species_name] if(check_whitelist && config.usealienwhitelist && !check_rights(R_ADMIN, 0, src)) //If we're using the whitelist, make sure to check it! - if(!(current_species.spawn_flags & CAN_JOIN)) + if(!(current_species.spawn_flags & SPECIES_CAN_JOIN)) continue if(whitelist.len && !(current_species_name in whitelist)) continue if(blacklist.len && (current_species_name in blacklist)) continue - if((current_species.spawn_flags & IS_WHITELISTED) && !is_alien_whitelisted(src, current_species_name)) + if((current_species.spawn_flags & SPECIES_IS_WHITELISTED) && !is_alien_whitelisted(src, current_species_name)) continue valid_species += current_species_name @@ -158,9 +158,9 @@ /mob/living/carbon/human/proc/generate_valid_hairstyles(var/check_gender = 1) - var/use_species = species.get_bodytype() + var/use_species = species.get_bodytype(src) var/obj/item/organ/external/head/H = get_organ(BP_HEAD) - if(H) use_species = H.species.get_bodytype() + if(H) use_species = H.species.get_bodytype(src) var/list/valid_hairstyles = new() for(var/hairstyle in hair_styles_list) @@ -180,9 +180,9 @@ /mob/living/carbon/human/proc/generate_valid_facial_hairstyles() - var/use_species = species.get_bodytype() + var/use_species = species.get_bodytype(src) var/obj/item/organ/external/head/H = get_organ(BP_HEAD) - if(H) use_species = H.species.get_bodytype() + if(H) use_species = H.species.get_bodytype(src) var/list/valid_facial_hairstyles = new() for(var/facialhairstyle in facial_hair_styles_list) diff --git a/code/modules/mob/living/carbon/human/examine.dm b/code/modules/mob/living/carbon/human/examine.dm index 235abffef60..a68ba56dd46 100644 --- a/code/modules/mob/living/carbon/human/examine.dm +++ b/code/modules/mob/living/carbon/human/examine.dm @@ -26,7 +26,7 @@ var/msg = "*---------*\nThis is " - var/datum/gender/T = gender_datums[gender] + var/datum/gender/T = gender_datums[get_gender()] if(skipjumpsuit && skipface) //big suits/masks/helmets make it hard to tell their gender T = gender_datums[PLURAL] else @@ -51,7 +51,12 @@ msg += ", [use_gender]!" else if(species.name != "Human") - msg += ", \a [species.name]!" + msg += ", \a [species.get_examine_name()]!" + + var/extra_species_text = species.get_additional_examine_text(src) + if(extra_species_text) + msg += "[extra_species_text]
    " + msg += "
    " //uniform diff --git a/code/modules/mob/living/carbon/human/human.dm b/code/modules/mob/living/carbon/human/human.dm index 74d8b54a930..56482186b44 100644 --- a/code/modules/mob/living/carbon/human/human.dm +++ b/code/modules/mob/living/carbon/human/human.dm @@ -326,11 +326,19 @@ //Removed the horrible safety parameter. It was only being used by ninja code anyways. //Now checks siemens_coefficient of the affected area by default /mob/living/carbon/human/electrocute_act(var/shock_damage, var/obj/source, var/base_siemens_coeff = 1.0, var/def_zone = null) + if(status_flags & GODMODE) return 0 //godmode if (!def_zone) def_zone = pick("l_hand", "r_hand") + if(species.siemens_coefficient == -1) + if(stored_shock_by_ref["\ref[src]"]) + stored_shock_by_ref["\ref[src]"] += shock_damage + else + stored_shock_by_ref["\ref[src]"] = shock_damage + return + var/obj/item/organ/external/affected_organ = get_organ(check_zone(def_zone)) var/siemens_coeff = base_siemens_coeff * get_siemens_coefficient_organ(affected_organ) @@ -1104,6 +1112,9 @@ if(species.holder_type) holder_type = species.holder_type + if(!(gender in species.genders)) + gender = species.genders[1] + icon_state = lowertext(species.name) species.create_organs(src) diff --git a/code/modules/mob/living/carbon/human/human_defense.dm b/code/modules/mob/living/carbon/human/human_defense.dm index 1c09c04c709..cfb5058c0a8 100644 --- a/code/modules/mob/living/carbon/human/human_defense.dm +++ b/code/modules/mob/living/carbon/human/human_defense.dm @@ -92,7 +92,7 @@ emp_act if (!def_zone) return 1.0 - var/siemens_coefficient = species.siemens_coefficient + var/siemens_coefficient = max(species.siemens_coefficient,0) var/list/clothing_items = list(head, wear_mask, wear_suit, w_uniform, gloves, shoes) // What all are we checking? for(var/obj/item/clothing/C in clothing_items) diff --git a/code/modules/mob/living/carbon/human/human_defines.dm b/code/modules/mob/living/carbon/human/human_defines.dm index 2cb4ad5abf0..0a21d4d5bcf 100644 --- a/code/modules/mob/living/carbon/human/human_defines.dm +++ b/code/modules/mob/living/carbon/human/human_defines.dm @@ -91,3 +91,5 @@ mob_bump_flag = HUMAN mob_push_flags = ~HEAVY mob_swap_flags = ~HEAVY + + var/identifying_gender // In case the human identifies as another gender than it's biological diff --git a/code/modules/mob/living/carbon/human/human_helpers.dm b/code/modules/mob/living/carbon/human/human_helpers.dm index 5cb11157f12..df8eead14ec 100644 --- a/code/modules/mob/living/carbon/human/human_helpers.dm +++ b/code/modules/mob/living/carbon/human/human_helpers.dm @@ -55,6 +55,8 @@ sum += H.ear_protection return sum +/mob/living/carbon/human/get_gender() + return identifying_gender ? identifying_gender : gender #undef HUMAN_EATING_NO_ISSUE #undef HUMAN_EATING_NO_MOUTH diff --git a/code/modules/mob/living/carbon/human/inventory.dm b/code/modules/mob/living/carbon/human/inventory.dm index 42262b8c93c..4cbde15ff13 100644 --- a/code/modules/mob/living/carbon/human/inventory.dm +++ b/code/modules/mob/living/carbon/human/inventory.dm @@ -267,7 +267,7 @@ This saves us from having to call add_fingerprint() any time something is put in update_inv_shoes(redraw_mob) if(slot_wear_suit) src.wear_suit = W - if(wear_suit.flags_inv & HIDESHOES) + if((wear_suit.flags_inv & HIDESHOES) || (w_uniform.flags_inv & HIDESHOES)) update_inv_shoes(0) W.equipped(src, slot) update_inv_wear_suit(redraw_mob) diff --git a/code/modules/mob/living/carbon/human/life.dm b/code/modules/mob/living/carbon/human/life.dm index b0a45faff66..36e418418e3 100644 --- a/code/modules/mob/living/carbon/human/life.dm +++ b/code/modules/mob/living/carbon/human/life.dm @@ -164,8 +164,8 @@ eye_blind = 0 blinded = 0 eye_blurry = 0 - - + + if (disabilities & EPILEPSY) if ((prob(1) && paralysis < 1)) src << "\red You have a seizure!" @@ -241,7 +241,13 @@ radiation = Clamp(radiation,0,100) - if (radiation) + if(!radiation) + if(species.appearance_flags & RADIATION_GLOWS) + set_light(0) + else + if(species.appearance_flags & RADIATION_GLOWS) + set_light(max(1,min(10,radiation/10)), max(1,min(20,radiation/20)), species.get_flesh_colour(src)) + // END DOGSHIT SNOWFLAKE var/obj/item/organ/internal/diona/nutrients/rad_organ = locate() in internal_organs if(rad_organ && !rad_organ.is_broken()) diff --git a/code/modules/mob/living/carbon/human/species/outsider/shadow.dm b/code/modules/mob/living/carbon/human/species/outsider/shadow.dm index 8820ffaf5bd..58a967c809e 100644 --- a/code/modules/mob/living/carbon/human/species/outsider/shadow.dm +++ b/code/modules/mob/living/carbon/human/species/outsider/shadow.dm @@ -19,7 +19,9 @@ death_message = "dissolves into ash..." flags = NO_SCAN | NO_SLIP | NO_POISON | NO_MINOR_CUT - spawn_flags = IS_RESTRICTED + spawn_flags = SPECIES_IS_RESTRICTED + + genders = list(NEUTER) /datum/species/shadow/handle_death(var/mob/living/carbon/human/H) spawn(1) diff --git a/code/modules/mob/living/carbon/human/species/species.dm b/code/modules/mob/living/carbon/human/species/species.dm index e8a83045100..25a8149e482 100644 --- a/code/modules/mob/living/carbon/human/species/species.dm +++ b/code/modules/mob/living/carbon/human/species/species.dm @@ -21,10 +21,12 @@ var/prone_icon // If set, draws this from icobase when mob is prone. var/blood_color = "#A10808" // Red. var/flesh_color = "#FFC896" // Pink. - var/base_color // Used by changelings. Should also be used for icon previes.. + var/base_color // Used by changelings. Should also be used for icon previews. + var/tail // Name of tail state in species effects icon file. var/tail_animation // If set, the icon to obtain tail animation states from. var/tail_hair + var/race_key = 0 // Used for mob icon cache string. var/icon/icon_template // Used for mob icon generation for non-32x32 species. var/mob_size = MOB_MEDIUM @@ -147,6 +149,8 @@ BP_R_FOOT = list("path" = /obj/item/organ/external/foot/right) ) + var/list/genders = list(MALE, FEMALE) + // Bump vars var/bump_flag = HUMAN // What are we considered to be when bumped? var/push_flags = ~HEAVY // What can we push? @@ -173,71 +177,9 @@ inherent_verbs = list() inherent_verbs |= /mob/living/carbon/human/proc/regurgitate -/datum/species/proc/get_station_variant() - return name - -/datum/species/proc/get_bodytype() - return name - -/datum/species/proc/get_knockout_message(var/mob/living/carbon/human/H) - return ((H && H.isSynthetic()) ? "encounters a hardware fault and suddenly reboots!" : knockout_message) - -/datum/species/proc/get_death_message(var/mob/living/carbon/human/H) - if(config.show_human_death_message) - return ((H && H.isSynthetic()) ? "gives one shrill beep before falling lifeless." : death_message) - else - return "no message" - -/datum/species/proc/get_ssd(var/mob/living/carbon/human/H) - return ((H && H.isSynthetic()) ? "flashing a 'system offline' glyph on their monitor" : show_ssd) - -/datum/species/proc/get_blood_colour(var/mob/living/carbon/human/H) - return ((H && H.isSynthetic()) ? SYNTH_BLOOD_COLOUR : blood_color) - -/datum/species/proc/get_virus_immune(var/mob/living/carbon/human/H) - return ((H && H.isSynthetic()) ? 1 : virus_immune) - -/datum/species/proc/get_flesh_colour(var/mob/living/carbon/human/H) - return ((H && H.isSynthetic()) ? SYNTH_FLESH_COLOUR : flesh_color) - -/datum/species/proc/get_environment_discomfort(var/mob/living/carbon/human/H, var/msg_type) - - if(!prob(5)) - return - - var/covered = 0 // Basic coverage can help. - for(var/obj/item/clothing/clothes in H) - if(H.item_is_in_hands(clothes)) - continue - if((clothes.body_parts_covered & UPPER_TORSO) && (clothes.body_parts_covered & LOWER_TORSO)) - covered = 1 - break - - switch(msg_type) - if("cold") - if(!covered) - H << "[pick(cold_discomfort_strings)]" - if("heat") - if(covered) - H << "[pick(heat_discomfort_strings)]" - /datum/species/proc/sanitize_name(var/name) return sanitizeName(name) -/datum/species/proc/get_random_name(var/gender) - if(!name_language) - if(gender == FEMALE) - return capitalize(pick(first_names_female)) + " " + capitalize(pick(last_names)) - else - return capitalize(pick(first_names_male)) + " " + capitalize(pick(last_names)) - - var/datum/language/species_language = all_languages[name_language] - if(!species_language) - species_language = all_languages[default_language] - if(!species_language) - return "unknown" - return species_language.get_random_name(gender) - /datum/species/proc/equip_survival_gear(var/mob/living/carbon/human/H,var/extendedtank = 1) if(H.backbag == 1) if (extendedtank) H.equip_to_slot_or_del(new /obj/item/weapon/storage/box/engineer(H), slot_r_hand) @@ -349,6 +291,3 @@ // Called in life() when the mob has no client. /datum/species/proc/handle_npc(var/mob/living/carbon/human/H) return - -/datum/species/proc/get_vision_flags(var/mob/living/carbon/human/H) - return vision_flags diff --git a/code/modules/mob/living/carbon/human/species/species_attack.dm b/code/modules/mob/living/carbon/human/species/species_attack.dm index cd4ca21e001..018dbafa84c 100644 --- a/code/modules/mob/living/carbon/human/species/species_attack.dm +++ b/code/modules/mob/living/carbon/human/species/species_attack.dm @@ -67,9 +67,9 @@ attack_noun = list("body") damage = 2 -/datum/unarmed_attack/slime_glomp/apply_effects() - //Todo, maybe have a chance of causing an electrical shock? - return +/datum/unarmed_attack/slime_glomp/apply_effects(var/mob/living/carbon/human/user,var/mob/living/carbon/human/target,var/armour,var/attack_damage,var/zone) + ..() + user.apply_stored_shock_to(target) /datum/unarmed_attack/stomp/weak attack_verb = list("jumped on") diff --git a/code/modules/mob/living/carbon/human/species/species_getters.dm b/code/modules/mob/living/carbon/human/species/species_getters.dm new file mode 100644 index 00000000000..625d5559433 --- /dev/null +++ b/code/modules/mob/living/carbon/human/species/species_getters.dm @@ -0,0 +1,97 @@ +/datum/species/proc/get_valid_shapeshifter_forms(var/mob/living/carbon/human/H) + return list() + +/datum/species/proc/get_additional_examine_text(var/mob/living/carbon/human/H) + return + +/datum/species/proc/get_tail(var/mob/living/carbon/human/H) + return tail + +/datum/species/proc/get_tail_animation(var/mob/living/carbon/human/H) + return tail_animation + +/datum/species/proc/get_tail_hair(var/mob/living/carbon/human/H) + return tail_hair + +/datum/species/proc/get_blood_mask(var/mob/living/carbon/human/H) + return blood_mask + +/datum/species/proc/get_damage_overlays(var/mob/living/carbon/human/H) + return damage_overlays + +/datum/species/proc/get_damage_mask(var/mob/living/carbon/human/H) + return damage_mask + +/datum/species/proc/get_examine_name(var/mob/living/carbon/human/H) + return name + +/datum/species/proc/get_icobase(var/mob/living/carbon/human/H, var/get_deform) + return (get_deform ? deform : icobase) + +/datum/species/proc/get_station_variant() + return name + +/datum/species/proc/get_race_key(var/mob/living/carbon/human/H) + return race_key + +/datum/species/proc/get_bodytype(var/mob/living/carbon/human/H) + return name + +/datum/species/proc/get_knockout_message(var/mob/living/carbon/human/H) + return ((H && H.isSynthetic()) ? "encounters a hardware fault and suddenly reboots!" : knockout_message) + +/datum/species/proc/get_death_message(var/mob/living/carbon/human/H) + if(config.show_human_death_message) + return ((H && H.isSynthetic()) ? "gives one shrill beep before falling lifeless." : death_message) + else + return "no message" + +/datum/species/proc/get_ssd(var/mob/living/carbon/human/H) + return ((H && H.isSynthetic()) ? "flashing a 'system offline' glyph on their monitor" : show_ssd) + +/datum/species/proc/get_blood_colour(var/mob/living/carbon/human/H) + return ((H && H.isSynthetic()) ? SYNTH_BLOOD_COLOUR : blood_color) + +/datum/species/proc/get_virus_immune(var/mob/living/carbon/human/H) + return ((H && H.isSynthetic()) ? 1 : virus_immune) + +/datum/species/proc/get_flesh_colour(var/mob/living/carbon/human/H) + return ((H && H.isSynthetic()) ? SYNTH_FLESH_COLOUR : flesh_color) + +/datum/species/proc/get_environment_discomfort(var/mob/living/carbon/human/H, var/msg_type) + + if(!prob(5)) + return + + var/covered = 0 // Basic coverage can help. + for(var/obj/item/clothing/clothes in H) + if(H.item_is_in_hands(clothes)) + continue + if((clothes.body_parts_covered & UPPER_TORSO) && (clothes.body_parts_covered & LOWER_TORSO)) + covered = 1 + break + + switch(msg_type) + if("cold") + if(!covered) + H << "[pick(cold_discomfort_strings)]" + if("heat") + if(covered) + H << "[pick(heat_discomfort_strings)]" + +/datum/species/proc/get_random_name(var/gender) + if(!name_language) + if(gender == FEMALE) + return capitalize(pick(first_names_female)) + " " + capitalize(pick(last_names)) + else + return capitalize(pick(first_names_male)) + " " + capitalize(pick(last_names)) + + var/datum/language/species_language = all_languages[name_language] + if(!species_language) + species_language = all_languages[default_language] + if(!species_language) + return "unknown" + return species_language.get_random_name(gender) + +/datum/species/proc/get_vision_flags(var/mob/living/carbon/human/H) + return vision_flags diff --git a/code/modules/mob/living/carbon/human/species/species_helpers.dm b/code/modules/mob/living/carbon/human/species/species_helpers.dm new file mode 100644 index 00000000000..3152312f1cc --- /dev/null +++ b/code/modules/mob/living/carbon/human/species/species_helpers.dm @@ -0,0 +1,6 @@ +var/list/stored_shock_by_ref = list() + +/mob/living/proc/apply_stored_shock_to(var/mob/living/target) + if(stored_shock_by_ref["\ref[src]"]) + target.electrocute_act(stored_shock_by_ref["\ref[src]"]*0.9, src) + stored_shock_by_ref["\ref[src]"] = 0 diff --git a/code/modules/mob/living/carbon/human/species/species_shapeshift.dm b/code/modules/mob/living/carbon/human/species/species_shapeshift.dm new file mode 100644 index 00000000000..293df932157 --- /dev/null +++ b/code/modules/mob/living/carbon/human/species/species_shapeshift.dm @@ -0,0 +1,187 @@ +// This is something of an intermediary species used for species that +// need to emulate the appearance of another race. Currently it is only +// used for slimes but it may be useful for changelings later. +var/list/wrapped_species_by_ref = list() + +/datum/species/shapeshifter + + inherent_verbs = list( + /mob/living/carbon/human/proc/shapeshifter_select_shape, + /mob/living/carbon/human/proc/shapeshifter_select_hair, + /mob/living/carbon/human/proc/shapeshifter_select_gender + ) + + var/list/valid_transform_species = list() + var/monochromatic + var/default_form = "Human" + +/datum/species/shapeshifter/get_valid_shapeshifter_forms(var/mob/living/carbon/human/H) + return valid_transform_species + +/datum/species/shapeshifter/get_icobase(var/mob/living/carbon/human/H, var/get_deform) + if(!H) return ..(null, get_deform) + var/datum/species/S = all_species[wrapped_species_by_ref["\ref[H]"]] + return S.get_icobase(H, get_deform) + +/datum/species/shapeshifter/get_race_key(var/mob/living/carbon/human/H) + return "[..()]-[wrapped_species_by_ref["\ref[H]"]]" + +/datum/species/shapeshifter/get_bodytype(var/mob/living/carbon/human/H) + if(!H) return ..() + var/datum/species/S = all_species[wrapped_species_by_ref["\ref[H]"]] + return S.get_bodytype(H) + +/datum/species/shapeshifter/get_blood_mask(var/mob/living/carbon/human/H) + if(!H) return ..() + var/datum/species/S = all_species[wrapped_species_by_ref["\ref[H]"]] + return S.get_blood_mask(H) + +/datum/species/shapeshifter/get_damage_mask(var/mob/living/carbon/human/H) + if(!H) return ..() + var/datum/species/S = all_species[wrapped_species_by_ref["\ref[H]"]] + return S.get_damage_mask(H) + +/datum/species/shapeshifter/get_damage_overlays(var/mob/living/carbon/human/H) + if(!H) return ..() + var/datum/species/S = all_species[wrapped_species_by_ref["\ref[H]"]] + return S.get_damage_overlays(H) + +/datum/species/shapeshifter/get_tail(var/mob/living/carbon/human/H) + if(!H) return ..() + var/datum/species/S = all_species[wrapped_species_by_ref["\ref[H]"]] + return S.get_tail(H) + +/datum/species/shapeshifter/get_tail_animation(var/mob/living/carbon/human/H) + if(!H) return ..() + var/datum/species/S = all_species[wrapped_species_by_ref["\ref[H]"]] + return S.get_tail_animation(H) + +/datum/species/shapeshifter/get_tail_hair(var/mob/living/carbon/human/H) + if(!H) return ..() + var/datum/species/S = all_species[wrapped_species_by_ref["\ref[H]"]] + return S.get_tail_hair(H) + +/datum/species/shapeshifter/handle_post_spawn(var/mob/living/carbon/human/H) + ..() + wrapped_species_by_ref["\ref[H]"] = default_form + if(monochromatic) + H.r_hair = H.r_skin + H.g_hair = H.g_skin + H.b_hair = H.b_skin + H.r_facial = H.r_skin + H.g_facial = H.g_skin + H.b_facial = H.b_skin + + for(var/obj/item/organ/external/E in H.organs) + E.sync_colour_to_human(H) + +// Verbs follow. +/mob/living/carbon/human/proc/shapeshifter_select_hair() + + set name = "Select Hair" + set category = "Abilities" + + if(stat || world.time < last_special) + return + + last_special = world.time + 10 + + var/list/valid_hairstyles = list() + var/list/valid_facialhairstyles = list() + for(var/hairstyle in hair_styles_list) + var/datum/sprite_accessory/S = hair_styles_list[hairstyle] + if(gender == MALE && S.gender == FEMALE) + continue + if(gender == FEMALE && S.gender == MALE) + continue + if(!(species.get_bodytype(src) in S.species_allowed)) + continue + valid_hairstyles += hairstyle + for(var/facialhairstyle in facial_hair_styles_list) + var/datum/sprite_accessory/S = facial_hair_styles_list[facialhairstyle] + if(gender == MALE && S.gender == FEMALE) + continue + if(gender == FEMALE && S.gender == MALE) + continue + if(!(species.get_bodytype(src) in S.species_allowed)) + continue + valid_facialhairstyles += facialhairstyle + + + visible_message("\The [src]'s form contorts subtly.") + if(valid_hairstyles.len) + var/new_hair = input("Select a hairstyle.", "Shapeshifter Hair") as null|anything in valid_hairstyles + change_hair(new_hair ? new_hair : "Bald") + if(valid_facialhairstyles.len) + var/new_hair = input("Select a facial hair style.", "Shapeshifter Hair") as null|anything in valid_facialhairstyles + change_facial_hair(new_hair ? new_hair : "Shaved") + +/mob/living/carbon/human/proc/shapeshifter_select_gender() + + set name = "Select Gender" + set category = "Abilities" + + if(stat || world.time < last_special) + return + + last_special = world.time + 50 + + var/new_gender = input("Please select a gender.", "Shapeshifter Gender") as null|anything in list(FEMALE, MALE, NEUTER, PLURAL) + if(!new_gender) + return + + visible_message("\The [src]'s form contorts subtly.") + change_gender(new_gender) + +/mob/living/carbon/human/proc/shapeshifter_select_shape() + + set name = "Select Body Shape" + set category = "Abilities" + + if(stat || world.time < last_special) + return + + last_special = world.time + 50 + + var/new_species = input("Please select a species to emulate.", "Shapeshifter Body") as null|anything in species.get_valid_shapeshifter_forms(src) + if(!new_species || !all_species[new_species] || wrapped_species_by_ref["\ref[src]"] == new_species) + return + + wrapped_species_by_ref["\ref[src]"] = new_species + visible_message("\The [src] shifts and contorts, taking the form of \a [new_species]!") + regenerate_icons() + +/mob/living/carbon/human/proc/shapeshifter_select_colour() + + set name = "Select Body Colour" + set category = "Abilities" + + if(stat || world.time < last_special) + return + + last_special = world.time + 50 + + var/new_skin = input("Please select a new body color.", "Shapeshifter Colour") as color + if(!new_skin) + return + shapeshifter_set_colour(new_skin) + +/mob/living/carbon/human/proc/shapeshifter_set_colour(var/new_skin) + + r_skin = hex2num(copytext(new_skin, 2, 4)) + g_skin = hex2num(copytext(new_skin, 4, 6)) + b_skin = hex2num(copytext(new_skin, 6, 8)) + + var/datum/species/shapeshifter/S = species + if(S.monochromatic) + r_hair = r_skin + g_hair = g_skin + b_hair = b_skin + r_facial = r_skin + g_facial = g_skin + b_facial = b_skin + + for(var/obj/item/organ/external/E in organs) + E.sync_colour_to_human(src) + + regenerate_icons() diff --git a/code/modules/mob/living/carbon/human/species/station/golem.dm b/code/modules/mob/living/carbon/human/species/station/golem.dm index 23970c61b27..bccafdde14e 100644 --- a/code/modules/mob/living/carbon/human/species/station/golem.dm +++ b/code/modules/mob/living/carbon/human/species/station/golem.dm @@ -8,7 +8,7 @@ language = "Sol Common" //todo? unarmed_types = list(/datum/unarmed_attack/stomp, /datum/unarmed_attack/kick, /datum/unarmed_attack/punch) flags = NO_PAIN | NO_SCAN | NO_POISON | NO_MINOR_CUT - spawn_flags = IS_RESTRICTED + spawn_flags = SPECIES_IS_RESTRICTED siemens_coefficient = 0 breath_type = null @@ -23,6 +23,8 @@ death_message = "becomes completely motionless..." + genders = list(NEUTER) + /datum/species/golem/handle_post_spawn(var/mob/living/carbon/human/H) if(H.mind) H.mind.assigned_role = "Golem" diff --git a/code/modules/mob/living/carbon/human/species/station/monkey.dm b/code/modules/mob/living/carbon/human/species/station/monkey.dm index 85890f4de6d..6074934cec2 100644 --- a/code/modules/mob/living/carbon/human/species/station/monkey.dm +++ b/code/modules/mob/living/carbon/human/species/station/monkey.dm @@ -30,7 +30,7 @@ brute_mod = 1.5 burn_mod = 1.5 - spawn_flags = IS_RESTRICTED + spawn_flags = SPECIES_IS_RESTRICTED bump_flag = MONKEY swap_flags = MONKEY|SLIME|SIMPLE_ANIMAL diff --git a/code/modules/mob/living/carbon/human/species/station/prometheans.dm b/code/modules/mob/living/carbon/human/species/station/prometheans.dm new file mode 100644 index 00000000000..2ada0dd7c71 --- /dev/null +++ b/code/modules/mob/living/carbon/human/species/station/prometheans.dm @@ -0,0 +1,188 @@ +var/datum/species/shapeshifter/promethean/prometheans + +// Species definition follows. +/datum/species/shapeshifter/promethean + + name = "Promethean" + name_plural = "Prometheans" + blurb = "What has Science done?" + show_ssd = "totally quiescent" + death_message = "rapidly loses cohesion, splattering across the ground..." + knockout_message = "collapses inwards, forming a disordered puddle of goo." + remains_type = /obj/effect/decal/cleanable/ash + + blood_color = "#05FF9B" + flesh_color = "#05FFFB" + + hunger_factor = DEFAULT_HUNGER_FACTOR //todo + reagent_tag = IS_SLIME + mob_size = MOB_SMALL + bump_flag = SLIME + swap_flags = MONKEY|SLIME|SIMPLE_ANIMAL + push_flags = MONKEY|SLIME|SIMPLE_ANIMAL + flags = NO_SCAN | NO_SLIP | NO_MINOR_CUT + appearance_flags = HAS_SKIN_COLOR | HAS_EYE_COLOR | HAS_HAIR_COLOR | RADIATION_GLOWS + spawn_flags = SPECIES_IS_RESTRICTED + + breath_type = null + poison_type = null + + gluttonous = 2 + virus_immune = 1 + blood_volume = 600 + min_age = 1 + max_age = 5 + brute_mod = 0.5 + burn_mod = 2 + oxy_mod = 0 + total_health = 120 + + cold_level_1 = 260 + cold_level_2 = 200 + cold_level_3 = 120 + + heat_level_1 = 360 + heat_level_2 = 400 + heat_level_3 = 1000 + + body_temperature = 310.15 + + siemens_coefficient = -1 + rarity_value = 5 + + unarmed_types = list(/datum/unarmed_attack/slime_glomp) + has_organ = list(O_BRAIN = /obj/item/organ/internal/brain/slime) // Slime core. + has_limbs = list( + BP_TORSO = list("path" = /obj/item/organ/external/chest/unbreakable/slime), + BP_GROIN = list("path" = /obj/item/organ/external/groin/unbreakable/slime), + BP_HEAD = list("path" = /obj/item/organ/external/head/unbreakable/slime), + BP_L_ARM = list("path" = /obj/item/organ/external/arm/unbreakable/slime), + BP_R_ARM = list("path" = /obj/item/organ/external/arm/right/unbreakable/slime), + BP_L_LEG = list("path" = /obj/item/organ/external/leg/unbreakable/slime), + BP_R_LEG = list("path" = /obj/item/organ/external/leg/right/unbreakable/slime), + BP_L_HAND = list("path" = /obj/item/organ/external/hand/unbreakable/slime), + BP_R_HAND = list("path" = /obj/item/organ/external/hand/right/unbreakable/slime), + BP_L_FOOT = list("path" = /obj/item/organ/external/foot/unbreakable/slime), + BP_R_FOOT = list("path" = /obj/item/organ/external/foot/right/unbreakable/slime) + ) + heat_discomfort_strings = list("You feel too warm.") + cold_discomfort_strings = list("You feel too cool.") + + inherent_verbs = list( + /mob/living/carbon/human/proc/shapeshifter_select_shape, + /mob/living/carbon/human/proc/shapeshifter_select_colour, + /mob/living/carbon/human/proc/shapeshifter_select_hair, + /mob/living/carbon/human/proc/shapeshifter_select_gender + ) + + valid_transform_species = list("Human", "Unathi", "Tajara", "Skrell", "Diona", "Teshari", "Monkey") + monochromatic = 1 + + var/heal_rate = 5 // Temp. Regen per tick. + +/datum/species/shapeshifter/promethean/New() + ..() + prometheans = src + +/datum/species/shapeshifter/promethean/equip_survival_gear(var/mob/living/carbon/human/H) + var/boxtype = pick(typesof(/obj/item/weapon/storage/toolbox/lunchbox)) + var/obj/item/weapon/storage/toolbox/lunchbox/L = new boxtype(get_turf(H)) + var/mob/living/simple_animal/mouse/mouse = new (L) + var/obj/item/weapon/holder/holder = new (L) + mouse.forceMove(holder) + holder.sync(mouse) + if(H.backbag == 1) + H.equip_to_slot_or_del(L, slot_r_hand) + else + H.equip_to_slot_or_del(L, slot_in_backpack) + +/datum/species/shapeshifter/promethean/hug(var/mob/living/carbon/human/H,var/mob/living/target) + + var/t_him = "them" + switch(target.gender) + if(MALE) + t_him = "him" + if(FEMALE) + t_him = "her" + + H.visible_message("\The [H] glomps [target] to make [t_him] feel better!", \ + "You glomps [target] to make [t_him] feel better!") + H.apply_stored_shock_to(target) + +/datum/species/shapeshifter/promethean/handle_death(var/mob/living/carbon/human/H) + spawn(1) + if(H) + H.gib() + +/datum/species/shapeshifter/promethean/handle_environment_special(var/mob/living/carbon/human/H) + + var/turf/T = H.loc + if(istype(T)) + var/obj/effect/decal/cleanable/C = locate() in T + if(C) + qdel(C) + //TODO: gain nutriment + + // Regenerate limbs and heal damage if we have any. Copied from Bay xenos code. + + // Theoretically the only internal organ a slime will have + // is the slime core. but we might as well be thorough. + for(var/obj/item/organ/I in H.internal_organs) + if(I.damage > 0) + I.damage = max(I.damage - heal_rate, 0) + if (prob(5)) + H << "You feel a soothing sensation within your [I.name]..." + return 1 + + // Replace completely missing limbs. + for(var/limb_type in has_limbs) + var/obj/item/organ/external/E = H.organs_by_name[limb_type] + if(E && (E.is_stump() || (E.status & (ORGAN_DESTROYED|ORGAN_DEAD|ORGAN_MUTATED)))) + E.removed() + qdel(E) + E = null + if(!E) + var/list/organ_data = has_limbs[limb_type] + var/limb_path = organ_data["path"] + var/obj/item/organ/O = new limb_path(H) + organ_data["descriptor"] = O.name + H << "You feel a slithering sensation as your [O.name] reforms." + H.update_body() + return 1 + + // Heal remaining damage. + if (H.getBruteLoss() || H.getFireLoss() || H.getOxyLoss() || H.getToxLoss()) + H.adjustBruteLoss(-heal_rate) + H.adjustFireLoss(-heal_rate) + H.adjustOxyLoss(-heal_rate) + H.adjustToxLoss(-heal_rate) + return 1 + +/datum/species/shapeshifter/promethean/get_blood_colour(var/mob/living/carbon/human/H) + return (H ? rgb(H.r_skin, H.g_skin, H.b_skin) : ..()) + +/datum/species/shapeshifter/promethean/get_flesh_colour(var/mob/living/carbon/human/H) + return (H ? rgb(H.r_skin, H.g_skin, H.b_skin) : ..()) + +/datum/species/shapeshifter/promethean/get_additional_examine_text(var/mob/living/carbon/human/H) + + if(!stored_shock_by_ref["\ref[H]"]) + return + + var/t_she = "She is" + if(H.gender == MALE) + t_she = "He is" + else if(H.gender == PLURAL) + t_she = "They are" + else if(H.gender == NEUTER) + t_she = "It is" + + switch(stored_shock_by_ref["\ref[H]"]) + if(1 to 10) + return "[t_she] flickering gently with a little electrical activity." + if(11 to 20) + return "[t_she] glowing gently with moderate levels of electrical activity.\n" + if(21 to 35) + return "[t_she] glowing brightly with high levels of electrical activity." + if(35 to INFINITY) + return "[t_she] radiating massive levels of electrical activity!" diff --git a/code/modules/mob/living/carbon/human/species/station/seromi.dm b/code/modules/mob/living/carbon/human/species/station/seromi.dm index 2f931a38f70..27541c27733 100644 --- a/code/modules/mob/living/carbon/human/species/station/seromi.dm +++ b/code/modules/mob/living/carbon/human/species/station/seromi.dm @@ -36,7 +36,7 @@ blood_volume = 400 hunger_factor = 0.2 - spawn_flags = CAN_JOIN | IS_WHITELISTED + spawn_flags = SPECIES_CAN_JOIN | SPECIES_IS_WHITELISTED appearance_flags = HAS_HAIR_COLOR | HAS_SKIN_COLOR | HAS_EYE_COLOR bump_flag = MONKEY swap_flags = MONKEY|SLIME|SIMPLE_ANIMAL diff --git a/code/modules/mob/living/carbon/human/species/station/slime.dm b/code/modules/mob/living/carbon/human/species/station/slime.dm deleted file mode 100644 index f2277f99211..00000000000 --- a/code/modules/mob/living/carbon/human/species/station/slime.dm +++ /dev/null @@ -1,50 +0,0 @@ -/datum/species/slime - name = "Slime" - name_plural = "slimes" - mob_size = MOB_SMALL - - icobase = 'icons/mob/human_races/r_slime.dmi' - deform = 'icons/mob/human_races/r_slime.dmi' - - language = null //todo? - unarmed_types = list(/datum/unarmed_attack/slime_glomp) - flags = NO_SCAN | NO_SLIP | NO_MINOR_CUT - spawn_flags = IS_RESTRICTED - siemens_coefficient = 3 //conductive - darksight = 3 - - blood_color = "#05FF9B" - flesh_color = "#05FFFB" - - remains_type = /obj/effect/decal/cleanable/ash - death_message = "rapidly loses cohesion, splattering across the ground..." - - has_organ = list( - "brain" = /obj/item/organ/internal/brain/slime - ) - - breath_type = null - poison_type = null - - bump_flag = SLIME - swap_flags = MONKEY|SLIME|SIMPLE_ANIMAL - push_flags = MONKEY|SLIME|SIMPLE_ANIMAL - - has_limbs = list( - BP_TORSO = list("path" = /obj/item/organ/external/chest/unbreakable), - BP_GROIN = list("path" = /obj/item/organ/external/groin/unbreakable), - BP_HEAD = list("path" = /obj/item/organ/external/head/unbreakable), - BP_L_ARM = list("path" = /obj/item/organ/external/arm/unbreakable), - BP_R_ARM = list("path" = /obj/item/organ/external/arm/right/unbreakable), - BP_L_LEG = list("path" = /obj/item/organ/external/leg/unbreakable), - BP_R_LEG = list("path" = /obj/item/organ/external/leg/right/unbreakable), - BP_L_HAND = list("path" = /obj/item/organ/external/hand/unbreakable), - BP_R_HAND = list("path" = /obj/item/organ/external/hand/right/unbreakable), - BP_L_FOOT = list("path" = /obj/item/organ/external/foot/unbreakable), - BP_R_FOOT = list("path" = /obj/item/organ/external/foot/right/unbreakable) - ) - -/datum/species/slime/handle_death(var/mob/living/carbon/human/H) - spawn(1) - if(H) - H.gib() diff --git a/code/modules/mob/living/carbon/human/species/station/station.dm b/code/modules/mob/living/carbon/human/species/station/station.dm index a00bfc86d74..246b684ca4f 100644 --- a/code/modules/mob/living/carbon/human/species/station/station.dm +++ b/code/modules/mob/living/carbon/human/species/station/station.dm @@ -14,10 +14,10 @@ min_age = 17 max_age = 110 - spawn_flags = CAN_JOIN + spawn_flags = SPECIES_CAN_JOIN appearance_flags = HAS_HAIR_COLOR | HAS_SKIN_TONE | HAS_LIPS | HAS_UNDERWEAR | HAS_EYE_COLOR -/datum/species/human/get_bodytype() +/datum/species/human/get_bodytype(var/mob/living/carbon/human/H) return "Human" /datum/species/unathi @@ -54,7 +54,7 @@ heat_level_2 = 480 //Default 400 heat_level_3 = 1100 //Default 1000 - spawn_flags = CAN_JOIN | IS_WHITELISTED + spawn_flags = SPECIES_CAN_JOIN | SPECIES_IS_WHITELISTED appearance_flags = HAS_HAIR_COLOR | HAS_LIPS | HAS_UNDERWEAR | HAS_SKIN_COLOR | HAS_EYE_COLOR flesh_color = "#34AF10" @@ -116,7 +116,7 @@ primitive_form = "Farwa" - spawn_flags = CAN_JOIN | IS_WHITELISTED + spawn_flags = SPECIES_CAN_JOIN | SPECIES_IS_WHITELISTED appearance_flags = HAS_HAIR_COLOR | HAS_LIPS | HAS_UNDERWEAR | HAS_SKIN_COLOR | HAS_EYE_COLOR flesh_color = "#AFA59E" @@ -149,13 +149,13 @@ herbivores on the whole and tend to be co-operative with the other species of the galaxy, although they rarely reveal \ the secrets of their empire to their allies." num_alternate_languages = 2 - secondary_langs = list("Skrellian", "Teshari") + secondary_langs = list("Skrellian", "Schechi") name_language = null min_age = 19 max_age = 80 - spawn_flags = CAN_JOIN | IS_WHITELISTED + spawn_flags = SPECIES_CAN_JOIN | SPECIES_IS_WHITELISTED appearance_flags = HAS_HAIR_COLOR | HAS_LIPS | HAS_UNDERWEAR | HAS_SKIN_COLOR flesh_color = "#8CD7A3" @@ -246,13 +246,14 @@ body_temperature = T0C + 15 //make the plant people have a bit lower body temperature, why not flags = NO_SCAN | IS_PLANT | NO_PAIN | NO_SLIP | NO_MINOR_CUT - spawn_flags = CAN_JOIN | IS_WHITELISTED + spawn_flags = SPECIES_CAN_JOIN | SPECIES_IS_WHITELISTED blood_color = "#004400" flesh_color = "#907E4A" reagent_tag = IS_DIONA + genders = list(PLURAL) /datum/species/diona/can_understand(var/mob/other) var/mob/living/carbon/alien/diona/D = other if(istype(D)) diff --git a/code/modules/mob/living/carbon/human/update_icons.dm b/code/modules/mob/living/carbon/human/update_icons.dm index 6d5c3a56234..7f0489b90f9 100644 --- a/code/modules/mob/living/carbon/human/update_icons.dm +++ b/code/modules/mob/living/carbon/human/update_icons.dm @@ -174,9 +174,6 @@ var/global/list/damage_icon_parts = list() for(var/obj/item/organ/external/O in organs) if(O.is_stump()) continue - //if(O.status & ORGAN_DESTROYED) damage_appearance += "d" //what is this? - //else - // damage_appearance += O.damage_state damage_appearance += O.damage_state if(damage_appearance == previous_damage_appearance) @@ -194,15 +191,14 @@ var/global/list/damage_icon_parts = list() if(O.is_stump()) continue - O.update_icon() if(O.damage_state == "00") continue var/icon/DI - var/cache_index = "[O.damage_state]/[O.icon_name]/[species.blood_color]/[species.get_bodytype()]" + var/cache_index = "[O.damage_state]/[O.icon_name]/[species.get_blood_colour(src)]/[species.get_bodytype(src)]" if(damage_icon_parts[cache_index] == null) - DI = new /icon(species.damage_overlays, O.damage_state) // the damage icon for whole human - DI.Blend(new /icon(species.damage_mask, O.icon_name), ICON_MULTIPLY) // mask with this organ's pixels - DI.Blend(species.blood_color, ICON_MULTIPLY) + DI = new /icon(species.get_damage_overlays(src), O.damage_state) // the damage icon for whole human + DI.Blend(new /icon(species.get_damage_mask(src), O.icon_name), ICON_MULTIPLY) // mask with this organ's pixels + DI.Blend(species.get_blood_colour(src), ICON_MULTIPLY) damage_icon_parts[cache_index] = DI else DI = damage_icon_parts[cache_index] @@ -236,7 +232,7 @@ var/global/list/damage_icon_parts = list() if(gender == FEMALE) g = "female" - var/icon_key = "[species.race_key][g][s_tone][r_skin][g_skin][b_skin]" + var/icon_key = "[species.get_race_key(src)][g][s_tone][r_skin][g_skin][b_skin]" if(lip_style) icon_key += "[lip_style]" else @@ -258,7 +254,7 @@ var/global/list/damage_icon_parts = list() else icon_key += "1" if(part) - icon_key += "[part.species.race_key]" + icon_key += "[part.species.get_race_key(part.owner)]" icon_key += "[part.dna.GetUIState(DNA_UI_GENDER)]" icon_key += "[part.dna.GetUIValue(DNA_UI_SKIN_TONE)]" if(part.s_col && part.s_col.len >= 3) @@ -357,7 +353,7 @@ var/global/list/damage_icon_parts = list() if(f_style) var/datum/sprite_accessory/facial_hair_style = facial_hair_styles_list[f_style] - if(facial_hair_style && facial_hair_style.species_allowed && (src.species.get_bodytype() in facial_hair_style.species_allowed)) + if(facial_hair_style && facial_hair_style.species_allowed && (src.species.get_bodytype(src) in facial_hair_style.species_allowed)) var/icon/facial_s = new/icon("icon" = facial_hair_style.icon, "icon_state" = "[facial_hair_style.icon_state]_s") if(facial_hair_style.do_colouration) facial_s.Blend(rgb(r_facial, g_facial, b_facial), ICON_ADD) @@ -366,13 +362,16 @@ var/global/list/damage_icon_parts = list() if(h_style && !(head && (head.flags_inv & BLOCKHEADHAIR))) var/datum/sprite_accessory/hair_style = hair_styles_list[h_style] - if(hair_style && (src.species.get_bodytype() in hair_style.species_allowed)) + if(hair_style && (src.species.get_bodytype(src) in hair_style.species_allowed)) var/icon/hair_s = new/icon("icon" = hair_style.icon, "icon_state" = "[hair_style.icon_state]_s") if(hair_style.do_colouration) hair_s.Blend(rgb(r_hair, g_hair, b_hair), ICON_ADD) face_standing.Blend(hair_s, ICON_OVERLAY) + if(head_organ.nonsolid) + face_standing += rgb(,,,120) + overlays_standing[HAIR_LAYER] = image(face_standing) if(update_icons) update_icons() @@ -464,8 +463,8 @@ var/global/list/damage_icon_parts = list() var/icon/under_icon if(w_uniform.icon_override) under_icon = w_uniform.icon_override - else if(w_uniform.sprite_sheets && w_uniform.sprite_sheets[species.get_bodytype()]) - under_icon = w_uniform.sprite_sheets[species.get_bodytype()] + else if(w_uniform.sprite_sheets && w_uniform.sprite_sheets[species.get_bodytype(src)]) + under_icon = w_uniform.sprite_sheets[species.get_bodytype(src)] else if(w_uniform.item_icons && w_uniform.item_icons[slot_w_uniform_str]) under_icon = w_uniform.item_icons[slot_w_uniform_str] else @@ -486,7 +485,7 @@ var/global/list/damage_icon_parts = list() //apply blood overlay if(w_uniform.blood_DNA) - var/image/bloodsies = image(icon = species.blood_mask, icon_state = "uniformblood") + var/image/bloodsies = image(icon = species.get_blood_mask(src), icon_state = "uniformblood") bloodsies.color = w_uniform.blood_color standing.overlays += bloodsies @@ -510,8 +509,8 @@ var/global/list/damage_icon_parts = list() var/image/standing if(wear_id.icon_override) standing = image("icon" = wear_id.icon_override, "icon_state" = "[icon_state]") - else if(wear_id.sprite_sheets && wear_id.sprite_sheets[species.get_bodytype()]) - standing = image("icon" = wear_id.sprite_sheets[species.get_bodytype()], "icon_state" = "[icon_state]") + else if(wear_id.sprite_sheets && wear_id.sprite_sheets[species.get_bodytype(src)]) + standing = image("icon" = wear_id.sprite_sheets[species.get_bodytype(src)], "icon_state" = "[icon_state]") else standing = image("icon" = 'icons/mob/mob.dmi', "icon_state" = "id") overlays_standing[ID_LAYER] = standing @@ -533,13 +532,13 @@ var/global/list/damage_icon_parts = list() var/image/standing if(gloves.icon_override) standing = image("icon" = gloves.icon_override, "icon_state" = "[t_state]") - else if(gloves.sprite_sheets && gloves.sprite_sheets[species.get_bodytype()]) - standing = image("icon" = gloves.sprite_sheets[species.get_bodytype()], "icon_state" = "[t_state]") + else if(gloves.sprite_sheets && gloves.sprite_sheets[species.get_bodytype(src)]) + standing = image("icon" = gloves.sprite_sheets[species.get_bodytype(src)], "icon_state" = "[t_state]") else standing = image("icon" = 'icons/mob/hands.dmi', "icon_state" = "[t_state]") if(gloves.blood_DNA) - var/image/bloodsies = image("icon" = species.blood_mask, "icon_state" = "bloodyhands") + var/image/bloodsies = image("icon" = species.get_blood_mask(src), "icon_state" = "bloodyhands") bloodsies.color = gloves.blood_color standing.overlays += bloodsies gloves.screen_loc = ui_gloves @@ -547,7 +546,7 @@ var/global/list/damage_icon_parts = list() overlays_standing[GLOVES_LAYER] = standing else if(blood_DNA) - var/image/bloodsies = image("icon" = species.blood_mask, "icon_state" = "bloodyhands") + var/image/bloodsies = image("icon" = species.get_blood_mask(src), "icon_state" = "bloodyhands") bloodsies.color = hand_blood_color overlays_standing[GLOVES_LAYER] = bloodsies else @@ -560,8 +559,8 @@ var/global/list/damage_icon_parts = list() if(glasses.icon_override) overlays_standing[GLASSES_LAYER] = image("icon" = glasses.icon_override, "icon_state" = "[glasses.icon_state]") - else if(glasses.sprite_sheets && glasses.sprite_sheets[species.get_bodytype()]) - overlays_standing[GLASSES_LAYER]= image("icon" = glasses.sprite_sheets[species.get_bodytype()], "icon_state" = "[glasses.icon_state]") + else if(glasses.sprite_sheets && glasses.sprite_sheets[species.get_bodytype(src)]) + overlays_standing[GLASSES_LAYER]= image("icon" = glasses.sprite_sheets[species.get_bodytype(src)], "icon_state" = "[glasses.icon_state]") else overlays_standing[GLASSES_LAYER]= image("icon" = 'icons/mob/eyes.dmi', "icon_state" = "[glasses.icon_state]") @@ -582,9 +581,9 @@ var/global/list/damage_icon_parts = list() if(l_ear.icon_override) t_type = "[t_type]_l" overlays_standing[EARS_LAYER] = image("icon" = l_ear.icon_override, "icon_state" = "[t_type]") - else if(l_ear.sprite_sheets && l_ear.sprite_sheets[species.get_bodytype()]) + else if(l_ear.sprite_sheets && l_ear.sprite_sheets[species.get_bodytype(src)]) t_type = "[t_type]_l" - overlays_standing[EARS_LAYER] = image("icon" = l_ear.sprite_sheets[species.get_bodytype()], "icon_state" = "[t_type]") + overlays_standing[EARS_LAYER] = image("icon" = l_ear.sprite_sheets[species.get_bodytype(src)], "icon_state" = "[t_type]") else overlays_standing[EARS_LAYER] = image("icon" = 'icons/mob/ears.dmi', "icon_state" = "[t_type]") @@ -594,9 +593,9 @@ var/global/list/damage_icon_parts = list() if(r_ear.icon_override) t_type = "[t_type]_r" overlays_standing[EARS_LAYER] = image("icon" = r_ear.icon_override, "icon_state" = "[t_type]") - else if(r_ear.sprite_sheets && r_ear.sprite_sheets[species.get_bodytype()]) + else if(r_ear.sprite_sheets && r_ear.sprite_sheets[species.get_bodytype(src)]) t_type = "[t_type]_r" - overlays_standing[EARS_LAYER] = image("icon" = r_ear.sprite_sheets[species.get_bodytype()], "icon_state" = "[t_type]") + overlays_standing[EARS_LAYER] = image("icon" = r_ear.sprite_sheets[species.get_bodytype(src)], "icon_state" = "[t_type]") else overlays_standing[EARS_LAYER] = image("icon" = 'icons/mob/ears.dmi', "icon_state" = "[t_type]") @@ -605,25 +604,25 @@ var/global/list/damage_icon_parts = list() if(update_icons) update_icons() /mob/living/carbon/human/update_inv_shoes(var/update_icons=1) - if(shoes && !(wear_suit && wear_suit.flags_inv & HIDESHOES)) + if(shoes && !((wear_suit && wear_suit.flags_inv & HIDESHOES) || (w_uniform && w_uniform.flags_inv & HIDESHOES))) var/image/standing if(shoes.icon_override) standing = image("icon" = shoes.icon_override, "icon_state" = "[shoes.icon_state]") - else if(shoes.sprite_sheets && shoes.sprite_sheets[species.get_bodytype()]) - standing = image("icon" = shoes.sprite_sheets[species.get_bodytype()], "icon_state" = "[shoes.icon_state]") + else if(shoes.sprite_sheets && shoes.sprite_sheets[species.get_bodytype(src)]) + standing = image("icon" = shoes.sprite_sheets[species.get_bodytype(src)], "icon_state" = "[shoes.icon_state]") else standing = image("icon" = 'icons/mob/feet.dmi', "icon_state" = "[shoes.icon_state]") if(shoes.blood_DNA) - var/image/bloodsies = image("icon" = species.blood_mask, "icon_state" = "shoeblood") + var/image/bloodsies = image("icon" = species.get_blood_mask(src), "icon_state" = "shoeblood") bloodsies.color = shoes.blood_color standing.overlays += bloodsies standing.color = shoes.color overlays_standing[SHOES_LAYER] = standing else if(feet_blood_DNA) - var/image/bloodsies = image("icon" = species.blood_mask, "icon_state" = "shoeblood") + var/image/bloodsies = image("icon" = species.get_blood_mask(src), "icon_state" = "shoeblood") bloodsies.color = feet_blood_color overlays_standing[SHOES_LAYER] = bloodsies else @@ -649,8 +648,8 @@ var/global/list/damage_icon_parts = list() var/t_icon if(head.icon_override) t_icon = head.icon_override - else if(head.sprite_sheets && head.sprite_sheets[species.get_bodytype()]) - t_icon = head.sprite_sheets[species.get_bodytype()] + else if(head.sprite_sheets && head.sprite_sheets[species.get_bodytype(src)]) + t_icon = head.sprite_sheets[species.get_bodytype(src)] else if(head.item_icons && (slot_head_str in head.item_icons)) t_icon = head.item_icons[slot_head_str] @@ -675,13 +674,13 @@ var/global/list/damage_icon_parts = list() var/image/standing = image(icon = t_icon, icon_state = t_state) if(head.blood_DNA) - var/image/bloodsies = image("icon" = species.blood_mask, "icon_state" = "helmetblood") + var/image/bloodsies = image("icon" = species.get_blood_mask(src), "icon_state" = "helmetblood") bloodsies.color = head.blood_color standing.overlays += bloodsies if(istype(head,/obj/item/clothing/head)) var/obj/item/clothing/head/hat = head - var/cache_key = "[hat.light_overlay]_[species.get_bodytype()]" + var/cache_key = "[hat.light_overlay]_[species.get_bodytype(src)]" if(hat.on && light_overlay_cache[cache_key]) standing.overlays |= light_overlay_cache[cache_key] @@ -701,8 +700,8 @@ var/global/list/damage_icon_parts = list() if(belt.icon_override) standing.icon = belt.icon_override - else if(belt.sprite_sheets && belt.sprite_sheets[species.get_bodytype()]) - standing.icon = belt.sprite_sheets[species.get_bodytype()] + else if(belt.sprite_sheets && belt.sprite_sheets[species.get_bodytype(src)]) + standing.icon = belt.sprite_sheets[species.get_bodytype(src)] else standing.icon = 'icons/mob/belt.dmi' @@ -739,7 +738,7 @@ var/global/list/damage_icon_parts = list() var/t_icon = INV_SUIT_DEF_ICON if(wear_suit.icon_override) t_icon = wear_suit.icon_override - else if(wear_suit.sprite_sheets && wear_suit.sprite_sheets[species.get_bodytype()]) + else if(wear_suit.sprite_sheets && wear_suit.sprite_sheets[species.get_bodytype(src)]) t_icon = wear_suit.sprite_sheets[species.name] else if(wear_suit.item_icons && wear_suit.item_icons[slot_wear_suit_str]) t_icon = wear_suit.item_icons[slot_wear_suit_str] @@ -755,7 +754,7 @@ var/global/list/damage_icon_parts = list() if(wear_suit.blood_DNA) var/obj/item/clothing/suit/S = wear_suit if(istype(S)) //You can put non-suits in your suit slot (diona nymphs etc). - var/image/bloodsies = image("icon" = species.blood_mask, "icon_state" = "[S.blood_overlay_type]blood") + var/image/bloodsies = image("icon" = species.get_blood_mask(src), "icon_state" = "[S.blood_overlay_type]blood") bloodsies.color = wear_suit.blood_color standing.overlays += bloodsies @@ -784,14 +783,14 @@ var/global/list/damage_icon_parts = list() var/image/standing if(wear_mask.icon_override) standing = image("icon" = wear_mask.icon_override, "icon_state" = "[wear_mask.icon_state]") - else if(wear_mask.sprite_sheets && wear_mask.sprite_sheets[species.get_bodytype()]) - standing = image("icon" = wear_mask.sprite_sheets[species.get_bodytype()], "icon_state" = "[wear_mask.icon_state]") + else if(wear_mask.sprite_sheets && wear_mask.sprite_sheets[species.get_bodytype(src)]) + standing = image("icon" = wear_mask.sprite_sheets[species.get_bodytype(src)], "icon_state" = "[wear_mask.icon_state]") else standing = image("icon" = 'icons/mob/mask.dmi', "icon_state" = "[wear_mask.icon_state]") standing.color = wear_mask.color if( !istype(wear_mask, /obj/item/clothing/mask/smokable/cigarette) && wear_mask.blood_DNA ) - var/image/bloodsies = image("icon" = species.blood_mask, "icon_state" = "maskblood") + var/image/bloodsies = image("icon" = species.get_blood_mask(src), "icon_state" = "maskblood") bloodsies.color = wear_mask.blood_color standing.overlays += bloodsies overlays_standing[FACEMASK_LAYER] = standing @@ -812,8 +811,8 @@ var/global/list/damage_icon_parts = list() //If this is a rig and a mob_icon is set, it will take species into account in the rig update_icon() proc. var/obj/item/weapon/rig/rig = back overlay_icon = rig.mob_icon - else if(back.sprite_sheets && back.sprite_sheets[species.get_bodytype()]) - overlay_icon = back.sprite_sheets[species.get_bodytype()] + else if(back.sprite_sheets && back.sprite_sheets[species.get_bodytype(src)]) + overlay_icon = back.sprite_sheets[species.get_bodytype(src)] else if(back.item_icons && (slot_back_str in back.item_icons)) overlay_icon = back.item_icons[slot_back_str] else @@ -857,8 +856,8 @@ var/global/list/damage_icon_parts = list() var/image/standing if(handcuffed.icon_override) standing = image("icon" = handcuffed.icon_override, "icon_state" = "handcuff1") - else if(handcuffed.sprite_sheets && handcuffed.sprite_sheets[species.get_bodytype()]) - standing = image("icon" = handcuffed.sprite_sheets[species.get_bodytype()], "icon_state" = "handcuff1") + else if(handcuffed.sprite_sheets && handcuffed.sprite_sheets[species.get_bodytype(src)]) + standing = image("icon" = handcuffed.sprite_sheets[species.get_bodytype(src)], "icon_state" = "handcuff1") else standing = image("icon" = 'icons/mob/mob.dmi', "icon_state" = "handcuff1") overlays_standing[HANDCUFF_LAYER] = standing @@ -873,8 +872,8 @@ var/global/list/damage_icon_parts = list() var/image/standing if(legcuffed.icon_override) standing = image("icon" = legcuffed.icon_override, "icon_state" = "legcuff1") - else if(legcuffed.sprite_sheets && legcuffed.sprite_sheets[species.get_bodytype()]) - standing = image("icon" = legcuffed.sprite_sheets[species.get_bodytype()], "icon_state" = "legcuff1") + else if(legcuffed.sprite_sheets && legcuffed.sprite_sheets[species.get_bodytype(src)]) + standing = image("icon" = legcuffed.sprite_sheets[species.get_bodytype(src)], "icon_state" = "legcuff1") else standing = image("icon" = 'icons/mob/mob.dmi', "icon_state" = "legcuff1") overlays_standing[LEGCUFF_LAYER] = standing @@ -963,24 +962,29 @@ var/global/list/damage_icon_parts = list() /mob/living/carbon/human/proc/update_tail_showing(var/update_icons=1) overlays_standing[TAIL_LAYER] = null - if(species.tail && !(wear_suit && wear_suit.flags_inv & HIDETAIL)) + var/species_tail = species.get_tail(src) + + if(species_tail && !(wear_suit && wear_suit.flags_inv & HIDETAIL)) var/icon/tail_s = get_tail_icon() - overlays_standing[TAIL_LAYER] = image(tail_s, icon_state = "[species.tail]_s") + overlays_standing[TAIL_LAYER] = image(tail_s, icon_state = "[species_tail]_s") animate_tail_reset(0) if(update_icons) update_icons() /mob/living/carbon/human/proc/get_tail_icon() - var/icon_key = "[species.race_key][r_skin][g_skin][b_skin][r_hair][g_hair][b_hair]" + var/icon_key = "[species.get_race_key(src)][r_skin][g_skin][b_skin][r_hair][g_hair][b_hair]" var/icon/tail_icon = tail_icon_cache[icon_key] if(!tail_icon) //generate a new one - tail_icon = new/icon(icon = (species.tail_animation? species.tail_animation : 'icons/effects/species.dmi')) + var/species_tail_anim = species.get_tail_animation(src) + if(!species_tail_anim) species_tail_anim = 'icons/effects/species.dmi' + tail_icon = new/icon(species_tail_anim) tail_icon.Blend(rgb(r_skin, g_skin, b_skin), ICON_ADD) // The following will not work with animated tails. - if(species.tail_hair) - var/icon/hair_icon = icon('icons/effects/species.dmi', "[species.tail]_[species.tail_hair]") + var/use_species_tail = species.get_tail_hair(src) + if(use_species_tail) + var/icon/hair_icon = icon('icons/effects/species.dmi', "[species.get_tail(src)]_[use_species_tail]") hair_icon.Blend(rgb(r_hair, g_hair, b_hair), ICON_ADD) tail_icon.Blend(hair_icon, ICON_OVERLAY) tail_icon_cache[icon_key] = tail_icon @@ -991,7 +995,7 @@ var/global/list/damage_icon_parts = list() /mob/living/carbon/human/proc/set_tail_state(var/t_state) var/image/tail_overlay = overlays_standing[TAIL_LAYER] - if(tail_overlay && species.tail_animation) + if(tail_overlay && species.get_tail_animation(src)) tail_overlay.icon_state = t_state return tail_overlay return null @@ -999,7 +1003,7 @@ var/global/list/damage_icon_parts = list() //Not really once, since BYOND can't do that. //Update this if the ability to flick() images or make looping animation start at the first frame is ever added. /mob/living/carbon/human/proc/animate_tail_once(var/update_icons=1) - var/t_state = "[species.tail]_once" + var/t_state = "[species.get_tail(src)]_once" var/image/tail_overlay = overlays_standing[TAIL_LAYER] if(tail_overlay && tail_overlay.icon_state == t_state) @@ -1016,29 +1020,28 @@ var/global/list/damage_icon_parts = list() update_icons() /mob/living/carbon/human/proc/animate_tail_start(var/update_icons=1) - set_tail_state("[species.tail]_slow[rand(0,9)]") + set_tail_state("[species.get_tail(src)]_slow[rand(0,9)]") if(update_icons) update_icons() /mob/living/carbon/human/proc/animate_tail_fast(var/update_icons=1) - set_tail_state("[species.tail]_loop[rand(0,9)]") + set_tail_state("[species.get_tail(src)]_loop[rand(0,9)]") if(update_icons) update_icons() /mob/living/carbon/human/proc/animate_tail_reset(var/update_icons=1) if(stat != DEAD) - set_tail_state("[species.tail]_idle[rand(0,9)]") + set_tail_state("[species.get_tail(src)]_idle[rand(0,9)]") else - set_tail_state("[species.tail]_static") - + set_tail_state("[species.get_tail(src)]_static") if(update_icons) update_icons() /mob/living/carbon/human/proc/animate_tail_stop(var/update_icons=1) - set_tail_state("[species.tail]_static") + set_tail_state("[species.get_tail(src)]_static") if(update_icons) update_icons() diff --git a/code/modules/mob/living/carbon/metroid/life.dm b/code/modules/mob/living/carbon/metroid/life.dm index 7db2bcf5c85..69ddb590380 100644 --- a/code/modules/mob/living/carbon/metroid/life.dm +++ b/code/modules/mob/living/carbon/metroid/life.dm @@ -217,7 +217,7 @@ if(istype(L, /mob/living/carbon/human) && dna) //Ignore slime(wo)men var/mob/living/carbon/human/H = L - if(H.species.name == "Slime") + if(H.species.name == "Promethean") continue if(!L.canmove) // Only one slime can latch on at a time. diff --git a/code/modules/mob/living/living.dm b/code/modules/mob/living/living.dm index b3fa6e43ea6..c9665563c7b 100644 --- a/code/modules/mob/living/living.dm +++ b/code/modules/mob/living/living.dm @@ -566,7 +566,7 @@ default behaviour is: set name = "Resist" set category = "IC" - if(!stat && canClick()) + if(!incapacitated(INCAPACITATION_KNOCKOUT) && canClick()) setClickCooldown(20) resist_grab() if(!weakened) @@ -631,7 +631,9 @@ default behaviour is: if(GRAB_PASSIVE) qdel(G) if(GRAB_AGGRESSIVE) - if(prob(60)) //same chance of breaking the grab as disarm + //Not standing up makes it much harder to break, so it is easier to cuff someone who is down without forcing them into unconsciousness. + //Otherwise, it's the same chance of breaking the grab as disarm. + if(incapacitated(INCAPACITATION_KNOCKDOWN)? prob(15) : prob(60)) visible_message("[src] has broken free of [G.assailant]'s grip!") qdel(G) if(GRAB_NECK) @@ -862,7 +864,7 @@ default behaviour is: else if(istype(buckled, /obj/vehicle)) var/obj/vehicle/V = buckled - if(cannot_stand()) + if(is_physically_disabled()) lying = 0 canmove = 1 pixel_y = V.mob_offset_y - 5 @@ -880,18 +882,13 @@ default behaviour is: anchored = 0 canmove = 1 - else if(cannot_stand()) - lying = 1 - canmove = 0 - else if(stunned) - canmove = 0 else if(captured) anchored = 1 canmove = 0 lying = 0 else - lying = 0 - canmove = 1 + lying = incapacitated(INCAPACITATION_KNOCKDOWN) + canmove = !incapacitated(INCAPACITATION_DISABLED) if(lying) density = 0 diff --git a/code/modules/mob/living/silicon/ai/ai.dm b/code/modules/mob/living/silicon/ai/ai.dm index ee452849255..9cbe7e1221a 100644 --- a/code/modules/mob/living/silicon/ai/ai.dm +++ b/code/modules/mob/living/silicon/ai/ai.dm @@ -151,11 +151,13 @@ var/list/ai_verbs_hidden = list( // For why this exists, refer to https://xkcd.c add_language("Galactic Common", 1) add_language("Sol Common", 0) add_language("Sinta'unathi", 0) + add_language("Siik'maas", 0) add_language("Siik'tajr", 0) add_language("Skrellian", 0) add_language("Tradeband", 1) add_language("Gutter", 0) add_language("Encoded Audio Language", 1) + add_language("Schechi", 0) if(!safety)//Only used by AIize() to successfully spawn an AI. if (!B)//If there is no player/brain inside. diff --git a/code/modules/mob/living/silicon/pai/pai.dm b/code/modules/mob/living/silicon/pai/pai.dm index 587daf649e2..2ba3d40a174 100644 --- a/code/modules/mob/living/silicon/pai/pai.dm +++ b/code/modules/mob/living/silicon/pai/pai.dm @@ -7,6 +7,9 @@ pass_flags = 1 mob_size = MOB_SMALL + can_pull_size = 2 + can_pull_mobs = MOB_PULL_SMALLER + idcard_type = /obj/item/weapon/card/id var/idaccessible = 0 diff --git a/code/modules/mob/living/silicon/robot/component.dm b/code/modules/mob/living/silicon/robot/component.dm index 6f0b3d81bd2..7d2848f9bf5 100644 --- a/code/modules/mob/living/silicon/robot/component.dm +++ b/code/modules/mob/living/silicon/robot/component.dm @@ -75,7 +75,7 @@ /datum/robot_component/armour name = "armour plating" external_type = /obj/item/robot_parts/robot_component/armour - max_damage = 60 + max_damage = 90 // ACTUATOR diff --git a/code/modules/mob/living/silicon/robot/robot_modules.dm b/code/modules/mob/living/silicon/robot/robot_modules.dm index 69371109ec7..e6c7546e091 100644 --- a/code/modules/mob/living/silicon/robot/robot_modules.dm +++ b/code/modules/mob/living/silicon/robot/robot_modules.dm @@ -23,7 +23,7 @@ var/global/list/robot_modules = list( var/hide_on_manifest = 0 var/channels = list() var/networks = list() - var/languages = list(LANGUAGE_SOL_COMMON = 1, LANGUAGE_TRADEBAND = 1, LANGUAGE_UNATHI = 0, LANGUAGE_SIIK_TAJR = 0, LANGUAGE_SKRELLIAN = 0, LANGUAGE_GUTTER = 0) + var/languages = list(LANGUAGE_SOL_COMMON = 1, LANGUAGE_TRADEBAND = 1, LANGUAGE_UNATHI = 0, LANGUAGE_SIIK_TAJR = 0, LANGUAGE_SKRELLIAN = 0, LANGUAGE_GUTTER = 0, LANGUAGE_SCHECHI = 0) var/sprites = list() var/can_be_pushed = 1 var/no_slip = 0 @@ -479,11 +479,12 @@ var/global/list/robot_modules = list( LANGUAGE_SOL_COMMON = 1, LANGUAGE_UNATHI = 1, LANGUAGE_SIIK_MAAS = 1, - LANGUAGE_SIIK_TAJR = 0, + LANGUAGE_SIIK_TAJR = 1, LANGUAGE_SKRELLIAN = 1, LANGUAGE_ROOTSPEAK = 1, LANGUAGE_TRADEBAND = 1, - LANGUAGE_GUTTER = 1 + LANGUAGE_GUTTER = 1, + LANGUAGE_SCHECHI = 1 ) /obj/item/weapon/robot_module/clerical/butler @@ -623,9 +624,12 @@ var/global/list/robot_modules = list( LANGUAGE_SOL_COMMON = 1, LANGUAGE_TRADEBAND = 1, LANGUAGE_UNATHI = 0, + LANGUAGE_SIIK_MAAS = 0, LANGUAGE_SIIK_TAJR = 0, LANGUAGE_SKRELLIAN = 0, - LANGUAGE_GUTTER = 1 + LANGUAGE_ROOTSPEAK = 0, + LANGUAGE_GUTTER = 1, + LANGUAGE_SCHECHI = 0 ) sprites = list( "Dread" = "securityrobot", diff --git a/code/modules/mob/living/voice/voice.dm b/code/modules/mob/living/voice/voice.dm index 82bd397ac13..e4eac0f439c 100644 --- a/code/modules/mob/living/voice/voice.dm +++ b/code/modules/mob/living/voice/voice.dm @@ -33,7 +33,7 @@ var/datum/preferences/p = speaker.client.prefs name = p.real_name real_name = name - gender = p.gender + gender = p.identifying_gender for(var/language in p.alternate_languages) add_language(language) diff --git a/code/modules/mob/mob.dm b/code/modules/mob/mob.dm index f45fd574cea..405afb537c7 100644 --- a/code/modules/mob/mob.dm +++ b/code/modules/mob/mob.dm @@ -158,8 +158,20 @@ return UNBUCKLED return restrained() ? FULLY_BUCKLED : PARTIALLY_BUCKLED +/mob/proc/is_physically_disabled() + return incapacitated(INCAPACITATION_DISABLED) + +/mob/proc/cannot_stand() + return incapacitated(INCAPACITATION_KNOCKDOWN) + /mob/proc/incapacitated(var/incapacitation_flags = INCAPACITATION_DEFAULT) - if (stat || paralysis || stunned || weakened || resting || sleeping || (status_flags & FAKEDEATH)) + if ((incapacitation_flags & INCAPACITATION_STUNNED) && stunned) + return 1 + + if ((incapacitation_flags & INCAPACITATION_FORCELYING) && (weakened || resting)) + return 1 + + if ((incapacitation_flags & INCAPACITATION_KNOCKOUT) && (stat || paralysis || sleeping || (status_flags & FAKEDEATH))) return 1 if((incapacitation_flags & INCAPACITATION_RESTRAINED) && restrained()) @@ -687,9 +699,6 @@ /mob/proc/can_stand_overridden() return 0 -/mob/proc/cannot_stand() - return incapacitated(INCAPACITATION_DEFAULT & (~INCAPACITATION_RESTRAINED)) - //Updates canmove, lying and icons. Could perhaps do with a rename but I can't think of anything to describe it. /mob/proc/update_canmove() return canmove diff --git a/code/modules/mob/mob_defines.dm b/code/modules/mob/mob_defines.dm index 7eb32ea8db6..f814ac2b231 100644 --- a/code/modules/mob/mob_defines.dm +++ b/code/modules/mob/mob_defines.dm @@ -130,8 +130,6 @@ var/in_throw_mode = 0 - var/coughedtime = null - var/inertia_dir = 0 var/music_lastplayed = "null" @@ -154,7 +152,7 @@ var/voice_name = "unidentifiable voice" var/faction = "neutral" //Used for checking whether hostile simple animals will attack you, possibly more stuff later - var/captured = 0 //Functionally, should give the same effect as being buckled into a chair when true. + var/captured = 0 //Functionally, should give the same effect as being buckled into a chair when true. Only used by energy nets, TODO replace with buckling //Generic list for proc holders. Only way I can see to enable certain verbs/procs. Should be modified if needed. var/proc_holder_list[] = list()//Right now unused. diff --git a/code/modules/mob/mob_grab_specials.dm b/code/modules/mob/mob_grab_specials.dm index 64a98985cfc..5158a7f3d07 100644 --- a/code/modules/mob/mob_grab_specials.dm +++ b/code/modules/mob/mob_grab_specials.dm @@ -142,14 +142,14 @@ /obj/item/weapon/grab/proc/devour(mob/target, mob/user) var/can_eat - if((FAT in user.mutations) && issmall(target)) + if((FAT in user.mutations) && ismini(target)) can_eat = 1 else var/mob/living/carbon/human/H = user if(istype(H) && H.species.gluttonous) if(H.species.gluttonous == 2) can_eat = 2 - else if((H.mob_size > target.mob_size) && !ishuman(target) && iscarbon(target)) + else if((H.mob_size > target.mob_size) && !ishuman(target) && ismini(target)) can_eat = 1 if(can_eat) @@ -158,7 +158,7 @@ if(can_eat == 2) if(!do_mob(user, target)||!do_after(user, 30)) return else - if(!do_mob(user, target)||!do_after(user, 100)) return + if(!do_mob(user, target)||!do_after(user, 70)) return user.visible_message("[user] devours [target]!") target.loc = user attacker.stomach_contents.Add(target) diff --git a/code/modules/mob/mob_helpers.dm b/code/modules/mob/mob_helpers.dm index 876257be91f..51f223295e0 100644 --- a/code/modules/mob/mob_helpers.dm +++ b/code/modules/mob/mob_helpers.dm @@ -5,6 +5,21 @@ return L.mob_size <= MOB_SMALL return 0 + +/proc/istiny(A) + if(A && istype(A, /mob/living)) + var/mob/living/L = A + return L.mob_size <= MOB_TINY + return 0 + + +/proc/ismini(A) + if(A && istype(A, /mob/living)) + var/mob/living/L = A + return L.mob_size <= MOB_MINISCULE + return 0 + + // If they are 100% robotic, they count as synthetic. /mob/living/carbon/human/isSynthetic() if(isnull(full_prosthetic)) @@ -389,6 +404,8 @@ proc/is_blind(A) var/follow var/lname if(subject) + if(M.is_key_ignored(subject.client.key)) // If we're ignored, do nothing. + continue if(subject != M) follow = "([ghost_follow_link(subject, M)]) " if(M.stat != DEAD && M.client.holder) diff --git a/code/modules/mob/new_player/new_player.dm b/code/modules/mob/new_player/new_player.dm index 43f7d80815b..b6c210ac567 100644 --- a/code/modules/mob/new_player/new_player.dm +++ b/code/modules/mob/new_player/new_player.dm @@ -5,6 +5,7 @@ var/spawning = 0//Referenced when you want to delete the new_player later on in the code. var/totalPlayers = 0 //Player counts for the Lobby tab var/totalPlayersReady = 0 + var/datum/browser/panel universal_speak = 1 invisibility = 101 @@ -24,15 +25,15 @@ /mob/new_player/proc/new_player_panel_proc() - var/output = "
    New Player Options" + var/output = "
    " output +="
    " output += "

    Setup Character

    " if(!ticker || ticker.current_state <= GAME_STATE_PREGAME) if(ready) - output += "

    \[ Ready | Not Ready \]

    " + output += "

    \[ Ready | Not Ready \]

    " else - output += "

    \[ Ready | Not Ready \]

    " + output += "

    \[ Ready | Not Ready \]

    " else output += "View the Crew Manifest

    " @@ -61,7 +62,10 @@ output += "
    " - src << browse(output,"window=playersetup;size=210x280;can_close=0") + panel = new(src, "Welcome","Welcome", 210, 280, src) + panel.set_window_options("can_close=0") + panel.set_content(output) + panel.open() return /mob/new_player/Stat() @@ -98,7 +102,8 @@ ready = 0 if(href_list["refresh"]) - src << browse(null, "window=playersetup") //closes the player setup window + //src << browse(null, "window=playersetup") //closes the player setup window + panel.close() new_player_panel_proc() if(href_list["observe"]) @@ -127,7 +132,7 @@ observer.alpha = 127 if(client.prefs.be_random_name) - client.prefs.real_name = random_name(client.prefs.gender) + client.prefs.real_name = random_name(client.prefs.identifying_gender) observer.real_name = client.prefs.real_name observer.name = observer.real_name if(!client.holder && !config.antag_hud_allowed) // For new ghosts we remove the verb from even showing up if it's not allowed. @@ -149,7 +154,7 @@ return 0 var/datum/species/S = all_species[client.prefs.species] - if(!(S.spawn_flags & IS_WHITELISTED)) + if(!(S.spawn_flags & SPECIES_IS_WHITELISTED)) src << alert("Your current species,[client.prefs.species], is not available for play on the station.") return 0 @@ -173,7 +178,7 @@ return 0 var/datum/species/S = all_species[client.prefs.species] - if(!(S.spawn_flags & CAN_JOIN)) + if(!(S.spawn_flags & SPECIES_CAN_JOIN)) src << alert("Your current species, [client.prefs.species], is not available for play on the station.") return 0 @@ -458,25 +463,29 @@ return new_character /mob/new_player/proc/ViewManifest() - var/dat = "" - dat += "

    Show Crew Manifest

    " + var/dat = "
    " dat += data_core.get_manifest(OOC = 1) - src << browse(dat, "window=manifest;size=370x420;can_close=1") + //src << browse(dat, "window=manifest;size=370x420;can_close=1") + var/datum/browser/popup = new(src, "Crew Manifest", "Crew Manifest", 370, 420, src) + popup.set_content(dat) + popup.open() /mob/new_player/Move() return 0 /mob/new_player/proc/close_spawn_windows() + src << browse(null, "window=latechoices") //closes late choices window - src << browse(null, "window=playersetup") //closes the player setup window + //src << browse(null, "window=playersetup") //closes the player setup window + panel.close() /mob/new_player/proc/has_admin_rights() return check_rights(R_ADMIN, 0, src) /mob/new_player/proc/is_species_whitelisted(datum/species/S) if(!S) return 1 - return is_alien_whitelisted(src, S.name) || !config.usealienwhitelist || !(S.spawn_flags & IS_WHITELISTED) + return is_alien_whitelisted(src, S.name) || !config.usealienwhitelist || !(S.spawn_flags & SPECIES_IS_WHITELISTED) /mob/new_player/get_species() var/datum/species/chosen_species @@ -493,7 +502,7 @@ /mob/new_player/get_gender() if(!client || !client.prefs) ..() - return client.prefs.gender + return client.prefs.biological_gender /mob/new_player/is_ready() return ready && ..() diff --git a/code/modules/mob/new_player/preferences_setup.dm b/code/modules/mob/new_player/preferences_setup.dm index e57224a3772..ae75216c4eb 100644 --- a/code/modules/mob/new_player/preferences_setup.dm +++ b/code/modules/mob/new_player/preferences_setup.dm @@ -1,8 +1,8 @@ /datum/preferences //The mob should have a gender you want before running this proc. Will run fine without H /datum/preferences/proc/randomize_appearance_for(var/mob/living/carbon/human/H) - gender = pick(MALE, FEMALE) - var/datum/species/current_species = all_species[species] + var/datum/species/current_species = all_species[species ? species : "Human"] + set_biological_gender(pick(current_species.genders)) if(current_species) if(current_species.flags & HAS_SKIN_TONE) @@ -25,8 +25,8 @@ use_head_species = H.species.get_bodytype() if(use_head_species) - h_style = random_hair_style(gender, species) - f_style = random_facial_hair_style(gender, species) + h_style = random_hair_style(biological_gender, species) + f_style = random_facial_hair_style(biological_gender, species) randomize_hair_color("hair") randomize_hair_color("facial") @@ -202,7 +202,7 @@ qdel(preview_icon) var/g = "m" - if(gender == FEMALE) g = "f" + if(biological_gender == FEMALE) g = "f" var/icon/icobase var/datum/species/current_species = all_species[species] diff --git a/code/modules/nano/modules/human_appearance.dm b/code/modules/nano/modules/human_appearance.dm index 87bfc761767..3b422435d35 100644 --- a/code/modules/nano/modules/human_appearance.dm +++ b/code/modules/nano/modules/human_appearance.dm @@ -27,10 +27,14 @@ cut_and_generate_data() return 1 if(href_list["gender"]) - if(can_change(APPEARANCE_GENDER)) + if(can_change(APPEARANCE_GENDER) && (href_list["gender"] in get_genders())) if(owner.change_gender(href_list["gender"])) cut_and_generate_data() return 1 + if(href_list["gender_id"]) + if(can_change(APPEARANCE_GENDER) && (href_list["gender_id"] in all_genders_define_list)) + owner.identifying_gender = href_list["gender_id"] + return 1 if(href_list["skin_tone"]) if(can_change_skin_tone()) var/new_s_tone = input(usr, "Choose your character's skin-tone:\n(Light 1 - 220 Dark)", "Skin Tone", -owner.s_tone + 35) as num|null @@ -100,6 +104,7 @@ data["specimen"] = owner.species.name data["gender"] = owner.gender + data["gender_id"] = owner.identifying_gender data["change_race"] = can_change(APPEARANCE_RACE) if(data["change_race"]) var/species[0] @@ -108,6 +113,17 @@ data["species"] = species data["change_gender"] = can_change(APPEARANCE_GENDER) + if(data["change_gender"]) + var/genders[0] + for(var/gender in get_genders()) + genders[++genders.len] = list("gender_name" = gender2text(gender), "gender_key" = gender) + data["genders"] = genders + var/id_genders[0] + for(var/gender in all_genders_define_list) + id_genders[++id_genders.len] = list("gender_name" = gender2text(gender), "gender_key" = gender) + data["id_genders"] = id_genders + + data["change_skin_tone"] = can_change_skin_tone() data["change_skin_color"] = can_change_skin_color() data["change_eye_color"] = can_change(APPEARANCE_EYE_COLOR) @@ -163,3 +179,13 @@ if(!valid_hairstyles.len || !valid_facial_hairstyles.len) valid_hairstyles = owner.generate_valid_hairstyles(check_gender = 0) valid_facial_hairstyles = owner.generate_valid_facial_hairstyles() + + +/datum/nano_module/appearance_changer/proc/get_genders() + var/datum/species/S = owner.species + var/list/possible_genders = S.genders + if(!owner.internal_organs_by_name["cell"]) + return possible_genders + possible_genders = possible_genders.Copy() + possible_genders |= NEUTER + return possible_genders \ No newline at end of file diff --git a/code/modules/nano/modules/rcon.dm b/code/modules/nano/modules/rcon.dm index 8950f1228e8..85387d5a04c 100644 --- a/code/modules/nano/modules/rcon.dm +++ b/code/modules/nano/modules/rcon.dm @@ -17,10 +17,10 @@ smeslist.Add(list(list( "charge" = round(SMES.Percentage()), "input_set" = SMES.input_attempt, - "input_val" = round(SMES.input_level), + "input_val" = round(SMES.input_level/1000, 0.1), "output_set" = SMES.output_attempt, - "output_val" = round(SMES.output_level), - "output_load" = round(SMES.output_used), + "output_val" = round(SMES.output_level/1000, 0.1), + "output_load" = round(SMES.output_used/1000, 0.1), "RCON_tag" = SMES.RCon_tag ))) @@ -63,12 +63,12 @@ if(href_list["smes_in_set"]) var/obj/machinery/power/smes/buildable/SMES = GetSMESByTag(href_list["smes_in_set"]) if(SMES) - var/inputset = input(usr, "Enter new input level (0-[SMES.input_level_max])", "SMES Input Power Control") as num + var/inputset = (input(usr, "Enter new input level (0-[SMES.input_level_max/1000] kW)", "SMES Input Power Control", SMES.input_level/1000) as num) * 1000 SMES.set_input(inputset) if(href_list["smes_out_set"]) var/obj/machinery/power/smes/buildable/SMES = GetSMESByTag(href_list["smes_out_set"]) if(SMES) - var/outputset = input(usr, "Enter new output level (0-[SMES.output_level_max])", "SMES Input Power Control") as num + var/outputset = (input(usr, "Enter new output level (0-[SMES.output_level_max/1000] kW)", "SMES Input Power Control", SMES.output_level/1000) as num) * 1000 SMES.set_output(outputset) if(href_list["toggle_breaker"]) diff --git a/code/modules/organs/organ_external.dm b/code/modules/organs/organ_external.dm index cebd834a24f..28d054b3779 100644 --- a/code/modules/organs/organ_external.dm +++ b/code/modules/organs/organ_external.dm @@ -26,6 +26,7 @@ var/last_dam = -1 // used in healing/processing calculations. // Appearance vars. + var/nonsolid // Snowflake warning, reee. Used for slime limbs. var/icon_name = null // Icon state base. var/body_part = null // Part flag var/icon_position = 0 // Used in mob overlay layering calculations. @@ -199,11 +200,11 @@ /obj/item/organ/external/replaced(var/mob/living/carbon/human/target) owner = target + forceMove(owner) if(istype(owner)) owner.organs_by_name[organ_tag] = src owner.organs |= src for(var/obj/item/organ/organ in src) - organ.loc = owner organ.replaced(owner,src) if(parent_organ) @@ -212,6 +213,12 @@ if(!parent.children) parent.children = list() parent.children.Add(src) + //Remove all stump wounds since limb is not missing anymore + for(var/datum/wound/lost_limb/W in parent.wounds) + parent.wounds -= W + qdel(W) + break + parent.update_damages() /**************************************************** DAMAGE PROCS @@ -249,7 +256,10 @@ if(is_damageable(brute + burn) || !config.limbs_can_break) if(brute) if(can_cut) - createwound( CUT, brute ) + if(sharp && !edge) + createwound( PIERCE, brute ) + else + createwound( CUT, brute ) else createwound( BRUISE, brute ) if(burn) @@ -263,7 +273,10 @@ if (brute > 0) //Inflict all burte damage we can if(can_cut) - createwound( CUT, min(brute,can_inflict) ) + if(sharp && !edge) + createwound( PIERCE, min(brute,can_inflict) ) + else + createwound( CUT, min(brute,can_inflict) ) else createwound( BRUISE, min(brute,can_inflict) ) var/temp = can_inflict @@ -326,10 +339,10 @@ break // heal brute damage - if(W.damage_type == CUT || W.damage_type == BRUISE) - brute = W.heal_damage(brute) - else if(W.damage_type == BURN) + if(W.damage_type == BURN) burn = W.heal_damage(burn) + else + brute = W.heal_damage(brute) if(internal) status &= ~ORGAN_BROKEN @@ -653,10 +666,10 @@ Note that amputating the affected organ does in fact remove the infection from t //update damage counts for(var/datum/wound/W in wounds) if(!W.internal) //so IB doesn't count towards crit/paincrit - if(W.damage_type == CUT || W.damage_type == BRUISE) - brute_dam += W.damage - else if(W.damage_type == BURN) + if(W.damage_type == BURN) burn_dam += W.damage + else + brute_dam += W.damage if(!(status & ORGAN_ROBOT) && W.bleeding() && (H && H.should_have_organ(O_HEART))) W.bleed_timer-- @@ -719,6 +732,9 @@ Note that amputating the affected organ does in fact remove the infection from t if(cannot_amputate || !owner) return + if(disintegrate == DROPLIMB_EDGE && nonsolid) + disintegrate = DROPLIMB_BLUNT //splut + switch(disintegrate) if(DROPLIMB_EDGE) if(!clean) @@ -747,10 +763,13 @@ Note that amputating the affected organ does in fact remove the infection from t var/mob/living/carbon/human/victim = owner //Keep a reference for post-removed(). var/obj/item/organ/external/parent_organ = parent + + var/use_flesh_colour = species.get_flesh_colour(owner) + var/use_blood_colour = species.get_blood_colour(owner) + removed(null, ignore_children) victim.traumatic_shock += 60 - wounds.Cut() if(parent_organ) var/datum/wound/lost_limb/W = new (src, disintegrate, clean) if(clean) @@ -795,10 +814,8 @@ Note that amputating the affected organ does in fact remove the infection from t else gore = new /obj/effect/decal/cleanable/blood/gibs(get_turf(victim)) if(species) - if(species.get_flesh_colour()) - gore.fleshcolor = species.get_flesh_colour() - if(species.get_blood_colour()) - gore.basecolor = species.get_blood_colour() + gore.fleshcolor = use_flesh_colour + gore.basecolor = use_blood_colour gore.update_icon() gore.throw_at(get_edge_target_turf(src,pick(alldirs)),rand(1,3),30) @@ -840,15 +857,46 @@ Note that amputating the affected organ does in fact remove the infection from t "\The [holder.legcuffed.name] falls off you.") holder.drop_from_inventory(holder.legcuffed) +// checks if all wounds on the organ are bandaged +/obj/item/organ/external/proc/is_bandaged() + for(var/datum/wound/W in wounds) + if(W.internal) continue + if(!W.bandaged) + return 0 + return 1 + +// checks if all wounds on the organ are salved +/obj/item/organ/external/proc/is_salved() + for(var/datum/wound/W in wounds) + if(W.internal) continue + if(!W.salved) + return 0 + return 1 + +// checks if all wounds on the organ are disinfected +/obj/item/organ/external/proc/is_disinfected() + for(var/datum/wound/W in wounds) + if(W.internal) continue + if(!W.disinfected) + return 0 + return 1 + /obj/item/organ/external/proc/bandage() var/rval = 0 - src.status &= ~ORGAN_BLEEDING + status &= ~ORGAN_BLEEDING for(var/datum/wound/W in wounds) if(W.internal) continue rval |= !W.bandaged W.bandaged = 1 return rval +/obj/item/organ/external/proc/salve() + var/rval = 0 + for(var/datum/wound/W in wounds) + rval |= !W.salved + W.salved = 1 + return rval + /obj/item/organ/external/proc/disinfect() var/rval = 0 for(var/datum/wound/W in wounds) @@ -867,13 +915,6 @@ Note that amputating the affected organ does in fact remove the infection from t W.clamped = 1 return rval -/obj/item/organ/external/proc/salve() - var/rval = 0 - for(var/datum/wound/W in wounds) - rval |= !W.salved - W.salved = 1 - return rval - /obj/item/organ/external/proc/fracture() if(status & ORGAN_ROBOT) return //ORGAN_BROKEN doesn't have the same meaning for robot limbs diff --git a/code/modules/organs/organ_icon.dm b/code/modules/organs/organ_icon.dm index ffcb3f32e16..21e1e337b8e 100644 --- a/code/modules/organs/organ_icon.dm +++ b/code/modules/organs/organ_icon.dm @@ -71,7 +71,7 @@ var/global/list/limb_icon_cache = list() if(owner.f_style) var/datum/sprite_accessory/facial_hair_style = facial_hair_styles_list[owner.f_style] - if(facial_hair_style && facial_hair_style.species_allowed && (species.get_bodytype() in facial_hair_style.species_allowed)) + if(facial_hair_style && facial_hair_style.species_allowed && (species.get_bodytype(owner) in facial_hair_style.species_allowed)) var/icon/facial_s = new/icon("icon" = facial_hair_style.icon, "icon_state" = "[facial_hair_style.icon_state]_s") if(facial_hair_style.do_colouration) facial_s.Blend(rgb(owner.r_facial, owner.g_facial, owner.b_facial), ICON_ADD) @@ -79,7 +79,7 @@ var/global/list/limb_icon_cache = list() if(owner.h_style && !(owner.head && (owner.head.flags_inv & BLOCKHEADHAIR))) var/datum/sprite_accessory/hair_style = hair_styles_list[owner.h_style] - if(hair_style && (species.get_bodytype() in hair_style.species_allowed)) + if(hair_style && (species.get_bodytype(owner) in hair_style.species_allowed)) var/icon/hair_s = new/icon("icon" = hair_style.icon, "icon_state" = "[hair_style.icon_state]_s") if(hair_style.do_colouration && islist(h_col) && h_col.len >= 3) hair_s.Blend(rgb(h_col[1], h_col[2], h_col[3]), ICON_ADD) @@ -113,36 +113,47 @@ var/global/list/limb_icon_cache = list() else if (status & ORGAN_ROBOT) mob_icon = new /icon('icons/mob/human_races/robotic.dmi', "[icon_name][gender ? "_[gender]" : ""]") else - if (status & ORGAN_MUTATED) - mob_icon = new /icon(species.deform, "[icon_name][gender ? "_[gender]" : ""]") - else - mob_icon = new /icon(species.icobase, "[icon_name][gender ? "_[gender]" : ""]") - - if(status & ORGAN_DEAD) - mob_icon.ColorTone(rgb(10,50,0)) - mob_icon.SetIntensity(0.7) - - if(!isnull(s_tone)) - if(s_tone >= 0) - mob_icon.Blend(rgb(s_tone, s_tone, s_tone), ICON_ADD) - else - mob_icon.Blend(rgb(-s_tone, -s_tone, -s_tone), ICON_SUBTRACT) - else if(s_col && s_col.len >= 3) - mob_icon.Blend(rgb(s_col[1], s_col[2], s_col[3]), ICON_ADD) + mob_icon = new /icon(species.get_icobase(owner, (status & ORGAN_MUTATED)), "[icon_name][gender ? "_[gender]" : ""]") + apply_colouration(mob_icon) if(body_hair && islist(h_col) && h_col.len >= 3) var/cache_key = "[body_hair]-[icon_name]-[h_col[1]][h_col[2]][h_col[3]]" if(!limb_icon_cache[cache_key]) - var/icon/I = icon(species.icobase, "[icon_name]_[body_hair]") + var/icon/I = icon(species.get_icobase(owner), "[icon_name]_[body_hair]") I.Blend(rgb(h_col[1],h_col[2],h_col[3]), ICON_ADD) limb_icon_cache[cache_key] = I mob_icon.Blend(limb_icon_cache[cache_key], ICON_OVERLAY) dir = EAST icon = mob_icon - return mob_icon +/obj/item/organ/external/proc/apply_colouration(var/icon/applying) + + if(nonsolid) + applying.MapColors("#4D4D4D","#969696","#1C1C1C", "#000000") + if(species && species.get_bodytype(owner) != "Human") + applying.SetIntensity(1.5) // Unathi, Taj and Skrell have -very- dark base icons. + else + applying.SetIntensity(0.7) + + else if(status & ORGAN_DEAD) + applying.ColorTone(rgb(10,50,0)) + applying.SetIntensity(0.7) + + if(!isnull(s_tone)) + if(s_tone >= 0) + applying.Blend(rgb(s_tone, s_tone, s_tone), ICON_ADD) + else + applying.Blend(rgb(-s_tone, -s_tone, -s_tone), ICON_SUBTRACT) + else if(s_col && s_col.len >= 3) + applying.Blend(rgb(s_col[1], s_col[2], s_col[3]), ICON_ADD) + + // Translucency. + if(nonsolid) applying += rgb(,,,180) // SO INTUITIVE TY BYOND + + return applying + // new damage icon system // adjusted to set damage_state to brute/burn code only (without r_name0 as before) /obj/item/organ/external/update_icon() diff --git a/code/modules/organs/subtypes/unbreakable.dm b/code/modules/organs/subtypes/unbreakable.dm index 137249e7473..9492d330e13 100644 --- a/code/modules/organs/subtypes/unbreakable.dm +++ b/code/modules/organs/subtypes/unbreakable.dm @@ -1,4 +1,3 @@ -// Slime limbs. /obj/item/organ/external/chest/unbreakable cannot_break = 1 dislocated = -1 @@ -42,3 +41,48 @@ /obj/item/organ/external/head/unbreakable cannot_break = 1 dislocated = -1 + +// Slime limbs. +/obj/item/organ/external/chest/unbreakable/slime + nonsolid = 1 + max_damage = 50 + +/obj/item/organ/external/groin/unbreakable/slime + nonsolid = 1 + max_damage = 30 + +/obj/item/organ/external/arm/unbreakable/slime + nonsolid = 1 + max_damage = 15 + +/obj/item/organ/external/arm/right/unbreakable/slime + nonsolid = 1 + max_damage = 15 + +/obj/item/organ/external/leg/unbreakable/slime + nonsolid = 1 + max_damage = 15 + +/obj/item/organ/external/leg/right/unbreakable/slime + nonsolid = 1 + max_damage = 15 + +/obj/item/organ/external/foot/unbreakable/slime + nonsolid = 1 + max_damage = 5 + +/obj/item/organ/external/foot/right/unbreakable/slime + nonsolid = 1 + max_damage = 5 + +/obj/item/organ/external/hand/unbreakable/slime + nonsolid = 1 + max_damage = 5 + +/obj/item/organ/external/hand/right/unbreakable/slime + nonsolid = 1 + max_damage = 5 + +/obj/item/organ/external/head/unbreakable/slime + nonsolid = 1 + max_damage = 15 diff --git a/code/modules/organs/wound.dm b/code/modules/organs/wound.dm index 850f5114c03..3cf3ecb2394 100644 --- a/code/modules/organs/wound.dm +++ b/code/modules/organs/wound.dm @@ -38,7 +38,7 @@ var/internal = 0 // maximum stage at which bleeding should still happen. Beyond this stage bleeding is prevented. var/max_bleeding_stage = 0 - // one of CUT, BRUISE, BURN + // one of CUT, PIERCE, BRUISE, BURN var/damage_type = CUT // whether this wound needs a bandage/salve to heal at all // the maximum amount of damage that this wound can have and still autoheal @@ -140,6 +140,15 @@ return 0 + proc/bandage() + bandaged = 1 + + proc/salve() + salved = 1 + + proc/disinfect() + disinfected = 1 + // heal the given amount of damage, and if the given amount of damage was more // than what needed to be healed, return how much heal was left // set @heals_internal to also heal internal organ damage @@ -202,7 +211,7 @@ if (wound_damage() <= 30 && bleed_timer <= 0) return 0 //Bleed timer has run out. Wounds with more than 30 damage don't stop bleeding on their own. - return (damage_type == BRUISE && wound_damage() >= 20 || damage_type == CUT && wound_damage() >= 5) + return 1 /** WOUND DEFINITIONS **/ @@ -226,6 +235,18 @@ return /datum/wound/cut/deep if(0 to 15) return /datum/wound/cut/small + if(PIERCE) + switch(damage) + if(60 to INFINITY) + return /datum/wound/puncture/massive + if(50 to 60) + return /datum/wound/puncture/gaping_big + if(30 to 50) + return /datum/wound/puncture/gaping + if(15 to 30) + return /datum/wound/puncture/flesh + if(0 to 15) + return /datum/wound/puncture/small if(BRUISE) return /datum/wound/bruise if(BURN) @@ -243,6 +264,9 @@ return null //no wound /** CUTS **/ +/datum/wound/cut/bleeding() + return ..() || wound_damage() >= 5 + /datum/wound/cut/small // link wound descriptions to amounts of damage // Minor cuts have max_bleeding_stage set to the stage that bears the wound type's name. @@ -276,7 +300,43 @@ datum/wound/cut/massive stages = list("massive wound" = 70, "massive healing wound" = 50, "massive blood soaked clot" = 25, "massive angry scar" = 10, "massive jagged scar" = 0) damage_type = CUT +/** PUNCTURES **/ +/datum/wound/puncture/can_worsen(damage_type, damage) + return 0 +/datum/wound/puncture/can_merge(var/datum/wound/other) + return 0 +/datum/wound/puncture/bleeding() + return ..() || wound_damage() >= 5 + +/datum/wound/puncture/small + max_bleeding_stage = 2 + stages = list("puncture" = 5, "healing puncture" = 2, "small scab" = 0) + damage_type = PIERCE + +/datum/wound/puncture/flesh + max_bleeding_stage = 2 + stages = list("puncture wound" = 15, "blood soaked clot" = 5, "large scab" = 2, "small round scar" = 0) + damage_type = PIERCE + +/datum/wound/puncture/gaping + max_bleeding_stage = 3 + stages = list("gaping hole" = 30, "large blood soaked clot" = 15, "blood soaked clot" = 10, "small angry scar" = 5, "small round scar" = 0) + damage_type = PIERCE + +/datum/wound/puncture/gaping_big + max_bleeding_stage = 3 + stages = list("big gaping hole" = 50, "healing gaping hole" = 20, "large blood soaked clot" = 15, "large angry scar" = 10, "large round scar" = 0) + damage_type = PIERCE + +datum/wound/puncture/massive + max_bleeding_stage = 3 + stages = list("massive wound" = 60, "massive healing wound" = 30, "massive blood soaked clot" = 25, "massive angry scar" = 10, "massive jagged scar" = 0) + damage_type = PIERCE + /** BRUISES **/ +/datum/wound/bruise/bleeding() + return ..() || wound_damage() >= 20 + /datum/wound/bruise stages = list("monumental bruise" = 80, "huge bruise" = 50, "large bruise" = 30, "moderate bruise" = 20, "small bruise" = 10, "tiny bruise" = 5) @@ -285,6 +345,11 @@ datum/wound/cut/massive damage_type = BRUISE /** BURNS **/ +/datum/wound/burn + max_bleeding_stage = 0 +/datum/wound/burn/bleeding() + return 0 + /datum/wound/burn/moderate stages = list("ripped burn" = 10, "moderate burn" = 5, "healing moderate burn" = 2, "fresh skin" = 0) damage_type = BURN @@ -318,15 +383,15 @@ datum/wound/cut/massive /datum/wound/lost_limb/New(var/obj/item/organ/external/lost_limb, var/losstype, var/clean) var/damage_amt = lost_limb.max_damage if(clean) damage_amt /= 2 - + switch(losstype) if(DROPLIMB_EDGE, DROPLIMB_BLUNT) damage_type = CUT max_bleeding_stage = 3 //clotted stump and above can bleed. stages = list( "ripped stump" = damage_amt*1.3, - "bloody stump" = damage_amt, - "clotted stump" = damage_amt*0.5, + "bloody stump" = damage_amt, + "clotted stump" = damage_amt*0.5, "scarred stump" = 0 ) if(DROPLIMB_BURN) @@ -337,7 +402,7 @@ datum/wound/cut/massive "scarred stump" = damage_amt*0.5, "scarred stump" = 0 ) - + ..(damage_amt) /datum/wound/lost_limb/can_merge(var/datum/wound/other) diff --git a/code/modules/paperwork/faxmachine.dm b/code/modules/paperwork/faxmachine.dm index dc7ec847772..a0f515ac130 100644 --- a/code/modules/paperwork/faxmachine.dm +++ b/code/modules/paperwork/faxmachine.dm @@ -14,7 +14,6 @@ var/list/adminfaxes = list() //cache for faxes that have been sent to admins use_power = 1 idle_power_usage = 30 active_power_usage = 200 - frame_type = "fax" var/obj/item/weapon/card/id/scan = null // identification var/authenticated = 0 @@ -29,6 +28,16 @@ var/list/adminfaxes = list() //cache for faxes that have been sent to admins if( !(("[department]" in alldepartments) || ("[department]" in admin_departments)) ) alldepartments |= department +/obj/machinery/photocopier/faxmachine/map/New() + ..() + circuit = new circuit(src) + component_parts = list() + component_parts += new /obj/item/weapon/stock_parts/scanning_module(src) + component_parts += new /obj/item/weapon/stock_parts/motor(src) + component_parts += new /obj/item/weapon/stock_parts/micro_laser(src) + component_parts += new /obj/item/weapon/stock_parts/matter_bin(src) + RefreshParts() + /obj/machinery/photocopier/faxmachine/attack_hand(mob/user as mob) user.set_machine(src) diff --git a/code/modules/paperwork/photocopier.dm b/code/modules/paperwork/photocopier.dm index f29883a54cd..dcee1fb3fa9 100644 --- a/code/modules/paperwork/photocopier.dm +++ b/code/modules/paperwork/photocopier.dm @@ -10,13 +10,13 @@ active_power_usage = 200 power_channel = EQUIP circuit = /obj/item/weapon/circuitboard/photocopier - frame_type = "photocopier" var/obj/item/copyitem = null //what's in the copier! var/copies = 1 //how many copies to print! var/toner = 30 //how much toner is left! woooooo~ var/maxcopies = 10 //how many copies can be copied at once- idea shamelessly stolen from bs12's copier! -/obj/machinery/photocopier/New() +/obj/machinery/photocopier/map/New() + circuit = new circuit(src) component_parts = list() component_parts += new /obj/item/weapon/stock_parts/scanning_module(src) component_parts += new /obj/item/weapon/stock_parts/motor(src) diff --git a/code/modules/power/batteryrack.dm b/code/modules/power/batteryrack.dm index 2d7f38e3b99..203227e613b 100644 --- a/code/modules/power/batteryrack.dm +++ b/code/modules/power/batteryrack.dm @@ -16,7 +16,6 @@ /obj/machinery/power/smes/batteryrack/New() ..() - add_parts() RefreshParts() return diff --git a/code/modules/power/power.dm b/code/modules/power/power.dm index 540e5a33675..4f34cd7effd 100644 --- a/code/modules/power/power.dm +++ b/code/modules/power/power.dm @@ -344,7 +344,7 @@ PN.trigger_warning(5) if(istype(M,/mob/living/carbon/human)) var/mob/living/carbon/human/H = M - if(H.species.siemens_coefficient == 0) + if(H.species.siemens_coefficient <= 0) return if(H.gloves) var/obj/item/clothing/gloves/G = H.gloves diff --git a/code/modules/power/smes.dm b/code/modules/power/smes.dm index 29714847151..9fc0f74290a 100644 --- a/code/modules/power/smes.dm +++ b/code/modules/power/smes.dm @@ -1,7 +1,7 @@ // the SMES // stores power -#define SMESRATE 0.05 +#define SMESRATE 0.03333 //translates Watt into Kilowattminutes with respect to machinery schedule_interval ~(2s*1W*1min/60s) #define SMESMAXCHARGELEVEL 250000 #define SMESMAXOUTPUT 250000 @@ -301,14 +301,17 @@ var/data[0] data["nameTag"] = name_tag data["storedCapacity"] = round(100.0*charge/capacity, 0.1) + data["storedCapacityAbs"] = round(charge/(1000*60), 0.1) + data["storedCapacityMax"] = round(capacity/(1000*60)) data["charging"] = inputting data["chargeMode"] = input_attempt - data["chargeLevel"] = input_level - data["chargeMax"] = input_level_max + data["chargeLevel"] = round(input_level/1000, 0.1) + data["chargeMax"] = round(input_level_max/1000) + data["chargeLoad"] = round(terminal.powernet.avail/1000, 0.1) data["outputOnline"] = output_attempt - data["outputLevel"] = output_level - data["outputMax"] = output_level_max - data["outputLoad"] = round(output_used) + data["outputLevel"] = round(output_level/1000, 0.1) + data["outputMax"] = round(output_level_max/1000) + data["outputLoad"] = round(output_used/1000, 0.1) if(outputting) data["outputting"] = 2 // smes is outputting @@ -351,7 +354,7 @@ if("max") input_level = input_level_max if("set") - input_level = input(usr, "Enter new input level (0-[input_level_max])", "SMES Input Power Control", input_level) as num + input_level = (input(usr, "Enter new input level (0-[input_level_max/1000] kW)", "SMES Input Power Control", input_level/1000) as num) * 1000 input_level = max(0, min(input_level_max, input_level)) // clamp to range else if( href_list["output"] ) @@ -361,7 +364,7 @@ if("max") output_level = output_level_max if("set") - output_level = input(usr, "Enter new output level (0-[output_level_max])", "SMES Output Power Control", output_level) as num + output_level = (input(usr, "Enter new output level (0-[output_level_max/1000] kW)", "SMES Output Power Control", output_level/1000) as num) * 1000 output_level = max(0, min(output_level_max, output_level)) // clamp to range investigate_log("input/output; on":"off"] | Input-mode: [input_attempt?"auto":"off"] by [usr.key]","singulo") diff --git a/code/modules/power/smes_construction.dm b/code/modules/power/smes_construction.dm index f14c084882a..0ce32da396e 100644 --- a/code/modules/power/smes_construction.dm +++ b/code/modules/power/smes_construction.dm @@ -12,29 +12,29 @@ icon = 'icons/obj/stock_parts.dmi' icon_state = "smes_coil" // Just few icons patched together. If someone wants to make better icon, feel free to do so! w_class = 4.0 // It's LARGE (backpack size) - var/ChargeCapacity = 5000000 - var/IOCapacity = 250000 + var/ChargeCapacity = 6000000 // 100 kWh + var/IOCapacity = 250000 // 250 kW // 20% Charge Capacity, 60% I/O Capacity. Used for substation/outpost SMESs. /obj/item/weapon/smes_coil/weak name = "basic superconductive magnetic coil" desc = "Cheaper model of standard superconductive magnetic coil. It's capacity and I/O rating are considerably lower." - ChargeCapacity = 1000000 - IOCapacity = 150000 + ChargeCapacity = 1200000 // 20 kWh + IOCapacity = 150000 // 150 kW // 1000% Charge Capacity, 20% I/O Capacity /obj/item/weapon/smes_coil/super_capacity name = "superconductive capacitance coil" desc = "Specialised version of standard superconductive magnetic coil. This one has significantly stronger containment field, allowing for significantly larger power storage. It's IO rating is much lower, however." - ChargeCapacity = 50000000 - IOCapacity = 50000 + ChargeCapacity = 60000000 // 1000 kWh + IOCapacity = 50000 // 50 kW // 10% Charge Capacity, 400% I/O Capacity. Technically turns SMES into large super capacitor.Ideal for shields. /obj/item/weapon/smes_coil/super_io name = "superconductive transmission coil" desc = "Specialised version of standard superconductive magnetic coil. While this one won't store almost any power, it rapidly transfers power, making it useful in systems which require large throughput." - ChargeCapacity = 500000 - IOCapacity = 1000000 + ChargeCapacity = 600000 // 10 kWh + IOCapacity = 1000000 // 1000 kW // SMES SUBTYPES - THESE ARE MAPPED IN AND CONTAIN DIFFERENT TYPES OF COILS diff --git a/code/modules/projectiles/ammunition/boxes.dm b/code/modules/projectiles/ammunition/boxes.dm index fac7b0f9a55..a2b1dd7272b 100644 --- a/code/modules/projectiles/ammunition/boxes.dm +++ b/code/modules/projectiles/ammunition/boxes.dm @@ -142,6 +142,10 @@ name = "magazine (5.56mm practice)" ammo_type = /obj/item/ammo_casing/a556p +/obj/item/ammo_magazine/a556/ap + name = "magazine (5.56mm armor-piercing)" + ammo_type = /obj/item/ammo_casing/a556/ap + /obj/item/ammo_magazine/a50 name = "magazine (.50)" icon_state = "50ae" @@ -179,6 +183,10 @@ max_ammo = 50 multiple_sprites = 1 +/obj/item/ammo_magazine/a762/ap + name = "magazine box (7.62mm armor-piercing)" + ammo_type = /obj/item/ammo_casing/a762/ap + /obj/item/ammo_magazine/a762/empty initial_ammo = 0 @@ -192,6 +200,10 @@ max_ammo = 20 multiple_sprites = 1 +/obj/item/ammo_magazine/c762/ap + name = "magazine (7.62mm armor-piercing)" + ammo_type = /obj/item/ammo_casing/a762/ap + /obj/item/ammo_magazine/caps name = "speed loader (caps)" icon_state = "T38" @@ -201,6 +213,7 @@ matter = list(DEFAULT_WALL_MATERIAL = 600) max_ammo = 7 multiple_sprites = 1 + /obj/item/ammo_magazine/g12 name = "magazine (12 gauge)" icon_state = "g12" diff --git a/code/modules/projectiles/ammunition/bullets.dm b/code/modules/projectiles/ammunition/bullets.dm index 52c44af1d1f..6050fb2c65a 100644 --- a/code/modules/projectiles/ammunition/bullets.dm +++ b/code/modules/projectiles/ammunition/bullets.dm @@ -133,6 +133,11 @@ caliber = "a762" projectile_type = /obj/item/projectile/bullet/rifle/a762 +/obj/item/ammo_casing/a762/ap + desc = "A 7.62mm armor-piercing bullet casing." + caliber = "a762" + projectile_type = /obj/item/projectile/bullet/rifle/a762/ap + /obj/item/ammo_casing/a145 name = "shell casing" desc = "A 14.5mm shell." @@ -147,6 +152,11 @@ caliber = "a556" projectile_type = /obj/item/projectile/bullet/rifle/a556 +/obj/item/ammo_casing/a556/ap + desc = "A 5.56mm armor-piercing bullet casing." + caliber = "a556" + projectile_type = /obj/item/projectile/bullet/rifle/a556/ap + /obj/item/ammo_casing/a556p desc = "A 5.56mm practice bullet casing." caliber = "a556" diff --git a/code/modules/projectiles/gun.dm b/code/modules/projectiles/gun.dm index de6c67446ef..ab052834ec1 100644 --- a/code/modules/projectiles/gun.dm +++ b/code/modules/projectiles/gun.dm @@ -66,6 +66,7 @@ var/mode_name = null var/requires_two_hands var/wielded_icon = "gun_wielded" + var/one_handed_penalty = 0 // Penalty applied if someone fires a two-handed gun with one hand. var/next_fire_time = 0 @@ -182,8 +183,8 @@ var/held_disp_mod = 0 if(requires_two_hands) if(user.item_is_in_hands(src) && user.hands_are_full()) - held_acc_mod = -3 - held_disp_mod = 3 + held_acc_mod = held_acc_mod - one_handed_penalty + held_disp_mod = held_disp_mod - round(one_handed_penalty / 2) //actually attempt to shoot var/turf/targloc = get_turf(target) //cache this in case target gets deleted during shooting, e.g. if it was a securitron that got destroyed. @@ -211,6 +212,12 @@ target = targloc pointblank = 0 + // We do this down here, so we don't get the message if we fire an empty gun. + if(requires_two_hands) + if(user.item_is_in_hands(src) && user.hands_are_full()) + if(one_handed_penalty >= 2) + user << "You struggle to keep \the [src] pointed at the correct position with just one hand!" + admin_attack_log(usr, attacker_message="Fired [src]", admin_message="fired a gun ([src]) (MODE: [src.mode_name]) [reflex ? "by reflex" : "manually"].") //update timing diff --git a/code/modules/projectiles/guns/energy/laser.dm b/code/modules/projectiles/guns/energy/laser.dm index 466170e52a4..8cd8f72a36b 100644 --- a/code/modules/projectiles/guns/energy/laser.dm +++ b/code/modules/projectiles/guns/energy/laser.dm @@ -1,6 +1,7 @@ /obj/item/weapon/gun/energy/laser name = "laser carbine" - desc = "An Hesphaistos Industries G40E carbine, designed to kill with concentrated energy blasts." + desc = "An Hesphaistos Industries G40E carbine, designed to kill with concentrated energy blasts. This varient has the ability to \ + switch between standard fire and a more efficent but weaker 'suppressive' fire." icon_state = "laser" item_state = "laser" fire_sound = 'sound/weapons/Laser.ogg' @@ -10,16 +11,29 @@ origin_tech = list(TECH_COMBAT = 3, TECH_MAGNET = 2) matter = list(DEFAULT_WALL_MATERIAL = 2000) projectile_type = /obj/item/projectile/beam/midlaser +// requires_two_hands = 1 + one_handed_penalty = 2 + + firemodes = list( + list(mode_name="normal", projectile_type=/obj/item/projectile/beam/midlaser, charge_cost = 200), + list(mode_name="suppressive", projectile_type=/obj/item/projectile/beam/weaklaser, charge_cost = 50), + ) /obj/item/weapon/gun/energy/laser/mounted self_recharge = 1 use_external_power = 1 + requires_two_hands = 0 // Not sure if two-handing gets checked for mounted weapons, but better safe than sorry. /obj/item/weapon/gun/energy/laser/practice name = "practice laser carbine" desc = "A modified version of the HI G40E, this one fires less concentrated energy bolts designed for target practice." projectile_type = /obj/item/projectile/beam/practice + firemodes = list( + list(mode_name="normal", projectile_type=/obj/item/projectile/beam/practice, charge_cost = 200), + list(mode_name="suppressive", projectile_type=/obj/item/projectile/beam/practice, charge_cost = 50), + ) + obj/item/weapon/gun/energy/retro name = "retro laser" icon_state = "retro" @@ -47,7 +61,8 @@ obj/item/weapon/gun/energy/retro /obj/item/weapon/gun/energy/lasercannon name = "laser cannon" - desc = "With the laser cannon, the lasing medium is enclosed in a tube lined with uranium-235 and subjected to high neutron flux in a nuclear reactor core. This incredible technology may help YOU achieve high excitation rates with small laser volumes!" + desc = "With the laser cannon, the lasing medium is enclosed in a tube lined with uranium-235 and subjected to high neutron \ + flux in a nuclear reactor core. This incredible technology may help YOU achieve high excitation rates with small laser volumes!" icon_state = "lasercannon" item_state = null fire_sound = 'sound/weapons/lasercannonfire.ogg' @@ -55,30 +70,36 @@ obj/item/weapon/gun/energy/retro slot_flags = SLOT_BELT|SLOT_BACK projectile_type = /obj/item/projectile/beam/heavylaser charge_cost = 400 - max_shots = 5 + max_shots = 6 fire_delay = 20 +// requires_two_hands = 1 + one_handed_penalty = 6 // The thing's heavy and huge. + accuracy = 2 /obj/item/weapon/gun/energy/lasercannon/mounted name = "mounted laser cannon" self_recharge = 1 use_external_power = 1 recharge_time = 10 + accuracy = 0 // Mounted cannons are just fine the way they are. + requires_two_hands = 0 // Not sure if two-handing gets checked for mounted weapons, but better safe than sorry. /obj/item/weapon/gun/energy/xray name = "xray laser gun" - desc = "A high-power laser gun capable of expelling concentrated xray blasts." + desc = "A high-power laser gun capable of expelling concentrated xray blasts, which are able to penetrate matter easier than \ + standard photonic beams, resulting in an effective 'anti-armor' energy weapon." icon_state = "xray" item_state = "xray" fire_sound = 'sound/weapons/laser3.ogg' - origin_tech = list(TECH_COMBAT = 5, TECH_MATERIAL = 3, TECH_MAGNET = 2, TECH_ILLEGAL = 2) + origin_tech = list(TECH_COMBAT = 5, TECH_MATERIAL = 3, TECH_MAGNET = 2) projectile_type = /obj/item/projectile/beam/xray charge_cost = 100 - max_shots = 20 - fire_delay = 1 + max_shots = 12 /obj/item/weapon/gun/energy/sniperrifle name = "marksman energy rifle" - desc = "The HI DMR 9E is an older design of Hesphaistos Industries. A designated marksman rifle capable of shooting powerful ionized beams, this is a weapon to kill from a distance." + desc = "The HI DMR 9E is an older design of Hesphaistos Industries. A designated marksman rifle capable of shooting powerful \ + ionized beams, this is a weapon to kill from a distance." icon_state = "sniper" item_state = "laser" fire_sound = 'sound/weapons/marauder.ogg' @@ -92,6 +113,8 @@ obj/item/weapon/gun/energy/retro w_class = 5 // So it can't fit in a backpack. accuracy = -3 //shooting at the hip scoped_accuracy = 0 +// requires_two_hands = 1 + one_handed_penalty = 4 // The weapon itself is heavy, and the long barrel makes it hard to hold steady with just one hand. /obj/item/weapon/gun/energy/sniperrifle/verb/scope() set category = "Object" diff --git a/code/modules/projectiles/guns/energy/nuclear.dm b/code/modules/projectiles/guns/energy/nuclear.dm index f1068774710..5e1612a50b2 100644 --- a/code/modules/projectiles/guns/energy/nuclear.dm +++ b/code/modules/projectiles/guns/energy/nuclear.dm @@ -5,13 +5,14 @@ item_state = null //so the human update icon uses the icon_state instead. fire_sound = 'sound/weapons/Taser.ogg' max_shots = 10 + fire_delay = 10 // Handguns should be inferior to two-handed weapons. projectile_type = /obj/item/projectile/beam/stun origin_tech = list(TECH_COMBAT = 3, TECH_MAGNET = 2) modifystate = "energystun" firemodes = list( - list(mode_name="stun", projectile_type=/obj/item/projectile/beam/stun, modifystate="energystun", fire_sound='sound/weapons/Taser.ogg'), + list(mode_name="stun", projectile_type=/obj/item/projectile/beam/stun/weak, modifystate="energystun", fire_sound='sound/weapons/Taser.ogg'), list(mode_name="lethal", projectile_type=/obj/item/projectile/beam, modifystate="energykill", fire_sound='sound/weapons/Laser.ogg'), ) @@ -33,6 +34,9 @@ origin_tech = list(TECH_COMBAT = 4, TECH_MAGNET = 2, TECH_ILLEGAL = 3) modifystate = "fm-2tstun" +// requires_two_hands = 1 + one_handed_penalty = 2 + firemodes = list( list(mode_name="stun", projectile_type=/obj/item/projectile/beam/stun/weak, modifystate="fm-2tstun", fire_sound='sound/weapons/Taser.ogg'), list(mode_name="stun 3-round bursts", burst=3, fire_delay=null, move_delay=4, burst_accuracy=list(0,-1,-1), dispersion=list(0.0, 0.6, 1.0), projectile_type=/obj/item/projectile/beam/stun, modifystate="fm-2tstun", fire_sound='sound/weapons/Taser.ogg'), @@ -50,6 +54,9 @@ self_recharge = 1 modifystate = null +// requires_two_hands = 1 + one_handed_penalty = 1 // It's rather bulky, so holding it in one hand is a little harder than with two, however it's not 'required'. + firemodes = list( list(mode_name="stun", projectile_type=/obj/item/projectile/beam/stun, fire_sound='sound/weapons/Taser.ogg'), list(mode_name="lethal", projectile_type=/obj/item/projectile/beam, fire_sound='sound/weapons/Laser.ogg'), diff --git a/code/modules/projectiles/guns/energy/pulse.dm b/code/modules/projectiles/guns/energy/pulse.dm index 98817fede33..ab134d34065 100644 --- a/code/modules/projectiles/guns/energy/pulse.dm +++ b/code/modules/projectiles/guns/energy/pulse.dm @@ -13,12 +13,12 @@ firemodes = list( list(mode_name="stun", projectile_type=/obj/item/projectile/beam/stun, fire_sound='sound/weapons/Taser.ogg', fire_delay=null, charge_cost=null), list(mode_name="lethal", projectile_type=/obj/item/projectile/beam, fire_sound='sound/weapons/Laser.ogg', fire_delay=null, charge_cost=null), - list(mode_name="DESTROY", projectile_type=/obj/item/projectile/beam/pulse, fire_sound='sound/weapons/pulse.ogg', fire_delay=25, charge_cost=400), + list(mode_name="DESTROY", projectile_type=/obj/item/projectile/beam/pulse, fire_sound='sound/weapons/pulse.ogg', fire_delay=null, charge_cost=100), ) /obj/item/weapon/gun/energy/pulse_rifle/mounted self_recharge = 1 - use_external_power = 1 + use_external_power = 1 /obj/item/weapon/gun/energy/pulse_rifle/destroyer name = "pulse destroyer" diff --git a/code/modules/projectiles/guns/energy/stun.dm b/code/modules/projectiles/guns/energy/stun.dm index 72392da29aa..156083b94aa 100644 --- a/code/modules/projectiles/guns/energy/stun.dm +++ b/code/modules/projectiles/guns/energy/stun.dm @@ -1,10 +1,10 @@ /obj/item/weapon/gun/energy/taser name = "taser gun" - desc = "The NT Mk30 NL is a small, low capacity gun used for non-lethal takedowns. Produced by NT, it's actually a licensed version of a W-T design." + desc = "The NT Mk30 NL is a small gun used for non-lethal takedowns. Produced by NT, it's actually a licensed version of a W-T design." icon_state = "taser" item_state = null //so the human update icon uses the icon_state instead. fire_sound = 'sound/weapons/Taser.ogg' - max_shots = 5 + max_shots = 10 projectile_type = /obj/item/projectile/beam/stun /obj/item/weapon/gun/energy/taser/mounted @@ -25,7 +25,7 @@ item_state = "stunrevolver" fire_sound = 'sound/weapons/Gunshot.ogg' origin_tech = list(TECH_COMBAT = 3, TECH_MATERIAL = 3, TECH_POWER = 2) - projectile_type = /obj/item/projectile/energy/electrode + projectile_type = /obj/item/projectile/energy/electrode/strong max_shots = 8 diff --git a/code/modules/projectiles/guns/projectile/automatic.dm b/code/modules/projectiles/guns/projectile/automatic.dm index 53f77feed2d..975f48ae7b2 100644 --- a/code/modules/projectiles/guns/projectile/automatic.dm +++ b/code/modules/projectiles/guns/projectile/automatic.dm @@ -11,6 +11,10 @@ ammo_type = /obj/item/ammo_casing/c9mm multi_aim = 1 burst_delay = 2 + +// requires_two_hands = 1 + one_handed_penalty = 1 + firemodes = list( list(mode_name="semiauto", burst=1, fire_delay=0, move_delay=null, burst_accuracy=null, dispersion=null), list(mode_name="3-round bursts", burst=3, fire_delay=null, move_delay=4, burst_accuracy=list(0,-1,-1), dispersion=list(0.0, 0.6, 1.0)), @@ -44,6 +48,9 @@ auto_eject = 1 auto_eject_sound = 'sound/weapons/smg_empty_alarm.ogg' +// requires_two_hands = 1 + one_handed_penalty = 2 + /obj/item/weapon/gun/projectile/automatic/c20r/update_icon() ..() if(ammo_magazine) @@ -65,6 +72,8 @@ load_method = MAGAZINE magazine_type = /obj/item/ammo_magazine/c762 + one_handed_penalty = 4 + firemodes = list( list(mode_name="semiauto", burst=1, fire_delay=0, move_delay=null, burst_accuracy=null, dispersion=null), list(mode_name="3-round bursts", burst=3, fire_delay=null, move_delay=6, burst_accuracy=list(0,-1,-2), dispersion=list(0.0, 0.6, 0.6)), @@ -115,6 +124,8 @@ auto_eject = 1 auto_eject_sound = 'sound/weapons/smg_empty_alarm.ogg' + one_handed_penalty = 4 + burst_delay = 4 firemodes = list( list(mode_name="semiauto", burst=1, fire_delay=0, move_delay=null, use_launcher=null, burst_accuracy=null, dispersion=null), @@ -149,12 +160,13 @@ else ..() -/obj/item/weapon/gun/projectile/automatic/z8/update_icon() +/obj/item/weapon/gun/projectile/automatic/z8/update_icon(var/ignore_inhands) ..() if(ammo_magazine) icon_state = "carbine-[round(ammo_magazine.stored_ammo.len,2)]" else icon_state = "carbine" + if(!ignore_inhands) update_held_icon() return /obj/item/weapon/gun/projectile/automatic/z8/examine(mob/user) @@ -181,6 +193,8 @@ load_method = MAGAZINE magazine_type = /obj/item/ammo_magazine/a762 + one_handed_penalty = 6 + firemodes = list( list(mode_name="semiauto", burst=1, fire_delay=0, move_delay=null, burst_accuracy=null, dispersion=null), list(mode_name="3-round bursts", burst=3, fire_delay=null, move_delay=4, burst_accuracy=list(0,-1,-1), dispersion=list(0.0, 0.6, 1.0)), @@ -240,6 +254,8 @@ load_method = MAGAZINE magazine_type = /obj/item/ammo_magazine/g12 + one_handed_penalty = 4 + firemodes = list( list(mode_name="semiauto", burst=1, fire_delay=0), list(mode_name="3-round bursts", burst=3, move_delay=6, burst_accuracy = list(0,-1,-1,-2,-2), dispersion = list(0.0, 0.6, 0.6)), diff --git a/code/modules/projectiles/projectile/beams.dm b/code/modules/projectiles/projectile/beams.dm index a1048ab7631..f564b399ad6 100644 --- a/code/modules/projectiles/projectile/beams.dm +++ b/code/modules/projectiles/projectile/beams.dm @@ -23,6 +23,11 @@ check_armour = "laser" eyeblur = 2 +/obj/item/projectile/beam/weaklaser + name = "weak laser" + icon_state = "laser" + damage = 15 + /obj/item/projectile/beam/midlaser damage = 40 armor_penetration = 10 @@ -37,15 +42,6 @@ tracer_type = /obj/effect/projectile/laser_heavy/tracer impact_type = /obj/effect/projectile/laser_heavy/impact -/obj/item/projectile/beam/weaklaser - name = "weak laser" - icon_state = "laser" - damage = 15 - - muzzle_type = /obj/effect/projectile/laser_heavy/muzzle - tracer_type = /obj/effect/projectile/laser_heavy/tracer - impact_type = /obj/effect/projectile/laser_heavy/impact - /obj/item/projectile/beam/xray name = "xray beam" icon_state = "xray" @@ -160,11 +156,4 @@ /obj/item/projectile/beam/stun/weak name = "weak stun beam" icon_state = "stun" - nodamage = 1 - taser_effect = 1 agony = 25 - damage_type = HALLOSS - - muzzle_type = /obj/effect/projectile/stun/muzzle - tracer_type = /obj/effect/projectile/stun/tracer - impact_type = /obj/effect/projectile/stun/impact diff --git a/code/modules/projectiles/projectile/bullets.dm b/code/modules/projectiles/projectile/bullets.dm index a78eca0d516..ca2ab63eef2 100644 --- a/code/modules/projectiles/projectile/bullets.dm +++ b/code/modules/projectiles/projectile/bullets.dm @@ -169,15 +169,23 @@ /* "Rifle" rounds */ /obj/item/projectile/bullet/rifle - armor_penetration = 20 + armor_penetration = 15 penetrating = 1 /obj/item/projectile/bullet/rifle/a762 damage = 25 +/obj/item/projectile/bullet/rifle/a762/ap + damage = 20 + armor_penetration = 50 // At 40 or more armor, this will do more damage than standard rounds. + /obj/item/projectile/bullet/rifle/a556 damage = 35 +/obj/item/projectile/bullet/rifle/a556/ap + damage = 30 + armor_penetration = 50 // At 30 or more armor, this will do more damage than standard rounds. + /obj/item/projectile/bullet/rifle/a145 damage = 80 stun = 3 diff --git a/code/modules/projectiles/projectile/energy.dm b/code/modules/projectiles/projectile/energy.dm index 063acf750b6..d56c298b6ca 100644 --- a/code/modules/projectiles/projectile/energy.dm +++ b/code/modules/projectiles/projectile/energy.dm @@ -28,7 +28,7 @@ //snap pop playsound(src, 'sound/effects/snap.ogg', 50, 1) src.visible_message("\The [src] explodes in a bright flash!") - + new /obj/effect/decal/cleanable/ash(src.loc) //always use src.loc so that ash doesn't end up inside windows new /obj/effect/effect/sparks(T) new /obj/effect/effect/smoke/illumination(T, brightness=max(flash_range*2, brightness), lifetime=light_duration) @@ -49,6 +49,9 @@ damage_type = HALLOSS //Damage will be handled on the MOB side, to prevent window shattering. +/obj/item/projectile/energy/electrode/strong + agony = 55 + /obj/item/projectile/energy/electrode/stunshot name = "stunshot" damage = 5 diff --git a/code/modules/reagents/Chemistry-Machinery.dm b/code/modules/reagents/Chemistry-Machinery.dm index d69bd5a13c4..b58f1384da7 100644 --- a/code/modules/reagents/Chemistry-Machinery.dm +++ b/code/modules/reagents/Chemistry-Machinery.dm @@ -21,7 +21,7 @@ var/obj/item/weapon/storage/pill_bottle/loaded_pill_bottle = null var/mode = 0 var/condi = 0 - var/useramount = 30 // Last used amount + var/useramount = 15 // Last used amount var/pillamount = 10 var/bottlesprite = "bottle-1" //yes, strings var/pillsprite = "1" @@ -265,6 +265,8 @@ dat += "(1) " dat += "(5) " dat += "(10) " + dat += "(30) " + dat += "(60) " dat += "(All) " dat += "(Custom)
    " @@ -276,6 +278,8 @@ dat += "(1) " dat += "(5) " dat += "(10) " + dat += "(30) " + dat += "(60) " dat += "(All) " dat += "(Custom)
    " else diff --git a/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Toxins.dm b/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Toxins.dm index 8a6d50ab299..0022026a673 100644 --- a/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Toxins.dm +++ b/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Toxins.dm @@ -476,9 +476,11 @@ /datum/reagent/slimetoxin/affect_blood(var/mob/living/carbon/M, var/alien, var/removed) if(ishuman(M)) var/mob/living/carbon/human/H = M - if(H.species.name != "Slime") + if(H.species.name != "Promethean") M << "Your flesh rapidly mutates!" - H.set_species("Slime") + H.set_species("Promethean") + H.shapeshifter_set_colour("#05FF9B") + H.verbs -= /mob/living/carbon/human/proc/shapeshifter_select_colour /datum/reagent/aslimetoxin name = "Advanced Mutation Toxin" diff --git a/code/modules/reagents/reagent_containers/food/drinks/drinkingglass.dm b/code/modules/reagents/reagent_containers/food/drinks/drinkingglass.dm index 63a467dcfde..9141efbc1e7 100644 --- a/code/modules/reagents/reagent_containers/food/drinks/drinkingglass.dm +++ b/code/modules/reagents/reagent_containers/food/drinks/drinkingglass.dm @@ -8,6 +8,7 @@ volume = 30 unacidable = 1 //glass center_of_mass = list("x"=16, "y"=10) + matter = list("glass" = 500) on_reagent_change() /*if(reagents.reagent_list.len > 1 ) diff --git a/code/modules/reagents/reagent_containers/food/snacks.dm b/code/modules/reagents/reagent_containers/food/snacks.dm index 5bde55f24dc..3041ec99577 100644 --- a/code/modules/reagents/reagent_containers/food/snacks.dm +++ b/code/modules/reagents/reagent_containers/food/snacks.dm @@ -2892,6 +2892,19 @@ var/list/boxes = list() // If the boxes are stacked, they come here var/boxtag = "" + +/obj/item/pizzabox/proc/closepizzabox() + + if( boxes.len > 0 ) + return + + open = !open + + if( open && pizza ) + ismessy = 1 + + update_icon() + /obj/item/pizzabox/update_icon() overlays = list() @@ -2970,15 +2983,12 @@ /obj/item/pizzabox/attack_self( mob/user as mob ) - if( boxes.len > 0 ) - return + closepizzabox() - open = !open +/obj/item/pizzabox/AltClick() - if( open && pizza ) - ismessy = 1 - - update_icon() + if(Adjacent(usr)) + closepizzabox() /obj/item/pizzabox/attackby( obj/item/I as obj, mob/user as mob ) if( istype(I, /obj/item/pizzabox/) ) diff --git a/code/modules/recycling/conveyor2.dm b/code/modules/recycling/conveyor2.dm index 0e591e97b0b..d813e713290 100644 --- a/code/modules/recycling/conveyor2.dm +++ b/code/modules/recycling/conveyor2.dm @@ -9,7 +9,6 @@ layer = 2 // so they appear under stuff anchored = 1 circuit = /obj/item/weapon/circuitboard/conveyor - frame_type = "conveyor" var/operating = 0 // 1 if running forward, -1 if backwards, 0 if off var/operable = 1 // true if can operate (no broken segments in this belt run) var/forwards // this is the default (forward) direction, set by the map dir @@ -39,6 +38,9 @@ operating = 1 setmove() +/obj/machinery/conveyor/map/New() + ..() + circuit = new circuit(src) component_parts = list() component_parts += new /obj/item/weapon/stock_parts/gear(src) component_parts += new /obj/item/weapon/stock_parts/motor(src) diff --git a/code/modules/research/circuitprinter.dm b/code/modules/research/circuitprinter.dm index 6831034edf1..1a5b1b30669 100644 --- a/code/modules/research/circuitprinter.dm +++ b/code/modules/research/circuitprinter.dm @@ -22,8 +22,9 @@ using metal and glass, it uses glass and reagents (usually sulphuric acid). idle_power_usage = 30 active_power_usage = 2500 -/obj/machinery/r_n_d/circuit_imprinter/New() +/obj/machinery/r_n_d/circuit_imprinter/map/New() ..() + circuit = new circuit() component_parts = list() component_parts += new /obj/item/weapon/stock_parts/matter_bin(src) component_parts += new /obj/item/weapon/stock_parts/manipulator(src) diff --git a/code/modules/research/destructive_analyzer.dm b/code/modules/research/destructive_analyzer.dm index 3fbb141f7e8..98923bc89d5 100644 --- a/code/modules/research/destructive_analyzer.dm +++ b/code/modules/research/destructive_analyzer.dm @@ -16,8 +16,9 @@ Note: Must be placed within 3 tiles of the R&D Console idle_power_usage = 30 active_power_usage = 2500 -/obj/machinery/r_n_d/destructive_analyzer/New() +/obj/machinery/r_n_d/destructive_analyzer/map/New() ..() + circuit = new circuit() component_parts = list() component_parts += new /obj/item/weapon/stock_parts/scanning_module(src) component_parts += new /obj/item/weapon/stock_parts/manipulator(src) diff --git a/code/modules/research/protolathe.dm b/code/modules/research/protolathe.dm index 7d5bae00caa..f13f6b6e66a 100644 --- a/code/modules/research/protolathe.dm +++ b/code/modules/research/protolathe.dm @@ -17,8 +17,9 @@ materials = list(DEFAULT_WALL_MATERIAL = 0, "glass" = 0, "gold" = 0, "silver" = 0, "phoron" = 0, "uranium" = 0, "diamond" = 0) -/obj/machinery/r_n_d/protolathe/New() +/obj/machinery/r_n_d/protolathe/map/New() ..() + circuit = new circuit() component_parts = list() component_parts += new /obj/item/weapon/stock_parts/matter_bin(src) component_parts += new /obj/item/weapon/stock_parts/matter_bin(src) diff --git a/code/modules/research/server.dm b/code/modules/research/server.dm index fcaaa7a2128..81b298e43d3 100644 --- a/code/modules/research/server.dm +++ b/code/modules/research/server.dm @@ -17,12 +17,16 @@ /obj/machinery/r_n_d/server/New() ..() + initialize(); + +/obj/machinery/r_n_d/server/map/New() + circuit = new circuit() component_parts = list() component_parts += new /obj/item/weapon/stock_parts/scanning_module(src) component_parts += new /obj/item/stack/cable_coil(src) component_parts += new /obj/item/stack/cable_coil(src) RefreshParts() - initialize(); + ..() /obj/machinery/r_n_d/server/Destroy() griefProtection() @@ -123,6 +127,15 @@ name = "Central R&D Database" server_id = -1 +/obj/machinery/r_n_d/server/centcom/map/New() + circuit = new circuit() + component_parts = list() + component_parts += new /obj/item/weapon/stock_parts/scanning_module(src) + component_parts += new /obj/item/stack/cable_coil(src) + component_parts += new /obj/item/stack/cable_coil(src) + RefreshParts() + ..() + /obj/machinery/r_n_d/server/centcom/initialize() ..() var/list/no_id_servers = list() @@ -306,8 +319,26 @@ id_with_download_string = "1;2" server_id = 2 +/obj/machinery/r_n_d/server/robotics/map/New() + circuit = new circuit() + component_parts = list() + component_parts += new /obj/item/weapon/stock_parts/scanning_module(src) + component_parts += new /obj/item/stack/cable_coil(src) + component_parts += new /obj/item/stack/cable_coil(src) + RefreshParts() + ..() + /obj/machinery/r_n_d/server/core name = "Core R&D Server" id_with_upload_string = "1" id_with_download_string = "1" server_id = 1 + +/obj/machinery/r_n_d/server/core/map/New() + circuit = new circuit() + component_parts = list() + component_parts += new /obj/item/weapon/stock_parts/scanning_module(src) + component_parts += new /obj/item/stack/cable_coil(src) + component_parts += new /obj/item/stack/cable_coil(src) + RefreshParts() + ..() \ No newline at end of file diff --git a/code/modules/surgery/limb_reattach.dm b/code/modules/surgery/limb_reattach.dm index aee13ede832..eadd4db655a 100644 --- a/code/modules/surgery/limb_reattach.dm +++ b/code/modules/surgery/limb_reattach.dm @@ -32,7 +32,6 @@ "You have attached [target]'s [E.name] to the [E.amputation_point].") user.drop_from_inventory(E) E.replaced(target) - E.loc = target target.update_body() target.updatehealth() target.UpdateDamageIcon() diff --git a/code/modules/surgery/robotics.dm b/code/modules/surgery/robotics.dm index 96ff090b366..037eb933b25 100644 --- a/code/modules/surgery/robotics.dm +++ b/code/modules/surgery/robotics.dm @@ -187,13 +187,13 @@ user.visible_message("[user] finishes splicing cable into [target]'s [affected.name].", \ "You finishes splicing new cable into [target]'s [affected.name].") affected.heal_damage(0,rand(30,50),1,1) + affected.disfigured = 0 fail_step(mob/living/user, mob/living/carbon/human/target, target_zone, obj/item/tool) var/obj/item/organ/external/affected = target.get_organ(target_zone) user.visible_message("[user] causes a short circuit in [target]'s [affected.name]!", "You cause a short circuit in [target]'s [affected.name]!") target.apply_damage(rand(5,10), BURN, affected) - affected.disfigured = 0 /datum/surgery_step/robotics/fix_organ_robotic //For artificial organs allowed_tools = list( @@ -427,4 +427,4 @@ fail_step(mob/living/user, mob/living/carbon/human/target, target_zone, obj/item/tool) user.visible_message("[user]'s hand slips.", \ - "Your hand slips.") \ No newline at end of file + "Your hand slips.") diff --git a/code/modules/surgery/surgery.dm b/code/modules/surgery/surgery.dm index cc56b311b59..e582d1222f7 100644 --- a/code/modules/surgery/surgery.dm +++ b/code/modules/surgery/surgery.dm @@ -110,7 +110,6 @@ proc/do_surgery(mob/living/carbon/M, mob/living/user, obj/item/tool) if (user.a_intent == I_HELP) user << "You can't see any useful way to use [tool] on [M]." - return 1 return 0 proc/sort_surgeries() diff --git a/html/browser/common.css b/html/browser/common.css index 1de45bd9536..9f2f579908e 100644 --- a/html/browser/common.css +++ b/html/browser/common.css @@ -23,6 +23,7 @@ a, a:link, a:visited, a:active, .linkOn, .linkOff padding: 1px 4px 1px 4px; margin: 0 2px 0 0; cursor:default; + white-space:nowrap; } a:hover diff --git a/html/changelog.html b/html/changelog.html index c743aadeefa..38b21660025 100644 --- a/html/changelog.html +++ b/html/changelog.html @@ -53,6 +53,29 @@ -->
    +

    05 May 2016

    +

    Datraen updated:

    +
      +
    • Added three mixed modes, 'Mercenaries & Wizard', 'Mercenaries & Renegades', and 'Traitors & Renegades'.
    • +
    +

    Hubblenaut updated:

    +
      +
    • Hydroponics vendor and biogenerator offer full bottles of fertilizer. Prices and amount available adjusted to accomodate.
    • +
    +

    Kelenius updated:

    +
      +
    • Move delay after clicking has been removed.
    • +
    +

    PsiOmegaDelta updated:

    +
      +
    • Can now prefill the loadout flask and vacuum-flask with a relevant liquid of your choice.
    • +
    +

    Yoshax updated:

    +
      +
    • Splits gender into biological gender and gender identity. Biological gender modifies the sprite (for between male and female) and gender identity determines what pronouns show up when examined or suchlike. Both are displayed in medical records and such.
    • +
    • Smoke grenades can now have their smoke color set by using a multitool on them.
    • +
    +

    17 April 2016

    Datraen updated:

      diff --git a/html/changelogs/.all_changelog.yml b/html/changelogs/.all_changelog.yml index 5a36a0a5b7c..eb9a43d8ae7 100644 --- a/html/changelogs/.all_changelog.yml +++ b/html/changelogs/.all_changelog.yml @@ -2238,3 +2238,22 @@ DO NOT EDIT THIS FILE BY HAND! AUTOMATICALLY GENERATED BY ss13_genchangelog.py. - rscadd: Bulky items can now go in your backpack, however it will require twice the space of a normal sized item. - rscdel: Spacesuits, RIGs, and sniper rifles made heavier. +2016-05-05: + Datraen: + - rscadd: Added three mixed modes, 'Mercenaries & Wizard', 'Mercenaries & Renegades', + and 'Traitors & Renegades'. + Hubblenaut: + - tweak: Hydroponics vendor and biogenerator offer full bottles of fertilizer. Prices + and amount available adjusted to accomodate. + Kelenius: + - tweak: Move delay after clicking has been removed. + PsiOmegaDelta: + - rscadd: Can now prefill the loadout flask and vacuum-flask with a relevant liquid + of your choice. + Yoshax: + - tweak: 'Splits gender into biological gender and gender identity. Biological gender + modifies the sprite (for between male and female) and gender identity determines + what pronouns show up when examined or suchlike. Both are displayed in medical + records and such. ' + - tweak: Smoke grenades can now have their smoke color set by using a multitool + on them. diff --git a/html/changelogs/Dat-MoreMixedModes.yml b/html/changelogs/Dat-MoreMixedModes.yml deleted file mode 100644 index 2be981df6a8..00000000000 --- a/html/changelogs/Dat-MoreMixedModes.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: Datraen -delete-after: True -changes: - - rscadd: "Added three mixed modes, 'Mercenaries & Wizard', 'Mercenaries & Renegades', and 'Traitors & Renegades'." diff --git a/html/changelogs/PsiOmegaDelta-LoadoutDrinks.yml b/html/changelogs/PsiOmegaDelta-LoadoutDrinks.yml deleted file mode 100644 index 50927ecb26f..00000000000 --- a/html/changelogs/PsiOmegaDelta-LoadoutDrinks.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: PsiOmegaDelta -delete-after: True -changes: - - rscadd: "Can now prefill the loadout flask and vacuum-flask with a relevant liquid of your choice." diff --git a/html/changelogs/Hubblenaut-hydro.yml b/html/changelogs/Yoshax - carpetfix.yml similarity index 85% rename from html/changelogs/Hubblenaut-hydro.yml rename to html/changelogs/Yoshax - carpetfix.yml index dd0bb9fac6f..c295d9a0d2a 100644 --- a/html/changelogs/Hubblenaut-hydro.yml +++ b/html/changelogs/Yoshax - carpetfix.yml @@ -22,7 +22,7 @@ ################################# # Your name. -author: Hubblenaut +author: Yoshax # Optional: Remove this file after generating master changelog. Useful for PR changelogs that won't get used again. delete-after: True @@ -33,4 +33,5 @@ delete-after: True # 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: "Hydroponics vendor and biogenerator offer full bottles of fertilizer. Prices and amount available adjusted to accomodate." \ No newline at end of file + - bugfix: "Processing strata floor can now be pried up with a crowbar." + - bugfix: "Blue carpet can now also be removed with a crowbar, and has had it's ability to burn and have corners restored." diff --git a/html/changelogs/Yoshax - featuresandfixes.txt b/html/changelogs/Yoshax - featuresandfixes.txt new file mode 100644 index 00000000000..14389bfc929 --- /dev/null +++ b/html/changelogs/Yoshax - featuresandfixes.txt @@ -0,0 +1,40 @@ +################################ +# 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: Yoshax + +# 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: "Doubles the maximum length of records and names to 6144 & 52, resptively. Also increases book nelngth to 12288. (All numbers are in charatcers.) + - bugfix: "Makes various services in the antag uplink purchasable once again. This includes the fake crew arrival." + - bugifx: "Neckgrabs will no longer force people to the ground. In addition, weakened people can no longer resist." + - rscadd: "All vending machines now have a small chance of vending an additional item." + diff --git a/html/changelogs/Yoshax - smokefix.yml b/html/changelogs/Yoshax - smokefix.yml new file mode 100644 index 00000000000..4e5be137a9c --- /dev/null +++ b/html/changelogs/Yoshax - smokefix.yml @@ -0,0 +1,37 @@ +################################ +# 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: Yoshax + +# 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: "Smoke from smoke bombs now lasts approximately 3 times as long and spawns some more smoke to make a heavier cloud." + - bugfix: "Smoke from smoe bombs now properly does a small amount of oxloss. This damage is per cloud of smoke." \ No newline at end of file diff --git a/icons/mob/back.dmi b/icons/mob/back.dmi index 154dc56390b..51710554d13 100644 Binary files a/icons/mob/back.dmi and b/icons/mob/back.dmi differ diff --git a/icons/mob/ghost.dmi b/icons/mob/ghost.dmi new file mode 100644 index 00000000000..5f61e7a1e76 Binary files /dev/null and b/icons/mob/ghost.dmi differ diff --git a/icons/mob/items/lefthand.dmi b/icons/mob/items/lefthand.dmi index e43b3a0d872..f9e7ebdfa1e 100644 Binary files a/icons/mob/items/lefthand.dmi and b/icons/mob/items/lefthand.dmi differ diff --git a/icons/mob/items/lefthand_backpacks.dmi b/icons/mob/items/lefthand_backpacks.dmi index f62dd34bae9..74da58f2dab 100644 Binary files a/icons/mob/items/lefthand_backpacks.dmi and b/icons/mob/items/lefthand_backpacks.dmi differ diff --git a/icons/mob/items/righthand.dmi b/icons/mob/items/righthand.dmi index 58a61f19c40..d6bda4726a4 100644 Binary files a/icons/mob/items/righthand.dmi and b/icons/mob/items/righthand.dmi differ diff --git a/icons/mob/items/righthand_backpacks.dmi b/icons/mob/items/righthand_backpacks.dmi index bad540c939d..77ac28ea056 100644 Binary files a/icons/mob/items/righthand_backpacks.dmi and b/icons/mob/items/righthand_backpacks.dmi differ diff --git a/icons/mob/screen/minimalist.dmi b/icons/mob/screen/minimalist.dmi index 18dbd358fa7..41873de9ca3 100644 Binary files a/icons/mob/screen/minimalist.dmi and b/icons/mob/screen/minimalist.dmi differ diff --git a/icons/mob/screen1_robot.dmi b/icons/mob/screen1_robot.dmi index 3288b58c576..ad0ac4fd774 100644 Binary files a/icons/mob/screen1_robot.dmi and b/icons/mob/screen1_robot.dmi differ diff --git a/icons/mob/screen1_robot_minimalist.dmi b/icons/mob/screen1_robot_minimalist.dmi new file mode 100644 index 00000000000..a6207857249 Binary files /dev/null and b/icons/mob/screen1_robot_minimalist.dmi differ diff --git a/icons/mob/species/skrell/helmet.dmi b/icons/mob/species/skrell/helmet.dmi index 2db8b5119a0..f5f7445c604 100644 Binary files a/icons/mob/species/skrell/helmet.dmi and b/icons/mob/species/skrell/helmet.dmi differ diff --git a/icons/mob/species/skrell/suit.dmi b/icons/mob/species/skrell/suit.dmi index 47ce0a2302b..b3a44eea8b7 100644 Binary files a/icons/mob/species/skrell/suit.dmi and b/icons/mob/species/skrell/suit.dmi differ diff --git a/icons/mob/suit.dmi b/icons/mob/suit.dmi index 168bcdc99e8..9e74afd5abe 100644 Binary files a/icons/mob/suit.dmi and b/icons/mob/suit.dmi differ diff --git a/icons/mob/ties.dmi b/icons/mob/ties.dmi index 0d8a4129d71..a2239630b86 100644 Binary files a/icons/mob/ties.dmi and b/icons/mob/ties.dmi differ diff --git a/icons/mob/uniform.dmi b/icons/mob/uniform.dmi index ee54d17c87a..89d76d9ad4f 100644 Binary files a/icons/mob/uniform.dmi and b/icons/mob/uniform.dmi differ diff --git a/icons/obj/chemical.dmi b/icons/obj/chemical.dmi index 8ceefe32cb2..2fa64c7ade9 100644 Binary files a/icons/obj/chemical.dmi and b/icons/obj/chemical.dmi differ diff --git a/icons/obj/clothing/species/seromi/hats.dmi b/icons/obj/clothing/species/seromi/hats.dmi new file mode 100644 index 00000000000..9398f180181 Binary files /dev/null and b/icons/obj/clothing/species/seromi/hats.dmi differ diff --git a/icons/obj/clothing/species/seromi/suits.dmi b/icons/obj/clothing/species/seromi/suits.dmi new file mode 100644 index 00000000000..2d56f7f787c Binary files /dev/null and b/icons/obj/clothing/species/seromi/suits.dmi differ diff --git a/icons/obj/clothing/suits.dmi b/icons/obj/clothing/suits.dmi index f97c5dd6583..bd612d4e09c 100644 Binary files a/icons/obj/clothing/suits.dmi and b/icons/obj/clothing/suits.dmi differ diff --git a/icons/obj/clothing/ties.dmi b/icons/obj/clothing/ties.dmi index 084392801db..17872821ea3 100644 Binary files a/icons/obj/clothing/ties.dmi and b/icons/obj/clothing/ties.dmi differ diff --git a/icons/obj/clothing/uniforms.dmi b/icons/obj/clothing/uniforms.dmi index e6094f3bb08..fb5e84f0327 100644 Binary files a/icons/obj/clothing/uniforms.dmi and b/icons/obj/clothing/uniforms.dmi differ diff --git a/icons/obj/forensics.dmi b/icons/obj/forensics.dmi index 63225c30125..f91d974309b 100644 Binary files a/icons/obj/forensics.dmi and b/icons/obj/forensics.dmi differ diff --git a/icons/obj/lighting.dmi b/icons/obj/lighting.dmi index c5f91d2ab2e..5b453fbfb47 100644 Binary files a/icons/obj/lighting.dmi and b/icons/obj/lighting.dmi differ diff --git a/icons/obj/stationobjs.dmi b/icons/obj/stationobjs.dmi index 225705ab65e..94f46b9c2c0 100644 Binary files a/icons/obj/stationobjs.dmi and b/icons/obj/stationobjs.dmi differ diff --git a/icons/obj/stock_parts.dmi b/icons/obj/stock_parts.dmi index 58cf8bcff7e..294f1f82f74 100644 Binary files a/icons/obj/stock_parts.dmi and b/icons/obj/stock_parts.dmi differ diff --git a/icons/obj/storage.dmi b/icons/obj/storage.dmi index 07e424112fb..b9190b3f65a 100644 Binary files a/icons/obj/storage.dmi and b/icons/obj/storage.dmi differ diff --git a/maps/RandomZLevels/zresearchlabs.dmm b/maps/RandomZLevels/zresearchlabs.dmm index ab02373084a..c749e01a21c 100644 --- a/maps/RandomZLevels/zresearchlabs.dmm +++ b/maps/RandomZLevels/zresearchlabs.dmm @@ -1049,7 +1049,7 @@ "ui" = (/obj/structure/closet/secure_closet/warden,/obj/effect/decal/cleanable/cobweb2,/turf/simulated/floor{icon_state = "showroomfloor"},/area/awaymission/labs/security) "uj" = (/obj/structure/rack,/obj/item/ammo_magazine/c45,/turf/simulated/floor{tag = "icon-vault (WEST)"; icon_state = "vault"; dir = 8},/area/awaymission/labs/security) "uk" = (/obj/structure/rack,/obj/item/ammo_magazine/c45,/obj/item/weapon/gun/projectile/silenced/sc_silenced{desc = "A sidearm commonly favored by terrestrial security forces."; icon_state = "g115 Pistol"; name = "Pistol"; silenced = 0},/turf/simulated/floor{tag = "icon-vault (WEST)"; icon_state = "vault"; dir = 8},/area/awaymission/labs/security) -"ul" = (/obj/structure/table/standard,/obj/item/weapon/storage/backpack/satchel_med,/turf/simulated/floor{icon_state = "white"},/area/awaymission/labs/medical) +"ul" = (/obj/structure/table/standard,/obj/item/weapon/storage/backpack/satchel/med,/turf/simulated/floor{icon_state = "white"},/area/awaymission/labs/medical) "um" = (/obj/machinery/computer/prisoner,/turf/simulated/floor{icon_state = "showroomfloor"},/area/awaymission/labs/security) "un" = (/obj/machinery/computer/security,/turf/simulated/floor{icon_state = "showroomfloor"},/area/awaymission/labs/security) "uo" = (/obj/structure/table/standard,/obj/item/weapon/gun/syringe/rapidsyringe,/turf/simulated/floor{icon_state = "white"},/area/awaymission/labs/medical) diff --git a/maps/polaris-1.dmm b/maps/polaris-1.dmm index 48f81ffa1da..1a1189f9681 100644 --- a/maps/polaris-1.dmm +++ b/maps/polaris-1.dmm @@ -28,8 +28,8 @@ "aaB" = (/obj/machinery/cryopod,/turf/simulated/shuttle/floor,/area/shuttle/cryo/station) "aaC" = (/obj/machinery/hologram/holopad,/turf/simulated/shuttle/floor,/area/shuttle/cryo/station) "aaD" = (/obj/structure/shuttle/engine/heater,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/airless,/area/shuttle/cryo/station) -"aaE" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/closet/emcloset,/obj/machinery/light,/turf/simulated/shuttle/floor,/area/shuttle/cryo/station) -"aaF" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/closet/emcloset,/obj/machinery/light,/turf/simulated/shuttle/floor,/area/shuttle/cryo/station) +"aaE" = (/obj/structure/window/reinforced{dir = 8},/obj/machinery/light,/obj/structure/closet/emcloset,/obj/item/weapon/storage/toolbox/emergency,/turf/simulated/shuttle/floor,/area/shuttle/cryo/station) +"aaF" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/closet/emcloset,/obj/machinery/light,/obj/item/weapon/storage/toolbox/emergency,/obj/item/weapon/storage/toolbox/emergency,/turf/simulated/shuttle/floor,/area/shuttle/cryo/station) "aaG" = (/obj/structure/shuttle/engine/heater,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/airless,/area/shuttle/cryo/station) "aaH" = (/obj/structure/shuttle/engine/propulsion{icon_state = "propulsion_l"},/turf/space,/area/shuttle/cryo/station) "aaI" = (/obj/structure/shuttle/engine/propulsion,/turf/space,/area/shuttle/cryo/station) @@ -108,7 +108,7 @@ "acd" = (/obj/structure/closet/wardrobe/mixed,/obj/item/clothing/accessory/storage/knifeharness,/turf/simulated/floor/tiled,/area/crew_quarters/locker) "ace" = (/obj/structure/closet/wardrobe/white,/turf/simulated/floor/tiled,/area/crew_quarters/locker) "acf" = (/obj/structure/closet/wardrobe/grey,/obj/machinery/camera/network/civilian{c_tag = "Civ - Locker Room Fore"; dir = 2},/turf/simulated/floor/tiled,/area/crew_quarters/locker) -"acg" = (/obj/machinery/recharge_station,/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/tiled,/area/crew_quarters/locker) +"acg" = (/obj/machinery/recharge_station/map,/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/tiled,/area/crew_quarters/locker) "ach" = (/obj/machinery/alarm{pixel_y = 23},/turf/simulated/floor/tiled,/area/crew_quarters/locker) "aci" = (/obj/machinery/lapvend,/turf/simulated/floor/tiled,/area/crew_quarters/locker) "acj" = (/obj/machinery/atmospherics/pipe/manifold/hidden/cyan{dir = 8; icon_state = "map"; tag = "icon-manifold-f (WEST)"},/obj/machinery/meter,/obj/effect/floor_decal/industrial/warning{dir = 10},/turf/simulated/floor/plating,/area/maintenance/locker) @@ -176,7 +176,7 @@ "adt" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/tiled,/area/crew_quarters/locker) "adu" = (/obj/machinery/door/airlock/maintenance{req_access = list(12)},/obj/machinery/door/firedoor,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor,/area/maintenance/locker) "adv" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor,/area/maintenance/locker) -"adw" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 9; pixel_y = 0},/obj/machinery/light/small{dir = 4; pixel_y = 0},/turf/simulated/floor,/area/maintenance/locker) +"adw" = (/obj/item/weapon/pickaxe/drill,/turf/simulated/floor,/area/maintenance/locker) "adx" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/airless,/area/solar/auxstarboard) "ady" = (/obj/machinery/light/small{dir = 4; pixel_y = 0},/obj/effect/floor_decal/industrial/warning/corner,/turf/simulated/floor/airless,/area/maintenance/library) "adz" = (/obj/machinery/portable_atmospherics/canister/air/airlock,/obj/effect/floor_decal/industrial/outline/yellow,/obj/machinery/atmospherics/portables_connector,/turf/simulated/floor,/area/maintenance/library) @@ -258,7 +258,7 @@ "aeX" = (/obj/structure/extinguisher_cabinet{pixel_x = 5; pixel_y = -32},/turf/simulated/floor/tiled,/area/crew_quarters/locker) "aeY" = (/obj/machinery/vending/cigarette,/turf/simulated/floor/tiled,/area/crew_quarters/locker) "aeZ" = (/obj/machinery/power/solar{id = "auxsolareast"; name = "Port Auxiliary Solar Array"},/obj/structure/cable/yellow,/turf/simulated/floor/airless{icon_state = "solarpanel"},/area/solar/auxstarboard) -"afa" = (/obj/structure/table/woodentable,/obj/machinery/recharger{pixel_y = 0},/obj/machinery/ai_status_display{pixel_x = 0; pixel_y = 32},/turf/simulated/floor/wood,/area/library_conference_room) +"afa" = (/obj/structure/table/woodentable,/obj/machinery/recharger/map{pixel_y = 0},/obj/machinery/ai_status_display{pixel_x = 0; pixel_y = 32},/turf/simulated/floor/wood,/area/library_conference_room) "afb" = (/obj/machinery/light{dir = 1},/turf/simulated/floor/wood,/area/library_conference_room) "afc" = (/turf/simulated/floor/wood,/area/library_conference_room) "afd" = (/obj/structure/disposalpipe/segment,/turf/simulated/floor/wood,/area/library_conference_room) @@ -281,7 +281,7 @@ "afu" = (/obj/machinery/disposal,/obj/structure/disposalpipe/trunk{dir = 8},/turf/simulated/floor/wood,/area/library_conference_room) "afv" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/tiled,/area/hallway/secondary/civilian_hallway_fore) "afw" = (/obj/structure/disposalpipe/segment,/turf/simulated/floor/tiled,/area/hallway/secondary/civilian_hallway_fore) -"afx" = (/obj/effect/floor_decal/corner/blue/diagonal{dir = 4},/obj/machinery/washing_machine,/turf/simulated/floor/tiled/white,/area/crew_quarters/locker) +"afx" = (/obj/effect/floor_decal/corner/blue/diagonal{dir = 4},/obj/machinery/washing_machine/map,/turf/simulated/floor/tiled/white,/area/crew_quarters/locker) "afy" = (/obj/effect/floor_decal/corner/blue/diagonal{dir = 4},/turf/simulated/floor/tiled/white,/area/crew_quarters/locker) "afz" = (/obj/effect/floor_decal/corner/blue/diagonal{dir = 4},/obj/structure/table/standard,/obj/item/device/communicator,/turf/simulated/floor/tiled/white,/area/crew_quarters/locker) "afA" = (/obj/structure/sink{icon_state = "sink"; dir = 8; pixel_x = -12; pixel_y = 2},/obj/structure/mirror{pixel_x = -28},/obj/machinery/light_switch{pixel_y = 28},/turf/simulated/floor/tiled/freezer,/area/crew_quarters/locker/locker_toilet) @@ -333,7 +333,7 @@ "agu" = (/obj/machinery/light,/turf/simulated/floor/wood,/area/library_conference_room) "agv" = (/obj/machinery/camera/network/civilian{c_tag = "CIV - Library Meeting Room"; dir = 1},/turf/simulated/floor/wood,/area/library_conference_room) "agw" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/light_switch{pixel_x = 26; pixel_y = -26},/turf/simulated/floor/wood,/area/library_conference_room) -"agx" = (/obj/machinery/photocopier,/turf/simulated/floor/wood,/area/library_conference_room) +"agx" = (/obj/machinery/photocopier/map,/turf/simulated/floor/wood,/area/library_conference_room) "agy" = (/obj/machinery/shower{dir = 4; icon_state = "shower"; pixel_x = 5; pixel_y = 0},/obj/structure/curtain/open/shower,/turf/simulated/floor/tiled/freezer,/area/crew_quarters/locker/locker_toilet) "agz" = (/obj/machinery/shower{dir = 8; icon_state = "shower"; pixel_x = -5; pixel_y = 0},/obj/structure/curtain/open/shower,/turf/simulated/floor/tiled/freezer,/area/crew_quarters/locker/locker_toilet) "agA" = (/obj/item/weapon/handcuffs/cable/pink{desc = "Looks fluffy and comfy. Could be used to tie something up."; name = "Fuzzy Cuffs"},/obj/item/latexballon,/turf/simulated/floor,/area/crew_quarters/locker/locker_toilet) @@ -549,7 +549,7 @@ "akC" = (/obj/effect/decal/cleanable/generic,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/mob/living/simple_animal/mouse,/turf/simulated/floor/plating,/area/maintenance/locker) "akD" = (/obj/machinery/camera/network/civilian{c_tag = "CIV - Chapel Morgue"; dir = 4},/turf/simulated/floor/tiled/dark,/area/chapel/chapel_morgue) "akE" = (/obj/machinery/hologram/holopad,/turf/simulated/floor/tiled/dark,/area/chapel/chapel_morgue) -"akF" = (/obj/machinery/door/window{dir = 8; name = "Mass Driver"; req_access = list(22)},/obj/machinery/mass_driver{dir = 4; id = "chapelgun"},/obj/machinery/atmospherics/unary/vent_pump/on{dir = 8},/obj/machinery/airlock_sensor{pixel_y = 25},/obj/effect/floor_decal/industrial/warning{dir = 8},/turf/simulated/floor/plating,/area/chapel/chapel_morgue) +"akF" = (/obj/machinery/door/window{dir = 8; name = "Mass Driver"; req_access = list(22)},/obj/machinery/mass_driver/map{dir = 4; id = "chapelgun"},/obj/machinery/atmospherics/unary/vent_pump/on{dir = 8},/obj/machinery/airlock_sensor{pixel_y = 25},/obj/effect/floor_decal/industrial/warning{dir = 8},/turf/simulated/floor/plating,/area/chapel/chapel_morgue) "akG" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; pixel_x = 0; pixel_y = 32},/obj/effect/floor_decal/industrial/warning{dir = 4},/turf/simulated/floor/plating,/area/chapel/chapel_morgue) "akH" = (/obj/machinery/door/blast/regular{id = "chapelgun"; name = "Chapel Launcher Door"},/turf/simulated/floor/plating,/area/chapel/chapel_morgue) "akI" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/maintenance/auxsolarstarboard) @@ -687,7 +687,7 @@ "ank" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/cable/green{d2 = 8; icon_state = "0-8"},/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/security/detectives_office) "anl" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable/green{d2 = 2; icon_state = "0-2"},/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/security/detectives_office) "anm" = (/obj/structure/table/reinforced,/obj/item/device/mass_spectrometer/adv,/obj/effect/floor_decal/industrial/warning{dir = 10},/obj/item/device/reagent_scanner,/obj/item/weapon/reagent_containers/syringe,/turf/simulated/floor/tiled/white,/area/security/detectives_office) -"ann" = (/obj/machinery/dnaforensics,/obj/effect/floor_decal/industrial/warning{dir = 6},/turf/simulated/floor/tiled/white,/area/security/detectives_office) +"ann" = (/obj/machinery/dnaforensics/map,/obj/effect/floor_decal/industrial/warning{dir = 6},/turf/simulated/floor/tiled/white,/area/security/detectives_office) "ano" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/structure/cable/green,/obj/structure/cable/green{d2 = 8; icon_state = "0-8"},/obj/machinery/door/firedoor/border_only,/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating,/area/security/detectives_office) "anp" = (/obj/structure/bed/chair{dir = 1},/obj/item/device/radio/intercom{dir = 4; name = "Station Intercom (General)"; pixel_x = 27},/obj/structure/closet/walllocker/emerglocker{pixel_x = -28},/turf/simulated/shuttle/floor,/area/shuttle/escape_pod1/station) "anq" = (/obj/structure/bed/chair{dir = 1},/obj/item/device/radio/intercom{dir = 4; name = "Station Intercom (General)"; pixel_x = 27},/obj/structure/closet/walllocker/emerglocker{pixel_x = -28},/turf/simulated/shuttle/floor,/area/shuttle/escape_pod2/station) @@ -937,7 +937,7 @@ "asa" = (/obj/machinery/status_display{pixel_x = 0; pixel_y = -32},/obj/machinery/atmospherics/unary/vent_pump/on{dir = 1},/obj/structure/closet{name = "Evidence Closet"},/obj/item/weapon/storage/box/gloves,/obj/item/weapon/storage/box/evidence,/obj/item/weapon/storage/box/bodybags,/turf/simulated/floor/tiled/freezer,/area/security/detectives_office) "asb" = (/obj/machinery/disposal,/obj/structure/disposalpipe/trunk{dir = 1},/turf/simulated/floor/tiled/freezer,/area/security/detectives_office) "asc" = (/obj/machinery/light,/obj/machinery/chem_master,/turf/simulated/floor/tiled/freezer,/area/security/detectives_office) -"asd" = (/obj/machinery/camera/network/security{c_tag = "SEC - Forensic Office"; dir = 8},/obj/machinery/photocopier,/turf/simulated/floor/tiled/freezer,/area/security/detectives_office) +"asd" = (/obj/machinery/camera/network/security{c_tag = "SEC - Forensic Office"; dir = 8},/obj/machinery/photocopier/map,/turf/simulated/floor/tiled/freezer,/area/security/detectives_office) "ase" = (/obj/machinery/newscaster{pixel_x = 0; pixel_y = -28},/turf/simulated/floor/tiled,/area/hallway/secondary/escape/fore_escape_pod_hallway) "asf" = (/obj/machinery/light,/turf/simulated/floor/tiled,/area/hallway/secondary/escape/fore_escape_pod_hallway) "asg" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 4},/obj/machinery/alarm{dir = 1; pixel_y = -22},/turf/simulated/floor/tiled,/area/hallway/secondary/escape/fore_escape_pod_hallway) @@ -1012,8 +1012,8 @@ "atx" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable/green{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/simulated/floor/tiled,/area/security/main) "aty" = (/obj/effect/floor_decal/corner/red{dir = 4},/obj/structure/cable/green{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/disposalpipe/segment,/obj/structure/table/standard,/obj/machinery/chemical_dispenser/bar_soft/full,/obj/item/weapon/storage/box/drinkingglasses,/turf/simulated/floor/tiled,/area/security/main) "atz" = (/obj/structure/table/standard,/obj/machinery/cell_charger,/obj/item/weapon/screwdriver{pixel_y = 15},/obj/effect/floor_decal/corner/red{dir = 5},/turf/simulated/floor/tiled,/area/security/main) -"atA" = (/obj/structure/table/standard,/obj/machinery/recharger,/obj/item/weapon/reagent_containers/spray/cleaner,/obj/effect/floor_decal/corner/red{dir = 5},/obj/item/device/radio/intercom{dir = 1; name = "Station Intercom (General)"; pixel_y = 21},/obj/item/weapon/storage/box/donut,/turf/simulated/floor/tiled,/area/security/main) -"atB" = (/obj/effect/floor_decal/corner/red{dir = 5},/obj/machinery/photocopier,/turf/simulated/floor/tiled,/area/security/main) +"atA" = (/obj/structure/table/standard,/obj/machinery/recharger/map,/obj/item/weapon/reagent_containers/spray/cleaner,/obj/effect/floor_decal/corner/red{dir = 5},/obj/item/device/radio/intercom{dir = 1; name = "Station Intercom (General)"; pixel_y = 21},/obj/item/weapon/storage/box/donut,/turf/simulated/floor/tiled,/area/security/main) +"atB" = (/obj/effect/floor_decal/corner/red{dir = 5},/obj/machinery/photocopier/map,/turf/simulated/floor/tiled,/area/security/main) "atC" = (/obj/machinery/disposal,/obj/structure/disposalpipe/trunk,/obj/effect/floor_decal/corner/red{dir = 5},/turf/simulated/floor/tiled,/area/security/main) "atD" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/security/security_lockerroom) "atE" = (/obj/structure/closet/secure_closet/security,/obj/effect/floor_decal/industrial/outline/yellow,/obj/item/clothing/glasses/hud/security,/turf/simulated/floor/tiled,/area/security/security_lockerroom) @@ -1092,7 +1092,7 @@ "auZ" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 1},/obj/structure/bed/chair,/turf/simulated/floor/tiled,/area/security/interrogation) "ava" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/effect/floor_decal/corner/red{dir = 8},/turf/simulated/floor/tiled,/area/security/brig) "avb" = (/obj/effect/floor_decal/corner/red,/turf/simulated/floor/tiled,/area/security/brig) -"avc" = (/obj/machinery/recharge_station,/obj/effect/floor_decal/corner/red/full{dir = 4},/turf/simulated/floor/tiled,/area/security/brig) +"avc" = (/obj/machinery/recharge_station/map,/obj/effect/floor_decal/corner/red/full{dir = 4},/turf/simulated/floor/tiled,/area/security/brig) "avd" = (/turf/simulated/wall,/area/security/evidence_storage) "ave" = (/obj/machinery/door/airlock/security{name = "Evidence Storage"; req_access = list(1)},/obj/machinery/door/firedoor/border_only,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/tiled/dark,/area/security/evidence_storage) "avf" = (/turf/simulated/wall,/area/crew_quarters/heads/hos) @@ -1133,7 +1133,7 @@ "avO" = (/obj/effect/floor_decal/corner/red{dir = 6},/obj/machinery/light{dir = 4; icon_state = "tube1"; pixel_x = 0},/turf/simulated/floor/tiled,/area/security/brig) "avP" = (/obj/machinery/alarm{dir = 4; icon_state = "alarm0"; pixel_x = -22},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/tiled/dark,/area/security/evidence_storage) "avQ" = (/obj/structure/closet{name = "Evidence Closet"},/obj/effect/floor_decal/industrial/outline/grey,/turf/simulated/floor/tiled/dark,/area/security/evidence_storage) -"avR" = (/obj/machinery/alarm{dir = 4; pixel_x = -23; pixel_y = 0},/obj/machinery/requests_console{announcementConsole = 1; department = "Head of Security's Desk"; departmentType = 5; name = "Head of Security RC"; pixel_x = 0; pixel_y = 30},/obj/structure/table/woodentable,/obj/machinery/recharger{pixel_y = 4},/obj/item/weapon/reagent_containers/food/drinks/flask/barflask{pixel_x = -4; pixel_y = 8},/obj/item/device/taperecorder{pixel_y = 0},/obj/item/device/megaphone,/obj/item/device/radio/off,/turf/simulated/floor/tiled/dark,/area/crew_quarters/heads/hos) +"avR" = (/obj/machinery/alarm{dir = 4; pixel_x = -23; pixel_y = 0},/obj/machinery/requests_console{announcementConsole = 1; department = "Head of Security's Desk"; departmentType = 5; name = "Head of Security RC"; pixel_x = 0; pixel_y = 30},/obj/structure/table/woodentable,/obj/machinery/recharger/map{pixel_y = 4},/obj/item/weapon/reagent_containers/food/drinks/flask/barflask{pixel_x = -4; pixel_y = 8},/obj/item/device/taperecorder{pixel_y = 0},/obj/item/device/megaphone,/obj/item/device/radio/off,/turf/simulated/floor/tiled/dark,/area/crew_quarters/heads/hos) "avS" = (/turf/simulated/floor/tiled/dark,/area/crew_quarters/heads/hos) "avT" = (/turf/simulated/floor/carpet,/area/crew_quarters/heads/hos) "avU" = (/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/carpet,/area/crew_quarters/heads/hos) @@ -1189,8 +1189,8 @@ "awS" = (/obj/effect/floor_decal/corner/red,/obj/machinery/camera/network/security{c_tag = "SEC - Briefing"; dir = 8},/turf/simulated/floor/tiled,/area/security/main) "awT" = (/obj/structure/closet/secure_closet/security,/obj/machinery/alarm{dir = 1; pixel_y = -22},/obj/effect/floor_decal/industrial/outline/yellow,/obj/item/clothing/glasses/hud/security,/turf/simulated/floor/tiled,/area/security/security_lockerroom) "awU" = (/obj/structure/closet/secure_closet/security,/obj/machinery/light,/obj/effect/floor_decal/industrial/outline/yellow,/obj/item/clothing/glasses/hud/security,/turf/simulated/floor/tiled,/area/security/security_lockerroom) -"awV" = (/obj/structure/table/standard,/obj/machinery/recharger/wallcharger{pixel_x = 4; pixel_y = -28},/obj/item/clothing/accessory/badge/holo,/obj/item/clothing/accessory/badge/holo,/obj/item/clothing/accessory/badge/holo/cord,/obj/effect/floor_decal/corner/red/full,/turf/simulated/floor/tiled,/area/security/security_lockerroom) -"awW" = (/obj/structure/table/standard,/obj/structure/reagent_dispensers/peppertank{pixel_x = 30},/obj/machinery/recharger/wallcharger{pixel_x = 4; pixel_y = -28},/obj/effect/floor_decal/corner/red/full{dir = 4},/obj/item/device/radio,/obj/item/device/radio,/obj/item/device/radio,/obj/item/device/radio,/obj/item/device/radio,/obj/item/device/radio,/obj/item/device/flashlight,/obj/item/device/flashlight,/obj/item/device/flashlight,/obj/item/device/flashlight,/obj/item/device/flashlight,/obj/item/device/flashlight,/obj/item/weapon/crowbar,/obj/item/weapon/crowbar,/obj/item/weapon/crowbar,/obj/item/weapon/crowbar,/obj/item/weapon/crowbar,/obj/item/weapon/crowbar,/turf/simulated/floor/tiled,/area/security/security_lockerroom) +"awV" = (/obj/structure/table/standard,/obj/machinery/recharger/wallcharger/map{pixel_x = 4; pixel_y = -28},/obj/item/clothing/accessory/badge/holo,/obj/item/clothing/accessory/badge/holo,/obj/item/clothing/accessory/badge/holo/cord,/obj/effect/floor_decal/corner/red/full,/turf/simulated/floor/tiled,/area/security/security_lockerroom) +"awW" = (/obj/structure/table/standard,/obj/structure/reagent_dispensers/peppertank{pixel_x = 30},/obj/machinery/recharger/wallcharger/map{pixel_x = 4; pixel_y = -28},/obj/effect/floor_decal/corner/red/full{dir = 4},/obj/item/device/radio,/obj/item/device/radio,/obj/item/device/radio,/obj/item/device/radio,/obj/item/device/radio,/obj/item/device/radio,/obj/item/device/flashlight,/obj/item/device/flashlight,/obj/item/device/flashlight,/obj/item/device/flashlight,/obj/item/device/flashlight,/obj/item/device/flashlight,/obj/item/weapon/crowbar,/obj/item/weapon/crowbar,/obj/item/weapon/crowbar,/obj/item/weapon/crowbar,/obj/item/weapon/crowbar,/obj/item/weapon/crowbar,/turf/simulated/floor/tiled,/area/security/security_lockerroom) "awX" = (/obj/structure/curtain/open/shower/security,/obj/machinery/shower{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/machinery/door/window/northleft{name = "Shower"; req_access = list()},/turf/simulated/floor/tiled/freezer,/area/security/security_bathroom) "awY" = (/obj/structure/curtain/open/shower/security,/obj/machinery/shower{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/window/northright{dir = 1; name = "Shower"; req_access = list()},/turf/simulated/floor/tiled/freezer,/area/security/security_bathroom) "awZ" = (/obj/structure/toilet{dir = 1},/obj/machinery/light/small{brightness_color = "#DA0205"; brightness_power = 1; brightness_range = 5},/turf/simulated/floor/tiled/freezer,/area/security/security_bathroom) @@ -1221,7 +1221,7 @@ "axy" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 8},/obj/machinery/camera/network/security{c_tag = "SEC - Brig Fore Hallway 2"; dir = 8},/turf/simulated/floor/tiled,/area/security/brig) "axz" = (/turf/simulated/floor/tiled/dark,/area/security/evidence_storage) "axA" = (/obj/structure/closet{name = "Evidence Closet"},/obj/item/device/radio/intercom{dir = 4; name = "Station Intercom (General)"; pixel_x = 21},/obj/effect/floor_decal/industrial/outline/grey,/turf/simulated/floor/tiled/dark,/area/security/evidence_storage) -"axB" = (/obj/item/device/radio/intercom{dir = 8; name = "Station Intercom (General)"; pixel_x = -21},/obj/structure/table/woodentable,/obj/machinery/photocopier/faxmachine{department = "Head of Security"},/turf/simulated/floor/tiled/dark,/area/crew_quarters/heads/hos) +"axB" = (/obj/item/device/radio/intercom{dir = 8; name = "Station Intercom (General)"; pixel_x = -21},/obj/structure/table/woodentable,/obj/machinery/photocopier/faxmachine/map{department = "Head of Security"},/turf/simulated/floor/tiled/dark,/area/crew_quarters/heads/hos) "axC" = (/obj/machinery/hologram/holopad,/obj/structure/cable/green{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/simulated/floor/tiled/dark,/area/crew_quarters/heads/hos) "axD" = (/obj/structure/table/woodentable,/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/item/device/flashlight/lamp/green{dir = 2; pixel_x = 10; pixel_y = 12},/turf/simulated/floor/carpet,/area/crew_quarters/heads/hos) "axE" = (/obj/structure/table/woodentable,/obj/structure/cable/green{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/cable/green{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/item/weapon/stamp/hos,/turf/simulated/floor/carpet,/area/crew_quarters/heads/hos) @@ -1392,9 +1392,9 @@ "aAN" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/cable/green{d2 = 2; icon_state = "0-2"},/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/security/security_equiptment_storage) "aAO" = (/obj/machinery/computer/prisoner,/obj/machinery/status_display{density = 0; layer = 4; pixel_x = 0; pixel_y = 32},/obj/effect/floor_decal/industrial/outline/grey,/turf/simulated/floor/tiled/dark,/area/security/warden) "aAP" = (/obj/structure/filingcabinet/chestdrawer,/obj/effect/floor_decal/industrial/outline/grey,/obj/item/device/radio/intercom{broadcasting = 0; dir = 1; frequency = 1475; icon_state = "intercom"; listening = 1; name = "Station Intercom (Security)"; pixel_x = 0; pixel_y = 21},/turf/simulated/floor/tiled/dark,/area/security/warden) -"aAQ" = (/obj/structure/table/reinforced,/obj/machinery/recharger/wallcharger{pixel_x = 4; pixel_y = 26},/obj/structure/cable/green{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/camera/network/security{c_tag = "SEC - Warden's Office"},/obj/item/weapon/crowbar,/obj/item/device/radio/off,/obj/item/weapon/wrench,/obj/item/device/retail_scanner/security,/turf/simulated/floor/tiled/dark,/area/security/warden) -"aAR" = (/obj/machinery/power/apc{dir = 1; name = "north bump"; pixel_x = 0; pixel_y = 24},/obj/structure/cable/green{d2 = 8; icon_state = "0-8"},/obj/machinery/light_switch{pixel_x = 14; pixel_y = 24},/obj/machinery/photocopier,/turf/simulated/floor/tiled/dark,/area/security/warden) -"aAS" = (/obj/machinery/newscaster/security_unit{pixel_x = 0; pixel_y = 30},/obj/structure/table/reinforced,/obj/machinery/photocopier/faxmachine{department = "Warden's Office"},/turf/simulated/floor/tiled/dark,/area/security/warden) +"aAQ" = (/obj/structure/table/reinforced,/obj/machinery/recharger/wallcharger/map{pixel_x = 4; pixel_y = 26},/obj/structure/cable/green{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/camera/network/security{c_tag = "SEC - Warden's Office"},/obj/item/weapon/crowbar,/obj/item/device/radio/off,/obj/item/weapon/wrench,/obj/item/device/retail_scanner/security,/turf/simulated/floor/tiled/dark,/area/security/warden) +"aAR" = (/obj/machinery/power/apc{dir = 1; name = "north bump"; pixel_x = 0; pixel_y = 24},/obj/structure/cable/green{d2 = 8; icon_state = "0-8"},/obj/machinery/light_switch{pixel_x = 14; pixel_y = 24},/obj/machinery/photocopier/map,/turf/simulated/floor/tiled/dark,/area/security/warden) +"aAS" = (/obj/machinery/newscaster/security_unit{pixel_x = 0; pixel_y = 30},/obj/structure/table/reinforced,/obj/machinery/photocopier/faxmachine/map{department = "Warden's Office"},/turf/simulated/floor/tiled/dark,/area/security/warden) "aAT" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/table/reinforced,/obj/item/weapon/clipboard,/obj/item/weapon/paper_bin{pixel_x = -3; pixel_y = 7},/obj/item/weapon/folder/red,/obj/item/weapon/pen,/obj/item/device/radio/intercom{dir = 1; name = "Station Intercom (General)"; pixel_y = 21},/turf/simulated/floor/tiled/dark,/area/security/warden) "aAU" = (/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/effect/floor_decal/corner/red{dir = 9},/turf/simulated/floor/tiled,/area/security/brig) "aAV" = (/obj/effect/floor_decal/corner/red{dir = 6},/turf/simulated/floor/tiled,/area/security/brig) @@ -1574,7 +1574,7 @@ "aEn" = (/obj/structure/disposalpipe/segment,/obj/structure/extinguisher_cabinet{pixel_x = 25; pixel_y = 0},/turf/simulated/floor/tiled,/area/hallway/secondary/civilian_hallway_aft) "aEo" = (/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,/obj/machinery/light/small{dir = 8},/turf/simulated/floor,/area/maintenance/holodeck) "aEp" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/crew_quarters/recreation_area_hallway) -"aEq" = (/obj/machinery/photocopier,/obj/machinery/light{dir = 8; icon_state = "tube1"; pixel_y = 0},/obj/item/weapon/storage/secure/safe{pixel_x = 5; pixel_y = -28},/turf/simulated/floor/tiled/dark,/area/crew_quarters/heads/hos) +"aEq" = (/obj/machinery/photocopier/map,/obj/machinery/light{dir = 8; icon_state = "tube1"; pixel_y = 0},/obj/item/weapon/storage/secure/safe{pixel_x = 5; pixel_y = -28},/turf/simulated/floor/tiled/dark,/area/crew_quarters/heads/hos) "aEr" = (/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable/green{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/simulated/floor/tiled,/area/crew_quarters/recreation_area_hallway) "aEs" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/tiled,/area/crew_quarters/recreation_area_hallway) "aEt" = (/obj/machinery/camera/network/northern_star{c_tag = "Hall - Recreation Fore"; dir = 4},/obj/machinery/light{dir = 8; icon_state = "tube1"; pixel_y = 0},/turf/simulated/floor/tiled,/area/crew_quarters/recreation_area_hallway) @@ -1727,10 +1727,10 @@ "aHk" = (/obj/machinery/atmospherics/pipe/manifold4w/hidden/scrubbers,/obj/machinery/atmospherics/pipe/manifold4w/hidden/supply,/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/tiled,/area/security/brig) "aHl" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/effect/floor_decal/corner/red{dir = 4},/turf/simulated/floor/tiled,/area/security/brig) "aHm" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/effect/floor_decal/corner/red{dir = 5},/obj/machinery/light{dir = 1},/turf/simulated/floor/tiled,/area/security/brig) -"aHn" = (/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 1},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/recharger/wallcharger{pixel_x = 4; pixel_y = 26},/obj/effect/floor_decal/corner/red{dir = 1},/turf/simulated/floor/tiled,/area/security/brig) +"aHn" = (/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 1},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/recharger/wallcharger/map{pixel_x = 4; pixel_y = 26},/obj/effect/floor_decal/corner/red{dir = 1},/turf/simulated/floor/tiled,/area/security/brig) "aHo" = (/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/tiled,/area/security/brig) "aHp" = (/obj/machinery/atmospherics/pipe/manifold/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled,/area/security/brig) -"aHq" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/recharger/wallcharger{pixel_x = 4; pixel_y = 26},/obj/effect/floor_decal/corner/red{dir = 4},/turf/simulated/floor/tiled,/area/security/brig) +"aHq" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/recharger/wallcharger/map{pixel_x = 4; pixel_y = 26},/obj/effect/floor_decal/corner/red{dir = 4},/turf/simulated/floor/tiled,/area/security/brig) "aHr" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/effect/floor_decal/corner/red{dir = 5},/obj/machinery/light{dir = 1},/turf/simulated/floor/tiled,/area/security/brig) "aHs" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/effect/floor_decal/corner/red{dir = 1},/turf/simulated/floor/tiled,/area/security/brig) "aHt" = (/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 1},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 1},/turf/simulated/floor/tiled,/area/security/brig) @@ -1852,7 +1852,7 @@ "aJF" = (/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 1},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/effect/floor_decal/corner/red{dir = 1},/obj/machinery/atmospherics/pipe/simple/hidden{tag = "icon-intact (EAST)"; icon_state = "intact"; dir = 4},/obj/machinery/computer/cryopod{density = 0; layer = 3.3; pixel_y = 32},/turf/simulated/floor/tiled,/area/security/security_cell_hallway) "aJG" = (/obj/machinery/hologram/holopad,/turf/simulated/floor/tiled/dark,/area/security/armoury) "aJH" = (/obj/effect/floor_decal/corner/red{dir = 1},/obj/machinery/atmospherics/pipe/simple/hidden{tag = "icon-intact (EAST)"; icon_state = "intact"; dir = 4},/obj/item/device/radio/intercom{broadcasting = 0; dir = 1; frequency = 1475; icon_state = "intercom"; listening = 1; name = "Station Intercom (Security)"; pixel_x = 0; pixel_y = 21},/turf/simulated/floor/tiled,/area/security/security_cell_hallway) -"aJI" = (/obj/machinery/sleeper,/obj/effect/floor_decal/corner/paleblue/full{dir = 1},/turf/simulated/floor/tiled/white,/area/medical/first_aid_station_starboard) +"aJI" = (/obj/machinery/sleeper/map,/obj/effect/floor_decal/corner/paleblue/full{dir = 1},/turf/simulated/floor/tiled/white,/area/medical/first_aid_station_starboard) "aJJ" = (/turf/simulated/wall/r_wall,/area/security/range) "aJK" = (/turf/simulated/wall,/area/security/range) "aJL" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/machinery/door/firedoor/border_only,/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating,/area/security/range) @@ -1875,7 +1875,7 @@ "aKc" = (/obj/structure/cable/green{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/computer/arcade,/turf/simulated/floor/tiled,/area/security/prison) "aKd" = (/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/tiled,/area/security/prison) "aKe" = (/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/structure/disposalpipe/segment,/turf/simulated/floor/tiled,/area/security/prison) -"aKf" = (/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/washing_machine,/obj/machinery/light{dir = 1},/turf/simulated/floor/tiled,/area/security/prison) +"aKf" = (/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/washing_machine/map,/obj/machinery/light{dir = 1},/turf/simulated/floor/tiled,/area/security/prison) "aKg" = (/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/machinery/atmospherics/unary/vent_pump/on,/turf/simulated/floor/tiled,/area/security/prison) "aKh" = (/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/hidden,/turf/simulated/floor/tiled,/area/security/prison) "aKi" = (/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable/green{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/simulated/floor/tiled,/area/security/prison) @@ -2002,7 +2002,7 @@ "aMz" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/structure/cable/green{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/tiled/dark,/area/lawoffice) "aMA" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 9},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 10},/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/turf/simulated/floor/tiled/dark,/area/lawoffice) "aMB" = (/obj/machinery/hologram/holopad,/turf/simulated/floor/tiled/dark,/area/lawoffice) -"aMC" = (/obj/structure/table/reinforced,/obj/machinery/photocopier/faxmachine{anchored = 0; department = "Internal Affairs"},/obj/machinery/alarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/turf/simulated/floor/tiled/dark,/area/lawoffice) +"aMC" = (/obj/structure/table/reinforced,/obj/machinery/photocopier/faxmachine/map{anchored = 0; department = "Internal Affairs"},/obj/machinery/alarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/turf/simulated/floor/tiled/dark,/area/lawoffice) "aMD" = (/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{dir = 5},/turf/simulated/floor,/area/maintenance/holodeck) "aME" = (/obj/machinery/light/small{dir = 4; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 10},/obj/machinery/meter,/turf/simulated/floor,/area/maintenance/holodeck) "aMF" = (/obj/machinery/power/apc{dir = 8; name = "west bump"; pixel_x = -24},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/structure/cable/green{d2 = 2; icon_state = "0-2"},/turf/simulated/floor/tiled,/area/holodeck_control) @@ -2070,7 +2070,7 @@ "aNP" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/machinery/door/firedoor/border_only,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plating,/area/storage/art) "aNQ" = (/obj/machinery/power/apc{dir = 8; name = "west bump"; pixel_x = -24},/obj/structure/cable/green,/turf/simulated/floor/tiled/dark,/area/lawoffice) "aNR" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/tiled/dark,/area/lawoffice) -"aNS" = (/obj/machinery/photocopier,/obj/machinery/ai_status_display{pixel_x = 32; pixel_y = 0},/turf/simulated/floor/tiled/dark,/area/lawoffice) +"aNS" = (/obj/machinery/photocopier/map,/obj/machinery/ai_status_display{pixel_x = 32; pixel_y = 0},/turf/simulated/floor/tiled/dark,/area/lawoffice) "aNT" = (/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 5},/obj/structure/cable/green{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/meter,/turf/simulated/floor,/area/maintenance/holodeck) "aNU" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 5},/turf/simulated/floor,/area/maintenance/holodeck) "aNV" = (/obj/machinery/door/airlock/maintenance{req_access = list(12)},/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/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor,/area/holodeck_control) @@ -2159,7 +2159,7 @@ "aPA" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/machinery/door/firedoor/border_only,/obj/structure/window/reinforced{dir = 8},/turf/simulated/shuttle/plating,/area/security/range) "aPB" = (/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 5},/obj/effect/floor_decal/industrial/warning/corner{dir = 8},/obj/effect/floor_decal/industrial/warning/corner{dir = 1},/turf/simulated/floor/tiled,/area/security/range) "aPC" = (/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 8},/turf/simulated/floor/tiled,/area/security/range) -"aPD" = (/obj/structure/table/reinforced,/obj/machinery/recharger/wallcharger{pixel_x = 32; pixel_y = -4},/obj/item/clothing/ears/earmuffs{pixel_x = -3; pixel_y = -2},/obj/item/clothing/ears/earmuffs,/obj/item/clothing/ears/earmuffs,/turf/simulated/floor/tiled,/area/security/range) +"aPD" = (/obj/structure/table/reinforced,/obj/machinery/recharger/wallcharger/map{pixel_x = 32; pixel_y = -4},/obj/item/clothing/ears/earmuffs{pixel_x = -3; pixel_y = -2},/obj/item/clothing/ears/earmuffs,/obj/item/clothing/ears/earmuffs,/turf/simulated/floor/tiled,/area/security/range) "aPE" = (/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/tiled,/area/security/lobby) "aPF" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/tiled,/area/security/lobby) "aPG" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 9; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 5},/turf/simulated/floor/tiled,/area/security/lobby) @@ -2181,7 +2181,7 @@ "aPW" = (/obj/structure/closet{name = "Prisoner's Locker"},/obj/random/tech_supply,/obj/item/clothing/head/flatcap,/turf/simulated/floor/tiled,/area/security/prison) "aPX" = (/obj/effect/decal/cleanable/dirt,/obj/machinery/shower{dir = 4; icon_state = "shower"; pixel_x = 5; pixel_y = 0},/obj/structure/curtain/open/shower/security,/turf/simulated/floor/tiled/freezer,/area/security/prison) "aPY" = (/turf/simulated/floor/tiled/freezer,/area/security/prison) -"aPZ" = (/obj/structure/sink{dir = 4; icon_state = "sink"; pixel_x = 11; pixel_y = 0},/obj/structure/mirror{pixel_x = 30},/obj/item/weapon/soap/nanotrasen,/obj/machinery/alarm{pixel_y = 22},/turf/simulated/floor/tiled/freezer,/area/security/prison) +"aPZ" = (/obj/item/weapon/caution/cone,/turf/simulated/floor,/area/maintenance/locker) "aQa" = (/obj/structure/table/standard,/obj/item/device/camera,/obj/item/device/camera{pixel_x = 3; pixel_y = -4},/turf/simulated/floor/tiled,/area/storage/art) "aQb" = (/obj/machinery/hologram/holopad,/obj/structure/cable/green{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/simulated/floor/tiled,/area/storage/art) "aQc" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 5},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 6},/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/tiled,/area/storage/art) @@ -2207,7 +2207,7 @@ "aQw" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/door/window/westright{name = "Range Access"; req_access = list(63)},/obj/effect/floor_decal/industrial/hatch/yellow,/obj/item/device/radio/intercom{broadcasting = 0; frequency = 1475; icon_state = "intercom"; listening = 1; name = "Station Intercom (Security)"; pixel_x = 0; pixel_y = 21},/turf/simulated/floor/tiled,/area/security/range) "aQx" = (/obj/machinery/power/apc{dir = 2; name = "south bump"; pixel_y = -24},/obj/structure/cable/green,/obj/effect/floor_decal/industrial/warning{dir = 8},/turf/simulated/floor/tiled,/area/security/range) "aQy" = (/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_y = -21},/turf/simulated/floor/tiled,/area/security/range) -"aQz" = (/obj/structure/table/reinforced,/obj/machinery/recharger/wallcharger{pixel_x = 32; pixel_y = -4},/obj/item/clothing/glasses/sunglasses,/obj/item/clothing/glasses/sunglasses{pixel_x = 3; pixel_y = 3},/obj/machinery/alarm{dir = 1; pixel_y = -22},/turf/simulated/floor/tiled,/area/security/range) +"aQz" = (/obj/structure/table/reinforced,/obj/machinery/recharger/wallcharger/map{pixel_x = 32; pixel_y = -4},/obj/item/clothing/glasses/sunglasses,/obj/item/clothing/glasses/sunglasses{pixel_x = 3; pixel_y = 3},/obj/machinery/alarm{dir = 1; pixel_y = -22},/turf/simulated/floor/tiled,/area/security/range) "aQA" = (/obj/effect/floor_decal/corner/red/full,/obj/structure/bed/chair{dir = 1},/obj/machinery/atm{pixel_y = -30},/turf/simulated/floor/tiled,/area/security/lobby) "aQB" = (/obj/structure/cable/green,/obj/machinery/power/apc{dir = 2; name = "south bump"; pixel_y = -24},/obj/structure/bed/chair{dir = 1},/turf/simulated/floor/tiled,/area/security/lobby) "aQC" = (/obj/effect/floor_decal/corner/red{dir = 10},/turf/simulated/floor/tiled,/area/security/lobby) @@ -2233,7 +2233,7 @@ "aQW" = (/obj/machinery/alarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/obj/structure/disposalpipe/segment,/turf/simulated/floor/tiled,/area/crew_quarters/recreation_area_hallway) "aQX" = (/obj/machinery/power/apc{dir = 1; name = "north bump"; pixel_x = 0; pixel_y = 24},/obj/structure/cable/green{d2 = 4; icon_state = "0-4"},/turf/simulated/floor/tiled/freezer,/area/crew_quarters/recreation_area_restroom) "aQY" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/cable/green{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/simulated/floor/tiled/freezer,/area/crew_quarters/recreation_area_restroom) -"aQZ" = (/obj/structure/sink{dir = 4; icon_state = "sink"; pixel_x = 11; pixel_y = 0},/obj/structure/mirror{pixel_x = 28},/turf/simulated/floor/tiled/freezer,/area/crew_quarters/recreation_area_restroom) +"aQZ" = (/obj/machinery/door/airlock/maintenance{req_access = list(12); welded = 1},/turf/simulated/floor,/area/maintenance/locker) "aRa" = (/obj/machinery/door/airlock{name = "Unisex Showers"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/tiled/freezer,/area/crew_quarters/recreation_area_restroom) "aRb" = (/obj/structure/disposalpipe/segment,/turf/simulated/floor/tiled/freezer,/area/crew_quarters/pool) "aRc" = (/obj/effect/floor_decal/spline/plain{dir = 10},/turf/simulated/floor/beach/water{icon_state = "seadeep"},/area/crew_quarters/pool) @@ -2245,7 +2245,7 @@ "aRi" = (/turf/simulated/wall/r_wall,/area/security/lobby) "aRj" = (/obj/machinery/firealarm{dir = 8; pixel_x = -26},/obj/machinery/alarm{dir = 1; icon_state = "alarm0"; pixel_y = -22},/obj/structure/flora/pottedplant{icon_state = "plant-22"},/turf/simulated/floor/tiled/dark,/area/hallway/primary/central_two) "aRk" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating,/area/security/lobby) -"aRl" = (/obj/structure/table/steel,/obj/machinery/microwave,/turf/simulated/floor/tiled,/area/security/prison) +"aRl" = (/obj/structure/table/steel,/obj/machinery/microwave/map,/turf/simulated/floor/tiled,/area/security/prison) "aRm" = (/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/table/steel,/obj/item/weapon/storage/box/donkpockets,/obj/item/weapon/storage/box/donkpockets{pixel_x = -3; pixel_y = -3},/turf/simulated/floor/tiled,/area/security/prison) "aRn" = (/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 1},/obj/item/weapon/bedsheet/orange,/obj/structure/bed/padded,/turf/simulated/floor/tiled,/area/security/prison) "aRo" = (/obj/structure/table/steel,/obj/item/weapon/book/manual/security_space_law,/obj/item/device/taperecorder{pixel_x = -4; pixel_y = 2},/turf/simulated/floor/tiled,/area/security/prison) @@ -2258,7 +2258,7 @@ "aRv" = (/obj/machinery/door/airlock{name = "Toilet"},/turf/simulated/floor/tiled/freezer,/area/security/prison) "aRw" = (/obj/structure/table/standard,/obj/item/weapon/storage/box,/obj/item/weapon/storage/box{pixel_x = 3; pixel_y = 3},/obj/machinery/alarm{dir = 1; pixel_y = -22},/obj/item/weapon/tape_roll{pixel_x = 4; pixel_y = 4},/obj/item/weapon/tape_roll,/turf/simulated/floor/tiled,/area/storage/art) "aRx" = (/obj/structure/table/standard,/obj/item/weapon/paper_bin{pixel_x = -3; pixel_y = 7},/obj/item/weapon/pen/blue{pixel_x = -5; pixel_y = -1},/obj/item/weapon/pen/red{pixel_x = -1; pixel_y = 3},/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 1},/obj/machinery/light,/turf/simulated/floor/tiled,/area/storage/art) -"aRy" = (/obj/structure/table/standard,/obj/machinery/recharger,/obj/machinery/newscaster{pixel_x = 0; pixel_y = -28},/turf/simulated/floor/tiled,/area/storage/art) +"aRy" = (/obj/structure/table/standard,/obj/machinery/recharger/map,/obj/machinery/newscaster{pixel_x = 0; pixel_y = -28},/turf/simulated/floor/tiled,/area/storage/art) "aRz" = (/obj/machinery/light{dir = 4; icon_state = "tube1"; pixel_x = 0},/turf/simulated/floor/tiled,/area/hallway/secondary/civilian_hallway_aft) "aRA" = (/obj/structure/table/rack{dir = 8; layer = 2.9},/obj/item/weapon/storage/briefcase{pixel_x = -2; pixel_y = -5},/obj/item/weapon/storage/briefcase{pixel_x = 3; pixel_y = 0},/obj/machinery/light,/turf/simulated/floor/tiled/dark,/area/lawoffice) "aRB" = (/obj/structure/closet/lawcloset,/turf/simulated/floor/tiled/dark,/area/lawoffice) @@ -2304,7 +2304,7 @@ "aSp" = (/obj/structure/bed/chair,/obj/item/device/radio/intercom{dir = 1; name = "Station Intercom (General)"; pixel_y = 21},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/shuttle/large_escape_pod2/station) "aSq" = (/obj/structure/bed/chair,/obj/machinery/light{dir = 1},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/shuttle/large_escape_pod2/station) "aSr" = (/obj/machinery/sleep_console{dir = 4},/turf/simulated/shuttle/floor,/area/shuttle/large_escape_pod2/station) -"aSs" = (/obj/machinery/sleeper{dir = 4},/turf/simulated/shuttle/floor,/area/shuttle/large_escape_pod2/station) +"aSs" = (/obj/machinery/sleeper/map{dir = 4},/turf/simulated/shuttle/floor,/area/shuttle/large_escape_pod2/station) "aSt" = (/obj/structure/table/standard,/obj/item/bodybag/cryobag,/obj/item/roller{pixel_y = 8},/obj/item/roller{pixel_y = 16},/obj/machinery/status_display{density = 0; layer = 4; pixel_x = 0; pixel_y = 32},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/shuttle/large_escape_pod2/station) "aSu" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/bed/chair,/obj/machinery/light{dir = 1},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/shuttle/large_escape_pod2/station) "aSv" = (/obj/structure/shuttle/engine/heater{icon_state = "heater"; dir = 4},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/airless,/area/shuttle/large_escape_pod2/station) @@ -2325,7 +2325,7 @@ "aSK" = (/obj/machinery/door/airlock{name = "Unit 2"},/turf/simulated/floor/tiled/freezer,/area/crew_quarters/recreation_area_restroom) "aSL" = (/obj/machinery/alarm{dir = 1; pixel_y = -22},/turf/simulated/floor/tiled/freezer,/area/crew_quarters/recreation_area_restroom) "aSM" = (/obj/machinery/camera/network/civilian{c_tag = "CIV - Recreation Rest Room"; dir = 1},/obj/machinery/light,/turf/simulated/floor/tiled/freezer,/area/crew_quarters/recreation_area_restroom) -"aSN" = (/obj/machinery/washing_machine,/turf/simulated/floor/tiled/freezer,/area/crew_quarters/recreation_area_restroom) +"aSN" = (/obj/machinery/washing_machine/map,/turf/simulated/floor/tiled/freezer,/area/crew_quarters/recreation_area_restroom) "aSO" = (/obj/machinery/alarm{dir = 1; pixel_y = -22},/obj/machinery/light,/obj/item/weapon/bikehorn/rubberducky,/turf/simulated/floor/tiled/freezer,/area/crew_quarters/recreation_area_restroom) "aSP" = (/obj/machinery/disposal,/obj/structure/disposalpipe/trunk{dir = 1},/turf/simulated/floor/tiled/freezer,/area/crew_quarters/pool) "aSQ" = (/obj/structure/table/glass,/obj/machinery/light,/turf/simulated/floor/tiled/freezer,/area/crew_quarters/pool) @@ -2642,7 +2642,7 @@ "aYP" = (/turf/simulated/wall,/area/gateway) "aYQ" = (/obj/structure/extinguisher_cabinet{pixel_x = -27},/turf/simulated/floor/tiled/dark,/area/gateway) "aYR" = (/turf/simulated/floor/tiled/dark,/area/gateway) -"aYS" = (/obj/structure/closet/emcloset,/obj/item/weapon/crowbar,/turf/simulated/floor/tiled/dark,/area/gateway) +"aYS" = (/obj/structure/mirror{pixel_x = 28},/obj/structure/sink{dir = 4; icon_state = "sink"; pixel_x = 11; pixel_y = 0},/turf/simulated/floor/tiled/freezer,/area/crew_quarters/recreation_area_restroom) "aYT" = (/obj/machinery/door/firedoor/glass,/obj/structure/disposalpipe/segment,/obj/machinery/door/airlock/glass{name = "Central Access"},/turf/simulated/floor/tiled,/area/hallway/primary/central_one) "aYU" = (/obj/machinery/door/firedoor/glass,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/door/airlock/glass{name = "Central Access"},/turf/simulated/floor/tiled,/area/hallway/primary/central_one) "aYV" = (/obj/machinery/door/firedoor/glass,/obj/machinery/door/airlock/glass{name = "Central Access"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/simulated/floor/tiled,/area/hallway/primary/central_one) @@ -2760,7 +2760,7 @@ "bbd" = (/turf/space,/area/skipjack_station/northwest_solars) "bbe" = (/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 4},/obj/structure/closet/firecloset,/obj/effect/floor_decal/industrial/warning{dir = 8},/obj/machinery/alarm{dir = 4; icon_state = "alarm0"; pixel_x = -22; pixel_y = 0},/obj/machinery/camera/network/research{c_tag = "SCI - Research Auxiliary Access"; dir = 4},/turf/simulated/floor/tiled/white,/area/rnd/research_foyer_auxiliary) "bbf" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 6},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 10},/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/tiled/white,/area/rnd/research_foyer_auxiliary) -"bbg" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 8},/obj/structure/sink{dir = 4; icon_state = "sink"; pixel_x = 11; pixel_y = 0},/obj/effect/floor_decal/industrial/warning{dir = 4},/obj/machinery/light{dir = 4; icon_state = "tube1"; pixel_x = 0},/turf/simulated/floor/tiled/white,/area/rnd/research_foyer_auxiliary) +"bbg" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 9; pixel_y = 0},/obj/machinery/light/small{dir = 4; pixel_y = 0},/obj/item/weapon/shovel,/obj/structure/closet/crate,/obj/item/weapon/storage/bag/ore,/obj/item/stack/material/gold,/turf/simulated/floor,/area/maintenance/locker) "bbh" = (/obj/structure/window/reinforced,/obj/machinery/newscaster{pixel_x = -31; pixel_y = 0},/obj/machinery/camera/network/civilian{c_tag = "CIV - Gateway"; dir = 4},/turf/simulated/floor/tiled/dark,/area/gateway) "bbi" = (/obj/machinery/gateway{dir = 10},/obj/effect/landmark{name = "JoinLateGateway"},/turf/simulated/floor/tiled/dark,/area/gateway) "bbj" = (/obj/machinery/gateway,/obj/effect/landmark{name = "JoinLateGateway"},/turf/simulated/floor/tiled/dark,/area/gateway) @@ -2872,8 +2872,8 @@ "bdl" = (/turf/simulated/wall/r_wall,/area/ai_upload) "bdm" = (/obj/structure/cable/cyan{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/door/airlock/highsecurity{name = "AI Upload"; req_access = list(16)},/obj/machinery/door/firedoor/border_only,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/tiled/dark,/area/ai_upload) "bdn" = (/obj/structure/closet/crate{name = "Camera Assembly Crate"},/obj/item/weapon/camera_assembly,/obj/item/weapon/camera_assembly,/obj/item/weapon/camera_assembly,/obj/item/weapon/camera_assembly,/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 1},/turf/simulated/floor/tiled/dark,/area/ai_cyborg_station) -"bdo" = (/obj/machinery/recharge_station,/obj/machinery/camera/network/command{c_tag = "AI - Cyborg Station"; dir = 1},/turf/simulated/floor/bluegrid,/area/ai_cyborg_station) -"bdp" = (/obj/machinery/recharge_station,/turf/simulated/floor/bluegrid,/area/ai_cyborg_station) +"bdo" = (/obj/machinery/recharge_station/map,/obj/machinery/camera/network/command{c_tag = "AI - Cyborg Station"; dir = 1},/turf/simulated/floor/bluegrid,/area/ai_cyborg_station) +"bdp" = (/obj/machinery/recharge_station/map,/turf/simulated/floor/bluegrid,/area/ai_cyborg_station) "bdq" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/hydroponics/garden) "bdr" = (/obj/effect/floor_decal/spline/fancy/wood{dir = 4},/obj/machinery/portable_atmospherics/hydroponics/soil,/obj/machinery/camera/network/civilian{c_tag = "CIV - Park Port"; dir = 4},/turf/simulated/floor/grass,/area/hydroponics/garden) "bds" = (/obj/effect/floor_decal/spline/fancy/wood{tag = "icon-spline_fancy (SOUTHWEST)"; icon_state = "spline_fancy"; dir = 10},/obj/structure/flora/ausbushes/sparsegrass,/obj/structure/flora/ausbushes/brflowers,/turf/simulated/floor/grass,/area/hydroponics/garden) @@ -2930,9 +2930,9 @@ "ber" = (/obj/structure/flora/pottedplant{tag = "icon-plant-10"; icon_state = "plant-10"},/obj/machinery/alarm{pixel_y = 22},/obj/effect/floor_decal/corner/paleblue{dir = 9},/turf/simulated/floor/tiled/white,/area/medical/reception) "bes" = (/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/camera/network/northern_star{c_tag = "Hall - Central Primary Starboard Fore 2"; dir = 4},/turf/simulated/floor/tiled,/area/hallway/primary/central_two) "bet" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/tiled,/area/hallway/primary/central_two) -"beu" = (/obj/structure/closet/crate/medical,/obj/item/weapon/surgicaldrill,/obj/item/weapon/FixOVein,/obj/item/weapon/circular_saw,/obj/item/weapon/scalpel,/obj/item/stack/medical/advanced/bruise_pack,/obj/item/weapon/retractor,/obj/item/weapon/hemostat,/obj/item/weapon/cautery,/obj/item/weapon/bonesetter,/obj/item/weapon/bonegel,/obj/item/stack/nanopaste,/turf/simulated/floor/tiled/freezer,/area/medical/surgery_storage) +"beu" = (/turf/simulated/mineral/ignore_mapgen,/area/mine/unexplored/upper_level) "bev" = (/turf/simulated/floor/tiled/freezer,/area/medical/surgery_storage) -"bew" = (/obj/item/device/radio/intercom{dir = 4; name = "Station Intercom (General)"; pixel_x = 21},/turf/simulated/floor/tiled/freezer,/area/medical/surgery_storage) +"bew" = (/obj/structure/closet/emcloset,/obj/item/weapon/storage/toolbox/emergency,/obj/item/weapon/storage/toolbox/emergency,/turf/simulated/floor/tiled/dark,/area/gateway) "bex" = (/obj/structure/closet/crate,/obj/item/weapon/coin/silver,/obj/effect/decal/cleanable/cobweb2{tag = "icon-cobweb1"; icon_state = "cobweb1"},/turf/simulated/floor/plating,/area/maintenance/medbay_fore) "bey" = (/obj/structure/closet/crate,/obj/item/clothing/shoes/combat,/obj/item/weapon/tank/air,/obj/item/weapon/tank/air,/obj/item/weapon/tank/air,/obj/item/clothing/mask/gas,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plating,/area/maintenance/medbay_fore) "bez" = (/obj/structure/reagent_dispensers/watertank,/turf/simulated/floor,/area/maintenance/medbay_fore) @@ -2952,8 +2952,8 @@ "beN" = (/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/newscaster{pixel_x = 28; pixel_y = 1},/turf/simulated/floor/tiled,/area/hallway/primary/central_four) "beO" = (/obj/structure/table/standard,/obj/item/weapon/hand_tele,/turf/simulated/floor/tiled/dark,/area/teleporter) "beP" = (/obj/machinery/computer/teleporter,/turf/simulated/floor/tiled/dark,/area/teleporter) -"beQ" = (/obj/machinery/teleport/station,/turf/simulated/floor/tiled/dark,/area/teleporter) -"beR" = (/obj/machinery/teleport/hub,/turf/simulated/floor/tiled/dark,/area/teleporter) +"beQ" = (/obj/machinery/teleport/station/map,/turf/simulated/floor/tiled/dark,/area/teleporter) +"beR" = (/obj/machinery/teleport/hub/map,/turf/simulated/floor/tiled/dark,/area/teleporter) "beS" = (/obj/machinery/porta_turret{dir = 8},/turf/simulated/floor/bluegrid,/area/ai_upload) "beT" = (/turf/simulated/floor/bluegrid,/area/ai_upload) "beU" = (/obj/structure/cable/cyan{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/dark,/area/ai_upload) @@ -2967,7 +2967,7 @@ "bfc" = (/obj/structure/table/standard,/obj/item/weapon/hemostat,/obj/item/weapon/cautery,/obj/effect/floor_decal/corner/pink/full{dir = 8},/obj/machinery/button/remote/blast_door{id = "surgeryobs2"; name = "Privacy Shutters"; pixel_x = -26; pixel_y = 0},/obj/machinery/alarm{pixel_y = 22},/turf/simulated/floor/tiled/white,/area/medical/surgery2) "bfd" = (/obj/structure/table/standard,/obj/item/stack/medical/advanced/bruise_pack,/obj/item/weapon/retractor,/obj/machinery/power/apc{dir = 1; name = "north bump"; pixel_x = 0; pixel_y = 24},/obj/structure/cable/green{d2 = 2; icon_state = "0-2"},/turf/simulated/floor/tiled/white,/area/medical/surgery2) "bfe" = (/obj/structure/table/standard,/obj/item/weapon/circular_saw{pixel_y = 8},/obj/item/weapon/scalpel,/obj/effect/floor_decal/corner/pink{dir = 5},/obj/item/device/radio/intercom{dir = 1; name = "Station Intercom (General)"; pixel_y = 21},/turf/simulated/floor/tiled/white,/area/medical/surgery2) -"bff" = (/obj/structure/table/standard,/obj/item/weapon/FixOVein,/obj/item/weapon/surgicaldrill,/obj/item/weapon/reagent_containers/spray/cleaner{desc = "Someone has crossed out the Space from Space Cleaner and written in Surgery. 'Do not remove under punishment of death!!!' is scrawled on the back."; name = "Surgery Cleaner"; pixel_x = 2; pixel_y = 2},/turf/simulated/floor/tiled/white,/area/medical/surgery2) +"bff" = (/obj/structure/mirror{pixel_y = 25},/turf/simulated/floor,/area/maintenance/library) "bfg" = (/obj/structure/closet/secure_closet/medical2,/obj/effect/floor_decal/corner/pink/full{dir = 1},/turf/simulated/floor/tiled/white,/area/medical/surgery2) "bfh" = (/turf/simulated/wall,/area/medical/surgery2) "bfi" = (/obj/machinery/disposal,/obj/structure/disposalpipe/trunk,/turf/simulated/floor/tiled/white,/area/medical/surgery_hallway) @@ -2983,7 +2983,7 @@ "bfs" = (/obj/machinery/light/small{dir = 4},/obj/machinery/portable_atmospherics/powered/pump/filled,/turf/simulated/floor,/area/rnd/research_storage) "bft" = (/obj/effect/floor_decal/corner/purple{dir = 9},/obj/machinery/firealarm{dir = 8; pixel_x = -24},/turf/simulated/floor/tiled/white,/area/rnd/research) "bfu" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/tiled/white,/area/rnd/research) -"bfv" = (/obj/effect/floor_decal/corner/purple{dir = 6},/obj/machinery/alarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/tiled/white,/area/rnd/research) +"bfv" = (/obj/effect/floor_decal/industrial/warning{dir = 1},/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/closet/emcloset,/obj/item/weapon/storage/toolbox/emergency,/obj/item/weapon/storage/toolbox/emergency,/turf/simulated/floor/tiled,/area/gateway) "bfw" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/machinery/door/firedoor/border_only,/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating,/area/gateway) "bfx" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/gateway) "bfy" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/gateway) @@ -3067,7 +3067,7 @@ "bgY" = (/turf/simulated/wall,/area/medical/exam_room) "bgZ" = (/turf/simulated/wall,/area/medical/cryo) "bha" = (/obj/structure/bookcase/manuals/medical,/obj/item/weapon/book/manual/stasis,/obj/effect/floor_decal/corner/paleblue/diagonal{dir = 4},/turf/simulated/floor/tiled/white,/area/crew_quarters/medbreak) -"bhb" = (/obj/structure/table/standard,/obj/machinery/recharger{pixel_y = 0},/obj/item/weapon/reagent_containers/food/drinks/britcup,/obj/effect/floor_decal/corner/paleblue/diagonal{dir = 4},/obj/machinery/newscaster{pixel_y = 32},/turf/simulated/floor/tiled/white,/area/crew_quarters/medbreak) +"bhb" = (/obj/structure/table/standard,/obj/machinery/recharger/map{pixel_y = 0},/obj/item/weapon/reagent_containers/food/drinks/britcup,/obj/effect/floor_decal/corner/paleblue/diagonal{dir = 4},/obj/machinery/newscaster{pixel_y = 32},/turf/simulated/floor/tiled/white,/area/crew_quarters/medbreak) "bhc" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 6},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 1},/obj/machinery/navbeacon{codes_txt = "patrol;next_patrol=CH5"; location = "CH4"},/turf/simulated/floor/tiled,/area/hallway/primary/central_two) "bhd" = (/obj/machinery/vending/cola,/obj/effect/floor_decal/corner/paleblue/diagonal{dir = 4},/turf/simulated/floor/tiled/white,/area/crew_quarters/medbreak) "bhe" = (/obj/machinery/vending/coffee,/obj/effect/floor_decal/corner/paleblue/diagonal{dir = 4},/turf/simulated/floor/tiled/white,/area/crew_quarters/medbreak) @@ -3114,7 +3114,7 @@ "bhT" = (/obj/structure/closet/secure_closet/medical1,/obj/effect/floor_decal/corner/pink/full{dir = 1},/turf/simulated/floor/tiled/white,/area/medical/exam_room) "bhU" = (/obj/item/weapon/wrench,/obj/item/weapon/reagent_containers/glass/beaker/cryoxadone{pixel_x = 7; pixel_y = 1},/obj/item/weapon/reagent_containers/glass/beaker/cryoxadone{pixel_x = -4; pixel_y = 0},/obj/structure/table/glass,/obj/effect/floor_decal/corner/pink/full{dir = 8},/obj/effect/floor_decal/industrial/warning{dir = 4},/turf/simulated/floor/tiled/white,/area/medical/cryo) "bhV" = (/obj/machinery/atmospherics/unary/cryo_cell,/obj/effect/floor_decal/industrial/outline/yellow,/turf/simulated/floor/tiled,/area/medical/cryo) -"bhW" = (/obj/machinery/atmospherics/unary/freezer{dir = 2; icon_state = "freezer"},/obj/effect/floor_decal/industrial/outline/yellow,/turf/simulated/floor/tiled,/area/medical/cryo) +"bhW" = (/obj/machinery/atmospherics/unary/freezer/map{dir = 2; icon_state = "freezer"},/obj/effect/floor_decal/industrial/outline/yellow,/turf/simulated/floor/tiled,/area/medical/cryo) "bhX" = (/obj/machinery/vending/snack,/obj/effect/floor_decal/corner/paleblue/diagonal{dir = 4},/turf/simulated/floor/tiled/white,/area/crew_quarters/medbreak) "bhY" = (/obj/effect/floor_decal/corner/paleblue/diagonal{dir = 4},/turf/simulated/floor/tiled/white,/area/crew_quarters/medbreak) "bhZ" = (/obj/item/weapon/stool/padded,/obj/effect/floor_decal/corner/paleblue/diagonal{dir = 4},/turf/simulated/floor/tiled/white,/area/crew_quarters/medbreak) @@ -3167,7 +3167,7 @@ "biU" = (/obj/machinery/iv_drip,/obj/machinery/firealarm{dir = 1; pixel_y = -24},/turf/simulated/floor/tiled/white,/area/medical/surgery2) "biV" = (/obj/structure/bed/chair/wood{dir = 8},/obj/effect/floor_decal/corner/brown{dir = 10},/obj/machinery/computer/security/telescreen/entertainment{icon_state = "frame"; pixel_x = 0; pixel_y = -32},/turf/simulated/floor/tiled/white,/area/crew_quarters/coffee_shop) "biW" = (/obj/machinery/vending/wallmed1{pixel_y = -32},/obj/machinery/camera/network/medbay{c_tag = "MED - Operating Theatre 2"; dir = 1},/turf/simulated/floor/tiled/white,/area/medical/surgery2) -"biX" = (/obj/structure/sink{dir = 4; icon_state = "sink"; pixel_x = 11; pixel_y = 0},/obj/machinery/light_switch{pixel_x = 32; pixel_y = 2},/obj/effect/floor_decal/corner/pink/full{dir = 4},/obj/machinery/button/holosign{pixel_x = 24; pixel_y = 2},/turf/simulated/floor/tiled/white,/area/medical/surgery2) +"biX" = (/obj/structure/bed/padded,/obj/item/weapon/bedsheet/mime,/obj/item/weapon/pen/crayon/mime,/turf/simulated/floor,/area/maintenance/library) "biY" = (/obj/structure/table/standard,/obj/item/weapon/reagent_containers/blood/OMinus,/obj/item/weapon/reagent_containers/blood/OMinus,/obj/item/weapon/reagent_containers/blood/OMinus,/turf/simulated/floor/tiled/white,/area/medical/surgery_hallway) "biZ" = (/obj/structure/table/standard,/obj/item/weapon/cane,/obj/item/weapon/cane{pixel_x = -3; pixel_y = 2},/obj/item/weapon/storage/box/rxglasses,/obj/effect/floor_decal/corner/pink{dir = 9},/obj/machinery/light{icon_state = "tube1"; dir = 8},/obj/machinery/alarm{dir = 4; pixel_x = -23; pixel_y = 0},/turf/simulated/floor/tiled/white,/area/medical/exam_room) "bja" = (/obj/structure/bed/chair/office/light{dir = 1},/turf/simulated/floor/tiled/white,/area/medical/exam_room) @@ -3194,13 +3194,13 @@ "bjv" = (/obj/effect/floor_decal/corner/lime{dir = 10},/turf/simulated/floor/tiled/white,/area/medical/virology) "bjw" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/medical/virology) "bjx" = (/obj/item/roller,/obj/effect/floor_decal/corner/lime{dir = 10},/obj/item/device/radio/intercom{dir = 4; name = "Station Intercom (General)"; pixel_x = 21},/turf/simulated/floor/tiled/white,/area/medical/virology) -"bjy" = (/obj/machinery/r_n_d/server/robotics,/turf/simulated/floor/bluegrid{name = "Server Base"; nitrogen = 500; oxygen = 0; temperature = 80},/area/server) +"bjy" = (/obj/machinery/r_n_d/server/robotics/map,/turf/simulated/floor/bluegrid{name = "Server Base"; nitrogen = 500; oxygen = 0; temperature = 80},/area/server) "bjz" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 4; icon_state = "map_vent_out"; use_power = 1},/turf/simulated/floor/bluegrid{name = "Server Base"; nitrogen = 500; oxygen = 0; temperature = 80},/area/server) "bjA" = (/obj/machinery/atmospherics/pipe/simple/hidden{tag = "icon-intact (EAST)"; icon_state = "intact"; dir = 4},/turf/simulated/floor/tiled/dark,/area/server) "bjB" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/structure/sign/securearea{desc = "A warning sign which reads 'SERVER ROOM'."; name = "SERVER ROOM"; pixel_y = 32},/obj/machinery/atmospherics/pipe/simple/hidden{tag = "icon-intact (EAST)"; icon_state = "intact"; dir = 4},/turf/simulated/floor/plating,/area/server) "bjC" = (/obj/machinery/atmospherics/pipe/simple/hidden{dir = 10; icon_state = "intact"; tag = "icon-intact-f (SOUTHWEST)"},/obj/machinery/light/small{dir = 1},/obj/structure/cable/green{d2 = 2; icon_state = "0-2"},/obj/machinery/power/apc/high{dir = 1; name = "north bump"; pixel_y = 24},/turf/simulated/floor/tiled/dark,/area/server) "bjD" = (/obj/machinery/camera/network/research{c_tag = "SCI - Server Room"},/obj/machinery/portable_atmospherics/canister/nitrogen,/obj/machinery/atmospherics/portables_connector,/turf/simulated/floor/tiled/dark,/area/server) -"bjE" = (/obj/machinery/atmospherics/unary/freezer{dir = 2; icon_state = "freezer_1"; use_power = 1; power_setting = 20; set_temperature = 73},/obj/machinery/alarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/turf/simulated/floor/tiled/dark,/area/server) +"bjE" = (/obj/machinery/atmospherics/unary/freezer/map{dir = 2; icon_state = "freezer_1"; use_power = 1; power_setting = 20; set_temperature = 73},/obj/machinery/alarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/turf/simulated/floor/tiled/dark,/area/server) "bjF" = (/obj/effect/floor_decal/corner/purple{dir = 1},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 5},/obj/effect/floor_decal/industrial/warning/corner{dir = 8},/obj/machinery/light{dir = 8},/turf/simulated/floor/tiled/white,/area/rnd/research) "bjG" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 6},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 1},/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/tiled/white,/area/rnd/research) "bjH" = (/obj/machinery/atmospherics/pipe/manifold/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled/white,/area/rnd/research) @@ -3231,7 +3231,7 @@ "bkg" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/hologram/holopad,/obj/structure/cable/green{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/simulated/floor/tiled,/area/medical/surgeryobs) "bkh" = (/obj/machinery/atmospherics/unary/vent_pump/on,/obj/machinery/alarm{dir = 4; pixel_x = -23; pixel_y = 0},/turf/simulated/floor/tiled/freezer,/area/medical/surgery_storage) "bki" = (/obj/machinery/status_display,/turf/simulated/wall,/area/medical/surgery2) -"bkj" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 4},/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/disposalpipe/segment,/obj/machinery/light{dir = 8},/turf/simulated/floor/tiled/white,/area/medical/surgery_hallway) +"bkj" = (/obj/structure/closet/crate/medical,/obj/item/weapon/surgicaldrill,/obj/item/weapon/FixOVein,/obj/item/weapon/circular_saw,/obj/item/weapon/scalpel,/obj/item/stack/medical/advanced/bruise_pack,/obj/item/weapon/retractor,/obj/item/weapon/hemostat,/obj/item/weapon/cautery,/obj/item/weapon/bonesetter,/obj/item/weapon/bonegel,/obj/item/stack/nanopaste,/obj/item/weapon/autopsy_scanner,/obj/item/weapon/reagent_containers/spray/cleaner{desc = "Someone has crossed out the Space from Space Cleaner and written in Surgery. 'Do not remove under punishment of death!!!' is scrawled on the back."; name = "Surgery Cleaner"; pixel_x = 2; pixel_y = 2},/turf/simulated/floor/tiled/freezer,/area/medical/surgery_storage) "bkk" = (/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/tiled/white,/area/medical/surgery_hallway) "bkl" = (/obj/item/weapon/reagent_containers/blood/empty,/obj/item/weapon/reagent_containers/blood/empty,/obj/item/weapon/reagent_containers/blood/empty,/obj/item/weapon/reagent_containers/blood/empty,/obj/item/weapon/reagent_containers/blood/empty,/obj/structure/table/standard,/obj/machinery/power/apc{dir = 4; name = "east bump"; pixel_x = 24},/obj/structure/cable/green{d2 = 8; icon_state = "0-8"},/turf/simulated/floor/tiled/white,/area/medical/surgery_hallway) "bkm" = (/obj/structure/table/standard,/obj/item/weapon/reagent_containers/syringe/antiviral,/obj/item/weapon/storage/pill_bottle/antitox,/obj/item/weapon/storage/pill_bottle/tramadol,/obj/structure/closet/secure_closet/medical_wall{name = "Pill Cabinet"; pixel_y = -32},/obj/effect/floor_decal/corner/pink/full,/obj/machinery/firealarm{dir = 8; pixel_x = -24},/turf/simulated/floor/tiled/white,/area/medical/exam_room) @@ -3310,7 +3310,7 @@ "blH" = (/obj/structure/table/standard,/obj/item/weapon/hemostat,/obj/item/weapon/cautery,/obj/machinery/button/remote/blast_door{id = "surgeryobs"; name = "Privacy Shutters"; pixel_x = -26; pixel_y = 0},/obj/effect/floor_decal/corner/pink/full{dir = 8},/obj/machinery/alarm{pixel_y = 22},/turf/simulated/floor/tiled/white,/area/medical/surgery) "blI" = (/obj/structure/table/standard,/obj/item/stack/medical/advanced/bruise_pack,/obj/item/weapon/retractor,/obj/machinery/power/apc{dir = 1; name = "north bump"; pixel_x = 0; pixel_y = 24},/obj/structure/cable/green{d2 = 2; icon_state = "0-2"},/turf/simulated/floor/tiled/white,/area/medical/surgery) "blJ" = (/obj/structure/table/standard,/obj/item/weapon/circular_saw{pixel_y = 8},/obj/item/weapon/scalpel,/obj/effect/floor_decal/corner/pink{dir = 5},/obj/item/device/radio/intercom{dir = 1; name = "Station Intercom (General)"; pixel_y = 21},/turf/simulated/floor/tiled/white,/area/medical/surgery) -"blK" = (/obj/structure/table/standard,/obj/item/weapon/FixOVein,/obj/item/weapon/surgicaldrill,/obj/item/weapon/reagent_containers/spray/cleaner{desc = "Someone has crossed out the Space from Space Cleaner and written in Surgery. 'Do not remove under punishment of death!!!' is scrawled on the back."; name = "Surgery Cleaner"; pixel_x = 2; pixel_y = 2},/turf/simulated/floor/tiled/white,/area/medical/surgery) +"blK" = (/obj/structure/lattice,/obj/structure/grille,/obj/structure/grille,/turf/space,/area/space) "blL" = (/obj/structure/closet/secure_closet/medical2,/obj/effect/floor_decal/corner/pink/full{dir = 1},/turf/simulated/floor/tiled/white,/area/medical/surgery) "blM" = (/turf/simulated/wall,/area/medical/surgery) "blN" = (/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment,/obj/machinery/camera/network/medbay{c_tag = "MED - Surgery Hallway"; dir = 4},/obj/item/device/radio/intercom{dir = 8; name = "Station Intercom (General)"; pixel_x = -21},/turf/simulated/floor/tiled/white,/area/medical/surgery_hallway) @@ -3339,11 +3339,11 @@ "bmk" = (/obj/structure/bed/padded,/obj/item/weapon/bedsheet/green,/obj/effect/floor_decal/corner/lime/full{dir = 8},/obj/machinery/alarm{dir = 4; icon_state = "alarm0"; pixel_x = -22},/turf/simulated/floor/tiled/white,/area/medical/virology) "bml" = (/obj/effect/floor_decal/corner/lime{dir = 5},/obj/machinery/firealarm{dir = 2; pixel_y = 24},/turf/simulated/floor/tiled/white,/area/medical/virology) "bmm" = (/turf/simulated/floor/tiled/white,/area/medical/virology) -"bmn" = (/obj/machinery/washing_machine,/obj/effect/floor_decal/corner/lime/full{dir = 1},/turf/simulated/floor/tiled/white,/area/medical/virology) +"bmn" = (/obj/machinery/washing_machine/map,/obj/effect/floor_decal/corner/lime/full{dir = 1},/turf/simulated/floor/tiled/white,/area/medical/virology) "bmo" = (/turf/simulated/shuttle/wall,/area/shuttle/research/station) "bmp" = (/turf/simulated/shuttle/wall{icon_state = "swall_straight"; dir = 4},/area/shuttle/research/station) "bmq" = (/obj/structure/window/shuttle,/obj/structure/grille,/turf/simulated/shuttle/plating,/area/shuttle/research/station) -"bmr" = (/obj/machinery/r_n_d/server/core,/turf/simulated/floor/bluegrid{name = "Server Base"; nitrogen = 500; oxygen = 0; temperature = 80},/area/server) +"bmr" = (/obj/machinery/r_n_d/server/core/map,/turf/simulated/floor/bluegrid{name = "Server Base"; nitrogen = 500; oxygen = 0; temperature = 80},/area/server) "bms" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 4; external_pressure_bound = 0; external_pressure_bound_default = 0; icon_state = "map_vent_in"; initialize_directions = 1; internal_pressure_bound = 4000; internal_pressure_bound_default = 4000; use_power = 1; pressure_checks = 2; pressure_checks_default = 2; pump_direction = 0},/turf/simulated/floor/bluegrid{name = "Server Base"; nitrogen = 500; oxygen = 0; temperature = 80},/area/server) "bmt" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/structure/sign/securearea{desc = "A warning sign which reads 'SERVER ROOM'."; name = "SERVER ROOM"; pixel_y = -32},/obj/machinery/atmospherics/pipe/simple/hidden{tag = "icon-intact (EAST)"; icon_state = "intact"; dir = 4},/turf/simulated/floor/plating,/area/server) "bmu" = (/obj/machinery/atmospherics/pipe/simple/hidden{dir = 9; icon_state = "intact"; tag = "icon-intact-f (NORTHWEST)"},/obj/machinery/firealarm{dir = 1; pixel_x = 0; pixel_y = -26},/turf/simulated/floor/tiled/dark,/area/server) @@ -3357,7 +3357,7 @@ "bmC" = (/obj/structure/closet/wardrobe/science_white,/obj/machinery/alarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/obj/effect/floor_decal/corner/purple/diagonal,/obj/machinery/atmospherics/unary/vent_pump/on{dir = 8},/turf/simulated/floor/tiled/white,/area/rnd/research_restroom) "bmD" = (/obj/machinery/disposal,/obj/structure/disposalpipe/trunk,/turf/simulated/floor/tiled/dark,/area/rnd/lab) "bmE" = (/obj/structure/table/standard,/obj/item/weapon/storage/belt/utility,/obj/item/clothing/gloves/latex,/obj/machinery/status_display{density = 0; layer = 4; pixel_x = 0; pixel_y = 32},/turf/simulated/floor/tiled/dark,/area/rnd/lab) -"bmF" = (/obj/machinery/autolathe,/obj/machinery/light{dir = 1},/turf/simulated/floor/tiled/dark,/area/rnd/lab) +"bmF" = (/obj/machinery/autolathe/map,/obj/machinery/light{dir = 1},/turf/simulated/floor/tiled/dark,/area/rnd/lab) "bmG" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/firedoor/border_only,/obj/machinery/door/blast/regular{density = 0; dir = 4; icon_state = "pdoor0"; id = "Biohazard"; name = "Biohazard Shutter"; opacity = 0},/turf/simulated/shuttle/plating,/area/rnd/lab) "bmH" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/machinery/door/firedoor/border_only,/obj/machinery/door/blast/regular{density = 0; dir = 4; icon_state = "pdoor0"; id = "Biohazard"; name = "Biohazard Shutter"; opacity = 0},/turf/simulated/shuttle/plating,/area/rnd/lab) "bmI" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/machinery/door/firedoor/border_only,/obj/machinery/door/blast/regular{density = 0; dir = 4; icon_state = "pdoor0"; id = "Biohazard"; name = "Biohazard Shutter"; opacity = 0},/obj/structure/window/reinforced{dir = 4},/turf/simulated/shuttle/plating,/area/rnd/lab) @@ -3398,7 +3398,7 @@ "bnr" = (/obj/machinery/computer/med_data,/obj/effect/floor_decal/corner/paleblue/diagonal{dir = 4},/obj/machinery/light,/turf/simulated/floor/tiled/white,/area/crew_quarters/medbreak) "bns" = (/obj/effect/floor_decal/corner/paleblue/diagonal{dir = 4},/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,/obj/structure/disposalpipe/segment,/turf/simulated/floor/tiled/white,/area/crew_quarters/medbreak) "bnt" = (/obj/structure/closet/wardrobe/medic_white,/obj/effect/floor_decal/corner/paleblue/diagonal{dir = 4},/obj/machinery/light,/turf/simulated/floor/tiled/white,/area/crew_quarters/medbreak) -"bnu" = (/obj/machinery/washing_machine,/obj/effect/floor_decal/corner/paleblue/diagonal{dir = 4},/turf/simulated/floor/tiled/white,/area/crew_quarters/medbreak) +"bnu" = (/obj/machinery/washing_machine/map,/obj/effect/floor_decal/corner/paleblue/diagonal{dir = 4},/turf/simulated/floor/tiled/white,/area/crew_quarters/medbreak) "bnv" = (/obj/machinery/shower{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/machinery/door/window/northleft{name = "Shower"; req_access = list()},/obj/structure/curtain/open/shower/medical,/turf/simulated/floor/tiled/freezer,/area/crew_quarters/medical_restroom) "bnw" = (/obj/machinery/shower{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/window/northright{dir = 1; name = "Shower"; req_access = list()},/obj/structure/curtain/open/shower/medical,/turf/simulated/floor/tiled/freezer,/area/crew_quarters/medical_restroom) "bnx" = (/obj/structure/toilet{dir = 1},/obj/effect/landmark{name = "xeno_spawn"; pixel_x = -1},/obj/machinery/light/small{dir = 4},/turf/simulated/floor/tiled/freezer,/area/crew_quarters/medical_restroom) @@ -3438,7 +3438,7 @@ "bof" = (/obj/effect/floor_decal/corner/purple{dir = 5},/obj/machinery/camera/network/research{c_tag = "SCI - R&D Lab"},/turf/simulated/floor/tiled/white,/area/rnd/lab) "bog" = (/obj/structure/table/standard{name = "plastic table frame"},/obj/item/stack/material/glass{amount = 50; pixel_x = 3; pixel_y = 3},/obj/item/stack/material/steel{amount = 50},/obj/item/clothing/glasses/welding,/obj/effect/floor_decal/corner/purple{dir = 5},/turf/simulated/floor/tiled/white,/area/rnd/lab) "boh" = (/obj/structure/table/standard,/obj/item/weapon/hand_labeler,/obj/item/weapon/pen,/obj/item/weapon/packageWrap,/obj/item/weapon/packageWrap,/obj/effect/floor_decal/corner/purple{dir = 5},/turf/simulated/floor/tiled/white,/area/rnd/lab) -"boi" = (/obj/item/weapon/stock_parts/console_screen,/obj/structure/table/standard,/obj/item/weapon/stock_parts/console_screen,/obj/item/weapon/stock_parts/console_screen,/obj/item/weapon/stock_parts/matter_bin,/obj/item/weapon/stock_parts/matter_bin,/obj/effect/floor_decal/corner/purple/full{dir = 1},/obj/machinery/firealarm{dir = 4; layer = 3.3; pixel_x = 26},/obj/machinery/recharger{pixel_y = 0},/turf/simulated/floor/tiled/white,/area/rnd/lab) +"boi" = (/obj/item/weapon/stock_parts/console_screen,/obj/structure/table/standard,/obj/item/weapon/stock_parts/console_screen,/obj/item/weapon/stock_parts/console_screen,/obj/item/weapon/stock_parts/matter_bin,/obj/item/weapon/stock_parts/matter_bin,/obj/effect/floor_decal/corner/purple/full{dir = 1},/obj/machinery/firealarm{dir = 4; layer = 3.3; pixel_x = 26},/obj/machinery/recharger/map{pixel_y = 0},/turf/simulated/floor/tiled/white,/area/rnd/lab) "boj" = (/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/alarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/turf/simulated/floor/tiled,/area/hallway/primary/central_four) "bok" = (/obj/structure/closet/crate,/obj/item/weapon/crowbar,/turf/simulated/floor/tiled,/area/teleporter) "bol" = (/obj/structure/closet/crate,/turf/simulated/floor/tiled,/area/teleporter) @@ -3547,7 +3547,7 @@ "bqk" = (/obj/effect/floor_decal/corner/paleblue{dir = 5},/obj/machinery/light{dir = 1},/turf/simulated/floor/tiled/white,/area/medical/sleeper) "bql" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment,/turf/simulated/floor/tiled/white,/area/medical/sleeper) "bqm" = (/obj/effect/floor_decal/corner/paleblue{dir = 4},/turf/simulated/floor/tiled/white,/area/medical/sleeper) -"bqn" = (/obj/machinery/recharge_station,/obj/effect/floor_decal/corner/paleblue{dir = 5},/turf/simulated/floor/tiled/white,/area/medical/sleeper) +"bqn" = (/obj/machinery/recharge_station/map,/obj/effect/floor_decal/corner/paleblue{dir = 5},/turf/simulated/floor/tiled/white,/area/medical/sleeper) "bqo" = (/obj/structure/table/standard,/obj/item/weapon/storage/box/bodybags{pixel_x = 1; pixel_y = 2},/obj/machinery/power/apc{dir = 8; name = "west bump"; pixel_x = -24},/obj/effect/floor_decal/corner/mauve{dir = 5},/obj/structure/cable/green{d2 = 2; icon_state = "0-2"},/obj/item/device/radio/intercom{dir = 1; name = "Station Intercom (General)"; pixel_y = 21},/obj/machinery/light_switch{pixel_x = -36; pixel_y = 0},/turf/simulated/floor/tiled/white,/area/medical/genetics_cloning) "bqp" = (/obj/machinery/camera/network/security{c_tag = "SEC - Secure Armory Armor"; dir = 8},/obj/machinery/firealarm{dir = 4; pixel_x = 24},/turf/simulated/floor/tiled/dark,/area/security/armoury) "bqq" = (/obj/structure/window/reinforced{dir = 8},/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/tiled,/area/medical/genetics_cloning) @@ -3596,13 +3596,13 @@ "brh" = (/obj/machinery/vending/coffee,/turf/simulated/floor/wood,/area/rnd/research) "bri" = (/obj/effect/floor_decal/corner/purple{dir = 9},/turf/simulated/floor/tiled/white,/area/rnd/research) "brj" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/structure/cable/green{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/simulated/floor/tiled/white,/area/rnd/research) -"brk" = (/obj/effect/floor_decal/corner/purple{dir = 6},/obj/structure/extinguisher_cabinet{pixel_x = 5; pixel_y = 28},/obj/structure/table/standard,/obj/machinery/recharger,/obj/structure/cable/green{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/simulated/floor/tiled/white,/area/rnd/research) +"brk" = (/obj/effect/floor_decal/corner/purple{dir = 6},/obj/structure/extinguisher_cabinet{pixel_x = 5; pixel_y = 28},/obj/structure/table/standard,/obj/machinery/recharger/map,/obj/structure/cable/green{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/simulated/floor/tiled/white,/area/rnd/research) "brl" = (/turf/simulated/wall,/area/rnd/lab) "brm" = (/obj/effect/floor_decal/corner/purple{dir = 9},/obj/machinery/light{dir = 8},/obj/structure/disposalpipe/segment,/turf/simulated/floor/tiled/white,/area/rnd/lab) "brn" = (/obj/effect/floor_decal/industrial/warning{dir = 4},/turf/simulated/floor/tiled/white,/area/rnd/lab) -"bro" = (/obj/machinery/r_n_d/destructive_analyzer,/turf/simulated/floor/tiled,/area/rnd/lab) +"bro" = (/obj/machinery/r_n_d/destructive_analyzer/map,/turf/simulated/floor/tiled,/area/rnd/lab) "brp" = (/turf/simulated/floor/tiled,/area/rnd/lab) -"brq" = (/obj/machinery/r_n_d/protolathe,/turf/simulated/floor/tiled,/area/rnd/lab) +"brq" = (/obj/machinery/r_n_d/protolathe/map,/turf/simulated/floor/tiled,/area/rnd/lab) "brr" = (/obj/effect/floor_decal/industrial/warning{dir = 8},/turf/simulated/floor/tiled/white,/area/rnd/lab) "brs" = (/obj/structure/table/standard,/obj/item/stack/cable_coil,/obj/item/stack/cable_coil{pixel_x = 3; pixel_y = 3},/obj/item/weapon/stock_parts/scanning_module{pixel_x = 2; pixel_y = 3},/obj/item/weapon/stock_parts/scanning_module,/obj/effect/floor_decal/corner/purple{dir = 6},/obj/machinery/light{dir = 4; icon_state = "tube1"; pixel_x = 0},/turf/simulated/floor/tiled/white,/area/rnd/lab) "brt" = (/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 4},/obj/structure/disposalpipe/segment,/obj/machinery/camera/network/northern_star{c_tag = "Hall - Central Primary Port Fore 2"; dir = 4},/turf/simulated/floor/tiled,/area/hallway/primary/central_four) @@ -3624,7 +3624,7 @@ "brJ" = (/obj/machinery/iv_drip,/obj/machinery/firealarm{dir = 1; pixel_y = -24},/turf/simulated/floor/tiled/white,/area/medical/surgery) "brK" = (/obj/item/weapon/stool/padded,/obj/effect/floor_decal/corner/paleblue/diagonal{dir = 4},/obj/item/device/radio/intercom{broadcasting = 0; canhear_range = 5; dir = 8; frequency = 1487; icon_state = "intercom"; listening = 0; name = "Station Intercom (Medbay)"; pixel_x = -21; pixel_y = 0},/turf/simulated/floor/tiled/white,/area/crew_quarters/medbreak) "brL" = (/obj/machinery/vending/wallmed1{pixel_y = -32},/obj/machinery/camera/network/medbay{c_tag = "MED - Operating Theatre 1"; dir = 1},/turf/simulated/floor/tiled/white,/area/medical/surgery) -"brM" = (/obj/structure/sink{dir = 4; icon_state = "sink"; pixel_x = 11; pixel_y = 0},/obj/machinery/button/holosign{pixel_x = 24; pixel_y = 2},/obj/machinery/light_switch{pixel_x = 32; pixel_y = 2},/obj/effect/floor_decal/corner/pink/full{dir = 4},/turf/simulated/floor/tiled/white,/area/medical/surgery) +"brM" = (/obj/machinery/door/airlock/external{locked = 1; welded = 1},/turf/simulated/floor,/area/maintenance/library) "brN" = (/obj/structure/bed/chair/comfy/black{dir = 1},/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/turf/simulated/floor/tiled/white,/area/medical/surgery_hallway) "brO" = (/obj/structure/bed/chair/comfy/black{dir = 1},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 5},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 5},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/tiled/white,/area/medical/surgery_hallway) "brP" = (/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/machinery/light,/turf/simulated/floor/tiled/white,/area/medical/surgery_hallway) @@ -3677,7 +3677,7 @@ "bsK" = (/obj/machinery/requests_console{department = "Science"; departmentType = 2; name = "Science Requests Console"; pixel_x = -30; pixel_y = 0},/obj/effect/floor_decal/corner/purple{dir = 9},/obj/machinery/atmospherics/unary/vent_scrubber/on,/obj/structure/disposalpipe/segment,/turf/simulated/floor/tiled/white,/area/rnd/lab) "bsL" = (/obj/machinery/computer/rdconsole/core,/turf/simulated/floor/tiled,/area/rnd/lab) "bsM" = (/obj/machinery/hologram/holopad,/turf/simulated/floor/tiled,/area/rnd/lab) -"bsN" = (/obj/machinery/r_n_d/circuit_imprinter,/obj/item/weapon/reagent_containers/glass/beaker/sulphuric,/turf/simulated/floor/tiled,/area/rnd/lab) +"bsN" = (/obj/machinery/r_n_d/circuit_imprinter/map,/obj/item/weapon/reagent_containers/glass/beaker/sulphuric,/turf/simulated/floor/tiled,/area/rnd/lab) "bsO" = (/obj/effect/floor_decal/corner/purple{dir = 6},/obj/machinery/atmospherics/unary/vent_pump/on,/turf/simulated/floor/tiled/white,/area/rnd/lab) "bsP" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/firedoor/border_only,/obj/machinery/door/blast/regular{density = 0; icon_state = "pdoor0"; id = "Biohazard"; name = "Biohazard Shutter"; opacity = 0},/turf/simulated/floor/plating,/area/rnd/lab) "bsQ" = (/obj/machinery/porta_turret{dir = 4},/turf/simulated/floor/bluegrid,/area/ai) @@ -3719,7 +3719,7 @@ "btA" = (/obj/machinery/atmospherics/pipe/simple/hidden/black{dir = 4},/obj/machinery/hologram/holopad,/turf/simulated/floor/tiled/white,/area/medical/virology) "btB" = (/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 8},/turf/simulated/floor/tiled/white,/area/medical/virology) "btC" = (/obj/item/weapon/stool/padded,/obj/effect/floor_decal/corner/lime,/turf/simulated/floor/tiled/white,/area/medical/virology) -"btD" = (/obj/structure/table/standard,/obj/machinery/microwave{pixel_x = -3; pixel_y = 6},/obj/effect/floor_decal/corner/lime/full{dir = 4},/turf/simulated/floor/tiled/white,/area/medical/virology) +"btD" = (/obj/structure/table/standard,/obj/machinery/microwave/map{pixel_x = -3; pixel_y = 6},/obj/effect/floor_decal/corner/lime/full{dir = 4},/turf/simulated/floor/tiled/white,/area/medical/virology) "btE" = (/obj/machinery/power/solar{id = "portsolar"; name = "Port Solar Array"},/obj/structure/cable/yellow{d2 = 4; icon_state = "0-4"},/turf/simulated/floor/airless{icon_state = "solarpanel"},/area/solar/auxport) "btF" = (/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/cable/yellow{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/simulated/floor/airless,/area/solar/auxport) "btG" = (/obj/machinery/power/solar{id = "portsolar"; name = "Port Solar Array"},/obj/structure/cable/yellow{d2 = 8; icon_state = "0-8"},/turf/simulated/floor/airless{icon_state = "solarpanel"},/area/solar/auxport) @@ -3738,7 +3738,7 @@ "btT" = (/obj/machinery/alarm{dir = 4; icon_state = "alarm0"; pixel_x = -22; pixel_y = 0},/turf/simulated/floor/tiled/white,/area/rnd/research) "btU" = (/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 8},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/tiled/white,/area/rnd/research) "btV" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 8},/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/tiled/white,/area/rnd/research) -"btW" = (/obj/structure/table/glass,/obj/machinery/recharger{pixel_y = 0},/turf/simulated/floor/wood,/area/rnd/research) +"btW" = (/obj/structure/table/glass,/obj/machinery/recharger/map{pixel_y = 0},/turf/simulated/floor/wood,/area/rnd/research) "btX" = (/obj/structure/table/glass,/obj/machinery/atmospherics/unary/vent_pump/on{dir = 1},/turf/simulated/floor/wood,/area/rnd/research) "btY" = (/obj/machinery/hologram/holopad,/turf/simulated/floor/wood,/area/rnd/research) "btZ" = (/obj/machinery/door/firedoor/glass,/turf/simulated/floor/wood,/area/rnd/research) @@ -3761,7 +3761,7 @@ "buq" = (/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/white,/area/medical/reception) "bur" = (/obj/item/roller,/obj/item/roller{pixel_y = 8},/obj/item/roller{pixel_y = 16},/obj/structure/table/glass,/obj/structure/extinguisher_cabinet{pixel_x = -5; pixel_y = 30},/obj/effect/floor_decal/corner/paleblue{dir = 6},/turf/simulated/floor/tiled/white,/area/medical/reception) "bus" = (/obj/structure/table/standard,/obj/structure/window/reinforced{dir = 8},/obj/machinery/computer/med_data/laptop,/obj/machinery/status_display{density = 0; layer = 4; pixel_x = 0; pixel_y = 32},/obj/effect/floor_decal/corner/paleblue/full{dir = 8},/obj/machinery/camera/network/medbay{c_tag = "MED - Lobby Fore"; dir = 2},/obj/machinery/light{dir = 1},/turf/simulated/floor/tiled/white,/area/medical/reception) -"but" = (/obj/machinery/photocopier,/obj/item/device/radio/intercom{dir = 1; name = "Station Intercom (General)"; pixel_y = 21},/obj/effect/floor_decal/corner/paleblue{dir = 5},/turf/simulated/floor/tiled/white,/area/medical/reception) +"but" = (/obj/machinery/photocopier/map,/obj/item/device/radio/intercom{dir = 1; name = "Station Intercom (General)"; pixel_y = 21},/obj/effect/floor_decal/corner/paleblue{dir = 5},/turf/simulated/floor/tiled/white,/area/medical/reception) "buu" = (/obj/structure/filingcabinet/chestdrawer{name = "Medical Forms"},/obj/machinery/firealarm{dir = 2; pixel_y = 24},/obj/effect/floor_decal/corner/paleblue{dir = 5},/turf/simulated/floor/tiled/white,/area/medical/reception) "buv" = (/obj/structure/filingcabinet/medical{desc = "A large cabinet with hard copy medical records."; name = "Medical Records"},/obj/machinery/alarm{pixel_y = 22},/obj/effect/floor_decal/corner/paleblue/full{dir = 1},/obj/structure/extinguisher_cabinet{pixel_x = 25},/turf/simulated/floor/tiled/white,/area/medical/reception) "buw" = (/obj/structure/table/rack,/obj/item/weapon/storage/belt/medical,/obj/item/weapon/storage/belt/medical,/obj/item/weapon/storage/belt/medical,/obj/item/weapon/storage/belt/medical,/obj/item/weapon/storage/belt/medical,/obj/item/clothing/accessory/stethoscope,/obj/item/clothing/accessory/stethoscope,/obj/item/clothing/accessory/stethoscope,/obj/item/clothing/accessory/stethoscope,/obj/item/clothing/accessory/stethoscope,/obj/machinery/firealarm{dir = 2; pixel_y = 24},/obj/effect/floor_decal/corner/paleblue/full{dir = 8},/obj/machinery/light{dir = 8},/turf/simulated/floor/tiled/white,/area/medical/medbay_primary_storage) @@ -3774,10 +3774,10 @@ "buD" = (/obj/machinery/disposal,/obj/structure/disposalpipe/trunk{dir = 4},/obj/machinery/light{dir = 8},/turf/simulated/floor/tiled/white,/area/medical/sleeper) "buE" = (/obj/structure/disposalpipe/junction{dir = 1; icon_state = "pipe-j2"},/turf/simulated/floor/tiled/white,/area/medical/sleeper) "buF" = (/obj/effect/floor_decal/corner/pink{dir = 6},/turf/simulated/floor/tiled/white,/area/medical/sleeper) -"buG" = (/obj/machinery/bodyscanner{dir = 8},/turf/simulated/floor/tiled/white,/area/medical/sleeper) +"buG" = (/obj/machinery/bodyscanner/map{dir = 8},/turf/simulated/floor/tiled/white,/area/medical/sleeper) "buH" = (/obj/machinery/body_scanconsole,/turf/simulated/floor/tiled/white,/area/medical/sleeper) "buI" = (/obj/effect/floor_decal/corner/pink{dir = 9},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/tiled/white,/area/medical/sleeper) -"buJ" = (/obj/structure/extinguisher_cabinet{pixel_x = 25},/obj/effect/floor_decal/corner/paleblue{dir = 2},/obj/structure/disposalpipe/segment,/obj/machinery/light{dir = 4; icon_state = "tube1"; pixel_x = 0},/turf/simulated/floor/tiled/white,/area/medical/sleeper) +"buJ" = (/obj/item/device/radio/intercom{dir = 4; name = "Station Intercom (General)"; pixel_x = 21},/obj/structure/sink{dir = 4; icon_state = "sink"; pixel_x = 11; pixel_y = 0},/turf/simulated/floor/tiled/freezer,/area/medical/surgery_storage) "buK" = (/turf/simulated/wall,/area/crew_quarters/heads/cmo) "buL" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/structure/grille,/obj/machinery/door/blast/shutters{density = 0; dir = 1; icon_state = "shutter0"; id = "cmooffice"; name = "CMO Office Privacy Shutters"; opacity = 0},/turf/simulated/floor/plating,/area/crew_quarters/heads/cmo) "buM" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/structure/grille,/obj/machinery/door/blast/shutters{density = 0; dir = 1; icon_state = "shutter0"; id = "cmooffice"; name = "CMO Office Privacy Shutters"; opacity = 0},/turf/simulated/floor/plating,/area/crew_quarters/heads/cmo) @@ -3802,9 +3802,9 @@ "bvf" = (/obj/machinery/door/blast/regular{id = "trash"; name = "disposal mass driver"},/turf/simulated/floor/airless,/area/maintenance/disposal) "bvg" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/firedoor/border_only,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/turf/simulated/floor/plating,/area/maintenance/disposal) "bvh" = (/obj/machinery/disposal/deliveryChute{dir = 4},/obj/structure/disposalpipe/trunk{dir = 8},/obj/machinery/atmospherics/pipe/simple/hidden/yellow,/turf/simulated/floor,/area/maintenance/disposal) -"bvi" = (/obj/machinery/conveyor{dir = 4; id = "garbage"},/obj/machinery/light/small{dir = 1},/obj/structure/plasticflaps{opacity = 0},/turf/simulated/floor,/area/maintenance/disposal) -"bvj" = (/obj/machinery/conveyor{dir = 4; id = "garbage"},/obj/structure/sign/vacuum{pixel_x = 0; pixel_y = 32},/turf/simulated/floor,/area/maintenance/disposal) -"bvk" = (/obj/effect/decal/cleanable/cobweb2,/obj/machinery/conveyor{dir = 4; id = "garbage"},/turf/simulated/floor,/area/maintenance/disposal) +"bvi" = (/obj/machinery/conveyor/map{dir = 4; id = "garbage"},/obj/machinery/light/small{dir = 1},/obj/structure/plasticflaps{opacity = 0},/turf/simulated/floor,/area/maintenance/disposal) +"bvj" = (/obj/machinery/conveyor/map{dir = 4; id = "garbage"},/obj/structure/sign/vacuum{pixel_x = 0; pixel_y = 32},/turf/simulated/floor,/area/maintenance/disposal) +"bvk" = (/obj/effect/decal/cleanable/cobweb2,/obj/machinery/conveyor/map{dir = 4; id = "garbage"},/turf/simulated/floor,/area/maintenance/disposal) "bvl" = (/obj/effect/floor_decal/corner/purple/full,/obj/machinery/newscaster{pixel_x = -28; pixel_y = 0},/turf/simulated/floor/tiled/white,/area/rnd/research) "bvm" = (/obj/effect/floor_decal/corner/purple{dir = 10},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/tiled/white,/area/rnd/research) "bvn" = (/obj/effect/floor_decal/corner/purple/full{dir = 4},/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/tiled/white,/area/rnd/research) @@ -3861,7 +3861,7 @@ "bwm" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/tiled/white,/area/crew_quarters/heads/cmo) "bwn" = (/obj/effect/floor_decal/corner/paleblue{dir = 4},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/tiled/white,/area/crew_quarters/heads/cmo) "bwo" = (/obj/machinery/disposal,/obj/structure/disposalpipe/trunk{dir = 8},/obj/machinery/alarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/obj/effect/floor_decal/corner/paleblue/full{dir = 1},/turf/simulated/floor/tiled/white,/area/crew_quarters/heads/cmo) -"bwp" = (/obj/machinery/clonepod{biomass = 600},/obj/effect/floor_decal/corner/mauve/full,/turf/simulated/floor/tiled/white,/area/medical/genetics_cloning) +"bwp" = (/obj/machinery/clonepod/map{biomass = 600},/obj/effect/floor_decal/corner/mauve/full,/turf/simulated/floor/tiled/white,/area/medical/genetics_cloning) "bwq" = (/obj/machinery/computer/cloning,/obj/effect/floor_decal/corner/mauve{dir = 10},/obj/machinery/light,/turf/simulated/floor/tiled/white,/area/medical/genetics_cloning) "bwr" = (/obj/machinery/dna_scannernew,/obj/effect/floor_decal/corner/mauve{dir = 8},/turf/simulated/floor/tiled/white,/area/medical/genetics_cloning) "bws" = (/obj/structure/closet/wardrobe/genetics_white,/obj/effect/floor_decal/corner/mauve,/turf/simulated/floor/tiled/white,/area/medical/genetics_cloning) @@ -3878,12 +3878,12 @@ "bwD" = (/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 4; frequency = 1379; id_tag = "arrivals_pump"},/obj/effect/floor_decal/industrial/warning{dir = 9},/turf/simulated/floor,/area/maintenance/research) "bwE" = (/obj/machinery/atmospherics/pipe/manifold/visible{dir = 1},/obj/effect/floor_decal/industrial/warning{dir = 1},/turf/simulated/floor,/area/maintenance/research) "bwF" = (/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 8; frequency = 1379; id_tag = "arrivals_pump"},/obj/effect/floor_decal/industrial/warning{dir = 5},/obj/machinery/camera/network/exodus{c_tag = "CIV - Port Fore Airlock"; dir = 9},/turf/simulated/floor,/area/maintenance/research) -"bwG" = (/obj/machinery/mass_driver{dir = 1; id = "trash"},/turf/simulated/floor/airless,/area/maintenance/disposal) +"bwG" = (/obj/machinery/mass_driver/map{dir = 1; id = "trash"},/turf/simulated/floor/airless,/area/maintenance/disposal) "bwH" = (/obj/structure/disposaloutlet{dir = 8},/obj/structure/disposalpipe/trunk{dir = 1},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/turf/simulated/floor/airless,/area/maintenance/disposal) "bwI" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/firedoor/border_only,/obj/machinery/atmospherics/pipe/simple/hidden/yellow,/turf/simulated/floor/plating,/area/maintenance/disposal) "bwJ" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/maintenance/disposal) "bwK" = (/obj/structure/sign/biohazard,/turf/simulated/wall,/area/maintenance/disposal) -"bwL" = (/obj/machinery/conveyor{dir = 2; id = "garbage"},/turf/simulated/floor/plating,/area/maintenance/disposal) +"bwL" = (/obj/machinery/conveyor/map{dir = 2; id = "garbage"},/turf/simulated/floor/plating,/area/maintenance/disposal) "bwM" = (/turf/simulated/wall/r_wall,/area/rnd/misc_lab) "bwN" = (/obj/machinery/door/firedoor/glass,/obj/machinery/door/airlock/glass_research{name = "Research Hallway"; req_access = list(47)},/turf/simulated/floor/tiled/white,/area/rnd/research) "bwO" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/machinery/door/firedoor/border_only,/obj/structure/window/reinforced{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/plating,/area/rnd/research) @@ -3907,7 +3907,7 @@ "bxg" = (/obj/structure/bed/chair/office/light{dir = 8},/obj/effect/landmark/start{name = "Medical Doctor"},/turf/simulated/floor/tiled/white,/area/medical/reception) "bxh" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/tiled/white,/area/medical/reception) "bxi" = (/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/effect/floor_decal/corner/paleblue{dir = 4},/obj/structure/cable/green{d2 = 2; icon_state = "0-2"},/turf/simulated/floor/tiled/white,/area/medical/reception) -"bxj" = (/obj/effect/floor_decal/corner/paleblue{dir = 1},/obj/item/device/radio/intercom{dir = 8; name = "Station Intercom (General)"; pixel_x = -22},/turf/simulated/floor/tiled/white,/area/medical/medbay_primary_storage) +"bxj" = (/obj/machinery/light_switch{pixel_x = 32; pixel_y = 2},/obj/effect/floor_decal/corner/pink/full{dir = 4},/obj/machinery/button/holosign{pixel_x = 24; pixel_y = 2},/obj/structure/sink{dir = 4; icon_state = "sink"; pixel_x = 11; pixel_y = 0},/turf/simulated/floor/tiled/white,/area/medical/surgery2) "bxk" = (/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/hologram/holopad,/turf/simulated/floor/tiled/white,/area/medical/medbay_primary_storage) "bxl" = (/obj/structure/table/standard,/obj/item/weapon/storage/firstaid/adv{pixel_x = 5; pixel_y = 5},/obj/item/weapon/storage/firstaid/adv,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/tiled/white,/area/medical/medbay_primary_storage) "bxm" = (/obj/structure/table/standard,/obj/item/weapon/storage/firstaid/toxin{pixel_x = 5; pixel_y = 5},/obj/item/weapon/storage/firstaid/toxin{pixel_x = 0; pixel_y = 0},/turf/simulated/floor/tiled/white,/area/medical/medbay_primary_storage) @@ -3940,7 +3940,7 @@ "bxN" = (/obj/item/weapon/stool/padded,/obj/machinery/atmospherics/pipe/simple/hidden/yellow,/turf/simulated/floor,/area/maintenance/disposal) "bxO" = (/obj/machinery/conveyor_switch/oneway{convdir = -1; id = "garbage"; name = "disposal coveyor"},/turf/simulated/floor,/area/maintenance/disposal) "bxP" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/firedoor/border_only,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plating,/area/maintenance/disposal) -"bxQ" = (/obj/machinery/light/small{dir = 4; pixel_y = 0},/obj/machinery/conveyor{dir = 2; id = "garbage"},/turf/simulated/floor/plating,/area/maintenance/disposal) +"bxQ" = (/obj/machinery/light/small{dir = 4; pixel_y = 0},/obj/machinery/conveyor/map{dir = 2; id = "garbage"},/turf/simulated/floor/plating,/area/maintenance/disposal) "bxR" = (/obj/structure/closet/secure_closet/scientist,/obj/effect/floor_decal/corner/purple/full{dir = 8},/obj/machinery/light{dir = 1},/obj/machinery/newscaster{pixel_x = -28; pixel_y = 0},/turf/simulated/floor/tiled/white,/area/rnd/misc_lab) "bxS" = (/obj/structure/closet/crate,/obj/effect/floor_decal/corner/purple{dir = 5},/obj/structure/extinguisher_cabinet{pixel_x = 5; pixel_y = 28},/turf/simulated/floor/tiled/white,/area/rnd/misc_lab) "bxT" = (/obj/effect/landmark{name = "xeno_spawn"; pixel_x = -1},/obj/machinery/alarm{pixel_y = 22},/obj/effect/floor_decal/corner/purple{dir = 5},/turf/simulated/floor/tiled/white,/area/rnd/misc_lab) @@ -3982,7 +3982,7 @@ "byD" = (/obj/structure/table/standard,/obj/item/weapon/storage/toolbox/emergency,/obj/item/bodybag/cryobag,/obj/item/bodybag/cryobag,/obj/item/bodybag/cryobag,/obj/effect/floor_decal/corner/paleblue{dir = 10},/turf/simulated/floor/tiled/white,/area/medical/medbay_primary_storage) "byE" = (/obj/item/weapon/reagent_containers/syringe/antiviral,/obj/item/weapon/storage/pill_bottle/antitox,/obj/item/weapon/storage/pill_bottle/tramadol,/obj/structure/closet/secure_closet/medical_wall{name = "Pill Cabinet"; pixel_x = -32; pixel_y = 0},/obj/structure/table/glass,/turf/simulated/floor/tiled/white,/area/medical/sleeper) "byF" = (/obj/effect/floor_decal/corner/paleblue{dir = 6},/turf/simulated/floor/tiled/white,/area/medical/sleeper) -"byG" = (/obj/machinery/sleeper{dir = 8},/turf/simulated/floor/tiled/white,/area/medical/sleeper) +"byG" = (/obj/machinery/sleeper/map{dir = 8},/turf/simulated/floor/tiled/white,/area/medical/sleeper) "byH" = (/obj/machinery/sleep_console,/turf/simulated/floor/tiled/white,/area/medical/sleeper) "byI" = (/obj/effect/floor_decal/corner/paleblue{dir = 9},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 8},/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 8},/turf/simulated/floor/tiled/white,/area/medical/sleeper) "byJ" = (/obj/machinery/hologram/holopad,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable/green{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/simulated/floor/tiled/white,/area/medical/sleeper) @@ -4011,7 +4011,7 @@ "bzg" = (/obj/effect/floor_decal/corner/lime{dir = 1},/obj/machinery/status_display{density = 0; layer = 4; pixel_x = 0; pixel_y = 32},/turf/simulated/floor/tiled/white,/area/medical/virology) "bzh" = (/obj/machinery/atmospherics/pipe/simple/hidden/universal,/obj/effect/floor_decal/industrial/warning/corner{icon_state = "warningcorner"; dir = 4},/turf/simulated/floor/tiled/white,/area/medical/virology) "bzi" = (/obj/effect/floor_decal/industrial/warning{dir = 1},/obj/machinery/embedded_controller/radio/airlock/access_controller{id_tag = "virologyq_airlock_control"; name = "Virology Quarantine Access Console"; pixel_x = 22; pixel_y = 0; tag_exterior_door = "virologyq_airlock_exterior"; tag_interior_door = "virologyq_airlock_interior"},/obj/effect/floor_decal/industrial/warning/corner,/obj/machinery/atmospherics/pipe/simple/hidden/yellow,/turf/simulated/floor/tiled/white,/area/medical/virology) -"bzj" = (/obj/machinery/access_button{command = "cycle_interior"; frequency = 1379; master_tag = "virologyq_airlock_control"; name = "Virology Quarantine Access Button"; pixel_x = -28; pixel_y = 0; req_access = list(39)},/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 4},/obj/structure/disposalpipe/segment,/turf/simulated/floor/tiled/white,/area/medical/virology) +"bzj" = (/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment,/obj/machinery/light{dir = 8},/turf/simulated/floor/tiled/white,/area/medical/surgery_hallway) "bzk" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/black{dir = 9},/turf/simulated/floor/tiled/white,/area/medical/virology) "bzl" = (/obj/effect/floor_decal/industrial/warning{dir = 5},/obj/structure/closet/l3closet/virology,/obj/machinery/camera/network/medbay{c_tag = "MED - Virology Quarantine Airlock"; dir = 8},/turf/simulated/floor/tiled/white,/area/medical/virology) "bzm" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/maintenance/auxsolarport) @@ -4021,7 +4021,7 @@ "bzq" = (/obj/machinery/atmospherics/pipe/simple/hidden/yellow,/turf/simulated/floor,/area/maintenance/disposal) "bzr" = (/turf/simulated/floor,/area/maintenance/disposal) "bzs" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/firedoor/border_only,/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plating,/area/maintenance/disposal) -"bzt" = (/obj/machinery/conveyor{dir = 2; id = "garbage"},/turf/simulated/floor,/area/maintenance/disposal) +"bzt" = (/obj/machinery/conveyor/map{dir = 2; id = "garbage"},/turf/simulated/floor,/area/maintenance/disposal) "bzu" = (/obj/machinery/atmospherics/portables_connector,/obj/item/device/radio/intercom{dir = 8; name = "Station Intercom (General)"; pixel_x = -28},/obj/effect/floor_decal/corner/purple/full{dir = 8},/turf/simulated/floor/tiled/white,/area/rnd/misc_lab) "bzv" = (/obj/effect/floor_decal/corner/purple{dir = 1},/turf/simulated/floor/tiled/white,/area/rnd/misc_lab) "bzw" = (/turf/simulated/floor/tiled/white,/area/rnd/misc_lab) @@ -4080,7 +4080,7 @@ "bAx" = (/obj/effect/floor_decal/corner/paleblue{dir = 5},/turf/simulated/floor/tiled/white,/area/medical/sleeper) "bAy" = (/obj/effect/floor_decal/corner/paleblue{dir = 1},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/tiled/white,/area/medical/sleeper) "bAz" = (/obj/effect/floor_decal/corner/paleblue{dir = 2},/obj/structure/disposalpipe/segment,/obj/structure/bed/chair{dir = 8},/turf/simulated/floor/tiled/white,/area/medical/sleeper) -"bAA" = (/obj/machinery/photocopier,/obj/effect/floor_decal/corner/paleblue{dir = 8},/turf/simulated/floor/tiled/white,/area/crew_quarters/heads/cmo) +"bAA" = (/obj/machinery/photocopier/map,/obj/effect/floor_decal/corner/paleblue{dir = 8},/turf/simulated/floor/tiled/white,/area/crew_quarters/heads/cmo) "bAB" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/hologram/holopad,/turf/simulated/floor/tiled/white,/area/crew_quarters/heads/cmo) "bAC" = (/obj/structure/table/reinforced,/obj/machinery/computer/med_data/laptop{pixel_x = 3; pixel_y = 4},/turf/simulated/floor/tiled/white,/area/crew_quarters/heads/cmo) "bAD" = (/turf/simulated/floor/tiled/white,/area/crew_quarters/heads/cmo) @@ -4091,7 +4091,7 @@ "bAI" = (/obj/machinery/atmospherics/unary/vent_pump/on,/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/turf/simulated/floor/tiled,/area/medical/morgue) "bAJ" = (/obj/structure/morgue{tag = "icon-morgue1 (WEST)"; icon_state = "morgue1"; dir = 8},/obj/effect/floor_decal/corner/paleblue{dir = 6},/turf/simulated/floor/tiled,/area/medical/morgue) "bAK" = (/obj/effect/decal/cleanable/dirt,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor,/area/maintenance/medbay_fore) -"bAL" = (/obj/effect/floor_decal/corner/lime{dir = 10},/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/turf/simulated/floor/tiled/white,/area/medical/virology) +"bAL" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 4},/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/disposalpipe/segment,/obj/structure/sink{icon_state = "sink"; dir = 8; pixel_x = -12; pixel_y = 2},/turf/simulated/floor/tiled/white,/area/medical/surgery_hallway) "bAM" = (/obj/machinery/embedded_controller/radio/airlock/access_controller{id_tag = "virology_airlock_control"; name = "Virology Access Console"; pixel_x = 8; pixel_y = -22; tag_exterior_door = "virology_airlock_exterior"; tag_interior_door = "virology_airlock_interior"},/obj/effect/floor_decal/industrial/warning/corner,/obj/effect/floor_decal/corner/lime{dir = 8},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/tiled/white,/area/medical/virology) "bAN" = (/obj/effect/floor_decal/industrial/warning,/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 8},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 6},/obj/machinery/atmospherics/pipe/simple/hidden/black,/obj/structure/disposalpipe/junction/yjunction,/turf/simulated/floor/tiled/white,/area/medical/virology) "bAO" = (/obj/machinery/button/remote/blast_door{desc = "A remote control-switch for shutters."; id = "virologyquar"; name = "Virology Emergency Lockdown Control"; pixel_x = 0; pixel_y = -28; req_access = list(5)},/obj/effect/floor_decal/industrial/warning/corner{dir = 8},/obj/effect/floor_decal/corner/lime,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/yellow{dir = 6},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/tiled/white,/area/medical/virology) @@ -4193,7 +4193,7 @@ "bCG" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 8},/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/tiled/white,/area/medical/sleeper) "bCH" = (/obj/structure/filingcabinet/chestdrawer{dir = 1},/obj/effect/floor_decal/corner/paleblue/full,/turf/simulated/floor/tiled/white,/area/crew_quarters/heads/cmo) "bCI" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 1},/obj/effect/floor_decal/corner/paleblue{dir = 10},/turf/simulated/floor/tiled/white,/area/crew_quarters/heads/cmo) -"bCJ" = (/obj/structure/table/reinforced,/obj/machinery/photocopier/faxmachine{department = "CMO's Office"},/obj/effect/floor_decal/corner/paleblue{dir = 10},/obj/machinery/light,/obj/machinery/camera/network/medbay{c_tag = "MED - CMO"; dir = 1},/turf/simulated/floor/tiled/white,/area/crew_quarters/heads/cmo) +"bCJ" = (/obj/structure/table/reinforced,/obj/machinery/photocopier/faxmachine/map{department = "CMO's Office"},/obj/effect/floor_decal/corner/paleblue{dir = 10},/obj/machinery/light,/obj/machinery/camera/network/medbay{c_tag = "MED - CMO"; dir = 1},/turf/simulated/floor/tiled/white,/area/crew_quarters/heads/cmo) "bCK" = (/obj/machinery/keycard_auth{pixel_x = 0; pixel_y = -24},/obj/machinery/light_switch{pixel_x = -10; pixel_y = -23},/obj/effect/floor_decal/corner/paleblue{dir = 10},/turf/simulated/floor/tiled/white,/area/crew_quarters/heads/cmo) "bCL" = (/obj/structure/table/steel,/obj/item/device/camera{name = "Autopsy Camera"; pixel_x = -2; pixel_y = 7},/obj/item/weapon/paper_bin{pixel_y = -6},/obj/item/weapon/pen/red{pixel_x = -1; pixel_y = -9},/obj/item/weapon/pen/blue{pixel_x = 3; pixel_y = -5},/obj/effect/floor_decal/corner/paleblue{dir = 5},/obj/item/device/radio/intercom{broadcasting = 0; canhear_range = 5; dir = 1; frequency = 1487; icon_state = "intercom"; listening = 0; name = "Station Intercom (Medbay)"; pixel_x = 0; pixel_y = 21},/turf/simulated/floor/tiled,/area/medical/morgue) "bCM" = (/obj/effect/floor_decal/corner/paleblue{dir = 9},/obj/structure/disposalpipe/segment,/turf/simulated/floor/tiled,/area/medical/morgue) @@ -4208,6 +4208,7 @@ "bCV" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/airless,/area/solar/auxport) "bCW" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/airless,/area/solar/port) "bCX" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/simulated/floor/airless,/area/solar/port) +"bCY" = (/obj/structure/barricade,/turf/simulated/floor,/area/maintenance/library) "bCZ" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/access_button{command = "cycle_exterior"; frequency = 1379; master_tag = "solar_tool_airlock"; name = "exterior access button"; pixel_x = 26; pixel_y = -26; req_access = list(11,13)},/turf/simulated/floor/airless,/area/solar/auxport) "bDa" = (/obj/machinery/door/airlock/external{frequency = 1379; icon_state = "door_locked"; id_tag = "solar_tool_outer"; locked = 1; name = "Engineering External Access"; req_access = list(11,13)},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor,/area/maintenance/auxsolarport) "bDb" = (/obj/effect/floor_decal/industrial/warning/full,/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 4; frequency = 1379; id_tag = "solar_tool_pump"},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/embedded_controller/radio/airlock/airlock_controller{frequency = 1379; id_tag = "solar_tool_airlock"; pixel_x = 0; pixel_y = 28; req_access = list(13); tag_airpump = "solar_tool_pump"; tag_chamber_sensor = "solar_tool_sensor"; tag_exterior_door = "solar_tool_outer"; tag_interior_door = "solar_tool_inner"},/obj/machinery/airlock_sensor{frequency = 1379; id_tag = "solar_tool_sensor"; pixel_x = 0; pixel_y = -26},/turf/simulated/floor,/area/maintenance/auxsolarport) @@ -4291,7 +4292,7 @@ "bEB" = (/obj/machinery/alarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/obj/effect/floor_decal/corner/paleblue{dir = 4},/obj/structure/disposalpipe/segment,/obj/machinery/light{dir = 4; icon_state = "tube1"; pixel_x = 0},/turf/simulated/floor/tiled/white,/area/medical/sleeper) "bEC" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/structure/grille,/obj/machinery/door/blast/shutters{density = 0; dir = 2; icon_state = "shutter0"; id = "cmooffice"; name = "CMO Office Privacy Shutters"; opacity = 0},/turf/simulated/floor/plating,/area/crew_quarters/heads/cmo) "bED" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/structure/grille,/obj/machinery/door/blast/shutters{density = 0; dir = 2; icon_state = "shutter0"; id = "cmooffice"; name = "CMO Office Privacy Shutters"; opacity = 0},/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plating,/area/crew_quarters/heads/cmo) -"bEE" = (/obj/machinery/power/apc{dir = 1; name = "north bump"; pixel_x = 0; pixel_y = 24},/obj/structure/cable/green{d2 = 2; icon_state = "0-2"},/obj/effect/floor_decal/corner/paleblue/full{dir = 8},/turf/simulated/floor/tiled,/area/medical/morgue) +"bEE" = (/obj/machinery/button/holosign{pixel_x = 24; pixel_y = 2},/obj/machinery/light_switch{pixel_x = 32; pixel_y = 2},/obj/effect/floor_decal/corner/pink/full{dir = 4},/obj/structure/sink{dir = 4; icon_state = "sink"; pixel_x = 11; pixel_y = 0},/turf/simulated/floor/tiled/white,/area/medical/surgery) "bEF" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 6},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 6},/obj/effect/floor_decal/corner/paleblue{dir = 1},/obj/structure/disposalpipe/segment,/turf/simulated/floor/tiled,/area/medical/morgue) "bEG" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/tiled,/area/medical/morgue) "bEH" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 9; pixel_y = 0},/turf/simulated/floor/tiled,/area/medical/morgue) @@ -4299,6 +4300,7 @@ "bEJ" = (/obj/effect/floor_decal/industrial/warning{dir = 5},/obj/structure/closet/wardrobe/virology_white,/obj/machinery/access_button{command = "cycle_interior"; frequency = 1379; master_tag = "virology_airlock_control"; name = "Virology Access Button"; pixel_x = 8; pixel_y = 28; req_access = list(39)},/obj/machinery/alarm{dir = 4; icon_state = "alarm0"; pixel_x = -22},/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 4},/turf/simulated/floor/tiled/white,/area/medical/virology) "bEK" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/black{dir = 9},/obj/structure/disposalpipe/segment,/turf/simulated/floor/tiled/white,/area/medical/virology) "bEL" = (/obj/effect/floor_decal/industrial/warning{dir = 10},/obj/machinery/shower{dir = 8; icon_state = "shower"; pixel_x = -5; pixel_y = 0},/obj/structure/window/reinforced,/obj/machinery/atmospherics/pipe/simple/hidden/yellow,/turf/simulated/floor/tiled/steel,/area/medical/virology) +"bEM" = (/obj/structure/grille,/turf/simulated/floor,/area/maintenance/library) "bEN" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/maintenance/auxsolarport) "bEO" = (/obj/structure/cable/yellow,/obj/machinery/power/solar_control{id = "auxsolareast"; name = "Fore Port Solar Control"; track = 0},/turf/simulated/floor,/area/maintenance/auxsolarport) "bEP" = (/obj/item/weapon/stool,/obj/machinery/alarm{dir = 1; icon_state = "alarm0"; pixel_y = -22},/obj/item/stack/cable_coil/yellow,/obj/item/stack/cable_coil/yellow,/turf/simulated/floor,/area/maintenance/auxsolarport) @@ -4378,7 +4380,7 @@ "bGl" = (/obj/structure/cable/green{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/tiled/white,/area/medical/sleeper) "bGm" = (/obj/machinery/door/firedoor/glass,/obj/effect/floor_decal/industrial/warning{dir = 4},/turf/simulated/floor/tiled/white,/area/medical/sleeper) "bGn" = (/obj/machinery/portable_atmospherics/canister/oxygen,/obj/machinery/atmospherics/portables_connector,/obj/effect/floor_decal/industrial/hatch/yellow,/turf/simulated/floor/tiled,/area/medical/sleeper) -"bGo" = (/obj/machinery/atmospherics/unary/freezer{dir = 2; icon_state = "freezer"},/obj/effect/floor_decal/industrial/outline/yellow,/turf/simulated/floor/tiled,/area/medical/sleeper) +"bGo" = (/obj/machinery/atmospherics/unary/freezer/map{dir = 2; icon_state = "freezer"},/obj/effect/floor_decal/industrial/outline/yellow,/turf/simulated/floor/tiled,/area/medical/sleeper) "bGp" = (/obj/machinery/atmospherics/unary/cryo_cell,/obj/effect/floor_decal/industrial/outline/yellow,/turf/simulated/floor/tiled,/area/medical/sleeper) "bGq" = (/obj/structure/table/steel,/obj/item/weapon/storage/box/bodybags,/obj/effect/floor_decal/corner/paleblue/full{dir = 8},/obj/machinery/alarm{dir = 4; icon_state = "alarm0"; pixel_x = -22},/turf/simulated/floor/tiled,/area/medical/morgue) "bGr" = (/obj/structure/table/steel,/obj/item/weapon/paper_bin,/obj/item/weapon/pen/blue{pixel_x = 3; pixel_y = -5},/obj/item/weapon/pen/red{pixel_x = -1; pixel_y = -9},/obj/effect/floor_decal/corner/paleblue{dir = 5},/obj/item/device/radio/intercom{dir = 1; name = "Station Intercom (General)"; pixel_y = 21},/turf/simulated/floor/tiled,/area/medical/morgue) @@ -4408,12 +4410,12 @@ "bGP" = (/obj/effect/floor_decal/corner/purple{dir = 4},/turf/simulated/floor/tiled/white,/area/rnd/rdoffice) "bGQ" = (/obj/structure/table/standard,/obj/item/device/taperecorder{pixel_x = -3},/obj/item/device/paicard{pixel_x = 4},/obj/item/weapon/circuitboard/teleporter,/obj/item/weapon/circuitboard/aicore{pixel_x = -2; pixel_y = 4},/obj/effect/floor_decal/corner/purple/full{dir = 1},/obj/item/device/radio/intercom{dir = 4; name = "Station Intercom (General)"; pixel_x = 27},/turf/simulated/floor/tiled/white,/area/rnd/rdoffice) "bGR" = (/obj/machinery/atmospherics/pipe/simple/hidden/black,/turf/simulated/wall,/area/medical/virology) -"bGS" = (/obj/effect/floor_decal/corner/pink{dir = 5},/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,/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/turf/simulated/floor/tiled/white,/area/assembly/robotics) -"bGT" = (/obj/effect/floor_decal/corner/pink{dir = 1},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/tiled/white,/area/assembly/robotics) -"bGU" = (/obj/machinery/disposal,/obj/structure/disposalpipe/trunk{dir = 8},/turf/simulated/floor/tiled/white,/area/assembly/robotics) +"bGS" = (/obj/effect/floor_decal/corner/pink{dir = 4},/obj/structure/closet/wardrobe/robotics_black,/obj/item/device/radio/headset/headset_sci{pixel_x = -3},/obj/item/device/radio/headset/headset_sci{pixel_x = -3},/turf/simulated/floor/tiled/white,/area/assembly/robotics) +"bGT" = (/obj/effect/floor_decal/corner/pink{dir = 1},/turf/simulated/floor/tiled/white,/area/assembly/robotics) +"bGU" = (/obj/effect/floor_decal/corner/pink{dir = 5},/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,/obj/structure/disposalpipe/segment,/turf/simulated/floor/tiled/white,/area/assembly/robotics) "bGV" = (/obj/machinery/computer/rdconsole/robotics,/obj/machinery/alarm{pixel_y = 25},/turf/simulated/floor/tiled/white,/area/assembly/robotics) -"bGW" = (/obj/item/weapon/book/manual/robotics_cyborgs{pixel_x = 2; pixel_y = 5},/obj/item/weapon/storage/belt/utility,/obj/machinery/requests_console{department = "Robotics"; departmentType = 2; name = "Robotics RC"; pixel_y = 30},/obj/machinery/light{dir = 1},/obj/item/weapon/storage/belt/utility,/obj/item/weapon/reagent_containers/glass/beaker/large,/obj/structure/table/standard{name = "plastic table frame"},/turf/simulated/floor/tiled/white,/area/assembly/robotics) -"bGX" = (/obj/machinery/r_n_d/circuit_imprinter,/obj/item/weapon/reagent_containers/glass/beaker/sulphuric,/turf/simulated/floor/tiled/white,/area/assembly/robotics) +"bGW" = (/obj/machinery/autolathe/map,/turf/simulated/floor/tiled/white,/area/assembly/robotics) +"bGX" = (/obj/machinery/r_n_d/circuit_imprinter/map,/turf/simulated/floor/tiled/white,/area/assembly/robotics) "bGY" = (/turf/simulated/wall/r_wall,/area/assembly/robotics) "bGZ" = (/obj/structure/table/reinforced,/obj/machinery/door/window/southright{name = "Robotics Desk"; req_access = list(29)},/obj/item/weapon/paper_bin{pixel_x = -3; pixel_y = 7},/obj/item/weapon/folder/white,/obj/item/weapon/pen,/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/tiled,/area/assembly/robotics) "bHa" = (/obj/item/device/radio/intercom{dir = 8; name = "Station Intercom (General)"; pixel_x = -21},/turf/simulated/floor/tiled,/area/hallway/primary/central_four) @@ -4465,7 +4467,7 @@ "bHU" = (/obj/machinery/door/firedoor/glass,/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},/turf/simulated/floor/tiled/white,/area/medical/sleeper) "bHV" = (/obj/machinery/atmospherics/pipe/simple/visible{tag = "icon-intact (NORTHEAST)"; icon_state = "intact"; dir = 5},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 1},/obj/effect/floor_decal/industrial/warning{dir = 1},/turf/simulated/floor/tiled/white,/area/medical/sleeper) "bHW" = (/obj/machinery/atmospherics/pipe/manifold/visible,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/effect/floor_decal/industrial/warning{dir = 1},/turf/simulated/floor/tiled/white,/area/medical/sleeper) -"bHX" = (/obj/machinery/atmospherics/pipe/simple/visible{tag = "icon-intact (NORTHWEST)"; icon_state = "intact"; dir = 9},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 10},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 10},/obj/effect/floor_decal/industrial/warning{dir = 1},/turf/simulated/floor/tiled/white,/area/medical/sleeper) +"bHX" = (/obj/effect/floor_decal/corner/paleblue{dir = 2},/obj/structure/disposalpipe/segment,/obj/structure/sink{dir = 4; icon_state = "sink"; pixel_x = 11; pixel_y = 0},/turf/simulated/floor/tiled/white,/area/medical/sleeper) "bHY" = (/obj/structure/filingcabinet/chestdrawer{desc = "A large drawer filled with autopsy reports."; name = "Autopsy Reports"},/obj/machinery/light_switch{pixel_x = -26; pixel_y = 0},/turf/simulated/floor/tiled,/area/medical/morgue) "bHZ" = (/obj/structure/bed/chair/office/dark{dir = 1},/turf/simulated/floor/tiled,/area/medical/morgue) "bIa" = (/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/tiled,/area/medical/morgue) @@ -4473,7 +4475,7 @@ "bIc" = (/obj/machinery/computer/crew,/obj/effect/floor_decal/corner/paleblue/full{dir = 4},/obj/item/device/radio/intercom{broadcasting = 0; canhear_range = 5; dir = 2; frequency = 1487; icon_state = "intercom"; listening = 0; name = "Station Intercom (Medbay)"; pixel_x = 0; pixel_y = -21},/turf/simulated/floor/tiled/white,/area/crew_quarters/heads/cmo) "bId" = (/obj/structure/table/standard,/obj/item/weapon/stamp/rd{pixel_x = 3; pixel_y = -2},/obj/item/weapon/reagent_containers/food/drinks/jar,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/structure/cable/green{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/item/weapon/folder/white_rd,/turf/simulated/floor/tiled/white,/area/rnd/rdoffice) "bIe" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/disposalpipe/segment,/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/tiled/white,/area/medical/virology) -"bIf" = (/obj/structure/sink{dir = 4; icon_state = "sink"; pixel_x = 11; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/hidden/yellow,/turf/simulated/floor/tiled/white,/area/medical/virology) +"bIf" = (/obj/item/clothing/head/soft/mime,/obj/item/clothing/mask/gas/mime,/obj/item/clothing/shoes/mime,/obj/item/clothing/under/mime,/turf/simulated/floor,/area/maintenance/library) "bIg" = (/obj/structure/closet/crate,/obj/item/weapon/tank/emergency_oxygen/engi,/obj/item/weapon/tank/emergency_oxygen/double,/turf/simulated/floor/plating,/area/maintenance/research) "bIh" = (/obj/machinery/atmospherics/pipe/simple/hidden/yellow,/obj/machinery/meter,/turf/simulated/floor,/area/maintenance/research) "bIi" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/structure/disposalpipe/segment,/turf/simulated/floor,/area/maintenance/research) @@ -4486,15 +4488,15 @@ "bIp" = (/obj/structure/bed/chair,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 5},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/tiled/white,/area/rnd/rdoffice) "bIq" = (/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 8},/turf/simulated/floor/tiled/white,/area/rnd/rdoffice) "bIr" = (/obj/effect/floor_decal/corner/purple{dir = 6},/obj/machinery/keycard_auth{pixel_x = 24; pixel_y = 0},/turf/simulated/floor/tiled/white,/area/rnd/rdoffice) -"bIs" = (/obj/structure/table/standard,/obj/item/stack/material/plasteel{amount = 10},/obj/item/stack/cable_coil,/obj/item/device/flash,/turf/simulated/floor/tiled/white,/area/assembly/robotics) -"bIt" = (/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/white,/area/assembly/robotics) +"bIs" = (/obj/item/weapon/book/manual/robotics_cyborgs{pixel_x = 2; pixel_y = 5},/obj/machinery/requests_console{department = "Robotics"; departmentType = 2; name = "Robotics RC"; pixel_y = 30},/obj/machinery/light{dir = 1},/obj/structure/table/standard{name = "plastic table frame"},/turf/simulated/floor/tiled/white,/area/assembly/robotics) +"bIt" = (/obj/machinery/light_switch{pixel_x = -23; pixel_y = 0},/obj/structure/filingcabinet/chestdrawer,/turf/simulated/floor/tiled/white,/area/assembly/robotics) "bIu" = (/turf/simulated/floor/tiled/white,/area/assembly/robotics) "bIv" = (/obj/machinery/atmospherics/unary/vent_scrubber/on,/turf/simulated/floor/tiled/white,/area/assembly/robotics) "bIw" = (/obj/structure/bed/chair/office/light{dir = 1},/obj/effect/landmark/start{name = "Roboticist"},/turf/simulated/floor/tiled/white,/area/assembly/robotics) "bIx" = (/obj/structure/table/steel,/obj/item/weapon/autopsy_scanner,/obj/item/weapon/scalpel,/obj/effect/floor_decal/corner/paleblue/full{dir = 8},/obj/machinery/light{dir = 1},/obj/item/weapon/cautery,/turf/simulated/floor/tiled,/area/medical/morgue) -"bIy" = (/obj/effect/floor_decal/corner/pink{dir = 5},/obj/structure/table/standard,/obj/machinery/atmospherics/unary/vent_scrubber/on,/obj/machinery/recharger{pixel_y = 0},/turf/simulated/floor/tiled/white,/area/assembly/robotics) +"bIy" = (/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/turf/simulated/floor/tiled/white,/area/assembly/robotics) "bIz" = (/obj/item/weapon/stool/padded,/obj/effect/floor_decal/corner/pink{dir = 5},/obj/effect/landmark/start{name = "Roboticist"},/turf/simulated/floor/tiled/white,/area/assembly/robotics) -"bIA" = (/obj/structure/filingcabinet/chestdrawer,/obj/effect/floor_decal/corner/pink/full{dir = 1},/turf/simulated/floor/tiled/white,/area/assembly/robotics) +"bIA" = (/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{dir = 1; icon_state = "pipe-c"},/turf/simulated/floor/tiled/white,/area/assembly/robotics) "bIB" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/machinery/door/firedoor/border_only,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plating,/area/hallway/primary/central_four) "bIC" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plating,/area/hallway/primary/central_four) "bID" = (/obj/structure/noticeboard{pixel_y = 27},/obj/machinery/door/firedoor/border_only,/obj/structure/cable/green{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/door/blast/shutters{density = 0; dir = 8; icon_state = "shutter0"; id = "hop_office_desk"; name = "HoP Office Privacy Shutters"; opacity = 0},/obj/machinery/door/window/northleft{dir = 8; icon_state = "left"; name = "Reception Window"},/obj/machinery/door/window/brigdoor/eastright{name = "Head of Personnel's Desk"; req_access = list(57)},/obj/structure/table/reinforced,/turf/simulated/floor/tiled,/area/crew_quarters/heads/hop) @@ -4502,8 +4504,8 @@ "bIF" = (/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/tiled,/area/crew_quarters/heads/hop) "bIG" = (/obj/effect/floor_decal/corner/blue{dir = 4},/obj/structure/cable/green{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/simulated/floor/tiled,/area/crew_quarters/heads/hop) "bIH" = (/obj/effect/floor_decal/corner/blue{dir = 5},/obj/machinery/requests_console{announcementConsole = 1; department = "Bridge"; departmentType = 5; name = "Bridge RC"; pixel_y = 28},/turf/simulated/floor/tiled,/area/crew_quarters/heads/hop) -"bII" = (/obj/structure/table/reinforced,/obj/item/weapon/packageWrap,/obj/item/weapon/hand_labeler,/obj/machinery/recharger/wallcharger{pixel_x = 4; pixel_y = 30},/obj/effect/floor_decal/corner/blue{dir = 5},/turf/simulated/floor/tiled,/area/crew_quarters/heads/hop) -"bIJ" = (/obj/structure/table/reinforced,/obj/machinery/photocopier/faxmachine{department = "Head of Personnel's Office"},/obj/effect/floor_decal/corner/blue/full{dir = 1},/obj/machinery/ai_status_display{pixel_x = 32; pixel_y = 0},/turf/simulated/floor/tiled,/area/crew_quarters/heads/hop) +"bII" = (/obj/structure/table/reinforced,/obj/item/weapon/packageWrap,/obj/item/weapon/hand_labeler,/obj/machinery/recharger/wallcharger/map{pixel_x = 4; pixel_y = 30},/obj/effect/floor_decal/corner/blue{dir = 5},/turf/simulated/floor/tiled,/area/crew_quarters/heads/hop) +"bIJ" = (/obj/structure/table/reinforced,/obj/machinery/photocopier/faxmachine/map{department = "Head of Personnel's Office"},/obj/effect/floor_decal/corner/blue/full{dir = 1},/obj/machinery/ai_status_display{pixel_x = 32; pixel_y = 0},/turf/simulated/floor/tiled,/area/crew_quarters/heads/hop) "bIK" = (/obj/effect/floor_decal/corner/blue{dir = 9},/turf/simulated/floor/tiled,/area/bridge_hallway) "bIL" = (/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/bridge_hallway) "bIM" = (/obj/effect/floor_decal/corner/blue{dir = 6},/obj/structure/table/standard,/obj/item/weapon/storage/box/cups,/turf/simulated/floor/tiled,/area/bridge_hallway) @@ -4537,7 +4539,7 @@ "bJo" = (/obj/effect/floor_decal/corner/paleblue{dir = 8},/turf/simulated/floor/tiled/white,/area/medical/sleeper) "bJp" = (/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/white,/area/medical/sleeper) "bJq" = (/obj/structure/sign/goldenplaque{desc = "Done No Harm."; name = "Best Doctor 2552"; pixel_y = -32},/obj/effect/floor_decal/corner/paleblue,/turf/simulated/floor/tiled/white,/area/medical/sleeper) -"bJr" = (/obj/structure/closet,/obj/item/device/flashlight,/obj/effect/decal/cleanable/cobweb2,/obj/item/weapon/storage/backpack/satchel_vir,/obj/item/weapon/storage/backpack/virology,/turf/simulated/floor/plating,/area/maintenance/medbay_fore) +"bJr" = (/obj/structure/closet,/obj/item/device/flashlight,/obj/effect/decal/cleanable/cobweb2,/obj/item/weapon/storage/backpack/satchel/vir,/obj/item/weapon/storage/backpack/virology,/turf/simulated/floor/plating,/area/maintenance/medbay_fore) "bJs" = (/obj/machinery/power/apc{dir = 2; name = "south bump"; pixel_y = -24},/obj/structure/cable/green{d2 = 4; icon_state = "0-4"},/obj/effect/floor_decal/corner/paleblue{dir = 10},/turf/simulated/floor/tiled/white,/area/medical/sleeper) "bJt" = (/obj/structure/cable/green{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/effect/floor_decal/corner/paleblue{dir = 10},/turf/simulated/floor/tiled/white,/area/medical/sleeper) "bJu" = (/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/effect/floor_decal/corner/paleblue{dir = 10},/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/turf/simulated/floor/tiled/white,/area/medical/sleeper) @@ -4568,12 +4570,12 @@ "bJT" = (/obj/machinery/meter,/obj/effect/floor_decal/industrial/warning{dir = 10},/obj/machinery/atmospherics/pipe/manifold/hidden/cyan,/obj/structure/door_assembly/door_assembly_com,/turf/simulated/floor/plating,/area/maintenance/medbay_aft) "bJU" = (/obj/structure/table/standard,/obj/machinery/computer/skills,/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/tiled/white,/area/rnd/rdoffice) "bJV" = (/obj/effect/floor_decal/corner/purple{dir = 6},/obj/machinery/power/apc{dir = 4; name = "east bump"; pixel_x = 24},/obj/machinery/light_switch{pixel_x = 36; pixel_y = 0},/obj/structure/cable/green{d2 = 8; icon_state = "0-8"},/turf/simulated/floor/tiled/white,/area/rnd/rdoffice) -"bJW" = (/obj/effect/floor_decal/corner/pink{dir = 4},/obj/machinery/light_switch{pixel_x = -23; pixel_y = 0},/obj/structure/closet/wardrobe/robotics_black,/turf/simulated/floor/tiled/white,/area/assembly/robotics) -"bJX" = (/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/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled/white,/area/assembly/robotics) -"bJY" = (/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers,/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 1},/turf/simulated/floor/tiled/white,/area/assembly/robotics) -"bJZ" = (/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/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled/white,/area/assembly/robotics) -"bKa" = (/obj/structure/cable/green{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 10},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 10},/turf/simulated/floor/tiled/white,/area/assembly/robotics) -"bKb" = (/obj/structure/table/rack{dir = 8; layer = 2.9},/obj/item/weapon/storage/toolbox/electrical{pixel_x = 1; pixel_y = 6},/obj/item/clothing/head/welding{pixel_x = -3; pixel_y = 5},/obj/item/clothing/head/welding{pixel_x = -3; pixel_y = 5},/obj/item/weapon/storage/toolbox/mechanical,/obj/item/weapon/storage/toolbox/mechanical{pixel_x = -2; pixel_y = -1},/obj/effect/floor_decal/corner/pink{dir = 6},/turf/simulated/floor/tiled/white,/area/assembly/robotics) +"bJW" = (/obj/effect/floor_decal/corner/pink{dir = 5},/obj/structure/table/standard,/obj/machinery/atmospherics/unary/vent_scrubber/on,/obj/machinery/recharger{pixel_y = 0},/obj/item/device/flash,/obj/item/device/flash,/turf/simulated/floor/tiled/white,/area/assembly/robotics) +"bJX" = (/obj/effect/floor_decal/corner/pink{dir = 4},/obj/machinery/power/apc{dir = 1; name = "north bump"; pixel_x = 0; pixel_y = 24},/obj/structure/table/standard,/obj/structure/cable/green{d2 = 2; icon_state = "0-2"},/obj/item/weapon/hand_labeler,/obj/item/weapon/reagent_containers/glass/beaker/large,/obj/item/weapon/reagent_containers/glass/beaker/sulphuric,/turf/simulated/floor/tiled/white,/area/assembly/robotics) +"bJY" = (/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/closet{name = "materials"},/obj/item/stack/material/steel{amount = 50},/obj/item/stack/material/steel{amount = 50},/obj/item/stack/material/steel{amount = 50},/obj/item/stack/material/steel{amount = 50},/obj/item/stack/material/steel{amount = 50},/obj/item/stack/material/glass{amount = 50; pixel_x = -2; pixel_y = 2},/obj/item/stack/material/glass{amount = 50; pixel_x = -2; pixel_y = 2},/obj/item/stack/material/glass{amount = 50; pixel_x = -2; pixel_y = 2},/obj/item/stack/material/glass{amount = 50; pixel_x = -2; pixel_y = 2},/obj/item/stack/material/plasteel{amount = 10},/turf/simulated/floor/tiled/white,/area/assembly/robotics) +"bJZ" = (/obj/structure/disposalpipe/segment,/turf/simulated/floor/tiled/white,/area/assembly/robotics) +"bKa" = (/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,/obj/structure/table/standard,/obj/machinery/computer/med_data/laptop,/turf/simulated/floor/tiled/white,/area/assembly/robotics) +"bKb" = (/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/tiled/white,/area/assembly/robotics) "bKc" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/firedoor/border_only,/obj/machinery/door/blast/regular{density = 0; icon_state = "pdoor0"; id = "Biohazard"; name = "Biohazard Shutter"; opacity = 0},/turf/simulated/floor/plating,/area/assembly/robotics) "bKd" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/machinery/door/firedoor/border_only,/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating,/area/hallway/primary/central_four) "bKe" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating,/area/hallway/primary/central_four) @@ -4582,7 +4584,7 @@ "bKh" = (/turf/simulated/floor/carpet,/area/crew_quarters/heads/hop) "bKi" = (/obj/machinery/atmospherics/unary/vent_pump/on,/turf/simulated/floor/carpet,/area/crew_quarters/heads/hop) "bKj" = (/obj/machinery/hologram/holopad,/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/carpet,/area/crew_quarters/heads/hop) -"bKk" = (/obj/structure/table/reinforced,/obj/machinery/recharger{pixel_y = 0},/obj/effect/floor_decal/corner/blue{dir = 4},/obj/machinery/light_switch{pixel_x = 34; pixel_y = 0},/obj/machinery/keycard_auth{pixel_x = 24; pixel_y = 0},/turf/simulated/floor/tiled,/area/crew_quarters/heads/hop) +"bKk" = (/obj/structure/table/reinforced,/obj/machinery/recharger/map{pixel_y = 0},/obj/effect/floor_decal/corner/blue{dir = 4},/obj/machinery/light_switch{pixel_x = 34; pixel_y = 0},/obj/machinery/keycard_auth{pixel_x = 24; pixel_y = 0},/turf/simulated/floor/tiled,/area/crew_quarters/heads/hop) "bKl" = (/obj/effect/floor_decal/corner/blue{dir = 1},/turf/simulated/floor/tiled,/area/bridge_hallway) "bKm" = (/obj/effect/floor_decal/corner/blue{dir = 4},/obj/machinery/light{icon_state = "tube1"; dir = 4},/turf/simulated/floor/tiled,/area/bridge_hallway) "bKn" = (/obj/structure/cable/green{d2 = 2; icon_state = "0-2"},/obj/machinery/power/apc{dir = 8; name = "west bump"; pixel_x = -24},/turf/simulated/floor,/area/maintenance/substation/command) @@ -4595,7 +4597,7 @@ "bKu" = (/obj/effect/floor_decal/corner/grey/diagonal{dir = 4},/obj/machinery/power/apc{dir = 8; name = "west bump"; pixel_x = -24},/obj/structure/cable/green{d2 = 4; icon_state = "0-4"},/obj/structure/closet/secure_closet/freezer/fridge,/turf/simulated/floor/tiled/white,/area/crew_quarters/kitchen) "bKv" = (/obj/effect/floor_decal/corner/grey/diagonal{dir = 4},/obj/structure/cable/green{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/simulated/floor/tiled/white,/area/crew_quarters/kitchen) "bKw" = (/obj/structure/table/marble,/obj/effect/floor_decal/corner/grey/diagonal{dir = 4},/obj/item/weapon/storage/box/donkpockets{pixel_x = 3; pixel_y = 3},/obj/item/weapon/reagent_containers/glass/beaker{pixel_x = 5},/turf/simulated/floor/tiled/white,/area/crew_quarters/kitchen) -"bKx" = (/obj/structure/table/standard,/obj/machinery/microwave{pixel_x = -3; pixel_y = 6},/obj/effect/floor_decal/corner/grey/diagonal{dir = 4},/turf/simulated/floor/tiled/white,/area/crew_quarters/kitchen) +"bKx" = (/obj/structure/table/standard,/obj/machinery/microwave/map{pixel_x = -3; pixel_y = 6},/obj/effect/floor_decal/corner/grey/diagonal{dir = 4},/turf/simulated/floor/tiled/white,/area/crew_quarters/kitchen) "bKy" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/crew_quarters/kitchen) "bKz" = (/obj/machinery/smartfridge/drying_rack,/turf/simulated/floor/grass,/area/hydroponics/garden) "bKA" = (/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment,/turf/simulated/floor/tiled,/area/hydroponics) @@ -4644,17 +4646,17 @@ "bLr" = (/obj/item/device/radio/intercom{layer = 4; name = "Station Intercom (General)"; pixel_y = -27},/obj/machinery/camera/network/research{c_tag = "Research - Miscellaneous Test Chamber"; dir = 1; network = list("Research","Miscellaneous Reseach")},/turf/simulated/floor/reinforced,/area/rnd/misc_lab) "bLs" = (/obj/machinery/light,/turf/simulated/floor/reinforced,/area/rnd/misc_lab) "bLt" = (/obj/effect/floor_decal/corner/purple{dir = 9},/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/tiled/white,/area/rnd/research) -"bLu" = (/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},/obj/structure/table/standard,/obj/machinery/photocopier/faxmachine{department = "Research Director's Office"},/obj/effect/floor_decal/corner/purple{dir = 9},/turf/simulated/floor/tiled/white,/area/rnd/rdoffice) +"bLu" = (/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},/obj/structure/table/standard,/obj/machinery/photocopier/faxmachine/map{department = "Research Director's Office"},/obj/effect/floor_decal/corner/purple{dir = 9},/turf/simulated/floor/tiled/white,/area/rnd/rdoffice) "bLv" = (/obj/structure/bed/chair/office/light{dir = 1},/obj/effect/landmark/start{name = "Research Director"},/obj/machinery/button/remote/blast_door{id = "Biohazard"; name = "Biohazard Shutter Control"; pixel_x = -38; pixel_y = 13; req_access = list(47)},/obj/machinery/button/remote/airlock{desc = "A remote control-switch for the cargo doors."; id = "researchdoor"; name = "Research door control"; pixel_x = -27; pixel_y = 13; req_access = list(30)},/obj/machinery/button/windowtint{pixel_x = -26; pixel_y = 21},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/tiled/white,/area/rnd/rdoffice) "bLw" = (/obj/machinery/hologram/holopad,/turf/simulated/floor/tiled/white,/area/rnd/rdoffice) "bLx" = (/obj/effect/floor_decal/corner/purple{dir = 6},/turf/simulated/floor/tiled/white,/area/rnd/rdoffice) "bLy" = (/obj/structure/table/standard,/obj/item/weapon/cartridge/signal/science,/obj/item/weapon/cartridge/signal/science{pixel_x = -4; pixel_y = 2},/obj/item/weapon/cartridge/signal/science{pixel_x = 4; pixel_y = 6},/obj/item/clothing/glasses/welding/superior,/obj/machinery/requests_console{announcementConsole = 1; department = "Research Director's Desk"; departmentType = 5; name = "Research Director RC"; pixel_x = 30; pixel_y = -2},/turf/simulated/floor/tiled/dark,/area/rnd/rdoffice) -"bLz" = (/obj/effect/floor_decal/corner/pink{dir = 4},/obj/machinery/power/apc{dir = 1; name = "north bump"; pixel_x = 0; pixel_y = 24},/obj/structure/table/standard,/obj/structure/cable/green{d2 = 2; icon_state = "0-2"},/obj/item/device/flash/synthetic,/obj/item/device/flash/synthetic,/obj/item/device/flash/synthetic,/obj/item/device/flash/synthetic,/obj/item/device/flash/synthetic,/obj/item/device/flash/synthetic,/obj/item/device/mmi/digital/posibrain,/obj/item/device/robotanalyzer,/turf/simulated/floor/tiled/white,/area/assembly/robotics) -"bLA" = (/obj/effect/floor_decal/industrial/warning{dir = 1},/turf/simulated/floor/tiled,/area/assembly/robotics) -"bLB" = (/obj/effect/floor_decal/industrial/warning{dir = 1},/obj/machinery/atmospherics/unary/vent_pump/on{dir = 1},/turf/simulated/floor/tiled,/area/assembly/robotics) -"bLC" = (/obj/machinery/mecha_part_fabricator,/obj/effect/floor_decal/industrial/warning{dir = 1},/turf/simulated/floor/tiled,/area/assembly/robotics) +"bLz" = (/obj/structure/closet{name = "robotics parts"},/obj/item/weapon/cell/high{charge = 100; maxcharge = 15000; pixel_x = 5; pixel_y = -5},/obj/item/device/assembly/prox_sensor{pixel_x = -8; pixel_y = 4},/obj/item/device/assembly/prox_sensor{pixel_x = -8; pixel_y = 4},/obj/item/weapon/cell/high{charge = 100; maxcharge = 15000; pixel_x = 5; pixel_y = -5},/obj/item/weapon/cell/high{charge = 100; maxcharge = 15000; pixel_x = 5; pixel_y = -5},/obj/item/weapon/cell/high{charge = 100; maxcharge = 15000; pixel_x = 5; pixel_y = -5},/obj/item/weapon/storage/firstaid/regular{empty = 1; name = "First-Aid (empty)"},/obj/item/weapon/storage/firstaid/regular{empty = 1; name = "First-Aid (empty)"},/obj/item/weapon/storage/firstaid/regular{empty = 1; name = "First-Aid (empty)"},/obj/item/device/healthanalyzer,/obj/item/device/healthanalyzer,/obj/item/device/healthanalyzer,/obj/effect/floor_decal/corner/pink{dir = 6},/obj/item/device/flash/synthetic,/obj/item/device/flash/synthetic,/obj/item/device/flash/synthetic,/obj/item/device/flash/synthetic,/obj/item/device/flash/synthetic,/obj/item/device/flash/synthetic,/obj/item/stack/cable_coil,/obj/item/stack/cable_coil,/turf/simulated/floor/tiled/white,/area/assembly/robotics) +"bLA" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/machinery/door/firedoor/border_only,/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating,/area/assembly/robotics) +"bLB" = (/obj/structure/disposalpipe/segment,/obj/item/weapon/stool/padded,/turf/simulated/floor/tiled/white,/area/assembly/robotics) +"bLC" = (/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,/obj/structure/table/standard,/obj/item/weapon/paper_bin{pixel_x = -3; pixel_y = 7},/obj/item/weapon/pen,/obj/item/weapon/pen/red,/obj/item/weapon/pen/blue,/turf/simulated/floor/tiled/white,/area/assembly/robotics) "bLD" = (/obj/machinery/door/airlock/medical{autoclose = 0; frequency = 1379; icon_state = "door_locked"; id_tag = "virology_airlock_exterior"; locked = 1; name = "Virology Exterior Airlock"; req_access = list(39)},/obj/machinery/access_button{command = "cycle_exterior"; frequency = 1379; master_tag = "virology_airlock_control"; name = "Virology Access Button"; pixel_x = -24; pixel_y = 0; req_access = list(39)},/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/black,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/disposalpipe/segment,/turf/simulated/floor/tiled,/area/medical/virology) -"bLE" = (/obj/structure/reagent_dispensers/acid{density = 0; pixel_x = -32},/obj/structure/cable/green{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 5},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 5},/obj/machinery/camera/network/research{c_tag = "SCI - Robotics Port"; dir = 4},/obj/structure/table/standard,/obj/item/stack/material/glass{amount = 50; pixel_x = -2; pixel_y = 2},/obj/item/stack/material/glass{amount = 50; pixel_x = -2; pixel_y = 2},/obj/item/stack/material/steel{amount = 50},/obj/item/stack/material/steel{amount = 50},/obj/item/stack/material/steel{amount = 50},/obj/item/stack/material/steel{amount = 50},/turf/simulated/floor/tiled/white,/area/assembly/robotics) +"bLE" = (/obj/effect/floor_decal/corner/pink{dir = 6},/obj/structure/closet{name = "welding equipment"},/obj/item/clothing/head/welding{pixel_x = -3; pixel_y = 5},/obj/item/clothing/head/welding{pixel_x = -3; pixel_y = 5},/obj/item/clothing/glasses/welding,/obj/item/clothing/glasses/welding,/turf/simulated/floor/tiled/white,/area/assembly/robotics) "bLF" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/firedoor/border_only,/obj/machinery/door/blast/regular{density = 0; icon_state = "pdoor0"; id = "Biohazard"; name = "Biohazard Shutter"; opacity = 0},/turf/simulated/floor/plating,/area/assembly/robotics) "bLG" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 4},/obj/machinery/light{dir = 8},/turf/simulated/floor/tiled,/area/hallway/primary/central_four) "bLH" = (/obj/structure/grille,/obj/structure/sign/securearea{desc = "A warning sign which reads 'HIGH VOLTAGE'"; icon_state = "shock"; name = "HIGH VOLTAGE"; pixel_y = -32},/obj/structure/cable/green,/obj/structure/window/reinforced/polarized,/obj/structure/window/reinforced/polarized{dir = 4},/obj/structure/window/reinforced/polarized{dir = 8},/obj/machinery/door/firedoor,/turf/simulated/floor/plating,/area/crew_quarters/heads/hop) @@ -4684,7 +4686,7 @@ "bMf" = (/obj/structure/cable/green{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled,/area/hydroponics) "bMg" = (/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 8},/turf/simulated/floor/tiled,/area/hydroponics) "bMh" = (/obj/machinery/hologram/holopad,/turf/simulated/floor/tiled,/area/hydroponics) -"bMi" = (/obj/effect/floor_decal/corner/lime{dir = 6},/obj/machinery/biogenerator,/turf/simulated/floor/tiled,/area/hydroponics) +"bMi" = (/obj/effect/floor_decal/corner/lime{dir = 6},/obj/machinery/biogenerator/map,/turf/simulated/floor/tiled,/area/hydroponics) "bMj" = (/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 4},/turf/simulated/floor/tiled,/area/hallway/primary/central_two) "bMk" = (/turf/simulated/wall/r_wall,/area/medical/chemistry) "bMl" = (/obj/structure/sign/chemistry,/turf/simulated/wall/r_wall,/area/medical/chemistry) @@ -4746,7 +4748,7 @@ "bNp" = (/turf/simulated/floor/tiled,/area/assembly/robotics) "bNq" = (/obj/effect/floor_decal/industrial/outline/yellow,/turf/simulated/floor/tiled,/area/assembly/robotics) "bNr" = (/obj/machinery/hologram/holopad,/turf/simulated/floor/tiled,/area/assembly/robotics) -"bNs" = (/obj/effect/floor_decal/industrial/warning{dir = 1},/obj/item/weapon/stool/padded,/turf/simulated/floor/tiled,/area/assembly/robotics) +"bNs" = (/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/simple/hidden/scrubbers{dir = 4},/obj/effect/floor_decal/industrial/warning{dir = 1},/obj/structure/disposalpipe/segment,/turf/simulated/floor/tiled,/area/assembly/robotics) "bNt" = (/obj/effect/floor_decal/industrial/outline/yellow,/obj/machinery/light{dir = 4},/turf/simulated/floor/tiled,/area/hallway/primary/central_four) "bNu" = (/obj/structure/closet/secure_closet/hop2,/obj/effect/floor_decal/corner/blue{dir = 9},/turf/simulated/floor/tiled,/area/crew_quarters/heads/hop) "bNv" = (/obj/structure/table/reinforced,/obj/item/weapon/paper_bin{pixel_x = -3; pixel_y = 7},/obj/item/weapon/folder/blue,/obj/item/weapon/folder/red,/obj/item/weapon/pen,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/carpet,/area/crew_quarters/heads/hop) @@ -4842,10 +4844,10 @@ "bPh" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 5},/turf/simulated/floor/tiled/white,/area/rnd/rdoffice) "bPi" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 8},/turf/simulated/floor/tiled/white,/area/rnd/rdoffice) "bPj" = (/obj/structure/closet/secure_closet/RD,/turf/simulated/floor/tiled/dark,/area/rnd/rdoffice) -"bPk" = (/obj/structure/table/standard,/obj/item/weapon/circular_saw,/obj/item/weapon/scalpel{pixel_y = 12},/obj/item/weapon/hemostat,/obj/item/weapon/retractor,/obj/effect/floor_decal/industrial/warning{dir = 1},/obj/structure/window/reinforced/tinted{dir = 1},/turf/simulated/floor/tiled/white,/area/assembly/robotics) +"bPk" = (/obj/structure/reagent_dispensers/acid{density = 0; pixel_x = -32},/obj/structure/cable/green{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 5},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 5},/obj/machinery/camera/network/research{c_tag = "SCI - Robotics Port"; dir = 4},/obj/structure/table/standard,/obj/effect/floor_decal/industrial/warning{dir = 1},/obj/item/weapon/storage/box/bodybags{pixel_x = -1; pixel_y = -2},/turf/simulated/floor/tiled,/area/assembly/robotics) "bPl" = (/obj/effect/floor_decal/industrial/warning{dir = 1},/turf/simulated/floor/tiled/white,/area/assembly/robotics) "bPm" = (/obj/effect/floor_decal/industrial/warning{dir = 5},/turf/simulated/floor/tiled/white,/area/assembly/robotics) -"bPn" = (/obj/effect/floor_decal/industrial/warning{dir = 1},/obj/machinery/light{dir = 8},/obj/structure/table/standard,/obj/item/weapon/crowbar,/obj/item/device/radio/headset/headset_sci{pixel_x = -3},/obj/item/device/radio/headset/headset_sci{pixel_x = -3},/obj/item/clothing/glasses/welding,/obj/item/clothing/glasses/welding,/obj/item/device/multitool{pixel_x = 3},/obj/item/device/multitool{pixel_x = 3},/turf/simulated/floor/tiled,/area/assembly/robotics) +"bPn" = (/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/simple/hidden/scrubbers{dir = 4},/obj/effect/floor_decal/industrial/warning{dir = 1},/obj/machinery/mecha_part_fabricator,/turf/simulated/floor/tiled,/area/assembly/robotics) "bPo" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating,/area/hallway/primary/central_four) "bPp" = (/obj/effect/floor_decal/corner/blue{dir = 1},/obj/item/device/radio/intercom{dir = 8; name = "Station Intercom (General)"; pixel_x = -21},/turf/simulated/floor/tiled,/area/crew_quarters/heads/hop) "bPq" = (/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 1},/turf/simulated/floor/carpet,/area/crew_quarters/heads/hop) @@ -4906,7 +4908,7 @@ "bQt" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/structure/cable/green{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/tiled/white,/area/medical/patient_wing) "bQu" = (/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/unary/vent_pump/on{dir = 1},/obj/effect/floor_decal/corner/paleblue{dir = 10},/obj/structure/disposalpipe/junction{icon_state = "pipe-j2"; dir = 4},/obj/machinery/light,/turf/simulated/floor/tiled/white,/area/medical/patient_wing) "bQv" = (/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/effect/floor_decal/corner/paleblue{dir = 8},/obj/structure/extinguisher_cabinet{pixel_x = 5; pixel_y = -32},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/tiled/white,/area/medical/patient_wing) -"bQw" = (/obj/structure/cable/green{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/effect/floor_decal/corner/lime{dir = 6},/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/turf/simulated/floor/tiled/white,/area/medical/patient_wing) +"bQw" = (/obj/effect/floor_decal/corner/paleblue{dir = 6},/obj/structure/disposalpipe/segment,/turf/simulated/floor/tiled/white,/area/medical/sleeper) "bQx" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 8},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/tiled,/area/medical/virologyaccess) "bQy" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'HIGH VOLTAGE'"; icon_state = "shock"; name = "HIGH VOLTAGE"; pixel_y = -32},/obj/machinery/atmospherics/unary/vent_pump/on{dir = 1},/obj/machinery/camera/network/medbay{c_tag = "MED - Virology Access"; dir = 1},/turf/simulated/floor/tiled,/area/medical/virologyaccess) "bQz" = (/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/effect/floor_decal/corner/lime{dir = 6},/obj/machinery/light{dir = 4; icon_state = "tube1"; pixel_x = 0},/turf/simulated/floor/tiled,/area/medical/virologyaccess) @@ -4941,12 +4943,12 @@ "bRc" = (/obj/machinery/computer/mecha,/obj/effect/floor_decal/corner/purple{dir = 10},/obj/machinery/ai_status_display{pixel_y = -32},/obj/machinery/camera/network/research{c_tag = "SCI - RD's Office"; dir = 1},/turf/simulated/floor/tiled/white,/area/rnd/rdoffice) "bRd" = (/obj/effect/floor_decal/corner/purple/full{dir = 4},/obj/machinery/alarm{dir = 1; pixel_y = -22},/mob/living/simple_animal/slime/science,/turf/simulated/floor/tiled/white,/area/rnd/rdoffice) "bRe" = (/obj/structure/table/rack,/obj/item/weapon/rig/hazmat/equipped,/obj/structure/extinguisher_cabinet{pixel_x = 25; pixel_y = 0},/obj/machinery/firealarm{dir = 1; pixel_y = -24},/turf/simulated/floor/tiled/dark,/area/rnd/rdoffice) -"bRf" = (/obj/structure/table/standard,/obj/item/weapon/storage/box/bodybags{pixel_x = -1; pixel_y = -2},/obj/item/weapon/pen,/obj/item/weapon/tank/anesthetic,/obj/item/clothing/mask/breath/medical,/obj/machinery/light,/turf/simulated/floor/tiled/white,/area/assembly/robotics) +"bRf" = (/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers,/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 1},/obj/effect/floor_decal/industrial/warning{dir = 1},/turf/simulated/floor/tiled,/area/assembly/robotics) "bRg" = (/obj/machinery/optable{name = "Robotics Operating Table"},/turf/simulated/floor/tiled/white,/area/assembly/robotics) -"bRh" = (/obj/effect/floor_decal/industrial/warning{dir = 4},/obj/structure/window/reinforced/tinted{dir = 4; icon_state = "twindow"},/obj/machinery/computer/operating{name = "Robotics Operating Computer"},/turf/simulated/floor/tiled/white,/area/assembly/robotics) -"bRi" = (/obj/structure/reagent_dispensers/fueltank,/obj/effect/floor_decal/corner/pink{dir = 6},/obj/machinery/light{dir = 4; icon_state = "tube1"; pixel_x = 0},/obj/effect/floor_decal/industrial/warning{dir = 1},/turf/simulated/floor/tiled,/area/assembly/robotics) -"bRj" = (/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,/obj/effect/floor_decal/industrial/warning{dir = 1},/turf/simulated/floor/tiled,/area/assembly/robotics) -"bRk" = (/obj/structure/table/standard,/obj/machinery/cell_charger,/obj/item/weapon/cell/high{charge = 100; maxcharge = 15000},/obj/item/device/radio/intercom{dir = 4; name = "Station Intercom (General)"; pixel_x = 21},/obj/effect/floor_decal/corner/pink{dir = 4},/obj/item/device/robotanalyzer,/turf/simulated/floor/tiled,/area/assembly/robotics) +"bRh" = (/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/simple/hidden/scrubbers{dir = 4},/obj/effect/floor_decal/industrial/warning{dir = 1},/obj/structure/table/standard,/obj/item/device/robotanalyzer,/obj/item/device/mmi/digital/posibrain,/turf/simulated/floor/tiled,/area/assembly/robotics) +"bRi" = (/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/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/effect/floor_decal/industrial/warning{dir = 1},/turf/simulated/floor/tiled,/area/assembly/robotics) +"bRj" = (/obj/structure/table/rack{dir = 8; layer = 2.9},/obj/item/weapon/storage/toolbox/mechanical,/obj/item/weapon/storage/toolbox/mechanical{pixel_x = -2; pixel_y = -1},/obj/effect/floor_decal/corner/pink{dir = 6},/obj/item/weapon/storage/toolbox/mechanical,/obj/item/device/multitool{pixel_x = 3},/obj/item/device/multitool{pixel_x = 3},/obj/item/weapon/crowbar,/obj/item/weapon/crowbar,/obj/item/weapon/storage/belt/utility,/obj/item/weapon/storage/belt/utility,/obj/item/weapon/storage/toolbox/electrical{pixel_x = 1; pixel_y = 6},/obj/effect/floor_decal/industrial/warning{dir = 1},/obj/item/weapon/storage/toolbox/electrical{pixel_x = 1; pixel_y = 6},/turf/simulated/floor/tiled,/area/assembly/robotics) +"bRk" = (/obj/structure/cable/green{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 10},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 10},/obj/effect/floor_decal/industrial/warning{dir = 1},/turf/simulated/floor/tiled,/area/assembly/robotics) "bRl" = (/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/assembly/robotics) "bRm" = (/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/turf/simulated/floor/tiled,/area/hallway/primary/central_four) "bRn" = (/obj/effect/floor_decal/industrial/loading{dir = 4},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/tiled,/area/hallway/primary/central_four) @@ -4972,7 +4974,7 @@ "bRH" = (/obj/effect/floor_decal/corner/grey/diagonal{dir = 4},/obj/machinery/light,/obj/machinery/button/remote/blast_door{id = "kitchen"; name = "Kitchen Shutters Control"; pixel_x = -1; pixel_y = -24; req_access = list(28)},/turf/simulated/floor/tiled/white,/area/crew_quarters/kitchen) "bRI" = (/obj/effect/floor_decal/corner/grey/diagonal{dir = 4},/obj/machinery/atmospherics/unary/vent_pump/on{dir = 1},/turf/simulated/floor/tiled/white,/area/crew_quarters/kitchen) "bRJ" = (/obj/machinery/vending/dinnerware,/obj/effect/floor_decal/corner/grey/diagonal{dir = 4},/turf/simulated/floor/tiled/white,/area/crew_quarters/kitchen) -"bRK" = (/obj/machinery/conveyor{dir = 1; id = "packageSort1"},/obj/structure/plasticflaps/mining,/turf/simulated/floor/plating,/area/quartermaster/delivery) +"bRK" = (/obj/machinery/conveyor/map{dir = 1; id = "packageSort1"},/obj/structure/plasticflaps/mining,/turf/simulated/floor/plating,/area/quartermaster/delivery) "bRL" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/navbeacon{codes_txt = "patrol;next_patrol=CH6"; location = "CH5"},/turf/simulated/floor/tiled,/area/hallway/primary/central_two) "bRM" = (/obj/effect/floor_decal/corner/brown{dir = 10},/obj/item/device/radio/intercom{dir = 8; name = "Station Intercom (General)"; pixel_x = -28},/obj/machinery/newscaster{pixel_x = 0; pixel_y = -28},/obj/structure/flora/pottedplant{icon_state = "plant-22"},/turf/simulated/floor/tiled,/area/quartermaster/foyer) "bRN" = (/obj/structure/cable/green{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/simulated/floor/tiled/neutral,/area/crew_quarters/cafeteria) @@ -5030,11 +5032,11 @@ "bSN" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/machinery/door/firedoor/border_only,/obj/machinery/door/blast/regular{density = 0; icon_state = "pdoor0"; id = "Biohazard"; name = "Biohazard Shutter"; opacity = 0},/obj/effect/floor_decal/industrial/hatch/yellow,/obj/structure/window/reinforced{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/plating,/area/rnd/xenobiology/xenoflora) "bSO" = (/obj/effect/floor_decal/corner/white{dir = 5},/obj/machinery/door/airlock/glass_research{name = "Xenoflora Research"; req_access = list(55)},/obj/machinery/door/firedoor/glass,/obj/structure/disposalpipe/segment,/turf/simulated/floor/tiled/hydro,/area/rnd/xenobiology/xenoflora) "bSP" = (/obj/structure/sign/biohazard,/turf/simulated/wall/r_wall,/area/rnd/xenobiology/xenoflora) -"bSQ" = (/turf/simulated/wall,/area/assembly/robotics) -"bSR" = (/obj/machinery/ai_status_display{pixel_x = 0; pixel_y = 0},/turf/simulated/wall,/area/assembly/robotics) -"bSS" = (/obj/machinery/door/firedoor/glass,/obj/machinery/door/airlock/glass_research{name = "Mech Bay"; req_access = list(29)},/turf/simulated/floor/tiled,/area/assembly/robotics) -"bST" = (/obj/machinery/status_display,/turf/simulated/wall,/area/assembly/robotics) -"bSU" = (/obj/machinery/door/airlock/research{name = "Mech Bay"; req_access = list(29)},/obj/machinery/door/firedoor/border_only,/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/white,/area/assembly/robotics) +"bSQ" = (/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/turf/simulated/floor/tiled,/area/assembly/robotics) +"bSR" = (/obj/machinery/light{dir = 8},/obj/machinery/disposal,/obj/structure/disposalpipe/trunk{dir = 4},/turf/simulated/floor/tiled,/area/assembly/robotics) +"bSS" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 1},/turf/simulated/floor/tiled,/area/assembly/robotics) +"bST" = (/obj/structure/reagent_dispensers/fueltank,/obj/effect/floor_decal/corner/pink{dir = 6},/obj/machinery/light{dir = 4; icon_state = "tube1"; pixel_x = 0},/turf/simulated/floor/tiled,/area/assembly/robotics) +"bSU" = (/obj/structure/table/standard,/obj/machinery/cell_charger,/obj/item/device/radio/intercom{dir = 4; name = "Station Intercom (General)"; pixel_x = 21},/obj/effect/floor_decal/corner/pink{dir = 4},/turf/simulated/floor/tiled,/area/assembly/robotics) "bSV" = (/obj/machinery/alarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/obj/structure/disposalpipe/segment,/turf/simulated/floor/tiled,/area/hallway/primary/central_four) "bSW" = (/obj/machinery/door/airlock/command{name = "Head of Personnel"; req_access = list(57)},/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/wood,/area/crew_quarters/heads/hop) "bSX" = (/obj/effect/floor_decal/corner/blue{dir = 9},/obj/machinery/power/apc{dir = 8; name = "west bump"; pixel_x = -24},/obj/structure/cable/green{d2 = 4; icon_state = "0-4"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/tiled,/area/bridge_hallway) @@ -5112,7 +5114,7 @@ "bUr" = (/obj/structure/disposalpipe/segment,/turf/simulated/floor/tiled/hydro,/area/rnd/xenobiology/xenoflora) "bUs" = (/obj/effect/floor_decal/corner/green{dir = 9},/turf/simulated/floor/tiled/white,/area/rnd/xenobiology/xenoflora) "bUt" = (/obj/machinery/atmospherics/portables_connector,/obj/machinery/light{dir = 1},/obj/item/weapon/wrench,/turf/simulated/floor/tiled/white,/area/rnd/xenobiology/xenoflora) -"bUu" = (/obj/machinery/firealarm{dir = 2; pixel_y = 24},/obj/machinery/biogenerator,/turf/simulated/floor/tiled/white,/area/rnd/xenobiology/xenoflora) +"bUu" = (/obj/machinery/firealarm{dir = 2; pixel_y = 24},/obj/machinery/biogenerator/map,/turf/simulated/floor/tiled/white,/area/rnd/xenobiology/xenoflora) "bUv" = (/obj/machinery/status_display{density = 0; layer = 4; pixel_x = 0; pixel_y = 32},/obj/machinery/seed_extractor,/turf/simulated/floor/tiled/white,/area/rnd/xenobiology/xenoflora) "bUw" = (/obj/machinery/reagentgrinder,/obj/structure/table/glass,/turf/simulated/floor/tiled/white,/area/rnd/xenobiology/xenoflora) "bUx" = (/obj/effect/floor_decal/corner/green{dir = 6},/obj/structure/table/glass,/obj/item/weapon/storage/box/beakers{pixel_x = 2; pixel_y = 2},/turf/simulated/floor/tiled/white,/area/rnd/xenobiology/xenoflora) @@ -5121,11 +5123,11 @@ "bUA" = (/obj/machinery/alarm{pixel_y = 22},/turf/simulated/floor/bluegrid,/area/assembly/chargebay) "bUB" = (/turf/simulated/floor/tiled,/area/assembly/chargebay) "bUC" = (/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/assembly/chargebay) -"bUD" = (/obj/machinery/recharge_station,/obj/effect/floor_decal/industrial/outline/yellow,/turf/simulated/floor/tiled,/area/assembly/chargebay) +"bUD" = (/obj/structure/table/standard,/obj/item/weapon/circular_saw,/obj/item/weapon/scalpel{pixel_y = 12},/obj/item/weapon/hemostat,/obj/item/weapon/retractor,/obj/effect/floor_decal/industrial/warning{dir = 1},/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/tiled/white,/area/assembly/robotics) "bUE" = (/turf/simulated/wall/r_wall,/area/assembly/chargebay) "bUF" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/machinery/door/firedoor/border_only,/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plating,/area/hallway/primary/central_four) "bUG" = (/turf/simulated/wall/r_wall,/area/bridge/meeting_room) -"bUH" = (/obj/machinery/photocopier,/turf/simulated/floor/wood,/area/bridge/meeting_room) +"bUH" = (/obj/machinery/photocopier/map,/turf/simulated/floor/wood,/area/bridge/meeting_room) "bUI" = (/obj/machinery/button/remote/blast_door{id = "heads_meeting"; name = "Security Shutters"; pixel_x = 0; pixel_y = 24},/turf/simulated/floor/wood,/area/bridge/meeting_room) "bUJ" = (/obj/machinery/newscaster{pixel_y = 32},/turf/simulated/floor/wood,/area/bridge/meeting_room) "bUK" = (/obj/machinery/status_display{density = 0; layer = 4; pixel_x = 0; pixel_y = 32},/obj/machinery/camera/network/command{c_tag = "COM - Conference Room"},/obj/machinery/light{dir = 1},/turf/simulated/floor/wood,/area/bridge/meeting_room) @@ -5212,7 +5214,7 @@ "bWn" = (/obj/machinery/atmospherics/unary/vent_scrubber/on,/turf/simulated/floor/tiled,/area/assembly/chargebay) "bWo" = (/obj/machinery/camera/network/northern_star{c_tag = "Hall - Central Primary Port Mid 2"; dir = 4},/turf/simulated/floor/tiled,/area/hallway/primary/central_four) "bWp" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/structure/cable/green{d2 = 2; icon_state = "0-2"},/obj/machinery/door/blast/shutters{density = 0; dir = 8; icon_state = "shutter0"; id = "heads_meeting"; name = "Meeting Room Window Shutters"; opacity = 0},/obj/machinery/door/firedoor,/turf/simulated/floor/plating,/area/bridge/meeting_room) -"bWq" = (/obj/structure/table/woodentable,/obj/machinery/photocopier/faxmachine{department = "Bridge"},/turf/simulated/floor/wood,/area/bridge/meeting_room) +"bWq" = (/obj/structure/table/woodentable,/obj/machinery/photocopier/faxmachine/map{department = "Bridge"},/turf/simulated/floor/wood,/area/bridge/meeting_room) "bWr" = (/obj/machinery/atmospherics/unary/vent_pump/on,/turf/simulated/floor/carpet,/area/bridge/meeting_room) "bWs" = (/obj/structure/bed/chair/comfy/black,/turf/simulated/floor/carpet,/area/bridge/meeting_room) "bWt" = (/obj/machinery/hologram/holopad,/turf/simulated/floor/carpet,/area/bridge/meeting_room) @@ -5222,7 +5224,7 @@ "bWx" = (/obj/structure/flora/pottedplant{tag = "icon-plant-10"; icon_state = "plant-10"},/obj/structure/extinguisher_cabinet{pixel_x = -27},/turf/simulated/floor/wood,/area/crew_quarters/captain) "bWy" = (/obj/machinery/ai_status_display{pixel_y = 32},/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 4},/turf/simulated/floor/wood,/area/crew_quarters/captain) "bWz" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 4},/turf/simulated/floor/wood,/area/crew_quarters/captain) -"bWA" = (/obj/structure/table/woodentable,/obj/item/weapon/storage/secure/safe{pixel_x = 5; pixel_y = 28},/obj/machinery/recharger{pixel_y = 4},/turf/simulated/floor/wood,/area/crew_quarters/captain) +"bWA" = (/obj/structure/table/woodentable,/obj/item/weapon/storage/secure/safe{pixel_x = 5; pixel_y = 28},/obj/machinery/recharger/map{pixel_y = 4},/turf/simulated/floor/wood,/area/crew_quarters/captain) "bWB" = (/obj/machinery/computer/card,/obj/item/weapon/card/id/captains_spare,/turf/simulated/floor/wood,/area/crew_quarters/captain) "bWC" = (/obj/machinery/computer/communications,/obj/machinery/status_display{pixel_x = 0; pixel_y = 32},/turf/simulated/floor/wood,/area/crew_quarters/captain) "bWD" = (/obj/machinery/keycard_auth{pixel_x = 0; pixel_y = 24},/turf/simulated/floor/wood,/area/crew_quarters/captain) @@ -5293,8 +5295,8 @@ "bXQ" = (/obj/machinery/hologram/holopad,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled,/area/assembly/chargebay) "bXR" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled,/area/assembly/chargebay) "bXS" = (/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 9; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 9},/turf/simulated/floor/tiled,/area/assembly/chargebay) -"bXT" = (/obj/machinery/cryopod/robot{dir = 4},/obj/effect/floor_decal/industrial/outline/yellow,/turf/simulated/floor/tiled,/area/assembly/chargebay) -"bXU" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/machinery/door/firedoor/border_only,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/turf/simulated/floor/plating,/area/hallway/primary/central_four) +"bXT" = (/obj/structure/table/standard,/obj/machinery/light{dir = 4; icon_state = "tube1"},/obj/machinery/firealarm{dir = 4; pixel_x = 24},/obj/machinery/camera/network/research{c_tag = "SCI - Robotics Starboard"; dir = 8},/turf/simulated/floor/tiled,/area/assembly/robotics) +"bXU" = (/obj/structure/table/standard,/obj/machinery/light,/obj/structure/closet/secure_closet/medical_wall{name = "anesthetic closet"; pixel_x = -32; req_access = list(29)},/obj/item/weapon/tank/anesthetic,/obj/item/weapon/tank/anesthetic,/obj/item/weapon/tank/anesthetic,/obj/item/clothing/mask/breath/medical,/obj/item/clothing/mask/breath/medical,/obj/item/clothing/mask/breath/medical,/obj/item/weapon/storage/box/gloves,/turf/simulated/floor/tiled/white,/area/assembly/robotics) "bXV" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 4},/turf/simulated/floor/tiled,/area/hallway/primary/central_four) "bXW" = (/obj/machinery/light{dir = 4; icon_state = "tube1"; pixel_x = 0},/obj/structure/disposalpipe/segment,/turf/simulated/floor/tiled,/area/hallway/primary/central_four) "bXX" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/cable/green{d2 = 2; icon_state = "0-2"},/obj/structure/cable/green,/obj/structure/cable/green{d2 = 4; icon_state = "0-4"},/obj/machinery/door/blast/shutters{density = 0; dir = 8; icon_state = "shutter0"; id = "heads_meeting"; name = "Meeting Room Window Shutters"; opacity = 0},/obj/machinery/door/firedoor,/turf/simulated/floor/plating,/area/bridge/meeting_room) @@ -5337,8 +5339,8 @@ "bYI" = (/obj/machinery/embedded_controller/radio/airlock/docking_port{frequency = 1380; id_tag = "mining_dock_airlock"; pixel_x = -6; pixel_y = -25; req_one_access = list(13,48); tag_airpump = "mining_dock_pump"; tag_chamber_sensor = "mining_dock_sensor"; tag_exterior_door = "mining_dock_outer"; tag_interior_door = "mining_dock_inner"},/obj/machinery/airlock_sensor{frequency = 1380; id_tag = "mining_dock_sensor"; pixel_x = 6; pixel_y = -24},/obj/structure/closet/emcloset,/obj/machinery/atmospherics/pipe/simple/hidden{dir = 9; icon_state = "intact"; tag = "icon-intact-f (NORTHWEST)"},/obj/effect/floor_decal/industrial/warning{dir = 6},/turf/simulated/floor/tiled/steel,/area/quartermaster/miningdock) "bYJ" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/machinery/door/firedoor,/obj/machinery/door/airlock/maintenance{req_access = null; req_one_access = list(12,47)},/obj/structure/disposalpipe/segment,/turf/simulated/floor,/area/maintenance/research) "bYK" = (/obj/effect/floor_decal/corner/green/full,/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 1},/obj/item/device/radio/intercom{dir = 8; name = "Station Intercom (General)"; pixel_x = -21},/obj/machinery/camera/network/research{c_tag = "SCI - Xenoflora Storage"; dir = 4},/turf/simulated/floor/tiled/white,/area/rnd/xenobiology/xenoflora_storage) -"bYL" = (/obj/machinery/atmospherics/unary/freezer{dir = 2; icon_state = "freezer"},/obj/effect/floor_decal/corner/green{dir = 10},/turf/simulated/floor/tiled/white,/area/rnd/xenobiology/xenoflora_storage) -"bYM" = (/obj/machinery/atmospherics/unary/heater{dir = 2; icon_state = "heater"},/obj/effect/floor_decal/corner/green{dir = 10},/turf/simulated/floor/tiled/white,/area/rnd/xenobiology/xenoflora_storage) +"bYL" = (/obj/machinery/atmospherics/unary/freezer/map{dir = 2; icon_state = "freezer"},/obj/effect/floor_decal/corner/green{dir = 10},/turf/simulated/floor/tiled/white,/area/rnd/xenobiology/xenoflora_storage) +"bYM" = (/obj/machinery/atmospherics/unary/heater/map{dir = 2; icon_state = "heater"},/obj/effect/floor_decal/corner/green{dir = 10},/turf/simulated/floor/tiled/white,/area/rnd/xenobiology/xenoflora_storage) "bYN" = (/obj/machinery/atmospherics/portables_connector,/obj/effect/floor_decal/corner/green/full{dir = 4},/turf/simulated/floor/tiled/white,/area/rnd/xenobiology/xenoflora_storage) "bYO" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/obj/machinery/door/firedoor/border_only,/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plating,/area/rnd/xenobiology/xenoflora_storage) "bYP" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 1},/turf/simulated/floor/tiled/hydro,/area/rnd/xenobiology/xenoflora) @@ -5350,12 +5352,12 @@ "bYV" = (/obj/machinery/botany/extractor,/turf/simulated/floor/tiled/hydro,/area/rnd/xenobiology/xenoflora) "bYW" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 1},/turf/simulated/floor/tiled,/area/assembly/chargebay) "bYX" = (/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/tiled,/area/assembly/chargebay) -"bYY" = (/obj/machinery/computer/cryopod/robot{pixel_x = 30; pixel_y = 0},/obj/effect/floor_decal/industrial/warning/corner,/obj/effect/landmark{name = "JoinLateCyborg"},/obj/machinery/camera/network/research{c_tag = "SCI - Mech Bay Starboard"; dir = 8},/turf/simulated/floor/tiled,/area/assembly/chargebay) +"bYY" = (/obj/effect/floor_decal/industrial/warning{dir = 4},/obj/machinery/computer/operating{name = "Robotics Operating Computer"},/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/tiled/white,/area/assembly/robotics) "bYZ" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/hallway/primary/central_four) "bZa" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/hallway/primary/central_four) "bZb" = (/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 8},/obj/structure/disposalpipe/segment,/turf/simulated/floor/tiled,/area/hallway/primary/central_four) "bZc" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/cable/green{d2 = 2; icon_state = "0-2"},/obj/structure/cable/green,/obj/machinery/door/blast/shutters{density = 0; dir = 8; icon_state = "shutter0"; id = "heads_meeting"; name = "Meeting Room Window Shutters"; opacity = 0},/obj/machinery/door/firedoor,/turf/simulated/floor/plating,/area/bridge/meeting_room) -"bZd" = (/obj/structure/table/woodentable,/obj/machinery/recharger{pixel_y = 4},/turf/simulated/floor/wood,/area/bridge/meeting_room) +"bZd" = (/obj/structure/table/woodentable,/obj/machinery/recharger/map{pixel_y = 4},/turf/simulated/floor/wood,/area/bridge/meeting_room) "bZe" = (/obj/structure/disposalpipe/segment,/turf/simulated/floor/wood,/area/bridge/meeting_room) "bZf" = (/obj/structure/bed/chair/comfy/black{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/carpet,/area/bridge/meeting_room) "bZg" = (/obj/item/weapon/paper_bin{pixel_x = -3; pixel_y = 7},/obj/item/weapon/pen,/obj/structure/table/woodentable,/turf/simulated/floor/carpet,/area/bridge/meeting_room) @@ -5372,7 +5374,7 @@ "bZr" = (/obj/structure/table/woodentable,/obj/machinery/computer/skills,/obj/item/weapon/hand_tele,/turf/simulated/floor/wood,/area/crew_quarters/captain) "bZs" = (/obj/machinery/door/window/southright{name = "Captain's Desk Door"; req_access = list(20)},/turf/simulated/floor/wood,/area/crew_quarters/captain) "bZt" = (/obj/structure/table/woodentable,/obj/item/weapon/paper_bin{pixel_x = -3; pixel_y = 7},/obj/item/weapon/folder/blue,/obj/item/weapon/pen,/obj/item/device/megaphone,/obj/machinery/requests_console{announcementConsole = 1; department = "Captain's Desk"; departmentType = 5; name = "Captain RC"; pixel_x = 30; pixel_y = 0},/obj/structure/window/reinforced,/turf/simulated/floor/wood,/area/crew_quarters/captain) -"bZu" = (/obj/machinery/recharge_station,/obj/machinery/light/small{dir = 8},/turf/simulated/floor/tiled/freezer,/area/crew_quarters/recreation_area_restroom) +"bZu" = (/obj/machinery/recharge_station/map,/obj/machinery/light/small{dir = 8},/turf/simulated/floor/tiled/freezer,/area/crew_quarters/recreation_area_restroom) "bZv" = (/obj/structure/bed/chair{dir = 1},/turf/simulated/floor/tiled,/area/crew_quarters/cafeteria) "bZw" = (/obj/machinery/hologram/holopad,/turf/simulated/floor/tiled,/area/crew_quarters/cafeteria) "bZx" = (/turf/simulated/mineral/floor/ignore_mapgen,/area/space) @@ -5430,7 +5432,7 @@ "cax" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/wood,/area/crew_quarters/captain) "cay" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 8},/obj/structure/bed/chair{dir = 1},/turf/simulated/floor/wood,/area/crew_quarters/captain) "caz" = (/obj/structure/filingcabinet,/obj/machinery/light{dir = 4},/turf/simulated/floor/wood,/area/crew_quarters/captain) -"caA" = (/obj/machinery/recharge_station,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/tiled,/area/crew_quarters/cafeteria) +"caA" = (/obj/machinery/recharge_station/map,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/tiled,/area/crew_quarters/cafeteria) "caB" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/disposalpipe/segment,/obj/machinery/light/small{dir = 4},/turf/simulated/floor,/area/maintenance/central) "caC" = (/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 4},/turf/simulated/floor/tiled/neutral,/area/crew_quarters/cafeteria) "caD" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled,/area/crew_quarters/cafeteria) @@ -5490,7 +5492,7 @@ "cbF" = (/obj/effect/floor_decal/industrial/warning{dir = 4},/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)},/turf/simulated/floor/tiled,/area/assembly/chargebay) "cbG" = (/obj/machinery/light,/turf/simulated/floor/tiled,/area/hallway/primary/central_four) "cbH" = (/obj/structure/extinguisher_cabinet{pixel_x = 5; pixel_y = -32},/turf/simulated/floor/tiled,/area/hallway/primary/central_four) -"cbI" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/obj/machinery/door/firedoor/border_only,/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plating,/area/hallway/primary/central_four) +"cbI" = (/obj/structure/table/standard,/obj/effect/floor_decal/industrial/warning{dir = 8},/obj/item/weapon/screwdriver,/obj/item/weapon/crowbar,/obj/item/weapon/circular_saw,/obj/item/weapon/hemostat,/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/tiled/white,/area/assembly/robotics) "cbJ" = (/obj/machinery/disposal,/obj/structure/disposalpipe/trunk{dir = 4},/turf/simulated/floor/wood,/area/bridge/meeting_room) "cbK" = (/obj/machinery/requests_console{announcementConsole = 1; department = "Bridge"; departmentType = 5; name = "Bridge RC"; pixel_y = -30},/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/turf/simulated/floor/wood,/area/bridge/meeting_room) "cbL" = (/obj/structure/extinguisher_cabinet{pixel_x = 5; pixel_y = -32},/turf/simulated/floor/wood,/area/bridge/meeting_room) @@ -5512,7 +5514,7 @@ "ccb" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/tiled,/area/crew_quarters/cafeteria) "ccc" = (/obj/structure/table/rack,/obj/item/clothing/suit/radiation,/obj/item/clothing/head/radiation,/obj/item/weapon/storage/toolbox/emergency,/obj/item/device/radio/intercom{broadcasting = 0; canhear_range = 5; dir = 2; frequency = 1487; icon_state = "intercom"; listening = 0; name = "Station Intercom (Medbay)"; pixel_x = 0; pixel_y = -21},/obj/item/weapon/storage/box/lights/mixed,/turf/simulated/floor/tiled/dark,/area/medical/biostorage) "ccd" = (/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 4},/turf/simulated/floor/tiled,/area/hallway/primary/central_two) -"cce" = (/obj/machinery/recharge_station,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/tiled/neutral,/area/crew_quarters/cafeteria) +"cce" = (/obj/machinery/recharge_station/map,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/tiled/neutral,/area/crew_quarters/cafeteria) "ccf" = (/obj/effect/floor_decal/corner/pink{dir = 9},/turf/simulated/floor/tiled,/area/hallway/secondary/medical_emergency_hallway) "ccg" = (/obj/machinery/atmospherics/unary/vent_pump/on,/obj/effect/floor_decal/corner/pink{dir = 6},/turf/simulated/floor/tiled,/area/hallway/secondary/medical_emergency_hallway) "cch" = (/obj/effect/floor_decal/corner/pink/full,/obj/machinery/computer/med_data/laptop,/obj/structure/table/glass,/obj/machinery/light,/obj/item/device/radio/intercom{dir = 8; name = "Station Intercom (General)"; pixel_x = -21},/turf/simulated/floor/tiled/white,/area/medical/patient_e) @@ -5524,7 +5526,7 @@ "ccn" = (/obj/effect/floor_decal/corner/pink{dir = 10},/obj/structure/table/glass,/obj/item/weapon/paper_bin,/obj/item/weapon/clipboard,/obj/item/weapon/pen,/turf/simulated/floor/tiled/white,/area/medical/patient_d) "cco" = (/obj/machinery/computer/med_data/laptop,/obj/structure/table/glass,/obj/effect/floor_decal/corner/pink/full{dir = 4},/obj/machinery/light,/obj/item/device/radio/intercom{dir = 4; name = "Station Intercom (General)"; pixel_x = 21},/turf/simulated/floor/tiled/white,/area/medical/patient_d) "ccp" = (/obj/effect/floor_decal/industrial/warning{dir = 8},/obj/machinery/light{dir = 8},/turf/simulated/floor/tiled,/area/hallway/secondary/escape/medical_escape_pod_hallway) -"ccq" = (/obj/machinery/sleeper{dir = 4},/obj/effect/floor_decal/corner/paleblue/full{dir = 1},/turf/simulated/floor/tiled/white,/area/medical/first_aid_station) +"ccq" = (/obj/machinery/sleeper/map{dir = 4},/obj/effect/floor_decal/corner/paleblue/full{dir = 1},/turf/simulated/floor/tiled/white,/area/medical/first_aid_station) "ccr" = (/obj/structure/closet/emcloset,/obj/effect/floor_decal/industrial/warning{dir = 5},/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 8},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/tiled,/area/hallway/secondary/escape/medical_escape_pod_hallway) "ccs" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/wall/r_wall,/area/hallway/secondary/escape/medical_escape_pod_hallway) "cct" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/airless{icon_state = "asteroidplating2"},/area/mine/explored/upper_level) @@ -5548,7 +5550,7 @@ "ccL" = (/obj/machinery/disposal,/obj/structure/disposalpipe/trunk,/obj/effect/floor_decal/corner/blue{dir = 6},/turf/simulated/floor/tiled,/area/bridge) "ccM" = (/obj/machinery/door/airlock/command{id_tag = "captaindoor"; name = "Captain's Office"; req_access = list(20)},/obj/structure/disposalpipe/segment,/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,/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/tiled,/area/crew_quarters/captain) "ccN" = (/obj/machinery/disposal,/obj/structure/disposalpipe/trunk{dir = 1},/turf/simulated/floor/wood,/area/crew_quarters/captain) -"ccO" = (/obj/structure/table/woodentable,/obj/machinery/photocopier/faxmachine{department = "Captain's Office"},/turf/simulated/floor/wood,/area/crew_quarters/captain) +"ccO" = (/obj/structure/table/woodentable,/obj/machinery/photocopier/faxmachine/map{department = "Captain's Office"},/turf/simulated/floor/wood,/area/crew_quarters/captain) "ccP" = (/turf/simulated/wall,/area/crew_quarters/captain) "ccQ" = (/obj/machinery/door/airlock/maintenance{req_access = list(12)},/obj/machinery/door/firedoor/border_only,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/disposalpipe/segment,/turf/simulated/floor,/area/maintenance/central) "ccR" = (/obj/machinery/disposal,/obj/structure/disposalpipe/trunk{dir = 4},/obj/machinery/firealarm{dir = 1; pixel_x = 0; pixel_y = -26},/obj/effect/floor_decal/corner/yellow/full,/turf/simulated/floor/tiled/white,/area/crew_quarters/coffee_shop) @@ -5723,7 +5725,7 @@ "cge" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/tiled,/area/hallway/secondary/medical_emergency_hallway) "cgf" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/tiled,/area/hallway/secondary/medical_emergency_hallway) "cgg" = (/obj/structure/closet/emcloset,/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/turf/simulated/floor/tiled/dark,/area/hallway/secondary/medical_emergency_hallway) -"cgh" = (/obj/effect/decal/cleanable/cobweb2{icon_state = "spiderling"; name = "dead spider"; tag = "icon-spiderling"},/obj/effect/decal/cleanable/cobweb2{tag = "icon-cobweb1"; icon_state = "cobweb1"},/turf/simulated/floor,/area/maintenance/medbay_aft) +"cgh" = (/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/obj/structure/closet/crate,/obj/random/action_figure,/obj/random/action_figure,/obj/random/action_figure,/obj/random/action_figure,/obj/random/action_figure,/obj/random/action_figure,/obj/random/action_figure,/obj/random/action_figure,/turf/simulated/floor,/area/maintenance/library) "cgi" = (/obj/structure/closet,/obj/item/clothing/glasses/welding,/obj/item/weapon/weldingtool,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plating,/area/maintenance/medbay_aft) "cgj" = (/obj/machinery/space_heater,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plating,/area/maintenance/medbay_aft) "cgk" = (/obj/machinery/portable_atmospherics/powered/scrubber,/turf/simulated/floor,/area/maintenance/medbay_aft) @@ -5843,7 +5845,7 @@ "ciu" = (/obj/machinery/computer/card,/obj/effect/floor_decal/corner/blue/full,/turf/simulated/floor/tiled,/area/bridge) "civ" = (/obj/machinery/computer/communications,/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/effect/floor_decal/corner/blue/full{dir = 4},/turf/simulated/floor/tiled,/area/bridge) "ciw" = (/obj/structure/table/reinforced,/obj/item/weapon/storage/secure/briefcase,/obj/structure/window/reinforced{dir = 8},/obj/effect/floor_decal/corner/blue/full,/turf/simulated/floor/tiled,/area/bridge) -"cix" = (/obj/structure/table/reinforced,/obj/machinery/recharger{pixel_y = 0},/obj/structure/window/reinforced{dir = 4},/obj/effect/floor_decal/corner/blue/full{dir = 4},/turf/simulated/floor/tiled,/area/bridge) +"cix" = (/obj/structure/table/reinforced,/obj/machinery/recharger/map{pixel_y = 0},/obj/structure/window/reinforced{dir = 4},/obj/effect/floor_decal/corner/blue/full{dir = 4},/turf/simulated/floor/tiled,/area/bridge) "ciy" = (/obj/machinery/computer/crew,/obj/effect/floor_decal/corner/white/full,/turf/simulated/floor/tiled,/area/bridge) "ciz" = (/obj/machinery/computer/med_data,/obj/effect/floor_decal/corner/white/full{tag = "icon-corner_white_full (EAST)"; icon_state = "corner_white_full"; dir = 4},/turf/simulated/floor/tiled,/area/bridge) "ciA" = (/obj/structure/table/reinforced,/obj/item/device/flash,/obj/item/device/flash,/obj/item/device/aicard,/obj/structure/window/reinforced{dir = 8},/obj/effect/floor_decal/corner/blue/full,/obj/machinery/light,/turf/simulated/floor/tiled,/area/bridge) @@ -5872,7 +5874,7 @@ "ciX" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/crew_quarters/cafeteria) "ciY" = (/obj/structure/table/standard,/obj/item/weapon/reagent_containers/glass/beaker/cryoxadone{pixel_x = -4; pixel_y = 0},/obj/item/weapon/wrench,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/shuttle/large_escape_pod1/station) "ciZ" = (/obj/structure/closet/crate/medical,/obj/item/weapon/storage/firstaid/regular{pixel_x = -2; pixel_y = 4},/obj/item/weapon/storage/firstaid/regular{pixel_x = -2; pixel_y = 4},/obj/item/bodybag/cryobag{pixel_x = 5},/obj/item/bodybag/cryobag{pixel_x = 5},/obj/item/weapon/storage/firstaid/o2{layer = 2.8; pixel_x = 4; pixel_y = 6},/obj/item/weapon/storage/box/masks{pixel_x = 0; pixel_y = 0},/obj/item/weapon/storage/box/gloves{pixel_x = 3; pixel_y = 4},/obj/item/weapon/storage/firstaid/toxin,/obj/item/weapon/storage/firstaid/fire{layer = 2.9; pixel_x = 2; pixel_y = 3},/obj/item/weapon/storage/firstaid/adv{pixel_x = -2},/obj/item/weapon/reagent_containers/blood/empty,/obj/item/weapon/reagent_containers/blood/empty,/obj/item/weapon/reagent_containers/blood/empty,/obj/item/weapon/reagent_containers/blood/empty,/obj/item/weapon/reagent_containers/blood/empty,/obj/machinery/status_display{density = 0; layer = 4; pixel_x = 0; pixel_y = -32},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/shuttle/large_escape_pod1/station) -"cja" = (/obj/machinery/sleeper{dir = 8},/turf/simulated/shuttle/floor,/area/shuttle/large_escape_pod1/station) +"cja" = (/obj/machinery/sleeper/map{dir = 8},/turf/simulated/shuttle/floor,/area/shuttle/large_escape_pod1/station) "cjb" = (/obj/machinery/sleep_console,/turf/simulated/shuttle/floor,/area/shuttle/large_escape_pod1/station) "cjc" = (/obj/structure/bed/chair{dir = 1},/obj/machinery/light,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/shuttle/large_escape_pod1/station) "cjd" = (/obj/structure/bed/chair{dir = 1},/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_y = -21},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/shuttle/large_escape_pod1/station) @@ -5913,18 +5915,18 @@ "cjM" = (/obj/item/device/radio/intercom{dir = 4; name = "Station Intercom (General)"; pixel_x = 26},/obj/machinery/alarm{dir = 1; pixel_y = -22},/turf/simulated/floor/tiled/dark,/area/hallway/primary/central_two) "cjN" = (/obj/structure/shuttle/engine/propulsion{dir = 8; icon_state = "propulsion_r"},/turf/space,/area/shuttle/large_escape_pod1/station) "cjO" = (/obj/structure/closet/emcloset,/obj/effect/floor_decal/corner/brown/full{dir = 8},/turf/simulated/floor/tiled,/area/quartermaster/office) -"cjP" = (/obj/machinery/photocopier,/obj/effect/floor_decal/corner/brown/full{dir = 1},/turf/simulated/floor/tiled,/area/quartermaster/office) +"cjP" = (/obj/machinery/photocopier/map,/obj/effect/floor_decal/corner/brown/full{dir = 1},/turf/simulated/floor/tiled,/area/quartermaster/office) "cjQ" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/quartermaster/miningdock) "cjR" = (/obj/machinery/door/airlock/mining{id_tag = "cargodoor"; name = "Mining Dock"; req_access = list(50)},/obj/machinery/door/firedoor/border_only,/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,/obj/structure/disposalpipe/segment,/turf/simulated/floor/tiled,/area/quartermaster/miningdock) "cjS" = (/obj/structure/disposaloutlet,/obj/structure/disposalpipe/trunk{dir = 8},/obj/effect/floor_decal/industrial/outline/yellow,/turf/simulated/floor/tiled,/area/quartermaster/delivery) "cjT" = (/obj/item/device/radio/intercom{dir = 4; name = "Station Intercom (General)"; pixel_x = 27},/obj/structure/disposalpipe/segment,/turf/simulated/floor/tiled,/area/quartermaster/delivery) -"cjU" = (/obj/machinery/conveyor{dir = 1; id = "packageSort1"},/turf/simulated/floor,/area/quartermaster/delivery) +"cjU" = (/obj/machinery/conveyor/map{dir = 1; id = "packageSort1"},/turf/simulated/floor,/area/quartermaster/delivery) "cjV" = (/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable/green{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/simulated/floor,/area/maintenance/substation/cargo) "cjW" = (/obj/structure/cable/green{d2 = 8; icon_state = "0-8"},/obj/machinery/power/apc{dir = 1; name = "north bump"; pixel_x = 0; pixel_y = 24},/turf/simulated/floor,/area/maintenance/substation/cargo) "cjX" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/simulated/floor,/area/maintenance/substation/cargo) "cjY" = (/obj/structure/closet/crate,/obj/item/clothing/mask/gas,/obj/item/device/flashlight,/obj/item/device/flashlight,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plating,/area/maintenance/cargo) "cjZ" = (/obj/machinery/atmospherics/pipe/tank/air{dir = 1; start_pressure = 740},/obj/effect/floor_decal/industrial/warning{dir = 8},/turf/simulated/floor,/area/maintenance/cargo) -"cka" = (/obj/effect/floor_decal/corner/red{dir = 8},/obj/machinery/power/apc{dir = 8; name = "west bump"; pixel_x = -24},/obj/structure/cable/green{d2 = 4; icon_state = "0-4"},/obj/machinery/light_switch{pixel_x = -36},/obj/structure/table/reinforced,/obj/machinery/recharger{pixel_y = 0},/turf/simulated/floor/tiled,/area/security/checkpoint2) +"cka" = (/obj/effect/floor_decal/corner/red{dir = 8},/obj/machinery/power/apc{dir = 8; name = "west bump"; pixel_x = -24},/obj/structure/cable/green{d2 = 4; icon_state = "0-4"},/obj/machinery/light_switch{pixel_x = -36},/obj/structure/table/reinforced,/obj/machinery/recharger/map{pixel_y = 0},/turf/simulated/floor/tiled,/area/security/checkpoint2) "ckb" = (/obj/structure/table/rack{dir = 8; layer = 2.9},/obj/item/weapon/storage/toolbox/electrical{pixel_x = 1; pixel_y = -1},/obj/item/device/multitool,/obj/item/clothing/glasses/meson,/obj/machinery/ai_status_display{pixel_x = -32; pixel_y = 0},/obj/machinery/light/small{dir = 1},/turf/simulated/floor/plating,/area/storage/tech) "ckc" = (/obj/structure/table/rack{dir = 8; layer = 2.9},/obj/item/weapon/storage/toolbox/electrical{pixel_x = 1; pixel_y = -1},/obj/item/clothing/gloves/yellow,/obj/item/device/t_scanner,/obj/item/clothing/glasses/meson,/obj/item/device/multitool,/turf/simulated/floor/plating,/area/storage/tech) "ckd" = (/obj/item/device/flashlight{pixel_x = 1; pixel_y = 5},/obj/item/device/flashlight{pixel_x = 1; pixel_y = 5},/obj/item/device/flash,/obj/item/device/flash,/obj/structure/table/steel,/obj/machinery/camera/network/engineering{c_tag = "ENG - Technical Storage"; dir = 2},/obj/machinery/alarm{pixel_y = 22},/turf/simulated/floor/plating,/area/storage/tech) @@ -5950,7 +5952,7 @@ "ckx" = (/obj/effect/floor_decal/corner/brown{dir = 5},/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/simple/hidden/scrubbers{dir = 4},/obj/machinery/light{dir = 1},/turf/simulated/floor/tiled,/area/quartermaster/delivery) "cky" = (/obj/effect/floor_decal/industrial/loading,/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 10},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 10},/turf/simulated/floor/tiled,/area/quartermaster/delivery) "ckz" = (/obj/effect/floor_decal/industrial/warning/corner,/obj/machinery/firealarm{dir = 4; pixel_x = 26},/obj/structure/cable/green{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/disposalpipe/segment,/turf/simulated/floor/tiled,/area/quartermaster/delivery) -"ckA" = (/obj/structure/plasticflaps{opacity = 0},/obj/machinery/conveyor{dir = 1; id = "packageSort1"},/turf/simulated/floor,/area/quartermaster/delivery) +"ckA" = (/obj/structure/plasticflaps{opacity = 0},/obj/machinery/conveyor/map{dir = 1; id = "packageSort1"},/turf/simulated/floor,/area/quartermaster/delivery) "ckB" = (/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/effect/floor_decal/industrial/warning/corner,/obj/machinery/light/small{dir = 8},/turf/simulated/floor,/area/maintenance/substation/cargo) "ckC" = (/obj/machinery/power/terminal,/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/effect/floor_decal/industrial/warning,/turf/simulated/floor,/area/maintenance/substation/cargo) "ckD" = (/obj/effect/floor_decal/industrial/warning,/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/substation/cargo) @@ -6036,7 +6038,7 @@ "cmf" = (/obj/machinery/hologram/holopad,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/tiled,/area/quartermaster/delivery) "cmg" = (/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment,/turf/simulated/floor/tiled,/area/quartermaster/delivery) "cmh" = (/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 4},/turf/simulated/floor/tiled,/area/quartermaster/delivery) -"cmi" = (/obj/machinery/conveyor{dir = 1; id = "packageSort1"},/turf/simulated/floor/plating,/area/quartermaster/delivery) +"cmi" = (/obj/machinery/conveyor/map{dir = 1; id = "packageSort1"},/turf/simulated/floor/plating,/area/quartermaster/delivery) "cmj" = (/turf/simulated/wall,/area/storage/emergency_storage/emergency6) "cmk" = (/obj/structure/reagent_dispensers/watertank,/turf/simulated/floor/tiled,/area/storage/tools) "cml" = (/obj/structure/reagent_dispensers/fueltank,/turf/simulated/floor/tiled,/area/storage/tools) @@ -6173,7 +6175,7 @@ "coM" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/effect/decal/cleanable/dirt,/turf/simulated/floor,/area/maintenance/medbay_aft) "coN" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/effect/decal/cleanable/dirt,/turf/simulated/floor,/area/maintenance/medbay_aft) "coO" = (/obj/structure/closet/crate/medical,/turf/simulated/floor,/area/maintenance/medbay_aft) -"coP" = (/obj/machinery/autolathe,/obj/effect/floor_decal/corner/brown{dir = 9},/turf/simulated/floor/tiled,/area/quartermaster/office) +"coP" = (/obj/machinery/autolathe/map,/obj/effect/floor_decal/corner/brown{dir = 9},/turf/simulated/floor/tiled,/area/quartermaster/office) "coQ" = (/obj/machinery/hologram/holopad,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/tiled,/area/quartermaster/office) "coR" = (/obj/machinery/computer/supplycomp,/turf/simulated/floor/tiled,/area/quartermaster/office) "coS" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/crew_quarters/sleep/elevator) @@ -6480,7 +6482,7 @@ "cuH" = (/obj/structure/table/standard,/obj/machinery/newscaster{pixel_x = 0; pixel_y = 32},/turf/simulated/floor/wood,/area/crew_quarters/sleep/vistor_room_11) "cuI" = (/obj/item/frame/light,/obj/structure/table/reinforced,/turf/simulated/floor/tiled,/area/vacant/vacant_shop) "cuJ" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 10},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 6},/turf/simulated/floor/tiled/white,/area/crew_quarters/sleep/vistor_room_11) -"cuK" = (/obj/structure/sink{dir = 4; icon_state = "sink"; pixel_x = 11; pixel_y = 0},/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 8},/obj/structure/mirror{pixel_x = 28},/turf/simulated/floor/tiled/white,/area/crew_quarters/sleep/vistor_room_5) +"cuK" = (/obj/machinery/door/airlock/maintenance{name = "Maintenance Access"; req_one_access = list(12,37)},/turf/simulated/floor,/area/maintenance/library) "cuL" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/effect/floor_decal/corner/white{dir = 8},/obj/effect/floor_decal/corner/blue{dir = 1},/turf/simulated/floor/tiled,/area/crew_quarters/visitor_lodging) "cuM" = (/obj/effect/floor_decal/corner/white{dir = 4},/obj/effect/floor_decal/corner/blue,/turf/simulated/floor/tiled,/area/crew_quarters/visitor_lodging) "cuN" = (/obj/structure/sink{icon_state = "sink"; dir = 8; pixel_x = -12; pixel_y = 2},/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 4},/obj/structure/mirror{pixel_x = -28},/turf/simulated/floor/tiled/white,/area/crew_quarters/sleep/vistor_room_6) @@ -6521,7 +6523,7 @@ "cvw" = (/obj/structure/bed/padded,/obj/item/weapon/bedsheet/brown,/turf/simulated/floor/wood,/area/crew_quarters/sleep/vistor_room_5) "cvx" = (/obj/machinery/atmospherics/unary/vent_pump/on,/turf/simulated/floor/wood,/area/crew_quarters/sleep/vistor_room_5) "cvy" = (/obj/machinery/door/airlock{name = "Restroom"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/tiled/white,/area/crew_quarters/sleep/vistor_room_5) -"cvz" = (/obj/structure/sink{dir = 4; icon_state = "sink"; pixel_x = 11; pixel_y = 0},/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 8},/obj/structure/mirror{pixel_x = 28},/turf/simulated/floor/tiled/white,/area/crew_quarters/sleep/vistor_room_11) +"cvz" = (/obj/item/device/communicator,/turf/simulated/floor,/area/maintenance/library) "cvA" = (/obj/effect/floor_decal/corner/white{dir = 4},/obj/structure/disposalpipe/segment,/turf/simulated/floor/tiled,/area/crew_quarters/visitor_lodging) "cvB" = (/obj/machinery/door/airlock{name = "Restroom"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/tiled/white,/area/crew_quarters/sleep/vistor_room_6) "cvC" = (/obj/structure/bed/padded,/obj/item/weapon/bedsheet/brown,/turf/simulated/floor/wood,/area/crew_quarters/sleep/vistor_room_6) @@ -6630,13 +6632,13 @@ "cxB" = (/obj/machinery/door/airlock/glass_command{name = "E.V.A."; req_one_access = list(18)},/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/door/firedoor/glass,/turf/simulated/floor/tiled,/area/ai_monitored/storage/eva) "cxC" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 1},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/tiled,/area/hallway/primary/central_three) "cxD" = (/obj/machinery/door/airlock/glass_command{name = "E.V.A."; req_one_access = list(18)},/obj/machinery/door/firedoor/glass,/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/tiled,/area/ai_monitored/storage/eva) -"cxE" = (/obj/structure/closet/emcloset,/turf/simulated/floor/tiled/dark,/area/crew_quarters/sleep/elevator) +"cxE" = (/obj/effect/floor_decal/corner/purple{dir = 6},/obj/machinery/alarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/tiled/white,/area/rnd/research) "cxF" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 1},/turf/simulated/floor/tiled/dark,/area/crew_quarters/sleep/elevator) "cxG" = (/obj/structure/extinguisher_cabinet{pixel_x = 5; pixel_y = -32},/turf/simulated/floor/tiled/dark,/area/crew_quarters/sleep/elevator) "cxH" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 8},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/tiled/dark,/area/crew_quarters/sleep/elevator) "cxI" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled/dark,/area/crew_quarters/sleep/elevator) "cxJ" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 8},/turf/simulated/floor/tiled/dark,/area/crew_quarters/sleep/elevator) -"cxK" = (/obj/structure/closet/emcloset,/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/simulated/floor/tiled/dark,/area/crew_quarters/sleep/elevator) +"cxK" = (/obj/machinery/power/apc{dir = 1; name = "north bump"; pixel_x = 0; pixel_y = 24},/obj/structure/cable/green{d2 = 4; icon_state = "0-4"},/obj/machinery/atm{pixel_x = -32; pixel_y = 0},/turf/simulated/floor/tiled,/area/crew_quarters/sleep/elevator) "cxL" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 4},/obj/structure/disposalpipe/segment,/obj/machinery/light{dir = 8; icon_state = "tube1"; pixel_y = 0},/turf/simulated/floor/tiled,/area/hallway/secondary/docking_hallway) "cxM" = (/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/tiled,/area/hallway/secondary/docking_hallway) "cxN" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/quartermaster/storage) @@ -6651,14 +6653,14 @@ "cxW" = (/obj/machinery/door/airlock/glass_medical{name = "First-Aid Station"; req_one_access = list(5,10,63)},/obj/structure/cable{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/white,/area/medical/first_aid_station) "cxX" = (/obj/structure/bed/chair/comfy/beige{dir = 8},/obj/machinery/camera/network/civilian{c_tag = "CIV - Visitor Room 5"; dir = 1},/turf/simulated/floor/wood,/area/crew_quarters/sleep/vistor_room_5) "cxY" = (/obj/structure/table/standard,/obj/item/weapon/storage/box/donkpockets{pixel_x = 3; pixel_y = 2},/obj/machinery/light,/turf/simulated/floor/wood,/area/crew_quarters/sleep/vistor_room_5) -"cxZ" = (/obj/structure/table/standard,/obj/machinery/microwave,/turf/simulated/floor/wood,/area/crew_quarters/sleep/vistor_room_5) +"cxZ" = (/obj/structure/table/standard,/obj/machinery/microwave/map,/turf/simulated/floor/wood,/area/crew_quarters/sleep/vistor_room_5) "cya" = (/obj/structure/cable/green{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers,/obj/machinery/atmospherics/pipe/manifold/hidden/supply,/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/turf/simulated/floor/wood,/area/crew_quarters/sleep/vistor_room_11) "cyb" = (/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/door/airlock{name = "Room 11"},/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/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/wood,/area/crew_quarters/sleep/vistor_room_11) "cyc" = (/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/effect/floor_decal/corner/white{dir = 8},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/tiled,/area/crew_quarters/visitor_lodging) "cyd" = (/obj/effect/floor_decal/corner/blue,/obj/structure/disposalpipe/segment,/turf/simulated/floor/tiled,/area/crew_quarters/visitor_lodging) "cye" = (/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/item/device/radio/intercom{dir = 1; name = "Station Intercom (General)"; pixel_y = 21},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/disposalpipe/junction{dir = 8; icon_state = "pipe-j2"},/turf/simulated/floor/wood,/area/crew_quarters/sleep/vistor_room_11) "cyf" = (/obj/structure/cable/green{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/cable/green{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 1},/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 1},/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/turf/simulated/floor/tiled,/area/crew_quarters/visitor_lodging) -"cyg" = (/obj/structure/table/standard,/obj/machinery/microwave,/turf/simulated/floor/wood,/area/crew_quarters/sleep/vistor_room_6) +"cyg" = (/obj/structure/table/standard,/obj/machinery/microwave/map,/turf/simulated/floor/wood,/area/crew_quarters/sleep/vistor_room_6) "cyh" = (/obj/structure/table/standard,/obj/item/weapon/storage/box/donkpockets{pixel_x = 3; pixel_y = 2},/obj/machinery/light,/turf/simulated/floor/wood,/area/crew_quarters/sleep/vistor_room_6) "cyi" = (/obj/structure/bed/chair/comfy/beige{dir = 4},/obj/machinery/camera/network/civilian{c_tag = "CIV - Visitor Room 6"; dir = 1},/turf/simulated/floor/wood,/area/crew_quarters/sleep/vistor_room_6) "cyj" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/medical/first_aid_station) @@ -6667,14 +6669,14 @@ "cym" = (/obj/effect/floor_decal/corner/red{dir = 5},/obj/structure/closet/secure_closet/security,/obj/machinery/light{dir = 1},/turf/simulated/floor/tiled,/area/security/checkpoint2) "cyn" = (/obj/structure/bed/chair/comfy/beige{dir = 8},/obj/machinery/camera/network/civilian{c_tag = "CIV - Visitor Room 11"; dir = 1},/turf/simulated/floor/wood,/area/crew_quarters/sleep/vistor_room_11) "cyo" = (/obj/structure/table/standard,/obj/item/weapon/storage/box/donkpockets{pixel_x = 3; pixel_y = 2},/obj/machinery/light,/turf/simulated/floor/wood,/area/crew_quarters/sleep/vistor_room_11) -"cyp" = (/obj/structure/table/standard,/obj/machinery/microwave,/turf/simulated/floor/wood,/area/crew_quarters/sleep/vistor_room_11) +"cyp" = (/obj/structure/table/standard,/obj/machinery/microwave/map,/turf/simulated/floor/wood,/area/crew_quarters/sleep/vistor_room_11) "cyq" = (/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/tiled,/area/crew_quarters/visitor_lodging) "cyr" = (/obj/structure/disposalpipe/trunk{dir = 1},/obj/machinery/disposal,/turf/simulated/floor/wood,/area/crew_quarters/sleep/vistor_room_5) "cys" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/effect/floor_decal/corner/white{dir = 8},/turf/simulated/floor/tiled,/area/crew_quarters/visitor_lodging) "cyt" = (/obj/structure/cable/green,/obj/machinery/power/apc{dir = 2; name = "south bump"; pixel_y = -24},/obj/structure/disposalpipe/segment,/turf/simulated/floor/wood,/area/crew_quarters/sleep/vistor_room_5) "cyu" = (/obj/structure/cable/green,/obj/machinery/power/apc{dir = 2; name = "south bump"; pixel_y = -24},/obj/structure/disposalpipe/segment,/turf/simulated/floor/wood,/area/crew_quarters/sleep/vistor_room_6) "cyv" = (/obj/structure/cable/green,/obj/machinery/power/apc{dir = 2; name = "south bump"; pixel_y = -24},/turf/simulated/floor/wood,/area/crew_quarters/sleep/vistor_room_12) -"cyw" = (/obj/structure/table/standard,/obj/machinery/microwave,/turf/simulated/floor/wood,/area/crew_quarters/sleep/vistor_room_12) +"cyw" = (/obj/structure/table/standard,/obj/machinery/microwave/map,/turf/simulated/floor/wood,/area/crew_quarters/sleep/vistor_room_12) "cyx" = (/obj/structure/table/standard,/obj/item/weapon/storage/box/donkpockets{pixel_x = 3; pixel_y = 2},/obj/machinery/light,/turf/simulated/floor/wood,/area/crew_quarters/sleep/vistor_room_12) "cyy" = (/obj/structure/bed/chair/comfy/beige{dir = 4},/obj/machinery/camera/network/civilian{c_tag = "CIV - Visitor Room 12"; dir = 1},/turf/simulated/floor/wood,/area/crew_quarters/sleep/vistor_room_12) "cyz" = (/obj/structure/table/reinforced,/obj/item/weapon/stamp/ce,/obj/item/weapon/pen,/obj/item/weapon/paper_bin{pixel_x = -3; pixel_y = 7},/obj/item/weapon/flame/lighter/zippo,/obj/item/device/megaphone,/obj/item/weapon/folder/yellow_ce,/turf/simulated/floor/tiled,/area/crew_quarters/heads/chief) @@ -6721,8 +6723,8 @@ "czo" = (/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/turf/simulated/floor/wood,/area/crew_quarters/bar) "czp" = (/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/effect/floor_decal/corner/white{dir = 8},/obj/effect/floor_decal/corner/blue{dir = 1},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/tiled,/area/crew_quarters/visitor_lodging) "czq" = (/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/effect/floor_decal/corner/white{dir = 4},/obj/effect/floor_decal/corner/blue,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/tiled,/area/crew_quarters/visitor_lodging) -"czr" = (/obj/machinery/conveyor{dir = 4; id = "QMLoad2"},/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock/external{frequency = 1380; icon_state = "door_locked"; id_tag = "cargo_bay_door"; locked = 1; name = "Cargo Docking Hatch"; req_access = list(13)},/turf/simulated/floor/plating,/area/quartermaster/storage) -"czs" = (/obj/machinery/conveyor{dir = 4; id = "QMLoad2"},/turf/simulated/floor,/area/quartermaster/storage) +"czr" = (/obj/machinery/conveyor/map{dir = 4; id = "QMLoad2"},/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock/external{frequency = 1380; icon_state = "door_locked"; id_tag = "cargo_bay_door"; locked = 1; name = "Cargo Docking Hatch"; req_access = list(13)},/turf/simulated/floor/plating,/area/quartermaster/storage) +"czs" = (/obj/machinery/conveyor/map{dir = 4; id = "QMLoad2"},/turf/simulated/floor,/area/quartermaster/storage) "czt" = (/obj/effect/floor_decal/industrial/loading{dir = 4},/turf/simulated/floor/tiled,/area/quartermaster/storage) "czu" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 4},/turf/simulated/floor/tiled,/area/quartermaster/storage) "czv" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/tiled,/area/quartermaster/storage) @@ -6930,12 +6932,12 @@ "cDp" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 6},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/wood,/area/crew_quarters/bar) "cDq" = (/obj/structure/table/woodentable,/obj/item/weapon/material/ashtray/glass,/turf/simulated/floor/wood,/area/crew_quarters/bar) "cDr" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 8},/turf/simulated/floor/wood,/area/crew_quarters/bar) -"cDs" = (/obj/machinery/recharge_station,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/tiled,/area/crew_quarters/cafeteria) +"cDs" = (/obj/machinery/recharge_station/map,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/tiled,/area/crew_quarters/cafeteria) "cDt" = (/obj/machinery/firealarm{dir = 8; pixel_x = -24},/turf/simulated/floor/wood,/area/crew_quarters/sleep/vistor_room_3) "cDu" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 5},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 6},/turf/simulated/floor/wood,/area/crew_quarters/sleep/vistor_room_3) "cDv" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/wood,/area/crew_quarters/sleep/vistor_room_3) "cDw" = (/obj/machinery/alarm{pixel_y = 22},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/wood,/area/crew_quarters/sleep/vistor_room_3) -"cDx" = (/obj/structure/sink{dir = 4; icon_state = "sink"; pixel_x = 11; pixel_y = 0},/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 8},/obj/structure/mirror{pixel_x = 28},/turf/simulated/floor/tiled/white,/area/crew_quarters/sleep/vistor_room_3) +"cDx" = (/obj/structure/sink{pixel_y = 26},/turf/simulated/floor,/area/maintenance/library) "cDy" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 10},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 6},/obj/structure/disposalpipe/segment,/turf/simulated/floor/tiled/white,/area/crew_quarters/sleep/vistor_room_3) "cDz" = (/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/door/airlock{name = "Room 3"},/obj/machinery/door/firedoor/border_only,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/wood,/area/crew_quarters/sleep/vistor_room_3) "cDA" = (/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable/green{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/cable/green{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/atmospherics/pipe/manifold4w/hidden/supply,/obj/machinery/atmospherics/pipe/manifold4w/hidden/scrubbers,/turf/simulated/floor/tiled,/area/crew_quarters/visitor_lodging) @@ -6951,7 +6953,7 @@ "cDK" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/wood,/area/crew_quarters/sleep/vistor_room_9) "cDL" = (/obj/machinery/alarm{pixel_y = 22},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/wood,/area/crew_quarters/sleep/vistor_room_9) "cDM" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 10},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 6},/obj/structure/disposalpipe/segment,/turf/simulated/floor/tiled/white,/area/crew_quarters/sleep/vistor_room_9) -"cDN" = (/obj/structure/sink{dir = 4; icon_state = "sink"; pixel_x = 11; pixel_y = 0},/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 8},/obj/structure/mirror{pixel_x = 28},/turf/simulated/floor/tiled/white,/area/crew_quarters/sleep/vistor_room_9) +"cDN" = (/obj/item/weapon/caution,/turf/simulated/floor,/area/maintenance/library) "cDO" = (/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/door/airlock{name = "Room 9"},/obj/machinery/door/firedoor/border_only,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/wood,/area/crew_quarters/sleep/vistor_room_9) "cDP" = (/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/door/airlock{name = "Room 10"},/obj/machinery/door/firedoor/border_only,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/wood,/area/crew_quarters/sleep/vistor_room_10) "cDQ" = (/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/item/device/radio/intercom{dir = 1; name = "Station Intercom (General)"; pixel_y = 21},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/wood,/area/crew_quarters/sleep/vistor_room_10) @@ -6960,9 +6962,9 @@ "cDT" = (/obj/machinery/alarm{pixel_y = 22},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/wood,/area/crew_quarters/sleep/vistor_room_10) "cDU" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 9; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 10},/turf/simulated/floor/wood,/area/crew_quarters/sleep/vistor_room_10) "cDV" = (/obj/machinery/firealarm{dir = 4; pixel_x = 24},/turf/simulated/floor/wood,/area/crew_quarters/sleep/vistor_room_10) -"cDW" = (/obj/machinery/conveyor{dir = 4; id = "QMLoad"},/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock/external{frequency = 1380; icon_state = "door_locked"; id_tag = "cargo_bay_door"; locked = 1; name = "Cargo Docking Hatch"; req_access = list(13)},/turf/simulated/floor/plating,/area/quartermaster/storage) -"cDX" = (/obj/machinery/conveyor{dir = 4; id = "QMLoad"},/turf/simulated/floor,/area/quartermaster/storage) -"cDY" = (/obj/machinery/conveyor{dir = 9; id = "QMLoad"},/turf/simulated/floor,/area/quartermaster/storage) +"cDW" = (/obj/machinery/conveyor/map{dir = 4; id = "QMLoad"},/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock/external{frequency = 1380; icon_state = "door_locked"; id_tag = "cargo_bay_door"; locked = 1; name = "Cargo Docking Hatch"; req_access = list(13)},/turf/simulated/floor/plating,/area/quartermaster/storage) +"cDX" = (/obj/machinery/conveyor/map{dir = 4; id = "QMLoad"},/turf/simulated/floor,/area/quartermaster/storage) +"cDY" = (/obj/machinery/conveyor/map{dir = 9; id = "QMLoad"},/turf/simulated/floor,/area/quartermaster/storage) "cDZ" = (/obj/effect/floor_decal/industrial/warning{dir = 8},/turf/simulated/floor/tiled,/area/quartermaster/storage) "cEa" = (/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 4},/turf/simulated/floor/tiled,/area/quartermaster/storage) "cEb" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled,/area/quartermaster/storage) @@ -7025,12 +7027,12 @@ "cFg" = (/obj/structure/closet/secure_closet/engineering_personal,/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 4},/obj/machinery/camera/network/engineering{c_tag = "ENG - Locker Room"; dir = 4},/turf/simulated/floor/tiled/yellow,/area/engineering/locker_room) "cFh" = (/obj/structure/bed/chair/comfy/beige{dir = 8},/obj/machinery/camera/network/civilian{c_tag = "CIV - Visitor Room 3"; dir = 1},/turf/simulated/floor/wood,/area/crew_quarters/sleep/vistor_room_3) "cFi" = (/obj/structure/table/standard,/obj/item/weapon/storage/box/donkpockets{pixel_x = 3; pixel_y = 2},/obj/machinery/light,/turf/simulated/floor/wood,/area/crew_quarters/sleep/vistor_room_3) -"cFj" = (/obj/structure/table/standard,/obj/machinery/microwave,/turf/simulated/floor/wood,/area/crew_quarters/sleep/vistor_room_3) +"cFj" = (/obj/structure/table/standard,/obj/machinery/microwave/map,/turf/simulated/floor/wood,/area/crew_quarters/sleep/vistor_room_3) "cFk" = (/obj/structure/sink{icon_state = "sink"; dir = 8; pixel_x = -12; pixel_y = 2},/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 4},/obj/structure/mirror{pixel_x = -28},/turf/simulated/floor/tiled/white,/area/crew_quarters/sleep/vistor_room_10) "cFl" = (/obj/machinery/door/airlock{name = "Restroom"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/disposalpipe/segment,/turf/simulated/floor/tiled/white,/area/crew_quarters/sleep/vistor_room_3) "cFm" = (/obj/structure/disposalpipe/segment,/turf/simulated/wall,/area/crew_quarters/sleep/vistor_room_4) "cFn" = (/obj/machinery/door/airlock{name = "Restroom"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/disposalpipe/segment,/turf/simulated/floor/tiled/white,/area/crew_quarters/sleep/vistor_room_9) -"cFo" = (/obj/structure/table/standard,/obj/machinery/microwave,/turf/simulated/floor/wood,/area/crew_quarters/sleep/vistor_room_4) +"cFo" = (/obj/structure/table/standard,/obj/machinery/microwave/map,/turf/simulated/floor/wood,/area/crew_quarters/sleep/vistor_room_4) "cFp" = (/obj/structure/table/standard,/obj/item/weapon/storage/box/donkpockets{pixel_x = 3; pixel_y = 2},/obj/machinery/light,/turf/simulated/floor/wood,/area/crew_quarters/sleep/vistor_room_4) "cFq" = (/obj/structure/bed/chair/comfy/beige{dir = 4},/obj/machinery/camera/network/civilian{c_tag = "CIV - Visitor Room 4"; dir = 1},/turf/simulated/floor/wood,/area/crew_quarters/sleep/vistor_room_4) "cFr" = (/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},/turf/simulated/floor/tiled/dark,/area/hallway/primary/port) @@ -7039,12 +7041,12 @@ "cFu" = (/obj/machinery/light{dir = 8; icon_state = "tube1"; pixel_y = 0},/turf/simulated/floor/tiled/dark,/area/hallway/primary/port) "cFv" = (/obj/structure/bed/chair/comfy/beige{dir = 8},/obj/machinery/camera/network/civilian{c_tag = "CIV - Visitor Room 9"; dir = 1},/turf/simulated/floor/wood,/area/crew_quarters/sleep/vistor_room_9) "cFw" = (/obj/structure/table/standard,/obj/item/weapon/storage/box/donkpockets{pixel_x = 3; pixel_y = 2},/obj/machinery/light,/turf/simulated/floor/wood,/area/crew_quarters/sleep/vistor_room_9) -"cFx" = (/obj/structure/table/standard,/obj/machinery/microwave,/turf/simulated/floor/wood,/area/crew_quarters/sleep/vistor_room_9) +"cFx" = (/obj/structure/table/standard,/obj/machinery/microwave/map,/turf/simulated/floor/wood,/area/crew_quarters/sleep/vistor_room_9) "cFy" = (/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/effect/floor_decal/corner/white{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/disposalpipe/segment,/turf/simulated/floor/tiled,/area/crew_quarters/visitor_lodging) "cFz" = (/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/item/device/radio/intercom{dir = 1; name = "Station Intercom (General)"; pixel_y = 21},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/turf/simulated/floor/wood,/area/crew_quarters/sleep/vistor_room_3) "cFA" = (/obj/structure/cable/green{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers,/obj/machinery/atmospherics/pipe/manifold/hidden/supply,/obj/structure/disposalpipe/junction{dir = 1},/turf/simulated/floor/wood,/area/crew_quarters/sleep/vistor_room_3) "cFB" = (/obj/structure/cable/green,/obj/machinery/power/apc{dir = 2; name = "south bump"; pixel_y = -24},/turf/simulated/floor/wood,/area/crew_quarters/sleep/vistor_room_10) -"cFC" = (/obj/structure/table/standard,/obj/machinery/microwave,/turf/simulated/floor/wood,/area/crew_quarters/sleep/vistor_room_10) +"cFC" = (/obj/structure/table/standard,/obj/machinery/microwave/map,/turf/simulated/floor/wood,/area/crew_quarters/sleep/vistor_room_10) "cFD" = (/obj/structure/table/standard,/obj/item/weapon/storage/box/donkpockets{pixel_x = 3; pixel_y = 2},/obj/machinery/light,/turf/simulated/floor/wood,/area/crew_quarters/sleep/vistor_room_10) "cFE" = (/obj/structure/bed/chair/comfy/beige{dir = 4},/obj/machinery/camera/network/civilian{c_tag = "CIV - Visitor Room 10"; dir = 1},/turf/simulated/floor/wood,/area/crew_quarters/sleep/vistor_room_10) "cFF" = (/obj/structure/closet/wardrobe/engineering_yellow,/obj/machinery/atmospherics/unary/vent_pump/on{dir = 8},/obj/machinery/firealarm{dir = 4; layer = 3.3; pixel_x = 26},/turf/simulated/floor/tiled/yellow,/area/engineering/locker_room) @@ -7052,7 +7054,7 @@ "cFH" = (/obj/machinery/door/firedoor/border_only,/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/cable/green{d2 = 2; icon_state = "0-2"},/obj/structure/cable/green,/turf/simulated/floor/plating,/area/ai_monitored/storage/eva) "cFI" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/grille,/obj/structure/window/reinforced,/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/quartermaster/storage) "cFJ" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/quartermaster/storage) -"cFK" = (/obj/machinery/conveyor{dir = 2; id = "QMLoad"},/obj/machinery/light{dir = 8},/turf/simulated/floor,/area/quartermaster/storage) +"cFK" = (/obj/machinery/conveyor/map{dir = 2; id = "QMLoad"},/obj/machinery/light{dir = 8},/turf/simulated/floor,/area/quartermaster/storage) "cFL" = (/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/turf/simulated/floor/tiled,/area/quartermaster/storage) "cFM" = (/obj/structure/cable/green{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/tiled,/area/quartermaster/storage) "cFN" = (/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/tiled,/area/quartermaster/storage) @@ -7076,7 +7078,7 @@ "cGf" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/machinery/door/firedoor/border_only,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plating,/area/hallway/secondary/docking_hallway) "cGg" = (/obj/machinery/hologram/holopad,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/tiled/dark,/area/ai_monitored/storage/eva) "cGh" = (/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable/green{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/simulated/floor/tiled/dark,/area/ai_monitored/storage/eva) -"cGi" = (/obj/structure/table/standard,/obj/item/device/assembly/prox_sensor{pixel_x = -8; pixel_y = 4},/obj/item/device/assembly/prox_sensor{pixel_x = -8; pixel_y = 4},/obj/item/device/assembly/prox_sensor{pixel_x = -8; pixel_y = 4},/obj/item/device/assembly/prox_sensor{pixel_x = -8; pixel_y = 4},/obj/item/weapon/cell/high{charge = 100; maxcharge = 15000},/obj/item/weapon/cell/high{charge = 100; maxcharge = 15000; pixel_x = 5; pixel_y = -5},/obj/machinery/light{dir = 4; icon_state = "tube1"},/obj/item/weapon/storage/toolbox/mechanical,/obj/machinery/firealarm{dir = 4; pixel_x = 24},/obj/machinery/camera/network/research{c_tag = "SCI - Robotics Starboard"; dir = 8},/turf/simulated/floor/tiled,/area/assembly/robotics) +"cGi" = (/obj/effect/floor_decal/industrial/warning{dir = 4},/obj/machinery/light,/obj/machinery/computer/operating{name = "Robotics Operating Computer"},/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/tiled/white,/area/assembly/robotics) "cGj" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/sign/securearea{desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; pixel_x = 0},/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/quartermaster/storage) "cGk" = (/obj/machinery/suit_storage_unit/standard_unit,/turf/simulated/floor/tiled/dark,/area/ai_monitored/storage/eva) "cGl" = (/obj/structure/closet/emcloset,/turf/simulated/floor/plating,/area/maintenance/evahallway) @@ -7096,7 +7098,7 @@ "cGz" = (/obj/item/weapon/stool/padded,/turf/simulated/floor/wood,/area/crew_quarters/bar) "cGA" = (/obj/structure/table/reinforced,/obj/machinery/door/blast/shutters{dir = 1; id = "bar"; layer = 3.1; name = "Bar Shutters"},/turf/simulated/floor/lino,/area/crew_quarters/bar) "cGB" = (/obj/machinery/door/firedoor/border_only,/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/cable/green{d2 = 8; icon_state = "0-8"},/obj/structure/cable/green{d2 = 2; icon_state = "0-2"},/obj/structure/cable/green,/turf/simulated/floor/plating,/area/ai_monitored/storage/eva) -"cGC" = (/obj/machinery/conveyor{dir = 2; id = "QMLoad"},/turf/simulated/floor,/area/quartermaster/storage) +"cGC" = (/obj/machinery/conveyor/map{dir = 2; id = "QMLoad"},/turf/simulated/floor,/area/quartermaster/storage) "cGD" = (/obj/effect/floor_decal/industrial/warning{dir = 10},/obj/machinery/conveyor_switch/oneway{convdir = -1; id = "QMLoad"},/turf/simulated/floor/tiled,/area/quartermaster/storage) "cGE" = (/obj/effect/floor_decal/industrial/warning,/turf/simulated/floor/tiled,/area/quartermaster/storage) "cGF" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 5},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 5},/obj/effect/floor_decal/industrial/warning/corner{dir = 8},/turf/simulated/floor/tiled,/area/quartermaster/storage) @@ -7110,7 +7112,7 @@ "cGN" = (/obj/effect/floor_decal/industrial/warning,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/light/small{dir = 4},/turf/simulated/floor,/area/maintenance/apmaint) "cGO" = (/obj/structure/closet/wardrobe/atmospherics_yellow,/turf/simulated/floor/tiled/yellow,/area/engineering/locker_room) "cGP" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 10},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 6},/turf/simulated/floor/tiled/yellow,/area/engineering/locker_room) -"cGQ" = (/obj/structure/table/standard,/obj/structure/window/reinforced/tinted{dir = 8; icon_state = "twindow"},/obj/effect/floor_decal/industrial/warning{dir = 8},/obj/item/weapon/screwdriver,/obj/item/weapon/crowbar,/obj/item/weapon/circular_saw,/obj/item/weapon/hemostat,/turf/simulated/floor/tiled/white,/area/assembly/robotics) +"cGQ" = (/obj/structure/table/standard,/obj/machinery/newscaster{pixel_x = 28; pixel_y = 1},/obj/machinery/cell_charger,/turf/simulated/floor/tiled,/area/assembly/robotics) "cGR" = (/obj/structure/sink{icon_state = "sink"; dir = 8; pixel_x = -12; pixel_y = 2},/obj/structure/mirror{pixel_x = -28; pixel_y = 0},/turf/simulated/floor/tiled/freezer,/area/crew_quarters/sleep/engi_wash) "cGS" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/machinery/door/firedoor/border_only,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/turf/simulated/floor/plating,/area/security/checkpoint2) "cGT" = (/turf/simulated/floor/tiled,/area/hallway/secondary/engineering_hallway) @@ -7165,7 +7167,7 @@ "cHQ" = (/obj/structure/toilet,/obj/machinery/light{dir = 1},/turf/simulated/floor/tiled/white,/area/crew_quarters/sleep/vistor_room_8) "cHR" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/light{icon_state = "tube1"; dir = 4},/turf/simulated/floor/tiled/freezer,/area/crew_quarters/sleep/engi_wash) "cHS" = (/obj/machinery/door/firedoor/border_only,/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/cable/green,/turf/simulated/floor/plating,/area/ai_monitored/storage/eva) -"cHT" = (/obj/machinery/conveyor{dir = 4; id = "QMLoad"},/obj/machinery/status_display/supply_display{pixel_y = -32},/turf/simulated/floor,/area/quartermaster/storage) +"cHT" = (/obj/machinery/conveyor/map{dir = 4; id = "QMLoad"},/obj/machinery/status_display/supply_display{pixel_y = -32},/turf/simulated/floor,/area/quartermaster/storage) "cHU" = (/obj/effect/floor_decal/industrial/loading{tag = "icon-loadingarea (WEST)"; icon_state = "loadingarea"; dir = 8},/turf/simulated/floor/tiled,/area/quartermaster/storage) "cHV" = (/obj/structure/extinguisher_cabinet{pixel_x = 5; pixel_y = -32},/turf/simulated/floor/tiled,/area/quartermaster/storage) "cHW" = (/obj/machinery/button/remote/blast_door{id = "qm_warehouse"; name = "Warehouse Door Control"; pixel_x = 26; pixel_y = 0; req_access = list(31)},/turf/simulated/floor/tiled,/area/quartermaster/storage) @@ -7178,7 +7180,7 @@ "cId" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 6},/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,/obj/machinery/door/blast/regular{density = 0; dir = 1; icon_state = "pdoor0"; id = "atmoslockdown"; name = "Atmospherics Lockdown"; opacity = 0},/turf/simulated/floor,/area/maintenance/apmaint) "cIe" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 9},/obj/machinery/door/blast/regular{density = 0; dir = 1; icon_state = "pdoor0"; id = "atmoslockdown"; name = "Atmospherics Lockdown"; opacity = 0},/turf/simulated/floor,/area/maintenance/apmaint) "cIf" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/tiled/yellow,/area/engineering/locker_room) -"cIg" = (/obj/effect/floor_decal/industrial/warning{dir = 4},/obj/machinery/light,/obj/machinery/computer/operating{name = "Robotics Operating Computer"},/obj/structure/window/reinforced/tinted{dir = 4; icon_state = "twindow"},/turf/simulated/floor/tiled/white,/area/assembly/robotics) +"cIg" = (/obj/machinery/ai_status_display{pixel_x = 0; pixel_y = 0},/turf/simulated/wall,/area/assembly/chargebay) "cIh" = (/obj/structure/sink{icon_state = "sink"; dir = 8; pixel_x = -12; pixel_y = 2},/obj/structure/mirror{pixel_x = -28; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 6},/turf/simulated/floor/tiled/freezer,/area/crew_quarters/sleep/engi_wash) "cIi" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 8},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/cable/green{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/simulated/floor/tiled/freezer,/area/crew_quarters/sleep/engi_wash) "cIj" = (/obj/machinery/power/apc{dir = 1; name = "north bump"; pixel_x = 0; pixel_y = 24},/obj/structure/cable/green{d2 = 8; icon_state = "0-8"},/obj/structure/table/standard,/turf/simulated/floor/tiled/freezer,/area/crew_quarters/sleep/engi_wash) @@ -7392,13 +7394,13 @@ "cMj" = (/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 8},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/simulated/floor/tiled,/area/hallway/primary/port) "cMk" = (/obj/structure/bed/chair/comfy/beige{dir = 8},/obj/machinery/camera/network/civilian{c_tag = "CIV - Visitor Room 1"; dir = 1},/turf/simulated/floor/wood,/area/crew_quarters/sleep/vistor_room_1) "cMl" = (/obj/structure/table/standard,/obj/item/weapon/storage/box/donkpockets{pixel_x = 3; pixel_y = 2},/obj/machinery/light,/turf/simulated/floor/wood,/area/crew_quarters/sleep/vistor_room_1) -"cMm" = (/obj/structure/table/standard,/obj/machinery/microwave,/turf/simulated/floor/wood,/area/crew_quarters/sleep/vistor_room_1) +"cMm" = (/obj/structure/table/standard,/obj/machinery/microwave/map,/turf/simulated/floor/wood,/area/crew_quarters/sleep/vistor_room_1) "cMn" = (/obj/structure/cable/green,/obj/machinery/power/apc{dir = 2; name = "south bump"; pixel_y = -24},/turf/simulated/floor/wood,/area/crew_quarters/sleep/vistor_room_1) -"cMo" = (/obj/structure/sink{dir = 4; icon_state = "sink"; pixel_x = 11; pixel_y = 0},/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 8},/obj/structure/mirror{pixel_x = 28},/turf/simulated/floor/tiled/white,/area/crew_quarters/sleep/vistor_room_1) +"cMo" = (/obj/item/clothing/shoes/slippers,/turf/simulated/floor,/area/maintenance/library) "cMp" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 10},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 6},/obj/structure/disposalpipe/segment,/turf/simulated/floor/tiled/white,/area/crew_quarters/sleep/vistor_room_1) "cMq" = (/obj/structure/sink{icon_state = "sink"; dir = 8; pixel_x = -12; pixel_y = 2},/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 4},/obj/structure/mirror{pixel_x = -28},/obj/structure/disposalpipe/segment,/turf/simulated/floor/tiled/white,/area/crew_quarters/sleep/vistor_room_2) "cMr" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 10},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 6},/obj/structure/disposalpipe/segment,/turf/simulated/floor/tiled/white,/area/crew_quarters/sleep/vistor_room_7) -"cMs" = (/obj/structure/sink{dir = 4; icon_state = "sink"; pixel_x = 11; pixel_y = 0},/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 8},/obj/structure/mirror{pixel_x = 28},/turf/simulated/floor/tiled/white,/area/crew_quarters/sleep/vistor_room_7) +"cMs" = (/obj/item/weapon/paper_bin,/obj/structure/table/steel,/turf/simulated/floor,/area/maintenance/library) "cMt" = (/obj/structure/sink{icon_state = "sink"; dir = 8; pixel_x = -12; pixel_y = 2},/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 4},/obj/structure/mirror{pixel_x = -28},/turf/simulated/floor/tiled/white,/area/crew_quarters/sleep/vistor_room_8) "cMu" = (/obj/machinery/door/airlock{name = "Restroom"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/disposalpipe/segment,/turf/simulated/floor/tiled/white,/area/crew_quarters/sleep/vistor_room_1) "cMv" = (/obj/structure/disposalpipe/segment,/turf/simulated/wall,/area/crew_quarters/sleep/vistor_room_2) @@ -7411,7 +7413,7 @@ "cMC" = (/obj/structure/cable/green{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers,/obj/machinery/atmospherics/pipe/manifold/hidden/supply,/obj/structure/disposalpipe/junction{icon_state = "pipe-j2"; dir = 2},/turf/simulated/floor/wood,/area/crew_quarters/sleep/vistor_room_7) "cMD" = (/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/item/device/radio/intercom{dir = 1; name = "Station Intercom (General)"; pixel_y = 21},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/turf/simulated/floor/wood,/area/crew_quarters/sleep/vistor_room_7) "cME" = (/obj/structure/cable/green,/obj/machinery/power/apc{dir = 2; name = "south bump"; pixel_y = -24},/turf/simulated/floor/wood,/area/crew_quarters/sleep/vistor_room_8) -"cMF" = (/obj/structure/table/standard,/obj/machinery/microwave,/turf/simulated/floor/wood,/area/crew_quarters/sleep/vistor_room_8) +"cMF" = (/obj/structure/table/standard,/obj/machinery/microwave/map,/turf/simulated/floor/wood,/area/crew_quarters/sleep/vistor_room_8) "cMG" = (/obj/structure/table/standard,/obj/item/weapon/storage/box/donkpockets{pixel_x = 3; pixel_y = 2},/obj/machinery/light,/turf/simulated/floor/wood,/area/crew_quarters/sleep/vistor_room_8) "cMH" = (/obj/structure/bed/chair/comfy/beige{dir = 4},/obj/machinery/camera/network/civilian{c_tag = "CIV - Visitor Room 8"; dir = 1},/turf/simulated/floor/wood,/area/crew_quarters/sleep/vistor_room_8) "cMI" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/simulated/floor/tiled,/area/hallway/primary/port) @@ -7442,7 +7444,7 @@ "cNh" = (/obj/machinery/computer/atmos_alert,/obj/effect/floor_decal/corner/blue/full{dir = 8},/turf/simulated/floor/tiled,/area/crew_quarters/heads/chief) "cNi" = (/obj/machinery/computer/station_alert/all,/turf/simulated/floor/tiled,/area/crew_quarters/heads/chief) "cNj" = (/obj/structure/table/reinforced,/obj/item/weapon/cell/high{charge = 100; maxcharge = 15000},/obj/item/weapon/cell/high{charge = 100; maxcharge = 15000},/obj/machinery/light{dir = 1},/obj/item/device/radio/intercom{dir = 1; name = "Station Intercom (General)"; pixel_y = 27},/turf/simulated/floor/tiled,/area/crew_quarters/heads/chief) -"cNk" = (/obj/structure/table/standard,/obj/item/weapon/storage/firstaid/regular{empty = 1; name = "First-Aid (empty)"},/obj/item/weapon/storage/firstaid/regular{empty = 1; name = "First-Aid (empty)"},/obj/item/weapon/storage/firstaid/regular{empty = 1; name = "First-Aid (empty)"},/obj/item/device/healthanalyzer,/obj/item/device/healthanalyzer,/obj/item/device/healthanalyzer,/obj/machinery/newscaster{pixel_x = 28; pixel_y = 1},/turf/simulated/floor/tiled,/area/assembly/robotics) +"cNk" = (/turf/simulated/wall,/area/assembly/chargebay) "cNl" = (/obj/machinery/button/remote/driver{id = "enginecore"; name = "Emergency Core Eject"; pixel_x = 0; pixel_y = 21},/obj/structure/window/basic,/turf/simulated/floor/tiled/freezer,/area/crew_quarters/heads/chief) "cNm" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 5},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor,/area/maintenance/engineering) "cNn" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 10},/obj/machinery/meter,/turf/simulated/floor,/area/maintenance/engineering) @@ -7465,8 +7467,8 @@ "cNE" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/lino,/area/hallway/secondary/entry/docking_lounge) "cNF" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 10},/turf/simulated/floor/lino,/area/hallway/secondary/entry/docking_lounge) "cNG" = (/obj/structure/extinguisher_cabinet{pixel_x = -5; pixel_y = 30},/turf/simulated/floor/lino,/area/hallway/secondary/entry/docking_lounge) -"cNH" = (/obj/machinery/power/apc{dir = 1; name = "north bump"; pixel_x = 0; pixel_y = 24},/obj/structure/cable/green{d2 = 4; icon_state = "0-4"},/obj/machinery/atm{pixel_x = -32; pixel_y = 0},/obj/structure/table/standard,/turf/simulated/floor/tiled,/area/crew_quarters/sleep/elevator) -"cNI" = (/obj/machinery/newscaster{pixel_y = 32},/obj/machinery/firealarm{dir = 4; pixel_x = 26},/obj/structure/table/standard,/turf/simulated/floor/tiled,/area/crew_quarters/sleep/elevator) +"cNH" = (/obj/effect/floor_decal/corner/paleblue{dir = 1},/obj/item/device/radio/intercom{dir = 8; name = "Station Intercom (General)"; pixel_x = -22},/obj/structure/sink{icon_state = "sink"; dir = 8; pixel_x = -12; pixel_y = 2},/turf/simulated/floor/tiled/white,/area/medical/medbay_primary_storage) +"cNI" = (/obj/machinery/newscaster{pixel_y = 32},/obj/machinery/firealarm{dir = 4; pixel_x = 26},/turf/simulated/floor/tiled,/area/crew_quarters/sleep/elevator) "cNJ" = (/obj/structure/table/reinforced,/obj/machinery/door/blast/shutters{dir = 1; id = "bar"; layer = 3.1; name = "Bar Shutters"},/obj/structure/disposalpipe/segment,/turf/simulated/floor/lino,/area/crew_quarters/bar) "cNK" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock/maintenance{name = "Bar Maintenance"; req_access = list(25)},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor,/area/crew_quarters/bar) "cNL" = (/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/wood,/area/crew_quarters/bar) @@ -7533,7 +7535,7 @@ "cOU" = (/obj/machinery/navbeacon{codes_txt = "delivery;dir=2"; freq = 1400; location = "Bar"},/obj/structure/plasticflaps{opacity = 1},/obj/machinery/door/firedoor/border_only,/obj/effect/floor_decal/industrial/loading{tag = "icon-loadingarea (WEST)"; icon_state = "loadingarea"; dir = 8},/turf/simulated/floor/tiled,/area/crew_quarters/bar) "cOV" = (/obj/machinery/computer/security/telescreen/entertainment{icon_state = "frame"; pixel_x = 32; pixel_y = 0},/turf/simulated/floor/carpet,/area/crew_quarters/bar) "cOW" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 1},/turf/simulated/floor/wood,/area/crew_quarters/bar) -"cOX" = (/obj/structure/sink{dir = 4; icon_state = "sink"; pixel_x = 11; pixel_y = 0},/obj/structure/sign/securearea{desc = "Under the painting a plaque reads: 'While the meat grinder may not have spared you, fear not. Not one part of you has gone to waste... You were delicious.'"; icon_state = "monkey_painting"; name = "Mr. Deempisi portrait"; pixel_x = 28; pixel_y = 4},/turf/simulated/floor/wood,/area/crew_quarters/bar) +"cOX" = (/obj/structure/toilet{dir = 8},/turf/simulated/floor,/area/maintenance/library) "cOY" = (/obj/structure/disposalpipe/segment,/turf/simulated/floor/lino,/area/crew_quarters/bar) "cOZ" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/tiled,/area/hallway/primary/port) "cPa" = (/obj/structure/table/woodentable,/obj/item/device/camera,/obj/machinery/newscaster{pixel_x = 31; pixel_y = 3},/turf/simulated/floor/carpet,/area/crew_quarters/bar) @@ -7560,11 +7562,11 @@ "cPv" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/alarm{pixel_y = 22},/turf/simulated/floor/wood,/area/crew_quarters/sleep/vistor_room_5) "cPw" = (/obj/machinery/door/firedoor/glass,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/tiled,/area/crew_quarters/visitor_lodging) "cPx" = (/turf/simulated/wall,/area/crew_quarters/visitor_laundry) -"cPy" = (/obj/machinery/washing_machine,/obj/effect/floor_decal/corner/blue{dir = 1},/obj/effect/floor_decal/corner/white{dir = 4},/obj/item/device/radio/intercom{dir = 1; name = "Station Intercom (General)"; pixel_y = 21},/turf/simulated/floor/tiled,/area/crew_quarters/visitor_laundry) -"cPz" = (/obj/machinery/washing_machine,/obj/effect/floor_decal/corner/blue{dir = 1},/obj/effect/floor_decal/corner/white{dir = 4},/turf/simulated/floor/tiled,/area/crew_quarters/visitor_laundry) +"cPy" = (/obj/machinery/washing_machine/map,/obj/effect/floor_decal/corner/blue{dir = 1},/obj/effect/floor_decal/corner/white{dir = 4},/obj/item/device/radio/intercom{dir = 1; name = "Station Intercom (General)"; pixel_y = 21},/turf/simulated/floor/tiled,/area/crew_quarters/visitor_laundry) +"cPz" = (/obj/machinery/washing_machine/map,/obj/effect/floor_decal/corner/blue{dir = 1},/obj/effect/floor_decal/corner/white{dir = 4},/turf/simulated/floor/tiled,/area/crew_quarters/visitor_laundry) "cPA" = (/obj/effect/floor_decal/corner/blue{dir = 1},/obj/effect/floor_decal/corner/white{dir = 4},/obj/structure/undies_wardrobe,/turf/simulated/floor/tiled,/area/crew_quarters/visitor_laundry) "cPB" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/alarm{pixel_y = 22},/turf/simulated/floor/wood,/area/crew_quarters/sleep/vistor_room_11) -"cPC" = (/obj/machinery/recharge_station,/obj/effect/floor_decal/corner/blue{dir = 1},/obj/effect/floor_decal/corner/white{dir = 4},/turf/simulated/floor/tiled,/area/crew_quarters/visitor_laundry) +"cPC" = (/obj/machinery/recharge_station/map,/obj/effect/floor_decal/corner/blue{dir = 1},/obj/effect/floor_decal/corner/white{dir = 4},/turf/simulated/floor/tiled,/area/crew_quarters/visitor_laundry) "cPD" = (/obj/structure/closet/wardrobe/pjs,/obj/effect/floor_decal/corner/blue{dir = 1},/obj/effect/floor_decal/corner/white{dir = 4},/turf/simulated/floor/tiled,/area/crew_quarters/visitor_laundry) "cPE" = (/obj/structure/closet/wardrobe/pjs,/obj/effect/floor_decal/corner/blue/diagonal,/obj/effect/floor_decal/corner/white{dir = 4},/turf/simulated/floor/tiled,/area/crew_quarters/visitor_laundry) "cPF" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/machinery/door/firedoor/border_only,/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plating,/area/engineering/break_room) @@ -7633,7 +7635,7 @@ "cQQ" = (/obj/machinery/door/firedoor/glass,/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/tiled,/area/crew_quarters/visitor_lodging) "cQR" = (/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/tiled,/area/crew_quarters/visitor_lodging) "cQS" = (/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/tiled,/area/crew_quarters/visitor_lodging) -"cQT" = (/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/table/reinforced,/obj/machinery/recharger,/turf/simulated/floor/tiled,/area/crew_quarters/visitor_lodging) +"cQT" = (/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/table/reinforced,/obj/machinery/recharger/map,/turf/simulated/floor/tiled,/area/crew_quarters/visitor_lodging) "cQU" = (/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/table/reinforced,/obj/item/weapon/hand_labeler,/obj/item/device/communicator,/turf/simulated/floor/tiled,/area/crew_quarters/visitor_lodging) "cQV" = (/obj/structure/cable/green{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/cable/green{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/table/reinforced,/obj/item/weapon/folder,/turf/simulated/floor/tiled,/area/crew_quarters/visitor_lodging) "cQW" = (/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/table/reinforced,/obj/item/device/paicard,/obj/item/clothing/head/soft/grey,/turf/simulated/floor/tiled,/area/crew_quarters/visitor_lodging) @@ -7681,7 +7683,7 @@ "cRM" = (/obj/structure/table/reinforced,/obj/machinery/computer/skills,/turf/simulated/floor/tiled,/area/crew_quarters/heads/chief) "cRN" = (/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/tiled,/area/crew_quarters/heads/chief) "cRO" = (/obj/structure/disposalpipe/segment,/turf/simulated/floor/tiled,/area/crew_quarters/heads/chief) -"cRP" = (/obj/structure/table/reinforced,/obj/machinery/photocopier/faxmachine{department = "Chief Engineer's Office"},/obj/machinery/requests_console{announcementConsole = 1; department = "Chief Engineer's Desk"; departmentType = 6; name = "Chief Engineer RC"; pixel_x = 32; pixel_y = 0},/turf/simulated/floor/tiled,/area/crew_quarters/heads/chief) +"cRP" = (/obj/structure/table/reinforced,/obj/machinery/photocopier/faxmachine/map{department = "Chief Engineer's Office"},/obj/machinery/requests_console{announcementConsole = 1; department = "Chief Engineer's Desk"; departmentType = 6; name = "Chief Engineer RC"; pixel_x = 32; pixel_y = 0},/turf/simulated/floor/tiled,/area/crew_quarters/heads/chief) "cRQ" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor,/area/maintenance/engineering) "cRR" = (/obj/machinery/atmospherics/pipe/simple/hidden{dir = 6},/turf/simulated/floor,/area/maintenance/evahallway) "cRS" = (/obj/machinery/portable_atmospherics/canister/air/airlock,/obj/effect/floor_decal/industrial/outline/yellow,/obj/machinery/atmospherics/portables_connector{dir = 8},/turf/simulated/floor/plating,/area/maintenance/evahallway) @@ -7749,7 +7751,7 @@ "cTc" = (/obj/machinery/light,/turf/simulated/floor/tiled,/area/crew_quarters/heads/chief) "cTd" = (/obj/effect/decal/cleanable/dirt,/obj/machinery/power/apc{dir = 2; name = "south bump"; pixel_y = -24},/obj/structure/cable/green{d2 = 4; icon_state = "0-4"},/turf/simulated/floor/tiled,/area/vacant/vacant_shop) "cTe" = (/obj/machinery/light_switch{pixel_x = -12; pixel_y = -24},/obj/structure/cable/green,/obj/machinery/power/apc{dir = 2; name = "south bump"; pixel_y = -24},/turf/simulated/floor/tiled,/area/crew_quarters/heads/chief) -"cTf" = (/obj/machinery/alarm{dir = 1; icon_state = "alarm0"; pixel_y = -22},/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/turf/simulated/floor/tiled,/area/crew_quarters/heads/chief) +"cTf" = (/obj/structure/closet/secure_closet/engineering_chief,/obj/effect/floor_decal/corner/blue/full{dir = 1},/turf/simulated/floor/tiled,/area/crew_quarters/heads/chief) "cTg" = (/obj/machinery/disposal,/obj/structure/disposalpipe/trunk{dir = 8},/obj/structure/extinguisher_cabinet{pixel_x = 25},/obj/effect/floor_decal/corner/blue/full{dir = 4},/turf/simulated/floor/tiled,/area/crew_quarters/heads/chief) "cTh" = (/obj/machinery/atmospherics/pipe/manifold/hidden{dir = 8; icon_state = "map"; tag = "icon-manifold-f (WEST)"},/obj/effect/decal/cleanable/dirt,/turf/simulated/floor,/area/maintenance/evahallway) "cTi" = (/obj/structure/bed/chair{dir = 1},/obj/item/device/radio/intercom{dir = 8; name = "Station Intercom (General)"; pixel_x = -28},/turf/simulated/floor/carpet,/area/hallway/secondary/entry/docking_lounge) @@ -7797,7 +7799,7 @@ "cTY" = (/obj/machinery/atmospherics/pipe/simple/visible/universal,/obj/structure/disposalpipe/segment,/turf/simulated/floor/tiled,/area/engineering/atmos) "cTZ" = (/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/firedoor/border_only,/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/machinery/door/blast/regular{density = 0; dir = 1; icon_state = "pdoor0"; id = "atmoslockdown"; name = "Atmospherics Lockdown"; opacity = 0},/turf/simulated/floor,/area/engineering/atmos) "cUa" = (/obj/machinery/door/airlock/glass_atmos{name = "Atmospherics Monitoring Room"; req_access = list(24)},/obj/machinery/door/firedoor/border_only,/obj/structure/cable/cyan{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/tiled,/area/engineering/atmos/monitoring) -"cUb" = (/obj/effect/floor_decal/corner/white/diagonal,/obj/structure/table/reinforced,/obj/machinery/microwave,/obj/item/device/radio/intercom{dir = 8; name = "Station Intercom (General)"; pixel_x = -28},/obj/machinery/light{dir = 8; icon_state = "tube1"; pixel_y = 0},/turf/simulated/floor/tiled,/area/engineering/break_room) +"cUb" = (/obj/effect/floor_decal/corner/white/diagonal,/obj/structure/table/reinforced,/obj/machinery/microwave/map,/obj/item/device/radio/intercom{dir = 8; name = "Station Intercom (General)"; pixel_x = -28},/obj/machinery/light{dir = 8; icon_state = "tube1"; pixel_y = 0},/turf/simulated/floor/tiled,/area/engineering/break_room) "cUc" = (/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 1},/turf/simulated/floor/carpet,/area/engineering/break_room) "cUd" = (/obj/machinery/hologram/holopad,/turf/simulated/floor/carpet,/area/engineering/break_room) "cUe" = (/obj/structure/bed/chair/comfy/brown{dir = 1},/obj/effect/landmark/start{name = "Station Engineer"},/turf/simulated/floor/carpet,/area/engineering/break_room) @@ -8008,7 +8010,7 @@ "cYb" = (/obj/machinery/atmospherics/pipe/simple/hidden/cyan{dir = 4; icon_state = "intact"; tag = "icon-intact-f (EAST)"},/obj/machinery/door/firedoor/glass,/obj/machinery/door/airlock/glass_engineering{name = "Engineering Hallway"; req_one_access = list(10)},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled,/area/engineering/foyer) "cYc" = (/obj/machinery/atmospherics/pipe/simple/hidden/cyan{dir = 4; icon_state = "intact"; tag = "icon-intact-f (EAST)"},/obj/machinery/atmospherics/pipe/simple/hidden/red,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled,/area/engineering/foyer) "cYd" = (/obj/machinery/atmospherics/pipe/simple/hidden/cyan{dir = 9; icon_state = "intact"; tag = "icon-intact-f (NORTHWEST)"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled,/area/engineering/foyer) -"cYe" = (/obj/structure/table/reinforced,/obj/machinery/recharger,/turf/simulated/floor/tiled,/area/engineering/foyer) +"cYe" = (/obj/structure/table/reinforced,/obj/machinery/recharger/map,/turf/simulated/floor/tiled,/area/engineering/foyer) "cYf" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/machinery/door/firedoor/border_only,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plating,/area/hallway/secondary/entry/docking_lounge) "cYg" = (/obj/machinery/computer/security/engineering,/turf/simulated/floor/tiled,/area/engineering/engineering_monitoring) "cYh" = (/turf/simulated/floor/tiled,/area/engineering/engineering_monitoring) @@ -8146,9 +8148,9 @@ "daJ" = (/obj/machinery/atmospherics/pipe/simple/visible/green{tag = "icon-intact (EAST)"; icon_state = "intact"; dir = 4},/obj/machinery/atmospherics/pipe/simple/visible/cyan,/turf/simulated/floor/tiled,/area/engineering/atmos) "daK" = (/obj/machinery/atmospherics/pipe/simple/visible/red,/obj/machinery/atmospherics/binary/pump{dir = 4; name = "O2 to Mixing"},/turf/simulated/floor/tiled,/area/engineering/atmos) "daL" = (/obj/machinery/atmospherics/pipe/manifold/visible/green{tag = "icon-map (EAST)"; icon_state = "map"; dir = 4},/obj/machinery/meter,/turf/simulated/floor/tiled,/area/engineering/atmos) -"daM" = (/obj/machinery/atmospherics/unary/freezer{dir = 2; icon_state = "freezer"},/obj/machinery/hologram/holopad,/obj/effect/floor_decal/industrial/outline/yellow,/turf/simulated/floor/tiled,/area/engineering/atmos) -"daN" = (/obj/machinery/atmospherics/unary/heater{dir = 2; icon_state = "heater"},/obj/effect/floor_decal/industrial/outline/yellow,/turf/simulated/floor/tiled,/area/engineering/atmos) -"daO" = (/obj/structure/closet/secure_closet/engineering_chief,/obj/effect/floor_decal/corner/blue/full{dir = 1},/obj/machinery/camera/network/engineering{c_tag = "ENG - CE's Office"; dir = 2},/turf/simulated/floor/tiled,/area/crew_quarters/heads/chief) +"daM" = (/obj/machinery/atmospherics/unary/freezer/map{dir = 2; icon_state = "freezer"},/obj/machinery/hologram/holopad,/obj/effect/floor_decal/industrial/outline/yellow,/turf/simulated/floor/tiled,/area/engineering/atmos) +"daN" = (/obj/machinery/atmospherics/unary/heater/map{dir = 2; icon_state = "heater"},/obj/effect/floor_decal/industrial/outline/yellow,/turf/simulated/floor/tiled,/area/engineering/atmos) +"daO" = (/obj/machinery/alarm{dir = 1; icon_state = "alarm0"; pixel_y = -22},/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/obj/machinery/camera/network/engineering{c_tag = "Atmospherics Tank - Carbon Dioxide"; dir = 1},/turf/simulated/floor/tiled,/area/crew_quarters/heads/chief) "daP" = (/obj/machinery/atmospherics/pipe/simple/visible/red,/obj/machinery/meter,/turf/simulated/floor/tiled,/area/engineering/atmos) "daQ" = (/obj/machinery/atmospherics/binary/pump{dir = 1; name = "Port to Waste"},/turf/simulated/floor/tiled,/area/engineering/atmos) "daR" = (/obj/machinery/alarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/turf/simulated/floor/tiled,/area/engineering/atmos) @@ -8670,8 +8672,8 @@ "dkN" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/hallway/secondary/entry/D2) "dkO" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/hallway/secondary/entry/D2) "dkP" = (/obj/effect/floor_decal/industrial/warning/corner{dir = 8},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D2) -"dkQ" = (/obj/machinery/light{dir = 1},/obj/item/device/radio/intercom{dir = 1; name = "Station Intercom (General)"; pixel_y = 21},/turf/simulated/shuttle/floor,/area/shuttle/arrival/station) -"dkR" = (/obj/machinery/requests_console{department = "Arrival shuttle"; pixel_y = 26},/obj/machinery/light{dir = 1},/turf/simulated/shuttle/floor,/area/shuttle/arrival/station) +"dkQ" = (/obj/machinery/access_button{command = "cycle_interior"; frequency = 1379; master_tag = "virologyq_airlock_control"; name = "Virology Quarantine Access Button"; pixel_x = -28; pixel_y = 0; req_access = list(39)},/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 4},/obj/structure/disposalpipe/segment,/obj/structure/sink{icon_state = "sink"; dir = 8; pixel_x = -12; pixel_y = 2},/turf/simulated/floor/tiled/white,/area/medical/virology) +"dkR" = (/obj/effect/floor_decal/corner/lime{dir = 10},/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/obj/structure/sink{icon_state = "sink"; dir = 8; pixel_x = -12; pixel_y = 2},/turf/simulated/floor/tiled/white,/area/medical/virology) "dkS" = (/obj/machinery/status_display{pixel_y = 30},/turf/simulated/shuttle/floor,/area/shuttle/arrival/station) "dkT" = (/obj/effect/floor_decal/industrial/warning/corner,/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D3) "dkU" = (/obj/machinery/atmospherics/pipe/simple/visible/red{tag = "icon-intact (NORTHWEST)"; icon_state = "intact"; dir = 9},/turf/simulated/mineral/floor/ignore_mapgen,/area/mine/explored/upper_level) @@ -8692,7 +8694,7 @@ "dlj" = (/obj/effect/decal/cleanable/dirt,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/simple/visible/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/visible/supply{dir = 4},/turf/simulated/floor,/area/maintenance/pool) "dlk" = (/turf/simulated/floor/reinforced/n20,/area/engineering/atmos) "dll" = (/obj/machinery/portable_atmospherics/canister/sleeping_agent,/turf/simulated/floor/reinforced/n20,/area/engineering/atmos) -"dlm" = (/obj/machinery/recharge_station,/obj/effect/floor_decal/industrial/outline/yellow,/turf/simulated/floor/plating,/area/engineering/drone_fabrication) +"dlm" = (/obj/machinery/recharge_station/map,/obj/effect/floor_decal/industrial/outline/yellow,/turf/simulated/floor/plating,/area/engineering/drone_fabrication) "dln" = (/obj/effect/floor_decal/industrial/warning{dir = 8},/obj/effect/decal/remains/robot,/turf/simulated/floor,/area/engineering/drone_fabrication) "dlo" = (/obj/machinery/drone_fabricator,/turf/simulated/floor/plating,/area/engineering/drone_fabrication) "dlp" = (/turf/simulated/floor/plating,/area/engineering/drone_fabrication) @@ -8864,6 +8866,7 @@ "doz" = (/obj/machinery/light{dir = 8},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D3) "doA" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/light{dir = 4; icon_state = "tube1"; pixel_x = 0},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D4) "doB" = (/turf/space,/area/syndicate_station/southeast) +"doC" = (/obj/structure/closet,/obj/random/contraband,/obj/random/contraband,/turf/simulated/floor,/area/maintenance/library) "doD" = (/obj/structure/lattice,/obj/item/stack/cable_coil/yellow{pixel_x = 2; pixel_y = 2},/obj/item/stack/cable_coil/yellow,/turf/space,/area/space) "doE" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/machinery/door/firedoor/border_only,/obj/structure/window/reinforced{dir = 8},/obj/structure/sign/securearea{desc = "A warning sign which reads 'KEEP CLEAR OF DOCKING AREA'."; name = "KEEP CLEAR: DOCKING AREA"; pixel_y = 0},/turf/simulated/floor/plating,/area/hallway/secondary/entry/D3) "doF" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/turf/simulated/floor/airless,/area/maintenance/portsolar) @@ -8920,6 +8923,9 @@ "dpE" = (/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D4) "dpF" = (/obj/machinery/power/tracker,/obj/structure/cable/yellow{d2 = 4; icon_state = "0-4"},/turf/simulated/floor/airless,/area/solar/port) "dpG" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/airless,/area/solar/port) +"dpH" = (/obj/item/weapon/reagent_containers/food/snacks/grown/ambrosiavulgaris,/obj/item/weapon/reagent_containers/food/snacks/grown/ambrosiavulgaris,/obj/item/weapon/reagent_containers/food/snacks/grown/ambrosiavulgaris,/obj/item/weapon/reagent_containers/food/snacks/grown/ambrosiavulgaris,/turf/simulated/floor,/area/maintenance/security_starboard) +"dpI" = (/obj/item/tape/atmos,/obj/machinery/door/airlock/maintenance{req_access = list(12)},/turf/simulated/floor,/area/maintenance/security_starboard) +"dpJ" = (/obj/item/seeds/poppyseed,/obj/item/seeds/poppyseed,/obj/item/seeds/poppyseed,/turf/simulated/floor,/area/maintenance/security_starboard) "dpK" = (/obj/machinery/access_button{command = "cycle_exterior"; frequency = 1379; layer = 3.3; master_tag = "robotics_solar_airlock"; name = "exterior access button"; pixel_x = 25; pixel_y = 25; req_access = list(11,13)},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/airless,/area/solar/port) "dpL" = (/obj/machinery/door/airlock/external{frequency = 1379; icon_state = "door_locked"; id_tag = "robotics_solar_outer"; locked = 1; name = "Engineering External Access"; req_access = list(11,13)},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plating,/area/maintenance/portsolar) "dpM" = (/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 4; frequency = 1379; id_tag = "robotics_solar_pump"},/obj/machinery/embedded_controller/radio/airlock/airlock_controller{tag_airpump = "robotics_solar_pump"; tag_exterior_door = "robotics_solar_outer"; frequency = 1379; id_tag = "robotics_solar_airlock"; tag_interior_door = "robotics_solar_inner"; layer = 3.3; pixel_x = 0; pixel_y = -25; req_access = list(13); tag_chamber_sensor = "robotics_solar_sensor"},/obj/machinery/airlock_sensor{frequency = 1379; id_tag = "robotics_solar_sensor"; layer = 3.3; pixel_x = 12; pixel_y = -25},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/effect/floor_decal/industrial/warning/full,/turf/simulated/floor/plating,/area/maintenance/portsolar) @@ -8967,6 +8973,7 @@ "dqC" = (/obj/machinery/door/firedoor/glass,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D4) "dqD" = (/obj/machinery/door/firedoor/glass,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D4) "dqE" = (/turf/simulated/wall,/area/hallway/secondary/escape/dock_escape_pod_hallway_starboard) +"dqF" = (/obj/machinery/portable_atmospherics/hydroponics,/turf/simulated/floor,/area/maintenance/security_starboard) "dqG" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/airless,/area/maintenance/portsolar) "dqH" = (/obj/machinery/power/solar_control{id = "portsolar"; name = "Aft Port Solar Control"; track = 0},/obj/structure/cable/yellow,/obj/effect/floor_decal/industrial/warning/corner{dir = 1},/turf/simulated/floor/plating,/area/maintenance/portsolar) "dqI" = (/obj/machinery/door/firedoor/glass,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/door/airlock/glass{name = "Dock"},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D1) @@ -9025,7 +9032,7 @@ "drJ" = (/obj/machinery/power/apc{dir = 8; name = "west bump"; pixel_x = -24},/obj/structure/cable/green,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/light_switch{pixel_x = -38; pixel_y = 0},/turf/simulated/floor/tiled,/area/engineering/engine_smes) "drK" = (/obj/item/stack/cable_coil,/obj/item/stack/cable_coil{pixel_x = 3; pixel_y = 3},/obj/item/device/multitool{pixel_x = 5},/obj/item/clothing/gloves/yellow,/obj/structure/table/steel,/obj/item/device/radio/intercom{dir = 1; name = "Station Intercom (General)"; pixel_y = 21},/turf/simulated/floor/tiled,/area/engineering/engine_smes) "drL" = (/turf/simulated/wall/r_wall,/area/engineering/engine_monitoring) -"drM" = (/obj/structure/table/standard,/obj/machinery/microwave{pixel_x = -2; pixel_y = 5},/turf/simulated/floor/tiled,/area/engineering/engine_monitoring) +"drM" = (/obj/structure/table/standard,/obj/machinery/microwave/map{pixel_x = -2; pixel_y = 5},/turf/simulated/floor/tiled,/area/engineering/engine_monitoring) "drN" = (/obj/structure/table/standard,/obj/item/weapon/storage/box/donkpockets,/obj/machinery/status_display{density = 0; layer = 4; pixel_x = 0; pixel_y = 32},/turf/simulated/floor/tiled,/area/engineering/engine_monitoring) "drO" = (/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/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/engineering/engine_monitoring) "drP" = (/obj/machinery/disposal,/obj/structure/disposalpipe/trunk{dir = 8},/obj/machinery/ai_status_display{layer = 4; pixel_y = 32},/turf/simulated/floor/tiled,/area/engineering/engine_monitoring) @@ -9489,11 +9496,12 @@ "dAF" = (/obj/machinery/atmospherics/unary/heat_exchanger,/turf/simulated/floor,/area/engineering/engine_room) "dAG" = (/obj/structure/grille,/obj/structure/window/phoronreinforced{tag = "icon-phoronrwindow (EAST)"; icon_state = "phoronrwindow"; dir = 4},/obj/structure/window/phoronreinforced{tag = "icon-phoronrwindow (WEST)"; icon_state = "phoronrwindow"; dir = 8},/obj/machinery/door/blast/regular{dir = 1; id = "SupermatterPort"; layer = 3.3; name = "Reactor Blast Door"},/turf/simulated/floor/plating,/area/engineering/engine_room) "dAH" = (/obj/effect/floor_decal/industrial/warning{dir = 4},/obj/effect/floor_decal/industrial/warning{dir = 8},/turf/simulated/floor/reinforced/nitrogen{nitrogen = 82.1472},/area/engineering/engine_room) -"dAI" = (/obj/machinery/power/supermatter{layer = 4},/obj/machinery/mass_driver{id = "enginecore"},/turf/simulated/floor/greengrid/nitrogen,/area/engineering/engine_room) +"dAI" = (/obj/machinery/power/supermatter{layer = 4},/obj/machinery/mass_driver/map{id = "enginecore"},/turf/simulated/floor/greengrid/nitrogen,/area/engineering/engine_room) "dAJ" = (/obj/effect/floor_decal/industrial/warning{dir = 8},/obj/effect/floor_decal/industrial/warning{dir = 4},/turf/simulated/floor/reinforced/nitrogen{nitrogen = 82.1472},/area/engineering/engine_room) "dAK" = (/obj/machinery/power/generator{anchored = 1; dir = 4},/obj/structure/cable/yellow,/turf/simulated/floor/plating,/area/engineering/engine_room) "dAL" = (/obj/effect/floor_decal/industrial/warning{dir = 8},/obj/machinery/atmospherics/pipe/simple/visible/black{dir = 6},/turf/simulated/floor/plating,/area/engineering/engine_room) "dAM" = (/obj/machinery/atmospherics/pipe/simple/visible/black{dir = 9},/turf/simulated/floor/plating,/area/engineering/engine_room) +"dAN" = (/obj/item/weapon/reagent_containers/glass/bucket,/turf/simulated/floor,/area/maintenance/security_starboard) "dAO" = (/obj/machinery/atmospherics/pipe/manifold/visible/black{dir = 8},/obj/machinery/meter,/turf/simulated/floor,/area/engineering/engine_room) "dAP" = (/obj/machinery/atmospherics/pipe/simple/visible/black{dir = 10},/turf/simulated/floor,/area/engineering/engine_room) "dAQ" = (/obj/structure/grille,/obj/structure/window/phoronreinforced,/obj/structure/window/phoronreinforced{tag = "icon-phoronrwindow (EAST)"; icon_state = "phoronrwindow"; dir = 4},/obj/structure/window/phoronreinforced{tag = "icon-phoronrwindow (WEST)"; icon_state = "phoronrwindow"; dir = 8},/obj/machinery/door/blast/regular{dir = 1; id = "SupermatterPort"; layer = 3.3; name = "Reactor Blast Door"},/turf/simulated/floor/plating,/area/engineering/engine_room) @@ -9506,6 +9514,7 @@ "dAX" = (/obj/machinery/atmospherics/valve/digital{dir = 4; name = "Emergency Cooling Valve 2"},/obj/effect/floor_decal/industrial/warning{dir = 1},/turf/simulated/floor/plating,/area/engineering/engine_room) "dAY" = (/obj/machinery/atmospherics/pipe/manifold/visible/black,/obj/effect/floor_decal/industrial/warning{dir = 1},/turf/simulated/floor/plating,/area/engineering/engine_room) "dAZ" = (/obj/machinery/atmospherics/pipe/simple/visible/black{dir = 9},/obj/effect/floor_decal/industrial/warning/corner{dir = 1},/turf/simulated/floor/plating,/area/engineering/engine_room) +"dBa" = (/obj/machinery/power/apc{dir = 1; name = "north bump"; pixel_x = 0; pixel_y = 24},/obj/structure/cable/green{d2 = 2; icon_state = "0-2"},/obj/effect/floor_decal/corner/paleblue/full{dir = 8},/obj/structure/sink{icon_state = "sink"; dir = 8; pixel_x = -12; pixel_y = 2},/turf/simulated/floor/tiled,/area/medical/morgue) "dBb" = (/obj/machinery/atmospherics/pipe/simple/visible/black,/turf/simulated/wall/r_wall,/area/engineering/engine_room) "dBc" = (/obj/machinery/atmospherics/pipe/simple/visible/black,/obj/structure/sign/securearea{desc = "A warning sign which reads 'RADIOACTIVE AREA'"; icon_state = "radiation"; name = "RADIOACTIVE AREA"; pixel_x = 0; pixel_y = 0},/turf/simulated/wall/r_wall,/area/engineering/engine_room) "dBd" = (/obj/machinery/door/blast/regular{icon_state = "pdoor1"; id = "EngineVent"; name = "Reactor Vent"; p_open = 0},/turf/simulated/floor/reinforced,/area/engineering/engine_room) @@ -9515,6 +9524,8 @@ "dBh" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'EJECTION/VENTING PORT'."; name = "\improper EJECTION/VENTING PORT"; pixel_y = 32},/turf/space,/area/space) "dBi" = (/obj/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/simulated/floor/airless,/area/solar/starboard) "dBj" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/simulated/floor/airless,/area/solar/starboard) +"dBk" = (/obj/machinery/atmospherics/pipe/simple/visible{tag = "icon-intact (NORTHWEST)"; icon_state = "intact"; dir = 9},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 10},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 10},/obj/effect/floor_decal/industrial/warning{dir = 1},/obj/structure/sink{dir = 4; icon_state = "sink"; pixel_x = 11; pixel_y = 0},/turf/simulated/floor/tiled/white,/area/medical/sleeper) +"dBl" = (/obj/item/clothing/gloves/boxing/blue,/turf/simulated/floor,/area/maintenance/pool) "dBm" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable/yellow{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/cable/yellow{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/simulated/floor/airless,/area/solar/starboard) "dBn" = (/obj/structure/cable/yellow{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/cable/yellow{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/simulated/floor/airless,/area/solar/starboard) "dBo" = (/obj/machinery/atmospherics/pipe/simple/heat_exchanging,/obj/structure/lattice,/turf/space,/area/space) @@ -9522,6 +9533,7 @@ "dBq" = (/obj/machinery/power/solar{id = "starboardsolar"; name = "Starboard Solar Array"},/obj/structure/cable/yellow,/turf/simulated/floor/airless{icon_state = "solarpanel"},/area/solar/starboard) "dBr" = (/obj/effect/landmark{name = "carpspawn"},/turf/space,/area/skipjack_station/southwest_solars) "dBs" = (/turf/space,/area/skipjack_station/southeast_solars) +"dBt" = (/obj/item/weapon/caution/cone,/turf/simulated/floor,/area/maintenance/pool) "dBu" = (/obj/machinery/power/tracker,/obj/structure/cable/yellow,/turf/simulated/floor/airless,/area/solar/starboard) "dBv" = (/turf/space,/area/syndicate_station/south) "dBw" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/blast/regular{density = 0; icon_state = "pdoor0"; id = "EngineRadiatorViewport"; name = "Engine Radiator Viewport Shutter"; opacity = 0},/obj/structure/window/reinforced,/obj/machinery/atmospherics/pipe/simple/visible/green{tag = "icon-intact (EAST)"; icon_state = "intact"; dir = 4},/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/engineering/engine_room) @@ -9554,7 +9566,7 @@ "dBX" = (/obj/structure/cable/green,/obj/machinery/power/apc{dir = 2; name = "south bump"; pixel_y = -24},/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/turf/simulated/floor/wood,/area/crew_quarters/sleep/vistor_room_2) "dBY" = (/obj/structure/disposalpipe/trunk{dir = 1},/obj/machinery/disposal,/turf/simulated/floor/wood,/area/crew_quarters/sleep/vistor_room_2) "dBZ" = (/obj/structure/table/standard,/obj/item/weapon/storage/box/donkpockets{pixel_x = 3; pixel_y = 2},/obj/machinery/light,/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/wood,/area/crew_quarters/sleep/vistor_room_2) -"dCa" = (/obj/structure/table/standard,/obj/machinery/microwave,/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/wood,/area/crew_quarters/sleep/vistor_room_2) +"dCa" = (/obj/structure/table/standard,/obj/machinery/microwave/map,/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/wood,/area/crew_quarters/sleep/vistor_room_2) "dCb" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/power/apc{dir = 2; name = "south bump"; pixel_y = -24},/obj/structure/cable,/turf/simulated/floor/tiled,/area/hallway/primary/port) "dCc" = (/obj/structure/bed/chair/comfy/beige{dir = 4},/obj/machinery/camera/network/civilian{c_tag = "CIV - Visitor Room 2"; dir = 1},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/wood,/area/crew_quarters/sleep/vistor_room_2) "dCd" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/wall,/area/crew_quarters/sleep/vistor_room_2) @@ -9564,7 +9576,7 @@ "dCh" = (/obj/structure/table/standard,/obj/item/weapon/storage/box/donkpockets{pixel_x = 3; pixel_y = 2},/obj/machinery/light,/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/wood,/area/crew_quarters/sleep/vistor_room_7) "dCi" = (/obj/structure/bed/chair/comfy/beige{dir = 8},/obj/machinery/camera/network/civilian{c_tag = "CIV - Visitor Room 7"; dir = 1},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/wood,/area/crew_quarters/sleep/vistor_room_7) "dCj" = (/obj/structure/cable/green,/obj/machinery/power/apc{dir = 2; name = "south bump"; pixel_y = -24},/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/turf/simulated/floor/wood,/area/crew_quarters/sleep/vistor_room_7) -"dCk" = (/obj/structure/table/standard,/obj/machinery/microwave,/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/wood,/area/crew_quarters/sleep/vistor_room_7) +"dCk" = (/obj/structure/table/standard,/obj/machinery/microwave/map,/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/wood,/area/crew_quarters/sleep/vistor_room_7) "dCl" = (/obj/structure/disposalpipe/trunk{dir = 1},/obj/machinery/disposal,/turf/simulated/floor/wood,/area/crew_quarters/sleep/vistor_room_7) "dCm" = (/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/effect/floor_decal/corner/blue,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/turf/simulated/floor/tiled,/area/crew_quarters/visitor_lodging) "dCn" = (/obj/structure/disposalpipe/trunk{dir = 8},/obj/machinery/disposal,/turf/simulated/floor/wood,/area/crew_quarters/sleep/vistor_room_8) @@ -9632,7 +9644,7 @@ "dDx" = (/obj/structure/table/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/item/weapon/reagent_containers/food/drinks/flask/vacuumflask,/obj/item/weapon/reagent_containers/food/drinks/flask/barflask,/obj/machinery/light,/obj/machinery/newscaster{pixel_x = 0; pixel_y = -30},/turf/simulated/floor/lino,/area/crew_quarters/bar) "dDy" = (/obj/machinery/disposal,/obj/structure/disposalpipe/trunk{dir = 1},/obj/structure/extinguisher_cabinet{pixel_x = 5; pixel_y = -32},/turf/simulated/floor/lino,/area/crew_quarters/bar) "dDz" = (/obj/structure/toilet{dir = 1},/obj/machinery/light/small{dir = 8},/turf/simulated/floor/tiled/freezer,/area/crew_quarters/barrestroom) -"dDA" = (/obj/machinery/recharge_station,/obj/machinery/light/small{dir = 8},/turf/simulated/floor/tiled/freezer,/area/crew_quarters/barrestroom) +"dDA" = (/obj/machinery/recharge_station/map,/obj/machinery/light/small{dir = 8},/turf/simulated/floor/tiled/freezer,/area/crew_quarters/barrestroom) "dDB" = (/obj/machinery/door/firedoor/glass,/obj/machinery/door/airlock/glass{id_tag = "security_bar"; name = "Bar"},/turf/simulated/floor/tiled,/area/crew_quarters/bar) "dDC" = (/obj/machinery/door/airlock/glass{id_tag = "security_bar"; name = "Bar"},/obj/machinery/door/firedoor/glass,/turf/simulated/floor/tiled,/area/crew_quarters/bar) "dDD" = (/obj/effect/floor_decal/corner/white/diagonal,/obj/structure/table/woodentable,/obj/item/weapon/dice,/obj/structure/noticeboard{pixel_x = 0; pixel_y = 27},/obj/item/weapon/deck/cards,/turf/simulated/floor/tiled,/area/engineering/break_room) @@ -9738,13 +9750,13 @@ "dFz" = (/obj/structure/table/rack,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8; health = 1e+006},/obj/item/ammo_magazine/mc9mmt,/obj/item/ammo_magazine/mc9mmt,/obj/item/ammo_magazine/c45m,/obj/item/ammo_magazine/c45m,/obj/item/ammo_magazine/c45m,/obj/item/ammo_magazine/c45m,/obj/item/ammo_magazine/c45m,/obj/item/ammo_magazine/c45m,/obj/effect/floor_decal/industrial/outline/grey,/obj/machinery/door/window/brigdoor/southleft{name = "Lethal Ammo"; req_access = list(3)},/turf/simulated/floor/tiled/dark,/area/security/armoury) "dFA" = (/obj/machinery/light{dir = 1},/turf/simulated/floor/tiled/dark,/area/security/armoury) "dFB" = (/obj/effect/floor_decal/industrial/warning/corner{dir = 4},/obj/machinery/light{dir = 1},/obj/machinery/firealarm{dir = 2; layer = 3.3; pixel_x = 0; pixel_y = 26},/turf/simulated/floor/tiled/dark,/area/security/armoury) -"dFC" = (/obj/effect/floor_decal/industrial/warning{dir = 1},/obj/machinery/recharger/wallcharger{pixel_x = 32; pixel_y = -4},/turf/simulated/floor/tiled/dark,/area/security/armoury) +"dFC" = (/obj/effect/floor_decal/industrial/warning{dir = 1},/obj/machinery/recharger/wallcharger/map{pixel_x = 32; pixel_y = -4},/turf/simulated/floor/tiled/dark,/area/security/armoury) "dFD" = (/obj/effect/floor_decal/industrial/warning{dir = 1},/turf/simulated/floor/tiled/dark,/area/security/armoury) "dFE" = (/obj/structure/table/rack,/obj/effect/floor_decal/corner/red/full{dir = 8},/obj/structure/window/reinforced{dir = 8; health = 1e+006},/obj/structure/window/reinforced{dir = 1},/obj/item/ammo_magazine/mc9mmt/practice,/obj/item/ammo_magazine/mc9mmt/practice,/obj/item/ammo_magazine/c45m/practice,/obj/item/ammo_magazine/c45m/practice,/obj/item/ammo_magazine/c45m/practice,/obj/item/ammo_magazine/c45m/practice,/obj/machinery/door/window/brigdoor/eastright{name = "Ammo"},/turf/simulated/floor/tiled/dark,/area/security/armoury) "dFF" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled/dark,/area/security/armoury) "dFG" = (/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 4},/turf/simulated/floor/tiled/dark,/area/security/armoury) "dFH" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/item/weapon/stool,/turf/simulated/floor/tiled/dark,/area/security/armoury) -"dFI" = (/obj/machinery/recharger/wallcharger{pixel_x = 32; pixel_y = -4},/turf/simulated/floor/tiled/dark,/area/security/armoury) +"dFI" = (/obj/machinery/recharger/wallcharger/map{pixel_x = 32; pixel_y = -4},/turf/simulated/floor/tiled/dark,/area/security/armoury) "dFJ" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 10},/turf/simulated/floor/tiled/dark,/area/security/armoury) "dFK" = (/obj/structure/table/rack,/obj/effect/floor_decal/corner/red{dir = 9},/obj/structure/window/reinforced{dir = 8; health = 1e+006},/obj/item/ammo_magazine/mc9mmt/rubber,/obj/item/ammo_magazine/mc9mmt/rubber,/obj/item/ammo_magazine/mc9mmt/rubber,/obj/item/ammo_magazine/c45m/rubber,/obj/item/ammo_magazine/c45m/rubber,/obj/item/ammo_magazine/c45m/rubber,/obj/item/ammo_magazine/c45m/rubber,/obj/item/ammo_magazine/c45m/rubber,/obj/item/ammo_magazine/c45m/rubber,/obj/machinery/door/window/brigdoor/eastright{name = "Ammo"},/turf/simulated/floor/tiled/dark,/area/security/armoury) "dFL" = (/obj/structure/table/standard,/obj/item/weapon/storage/box/empslite{pixel_x = 2; pixel_y = 2},/obj/item/weapon/storage/box/flashbangs{pixel_x = -2; pixel_y = -2},/turf/simulated/floor/tiled/dark,/area/security/armoury) @@ -9795,6 +9807,53 @@ "dGE" = (/obj/machinery/atmospherics/pipe/simple/visible/cyan{tag = "icon-intact (SOUTHEAST)"; icon_state = "intact"; dir = 6},/turf/simulated/floor/tiled/hydro,/area/maintenance/engineering/pumpstation) "dGF" = (/obj/machinery/atmospherics/pipe/tank/air{dir = 1; start_pressure = 15000},/turf/simulated/floor/tiled/hydro,/area/maintenance/engineering/pumpstation) "dGG" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/simulated/floor,/area/maintenance/medbay_fore) +"dGH" = (/obj/structure/closet,/obj/item/stack/material/steel{amount = 4},/obj/item/stack/rods{amount = 2},/turf/simulated/floor,/area/maintenance/pool) +"dGI" = (/obj/effect/decal/cleanable/blood,/turf/simulated/floor,/area/maintenance/pool) +"dGJ" = (/obj/machinery/light/small{dir = 4; pixel_y = 0},/turf/simulated/floor,/area/maintenance/pool) +"dGK" = (/obj/item/clothing/gloves/boxing/yellow,/turf/simulated/floor,/area/maintenance/pool) +"dGL" = (/obj/structure/mirror{pixel_x = 30},/obj/item/weapon/soap/nanotrasen,/obj/machinery/alarm{pixel_y = 22},/turf/simulated/floor/tiled/freezer,/area/security/prison) +"dGM" = (/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 8},/obj/structure/mirror{pixel_x = 28},/obj/structure/sink{dir = 4; icon_state = "sink"; pixel_x = 11; pixel_y = 0},/turf/simulated/floor/tiled/white,/area/crew_quarters/sleep/vistor_room_5) +"dGN" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 8},/obj/effect/floor_decal/industrial/warning{dir = 4},/obj/machinery/light{dir = 4; icon_state = "tube1"; pixel_x = 0},/turf/simulated/floor/tiled/white,/area/rnd/research_foyer_auxiliary) +"dGO" = (/obj/structure/table/standard,/obj/item/weapon/surgicaldrill,/obj/item/weapon/autopsy_scanner,/obj/item/weapon/reagent_containers/spray/cleaner{desc = "Someone has crossed out the Space from Space Cleaner and written in Surgery. 'Do not remove under punishment of death!!!' is scrawled on the back."; name = "Surgery Cleaner"; pixel_x = 2; pixel_y = 2},/obj/item/weapon/FixOVein,/turf/simulated/floor/tiled/white,/area/medical/surgery2) +"dGP" = (/obj/machinery/atmospherics/pipe/simple/hidden/yellow,/obj/structure/sink{dir = 4; icon_state = "sink"; pixel_x = 11; pixel_y = 0},/turf/simulated/floor/tiled/white,/area/medical/virology) +"dGQ" = (/obj/structure/table/standard,/obj/item/weapon/surgicaldrill,/obj/item/weapon/autopsy_scanner,/obj/item/weapon/reagent_containers/spray/cleaner{desc = "Someone has crossed out the Space from Space Cleaner and written in Surgery. 'Do not remove under punishment of death!!!' is scrawled on the back."; name = "Surgery Cleaner"; pixel_x = 2; pixel_y = 2},/obj/item/weapon/FixOVein,/turf/simulated/floor/tiled/white,/area/medical/surgery) +"dGR" = (/obj/structure/cable/green{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/effect/floor_decal/corner/lime{dir = 6},/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/obj/structure/sink{dir = 4; icon_state = "sink"; pixel_x = 11; pixel_y = 0},/turf/simulated/floor/tiled/white,/area/medical/patient_wing) +"dGS" = (/obj/structure/sink{dir = 4; icon_state = "sink"; pixel_x = 11; pixel_y = 0},/turf/simulated/floor/tiled/white,/area/medical/medbay_emt_bay) +"dGT" = (/obj/effect/decal/cleanable/cobweb2{tag = "icon-cobweb1"; icon_state = "cobweb1"},/obj/effect/decal/cleanable/cobweb2{icon_state = "spiderling"; name = "dead spider"; tag = "icon-spiderling"},/turf/simulated/floor,/area/maintenance/medbay_aft) +"dGU" = (/obj/effect/decal/cleanable/cobweb2,/turf/simulated/floor,/area/maintenance/medbay_aft) +"dGV" = (/turf/simulated/floor,/area/medical/patient_d) +"dGW" = (/obj/effect/decal/cleanable/vomit,/obj/item/weapon/stool/padded,/obj/machinery/light/small{dir = 4; pixel_y = 0},/turf/simulated/floor,/area/maintenance/medbay_aft) +"dGX" = (/obj/item/weapon/broken_bottle,/turf/simulated/floor,/area/maintenance/medbay_aft) +"dGY" = (/obj/item/weapon/caution/cone,/turf/simulated/floor,/area/maintenance/medbay_aft) +"dGZ" = (/obj/structure/table/woodentable,/obj/item/weapon/material/ashtray/plastic,/obj/item/weapon/cigbutt/cigarbutt,/turf/simulated/floor,/area/maintenance/medbay_aft) +"dHa" = (/obj/structure/door_assembly/door_assembly_mhatch,/turf/simulated/floor,/area/maintenance/medbay_aft) +"dHb" = (/obj/structure/closet/crate,/obj/item/stack/cable_coil/random,/obj/item/stack/cable_coil/random,/obj/item/weapon/crowbar,/obj/item/weapon/wirecutters,/turf/simulated/floor,/area/maintenance/medbay_aft) +"dHc" = (/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 8},/obj/structure/mirror{pixel_x = 28},/obj/structure/sink{dir = 4; icon_state = "sink"; pixel_x = 11; pixel_y = 0},/turf/simulated/floor/tiled/white,/area/crew_quarters/sleep/vistor_room_11) +"dHd" = (/obj/structure/closet/emcloset,/obj/item/weapon/storage/toolbox/emergency,/obj/item/weapon/storage/toolbox/emergency,/turf/simulated/floor/tiled/dark,/area/crew_quarters/sleep/elevator) +"dHe" = (/obj/structure/closet/emcloset,/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/item/weapon/storage/toolbox/emergency,/obj/item/weapon/storage/toolbox/emergency,/turf/simulated/floor/tiled/dark,/area/crew_quarters/sleep/elevator) +"dHf" = (/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 8},/obj/structure/mirror{pixel_x = 28},/obj/structure/sink{dir = 4; icon_state = "sink"; pixel_x = 11; pixel_y = 0},/turf/simulated/floor/tiled/white,/area/crew_quarters/sleep/vistor_room_3) +"dHg" = (/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 8},/obj/structure/mirror{pixel_x = 28},/obj/structure/sink{dir = 4; icon_state = "sink"; pixel_x = 11; pixel_y = 0},/turf/simulated/floor/tiled/white,/area/crew_quarters/sleep/vistor_room_9) +"dHh" = (/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 8},/obj/structure/mirror{pixel_x = 28},/obj/structure/sink{dir = 4; icon_state = "sink"; pixel_x = 11; pixel_y = 0},/turf/simulated/floor/tiled/white,/area/crew_quarters/sleep/vistor_room_1) +"dHi" = (/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 8},/obj/structure/mirror{pixel_x = 28},/obj/structure/sink{dir = 4; icon_state = "sink"; pixel_x = 11; pixel_y = 0},/turf/simulated/floor/tiled/white,/area/crew_quarters/sleep/vistor_room_7) +"dHj" = (/obj/structure/sign/securearea{desc = "Under the painting a plaque reads: 'While the meat grinder may not have spared you, fear not. Not one part of you has gone to waste... You were delicious.'"; icon_state = "monkey_painting"; name = "Mr. Deempisi portrait"; pixel_x = 28; pixel_y = 4},/obj/structure/sink{dir = 4; icon_state = "sink"; pixel_x = 11; pixel_y = 0},/turf/simulated/floor/wood,/area/crew_quarters/bar) +"dHk" = (/obj/structure/flora/pottedplant{tag = "icon-plant-06"; icon_state = "plant-06"},/turf/simulated/floor/tiled/dark,/area/hallway/secondary/entry/starboard) +"dHl" = (/obj/machinery/light{dir = 1},/turf/simulated/shuttle/floor,/area/shuttle/arrival/station) +"dHm" = (/obj/item/device/radio/intercom{dir = 1; name = "Station Intercom (General)"; pixel_y = 21},/turf/simulated/shuttle/floor,/area/shuttle/arrival/station) +"dHn" = (/obj/machinery/requests_console{department = "Arrival shuttle"; pixel_y = 26},/turf/simulated/shuttle/floor,/area/shuttle/arrival/station) +"dHo" = (/obj/machinery/vending/snack,/turf/simulated/shuttle/floor,/area/shuttle/arrival/station) +"dHp" = (/obj/machinery/vending/coffee,/turf/simulated/shuttle/floor,/area/shuttle/arrival/station) +"dHq" = (/obj/machinery/vending/cola,/turf/simulated/shuttle/floor,/area/shuttle/arrival/station) +"dHr" = (/obj/machinery/door/firedoor/glass,/obj/machinery/door/airlock/glass_research{name = "Mech Bay"; req_access = list(29)},/turf/simulated/floor/tiled,/area/assembly/chargebay) +"dHs" = (/obj/machinery/status_display,/turf/simulated/wall,/area/assembly/chargebay) +"dHt" = (/obj/machinery/door/airlock/research{name = "Mech Bay"; req_access = list(29)},/obj/machinery/door/firedoor/border_only,/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/white,/area/assembly/chargebay) +"dHu" = (/obj/machinery/recharge_station,/obj/effect/floor_decal/industrial/outline/yellow,/turf/simulated/floor/tiled,/area/assembly/chargebay) +"dHv" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/grille,/turf/space,/area/hallway/primary/central_four) +"dHw" = (/obj/machinery/cryopod/robot{dir = 4},/obj/effect/floor_decal/industrial/outline/yellow,/obj/effect/landmark{name = "JoinLateCyborg"},/turf/simulated/floor/tiled,/area/assembly/chargebay) +"dHx" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/structure/grille,/turf/space,/area/hallway/primary/central_four) +"dHy" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/machinery/door/firedoor/border_only,/obj/structure/window/reinforced,/turf/simulated/floor/plating,/area/hallway/primary/central_four) +"dHz" = (/obj/machinery/computer/cryopod/robot{pixel_x = 30; pixel_y = 0},/obj/effect/floor_decal/industrial/warning/corner,/obj/machinery/camera/network/research{c_tag = "SCI - Mech Bay Starboard"; dir = 8},/turf/simulated/floor/tiled,/area/assembly/chargebay) +"dHA" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/door/firedoor/glass,/turf/simulated/floor/tiled,/area/hallway/primary/central_four) +"dHB" = (/obj/structure/disposalpipe/segment,/obj/machinery/door/firedoor/glass,/turf/simulated/floor/tiled,/area/hallway/primary/central_four) (1,1,1) = {" aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa @@ -9838,11 +9897,11 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaahaahaahaahaaeaaqaaraayaazaaCaazaaBaaxaaqaaeaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaahaahaahaahaahaaeaaqaaraayaazaaAaazaaBaaxaaqaaeaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaahaahaahaahaahaahaaeaaqaaDaaEaaAaaAaaAaaFaaGaaqaaeaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaahaahaahaahaahaahaahaaeaaHaaIaajaaJaaJaaJaajaaIaaKaaeaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaahaahaahaahaahaahaahaahaaeaaeaaeaaeaaLaaMaaMaaeaaeaaeaaeaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaahaahaahaahaahaahaahaahaahaahaahaahaaNaaOaaPaaPaaNaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaahaahaaQaaQaaQaaQaaQaaQaaQaaQaaQaaQaaQaaeaaRaaRaaRaaNaaSaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaahaahaahaaQaaTaaUaaVaaWaaXaaYaaTaaZabaaaQabbabcabdabcabeaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaahaahaahaahaahaahaahaahaahaahaahaahaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaahaahaahaahaahaahaahaaeaaHaaIaajaaJaaJaaJaajaaIaaKaaeaahaahaahbeubeubeuaahaahaahaahaahaahaahaahaahaahaahaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaahaahaahaahaahaahaahaahaaeaaeaaeaaeaaLaaMaaMaaeaaeaaeaaeaahaahaahbeuadwbeuaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaahaahaahaahaahaahaahaahaahaahaahaahaaNaaOaaPaaPaaNaahaahaahaahaahaahbeuabtbeuaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaahaahaaQaaQaaQaaQaaQaaQaaQaaQaaQaaQaaQaaeaaRaaRaaRaaNaaSaahaahaahaahaahbeuaPZbeuaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaahaahaahaaQaaTaaUaaVaaWaaXaaYaaTaaZabaaaQabbabcabdabcabeaaSaaSaaSaaSaaSaaSaaSaQZaaSaaSaaSaaSaaSaahaahaahaahaahaahaahaahaahaahaahaahaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaahaahaahaaQabfabgabgabhabgabiabjabjabkablabmabmabnabcaboabpabqabrabsabqabqabtabtabuabvabwabxaaSaaSaahaahaahaahaahaahaahaahaahaahaahaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaabaaaaabaabaabaabaabaaaaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaahaahaahaahaaQabyabgabgabgabgabzabgabgabAabBabCabDabEabFabGaaSabHabIabJabKabqabqabtabtabtabtabtabLaaSaaSaahaahaahaahaahaahaahaahaahaahaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaabaaaaabaabaabaabaabaaaaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaahaahaahaahaaQaaTaaUabMaaWaaTabNaaTabOabPaaQabQabRabSabcaaNabTabTabTabTabTabTabTabTabTabTabUabtabVabWaaSaahaahaahaahaahaahaahaahaahaahaahaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa @@ -9850,17 +9909,17 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaahaahaahaahaahaahabXaclacmacnacoaclacpaclacqacrabXacsabYabZabcaboabTactacuacuacuacuacvacuacuacwaaSabtacxaaSaaSaahaahaahaahaahaahaahaahaahaahaahaahaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacyacyacyacyacyacyacyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaczaczacAaczaczaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaahaahaahaahaahaahabXacBacCacCacCacCacDacCacCacEacFabCacGabZabcaboabTacHacuacIacJacuacvacuacKacLaaSabtacMaaSaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaacNaaaaaaacNaaaaaaaaaacNaaaaaaaaaaaaaaaacNaaaaaaaaaacNaaaaaaacNaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacyacyacyacyacyacyacyacyacyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaczaaaaadaaaacOaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaahaahaahaahaahaahaahabXacPacCacCacQacCacRacSacSacSacTabmacUacVabCabCacWacXacuacYacZacuayEacuadaacwaaSabtadbaaSaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaacNacNacNacNaaaaaaaaaacNacNacNacNacNacNacNaaaaaaaaaacNacNacNacNaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacyacyacyacyacyacyacyacyacyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacAaadadcaadacAaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaahaahaahaahaddaddaddabXaclacmadeacoadfadgacladhadiabXadjabYadkabmadladmadnadoadpadqadoadradoadsadtaduadvadwaaSaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaaaaaaaaaaaaaaaaaaaaaaaaacNacNacNacNaaaaaaacNacNacNacNacNacNacNacNacNaaaaaaacNacNacNacNaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacyacyacyacyacyacyacyacyacyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacAaadadcaadacAaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaahaahaahaahaddaddaddabXaclacmadeacoadfadgacladhadiabXadjabYadkabmadladmadnadoadpadqadoadradoadsadtaduadvbbgaaSaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaaaaaaaaaaaaaaaaaaaaaaaaacNacNacNacNaaaaaaacNacNacNacNacNacNacNacNacNaaaaaaacNacNacNacNaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacyacyacyacyacyacyacyacyacyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaczaczaczacAacAaaaaaaaaaadxaaaaaaaaaacAacAaczaczaczaaaaaaadyaddaddaddaddaddaddadzadzabXabXabXabXabXabXabXabXabXabXabXaaeabYadAadBadBadCadDadEadFadGadHadIacuadJadKaaSabtaaSaaSaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaaaaaaaaaaaaaaaaaaaaaacNacNacNacNaaaaaaacNacNacNacNacNacNacNacNacNaaaaaaacNacNacNacNaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacyacyacyacyacyacyacyacyacyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaczaaaaaaaaaaadaaaaaaaaaadxaadaadaaaaadaaaaaaaaaaczaaaaaaadMadNadOadPadQadRadSadTadUadVadWadXadYadZaeaadVadVaebaecaddaboaedaeeabcaboabTacuacuaefacJacuaegacuadJaehaaSabtaaSaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaaaaaaaaaaaaaaaacNacNacNacNacNacNacNacNacNacNacNacNacNacNacNacNacNacNacNacNacNaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacyacyacyacyacyacyacyacyacyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacAaadaeiaeiaeiaeiaeiaadadxaadaeiaeiaeiaeiaeiaadacAaaaaaaaekadNaelaemaenaeoaepaeqaeqaeraesaeraetaeraeraeraeraeraeraeuaevaewaexaeyaboabTaezacuaeAacuacuaegacuaeBaeCaaSabtaaSaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaaaaaaaaaaaaaaaacNacNacNacNacNacNacNacNacNacNacNacNacNacNacNacNacNacNacNacNacNaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacyacyacyacyacyacyacyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacAaadaeDaeEaeEaeEaeEaeFaeGaeFaeHaeHaeHaeHaeIaadacAaaaaaaaddaddaddaddaddaeJaeKaeLaeMaeMaeMaeMaeNaeMaeMaeMaeMaeOaePaddaeQabYaeRaeSaeTabTaeUacuaeVacuaeWaegacuaeXaeYaaSabtaaSaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaaaaaaaaaaaaacNacNacNacNacNacNacNacNacNacNacNacNacNacNacNacNacNacNacNacNacNaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacyacyacyacyacyacyacyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacAaadaeZaeZaeZaeZaeZaadadxaadaeZaeZaeZaeZaeZaadacAaaaaaaaahaahaahaahaddaddaeKaeMaeMafaafbafcafdafeafbaffaeMaeMaddaddaaNafgafhafiaaNabTafjacuafkaflaflafmaflaflaflaaSabtaaSaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaaaaaaaaaacNacNacNacNacNacNacNacNacNacNacNacNacNacNacNacNacNacNacNacNacNaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacyacyacyacyacyacyacyacyacyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaczaaaaaaaaaaadaaaaaaaaaadxaaaaaaaaaaadaaaaaaaaaacOaaaaaaaahaahaahaahaahaddafnaeMafoafcafpafqafrafsaftaftafuaeMaahaahaaNabYafvafwaaNafxafyafyafzaflafAafBafCafDafEaaSabtaaSaaSaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaaaaaaaaaacNacNacNacNacNacNacNacNacNacNacNacNacNacNacNacNacNacNacNacNacNaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacyacyacyacyacyacyacyacyacyacyacyacyacyacyacyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacAaadaeiaeiaeiaeiaeiaadadxaadaeiaeiaeiaeiaeiaadacAaaaaahaahaahaahaahaahaddafnaeMafFafGafHafIafJafKafLafMafNaeMaahaahaaNabYaeRafOaaNafxafyafyaywaflafPafQafRaflaflaaSabtabtaaSaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaaaaaaacNacNacNacNacNacNacNacNacNacNacNacNacNacNacNacNacNacNacNacNacNaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacyacyacyacyacyacyacyacyacyacyacyacyacyacyacyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacAaadaeDaeEaeEaeEaeEaeFaeGaeFaeHaeHaeHaeHaeIaadacAaaaaahaahaahaahaahaddaddafnaeMafSafTafUafVafWafXafYafcafZaeMaahaahaaNagaafvagbaaNafxagcagdageaflagfaggaggaghafEaaSabtabtaaSaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaaaacNacNacNacNacNacNacNacNacNacNacNacNacNacNacNacNacNacNacNacNacNacNacNaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacyacyacyacyacyacyacyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacAaadaeZaeZaeZaeZaeZaadadxaadaeZaeZaeZaeZaeZaadacAaczaaabeubeubffbiXaddaddaeKaeMaeMafaafbafcafdafeafbaffaeMaeMaddaddaaNafgafhafiaaNabTafjacuafkaflaflafmaflaflaflaaSabtaaSaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaaaaaaaaaacNacNacNacNacNacNacNacNacNacNacNacNacNacNacNacNacNacNacNacNacNaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacyacyacyacyacyacyacyacyacyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaczaaaaaaaaaaadaaaaaaaaaadxaaaaaaaaaaadaaaaaaaaaacOblKduebrMbCYadVadVbEMbrMafnaeMafoafcafpafqafrafsaftaftafuaeMaahaahaaNabYafvafwaaNafxafyafyafzaflafAafBafCafDafEaaSabtaaSaaSaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaaaaaaaaaacNacNacNacNacNacNacNacNacNacNacNacNacNacNacNacNacNacNacNacNacNaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacyacyacyacyacyacyacyacyacyacyacyacyacyacyacyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacAaadaeiaeiaeiaeiaeiaadadxaadaeiaeiaeiaeiaeiaadacAaaabeubeubeubIfadVbEMaddafnaeMafFafGafHafIafJafKafLafMafNaeMaahaahaaNabYaeRafOaaNafxafyafyaywaflafPafQafRaflaflaaSabtabtaaSaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaaaaaaacNacNacNacNacNacNacNacNacNacNacNacNacNacNacNacNacNacNacNacNacNaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacyacyacyacyacyacyacyacyacyacyacyacyacyacyacyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacAaadaeDaeEaeEaeEaeEaeFaeGaeFaeHaeHaeHaeHaeIaadacAaaabeubeubeubeubeuaddaddafnaeMafSafTafUafVafWafXafYafcafZaeMaahaahaaNagaafvagbaaNafxagcagdageaflagfaggaggaghafEaaSabtabtaaSaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaaaacNacNacNacNacNacNacNacNacNacNacNacNacNacNacNacNacNacNacNacNacNacNacNaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacyacyacyacyacyacyacyacyacyacyacyacyacyacyacyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacAaadaeZaeZaeZaeZaeZaadadxaadaeZaeZaeZaeZaeZaadacAaaaaahaahaahaahaahaddagiagjaeMafcafcagkaglaglaglagmafcafcaeMaahaahaaNagnagoagpaaNabTabTabTabTaflaflagqaflaflaflaaSaaSabtaaSaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaaaacNacNacNacNacNacNacNacNacNacNacNacNacNacNacNacNacNacNacNacNacNacNacNaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacyacyacyacyacyacyacyacyacyacyacyacyacyacyacyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaczaaaaaaaaaaadaaaaaaaaaadxaaaaaaaaaaadaaaaaaaaaaczaaaaahaahaahaahaahaddagragsaeMagtaguagkafcagvafcagwaguagxaeMaahaahaaNabYafvafwaaNaahaahaahaahaflagyaggagzaflagAagBaaSabtaaSaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaaaaaaacNacNacNacNacNacNacNacNacNacNacNacNacNacNacNacNacNacNacNacNacNaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacyacyacyacyacyacyacyacyacyacyacyacyacyacyacyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaczaaaaaaaaaaadaaaaaaaaaadxaaaaaaaaaaadaaaaaaaaaaczaaaaahaahaahaahaahaddagrcghaeMagtaguagkafcagvafcagwaguagxaeMaahaahaaNabYafvafwaaNaahaahaahaahaflagyaggagzaflagAagBaaSabtaaSaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaaaaaaacNacNacNacNacNacNacNacNacNacNacNacNacNacNacNacNacNacNacNacNacNaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacyacyacyacyacyacyacyacyacyacyacyacyacyacyacyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacAaadaeiaeiaeiaeiaeiaadadxaadaeiaeiaeiaeiaeiaadacAaaaaahaahaahaahaahaddafnaddaeMaeMaeMagCagDagEagFagGaeMaeMaeMagHaahaaNagIagJagKaaNaahaahaahaahaflagyagLagzaflaflaflaaSabtaaSaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaaaaaaaaaaaaaaaaaaacNacNacNacNacNacNacNacNacNacNacNacNacNaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacyacyacyacyacyacyacyacyacyacyacyacyacyacyacyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacAaadaeDaeEaeEaeEaeEaeFaeGaeFaeHaeHaeHaeHaeIaadacAaaaaahagMagMagMagMagMafnaddagNagNagOagPagQagRagSagTagUagVagVagHaahaaNabYafvafwaaNaahaahaahaahaflaflaflaflaflaahaahaaSagWaaSaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaaaaaaaaaaaaaaaaaaacNacNacNacNacNacNacNacNacNacNacNacNacNaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacyacyacyacyacyacyacyacyacyacyacyacyacyacyacyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacOaaaaeZaeZaeZaeZaeZaadadxaadaeZaeZaeZaeZaeZaaaacAaaaaahagMagXagYagZahaagjaddahbahcahcahdahcahcahcaheahfahfahgagHaahaaNahhahiahjaaNaahaahaahaahaahaahaahaahaahaahaahaaSahkaaSaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaaaaaaaaaaaaaaaaaaacNacNacNacNacNacNacNacNacNacNacNacNacNaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa @@ -9876,11 +9935,11 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacyacyacyacyacyaaaacyacyacyacyacyaaaacyacyacyacyacyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaadaaaajXajYajXaaaaadaadaaaaaaaaaaahaahaahaddajZakaagHagHagHagHagHakbakcagHakdakeakfagHakbakcagHagHahuahuakgahYahMahuaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaaSaaSaaSajFaiZajWajHakhaiZaiZaiZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacyacyacyacyacyaaaaaaaaaaaaaaaaaaaaaacyacyacyacyacyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaadakiakjakiaadaadaaaaddakkakladdaddaddaddaiwadVadWakmaddaknakoakpakoakoakqakraksaktaktakuaktaktakvaktakwakxakyahuaahaahaahaahaahaahaahaahakzakzakzakzakAakAakAakAakAakAakBaaSakCaiZakDakEajHakFakGakHaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaakIakJakKakLakMaaaaddaddakNakOakPakQakQakQakRadVakSadVakTaknakoakUakVakWakXakYakZalaalbalcaldalaalealaalfalgahMahuaahaahaahaahaahaahaahaahakzalhalialjakAalkallalmalnakAakAaaSajFaiZaloajHalpaiZaiZaiZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahyahyaahaahaahaahalqalralsaltalqaddaddalualvalwaddaddaddaddaddaddaddaddaddalxalyalzahuahuahuahuahuahuahuahuahuahualAahualBalCalDahuaahaahaahaahaahaahaahaahakzalEakzalFakAalGalHalIalJalKakAalLalMaiZalNalOalPalQalRalSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalTalUalVaaaalWalXalYahyahyaahaahaahaahaahalqalZamaambalqamcaifakRaddaddaddaahaahaahaahaahaahaahahuahuahuahuahuaahaahaahaahaahaahaahahyahyahyamdahvameahMahuaahaahaahaahaahaahaahaahakzamfamgamfamhamiamjamkamlammakAamnamoaiZaiZampamqamramsamtahyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamuamvamwamvamxamyamzamyamxaahaahaahaahaahaahalqamAamBamCalqamDaiwadVaddaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahahyahyahZahvameamEahuaahaahaahaahaahaahaahaahakzamfamfamfamFamlamGamHamIamJakAabqamKamLaiZajHamMamNamsamOahyahyahyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamPamQamQamRaaaamuamvamSamvamxamyamTamyamxaahaahaahaahaahaahalqamUamValqalqaddaiwamWaddaahaahaahaahamXamXamXamXamXamXamXamXamXamXamYamYamYamYamYamYamYamYahyahyahZamZanaahMahuaahaahaahaahaahaahaahaahakzanbamfamfakAancandaneancandakAakzaaSanfaiZaiZangaiZaiZaiZaahahyahyahyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamuanhaniamuamuamuanjankamuamuanlanmannanoamuamuamvanpamvamxamyanqamyamxaahaahaahaahaahaahanransantanranuaddaiwadVaddaahaahaahamXamXanvanwanxanyanwanzanzanwanAamYanBanCanDanEanFanGamYamYahyahZahXanHanIahuaahaahaahaahaahaahaahaahakzanJanKanLanManNanOanPanQanRanSakzanTanUanVanWanXanYanYanZanZanZanZaoaahyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahyahyaahaahaahaahalqalralsaltalqaddaddalualvalwaddaddcuKaddaddaddaddaddaddalxalyalzahuahuahuahuahuahuahuahuahuahualAahualBalCalDahuaahaahaahaahaahaahaahaahakzalEakzalFakAalGalHalIalJalKakAalLalMaiZalNalOalPalQalRalSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalTalUalVaaaalWalXalYahyahyaahaahaahaahaahalqalZamaambalqamcaifakRaddaddaddcvzcDNcDxaddaahaahaahahuahuahuahuahuaahaahaahaahaahaahaahahyahyahyamdahvameahMahuaahaahaahaahaahaahaahaahakzamfamgamfamhamiamjamkamlammakAamnamoaiZaiZampamqamramsamtahyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamuamvamwamvamxamyamzamyamxaahaahaahaahaahaahalqamAamBamCalqamDaiwadVaddaahaddadVcMoamWaddaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahahyahyahZahvameamEahuaahaahaahaahaahaahaahaahakzamfamfamfamFamlamGamHamIamJakAabqamKamLaiZajHamMamNamsamOahyahyahyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamPamQamQamRaaaamuamvamSamvamxamyamTamyamxaahaahaahaahaahaahalqamUamValqalqaddaiwamWaddaahaddcMscOXamXamXamXamXamXamXamXamXamXamXamYamYamYamYamYamYamYamYahyahyahZamZanaahMahuaahaahaahaahaahaahaahaahakzanbamfamfakAancandaneancandakAakzaaSanfaiZaiZangaiZaiZaiZaahahyahyahyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamuanhaniamuamuamuanjankamuamuanlanmannanoamuamuamvanpamvamxamyanqamyamxaahaahaahaahaahaahanransantanranuaddaiwdoCaddaahaddaddamXamXanvanwanxanyanwanzanzanwanAamYanBanCanDanEanFanGamYamYahyahZahXanHanIahuaahaahaahaahaahaahaahaahakzanJanKanLanManNanOanPanQanRanSakzanTanUanVanWanXanYanYanZanZanZanZaoaahyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahyamuamuaobaocaodaoeaofaogaohaoiaojaokaolaolaomaonamuaooaopaoqamxaoraosaotamxaahaahaahaahaahaahanraouaovanraddaddaowaddaddaahaahaahamXaoxaoyaozanzanzanzanzaoAaoAanwamYaoBaoCaoDaoEaoDaoDaoFaoGahyaoHahvameahMahuaahaahaahaahaahaahaahaahakzaoIaoJaoKaoLaoMaoNaoOaoPaoQaoRaoSaoTaoTaoUaoVaoWaoXaoYaoZapaapbapcapdahyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahyahyamuapeapfapgaphapiaphapjapkapeaplapmapmapmapnapoamuappapqapramxapsapqaptamxanranranraahaahaahanrapuantanrapvapwapxapyapzapzapzapzapzapAapBapCapCapDanzapEaoAaoAanzamYapFaoDaoDapGaoDaoDapHamYaoGahuahvameapIahuaahaahaahaahaahaahaahaahakzapJamfamfapKapLapMapNamfamfapOakzapPanTapQapRapSanTapTapUapVapWapcapXahyahyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahyahyahyamuapYapZaqaapZaqbaqcaqaapZapYaqdapnaqeapmaqfaqgamuanraqhaqiamxanraqjaqiamxaqkaqkanranranranranransaqlaqmaqnaqoaqpapwapzaqqaqraqsaqtanzanzaquaquaquanzapEapEanzanzamYaqvaoDaqwaqxaqwaqyaqzaqAaqBakvaqCaqDaqEahuaahaahaahaahaahaahaahaahakzaqFaqGaqHaqIaqJaqKaqGaqHaqFakzakzanZanZanZanZaqLanZanZanZanZanZanZanZahyahyaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa @@ -9895,22 +9954,22 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahyaahaahaahaALaALaALaALaALaALaALaxsdFqdFqazHazHdFrdFraxsaahatiaxtaxuaxvaxwaxxaxyavdavQaxzaxAavfaxBaxCaxDaxEaxFaxGavfawPaxHaxIawQawRaxJaxKaxKaxKaxKaxKaxKaxKaxLaxLaxLaxLaxLaahatNauNatNatNatNatNatNatNatNaxMawnaxNaxOaxPaxQaxRaxSaxTaxQaxQaxUaxVaxQaxWaxQaxQaxRaxQaxQaxXaxYaxQaxQaxZaxQaxTayaaxQaxQaxRaxQaybaycaxPaydayeayfayfaygayhayiayfayjayfayfaykayfaylaxqavJaymaynayoaymaypanZarOarOayqanZaahaahaahaahaahaahaahaahaahaahaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaahaahaALaALaALaALaALaALaALaALaxsdFsdFsazHazHdFtdFuaxsaahatiayxayyayzatiayAavbavdayBayCayDavfaEqayFavTayGavTayHayIayJayKayLayMayNayOayPayQayRayPazXaySayPayTayUayVayWayXatNatNauNayYayZayZayZazaazbazcazdawnaxlazeazfazgazhaziazjazjazgazkaziazjazlazjazgazmaznaznaznazoaznaznazpaznazqaznaznaznazmazqazpazrazsaztazuazvazvazvazwazvazvazxazyazvazvazvazvazzazAazvazvazBaymazCazDarOazEazFanZaahaahaahaahaahaahaahaahaahaahaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaazGazGazGazGazGazGazGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaahaahaALaALaALdFwdFvdFxaALdFzdFyaxsayrayraBCazHazHazIaxsazJazJazJazJazJazJazKazLazMazMazNazMazMazMazMazOazPazQazRazSazTazUazVavqavqazWayPazYaBiayPaCdaCcayPazZaAaaAbaAcaGWaAeaAfauNaAgatNatNatNaAhazbatNaAiawnaxlaxmaxdaAjaAkaAlawnaAmaAnaAoaApawnaAqawnaAraAkawnawnawnaApawnawnaAsawnaAtawnaAuawnaAkaAvaxlaAwaAxaAyaAzaAAaAAaAAaABaACaAAaADaAEaAAaAAaAAaAAaAFaAGaymaymaAHaAIazCanZaAJaAJaAKanZaahaahaahaahaahaahaahaahaahaahaahaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaazGazGazGazGazGazGazGazGazGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaahaALaALaALdFAaDxaDxaDxdFBdFDdFCaALayrayrazHazHaAMaAMaANaAOaAPaAQaARaASaATaAUaAVaAWaAXaAYaAZaBaaBbazMavfavfavfavfavfaBcaBdaBeaBfaBgaBhayPaDdaDeayPaIoaDgayPaBjaBkaBlayXayXaBmaBnaBoatNatNaahatNatNatNatNavCaBpaxlaxmaxdaBqavCavCaxfaxgaxhavCavCaBraBsaAiavCavCaBtaBuaBuaBuaBvavCavCavCavCavCavCavCavCaBwaxlaAwaxdaBxawsawsawsawsawsawsawsawsawsawsawsawsawsawsawsawsawsawsawsawsanZanZaByaBzanZaahaahaahaahaahaahaahaahaahaahaahaahaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaazGazGazGazGazGazGazGazGazGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaahaALaALdFEaDxdFGdFFdFHdFFdFJdFIaALaBAaBBazHazHaBDaBEaBFaBGaBGaBHaBGaBIaBJaBKaBLaBMaBNaBOaBPaBQaBRazMaBSaBTaBUaBVaBWaBXaBYaBeaBZaCaaCbayPaIpayPayPayPaIqayPayXaCeayXayXaAeaCfayZauNatNaahaahaahaahaahaahavCavCaCgaChaCiavCavCahyahyahyahyahyaCjaCjaCkaCjaCjahyahyahyahyahyahyahyaahaahaahaahaahaahaClaClaCmaCnaCoaClawsaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahanZanZaCpanZanZaahaahaahaahaahaahaahaahaahaahaahaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaazGazGazGazGazGazGazGazGazGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaahaahaALaALdFKaDxaJGdFLdFNdFMdFPdFOaALaCvaCwaCxaCyaCzazHaCAaCBaCCaCDaCEaCFaCGaCHaCIaCJaCKaCLaCMaCNaCNaCOaCPaCQaCRaCSaCTaCUaCVaCWaCXaCYaCZaDadEhaDbaDcaJFdEiaDfaJHaDhaDiaDjaAeaDkaDlauNatNaahaahaahaFmaFmaFmaFmaFmaxlaxmaxdavCahyahyahyahyahyahyahyaCjaDmaDnaCjahyahyahyahyahyahyahyahyaahaahaahaahaahaDoaDpaDqaDraDsaClaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaDtaDuaDvaDtaahaahaahaahaahaahaahaahaahaahaahaahaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaazGazGazGazGazGazGazGazGazGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaahaahaALaALdFQaDxaGVdFRdFSdFRdFTaDxaDyazHaDzaDAaDBazHazHaDCaBGaBGaDDaBGaDEaDGaDHaDIaDJaDKaDLaDMaDNaDOazMaDPaDQaDRaBVaDSaDTaDUaDVaDWaDXaDYaDZaEaaEbaEcaEdaEaaEeaEfaEgaEhaEiaEjaEkaElaEmatNaahaahaFmaFmaGvaFRaGxaFmaxlaxmaEnavCahyahyahyahyahyahyahyaCjaEoaDnaCjahyahyahyahyahyahyahyahyahyahyaahaahaahaEpaEtaEraEsaGyaClaEuaEuaEuaEuaEuaEuaEuaEuaEuaEvaEvaEvaEvaEvaEvaEvaEvaEvaEvaEvaEvaEvaEvaEwaExaDtaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaazGazGazGazGazGazGazGazGazGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaahaahaahaALaALaALdFUaDxaDxaDxaDxdFVaEBaALaECaEDaEEaEFdFWaEHaEFaEIaEzaDDaDFaELaEMaENaEOaEPaEQaERaESaETaEUazMaBVaEVaBVaEWaEXaEYaEZaFaaFbaFcaFdaFaaFeaFfaFeaFaaFeaFgaFeaFhayPaFiatNaFjaFkaFlatNaahaFmaFmaHOaHPaHQaJbaFmaFnaxcaxdaFoaFoaFoaFoaFoahyahyahyaCjaDmaCjaCjahyahyahyahyahyahyahyahyahyahyahyaahaahaFpaFqaFraFsaFtaClaFuaFvaFwaFxaFyaFzaLgaFAaFuaEvaFBaFBaFCaFDaFEaFFaFGaFFaFHaFDaFCaFIaEvaDtaFJaDtaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaazGazGazGazGazGazGazGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaahaahaahaahaahaahaahaahaahaALaALaALaALbaDaPwbfbaDxdGaaFNaFOaFPaCIaFQaEFaECaEKaEFaFSaFTaFUaFVaFWaFXaFYaFZazMaGaaGbaGcaGdaGeazMaGfaGgaGhaGiaGjaGkaGlaFaaGmaGnaGoaFaaGpaGqaGraFaaGpaGnaGraFhaahaahatNaGsaGtaGuatNaahaFmaJaaJbaHPaHQaJbaKwaxlaxmaGzaFoaGAaGBaGCaFoaFoahyahyaCjaDmaCjahyahyaGDaGDaGEaGFaGFaGFaGGaGFaGFaGFaGFaGHaGDaGIaGJaGKaGLaClaFKaGNaGOaGNaGPaGNaGOaGNaGQaEvaGRaGSaGRaGRaGRaGRaGRaGRaGRaGRaGRaGRaGTaDtaFJaDtaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaazGazGazGazGazGazGazGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaahaahaahaahaahaahaahaahaahaahaahaahaALaALaALaALaALaALdGbdGcaGZaHaaHbaHcaHdaHeaHfaGwaHhaHiaHjaHkaHlaHmaHnaHoaHpaHqaHraHsaHtaHlaHuaHvaHwaHxaHyaHzaHAaHBaHCaFaaHDaHEaHFaFaaHGaHHaHIaFaaHJaHEaHKaFhaahaahatNaHLaHMaHNatNaahaFmaKoaJbaHPaHQaHRaFmaHSaxmaxdaFoaHTaHUaHVaHWaFoaFoahyaCjaDmaCjahyahyaGDaHXaHYaHYaHYaHYaHYaHYaHYaHYaHYaHYaHZaIaaIbaIcaIdaClaIeaGNaGNaIfaIgaIhaGNaGNaIiaEvaGRaIjaIkaIkaIkaIkaIkaIkaIkaIkaIkaIlaGRaDtaFJaDtaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaazGazGazGazGazGazGazGazGazGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaALaALaALdGedGddGfaDxdGadGgaIraIsaItaIuaIvaIwaHgaIyaIzaIAaIBaICaIDaIEaIFaIGaIHaIIaIHaIJaIKaILaIMaINaIOaBXaIPaIQaGkaIRaFaaISaITaIUaFaaIVaIWaIVaFaaIVaIXaIVaFhaahaahatNaIYaIZaHNatNaFmaFmaKpaJbaJcaJdaJeaJfaJgaJhaJiaJjaJkaJlaJmaJnaJoaFoahyaCjaDmaCjahyahyaGDaJpaHYaHYaHYaHYaHYaHYaHYaHYaHYaHYaJqaJraFraFsaQkaClaJsaGNaJtaJuaJvaJwaJxaGNaJyaEvaJzaJAaJBaJCaJCaJCaJCaJCaJCaJCaJDaGRaJEaDtaFJaDtaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaazGazGazGazGazGazGazGazGazGazGazGazGazGazGazGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaALaALaALdGhaGVdFRdFRdFRdGjdGiaALaJJaJKaJKaJKaJLaJMaJKaJNaJKaJOaJPaJKaJQaJRaJSaJTaJQaJUaJVaJWaFaaJXaJYaFaaJZaKaaFabnNaFaaFaaKcaKdaKeaKfaKgaKhbjdaKjaKiaKdaKkaFhaFhaahatNatNaKlaHNayZaKmaKnaJbaJbaLwaLuaKqaFmaxlaxmaxdaKraJkaKsaKtaJkaKuaFoahyaCjaDmaCjaGDaGDaGDaGDaHYaHYaHYaHYaHYaHYaHYaHYaHYaHYaJqaKvaIbaIcaLJaDoaKyaGNaJtaJuaJvaJwaJxaGNaLKaKzaKAaJAaKBaKCaKCaKCaKCaKCaKCaKCaKDaGRaKEaDtaFJaDtaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaazGazGazGazGazGazGazGazGazGazGazGazGazGazGazGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaALaALdGkaDxaDxaDxaDxaDxdFPbqpaALaJJaKIaKIaKJaKIaKKaKLaKMaKNaKOaKPaKQaJQaKRaKSaKTaKUaKVaKWaKXaFaaKYaKZaFaaLaaLbaLcaLdaLeaLfboJaLhaLiaLjaLkaLlboJaLmaLmaLmaLmaLnaFhaahaahatNaLoaLpaLqaLraLsaLtcOJaLvcOuaLxaFmaLyaxmaxdaFoaLzaLAaJkaJkaLBaFoahyaCjaLCaLDaGDaLEaLFaLGaHYaHYaHYaHYaHYaHYaHYaHYaHYaHYaLHaLIaIbaIcaLJaFpaLLaLLaLLaLMaLNaLOaLLaLLaLLaLQaLRaJAaKBaKCaKCaKCaKCaKCaKCaKCaKDaGRaJEaDtaFJaDtaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaazGazGazGazGazGazGazGazGazGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaahaALaALaALdFAaDxaDxaDxdFBdFDdFCaALayrayrazHazHaAMaAMaANaAOaAPaAQaARaASaATaAUaAVaAWaAXaAYaAZaBaaBbazMavfavfavfavfavfaBcaBdaBeaBfaBgaBhayPaDdaDeayPaIoaDgayPaBjaBkaBlayXayXaBmaBnaBoatNatNaKlatNatNatNatNavCaBpaxlaxmaxdaBqavCavCaxfaxgaxhavCavCaBraBsaAiavCavCaBtaBuaBuaBuaBvavCavCavCavCavCavCavCavCaBwaxlaAwaxdaBxawsawsawsawsawsawsawsawsawsawsawsawsawsawsawsawsawsawsawsawsanZanZaByaBzanZaahaahaahaahaahaahaahaahaahaahaahaahaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaazGazGazGazGazGazGazGazGazGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaahaALaALdFEaDxdFGdFFdFHdFFdFJdFIaALaBAaBBazHazHaBDaBEaBFaBGaBGaBHaBGaBIaBJaBKaBLaBMaBNaBOaBPaBQaBRazMaBSaBTaBUaBVaBWaBXaBYaBeaBZaCaaCbayPaIpayPayPayPaIqayPayXaCeayXayXaAeaCfayZauNdpIayZayZayZdpHayZayZavCavCaCgaChaCiavCavCahyahyahyahyahyaCjaCjaCkaCjaCjahyahyahyahyahyahyahyaahaahaahaahaahaahaClaClaCmaCnaCoaClawsaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahanZanZaCpanZanZaahaahaahaahaahaahaahaahaahaahaahaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaazGazGazGazGazGazGazGazGazGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaahaahaALaALdFKaDxaJGdFLdFNdFMdFPdFOaALaCvaCwaCxaCyaCzazHaCAaCBaCCaCDaCEaCFaCGaCHaCIaCJaCKaCLaCMaCNaCNaCOaCPaCQaCRaCSaCTaCUaCVaCWaCXaCYaCZaDadEhaDbaDcaJFdEiaDfaJHaDhaDiaDjaAeaDkaDlauNatNdpJayZdqFaFmaFmaFmaFmaFmaxlaxmaxdavCahyahyahyahyahyahyahyaCjaDmaDnaCjahyahyahyahyahyahyahyahyaahaahaahaahaahaDoaDpaDqaDraDsaClaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaDtaDuaDvaDtaahaahaahaahaahaahaahaahaahaahaahaahaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaazGazGazGazGazGazGazGazGazGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaahaahaALaALdFQaDxaGVdFRdFSdFRdFTaDxaDyazHaDzaDAaDBazHazHaDCaBGaBGaDDaBGaDEaDGaDHaDIaDJaDKaDLaDMaDNaDOazMaDPaDQaDRaBVaDSaDTaDUaDVaDWaDXaDYaDZaEaaEbaEcaEdaEaaEeaEfaEgaEhaEiaEjaEkaElaEmatNayZdqFaFmaFmaGvaFRaGxaFmaxlaxmaEnavCahyahyahyahyahyahyahyaCjaEoaDnaCjahyahyahyahyahyahyahyahyahyahyaahaahaahaEpaEtaEraEsaGyaClaEuaEuaEuaEuaEuaEuaEuaEuaEuaEvaEvaEvaEvaEvaEvaEvaEvaEvaEvaEvaEvaEvaEvaEwaExaDtaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaazGazGazGazGazGazGazGazGazGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaahaahaahaALaALaALdFUaDxaDxaDxaDxdFVaEBaALaECaEDaEEaEFdFWaEHaEFaEIaEzaDDaDFaELaEMaENaEOaEPaEQaERaESaETaEUazMaBVaEVaBVaEWaEXaEYaEZaFaaFbaFcaFdaFaaFeaFfaFeaFaaFeaFgaFeaFhayPaFiatNaFjaFkaFlatNdANaFmaFmaHOaHPaHQaJbaFmaFnaxcaxdaFoaFoaFoaFoaFoahyahyahyaCjaDmaCjaCjahyahyahyahyahyahyahyahyahyahyahyaahaahaFpaFqaFraFsaFtaClaFuaFvaFwaFxaFyaFzaLgaFAaFuaEvaFBaFBaFCaFDaFEaFFaFGaFFaFHaFDaFCaFIaEvaDtaFJaDtaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaazGazGazGazGazGazGazGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaahaahaahaahaahaahaahaahaahaALaALaALaALbaDaPwbfbaDxdGaaFNaFOaFPaCIaFQaEFaECaEKaEFaFSaFTaFUaFVaFWaFXaFYaFZazMaGaaGbaGcaGdaGeazMaGfaGgaGhaGiaGjaGkaGlaFaaGmaGnaGoaFaaGpaGqaGraFaaGpaGnaGraFhaahaahatNaGsaGtaGuatNayZaFmaJaaJbaHPaHQaJbaKwaxlaxmaGzaFoaGAaGBaGCaFoaFoahyahyaCjaDmaCjahyahyaGDaGDaGEaGFaGFaGFaGGaGFaGFaGFaGFaGHaGDaGIaGJaGKaGLaClaFKaGNaGOaGNaGPaGNaGOaGNaGQaEvaGRaGSaGRaGRaGRaGRaGRaGRaGRaGRaGRaGRaGTaDtaFJaDtaahaDtaDtaDtaDtaDtaahaahaahaahaahaahaahaahaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaazGazGazGazGazGazGazGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaahaahaahaahaahaahaahaahaahaahaahaahaALaALaALaALaALaALdGbdGcaGZaHaaHbaHcaHdaHeaHfaGwaHhaHiaHjaHkaHlaHmaHnaHoaHpaHqaHraHsaHtaHlaHuaHvaHwaHxaHyaHzaHAaHBaHCaFaaHDaHEaHFaFaaHGaHHaHIaFaaHJaHEaHKaFhaahaahatNaHLaHMaHNatNayZaFmaKoaJbaHPaHQaHRaFmaHSaxmaxdaFoaHTaHUaHVaHWaFoaFoahyaCjaDmaCjahyahyaGDaHXaHYaHYaHYaHYaHYaHYaHYaHYaHYaHYaHZaIaaIbaIcaIdaClaIeaGNaGNaIfaIgaIhaGNaGNaIiaEvaGRaIjaIkaIkaIkaIkaIkaIkaIkaIkaIkaIlaGRaDtaFJaDtaDtaDtdBlaVCaVCaDtaahaahaahaahaahaahaahaahaahaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaazGazGazGazGazGazGazGazGazGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaALaALaALdGedGddGfaDxdGadGgaIraIsaItaIuaIvaIwaHgaIyaIzaIAaIBaICaIDaIEaIFaIGaIHaIIaIHaIJaIKaILaIMaINaIOaBXaIPaIQaGkaIRaFaaISaITaIUaFaaIVaIWaIVaFaaIVaIXaIVaFhaahaahatNaIYaIZaHNatNaFmaFmaKpaJbaJcaJdaJeaJfaJgaJhaJiaJjaJkaJlaJmaJnaJoaFoahyaCjaDmaCjahyahyaGDaJpaHYaHYaHYaHYaHYaHYaHYaHYaHYaHYaJqaJraFraFsaQkaClaJsaGNaJtaJuaJvaJwaJxaGNaJyaEvaJzaJAaJBaJCaJCaJCaJCaJCaJCaJCaJDaGRaJEaDtaFJdBtdGHaDtaVCdGIdGJaDtaahaahaahaahaahaahaahaahaahaahaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaazGazGazGazGazGazGazGazGazGazGazGazGazGazGazGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaALaALaALdGhaGVdFRdFRdFRdGjdGiaALaJJaJKaJKaJKaJLaJMaJKaJNaJKaJOaJPaJKaJQaJRaJSaJTaJQaJUaJVaJWaFaaJXaJYaFaaJZaKaaFabnNaFaaFaaKcaKdaKeaKfaKgaKhbjdaKjaKiaKdaKkaFhaFhaahatNatNaKlaHNayZaKmaKnaJbaJbaLwaLuaKqaFmaxlaxmaxdaKraJkaKsaKtaJkaKuaFoahyaCjaDmaCjaGDaGDaGDaGDaHYaHYaHYaHYaHYaHYaHYaHYaHYaHYaJqaKvaIbaIcaLJaDoaKyaGNaJtaJuaJvaJwaJxaGNaLKaKzaKAaJAaKBaKCaKCaKCaKCaKCaKCaKCaKDaGRaKEaDtaFJaDtaDtaDtdGIaVCdGKaDtaahaahaahaahaahaahaahaahaahaahaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaazGazGazGazGazGazGazGazGazGazGazGazGazGazGazGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaALaALdGkaDxaDxaDxaDxaDxdFPbqpaALaJJaKIaKIaKJaKIaKKaKLaKMaKNaKOaKPaKQaJQaKRaKSaKTaKUaKVaKWaKXaFaaKYaKZaFaaLaaLbaLcaLdaLeaLfboJaLhaLiaLjaLkaLlboJaLmaLmaLmaLmaLnaFhaahaahatNaLoaLpaLqaLraLsaLtcOJaLvcOuaLxaFmaLyaxmaxdaFoaLzaLAaJkaJkaLBaFoahyaCjaLCaLDaGDaLEaLFaLGaHYaHYaHYaHYaHYaHYaHYaHYaHYaHYaLHaLIaIbaIcaLJaFpaLLaLLaLLaLMaLNaLOaLLaLLaLLaLQaLRaJAaKBaKCaKCaKCaKCaKCaKCaKCaKDaGRaJEaDtaFJaDtaahaDtaDtaDtaDtaDtaahaahaahaahaahaahaahaahaahaahaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaazGazGazGazGazGazGazGazGazGazGazGazGazGazGazGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaALaALdGmaDxaDxdGndGoaDxdFPbsdaALaJJaLUaKIaKIaKIaLVaLWaLXaLYaLZaMaaMbaMcaMdaKSaKSaMeaMfaMgaMhaFaaMiaMjaFaaMkaMlaMmaEAaMoaMpaLmaMqaMraMsaMtaLmaLmaMsaLmaLmaLmaLnaFhaahaahatNaMuaHNatNaFmaFmaFmaFmaFmaFmaFmaFmaMvaMwaMxaMyaMzaMAaMBaJkaMCaFoahyaCjaMDaMEaGDaMFaMGaMHaHYaHYaHYaHYaHYaHYaHYaHYaHYaHYaMIaLIaMJaEsaMKaMLaMMaMMaMMaMNaMOaMPaMMaMMaMMaMQaMRaJAaKBaKCaKCaMSaMTaMUaKCaKCaKDaGRaMVaDtaFJaDtaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaazGazGazGazGazGazGazGazGazGazGazGazGazGazGazGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaALaALdGmaDxaDxdGqdGraDxdFPdGsaALaJJaNcaNdaNeaNeaNeaNfaNgaNhaNiaNjaNkaNlaNmaNnaNoaNpaNqaNraNsaFaaNtaNuaFaaNvaNwaFaaNxaNyaFaaLmaNzaNAaNBaNCaNDaNEaNFaNEaLmaNGaFhaFhaahaahatNaNHaNIatNaahaNJaNKaNLaNMaNNaNOaNPaxlaxmawnaFoaNQaNRaJkaJkaNSaFoahyaCjaNTaNUaNVaNWaNXaNYaHYaHYaHYaHYaHYaHYaHYaHYaHYaHYaMIaLIaNZaOaaObaOcaOdaOdaOdaOeaOdaOfaOdaOgaOdaOhaOiaOjaKBaKCaKCaOkaOlaOmaKCaKCaKDaGRaOnaDtaOoaDtaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaazGazGazGazGazGazGazGazGazGazGazGazGazGazGazGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaALaALdGtaDxaJGaDxaDxaDxdGvdGuaALaJJaLUaOvaOwaOwaOxaOyaOzaOAaOBaOCaODaOEaOFaMdaOGaOHaKSaOIaOJaOKaOLaOMaFaaONaOOaOPaLmaLmaOQaLmaORaFhaOSaOTaOTaOUaFaaFaaOVaFaaFaaahaahaahatNatNaNIatNaahaNJaOWaOXaOYaOZaOXaPaaxlaxmawnaJjaJkaPbaPcaJkaKuaFoahyaCjaPdaPeaGDaPfaPgaLGaHYaHYaHYaHYaHYaHYaHYaHYaHYaHYaHZaPhaLIaIcaPiaPjaPlaPlaPlaPmaPnaPoaPlaPpaPlaPraPsaJAaKBaKCaKCaKCaKCaKCaKCaKCaKDaGRaJEaDtaPtaDtaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaazGazGazGazGazGazGazGazGazGazGazGazGazGazGazGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaALaALaALdGwaDxaDxaDxaDxaDxaALaALaJJaKIaPxaKIaKIaKIaPyaPzaPAaPBaPCaPDaJQaKVaPEaPFaPFaPFaPGaPHaPIaPJaPKaPLaPMaPNaPOaPNaPPaPQaPNaPRaPSaKxaPUaPTaPWaFaaPXaPYaPZaFaaahaahaahaahatNaHNatNaahaNJaQaaOXaQbaQcaQdaQeaQfaQgaQhaKraJkaQiaJmaJnaQjaFoahyaCjaPdaCjaGDaGDaGDaGDaHYaHYaHYaHYaHYaHYaHYaHYaHYaHYaJqaKvaLIaIcaQmaQlaLPaQnaQnaQoaQnaQnaQpaQqaPkaLQaQsaJAaKBaKCaKCaKCaKCaKCaKCaKCaKDaGRaKEaDtaOoaDtaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaazGazGazGazGazGazGazGazGazGazGazGazGazGazGazGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaALaALaALbtpbtobtobtraALaALaahaJJaJJaPxaKIaQtaQuaQvaLXaQwaQxaQyaQzaJQaQAaQBaQCaKSaQCaQDaQEaFhaFhaFhaFhaQFboJaQGaQHaQHaMtaLmaQIaQJaPNaPPaQKaQLaFaaQMaPYaQNaFaaahaahaahaahatNaHNatNaahaNJaNJaQOaOXaQPaQQaNPawnaxmaQRaFoaJkaJkaHVaQSaFoaFoahyaCjaPdaCjaahaahaGDaQTaHYaHYaHYaHYaHYaHYaHYaHYaHYaHYaJqaQUaQVaDraQWaClaQnaQnaQXaQYaQZaQnaQnaRaaQnaQnaRbaJAaRcaRdaRdaRdaRdaRdaRdaRdaReaGRaJEaDtaFJaDtaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaazGazGazGazGazGazGazGazGazGazGazGazGazGazGazGazGazGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaahahyaRfaRfaRfaRfaRfaRfaRfaRfaRfaRfaRfaRfaahaahaahaALaALaALaALaALaALaALaALaahaahaRgaRhaRgaRgaJJaJJaJJaJJaJJaJJaJJaRiaRiaRiaPqaRkaPqaRiaRiaRiaahaahaFhaFhaRlaRmaPVaRoaRpaRqaRraPSaKxaRsaRnaRuaFhaFaaFaaRvaFaaahaahaahatNatNaHNatNaahaahaNJaNJaRwaRxaRyaPaawnaxmaRzaFoaRAaRBaGCaFoaFoahyahyaCjaPdaCjaahaahaGDaHXaHYaHYaHYaHYaHYaHYaHYaHYaHYaHYaLHaIaaLIaIcaRCaClbZuaREaRFaRGaQZaQnaRHaRGaRIaQnaRbaRJaRKaRKaRKaRKaRKaRKaRKaRKaRKaRLaGRaRMaRNaDtaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaazGazGazGazGazGazGazGazGazGazGazGazGazGazGazGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaALaALaALdGwaDxaDxaDxaDxaDxaALaALaJJaKIaPxaKIaKIaKIaPyaPzaPAaPBaPCaPDaJQaKVaPEaPFaPFaPFaPGaPHaPIaPJaPKaPLaPMaPNaPOaPNaPPaPQaPNaPRaPSaKxaPUaPTaPWaFaaPXaPYdGLaFaaahaahaahaahatNaHNatNaahaNJaQaaOXaQbaQcaQdaQeaQfaQgaQhaKraJkaQiaJmaJnaQjaFoahyaCjaPdaCjaGDaGDaGDaGDaHYaHYaHYaHYaHYaHYaHYaHYaHYaHYaJqaKvaLIaIcaQmaQlaLPaQnaQnaQoaQnaQnaQpaQqaPkaLQaQsaJAaKBaKCaKCaKCaKCaKCaKCaKCaKDaGRaKEaDtaOoaDtaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaazGazGazGazGazGazGazGazGazGazGazGazGazGazGazGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaALaALaALbtpbtobtobtraALaALaahaJJaJJaPxaKIaQtaQuaQvaLXaQwaQxaQyaQzaJQaQAaQBaQCaKSaQCaQDaQEaFhaFhaFhaFhaQFboJaQGaQHaQHaMtaLmaQIaQJaPNaPPaQKaQLaFaaQMaPYaQNaFaaahaahaahaahatNaHNatNaahaNJaNJaQOaOXaQPaQQaNPawnaxmaQRaFoaJkaJkaHVaQSaFoaFoahyaCjaPdaCjaahaahaGDaQTaHYaHYaHYaHYaHYaHYaHYaHYaHYaHYaJqaQUaQVaDraQWaClaQnaQnaQXaQYaYSaQnaQnaRaaQnaQnaRbaJAaRcaRdaRdaRdaRdaRdaRdaRdaReaGRaJEaDtaFJaDtaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaazGazGazGazGazGazGazGazGazGazGazGazGazGazGazGazGazGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaahahyaRfaRfaRfaRfaRfaRfaRfaRfaRfaRfaRfaRfaahaahaahaALaALaALaALaALaALaALaALaahaahaRgaRhaRgaRgaJJaJJaJJaJJaJJaJJaJJaRiaRiaRiaPqaRkaPqaRiaRiaRiaahaahaFhaFhaRlaRmaPVaRoaRpaRqaRraPSaKxaRsaRnaRuaFhaFaaFaaRvaFaaahaahaahatNatNaHNatNaahaahaNJaNJaRwaRxaRyaPaawnaxmaRzaFoaRAaRBaGCaFoaFoahyahyaCjaPdaCjaahaahaGDaHXaHYaHYaHYaHYaHYaHYaHYaHYaHYaHYaLHaIaaLIaIcaRCaClbZuaREaRFaRGaYSaQnaRHaRGaRIaQnaRbaRJaRKaRKaRKaRKaRKaRKaRKaRKaRKaRLaGRaRMaRNaDtaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaazGazGazGazGazGazGazGazGazGazGazGazGazGazGazGazGazGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaROaRPaRPaRPaRPaRPaRPaRPaRPaRPaRQaRfaahaahaahaahaALaALaALaALaALaALaahaahaahaRgaRRaRSaRTahyahyahyahyahyahyahyahyahyaRUaRVaRVaRVaRUahyahyaahaahaahaFhaFhaRWaRXaRXaRYaFhaFhaFhaFhaFhaFhaFhaFhaahaFaaRZaFaaahaahaahatNaSaaSbatNaahaahahyaNJaNJaNJaNJaNJaScaSdawnaFoaFoaFoaFoaFoahyahyahyaCjaPdaCjaCjaahaGDaGDaGEaGFaGFaGFaSeaGFaGFaGFaGFaGHaGDaGIaSfaGKaGLaClaQnaQnaSgaShaSiaSjaSkaSlaSmaSjaRbaSnaGRaGRaGRaGRaGRaGRaGRaGRaGRaGRaGRaDtaFJaDtaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaazGazGazGazGazGazGazGazGazGazGazGazGazGazGazGazGazGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaROaRPaSoaSpaSqaSraSsaStaSoaSuaSvaSwaRfaahaahaahaahaahaahaahaahaahaSxaSxaSxaSxaSxaSyaSzaRTahyahyahyahyahyahyahyahyahyaSAaSBaSCaSDaSAahyahyaahaahaahaahahyahyahyahyahyahyahyahyahyahyahyaahaahaahaFaaFaaFaaahaahaahatNaSEaSFatNaahaahahyahyahyahyahyaSGawnaxmawnaSGahyahyahyahyahyahyahyaCjaSHaSIaCjaahaahahyahyahyahyahyahyahyahyahyahyahyaDoaFqaSJaFsaFtaClaRDaSKaSLaSMaSNaQnaRHaSOaRIaQnaSPaGRaFCaSQaSRaFFaSSaFFaSTaSQaFCaSUaEvaDtaOoaDtaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaazGazGazGazGazGazGazGazGazGazGazGazGazGazGazGazGazGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaSVaSWaSXaSXaSXaSXaSXaSXaSXaSYaSvaSwaRfaahaahaahaahaahaahaahaahaahaSxaSZaTaaTbaTcaTdaTeaRTahyahyahyaTfaTgaThaTiaTfahyaTjaTkaTlaTkaTjahyahyaahaahaahaahaahahyahyahyahyahyahyahyahyahyahyahyaahaahaahaahaahaahaahaahatNaHNaTmatNaahaahahyahyahyahyahyaTnawnaxmawnaTnahyaToaTpaTqaTraToahyaCjaPdaDnaCjaahaahahyahyahyahyahyahyahyahyahyahyahyaEpbdHaLIaIcaLJaClaQnaQnaQnaQnaQnaQnaQnaQnaQnaQnaEvaEvaEvaEvaEvaEvaEvaEvaEvaEvaEvaEvaEvaTtaOoaDtaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa @@ -9920,51 +9979,51 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaazGazGazGazGazGazGazGazGazGazGazGazGazGazGazGazGazGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaahaahaahaahaahaRfaVDaVEaVFaVGaVHaVIaVJaVKaVLaVMaVNaVOaVPaVQaVKaVKaVRaVSaVTaVKaVUaVKaVPaVVaVWaVVaVRaVKaVXaVYaVZaIxaVYaVYaWbaWcaWdaWeaWdaWfaWbaWdaWdaWdaWgaWhaWdaWdaWiaWdaWdaWfaWcaWdaWdaWaaWbaWdaWjaWcaWbaWqaWdaWgaWdaWkaWhaWlaWdaWbaWdaWiaWdaWcaWdaWdaWmaWdaWfaWnaTkaTkaViaWoaWpbhcaWraWsaWtaWuaWvaWuaWwaWuaWuaWuaWuaWxaWyaWuaObaWuaWuaWuaWzaWAaWAaWAaWBaWCaWDaWDaWFaWEaWIaWHdljdljdmoaWGaWGaWGaWGaWGaWGaWGaWGaWGaWGaWGaWGaWGaWGaWGaWGaWJaDtaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaazGazGazGazGazGaaaazGazGazGazGazGaaaazGazGazGazGazGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaahaahaahaahaahaRfaWKaWLaWMaWNaWLaWOaWPaUNaWQaUNaWRaUNaWSaUNaWTaWUaWVaWWaWXaWYaWZaXaaXbaXcaXdaXeaXfaXgaXhaXiaXjaXkaXlaXmaXnaXmaXmaXmaXmaXoaXnaXmaXmaXpaXmaXqaXmaXmaXraXmaXmaXsaXtaXuaXmaXvaXnaXwaXxaXyaXzaXyaXyaXyaXAaXBaXCaXDaXEaXFaXGaXHaXmaXIaXtaXJaXKaTkaXLaTkaTkaTkaViaUvaXMaXNaXOaXPaXQaXRaXSaLIaLIaXTaLIaLIaXVaSfaXWaLIaLJaLIaXXaLIaXYaXZaXVaXUaYaaYbaLIaLIaUyaDtaYcaYdaYeaDtdBTaDtaDtaDtaDtaDtaDtaDtaDtaDtaDtaDtaDtaDtaDtaDtaDtaDtaDtaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaazGazGazGazGazGaaaazGazGazGazGazGaaaazGazGazGazGazGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaahaahaahaahaahaRfaRfaYfaYgaYhaYiaYjaRfaRfaRfaRfaYkaYlaYmaRfaUIaUIaUIaUIaUIaUIaUbaYnaYnaYnaUcaUIaUIaYhaTfaYoaYpaYqaYraYsaTfaYtaTkaTkaTkaYuaTfaTfaTfaTfaTfaTfaYvaYwaUgaYxaYvaTfaTfaTfaTfaTfaTfaYyaYzaYAaTfaUqaYBaUraTfaTfaUqaYBaUraTfaYCaYDaYEaTfaUqaYBaUraTfaTfaUqaYBaUraToaRjaYGaYHaUwaYIaToaClaYJaYKaYLaClaYJaYKaYLaClaClaClaYMaUAaClaClaClaClaClaClaUAaYNaUAaClaClaDtaDtaDtaDtaDtdEfdEadEjdEgdEmdEkdEkdEndEoaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaazGazGazGazGazGaaaaaaaaaaaaaaaaaaaaaazGazGazGazGazGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaahaahaahaahaahaahaahaRfaRfaRfaRfaRfaRfaRfaahaahaRfaYOaYOaYOaRfaahaahaahaahaYPaYQaYRaYRaYRaYRaYRaYSaYPahyaTfaTfaYTaYUaYVaTfaTfaTfaYWaYXaYYaTfaTfaahaahaahaahaahaYZaZaaZbaZcaYZaahaahaahaahaahaTfaZdaZeaZdaTfahyahyahyahyahyahyahyahyaZfaZgaZhaZiaZfahyahyahyahyahyahyahyahyaToaToaZjaZkaZlaToaToahyahyahyahyahyahyahyahyahyahyaClaYMaUAaClaahaahaahaahaZmaZmaZnaZmaZmaahaahaahdEodEqdEpdEvdEtdExdEwdEtdEydEydEzdEoaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaazGazGazGazGazGaaaaaaaaaaaaaaaaaaaaaazGazGazGazGazGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaahaahaahaahaahaahaahaRfaRfaRfaRfaRfaRfaRfaahaahaRfaYOaYOaYOaRfaahaahaahaahaYPaYQaYRaYRaYRaYRaYRbewaYPahyaTfaTfaYTaYUaYVaTfaTfaTfaYWaYXaYYaTfaTfaahaahaahaahaahaYZaZaaZbaZcaYZaahaahaahaahaahaTfaZdaZeaZdaTfahyahyahyahyahyahyahyahyaZfaZgaZhaZiaZfahyahyahyahyahyahyahyahyaToaToaZjaZkaZlaToaToahyahyahyahyahyahyahyahyahyahyaClaYMaUAaClaahaahaahaahaZmaZmaZnaZmaZmaahaahaahdEodEqdEpdEvdEtdExdEwdEtdEydEydEzdEoaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaZoaZpaZqaZraZoaahaahaahaahaYPaZsaZtaZuaZvaZwaZxaYRaYPahyahyaZyaZzaZAaZBaZyahyaTfaUiaThaTiaTfaahaahaZCaZCaZCaZCaZDaZDaZEaZDaZDaZFaZFaZFaZFaahaZdaZGaZHaZdahyahyahyahyaZIaZJaZKaZLaZIaZIaZMaZNaZOaZIaZIaZJaZKaZLaZIahyahyahyahyaZPaYGaYHaUwbaAaZRaZRaZSaZTaZUaZRaZSaZTaZUaZRaZRaZRaZVaZRaZRaahaahaahaahaahaZmaZWaZXaZmaahaahaahdEodEBdEAdEDdECdEFdEEdEHdEGdFfdEIdEoaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaZoaZYaZZbaaaZoaahaahaahaahaYPbabbacbadbaebafbagbahaYPahyahybaibajbakbalbamahyahyahyahyahyaahaahaahaZCbanbaobapaZDbaqbarbasaZDbatbaubavaZFaahaZdaZGbaxaZdahyahyahybayaZLbKzaYFaTHbaCbKMbaEbaFbaGbaHbaIbawbazbhAaZJbaMahyahyahybaNaYGaYHaUwbdwbaLbaBbaPbaObaRbaQbaPbaSbaRbaTbaWbaVbcPbaXaZRaZRaahaahaahaahaZmbbbbbcaZmaahaahaahdEodFhdFgdFjdFidFkdEvdEtdEtdFpdFldEoaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbdaaaaaabbdaaaaaaaaabbdaaaaaaaaaaaaaaabbdaaaaaaaaabbdaaaaaabbdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaZobbebbfbbgaZoaahaahaahaahaYPbbhbacbbibbjbbkbagbblaYPbbmbbnbbobbpbbqbbrbamahyahyahyaahaahaahaahaahaZCbbsbbtbbubbvbbwbbxbbybbzbbAbbBbbCaZFaahaZdaZdaZHaZdahyahybaybbDbbEbMcbfMbdCbdCdCqbbGbbHbbGbgHccSblCdCpbbLbbEbbMbaMahyahybbNbbObbPbbQbbRbbabaYbbTbbSbbTbbUbbWbbVbbWbcabcIbbXbbYbbZbcJaZRaahaahaahaahaZmaZWbcbaZmaahaahaahdEodFYdFXdGldFZdGpdEkdEkdEkdEkdGxdEoaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbdbbdbbdbbdaaaaaaaaabbdbbdbbdbbdbbdbbdbbdaaaaaaaaabbdbbdbbdbbdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaZobccbcdbceaZoaahaahaahaahaYPbcfbcgbchbchbchbcibchbcjbckbclbclbcmbcnbcobamahyahyaahaahaahaahaahaahaZCbcpbcqbcraZDbcsbctbcuaZDbcvbcwbcxaZFaahaahaZdaZHaZdahyaZIbcybbEbbFbfMdCqbbGbbGbczbcAbcBbcCbcDbbGbbGbgHdCrbbLbbEbcyaZIahyaTobcEbcFbcGbcHbcLbcKbcNbcMbcNbcQbdzbdybdzdCsbdDbcObaZdCtbdEaZRbcRbcRbcRbcRaZmbcSbcTaZmaahaahaahdEodGzdGydGAdEtdGBdEtdEtdEtdEtdGCdEoaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbdaaaaaabbdaaaaaaaaabbdaaaaaaaaaaaaaaabbdaaaaaaaaabbdaaaaaabbdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaZobbebbfdGNaZoaahaahaahaahaYPbbhbacbbibbjbbkbagbblaYPbbmbbnbbobbpbbqbbrbamahyahyahyaahaahaahaahaahaZCbbsbbtbbubbvbbwbbxbbybbzbbAbbBbbCaZFaahaZdaZdaZHaZdahyahybaybbDbbEbMcbfMbdCbdCdCqbbGbbHbbGbgHccSblCdCpbbLbbEbbMbaMahyahybbNbbObbPbbQbbRbbabaYbbTbbSbbTbbUbbWbbVbbWbcabcIbbXbbYbbZbcJaZRaahaahaahaahaZmaZWbcbaZmaahaahaahdEodFYdFXdGldFZdGpdEkdEkdEkdEkdGxdEoaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbdbbdbbdbbdaaaaaaaaabbdbbdbbdbbdbbdbbdbbdaaaaaaaaabbdbbdbbdbbdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaZobccbcdbceaZoaahaahaahaahaYPbcfbcgbchbchbchbcibfvbcjbckbclbclbcmbcnbcobamahyahyaahaahaahaahaahaahaZCbcpbcqbcraZDbcsbctbcuaZDbcvbcwbcxaZFaahaahaZdaZHaZdahyaZIbcybbEbbFbfMdCqbbGbbGbczbcAbcBbcCbcDbbGbbGbgHdCrbbLbbEbcyaZIahyaTobcEbcFbcGbcHbcLbcKbcNbcMbcNbcQbdzbdybdzdCsbdDbcObaZdCtbdEaZRbcRbcRbcRbcRaZmbcSbcTaZmaahaahaahdEodGzdGydGAdEtdGBdEtdEtdEtdEtdGCdEoaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbdbbdbbdbbdaaaaaabbdbbdbbdbbdbbdbbdbbdbbdbbdaaaaaabbdbbdbbdbbdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaZoaZpbcUaZoaZoaahaahaahaahaYPbcVbcWbcXbcYbcZbdabdbbdcbddbdebdebdfbdgbdhbaiahyahyaahaahaahaahaahaahaZCbdibdjbdkbdlbdlbdmbdlbdlbdnbdobdpaZFaahaahaZdaZHaZdahybdqbaJbbFbfMdCqbbGbbGbbGbbGbbGbbGbbGbbGbbGbbGbbGbgHdCrbdsbaKbdqahyaTobdubdvaUwbdwbaLbdFbfkbdGbLZbdIbWObNGbiVbYuaZRccRcsWdCucwuaZRbdJbdKbdLbcRbdMbdNbdOaZmaahaahaZmaZmaZmaZmdGDaZmaZmaZmaZmdEtdGEdFldEoaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbdbbdbbdbbdaaaaaabbdbbdbbdbbdbbdbbdbbdbbdbbdaaaaaabbdbbdbbdbbdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahbdPbdPbdPbdPbdPbdQbdRbdSbdTaahaahaahaahaYPaRtbdVbdWbdXbdYbdXbdZbeabebbecbecaZzbcnbedbeebefbefbefbefbefaahaahaahaZCaZCaZCaZCbdlbegbehbeibdlaZFaZFaZFaZFaahaahaZdaZHaZdahybejbiHbfMdCqbbGbelbbGbembenbbGbbGbbGbeobepbbGbelbbGbgHdCvbiFbejahyaZPbesbetaUwaToaZRaZRaZRaZRaZRaZRaZRaZRaZRaZRaZRaZRaZRaZRaZRaZRbeubevbewbcRbdMbdNbdOaZmaahaZmaZmbexbeybdOaZWbdObezbeAaZmaZmdGFdGFdEoaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbbdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahbdPbeBbeCbeDbdPbeEbeFbeGbdTaahaahaahaahaYPaYPbeHbeIbeJbeKbeLaYPaYPbbmbbnbbobeMbcnbeNbeebeObePbeQbeRbefaahaahaahaahaahbdlbdlbeSbeTbeUbeTbeSbdlbdlaahaahaahaahaZdaZHaZdahybcybiHdCwbeqbbGbbGbeVbeWbbGbbGbbGbbGbbGbeXbepbbGbbGbbGdCxbiFbcyahybaNbbObetbeYaToaahaahbeZbeZbfaaFLbeZbfcbfdbfebffbfgbfhbfibfjbcRbkhbevbevbflbdMbdNbfmaZmaZmaZmbfnbfobfobfodGGbfobfobfobfpaZmaZmaZmaZmaZmaZmaZmaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbbdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahbdPbfqbfrbfsbdPbftbfubfvbdTaahaahaahaahaahaYPaYPbfwbfxbfyaYPaYPahyahyahybfzbfAbcnbfBbeebfCbfDbfEbfFbefbefaahaahaahaahbdlbfGbeTbfHbfIbfJbeTbfKbdlaahaahaahaahaZdaZHaZdahyaZIbfLdCybbJbbGbeVbfNbfObbGdCzdCzdCzbbGbjlbfPbfQbbGbbGdCAbfSaZIahybbNaYGbetaUwaToaahaahbeZbfTbfUbfVbfWbfXbfYbfZbfZbgabgbbgcbgdbgebgfbggbghbcRbdMbgibfobfobfobfobgjbgkbgkbgkbgkbgkbgkbgkbglbfobfobfobfobfobfpaZmaZmaahaahaahaahaahaahbgmbgmbgmbgmbgmbgmbgmaahaahaahaahaahaahaahaahaahaahaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbdbbdbbdbbdaaaaaabbdbbdbbdbbdbbdbbdbbdbbdbbdaaaaaabbdbbdbbdbbdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahbdPbdPbdPbdPbdPbdQbdRbdSbdTaahaahaahaahaYPaRtbdVbdWbdXbdYbdXbdZbeabebbecbecaZzbcnbedbeebefbefbefbefbefaahaahaahaZCaZCaZCaZCbdlbegbehbeibdlaZFaZFaZFaZFaahaahaZdaZHaZdahybejbiHbfMdCqbbGbelbbGbembenbbGbbGbbGbeobepbbGbelbbGbgHdCvbiFbejahyaZPbesbetaUwaToaZRaZRaZRaZRaZRaZRaZRaZRaZRaZRaZRaZRaZRaZRaZRaZRbkjbevbuJbcRbdMbdNbdOaZmaahaZmaZmbexbeybdOaZWbdObezbeAaZmaZmdGFdGFdEoaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbbdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahbdPbeBbeCbeDbdPbeEbeFbeGbdTaahaahaahaahaYPaYPbeHbeIbeJbeKbeLaYPaYPbbmbbnbbobeMbcnbeNbeebeObePbeQbeRbefaahaahaahaahaahbdlbdlbeSbeTbeUbeTbeSbdlbdlaahaahaahaahaZdaZHaZdahybcybiHdCwbeqbbGbbGbeVbeWbbGbbGbbGbbGbbGbeXbepbbGbbGbbGdCxbiFbcyahybaNbbObetbeYaToaahaahbeZbeZbfaaFLbeZbfcbfdbfedGObfgbfhbfibfjbcRbkhbevbevbflbdMbdNbfmaZmaZmaZmbfnbfobfobfodGGbfobfobfobfpaZmaZmaZmaZmaZmaZmaZmaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbbdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahbdPbfqbfrbfsbdPbftbfucxEbdTaahaahaahaahaahaYPaYPbfwbfxbfyaYPaYPahyahyahybfzbfAbcnbfBbeebfCbfDbfEbfFbefbefaahaahaahaahbdlbfGbeTbfHbfIbfJbeTbfKbdlaahaahaahaahaZdaZHaZdahyaZIbfLdCybbJbbGbeVbfNbfObbGdCzdCzdCzbbGbjlbfPbfQbbGbbGdCAbfSaZIahybbNaYGbetaUwaToaahaahbeZbfTbfUbfVbfWbfXbfYbfZbfZbgabgbbgcbgdbgebgfbggbghbcRbdMbgibfobfobfobfobgjbgkbgkbgkbgkbgkbgkbgkbglbfobfobfobfobfobfpaZmaZmaahaahaahaahaahaahbgmbgmbgmbgmbgmbgmbgmaahaahaahaahaahaahaahaahaahaahaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbbdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahbdPbgnbfrbgobdPbgpbgqbgrbdTaahaahaahaahahyahyahyahyahyahyahyahyahyahybbobbobgsbcnbgtbeebefbgubgvbgwbgxbefaahaahaahaahbdlbgybeTbeibgzbeibeTbgAbdlaahaahaahaZdaZdaZHaZdahyaZIbgBdCBbfRbbGbgCbbGbbGdCCbgDbgEbgFdCDbbGbbGbgCbbGbgGbgHdCEaZIaZfaTobgIbgJbgKaToaToaahbeZbgLbgMbgNbgObgPbgQbgRbgSbgTbgUbgVbgWbgXbgYbgYbgYbgYbgYbgYbgZbgZbgZbgZbgZbgkbhabhbbmzbhdbhebgkbhfbhfbhfbhfbhfbhfbglbfpaZmaahaahaahaahaahbgmbgmbhgbhhbhibhhbhjbgmbgmaahaahaahaahaahaahaahaahaahaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbbdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahbdPbhkbhlbhkbdPbhmbfubhnbhobhobhobhoaahaahaahahyahyahyahyahyahyahyahyaZybhpbajbhqbhrbhsbefbhtbgvbgwbhubefaahaahaahaahbdlbhvbeTbhwbhxbhwbeTbhybdlaahaahaahaZdaZGaZHaZdahybdqbaUdCFbbGbbGbbGbbGdCGbgDbhAbhAbhAbgFdCFbbGbbGbbGbhBbbGbhCbhDbhEbhFbhGbetaUwbhHaToaahbeZbhIbhJbgNbhKbhLbhLbhLbhLbhMbhNbgVbhObhPbgYbhQbhRbhSbhTbgYbhUbhVbhVbhWbgZbhXbhYbhYbhZbhZbhYbiabhfbibbicbidbiebhfbdOaZWaZmaahaahaahaahaahbgmbifbigbihbiibijbikbifbgmaahaahaahaahaahaahaahaahaahaahaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbbdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahyaahaahaahaahaahaahaahaahaahaahaahaahbilbilbilbilbilbilbilbilbilbimbinbiobipbeEbfubinbhobiqbirbhobhobhoaahaahahyahyahyahyahyahyahybambisaZzbitbiubdebivbiwbixbgwbhubefaahaahaahaahbdlbiybeTbizbiAbiBbeTbiCbdlaahaahaahaZdbiDaZHaZdahybejbdrdCFbbGbbGbbGbbGdCGbiFbhAbdtbhAbiHdCFbbGbbGbbGbiIbiJbiJbiKbiLbiMbiNbiObiPbiQaToaahbeZbfTbiRbiSbeZbiTbiUblObiWbiXbfhbgVbhObiYbgYbiZbjabjbbjcbgYbSjbjebjfbjgbgZbjhbjibjjbjkbpybjmbjnbhfbibbjobjpbjqbhfbjrbjsaZmaahaahaahaahaahbgmbjtbjubjvbjwbjvbjubjxbgmaahaahbgmbgmbgmbgmbgmaahaahaahaahaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbbdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahyahyahyahyahyaahaahaahaahaahaahaahaahaahaahbilbjybjzbjAbjBbjCbjDbjEbilbjFbjGbjHbjIbjJbjKbjLbhobjMbjNbjObjPbhoaahaahaahahyahyahyahyahyahybaibjQbjRbjSbhrbecbjTbjUbjVbgwbhubefaahaahaahaahbjWbjWbjWbjWbjXbjWbjWbjWbjWaahaahaahaZdbjYaZHaZdahybcybaUdCFbbGbbGbbGbbGdCGbjZbhAbhAbhAbkadCFbbGbbGbbGbkbbbGbbGbkcaZibkdaYGbetaUwbkeaToaahbeZbkfbkgblRbeZbfhbfhbfhbfhbkibfhbkjbkkbklbgYbkmbknbkobkpbgYbkqbkrbksbktbgZbkubkvbkwbkxbkybkzbkAbkBbkCbkDbkEbkFbhfbdObkGaZmaahaahbgmbgmbgmbgmbkHbkIbkHbkJbkHbkKbkHbgmbgmbgmbgmbkLbkMbkNbgmbgmaahaahaahaahaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaabbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbbdaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabkObkPbkRbkQbkSbkPbkPahyaahaahaahaahaahaahaahaahaahbilbkTbkUbkVbkWbkXbkYbkZblablbblcbldbleblfblgblhbhoblibljblkblkbhobllbllbllbllahyahyahyahyahybbobboblmblnblobeebefblpbjVbgwblqbefaahaahaahaahbjWblrblsbltblublvblwblxbjWaahaahaahaZdaZdaZHaZdahyaZIblydCwbeqbbGblzbbGbbGdCrbjZblAbkabfMbbGbbGblzbbGblBdCHdCIaZIaZfaToaZjblDaZlaToaToaahbeZblEblFblGbeZblHblIblJblKblLblMblNbhOblWbgYbgYblPblQbpabgYblSblTblUblVbgZbrKbhZbhYblXbhYbhYblYbhfblZbmabhfbmbbhfbmcaZWaZmaahbgmbgmbifbmdbkHbmebmfbmgbmhbmibmfbmgbmjbkJbmkbmlbmibmmbmgbmnbgmbgmaahaahaahaahaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbbdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahyaahaahaahaahaahaahaahaahaahaahaahaahbilbilbilbilbilbilbilbilbilbimbinbiobipbeEbfubinbhobiqbirbhobhobhoaahaahahyahyahyahyahyahyahybambisaZzbitbiubdebivbiwbixbgwbhubefaahaahaahaahbdlbiybeTbizbiAbiBbeTbiCbdlaahaahaahaZdbiDaZHaZdahybejbdrdCFbbGbbGbbGbbGdCGbiFbhAbdtbhAbiHdCFbbGbbGbbGbiIbiJbiJbiKbiLbiMbiNbiObiPbiQaToaahbeZbfTbiRbiSbeZbiTbiUblObiWbxjbfhbzjbhObiYbgYbiZbjabjbbjcbgYbSjbjebjfbjgbgZbjhbjibjjbjkbpybjmbjnbhfbibbjobjpbjqbhfbjrbjsaZmaahaahaahaahaahbgmbjtbjubjvbjwbjvbjubjxbgmaahaahbgmbgmbgmbgmbgmaahaahaahaahaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbbdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahyahyahyahyahyaahaahaahaahaahaahaahaahaahaahbilbjybjzbjAbjBbjCbjDbjEbilbjFbjGbjHbjIbjJbjKbjLbhobjMbjNbjObjPbhoaahaahaahahyahyahyahyahyahybaibjQbjRbjSbhrbecbjTbjUbjVbgwbhubefaahaahaahaahbjWbjWbjWbjWbjXbjWbjWbjWbjWaahaahaahaZdbjYaZHaZdahybcybaUdCFbbGbbGbbGbbGdCGbjZbhAbhAbhAbkadCFbbGbbGbbGbkbbbGbbGbkcaZibkdaYGbetaUwbkeaToaahbeZbkfbkgblRbeZbfhbfhbfhbfhbkibfhbALbkkbklbgYbkmbknbkobkpbgYbkqbkrbksbktbgZbkubkvbkwbkxbkybkzbkAbkBbkCbkDbkEbkFbhfbdObkGaZmaahaahbgmbgmbgmbgmbkHbkIbkHbkJbkHbkKbkHbgmbgmbgmbgmbkLbkMbkNbgmbgmaahaahaahaahaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaabbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbbdaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabkObkPbkRbkQbkSbkPbkPahyaahaahaahaahaahaahaahaahaahbilbkTbkUbkVbkWbkXbkYbkZblablbblcbldbleblfblgblhbhoblibljblkblkbhobllbllbllbllahyahyahyahyahybbobboblmblnblobeebefblpbjVbgwblqbefaahaahaahaahbjWblrblsbltblublvblwblxbjWaahaahaahaZdaZdaZHaZdahyaZIblydCwbeqbbGblzbbGbbGdCrbjZblAbkabfMbbGbbGblzbbGblBdCHdCIaZIaZfaToaZjblDaZlaToaToaahbeZblEblFblGbeZblHblIblJdGQblLblMblNbhOblWbgYbgYblPblQbpabgYblSblTblUblVbgZbrKbhZbhYblXbhYbhYblYbhfblZbmabhfbmbbhfbmcaZWaZmaahbgmbgmbifbmdbkHbmebmfbmgbmhbmibmfbmgbmjbkJbmkbmlbmibmmbmgbmnbgmbgmaahaahaahaahaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaabbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbbdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabkPbmobmpbmqbmpbmobkRahyahyaahbkPbkPbkPbkPaahaahaahbilbmrbmsbjAbmtbmubmvbmwbilbmxbfubmybdTbrebdTbrebhoblibmAbmBbmCblkbmDbmEbmFbllbmGbmHbmIbllahyahyaZyaZzbcnbhrbeebmJbmKbmLbmMbefbefaahaahaahaahbjWbmNbmObmPbmQbmPbmRbmSbjWaahaahaahaahaZdaZHaZdahyaZIbmTdCJbbJbbGbfPbfQbmUbbGbdCbdCbdCbbGbmUbeVbfNbbGbbGdCKbmVaZIahyaZPaYGaYHaUwaToaahaahbeZbmWbmXbmYbmZbnabnbbncbncbndbnebnfbngbnhbnibgYbnjbnkbnlbgYbnmbnnbnobnpbgZbnqbnrbhYbnsbhYbntbnubhfbnvbnwbhfbnxbhfbnyaZWaZmaahbgmbnzbnAbnBbnCbnDbnEbnDbnFbnDbnGbihbnHbkJbnIbnJbnKbnLbihbnMaFMbgmaahaahaahaahaahaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbbdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabnObnPbnQbnRbnRbnPbnSbnTbkPbkPbkPbnUbnVbkPbkPbkPbkPbkPbkPbkPbkPbkPbkPbkPbkPbkPbftbfubnWbdTbnXbnYbnZblkblkboabobbocblkbodboeboebofbogbohboibllahyahybamaZzbcnbojbeebmKbmKbokbolbefaahaahaahaahbjWbjWbombonboobopboqbonborbjWbjWaahaahaahaZdaZHaZdahybdqbiHdCBbfRbbGbbGbfPbfQbbGbbGbbGbbGbbGbembeWbbGbbGbbGdCxbdxbdqahybaNbbObotbouaToaahaahbeZbgLbovbgNbowboxboybozboAboBboCbgVbhOboDboEbgYboFboGboFbgYboHboIbTzboKbgZbgkboLboMbdAboLboMboOboOboOboOboOboOboOboOaZWaZmaahbgmboPboQboRbkHboSbmfboTboUboVboWbmmbmgbkHbmibmmboXboYboSboZbuPbgmaahaahaahaahaahaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbbdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabkQbmqbpbbpcbpcbmqbpdbpebpfbpgbphbpibpjbpkbplbpmbpnbpobppbpqbprbprbpsbprbptbpubpvbpwbpxbMKbpzbpzbpzbpAblkblkbpBblkblkbpCbpDbpEbpEbpEbpFbpGbllahyahybamaZzbcnbfBbeebefbefbefbefbefaahaahaahaahbjWbpHbpIbpJbpKbpLbpKbpMbpNbpObjWaahaahaahaZdaZHaZdahybejbiHdCDdCLbbGbelbbGbfPbenbbGbbGbbGbeobeWbbGbelbbGdCHdCMbdxbejahybbNaYGaYHaUwbpPahyaahbeZbpQbpRbgNbpSbpTbpUbpVbpVbpWbpXbpYbpZbqabqabqbbqcbqdbqcbqebqcbqfbqgbqhbqibqjbqkbqhbqlbqmbqnboObqoaCqbqqbqrbqsbqtboOaZWaZmaahbgmbqubqvbqwbkJbqxbqybqzbgmbqAbqBbqCbqCbqDbsnbqCbqEbqFbqGboZbqHbgmaahaahaahaahaahaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbbdaaaaaaaaaaaaaaaaaaacAacOacAacAacAacAacAacAacAacOacAacAacAacAaaaaaaacAacAacAaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabqIaadahybkQbnPbqJbpcbpcbqKbqLbqMbqNbqObqPbqQbqRbqSbqTbqUbqVbqTbqWbqXbqTbqYbqZbrabrbbrcbrdbgqbinbMNbrfbrgbpzbrhbrebribrjbrkbrlbrmbrnbrobrpbrqbrrbrsbllahyahybambrtbrubrvaZyahyahyahyahyahyahyaahaahaahbjWbjWbrwbrxbpKbpKbpKbrybrzbjWbjWaahaahaahaZdaZHaZdahybcyaTsbrBdCDdCLbbGbbGbbGbbGbbGbbGbbGbbGbbGbbGbbGdCHdCCbrCbdBbcyahyaTobrEaYHbrFbrGahyahybeZbfTblFbrHbeZbrIbrJbvUbrLbrMblMbrNbrObrPbrQbrRbrSbrTbrSbrSbrSbrUbrVbrWbrXbrYbrZbrYbsabrYbrYbsbbscaCrbsebsfbsgbsgboOaZWaZmaahbgmboPbshboRbkHbmibsibsjbskbslbmmbmmbsmbkHbuYbmmbsobspbmiboZbsqbgmaahaahaahaahaahaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbbdaaaaaaaaaaaaaaaaaaacAacOacAacAacAacAacAacAacAacOacAacAacAacAaaaaaaacAacAacAaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabqIaadahybkQbnPbqJbpcbpcbqKbqLbqMbqNbqObqPbqQbqRbqSbqTbqUbqVbqTbqWbqXbqTbqYbqZbrabrbbrcbrdbgqbinbMNbrfbrgbpzbrhbrebribrjbrkbrlbrmbrnbrobrpbrqbrrbrsbllahyahybambrtbrubrvaZyahyahyahyahyahyahyaahaahaahbjWbjWbrwbrxbpKbpKbpKbrybrzbjWbjWaahaahaahaZdaZHaZdahybcyaTsbrBdCDdCLbbGbbGbbGbbGbbGbbGbbGbbGbbGbbGbbGdCHdCCbrCbdBbcyahyaTobrEaYHbrFbrGahyahybeZbfTblFbrHbeZbrIbrJbvUbrLbEEblMbrNbrObrPbrQbrRbrSbrTbrSbrSbrSbrUbrVbrWbrXbrYbrZbrYbsabrYbrYbsbbscaCrbsebsfbsgbsgboOaZWaZmaahbgmboPbshboRbkHbmibsibsjbskbslbmmbmmbsmbkHbuYbmmbsobspbmiboZbsqbgmaahaahaahaahaahaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaabbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbbdaaaaaaaaaaaaaaaaaaacAaaaaadaaaaaaaaaaaaaadaadaaaaadaadaadaaaaadaadaadaaaacAaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabsrahyahybssbmqbstbpcbpcbmqbsubsvbswbsxbsybszbsAbkPbkPbkPbkPbkPbkPbkPbkPbkPbkPbkPbkPbkPbsBbfubsCbdTbekbsEbsFbsFbsGbsHbsIbsJbrlbsKbrnbsLbsMbsNbrrbsObsPahyahybamaZzbcnbhrbamahyahyahyahyahyahyaahaahaahaahbjWbsQbrxbsRbsSbsTbsUbsQbjWaahaahaahaahaZdaZHaZdahyaZIbdqbbEbsVdCDdCLbbIbbJbbKbbGbbGbbGbbIbbJbbKdCHdCCbrCbbEbdqaZIahyaZPaYGbetaUwbrGahyahybeZbeZbsWbeZbeZblMblMblMbsXbsXbsXbsXbsYbsZbsXbsXbtabtbbtcbtdbtdbtebtfbtbbtgbthbtibtjbtkbtlbtmboObtnaCsaCuaCtaCuaDwboOaZWaZmaahbgmbtsbttbnBbtubnDbtvbnDbtwbmmbtxbmmbtybkJbyTbijbtzbtAbtBbtCbtDbgmaahaahaahaahaahaahaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbbdaaaaaaaaaaaaaaaaaaacAaaabtEbtFbtGaaabtEbtFbtGaaabtEbtFbtGaaabtEbtFbtGaaaacAaadaadaaaaaaaaaaaaaaaaaabtHbtIbtJbtKaaaaaabtLbtMbtNbtLbtLbtObnPbnQbtPbtQbnPbtRbnTbkPbkPbkPbtSbnTbkPaahaahaahaahaahaahaahaahaahaahaahbdTbtTbtUbtVbMKbtWbtXbtYbpzbtZbeEbuabubbucbudbuebufbufbufbugbuhbuiahyahybamaZzbcnbhrbamahyahyahyahyahyaahaahaahaahaahbjWbujbukbulbumbukbukbujbjWaahaahaahaahaZdaZHaZdahyahybbMbaMbbEbsVdCDdCNdCPdCOdCzdCzdCzdCNdCPdCOdCCbrCbbEbaybbDahyahybaNbdubdvbunbrGahyahybuoberbuqburbusbutbuubuvbsXbuwbuxbuybuzbuAbuBbuCbuDbuEbuFbuGbuHbuIbtfbuJbuKbuLbuMbuNbuObuLbuNboObwxbuQbuRbuSbuTbuUboOaZWaZmaahbgmbgmbifbuVbkHboSbuWbmmbmfbmmbmmbtCbuXbkJbCQbwubuZbvabsmbvbbgmbgmaahaahaahaahaahaahaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbdbbdbbdbbdbbdbbdbbdbbdbbdaaaaaaaaaaaaaaaaaaaaaaaaacAaadbtEbvcbtGaadbtEbvcbtGaadbtEbvcbtGaadbtEbvcbtGaadacOaaaaadaadaaaaaaaaaaaaaaabtHbtHbvdbvebtHbvfbvgbvhbvibvjbvkbkPbmobmpbmqbmpbmobkRahyahyahyahyahyahyahyaahaahaahaahaahaahaahaahaahaahaahbdTbvlbvmbvnbMNbvobvpbvqbvrbMKbvsbvtbvubvvbvwbvxbvybvzbvAbvBbvCbllahyahybaiaZzbMObhrbaiahyahyahyaahaahaahaahaahaahaahbjWbjWbjWbvDbjWbjWbjWbjWbjWaahaahaahaahaZdaZHaZdahyahyahybbMaZLbaJbgEbgEbvGbvHbiEbhzbiEbvKbvLbgEbgEbiGaZJbbDahyahyahybbNaYGbRLaUwbvNahyahybvObosbuqbvQboNbvSbvTbxbbsXbvVbvWbvXbvYbvYbvZbwabwbbwcbwdbwebwebwfbwgbwhbwibwjbwkbwlbwmbwnbwoboObwpbwqbwrbtqbwsbwtboOaZWaZmaahaahbgmbgmbgmbgmbAQbwvbwwbmfbyUbwybwzbkJbkJbGRbkJbwAbwBbwCbgmbgmaahaahaahaahaahaahaahaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbdbbdbbdbbdbbdbbdbbdaaaaaaaaaaaaaaaaaaaaaaaaaaaacAaaabtEbvcbtGaaabtEbvcbtGaaabtEbvcbtGaaabtEbvcbtGaaaaadaaaaaaaadaadaaaaaaaaaaaabtHbwDbwEbwFbtHbwGbwHbwIbwJbwKbwLbkObkPbkRbkQbkSbkPbkPaahaahahyahyahyahyahyahyaahaahbwMbwMbwMbwMbwMbwMbwMbwMbwMbwNbwObwPbdTbrAbwRbwSbwTbMNbwUbuabsCbucbwVbwWbwXbllbwYbwZbwYbllahybeebeeblmblnblobboahyahyaahaahaahaahaahaahaahaahaahaahaahbxaaahaahaahaahaahaahaahaahaZdaZdaZHaZdaZdahyahyahyaZIaZJaZKaZLaZIaZIaZJaZKaZLaZIaZIaZJaZKaZLaZIahyahyahyahyaToaZjblDaZlaToaToahybxcbxdbxebvSbxfbxgbxhbxibsXbxjbxkbxlbxmbvYbvYbxnbqhbxpbxqbthbthbxrbtfbxsbxtbxubxvbxwbxxbADbvRboOboOboOboObxAboOboOboOaZWaZmaahaahaahaahaahbgmbxBbxCbkJbxDbkJbxBbxEbkJbxFbxGbkJbxHbxIbkJbgmaahaahaahaahaahaahaahaahaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacAaaabtEbvcbtGaaabtEbvcbtGaaabtEbvcbtGaaabtEbvcbtGaaaaadaaaaaaaaaaadaadaaaaaaaaabtHbxJbxKbxLbtHdDfbxMbxNbxObxPbxQbtLaahaahaahahyahyaahaahahyahyahyahyaahaahaahaahbwMbwMbxRbxSbxTbxUbxVbxWbxXbwMbxYbxZbyabdTbybbycbydbyebdTbyfbuabygbyhbyhbyhbyhbyhbyibyjbykbyhbfzbeebylaZzbcnbymbboaZdaahaahaahaahaahaahaahaahaahaahaahaahbxaaahaahaahaahaahaahaahaZdaZdaZGaZHaZGaZdaZdahyahyahyahyahyahyahyahyahyahyahyahyahyahyahyahyahyahyahyahyaZdaTobbObynbiPbyoaTobypbyqbyrbysbytbyubyvbywbyxbyybyzbyAbyBbyCbvYbxobsXbyEbtbbyFbyGbyHbyIbyJbyKbyLbyMbyNbxybyPbyQbyRbySbIxbCLbyVbyWbyXbyYbySaZWaZmaahaahaahaahaahbgmbyZbzabzbbzcbzdbzebzfbzgbzhbzibkJbzjbzkbzlbgmaahaahaahaahaahaahaahaahaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacAacAacAaadaaabtEbvcbtGaaabtEbvcbtGaaabtEbvcbtGaaabtEbvcbtGaaaaadaaaaaaaaaaaaaadbzmbznbznbznbznbzobtHbtHbtLbzpbzqbzrbzsbztbtLaahaahaahaahahyahyahyahyahyahyaahaahaahaahaahbwMbzubzvbzwbzxbzybzzbzAbzBbzCbzDbzEbzFbzGbzHbzIbzJbzKbzLbzMbzNbzObzPbzQbzRbzSbzPbzTbzUbzVbzWbzXbzYbecbajbhqbhrbzZaZdaZdaZdaZdaZdaZdaZdaZdaZdaZdaahaahaahbxaaahaahaZdaZdaZdaZdaZdaZdbAabAbbAcbAdaZGaZdaZdaZdaZdaZdaZdaZdaZdaZdaZdaZdaZdaZdaZdaZdaZdaZdaZdaZdaZdaZdaZdbAebAfbAgbAhaUvbAibAjbAkbvSbAlbvSbAmbxgbAnbAobuCbApbAqbArbAsbAtbAubuCbAvbAwbqmbAxbAxbAybtfbAzbwibAAbABbACbADbAEbAFbySbAGbAHbAIbyWbyWbAJbySbAKaZmaahaahaahaahaahbgmbgmbALbAMbANbAObAPcBYbARbASbATbAUbAVbAWbAXbgmaahaahaahaahaahaahaahaahaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbbdaaaaaaaaaaaaaaaaaaacAaaabtEbtFbtGaaabtEbtFbtGaaabtEbtFbtGaaabtEbtFbtGaaaacAaadaadaaaaaaaaaaaaaaaaaabtHbtIbtJbtKaaaaaabtLbtMbtNbtLbtLbtObnPbnQbtPbtQbnPbtRbnTbkPbkPbkPbtSbnTbkPaahaahaahaahaahaahaahaahaahaahaahbdTbtTbtUbtVbMKbtWbtXbtYbpzbtZbeEbuabubbucbudbuebufbufbufbugbuhbuiahyahybamaZzbcnbhrbamahyahyahyahyahyaahaahaahaahaahbjWbujbukbulbumbukbukbujbjWaahaahaahaahaZdaZHaZdahyahybbMbaMbbEbsVdCDdCNdCPdCOdCzdCzdCzdCNdCPdCOdCCbrCbbEbaybbDahyahybaNbdubdvbunbrGahyahybuoberbuqburbusbutbuubuvbsXbuwbuxbuybuzbuAbuBbuCbuDbuEbuFbuGbuHbuIbtfbHXbuKbuLbuMbuNbuObuLbuNboObwxbuQbuRbuSbuTbuUboOaZWaZmaahbgmbgmbifbuVbkHboSbuWbmmbmfbmmbmmbtCbuXbkJbCQbwubuZbvabsmbvbbgmbgmaahaahaahaahaahaahaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbdbbdbbdbbdbbdbbdbbdbbdbbdaaaaaaaaaaaaaaaaaaaaaaaaacAaadbtEbvcbtGaadbtEbvcbtGaadbtEbvcbtGaadbtEbvcbtGaadacOaaaaadaadaaaaaaaaaaaaaaabtHbtHbvdbvebtHbvfbvgbvhbvibvjbvkbkPbmobmpbmqbmpbmobkRahyahyahyahyahyahyahyaahaahaahaahaahaahaahaahaahaahaahbdTbvlbvmbvnbMNbvobvpbvqbvrbMKbvsbvtbvubvvbvwbvxbvybvzbvAbvBbvCbllahyahybaiaZzbMObhrbaiahyahyahyaahaahaahaahaahaahaahbjWbjWbjWbvDbjWbjWbjWbjWbjWaahaahaahaahaZdaZHaZdahyahyahybbMaZLbaJbgEbgEbvGbvHbiEbhzbiEbvKbvLbgEbgEbiGaZJbbDahyahyahybbNaYGbRLaUwbvNahyahybvObosbuqbvQboNbvSbvTbxbbsXbvVbvWbvXbvYbvYbvZbwabwbbwcbwdbwebwebwfbwgbQwbwibwjbwkbwlbwmbwnbwoboObwpbwqbwrbtqbwsbwtboOaZWaZmaahaahbgmbgmbgmbgmbAQbwvbwwbmfbyUbwybwzbkJbkJbGRbkJbwAbwBbwCbgmbgmaahaahaahaahaahaahaahaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbdbbdbbdbbdbbdbbdbbdaaaaaaaaaaaaaaaaaaaaaaaaaaaacAaaabtEbvcbtGaaabtEbvcbtGaaabtEbvcbtGaaabtEbvcbtGaaaaadaaaaaaaadaadaaaaaaaaaaaabtHbwDbwEbwFbtHbwGbwHbwIbwJbwKbwLbkObkPbkRbkQbkSbkPbkPaahaahahyahyahyahyahyahyaahaahbwMbwMbwMbwMbwMbwMbwMbwMbwMbwNbwObwPbdTbrAbwRbwSbwTbMNbwUbuabsCbucbwVbwWbwXbllbwYbwZbwYbllahybeebeeblmblnblobboahyahyaahaahaahaahaahaahaahaahaahaahaahbxaaahaahaahaahaahaahaahaahaZdaZdaZHaZdaZdahyahyahyaZIaZJaZKaZLaZIaZIaZJaZKaZLaZIaZIaZJaZKaZLaZIahyahyahyahyaToaZjblDaZlaToaToahybxcbxdbxebvSbxfbxgbxhbxibsXcNHbxkbxlbxmbvYbvYbxnbqhbxpbxqbthbthbxrbtfbxsbxtbxubxvbxwbxxbADbvRboOboOboOboObxAboOboOboOaZWaZmaahaahaahaahaahbgmbxBbxCbkJbxDbkJbxBbxEbkJbxFbxGbkJbxHbxIbkJbgmaahaahaahaahaahaahaahaahaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacAaaabtEbvcbtGaaabtEbvcbtGaaabtEbvcbtGaaabtEbvcbtGaaaaadaaaaaaaaaaadaadaaaaaaaaabtHbxJbxKbxLbtHdDfbxMbxNbxObxPbxQbtLaahaahaahahyahyaahaahahyahyahyahyaahaahaahaahbwMbwMbxRbxSbxTbxUbxVbxWbxXbwMbxYbxZbyabdTbybbycbydbyebdTbyfbuabygbyhbyhbyhbyhbyhbyibyjbykbyhbfzbeebylaZzbcnbymbboaZdaahaahaahaahaahaahaahaahaahaahaahaahbxaaahaahaahaahaahaahaahaZdaZdaZGaZHaZGaZdaZdahyahyahyahyahyahyahyahyahyahyahyahyahyahyahyahyahyahyahyahyaZdaTobbObynbiPbyoaTobypbyqbyrbysbytbyubyvbywbyxbyybyzbyAbyBbyCbvYbxobsXbyEbtbbyFbyGbyHbyIbyJbyKbyLbyMbyNbxybyPbyQbyRbySbIxbCLbyVbyWbyXbyYbySaZWaZmaahaahaahaahaahbgmbyZbzabzbbzcbzdbzebzfbzgbzhbzibkJdkQbzkbzlbgmaahaahaahaahaahaahaahaahaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacAacAacAaadaaabtEbvcbtGaaabtEbvcbtGaaabtEbvcbtGaaabtEbvcbtGaaaaadaaaaaaaaaaaaaadbzmbznbznbznbznbzobtHbtHbtLbzpbzqbzrbzsbztbtLaahaahaahaahahyahyahyahyahyahyaahaahaahaahaahbwMbzubzvbzwbzxbzybzzbzAbzBbzCbzDbzEbzFbzGbzHbzIbzJbzKbzLbzMbzNbzObzPbzQbzRbzSbzPbzTbzUbzVbzWbzXbzYbecbajbhqbhrbzZaZdaZdaZdaZdaZdaZdaZdaZdaZdaZdaahaahaahbxaaahaahaZdaZdaZdaZdaZdaZdbAabAbbAcbAdaZGaZdaZdaZdaZdaZdaZdaZdaZdaZdaZdaZdaZdaZdaZdaZdaZdaZdaZdaZdaZdaZdaZdbAebAfbAgbAhaUvbAibAjbAkbvSbAlbvSbAmbxgbAnbAobuCbApbAqbArbAsbAtbAubuCbAvbAwbqmbAxbAxbAybtfbAzbwibAAbABbACbADbAEbAFbySbAGbAHbAIbyWbyWbAJbySbAKaZmaahaahaahaahaahbgmbgmdkRbAMbANbAObAPcBYbARbASbATbAUbAVbAWbAXbgmaahaahaahaahaahaahaahaahaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacAaaaaadaaaaaaaadaivaadaaaaadaivaadaaaaadaivaadaaaaadaivaadaaaaadaaaaaaaaabAZbBabBbbBcbBdbBebBfbBgbBhbBibtLbBjbBkbBlbBmbztbtLaahaahaahaahaahahyahyahyahyaahaahaahaahaahaahbwMbBnbzwbBobBpbBqbBrbBsbBrbBtbBubBvbBwbBxbjJbBybjJbBzbjJbjJbBAbBBbBCbBDbBEbBFbBGbBHbBIbBJbBKbBLbBMbBNbBObBPbBQbBRbBSbBTbBUbBUbBUbBUbBVbBUbBWaZdaZdaZdaZdbBXaZdaZdaZdbBYbBZbBZbBZbBZbBZbCabCbbCcbCdbCdbCdbCdbCdbCdbCdbCebCdbCdbCdbCfbCgbCgbCgbCgbCgbCgbCgbCgbChbCgbCibCjbCkbClbCmbbRbCnbCobCpbCqbCrbvQbCsbvSbCtbCubwabCvbCwbCxbCzbyDbCybwabCBbCCbCDbCEbCEbCFbCGbwhbxtbCHbCIbCJbCKbIcbySbySbCMbCNbCObCPbyWbAJbySbAKaZmaahaahaahaahaahaahbgmbgmbgmbJJbCRbgmbgmbgmbgmbgmbgmbCSbCTbgmbgmaahaahaahaahaahaahaahaahaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacAaadbCUbCVbCVbCVbAYbCVbCVbCVbAYbCVbCVbCVbAYbCVbCVbCVbAYbCVbCVbCVbCVbCVbCZbDabDbbDcbDdbDebDfbDgbDhbDibDjbtLbtLbDkbtLbtLbDlbtLaahaahaahaahaahaahaahahyahyaahaahaahaahaahaahbwMbDmbDnbDobDpbDqbDrbDsbDtbwMbDubDvbDwbDxbDybDzbDAbDBbDCbDDbDEbDFbyhbDGbDHbDIbDJbDKbDLbzVbzWbzXbzYbecbecbDMbDNbDOaZdbDPbDQbDRbDSbDTbDUbDVbDWbDXbDYbDZbEabEbbBUbBUbBUbEcaZdaZdaZdaZdaZGbEdbEebEfbEgbEgbEgbEgbEgbEgbEgbEhbEgbEgbEgbEibEjbEjbEjbEjbEjbEjbEjbEkbiDbjYaZdbElaYGbetbEmaVlbEnbEobEpbEqbErbEsbEtbEubEvbEwbsXbsYbsZbExbsYbEybsZbsXbEzbtbbyFbyGbyHbEAbtfbEBbuKbECbEDbuKbySbySbySbEEbEFbEGbEHbEIbyWbAJbySbAKaZmaahaahaahaahaahaahaahbgmbEJbEKbELbgmaahaahaahaahbgmbgmbgmbgmaahaahaahaahaahaahaahaahaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacAaadbCUbCVbCVbCVbAYbCVbCVbCVbAYbCVbCVbCVbAYbCVbCVbCVbAYbCVbCVbCVbCVbCVbCZbDabDbbDcbDdbDebDfbDgbDhbDibDjbtLbtLbDkbtLbtLbDlbtLaahaahaahaahaahaahaahahyahyaahaahaahaahaahaahbwMbDmbDnbDobDpbDqbDrbDsbDtbwMbDubDvbDwbDxbDybDzbDAbDBbDCbDDbDEbDFbyhbDGbDHbDIbDJbDKbDLbzVbzWbzXbzYbecbecbDMbDNbDOaZdbDPbDQbDRbDSbDTbDUbDVbDWbDXbDYbDZbEabEbbBUbBUbBUbEcaZdaZdaZdaZdaZGbEdbEebEfbEgbEgbEgbEgbEgbEgbEgbEhbEgbEgbEgbEibEjbEjbEjbEjbEjbEjbEjbEkbiDbjYaZdbElaYGbetbEmaVlbEnbEobEpbEqbErbEsbEtbEubEvbEwbsXbsYbsZbExbsYbEybsZbsXbEzbtbbyFbyGbyHbEAbtfbEBbuKbECbEDbuKbySbySbySdBabEFbEGbEHbEIbyWbAJbySbAKaZmaahaahaahaahaahaahaahbgmbEJbEKbELbgmaahaahaahaahbgmbgmbgmbgmaahaahaahaahaahaahaahaahaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacAaaaaadaaaaaaaadaivaadaaaaadaivaadaaaaadaivaadaaaaadaivaadaaaaadaaaaaaaaabAZbBabENbEObEPbEQbznbERbESbETbEUbEUbEVbEWbtHbEXbtHaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahbwMbEYbEZbFabFbbFcbFdbFebFfbwMbFgbfubFhbFibFjbFkbFlbFmbFibFnbFobFnbyhbyhbyhbyhbyhbrDbFqbFrbyhbfzbeebFsbecbcnbFtbboaZdbFubFubFubFubFubFubFvbFwaZdbFxbFybFxaZdbFzbFAbFBbFCaZdaahaahaZdaZdaZGaZHaZGbFDbFEbFFbFGbEgbFHbFIbFJbFJbFKbFLbFMbFObFNbFPbFNbHvbHubEjbFQbEjaZdaZdaTobFRbgJaUvbFSaTobypbyqbFTbAlbFUbFVbFWbFXbEqbFYbFZbGabGbbGcbGdbGebGfbGgbGhbGibGjbGjbGkbGlbtbbGmbGnbGobGpbySbGqbGrbGsbGtbGubGvbGwbyWbAJbySaZWaZmaZmaahaahaahaahaahaahbgmbxzbGybGzbgmaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacAacAacAaadaadbtEbGAbtGaaabtEbGAbtGaaabtEbGAbtGaaabtEbGAbtGaaaaadaaaaaaaaaaaaaaabGBbznbznbznbznbtHbtHbGCbGDbDibGEbGFbGGbGHbtHaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahbwMbwMbwMbGIbGJbGJbGJbwMbwMbwMbGKbGLbyfbGMbGNbGObGPbGQbFibJWbGSbGTbGUbGVbGWbGXbGYbFnbGZbFnbGYahybeebeebHabcnbecbHbbHcbFubHdbyObHfbHgbFubFubFubFubHhbHibHhbHjbHjbHkbHlbHjbHmaahaahaahaZdaZdaZHbEgbEgbHnbHobHpbEgbHqbHrbHsbHsbHsbHtbHwbHybHxbHxbHzbKBbJbbHAbHBbEjahyahyaToaZjblDbHCaToaToahybxcbHDbHEbCqbHFbHGbHHbCqbHIbHJbHKbHLbHMbHNbHMbHObHPbHPbHQbHPbHPbHRbHSbHTbHUbHVbHWbHXbySbHYbHZbIabGtbGubGvbIbbyWbAJbySbbbbJraZmaahaahaahaahaahaahbgmbHebIebIfbgmaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabtEbGAbtGaaabtEbGAbtGaaabtEbGAbtGaaabtEbGAbtGaaaaadaaaaaaaaaaahaahaahaahaahaahaahaahbtHbtHbtHbtHbtHbIgbIhbIibtHaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahbwMbIjbGJbGIbGJbGJbGJbGJbIkbwMbIlbfubImbInbIobIpbIqbIrbFibIsbItbIubIvbIubIwbIubLzbIybIzbIAbGYahyahybIBbecbRQbecbICbHcbIDbIEbIFbIFbIGbIHbIIbIJbFubIKbILbIMbHjbINbIObIPbHjaahaahaahaahaZdaZGaZHbEgbIQbIRbISbITbEgbIUbIVbIWbFJbFJbIXbIYbIZbJabJabJabJabJabJbbJcbJdahyahybJeaYGbRSaUvbpPahyahybuobosbvSbvSbJfbJgbvSbvSbJhbJibJjbJkbxqbJlbJmbJnbthbJobJpbJqbKLbJsbJtbJubJvbJwbJxbJybJzbJAbJBbJCbJDbJEbJFbJGbJHbJIbySbglbfpaZmaahaahaahaahaahaahbgmbgmbLDbJKbgmaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaabtEbGAbtGaaabtEbGAbtGaaabtEbGAbtGaaabtEbGAbtGaaaacAaaaaaaaahaahahyahyahyahyahyahyahyahyaahaahaahbtHbtHbJLbIibtHaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahbwMbJMbGJbJNbJObGJbGJbGJbIkbwMbJPbtUbJQbJRbJSbIdbJUbJVbFibGYbLEbJXbJYbJXbJXbJXbJZbJYbKabKbbKcahyahybKdbecbcnbecbKebHcbKfbKgbKhbKibKjbKhbKhbKkbFubKlbILbKmbHjbKnbKobKpbHjaahaahaahaahaZdbKqaZHbEgbIQbKrbKsbKtbEgbKubKvbKwbFJbKxbKycuybKAbJabJabJabJabJabKBbKCbKDahyahybrGbKEbynbKFbrGahyahybvObsDbKHbKHbKIbKKbMHaGMbKNbKNbKObKPbKQbKRbKNbKSbKTbKUbKVbKSbKWbKWbKWbKWbKWbKXbKYbKZbLabySbySbySbySbySbySbySbySbySbySbLbbLcaZmbLdbLebLebLebLdbLdbLfbLgbLhbLibLfbLdaahaahaahaahaahaahaahaahaahaahaahaahaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacAaadbtEbGAbtGaadbtEbGAbtGaadbtEbGAbtGaadbtEbGAbtGaadacAaaabLjaahbLkbLkbLlbkQbkQbkQbLmbLkbLkahyaahaahaahbtHbLnbIibtHaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahbwMbLobLpbLqbGJbLrbGJbLsbwMbwMbLtbfubImbFibLubLvbLwbLxbLybGYbPnbNsbLBbLCbLCbLAbLAbLBbRjbRibLFahyahybKdbLGbhqbecbKebHcbLHbLIbKhbLJbLKbLLbLMbLNbLObLPbLQbLRbLSbLTbLUbLVbHjaahaahaahaahaZdaZdaZHbEgbEgbLWbEgbEgbEgbLXbLYcAgbMabKxbMbcuBbMdbMebMfbMgbMhbKBbKBbMibKDahyahybvNbMjbgJaUvbvNahyahybMkbMlbMmbKJbOcbMkbMkbMkbMkaPubMqbMrbMsbMtbMsbKSbMubMvbMwbMxbKWbMybMzbMAbMBbMCbMDbMEbMFbMGbOdbMIbMJbRXbMLbMMdFecbabUSbMQbMRbMSbMTbMUbMVbMWbMXbMYbMZbNabNbbNabNcbLdaahaahaahaahaahaahaahaahaahaahaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacOaaabtEbNdbtGaaabtEbNdbtGaaabtEbNdbtGaaabtEbNdbtGaaaaadaadbLjaahbLkbNebNfbNgbNfbNgbNfbNebLkahyahyaahaahbtHbNhbIibtHbtHaahaahaahaahaahaahaahaahaahaahaahbtHbtHbtHbwMbwMbwMbwMbwMbwMbwMbwMbwMbNibNjbfubyfbGMbNkbNlbNmbLxbNnbGYbNobNpbNpbNqbNqbNrbNqbNqbRlbRkbGYahyahybKdbecbDMbDNbKebNtbFubNubKhbNvbNwbNxbKhbNybFubNzbNAaGUbNCbNCbNCbNCbNCbNCbNCbNCaahaahaZdaZHbEgbNDbNEbNFbQAbNHbFJbFJbNIbFJbNJbEgbNKbNLbNMbNNbNObKBbNPbNQbNRbNSahyahyaTobNTbetbNUaToahyahybMkbNVbNWbNXbNYbSkbUXbMnbMobNBbMqbMrbOebOfbOgbKSbOhbOibOjbOkbKWbOlbOmbOnbOobOpbOqbOrbOsbOtbOtbOubOvbOqbOtbOwbOtbOxbOybOzbOAbOBbOCbODbOEbOEbOFbOEbOGbOHbOIbOJbOKbLdaahaahaahaahaahaahaahaahaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacAaaaaadaaaaaaaaaaadaadaadaaaaaaaaaaaaaaaaaaaaaaadaaaaadaadaahaahaahbOLbOMbONbOObOPbOQbOLbORahyahyaahaahbtHbOSbIibOTbtHbtHbtHbtHbtHbtHbtHbtHbtHbtHbtHbtHbtHbOUbOVbOWbOXbOYbOZbzHbPabPbbPcbPdbPebPfbPgbImbInbIobPhbPibLxbPjbGYbPkbPlbPmbNpbNpbSzcpCcpubRlcGibGYahyahybKdbecbcnbecbPobHcbFubPpbKhbPqbPrbPsbKhbPtbFubPubPvbPwbNCbPxbPybPzbPAbNCbPBbNCbNCaahaZdaZHbEgbPCbPDbPEbPEbPFbPEbPEbPGbFJbPHbEgbPIbPJbPKbPLbPMbPNbPIbPJbPKbEjbPObPPaToaZjblDbHCaToaToahybMkbPQbPRbPSbPTbPUbPVbPWbPXbPYbPZbQabQbbQcbQdbKSbQebQfbQgbQhbKWbQibQjbQkbMBbQlbQmbQnbQobQpbQqbQrbQsbQtbQpbQubQvbQwbMPbMQbQxbQybQzbMUbMVbWWbQBbOJbQCbQDbQEbOJcAfbLdaahaahaahaahaahaahaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaczaczacAaczaczacOacAaadaadaadaadaaaaaaaaaaadaadaadacOaadaaaaahaahaahbNgbQFbQGbQHbQHbQIbNgahyahyahyaahaahbtHbQJbQKbQLbQLbQLbQLbQLbQLbQLbQLbQLbQLbQLbQLbQLbQLbQMbQNbQObQPbQQbQRbQSbQTbQUbQVbQWbQXbQYbQZbyfbJRbRabRbbRcbRdbRebGYbRfbRgbRhbNpbNpcGQbRgcIgbRlcNkbGYahyahybKdbecbcnbRmbRnbRobRpbRqbRrbRsbRtbRubRvbRwbFubRxbPvbRybNCbRzbRAbRBbRBbRCbRDbREbNCaahaZdaZHbEgbRFbRGbFJbRHbRIbFJbFJbFJbFJbRJbEgbupbTlbTkbRNbRObRPbRObRPbvEbRTbRUbRUbRVbRWbetaUvbvFaToahybMkbRYbRZbSabNWbSbbScbSdbSebSfbSgbShbSibMpbvIbKSbXibQfbSlbSmbKWbKWbKWbKWbKWbSnbSobSpbSpbSpbSpbSpbSqbSrbSqbSqbSqbSqbSqbSsbStbSubSvbSwbSwbSwbLdbLdbSxbSycNtbSxbLdbLdaahaahaahaahaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaahaahaahbOLbSAbQGbQHbQHbSBbOLbORahyahyaahaahbtHbSCbIibSDbtHbtHbtHbtHbtHbtHbtHbtHbtHbtHbtHbtHbtHbtHbtHbSEbSEbSFbSGbSEbSHbSIbSJbSKbSLbSMbSNbSObSPbSLbSLbSLbSLbSLbSLbSQbSRbSQbSSbSSbSQbSTbSQbSUbSQbGYahyahybKdbecbcnbSVbbobbobFubFubFubFubFubFubSWbFubFubSXbSYbSZbNCbTabTbbTcbTdbNCbTebTfbNCaahaZdaZHbEgbFLbvJbEgbEgbThbTibTibTibTibEgbEgbTjbTkbTlbTmbTnbTkbTlbTkbTobTpaUvaUvaUvaUvbTqbTrbTsaToahybMkbGxbTubTvbTubTtbScbTxbTybVhbTAbTBbTCbTDbTEbKSbTFbTGbTHbTIbTJbTKbTLbTMbTNbTObTPbTQbTRbTSbTTbSpbTUbTVbTWbOabTXbTZbSqbUabUbbSubUcbUdbUebSuaahaahbSxbUfbUgbSxaahaahaahaahaahaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaahaahaahbLkbNebNfbNgbUhbNgbNfbNebLkahyahyaahaahbtHbtHbIibtHbtHaahaahaahaahaahaahaahaahaahaahaahaahaahaahbSEbUibUjbUkbUlbSEbUmbUnbUnbUobUpbUqbUrbUsbUtbUubUvbUwbUxbSLbUybUzbUAbUBbUBbUybUzbUybUCbUDbUEahyahybKdbecbcnaZzbUFahybUGbUHbUIbUJbUKbULbULbUMbUGbUNbUObUPbNCbNCbUQbNCbNCbNCbNCbNCbNCaahaZdaZHbURbvMbUTbUUbUVbUWbUWbUWbUWbUWbYobUYbTkbTlbUZbVabVbbVcbTkbTlbVdbVeaUvaUvbVfbVgbdvaUvbvPaToahybMkbVibVjbVkbVlbVmbVnbVobVpbVqbVrbVsbMpbKNbKNbKSbKSbKSbKSbKSbTJbVtbVubVvbVwbVxbVybVzbVAbVBbVCbSpbVDbVEbVFbVGbVGbVHbSqbVIbVJbSubVKbVLbVMbSuaahaahbSxbVNcAhbSxaahaahaahaahaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaahaahaahbLkbLlbVPbVQbVRbVSbVTbLmbLkahyaahaahaahaahbtHbIibtHaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahbSEbVUbVVbVWbVXbVYbVZbWabWbbWcbWdbWebWfbWgbWhbWibWibWjbWkbSLbWlbWmbWlbWnbUBbWlbWmbWlbUCbUDbUEahyahybKdbWobcnaZzbamahybWpbWqbULbWrbWsbWsbWtbWubUGbWvbWwbUPbWxbWybWzbWAbWBbWCbWDbWEbNCaahaZdbWFbWGbWHbWIbWJclZbWLbWKbTwbWKbWLbWKbWJbTlbTkbWNdBObVabWPbTlbTkbWQbURbPObPPaTobHCblDbHCaToaToahybMkbWRbWSbMkbWRbWSbMkbMkbMkbYAbWUbWVbCAbKNaahaahaahaahaahaahbTJbWXbWYbWZbTNbXabXbbTQbXcbXdbXebSpbXfbXgbXhcccbXjbXkbSqbXlbXmbXnbXobXpbSubSuaahaahbSxbXqbXrbSxbSxaahaahaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaahaahaahahyahybXsbXtbXubXvbXsahyahyahyaahaahaahaahbtHbIibtHaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahbSEbXwbXxbXybXzbXAbXBbXCbXDbXEbXFbXGbXHbXIbXJbXKbXLbXMbXNbSLbXObUBbUBbXPbXQbXRbXRbXRbXSbXTbUEahyahybXUbXVbhqbXWbamahybXXbXYbXZbYabYbbYcbYdbYebYfbYgbYhbYibYjbYjbYkcqEbYmbYnbYnbTYbNCaahaZdbYpbURbYqbTkbTlbWJbYrbWJbYrbWJbYrbWJbYsbTkbTlbUZbYtbVbbVcbTkbTlcgwbURahyahyaTobYvbetbYwaToahyahyahyahyahyahyahyahyahyahybKNbKNbYxbYybKNbKNaahaahaahaahaahaahbTJbTJbTJbTJbTJbYzciWbSpbSpbSpbSpbSpbSqbSqbSqbSqbSqbSqbSqbYBbYCbSubSubSubSuaahaahaahbSxbYDbVObYEbSxaahaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaahaahaahaahahybYFbYGbYHbYIbYFahyahyahyaahaahaahaahbtHbYJbtHaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahbSEbYKbYLbYMbYNbYObYPbXMbYQbYRbYSbYTbYUbYRbYQbXMbXMbXMbYVbSLbWlbWmbWlbYWbUBbWlbWmbWlbYXbYYbUEbYZbZabeebecbDMbZbbamahybZcbZdbZebZfbZgbZhbZibZjbUGbWvbZkbZlbZmbZnbZobZpbZqbZrbZsbZtbNCaahaZdbYpbURcaAbTlbTkbTlbTkbTlbTkbTlbTkbTlbTkbTlbTkbTlbZvbTjbZwbTlbTkbTjbZybZxahybJeaUvbetaUvbJeahyahyahyahyahyahyahyahyahyahyahybZzbZAbZBbZzaahaahaahaahaahaahaahbZCbZDbZEbZFbZGbTObTPbZHbZIbZJbZKbZLaahaahaahaahaahaahbZMbZNbZObZPbZQbZMaahaahaahaahbSxbZRbZSbZTbSxaahaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaahaahaahaahaahahybZUbZVbZWbZUbZUahyahyaahaahaahaahaahbZXbZYbZXaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahbSEbZZcaacabcacbSEcadcaecaecaecafcagcahcaicaecaecaecajcakbSLbUybUybUybUBbUBbUybUybUybYXcalcamcanbecbecbecbcnaZzbamahycaocapbZecaqcarcarcasbULbUGbWvcatcaucavcavcawcaxcaybYnbYncazbNCaahaZdcaBaZdccebTkbTlbTkbTlbTkbTlbTkbTlbTkbTlbTkbTlbTkcaCcaDcaEcaFcaGcaHcaIahyahybrGaUvbetcaJbrGahyahyahyahyahyahyahyahyahyahyahycaKcaLcaMcaNaahaahaahaahaahaahaahbZCcaOcaPcaQcaRcaScaTcaUcaVcaWcaXbZLaahaahaahaahaahaahbZMcaYcaZbJTcbbbZMaahaahaahaahcbccbdcbecbfcbcaahahyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaahaahaahaahahycbgcbhcbicbjcbgahyahyaahaahaahaahaahbZXbZYbZXaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahbSEcbkcblcbmcbnbSEbNZcbpcbqcbrcbscbtcbucbvcbwcbxcbycbzcbAbSLcbBcbCbUBbUBbUBbUBcbDbUBcbEcbFcamcancbGcbHbecbcnaZzcbIahybUGcbJcbKcbLcbMbULcbNbUGcbOcbPcbQcbObNCcbRcbScbTcbUcbVcbWcbXbNCaahaZdbYpaZdcDsbTlbTkbYsbTmbTnbTkbTlbTkcbZbTmbTlbTkbTlccabTnccbbTlbTkdBQcaIahyahybrGccdbgJaUvbrGahyahyahyahyahyahyahyahyahyahyahyccBccfccgcaNaahaahaahaahaahaahaahbZCcchcciccjbZGcckcclbZHccmccnccobZLaahaahaahaahaahaahbZMbZNbZMbZMbZMbZMaahaahaahaahcbcccpaEGccrccscctccuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaahaahaahahyahybXsccvccwccxbXsahyahyaahaahaahbZXbZXbZXbZYbZXaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahbSEbSEccycczbSEbSEbSLbSLbSLbSLbSLccAbSLbSLbSLccEccCccDbSLbSLbUEbUEcdPccFccFccGbUEbUEbUEbUEbUEbYZbZabeeccHblnblmbeeahybUGbUGbUGbUGbUGbUGbUGbUGccIccJccKccLbNCbNCccMbNCbNCbNCccNccObNCccPaZdccQaZdbURbwQbTlbUZdBRbVbbVcccTccUbVbbVaccVccWbUZbVadBOccXbTkbTlcbYcaIahyahybrGaUvbetaUvbvNahyahyahyahyahyahyahyahyahyahyahyccBccYccZcaNaahaahaahaahaahaahaahbZCbZCbZCbZCbZCcdacdbbZLbZLbZLbZLbZLaahaahaahaahaahaahbZMbZNbZMaahaahaahaahaahaahaahcbccdccddcdecdfcdgcdhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaahaahaahahyahybYFcdiccwcdjbYFahyahyaahaahaahbZXcdkcdlcdmbZXbZXbZXbZXaahaahaahaahaahaahaahaahaahaahaahaahaahbSEbSEbSEbSEaahaahaahaahbZXcdncdobZXahyahyahyahyahyahyahyahyahyahyahyahyahyahyahyahyahyahyahyahyaZybecbcnaZzcbOcbOcbOcbOcdpcdqcdrcdscdtbFpcdvcdwcdxcdycdzcdAcdBcdCcdDcbOcbOcbOcbOcbOcdEcdFcdGbURbURbTkccUbVbbYtccVcdHbUZbYtdBObVccdIccUcdJcdKcdLcdMcdNcdOcdSahyahybrGcdQbetcdRaTocaNahyahyahyahyahyahyahyahyahyahycelcdTcdUcaNaahaahaahaahaahaahaahaahaahaahaahbZMcdVcdWbZMaahaahaahaahaahaahaahaahaahaahbZMbZNbZMaahaahcbccbccbccbccbccbccdXcdXcbccbccbccbcaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaahaahbZUbVSbVQbZUcdYccwcdZbZUbVSbVQbZUbZUbZXbZXceacebceccedceecefbZXaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahbZXcegcehceiceiceiceiceiahyahyahyahyahyahyahyahyahyahyahyahyahyahyahyahybaicejbjSaZzcekceLcemcbOcenceocepceocencencenccJccKcencencencdBceqcercescbOcetceLceucevcewcexceycezceAceBceCceDceAceEceAceFceCceBceGceBceCceHceIbTkbTlceJbURahyahybvNaUvbetaUvceKcaNcgqceMceMceMceMceMceMceMceMceNcaNceOcePcaNbZMbZMbZMbZMaahaahaahaahaahbZMbZMbZMceQceRbZMaahaahaahaahaahaahaahaahaahbZMbZMbZNbZMaahaahcbcceSceTceTceTceTceUceUceVceTceTceWaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaahaahaahbZUceXceYceXceZcfacfbcfccfdcfecffcfgcfhcficfjcfkcflcfmcfncfobZXaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahbZXcfpcfqcfrcfscftcfuceiahyahyahyahyahyahyahyahyahyahyahyahyahyahyahyahybbocfvcfwcfxcfycfzcfAcfBcfCcfDcfEcfFcfFcfFcfFcfGcfHcfFcfFcfFcfIcfJcfDcfKcfLcfMcfNcfOcfPcfQcfRcfSbTpcfTbTlbTkbTlbTkcfUbTkbTlbTkbTlcfVbTlbTkcfWbTkbTlbTkcfXbZyahyahyaTocfYbyncfZaVlcgacgbcgbcgbcgccgbcgbcgdcgbcgbcgbcgbcgecgfcggbZMcghcgibZMbZMbZMbZMbZMbZMbZMcgjcgkcglcgmbZMbZMbZMbZMbZMbZMbZMbZMbZMbZMbZMcgnbZNbZMaahaahcbccgocgpcgTcgrcgscgtcgucgvcqbcgxceTceWaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacAacAacAaadaadbtEbGAbtGaaabtEbGAbtGaaabtEbGAbtGaaabtEbGAbtGaaaaadaaaaaaaaaaaaaaabGBbznbznbznbznbtHbtHbGCbGDbDibGEbGFbGGbGHbtHaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahbwMbwMbwMbGIbGJbGJbGJbwMbwMbwMbGKbGLbyfbGMbGNbGObGPbGQbFibGSbGUbGTbGWbGVbIsbGXbGYbFnbGZbFnbGYahybeebeebHabcnbecbHbbHcbFubHdbyObHfbHgbFubFubFubFubHhbHibHhbHjbHjbHkbHlbHjbHmaahaahaahaZdaZdaZHbEgbEgbHnbHobHpbEgbHqbHrbHsbHsbHsbHtbHwbHybHxbHxbHzbKBbJbbHAbHBbEjahyahyaToaZjblDbHCaToaToahybxcbHDbHEbCqbHFbHGbHHbCqbHIbHJbHKbHLbHMbHNbHMbHObHPbHPbHQbHPbHPbHRbHSbHTbHUbHVbHWdBkbySbHYbHZbIabGtbGubGvbIbbyWbAJbySbbbbJraZmaahaahaahaahaahaahbgmbHebIedGPbgmaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabtEbGAbtGaaabtEbGAbtGaaabtEbGAbtGaaabtEbGAbtGaaaaadaaaaaaaaaaahaahaahaahaahaahaahaahbtHbtHbtHbtHbtHbIgbIhbIibtHaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahbwMbIjbGJbGIbGJbGJbGJbGJbIkbwMbIlbfubImbInbIobIpbIqbIrbFibItbIAbIybIubIubIwbIubJXbJWbIzbJYbKcahyahybIBbecbRQbecbICbHcbIDbIEbIFbIFbIGbIHbIIbIJbFubIKbILbIMbHjbINbIObIPbHjaahaahaahaahaZdaZGaZHbEgbIQbIRbISbITbEgbIUbIVbIWbFJbFJbIXbIYbIZbJabJabJabJabJabJbbJcbJdahyahybJeaYGbRSaUvbpPahyahybuobosbvSbvSbJfbJgbvSbvSbJhbJibJjbJkbxqbJlbJmbJnbthbJobJpbJqbKLbJsbJtbJubJvbJwbJxbJybJzbJAbJBbJCbJDbJEbJFbJGbJHbJIbySbglbfpaZmaahaahaahaahaahaahbgmbgmbLDbJKbgmaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaabtEbGAbtGaaabtEbGAbtGaaabtEbGAbtGaaabtEbGAbtGaaaacAaaaaaaaahaahahyahyahyahyahyahyahyahyaahaahaahbtHbtHbJLbIibtHaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahbwMbJMbGJbJNbJObGJbGJbGJbIkbwMbJPbtUbJQbJRbJSbIdbJUbJVbFibGYbKabJZbIubIubIubIubKbbIubIubLzbLAahyahybKdbecbcnbecbKebHcbKfbKgbKhbKibKjbKhbKhbKkbFubKlbILbKmbHjbKnbKobKpbHjaahaahaahaahaZdbKqaZHbEgbIQbKrbKsbKtbEgbKubKvbKwbFJbKxbKycuybKAbJabJabJabJabJabKBbKCbKDahyahybrGbKEbynbKFbrGahyahybvObsDbKHbKHbKIbKKbMHaGMbKNbKNbKObKPbKQbKRbKNbKSbKTbKUbKVbKSbKWbKWbKWbKWbKWbKXbKYbKZbLabySbySbySbySbySbySbySbySbySbySbLbbLcaZmbLdbLebLebLebLdbLdbLfbLgbLhbLibLfbLdaahaahaahaahaahaahaahaahaahaahaahaahaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacAaadbtEbGAbtGaadbtEbGAbtGaadbtEbGAbtGaadbtEbGAbtGaadacAaaabLjaahbLkbLkbLlbkQbkQbkQbLmbLkbLkahyaahaahaahbtHbLnbIibtHaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahbwMbLobLpbLqbGJbLrbGJbLsbwMbwMbLtbfubImbFibLubLvbLwbLxbLybGYbLCbLBbIvbIubIubIubKbbIvbIubLEbLAahyahybKdbLGbhqbecbKebHcbLHbLIbKhbLJbLKbLLbLMbLNbLObLPbLQbLRbLSbLTbLUbLVbHjaahaahaahaahaZdaZdaZHbEgbEgbLWbEgbEgbEgbLXbLYcAgbMabKxbMbcuBbMdbMebMfbMgbMhbKBbKBbMibKDahyahybvNbMjbgJaUvbvNahyahybMkbMlbMmbKJbOcbMkbMkbMkbMkaPubMqbMrbMsbMtbMsbKSbMubMvbMwbMxbKWbMybMzbMAbMBbMCbMDbMEbMFbMGbOdbMIbMJbRXbMLbMMdFecbabUSbMQbMRbMSbMTbMUbMVbMWbMXbMYbMZbNabNbbNabNcbLdaahaahaahaahaahaahaahaahaahaahaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacOaaabtEbNdbtGaaabtEbNdbtGaaabtEbNdbtGaaabtEbNdbtGaaaaadaadbLjaahbLkbNebNfbNgbNfbNgbNfbNebLkahyahyaahaahbtHbNhbIibtHbtHaahaahaahaahaahaahaahaahaahaahaahbtHbtHbtHbwMbwMbwMbwMbwMbwMbwMbwMbwMbNibNjbfubyfbGMbNkbNlbNmbLxbNnbGYbPkbNsbRfbPnbPnbRhbRibRfbRkbRjbLFahyahybKdbecbDMbDNbKebNtbFubNubKhbNvbNwbNxbKhbNybFubNzbNAaGUbNCbNCbNCbNCbNCbNCbNCbNCaahaahaZdaZHbEgbNDbNEbNFbQAbNHbFJbFJbNIbFJbNJbEgbNKbNLbNMbNNbNObKBbNPbNQbNRbNSahyahyaTobNTbetbNUaToahyahybMkbNVbNWbNXbNYbSkbUXbMnbMobNBbMqbMrbOebOfbOgbKSbOhbOibOjbOkbKWbOlbOmbOnbOobOpbOqbOrbOsbOtbOtbOubOvbOqbOtbOwbOtbOxbOybOzbOAbOBbOCbODbOEbOEbOFbOEbOGbOHbOIbOJbOKbLdaahaahaahaahaahaahaahaahaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacAaaaaadaaaaaaaaaaadaadaadaaaaaaaaaaaaaaaaaaaaaaadaaaaadaadaahaahaahbOLbOMbONbOObOPbOQbOLbORahyahyaahaahbtHbOSbIibOTbtHbtHbtHbtHbtHbtHbtHbtHbtHbtHbtHbtHbtHbOUbOVbOWbOXbOYbOZbzHbPabPbbPcbPdbPebPfbPgbImbInbIobPhbPibLxbPjbGYbSRbSQbSSbNqbNqbNrbNpbSSbRlbSTbGYahyahybKdbecbcnbecbPobHcbFubPpbKhbPqbPrbPsbKhbPtbFubPubPvbPwbNCbPxbPybPzbPAbNCbPBbNCbNCaahaZdaZHbEgbPCbPDbPEbPEbPFbPEbPEbPGbFJbPHbEgbPIbPJbPKbPLbPMbPNbPIbPJbPKbEjbPObPPaToaZjblDbHCaToaToahybMkbPQbPRbPSbPTbPUbPVbPWbPXbPYbPZbQabQbbQcbQdbKSbQebQfbQgbQhbKWbQibQjbQkbMBbQlbQmbQnbQobQpbQqbQrbQsbQtbQpbQubQvdGRbMPbMQbQxbQybQzbMUbMVbWWbQBbOJbQCbQDbQEbOJcAfbLdaahaahaahaahaahaahaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaczaczacAaczaczacOacAaadaadaadaadaaaaaaaaaaadaadaadacOaadaaaaahaahaahbNgbQFbQGbQHbQHbQIbNgahyahyahyaahaahbtHbQJbQKbQLbQLbQLbQLbQLbQLbQLbQLbQLbQLbQLbQLbQLbQLbQMbQNbQObQPbQQbQRbQSbQTbQUbQVbQWbQXbQYbQZbyfbJRbRabRbbRcbRdbRebGYbNobNpbNpbNpbNpbNpbNpbNpbRlbSUbGYahyahybKdbecbcnbRmbRnbRobRpbRqbRrbRsbRtbRubRvbRwbFubRxbPvbRybNCbRzbRAbRBbRBbRCbRDbREbNCaahaZdaZHbEgbRFbRGbFJbRHbRIbFJbFJbFJbFJbRJbEgbupbTlbTkbRNbRObRPbRObRPbvEbRTbRUbRUbRVbRWbetaUvbvFaToahybMkbRYbRZbSabNWbSbbScbSdbSebSfbSgbShbSibMpbvIbKSbXibQfbSlbSmbKWbKWbKWbKWbKWbSnbSobSpbSpbSpbSpbSpbSqbSrbSqbSqbSqbSqbSqbSsbStbSubSvbSwbSwbSwbLdbLdbSxbSycNtbSxbLdbLdaahaahaahaahaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaahaahaahbOLbSAbQGbQHbQHbSBbOLbORahyahyaahaahbtHbSCbIibSDbtHbtHbtHbtHbtHbtHbtHbtHbtHbtHbtHbtHbtHbtHbtHbSEbSEbSFbSGbSEbSHbSIbSJbSKbSLbSMbSNbSObSPbSLbSLbSLbSLbSLbGYbUDbPlbPmbNpbNpbSzcpCcpubRlbXTbGYahyahybKdbecbcnbSVbbobbobFubFubFubFubFubFubSWbFubFubSXbSYbSZbNCbTabTbbTcbTdbNCbTebTfbNCaahaZdaZHbEgbFLbvJbEgbEgbThbTibTibTibTibEgbEgbTjbTkbTlbTmbTnbTkbTlbTkbTobTpaUvaUvaUvaUvbTqbTrbTsaToahybMkbGxbTubTvbTubTtbScbTxbTybVhbTAbTBbTCbTDbTEbKSbTFbTGbTHbTIbTJbTKbTLbTMbTNbTObTPbTQbTRbTSbTTbSpbTUbTVbTWbOabTXbTZbSqbUabUbbSubUcbUdbUebSuaahaahbSxbUfbUgbSxaahaahaahaahaahaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaahaahaahbLkbNebNfbNgbUhbNgbNfbNebLkahyahyaahaahbtHbtHbIibtHbtHaahaahaahaahaahaahaahaahaahaahaahaahaahaahbSEbUibUjbUkbUlbSEbUmbUnbUnbUobUpbUqbUrbUsbUtbUubUvbUwbUxbGYbXUbRgbYYbNpbNpcbIbRgcGibRlcGQbGYahyahybKdbecbcnaZzbUFahybUGbUHbUIbUJbUKbULbULbUMbUGbUNbUObUPbNCbNCbUQbNCbNCbNCbNCbNCbNCaahaZdaZHbURbvMbUTbUUbUVbUWbUWbUWbUWbUWbYobUYbTkbTlbUZbVabVbbVcbTkbTlbVdbVeaUvaUvbVfbVgbdvaUvbvPaToahybMkbVibVjbVkbVlbVmbVnbVobVpbVqbVrbVsdGSbKNbKNbKSbKSbKSbKSbKSbTJbVtbVubVvbVwbVxbVybVzbVAbVBbVCbSpbVDbVEbVFbVGbVGbVHbSqbVIbVJbSubVKbVLbVMbSuaahaahbSxbVNcAhbSxaahaahaahaahaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaahaahaahbLkbLlbVPbVQbVRbVSbVTbLmbLkahyaahaahaahaahbtHbIibtHaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahbSEbVUbVVbVWbVXbVYbVZbWabWbbWcbWdbWebWfbWgbWhbWibWibWjbWkbUEcNkcIgcNkdHrdHrcNkdHscNkdHtcNkbUEahyahybKdbWobcnaZzbamahybWpbWqbULbWrbWsbWsbWtbWubUGbWvbWwbUPbWxbWybWzbWAbWBbWCbWDbWEbNCaahaZdbWFbWGbWHbWIbWJclZbWLbWKbTwbWKbWLbWKbWJbTlbTkbWNdBObVabWPbTlbTkbWQbURbPObPPaTobHCblDbHCaToaToahybMkbWRbWSbMkbWRbWSbMkbMkbMkbYAbWUbWVbCAbKNaahaahaahaahaahaahbTJbWXbWYbWZbTNbXabXbbTQbXcbXdbXebSpbXfbXgbXhcccbXjbXkbSqbXlbXmbXnbXobXpbSubSuaahaahbSxbXqbXrbSxbSxaahaahaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaahaahaahahyahybXsbXtbXubXvbXsahyahyahyaahaahaahaahbtHbIibtHaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahbSEbXwbXxbXybXzbXAbXBbXCbXDbXEbXFbXGbXHbXIbXJbXKbXLbXMbXNbUEbUybUzbUAbUBbUBbUybUzbUybUCdHubUEahyahybKdbXVbhqbXWbamahybXXbXYbXZbYabYbbYcbYdbYebYfbYgbYhbYibYjbYjbYkcqEbYmbYnbYnbTYbNCaahaZdbYpbURbYqbTkbTlbWJbYrbWJbYrbWJbYrbWJbYsbTkbTlbUZbYtbVbbVcbTkbTlcgwbURahyahyaTobYvbetbYwaToahyahyahyahyahyahyahyahyahyahybKNbKNbYxbYybKNbKNaahaahaahaahaahaahbTJbTJbTJbTJbTJbYzciWbSpbSpbSpbSpbSpbSqbSqbSqbSqbSqbSqbSqbYBbYCbSubSubSubSuaahaahaahbSxbYDbVObYEbSxaahaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaahaahaahaahahybYFbYGbYHbYIbYFahyahyahyaahaahaahaahbtHbYJbtHaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahbSEbYKbYLbYMbYNbYObYPbXMbYQbYRbYSbYTbYUbYRbYQbXMbXMbXMbYVbUEbWlbWmbWlbWnbUBbWlbWmbWlbUCdHubUEahyahydHvbecbDMbZbbamahybZcbZdbZebZfbZgbZhbZibZjbUGbWvbZkbZlbZmbZnbZobZpbZqbZrbZsbZtbNCaahaZdbYpbURcaAbTlbTkbTlbTkbTlbTkbTlbTkbTlbTkbTlbTkbTlbZvbTjbZwbTlbTkbTjbZybZxahybJeaUvbetaUvbJeahyahyahyahyahyahyahyahyahyahyahybZzbZAbZBbZzbeubeubeubeubeubeuaahbZCbZDbZEbZFbZGbTObTPbZHbZIbZJbZKbZLaahaahaahaahaahaahbZMbZNbZObZPbZQbZMaahaahaahaahbSxbZRbZSbZTbSxaahaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaahaahaahaahaahahybZUbZVbZWbZUbZUahyahyaahaahaahaahaahbZXbZYbZXaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahbSEbZZcaacabcacbSEcadcaecaecaecafcagcahcaicaecaecaecajcakbUEbXObUBbUBbXPbXQbXRbXRbXRbXSdHwbUEahyahydHxbecbcnaZzdHyahycaocapbZecaqcarcarcasbULbUGbWvcatcaucavcavcawcaxcaybYnbYncazbNCaahaZdcaBaZdccebTkbTlbTkbTlbTkbTlbTkbTlbTkbTlbTkbTlbTkcaCcaDcaEcaFcaGcaHcaIahyahybrGaUvbetcaJbrGahyahyahyahyahyahyahyahyahyahyahycaKcaLcaMcaNbeubZMbZMbZMbZMbeuaahbZCcaOcaPcaQcaRcaScaTcaUcaVcaWcaXbZLaahaahaahaahaahaahbZMcaYcaZbJTcbbbZMaahaahaahaahcbccbdcbecbfcbcaahahyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaahaahaahaahahycbgcbhcbicbjcbgahyahyaahaahaahaahaahbZXbZYbZXaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahbSEcbkcblcbmcbnbSEbNZcbpcbqcbrcbscbtcbucbvcbwcbxcbycbzcbAbUEbWlbWmbWlbYWbUBbWlbWmbWlbYXdHzbUEbYZbZabeeccHdHAdHBbeeahybUGcbJcbKcbLcbMbULcbNbUGcbOcbPcbQcbObNCcbRcbScbTcbUcbVcbWcbXbNCaahaZdbYpaZdcDsbTlbTkbYsbTmbTnbTkbTlbTkcbZbTmbTlbTkbTlccabTnccbbTlbTkdBQcaIahyahybrGccdbgJaUvbrGahyahyahyahyahyahyahyahyahyahyahyccBccfccgcaNbeudGTcgndGUbZMbeuaahbZCcchcciccjbZGcckccldGVccmccnccobZLaahaahaahaahaahaahbZMbZNbZMbZMbZMbZMaahaahaahaahcbcccpaEGccrccscctccuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaahaahaahahyahybXsccvccwccxbXsahyahyaahaahaahbZXbZXbZXbZYbZXaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahbSEbSEccycczbSEbSEbSLbSLbSLbSLbSLccAbSLbSLbSLccEccCccDbSLbUEbUybUybUybUBbUBbUybUybUybYXcalcamcanbecbecbecbcnaZzbeeahybUGbUGbUGbUGbUGbUGbUGbUGccIccJccKccLbNCbNCccMbNCbNCbNCccNccObNCccPaZdccQaZdbURbwQbTlbUZdBRbVbbVcccTccUbVbbVaccVccWbUZbVadBOccXbTkbTlcbYcaIahyahybrGaUvbetaUvbvNahyahyahyahyahyahyahyahyahyahyahyccBccYccZcaNbeucgncgndGWbZMbeuaahbZCbZCbZCbZCbZCcdacdbbZLbZLbZLbZLbZLaahaahaahaahaahaahbZMbZNbZMaahaahaahaahaahaahaahcbccdccddcdecdfcdgcdhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaahaahaahahyahybYFcdiccwcdjbYFahyahyaahaahaahbZXcdkcdlcdmbZXbZXbZXbZXaahaahaahaahaahaahaahaahaahaahaahaahaahbSEbSEbSEbSEaahaahaahaahbZXcdncdobZXahyahyahyahyahyahybUEcbBcbCbUBbUBbUBbUBcbDbUBcbEcbFcamcancbGcbHbecbcnaZzcbOcbOcbOcbOcdpcdqcdrcdscdtbFpcdvcdwcdxcdycdzcdAcdBcdCcdDcbOcbOcbOcbOcbOcdEcdFcdGbURbURbTkccUbVbbYtccVcdHbUZbYtdBObVccdIccUcdJcdKcdLcdMcdNcdOcdSahyahybrGcdQbetcdRaTocaNahyahyahyahyahyahyahyahyahyahycelcdTcdUcaNbeudGYdGXdGZbZMbeuaahaahaahaahaahbZMcdVcdWbZMaahaahaahaahaahaahaahaahaahaahbZMbZNbZMaahaahcbccbccbccbccbccbccdXcdXcbccbccbccbcaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaahaahbZUbVSbVQbZUcdYccwcdZbZUbVSbVQbZUbZUbZXbZXceacebceccedceecefbZXaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahbZXcegcehceiceiceiceiceiahyahybUEbUEbUEcdPccFccFccGbUEbUEbUEbUEbUEbYZbZabeecejbjSaZzcekceLcemcbOcenceocepceocencencenccJccKcencencencdBceqcercescbOcetceLceucevcewcexceycezceAceBceCceDceAceEceAceFceCceBceGceBceCceHceIbTkbTlceJbURahyahybvNaUvbetaUvceKcaNcgqceMceMceMceMceMceMceMceMceNcaNceOcePcaNbZMdHabZMbZMaTWbeuaahaahaahbZMbZMbZMceQceRbZMaahaahaahaahaahaahaahaahaahbZMbZMbZNbZMaahaahcbcceSceTceTceTceTceUceUceVceTceTceWaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaahaahaahbZUceXceYceXceZcfacfbcfccfdcfecffcfgcfhcficfjcfkcflcfmcfncfobZXaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahbZXcfpcfqcfrcfscftcfuceiahyahyahyahyahyahyahyahyahyahyahyahyahyahyahyahybbocfvcfwcfxcfycfzcfAcfBcfCcfDcfEcfFcfFcfFcfFcfGcfHcfFcfFcfFcfIcfJcfDcfKcfLcfMcfNcfOcfPcfQcfRcfSbTpcfTbTlbTkbTlbTkcfUbTkbTlbTkbTlcfVbTlbTkcfWbTkbTlbTkcfXbZyahyahyaTocfYbyncfZaVlcgacgbcgbcgbcgccgbcgbcgdcgbcgbcgbcgbcgecgfcggbZMdGYcgibZMbZMbZMbZMbZMbZMbZMcgjcgkcglcgmbZMbZMbZMbZMbZMbZMbZMbZMbZMbZMbZMdHbbZNbZMaahaahcbccgocgpcgTcgrcgscgtcgucgvcqbcgxceTceWaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaahaahaahaahbZUcgycgzcgAccwcgBccwccwcgCccwcgDbZUcgEcgFcgEcgGcgHcgIcgJbZXbZXbZXbZXbZXbZXbZXbZXbZXbZXbZXbZXbZXbZXbZXbZXbZXbZXbZXbZXbZXbZXbZXbZXcgKcgLceicgMcgNcgOceiahyahyahyahyahyahyahyahyahyahyahyahyahyahyahyahyaZycgPcgQcgRcgSchucgUcbOcgVcgWcgXcgYcgZchacgWcgWchbcgWchcchdchechfcgWchgcbOcgUchuchhchichjcevcevchkcdMcdNcdMcdNchlchmcdMchncdMcdNchochpcdMchqchrchschtchLchvahyahybJechwchxbbQbbRchychzchzchzchAchzchzchBchzchzchzchzchCchDchEchFchGchHchGchGchGchGchGchGchGchGchGchIchJchJchJchJchJchJchJchJchJchJchJchJchJchKbZMaahaahcbccgocgpciscgucgucgucgucgucgucguchMchNaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaahaahaahaahbZUchOchPchQchRchSchTchUccwchVchWbZUchXchYchZchYciacibciccidcidcidcidcidcidcidcidcidcidcidcidcidcidcidcidcidcidcidcidciecifcidcidcigcihciicijcikcilceiahyahyahyahyahyahyahyahyahyahyahyahyahyahyahyahybamcimbcnbeccbOcbOcbOcbOcinciocipciqcirciwcitciucivciAcixciycizciGciBciCcbOcbOcbOcbOciDcfQciEciFbURbURciXciHciHciHciHciHciHciHciHciHciHciHciHciIbURciXchvahyahyahybrGciJciKciLciKciMciNciNciOciNciNciNciPciNciNciNciOciQciRciSbZMbZMbZMbZMbZMbZMbZMbZMbZMbZMciTciUciVcqcbZMbZMbZMbZMbZMbZMbZMbZMbZMbZMbZMbZMbZMbZMaahaahcbccgocgpcjAciYciZcjacjbcjccjdcjeceTcjfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaahaahcjgcjgbZUbZUcjhcjicjjcgBcjkcjlcjlcjmbZUbZUcjnchYcjochYcjpcjqcjrcjsbZXbZXbZXbZXbZXbZXbZXbZXbZXbZXbZXbZXbZXbZXbZXbZXbZXbZXbZXcjtcjucjvcjvcjwcjxcjyceiceiceiceiahyahycjzcjzcjzcjzcjzcjzcjzahyahyahyahyahyahyahybaicimbcnbeccjBahyahycbOcbOcbOcjHcjCcjDcjEcjDcjDcjFcjDcjEcjDcjCcjGcbOcbOcbOahyahyckhcjIcjJcjKciFaahaahahyahyahyahyahyahyahyahyahyahyahyahyahyahyahyahyahyahyahyahybvNaUvaUvcjLcjMcaNcgqceMceMceMceMceMceMceMceMceNcaNcaNcaNcaNbZMaahaahaahaahaahaahaahaahbZMbZMbZMciVbZMbZMaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahcbccjNceTceTceTceTceTceTceVceTceTcjfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa @@ -9974,35 +10033,35 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaahaahcjgcsTcknckncmacmbcmcbZUbZUcmdbZUbZUchYcmeclecmfcmgcmhcmichYcjqcjqcjqcjqaahaahaahaahaahcmjcmjcmjcmjcllcmkcmlcmmcmncmocllaahaahbZXbZXcjubZXdEldEldEldElahyahycmRcmqcmrcmscmtcmtcmucmvcmwcmtcmxcjzahyahyahyahybambisbeccimcsUbecbeccmzcfRcfRcfRcfRcmAcmBcmBcmBcmCcmDcmDcmDcmEcmDcmFcmDcmGcmDcmDcsVcmHcmIcmJcmKcmDcmDcmHcsZcmDcmDcmLcmDcmDcmDcmMcmDcmDcmDcmDcmGcmDcmDcmDcmEcmDcmDcmDcmHcmNcmBctacmOcmPcmQcncahyahyaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahbZMbZMciVbZMbZMaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahahyahyahyahyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaahaahcjgcmScmTcmUcmVcmWcjgcmXbObcmZcnacnbcnScndcnecnfcngcnhcmichYaahaahaahaahaahaahaahaahaahcmjcnicnjcnkcllcnlcnlcnmcnlcnncllaahaahbZXcnocjubZXbWTckJccqdEldElahyclYcnpcnqcnrcnsckIcntcnucnvckIcnwcjzahyahyahyahybaibjQbeccimbDMbDNbeccmzcfRcnxcfRcnycnzcnAcnBcfRcnCcnxcfRcfRcnDcnxcnEcfRcnFcfRcnxcfRcjKcnGchicnHcevcevcnIcevcnJcevcnKcnMcevcnLcxCcevcnJcevcevcevcevcnJcevcnNcevcevcevcnIcnOcnQcnPcnRcfRbKGcodahyaahaahaahaahaahaahaahaahaahaahaahaahaahbZMbZMbZMbZMbZMbZMbZMbZMbZMbZMcnTciVcgnbZMbZMbZMbZMbZMbZMaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahahyahyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadbLjaahaahcjgcnUckXcnVcnWcnXcnYcnZcoacobcoacoccoocoecleclecofchYbRKchYaahaahaahaahaahaahaahaahaahcmjcogcohcoicllcojcokcolcnlcomcllaahaahbZXconcjubZXclxcrlcmycrqdElahycowckFckFcopcoqckIckIcorckIckIcoscjzahyahyahyahybbobbocotcimbcnbeccoAbboclmckLckMciFclmckMciFcovcoGcoxcoycozcoScoxcoBcovciFclmckLckMciFcoCckicoDcmBcoEciFclmckLckMciFciFclmckLckMczAclmckLckMciFciFdCQckMciFclmckLckMciFcoFckickicfRcoXciFciFaahaahaahaahaahaahaahaahaahaahaahaahaahbZMbZMcoHcoIcoJcoJcoJcoJcoJcoJcoJcoJcoKcoLcoLcoLcoMcoNcoObZMbZMaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaadbLjaahaahcjgcoPckncoQcmacoRcpqcoTcoUcoVcoacoWcpPcoYcoZcpacpbchYcpcchYaahaahaahaahaahaahaahaahaahcmjcpdcohcpecllcpfcpgcphcpicokcllaahaahcpjbZXcpkbZXcpjcvVcrrcvWdElahyahyahyahycjzcplcpmcpncpocppcpTcprcjzahyahyahyahyahybbobbocpscptcmzbbobboahyahyahyahyahyahycovcNHcpvcpwcpxcpycpzcpAcpBcNIcovahyahyahyciFciFcpDcpEckjciFciFahyahyahyczZcEVcEVcEVcEvcEvcEvcEVcEVcEWczZahyahyahyahyahyahyciFciFcjIcjIcjKciFciFaahaahaahaahaahaahaahaahaahaahaahaahaahaahbZMcpFcpGcpHbZMbZMbZMbZMbZMbZMbZMbZMbZMbZMbZMbZMbZMcpIcoMcpJbZMaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaadbLjaahaahcjgcoPckncoQcmacoRcpqcoTcoUcoVcoacoWcpPcoYcoZcpacpbchYcpcchYaahaahaahaahaahaahaahaahaahcmjcpdcohcpecllcpfcpgcphcpicokcllaahaahcpjbZXcpkbZXcpjcvVcrrcvWdElahyahyahyahycjzcplcpmcpncpocppcpTcprcjzahyahyahyahyahybbobbocpscptcmzbbobboahyahyahyahyahyahycovcxKcpvcpwcpxcpycpzcpAcpBcNIcovahyahyahyciFciFcpDcpEckjciFciFahyahyahyczZcEVcEVcEVcEvcEvcEvcEVcEVcEWczZahyahyahyahyahyahyciFciFcjIcjIcjKciFciFaahaahaahaahaahaahaahaahaahaahaahaahaahaahbZMcpFcpGcpHbZMbZMbZMbZMbZMbZMbZMbZMbZMbZMbZMbZMbZMcpIcoMcpJbZMaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaadaaaaahaahaahcjgcpKcpLcpMcpNcpOcqecpQcoacpRcoacpSchYcqzcpUcqzcpVcpWchZchYcpXcpXcpXcpXcpXcpXcpXcpXcpXcmjcmjcpYcmjcllcllcpZcqacllcpZcllcpXcpjcpjcFucFrcqdcpjdElcxWcyjdElcrIcqfcqfcqgcjzcjzcjzcjzcqhcjzcjzcjzcjzcrIcqfcqfcqfcqgcpjcqicqjcqkcqlcqmcpjcpjahyahyahyahyahycovcqncqocqpcqqcqrcqscrJcpBcqucovahyahyahyahycqvcqwcqxcqycqvahyahyahyahyczZcuIcuwcxUcEvcEvcEVcEVcEVcIFczZahyahyahyahyahyahyahycrNckicqAcqBciFaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahbZMcqCcgnbZMbZMaahaahaahaahaahaahaahaahaahaahaahbZMbZMcgncqDbZMaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaadaaaaaaaahaahaahcjgctxckncqFcqGcqHcqIcqJcqJcqKcqLcqMcqNcqOcqOcqPcqQcqRcqScqTcqUcqVcqWcqXcqYcqYcqYcqOcqZcracqYcrbcrccqYcqYcqOcrdcrecrfcrgcrhcricrjcMIcMjcrmcrncrocOZcrudBNcrscrtcrucrucrvcrucricrwcrxcrycrzcrAcrBcrAcrCcrAcrDcrAcrzcrAcrEcrFcrGcrucrHcrRahyahyahyahyahycrWcqtcrKcrLcrLcrMcrLcrLcpBcqtcrWahyahyahyahycsKcrOcrPcqycsKahyahyahyahycIHcEVcEVcEVcEVcEVcEVcEVcEVcJKcrQcrQcrQcsLcrScrTcrUcrQcrQctccsNctccrQcrQcrQcrQaahaahaahaahaahaahaahcrXcrXcrXcrXcrXbZMcrYcrZcrZcrZcrZcrZaahaahaahaahaahaahaahcsacsacsacsacsacsbbZMcsccsccsccsccscaahaahaahaahaahaahaahaahaahaahaahaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaadaaaaaaaaaaaaaahaahcjgcsdcknckncsecsfcsgcshcshcsicshcsjcskcslcsmcsncsncsncsocspcsqcsrcsqcsqcsqcsscsqcsqcsqcstcsqcsqcsqcsscsqcsqcsqcstcsqcsqcsucsvcswcsxcsycswcswcsvdBPcswcswcszcsAcsBcrucrucrucricrucsCcswcsDcswcsEcswcswcswcsFcswcsvcswcsGcsHcsIcrucsJcsRahyahyahyahyahyctmcqtcrKcrLcsMcsMcsMcrLcpBcqtctmahyahyahyctucsOcrOcsPcsQcumcsSahyahyahycMYcEVcEVcDncEVcEVcEVcEVcFecrQcrQcwtctdcsXcwtcwvcsXcsYcwwctbcsYctbctecxOcwxcrQcrQaahaahcrXcrXcrXcrXcrXctfctgcthcrXctictjcrZctkctlcurcrZcrZcrZcrZcrZcsacsacsacsactnctoctpcsactqctrcscctscttcuTcsccsccsccsccscaahaahaahaahaahaahaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaadaaaaaaaaaaaaaaabLjbLjcjgctvctwcALctycmacjgbRMctActBctCctDctEctFctGctHcrfcrfcrfctIctJctKcrfctLctMctNcrfctFctOcrfcrfctPctQctRctSctTctQctQctUctVctWcrocrpctXctYctZcuacubdCbcuadCfcuacuccudcuacuacuacubcuecufcuacubcuacugcuacuhcuicuacuacubcuacujcrucukcruculcuYahyahyahyahyahyctmcuncuocrLcsMcupcsMcrLcuqcunctmahyahyahycvacqycrOcrPcqycqycvaahyahyahycMYcJacEVcLvcEVcQdcEVcEVcEVcrQcxScsYcwrcwscwscwscwscwscwsczmczlczoczncPbcPbcBjcrQaahaahcrXcuucuvcuucrXcNfcuxcuKcrXcuzcuAcrZcuNcuCcuDcrZcuEcuFcuEcrZcuGcuHcuGcsacOScuJcvzcsacuLcuMcsccwEcuOcuPcsccuQcuRcuQcscaahaahaahaahaahaahaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaadaaaaaaaaaaaaaaabLjbLjcjgctvctwcALctycmacjgbRMctActBctCctDctEctFctGctHcrfcrfcrfctIctJctKcrfctLctMctNcrfctFctOcrfcrfctPctQctRctSctTctQctQctUctVctWcrocrpctXctYctZcuacubdCbcuadCfcuacuccudcuacuacuacubcuecufcuacubcuacugcuacuhcuicuacuacubcuacujcrucukcruculcuYahyahyahyahyahyctmcuncuocrLcsMcupcsMcrLcuqcunctmahyahyahycvacqycrOcrPcqycqycvaahyahyahycMYcJacEVcLvcEVcQdcEVcEVcEVcrQcxScsYcwrcwscwscwscwscwscwsczmczlczoczncPbcPbcBjcrQaahaahcrXcuucuvcuucrXcNfcuxdGMcrXcuzcuAcrZcuNcuCcuDcrZcuEcuFcuEcrZcuGcuHcuGcsacOScuJdHccsacuLcuMcsccwEcuOcuPcsccuQcuRcuQcscaahaahaahaahaahaahaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaadaadaadaadaadaadaadaadaadcuScuScvgcuUcuScuVcuWcuScuScuScuXcvocuZcuXcvrcvbcuXcvccvdcvecvfcpXcpXcpXcpXcpXcpXcpXcpXcpXcpXcpXcpXcpXcpXcpXcpXcpXcpXcpXcpXcpXcpjcvNcvhcrFcvicvjcpjcpjcpjcpjcrIcqfcqfcqfcqfcqgcpjbRRcvlcqdcpjcrIcqfcqgcpjcrIcqfcqgcpjcvmcrucrucrGcvncpjcpjahyahyahyahyahycwjcvpcuocrLcrLcrLcrLcrLcuqcvqcwjahyahyahycqvcwqcrOcrPcqycvscqvahyahyahycRUcWRcEVcEVcEVcEVcEVcEVcWRcrQcBkcsYcsYcsYcvucvucvucvucvuctbcDpcwzcsYcsYcsYcducrQaahaahcrXcvwcvxcvwcrXcrXcvycrXcrXcwFcwGcrZcrZcvBcrZcrZcvCcvDcvCcrZcvEcvFcvEcsacsacvGcsacsacvHcvIcsccsccvJcsccsccvKcvLcvKcscaahaahaahaahaahaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadcvMcvMcvMcvMcvMcvMcvMaadaaacxfcvOcvPcvQcvRcvScvTcvUdEKdEJcvXcvYcvZcwacwbcwccuXcpXcpXcpXcpXcpXaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahcpjcwdcwecwfcwgcwdcpjdELdELdELahyahyahyahyahyahycpjcwhcwicwhcpjahyahyahyahyahyahyahycxAcqicqicqicwkcqicxAahyahyahyahyahyahycovcuncwlcwmcwncwocuncuncuqcwpcovahyahyahycsKcqycrOcrPcqycqycsKahyahyahyczZcPicEVcEVcEvcPocEVcEVcEVcrQcvucvucsYcsYcBicDqdBUcxPbdUctbcxRcsYcFdcFdcFdcFdcrQaahaahcrXcwBcwCcwDcPvcwDcwJcwHcwLcwKcwUcwTcwXcwVcwMcwNcwMcwOcwPcrZcwQcwRcwScPBcwScyacyecybcyqcyfcwYcwZcxacxbcxccxbcxdcxecscaahaahaahaahaahaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadcvMcvMcvMcvMcvMcvMcvMaadaaacxNcxgcxgcxgcxgcvScvTcxhcxhcxicuXcxjcxkcxlcxmcxncuXcxocxpcxqcxraahaahaahaahaahcxrcxrcxrcxrcxrcxrcxrcxrcxrcxrcxrcxrcxrcxrcxrcxrcxrcxscxtcxucxvcxwcwhcwhcwhcwhcwhcwhcwhcwhcwhcwhcwhcxxcxycwhahyahyahyahyahyahyahyahycxzcyBcxBczkcxDcyBcxzahyahyahyahyahyahycovcovcxEcxFcxGcxHcxIcxJcxKcovcovahyahyahycumcsScxLcxMcqyctucsOahyahyahyczZczZcEVcTdcQncUncEVcEVddacrQcEFcxPcsYcsYcxQcxQcxQcxQcxQctbcxRcsYcFdcFdcFdcFbcrQaahaahcrXcxVdEMcxXcxYcxZcytcyrcrXcyccydcrZcAkcyucygcyhcyidENcykcrZcyldEPcyncyocypcAqcAucsacyscAxcBocBncyvcywcyxcyydEQcyAcscaahaahaahaahaahaahaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadcvMcvMcvMcvMcvMcvMcvMaadaaacxNcxgcxgcxgcxgcvScvTcxhcxhcxicuXcxjcxkcxlcxmcxncuXcxocxpcxqcxraahaahaahaahaahcxrcxrcxrcxrcxrcxrcxrcxrcxrcxrcxrcxrcxrcxrcxrcxrcxrcxscxtcxucxvcxwcwhcwhcwhcwhcwhcwhcwhcwhcwhcwhcwhcxxcxycwhahyahyahyahyahyahyahyahycxzcyBcxBczkcxDcyBcxzahyahyahyahyahyahycovcovdHdcxFcxGcxHcxIcxJdHecovcovahyahyahycumcsScxLcxMcqyctucsOahyahyahyczZczZcEVcTdcQncUncEVcEVddacrQcEFcxPcsYcsYcxQcxQcxQcxQcxQctbcxRcsYcFdcFdcFdcFbcrQaahaahcrXcxVdEMcxXcxYcxZcytcyrcrXcyccydcrZcAkcyucygcyhcyidENcykcrZcyldEPcyncyocypcAqcAucsacyscAxcBocBncyvcywcyxcyydEQcyAcscaahaahaahaahaahaahaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadcvMcvMcvMcvMcvMcvMcvMczTcyCcyDcyEcyFcxgcxgcvScyGcyHcyIcyJcyKcyLcyMaGXcyOcyPcuXcxqcxqcxqcxrcxrcxrcxrcxrcxrcxrcyQcyRcyScyScyScyScyScyScyScyScyScyScyScyTcyScyUcyVcyWcyXcyYcyVcyZczaczbczaczaczaczaczaczaczaczaczaczccwhahyahyahyahyahycxzcxzcxzcxzczdczebTgczgczhcxzcxzcxzcxzahyahyahyahycovcovcovcziczjczicovcovcovahyahyahyahyahycvacrOcrPcqycvaahyahyahyahyahyczZczZczZczZddeczZczZczZcrQcxQcxQcDocwycwycwycFccHvcHrcJzcHxcsYcFdcFdcFdcFdcrQaahaahcrXcrXcrXcrXcrXcrXcBqcrXcrXczpcuAcrZcrZcBrcrZcrZcrZcrZcrZcrZcsacsacsacsacsacBucsacsacuLcBvcsccsccsccsccsccsccsccsccscaahaahaahaahaahaahaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadcvMcvMcvMcvMcvMcvMcvMczrczsczrczscztczuczvczwczxczyczzcxgcArczBczCczDczEcuXcuXczFczGczGczGczGczGczGczGczGczGczGczHcxqcxrcxrcxrcxrcxrczIczIczJcxrcOHczKcxqcxrczLczMczNczOczPcwhczQczQddgddmddkczQczQcwhcwhcwhcwhczRcwhahyahyahyahyahycxzczSczScABczUczVczWczXczYcAIcAacAacxzaahahyahyahyahyaahaahczicAbcziaahaahaahahyahyahyahyahycqvcAccAdcAecqvahyahyahyahyahyahyahyahycBgcWQcBgahyaahcrQcJNcxTcKMcxTcxTcFacFacKNcxTcxTcMecDrcFdcFdcFdcmYcrQaahaahaahaahaahaahcAicAjcBxcAlcAicAmcAncAocApcCccBbcAoaahaahaahaahaahaahaahcAscAtcClcAvcAscAwcCmcAycAzcAAcBAcAyaahaahaahaahaahaahaahaahaahaahaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaaaaaaaaaaadcvMcvMcvMcvMcvMcvMcvMcACcADcACcAEcAFcxgcxgcvScvTcAGczzcAHcBTcAJcAKcMdbWMcuXcxqcANcxqcxqcxrcxrcxrcxrcxrcxrcxrcxrcAOcxrcxraahaahaahcxrcAPcAPcAPcxrcxrcxrcxrcwdcwdcAQcARcAScwdcwdcwhcwhcwhcwhcwhczQcwhcwhaahaahcwhczRcwhaahahyahyahyahycxzcATczecAUcAVczeczeczgcAWcAXczecAYcxzaahahyahyaahaahaahaahczicAZcziaahaahaahcBacCScBccBacqvcqvcBdcBecBfcqvcBgcBgcBgcBgcBgahyahyahycBgcWQcBgaahaahcrQcvucvucMXcGzcGAcGAcGAcNJcGAcGzcNMcsYcNVcNVcNWcNXcrQaahaahcAicAicAicAicAicBmcDycDxcAiczpcBpcAocDDcDCcBscAocAocAocAocAocAscAscAscAscBtcDMcDNcAscBwcBvcAycFkcBycBzcAycAycAycAycAyaahaahaahaahaahaahaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaaaaaaaaaaadcvMcvMcvMcvMcvMcvMcvMcACcADcACcAEcAFcxgcxgcvScvTcAGczzcAHcBTcAJcAKcMdbWMcuXcxqcANcxqcxqcxrcxrcxrcxrcxrcxrcxrcxrcAOcxrcxraahaahaahcxrcAPcAPcAPcxrcxrcxrcxrcwdcwdcAQcARcAScwdcwdcwhcwhcwhcwhcwhczQcwhcwhaahaahcwhczRcwhaahahyahyahyahycxzcATczecAUcAVczeczeczgcAWcAXczecAYcxzaahahyahyaahaahaahaahczicAZcziaahaahaahcBacCScBccBacqvcqvcBdcBecBfcqvcBgcBgcBgcBgcBgahyahyahycBgcWQcBgaahaahcrQcvucvucMXcGzcGAcGAcGAcNJcGAcGzcNMcsYcNVcNVcNWcNXcrQaahaahcAicAicAicAicAicBmcDydHfcAiczpcBpcAocDDcDCcBscAocAocAocAocAocAscAscAscAscBtcDMdHgcAscBwcBvcAycFkcBycBzcAycAycAycAycAyaahaahaahaahaahaahaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadcvMcvMcvMcvMcvMcvMcvMcEBcyCcBBcBCcxgcxgcxgcBDcvTcAGczzcBEcuXcvrcvbcuXcuXcuXcxrcANcBFcxrcxraahaahaahaahaahaahcxrcBGcBHcxraahaahaahcBIcBIcBJcBIcBIaahaahaahaahcwdcBKcxucxvcwdaahaahaahaahaahcwhczQcwhaahaahaahcwhczRcwhaahaahaahahyahycxzcxzcxzcxzcBLcBMcBNcBOcbocxzcxzcxzcxzaahaahaahaahaahaahaahczicAbczicziczicBacBacymcBRcBacBScEIcrOcrPcqycBUcBgcBVcBWcBXcBgcBgahyahycBgcWQcBgaTWaahcrQcNRcxPcMXcGzcHscHtcHucNUdFccGzcNMcsYcPccPccPccOVcrQaahaahcAicBZcCacCbcAicAicFlcAicAicCdcvAcAocFmcCecAocAocCfcCgcChcAocCicCjcCkcAscAscFncAscAscvHcFycAycAycCncAycAycCocCpcCqcAyaahaahaahaahaahaahaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadcvMcvMcvMcvMcvMcvMcvMcACcADcACcCrcyFcxgcxgcvScvTcAGczzcCscCtcCucCvcCwcCxcCycCzcCAcxrcxraahaahaahaahaahaahaahcxrcCBcCCcxrcxraahaahcBIcBQcCEcCDcBIcCGcCGcCGaahcwdcCHcCIcCJcCKcCKcCKcCKcCKcCKcCKcCLcCKcCKaahahycwhczRcwhaahaahaahaahahycxzcCMcCNcABcCOczVcCPcCQcCRcEKcCTcCUcxzaahaahaahaahaahaahaahczicCVcCWcCXcCXcCYcCZcDacDbcDccDdcDecDfcDgcDhcDicBgcDjcDkcDlcDmcBgcBgcBgcBgcWQcQzcBgcBgcrQclXcxQcMXcGzcHscHtcIGcOYcHwcGzcNMcsYcQHcQHdERcPacrQaahaahcAicDtcDucDvcDwcDvcFAcFzcDzcDAcwIcDBcHFcHAcDEcDFcDEcDGcDHcAocDIcDJcDKcDLcDKcHGcHKcDOcwWcHNcDPcDQcDRcDScDTcDScDUcDVcAyaahaahaahaahaahaahaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadcvMcvMcvMcvMcvMcvMcvMcDWcDXcDWcDYcDZcEacEbcEccEdcEeczzcEfcCtcEgcEhcEicEjcEkcCtcxrcxraahaahaahaahaahaahaahaahcxrcElcEmcxqcxraahaahcBIcBQcCEcCDcBIcEncEocCGcCGcwdcEpcEqcErcCKcEscEtcEuddpcEwcEwcEwcExcCKahyahycwhczRcwhaahaahaahaahaahcxzcATczecEycAVczecEzczgcEAcFHczeczecxzaahaahaahaahaahaahaahczicECcEDcEEcEDcBackacEGcEHcFXcEJcGfcELcEMcENcEOcEPcEQcERcERcEScETcEUcEUcQecZMcEXcQfcEYcEZcxTcxTcQgcQhcHscJLcJMcQFcHwcGzcNMcQIcQGcQGcQGcQGcQGaahaahcAicFfdEScFhcFicFjcIKcIJcAicyccydcAocIPcILcFocFpcFqdEUcFscAocFtdEVcFvcFwcFxcIQcIRcAscyscAxcKacJRcFBcFCcFDcFEdEWcFGcAyaahaahaahaahaahaahaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadcvMcvMcvMcvMcvMcvMcvMcGjcFIcFJcFKcDZcxgcxgcvScFLcyHcFMcFNcFOcFPcFQcFRcFScFTcCtaahaahaahaahaahaahaahaahaahaahcxrcElcFUcxqcxraahaahcBIcCFcCEcCDcBIcFWcGpcFYcFZcwdcGacGbcGccCKcGdcGecEwcEwcEwcEwcEwcEwcCKahyahycwhczRcwhaahaahaahaahaahcxzcxzcxzcxzcGqczecGgcGhcOIcGBczecGkcxzaahaahaahaahaahaahaahczicECcGlcziczicBacGmcGncGocGScEJcHccGrcrPcqycGscBgcGtcGucGvcGwcBgcBgcBgcGxcXdcERcERddqcrQcrQcrQcrQcrQcKJcKKcKLdhfcHwcGzcNMcQGcQGdkBdkBdlCcQGaahaahcAicAicAicAicAicAicKbcAicAiczpcuAcAocAocFmcAocAocAocAocAocAocAscAscAscAscAscKScAscAscuLcBvcAycAycAycAycAycAycAycAycAyaahaahaahaahaahaahaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadcvMcvMcvMcvMcvMcvMcvMaadaaacHHcGCcGDcGEcGEcGFcGGcGGcGGcGGcGHcGIcGIcGJcGKcGLcCtbkQbkQahyahyahybkQbkQaahaahaahcxrcGMcGNcxrcxraahaahcBIcFgcGPcFFcBIcGRcHRcCGcCGcwdcGTcCIcGUcGVcGWcGWcGWcGXcGXcGXcGXcGYcCKahyahycwhczRcwhaahaahaahaahaahcxzcGZczecABcHaczVcCPcCQcHbcHSczecGkcxzaahaahaahaahaahaahaahczicAbczicziaahcBacHdcHedmEcHgcHfcHccHicHjcHkcHlcHmcHncHocHmcHpcHmaahcBgcBgcHqcGxcGxdnjcOUdBScFVcMfcrQcrQcMgcMhdhfcHwcGzdBVdDhdDgdDjdDidDkcQGaahaahaahaahaahaahcHycHzcKTcHBcHycHCcHDcHEcKXcKWcIzcHEaahaahaahaahaahaahaahcHIcHJcLgcHLcHIcHMcLhcHOcHPcHQcJtcHOaahaahaahaahaahaahaahaahaahaahaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadcvMcvMcvMcvMcvMcvMcvMaadaaacJwcGCcDXcHTcDXcHUcHVcxgcxgcHWcCtcHXcGKcHYcHZcIacCtbkQcIbcIccIccIccIcbkQaahaahaahcxrcIdcIecxraahaahaahcBIcBQcIfcGOcBIcIhcIicIjcIkcwdcIlcImcIncCKcGecIocGecEwcGecEwcEwcEwcCKahyahycwhczRcwhaahaahaahaahaahcxzcIpczecIqcAVcIrcIscItcAWcIuczecGkcxzaahaahaahaahaahaahaahczicAbcziaahaahcBacIvcIwcHhcFXcIycKDcrOcrPcIAcDicHmcIBcICcIDcIEcHmaahaahcBgcHqcBgcOTdDlcNKcNTcNLcNNctzcNOcNPcNQdDmcNScNTdDncQGdDodDqdDpdDrcQGaahaahcHycHycHycHycHycIIcMpcMocHyczpcuAcHEcMqcIMcINcHEcHEcHEcHEcHEcHIcHIcHIcHIcIOcMrcMscHIcuLcBvcHOcMtcIScITcHOcHOcHOcHOcHOaahaahaahaahaahaahaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaadcvMcvMcvMcvMcvMaadaadaadcuScuScuScuScuScuScuScIUcIVcIWcIXcIYcIZddOcJbcCtcCtahycIccJccJdcJccIcahyahyaahcJecJecJfcJgcJeaahaahaahcBIcBQcJhcJicJjcJkcJlcJmcJmcwdcJncJocJpcCKcJqcGecEwcEwcEwcEwcJrcExcCKahyahycwhczRcwhaahaahaahaahaahcxzcJsczecMLcJuczVcJvczXczYcNgczeczecxzaahaahaahaahaahaahaahczicAbcziaahaahcBacJxcJycIxcGScJAcJBcJCcJDcJEcJFcHmcJGcJHcJIcJJcHmaahaahcBgcGycBgcBgcBgcrQdFdcsYcOWcOXcrQcHtdDscOYdDtcsYdDucQGdDvcQGdDwcQGcQGaahaahcHycJOcJPcJQcHycHycMucHycHycJScvAcHEcMvcJTcHEcHEcJUcJVcJWcHEcJXcJYcJZcHIcHIcMwcHIcHIcvHcMxcHOcHOcKccHOcHOcKdcKecKfcHOaahaahaahaahaahaahaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadcvMcvMcvMcvMcvMcvMcvMaadaaacJwcGCcDXcHTcDXcHUcHVcxgcxgcHWcCtcHXcGKcHYcHZcIacCtbkQcIbcIccIccIccIcbkQaahaahaahcxrcIdcIecxraahaahaahcBIcBQcIfcGOcBIcIhcIicIjcIkcwdcIlcImcIncCKcGecIocGecEwcGecEwcEwcEwcCKahyahycwhczRcwhaahaahaahaahaahcxzcIpczecIqcAVcIrcIscItcAWcIuczecGkcxzaahaahaahaahaahaahaahczicAbcziaahaahcBacIvcIwcHhcFXcIycKDcrOcrPcIAcDicHmcIBcICcIDcIEcHmaahaahcBgcHqcBgcOTdDlcNKcNTcNLcNNctzcNOcNPcNQdDmcNScNTdDncQGdDodDqdDpdDrcQGaahaahcHycHycHycHycHycIIcMpdHhcHyczpcuAcHEcMqcIMcINcHEcHEcHEcHEcHEcHIcHIcHIcHIcIOcMrdHicHIcuLcBvcHOcMtcIScITcHOcHOcHOcHOcHOaahaahaahaahaahaahaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaadcvMcvMcvMcvMcvMaadaadaadcuScuScuScuScuScuScuScIUcIVcIWcIXcIYcIZddOcJbcCtcCtahycIccJccJdcJccIcahyahyaahcJecJecJfcJgcJeaahaahaahcBIcBQcJhcJicJjcJkcJlcJmcJmcwdcJncJocJpcCKcJqcGecEwcEwcEwcEwcJrcExcCKahyahycwhczRcwhaahaahaahaahaahcxzcJsczecMLcJuczVcJvczXczYcNgczeczecxzaahaahaahaahaahaahaahczicAbcziaahaahcBacJxcJycIxcGScJAcJBcJCcJDcJEcJFcHmcJGcJHcJIcJJcHmaahaahcBgcGycBgcBgcBgcrQdFdcsYcOWdHjcrQcHtdDscOYdDtcsYdDucQGdDvcQGdDwcQGcQGaahaahcHycJOcJPcJQcHycHycMucHycHycJScvAcHEcMvcJTcHEcHEcJUcJVcJWcHEcJXcJYcJZcHIcHIcMwcHIcHIcvHcMxcHOcHOcKccHOcHOcKdcKecKfcHOaahaahaahaahaahaahaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaadaadaadaadaadaadaaaaadbkQaahaahaahaahaahcuScuScuScuScCtcCtcCtcCtcCtcCtaahahycIccJccJccJccIcahyahyaahcJecKgcKhcKicJecKjcKjcKjcBIcBIcKkcKlcBIcKmcKncKocKpcKqcKrcKscKtcKqcKucGedeccKvcEwcKwcKwcKwcCKahyahycwhczRcwhaahaahaahaahaahcxzcKxczecHScKyczecKzczgcKAcHScKBcKBcxzaahaahaahaahaahaahaahczicAbcziaahcKCcKCcNYcKEcKFcKCcKCcKCcKGcKHcKIcKCcKCcKCcKCcKCcKCcKCcKCaahcBgcHqcBgaahaahcrQcrQcQAcQBcQCcrQcQDcQEdDydDxcsYcsYcQGdDzcQGdDAcQGaahaahaahcHycKOcKPcKQcKRcKQcMzcMycKUcDAcwIcKVcMBcMAcKYcKZcKYcLacLbcHEcLccLdcLecLfcLecMCcMDcLicwWcHNcLjcLkcLlcLmcLncLmcLocLpcHOaahaahaahaahaahaahaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaadaaaaaaaaaaaaaaaaaaahyaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahahycIccLqcLrcLscIcahyaahaahcJecLtcLudEXcJecLwcLxcLycLzcBIcLAcBIcCGcCGcLBcCGcLCcKqcLDcLEcLFcKqcLGcLGcLGcLGcLGcLGcLGcLGahyahyahycwhczRcwhcziaahaahaahaahcxzcxzcxzcxzcLHcLIcLJcLKcLLcxzcxzcxzcxzaahaahaahaahaahaahcziczicAbczicKCcKCcLMcLNcLOcLPcLQcLRcLScLTcLUcLVcLWcLXcLYcLZcMacMbcMccKCcKCcBgcHqcBgahyaahaahcrQcrQcrQcrQcrQcrQcrQcrQcrQdDCdDBcQGcQGcQGcQGcQGaahaahaahcHycMidEYcMkcMlcMmcMndBWcHycyccydcHEdBYdBXdCadBZdCcdEZdCedCddCgdFadCidChdCkdCjdClcHIcysdCmdCodCncMEcMFcMGcMHdFbcMJcHOaahaahaahaahaahaahaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaadaaaaaaaaaaaaaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahahyahyahybkQcIccMKcNZcMMcIcbkQcMNcMNcMNcMNcMPcMOcKjcMQcMRcMScMTcMUcMVcMWdDDcoucMZcNacMUcNbcNccNdcNecrVcOpcNhcNicNjdaOcLGcNlcLGcLGahyahycwhcNmcNncziczicziczicziczicNocNpcxzcNqcxzcNrcxzcNqcxzcEDcEDcziczicziczicziczicziczicUqcXxcUucKCcNucLPcLPcNvcNwcNwcNxcNycNzcNAcNBcNCcNDcNEcNEcNEcNFcLPcNGcKCcZgdDEcBgahyahyaahaahaahaahaahaahaahaahcWudDFdbMdbMdDGcWuaahaahaahaahaahaahcHycHycHycHycHycHycHycHycHyczpcuAcHEcHEcHEcHEcHEcHEcHEcHEcHEcHIcHIcHIcHIcHIcHIcHIcHIcuLczqcHOcHOcHOcHOcHOcHOcHOcHOcHOaahaahaahaahaahaahaahaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaadaaaaaaaaaaaaaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahahyahyahybkQcIccMKcNZcMMcIcbkQcMNcMNcMNcMNcMPcMOcKjcMQcMRcMScMTcMUcMVcMWdDDcoucMZcNacMUcNbcNccNdcNecrVcOpcNhcNicNjcTfcLGcNlcLGcLGahyahycwhcNmcNncziczicziczicziczicNocNpcxzcNqcxzcNrcxzcNqcxzcEDcEDcziczicziczicziczicziczicUqcXxcUucKCcNucLPcLPcNvcNwcNwcNxcNycNzcNAcNBcNCcNDcNEcNEcNEcNFcLPcNGcKCcZgdDEcBgahyahyaahaahaahaahaahaahaahaahcWudDFdbMdbMdDGcWuaahaahaahaahaahaahcHycHycHycHycHycHycHycHycHyczpcuAcHEcHEcHEcHEcHEcHEcHEcHEcHEcHIcHIcHIcHIcHIcHIcHIcHIcuLczqcHOcHOcHOcHOcHOcHOcHOcHOcHOaahaahaahaahaahaahaahaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaadaaaaaaaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahahyahyahybkQbkQcOsahycOMbkQbkQcMNcOacObcOccOdcOecOfcOgcOhcOicMTcOjcOkcOlcOlcOmcOncOocPFcOqcNccNdcNecOrcPPcOtcOtcyzdDHcOvcOtcOwcLGahyahycwhcOxcOycOzcOAcOBcOCcOCcOCcOCcOAcOAcOAcODcOEcOFcOAcOCcOCcOGcOCcOCcOCcOCcOCcOCcOCcOCdlDdBIdBHcKCcOKcLPcLPcOLcLPcLPcPYcONcOOcOPcOQcONcPYcLPcLPcLPcORcLPcLPcKCdBJcHqcBgahyahyahyaahaahaahaahaahaahaahcWudDIdbMdbMdDJcWuaahaahaahaahaahaahcPdcPecPfcPgcPhaGYcPjcPkcPdcPlcPmcPncuscPpcPpcPqcPpcutcPrcPscPpcPtcPpcPucPpcPpcvkcPncPwcPlcPxcPycPzcPAaEycPCcPDcPEcPxaahaahaahaahaahaahaahaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaadaaaaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahahyahyahycQscPGcPGcPHcPGcPIcPJcPKcMNcPLcPMcPMcPNcPOcRfcPQcPRcPScMTcPTcPUcOocPVcPWcOocPXcRucPZcNccQacQbcQcdcEdDKdDMdDLdDNcQicQjcQkcLGahyahycwhcQlczQczicziczicziczicziczicziczicEDcEDcEEcNscEDczicziczicziczicziczicziczicziczicQmcEDdBKcKCcQocQocLPcQpcQqcQrcRJcQtcOOcQucQvcQwcRJcQxcQocLPcQycQqcQocKCdCRcHqcBgahyahyahyahyaahaahaahaahaahaahcWucWudDPdDOcWucWuaahaahaahaahaahaahcPdcQJcQKcQKcQLcQKcQKcQMcQNcQOcQPcQQcQRcQRcQRcQScQRcQTcQUcQVcQWcQXcQRcQYcQRcQRcQRcQQcQZcRacRbcRccRccRccRdcRccRccRecPxaahaahaahaahaahaahaahaahaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadbLjbLjaahaahaahaahaahaahaahaahaahaahaahaahaahaahahyahycSAcRgcRhcRicRjcRkcRlcRmcRncRocRpcRqcRrcRscRtcSLcRvcRwcRxcMTcRycPUcRzcRAcRBcRCcOlcRDcREcRFcRGcRHcRIcTadDQcRKcRLcRMcRNcROcRPcLGahyahycwhcRQcwhcziahyahyahyahyahyahyahycziczicziczicziczicziaahaahaahaahaahaahaahaahaahcziczicRRdCScKCcRTcRWcRVcLPcRWcRXcRJcRYcOOcOPcOQcRZcRJcRTcRWcLPcRVcRWcSacKCdCTcSccBgahyahyahyahyahyaahaahaahaahaahahydDRdbMdDScWuaahaahaahaahaahaahaahcPdcSdcSecSfcSgcShcSicSjcSjcSkcSlcSmcSlcSlcSlcSncSlcSlcSlcSocSpcSqcSqcSrcSqcSqcSqcSscStcSkcSucSucSvcSwcSxcSycSycSzcPxaahaahaahaahaahaahaahaahaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahbLjbLjaahaahaahaahaahaahaahaahaahbkQbkQahyahyahybkQbkQcTZcSBcSCcPMcSDcPMcSEcSFcSGcSHcPMcPMcSIcSJcSKcUlcSMcSNcSOcMTcSPcSQcSRcSScSTcSUcSVcSWcSXcSYcSZcNecRIcUscTbcOtcTccOtcTecTfcTgcLGahyahycwhcRQcwhahyahyahyahyahyahyahyahyahyahyahyahyaahaahaahaahaahaahaahaahaahaahaahaahaahczicThcRScKCcTicTjcTkcLPcTlcTjcRJcTmcTncTocOQcTmcRJcTjcTjcTpcLPcTlcTqcKCcSbcTrcBgahyahyahyahyahyahyahyahyahyahyahydDTdbMdDUcWuaahaahaahaahaahaahaahcPdcPdcTscTtcTucTvcTwcTxcPdcPncPncPncTycTzcTzcTAcTBcTCcTDcTEcTFcTGdCUcTHcTzcTzcTIcPncPncPncPxcTJcTKcTLcTMcTNcTOcPxcPxaahaahaahaahaahaahaahaahaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahbLjbLjaahaahaahaahaahaahaahaahaahbkQbkQahyahyahybkQbkQcTZcSBcSCcPMcSDcPMcSEcSFcSGcSHcPMcPMcSIcSJcSKcUlcSMcSNcSOcMTcSPcSQcSRcSScSTcSUcSVcSWcSXcSYcSZcNecRIcUscTbcOtcTccOtcTedaOcTgcLGahyahycwhcRQcwhahyahyahyahyahyahyahyahyahyahyahyahyaahaahaahaahaahaahaahaahaahaahaahaahaahczicThcRScKCcTicTjcTkcLPcTlcTjcRJcTmcTncTocOQcTmcRJcTjcTjcTpcLPcTlcTqcKCcSbcTrcBgahyahyahyahyahyahyahyahyahyahyahydDTdbMdDUcWuaahaahaahaahaahaahaahcPdcPdcTscTtcTucTvcTwcTxcPdcPncPncPncTycTzcTzcTAcTBcTCcTDcTEcTFcTGdCUcTHcTzcTzcTIcPncPncPncPxcTJcTKcTLcTMcTNcTOcPxcPxaahaahaahaahaahaahaahaahaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaahaahaahaahaahaahaahaahaahaahaahaahbkQcIccIccIccIccIcbkQcTZcSBcTPcTQcTRcTScTTcTUcTVcTWcPMcPMcTXcSIcTYcKjcUvcUacUvcMTcUbcUccUdcUecUecUfcPXcPFcUgcUhcUicUjcRIcUkcUycUmcUodcLcUkcUkcUkcLGahyahycwhcUpcwhahyahyahyahyahyahyahyahyahyahyahyahyahyahyaahaahaahaahaahaahaahaahaahaahahyczidCVcRScKCcUrcLPcORcLPcLPcLPcUHcONcOOcOPcOQcONcUHcLPcLPcOLcLPcLPcUtcKCcSbdCWcBgahyahyahyahyahyahyahyahyahyahyahycWudDWdDVcWuaahaahaahaahaahaahaahaahcPdcUIcUwcUwcUwcUxcPdcPdaahaahcPncPncUYcUzcUzcUAcPncUBcUCcUDcPncPncPncPncPncPncPnaahaahcPxcPxcPxcPxcPxcPxcPxcPxaahaahaahaahaahaahaahaahaahaahaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaahaahaahaahaahaahaahaahaahaahaahaahahycIccUEcUEcUFcUGcVucVgcUJcUKcULcUMcPMcUMcUNcUOcUPcUQcURcUScUTcUUcUVcRqcUWcUXcVQcUZcOocOocOocOocOocVacRucVbcUhcVccNecVdcVecVfcWicVhcVicVjcVkcVlcVmahyahycwhcRQcwhahyahyahyahyahyahyahyahyahyahyahyahyahyahyahyahyaahaahaahahyahyahyahyahyahyczicVncEDcKCcLPcLPcVocNEcNEcNEcNDcNCcVpcVqcVrcNycNxcNwcNwcVscLPcLPcLPcKCcGxcVtcBgahyahyahyahyahyahyahyahyahyahyahydDRdbMdbScWuaahaahaahaahaahaahaahaahahyahyahyahyahyahyahyaahaahaahaahahyahyahyahyahycWvcVvcVwcVxcPnaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaahaahaahaahaahaahaahaahaahaahaahaahaahahycIccVycVzcVAcNZahycTZcVBcVCcVDcVEcVFcUMcVGcVHcVIcVJcVKcVKcVLcVMcVNcPMcVOcVPcWBcVRcVScVScVTcOocVUcVVcMTcVWcVXcVYcNecVZcWacWbcWicWccWdcWecWfcWgcVmcwhcwhcwhcRQcwhcWhcWhcWOcWjcWkcWhcWhcWOcWjcWkcWhcWhahyahyahyahyahyahyahyahyahyahyahyahycziczicWlczicKCcWmcWncWocWpcvtcLPcLRcONcOOcOOcOQcONcLRcLPcvtcWpcWqcWrcWscKCcBgcWtcBgcBgahyahyahyahyahyahyahyahyahyahydDTdbMdbScWuaahcWucWucWucWucWuaahaahahyahyahyahyahyaahaahaahaahaahaahaahahyahyahyahycXncWwcWxcWycWuaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaahaahaahaahaahaahaahaahaahaahaahaahaahbkQcIccUEcUEcWzcWAcVucXucWCcWDcWEcWFcWGcWHcWIcWJcWJcWJcWFcWFcWFcWKcWLcPMcWMcWNcMTcMTcXycWPcwAcvvcXycWPcWScWTcWUcVYcNecWVcWWcWXcWicWYcWZcXacXbcXccVmdDXcXecXecXfczQcWhcXgcXhcXicXjcXkcXlcXhcXmcXhcXhcWhcWhcXHcXocXocXocXocXocXpcXqcXHcXpcXqcXqcXrcXscXtcKCcKCcNYcKEcKFcKCcKCcKCcYfcXvcXvcKIcYfcKCcKCcKCcNYcKEcKFcKCcKCcXtcXwdCXcXqcXqcZncXzcXzcXzcXAcWucWucWudDYcWucWwdDZcWucWucWucXBcXCcXCcWucWucWucWucZncXzcXzcXAcWucWucWucWucWucWucWucZncXzcXzcXAcWucXDcXEcXFcWucXGcXGcXGcXGcXGaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaahaahaahaahaahaahaahaahaahaahaahaahaahbkQcIccUEcUEcWzcWAcVucXucWCcWDcWEcWFcWGcWHcWIcWJcWJcWJcWFcWFcWFcWKcWLcPMcWMcWNcMTcMTcXycWPcwAcvvcXycWPcWScWTcWUcVYcNecWVcWWcWXcWicWYcWZcXacXbcXccVmdDXcXecXecXfczQcWhcXgcXhcXicXjcXkcXlcXhcXmcXhcXhcWhcWhcXHcXocXocXocXocXocXpcXqcXHcXpcXqcXqcXrcXscXtcKCcKCcNYcKEcKFcKCcKCcKCcYfcXvcXvcKIcYfcKCcKCcKCcNYcKEcKFcKCcKCcXtcXwdCXcXqcXqcZncXzcXzcXzcXAcWucWucWudDYcWucWwdDZcWucWucWucXBcXCdHkcWucWucWucWucZncXzcXzcXAcWucWucWucWucWucWucWucZncXzcXzcXAcWucXDcXEcXFcWucXGcXGcXGcXGcXGaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaahaahaahaahaahaahaahaahaahaahaahaahaahbkQcIccIccIccIccIcbkQcZocXIcXJcVDcXKcXLcUMcUNcXMcXMcXNcUOcVEcXOcXPcWFcXQcXRcXScXTcXUcXVcXWcXXcXYcXZcYacYbcYacYccYdcNecYecWacNcdaTcYgcYhcYicYjcYkcVmcRQczQcYlczQczQcYmcYncYocYpcYqcYncYrcYpcYscYtcYucYvcYwcYxcYycYxcYxcYzcYxcYAcYBcYxcYxcYCcYDcYEcYFcYGcYHcYCcYxcYIcYxcYycYJcYKcYxcYxcYxcYLcYxcYMcYNcYycYxcYxcYxcYCcYxcYGcYOcYPcYPcYQcYRcYScYRcYTcYRcYUcYVdCYcYRcYScYWcYRcYRcYXcYScYYcYRcYZdCYcYXcYRcZacYRcYRcZbcYRcYRcZccYUdCYcYRcYRcZdcYRcYRcYScYRcYXcZecZfcXFdCZcXGcZhcZicZjcXGaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaahaahaahaahaahaahaahaahaahaahaahaahaahbkQcIccZkcZkcZlcZmdbDdbdcZpcZqcVMcZrcPMcUMcUNcZscZtcZucVGcVHcZvcZqcZwcZxcZycZqcZzcZAcZBcZCcZDcZEcZFcZGcZHcZGcZIcZJcZKcZLdmbcZNcZOcZPcZQcZRcZScZTcVmcRQcwhcwhcZUcwhcZVcZWcZXcWhcZVcZWcZYcWhcZVcZZdaadabdacdaddaddaddaedaddaddafdaddaddaddagdaedahdaidajdakdagdaddajdaddaddaddaedaddaddaddaddaddafdaddaddaddaddaddagdakdajdaldaddaedagdamdamdamdandamdamdaodamdamdamdapdamdamdaqdaodardasdatdaudaqdamdandamdamdaodamdamdamdamdamdamdamdavdamdamdaudamdaqdawdaxdaydazdaAdaBdaCdaDcXGaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaahaahaahaahaahaahaahaahaahaahaahaahaahahycIcdaEdaFdaGcNZahycTZdaHdaIdaJdaKcTSdaLcUNdaMdaNaImcUNcPMdaPcPMdaQcPMcPMdaRdaSdaSdbIdaUdaVdaWdbIdaUdaSdaXdaYdaZdbadbbdbcdbNdbedbfdbgdbNdbedbcdbccRQcwhdbhdbidbjcZVdbkdbldbmcWhdbndbldbocZVcWhdbpcXhdbqdbrdbrdbrdbsdbtdbrdbrdbudbrdbrdbvdbwdbxdbydbzdbAdbBdbCdcedbCdbCdbEdbFdbCdbCdbGdbCdbCdbCdbHdbCdbCdcfdbCdbBdbJdbzdbydbKdbLdbvdbMdbMdcrdbMdbMdbMdbOdbMdbMdbMdbPdbMdbMcWwdbQdbRdbScXEdbTcWwdbMdcrdbMdbMdbUdbMdbVdbMdbMdbMdbVdbMdbMdbMdbMdbWdbMcWwdbWdbXcXFdbYcXGdbZdcadcbcXGaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa @@ -10016,7 +10075,7 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaahaahaahaahaahaahaahaahaahahyahyahyahyahydjtdizdiAdiBdiCdiBdiDdiEdiCdiBdiFdiEdiCdiCdiDdiGcMNcMNdaSdiHdiIdiJdiKdjudiMdiNdiOdgzdfFdihdgBdiidijdiPdiQdiRdijdhrdiSdiTdiUdiVdiWcwhahyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadiXdcWdjvdiZdjadcXdcXdcXdcXdcXdcWdjwddYdjcdjddjedcWaaaaaaaaadeddeddeddeddeddeddeddeddeddeddedaaaaaaaaaddcdjfdjgdjhdeidjiddcaaaaaaaaadjjdjkdjkdjkdjkdjkdjjaaaaaaaaaddidjldemdjmdjndjoddiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaddodjpdjqdjrdjsddsaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaahaahaahaahaahaahaahaaaaaaaaaahydkCdjxdbDdbDdkJdjxdkLdbDdkJdjxdkLdbDdkJdkUcOsbkQbkQahydaSdgzdgzdgzdgzdgzdjydgzdgzdgzdjzdjAdjBdjCdjCdjCdjCdjCdjCdjCdjCdjCcxxdhtcwhcwhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadeqdeXddYddZdgRdfadeqaaaaaaaaadeddeddeddeddeddeddeddeddeddeddedaaaaaaaaadeWdfddgSdehdeidfgdeWaaaaaaaaadjjdjDdjEdjkdjEdjDdjjaaaaaaaaadfbdfidemdendhGdfldfbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadfcderdesdixdgXddsaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacAacAacAacAacAacAacAacAacAacAacAacAacAacAacAacAacAacAacAaaadjFaaabkQcIcdjGcNZcMKcIcdjGcNZcMKcIcdjGcNZcMKcIcbkQaahdjHdjHdjIdjJdjKdjLdjMdjNdjOdjPdjQdjRdjSdjCdjTdjUdjVdjWdjXdjYdjZdjCdjCdhtcwhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadgwdfRdfSdkadfUddZdgRdebdfhaaaaaadeddeddeddeddeddeddeddeddeddeddeddeddedaaaaaadhMdejdgSdehdeidgSdhMaaaaaadisdkbdkcdkcdkddkcdkcdkbdiwaaaaaadifdhGdemdendhGdepdifaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadiyderdesdixdgXddsddsaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacAaaaaadaadaadaaaaadaadaadaaaaadaadaadaaaaadaadaadaaaacAaaddkeaadbkQcIcdkfdkgdkhcIcddrdcYdfQcIcdkldkmdkncIcaahaahdjHdkodkpdkqdkrdksdktdkqdkudjPdkvdkwdkxdjCdkydkydkzdjXdjXdkAdkAdEbdjCdhtcwhdkYaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadkDdkEdkFdkGdkHddZdkIdlEdfSdfRdkKdeddeddeddeddeddeddeddeddeddeddeddeddeddlUdkMdkNdkOdkPdehdeidfgdhMaaaaaadjjdjkdkQdjkdjkdjkdkRdkSdjjaaaaaadifdfidemdendkTdlYdkVdkWdkXaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadmGdkZdladlbdlcdixdgXdldddsaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacAaaaaadaadaadaaaaadaadaadaaaaadaadaadaaaaadaadaadaaaacAaaddkeaadbkQcIcdkfdkgdkhcIcddrdcYdfQcIcdkldkmdkncIcaahaahdjHdkodkpdkqdkrdksdktdkqdkudjPdkvdkwdkxdjCdkydkydkzdjXdjXdkAdkAdEbdjCdhtcwhdkYaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadkDdkEdkFdkGdkHddZdkIdlEdfSdfRdkKdeddeddeddeddeddeddeddeddeddeddeddeddeddlUdkMdkNdkOdkPdehdeidfgdhMaaaaaadjjdjkdHmdHldjkdHldHndkSdjjaaaaaadifdfidemdendkTdlYdkVdkWdkXaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadmGdkZdladlbdlcdixdgXdldddsaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacAaaadledlfdlgaaadledlfdlgaaadledlfdlgaaadledlfdlgaaaacAaadaadaaaaaacIcdlhdlidlhcIcdkjdkidkjcIcdlkdlldlkcIcaahaahdjHdlmdlndkqdlodlpdlqdlrdlsdltdludlvdlwdlxdlydlzdlAdlzdlzdlBdlzdEcdjCdhtdDadoidlFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadhIdfRdhvdkadlGdlHdlIdlJdlKdlLdlMdeddeddeddeddeddeddeddeddeddeddeddeddeddlNdlOdlPdlQdlRdlSdlTdokdkNdkMdlVdjjdlWdjkdjkdjkdjkdjkdlXdjjdoEdkWdkVdkXdlZdmadDbdmcdmddmedmfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadmgdmhdmidmjdDcdixdgXdmlddsaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacAaaddledmmdlgaaddledmmdlgaaddledmmdlgaaddledmmdlgaadacOaaaaadaadaaacIcdlhdmndlhcIcdkjdkkdkjcIcdlkdmpdlkcIcaahaahdjHdlmdmqdkqdlpdlpdmrdmsdmtdmudmvdmwdmxdmydmzdmAdmBdmCdmCdmDdlzdEddjCdhtczQdmFdppaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadfmdeXddYddZdmHdmIdmJdmKdmLdeddeddeddeddeddeddeddeddeddeddeddeddeddmMdmNdmOdmPdmQdehdmRdmSdmTdgSdmSdkddjkdmUdmUdjkdmUdmUdjkdkddmVdhGdmWdmVdmXdendmYdmZdnadnbdncaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadnddnednfdngdnhdixdgXdniddsaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacAaaadledmmdlgaaadledmmdlgaaadledmmdlgaaadledmmdlgaaaaadaaaaaaaadaadcIccIccIccIccIccIccIccIccIccIccIccIccIcaahaahdjHdkodkpdkqdlodlpdktdkqdEedjPdfFdihdnkdjCdnldnmdnndnodnpdnqdnrdnsdjCdntczQdnudppaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadiXdcWdjvdiZdjadcXdcXdcXdcXdcXdcWdnvddYddZdnwdlEdhvdfRdfTdeddeddeddeddeddeddeddeddeddeddeddeddeddokdkMdnxdkOdnydehdnzdokdnxdkMdkOdjjdjkdjkdjkdjkdjkdjkdjkdjjdlYdkWdnAdkXdnBdendnCdlYdnAdkWdkXaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadmGdkZdnDdlbdnEdixdgXdnFddsaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa @@ -10026,7 +10085,7 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacAaaddpFdpGdpGdpGbCXdpGdpGdpGbCXdpGdpGdpGbCXdpGdpGdpGbCXdpGdpGdpGdpGdpGdpKdpLdpMdpNdpOcBhcAMdpRdpSdpTdpUdpVdpWdpXdpYdpZdqadqbdqcdqddqedoudoudqfdoudqgdoudqhdqidoudoudqjdoudqfdqkdqldqmdqndqodqpdqqcwhdqYaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadnUdnUdnUdnUdnUdnUdnUdnUdnUdnUdnUdnUdhIdfRdhvdkadqsdcZdqtdlEdfSdfRdfTdeddeddeddeddeddeddeddeddeddeddeddeddeddokdkMdkNdkOdquddfdqvdokdkNdkMdkOdjjdqwdjkdjkdjkdjkdjkdqxdjjdlYdkWdkVdkXdqyddldqzdlYdkVdkWdkXaaaaaaaaaaaadqAdqAdqAdqAdqAdqAdqAaaaaaadmGdkZdladlbdqBdqCdqDddsaahaahaahdqEdqEdqEdqEdqEdqEdqEaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadoBdoBdoBdoBdoBdoBdoBdoBdoBaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacAaaaaadaaaaaaaadbCWaadaaaaadbCWaadaaaaadbCWaadaaaaadbCWaadaaaaadaaaaaaaaadqNdoFdqGdqHcBPcBldojdnGdqJdqKdnGdnGdrxdoldqMdnGdrAdqOdqOdqPdqOdqQdqRdqQdqSdrBdqUdqVdrBdqUdqSdqWdqXdsLdnGdqZdqZdnGdnGcwhcwhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadnUdnUdnUdnUdnUdnUdnUdnUdnUdnUdnUaaaaaaaaadfmdeXddYddZdmHdradrbdrcdrddeddeddeddeddeddeddeddeddeddeddeddeddeddredrfdrgdrhdmQdehdmRdmSdridgSdmSdkddjkdmUdmUdjkdmUdmUdjkdkddmVdhGdrjdmVdmXdendmYdrkdrldrmdrnaaaaaaaaadqAdqAdqAdqAdqAdqAdqAdqAdqAaaadrodrpdrqdrrdnhdixdgXddsdqEdqEdqEdqEdrsdrtdrudrvdrsdqEdqEdqEdqEdqEdqEdqEdqEdqEdqEdqEdqEaahaahaahaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadoBdoBdoBdoBdoBdoBdoBdoBdoBaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacAacAacAaadaaddledrwdlgaaadledrwdlgaaadledrwdlgaaadledrwdlgaaaaadaaaaaaaaaaaaaaddtkdojdojdojdojdnGdrydrzdtIaaadtXdrCdrDdrEdrFdqOdrGdrHdrIdqQdrJdrKdrLdrMdrNdrOdrPdrQdrLdrRdrSdrTdnGdrUdrVdrWdtIaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadiXdcWdjvdiZdjadcXdcXdcXdcXdcXdcWdjbdrXdlHdrYdrZdsadsbdscdeddeddeddeddeddeddeddeddeddeddeddeddeddsddsedsfdsgdshdlSdsidokdnxdkMdlVdjjdlWdjkdjkdjkdjkdjkdlXdjjdoEdkWdnAdkXdsjdmadDddsldsmdsndsoaaaaaaaaadqAdqAdqAdqAdqAdqAdqAdqAdqAaaadspdsqdsrdssdDedsudsvdswdBLdsydsydsydszdsAdszdsBdszdsydsxdsydsydsydsCdsDdsEdsFdsGdsHdqEdqEaahaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadoBdoBdoBdoBdoBdoBdoBdoBdoBaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadsIdsIdsIdsIdsIdsIdsIaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaadledrwdlgaaadledrwdlgaaadledrwdlgaaadledrwdlgaaaaadaaaaaaaaaaadaadaaaaaaaaaaaaaaadnGdsJdsKdtZaaddtXdsMdsNdsOdsPdqOdsQdsRdsSdqQdsTdsUdrLdsVdsWdsXdsYdsZdrLdtadtbdtcdnGdtddtedtfdtZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadeqdeXddYddZdtgdlEdhvdfRdkKdeddeddeddeddeddeddeddeddeddeddeddeddeddlUdkMdnxdkOdthdehdeidfgdhMaaaaaadjjdtidtjdjkdjkdjkdtjdwfdjjaaaaaadifdfidemdendtldlYdnAdkWdkXaaaaaaaaadqAdqAdqAdqAdqAdqAdqAdqAdqAaaadmGdkZdtmdtndtodtpdtqdtqdBMdtsdttdtudtvdtwdtxdtydtzdtwdtAdtBdtCdtDdtEdtBdtBdtBdtBdtFdtGdqEaahaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadoBdoBdoBdoBdoBdoBdoBdoBdoBaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadsIdsIdsIdsIdsIdsIdsIaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaadledrwdlgaaadledrwdlgaaadledrwdlgaaadledrwdlgaaaaadaaaaaaaaaaadaadaaaaaaaaaaaaaaadnGdsJdsKdtZaaddtXdsMdsNdsOdsPdqOdsQdsRdsSdqQdsTdsUdrLdsVdsWdsXdsYdsZdrLdtadtbdtcdnGdtddtedtfdtZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadeqdeXddYddZdtgdlEdhvdfRdkKdeddeddeddeddeddeddeddeddeddeddeddeddeddlUdkMdnxdkOdthdehdeidfgdhMaaaaaadjjdtidtjdHodHqdHpdtjdwfdjjaaaaaadifdfidemdendtldlYdnAdkWdkXaaaaaaaaadqAdqAdqAdqAdqAdqAdqAdqAdqAaaadmGdkZdtmdtndtodtpdtqdtqdBMdtsdttdtudtvdtwdtxdtydtzdtwdtAdtBdtCdtDdtEdtBdtBdtBdtBdtFdtGdqEaahaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadoBdoBdoBdoBdoBdoBdoBdoBdoBaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadsIdsIdsIdsIdsIdsIdsIdsIdsIaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaadledrwdlgaaadledrwdlgaaadledrwdlgaaadledrwdlgaaaacAaaaaaaaadaadaaaaaaaaaaaaaaaaaadnGdtHdtHdnGahydxKdoldtJdqLdoldqOdtKdtLdtMdtNdtOdtPdtQdtRdtSdtTdtUdtVdtWdxNdtYdxOduadubducdnGdnGaaddudduedueduedueaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadgwdfRdfSdkadufddZdgRdugdfhaaaaaadeddeddeddeddeddeddeddeddeddeddeddeddedaaaaaadhMduhdgSdehdeiduidhMaaaaaadujdukduldumdumdumduldukdunaaaaaadifduodemdendhGdupdifaaaaaaaaaaaaaaadqAdqAdqAdqAdqAdqAdqAdqAdqAaaaaaaaaaaaadiyduqdixdurddsdqEdqEdusdutduudqEdusdutduvdqEdusdqEdqEdqEdqEdqEdqEdqEdtBdtFdtBdqEaahaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadoBdoBdoBdoBdoBdoBdoBaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadsIdsIdsIdsIdsIdsIdsIdsIdsIaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacAaaddledrwdlgaaddledrwdlgaaddledrwdlgaaddledrwdlgaadacAaaaaadaadaaaaaaaaaaaaaaaaaaaaaduwduxduyduwbkQduzduAduBduAduzdqOduCduDduEdqQduFduGdrLduHduIduJduIduKdrLduLduMduNduaduOduPduQduRaaaaadaadaaaaaadueaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaduSduTduUduVduWduXdjddfadfmaaaaaadeddeddeddeddeddeddeddeddeddeddeddeddedaaaaaadfBdfddjgduYdeidfgdfBaaaaaaaaaaaadujdukdukdukdunaaaaaaaaaaaadfIdfidemduZdjndfldfIaaaaaaaaaaaaaaadqAdqAdqAdqAdqAdqAdqAdqAdqAaaaaaaaaaaaadfLdvadvbdvcddsaahaahdqEdvddvedvfdqEdvgdvhdvidqEaahaahaahaahaahaahdvjdvjdvkdvjdvjaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadoBdoBdoBdoBdoBdoBdoBaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadsIdsIdsIdsIdsIdsIdsIdsIdsIaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacOaaadledvldlgaaadledvldlgaaadledvldlgaaadledvldlgaaaaadaadaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabkQdvmdvndvodvpdvmdvqdvrdvsdvtdqQdvudvvdrLdvwdvxdvydvzdvAdrLdvBdvCdvDduadvEdvFduQdvGaaaaadaadaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadhIdfRdhvdkadvHdvIdgRdvJdcWaaaaaadeddeddeddeddeddeddeddeddeddeddeddeddedaaaaaaddcdvKdgSdvLdeidjiddcaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaddidjldemdvMdhGdvNddiaaaaaaaaaaaaaaaaaadqAdqAdqAdqAdqAdqAdqAaaaaaaaaaaaaaaaddodvOdvPdvQddsaahaahdqEdvRdvSdvTdqEdvUdvVdvWdqEaahaahaahaahaahaahdvjdvXdvYdvZdvjaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadoBdoBdoBdoBdoBdoBdoBdoBdoBaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa diff --git a/maps/polaris-2.dmm b/maps/polaris-2.dmm index 7f7311bfc15..9807ecdbe61 100644 --- a/maps/polaris-2.dmm +++ b/maps/polaris-2.dmm @@ -432,7 +432,7 @@ "ip" = (/obj/effect/step_trigger/teleporter/random{affect_ghosts = 1; name = "escapeshuttle_leave"; teleport_x = 25; teleport_x_offset = 245; teleport_y = 25; teleport_y_offset = 245; teleport_z = 6; teleport_z_offset = 6},/obj/effect/step_trigger/teleporter/random{affect_ghosts = 1; name = "escapeshuttle_leave"; teleport_x = 25; teleport_x_offset = 245; teleport_y = 25; teleport_y_offset = 245; teleport_z = 6; teleport_z_offset = 6},/turf/space/transit/north/shuttlespace_ns12,/area/space) "iq" = (/turf/space/transit/north/shuttlespace_ns12,/area/syndicate_station/transit) "ir" = (/turf/space/transit/north/shuttlespace_ns15,/area/syndicate_station/transit) -"is" = (/obj/machinery/sleeper{dir = 8},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/shuttle/escape/centcom) +"is" = (/obj/machinery/sleeper/map{dir = 8},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/shuttle/escape/centcom) "it" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 2; name = "thrower_throwdown"; tiles = 0},/turf/space,/area/space) "iu" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/turf/unsimulated/floor{icon_state = "plating"; name = "plating"},/area/syndicate_mothership/elite_squad) "iv" = (/turf/space/transit/north/shuttlespace_ns3,/area/skipjack_station/transit) @@ -530,7 +530,7 @@ "kj" = (/turf/unsimulated/wall/fakeglass{icon_state = "fakewindows2"; dir = 1},/area/syndicate_mothership) "kk" = (/obj/structure/sign/double/map/left{pixel_y = 32},/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership) "kl" = (/obj/structure/sign/double/map/right{pixel_y = 32},/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership) -"km" = (/obj/structure/table/standard,/obj/machinery/microwave,/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership) +"km" = (/obj/structure/table/standard,/obj/machinery/microwave/map,/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership) "kn" = (/obj/structure/table/standard,/obj/item/weapon/storage/box/donkpockets{pixel_x = 3; pixel_y = 3},/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership) "ko" = (/obj/structure/sink/kitchen{pixel_y = 28},/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership) "kp" = (/turf/space/transit/north/shuttlespace_ns11,/area/shuttle/escape_pod6/transit) @@ -620,8 +620,8 @@ "lV" = (/obj/structure/shuttle/engine/propulsion{icon_state = "propulsion_r"},/turf/space,/area/syndicate_mothership) "lW" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/turf/simulated/shuttle/plating,/area/syndicate_mothership{name = "\improper Ninja Base"}) "lX" = (/obj/machinery/computer/teleporter,/turf/simulated/floor/plating,/area/syndicate_mothership{name = "\improper Ninja Base"}) -"lY" = (/obj/machinery/teleport/station,/turf/simulated/floor/plating,/area/syndicate_mothership{name = "\improper Ninja Base"}) -"lZ" = (/obj/machinery/teleport/hub,/turf/simulated/floor/plating,/area/syndicate_mothership{name = "\improper Ninja Base"}) +"lY" = (/obj/machinery/teleport/station/map,/turf/simulated/floor/plating,/area/syndicate_mothership{name = "\improper Ninja Base"}) +"lZ" = (/obj/machinery/teleport/hub/map,/turf/simulated/floor/plating,/area/syndicate_mothership{name = "\improper Ninja Base"}) "ma" = (/turf/unsimulated/wall,/area) "mb" = (/obj/structure/shuttle/engine/heater,/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/airless,/area/syndicate_mothership{name = "\improper Ninja Base"}) "mc" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 2; name = "thrower_throwdown"; tiles = 0},/obj/effect/step_trigger/teleporter/random{affect_ghosts = 1; name = "escapeshuttle_leave"; teleport_x = 25; teleport_x_offset = 245; teleport_y = 25; teleport_y_offset = 245; teleport_z = 6; teleport_z_offset = 6},/obj/effect/step_trigger/teleporter/random{affect_ghosts = 1; name = "escapeshuttle_leave"; teleport_x = 25; teleport_x_offset = 245; teleport_y = 25; teleport_y_offset = 245; teleport_z = 6; teleport_z_offset = 6},/turf/space,/area/space) @@ -647,7 +647,7 @@ "mw" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/table/rack,/obj/item/weapon/gun/projectile/automatic/wt550,/obj/item/weapon/gun/projectile/automatic/wt550,/obj/item/weapon/gun/projectile/automatic/wt550,/obj/structure/window/reinforced{dir = 1},/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops) "mx" = (/obj/structure/table/rack,/obj/item/ammo_magazine/mc9mmt,/obj/item/ammo_magazine/mc9mmt,/obj/item/ammo_magazine/mc9mmt,/obj/item/ammo_magazine/mc9mmt,/obj/item/ammo_magazine/mc9mmt,/obj/item/ammo_magazine/mc9mmt,/obj/item/ammo_magazine/mc9mmt,/obj/item/ammo_magazine/mc9mmt,/obj/item/ammo_magazine/mc9mmt,/obj/item/ammo_magazine/mc9mmt/rubber,/obj/item/ammo_magazine/mc9mmt/rubber,/obj/item/ammo_magazine/mc9mmt/rubber,/obj/item/ammo_magazine/mc9mmt/rubber,/obj/item/ammo_magazine/mc9mmt/rubber,/obj/item/ammo_magazine/mc9mmt/rubber,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops) "my" = (/obj/structure/table/rack,/obj/structure/window/reinforced{dir = 8},/obj/item/weapon/gun/launcher/grenade,/obj/item/weapon/gun/launcher/grenade,/obj/structure/window/reinforced{dir = 1},/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops) -"mz" = (/obj/structure/table/rack,/obj/item/weapon/storage/box/flashbangs,/obj/item/weapon/storage/box/flashbangs,/obj/item/weapon/storage/box/emps{pixel_x = 4; pixel_y = 4},/obj/item/weapon/grenade/smokebomb,/obj/item/weapon/grenade/smokebomb,/obj/item/weapon/grenade/smokebomb,/obj/item/weapon/grenade/smokebomb,/obj/item/weapon/grenade/smokebomb,/obj/item/weapon/grenade/smokebomb,/obj/item/weapon/grenade/smokebomb,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/item/weapon/storage/box/frags,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops) +"mz" = (/obj/structure/table/rack,/obj/item/weapon/storage/box/flashbangs,/obj/item/weapon/storage/box/flashbangs,/obj/item/weapon/storage/box/emps{pixel_x = 4; pixel_y = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/item/weapon/storage/box/frags,/obj/item/weapon/storage/box/smokes,/obj/item/weapon/storage/box/smokes,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops) "mA" = (/obj/machinery/vending/security,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops) "mB" = (/turf/simulated/shuttle/wall{dir = 8; icon_state = "wall3_t"},/area/centcom/specops) "mC" = (/obj/structure/sign/securearea,/turf/simulated/shuttle/wall{dir = 9; icon_state = "wall3_wall"; tag = "icon-swall (NORTHWEST)"},/area/centcom/specops) @@ -662,7 +662,7 @@ "mL" = (/obj/structure/table/rack,/obj/item/rig_module/mounted/egun,/obj/item/rig_module/mounted/egun,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops) "mM" = (/obj/effect/wingrille_spawn/reinforced/crescent,/turf/unsimulated/floor{icon_state = "plating"; name = "plating"},/area/centcom/specops) "mN" = (/obj/structure/closet/crate,/obj/item/clothing/shoes/magboots,/obj/item/clothing/shoes/magboots,/obj/item/clothing/shoes/magboots,/obj/item/clothing/shoes/magboots,/obj/item/clothing/shoes/magboots,/obj/item/clothing/shoes/magboots,/obj/item/weapon/storage/box,/obj/item/weapon/storage/box,/obj/item/weapon/storage/box,/obj/item/weapon/storage/box,/obj/item/weapon/storage/box,/obj/item/weapon/storage/box,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops) -"mO" = (/obj/machinery/autolathe{desc = "Your typical Autolathe. It appears to have much more options than your regular one, however..."; hacked = 1; name = "Unlocked Autolathe"},/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops) +"mO" = (/obj/machinery/autolathe/map{desc = "Your typical Autolathe. It appears to have much more options than your regular one, however..."; hacked = 1; name = "Unlocked Autolathe"},/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops) "mP" = (/obj/structure/table/reinforced,/obj/item/device/megaphone,/obj/item/weapon/storage/box/trackimp,/obj/item/weapon/storage/box/cdeathalarm_kit,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops) "mQ" = (/obj/structure/table/rack,/obj/item/clothing/suit/armor/vest/ert/command,/obj/item/clothing/head/helmet/ert/command,/obj/item/weapon/storage/backpack/ert/commander,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops) "mR" = (/obj/structure/table/rack,/obj/item/clothing/accessory/holster/waist,/obj/item/clothing/accessory/holster/waist,/obj/item/clothing/accessory/holster/waist,/obj/item/clothing/accessory/holster/waist,/obj/item/clothing/accessory/holster/waist,/obj/item/clothing/accessory/holster/waist,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops) @@ -705,7 +705,7 @@ "nC" = (/obj/structure/lattice,/obj/structure/grille,/turf/space,/area/space) "nD" = (/obj/effect/landmark{name = "Marauder Exit"},/turf/unsimulated/floor{icon_state = "plating"; name = "plating"},/area/centcom/specops) "nE" = (/obj/machinery/door/blast/regular{icon_state = "pdoor1"; id = "ASSAULT3"; name = "Launch Bay #3"; p_open = 0},/turf/unsimulated/floor{icon_state = "plating"; name = "plating"},/area/centcom/specops) -"nF" = (/obj/machinery/mass_driver{dir = 8; id = "ASSAULT3"; name = "gravpult"},/turf/unsimulated/floor{icon_state = "plating"; name = "plating"},/area/centcom/specops) +"nF" = (/obj/machinery/mass_driver/map{dir = 8; id = "ASSAULT3"; name = "gravpult"},/turf/unsimulated/floor{icon_state = "plating"; name = "plating"},/area/centcom/specops) "nG" = (/obj/structure/table/reinforced,/obj/item/mecha_parts/mecha_equipment/weapon/energy/ion,/obj/item/mecha_parts/mecha_equipment/weapon/energy/taser,/obj/item/mecha_parts/mecha_equipment/anticcw_armor_booster,/obj/item/mecha_parts/mecha_equipment/antiproj_armor_booster,/turf/unsimulated/floor{icon_state = "plating"; name = "plating"},/area/centcom/specops) "nH" = (/obj/structure/table/rack,/obj/item/taperoll/police,/obj/item/taperoll/police,/obj/item/taperoll/police,/obj/item/taperoll/police,/obj/item/taperoll/police,/obj/item/taperoll/police,/obj/item/device/flash,/obj/item/device/flash,/obj/item/device/flash,/obj/item/device/flash,/obj/item/device/flash,/obj/item/device/flash,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops) "nI" = (/turf/simulated/shuttle/wall{dir = 9; icon_state = "wall3_wall"; tag = "icon-swall (NORTHWEST)"},/area/centcom/specops) @@ -722,7 +722,7 @@ "nT" = (/obj/effect/floor_decal/corner/yellow{dir = 5},/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops) "nU" = (/obj/structure/table/rack,/obj/item/clothing/accessory/holster/hip,/obj/item/clothing/accessory/holster/hip,/obj/item/clothing/accessory/holster/hip,/obj/item/clothing/accessory/holster/hip,/obj/item/clothing/accessory/holster/hip,/obj/item/clothing/accessory/holster/hip,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops) "nV" = (/obj/structure/table/rack,/obj/item/clothing/accessory/holster/armpit,/obj/item/clothing/accessory/holster/armpit,/obj/item/clothing/accessory/holster/armpit,/obj/item/clothing/accessory/holster/armpit,/obj/item/clothing/accessory/holster/armpit,/obj/item/clothing/accessory/holster/armpit,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops) -"nW" = (/obj/machinery/recharger/wallcharger{pixel_x = 4; pixel_y = 32},/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops) +"nW" = (/obj/machinery/recharger/wallcharger/map{pixel_x = 4; pixel_y = 32},/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops) "nX" = (/obj/structure/table/reinforced,/obj/item/weapon/crowbar,/obj/item/weapon/screwdriver,/obj/item/weapon/wrench,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops) "nY" = (/obj/machinery/porta_turret{anchored = 0; check_records = 0; enabled = 0; req_one_access = list(103); use_power = 0},/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops) "nZ" = (/obj/machinery/vending/snack{name = "hacked Getmore Chocolate Corp"; prices = list()},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/specops) @@ -735,7 +735,7 @@ "og" = (/obj/structure/table/standard,/obj/item/device/radio/headset/syndicate/alt,/obj/item/device/radio/headset/syndicate/alt,/obj/item/device/radio/headset/syndicate/alt,/obj/item/device/radio/headset/syndicate/alt,/turf/unsimulated/floor{icon_state = "lino"},/area/syndicate_mothership) "oh" = (/obj/structure/table/standard,/obj/item/weapon/paper_bin{pixel_x = -3; pixel_y = 8},/obj/item/weapon/pen{pixel_y = 4},/turf/unsimulated/floor{icon_state = "lino"},/area/syndicate_mothership) "oi" = (/obj/mecha/medical/odysseus/loaded,/turf/unsimulated/floor{icon_state = "plating"; name = "plating"},/area/centcom/specops) -"oj" = (/obj/machinery/recharge_station,/turf/unsimulated/floor{icon_state = "plating"; name = "plating"},/area/centcom/specops) +"oj" = (/obj/machinery/recharge_station/map,/turf/unsimulated/floor{icon_state = "plating"; name = "plating"},/area/centcom/specops) "ok" = (/obj/structure/table/rack,/obj/item/ammo_casing/rocket,/obj/item/ammo_casing/rocket,/obj/item/ammo_casing/rocket,/obj/item/ammo_casing/rocket,/obj/item/ammo_casing/rocket,/obj/item/ammo_casing/rocket,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops) "ol" = (/obj/structure/table/rack,/obj/item/weapon/gun/launcher/rocket,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops) "om" = (/obj/structure/table/rack,/obj/item/weapon/rig/ert/assetprotection,/obj/item/weapon/rig/ert/assetprotection,/obj/item/weapon/rig/ert/assetprotection,/obj/item/weapon/rig/ert/assetprotection,/obj/item/weapon/rig/ert/assetprotection,/obj/item/weapon/rig/ert/assetprotection,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops) @@ -759,7 +759,7 @@ "oE" = (/obj/effect/landmark{name = "Syndicate-Spawn"},/turf/unsimulated/floor{icon_state = "lino"},/area/syndicate_mothership) "oF" = (/turf/unsimulated/floor{icon_state = "lino"},/area/syndicate_mothership) "oG" = (/obj/machinery/door/blast/regular{icon_state = "pdoor1"; id = "ASSAULT2"; name = "Launch Bay #2"; p_open = 0},/turf/unsimulated/floor{icon_state = "plating"; name = "plating"},/area/centcom/specops) -"oH" = (/obj/machinery/mass_driver{dir = 8; id = "ASSAULT2"; name = "gravpult"},/turf/unsimulated/floor{icon_state = "plating"; name = "plating"},/area/centcom/specops) +"oH" = (/obj/machinery/mass_driver/map{dir = 8; id = "ASSAULT2"; name = "gravpult"},/turf/unsimulated/floor{icon_state = "plating"; name = "plating"},/area/centcom/specops) "oI" = (/obj/structure/undies_wardrobe,/turf/unsimulated/floor{icon_state = "lino"},/area/syndicate_mothership) "oJ" = (/obj/item/weapon/stool/padded,/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/specops) "oK" = (/obj/machinery/door/airlock,/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/centcom/specops) @@ -773,7 +773,7 @@ "oS" = (/obj/structure/table/reinforced,/obj/item/weapon/storage/box/donut,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops) "oT" = (/obj/structure/bed/chair{dir = 8},/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops) "oU" = (/obj/machinery/door/blast/regular{icon_state = "pdoor1"; id = "ASSAULT1"; name = "Launch Bay #1"; p_open = 0},/turf/unsimulated/floor{icon_state = "plating"; name = "plating"},/area/centcom/specops) -"oV" = (/obj/machinery/mass_driver{dir = 8; id = "ASSAULT1"; name = "gravpult"},/turf/unsimulated/floor{icon_state = "plating"; name = "plating"},/area/centcom/specops) +"oV" = (/obj/machinery/mass_driver/map{dir = 8; id = "ASSAULT1"; name = "gravpult"},/turf/unsimulated/floor{icon_state = "plating"; name = "plating"},/area/centcom/specops) "oW" = (/obj/structure/sign/securearea{name = "ENGINEERING ACCESS"; pixel_y = -32},/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops) "oX" = (/obj/structure/sign/redcross{pixel_y = -32},/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops) "oY" = (/obj/structure/table/reinforced,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops) @@ -783,7 +783,7 @@ "pc" = (/obj/structure/sink{icon_state = "sink"; dir = 8; pixel_x = -12; pixel_y = 2},/obj/structure/mirror{pixel_x = -28},/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/centcom/specops) "pd" = (/obj/machinery/door/airlock{name = "Unit 1"},/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/centcom/specops) "pe" = (/obj/machinery/door/airlock{name = "Unit 2"},/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/centcom/specops) -"pf" = (/obj/item/device/pda/syndicate,/turf/unsimulated/floor{icon_state = "lino"},/area/syndicate_mothership) +"pf" = (/obj/structure/table/standard,/obj/item/device/pda/syndicate,/turf/unsimulated/floor{icon_state = "lino"},/area/syndicate_mothership) "pg" = (/obj/mecha/working/hoverpod,/turf/unsimulated/floor{icon_state = "plating"; name = "plating"},/area/centcom/specops) "ph" = (/obj/item/mecha_parts/mecha_equipment/tool/sleeper,/obj/item/mecha_parts/mecha_equipment/tool/sleeper,/obj/item/mecha_parts/mecha_equipment/tool/syringe_gun,/obj/structure/table/steel_reinforced,/turf/unsimulated/floor{icon_state = "plating"; name = "plating"},/area/centcom/specops) "pi" = (/obj/effect/floor_decal/corner/blue{dir = 9},/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops) @@ -794,7 +794,7 @@ "pn" = (/obj/machinery/vending/cola{name = "hacked Robust Softdrinks"; prices = list()},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/specops) "po" = (/obj/structure/toilet{dir = 1},/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/centcom/specops) "pp" = (/obj/machinery/door/blast/regular{icon_state = "pdoor1"; id = "ASSAULT0"; name = "Launch Bay #0"; p_open = 0},/turf/unsimulated/floor{icon_state = "plating"; name = "plating"},/area/centcom/specops) -"pq" = (/obj/machinery/mass_driver{dir = 8; id = "ASSAULT0"; name = "gravpult"},/turf/unsimulated/floor{icon_state = "plating"; name = "plating"},/area/centcom/specops) +"pq" = (/obj/machinery/mass_driver/map{dir = 8; id = "ASSAULT0"; name = "gravpult"},/turf/unsimulated/floor{icon_state = "plating"; name = "plating"},/area/centcom/specops) "pr" = (/obj/item/mecha_parts/mecha_equipment/teleporter,/obj/item/mecha_parts/mecha_tracking,/obj/item/mecha_parts/mecha_tracking,/obj/item/mecha_parts/mecha_tracking,/obj/item/mecha_parts/mecha_tracking,/obj/structure/table/steel_reinforced,/turf/unsimulated/floor{icon_state = "plating"; name = "plating"},/area/centcom/specops) "ps" = (/obj/machinery/vending/assist,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops) "pt" = (/obj/structure/table/rack,/obj/item/clothing/suit/armor/vest/ert/engineer,/obj/item/clothing/suit/armor/vest/ert/engineer,/obj/item/clothing/suit/armor/vest/ert/engineer,/obj/item/clothing/suit/armor/vest/ert/engineer,/obj/item/clothing/head/helmet/ert/engineer,/obj/item/clothing/head/helmet/ert/engineer,/obj/item/clothing/head/helmet/ert/engineer,/obj/item/clothing/head/helmet/ert/engineer,/obj/item/weapon/storage/backpack/ert/engineer,/obj/item/weapon/storage/backpack/ert/engineer,/obj/item/weapon/storage/backpack/ert/engineer,/obj/item/weapon/storage/backpack/ert/engineer,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops) @@ -843,7 +843,7 @@ "qk" = (/obj/structure/sink/kitchen{pixel_y = 28},/turf/unsimulated/floor{icon_state = "white"},/area/syndicate_mothership) "ql" = (/obj/structure/closet/secure_closet/freezer/fridge,/turf/unsimulated/floor{icon_state = "white"},/area/syndicate_mothership) "qm" = (/obj/effect/landmark{name = "Nuclear-Code"},/turf/unsimulated/floor{dir = 2; icon_state = "dark"},/area/syndicate_mothership) -"qn" = (/turf/simulated/mineral,/area/syndicate_mothership) +"qn" = (/obj/effect/landmark{name = "Nuclear-Bomb"},/turf/unsimulated/floor{dir = 2; icon_state = "dark"},/area/syndicate_mothership) "qo" = (/turf/unsimulated/floor{dir = 2; icon_state = "dark"},/area/syndicate_mothership) "qp" = (/obj/machinery/camera/network/ert{c_tag = "Assault Armor South"; dir = 1},/turf/unsimulated/floor{icon_state = "plating"; name = "plating"},/area/centcom/specops) "qq" = (/obj/item/mecha_parts/mecha_equipment/tool/drill/diamonddrill,/obj/item/mecha_parts/mecha_equipment/tool/cable_layer,/obj/structure/table/steel_reinforced,/turf/unsimulated/floor{icon_state = "plating"; name = "plating"},/area/centcom/specops) @@ -858,7 +858,7 @@ "qz" = (/obj/structure/closet/secure_closet/freezer/meat,/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/centcom/specops) "qA" = (/obj/machinery/chem_master/condimaster{name = "CondiMaster Neo"; pixel_x = -5},/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/centcom/specops) "qB" = (/turf/simulated/shuttle/wall{icon_state = "wall3"},/area/syndicate_station/start) -"qC" = (/obj/structure/table/standard,/obj/machinery/recharger,/turf/simulated/shuttle/floor{icon_state = "floor6"},/area/syndicate_station/start) +"qC" = (/obj/structure/table/standard,/obj/machinery/recharger/map,/turf/simulated/shuttle/floor{icon_state = "floor6"},/area/syndicate_station/start) "qD" = (/obj/machinery/computer/security/nuclear,/turf/simulated/shuttle/floor{icon_state = "floor6"},/area/syndicate_station/start) "qE" = (/obj/machinery/computer/shuttle_control/multi/syndicate,/turf/simulated/shuttle/floor{icon_state = "floor6"},/area/syndicate_station/start) "qF" = (/obj/structure/frame{frame_type = "computer"; icon_state = "computer_0"},/turf/simulated/shuttle/floor{icon_state = "floor6"},/area/syndicate_station/start) @@ -866,7 +866,7 @@ "qH" = (/obj/structure/bed/chair/comfy/black,/turf/unsimulated/floor{tag = "icon-cult"; name = "plating"; icon_state = "cult"},/area/syndicate_mothership) "qI" = (/obj/machinery/door/airlock/centcom{name = "Kitchen"; opacity = 1; req_access = list(150)},/turf/unsimulated/floor{icon_state = "white"},/area/syndicate_mothership) "qJ" = (/turf/unsimulated/floor{icon_state = "white"},/area/syndicate_mothership) -"qK" = (/obj/structure/table/reinforced,/obj/machinery/microwave{pixel_x = -1; pixel_y = 8},/turf/unsimulated/floor{icon_state = "white"},/area/syndicate_mothership) +"qK" = (/obj/structure/table/reinforced,/obj/machinery/microwave/map{pixel_x = -1; pixel_y = 8},/turf/unsimulated/floor{icon_state = "white"},/area/syndicate_mothership) "qL" = (/obj/machinery/vending/engineering,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops) "qM" = (/obj/item/weapon/circuitboard/aiupload,/obj/item/weapon/circuitboard/borgupload,/obj/item/weapon/circuitboard/smes,/obj/item/weapon/aiModule/nanotrasen,/obj/item/weapon/aiModule/reset,/obj/item/weapon/aiModule/freeformcore,/obj/item/weapon/aiModule/protectStation,/obj/item/weapon/aiModule/quarantine,/obj/item/weapon/aiModule/paladin,/obj/item/weapon/aiModule/robocop,/obj/item/weapon/aiModule/safeguard,/obj/structure/table/steel_reinforced,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops) "qN" = (/obj/item/clothing/glasses/welding/superior,/obj/item/clothing/glasses/welding/superior,/obj/item/clothing/glasses/welding/superior,/obj/item/clothing/glasses/welding/superior,/obj/item/clothing/glasses/welding/superior,/obj/structure/table/steel_reinforced,/obj/item/clothing/glasses/welding/superior,/obj/item/weapon/grenade/chem_grenade/metalfoam,/obj/item/weapon/grenade/chem_grenade/metalfoam,/obj/item/weapon/grenade/chem_grenade/metalfoam,/obj/item/weapon/grenade/chem_grenade/metalfoam,/obj/item/weapon/grenade/chem_grenade/metalfoam,/obj/item/weapon/grenade/chem_grenade/metalfoam,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops) @@ -882,7 +882,7 @@ "qX" = (/obj/structure/table/standard,/obj/item/weapon/reagent_containers/food/drinks/shaker,/obj/effect/floor_decal/corner/blue/diagonal{dir = 4},/obj/effect/floor_decal/corner/red/diagonal,/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/specops) "qY" = (/obj/structure/table/standard,/obj/effect/floor_decal/corner/blue/diagonal{dir = 4},/obj/effect/floor_decal/corner/red/diagonal,/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/specops) "qZ" = (/obj/machinery/door/airlock/freezer,/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/centcom/specops) -"ra" = (/obj/structure/table/standard,/obj/machinery/microwave{pixel_x = -1; pixel_y = 2},/turf/simulated/shuttle/floor{icon_state = "floor6"},/area/syndicate_station/start) +"ra" = (/obj/structure/table/standard,/obj/machinery/microwave/map{pixel_x = -1; pixel_y = 2},/turf/simulated/shuttle/floor{icon_state = "floor6"},/area/syndicate_station/start) "rb" = (/turf/simulated/shuttle/floor{icon_state = "floor6"},/area/syndicate_station/start) "rc" = (/obj/structure/bed/chair{dir = 1},/turf/simulated/shuttle/floor{icon_state = "floor6"},/area/syndicate_station/start) "rd" = (/obj/structure/bed/chair/comfy/black{dir = 4},/turf/unsimulated/floor{tag = "icon-cult"; name = "plating"; icon_state = "cult"},/area/syndicate_mothership) @@ -891,7 +891,7 @@ "rg" = (/obj/structure/bed/chair/comfy/black{dir = 8},/turf/unsimulated/floor{tag = "icon-cult"; name = "plating"; icon_state = "cult"},/area/syndicate_mothership) "rh" = (/obj/structure/table/reinforced,/obj/item/weapon/storage/box/donkpockets{pixel_x = 3; pixel_y = 3},/turf/unsimulated/floor{icon_state = "white"},/area/syndicate_mothership) "ri" = (/obj/structure/table/rack,/obj/item/clothing/shoes/magboots,/obj/item/clothing/suit/space/syndicate/black/green,/obj/item/clothing/mask/breath,/obj/item/clothing/head/helmet/space/syndicate/black/green,/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership) -"rj" = (/turf/unsimulated/floor{icon_state = "dark"},/area/space) +"rj" = (/obj/structure/table/rack,/obj/item/clothing/shoes/magboots,/obj/item/clothing/suit/space/syndicate/black/blue,/obj/item/clothing/mask/breath,/obj/item/clothing/head/helmet/space/syndicate/black/blue,/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership) "rk" = (/obj/structure/table/steel_reinforced,/obj/item/clothing/gloves/yellow,/obj/item/clothing/gloves/yellow,/obj/item/clothing/gloves/yellow,/obj/item/clothing/gloves/yellow,/obj/item/clothing/gloves/yellow,/obj/item/clothing/gloves/yellow,/obj/item/weapon/storage/belt/utility/full,/obj/item/weapon/storage/belt/utility/full,/obj/item/weapon/storage/belt/utility/full,/obj/item/weapon/storage/belt/utility/full,/obj/item/weapon/storage/belt/utility/full,/obj/item/weapon/storage/belt/utility/full,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops) "rl" = (/obj/structure/table/steel_reinforced,/obj/item/clothing/glasses/meson,/obj/item/clothing/glasses/meson,/obj/item/clothing/glasses/meson,/obj/item/clothing/glasses/meson,/obj/item/clothing/glasses/meson,/obj/item/clothing/glasses/meson,/obj/item/taperoll/engineering,/obj/item/taperoll/engineering,/obj/item/taperoll/engineering,/obj/item/taperoll/engineering,/obj/item/taperoll/engineering,/obj/item/taperoll/engineering,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops) "rm" = (/obj/structure/table/reinforced,/obj/item/weapon/storage/pill_bottle/tramadol,/obj/item/weapon/storage/pill_bottle/tramadol,/obj/item/weapon/storage/pill_bottle/tramadol,/obj/item/weapon/storage/pill_bottle/dylovene,/obj/item/weapon/storage/pill_bottle/dylovene,/obj/item/weapon/storage/pill_bottle/dylovene,/obj/item/weapon/storage/pill_bottle/dermaline,/obj/item/weapon/storage/pill_bottle/dermaline,/obj/item/weapon/storage/pill_bottle/dermaline,/obj/item/weapon/storage/pill_bottle/spaceacillin,/obj/item/weapon/storage/pill_bottle/dexalin_plus,/obj/item/weapon/storage/pill_bottle/dexalin_plus,/obj/item/weapon/storage/pill_bottle/dexalin_plus,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops) @@ -904,8 +904,8 @@ "rt" = (/obj/structure/bed/chair,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/specops/centcom) "ru" = (/obj/machinery/embedded_controller/radio/simple_docking_controller{frequency = 1380; id_tag = "specops_shuttle_port"; name = "port docking hatch controller"; pixel_x = 0; pixel_y = 25; tag_door = "specops_shuttle_port_hatch"},/obj/structure/bed/chair,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/specops/centcom) "rv" = (/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/specops/centcom) -"rw" = (/obj/machinery/recharger/wallcharger{pixel_x = 4; pixel_y = 32},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/specops/centcom) -"rx" = (/obj/machinery/recharger/wallcharger{pixel_x = 4; pixel_y = 32},/obj/machinery/vending/wallmed1{layer = 3.3; name = "Emergency NanoMed"; pixel_x = 28; pixel_y = 0},/obj/machinery/light{dir = 4},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/specops/centcom) +"rw" = (/obj/machinery/recharger/wallcharger/map{pixel_x = 4; pixel_y = 32},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/specops/centcom) +"rx" = (/obj/machinery/recharger/wallcharger/map{pixel_x = 4; pixel_y = 32},/obj/machinery/vending/wallmed1{layer = 3.3; name = "Emergency NanoMed"; pixel_x = 28; pixel_y = 0},/obj/machinery/light{dir = 4},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/specops/centcom) "ry" = (/obj/effect/floor_decal/corner/blue/diagonal{dir = 4},/obj/effect/floor_decal/corner/red/diagonal,/obj/machinery/door/airlock/glass,/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/specops) "rz" = (/obj/item/weapon/stool/padded,/obj/effect/floor_decal/corner/red/diagonal,/obj/effect/floor_decal/corner/blue/diagonal{dir = 4},/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/specops) "rA" = (/obj/structure/table/standard,/obj/item/weapon/storage/box/donkpockets{pixel_x = 2; pixel_y = 3},/obj/machinery/light{dir = 8; icon_state = "tube1"; pixel_y = 0},/turf/simulated/shuttle/floor{icon_state = "floor6"},/area/syndicate_station/start) @@ -917,7 +917,7 @@ "rG" = (/obj/structure/table/reinforced,/obj/item/weapon/tray{pixel_y = 5},/turf/unsimulated/floor{icon_state = "white"},/area/syndicate_mothership) "rH" = (/obj/structure/table/reinforced,/obj/item/weapon/reagent_containers/food/drinks/bottle/vodka{pixel_x = 3; pixel_y = 12},/obj/item/weapon/reagent_containers/food/drinks/bottle/wine{pixel_x = -1; pixel_y = 8},/turf/unsimulated/floor{icon_state = "white"},/area/syndicate_mothership) "rI" = (/obj/structure/table/rack,/obj/item/clothing/shoes/magboots,/obj/item/clothing/suit/space/syndicate/black/med,/obj/item/clothing/mask/breath,/obj/item/clothing/head/helmet/space/syndicate/black/med,/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership) -"rJ" = (/turf/unsimulated/floor{dir = 2; icon_state = "dark"},/area/space) +"rJ" = (/obj/structure/table/rack,/obj/item/clothing/shoes/magboots,/obj/item/clothing/suit/space/syndicate/black/orange,/obj/item/clothing/mask/breath,/obj/item/clothing/head/helmet/space/syndicate/black/orange,/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership) "rK" = (/obj/machinery/iv_drip,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops) "rL" = (/obj/structure/shuttle/engine/heater{icon_state = "heater"; dir = 8},/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/airless,/area/shuttle/specops/centcom) "rM" = (/obj/structure/bed/chair{dir = 4},/obj/machinery/light{icon_state = "tube1"; dir = 8},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/specops/centcom) @@ -929,7 +929,7 @@ "rS" = (/obj/structure/table/standard,/obj/item/weapon/paper_bin{pixel_x = -3; pixel_y = 8},/obj/item/weapon/pen{pixel_y = 4},/turf/simulated/shuttle/floor{icon_state = "floor6"},/area/syndicate_station/start) "rT" = (/obj/machinery/vending/cigarette{name = "hacked cigarette machine"; prices = list(); products = list(/obj/item/weapon/storage/fancy/cigarettes = 10, /obj/item/weapon/storage/box/matches = 10, /obj/item/weapon/flame/lighter/zippo = 4, /obj/item/clothing/mask/smokable/cigarette/cigar/havana = 2)},/turf/unsimulated/floor{tag = "icon-cult"; name = "plating"; icon_state = "cult"},/area/syndicate_mothership) "rU" = (/obj/structure/table/rack,/obj/item/clothing/shoes/magboots,/obj/item/clothing/suit/space/syndicate/black/engie,/obj/item/clothing/mask/breath,/obj/item/clothing/head/helmet/space/syndicate/black/engie,/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership) -"rV" = (/obj/effect/landmark{name = "Nuclear-Bomb"},/turf/unsimulated/floor{dir = 2; icon_state = "dark"},/area/space) +"rV" = (/obj/structure/table/rack,/obj/item/clothing/shoes/magboots,/obj/item/clothing/suit/space/syndicate/black/red,/obj/item/clothing/mask/breath,/obj/item/clothing/head/helmet/space/syndicate/black/red,/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership) "rW" = (/obj/machinery/computer/communications,/obj/item/device/radio/intercom{broadcasting = 0; dir = 1; frequency = 1443; listening = 1; name = "Spec Ops Intercom"; pixel_y = -28},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/specops/centcom) "rX" = (/obj/machinery/computer/prisoner{name = "Implant Management"},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/specops/centcom) "rY" = (/obj/structure/bed/chair{dir = 1},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/specops/centcom) @@ -947,7 +947,7 @@ "sk" = (/obj/machinery/shower{pixel_y = 32},/obj/structure/window/basic{dir = 8},/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/syndicate_mothership) "sl" = (/obj/machinery/shower{pixel_y = 32},/obj/item/weapon/soap/syndie,/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/syndicate_mothership) "sm" = (/obj/structure/table/rack,/obj/item/clothing/shoes/magboots,/obj/item/clothing/suit/space/syndicate/black,/obj/item/clothing/mask/breath,/obj/item/clothing/head/helmet/space/syndicate/black,/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership) -"sn" = (/obj/structure/table/rack,/obj/item/clothing/shoes/magboots,/obj/item/clothing/suit/space/syndicate/black/blue,/obj/item/clothing/mask/breath,/obj/item/clothing/head/helmet/space/syndicate/black/blue,/turf/unsimulated/floor{icon_state = "dark"},/area/space) +"sn" = (/obj/structure/table/rack,/obj/item/clothing/mask/balaclava/tactical,/obj/item/clothing/mask/balaclava/tactical,/obj/item/clothing/mask/balaclava/tactical,/obj/item/clothing/mask/balaclava/tactical,/obj/item/clothing/mask/balaclava/tactical,/obj/item/clothing/mask/balaclava/tactical,/obj/item/clothing/mask/balaclava,/obj/item/clothing/mask/balaclava,/obj/item/clothing/mask/balaclava,/obj/item/clothing/mask/balaclava,/obj/item/clothing/mask/balaclava,/obj/item/clothing/mask/balaclava,/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership) "so" = (/obj/machinery/shieldgen,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops) "sp" = (/obj/machinery/portable_atmospherics/powered/scrubber,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops) "sq" = (/obj/machinery/portable_atmospherics/powered/pump/filled,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops) @@ -965,9 +965,9 @@ "sC" = (/obj/machinery/vending/dinnerware,/obj/effect/floor_decal/corner/blue/diagonal{dir = 4},/obj/effect/floor_decal/corner/red/diagonal,/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/specops) "sD" = (/obj/effect/floor_decal/corner/blue/diagonal{dir = 4},/obj/effect/floor_decal/corner/red/diagonal,/obj/machinery/computer/arcade,/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/specops) "sE" = (/obj/structure/table/standard,/obj/item/weapon/reagent_containers/glass/beaker,/obj/item/weapon/reagent_containers/food/condiment/enzyme,/obj/effect/floor_decal/corner/blue/diagonal{dir = 4},/obj/effect/floor_decal/corner/red/diagonal,/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/specops) -"sF" = (/obj/structure/table/standard,/obj/machinery/microwave{pixel_x = -3; pixel_y = 6},/obj/effect/floor_decal/corner/blue/diagonal{dir = 4},/obj/effect/floor_decal/corner/red/diagonal,/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/specops) +"sF" = (/obj/structure/table/standard,/obj/machinery/microwave/map{pixel_x = -3; pixel_y = 6},/obj/effect/floor_decal/corner/blue/diagonal{dir = 4},/obj/effect/floor_decal/corner/red/diagonal,/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/specops) "sG" = (/turf/unsimulated/floor{icon_state = "plating"; name = "plating"},/area/centcom/command) -"sH" = (/obj/structure/table/rack,/obj/item/clothing/shoes/magboots,/obj/item/clothing/suit/space/syndicate/black/orange,/obj/item/clothing/mask/breath,/obj/item/clothing/head/helmet/space/syndicate/black/orange,/turf/unsimulated/floor{icon_state = "dark"},/area/space) +"sH" = (/obj/structure/table/rack,/obj/item/clothing/suit/storage/vest/heavy/merc{pixel_x = 2; pixel_y = 2},/obj/item/clothing/suit/storage/vest/heavy/merc{pixel_x = -2; pixel_y = -2},/obj/item/clothing/suit/storage/vest/heavy/merc,/obj/item/clothing/suit/storage/vest/heavy/merc,/obj/item/clothing/suit/storage/vest/heavy/merc,/obj/item/clothing/suit/storage/vest/heavy/merc,/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership) "sI" = (/obj/structure/bed/chair{dir = 8},/turf/simulated/shuttle/floor{icon_state = "floor6"},/area/syndicate_station/start) "sJ" = (/obj/structure/bed/chair{dir = 4},/obj/machinery/light{dir = 1},/turf/simulated/shuttle/floor{icon_state = "floor6"},/area/syndicate_station/start) "sK" = (/obj/structure/closet/hydrant{pixel_y = 32},/turf/simulated/shuttle/floor{icon_state = "floor6"},/area/syndicate_station/start) @@ -979,7 +979,7 @@ "sQ" = (/obj/machinery/shield_capacitor,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops) "sR" = (/turf/unsimulated/wall{desc = "That looks like it doesn't open easily."; dir = 8; icon = 'icons/obj/doors/rapid_pdoor.dmi'; icon_state = "pdoor1"; name = "Shuttle Bay Blast Door"},/area/centcom/specops) "sS" = (/obj/machinery/door/blast/regular{icon_state = "pdoor1"; id = "CREED"; name = "Ready Room"; p_open = 0},/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops) -"sT" = (/obj/machinery/recharger/wallcharger{pixel_x = -25},/turf/simulated/shuttle/floor{icon_state = "floor6"},/area/syndicate_station/start) +"sT" = (/obj/machinery/recharger/wallcharger/map{pixel_x = -25},/turf/simulated/shuttle/floor{icon_state = "floor6"},/area/syndicate_station/start) "sU" = (/obj/structure/bed/chair{dir = 8},/obj/structure/bed/chair{dir = 8},/turf/simulated/shuttle/floor{icon_state = "floor6"},/area/syndicate_station/start) "sV" = (/obj/structure/closet,/turf/simulated/shuttle/floor{icon_state = "floor6"},/area/syndicate_station/start) "sW" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/grille,/obj/structure/window/reinforced,/turf/unsimulated/floor{icon_state = "plating"; name = "plating"},/area/syndicate_mothership) @@ -993,17 +993,17 @@ "te" = (/turf/simulated/shuttle/wall{icon_state = "wall3"},/area/shuttle/administration/centcom) "tf" = (/obj/machinery/door/airlock/external{frequency = 1380; icon_state = "door_locked"; id_tag = "admin_shuttle_hatch"; locked = 1; name = "Shuttle Hatch"; req_access = list(13)},/turf/simulated/floor/plating,/area/shuttle/administration/centcom) "tg" = (/turf/unsimulated/floor{icon_state = "plating"; name = "plating"},/turf/simulated/shuttle/wall{dir = 1; icon_state = "diagonalWall3"},/area/shuttle/administration/centcom) -"th" = (/obj/machinery/recharger/wallcharger{pixel_x = -25},/obj/machinery/light{dir = 8; icon_state = "tube1"; pixel_y = 0},/turf/simulated/shuttle/floor{icon_state = "floor6"},/area/syndicate_station/start) +"th" = (/obj/machinery/recharger/wallcharger/map{pixel_x = -25},/obj/machinery/light{dir = 8; icon_state = "tube1"; pixel_y = 0},/turf/simulated/shuttle/floor{icon_state = "floor6"},/area/syndicate_station/start) "ti" = (/obj/structure/closet,/obj/item/weapon/reagent_containers/food/snacks/liquidfood,/obj/item/weapon/reagent_containers/food/snacks/liquidfood,/obj/item/weapon/reagent_containers/food/snacks/liquidfood,/obj/item/weapon/reagent_containers/food/snacks/liquidfood,/obj/machinery/light{dir = 4},/turf/simulated/shuttle/floor{icon_state = "floor6"},/area/syndicate_station/start) "tj" = (/obj/structure/lattice,/obj/structure/grille,/obj/structure/lattice,/turf/space,/area/space) -"tk" = (/obj/structure/table/rack,/obj/item/weapon/gun/energy/ionrifle,/obj/machinery/recharger/wallcharger{pixel_x = 5; pixel_y = 32},/obj/item/weapon/gun/energy/ionrifle,/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership) +"tk" = (/obj/structure/table/rack,/obj/item/weapon/gun/energy/ionrifle,/obj/machinery/recharger/wallcharger/map{pixel_x = 5; pixel_y = 32},/obj/item/weapon/gun/energy/ionrifle,/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership) "tl" = (/obj/structure/table/rack,/obj/item/ammo_magazine/a10mm,/obj/item/ammo_magazine/a10mm,/obj/item/ammo_magazine/a10mm,/obj/item/ammo_magazine/a10mm,/obj/item/ammo_magazine/a10mm,/obj/item/ammo_magazine/a10mm,/obj/item/weapon/gun/projectile/automatic/c20r,/obj/item/weapon/gun/projectile/automatic/c20r,/obj/item/weapon/gun/projectile/automatic/c20r,/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership) -"tm" = (/obj/structure/table/rack,/obj/item/clothing/shoes/magboots,/obj/item/clothing/suit/space/syndicate/black/red,/obj/item/clothing/mask/breath,/obj/item/clothing/head/helmet/space/syndicate/black/red,/turf/unsimulated/floor{icon_state = "dark"},/area/space) +"tm" = (/obj/structure/table/rack,/obj/item/ammo_magazine/c762,/obj/item/ammo_magazine/c762,/obj/item/ammo_magazine/c762,/obj/item/ammo_magazine/c762,/obj/item/weapon/gun/projectile/automatic/sts35,/obj/item/weapon/gun/projectile/automatic/sts35,/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership) "tn" = (/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/specops) "to" = (/obj/machinery/vending/boozeomat,/turf/simulated/shuttle/wall{icon_state = "wall3"},/area/shuttle/administration/centcom) "tp" = (/obj/machinery/vending/coffee,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/administration/centcom) "tq" = (/obj/machinery/vending/cigarette,/obj/machinery/light{dir = 1},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/administration/centcom) -"tr" = (/obj/machinery/microwave,/obj/structure/table/reinforced,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/administration/centcom) +"tr" = (/obj/machinery/microwave/map,/obj/structure/table/reinforced,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/administration/centcom) "ts" = (/obj/machinery/embedded_controller/radio/simple_docking_controller{frequency = 1380; id_tag = "admin_shuttle"; pixel_x = -25; pixel_y = 0; req_one_access = list(101); tag_door = "admin_shuttle_hatch"},/turf/simulated/floor/plating,/area/shuttle/administration/centcom) "tt" = (/obj/machinery/light/small{dir = 4; pixel_y = 0},/turf/simulated/floor/plating,/area/shuttle/administration/centcom) "tu" = (/obj/item/device/multitool,/obj/item/weapon/reagent_containers/spray/cleaner,/obj/structure/table/reinforced,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/administration/centcom) @@ -1014,10 +1014,10 @@ "tz" = (/obj/machinery/embedded_controller/radio/simple_docking_controller{frequency = 1331; id_tag = "merc_base"; pixel_x = -25; pixel_y = -5},/turf/unsimulated/floor{dir = 2; icon_state = "dark"},/area/syndicate_mothership) "tA" = (/obj/structure/table/rack,/obj/item/clothing/accessory/storage/brown_vest,/obj/item/clothing/accessory/storage/brown_vest,/obj/item/clothing/accessory/storage/brown_vest,/obj/item/clothing/accessory/storage/brown_vest,/obj/item/clothing/accessory/storage/brown_vest,/obj/item/clothing/accessory/storage/brown_vest,/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership) "tB" = (/obj/structure/table/rack,/obj/item/clothing/accessory/storage/black_vest,/obj/item/clothing/accessory/storage/black_vest,/obj/item/clothing/accessory/storage/black_vest,/obj/item/clothing/accessory/storage/black_vest,/obj/item/clothing/accessory/storage/black_vest,/obj/item/clothing/accessory/storage/black_vest,/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership) -"tC" = (/obj/structure/table/rack,/obj/item/clothing/mask/balaclava/tactical,/obj/item/clothing/mask/balaclava/tactical,/obj/item/clothing/mask/balaclava/tactical,/obj/item/clothing/mask/balaclava/tactical,/obj/item/clothing/mask/balaclava/tactical,/obj/item/clothing/mask/balaclava/tactical,/obj/item/clothing/mask/balaclava,/obj/item/clothing/mask/balaclava,/obj/item/clothing/mask/balaclava,/obj/item/clothing/mask/balaclava,/obj/item/clothing/mask/balaclava,/obj/item/clothing/mask/balaclava,/turf/unsimulated/floor{icon_state = "dark"},/area/space) +"tC" = (/obj/machinery/suit_cycler/syndicate{locked = 0},/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership) "tD" = (/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/administration/centcom) "tE" = (/obj/machinery/door/airlock/centcom{name = "General Access"; opacity = 1; req_access = list(101)},/turf/simulated/floor/plating,/area/shuttle/administration/centcom) -"tF" = (/obj/structure/table/standard,/obj/machinery/recharger{pixel_y = 4},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/administration/centcom) +"tF" = (/obj/structure/table/standard,/obj/machinery/recharger/map{pixel_y = 4},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/administration/centcom) "tG" = (/obj/machinery/cell_charger,/obj/structure/table/reinforced,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/administration/centcom) "tH" = (/obj/structure/toilet{dir = 4},/turf/simulated/shuttle/floor{icon_state = "floor7"},/area/syndicate_station/start) "tI" = (/obj/machinery/flasher{id = "syndieflash"; pixel_x = 0; pixel_y = 28},/obj/machinery/light/small{dir = 1},/turf/simulated/shuttle/floor{icon_state = "floor7"},/area/syndicate_station/start) @@ -1032,7 +1032,7 @@ "tR" = (/obj/structure/window/reinforced{dir = 1},/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership) "tS" = (/obj/machinery/door/airlock/vault{name = "Armory"; req_access = list(150)},/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership) "tT" = (/obj/effect/landmark{name = "Syndicate-Uplink"},/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership) -"tU" = (/obj/structure/table/rack,/obj/item/clothing/suit/storage/vest/heavy/merc{pixel_x = 2; pixel_y = 2},/obj/item/clothing/suit/storage/vest/heavy/merc{pixel_x = -2; pixel_y = -2},/obj/item/clothing/suit/storage/vest/heavy/merc,/obj/item/clothing/suit/storage/vest/heavy/merc,/obj/item/clothing/suit/storage/vest/heavy/merc,/obj/item/clothing/suit/storage/vest/heavy/merc,/turf/unsimulated/floor{icon_state = "dark"},/area/space) +"tU" = (/obj/machinery/portable_atmospherics/canister/carbon_dioxide,/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership) "tV" = (/obj/machinery/door/window/northright,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/administration/centcom) "tW" = (/obj/structure/table/reinforced,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/administration/centcom) "tX" = (/obj/item/weapon/flame/lighter/zippo,/obj/structure/table/reinforced,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/administration/centcom) @@ -1048,7 +1048,7 @@ "uh" = (/obj/structure/table/rack,/obj/item/device/megaphone,/obj/item/device/megaphone,/obj/item/device/megaphone,/obj/item/device/megaphone,/obj/item/device/megaphone,/obj/item/device/megaphone,/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership) "ui" = (/obj/machinery/atmospherics/pipe/manifold4w/visible,/turf/simulated/shuttle/floor{icon_state = "floor6"},/area/syndicate_station/start) "uj" = (/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 8; frequency = 1331; id_tag = "merc_shuttle_pump"},/turf/simulated/shuttle/floor{icon_state = "floor6"},/area/syndicate_station/start) -"uk" = (/obj/structure/table/rack,/obj/machinery/recharger/wallcharger{pixel_x = 5; pixel_y = 32},/obj/item/weapon/material/hatchet/tacknife/combatknife,/obj/item/weapon/material/hatchet/tacknife/combatknife,/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership) +"uk" = (/obj/structure/table/rack,/obj/machinery/recharger/wallcharger/map{pixel_x = 5; pixel_y = 32},/obj/item/weapon/material/hatchet/tacknife/combatknife,/obj/item/weapon/material/hatchet/tacknife/combatknife,/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership) "ul" = (/obj/structure/table/rack,/obj/item/weapon/tank/jetpack/oxygen,/obj/item/weapon/tank/jetpack/oxygen,/obj/item/weapon/tank/jetpack/oxygen,/obj/item/weapon/tank/jetpack/oxygen,/obj/item/weapon/tank/jetpack/oxygen,/obj/item/weapon/tank/jetpack/oxygen,/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership) "um" = (/obj/structure/table/rack,/obj/item/weapon/tank/jetpack/carbondioxide,/obj/item/weapon/tank/jetpack/carbondioxide,/obj/item/weapon/tank/jetpack/carbondioxide,/obj/item/weapon/tank/jetpack/carbondioxide,/obj/item/weapon/tank/jetpack/carbondioxide,/obj/item/weapon/tank/jetpack/carbondioxide,/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership) "un" = (/obj/structure/table/rack,/obj/item/device/camera_film,/obj/item/device/camera_film,/obj/item/device/camera_film,/obj/item/device/camera_film,/obj/item/device/camera_film,/obj/item/device/camera_film,/obj/item/device/camera,/obj/item/device/camera,/obj/item/device/camera,/obj/item/device/camera,/obj/item/device/camera,/obj/item/device/camera,/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership) @@ -1058,9 +1058,9 @@ "ur" = (/obj/item/weapon/stool,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/administration/centcom) "us" = (/obj/structure/reagent_dispensers/fueltank,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/administration/centcom) "ut" = (/obj/structure/reagent_dispensers/watertank,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/administration/centcom) -"uu" = (/obj/machinery/recharge_station,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/administration/centcom) +"uu" = (/obj/machinery/recharge_station/map,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/administration/centcom) "uv" = (/obj/machinery/robotic_fabricator,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/administration/centcom) -"uw" = (/obj/machinery/autolathe{desc = "Your typical Autolathe. It appears to have much more options than your regular one, however..."; hacked = 1; name = "Thunderdome Autolathe"},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/administration/centcom) +"uw" = (/obj/machinery/autolathe/map{desc = "Your typical Autolathe. It appears to have much more options than your regular one, however..."; hacked = 1; name = "Thunderdome Autolathe"},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/administration/centcom) "ux" = (/obj/structure/dispenser,/obj/machinery/light{icon_state = "tube1"; dir = 4},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/administration/centcom) "uy" = (/obj/machinery/door/window{dir = 1; name = "Cell"; req_access = list(150)},/obj/item/device/radio/intercom{desc = "Talk through this. Evilly"; frequency = 1213; name = "Syndicate Intercom"; pixel_x = -32; subspace_transmission = 1; syndie = 1},/turf/simulated/shuttle/floor{icon_state = "floor6"},/area/syndicate_station/start) "uz" = (/obj/machinery/light{dir = 8; icon_state = "tube1"; pixel_y = 0},/turf/simulated/shuttle/floor{icon_state = "floor6"},/area/syndicate_station/start) @@ -1069,9 +1069,9 @@ "uC" = (/obj/machinery/door/airlock/external{frequency = 1331; id_tag = "merc_shuttle_inner"; name = "Ship External Access"; req_access = list(0)},/obj/machinery/atmospherics/pipe/simple/visible,/turf/simulated/shuttle/floor{icon_state = "floor6"},/area/syndicate_station/start) "uD" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/lattice,/turf/space,/area/space) "uE" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/structure/grille,/turf/unsimulated/floor{icon_state = "plating"; name = "plating"},/area/syndicate_mothership) -"uF" = (/obj/structure/table/rack,/obj/item/weapon/storage/box/handcuffs{pixel_x = 4; pixel_y = 2},/obj/item/weapon/storage/box/flashbangs,/obj/item/weapon/grenade/smokebomb,/obj/item/weapon/grenade/smokebomb,/obj/item/weapon/grenade/smokebomb,/obj/item/weapon/grenade/smokebomb,/obj/item/weapon/grenade/smokebomb,/obj/item/weapon/grenade/smokebomb,/obj/item/weapon/grenade/smokebomb,/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership) +"uF" = (/obj/structure/table/rack,/obj/item/weapon/storage/box/handcuffs{pixel_x = 4; pixel_y = 2},/obj/item/weapon/storage/box/flashbangs,/obj/item/weapon/storage/box/smokes,/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership) "uG" = (/obj/structure/table/rack,/obj/item/weapon/pinpointer/nukeop,/obj/item/weapon/pinpointer/nukeop,/obj/item/weapon/pinpointer/nukeop,/obj/item/weapon/pinpointer/nukeop,/obj/item/weapon/pinpointer/nukeop,/obj/item/weapon/pinpointer/nukeop,/obj/item/weapon/shield/energy,/obj/item/weapon/shield/energy,/obj/item/weapon/shield/energy,/obj/item/weapon/shield/energy,/obj/item/weapon/shield/energy,/obj/item/weapon/shield/energy,/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership) -"uH" = (/obj/structure/table/rack,/obj/item/weapon/gun/energy/gun,/obj/item/weapon/gun/energy/gun,/obj/item/weapon/gun/energy/gun,/obj/machinery/recharger/wallcharger{pixel_x = 5; pixel_y = -32},/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership) +"uH" = (/obj/structure/table/rack,/obj/item/weapon/gun/energy/gun,/obj/item/weapon/gun/energy/gun,/obj/item/weapon/gun/energy/gun,/obj/machinery/recharger/wallcharger/map{pixel_x = 5; pixel_y = -32},/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership) "uI" = (/obj/structure/table/rack,/obj/item/device/flashlight/maglight,/obj/item/device/flashlight/maglight,/obj/item/device/flashlight/maglight,/obj/item/device/flashlight/maglight,/obj/item/device/flashlight/maglight,/obj/item/device/flashlight/maglight,/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership) "uJ" = (/obj/structure/shuttle/engine/propulsion{tag = "icon-propulsion_r (WEST)"; icon_state = "propulsion_r"; dir = 8},/turf/space,/area/shuttle/administration/centcom) "uK" = (/turf/unsimulated/floor{icon_state = "plating"; name = "plating"},/turf/simulated/shuttle/wall{dir = 4; icon_state = "diagonalWall3"},/area/shuttle/administration/centcom) @@ -1102,7 +1102,7 @@ "vj" = (/obj/structure/table/standard,/obj/item/weapon/storage/toolbox/syndicate{pixel_x = -1; pixel_y = 3},/turf/simulated/shuttle/floor{icon_state = "floor6"},/area/syndicate_station/start) "vk" = (/obj/machinery/dna_scannernew,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/shuttle/administration/centcom) "vl" = (/obj/machinery/computer/cloning,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/shuttle/administration/centcom) -"vm" = (/obj/machinery/clonepod,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/shuttle/administration/centcom) +"vm" = (/obj/machinery/clonepod/map,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/shuttle/administration/centcom) "vn" = (/obj/machinery/computer/scan_consolenew,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/shuttle/administration/centcom) "vo" = (/obj/machinery/computer/shuttle_control{req_access = list(101); shuttle_tag = "Administration"},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/administration/centcom) "vp" = (/turf/simulated/shuttle/wall{icon_state = "swall_s"; dir = 4},/area/supply/dock) @@ -1111,10 +1111,10 @@ "vs" = (/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/shuttle/administration/centcom) "vt" = (/turf/simulated/shuttle/wall{icon_state = "swall_straight"; dir = 1},/area/supply/dock) "vu" = (/turf/simulated/shuttle/floor,/area/supply/dock) -"vv" = (/obj/machinery/light{dir = 8; icon_state = "tube1"; pixel_y = 0},/obj/machinery/sleeper{dir = 8},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/syndicate_station/start) +"vv" = (/obj/machinery/light{dir = 8; icon_state = "tube1"; pixel_y = 0},/obj/machinery/sleeper/map{dir = 8},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/syndicate_station/start) "vw" = (/obj/machinery/sleep_console,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/syndicate_station/start) "vx" = (/obj/structure/table/rack,/obj/item/weapon/crowbar/red,/obj/item/weapon/crowbar/red,/obj/item/weapon/crowbar/red,/obj/item/weapon/crowbar/red,/obj/item/weapon/crowbar/red,/obj/item/weapon/crowbar/red,/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership) -"vy" = (/obj/structure/table/standard,/obj/item/roller{pixel_y = 8},/obj/item/weapon/reagent_containers/blood/OMinus,/obj/item/weapon/reagent_containers/blood/OMinus,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/syndicate_station/start) +"vy" = (/obj/structure/table/standard,/obj/item/weapon/reagent_containers/blood/OMinus,/obj/item/weapon/reagent_containers/blood/OMinus,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/syndicate_station/start) "vz" = (/obj/structure/table/standard,/obj/structure/closet/secure_closet/medical_wall{pixel_y = 32; req_access = list(150)},/obj/item/bodybag,/obj/item/weapon/reagent_containers/syringe/antiviral,/obj/item/weapon/reagent_containers/syringe/antiviral,/obj/item/weapon/reagent_containers/syringe/antiviral,/obj/item/weapon/reagent_containers/glass/bottle/antitoxin{pixel_x = -4; pixel_y = 8},/obj/item/weapon/reagent_containers/glass/bottle/inaprovaline{pixel_x = 4; pixel_y = 7},/obj/item/weapon/reagent_containers/syringe,/obj/machinery/light{dir = 4},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/syndicate_station/start) "vA" = (/obj/item/device/radio/intercom{desc = "Talk through this. Evilly"; frequency = 1213; name = "Syndicate Intercom"; pixel_x = -32; subspace_transmission = 1; syndie = 1},/obj/machinery/light{dir = 8; icon_state = "tube1"; pixel_y = 0},/turf/simulated/shuttle/floor{icon_state = "floor6"},/area/syndicate_station/start) "vB" = (/obj/machinery/light{dir = 4},/turf/simulated/shuttle/floor{icon_state = "floor6"},/area/syndicate_station/start) @@ -1138,8 +1138,8 @@ "vT" = (/obj/item/device/radio/intercom{desc = "Talk through this. Evilly"; frequency = 1213; name = "Syndicate Intercom"; pixel_x = -32; subspace_transmission = 1; syndie = 1},/turf/simulated/shuttle/floor{icon_state = "floor6"},/area/syndicate_station/start) "vU" = (/obj/structure/table/standard,/obj/item/weapon/screwdriver,/obj/effect/spawner/newbomb/timer/syndicate,/turf/simulated/shuttle/floor{icon_state = "floor6"},/area/syndicate_station/start) "vV" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/grille,/obj/machinery/door/blast/shutters{density = 0; dir = 4; icon_state = "shutter0"; id = "syndieshutters_workshop"; name = "Blast Shutters"; opacity = 0},/turf/simulated/shuttle/plating,/area/syndicate_station/start) -"vW" = (/obj/structure/table/rack,/obj/item/ammo_magazine/a10mm,/obj/item/ammo_magazine/a10mm,/obj/item/ammo_magazine/a10mm,/obj/item/ammo_magazine/a10mm,/obj/item/ammo_magazine/a10mm,/obj/item/ammo_magazine/a10mm,/obj/item/weapon/gun/projectile/automatic/c20r,/obj/item/weapon/gun/projectile/automatic/c20r,/obj/item/weapon/gun/projectile/automatic/c20r,/turf/unsimulated/floor{icon_state = "dark"},/area/space) -"vX" = (/obj/structure/table/rack,/obj/item/ammo_magazine/c762,/obj/item/ammo_magazine/c762,/obj/item/ammo_magazine/c762,/obj/item/ammo_magazine/c762,/obj/item/weapon/gun/projectile/automatic/sts35,/obj/item/weapon/gun/projectile/automatic/sts35,/turf/unsimulated/floor{icon_state = "dark"},/area/space) +"vW" = (/obj/machinery/portable_atmospherics/canister/oxygen,/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership) +"vX" = (/obj/structure/table/rack,/obj/item/weapon/tank/emergency_oxygen/double,/obj/item/weapon/tank/emergency_oxygen/double,/obj/item/weapon/tank/emergency_oxygen/double,/obj/item/weapon/tank/emergency_oxygen/double,/obj/item/weapon/tank/emergency_oxygen/double,/obj/item/weapon/tank/emergency_oxygen/double,/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership) "vY" = (/obj/structure/flora/ausbushes/brflowers,/turf/unsimulated/floor{icon_state = "grass0"; name = "grass"},/area/centcom/terminal) "vZ" = (/obj/structure/flora/ausbushes/ppflowers,/turf/unsimulated/floor{icon_state = "grass0"; name = "grass"},/area/centcom/terminal) "wa" = (/obj/machinery/porta_turret/crescent,/obj/effect/floor_decal/industrial/hatch/yellow,/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/terminal) @@ -1153,10 +1153,10 @@ "wi" = (/obj/structure/table/standard,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/shuttle/administration/centcom) "wj" = (/obj/structure/table/standard,/obj/machinery/light{icon_state = "tube1"; dir = 4},/obj/item/weapon/reagent_containers/glass/beaker/large,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/shuttle/administration/centcom) "wk" = (/obj/structure/table/standard,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/administration/centcom) -"wl" = (/obj/machinery/conveyor{dir = 4; id = "QMLoad2"},/turf/simulated/shuttle/floor,/area/supply/dock) -"wm" = (/obj/machinery/conveyor{dir = 4; id = "QMLoad2"},/obj/machinery/door/airlock/external{frequency = 1380; icon_state = "door_locked"; id_tag = "supply_shuttle_hatch"; locked = 1; name = "Shuttle Hatch"; req_access = list(13)},/turf/simulated/shuttle/plating,/area/supply/dock) +"wl" = (/obj/machinery/conveyor/map{dir = 4; id = "QMLoad2"},/turf/simulated/shuttle/floor,/area/supply/dock) +"wm" = (/obj/machinery/conveyor/map{dir = 4; id = "QMLoad2"},/obj/machinery/door/airlock/external{frequency = 1380; icon_state = "door_locked"; id_tag = "supply_shuttle_hatch"; locked = 1; name = "Shuttle Hatch"; req_access = list(13)},/turf/simulated/shuttle/plating,/area/supply/dock) "wn" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/grille,/obj/machinery/door/blast/shutters{density = 0; dir = 8; icon_state = "shutter0"; id = "syndieshutters_infirmary"; name = "Blast Shutters"; opacity = 0},/turf/simulated/shuttle/plating,/area/syndicate_station/start) -"wo" = (/obj/machinery/bodyscanner{dir = 8},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/syndicate_station/start) +"wo" = (/obj/machinery/bodyscanner/map{dir = 8},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/syndicate_station/start) "wp" = (/obj/machinery/body_scanconsole,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/syndicate_station/start) "wq" = (/obj/machinery/door/window{dir = 4; name = "Infirmary"; req_access = list(150)},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/syndicate_station/start) "wr" = (/obj/machinery/door/window/westright{name = "Tool Storage"; req_access = list(150)},/turf/simulated/shuttle/floor{icon_state = "floor6"},/area/syndicate_station/start) @@ -1188,30 +1188,30 @@ "wR" = (/obj/effect/floor_decal/corner/yellow/diagonal,/obj/effect/floor_decal/corner/blue/diagonal{dir = 4},/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/command) "wS" = (/obj/structure/table/standard,/obj/effect/floor_decal/carpet{dir = 1},/obj/effect/floor_decal/carpet{dir = 4},/obj/effect/floor_decal/carpet{dir = 5},/turf/unsimulated/floor{icon_state = "carpet"; dir = 2},/area/centcom/command) "wT" = (/obj/effect/floor_decal/carpet{dir = 8},/turf/unsimulated/floor{icon_state = "carpet"; dir = 2},/area/centcom/command) -"wU" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/table/standard,/obj/item/weapon/bonesetter,/obj/item/weapon/bonegel,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/syndicate_station/start) +"wU" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/table/standard,/obj/item/weapon/surgicaldrill,/obj/item/weapon/cautery,/obj/item/weapon/retractor,/obj/item/stack/nanopaste,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/syndicate_station/start) "wV" = (/obj/machinery/door/window{dir = 1; name = "Surgery"; req_access = list(150)},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/syndicate_station/start) -"wW" = (/obj/machinery/suit_cycler/syndicate{locked = 0},/turf/unsimulated/floor{icon_state = "dark"},/area/space) +"wW" = (/obj/structure/table/rack,/obj/item/device/suit_cooling_unit,/obj/item/device/suit_cooling_unit,/obj/item/device/suit_cooling_unit,/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership) "wX" = (/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 4; frequency = 1331; id_tag = "merc_shuttle_pump"},/obj/machinery/button/remote/blast_door{id = "smindicate"; name = "ship lockdown control"; pixel_x = -25},/turf/simulated/shuttle/floor{icon_state = "floor6"},/area/syndicate_station/start) -"wY" = (/obj/machinery/portable_atmospherics/canister/carbon_dioxide,/turf/unsimulated/floor{icon_state = "dark"},/area/space) +"wY" = (/obj/structure/table/rack,/obj/item/weapon/rig/merc/empty,/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership) "wZ" = (/obj/item/weapon/weldingtool,/obj/machinery/light{dir = 8; icon_state = "tube1"; pixel_y = 0},/turf/simulated/shuttle/floor{icon_state = "floor6"},/area/syndicate_station/start) "xa" = (/turf/unsimulated/floor{icon_state = "carpet"; dir = 2},/area/centcom/command) "xb" = (/obj/machinery/telecomms/allinone{intercept = 1},/obj/machinery/door/window/northright{name = "Telecoms Mainframe"; req_access = list(150)},/turf/simulated/shuttle/floor{icon_state = "floor6"},/area/syndicate_station/start) "xc" = (/obj/machinery/door/blast/regular{id = "syndieshutters_telebay"; name = "Outer Airlock"},/turf/simulated/shuttle/plating,/area/syndicate_station/start) "xd" = (/obj/structure/bed/chair/office/dark{dir = 8},/turf/unsimulated/floor{icon_state = "carpet"; dir = 2},/area/centcom/command) "xe" = (/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/security) -"xf" = (/obj/structure/sink{icon_state = "sink"; dir = 8; pixel_x = -12; pixel_y = 2},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/security) +"xf" = (/obj/effect/floor_decal/corner/orange{dir = 5},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/security) "xg" = (/obj/effect/wingrille_spawn/reinforced/crescent,/turf/unsimulated/floor{icon_state = "plating"; name = "plating"},/area/centcom/security) -"xh" = (/obj/structure/bed/padded,/obj/item/weapon/bedsheet/orange,/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/security) -"xi" = (/obj/structure/closet{name = "Prisoner's Locker"},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/security) +"xh" = (/obj/structure/sink{icon_state = "sink"; dir = 8; pixel_x = -12; pixel_y = 2},/obj/effect/floor_decal/corner/orange/full{dir = 8},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/security) +"xi" = (/obj/structure/bed/padded,/obj/item/weapon/bedsheet/orange,/obj/effect/floor_decal/corner/orange{dir = 5},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/security) "xj" = (/turf/unsimulated/floor{dir = 2; icon_state = "dark"},/area/centcom/command) "xk" = (/obj/machinery/computer/card/centcom,/obj/item/weapon/card/id/centcom,/turf/unsimulated/floor{dir = 2; icon_state = "dark"},/area/centcom/command) "xl" = (/obj/machinery/computer/security/telescreen{name = "Spec. Ops. Monitor"; network = list("ERT")},/obj/structure/table/woodentable{dir = 5},/turf/unsimulated/floor{dir = 2; icon_state = "dark"},/area/centcom/command) "xm" = (/obj/machinery/vending/cola,/obj/effect/floor_decal/corner/yellow/diagonal,/obj/effect/floor_decal/corner/blue/diagonal{dir = 4},/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/command) "xn" = (/obj/machinery/vending/cigarette,/obj/effect/floor_decal/corner/yellow/diagonal,/obj/effect/floor_decal/corner/blue/diagonal{dir = 4},/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/command) "xo" = (/obj/effect/floor_decal/carpet{dir = 4},/turf/unsimulated/floor{icon_state = "carpet"; dir = 2},/area/centcom/command) -"xp" = (/obj/machinery/conveyor{dir = 4; id = "QMLoad"},/turf/simulated/shuttle/floor,/area/supply/dock) -"xq" = (/obj/machinery/conveyor{dir = 4; id = "QMLoad"},/obj/machinery/door/airlock/external{frequency = 1380; icon_state = "door_locked"; id_tag = "supply_shuttle_hatch"; locked = 1; name = "Shuttle Hatch"; req_access = list(13)},/turf/simulated/shuttle/plating,/area/supply/dock) -"xr" = (/obj/structure/table/standard,/obj/item/weapon/scalpel,/obj/item/weapon/circular_saw{pixel_y = 8},/obj/machinery/light/small{dir = 8},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/syndicate_station/start) +"xp" = (/obj/machinery/conveyor/map{dir = 4; id = "QMLoad"},/turf/simulated/shuttle/floor,/area/supply/dock) +"xq" = (/obj/machinery/conveyor/map{dir = 4; id = "QMLoad"},/obj/machinery/door/airlock/external{frequency = 1380; icon_state = "door_locked"; id_tag = "supply_shuttle_hatch"; locked = 1; name = "Shuttle Hatch"; req_access = list(13)},/turf/simulated/shuttle/plating,/area/supply/dock) +"xr" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/table/standard,/obj/item/weapon/circular_saw,/obj/item/weapon/FixOVein{pixel_x = -6; pixel_y = 1},/obj/item/weapon/hemostat,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/syndicate_station/start) "xs" = (/obj/machinery/door/window{tag = "icon-right"; name = "Seating"; icon_state = "right"; dir = 2; req_access = list(150)},/turf/simulated/shuttle/floor{icon_state = "floor6"},/area/syndicate_station/start) "xt" = (/obj/item/weapon/crowbar,/turf/simulated/shuttle/floor{icon_state = "floor6"},/area/syndicate_station/start) "xu" = (/obj/machinery/light/small{dir = 8},/turf/simulated/shuttle/floor{icon_state = "floor6"},/area/syndicate_station/start) @@ -1219,7 +1219,7 @@ "xw" = (/obj/machinery/door/airlock/external,/obj/effect/forcefield{desc = "You can't get in. Heh."; layer = 1; name = "Blocker"},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/terminal) "xx" = (/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/terminal) "xy" = (/obj/machinery/door/airlock/external,/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/terminal) -"xz" = (/obj/machinery/portable_atmospherics/hydroponics,/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/security) +"xz" = (/obj/structure/bed/padded,/obj/item/weapon/bedsheet/orange,/obj/effect/floor_decal/corner/orange/full{dir = 1},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/security) "xA" = (/obj/structure/bed/chair,/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/security) "xB" = (/turf/unsimulated/floor{icon_state = "lino"},/area/centcom/command) "xC" = (/obj/machinery/door/airlock/glass{name = "Brig Dormitories"},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/security) @@ -1229,12 +1229,12 @@ "xG" = (/obj/item/weapon/reagent_containers/food/drinks/cans/cola,/obj/structure/table/standard,/obj/effect/floor_decal/corner/yellow/diagonal,/obj/effect/floor_decal/corner/blue/diagonal{dir = 4},/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/command) "xH" = (/obj/structure/bed/chair/comfy/teal,/obj/effect/floor_decal/carpet{dir = 1},/turf/unsimulated/floor{icon_state = "carpet"; dir = 2},/area/centcom/command) "xI" = (/obj/effect/floor_decal/carpet{dir = 1},/obj/effect/floor_decal/carpet{dir = 8},/obj/effect/floor_decal/carpet{dir = 9},/turf/unsimulated/floor{icon_state = "carpet"; dir = 2},/area/centcom/command) -"xJ" = (/obj/structure/table/standard,/obj/item/weapon/cautery,/obj/item/weapon/hemostat,/obj/item/weapon/FixOVein,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/syndicate_station/start) +"xJ" = (/obj/structure/table/standard,/obj/item/roller,/obj/item/roller,/obj/item/roller,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/syndicate_station/start) "xK" = (/obj/machinery/optable,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/syndicate_station/start) "xL" = (/obj/structure/flora/pottedplant{tag = "icon-plant-10"; icon_state = "plant-10"},/turf/simulated/shuttle/floor{icon_state = "floor6"},/area/syndicate_station/start) "xM" = (/obj/structure/shuttle/engine/heater,/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/airless,/area/syndicate_station/start) -"xN" = (/obj/machinery/teleport/station,/turf/simulated/shuttle/floor{icon_state = "floor6"},/area/syndicate_station/start) -"xO" = (/obj/machinery/teleport/hub,/turf/simulated/shuttle/floor{icon_state = "floor6"},/area/syndicate_station/start) +"xN" = (/obj/machinery/teleport/station/map,/turf/simulated/shuttle/floor{icon_state = "floor6"},/area/syndicate_station/start) +"xO" = (/obj/machinery/teleport/hub/map,/turf/simulated/shuttle/floor{icon_state = "floor6"},/area/syndicate_station/start) "xP" = (/obj/structure/table/reinforced,/obj/item/device/taperecorder,/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/security) "xQ" = (/obj/structure/bed/chair{dir = 4},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/security) "xR" = (/obj/structure/table/rack,/obj/item/weapon/storage/secure/briefcase,/obj/item/weapon/storage/fancy/cigarettes,/obj/item/weapon/flame/lighter/zippo,/obj/item/weapon/storage/belt/utility,/obj/item/weapon/storage/backpack/satchel,/turf/unsimulated/floor{dir = 2; icon_state = "dark"},/area/centcom/command) @@ -1254,7 +1254,7 @@ "yf" = (/obj/structure/shuttle/engine/propulsion{icon_state = "propulsion_l"},/turf/space,/area/syndicate_station/start) "yg" = (/obj/structure/shuttle/engine/propulsion,/turf/space,/area/syndicate_station/start) "yh" = (/obj/structure/shuttle/engine/propulsion{icon_state = "propulsion_r"},/turf/space,/area/syndicate_station/start) -"yi" = (/obj/structure/table/reinforced,/obj/item/weapon/material/minihoe,/obj/item/device/analyzer/plant_analyzer,/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/security) +"yi" = (/obj/structure/closet{name = "Prisoner's Locker"},/obj/effect/floor_decal/corner/orange{dir = 5},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/security) "yj" = (/obj/structure/table/reinforced,/obj/item/weapon/book/manual/security_space_law,/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/security) "yk" = (/obj/structure/bed/chair/comfy/teal{dir = 4},/obj/effect/floor_decal/carpet{dir = 8},/turf/unsimulated/floor{icon_state = "carpet"; dir = 2},/area/centcom/command) "yl" = (/obj/structure/bed/chair{dir = 8},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/security) @@ -1270,16 +1270,16 @@ "yv" = (/obj/structure/bed/chair{dir = 1},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/security) "yw" = (/obj/machinery/door/airlock/centcom{name = "Courthouse"; opacity = 1},/turf/unsimulated/floor{icon_state = "lino"},/area/centcom/command) "yx" = (/obj/structure/closet/secure_closet/hos,/turf/unsimulated/floor{dir = 2; icon_state = "dark"},/area/centcom/command) -"yy" = (/obj/machinery/vending/hydronutrients,/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/security) -"yz" = (/obj/machinery/computer/arcade/orion_trail,/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/security) +"yy" = (/obj/machinery/portable_atmospherics/hydroponics,/obj/effect/floor_decal/corner/orange{dir = 9},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/security) +"yz" = (/obj/effect/floor_decal/corner/orange{dir = 6},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/security) "yA" = (/obj/structure/shuttle/engine/propulsion{icon_state = "burst_l"},/turf/space,/area/supply/dock) "yB" = (/obj/structure/shuttle/engine/propulsion,/turf/space,/area/supply/dock) "yC" = (/obj/structure/shuttle/engine/propulsion{icon_state = "burst_r"},/turf/space,/area/supply/dock) -"yD" = (/obj/structure/table/reinforced,/obj/item/clothing/head/greenbandana,/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/security) -"yE" = (/obj/structure/table/steel,/obj/item/device/camera{desc = "A one use - polaroid camera. 30 photos left."; name = "detectives camera"; pictures_left = 30; pixel_x = 2; pixel_y = 3},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/security) +"yD" = (/obj/effect/floor_decal/corner/orange,/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/security) +"yE" = (/obj/structure/bed/padded,/obj/item/weapon/bedsheet/orange,/obj/effect/floor_decal/corner/orange{dir = 10},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/security) "yF" = (/obj/item/weapon/reagent_containers/food/condiment/small/saltshaker{pixel_x = -6},/obj/structure/table/standard,/obj/effect/floor_decal/corner/yellow/diagonal,/obj/effect/floor_decal/corner/blue/diagonal{dir = 4},/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/command) -"yG" = (/obj/structure/table/steel,/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/security) -"yH" = (/obj/machinery/vending/hydroseeds,/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/security) +"yG" = (/obj/structure/bed/padded,/obj/item/weapon/bedsheet/orange,/obj/effect/floor_decal/corner/orange/full{dir = 4},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/security) +"yH" = (/obj/structure/closet{name = "Prisoner's Locker"},/obj/effect/floor_decal/corner/orange{dir = 10},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/security) "yI" = (/turf/unsimulated/wall,/area/centcom/restaurant) "yJ" = (/obj/structure/table/woodentable{dir = 5},/obj/item/weapon/storage/briefcase,/turf/unsimulated/floor{icon_state = "carpet"; dir = 2},/area/centcom/command) "yK" = (/obj/structure/bed/chair{dir = 4},/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/command) @@ -1305,19 +1305,19 @@ "ze" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/item/device/radio/intercom{broadcasting = 1; dir = 1; frequency = 1443; listening = 0; name = "Spec Ops Intercom"; pixel_y = 28},/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/command) "zf" = (/obj/machinery/door/window{dir = 2; name = "AI Core Door"; req_access = list(109)},/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/command) "zg" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/command) -"zh" = (/obj/structure/table/steel,/obj/item/weapon/paper_bin,/obj/item/weapon/pen,/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/security) -"zi" = (/obj/structure/closet/wardrobe/orange,/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/security) +"zh" = (/obj/structure/table/reinforced,/obj/item/weapon/material/minihoe,/obj/item/device/analyzer/plant_analyzer,/obj/effect/floor_decal/corner/orange{dir = 9},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/security) +"zi" = (/obj/effect/floor_decal/corner/orange{dir = 4},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/security) "zj" = (/obj/machinery/computer/card/centcom,/turf/unsimulated/floor{icon_state = "carpet"; dir = 2},/area/centcom/command) -"zk" = (/obj/structure/table/reinforced,/obj/machinery/microwave,/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/security) -"zl" = (/obj/structure/table/steel,/obj/item/weapon/folder/red,/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/security) -"zm" = (/obj/structure/table/reinforced,/obj/item/weapon/paper_bin,/obj/item/weapon/pen,/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/security) +"zk" = (/obj/structure/table/reinforced,/obj/item/clothing/head/greenbandana,/obj/effect/floor_decal/corner/orange{dir = 9},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/security) +"zl" = (/obj/machinery/vending/hydroseeds,/obj/effect/floor_decal/corner/orange{dir = 10},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/security) +"zm" = (/obj/machinery/vending/hydronutrients,/obj/effect/floor_decal/corner/orange/full,/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/security) "zn" = (/obj/machinery/chem_master/condimaster{name = "CondiMaster Neo"; pixel_x = -5},/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/centcom/restaurant) "zo" = (/obj/structure/table/marble,/obj/effect/floor_decal/corner/white/diagonal,/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/restaurant) "zp" = (/obj/item/weapon/stool/padded,/obj/effect/floor_decal/corner/white/diagonal,/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/restaurant) "zq" = (/obj/structure/filingcabinet/filingcabinet,/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/command) "zr" = (/obj/machinery/door/airlock/glass_security{name = "Spaceport Security Airlock"; req_access = list(63)},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/security) -"zs" = (/obj/structure/table/steel,/obj/item/device/taperecorder,/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/security) -"zt" = (/obj/machinery/computer/security,/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/security) +"zs" = (/obj/effect/floor_decal/corner/orange{dir = 8},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/security) +"zt" = (/obj/effect/floor_decal/corner/orange{dir = 10},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/security) "zu" = (/obj/machinery/door/airlock/freezer,/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/centcom/restaurant) "zv" = (/obj/structure/table/marble,/obj/item/weapon/storage/box/donkpockets{pixel_x = 3; pixel_y = 3},/obj/item/weapon/material/kitchen/rollingpin,/obj/effect/floor_decal/corner/white/diagonal,/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/restaurant) "zw" = (/obj/structure/bed/chair{dir = 4},/obj/effect/floor_decal/corner/white/diagonal,/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/restaurant) @@ -1327,7 +1327,7 @@ "zA" = (/obj/structure/table/reinforced,/obj/item/device/pda/captain,/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/command) "zB" = (/obj/structure/table/reinforced,/obj/item/weapon/card/id/captains_spare,/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/command) "zC" = (/obj/structure/table/reinforced,/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/command) -"zD" = (/obj/structure/table/reinforced,/obj/machinery/recharger{pixel_y = 4},/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/command) +"zD" = (/obj/structure/table/reinforced,/obj/machinery/recharger/map{pixel_y = 4},/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/command) "zE" = (/turf/simulated/shuttle/wall{dir = 4; icon_state = "swall_s"},/area/shuttle/transport1/centcom) "zF" = (/turf/simulated/shuttle/wall{icon_state = "swall_straight"; dir = 4},/area/shuttle/transport1/centcom) "zG" = (/turf/simulated/shuttle/wall{icon_state = "swall_s"; dir = 2},/area/shuttle/transport1/centcom) @@ -1337,12 +1337,12 @@ "zK" = (/turf/simulated/shuttle/wall{icon_state = "swall_t"; dir = 1},/area/shuttle/transport1/centcom) "zL" = (/obj/structure/shuttle/engine/propulsion{icon_state = "burst_r"; dir = 4},/turf/space,/area/shuttle/transport1/centcom) "zM" = (/obj/machinery/embedded_controller/radio/simple_docking_controller{frequency = 1380; id_tag = "centcom_shuttle_bay"; name = "shuttle bay controller"; pixel_x = -24; pixel_y = 0; tag_door = "centcom_shuttle_bay_door"},/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/terminal) -"zN" = (/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/window/brigdoor{dir = 4; name = "Weapons locker"},/obj/structure/table/rack,/obj/item/clothing/suit/armor/riot,/obj/item/weapon/melee/baton/loaded,/obj/item/weapon/shield/riot,/obj/item/clothing/head/helmet/riot,/obj/structure/window/reinforced,/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/security) -"zO" = (/obj/machinery/computer/card,/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/security) -"zP" = (/obj/structure/table/reinforced,/obj/machinery/newscaster{layer = 3.3; pixel_x = 27; pixel_y = 0},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/security) -"zQ" = (/obj/structure/bed/chair/office/dark,/obj/machinery/button/remote/blast_door{desc = "A remote control switch for port-side blast doors."; id = "CentComPort"; name = "Security Doors"; pixel_x = -12; pixel_y = -25; req_access = list(101)},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/security) +"zN" = (/obj/effect/floor_decal/corner/orange{dir = 9},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/security) +"zO" = (/obj/machinery/computer/arcade/orion_trail,/obj/effect/floor_decal/corner/orange{dir = 6},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/security) +"zP" = (/obj/structure/closet/wardrobe/orange,/obj/effect/floor_decal/corner/orange{dir = 5},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/security) +"zQ" = (/obj/structure/closet/wardrobe/orange,/obj/effect/floor_decal/corner/orange/full{dir = 8},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/security) "zR" = (/obj/structure/closet/secure_closet/freezer/meat,/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/centcom/restaurant) -"zS" = (/obj/structure/table/standard,/obj/machinery/microwave{pixel_x = -3; pixel_y = 6},/obj/effect/floor_decal/corner/white/diagonal,/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/restaurant) +"zS" = (/obj/structure/table/standard,/obj/machinery/microwave/map{pixel_x = -3; pixel_y = 6},/obj/effect/floor_decal/corner/white/diagonal,/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/restaurant) "zT" = (/obj/structure/table/marble,/obj/item/weapon/reagent_containers/glass/beaker,/obj/item/weapon/reagent_containers/food/condiment/enzyme,/obj/effect/floor_decal/corner/white/diagonal,/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/restaurant) "zU" = (/obj/machinery/door/airlock/centcom{name = "Teleporter Bay"; opacity = 1; req_access = list(107)},/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/command) "zV" = (/obj/structure/bed/chair,/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/command) @@ -1354,9 +1354,9 @@ "Ab" = (/obj/structure/bed/chair,/obj/machinery/light{dir = 1},/turf/simulated/shuttle/floor,/area/shuttle/transport1/centcom) "Ac" = (/obj/structure/shuttle/engine/heater{icon_state = "heater"; dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/turf/simulated/floor/airless,/area/shuttle/transport1/centcom) "Ad" = (/obj/structure/shuttle/engine/propulsion{icon_state = "propulsion_l"; dir = 4},/turf/space,/area/shuttle/transport1/centcom) -"Ae" = (/obj/structure/table/reinforced,/obj/machinery/computer/skills,/obj/structure/window/reinforced{dir = 2; health = 1e+006},/obj/structure/window/reinforced{dir = 8},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/security) -"Af" = (/obj/structure/closet{name = "Evidence Closet"},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/security) -"Ag" = (/obj/structure/table/steel,/obj/item/weapon/storage/box/evidence,/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/security) +"Ae" = (/obj/effect/floor_decal/corner/orange{dir = 1},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/security) +"Af" = (/obj/structure/table/reinforced,/obj/item/weapon/storage/box/donkpockets,/obj/item/weapon/storage/box/donkpockets,/obj/machinery/computer/security/telescreen/entertainment{icon_state = "frame"; pixel_x = 30},/obj/effect/floor_decal/corner/orange{dir = 6},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/security) +"Ag" = (/obj/item/device/camera{desc = "A one use - polaroid camera. 30 photos left."; name = "detectives camera"; pictures_left = 30; pixel_x = 2; pixel_y = 3},/obj/effect/floor_decal/corner/red/full{dir = 8},/obj/structure/table/reinforced,/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/security) "Ah" = (/obj/structure/closet/secure_closet/bar,/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/centcom/restaurant) "Ai" = (/obj/machinery/computer/ordercomp,/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/command) "Aj" = (/obj/machinery/button/remote/blast_door{id = "crescent_checkpoint_access"; name = "Crescent Checkpoint Access"; pixel_x = -6; pixel_y = -24; req_access = list(101)},/obj/machinery/button/remote/blast_door{id = "crescent_thunderdome"; name = "Thunderdome Access"; pixel_x = 6; pixel_y = -24; req_access = list(101)},/obj/machinery/button/remote/blast_door{id = "crescent_vip_shuttle"; name = "VIP Shuttle Access"; pixel_x = 6; pixel_y = -34; req_access = list(101)},/obj/machinery/turretid{pixel_x = 28; pixel_y = -28; req_access = list(101)},/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/command) @@ -1382,8 +1382,8 @@ "AD" = (/obj/structure/bed/chair{dir = 1},/obj/machinery/light,/turf/simulated/shuttle/floor,/area/shuttle/transport1/centcom) "AE" = (/obj/structure/shuttle/engine/heater{icon_state = "heater"; dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/airless,/area/shuttle/transport1/centcom) "AF" = (/obj/structure/shuttle/engine/propulsion{icon_state = "propulsion_r"; dir = 4},/turf/space,/area/shuttle/transport1/centcom) -"AG" = (/obj/machinery/door/airlock/glass,/turf/unsimulated/floor{dir = 2; icon_state = "carpet"},/area/centcom/tram) -"AH" = (/obj/machinery/computer/secure_data,/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/security) +"AG" = (/obj/structure/table/standard,/obj/structure/window/reinforced{dir = 8},/obj/item/weapon/storage/firstaid/toxin{pixel_x = 3; pixel_y = 3},/obj/item/weapon/storage/firstaid/adv{pixel_x = 1},/obj/item/weapon/storage/firstaid/fire{pixel_x = 1},/obj/item/weapon/storage/firstaid/o2{pixel_x = 3; pixel_y = 3},/obj/item/weapon/storage/firstaid/regular,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/syndicate_station/start) +"AH" = (/obj/item/weapon/paper_bin,/obj/item/weapon/pen,/obj/effect/floor_decal/corner/red{dir = 5},/obj/structure/table/reinforced,/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/security) "AI" = (/obj/machinery/telecomms/receiver/preset_cent,/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/command) "AJ" = (/obj/machinery/telecomms/bus/preset_cent,/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/command) "AK" = (/obj/machinery/telecomms/processor/preset_cent,/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/command) @@ -1404,13 +1404,13 @@ "AZ" = (/turf/simulated/shuttle/wall{icon_state = "swall_s"; dir = 8},/area/shuttle/transport1/centcom) "Ba" = (/turf/simulated/shuttle/wall{icon_state = "swall_t"; dir = 2},/area/shuttle/transport1/centcom) "Bb" = (/obj/structure/shuttle/engine/propulsion{tag = "icon-burst_l (EAST)"; icon_state = "burst_l"; dir = 4},/turf/space,/area/shuttle/transport1/centcom) -"Bc" = (/turf/unsimulated/floor{dir = 2; icon_state = "carpet"},/area/centcom/tram) +"Bc" = (/obj/machinery/light/small{dir = 8},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/syndicate_station/start) "Bd" = (/obj/structure/bed/chair,/obj/effect/floor_decal/corner/white/diagonal,/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/restaurant) "Be" = (/obj/machinery/gateway{dir = 8},/turf/unsimulated/floor{dir = 2; icon_state = "dark"},/area/centcom/main_hall) "Bf" = (/obj/machinery/gateway/centerstation,/turf/unsimulated/floor{dir = 2; icon_state = "dark"},/area/centcom/main_hall) "Bg" = (/obj/machinery/gateway{dir = 4},/turf/unsimulated/floor{dir = 2; icon_state = "dark"},/area/centcom/main_hall) "Bh" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 2; name = "thrower_throwdown"; tiles = 0},/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 2; name = "thrower_throwdown"; tiles = 0},/obj/effect/step_trigger/teleporter/random{affect_ghosts = 1; name = "escapeshuttle_leave"; teleport_x = 25; teleport_x_offset = 245; teleport_y = 25; teleport_y_offset = 245; teleport_z = 6; teleport_z_offset = 6},/turf/space,/area/space) -"Bi" = (/obj/machinery/vending/cola,/turf/unsimulated/floor{dir = 2; icon_state = "carpet"},/area/centcom/tram) +"Bi" = (/obj/structure/sink{dir = 4; icon_state = "sink"; pixel_x = 11; pixel_y = 0},/obj/structure/closet/secure_closet/medical_wall{pixel_x = 32; pixel_y = 0; req_access = list(150)},/obj/item/weapon/tank/anesthetic,/obj/item/clothing/mask/breath/medical,/obj/item/clothing/mask/surgical,/obj/item/clothing/gloves/latex,/obj/item/weapon/reagent_containers/syringe,/obj/item/weapon/reagent_containers/glass/bottle/stoxin,/obj/item/weapon/reagent_containers/glass/bottle/stoxin,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/syndicate_station/start) "Bj" = (/obj/structure/table/reinforced,/obj/item/weapon/folder/red,/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/security) "Bk" = (/obj/machinery/door/airlock/centcom{name = "Arrivals Processing"; opacity = 1; req_access = list(101)},/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/main_hall) "Bl" = (/obj/machinery/computer/card,/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/main_hall) @@ -1424,18 +1424,18 @@ "Bt" = (/obj/machinery/telecomms/broadcaster/preset_cent,/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/command) "Bu" = (/obj/machinery/telecomms/hub/preset_cent,/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/command) "Bv" = (/obj/machinery/computer/rdservercontrol{badmin = 1; name = "Master R&D Server Controller"},/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/command) -"Bw" = (/obj/machinery/r_n_d/server/centcom,/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/command) +"Bw" = (/obj/machinery/r_n_d/server/centcom/map,/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/command) "Bx" = (/obj/machinery/door/blast/regular{id = "CentComPort"; name = "Security Doors"},/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/command) "By" = (/obj/machinery/computer/secure_data,/obj/machinery/camera/network/crescent{c_tag = "Crescent Arrivals North"; dir = 8},/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/main_hall) "Bz" = (/obj/structure/bed/chair/office/dark,/obj/machinery/button/remote/blast_door{desc = "A remote control switch for port-side blast doors."; id = "CentComPort"; name = "Security Doors"; pixel_x = -12; pixel_y = -25; req_access = list(101)},/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/main_hall) "BA" = (/obj/machinery/computer/teleporter,/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/command) -"BB" = (/obj/machinery/teleport/station,/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/command) -"BC" = (/obj/machinery/teleport/hub,/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/command) +"BB" = (/obj/machinery/teleport/station/map,/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/command) +"BC" = (/obj/machinery/teleport/hub/map,/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/command) "BD" = (/obj/machinery/porta_turret/crescent,/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/tram) "BE" = (/obj/machinery/door/airlock/external,/obj/effect/floor_decal/industrial/warning,/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/tram) "BF" = (/obj/machinery/door/airlock/glass{name = "Arrivals Processing"},/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/terminal) "BG" = (/obj/machinery/door/airlock/security{name = "Equipment Storage"},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/security) -"BH" = (/obj/machinery/vending/cigarette,/turf/unsimulated/floor{dir = 2; icon_state = "carpet"},/area/centcom/tram) +"BH" = (/obj/machinery/iv_drip,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/syndicate_station/start) "BI" = (/obj/machinery/account_database{name = "CentComm Accounts database"},/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/command) "BJ" = (/obj/structure/bed/chair{dir = 4},/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/tram) "BK" = (/turf/simulated/shuttle/wall{tag = "icon-swall (SOUTHEAST)"; icon_state = "swall"; dir = 6},/area/centcom/tram) @@ -1450,9 +1450,9 @@ "BT" = (/obj/effect/floor_decal/corner/white,/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/terminal) "BU" = (/obj/effect/floor_decal/corner/white{dir = 5},/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/terminal) "BV" = (/obj/effect/floor_decal/corner/white{dir = 8},/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/terminal) -"BW" = (/obj/machinery/vending/coffee,/turf/unsimulated/floor{dir = 2; icon_state = "carpet"},/area/centcom/tram) -"BX" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/machinery/door/window/brigdoor{dir = 4; name = "Weapons locker"},/obj/structure/table/rack,/obj/item/clothing/suit/armor/riot,/obj/item/weapon/melee/baton/loaded,/obj/item/weapon/shield/riot,/obj/item/clothing/head/helmet/riot,/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/security) -"BY" = (/obj/machinery/vending/snack,/turf/unsimulated/floor{dir = 2; icon_state = "carpet"},/area/centcom/tram) +"BW" = (/obj/item/device/radio/intercom{desc = "Talk through this. Evilly"; frequency = 1213; name = "Syndicate Intercom"; pixel_x = 32; subspace_transmission = 1; syndie = 1},/obj/structure/table/standard,/obj/item/weapon/scalpel,/obj/item/weapon/bonesetter,/obj/item/weapon/bonegel{pixel_x = 4; pixel_y = 3},/obj/item/stack/medical/advanced/bruise_pack,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/syndicate_station/start) +"BX" = (/obj/structure/closet{name = "Evidence Closet"},/obj/effect/floor_decal/corner/red/full{dir = 1},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/security) +"BY" = (/obj/machinery/door/airlock/glass,/turf/unsimulated/floor{icon_state = "lino"},/area/centcom/tram) "BZ" = (/turf/simulated/shuttle/wall{tag = "icon-swall (NORTHWEST)"; icon_state = "swall"; dir = 9},/area/centcom/tram) "Ca" = (/obj/structure/bed/chair,/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor"},/area/centcom/tram) "Cb" = (/obj/structure/bed/chair,/obj/structure/closet/walllocker/emerglocker{pixel_x = 0; pixel_y = 28},/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor"},/area/centcom/tram) @@ -1464,7 +1464,7 @@ "Ch" = (/obj/effect/floor_decal/corner/white/diagonal{tag = "icon-corner_white_diagonal (EAST)"; icon_state = "corner_white_diagonal"; dir = 4},/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/terminal) "Ci" = (/obj/effect/floor_decal/corner/white{dir = 4},/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/terminal) "Cj" = (/obj/structure/bed/chair{dir = 4},/turf/unsimulated/floor{icon_state = "lino"},/area/centcom/tram) -"Ck" = (/obj/structure/closet/secure_closet/security,/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/security) +"Ck" = (/obj/structure/table/reinforced,/obj/machinery/microwave/map,/obj/effect/floor_decal/corner/orange{dir = 6},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/security) "Cl" = (/obj/machinery/porta_turret/crescent,/obj/effect/floor_decal/industrial/hatch/yellow,/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/main_hall) "Cm" = (/obj/machinery/porta_turret/crescent,/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/main_hall) "Cn" = (/obj/structure/grille,/obj/structure/window/shuttle{icon_state = "window2"},/turf/unsimulated/floor{icon_state = "plating"; name = "plating"},/area/centcom/tram) @@ -1473,7 +1473,7 @@ "Cq" = (/obj/effect/floor_decal/spline/plain{dir = 1},/turf/unsimulated/floor{icon_state = "plating"; name = "plating"},/area/centcom/tram) "Cr" = (/obj/effect/floor_decal/corner/white{tag = "icon-corner_white (NORTH)"; icon_state = "corner_white"; dir = 1},/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/terminal) "Cs" = (/obj/structure/bed/chair{dir = 8},/turf/unsimulated/floor{icon_state = "lino"},/area/centcom/tram) -"Ct" = (/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/window/brigdoor{dir = 4; name = "Weapons locker"},/obj/structure/table/rack,/obj/item/clothing/suit/armor/riot,/obj/item/weapon/melee/baton/loaded,/obj/item/weapon/shield/riot,/obj/item/clothing/head/helmet/riot,/obj/structure/window/reinforced{dir = 1},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/security) +"Ct" = (/obj/item/weapon/storage/box/evidence,/obj/item/weapon/folder/red,/obj/effect/floor_decal/corner/red{dir = 9},/obj/structure/table/reinforced,/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/security) "Cu" = (/obj/machinery/door/airlock/centcom{name = "Administrative Office"; opacity = 1; req_access = list(108)},/turf/unsimulated/floor{icon_state = "carpet"; dir = 2},/area/centcom/command) "Cv" = (/obj/structure/closet{icon_closed = "cabinet_closed"; icon_opened = "cabinet_open"; icon_state = "cabinet_closed"; name = "Clothing Storage"},/obj/item/weapon/storage/box/syndie_kit/chameleon,/obj/item/weapon/stamp/chameleon,/turf/unsimulated/floor{icon_state = "carpet"; dir = 2},/area/centcom/command) "Cw" = (/obj/structure/closet{icon_closed = "cabinet_closed"; icon_opened = "cabinet_open"; icon_state = "cabinet_closed"},/obj/item/weapon/card/id/centcom,/obj/item/weapon/card/id/syndicate,/obj/item/weapon/card/id,/obj/item/weapon/card/id/gold,/obj/item/weapon/card/id/silver,/obj/item/device/pda/captain,/obj/item/device/pda/ert,/turf/unsimulated/floor{icon_state = "carpet"; dir = 2},/area/centcom/command) @@ -1490,9 +1490,9 @@ "CH" = (/obj/structure/bed/chair{dir = 8},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/terminal) "CI" = (/obj/structure/table/woodentable{dir = 5},/obj/structure/flora/pottedplant{pixel_y = 8},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/terminal) "CJ" = (/obj/structure/bed/chair{dir = 4},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/terminal) -"CK" = (/obj/structure/table/standard,/obj/structure/flora/pottedplant{icon_state = "plant-06"; pixel_y = 8; tag = "icon-plant-06"},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/security) +"CK" = (/obj/effect/floor_decal/corner/red{dir = 6},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/security) "CL" = (/obj/structure/bed/chair{dir = 1},/turf/unsimulated/floor{icon_state = "lino"},/area/centcom/tram) -"CM" = (/obj/machinery/computer/secure_data,/obj/machinery/camera/network/crescent{c_tag = "Crescent Arrivals North"; dir = 8},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/security) +"CM" = (/obj/machinery/computer/arcade/battle,/obj/effect/floor_decal/corner/orange{dir = 10},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/security) "CN" = (/obj/structure/flora/ausbushes/fernybush,/turf/unsimulated/floor{icon_state = "grass0"; name = "grass"},/area/centcom/main_hall) "CO" = (/obj/structure/flora/ausbushes/brflowers,/turf/unsimulated/floor{icon_state = "grass0"; name = "grass"},/area/centcom/main_hall) "CP" = (/obj/structure/flora/ausbushes/ppflowers,/turf/unsimulated/floor{icon_state = "grass0"; name = "grass"},/area/centcom/main_hall) @@ -1513,16 +1513,16 @@ "De" = (/obj/structure/bed/chair{dir = 1},/obj/item/device/radio/intercom{dir = 4; name = "Station Intercom (General)"; pixel_x = 0; pixel_y = -30},/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor"},/area/centcom/tram) "Df" = (/obj/structure/table/woodentable{dir = 5},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/terminal) "Dg" = (/obj/structure/bed/chair,/turf/unsimulated/floor{icon_state = "lino"},/area/centcom/tram) -"Dh" = (/obj/structure/table/reinforced,/obj/item/weapon/paper_bin{pixel_x = 1; pixel_y = 9},/obj/item/weapon/pen,/obj/machinery/door/window/southright{name = "Arrivals Processing"; req_access = list(101)},/obj/structure/window/reinforced{dir = 4},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/security) +"Dh" = (/obj/structure/table/reinforced,/obj/machinery/newscaster{layer = 3.3; pixel_x = 27; pixel_y = 0},/obj/effect/floor_decal/corner/orange/full{dir = 4},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/security) "Di" = (/obj/machinery/door/airlock/centcom{name = "Administrative Office"; opacity = 1; req_access = list(108)},/turf/unsimulated/floor{dir = 2; icon_state = "dark"},/area/centcom/command) "Dj" = (/obj/structure/sign/securearea{name = "\improper CAUTION"; pixel_x = 32},/obj/machinery/light{dir = 4},/obj/structure/mopbucket,/turf/simulated/shuttle/floor{icon_state = "floor6"},/area/syndicate_station/start) "Dk" = (/obj/machinery/portable_atmospherics/canister/oxygen,/turf/simulated/shuttle/floor{icon_state = "floor6"},/area/syndicate_station/start) -"Dl" = (/obj/structure/table/reinforced,/obj/item/weapon/storage/box/donkpockets,/obj/item/weapon/storage/box/donkpockets,/obj/machinery/computer/security/telescreen/entertainment{icon_state = "frame"; pixel_x = 30},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/security) +"Dl" = (/obj/structure/table/reinforced,/obj/item/weapon/paper_bin,/obj/item/weapon/pen,/obj/effect/floor_decal/corner/orange{dir = 10},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/security) "Dm" = (/obj/effect/wingrille_spawn/reinforced/crescent,/turf/unsimulated/floor{icon_state = "plating"; name = "plating"},/area/centcom/restaurant) "Dn" = (/obj/structure/flora/ausbushes/brflowers,/obj/effect/floor_decal/spline/fancy/wood{tag = "icon-spline_fancy (NORTHWEST)"; icon_state = "spline_fancy"; dir = 9},/turf/unsimulated/floor{icon_state = "grass0"; name = "grass"},/area/centcom/main_hall) "Do" = (/obj/structure/flora/ausbushes/ppflowers,/obj/effect/floor_decal/spline/fancy/wood{dir = 6},/turf/unsimulated/floor{icon_state = "grass0"; name = "grass"},/area/centcom/main_hall) "Dp" = (/obj/structure/flora/ausbushes/ppflowers,/obj/effect/floor_decal/spline/fancy/wood{tag = "icon-spline_fancy (SOUTHWEST)"; icon_state = "spline_fancy"; dir = 10},/turf/unsimulated/floor{icon_state = "grass0"; name = "grass"},/area/centcom/main_hall) -"Dq" = (/obj/machinery/porta_turret/crescent,/turf/unsimulated/floor{dir = 2; icon_state = "carpet"},/area/centcom/tram) +"Dq" = (/turf/unsimulated/floor{icon_state = "lino"},/area/centcom/tram) "Dr" = (/obj/structure/bed/chair/office/dark,/obj/machinery/button/remote/blast_door{desc = "A remote control switch for port-side blast doors."; id = "CentComPortEast"; name = "Security Doors"; pixel_x = -12; pixel_y = -25; req_access = list(101)},/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/tram) "Ds" = (/obj/machinery/computer/secure_data,/obj/machinery/camera/network/crescent{c_tag = "Crescent Arrivals North"; dir = 8},/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/tram) "Dt" = (/obj/machinery/door/window/northright,/obj/structure/table/reinforced,/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/terminal) @@ -1641,7 +1641,7 @@ "FC" = (/obj/machinery/computer/communications,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/shuttle/escape/centcom) "FD" = (/obj/machinery/computer/med_data,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/shuttle/escape/centcom) "FE" = (/turf/simulated/shuttle/wall{tag = "icon-swall (NORTHEAST)"; icon_state = "swall"; dir = 5},/area/shuttle/escape/centcom) -"FF" = (/obj/structure/table/standard,/obj/item/stack/material/phoron,/obj/item/stack/material/phoron,/obj/item/stack/material/phoron,/obj/item/stack/material/phoron,/obj/item/stack/material/phoron,/obj/item/stack/material/phoron,/obj/effect/floor_decal/corner/purple/full{dir = 8},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical) +"FF" = (/obj/item/device/taperecorder,/obj/effect/floor_decal/corner/red/full,/obj/structure/table/reinforced,/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/security) "FG" = (/obj/structure/table/standard,/obj/item/weapon/storage/firstaid/fire,/obj/item/weapon/extinguisher,/obj/machinery/camera/network/crescent{c_tag = "Shuttle Bridge West"},/turf/simulated/shuttle/floor,/area/shuttle/escape/centcom) "FH" = (/obj/structure/bed/chair{dir = 1},/turf/simulated/shuttle/floor,/area/shuttle/escape/centcom) "FI" = (/turf/simulated/shuttle/floor,/area/shuttle/escape/centcom) @@ -1674,18 +1674,18 @@ "Gj" = (/obj/machinery/computer/crew,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/shuttle/escape/centcom) "Gk" = (/obj/structure/bed/chair{dir = 8},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/shuttle/escape/centcom) "Gl" = (/obj/machinery/light{dir = 4},/turf/simulated/shuttle/floor,/area/shuttle/escape/centcom) -"Gm" = (/obj/effect/floor_decal/corner/purple{dir = 5},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical) -"Gn" = (/obj/structure/table/standard,/obj/machinery/reagentgrinder,/obj/effect/floor_decal/corner/purple{dir = 5},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical) +"Gm" = (/obj/effect/floor_decal/corner/red{dir = 8},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/security) +"Gn" = (/obj/effect/floor_decal/corner/red{dir = 9},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/security) "Go" = (/obj/machinery/door/airlock/glass_command{name = "Escape Shuttle Cockpit"; req_access = list(19)},/turf/simulated/shuttle/floor,/area/shuttle/escape/centcom) "Gp" = (/turf/simulated/shuttle/wall{tag = "icon-swall (SOUTHEAST)"; icon_state = "swall"; dir = 6},/area/shuttle/escape/centcom) "Gq" = (/turf/simulated/shuttle/wall{tag = "icon-swall_t"; icon_state = "swall_t"},/area/shuttle/escape/centcom) "Gr" = (/turf/simulated/shuttle/wall{tag = "icon-swall_straight (EAST)"; icon_state = "swall_straight"; dir = 4},/area/shuttle/escape/centcom) "Gs" = (/turf/simulated/shuttle/wall{tag = "icon-swall (SOUTHWEST)"; icon_state = "swall"; dir = 10},/area/shuttle/escape/centcom) "Gt" = (/obj/machinery/door/airlock/multi_tile/glass{id_tag = "MedbayFoyerPort"; req_access = newlist()},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical) -"Gu" = (/obj/machinery/chem_master,/obj/effect/floor_decal/corner/purple/full{dir = 1},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical) +"Gu" = (/obj/effect/floor_decal/corner/red/full{dir = 4},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/security) "Gv" = (/obj/effect/floor_decal/corner/green{dir = 6},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical) -"Gw" = (/obj/effect/floor_decal/corner/purple{dir = 9},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical) -"Gx" = (/obj/machinery/chemical_dispenser/ert,/obj/item/weapon/reagent_containers/glass/beaker/large,/obj/effect/floor_decal/corner/purple{dir = 6},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical) +"Gw" = (/obj/effect/floor_decal/corner/red,/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/security) +"Gx" = (/obj/effect/floor_decal/corner/red{dir = 5},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/security) "Gy" = (/obj/structure/bed/chair{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/effect/floor_decal/corner/green{dir = 9},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical) "Gz" = (/obj/structure/table/woodentable{dir = 5},/obj/item/weapon/reagent_containers/food/snacks/bloodsoup,/turf/unsimulated/floor{tag = "icon-wood"; icon_state = "wood"},/area/centcom/bar) "GA" = (/obj/structure/table/woodentable{dir = 5},/obj/item/weapon/reagent_containers/food/snacks/tofukabob,/turf/unsimulated/floor{tag = "icon-wood"; icon_state = "wood"},/area/centcom/bar) @@ -1698,8 +1698,8 @@ "GH" = (/obj/item/device/radio/intercom{dir = 4; name = "Station Intercom (General)"; pixel_x = 30},/obj/structure/bed/chair{dir = 8},/obj/machinery/light/small{dir = 1},/turf/simulated/shuttle/floor4,/area/shuttle/escape/centcom) "GI" = (/obj/structure/bed/chair{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/effect/floor_decal/corner/green{dir = 6},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical) "GJ" = (/obj/structure/bed/chair/office/light{dir = 1},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical) -"GK" = (/obj/structure/closet/secure_closet/chemical,/obj/effect/floor_decal/corner/purple{dir = 9},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical) -"GL" = (/obj/structure/table/standard,/obj/item/weapon/reagent_containers/glass/beaker/large,/obj/item/weapon/reagent_containers/glass/beaker/large,/obj/effect/floor_decal/corner/purple{dir = 6},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical) +"GK" = (/obj/effect/floor_decal/corner/red{dir = 4},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/security) +"GL" = (/obj/effect/floor_decal/corner/red/full{dir = 1},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/security) "GM" = (/obj/structure/table/woodentable{dir = 5},/obj/item/weapon/reagent_containers/food/snacks/spesslaw,/turf/unsimulated/floor{tag = "icon-wood"; icon_state = "wood"},/area/centcom/bar) "GN" = (/obj/structure/table/woodentable{dir = 5},/obj/item/weapon/reagent_containers/food/snacks/candiedapple,/turf/unsimulated/floor{tag = "icon-wood"; icon_state = "wood"},/area/centcom/bar) "GO" = (/obj/structure/table/woodentable{dir = 5},/obj/item/weapon/reagent_containers/food/snacks/mushroomsoup,/turf/unsimulated/floor{tag = "icon-wood"; icon_state = "wood"},/area/centcom/bar) @@ -1714,7 +1714,7 @@ "GX" = (/obj/structure/bed/chair{dir = 4},/turf/simulated/shuttle/floor4,/area/shuttle/escape/centcom) "GY" = (/obj/machinery/hologram/holopad,/turf/simulated/shuttle/floor4,/area/shuttle/escape/centcom) "GZ" = (/obj/structure/bed/chair{dir = 8},/turf/simulated/shuttle/floor4,/area/shuttle/escape/centcom) -"Ha" = (/obj/structure/closet/secure_closet/medical1,/obj/effect/floor_decal/corner/purple{dir = 9},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical) +"Ha" = (/obj/effect/floor_decal/corner/red{dir = 1},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/security) "Hb" = (/obj/structure/window/shuttle{icon_state = "window1"},/obj/structure/grille,/turf/simulated/shuttle/plating,/area/shuttle/escape/centcom) "Hc" = (/turf/simulated/shuttle/floor4,/area/shuttle/escape/centcom) "Hd" = (/obj/item/weapon/stool/padded,/turf/unsimulated/floor{icon_state = "lino"},/area/centcom/bar) @@ -1745,8 +1745,8 @@ "HC" = (/obj/machinery/camera/network/crescent{c_tag = "Shuttle Center"},/turf/simulated/shuttle/floor,/area/shuttle/escape/centcom) "HD" = (/obj/machinery/vending/medical,/turf/unsimulated/wall,/area/centcom/medical) "HE" = (/obj/effect/floor_decal/corner/green{dir = 9},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical) -"HF" = (/obj/structure/closet/secure_closet/medical1,/obj/effect/floor_decal/corner/purple/full,/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical) -"HG" = (/obj/effect/floor_decal/corner/purple,/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical) +"HF" = (/obj/item/weapon/stool/padded,/obj/effect/floor_decal/corner/red{dir = 5},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/security) +"HG" = (/obj/machinery/computer/secure_data,/obj/effect/floor_decal/corner/red/full{dir = 1},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/security) "HH" = (/obj/structure/bed/chair/comfy/brown,/obj/effect/floor_decal/carpet{dir = 8},/obj/effect/floor_decal/carpet{dir = 1},/obj/effect/floor_decal/carpet{dir = 9},/turf/unsimulated/floor{dir = 2; icon_state = "carpet"},/area/centcom/bar) "HI" = (/obj/structure/bed/chair/comfy/brown,/obj/effect/floor_decal/carpet{dir = 1},/turf/unsimulated/floor{dir = 2; icon_state = "carpet"},/area/centcom/bar) "HJ" = (/obj/structure/bed/chair/comfy/brown,/obj/effect/floor_decal/carpet{dir = 4},/obj/effect/floor_decal/carpet{dir = 1},/obj/effect/floor_decal/carpet{dir = 5},/turf/unsimulated/floor{dir = 2; icon_state = "carpet"},/area/centcom/bar) @@ -1756,17 +1756,17 @@ "HN" = (/obj/structure/table/reinforced,/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/tdome) "HO" = (/obj/structure/bed/chair{dir = 8},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/tdome) "HP" = (/obj/machinery/door/airlock/external{frequency = 1380; icon_state = "door_locked"; id_tag = "escape_shuttle_hatch"; locked = 1; name = "Shuttle Hatch"; req_access = list(13)},/obj/machinery/mech_sensor{dir = 8; frequency = 1380; id_tag = "shuttle_dock_north_mech"; pixel_y = -19},/turf/simulated/shuttle/floor,/area/shuttle/escape/centcom) -"HQ" = (/obj/machinery/sleeper{dir = 8},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical) +"HQ" = (/obj/machinery/sleeper/map{dir = 8},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical) "HR" = (/obj/machinery/sleep_console,/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical) -"HS" = (/obj/machinery/portable_atmospherics/canister/oxygen,/turf/unsimulated/floor{icon_state = "dark"},/area/space) +"HS" = (/obj/machinery/computer/security,/obj/effect/floor_decal/corner/red{dir = 6},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/security) "HT" = (/turf/unsimulated/floor{dir = 2; icon_state = "carpet"},/area/centcom/bar) "HU" = (/obj/effect/floor_decal/carpet{dir = 4},/turf/unsimulated/floor{dir = 2; icon_state = "carpet"},/area/centcom/bar) "HV" = (/obj/structure/curtain/open/shower,/obj/machinery/shower,/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/centcom/bathroom) "HW" = (/obj/structure/window/reinforced/tinted{dir = 8; icon_state = "twindow"},/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/centcom/bathroom) "HX" = (/obj/structure/bed/chair{dir = 4},/obj/item/device/radio/intercom{dir = 8; name = "Station Intercom (General)"; pixel_x = -28},/obj/machinery/camera/network/crescent{c_tag = "Shuttle West"; dir = 4},/obj/machinery/light{dir = 8; icon_state = "tube1"; pixel_y = 0},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/shuttle/escape/centcom) "HY" = (/obj/structure/bed/chair{dir = 8},/obj/structure/closet/walllocker/emerglocker{pixel_x = 28},/obj/machinery/camera/network/crescent{c_tag = "Shuttle East"; dir = 8},/obj/machinery/light{dir = 4},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/shuttle/escape/centcom) -"HZ" = (/obj/effect/floor_decal/corner/purple{dir = 8},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical) -"Ia" = (/obj/machinery/chem_master,/obj/effect/floor_decal/corner/purple/full{dir = 4},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical) +"HZ" = (/obj/effect/floor_decal/corner/red{dir = 10},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/security) +"Ia" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/machinery/door/window/brigdoor{dir = 4; name = "Weapons locker"},/obj/structure/table/rack,/obj/item/clothing/suit/armor/riot,/obj/item/weapon/melee/baton/loaded,/obj/item/weapon/shield/riot,/obj/item/clothing/head/helmet/riot,/obj/effect/floor_decal/corner/red{dir = 9},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/security) "Ib" = (/obj/structure/bed/chair/comfy/brown{dir = 1},/obj/effect/floor_decal/carpet{dir = 8},/obj/effect/floor_decal/carpet,/obj/effect/floor_decal/carpet{dir = 10},/turf/unsimulated/floor{dir = 2; icon_state = "carpet"},/area/centcom/bar) "Ic" = (/obj/structure/bed/chair/comfy/brown{dir = 1},/obj/effect/floor_decal/carpet,/turf/unsimulated/floor{dir = 2; icon_state = "carpet"},/area/centcom/bar) "Id" = (/obj/structure/bed/chair/comfy/brown{dir = 1},/obj/effect/floor_decal/carpet{dir = 4},/obj/effect/floor_decal/carpet,/obj/effect/floor_decal/carpet{dir = 6},/turf/unsimulated/floor{dir = 2; icon_state = "carpet"},/area/centcom/bar) @@ -1775,7 +1775,7 @@ "Ig" = (/obj/structure/table/woodentable{dir = 5},/obj/machinery/chemical_dispenser/bar_soft/full,/turf/unsimulated/floor{icon_state = "lino"},/area/centcom/bar) "Ih" = (/obj/structure/table/woodentable{dir = 5},/obj/machinery/chemical_dispenser/bar_alc/full,/turf/unsimulated/floor{icon_state = "lino"},/area/centcom/bar) "Ii" = (/obj/structure/window/shuttle{icon_state = "window3"},/obj/structure/grille,/turf/simulated/shuttle/plating,/area/shuttle/escape/centcom) -"Ij" = (/obj/effect/floor_decal/corner/purple{dir = 6},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical) +"Ij" = (/obj/structure/closet/secure_closet/security,/obj/effect/floor_decal/corner/red{dir = 6},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/security) "Ik" = (/obj/machinery/atmospherics/pipe/simple/hidden{dir = 5; icon_state = "intact"; tag = "icon-intact-f (NORTHEAST)"},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical) "Il" = (/obj/machinery/atmospherics/pipe/manifold/hidden,/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical) "Im" = (/obj/effect/floor_decal/corner/green{dir = 10},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical) @@ -1787,7 +1787,7 @@ "Is" = (/obj/structure/closet/secure_closet/medical3,/obj/effect/floor_decal/corner/green/full{dir = 1},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical) "It" = (/obj/machinery/door/airlock/centcom{name = "General Access"; opacity = 1; req_access = list(101)},/obj/machinery/door/blast/regular{id = "crescent_thunderdome"; name = "Thunderdome"},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/tdome) "Iu" = (/obj/structure/table/glass,/obj/effect/floor_decal/corner/green{dir = 5},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical) -"Iv" = (/obj/machinery/bodyscanner{dir = 8},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical) +"Iv" = (/obj/machinery/bodyscanner/map{dir = 8},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical) "Iw" = (/obj/machinery/body_scanconsole,/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical) "Ix" = (/obj/structure/table/glass,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/effect/floor_decal/corner/green/full{dir = 8},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical) "Iy" = (/obj/structure/table/glass,/obj/structure/window/reinforced{dir = 1},/obj/effect/floor_decal/corner/green{dir = 5},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical) @@ -1835,9 +1835,9 @@ "Jo" = (/obj/structure/table/standard,/obj/effect/floor_decal/corner/green{dir = 9},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical) "Jp" = (/obj/effect/floor_decal/corner/green{dir = 5},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical) "Jq" = (/obj/machinery/sleep_console,/obj/effect/floor_decal/corner/green{dir = 5},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical) -"Jr" = (/obj/machinery/sleeper{dir = 8},/obj/effect/floor_decal/corner/green{dir = 5},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical) +"Jr" = (/obj/machinery/sleeper/map{dir = 8},/obj/effect/floor_decal/corner/green{dir = 5},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical) "Js" = (/obj/item/weapon/storage/box/donkpockets{pixel_x = 3; pixel_y = 3},/obj/item/weapon/storage/box/donkpockets{pixel_x = 3; pixel_y = 3},/obj/item/weapon/storage/box/donkpockets{pixel_x = 3; pixel_y = 3},/obj/item/weapon/storage/box/donkpockets{pixel_x = 3; pixel_y = 3},/obj/structure/table/standard,/turf/unsimulated/floor{icon_state = "white"},/area/tdome) -"Jt" = (/obj/structure/table/standard,/obj/machinery/microwave,/turf/unsimulated/floor{icon_state = "white"},/area/tdome) +"Jt" = (/obj/structure/table/standard,/obj/machinery/microwave/map,/turf/unsimulated/floor{icon_state = "white"},/area/tdome) "Ju" = (/obj/structure/table/reinforced,/turf/unsimulated/floor{icon_state = "white"},/area/tdome) "Jv" = (/obj/machinery/computer/security/telescreen,/turf/unsimulated/floor{icon_state = "lino"},/area/tdome/tdomeobserve) "Jw" = (/obj/item/device/camera,/turf/unsimulated/floor{icon_state = "lino"},/area/tdome/tdomeobserve) @@ -1872,8 +1872,8 @@ "JZ" = (/obj/machinery/hologram/holopad,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/shuttle/escape/centcom) "Ka" = (/obj/structure/bed/roller,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/shuttle/escape/centcom) "Kb" = (/obj/structure/bed/roller,/obj/item/device/radio/intercom{dir = 4; name = "Station Intercom (General)"; pixel_x = 26},/obj/machinery/light{dir = 4},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/shuttle/escape/centcom) -"Kc" = (/obj/machinery/recharge_station,/obj/machinery/light{dir = 8; icon_state = "tube1"; pixel_y = 0},/turf/simulated/shuttle/floor{icon_state = "floor2"},/area/shuttle/escape/centcom) -"Kd" = (/obj/machinery/recharge_station,/obj/machinery/camera/network/crescent{c_tag = "Shuttle East Storage"; dir = 8},/turf/simulated/shuttle/floor{icon_state = "floor2"},/area/shuttle/escape/centcom) +"Kc" = (/obj/machinery/recharge_station/map,/obj/machinery/light{dir = 8; icon_state = "tube1"; pixel_y = 0},/turf/simulated/shuttle/floor{icon_state = "floor2"},/area/shuttle/escape/centcom) +"Kd" = (/obj/machinery/recharge_station/map,/obj/machinery/camera/network/crescent{c_tag = "Shuttle East Storage"; dir = 8},/turf/simulated/shuttle/floor{icon_state = "floor2"},/area/shuttle/escape/centcom) "Ke" = (/obj/machinery/atmospherics/unary/cryo_cell,/obj/effect/floor_decal/corner/blue{dir = 5},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical) "Kf" = (/obj/machinery/atmospherics/unary/cryo_cell,/obj/effect/floor_decal/corner/blue/full{dir = 1},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical) "Kg" = (/obj/structure/table/standard,/obj/item/weapon/storage/firstaid/fire,/obj/item/weapon/storage/firstaid/fire,/obj/effect/floor_decal/corner/green{dir = 6},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical) @@ -1885,7 +1885,7 @@ "Km" = (/obj/machinery/suit_cycler/syndicate{locked = 0},/turf/unsimulated/floor{tag = "icon-cult"; name = "plating"; icon_state = "cult"},/area/syndicate_mothership{name = "\improper Raider Base"}) "Kn" = (/obj/machinery/sleep_console,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/shuttle/escape/centcom) "Ko" = (/obj/machinery/sleep_console{dir = 4},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/shuttle/escape/centcom) -"Kp" = (/obj/machinery/sleeper{dir = 4},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/shuttle/escape/centcom) +"Kp" = (/obj/machinery/sleeper/map{dir = 4},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/shuttle/escape/centcom) "Kq" = (/obj/machinery/atmospherics/pipe/manifold/hidden{dir = 4; icon_state = "map"; tag = "icon-manifold-f (EAST)"},/obj/effect/floor_decal/corner/blue{dir = 6},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical) "Kr" = (/obj/machinery/door/airlock/glass_medical{name = "Virology Laboratory"},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical) "Ks" = (/obj/structure/table/rack,/obj/item/clothing/under/color/red,/obj/item/clothing/shoes/brown,/obj/item/clothing/suit/armor/tdome/red,/obj/item/clothing/head/helmet/thunderdome,/obj/item/weapon/melee/baton/loaded,/obj/item/weapon/melee/energy/sword/red,/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/tdome) @@ -1903,8 +1903,8 @@ "KE" = (/obj/effect/floor_decal/corner/blue{dir = 5},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical) "KF" = (/obj/structure/morgue,/obj/effect/floor_decal/corner/blue/full{dir = 8},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical) "KG" = (/obj/structure/table/rack,/obj/item/device/binoculars,/obj/item/device/binoculars,/obj/item/device/binoculars,/obj/item/device/binoculars,/obj/item/device/binoculars,/obj/item/device/binoculars,/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership) -"KH" = (/obj/machinery/recharger{pixel_y = 4},/obj/effect/landmark{name = "tdome2"},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/tdome/tdome2) -"KI" = (/obj/machinery/recharger{pixel_y = 4},/obj/effect/landmark{name = "tdome1"},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/tdome/tdome1) +"KH" = (/obj/machinery/recharger/map{pixel_y = 4},/obj/effect/landmark{name = "tdome2"},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/tdome/tdome2) +"KI" = (/obj/machinery/recharger/map{pixel_y = 4},/obj/effect/landmark{name = "tdome1"},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/tdome/tdome1) "KJ" = (/obj/structure/morgue{tag = "icon-morgue1 (WEST)"; icon_state = "morgue1"; dir = 8},/obj/effect/floor_decal/corner/blue/full{dir = 1},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical) "KK" = (/obj/structure/bed/roller,/obj/item/weapon/reagent_containers/blood/OMinus,/obj/item/weapon/reagent_containers/blood/OMinus,/obj/item/weapon/reagent_containers/blood/OMinus,/obj/structure/closet/secure_closet/medical_wall{name = "O- Blood Locker"; pixel_x = -32},/obj/effect/floor_decal/corner/green{dir = 9},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical) "KL" = (/obj/structure/table/standard,/obj/item/weapon/storage/firstaid/o2,/obj/item/weapon/storage/firstaid/o2,/obj/effect/floor_decal/corner/green{dir = 6},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical) @@ -1919,7 +1919,7 @@ "KU" = (/obj/machinery/atmospherics/portables_connector{dir = 1},/obj/machinery/portable_atmospherics/canister/oxygen/prechilled,/obj/effect/floor_decal/corner/blue/full{dir = 4},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical) "KV" = (/obj/structure/morgue,/obj/effect/floor_decal/corner/blue{dir = 9},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical) "KW" = (/obj/structure/morgue{tag = "icon-morgue1 (WEST)"; icon_state = "morgue1"; dir = 8},/obj/effect/floor_decal/corner/blue{dir = 6},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical) -"KX" = (/obj/structure/table/rack,/obj/item/weapon/gun/energy/gun,/obj/item/weapon/gun/energy/gun,/obj/item/weapon/gun/energy/gun,/obj/machinery/recharger/wallcharger{pixel_x = 5; pixel_y = -32},/turf/unsimulated/floor{icon_state = "dark"},/area/space) +"KX" = (/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/window/brigdoor{dir = 4; name = "Weapons locker"},/obj/structure/table/rack,/obj/item/clothing/suit/armor/riot,/obj/item/weapon/melee/baton/loaded,/obj/item/weapon/shield/riot,/obj/item/clothing/head/helmet/riot,/obj/structure/window/reinforced,/obj/effect/floor_decal/corner/red{dir = 9},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/security) "KY" = (/obj/effect/floor_decal/corner/green/full{dir = 4},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical) "KZ" = (/obj/effect/floor_decal/corner/blue{dir = 1},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical) "La" = (/obj/effect/floor_decal/corner/blue/full{dir = 8},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical) @@ -1948,7 +1948,7 @@ "Lx" = (/obj/structure/disposalpipe/trunk{dir = 1},/obj/machinery/disposal,/turf/unsimulated/floor{icon_state = "lino"},/area/tdome/tdomeadmin) "Ly" = (/obj/machinery/door/airlock/centcom{name = "General Access"; opacity = 1; req_access = list(101)},/turf/unsimulated/floor{icon_state = "lino"},/area/tdome) "Lz" = (/obj/structure/bed/chair,/turf/unsimulated/floor{icon_state = "lino"},/area/tdome/tdomeadmin) -"LA" = (/obj/structure/table/standard,/obj/machinery/recharger{pixel_y = 4},/turf/unsimulated/floor{icon_state = "lino"},/area/tdome/tdomeadmin) +"LA" = (/obj/structure/table/standard,/obj/machinery/recharger/map{pixel_y = 4},/turf/unsimulated/floor{icon_state = "lino"},/area/tdome/tdomeadmin) "LB" = (/obj/item/weapon/grenade/chem_grenade/cleaner,/obj/item/weapon/grenade/chem_grenade/cleaner,/obj/item/weapon/grenade/chem_grenade/cleaner,/obj/item/weapon/grenade/chem_grenade/cleaner,/obj/item/weapon/grenade/chem_grenade/cleaner,/obj/item/weapon/grenade/chem_grenade/cleaner,/obj/item/weapon/grenade/chem_grenade/cleaner,/obj/item/weapon/grenade/chem_grenade/cleaner,/obj/item/weapon/grenade/chem_grenade/cleaner,/obj/item/weapon/grenade/chem_grenade/cleaner,/obj/structure/table/standard,/turf/unsimulated/floor{icon_state = "lino"},/area/tdome/tdomeadmin) "LC" = (/obj/machinery/computer/pod{id = "thunderdomeaxe"; name = "Thunderdome Axe Supply"},/turf/unsimulated/floor{icon_state = "lino"},/area/tdome/tdomeadmin) "LD" = (/obj/machinery/computer/pod{id = "thunderdomegen"; name = "Thunderdome General Supply"},/turf/unsimulated/floor{icon_state = "lino"},/area/tdome/tdomeadmin) @@ -1982,7 +1982,7 @@ "Mf" = (/turf/simulated/shuttle/wall{icon_state = "swall_straight"; dir = 1},/area/centcom/evac) "Mg" = (/turf/simulated/shuttle/plating,/area/centcom/evac) "Mh" = (/turf/simulated/shuttle/plating,/area/shuttle/large_escape_pod2/centcom) -"Mi" = (/obj/machinery/clonepod,/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor3"},/area/centcom/evac) +"Mi" = (/obj/machinery/clonepod/map,/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor3"},/area/centcom/evac) "Mj" = (/obj/machinery/computer/cloning,/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor3"},/area/centcom/evac) "Mk" = (/obj/machinery/dna_scannernew,/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor3"},/area/centcom/evac) "Ml" = (/obj/machinery/atmospherics/unary/cryo_cell{layer = 3.3},/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor3"},/area/centcom/evac) @@ -2012,7 +2012,7 @@ "MJ" = (/obj/structure/shuttle/engine/propulsion{dir = 8},/turf/space,/area/centcom/evac) "MK" = (/obj/structure/closet/emcloset,/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor2"},/area/centcom/evac) "ML" = (/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor2"},/area/centcom/evac) -"MM" = (/obj/machinery/bodyscanner{dir = 8},/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor3"},/area/centcom/evac) +"MM" = (/obj/machinery/bodyscanner/map{dir = 8},/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor3"},/area/centcom/evac) "MN" = (/obj/machinery/body_scanconsole,/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor3"},/area/centcom/evac) "MO" = (/obj/machinery/optable,/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor3"},/area/centcom/evac) "MP" = (/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor"},/area/centcom/evac) @@ -2020,11 +2020,11 @@ "MR" = (/obj/structure/table/standard,/obj/item/weapon/storage/firstaid/fire,/obj/item/weapon/storage/firstaid/fire{pixel_x = -2; pixel_y = 4},/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor3"},/area/centcom/evac) "MS" = (/obj/structure/table/standard,/obj/item/weapon/storage/firstaid/regular{pixel_x = 2; pixel_y = 0},/obj/item/weapon/storage/firstaid/regular{pixel_x = -2; pixel_y = 4},/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor3"},/area/centcom/evac) "MT" = (/obj/machinery/computer/crew,/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor3"},/area/centcom/evac) -"MU" = (/obj/machinery/sleeper{dir = 8},/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor3"},/area/centcom/evac) +"MU" = (/obj/machinery/sleeper/map{dir = 8},/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor3"},/area/centcom/evac) "MV" = (/obj/machinery/sleep_console,/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor3"},/area/centcom/evac) "MW" = (/obj/structure/closet/crate/freezer,/obj/item/weapon/reagent_containers/food/snacks/meat/syntiflesh,/obj/item/weapon/reagent_containers/food/snacks/meat/syntiflesh,/obj/item/weapon/reagent_containers/food/snacks/meat/syntiflesh,/obj/item/weapon/reagent_containers/food/snacks/meat/syntiflesh,/obj/item/weapon/reagent_containers/food/snacks/meat/syntiflesh,/obj/item/weapon/reagent_containers/food/snacks/meat/syntiflesh,/obj/item/weapon/reagent_containers/food/snacks/meat/syntiflesh,/obj/item/weapon/reagent_containers/food/snacks/meat/syntiflesh,/obj/item/weapon/reagent_containers/food/snacks/meat/syntiflesh,/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor3"},/area/centcom/evac) "MX" = (/obj/structure/closet/crate/medical,/obj/item/weapon/storage/firstaid/regular{pixel_x = -2; pixel_y = 4},/obj/item/weapon/storage/firstaid/regular{pixel_x = -2; pixel_y = 4},/obj/item/bodybag/cryobag{pixel_x = 5},/obj/item/bodybag/cryobag{pixel_x = 5},/obj/item/weapon/storage/firstaid/o2{layer = 2.8; pixel_x = 4; pixel_y = 6},/obj/item/weapon/storage/box/masks{pixel_x = 0; pixel_y = 0},/obj/item/weapon/storage/box/gloves{pixel_x = 3; pixel_y = 4},/obj/item/weapon/storage/firstaid/toxin,/obj/item/weapon/storage/firstaid/fire{layer = 2.9; pixel_x = 2; pixel_y = 3},/obj/item/weapon/storage/firstaid/adv{pixel_x = -2},/obj/item/weapon/reagent_containers/blood/empty,/obj/item/weapon/reagent_containers/blood/empty,/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor3"},/area/centcom/evac) -"MY" = (/obj/structure/table/rack,/obj/item/weapon/tank/emergency_oxygen/double,/obj/item/weapon/tank/emergency_oxygen/double,/obj/item/weapon/tank/emergency_oxygen/double,/obj/item/weapon/tank/emergency_oxygen/double,/obj/item/weapon/tank/emergency_oxygen/double,/obj/item/weapon/tank/emergency_oxygen/double,/turf/unsimulated/floor{icon_state = "dark"},/area/space) +"MY" = (/obj/machinery/computer/card,/obj/effect/floor_decal/corner/red{dir = 6},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/security) "MZ" = (/obj/structure/morgue{tag = "icon-morgue1 (WEST)"; icon_state = "morgue1"; dir = 8},/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor3"},/area/centcom/evac) "Na" = (/obj/structure/bed/chair,/obj/effect/landmark{name = "endgame_exit"},/obj/item/toy/plushie/mouse{desc = "A plushie of a small fuzzy rodent."; name = "Woodrat"},/turf/unsimulated/beach/sand,/area/beach) "Nb" = (/obj/structure/bed/chair,/obj/effect/landmark{name = "endgame_exit"},/turf/unsimulated/beach/sand,/area/beach) @@ -2124,7 +2124,7 @@ "OR" = (/obj/structure/table/standard,/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor2"},/area/centcom/evac) "OS" = (/obj/structure/bed/padded,/obj/item/weapon/bedsheet/orange,/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor4"},/area/centcom/evac) "OT" = (/obj/structure/sink{icon_state = "sink"; dir = 8; pixel_x = -12; pixel_y = 2},/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 5},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical) -"OU" = (/obj/structure/table/reinforced,/obj/item/weapon/tray{pixel_y = 5},/turf/unsimulated/floor{icon_state = "white"},/area/syndicate_mothership{name = "\improper Raider Base"}) +"OU" = (/obj/machinery/vending/cola,/turf/unsimulated/floor{icon_state = "lino"},/area/centcom/tram) "OV" = (/obj/structure/table/standard,/obj/item/weapon/storage/box/drinkingglasses{pixel_x = 1; pixel_y = 4},/turf/unsimulated/floor{icon_state = "white"},/area/syndicate_mothership{name = "\improper Raider Base"}) "OW" = (/obj/machinery/portable_atmospherics/powered/pump,/turf/simulated/shuttle/plating,/area/centcom/evac) "OX" = (/obj/machinery/portable_atmospherics/canister/oxygen,/turf/simulated/shuttle/plating,/area/centcom/evac) @@ -2135,7 +2135,7 @@ "Pc" = (/obj/structure/table/standard,/obj/machinery/chemical_dispenser/bar_soft/full,/turf/unsimulated/floor{icon_state = "white"},/area/syndicate_mothership{name = "\improper Raider Base"}) "Pd" = (/turf/simulated/shuttle/wall{icon_state = "swall_f"; dir = 4},/area/centcom/evac) "Pe" = (/obj/item/weapon/bedsheet/orange,/obj/effect/decal/cleanable/cobweb2{tag = "icon-cobweb1"; icon_state = "cobweb1"},/obj/structure/bed/padded,/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership{name = "\improper Raider Base"}) -"Pf" = (/obj/structure/table/reinforced,/obj/machinery/microwave{pixel_x = -1; pixel_y = 8},/turf/unsimulated/floor{icon_state = "white"},/area/syndicate_mothership{name = "\improper Raider Base"}) +"Pf" = (/obj/machinery/vending/cigarette,/turf/unsimulated/floor{icon_state = "lino"},/area/centcom/tram) "Pg" = (/obj/structure/table/standard,/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership{name = "\improper Raider Base"}) "Ph" = (/obj/structure/closet/secure_closet/freezer/kitchen,/turf/unsimulated/floor{icon_state = "white"},/area/syndicate_mothership{name = "\improper Raider Base"}) "Pi" = (/obj/structure/closet/l3closet/virology,/obj/item/clothing/mask/gas,/obj/effect/floor_decal/industrial/warning{dir = 9},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical) @@ -2148,7 +2148,7 @@ "Pp" = (/obj/machinery/gibber,/turf/unsimulated/floor{icon_state = "white"},/area/syndicate_mothership{name = "\improper Raider Base"}) "Pq" = (/obj/structure/kitchenspike,/turf/unsimulated/floor{icon_state = "white"},/area/syndicate_mothership{name = "\improper Raider Base"}) "Pr" = (/obj/item/clothing/head/xenos,/turf/unsimulated/floor{tag = "icon-asteroid"; icon_state = "asteroid"},/area/syndicate_mothership{name = "\improper Raider Base"}) -"Ps" = (/obj/structure/sink{icon_state = "sink"; dir = 8; pixel_x = -12; pixel_y = 2},/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/syndicate_mothership{name = "\improper Raider Base"}) +"Ps" = (/obj/machinery/vending/coffee,/turf/unsimulated/floor{icon_state = "lino"},/area/centcom/tram) "Pt" = (/obj/structure/table/rack,/obj/item/weapon/gun/launcher/spikethrower,/turf/unsimulated/floor{tag = "icon-asteroid"; icon_state = "asteroid"},/area/syndicate_mothership{name = "\improper Raider Base"}) "Pu" = (/obj/item/clothing/mask/gas/swat{desc = "A close-fitting mask clearly not made for a human face."; name = "\improper alien mask"},/turf/unsimulated/floor{tag = "icon-asteroid"; icon_state = "asteroid"},/area/syndicate_mothership{name = "\improper Raider Base"}) "Pv" = (/obj/item/xenos_claw,/turf/unsimulated/floor{tag = "icon-asteroid"; icon_state = "asteroid"},/area/syndicate_mothership{name = "\improper Raider Base"}) @@ -2213,12 +2213,12 @@ "QC" = (/obj/machinery/door/airlock/hatch{frequency = 1331; icon_state = "door_closed"; id_tag = "vox_southeast_lock"; locked = 0; req_access = list(150)},/obj/machinery/atmospherics/pipe/simple/visible,/turf/simulated/shuttle/plating,/area/skipjack_station/start) "QD" = (/obj/machinery/atmospherics/pipe/simple/visible,/obj/machinery/access_button{command = "cycle_interior"; frequency = 1331; master_tag = "vox_west_control"; pixel_x = -22; req_one_access = list(150)},/turf/simulated/shuttle/plating,/area/skipjack_station/start) "QE" = (/obj/structure/table/rack,/obj/item/weapon/gun/energy/ionrifle,/obj/item/weapon/material/harpoon,/obj/item/clothing/suit/space/void/merc,/obj/item/clothing/head/helmet/space/void/merc,/obj/item/clothing/head/helmet/space/void/engineering,/obj/item/clothing/suit/space/void/engineering,/obj/item/weapon/tank/oxygen,/obj/item/weapon/tank/oxygen,/obj/item/clothing/shoes/magboots,/obj/item/clothing/shoes/magboots,/obj/item/weapon/rig/light/stealth,/turf/simulated/shuttle/plating,/area/skipjack_station/start) -"QF" = (/obj/machinery/microwave{pixel_x = -1; pixel_y = 8},/obj/structure/table/steel,/turf/simulated/shuttle/plating,/area/skipjack_station/start) +"QF" = (/obj/machinery/microwave/map{pixel_x = -1; pixel_y = 8},/obj/structure/table/steel,/turf/simulated/shuttle/plating,/area/skipjack_station/start) "QG" = (/obj/item/seeds/potatoseed,/obj/item/seeds/potatoseed,/obj/item/seeds/ambrosiavulgarisseed,/obj/item/weapon/material/minihoe,/obj/item/weapon/beartrap,/obj/structure/table/steel,/turf/simulated/shuttle/plating,/area/skipjack_station/start) "QH" = (/obj/machinery/vending/hydroseeds,/turf/simulated/shuttle/plating,/area/skipjack_station/start) "QI" = (/obj/structure/table/rack,/obj/item/weapon/melee/energy/sword/pirate,/obj/item/clothing/suit/space/pirate,/obj/item/clothing/suit/space/pirate,/obj/item/weapon/tank/oxygen,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/skipjack_station/start) "QJ" = (/obj/structure/table/rack,/obj/item/weapon/storage/belt/utility/full,/obj/item/weapon/storage/belt/utility/full,/obj/item/device/multitool,/obj/item/device/multitool,/obj/item/clothing/shoes/magboots,/turf/simulated/shuttle/plating,/area/skipjack_station/start) -"QK" = (/obj/machinery/washing_machine,/turf/simulated/shuttle/plating,/area/skipjack_station/start) +"QK" = (/obj/machinery/washing_machine/map,/turf/simulated/shuttle/plating,/area/skipjack_station/start) "QL" = (/obj/structure/table/standard,/obj/item/weapon/storage/fancy/cigarettes,/obj/item/weapon/flame/lighter/zippo,/obj/item/clothing/gloves/yellow,/obj/item/stack/material/steel{amount = 50},/obj/item/stack/material/glass{amount = 50},/obj/item/weapon/card/emag,/turf/simulated/shuttle/plating,/area/skipjack_station/start) "QM" = (/obj/structure/table/rack,/obj/item/weapon/gun/energy/sniperrifle,/obj/item/clothing/suit/space/void/mining,/obj/item/clothing/head/helmet/space/void/mining,/obj/item/clothing/head/helmet/space/void/atmos,/obj/item/clothing/suit/space/void/atmos,/obj/item/weapon/tank/oxygen,/obj/item/weapon/tank/oxygen,/turf/simulated/shuttle/plating,/area/skipjack_station/start) "QN" = (/obj/machinery/atmospherics/pipe/simple/visible,/obj/machinery/access_button{command = "cycle_interior"; frequency = 1331; master_tag = "vox_east_control"; pixel_x = 22; req_access = list(150)},/turf/simulated/shuttle/plating,/area/skipjack_station/start) @@ -2226,8 +2226,8 @@ "QP" = (/turf/simulated/shuttle/plating,/area/skipjack_station/start) "QQ" = (/obj/structure/reagent_dispensers/watertank,/obj/machinery/light/small{dir = 4},/turf/simulated/shuttle/plating,/area/skipjack_station/start) "QR" = (/obj/machinery/button/remote/blast_door{id = "smindicate"; name = "ship lockdown control"; pixel_x = -25},/turf/simulated/shuttle/floor{icon_state = "floor6"},/area/syndicate_station/start) -"QS" = (/obj/structure/table/rack,/obj/item/clothing/shoes/magboots,/obj/item/clothing/suit/space/void/merc,/obj/item/clothing/mask/gas/syndicate,/obj/item/clothing/head/helmet/space/void/merc,/turf/unsimulated/floor{icon_state = "dark"},/area/space) -"QT" = (/obj/structure/table/rack,/obj/item/device/suit_cooling_unit,/obj/item/device/suit_cooling_unit,/obj/item/device/suit_cooling_unit,/turf/unsimulated/floor{icon_state = "dark"},/area/space) +"QS" = (/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/window/brigdoor{dir = 4; name = "Weapons locker"},/obj/structure/table/rack,/obj/item/clothing/suit/armor/riot,/obj/item/weapon/melee/baton/loaded,/obj/item/weapon/shield/riot,/obj/item/clothing/head/helmet/riot,/obj/structure/window/reinforced{dir = 1},/obj/effect/floor_decal/corner/red{dir = 9},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/security) +"QT" = (/obj/structure/table/standard,/obj/structure/flora/pottedplant{icon_state = "plant-06"; pixel_y = 8; tag = "icon-plant-06"},/obj/effect/floor_decal/corner/red{dir = 8},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/security) "QU" = (/obj/machinery/door/airlock/hatch{req_access = list(150)},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/skipjack_station/start) "QV" = (/obj/structure/table/rack,/obj/item/clothing/shoes/magboots,/obj/item/clothing/suit/space/syndicate/black/engie,/obj/item/clothing/mask/breath,/obj/item/clothing/head/helmet/space/syndicate/black/engie,/obj/machinery/light/small{dir = 8},/turf/simulated/shuttle/plating,/area/skipjack_station/start) "QW" = (/obj/item/robot_parts/head,/turf/simulated/shuttle/plating,/area/skipjack_station/start) @@ -2237,8 +2237,8 @@ "Ra" = (/obj/machinery/atmospherics/pipe/simple/visible,/obj/machinery/portable_atmospherics/hydroponics,/turf/simulated/shuttle/plating,/area/skipjack_station/start) "Rb" = (/obj/machinery/floodlight,/turf/simulated/shuttle/plating,/area/skipjack_station/start) "Rc" = (/obj/structure/table/rack,/obj/item/weapon/gun/launcher/crossbow,/obj/item/stack/rods{amount = 10},/obj/machinery/light/small{dir = 8},/obj/item/weapon/beartrap,/obj/item/weapon/beartrap,/obj/item/weapon/beartrap,/obj/item/weapon/beartrap,/obj/item/weapon/beartrap,/obj/item/weapon/beartrap,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/skipjack_station/start) -"Rd" = (/obj/structure/table/rack,/obj/item/weapon/rig/merc/empty,/turf/unsimulated/floor{icon_state = "dark"},/area/space) -"Re" = (/obj/structure/table/steel,/obj/machinery/recharger,/obj/machinery/light/small{dir = 4},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/skipjack_station/start) +"Rd" = (/obj/structure/bed/chair/office/dark,/obj/machinery/button/remote/blast_door{desc = "A remote control switch for port-side blast doors."; id = "CentComPort"; name = "Security Doors"; pixel_x = -12; pixel_y = -25; req_access = list(101)},/obj/effect/floor_decal/corner/red,/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/security) +"Re" = (/obj/structure/table/steel,/obj/machinery/recharger/map,/obj/machinery/light/small{dir = 4},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/skipjack_station/start) "Rf" = (/obj/structure/reagent_dispensers/fueltank,/turf/simulated/shuttle/plating,/area/skipjack_station/start) "Rg" = (/obj/item/robot_parts/robot_suit,/obj/item/robot_parts/r_leg,/obj/item/robot_parts/r_arm,/turf/simulated/shuttle/plating,/area/skipjack_station/start) "Rh" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/blast/regular{id = "skipjackshutters"; name = "Skipjack Blast Shielding"},/turf/simulated/shuttle/plating,/area/skipjack_station/start) @@ -2256,7 +2256,7 @@ "Rt" = (/obj/structure/bed/chair{dir = 4},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/skipjack_station/start) "Ru" = (/obj/structure/reagent_dispensers/beerkeg/fakenuke,/turf/unsimulated/floor{icon_state = "white"},/area/syndicate_mothership) "Rv" = (/obj/structure/bed/chair{dir = 8},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/skipjack_station/start) -"Rw" = (/obj/machinery/bodyscanner{dir = 8},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/skipjack_station/start) +"Rw" = (/obj/machinery/bodyscanner/map{dir = 8},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/skipjack_station/start) "Rx" = (/obj/machinery/light/small{dir = 1},/obj/machinery/body_scanconsole,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/skipjack_station/start) "Ry" = (/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/skipjack_station/start) "Rz" = (/obj/structure/toilet{dir = 4},/turf/simulated/shuttle/plating,/area/skipjack_station/start) @@ -2298,10 +2298,10 @@ "Sj" = (/obj/structure/sink{dir = 4; icon_state = "sink"; pixel_x = 11; pixel_y = 0},/turf/simulated/shuttle/floor{icon_state = "floor7"},/area/skipjack_station/start) "Sk" = (/obj/item/weapon/bedsheet/rainbow,/obj/structure/bed/padded,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/skipjack_station/start) "Sl" = (/obj/item/weapon/bedsheet/hos,/obj/structure/bed/padded,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/skipjack_station/start) -"Sm" = (/obj/structure/table/standard,/obj/item/weapon/bonesetter,/obj/item/weapon/bonegel,/obj/item/weapon/FixOVein,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/skipjack_station/start) +"Sm" = (/obj/machinery/vending/snack,/turf/unsimulated/floor{icon_state = "lino"},/area/centcom/tram) "Sn" = (/obj/structure/table/woodentable,/obj/item/weapon/storage/bag/cash,/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/wizard_station) "So" = (/turf/unsimulated/floor{icon_state = "lino"},/area/wizard_station) -"Sp" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/table/standard,/obj/item/weapon/surgicaldrill,/obj/item/weapon/retractor,/obj/item/stack/medical/advanced/bruise_pack,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/syndicate_station/start) +"Sp" = (/obj/machinery/porta_turret/crescent,/turf/unsimulated/floor{icon_state = "lino"},/area/centcom/tram) "Sq" = (/obj/structure/closet{icon_closed = "cabinet_closed"; icon_opened = "cabinet_open"; icon_state = "cabinet_closed"},/obj/item/clothing/suit/wizrobe/red,/obj/item/clothing/shoes/sandal,/obj/item/clothing/head/wizard/red,/obj/item/weapon/staff,/turf/unsimulated/floor{icon_state = "lino"},/area/wizard_station) "Sr" = (/obj/structure/closet{icon_closed = "cabinet_closed"; icon_opened = "cabinet_open"; icon_state = "cabinet_closed"},/obj/item/clothing/suit/wizrobe/marisa,/obj/item/clothing/shoes/sandal/marisa,/obj/item/clothing/head/wizard/marisa,/obj/item/weapon/staff/broom,/turf/unsimulated/floor{icon_state = "lino"},/area/wizard_station) "Ss" = (/obj/structure/closet{icon_closed = "cabinet_closed"; icon_opened = "cabinet_open"; icon_state = "cabinet_closed"},/obj/item/clothing/suit/wizrobe/magusblue,/obj/item/clothing/head/wizard/magus,/obj/item/weapon/staff,/turf/unsimulated/floor{icon_state = "lino"},/area/wizard_station) @@ -2310,7 +2310,7 @@ "Sv" = (/obj/item/weapon/bedsheet/orange,/obj/structure/bed/padded,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/skipjack_station/start) "Sw" = (/obj/item/weapon/bedsheet/green,/obj/machinery/light/small{dir = 4},/obj/structure/bed/padded,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/skipjack_station/start) "Sx" = (/obj/structure/table/standard,/obj/item/weapon/reagent_containers/syringe/antiviral,/obj/item/weapon/reagent_containers/syringe/antiviral,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/skipjack_station/start) -"Sy" = (/obj/structure/table/standard,/obj/item/weapon/storage/firstaid/adv{pixel_x = 1},/obj/item/weapon/storage/firstaid/toxin{pixel_x = 3; pixel_y = 3},/obj/machinery/light/small{dir = 4},/obj/structure/closet/secure_closet/medical_wall{pixel_x = 32; pixel_y = 0; req_access = list(150)},/obj/item/weapon/storage/firstaid/fire{pixel_x = 1},/obj/item/weapon/storage/firstaid/o2{pixel_x = 3; pixel_y = 3},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/skipjack_station/start) +"Sy" = (/obj/item/weapon/tray{pixel_y = 5},/obj/structure/table/standard,/turf/unsimulated/floor{icon_state = "white"},/area/syndicate_mothership{name = "\improper Raider Base"}) "Sz" = (/obj/structure/bookcase,/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/wizard_station) "SA" = (/obj/machinery/vending/magivend,/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/wizard_station) "SB" = (/obj/structure/simple_door/wood{tag = "icon-wood"; icon_state = "wood"},/turf/unsimulated/floor{icon_state = "lino"},/area/wizard_station) @@ -2332,7 +2332,7 @@ "SR" = (/obj/item/target,/turf/unsimulated/floor{tag = "icon-cult"; name = "plating"; icon_state = "cult"},/area/wizard_station) "SS" = (/obj/item/target/syndicate,/turf/unsimulated/floor{tag = "icon-cult"; name = "plating"; icon_state = "cult"},/area/wizard_station) "ST" = (/obj/item/target/alien,/turf/unsimulated/floor{tag = "icon-cult"; name = "plating"; icon_state = "cult"},/area/wizard_station) -"SU" = (/obj/structure/table/standard,/obj/item/roller,/obj/item/roller,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/syndicate_station/start) +"SU" = (/obj/machinery/microwave/map{pixel_x = -1; pixel_y = 8},/obj/structure/table/standard,/turf/unsimulated/floor{icon_state = "white"},/area/syndicate_mothership{name = "\improper Raider Base"}) "SV" = (/obj/structure/table/rack,/obj/item/weapon/material/knife/ritual,/turf/unsimulated/floor{icon_state = "dark"},/area/wizard_station) "SW" = (/obj/structure/kitchenspike,/obj/structure/table/marble,/turf/unsimulated/floor{icon_state = "dark"},/area/wizard_station) "SX" = (/obj/structure/table/woodentable,/obj/structure/table/woodentable,/obj/item/weapon/reagent_containers/food/snacks/milosoup,/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/wizard_station) @@ -2366,21 +2366,21 @@ "Tz" = (/obj/structure/table/reinforced,/obj/machinery/computer/skills,/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/main_hall) "TA" = (/obj/structure/table/reinforced,/obj/item/weapon/paper_bin{pixel_x = 1; pixel_y = 9},/obj/item/weapon/pen,/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/main_hall) "TB" = (/obj/machinery/computer/teleporter,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops) -"TC" = (/obj/machinery/teleport/hub,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops) -"TD" = (/obj/machinery/teleport/station,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops) +"TC" = (/obj/machinery/teleport/hub/map,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops) +"TD" = (/obj/machinery/teleport/station/map,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops) "TE" = (/obj/structure/table/steel,/obj/item/clothing/glasses/regular,/obj/item/clothing/glasses/regular,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/skipjack_station/start) "TF" = (/obj/machinery/light/small{dir = 8},/obj/machinery/atmospherics/pipe/tank/air{dir = 1; start_pressure = 740},/turf/simulated/shuttle/plating,/area/skipjack_station/start) "TG" = (/obj/machinery/light/small{dir = 4},/obj/machinery/atmospherics/pipe/tank/air{dir = 1; start_pressure = 740},/turf/simulated/shuttle/plating,/area/skipjack_station/start) "TH" = (/obj/structure/table/woodentable,/obj/item/weapon/paper{info = "\[center]\[b]LIST OF SPELLS AVAILABLE\[/b]\[/center]\[br]\[br]Magic Missile:\[br]This spell fires several, slow moving, magic projectiles at nearby targets. If they hit a target, it is paralyzed and takes minor damage.\[br]\[br]Fireball:\[br]This spell fires a fireball at a target and does not require wizard garb. Be careful not to fire it at people that are standing next to you.\[br]\[br]Disintegrate:\[br]This spell instantly kills somebody adjacent to you with the vilest of magick. It has a long cooldown.\[br]\[br]Disable Technology:\[br]This spell disables all weapons, cameras and most other technology in range.\[br]\[br]Smoke:\[br]This spell spawns a cloud of choking smoke at your location and does not require wizard garb.\[br]\[br]Blind:\[br]This spell temporarly blinds a single person and does not require wizard garb.\[br]Forcewall:\[br]This spell creates an unbreakable wall that lasts for 30 seconds and does not require wizard garb.\[br]\[br]Blink:\[br]This spell randomly teleports you a short distance. Useful for evasion or getting into areas if you have patience.\[br]\[br]Teleport:\[br]This spell teleports you to a type of area of your selection. Very useful if you are in danger, but has a decent cooldown, and is unpredictable.\[br]\[br]Mutate:\[br]This spell causes you to turn into a hulk, and gain telekinesis for a short while.\[br]\[br]Ethereal Jaunt:\[br]This spell creates your ethereal form, temporarily making you invisible and able to pass through walls.\[br]\[br]Knock:\[br]This spell opens nearby doors and does not require wizard garb.\[br]"; name = "List of Available Spells (READ)"},/obj/item/clothing/glasses/regular,/turf/unsimulated/floor{icon_state = "dark"},/area/wizard_station) -"TI" = (/obj/structure/table/standard,/obj/structure/window/reinforced{dir = 8},/obj/item/weapon/storage/firstaid/toxin{pixel_x = 3; pixel_y = 3},/obj/item/weapon/storage/firstaid/adv{pixel_x = 1},/obj/item/weapon/storage/firstaid/fire{pixel_x = 1},/obj/item/weapon/storage/firstaid/o2{pixel_x = 3; pixel_y = 3},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/syndicate_station/start) -"TJ" = (/obj/structure/sink{dir = 4; icon_state = "sink"; pixel_x = 11; pixel_y = 0},/obj/item/weapon/reagent_containers/glass/bottle/stoxin,/obj/item/weapon/reagent_containers/glass/bottle/stoxin,/obj/item/weapon/reagent_containers/syringe,/obj/item/clothing/mask/surgical,/obj/item/clothing/gloves/latex,/obj/structure/closet/secure_closet/medical_wall{pixel_x = 32; pixel_y = 0; req_access = list(150)},/obj/item/weapon/tank/anesthetic,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/syndicate_station/start) -"TK" = (/obj/item/device/radio/intercom{desc = "Talk through this. Evilly"; frequency = 1213; name = "Syndicate Intercom"; pixel_x = 32; subspace_transmission = 1; syndie = 1},/obj/machinery/iv_drip,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/syndicate_station/start) +"TI" = (/obj/structure/table/standard,/obj/item/weapon/bonesetter,/obj/item/weapon/bonegel,/obj/item/weapon/FixOVein,/obj/item/stack/nanopaste,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/skipjack_station/start) +"TJ" = (/obj/structure/table/standard,/obj/item/weapon/storage/firstaid/adv{pixel_x = 1},/obj/item/weapon/storage/firstaid/toxin{pixel_x = 3; pixel_y = 3},/obj/machinery/light/small{dir = 4},/obj/structure/closet/secure_closet/medical_wall{pixel_x = 32; pixel_y = 0; req_access = list(150)},/obj/item/weapon/storage/firstaid/fire{pixel_x = 1},/obj/item/weapon/storage/firstaid/o2{pixel_x = 3; pixel_y = 3},/obj/item/weapon/storage/firstaid/regular,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/skipjack_station/start) +"TK" = (/obj/machinery/computer/secure_data,/obj/machinery/camera/network/crescent{c_tag = "Crescent Arrivals North"; dir = 8},/obj/effect/floor_decal/corner/red/full{dir = 4},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/security) "TL" = (/obj/effect/floor_decal/corner/white{dir = 5},/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops) "TM" = (/obj/structure/table/reinforced,/obj/item/clothing/accessory/storage/black_vest,/obj/item/clothing/accessory/storage/black_vest,/obj/item/clothing/accessory/storage/black_vest,/obj/item/clothing/accessory/storage/black_vest,/obj/item/clothing/accessory/storage/black_vest,/obj/item/clothing/accessory/storage/black_vest,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops) "TN" = (/obj/structure/table/reinforced,/obj/item/weapon/crowbar,/obj/item/weapon/crowbar,/obj/item/weapon/crowbar,/obj/item/weapon/crowbar,/obj/item/weapon/crowbar,/obj/item/weapon/crowbar,/obj/item/device/radio/off,/obj/item/device/radio/off,/obj/item/device/radio/off,/obj/item/device/radio/off,/obj/item/device/radio/off,/obj/item/device/radio/off,/obj/item/device/flashlight,/obj/item/device/flashlight,/obj/item/device/flashlight,/obj/item/device/flashlight,/obj/item/device/flashlight,/obj/item/device/flashlight,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops) "TO" = (/obj/structure/bed/chair/comfy/teal{dir = 1},/obj/effect/floor_decal/carpet,/turf/unsimulated/floor{icon_state = "carpet"; dir = 2},/area/centcom/command) "TP" = (/obj/effect/floor_decal/carpet{dir = 4},/obj/effect/floor_decal/carpet,/obj/effect/floor_decal/carpet{dir = 6},/turf/unsimulated/floor{icon_state = "carpet"; dir = 2},/area/centcom/command) -"TQ" = (/obj/machinery/computer/arcade/battle,/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/security) +"TQ" = (/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/window/brigdoor{dir = 4; name = "Weapons locker"},/obj/structure/table/rack,/obj/item/clothing/suit/armor/riot,/obj/item/weapon/melee/baton/loaded,/obj/item/weapon/shield/riot,/obj/item/clothing/head/helmet/riot,/obj/structure/window/reinforced,/obj/effect/floor_decal/corner/red/full,/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/security) "TR" = (/obj/machinery/door/airlock/centcom{name = "General Access"; opacity = 1; req_access = list(101)},/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/main_hall) "TS" = (/obj/structure/table/woodentable{dir = 5},/obj/machinery/cash_register/civilian,/turf/unsimulated/floor{icon_state = "lino"},/area/centcom/bar) "TT" = (/obj/structure/table/woodentable,/obj/item/weapon/spacecash/c1,/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/wizard_station) @@ -2392,7 +2392,7 @@ "TZ" = (/obj/machinery/shower{dir = 4; icon_state = "shower"; pixel_x = 0; pixel_y = 0},/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 4},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical) "Ua" = (/obj/structure/closet/l3closet/virology,/obj/item/clothing/mask/gas,/obj/effect/floor_decal/industrial/warning{dir = 8},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical) "Ub" = (/obj/machinery/computer/cloning,/obj/effect/floor_decal/corner/blue{dir = 10},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical) -"Uc" = (/obj/machinery/clonepod,/obj/effect/floor_decal/corner/blue/full,/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical) +"Uc" = (/obj/machinery/clonepod/map,/obj/effect/floor_decal/corner/blue/full,/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical) "Ud" = (/obj/structure/closet/wardrobe/white,/obj/effect/floor_decal/corner/blue{dir = 10},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical) "Ue" = (/obj/machinery/dna_scannernew,/obj/effect/floor_decal/corner/blue{dir = 10},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical) "Uf" = (/obj/structure/table/standard,/obj/item/weapon/book/manual/medical_cloning,/obj/effect/floor_decal/corner/blue{dir = 10},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical) @@ -2407,6 +2407,7 @@ "Uo" = (/obj/item/weapon/storage/box/syringes{pixel_x = 4; pixel_y = 4},/obj/item/weapon/storage/box/beakers,/obj/item/weapon/reagent_containers/dropper,/obj/structure/table/glass,/obj/structure/reagent_dispensers/virusfood{pixel_x = 0; pixel_y = 28},/obj/effect/floor_decal/corner/green{dir = 5},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical) "Up" = (/obj/machinery/disease2/incubator,/obj/effect/floor_decal/corner/green/full{dir = 8},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical) "Uq" = (/obj/machinery/disease2/isolator,/obj/effect/floor_decal/corner/green/full{dir = 1},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical) +"Ur" = (/obj/structure/closet/secure_closet/security,/obj/effect/floor_decal/corner/red/full{dir = 4},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/security) "Us" = (/obj/structure/bed/padded,/obj/item/weapon/bedsheet/green,/obj/effect/floor_decal/corner/green{dir = 5},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical) "Ut" = (/obj/structure/bed/padded,/obj/item/weapon/bedsheet/green,/obj/effect/floor_decal/corner/green/full{dir = 1},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical) "Uu" = (/obj/structure/table/standard,/obj/item/weapon/FixOVein{pixel_x = -6; pixel_y = 1},/obj/item/stack/medical/advanced/bruise_pack,/obj/effect/floor_decal/corner/pink{dir = 9},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical) @@ -2436,6 +2437,23 @@ "US" = (/obj/machinery/computer/diseasesplicer,/obj/effect/floor_decal/corner/green/full{dir = 4},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical) "UT" = (/obj/machinery/disease2/diseaseanalyser,/obj/effect/floor_decal/corner/green{dir = 10},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical) "UU" = (/obj/structure/window/reinforced{dir = 8},/obj/effect/floor_decal/corner/green/full,/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical) +"UV" = (/obj/structure/table/reinforced,/obj/item/weapon/paper_bin{pixel_x = 1; pixel_y = 9},/obj/item/weapon/pen,/obj/machinery/door/window/southright{name = "Arrivals Processing"; req_access = list(101)},/obj/structure/window/reinforced{dir = 4},/obj/effect/floor_decal/corner/red/full{dir = 4},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/security) +"UW" = (/obj/structure/table/reinforced,/obj/machinery/computer/skills,/obj/structure/window/reinforced{dir = 2; health = 1e+006},/obj/structure/window/reinforced{dir = 8},/obj/effect/floor_decal/corner/red/full,/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/security) +"UX" = (/obj/structure/table/standard,/obj/item/stack/material/phoron,/obj/item/stack/material/phoron,/obj/item/stack/material/phoron,/obj/item/stack/material/phoron,/obj/item/stack/material/phoron,/obj/item/stack/material/phoron,/obj/effect/floor_decal/corner/beige/full{dir = 8},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical) +"UY" = (/obj/effect/floor_decal/corner/beige{dir = 5},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical) +"UZ" = (/obj/structure/table/standard,/obj/machinery/reagentgrinder,/obj/effect/floor_decal/corner/beige{dir = 5},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical) +"Va" = (/obj/machinery/chem_master,/obj/effect/floor_decal/corner/beige/full{dir = 1},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical) +"Vb" = (/obj/effect/floor_decal/corner/beige{dir = 9},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical) +"Vc" = (/obj/machinery/chemical_dispenser/ert,/obj/item/weapon/reagent_containers/glass/beaker/large,/obj/effect/floor_decal/corner/beige{dir = 6},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical) +"Vd" = (/obj/structure/closet/secure_closet/chemical,/obj/effect/floor_decal/corner/beige{dir = 9},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical) +"Ve" = (/obj/structure/table/standard,/obj/item/weapon/reagent_containers/glass/beaker/large,/obj/item/weapon/reagent_containers/glass/beaker/large,/obj/effect/floor_decal/corner/beige{dir = 6},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical) +"Vf" = (/obj/structure/closet/secure_closet/medical1,/obj/effect/floor_decal/corner/beige{dir = 9},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical) +"Vg" = (/obj/structure/closet/secure_closet/medical1,/obj/effect/floor_decal/corner/beige/full,/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical) +"Vh" = (/obj/effect/floor_decal/corner/beige,/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical) +"Vi" = (/obj/effect/floor_decal/corner/beige{dir = 8},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical) +"Vj" = (/obj/machinery/chem_master,/obj/effect/floor_decal/corner/beige/full{dir = 4},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical) +"Vk" = (/obj/effect/floor_decal/corner/beige{dir = 6},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical) +"Vl" = (/obj/structure/table/reinforced,/obj/effect/floor_decal/corner/red{dir = 5},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/security) (1,1,1) = {" aaabacadaeafagahaaaiajakalamanaoagafajacadahakaeamaiaoalahajapaqarasatauavawaxayaaabacadaeafagahaaaiajakalamanaoagafajacadahakazaAaBaCaDaEaFaGaHaIaJaKaLaMaNaOaAaBaCaDaEaFaGaHaIaJazaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaQaQaQaQaQaQaQaQaQaQaQaQaQaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaRaSaSaSaSaSaSaSaSaSaSaRaSaSaSaSaSaSaSaSaSaSaRaSaSaSaSaSaSaSaSaSaSaRaSaSaSaSaSaSaSaSaSaSaRaSaSaSaSaSaSaSaSaSaSaRaSaSaSaSaSaSaSaSaSaSaRaSaSaSaSaSaSaSaSaSaSaR @@ -2532,76 +2550,76 @@ aPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaP aPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPnknknknknknknknknknkmUnloinnnnojpbokolpbomonpboooppboqorosotouovmpmpowmMoxmpmpmpmpmpmpmpmpmpmpmpmpmpmpmpmYmYoAoAoAmYoznMnMozoBnMoCmoaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPmdaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPmjmjmjmjmjmjmjaPaPaPaPaPaPaPaPaPaPaPlwoDoEoFoEoDjwmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmj aPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPnDnnnnnnnnoGnnnnnnnnnnoGoHnnnnnnojnJmmmmnKmmmmnKmmmmnImMmMmMmMmMmUFeFenRnPofmpmpmpmpmpmpmpmpmpmpmpmpmpmpmpmYmYoJoJoJmYoKnMnMnMnMnMnMmoaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPmdaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPmjmjmjmjmjmjaPaPaPaPaPaPaPaPaPaPaPaPkjoDoEoFoEoDjwmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmj aPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPnknknknknknknknknknkmUnloLnnnnnnoMmpmpmpmpmpmpmpmpmpmpmpmpmpmpoNmpmpoNoOmpmpmpoPoQoYoSoTmpmpmpmpmpmpmpmpmYmYoJoJoJmYoKnMnMnMnMnMnMmoaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPmdaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPmjmjmjmjmjaPaPaPaPaPaPaPaPaPaPaPaPaPkToDoEoFoEoDjwmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmj -aPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPnDnnnnnnnnoUnnnnnnnnnnoUoVnnnnnnnnoMmpmpoWmpmpoWmpmpmpmpmpmpmpmpoXmpmpoXmpmpmpmpoPpjoYoYoTmpmpmpmpmpmpmpmpmYmYoAoAoAmYpbpcnMpbpdpbpemoaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPmdaPaPaPaPaPaPaPmjmjaPaPaPaPaPaPaPaPmjmjmjaPaPaPaPaPaPaPaPaPaPaPaPaPaPjwjwoFoFpfjwjwmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmj -aPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPnknknknknknknknknknkmUnlpgnnnnphpbmMmMmUnTnTmUmMmMpbmMmMmMmMmMmUTLTLnRnPmpmpmpoPTMTNpkoTmpmpoZpampmpmpmppbpmoaoaoapnmopcnMmopomopomoaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPmdaPaPaPaPaPaPmjmjmjmjmjaPaPaPaPaPaPmjmjaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPjwoIoFoFjwmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmj -aPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPnDnnnnnnnnppnnnnnnnnnnpppqnnnnnnprmopsmpmpmpmpmpptpumopvpwpxpypzpAmpmppBmMpCmpmpmpmpmpmpmpmpmpplmompmpmpmpnJmmmmmmmmmmnKmqmmnKmmpDmmnIaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPmdaPaPaPaPaPaPmjmjmjmjmjmjaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPpEpFpFpGjwjwpHjwjwjwjwjwjwjwqnqnqnjwjwaRaRaRaRmjmjmjmjmj -aPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPnknknknknknknknknknkmUnnnnnnnnpImopJmpmpmpmpmpmppKmompmpmpmppLmpmpmppMmMpNpPpOpQmpmpmppOpPpNpCmompmpmpmpmMpRpSpSpTpUpVmopWnMpXmoaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPmdaPaPaPaPaPaPmjmjmjmjmjmjaPaPaPaPaPaPaPaPaPaPpYpZqaqaqaqbqcaPaPqdqeqfqgqeqeqeqhjwqiqjqkqljwqnqnqnjwqmrjrVrJaRmjmjmjmjmj -aPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPpbnnqpqqqrqsmoqtmpmpquqvmpmpqwmompmpmpmpmpmpmpmpmlmmnPmMmMmUqxqxnRmmmmmmmmmrmpmpmpmpmMqyqyqyqyqyqymoqznMqAmoaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPmdaPaPaPaPaPaPaPmjmjmjmjmjaPaPaPaPaPaPaPaPaPpYqBqCqDqEqFqGqBqcaPqdqeqHqHqeqeqeqeqIqJqJqJqKjwqnqnqnjwjwaRaRaRaRmjmjmjmjmj -aPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPnJmmmmmmmmmmmrqLmpmpqMqNmpmpqOmompmpqPqQqRmpmpqSmoqTqUqUqUqUqVqVqUqUqUqWaPmompmpmpmpmUqyqXqYqYqYqYnJnPqZnRmraPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPmdaPaPaPaPaPaPaPaPmjmjmjmjaPaPaPaPaPaPaPaPaPqBrarbrbrcrbrbqFqBaPqdrdrerfrgqeqeqejwqJqJqJrhjwqnqnqnjwrirjrjsnaRmjmjmjmjmj -aPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPmompmpmprkrlmpmpmpmompmprmrnrompmprpmorqrrrsrtrurvrvrvrwrxqUqWmompmpmpmpryqyrzrzrzrzrzqyqyqyqYmoaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPmdaPaPaPaPaPaPaPaPaPmjmjaPaPaPaPaPaPaPaPaPaPqBrArbrbrbrbrBrCqBaPqdqerDrDqeqeqerEjwrFRurGrHjwqnqnqnjwrIrjrjsHaRmjmjmjmjmj -aPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPmompmpmpmpmpmpmpmpmompmpmpmpmpmpmprKmorqrLrMrvrvrvrvrvrvrvrNrOmompmpmpmpryqyqyqyrPqyqyqyqyqyqYmoaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPmdaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPqBrQrbrbrRrbrbrSqBaPqdqeqeqeqeqeqerTjwjwjwjwjwjwqnqnqnjwrUrjrjtmaRmjmjmjmjmj -aPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPmompmpmpmpmpmpmpmpmompmpmpmpmpmpmpmpmorqrLrWrXrYrYrYrYrYrZqUsamompmpmpmppbqyqysbsbqyqyscqyqyqYmoaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPsdsesesesesesesesesesesesesesesesesesesesesesesdaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPmdaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPsfqBsgqBqBqBqBqBshaPsipFpFsjjwqoqoqojwlhlhsksljwqnqnqnjwsmrjrjtCaRmjmjmjmjmj -aPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPmompmpsospsqsrssstmosusvswsxsyszmpsAmosBqUqUqUqUqUqUqUqUqUsaaPmompmpmpmpmosCqyTUsDqyqysEqyqysFmoaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPsdsGsGsGsGsGsGsGsGsGsGsGsGsGsGsGsGsGsGsGsGsGsGsdaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPmdaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPqBwQsIsJsKsLqBaPaPaPaPaPaPsMqoqoqosNlilisOsOjwqnqnqnjwsmrjrjtUaRmjmjmjmjmj -aPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPmosPsQsospsqsrssstmBmmmmmmmmmmmmmmmmnIsRsRsRsRsRsRsRsRsRsRsRsRozmUsSsSmUnJmmmmmmmmmmmmmmmmmmmmnIaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPsdsGsGsGsGsGsGsGsGsGsGsGsGsGsGsGsGsGsGsGsGsGsGsdaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPmdaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPqBsTsUrBrbsVqBaPaPaPaPaPaPsWqoqoqojwsXlijwjwjwjwjwjwjwsYsZsZsYaRaRaRaRmjmj -aPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPnJmmmmmmmmmmmmmmmmnIaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPtamUtbtbmUtcaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPsdsGsGsGsGsGtdtetetetetftftetetetetgsGsGsGsGsGsdsdsdsdsdsdsdaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPmdaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPpYqBthsIrBrbtiqBqcaPaPnOnCtjjwqoqoqojwjwjwjwuktkvxuhuIunioioioiotlvWvXaRaRmj -aPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPmMtntnmMaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPsdsGsGsGsGtdtotptqtrtetstttetutvtetetetgsGsGsGsdwIxdxaxaxasdaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPmdaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPpYqBqBqBqBtwsIrBrbtxqBqBqBqBqctytyjwtzqoqoqojwuFuGioioioioioioioioioioiorjrjwWaRmj -aPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPmMtntnmMaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPsdsGsGsGtdtetDtDtDtDtetEtEtetDtDtFtGtetetgsGsGsdzjxaxaxaxasdaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPmdaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPqBtHtItJqBtKrbrbtLqBqBwXtNtOtPtQtRtQqoqoqoqotSioioioioioioqoiotTioioioiorjrjwYaRmj -aPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPmMtntnmMaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPsdsGsGtdtetetVtWtXtYtetZtDuatDtDtDtDubuctesGsGCuxaxaxaxaxasdaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPmdaPaPaPaPaPaPaPaPaPaPaPaPmjmjaPaPaPaPudueufueqBqBugxsqBqBxLtMuiujtPtQQbtQqoqoqoqojwulumioioioioioioioioioioiorjrjHSaRmj -aPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPmMtntnmMaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPsdsGsGuoupuqtDurururtetDtDteusutuuuvuwuxtesGsGsdxaxaxaxaxasdaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPmdaPaPaPaPaPaPaPaPaPaPaPmjmjmjaPaPaPaPqBqBuduyqBqBuzrbuAqBqBuBuCuBqBuDuDjwuEpFsjjwjwjwjwtAtBFxKGKNKMioioioiouHKXMYaRaRmj -aPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPnktntnnkaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPsdsGsGuJuptDtDtDtDtDuatDtDteteteteteteteuKsGsGsdCvxXxaxXCwsdaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPmdaPaPaPaPaPaPaPaPaPaPmjmjmjmjaPaPaPaPqBuLrbrbuMqBQRuNrbqBuOuPuQuRqBmTaPmTaPaPaPaPmjmjjwjwjwjwjwjwjwsYuSuSsYaRaRaRaRmjmj -aPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPmMtntnmMaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPsdsGsGuTtetDtDtDuUtDtetDtDtDuVuWsGsGsGsGsGsGsGuXuXuXuXuXuXuXuXuXuXuXaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPmdaPaPaPaPaPaPaPaPaPaPmjmjmjmjaPaPaPaPqBuYrbrbrbuZrbrbrbvarbrbrbvbqBnCnCnCnCaPaPaPaPmjmjmjqnqnqnqnjwvcrjrjQSaRmjmjmjmjmj -aPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPmMtntnmMaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPsdsGsGsGtetetetetetetetZtDvdtDuWsGsGsGsGsGsGsGuXvevevevevevevevevevfaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPmdaPaPaPaPaPaPaPaPaPmjmjmjmjmjaPaPaPaPqBvgrbrbrbvhrbrbrbvirbrbrbvjqBaPaPaPaPaPaPaPaPaPmjmjqnqnqnqnjwvcrjrjQSaRmjmjmjmjmj -aPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPmMtntnmMaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPsdsGsGtdtevkvlvmvkvntetDtDtDvouWsGsGsGsGsGsGsGuXvevpvqvqvqvqvqvrvevfaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPmdaPaPaPaPaPaPaPaPaPmjmjmjmjaPaPaPaPpYqBqBqBqBqBqBrbrbrbqBqBqBqBqBqBqcaPaPaPaPaPmSaPmTmjmjqnqnqnqnjwvcrjrjQSaRmjmjmjmjmj -aPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPmMtntnmMaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPsdsdsdsdsdsGsGuoupvsvsvsvsvsuatDtDtetetetetetetetgsGsGuXvevtvuvuvuvuvuvtvevfaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPmdaPaPaPaPaPaPaPaPaPmjmjmjmjaPaPaPaPqBvvvwCQvyvzqBvArbvBqBvCvDvDvEvFqBaPaPaPaPaPmSmTmjmjmjqnqnqnqnjwvcrjrjQSaRmjmjmjmjmj -aPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPvGvGvGvGvGaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPvGvGvGvGvGaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPvGvGvGvGvGvHvHvHvHvGvGvGvGvHvIvIvHsdvJvJsdsdvJvJsdsdvJvJvJvJsdsdsdsdvJvJvJvJsdsdsdsdvJvJsdsdsdsdsdsdvKvKvLsdsGsGuJupvMvsvsvsvstetDtDtDtDtDtetDvNvOtesGsGuXvevtvPvuvuvuvQvtvevfaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPmdaPaPaPaPaPaPaPaPaPmjmjmjaPaPaPaPaPvRvSvSvSvSvSqBrbrbrbqBvTrbrbrbvUvVaPaPaPaPaPnOaPmjmjmjqnqnqnqnjwjwQTRdaRaRmjmjmjmjmj -aPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPvGvYvZvYvGaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPvGvYvYvYvGaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPvGvGwawbwbwbwbwbwbwbwbwbwbwbwbwbwbwcvJvKvKvKvKvKvKvJvKvKvKvKvKvKwdvKvKvKvKvKvKvKvKwdvKvKvKwevKvKvKvKvKvKvKvKwfsGsGuTtetewgwhwiwjtetZwkwkwktDuatDtDtDtesGsGuXvevtvuvuwlwlwlwmvevfaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPmdaPaPaPaPaPaPaPaPaPmjmjaPaPaPaPaPaPwnwowpvSvSvSwqrbrbrbwrrbrbrbwswtwuaPaPaPaPaPmSmTmTmjmjmjqnqnqnqnaRaRaRaRmjmjmjmjmjmj +aPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPnDnnnnnnnnoUnnnnnnnnnnoUoVnnnnnnnnoMmpmpoWmpmpoWmpmpmpmpmpmpmpmpoXmpmpoXmpmpmpmpoPpjoYoYoTmpmpmpmpmpmpmpmpmYmYoAoAoAmYpbpcnMpbpdpbpemoaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPmdaPaPaPaPaPaPaPmjmjaPaPaPaPaPaPaPaPmjmjmjaPaPaPaPaPaPaPaPaPaPaPaPaPaPjwjwoFoFoFjwjwmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmj +aPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPnknknknknknknknknknkmUnlpgnnnnphpbmMmMmUnTnTmUmMmMpbmMmMmMmMmMmUTLTLnRnPmpmpmpoPTMTNpkoTmpmpoZpampmpmpmppbpmoaoaoapnmopcnMmopomopomoaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPmdaPaPaPaPaPaPmjmjmjmjmjaPaPaPaPaPaPmjmjaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPjwoIoFpfjwmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmj +aPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPnDnnnnnnnnppnnnnnnnnnnpppqnnnnnnprmopsmpmpmpmpmpptpumopvpwpxpypzpAmpmppBmMpCmpmpmpmpmpmpmpmpmpplmompmpmpmpnJmmmmmmmmmmnKmqmmnKmmpDmmnIaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPmdaPaPaPaPaPaPmjmjmjmjmjmjaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPpEpFpFpGjwjwpHjwjwjwjwjwjwjwmjmjmjjwjwjwjwjwjwmjmjmjmjmj +aPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPnknknknknknknknknknkmUnnnnnnnnpImopJmpmpmpmpmpmppKmompmpmpmppLmpmpmppMmMpNpPpOpQmpmpmppOpPpNpCmompmpmpmpmMpRpSpSpTpUpVmopWnMpXmoaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPmdaPaPaPaPaPaPmjmjmjmjmjmjaPaPaPaPaPaPaPaPaPaPpYpZqaqaqaqbqcaPaPqdqeqfqgqeqeqeqhjwqiqjqkqljwmjmjmjjwqmioqnqojwmjmjmjmjmj +aPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPpbnnqpqqqrqsmoqtmpmpquqvmpmpqwmompmpmpmpmpmpmpmpmlmmnPmMmMmUqxqxnRmmmmmmmmmrmpmpmpmpmMqyqyqyqyqyqymoqznMqAmoaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPmdaPaPaPaPaPaPaPmjmjmjmjmjaPaPaPaPaPaPaPaPaPpYqBqCqDqEqFqGqBqcaPqdqeqHqHqeqeqeqeqIqJqJqJqKjwmjmjmjjwjwjwjwjwjwmjmjmjmjmj +aPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPnJmmmmmmmmmmmrqLmpmpqMqNmpmpqOmompmpqPqQqRmpmpqSmoqTqUqUqUqUqVqVqUqUqUqWaPmompmpmpmpmUqyqXqYqYqYqYnJnPqZnRmraPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPmdaPaPaPaPaPaPaPaPmjmjmjmjaPaPaPaPaPaPaPaPaPqBrarbrbrcrbrbqFqBaPqdrdrerfrgqeqeqejwqJqJqJrhjwmjmjmjjwriioiorjjwmjmjmjmjmj +aPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPmompmpmprkrlmpmpmpmompmprmrnrompmprpmorqrrrsrtrurvrvrvrwrxqUqWmompmpmpmpryqyrzrzrzrzrzqyqyqyqYmoaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPmdaPaPaPaPaPaPaPaPaPmjmjaPaPaPaPaPaPaPaPaPaPqBrArbrbrbrbrBrCqBaPqdqerDrDqeqeqerEjwrFRurGrHjwmjmjmjjwrIioiorJjwmjmjmjmjmj +aPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPmompmpmpmpmpmpmpmpmompmpmpmpmpmpmprKmorqrLrMrvrvrvrvrvrvrvrNrOmompmpmpmpryqyqyqyrPqyqyqyqyqyqYmoaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPmdaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPqBrQrbrbrRrbrbrSqBaPqdqeqeqeqeqeqerTjwjwjwjwjwjwmjmjmjjwrUioiorVjwmjmjmjmjmj +aPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPmompmpmpmpmpmpmpmpmompmpmpmpmpmpmpmpmorqrLrWrXrYrYrYrYrYrZqUsamompmpmpmppbqyqysbsbqyqyscqyqyqYmoaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPsdsesesesesesesesesesesesesesesesesesesesesesesdaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPmdaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPsfqBsgqBqBqBqBqBshaPsipFpFsjjwqoqoqojwlhlhsksljwmjmjmjjwsmioiosnjwmjmjmjmjmj +aPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPmompmpsospsqsrssstmosusvswsxsyszmpsAmosBqUqUqUqUqUqUqUqUqUsaaPmompmpmpmpmosCqyTUsDqyqysEqyqysFmoaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPsdsGsGsGsGsGsGsGsGsGsGsGsGsGsGsGsGsGsGsGsGsGsGsdaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPmdaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPqBwQsIsJsKsLqBaPaPaPaPaPaPsMqoqoqosNlilisOsOjwmjmjmjjwsmioiosHjwmjmjmjmjmj +aPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPmosPsQsospsqsrssstmBmmmmmmmmmmmmmmmmnIsRsRsRsRsRsRsRsRsRsRsRsRozmUsSsSmUnJmmmmmmmmmmmmmmmmmmmmnIaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPsdsGsGsGsGsGsGsGsGsGsGsGsGsGsGsGsGsGsGsGsGsGsGsdaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPmdaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPqBsTsUrBrbsVqBaPaPaPaPaPaPsWqoqoqojwsXlijwjwjwjwjwjwjwsYsZsZsYjwjwjwjwmjmj +aPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPnJmmmmmmmmmmmmmmmmnIaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPtamUtbtbmUtcaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPsdsGsGsGsGsGtdtetetetetftftetetetetgsGsGsGsGsGsdsdsdsdsdsdsdaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPmdaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPpYqBthsIrBrbtiqBqcaPaPnOnCtjjwqoqoqojwjwjwjwuktkvxuhuIunioioioiotltltmjwjwmj +aPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPmMtntnmMaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPsdsGsGsGsGtdtotptqtrtetstttetutvtetetetgsGsGsGsdwIxdxaxaxasdaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPmdaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPpYqBqBqBqBtwsIrBrbtxqBqBqBqBqctytyjwtzqoqoqojwuFuGioioioioioioioioioioioioiotCjwmj +aPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPmMtntnmMaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPsdsGsGsGtdtetDtDtDtDtetEtEtetDtDtFtGtetetgsGsGsdzjxaxaxaxasdaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPmdaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPqBtHtItJqBtKrbrbtLqBqBwXtNtOtPtQtRtQqoqoqoqotSioioioioioioqoiotTioioioioioiotUjwmj +aPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPmMtntnmMaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPsdsGsGtdtetetVtWtXtYtetZtDuatDtDtDtDubuctesGsGCuxaxaxaxaxasdaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPmdaPaPaPaPaPaPaPaPaPaPaPaPmjmjaPaPaPaPudueufueqBqBugxsqBqBxLtMuiujtPtQQbtQqoqoqoqojwulumioioioioioioioioioioioioiovWjwmj +aPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPmMtntnmMaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPsdsGsGuoupuqtDurururtetDtDteusutuuuvuwuxtesGsGsdxaxaxaxaxasdaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPmdaPaPaPaPaPaPaPaPaPaPaPmjmjmjaPaPaPaPqBqBuduyqBqBuzrbuAqBqBuBuCuBqBuDuDjwuEpFsjjwjwjwjwtAtBFxKGKNKMioioioiouHuHvXjwjwmj +aPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPnktntnnkaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPsdsGsGuJuptDtDtDtDtDuatDtDteteteteteteteuKsGsGsdCvxXxaxXCwsdaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPmdaPaPaPaPaPaPaPaPaPaPmjmjmjmjaPaPaPaPqBuLrbrbuMqBQRuNrbqBuOuPuQuRqBmTaPmTaPaPaPaPmjmjjwjwjwjwjwjwjwsYuSuSsYjwjwjwjwmjmj +aPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPmMtntnmMaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPsdsGsGuTtetDtDtDuUtDtetDtDtDuVuWsGsGsGsGsGsGsGuXuXuXuXuXuXuXuXuXuXuXaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPmdaPaPaPaPaPaPaPaPaPaPmjmjmjmjaPaPaPaPqBuYrbrbrbuZrbrbrbvarbrbrbvbqBnCnCnCnCaPaPaPaPmjmjmjmjmjmjmjjwvcioiovcjwmjmjmjmjmj +aPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPmMtntnmMaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPsdsGsGsGtetetetetetetetZtDvdtDuWsGsGsGsGsGsGsGuXvevevevevevevevevevfaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPmdaPaPaPaPaPaPaPaPaPmjmjmjmjmjaPaPaPaPqBvgrbrbrbvhrbrbrbvirbrbrbvjqBaPaPaPaPaPaPaPaPaPmjmjmjmjmjmjjwvcioiovcjwmjmjmjmjmj +aPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPmMtntnmMaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPsdsGsGtdtevkvlvmvkvntetDtDtDvouWsGsGsGsGsGsGsGuXvevpvqvqvqvqvqvrvevfaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPmdaPaPaPaPaPaPaPaPaPmjmjmjmjaPaPaPaPpYqBqBqBqBqBqBrbrbrbqBqBqBqBqBqBqcaPaPaPaPaPmSaPmTmjmjmjmjmjmjjwvcioiovcjwmjmjmjmjmj +aPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPmMtntnmMaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPsdsdsdsdsdsGsGuoupvsvsvsvsvsuatDtDtetetetetetetetgsGsGuXvevtvuvuvuvuvuvtvevfaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPmdaPaPaPaPaPaPaPaPaPmjmjmjmjaPaPaPaPqBvvvwCQvyvzqBvArbvBqBvCvDvDvEvFqBaPaPaPaPaPmSmTmjmjmjmjmjmjmjjwvcioiovcjwmjmjmjmjmj +aPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPvGvGvGvGvGaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPvGvGvGvGvGaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPvGvGvGvGvGvHvHvHvHvGvGvGvGvHvIvIvHsdvJvJsdsdvJvJsdsdvJvJvJvJsdsdsdsdvJvJvJvJsdsdsdsdvJvJsdsdsdsdsdsdvKvKvLsdsGsGuJupvMvsvsvsvstetDtDtDtDtDtetDvNvOtesGsGuXvevtvPvuvuvuvQvtvevfaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPmdaPaPaPaPaPaPaPaPaPmjmjmjaPaPaPaPaPvRvSvSvSvSvSqBrbrbrbqBvTrbrbrbvUvVaPaPaPaPaPnOaPmjmjmjmjmjmjmjjwjwwWwYjwjwmjmjmjmjmj +aPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPvGvYvZvYvGaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPvGvYvYvYvGaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPvGvGwawbwbwbwbwbwbwbwbwbwbwbwbwbwbwcvJvKvKvKvKvKvKvJvKvKvKvKvKvKwdvKvKvKvKvKvKvKvKwdvKvKvKwevKvKvKvKvKvKvKvKwfsGsGuTtetewgwhwiwjtetZwkwkwktDuatDtDtDtesGsGuXvevtvuvuwlwlwlwmvevfaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPmdaPaPaPaPaPaPaPaPaPmjmjaPaPaPaPaPaPwnwowpvSvSvSwqrbrbrbwrrbrbrbwswtwuaPaPaPaPaPmSmTmTmjmjmjmjmjmjmjjwjwjwjwmjmjmjmjmjmj aPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPwvvGvGvGwvaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPwvvGvGvGwvvHvHvHvHwvaPaPaPaPaPaPaPaPaPaPaPaPvGwbwbwbwbwbwbwbwbwbwbwbwbwbwbwbwbwbwwvKvKvKvKvKvKwwvKvKvKvKvKvKvKvKvKvKvKvKvKvKvKvKvKvKvKwevKvKvKvKvKvKvKvKwfsGsGsGuTtevsvsvsvstetDwkwkwktDtewxteteuKsGsGuXvevtvuvuvuvuvuwyvevfaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPmdaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPwzvSvSvSvSvSwArbrbrbwBrbrbrbrbwCwDaPaPaPaPaPmSaPaPmTmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmj aPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPvHwbwbwbvHmTmTmTmTaPaPaPaPaPaPaPaPaPmTmTmTmTvHwbwbwbvHmTmTmTmTmTmTmTmTmTmTmTmTmTmTmTmTaPvGwbwbwbwbwbwbwbwbwbwbwbwbwbwbwbwbwbwwvKvKvKvKvKvKwwvKvKvKvKvKvKvKvKvKvKvKvKvKvKvKvKvKvKvKsdsdsdsdsdsdsdsdsdsdsGsGsGsGuTtewEwFwGtetDtDtDtDtDteteteuKsGsGsGuXvevtvuvuvuvuwHvtvevfaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPmdaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPqBCRvSvSvSwJqBuBwKuBqBwLwMwNrbwOqBaPaPaPaPaPaPaPaPaPmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmj -aPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPvHwbwbwbvHaPaPaPmTmTmTmTmTmTmTmTmTmTmTaPaPaPvHwbwbwbvHmTaPaPaPaPaPaPaPaPaPaPaPaPaPaPmTmTvHwbwbwbwPwPwPwPwPwPwPwPwPwPwPwPwPwPwPwPvJvJDivJvJsdvJvJvJvJvJwRwRvJvJsdsdvJvJvJvJsdsdvKvKsdoRwSsdoRwSsdoRwSsdsGsGsGsGsGuTteteteteteteteteteteuKsGsGsGsGsGuXvevtvuvuvuvuvuwyvevfaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPmdaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPqBwUwVSpTISUqBwZrbDjqBxbqBqBxcqBqBaPaPaPaPaPaPaPmSaPmTmjmjmjmjmjmjmjmjmjmjmjmjmjmjmj -aPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPvGwbwbwbvGvGvGaPaPaPaPaPaPaPaPaPaPaPaPaPvGvGvGwbwbwbvGaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPvGvGvGwbwbwbwPxfxexexexexexexexexexgxhxixhwPxjxjxjxlxksdwRwRwRwRwRwRwRxmxnsdxBxBxBxBxBxBsdvKvKsdwTxosdwTxosdwTxosdsGsGsGsGsGsGsGsGsGsGsGsGsGsGsGsGsGsGsGsGsGsGuXvevtvuvuxpxpxpxqvevfaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPmdaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPqBxrvSTJqBqBqBDkrbxtqBqBqBxurbxvqBaPaPaPaPaPaPaPmSmTmTmjmjmjmjmjmjmjmjmjmjmjmjmjmjmj -aPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPvGwbwbwbxwxxxyaPaPaPaPaPaPaPaPaPaPaPaPaPxyxxxwwbwbwbvGaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPxyxxxwwbwbwbwPxzxexexexAxAxexexexexCxexexewPxDxjxjxjxjsdwRxExFxGxEwRwRwRwRsdxBxIxHxHxWxBvJvKvKsdxZyasdxZyasdxZyasdsGsGsGsGsGsGsGsGsGsGsGsGsGsGsGsGsGsGsGsGsGsGuXvevtvPvuvuvuvQvtvevfaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPmdaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPqBxJxKTKqBaPqBxMxMxMqBaPqBqFxNxOqBaPaPaPaPaPaPaPmSaPmTaPmjmjmjmjmjmjmjmjmjmjmjmjmjmj -aPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPvGwbwbwbxwxxxyaPaPaPaPaPaPaPaPaPaPaPaPaPxyxxxwwbwbwbvGaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPxyxxxywbwbwbwPxzxexexQxPxSylxexexexgxhxixhwPxRxjxjxjxjsdwRxExVxVxEwRwRwRwRsdxBykxXxYyTxBvJvKvKsdzbsdsdzbsdsdzbsdsdsdsdsdsdsdsdsdsdsdsdsdsdsdsdsdsdsdsdsdsdsdsduXveybycvuvuvuydyevevfaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPmdaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPqBxMxMxMqBaPsfyfygyhshaPqBxMxMxMqBaPaPaPaPaPaPaPmSmTmTmTmTmTmjmjmjmjmjmjmjmjmjmjmjmj -aPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPvGwbwbwbvGvGvGaPaPaPaPaPaPaPaPaPaPaPaPaPvGvGvGwbwbwbvGaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPvGvGvGwbwbwbwPxzxexexQyjxTylxexexewPwPwPwPwPxUxUxUxjxjsdwRwRwRwRwRwRwRynxEsdxBykxXxXyTxBsdvKvKvKvKvKvKvKvKvKvKvKvKvKvKvKvKvKvKvKvKvKvKvKvKvKvKvKvKvKvKyosGsGyovfveypyqyryryryqysvevfaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPmdaPaPaPaPaPaPaPaPaPaPaPaPmjmjaPaPaPsfyfygyhshaPaPaPaPaPaPaPsfyfygyhshaPaPaPaPaPaPaPmSaPmTaPmTaPaPmjmjmjmjmjmjmjmjmjmjmj -aPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPvHwbwbwbvHaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPvHwbwbwbvHmTaPaPaPaPaPaPaPaPaPaPaPaPaPaPmTmTvHwbwbwbwPyixexexeyvyvxexexexexgxhxixhwPymyuytxjxjsdwRxExVxGxEwRwRwRwRsdxBykxXxXyTxBywvKvKvKvKvKvKvKvKvKvKvKvKvKvKvKvKvKvKvKvKvKvKvKvKvKvKvKvKvKvKyosGsGyovfveveyAyByByByCvevevfaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPmdaPaPaPaPaPaPaPaPaPaPaPaPmjmjmjaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPmjmjmjmjmjmjmjmjmjmjmj -aPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPvHwbwbwbvHmTmTmTmTmTmTmTmTmTmTmTmTmTmTmTmTmTvHwbwbwbvHmTmTmTmTmTmTmTmTmTmTmTmTmTmTmTmTaPvGwbwbwbwPyDxexexexexexexexexexCxexexewPyxxjxjxjxjsdwRxExVyFxEwRwRwRwRsdxBykxXxXyTxBsdvKvKsdvJvJvJvJvJvJvJvJvJsdsdsdsdsdsdsdsdsdsdsdsdvKvKsdsdsdsdsdsdsdsduXvevevevevevevevevevfaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPmdaPaPaPaPaPaPaPaPaPaPaPaPaPmjmjaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPmjmjmjmjmjmjmjmjmjmjmj -aPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPvHwbwbwbvHaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPvHwbwbwbvHvHvHvHvHwvaPaPaPaPaPaPaPaPaPaPaPaPvGwbwbwbwPyyyHxexexexexexexexexgxhxixhyIyIyIyIyIyIyIyIyIyIyIyIyIyIyIyIsdxBykxXyJyTxBvJvKvKsdvKyKyLyMyNvKyOyPyQsdyRyRyRyRyRyRyRyRyRyRsdvKvKsdaPaPaPaPaPaPaPuXuXuXuXuXuXuXuXuXuXuXaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPmdaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPmjmjmjmjmjmjmjmjmjmjmj -aPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPvGwbwbwbvGvGvGaPaPaPaPaPaPaPaPaPaPaPaPaPvGvGvGwbwbwbvHmTaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPvHwbwbwbwPwPwPwPxexexeySyzwPwPwPwPwPwPyIyUyVyWyIyXyYyYyYyYyYyYyYyYyZzasdxBxZTOTOTPxBvJvKvKvJvKyKzczdyNvKzezfzgsdyRyRyRyRyRyRyRyRyRyRsdvKvKsdaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPmdaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPmjmjmjmjmjmjmjmjmjmjmj -aPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPvGwbwbwbxwxxxyaPaPaPaPaPaPaPaPaPaPaPaPaPxyxxxwwbwbwbvHmTaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPvGwbwbwbwPzizixgxexexexeDlwPyEzhyGyGyGyIyUyVznyIyYyYyYyYzozpyYyYyYyYyYsdxBxBxBxBxBxBsdvKvKvJvKvKvKvKvKvKvKvKzqsdsdsdsdsdsdsdsdsdyRyRsdvKvKsdaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPmdaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPmjmjmjmjmjmjmjmjmjmj -aPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPvGwbwbwbxwxxxyaPaPaPaPaPaPaPaPaPaPaPaPaPxyxxxwwbwbwbvHvHvHvHvHwvmTmTmTmTmTmTmTmTmTmTmTaPvGwbwbwbwPxexezrxexexeySzkwPzlxexexexeyIyVyVyVzuyYyYzvyYzozpyYzwzxzyyYsdsdvJvJvJvJsdsdvKvKzzvKvKvKvKzAzBzCvKvKsdvKvKvKvKvKvKzDsdyRyRsdvKvKsdaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPmdaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPmjmjmjmjmjmjmjmjmj -aPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPvGwbwbwbvGvGvGaPaPaPaPaPaPaPaPaPaPaPaPaPvGvGvGwbwbwbvHmTaPaPzEzFzGzEzFzFzHzIzJzFzKzLmTmTvHzMwbwbwPxexezrxexeTQzmzPwPzsxexAxexeyIyVyVzRyIzSyYzTyYzozpyYzwzxzyyYyIvKvKvKvKvKvKvKvKvKvJvKvKvKvKzCzCzDvKvKzUvKzVvKvKzVvKzCsdyRyRsdvKvKsdaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPmdaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPmjmjmjmjmjmjmjmj -aPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPvHwbwbwbvHaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPvHwbwbwbvGaPaPzEzWzXzYzZAaAbAaAaAaAbAcAdvGvGvGwbwbwbwPzrzrxgxgxgxgxgxgwPxgAfxexeAgyIAhyVzRyIzSyYyYyYTezpyYzwRpzyyYyIvKvKvKvKvKvKvKvKvKvJAiyNvKvKvKvKvKAjvKsdzcAkAlzCAmvKzqsdyRyRsdvKvKsdaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPmdaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPmjmjmjmjmjmjmj -aPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPvHwbwbwbvHaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPvHwbwbwbvGaPaPAnAoApAoAqAoAoAoAoAoAoAoArAsxxAswbwbwbwPxexexexexexexexexexgxgAtxgxgyIyIyIyIyIzozozozozozpyYzwRBzyyYyIvJvJAuvJvJsdwdvKvKsdAvyNvKvKvKvKvKsdsdsdsdvJvJvJvJvJsdsdAwAwsdvKvKsdaPaPaPaPAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPmdaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPmjmjaPaPaPaPaPaPaPaPaPaPaPaPaPmjmjmjmjmjmj -aPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPvHwbwbwbvHmTmTmTaPaPaPaPaPaPaPaPaPaPaPmTmTmTvHwbwbwbvGaPaPAyAzAAABzZACADACACACADAEAFvGvGvGwbwbwbwPxexexexexexexexexexexexexeySAHyIyYyYyYzpzpzpzpzpyYyYyYyYyYyYyIAIAJvKAKALsdAMANAOAwAwBkAwsdvJAPvJsdAQAQAQARASATAUAVAQAQAQAwwdvKvKsdaPaPaPAxAxAWAWAWAWAWAWAXAXAXAWAWAWAWAXAXAXAYaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPmdaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPmjmjmjmjaPaPaPaPaPaPaPaPaPaPaPaPaPmjmjmjmjmj -aPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPvGwbwbwbvGaPaPmTaPaPaPaPaPaPaPaPaPaPaPmTaPaPvGwbwbwbvHmTaPaPAyzFAZAyzFzFzHzIzJzFBaBbmTmTvHwbwbwbwPxexexeySySySySySxexexexexeySztyIBdyYyYyYyYyYyYyYyYyYyYyYyYBdyIvKvKvKvKvKsdvKvKvKEaAQAQBlsdvKvKvKsdAQAQAQARBeBfBgAVAQAQAQAwvKvKvKsdaPaPaPAxAWAWAWAWAWAWAWAWAWAWAWAWAWAWAWAWAWAYaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPBhaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPmjmjmjmjmjaPaPaPaPaPaPaPaPaPaPaPaPaPmjmjmjmjmj -aPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPvGwbwbwbvGaPaPmTaPaPaPaPaPaPaPaPaPaPaPmTaPaPvGwbwbwbvHvHvHvHvHwvmTmTmTmTmTmTmTmTmTmTmTaPvGwbwbwbwPxexexeBjBjBjBjBjxexexexexexexeyIzxyYzwzxzxzyyYyYzwzxzxzyyYzxyIvKvKvKvKvKsdvKvKvKEaBmBzBysdvKvKvKsdAQAQAQBnBoBpBqBrAQAQAQAwvKvKvKsdaPaPaPAxAWAWAWAWAWAWAWAWAWAWAWAWAWAWAWAWAWAYaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPmdaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPmjmjmjmjmjmjaPaPaPaPaPaPaPaPaPaPaPaPaPmjmjmjmj -aPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPvGwbwbwbvGaPaPmTaPaPaPaPaPaPaPaPaPaPaPmTaPaPvGwbwbwbvHmTaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPvGwbwbwbwPxexexeyjxexexexSxexexexexexexeyIBsyYzwRBRpzyyYyYzwRBRpzyyYBsyIvKBtBuBvBwsdvJBxvJAwTzTAAwsdBABBBCsdAQAQAQAQAQAQAQAQAQAQAQAwvKvKvKsdaPaPaPAxAWAWAWBDAxAxAxAYAYAYAxBEBEAxAYAYAYAxAxAxAxAYAYAYAxAxAYAYAYAxaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPmdaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPmjmjmjmjmjmjmjaPaPaPaPaPaPaPaPaPaPaPaPaPaPmjmj -aPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPvHBFBFBFvHvHaPmTaPaPaPaPaPaPaPaPaPaPaPmTaPvHvHBFBFBFvHvHaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPvHvHBFBFBFwPxexexexexexexexexexewPwPBGBGwPyIBdyYyYyYyYyYyYyYyYyYyYyYyYBdyIBIsdsdsdsdsdAQAQAQAwEaEaAwsdsdsdsdsdAQAQAQAQAQAQAQAQAQAQAQAwvKvKvKsdaPaPaPAxBJAWAWAxAxBKBLBMBLBMBNBOBOBPBMBLBMBLBQBRBRBRBRBRBRBRBRBRBRAxaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPmdaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPmjmjmjmjmjmjmjmjmjaPaPaPaPaPaPaPaPaPaPaPaPaPaPmj -aPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPvHwbBSwbwbvHvHmTaPaPaPaPaPaPaPaPaPaPaPmTvHvHwbBTBUBVwbvHvHaPaPaPaPaPaPaPaPaPaPaPaPaPvHvHwbwbBUBVwPxexexewPAtAtwPwPxexewPBXxexeCkyIzxyYzwzxzxzyyYyYzwzxzxzyyYzxyIsdsdAQAQAQAQAQAQAQAQAQAQAQAwAwsdsdAwAQAQAQAQAQAQAQAQAQAQAQAwvKvKvKsdaPaPaPAxBJAWAWAxBKBZCaCaCaCaCbCcCcCdCaCaCaCbCeBQCfCfCfCfCfCfCfCfCfAxaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPmdaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPmjmjmjmjmjmjmjmjmjaPaPaPaPaPaPaPaPaPaPaPaPaPaPaP -aPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPvHwbCgwbwbwavHvHaPaPaPaPaPaPaPaPaPaPaPvHvHwawbwbChwbwbwavHvHaPaPaPaPaPaPaPaPaPaPaPvHvHwawbwbCiBVzrxexexewPxexexewPxexewPzNxexeCkyIBsyYzwRBRpzyyYyYzwRBRpzyyYBsyIsdClAQAQAQAQAQAQAQAQAQAQAQClAwAwsdAwCmAQAQAQAQAQAQAQAQAQCmAwwdvKvKAxAxAxAxAxBJAWAWAYCnCoCcCcCcCcCcCcCcCcCcCcCcCcCpCnCqCqCqCqCqCqCqCqCqAxaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPmdaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPmjmjmjmjmjmjmjmjmjaPaPaPaPaPaPaPaPaPaPaPaPaPaPaP -aPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPvGvGwbCiwbwbwbwbvHvHvHvHvGvGvGvGvGvHvHvHvHwbwbwbCiBUCrwbwbwbvHvHvHvHvGvGvGvGvGvHvHvHvHwbwbwbwbBUwbzrxexexewPxexezOwPxexewPCtxexeCkyIyIDmDmDmDmyICxCxyIDmDmDmDmyIyIAQAQAQAQCyCzCACACACBCCAQAQAQAQAwAwAwAwAwAwAwAQAQAQAwAwAwAwAwsdvKvKCDAWAWAWAxBJAWAWAYCECoCcCcCcCcCcCcCcCcCcCcCcCcCpCECfCfCfCfCfCfCfCfCfAxaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPmdaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPmjmjmjmjmjaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaP -aPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPvGwbwbwbwbwbwbwbCFxxCGCFxxCHCICJxxCGCFxxCGwbwbwbwbwbwbwbwbwbCFxxCGCFxxCHCICJxxCGCFxxCGwbwbwbwbwbwbwPCKxexexgxezQCMxgxexewPzNxexeCkwPCNCOCPCOCPEaAQAQEaCOCSCOCOCTAwAQAQAQCUCVCWCWCWCWCWCXCYAQAQAQAwCOCPCOCNCPEaAQAQAQEaCPCOCOCZsdvKvKAxDaAWDbAYBJAWAWAxCeBQDcDcDcDcDdCcCcDeDcDcDcDdBKBZCqCqCqCqCqCqCqCqCqAxaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPmdaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaP -aPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPvGwbwbwbwbwbwbwbCFxxCGCFxxCHDfCJxxCGCFxxCGwbwbwbwbwbwbwbwbwbCFxxCGCFxxCHDfCJxxCGCFxxCGwbwbwbwbwbwbwPwPzrzrxgAeDhxgxgzrzrwPwPwPwPwPwPEaEaEaEaEaEaAQAQEaEaEaEaEaEaAwAQAQDnDoCWCWCWCWCWCWCWDpCCAQAQAwEaEaEaEaEaEaAQAQAQEaEaEaEaEaAwTRTRAxAWDrDsAYBJAWAWAxAxCeBLBMBLBMBNBOBOBPBMBLBMBLBZBRBRBRBRBRBRBRBRBRBRAxaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPmdaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaP +aPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPvHwbwbwbvHaPaPaPmTmTmTmTmTmTmTmTmTmTmTaPaPaPvHwbwbwbvHmTaPaPaPaPaPaPaPaPaPaPaPaPaPaPmTmTvHwbwbwbwPwPwPwPwPwPwPwPwPwPwPwPwPwPwPwPvJvJDivJvJsdvJvJvJvJvJwRwRvJvJsdsdvJvJvJvJsdsdvKvKsdoRwSsdoRwSsdoRwSsdsGsGsGsGsGuTteteteteteteteteteteuKsGsGsGsGsGuXvevtvuvuvuvuvuwyvevfaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPmdaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPqBwUwVxrAGxJqBwZrbDjqBxbqBqBxcqBqBaPaPaPaPaPaPaPmSaPmTmjmjmjmjmjmjmjmjmjmjmjmjmjmjmj +aPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPvGwbwbwbvGvGvGaPaPaPaPaPaPaPaPaPaPaPaPaPvGvGvGwbwbwbvGaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPvGvGvGwbwbwbwPxhxfxfxfxfxfxfxfxfxfxgxiyixzwPxjxjxjxlxksdwRwRwRwRwRwRwRxmxnsdxBxBxBxBxBxBsdvKvKsdwTxosdwTxosdwTxosdsGsGsGsGsGsGsGsGsGsGsGsGsGsGsGsGsGsGsGsGsGsGuXvevtvuvuxpxpxpxqvevfaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPmdaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPqBBcvSBiqBqBqBDkrbxtqBqBqBxurbxvqBaPaPaPaPaPaPaPmSmTmTmjmjmjmjmjmjmjmjmjmjmjmjmjmjmj +aPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPvGwbwbwbxwxxxyaPaPaPaPaPaPaPaPaPaPaPaPaPxyxxxwwbwbwbvGaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPxyxxxwwbwbwbwPyyxexexexAxAxexexexexCxexeyzwPxDxjxjxjxjsdwRxExFxGxEwRwRwRwRsdxBxIxHxHxWxBvJvKvKsdxZyasdxZyasdxZyasdsGsGsGsGsGsGsGsGsGsGsGsGsGsGsGsGsGsGsGsGsGsGuXvevtvPvuvuvuvQvtvevfaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPmdaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPqBBHxKBWqBaPqBxMxMxMqBaPqBqFxNxOqBaPaPaPaPaPaPaPmSaPmTaPmjmjmjmjmjmjmjmjmjmjmjmjmjmj +aPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPvGwbwbwbxwxxxyaPaPaPaPaPaPaPaPaPaPaPaPaPxyxxxwwbwbwbvGaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPxyxxxywbwbwbwPyyxexexQxPxSylxexeyDxgyEyHyGwPxRxjxjxjxjsdwRxExVxVxEwRwRwRwRsdxBykxXxYyTxBvJvKvKsdzbsdsdzbsdsdzbsdsdsdsdsdsdsdsdsdsdsdsdsdsdsdsdsdsdsdsdsdsdsdsduXveybycvuvuvuydyevevfaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPmdaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPqBxMxMxMqBaPsfyfygyhshaPqBxMxMxMqBaPaPaPaPaPaPaPmSmTmTmTmTmTmjmjmjmjmjmjmjmjmjmjmjmj +aPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPvGwbwbwbvGvGvGaPaPaPaPaPaPaPaPaPaPaPaPaPvGvGvGwbwbwbvGaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPvGvGvGwbwbwbwPyyxexexQxSxSylxexeyzwPwPwPwPwPxUxUxUxjxjsdwRwRwRwRwRwRwRynxEsdxBykxXxXyTxBsdvKvKvKvKvKvKvKvKvKvKvKvKvKvKvKvKvKvKvKvKvKvKvKvKvKvKvKvKvKvKyosGsGyovfveypyqyryryryqysvevfaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPmdaPaPaPaPaPaPaPaPaPaPaPaPmjmjaPaPaPsfyfygyhshaPaPaPaPaPaPaPsfyfygyhshaPaPaPaPaPaPaPmSaPmTaPmTaPaPmjmjmjmjmjmjmjmjmjmjmj +aPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPvHwbwbwbvHaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPvHwbwbwbvHmTaPaPaPaPaPaPaPaPaPaPaPaPaPaPmTmTvHwbwbwbwPzhxexexQyjxTylxexezixgxiyixzwPymyuytxjxjsdwRxExVxGxEwRwRwRwRsdxBykxXxXyTxBywvKvKvKvKvKvKvKvKvKvKvKvKvKvKvKvKvKvKvKvKvKvKvKvKvKvKvKvKvKvKyosGsGyovfveveyAyByByByCvevevfaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPmdaPaPaPaPaPaPaPaPaPaPaPaPmjmjmjaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPmjmjmjmjmjmjmjmjmjmjmj +aPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPvHwbwbwbvHmTmTmTmTmTmTmTmTmTmTmTmTmTmTmTmTmTvHwbwbwbvHmTmTmTmTmTmTmTmTmTmTmTmTmTmTmTmTaPvGwbwbwbwPzkxexexeyvyvxexexexexCxexeyzwPyxxjxjxjxjsdwRxExVyFxEwRwRwRwRsdxBykxXxXyTxBsdvKvKsdvJvJvJvJvJvJvJvJvJsdsdsdsdsdsdsdsdsdsdsdsdvKvKsdsdsdsdsdsdsdsduXvevevevevevevevevevfaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPmdaPaPaPaPaPaPaPaPaPaPaPaPaPmjmjaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPmjmjmjmjmjmjmjmjmjmjmj +aPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPvHwbwbwbvHaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPvHwbwbwbvHvHvHvHvHwvaPaPaPaPaPaPaPaPaPaPaPaPvGwbwbwbwPzmzlztzsxexexeyDztztxgyEyHyGyIyIyIyIyIyIyIyIyIyIyIyIyIyIyIyIsdxBykxXyJyTxBvJvKvKsdvKyKyLyMyNvKyOyPyQsdyRyRyRyRyRyRyRyRyRyRsdvKvKsdaPaPaPaPaPaPaPuXuXuXuXuXuXuXuXuXuXuXaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPmdaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPmjmjmjmjmjmjmjmjmjmjmj +aPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPvGwbwbwbvGvGvGaPaPaPaPaPaPaPaPaPaPaPaPaPvGvGvGwbwbwbvHmTaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPvHwbwbwbwPwPwPwPzNxexeySzOwPwPwPwPwPwPyIyUyVyWyIyXyYyYyYyYyYyYyYyYyZzasdxBxZTOTOTPxBvJvKvKvJvKyKzczdyNvKzezfzgsdyRyRyRyRyRyRyRyRyRyRsdvKvKsdaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPmdaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPmjmjmjmjmjmjmjmjmjmjmj +aPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPvGwbwbwbxwxxxyaPaPaPaPaPaPaPaPaPaPaPaPaPxyxxxwwbwbwbvHmTaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPvGwbwbwbwPzQzPxgAexexexeAfwPAgAHVlVlBXyIyUyVznyIyYyYyYyYzozpyYyYyYyYyYsdxBxBxBxBxBxBsdvKvKvJvKvKvKvKvKvKvKvKzqsdsdsdsdsdsdsdsdsdyRyRsdvKvKsdaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPmdaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPmjmjmjmjmjmjmjmjmjmj +aPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPvGwbwbwbxwxxxyaPaPaPaPaPaPaPaPaPaPaPaPaPxyxxxwwbwbwbvHvHvHvHvHwvmTmTmTmTmTmTmTmTmTmTmTaPvGwbwbwbwPzNxezrxexexeySCkwPCtxQxSylCKyIyVyVyVzuyYyYzvyYzozpyYzwzxzyyYsdsdvJvJvJvJsdsdvKvKzzvKvKvKvKzAzBzCvKvKsdvKvKvKvKvKvKzDsdyRyRsdvKvKsdaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPmdaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPmjmjmjmjmjmjmjmjmj +aPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPvGwbwbwbvGvGvGaPaPaPaPaPaPaPaPaPaPaPaPaPvGvGvGwbwbwbvHmTaPaPzEzFzGzEzFzFzHzIzJzFzKzLmTmTvHzMwbwbwPAexezryDztCMDlDhwPFFGmxSxeCKyIyVyVzRyIzSyYzTyYzozpyYzwzxzyyYyIvKvKvKvKvKvKvKvKvKvJvKvKvKvKzCzCzDvKvKzUvKzVvKvKzVvKzCsdyRyRsdvKvKsdaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPmdaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPmjmjmjmjmjmjmjmj +aPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPvHwbwbwbvHaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPvHwbwbwbvGaPaPzEzWzXzYzZAaAbAaAaAaAbAcAdvGvGvGwbwbwbwPzrzrxgxgxgxgxgxgwPxgGnxeGwGuyIAhyVzRyIzSyYyYyYTezpyYzwRpzyyYyIvKvKvKvKvKvKvKvKvKvJAiyNvKvKvKvKvKAjvKsdzcAkAlzCAmvKzqsdyRyRsdvKvKsdaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPmdaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPmjmjmjmjmjmjmj +aPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPvHwbwbwbvHaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPvHwbwbwbvGaPaPAnAoApAoAqAoAoAoAoAoAoAoArAsxxAswbwbwbwPGmxeGKGxGxGxGxGxGLxgxgAtxgxgyIyIyIyIyIzozozozozozpyYzwRBzyyYyIvJvJAuvJvJsdwdvKvKsdAvyNvKvKvKvKvKsdsdsdsdvJvJvJvJvJsdsdAwAwsdvKvKsdaPaPaPaPAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPmdaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPmjmjaPaPaPaPaPaPaPaPaPaPaPaPaPmjmjmjmjmjmj +aPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPvHwbwbwbvHmTmTmTaPaPaPaPaPaPaPaPaPaPaPmTmTmTvHwbwbwbvGaPaPAyAzAAABzZACADACACACADAEAFvGvGvGwbwbwbwPGnxexexexexexexeGKGxHaxeGKHFHGyIyYyYyYzpzpzpzpzpyYyYyYyYyYyYyIAIAJvKAKALsdAMANAOAwAwBkAwsdvJAPvJsdAQAQAQARASATAUAVAQAQAQAwwdvKvKsdaPaPaPAxAxAWAWAWAWAWAWAXAXAXAWAWAWAWAXAXAXAYaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPmdaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPmjmjmjmjaPaPaPaPaPaPaPaPaPaPaPaPaPmjmjmjmjmj +aPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPvGwbwbwbvGaPaPmTaPaPaPaPaPaPaPaPaPaPaPmTaPaPvGwbwbwbvHmTaPaPAyzFAZAyzFzFzHzIzJzFBaBbmTmTvHwbwbwbwPGnxexeySySySySySxexexexexeySHSyIBdyYyYyYyYyYyYyYyYyYyYyYyYBdyIvKvKvKvKvKsdvKvKvKEaAQAQBlsdvKvKvKsdAQAQAQARBeBfBgAVAQAQAQAwvKvKvKsdaPaPaPAxAWAWAWAWAWAWAWAWAWAWAWAWAWAWAWAWAWAYaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPBhaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPmjmjmjmjmjaPaPaPaPaPaPaPaPaPaPaPaPaPmjmjmjmjmj +aPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPvGwbwbwbvGaPaPmTaPaPaPaPaPaPaPaPaPaPaPmTaPaPvGwbwbwbvHvHvHvHvHwvmTmTmTmTmTmTmTmTmTmTmTaPvGwbwbwbwPGnxexeBjBjBjBjBjxexexexexexeCKyIzxyYzwzxzxzyyYyYzwzxzxzyyYzxyIvKvKvKvKvKsdvKvKvKEaBmBzBysdvKvKvKsdAQAQAQBnBoBpBqBrAQAQAQAwvKvKvKsdaPaPaPAxAWAWAWAWAWAWAWAWAWAWAWAWAWAWAWAWAWAYaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPmdaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPmjmjmjmjmjmjaPaPaPaPaPaPaPaPaPaPaPaPaPmjmjmjmj +aPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPvGwbwbwbvGaPaPmTaPaPaPaPaPaPaPaPaPaPaPmTaPaPvGwbwbwbvHmTaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPvGwbwbwbwPGnxexeyjxexexeyjxeGwHZGmxexeCKyIBsyYzwRBRpzyyYyYzwRBRpzyyYBsyIvKBtBuBvBwsdvJBxvJAwTzTAAwsdBABBBCsdAQAQAQAQAQAQAQAQAQAQAQAwvKvKvKsdaPaPaPAxAWAWAWBDAxAxAxAYAYAYAxBEBEAxAYAYAYAxAxAxAxAYAYAYAxAxAYAYAYAxaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPmdaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPmjmjmjmjmjmjmjaPaPaPaPaPaPaPaPaPaPaPaPaPaPmjmj +aPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPvHBFBFBFvHvHaPmTaPaPaPaPaPaPaPaPaPaPaPmTaPvHvHBFBFBFvHvHaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPvHvHBFBFBFwPGnxeGwGmxexeGwHZGmCKwPwPBGBGwPyIBdyYyYyYyYyYyYyYyYyYyYyYyYBdyIBIsdsdsdsdsdAQAQAQAwEaEaAwsdsdsdsdsdAQAQAQAQAQAQAQAQAQAQAQAwvKvKvKsdaPaPaPAxBJAWAWAxAxBKBLBMBLBMBNBOBOBPBMBLBMBLBQBRBRBRBRBRBRBRBRBRBRAxaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPmdaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPmjmjmjmjmjmjmjmjmjaPaPaPaPaPaPaPaPaPaPaPaPaPaPmj +aPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPvHwbBSwbwbvHvHmTaPaPaPaPaPaPaPaPaPaPaPmTvHvHwbBTBUBVwbvHvHaPaPaPaPaPaPaPaPaPaPaPaPaPvHvHwbwbBUBVwPHaxeCKwPAtAtwPwPGnCKwPIaxexeIjyIzxyYzwzxzxzyyYyYzwzxzxzyyYzxyIsdsdAQAQAQAQAQAQAQAQAQAQAQAwAwsdsdAwAQAQAQAQAQAQAQAQAQAQAQAwvKvKvKsdaPaPaPAxBJAWAWAxBKBZCaCaCaCaCbCcCcCdCaCaCaCbCeBQCfCfCfCfCfCfCfCfCfAxaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPmdaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPmjmjmjmjmjmjmjmjmjaPaPaPaPaPaPaPaPaPaPaPaPaPaPaP +aPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPvHwbCgwbwbwavHvHaPaPaPaPaPaPaPaPaPaPaPvHvHwawbwbChwbwbwavHvHaPaPaPaPaPaPaPaPaPaPaPvHvHwawbwbCiBVzrxexeCKwPGmxeCKwPGnCKwPKXxexeIjyIBsyYzwRBRpzyyYyYzwRBRpzyyYBsyIsdClAQAQAQAQAQAQAQAQAQAQAQClAwAwsdAwCmAQAQAQAQAQAQAQAQAQCmAwwdvKvKAxAxAxAxAxBJAWAWAYCnCoCcCcCcCcCcCcCcCcCcCcCcCcCpCnCqCqCqCqCqCqCqCqCqAxaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPmdaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPmjmjmjmjmjmjmjmjmjaPaPaPaPaPaPaPaPaPaPaPaPaPaPaP +aPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPvGvGwbCiwbwbwbwbvHvHvHvHvGvGvGvGvGvHvHvHvHwbwbwbCiBUCrwbwbwbvHvHvHvHvGvGvGvGvGvHvHvHvHwbwbwbwbBUwbzrxexeCKwPGnxeMYwPGnCKwPQSxexeIjyIyIDmDmDmDmyICxCxyIDmDmDmDmyIyIAQAQAQAQCyCzCACACACBCCAQAQAQAQAwAwAwAwAwAwAwAQAQAQAwAwAwAwAwsdvKvKCDAWAWAWAxBJAWAWAYCECoCcCcCcCcCcCcCcCcCcCcCcCcCpCECfCfCfCfCfCfCfCfCfAxaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPmdaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPmjmjmjmjmjaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaP +aPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPvGwbwbwbwbwbwbwbCFxxCGCFxxCHCICJxxCGCFxxCGwbwbwbwbwbwbwbwbwbCFxxCGCFxxCHCICJxxCGCFxxCGwbwbwbwbwbwbwPQTxeGKxgGnRdTKxgHaGKwPTQHZHZUrwPCNCOCPCOCPEaAQAQEaCOCSCOCOCTAwAQAQAQCUCVCWCWCWCWCWCXCYAQAQAQAwCOCPCOCNCPEaAQAQAQEaCPCOCOCZsdvKvKAxDaAWDbAYBJAWAWAxCeBQDcDcDcDcDdCcCcDeDcDcDcDdBKBZCqCqCqCqCqCqCqCqCqAxaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPmdaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaP +aPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPvGwbwbwbwbwbwbwbCFxxCGCFxxCHDfCJxxCGCFxxCGwbwbwbwbwbwbwbwbwbCFxxCGCFxxCHDfCJxxCGCFxxCGwbwbwbwbwbwbwPwPzrzrxgUWUVxgxgzrzrwPwPwPwPwPwPEaEaEaEaEaEaAQAQEaEaEaEaEaEaAwAQAQDnDoCWCWCWCWCWCWCWDpCCAQAQAwEaEaEaEaEaEaAQAQAQEaEaEaEaEaAwTRTRAxAWDrDsAYBJAWAWAxAxCeBLBMBLBMBNBOBOBPBMBLBMBLBZBRBRBRBRBRBRBRBRBRBRAxaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPmdaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaP aPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPvGDtDuvGwbwbwbwbDvDwDxDvDwDyDzDADwDxDvDwDxwbwbvGDBDtDuvGwbwbDvDwDxDvDwDyDzDADwDxDvDwDxwbwbwbwbwbwbwbwbwbwbAQAQAQAQDCAQAQDCAQAQAQClAwClAQAQAQAQAQAQAQAQAQAQAQAQClAwAQAQDDCWCWCWDEDFDGCWCWCWDDAQAQAwCmAQAQAQAQAQAQAQAQAQAQAQAQCmAwAQAQAYDHDIAYAxAWAWAWBDAxAxAxAYAYAYAxDJDJAxAYAYAYAxAxAxAxAYAYAYAxAxAYAYAYAxaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPmdaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaP aPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPvGDKxxDLwbwbwbwbwbwbwbwbwbwbwbwbwbwbwbwbwbwbwbDMDNDKxxDOwbwbwbwbwbwbwbwbwbwbwbwbwbwbwbwbwbwbwbwbwbwbwbwbwbAQAQAQAQDCAQAQDCAQAQAQAQDPAQAQAQAQAQAQAQAQAQAQAQAQAQAQDPAQAQDQCWCWDEDRDRDRDGCWCWDSAQAQDPAQAQAQAQAQAQAQAQAQAQAQAQAQAQAQAQAQDTAWAWAWDUAWAWAWAWAWAWAWAWAWAWAWAWAWAWAWAWAWAYaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPDVmdmdmdmdmdmdmdmdmdmdmdmdmdmdmdmdmdmdmdmdmdBhmdmdmdmdmdmdmdmdmdmdmdmdmdmdmdmdmdmdmdmdmdmdmdmdmdmdmdmdmdmdmdmdmdmdmdmdmd aPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPvGxxxxDWwbwbwbwbwbwbwbwbwbwbDXwbwbwbwbwbwbwbwbDYDZvHxxDWwbwbwbwbwbwbwbwbDXwbwbwbwbwbwbwbwbwbwbwbwbwbwbwbwbEaAQAQAQAwAQAQAwAQAQAQAQDPAQAQAQAQAQAQAQAQAQAQAQAQAQAQDPAQAQDQCWCWEbDREcDREdCWCWDSAQAQDPAQAQAQAQAQAQAQAQAQAQAQAQAQAQAQAQAQAYAWAWAWAYAWAWAWAWAWAWAWAWAWAWAWAWAWAWAWAWAWAYaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaP aPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPvGEexxEfwbwbwbwbwbwbwbwbwbwbwbwbwbwbwbwbwbwbwbEgxxEexxEfwbwbwbwbwbwbwbwbwbwbwbwbwbwbwbwbwbwbwbwbwbwbwbwbwbAQAQAQAQDCAQAQDCAQAQAQAQDPAQAQAQAQAQAQAQAQAQAQAQAQAQAQDPAQAQDQCWCWEhDRDRDREiCWCWDSAQAQDPAQAQAQAQAQAQAQAQAQAQAQAQAQAQAQAQAQDTAWAWAWDUAWAWAWAWAWAWAWAWAWAWAWAWAWAWAWAWAWAYaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaP -aPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPvGEjEkvGwbwbwbwbElEmEnElEmEoEpEqEmEnElEmEnwbwbvGErEjEsvGwbwbElEmEnElEmEoEpEqEmEnElEmEnwbwbwbwbwbwbwbwbwbwbAQAQAQAQDCAQAQDCAQAQAQClAwClAQAQAQAQAQAQAQAQAQAQAQAQClAwAQAQEtCWCWCWEhEuEvCWCWCWEwAQAQAwCmAQAQAQAQAQAQAQAQAQAQAQAQCmAxAGAGAxAxAxAxAxAWAWAWBDAxAxAxAYAYAYAxBEBEAxAYAYAYAxAxAxAxAYAYAYAxAxAYAYAYAxaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaP -aPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPvGwbwbwbwbwbwbwbCFxxCGCFxxCHDfCJxxCGCFxxCGwbwbwbwbwbwbwbwbwbCFxxCGCFxxCHDfCJxxCGCFxxCGwbwbwbwbwbwbEyEyEzEzEyEAEAEAEyEzEzEyEyEAEAEyEyEaEaEaEaEaEaAQAQEaEaEaEaEaEaAwAQAQEDEECWCWCWCWCWCWCWEFEGAQAQAwEaEaEaEaEaEaAQAQEaEaEaEaEaEaAxBcBcBHBiBYBWAYBJAWAWAxAxBKBLBMBLBMBNBOBOBPBMBLBMBLBQBRBRBRBRBRBRBRBRBRBRAxaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaP -aPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPvGwbwbwbwbwbwbwbCFxxCGCFxxCHCICJxxCGCFxxCGwbwbwbwbwbwbwbwbwbCFxxCGCFxxCHCICJxxCGCFxxCGwbwbwbwbwbwbEyEREMEMFaFpFoFoFqEMFrEyFFGnGmGuEyCSCNCOCPCPEaAQAQEaCZETCPCOCOAwAQAQAQEUEVCWCWCWCWCWEFCVAQAQAQAwEWCOCNCOCPEaAQAQEaCOCPCOEXETAxBcBcBcBcBcBcAYBJAWAWAxBKBZCaCaCaCaCbCcCcCdCaCaCaCbCeBQCfCfCfCfCfCfCfCfCfAxaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaP -aPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPvGvGwbEYEYwbwbwbvHvHvHvHvGvGvGvGvGvHvHvHvHwbwbwbCgBUCrwbwbwbvHvHvHvHvGvGvGvGvGvHvHvHvHwbwbwbBTBUwbEzEMEMEMEMEMEMEMEMEMGvEyGwEMEZGxEyFbEBEBEBEBFbFfFfFbEBEBEBEBFbFbAQAQAQAQEDCzFgFgFgCBEGAQAQAQAQFhFhFhFhFhFhFhFiFiFhFhFhFhFhFhAxBcBcBcBcBcBcAxBJAWAWAYCnCoCcCcCcCcCcCcCcCcCcCcCcCcCpCnCqCqCqCqCqCqCqCqCqAxaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaP -aPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPvHwbBUEYwbwavHvHaPaPaPaPaPaPaPaPaPaPaPvHvHwawbCiBUBVwbwavHvHaPaPFjFkFlFlFlFmFnaPaPvHvHwawbCgBUBVEzEMEMGIGyEMEMGIGyEMGvEyGKEMEMGLEyFsFtFtFtFtFtFtFtFtFtFtFtFtFsFbAwClAQAQAQAQAQAQAQAQAQAQAQClAwFhFuFvFvFvFvFwFwFwFwFvFvFvFvFuAxBcBcCsCjBcCsAYBJAWAWAYCECoCcCcCcCcCcCcCcCcCcCcCcCcCpCECfCfCfCfCfCfCfCfCfAxaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaP -aPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPvHwbwbCrwbvHvHmTaPaPaPaPaPaPaPaPaPaPaPmTvHvHwbCiBUwbwbvHvHmTaPFjFyFzFAFBFCFDFEFnaPmTvHvHwbwbBUwbEyJkEMGIGyEMEMGIGyEMGvEyHaEMEZGxEyFtFtFtFtFtFtFtFtFtFtFtFtFtFtFbAwAwAQAQAQAQAQAQAQAQAQAQAQAwAwFhFwFwFwFwFwFwFwFwFwFwFwFwFwFwAxBcBcCsCjBcCsAYBJAWAWAxCeBQDcDcDcDcDdCcCcDeDcDcDcDdBKBZCqCqCqCqCqCqCqCqCqAxaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaP -aPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPvHBFBFBFvHvHaPmTaPaPaPaPaPaPaPaPaPaPaPmTaPvHvHBFBFBFvHvHaPmTFjFyFGFHFIFHFIFHFJFEFnmTaPvHvHBFBFBFEyHEEMGIGyEMEMGIGyEMGvEyHFHZHGIaEyFtFtFKFLFMFNFtFtFKFOFPFNFtFtFbaPAwAwAwAwAwAQAwAQAwAwAwAwAwaPFhFwFQFQFQFQFwFwFwFwFQFQFQFQFwAxBcBcCsCjBcCsAxBJAWAWAxAxCeBLBMBLBMBNBOBOBPBMBLBMBLBZBRBRBRBRBRBRBRBRBRBRAxaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaP -aPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPvGwbwbwbvGaPaPmTaPaPaPaPaPaPaPaPaPaPaPmTaPaPvGwbwbwbvGaPaPmTFRFIFIFIFSFTFUFIFIFIFRmTaPaPvGwbwbwbEyHEEMEMEMEMEMEMEMEMGvEyEyGwIjFVEyFtFtFKFWFXFNFtFtFKFYFZFNFtFtFbaPaPAwECGbAQAQCWAQAQGbEPAwaPaPFhFwFwFwFwFwFwFwFwFwFwFwFwFwFwAxBcBcCsCjBcCsAYAWAWAWBDAxAxAxAYAYAYAxDJDJAxAYAYAYAxAxAxAxAYAYAYAxAxAYAYAYAxaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaP -aPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPvGwbwbwbvGaPaPmTaPaPaPaPaPaPaPaPaPaPaPmTaPaPvGwbwbwbvGaPaPmTGdGeGfGgGhGiGhGjGkGlGdmTaPaPvGwbwbwbEyHEEMEMFrImImImImImIpEyIrFqEMIsEyFtFtFtFtFtFtFtFtFtFtFtFtFtFtFbaPaPAwECGbAQAQCWAQAQGbEPAwaPaPFhFuFvFvFvFvFwFwFwFwFvFvFvFvFuAxBcBcCsCjBcCsAYAWAWAWAWAWAWAWAWAWAWAWAWAWAWAWAWAWAYaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaP -aPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPvGwbwbwbvGaPaPmTaPaPaPaPaPaPaPaPaPaPaPmTaPaPvGwbwbwbvGaPaPmTGdGoFRGpGqGrGqGsFRGoGdmTaPaPvGwbwbwbEyEAGtEMEyIxIuIzIyIuIDEyHEEMEMIKEyFtFtFKGzGAFNFtFtFKGBGCFNFtFtFbaPaPAwGDAQAQAQCWAQAQAQGEAwaPaPFhFhFhFhFhFhFhFiFiFhFhFhFhFhFhAxBcBcCsCjBcCsAxAWAWAWAWAWAWAWAWAWAWAWAWAWAWAWAWAWAYaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaP -aPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPvHwbwbwbvHmTmTmTaPaPaPaPaPaPaPaPaPaPaPmTmTmTvHwbwbwbvHmTmTmTGdFIGkGdGFGGGHGdGfFIGdmTmTmTvHwbwbwbEyHEEMEMILFqGJEMEMGJFaIVFqEMEMIWEyFtFtFKGMGNFNFtFtFKGOGPFNFtFtFbaPaPAwECGbAQAQCWAQAQGbEPAwaPaPFhGQGRGRGRGRGQGQGQGQGSGTGTGTGUAxBcBcCsCjBcCsAxAxAWAWAWAWAWAWGVGVGVAWAWAWAWGVGVGVAYaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaP -aPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPvHwbwbwbvHaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPvHwbwbwbvHaPaPaPFRFIGkGWGXGYGZGWGfFIFRaPaPaPvHwbwbwbEyHEEMEMEMEMEMEMEMEMEMEMEMEMEMIZEyFtFtFtFtFtFtFtFtFtFtFtFtFtFtFbaPaPAwECGbAQAQCWAQAQGbEPAwaPaPFhGQGQGQGQGQGQGQGQGQGQGQGQGQGQAxBcBcBcBcBcBcAxAxAxAYAYAYAxAYAYAYAxAYAYAYAxAYAYAYAxaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaP -aPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPvHwbwbwbvHaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPvHwbwbwbvHaPaPFjFyGeGkHbGXHcGZHbGfGlFEFnaPaPvHwbwbwbEyHEEMEMEMEMEMEMEMEMEMEMEMEMEMIWEyFtFtFtFtFtFtHdHdHdHdHdHdHdHdFbaPaPHeHeHeHfHfHgHfHfHeHeHeaPaPFhHhFhHiFhHjFhGQGQFhHkFhHlFhHmAxBcBcBcBcBcBcAYaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaP -aPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPvGwbwbwbvGvGvGaPaPaPaPaPaPaPaPaPaPaPaPaPvGvGvGwbwbwbvGvGvGHnHoFIGkHpFRHqFRHrGfFIHoHnvGvGvGwbwbwbEyHEEMFrImImImJkFrImImJkEMEMEMIZEyHsHtHtFtFtHuHvHvHvTSHvHvHvHvFbaPaPHeHwHxHfHxHxHxHfHxHwHeaPaPFhHyFhHyFhHyFhGQGQFhHyFhHyFhHyAxBcBcCLCLCLCLAYaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaP -aPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPvGwbwbwbxwxxxyaPaPaPaPaPaPaPaPaPaPaPaPaPxyxxxwwbwbwbHzxxHzHAFIFIFIHBHCFIFIHBFIFIFIHAHzxxHzwbwbwbEyEAEMGvEAEAEAHEGvHDFVHEFrJmJlJnEyHHHIHJFtFtHuHKHLHLHLHLHLHLHLFbaPaPHeHxHMHNHxHxHxHNHOHxHeaPaPFhFhFhFhFhFhFhGQGQFhFhFhFhFhFhAxBcBcDgDgDgDgAYaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaP -aPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPvGwbwbwbxwxxxyaPaPaPaPaPaPaPaPaPaPaPaPaPxyxxxwwbwbwbHzxxHzHPFIFIFIFIFIFIFIFIFIFIFIHPHzxxHzwbwbwbEyJoEMFaJpJrJqFqFaJHEyJPJOEyEyEyEyEQHTHUFtFtHuHLHLHLHLHLHLHLHLFbaPaPHeHfHxHfHxHxHxHfHxHfHeaPaPFhHVGQHVGQHVGSGQGQHWHVGQHVGQHVAxBcBcBcBcBcBcAYaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaP -aPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPvGwbwbwbvGvGvGaPaPaPaPaPaPaPaPaPaPaPaPaPvGvGvGwbwbwbvGvGvGHnHXFIGkGWGfFIGkGWGfFIHYHnvGvGvGwbwbwbEyJoEMEMEMEMEMEMEMJQEyJPJRKeKeKfEyIbIcIdFtFtHLHLHLIeIfIhIgHLHLFbaPaPHeHxHxHxHxHxHxHxHxHxHeaPaPFhGQGQGQGQGQGQGQGQGQGQGQGQGQGQAxDqBcBcBcBcAYAYaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaP +aPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPvGEjEkvGwbwbwbwbElEmEnElEmEoEpEqEmEnElEmEnwbwbvGErEjEsvGwbwbElEmEnElEmEoEpEqEmEnElEmEnwbwbwbwbwbwbwbwbwbwbAQAQAQAQDCAQAQDCAQAQAQClAwClAQAQAQAQAQAQAQAQAQAQAQAQClAwAQAQEtCWCWCWEhEuEvCWCWCWEwAQAQAwCmAQAQAQAQAQAQAQAQAQAQAQAQCmAxBYBYAxAxAxAxAxAWAWAWBDAxAxAxAYAYAYAxBEBEAxAYAYAYAxAxAxAxAYAYAYAxAxAYAYAYAxaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaP +aPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPvGwbwbwbwbwbwbwbCFxxCGCFxxCHDfCJxxCGCFxxCGwbwbwbwbwbwbwbwbwbCFxxCGCFxxCHDfCJxxCGCFxxCGwbwbwbwbwbwbEyEyEzEzEyEAEAEAEyEzEzEyEyEAEAEyEyEaEaEaEaEaEaAQAQEaEaEaEaEaEaAwAQAQEDEECWCWCWCWCWCWCWEFEGAQAQAwEaEaEaEaEaEaAQAQEaEaEaEaEaEaAxDqDqPfOUSmPsAYBJAWAWAxAxBKBLBMBLBMBNBOBOBPBMBLBMBLBQBRBRBRBRBRBRBRBRBRBRAxaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaP +aPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPvGwbwbwbwbwbwbwbCFxxCGCFxxCHCICJxxCGCFxxCGwbwbwbwbwbwbwbwbwbCFxxCGCFxxCHCICJxxCGCFxxCGwbwbwbwbwbwbEyEREMEMFaFpFoFoFqEMFrEyUXUZUYVaEyCSCNCOCPCPEaAQAQEaCZETCPCOCOAwAQAQAQEUEVCWCWCWCWCWEFCVAQAQAQAwEWCOCNCOCPEaAQAQEaCOCPCOEXETAxDqDqDqDqDqDqAYBJAWAWAxBKBZCaCaCaCaCbCcCcCdCaCaCaCbCeBQCfCfCfCfCfCfCfCfCfAxaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaP +aPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPvGvGwbEYEYwbwbwbvHvHvHvHvGvGvGvGvGvHvHvHvHwbwbwbCgBUCrwbwbwbvHvHvHvHvGvGvGvGvGvHvHvHvHwbwbwbBTBUwbEzEMEMEMEMEMEMEMEMEMGvEyVbEMEZVcEyFbEBEBEBEBFbFfFfFbEBEBEBEBFbFbAQAQAQAQEDCzFgFgFgCBEGAQAQAQAQFhFhFhFhFhFhFhFiFiFhFhFhFhFhFhAxDqDqDqDqDqDqAxBJAWAWAYCnCoCcCcCcCcCcCcCcCcCcCcCcCcCpCnCqCqCqCqCqCqCqCqCqAxaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaP +aPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPvHwbBUEYwbwavHvHaPaPaPaPaPaPaPaPaPaPaPvHvHwawbCiBUBVwbwavHvHaPaPFjFkFlFlFlFmFnaPaPvHvHwawbCgBUBVEzEMEMGIGyEMEMGIGyEMGvEyVdEMEMVeEyFsFtFtFtFtFtFtFtFtFtFtFtFtFsFbAwClAQAQAQAQAQAQAQAQAQAQAQClAwFhFuFvFvFvFvFwFwFwFwFvFvFvFvFuAxDqDqCsCjDqCsAYBJAWAWAYCECoCcCcCcCcCcCcCcCcCcCcCcCcCpCECfCfCfCfCfCfCfCfCfAxaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaP +aPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPvHwbwbCrwbvHvHmTaPaPaPaPaPaPaPaPaPaPaPmTvHvHwbCiBUwbwbvHvHmTaPFjFyFzFAFBFCFDFEFnaPmTvHvHwbwbBUwbEyJkEMGIGyEMEMGIGyEMGvEyVfEMEZVcEyFtFtFtFtFtFtFtFtFtFtFtFtFtFtFbAwAwAQAQAQAQAQAQAQAQAQAQAQAwAwFhFwFwFwFwFwFwFwFwFwFwFwFwFwFwAxDqDqCsCjDqCsAYBJAWAWAxCeBQDcDcDcDcDdCcCcDeDcDcDcDdBKBZCqCqCqCqCqCqCqCqCqAxaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaP +aPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPvHBFBFBFvHvHaPmTaPaPaPaPaPaPaPaPaPaPaPmTaPvHvHBFBFBFvHvHaPmTFjFyFGFHFIFHFIFHFJFEFnmTaPvHvHBFBFBFEyHEEMGIGyEMEMGIGyEMGvEyVgViVhVjEyFtFtFKFLFMFNFtFtFKFOFPFNFtFtFbaPAwAwAwAwAwAQAwAQAwAwAwAwAwaPFhFwFQFQFQFQFwFwFwFwFQFQFQFQFwAxDqDqCsCjDqCsAxBJAWAWAxAxCeBLBMBLBMBNBOBOBPBMBLBMBLBZBRBRBRBRBRBRBRBRBRBRAxaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaP +aPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPvGwbwbwbvGaPaPmTaPaPaPaPaPaPaPaPaPaPaPmTaPaPvGwbwbwbvGaPaPmTFRFIFIFIFSFTFUFIFIFIFRmTaPaPvGwbwbwbEyHEEMEMEMEMEMEMEMEMGvEyEyVbVkFVEyFtFtFKFWFXFNFtFtFKFYFZFNFtFtFbaPaPAwECGbAQAQCWAQAQGbEPAwaPaPFhFwFwFwFwFwFwFwFwFwFwFwFwFwFwAxDqDqCsCjDqCsAYAWAWAWBDAxAxAxAYAYAYAxDJDJAxAYAYAYAxAxAxAxAYAYAYAxAxAYAYAYAxaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaP +aPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPvGwbwbwbvGaPaPmTaPaPaPaPaPaPaPaPaPaPaPmTaPaPvGwbwbwbvGaPaPmTGdGeGfGgGhGiGhGjGkGlGdmTaPaPvGwbwbwbEyHEEMEMFrImImImImImIpEyIrFqFaIsEyFtFtFtFtFtFtFtFtFtFtFtFtFtFtFbaPaPAwECGbAQAQCWAQAQGbEPAwaPaPFhFuFvFvFvFvFwFwFwFwFvFvFvFvFuAxDqDqCsCjDqCsAYAWAWAWAWAWAWAWAWAWAWAWAWAWAWAWAWAWAYaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaP +aPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPvGwbwbwbvGaPaPmTaPaPaPaPaPaPaPaPaPaPaPmTaPaPvGwbwbwbvGaPaPmTGdGoFRGpGqGrGqGsFRGoGdmTaPaPvGwbwbwbEyEAGtEMEyIxIuIzIyIuIDEyHEEMEMIKEyFtFtFKGzGAFNFtFtFKGBGCFNFtFtFbaPaPAwGDAQAQAQCWAQAQAQGEAwaPaPFhFhFhFhFhFhFhFiFiFhFhFhFhFhFhAxDqDqCsCjDqCsAxAWAWAWAWAWAWAWAWAWAWAWAWAWAWAWAWAWAYaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaP +aPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPvHwbwbwbvHmTmTmTaPaPaPaPaPaPaPaPaPaPaPmTmTmTvHwbwbwbvHmTmTmTGdFIGkGdGFGGGHGdGfFIGdmTmTmTvHwbwbwbEyHEEMEMILFqGJEMEMGJFaIVFqEMEMIWEyFtFtFKGMGNFNFtFtFKGOGPFNFtFtFbaPaPAwECGbAQAQCWAQAQGbEPAwaPaPFhGQGRGRGRGRGQGQGQGQGSGTGTGTGUAxDqDqCsCjDqCsAxAxAWAWAWAWAWAWGVGVGVAWAWAWAWGVGVGVAYaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaP +aPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPvHwbwbwbvHaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPvHwbwbwbvHaPaPaPFRFIGkGWGXGYGZGWGfFIFRaPaPaPvHwbwbwbEyHEEMEMEMEMEMEMEMEMEMEMEMEMEMIZEyFtFtFtFtFtFtFtFtFtFtFtFtFtFtFbaPaPAwECGbAQAQCWAQAQGbEPAwaPaPFhGQGQGQGQGQGQGQGQGQGQGQGQGQGQAxDqDqDqDqDqDqAxAxAxAYAYAYAxAYAYAYAxAYAYAYAxAYAYAYAxaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaP +aPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPvHwbwbwbvHaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPvHwbwbwbvHaPaPFjFyGeGkHbGXHcGZHbGfGlFEFnaPaPvHwbwbwbEyHEEMEMEMEMEMEMEMEMEMEMEMEMEMIWEyFtFtFtFtFtFtHdHdHdHdHdHdHdHdFbaPaPHeHeHeHfHfHgHfHfHeHeHeaPaPFhHhFhHiFhHjFhGQGQFhHkFhHlFhHmAxDqDqDqDqDqDqAYaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaP +aPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPvGwbwbwbvGvGvGaPaPaPaPaPaPaPaPaPaPaPaPaPvGvGvGwbwbwbvGvGvGHnHoFIGkHpFRHqFRHrGfFIHoHnvGvGvGwbwbwbEyHEEMFrImImImJkFrImImJkEMEMEMIZEyHsHtHtFtFtHuHvHvHvTSHvHvHvHvFbaPaPHeHwHxHfHxHxHxHfHxHwHeaPaPFhHyFhHyFhHyFhGQGQFhHyFhHyFhHyAxDqDqCLCLCLCLAYaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaP +aPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPvGwbwbwbxwxxxyaPaPaPaPaPaPaPaPaPaPaPaPaPxyxxxwwbwbwbHzxxHzHAFIFIFIHBHCFIFIHBFIFIFIHAHzxxHzwbwbwbEyEAEMGvEAEAEAHEGvHDFVHEFrJmJlJnEyHHHIHJFtFtHuHKHLHLHLHLHLHLHLFbaPaPHeHxHMHNHxHxHxHNHOHxHeaPaPFhFhFhFhFhFhFhGQGQFhFhFhFhFhFhAxDqDqDgDgDgDgAYaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaP +aPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPvGwbwbwbxwxxxyaPaPaPaPaPaPaPaPaPaPaPaPaPxyxxxwwbwbwbHzxxHzHPFIFIFIFIFIFIFIFIFIFIFIHPHzxxHzwbwbwbEyJoEMFaJpJrJqFqFaJHEyJPJOEyEyEyEyEQHTHUFtFtHuHLHLHLHLHLHLHLHLFbaPaPHeHfHxHfHxHxHxHfHxHfHeaPaPFhHVGQHVGQHVGSGQGQHWHVGQHVGQHVAxDqDqDqDqDqDqAYaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaP +aPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPvGwbwbwbvGvGvGaPaPaPaPaPaPaPaPaPaPaPaPaPvGvGvGwbwbwbvGvGvGHnHXFIGkGWGfFIGkGWGfFIHYHnvGvGvGwbwbwbEyJoEMEMEMEMEMEMEMJQEyJPJRKeKeKfEyIbIcIdFtFtHLHLHLIeIfIhIgHLHLFbaPaPHeHxHxHxHxHxHxHxHxHxHeaPaPFhGQGQGQGQGQGQGQGQGQGQGQGQGQGQAxSpDqDqDqDqAYAYaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaP aPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPvHwbwbwbvHaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPvHwbwbwbvHaPaPGWGfFIGkIiGfFIGkIiGfFIGkGWaPaPvHwbwbwbEyJoEMEMEMHQHREMEMKgEyJPEMIkIlKqEyFbFbFbFbFbFbFbFbFbFbFbFbFbFbFbHeHeHeHxHxHxHxHxHxHxHxHxHeHeHeFhInGQInGQInGSGQGQHWInGQInGQInAxAYAYAYAYAYAYaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaP aPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPvHwbwbwbvHmTmTmTmTmTmTmTmTmTmTmTmTmTmTmTmTmTvHwbwbIovHaPaPIiGfFIGkIiGfFTGkIiGfFIGkIiaPaPvHwbwbwbEyKCEMEMEMEMEMEMEMKDEyJPEMEMIqKqEyKFKEKEKEKJHeHxHxHxHxHxHxHxHxHxHxHxHeHeItHeHeHxHeHeItHeHeHxHxHeHeHeFhFhFhFhFhFhFhFhFhFhFhFhFhaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaP aPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPvHwbwbwbvHaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPvHwbwbwbvHaPaPHbGfFIGkIiGfFIGkIiGfFIGkHbaPaPvHwbwbwbEyKKEMEMEMIvIwEMEMKLEyKPKOEMKQKUEyKVEMEMEMKWHeHxHeHeHeHeIAHeHeHeHxHxHxHxHxHxHeHxHeHxHxHxHxHxHxHxHxHeaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaP @@ -2648,13 +2666,13 @@ aRmjmjmjmjmjmjmjmjmjmjOvOvOvOvOvOgOwOxOyOgOvOvOvOvOvOvOvOvOvOvOvmjmjaRmjmjmjmjmd aRmjmjmjmjmjmjmjmjmjmjOvOvOvOvOvOgOIOxOxOgOvOvOvOvOvOvOvOvOvOvOvmjmjaRmjmjmjmjmdaPaPaPaPaPaPaPaPaPaPaPMJMuMgMgMgMfOzOzOzOAOBOBOBOAOCOCOCOAODODODMfMPMPMPMfOJOJOJOJOJOJOJOJOJOJOJMgMfMLMPMPMLMfOKOLOqOqOqMfOtMPMPOtMPOtMfaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaRNRNSNSNSNSNSNSNSNSNSNSNSNSNSNSNSNSNSNSNSNRaR aRmjmjmjmjmjmjOvOvOvOgOgOgOgOvOgOgOgOgOMOgOgOgOgOgOgOgOvOvOvOvOvmjmjaRmjmjmjmjmdaPaPaPaPaPaPaPaPaPaPaPMJMuMgMgMgMfOzOzOzOAOBOBOBOAOCOCOCOAODODODMfMPMPMPMfOJOJOJOJOJOJOJOJOJOJOJOJMfONNLNLONMfNBNCOONBNCMfOGMPOtMBLZLZOuaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaRNRNSNSNSNSNSNSNSNSNSNSNSNSNSNSNSNSNSNSNSNRaR aRmjmjmjOvOvOvOvOPOxOxOxOxOxOxOxOxOxOxOxOxOxOxOxOxOxOgOvOvOvOvOvmjmjaRmjmjmjmjmdaPaPaPaPaPaPaPaPaPaPaPMJMuMgMgMgMfOzOzOzOAOBOBOBOAOCOCOCOAODODODMfMPMPMPMfOJOJOJOJOJOJOJOJOJOJOJOJMfORORORORMfOSOqOqOqOSMfOtMPOGMfaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaRNRNSNSNSNSNSNSNSNSNSNSNSNSNSNSNSNSNSNSNSNRaR -aRmjmjmjOvOvOxOPOPOPOxOxOxOxOxOxOxOxOxOxOxOxOxOxOxOxOgOUOVOvOvOvmjmjaRmjmjmjmjmdaPaPaPaPaPaPaPaPaPaPaPNdMuMgOWOXMfOzOzOzOAOBOBOBOAOCOCOCOAODODODMfOYOZPaMfOJOJOJOJOJOJOJOJOJOJOJOJMAMBNBNCMBMDOqOqOqOqOqMfOGMPOtMfaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaRNRNSNSNSNSNSNSNSNSNSNSNSNSNSNSNSNSNSNSNSNRaR +aRmjmjmjOvOvOxOPOPOPOxOxOxOxOxOxOxOxOxOxOxOxOxOxOxOxOgSyOVOvOvOvmjmjaRmjmjmjmjmdaPaPaPaPaPaPaPaPaPaPaPNdMuMgOWOXMfOzOzOzOAOBOBOBOAOCOCOCOAODODODMfOYOZPaMfOJOJOJOJOJOJOJOJOJOJOJOJMAMBNBNCMBMDOqOqOqOqOqMfOGMPOtMfaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaRNRNSNSNSNSNSNSNSNSNSNSNSNSNSNSNSNSNSNSNSNRaR aRmjmjmjOvOvOPOPOPOvOvOvOgOgOgOgOMOgOgOgOgOMOgOxOxOxOMPbPcOvOvOvmjmjaRmjmjmjmjmdaPaPaPaPaPaPaPaPaPaPaPOhLZLZLZLZNiLXLXLXNiLXLXLXNiLXLXLXNiLXLXLXNiMeMeMeMfOJOJOJOJOJOJOJOJOJOJOJMgMfaPaPaPaPMfOSOqOSOqOSMfOtMPPdOuaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaRNRNSNSNSNSNSNSNSNSNSNSNSNSNSNSNSNSNSNSNSNRaR -aRmjmjmjOvOPOPOvOvOvOvOvOvOvOvOgOxOxOIOgPeOxOgOxOxOxOMPbPfOvOvOgmjmjaRmjmjmjmjmdaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPOhLXLXLXLXLXLXLXLXLXLXLXLXOuaPaPaPaPOhLZLZLZLZLZNiLZLZOuaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaRNRNSNSNSNSNSNSNSNSNSNSNSNSNSNSNSNSNSNSNSNRaR +aRmjmjmjOvOPOPOvOvOvOvOvOvOvOvOgOxOxOIOgPeOxOgOxOxOxOMPbSUOvOvOgmjmjaRmjmjmjmjmdaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPOhLXLXLXLXLXLXLXLXLXLXLXLXOuaPaPaPaPOhLZLZLZLZLZNiLZLZOuaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaRNRNSNSNSNSNSNSNSNSNSNSNSNSNSNSNSNSNSNSNSNRaR aRmjmjmjOvOPOvOvOvmjmjOvOgOgOgOgPgOxOwOgPgOwOgOxOxOxOgPbPbPbPhOgmjmjaRmjmjmjaPmdaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaRNRNSNSNSNSNSNSNSNSNSNSNSNSNSNSNSNSNSNSNSNRaR aRmjmjmjOvOPOPOvmjmjmjOvPjPkPkOgOgOgOgOgOgOgOgOxOxOxOgPbPbPbPlOgmjmjaRmjmjmjaPmdaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaRNRNSNSNSNSNSNSNSNSNSNSNSNSNSNSNSNSNSNSNSNRaR aRmjOvOPOPOPOPOvOvmjmjOvPmPnPmOMOxOxOxOxOxOxOxOxOxOxOgPoPpPqOgOgmjmjaRmjmjmjaPmdaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRaR -aRmjPrOPOPOPOPOPOvmjmjOgPsPmPmOMOxOxOxOxOxOxOxOxOxOxOgOvOvOvOvOvmjmjaRmjmjmjaPmdaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaRaRaRaRaRaRaRaRaRaRaRaRaRaRaRaRaRaRaRaRaRaRaR +aRmjPrOPOPOPOPOPOvmjmjOgPyPmPmOMOxOxOxOxOxOxOxOxOxOxOgOvOvOvOvOvmjmjaRmjmjmjaPmdaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaRaRaRaRaRaRaRaRaRaRaRaRaRaRaRaRaRaRaRaRaRaRaR aRmjPuPvPwOPPtOPOPmjmjOgPyPzOgOgOgOgOgOgOgOgOgOgOMOgOgOgOgOgOgOgOgOgOgmjmjaPaPmdaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaP aRmjPAOPPwOPPwOPOPmjmjOvOvOvOgOxOxOxOxOxOxOgPCPDPDPDPEOgOxOxOxOxOxOxOgmjaPaPaPmdaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaP aRmjOvOPPwOPPxOPOPmjmjaPaPmjOgOxOwOxOxOxOxOgPDPDPHPDPDOgOxOxOxOxOwOxOgmjaPaPaPmdaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaP @@ -2678,8 +2696,8 @@ aRmjmjmjaPaPaPaPaPaPaPaPaPPYPFTFRqRqPFRrRsRrQXRtQlRvQXRwRxRyPFRzRATGPFPZaPaPaPmd aRmjmjmjaPaPaPaPmjmjaPaPaPREPFRFRFPFPFRrRrRrQZRtRkRvQZRyRyRGPFPFRFRFPFRHaPaPaPmdaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPRCRIRJRKRLRMRNRCROTHRQRCRRRSRSRTRCaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaP aRmjmjmjaPaPaPaPmjmjaPaPaPaPRERURURHPFRVQnRrRhRXQARXRhRyRyRYPFRERURURHaPaPaPaPmdaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPRCRKRKRKRKRKRKRZSaSbSaScRSRSRSSdRCaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaP aRmjmjmjaPaPaPaPmjmjaPaPaPaPaPaPaPaPPFRrRrRrPFPFQUPFPFSeRySfPFaPaPaPaPaPaPaPaPmdaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPRCSgSgRKRKRKShRCSaSaSiRCRCRCRCRCRCaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaP -aRmjmjmjaPaPaPaPaPaPaPaPaPaPaPaPaPaPPFRrRrSjPFSkQASlPFRyRySmPFaPaPaPaPaPaPaPaPmdaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPRCRKRKRKRKRKSnRCSoSoEKRCSqSrSsStRCaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaP -aRmjmjmjmjaPaPaPaPaPaPaPaPaPaPaPaPaPPFPFSuRrPFSvQASwPFSxSyPFPFaPaPaPaPaPaPaPaPmdaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPRCSzSzRKRKRKSARCSoSoSoSBSoSoSoSCRCaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaP +aRmjmjmjaPaPaPaPaPaPaPaPaPaPaPaPaPaPPFRrRrSjPFSkQASlPFRyRyTIPFaPaPaPaPaPaPaPaPmdaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPRCRKRKRKRKRKSnRCSoSoEKRCSqSrSsStRCaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaP +aRmjmjmjmjaPaPaPaPaPaPaPaPaPaPaPaPaPPFPFSuRrPFSvQASwPFSxTJPFPFaPaPaPaPaPaPaPaPmdaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPRCSzSzRKRKRKSARCSoSoSoSBSoSoSoSCRCaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaP aRmjmjmjmjmjaPaPaPaPaPaPaPaPaPaPaPaPREPFPFPFPFSDSESFPFPFPFPFRHaPaPaPaPaPaPaPaPmdaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPRCRKRKRKRKRKSGRCSHSISJRCSKSLSMStRCaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaP aRmjmjmjmjmjaPaPaPaPmjmjaPaPaPaPaPaPaPaPREPFRFRFRFRFRFPFRHaPaPaPaPaPaPaPaPaPaPmdaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPRCRKRKRKRKRKShRCRCRCRCRCRCRCRCRCRCaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaP aRmjmjmjmjmjaPaPaPaPmjmjmjaPaPaPaPaPaPaPaPRERURURURURURHaPaPaPaPaPaPaPaPaPaPaPmdaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPRCRKSNSOSPSQRKSRSSSTSRTkSVSWSWSVRCaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaP diff --git a/maps/polaris-3.dmm b/maps/polaris-3.dmm index c24b4c0edba..3e4489a8977 100644 --- a/maps/polaris-3.dmm +++ b/maps/polaris-3.dmm @@ -40,7 +40,7 @@ "aN" = (/obj/machinery/light_switch{pixel_x = 27},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/derelict/ship) "aO" = (/obj/machinery/portable_atmospherics/powered/scrubber,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/derelict/ship) "aP" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/turf/simulated/shuttle/plating,/area/derelict/ship) -"aQ" = (/obj/machinery/light{dir = 1},/obj/machinery/sleeper{dir = 8},/obj/effect/decal/remains/human,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/derelict/ship) +"aQ" = (/obj/machinery/light{dir = 1},/obj/machinery/sleeper/map{dir = 8},/obj/effect/decal/remains/human,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/derelict/ship) "aR" = (/obj/machinery/door/window,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/derelict/ship) "aS" = (/obj/machinery/light{icon_state = "tube1"; dir = 8},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/derelict/ship) "aT" = (/obj/structure/lattice,/turf/space,/area/space) @@ -91,7 +91,7 @@ "bM" = (/turf/simulated/shuttle/plating,/turf/simulated/shuttle/wall{icon_state = "swall_c"; dir = 1},/area/derelict/ship) "bN" = (/obj/item/trash/cheesie,/turf/space,/area/space) "bO" = (/obj/machinery/door/blast/regular{id = "oldship_gun"; name = "Pod Bay Door"},/turf/simulated/shuttle/plating,/area/derelict/ship) -"bP" = (/obj/machinery/mass_driver{dir = 8; icon_state = "mass_driver"; id = "oldship_gun"},/turf/simulated/shuttle/plating,/area/derelict/ship) +"bP" = (/obj/machinery/mass_driver/map{dir = 8; icon_state = "mass_driver"; id = "oldship_gun"},/turf/simulated/shuttle/plating,/area/derelict/ship) "bQ" = (/obj/machinery/door/airlock/glass,/turf/simulated/shuttle/plating,/area/derelict/ship) "bR" = (/obj/machinery/door/airlock/glass{name = "Pod Bay"},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/derelict/ship) "bS" = (/obj/effect/decal/remains/human,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/derelict/ship) @@ -204,7 +204,7 @@ "dV" = (/obj/structure/window/reinforced{dir = 1},/turf/space,/area/tcomsat) "dW" = (/obj/machinery/light{dir = 8},/obj/structure/table/standard,/obj/item/device/multitool,/obj/structure/sign/electricshock{pixel_x = -32},/turf/simulated/floor/tiled/dark,/area/tcommsat/computer) "dX" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/tiled/dark,/area/tcommsat/computer) -"dY" = (/obj/machinery/atmospherics/unary/freezer{dir = 2; icon_state = "freezer_1"; set_temperature = 73; use_power = 1},/turf/simulated/floor/tiled/dark,/area/tcommsat/computer) +"dY" = (/obj/machinery/atmospherics/unary/freezer/map{dir = 2; icon_state = "freezer_1"; set_temperature = 73; use_power = 1},/turf/simulated/floor/tiled/dark,/area/tcommsat/computer) "dZ" = (/obj/machinery/atmospherics/pipe/simple/hidden{dir = 5; icon_state = "intact"; tag = "icon-intact-f (NORTHEAST)"},/obj/machinery/airlock_sensor/airlock_exterior{frequency = 1381; id_tag = "server_access_ex_sensor"; master_tag = "server_access_airlock"; pixel_x = 25; pixel_y = 22},/turf/simulated/floor/tiled,/area/tcommsat/computer) "ea" = (/obj/machinery/door/airlock/maintenance_hatch{frequency = 1381; icon_state = "door_locked"; id_tag = "server_access_outer"; locked = 1; name = "Telecoms Server Access"; req_access = list(61)},/obj/machinery/atmospherics/pipe/simple/hidden{tag = "icon-intact (EAST)"; icon_state = "intact"; dir = 4},/turf/simulated/floor/tiled,/area/tcommsat/chamber) "eb" = (/obj/machinery/airlock_sensor{frequency = 1381; id_tag = "server_access_sensor"; pixel_x = 12; pixel_y = 25},/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 8; frequency = 1381; id_tag = "server_access_pump"},/obj/machinery/embedded_controller/radio/airlock/advanced_airlock_controller{frequency = 1381; id_tag = "server_access_airlock"; name = "Server Access Airlock"; pixel_x = 0; pixel_y = 25; tag_airpump = "server_access_pump"; tag_chamber_sensor = "server_access_sensor"; tag_exterior_door = "server_access_outer"; tag_exterior_sensor = "server_access_ex_sensor"; tag_interior_door = "server_access_inner"; tag_interior_sensor = "server_access_in_sensor"; tag_secure = 1},/turf/simulated/floor/plating,/area/tcommsat/chamber) @@ -220,7 +220,7 @@ "el" = (/obj/machinery/door/airlock/maintenance_hatch{frequency = 1381; icon_state = "door_locked"; id_tag = "server_access_inner"; locked = 1; name = "Telecoms Server Access"; req_access = list(61)},/turf/simulated/floor/plating,/area/tcommsat/chamber) "em" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/tiled,/area/tcomsat) "en" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/lattice,/turf/space,/area/tcomsat) -"eo" = (/obj/machinery/exonet_node{anchored = 1},/turf/simulated/floor/bluegrid{name = "Mainframe Base"; nitrogen = 100; oxygen = 0; temperature = 80},/area/tcommsat/chamber) +"eo" = (/obj/machinery/exonet_node/map{anchored = 1},/turf/simulated/floor/bluegrid{name = "Mainframe Base"; nitrogen = 100; oxygen = 0; temperature = 80},/area/tcommsat/chamber) "ep" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 5},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/tiled,/area/tcomsat) "eq" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/lattice,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 10},/turf/space,/area/tcomsat) "er" = (/turf/simulated/floor/bluegrid{name = "Mainframe Base"; nitrogen = 100; oxygen = 0; temperature = 80},/area/tcommsat/chamber) @@ -377,7 +377,7 @@ "hv" = (/obj/machinery/light{dir = 8},/obj/machinery/atmospherics/unary/vent_pump/on{dir = 4},/turf/simulated/floor/tiled/dark,/area/tcommsat/entrance) "hx" = (/obj/machinery/power/terminal{dir = 4},/obj/structure/cable/yellow,/obj/structure/closet/emcloset,/turf/simulated/floor/plating,/area/tcommsat/powercontrol) "hy" = (/obj/machinery/power/smes/buildable{charge = 2.5e+006; input_attempt = 1; input_level = 250000; inputting = 1; output_level = 250000; RCon_tag = "Telecommunications Satellite"},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/simulated/floor/plating,/area/tcommsat/powercontrol) -"hz" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/structure/table/standard,/obj/machinery/recharger,/turf/simulated/floor/plating,/area/tcommsat/powercontrol) +"hz" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/structure/table/standard,/obj/machinery/recharger/map,/turf/simulated/floor/plating,/area/tcommsat/powercontrol) "hA" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/tiled/dark,/area/tcommsat/entrance) "hB" = (/obj/structure/sign/electricshock,/turf/simulated/wall/r_wall,/area/tcommsat/powercontrol) "hC" = (/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/machinery/power/apc{dir = 4; name = "east bump"; pixel_x = 24},/turf/simulated/floor/tiled/dark,/area/tcommsat/entrance) @@ -388,7 +388,7 @@ "hJ" = (/obj/item/device/radio/intercom{dir = 4; name = "Station Intercom (General)"; pixel_x = 21; pixel_y = 0},/turf/simulated/floor/tiled/dark,/area/tcommsat/entrance) "hM" = (/turf/space,/area/syndicate_station/commssat) "hN" = (/turf/simulated/wall/r_wall,/area/AIsattele) -"hP" = (/obj/machinery/teleport/station,/obj/structure/cable{icon_state = "0-2"; d2 = 2},/turf/simulated/floor/airless,/area/AIsattele) +"hP" = (/obj/machinery/teleport/station/map,/obj/structure/cable{icon_state = "0-2"; d2 = 2},/turf/simulated/floor/airless,/area/AIsattele) "hQ" = (/turf/simulated/floor/airless,/area/AIsattele) "hR" = (/obj/item/weapon/material/shard{icon_state = "medium"},/turf/simulated/floor/airless,/area/AIsattele) "hS" = (/obj/structure/cable,/turf/simulated/floor/airless,/area/AIsattele) @@ -407,10 +407,10 @@ "if" = (/obj/structure/closet/crate,/obj/item/clothing/glasses/night,/turf/simulated/floor/tiled/dark,/area/tcommsat/entrance) "ig" = (/obj/structure/closet/crate,/obj/item/device/aicard,/obj/item/device/multitool,/obj/machinery/camera/network/telecom{c_tag = "Telecoms Entrance South"; dir = 1},/turf/simulated/floor/tiled/dark,/area/tcommsat/entrance) "ih" = (/obj/machinery/light{dir = 4},/obj/structure/closet/emcloset,/obj/machinery/firealarm{dir = 1; pixel_y = -24},/turf/simulated/floor/tiled/dark,/area/tcommsat/entrance) -"ii" = (/obj/machinery/teleport/station,/turf/simulated/floor/tiled/dark,/area/tcommsat/entrance) +"ii" = (/obj/machinery/teleport/station/map,/turf/simulated/floor/tiled/dark,/area/tcommsat/entrance) "ij" = (/obj/machinery/computer/teleporter,/turf/simulated/floor/tiled/dark,/area/tcommsat/entrance) -"ik" = (/obj/machinery/teleport/hub,/turf/simulated/floor/tiled/dark,/area/tcommsat/entrance) -"il" = (/obj/machinery/teleport/hub,/turf/simulated/floor/airless,/area/AIsattele) +"ik" = (/obj/machinery/teleport/hub/map,/turf/simulated/floor/tiled/dark,/area/tcommsat/entrance) +"il" = (/obj/machinery/teleport/hub/map,/turf/simulated/floor/airless,/area/AIsattele) "im" = (/obj/item/weapon/circuitboard/teleporter,/turf/space,/area/space) (1,1,1) = {" diff --git a/maps/polaris-4.dmm b/maps/polaris-4.dmm index 10afa2acc50..3dfb0f3d746 100644 --- a/maps/polaris-4.dmm +++ b/maps/polaris-4.dmm @@ -9,8 +9,8 @@ "ai" = (/obj/item/weapon/circuitboard/teleporter,/turf/simulated/floor/airless,/area/mine/explored) "aj" = (/obj/structure/girder,/turf/simulated/mineral/floor/ignore_mapgen,/area/mine/explored) "ak" = (/obj/structure/frame{frame_type = "computer"; icon_state = "computer_0"},/turf/simulated/floor/airless,/area/mine/explored) -"al" = (/obj/machinery/teleport/station,/turf/simulated/floor/airless,/area/mine/explored) -"am" = (/obj/machinery/teleport/hub,/turf/simulated/floor/airless,/area/mine/explored) +"al" = (/obj/machinery/teleport/station/map,/turf/simulated/floor/airless,/area/mine/explored) +"am" = (/obj/machinery/teleport/hub/map,/turf/simulated/floor/airless,/area/mine/explored) "an" = (/turf/simulated/floor/tiled/white/airless,/area/mine/explored) "ao" = (/obj/structure/door_assembly/door_assembly_med,/turf/simulated/mineral/floor/ignore_mapgen,/area/mine/explored) "ap" = (/obj/machinery/optable,/turf/simulated/floor/tiled/white/airless,/area/mine/explored) @@ -60,7 +60,7 @@ "bi" = (/obj/machinery/atmospherics/unary/vent_pump/on,/turf/simulated/floor/tiled,/area/outpost/engineering/hallway) "bj" = (/obj/structure/cable{d2 = 2; icon_state = "0-2"; pixel_y = 0},/obj/machinery/power/apc{dir = 8; name = "west bump"; pixel_x = -24},/turf/simulated/floor/tiled,/area/outpost/engineering/storage) "bk" = (/obj/machinery/atmospherics/unary/vent_scrubber/on,/turf/simulated/floor/tiled,/area/outpost/engineering/storage) -"bl" = (/obj/machinery/autolathe,/obj/machinery/light{icon_state = "tube1"; dir = 4},/turf/simulated/floor/tiled,/area/outpost/engineering/storage) +"bl" = (/obj/machinery/autolathe/map,/obj/machinery/light{icon_state = "tube1"; dir = 4},/turf/simulated/floor/tiled,/area/outpost/engineering/storage) "bm" = (/obj/machinery/atmospherics/pipe/simple/visible/cyan{tag = "icon-intact (SOUTHEAST)"; icon_state = "intact"; dir = 6},/turf/simulated/floor,/area/outpost/engineering/atmospherics) "bn" = (/obj/machinery/atmospherics/pipe/manifold/visible/cyan{dir = 1},/turf/simulated/floor,/area/outpost/engineering/atmospherics) "bo" = (/obj/machinery/firealarm{dir = 2; pixel_y = 24},/obj/machinery/atmospherics/binary/pump/on{dir = 4},/turf/simulated/floor,/area/outpost/engineering/atmospherics) @@ -87,7 +87,7 @@ "bJ" = (/obj/structure/table/rack,/obj/random/tech_supply,/obj/random/tech_supply,/obj/random/tech_supply,/obj/random/tech_supply,/obj/item/stack/cable_coil/yellow,/obj/item/stack/cable_coil,/obj/item/weapon/module/power_control,/obj/item/weapon/module/power_control,/obj/item/clothing/gloves/yellow,/turf/simulated/floor/tiled,/area/outpost/engineering/storage) "bK" = (/obj/structure/table/rack,/obj/random/tech_supply,/obj/random/tech_supply,/obj/random/tech_supply,/obj/random/tech_supply,/obj/item/stack/cable_coil/yellow,/obj/item/weapon/storage/box/lights/mixed,/turf/simulated/floor/tiled,/area/outpost/engineering/storage) "bL" = (/obj/structure/dispenser/oxygen,/turf/simulated/floor/tiled,/area/outpost/engineering/storage) -"bM" = (/obj/machinery/recharge_station,/turf/simulated/floor,/area/outpost/engineering/atmospherics) +"bM" = (/obj/machinery/recharge_station/map,/turf/simulated/floor,/area/outpost/engineering/atmospherics) "bN" = (/obj/structure/extinguisher_cabinet{pixel_x = 0; pixel_y = -28},/obj/machinery/atmospherics/pipe/simple/visible/cyan{tag = "icon-intact (NORTHEAST)"; icon_state = "intact"; dir = 5},/turf/simulated/floor,/area/outpost/engineering/atmospherics) "bO" = (/obj/machinery/atmospherics/binary/pump/on{dir = 8},/turf/simulated/floor,/area/outpost/engineering/atmospherics) "bP" = (/obj/machinery/atmospherics/pipe/simple/visible/cyan{tag = "icon-intact (SOUTHEAST)"; icon_state = "intact"; dir = 6},/obj/machinery/meter,/turf/simulated/floor,/area/outpost/engineering/atmospherics) @@ -243,7 +243,7 @@ "eJ" = (/obj/machinery/door/airlock/external{frequency = 1379; icon_state = "door_locked"; id_tag = "eoutpost_solar_inner"; locked = 1; name = "Solar Access"},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/cyan,/turf/simulated/floor,/area/outpost/engineering/solars) "eK" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/structure/grille,/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/outpost/engineering/solars) "eL" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/structure/grille,/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/outpost/engineering/solars) -"eM" = (/obj/structure/table/standard,/obj/machinery/microwave,/turf/simulated/floor/tiled,/area/outpost/engineering/kitchen) +"eM" = (/obj/structure/table/standard,/obj/machinery/microwave/map,/turf/simulated/floor/tiled,/area/outpost/engineering/kitchen) "eN" = (/obj/structure/table/standard,/obj/item/weapon/storage/box/donkpockets,/obj/structure/extinguisher_cabinet{pixel_x = 0; pixel_y = -28},/obj/item/weapon/reagent_containers/food/drinks/bottle/small/beer,/turf/simulated/floor/tiled,/area/outpost/engineering/kitchen) "eO" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/outpost/engineering/hallway) "eP" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/outpost/engineering/hallway) @@ -260,7 +260,7 @@ "fa" = (/obj/structure/closet/emcloset,/obj/machinery/atmospherics/pipe/simple/hidden{dir = 6},/turf/simulated/floor/tiled,/area/outpost/engineering/hallway) "fb" = (/obj/machinery/atmospherics/pipe/manifold/hidden,/turf/simulated/floor/tiled,/area/outpost/engineering/hallway) "fc" = (/obj/machinery/atmospherics/pipe/simple/hidden{dir = 10; icon_state = "intact"; tag = "icon-intact-f (SOUTHWEST)"},/obj/machinery/airlock_sensor{frequency = 1380; id_tag = "eoutpost_solar_sensor"; pixel_x = 25; pixel_y = 0},/turf/simulated/floor/tiled,/area/outpost/engineering/hallway) -"fd" = (/obj/machinery/sleeper{dir = 8},/turf/simulated/floor/tiled,/area/outpost/engineering/rest) +"fd" = (/obj/machinery/sleeper/map{dir = 8},/turf/simulated/floor/tiled,/area/outpost/engineering/rest) "fe" = (/obj/machinery/sleep_console,/turf/simulated/floor/tiled,/area/outpost/engineering/rest) "ff" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/outpost/engineering/rest) "fg" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/cyan{dir = 5; icon_state = "intact"; tag = "icon-intact-f (NORTHWEST)"},/turf/simulated/floor,/area/outpost/engineering/solars) diff --git a/maps/polaris-5.dmm b/maps/polaris-5.dmm index cd9003f6981..1c7075b1b65 100644 --- a/maps/polaris-5.dmm +++ b/maps/polaris-5.dmm @@ -111,7 +111,7 @@ "cg" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/cable/blue{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/tiled/white,/area/outpost/research/hallway/toxins_hallway) "ch" = (/obj/structure/cable/blue{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/effect/floor_decal/corner/purple{dir = 4},/turf/simulated/floor/tiled/white,/area/outpost/research/hallway/toxins_hallway) "ci" = (/obj/machinery/atmospherics/unary/vent_scrubber/on,/obj/machinery/alarm{pixel_y = 23},/obj/machinery/camera/network/research_outpost{c_tag = "OPR - Toxins Mid"; dir = 8},/obj/effect/floor_decal/corner/purple/full{dir = 1},/turf/simulated/floor/tiled/white,/area/outpost/research/hallway/toxins_hallway) -"cj" = (/obj/machinery/mass_driver{dir = 4; id = "toxinsdriver"},/turf/simulated/floor/airless,/area/outpost/research/toxins_launch) +"cj" = (/obj/machinery/mass_driver/map{dir = 4; id = "toxinsdriver"},/turf/simulated/floor/airless,/area/outpost/research/toxins_launch) "ck" = (/obj/machinery/atmospherics/unary/vent_pump/on,/obj/machinery/airlock_sensor{pixel_y = 25},/turf/simulated/floor/airless,/area/outpost/research/toxins_launch) "cl" = (/obj/effect/floor_decal/industrial/warning{dir = 4},/turf/simulated/floor/airless,/area/outpost/research/toxins_launch) "cm" = (/obj/machinery/door/blast/regular{id = "toxinsdriver"; name = "Toxins Launcher Bay Door"},/turf/simulated/floor/airless,/area/outpost/research/toxins_launch) @@ -271,7 +271,7 @@ "fk" = (/obj/structure/closet/wardrobe/science_white,/turf/simulated/floor/plating,/area/outpost/research/hallway/toxins_hallway) "fl" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/cable/blue{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/door/airlock/research{autoclose = 0; frequency = 1379; icon_state = "door_locked"; id_tag = "toxins_airlock_interior"; locked = 1; name = "Toxins Internal Airlock"; req_access = list(7)},/turf/simulated/floor/tiled/white,/area/outpost/research/hallway/toxins_hallway) "fm" = (/obj/machinery/atmospherics/pipe/simple/visible/purple{dir = 6},/obj/machinery/light,/turf/simulated/floor/plating,/area/outpost/research/toxins_misc_lab) -"fn" = (/obj/structure/table/standard,/obj/machinery/microwave,/obj/machinery/status_display{layer = 4; pixel_x = -32; pixel_y = 0},/turf/simulated/floor/tiled,/area/outpost/research/toxins_misc_lab) +"fn" = (/obj/structure/table/standard,/obj/machinery/microwave/map,/obj/machinery/status_display{layer = 4; pixel_x = -32; pixel_y = 0},/turf/simulated/floor/tiled,/area/outpost/research/toxins_misc_lab) "fo" = (/obj/machinery/atmospherics/pipe/simple/hidden/purple,/turf/simulated/wall/r_wall,/area/outpost/research/toxins_misc_lab) "fp" = (/mob/living/carbon/slime,/turf/simulated/floor/reinforced,/area/outpost/research/xenobiology) "fq" = (/obj/structure/disposalpipe/segment,/obj/machinery/light/small{dir = 4},/turf/simulated/floor/reinforced,/area/outpost/research/xenobiology) @@ -529,7 +529,7 @@ "ki" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/outpost/research/dorms) "kj" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/outpost/research/dorms) "kk" = (/obj/structure/table/reinforced,/obj/item/device/radio/intercom{dir = 4; name = "Station Intercom (General)"; pixel_x = 21},/turf/simulated/floor/tiled,/area/outpost/research/xenobiology) -"kl" = (/obj/structure/table/standard,/obj/machinery/microwave,/turf/simulated/floor/wood,/area/outpost/research/dorms) +"kl" = (/obj/structure/table/standard,/obj/machinery/microwave/map,/turf/simulated/floor/wood,/area/outpost/research/dorms) "km" = (/obj/structure/closet/wardrobe/science_white,/turf/simulated/floor/wood,/area/outpost/research/dorms) "kn" = (/obj/machinery/alarm{dir = 4; icon_state = "alarm0"; pixel_x = -22},/turf/simulated/floor/tiled/dark,/area/outpost/research/longtermstorage) "ko" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/tiled/dark,/area/outpost/research/longtermstorage) @@ -542,7 +542,7 @@ "kv" = (/obj/effect/floor_decal/industrial/warning/dust{tag = "icon-warning_dust (NORTHEAST)"; icon_state = "warning_dust"; dir = 5},/turf/simulated/floor/tiled/asteroid_steel/airless,/area/mine/explored) "kw" = (/obj/structure/table/standard,/obj/item/bodybag/cryobag,/obj/item/bodybag/cryobag,/obj/item/roller{pixel_x = 2; pixel_y = 3},/obj/item/roller,/turf/simulated/floor/tiled/white,/area/outpost/research/medical) "kx" = (/turf/simulated/floor/tiled/white,/area/outpost/research/medical) -"ky" = (/obj/machinery/sleeper{dir = 8},/turf/simulated/floor/tiled/white,/area/outpost/research/medical) +"ky" = (/obj/machinery/sleeper/map{dir = 8},/turf/simulated/floor/tiled/white,/area/outpost/research/medical) "kz" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 5},/obj/machinery/sleep_console,/turf/simulated/floor/tiled/white,/area/outpost/research/medical) "kA" = (/obj/effect/floor_decal/corner/paleblue{dir = 6},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 6},/obj/structure/cable/blue{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/simulated/floor/tiled/white,/area/outpost/research/medical) "kB" = (/obj/machinery/door/firedoor/glass,/obj/machinery/door/airlock/glass_medical{name = "Medbay"; req_access = list(47); req_one_access = null},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/cable/blue{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/tiled/white,/area/outpost/research/medical) @@ -593,9 +593,9 @@ "lu" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 4},/turf/simulated/floor/tiled,/area/outpost/research/tempstorage) "lv" = (/obj/effect/floor_decal/industrial/warning{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 10},/turf/simulated/floor/tiled,/area/outpost/research/tempstorage) "lw" = (/obj/effect/floor_decal/corner/purple{dir = 9},/obj/structure/closet/emcloset,/turf/simulated/floor/tiled/white,/area/outpost/research/dock) -"lx" = (/obj/machinery/conveyor{dir = 4; id = "anolongstorage"},/turf/simulated/floor/plating,/area/outpost/research/tempstorage) -"ly" = (/obj/structure/plasticflaps/mining,/obj/machinery/conveyor{dir = 4; id = "anolongstorage"},/turf/simulated/floor/plating,/area/outpost/research/tempstorage) -"lz" = (/obj/machinery/conveyor{dir = 4; id = "anolongstorage"},/turf/simulated/floor/airless{icon_state = "asteroidplating2"},/area/outpost/research/tempstorage) +"lx" = (/obj/machinery/conveyor/map{dir = 4; id = "anolongstorage"},/turf/simulated/floor/plating,/area/outpost/research/tempstorage) +"ly" = (/obj/structure/plasticflaps/mining,/obj/machinery/conveyor/map{dir = 4; id = "anolongstorage"},/turf/simulated/floor/plating,/area/outpost/research/tempstorage) +"lz" = (/obj/machinery/conveyor/map{dir = 4; id = "anolongstorage"},/turf/simulated/floor/airless{icon_state = "asteroidplating2"},/area/outpost/research/tempstorage) "lA" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/outpost/research/medical) "lB" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/outpost/research/medical) "lC" = (/obj/machinery/door/airlock/glass_medical{name = "Medbay"; req_access = list(47); req_one_access = null},/obj/machinery/door/firedoor/glass,/turf/simulated/floor/tiled/white,/area/outpost/research/medical) @@ -649,9 +649,9 @@ "my" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 4},/turf/simulated/floor/tiled,/area/outpost/research/tempstorage) "mz" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/tiled,/area/outpost/research/tempstorage) "mA" = (/obj/effect/floor_decal/industrial/warning{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 10},/turf/simulated/floor/tiled,/area/outpost/research/tempstorage) -"mB" = (/obj/machinery/conveyor{dir = 4; id = "anotempload"},/turf/simulated/floor/plating,/area/outpost/research/tempstorage) -"mC" = (/obj/structure/plasticflaps/mining,/obj/machinery/conveyor{dir = 4; id = "anotempload"},/turf/simulated/floor/plating,/area/outpost/research/tempstorage) -"mD" = (/obj/machinery/conveyor{dir = 4; id = "anotempload"},/turf/simulated/floor/airless{icon_state = "asteroidplating2"},/area/outpost/research/tempstorage) +"mB" = (/obj/machinery/conveyor/map{dir = 4; id = "anotempload"},/turf/simulated/floor/plating,/area/outpost/research/tempstorage) +"mC" = (/obj/structure/plasticflaps/mining,/obj/machinery/conveyor/map{dir = 4; id = "anotempload"},/turf/simulated/floor/plating,/area/outpost/research/tempstorage) +"mD" = (/obj/machinery/conveyor/map{dir = 4; id = "anotempload"},/turf/simulated/floor/airless{icon_state = "asteroidplating2"},/area/outpost/research/tempstorage) "mE" = (/turf/simulated/mineral/floor/ignore_mapgen,/area/shuttle/research/outpost) "mF" = (/obj/machinery/atmospherics/pipe/manifold/hidden{dir = 4; icon_state = "map"; tag = "icon-manifold-f (EAST)"},/obj/effect/floor_decal/industrial/warning{dir = 8},/turf/simulated/floor/tiled/white,/area/outpost/research/dock) "mG" = (/obj/structure/table/standard,/obj/item/weapon/material/ashtray/glass,/obj/item/weapon/reagent_containers/food/drinks/coffee,/obj/machinery/light,/turf/simulated/floor/tiled/white,/area/outpost/research/dock) @@ -718,7 +718,7 @@ "nP" = (/obj/machinery/portable_atmospherics/powered/scrubber,/obj/effect/floor_decal/corner/purple{dir = 5},/turf/simulated/floor/tiled/white,/area/outpost/research/hallway/mid) "nQ" = (/obj/machinery/portable_atmospherics/powered/scrubber,/obj/effect/floor_decal/corner/purple{dir = 5},/obj/machinery/light{dir = 1},/turf/simulated/floor/tiled/white,/area/outpost/research/hallway/mid) "nR" = (/obj/machinery/status_display{layer = 4; pixel_x = 32; pixel_y = 0},/turf/simulated/floor/wood,/area/outpost/research/dorms) -"nS" = (/obj/machinery/conveyor{dir = 3; id = "anolongstorage"},/turf/simulated/floor/plating{dir = 10},/area/outpost/research/tempstorage) +"nS" = (/obj/machinery/conveyor/map{dir = 3; id = "anolongstorage"},/turf/simulated/floor/plating{dir = 10},/area/outpost/research/tempstorage) "nT" = (/turf/simulated/floor/tiled,/area/outpost/research/hallway/starboard) "nU" = (/obj/machinery/atmospherics/unary/vent_pump/on,/turf/simulated/floor/tiled,/area/outpost/research/hallway/starboard) "nV" = (/obj/structure/disposalpipe/segment,/obj/effect/floor_decal/corner/purple,/turf/simulated/floor/tiled,/area/outpost/research/hallway/starboard) @@ -853,9 +853,9 @@ "qu" = (/obj/structure/table/rack,/obj/item/clothing/head/welding,/obj/item/weapon/weldingtool,/obj/machinery/light{dir = 1},/turf/simulated/floor/tiled/white,/area/outpost/research/anomaly) "qv" = (/obj/structure/table/standard,/obj/machinery/cell_charger,/obj/item/weapon/screwdriver{pixel_y = 15},/obj/item/weapon/melee/baton/loaded,/turf/simulated/floor/tiled/white,/area/outpost/research/anomaly) "qw" = (/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 8},/obj/effect/floor_decal/industrial/warning{dir = 4},/turf/simulated/floor/tiled,/area/outpost/research/anomaly) -"qx" = (/obj/machinery/conveyor{dir = 4; id = "anom"},/turf/simulated/floor/plating,/area/outpost/research/anomaly) -"qy" = (/obj/machinery/conveyor{dir = 4; id = "anom"},/obj/structure/plasticflaps/mining,/obj/structure/window/reinforced,/turf/simulated/floor/plating,/area/outpost/research/anomaly) -"qz" = (/obj/machinery/conveyor{dir = 4; id = "anom"},/obj/machinery/door/window,/obj/structure/window/reinforced,/turf/simulated/floor/plating,/area/outpost/research/anomaly) +"qx" = (/obj/machinery/conveyor/map{dir = 4; id = "anom"},/turf/simulated/floor/plating,/area/outpost/research/anomaly) +"qy" = (/obj/machinery/conveyor/map{dir = 4; id = "anom"},/obj/structure/plasticflaps/mining,/obj/structure/window/reinforced,/turf/simulated/floor/plating,/area/outpost/research/anomaly) +"qz" = (/obj/machinery/conveyor/map{dir = 4; id = "anom"},/obj/machinery/door/window,/obj/structure/window/reinforced,/turf/simulated/floor/plating,/area/outpost/research/anomaly) "qA" = (/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 8},/turf/simulated/floor/tiled,/area/outpost/research/anomaly) "qB" = (/obj/machinery/door/airlock/glass_research{name = "Anomalous Materials"; req_access = list(65)},/obj/machinery/door/firedoor/glass,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/structure/cable/blue{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/tiled,/area/outpost/research/anomaly) "qC" = (/obj/effect/floor_decal/industrial/warning{dir = 4},/turf/simulated/floor/tiled,/area/outpost/research/anomaly) @@ -969,14 +969,14 @@ "sG" = (/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/manifold4w/hidden/supply,/obj/structure/cable/blue{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/tiled,/area/outpost/research/anomaly) "sH" = (/obj/machinery/atmospherics/binary/pump{dir = 8},/turf/simulated/floor/tiled,/area/outpost/research/anomaly) "sI" = (/obj/structure/disposalpipe/segment,/obj/effect/floor_decal/industrial/warning{dir = 4},/turf/simulated/floor/tiled,/area/outpost/research/anomaly) -"sJ" = (/obj/machinery/conveyor{dir = 2; id = "anolongstorage2"},/turf/simulated/floor,/area/outpost/research/anomaly) +"sJ" = (/obj/machinery/conveyor/map{dir = 2; id = "anolongstorage2"},/turf/simulated/floor,/area/outpost/research/anomaly) "sK" = (/obj/structure/closet/secure_closet/xenoarchaeologist{req_access = list(47)},/obj/effect/floor_decal/corner/purple{dir = 10},/obj/machinery/camera/network/research_outpost{c_tag = "OPR - Hallway Mid 1"; dir = 1},/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_y = -21},/turf/simulated/floor/tiled/white,/area/outpost/research/hallway/mid) "sL" = (/obj/effect/floor_decal/industrial/warning,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/structure/cable/blue{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/tiled,/area/outpost/research/eva) "sM" = (/obj/effect/floor_decal/corner/purple{dir = 6},/obj/effect/floor_decal/industrial/warning/corner{dir = 8},/obj/machinery/camera/network/research_outpost{c_tag = "OPR - Expedition Prep Access"; dir = 8},/turf/simulated/floor/tiled,/area/outpost/research/eva) "sN" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/outpost/research/eva) "sO" = (/obj/structure/closet/excavation,/obj/effect/floor_decal/corner/purple{dir = 8},/turf/simulated/floor/tiled,/area/outpost/research/eva) "sP" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 1},/turf/simulated/floor/tiled,/area/outpost/research/eva) -"sQ" = (/obj/machinery/recharge_station,/obj/effect/floor_decal/corner/purple/full{dir = 4},/turf/simulated/floor/tiled,/area/outpost/research/eva) +"sQ" = (/obj/machinery/recharge_station/map,/obj/effect/floor_decal/corner/purple/full{dir = 4},/turf/simulated/floor/tiled,/area/outpost/research/eva) "sR" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/machinery/door/firedoor/border_only,/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating,/area/outpost/research/eva) "sS" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/outpost/research/eva) "sT" = (/obj/structure/reagent_dispensers/coolanttank,/obj/effect/floor_decal/corner/lime/full,/obj/structure/sign/nosmoking_2{pixel_y = -32},/turf/simulated/floor/tiled/white,/area/outpost/research/analysis) @@ -985,8 +985,8 @@ "sW" = (/obj/effect/floor_decal/industrial/warning,/obj/machinery/alarm{dir = 4; icon_state = "alarm0"; pixel_x = -22},/turf/simulated/floor/tiled,/area/outpost/research/anomaly) "sX" = (/obj/effect/floor_decal/industrial/warning,/turf/simulated/floor/tiled,/area/outpost/research/anomaly) "sY" = (/obj/machinery/door/firedoor/glass,/obj/effect/floor_decal/industrial/warning/corner{dir = 8},/turf/simulated/floor/tiled,/area/outpost/research/anomaly) -"sZ" = (/obj/machinery/atmospherics/unary/heater{dir = 1},/obj/effect/floor_decal/industrial/outline/yellow,/obj/machinery/light,/turf/simulated/floor/tiled,/area/outpost/research/anomaly) -"ta" = (/obj/machinery/atmospherics/unary/freezer{dir = 1; icon_state = "freezer"},/obj/effect/floor_decal/industrial/outline/yellow,/turf/simulated/floor/tiled,/area/outpost/research/anomaly) +"sZ" = (/obj/machinery/atmospherics/unary/heater/map{dir = 1},/obj/effect/floor_decal/industrial/outline/yellow,/obj/machinery/light,/turf/simulated/floor/tiled,/area/outpost/research/anomaly) +"ta" = (/obj/machinery/atmospherics/unary/freezer/map{dir = 1; icon_state = "freezer"},/obj/effect/floor_decal/industrial/outline/yellow,/turf/simulated/floor/tiled,/area/outpost/research/anomaly) "tb" = (/obj/machinery/atmospherics/valve/digital/open,/obj/effect/floor_decal/industrial/outline/yellow,/turf/simulated/floor/tiled,/area/outpost/research/anomaly) "tc" = (/obj/machinery/atmospherics/pipe/simple/hidden/universal{dir = 4},/obj/structure/table/standard,/obj/item/weapon/folder,/obj/item/device/camera,/obj/item/weapon/pen,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/structure/cable/blue{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/tiled,/area/outpost/research/anomaly) "td" = (/obj/machinery/atmospherics/pipe/simple/visible/yellow{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/structure/cable/blue{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/tiled,/area/outpost/research/anomaly) @@ -1079,14 +1079,14 @@ "uM" = (/obj/machinery/atmospherics/pipe/simple/hidden{dir = 4},/turf/simulated/floor/tiled,/area/outpost/mining_main/north_hall) "uN" = (/obj/machinery/atmospherics/pipe/simple/hidden{dir = 10; icon_state = "intact"; tag = "icon-intact-f (SOUTHWEST)"},/obj/machinery/embedded_controller/radio/airlock/docking_port{frequency = 1380; id_tag = "mining_outpost_airlock"; pixel_x = 28; pixel_y = 0; req_one_access = list(13,48); tag_airpump = "mining_outpost_pump"; tag_chamber_sensor = "mining_outpost_sensor"; tag_exterior_door = "mining_outpost_outer"; tag_interior_door = "mining_outpost_inner"},/obj/effect/floor_decal/industrial/warning{dir = 5},/turf/simulated/floor/tiled,/area/outpost/mining_main/north_hall) "uO" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/outpost/mining_main/north_hall) -"uP" = (/obj/structure/table/standard,/obj/machinery/recharger,/turf/simulated/floor/tiled/dark,/area/outpost/mining_main/break_room) +"uP" = (/obj/structure/table/standard,/obj/machinery/recharger/map,/turf/simulated/floor/tiled/dark,/area/outpost/mining_main/break_room) "uQ" = (/obj/machinery/firealarm{dir = 2; layer = 3.3; pixel_x = 0; pixel_y = 26},/turf/simulated/floor/wood,/area/outpost/mining_main/break_room) "uR" = (/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/turf/simulated/floor/wood,/area/outpost/mining_main/break_room) "uS" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/wood,/area/outpost/mining_main/break_room) "uT" = (/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/turf/simulated/floor/wood,/area/outpost/mining_main/break_room) "uU" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/outpost/mining_main/break_room) "uV" = (/obj/machinery/light{dir = 8},/turf/simulated/floor/tiled/white,/area/outpost/mining_main/medbay) -"uW" = (/obj/machinery/sleeper{dir = 8},/turf/simulated/floor/tiled/white,/area/outpost/mining_main/medbay) +"uW" = (/obj/machinery/sleeper/map{dir = 8},/turf/simulated/floor/tiled/white,/area/outpost/mining_main/medbay) "uX" = (/obj/machinery/sleep_console,/turf/simulated/floor/tiled/white,/area/outpost/mining_main/medbay) "uY" = (/obj/machinery/portable_atmospherics/canister/air/airlock,/obj/machinery/atmospherics/portables_connector{dir = 4},/obj/machinery/light{dir = 4; icon_state = "tube1"},/obj/effect/floor_decal/corner/paleblue{dir = 6},/turf/simulated/floor/tiled/white,/area/outpost/mining_main/medbay) "uZ" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/firedoor/border_only,/obj/machinery/atmospherics/pipe/simple/hidden{dir = 9; icon_state = "intact"; tag = "icon-intact-f (NORTHWEST)"},/obj/structure/window/reinforced,/turf/simulated/floor/plating,/area/outpost/mining_main/north_hall) @@ -1116,7 +1116,7 @@ "vx" = (/obj/structure/table/standard,/obj/item/weapon/reagent_containers/food/drinks/bottle/small/beer,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 10},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 6},/turf/simulated/floor/wood,/area/outpost/mining_main/break_room) "vy" = (/obj/structure/bed/chair{dir = 8},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/wood,/area/outpost/mining_main/break_room) "vz" = (/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 8},/turf/simulated/floor/wood,/area/outpost/mining_main/break_room) -"vA" = (/obj/structure/table/standard,/obj/machinery/microwave{pixel_y = 6},/turf/simulated/floor/tiled/dark,/area/outpost/mining_main/break_room) +"vA" = (/obj/structure/table/standard,/obj/machinery/microwave/map{pixel_y = 6},/turf/simulated/floor/tiled/dark,/area/outpost/mining_main/break_room) "vB" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/effect/floor_decal/industrial/warning/dust{tag = "icon-warning_dust (NORTHWEST)"; icon_state = "warning_dust"; dir = 9},/turf/simulated/floor/tiled/asteroid_steel/airless,/area/mine/explored) "vC" = (/obj/structure/cable{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/industrial/warning/dust{tag = "icon-warning_dust (NORTH)"; icon_state = "warning_dust"; dir = 1},/turf/simulated/floor/tiled/asteroid_steel/airless,/area/mine/explored) "vD" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/access_button{command = "cycle_exterior"; frequency = 1379; master_tag = "meoutpost_main_airlock"; name = "exterior access button"; pixel_x = 25; pixel_y = -25; req_access = newlist(); req_one_access = list(10,48,65)},/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 1},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 1},/obj/effect/floor_decal/industrial/warning/dust{tag = "icon-warning_dust (NORTH)"; icon_state = "warning_dust"; dir = 1},/turf/simulated/floor/tiled/asteroid_steel/airless,/area/mine/explored) @@ -1157,7 +1157,7 @@ "wm" = (/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 2; frequency = 1379; id_tag = "meoutpost_main_pump"},/turf/simulated/floor/tiled,/area/outpost/engineering/mining/hallway) "wn" = (/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/tiled,/area/outpost/engineering/mining/hallway) "wo" = (/obj/machinery/mining/brace,/turf/simulated/floor/tiled/asteroid_steel/airless,/area/mine/explored) -"wp" = (/obj/machinery/mining/drill,/turf/simulated/floor/tiled/asteroid_steel/airless,/area/mine/explored) +"wp" = (/obj/machinery/mining/drill/map,/turf/simulated/floor/tiled/asteroid_steel/airless,/area/mine/explored) "wq" = (/obj/structure/cable,/obj/machinery/power/apc/super{dir = 2; name = "south bump"; pixel_y = -24},/turf/simulated/floor/tiled/asteroid_steel/airless,/area/mine/explored) "wr" = (/obj/machinery/light/small,/turf/simulated/floor/tiled/asteroid_steel/airless,/area/mine/explored) "ws" = (/obj/structure/ore_box,/turf/simulated/mineral/floor/ignore_mapgen,/area/mine/explored) @@ -1273,14 +1273,14 @@ "yy" = (/obj/machinery/door/airlock/glass_mining{name = "Mining Outpost Airlock"; req_access = list(48)},/obj/machinery/door/firedoor/glass,/obj/structure/disposalpipe/segment,/turf/simulated/floor/tiled,/area/outpost/mining_main/north_hall) "yz" = (/obj/machinery/mineral/input,/obj/structure/sign/securearea{desc = "A warning sign which reads 'MOVING PARTS'."; name = "\improper MOVING PARTS"; pixel_x = 0; pixel_y = 32},/obj/machinery/light{dir = 1},/obj/effect/floor_decal/industrial/loading{dir = 4},/turf/simulated/floor/tiled,/area/outpost/mining_main/refinery) "yA" = (/obj/machinery/mineral/unloading_machine,/turf/simulated/floor/tiled/dark,/area/outpost/mining_main/refinery) -"yB" = (/obj/machinery/conveyor{dir = 4; id = "mining_internal"},/obj/machinery/mineral/output,/turf/simulated/floor/tiled/dark,/area/outpost/mining_main/refinery) -"yC" = (/obj/machinery/conveyor{dir = 4; id = "mining_internal"},/obj/structure/plasticflaps/mining,/turf/simulated/floor/tiled/dark,/area/outpost/mining_main/refinery) -"yD" = (/obj/machinery/conveyor{dir = 4; id = "mining_internal"},/turf/simulated/floor/tiled/dark,/area/outpost/mining_main/refinery) -"yE" = (/obj/machinery/conveyor{dir = 9; id = "mining_internal"},/obj/machinery/mineral/output,/turf/simulated/floor/tiled/dark,/area/outpost/mining_main/refinery) +"yB" = (/obj/machinery/conveyor/map{dir = 4; id = "mining_internal"},/obj/machinery/mineral/output,/turf/simulated/floor/tiled/dark,/area/outpost/mining_main/refinery) +"yC" = (/obj/machinery/conveyor/map{dir = 4; id = "mining_internal"},/obj/structure/plasticflaps/mining,/turf/simulated/floor/tiled/dark,/area/outpost/mining_main/refinery) +"yD" = (/obj/machinery/conveyor/map{dir = 4; id = "mining_internal"},/turf/simulated/floor/tiled/dark,/area/outpost/mining_main/refinery) +"yE" = (/obj/machinery/conveyor/map{dir = 9; id = "mining_internal"},/obj/machinery/mineral/output,/turf/simulated/floor/tiled/dark,/area/outpost/mining_main/refinery) "yF" = (/obj/machinery/mineral/unloading_machine{icon_state = "unloader-corner"},/turf/simulated/floor/plating,/area/outpost/mining_main/refinery) -"yG" = (/obj/machinery/conveyor{dir = 4; id = "mining_external"},/obj/machinery/mineral/input,/turf/simulated/floor/tiled,/area/outpost/mining_main/refinery) -"yH" = (/obj/machinery/conveyor{dir = 4; id = "mining_external"},/obj/structure/plasticflaps/mining,/turf/simulated/floor/tiled,/area/outpost/mining_main/refinery) -"yI" = (/obj/machinery/conveyor{dir = 4; id = "mining_external"},/turf/simulated/floor/airless{icon_state = "asteroidplating2"},/area/outpost/mining_main/refinery) +"yG" = (/obj/machinery/conveyor/map{dir = 4; id = "mining_external"},/obj/machinery/mineral/input,/turf/simulated/floor/tiled,/area/outpost/mining_main/refinery) +"yH" = (/obj/machinery/conveyor/map{dir = 4; id = "mining_external"},/obj/structure/plasticflaps/mining,/turf/simulated/floor/tiled,/area/outpost/mining_main/refinery) +"yI" = (/obj/machinery/conveyor/map{dir = 4; id = "mining_external"},/turf/simulated/floor/airless{icon_state = "asteroidplating2"},/area/outpost/mining_main/refinery) "yJ" = (/turf/simulated/wall/r_wall,/area/outpost/engineering/mining/telecomms) "yK" = (/obj/machinery/light{icon_state = "tube1"; dir = 8},/turf/simulated/floor/tiled,/area/outpost/engineering/mining/hallway) "yL" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 4},/turf/simulated/floor/tiled,/area/outpost/engineering/mining/hallway) @@ -1306,7 +1306,7 @@ "zf" = (/obj/effect/floor_decal/corner/purple{dir = 9},/obj/effect/floor_decal/industrial/warning/corner,/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_y = -21},/turf/simulated/floor/tiled,/area/outpost/research/eva) "zg" = (/turf/simulated/floor/tiled/dark,/area/outpost/mining_main/refinery) "zh" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/grille,/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/outpost/mining_main/refinery) -"zi" = (/obj/machinery/conveyor{dir = 2; id = "mining_internal"},/turf/simulated/floor/tiled/dark,/area/outpost/mining_main/refinery) +"zi" = (/obj/machinery/conveyor/map{dir = 2; id = "mining_internal"},/turf/simulated/floor/tiled/dark,/area/outpost/mining_main/refinery) "zj" = (/obj/machinery/atmospherics/unary/vent_scrubber/on,/obj/machinery/camera/network/engineering_outpost{c_tag = "ENG - Outpost Mining Telecomm"; dir = 2},/turf/simulated/floor/tiled/dark,/area/outpost/engineering/mining/telecomms) "zk" = (/obj/structure/cable/blue{d2 = 2; icon_state = "0-2"},/obj/machinery/power/apc{dir = 1; name = "north bump"; pixel_x = 0; pixel_y = 24},/obj/machinery/light/small{dir = 4; pixel_y = 0},/turf/simulated/floor/tiled/dark,/area/outpost/engineering/mining/telecomms) "zl" = (/obj/structure/cable/blue{d2 = 2; icon_state = "0-2"},/obj/machinery/power/apc{dir = 8; name = "west bump"; pixel_x = -24},/turf/simulated/floor/tiled,/area/outpost/engineering/mining/hallway) @@ -1335,7 +1335,7 @@ "zI" = (/obj/structure/cable/blue{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},/turf/simulated/floor/tiled,/area/outpost/engineering/mining/hallway) "zJ" = (/obj/structure/cable/blue{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/tiled,/area/outpost/engineering/mining/hallway) "zK" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/structure/dispenser/oxygen,/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 4},/turf/simulated/floor/tiled,/area/outpost/engineering/mining/hallway) -"zL" = (/obj/machinery/conveyor{dir = 2; id = "anolongstorage2"},/obj/machinery/status_display{layer = 4; pixel_x = 32; pixel_y = 0},/turf/simulated/floor,/area/outpost/research/anomaly) +"zL" = (/obj/machinery/conveyor/map{dir = 2; id = "anolongstorage2"},/obj/machinery/status_display{layer = 4; pixel_x = 32; pixel_y = 0},/turf/simulated/floor,/area/outpost/research/anomaly) "zM" = (/turf/simulated/wall,/area/outpost/engineering/mining/power) "zN" = (/obj/structure/cable/blue{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/simulated/floor/plating,/area/outpost/engineering/mining/power) "zO" = (/obj/machinery/power/smes/buildable/outpost_substation{charge = 500000; input_attempt = 1; input_level = 150000; output_level = 150000; RCon_tag = "Outpost - Mining Engineering"},/obj/structure/cable/blue{d2 = 8; icon_state = "0-8"},/turf/simulated/floor,/area/outpost/engineering/mining/power) @@ -1403,7 +1403,7 @@ "AY" = (/obj/structure/closet/crate,/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 1},/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 8},/turf/simulated/floor/tiled,/area/outpost/mining_main/refinery) "AZ" = (/obj/structure/closet/crate,/turf/simulated/floor/tiled,/area/outpost/mining_main/refinery) "Ba" = (/obj/machinery/light{dir = 4; icon_state = "tube1"},/turf/simulated/floor/tiled,/area/outpost/mining_main/refinery) -"Bb" = (/obj/machinery/conveyor{dir = 2; id = "mining_internal"},/obj/machinery/mineral/output,/turf/simulated/floor/tiled/dark,/area/outpost/mining_main/refinery) +"Bb" = (/obj/machinery/conveyor/map{dir = 2; id = "mining_internal"},/obj/machinery/mineral/output,/turf/simulated/floor/tiled/dark,/area/outpost/mining_main/refinery) "Bc" = (/obj/effect/floor_decal/industrial/warning/dust{tag = "icon-warning_dust (NORTHEAST)"; icon_state = "warning_dust"; dir = 5},/turf/simulated/floor/tiled/asteroid_steel/airless,/area/outpost/mining_main/refinery) "Bd" = (/obj/structure/closet/crate,/obj/item/stack/material/phoron{amount = 50},/obj/item/stack/material/phoron{amount = 50},/obj/item/stack/material/phoron{amount = 50},/turf/simulated/floor/plating,/area/outpost/engineering/mining/power) "Be" = (/obj/structure/cable/yellow{d2 = 2; icon_state = "0-2"},/obj/structure/cable/yellow,/obj/structure/cable/yellow{d2 = 4; icon_state = "0-4"},/obj/machinery/power/sensor{long_range = 1; name_tag = "Asteroid Main Grid"},/turf/simulated/floor/plating,/area/outpost/engineering/mining/power) @@ -1424,15 +1424,15 @@ "Bt" = (/obj/machinery/power/smes/buildable{charge = 1.5e+007; cur_coils = 3; input_attempt = 1; input_level = 750000; input_level_max = 750000; output_level = 750000; output_level_max = 750000; RCon_tag = "Outpost - Main Power Unit 1"},/obj/structure/cable/yellow{d2 = 4; icon_state = "0-4"},/turf/simulated/floor/plating,/area/outpost/engineering/mining/power) "Bu" = (/obj/machinery/light/small{dir = 4; pixel_y = 0},/obj/machinery/floodlight,/turf/simulated/floor/plating,/area/outpost/engineering/mining/power) "Bv" = (/obj/effect/floor_decal/corner/brown/full,/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_y = -21},/turf/simulated/floor/tiled,/area/outpost/mining_main/north_hall) -"Bw" = (/obj/machinery/washing_machine,/turf/simulated/floor/tiled/dark,/area/outpost/mining_main/dorms) +"Bw" = (/obj/machinery/washing_machine/map,/turf/simulated/floor/tiled/dark,/area/outpost/mining_main/dorms) "Bx" = (/obj/machinery/firealarm{dir = 8; pixel_x = -26},/obj/structure/cable/blue{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/tiled,/area/outpost/mining_main/dorms) "By" = (/obj/structure/disposalpipe/segment,/obj/machinery/status_display{layer = 4; pixel_x = 32; pixel_y = 0},/turf/simulated/floor/tiled,/area/outpost/mining_main/dorms) "Bz" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'MOVING PARTS'."; name = "\improper MOVING PARTS"; pixel_x = 0; pixel_y = -32},/obj/machinery/light,/obj/effect/floor_decal/industrial/loading{tag = "icon-loadingarea (WEST)"; icon_state = "loadingarea"; dir = 8},/turf/simulated/floor/tiled,/area/outpost/mining_main/refinery) -"BA" = (/obj/machinery/conveyor{dir = 8; id = "mining_internal"},/obj/structure/plasticflaps,/turf/simulated/floor/tiled/dark,/area/outpost/mining_main/refinery) -"BB" = (/obj/machinery/conveyor{dir = 8; id = "mining_internal"},/turf/simulated/floor/tiled/dark,/area/outpost/mining_main/refinery) -"BC" = (/obj/machinery/conveyor{dir = 8; id = "mining_internal"},/obj/machinery/mineral/output,/turf/simulated/floor/tiled/dark,/area/outpost/mining_main/refinery) +"BA" = (/obj/machinery/conveyor/map{dir = 8; id = "mining_internal"},/obj/structure/plasticflaps,/turf/simulated/floor/tiled/dark,/area/outpost/mining_main/refinery) +"BB" = (/obj/machinery/conveyor/map{dir = 8; id = "mining_internal"},/turf/simulated/floor/tiled/dark,/area/outpost/mining_main/refinery) +"BC" = (/obj/machinery/conveyor/map{dir = 8; id = "mining_internal"},/obj/machinery/mineral/output,/turf/simulated/floor/tiled/dark,/area/outpost/mining_main/refinery) "BD" = (/obj/machinery/mineral/stacking_machine,/turf/simulated/floor/tiled/dark,/area/outpost/mining_main/refinery) -"BE" = (/obj/machinery/conveyor{dir = 5; icon_state = "conveyor0"; id = "mining_internal"},/obj/machinery/mineral/input,/turf/simulated/floor/tiled/dark,/area/outpost/mining_main/refinery) +"BE" = (/obj/machinery/conveyor/map{dir = 5; icon_state = "conveyor0"; id = "mining_internal"},/obj/machinery/mineral/input,/turf/simulated/floor/tiled/dark,/area/outpost/mining_main/refinery) "BF" = (/obj/machinery/light/small{dir = 1},/turf/simulated/floor/tiled/asteroid_steel/airless,/area/outpost/mining_main/refinery) "BG" = (/obj/effect/floor_decal/industrial/warning/dust{tag = "icon-warning_dust (EAST)"; icon_state = "warning_dust"; dir = 4},/turf/simulated/floor/tiled/asteroid_steel/airless,/area/outpost/mining_main/refinery) "BH" = (/obj/structure/closet/emcloset,/turf/simulated/floor/plating,/area/outpost/engineering/mining/power) @@ -1475,7 +1475,7 @@ "Cs" = (/obj/machinery/atmospherics/pipe/manifold/hidden{dir = 4; icon_state = "map"; tag = "icon-manifold-f (EAST)"},/turf/simulated/floor/tiled,/area/outpost/mining_main/eva) "Ct" = (/obj/machinery/door/airlock/external{frequency = 1377; icon_state = "door_locked"; id_tag = "mext"; locked = 1},/obj/machinery/door/firedoor,/turf/simulated/floor/tiled,/area/outpost/mining_main/eva) "Cu" = (/obj/effect/floor_decal/industrial/warning/dust{tag = "icon-warning_dust (EAST)"; icon_state = "warning_dust"; dir = 4},/obj/machinery/access_button/airlock_exterior{frequency = 1377; master_tag = "mcontrol"; pixel_x = -26; pixel_y = 26; req_access = list(48)},/turf/simulated/floor/tiled/asteroid_steel/airless,/area/mine/explored) -"Cv" = (/obj/machinery/recharge_station,/turf/simulated/floor/tiled/dark,/area/outpost/mining_main/storage) +"Cv" = (/obj/machinery/recharge_station/map,/turf/simulated/floor/tiled/dark,/area/outpost/mining_main/storage) "Cw" = (/obj/machinery/atmospherics/unary/vent_pump/on,/turf/simulated/floor/tiled/dark,/area/outpost/mining_main/storage) "Cx" = (/obj/machinery/camera/network/mining{c_tag = "OPM - Mining Storage Room"; dir = 8},/turf/simulated/floor/tiled/dark,/area/outpost/mining_main/storage) "Cy" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/structure/grille,/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/outpost/mining_main/storage) @@ -1581,7 +1581,7 @@ "Eu" = (/obj/item/device/radio/intercom{dir = 4; name = "Station Intercom (General)"; pixel_x = 21},/obj/machinery/computer/crew,/turf/simulated/floor/tiled/white,/area/outpost/mining_main/medbay) "Ev" = (/obj/machinery/mining/brace,/turf/simulated/floor/tiled/asteroid_steel/airless,/area/outpost/mining_main/refinery) "Ew" = (/obj/effect/floor_decal/industrial/warning/dust{tag = "icon-warning_dust (EAST)"; icon_state = "warning_dust"; dir = 4},/obj/machinery/mining/brace,/turf/simulated/floor/tiled/asteroid_steel/airless,/area/outpost/mining_main/refinery) -"Ex" = (/obj/machinery/mining/drill,/turf/simulated/floor/tiled/asteroid_steel/airless,/area/outpost/mining_main/refinery) +"Ex" = (/obj/machinery/mining/drill/map,/turf/simulated/floor/tiled/asteroid_steel/airless,/area/outpost/mining_main/refinery) "Ey" = (/obj/structure/table/steel,/obj/item/weapon/screwdriver,/obj/item/weapon/crowbar,/obj/item/weapon/wrench,/turf/simulated/floor/tiled/asteroid_steel/airless,/area/outpost/mining_main/refinery) "Ez" = (/obj/structure/table/steel,/obj/item/weapon/cell/high,/turf/simulated/floor/tiled/asteroid_steel/airless,/area/outpost/mining_main/refinery) "EA" = (/obj/structure/table/steel,/obj/machinery/cell_charger,/turf/simulated/floor/tiled/asteroid_steel/airless,/area/outpost/mining_main/refinery) diff --git a/nano/templates/appearance_changer.tmpl b/nano/templates/appearance_changer.tmpl index bb283f245ba..1111add5c53 100644 --- a/nano/templates/appearance_changer.tmpl +++ b/nano/templates/appearance_changer.tmpl @@ -14,11 +14,22 @@ {{if data.change_gender}}
      - Gender: + Biological Gender:
      - {{:helper.link('Male', null, { 'gender' : 'male'}, null, data.gender == 'male' ? 'selected' : null)}} - {{:helper.link('Female', null, { 'gender' : 'female'}, null, data.gender == 'female' ? 'selected' : null)}} + {{for data.genders}} + {{:helper.link(value.gender_name, null, { 'gender' : value.gender_key}, null, data.gender == value.gender_key ? 'selected' : null)}} + {{/for}} +
      + +
      +
      + Gender Identity: +
      +
      + {{for data.id_genders}} + {{:helper.link(value.gender_name, null, { 'gender_id' : value.gender_key}, null, data.gender_id == value.gender_key ? 'selected' : null)}} + {{/for}}
      {{/if}} diff --git a/nano/templates/rcon.tmpl b/nano/templates/rcon.tmpl index c4337a07316..e16062aec4d 100644 --- a/nano/templates/rcon.tmpl +++ b/nano/templates/rcon.tmpl @@ -27,12 +27,12 @@
      {{if !data.hide_smes_details}} - Input: {{:value.input_val}}W - {{:value.input_set ? "AUTO" : "OFF"}} + Input: {{:value.input_val}} kW - {{:value.input_set ? "AUTO" : "OFF"}} {{:helper.link('', 'power', { 'smes_in_toggle' : value.RCON_tag})}} {{:helper.link('', 'pencil', { 'smes_in_set' : value.RCON_tag})}} - Output: {{:value.output_val}}W - {{:value.output_set ? "ONLINE" : "OFFLINE"}} + Output: {{:value.output_val}} kW - {{:value.output_set ? "ONLINE" : "OFFLINE"}} {{:helper.link('', 'power', { 'smes_out_toggle' : value.RCON_tag})}} {{:helper.link('', 'pencil', { 'smes_out_set' : value.RCON_tag})}} @@ -40,7 +40,7 @@ Output Load: - {{:value.output_load}}W + {{:value.output_load}} kW {{/if}}
    diff --git a/nano/templates/smes.tmpl b/nano/templates/smes.tmpl index 799ac3911d7..bdbff2da0e0 100644 --- a/nano/templates/smes.tmpl +++ b/nano/templates/smes.tmpl @@ -1,11 +1,14 @@
    - Stored Capacity: + Stored Charge:
    {{:helper.displayBar(data.storedCapacity, 0, 100, data.charging ? 'good' : 'average')}}
    {{:helper.round(data.storedCapacity)}}% +

    +
    + {{:data.storedCapacityAbs}} kWh / {{:data.storedCapacityMax}} kWh
    @@ -38,7 +41,19 @@ {{:helper.link('MIN', null, {'input' : 'min'}, (data.chargeLevel > 0) ? null : 'disabled')}} {{:helper.link('SET', null, {'input' : 'set'}, null)}} {{:helper.link('MAX', null, {'input' : 'max'}, (data.chargeLevel < data.chargeMax) ? null : 'disabled')}} -
     {{:data.chargeLevel}} W 
    +
     {{:data.chargeLevel}} kW 
    +
    +
    + + +
    +
    + Input Load: +
    +
    + {{:helper.displayBar(data.chargeLoad, 0, data.chargeMax, (data.chargeLoad < data.chargeLevel) ? 'good' : 'average')}} +
    + {{:data.chargeLoad}} kW
    @@ -71,7 +86,7 @@ {{:helper.link('MIN', null, {'output' : 'min'}, (data.outputLevel > 0) ? null : 'disabled')}} {{:helper.link('SET', null, {'output' : 'set'}, null)}} {{:helper.link('MAX', null, {'output' : 'max'}, (data.outputLevel < data.outputMax) ? null : 'disabled')}} -
     {{:data.outputLevel}} W 
    +
     {{:data.outputLevel}} kW 
    @@ -83,7 +98,7 @@
    {{:helper.displayBar(data.outputLoad, 0, data.outputMax, (data.outputLoad < data.outputLevel) ? 'good' : 'average')}}
    - {{:data.outputLoad}} W + {{:data.outputLoad}} kW
    \ No newline at end of file diff --git a/polaris.dme b/polaris.dme index 465f9ba1d00..916e79f1d44 100644 --- a/polaris.dme +++ b/polaris.dme @@ -612,6 +612,7 @@ #include "code\game\objects\items\devices\flashlight.dm" #include "code\game\objects\items\devices\floor_painter.dm" #include "code\game\objects\items\devices\lightreplacer.dm" +#include "code\game\objects\items\devices\locker_painter.dm" #include "code\game\objects\items\devices\megaphone.dm" #include "code\game\objects\items\devices\modkit.dm" #include "code\game\objects\items\devices\multitool.dm" @@ -850,6 +851,7 @@ #include "code\game\turfs\unsimulated\beach.dm" #include "code\game\turfs\unsimulated\floor.dm" #include "code\game\turfs\unsimulated\walls.dm" +#include "code\game\verbs\ignore.dm" #include "code\game\verbs\ooc.dm" #include "code\game\verbs\suicide.dm" #include "code\game\verbs\who.dm" @@ -1364,12 +1366,15 @@ #include "code\modules\mob\living\carbon\human\whisper.dm" #include "code\modules\mob\living\carbon\human\species\species.dm" #include "code\modules\mob\living\carbon\human\species\species_attack.dm" +#include "code\modules\mob\living\carbon\human\species\species_getters.dm" +#include "code\modules\mob\living\carbon\human\species\species_helpers.dm" #include "code\modules\mob\living\carbon\human\species\species_hud.dm" +#include "code\modules\mob\living\carbon\human\species\species_shapeshift.dm" #include "code\modules\mob\living\carbon\human\species\outsider\shadow.dm" #include "code\modules\mob\living\carbon\human\species\station\golem.dm" #include "code\modules\mob\living\carbon\human\species\station\monkey.dm" +#include "code\modules\mob\living\carbon\human\species\station\prometheans.dm" #include "code\modules\mob\living\carbon\human\species\station\seromi.dm" -#include "code\modules\mob\living\carbon\human\species\station\slime.dm" #include "code\modules\mob\living\carbon\human\species\station\station.dm" #include "code\modules\mob\living\carbon\metroid\death.dm" #include "code\modules\mob\living\carbon\metroid\emote.dm"