diff --git a/_maps/map_files/tgstation.2.1.3.dmm b/_maps/map_files/tgstation.2.1.3.dmm index bfca715563a..d52354c6d5e 100644 --- a/_maps/map_files/tgstation.2.1.3.dmm +++ b/_maps/map_files/tgstation.2.1.3.dmm @@ -393,7 +393,7 @@ "ahC" = (/obj/machinery/seed_extractor,/turf/simulated/floor{icon_state = "floorgrime"},/area/security/prison) "ahD" = (/turf/simulated/floor{icon_state = "red"; dir = 1},/area/security/brig) "ahE" = (/obj/structure/window/reinforced,/turf/simulated/floor/plating,/area/security/prison) -"ahF" = (/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/manifold/supply/hidden{tag = "icon-manifold-b-f (NORTH)"; dir = 1},/turf/simulated/floor/plating,/area/maintenance/fsmaint) +"ahF" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 5},/obj/machinery/meter,/turf/simulated/floor/plating,/area/maintenance/fsmaint) "ahG" = (/obj/item/weapon/wrench,/obj/machinery/atmospherics/pipe/manifold/supply/hidden{tag = "icon-manifold-b-f (EAST)"; dir = 4},/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 4},/area/maintenance/fsmaint) "ahH" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor{dir = 8; icon_state = "redcorner"},/area/hallway/primary/fore) "ahI" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = "90Curve"},/obj/machinery/camera{c_tag = "Labor Shuttle Dock South"; dir = 1},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 9},/turf/simulated/floor{icon_state = "red"; dir = 6},/area/security/processing) @@ -640,7 +640,7 @@ "amp" = (/turf/simulated/floor{icon_state = "whitehall"; dir = 2},/area/security/prison) "amq" = (/obj/structure/extinguisher_cabinet{pixel_x = 1; pixel_y = -27},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor{icon_state = "whitehall"; dir = 2},/area/security/prison) "amr" = (/obj/machinery/door/airlock/maintenance{req_access_txt = "12"},/turf/simulated/floor/plating,/area/maintenance/fsmaint) -"ams" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 5},/turf/simulated/floor/plating,/area/maintenance/fsmaint) +"ams" = (/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/manifold/supply/hidden{tag = "icon-manifold-b-f (NORTH)"; dir = 1},/obj/machinery/meter,/turf/simulated/floor/plating,/area/maintenance/fsmaint) "amt" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor/plating{icon_state = "warnplate"},/area/security/prison) "amu" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/wall,/area/maintenance/fsmaint) "amv" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/turf/simulated/wall,/area/maintenance/fsmaint) @@ -786,9 +786,9 @@ "apf" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating,/area/maintenance/fpmaint2) "apg" = (/obj/machinery/door/airlock/external{name = "External Access"; req_access = null; req_access_txt = "13"},/turf/simulated/floor/plating,/area/maintenance/fpmaint2) "aph" = (/obj/structure/stool,/turf/simulated/floor{icon_state = "floorgrime"},/area/maintenance/fpmaint2) -"api" = (/obj/machinery/atmospherics/pipe/simple/general/visible{dir = 5},/turf/simulated/floor/plating,/area/maintenance/fpmaint2) +"api" = (/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{tag = "icon-intact (NORTHEAST)"; icon_state = "intact"; dir = 5},/turf/simulated/floor/plating,/area/maintenance/fpmaint2) "apj" = (/obj/machinery/atmospherics/valve{dir = 4},/turf/simulated/floor/plating,/area/maintenance/fpmaint2) -"apk" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/turf/simulated/floor/plating,/area/maintenance/fpmaint2) +"apk" = (/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{tag = "icon-intact (SOUTHWEST)"; icon_state = "intact"; dir = 10},/turf/simulated/floor/plating,/area/maintenance/fpmaint2) "apl" = (/obj/structure/closet,/obj/effect/spawner/lootdrop/maintenance,/turf/simulated/floor/plating,/area/maintenance/fpmaint2) "apm" = (/obj/structure/closet/emcloset,/turf/simulated/floor/plating,/area/maintenance/fpmaint2) "apn" = (/obj/machinery/power/apc{dir = 1; name = "Arrivals North Maintenance APC"; pixel_x = -1; pixel_y = 26},/obj/structure/cable{icon_state = "0-2"; d2 = 2},/turf/simulated/floor/plating,/area/maintenance/fpmaint2) @@ -898,7 +898,7 @@ "arn" = (/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/fpmaint2) "aro" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating,/area/maintenance/fpmaint2) "arp" = (/obj/structure/table,/obj/item/weapon/kitchen/utensil/fork,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor{icon_state = "bar"},/area/crew_quarters/bar) -"arq" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor/plating,/area/maintenance/fpmaint2) +"arq" = (/obj/machinery/meter,/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{tag = "icon-intact (EAST)"; icon_state = "intact"; dir = 4},/turf/simulated/floor/plating,/area/maintenance/fpmaint2) "arr" = (/obj/structure/stool{pixel_y = 8},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor{icon_state = "bar"},/area/crew_quarters/bar) "ars" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor{icon_state = "bar"},/area/crew_quarters/bar) "art" = (/obj/structure/reagent_dispensers/fueltank,/turf/simulated/floor/plating,/area/maintenance/fpmaint2) @@ -1616,7 +1616,7 @@ "aFd" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor/plating,/area/maintenance/fpmaint2) "aFe" = (/obj/machinery/light_switch{pixel_x = 27},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor{icon_state = "freezerfloor"},/area/crew_quarters/toilet) "aFf" = (/obj/structure/table/woodentable,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor/wood,/area/security/vacantoffice) -"aFg" = (/obj/machinery/meter,/obj/machinery/atmospherics/pipe/manifold/supply/hidden{tag = "icon-manifold-b-f (WEST)"; dir = 8},/turf/simulated/floor/plating,/area/maintenance/fpmaint2) +"aFg" = (/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{tag = "icon-intact (NORTHEAST)"; icon_state = "intact"; dir = 5},/turf/simulated/wall,/area/maintenance/fpmaint2) "aFh" = (/obj/machinery/power/apc{dir = 1; name = "Law Office APC"; pixel_y = 24},/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor/plating,/area/lawoffice) "aFi" = (/obj/machinery/power/apc{dir = 8; name = "Detective APC"; pixel_x = -24},/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor/plating,/area/security/detectives_office) "aFj" = (/obj/machinery/light_switch{pixel_y = 28},/obj/machinery/light{dir = 1},/obj/structure/table/woodentable,/obj/item/weapon/lipstick,/turf/simulated/floor/wood,/area/crew_quarters/theatre) @@ -1685,7 +1685,7 @@ "aGu" = (/obj/structure/table,/obj/item/weapon/weldingtool,/obj/item/weapon/crowbar,/obj/item/stack/packageWrap,/obj/item/stack/packageWrap,/obj/item/stack/packageWrap,/obj/item/stack/packageWrap,/turf/simulated/floor,/area/storage/primary) "aGv" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 6},/turf/simulated/wall,/area/maintenance/fpmaint2) "aGw" = (/obj/machinery/light/small{dir = 1},/obj/machinery/alarm{pixel_y = 23},/turf/simulated/floor{icon_state = "vault"},/area/ai_monitored/nuke_storage) -"aGx" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 5},/turf/simulated/floor/plating,/area/maintenance/fpmaint2) +"aGx" = (/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{tag = "icon-intact (EAST)"; icon_state = "intact"; dir = 4},/turf/simulated/wall,/area/maintenance/fpmaint2) "aGy" = (/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor/plating,/area/maintenance/fpmaint) "aGz" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'HIGH VOLTAGE'"; icon_state = "shock"; name = "HIGH VOLTAGE"; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/wall,/area/maintenance/electrical) "aGA" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor/plating,/area/maintenance/fsmaint2) @@ -1869,7 +1869,7 @@ "aJW" = (/turf/simulated/floor{icon_state = "neutral"; dir = 4},/area/hallway/primary/central) "aJX" = (/obj/structure/table/woodentable,/obj/structure/mirror{pixel_x = -28},/obj/item/weapon/lipstick/random,/turf/simulated/floor{icon_state = "whitehall"; dir = 4},/area/crew_quarters/theatre) "aJY" = (/turf/simulated/floor/wood,/area/crew_quarters/theatre) -"aJZ" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/meter,/turf/simulated/floor/plating,/area/maintenance/fpmaint2) +"aJZ" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{tag = "icon-intact (EAST)"; icon_state = "intact"; dir = 4},/turf/simulated/floor/plating,/area/maintenance/fpmaint2) "aKa" = (/obj/structure/closet/lasertag/blue,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor{icon_state = "neutral"; dir = 1},/area/crew_quarters/fitness) "aKb" = (/obj/structure/closet/lasertag/red,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/turf/simulated/floor{icon_state = "neutral"; dir = 5},/area/crew_quarters/fitness) "aKc" = (/turf/simulated/floor{icon_state = "bar"},/area/crew_quarters/bar) @@ -1925,12 +1925,12 @@ "aLa" = (/obj/structure/disposalpipe/segment,/turf/simulated/floor,/area/hallway/primary/port) "aLb" = (/obj/machinery/light{dir = 1},/obj/structure/sign/securearea{desc = "A warning sign which reads 'HIGH VOLTAGE'"; icon_state = "shock"; name = "HIGH VOLTAGE"; pixel_y = 32},/turf/simulated/floor{icon_state = "warningcorner"; dir = 8},/area/hallway/primary/port) "aLc" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 6},/turf/simulated/wall,/area/lawoffice) -"aLd" = (/obj/effect/spawner/lootdrop/maintenance{lootcount = 2; name = "2maintenance loot spawner"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/turf/simulated/floor/plating,/area/maintenance/fpmaint2) +"aLd" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{tag = "icon-intact (EAST)"; icon_state = "intact"; dir = 4},/turf/simulated/floor/plating,/area/maintenance/fpmaint2) "aLe" = (/turf/simulated/floor{dir = 1; icon_state = "warning"},/area/hallway/primary/port) -"aLf" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor/plating{tag = "icon-platingdmg3"; icon_state = "platingdmg3"},/area/maintenance/fpmaint2) +"aLf" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{tag = "icon-intact (EAST)"; icon_state = "intact"; dir = 4},/turf/simulated/floor/plating,/area/maintenance/fpmaint2) "aLg" = (/obj/machinery/atmospherics/unary/vent_scrubber{on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/simulated/floor{dir = 1; icon_state = "warning"},/area/hallway/primary/port) "aLh" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'HIGH VOLTAGE'"; icon_state = "shock"; name = "HIGH VOLTAGE"; pixel_y = 32},/turf/simulated/floor{icon_state = "warningcorner"; dir = 4},/area/hallway/primary/port) -"aLi" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor/plating,/area/maintenance/fpmaint2) +"aLi" = (/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{tag = "icon-intact (EAST)"; icon_state = "intact"; dir = 4},/turf/simulated/floor/plating{tag = "icon-platingdmg3"; icon_state = "platingdmg3"},/area/maintenance/fpmaint2) "aLj" = (/obj/machinery/light{dir = 1},/obj/machinery/atmospherics/unary/vent_pump{dir = 8; on = 1},/turf/simulated/floor{icon_state = "warningcorner"; dir = 8},/area/hallway/primary/port) "aLk" = (/obj/machinery/door/firedoor/border_only{dir = 4; name = "Firelock East"},/turf/simulated/floor{icon_state = "warningcorner"; dir = 4},/area/hallway/primary/port) "aLl" = (/obj/machinery/door/firedoor/border_only{dir = 8; name = "Firelock West"},/obj/machinery/door/airlock/glass{name = "Central Access"},/turf/simulated/floor,/area/hallway/primary/central) @@ -1958,11 +1958,11 @@ "aLH" = (/obj/structure/piano,/turf/simulated/floor/wood,/area/crew_quarters/theatre) "aLI" = (/obj/machinery/door/airlock/maintenance{req_access_txt = "12"},/turf/simulated/floor/plating,/area/maintenance/fpmaint2) "aLJ" = (/obj/structure/stool{pixel_y = 8},/turf/simulated/floor{icon_state = "bar"},/area/crew_quarters/bar) -"aLK" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor/plating,/area/maintenance/fpmaint2) +"aLK" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{tag = "icon-intact (EAST)"; icon_state = "intact"; dir = 4},/turf/simulated/floor/plating,/area/maintenance/fpmaint2) "aLL" = (/obj/structure/disposalpipe/segment,/obj/effect/landmark{name = "xeno_spawn"; pixel_x = -1},/turf/simulated/floor/wood,/area/crew_quarters/bar) "aLM" = (/obj/machinery/vending/cola,/turf/simulated/floor/wood,/area/crew_quarters/bar) "aLN" = (/obj/machinery/vending/coffee,/turf/simulated/floor/wood,/area/crew_quarters/bar) -"aLO" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor/plating,/area/maintenance/fpmaint2) +"aLO" = (/obj/effect/spawner/lootdrop/maintenance{lootcount = 2; name = "2maintenance loot spawner"},/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{tag = "icon-intact (SOUTHWEST)"; icon_state = "intact"; dir = 10},/turf/simulated/floor/plating,/area/maintenance/fpmaint2) "aLP" = (/turf/simulated/floor,/area/crew_quarters/fitness) "aLQ" = (/obj/machinery/chem_master/condimaster{name = "CondiMaster Neo"},/obj/machinery/camera{c_tag = "Kitchen Cold Room"},/turf/simulated/floor{icon_state = "showroomfloor"},/area/crew_quarters/kitchen) "aLR" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor{icon_state = "red"; dir = 4},/area/crew_quarters/fitness) @@ -2062,7 +2062,6 @@ "aNH" = (/obj/machinery/camera{c_tag = "Port Hallway 3"; dir = 1},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor,/area/hallway/primary/port) "aNI" = (/obj/structure/disposalpipe/junction{icon_state = "pipe-j1"; dir = 4},/turf/simulated/floor,/area/hallway/primary/port) "aNJ" = (/obj/structure/disposalpipe/junction{icon_state = "pipe-j2"; dir = 4},/turf/simulated/floor,/area/hallway/primary/port) -"aNK" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 4; on = 1},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor,/area/hallway/primary/port) "aNL" = (/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor/plating,/area/maintenance/port) "aNM" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 1; external_pressure_bound = 101.325; on = 1; pressure_checks = 1},/turf/simulated/floor{icon_state = "barber"},/area/crew_quarters/locker) "aNN" = (/obj/structure/window/reinforced{dir = 8},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor{dir = 8; icon_state = "warning"},/area/crew_quarters/locker) @@ -2372,7 +2371,7 @@ "aTF" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/closet,/obj/item/clothing/under/suit_jacket/female{pixel_x = 3; pixel_y = 1},/obj/item/clothing/under/suit_jacket/really_black{pixel_x = -2; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor{icon_state = "barber"},/area/crew_quarters/locker) "aTG" = (/obj/structure/table,/obj/item/stack/sheet/rglass{amount = 50},/obj/item/stack/sheet/rglass{amount = 50},/obj/item/stack/rods{amount = 50},/obj/item/stack/rods{amount = 50},/obj/machinery/light{icon_state = "tube1"; dir = 8},/turf/simulated/floor{dir = 8; icon_state = "warning"},/area/ai_monitored/storage/eva) "aTH" = (/obj/structure/sink{icon_state = "sink"; dir = 8; pixel_x = -12; pixel_y = 2},/obj/machinery/atmospherics/pipe/manifold/supply/hidden{tag = "icon-manifold-b-f (NORTH)"; dir = 1},/turf/simulated/floor{icon_state = "freezerfloor"},/area/crew_quarters/toilet) -"aTI" = (/obj/machinery/meter,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor/plating,/area/maintenance/port) +"aTI" = (/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{tag = "icon-intact (NORTH)"; icon_state = "intact"; dir = 1},/turf/simulated/floor/plating,/area/maintenance/fpmaint2) "aTJ" = (/obj/structure/disposalpipe/segment,/turf/simulated/floor{icon_state = "cafeteria"},/area/crew_quarters/kitchen) "aTK" = (/obj/structure/table,/obj/item/weapon/storage/toolbox/mechanical{pixel_x = -2; pixel_y = -1},/obj/machinery/light{dir = 4},/turf/simulated/floor,/area/storage/primary) "aTL" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 8; on = 1},/turf/simulated/floor,/area/storage/primary) @@ -3195,7 +3194,7 @@ "bjw" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating,/area/medical/chemistry) "bjx" = (/obj/structure/sign/atmosplaque{pixel_x = 0; pixel_y = -32},/obj/structure/table,/obj/item/weapon/storage/box,/obj/item/weapon/storage/box,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor,/area/atmos) "bjy" = (/obj/effect/spawner/lootdrop/maintenance,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor/plating,/area/maintenance/asmaint2) -"bjz" = (/obj/machinery/meter,/turf/simulated/floor/plating,/area/maintenance/asmaint2) +"bjz" = (/obj/machinery/meter,/obj/machinery/atmospherics/pipe/manifold/supplymain/hidden{tag = "icon-manifold (WEST)"; icon_state = "manifold"; dir = 8},/turf/simulated/floor/plating,/area/maintenance/fpmaint2) "bjA" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor{dir = 2; icon_state = "whiteblue"},/area/medical/medbay) "bjB" = (/obj/machinery/door/airlock/research{name = "Testing Lab"; req_access_txt = "47"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor{icon_state = "white"},/area/toxins/misc_lab) "bjC" = (/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,/turf/simulated/floor/plating,/area/toxins/misc_lab) @@ -3312,7 +3311,7 @@ "blJ" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plating,/area/quartermaster/storage) "blK" = (/obj/structure/closet/emcloset,/turf/simulated/floor{dir = 8; icon_state = "warning"},/area/quartermaster/storage) "blL" = (/obj/structure/closet/emcloset,/obj/machinery/alarm{dir = 2; pixel_y = 24},/turf/simulated/floor,/area/quartermaster/storage) -"blM" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor/plating,/area/maintenance/fpmaint2) +"blM" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{dir = 5},/turf/simulated/floor/plating/airless,/area/space) "blN" = (/obj/structure/closet/secure_closet/security,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor{icon_state = "red"; dir = 9},/area/security/checkpoint2) "blO" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{tag = "icon-manifold-r-f (EAST)"; dir = 4},/turf/simulated/floor{icon_state = "red"; dir = 1},/area/security/checkpoint2) "blP" = (/obj/machinery/computer/security,/obj/structure/reagent_dispensers/peppertank{pixel_x = 0; pixel_y = 30},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor{icon_state = "red"; dir = 1},/area/security/checkpoint2) @@ -3643,7 +3642,7 @@ "bsc" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{tag = "icon-manifold-r-f (WEST)"; dir = 8},/turf/simulated/floor{dir = 9; icon_state = "whitehall"},/area/medical/research{name = "Research Division"}) "bsd" = (/obj/structure/sign/nosmoking_2{pixel_x = -32},/turf/simulated/floor{dir = 5; icon_state = "whitehall"},/area/medical/research{name = "Research Division"}) "bse" = (/obj/machinery/portable_atmospherics/canister/oxygen,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor{icon_state = "bot"},/area/toxins/storage) -"bsf" = (/obj/machinery/meter,/turf/simulated/floor/plating,/area/maintenance/asmaint) +"bsf" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{dir = 4},/turf/simulated/floor/plating/airless,/area/space) "bsg" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor,/area/hallway/primary/aft) "bsh" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{tag = "icon-manifold-r-f (WEST)"; dir = 8},/turf/simulated/floor{dir = 8; icon_state = "cautioncorner"},/area/hallway/primary/aft) "bsi" = (/obj/structure/table,/obj/item/weapon/storage/box/disks{pixel_x = 2; pixel_y = 2},/turf/simulated/floor{icon_state = "white"},/area/medical/genetics) @@ -5003,7 +5002,7 @@ "bSk" = (/obj/machinery/atmospherics/pipe/simple/green/visible{dir = 5; initialize_directions = 12},/turf/simulated/floor,/area/atmos) "bSl" = (/obj/machinery/atmospherics/binary/pump{dir = 1; name = "Unfiltered to Mix"; on = 1},/obj/machinery/atmospherics/pipe/simple/green/visible{dir = 4; initialize_directions = 12},/turf/simulated/floor,/area/atmos) "bSm" = (/obj/machinery/atmospherics/pipe/simple/green/visible{dir = 4},/turf/simulated/floor{icon_state = "green"; dir = 6},/area/atmos) -"bSn" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor/plating,/area/maintenance/asmaint) +"bSn" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{dir = 4},/turf/simulated/floor/plating,/area/maintenance/incinerator) "bSo" = (/obj/structure/lattice,/obj/machinery/atmospherics/pipe/simple/green/visible{dir = 4},/turf/space,/area/space) "bSp" = (/obj/machinery/atmospherics/unary/outlet_injector/on{dir = 8; frequency = 1441; id = "waste_in"; pixel_y = 1},/turf/simulated/floor/engine{name = "vacuum floor"; nitrogen = 0.01; oxygen = 0.01},/area/atmos) "bSq" = (/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor/plating,/area/maintenance/asmaint) @@ -5136,12 +5135,12 @@ "bUN" = (/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor/plating,/area/maintenance/asmaint) "bUO" = (/obj/structure/disposalpipe/trunk{dir = 4},/obj/structure/disposaloutlet{dir = 8},/turf/simulated/floor/plating/airless,/area/space) "bUP" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/plating/airless,/area/space) -"bUQ" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/insulated{dir = 5},/turf/simulated/floor/plating/airless,/area/space) -"bUR" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/general/visible{dir = 4},/turf/simulated/floor/plating/airless,/area/space) +"bUQ" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/reagent_dispensers/fueltank,/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{tag = "icon-intact (SOUTHWEST)"; icon_state = "intact"; dir = 10},/turf/simulated/floor/plating,/area/maintenance/incinerator) +"bUR" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/closet/emcloset,/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{dir = 4},/turf/simulated/floor/plating,/area/maintenance/incinerator) "bUS" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/binary/pump{dir = 8; name = "Gas Pump"; on = 1},/turf/simulated/floor/plating/airless,/area/space) -"bUT" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/general/visible{dir = 4},/turf/simulated/floor/plating,/area/maintenance/incinerator) -"bUU" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/general/visible{dir = 4},/obj/structure/closet/emcloset,/turf/simulated/floor/plating,/area/maintenance/incinerator) -"bUV" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/insulated{dir = 10},/obj/structure/reagent_dispensers/fueltank,/turf/simulated/floor/plating,/area/maintenance/incinerator) +"bUT" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/visible,/turf/simulated/floor/plating,/area/maintenance/incinerator) +"bUU" = (/obj/machinery/atmospherics/pipe/simple/yellow/visible{dir = 4},/turf/simulated/wall/r_wall,/area/maintenance/incinerator) +"bUV" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/visible,/obj/machinery/atmospherics/pipe/simple/yellow/visible{dir = 4},/turf/simulated/floor{icon_state = "floorgrime"},/area/maintenance/incinerator) "bUW" = (/obj/machinery/disposal,/obj/structure/disposalpipe/trunk{dir = 8},/obj/structure/sign/deathsposal{pixel_y = 32},/turf/simulated/floor/plating,/area/maintenance/incinerator) "bUX" = (/obj/machinery/atmospherics/pipe/tank/toxins{volume = 3200},/turf/simulated/floor{icon_state = "floorgrime"},/area/maintenance/incinerator) "bUY" = (/obj/machinery/atmospherics/pipe/tank/oxygen{volume = 3200},/turf/simulated/floor{icon_state = "floorgrime"},/area/maintenance/incinerator) @@ -5204,7 +5203,7 @@ "bWd" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor/plating{tag = "icon-platingdmg3"; icon_state = "platingdmg3"},/area/maintenance/asmaint2) "bWe" = (/turf/simulated/wall/r_wall,/area/maintenance/incinerator) "bWf" = (/obj/structure/sign/nosmoking_2{pixel_x = -28},/turf/simulated/floor/plating,/area/maintenance/incinerator) -"bWg" = (/obj/machinery/atmospherics/pipe/simple/insulated,/turf/simulated/floor/plating,/area/maintenance/incinerator) +"bWg" = (/obj/machinery/embedded_controller/radio/access_controller{exterior_door_tag = "incinerator_airlock_exterior"; id_tag = "incinerator_access_control"; interior_door_tag = "incinerator_airlock_interior"; name = "Incinerator Access Console"; pixel_x = -26; pixel_y = 6; req_access_txt = "12"},/obj/machinery/ignition_switch{id = "Incinerator"; pixel_x = -24; pixel_y = -6},/obj/machinery/meter,/obj/machinery/atmospherics/pipe/simple/yellow/visible{dir = 4},/turf/simulated/floor{icon_state = "floorgrime"},/area/maintenance/incinerator) "bWh" = (/turf/simulated/floor{icon_state = "floorgrime"},/area/maintenance/incinerator) "bWi" = (/obj/machinery/atmospherics/binary/pump,/turf/simulated/floor{icon_state = "floorgrime"},/area/maintenance/incinerator) "bWj" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/structure/grille,/turf/simulated/floor/plating,/area/maintenance/aft) @@ -5256,8 +5255,8 @@ "bXd" = (/obj/machinery/atmospherics/unary/outlet_injector/on{dir = 4; frequency = 1443; id = "air_in"},/obj/structure/sign/securearea{desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; pixel_x = 0; pixel_y = 32},/turf/simulated/floor/engine/vacuum,/area/maintenance/incinerator) "bXe" = (/obj/machinery/atmospherics/pipe/simple/cyan/visible,/turf/simulated/floor{icon_state = "arrival"; dir = 10},/area/atmos) "bXf" = (/obj/machinery/atmospherics/binary/pump{dir = 8; on = 1},/obj/machinery/access_button{command = "cycle_exterior"; layer = 3.1; master_tag = "incinerator_access_control"; name = "Incinerator airlock control"; pixel_x = -22; pixel_y = -10},/obj/structure/sign/fire{pixel_y = 32},/turf/simulated/floor/plating,/area/maintenance/incinerator) -"bXg" = (/obj/machinery/atmospherics/pipe/simple/general/visible{dir = 4},/obj/machinery/embedded_controller/radio/access_controller{exterior_door_tag = "incinerator_airlock_exterior"; id_tag = "incinerator_access_control"; interior_door_tag = "incinerator_airlock_interior"; name = "Incinerator Access Console"; pixel_x = -26; pixel_y = 6; req_access_txt = "12"},/obj/machinery/ignition_switch{id = "Incinerator"; pixel_x = -24; pixel_y = -6},/obj/machinery/meter,/turf/simulated/floor{icon_state = "floorgrime"},/area/maintenance/incinerator) -"bXh" = (/obj/machinery/atmospherics/pipe/simple/general/visible{dir = 4},/obj/machinery/atmospherics/pipe/simple/insulated,/turf/simulated/floor{icon_state = "floorgrime"},/area/maintenance/incinerator) +"bXg" = (/obj/machinery/atmospherics/pipe/manifold/yellow/visible,/turf/simulated/floor{icon_state = "floorgrime"},/area/maintenance/incinerator) +"bXh" = (/obj/machinery/atmospherics/pipe/simple/yellow/visible{dir = 4},/turf/simulated/floor{icon_state = "floorgrime"},/area/maintenance/incinerator) "bXi" = (/obj/machinery/atmospherics/pipe/simple/green/visible,/obj/machinery/portable_atmospherics/pump,/turf/simulated/floor{icon_state = "red"; dir = 10},/area/atmos) "bXj" = (/obj/machinery/atmospherics/pipe/simple/green/visible{dir = 4},/obj/machinery/atmospherics/pipe/simple/cyan/visible,/turf/simulated/floor,/area/atmos) "bXk" = (/obj/machinery/atmospherics/portables_connector/visible{dir = 8},/obj/machinery/light_switch{pixel_x = 27},/turf/simulated/floor{icon_state = "floorgrime"},/area/maintenance/incinerator) @@ -5367,13 +5366,13 @@ "bZk" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 8; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/simulated/floor{tag = "icon-warningcorner (EAST)"; icon_state = "warningcorner"; dir = 4},/area/toxins/misc_lab) "bZl" = (/obj/structure/closet/crate,/obj/item/clothing/under/color/lightpurple,/obj/item/weapon/spacecash/c200,/turf/simulated/floor/plating,/area/maintenance/asmaint2) "bZm" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 4; external_pressure_bound = 0; initialize_directions = 1; internal_pressure_bound = 4000; on = 1; pressure_checks = 2; pump_direction = 0},/turf/simulated/floor/engine/vacuum,/area/maintenance/incinerator) -"bZn" = (/obj/machinery/atmospherics/pipe/simple/general/visible{dir = 4},/turf/simulated/wall/r_wall,/area/maintenance/incinerator) +"bZn" = (/obj/machinery/light,/obj/machinery/atmospherics/pipe/manifold/yellow/visible,/turf/simulated/floor{icon_state = "floorgrime"},/area/maintenance/incinerator) "bZo" = (/obj/machinery/atmospherics/binary/pump{dir = 4; on = 1},/obj/structure/sign/fire{pixel_y = -32},/obj/machinery/access_button{command = "cycle_interior"; master_tag = "incinerator_access_control"; name = "Incinerator airlock control"; pixel_x = 24; pixel_y = 8},/turf/simulated/floor/plating,/area/maintenance/incinerator) -"bZp" = (/obj/machinery/atmospherics/pipe/simple/general/visible{dir = 4},/obj/machinery/door_control{id = "disvent"; name = "Incinerator Vent Control"; pixel_x = 0; pixel_y = -24; req_access_txt = "12"},/obj/machinery/meter,/turf/simulated/floor{icon_state = "floorgrime"},/area/maintenance/incinerator) +"bZp" = (/obj/machinery/door_control{id = "disvent"; name = "Incinerator Vent Control"; pixel_x = 0; pixel_y = -24; req_access_txt = "12"},/obj/machinery/meter,/obj/machinery/atmospherics/pipe/simple/yellow/visible{dir = 4},/turf/simulated/floor{icon_state = "floorgrime"},/area/maintenance/incinerator) "bZq" = (/obj/structure/lattice,/obj/machinery/atmospherics/pipe/simple/cyan/visible,/turf/space,/area/space) "bZr" = (/obj/machinery/atmospherics/valve{dir = 4},/turf/simulated/floor{icon_state = "floorgrime"},/area/maintenance/incinerator) -"bZs" = (/obj/machinery/atmospherics/pipe/simple/general/visible{dir = 4},/turf/simulated/floor{icon_state = "floorgrime"},/area/maintenance/incinerator) -"bZt" = (/obj/machinery/atmospherics/pipe/simple/general/visible{dir = 4},/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_y = -29},/turf/simulated/floor{icon_state = "floorgrime"},/area/maintenance/incinerator) +"bZs" = (/obj/machinery/atmospherics/valve/open{tag = "icon-mvalve_map (EAST)"; icon_state = "mvalve_map"; dir = 4},/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 1},/area/medical/virology) +"bZt" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{tag = "icon-manifold-r-f (NORTH)"; dir = 1},/turf/simulated/floor/plating,/area/maintenance/asmaint) "bZu" = (/obj/machinery/atmospherics/portables_connector/visible{dir = 8},/turf/simulated/floor{icon_state = "floorgrime"},/area/maintenance/incinerator) "bZv" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/structure/grille,/turf/simulated/floor/plating,/area/maintenance/aft) "bZw" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/grille,/turf/simulated/floor/plating,/area/maintenance/aft) @@ -5744,7 +5743,7 @@ "cgx" = (/obj/machinery/portable_atmospherics/canister,/obj/effect/decal/cleanable/cobweb,/turf/simulated/floor/plating,/area/maintenance/asmaint) "cgy" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden,/turf/simulated/floor/plating,/area/maintenance/port) "cgz" = (/obj/structure/disposalpipe/segment,/turf/simulated/wall,/area/maintenance/asmaint) -"cgA" = (/obj/machinery/door/airlock/maintenance{name = "Biohazard Disposals"; req_access_txt = "12"},/turf/simulated/floor/plating,/area/maintenance/asmaint) +"cgA" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/mob/living/simple_animal/mouse,/turf/simulated/floor/plating,/area/maintenance/asmaint) "cgB" = (/obj/machinery/power/apc{dir = 1; name = "Locker Room APC"; pixel_x = 0; pixel_y = 24},/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 6},/mob/living/simple_animal/mouse,/turf/simulated/floor/plating,/area/crew_quarters/locker) "cgC" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/turf/simulated/floor/plating,/area/maintenance/asmaint2) "cgD" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/turf/simulated/floor/plating,/area/maintenance/asmaint2) @@ -5782,7 +5781,7 @@ "chj" = (/obj/structure/extinguisher_cabinet{pixel_x = 27; pixel_y = 0},/obj/machinery/camera{c_tag = "Atmospherics West"; dir = 8; network = list("SS13")},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/scrubbers/visible,/obj/machinery/light{dir = 4; icon_state = "tube1"},/turf/simulated/floor,/area/atmos) "chk" = (/obj/machinery/computer/general_air_control/large_tank_control{frequency = 1441; input_tag = "o2_in"; name = "Oxygen Supply Control"; output_tag = "o2_out"; sensors = list("o2_sensor" = "Tank")},/turf/simulated/floor{dir = 0; icon_state = "blue"},/area/atmos) "chl" = (/obj/machinery/atmospherics/binary/pump{dir = 1; name = "O2 Outlet Pump"; on = 1},/turf/simulated/floor{icon_state = "blue"; dir = 6},/area/atmos) -"chm" = (/obj/machinery/atmospherics/pipe/manifold/general/visible,/turf/simulated/floor{icon_state = "floorgrime"},/area/maintenance/incinerator) +"chm" = (/obj/machinery/meter,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 6},/turf/simulated/floor/plating,/area/maintenance/asmaint2) "chn" = (/obj/machinery/computer/general_air_control/large_tank_control{frequency = 1443; input_tag = "air_in"; name = "Mixed Air Supply Control"; output_tag = "air_out"; pressure_setting = 2000; sensors = list("air_sensor" = "Tank")},/turf/simulated/floor{icon_state = "arrival"},/area/atmos) "cho" = (/obj/machinery/camera{c_tag = "Atmospherics South East"; dir = 1},/obj/machinery/atmospherics/binary/pump{dir = 1; name = "Air Outlet Pump"; on = 1},/turf/simulated/floor{icon_state = "arrival"; dir = 6},/area/atmos) "chp" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating,/area/maintenance/asmaint) @@ -5838,7 +5837,7 @@ "cin" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating,/area/atmos) "cio" = (/obj/machinery/atmospherics/pipe/manifold/general/visible,/obj/machinery/meter,/turf/simulated/floor,/area/atmos) "cip" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plating,/area/atmos) -"ciq" = (/obj/machinery/atmospherics/pipe/manifold/general/visible,/obj/machinery/light,/turf/simulated/floor{icon_state = "floorgrime"},/area/maintenance/incinerator) +"ciq" = (/obj/machinery/atmospherics/pipe/simple/cyan/hidden{tag = "icon-intact (NORTHWEST)"; icon_state = "intact"; dir = 9},/turf/simulated/floor/plating,/area/maintenance/asmaint2) "cir" = (/obj/machinery/requests_console{department = "Atmospherics"; departmentType = 4; name = "Atmos RC"; pixel_x = 30; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/scrubbers/visible,/obj/machinery/light{dir = 4; icon_state = "tube1"},/turf/simulated/floor,/area/atmos) "cis" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plating,/area/atmos) "cit" = (/obj/structure/disposalpipe/sortjunction{dir = 1; icon_state = "pipe-j2s"; sortType = 2},/obj/structure/noticeboard{pixel_y = 32},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor,/area/quartermaster/office) @@ -7499,6 +7498,7 @@ "cOk" = (/obj/item/weapon/shard,/obj/item/weapon/module/power_control,/turf/simulated/floor/plating/airless,/area/AIsattele) "cOl" = (/obj/structure/closet,/turf/simulated/floor/plating/airless,/area/AIsattele) "cOm" = (/obj/item/weapon/storage/toolbox/electrical{pixel_x = 1; pixel_y = -1},/turf/simulated/floor/plating/airless,/area/AIsattele) +"cOn" = (/obj/machinery/meter,/obj/machinery/atmospherics/pipe/manifold/cyan/hidden,/turf/simulated/floor/plating,/area/maintenance/asmaint2) "cOo" = (/obj/structure/reagent_dispensers/fueltank,/turf/simulated/floor/plating/airless,/area/AIsattele) "cOp" = (/obj/machinery/power/solar/fake,/turf/simulated/floor/airless{icon_state = "solarpanel"},/area/djstation/solars) "cOq" = (/turf/simulated/floor/plating/airless,/area/djstation/solars) @@ -8892,12 +8892,14 @@ "dpa" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{tag = "icon-manifold-b-f (NORTH)"; dir = 1},/turf/simulated/floor,/area/engine/break_room) "dpb" = (/obj/machinery/atmospherics/pipe/manifold{dir = 4},/obj/machinery/mineral/labor_points_checker,/turf/simulated/wall,/area/mine/laborcamp) "dpc" = (/obj/machinery/computer/shuttle/ferry/request,/turf/simulated/shuttle/floor,/area/shuttle/transport1/centcom) +"dpd" = (/obj/machinery/door/airlock/maintenance{name = "Biohazard Disposals"; req_access_txt = "12"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor/plating,/area/maintenance/asmaint) "dpe" = (/obj/machinery/computer/mech_bay_power_console,/turf/unsimulated/floor/plating,/area/syndicate_mothership) "dpf" = (/turf/unsimulated/floor{icon_state = "recharge_floor"; name = "mech bay recharge floor"; tag = "icon-recharge_floor"},/area/syndicate_mothership) "dpg" = (/obj/machinery/door/airlock/glass_large{name = "Equipment Room"; opacity = 1; req_access_txt = "150"; text = "g"},/turf/unsimulated/floor{icon_state = "bar"; dir = 2},/area/syndicate_mothership) "dph" = (/obj/machinery/door/window{dir = 4; name = "EVA Storage"; req_access_txt = "150"},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_station/start) "dpi" = (/obj/structure/stool,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_station/start) "dpj" = (/obj/machinery/door/airlock/centcom{name = "Transport Shuttle"; opacity = 1; req_access_txt = "109"},/turf/unsimulated/floor{icon_state = "floor"},/area/centcom/ferry) +"dpk" = (/obj/machinery/meter,/obj/machinery/atmospherics/pipe/manifold/general/hidden{tag = "icon-manifold (NORTH)"; icon_state = "manifold"; dir = 1},/turf/simulated/floor/plating,/area/maintenance/asmaint) "dpl" = (/obj/item/weapon/reagent_containers/glass/bucket,/turf/simulated/floor/plating,/area/security/prison) "dpm" = (/obj/structure/table,/obj/item/weapon/c4{pixel_x = 2; pixel_y = 1},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_station/start) "dpn" = (/obj/item/weapon/soap/syndie,/obj/structure/mopbucket,/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/syndicate_mothership) @@ -8916,7 +8918,7 @@ "dpA" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/wall/r_wall,/area/atmos) "dpB" = (/obj/machinery/atmospherics/portables_connector/visible{dir = 8},/obj/machinery/portable_atmospherics/canister/air,/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 6},/area/medical/virology) "dpC" = (/obj/machinery/atmospherics/pipe/tank/air{dir = 8},/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 5},/area/medical/virology) -"dpD" = (/obj/machinery/atmospherics/valve{dir = 4; icon_state = "valve1"; open = 1; openDuringInit = 1},/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 1},/area/medical/virology) +"dpD" = (/obj/machinery/meter,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 9},/turf/simulated/floor/plating,/area/maintenance/asmaint) "dpE" = (/obj/machinery/camera{c_tag = "Atmospherics South West"; dir = 4; network = list("SS13")},/obj/machinery/atmospherics/unary/vent_pump{dir = 8; on = 1},/turf/simulated/floor,/area/atmos) "dpF" = (/obj/structure/table,/obj/item/clothing/glasses/meson,/obj/machinery/alarm{dir = 4; icon_state = "alarm0"; pixel_x = -22},/turf/simulated/floor,/area/engine/break_room) "dpG" = (/obj/machinery/bot/secbot/pingsky,/turf/simulated/floor/carpet,/area/turret_protected/aisat_interior) @@ -9189,6 +9191,12 @@ "duN" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor/plating,/area/maintenance/aft) "duO" = (/obj/machinery/alarm{frequency = 1439; pixel_y = 23},/obj/item/weapon/wrench,/obj/machinery/atmospherics/pipe/manifold/supply/hidden{tag = "icon-manifold-b-f (WEST)"; dir = 8},/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 9},/area/medical/virology) "duP" = (/obj/machinery/door/airlock/maintenance_hatch{req_access_txt = "65"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor{icon_state = "dark"},/area/turret_protected/aisat_interior) +"duQ" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/machinery/atmospherics/pipe/manifold/supply/hidden,/turf/simulated/floor/plating,/area/maintenance/asmaint2) +"duR" = (/obj/machinery/atmospherics/pipe/simple/general/hidden{dir = 9},/turf/simulated/floor/plating,/area/maintenance/asmaint) +"duS" = (/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor/plating,/area/maintenance/asmaint) +"duT" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor/plating,/area/maintenance/asmaint) +"duU" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor/plating,/area/maintenance/asmaint) +"duV" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor/plating/airless,/area/space) (1,1,1) = {" ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl @@ -9283,16 +9291,16 @@ ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlah ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahldpXdpXdpXahlahlahjahlakoakpakoahjahjahjahjdpXdpXdpXahlahlahlahlahlahlahlahlahlahlahlahjahlaiCakqajKajKaiCajgajhakrahnahkaioakvaeRafrahoafraeSakwajTakxaeSakyajTakzaeSakAajTakBaeSakCakDahrajZagqaeSakFajTakGaeRakHairakJakKakHakIaisakJahuahvahwabIabIahjahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahjahjahlakMakNakMahlahjahlahlahjahlahlahlahjahjahjahlahlahlahlakmakOakmahjahlahjahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlaaeahlahlahlahlahjahlahlahlahlahjahlakPakQakPahjahlahjahlahlahjahjahlahlahlahlahlahlahlahlahlahlahlahjahlaiCakRakSakTakUahlahlakVahyakWailalGaeRafragOafraeRalcaldalealfalgaldalealfalgaldalealfakEagLaljajYajWaeRaeRaeRaeRaeRalmaigalmalnalmalmaihalnahuainaimanRabIabIabIahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahjalsaltalualtakkahjahjahjahjahlahjahlahlahlahjahjahlahlahlakmalvakmahjahjahjahlahjahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahjahlahlahlahlahjalwalxalyalzalAahlahjahlahlahjahjahlahlahlahlahlahlahlahlahlahlahlahjahlaiCalBalCalCaiCajgajhalDaijalEahVahWadcaeRaeRaeRaeRalHalHalHalJalHalHalHalIalHalHalHalJalHalHalHalKalKalLalMalMalMalNalmaigalmalnalmalmaihalnabIahvalPadYalQalRalQahjahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahjalSalTakNalUalVahjahlahlahjahlahjahlahlahlahlahjahjahlahlakmalvakmahlahlahjahjahjahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl -ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahjahjahlahlahlahlahjalWalXalYalZalWamaamaahlahlahjahjahlahlahlahlahlahlahlahlahlahlahlahjahlaiCalCalCalCambamcajNamcajjaiHahSaiHamgalKalKalKagEalKalKamjalKalKalKalKalKalKalKamialKagjalKamhalKalKalKalKalKalKamkalnahRamlammamnalnahUalnamramsahTamuamuamvabIahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahjamwamxamyamzamwahjahlahlahjahlahjahlahjahlahlahlahjakmakmakmalvakmakmakmakmakmakmahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl +ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahjahjahlahlahlahlahjalWalXalYalZalWamaamaahlahlahjahjahlahlahlahlahlahlahlahlahlahlahlahjahlaiCalCalCalCambamcajNamcajjaiHahSaiHamgalKalKalKagEalKalKamjalKalKalKalKalKalKalKamialKagjalKamhalKalKalKalKalKalKamkalnahRamlammamnalnahUalnamrahFahTamuamuamvabIahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahjamwamxamyamzamwahjahlahlahjahlahjahlahjahlahlahlahjakmakmakmalvakmakmakmakmakmakmahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlamaamaamaamaamaahjahjalWamAamBamCalWamDamaahlahlahjahjahlahlahlahlahlahlahlahlahlahlahjahjahlaiCamEamEamEaiCajgajhamFagIafZahIahLahyamKamKamKamKamKamLahHamKamKamKamKamKamKamKamNamOamOamOahNamQamOamRagDagCagBalNamSamTahuahuahuahuahuahuabIamWahPabIamYamZabIahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahjamwanaanbancamwahjahlahlahjahlahjahlahjakmaknakmaknakmandalvalvalvalvalvalvaneakmahjahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl -ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlamaamaamaamaanfanganhamaahlahlalWaniacZankalWanlamaahlahlahjahjahlahlahlahlahlahlahlahlahlahjahjahlahlaiCanmanmanmaiCahlahjadcaebabUahyahianpanpanqanranqanpanpagZantantantanuantantanvanwanxagXamuagUamuamuamuamuagRamuamuamuamuamuahtahsahqahmanEanEahFahzanHanIahGabIahlahlahlahlahlahlahlahlahlahlahlahlahlahjahlahlahlahlahlamwanKafDanMamwanNanNanNanNanNanOanPanQakmalralvaneakmakmalvakmakmakmakmanSakmakmahjahjahjahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl +ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlamaamaamaamaanfanganhamaahlahlalWaniacZankalWanlamaahlahlahjahjahlahlahlahlahlahlahlahlahlahjahjahlahlaiCanmanmanmaiCahlahjadcaebabUahyahianpanpanqanranqanpanpagZantantantanuantantanvanwanxagXamuagUamuamuamuamuagRamuamuamuamuamuahtahsahqahmanEanEamsahzanHanIahGabIahlahlahlahlahlahlahlahlahlahlahlahlahlahjahlahlahlahlahlamwanKafDanMamwanNanNanNanNanNanOanPanQakmalralvaneakmakmalvakmakmakmakmanSakmakmahjahjahjahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahjahlahlahlahlahlahjamaasianUanVanlanWanlamaanXanYalWalWanZaoaalWanlamaamaanXaobaocamaamaahlahjahlahlahlahlahlahlahjahjahlaodaoeaoeaoeaofahlahjahyaKUajNahyaIUanpaomaonaonaonaooanpaJaatXaJcaJeaJdaotantalHalKaouaGQaIPaoxaoxaoxaoxaoxaISaITaoxaoxaoxaoxaoxaIOaIJaIKaIGaIHaIEaIFabIaoIaoJabIahjaIyaANaANaIhaANaANaIgahlahlahlahlahlahjaoOaoPaoOahlanNamwamwaoQaoRamwaoSalvalvalvakmarualvarwakmalvalvalvaoWakmalvakmdtNdtLakmalvaoYakmahlahlahlahlahlahlahlahlaaeahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl -ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlaoZapaapbahlapcapdapeahlahjapfapgapfahlahlahjamaaphapiapjaJZapkapVamaapmanlapnapoasGanlanlanlanlanlanlanlanlanlamaahlappahlahlahlahlahlahlahjahlahlahlahlahlahlahlahlahjahyaKUaSvahyaJDanpapuapvapwapxapyanpapsantapzapAaJGapCapDalHalKalMaGQaguaqHaqHaqHaqHaqHaJHanyaqHaqHaqHaqHaqHaqHaqHaqHapQaJsaJAaJgaJgaJgaJgaJgaJfayNapSapSapSapSapSayNapQahlahlahlahlahjapTalvapUahlanNasjapWapXapYalvalvalvakmalvakmapZalvalvakmalvaqaaqbaqcanSalvakmdtPasDakmalvasnakmahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl -ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlaqfaqgbahaqgaqfaqibcpaqiaqfahjaqkanlaqlahlahlamaamaamaamaamaaLIaHgaEkaEkaLKarqaLOarqaLiaLfaLdasNamaanlamaamaamaanlamaahlahjahlahlahlahlahlahlahjahlahjahjahjahjaogaogaogaogaogaogaogaogaKDanpaquapvaqvaqwaqxanpapsaLcaKVaKFaKEaKGaqBalHalKaXOaGQaguaqHaFsaFtaKxapGaKyaKzaqHaKraqLaKsaqHaqNaKhaKiapQaKqaKlaKmaVOaKfaKaaKbaKgayNapSapSapSapSapSayNapQahjahjahjahjaqYaqZaoParaarbanNasLalvardalvandalvakmakmarfakmakmargakmakmaqcasEarialvakmalvarjarjarjarjarjarjarjarjarjbRJbRJbRJbRJdsibRJbRJahjahjahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl -ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlarkaqgarlaqgarkaqiarmaqiarkamaarnapgaroaobanYamaaNaaFdaFdaFdaFdaFdaFdaNeaNiamaamaamaamaamablMamaamaanlartamaatzanlamaamaamaahlahlahlahlahlahjahjahjahjahjahlahlaogarvauSaogarxaryarzaogaKDanpaMxaMkaMeaMeaMdarBaMIaMHarGarGaMGarGaMAalHalKarLaGQaguaqHaFHaMJaFBaMYaFDaMWaqHaMVarUaMKaqHarUaLVaLXapQaLYaLZawGaLPaLPaLPaELaLRaLUapSapSapSapSapSaMbapQapQapQahlahlashalvalvalvaoSanNauMaqcardalvatOaskaslanSalvalvalvalvasmalvalvasEasoalvaspalvarjasqbcDassarjastasuasvarjahjahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl +ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlaoZapaapbahlapcapdapeahlahjapfapgapfahlahlahjamaaphapiapjarqapkapVamaapmanlapnapoasGanlanlanlanlanlanlanlanlanlamaahlappahlahlahlahlahlahlahjahlahlahlahlahlahlahlahlahjahyaKUaSvahyaJDanpapuapvapwapxapyanpapsantapzapAaJGapCapDalHalKalMaGQaguaqHaqHaqHaqHaqHaJHanyaqHaqHaqHaqHaqHaqHaqHaqHapQaJsaJAaJgaJgaJgaJgaJgaJfayNapSapSapSapSapSayNapQahlahlahlahlahjapTalvapUahlanNasjapWapXapYalvalvalvakmalvakmapZalvalvakmalvaqaaqbaqcanSalvakmdtPasDakmalvasnakmahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl +ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlaqfaqgbahaqgaqfaqibcpaqiaqfahjaqkanlaqlahlahlamaamaamaamaamaaLIaFgaGxaGxaLdaJZaLfaJZaLKaLiaLOasNamaanlamaamaamaanlamaahlahjahlahlahlahlahlahlahjahlahjahjahjahjaogaogaogaogaogaogaogaogaKDanpaquapvaqvaqwaqxanpapsaLcaKVaKFaKEaKGaqBalHalKaXOaGQaguaqHaFsaFtaKxapGaKyaKzaqHaKraqLaKsaqHaqNaKhaKiapQaKqaKlaKmaVOaKfaKaaKbaKgayNapSapSapSapSapSayNapQahjahjahjahjaqYaqZaoParaarbanNasLalvardalvandalvakmakmarfakmakmargakmakmaqcasEarialvakmalvarjarjarjarjarjarjarjarjarjbRJbRJbRJbRJdsibRJbRJahjahjahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl +ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlarkaqgarlaqgarkaqiarmaqiarkamaarnapgaroaobanYamaaNaaFdaFdaFdaFdaFdaFdaNeaNiamaamaamaamaamaaTIamaamaanlartamaatzanlamaamaamaahlahlahlahlahlahjahjahjahjahjahlahlaogarvauSaogarxaryarzaogaKDanpaMxaMkaMeaMeaMdarBaMIaMHarGarGaMGarGaMAalHalKarLaGQaguaqHaFHaMJaFBaMYaFDaMWaqHaMVarUaMKaqHarUaLVaLXapQaLYaLZawGaLPaLPaLPaELaLRaLUapSapSapSapSapSaMbapQapQapQahlahlashalvalvalvaoSanNauMaqcardalvatOaskaslanSalvalvalvalvasmalvalvasEasoalvaspalvarjasqbcDassarjastasuasvarjahjahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlarkaswasxasyarkaszasAasBarkasCanlanlbknbknartasFaEYaGvaEkaEkaEkaEkaEkaEkaEfaEgcUbdsiakjamaavUaplasManlasFamaaoVanlanlanlapfahlahlahlahlahlahjahlahlahjahlaogaogaogapqapqaogapqapqapqaogayganpaEDaEGaEFaEIaEHatTaExaEzantasUaECasWantaEvalKalMaGQaguaqHaqHaqHaqHaqHaEsaEtaqHaEuasYaqDaqHaqHaDNaqDapQataaDMcECaDWaDWaDTaDUaDQaDSapSapSapSapSapSaDLaDKaDJatkahlahlatlalvalvatmalvanNatnalvatoatpatpatpatpatqatpatralvalvalvalvalvalvalvalvakmaskarjatsattattarjbbmavFbgharjahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl -ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlarkatvatwatxarkatyatwatxarkapVbkrbkoaqoaqoaqobkDbksaEZatDatEatFatGatHamaaEYaEZdsiasIcUbatJaFgatLamaamaamaamaamaamaamaanlatMahjahlahlahlahlahjahlahjdsidsiatNaqeatNapqapqaogaogatPaogaogayganpanpanpaFkanpanpanpaFiaFhantantantantantaFralKauaaGQaguaqHaFsaFtaFnapGaFlaFmaFpaFqaujaFoaKTaulaEJaEKaunarXaDMauoauqauqauraELautauuapSapSapSapSapSauuauvauwauxahjahjakmalvalvakmakmanNanNanNanNanNanNanNanNanNakmauyauzakmakmakmakmakmakmakmaDFaBaaEPaEOaENaEMauBaEQatsauDarjahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl -ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlaaeahlahlahlahlahlaqfarkauEauFaqfarkauGauFaqfamaauHamaamaamaamaamaaEYaEZanlauIaavanlanlamaaEYaEZcUZahjcUZamaaGxatLamaarhauNamaaoVapVaGvaEraEkaGlaGsaGpaGpaGpaGpaGraGpaGpaGoaGlaGnaGlaGlaGjaGlaGmaGjaGkaGiaGhauWauWauWauWauWauWauWaFSaFWauWauWauWauWaFRaFJaFOaFOaFQaFGaqHaFHaFIaFBaFCaFDaFEavhaFzavjaFAavlaviaFwaFxavmavnaFyauoauqauqauraELavpavqapSapSapSapSapSavqavrauwauxahlahlakmaqralvalvarcakmaqsaneavvavwandakmatnandakmavzalvakmavAalvakmaqaaqbavBaFuatpatpavCavDavEbjOaFvavHavIarjbRJbRJdsidsibRJbRJbRJbRJahjahjahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl +ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlarkatvatwatxarkatyatwatxarkapVbkrbkoaqoaqoaqobkDbksaEZatDatEatFatGatHamaaEYaEZdsiasIcUbatJbjzatLamaamaamaamaamaamaamaanlatMahjahlahlahlahlahjahlahjdsidsiatNaqeatNapqapqaogaogatPaogaogayganpanpanpaFkanpanpanpaFiaFhantantantantantaFralKauaaGQaguaqHaFsaFtaFnapGaFlaFmaFpaFqaujaFoaKTaulaEJaEKaunarXaDMauoauqauqauraELautauuapSapSapSapSapSauuauvauwauxahjahjakmalvalvakmakmanNanNanNanNanNanNanNanNanNakmauyauzakmakmakmakmakmakmakmaDFaBaaEPaEOaENaEMauBaEQatsauDarjahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl +ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlaaeahlahlahlahlahlaqfarkauEauFaqfarkauGauFaqfamaauHamaamaamaamaamaaEYaEZanlauIaavanlanlamaaEYaEZcUZahjcUZamaapiatLamaarhauNamaaoVapVaGvaEraEkaGlaGsaGpaGpaGpaGpaGraGpaGpaGoaGlaGnaGlaGlaGjaGlaGmaGjaGkaGiaGhauWauWauWauWauWauWauWaFSaFWauWauWauWauWaFRaFJaFOaFOaFQaFGaqHaFHaFIaFBaFCaFDaFEavhaFzavjaFAavlaviaFwaFxavmavnaFyauoauqauqauraELavpavqapSapSapSapSapSavqavrauwauxahlahlakmaqralvalvarcakmaqsaneavvavwandakmatnandakmavzalvakmavAalvakmaqaaqbavBaFuatpatpavCavDavEbjOaFvavHavIarjbRJbRJdsidsibRJbRJbRJbRJahjahjahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlavJavKavKavKavLavKavKavKavMavNavOavMavMavMavPamaaHhaEZanlauJavSanlavTamaaEYaHgaEkaEkaEkaEkaEkaEkaEganlavSavVanlanlaopaHLaHFaHEaHIaHIaHIaHRaHIaHTaHIaHIaHPaHQaHOaHMaHMaHMaHMaHMaHMaHNaHlaHkaHiaHiaHiaHiaHiaHiaHiaHjaHiaGHaGHaGHaGHaGHaHuaHCaHtawkaHsaqHaqHaqHaqHaqHaHqaHraHoaHpaHmaHnaGFaGGaGIaGJawuawvaGXaGYaGZaGZaHaaHbaHcaHdapSapSapSapSapSaHeascaHfawHahlahlakmalvalvalvalvalvalvavBatpatpatpatpatpatpatpawIalvalvalvalvaspalvalvardaGAayOaGzaGDaGCaGBattattattawKarjahjahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahjawLawMawNawMawOawNawNawPawMawNawQawRawSawSawTamaaHhaEZawUanlanlawVawWamaaXzaFdaFdaFdaFdaFdaFdaWMaEZavuanlamaasCasCaWPapsaogaxbaxcaxdaxdaWRaxdaWQaxdaxdaxeaxbaGyaxgaxgaxgaxgaxgaxgaxgaopaWSawfaxiaWUaWTaXfaWVaXgaxoaXqaXpaXraxsaxtawhaXsalKaXtabIadYaqHaFsaFtaXuapGaXvaXwaXxaXxaXxaXyaXRaYaaXKaXQaunaxEaXJaxGaxHaxIaxJaDUaxLaXAapSapSapSapSapSaYiapQapQapQakmakmakmandakmakmanSakmakmardakmakmaxPakmakmanSakmardaqrakmakmaxRakmalvaqrardaGAaYnarjaxTavDaYmaxVaYjavDaxXarjahjahlahjahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlarkavJaxYavJaxZawNawNcFUavJaxYavJaybaycawOaydamaaHhaHgaEmaEkaEkaEgayeayeakmaspakmayeayeayeayeaYFaYGaGnaGlaGlaGlaGlaYSapsarvaxbahlahjahlaYrahlaIeahlahjahlaxbaGyaxgayhayiayjaykaylaxgaopaZEaZzaZyaZPaZOaZNaZMaZRaZRaZQaywaywaywayxawhaxualKaxvabIadYaqHaFHaFBaFBaZraFDaYXaZxayBayCayDayEayFayFayGayFapQbasbaGbacbajbakbarapQaZUapSapSapSapSapSaZUapQasnalvayOayPakmakmakmasnalvakmasnardakmaxaalvakmavyalvakmayUayVakmavxalvakmanOanQardbaPbaNarjayXavDbaIayZbaIavDcbBarjahjahjahjahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl @@ -9306,7 +9314,7 @@ ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlah ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlaJkaJlaBjaCEaCFaCFaCFaJmaCFaCFaJnaCFaCFaCLaJoawLaxZawNaJpaJqaJqaJqaJqaJqaJqaJqaJrawNayeapraubaprayeayeaBqaJvaJwaAkaAkaAkaAkaJuaJxaJyaAlaJzaJBaJBaJCatWaJEaJBaJBaJFaxbaBraxgatZaxgaJIaJJaJKaxgazGavWawhawhawhaJLaJMaJLawhawhawhaJOaJPaJQaJRaIuaIuaIuaIuaIuaJSaJTaJPaJUaTkaJVaAoaJWayFayFayFayFayFayFayFayFayFayFaFjatQatBatAatCaPuatjaKeaIIatuaMZaKjatVaKjaINaKkatUaINatSaINaKnaKoaKpatRasXasXasXasVasTaMaaIRapBaDOasSaIVaKAaIXaIYaKBaDOaKCasRathatiatfatgatdateaVlatcasZatbaKIaKJaKKahlahjahlahlahlahlahjahlahjahlaGbaGbaGbaGbaGbaGbaGbaGbaGbahlahlahjahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlaJkaBjaBkaBjaBjaKLaBmaBjaBjaBkaJlaKMaqfaKNawNavJaKOaKOaKPaKOaKQarkaKRaKSawNaGgaMzaKYaKYaKXaKYaEpaKZaKYaKYaKYaKYaKYaKYaKYaLaaLbawCawDaLeaLeawBaLgaLeaLeaLeaLhaEnaLjawBaLeaLeaLeaLkaLlaLmaIuaLnaLoaIvaIwaIwaIwaItaIuaIuaLpaIuaLqaLraLsaLtaLuaLvaLwaLxaIuaIuaLybzVaEqaEWaLAaLCaLDaLEaLFaIuaLGaIuaAKaLHawraJYatQawpawoawnawmaqFdrhaIIawqaLLawjaLMaLNaINawlatUaLQaqAaINaIRaLSbgAawiaPSaLWawyawxawzaDCaIRapBaDOawAawtawsawwaMcaMfaDOaMgaMhaDRaHGaHGaHGaHGaDRaMiaMjasZatbaDVaDVaDVaMlaMlaMlaMmaMnaMoahjahlahjaGbaGbaGbaGbaGbaGbaGbaGbaGbaGbaGbahlahjahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlavJaxYaMpaAbaAbaAbaAbaMqaxYavJaAdaqfaAeaMrazdaMsaMtaMuaMuaMvarkaMwaKSawgaMyaMzaweaMBaMCaMDaMEaMFaKYaKYaKYaKYaKYaKYaKYaLaaKYaMzaKYaKYaKYaDgaDfaCxaCxaCxaCxaDlaCxaEhaCxaCxaDkaMLaLlaIuaIuaIuaIuaIuaIuaIuaIuaIuaIuaIuaLpaIuaMMaMNaMOaMPaMQaMRaMSaMTaIuaIuaLyaIuaIuaIuaIuaIuaIuaIuaIuaIuaMUaIuaAKaJYaJYaJYavGavfaveavkavgavoaQSaIIavtaMZavQaIIaIIaINaNbatUaNcaqAaNdaINaIRaIRaIRaIRaIRaIRavZaNgaNfaIRapBaDOaNhaHwavYavXaHwaNjaDOaDRaDRaDRaDRaDRaDRaNkaDRaFXaFXawaatbaNlaNmaDVaNnaNoafJaNqaNraNsahjahlahjaGbaGbaGbaGbaGbaGbaGbaGbaGbaGbaGbahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl -ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahjahjazbaqfazdatwazdaNtaNuaNvaNwazdatwaNxaNyaqfaxZawNazdaNzaNAaMuaMuaMvarkaNBaKSawNaMyaMzaKYaNDaNEaNEaNEaNFaNGaNHaNEaNIaNEaNEaNEaNJaNKaqSaNEaNEaNEaqQaqPatKasaasaaqRaqOaqMaqKaNUaKYanLaMLaLlaIuaNVaIuaNWaNWaNWaNWaNWaNWaNWaNWaNXaNWaNWaNWaNWaNWaNWaNWaNWaNWaNWaNWaNYaNWaNWaNWaNWaNWaNWaNWaNWaIuaIuaIuaAKaNZaNZaNZaNZaNZaqIaqGaPuaqFaqdaIIaqEaOeaqyaIIaOfaINaqtaqpaqqaqAaOjaINaIRaOkaqzaOmaOnaOmaqnaOoaOpaIRapBaDOaOqaOqapHapFaOtaOtaOuaDOaOvaOwaOxaDVaOyaOzaOAaFXaFXaqjaqmaDVaOCaDVaODaqhaOFaOFaOGaOHaMnaMnaOIaGbaGbaGbaGbaGbaGbaGbaGbaGbaGbaGbahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl +ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahjahjazbaqfazdatwazdaNtaNuaNvaNwazdatwaNxaNyaqfaxZawNazdaNzaNAaMuaMuaMvarkaNBaKSawNaMyaMzaKYaNDaNEaNEaNEaNFaNGaNHaNEaNIaNEaNEaNEaNJaNEaqSaNEaNEaNEaqQaqPatKasaasaaqRaqOaqMaqKaNUaKYanLaMLaLlaIuaNVaIuaNWaNWaNWaNWaNWaNWaNWaNWaNXaNWaNWaNWaNWaNWaNWaNWaNWaNWaNWaNWaNYaNWaNWaNWaNWaNWaNWaNWaNWaIuaIuaIuaAKaNZaNZaNZaNZaNZaqIaqGaPuaqFaqdaIIaqEaOeaqyaIIaOfaINaqtaqpaqqaqAaOjaINaIRaOkaqzaOmaOnaOmaqnaOoaOpaIRapBaDOaOqaOqapHapFaOtaOtaOuaDOaOvaOwaOxaDVaOyaOzaOAaFXaFXaqjaqmaDVaOCaDVaODaqhaOFaOFaOGaOHaMnaMnaOIaGbaGbaGbaGbaGbaGbaGbaGbaGbaGbaGbahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlarkawLaxYawLaxZawNawNayaawLaxYawLaOJaOKaOLawNawLaOMaOMaKPaOMaKQarkaONaKSawNaOOaOOaOOaOQaOOaORaORaORaORaORaOSaOTaORaOUaORaORaORaOYaOWaOXaOWaqJapRaPaaKYaKYaPbapPaPdanjaKZaKYanLaPeaPeaIuaIuaIvaPfaJPaJPaPgaPgaPgaPgaPhaPiaPjaPkaPlaPmaPnaPmaPoaPmaPpaPkaPqaPiaPraPgaPgaPgaPgaJPaJPaPsaItaIuaIuaIIaoXaMXaKcaKcaKcaKcaKcaPuaQUaKcaIIapKaPzapNaINaINaINapLapMaINaINaINaINaIRaOmapOaPEaPEaPEapEaPFaOmaIRapBaDOaPHaHwapHapFaHwaHwaPIaDOaPJaPKaPLaDVaFXaPMaPNaPOaPOapIapJaPQaPRaDVafsaSEaOFaOEaOFaPWaPXaPXaPWaGbaGbaGbaGbaGbaGbaGbaGbaGbaGbaGbahlahlaaeahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlaGcahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahjahjavJaPZawNavKaOLawNawNaQaavKawNaPZaOLawNawNawNaQbaQcaQcaQcaQcaQcaQcaQcaQdawNaOOanTaOOaRDaORasQaQnaQkaQlaQmaQnaQoaQpbKEaQraQsaQtaOYaQvaQwaQxaqJaxfaPaaPaaQzaPaaPaaPeazEaQBaQCaxyaPeaPeaQDaIuaIvaQEahlahlahlahlahlahlahlaPiaQFaQGaQHaQIaQJaQKaQLaQMaQNaQOaQPaPiahlahlahlahlahlahlahlaQQaItaIuaQRaIIaPtaKcaQTaKcaKcaKcbKcaPuaQUaLJaQVaPuaQWasbaINaQYaQZasfasdaseasgaReaRfaINaOmasraRhaRhaRhasKaRiaOmaIRasOaDOaRkaRkapHapFaRlaRlaRmaDOaDOaRnaDOaDVaRoaOzaOAaRpaRpaqjaqmaDVaDVaDVaMmasHasJasPaMnaMnaMnaMnaRsaGbaGbaGbaGbaGbaGbaGbaGbaGbaGbaGbahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlaaeahlahlahlahlahlahlawLaRtaRuaRuaRuaRuaRuaRuaRuaRuaRtaRuaRvawNawNaRwawNaRzawcawNaRyawbawNaRAarYaOOaRCaOOaRDaORaREaQnawdaQnaQnaQnaQoaRFaQnaQnaQnaQtaOYaRGaQwaQwaqJaxfaPaaRHaRIaRIarZaPeawZaRLaRMawYaROaRPaIuaIuaIvaQEahlahlahlahlaPiaPiaPiaPiaSOaRRaRSaRTaRUaRVaRWaRXaRYaRZaSaaPiaPiaPiaPiahlahlahlahlaQQaItaIuaIuaSbaKcaqTaqVaqUaqXaqWarparearsarrarCarAarDarEatYarFarFarHarIarJarJarKarFarMarNarOarParQarSarRaRiaOmaIRapBaDOaHwaHwapHapFaHwaHwaHwaolaSwaHwaSxaDVaKHbDuaSzaRpaRparTarVaSBaDVaSCaSDaSEaOFarWaOFaSFaPXaPXaSGaGbaGbaGbaGbaGbaGbaGbaGbaGbaGbaGbahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl @@ -9314,7 +9322,7 @@ ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlah ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahjahlaUcaUcaUcaUcaUcaUcaUcaUcaUcaUcaUcaUcaUdazeawOaUeaSMaWZaZSaZIazxaZIaZTaWZaZIaSMaRCaRCazFbfBaORaUsaQnaYBaYEaZoaUtaUuaSSaQnaQnaQnaQtaOYaOYaOYaOYaqJaxfaPaaPaaPaaPaaPaaPeazwaRMaRMaRMaRMaTjaIuaIuaIvaIwaIwaUBaUCaUDaPiazaayWayYazmazqazmazoayKayJayIayHayQayMayHayLayTaySaPiaURaUCaUSaUTaIwaItaIuaIuaSbaKcaPuaQTaKcaUUaKcaQTaKcaQUaLJaUVaKcaKcaKcaUWaSkazYaUXaUYaUZazVaTJaVbaINaVcaTMaVdaRhbadaRhaSuaVeaIRazUaDOaDOaDOapHapFaVgaVhaHwaViaVjaKAazQaDVaFXazNaSzaRpaRparTazMazLaDVazKaOFaSEazJazHaVwaNsahlahjahjaGbaGbaGbaGbaGbaGbaGbaGbaGbaGbaGbahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahjaUcaUcaUcaUcaUcaUcaUcaUcaUcaUcaUcaUcaVxaVyaVzaxZaVAbjabjjbjhbjlbjkbjXbjraWZaZIaSMaDpaDqaxkaOOaORaKdbhlbhfbhkbhfbhjbhLbhjbhjbhjbhrbhJaORbhnbiRbiQbiGbiFaVWaVXaVYaOOaCyaPebiWaWbaWcaWdaWdaWeaIuaIuaIuaIuaIuaWfaWgaWhaWiaCPaCSaCUaCzaCAaCBaCOaCZaCYaDbaDaaCWaCVaCXaCUaDdaDcaWzaWAaWBaWCaWDaWEaWFaIuaIuaIIdtFaScaSgaSeaKcaSfaSdaSeaQUaLJaTBaTBaWGaWHaINaSkaSkaSkaWIaSkaSkaTJaWKaINaOmaTMaRhaRhbadaRhaTPaOmaIRaDuaDvaWNaWOaDraDtaDsaDsaDsaDsaDsaDsaDEaDHaVoaVoaVoaVoaVoaDxaDyaDzaDAaDBaVtaVvaDDaOFaWWaNsahjahjahlaGbaGbaGbaGbaGbaGbaGbaGbaGbaGbaGbahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahjaUcaUcaUcaUcaUcaUcaUcaUcaUcaUcaUcaUcaWXatwaWXawNawNaSMberbemaXaaXaaXabfAbfjaXcaSMaXdaRCaxkaXhaXhaXhbcTbchaXhbcibcSbehbekbelbelbcVbcWaORbdIbbKbaObcebcabbZbbZaBfaBeaBeaXBaXBaXBaXBaXBaXCaPeaIuaIuaXDaXEaXFaXGaXHaXIaPiaBKaBNaXLdnJaBMbnGbnGaxqauCaxwaBJbrHaBIdnFaXLaBLaBKaPiaXSaXHaXTaXUaXEaXVaIuaIuaSbaKcaXWaTAaKcaKcaKcaTAaKcaQUaKcaLJaLJaKcaKcaXXaXYaXZaSkaSkaSkaSkaYbaYcaINaYdaYeaRhaYfbheaYgaYeaYhaIRaCvaYkaYkaYlaOraCtaCnbfUaCuaCnaCnaCnaCraCjaCmaBVaBVaBVaBVaBVaCbaBOaBQaCibbQaCgaChaOFaYoaNsahlahjahjaGbaGbaGbaGbaGbaGbaGbaGbaGbaGbaGbahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl -ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahjaUcaUcaUcaUcaUcaUcaUcaUcaUcaUcaUcaUcaYpaYqaVzaxZawNaxlaWZaTfaXaaXaaXaaSNaYsaWZaSMaYtaSjaxkaXhaYvaYwaUfaVEaXhaUnaYAaTFaORaYCaYDaNNaOZaORaTIaNLaYHaYHaYHaYHaYIaYHaYHaYJaYKaYKaYKaYLaYKaYMaYNaYOaYOaYPaYQaYQaYQaYQaYQaYQaxmaxnaYRaxpaxqaYVbkMbkMbrIbambkMaYVaxwaxxaYWaxrbkQaYWaYWaYWaYWaYWaYWaYZaYOaYOaIIaZaaZbaZcaZdaKcaKcaKcaZeaZfaZgaKcaZhaZiaZjaINaINaINaZkaZlaZlaZlaINaINaINaZmaRhaRhaZnaVPaZpaZqaNfaIRaxjaYkaZsaDOaZtcesaZvaVQaxzaZuaTTaVhbbsaDVaxAaFXaZAaRpaRpaZAaFXaZBaDVaZCaZDaxBarWaOFaOGaZFaMnaMnaOIaGbaGbaGbaGbaGbaGbaGbaGbaGbaGbaGbahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl +ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahjaUcaUcaUcaUcaUcaUcaUcaUcaUcaUcaUcaUcaYpaYqaVzaxZawNaxlaWZaTfaXaaXaaXaaSNaYsaWZaSMaYtaSjaxkaXhaYvaYwaUfaVEaXhaUnaYAaTFaORaYCaYDaNNaOZaORaQfaNLaYHaYHaYHaYHaYIaYHaYHaYJaYKaYKaYKaYLaYKaYMaYNaYOaYOaYPaYQaYQaYQaYQaYQaYQaxmaxnaYRaxpaxqaYVbkMbkMbrIbambkMaYVaxwaxxaYWaxrbkQaYWaYWaYWaYWaYWaYWaYZaYOaYOaIIaZaaZbaZcaZdaKcaKcaKcaZeaZfaZgaKcaZhaZiaZjaINaINaINaZkaZlaZlaZlaINaINaINaZmaRhaRhaZnaVPaZpaZqaNfaIRaxjaYkaZsaDOaZtcesaZvaVQaxzaZuaTTaVhbbsaDVaxAaFXaZAaRpaRpaZAaFXaZBaDVaZCaZDaxBarWaOFaOGaZFaMnaMnaOIaGbaGbaGbaGbaGbaGbaGbaGbaGbaGbaGbahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahjahlaUcaUcaUcaUcaUcaUcaUcaUcaUcaUcaUcaUcawLaZGaOLaZHaSMaZIaFfaZIaWZaZJaFaaZKaZIaSMaZLaEXawEaXhaXhaXhaQjaRbaXhaRxbNPaNMaORaYCaYDaNNaOZaORaQfaNLaYHaZVaZWaZWaZWaZXaYHaZYaZZbaababaYNaYNaYNaYNaIuaIuaHWaIAaLzaLBaJNaKWaGRaHSawXbalbqybNHbkMbkMbnIaGqbnIbkMbkMbMVbhzbaqawJawFbatbaubavbawbaxaYWaXVaIuaIuaIIaIIaIIaIIaIIbayaSbbaybazbaAaIIaIIaIIaIIaIIbaBbaCbaCbaCbaCbaCbaCbaDbaCbaBaNfbaEbaEbaFaRKaYkaYkaYkbaBaxjaYkaZsaDOaDOaDOaZwaRNaZwaDOaZwaDOaDOaDVaDVbaJbaKbaKbaKbaKbaLaDVaDVbaMaOFaxharWaOFaOFaSGaPXaPXaSGaGbaGbaGbaGbaGbaGbaGbaGbaGbaGbaGbahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahjahjahjahjaqfaqfaSHaSIaSIaSIaSIaSIaSIaSJaqfaqfarkaRzawNaSMaSMaYxaSMaSMaSMaXoaSMaSMaSMbaQaYuaxWaXhcqfbaSaQjbaTaXhbaUbaVbaUaORaYCaYDaNNaOZaORaQfaNLaYHaZWbaXbaXaZWbaXaYHaZYbaYbaZbaZbbabbbbbcaYNbbdaIuaXDbcxbbgbaibbibbjbbjaymaynbblbqyaHVbkMbkMbnIbaobnIbkMbkMbczbhzbbtayqaypaysayrbbxbaxbbyaYWaXVbbzaIubdpbbBaYkaYkaYkaYkaYkaYkaYkaYkbbCaYkaYkaYkaYkbbDaYkaYkaYkaYkaYkaYkaYkaYkbbBaYkaYkaYkaYkaRKaYkaYkaYkbbEaytaYkaYkayuaYkaYkaYkaYzaYkaYkaYkaYkaYkbbDayvaYkaYkaYkaYkaYkaYkbdSayyaSDaOFayzayAaPVbbTbbUaMnaMnbbVaGbaGbaGbaGbaGbaGbaGbaGbaGbaGbaGbahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlavJavNavMavMavMavMavMavMavMavMavNavMbbWaXbawNbbXbbYaXebbZbbZbbZaWaaVTbcbaOOaoTaWYaxCaXhaXhaXhaXkbcfaXhaORaORaORaORaYCaYDaXiaXjaORaQfaNLaYHaZWbcjaZWbaXbckaYHaZYbclbaZbaZbaZbcmbcnaYNbcoaIuaXDbbpbcqbaibcsbctaxNaxOaxMbcwbqybbnbnIbkMbmiaYUbmibkMbnIbbfbhzbcAbbuaxKaxFaxDbbxbaxbaxaYWaHUaIuaIubdpbbBaYkaYkaYkaYkaYkaYkaYkaYkbcEaYkaYkaYkaYkaYkaYkbcFaXlaXlaXlaXmaYkaYkbbBaYkaYkaYkaYkaRKaYkaYkaxSaWNaxUaWNaWNaWNaWNaWNaWNaXnaWNaWNaWNaWNaWNaWNaWNaWNaWNaWNaWNaWNbcLbcMbcNbcObcOaxQarWaOFaOFbcQaPXaPXbcQaGbaGbaGbaGbaGbaGbaGbaGbaGbaGbaGbahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl @@ -9339,36 +9347,36 @@ ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlah ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahjahjahjahjahjahjahjahjahjahjahjahjahjahjahjahjahjahjbwSbwSbCmbCnbCnbCobwSbwSbCpbCqbENbEMbvwbvwbvwbvwbvwbvwbkHbCvaTkaTkaTkaTkbCwbCwbCwbCwbCwbCwbCwbCwbCwbCwbkGbkFbkEbCAbCAbCAbCAbCAbCCbCAbCAbqxbCAbCDbCEbCDaIzaJVbCGbuCbkSbkRbCJbkVblqbuCbCMblrblbbkXblmbldbCPbCQbCRbCSbuDbkIbkJbMzbMzbggbkObkPbkLbkNbCWbCVblWbBFbXKccNbDcbDcbDcbDcbDcbDcbDcbDcbDcbDdbDdbDdbDdbDdbDdblUblxblzbvdbvdbvdbvdbvdbvdbvdbxYbpXbpXbpXbpXbpXbpXbpXbpXbNhbLEaDGaCqbgZbgZahjahjahjdsidsidsidsidsidsidsidsiahjahjahlahlahlahlahlahlahlahlahlahlahlahjahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlaaeahlahjahlahlahlahlahlahlahlahlahlahlahlahlahlahjahlahlahlbDjahlahlahlahjahlahlbwWbDkbDlbHjbGObGEbGlbIdbHvbHnbHkbIhbIvahlahlahjahlbCwcjKbDvbDwbDxbDybmnbmobmpbmqbmHbmFbmIbCAbmKbmJbmLbFhbmvbFhbFhbIIbmCbmxbmEbCDbCDbCDbCDbuCbmMbxobyTbxobnybuCbDVbDTbnvbmXbmPbmObmPbmPbnFbDYbDZbnEbnCbnCbnCbnJbnHbqMbEcbEdbEebEfbEgbBFbXKccNbDcbEhbEhbEhbEibEhbEhbEhbDcbEjbEjbElbEjbEjbDdbnLbnKbepaKtbEobEpbEqbErbEsbEtbEubEvbEwbExbEyaQebnMciIciIciObnPbEobEobgZahjahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahjahjahjahjahjahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahjahlbEEbEFbEGbEFbEHahlahjahlbwWbwWbEIbylbQcbQbbQtbQebPGbPGbPPbPJbPzbppahjbEPbEQbERbESbETbDBbEUbDBbEVbDBbDBbDBbCwbQLbQMbtxbCAbtwbtubFebFfbFgbFhbFibqxbCAbFjbFkbtDbFmbuJbFobFpbuObxobFrbxoblrbuxbuEbuzbuFbuCbFvbuIbxobxobusbFzbnTbnTbnTbnTbnTbudbuobLhbupburbFCbCVbucbBFbXKccNbDcbEhbEhbEhbEhbEhbEhbEhbDcbFHbubbFJbFKbFLbDdbtUbtZbuabtXbtYbHqbtKbFQbFQbFQbFQbFRbTubFTbEybgZbLFbtIbQxbQxbtJbFVbFWahjahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahjahjbFXbFYbFXahjahjahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl -ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahjahlbFZbGabGbbGabFZbGcbGdbGebwWbGfbylbGgbQCbQvbGibwWbCvbGjbCvbCvboEbqNahlbGmbGnbGobGpbDBbDBbGqbDBdnRbGsbGtbDBbCwbQLbuQbuRbCAbuPbGybGzbGAbGBbFhbuUbqxbsfbuScdQbuTcdQbwebGKbuCbwgbmPbwfbmPbvVbsUbvSbmObvWbuCbGRbxobxobxobGSbGTbnTbGUbwjbwkbwibggbwhbqMbGYbCVbCVbGZbHabHbccPbvcbDcbEhbEhbEhbEhbEhbEhbEhbDcbHebuZbuYbvubvxbvAbvHbvIbscbvRbHobFQbvebFQbFQbFQbFQbFQbFQbFQbEybuXbuWbuVbHwbHxbHybHzbHAahjahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahjahjbHBbFXbHCbFXbHBahjahjahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl -ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlaaeahlahlahlahlahjahlbEGbHDbHEbHDbEGbHFbHGbHHbwWbHIbylbHJbylbylbGibwWbHKbHLbELbCvboEboFahjbGmbHNbHObHPbHQbHRbHQbHQbHSbHTbHQbHQbHUbqubeLbHXbCAbCBbCAbCAbCAbCAbHYbPxbPmbHZbIabIbbIcbrObIcbIfbuCbrMbrLbIibrNbrGbuCbrKbrJbrpbuCbIobrEbIqbrgbIsbItbnTbgdbrbbrcbqWbqYbrabIxbIybIzbCVbCVbIAbBFbsfccNbDcbDcbICbEhbEhbIDbICbDcbDcbIEbIFbIGbsebIHbDdbsdbhibscbsabsbbrVbrVbrWbrXbrUbrVbrPbrQbqGbqDbqIbqHbqVbPybIWbIXbIYbIZahjahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahjahjbJabJbbJcbJdbJebJbbJaahjahjahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl +ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahjahlbFZbGabGbbGabFZbGcbGdbGebwWbGfbylbGgbQCbQvbGibwWbCvbGjbCvbCvboEbqNahlbGmbGnbGobGpbDBbDBbGqbDBdnRbGsbGtbDBbCwbQLbuQbuRbCAbuPbGybGzbGAbGBbFhbuUbqxbXKbuScdQbuTcdQbwebGKbuCbwgbmPbwfbmPbvVbsUbvSbmObvWbuCbGRbxobxobxobGSbGTbnTbGUbwjbwkbwibggbwhbqMbGYbCVbCVbGZbHabHbccPbvcbDcbEhbEhbEhbEhbEhbEhbEhbDcbHebuZbuYbvubvxbvAbvHbvIbscbvRbHobFQbvebFQbFQbFQbFQbFQbFQbFQbEybuXbuWbuVbHwbHxbHybHzbHAahjahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahjahjbHBbFXbHCbFXbHBahjahjahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl +ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlaaeahlahlahlahlahjahlbEGbHDbHEbHDbEGbHFbHGbHHbwWbHIbylbHJbylbylbGibwWbHKbHLbELbCvboEboFahjbGmbHNbHObHPbHQbHRbHQbHQbHSbHTbHQbHQbHUbqubeLbHXbCAbCBbCAbCAbCAbCAbHYbPxbPmbHZbIabIbbIcbrObIcbIfbuCbrMbrLbIibrNbrGbuCbrKbrJbrpbuCbIobrEbIqbrgbIsbItbnTbgdbrbbrcbqWbqYbrabIxbIybIzbCVbCVbIAbBFbXKccNbDcbDcbICbEhbEhbIDbICbDcbDcbIEbIFbIGbsebIHbDdbsdbhibscbsabsbbrVbrVbrWbrXbrUbrVbrPbrQbqGbqDbqIbqHbqVbPybIWbIXbIYbIZahjahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahjahjbJabJbbJcbJdbJebJbbJaahjahjahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahjahlbFZbHDbHDbHDbJfbJgbylbylbJhbHIbylbylbylbylbGibwWbfFbELbccbCvboEbtFahlbGmbJmbJnbJobDBbDBbJpbDBbJqbJrbJsbJtbCwbshbsgbsobsmbsxbsvbsvbsvbsvbsvbsybsvbsBbszbsFbsCbsVcePchtbsUbsUbsUbsUbsUbsUbsUbsUbsUbsUbsUbsUbsUbsUbsUbsUbtbbnTbnTbnTbnTbnTbtabuAbhSbBFbBFbBFbBFbBFbBFbXKccNbDcbJQbJRbJSbJTbJUbJVbJQbJWbIEbIFbIGbtpbtqbtrbtsbthbtmaKvbEobKabKabKbcGybtdbKebFQbFQbKfbEybsHbKhbsMbEobKjbKkbKlbEoahjahlahlahjahlahlahlahlahjahlahlahlahlahjahlahlahlahlahjahlahjahjbKmbKnbKobKpbKpbKpbKqbKmbKnahjahjahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahjahlbEGbHEbHEbHEbEGbKrbKsbKtbKubKvbylbylbKwbEKbKxbwWbCvbCvbCvbCvboEbppahjbKybEQbKzbKAbKBbDBbKCbDBbDBbDBbDBbDBbCwbQLbhhbgYbgLbgKbgKbgKbgKbgKbgKbgJbgIbgHbfLbgGbgBbfRbfQbfSbmNbfTbmNbmNbmNbmNbmNbmNbmNbmNbmNbmNbmNbmNbmNbfVbgabnTbgdbLdbMzbgebggbgibgkbglbgobgobgxbfMbfLbfKbfJbDcbLrbLsbLtbLubLvbLwbLxbJWbJWbJWbJWbJWbJWbLybfNbfObfPbLBbEobEybEybEybEybEybEybLDbFQbFQbEybgZbLFbLEbEobLGbLHbLIbLJdsidsiahjahjahjahjahjahjahjahjahjahjahjahjahjahjahjahjahjahjahjahjbLKbLLbLKbKpbLMbKpbLNbLObFXahjahjahjahjahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahjahlbFZbLPbLQbLRbFZbLSbGdbGebwWbwWbLTbLUbLVbwWbwWbwWahlahlahlbLWbqhbqNahlahlahjahlbCwbLYbLZbMabDBbMbbiEbiJbiSbKGbiDbiCbfIbMibMjbMkbMlbMmbesbMjbMjbMjbMjbMjbMobiBbMjbMjbxtbMjbFSbMjbMjbMjbMjbMjbCDbCDbCDbCDbCDbCDbCDbCDbNIbXIbnTbhHbhFbhGbhMbicbhIbqgbipbhpbhpbiobhpbhpbhsbhqbDcbhwbMNbhCbMNbhEbMNbMObMPbMQbMRbMSbMTbMUbgUbribhibepbMXahjbMYbMZbNabNbbhmbNbbNdbNebNfbEyckEbNhbiubEobEobEobEobEoahjahlahlahjahlahlahlahlahjahlahlahlahlahjahlahlahlahlahjahlahjahjbKmbKnbNjbKpbKpbKpbNkbKmbKnahjahjahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahjahlbNlbEFbNmbEFbNnahlahjahlahjdsiahjahlahjdsiahjahlahlahlahjbHMboEboFahjahjahjahjbCwbCwbCwbCwbCwbCwbCwbCwbCwbCwbeybexbewbevbMjbMkbMlbMmbesbNrbNrbNtbNubNvbeubetbNybNzbNAbdWbNCbNDbNEbNFbOGcGaahjahlahlahlahlahlahjbCDbNIbSubNJbNJbNJbNJbNJbNKbNLboDbNJbNJbNJbNJbNJbNJbSubencGubNQbNRbNSbNRbNTbNUbNVbNWbNWbNWbNWbNWbNWbNXbeqbeobepbObahjbMYbOcbOcbOdbOebOfbOgbOhbOibEycoxbNhbPqbgZbOkayRbgZahlahlahlahlahlahlahlahlahlahlahlahlahlaaeahlahlahlahlahlahlahlahlahjahjbJabHBbOmbOnbOobOpbJaahjahjahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahjahlahlahlahlahlahlahlahjahlahjdsiahjahlahjdsiahjahlahlahlahlbHMboEboFahlahlahlahjbOqbOrbOrbOsbOtbOubOubOwbOwbOqbQLbfHbfIbOzbMjbOAbOBbOBbfibODbNrbOEbOFbfrbfCbfsbeMbeHbmgbeBbOGbOLbOGbOMbONbOOahjbOPbOPbOPbOPbOPahjbCDbNIbpaboQbezbOSbOTbNJbpnbpgbphbNJbOXbOYbOZbOYbOXbSubeTbDcbMNbMNbMNbeZbMNbMNbfhbeUbPcbPcbPgbPcbPcbgSbePbeNbeObPkahjbMYbOcbPlbNbbeSbNbbPnbPobPpbEyblAbNhbPqbgZblAblAbgZahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahjahjbJbbFXbPrbFXbPsahjahjahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl -ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlaaeahlahlahlahlahlahlahlahlahlahlahlahjahjahjahjahjahjahjahjahjahjahjbCvbCvbPtbPubPvbCvbCvahlahlahlahlbHMboEboFahlahlahlahjbOqbPwbOsbOsbOsbOsbOubCsbzObBqbDIbiCbjWbPBbPCbjVbjUbjTbkabkcbkbbjUbjUbjUbkabjZbjEbjDbjMbPHbPKbTqbPMbPNbPObTnbPQbPRbPSbPTbPUbOPahjbjRbNIbSubPWbOXbOXbOXbNJbjNbeAbjPbNJbOYbQdbOYbzNbzMbyObjLbDcbQfbQgbQhbQibQjbQkbQlbQmbQnbQobQpbQqbQrbJWbSSbjBbjCbQubQubEybEybEybEybEybEybEobEobEobEybjzbNhbjyblAblAbQzbgZahjahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahjahjbFXbFYbFXahjahjahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl +ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlaaeahlahlahlahlahlahlahlahlahlahlahlahjahjahjahjahjahjahjahjahjahjahjbCvbCvbPtbPubPvbCvbCvahlahlahlahlbHMboEboFahlahlahlahjbOqbPwbOsbOsbOsbOsbOubCsbzObBqbDIbiCbjWbPBbPCbjVbjUbjTbkabkcbkbbjUbjUbjUbkabjZbjEbjDbjMbPHbPKbTqbPMbPNbPObTnbPQbPRbPSbPTbPUbOPahjbjRbNIbSubPWbOXbOXbOXbNJbjNbeAbjPbNJbOYbQdbOYbzNbzMbyObjLbDcbQfbQgbQhbQibQjbQkbQlbQmbQnbQobQpbQqbQrbJWbSSbjBbjCbQubQubEybEybEybEybEybEybEobEobEobEyblAbNhbjyblAblAbQzbgZahjahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahjahjbFXbFYbFXahjahjahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahjahlahlbCvbQAbELbQBbELaClbCvahlahlahlahlbHMbqhboFahlahjbQDbQEbOqbQFbQGbQHbOsbOsbQIbQJbOubQKbQLbfHcerbQNbQObkubkwbkvbkBbkAbkCbkvbkxbkvbkzbkybPIbQVbQWbQXbQYbQZbRabRbbRcbTsahjbRebRfbPUbRgbOPahjcbMbNIbSubRibRjbOXbRkbNJbRlbEJbktbNJbOXbvEbRpbOXbOXbSubNIbDcbJWbJWbJWbJWbLybRtbRubRvbLybJWbJWbJWbJWbJWbRwcfbbUIbRzbRAbRBbRCcbGbRCbREbQubRFbRybRGbRHcjSbNhbPqbgZbgZbgZbgZbRJahjahjahjdsidsidsidsidsidsiahjahlahlahlahlahlahlahlahlahlahlahlahlahlahlahjahjahjahjahjahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahjahjahjahjahjahjbCvazvbELbELbELaBdbCvahlahlahlahlbHMboEbtFahlahjbTabRNbRObRPbtWbtHbtHbtHbtHbtHbujbvkbvvbfHcerbNqbjdbjcbjbbOGbjebRZbQVbSbbScbSdbSebSfbSfbSgbShbPKbSibSjbSkbSlbSmbMrbSobPRbSpbPUbPUbOPahjbiXbNIbSubdobOXbSsbNKbNJbNJbrFbNJbNJbSvbrAbStbSvbSzbSubNIbDcbSDbSEbSEbSFbSGbMNbSHbSIbSJbSKbEhbEhbEhbJWbSLbiYbiZbSMbSNbRBbSObSPbMsbSRbSSbRybSTbRybRHaDGbiUbiVbgZahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahjahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlbCvazvbELbELbSYaBgbCvahlahjahlahlbJlboEbppbCvbCvbCvbTbbOqbTcbOsbOsbOsbTdbTebTfbTgbOqbQLbfHcerbNqbQObjtbjxbOGbOGbTjbNrbTkbTlbTmbSQbOGbOGbTobTpbRdbTrbPLbTtbOJbTtbTvahjbOPbOPbOPbOPbOPahjbCDbNIbSubTwbyybyybyKbynbypbwNbjibjgbOXbvEbOXbOXbOXbSubNIbDcbEhbEhbEhbTJbTKbMNbTLbMNbTMbTNbEhbEhbEhbJWbTObjmbjqbYbbjsbTRbTSbTTbTRbTUbQubTVbRybTWbRHbgZcgFbjfbgZahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahjahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlaaeahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlbTXahlahjahjbTYbTYbTYbTYbTYbTYbTYbTYbCvbCvbTZbCvbCvbCvbPtbPubPvducduddujduidukdrBdudduhbvkbvkbvkbvkbvkbvkbvkbvkbvkdugduedufcerbUdbMjbNscaGbUebUfbUebNrbOGbOGbOGbSQbUibONbONbUjchfbUlbTqbUmbUpbUobTnbPQbPRbUqbUrbUrbOPahjbCDbNIcaVbPZbPZbPZcbhbUsbOXdulbOXbOXbOXbvEbOXbOXbOXbSubNIbDcbEhbEhbEhbUAbUBbSIbUCbMNbUDbUEbSEbSEbUFbJWbUGbUHbUIcbzcbjbRBbMsbUKbTRbULbQubUMbUMbUMbRHcaUbZPbjfbgZahjahjahjahjahjahjahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl -ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlbUObUPbUQbURbUSbURbUTbUUbUVbUWbUXbUYbUZbTYbVabVbbVbbVbbVbbVbbVbbVbbVbdsHdtidtJdrldrldrldrldtHdtpdtpdtpdtxdtpdtmbPGbPGdtkbppbQLbfHcerbVobVpbZNbZMbONbONbZLbVsbONbONbVtcgqbVvbOGbVwbVxbVybVzbOGcgrbUnbVCbTsahjbRebVDbVEbVFbOPahjcaSbZRbZQbZQbZQbZSbSubVKbTwdtRdtOdtVdtSdtYdtXduadubbSubNIbDcbJWbJWbJWbJWbVRbVSbTLbVTbVRbJWbJWbJWbJWbJWbVUbVVbVWcaCcaBbVZbVZbVZbVZcaFbSSbUMbUMbWcbRHbZObZPbjfbgZbgZbgZahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl -ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlbWebWebWebWebWebWfbWgbWhbWibWibWhbTYbELbWjbWkbWkbWkbWkbWkbWkbWlbppdcdbWnbWnbWnbWnbWnbWnbWnbWnbWobWobWobWobWocbNdumbppbQLbfHcerbVobWscceccfbWvbSfcbVbWxbSfbSfbWybWzbWAbWBbWCbWDciobWFbOGcgrbWGbWHbMrbSobPRbWJbUrbUrbOPahjcbMbXKbCDbCDbCDbjLbSubWNbOXbOXbWPduwbUtbWTcbUbWTbUtbSubNIbDcbSDbSEbSEbWUbSGbMNbSHbSIbWVbWWbEhbEhbEhbJWbWXbWYbWZbRxbjmbYbccuccwccvccibQubUMbUMbUMbRHbZObZPbjfblAblAbgZahjahjahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl -ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahjahjbXcbXdbZnbXfbZnbXgbXhbZschmchmbXkbTYbXlbXmahlahlahjahlahlahjahlbppdcdbWnbXnbXobXpbXqbXrbXsbXnbXtbXubXvbXwbWobWodumbppdunbfHcerbXybXzcbDcbDbXCbMjbMjbMjbMjbMjbXDchjbNrbNrbNrbXFbOGbVybOGcgrbUnbXGbTsahjbOPbOPbOPbOPbOPahjbXHbXKbCDcbobXKbjLbpadusdurduvdutduqdupbXPcbUbXPbXQbSubNIbDcbEhbXRbEhbXSbTKbMNbTLbMNbTMbXTbEhbXRbEhbJWbXUbXVbXWbXXbXYbXZbYacbQcbPcbFbSSbCxbYfchUbRHbUMbZPbUwbgZblAbgZbgZbgZdsidsiahjahjahjahjahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl +ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlbUObUPblMbsfbUSbsfbSnbURbUQbUWbUXbUYbUZbTYbVabVbbVbbVbbVbbVbbVbbVbbVbdsHdtidtJdrldrldrldrldtHdtpdtpdtpdtxdtpdtmbPGbPGdtkbppbQLbfHcerbVobVpbZNbZMbONbONbZLbVsbONbONbVtcgqbVvbOGbVwbVxbVybVzbOGcgrbUnbVCbTsahjbRebVDbVEbVFbOPahjcaSbZRbZQbZQbZQbZSbSubVKbTwdtRdtOdtVdtSdtYdtXduadubbSubNIbDcbJWbJWbJWbJWbVRbVSbTLbVTbVRbJWbJWbJWbJWbJWbVUbVVbVWcaCcaBbVZbVZbVZbVZcaFbSSbUMbUMbWcbRHbZObZPbjfbgZbgZbgZahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl +ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlbWebWebWebWebWebWfbUTbWhbWibWibWhbTYbELbWjbWkbWkbWkbWkbWkbWkbWlbppdcdbWnbWnbWnbWnbWnbWnbWnbWnbWobWobWobWobWocbNdumbppbQLbfHcerbVobWscceccfbWvbSfcbVbWxbSfbSfbWybWzbWAbWBbWCbWDciobWFbOGcgrbWGbWHbMrbSobPRbWJbUrbUrbOPahjcbMbXKbCDbCDbCDbjLbSubWNbOXbOXbWPduwbUtbWTcbUbWTbUtbSubNIbDcbSDbSEbSEbWUbSGbMNbSHbSIbWVbWWbEhbEhbEhbJWbWXbWYbWZbRxbjmbYbccuccwccvccibQubUMbUMbUMbRHbZObZPbjfblAblAbgZahjahjahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl +ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahjahjbXcbXdbUUbXfbUUbWgbUVbXhbXgbXgbXkbTYbXlbXmahlahlahjahlahlahjahlbppdcdbWnbXnbXobXpbXqbXrbXsbXnbXtbXubXvbXwbWobWodumbppdunbfHcerbXybXzcbDcbDbXCbMjbMjbMjbMjbMjbXDchjbNrbNrbNrbXFbOGbVybOGcgrbUnbXGbTsahjbOPbOPbOPbOPbOPahjbXHbXKbCDcbobXKbjLbpadusdurduvdutduqdupbXPcbUbXPbXQbSubNIbDcbEhbXRbEhbXSbTKbMNbTLbMNbTMbXTbEhbXRbEhbJWbXUbXVbXWbXXbXYbXZbYacbQcbPcbFbSSbCxbYfchUbRHbUMbZPbUwbgZblAbgZbgZbgZdsidsiahjahjahjahjahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahjbXcbYjbYkbYlbYmbWhbYnbWhbYobWhbWhbYpbELbXmahlahlahjahlahlahjahlbppdcdbWnbXnbYqbYrbYsbYtbYubXnbYvbYwbYxbYybYzbWodumbppbQLbfHcerbYAbYBbMjcdvbYDbMjcdwcuLbYGbMjbYHbSQbZUbNrbYJbWFbOGbWDbYKbYLbUpbYMbTnbPQbPRbYNbYObYPbOPahjbCDbXKbCDbYQbXKbjLbSubYRduzbYTbYUduAduzcdHcdAcdHbzNbyObNIbDcbEhbEhbEhbYZbZabSIbUCbMNbUDbZbbSEbSEbUFbDcbRHbZcbZdbZebRHbRHbZfbZgcdMcdNbZjbVYbVZbZkbUMbUMbZPbjfbgZbrqbgZbZlbgZahjahjahjahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl -ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahjahjahjbXcbZmbZnbZobZnbZpciqbZrbZsbZtbZubTYbZvbZwahlahlahlahlahlahlahlbppdcdbWnbZxbZybZzbYsbZAbZxbZxbYvbZBbZCbYyccAbWodumbppbQLbfHbGwcbAcbAccWccBccQcdbcdlccXduxbMjbOGbSQdjybZVbYJbZWbOGbWDbYKcgrbUnbZXbTsahjbReclkbZZcaabOPahjbCDbXKbCDcabcacbjLbSubNJcadcaebNJduybNJbNJbNJbNJbNJbSubNIbDcbJWbJWbJWbJWbVRcafbTLcagbVRbJWbJWbJWbJWbDcbTRcahbTRbTRbTRbRHbZfbZgcdtcducakcalbRxbCzbRHbUMbZPbjfbgZblAblAblAcanahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlaGcahlahlahlahlahlahlahlahlahlahlahlahlahl -ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahjahjahjahjahjahjahjahjahjahjahjahjbWebWebWebWebWebTYbTYbYpbTYbTYbTYbTYahjahlahlaPYahlahlahlahlahlduNdcdbWnbZxbZxcarcasbXnbZxcatcaucavcawcaxcaybWodumduMduJduKcexcbAcaDcaEcaEceJcaHcaIceKduLbMjcaLcjIbZUbNrbYJcaNbOGcaObYKcgrcaPcaQbMrbSobPRcaRbYObYObOPahjcaSbXKbCDcaTbXKbjLceQbPZbPZceObNJduOdpDdpCbNKcaZccmbXIbNIbDcbSDbSEbSEcbbbSGbMNbSHbSIcbccbdbEhbEhbEhbDccbebTRbTRbTRbTRbRHcbfcbgceMceLbQubQubRxbQubRHbQubZPbjfbgZcbkcblcbmcbnahjahjahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl +ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahjahjahjbXcbZmbUUbZobUUbZpbZnbZrbXhbXhbZubTYbZvbZwahlahlahlahlahlahlahlbppdcdbWnbZxbZybZzbYsbZAbZxbZxbYvbZBbZCbYyccAbWodumbppbQLbfHbGwcbAcbAccWccBccQcdbcdlccXduxbMjbOGbSQdjybZVbYJbZWbOGbWDbYKcgrbUnbZXbTsahjbReclkbZZcaabOPahjbCDbXKbCDcabcacbjLbSubNJcadcaebNJduybNJbNJbNJbNJbNJbSubNIbDcbJWbJWbJWbJWbVRcafbTLcagbVRbJWbJWbJWbJWbDcbTRcahbTRbTRbTRbRHbZfbZgcdtcducakcalbRxbCzbRHbUMbZPbjfbgZblAblAblAcanahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlaGcahlahlahlahlahlahlahlahlahlahlahlahlahl +ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahjahjahjahjahjahjahjahjahjahjahjahjbWebWebWebWebWebTYbTYbYpbTYbTYbTYbTYahjahlahlaPYahlahlahlahlahlduNdcdbWnbZxbZxcarcasbXnbZxcatcaucavcawcaxcaybWodumduMduJduKcexcbAcaDcaEcaEceJcaHcaIceKduLbMjcaLcjIbZUbNrbYJcaNbOGcaObYKcgrcaPcaQbMrbSobPRcaRbYObYObOPahjcaSbXKbCDcaTbXKbjLceQbPZbPZceObNJduObZsdpCbNKcaZccmbXIbNIbDcbSDbSEbSEcbbbSGbMNbSHbSIcbccbdbEhbEhbEhbDccbebTRbTRbTRbTRbRHcbfcbgceMceLbQubQubRxbQubRHbQubZPbjfbgZcbkcblcbmcbnahjahjahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlaaHaaHaaHdpXdpXaaHdpXdpXdpXaaRdpXdpXdpXaaHdpXahjahjbCvbELbELbELbELbELbELbELbELbJjcbpahjahlahlahjdsiaFFahlahlahldotdcdbWncbscbtcascbubXnbXncbvcbwcbvcbxbYycbybWoduCduBduDduEbHXcbAdpFcaEcdOcdzcbEduGcdPduFduHbPHcirbNrbNrbNrcbJbOGcbKcbLcgrbUnbOGbTsahjbOPbOPbOPbOPbOPahjcbMbXKbCDcchcbObZRbZQbZQceocepbNKduIcuYdpBbNKceabhpcdTcbWbDcbEhbEhbEhcbXbTKbMNbTLbMNbTMcbYbEhbEhbEhbDccbZbTRccabTRbTRccbcccccdcemcebbQubRxbRxccgbRHaDGbPdbWdbgZccjcckblAcclahjahlahlahlahlahlaaeahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlaaHahlahlahjahjahlahjahjahlahlahjahjahjahldpXahlahlbCvbRKbELbCvbCvbCvbTZbCvbCvbCvbCvahlahlahldsiaDIauKdsidsiahjdotdcdbWnccpbZxbXnbXnbXnbZxcatccqccrbYyccscctbWobCvbCvbTzbTAbTBcbAcbAccxcaEdoZdoKdoMdoNdoQbMjbOGbVAccDccEccFbQWccGbVuccIbYLbUpccJbTnbPQbPRccKccLccLbOPahjbXHbXKbCDbCDbCDbXKbCDbCDccMbDbbCDbCDcuBbCDbCDbDbbSWbSXbThbDcbEhbEhbEhccRccSbSIccTbMNbUDccUbSEbSEbUFbDcbTRbTRccVbTRbTRbRHcbfcbgbTibTxbQuccYccZcdabRHbfGbPdbjfbgZbgZbgZblAbgZahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl -ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlaaHahlcdccddcdeahlcdccddcdeahlcdccddcdeahjdpXahlahlbCvcdfcdgbCvcdhbELbELbOlaClcdkbCvahlahlahlatIdsidsiahjahlahldbVdcdbWnbZxcdncdobXncdpbZxbZxbYvcdqbYybYycdrbWocdsbSVbSCbSUbSBdoidnZdcNdctdcNdctdcvdctdcubMjcdCcdDcdEbSfbSfbShbUicdFbUmbSibUncdGbTsahjbReclhcdIcdJbOPahjbCDbXKbXKcdKbXKbXKcdLbCDccMbSabRYbSqbSnbSwbRYbSAccMbLEcdVbDcbDcbDcbDcbDcbDccdWcdXcdYbDcbDcbDcbDcbDcbDcbRHbRHbRHbRHbRHbRHcdZcdZbSxbSybRHbRHbRHbRHbRHbgZcgFbjfbgZbNibOjblAbgZahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl -ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlaaHahlcdcceecdeahlcdcceecdeahlcdcceecdeahjahjahlahlbCvbPtbPvbCvbCvcefcegaClbELbSYbCvahlahlahlahlahjahlahlahlahlbppdcdbWnbXncehceibXncejcekbXnbYvcelbYxbYybYybVebVfbfIcercHqbVgceucevcewbVhceycezdpYcaEdqsbMjceBbOGbVAbUibONceCbWEceEceFbNFceGceHbMrbSobPRceIccLccLbOPahjbCDbXKbXKbXKbXKbXKbUzbCDbVdbUxbUNbJFbfKbJFbUJbUxbUybLEbTEbgZahlahlahlahjahlahlceVahlahjahlahlahlahlbgZceWayRceYceZceZbRHcfacfabSxbiZcfccfdblAblAblAaDGcgFbUwbgZcffblAblAbgZbgZbgZahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl -ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahldpXahjcdcceecdeahlcdcceecdeahjcdcceecdeahjahjahlahlahlahlahjahjbCvbCvbCvbCvbTZbCvbCvahlahlahlahlahjahlahlahjahlbppdcdbWnbXncfgcfhcficfjcfkbXncflcfmcfncfocfpbWocfqdpVdpPdpQdpNdpOdpTdpUdpRdpSdpsdpzdpadprdpAdpEbQZcfFbVBbOGbOGbOGbOMbVvbVBbUnbXGbTsahjbOPbOPbOPbOPbOPahjbCDcabcfHcfIcfJcacbCDbCDbCDcfKbTGcdUbXKcfMbTFbCDbCDbLEbTEbgZahlahlahlahjahlahlceVahlahjahlahlahlahlbgZblAbjzbrsbjzblAbRHcfScfSbTDbiZbRHbQubgZcfUcfVaDGcgFbTCbECbECbECcfYcfZcgacfZcgbdsiahjahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl -ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahjahlcdcceecdeahjcdcceecdeahlcdcceecdeahlahjahlahlahlahlahlahlbCvaOlbCvbELbELbCvahjahlahjahlahlahjahlahlahjahlbppdcdbWnbWnbWnbWnbWnbWnbWnbWnbWobWobWobWobWobWobCvbWpbCvcggcghcghcghcgicgjcgkcghbWrdqEdqRbMjchebXEbSkbXjcgscgtcgsbXjcgubXjcgvbUicgwahjahjahjahjahjahjahjahlahjcbMbXKcbMahjahlbCDcgxbCDcgzcgzcgAcgzcgzbCDbYQbzgbTEbgZcgCcgDcgEbgZcgCcgDcuncgEbgZcgCcgDcgDcgEbgZbgZbgZcgGbgZbgZbRHbRHbRHbWabWbbRHaDGbgZcbmblAbpYcgFbWdbgZbgZcgLbgZbgZbgZbgZahjahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl -ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlaaHaaHdpXahjahlcdcceecdeahjcdcceecdeahlcdcceecdeahjahjahjahjcgMcgNcgNcgNcgNbCvbCvcgObELbCvcgPbWkbWkbWkbWkbWkbWkbWkbWlbCvbppdcdbCvcgQbVPbVObVObVObVObVObVObVObVObVObVXbVXbVObVQcefcggcnjcgWcgXcgYcgZchacghdoBcmIdqxbMjchebXichgchhchibWIchkchlbOGbXechnchobOIahjahjahlahlahlahlahjahlahjchpcfIchpahjahlbCDchqbsfbVicdUbsfcdUcdUbXKbXKbzgbJEbVHbVHbVHbVHbVHbVHbVHbVIbVqbVqbVqbVqbVqbVqbVrbVqbVqbVqbVqbVGciFbVlbVkbVjbVnbgZbgZbVmciFbVJciFbVLbjfbgZchLblAblAbgZahlahjahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl -ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlaaHahlahjahlahjahjchMahjahjahjchMahjahlahjchMahjahlahjchNchOchPchQchRchSchTcgebELchYchZciachZchZchZchZchZchZchZchZchZchZdsrdsydrBdrAbiTcicciccicciccicciccicciccicciccicciccicciccggcghciecifdsbbZDbZEbZFckUckbdspciccincfGcipceDcipcfGcipceDcipccHcipccHcisahjahjahlahlahlahlahjahlahjahlahlahlahjahlbCDchqbXKcdUcjMbYWbYVceTbFobXabXbbWQbWQbWQbWQbWQbWQbWQbWRbWSbWQbWQbWQbWQbWQbWQbYIbYEbYhchEbYCbYibYcbYcbYcbYdbXAbXxbXObXBbYYbYcbYcbYXbZhbgZbOjblAcbabgZahlahjahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl -ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahldpXahjciRciSciSciTciUciUciUciUciUciUciUciUciUciUciUciVciXciYciXciZdrvcjbcbHchZcjdcjeaClbCvcjgcjhcjhcjhcjhcjhcjhcjhcjibCvbCvdrqdrldrjdrgciccjncjncjociccjpcpFcpEcpCcpOcpNcjvcmvcjxcjycghcjzcjAdracjCcjDcjEcjHdrbdrdcicahjcbIahjcaMahjcbIahjcaMahjbZqahjbZqahlahlahlahlahlahlahlahlahlahlahlahlahlahjahlbCDbXKcjLcjMccPcjObXJbFobSZbWqbCDbgZcgCcgDcgDcgEbgZcgCcgDcgDcgEbgZcgCcgDcgDcgEbgZcpGblAbgZbWKbWwbgZbgZcgCcgEbgZbgZcjTbPdbPbbgZcjUcjVbpWbgZbgZbgZbgZbgZahlahjahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl +ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlaaHahlcdccddcdeahlcdccddcdeahlcdccddcdeahjdpXahlahlbCvcdfcdgbCvcdhbELbELbOlaClcdkbCvahlahlahlatIdsidsiahjahlahldbVdcdbWnbZxcdncdobXncdpbZxbZxbYvcdqbYybYycdrbWocdsbSVbSCbSUbSBdoidnZdcNdctdcNdctdcvdctdcubMjcdCcdDcdEbSfbSfbShbUicdFbUmbSibUncdGbTsahjbReclhcdIcdJbOPahjbCDbXKbXKcdKbXKbXKcdLbCDccMbSabRYbSqbZtbSwbRYbSAccMbLEcdVbDcbDcbDcbDcbDcbDccdWcdXcdYbDcbDcbDcbDcbDcbDcbRHbRHbRHbRHbRHbRHcdZcdZbSxbSybRHbRHbRHbRHbRHbgZcgFbjfbgZbNibOjblAbgZahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl +ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlaaHahlcdcceecdeahlcdcceecdeahlcdcceecdeahjahjahlahlbCvbPtbPvbCvbCvcefcegaClbELbSYbCvahlahlahlahlahjahlahlahlahlbppdcdbWnbXncehceibXncejcekbXnbYvcelbYxbYybYybVebVfbfIcercHqbVgceucevcewbVhceycezdpYcaEdqsbMjceBbOGbVAbUibONceCbWEceEceFbNFceGceHbMrbSobPRceIccLccLbOPahjbCDbXKbXKbXKbXKbXKbUzbCDbVdbUxbUNbJFcgAbJFbUJbUxbUybLEbTEbgZahlahlahlahjahlahlceVahlahjahlahlahlahlbgZceWayRceYceZceZbRHcfacfabSxbiZcfccfdblAblAblAaDGcgFbUwbgZcffblAblAbgZbgZbgZahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl +ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahldpXahjcdcceecdeahlcdcceecdeahjcdcceecdeahjahjahlahlahlahlahjahjbCvbCvbCvbCvbTZbCvbCvahlahlahlahlahjahlahlahjahlbppdcdbWnbXncfgcfhcficfjcfkbXncflcfmcfncfocfpbWocfqdpVdpPdpQdpNdpOdpTdpUdpRdpSdpsdpzdpadprdpAdpEbQZcfFbVBbOGbOGbOGbOMbVvbVBbUnbXGbTsahjbOPbOPbOPbOPbOPahjbCDcabcfHcfIcfJcacbCDbCDbCDcfKbTGcdUbXIcfMbTFbCDbCDbLEbTEbgZahlahlahlahjahlahlceVahlahjahlahlahlahlbgZblAchmbrscOnciqbRHcfScfSbTDbiZbRHbQubgZcfUcfVaDGcgFbTCbECbECbECcfYcfZcgacfZcgbdsiahjahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl +ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahjahlcdcceecdeahjcdcceecdeahlcdcceecdeahlahjahlahlahlahlahlahlbCvaOlbCvbELbELbCvahjahlahjahlahlahjahlahlahjahlbppdcdbWnbWnbWnbWnbWnbWnbWnbWnbWobWobWobWobWobWobCvbWpbCvcggcghcghcghcgicgjcgkcghbWrdqEdqRbMjchebXEbSkbXjcgscgtcgsbXjcgubXjcgvbUicgwahjahjahjahjahjahjahjahlahjcbMbXKcbMahjahlbCDcgxbCDcgzcgzdpdcgzcgzbCDbYQbzgbTEbgZcgCcgDcgEbgZcgCcgDcuncgEbgZcgCcgDcgDcgEbgZbgZcgFcgGbgZbgZbRHbRHbRHbWabWbbRHaDGbgZcbmblAbpYcgFbWdbgZbgZcgLbgZbgZbgZbgZahjahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl +ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlaaHaaHdpXahjahlcdcceecdeahjcdcceecdeahlcdcceecdeahjahjahjahjcgMcgNcgNcgNcgNbCvbCvcgObELbCvcgPbWkbWkbWkbWkbWkbWkbWkbWlbCvbppdcdbCvcgQbVPbVObVObVObVObVObVObVObVObVObVXbVXbVObVQcefcggcnjcgWcgXcgYcgZchacghdoBcmIdqxbMjchebXichgchhchibWIchkchlbOGbXechnchobOIahjahjahlahlahlahlahjahlahjchpcfIchpahjahlbCDchqdpkbVichtdpDcdUcdUbXKbXKbzgbJEbVHbVHbVHbVHbVHbVHbVHbVIbVqbVqbVqbVqbVqbVqbVrbVqduQbVqbVqbVGciFbVlbVkbVjbVnbgZbgZbVmciFbVJciFbVLbjfbgZchLblAblAbgZahlahjahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl +ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlaaHahlahjahlahjahjchMahjahjahjchMahjahlahjchMahjahlahjchNchOchPchQchRchSchTcgebELchYchZciachZchZchZchZchZchZchZchZchZchZdsrdsydrBdrAbiTcicciccicciccicciccicciccicciccicciccicciccggcghciecifdsbbZDbZEbZFckUckbdspciccincfGcipceDcipcfGcipceDcipccHcipccHcisahjahjahlahlahlahlahjahlahjahlahlahlahjahlbCDchqduRcdUduSbYWbYVceTbFobXabXbbWQbWQbWQbWQbWQbWQbWQbWRbWSbWQbWQbWQbWQbWQbWQbYIbYEbYhchEbYCbYibYcbYcbYcbYdbXAbXxbXObXBbYYbYcbYcbYXbZhbgZbOjblAcbabgZahlahjahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl +ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahldpXahjciRciSciSciTciUciUciUciUciUciUciUciUciUciUciUciVciXciYciXciZdrvcjbcbHchZcjdcjeaClbCvcjgcjhcjhcjhcjhcjhcjhcjhcjibCvbCvdrqdrldrjdrgciccjncjncjociccjpcpFcpEcpCcpOcpNcjvcmvcjxcjycghcjzcjAdracjCcjDcjEcjHdrbdrdcicahjcbIahjcaMahjcbIahjcaMahjbZqahjbZqahlahlahlahlahlahlahlahlahlahlahlahlahlahjahlbCDbXKcjLcjMduTcjObXJbFobSZbWqbCDbgZcgCcgDcgDcgEbgZcgCcgDcgDcgEbgZcgCcgDcgDcgEbgZcpGblAbgZbWKbWwbgZbgZcgCcgEbgZbgZcjTbPdbPbbgZcjUcjVbpWbgZbgZbgZbgZbgZahlahjahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlaaHahlahjahlahjahjcjWahjahlahjcjWahjahlahjcjWahjahlahlchNchOcjXcjYcjZckacgNbELbELbELbELbCvahlahlahjahlahlahjahlahlahjahlbCvckdbCvcmacmhcicckfckgckhckickjbhAckUckUckUbOHbOKbORckrbhAcghbvCckuclScjCckwcghaJbclRclMcicbOPckzbReckzbOPckzbReckzbOPckAbReckBbOPahlahlahlahlahlahlahlahlahlahlahlahlahjahlbCDbCDbCDbXKckCcjMccPcnCbCDbCDbCDahlahlahjahlahjahjahlahlahlahlahlahlahlahlahlbgZcnyckEbgZbPbbPdbgZahlahlahlahlbgZblAbPdbPackGckGckHckIckGahlahjahjahjahjahjahjahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl -ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlaaHaaHdpXahjahjcdcckJcdeahlcdcckJcdeahlcdcckJcdeahjahjahjahjckKcgNcgNcgNcgNbJibJjbELbELbCvahjahjcjtcjtcjtcjtcjtcjtcjtahjbCvbCvbCvcmBcmxcicckPckhckhckickQckxckxcmwcmjcmqcmicmiciickUcghckWcmQcmJckZclacghclbcmIcmDcicbOPcldcnDclfbOPclgcnXclibOPcljcnYcllbOPahlahlahlahlahlahlahlahlahlahlahlahlahjahlbRJahlbCDcfKcabcnZcacbCDbCDahlbRJahlahlahlahlahjahlahlahlahlahlahlahlahlahlahlbgZcnUbgZbgZbPibPdbgZbgZcgCcgEbgZbgZblAbPjbPfckGclqclrclsckGahlahlahjahjahlahjahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl -ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlcdcckJcdeahjcdcckJcdeahlcdcckJcdeahlahlahlahlahlahlahlahlbCvbCvbCvbXlbELbCvahlahlcjtclFclzclEclzclucjtahlbCvbSYbELcnzcmxcicclAclAclBcicclCclDcmmcnpckbcmFbPAcksckockocghclKcnmcncclNclOclPclQcmScmRcicbOPclTclUclTbOPclVclWclVbOPclXclYclZbOPahlahlahlahlahlahlahlahlahlahlahlahlahlahlbRJahlahlahjdsiahlahlahjahlahlbRJahlahlahlahlahjahjahlahlahlahlahlahlcmccmdcmebgZbJkaDGbgZbPEbPFciCciFciCciCciCciCciGcfRbPDckGcnBcnAcmkckGahlahlahlahlahlahjahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlaGcahlahlahlahlahlahlahl +ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlaaHaaHdpXahjahjcdcckJcdeahlcdcckJcdeahlcdcckJcdeahjahjahjahjckKcgNcgNcgNcgNbJibJjbELbELbCvahjahjcjtcjtcjtcjtcjtcjtcjtahjbCvbCvbCvcmBcmxcicckPckhckhckickQckxckxcmwcmjcmqcmicmiciickUcghckWcmQcmJckZclacghclbcmIcmDcicbOPcldcnDclfbOPclgcnXclibOPcljcnYcllbOPahlahlahlahlahlahlahlahlahlahlahlahlahjahlbRJahlbCDcfKduUcnZcacbCDbCDahlbRJahlahlahlahlahjahlahlahlahlahlahlahlahlahlahlbgZcnUbgZbgZbPibPdbgZbgZcgCcgEbgZbgZblAbPjbPfckGclqclrclsckGahlahlahjahjahlahjahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl +ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlcdcckJcdeahjcdcckJcdeahlcdcckJcdeahlahlahlahlahlahlahlahlbCvbCvbCvbXlbELbCvahlahlcjtclFclzclEclzclucjtahlbCvbSYbELcnzcmxcicclAclAclBcicclCclDcmmcnpckbcmFbPAcksckockocghclKcnmcncclNclOclPclQcmScmRcicbOPclTclUclTbOPclVclWclVbOPclXclYclZbOPahlahlahlahlahlahlahlahlahlahlahlahlahlahlbRJahlahlahjduVahlahlahjahlahlbRJahlahlahlahlahjahjahlahlahlahlahlahlcmccmdcmebgZbJkaDGbgZbPEbPFciCciFciCciCciCciCciGcfRbPDckGcnBcnAcmkckGahlahlahlahlahlahjahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlaGcahlahlahlahlahlahlahl ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahldpXahjcdcckJcdeahlcdcckJcdeahlcdcckJcdeahjahlahlahlahlahlahlahlcgccgdcgcbELbELbCvahlahlcjtcmscmocmncmrcmpcjtahlbCvcegbELcnzcmxcicclAclAclBciccmucmvcmtcnFcnHckVcmAcmvcmzcmAcmvdtocnOcnMcmFcmGcmHcmEckbcnIcicbOPclTcmKclTbOPclVcmLclVbOPclZcmMclZbOPahlahlahlahlahlahlaaeahlahlahlahlahlahlahlbRJahlahlahjcmNahlahlahlahlahlbRJahlahlahlahlahjahjahlahlahlahlahlahjcbnblAcmObgZcphblAbgZbPVbKLbKLbQabKLchEchEchEbPXbPYchKckGcnQcnPcmTckGahlahlahjahlahlahjahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahldpXahjcdcckJcdeahlcdcckJcdeahjcdcckJcdeahjahjahjahjahjahjahjahjbCvbCvbCvbCvbELbCvahjahjcjtcmPcoZcoUcoPcmPcjtahjbCvciccnbclecoccicclAclBclBciccndcnecmycodckbclHclGclJclGclGcnkcnlcnScnRcnocnncnncnncobcoacicbOPbOPbOPbOPbOPbOPbOPbOPbOPbOPbOPbOPbOPahlahlahlahlahlahlahlahlahlahlahlahlahlahlahjahlahlahlahlahlahlahlahlahlbRJahlahlahlahlahjahjahlahlahlahlahjdsicbncnrblAbrqcpGblAbgZbgZbgZbgZbgZblAbgZahlahjahlahjahlcnscntcnucnvcnwahjahjahjahjahjahjahjahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlaaRahjcdccnxcdeahlcdccnxcdeahlcdccnxcdeahjdpXahjahlahlahlahlahlahlahlahlbLWbELcaqahlahlcjtcmZcnfcpkcnqcngcjtcjtcjtciccnEclecoeciccicciccicciccnGckUcofcnpckbckUckUckUbQybQwccOckbckbcnpckUcopckUckUcohcogcicahjahlahlahlahjahjahlahlahjahlahlahlahjahlahlahlahlahlahlahlahlahlahlahlahlahlahlahjahlaaeahlahlahlahlahlahlahlbRJahlahlahlahlahlahjahlahlahlahlahldsicbnblAaBRbgZbLkblAblAblAblAblAblAblAbgZahlahjahlahjahlahjcnVcnWcnVahjahlahlahjahlahlahjahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl diff --git a/bot/NanoTrasenBot.py b/bot/NanoTrasenBot.py index 816049cab99..af97829d22d 100644 --- a/bot/NanoTrasenBot.py +++ b/bot/NanoTrasenBot.py @@ -902,42 +902,34 @@ while True: print truesender+":"+temdata arg = temdata check = temdata.lower() - if check[0:5] == "https": - if len(temporal_list) == 1: - #commenting out rather then remove the if and else because this uses odd spaced based indenting that doesn't seem to play well with notepad++ and im not fucking with that. attempting to do so broke everything already and i can't into python. so this works - #conn.privmsg(targetchannel,sender+" :Secure Youtube does NOT exist") - #break - else: - #temporal_list2.append("Secure Youtube does NOT exist") - break + + if cache_youtube_links == True: + result = YTCV2(arg) else: - if cache_youtube_links == True: - result = YTCV2(arg) + result = YTCV2(arg,0) + if type(result) == str: + ### To remove =" + if result[0:4] == 'nt="': + result = result[4:] + pass + elif result[0:2] == '="': + result = result[2:] + pass else: - result = YTCV2(arg,0) - if type(result) == str: - ### To remove =" - if result[0:4] == 'nt="': - result = result[4:] - pass - elif result[0:2] == '="': - result = result[2:] - pass - else: - pass - if """ in result: - result.replace(""",'"') - if len(temporal_list) == 1: - conn.privmsg(targetchannel,sender+" : "+result) - break - else: - temporal_list2.append(result) + pass + if """ in result: + result.replace(""",'"') + if len(temporal_list) == 1: + conn.privmsg(targetchannel,sender+" : "+result) + break else: - if len(temporal_list) == 1: - conn.privmsg(targetchannel,sender+" : The video does not exist") - break - else: - temporal_list2.append("The video does not exist") + temporal_list2.append(result) + else: + if len(temporal_list) == 1: + conn.privmsg(targetchannel,sender+" : The video does not exist") + break + else: + temporal_list2.append("The video does not exist") if len(temporal_list) == 1: pass else: diff --git a/code/game/area/areas.dm b/code/game/area/areas.dm index d41cdb4a533..329e9db7804 100644 --- a/code/game/area/areas.dm +++ b/code/game/area/areas.dm @@ -392,7 +392,7 @@ //Anything not bolted down is moved, everything else is destroyed if(!AM.anchored) - AM.Move(D) + AM.Move(D, SOUTH) else qdel(AM) if(istype(T, /turf/simulated)) diff --git a/code/game/atoms_movable.dm b/code/game/atoms_movable.dm index 0d5a26dba65..af888fa3c1f 100644 --- a/code/game/atoms_movable.dm +++ b/code/game/atoms_movable.dm @@ -4,23 +4,58 @@ var/anchored = 0 var/move_speed = 10 var/l_move_time = 1 - var/m_flag = 1 var/throwing = 0 var/throw_speed = 2 var/throw_range = 7 var/mob/pulledby = null var/languages = 0 //For say() and Hear() + var/inertia_dir = 0 glide_size = 8 -/atom/movable/Move() - var/atom/A = src.loc - . = ..() +/atom/movable/Move(atom/newloc, direct = 0) + if(!loc || !newloc) return 0 + last_move = direct + var/atom/oldloc = loc + + if(loc != newloc) + if (!(direct & (direct - 1))) //Cardinal move + . = ..() + else //Diagonal move, split it into cardinal moves + if (direct & 1) + if (direct & 4) + if (step(src, NORTH)) + . = step(src, EAST) + else if (step(src, EAST)) + . = step(src, NORTH) + else if (direct & 8) + if (step(src, NORTH)) + . = step(src, WEST) + else if (step(src, WEST)) + . = step(src, NORTH) + else if (direct & 2) + if (direct & 4) + if (step(src, SOUTH)) + . = step(src, EAST) + else if (step(src, EAST)) + . = step(src, SOUTH) + else if (direct & 8) + if (step(src, SOUTH)) + . = step(src, WEST) + else if (step(src, WEST)) + . = step(src, SOUTH) + + + if(!loc || (loc == oldloc && oldloc != newloc)) + last_move = 0 + return + src.move_speed = world.timeofday - src.l_move_time src.l_move_time = world.timeofday - src.m_flag = 1 - if ((A != src.loc && A && A.z == src.z)) - src.last_move = get_dir(A, src.loc) - return + + spawn(5) // Causes space drifting. /tg/station has no concept of speed, we just use 5 + if(loc && direct && last_move == direct) + if(loc == newloc) //Remove this check and people can accelerate. Not opening that can of worms just yet. + newtonian_move(last_move) /atom/movable/Del() if(isnull(gc_destroyed) && loc) @@ -69,6 +104,39 @@ return 1 return 0 +//Called whenever an object moves and by mobs when they attempt to move themselves through space +//And when an object or action applies a force on src, see newtonian_move() below +//Return 0 to have src start/keep drifting in a no-grav area and 1 to stop/not start drifting +//Mobs should return 1 if they should be able to move of their own volition, see client/Move() in mob_movement.dm +//movement_dir == 0 when stopping or any dir when trying to move +/atom/movable/proc/Process_Spacemove(var/movement_dir = 0) + if(has_gravity(src)) + return 1 + + if(pulledby) + return 1 + + if(locate(/obj/structure/lattice) in orange(1, get_turf(src))) //Not realistic but makes pushing things in space easier + return 1 + + return 0 + +/atom/movable/proc/newtonian_move(direction) //Only moves the object if it's under no gravity + + if(!loc || Process_Spacemove(0)) + inertia_dir = 0 + return 0 + + inertia_dir = direction + if(!direction) + return 1 + + + var/old_dir = dir + . = step(src, direction) + dir = old_dir + + /atom/movable/proc/hit_check() // todo: this is partly obsolete due to passflags already, add throwing stuff to mob CanPass and finish it if(src.throwing) for(var/atom/A in get_turf(src)) @@ -116,7 +184,7 @@ var/atom/step = get_step(src, (error < 0) ? tdy : tdx) if(!step) // going off the edge of the map makes get_step return null, don't let things go off the edge break - src.Move(step) + src.Move(step, get_dir(loc, step)) hit_check() error += (error < 0) ? tdist_x : -tdist_y; dist_travelled++ diff --git a/code/game/machinery/portable_turret.dm b/code/game/machinery/portable_turret.dm index d1892e8f628..0d8bc250c32 100644 --- a/code/game/machinery/portable_turret.dm +++ b/code/game/machinery/portable_turret.dm @@ -459,31 +459,18 @@ targets += C //if the perp has passed all previous tests, congrats, it is now a "shoot-me!" nominee - if(targets.len > 0) //if there are targets to shoot - - var/atom/t = pick(targets) //pick a perp from the list of targets. Targets go first because they are the most important - - if(istype(t, /mob/living)) //if a mob - var/mob/living/M = t //simple typecasting - if(M.stat != DEAD) //if the target is not dead - spawn() - popUp() //pop the turret up if it's not already up. - dir = get_dir(src, M) //even if you can't shoot, follow the target - spawn() - shootAt(M) //shoot the target, finally - - else - if(secondarytargets.len > 0) //if there are no primary targets, go for secondary targets - var/mob/t = pick(secondarytargets) - if(istype(t, /mob/living)) - if(t.stat != DEAD) - spawn() - popUp() - dir=get_dir(src, t) - shootAt(t) - else + if(!tryToShootAt(targets)) + if(!tryToShootAt(secondarytargets)) // if no valid targets, go for secondary targets spawn() - popDown() + popDown() // no valid targets, close the cover + + +/obj/machinery/porta_turret/proc/tryToShootAt(var/list/mob/living/targets) + while(targets.len > 0) + var/mob/living/M = pick(targets) + targets -= M + if(target(M)) + return 1 /obj/machinery/porta_turret/proc/popUp() //pops the turret up @@ -573,15 +560,19 @@ return threatcount -/obj/machinery/porta_turret/proc/shootAt(atom/movable/target) //shoots at a target +/obj/machinery/porta_turret/proc/target(var/mob/living/target) if(disabled) return + if(target && (target.stat != DEAD) && (!(target.lying) || emagged)) + spawn() + popUp() //pop the turret up if it's not already up. + dir = get_dir(src, target) //even if you can't shoot, follow the target + spawn() + shootAt(target) + return 1 + return - if(lasercolor && istype(target,/mob/living/carbon/human)) - var/mob/living/carbon/human/H = target - if(H.lying) - return - +/obj/machinery/porta_turret/proc/shootAt(var/mob/living/target) if(!emagged) //if it hasn't been emagged, it has to obey a cooldown rate if(last_fired || !raised) //prevents rapid-fire shooting, unless it's been emagged return diff --git a/code/game/mecha/combat/marauder.dm b/code/game/mecha/combat/marauder.dm index a0010e1a893..52818f4c72a 100644 --- a/code/game/mecha/combat/marauder.dm +++ b/code/game/mecha/combat/marauder.dm @@ -94,50 +94,21 @@ return /obj/mecha/combat/marauder/relaymove(mob/user,direction) - if(user != src.occupant) //While not "realistic", this piece is player friendly. - user.loc = get_turf(src) - user << "You climb out from [src]" - return 0 - if(!can_move) - return 0 if(zoom) if(world.time - last_message > 20) src.occupant_message("Unable to move while in zoom mode.") last_message = world.time return 0 - if(connected_port) - if(world.time - last_message > 20) - src.occupant_message("Unable to move while connected to the air system port") - last_message = world.time - return 0 - if(!thrusters && pr_inertial_movement && src.pr_inertial_movement.active()) - return 0 - if(state || !has_charge(step_energy_drain)) - return 0 - var/tmp_step_in = step_in - var/tmp_step_energy_drain = step_energy_drain - var/move_result = 0 - if(internal_damage&MECHA_INT_CONTROL_LOST) - move_result = mechsteprand() - else if(src.dir!=direction) - move_result = mechturn(direction) - else - move_result = mechstep(direction) - if(move_result) - if(istype(src.loc, /turf/space)) - if(!src.check_for_support() && pr_inertial_movement) - src.pr_inertial_movement.start(list(src,direction)) - if(thrusters) - src.pr_inertial_movement.set_process_args(list(src,direction)) - tmp_step_energy_drain = step_energy_drain*2 + return ..() - can_move = 0 - spawn(tmp_step_in) can_move = 1 - use_power(tmp_step_energy_drain) + +/obj/mecha/combat/marauder/Process_Spacemove(var/movement_dir = 0) + if(..()) + return 1 + if(thrusters && movement_dir && use_power(step_energy_drain)) return 1 return 0 - /obj/mecha/combat/marauder/verb/toggle_thrusters() set category = "Exosuit Interface" set name = "Toggle thrusters" diff --git a/code/game/mecha/mecha.dm b/code/game/mecha/mecha.dm index 338ed1bae87..acbe4455335 100644 --- a/code/game/mecha/mecha.dm +++ b/code/game/mecha/mecha.dm @@ -57,7 +57,6 @@ var/list/internals_req_access = list(access_engine,access_robotics)//required access level to open cell compartment var/datum/global_iterator/pr_int_temp_processor //normalizes internal air mixture temperature - var/datum/global_iterator/pr_inertial_movement //controls intertial movement in spesss var/datum/global_iterator/pr_give_air //moves air from tank to cabin var/datum/global_iterator/pr_internal_damage //processes internal damage @@ -130,12 +129,10 @@ internal_tank = null qdel(pr_int_temp_processor) - qdel(pr_inertial_movement) qdel(pr_give_air) qdel(pr_internal_damage) qdel(spark_system) pr_int_temp_processor = null - pr_inertial_movement = null pr_give_air = null pr_internal_damage = null spark_system = null @@ -183,7 +180,6 @@ /obj/mecha/proc/add_iterators() pr_int_temp_processor = new /datum/global_iterator/mecha_preserve_temp(list(src)) - pr_inertial_movement = new /datum/global_iterator/mecha_intertial_movement(null,0) pr_give_air = new /datum/global_iterator/mecha_tank_give_air(list(src)) pr_internal_damage = new /datum/global_iterator/mecha_internal_damage(list(src),0) @@ -206,13 +202,6 @@ return 1 - -/obj/mecha/proc/check_for_support() - if(locate(/obj/structure/grille, orange(1, src)) || locate(/obj/structure/lattice, orange(1, src)) || locate(/turf/simulated, orange(1, src)) || locate(/turf/unsimulated, orange(1, src))) - return 1 - else - return 0 - /obj/mecha/examine(mob/user) ..() var/integrity = health/initial(health)*100 @@ -304,11 +293,15 @@ //////// Movement procs //////// ////////////////////////////////// -/obj/mecha/Move() +/obj/mecha/Move(atom/newloc, direct) . = ..() if(.) events.fireEvent("onMove",get_turf(src)) - return + +/obj/mecha/Process_Spacemove(var/movement_dir = 0) + if(occupant) + return occupant.Process_Spacemove(movement_dir) //We'll just say you used the clamp to grab the wall + return ..() /obj/mecha/relaymove(mob/user,direction) if(user != src.occupant) //While not "realistic", this piece is player friendly. @@ -331,7 +324,7 @@ /obj/mecha/proc/dyndomove(direction) if(!can_move) return 0 - if(pr_inertial_movement && src.pr_inertial_movement.active()) + if(!Process_Spacemove(direction)) return 0 if(!has_charge(step_energy_drain)) return 0 @@ -341,14 +334,9 @@ else if(src.dir!=direction) move_result = mechturn(direction) else - move_result = mechstep(direction) + move_result = mechstep(direction) if(move_result) can_move = 0 - use_power(step_energy_drain) - if(istype(src.loc, /turf/space)) - if(!src.check_for_support() && pr_inertial_movement) - src.pr_inertial_movement.start(list(src,direction)) - src.log_message("Movement control lost. Inertial movement started.") if(do_after(step_in)) can_move = 1 return 1 @@ -1714,16 +1702,6 @@ var/year_integer = text2num(year) // = 2013??? return stop() return -/datum/global_iterator/mecha_intertial_movement //inertial movement in space - delay = 7 - - process(var/obj/mecha/mecha as obj,direction) - if(direction) - if(!step(mecha, direction)||mecha.check_for_support()) - src.stop() - else - src.stop() - return /datum/global_iterator/mecha_internal_damage // processing internal damage diff --git a/code/game/objects/effects/effect_system.dm b/code/game/objects/effects/effect_system.dm index 92deb65c46a..34979a6dae0 100644 --- a/code/game/objects/effects/effect_system.dm +++ b/code/game/objects/effects/effect_system.dm @@ -684,9 +684,9 @@ steam.start() -- spawns the effect /datum/effect/effect/system/ion_trail_follow/set_up(atom/atom) attach(atom) - oldposition = get_turf(atom) -/datum/effect/effect/system/ion_trail_follow/start() + +/datum/effect/effect/system/ion_trail_follow/start() //Whoever is responsible for this abomination of code should become an hero if(!src.on) src.on = 1 src.processing = 1 @@ -696,26 +696,22 @@ steam.start() -- spawns the effect if(T != src.oldposition) if(!has_gravity(T)) var/obj/effect/effect/ion_trails/I = new /obj/effect/effect/ion_trails(src.oldposition) - src.oldposition = T I.dir = src.holder.dir flick("ion_fade", I) I.icon_state = "blank" spawn( 20 ) if(I) I.delete() - spawn(2) - if(src.on) - src.processing = 1 - src.start() - else - spawn(2) - if(src.on) - src.processing = 1 - src.start() + src.oldposition = T + spawn(2) + if(src.on) + src.processing = 1 + src.start() /datum/effect/effect/system/ion_trail_follow/proc/stop() src.processing = 0 src.on = 0 + oldposition = null diff --git a/code/game/objects/items/weapons/extinguisher.dm b/code/game/objects/items/weapons/extinguisher.dm index b6201fbefba..455c87b9f4c 100644 --- a/code/game/objects/items/weapons/extinguisher.dm +++ b/code/game/objects/items/weapons/extinguisher.dm @@ -67,27 +67,29 @@ var/direction = get_dir(src,target) - if(usr.buckled && isobj(usr.buckled) && !usr.buckled.anchored ) + if(usr.buckled && isobj(usr.buckled) && !usr.buckled.anchored) spawn(0) var/obj/B = usr.buckled var/movementdirection = turn(direction,180) - B.Move(get_step(usr,movementdirection), movementdirection) + step(B, movementdirection) sleep(1) - B.Move(get_step(usr,movementdirection), movementdirection) + step(B, movementdirection) sleep(1) - B.Move(get_step(usr,movementdirection), movementdirection) + step(B, movementdirection) sleep(1) - B.Move(get_step(usr,movementdirection), movementdirection) + step(B, movementdirection) sleep(2) - B.Move(get_step(usr,movementdirection), movementdirection) + step(B, movementdirection) sleep(2) - B.Move(get_step(usr,movementdirection), movementdirection) + step(B, movementdirection) sleep(3) - B.Move(get_step(usr,movementdirection), movementdirection) + step(B, movementdirection) sleep(3) - B.Move(get_step(usr,movementdirection), movementdirection) + step(B, movementdirection) sleep(3) - B.Move(get_step(usr,movementdirection), movementdirection) + step(B, movementdirection) + + else user.newtonian_move(turn(direction, 180)) var/turf/T = get_turf(target) var/turf/T1 = get_step(T,turn(direction, 90)) @@ -118,9 +120,5 @@ if(W.loc == my_target) break sleep(2) - if(!has_gravity(user)) - user.inertia_dir = get_dir(target, user) - step(user, user.inertia_dir) else - return ..() - return + return ..() \ No newline at end of file diff --git a/code/game/objects/structures/janicart.dm b/code/game/objects/structures/janicart.dm index 0e6416867dd..ee907422628 100644 --- a/code/game/objects/structures/janicart.dm +++ b/code/game/objects/structures/janicart.dm @@ -156,7 +156,7 @@ name = "janicart" icon = 'icons/obj/vehicles.dmi' icon_state = "pussywagon" - anchored = 1 + anchored = 0 density = 1 flags = OPENCONTAINER //copypaste sorry @@ -206,6 +206,8 @@ if(user.stat || user.stunned || user.weakened || user.paralysis) unbuckle() if(istype(user.l_hand, /obj/item/key) || istype(user.r_hand, /obj/item/key)) + if(!Process_Spacemove(direction)) + return step(src, direction) update_mob() handle_rotation() @@ -213,13 +215,6 @@ user << "You'll need the keys in one of your hands to drive this [callme]." -/obj/structure/stool/bed/chair/janicart/Move() - ..() - if(buckled_mob) - if(buckled_mob.buckled == src) - buckled_mob.loc = loc - - /obj/structure/stool/bed/chair/janicart/buckle_mob(mob/M, mob/user) if(M != user || !ismob(M) || get_dist(src, user) > 1 || user.restrained() || user.lying || user.stat || M.buckled || istype(user, /mob/living/silicon)) return diff --git a/code/game/objects/structures/stool_bed_chair_nest/bed.dm b/code/game/objects/structures/stool_bed_chair_nest/bed.dm index b5e4b9c1f0c..f4a0a0a6ed9 100644 --- a/code/game/objects/structures/stool_bed_chair_nest/bed.dm +++ b/code/game/objects/structures/stool_bed_chair_nest/bed.dm @@ -22,6 +22,28 @@ unbuckle() ..() +/obj/structure/stool/bed/Move(atom/newloc, direct) //Some bed children move + . = ..() + if(buckled_mob) + buckled_mob.buckled = null + if(!buckled_mob.Move(loc, direct)) + loc = buckled_mob.loc //we gotta go back + last_move = buckled_mob.last_move + inertia_dir = last_move + buckled_mob.inertia_dir = last_move + . = 0 + buckled_mob.buckled = src + +/obj/structure/stool/bed/Process_Spacemove(var/movement_dir = 0) + if(buckled_mob) + return buckled_mob.Process_Spacemove(movement_dir) + return ..() + +/obj/structure/stool/bed/CanPass(atom/movable/mover, turf/target, height=1.5) + if(mover == buckled_mob) + return 1 + return ..() + /obj/structure/stool/bed/attack_paw(mob/user as mob) return src.attack_hand(user) @@ -49,9 +71,10 @@ buckled_mob.anchored = initial(buckled_mob.anchored) buckled_mob.update_canmove() - var/M = buckled_mob + var/mob/M = buckled_mob buckled_mob = null + M.newtonian_move(inertia_dir) afterbuckle(M) return @@ -135,13 +158,6 @@ icon_state = "down" M.pixel_y -= buckled_pixel_y_offset -/obj/structure/stool/bed/roller/Move() - ..() - if(buckled_mob) - if(buckled_mob.buckled == src) - buckled_mob.loc = src.loc - else - buckled_mob = null /obj/item/roller name = "roller bed" diff --git a/code/game/objects/structures/stool_bed_chair_nest/chairs.dm b/code/game/objects/structures/stool_bed_chair_nest/chairs.dm index 8838ba46f78..be89e7e6a5c 100644 --- a/code/game/objects/structures/stool_bed_chair_nest/chairs.dm +++ b/code/game/objects/structures/stool_bed_chair_nest/chairs.dm @@ -11,6 +11,10 @@ handle_layer() return +/obj/structure/stool/bed/chair/Move(atom/newloc, direct) + ..() + handle_rotation() + /obj/structure/stool/bed/chair/attackby(obj/item/weapon/W as obj, mob/user as mob) ..() if(istype(W, /obj/item/assembly/shock_kit)) @@ -30,10 +34,10 @@ rotate() return -/obj/structure/stool/bed/chair/proc/handle_rotation(direction) //making this into a seperate proc so office chairs can call it on Move() +/obj/structure/stool/bed/chair/proc/handle_rotation(direction) if(buckled_mob) buckled_mob.buckled = null //Temporary, so Move() succeeds. - if(!buckled_mob.Move(direction)) + if(!direction || !buckled_mob.Move(get_step(src, direction), direction)) buckled_mob.buckled = src dir = buckled_mob.dir return 0 @@ -127,11 +131,6 @@ /obj/structure/stool/bed/chair/office anchored = 0 -/obj/structure/stool/bed/chair/office/Move(direction) - if(handle_rotation(direction)) - ..() - handle_layer() - /obj/structure/stool/bed/chair/office/light icon_state = "officechair_white" diff --git a/code/game/objects/structures/transit_tubes/transit_tube_pod.dm b/code/game/objects/structures/transit_tubes/transit_tube_pod.dm index ed395cc19e5..9e9afcc61dc 100644 --- a/code/game/objects/structures/transit_tubes/transit_tube_pod.dm +++ b/code/game/objects/structures/transit_tubes/transit_tube_pod.dm @@ -55,6 +55,11 @@ for(var/atom/movable/M in src.contents) M.loc = src.loc +/obj/structure/transit_tube_pod/Process_Spacemove() + if(moving) //No drifting while moving in the tubes + return 1 + else return ..() + /obj/structure/transit_tube_pod/proc/follow_tube(var/reverse_launch) if(moving) return @@ -97,7 +102,7 @@ if(current_tube == null) dir = next_dir - Move(get_step(loc, dir)) // Allow collisions when leaving the tubes. + Move(get_step(loc, dir), dir) // Allow collisions when leaving the tubes. break last_delay = current_tube.enter_delay(src, next_dir) @@ -111,22 +116,6 @@ break density = 1 - - // If the pod is no longer in a tube, move in a line until stopped or slowed to a halt. - // /turf/inertial_drift appears to only work on mobs, and re-implementing some of the - // logic allows a gradual slowdown and eventual stop when passing over non-space turfs. - if(!current_tube && last_delay <= 10) - do - sleep(last_delay) - - if(!istype(loc, /turf/space)) - last_delay++ - - if(last_delay > 10) - break - - while(isturf(loc) && Move(get_step(loc, dir))) - moving = 0 diff --git a/code/game/turfs/space/space.dm b/code/game/turfs/space/space.dm index 13893942dfd..b8ecd518b05 100644 --- a/code/game/turfs/space/space.dm +++ b/code/game/turfs/space/space.dm @@ -52,8 +52,6 @@ if ((!(A) || src != A.loc)) return - inertial_drift(A) - if(transition) if(destination_x) @@ -71,8 +69,8 @@ L.pulling.loc = T //now we're on the new z_level, proceed the space drifting - if ((A && A.loc)) - A.loc.Entered(A) + sleep(0)//Let a diagonal move finish, if necessary + A.newtonian_move(A.inertia_dir) /turf/space/proc/Sandbox_Spacemove(atom/movable/A) var/cur_x @@ -211,4 +209,4 @@ proc/setup_map_transitions() //listamania S.Assign_Destination() /turf/space/singularity_act() - return \ No newline at end of file + return diff --git a/code/game/turfs/turf.dm b/code/game/turfs/turf.dm index 4fb55be2ffe..20f53440ed1 100644 --- a/code/game/turfs/turf.dm +++ b/code/game/turfs/turf.dm @@ -85,12 +85,7 @@ var/mob/O = M if(!O.lastarea) O.lastarea = get_area(O.loc) - var/has_gravity = O.mob_has_gravity(src) - O.update_gravity(has_gravity) - if(!has_gravity) - inertial_drift(O) - else if(!istype(src, /turf/space)) - O.inertia_dir = 0 + O.update_gravity(O.mob_has_gravity()) var/loopsanity = 100 for(var/atom/A in range(1)) @@ -128,25 +123,6 @@ /turf/proc/return_siding_icon_state() //used for grass floors, which have siding. return 0 -/turf/proc/inertial_drift(atom/movable/A as mob|obj) - if(!(A.last_move)) - return - if (A.pulledby) - return - if((istype(A, /mob/) && src.x > 2 && src.x < (world.maxx - 1) && src.y > 2 && src.y < (world.maxy-1))) - var/mob/M = A - if(M.Process_Spacemove(1)) - M.inertia_dir = 0 - return - spawn(5) - if((M && !(M.anchored) && (M.loc == src))) - if(M.inertia_dir & M.last_move) - step(M, M.inertia_dir) - return - M.inertia_dir = M.last_move - step(M, M.inertia_dir) - return - /turf/proc/levelupdate() for(var/obj/O in src) if(O.level == 1) diff --git a/code/modules/mob/living/carbon/alien/alien.dm b/code/modules/mob/living/carbon/alien/alien.dm index d2845a672ed..9e5285b6cf1 100644 --- a/code/modules/mob/living/carbon/alien/alien.dm +++ b/code/modules/mob/living/carbon/alien/alien.dm @@ -158,9 +158,6 @@ /mob/living/carbon/alien/SpeciesCanConsume() return 1 // Aliens can eat, and they can be fed food/drink -/mob/living/carbon/alien/Process_Spaceslipping() - return 0 // Don't slip in space. - /mob/living/carbon/alien/Stat() statpanel("Status") diff --git a/code/modules/mob/living/carbon/alien/humanoid/caste/hunter.dm b/code/modules/mob/living/carbon/alien/humanoid/caste/hunter.dm index dcbcba1ded8..68c63a16410 100644 --- a/code/modules/mob/living/carbon/alien/humanoid/caste/hunter.dm +++ b/code/modules/mob/living/carbon/alien/humanoid/caste/hunter.dm @@ -136,7 +136,7 @@ var/atom/step = get_step(src, get_dir(src,target)) if(!step) break - src.Move(step) + src.Move(step, get_dir(src, step)) hit_check() error += (error < 0) ? tdist_x : -tdist_y; dist_travelled++ diff --git a/code/modules/mob/living/carbon/carbon.dm b/code/modules/mob/living/carbon/carbon.dm index 55076006232..52ae23cc879 100644 --- a/code/modules/mob/living/carbon/carbon.dm +++ b/code/modules/mob/living/carbon/carbon.dm @@ -309,20 +309,7 @@ item.layer = initial(item.layer) src.visible_message("[src] has thrown [item].") - if(!src.lastarea) - src.lastarea = get_area(src.loc) - if(!has_gravity(src)) - src.inertia_dir = get_dir(target, src) - step(src, inertia_dir) - - -/* - if(istype(src.loc, /turf/space) || (src.flags & NOGRAV)) //they're in space, move em one space in the opposite direction - src.inertia_dir = get_dir(target, src) - step(src, inertia_dir) -*/ - - + newtonian_move(get_dir(target, src)) item.throw_at(target, item.throw_range, item.throw_speed) diff --git a/code/modules/mob/living/carbon/human/human.dm b/code/modules/mob/living/carbon/human/human.dm index 6e4590fb240..2a0a5a10e6a 100644 --- a/code/modules/mob/living/carbon/human/human.dm +++ b/code/modules/mob/living/carbon/human/human.dm @@ -43,7 +43,7 @@ return ..() /mob/living/carbon/human/Bump(atom/movable/AM as mob|obj, yes) - if ((!( yes ) || now_pushing)) + if ((!( yes ) || now_pushing || buckled)) return now_pushing = 1 if (ismob(AM)) @@ -111,7 +111,7 @@ if(pulling == AM) stop_pulling() var/t = get_dir(src, AM) - AM.Move(get_step(AM, t)) + AM.Move(get_step(AM, t), t) now_pushing = 0 /mob/living/carbon/human/Stat() diff --git a/code/modules/mob/living/carbon/human/human_movement.dm b/code/modules/mob/living/carbon/human/human_movement.dm index 67dc42a8559..b5ad5610e7e 100644 --- a/code/modules/mob/living/carbon/human/human_movement.dm +++ b/code/modules/mob/living/carbon/human/human_movement.dm @@ -5,40 +5,20 @@ . += ..() . += config.human_delay -/mob/living/carbon/human/Process_Spacemove(var/check_drift = 0) - //Can we act - if(!canmove) return 0 +/mob/living/carbon/human/Process_Spacemove(var/movement_dir = 0) + + if(..()) + return 1 //Do we have a working jetpack - if(istype(back, /obj/item/weapon/tank/jetpack)) + if(istype(back, /obj/item/weapon/tank/jetpack) && isturf(loc)) //Second check is so you can't use a jetpack in a mech var/obj/item/weapon/tank/jetpack/J = back - if(((!check_drift) || (check_drift && J.stabilization_on)) && (!lying) && (J.allow_thrust(0.01, src))) - inertia_dir = 0 + if((movement_dir || J.stabilization_on) && J.allow_thrust(0.01, src)) return 1 - //If no working jetpack or magboots then use the other checks - if(..()) return 1 + return 0 -/mob/living/carbon/human/Process_Spaceslipping(var/prob_slip = 5) - //If knocked out we might just hit it and stop. This makes it possible to get dead bodies and such. - if(stat) - prob_slip = 0 // Changing this to zero to make it line up with the comment, and also, make more sense. - - //Do we have magboots or such on if so no slip - if(istype(shoes, /obj/item/clothing/shoes/magboots) && (shoes.flags & NOSLIP)) - prob_slip = 0 - - //Check hands and mod slip - if(!l_hand) prob_slip -= 2 - else if(l_hand.w_class <= 2) prob_slip -= 1 - if (!r_hand) prob_slip -= 2 - else if(r_hand.w_class <= 2) prob_slip -= 1 - - prob_slip = round(prob_slip) - return(prob_slip) - - /mob/living/carbon/human/slip(var/s_amount, var/w_amount, var/obj/O, var/lube) if(isobj(shoes) && (shoes.flags&NOSLIP) && !(lube&GALOSHES_DONT_HELP)) return 0 diff --git a/code/modules/mob/living/carbon/human/species.dm b/code/modules/mob/living/carbon/human/species.dm index f6eaebd924c..546384be6c1 100644 --- a/code/modules/mob/living/carbon/human/species.dm +++ b/code/modules/mob/living/carbon/human/species.dm @@ -617,13 +617,24 @@ /datum/species/proc/movement_delay(var/mob/living/carbon/human/H) var/mspeed = 0 + if(H.status_flags & GOTTAGOFAST) + mspeed -= 1 if(!has_gravity(H)) - return -1 //It's hard to be slowed down in space by... anything - else if(H.status_flags & GOTTAGOFAST) - return -1 + mspeed += 2 //Carefully propelling yourself along the walls is actually quite slow + + if(istype(H.back, /obj/item/weapon/tank/jetpack)) + var/obj/item/weapon/tank/jetpack/J = H.back + if(J.allow_thrust(0.01, H)) + mspeed -= 3 + + if(H.l_hand) //Having your hands full makes movement harder when you're weightless. You try climbing around while holding a gun! + mspeed += 0.5 + if(H.r_hand) + mspeed += 0.5 + if(H.r_hand && H.l_hand) + mspeed += 0.5 - mspeed = 0 var/health_deficiency = (100 - H.health + H.staminaloss) if(health_deficiency >= 40) mspeed += (health_deficiency / 25) diff --git a/code/modules/mob/living/carbon/slime/slime.dm b/code/modules/mob/living/carbon/slime/slime.dm index 3d1a66a3702..3b1095043bc 100644 --- a/code/modules/mob/living/carbon/slime/slime.dm +++ b/code/modules/mob/living/carbon/slime/slime.dm @@ -151,7 +151,7 @@ step(AM, t) now_pushing = null -/mob/living/carbon/slime/Process_Spacemove() +/mob/living/carbon/slime/Process_Spacemove(var/movement_dir = 0) return 2 /mob/living/carbon/slime/Stat() diff --git a/code/modules/mob/living/living.dm b/code/modules/mob/living/living.dm index 816af74acdf..322eb3e025e 100644 --- a/code/modules/mob/living/living.dm +++ b/code/modules/mob/living/living.dm @@ -315,9 +315,9 @@ return -/mob/living/Move(a, b, flag) - if (buckled) - return +/mob/living/Move(atom/newloc, direct) + if (buckled && buckled.loc != newloc && !buckled.anchored) + return buckled.Move(newloc, direct) if (restrained()) stop_pulling() @@ -328,7 +328,7 @@ for(var/mob/living/M in range(src, 1)) if ((M.pulling == src && M.stat == 0 && !( M.restrained() ))) t7 = null - if ((t7 && (pulling && ((get_dist(src, pulling) <= 1 || pulling.loc == loc) && (client && client.moving))))) + if (t7 && pulling && (get_dist(src, pulling) <= 1 || pulling.loc == loc)) var/turf/T = loc . = ..() @@ -395,12 +395,12 @@ if(check_dna_integrity(M)) //blood DNA var/mob/living/carbon/DNA_helper = pulling H.blood_DNA[DNA_helper.dna.unique_enzymes] = DNA_helper.dna.blood_type - pulling.Move(T) + pulling.Move(T, get_dir(pulling, T)) if(M) M.start_pulling(t) else if (pulling) - pulling.Move(T) + pulling.Move(T, get_dir(pulling, T)) else stop_pulling() . = ..() @@ -638,4 +638,4 @@ return(gain) /mob/living/singularity_pull(S) - step_towards(src,S) \ No newline at end of file + step_towards(src,S) diff --git a/code/modules/mob/living/silicon/robot/robot_movement.dm b/code/modules/mob/living/silicon/robot/robot_movement.dm index 158d11795fb..fe89288765e 100644 --- a/code/modules/mob/living/silicon/robot/robot_movement.dm +++ b/code/modules/mob/living/silicon/robot/robot_movement.dm @@ -1,4 +1,4 @@ -/mob/living/silicon/robot/Process_Spacemove() +/mob/living/silicon/robot/Process_Spacemove(var/movement_dir = 0) if(module) for(var/obj/item/weapon/tank/jetpack/J in module.modules) if(J && istype(J, /obj/item/weapon/tank/jetpack)) diff --git a/code/modules/mob/living/simple_animal/constructs.dm b/code/modules/mob/living/simple_animal/constructs.dm index c010d9daf55..4ff94d16b97 100644 --- a/code/modules/mob/living/simple_animal/constructs.dm +++ b/code/modules/mob/living/simple_animal/constructs.dm @@ -238,5 +238,5 @@ playstyle_string = "You are a Harvester. You are not strong, but your powers of domination will assist you in your role: \ Bring those who still cling to this world of illusion back to the Geometer so they may know Truth." -/mob/living/simple_animal/construct/harvester/Process_Spacemove(var/check_drift = 0) +/mob/living/simple_animal/construct/harvester/Process_Spacemove(var/movement_dir = 0) return 1 \ No newline at end of file diff --git a/code/modules/mob/living/simple_animal/friendly/crab.dm b/code/modules/mob/living/simple_animal/friendly/crab.dm index 5cc28028e21..0ac3781a406 100644 --- a/code/modules/mob/living/simple_animal/friendly/crab.dm +++ b/code/modules/mob/living/simple_animal/friendly/crab.dm @@ -28,8 +28,10 @@ if(isturf(src.loc) && !resting && !buckled) //This is so it only moves if it's not inside a closet, gentics machine, etc. turns_since_move++ if(turns_since_move >= turns_per_move) - Move(get_step(src,pick(4,8))) - turns_since_move = 0 + var/east_vs_west = pick(4,8) + if(Process_Spacemove(east_vs_west)) + Move(get_step(src,east_vs_west), east_vs_west) + turns_since_move = 0 regenerate_icons() //COFFEE! SQUEEEEEEEEE! diff --git a/code/modules/mob/living/simple_animal/friendly/farm_animals.dm b/code/modules/mob/living/simple_animal/friendly/farm_animals.dm index 5883e9ca38c..ebb220c9a72 100644 --- a/code/modules/mob/living/simple_animal/friendly/farm_animals.dm +++ b/code/modules/mob/living/simple_animal/friendly/farm_animals.dm @@ -57,7 +57,7 @@ var/step = get_step(src, direction) if(step) if(locate(/obj/effect/spacevine) in step) - Move(step) + Move(step, get_dir(src, step)) /mob/living/simple_animal/hostile/retaliate/goat/Retaliate() ..() diff --git a/code/modules/mob/living/simple_animal/hostile/bear.dm b/code/modules/mob/living/simple_animal/hostile/bear.dm index 7953f92cdae..748e216feed 100644 --- a/code/modules/mob/living/simple_animal/hostile/bear.dm +++ b/code/modules/mob/living/simple_animal/hostile/bear.dm @@ -54,7 +54,7 @@ else icon_state = "bearfloor" -/mob/living/simple_animal/hostile/bear/Process_Spacemove(var/check_drift = 0) +/mob/living/simple_animal/hostile/bear/Process_Spacemove(var/movement_dir = 0) return 1 //No drifting in space for space bears! /mob/living/simple_animal/hostile/bear/FindTarget() diff --git a/code/modules/mob/living/simple_animal/hostile/carp.dm b/code/modules/mob/living/simple_animal/hostile/carp.dm index 24390b58870..a543b85b750 100644 --- a/code/modules/mob/living/simple_animal/hostile/carp.dm +++ b/code/modules/mob/living/simple_animal/hostile/carp.dm @@ -38,7 +38,7 @@ F faction = list("carp") -/mob/living/simple_animal/hostile/carp/Process_Spacemove(var/check_drift = 0) +/mob/living/simple_animal/hostile/carp/Process_Spacemove(var/movement_dir = 0) return 1 //No drifting in space for space carp! //original comments do not steal /mob/living/simple_animal/hostile/carp/FindTarget() diff --git a/code/modules/mob/living/simple_animal/hostile/faithless.dm b/code/modules/mob/living/simple_animal/hostile/faithless.dm index 5753a93cb96..b818475bb03 100644 --- a/code/modules/mob/living/simple_animal/hostile/faithless.dm +++ b/code/modules/mob/living/simple_animal/hostile/faithless.dm @@ -31,7 +31,7 @@ faction = list("faithless") -/mob/living/simple_animal/hostile/faithless/Process_Spacemove(var/check_drift = 0) +/mob/living/simple_animal/hostile/faithless/Process_Spacemove(var/movement_dir = 0) return 1 /mob/living/simple_animal/hostile/faithless/FindTarget() diff --git a/code/modules/mob/living/simple_animal/hostile/syndicate.dm b/code/modules/mob/living/simple_animal/hostile/syndicate.dm index 09deb6c7ba7..de4d1fd2b3b 100644 --- a/code/modules/mob/living/simple_animal/hostile/syndicate.dm +++ b/code/modules/mob/living/simple_animal/hostile/syndicate.dm @@ -99,7 +99,7 @@ corpse = /obj/effect/landmark/mobcorpse/syndicatecommando speed = 1 -/mob/living/simple_animal/hostile/syndicate/melee/space/Process_Spacemove(var/check_drift = 0) +/mob/living/simple_animal/hostile/syndicate/melee/space/Process_Spacemove(var/movement_dir = 0) return /mob/living/simple_animal/hostile/syndicate/ranged @@ -131,7 +131,7 @@ corpse = /obj/effect/landmark/mobcorpse/syndicatecommando speed = 1 -/mob/living/simple_animal/hostile/syndicate/ranged/space/Process_Spacemove(var/check_drift = 0) +/mob/living/simple_animal/hostile/syndicate/ranged/space/Process_Spacemove(var/movement_dir = 0) return diff --git a/code/modules/mob/living/simple_animal/simple_animal.dm b/code/modules/mob/living/simple_animal/simple_animal.dm index 0273aee0275..1b720f37540 100644 --- a/code/modules/mob/living/simple_animal/simple_animal.dm +++ b/code/modules/mob/living/simple_animal/simple_animal.dm @@ -115,8 +115,10 @@ turns_since_move++ if(turns_since_move >= turns_per_move) if(!(stop_automated_movement_when_pulled && pulledby)) //Soma animals don't move when pulled - Move(get_step(src,pick(cardinal))) - turns_since_move = 0 + var/anydir = pick(cardinal) + if(Process_Spacemove(anydir)) + Move(get_step(src, anydir), anydir) + turns_since_move = 0 //Speaking if(!client && speak_chance) diff --git a/code/modules/mob/mob.dm b/code/modules/mob/mob.dm index 83e54e7ad10..9e989a38ae7 100644 --- a/code/modules/mob/mob.dm +++ b/code/modules/mob/mob.dm @@ -731,7 +731,6 @@ var/list/slot_equipment_priority = list( \ canmove = 1 if(buckled) lying = 90 * bed - anchored = buckled else if((ko || resting) && !lying) fall(ko) diff --git a/code/modules/mob/mob_defines.dm b/code/modules/mob/mob_defines.dm index cd9d0a0f0e0..f13d82a7c8e 100644 --- a/code/modules/mob/mob_defines.dm +++ b/code/modules/mob/mob_defines.dm @@ -106,8 +106,6 @@ var/coughedtime = null - var/inertia_dir = 0 - var/music_lastplayed = "null" var/job = null//Living diff --git a/code/modules/mob/mob_movement.dm b/code/modules/mob/mob_movement.dm index 5dc9ef9bb79..e0f206cc726 100644 --- a/code/modules/mob/mob_movement.dm +++ b/code/modules/mob/mob_movement.dm @@ -86,42 +86,6 @@ return -/atom/movable/Move(NewLoc, direct) - if (direct & (direct - 1)) - if (direct & 1) - if (direct & 4) - if (step(src, NORTH)) - step(src, EAST) - else - if (step(src, EAST)) - step(src, NORTH) - else - if (direct & 8) - if (step(src, NORTH)) - step(src, WEST) - else - if (step(src, WEST)) - step(src, NORTH) - else - if (direct & 2) - if (direct & 4) - if (step(src, SOUTH)) - step(src, EAST) - else - if (step(src, EAST)) - step(src, SOUTH) - else - if (direct & 8) - if (step(src, SOUTH)) - step(src, WEST) - else - if (step(src, WEST)) - step(src, SOUTH) - else - . = ..() - return - - /client/proc/Move_object(direct) if(mob && mob.control_object) if(mob.control_object.density) @@ -167,15 +131,14 @@ if(!mob.lastarea) mob.lastarea = get_area(mob.loc) - if(!has_gravity(mob)) - if(!mob.Process_Spacemove(0)) - return 0 - if(isobj(mob.loc) || ismob(mob.loc)) //Inside an object, tell it we moved var/atom/O = mob.loc return O.relaymove(mob, direct) + if(!mob.Process_Spacemove(direct)) + return 0 + if(isturf(mob.loc)) if(mob.restrained()) //Why being pulled while cuffed prevents you from moving @@ -244,6 +207,8 @@ . = ..() moving = 0 + if(mob && .) + mob.throwing = 0 return . @@ -342,51 +307,46 @@ ///Called by /client/Move() ///For moving in space ///Return 1 for movement 0 for none -/mob/proc/Process_Spacemove(var/check_drift = 0) - //First check to see if we can do things - if(!canmove) - return 0 +/mob/Process_Spacemove(var/movement_dir = 0) - if(!isturf(loc)) //if they're in a disposal unit, for example + if(..()) return 1 - var/dense_object = 0 - for(var/turf/turf in oview(1,src)) - if(istype(turf,/turf/space)) + var/atom/movable/dense_object_backup + for(var/atom/A in orange(1, get_turf(src))) + if(isarea(A)) continue - if(!turf.density && !mob_negates_gravity()) - continue + else if(isturf(A)) + var/turf/turf = A + if(istype(turf,/turf/space)) + continue - dense_object++ - break + if(!turf.density && !mob_negates_gravity()) + continue - if(!dense_object && (locate(/obj/structure/lattice) in oview(1, src))) - dense_object++ + return 1 - //Lastly attempt to locate any dense objects we could push off of - //TODO: If we implement objects drifing in space this needs to really push them - //Due to a few issues only anchored and dense objects will now work. - if(!dense_object) - for(var/obj/O in oview(1, src)) - if((O) && (O.density) && (O.anchored)) - dense_object++ - break + else + var/atom/movable/AM = A + if(AM == buckled) //Kind of unnecessary but let's just be sure + continue + if(AM.density) + if(AM.anchored) + if(istype(AM, /obj/item/projectile)) //"You grab the bullet and push off of it!" No + continue + return 1 + if(pulling == AM) + continue + dense_object_backup = AM - //Nothing to push off of so end here - if(!dense_object) - return 0 + if(movement_dir && dense_object_backup) + if(dense_object_backup.newtonian_move(turn(movement_dir, 180))) //You're pushing off something movable, so it moves + src << "You push off of [dense_object_backup] to propel yourself." - //Check to see if we slipped - if(prob(Process_Spaceslipping(5))) - src << "You slipped!" - src.inertia_dir = src.last_move - step(src, src.inertia_dir) - return 0 - //If not then we can reset inertia and move - inertia_dir = 0 - return 1 + return 1 + return 0 /mob/proc/mob_has_gravity(turf/T) return has_gravity(src, T) @@ -394,15 +354,6 @@ /mob/proc/mob_negates_gravity() return 0 -/mob/proc/Process_Spaceslipping(var/prob_slip = 5) - //Setup slipage - //If knocked out we might just hit it and stop. This makes it possible to get dead bodies and such. - if(stat) - prob_slip = 0 // Changing this to zero to make it line up with the comment. - - prob_slip = round(prob_slip) - return(prob_slip) - /mob/proc/Move_Pulled(var/atom/A) if (!canmove || restrained() || !pulling) return @@ -410,6 +361,10 @@ return if (!pulling.Adjacent(src)) return + if (A == loc && pulling.density) + return + if (!Process_Spacemove(get_dir(pulling.loc, A))) + return if (ismob(pulling)) var/mob/M = pulling var/atom/movable/t = M.pulling diff --git a/code/modules/power/singularity/singularity.dm b/code/modules/power/singularity/singularity.dm index 7b5f7fd65dd..e5b8c0d21a1 100644 --- a/code/modules/power/singularity/singularity.dm +++ b/code/modules/power/singularity/singularity.dm @@ -232,10 +232,7 @@ movement_dir = get_dir(src,target) //moves to a singulo beacon, if there is one if(current_size >= 9)//The superlarge one does not care about things in its way - spawn(0) - step(src, movement_dir) - spawn(1) - step(src, movement_dir) + step(src, movement_dir) return 1 else if(check_turfs_in(movement_dir)) last_failed_movement = 0//Reset this because we moved @@ -380,4 +377,4 @@ var/dist = max((current_size - 2),1) explosion(src.loc,(dist),(dist*2),(dist*4)) qdel(src) - return(gain) \ No newline at end of file + return(gain) diff --git a/code/modules/projectiles/firing.dm b/code/modules/projectiles/firing.dm index 652aaf954f6..e99ce0b32eb 100644 --- a/code/modules/projectiles/firing.dm +++ b/code/modules/projectiles/firing.dm @@ -11,6 +11,7 @@ if(i > 1) newshot() user.changeNext_move(CLICK_CD_RANGE) + user.newtonian_move(get_dir(target, user)) update_icon() return 1 diff --git a/code/modules/projectiles/projectile.dm b/code/modules/projectiles/projectile.dm index 2d214d6a36f..5e097ea37c9 100644 --- a/code/modules/projectiles/projectile.dm +++ b/code/modules/projectiles/projectile.dm @@ -136,6 +136,9 @@ else return 1 +/obj/item/projectile/Process_Spacemove(var/movement_dir = 0) + return 1 //Bullets don't drift in space + /obj/item/projectile/process() if(kill_count < 1) diff --git a/code/modules/reagents/reagent_containers/spray.dm b/code/modules/reagents/reagent_containers/spray.dm index 87b82950be1..ddfb006ba68 100644 --- a/code/modules/reagents/reagent_containers/spray.dm +++ b/code/modules/reagents/reagent_containers/spray.dm @@ -58,6 +58,7 @@ playsound(src.loc, 'sound/effects/spray2.ogg', 50, 1, -6) user.changeNext_move(CLICK_CD_RANGE) + user.newtonian_move(get_dir(A, user)) if(reagents.has_reagent("sacid")) message_admins("[key_name_admin(user)] fired sulphuric acid from \a [src].") diff --git a/html/changelog.html b/html/changelog.html index b3528ac9971..bb75a0bf2cb 100644 --- a/html/changelog.html +++ b/html/changelog.html @@ -55,6 +55,37 @@ --> +