diff --git a/code/game/machinery/kitchen/smartfridge.dm b/code/game/machinery/kitchen/smartfridge.dm
index d02e5fd4f46..f35e91d9171 100644
--- a/code/game/machinery/kitchen/smartfridge.dm
+++ b/code/game/machinery/kitchen/smartfridge.dm
@@ -1,7 +1,8 @@
-/* SmartFridge. Much todo
-*/
+// -------------------------
+// SmartFridge. Much todo
+// -------------------------
/obj/machinery/smartfridge
- name = "\improper SmartFridge"
+ name = "smartfridge"
icon = 'icons/obj/vending.dmi'
icon_state = "smartfridge"
layer = 2.9
@@ -15,49 +16,17 @@
var/icon_on = "smartfridge"
var/icon_off = "smartfridge-off"
var/item_quants = list()
- var/ispowered = 1 //starts powered
- var/isbroken = 0
-
-/obj/machinery/smartfridge/proc/accept_check(var/obj/item/O as obj)
- if(istype(O,/obj/item/weapon/reagent_containers/food/snacks/grown/) || istype(O,/obj/item/seeds/))
- return 1
- return 0
-
-/obj/machinery/smartfridge/seeds
- name = "\improper MegaSeed Servitor"
- desc = "When you need seeds fast!"
- icon = 'icons/obj/vending.dmi'
- icon_state = "seeds"
- icon_on = "seeds"
- icon_off = "seeds-off"
-
-/obj/machinery/smartfridge/seeds/accept_check(var/obj/item/O as obj)
- if(istype(O,/obj/item/seeds/))
- return 1
- return 0
-
-/obj/machinery/smartfridge/extract
- name = "\improper Slime Extract Storage"
- desc = "A refrigerated storage unit for slime extracts"
-
-/obj/machinery/smartfridge/extract/accept_check(var/obj/item/O as obj)
- if(istype(O,/obj/item/slime_extract))
- return 1
- return 0
-
-
+/*
/obj/machinery/smartfridge/power_change()
- if( powered() )
- src.ispowered = 1
- stat &= ~NOPOWER
- if(!isbroken)
- icon_state = icon_on
+ ..()
+ update_icon()
+*/
+/obj/machinery/smartfridge/update_icon()
+ if(!stat)
+ icon_state = icon_on
else
- spawn(rand(0, 15))
- src.ispowered = 0
- stat |= NOPOWER
- if(!isbroken)
- icon_state = icon_off
+ icon_state = icon_off
+
/*******************
@@ -65,51 +34,83 @@
********************/
/obj/machinery/smartfridge/attackby(var/obj/item/O as obj, var/mob/user as mob)
- if(!src.ispowered)
- user << "\The [src] is unpowered and useless."
- return
+ if(stat)
+ return 0
+
+ if(contents.len >= max_n_of_items)
+ user << "\The [src] is full."
+ return 0
if(accept_check(O))
- if(contents.len >= max_n_of_items)
- user << "\The [src] is full."
- return 1
- else
- user.before_take_item(O)
- O.loc = src
- if(item_quants[O.name])
- item_quants[O.name]++
- else
- item_quants[O.name] = 1
- user.visible_message("[user] has added \the [O] to \the [src].", \
- "You add \the [O] to \the [src].")
-
- else if(istype(O, /obj/item/weapon/storage/bag/plants))
- var/obj/item/weapon/storage/bag/plants/P = O
- var/plants_loaded = 0
- for(var/obj/G in P.contents)
- if(accept_check(G))
- if(contents.len >= max_n_of_items)
- user << "\The [src] is full."
- return 1
- else
- P.remove_from_storage(G,src)
- if(item_quants[G.name])
- item_quants[G.name]++
- else
- item_quants[G.name] = 1
- plants_loaded++
- if(plants_loaded)
-
- user.visible_message("[user] loads \the [src] with \the [P].", \
- "You load \the [src] with \the [P].")
- if(P.contents.len > 0)
- user << "Some items are refused."
-
- else
- user << "\The [src] smartly refuses [O]."
+ load(O)
+ user.visible_message("[user] has added \the [O] to \the [src].", "You add \the [O] to \the [src].")
+ updateUsrDialog()
return 1
+ var/loaded = 0
+
+ if(istype(O, /obj/item/weapon/storage/bag))
+ var/obj/item/weapon/storage/P = O
+ for(var/obj/G in P.contents)
+ if(contents.len >= max_n_of_items)
+ break
+ if(accept_check(G))
+ load(G)
+ loaded++
+ else if(istype(O, /obj/item/weapon/tray))
+ var/obj/item/weapon/tray/T = O
+ for(var/obj/item/snack in T)
+ if(contents.len >= max_n_of_items)
+ break
+ if(accept_check(snack))
+ T.carrying -= snack
+ load(snack)
+ loaded++
+ else
+ user << "\The [src] smartly refuses [O]."
+ updateUsrDialog()
+ return 0
+
+ // this is a little backwards but it avoids duplication.
+ // this code follows storage items and trays only.
+ if(loaded)
+ if(contents.len >= max_n_of_items)
+ user.visible_message("[user] loads \the [src] with \the [O].", \
+ "You fill \the [src] with \the [O].")
+ else
+ user.visible_message("[user] loads \the [src] with \the [O].", \
+ "You load \the [src] with \the [O].")
+ if(O.contents.len > 0)
+ user << "Some items are refused."
+ else
+ user << "There is nothing in [O] to put in [src]."
+ return 0
+
updateUsrDialog()
+ return 1
+
+
+
+/obj/machinery/smartfridge/proc/accept_check(var/obj/item/O as obj)
+ if(istype(O,/obj/item/weapon/reagent_containers/food/snacks/grown/) || istype(O,/obj/item/seeds/))
+ return 1
+ return 0
+
+/obj/machinery/smartfridge/proc/load(var/obj/item/O as obj)
+ if(istype(O.loc,/mob))
+ var/mob/M = O.loc
+ M.before_take_item(O)
+ else if(istype(O.loc,/obj/item/weapon/storage))
+ var/obj/item/weapon/storage/S = O.loc
+ S.remove_from_storage(O,src)
+
+ O.loc = src
+ var/n = O.name
+
+ if(item_quants[n])
+ item_quants[n]++
+ else
+ item_quants[n] = 1
/obj/machinery/smartfridge/attack_paw(mob/user as mob)
return src.attack_hand(user)
@@ -126,7 +127,7 @@
********************/
/obj/machinery/smartfridge/interact(mob/user as mob)
- if(!src.ispowered)
+ if(stat)
return
var/dat = "Select an item:
"
@@ -148,6 +149,17 @@
dat += "(x25)"
if(N > 1)
dat += "(All)"
+ /*
+ if((findtext(O,"seeds") || findtext(O,"mycelium")) && N>1)
+ var/max_bags = round((N-1)/7)+1
+ dat += "(1 Bag)"
+ if(max_bags > 2) // at least 14
+ dat += "(2 Bags)"
+ if(max_bags > 5) // at least 35
+ dat += "(5 Bags)"
+ if(max_bags > 1)
+ dat += "(Bag All)"
+ */
dat += "
"
dat += ""
@@ -155,11 +167,39 @@
onclose(user, "smartfridge")
return
-/obj/machinery/smartfridge/Topic(href, href_list)
+/obj/machinery/smartfridge/Topic(var/href, var/list/href_list)
if(..())
return
usr.set_machine(src)
+ /*
+ if(href_list["bagvend"]) // bag seeds and dispense
+ var/N = href_list["bagvend"]
+ var/amount = text2num(href_list["amount"])
+ if(item_quants[N] <= 0) // Sanity check, there are probably ways to press the button when it shouldn't be possible.
+ return
+
+ item_quants[N] = max(item_quants[N] - amount*7, 0)
+
+ var/i = amount * 7
+ var/j = 0
+ var/obj/item/weapon/storage/bag/seeds/SB = new(loc)
+ for(var/obj/O in contents)
+ if(name_filter(O.name) == N)
+ O.loc = SB
+ i--
+ j++
+ if(i <= 0)
+ break
+ if(j >= 7)
+ j = 0
+ SB.update_icon()
+ SB = new(loc)
+ SB.update_icon()
+
+ src.updateUsrDialog()
+ return
+ */
var/N = href_list["vend"]
var/amount = text2num(href_list["amount"])
@@ -178,3 +218,74 @@
src.updateUsrDialog()
return
+
+// ----------------------------
+// Bar drink smartfridge
+// ----------------------------
+/obj/machinery/smartfridge/drinks
+ name = "drink showcase"
+ desc = "A refrigerated storage unit for tasty tasty alcohol."
+
+/obj/machinery/smartfridge/drinks/accept_check(var/obj/item/O as obj)
+ if(!istype(O,/obj/item/weapon/reagent_containers) || !O.reagents || !O.reagents.reagent_list.len)
+ return 0
+ if(istype(O,/obj/item/weapon/reagent_containers/glass) || istype(O,/obj/item/weapon/reagent_containers/food/drinks) || istype(O,/obj/item/weapon/reagent_containers/food/condiment))
+ return 1
+
+
+// -------------------------------------
+// Xenobiology Slime-Extract Smartfridge
+// -------------------------------------
+/obj/machinery/smartfridge/extract
+ name = "smart slime extract storage"
+ desc = "A refrigerated storage unit for slime extracts."
+
+/obj/machinery/smartfridge/extract/accept_check(var/obj/item/O as obj)
+ if(istype(O,/obj/item/slime_extract))
+ return 1
+ return 0
+
+// -----------------------------
+// Chemistry Medical Smartfridge
+// -----------------------------
+/obj/machinery/smartfridge/chemistry
+ name = "smart chemical storage"
+ desc = "A refrigerated storage unit for medicine storage."
+ var/list/spawn_meds = list(/obj/item/weapon/reagent_containers/pill/inaprovaline = 12,/obj/item/weapon/reagent_containers/pill/antitox = 1,
+ /obj/item/weapon/reagent_containers/glass/bottle/inaprovaline = 1, /obj/item/weapon/reagent_containers/glass/bottle/antitoxin = 1)
+
+/obj/machinery/smartfridge/chemistry/New()
+ ..()
+ for(var/typekey in spawn_meds)
+ var/amount = spawn_meds[typekey]
+ if(isnull(amount)) amount = 1
+ while(amount)
+ var/obj/item/I = new typekey(src)
+ load(I)
+ amount--
+
+/obj/machinery/smartfridge/chemistry/accept_check(var/obj/item/O as obj)
+ if(istype(O,/obj/item/weapon/storage/pill_bottle))
+ if(O.contents.len)
+ for(var/obj/item/I in O)
+ if(!accept_check(I))
+ return 0
+ return 1
+ return 0
+ if(!istype(O,/obj/item/weapon/reagent_containers))
+ return 0
+ if(istype(O,/obj/item/weapon/reagent_containers/pill)) // empty pill prank ok
+ return 1
+ if(!O.reagents || !O.reagents.reagent_list.len) // other empty containers not accepted
+ return 0
+ if(istype(O,/obj/item/weapon/reagent_containers/syringe) || istype(O,/obj/item/weapon/reagent_containers/glass/bottle) || istype(O,/obj/item/weapon/reagent_containers/glass/beaker) || istype(O,/obj/item/weapon/reagent_containers/spray))
+ return 1
+ return 0
+
+// ----------------------------
+// Virology Medical Smartfridge
+// ----------------------------
+/obj/machinery/smartfridge/chemistry/virology
+ name = "smart virus storage"
+ desc = "A refrigerated storage unit for volatile sample storage."
+ spawn_meds = list(/obj/item/weapon/reagent_containers/syringe/antiviral = 4, /obj/item/weapon/reagent_containers/glass/bottle/cold = 1, /obj/item/weapon/reagent_containers/glass/bottle/flu_virion = 1, /obj/item/weapon/reagent_containers/glass/bottle/mutagen = 1, /obj/item/weapon/reagent_containers/glass/bottle/synaptizine = 1)
\ No newline at end of file
diff --git a/code/modules/reagents/reagent_containers/glass/bottle.dm b/code/modules/reagents/reagent_containers/glass/bottle.dm
index d197d3ca2eb..1837e3b2eef 100644
--- a/code/modules/reagents/reagent_containers/glass/bottle.dm
+++ b/code/modules/reagents/reagent_containers/glass/bottle.dm
@@ -87,6 +87,17 @@
..()
reagents.add_reagent("mutagen", 30)
+
+/obj/item/weapon/reagent_containers/glass/bottle/synaptizine
+ name = "synaptizine bottle"
+ desc = "A small bottle of synaptizine."
+ icon = 'icons/obj/chemical.dmi'
+ icon_state = "bottle20"
+
+ New()
+ ..()
+ reagents.add_reagent("synaptizine", 30)
+
/obj/item/weapon/reagent_containers/glass/bottle/ammonia
name = "ammonia bottle"
desc = "A small bottle."
diff --git a/maps/tgstation.2.1.2.dmm b/maps/tgstation.2.1.2.dmm
index f949a60ee5e..d05d5ac7caa 100644
--- a/maps/tgstation.2.1.2.dmm
+++ b/maps/tgstation.2.1.2.dmm
@@ -3322,11 +3322,11 @@
"blT" = (/obj/machinery/atmospherics/pipe/manifold{pipe_color = "blue"; dir = 4; icon_state = "manifold-b-f"; initialize_directions = 11; level = 1; name = "pipe manifold"},/turf/simulated/wall/r_wall,/area/teleporter)
"blU" = (/obj/structure/disposalpipe/segment,/turf/simulated/floor{icon_state = "blue"; dir = 8},/area/hallway/primary/central)
"blV" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plating,/area/medical/medbay)
-"blW" = (/obj/structure/table,/obj/item/weapon/crowbar,/obj/item/clothing/tie/stethoscope,/obj/item/weapon/reagent_containers/spray/cleaner,/turf/simulated/floor{dir = 4; icon_state = "whiteyellowcorner"},/area/medical/medbay)
+"blW" = (/obj/machinery/atmospherics/pipe/manifold{pipe_color = "red"; dir = 1; icon_state = "manifold-r-f"; level = 1; name = "pipe manifold"},/obj/machinery/embedded_controller/radio/access_controller{exterior_door_tag = "virology_airlock_exterior"; id_tag = "virology_airlock_control"; interior_door_tag = "virology_airlock_interior"; name = "Virology Access Console"; pixel_x = 8; pixel_y = 22},/obj/machinery/light_switch{pixel_x = -4; pixel_y = 24},/turf/simulated/floor{icon_state = "white"},/area/medical/virology)
"blX" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/atmospherics/pipe/manifold{pipe_color = "red"; dir = 8; icon_state = "manifold-r-f"; initialize_directions = 11; level = 1; name = "pipe manifold"},/turf/simulated/floor{dir = 1; icon_state = "whiteyellow"},/area/medical/medbay)
"blY" = (/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/simple{pipe_color = "red"; dir = 4; icon_state = "intact-r-f"; level = 1; name = "pipe"},/turf/simulated/floor{dir = 1; icon_state = "whiteyellow"},/area/medical/medbay)
"blZ" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/simple{pipe_color = "red"; dir = 4; icon_state = "intact-r-f"; level = 1; name = "pipe"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor{dir = 1; icon_state = "whiteyellow"},/area/medical/medbay)
-"bma" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/structure/sign/nosmoking_2{pixel_x = 0; pixel_y = 30},/obj/machinery/atmospherics/unary/vent_scrubber{dir = 8; on = 1; scrub_Toxins = 0},/turf/simulated/floor{dir = 1; icon_state = "whiteyellowcorner"},/area/medical/medbay)
+"bma" = (/obj/structure/table,/obj/item/weapon/crowbar,/obj/item/clothing/tie/stethoscope,/obj/item/weapon/reagent_containers/spray/cleaner,/obj/structure/sign/nosmoking_2{pixel_x = 0; pixel_y = 30},/turf/simulated/floor{dir = 4; icon_state = "whiteyellowcorner"},/area/medical/medbay)
"bmb" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/structure/noticeboard{pixel_y = 32},/obj/machinery/camera{c_tag = "Medbay West"; dir = 2; network = list("SS13")},/turf/simulated/floor{icon_state = "white"},/area/medical/medbay)
"bmc" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/simulated/floor{icon_state = "white"},/area/medical/medbay)
"bmd" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor{icon_state = "white"},/area/medical/medbay)
@@ -4717,7 +4717,7 @@
"bMK" = (/obj/machinery/atmospherics/pipe/manifold{pipe_color = "blue"; dir = 4; icon_state = "manifold-b-f"; initialize_directions = 11; level = 1; name = "pipe manifold"},/turf/simulated/floor{icon_state = "white"},/area/medical/virology)
"bML" = (/obj/machinery/door/firedoor/border_only{dir = 4; name = "hazard door east"},/obj/machinery/door/airlock/medical{name = "Break Room"; req_access_txt = "39"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 5},/turf/simulated/floor{icon_state = "white"},/area/medical/virology)
"bMM" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/structure/extinguisher_cabinet{pixel_x = -5; pixel_y = 30},/turf/simulated/floor{icon_state = "white"},/area/medical/virology)
-"bMN" = (/obj/machinery/atmospherics/pipe/manifold{pipe_color = "red"; dir = 1; icon_state = "manifold-r-f"; level = 1; name = "pipe manifold"},/obj/machinery/embedded_controller/radio/access_controller{exterior_door_tag = "virology_airlock_exterior"; id_tag = "virology_airlock_control"; interior_door_tag = "virology_airlock_interior"; name = "Virology Access Console"; pixel_x = 8; pixel_y = 22},/turf/simulated/floor{icon_state = "white"},/area/medical/virology)
+"bMN" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/unary/vent_scrubber{dir = 8; on = 1; scrub_Toxins = 0},/turf/simulated/floor{dir = 1; icon_state = "whiteyellowcorner"},/area/medical/medbay)
"bMO" = (/obj/machinery/atmospherics/pipe/manifold{pipe_color = "red"; icon_state = "manifold-r-f"; level = 1; name = "pipe manifold"},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/simulated/floor{icon_state = "white"},/area/medical/virology)
"bMP" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/firealarm{pixel_y = 25},/turf/simulated/floor{icon_state = "white"},/area/medical/virology)
"bMQ" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/power/apc{cell_type = 5000; dir = 1; name = "Virology APC"; pixel_x = 0; pixel_y = 24},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/machinery/camera{c_tag = "Virology Module"},/turf/simulated/floor{icon_state = "white"},/area/medical/virology)
@@ -4762,8 +4762,8 @@
"bND" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/machinery/atmospherics/pipe/simple{pipe_color = "cyan"; icon_state = "intact-c"},/obj/machinery/atmospherics/pipe/simple{pipe_color = "yellow"; dir = 4; icon_state = "intact-y"; level = 2},/turf/simulated/floor/plating,/area/atmos)
"bNE" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 8; external_pressure_bound = 0; frequency = 1441; icon_state = "in"; id_tag = "n2o_out"; initialize_directions = 1; internal_pressure_bound = 4000; on = 1; pressure_checks = 2; pump_direction = 0},/turf/simulated/floor/engine/n20,/area/atmos)
"bNF" = (/turf/simulated/floor/engine/n20,/area/atmos)
-"bNG" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/wall,/area/medical/virology)
-"bNH" = (/obj/machinery/atmospherics/pipe/manifold{pipe_color = "blue"; dir = 4; icon_state = "manifold-b-f"; initialize_directions = 11; level = 1; name = "pipe manifold"},/obj/machinery/alarm{dir = 4; icon_state = "alarm0"; pixel_x = -22},/obj/structure/sink{icon_state = "sink"; dir = 8; pixel_x = -12; pixel_y = 2},/turf/simulated/floor{icon_state = "white"},/area/medical/virology)
+"bNG" = (/obj/machinery/smartfridge/chemistry,/turf/simulated/wall,/area/medical/chemistry)
+"bNH" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{req_access_txt = "0"},/turf/simulated/wall/r_wall,/area/medical/virology)
"bNI" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 1; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/simulated/floor{icon_state = "white"},/area/medical/virology)
"bNJ" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 6},/obj/machinery/hologram/holopad,/turf/simulated/floor{icon_state = "white"},/area/medical/virology)
"bNK" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor{icon_state = "white"},/area/medical/virology)
@@ -4829,8 +4829,8 @@
"bOS" = (/obj/machinery/light/small{dir = 4},/turf/simulated/floor/engine/n20,/area/atmos)
"bOT" = (/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 5},/turf/simulated/floor/plating,/area/maintenance/asmaint)
"bOU" = (/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/turf/simulated/floor/plating,/area/maintenance/asmaint)
-"bOV" = (/obj/structure/table,/obj/item/weapon/storage/box/beakers{pixel_x = 2; pixel_y = 2},/obj/item/weapon/storage/box/syringes,/obj/machinery/light_switch{pixel_x = -23; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 5},/turf/simulated/floor{dir = 8; icon_state = "whitegreen"},/area/medical/virology)
-"bOW" = (/obj/structure/stool,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 9; pixel_y = 0},/turf/simulated/floor{icon_state = "white"},/area/medical/virology)
+"bOV" = (/obj/machinery/smartfridge/chemistry/virology,/turf/simulated/floor{dir = 8; icon_state = "whitegreen"},/area/medical/virology)
+"bOW" = (/obj/structure/stool,/obj/machinery/atmospherics/pipe/simple/supply/hidden{req_access_txt = "0"},/turf/simulated/floor{icon_state = "white"},/area/medical/virology)
"bOX" = (/obj/machinery/computer/pandemic,/turf/simulated/floor{dir = 4; icon_state = "whitegreen"},/area/medical/virology)
"bOY" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plating,/area/medical/virology)
"bOZ" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/door/firedoor/border_only{dir = 1; name = "hazard door north"},/obj/machinery/door/airlock/glass_medical{id_tag = null; name = "Isolation A"; req_access_txt = "39"},/turf/simulated/floor{icon_state = "white"},/area/medical/virology)
@@ -4876,7 +4876,7 @@
"bPN" = (/obj/machinery/atmospherics/unary/outlet_injector{dir = 8; frequency = 1441; icon_state = "on"; id = "n2o_in"; on = 1; pixel_y = 1},/turf/simulated/floor/engine/n20,/area/atmos)
"bPO" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 5},/turf/simulated/wall,/area/maintenance/asmaint)
"bPP" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/wall,/area/maintenance/asmaint)
-"bPQ" = (/obj/structure/table,/obj/item/clothing/gloves/latex,/obj/machinery/requests_console{department = "Virology"; name = "Virology Requests Console"; pixel_x = -32},/obj/item/device/healthanalyzer,/obj/item/clothing/glasses/hud/health,/turf/simulated/floor{dir = 8; icon_state = "whitegreen"},/area/medical/virology)
+"bPQ" = (/obj/machinery/atmospherics/pipe/manifold{pipe_color = "blue"; dir = 1; icon_state = "manifold-b-f"; level = 1; name = "pipe manifold"},/turf/simulated/wall,/area/medical/virology)
"bPR" = (/obj/structure/table,/obj/item/weapon/hand_labeler,/obj/item/device/radio/headset/headset_med,/turf/simulated/floor{dir = 4; icon_state = "whitegreen"},/area/medical/virology)
"bPS" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating,/area/medical/virology)
"bPT" = (/obj/structure/stool/bed,/obj/item/weapon/bedsheet,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor{icon_state = "white"},/area/medical/virology)
@@ -4923,7 +4923,7 @@
"bQI" = (/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{pipe_color = "red"; icon_state = "intact-r"; level = 2},/obj/machinery/light{dir = 4; icon_state = "tube1"},/turf/simulated/floor,/area/atmos)
"bQJ" = (/obj/structure/extinguisher_cabinet{pixel_x = -27; pixel_y = 0},/obj/machinery/atmospherics/binary/pump{dir = 0; icon_state = "intact_off"; name = "Air to Port"; on = 0},/obj/machinery/light{dir = 8},/turf/simulated/floor,/area/atmos)
"bQK" = (/obj/machinery/light{dir = 4},/turf/simulated/floor,/area/atmos)
-"bQL" = (/obj/structure/table,/obj/item/weapon/reagent_containers/glass/bottle/flu_virion,/obj/item/weapon/reagent_containers/glass/bottle/cold{pixel_x = 3; pixel_y = 3},/obj/item/device/radio/intercom{pixel_x = -25},/obj/machinery/light{dir = 8},/turf/simulated/floor{dir = 8; icon_state = "whitegreen"},/area/medical/virology)
+"bQL" = (/obj/machinery/alarm{dir = 4; icon_state = "alarm0"; pixel_x = -22},/obj/structure/sink{icon_state = "sink"; dir = 8; pixel_x = -12; pixel_y = 2},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 9; pixel_y = 0},/turf/simulated/floor{icon_state = "white"},/area/medical/virology)
"bQM" = (/obj/structure/stool/bed/chair/office/light{dir = 4},/obj/effect/landmark/start{name = "Virologist"},/turf/simulated/floor{icon_state = "white"},/area/medical/virology)
"bQN" = (/obj/structure/table,/obj/item/weapon/paper_bin{pixel_x = -2; pixel_y = 5},/obj/item/weapon/pen/red,/turf/simulated/floor{dir = 4; icon_state = "whitegreen"},/area/medical/virology)
"bQO" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 1; on = 1},/turf/simulated/floor{icon_state = "white"},/area/medical/virology)
@@ -7553,12 +7553,15 @@
"cPm" = (/obj/machinery/mech_bay_recharge_port,/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/airless{icon_state = "asteroidfloor"},/area/mine/west_outpost)
"cPn" = (/obj/structure/alien/resin,/turf/simulated/floor/airless{icon_state = "floorgrime"},/area/mine/abandoned)
"cPo" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/turf/simulated/floor/plating,/area/maintenance/asmaint2)
+"cPp" = (/obj/structure/table,/obj/item/device/radio/intercom{pixel_x = -25},/obj/machinery/light{dir = 8},/obj/item/weapon/storage/box/beakers{pixel_x = 2; pixel_y = 2},/obj/item/weapon/storage/box/syringes,/turf/simulated/floor{dir = 8; icon_state = "whitegreen"},/area/medical/virology)
"cPq" = (/obj/machinery/camera{c_tag = "Theatre Storage"},/obj/machinery/atmospherics/unary/vent_scrubber{on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/simulated/floor{icon_state = "whitehall"; dir = 4},/area/crew_quarters/theatre)
"cPr" = (/obj/structure/ore_box,/obj/machinery/light_construct/small{dir = 1},/turf/simulated/floor/plating/airless/asteroid,/area/mine/explored)
"cPs" = (/obj/machinery/light_construct/small{dir = 4},/turf/simulated/floor/plating/airless/asteroid,/area/mine/explored)
"cPt" = (/obj/structure/table,/obj/item/weapon/storage/toolbox/mechanical,/turf/simulated/floor,/area/mine/north_outpost)
"cPu" = (/obj/structure/stool/bed/chair{dir = 8},/turf/simulated/floor,/area/mine/north_outpost)
"cPv" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 1; on = 1},/turf/simulated/floor,/area/mine/north_outpost)
+"cPw" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 9; pixel_y = 0},/turf/simulated/floor{icon_state = "white"},/area/medical/virology)
+"cPx" = (/obj/structure/table,/obj/item/clothing/gloves/latex,/obj/machinery/requests_console{department = "Virology"; name = "Virology Requests Console"; pixel_x = -32},/obj/item/device/healthanalyzer,/obj/item/clothing/glasses/hud/health,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor{dir = 8; icon_state = "whitegreen"},/area/medical/virology)
"cPA" = (/obj/structure/reagent_dispensers/fueltank,/turf/simulated/floor,/area/mine/north_outpost)
"cPB" = (/obj/machinery/recharge_station,/turf/simulated/floor,/area/mine/north_outpost)
"cPC" = (/obj/structure/dispenser/oxygen,/turf/simulated/floor,/area/mine/north_outpost)
@@ -8104,8 +8107,8 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaXwbfWbeDbbBbfXaXwaaaaaaaaaaafaafbfYbfYbfYbfYbfYbfYbfYaaaaaabfZbgabgbbgcbgdbdkbdkbdkbdkbdkbdkbdkbdkbgebbOaVObgfbggbghbgibgjbgkbdpaTpaTpbglbgmbgnbhNbnZbbabbabnYbbabpqboabgqaafbgubgvbfgbgwbfgbgwbfgbgxbguaafbgybgzaYbbgAbgBbgCbgDbgEbgFbgGaCxbgHbgIbgJbgKbfqbgLbgMaZybgNbcnbfsbfubprbaXbgPaZEbgQbgRbgSaZEbgTbgUbgVbgWbgXbgYbgXbgZbhabajbhabhabhabagaZMbhcbcBbcBbfEbhdbhebhfbhgbhhbhhbhibhjbhkaZPbhlbfNbhmaZUbhnbhobhpbfSbexbhqaZUcNQcNOcNNcNOcNOcNOcNPaZWaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaXwbhsbhtbhuaZZaXwaaaaaaaaaaaaaaabfYbfYbfYbfYbfYbfYbfYaaaaaabhvbhwbdkbhxbhybhybhybhybhybhybhybhybhybhAbhBbhCbhDbhEbhFbhGbhHaXKbhIbhJbhKbhLbhMbmPbhNbhNbgqbmRbmQbmWaYVaZIbgqaaabhTbfhbfgbhVbhWbhVbfgbhXbhTaaabhYbhZaYbbiabibbicbibbidbiebgGaCxaCxaZybifbdObfqbigbihaZybiibijbikbilbimbaXbinbiobipbiqbiraZEaZFbisaZFaZFaZFbitbitbitbitbitbitbitbitbczaZMbfBbfCbfDbiubivbiwbixbiybiybiybhibcGbizaZPbiAbfNbiBaZUbiCbiDbiCbiEbexbiFaZUbmJbmJbmJbmJbmJbmJbvMaZWaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabfYbfYbfYbfYbfYbfYbfYbiGbiHbiIbiJbdkbdkbdkbiKbiKbiKbiKbdkbdkbdkbdkbeKbiLaVObiMbiNbiObiPbiQaXKaVObiRbiSbjabiUbiVbiWbhSbiYbiZbhRbhQbhPbhObgOayEbjfbjgbjhbfgbhVbfgbjibjjbjkbjlbjmbjnbjobjpbibbjqbibbidbiebjraCxaCxaZybjsbdObfqbjtbjuaZybgrbcnbaXbjwbjxbjybjzbiibjAbjBbjCbjDbjEbjFbaXbjGbjHbjIbjJbjKbjLbjMbjNbjObjPbbjbbkbjQbjRbjSbjTbjUaZPbjVbiybiybjWbjXbcGbjYaZPbjZbkabkbaZUbkcbkdbkebkfbexbkgaZUcMBcNhcNhcNhcNhcNhbvMaZWaafaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabfYbfYbfYbfYbfYbfYbfYbkhbkibkhbkjbkkbdkbdkbdkbdkbdkbdkbdkbdkbklaTjaTjbkmaVOaVObknbkobkpbkqaXKaVOaVObkrbgtbhMbktbkubkvbgobgsbgpbfbbfabfcbgqaaabkCbkCbkDbkEbkFbfgbkGbkCbkCaaabkHbkIbkIbkIbkIbkIbkIbkJbkKbkLbkMbkMaZyaZybkNbkObkPaZyaZybkQbcnbaXbaXbaXbaXbkRbaXbkTbkUbaXbaXbaXbkUbaXbaXbjHbkVbkWbkXbkYbkZblablbbitblcbldblebleblfaVCbcBaZPblibcGbcGbljblkbcGbllblmblnblnbloblpblpblqbbtblrbbtaZUaZUcMycNhbwEbzpbxUcNhbvMbeBaaaaafaaaaaaaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabfYbfYbfYbfYbfYbfYbfYbltblubltblvbdkbdkbdkbiKbiKbiKbiKbdkbdkblwblxaTjblyaVOaVObknblzbhGbkqaXKbeZaVObkrbgtbazaCxaKVbkvbeYbeXbeWblIblIblAbgqaafaafbkCbkCblKblLblKbkCbkCaafaafbbQblMblNblOblPblQblRblSblTblUaCxaCxblVblWblXblYblZbmabmbbmcbmdbmcbmebmcbmcbmfbmcbmhbmgbmcbmcbmcbmibmjbmjbmkbkVbmlbkXbmmbmmbmnbmobitbczaZMbmpbmqbmrbmsbmsaZPbmtbmubmvblmbmwbcGbmxblmbmybmzbmAbmBbmCcMwcKobDUboObnGbyebxSbxRbwEbwFbxTcNhbvMbfVaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabfYbfYbfYbfYbfYbfYbfYbkhbkibkhbkjbkkbdkbdkbdkbdkbdkbdkbdkbdkbklaTjaTjbkmaVOaVObknbkobkpbkqaXKaVOaVObkrbgtbhMbktbkubkvbgobgsbgpbfbbfabfcbgqaaabkCbkCbkDbkEbkFbfgbkGbkCbkCaaabkHbkIbkIbkIbkIbkIbkIbkJbkKbkLbkMbkMaZyaZybkNbkObkPbNGaZybkQbcnbaXbaXbaXbaXbkRbaXbkTbkUbaXbaXbaXbkUbaXbaXbjHbkVbkWbkXbkYbkZblablbbitblcbldblebleblfaVCbcBaZPblibcGbcGbljblkbcGbllblmblnblnbloblpblpblqbbtblrbbtaZUaZUcMycNhbwEbzpbxUcNhbvMbeBaaaaafaaaaaaaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabfYbfYbfYbfYbfYbfYbfYbltblubltblvbdkbdkbdkbiKbiKbiKbiKbdkbdkblwblxaTjblyaVOaVObknblzbhGbkqaXKbeZaVObkrbgtbazaCxaKVbkvbeYbeXbeWblIblIblAbgqaafaafbkCbkCblKblLblKbkCbkCaafaafbbQblMblNblOblPblQblRblSblTblUaCxaCxblVbmablXblYblZbMNbmbbmcbmdbmcbmebmcbmcbmfbmcbmhbmgbmcbmcbmcbmibmjbmjbmkbkVbmlbkXbmmbmmbmnbmobitbczaZMbmpbmqbmrbmsbmsaZPbmtbmubmvblmbmwbcGbmxblmbmybmzbmAbmBbmCcMwcKobDUboObnGbyebxSbxRbwEbwFbxTcNhbvMbfVaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabfYbfYbfYbfYbfYbfYbfYbmKbiHbmLbmMbdkbdkbdkbdkbdkbdkbdkbdkbdkblwbmNaTjbmOaWSaVObknaVObdBaVOaXKaVObiRbhKbmSbazaCxaKVbkvbgqbdAbdzbbSbbRbdybgqaaaaaaaafbkCbkCbmYbkCbkCaafaaaaaabbQbmZbnabnbbncbndbndbnebnfbngaCxaCxbnhbnibcnbkTbnjbnkbnlbnkbnmbnkbnnbnkbnobnpbjCbnqbaXbaXbaXbnrbnsbnsbntbnubnvbnwbkXbnxbnyblabmobitaZLaZMbnzbnzbnAbnzbnzaZPblmblmblmblmbnBbnCbbrblmbnDbnEbnFbnGbnGbnHbfNbfNbugbfNbrvbwDbwDbwEbwFbwEcNhbvMbfVaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaabfYbfYbfYbfYbfYbfYbfYbltblubltbhwbnJbdkbdkbnKbnLbnMbnLbnLbnLbnObnPaYYbnQbnRbdsbnSbdsbnTbdtbnRbnUbnVbiSbmSbazaRXbnWbnXbgqbkBbkAblDblBblAbgqaaaaaaaafbodboebofbogbodaafaaaaaablFboibojbojbokbolbombonbkKbooaCxaCxbiibiibopbkTboqborbosbotboubovbowboxbosbotboyboybotbosaZDaZDbnsbkxbmmbkyboAbkVbkXboBboCboDboEbitboFboGboHboIboJbnGbnGboKbnGbnGboLboMboNbnGboObnGboPboQboRboSboTboUboVboVboVboVboVcAEcACcACcACcADcNqcPobfVaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabfYbfYbfYbfYbfYbfYbfYboYboZboYbpabpbbpabpabpabpabpabpcaVLbdkblwbpeaTjbpfbpgbphbpibeLbpjbpkbplbpmbpjbpjbpnbazaDYbpobkvbgqbksbjvbkwbdzbkzbgqaaaaaaaafbodbptbpubpvbodaafaaaaaabbQbpwbpxbpybpzbolbombonbkKbpAaCxaCxbpBbpCbpDbkTbpEbpFbosbpGbpHbpIbpJbpKbpLbpMbpNbpNbpObosbaXbaXbnsbiXbmmbpQbpRbpSbpTbpUbpVbpVbpWbpXbpYbpZbqabqbbqcbqdbqebqdbqdbqfbqdbmDbqgbqdbqdbqdbqhbqibqjbqkcABcrpcrocMTcMPcMUbvEcrOcrNbwDbwDcqVcNhbbxbfVaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
@@ -8126,11 +8129,11 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaafaaaaaaaaabBHbzYbBHaaaaaaaaaaafbIcbJdbIebIebIebIebIgbJebJfbIcbJgbFYbJhbJibJjbJkbIsbJlbHxbJmbJnbJobIsbIsbIsbHobJpbIubJqbIsbJrbJsbJtbJubJvbJwbJxbJybJzbJAbJBbIBaafbJCbHzbHAbJDbIJbJEbIJbHAbJFbJGbJHbHAbIKbJIbIKbJJbIKbHEbwIbwJbJKbJKbJLbJMbJNbJObJPbJQbJRbJSbJTbJUbJVbwJbjZbjZbjZbjZbJWbwPbwPbwPbwPbJXbwPbwPbwPbwPbwPbJYbGYbmJbmJbmJbryaZWaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafbupbuqbEjbEhbEhbvRbvRbvRbvRbvRbvRbvRbvRbuqbuqaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaafaaaaaaaaabBHbFPbBHaaaaafbJZbKabIcbKbbKcbKdbIebIebKebKfbIgbKgbKhbFYbKibKjbKkbKlbIsbIsbIsbKmbKnbIsbKobIsbKpbKqbIsbKrbKsbKtbKubKvbKwbKxbKybKzaafbKAbKBbJBbKCbIBaafbKDbHzbHAbKEbIJbJEbJIbKFbKGbJGbKHbHAbIJbKIbKJbKKbIJbHEbKLbKMbDRbDRbDRbDRbFsbKNbKObKPbFsbDRbDRbDRbDRbwJbKQbKRbKRbKRbKRbKRbKRbKRbKRbKSbKRbKRbKRbKRbKRbKTbKUbKVaZWaZWaZWaZWaaaaaaaafahDahDahDaaaaafaaaaaaaafaaaaaaaafaaaaaaaafaaaaaabypbuqbwRbuqbuqbvRbvRbvRbvRbvRbvRbvRbuqbuqaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaafaaaaaaaaabBHbzYbBHaaaaafbKWaRoaRmaRnbMnbIebIebIebIebIebLcbIcbLdbLebLfbLgbLhbLibJobIsbLjbLkbLlbLmbLnbLobLpbLqbLqbLrbLsbJrbLtbLubLvbLwbLxbLybLzbJybLAbJBbJBbIBaafbLBbHzbHAbLCbLDbLEbLFbHEbHAbLGbHAbHAbLHbLIbLJbLKbLLbLMbLNbLObLPbLQbLQbLRbLSbGEbLTbLUbLVbLWbxVbxVbxVbwJbLXaZWaZWaZWaZWaZWbmJaZWaZWaZWaZWaZWaZWbLYbLZbMabMbbMcbMdbMebMdbMfbMfbMfbMfbMfbMfbMfbMfbMfbMfbMfbMfbMfbMfbMfbMfbMfbMfbMfbMfbMgbMhbMhbMibuqbuqbvRbvRbMjbvRbvRbuqbuqaaaaafaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaafaafaafaaabDdbzYbDdaaaaafbMkcambIcbMmbMnbIebIebMpbMqbMrbMsbIcbKhbFYbKibHhbKkbMtbMubIsbIsbMvbHjaWNbMxbMybMzbIsbIsbMAbMBbMCbMDbMEbMFbMGbMFbMHaafbIBbIBbIBbIBbIBaafbsCbHzbHAbMIbMJbMKbMLbMMbMNbMObMPbMQbMRbMSbMTbMUbMRbMVbMWbLObxVbxVbxVbMXbMYbGEbMZbGEbNabNbbxVbxVbxVbwJbLXaZWbNcbNdbNeaZWbmJaZWbNfbNgbNhbNiaZWbNjaZWbNkbNlbNhaZWaZWaZWaafaaaaaaaafahDahDahDaaaaafaaaaaaaafaaaaaaaafaaaaaaaafaafaafbNmbNnbvQbwSbupbuqbuqbvRbvSbvRbuqbuqaafaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabNoaaaaafaafbNpbNpbNpbNpbNpbNpbNpbNpbwcbFPbwcbwcbwcbwccambIcbIcbNqbIcbIcbIcbIcbIcbIcbIcbNrbNsbKibNtbGbbHibHibNubNvbNubHjbIsbIsbIsbMzbNwbIzbIzbNxbNybNzbJsbNAbNBbNCbNDbJxbJybNEbNFbNFbIBaafbsCbHzbHAbHAbHAbLMbNGbNHbNIbNJbNKbNKbNLbNMbNKbMKbKIbNNbMWbLObxVbxVbxVbNObNPbLUbNQbGEbNRbNSbLQbLQbNTbwJbLXaZWbNUbNVbNWaZWbmJaZWbNXbNYbNZbOaaZWbObbOcbOcbOdbOebOcaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafbOfbunbunbuobupbupbuqbuqbuqbuqburaaaaafaaaaafaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabOgbOhbOibOjbOkbOjbOlbOmbOnbOobOpbOqbOrbNpbOsbOtbOubOubOubOubthbtgbtgbpdbohbocbnNbOwbOwbOwbOzbOAbFYbKibOBbOCbODbIzbIzbIzbOEbOFbIzbIzbOGbOHbOIbIsbOJbOKbOLbOMbIsbONbOObOPbKzaafbKAbOQbORbOSbIBaafbsCbOTbGvbGvbGvbOUbHAbOVbNMbOWbOXbOYbOZbLKbPabPbbPcbNNbMWbLObDRbDRbDRbDRbPdbPebMZbPfbPdbDRbDRbDRbDRbwJbLXaZWaZWbPgaZWaZWbmJaZWaZWaZWaZWbPhaZWbObbOcbPibPjbPkbOcaafaaaaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaafaafaafaaaaaaaaaaaaaafaafaafaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaaaaaaaaaaaabPlbPlbPlbPlbPlbPmbPnbPobPpbPpbPobNpbMlbPrbPrbPrbPrbPrbPrbPrbPrbPsbPsbPtbPsbPsbPubyxbwcbPvbFYbKibOBbPwbPxbPybPzbLqbPAbPBbLqbLqbPCbPDbPEbPFbPGbPHbPIbPJbIsbONbPKbPLbPMbLzbJybPNbNFbNFbIBaafbPObPPbPPbPPbxDbHzbHAbPQbKKbIJbPRbPSbNIbPTbPSbPTbNIbNNbMWbLObLPbLQbLQbPUbLSbGEbLTbLUbPVbPWbxVbxVbxVbwJbLXbLYbPXbPXbPXbPXbPXbPXbPXbPXbPXbPYbPXbPZbOcbQabQbbQcbOcaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafbQdbQebQfbQgbQfbQhbQibQjbQkbQlbtjbNpbMlbPrbQnbQobQpbQqbQrbQsbQnbQtbQubQvbtibPsbPsbyxbwcbQxbFYbKibQybQzbQAbQBbQCbQDbQEbQFbQEbQGbQHbQIbHibHibHibQJbIsbOLbIsbONbOObQKbKzaafbIBbIBbIBbIBbIBaafaafaafaafaafbsCbHzbHAbQLbKKbQMbQNbPSbIJbQObPSbQObQPbNNbMWbLObxVbQQbxVbQRbMYbGEbMZbGEbNabQSbxVbQQbxVbwJbLXbQTaZWbQUbQVaZWaZWaZWbQUbQWbQWbQVaZWaZWbOcbQXbQYbQZbOcaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaafaafaafaaabDdbzYbDdaaaaafbMkcambIcbMmbMnbIebIebMpbMqbMrbMsbIcbKhbFYbKibHhbKkbMtbMubIsbIsbMvbHjaWNbMxbMybMzbIsbIsbMAbMBbMCbMDbMEbMFbMGbMFbMHaafbIBbIBbIBbIBbIBaafbsCbHzbHAbMIbMJbMKbMLbMMblWbMObMPbMQbMRbMSbMTbMUbMRbMVbMWbLObxVbxVbxVbMXbMYbGEbMZbGEbNabNbbxVbxVbxVbwJbLXaZWbNcbNdbNeaZWbmJaZWbNfbNgbNhbNiaZWbNjaZWbNkbNlbNhaZWaZWaZWaafaaaaaaaafahDahDahDaaaaafaaaaaaaafaaaaaaaafaaaaaaaafaafaafbNmbNnbvQbwSbupbuqbuqbvRbvSbvRbuqbuqaafaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabNoaaaaafaafbNpbNpbNpbNpbNpbNpbNpbNpbwcbFPbwcbwcbwcbwccambIcbIcbNqbIcbIcbIcbIcbIcbIcbIcbNrbNsbKibNtbGbbHibHibNubNvbNubHjbIsbIsbIsbMzbNwbIzbIzbNxbNybNzbJsbNAbNBbNCbNDbJxbJybNEbNFbNFbIBaafbsCbHzbHAbHAbHAbLMbPQbQLbNIbNJbNKbNKbNLbNMbNKbMKbKIbNNbMWbLObxVbxVbxVbNObNPbLUbNQbGEbNRbNSbLQbLQbNTbwJbLXaZWbNUbNVbNWaZWbmJaZWbNXbNYbNZbOaaZWbObbOcbOcbOdbOebOcaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafbOfbunbunbuobupbupbuqbuqbuqbuqburaaaaafaaaaafaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabOgbOhbOibOjbOkbOjbOlbOmbOnbOobOpbOqbOrbNpbOsbOtbOubOubOubOubthbtgbtgbpdbohbocbnNbOwbOwbOwbOzbOAbFYbKibOBbOCbODbIzbIzbIzbOEbOFbIzbIzbOGbOHbOIbIsbOJbOKbOLbOMbIsbONbOObOPbKzaafbKAbOQbORbOSbIBaafbsCbOTbGvbGvbGvbOUbNHbOVbIJbOWbOXbOYbOZbLKbPabPbbPcbNNbMWbLObDRbDRbDRbDRbPdbPebMZbPfbPdbDRbDRbDRbDRbwJbLXaZWaZWbPgaZWaZWbmJaZWaZWaZWaZWbPhaZWbObbOcbPibPjbPkbOcaafaaaaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaafaafaafaaaaaaaaaaaaaafaafaafaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaaaaaaaaaaaabPlbPlbPlbPlbPlbPmbPnbPobPpbPpbPobNpbMlbPrbPrbPrbPrbPrbPrbPrbPrbPsbPsbPtbPsbPsbPubyxbwcbPvbFYbKibOBbPwbPxbPybPzbLqbPAbPBbLqbLqbPCbPDbPEbPFbPGbPHbPIbPJbIsbONbPKbPLbPMbLzbJybPNbNFbNFbIBaafbPObPPbPPbPPbxDbHzbLMcPxbNMcPwbPRbPSbNIbPTbPSbPTbNIbNNbMWbLObLPbLQbLQbPUbLSbGEbLTbLUbPVbPWbxVbxVbxVbwJbLXbLYbPXbPXbPXbPXbPXbPXbPXbPXbPXbPYbPXbPZbOcbQabQbbQcbOcaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafbQdbQebQfbQgbQfbQhbQibQjbQkbQlbtjbNpbMlbPrbQnbQobQpbQqbQrbQsbQnbQtbQubQvbtibPsbPsbyxbwcbQxbFYbKibQybQzbQAbQBbQCbQDbQEbQFbQEbQGbQHbQIbHibHibHibQJbIsbOLbIsbONbOObQKbKzaafbIBbIBbIBbIBbIBaafaafaafaafaafbsCbHzbHAcPpbKKbQMbQNbPSbIJbQObPSbQObQPbNNbMWbLObxVbQQbxVbQRbMYbGEbMZbGEbNabQSbxVbQQbxVbwJbLXbQTaZWbQUbQVaZWaZWaZWbQUbQWbQWbQVaZWaZWbOcbQXbQYbQZbOcaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafbQdbRabRbbRcbRdbPobRebPobRfbPobPobuAbMlbPrbQnbWobRkbQnbRlbRmbQnbRnbRobRpbUkbRrbPsbyxbwcbPvbFYbKibRsbRtbGgbRubRvbGgbRwbRxbRybGgbRzbMzazObHiccWbPJbIsbPHcdbbRDbREbRFbNDbJxbJybRGbRHbRIbIBaafaaaaaaaaaaaabJCbHzbHAbRJbQObRKbRLbRMbMIbRNbRMbRNbMIbNNbMWbLObxVbxVbxVbRObRPbLUbNQbGEbNRbRQbLQbLQbNTbwJbLXbQTaaaaaaaaaaafaafaaaaaaaaaaaaaaaaaaaaabRRbRSbRTbRUbRVaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafbQdbRWbRXbRYbRXbRZbSabSbbScbSdbSebNpbSfbPrbSgbVBbShbQnbSibSgbSgbRnbSjbSkbtkbSmbSnbSobSpbSqbSrbSsbStbSubSvbSwbSxbSybSzbSAbSBbGgbIsbMzbRAbSCccWbSDbIsbPHcdbbONbOObSEbKzaafbKAbSFbSGbSHbIBaafaaaaaaaaaaaabKDbHzbHAbHAbSIbSJbHAbHAbHAbHAbHAbHAbHAbNNbMWbLObDRbDRbDRbDRbPdbSKbMZbSLbPdbDRbDRbDRbDRbwJbLXbSMaaaaaaaaaaaaaafaafaaaaaaaaaaaaaaaaaaaafbSNbSObSNaafaaaaaaaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaAeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafbPlbPlbPlbPlbPlbNpbNpbNpbNpbNpbNpbNpbSPbPrbSgbSgbQnbQnbQnbSgbSQbSRbSSbSTbxwbSVbPsbyxbwcbSWbSXbSYbSZbTabTbbTcbTdbTebTfbTgbThbGgbTibTjbRAbHiccWbTkbIsbTlcdbbONbTmbTnbPMbLzbJybTobRHbRHbIBaafaaaaaaaaaaaabLBbHzbTpbHAbHAbTqbHAbTrbTsbTtbTpbTpbTpbTubMWbLObLPbLQbLQbTvbLSbGEbLTbLUbTwbTxbxVbxVbxVbwJbLXbTyaaaaaaaaaaaaaaaaafaafaaaaaaaaaaaaaaaaafbTzbRTbTzaafaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa