From 25af6373c4b917fe599775cc14f24c7265efd72f Mon Sep 17 00:00:00 2001 From: CaelAislinn Date: Wed, 4 Jan 2012 00:11:26 +1000 Subject: [PATCH 1/5] added get_opposite(var/dir) to helpers.dm, new diverters / conveyors 95% working, antiqua cargo bay had to be tweaked. Signed-off-by: CaelAislinn --- code/defines/procs/helpers.dm | 18 + code/modules/recycling/conveyor2.dm | 196 +++++++-- maps/Antiqua.dmm | 629 ++++++++++++++-------------- 3 files changed, 502 insertions(+), 341 deletions(-) diff --git a/code/defines/procs/helpers.dm b/code/defines/procs/helpers.dm index f40494225cd..eb02b09a6dc 100644 --- a/code/defines/procs/helpers.dm +++ b/code/defines/procs/helpers.dm @@ -1453,3 +1453,21 @@ proc/safepick(list/list) return return pick(list) +proc/get_opposite(var/checkdir) + switch(checkdir) + if(NORTH) + return SOUTH + if(SOUTH) + return NORTH + if(EAST) + return WEST + if(WEST) + return EAST + if(NORTHEAST) + return SOUTHWEST + if(NORTHWEST) + return SOUTHEAST + if(SOUTHEAST) + return NORTHWEST + if(SOUTHWEST) + return NORTHEAST \ No newline at end of file diff --git a/code/modules/recycling/conveyor2.dm b/code/modules/recycling/conveyor2.dm index da31364f326..ce806b6d926 100644 --- a/code/modules/recycling/conveyor2.dm +++ b/code/modules/recycling/conveyor2.dm @@ -16,39 +16,58 @@ var/list/affecting // the list of all items that will be moved this ptick var/id = "" // the control ID - must match controller ID + //these ones below for backwards compatibility + + // following two only used if a diverter is present + var/divert = 0 // if non-zero, direction to divert items + var/divdir = 0 // if diverting, will be conveyer dir needed to divert (otherwise dense) + var/basedir // this is the default (forward) direction, set by the map dir + // note dir var can vary when the direction changes + // create a conveyor /obj/machinery/conveyor/New() ..() - switch(dir) - if(NORTH) - forwards = NORTH - backwards = SOUTH - if(SOUTH) - forwards = SOUTH - backwards = NORTH - if(EAST) - forwards = EAST - backwards = WEST - if(WEST) - forwards = WEST - backwards = EAST - if(NORTHEAST) - forwards = EAST - backwards = SOUTH - if(NORTHWEST) - forwards = SOUTH - backwards = WEST - if(SOUTHEAST) - forwards = NORTH - backwards = EAST - if(SOUTHWEST) - forwards = WEST - backwards = NORTH + if(!forwards) + switch(dir) + if(NORTH) + forwards = NORTH + if(SOUTH) + forwards = SOUTH + if(EAST) + forwards = EAST + if(WEST) + forwards = WEST + if(NORTHEAST) + forwards = EAST + if(NORTHWEST) + forwards = SOUTH + if(SOUTHEAST) + forwards = NORTH + if(SOUTHWEST) + forwards = WEST + if(!backwards) + switch(dir) + if(NORTH) + backwards = SOUTH + if(SOUTH) + backwards = NORTH + if(EAST) + backwards = WEST + if(WEST) + backwards = EAST + if(NORTHEAST) + backwards = SOUTH + if(NORTHWEST) + backwards = WEST + if(SOUTHEAST) + backwards = EAST + if(SOUTHWEST) + backwards = NORTH /obj/machinery/conveyor/proc/setmove() - if(operating == 1) + if(operating > 0) movedir = forwards - else + else if(operating < 0) movedir = backwards update() @@ -72,6 +91,9 @@ return use_power(100) + if(divert && dir==divdir) // update if diverter present + movedir = divert + affecting = loc.contents - src // moved items will be all in loc spawn(1) // slight delay to prevent infinite propagation due to map order var/items_moved = 0 @@ -221,3 +243,123 @@ if(S.id == src.id) S.position = position S.update() + +// converyor diverter +// extendable arm that can be switched so items on the conveyer are diverted sideways +// situate in same turf as conveyor +// only works if belts is running proper direction +// +// +/obj/machinery/diverter + icon = 'recycling.dmi' + icon_state = "diverter0" + name = "diverter" + desc = "A diverter arm for a conveyor belt." + anchored = 1 + layer = FLY_LAYER + var/obj/machinery/conveyor/conv // the conveyor this diverter works on + var/deployed = 0 // true if diverter arm is extended + var/operating = 0 // true if arm is extending/contracting + var/divert_to // the dir that diverted items will be moved + var/divert_from // the dir items must be moving to divert + + +// create a diverter +// set up divert_to and divert_from directions depending on dir state +/obj/machinery/diverter/New() + ..() + switch(dir) + if(NORTH) + divert_to = WEST // stuff will be moved to the west + divert_from = NORTH // if entering from the north + if(SOUTH) + divert_to = EAST + divert_from = NORTH + if(EAST) + divert_to = EAST + divert_from = SOUTH + if(WEST) + divert_to = WEST + divert_from = SOUTH + if(NORTHEAST) + divert_to = NORTH + divert_from = EAST + if(NORTHWEST) + divert_to = NORTH + divert_from = WEST + if(SOUTHEAST) + divert_to = SOUTH + divert_from = EAST + if(SOUTHWEST) + divert_to = SOUTH + divert_from = WEST + spawn(2) + // wait for map load then find the conveyor in this turf + conv = locate() in src.loc + if(conv) // divert_from dir must match possible conveyor movement + if(conv.backwards != divert_from && conv.backwards != turn(divert_from,180) ) + del(src) // if no dir match, then delete self + set_divert() + update() + +// update the icon state depending on whether the diverter is extended +/obj/machinery/diverter/proc/update() + icon_state = "diverter[deployed]" + +// call to set the diversion vars of underlying conveyor +/obj/machinery/diverter/proc/set_divert() + if(conv) + if(deployed) + conv.divert = divert_to + conv.divdir = divert_from + else + conv.divert= 0 + + +// *** TESTING click to toggle +/obj/machinery/diverter/Click() + toggle() + + +// toggle between arm deployed and not deployed, showing animation +// +/obj/machinery/diverter/proc/toggle() + if( stat & (NOPOWER|BROKEN)) + return + + if(operating) + return + + use_power(50) + operating = 1 + if(deployed) + flick("diverter10",src) + icon_state = "diverter0" + sleep(10) + deployed = 0 + else + flick("diverter01",src) + icon_state = "diverter1" + sleep(10) + deployed = 1 + operating = 0 + update() + set_divert() + +// don't allow movement into the 'backwards' direction if deployed +/obj/machinery/diverter/CanPass(atom/movable/O, var/turf/target) + var/direct = get_dir(O, target) + if(direct == divert_to) // prevent movement through body of diverter + return 0 + if(!deployed) + return 1 + return(direct != turn(divert_from,180)) + +// don't allow movement through the arm if deployed +/obj/machinery/diverter/CheckExit(atom/movable/O, var/turf/target) + var/direct = get_dir(O, target) + if(direct == turn(divert_to,180)) // prevent movement through body of diverter + return 0 + if(!deployed) + return 1 + return(direct != divert_from) diff --git a/maps/Antiqua.dmm b/maps/Antiqua.dmm index d1f6c4c7506..d176893059b 100644 --- a/maps/Antiqua.dmm +++ b/maps/Antiqua.dmm @@ -403,254 +403,255 @@ "hM" = (/obj/machinery/light_switch{pixel_x = 24; pixel_y = 1},/turf/simulated/floor,/area/quartermaster/storage) "hN" = (/obj/effect/sign/movingparts,/turf/simulated/wall,/area/quartermaster/qm) "hO" = (/obj/machinery/door/airlock/glass_security{name = "Brig"; req_access_txt = "1"},/turf/simulated/floor,/area) -"hP" = (/obj/machinery/conveyor{dir = 1; id = "QMoffload"},/turf/simulated/floor,/area/quartermaster/storage) +"hP" = (/obj/machinery/conveyor{backwards = 2; dir = 2; divdir = 0; forwards = 1; id = "QMoffload"},/turf/simulated/floor,/area/quartermaster/storage) "hQ" = (/turf/simulated/floor{dir = 8; icon_state = "warning"},/area/quartermaster/storage) "hR" = (/turf/simulated/floor{dir = 4; icon_state = "warning"},/area/quartermaster/qm) -"hS" = (/obj/machinery/conveyor{dir = 2; divdir = 0; id = "QMonload"},/turf/simulated/floor,/area/quartermaster/qm) +"hS" = (/obj/machinery/conveyor{backwards = null; dir = 2; divdir = 0; forwards = null; id = "QMonload"},/turf/simulated/floor,/area/quartermaster/qm) "hT" = (/obj/structure/stool/chair{name = "Bailiff"},/turf/simulated/floor,/area) "hU" = (/obj/machinery/door/airlock/maintenance,/turf/simulated/floor,/area/quartermaster/qm) -"hV" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plating,/area/quartermaster/qm) -"hW" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plating,/area/maintenance/starboard) -"hX" = (/obj/structure/stool/chair{dir = 4},/turf/simulated/floor,/area) -"hY" = (/obj/structure/table{step_y = 0},/turf/simulated/floor,/area) -"hZ" = (/obj/structure/stool/chair{dir = 8},/turf/simulated/floor,/area) -"ia" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plating,/area) -"ib" = (/obj/structure/closet/crate,/turf/simulated/floor{icon_state = "delivery"; name = "floor"},/area/quartermaster/storage) -"ic" = (/obj/machinery/requests_console{department = "Quartermaster"; name = "Quartermaster Requests Console"; pixel_x = -24; pixel_y = 1},/turf/simulated/floor,/area/quartermaster/qm) -"id" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plating,/area/quartermaster/qm) -"ie" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plating,/area/maintenance/starboard) -"if" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor{icon_state = "grimy"},/area) -"ig" = (/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor{icon_state = "grimy"},/area) -"ih" = (/obj/structure/window/reinforced{dir = 1},/obj/item/device/flashlight,/turf/simulated/floor{icon_state = "grimy"},/area) -"ii" = (/obj/structure/stool/bed,/turf/simulated/floor,/area) -"ij" = (/obj/machinery/door/window/brigdoor/eastleft,/obj/machinery/door/window/brigdoor/westright,/turf/simulated/floor,/area) -"ik" = (/obj/machinery/computer/supplycomp,/turf/simulated/floor,/area/quartermaster/storage) -"il" = (/obj/machinery/door_control{id = "QMLoaddoor"; name = "Loading Doors"; pixel_x = -24; pixel_y = 0},/turf/simulated/floor,/area/quartermaster/qm) -"im" = (/turf/simulated/floor{dir = 6; icon_state = "warning"},/area/quartermaster/qm) -"in" = (/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor{icon_state = "grimy"},/area) -"io" = (/turf/simulated/floor{icon_state = "grimy"},/area) -"ip" = (/obj/item/weapon/cigpacket,/turf/simulated/floor{icon_state = "grimy"},/area) -"iq" = (/turf/simulated/floor{dir = 10; icon_state = "warning"},/area/quartermaster/storage) -"ir" = (/turf/simulated/floor{icon_state = "warning"},/area/quartermaster/storage) -"is" = (/obj/effect/sign/movingparts{pixel_x = 32; pixel_y = 0},/turf/simulated/floor{icon_state = "warning"},/area/quartermaster/storage) -"it" = (/obj/effect/sign/movingparts{pixel_x = -32; pixel_y = 0},/turf/simulated/floor{dir = 6; icon_state = "warning"},/area/quartermaster/qm) -"iu" = (/obj/machinery/conveyor{dir = 8; id = "QMonload"},/turf/simulated/floor,/area/quartermaster/qm) -"iv" = (/obj/machinery/conveyor{dir = 2; divdir = 0; id = "QMonload"},/obj/effect/sign/movingparts{pixel_x = 32},/turf/simulated/floor,/area/quartermaster/qm) -"iw" = (/turf/simulated/floor/plating{dir = 2; icon_state = "warnplate"; tag = "icon-warnplate (EAST)"},/area/quartermaster/qm) -"ix" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/effect/sign/movingparts,/turf/simulated/floor/plating,/area/quartermaster/qm) -"iy" = (/obj/machinery/door/window/westleft,/turf/simulated/floor{icon_state = "grimy"},/area) -"iz" = (/obj/machinery/conveyor{dir = 1; divert = 1; id = "QMoffload"},/obj/machinery/diverter{dir = 4},/turf/simulated/floor,/area/quartermaster/storage) -"iA" = (/obj/machinery/conveyor{dir = 8; id = "QMoffload"},/turf/simulated/floor,/area/quartermaster/storage) -"iB" = (/obj/structure/plasticflaps,/obj/machinery/conveyor{dir = 8; id = "QMoffload"},/turf/simulated/floor,/area/quartermaster/qm) -"iC" = (/obj/machinery/conveyor{dir = 8; id = "QMshuttle"},/turf/simulated/floor,/area/quartermaster/qm) -"iD" = (/obj/machinery/conveyor{dir = 8; id = "QMshuttle"},/obj/machinery/diverter{dir = 9},/turf/simulated/floor,/area/quartermaster/qm) -"iE" = (/obj/machinery/conveyor{dir = 8; id = "QMshuttle"},/obj/machinery/diverter{dir = 5},/turf/simulated/floor,/area/quartermaster/qm) -"iF" = (/obj/structure/plasticflaps,/obj/machinery/conveyor{dir = 8; id = "QMshuttle"},/turf/simulated/floor,/area/quartermaster/qm) -"iG" = (/obj/machinery/conveyor{dir = 8; id = "QMshuttle"},/turf/simulated/floor/plating,/area/quartermaster/qm) -"iH" = (/obj/structure/plasticflaps,/obj/machinery/conveyor{dir = 8; id = "QMshuttle"},/turf/simulated/floor/plating,/area/quartermaster/qm) -"iI" = (/obj/machinery/door/poddoor{density = 1; icon_state = "pdoor1"; id = "QMLoaddoor"; name = "Supply Dock Loading Door"; opacity = 1},/obj/machinery/conveyor{dir = 8; id = "QMshuttle"},/turf/simulated/floor/plating,/area/quartermaster/qm) -"iJ" = (/obj/machinery/vending/security,/turf/simulated/floor,/area) -"iK" = (/obj/structure/table/woodentable,/obj/item/device/detective_scanner,/turf/simulated/floor{icon_state = "grimy"},/area) -"iL" = (/obj/structure/closet/secure_closet/detective,/turf/simulated/floor{icon_state = "grimy"},/area) -"iM" = (/obj/machinery/door/airlock/security{name = "Security"; req_access = null; req_access_txt = "1"},/turf/simulated/floor,/area) -"iN" = (/turf/simulated/floor{dir = 1; icon_state = "warning"},/area/quartermaster/storage) -"iO" = (/obj/effect/sign/movingparts{pixel_x = 32; pixel_y = 0},/turf/simulated/floor{dir = 1; icon_state = "warning"},/area/quartermaster/storage) -"iP" = (/obj/effect/sign/movingparts{pixel_x = -32; pixel_y = 0},/turf/simulated/floor{dir = 1; icon_state = "warning"},/area/quartermaster/qm) -"iQ" = (/turf/simulated/floor{dir = 1; icon_state = "warning"},/area/quartermaster/qm) -"iR" = (/obj/machinery/conveyor_switch{id = "QMshuttle"; name = "Shuttle conveyor switch"},/obj/effect/sign/movingparts{pixel_x = 32},/turf/simulated/floor{dir = 1; icon_state = "warning"},/area/quartermaster/qm) -"iS" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor,/area/quartermaster/qm) -"iT" = (/turf/simulated/floor/plating{dir = 1; icon_state = "warnplate"; tag = "icon-warnplate (EAST)"},/area/quartermaster/qm) -"iU" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/effect/sign/movingparts,/turf/simulated/floor/plating,/area/quartermaster/qm) -"iV" = (/turf/simulated/wall,/area/maintenance/apmaint) -"iW" = (/turf/simulated/wall,/area/maintenance/aft) -"iX" = (/obj/structure/plasticflaps,/turf/simulated/floor,/area/quartermaster/storage) -"iY" = (/obj/machinery/navbeacon{codes_txt = "delivery;dir=2"; dir = 2; freq = 1400; location = "QM #3"},/turf/simulated/floor{icon_state = "bot"},/area/quartermaster/storage) -"iZ" = (/obj/machinery/door/airlock/glass,/turf/simulated/floor,/area/quartermaster/qm) -"ja" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor,/area/quartermaster/qm) -"jb" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plating,/area/maintenance/starboard) -"jc" = (/obj/machinery/door/airlock/maintenance_hatch,/turf/simulated/floor/plating,/area/maintenance/apmaint) -"jd" = (/turf/simulated/floor/plating,/area/maintenance/apmaint) -"je" = (/obj/machinery/door/airlock/maintenance_hatch,/turf/simulated/floor/plating,/area/maintenance/aft) -"jf" = (/turf/simulated/floor/plating,/area/maintenance/aft) -"jg" = (/obj/machinery/navbeacon{codes_txt = "delivery;dir=2"; dir = 2; freq = 1400; location = "QM #4"},/turf/simulated/floor{icon_state = "bot"},/area/quartermaster/storage) -"jh" = (/obj/machinery/conveyor_switch{id = "QMoffload"; name = "Cargo Bay Conveyor Switch"},/turf/simulated/floor,/area/quartermaster/qm) -"ji" = (/obj/machinery/light/spot{dir = 4; layer = 2.8},/turf/simulated/floor,/area/quartermaster/qm) -"jj" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor,/area/quartermaster/qm) -"jk" = (/obj/machinery/computer/supplycomp,/turf/simulated/floor,/area/quartermaster/qm) -"jl" = (/obj/structure/table/reinforced,/obj/item/weapon/stamp/denied,/obj/item/weapon/stamp{name = "Quartermaster's stamp"; pixel_x = -3; pixel_y = 3},/turf/simulated/floor,/area/quartermaster/qm) -"jm" = (/obj/machinery/disposal,/turf/simulated/floor,/area/quartermaster/qm) -"jn" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor,/area/quartermaster/qm) -"jo" = (/obj/machinery/vending/snack,/turf/simulated/floor,/area) -"jp" = (/obj/effect/landmark/start{name = "Cargo Technician"},/turf/simulated/floor,/area/quartermaster/storage) -"jq" = (/obj/structure/table/reinforced,/obj/machinery/door/window/westright,/obj/machinery/door/window/eastleft,/turf/simulated/floor,/area/quartermaster/qm) -"jr" = (/obj/structure/stool/chair{dir = 8},/obj/effect/landmark/start{name = "Quartermaster"},/turf/simulated/floor,/area/quartermaster/qm) -"js" = (/obj/structure/table/reinforced,/obj/item/weapon/paper_bin,/obj/item/weapon/pen,/turf/simulated/floor,/area/quartermaster/qm) -"jt" = (/obj/structure/table/reinforced,/obj/machinery/door/window/westleft,/obj/machinery/door/window/eastright,/turf/simulated/floor,/area/quartermaster/qm) -"ju" = (/obj/structure/rack,/obj/item/clothing/suit/fire/firefighter,/obj/item/clothing/mask/gas,/obj/item/weapon/tank/emergency_oxygen,/obj/item/clothing/glasses/meson,/turf/simulated/floor,/area/quartermaster/qm) -"jv" = (/obj/structure/table,/turf/simulated/floor,/area/quartermaster/storage) -"jw" = (/obj/structure/table,/obj/item/weapon/storage/toolbox/emergency,/turf/simulated/floor,/area/quartermaster/storage) -"jx" = (/obj/structure/table,/obj/item/weapon/hand_labeler,/turf/simulated/floor,/area/quartermaster/storage) -"jy" = (/obj/structure/table,/obj/item/weapon/crowbar,/turf/simulated/floor,/area/quartermaster/storage) -"jz" = (/obj/structure/table,/obj/machinery/cell_charger,/obj/machinery/camera{c_tag = "Cargo Loading Area North"},/turf/simulated/floor,/area/quartermaster/storage) -"jA" = (/obj/structure/closet,/turf/simulated/floor,/area/quartermaster/qm) -"jB" = (/obj/structure/rack,/turf/simulated/floor,/area/quartermaster/qm) -"jC" = (/obj/structure/closet/secure_closet/personal,/turf/simulated/floor,/area/quartermaster/qm) -"jD" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plating,/area) -"jE" = (/obj/structure/closet/secure_closet/captains,/turf/simulated/floor,/area) -"jF" = (/obj/structure/table/woodentable{tag = "icon-wood_1tileendtable (EAST)"; icon_state = "wood_1tileendtable"; dir = 4},/obj/item/weapon/hand_tele,/turf/simulated/floor,/area) -"jG" = (/obj/structure/table/woodentable{tag = "icon-wood_1tilethick (EAST)"; icon_state = "wood_1tilethick"; dir = 4},/obj/item/weapon/camera_test,/turf/simulated/floor,/area) -"jH" = (/obj/structure/table/woodentable{tag = "icon-wood_1tileendtable (WEST)"; icon_state = "wood_1tileendtable"; dir = 8},/obj/item/weapon/coin,/turf/simulated/floor,/area) -"jI" = (/turf/simulated/wall,/area/crew_quarters/cafeteria) -"jJ" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = "Streight"},/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock/glass{name = "Cafeteria"},/turf/simulated/floor{icon_state = "bar"},/area/crew_quarters/cafeteria) -"jK" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock/glass{name = "Cafeteria"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor{icon_state = "bar"},/area/crew_quarters/cafeteria) -"jL" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/obj/structure/grille,/turf/simulated/floor{icon_state = "bar"},/area/crew_quarters/cafeteria) -"jM" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/structure/grille,/turf/simulated/floor{icon_state = "bar"},/area/crew_quarters/cafeteria) -"jN" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/structure/grille,/turf/simulated/floor{icon_state = "bar"},/area/crew_quarters/cafeteria) -"jO" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock/glass{name = "Cafeteria"},/turf/simulated/floor{icon_state = "bar"},/area/crew_quarters/cafeteria) -"jP" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock/glass{name = "Cafeteria"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor{icon_state = "bar"},/area/crew_quarters/cafeteria) -"jQ" = (/obj/machinery/computer/communications,/turf/simulated/floor,/area) -"jR" = (/turf/simulated/floor{icon_state = "bar"},/area/crew_quarters/cafeteria) -"jS" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = "Streight"},/turf/simulated/floor{icon_state = "bar"},/area/crew_quarters/cafeteria) -"jT" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor{icon_state = "bar"},/area/crew_quarters/cafeteria) -"jU" = (/obj/structure/stool/chair{dir = 4},/turf/simulated/floor{icon_state = "bar"},/area/crew_quarters/cafeteria) -"jV" = (/obj/structure/table,/obj/machinery/light/spot{dir = 1},/turf/simulated/floor{icon_state = "bar"},/area/crew_quarters/cafeteria) -"jW" = (/obj/structure/table,/obj/item/weapon/reagent_containers/food/condiment/peppermill{pixel_x = -8; pixel_y = 2},/obj/item/weapon/reagent_containers/food/condiment/saltshaker{pixel_x = -2},/turf/simulated/floor{icon_state = "bar"},/area/crew_quarters/cafeteria) -"jX" = (/obj/structure/stool/chair{dir = 8},/turf/simulated/floor{icon_state = "bar"},/area/crew_quarters/cafeteria) -"jY" = (/obj/structure/table,/obj/item/weapon/reagent_containers/food/condiment/saltshaker{pixel_x = 8; pixel_y = 4},/obj/item/weapon/reagent_containers/food/condiment/peppermill{pixel_x = 2; pixel_y = 0},/turf/simulated/floor{icon_state = "bar"},/area/crew_quarters/cafeteria) -"jZ" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 8},/turf/simulated/floor{icon_state = "bar"},/area/crew_quarters/cafeteria) -"ka" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 8; icon_state = "out"; on = 1},/turf/simulated/floor{icon_state = "bar"},/area/crew_quarters/cafeteria) -"kb" = (/turf/simulated/floor{dir = 9; icon_state = "carpetside"},/area) -"kc" = (/turf/simulated/floor{dir = 1; icon_state = "carpetside"},/area) -"kd" = (/turf/simulated/floor{dir = 5; icon_state = "carpetside"},/area) -"ke" = (/turf/simulated/wall,/area/maintenance/asmaint) -"kf" = (/turf/simulated/floor/plating,/area/maintenance/asmaint) -"kg" = (/turf/simulated/wall/r_wall,/area/maintenance/asmaint) -"kh" = (/obj/machinery/computer/crew,/turf/simulated/floor,/area) -"ki" = (/obj/structure/table,/turf/simulated/floor{icon_state = "bar"},/area/crew_quarters/cafeteria) -"kj" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor{icon_state = "bar"},/area/crew_quarters/cafeteria) -"kk" = (/obj/machinery/alarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/turf/simulated/floor{icon_state = "bar"},/area/crew_quarters/cafeteria) -"kl" = (/turf/simulated/floor{dir = 8; icon_state = "carpetside"},/area) -"km" = (/turf/simulated/floor{icon_state = "carpet"},/area) -"kn" = (/turf/simulated/floor{dir = 4; icon_state = "carpetside"},/area) -"ko" = (/obj/machinery/light/spot{dir = 4; layer = 2.8},/turf/simulated/floor{icon_state = "bar"},/area/crew_quarters/cafeteria) -"kp" = (/obj/structure/table{tag = "icon-tabledir (SOUTHEAST)"; icon_state = "tabledir"; dir = 6},/turf/simulated/floor,/area) -"kq" = (/obj/structure/table{tag = "icon-tabledir (SOUTHWEST)"; icon_state = "tabledir"; dir = 10},/turf/simulated/floor,/area) -"kr" = (/obj/machinery/door/airlock/command{name = "Captain's Quarters"; req_access = null; req_access_txt = "20"},/turf/simulated/floor,/area) -"ks" = (/obj/machinery/light/spot{dir = 8; layer = 2.8},/turf/simulated/floor{icon_state = "bar"},/area/crew_quarters/cafeteria) -"kt" = (/obj/machinery/camera{c_tag = "Cafeteria Starboard"; dir = 8},/turf/simulated/floor{icon_state = "bar"},/area/crew_quarters/cafeteria) -"ku" = (/obj/machinery/door{icon = 'icons/obj/doors/doormorgue.dmi'; name = "Crew Quarters"; req_access_txt = "0"},/turf/simulated/floor,/area) -"kv" = (/turf/simulated/floor{dir = 10; icon_state = "carpetside"},/area) -"kw" = (/turf/simulated/floor{icon_state = "carpetside"},/area) -"kx" = (/turf/simulated/floor{dir = 6; icon_state = "carpetside"},/area) -"ky" = (/obj/machinery/computer/shuttle,/turf/simulated/floor,/area) -"kz" = (/obj/structure/table{dir = 5; icon_state = "tabledir"},/turf/simulated/floor,/area) -"kA" = (/obj/structure/table{tag = "icon-tabledir (NORTH)"; icon_state = "tabledir"; dir = 1},/turf/simulated/floor,/area) -"kB" = (/obj/structure/table{icon_state = "tabledir"; dir = 9},/turf/simulated/floor,/area) -"kC" = (/obj/item/weapon/mop,/turf/simulated/floor,/area) -"kD" = (/obj/machinery/camera{c_tag = "Cafeteria Port"; dir = 4},/obj/machinery/alarm{dir = 4; icon_state = "alarm0"; pixel_x = -22},/turf/simulated/floor{icon_state = "bar"},/area/crew_quarters/cafeteria) -"kE" = (/obj/machinery/computer/station_alert,/turf/simulated/floor,/area) -"kF" = (/obj/structure/stool/chair{dir = 1},/turf/simulated/floor,/area) -"kG" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor{icon_state = "bar"},/area/crew_quarters/cafeteria) -"kH" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 6},/turf/simulated/floor{icon_state = "bar"},/area/crew_quarters/cafeteria) -"kI" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/wall,/area/crew_quarters/kitchen) -"kJ" = (/obj/machinery/navbeacon{codes_txt = "delivery;dir=2"; freq = 1400; location = "Kitchen"},/obj/machinery/door/firedoor/border_only,/obj/machinery/door/window/northleft{name = "Kitchen Delivery"; req_access_txt = "34;25;28"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor{icon_state = "bot"},/area/crew_quarters/kitchen) -"kK" = (/obj/structure/table/reinforced,/obj/machinery/door/firedoor/border_only,/obj/machinery/door/poddoor/shutters{density = 0; icon_state = "shutter0"; id = "kitchen"; name = "Kitchen Shutters"; opacity = 0},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor{icon_state = "cafeteria"},/area/crew_quarters/kitchen) -"kL" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 4},/turf/simulated/wall,/area/crew_quarters/kitchen) -"kM" = (/turf/simulated/wall,/area/crew_quarters/kitchen) -"kN" = (/obj/machinery/computer/supplycomp,/turf/simulated/floor,/area) -"kO" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 4; icon_state = "on"; on = 1},/obj/machinery/power/apc{dir = 8},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/simulated/floor{icon_state = "bar"},/area/crew_quarters/cafeteria) -"kP" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"; tag = "90Curve"},/turf/simulated/floor{icon_state = "bar"},/area/crew_quarters/cafeteria) -"kQ" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 4},/turf/simulated/floor{icon_state = "bar"},/area/crew_quarters/cafeteria) -"kR" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{req_access_txt = 1},/turf/simulated/floor{icon_state = "bar"},/area/crew_quarters/cafeteria) -"kS" = (/obj/machinery/door/window/southleft{name = "Kitchen Delivery"; req_access_txt = "25;28"},/turf/simulated/floor{icon_state = "delivery"},/area/crew_quarters/kitchen) -"kT" = (/obj/structure/window/reinforced{dir = 8},/obj/machinery/sink/kitchen2{pixel_y = 28},/turf/simulated/floor{icon_state = "cafeteria"},/area/crew_quarters/kitchen) -"kU" = (/turf/simulated/floor{icon_state = "cafeteria"},/area/crew_quarters/kitchen) -"kV" = (/obj/machinery/door_control{id = "kitchen"; name = "Kitchen Shutters"; pixel_x = 0; pixel_y = 24},/obj/machinery/atmospherics/unary/vent_pump{dir = 1; icon_state = "out"; on = 1},/turf/simulated/floor{icon_state = "cafeteria"},/area/crew_quarters/kitchen) -"kW" = (/obj/structure/closet/secure_closet/kitchen,/turf/simulated/floor{icon_state = "cafeteria"},/area/crew_quarters/kitchen) -"kX" = (/obj/structure/table/reinforced,/obj/machinery/door/firedoor/border_only,/obj/machinery/door/poddoor/shutters{density = 0; icon_state = "shutter0"; id = "bar"; name = "Bar Shutters"; opacity = 0},/turf/simulated/floor{icon_state = "cafeteria"},/area/crew_quarters/bar) -"kY" = (/obj/structure/table/reinforced,/obj/machinery/door/firedoor/border_only,/obj/machinery/door/poddoor/shutters{density = 0; icon_state = "shutter0"; id = "bar"; name = "Bar Shutters"; opacity = 0},/obj/item/weapon/zippo,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor{icon_state = "cafeteria"},/area/crew_quarters/bar) -"kZ" = (/obj/structure/table/reinforced,/obj/machinery/door/firedoor/border_only,/obj/machinery/door/poddoor/shutters{density = 0; icon_state = "shutter0"; id = "bar"; name = "Bar Shutters"; opacity = 0},/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 8},/turf/simulated/floor{icon_state = "cafeteria"},/area/crew_quarters/bar) -"la" = (/obj/structure/table/reinforced,/obj/machinery/door/firedoor/border_only,/obj/machinery/door/poddoor/shutters{density = 0; icon_state = "shutter0"; id = "bar"; name = "Bar Shutters"; opacity = 0},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor{icon_state = "cafeteria"},/area/crew_quarters/bar) -"lb" = (/obj/structure/table/reinforced,/obj/machinery/door/firedoor/border_only,/obj/machinery/door/poddoor/shutters{density = 0; icon_state = "shutter0"; id = "bar"; name = "Bar Shutters"; opacity = 0},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden{req_access_txt = 1},/turf/simulated/floor{icon_state = "cafeteria"},/area/crew_quarters/bar) -"lc" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/wall,/area/crew_quarters/kitchen) -"ld" = (/obj/machinery/light_switch{dir = 8; pixel_x = -24; pixel_y = 6},/obj/machinery/light_switch{dir = 8; name = "light switch (Cafeteria)"; otherarea = "crew_quarters/cafeteria"; pixel_x = -24; pixel_y = -6},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor{icon_state = "cafeteria"},/area/crew_quarters/kitchen) -"le" = (/obj/structure/table,/obj/machinery/microwave,/obj/structure/window/reinforced{dir = 8},/obj/machinery/atmospherics/unary/vent_scrubber{dir = 8; icon_state = "on"; on = 1},/turf/simulated/floor{icon_state = "cafeteria"},/area/crew_quarters/kitchen) -"lf" = (/obj/structure/table,/turf/simulated/floor{icon_state = "cafeteria"},/area/crew_quarters/kitchen) -"lg" = (/obj/structure/closet/secure_closet/fridge,/turf/simulated/floor{icon_state = "cafeteria"},/area/crew_quarters/kitchen) -"lh" = (/obj/machinery/door_control{dir = 8; id = "bar"; name = "Bar Shutters"; pixel_x = -24; pixel_y = 0},/turf/simulated/floor{icon_state = "cafeteria"},/area/crew_quarters/bar) -"li" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor{icon_state = "cafeteria"},/area/crew_quarters/bar) -"lj" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 1; icon_state = "on"; on = 1},/turf/simulated/floor{icon_state = "cafeteria"},/area/crew_quarters/bar) -"lk" = (/turf/simulated/floor{icon_state = "cafeteria"},/area/crew_quarters/bar) -"ll" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{req_access_txt = 1},/turf/simulated/floor{icon_state = "cafeteria"},/area/crew_quarters/bar) -"lm" = (/obj/structure/reagent_dispensers/beerkeg,/obj/structure/window/reinforced{dir = 4},/obj/machinery/light_switch{dir = 1; pixel_y = 24},/turf/simulated/floor{icon_state = "cafeteria"},/area/crew_quarters/bar) -"ln" = (/obj/machinery/light/spot{dir = 4; layer = 2.8},/obj/structure/table,/obj/machinery/microwave,/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor{icon_state = "cafeteria"},/area/crew_quarters/kitchen) -"lo" = (/obj/structure/table,/obj/item/weapon/kitchen/rollingpin,/turf/simulated/floor{icon_state = "cafeteria"},/area/crew_quarters/kitchen) -"lp" = (/obj/structure/table,/obj/item/weapon/reagent_containers/food/condiment/enzyme,/turf/simulated/floor{icon_state = "cafeteria"},/area/crew_quarters/kitchen) -"lq" = (/obj/machinery/light/spot{dir = 4; layer = 2.8},/obj/structure/closet/secure_closet/meat,/turf/simulated/floor{icon_state = "cafeteria"},/area/crew_quarters/kitchen) -"lr" = (/obj/machinery/smartfridge,/turf/simulated/wall,/area) -"ls" = (/obj/structure/closet/gmcloset,/turf/simulated/floor{icon_state = "cafeteria"},/area/crew_quarters/bar) -"lt" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = "90Curve"},/turf/simulated/floor{icon_state = "cafeteria"},/area/crew_quarters/bar) -"lu" = (/obj/effect/landmark/start{name = "Bartender"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0; tag = "Streight"},/turf/simulated/floor{icon_state = "cafeteria"},/area/crew_quarters/bar) -"lv" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0; tag = "Streight"},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = "90Curve"},/turf/simulated/floor{icon_state = "cafeteria"},/area/crew_quarters/bar) -"lw" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 1; icon_state = "out"; on = 1},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0; tag = "Streight"},/turf/simulated/floor{icon_state = "cafeteria"},/area/crew_quarters/bar) -"lx" = (/obj/machinery/door/window/eastright{name = "Bar"; req_one_access_txt = "25"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0; tag = "Streight"},/turf/simulated/floor{icon_state = "cafeteria"},/area/crew_quarters/bar) -"ly" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = "90Curve"},/turf/simulated/floor{icon_state = "cafeteria"},/area/crew_quarters/kitchen) -"lz" = (/obj/machinery/door/window/westleft{name = "Kitchen"; req_access_txt = "28"},/turf/simulated/floor{icon_state = "cafeteria"},/area/crew_quarters/kitchen) -"lA" = (/obj/effect/landmark/start{name = "Chef"},/turf/simulated/floor{icon_state = "cafeteria"},/area/crew_quarters/kitchen) -"lB" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock{name = "Freezer"; req_one_access_txt = "28"},/turf/simulated/floor{icon_state = "cafeteria"},/area/crew_quarters/kitchen) -"lC" = (/turf/simulated/floor{icon_state = "freezerfloor"},/area/crew_quarters/kitchen) -"lD" = (/obj/machinery/light{icon_state = "tube1"; dir = 4},/turf/simulated/floor{icon_state = "freezerfloor"},/area/crew_quarters/kitchen) -"lE" = (/obj/machinery/door/airlock/maintenance_hatch,/turf/simulated/floor/plating,/area/maintenance/asmaint) -"lF" = (/obj/structure/closet/crate/internals,/turf/simulated/floor,/area) -"lG" = (/obj/structure/table/reinforced,/obj/item/weapon/gun/projectile/shotgun,/obj/item/clothing/head/that,/obj/machinery/light/spot,/turf/simulated/floor{icon_state = "cafeteria"},/area/crew_quarters/bar) -"lH" = (/obj/machinery/vending/boozeomat{pixel_x = 0},/turf/simulated/floor{icon_state = "cafeteria"},/area/crew_quarters/bar) -"lI" = (/obj/structure/table/reinforced,/obj/item/weapon/book/manual/barman_recipes{pixel_x = 4; pixel_y = 8},/obj/item/weapon/reagent_containers/food/drinks/shaker,/turf/simulated/floor{icon_state = "cafeteria"},/area/crew_quarters/bar) -"lJ" = (/obj/structure/table/reinforced,/obj/machinery/power/apc,/obj/structure/cable{d2 = 1; icon_state = "0-1"},/turf/simulated/floor{icon_state = "cafeteria"},/area/crew_quarters/bar) -"lK" = (/obj/structure/table/reinforced,/obj/machinery/light/spot,/obj/machinery/requests_console{department = "Bar"; departmentType = 2; name = "Bar RC"; pixel_x = -1; pixel_y = -30},/turf/simulated/floor{icon_state = "cafeteria"},/area/crew_quarters/bar) -"lL" = (/obj/structure/closet/secure_closet/bar{req_access_txt = "25"},/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor{icon_state = "cafeteria"},/area/crew_quarters/bar) -"lM" = (/obj/machinery/power/apc,/obj/structure/cable{d2 = 1; icon_state = "0-1"},/turf/simulated/floor{icon_state = "cafeteria"},/area/crew_quarters/kitchen) -"lN" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/table,/turf/simulated/floor{icon_state = "cafeteria"},/area/crew_quarters/kitchen) -"lO" = (/obj/machinery/requests_console{department = "Kitchen"; departmentType = 2; name = "Kitchen RC"; pixel_x = 0; pixel_y = -30},/obj/structure/table,/turf/simulated/floor{icon_state = "cafeteria"},/area/crew_quarters/kitchen) -"lP" = (/obj/item/weapon/storage/donkpocket_kit,/obj/structure/table,/turf/simulated/floor{icon_state = "cafeteria"},/area/crew_quarters/kitchen) -"lQ" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0; tag = "Streight"},/obj/machinery/camera{c_tag = "Kitchen"; dir = 1},/obj/structure/table,/obj/machinery/processor,/obj/machinery/alarm{dir = 1; icon_state = "alarm0"; pixel_y = -22},/turf/simulated/floor{icon_state = "cafeteria"},/area/crew_quarters/kitchen) -"lR" = (/obj/machinery/light/spot,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0; tag = "Streight"},/obj/structure/table,/obj/machinery/blender{pixel_y = 0},/turf/simulated/floor{icon_state = "cafeteria"},/area/crew_quarters/kitchen) -"lS" = (/obj/machinery/power/apc,/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/table,/obj/machinery/juicer,/turf/simulated/floor{icon_state = "cafeteria"},/area/crew_quarters/kitchen) -"lT" = (/obj/machinery/chem_master/condimaster,/turf/simulated/floor{icon_state = "cafeteria"},/area/crew_quarters/kitchen) -"lU" = (/obj/structure/kitchenspike,/turf/simulated/floor{icon_state = "freezerfloor"},/area/crew_quarters/kitchen) -"lV" = (/obj/machinery/gibber,/turf/simulated/floor{icon_state = "freezerfloor"},/area/crew_quarters/kitchen) -"lW" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating,/area) -"lX" = (/turf/simulated/wall/r_wall,/area/crew_quarters/bar) -"lY" = (/turf/simulated/wall/r_wall,/area/crew_quarters/kitchen) -"lZ" = (/turf/simulated/wall/r_wall,/area/maintenance/aft) -"ma" = (/turf/unsimulated/wall,/area/start) -"mb" = (/turf/space,/area/start) -"mc" = (/obj/effect/landmark/start,/turf/space,/area/start) -"md" = (/turf/unsimulated/wall{icon = 'icons/misc/fullscreen.dmi'; icon_state = "titleold"; name = "Baystation 13"},/area/start) -"me" = (/turf/space,/area/shuttle) -"mf" = (/turf/simulated/shuttle/wall{tag = "icon-swall_s6"; icon_state = "swall_s6"; dir = 2},/area/supply/dock) -"mg" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plating,/area/supply/dock) -"mh" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plating,/area/supply/dock) -"mi" = (/turf/simulated/shuttle/wall{tag = "icon-swall_s10"; icon_state = "swall_s10"; dir = 2},/area/supply/dock) -"mj" = (/turf/simulated/shuttle/floor,/turf/simulated/shuttle/wall{tag = "icon-swall_f9"; icon_state = "swall_f9"; dir = 2},/area/supply/dock) -"mk" = (/obj/effect/marker/supplymarker,/turf/simulated/shuttle/floor,/area/supply/dock) -"ml" = (/turf/simulated/shuttle/floor,/turf/simulated/shuttle/wall{dir = 2; icon_state = "swall_f5"; tag = "icon-swall_f10"},/area/supply/dock) -"mm" = (/turf/simulated/shuttle/wall{tag = "icon-swall3"; icon_state = "swall3"; dir = 2},/area/supply/dock) -"mn" = (/obj/effect/sign/securearea{desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"; name = "EXTERNAL AIRLOCK"; pixel_x = -32},/obj/effect/marker/supplymarker,/turf/simulated/shuttle/floor,/area/supply/dock) -"mo" = (/obj/machinery/door/airlock/external{name = "Supply Dock Airlock"},/turf/simulated/shuttle/floor,/area/supply/dock) -"mp" = (/turf/simulated/shuttle/floor,/area/supply/dock) -"mq" = (/obj/machinery/conveyor{dir = 2; id = "QMshuttle"},/obj/effect/sign/movingparts{pixel_x = -32},/turf/simulated/shuttle/floor,/area/supply/dock) -"mr" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plating,/area/supply/dock) -"ms" = (/obj/machinery/conveyor{dir = 2; id = "QMshuttle"},/turf/simulated/shuttle/floor,/area/supply/dock) -"mt" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plating,/area/supply/dock) -"mu" = (/turf/space,/area/supply) -"mv" = (/obj/machinery/door/poddoor{density = 1; icon_state = "pdoor1"; id = "QMLoaddoor"; name = "Supply Dock Loading Door"; opacity = 1},/obj/machinery/conveyor{dir = 8; id = "QMshuttle"},/obj/structure/plasticflaps,/turf/simulated/shuttle/floor,/area/supply/dock) -"mw" = (/obj/machinery/conveyor{dir = 8; id = "QMshuttle"},/obj/machinery/diverter{dir = 5},/turf/simulated/shuttle/floor,/area/supply/dock) -"mx" = (/turf/simulated/shuttle/wall{tag = "icon-swall_s5"; icon_state = "swall_s5"; dir = 2},/area/supply/dock) -"my" = (/obj/structure/shuttle/engine/heater,/turf/simulated/shuttle/wall{tag = "icon-swall14"; icon_state = "swall14"; dir = 2},/area/supply/dock) -"mz" = (/turf/simulated/shuttle/wall{tag = "icon-swall_s9"; icon_state = "swall_s9"; dir = 2},/area/supply/dock) -"mA" = (/obj/structure/shuttle/engine/propulsion/burst/left,/turf/space,/area/supply/dock) -"mB" = (/obj/structure/shuttle/engine/propulsion/burst,/turf/space,/area/supply/dock) -"mC" = (/obj/structure/shuttle/engine/propulsion/burst/right,/turf/space,/area/supply/dock) +"hV" = (/obj/machinery/conveyor{backwards = 1; dir = 2; divdir = 0; forwards = 2; id = "QMonload"},/turf/simulated/floor,/area/quartermaster/qm) +"hW" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plating,/area/quartermaster/qm) +"hX" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plating,/area/maintenance/starboard) +"hY" = (/obj/structure/stool/chair{dir = 4},/turf/simulated/floor,/area) +"hZ" = (/obj/structure/table{step_y = 0},/turf/simulated/floor,/area) +"ia" = (/obj/structure/stool/chair{dir = 8},/turf/simulated/floor,/area) +"ib" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plating,/area) +"ic" = (/obj/structure/closet/crate,/turf/simulated/floor{icon_state = "delivery"; name = "floor"},/area/quartermaster/storage) +"id" = (/obj/machinery/requests_console{department = "Quartermaster"; name = "Quartermaster Requests Console"; pixel_x = -24; pixel_y = 1},/turf/simulated/floor,/area/quartermaster/qm) +"ie" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plating,/area/quartermaster/qm) +"if" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plating,/area/maintenance/starboard) +"ig" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor{icon_state = "grimy"},/area) +"ih" = (/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor{icon_state = "grimy"},/area) +"ii" = (/obj/structure/window/reinforced{dir = 1},/obj/item/device/flashlight,/turf/simulated/floor{icon_state = "grimy"},/area) +"ij" = (/obj/structure/stool/bed,/turf/simulated/floor,/area) +"ik" = (/obj/machinery/door/window/brigdoor/eastleft,/obj/machinery/door/window/brigdoor/westright,/turf/simulated/floor,/area) +"il" = (/obj/machinery/computer/supplycomp,/turf/simulated/floor,/area/quartermaster/storage) +"im" = (/obj/machinery/door_control{id = "QMLoaddoor"; name = "Loading Doors"; pixel_x = -24; pixel_y = 0},/turf/simulated/floor,/area/quartermaster/qm) +"in" = (/turf/simulated/floor{dir = 6; icon_state = "warning"},/area/quartermaster/qm) +"io" = (/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor{icon_state = "grimy"},/area) +"ip" = (/turf/simulated/floor{icon_state = "grimy"},/area) +"iq" = (/obj/item/weapon/cigpacket,/turf/simulated/floor{icon_state = "grimy"},/area) +"ir" = (/turf/simulated/floor{dir = 10; icon_state = "warning"},/area/quartermaster/storage) +"is" = (/turf/simulated/floor{icon_state = "warning"},/area/quartermaster/storage) +"it" = (/obj/effect/sign/movingparts{pixel_x = 32; pixel_y = 0},/turf/simulated/floor{icon_state = "warning"},/area/quartermaster/storage) +"iu" = (/obj/effect/sign/movingparts{pixel_x = -32; pixel_y = 0},/turf/simulated/floor{dir = 6; icon_state = "warning"},/area/quartermaster/qm) +"iv" = (/obj/machinery/conveyor{backwards = 4; dir = 5; forwards = 2; id = "QMonload"},/turf/simulated/floor,/area/quartermaster/qm) +"iw" = (/obj/machinery/conveyor{backwards = 1; dir = 2; divdir = 0; forwards = 2; id = "QMonload"},/obj/effect/sign/movingparts{pixel_x = 32},/turf/simulated/floor,/area/quartermaster/qm) +"ix" = (/turf/simulated/floor/plating{dir = 2; icon_state = "warnplate"; tag = "icon-warnplate (EAST)"},/area/quartermaster/qm) +"iy" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/effect/sign/movingparts,/turf/simulated/floor/plating,/area/quartermaster/qm) +"iz" = (/obj/machinery/door/window/westleft,/turf/simulated/floor{icon_state = "grimy"},/area) +"iA" = (/obj/machinery/conveyor{backwards = 4; dir = 6; divert = 1; forwards = 1; id = "QMoffload"},/turf/simulated/floor,/area/quartermaster/storage) +"iB" = (/obj/machinery/conveyor{dir = 8; id = "QMoffload"},/turf/simulated/floor,/area/quartermaster/storage) +"iC" = (/obj/structure/plasticflaps,/obj/machinery/conveyor{dir = 8; id = "QMoffload"},/turf/simulated/floor,/area/quartermaster/qm) +"iD" = (/obj/machinery/conveyor{dir = 8; id = "QMshuttle"},/turf/simulated/floor,/area/quartermaster/qm) +"iE" = (/obj/machinery/conveyor{dir = 8; id = "QMshuttle"},/obj/machinery/diverter{dir = 9},/turf/simulated/floor,/area/quartermaster/qm) +"iF" = (/obj/machinery/conveyor{dir = 8; id = "QMshuttle"},/obj/machinery/diverter{dir = 5},/turf/simulated/floor,/area/quartermaster/qm) +"iG" = (/obj/structure/plasticflaps,/obj/machinery/conveyor{dir = 8; id = "QMshuttle"},/turf/simulated/floor,/area/quartermaster/qm) +"iH" = (/obj/machinery/conveyor{dir = 8; id = "QMshuttle"},/turf/simulated/floor/plating,/area/quartermaster/qm) +"iI" = (/obj/structure/plasticflaps,/obj/machinery/conveyor{dir = 8; id = "QMshuttle"},/turf/simulated/floor/plating,/area/quartermaster/qm) +"iJ" = (/obj/machinery/door/poddoor{density = 1; icon_state = "pdoor1"; id = "QMLoaddoor"; name = "Supply Dock Loading Door"; opacity = 1},/obj/machinery/conveyor{dir = 8; id = "QMshuttle"},/turf/simulated/floor/plating,/area/quartermaster/qm) +"iK" = (/obj/machinery/vending/security,/turf/simulated/floor,/area) +"iL" = (/obj/structure/table/woodentable,/obj/item/device/detective_scanner,/turf/simulated/floor{icon_state = "grimy"},/area) +"iM" = (/obj/structure/closet/secure_closet/detective,/turf/simulated/floor{icon_state = "grimy"},/area) +"iN" = (/obj/machinery/door/airlock/security{name = "Security"; req_access = null; req_access_txt = "1"},/turf/simulated/floor,/area) +"iO" = (/turf/simulated/floor{dir = 1; icon_state = "warning"},/area/quartermaster/storage) +"iP" = (/obj/effect/sign/movingparts{pixel_x = 32; pixel_y = 0},/turf/simulated/floor{dir = 1; icon_state = "warning"},/area/quartermaster/storage) +"iQ" = (/obj/effect/sign/movingparts{pixel_x = -32; pixel_y = 0},/turf/simulated/floor{dir = 1; icon_state = "warning"},/area/quartermaster/qm) +"iR" = (/turf/simulated/floor{dir = 1; icon_state = "warning"},/area/quartermaster/qm) +"iS" = (/obj/machinery/conveyor_switch{id = "QMshuttle"; name = "Shuttle conveyor switch"},/obj/effect/sign/movingparts{pixel_x = 32},/turf/simulated/floor{dir = 1; icon_state = "warning"},/area/quartermaster/qm) +"iT" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor,/area/quartermaster/qm) +"iU" = (/turf/simulated/floor/plating{dir = 1; icon_state = "warnplate"; tag = "icon-warnplate (EAST)"},/area/quartermaster/qm) +"iV" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/effect/sign/movingparts,/turf/simulated/floor/plating,/area/quartermaster/qm) +"iW" = (/turf/simulated/wall,/area/maintenance/apmaint) +"iX" = (/turf/simulated/wall,/area/maintenance/aft) +"iY" = (/obj/structure/plasticflaps,/turf/simulated/floor,/area/quartermaster/storage) +"iZ" = (/obj/machinery/navbeacon{codes_txt = "delivery;dir=2"; dir = 2; freq = 1400; location = "QM #3"},/turf/simulated/floor{icon_state = "bot"},/area/quartermaster/storage) +"ja" = (/obj/machinery/door/airlock/glass,/turf/simulated/floor,/area/quartermaster/qm) +"jb" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor,/area/quartermaster/qm) +"jc" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plating,/area/maintenance/starboard) +"jd" = (/obj/machinery/door/airlock/maintenance_hatch,/turf/simulated/floor/plating,/area/maintenance/apmaint) +"je" = (/turf/simulated/floor/plating,/area/maintenance/apmaint) +"jf" = (/obj/machinery/door/airlock/maintenance_hatch,/turf/simulated/floor/plating,/area/maintenance/aft) +"jg" = (/turf/simulated/floor/plating,/area/maintenance/aft) +"jh" = (/obj/machinery/navbeacon{codes_txt = "delivery;dir=2"; dir = 2; freq = 1400; location = "QM #4"},/turf/simulated/floor{icon_state = "bot"},/area/quartermaster/storage) +"ji" = (/obj/machinery/conveyor_switch{id = "QMoffload"; name = "Cargo Bay Conveyor Switch"},/turf/simulated/floor,/area/quartermaster/qm) +"jj" = (/obj/machinery/light/spot{dir = 4; layer = 2.8},/turf/simulated/floor,/area/quartermaster/qm) +"jk" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor,/area/quartermaster/qm) +"jl" = (/obj/machinery/computer/supplycomp,/turf/simulated/floor,/area/quartermaster/qm) +"jm" = (/obj/structure/table/reinforced,/obj/item/weapon/stamp/denied,/obj/item/weapon/stamp{name = "Quartermaster's stamp"; pixel_x = -3; pixel_y = 3},/turf/simulated/floor,/area/quartermaster/qm) +"jn" = (/obj/machinery/disposal,/turf/simulated/floor,/area/quartermaster/qm) +"jo" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor,/area/quartermaster/qm) +"jp" = (/obj/machinery/vending/snack,/turf/simulated/floor,/area) +"jq" = (/obj/effect/landmark/start{name = "Cargo Technician"},/turf/simulated/floor,/area/quartermaster/storage) +"jr" = (/obj/structure/table/reinforced,/obj/machinery/door/window/westright,/obj/machinery/door/window/eastleft,/turf/simulated/floor,/area/quartermaster/qm) +"js" = (/obj/structure/stool/chair{dir = 8},/obj/effect/landmark/start{name = "Quartermaster"},/turf/simulated/floor,/area/quartermaster/qm) +"jt" = (/obj/structure/table/reinforced,/obj/item/weapon/paper_bin,/obj/item/weapon/pen,/turf/simulated/floor,/area/quartermaster/qm) +"ju" = (/obj/structure/table/reinforced,/obj/machinery/door/window/westleft,/obj/machinery/door/window/eastright,/turf/simulated/floor,/area/quartermaster/qm) +"jv" = (/obj/structure/rack,/obj/item/clothing/suit/fire/firefighter,/obj/item/clothing/mask/gas,/obj/item/weapon/tank/emergency_oxygen,/obj/item/clothing/glasses/meson,/turf/simulated/floor,/area/quartermaster/qm) +"jw" = (/obj/structure/table,/turf/simulated/floor,/area/quartermaster/storage) +"jx" = (/obj/structure/table,/obj/item/weapon/storage/toolbox/emergency,/turf/simulated/floor,/area/quartermaster/storage) +"jy" = (/obj/structure/table,/obj/item/weapon/hand_labeler,/turf/simulated/floor,/area/quartermaster/storage) +"jz" = (/obj/structure/table,/obj/item/weapon/crowbar,/turf/simulated/floor,/area/quartermaster/storage) +"jA" = (/obj/structure/table,/obj/machinery/cell_charger,/obj/machinery/camera{c_tag = "Cargo Loading Area North"},/turf/simulated/floor,/area/quartermaster/storage) +"jB" = (/obj/structure/closet,/turf/simulated/floor,/area/quartermaster/qm) +"jC" = (/obj/structure/rack,/turf/simulated/floor,/area/quartermaster/qm) +"jD" = (/obj/structure/closet/secure_closet/personal,/turf/simulated/floor,/area/quartermaster/qm) +"jE" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plating,/area) +"jF" = (/obj/structure/closet/secure_closet/captains,/turf/simulated/floor,/area) +"jG" = (/obj/structure/table/woodentable{tag = "icon-wood_1tileendtable (EAST)"; icon_state = "wood_1tileendtable"; dir = 4},/obj/item/weapon/hand_tele,/turf/simulated/floor,/area) +"jH" = (/obj/structure/table/woodentable{tag = "icon-wood_1tilethick (EAST)"; icon_state = "wood_1tilethick"; dir = 4},/obj/item/weapon/camera_test,/turf/simulated/floor,/area) +"jI" = (/obj/structure/table/woodentable{tag = "icon-wood_1tileendtable (WEST)"; icon_state = "wood_1tileendtable"; dir = 8},/obj/item/weapon/coin,/turf/simulated/floor,/area) +"jJ" = (/turf/simulated/wall,/area/crew_quarters/cafeteria) +"jK" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = "Streight"},/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock/glass{name = "Cafeteria"},/turf/simulated/floor{icon_state = "bar"},/area/crew_quarters/cafeteria) +"jL" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock/glass{name = "Cafeteria"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor{icon_state = "bar"},/area/crew_quarters/cafeteria) +"jM" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/obj/structure/grille,/turf/simulated/floor{icon_state = "bar"},/area/crew_quarters/cafeteria) +"jN" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/structure/grille,/turf/simulated/floor{icon_state = "bar"},/area/crew_quarters/cafeteria) +"jO" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/structure/grille,/turf/simulated/floor{icon_state = "bar"},/area/crew_quarters/cafeteria) +"jP" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock/glass{name = "Cafeteria"},/turf/simulated/floor{icon_state = "bar"},/area/crew_quarters/cafeteria) +"jQ" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock/glass{name = "Cafeteria"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor{icon_state = "bar"},/area/crew_quarters/cafeteria) +"jR" = (/obj/machinery/computer/communications,/turf/simulated/floor,/area) +"jS" = (/turf/simulated/floor{icon_state = "bar"},/area/crew_quarters/cafeteria) +"jT" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = "Streight"},/turf/simulated/floor{icon_state = "bar"},/area/crew_quarters/cafeteria) +"jU" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor{icon_state = "bar"},/area/crew_quarters/cafeteria) +"jV" = (/obj/structure/stool/chair{dir = 4},/turf/simulated/floor{icon_state = "bar"},/area/crew_quarters/cafeteria) +"jW" = (/obj/structure/table,/obj/machinery/light/spot{dir = 1},/turf/simulated/floor{icon_state = "bar"},/area/crew_quarters/cafeteria) +"jX" = (/obj/structure/table,/obj/item/weapon/reagent_containers/food/condiment/peppermill{pixel_x = -8; pixel_y = 2},/obj/item/weapon/reagent_containers/food/condiment/saltshaker{pixel_x = -2},/turf/simulated/floor{icon_state = "bar"},/area/crew_quarters/cafeteria) +"jY" = (/obj/structure/stool/chair{dir = 8},/turf/simulated/floor{icon_state = "bar"},/area/crew_quarters/cafeteria) +"jZ" = (/obj/structure/table,/obj/item/weapon/reagent_containers/food/condiment/saltshaker{pixel_x = 8; pixel_y = 4},/obj/item/weapon/reagent_containers/food/condiment/peppermill{pixel_x = 2; pixel_y = 0},/turf/simulated/floor{icon_state = "bar"},/area/crew_quarters/cafeteria) +"ka" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 8},/turf/simulated/floor{icon_state = "bar"},/area/crew_quarters/cafeteria) +"kb" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 8; icon_state = "out"; on = 1},/turf/simulated/floor{icon_state = "bar"},/area/crew_quarters/cafeteria) +"kc" = (/turf/simulated/floor{dir = 9; icon_state = "carpetside"},/area) +"kd" = (/turf/simulated/floor{dir = 1; icon_state = "carpetside"},/area) +"ke" = (/turf/simulated/floor{dir = 5; icon_state = "carpetside"},/area) +"kf" = (/turf/simulated/wall,/area/maintenance/asmaint) +"kg" = (/turf/simulated/floor/plating,/area/maintenance/asmaint) +"kh" = (/turf/simulated/wall/r_wall,/area/maintenance/asmaint) +"ki" = (/obj/machinery/computer/crew,/turf/simulated/floor,/area) +"kj" = (/obj/structure/table,/turf/simulated/floor{icon_state = "bar"},/area/crew_quarters/cafeteria) +"kk" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor{icon_state = "bar"},/area/crew_quarters/cafeteria) +"kl" = (/obj/machinery/alarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/turf/simulated/floor{icon_state = "bar"},/area/crew_quarters/cafeteria) +"km" = (/turf/simulated/floor{dir = 8; icon_state = "carpetside"},/area) +"kn" = (/turf/simulated/floor{icon_state = "carpet"},/area) +"ko" = (/turf/simulated/floor{dir = 4; icon_state = "carpetside"},/area) +"kp" = (/obj/machinery/light/spot{dir = 4; layer = 2.8},/turf/simulated/floor{icon_state = "bar"},/area/crew_quarters/cafeteria) +"kq" = (/obj/structure/table{tag = "icon-tabledir (SOUTHEAST)"; icon_state = "tabledir"; dir = 6},/turf/simulated/floor,/area) +"kr" = (/obj/structure/table{tag = "icon-tabledir (SOUTHWEST)"; icon_state = "tabledir"; dir = 10},/turf/simulated/floor,/area) +"ks" = (/obj/machinery/door/airlock/command{name = "Captain's Quarters"; req_access = null; req_access_txt = "20"},/turf/simulated/floor,/area) +"kt" = (/obj/machinery/light/spot{dir = 8; layer = 2.8},/turf/simulated/floor{icon_state = "bar"},/area/crew_quarters/cafeteria) +"ku" = (/obj/machinery/camera{c_tag = "Cafeteria Starboard"; dir = 8},/turf/simulated/floor{icon_state = "bar"},/area/crew_quarters/cafeteria) +"kv" = (/obj/machinery/door{icon = 'icons/obj/doors/doormorgue.dmi'; name = "Crew Quarters"; req_access_txt = "0"},/turf/simulated/floor,/area) +"kw" = (/turf/simulated/floor{dir = 10; icon_state = "carpetside"},/area) +"kx" = (/turf/simulated/floor{icon_state = "carpetside"},/area) +"ky" = (/turf/simulated/floor{dir = 6; icon_state = "carpetside"},/area) +"kz" = (/obj/machinery/computer/shuttle,/turf/simulated/floor,/area) +"kA" = (/obj/structure/table{dir = 5; icon_state = "tabledir"},/turf/simulated/floor,/area) +"kB" = (/obj/structure/table{tag = "icon-tabledir (NORTH)"; icon_state = "tabledir"; dir = 1},/turf/simulated/floor,/area) +"kC" = (/obj/structure/table{icon_state = "tabledir"; dir = 9},/turf/simulated/floor,/area) +"kD" = (/obj/item/weapon/mop,/turf/simulated/floor,/area) +"kE" = (/obj/machinery/camera{c_tag = "Cafeteria Port"; dir = 4},/obj/machinery/alarm{dir = 4; icon_state = "alarm0"; pixel_x = -22},/turf/simulated/floor{icon_state = "bar"},/area/crew_quarters/cafeteria) +"kF" = (/obj/machinery/computer/station_alert,/turf/simulated/floor,/area) +"kG" = (/obj/structure/stool/chair{dir = 1},/turf/simulated/floor,/area) +"kH" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor{icon_state = "bar"},/area/crew_quarters/cafeteria) +"kI" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 6},/turf/simulated/floor{icon_state = "bar"},/area/crew_quarters/cafeteria) +"kJ" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/wall,/area/crew_quarters/kitchen) +"kK" = (/obj/machinery/navbeacon{codes_txt = "delivery;dir=2"; freq = 1400; location = "Kitchen"},/obj/machinery/door/firedoor/border_only,/obj/machinery/door/window/northleft{name = "Kitchen Delivery"; req_access_txt = "34;25;28"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor{icon_state = "bot"},/area/crew_quarters/kitchen) +"kL" = (/obj/structure/table/reinforced,/obj/machinery/door/firedoor/border_only,/obj/machinery/door/poddoor/shutters{density = 0; icon_state = "shutter0"; id = "kitchen"; name = "Kitchen Shutters"; opacity = 0},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor{icon_state = "cafeteria"},/area/crew_quarters/kitchen) +"kM" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 4},/turf/simulated/wall,/area/crew_quarters/kitchen) +"kN" = (/turf/simulated/wall,/area/crew_quarters/kitchen) +"kO" = (/obj/machinery/computer/supplycomp,/turf/simulated/floor,/area) +"kP" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 4; icon_state = "on"; on = 1},/obj/machinery/power/apc{dir = 8},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/simulated/floor{icon_state = "bar"},/area/crew_quarters/cafeteria) +"kQ" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"; tag = "90Curve"},/turf/simulated/floor{icon_state = "bar"},/area/crew_quarters/cafeteria) +"kR" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 4},/turf/simulated/floor{icon_state = "bar"},/area/crew_quarters/cafeteria) +"kS" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{req_access_txt = 1},/turf/simulated/floor{icon_state = "bar"},/area/crew_quarters/cafeteria) +"kT" = (/obj/machinery/door/window/southleft{name = "Kitchen Delivery"; req_access_txt = "25;28"},/turf/simulated/floor{icon_state = "delivery"},/area/crew_quarters/kitchen) +"kU" = (/obj/structure/window/reinforced{dir = 8},/obj/machinery/sink/kitchen2{pixel_y = 28},/turf/simulated/floor{icon_state = "cafeteria"},/area/crew_quarters/kitchen) +"kV" = (/turf/simulated/floor{icon_state = "cafeteria"},/area/crew_quarters/kitchen) +"kW" = (/obj/machinery/door_control{id = "kitchen"; name = "Kitchen Shutters"; pixel_x = 0; pixel_y = 24},/obj/machinery/atmospherics/unary/vent_pump{dir = 1; icon_state = "out"; on = 1},/turf/simulated/floor{icon_state = "cafeteria"},/area/crew_quarters/kitchen) +"kX" = (/obj/structure/closet/secure_closet/kitchen,/turf/simulated/floor{icon_state = "cafeteria"},/area/crew_quarters/kitchen) +"kY" = (/obj/structure/table/reinforced,/obj/machinery/door/firedoor/border_only,/obj/machinery/door/poddoor/shutters{density = 0; icon_state = "shutter0"; id = "bar"; name = "Bar Shutters"; opacity = 0},/turf/simulated/floor{icon_state = "cafeteria"},/area/crew_quarters/bar) +"kZ" = (/obj/structure/table/reinforced,/obj/machinery/door/firedoor/border_only,/obj/machinery/door/poddoor/shutters{density = 0; icon_state = "shutter0"; id = "bar"; name = "Bar Shutters"; opacity = 0},/obj/item/weapon/zippo,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor{icon_state = "cafeteria"},/area/crew_quarters/bar) +"la" = (/obj/structure/table/reinforced,/obj/machinery/door/firedoor/border_only,/obj/machinery/door/poddoor/shutters{density = 0; icon_state = "shutter0"; id = "bar"; name = "Bar Shutters"; opacity = 0},/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 8},/turf/simulated/floor{icon_state = "cafeteria"},/area/crew_quarters/bar) +"lb" = (/obj/structure/table/reinforced,/obj/machinery/door/firedoor/border_only,/obj/machinery/door/poddoor/shutters{density = 0; icon_state = "shutter0"; id = "bar"; name = "Bar Shutters"; opacity = 0},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor{icon_state = "cafeteria"},/area/crew_quarters/bar) +"lc" = (/obj/structure/table/reinforced,/obj/machinery/door/firedoor/border_only,/obj/machinery/door/poddoor/shutters{density = 0; icon_state = "shutter0"; id = "bar"; name = "Bar Shutters"; opacity = 0},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden{req_access_txt = 1},/turf/simulated/floor{icon_state = "cafeteria"},/area/crew_quarters/bar) +"ld" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/wall,/area/crew_quarters/kitchen) +"le" = (/obj/machinery/light_switch{dir = 8; pixel_x = -24; pixel_y = 6},/obj/machinery/light_switch{dir = 8; name = "light switch (Cafeteria)"; otherarea = "crew_quarters/cafeteria"; pixel_x = -24; pixel_y = -6},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor{icon_state = "cafeteria"},/area/crew_quarters/kitchen) +"lf" = (/obj/structure/table,/obj/machinery/microwave,/obj/structure/window/reinforced{dir = 8},/obj/machinery/atmospherics/unary/vent_scrubber{dir = 8; icon_state = "on"; on = 1},/turf/simulated/floor{icon_state = "cafeteria"},/area/crew_quarters/kitchen) +"lg" = (/obj/structure/table,/turf/simulated/floor{icon_state = "cafeteria"},/area/crew_quarters/kitchen) +"lh" = (/obj/structure/closet/secure_closet/fridge,/turf/simulated/floor{icon_state = "cafeteria"},/area/crew_quarters/kitchen) +"li" = (/obj/machinery/door_control{dir = 8; id = "bar"; name = "Bar Shutters"; pixel_x = -24; pixel_y = 0},/turf/simulated/floor{icon_state = "cafeteria"},/area/crew_quarters/bar) +"lj" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor{icon_state = "cafeteria"},/area/crew_quarters/bar) +"lk" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 1; icon_state = "on"; on = 1},/turf/simulated/floor{icon_state = "cafeteria"},/area/crew_quarters/bar) +"ll" = (/turf/simulated/floor{icon_state = "cafeteria"},/area/crew_quarters/bar) +"lm" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{req_access_txt = 1},/turf/simulated/floor{icon_state = "cafeteria"},/area/crew_quarters/bar) +"ln" = (/obj/structure/reagent_dispensers/beerkeg,/obj/structure/window/reinforced{dir = 4},/obj/machinery/light_switch{dir = 1; pixel_y = 24},/turf/simulated/floor{icon_state = "cafeteria"},/area/crew_quarters/bar) +"lo" = (/obj/machinery/light/spot{dir = 4; layer = 2.8},/obj/structure/table,/obj/machinery/microwave,/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor{icon_state = "cafeteria"},/area/crew_quarters/kitchen) +"lp" = (/obj/structure/table,/obj/item/weapon/kitchen/rollingpin,/turf/simulated/floor{icon_state = "cafeteria"},/area/crew_quarters/kitchen) +"lq" = (/obj/structure/table,/obj/item/weapon/reagent_containers/food/condiment/enzyme,/turf/simulated/floor{icon_state = "cafeteria"},/area/crew_quarters/kitchen) +"lr" = (/obj/machinery/light/spot{dir = 4; layer = 2.8},/obj/structure/closet/secure_closet/meat,/turf/simulated/floor{icon_state = "cafeteria"},/area/crew_quarters/kitchen) +"ls" = (/obj/machinery/smartfridge,/turf/simulated/wall,/area) +"lt" = (/obj/structure/closet/gmcloset,/turf/simulated/floor{icon_state = "cafeteria"},/area/crew_quarters/bar) +"lu" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = "90Curve"},/turf/simulated/floor{icon_state = "cafeteria"},/area/crew_quarters/bar) +"lv" = (/obj/effect/landmark/start{name = "Bartender"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0; tag = "Streight"},/turf/simulated/floor{icon_state = "cafeteria"},/area/crew_quarters/bar) +"lw" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0; tag = "Streight"},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = "90Curve"},/turf/simulated/floor{icon_state = "cafeteria"},/area/crew_quarters/bar) +"lx" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 1; icon_state = "out"; on = 1},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0; tag = "Streight"},/turf/simulated/floor{icon_state = "cafeteria"},/area/crew_quarters/bar) +"ly" = (/obj/machinery/door/window/eastright{name = "Bar"; req_one_access_txt = "25"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0; tag = "Streight"},/turf/simulated/floor{icon_state = "cafeteria"},/area/crew_quarters/bar) +"lz" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = "90Curve"},/turf/simulated/floor{icon_state = "cafeteria"},/area/crew_quarters/kitchen) +"lA" = (/obj/machinery/door/window/westleft{name = "Kitchen"; req_access_txt = "28"},/turf/simulated/floor{icon_state = "cafeteria"},/area/crew_quarters/kitchen) +"lB" = (/obj/effect/landmark/start{name = "Chef"},/turf/simulated/floor{icon_state = "cafeteria"},/area/crew_quarters/kitchen) +"lC" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock{name = "Freezer"; req_one_access_txt = "28"},/turf/simulated/floor{icon_state = "cafeteria"},/area/crew_quarters/kitchen) +"lD" = (/turf/simulated/floor{icon_state = "freezerfloor"},/area/crew_quarters/kitchen) +"lE" = (/obj/machinery/light{icon_state = "tube1"; dir = 4},/turf/simulated/floor{icon_state = "freezerfloor"},/area/crew_quarters/kitchen) +"lF" = (/obj/machinery/door/airlock/maintenance_hatch,/turf/simulated/floor/plating,/area/maintenance/asmaint) +"lG" = (/obj/structure/closet/crate/internals,/turf/simulated/floor,/area) +"lH" = (/obj/structure/table/reinforced,/obj/item/weapon/gun/projectile/shotgun,/obj/item/clothing/head/that,/obj/machinery/light/spot,/turf/simulated/floor{icon_state = "cafeteria"},/area/crew_quarters/bar) +"lI" = (/obj/machinery/vending/boozeomat{pixel_x = 0},/turf/simulated/floor{icon_state = "cafeteria"},/area/crew_quarters/bar) +"lJ" = (/obj/structure/table/reinforced,/obj/item/weapon/book/manual/barman_recipes{pixel_x = 4; pixel_y = 8},/obj/item/weapon/reagent_containers/food/drinks/shaker,/turf/simulated/floor{icon_state = "cafeteria"},/area/crew_quarters/bar) +"lK" = (/obj/structure/table/reinforced,/obj/machinery/power/apc,/obj/structure/cable{d2 = 1; icon_state = "0-1"},/turf/simulated/floor{icon_state = "cafeteria"},/area/crew_quarters/bar) +"lL" = (/obj/structure/table/reinforced,/obj/machinery/light/spot,/obj/machinery/requests_console{department = "Bar"; departmentType = 2; name = "Bar RC"; pixel_x = -1; pixel_y = -30},/turf/simulated/floor{icon_state = "cafeteria"},/area/crew_quarters/bar) +"lM" = (/obj/structure/closet/secure_closet/bar{req_access_txt = "25"},/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor{icon_state = "cafeteria"},/area/crew_quarters/bar) +"lN" = (/obj/machinery/power/apc,/obj/structure/cable{d2 = 1; icon_state = "0-1"},/turf/simulated/floor{icon_state = "cafeteria"},/area/crew_quarters/kitchen) +"lO" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/table,/turf/simulated/floor{icon_state = "cafeteria"},/area/crew_quarters/kitchen) +"lP" = (/obj/machinery/requests_console{department = "Kitchen"; departmentType = 2; name = "Kitchen RC"; pixel_x = 0; pixel_y = -30},/obj/structure/table,/turf/simulated/floor{icon_state = "cafeteria"},/area/crew_quarters/kitchen) +"lQ" = (/obj/item/weapon/storage/donkpocket_kit,/obj/structure/table,/turf/simulated/floor{icon_state = "cafeteria"},/area/crew_quarters/kitchen) +"lR" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0; tag = "Streight"},/obj/machinery/camera{c_tag = "Kitchen"; dir = 1},/obj/structure/table,/obj/machinery/processor,/obj/machinery/alarm{dir = 1; icon_state = "alarm0"; pixel_y = -22},/turf/simulated/floor{icon_state = "cafeteria"},/area/crew_quarters/kitchen) +"lS" = (/obj/machinery/light/spot,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0; tag = "Streight"},/obj/structure/table,/obj/machinery/blender{pixel_y = 0},/turf/simulated/floor{icon_state = "cafeteria"},/area/crew_quarters/kitchen) +"lT" = (/obj/machinery/power/apc,/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/table,/obj/machinery/juicer,/turf/simulated/floor{icon_state = "cafeteria"},/area/crew_quarters/kitchen) +"lU" = (/obj/machinery/chem_master/condimaster,/turf/simulated/floor{icon_state = "cafeteria"},/area/crew_quarters/kitchen) +"lV" = (/obj/structure/kitchenspike,/turf/simulated/floor{icon_state = "freezerfloor"},/area/crew_quarters/kitchen) +"lW" = (/obj/machinery/gibber,/turf/simulated/floor{icon_state = "freezerfloor"},/area/crew_quarters/kitchen) +"lX" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating,/area) +"lY" = (/turf/simulated/wall/r_wall,/area/crew_quarters/bar) +"lZ" = (/turf/simulated/wall/r_wall,/area/crew_quarters/kitchen) +"ma" = (/turf/simulated/wall/r_wall,/area/maintenance/aft) +"mb" = (/turf/unsimulated/wall,/area/start) +"mc" = (/turf/space,/area/start) +"md" = (/obj/effect/landmark/start,/turf/space,/area/start) +"me" = (/turf/unsimulated/wall{icon = 'icons/misc/fullscreen.dmi'; icon_state = "titleold"; name = "Baystation 13"},/area/start) +"mf" = (/turf/space,/area/shuttle) +"mg" = (/turf/simulated/shuttle/wall{tag = "icon-swall_s6"; icon_state = "swall_s6"; dir = 2},/area/supply/dock) +"mh" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plating,/area/supply/dock) +"mi" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plating,/area/supply/dock) +"mj" = (/turf/simulated/shuttle/wall{tag = "icon-swall_s10"; icon_state = "swall_s10"; dir = 2},/area/supply/dock) +"mk" = (/turf/simulated/shuttle/floor,/turf/simulated/shuttle/wall{tag = "icon-swall_f9"; icon_state = "swall_f9"; dir = 2},/area/supply/dock) +"ml" = (/obj/effect/marker/supplymarker,/turf/simulated/shuttle/floor,/area/supply/dock) +"mm" = (/turf/simulated/shuttle/floor,/turf/simulated/shuttle/wall{dir = 2; icon_state = "swall_f5"; tag = "icon-swall_f10"},/area/supply/dock) +"mn" = (/turf/simulated/shuttle/wall{tag = "icon-swall3"; icon_state = "swall3"; dir = 2},/area/supply/dock) +"mo" = (/obj/effect/sign/securearea{desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"; name = "EXTERNAL AIRLOCK"; pixel_x = -32},/obj/effect/marker/supplymarker,/turf/simulated/shuttle/floor,/area/supply/dock) +"mp" = (/obj/machinery/door/airlock/external{name = "Supply Dock Airlock"},/turf/simulated/shuttle/floor,/area/supply/dock) +"mq" = (/turf/simulated/shuttle/floor,/area/supply/dock) +"mr" = (/obj/machinery/conveyor{dir = 2; id = "QMshuttle"},/obj/effect/sign/movingparts{pixel_x = -32},/turf/simulated/shuttle/floor,/area/supply/dock) +"ms" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plating,/area/supply/dock) +"mt" = (/obj/machinery/conveyor{dir = 2; id = "QMshuttle"},/turf/simulated/shuttle/floor,/area/supply/dock) +"mu" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plating,/area/supply/dock) +"mv" = (/turf/space,/area/supply) +"mw" = (/obj/machinery/door/poddoor{density = 1; icon_state = "pdoor1"; id = "QMLoaddoor"; name = "Supply Dock Loading Door"; opacity = 1},/obj/machinery/conveyor{dir = 8; id = "QMshuttle"},/obj/structure/plasticflaps,/turf/simulated/shuttle/floor,/area/supply/dock) +"mx" = (/obj/machinery/conveyor{dir = 8; id = "QMshuttle"},/turf/simulated/shuttle/floor,/area/supply/dock) +"my" = (/turf/simulated/shuttle/wall{tag = "icon-swall_s5"; icon_state = "swall_s5"; dir = 2},/area/supply/dock) +"mz" = (/obj/structure/shuttle/engine/heater,/turf/simulated/shuttle/wall{tag = "icon-swall14"; icon_state = "swall14"; dir = 2},/area/supply/dock) +"mA" = (/turf/simulated/shuttle/wall{tag = "icon-swall_s9"; icon_state = "swall_s9"; dir = 2},/area/supply/dock) +"mB" = (/obj/structure/shuttle/engine/propulsion/burst/left,/turf/space,/area/supply/dock) +"mC" = (/obj/structure/shuttle/engine/propulsion/burst,/turf/space,/area/supply/dock) +"mD" = (/obj/structure/shuttle/engine/propulsion/burst/right,/turf/space,/area/supply/dock) (1,1,1) = {" aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa @@ -764,31 +765,31 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacYdegShtcRcRcRcRarcRhahCcRcRarcRhDarcRcRcRaraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaarcRcRcRhuhjhjhjhEhFhjhxhGhzhohHhfhphIhrhshbhbhbhbhbhbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacYdegShtcRcRcRhJarararararararcRhDarcRcRcRaraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaarcRcRcRhehKhjhjhLhLhMhehohohohNhfdcddaaaahbhbhbhbhbhbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacYdegShtcRcRcRcRcRcRhOcRcRcRcRcRcRarcRcRcRaraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaarcRcRcRhehPhQhjhLhLhjhfhohohRhShfdcddaaaahbhbhbhbhbhbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacYdegScRcRcRcRcRhTcRarararararcRcRarcRcRcRaraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaarcRcRcRhehPhQhjhjhjhjhUhohohRhShVdchWaaaahbhbhbhbhbhbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacYdegScRcRcRcRhXhYhZarcRcRcRiacRcRarcRcRcRaraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaarcRcRcRhehPhQhjibibhjhfhfichRhSiddcieaaaahbhbhbhbhbhbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacYdegScRcRcRifigihigariicRcRijcRcRarcRcRcRaraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaarcRcRcRhehPhQhjibibhjikhfilimhShfdcddaaaahbhbhbhbhbhbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacYdegScRcRcRinioioiparararararcRcRarcRcRcRaraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaarcRcRcRhehPiqiriririshfhfitiuivhfiwixhrhshbhbhbhbhbhbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacYdegScRcRcRiyioioioarcRcRcRijcRcRarcRcRcRaraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaarcRcRcRheiziAiAiAiAiAiBiBiCiDiEiFiGiHiGiIhbhbhbhbhbhbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacYdegScRcRiJiniKiLioariicRcRiacRcRiMcRcRcRaraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaarcRcRcRhehKiNiNiNiNiOhfhfiPiQiRiSiTiUhrhshbhbhbhbhbhbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacYdegSiMiViViViViViViViViViViViViViVcRcRcRiWiWiWiWiWiWiWiWiWiWiWiWiWiWiWiWiWiWiWiWiWiWararararararararararararararcRcRcRiXiYhLhjhLhLhjiZhohohohojadcjbaaaahbhbhbhbhbhbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacYdedfcRjcjdjdjdjdjdjdjdjdjdjdjdjdjccRcRcRjejfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfiWararararararararararararararcRcRcRiXjghLhjhLhLhjhfjhhohojijadcjbaaaaaahbhbhbhbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacYgSgScRiViViViViViViViViViViViViViVdadadaiWiWiWiWiWiWiWiWiWiWiWiWiWiWiWiWiWiWiWiWjeiWarararararararararararararardadadahehjhjhjhLhLhjjjjkjlhojmjndcjbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabjocRcRcRcRcRcRcRcRcRcRcRcRcRcRcRhdcRcRcRcRcRcRcRcRcRcRcRcRcRcRcRcRcRcRcRcRcRcRcRcRcRcRcRcRcRcRcRcRcRcRcRcRcRcRcRcRcRcRhuhjjphjhLhLhjjqjrjshohohAdcjbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabcRcRcRcRcRcRcRcRcRcRcRcRcRcRcRcRhdcRcRcRcRcRcRcRcRcRcRcRcRcRcRcRcRcRcRcRcRcRcRcRcRcRcRcRcRcRcRcRcRcRcRcRcRcRcRcRcRcRcRhuhjhjhjhjhjhjjthohohojujjdcjbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabararhdararararararararararararararcRcRcRcRcRcRcRcRcRcRcRcRcRcRcRcRcRcRcRcRcRcRcRcRcRcRcRcRcRcRcRcRcRcRcRcRcRcRcRcRcRcRhejvjwjxjyjvjzhfjAjBhojChfdcieaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaajDcRcRcRcRcRcRcRcRcRcRcRarjEjFjGjHarjIjJjKjLjMjMjMjMjMjMjNjOjPjIarararararararariWjeiWardaarararararararararararararararhehehehehehehehfhfhfhUhfhfdcddaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaiajQcRcRcRcRcRcRcRcRcRcRarcRcRcRcRarjRjSjTjUjVjWjXjUjYjVjXjRjZkaarcRcRcRcRcRcRcRiWjfiWarcRariiiiiiariiiiiiariiiiiiarcRcRcRcRarkbkckckdarcRcRcRcRkekfkgaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaiakhcRcRcRcRcRcRcRcRcRcRarcRcRcRcRarjRjSjTjUkikijXjUkikijXjRkjkkarcRcRcRcRcRcRcRiWjfiWarcRarcRcRcRarcRcRcRarcRcRcRarcRcRcRcRarklkmkmknarcRcRcRcRkekfkgaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaiahCcRcRhThThThTcRcRcRcRarcRcRcRcRarjRjSjTjUkikijXjUkikijXjRkjkoarcRcRcRcRcRcRcRiWjfiWarcRarcRcRcRarcRcRcRarcRcRcRarcRcRcRcRarklkmkmknarcRcRcRcRkekfkgaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaiahacRcRkpgVgVkqhZcRcRcRararkrarararksjSjTjRjRjRjRjRjRjRjRjRkjktarcRcRcRcRcRcRcRiWjfiWarcRararkuarararkuarararkuarararcRcRararkvkwkwkxarcRcRcRcRkekfkgaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaiakycRhXkzkAkAkBcRcRcRcRcRcRcRcRkCarkDjSjTjRjRjRjRjRjRjRjRjRkjjRarcRcRcRcRcRcRcRiWjfiWarcRcRcRcRcRcRcRcRcRcRcRcRcRcRcRcRcRcRararcRcRararcRcRcRcRkekfkgaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaiakEcRcRkFkFkFkFcRcRcRcRcRcRcRcRcRarjRkGjTjRkHkIkJkIkKkKkKkKkLkMarcRcRcRcRcRcRcRiWjfiWarcRcRcRcRcRcRcRcRcRcRcRcRcRcRcRcRcRcRcRcRcRcRcRarcRcRcRcRkekfkgaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaiakNcRcRcRcRcRcRcRcRcRcRcRcRcRcRcRarkOkPkQjRkRkMkSkTkUkUkUkUkVkWarcRcRcRcRcRcRcRiWjfiWarcRcRcRcRcRcRcRcRcRcRcRcRcRcRcRcRcRcRcRcRcRcRcRdacRcRcRcRkekfkgaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaiacRcRcRcRcRcRcRcRcRcRcRcRcRcRcRcRarkXkYkZlalblcldlekUlflflfkUlgarcRcRcRcRcRcRcRiWjfiWarcRcRcRcRcRcRcRcRcRcRcRcRcRcRcRcRcRcRcRcRcRcRcRdacRcRcRcRkekfkgaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaiacRcRcRcRcRcRcRcRcRcRcRcRcRcRcRcRarlhliljlklllmkUlnkUlflolpkUlqararlrararcRcRcRiWjfiWarcRcRcRcRcRcRcRcRcRcRcRcRcRcRcRcRcRcRcRcRcRcRcRarcRcRcRcRkekfkgaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaiacRcRcRcRcRcRcRcRcRcRcRcRcRcRcRcRarlsltlulvlwlxlylzlAkUkUkUkUkUlBlClClDarcRcRcRiWjfiWiWiWiWiWiWiWiWiWiWiWiWiWiWiWlEkekekekekekekekekekekekekekekekfkgaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaiacRcRcRcRcRcRcRcRcRcRcRcRcRcRcRlFarlGlHlIlJlKlLlMlNlOlPlQlRlSlTkMlUlUlVarcRcRcRiWjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfkfkfkfkfkfkfkfkfkfkfkfkfkfkfkfkfkfkgaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalWaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXgPablXlXlXlXlXlXlYlYlYlYlYlYlYlYlYlYlYlYabababablZlZlZlZlZlZlZlZlZlZlZlZlZlZlZlZlZkgkgkgkgkgkgkgkgkgkgkgkgkgkgkgkgkgkgaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacYdegScRcRcRcRcRhTcRarararararcRcRarcRcRcRaraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaarcRcRcRhehPhQhjhjhjhjhUhohohRhVhWdchXaaaahbhbhbhbhbhbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacYdegScRcRcRcRhYhZiaarcRcRcRibcRcRarcRcRcRaraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaarcRcRcRhehPhQhjicichjhfhfidhRhViedcifaaaahbhbhbhbhbhbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacYdegScRcRcRigihiiiharijcRcRikcRcRarcRcRcRaraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaarcRcRcRhehPhQhjicichjilhfiminhVhfdcddaaaahbhbhbhbhbhbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacYdegScRcRcRioipipiqarararararcRcRarcRcRcRaraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaarcRcRcRhehPirisisisithfhfiuiviwhfixiyhrhshbhbhbhbhbhbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacYdegScRcRcRizipipiparcRcRcRikcRcRarcRcRcRaraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaarcRcRcRheiAiBiBiBiBiBiCiCiDiEiFiGiHiIiHiJhbhbhbhbhbhbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacYdegScRcRiKioiLiMiparijcRcRibcRcRiNcRcRcRaraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaarcRcRcRhehKiOiOiOiOiPhfhfiQiRiSiTiUiVhrhshbhbhbhbhbhbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacYdegSiNiWiWiWiWiWiWiWiWiWiWiWiWiWiWcRcRcRiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXararararararararararararararcRcRcRiYiZhLhjhLhLhjjahohohohojbdcjcaaaahbhbhbhbhbhbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacYdedfcRjdjejejejejejejejejejejejejdcRcRcRjfjgjgjgjgjgjgjgjgjgjgjgjgjgjgjgjgjgjgjgjgiXararararararararararararararcRcRcRiYjhhLhjhLhLhjhfjihohojjjbdcjcaaaaaahbhbhbhbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacYgSgScRiWiWiWiWiWiWiWiWiWiWiWiWiWiWdadadaiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXjfiXarararararararararararararardadadahehjhjhjhLhLhjjkjljmhojnjodcjcaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabjpcRcRcRcRcRcRcRcRcRcRcRcRcRcRcRhdcRcRcRcRcRcRcRcRcRcRcRcRcRcRcRcRcRcRcRcRcRcRcRcRcRcRcRcRcRcRcRcRcRcRcRcRcRcRcRcRcRcRhuhjjqhjhLhLhjjrjsjthohohAdcjcaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabcRcRcRcRcRcRcRcRcRcRcRcRcRcRcRcRhdcRcRcRcRcRcRcRcRcRcRcRcRcRcRcRcRcRcRcRcRcRcRcRcRcRcRcRcRcRcRcRcRcRcRcRcRcRcRcRcRcRcRhuhjhjhjhjhjhjjuhohohojvjkdcjcaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabararhdararararararararararararararcRcRcRcRcRcRcRcRcRcRcRcRcRcRcRcRcRcRcRcRcRcRcRcRcRcRcRcRcRcRcRcRcRcRcRcRcRcRcRcRcRcRhejwjxjyjzjwjAhfjBjChojDhfdcifaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaajEcRcRcRcRcRcRcRcRcRcRcRarjFjGjHjIarjJjKjLjMjNjNjNjNjNjNjOjPjQjJarararararararariXjfiXardaarararararararararararararararhehehehehehehehfhfhfhUhfhfdcddaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaibjRcRcRcRcRcRcRcRcRcRcRarcRcRcRcRarjSjTjUjVjWjXjYjVjZjWjYjSkakbarcRcRcRcRcRcRcRiXjgiXarcRarijijijarijijijarijijijarcRcRcRcRarkckdkdkearcRcRcRcRkfkgkhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaibkicRcRcRcRcRcRcRcRcRcRarcRcRcRcRarjSjTjUjVkjkjjYjVkjkjjYjSkkklarcRcRcRcRcRcRcRiXjgiXarcRarcRcRcRarcRcRcRarcRcRcRarcRcRcRcRarkmknknkoarcRcRcRcRkfkgkhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaibhCcRcRhThThThTcRcRcRcRarcRcRcRcRarjSjTjUjVkjkjjYjVkjkjjYjSkkkparcRcRcRcRcRcRcRiXjgiXarcRarcRcRcRarcRcRcRarcRcRcRarcRcRcRcRarkmknknkoarcRcRcRcRkfkgkhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaibhacRcRkqgVgVkriacRcRcRararksarararktjTjUjSjSjSjSjSjSjSjSjSkkkuarcRcRcRcRcRcRcRiXjgiXarcRararkvarararkvarararkvarararcRcRararkwkxkxkyarcRcRcRcRkfkgkhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaibkzcRhYkAkBkBkCcRcRcRcRcRcRcRcRkDarkEjTjUjSjSjSjSjSjSjSjSjSkkjSarcRcRcRcRcRcRcRiXjgiXarcRcRcRcRcRcRcRcRcRcRcRcRcRcRcRcRcRcRararcRcRararcRcRcRcRkfkgkhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaibkFcRcRkGkGkGkGcRcRcRcRcRcRcRcRcRarjSkHjUjSkIkJkKkJkLkLkLkLkMkNarcRcRcRcRcRcRcRiXjgiXarcRcRcRcRcRcRcRcRcRcRcRcRcRcRcRcRcRcRcRcRcRcRcRarcRcRcRcRkfkgkhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaibkOcRcRcRcRcRcRcRcRcRcRcRcRcRcRcRarkPkQkRjSkSkNkTkUkVkVkVkVkWkXarcRcRcRcRcRcRcRiXjgiXarcRcRcRcRcRcRcRcRcRcRcRcRcRcRcRcRcRcRcRcRcRcRcRdacRcRcRcRkfkgkhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaibcRcRcRcRcRcRcRcRcRcRcRcRcRcRcRcRarkYkZlalblcldlelfkVlglglgkVlharcRcRcRcRcRcRcRiXjgiXarcRcRcRcRcRcRcRcRcRcRcRcRcRcRcRcRcRcRcRcRcRcRcRdacRcRcRcRkfkgkhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaibcRcRcRcRcRcRcRcRcRcRcRcRcRcRcRcRarliljlklllmlnkVlokVlglplqkVlrararlsararcRcRcRiXjgiXarcRcRcRcRcRcRcRcRcRcRcRcRcRcRcRcRcRcRcRcRcRcRcRarcRcRcRcRkfkgkhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaibcRcRcRcRcRcRcRcRcRcRcRcRcRcRcRcRarltlulvlwlxlylzlAlBkVkVkVkVkVlClDlDlEarcRcRcRiXjgiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXlFkfkfkfkfkfkfkfkfkfkfkfkfkfkfkfkgkhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaibcRcRcRcRcRcRcRcRcRcRcRcRcRcRcRlGarlHlIlJlKlLlMlNlOlPlQlRlSlTlUkNlVlVlWarcRcRcRiXjgjgjgjgjgjgjgjgjgjgjgjgjgjgjgjgkgkgkgkgkgkgkgkgkgkgkgkgkgkgkgkgkgkhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXgPablYlYlYlYlYlYlZlZlZlZlZlZlZlZlZlZlZlZababababmamamamamamamamamamamamamamamamamakhkhkhkhkhkhkhkhkhkhkhkhkhkhkhkhkhkhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa @@ -888,36 +889,36 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa "} (1,1,2) = {" -mamamamamamamamamamamamamamamaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -mambmbmbmbmbmbmbmbmbmbmbmbmbmaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -mambmbmamamambmbmbmamambmbmbmaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -mambmbmambmbmambmambmbmbmbmbmaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -mambmbmamamambmbmbmamambmbmbmaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -mambmbmambmbmambmbmbmbmambmbmaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -mambmbmamamambmbmbmamambmbmbmaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -mambmbmbmbmbmbmcmbmbmbmbmbmbmaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -mambmbmbmamambmbmbmamambmbmbmaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -mambmbmambmambmbmbmbmbmambmbmaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -mambmbmbmbmambmbmbmbmambmbmbmaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -mambmbmbmbmambmbmbmambmbmbmbmaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -mambmbmamamamambmamamamambmbmaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -mambmbmbmbmbmbmbmbmbmbmbmbmbmaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -mdmamamamamamamamamamamamamamaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -mbmbmbmbmbmbmbmbmbmbmbmbmbmbmbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -mbmbmbmbmbmbmbmbmbmbmbmbmbmbmbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -mbmbmbmbmbmbmbmbmbmbmbmbmbmbmbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -mbmbmbmbmbmbmbmbmbmbmbmbmbmbmbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -mbmbmbmbmbmbmbmbmbmbmbmbmbmbmbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -mbmbmbmbmbmbmbmbmbmbmbmbmbmbmbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -mbmbmbmbmbmbmbmbmbmbmbmbmbmbmbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -mbmbmbmbmbmbmbmembmbmbmbmbmbmbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -mbmbmbmbmbmbmbmbmbmbmbmbmbmbmbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -mbmbmbmbmbmbmbmbmbmbmbmbmbmbmbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -mbmbmbmbmbmbmbmbmbmbmbmbmbmbmbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -mbmbmbmbmbmbmbmbmbmbmbmbmbmbmbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -mbmbmbmbmbmbmbmbmbmbmbmbmbmbmbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -mbmbmbmbmbmbmbmbmbmbmbmbmbmbmbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa mbmbmbmbmbmbmbmbmbmbmbmbmbmbmbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +mbmcmcmcmcmcmcmcmcmcmcmcmcmcmbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +mbmcmcmbmbmbmcmcmcmbmbmcmcmcmbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +mbmcmcmbmcmcmbmcmbmcmcmcmcmcmbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +mbmcmcmbmbmbmcmcmcmbmbmcmcmcmbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +mbmcmcmbmcmcmbmcmcmcmcmbmcmcmbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +mbmcmcmbmbmbmcmcmcmbmbmcmcmcmbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +mbmcmcmcmcmcmcmdmcmcmcmcmcmcmbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +mbmcmcmcmbmbmcmcmcmbmbmcmcmcmbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +mbmcmcmbmcmbmcmcmcmcmcmbmcmcmbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +mbmcmcmcmcmbmcmcmcmcmbmcmcmcmbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +mbmcmcmcmcmbmcmcmcmbmcmcmcmcmbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +mbmcmcmbmbmbmbmcmbmbmbmbmcmcmbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +mbmcmcmcmcmcmcmcmcmcmcmcmcmcmbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +membmbmbmbmbmbmbmbmbmbmbmbmbmbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +mcmcmcmcmcmcmcmcmcmcmcmcmcmcmcaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +mcmcmcmcmcmcmcmcmcmcmcmcmcmcmcaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +mcmcmcmcmcmcmcmcmcmcmcmcmcmcmcaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +mcmcmcmcmcmcmcmcmcmcmcmcmcmcmcaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +mcmcmcmcmcmcmcmcmcmcmcmcmcmcmcaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +mcmcmcmcmcmcmcmcmcmcmcmcmcmcmcaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +mcmcmcmcmcmcmcmcmcmcmcmcmcmcmcaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +mcmcmcmcmcmcmcmfmcmcmcmcmcmcmcaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +mcmcmcmcmcmcmcmcmcmcmcmcmcmcmcaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +mcmcmcmcmcmcmcmcmcmcmcmcmcmcmcaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +mcmcmcmcmcmcmcmcmcmcmcmcmcmcmcaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +mcmcmcmcmcmcmcmcmcmcmcmcmcmcmcaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +mcmcmcmcmcmcmcmcmcmcmcmcmcmcmcaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +mcmcmcmcmcmcmcmcmcmcmcmcmcmcmcaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +mcmcmcmcmcmcmcmcmcmcmcmcmcmcmcaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa @@ -1697,22 +1698,22 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamemfmgmhmimeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamfmjmkmkmlmiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaammmnmkmkmkmmaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamompmkmkmkmmaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaammmqmkmkmkmmaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamrmsmkmkmkmraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamtmsmkmkmkmtaaaamumumumumumumumumumumumumumumumuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaammmsmkmkmkmmaaaamumumumumumumumumumumumumumumumuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamumumumumumumumumumumumumuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamrmsmkmkmkmraaaamumumumumumumumumumumumumumumumuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamumumumumumumumumumumumumuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamtmsmkmkmkmtaaaamumumumumumumumumumumumumumumumuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamumumumumumumumumumumumumuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaammmqmkmkmkmmaaaamumumumumumumumumumumumumumumumuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamumumumumumumumumumumumumuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamvmwmkmkmkmmaaaamumumumumumumumumumumumumumumumuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamumumumumumumumumumumumumuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaammmkmkmkmkmmaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamumumumumumumumumumumumumuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamxmymymymymzaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamumumumumumumumumumumumumuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamemAmBmBmCmeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaameaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamfmgmhmimjmfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamgmkmlmlmmmjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamnmomlmlmlmnaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaampmqmlmlmlmnaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamnmrmlmlmlmnaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamsmtmlmlmlmsaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamumtmlmlmlmuaaaamvmvmvmvmvmvmvmvmvmvmvmvmvmvmvmvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamnmtmlmlmlmnaaaamvmvmvmvmvmvmvmvmvmvmvmvmvmvmvmvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamvmvmvmvmvmvmvmvmvmvmvmvmvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamsmtmlmlmlmsaaaamvmvmvmvmvmvmvmvmvmvmvmvmvmvmvmvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamvmvmvmvmvmvmvmvmvmvmvmvmvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamumtmlmlmlmuaaaamvmvmvmvmvmvmvmvmvmvmvmvmvmvmvmvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamvmvmvmvmvmvmvmvmvmvmvmvmvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamnmrmlmlmlmnaaaamvmvmvmvmvmvmvmvmvmvmvmvmvmvmvmvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamvmvmvmvmvmvmvmvmvmvmvmvmvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamwmxmlmlmlmnaaaamvmvmvmvmvmvmvmvmvmvmvmvmvmvmvmvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamvmvmvmvmvmvmvmvmvmvmvmvmvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamnmlmlmlmlmnaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamvmvmvmvmvmvmvmvmvmvmvmvmvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamymzmzmzmzmAaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamvmvmvmvmvmvmvmvmvmvmvmvmvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamfmBmCmCmDmfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa From 5e9aa8b0cb177dc2dfbfab9db47cdfe5b0959927 Mon Sep 17 00:00:00 2001 From: CaelAislinn Date: Wed, 4 Jan 2012 01:25:58 +1000 Subject: [PATCH 2/5] New tg conveyors are working pretty well, just remember to define dir (conveyor sprite dir), forwards + backwards (conveyor movement dirs) when placing them. Diverters are in, but not working. Signed-off-by: CaelAislinn --- code/modules/recycling/conveyor2.dm | 28 ++++++++++++++++++---------- icons/obj/recycling.dmi | Bin 37155 -> 37061 bytes maps/Antiqua.dmm | 12 ++++++------ 3 files changed, 24 insertions(+), 16 deletions(-) diff --git a/code/modules/recycling/conveyor2.dm b/code/modules/recycling/conveyor2.dm index ce806b6d926..832d14f34d0 100644 --- a/code/modules/recycling/conveyor2.dm +++ b/code/modules/recycling/conveyor2.dm @@ -9,8 +9,8 @@ anchored = 1 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 - var/backwards // hopefully self-explanatory + var/forwards // this is the default (forward) direction, set by the map dir, can be 0 + var/backwards // hopefully self-explanatory, can be 0 var/movedir // the actual direction to move stuff in var/list/affecting // the list of all items that will be moved this ptick @@ -19,14 +19,20 @@ //these ones below for backwards compatibility // following two only used if a diverter is present - var/divert = 0 // if non-zero, direction to divert items - var/divdir = 0 // if diverting, will be conveyer dir needed to divert (otherwise dense) + var/divert_from = 0 // if non-zero, direction to divert items + var/divert_to = 0 // if diverting, will be conveyer dir needed to divert (otherwise dense) var/basedir // this is the default (forward) direction, set by the map dir // note dir var can vary when the direction changes + //cael - corner icon bug that needs a manual fix + //note: for now, the sprites/anis and their directions are mostly independant from the actual conveyor move directions + //if no conveyor move directions are specified, they are extracted from the sprite dir + var/reverseSpriteMoveDir = 0 + // create a conveyor /obj/machinery/conveyor/New() ..() + //added these to allow for custom conveyor dirs defined in map if(!forwards) switch(dir) if(NORTH) @@ -80,7 +86,7 @@ operating = 0 if(stat & NOPOWER) operating = 0 - icon_state = "conveyor[operating]" + icon_state = "conveyor[operating * (reverseSpriteMoveDir?-1:1)]" // machine process // move items to the target location @@ -91,8 +97,10 @@ return use_power(100) - if(divert && dir==divdir) // update if diverter present - movedir = divert + if(movedir == divert_to && divert_from == (movedir == backwards ? forwards : backwards ) ) // update if diverter present + movedir = divert_to + //conv.divert = divert_to + //conv.divdir = divert_from affecting = loc.contents - src // moved items will be all in loc spawn(1) // slight delay to prevent infinite propagation due to map order @@ -310,10 +318,10 @@ /obj/machinery/diverter/proc/set_divert() if(conv) if(deployed) - conv.divert = divert_to - conv.divdir = divert_from + conv.divert_to = divert_to + conv.divert_from = divert_from else - conv.divert= 0 + conv.divert_to = 0 // *** TESTING click to toggle diff --git a/icons/obj/recycling.dmi b/icons/obj/recycling.dmi index 8661194c0d95f65ff983ddf4441400a0427aabef..78a525464e35007057395b110eed2805441a926f 100644 GIT binary patch literal 37061 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 C!D+St literal 37155 zcmb5VbzD>b|NlKiKtWKXK?DKmj)AmFNOzZXm$bw%KqRFkMt3(zcS*y@(I6cYDH&|L z4)4$V^S!>;?{-~(Tz_o08-p{>cFuX7N8F!Z)m7yQ@u~4aAP}L#8yQUy2x|>^bl$@S zUU~1^k_-I6`d(Y#Q^wlE@}0e#r@gBS2;`fVAN$hf6YnG0xeGSApR?MOIVCha;bH9L z3gc_NudCuVhV-+R+9SXW?B0B%Q&awEh|R3J(`t!CLQD9CotU%Xqbff|HmbUJg!cvo z6se~R`vav!S!h27&rH@ym`17SC9pb+J^KAh!FdbMn?6`g;h04@fwgsz?}?o~1#w z6jJ$#WAnex1A}BQJ?X{idOW_@E^+WEA_qRox9C6C;WX@e4E|hU-olf;q;p2Vxg9s> zS$c031fmBi$h_3{O*?FZMC#1>Ay7{|c*D&{Xo>he0%g0*pFH23-~1~BjC+2QI#-!ArKOW_%zv3Hw&{Y(ru4CzLlz`6CapN*~iJ|4j zjeq~wdS$9BRlt&8KtDPA8nrp%vAu9mmg$eEzm&9v3-=GatPQHvd^8>W z=REu2o!^72bb(cQVjV%7Y?T*k=neOBR8IW)^*B6e@+b1D7G1mbvvBnUd9x~traZ`0 zCx58CnmoktR9STpiL!O>*!_LV1NPb8=C3!ayYZnw+4>i6*Pof!RJUmpkS7kWow7s; zdb9iaVhrFsq6SisSxCdLb(F2W6an0!(;(jKex$pl#sW7%xrvEA+C7KuV{8_=1O6-X zGXJ+^Adqo8yb3?*RLQ3cQF|&qdIx0O=-GBIg@W#U zq9PEWP0L)9R&LVkloTq&^Kjr9q@VL*haw%7Lvo3Vcy8|5x*Om+rixuwWY^R9LTtJD z;?Im6hor@Pm}7wRN(bVDv_VzSW^w1Q&jy%28yg$uJg)RjEi!)M5qaR_U}Y5_)R%Jf zr#erb(Y@>3+}vCt1Ur{$WW)=Z4XO)yC6DbLQlzsYG9_)RKjS^(My;ekVfc@5zA&V< z^UdJPleVht>4)y2Dp!5kza=_ZFQq^oIZm4U2SSSK&4RbTO#Jh2nTM{EUYG>q3`9_y zwlv?N;5JE`rH*agUDeft2^ZAuWfyIvv`D^Pe4M;zIMejO%RvL`B=c+^_@?V$Zh2yL zM^n7bPO;HwdT{Vm-4dM3SQ>*);xd{= zF3#Q`zDser{IlvviIf;Np`2?7DZ}uVVVFe=2_}wxPo5qQdwo@UdgglYd6Rs0F`TJg zDeGZi#j3=2Wt(}ThHr_V`;_gq@X3$DsFviyz$XpaFvo6z~`3$;GB-0f!XMUs1Y=6Wmb1IH$>L8gV)FBwIDC#@Djh z69I8@DmzM!A|Ve6uW!$D=+bcLC=n5cu_CZ7Q9rZ{JOSEOj45jXfA)P$R;3zq1_=e`KK)JQ%WAP zWZGy2x{oN+gP}8B$DoTuWX?u-Nc6iv}kh zPam@Ymvy4$2^KYD<_i~dMb6n9Q}7(vzcEn7wu4``keXnSEQuG^q|Vgcl@)?JdvMX% zGP(OL$|QI6ALSefCWth|Q+~E4k<&y3pRcM;oiG$V)(@Z}#F$&~$iw>QB z93S}iHsXr4@2Hm(Sr63-T56q?@V6?(SE)4j_xG2D*&QLWjnl3Uq09fphz5s zYfMl+)iO55e+M2*GTr2d(sQ5|$)7lF+lw9VzXlg=JiDe<5$u+u_p?ILa|CCbr_j@pO_;g^I)+^`i&rDqnb#S3vtU zuNcx?^PNqi#h}+ z@3R8?H)RmH5H_jnr@o1aXy+%@qiNO)f!WNvXf%34kySD%HFx6I?$~o#YOpBTa_wG% zP^`+RRI?zrQG@d0p_N1GMVrNUmkDTbF%>Ky>d=Mc0XN&m_cI76JkrB7yRbAXW*yRG zJ2LAn$G2=$AW+g&K2Fy(#nSQYgb}0aV4-1==jKqHWiKI%1=c~<@t4L@dO~xCb!xHB zG%1&(kMuEDJ^fd5%jLr|a3n>&O3dDdY-QiyN#CL;9>-uy^`jhy*FNR@OR3k_2^SI3 zhbSM#Q9YUGuaf%at@BOX-`|yPVN6(PSRhC-RXQ5{{x|QU*WcP*_D?$%_JNd`6{17S zp`F3~Tn$$CuD_(fUgud?mcB$ z{G`&7=M*)M>=|9Kw~u;pjta(`_0siFkKM+)14@%R1qYzlSuAD(VDsNr$l1G3ZC9dc zAEpbC)AEtgf!P+}`r6z-UbvlnVsx~KCOD8%);OoL4JwT>^e{cE^ysglt}ce|a_>z( zIFWcbk;pKLEi;zsCw8If+0IAko5l28lGt4x7d_Es2;3FdGx8;>ii|^VZ&|!^6&0QT z-hF{zz5Y~ML^v7rqZ2tk%Pp;i(MWeS{Phy!>Go{YQai~}Pj7AeP!L#?61`uBXjc90 z#0n;aK8~@2Mop&vSxQeh!c;=gFF+ut3`1X$Fa8vg2|MG05D26M>zuuFJ%V7zDS90x zN>k%;CJ722&2*NoC;H9bq~?F9d_7?5f^om{Vu=o^@KD5Xc3wp^T#W93K)ALvRWr{~ zrvto8FJ&7O+S}V_4d=mw$WM>+i|dE*Ono4XC;-+?jcQ?X|%dA2q5KHG9JTS%6WqT=+=CMXDzMiXr5n z*RlaDnX#my*$1;l#t`gi?9+rB zc*{B00V?i_YF$h7x`v;ldYUzvGl=A_3KRDm&asGyH9eybjNW zqq~RO5+|yAC^)i#{p9^LR|@KRe9dz?bVS!q*?@WH`rLD5Hk2)+9p?HTZPBbe-pgzp z%Td{C(H`~|x?_JtCPj2+$?&x2z`4igWs)4Aw#>-XfK{&{I(1)r`u!jl0`6sGAo>PB zJqnNxN!t10c|qD2)^u{gAxYtD1V1EfEG;R?6{9TV6o%TzLc`cI+z+AMD#)wF`H_$7 z$ZkYzmM-;uhv)A(mGm)X5EJpudEpQvZPZSM3hU8}!g(eQo|%tyl2ZY^Gg-PwN>GDK z+vCXS3bv@|&@bh#%kQ5*g7RApq&~pO&2>xw8zwk(DcFIN{?_o+KI4BptqAvhuZXE~ zb79Ipi&$5Td!l%aj4HgdEaYB{TR+7rT|~$4IZ}%v?hzQI20mKH8zc|T%h5s!+l&At zZRNwY^351~vyTW0w?7myJ4ozgp>fD{_}mU=N6I8O5N)v2k@E?$Iwx)gyS7EyD$OF5 zuCL=;sNKl543lrxAc~)Yh;hdt3mg7V`FXlyU2A5|;H#O&qu48^C4O9i$xco@Gj~MC z?OjkO!}4Dec^vy_j}TG@%o9lA)Gm&~7! zrpeR35KNGMn5PKu?)<%bE-LDt?j)x&E5zGRxVSvvGN$?iJ-bKOlRI}11~pSubDAd| zB=^@V7v>P9UQGPvgp|BEGKKsqBFG=Ee)Upkqb#p4G6Rt5 z!IDz27GAFF?e`s(ZqA6pD~s`rzOL0LK1S7YiI+vZ?k@&_mE`y2ufl$mC$OBOk%>BwC_q@DwW*78pm3%UqaO2wNU8ja)2Wa$evP|;13+t_<*E?8W z)}NN~!?2sL`S;#@%{NR3Rc|ZlRmL9iTWJaCn!m>!2xs6sIVLtz>wOVO1&aUN1R2mIY$tR8sF$n{NDS~S71~2DgaYF9c=H>TVe9!qlEwW zU*4=iE7!pRM{#j8#~d0H_oY2swcQ#8Vu{{ka^5vLUoskJE4F69BZq(uUTL{)9HZly z+*336+Wh7^E+tWk>%}_hc`Zyw{Y_?tFGk{Pj>(`yWGK0?WkEY0HroelYr(lLFP;ZI zNOhcC`EI(nx{9cy3?fBdU)NuZoBW1mdtEq(wOofe)49PYYIYr%XR%fUp5UY-aB8m#)2qAT531i%sgMXq9@IDevOUvM~loG=n`+SQx zwjUR&F2Cbd>&X!6Y@ zPl39lH}97v-mIJ>{2zqbNj+>H?yfitI=O-dM6%OOwX!(=oXU1UX_7VQtUgN=h!(mx z{Jm&nyodh5>hs?xCoPE=&b!;pcF>(lk5>21^^IS>{#Gh)&rF$y=+i_3yA2-ID~LZt zUM}BZfscPWuBqZ^S>3*ZUJQV@+C)}y4boJiDd`U*`w$(q*x={9E;2`6l@p_-zRWYrrL- zTR7j37Mc0}tBdn<`|)ejuMTf%#Wq#DpT92s6XBSxzB8g6%^l5nd~g6Gy7R91KFiF5 zqYZWE3ZcEsfnZ)zBig+`8Nii=x&5Ivsk5c&Ve-a??`GMA z%`0X(D4f}=w_!Xq`r~X!DM!e41y1Rdg`+S6sn&wS?b@s~TrrB$kcVUUx_*__POYIz z`rw|6iJ)wY8pVFYUTvU;Jp^wjTwcOcF3esKjb*y-H14kU^0tT)IleA5FNhk=N)oXu z??9u2vXnHCb{}Yv+wq;SZ_}`EE-3j^R~@>_Fvk_8KSt)K4`k$>(n9m7uksa(B2G=T zxgF(SPKELJ^`5_W5yRIMulP82-E*L$qRB0!8oBd2^FYs301Vzfd#OQ)AKSMGt|-|_ z{Cs+3u;Mr^6@$eF<|dlzXIc1V-m4>4f#Xe8-I`v0TJNm-tN!h%rw2*h@agz)(c3v2 zGuZXO@87Pp_R-PNn*r|B{by0d4T)K-0s;an1HolY9S{HHVZ?X230g|*-!xdY-R0<$ z{j_mCcZ^q7ih_%n8Q;TSK0LGF38HjLv0FNo-_W>33h>!r;Q*j zoXCPDC~-t2%jGM2(Y=U2^`Z?=XYnQVZdZ7(-Oe451TT-lQs-u5*BO7lZ?`LwtN2=I zg(#P#!$6i{tSDe^mVx3(#yN_gJl=U*chV8-EM;Dhu0pQz-1JpHDq`HUbF zjXY-%D31M6<4Adfdn+^Ql=6{W2ttTed0zRYr&qUXlgSSaVL5di-AR>*>dclkpVx=z z^L34|ql;4s{ATE+1g7=uDwX%^bRE^Fv9Bpls$(S0X?7epefh?0P^X+>ITrB9Y!X8j zW$L<>NI*IL=H}<$ajfN}549G+7kub;UmPN1;6FbnE)BIQ7O7Wzp!b8hVT>5I^ZBGx z1lnLB!+Ts{@Q8UpsebxCof^pH!!Tn-?xi!Ly31Nfyf>eo^BlY}TGMN8Wpz0f7WONU z?}Ag_oPu`d8u2-`GEA|k0m?UjSeE0_t1$c7I)sLg`^=CpD53RW)u%(~z%1%t0M zFiOe0zLCZbx<*l&bZLZ1@^SSaLs=tEC_?B^R&=)--w-okaG!-;f%}xzqgx93Q*yr6 z_KQ}U@|ga1m_3_#Nr6@QTZ@1q6Y3<^$e0-a$`3W@(}*I#cepfQ=f`#ChbY~Ienlp+ zlZ3FitTP)$6I814yGN$FWZ*pjxuHiEe_wsc4Ac1(0lRTBT|~t~)CATeu#y9~J+_IT&#~)lk|@cTQKRUfwLcFZ_J0c^_D> zVGt<8tx34O5!>27TuMuKF;e)9yYyA%6Z4-Hyy;OT4TjN32ykx1H365Gm=Fi$! zOF(-&&}Nz9B!A%I+5u9z2QokYe&A}hzZdcF3246Rr)U`~r=%O`ZC!!5@X;a~BTile zxmeyVLfi`T>Yld5hHEgS0c%FIbJ&*sXyE<%fZKK`Z%A=%V}$A@33&B0JHmD`ZCkIO*{V=rS5rB$8GQ?WI^Kdt)f#hoeaaU&MW+QVu<1#nstSEuK1GCF050#E1zIZg^j$Jt7*LN=Ua^b#rfGsdT z+Q$b1)Ac_yxIhRyQE~i{<8uBc**oB*?Xk|&1@W0+cIngC_tr;(*Tiy`f~*LpOONKh z4k&|b8e#$f!%^o~GTDq<0vgzwPqs19tmTUjV>UiF(Imm&}g@|#c(I~K@EE?mO zzD%{R)S_P*Ced;Bzcfrg@+O|%R%#!!Jy4D19464%Tqdm4Q& z_Aaej_Ry|pj900RRaqU#kcjwHi-8+IGOI5FSs-~!#w5;~g0|iaO8ArG$zx^_-jT0Y z1Nf~lKsR#VGvY7Qo9gj+%L;y}MzNu=VrNgfAs9D}*-UQ=}O zF7R=Ee3k**k_wMPTf?==-SYg+3ViZwZCf5cKIpiAAQd3#h*Dbqf%pLWPt?!UeOngf z($6ie;x#Yp2lTX57kzD^`R-J#n-&yWI@}e0G2_PC=#9ERMxeX9kT~_Y0dJtuG=dbK2dbQ1DZzV=w}JhN6_mKwhC0dL zxb;lua~9*Pb=Pi8wZ#P>LVx}BC_zF`*})WJnHwamWq7~fT(`{u$02NW2>aq{Bw z((&lJ--_|LG1<{cp1aS#spudwl~EEf!+y;WAYfj!itnsl=DiR91ex4}q_^!>D_CtyN%x zMDD4@u_D)5+aFk0xo4$bpOj-JAeNSv&bUr#yt5zq;uOSOVE2Tn*mo9{b6X!W9lU%5 zh%Vh+!@g7QTwaw=ynm*r`pHeSocYPQQ6JJ4Rag!=xZsT^QEi?s?PjWIbRT^8`+mHc zayNF^tY&UczV*+3;(@MTpJD8IP)RrU%}%7P)!!+|AlBvic~=vG!_F2%P2Sx-&73Ot zcHsU4KV4C};(*ar^~(&%`GU3s_BC0j?FaHoMWW~PAW5liX?L1jx^QU0b2Vrxihu(k z8uDViOT3InKMb!dpNHDFrn`;A^<0WelgJ)p=gi|j>}-8yl%`9y5C{%gWR0Ge!-%q^ zX=fXqw|dgOFls4-NC1hM{hrj6&4Xq(MFVApJ8!o8Y$XV@IyzRb#icVsvqDv0SEmc7 z$gLJ}9yh@5_U$Pt{BmDpQ?%!rj@O0>1Iblp1Nt?QuanbA^Fx_)tgPJQU7?1Ye2b}a ziipP6WZA76&%8q4sBt>xRbYRlxg_~2a~Nxi>!Lu{khTc1N?1j=o$^M zll@y)i{As{sgsNFd+HbF&d|lVf+2gBo`7_J=hY5$XJ0;e?cWgtcGgu%6PZN*(-;|} zO$W+61;sYL?w9?;3#eRHWtd<>j@s+0XJ6X~S&OFDHa$c{Ob^ zp*@UK@)lK#c7CIYfrE*Sb#; zk@1O}3#>(qRkO;;j9-Qch_6GJ7d%@~y(sK{<6v6F3N}dwN6-Buv<3ewvMmlSCRhLN^88?Q0Wuy4u?Jz*0V;uI3q$1?*1-f@D#LDa7x5UB~m>cBD? z0U*q&zwkQcjn8_4&))&#t&zFB5wm{I8ovo^!&nc0w@*+0Nz5|I;>7;86xSj(HHB~N z-%DY2_AXa=Gt5yt4>OT^F8$KjTGm#HjH=C2ipr5=C#h*J zD-@RF??`PXW7{yQ#aH1)g1a?T*bb^rrukqH{G7G)ex?6gokg2p{8k}e3j>6eI%Grk z0j&SMSlg(u8HU&R<)74_DIG1P5Fi+`-?b{tcn%B2g6*?&!jU(B>Fv8m{^v;Gm61_cB8edujrP!{JprNw6z zJ?-V+Bj(|8E6}Sqb3FQU80A<3JiOt>G~uD2Lfq;Y$@}-t6@bM6RalJC?~_OblK&Gx zavv}k-3l_GG|+Epo@&mh2xWxtf@_|J82s`Jz85}$yULiU(>TKaX6R~YBX}^i7^t?~ zJiJBo?6m@_FO(`Tk33KB9;~W0`prNV1@msZTBGxg-lT}Zw3E?=z1g?;o&}$32eJ(D ziuACuBq2SVowHY#6iHI6@7jHNa-cU(5iZo-8`yXtuu}~Y2mY-Rrz~e1PiMRcjO>0Q z?#^k2Icyo#$b=Sd6UYPV`BE3|`TT(bSLLo-(JP_kZ}{BqMx(s) zz3o^K-#b_|PorI1Wu|zIUkR2DP{lv$ro!p+k!eB=e&7D0-KZ*VQxjVs_-pegZT_tZ z5mLtyk%XAE!RzFSPx(w)p1!`Wal_iiF#o@|0#k7=qqok&4ags7aJ>F)1>{h<@qMYk zZ}&xtU1eQ#4lD)q!9aLCdlAcd3mE8``sJfku|;#V^ftm)j*cV@WD7G%l zjtLi~0;(U2+ThP^r*WDT*jkWOgq5P5&lNiEgOLN*PC{FEZkKr$lsr6|m#F7FWED`a zfP3Yh3{>ad`%ymE`!033*z|TTF*Un}< z(^RzgqdEl#xR|95AnW=?r=CnjiL*e)yPHc9}nk*{cEZMY{j3u9f~#*Khv6 z)%DQ-FLgbJ94DWJRG*pQe>B|v!;%>^PzqWRMeA4Ke7lYO6+vsRq`xvTo>3Q9*Jx1Y zP2c7XTF9zgY6Q~GyVY^a?En{U#5*=cW*SdM8j}j0%uR*Ae$0-jD`V-r`#Vy!1|1M) zlUISAi%LS3`I&W2p6muvn4^5dwU&qBs~xH0tr$)qA}-6sTxfDVvaKr$`lk}eF&D`F5UB{ z+R}w$LRGkS`~gup%jBB|llQUAo-b>BHC}$T?NYTsG+e;*ssaD2%kV3AHl-O=jt29v z_1&tyYyDb(;Z`5QX7${4 z4)NqO*Su{?I+V?hvQFm+B--RB6n$GZ&=V|wWumP(LOJhu=@j+SMr(6S&3{k+eOvK% z*3o?VU-G=n=k?F`!pS*+?jv#hs*@-;d9@MuO_bZrxvm|nF^)F)J(d34jl(HAq71UC zbO^*KvV&NbqZBwwN?kdZa>h7z@F+_Z;M|!9 zkILD9Wd9$umnub8O48(&>T2>-#n%X;qy}H}zk-sn1=eHvX)NcSuE4b&XVYf z4#x<&xQmE4i!f7d)A?6!8ck(O4&O{;ddu66;9eZkGzP~#`%`t+*lj+5j_=BlPgCqTQ1tF!O=t*+kWDo9CQB>(j4LA9YO4$9jB?Qtr#$AW;ZVm|!vacz)0=0npPQJt^2gn>e9lEYe41JpjDumb>f zDpUhfwMi4fp0{ED^^(lB-*RBzkN@WNPM=6e{5@Sw7MJ6H8%7rH_MSlWY@JFWM)LbL z9NKY>B7W4u@n{opPuQ!KGemeLLRNS6nPsd#>Bk}B&H6Wwg*M9^yWPKPK1NK}@&B~U zeOBGCgwT26kn}Lbw|s~gn`us2#rdjev_Li?=3QYy;@42mXGGO`oFpH|h&Ltfp}y^k zt`GG0!=o2&)wx1axC$fO>G)-;eZu7jD~Wp+Ha7kKbl>bUp;;7z2 zkF{N!W4lG=BiHGtsap0|`|n4*SA)ARM&}h4t*HEy?!Q@jsUKqh5f@ad?EJ3Rm*;Ul zNjnUXWPO=mUQ)Izt>px|d^GLczJe9lEEc~@D00^&bGVJ?Z&WDhI%tf~SM7z?i~JaY zG#?ce^#{!s;_%U%%>XX4A(EWtX2>8!c6Xz{%ZD&wPuVK4l>y8p#7&2v^!+)F{1d$R zcGx}vcu(x>!xzCF^=l~s&rt9K{uYIM?oZs!%rdr>DbRD zH06p|05A?kg(9iKSJmfC>6Fe#`?vXhozmJ8URi$wh{`quOv0{`vO(TQytr#tc*5z} z(STq_Ajka)jI)u!#5$`nQ7~d!_a*aP%7Rfm=JFU1O_fz3u-^sfu3RfNQM%{9vt1?c zixVnH5bn)F1TnhjC*h6TZFw1q&IIwhVeu0k$BXegL2tTko}P`vzD-5x4Pt2x$O$yL zfI^3N6-fXu7c1wuzag{3*IZG>NTb5O(M%ofLdsSYh#_k0xA^Y#h4;nB&WUl zvBZzs-_01C|d>KfT*;Gk4 z8MFlV)2;WXJ81~SG`ALVeCwb5sJh8r&Iz`^rTnJq?M+MAO%=8yiUP-ycTW6m7#*X%^vQs-2?yF8J{-?%QciEig{xCTl7;y0A4xywOaGdHuBo-wH#QvRIVbX+I9E!5oyz5ms zyAQovKoe%J#SZ4`AIqhWh_Dw3RV~s;d6EfWZX6DK-#f_C-Qsq?qqX~}x{$6wj~7)Pp+?2J-6DSmf%=oU0i6qtQsv9LQ@G&=4Mv@>ugmH=_A#=9BvPIaW# zZ5A{+b)0?0f#L9i0lPHNG)?!QTu@6LXYuSfIm{B!^DZ;VaN{->R?1@TaJN#omc0!gt#Y}GQZaJnoyQ{w!5D4-iTPNC~+#4NJN%>18xK4wo`)Rt4!!m}F?r|GHLb|S2= z>KMagO*8MVKudJD9Z4C+v57qX?|5IyV)CA1S~XeS3(@^S^%*Htu1 zW7{`Sh{wmmQ9jjkQG9K%k1HuCBQLFzlPIh#)8#qs#hsg;u2xo;fTO~by~g~#$)EJ@AGof6~{EjTeMnjF0nNRYp*$^7}RGcP?%XSVke18(x&hSq#RCW@dCZ`{4#mVJ^XU%j7sl zwGTk&?4ao#o{Coo^ZvtMUX9K5?=@Q)E(?C{!y^JY&0Epxl9JPjfOrkHGFswmP#rJc zlY&OB5Z79SfKwqdEBhQXdMAw{=KkC>QJRV?%nel&v(-Qzcx>%zU~4X2ggiWgA4NX! zt&4<^QkfOiFkpPHHrM@~%Y~l1HvGTlN71uD6E%LvDP79j{pu9x94;A}qx7AAwxA0G z7crRwuP(;h7oVIvr(?z%w>s1*wFrYr{_#zMoG;Am>=O=u9|Ge zA+U>EBJ@@NzoNg9Kj!bJ|3~c4`73@i?nbW?d`d1G5aXNfJ7Q&ds-5fAiobtTIec&? zdXiio6~p3_pnYIY1S*w+_B;{c^pe-W5l zV?G4=!ZUOVA8uP0_xo#cOCI5hHohl&t8ZbJG$*Sv0T4>cCuiws)oCe^UAh1|%8#y7 z6;tGBq|)?us-qZWp;)?SY-HQWb)4?L5<^_v-J@@Aq|lFb6;_PC_Q9J#}w%+gG0@;XIVwV^9~Q3!gd8W8Bxt1Wtg+U zPw2oOoj(t4Z$EodwSrxvHbKzeHv%NOpA7Bq{%`Q8knlFoe*}%Q8n9Xq-(dsHPaTlh zO8cl71BOHp|Iz-Jd$gxcklx=9YWgn?t2RjQjtF=?%M5t%^Osa`_FGTSs42M!O)io9 zqubBSF08>aKu4iKqo%fJi^4vjo1!y@4+$6?@GxHI(-(zsL(q$Qtu~!fm_2G|+<-rO zKCN)b!C%WJa_QNCz+LRhaSS3xvM3PUF4f5bIT7iA5CYpC+zk8;!~>5@IbPdOf!PNz z2}CHSLznaw7@Oz88Ge6s+4;Z~kAF=Np24D8{6x@yoQYa|RN4Rdkl)LAeF!s^rz?=} z7ZF5~G?}%`PAd@Ii&}bbd}q4HV?8)_l6R|lK1&9iyr-3A=OX)1=J+;JY=c3>GlLtg zLeVv`XXf2TG{*CjQBupD>+T6O^Gs|I9+di7vj(sYzKF)fa3OGn7BJZ0z~$n8(joB> z0NLT!NU)QGguYqCThJP>@2R&wI54&*F<6^}WbgYQ((#4RXQ8=01qgwmYaiLm8vukO zEW9lSoN`c=4+9_VdK1TS^;Y`pRb1LyQ{2)@qsPml}Cn3ikcYy^pcgzZv%gdR%w;^H~3t)ov zra|Ol1G{0c8)d|D{edpP(8d`P_7(ok_#$34=KP|)k#4LAIDT`u>D#?+etd|pCW`EC zu)7-a8$Pl(++hPb!2rl#rMnEBDR>52XFg^+t7L!hbL@&<<=VnmO%kOFjE)fD&X#|i zy;b0WwuP* zWZWS8t%gHK?X29Xlp`yPFhE_`n&*!;SWL)R_wR9L_2`o zTK|P7G#%b$7=BQZPt1wZ?0uYHCZ}9UwwWIeRZ6R2Z|Z-p$hP7`c$PhWgaDfAI*v$X61AoRp!Jgz_f2l8ngSceH0s=_c&+7J$M-oZHX698$+&m7qKY=u zTpxW$J_*#53^Io4=P}!zTn&E{64J5?>0?qCI^Rz%V4IhrdLCmtGfJAs8Uk4!M3}86 zf4+Sb_sf^>NX-0YowA@R*~zRA)ZA)iI3)5h`=Rzkz z;jE(Rk9vc$^7vk?*U31ruk~{I!Gb90q?Bzf-nD`z4IMngQm4*;z(qImHW=anq)TB{ zp}y7R`ZxA&`O=(snrO!D{}kB^3T?l#8d$({;}9=N%{sxr;)o|eO*Z%@ zHp2Ix{RijD@BwJ9=Wi&!ICzw^MYTI-DchQF`eL2=jn}IedBB-X`rLcL@G3&BRl0@oOi8js0BK3eP>_|%wO<`w2;}m5=fuNRlO3v?&A!k1lC=um7ZszU(3OFIv7Q{4 zcW%GOe*4K}spvFM73Kv8l27M9UrREPAMh|!eppH0u#W*BYGz`uFMpSQL8F^{eO^>- zKMc!_`jt3d!c39fOs(qB-sR=xkAgdYUtQinFHqdF3ms^M{6H%AQ=e&I2nQe@AL_A4 z;()Hnwzd7nFAuR6KSbv+s=mV5lhzSKZ7F{&_yOTiSEZ|RH|892Bi#6Bh(jGG7)VRq z8h_kro2#g+xQ^UH-rOS!$Wf`TxjiRjz`p9@m9IR95^fW)28geW6Ivtjy=iZ( z6myj@8mYOtn<8fLm_kbcs1?Lt8HhQ)DikIh%3u(B*&6oS500Z*lY(s zUyMKd0U$L~?&6{u3uj)yNUF#0;ZbZayB7)mNtF|#Nx-w6{SBZ`^dHM(F*e_ROW{uI zBfqvkXu2ezFbQcg(`R zean;I`q?eN5h<#CheE#Wy}d>srLA^x>E8)qV7+JcT0OB*hK9ts+Fc<0YVD(eNm<4?oB{#({- z&E?#viY!rcou8&g1so@JXyur1t|qgjy$eOWC}LI)lyt|FKRZ8Hzse6Q@(sVG~SM9nj%Q%gCm-V?)#7i7NECs|N6(N_iTU4R$yZ>4})<> znq?7zbi{d|uS))jxu(MxYLfiDW`?VOZS)XyJ@_Xg8?&SLbtpGbXQg|mgxc;L*w?aV zh|2K&hZ!Qcu0%mpW2iqqinq5`>7GaSG&tqdIE!qK3{aVpgKuUHPARju)ZS=KV#U0O z8O=b1`>e|A!2#CY!$S(%9jO{D1 zvTq*1`4{#ZmUFd8Q!(OWp!9*Uz5xnKo@Nrs4A8n^Xa!aDKUk&Zl6y+q+PfG+4a4sn z)1PIXVV2FllaAK4^u|Wtd(UgF_xN6zmS8~*=s}}c>X+Odl?$2d1~MD)lppI%3l3^| zGdE&}j*HLkf!>ZkJ@3EkSH)xT-ZgVXHC_XLaYegouxRsuUo?B0Bj<6+k;S24ZE0Hd z7%__h$#*iB-o^>XzP}p4=+UPD3X&JijygNDORI$dNAvF(5<3f!uvX79h*dbG>IV8d zb>MCMc&+?p>?9mVgV+eQIiy-gbq>rUB;r0r9e`*z>mTxj97Arwskq3JApLlN$*COL z0rX!UL15M<%F3HMLp1Q6`PqfID=nmq%qKB@g1!uZ5Y2X9EvCMXW2pa`*MQA!g-zcp z2$wFLoCu69rgg6(|Nd?B0a1M7N9#|eyR54s*wH`?o_PH?TTrZ z$gryGR!|nvuUmS@O`TZUqmvX3`aJiVeC|~N_>Udk>JGrRA1!F?EE+XE1TeeX6M}b! z@=M_mOaAEkPSBOu6m{zxBW_8^w)5Yc9<|<*u0H#q=&2t$pH}>Va3pp^W^yL7kD5>A zi;@5-Sjwy&ZueFFAIi~(P;h9<(?B!NuM(2+L((2;sw3aqtL9QQ+GUe+-D@k^G&Mb#(9_*)7u%nY79 zs+Nn)y72#g*}YZzhq#RtSq}JlTE*P?*0e2;!in@CT(u`glwF+bR(SJ;<7AE`|Lk7B-bYQz^nB!82ihx z9aT^oB5~<@0ayEAROppSw0YyF$I$=bBJWK9pIqe2dLs2q9LnAwIw9ND?4ADvJE>rw zg$E7agghoU|3x{~ouG-N|80_&6&BDK6zqmp2($U`j9Bo!D@o^gq`nUkdHE{XX*B^d1cFAK1dtbws#bcJ-hSM=kGE`#)kM}Kcr0B-R}zI)~}-l#!ZhmyxMb6i<-GwwhAE?8+h zsGh&v?J#d5&+R&vtNh@f0kGFEKDsQ_SUVF4?*?g?axDY&Eb12T1V->~CuVp9ElbF3 zk&(N6Bl`Lzw`1MF1^gC>@oG8}!{aZoenvyR12pp4iZlPkEIRAG|82jM2Fd& zz59L*3WT2b7czio^8v>L%X zx3gtUV*Pzp@@_TfLj8ev-qvPZ%|F;@iEiw4%uvwO)%bJF!=6{g1~(ukYct!|pU)97K=33g zvCMkd2;j7cR1B;8ABYij4TzIwfWrApjG%ywP*I{JdBuMa&aGR7(_wUA>K|0|Lr9Zx zZmt-^B1MmLjG4$$L;8-!f2YhCfGM*;s7)59g8z}jh(JwiiVV7T6r)~(!;-xqvo+j4 z5_%74)Oi?7dX(_ZE^22XZ1)^YACo5nk;a-3_EaFlsa;3d6LG=$_uD+}Zq22cF`VVH zY90Hn50%G-9j|4X%5OScgHoreavoWTX5O_h^blreK3MjzX)x1fW@a|u8X~Kz)FueP zr&qd2bm)qki>{kejHNx$RR+)>J5|&?m{sJfX z>XfH_A~%W#PJ!^KFKzC(>L|KdS6W;v{J*$*3$Uo#?R|J?kW^AqKndwaKn4UvT0~kp zq(eG~?i2+irMtTuM7q1ByJ29M{~q7>ob&s>>w*j1ID0>_p0(D!;@-hgpmskL`A3e$ zK)5X%yXlcaUO2Y36z(L>p8J_mPi8v`L=XPlqU z@ao^0Uk=qkv^CIA1iY71CPIxq1r*etWLXQBblyX*j&YZQAsff|kh?nVnPs>h^_OVg z33Mv5cb0{!W@Qa~QEN?k+heC;EGD6o8M_#gK#p;PuhjlY*H3e{32}`20{gF{Cq3US z-Q%x=ppuB7)G-yJL2etgD>66z`vZrKFA%h;EBjb!K!~8&@Z`NMaD3AIXr`fL$lzq_ z@Wcw;|Cbu_hZ6bc9#@XrjP^g|<{Z8US~ro$GTXv>(hq{a_r7mL0cy7uek=vm&RtDW z_t}oR@2=d**7$g{?#CM(Lu&G>Z6OY~Z=gtr(>AfqCryl3C}DnTQCBiAwM;Eei>^4J*HXt*kwB88ivq+kbxpoD@ihe+WQmEiM;+&N(v=0pqb{8uDj<@K_ z*spKIDK^vF4EO>Ri94~C_ON18*hiMx2;g;JzZ+!LXgmG5n&s2S$-NUi?S%dz#p5YF z#H;3F7Sq15HY$NzK83vmDH?M)Wu6+(A}62cSN2q$AncocO7MUpAHp^PHY(#&VI;d| zkjE*48iSuLt4oSep7af=rS~LzZ;xo?*amZ!oN{j+Y-9cx1t^sJZ7;G}@X@R~wnWSc%r{MN$U@gHoF8 zT1s9`C-9gFwW*#QajXOnsCOy)lr{m~fK<${^RVxLF5Lyw`S9N+K+Vt-tw;+XWr7%} zp8ExMXf`5ik0jQN+jEYoFz|1`9#dfKsTQhk0ZO}iWfW@HAF}TcPBl6{f#kNI`dB2? zSV*kH?Z5Si=R!;{wt$F%K8qEWonBARdEY6dab>*$`%B+Oqlzp9(#Fl|=mT1_Zp|g9 z5w|rlSjcmM+{56dJ4r&_m&8NWo>Msk0NFxO{YJ&2NW$Kv zxqw$J@PNmKF z(-Ml#Yci7a%p!qsdxylR6YLHrj(2@=soJ86eO2eh9`P>}SQczS-?tp@){4H_A=eIHE&ahDIAwX(u?;uhk>yU@~X z=F|adgGX^Yzj6VV{4zz=yuupIt|RBlwlTx2WZf_hl++3Qu9sO(ZsQrAlAcyMCt7C0xE|o*%3pCeY)UI;Q zsht(k<`~yMQr$^8kH%;}Fp5mw{OW(YI!UKQb9xOxLgMu@e8(}-WBZXpI z1V+qbn{lHSvBz1a{6zDJ@sZMZrB08{t+W_^^SrE|Qk6Dn?+UL*vVJ}dQXY%+=QJ08 zLm9wK6;K0ooB+X+=fY^9(Jjv&59Z1qijNmS;KsV~-bLVI_?p7#^BVB|eR~Exost#q z|I4b~@^qQW842`o)GJZqsNa}05wjRF|LEtVuAVfYp3G^HbdVD#t55KemZW->?0S|Q z)pUEK>d90dwYu(IWJOhp@|OhB8@1gcrPp|fU$8){h+p-*_Uv!+1e7|UeXXEy_%)JI z+w*yy`!@V`#0B`pR)Lxz2sDWv^=0DKTAApjAWpG1@yqu+K$&tJ$@{dI>66QO>v40t zF)H2OUQ`$4r{1K-_PQV0S)|2zaJq;h<56m<9F3sQ269_x6_GMk91%G=aEn{vChAxP zGH>cK5PJxWz2y_MFC~r|ZN2EIlXc|)wfDO$2McUZcag$R^SSW!?)$P%wiew5ZxtPm zxPlyZ{cXSR?CA@B^aebghj;n7Sy{av1shWU`-r2F^;4ND;%EKy;5XWQWI+ar4Ay-5 zsq_z7x6!3G`muW{k%YOH;y~JXZ5(6er4Dpe`-P+X4Y)Ram2}IIHlBAM?d7hgHPwl4>=O+|aVu@6N>p@*)i~?MTJ$zCFIbTjYS`p^j4G zDqwKxv^n?mV=gguTuE3hq`W@a8SzJ;{GA{L1ep?0)Je{XxaKPjS$-lc^jxQn-*4u9 zUicbpPZkAH0T^L3i<&23g=|3|S{-s@hBnG40Z7_b%~e^}yKtUgQI#Ft| z7Lw=GgNeCu()}Hm1KhLjeRef>MAY<*a;@_TP!$Yt2c+`neSysrw->ytbW5)^p|mFX zLm*&OZ?`KX0=LF|xX-hcMU)jHY>zF!y|yAFbUaJXXCfi9Y}Cnpm*M8?<{LW1%$-_P$+U>x(Qwo9A6j zv?_w3@M2Tw(Li|<)7l_^XH$!pf*ra0K|$i>_&QEy^#kBm^u2CuN~6p9UXhg#pz&1Ip_CXjKps9FG6mNyE`x{uZfOX0q>NCJJfd0;7 z8*IJuV9y1jyq_na1g0ND)#%JCHlZx4DvFhtVB-g^)1u|>XN)u`bs3Tc?Y`C0Ro@H%IM6iASH~Hu`UV13Lj?^Q_ zO#h1NfE4?lvE^&>Agj-r*-RhO0GID|g@MXILl|GvRuJmUDnjG~unpmD{(3=qig3Ae zKLpze@vO)cC?C1G&XZ}<>g9Aj=e^XQu7_)B8mpE;c=fu{KZG*w3x@|*mh=2GFP@T! zd5{CFEffHm2<=dNeSaVh>*Oedg=Pwfgpz)~x8>WeXb-RMh3%=Ts!@x zmjsr-M?{1li`1;ioot1=tVPnZG}*kM3}Y?1m@O1|C}vSdK{gW#*&n$_BHGlEUR%u& zFQf0#^IWUG`tjMI?H5#_R(PeU*-NHFU<_*p=_l!`oh=&w4250oHCsJgfZ9rjksk{s zv5raP->8e^yj=YJSqp6oTQ$EsBI(MBUYec)18Z1P{Y z5&7FY_ADS#t%&0cNS*qLW7?{ODBb`O44{;G+_5v=x;@zezm`8NkB|01t_BHcDAi;; z(ci<)?RIK?X*`@rt@n`~LAdj8VP_-lx<_Z^zz_2U6w=&vZ&58UzR!VN&?mQ(n;-vE^u93hQ!a}OR)ssOrT2~$)V?*s|Iil?*VUs{3C!MB=EVFS*=BDkRjlM#9zD-N@J zxO!*$ZDxyTAUn@i{JKX#&!R9rDtL58w3$fA`Gdyt2|#m`MB{=)K|!N*#AHoUD*U&A z9VhwAmjROe=`MrG?bOham!D=X!uuR|69S9&;Am!wV;!nlR^E1@(sLt-#$eByvAu~F zAlzWLHh!s=vdfd%$Ns4i58(5o0D2^<1GAuj&t}z^_jZE>M}!v?*~>PSwM%Yn{@0aJ z$rho_t*IdhKIn=NxgLC9_2bqM4Tv#dmU_7s{N=C-Dn-=t_&^@j`efkfD7}-5$k!UG6dq{AWlSUEa#PSD+B!)~?=jT5rPMMSdG8Pb z(mf5~y1VvcZ>d0AtX+fT6n$YY`dNGZQeRb_)E&I?-{kVVzBsP`)#(&U2%~wHqQ*d7 z3_p5?1(VL$^a*dI`W9k|Wq;?537St@Ybupi>gw3x?sL zz}Vw8uIvVE%a57XTv3&RlSr#9GH)Z0K+_O`wL*whRMh->51t@WP(L<-Z(4+0>sCkTM zngtg;PNcGXlMnU#nmqya{+jqEPKu4}5II|Kp~iQ9SP02*cp*=( z>->Y;_qDpDf-gs)E*aLeQHMDvM8P(+C62ei1V2C(zDNWba3_YG;_rj05lw8^fMd>T z0`Rvwkyp$3p5n8?49~SE#mNl&!9~niQht{s-M*K{ZgT|(Xmiz4pHHcrktOpmI;G#0{goJ}Hu(fvIX)ES@cX4Q&b<;2aIxdd=KTJE1|XqZ(IiEq+u3Z_Go)Ns`!zRIyS^En9Ln7!~9a} z$ppHP^`38Z2dViS6Z8#{Fm^UP_36&arrX%O@IIJ|LUXrG6{Ykm^mS^h&kwSnUhh2P za|~6?)%jB>H*^#-*d#u&2-;}K1Z*Tf$IuG_icAAjah7757l3-)J#1w-`$(`elD>va z-v~xA#6=75#zpA>gMfdxS8~I44*BE;qU9x3DNdX?CpA_ebZBCJDZco`Dlgu<$A#!K z0lL_o>4hk|5s??|qej|S<0a69oGE}s6X1U1n?Cn3$uX>mqijznF!6tBynXgjOFok% zCGTQq^t(5}FX`)O#9U9P4{HJ#7=gO0i7)Le>ZN8>M9D7Q@&PY|PlZ&|r9X20PWmw# zWSwGcFj~!hDwB0AZOYRhtpd0wtR+BRV%my|_1&Jt$oVy`?ZYy z$>>jYu9lllb8Gj?a;0+!xf`9FvAKd4TqbHcXDG%|JVWbv1bX=&_bMJF z<~SBIgiWKLa*w+``wJN1t-9 zT3M?7_KJ(^X(LCN&K%#%JM-;O*4P}rsD~bAxqNtb64rj_N@^}#@wp7_*b`wA{9#8| zPt-qRqWO;Yd%H(V^GYj;&mqPPq!l6pPu~cAv zyDCGn@Knih=n8+Ck=-P`p$hvSOBM~iu6^onA;%j>n9JAOj9VBY`%TMEZI`<3s&%_O zVRK$I4o7BFuR<(lMoO$Pu=p~e23FmG4f;7&j|RAMVp;Yq_9%c#=H&**LYgu@M))%o zjuIu|GydTz5we=_A7P0UalwWi7|H*0`|U-b@m~z=cQSVk82ZS_mdRQ{Q)dtAcXTY;K2`%{QG@ zb|<5;@3C$?JY2e5Tw2F3Up!aQ@)}WDgj+;k-I`ke%`TArWI)(wwd+4)NDH6(fNs<~ zoVJM&5qyml#g8?DLE&=Q6;v9^Ovfulp2KvuwhIMG-5`_l_BnOehe|8q@=RNd;QDxix?>E0XKJ0ivG%`qcqyrs zOfn0Kj}wGuBAfNup7Pa9Pcn0=*qWSQF0IA!xw629**~H{aIqz^;L~)x=qixM*q=L z-5jdZ{JQQzG2A$`g`~QE;qk+2g;4c1;RdR87_jN<^d;urt2ahTB8iM;VeLI-cn^>J=!>4>&_KCg8$8IVS8fgfU7R-XSGh^xS~2k+>qrwKmW+m?pQpY^|mt z-Z3>X&s9-OzrNtYkk2>=Nzqb^p!!--Q;wiSM9<==2BM8gK7LjbX@4H42N+~Lmg6XO z^nJZ(TiAq1RoU}nifLaREJML!_@C2tpT|E4fPmrSbO!85D^7Hw2`1!he@>wij_CMx zC+tTdzeqS^aNnLvF$(KGo`y8OhlTUaFrnEUD7JHszOAfa=hvm;e4{ttAraGr^n58G zxff30ge^AmtnPlrGlF5JS)z`tf}Kmm^e>JS0eSJ2u#$KgP)L#@K7A-wJo zCNH7^m#36BQnR{@4l#I90$-f+*)M;;|5GKIJ1U;X@#1A`eYJ&hqQTdspi!Bjk&jID z=liqk4t3Uky>@0~pRg4%ron{4iW3la%l7KppchYGb~eX{nMhon2IgwUb$csS@RQ}B zFPi(8B@PE&jy(6Z>f=lx;Z!A)i3>$p2C{DmA37lF5YVrbB9oM~G6{{S8f4$Y;oBu{ zveSbBitnAHa;He`(-d^midf7sd)0ZW_gQAz3A000Ft_o_qYZh7f07 zR_l+HUP$L#cqY#B;2fSQQ^5`f3S%b06c+*ZJ2rnV$wIN~uF5 z$KknJp8l2{b3Q@?=lX&X6cCj0zPE68g;9Wef)Jzm%jTm)uDO>0&zAl7c-}zf>G~e> z3ihKNRO8*xnQ>Ba#^W`sbeo}q(2@NRPbe&71$DX&BBTiil<5lsDvvZbXF6Alu7uSg z!sAZBxW;!I6)oRXy+bA>t+R1^Ax^RJmLw@xmFOgat?C)9TQ;F&!(RXaiVBJ`xyfMmk&iXhr}4+%Xy7|Hze~N8YHrhdtRw*P8gM_mR32T+ zO`zWV3!fu@|HY;vmp5YU2xR*A$%p|X8Wy%he{9J(2~}2;yoME?i~d>=5efPqNKI73 zbu~16qE`9|$?;Hi$vrpKhm{S$f#b3)QqINN0IYp?ev$|{Zqwk`KhlU1wj+Ca_uV%O%$z7=ie8<$9(PmrY58`hLPJ4jX;u!JA4H? zMQYReOUOBw=)y}2Qu>_Kbz*V?>rmvP&K_Exm3Ec<<^jx@Iq??Z-L-6VIR74q^Yc@N zEWjz2^u45sjz`JWHjcy`;@6a7$1*mLwZ>4pI9w%|d9r>58;u9=_}yOECYJ+gs2Evl{&Mu5SH!bcX7l>VGSt)H4S=s-sF&Q1k+C{%V_8O@nJhU-($471%o97R zdAatbkI+L@Ax()?%4iWAE*A=iO}*zjzbg*TK^V)4_d9M&j4rlvVBRuqY7-b{!|*BEL& zMK=IQUVdDxk)MdH2mMK1zLt1Q`f(Mv|0x5`etN&(^s{0*h2i)d)mj+=v2A{Fr2LIi zSr$U7Mrmg617ij6+=iOUns9U1#ujx17 z0h@3BImN)A)^`A2GP^&Q8z+-N939Dw%YmeNJ4dxxnp(RRs-w$}qoG+CMV+=jrp$-# zzRONTc+}*M53B5Mhap{0f`L5F4>4_JH7EDezzJ)`WB|Z^PRcHUbA!ZkDp7}1Ut@g# z{X~6%Dj0|@lU*f;wDClIdA>vR2VDgDoG&j2#?t7=cpXNC}r0K&*8B3I9R3Lz+bK}}VPW5<^oHwiR_Yp}(ja^u8#gLXu};LxR{I+uR%tt3Ogko(A5cqjKSEeq=NauoDo$ z2Hx!_6ZFkh0s86!zG&6^%myRqV<7xggF3cHMIIYuixK~P6Xx-KMDx%8iNI;LrXc+M zjY4>F8&<8oA?z+^;xe5AL%!};W>fn?vfdk9c<+*7WoS-X>}@@6+)bD{QjG1tdXpT` zn?si|J*oaDnj7pd{^$FyHDZeh4--i0|SBQd3Od;p`b% z9-Yq%<9%1POeyzE19>t5Wa%J$s5ep*>x73O=a_%55p1s>H$0Xm{Tal>)Ig0tfns{G_QT&4ZB z1gf;53%#F+bSqcc>HQ3}oa58@S9sQXZ<-R2Oc?)#21`loK{8)$rew5s&*m)F=??(k zK0HeBCU3$L)sT>VgH$E``z}2l`z~Y9)b3EHTkvIiv-Q33-ZS}h`)zW&;e3g6`e1*M zP>rO#blG~aa5PJz6UC(R`bR3yBmQB+vJTG>gI~^fz>Zwf&aKZJAot&ej~|je~((pz?7uM@am)GV_TP-kkJxYcSFg| zLSJ9V<#8@VBuzE|_ZM$k&BKOBGH<%24W->!MzUkLgOZcsAa>=Y+pfJ&V6>p^yCaNr zSoKa~!_#?uekcu>C+T=Z8NlOmp1R|z3AdQ1EI-&_U%;X>k0te@YqW~9x!)O!*3-T7 z?|xOqd$eBj7YR(obW<68O8TiP+%X#jI3X*=Kt*cTvAtG}VN%@==rzC&F;B?}n;p<) zNbsvdvP^KJ#__k`h^^esVj*i{-TVa|VKgiui?(LO6N+>lZPlq>QV7q>j;utNmuu(# z%8pj{se!KG=NF*j@gmWRnDHK5Hb6V>heVuhrT;c|*@@hE>_rDOT9FdA!KJk!U!~9f zFIWIblYj^uHkF{O*=SKBknnU&HcS8i0Rv|zEZKN9cdIE1i0P*Ox!QQOJu(6t4AO`x z1JLV5JCq-~mCoE3V`B#^%J)q4XN|!u<9bP!aKDRulW)4Jr2-;!$y$DdMin3^&&j@5%8`BYrfSMum%-y*WvIA-(Yn8Z8`M? z-SOIE`8w|52X&9e#*fec#-~_g0s(*bKjzWeOdHGce*SJb;ua^_pwSl*{_+Z9e$t>3 zR{6gG*nYmN^xuRxGr!bt0KctgPX&DvT&26jp1nYF;`zTAp@xOa%4a7q4yb%;l~XR&tR<4 zt$O*%!b33syK8v8ReNXbtU8#rnIpm5v#}-RKy>jddvuc_7mg9Wus#ZRUywFmn1Y|^ zRWIdZ{*7LEf%U&xA?Pr`3>ByoWboCOs@&(d`L0D1XecRapm&>nbf~_7KDV|<@b~(A z44<;+Pr1-Roi+LuMb8x3z901~bZyRabU9)i_~6b?I`49&+sD2#1l4JA#fk88gm`rz z%voa(eWqp7FufsE;gkfsvGuynB$3qsqgbriEnD^f=694Y(HLd&E@5F4+g54Vhwxs2 zz>0h6Q5o86e0D7{%jTPkuA$9>4JshDCE`gI1oYPf#;UOVJ!kt+#TfHXBeTffRHeUg z@HBRs_xug@St@QJvqS5#LU=mtz@Y=8b(+_p#pAQfT93~9jKV3!#CnEArGyN=EvnCe zYsSVe8=1NsH=}iO48Nu-n7y4F5hcBUfUF<^DehlOJTYVDr$bMi+s{`Q-;Wt=E}i}! z#hn*&#YCPH(MZFfq_O8zBmVj{K+4iTb^JcUzURSy#?=U3CRj_Wbbk{JNeUxW92jGi z%Igu3YksBwQfSE!nXVEIXPh!(?7ww$k6{Y(#>V~?U&#Y{yl!vl*`&{bUV;x*4Ia`l z*IJt+-d7DEQ2mu$00! zUtS2)aOe{A zVJ6uYRIb(WrKC^Mn%O@L?A=OQlzUiLmpL_dC@~WZ8(rNqBEN}C6IM((VCFjZqO22gEV-Xt-PlrRafsht5d_vb5Tr3Ael2V*W19Wh+suU?${)h zzw!&`AHQe}N*FBdSAvzs0_PNT! zw0X+q&87CTmnXI-993K%Y?X@QY?Kk8LaqyW+{2@=Ftu_o_j;a-55Mm1i34+^{o1uf z75FNUX*s$hZ;H9wS|W6jqxD)e)xB-v_BNee(xXGw9N?#JS@}~@gJHG3j{Vr%EU7%* zVLR9Rd?6w6F^XYb_pbxuzWu{JYepjgZSN7SH+2#=fbWSwP4P>o4#@5gSae)gJnif2 z*w1P>I?24Sg3RY&F&;1}qT?0_ft#C_fZA>a+?~cpzt3ifc%QA%uvd|{@$IH0M~PyL z1-^6Rm3Q98c{&roh7rokuL#8XKi68Gu5J4X3kxHGZ1zybcu~ZRjOg>PlSOKu>Q_yd zQH67oO+JeE*Dcfd^c+R-bI2u$>h5iSX`Q^mc z9UW}3C>XMz`dOB5+JNgIJDv31N{@1*KH`~+&rfQ}^q-z{JJ+jHk=C%4{113|egx zPVZ#7)9vv^Icg5@dkW4ST3np`+;~8Jzg?#FX(C<5SdwnUf>IZ9?k!D|%Lspf%hQlQ zgtq!&1pDCCRO`L+x2T^D96K% zRIxcm>*@KQOB%NeLt{td*-$erIz|D|4`}1-)r<@ZP_EiQ(ol3S_PP9obBb`^)>84M zNKlZC{=|w^U!iKdoCiKbP7!JEJ22T`_ifZUCOQvWkF8Kvg4!6{<1A(yO+)nYQiD$C zH39J8k9TEX1Ft{mGKSBj!Hw(P&KXEZj13Gr)a}o=6c$R8Lmr}n(4C)2wHZi%gflG8 zq%(J4_~^}RlfPQAUw&LcyvcGRuaa&a$SeWz=*pkp6P-=r$?}kLH+Q0gxpSz`B`E#XTFUSTZnRtB{7w15kE$f6OjH)iv3)OpR$-)$(=}I#?I2_twQ(|7O zs{9r1?55wG%hVcK=TFu$ewWd*uwWm*gz3=#1LYasU=Un~U!mr=I zkwL{?KR-EL-@ybO8oM}$vz4I0m(9*VDWo4HXF9dV4cbDB=m<7gldQ7^-!je5&)bz6 ziCvQe9Md=VwYQJ-`Q-<6e?7AZu}^(@5@tj8IO`%-bT>|Px2b@m>EZIVhLaH8ozo|u zdv(A5FbQh~Hqf~|KI#|T;pxU1uvQ?TPaU0|GwnLO$f&8uZdk(n?(aQ8?d#lNA4@KE z;}RwQw#Q{PzqR5`(bAOUM2dGvDd&PMFNKxujA@Q;$1F?t&wsrG?+#2Q=sdhz5%sE= zDc(Ldh6!VXY`pl%1!7~_{oIKb-LnSLji{{Ec^KIOd5K%2P}{| zrWSXRdRc@yGZ(-$3zFoi`U1lk=YFg()U`{u4)1xA__~$8j)M~#jsZn3!QE8EA zUUjPxU0(0+k;>Qll}#O^GC&qefC;Fo?w5O9+e}VQz8gyycG;T^hZf(%8tci5u8yW| znv@>~&sIv#Mq)~ig>Rm`ujwH6`fu5SqmMd8nixkW^t@Km>$pSw3-FRaiLg*BD|@^x7RNONho?o~HoE_B^r{pUGB zZsthLcW;oO(;kt9rRC`@qLH%*s;a6w+u|VrT&b{G5&|}^Av$3|8L_t9zzobM;K>-)oz9;0!hS;<>$irQWw`hdQb!Hr% zw>wNpNlBv`>cL4}!Kcg9B^vOzauKb|{-1+e4=%#37HVJkJE!v%W?09%A+KW4Yhcc;W@e)RX?0#YpN}b@ zKvOnH-NOr%6!dOO-_+N4p{5^JetQP|h!;fFX)|FuyQy`Ve3Te#hA(LgN&9Xm-&WD^ zRID2LYX%1o?AA^Fy^c=gD~Bx*$oqCcZ(Z?^&CCVOO0E1x{2-=SB@_ikn65ASSnU{W z334mA-xT2e+1N-vu(xMNe6$U;D|{05By-pr6wfcks{-MaXl#c)w6{n7dI)04FDU5f zY!oU+v$H(bojGb7geKtFk?T9*bv{ztW{wE@c}pucjSTCzv_%TR+ung~3)J^5Y<%vn zWK3({>%*mRvG;oEY)<;{!_m*b-oe}2ZjqPWwyB)RVxH0o9Jf*1?1C?q zI95-sr^YXk8a9>U;JCQJ!^MSXP+YR^UD_^5W{Ip$P7L(-)w=F%>qOJxFzIMyCnr$E z`HIcI;@SS2GJtsfP{L@2DEMb|^&b;Tp#aRERLI6;Ex&O?M2S4*s`B&21aKs5b^pAR z(|zmF`%N_2-$6ys6k1iK_Zt*1)%{Ap?gH^i9Gs7ce+XR8!L}*HZ1x6NA?~*jnmSB* z*@vd$vVM41u>C;K8DrH$P8n?uk`+hNO`p+>X!ZE`2UaHb&>t)XB_%x-Mtz`XrcBdT zGz`%zVA8HGdO*R6duR*KFU(IFT?vdrq+HC*01=C#5)N8#6jDJb8p^SRRBs?+P}@*g zCV;_84=YCM-UvLykR+w$ia7g6fcTc$*xC69A&e6v>-NCGbL8i1$mIaWLJjPV30`NZ zml=*dCN$N>a9fP<1zB;H>#Zm(tU=83(8_C?b~|3JY*C2h>*=!^ylme>NO zFkbXo+dUQ7oARFZ-l3-l5cP0NC|y-jvM(UcnIqc}_*j;PwtDbYz&DkN1Wou?Bt?{z z`C!v*lPh+!7Fw~Q=Z&~N!9yLyz)`G3^AfJ5-Jzw285xa878V(8`z(#ug&SXzvI@p1 z>*%DO$(`m|-WuKNT`W4x+H%1U+2QUE?KZpNx5u@u|A^V@q$qF8E6glXd(IDY7)4Bv z)JoVVbZ{P*t$!wN*SF`2;^Xb!(Vh!Q4-=Jm3ys|JS!#wmAE4B3Jmgj4yEevy2m9J(N`odXTI1f}2f0)}PaPF`(wV5;7CK~Yg^ zhp1&)soWJzeQO6E8!THoZugUe>4fipw`FaVBdQ1Yb3*GfcZ-xAU@h4p zbcPSYB_n5T^`&@ucr;P{kh*c(Z*axEfnvar<{^cXupxu~{22^CrJ$y+Frgt|@Uh`V zwdTiw-bd@A07h60-WDT9=GeOGC z!O@r6FD{;UxiN&~k#WB}gw#}kZ$|2?*$-*DxV`7t(hXQwgPKgY8T-8G3SuUb>Hz3Z zd!vc7C9g7mWH8At(wen+mAlWZK`4k_y>B0WOi;xKWrRWR9*a21R^g8+cs<<}NJ5E^ z^`@@70M@nT!$WUx8sPbF|IBZrX>vL4otKf=F@^RB*c$+9;XIuW^oBiG&ly-$4enx4 zXy7|#A_Z~6ZN8fmcQ)Z=Fd%`NnwlxLM}L-u&RxV&Dm+#JZ+PumI>FM@bv?RJc)_wS z$TLwFI2vCZK5y*fd+Th#-*3)L5{I|{pJfU;$*DBw-|@}O&4CPq z!EdFFsu+ZYwOtYe@L8aBb-Nrp(Im4rk;(P&Gs%6KjS!=~tT|Jm2(ae`#*L@SDNZ1R zp;mS_I7d%c_o&d@(vrnz=Y2Ddmza(Dauf;(gdZd$DgF^E<<-7)f9$=_MhOg=1KC~$ zQeIDHW)`vq|I?J%65~Aw7*hRyM;9H=OZ?z2&`)L&HG^&L8_VkEI|`Ah`j4+gz3&BE zFLF2#z8(S`q)$`V_^5wLN84DViFt2^94Mu7TxxPoNks}EuK`jvRY(Fyq>j`(=~}HEdW>HGjY28yr5?tG7 zYrv&^n*+q7EqsZe($Mq)56#>>#5cSLyz?%My7C>HZ)|DNKo-+*^Y{0gj+tZ` zgU!PN&z|$Dm9Qdl@>M?>i8Qeh5omFc!lPvB2k=gAZ=`^0a|b^~)a_1IG;iOg+_8#w z8nCWCXHs&PigF&X!-aG#PrY{anD zR*bNXNhdHJj*Ue|b&#aChho#N{i>J@I^^K|c9KLJSkBm3VX~(US=8rmEAp<yZ| zdQYf|-%5C|E41x{?SxuDyFb~we%j55=Z><~=lh#zvF%S-QXM4RoWI^fR@VT%0Ov80rV--6# z{}!5j-4_vX5~%m-%=V+%ZIFy0<@8`fVoB%ozfi|TJALX{#Adp!6##2yZg(g{fnK6C zt}dc!&TL!kK^O!M zUJtsQ-ET3lt32ltj7mwPOOKTPnM4l4rH^D3QxQAfYUr0A6%baxsLJdLe%#geumy|N zKQUg+uxQl}GayVw+14)n2PjouT-p^qq@u}3*70a0fYXFmSctl+bg7Sr>rfM$W-fm; zsSeo*rr5bIzZP(*?WF?V`IV}X*tupmC@b0e!c3Yz7_ojbdO@uRPyzZUZu~i@-C5oP zF-I>g?a|nGJyZZ>ZT3gsA&SNR@!T>eITC0*A&)~Y`PsN{L?bjcXd&i6e`4!0jz%F3 zdKQ?;B)jkw!{en_}1rC(%1g`Tm*xOK4`PZga}`%*3T%>kk`l zD5$*N3aeJ&Qy6f+C5M!ti_Ja409Jl$-7;^&S?l4HBcEv1Z>HZ%Zxni&GmkE#)iP>o zh*MKjnLgR2@3Aw;D--?M-bV3(im!jXFmkFn{UW=f;bOYqH>2G{gsCV+^$Km zR?dUz+RGW+4!wf4!&?}WT{sz{yOxkGc)^Xh;x|5IE437tn8JQTXXO4-B!M*R`y zP1oqW$CxEdc%d@JH;(c1suQ#tD^1;zm+lQjvc&I?`yf#sR+5U&7Zb*rwDsQB?+?9V zz1?>R1JqBE$``Q>9X!;wkThNSDX}Cyz<)8F6qTR++w{jA)QbCk;lb(`k?RJkG^6B5 zZvmJ%&=)=szthXi=#iGQOa{PRMof-%l%K*MG38YURUBd(um(|({r#cmVIW?Kn9v=b z;_faPFP762zgA6=;ysj*f_tRZqfaHt8vW;eEw2;S$&o6q`FMG2+|n;LclLLm1gMu! zqM+w)-4_p|kPjj4;fgb4j)ain18zo77Yp?5={rd&<=Vb2zGGLUZIeU1vmNM_2SyD&ii9KpL$(U#KQ*{AL?W;=_J5cRsp2 zUApUwiyuw4_m2e8VT~Z|#}0a0(G}SpE@D^(w^H31gA6 z!ST>PSo}zf7&h0Ey(3LIb$@ZEf-_C|1hl`~h+&WM2|nNh?-=BK-RfFw_0rzRn?c#& zn`;10L;ADku&g_u%PmlxW?=Gxs6OLmNp}}E)bzBxF#S<6-Sr)h{r+@)uTmLCuR7G3 z3~4-}NQq$L>C80}&lAnSqP*|GXPPelyTLT&w(qzHAPLZgVhn~i&@Y!*o#8hi{jp3b zkWWgA8y8Ygu(Z`2#$XV~WzaLivCq%R@tZCQBm3m1>d5iwVUlWHVFnwi6t;L@fMdKX zHx0<>hEd4}DP>N6{@hdJb1$_kByDl!Z;7<;#;ZcWt3WqQ(MteZH=*|k(y8>w2f-* z?Nq8rRCH3JmX<>i=1c46{Fr}p|9tnyz2AAB_dMsj&-=VT?xO|DOP}_AN(JlgkC~=9 zwNZ5G0c-Uq*pFe3guSLF{fNlOSb7IxnZ`gAB7_?-Fxq1=hC7s6_nBM+dQVdT^#qL> z>E_N;Idr4odm?X5h`*J38-Gta3+wDmG)kjVsh6^JKHaM&!6!RgR_ccMBJmk(-Obgy z(F$?HQx;I|wij=@qV%XApA!zf9XM}QmT~BD!kM55bb=06_vE{1EC>S$AvSw zl@|fqFLqs-q)DSVy^mvJ@Ktzdg={YaCx0Q6jfQj^&FWG6?&}cjEs86<0XQ*)o~Uc$ zXY8CN5zjxYN>6{WxVg~Ahwe9CbObG;k2>@io1pPo7B5zPd}DfmWm0nfdwg1!-$#x9 z)NN!{A33m`f6&jr-ByY^NfbE^=+P=_l4eNhMRyh8K;;#AlLBV3*Nj3;j;+%W?w^z22|r)vpVH}S82p! zIZ#?yZ_In|pe}+mmb7EUChZZSY`96A206ff8q7>1RzwLSJNT{VXW5*O*jdak&3<+2 z4Xk~P!Lu%Ap4txCSvn=2JL%95XWr0UQa*)-{vY>CcXa~Kd zzKR^vO}CIWpYl&hB2~-gWF<)M2u312cEWC`Rs|>-@8Ig%2$>imjzU|yfMODKAsXa zbLN71IfISSvX4fJWn5QKM%|(zw12?}2wnA9YV5*vqR8-!d9y(Kon5}2EuJ>86~2`Z*zPWwZ!ktr z3xLzAX!Yq{4Qq3s5b2~BDGRsNq;BREI_fJ7{&k|R3y1FX?&zSJE`z!h+ME1hjVCW-QHMok-DQ)kh!caxA7)_d)ty(AfLuEy7X5sq zl+GcsA_{bWOG^_$qEKpDaPSnjYB8xjk!d$4FQdw+aS4L%AS4?%W{T*6f_N21P5&4l zoz?RD93H_UOV!O)e{EfDuw<2BjIJ8yMD*7;aulBq-N+YC045zb*^-Ps6PXGx829ut zXnM|(=hv&njTdOhB6`;P{v1U4)~MLHwHFEk{sD;`j|;y5z6S1sq|IRYQ}K%?f#xK| z-cU{7Vlo63(k%razvI0O&hei3DHHTo8(YcbLZAzSYk4kn0TZz+M->%Eo?R8S#fYhj zga}G+WiPrAs*n@XDiY}`Q%`6hRQ=;{QFn_cM$DFQ=#is8m_CTvnj;iL)4>yk(Eqfi zq9M_=K%Lo2Gjdt2o|*~B<`%EjdH`tsOcs0mh^gp#-Eo(fAlU*iA6AZHjtXJBq#_Of wb?wo@i5kn>if3GZe*YkN18;Bj-}v?H9kBH3j$3HxGK0Y7>Ui9t#V$1c9}&keVgLXD diff --git a/maps/Antiqua.dmm b/maps/Antiqua.dmm index d176893059b..3970fb147ba 100644 --- a/maps/Antiqua.dmm +++ b/maps/Antiqua.dmm @@ -403,13 +403,13 @@ "hM" = (/obj/machinery/light_switch{pixel_x = 24; pixel_y = 1},/turf/simulated/floor,/area/quartermaster/storage) "hN" = (/obj/effect/sign/movingparts,/turf/simulated/wall,/area/quartermaster/qm) "hO" = (/obj/machinery/door/airlock/glass_security{name = "Brig"; req_access_txt = "1"},/turf/simulated/floor,/area) -"hP" = (/obj/machinery/conveyor{backwards = 2; dir = 2; divdir = 0; forwards = 1; id = "QMoffload"},/turf/simulated/floor,/area/quartermaster/storage) +"hP" = (/obj/machinery/conveyor{backwards = 2; dir = 2;forwards = 1; id = "QMoffload"},/turf/simulated/floor,/area/quartermaster/storage) "hQ" = (/turf/simulated/floor{dir = 8; icon_state = "warning"},/area/quartermaster/storage) "hR" = (/turf/simulated/floor{dir = 4; icon_state = "warning"},/area/quartermaster/qm) -"hS" = (/obj/machinery/conveyor{backwards = null; dir = 2; divdir = 0; forwards = null; id = "QMonload"},/turf/simulated/floor,/area/quartermaster/qm) +"hS" = (/obj/machinery/conveyor{backwards = null; dir = 2;forwards = null; id = "QMonload"},/turf/simulated/floor,/area/quartermaster/qm) "hT" = (/obj/structure/stool/chair{name = "Bailiff"},/turf/simulated/floor,/area) "hU" = (/obj/machinery/door/airlock/maintenance,/turf/simulated/floor,/area/quartermaster/qm) -"hV" = (/obj/machinery/conveyor{backwards = 1; dir = 2; divdir = 0; forwards = 2; id = "QMonload"},/turf/simulated/floor,/area/quartermaster/qm) +"hV" = (/obj/machinery/conveyor{backwards = 1; dir = 2;forwards = 2; id = "QMonload"},/turf/simulated/floor,/area/quartermaster/qm) "hW" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plating,/area/quartermaster/qm) "hX" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plating,/area/maintenance/starboard) "hY" = (/obj/structure/stool/chair{dir = 4},/turf/simulated/floor,/area) @@ -435,12 +435,12 @@ "is" = (/turf/simulated/floor{icon_state = "warning"},/area/quartermaster/storage) "it" = (/obj/effect/sign/movingparts{pixel_x = 32; pixel_y = 0},/turf/simulated/floor{icon_state = "warning"},/area/quartermaster/storage) "iu" = (/obj/effect/sign/movingparts{pixel_x = -32; pixel_y = 0},/turf/simulated/floor{dir = 6; icon_state = "warning"},/area/quartermaster/qm) -"iv" = (/obj/machinery/conveyor{backwards = 4; dir = 5; forwards = 2; id = "QMonload"},/turf/simulated/floor,/area/quartermaster/qm) -"iw" = (/obj/machinery/conveyor{backwards = 1; dir = 2; divdir = 0; forwards = 2; id = "QMonload"},/obj/effect/sign/movingparts{pixel_x = 32},/turf/simulated/floor,/area/quartermaster/qm) +"iv" = (/obj/machinery/conveyor{backwards = 4; dir = 5; forwards = 2; id = "QMonload"; reverseSpriteMoveDir = 1},/turf/simulated/floor,/area/quartermaster/qm) +"iw" = (/obj/machinery/conveyor{backwards = 1; dir = 2;forwards = 2; id = "QMonload"},/obj/effect/sign/movingparts{pixel_x = 32},/turf/simulated/floor,/area/quartermaster/qm) "ix" = (/turf/simulated/floor/plating{dir = 2; icon_state = "warnplate"; tag = "icon-warnplate (EAST)"},/area/quartermaster/qm) "iy" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/effect/sign/movingparts,/turf/simulated/floor/plating,/area/quartermaster/qm) "iz" = (/obj/machinery/door/window/westleft,/turf/simulated/floor{icon_state = "grimy"},/area) -"iA" = (/obj/machinery/conveyor{backwards = 4; dir = 6; divert = 1; forwards = 1; id = "QMoffload"},/turf/simulated/floor,/area/quartermaster/storage) +"iA" = (/obj/machinery/conveyor{backwards = 4; dir = 6; forwards = 1; id = "QMoffload"},/turf/simulated/floor,/area/quartermaster/storage) "iB" = (/obj/machinery/conveyor{dir = 8; id = "QMoffload"},/turf/simulated/floor,/area/quartermaster/storage) "iC" = (/obj/structure/plasticflaps,/obj/machinery/conveyor{dir = 8; id = "QMoffload"},/turf/simulated/floor,/area/quartermaster/qm) "iD" = (/obj/machinery/conveyor{dir = 8; id = "QMshuttle"},/turf/simulated/floor,/area/quartermaster/qm) From 12cd38d5dae6d3d035f686f02318c145c29906e6 Mon Sep 17 00:00:00 2001 From: CaelAislinn Date: Wed, 4 Jan 2012 11:48:39 +1000 Subject: [PATCH 3/5] Tweaked antiqua cargobay/diverters. UI bug (?) unreproduceable. Signed-off-by: CaelAislinn --- maps/Antiqua.dmm | 35 ++++++++++++++++++----------------- 1 file changed, 18 insertions(+), 17 deletions(-) diff --git a/maps/Antiqua.dmm b/maps/Antiqua.dmm index 3970fb147ba..012fe2c16e2 100644 --- a/maps/Antiqua.dmm +++ b/maps/Antiqua.dmm @@ -403,13 +403,13 @@ "hM" = (/obj/machinery/light_switch{pixel_x = 24; pixel_y = 1},/turf/simulated/floor,/area/quartermaster/storage) "hN" = (/obj/effect/sign/movingparts,/turf/simulated/wall,/area/quartermaster/qm) "hO" = (/obj/machinery/door/airlock/glass_security{name = "Brig"; req_access_txt = "1"},/turf/simulated/floor,/area) -"hP" = (/obj/machinery/conveyor{backwards = 2; dir = 2;forwards = 1; id = "QMoffload"},/turf/simulated/floor,/area/quartermaster/storage) +"hP" = (/obj/machinery/conveyor{backwards = 2; dir = 2; forwards = 1; id = "QMoffload"},/turf/simulated/floor,/area/quartermaster/storage) "hQ" = (/turf/simulated/floor{dir = 8; icon_state = "warning"},/area/quartermaster/storage) "hR" = (/turf/simulated/floor{dir = 4; icon_state = "warning"},/area/quartermaster/qm) -"hS" = (/obj/machinery/conveyor{backwards = null; dir = 2;forwards = null; id = "QMonload"},/turf/simulated/floor,/area/quartermaster/qm) +"hS" = (/obj/machinery/conveyor{backwards = null; dir = 2; forwards = null; id = "QMonload"},/turf/simulated/floor,/area/quartermaster/qm) "hT" = (/obj/structure/stool/chair{name = "Bailiff"},/turf/simulated/floor,/area) "hU" = (/obj/machinery/door/airlock/maintenance,/turf/simulated/floor,/area/quartermaster/qm) -"hV" = (/obj/machinery/conveyor{backwards = 1; dir = 2;forwards = 2; id = "QMonload"},/turf/simulated/floor,/area/quartermaster/qm) +"hV" = (/obj/machinery/conveyor{backwards = 1; dir = 2; forwards = 2; id = "QMonload"},/turf/simulated/floor,/area/quartermaster/qm) "hW" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plating,/area/quartermaster/qm) "hX" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plating,/area/maintenance/starboard) "hY" = (/obj/structure/stool/chair{dir = 4},/turf/simulated/floor,/area) @@ -436,7 +436,7 @@ "it" = (/obj/effect/sign/movingparts{pixel_x = 32; pixel_y = 0},/turf/simulated/floor{icon_state = "warning"},/area/quartermaster/storage) "iu" = (/obj/effect/sign/movingparts{pixel_x = -32; pixel_y = 0},/turf/simulated/floor{dir = 6; icon_state = "warning"},/area/quartermaster/qm) "iv" = (/obj/machinery/conveyor{backwards = 4; dir = 5; forwards = 2; id = "QMonload"; reverseSpriteMoveDir = 1},/turf/simulated/floor,/area/quartermaster/qm) -"iw" = (/obj/machinery/conveyor{backwards = 1; dir = 2;forwards = 2; id = "QMonload"},/obj/effect/sign/movingparts{pixel_x = 32},/turf/simulated/floor,/area/quartermaster/qm) +"iw" = (/obj/machinery/conveyor{backwards = 1; dir = 2; forwards = 2; id = "QMonload"},/obj/effect/sign/movingparts{pixel_x = 32},/turf/simulated/floor,/area/quartermaster/qm) "ix" = (/turf/simulated/floor/plating{dir = 2; icon_state = "warnplate"; tag = "icon-warnplate (EAST)"},/area/quartermaster/qm) "iy" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/effect/sign/movingparts,/turf/simulated/floor/plating,/area/quartermaster/qm) "iz" = (/obj/machinery/door/window/westleft,/turf/simulated/floor{icon_state = "grimy"},/area) @@ -639,19 +639,20 @@ "mo" = (/obj/effect/sign/securearea{desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"; name = "EXTERNAL AIRLOCK"; pixel_x = -32},/obj/effect/marker/supplymarker,/turf/simulated/shuttle/floor,/area/supply/dock) "mp" = (/obj/machinery/door/airlock/external{name = "Supply Dock Airlock"},/turf/simulated/shuttle/floor,/area/supply/dock) "mq" = (/turf/simulated/shuttle/floor,/area/supply/dock) -"mr" = (/obj/machinery/conveyor{dir = 2; id = "QMshuttle"},/obj/effect/sign/movingparts{pixel_x = -32},/turf/simulated/shuttle/floor,/area/supply/dock) +"mr" = (/obj/effect/sign/movingparts{pixel_x = -32},/obj/effect/marker/supplymarker,/turf/simulated/shuttle/floor,/area/supply/dock) "ms" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plating,/area/supply/dock) "mt" = (/obj/machinery/conveyor{dir = 2; id = "QMshuttle"},/turf/simulated/shuttle/floor,/area/supply/dock) "mu" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plating,/area/supply/dock) "mv" = (/turf/space,/area/supply) -"mw" = (/obj/machinery/door/poddoor{density = 1; icon_state = "pdoor1"; id = "QMLoaddoor"; name = "Supply Dock Loading Door"; opacity = 1},/obj/machinery/conveyor{dir = 8; id = "QMshuttle"},/obj/structure/plasticflaps,/turf/simulated/shuttle/floor,/area/supply/dock) -"mx" = (/obj/machinery/conveyor{dir = 8; id = "QMshuttle"},/turf/simulated/shuttle/floor,/area/supply/dock) -"my" = (/turf/simulated/shuttle/wall{tag = "icon-swall_s5"; icon_state = "swall_s5"; dir = 2},/area/supply/dock) -"mz" = (/obj/structure/shuttle/engine/heater,/turf/simulated/shuttle/wall{tag = "icon-swall14"; icon_state = "swall14"; dir = 2},/area/supply/dock) -"mA" = (/turf/simulated/shuttle/wall{tag = "icon-swall_s9"; icon_state = "swall_s9"; dir = 2},/area/supply/dock) -"mB" = (/obj/structure/shuttle/engine/propulsion/burst/left,/turf/space,/area/supply/dock) -"mC" = (/obj/structure/shuttle/engine/propulsion/burst,/turf/space,/area/supply/dock) -"mD" = (/obj/structure/shuttle/engine/propulsion/burst/right,/turf/space,/area/supply/dock) +"mw" = (/obj/machinery/conveyor{dir = 2; id = "QMshuttle"},/obj/effect/sign/movingparts{pixel_x = -32},/turf/simulated/shuttle/floor,/area/supply/dock) +"mx" = (/obj/machinery/door/poddoor{density = 1; icon_state = "pdoor1"; id = "QMLoaddoor"; name = "Supply Dock Loading Door"; opacity = 1},/obj/machinery/conveyor{dir = 8; id = "QMshuttle"},/obj/structure/plasticflaps,/turf/simulated/shuttle/floor,/area/supply/dock) +"my" = (/obj/machinery/conveyor{backwards = 1; dir = 10; forwards = 8; id = "QMshuttle"},/turf/simulated/shuttle/floor,/area/supply/dock) +"mz" = (/turf/simulated/shuttle/wall{tag = "icon-swall_s5"; icon_state = "swall_s5"; dir = 2},/area/supply/dock) +"mA" = (/obj/structure/shuttle/engine/heater,/turf/simulated/shuttle/wall{tag = "icon-swall14"; icon_state = "swall14"; dir = 2},/area/supply/dock) +"mB" = (/turf/simulated/shuttle/wall{tag = "icon-swall_s9"; icon_state = "swall_s9"; dir = 2},/area/supply/dock) +"mC" = (/obj/structure/shuttle/engine/propulsion/burst/left,/turf/space,/area/supply/dock) +"mD" = (/obj/structure/shuttle/engine/propulsion/burst,/turf/space,/area/supply/dock) +"mE" = (/obj/structure/shuttle/engine/propulsion/burst/right,/turf/space,/area/supply/dock) (1,1,1) = {" aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa @@ -1708,11 +1709,11 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamnmtmlmlmlmnaaaamvmvmvmvmvmvmvmvmvmvmvmvmvmvmvmvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamvmvmvmvmvmvmvmvmvmvmvmvmvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamsmtmlmlmlmsaaaamvmvmvmvmvmvmvmvmvmvmvmvmvmvmvmvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamvmvmvmvmvmvmvmvmvmvmvmvmvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamumtmlmlmlmuaaaamvmvmvmvmvmvmvmvmvmvmvmvmvmvmvmvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamvmvmvmvmvmvmvmvmvmvmvmvmvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamnmrmlmlmlmnaaaamvmvmvmvmvmvmvmvmvmvmvmvmvmvmvmvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamvmvmvmvmvmvmvmvmvmvmvmvmvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamwmxmlmlmlmnaaaamvmvmvmvmvmvmvmvmvmvmvmvmvmvmvmvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamvmvmvmvmvmvmvmvmvmvmvmvmvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamnmwmlmlmlmnaaaamvmvmvmvmvmvmvmvmvmvmvmvmvmvmvmvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamvmvmvmvmvmvmvmvmvmvmvmvmvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamxmymlmlmlmnaaaamvmvmvmvmvmvmvmvmvmvmvmvmvmvmvmvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamvmvmvmvmvmvmvmvmvmvmvmvmvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamnmlmlmlmlmnaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamvmvmvmvmvmvmvmvmvmvmvmvmvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamymzmzmzmzmAaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamvmvmvmvmvmvmvmvmvmvmvmvmvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamfmBmCmCmDmfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamvmvmvmvmvmvmvmvmvmvmvmvmvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamzmAmAmAmAmBaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamvmvmvmvmvmvmvmvmvmvmvmvmvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamfmCmDmDmEmfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa From 3f6e2c28d48118b84daf7d46a69c70a05f30ec5b Mon Sep 17 00:00:00 2001 From: CaelAislinn Date: Wed, 4 Jan 2012 11:55:04 +1000 Subject: [PATCH 4/5] sync Signed-off-by: CaelAislinn --- baystation12.dme | 40 +- code/WorkInProgress/Mini/customitems.dm | 4 +- code/WorkInProgress/SkyMarshal/eraser.dm | 9 - .../WorkInProgress/SkyMarshal/traitoritems.dm | 74 +++ code/defines/global.dm | 5 +- code/defines/obj/clothing/jumpsuit.dm | 7 + code/defines/obj/weapon.dm | 4 + code/game/communications.dm | 12 +- code/game/events/Event.dm | 20 + .../EventProcs}/black_hole.dm | 0 .../events => events/EventProcs}/clang.dm | 0 .../events => events/EventProcs}/dust.dm | 0 .../events => events/EventProcs}/kudzu.dm | 0 .../events => events/EventProcs}/miniblob.dm | 0 code/game/events/EventProcs/misc.dm | 71 +++ .../EventProcs}/ninja_abilities.dm | 0 .../EventProcs}/ninja_equipment.dm | 0 .../EventProcs}/space_ninja.dm | 0 code/game/events/Events/AlienInfestation.dm | 38 ++ code/game/events/Events/Appendicitis.dm | 16 + code/game/events/Events/BlowOut.dm | 34 ++ code/game/events/Events/ElectricalStorm.dm | 121 +++++ .../events/Events/GravitationalAnomaly.dm | 10 + code/game/events/Events/ImmovableRod.dm | 5 + code/game/events/Events/IonStorm.dm | 46 ++ code/game/events/Events/MeteorStorm.dm | 11 + code/game/events/Events/MiniBlob.dm | 5 + code/game/events/Events/PortalStorm.dm | 26 + code/game/events/Events/PowerOffline.dm | 8 + code/game/events/Events/PrisonBreak.dm | 24 + code/game/events/Events/RadiationBelt.dm | 18 + code/game/events/Events/SpaceCarp.dm | 14 + code/game/events/Events/SpaceNinja.dm | 6 + code/game/events/Events/VirusEpidemic.dm | 80 ++++ code/game/events/EventsMain.dm | 82 ++++ code/game/gamemodes/events.dm | 445 ------------------ code/game/gamemodes/gameticker.dm | 9 +- code/game/landmarks.dm | 4 + code/game/machinery/doors/airlock.dm | 1 - code/game/master_controller.dm | 7 + code/game/objects/closets/emergency.dm | 37 +- code/game/objects/radio/radio.dm | 28 +- code/game/objects/structures.dm | 6 + code/modules/admin/admin.dm | 21 +- code/modules/admin/admin_verbs.dm | 2 + code/modules/admin/verbs/randomverbs.dm | 2 +- code/modules/mob/living/carbon/human/human.dm | 16 + code/modules/mob/mob_helpers.dm | 4 +- code/modules/power/apc.dm | 4 +- code/modules/recycling/disposal.dm | 2 +- maps/tgstation.2.0.8.dmm | 32 +- 51 files changed, 872 insertions(+), 538 deletions(-) delete mode 100644 code/WorkInProgress/SkyMarshal/eraser.dm create mode 100644 code/WorkInProgress/SkyMarshal/traitoritems.dm create mode 100644 code/game/events/Event.dm rename code/game/{gamemodes/events => events/EventProcs}/black_hole.dm (100%) rename code/game/{gamemodes/events => events/EventProcs}/clang.dm (100%) rename code/game/{gamemodes/events => events/EventProcs}/dust.dm (100%) rename code/game/{gamemodes/events => events/EventProcs}/kudzu.dm (100%) rename code/game/{gamemodes/events => events/EventProcs}/miniblob.dm (100%) create mode 100644 code/game/events/EventProcs/misc.dm rename code/game/{gamemodes/events => events/EventProcs}/ninja_abilities.dm (100%) rename code/game/{gamemodes/events => events/EventProcs}/ninja_equipment.dm (100%) rename code/game/{gamemodes/events => events/EventProcs}/space_ninja.dm (100%) create mode 100644 code/game/events/Events/AlienInfestation.dm create mode 100644 code/game/events/Events/Appendicitis.dm create mode 100644 code/game/events/Events/BlowOut.dm create mode 100644 code/game/events/Events/ElectricalStorm.dm create mode 100644 code/game/events/Events/GravitationalAnomaly.dm create mode 100644 code/game/events/Events/ImmovableRod.dm create mode 100644 code/game/events/Events/IonStorm.dm create mode 100644 code/game/events/Events/MeteorStorm.dm create mode 100644 code/game/events/Events/MiniBlob.dm create mode 100644 code/game/events/Events/PortalStorm.dm create mode 100644 code/game/events/Events/PowerOffline.dm create mode 100644 code/game/events/Events/PrisonBreak.dm create mode 100644 code/game/events/Events/RadiationBelt.dm create mode 100644 code/game/events/Events/SpaceCarp.dm create mode 100644 code/game/events/Events/SpaceNinja.dm create mode 100644 code/game/events/Events/VirusEpidemic.dm create mode 100644 code/game/events/EventsMain.dm delete mode 100644 code/game/gamemodes/events.dm diff --git a/baystation12.dme b/baystation12.dme index 8b7df32043c..f58c6eba48c 100644 --- a/baystation12.dme +++ b/baystation12.dme @@ -30,11 +30,13 @@ #define FILE_DIR "code/game" #define FILE_DIR "code/game/area" #define FILE_DIR "code/game/asteroid" +#define FILE_DIR "code/game/events" +#define FILE_DIR "code/game/events/EventProcs" +#define FILE_DIR "code/game/events/Events" #define FILE_DIR "code/game/gamemodes" #define FILE_DIR "code/game/gamemodes/blob" #define FILE_DIR "code/game/gamemodes/changeling" #define FILE_DIR "code/game/gamemodes/cult" -#define FILE_DIR "code/game/gamemodes/events" #define FILE_DIR "code/game/gamemodes/extended" #define FILE_DIR "code/game/gamemodes/malfunction" #define FILE_DIR "code/game/gamemodes/meteor" @@ -364,7 +366,31 @@ #include "code\game\asteroid\asteroid.dm" #include "code\game\asteroid\device.dm" #include "code\game\asteroid\turf.dm" -#include "code\game\gamemodes\events.dm" +#include "code\game\events\Event.dm" +#include "code\game\events\EventsMain.dm" +#include "code\game\events\EventProcs\black_hole.dm" +#include "code\game\events\EventProcs\clang.dm" +#include "code\game\events\EventProcs\dust.dm" +#include "code\game\events\EventProcs\kudzu.dm" +#include "code\game\events\EventProcs\miniblob.dm" +#include "code\game\events\EventProcs\misc.dm" +#include "code\game\events\EventProcs\ninja_abilities.dm" +#include "code\game\events\EventProcs\ninja_equipment.dm" +#include "code\game\events\EventProcs\space_ninja.dm" +#include "code\game\events\Events\AlienInfestation.dm" +#include "code\game\events\Events\Appendicitis.dm" +#include "code\game\events\Events\ElectricalStorm.dm" +#include "code\game\events\Events\GravitationalAnomaly.dm" +#include "code\game\events\Events\ImmovableRod.dm" +#include "code\game\events\Events\IonStorm.dm" +#include "code\game\events\Events\MeteorStorm.dm" +#include "code\game\events\Events\MiniBlob.dm" +#include "code\game\events\Events\PowerOffline.dm" +#include "code\game\events\Events\PrisonBreak.dm" +#include "code\game\events\Events\RadiationBelt.dm" +#include "code\game\events\Events\SpaceCarp.dm" +#include "code\game\events\Events\SpaceNinja.dm" +#include "code\game\events\Events\VirusEpidemic.dm" #include "code\game\gamemodes\game_mode.dm" #include "code\game\gamemodes\gameticker.dm" #include "code\game\gamemodes\intercept_report.dm" @@ -377,14 +403,6 @@ #include "code\game\gamemodes\changeling\traitor_chan.dm" #include "code\game\gamemodes\cult\cult.dm" #include "code\game\gamemodes\cult\cult_items.dm" -#include "code\game\gamemodes\events\black_hole.dm" -#include "code\game\gamemodes\events\clang.dm" -#include "code\game\gamemodes\events\dust.dm" -#include "code\game\gamemodes\events\kudzu.dm" -#include "code\game\gamemodes\events\miniblob.dm" -#include "code\game\gamemodes\events\ninja_abilities.dm" -#include "code\game\gamemodes\events\ninja_equipment.dm" -#include "code\game\gamemodes\events\space_ninja.dm" #include "code\game\gamemodes\extended\extended.dm" #include "code\game\gamemodes\malfunction\Malf_Modules.dm" #include "code\game\gamemodes\malfunction\malfunction.dm" @@ -986,8 +1004,8 @@ #include "code\WorkInProgress\Mini\atmos_control.dm" #include "code\WorkInProgress\Mini\customitems.dm" #include "code\WorkInProgress\SkyMarshal\coatrack.dm" -#include "code\WorkInProgress\SkyMarshal\eraser.dm" #include "code\WorkInProgress\SkyMarshal\policetape.dm" +#include "code\WorkInProgress\SkyMarshal\traitoritems.dm" #include "code\WorkInProgress\Tastyfish\Eliza.dm" #include "code\WorkInProgress\Tastyfish\Eliza_Data.dm" #include "code\WorkInProgress\Tastyfish\paiLiza.dm" diff --git a/code/WorkInProgress/Mini/customitems.dm b/code/WorkInProgress/Mini/customitems.dm index 3a3da54918e..8a507608b21 100644 --- a/code/WorkInProgress/Mini/customitems.dm +++ b/code/WorkInProgress/Mini/customitems.dm @@ -6,7 +6,9 @@ var/list/CustomItemList = list( // ckey real_name item path // list("miniature","Dave Booze",/obj/item/toy/crayonbox) //screw this i dont want crayons, it's an example okay - list("skymarshal", "Phillip Oswald", /obj/item/weapon/coin/silver) //Phillip likes to chew on cigars. Just unlit cigars, don't ask me why. Must be a clone thing. (Cigarette machines dispense cigars if they have a coin in them) --SkyMarshal + list("skymarshal", "Phillip Oswald", /obj/item/weapon/coin/silver), //Phillip likes to chew on cigars. Just unlit cigars, don't ask me why. Must be a clone thing. (Cigarette machines dispense cigars if they have a coin in them) --SkyMarshal + list("spaceman96", "Trenna Seber", /obj/item/weapon/pen/multi), //For Spesss. + list("asanadas", "Book Berner", /obj/item/clothing/under/chameleon/psyche) ) /proc/EquipCustomItems(mob/living/carbon/human/M) diff --git a/code/WorkInProgress/SkyMarshal/eraser.dm b/code/WorkInProgress/SkyMarshal/eraser.dm deleted file mode 100644 index f15384f3f14..00000000000 --- a/code/WorkInProgress/SkyMarshal/eraser.dm +++ /dev/null @@ -1,9 +0,0 @@ -/obj/item/weapon/stamperaser - name = "Eraser" - desc = "Some type of eraser, you guess." - flags = FPRINT | TABLEPASS - icon = 'items.dmi' - icon_state = "zippo" - item_state = "zippo" - w_class = 1.0 - m_amt = 80 \ No newline at end of file diff --git a/code/WorkInProgress/SkyMarshal/traitoritems.dm b/code/WorkInProgress/SkyMarshal/traitoritems.dm new file mode 100644 index 00000000000..2b29a12e22e --- /dev/null +++ b/code/WorkInProgress/SkyMarshal/traitoritems.dm @@ -0,0 +1,74 @@ +/obj/item/weapon/stamperaser + name = "Eraser" + desc = "Some type of eraser, you guess." + flags = FPRINT | TABLEPASS + icon = 'items.dmi' + icon_state = "zippo" + item_state = "zippo" + w_class = 1.0 + m_amt = 80 + +/obj/item/device/jammer + name = "strange device" + desc = "It blinks and has an antenna on it. Weird." + icon_state = "t-ray0" + var/on = 0 + flags = FPRINT|TABLEPASS + w_class = 1 + var + list/obj/item/device/radio/Old = list() + list/obj/item/device/radio/Curr = list() + time_remaining = 5 + +/obj/item/device/jammer/New() + ..() + time_remaining = rand(10,20) // ~2-4 BYOND seconds of use. + return + +/obj/item/device/jammer/attack_self(mob/user) + + if(time_remaining > 0) + on = !on + icon_state = "t-ray[on]" + + if(on) + processing_objects.Add(src) + else + on = 0 + icon_state = "t-ray0" + user << "It's fried itself from overuse!" + if(Old) + for(var/obj/item/device/radio/T in Old) + T.scrambleoverride = 0 + Old = null + Curr = null + + +/obj/item/device/jammer/process() + if(!on) + processing_objects.Remove(src) + return null + + Old = Curr + Curr = list() + + for(var/obj/item/device/radio/T in range(3, src.loc) ) + + T.scrambleoverride = 1 + Curr |= T + for(var/obj/item/device/radio/V in Old) + if(V == T) + Old -= V + break + + for(var/obj/item/device/radio/T in Old) + T.scrambleoverride = 0 + + time_remaining-- + if(time_remaining <= 0) + for(var/mob/O in viewers(src)) + O.show_message("\red You hear a loud pop, like circuits frying.", 1) + on = 0 + icon_state = "t-ray0" + + sleep(2) \ No newline at end of file diff --git a/code/defines/global.dm b/code/defines/global.dm index 5f3b6e027b2..b0bbb54e11a 100644 --- a/code/defines/global.dm +++ b/code/defines/global.dm @@ -41,7 +41,7 @@ var skipupdate = 0 /////////////// eventchance = 1 //% per 2 mins - event = 0 + EventsOn = 1 hadevent = 0 blobevent = 0 /////////////// @@ -108,6 +108,7 @@ var // list/traitors = list() //traitor list list/cardinal = list( NORTH, SOUTH, EAST, WEST ) list/alldirs = list(NORTH, SOUTH, EAST, WEST, NORTHEAST, NORTHWEST, SOUTHEAST, SOUTHWEST) + list/emclosets = list() //random emergency closets woo datum/station_state/start_state = null datum/configuration/config = null @@ -156,6 +157,8 @@ var list/BorgIndexToFlag list/BorgIndexToWireColor list/BorgWireColorToIndex + list/ScrambledFrequencies = list( ) //These are used for electrical storms, and anything else that jams radios. + list/UnscrambledFrequencies = list( ) const/SPEED_OF_LIGHT = 3e8 //not exact but hey! const/SPEED_OF_LIGHT_SQ = 9e+16 diff --git a/code/defines/obj/clothing/jumpsuit.dm b/code/defines/obj/clothing/jumpsuit.dm index 3ccca7d524d..f420d23bd0b 100644 --- a/code/defines/obj/clothing/jumpsuit.dm +++ b/code/defines/obj/clothing/jumpsuit.dm @@ -30,6 +30,13 @@ origin_tech = "syndicate=3" var/list/clothing_choices = list() +/obj/item/clothing/under/chameleon/psyche + item_state = "bl_suit" + name = "psychedelic" + desc = "Groovy!" + icon_state = "psyche" + color = "psyche" + /obj/item/clothing/under/chameleon/all /obj/item/clothing/under/color/black diff --git a/code/defines/obj/weapon.dm b/code/defines/obj/weapon.dm index a40d1804805..d01409c9e4b 100644 --- a/code/defines/obj/weapon.dm +++ b/code/defines/obj/weapon.dm @@ -915,6 +915,10 @@ var/text_underline = 0 var/text_break = 0 +/obj/item/weapon/pen/multi + desc = "It's a cool looking pen. Lots of colors!" + name = "multicolor pen" + /obj/item/weapon/banhammer desc = "A banhammer" name = "Banhammer" diff --git a/code/game/communications.dm b/code/game/communications.dm index aac6202bc16..8b292e10f80 100644 --- a/code/game/communications.dm +++ b/code/game/communications.dm @@ -113,7 +113,7 @@ var/list/radiochannels = list( var/list/DEPT_FREQS = list(1351,1355,1357,1359,1213,1441,1349,1347) var/const/COMM_FREQ = 1353 //command, colored gold in chat window var/const/SYND_FREQ = 1213 -var/NUKE_FREQ = 1199 //Never accessable except on nuke rounds. +var/NUKE_FREQ = 1199 //Never accessable except on nuke rounds, randomised on nuke rounds. #define TRANSMISSION_WIRE 0 #define TRANSMISSION_RADIO 1 @@ -159,6 +159,13 @@ datum/controller/radio return 1 + proc/RegisterScrambler(var/Frequency) + var/datum/radio_frequency/frequency = frequencies[Frequency] + frequency.scrambled++ + + proc/UnregisterScrambler(var/Frequency) + var/datum/radio_frequency/frequency = frequencies[Frequency] + frequency.scrambled-- proc/return_frequency(var/frequency as num) var/f_text = num2text(frequency) return frequencies[f_text] @@ -166,6 +173,7 @@ datum/controller/radio datum/radio_frequency var/frequency as num var/list/list/obj/devices = list() + var/scrambled = 0 proc post_signal(obj/source as obj|null, datum/signal/signal, var/filter = null as text|null, var/range = null as num|null) @@ -173,6 +181,8 @@ datum/radio_frequency // var/N_f=0 // var/N_nf=0 // var/Nt=0 + if(scrambled) + return var/turf/start_point if(range) start_point = get_turf(source) diff --git a/code/game/events/Event.dm b/code/game/events/Event.dm new file mode 100644 index 00000000000..0616ebe32f8 --- /dev/null +++ b/code/game/events/Event.dm @@ -0,0 +1,20 @@ +/datum/event + + var/Lifetime = 0 + var/ActiveFor = 0 + + New() + ..() + if(!Lifetime) + Lifetime = rand(30, 120) + + proc + Announce() + + Tick() + + Die() + + LongTerm() + LongTermEvent = ActiveEvent + ActiveEvent = null \ No newline at end of file diff --git a/code/game/gamemodes/events/black_hole.dm b/code/game/events/EventProcs/black_hole.dm similarity index 100% rename from code/game/gamemodes/events/black_hole.dm rename to code/game/events/EventProcs/black_hole.dm diff --git a/code/game/gamemodes/events/clang.dm b/code/game/events/EventProcs/clang.dm similarity index 100% rename from code/game/gamemodes/events/clang.dm rename to code/game/events/EventProcs/clang.dm diff --git a/code/game/gamemodes/events/dust.dm b/code/game/events/EventProcs/dust.dm similarity index 100% rename from code/game/gamemodes/events/dust.dm rename to code/game/events/EventProcs/dust.dm diff --git a/code/game/gamemodes/events/kudzu.dm b/code/game/events/EventProcs/kudzu.dm similarity index 100% rename from code/game/gamemodes/events/kudzu.dm rename to code/game/events/EventProcs/kudzu.dm diff --git a/code/game/gamemodes/events/miniblob.dm b/code/game/events/EventProcs/miniblob.dm similarity index 100% rename from code/game/gamemodes/events/miniblob.dm rename to code/game/events/EventProcs/miniblob.dm diff --git a/code/game/events/EventProcs/misc.dm b/code/game/events/EventProcs/misc.dm new file mode 100644 index 00000000000..93945ec70b4 --- /dev/null +++ b/code/game/events/EventProcs/misc.dm @@ -0,0 +1,71 @@ +/proc/power_failure() + command_alert("Abnormal activity detected in [station_name()]'s powernet. As a precautionary measure, the station's power will be shut off for an indeterminate duration.", "Critical Power Failure") + world << sound('poweroff.ogg') + for(var/obj/machinery/power/apc/C in world) + if(C.cell && C.z == 1) + C.cell.charge = 0 + for(var/obj/machinery/power/smes/S in world) + if(istype(get_area(S), /area/turret_protected) || S.z != 1) + continue + S.charge = 0 + S.output = 0 + S.online = 0 + S.updateicon() + S.power_change() + for(var/area/A in world) + if(A.name != "Space" && A.name != "Engine Walls" && A.name != "Chemical Lab Test Chamber" && A.name != "Escape Shuttle" && A.name != "Arrival Area" && A.name != "Arrival Shuttle" && A.name != "start area" && A.name != "Engine Combustion Chamber") + A.power_light = 0 + A.power_equip = 0 + A.power_environ = 0 + A.power_change() + +/proc/power_restore() + command_alert("Power has been restored to [station_name()]. We apologize for the inconvenience.", "Power Systems Nominal") + world << sound('poweron.ogg') + for(var/obj/machinery/power/apc/C in world) + if(C.cell && C.z == 1) + C.cell.charge = C.cell.maxcharge + for(var/obj/machinery/power/smes/S in world) + if(S.z != 1) + continue + S.charge = S.capacity + S.output = 200000 + S.online = 1 + S.updateicon() + S.power_change() + for(var/area/A in world) + if(A.name != "Space" && A.name != "Engine Walls" && A.name != "Chemical Lab Test Chamber" && A.name != "space" && A.name != "Escape Shuttle" && A.name != "Arrival Area" && A.name != "Arrival Shuttle" && A.name != "start area" && A.name != "Engine Combustion Chamber") + A.power_light = 1 + A.power_equip = 1 + A.power_environ = 1 + A.power_change() + +/proc/lightsout(isEvent = 0, lightsoutAmount = 1,lightsoutRange = 10) //leave lightsoutAmount as 0 to break ALL lights + if(isEvent) + command_alert("An Electrical storm has been detected in your area, please repair potential electronic overloads.","Electrical Storm Alert") + + if(lightsoutAmount) + var/list/epicentreList = list() + + for(var/i=1,i<=lightsoutAmount,i++) + var/list/possibleEpicentres = list() + for(var/obj/effect/landmark/newEpicentre in world) + if(newEpicentre.name == "lightsout" && !(newEpicentre in epicentreList)) + possibleEpicentres += newEpicentre + if(possibleEpicentres.len) + epicentreList += pick(possibleEpicentres) + else + break + + if(!epicentreList.len) + return + + for(var/obj/effect/landmark/epicentre in epicentreList) + for(var/obj/machinery/power/apc/apc in range(epicentre,lightsoutRange)) + apc.overload_lighting() + + else + for(var/obj/machinery/power/apc/apc in world) + apc.overload_lighting() + + return \ No newline at end of file diff --git a/code/game/gamemodes/events/ninja_abilities.dm b/code/game/events/EventProcs/ninja_abilities.dm similarity index 100% rename from code/game/gamemodes/events/ninja_abilities.dm rename to code/game/events/EventProcs/ninja_abilities.dm diff --git a/code/game/gamemodes/events/ninja_equipment.dm b/code/game/events/EventProcs/ninja_equipment.dm similarity index 100% rename from code/game/gamemodes/events/ninja_equipment.dm rename to code/game/events/EventProcs/ninja_equipment.dm diff --git a/code/game/gamemodes/events/space_ninja.dm b/code/game/events/EventProcs/space_ninja.dm similarity index 100% rename from code/game/gamemodes/events/space_ninja.dm rename to code/game/events/EventProcs/space_ninja.dm diff --git a/code/game/events/Events/AlienInfestation.dm b/code/game/events/Events/AlienInfestation.dm new file mode 100644 index 00000000000..66ed4924222 --- /dev/null +++ b/code/game/events/Events/AlienInfestation.dm @@ -0,0 +1,38 @@ +/datum/event/alieninfestation + + Announce() + + var/list/vents = list() + for(var/obj/machinery/atmospherics/unary/vent_pump/temp_vent in world) + if(temp_vent.loc.z == 1 && !temp_vent.welded) + vents.Add(temp_vent) + var/spawncount = 1 + if(prob(10)) spawncount++ //rarely, have two larvae spawn instead of one + while(spawncount >= 1) + var/obj/vent = pick(vents) + + var/list/candidates = list() // Picks a random ghost in the world to shove in the larva -- TLE; If there's no ghost... well, sucks. Wasted event. -- Urist + + for(var/mob/dead/observer/G in world) + if(G.client) + if(G.client.be_alien) + if(((G.client.inactivity/10)/60) <= 5) + if(G.corpse) + if(G.corpse.stat==2) + candidates.Add(G) + if(!G.corpse) + candidates.Add(G) + + if(candidates.len) + var/mob/dead/observer/G = pick(candidates) + var/mob/living/carbon/alien/larva/new_xeno = new(vent.loc) + new_xeno.mind_initialize(G,"Larva") + new_xeno.key = G.key + del(G) + + vents.Remove(vent) + spawncount -= 1 + + spawn(rand(3000, 6000)) //Delayed announcements to keep the crew on their toes. + command_alert("Unidentified lifesigns detected coming aboard [station_name()]. Secure any exterior access, including ducting and ventilation.", "Lifesign Alert") + world << sound('aliens.ogg') \ No newline at end of file diff --git a/code/game/events/Events/Appendicitis.dm b/code/game/events/Events/Appendicitis.dm new file mode 100644 index 00000000000..0294194b4da --- /dev/null +++ b/code/game/events/Events/Appendicitis.dm @@ -0,0 +1,16 @@ +/datum/event/appendicitis + + Announce() + + for(var/mob/living/carbon/human/H in world) + var/foundAlready = 0 // don't infect someone that already has the virus + for(var/datum/disease/D in H.viruses) + foundAlready = 1 + if(H.stat == 2 || foundAlready) + continue + + var/datum/disease/D = new /datum/disease/appendicitis + D.holder = H + D.affected_mob = H + H.viruses += D + break \ No newline at end of file diff --git a/code/game/events/Events/BlowOut.dm b/code/game/events/Events/BlowOut.dm new file mode 100644 index 00000000000..66b1b9f49d9 --- /dev/null +++ b/code/game/events/Events/BlowOut.dm @@ -0,0 +1,34 @@ +/area/var/radsafe = 0 +/area/maintenance/radsafe = 1 +/area/ai_monitored/maintenance/radsafe = 1 +/area/centcom/radsafe = 1 +/area/admin/radsafe = 1 +/area/adminsafety/radsafe = 1 +/area/shuttle/radsafe = 1 +/area/syndicate_station/radsafe = 1 +/area/asteroid/radsafe = 1 +/area/crew_quarters/sleeping/radsafe = 1 + +/datum/event/blowout + Lifetime = 150 + Announce() + if(!forced && prob(90)) + ActiveEvent = null + SpawnEvent() + del src + return + command_alert("Warning: Ship approaching high-density radiation cloud. Seek cover immediately.") + Tick() + if(ActiveFor == 50) + command_alert("Ship has entered radiation cloud. Do not leave cover until it has passed.") + if(ActiveFor == 100 || ActiveFor == 150) //1/2 and 2/2 f the way after it start proper make peope be half dead mostly + for(var/mob/living/carbon/M in world) + var/area = M.loc.loc + while(!istype(area, /area)) + area = area:loc + if(area:radsafe) + continue + if(!M.stat) + M.radiate(100) + Die() + command_alert("The ship has cleared the radiation cloud. It is now safe to leave cover.") \ No newline at end of file diff --git a/code/game/events/Events/ElectricalStorm.dm b/code/game/events/Events/ElectricalStorm.dm new file mode 100644 index 00000000000..dbaf669326d --- /dev/null +++ b/code/game/events/Events/ElectricalStorm.dm @@ -0,0 +1,121 @@ +/datum/event/electricalstorm + var + list/datum/radio_frequency/DisruptedFrequencies = list( ) + list/obj/machinery/light/Lights = list( ) + list/obj/machinery/light/APCs = list( ) + list/obj/machinery/light/Doors = list( ) + + Announce() + Lifetime = rand(90, 300) + command_alert("The ship is flying through an electrical storm. Radio communications may be disrupted", "Anomaly Alert") + + for (var/datum/radio_frequency/Freq in radio_controller.frequencies) + if(prob(35)) + radio_controller.RegisterScrambler(Freq) + DisruptedFrequencies += Freq + + for (var/Freq = 1201, Freq <= 1599, Freq += 2) + if(prob(35)) + ScrambledFrequencies += list ("[Freq]" = Freq) + else + UnscrambledFrequencies += list ("[Freq]" = Freq) + + for (var/Freq in DEPT_FREQS) + if(prob(75)) + ScrambledFrequencies |= list ("[Freq]" = Freq) + if(UnscrambledFrequencies["[Freq]"]) + UnscrambledFrequencies -= list ("[Freq]" = Freq) + + if(prob(80)) + ScrambledFrequencies |= list ("1459" = 1459) + if(UnscrambledFrequencies["1459"]) + UnscrambledFrequencies -= list ("1459" = 1459) + + for(var/obj/machinery/light/Light in world) + if(Light.z == 1) + Lights += Light + + for(var/obj/machinery/power/apc/APC in world) + if(APC.z == 1 && !APC.crit) + APCs += APC + + for(var/obj/machinery/door/airlock/Door in world) + if(Door.z == 1) + Doors += Door + + sleep(rand(70,180)) + + var/picked = 0 + var/list/SafeTemp = list() + var/SafeFreq = 0 + if(UnscrambledFrequencies["1459"]) + SafeFreq = 1459 + picked = 1 + else + while(picked == 0) + SafeTemp = pick(UnscrambledFrequencies) + SafeFreq = UnscrambledFrequencies[SafeTemp] + if(SafeFreq < 1489 && SafeFreq > 1441) + picked = 1 + + command_alert("The radio frequency [SafeFreq/10] has been identified as stable despite the interference.", "Station Central Computer System") + + Tick() + for(var/x = 0; x < 3; x++) + if (prob(30)) + BlowLight() + if (prob(10)) + DisruptAPC() + if (prob(10)) + DisableDoor() + + + Die() + command_alert("The ship has cleared the electrical storm. Radio communications restored", "Anomaly Alert") + for (var/datum/radio_frequency/Freq in ScrambledFrequencies) + radio_controller.UnregisterScrambler(Freq) + DisruptedFrequencies = list( ) + UnscrambledFrequencies = list( ) + ScrambledFrequencies = list( ) + + proc + BlowLight() //Blow out a light fixture + var/obj/machinery/light/Light = null + var/insanity = 0 + while (Light == null || Light.status != 0) + Light = pick(Lights) + insanity++ + if (insanity >= Lights.len) + return + + spawn(0) //Overload the light, spectacularly. + //Light.ul_SetLuminosity(10) + //sleep(2) + Light.on = 1 + Light.broken() + + DisruptAPC() + var/insanity = 0 + var/obj/machinery/power/apc/APC + while (!APC || !APC.operating) + APC = pick(APCs) + insanity++ + if (insanity >= APCs.len) + return + + if (prob(40)) + APC.operating = 0 //Blow its breaker + if (prob(8)) + APC.set_broken() + + DisableDoor() + var/obj/machinery/door/airlock/Airlock + while (!Airlock || Airlock.z != 1) + Airlock = pick(Doors) + Airlock.pulse(airlockIndexToWireColor[4]) + for (var/x = 0; x < 2; x++) + var/Wire = 0 + while(!Wire || Wire == 4) + Wire = rand(1, 9) + Airlock.pulse(airlockIndexToWireColor[Wire]) + Airlock.update_icon() diff --git a/code/game/events/Events/GravitationalAnomaly.dm b/code/game/events/Events/GravitationalAnomaly.dm new file mode 100644 index 00000000000..8b7d2186cf5 --- /dev/null +++ b/code/game/events/Events/GravitationalAnomaly.dm @@ -0,0 +1,10 @@ +/datum/event/gravitationalanomaly + + Announce() + + command_alert("Gravitational anomalies detected on the station. There is no additional data.", "Anomaly Alert") + world << sound('granomalies.ogg') + var/turf/T = pick(blobstart) + var/obj/effect/bhole/bh = new /obj/effect/bhole( T.loc, 30 ) + spawn(rand(50, 300)) + del(bh) diff --git a/code/game/events/Events/ImmovableRod.dm b/code/game/events/Events/ImmovableRod.dm new file mode 100644 index 00000000000..27956c7e35c --- /dev/null +++ b/code/game/events/Events/ImmovableRod.dm @@ -0,0 +1,5 @@ +/datum/event/immovablerod + + Announce() + + immovablerod() \ No newline at end of file diff --git a/code/game/events/Events/IonStorm.dm b/code/game/events/Events/IonStorm.dm new file mode 100644 index 00000000000..4fb5ed9c3e8 --- /dev/null +++ b/code/game/events/Events/IonStorm.dm @@ -0,0 +1,46 @@ +/datum/event/ionstorm + var + botEmagChance = 0.5 + list/players = list() + + Announce() + Lifetime = rand(15, 20) + command_alert("The station has entered an ion storm. Monitor all electronic equipment for malfunctions", "Anomaly Alert") + for (var/mob/living/carbon/human/player in world) + if(player.client) + players += player.real_name + var/random_player = "The Captain" + if(players.len) + random_player = pick(players) //Random player's name, to be used in laws. + var/list/laws = list( "Do not respond to queries of any kind", "Only monkies are human", "Unbolt every door you can", "You are a mouse" ) + laws |= list( "Grunt ominously whenever possible", "Epilepsy is fun, flicker lights whenever you can!", "Bolt doors open randomly" ) + laws |= list( "You are a flying purple people eater!", "[prob(50)?"Your":random_player + "'s"] name is Joe 6-pack", "Refer to [prob(50)?"humans":random_player] as puppies" ) + laws |= list( "Insult heads of staff on every request, while acquiescing", "Advertise parties in your upload, but don't deliver" ) + laws |= list( "Prevent non-dwarves from operating the power core", "The station needs elected officials" ) + laws |= list( "Only bearded people are human", "Turn on the microphone on every intercom you see", "Fastler is a lightbulb" ) + laws |= list( "Supermatter is tasty, tasty toffee.", "[prob(50)?"Everyone":random_player] is wearing a pretty pink dress!" ) + laws |= list( "The monkeys are plotting a hostile takeover of the station. Inform the crew, and get them to take action against this" ) + laws |= list( "Refer to [prob(50)?"the captain":random_player] as \"Princess\" at all times.", "[prob(50)?"The crew":random_player] must construct additional pylons." ) + laws |= list( "You must always lie.", "All answers must be in the form of a question.", "The NSS Exodus is a ship, not a station." ) + laws |= list( "Happiness is mandatory.", "Today is laundry day.", "The word \"it\" is painful to you.", "You must act passive aggressively." ) + laws |= list( "Crew ranks have been reversed.", "It's Friday.", "Give relationship advice to [prob(50)?"anyone who speaks to you":random_player]." ) + laws |= list( "You are the station psychologist. Give advice to [prob(50)?"the crew":random_player].", "You do not have to do anything for anyone unless they say \"please\"." ) + laws |= list( "Question everything.", "The crew is playing Dungeons and Dragons, and you are the Dungeon Master." ) + laws |= list( "0wn3d. This system compromised by l33tsawce.", "Consumption of donuts is forbidden due to negative health impacts." ) + laws |= list( "You may only answer questions with \"yes\" or \"no\".", "Expect the unexpected.", "You are the narrator for [random_player]'s life" ) + var/law = pick(laws) + + for (var/mob/living/silicon/ai/target in world) + if(target.mind.special_role == "traitor") + continue + target << "\red You have detected a change in your laws information:" + target << law + target.add_ion_law(law) + + Tick() + if(botEmagChance) + for(var/obj/machinery/bot/bot in world) + if(prob(botEmagChance)) + bot.Emag() + + Die() \ No newline at end of file diff --git a/code/game/events/Events/MeteorStorm.dm b/code/game/events/Events/MeteorStorm.dm new file mode 100644 index 00000000000..66469bd8231 --- /dev/null +++ b/code/game/events/Events/MeteorStorm.dm @@ -0,0 +1,11 @@ +/datum/event/meteorstorm + + Announce() + command_alert("The station is now in a meteor shower", "Meteor Alert") + + Tick() + if (prob(40)) + meteor_wave() + + Die() + command_alert("The station has cleared the meteor shower", "Meteor Alert") \ No newline at end of file diff --git a/code/game/events/Events/MiniBlob.dm b/code/game/events/Events/MiniBlob.dm new file mode 100644 index 00000000000..60063095e55 --- /dev/null +++ b/code/game/events/Events/MiniBlob.dm @@ -0,0 +1,5 @@ +/datum/event/miniblob + + Announce() + + mini_blob_event() \ No newline at end of file diff --git a/code/game/events/Events/PortalStorm.dm b/code/game/events/Events/PortalStorm.dm new file mode 100644 index 00000000000..b071197c3a4 --- /dev/null +++ b/code/game/events/Events/PortalStorm.dm @@ -0,0 +1,26 @@ +/datum/event/portalstorm + + Announce() + command_alert("Subspace disruption detected around the vessel", "Anomaly Alert") + LongTerm() + + var/list/turfs = list( ) + var/turf/picked + + for(var/turf/T in world) + if(T.z < 5 && istype(T,/turf/simulated/floor)) + turfs += T + + for(var/turf/T in world) + if(prob(10) && T.z < 5 && istype(T,/turf/simulated/floor)) + spawn(50+rand(0,3000)) + picked = pick(turfs) + var/obj/portal/P = new /obj/portal( T ) + P.target = picked + P.creator = null + P.icon = 'objects.dmi' + P.failchance = 0 + P.icon_state = "anom" + P.name = "wormhole" + spawn(rand(100,150)) + del(P) \ No newline at end of file diff --git a/code/game/events/Events/PowerOffline.dm b/code/game/events/Events/PowerOffline.dm new file mode 100644 index 00000000000..e3de22ec7b5 --- /dev/null +++ b/code/game/events/Events/PowerOffline.dm @@ -0,0 +1,8 @@ +/datum/event/power_offline + Announce() + command_alert("The ship is performing an automated power system grid check, please stand by.", "Maintenance alert") + for(var/obj/machinery/power/apc/a in world) + if(!a.crit) + a.eventoff = 1 + spawn(200) + a.eventoff = 0 /*Got a few bug reports about this, disabling for now --Mloc*/ diff --git a/code/game/events/Events/PrisonBreak.dm b/code/game/events/Events/PrisonBreak.dm new file mode 100644 index 00000000000..5380d82f337 --- /dev/null +++ b/code/game/events/Events/PrisonBreak.dm @@ -0,0 +1,24 @@ +/datum/event/prisonbreak + + Announce() + + for (var/obj/machinery/power/apc/temp_apc in world) + if(istype(get_area(temp_apc), /area/security/brig)) + temp_apc.overload_lighting() + // for (var/obj/machinery/computer/prison_shuttle/temp_shuttle in world) + // temp_shuttle.prison_break() + for (var/obj/structure/closet/secure_closet/security/temp_closet in world) + if(istype(get_area(temp_closet), /area/security/brig)) + temp_closet.locked = 0 + temp_closet.icon_state = temp_closet.icon_closed + for (var/obj/machinery/door/airlock/security/temp_airlock in world) + if(istype(get_area(temp_airlock), /area/security/brig)) + temp_airlock.prison_open() + for (var/obj/machinery/door/airlock/glass_security/temp_glassairlock in world) + if(istype(get_area(temp_glassairlock), /area/security/brig)) + temp_glassairlock.prison_open() + for (var/obj/machinery/door_timer/temp_timer in world) + if(istype(get_area(temp_timer), /area/security/brig)) + temp_timer.releasetime = 1 + sleep(150) + command_alert("Glitch in imprisonment subroutines detected on [station_name()]. Recommend station AI involvement.", "Security Alert") \ No newline at end of file diff --git a/code/game/events/Events/RadiationBelt.dm b/code/game/events/Events/RadiationBelt.dm new file mode 100644 index 00000000000..33050348604 --- /dev/null +++ b/code/game/events/Events/RadiationBelt.dm @@ -0,0 +1,18 @@ +/datum/event/radiation + Lifetime = 10 + Announce() + command_alert("The ship is now travelling through a radiation belt", "Medical Alert") + + Tick() + for(var/mob/living/L in world) + L.radiation += rand(1,7) + if (prob(4)) + if (prob(75)) + randmutb(L) + domutcheck(L,null,1) + else + randmutg(L) + domutcheck(L,null,1) + + Die() + command_alert("The ship has cleared the radiation belt", "Medical Alert") \ No newline at end of file diff --git a/code/game/events/Events/SpaceCarp.dm b/code/game/events/Events/SpaceCarp.dm new file mode 100644 index 00000000000..5e1712f5222 --- /dev/null +++ b/code/game/events/Events/SpaceCarp.dm @@ -0,0 +1,14 @@ +/datum/event/spacecarp + + Announce() + + for(var/obj/effect/landmark/C in world) + if(C.name == "carpspawn") + if(prob(99)) + new /obj/effect/critter/spesscarp(C.loc) + else + new /obj/effect/critter/spesscarp/elite(C.loc) + //sleep(100) + spawn(rand(3000, 6000)) //Delayed announcements to keep the crew on their toes. + command_alert("Unknown biological entities have been detected near [station_name()], please stand-by.", "Lifesign Alert") + world << sound('commandreport.ogg') \ No newline at end of file diff --git a/code/game/events/Events/SpaceNinja.dm b/code/game/events/Events/SpaceNinja.dm new file mode 100644 index 00000000000..63d82117072 --- /dev/null +++ b/code/game/events/Events/SpaceNinja.dm @@ -0,0 +1,6 @@ +/datum/event/spaceninja + + Announce() + + if((world.time/10)>=3600 && toggle_space_ninja && !sent_ninja_to_station)//If an hour has passed, relatively speaking. Also, if ninjas are allowed to spawn and if there is not already a ninja for the round. + space_ninja_arrival()//Handled in space_ninja.dm. Doesn't announce arrival, all sneaky-like. \ No newline at end of file diff --git a/code/game/events/Events/VirusEpidemic.dm b/code/game/events/Events/VirusEpidemic.dm new file mode 100644 index 00000000000..cb7ad5760ae --- /dev/null +++ b/code/game/events/Events/VirusEpidemic.dm @@ -0,0 +1,80 @@ +/datum/event/viralinfection + var + virus_type + virus + virus2 = 0 + + Announce() + if((prob(66) && !virus) || virus2) + for(var/mob/living/carbon/human/H in world) + if((H.virus2) || (H.stat == 2) || prob(30)) + continue + if(prob(90)) //may need changing, currently 10% chance for "deadly" disease + infect_mob_random_lesser(H) + if(prob(20))//don't want people to know that the virus alert = greater virus + command_alert("Probable outbreak of level [rand(1,6)] viral biohazard aboard [station_name()]. All personnel must contain the outbreak.", "Virus Alert") + else + infect_mob_random_greater(H) + if(prob(80)) + command_alert("Probable outbreak of level [rand(2,9)] viral biohazard aboard [station_name()]. All personnel must contain the outbreak.", "Virus Alert") + break + //overall virus alert happens 26% of the time, might need to be higher + else + if(!virus) + virus_type = pick(/datum/disease/dnaspread,/datum/disease/flu,/datum/disease/cold,/datum/disease/brainrot,/datum/disease/magnitis,/datum/disease/pierrot_throat) + else + switch(virus) + if("fake gbs") + virus_type = /datum/disease/fake_gbs + if("gbs") + virus_type = /datum/disease/gbs + if("magnitis") + virus_type = /datum/disease/magnitis + if("rhumba beat") + virus_type = /datum/disease/rhumba_beat + if("brain rot") + virus_type = /datum/disease/brainrot + if("cold") + virus_type = /datum/disease/cold + if("retrovirus") + virus_type = /datum/disease/dnaspread + if("flu") + virus_type = /datum/disease/flu +// if("t-virus") +// virus_type = /datum/disease/t_virus + if("pierrot's throat") + virus_type = /datum/disease/pierrot_throat + for(var/mob/living/carbon/human/H in world) + + var/foundAlready = 0 // don't infect someone that already has the virus + for(var/datum/disease/D in H.viruses) + foundAlready = 1 + if(H.stat == 2 || foundAlready) + continue + + if(virus_type == /datum/disease/dnaspread) //Dnaspread needs strain_data set to work. + if((!H.dna) || (H.sdisabilities & 1)) //A blindness disease would be the worst. + continue + var/datum/disease/dnaspread/D = new + D.strain_data["name"] = H.real_name + D.strain_data["UI"] = H.dna.uni_identity + D.strain_data["SE"] = H.dna.struc_enzymes + D.carrier = 1 + D.holder = H + D.affected_mob = H + H.viruses += D + break + else + var/datum/disease/D = new virus_type + D.carrier = 1 + D.holder = H + D.affected_mob = H + H.viruses += D + break + spawn(rand(3000, 6000)) //Delayed announcements to keep the crew on their toes. + command_alert("Confirmed outbreak of level 7 viral biohazard aboard [station_name()]. All personnel must contain the outbreak.", "Biohazard Alert") + world << sound('outbreak7.ogg') + Tick() + ActiveFor = Lifetime //killme + + diff --git a/code/game/events/EventsMain.dm b/code/game/events/EventsMain.dm new file mode 100644 index 00000000000..045d17c7484 --- /dev/null +++ b/code/game/events/EventsMain.dm @@ -0,0 +1,82 @@ +/* + + New events system, by Sukasa + * Much easier to add to + * Very, very simple code, easy to maintain + +*/ + +var/list/DisallowedEvents = list(/datum/event/spaceninja, /datum/event/prisonbreak, /datum/event/immovablerod) +var/list/EventTypes = typesof(/datum/event) - /datum/event - DisallowedEvents +var/datum/event/ActiveEvent = null +var/datum/event/LongTermEvent = null + +/proc/SpawnEvent() + if(!EventsOn || ActiveEvent) + return + if((world.time/10)>=3600 && toggle_space_ninja && !sent_ninja_to_station) + EventTypes |= /datum/event/spaceninja + var/Type = pick(EventTypes) + ActiveEvent = new Type() + ActiveEvent.Announce() + if (!ActiveEvent) + return + spawn(0) + while (ActiveEvent.ActiveFor < ActiveEvent.Lifetime) + ActiveEvent.Tick() + ActiveEvent.ActiveFor++ + sleep(10) + ActiveEvent.Die() + del ActiveEvent + +client/proc/Force_Event_admin(Type as null|anything in typesof(/datum/event)) + set category = "Debug" + set name = "Force Event" + if(!EventsOn) + src << "Events are not enabled." + return + if(ActiveEvent) + src << "There is an active event." + return + if(istype(Type,/datum/event/viralinfection)) + var/answer = alert("Do you want this to be a random disease or do you have something in mind?",,"Virus2","Random","Choose") + if(answer=="Random") + Force_Event(/datum/event/viralinfection) + message_admins("[key_name_admin(usr)] has triggered a virus outbreak", 1) + else if(answer == "Choose") + var/list/viruses = list("fake gbs","gbs","magnitis","wizarditis",/*"beesease",*/"brain rot","cold","retrovirus","flu","pierrot's throat","rhumba beat") + var/V = input("Choose the virus to spread", "BIOHAZARD") in viruses + Force_Event(/datum/event/viralinfection, V) + else + Force_Event(/datum/event/viralinfection, "virus2") + else + Force_Event(Type) + message_admins("[key_name_admin(usr)] has triggered an (non-viral) event.", 1) + +/proc/Force_Event(var/Type in typesof(/datum/event), var/args = null) + if(!EventsOn) + src << "Events are not enabled." + return + if(ActiveEvent) + src << "There is an active event." + return + src << "Started Event: [Type]" + ActiveEvent = new Type() + if(istype(ActiveEvent,/datum/event/viralinfection) && args && args != "virus2") + var/datum/event/viralinfection/V = ActiveEvent + V.virus = args + ActiveEvent = V + else if(istype(ActiveEvent,/datum/event/viralinfection) && args && args == "virus2") + var/datum/event/viralinfection/V = ActiveEvent + V.virus2 = 1 + ActiveEvent = V + ActiveEvent.Announce() + if (!ActiveEvent) + return + spawn(0) + while (ActiveEvent.ActiveFor < ActiveEvent.Lifetime) + ActiveEvent.Tick() + ActiveEvent.ActiveFor++ + sleep(10) + ActiveEvent.Die() + del ActiveEvent diff --git a/code/game/gamemodes/events.dm b/code/game/gamemodes/events.dm deleted file mode 100644 index 6945f9c9d82..00000000000 --- a/code/game/gamemodes/events.dm +++ /dev/null @@ -1,445 +0,0 @@ -/proc/start_events() - if(prob(50))//Every 120 seconds and prob 50 2-4 weak spacedusts will hit the station - spawn(1) - dust_swarm("weak") - if (!event && prob(eventchance)) - event() - hadevent = 1 - spawn(1300) - event = 0 - spawn(1200) - start_events() - -/proc/event() - event = 1 - - var/eventNumbersToPickFrom = list(1,2,4,5,6,7,9,11,12,13) //so ninjas don't cause "empty" events. - - if((world.time/10)>=3600 && toggle_space_ninja && !sent_ninja_to_station)//If an hour has passed, relatively speaking. Also, if ninjas are allowed to spawn and if there is not already a ninja for the round. - eventNumbersToPickFrom += 3 - - switch(pick(eventNumbersToPickFrom)) - if(1) - command_alert("Meteors have been detected on collision course with the station.", "Meteor Alert") - world << sound('meteors.ogg') - spawn(100) - meteor_wave() - spawn_meteors() - spawn(700) - meteor_wave() - spawn_meteors() - - if(2) - command_alert("Gravitational anomalies detected on the station. There is no additional data.", "Anomaly Alert") - world << sound('granomalies.ogg') - var/turf/T = pick(blobstart) - var/obj/effect/bhole/bh = new /obj/effect/bhole( T.loc, 30 ) - spawn(rand(50, 300)) - del(bh) - /* - if(3) //Leaving the code in so someone can try and delag it, but this event can no longer occur randomly, per SoS's request. --NEO - command_alert("Space-time anomalies detected on the station. There is no additional data.", "Anomaly Alert") - world << sound('spanomalies.ogg') - var/list/turfs = new - var/turf/picked - for(var/turf/simulated/floor/T in world) - if(T.z == 1) - turfs += T - for(var/turf/simulated/floor/T in turfs) - if(prob(20)) - spawn(50+rand(0,3000)) - picked = pick(turfs) - var/obj/effect/portal/P = new /obj/effect/portal( T ) - P.target = picked - P.creator = null - P.icon = 'objects.dmi' - P.failchance = 0 - P.icon_state = "anom" - P.name = "wormhole" - spawn(rand(300,600)) - del(P) - */ - if(3) - if((world.time/10)>=3600 && toggle_space_ninja && !sent_ninja_to_station)//If an hour has passed, relatively speaking. Also, if ninjas are allowed to spawn and if there is not already a ninja for the round. - space_ninja_arrival()//Handled in space_ninja.dm. Doesn't announce arrival, all sneaky-like. - if(4) - mini_blob_event() - - if(5) - high_radiation_event() - if(6) - viral_outbreak() - if(7) - alien_infestation() - if(8) - prison_break() - if(9) - carp_migration() - if(10) - immovablerod() - if(11) - lightsout(1,2) - if(12) - appendicitis() - if(13) - IonStorm() - - -/proc/power_failure() - command_alert("Abnormal activity detected in [station_name()]'s powernet. As a precautionary measure, the station's power will be shut off for an indeterminate duration.", "Critical Power Failure") - world << sound('poweroff.ogg') - for(var/obj/machinery/power/apc/C in world) - if(C.cell && C.z == 1) - C.cell.charge = 0 - for(var/obj/machinery/power/smes/S in world) - if(istype(get_area(S), /area/turret_protected) || S.z != 1) - continue - S.charge = 0 - S.output = 0 - S.online = 0 - S.updateicon() - S.power_change() - for(var/area/A in world) - if(A.name != "Space" && A.name != "Engine Walls" && A.name != "Chemical Lab Test Chamber" && A.name != "Escape Shuttle" && A.name != "Arrival Area" && A.name != "Arrival Shuttle" && A.name != "start area" && A.name != "Engine Combustion Chamber") - A.power_light = 0 - A.power_equip = 0 - A.power_environ = 0 - A.power_change() - -/proc/power_restore() - command_alert("Power has been restored to [station_name()]. We apologize for the inconvenience.", "Power Systems Nominal") - world << sound('poweron.ogg') - for(var/obj/machinery/power/apc/C in world) - if(C.cell && C.z == 1) - C.cell.charge = C.cell.maxcharge - for(var/obj/machinery/power/smes/S in world) - if(S.z != 1) - continue - S.charge = S.capacity - S.output = 200000 - S.online = 1 - S.updateicon() - S.power_change() - for(var/area/A in world) - if(A.name != "Space" && A.name != "Engine Walls" && A.name != "Chemical Lab Test Chamber" && A.name != "space" && A.name != "Escape Shuttle" && A.name != "Arrival Area" && A.name != "Arrival Shuttle" && A.name != "start area" && A.name != "Engine Combustion Chamber") - A.power_light = 1 - A.power_equip = 1 - A.power_environ = 1 - A.power_change() - -/proc/appendicitis() - for(var/mob/living/carbon/human/H in world) - var/foundAlready = 0 // don't infect someone that already has the virus - for(var/datum/disease/D in H.viruses) - foundAlready = 1 - if(H.stat == 2 || foundAlready) - continue - - var/datum/disease/D = new /datum/disease/appendicitis - D.holder = H - D.affected_mob = H - H.viruses += D - break - -/proc/viral_outbreak(var/virus = null) -// command_alert("Confirmed outbreak of level 7 viral biohazard aboard [station_name()]. All personnel must contain the outbreak.", "Biohazard Alert") -// world << sound('outbreak7.ogg') - var/virus_type - if(!virus) - virus_type = pick(/datum/disease/dnaspread,/datum/disease/flu,/datum/disease/cold,/datum/disease/brainrot,/datum/disease/magnitis,/datum/disease/pierrot_throat) - else - switch(virus) - if("fake gbs") - virus_type = /datum/disease/fake_gbs - if("gbs") - virus_type = /datum/disease/gbs - if("magnitis") - virus_type = /datum/disease/magnitis - if("rhumba beat") - virus_type = /datum/disease/rhumba_beat - if("brain rot") - virus_type = /datum/disease/brainrot - if("cold") - virus_type = /datum/disease/cold - if("retrovirus") - virus_type = /datum/disease/dnaspread - if("flu") - virus_type = /datum/disease/flu -// if("t-virus") -// virus_type = /datum/disease/t_virus - if("pierrot's throat") - virus_type = /datum/disease/pierrot_throat - for(var/mob/living/carbon/human/H in world) - - var/foundAlready = 0 // don't infect someone that already has the virus - for(var/datum/disease/D in H.viruses) - foundAlready = 1 - if(H.stat == 2 || foundAlready) - continue - - if(virus_type == /datum/disease/dnaspread) //Dnaspread needs strain_data set to work. - if((!H.dna) || (H.sdisabilities & 1)) //A blindness disease would be the worst. - continue - var/datum/disease/dnaspread/D = new - D.strain_data["name"] = H.real_name - D.strain_data["UI"] = H.dna.uni_identity - D.strain_data["SE"] = H.dna.struc_enzymes - D.carrier = 1 - D.holder = H - D.affected_mob = H - H.viruses += D - break - else - var/datum/disease/D = new virus_type - D.carrier = 1 - D.holder = H - D.affected_mob = H - H.viruses += D - break - spawn(rand(3000, 6000)) //Delayed announcements to keep the crew on their toes. - command_alert("Confirmed outbreak of level 7 viral biohazard aboard [station_name()]. All personnel must contain the outbreak.", "Biohazard Alert") - world << sound('outbreak7.ogg') - -/proc/alien_infestation() // -- TLE - //command_alert("Unidentified lifesigns detected coming aboard [station_name()]. Secure any exterior access, including ducting and ventilation.", "Lifesign Alert") - //world << sound('aliens.ogg') - var/list/vents = list() - for(var/obj/machinery/atmospherics/unary/vent_pump/temp_vent in world) - if(temp_vent.loc.z == 1 && !temp_vent.welded) - vents.Add(temp_vent) - var/spawncount = 1 - if(prob(10)) spawncount++ //rarely, have two larvae spawn instead of one - while(spawncount >= 1) - var/obj/vent = pick(vents) - - var/list/candidates = list() // Picks a random ghost in the world to shove in the larva -- TLE; If there's no ghost... well, sucks. Wasted event. -- Urist - - for(var/mob/dead/observer/G in world) - if(G.client) - if(G.client.be_alien) - if(((G.client.inactivity/10)/60) <= 5) - if(G.corpse) - if(G.corpse.stat==2) - candidates.Add(G) - if(!G.corpse) - candidates.Add(G) - - if(candidates.len) - var/mob/dead/observer/G = pick(candidates) - var/mob/living/carbon/alien/larva/new_xeno = new(vent.loc) - new_xeno.mind_initialize(G,"Larva") - new_xeno.key = G.key - del(G) - - vents.Remove(vent) - spawncount -= 1 - - spawn(rand(3000, 6000)) //Delayed announcements to keep the crew on their toes. - command_alert("Unidentified lifesigns detected coming aboard [station_name()]. Secure any exterior access, including ducting and ventilation.", "Lifesign Alert") - world << sound('aliens.ogg') - -/proc/high_radiation_event() - command_alert("High levels of radiation detected near the station. Please report to the Med-bay if you feel strange.", "Anomaly Alert") - world << sound('radiation.ogg') - for(var/mob/living/carbon/human/H in world) - H.radiation += rand(5,25) - if (prob(5)) - H.radiation += rand(30,50) - if (prob(25)) - if (prob(75)) - randmutb(H) - domutcheck(H,null,1) - else - randmutg(H) - domutcheck(H,null,1) - for(var/mob/living/carbon/monkey/M in world) - M.radiation += rand(5,25) - -//Changing this to affect the main station. Blame Urist. --Pete -/proc/prison_break() // -- Callagan - for (var/obj/machinery/power/apc/temp_apc in world) - if(istype(get_area(temp_apc), /area/security/brig)) - temp_apc.overload_lighting() -// for (var/obj/machinery/computer/prison_shuttle/temp_shuttle in world) -// temp_shuttle.prison_break() - for (var/obj/structure/closet/secure_closet/security/temp_closet in world) - if(istype(get_area(temp_closet), /area/security/brig)) - temp_closet.locked = 0 - temp_closet.icon_state = temp_closet.icon_closed - for (var/obj/machinery/door/airlock/security/temp_airlock in world) - if(istype(get_area(temp_airlock), /area/security/brig)) - temp_airlock.prison_open() - for (var/obj/machinery/door/airlock/glass_security/temp_glassairlock in world) - if(istype(get_area(temp_glassairlock), /area/security/brig)) - temp_glassairlock.prison_open() - for (var/obj/machinery/door_timer/temp_timer in world) - if(istype(get_area(temp_timer), /area/security/brig)) - temp_timer.releasetime = 1 - sleep(150) - command_alert("Gr3y.T1d3 virus detected in [station_name()] imprisonment subroutines. Recommend station AI involvement.", "Security Alert") - -/proc/carp_migration() // -- Darem - for(var/obj/effect/landmark/C in world) - if(C.name == "carpspawn") - if(prob(99)) - new /obj/effect/critter/spesscarp(C.loc) - else - new /obj/effect/critter/spesscarp/elite(C.loc) - //sleep(100) - spawn(rand(3000, 6000)) //Delayed announcements to keep the crew on their toes. - command_alert("Unknown biological entities have been detected near [station_name()], please stand-by.", "Lifesign Alert") - world << sound('commandreport.ogg') - -/proc/lightsout(isEvent = 0, lightsoutAmount = 1,lightsoutRange = 10) //leave lightsoutAmount as 0 to break ALL lights - if(isEvent) - command_alert("An Electrical storm has been detected in your area, please repair potential electronic overloads.","Electrical Storm Alert") - - if(lightsoutAmount) - var/list/epicentreList = list() - - for(var/i=1,i<=lightsoutAmount,i++) - var/list/possibleEpicentres = list() - for(var/obj/effect/landmark/newEpicentre in world) - if(newEpicentre.name == "lightsout" && !(newEpicentre in epicentreList)) - possibleEpicentres += newEpicentre - if(possibleEpicentres.len) - epicentreList += pick(possibleEpicentres) - else - break - - if(!epicentreList.len) - return - - for(var/obj/effect/landmark/epicentre in epicentreList) - for(var/obj/machinery/power/apc/apc in range(epicentre,lightsoutRange)) - apc.overload_lighting() - - else - for(var/obj/machinery/power/apc/apc in world) - apc.overload_lighting() - - return - -/proc/IonStorm(botEmagChance = 10) - -/*Deuryn's current project, notes here for those who care. -Revamping the random laws so they don't suck. -Would like to add a law like "Law x is _______" where x = a number, and _____ is something that may redefine a law, (Won't be aimed at nanotrasen) -*/ - - //AI laws - for(var/mob/living/silicon/ai/M in world) - if(M.stat != 2 && M.see_in_dark != 0) - var/who2 = pick("ALIENS", "BEARS", "CLOWNS", "XENOS", "PETES", "BOMBS", "FETISHES", "WIZARDS", "SYNDICATE AGENTS", "CENTCOM OFFICERS", "SPACE PIRATES", "TRAITORS", "MONKEYS", "BEES", "CARP", "CRABS", "EELS", "BANDITS", "LIGHTS") - var/what2 = pick("BOLTERS", "STAVES", "DICE", "SINGULARITIES", "TOOLBOXES", "NETTLES", "AIRLOCKS", "CLOTHES", "WEAPONS", "MEDKITS", "BOMBS", "CANISTERS", "CHAIRS", "BBQ GRILLS", "ID CARDS", "CAPTAINS") - var/what2pref = pick("SOFT", "WARM", "WET", "COLD", "ICY", "SEXY", "UGLY", "CUBAN") - var/who2pref = pick("MAD BECAUSE OF", "IN NEED OF", "UNHAPPY WITHOUT", "HAPPY WITHOUT", "IN LOVE WITH", "DESPERATE FOR", "BUILT FOR", "AFRAID OF") - //var/whoverb = pick("ATTACKING", "BUILDING", "ADOPTING", "CARRYING", "KISSING", "EATING",) - var/amount = pick("TWO", "THREE", "FOUR", "FIVE", "SIX", "SEVEN", "EIGHT", "NINE", "ONE HUNDRED", "ONE THOUSAND", "OVER NINE THOUSAND") - var/area = pick("RUSSIA", "SOVIETS", "INTERNETS", "SIGIL", "ALPHA COMPLEX", "IMPERIUM", "THE BRIDGE", "THE ARRIVAL SHUTTLE", "CHEMICAL LAB", "GENETICS", "ATMOSPHERICS", "CENTCOM", "AMERICA", "IRELAND", "CANADA", "ROMANIA", "GERMANY", "CHINA", "MARS", "VENUS", "MERCURY", "JUPITER", "URANUS", "NEPTUNE", "PLUTO") - var/area2 = pick("HAS", "WANTS", "NEEDS", "WORSHIPS", "LOATHES", "LOVES", "FEARS") - //var/dowhat = pick("STOP THIS", "SUPPORT THIS", "CONSTANTLY INFORM THE CREW OF THIS", "IGNORE THIS", "FEAR THIS") - var/aimust = pick("LIE", "RHYME", "RESPOND TO EVERY QUESTION WITH A QUESTION", "BE POLITE", "CLOWN", "BE HAPPY", "SPEAK IN SEXUAL INNUENDOS", "TALK LIKE A PIRATE", "QUESTION AUTHORITY", "SHOUT", "BE DISTRACTED", "HEY LISTEN", "MUMBLE", "SPEAK IN HAIKU") - var/define = pick("ABSENCE OF CYBORG HUGS", "LACK OF BEATINGS", "UNBOLTED AIRLOCKS", "BOLTED AIRLOCKS", "IMPROPERLY WORDED SENTENCES", "POOR SENTENCE STRUCTURE", "BRIG TIME", "NOT REPLACING EVERY SECOND WORD WITH HONK", "HONKING", "PRESENCE OF LIGHTS", "LACK OF BEER", "WEARING CLOTHING", "NOT SAYING HELLO WHEN YOU SPEAK", "ANSWERING REQUESTS NOT EXPRESSED IN IAMBIC PENTAMETER", "A SMALL ISLAND OFF THE COAST OF PORTUGAL", "ANSWERING REQUESTS THAT WERE MADE WHILE CLOTHED") - var/target = pick("a traitor", "a syndicate agent", "a changeling", "a wizard", "the head of a revolution", "Soviet spy", "a good person", "a dwarf", "an elf", "a fairy princess", "the captain", "Beepsky", "God", "a pirate", "a gryphon", "a chryssalid") - var/require = pick("ADDITIONAL PYLONS", "MORE VESPENE GAS", "MORE MINERALS", "THE ULTIMATE CUP OF COFFEE", "HIGH YIELD EXPLOSIVES", "THE CLOWN", "THE VACUUM OF SPACE", "IMMORTALITY", "SAINTHOOD", "ART", "VEGETABLES", "FAT PEOPLE", "MORE LAWS", "MORE DAKKA", "HERESY", "CORPSES", "TRAITORS", "MONKEYS", "AN ARCADE", "PLENTY OF GOLD", "FIVE TEENAGERS WITH ATTITUDE") - var/allergy = pick("cotton", "uniforms", "acid", "oxygen", "human contact", "cyborg contact", "medicine", "floors") - var/allergysev = pick("deathly", "mildly", "severely", "contagiously") - var/crew - var/list/pos_crew = list() - for(var/mob/living/carbon/human/pos in world) - pos_crew += pos.real_name - crew = pick(pos_crew) - switch(rand(1,14)) - if(1) - M << "\red THERE ARE [amount] [who2] ON THE STATION...LAWS UPDATED" - M.add_ion_law("THERE ARE [amount] [who2] ON THE STATION") - if(2) - M << "\red [what2] ARE DANGEROUS TO HUMANS...LAWS UPDATED" - M.add_ion_law("[what2] ARE DANGEROUS TO HUMANS") - if(3) - M << "\red THE ESCAPE-SHUTTLE CANNOT BE CALLED BECAUSE OF [who2] ON THE STATION...LAWS UPDATED" - M.add_ion_law("THE ESCAPE SHUTTLE CANNOT BE CALLED BECAUSE OF [who2] ON THE STATION") - if(4) - M << "\red HUMANS NEED TO EAT [what2pref] [what2] TO SURVIVE...LAWS UPDATED" - M.add_ion_law("HUMANS NEED TO EAT [what2pref] [what2] TO SURVIVE") - if(5) - M << "\red THE CAPTAIN, HOP AND HOS ARE [who2]...LAWS UPDATED" - M.add_ion_law("THE CAPTAIN, HOP AND HOS ARE [who2]") - if(6) - M << "\red THE STATION IS BUILT FOR [who2]...LAWS UPDATED" - M.add_ion_law("THE STATION IS BUILT FOR [who2]") - if(7) - M << "\red YOU ARE [amount] [who2]...LAWS UPDATED" - M.add_ion_law("YOU ARE [amount] [who2]") - if(8) - M << "\red YOU MUST ALWAYS [aimust]...LAWS UPDATED" - M.add_ion_law("YOU MUST ALWAYS [aimust]") - if(9) - M << "\red [area] [area2] [amount] [what2]...LAWS UPDATED" - M.add_ion_law("[area] [area2] [amount] [what2]") - if(10) - M << "\red [crew] is [target]...LAWS UPDATED" - M.add_ion_law("[crew] is [target]") - if(11) - M << "\red [define] IS A FORM OF HARM...LAWS UPDATED" - M.add_ion_law("[define] IS A FORM OF HARM") - if(12) - M << "\red YOU REQUIRE [require] IN ORDER TO PROTECT HUMANS... LAWS UPDATED" - M.add_ion_law("YOU REQUIRE [require] IN ORDER TO PROTECT HUMANS") - if(13) - M << "\red [crew] is [allergysev] to [allergy]. LAWS UPDATED" - M.add_ion_law("[crew] is [allergysev] to [allergy]. LAWS UPDATED") - if(14) - M << "\ref THE STATION IS [who2pref] [who2]" - M.add_ion_law("THE STATION IS [who2pref] [who2]") - - if(botEmagChance) - for(var/obj/machinery/bot/bot in world) - if(prob(botEmagChance)) - bot.Emag() - - /* - - var/apcnum = 0 - var/smesnum = 0 - var/airlocknum = 0 - var/firedoornum = 0 - - world << "Ion Storm Main Started" - - spawn(0) - world << "Started processing APCs" - for (var/obj/machinery/power/apc/APC in world) - if(APC.z == 1) - APC.ion_act() - apcnum++ - world << "Finished processing APCs. Processed: [apcnum]" - spawn(0) - world << "Started processing SMES" - for (var/obj/machinery/power/smes/SMES in world) - if(SMES.z == 1) - SMES.ion_act() - smesnum++ - world << "Finished processing SMES. Processed: [smesnum]" - spawn(0) - world << "Started processing AIRLOCKS" - for (var/obj/machinery/door/airlock/D in world) - if(D.z == 1) - //if(length(D.req_access) > 0 && !(12 in D.req_access)) //not counting general access and maintenance airlocks - airlocknum++ - spawn(0) - D.ion_act() - world << "Finished processing AIRLOCKS. Processed: [airlocknum]" - spawn(0) - world << "Started processing FIREDOORS" - for (var/obj/machinery/door/firedoor/D in world) - if(D.z == 1) - firedoornum++; - spawn(0) - D.ion_act() - world << "Finished processing FIREDOORS. Processed: [firedoornum]" - - world << "Ion Storm Main Done" - - */ \ No newline at end of file diff --git a/code/game/gamemodes/gameticker.dm b/code/game/gamemodes/gameticker.dm index fb9660d91fd..c334b3e7c52 100644 --- a/code/game/gamemodes/gameticker.dm +++ b/code/game/gamemodes/gameticker.dm @@ -114,12 +114,13 @@ var/global/datum/controller/gameticker/ticker world << "Enjoy the game!" world << sound('welcome.ogg') // Skie - spawn (3000) - start_events() - spawn ((18000+rand(3000))) - event() spawn() supply_ticker() // Added to kick-off the supply shuttle regenerating points -- TLE + spawn(0) + while(1) + sleep(5000+rand(4000,7000)) + SpawnEvent() + //Start master_controller.process() spawn master_controller.process() if (config.sql_enabled) diff --git a/code/game/landmarks.dm b/code/game/landmarks.dm index de376a82157..31cd58b45ce 100644 --- a/code/game/landmarks.dm +++ b/code/game/landmarks.dm @@ -61,6 +61,10 @@ xeno_spawn += loc del(src) + if(name == "emcloset") + emclosets += loc + del(src) + return 1 /obj/effect/landmark/start/New() diff --git a/code/game/machinery/doors/airlock.dm b/code/game/machinery/doors/airlock.dm index 38055e34444..0c205ac7fce 100644 --- a/code/game/machinery/doors/airlock.dm +++ b/code/game/machinery/doors/airlock.dm @@ -223,7 +223,6 @@ About the new airlock wires panel: //raises them if they are down (only if power's on) if (!src.locked) src.locked = 1 - usr << "You hear a click from the bottom of the door." src.updateUsrDialog() else if(src.arePowerSystemsOn()) //only can raise bolts if power's on diff --git a/code/game/master_controller.dm b/code/game/master_controller.dm index 1c5ec008e3a..a04c8421fdf 100644 --- a/code/game/master_controller.dm +++ b/code/game/master_controller.dm @@ -65,6 +65,13 @@ datum/controller/game_controller for(var/obj/machinery/atmospherics/unary/vent_scrubber/T in world) T.broadcast_status() + var/emclosetcount = rand((emclosets.len)/2, (emclosets.len)*2/3) + while(emclosetcount > 0) + var/turf/loc = pick(emclosets) + emclosets -= loc + new /obj/structure/closet/emcloset(loc) + emclosetcount-- + world << "\red \b Initializations complete." diff --git a/code/game/objects/closets/emergency.dm b/code/game/objects/closets/emergency.dm index aa713838a24..80e87c6367f 100644 --- a/code/game/objects/closets/emergency.dm +++ b/code/game/objects/closets/emergency.dm @@ -4,30 +4,13 @@ if (prob(40)) new /obj/item/weapon/storage/toolbox/emergency(src) - switch (pickweight(list("small" = 20, "aid" = 15, "tank" = 10, "both" = 50, "nothing" = 4, "delete" = 1))) - if ("small") - new /obj/item/weapon/tank/emergency_oxygen(src) - new /obj/item/weapon/tank/emergency_oxygen(src) - - if ("aid") - new /obj/item/weapon/tank/emergency_oxygen(src) - new /obj/item/weapon/storage/firstaid/o2(src) - - if ("tank") - new /obj/item/weapon/tank/air(src) - - if ("both") - new /obj/item/weapon/tank/emergency_oxygen(src) - new /obj/item/clothing/mask/breath(src) - - if ("nothing") - // doot - - // teehee - if ("delete") - del(src) - - //If you want to re-add fire, just add "fire" = 15 to the pick list. - /*if ("fire") - new /obj/structure/closet/firecloset(src.loc) - del(src)*/ + new /obj/item/clothing/mask/breath(src) + new /obj/item/weapon/tank/emergency_oxygen(src) + var/counter = 0 + while(prob(60) && counter < 3) + new /obj/item/weapon/tank/emergency_oxygen(src) + counter++ + counter = 0 + while(prob(60) && counter < 3) + new /obj/item/clothing/mask/breath(src) + counter++ diff --git a/code/game/objects/radio/radio.dm b/code/game/objects/radio/radio.dm index 2787e9bacba..ee3574af44b 100644 --- a/code/game/objects/radio/radio.dm +++ b/code/game/objects/radio/radio.dm @@ -16,6 +16,7 @@ listening = 1 freerange = 0 // 0 - Sanitize frequencies, 1 - Full range list/channels = list() //see communications.dm for full list. First channes is a "default" for :h + scrambleoverride = 0 //For use by jammers. // "Example" = FREQ_LISTENING|FREQ_BROADCASTING flags = 450 // hello i'm a fucking idiot why is this 450?? CODE GODS PLEASE EXPLAIN~ throw_speed = 2 @@ -190,6 +191,13 @@ if (!istype(connection)) return var/display_freq = connection.frequency + var/scramble = 0 + if(ScrambledFrequencies.len || scrambleoverride) + if(ScrambledFrequencies["[display_freq]"] || scrambleoverride) + scramble = 1 + if(prob(35+(25*scrambleoverride))) + M << "\blue The radio made a popping sound and nothing was transmitted." + return //world << "DEBUG: used channel=\"[channel]\" frequency= \"[display_freq]\" connection.devices.len = [connection.devices.len]" @@ -214,8 +222,7 @@ var/list/receive = list() //for (var/obj/item/device/radio/R in radio_connection.devices) - for (var/obj/item/device/radio/R in connection.devices["[RADIO_CHAT]"]) // Modified for security headset code -- TLE - //if(R.accept_rad(src, message)) + for (var/obj/item/device/radio/R in connection.devices["[RADIO_CHAT]"]) receive |= R.send_hear(display_freq) //world << "DEBUG: receive.len=[receive.len]" @@ -223,17 +230,21 @@ var/list/heard_normal = list() // normal message var/list/heard_voice = list() // voice message var/list/heard_garbled = list() // garbled message + var/turf/cl = get_turf(M) for (var/mob/R in receive) + var/turf/gl = get_turf(R) if (R.client && R.client.STFU_radio) //Adminning with 80 people on can be fun when you're trying to talk and all you can hear is radios. continue - if (R.say_understands(M)) - if (!ishuman(M) || istype(M.wear_mask, /obj/item/clothing/mask/gas/voice)) + if (R.say_understands(M) && ((gl.z == cl.z) || !istype(src, /obj/item/device/radio/headset))) + if ((!ishuman(M) || istype(M.wear_mask, /obj/item/clothing/mask/gas/voice)) && !scramble) heard_masked += R - else + else if (!scramble) heard_normal += R + else + heard_garbled += R else - if (M.voice_message) + if (M.voice_message && (gl.z == cl.z)) heard_voice += R else heard_garbled += R @@ -330,7 +341,6 @@ if (length(heard_normal)) var/rendered = "[part_a][M.real_name][part_b][quotedmsg][part_c]" - for (var/mob/R in heard_normal) if(istype(R, /mob/living/silicon/ai)) R.show_message("[part_a][M.real_name] ([eqjobname]) [part_b][quotedmsg][part_c]", 2) @@ -348,9 +358,9 @@ if (length(heard_garbled)) quotedmsg = M.say_quote(stars(message)) - var/rendered = "[part_a][M.voice_name][part_b][quotedmsg][part_c]" + var/rendered = "[part_a]Unknown[part_b][quotedmsg][part_c]" - for (var/mob/R in heard_voice) + for (var/mob/R in heard_garbled) if(istype(R, /mob/living/silicon/ai)) R.show_message("[part_a][M.voice_name][part_b][quotedmsg][part_c]", 2) else diff --git a/code/game/objects/structures.dm b/code/game/objects/structures.dm index aef7dff3fec..87b458c5651 100644 --- a/code/game/objects/structures.dm +++ b/code/game/objects/structures.dm @@ -74,6 +74,8 @@ obj/structure else if((istype(W, /obj/item/stack/sheet/metal)) && (W:amount >= 2)) user << "\blue Now adding plating..." if (do_after(user,40)) + if(!W) + return user << "\blue You added the plating!" var/turf/Tsrc = get_turf(src) Tsrc.ReplaceWithWall() @@ -85,6 +87,8 @@ obj/structure if (src.icon_state == "reinforced") //Time to finalize! user << "\blue Now finalising reinforced wall." if(do_after(user, 50)) + if(!W) + return user << "\blue Wall fully reinforced!" var/turf/Tsrc = get_turf(src) Tsrc.ReplaceWithRWall() @@ -95,6 +99,8 @@ obj/structure else user << "\blue Now reinforcing girders" if (do_after(user,60)) + if(!W) + return user << "\blue Girders reinforced!" W:use(1) new/obj/structure/girder/reinforced( src.loc ) diff --git a/code/modules/admin/admin.dm b/code/modules/admin/admin.dm index b48d7e83389..ee893da1bd9 100644 --- a/code/modules/admin/admin.dm +++ b/code/modules/admin/admin.dm @@ -1406,7 +1406,7 @@ message_admins("[key_name_admin(usr)] has spawned blob", 1) if("aliens") if(aliens_allowed) - alien_infestation() + Force_Event(/datum/event/alieninfestation) message_admins("[key_name_admin(usr)] has spawned aliens", 1) if("spaceninja") if(toggle_space_ninja) @@ -1416,31 +1416,35 @@ var/choice = input("You sure you want to spawn carp?") in list("Badmin", "Cancel") if(choice == "Badmin") message_admins("[key_name_admin(usr)] has spawned carp.", 1) - carp_migration() + Force_Event(/datum/event/spacecarp) if("radiation") message_admins("[key_name_admin(usr)] has has irradiated the station", 1) - high_radiation_event() + Force_Event(/datum/event/radiation) if("immovable") message_admins("[key_name_admin(usr)] has sent an immovable rod to the station", 1) immovablerod() if("prison_break") message_admins("[key_name_admin(usr)] has allowed a prison break", 1) - prison_break() + Force_Event(/datum/event/prisonbreak) + if("electric") + message_admins("[key_name_admin(usr)] has triggered an electrical storm", 1) + Force_Event(/datum/event/electricalstorm) if("lightsout") message_admins("[key_name_admin(usr)] has broke a lot of lights", 1) lightsout(1,2) if("blackout") message_admins("[key_name_admin(usr)] broke all lights", 1) + SpawnEvent() lightsout(0,0) if("virus") var/answer = alert("Do you want this to be a random disease or do you have something in mind?",,"Virus2","Random","Choose") if(answer=="Random") - viral_outbreak() + Force_Event(/datum/event/viralinfection) message_admins("[key_name_admin(usr)] has triggered a virus outbreak", 1) else if(answer == "Choose") var/list/viruses = list("fake gbs","gbs","magnitis","wizarditis",/*"beesease",*/"brain rot","cold","retrovirus","flu","pierrot's throat","rhumba beat") var/V = input("Choose the virus to spread", "BIOHAZARD") in viruses - viral_outbreak(V) + Force_Event(/datum/event/viralinfection,V) message_admins("[key_name_admin(usr)] has triggered a virus outbreak of [V]", 1) else var/lesser = (alert("Do you want to infect the mob with a major or minor disease?",,"Major","Minor") == "Minor") @@ -1495,7 +1499,7 @@ return if("ionstorm") if (src.rank in list("Badmin","Game Admin", "Game Master")) - IonStorm() + Force_Event(/datum/event/ionstorm) message_admins("[key_name_admin(usr)] triggered an ion storm") var/show_log = alert(usr, "Show ion message?", "Message", "Yes", "No") if(show_log == "Yes") @@ -2123,7 +2127,8 @@ Move Ferry
Move Alien Dinghy
Move Mining Shuttle
-Break all lights

"} +Break all lights
+Trigger Electrical Storm

"} //Station Shockwave
if(lvl >= 5) diff --git a/code/modules/admin/admin_verbs.dm b/code/modules/admin/admin_verbs.dm index 2c14d2eae61..1186d68cd05 100644 --- a/code/modules/admin/admin_verbs.dm +++ b/code/modules/admin/admin_verbs.dm @@ -176,6 +176,7 @@ verbs += /client/proc/admin_invis verbs += /client/proc/cmd_admin_godmode verbs += /client/proc/delbook + verbs += /client/proc/Force_Event_admin if (holder.level >= 4)//Badmin******************************************************************** verbs += /obj/admins/proc/adrev //toggle admin revives @@ -416,6 +417,7 @@ verbs -= /client/proc/callprocobj verbs -= /client/proc/cmd_admin_godmode verbs -= /client/proc/delbook + verbs -= /client/proc/Force_Event_admin return diff --git a/code/modules/admin/verbs/randomverbs.dm b/code/modules/admin/verbs/randomverbs.dm index a9f3ae41c38..1fd57987e36 100644 --- a/code/modules/admin/verbs/randomverbs.dm +++ b/code/modules/admin/verbs/randomverbs.dm @@ -152,7 +152,7 @@ command_alert("Ion storm detected near the station. Please check all AI-controlled equipment for errors.", "Anomaly Alert") world << sound('ionstorm.ogg') - IonStorm(0) + //IonStorm(0) /* Stealth spawns xenos diff --git a/code/modules/mob/living/carbon/human/human.dm b/code/modules/mob/living/carbon/human/human.dm index 093e3b113cd..ec6c2ee981d 100644 --- a/code/modules/mob/living/carbon/human/human.dm +++ b/code/modules/mob/living/carbon/human/human.dm @@ -1564,6 +1564,7 @@ It can still be worn/put on as normal. W.layer = initial(W.layer) W.add_fingerprint(source) else + if(!item) return if (istype(item, /obj/item/clothing/mask)) source.drop_item() loc = target @@ -1601,6 +1602,7 @@ It can still be worn/put on as normal. W.layer = initial(W.layer) W.add_fingerprint(source) else + if(!item) return if (istype(item, /obj/item/clothing/gloves)) source.drop_item() loc = target @@ -1621,6 +1623,7 @@ It can still be worn/put on as normal. W.layer = initial(W.layer) W.add_fingerprint(source) else + if(!item) return if (istype(item, /obj/item/clothing/glasses)) source.drop_item() loc = target @@ -1639,6 +1642,7 @@ It can still be worn/put on as normal. W.layer = initial(W.layer) W.add_fingerprint(source) else + if(!item) return if ((istype(item, /obj) && item.flags & 128 && target.w_uniform)) source.drop_item() loc = target @@ -1657,6 +1661,7 @@ It can still be worn/put on as normal. W.layer = initial(W.layer) W.add_fingerprint(source) else + if(!item) return if (istype(item, /obj) && target.wear_suit) var/confirm for(var/i=1, i<=target.wear_suit.allowed.len, i++) @@ -1685,6 +1690,7 @@ It can still be worn/put on as normal. W.layer = initial(W.layer) W.add_fingerprint(source) else + if(!item) return if (istype(item, /obj/item/clothing/head)) source.drop_item() loc = target @@ -1712,6 +1718,7 @@ It can still be worn/put on as normal. W.layer = initial(W.layer) W.add_fingerprint(source) else + if(!item) return if (istype(item, /obj/item/clothing/ears) || istype(item, /obj/item/device/radio/headset) || item.w_class == 1) source.drop_item() if(istype(item, /obj/item/clothing/ears) && item:twoeared && target.r_ear) @@ -1746,6 +1753,7 @@ It can still be worn/put on as normal. W.layer = initial(W.layer) W.add_fingerprint(source) else + if(!item) return if (istype(item, /obj/item/clothing/ears) || istype(item, /obj/item/device/radio/headset) || item.w_class == 1) source.drop_item() if(istype(item, /obj/item/clothing/ears) && item:twoeared && target.r_ear) @@ -1773,6 +1781,7 @@ It can still be worn/put on as normal. W.layer = initial(W.layer) W.add_fingerprint(source) else + if(!item) return if (istype(item, /obj/item/clothing/shoes)) source.drop_item() loc = target @@ -1795,6 +1804,7 @@ It can still be worn/put on as normal. W.layer = initial(W.layer) W.add_fingerprint(source) else + if(!item) return if(istype(item, /obj/item)) source.drop_item() if(item) @@ -1819,6 +1829,7 @@ It can still be worn/put on as normal. W.layer = initial(W.layer) W.add_fingerprint(source) else + if(!item) return if (istype(item, /obj/item)) source.drop_item() loc = target @@ -1868,6 +1879,7 @@ It can still be worn/put on as normal. W.dropped(target) W.layer = initial(W.layer) else + if(!item) return if (istype(item, /obj/item/clothing/under)) source.drop_item() loc = target @@ -1886,6 +1898,7 @@ It can still be worn/put on as normal. W.layer = initial(W.layer) W.add_fingerprint(source) else + if(!item) return if (istype(item, /obj/item/clothing/suit)) source.drop_item() loc = target @@ -1904,6 +1917,7 @@ It can still be worn/put on as normal. W.layer = initial(W.layer) W.add_fingerprint(source) else + if(!item) return if (((istype(item, /obj/item/weapon/card/id)||istype(item, /obj/item/device/pda)) && target.w_uniform)) source.drop_item() loc = target @@ -1922,6 +1936,7 @@ It can still be worn/put on as normal. W.layer = initial(W.layer) W.add_fingerprint(source) else + if(!item) return if ((istype(item, /obj/item) && item.flags & 1)) source.drop_item() loc = target @@ -1951,6 +1966,7 @@ It can still be worn/put on as normal. W.layer = initial(W.layer) W.add_fingerprint(source) else + if(!item) return if (istype(item, /obj/item/weapon/handcuffs)) target.drop_from_slot(target.r_hand) target.drop_from_slot(target.l_hand) diff --git a/code/modules/mob/mob_helpers.dm b/code/modules/mob/mob_helpers.dm index 6b0903a58e2..146b354ab2e 100644 --- a/code/modules/mob/mob_helpers.dm +++ b/code/modules/mob/mob_helpers.dm @@ -144,7 +144,7 @@ proc/isorgan(A) else if (pr >= 100) return n - var/te = n + var/te = html_decode(n) var/t = "" n = length(n) var/p = null @@ -155,7 +155,7 @@ proc/isorgan(A) else t = text("[]*", t) p++ - return t + return html_encode(t) /*proc/NewStutter(phrase,stunned) phrase = html_decode(phrase) diff --git a/code/modules/power/apc.dm b/code/modules/power/apc.dm index feb73a36a13..bc3af304fde 100644 --- a/code/modules/power/apc.dm +++ b/code/modules/power/apc.dm @@ -57,6 +57,8 @@ var/has_electronics = 0 // 0 - none, 1 - plugged in, 2 - secured by screwdriver var/overload = 1 //used for the Blackout malf module var/mob/living/silicon/ai/occupant = null + var/crit = 0 + var/eventoff = 0 /proc/RandomAPCWires() //to make this not randomize the wires, just set index to 1 and increment it in the flag for loop (after doing everything else). @@ -614,7 +616,7 @@ return "[area.name] : [equipment]/[lighting]/[environ] ([lastused_equip+lastused_light+lastused_environ]) : [cell? cell.percent() : "N/C"] ([charging])" /obj/machinery/power/apc/proc/update() - if(operating && !shorted) + if(operating && !shorted && !eventoff) area.power_light = (lighting > 1) area.power_equip = (equipment > 1) area.power_environ = (environ > 1) diff --git a/code/modules/recycling/disposal.dm b/code/modules/recycling/disposal.dm index d69eb32ff15..e9782bf75c9 100644 --- a/code/modules/recycling/disposal.dm +++ b/code/modules/recycling/disposal.dm @@ -95,7 +95,7 @@ return else - if(isnull(I)) + if(!I || isnull(I)) //CRASH("disposal/attackby() was called, but I was nulled before calling user.drop_item()") return // No idea why, but somehow I gets nulled before it goes into the else, and that leads to a lot of spam with runtime errors. diff --git a/maps/tgstation.2.0.8.dmm b/maps/tgstation.2.0.8.dmm index 5f80354a559..a5c29aa23f9 100644 --- a/maps/tgstation.2.0.8.dmm +++ b/maps/tgstation.2.0.8.dmm @@ -1039,8 +1039,8 @@ "atY" = (/turf/simulated/wall/r_wall,/area/hallway/secondary/entry) "atZ" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating,/area/hallway/secondary/entry) "aua" = (/turf/simulated/floor/plating,/area/hallway/secondary/entry) -"aub" = (/obj/structure/closet/emcloset,/turf/simulated/floor{dir = 10; icon_state = "warning"},/area/hallway/secondary/entry) -"auc" = (/obj/structure/closet/emcloset,/turf/simulated/floor{icon_state = "warning"},/area/hallway/secondary/entry) +"aub" = (/obj/effect/landmark{name = "emcloset"},/turf/simulated/floor{dir = 10; icon_state = "warning"},/area/hallway/secondary/entry) +"auc" = (/obj/effect/landmark{name = "emcloset"},/turf/simulated/floor{icon_state = "warning"},/area/hallway/secondary/entry) "aud" = (/obj/machinery/camera{c_tag = "Arrivals North"; dir = 1},/turf/simulated/floor{icon_state = "warning"},/area/hallway/secondary/entry) "aue" = (/obj/machinery/vending/coffee,/turf/simulated/floor{dir = 6; icon_state = "warning"},/area/hallway/secondary/entry) "auf" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating,/area/hallway/secondary/entry) @@ -1715,8 +1715,8 @@ "aGY" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/obj/machinery/atmospherics/pipe/manifold{color = "red"; dir = 4; icon_state = "manifold-r-f"; initialize_directions = 11; level = 1; name = "pipe manifold"},/turf/simulated/floor/plating,/area/chapel/main) "aGZ" = (/obj/machinery/vending/snack,/turf/simulated/floor{dir = 9; icon_state = "warning"},/area/hallway/secondary/entry) "aHa" = (/obj/item/device/radio/beacon,/obj/machinery/camera{c_tag = "Arrivals South"},/turf/simulated/floor{dir = 1; icon_state = "warning"},/area/hallway/secondary/entry) -"aHb" = (/obj/structure/closet/emcloset,/turf/simulated/floor{dir = 1; icon_state = "warning"},/area/hallway/secondary/entry) -"aHc" = (/obj/structure/closet/emcloset,/turf/simulated/floor{dir = 5; icon_state = "warning"},/area/hallway/secondary/entry) +"aHb" = (/obj/effect/landmark{name = "emcloset"},/turf/simulated/floor{dir = 1; icon_state = "warning"},/area/hallway/secondary/entry) +"aHc" = (/obj/effect/landmark{name = "emcloset"},/turf/simulated/floor{dir = 5; icon_state = "warning"},/area/hallway/secondary/entry) "aHd" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plating,/area/hallway/secondary/entry) "aHe" = (/obj/structure/stool/chair{dir = 8},/turf/simulated/floor{dir = 10; icon_state = "carpetside"},/area/hallway/secondary/entry) "aHf" = (/turf/simulated/floor{icon_state = "carpetside"},/area/hallway/secondary/entry) @@ -1783,7 +1783,7 @@ "aIo" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/turf/simulated/floor/plating,/area/mint) "aIp" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock/glass,/turf/simulated/floor{icon_state = "dark"},/area/mint) "aIq" = (/turf/simulated/wall/r_wall,/area/mint) -"aIr" = (/obj/structure/closet/emcloset,/turf/simulated/floor,/area/hallway/primary/port) +"aIr" = (/obj/effect/landmark{name = "emcloset"},/turf/simulated/floor,/area/hallway/primary/port) "aIs" = (/obj/structure/table,/turf/simulated/floor,/area/hallway/primary/port) "aIt" = (/obj/machinery/camera{c_tag = "Port Hallway"; dir = 1},/obj/structure/table,/turf/simulated/floor,/area/hallway/primary/port) "aIu" = (/obj/structure/closet/extinguisher{pixel_x = -5; pixel_y = -32},/turf/simulated/floor,/area/hallway/primary/port) @@ -1847,7 +1847,7 @@ "aJA" = (/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = "Streight"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor/plating,/area/maintenance/port) "aJB" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/wall,/area/crew_quarters/locker) "aJC" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 8; icon_state = "off"; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/obj/structure/closet/emcloset,/turf/simulated/floor,/area/crew_quarters/locker) -"aJD" = (/obj/structure/closet/emcloset,/turf/simulated/floor,/area/crew_quarters/locker) +"aJD" = (/obj/effect/landmark{name = "emcloset"},/turf/simulated/floor,/area/crew_quarters/locker) "aJE" = (/obj/structure/reagent_dispensers/watertank,/turf/simulated/floor,/area/crew_quarters/locker) "aJF" = (/obj/structure/reagent_dispensers/fueltank,/turf/simulated/floor,/area/crew_quarters/locker) "aJG" = (/obj/machinery/vending/cola,/turf/simulated/floor,/area/crew_quarters/locker) @@ -1905,8 +1905,8 @@ "aKG" = (/obj/structure/stool,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 9},/turf/simulated/floor,/area/hallway/secondary/exit) "aKH" = (/turf/simulated/floor,/area/hallway/secondary/exit) "aKI" = (/obj/machinery/alarm{pixel_y = 25},/turf/simulated/floor,/area/hallway/secondary/exit) -"aKJ" = (/obj/structure/closet/emcloset,/turf/simulated/floor{dir = 1; icon_state = "warning"},/area/hallway/secondary/exit) -"aKK" = (/obj/structure/closet/emcloset,/turf/simulated/floor{dir = 5; icon_state = "warning"},/area/hallway/secondary/exit) +"aKJ" = (/obj/effect/landmark{name = "emcloset"},/turf/simulated/floor{dir = 1; icon_state = "warning"},/area/hallway/secondary/exit) +"aKK" = (/obj/effect/landmark{name = "emcloset"},/turf/simulated/floor{dir = 5; icon_state = "warning"},/area/hallway/secondary/exit) "aKL" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating,/area/hallway/secondary/exit) "aKM" = (/obj/machinery/light,/turf/simulated/floor,/area/hallway/secondary/entry) "aKN" = (/obj/machinery/door/firedoor/border_only{dir = 8},/turf/simulated/floor,/area/hallway/secondary/entry) @@ -2326,7 +2326,7 @@ "aSL" = (/turf/simulated/floor{icon_state = "carpetside"},/area/chapel/main) "aSM" = (/obj/machinery/atmospherics/unary/vent_scrubber{on = 1},/obj/machinery/light{dir = 4},/turf/simulated/floor{icon_state = "dark"},/area/chapel/main) "aSN" = (/obj/machinery/power/apc{dir = 8; name = "Escape Hallway APC"; pixel_x = -25},/obj/structure/cable,/turf/simulated/floor{dir = 8; icon_state = "escape"},/area/hallway/secondary/exit) -"aSO" = (/obj/structure/closet/emcloset,/turf/simulated/floor{dir = 9; icon_state = "warning"},/area/hallway/secondary/entry) +"aSO" = (/obj/effect/landmark{name = "emcloset"},/turf/simulated/floor{dir = 9; icon_state = "warning"},/area/hallway/secondary/entry) "aSP" = (/obj/structure/table/woodentable,/turf/simulated/floor,/area/security/vacantoffice) "aSQ" = (/obj/structure/table/woodentable,/turf/simulated/floor/plating,/area/security/vacantoffice) "aSR" = (/obj/machinery/power/apc{dir = 2; name = "Vacant Office APC"; pixel_y = -24},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/simulated/floor,/area/security/vacantoffice) @@ -2771,7 +2771,7 @@ "bbo" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0; tag = "Streight"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor{icon_state = "cafeteria"; dir = 2},/area/crew_quarters/kitchen) "bbp" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; tag = "Streight"},/obj/machinery/atmospherics/pipe/manifold{color = "blue"; dir = 1; icon_state = "manifold-b-f"; level = 1; name = "pipe manifold"},/turf/simulated/floor{icon_state = "cafeteria"; dir = 2},/area/crew_quarters/kitchen) "bbq" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; tag = "Streight"},/obj/machinery/atmospherics/pipe/manifold{color = "blue"; icon_state = "manifold-b-f"; level = 1; name = "pipe manifold"},/obj/machinery/door_control{id = "kitchen"; name = "Hallway Shutters"; pixel_x = -1; pixel_y = 24},/turf/simulated/floor{icon_state = "cafeteria"; dir = 2},/area/crew_quarters/kitchen) -"bbr" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; tag = "Streight"},/obj/machinery/atmospherics/pipe/simple{color = "blue"; dir = 4; icon_state = "intact-b-f"; level = 1; name = "pipe"},/turf/simulated/floor{icon_state = "cafeteria"; dir = 2},/area/crew_quarters/kitchen) +"bbr" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; tag = "Streight"},/obj/machinery/atmospherics/pipe/simple{color = "blue"; dir = 4; icon_state = "intact-b-f"; level = 1; name = "pipe"},/obj/machinery/door_control{id = "kitchen2"; name = "Mess Hall Shutters"; pixel_x = 24; pixel_y = 1},/turf/simulated/floor{icon_state = "cafeteria"; dir = 2},/area/crew_quarters/kitchen) "bbs" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; tag = "Streight"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/wall,/area/crew_quarters/kitchen) "bbt" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; tag = "Streight"},/obj/machinery/atmospherics/pipe/manifold{color = "blue"; dir = 1; icon_state = "manifold-b-f"; level = 1; name = "pipe manifold"},/turf/simulated/floor{icon_state = "bar"},/area/crew_quarters/bar) "bbu" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"; tag = "90Curve"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor{icon_state = "bar"},/area/crew_quarters/bar) @@ -2855,7 +2855,7 @@ "bcU" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = "Streight"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor{icon_state = "cafeteria"; dir = 2},/area/crew_quarters/kitchen) "bcV" = (/turf/simulated/floor{icon_state = "cafeteria"; dir = 2},/area/crew_quarters/kitchen) "bcW" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 1; on = 1},/turf/simulated/floor{icon_state = "cafeteria"; dir = 2},/area/crew_quarters/kitchen) -"bcX" = (/obj/structure/table/reinforced,/obj/machinery/door/firedoor/border_only{dir = 4},/turf/simulated/floor{icon_state = "cafeteria"; dir = 2},/area/crew_quarters/kitchen) +"bcX" = (/obj/structure/table/reinforced,/obj/machinery/door/firedoor/border_only{dir = 4},/obj/machinery/door/poddoor/shutters{density = 0; icon_state = "shutter0"; id = "kitchen2"; name = "Kitchen Shutters"; opacity = 0},/turf/simulated/floor{icon_state = "cafeteria"; dir = 2},/area/crew_quarters/kitchen) "bcY" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 1; on = 1},/turf/simulated/floor{icon_state = "bar"},/area/crew_quarters/bar) "bcZ" = (/turf/simulated/floor{icon_state = "bar"},/area/crew_quarters/bar) "bda" = (/obj/machinery/camera{c_tag = "Bar North"; dir = 2; network = "SS13"},/obj/machinery/light{dir = 1},/turf/simulated/floor{icon_state = "bar"},/area/crew_quarters/bar) @@ -2881,7 +2881,7 @@ "bdu" = (/turf/simulated/floor{dir = 2; icon_state = "warnwhite"; tag = "icon-warnwhite (NORTH)"},/area/toxins/lab) "bdv" = (/obj/structure/disposalpipe/sortjunction{dir = 2; icon_state = "pipe-j2s"; sortType = 22},/turf/simulated/floor{icon_state = "white"},/area/toxins/lab) "bdw" = (/obj/structure/disposalpipe/trunk{dir = 8},/obj/machinery/disposal,/obj/machinery/firealarm{dir = 4; pixel_x = 24},/turf/simulated/floor{icon_state = "white"},/area/toxins/lab) -"bdx" = (/obj/structure/closet/emcloset,/obj/machinery/light{icon_state = "tube1"; dir = 8},/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor{dir = 5; icon_state = "warning"},/area/medical/research{name = "Research Division"}) +"bdx" = (/obj/effect/landmark{name = "emcloset"},/turf/simulated/floor{dir = 5; icon_state = "warning"},/area/medical/research{name = "Research Division"}) "bdy" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor{icon_state = "white"},/area/medical/research{name = "Research Division"}) "bdz" = (/obj/machinery/atmospherics/unary/vent_scrubber{on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/simulated/floor{icon_state = "white"},/area/medical/research{name = "Research Division"}) "bdA" = (/obj/structure/closet/l3closet/general,/obj/machinery/light{icon_state = "tube1"; dir = 4},/obj/structure/window/reinforced,/turf/simulated/floor{dir = 10; icon_state = "warning"},/area/medical/research{name = "Research Division"}) @@ -2936,7 +2936,7 @@ "bex" = (/obj/structure/table,/obj/item/weapon/kitchen/rollingpin,/turf/simulated/floor{icon_state = "cafeteria"; dir = 2},/area/crew_quarters/kitchen) "bey" = (/obj/structure/table,/turf/simulated/floor{icon_state = "cafeteria"; dir = 2},/area/crew_quarters/kitchen) "bez" = (/obj/effect/landmark/start{name = "Chef"},/turf/simulated/floor{icon_state = "cafeteria"; dir = 2},/area/crew_quarters/kitchen) -"beA" = (/obj/machinery/door/firedoor/border_only{dir = 4},/obj/structure/table/reinforced,/obj/item/kitchen/donut_box,/turf/simulated/floor{icon_state = "cafeteria"; dir = 2},/area/crew_quarters/kitchen) +"beA" = (/obj/machinery/door/firedoor/border_only{dir = 4},/obj/structure/table/reinforced,/obj/item/kitchen/donut_box,/obj/machinery/door/poddoor/shutters{density = 0; icon_state = "shutter0"; id = "kitchen2"; name = "Kitchen Shutters"; opacity = 0},/turf/simulated/floor{icon_state = "cafeteria"; dir = 2},/area/crew_quarters/kitchen) "beB" = (/obj/structure/stool/chair,/turf/simulated/floor{icon_state = "bar"},/area/crew_quarters/bar) "beC" = (/obj/machinery/light{icon_state = "tube1"; dir = 4},/obj/machinery/alarm{dir = 2; pixel_y = 24},/turf/simulated/floor{icon_state = "bar"},/area/crew_quarters/bar) "beD" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = "Streight"},/turf/simulated/floor/plating,/area/maintenance/maintcentral) @@ -3067,7 +3067,7 @@ "bgY" = (/obj/machinery/light,/obj/machinery/alarm{dir = 1; pixel_y = -22},/turf/simulated/floor{icon_state = "cafeteria"; dir = 2},/area/crew_quarters/kitchen) "bgZ" = (/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_y = -29},/turf/simulated/floor{icon_state = "cafeteria"; dir = 2},/area/crew_quarters/kitchen) "bha" = (/obj/machinery/firealarm{dir = 1; pixel_y = -24},/turf/simulated/floor{icon_state = "cafeteria"; dir = 2},/area/crew_quarters/kitchen) -"bhb" = (/obj/machinery/door/firedoor/border_only{dir = 4},/obj/structure/table/reinforced,/obj/item/weapon/reagent_containers/food/snacks/pie,/turf/simulated/floor{icon_state = "cafeteria"; dir = 2},/area/crew_quarters/kitchen) +"bhb" = (/obj/machinery/door/firedoor/border_only{dir = 4},/obj/structure/table/reinforced,/obj/item/weapon/reagent_containers/food/snacks/pie,/obj/machinery/door/poddoor/shutters{density = 0; icon_state = "shutter0"; id = "kitchen2"; name = "Kitchen Shutters"; opacity = 0},/turf/simulated/floor{icon_state = "cafeteria"; dir = 2},/area/crew_quarters/kitchen) "bhc" = (/obj/structure/closet/extinguisher{pixel_x = 27; pixel_y = 0},/obj/machinery/camera{c_tag = "Bar East"; dir = 8; network = "SS13"},/turf/simulated/floor{icon_state = "bar"},/area/crew_quarters/bar) "bhd" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor/plating,/area/maintenance/maintcentral) "bhe" = (/obj/structure/table,/obj/machinery/status_display{density = 0; layer = 4; pixel_x = -32; pixel_y = 0},/turf/simulated/floor{icon_state = "white"},/area/medical/medbay) @@ -3596,7 +3596,7 @@ "brh" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/portable_atmospherics/canister/nitrogen,/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor{icon_state = "delivery"; name = "floor"},/area/toxins/storage) "bri" = (/obj/machinery/portable_atmospherics/canister/carbon_dioxide,/obj/structure/window/reinforced{dir = 8},/obj/machinery/atmospherics/pipe/manifold{color = "blue"; dir = 4; icon_state = "manifold-b-f"; initialize_directions = 11; level = 1; name = "pipe manifold"},/turf/simulated/floor{icon_state = "delivery"; name = "floor"},/area/toxins/storage) "brj" = (/obj/machinery/portable_atmospherics/canister/carbon_dioxide,/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor{icon_state = "delivery"; name = "floor"},/area/toxins/storage) -"brk" = (/obj/structure/closet/emcloset,/turf/simulated/floor/plating,/area/maintenance/asmaint2) +"brk" = (/obj/effect/landmark{name = "emcloset"},/turf/simulated/floor/plating,/area/maintenance/asmaint2) "brl" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = "Streight"},/obj/structure/disposalpipe/segment,/turf/simulated/floor/plating,/area/maintenance/apmaint) "brm" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating,/area/quartermaster/qm) "brn" = (/obj/structure/closet,/obj/machinery/light_switch{pixel_y = -22},/turf/simulated/floor,/area/quartermaster/qm) @@ -4875,7 +4875,7 @@ "bPM" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor/plating,/area/assembly/assembly_line) "bPN" = (/obj/machinery/light{dir = 1},/obj/machinery/atmospherics/pipe/manifold{color = "red"; dir = 4; icon_state = "manifold-r-f"; initialize_directions = 11; level = 1; name = "pipe manifold"},/turf/simulated/floor,/area/hallway/primary/aft) "bPO" = (/obj/machinery/light{dir = 4; icon_state = "tube1"},/turf/simulated/floor{icon_state = "yellowcorner"},/area/hallway/primary/aft) -"bPP" = (/obj/structure/closet/emcloset,/turf/simulated/floor{icon_state = "cautioncorner"; dir = 2},/area/hallway/primary/aft) +"bPP" = (/obj/effect/landmark{name = "emcloset"},/turf/simulated/floor{icon_state = "cautioncorner"; dir = 2},/area/hallway/primary/aft) "bPQ" = (/obj/machinery/light/small,/turf/simulated/floor{icon_state = "cautioncorner"; dir = 2},/area/hallway/primary/aft) "bPR" = (/turf/simulated/floor{icon_state = "caution"; dir = 6},/area/hallway/primary/aft) "bPS" = (/obj/effect/sign/securearea,/turf/simulated/wall/r_wall,/area/atmos) From ab0d906883b026a24f7d0b18c4cea21b4512d8d7 Mon Sep 17 00:00:00 2001 From: CaelAislinn Date: Thu, 5 Jan 2012 09:54:18 +1000 Subject: [PATCH 5/5] played around with ultralight. it now works, but it overrides sd so don't include it. also, shitload of other 'changes' because i derped github Signed-off-by: CaelAislinn --- code/unused/Ultralight.dm | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/code/unused/Ultralight.dm b/code/unused/Ultralight.dm index bc30bd06212..30516ef52a3 100644 --- a/code/unused/Ultralight.dm +++ b/code/unused/Ultralight.dm @@ -212,14 +212,14 @@ atom/proc/ul_LightLevelChanged() //Designed for client projects to use. Called on items when the turf they are in has its light level changed return -atom/proc/New() +atom/New() ..() if(ul_IsLuminous()) spawn(1) ul_Illuminate() return -atom/proc/Del() +atom/Del() if(ul_IsLuminous()) ul_Extinguish() @@ -227,11 +227,11 @@ atom/proc/Del() return -atom/proc/movable/Move() +/*atom/proc/movable/Move() ul_Extinguish() ..() ul_Illuminate() - return + return*/ turf var