diff --git a/_maps/map_files/BoxStation/BoxStation.dmm b/_maps/map_files/BoxStation/BoxStation.dmm
index d6fe225d9f..4c348b9293 100644
--- a/_maps/map_files/BoxStation/BoxStation.dmm
+++ b/_maps/map_files/BoxStation/BoxStation.dmm
@@ -34199,7 +34199,10 @@
/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
dir = 4
},
-/turf/open/floor/plasteel,
+/obj/effect/turf_decal/stripes/line{
+ dir = 1
+ },
+/turf/open/floor/engine,
/area/science/storage)
"bCY" = (
/obj/effect/turf_decal/tile/blue{
@@ -34264,7 +34267,10 @@
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
dir = 4
},
-/turf/open/floor/plasteel,
+/obj/effect/turf_decal/stripes/line{
+ dir = 1
+ },
+/turf/open/floor/engine,
/area/science/storage)
"bDg" = (
/obj/structure/rack,
@@ -34289,7 +34295,10 @@
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
dir = 4
},
-/turf/open/floor/plasteel,
+/obj/effect/turf_decal/stripes/line{
+ dir = 1
+ },
+/turf/open/floor/engine,
/area/science/storage)
"bDk" = (
/obj/structure/table,
@@ -34637,7 +34646,8 @@
icon_state = "4-8"
},
/obj/effect/landmark/xeno_spawn,
-/turf/open/floor/plasteel,
+/obj/effect/turf_decal/stripes/line,
+/turf/open/floor/engine,
/area/science/storage)
"bDZ" = (
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
@@ -34658,13 +34668,15 @@
/obj/machinery/atmospherics/components/unary/vent_pump/on{
dir = 4
},
-/turf/open/floor/plasteel,
+/obj/effect/turf_decal/stripes/line,
+/turf/open/floor/engine,
/area/science/storage)
"bEc" = (
/obj/structure/cable{
icon_state = "4-8"
},
-/turf/open/floor/plasteel,
+/obj/effect/turf_decal/stripes/line,
+/turf/open/floor/engine,
/area/science/storage)
"bEd" = (
/obj/structure/disposalpipe/segment{
@@ -34788,7 +34800,7 @@
"bEo" = (
/obj/machinery/portable_atmospherics/canister/toxins,
/obj/effect/turf_decal/delivery,
-/turf/open/floor/plasteel,
+/turf/open/floor/engine,
/area/science/storage)
"bEp" = (
/obj/machinery/portable_atmospherics/canister/toxins,
@@ -34796,7 +34808,7 @@
pixel_y = 32
},
/obj/effect/turf_decal/delivery,
-/turf/open/floor/plasteel,
+/turf/open/floor/engine,
/area/science/storage)
"bEq" = (
/obj/machinery/power/apc{
@@ -35392,7 +35404,10 @@
/obj/machinery/light/small{
dir = 8
},
-/turf/open/floor/plasteel,
+/obj/effect/turf_decal/stripes/line{
+ dir = 1
+ },
+/turf/open/floor/engine,
/area/science/storage)
"bFJ" = (
/obj/structure/bed,
@@ -35925,7 +35940,8 @@
/area/medical/medbay/central)
"bGY" = (
/obj/machinery/portable_atmospherics/scrubber/huge,
-/turf/open/floor/plasteel,
+/obj/effect/turf_decal/bot,
+/turf/open/floor/engine,
/area/science/storage)
"bGZ" = (
/obj/machinery/holopad,
@@ -35988,7 +36004,8 @@
dir = 4;
network = list("ss13","rd")
},
-/turf/open/floor/plasteel,
+/obj/effect/turf_decal/stripes/line,
+/turf/open/floor/engine,
/area/science/storage)
"bHf" = (
/obj/structure/disposalpipe/segment,
@@ -36618,20 +36635,23 @@
"bIz" = (
/obj/machinery/portable_atmospherics/canister/carbon_dioxide,
/obj/effect/turf_decal/bot,
-/turf/open/floor/plasteel,
+/turf/open/floor/engine,
/area/science/storage)
"bIA" = (
/obj/machinery/portable_atmospherics/canister/oxygen,
/obj/effect/turf_decal/bot,
-/turf/open/floor/plasteel,
+/turf/open/floor/engine,
/area/science/storage)
"bIB" = (
/obj/machinery/portable_atmospherics/canister/nitrous_oxide,
/obj/effect/turf_decal/bot,
-/turf/open/floor/plasteel,
+/turf/open/floor/engine,
/area/science/storage)
"bIC" = (
-/turf/open/floor/plasteel,
+/obj/effect/turf_decal/stripes/line{
+ dir = 1
+ },
+/turf/open/floor/engine,
/area/science/storage)
"bID" = (
/obj/structure/disposalpipe/segment{
@@ -54029,6 +54049,11 @@
},
/turf/open/floor/plasteel,
/area/security/processing)
+"fbp" = (
+/obj/structure/tank_dispenser,
+/obj/effect/turf_decal/bot,
+/turf/open/floor/engine,
+/area/science/storage)
"fcn" = (
/obj/structure/lattice,
/turf/closed/wall/r_wall,
@@ -106094,7 +106119,7 @@ bzC
bAH
bCb
bDc
-bEo
+fbp
bDf
bEb
bGY
diff --git a/_maps/map_files/CogStation/CogStation.dmm b/_maps/map_files/CogStation/CogStation.dmm
index 84135e82ca..5025a99ec4 100644
--- a/_maps/map_files/CogStation/CogStation.dmm
+++ b/_maps/map_files/CogStation/CogStation.dmm
@@ -49351,13 +49351,13 @@
/area/science/explab)
"cbg" = (
/obj/machinery/portable_atmospherics/canister/nitrogen,
-/turf/open/floor/plating,
+/turf/open/floor/engine,
/area/science/storage)
"cbh" = (
/obj/machinery/atmospherics/components/binary/pump{
dir = 1
},
-/turf/open/floor/plating,
+/turf/open/floor/engine,
/area/science/storage)
"cbi" = (
/obj/effect/spawner/structure/window/reinforced,
@@ -49416,7 +49416,10 @@
layer = 2.9
},
/obj/machinery/portable_atmospherics/pump,
-/turf/open/floor/plating,
+/obj/effect/turf_decal/stripes/line{
+ dir = 10
+ },
+/turf/open/floor/engine,
/area/science/storage)
"cbo" = (
/obj/machinery/disposal/bin,
@@ -49457,10 +49460,8 @@
/area/science/explab)
"cbu" = (
/obj/machinery/portable_atmospherics/canister/nitrous_oxide,
-/obj/machinery/light/small{
- dir = 1
- },
-/turf/open/floor/plating,
+/obj/effect/turf_decal/stripes/line,
+/turf/open/floor/engine,
/area/science/storage)
"cbv" = (
/obj/machinery/atmospherics/pipe/simple/general/visible,
@@ -49512,7 +49513,10 @@
})
"cbC" = (
/obj/machinery/portable_atmospherics/canister/nitrous_oxide,
-/turf/open/floor/plating,
+/obj/effect/turf_decal/stripes/line{
+ dir = 6
+ },
+/turf/open/floor/engine,
/area/science/storage)
"cbD" = (
/obj/effect/turf_decal/tile/neutral{
@@ -52714,7 +52718,7 @@
/obj/structure/cable{
icon_state = "2-4"
},
-/turf/open/floor/plating,
+/turf/open/floor/engine,
/area/science/storage)
"chS" = (
/obj/machinery/suit_storage_unit/atmos,
@@ -52728,7 +52732,14 @@
/obj/machinery/atmospherics/components/unary/tank/air{
dir = 1
},
-/turf/open/floor/plating,
+/obj/effect/turf_decal/stripes/line{
+ dir = 4
+ },
+/obj/machinery/light{
+ dir = 8;
+ light_color = "#e8eaff"
+ },
+/turf/open/floor/engine,
/area/science/storage)
"chU" = (
/obj/effect/turf_decal/tile/yellow{
@@ -52745,7 +52756,7 @@
/obj/machinery/atmospherics/pipe/manifold/general/visible{
dir = 1
},
-/turf/open/floor/plating,
+/turf/open/floor/engine,
/area/science/storage)
"chW" = (
/obj/effect/turf_decal/tile/neutral{
@@ -54329,7 +54340,7 @@
/area/science/xenobiology)
"clc" = (
/obj/machinery/atmospherics/pipe/manifold/general/visible,
-/turf/open/floor/plating,
+/turf/open/floor/engine,
/area/science/storage)
"cld" = (
/obj/effect/turf_decal/tile/neutral{
@@ -55076,7 +55087,7 @@
/obj/machinery/atmospherics/components/binary/valve{
dir = 4
},
-/turf/open/floor/plating,
+/turf/open/floor/engine,
/area/science/storage)
"cmL" = (
/obj/effect/landmark/blobstart,
@@ -55497,7 +55508,7 @@
/obj/machinery/atmospherics/components/unary/portables_connector/visible{
dir = 8
},
-/turf/open/floor/plating,
+/turf/open/floor/engine,
/area/science/storage)
"cnA" = (
/obj/effect/turf_decal/tile/brown{
@@ -55632,7 +55643,8 @@
/turf/open/space/basic,
/area/solar/starboard/aft)
"cnO" = (
-/turf/open/floor/plating,
+/obj/effect/landmark/event_spawn,
+/turf/open/floor/engine,
/area/science/storage)
"cnP" = (
/obj/structure/lattice/catwalk,
@@ -55694,7 +55706,11 @@
/obj/structure/cable{
icon_state = "1-2"
},
-/turf/open/floor/plating,
+/obj/machinery/light{
+ dir = 4;
+ light_color = "#e8eaff"
+ },
+/turf/open/floor/engine,
/area/science/storage)
"cnW" = (
/obj/structure/chair/office/dark{
@@ -56576,7 +56592,10 @@
/area/space/station_ruins)
"cpD" = (
/obj/machinery/portable_atmospherics/canister/air,
-/turf/open/floor/plating,
+/obj/effect/turf_decal/stripes/line{
+ dir = 4
+ },
+/turf/open/floor/engine,
/area/science/storage)
"cpE" = (
/obj/structure/fans/tiny,
@@ -57516,7 +57535,7 @@
/area/engine/teg_cold)
"crn" = (
/obj/machinery/atmospherics/components/binary/valve,
-/turf/open/floor/plating,
+/turf/open/floor/engine,
/area/science/storage)
"cro" = (
/turf/closed/wall/r_wall/rust,
@@ -58325,8 +58344,7 @@
name = "Engine Room"
})
"csR" = (
-/obj/effect/landmark/xeno_spawn,
-/turf/open/floor/plating,
+/turf/open/floor/engine,
/area/science/storage)
"csS" = (
/obj/machinery/atmospherics/pipe/manifold/general/visible{
@@ -66344,10 +66362,50 @@
/turf/open/floor/plasteel/white,
/area/science/xenobiology)
"cGF" = (
-/obj/effect/landmark/event_spawn,
-/turf/open/floor/plating,
+/obj/machinery/portable_atmospherics/scrubber,
+/turf/open/floor/engine,
/area/science/storage)
"cGG" = (
+/obj/machinery/power/apc{
+ areastring = "/area/science/storage";
+ dir = 4;
+ name = "Toxins Storage APC";
+ pixel_x = 24
+ },
+/obj/structure/cable,
+/turf/open/floor/engine,
+/area/science/storage)
+"cGH" = (
+/obj/machinery/camera{
+ c_tag = "Toxins Lab - Storage";
+ dir = 1
+ },
+/obj/machinery/portable_atmospherics/canister/air,
+/obj/effect/turf_decal/stripes/line{
+ dir = 4
+ },
+/turf/open/floor/engine,
+/area/science/storage)
+"cGI" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/visible,
+/turf/open/floor/engine,
+/area/science/storage)
+"cGJ" = (
+/obj/machinery/portable_atmospherics/canister/oxygen,
+/obj/effect/turf_decal/stripes/line{
+ dir = 9
+ },
+/turf/open/floor/engine,
+/area/science/storage)
+"cGK" = (
+/obj/structure/window/reinforced{
+ dir = 4;
+ layer = 2.9
+ },
+/obj/machinery/portable_atmospherics/canister/carbon_dioxide,
+/turf/open/floor/engine,
+/area/science/storage)
+"cGL" = (
/obj/structure/table,
/obj/item/extinguisher,
/obj/item/storage/toolbox/mechanical,
@@ -66357,48 +66415,11 @@
pixel_x = -7;
pixel_y = 3
},
-/obj/structure/cable,
-/obj/machinery/power/apc{
- areastring = "/area/science/storage";
- dir = 4;
- name = "Toxins Storage APC";
- pixel_x = 24
- },
-/turf/open/floor/plating,
-/area/science/storage)
-"cGH" = (
-/obj/machinery/portable_atmospherics/canister/oxygen,
-/obj/machinery/camera{
- c_tag = "Toxins Lab - Storage";
- dir = 1
- },
-/turf/open/floor/plating,
-/area/science/storage)
-"cGI" = (
-/obj/machinery/portable_atmospherics/canister/oxygen,
-/obj/machinery/atmospherics/pipe/simple/scrubbers/visible,
-/turf/open/floor/plating,
-/area/science/storage)
-"cGJ" = (
-/obj/machinery/portable_atmospherics/canister/oxygen,
-/turf/open/floor/plating,
-/area/science/storage)
-"cGK" = (
-/obj/structure/window/reinforced{
- dir = 4;
- layer = 2.9
- },
-/obj/machinery/portable_atmospherics/canister/carbon_dioxide,
-/turf/open/floor/plating,
-/area/science/storage)
-"cGL" = (
-/obj/structure/reagent_dispensers/fueltank,
-/obj/machinery/light/small,
-/turf/open/floor/plating,
+/turf/open/floor/engine,
/area/science/storage)
"cGM" = (
/obj/structure/tank_dispenser,
-/turf/open/floor/plating,
+/turf/open/floor/engine,
/area/science/storage)
"cGN" = (
/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{
@@ -66421,7 +66442,7 @@
name = "Plasma Canister Storage";
req_access_txt = "7;8"
},
-/turf/open/floor/plating,
+/turf/open/floor/engine,
/area/science/storage)
"cGR" = (
/obj/effect/landmark/start/scientist,
@@ -66456,11 +66477,18 @@
/area/science/storage)
"cGV" = (
/obj/machinery/portable_atmospherics/canister/toxins,
-/turf/open/floor/plating,
+/obj/effect/turf_decal/delivery,
+/turf/open/floor/engine,
/area/science/storage)
"cGW" = (
/obj/effect/landmark/blobstart,
-/turf/open/floor/plating,
+/obj/effect/turf_decal/stripes/line{
+ dir = 4
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 8
+ },
+/turf/open/floor/engine,
/area/science/storage)
"cGX" = (
/obj/structure/cable{
@@ -66496,7 +66524,8 @@
c_tag = "Toxins Lab - Plasma Storage";
dir = 1
},
-/turf/open/floor/plating,
+/obj/effect/turf_decal/delivery,
+/turf/open/floor/engine,
/area/science/storage)
"cHb" = (
/obj/structure/cable{
@@ -71710,6 +71739,13 @@
/obj/machinery/meter,
/turf/open/floor/plasteel,
/area/engine/atmos)
+"dYm" = (
+/obj/machinery/portable_atmospherics/canister/oxygen,
+/obj/effect/turf_decal/stripes/line{
+ dir = 8
+ },
+/turf/open/floor/engine,
+/area/science/storage)
"eCy" = (
/obj/machinery/atmospherics/pipe/simple/orange/visible{
dir = 9
@@ -71849,6 +71885,17 @@
},
/turf/open/space/basic,
/area/space/nearstation)
+"gVV" = (
+/obj/structure/window/reinforced{
+ dir = 4;
+ layer = 2.9
+ },
+/obj/machinery/portable_atmospherics/canister/carbon_dioxide,
+/obj/effect/turf_decal/stripes/line{
+ dir = 1
+ },
+/turf/open/floor/engine,
+/area/science/storage)
"hcR" = (
/obj/machinery/atmospherics/pipe/simple/orange/hidden{
dir = 5
@@ -71888,6 +71935,13 @@
},
/turf/open/floor/plasteel,
/area/engine/atmos)
+"hFa" = (
+/obj/machinery/portable_atmospherics/canister/nitrogen,
+/obj/effect/turf_decal/stripes/line{
+ dir = 6
+ },
+/turf/open/floor/engine,
+/area/science/storage)
"hKC" = (
/obj/machinery/atmospherics/pipe/simple/yellow/visible{
dir = 5
@@ -72030,13 +72084,26 @@
/area/space/nearstation)
"mBP" = (
/obj/machinery/rnd/bepis,
-/turf/open/floor/plasteel/white,
-/area/science/circuit)
+/obj/effect/landmark/xeno_spawn,
+/turf/open/floor/plasteel,
+/area/science/mixing)
"mEa" = (
/obj/machinery/atmospherics/pipe/manifold/cyan/visible,
/obj/machinery/meter,
/turf/open/floor/plasteel,
/area/engine/atmos)
+"mIm" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 4
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 8
+ },
+/obj/machinery/light{
+ light_color = "#cee5d2"
+ },
+/turf/open/floor/engine,
+/area/science/storage)
"mIT" = (
/obj/structure/lattice/catwalk,
/obj/machinery/atmospherics/pipe/simple/supplymain/visible,
@@ -91064,7 +91131,7 @@ bwK
bAz
bAN
cGN
-cbg
+hFa
chV
crn
cGI
@@ -91324,7 +91391,7 @@ bKH
cbh
clc
cGJ
-cGJ
+dYm
cGO
cGU
cGZ
@@ -91567,7 +91634,7 @@ aaa
aaa
bcy
bdf
-bdf
+mBP
crJ
blT
bqJ
@@ -91580,7 +91647,7 @@ bfn
cbb
cbn
cmK
-cnO
+gVV
cGK
cbb
cbb
@@ -92094,11 +92161,11 @@ cbP
bcy
cbC
cnO
-cnO
+csR
csR
cGQ
cGW
-cGV
+mIm
cbb
bKa
cGq
@@ -93387,7 +93454,7 @@ aTE
bTG
aVF
cGs
-mBP
+aVF
caw
caA
cHk
diff --git a/_maps/map_files/Deltastation/DeltaStation2.dmm b/_maps/map_files/Deltastation/DeltaStation2.dmm
index 6a5c8ef5ee..67246e74c5 100644
--- a/_maps/map_files/Deltastation/DeltaStation2.dmm
+++ b/_maps/map_files/Deltastation/DeltaStation2.dmm
@@ -124,33 +124,6 @@
},
/turf/open/floor/plating,
/area/crew_quarters/abandoned_gambling_den)
-"aaq" = (
-/obj/structure/cable{
- icon_state = "4-8"
- },
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/turf_decal/stripes/line{
- dir = 4
- },
-/obj/machinery/door/poddoor/shutters/radiation/preopen{
- id = "engsm";
- name = "Radiation Chamber Shutters"
- },
-/turf/open/floor/plating,
-/area/engine/supermatter)
-"aar" = (
-/obj/structure/cable{
- icon_state = "4-8"
- },
-/obj/effect/turf_decal/stripes/line{
- dir = 8
- },
-/obj/machinery/door/poddoor/shutters/radiation/preopen{
- id = "engsm";
- name = "Radiation Chamber Shutters"
- },
-/turf/open/floor/plating,
-/area/engine/supermatter)
"aas" = (
/obj/docking_port/stationary/random{
id = "pod_lavaland1";
@@ -170,265 +143,10 @@
/obj/effect/landmark/xeno_spawn,
/turf/open/space,
/area/solar/starboard/fore)
-"aav" = (
-/obj/structure/cable{
- icon_state = "4-8"
- },
-/obj/effect/decal/cleanable/oil,
-/obj/effect/turf_decal/stripes/line{
- dir = 8
- },
-/obj/machinery/door/poddoor/shutters/radiation/preopen{
- id = "engsm";
- name = "Radiation Chamber Shutters"
- },
-/turf/open/floor/plating,
-/area/engine/supermatter)
-"aaw" = (
-/obj/structure/cable{
- icon_state = "4-8"
- },
-/obj/effect/turf_decal/stripes/line{
- dir = 4
- },
-/obj/machinery/door/poddoor/shutters/radiation/preopen{
- id = "engsm";
- name = "Radiation Chamber Shutters"
- },
-/turf/open/floor/plating,
-/area/engine/supermatter)
-"aax" = (
-/obj/effect/turf_decal/stripes/line{
- dir = 8
- },
-/obj/machinery/door/poddoor/shutters/radiation/preopen{
- id = "engpa";
- name = "Radiation Chamber Shutters"
- },
-/turf/open/floor/plating,
-/area/engine/engineering)
-"aay" = (
-/obj/structure/cable{
- icon_state = "2-8"
- },
-/obj/effect/turf_decal/stripes/line{
- dir = 8
- },
-/obj/machinery/door/poddoor/shutters/radiation/preopen{
- id = "engpa";
- name = "Radiation Chamber Shutters"
- },
-/turf/open/floor/plating,
-/area/engine/engineering)
-"aaz" = (
-/obj/effect/decal/cleanable/oil,
-/obj/structure/cable{
- icon_state = "1-4"
- },
-/obj/structure/cable{
- icon_state = "2-4"
- },
-/obj/structure/cable{
- icon_state = "4-8"
- },
-/obj/effect/turf_decal/stripes/line{
- dir = 8
- },
-/obj/machinery/door/poddoor/shutters/radiation/preopen{
- id = "engpa";
- name = "Radiation Chamber Shutters"
- },
-/turf/open/floor/plating,
-/area/engine/engineering)
-"aaA" = (
-/obj/structure/cable{
- icon_state = "1-8"
- },
-/obj/effect/turf_decal/stripes/line{
- dir = 8
- },
-/obj/machinery/door/poddoor/shutters/radiation/preopen{
- id = "engpa";
- name = "Radiation Chamber Shutters"
- },
-/turf/open/floor/plating,
-/area/engine/engineering)
-"aaB" = (
-/obj/structure/cable{
- icon_state = "1-2"
- },
-/obj/effect/turf_decal/stripes/line,
-/obj/effect/turf_decal/stripes/line{
- dir = 1
- },
-/obj/machinery/door/poddoor/shutters/radiation/preopen{
- id = "engpa";
- name = "Radiation Chamber Shutters"
- },
-/turf/open/floor/plasteel,
-/area/engine/engineering)
-"aaC" = (
-/obj/structure/cable{
- icon_state = "4-8"
- },
-/obj/effect/turf_decal/stripes/line{
- dir = 8
- },
-/obj/effect/turf_decal/stripes/line{
- dir = 4
- },
-/obj/machinery/door/poddoor/shutters/radiation/preopen{
- id = "engpa";
- name = "Radiation Chamber Shutters"
- },
-/turf/open/floor/plasteel,
-/area/engine/engineering)
-"aaD" = (
-/obj/structure/cable{
- icon_state = "1-4"
- },
-/obj/structure/cable{
- icon_state = "2-4"
- },
-/obj/structure/cable{
- icon_state = "4-8"
- },
-/obj/effect/turf_decal/stripes/line{
- dir = 8
- },
-/obj/machinery/door/poddoor/shutters/radiation/preopen{
- id = "engpa";
- name = "Radiation Chamber Shutters"
- },
-/turf/open/floor/plating,
-/area/engine/engineering)
"aaE" = (
/obj/structure/lattice/catwalk,
/turf/open/space,
/area/solar/starboard/fore)
-"aaF" = (
-/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{
- dir = 4
- },
-/obj/effect/spawner/structure/window/plasma/reinforced,
-/obj/machinery/door/poddoor/shutters/radiation/preopen{
- id = "engsm";
- name = "Radiation Chamber Shutters"
- },
-/turf/open/floor/plating,
-/area/engine/atmospherics_engine)
-"aaG" = (
-/obj/structure/cable/white{
- icon_state = "1-2"
- },
-/obj/structure/cable/white{
- icon_state = "0-2"
- },
-/obj/structure/cable/white{
- icon_state = "2-4"
- },
-/obj/machinery/atmospherics/pipe/simple/supply/hidden,
-/obj/effect/spawner/structure/window/plasma/reinforced,
-/obj/machinery/door/poddoor/shutters/radiation/preopen{
- id = "engsm";
- name = "Radiation Chamber Shutters"
- },
-/turf/open/floor/plating,
-/area/engine/atmospherics_engine)
-"aaH" = (
-/obj/structure/cable/white{
- icon_state = "0-8"
- },
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/spawner/structure/window/plasma/reinforced,
-/obj/machinery/door/poddoor/shutters/radiation/preopen{
- id = "engsm";
- name = "Radiation Chamber Shutters"
- },
-/turf/open/floor/plating,
-/area/engine/atmospherics_engine)
-"aaI" = (
-/obj/structure/dresser,
-/obj/effect/decal/cleanable/dirt,
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
-/obj/structure/sign/poster/contraband/scum{
- pixel_x = 32
- },
-/turf/open/floor/plasteel/cafeteria,
-/area/maintenance/port/fore)
-"aaJ" = (
-/obj/item/twohanded/required/kirbyplants/random,
-/obj/effect/turf_decal/tile/red,
-/obj/effect/turf_decal/tile/red{
- dir = 8
- },
-/obj/structure/sign/poster/official/nt_storm_officer{
- pixel_y = -32
- },
-/turf/open/floor/plasteel,
-/area/security/main)
-"aaK" = (
-/obj/machinery/flasher/portable,
-/obj/effect/turf_decal/tile/neutral{
- dir = 1
- },
-/obj/effect/turf_decal/tile/neutral,
-/obj/effect/turf_decal/tile/neutral{
- dir = 4
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 8
- },
-/obj/structure/sign/poster/official/nt_storm{
- pixel_y = 32
- },
-/turf/open/floor/plasteel/dark,
-/area/ai_monitored/security/armory)
-"aaL" = (
-/obj/structure/rack,
-/obj/item/gun/energy/ionrifle,
-/obj/item/clothing/suit/armor/laserproof,
-/obj/item/gun/energy/temperature/security,
-/obj/effect/turf_decal/tile/neutral{
- dir = 1
- },
-/obj/effect/turf_decal/tile/neutral,
-/obj/effect/turf_decal/tile/neutral{
- dir = 4
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 8
- },
-/obj/structure/sign/poster/official/ion_rifle{
- pixel_x = 32
- },
-/turf/open/floor/plasteel/dark,
-/area/ai_monitored/security/armory)
-"aaM" = (
-/obj/machinery/vending/wardrobe/medi_wardrobe,
-/obj/effect/turf_decal/tile/neutral,
-/obj/effect/turf_decal/tile/neutral{
- dir = 8
- },
-/obj/structure/sign/poster/official/medical_green_cross{
- pixel_y = 32
- },
-/turf/open/floor/plasteel,
-/area/medical/storage)
-"aaN" = (
-/obj/structure/bed/roller,
-/obj/machinery/iv_drip,
-/obj/effect/turf_decal/tile/blue{
- dir = 1
- },
-/obj/effect/turf_decal/tile/blue{
- dir = 4
- },
-/obj/structure/sign/poster/official/medical_green_cross{
- pixel_y = 32
- },
-/turf/open/floor/plasteel/white,
-/area/medical/medbay/central)
"aaO" = (
/obj/effect/spawner/structure/window/reinforced,
/turf/open/floor/plating,
@@ -436,54 +154,15 @@
"aaP" = (
/turf/closed/wall/mineral/plastitanium,
/area/hallway/secondary/entry)
-"aaQ" = (
-/obj/structure/sign/poster/official/medical_green_cross,
-/turf/closed/wall,
-/area/medical/medbay/central)
-"aaR" = (
-/obj/structure/table/wood,
-/obj/item/assembly/igniter,
-/obj/item/assembly/igniter,
-/obj/item/assembly/timer{
- pixel_x = 3;
- pixel_y = 3
- },
-/obj/effect/decal/cleanable/dirt,
-/obj/structure/sign/poster/contraband/scum{
- pixel_x = 32
- },
-/obj/structure/sign/poster/contraband/scum{
- pixel_x = 32
- },
-/obj/structure/sign/poster/contraband/scum{
- pixel_x = 32
- },
-/turf/open/floor/plating,
-/area/crew_quarters/abandoned_gambling_den)
"aaS" = (
/turf/closed/wall/mineral/plastitanium,
/area/construction/mining/aux_base)
-"aaT" = (
+"abe" = (
/obj/effect/turf_decal/stripes/line{
dir = 9
},
/turf/open/floor/plasteel,
/area/hallway/secondary/entry)
-"aaU" = (
-/obj/effect/turf_decal/stripes/line{
- dir = 5
- },
-/turf/open/floor/plasteel,
-/area/hallway/secondary/entry)
-"aaV" = (
-/obj/machinery/light/small{
- dir = 4
- },
-/obj/effect/turf_decal/stripes/line{
- dir = 4
- },
-/turf/open/floor/plasteel,
-/area/hallway/secondary/entry)
"abf" = (
/turf/closed/wall,
/area/hallway/secondary/entry)
@@ -508,6 +187,15 @@
},
/turf/open/floor/plasteel,
/area/hallway/secondary/entry)
+"abq" = (
+/obj/machinery/light/small{
+ dir = 4
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/hallway/secondary/entry)
"abs" = (
/obj/docking_port/stationary{
dwidth = 1;
@@ -1200,6 +888,19 @@
/obj/effect/spawner/structure/window/reinforced,
/turf/open/floor/plating,
/area/construction/mining/aux_base)
+"adY" = (
+/obj/structure/window/reinforced{
+ dir = 8
+ },
+/obj/structure/window/reinforced{
+ dir = 4
+ },
+/obj/machinery/door/window{
+ req_one_access_txt = "48,50"
+ },
+/obj/effect/turf_decal/bot,
+/turf/open/floor/plasteel,
+/area/quartermaster/sorting)
"aea" = (
/obj/effect/decal/cleanable/dirt,
/obj/effect/mapping_helpers/airlock/cyclelink_helper{
@@ -9379,6 +9080,17 @@
/obj/effect/turf_decal/bot,
/turf/open/floor/plasteel,
/area/engine/atmospherics_engine)
+"avk" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{
+ dir = 4
+ },
+/obj/effect/spawner/structure/window/plasma/reinforced,
+/obj/machinery/door/poddoor/shutters/radiation/preopen{
+ id = "engsm";
+ name = "Radiation Chamber Shutters"
+ },
+/turf/open/floor/plating,
+/area/engine/atmospherics_engine)
"avl" = (
/obj/structure/lattice/catwalk,
/obj/machinery/atmospherics/components/unary/outlet_injector/atmos/engine_waste{
@@ -10536,6 +10248,20 @@
},
/turf/open/floor/plasteel,
/area/engine/atmospherics_engine)
+"axv" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/turf_decal/stripes/line{
+ dir = 4
+ },
+/obj/machinery/door/poddoor/shutters/radiation/preopen{
+ id = "engsm";
+ name = "Radiation Chamber Shutters"
+ },
+/turf/open/floor/plating,
+/area/engine/supermatter)
"axw" = (
/obj/structure/cable{
icon_state = "4-8"
@@ -10593,6 +10319,19 @@
},
/turf/open/floor/engine,
/area/engine/supermatter)
+"axD" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 8
+ },
+/obj/machinery/door/poddoor/shutters/radiation/preopen{
+ id = "engsm";
+ name = "Radiation Chamber Shutters"
+ },
+/turf/open/floor/plating,
+/area/engine/supermatter)
"axE" = (
/obj/structure/cable{
icon_state = "2-8"
@@ -10704,6 +10443,15 @@
},
/turf/open/floor/plasteel,
/area/maintenance/port/fore)
+"axN" = (
+/obj/structure/dresser,
+/obj/effect/decal/cleanable/dirt,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/structure/sign/poster/contraband/scum{
+ pixel_x = 32
+ },
+/turf/open/floor/plasteel/cafeteria,
+/area/maintenance/port/fore)
"axO" = (
/obj/structure/table/wood,
/obj/item/camera,
@@ -11250,6 +10998,20 @@
},
/turf/open/floor/circuit/green,
/area/engine/supermatter)
+"ayM" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/effect/decal/cleanable/oil,
+/obj/effect/turf_decal/stripes/line{
+ dir = 8
+ },
+/obj/machinery/door/poddoor/shutters/radiation/preopen{
+ id = "engsm";
+ name = "Radiation Chamber Shutters"
+ },
+/turf/open/floor/plating,
+/area/engine/supermatter)
"ayN" = (
/obj/structure/cable{
icon_state = "2-8"
@@ -11844,6 +11606,19 @@
},
/turf/open/floor/plasteel,
/area/engine/atmospherics_engine)
+"azS" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 4
+ },
+/obj/machinery/door/poddoor/shutters/radiation/preopen{
+ id = "engsm";
+ name = "Radiation Chamber Shutters"
+ },
+/turf/open/floor/plating,
+/area/engine/supermatter)
"azT" = (
/obj/machinery/power/rad_collector/anchored,
/obj/machinery/atmospherics/pipe/manifold/general/visible{
@@ -16915,6 +16690,24 @@
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
/turf/closed/wall/r_wall,
/area/engine/atmospherics_engine)
+"aID" = (
+/obj/structure/cable/white{
+ icon_state = "1-2"
+ },
+/obj/structure/cable/white{
+ icon_state = "0-2"
+ },
+/obj/structure/cable/white{
+ icon_state = "2-4"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/effect/spawner/structure/window/plasma/reinforced,
+/obj/machinery/door/poddoor/shutters/radiation/preopen{
+ id = "engsm";
+ name = "Radiation Chamber Shutters"
+ },
+/turf/open/floor/plating,
+/area/engine/atmospherics_engine)
"aIE" = (
/obj/machinery/door/firedoor,
/obj/structure/cable/white{
@@ -16934,6 +16727,18 @@
},
/turf/open/floor/plasteel,
/area/engine/atmospherics_engine)
+"aIF" = (
+/obj/structure/cable/white{
+ icon_state = "0-8"
+ },
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/spawner/structure/window/plasma/reinforced,
+/obj/machinery/door/poddoor/shutters/radiation/preopen{
+ id = "engsm";
+ name = "Radiation Chamber Shutters"
+ },
+/turf/open/floor/plating,
+/area/engine/atmospherics_engine)
"aIG" = (
/obj/machinery/portable_atmospherics/canister/toxins,
/obj/effect/turf_decal/bot,
@@ -18442,7 +18247,7 @@
},
/turf/open/floor/plasteel/dark/corner,
/area/maintenance/disposal/incinerator)
-"aLl" = (
+"aLk" = (
/obj/effect/turf_decal/tile/yellow{
dir = 8
},
@@ -20092,27 +19897,6 @@
},
/turf/open/floor/plasteel/dark,
/area/engine/atmos)
-"aOe" = (
-/obj/machinery/atmospherics/pipe/simple/supply/hidden{
- dir = 4
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 1
- },
-/obj/effect/turf_decal/tile/neutral,
-/obj/effect/turf_decal/tile/neutral{
- dir = 4
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 8
- },
-/obj/machinery/atmospherics/pipe/simple/general/visible,
-/turf/open/floor/plasteel/dark,
-/area/engine/atmos)
-"aOf" = (
-/obj/effect/turf_decal/delivery,
-/turf/open/floor/plasteel,
-/area/engine/atmos)
"aOh" = (
/obj/machinery/status_display/evac{
pixel_y = 32
@@ -21133,9 +20917,6 @@
/area/engine/atmos)
"aPL" = (
/obj/effect/turf_decal/delivery,
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
- dir = 4
- },
/turf/open/floor/plasteel,
/area/engine/atmos)
"aPM" = (
@@ -22153,23 +21934,6 @@
},
/turf/open/floor/plasteel,
/area/engine/atmos)
-"aRu" = (
-/obj/item/twohanded/required/kirbyplants/random,
-/obj/effect/turf_decal/tile/neutral{
- dir = 1
- },
-/obj/effect/turf_decal/tile/neutral,
-/obj/effect/turf_decal/tile/neutral{
- dir = 4
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 8
- },
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
- dir = 4
- },
-/turf/open/floor/plasteel/dark,
-/area/engine/atmos)
"aRv" = (
/obj/machinery/atmospherics/pipe/simple/cyan/visible{
dir = 4
@@ -22179,12 +21943,6 @@
},
/turf/open/floor/plasteel,
/area/engine/atmos)
-"aRw" = (
-/obj/machinery/atmospherics/pipe/simple/cyan/visible{
- dir = 4
- },
-/turf/closed/wall/r_wall,
-/area/engine/atmos)
"aRx" = (
/obj/machinery/atmospherics/pipe/simple/cyan/visible{
dir = 4
@@ -23262,13 +23020,6 @@
},
/turf/open/floor/plasteel,
/area/engine/atmos)
-"aSY" = (
-/obj/structure/lattice,
-/obj/machinery/atmospherics/pipe/simple/cyan/visible{
- dir = 10
- },
-/turf/open/space,
-/area/engine/atmos)
"aSZ" = (
/obj/machinery/atmospherics/pipe/simple/yellow/visible{
dir = 4
@@ -24591,13 +24342,6 @@
},
/turf/open/floor/plasteel,
/area/engine/atmos)
-"aUP" = (
-/obj/effect/spawner/structure/window/reinforced,
-/obj/machinery/atmospherics/pipe/layer_manifold{
- dir = 4
- },
-/turf/open/floor/plating,
-/area/engine/atmos)
"aUQ" = (
/obj/machinery/atmospherics/pipe/simple/green/visible{
dir = 4
@@ -25924,18 +25668,6 @@
},
/turf/open/floor/plasteel,
/area/engine/atmos)
-"aWM" = (
-/obj/structure/lattice/catwalk,
-/obj/machinery/atmospherics/pipe/manifold/cyan/visible,
-/turf/open/space,
-/area/engine/atmos)
-"aWN" = (
-/obj/effect/spawner/structure/window/reinforced,
-/obj/machinery/atmospherics/pipe/simple/cyan/visible{
- dir = 6
- },
-/turf/open/floor/plating,
-/area/engine/atmos)
"aWO" = (
/obj/effect/turf_decal/stripes/line{
dir = 4
@@ -26761,6 +26493,16 @@
/obj/machinery/atmospherics/pipe/simple/yellow/visible,
/turf/open/floor/plasteel/dark,
/area/engine/atmos)
+"aYa" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 8
+ },
+/obj/machinery/atmospherics/components/binary/pump{
+ dir = 1;
+ name = "Port to Turbine"
+ },
+/turf/open/floor/plasteel,
+/area/engine/atmos)
"aYf" = (
/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
dir = 4
@@ -26860,19 +26602,6 @@
},
/turf/open/floor/plasteel,
/area/engine/atmos)
-"aYn" = (
-/obj/effect/turf_decal/tile/neutral{
- dir = 1
- },
-/obj/effect/turf_decal/tile/neutral,
-/obj/effect/turf_decal/tile/neutral{
- dir = 4
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 8
- },
-/turf/open/floor/plasteel,
-/area/engine/atmos)
"aYo" = (
/obj/effect/turf_decal/stripes/line{
dir = 4
@@ -27968,6 +27697,20 @@
/obj/structure/reagent_dispensers/watertank/high,
/turf/open/floor/plasteel/dark,
/area/engine/atmos)
+"aZX" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/engine/atmos)
"baa" = (
/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
dir = 4
@@ -29577,6 +29320,19 @@
/obj/machinery/atmospherics/pipe/simple/general/visible,
/turf/open/floor/plasteel,
/area/engine/atmos)
+"bde" = (
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/engine/atmos)
"bdg" = (
/obj/machinery/atmospherics/components/unary/vent_pump/on,
/obj/effect/turf_decal/tile/yellow{
@@ -30402,20 +30158,6 @@
},
/turf/open/floor/plasteel,
/area/engine/atmos)
-"beG" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/turf_decal/tile/neutral{
- dir = 1
- },
-/obj/effect/turf_decal/tile/neutral,
-/obj/effect/turf_decal/tile/neutral{
- dir = 4
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 8
- },
-/turf/open/floor/plasteel,
-/area/engine/atmos)
"beI" = (
/obj/effect/turf_decal/tile/neutral{
dir = 1
@@ -34045,22 +33787,6 @@
},
/turf/open/floor/plasteel,
/area/engine/atmos)
-"bkU" = (
-/obj/effect/turf_decal/tile/neutral{
- dir = 1
- },
-/obj/effect/turf_decal/tile/neutral,
-/obj/effect/turf_decal/tile/neutral{
- dir = 4
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 8
- },
-/obj/machinery/atmospherics/pipe/simple/green/visible{
- dir = 10
- },
-/turf/open/floor/plasteel/dark,
-/area/engine/atmos)
"bkV" = (
/obj/effect/decal/cleanable/dirt,
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
@@ -35106,10 +34832,6 @@
/obj/machinery/portable_atmospherics/canister/nitrogen,
/turf/open/floor/plasteel/cafeteria,
/area/engine/atmos)
-"bmK" = (
-/obj/effect/turf_decal/bot,
-/turf/open/floor/plasteel,
-/area/engine/atmos)
"bmL" = (
/obj/effect/decal/cleanable/dirt,
/obj/effect/turf_decal/bot,
@@ -35142,10 +34864,6 @@
/area/engine/atmos)
"bmP" = (
/obj/effect/turf_decal/bot,
-/obj/machinery/atmospherics/components/binary/pump{
- dir = 4;
- name = "Port to Waste"
- },
/turf/open/floor/plasteel,
/area/engine/atmos)
"bmQ" = (
@@ -35311,23 +35029,6 @@
},
/turf/open/floor/plasteel/dark,
/area/engine/atmos)
-"bnc" = (
-/obj/machinery/atmospherics/pipe/simple/cyan/visible{
- dir = 4
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 1
- },
-/obj/effect/turf_decal/tile/neutral,
-/obj/effect/turf_decal/tile/neutral{
- dir = 4
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 8
- },
-/obj/machinery/atmospherics/pipe/simple/green/visible,
-/turf/open/floor/plasteel/dark,
-/area/engine/atmos)
"bnd" = (
/obj/structure/lattice/catwalk,
/obj/machinery/atmospherics/pipe/simple/orange/visible{
@@ -36025,11 +35726,6 @@
/obj/machinery/atmospherics/pipe/simple/green/visible,
/turf/open/floor/plating,
/area/engine/atmos)
-"bol" = (
-/obj/effect/spawner/structure/window/reinforced,
-/obj/machinery/atmospherics/pipe/simple/cyan/visible,
-/turf/open/floor/plating,
-/area/engine/atmos)
"bon" = (
/obj/machinery/door/firedoor,
/obj/machinery/atmospherics/pipe/simple/yellow/visible,
@@ -36046,12 +35742,6 @@
},
/turf/open/floor/plasteel,
/area/engine/atmos)
-"boo" = (
-/obj/machinery/atmospherics/pipe/simple/yellow/visible{
- dir = 4
- },
-/turf/closed/wall/r_wall,
-/area/engine/atmos)
"bop" = (
/obj/structure/table/reinforced,
/obj/item/storage/toolbox/mechanical,
@@ -40936,6 +40626,17 @@
},
/turf/open/floor/plasteel,
/area/security/main)
+"bwj" = (
+/obj/item/twohanded/required/kirbyplants/random,
+/obj/effect/turf_decal/tile/red,
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/obj/structure/sign/poster/official/nt_storm_officer{
+ pixel_y = -32
+ },
+/turf/open/floor/plasteel,
+/area/security/main)
"bwk" = (
/obj/structure/cable/white{
icon_state = "1-2"
@@ -59935,6 +59636,26 @@
},
/turf/open/floor/plasteel,
/area/ai_monitored/security/armory)
+"bXR" = (
+/obj/structure/rack,
+/obj/item/gun/energy/ionrifle,
+/obj/item/clothing/suit/armor/laserproof,
+/obj/item/gun/energy/temperature/security,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/obj/structure/sign/poster/official/ion_rifle{
+ pixel_x = 32
+ },
+/turf/open/floor/plasteel/dark,
+/area/ai_monitored/security/armory)
"bXS" = (
/obj/structure/window/reinforced{
dir = 8
@@ -65120,6 +64841,7 @@
pixel_x = -26
},
/obj/structure/sign/painting/library{
+ pixel_x = 0;
pixel_y = -32
},
/turf/open/floor/wood,
@@ -66061,6 +65783,16 @@
/obj/effect/turf_decal/stripes/line,
/turf/open/floor/plating,
/area/engine/engineering)
+"chv" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 8
+ },
+/obj/machinery/door/poddoor/shutters/radiation/preopen{
+ id = "engpa";
+ name = "Radiation Chamber Shutters"
+ },
+/turf/open/floor/plating,
+/area/engine/engineering)
"chw" = (
/obj/effect/turf_decal/stripes/line{
dir = 8
@@ -67049,6 +66781,19 @@
},
/turf/open/floor/plating,
/area/engine/engineering)
+"cjf" = (
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 8
+ },
+/obj/machinery/door/poddoor/shutters/radiation/preopen{
+ id = "engpa";
+ name = "Radiation Chamber Shutters"
+ },
+/turf/open/floor/plating,
+/area/engine/engineering)
"cjg" = (
/obj/effect/decal/cleanable/dirt,
/obj/effect/turf_decal/stripes/line{
@@ -67815,6 +67560,26 @@
},
/turf/open/floor/plating/airless,
/area/space/nearstation)
+"ckA" = (
+/obj/effect/decal/cleanable/oil,
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 8
+ },
+/obj/machinery/door/poddoor/shutters/radiation/preopen{
+ id = "engpa";
+ name = "Radiation Chamber Shutters"
+ },
+/turf/open/floor/plating,
+/area/engine/engineering)
"ckB" = (
/obj/structure/cable{
icon_state = "4-8"
@@ -68583,6 +68348,19 @@
},
/turf/open/floor/plating/airless,
/area/space/nearstation)
+"clV" = (
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 8
+ },
+/obj/machinery/door/poddoor/shutters/radiation/preopen{
+ id = "engpa";
+ name = "Radiation Chamber Shutters"
+ },
+/turf/open/floor/plating,
+/area/engine/engineering)
"clW" = (
/obj/structure/rack,
/obj/item/crowbar,
@@ -69597,6 +69375,20 @@
/obj/machinery/status_display/evac,
/turf/closed/wall/r_wall,
/area/engine/engineering)
+"cnE" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/effect/turf_decal/stripes/line,
+/obj/effect/turf_decal/stripes/line{
+ dir = 1
+ },
+/obj/machinery/door/poddoor/shutters/radiation/preopen{
+ id = "engpa";
+ name = "Radiation Chamber Shutters"
+ },
+/turf/open/floor/plasteel,
+/area/engine/engineering)
"cnF" = (
/obj/machinery/requests_console{
department = "Chapel Office";
@@ -71030,6 +70822,22 @@
},
/turf/open/floor/plating,
/area/engine/engineering)
+"cqw" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 8
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 4
+ },
+/obj/machinery/door/poddoor/shutters/radiation/preopen{
+ id = "engpa";
+ name = "Radiation Chamber Shutters"
+ },
+/turf/open/floor/plasteel,
+/area/engine/engineering)
"cqx" = (
/obj/structure/cable{
icon_state = "4-8"
@@ -76272,6 +76080,25 @@
/obj/effect/turf_decal/stripes/corner,
/turf/open/floor/plating/airless,
/area/space/nearstation)
+"czs" = (
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 8
+ },
+/obj/machinery/door/poddoor/shutters/radiation/preopen{
+ id = "engpa";
+ name = "Radiation Chamber Shutters"
+ },
+/turf/open/floor/plating,
+/area/engine/engineering)
"czt" = (
/obj/structure/cable{
icon_state = "1-8"
@@ -82051,13 +81878,6 @@
},
/turf/open/floor/plasteel,
/area/crew_quarters/dorms)
-"cJl" = (
-/obj/structure/lattice,
-/obj/machinery/atmospherics/pipe/simple/yellow/visible{
- dir = 10
- },
-/turf/open/space,
-/area/engine/atmos)
"cJm" = (
/obj/structure/cable/white{
icon_state = "4-8"
@@ -84868,6 +84688,17 @@
},
/turf/open/floor/plasteel,
/area/medical/storage)
+"cNO" = (
+/obj/machinery/vending/wardrobe/medi_wardrobe,
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/obj/structure/sign/poster/official/medical_green_cross{
+ pixel_y = 32
+ },
+/turf/open/floor/plasteel,
+/area/medical/storage)
"cNP" = (
/obj/machinery/disposal/bin,
/obj/structure/disposalpipe/trunk,
@@ -86649,6 +86480,20 @@
},
/turf/open/floor/plasteel/white,
/area/medical/medbay/central)
+"cRa" = (
+/obj/structure/bed/roller,
+/obj/machinery/iv_drip,
+/obj/effect/turf_decal/tile/blue{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 4
+ },
+/obj/structure/sign/poster/official/medical_green_cross{
+ pixel_y = 32
+ },
+/turf/open/floor/plasteel/white,
+/area/medical/medbay/central)
"cRb" = (
/obj/structure/bed/roller,
/obj/machinery/iv_drip,
@@ -103342,6 +103187,26 @@
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
/turf/open/floor/wood,
/area/crew_quarters/abandoned_gambling_den)
+"duk" = (
+/obj/structure/table/wood,
+/obj/item/assembly/igniter,
+/obj/item/assembly/igniter,
+/obj/item/assembly/timer{
+ pixel_x = 3;
+ pixel_y = 3
+ },
+/obj/effect/decal/cleanable/dirt,
+/obj/structure/sign/poster/contraband/scum{
+ pixel_x = 32
+ },
+/obj/structure/sign/poster/contraband/scum{
+ pixel_x = 32
+ },
+/obj/structure/sign/poster/contraband/scum{
+ pixel_x = 32
+ },
+/turf/open/floor/plating,
+/area/crew_quarters/abandoned_gambling_den)
"dul" = (
/obj/structure/table,
/obj/item/stack/packageWrap,
@@ -111967,18 +111832,6 @@
/obj/structure/cable/white{
icon_state = "4-8"
},
-/obj/effect/turf_decal/bot,
-/turf/open/floor/plasteel,
-/area/science/storage)
-"dIC" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
-/obj/structure/cable/white{
- icon_state = "4-8"
- },
-/obj/effect/turf_decal/stripes/line{
- dir = 8
- },
/turf/open/floor/plasteel,
/area/science/storage)
"dID" = (
@@ -111987,6 +111840,7 @@
icon_state = "4-8"
},
/obj/effect/turf_decal/delivery,
+/obj/machinery/portable_atmospherics/scrubber/huge,
/turf/open/floor/plasteel,
/area/science/storage)
"dIE" = (
@@ -111994,6 +111848,7 @@
icon_state = "2-8"
},
/obj/effect/turf_decal/delivery,
+/obj/machinery/portable_atmospherics/scrubber/huge,
/turf/open/floor/plasteel,
/area/science/storage)
"dIF" = (
@@ -112736,18 +112591,17 @@
/turf/open/floor/plasteel,
/area/science/mixing)
"dJT" = (
-/obj/structure/tank_dispenser,
/obj/effect/turf_decal/bot,
+/obj/structure/rack,
+/obj/item/clothing/mask/gas,
+/obj/item/clothing/head/hardhat/red,
+/obj/item/clothing/suit/fire/firefighter,
/turf/open/floor/plasteel,
/area/science/mixing)
"dJU" = (
-/obj/structure/rack,
/obj/structure/extinguisher_cabinet{
pixel_y = -32
},
-/obj/item/clothing/suit/fire/firefighter,
-/obj/item/clothing/head/hardhat/red,
-/obj/item/clothing/mask/gas,
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
dir = 5
},
@@ -112806,9 +112660,6 @@
/turf/closed/wall/r_wall,
/area/science/mixing)
"dJZ" = (
-/obj/structure/table,
-/obj/item/paper_bin,
-/obj/item/pen,
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
dir = 4
},
@@ -112818,30 +112669,29 @@
name = "science camera";
network = list("ss13","rd")
},
-/obj/effect/turf_decal/bot,
+/obj/effect/turf_decal/stripes/line,
/turf/open/floor/plasteel,
/area/science/storage)
"dKa" = (
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
dir = 9
},
-/obj/effect/turf_decal/bot,
+/obj/effect/turf_decal/stripes/line,
/turf/open/floor/plasteel,
/area/science/storage)
"dKb" = (
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
-/obj/effect/turf_decal/stripes/line{
- dir = 8
+/obj/effect/turf_decal/stripes/corner{
+ dir = 1
},
+/obj/effect/turf_decal/stripes/corner,
/turf/open/floor/plasteel,
/area/science/storage)
"dKc" = (
-/obj/machinery/portable_atmospherics/scrubber/huge,
-/obj/effect/turf_decal/bot,
+/obj/effect/turf_decal/stripes/line,
/turf/open/floor/plasteel,
/area/science/storage)
"dKd" = (
-/obj/machinery/portable_atmospherics/scrubber/huge,
/obj/effect/decal/cleanable/dirt,
/obj/machinery/power/apc{
areastring = "/area/science/storage";
@@ -112850,7 +112700,7 @@
pixel_x = 26
},
/obj/structure/cable/white,
-/obj/effect/turf_decal/bot,
+/obj/effect/turf_decal/stripes/line,
/turf/open/floor/plasteel,
/area/science/storage)
"dKe" = (
@@ -113156,8 +113006,8 @@
/turf/open/floor/plasteel,
/area/science/mixing)
"dKF" = (
-/obj/machinery/portable_atmospherics/canister/carbon_dioxide,
/obj/effect/turf_decal/bot,
+/obj/structure/tank_dispenser,
/turf/open/floor/plasteel,
/area/science/storage)
"dKG" = (
@@ -114813,6 +114663,9 @@
/obj/effect/turf_decal/stripes/line{
dir = 8
},
+/obj/effect/turf_decal/stripes/line{
+ dir = 4
+ },
/turf/open/floor/plasteel,
/area/science/storage)
"dNC" = (
@@ -115222,6 +115075,9 @@
/obj/effect/turf_decal/stripes/line{
dir = 8
},
+/obj/effect/turf_decal/stripes/line{
+ dir = 4
+ },
/turf/open/floor/plasteel,
/area/science/storage)
"dOq" = (
@@ -125023,30 +124879,24 @@
},
/turf/open/floor/plasteel/dark,
/area/library)
-"emA" = (
-/obj/effect/spawner/structure/window/reinforced,
-/obj/machinery/atmospherics/pipe/simple/green/visible{
+"eoB" = (
+/obj/machinery/seed_extractor,
+/obj/item/reagent_containers/glass/bucket,
+/obj/effect/turf_decal/delivery,
+/turf/open/floor/plasteel,
+/area/hydroponics/garden/abandoned{
+ name = "Maintenance Garden"
+ })
+"etO" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
dir = 4
},
-/obj/machinery/atmospherics/pipe/simple/cyan/visible,
-/turf/open/floor/plating,
+/turf/closed/wall,
/area/engine/atmos)
"exE" = (
/obj/machinery/air_sensor/atmos/toxins_mixing_tank,
/turf/open/floor/engine/vacuum,
/area/science/mixing)
-"eCJ" = (
-/obj/effect/turf_decal/tile/neutral{
- dir = 1
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 4
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 8
- },
-/turf/open/floor/plasteel,
-/area/maintenance/port/fore)
"eCM" = (
/obj/structure/cable/white{
icon_state = "4-8"
@@ -125057,6 +124907,16 @@
},
/turf/open/floor/plasteel/white,
/area/science/misc_lab)
+"eGi" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/effect/turf_decal/stripes/line{
+ dir = 8
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/science/storage)
"eJc" = (
/obj/machinery/atmospherics/pipe/simple/general/visible,
/turf/closed/wall/r_wall,
@@ -125098,31 +124958,6 @@
},
/turf/open/floor/plasteel/dark,
/area/science/mixing)
-"ePi" = (
-/obj/effect/turf_decal/tile/neutral{
- dir = 8
- },
-/obj/effect/turf_decal/tile/neutral,
-/turf/open/floor/plasteel,
-/area/maintenance/port/fore)
-"eRX" = (
-/obj/effect/turf_decal/tile/neutral{
- dir = 1
- },
-/obj/effect/turf_decal/tile/neutral,
-/obj/effect/turf_decal/tile/neutral{
- dir = 4
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 8
- },
-/obj/machinery/atmospherics/components/binary/pump{
- dir = 4;
- name = "N2O to Pure"
- },
-/obj/machinery/atmospherics/pipe/simple/green/visible,
-/turf/open/floor/plasteel/dark,
-/area/engine/atmos)
"eTv" = (
/obj/effect/turf_decal/stripes/line{
dir = 8
@@ -125139,6 +124974,14 @@
},
/turf/open/floor/plasteel/dark,
/area/science/mixing)
+"eWr" = (
+/obj/effect/turf_decal/delivery,
+/obj/machinery/hydroponics/soil,
+/obj/item/seeds/grape,
+/turf/open/floor/plasteel,
+/area/hydroponics/garden/abandoned{
+ name = "Maintenance Garden"
+ })
"faI" = (
/obj/structure/cable/white{
icon_state = "1-2"
@@ -125175,27 +125018,12 @@
},
/turf/open/floor/plasteel,
/area/medical/medbay/central)
-"fiK" = (
-/obj/structure/cable/white{
- icon_state = "1-2"
+"fmW" = (
+/obj/structure/sign/painting/library_secure{
+ pixel_y = 32
},
-/obj/effect/turf_decal/tile/neutral{
- dir = 1
- },
-/obj/effect/turf_decal/tile/neutral,
-/obj/effect/turf_decal/tile/neutral{
- dir = 4
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 8
- },
-/obj/structure/disposalpipe/sorting/mail{
- dir = 8;
- name = "Mining Junction";
- sortType = 22
- },
-/turf/open/floor/plasteel,
-/area/hallway/primary/central)
+/turf/open/floor/wood,
+/area/library)
"fno" = (
/obj/effect/turf_decal/stripes/line{
dir = 8
@@ -125221,16 +125049,6 @@
/obj/machinery/door/airlock/research/glass/incinerator/toxmix_interior,
/turf/open/floor/engine,
/area/science/mixing)
-"fCs" = (
-/obj/machinery/door/window/northright{
- name = "Coffin Storage"
- },
-/obj/structure/window/reinforced{
- dir = 8
- },
-/obj/structure/closet/crate/coffin,
-/turf/open/floor/plating,
-/area/chapel/office)
"fFK" = (
/obj/machinery/ore_silo,
/obj/effect/turf_decal/tile/neutral{
@@ -125249,44 +125067,13 @@
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
/turf/closed/wall/r_wall,
/area/science/circuit)
-"fLh" = (
-/obj/effect/turf_decal/tile/neutral{
- dir = 1
- },
-/obj/effect/turf_decal/tile/neutral,
-/obj/effect/turf_decal/tile/neutral{
- dir = 4
- },
-/obj/effect/turf_decal/delivery,
-/obj/structure/closet,
-/obj/effect/spawner/lootdrop/maintenance{
- lootcount = 3;
- name = "3maintenance loot spawner"
- },
-/turf/open/floor/plasteel,
-/area/maintenance/port/aft)
"fLR" = (
/obj/machinery/atmospherics/pipe/simple/supply/hidden{
dir = 6
},
/turf/closed/wall/r_wall,
/area/maintenance/disposal/incinerator)
-"fRT" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
- dir = 4
- },
-/obj/structure/cable/white{
- icon_state = "4-8"
- },
-/turf/open/floor/plating,
-/area/maintenance/port)
-"fXF" = (
-/obj/machinery/button/crematorium{
- id = "cremawheat";
- pixel_x = -26;
- req_access_txt = "27"
- },
+"fRK" = (
/obj/effect/turf_decal/tile/neutral{
dir = 1
},
@@ -125297,15 +125084,21 @@
/obj/effect/turf_decal/tile/neutral{
dir = 8
},
-/obj/structure/table,
-/obj/item/clothing/under/misc/burial,
-/obj/item/clothing/under/misc/burial,
-/obj/item/clothing/under/misc/burial,
-/obj/item/clothing/under/misc/burial,
-/obj/item/clothing/under/misc/burial,
-/obj/item/clothing/under/misc/burial,
+/obj/machinery/atmospherics/components/trinary/filter/atmos/n2{
+ dir = 1
+ },
/turf/open/floor/plasteel/dark,
-/area/chapel/office)
+/area/engine/atmos)
+"fRT" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
+ dir = 4
+ },
+/obj/structure/cable/white{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plating,
+/area/maintenance/port)
"gbV" = (
/obj/machinery/atmospherics/components/binary/pump/on{
dir = 1
@@ -125318,67 +125111,31 @@
},
/turf/open/floor/engine,
/area/science/mixing)
-"giN" = (
-/obj/structure/window/reinforced{
- dir = 8
- },
-/obj/structure/closet/crate/coffin,
-/turf/open/floor/plating,
-/area/chapel/office)
-"gjg" = (
-/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden,
-/obj/effect/turf_decal/tile/neutral{
- dir = 8
- },
-/obj/machinery/airalarm{
- dir = 1;
- pixel_y = -22
- },
-/turf/open/floor/plasteel,
-/area/hallway/primary/port)
"gmj" = (
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
/turf/closed/wall/r_wall,
/area/science/circuit)
-"gut" = (
-/obj/effect/turf_decal/tile/neutral{
- dir = 1
+"gqA" = (
+/obj/structure/table,
+/obj/machinery/computer/libraryconsole/bookmanagement,
+/obj/structure/cable/white{
+ icon_state = "1-2"
},
-/obj/effect/turf_decal/tile/neutral{
- dir = 8
+/obj/structure/cable/white{
+ icon_state = "2-8"
},
-/obj/effect/turf_decal/tile/neutral{
- dir = 4
- },
-/obj/effect/turf_decal/tile/neutral,
-/turf/open/floor/plasteel/dark,
-/area/chapel/office)
-"gBd" = (
-/turf/open/floor/plasteel,
+/turf/open/floor/plating,
/area/security/prison)
-"gKo" = (
-/obj/effect/turf_decal/tile/neutral{
- dir = 4
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 1
- },
-/turf/open/floor/plasteel,
-/area/maintenance/port/fore)
+"gKn" = (
+/obj/structure/grille,
+/turf/open/space,
+/area/space/nearstation)
"gKr" = (
/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
dir = 1
},
/turf/open/floor/circuit/green,
/area/science/research/abandoned)
-"gLe" = (
-/obj/effect/turf_decal/delivery,
-/obj/machinery/hydroponics/soil,
-/obj/item/seeds/grape,
-/turf/open/floor/plasteel,
-/area/hydroponics/garden/abandoned{
- name = "Maintenance Garden"
- })
"gNw" = (
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
/obj/structure/table/glass,
@@ -125404,12 +125161,6 @@
},
/turf/open/floor/plasteel/dark,
/area/science/mixing)
-"gOM" = (
-/obj/structure/sign/painting/library{
- pixel_y = -32
- },
-/turf/open/floor/wood,
-/area/library)
"gPv" = (
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
dir = 4
@@ -125436,19 +125187,23 @@
dir = 1
},
/area/science/circuit)
+"gVM" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/machinery/camera{
+ c_tag = "Library - Aft";
+ dir = 2;
+ name = "library camera"
+ },
+/turf/open/floor/plasteel/grimy,
+/area/library)
"gVS" = (
/obj/item/clothing/head/kitty,
/obj/item/clothing/under/costume/maid,
/obj/item/clothing/mask/muzzle,
/turf/open/floor/plating,
/area/crew_quarters/abandoned_gambling_den)
-"gVZ" = (
-/obj/effect/turf_decal/tile/neutral,
-/obj/effect/turf_decal/tile/neutral{
- dir = 8
- },
-/turf/open/floor/plasteel,
-/area/maintenance/port/fore)
"gXn" = (
/obj/effect/decal/cleanable/dirt,
/obj/effect/turf_decal/stripes/line{
@@ -125476,10 +125231,12 @@
dir = 10
},
/area/science/circuit)
-"hix" = (
-/obj/structure/sign/warning/vacuum,
+"hnq" = (
+/obj/machinery/atmospherics/pipe/simple/cyan/visible{
+ dir = 4
+ },
/turf/closed/wall/r_wall,
-/area/chapel/office)
+/area/engine/atmos)
"hrP" = (
/obj/structure/cable/white{
icon_state = "1-2"
@@ -125499,19 +125256,37 @@
},
/turf/open/floor/plasteel,
/area/maintenance/port/aft)
-"hsy" = (
-/obj/machinery/vr_sleeper,
-/obj/structure/cable/white{
- icon_state = "4-8"
- },
-/turf/open/floor/plasteel,
-/area/security/prison)
-"hwV" = (
+"hrQ" = (
/obj/machinery/atmospherics/pipe/simple/supply/hidden{
dir = 4
},
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/obj/effect/landmark/start/cyborg,
+/turf/open/floor/plasteel/dark,
+/area/ai_monitored/turret_protected/aisat_interior)
+"hAf" = (
+/obj/structure/cable/white{
+ icon_state = "4-8"
+ },
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/maintenance/port/aft)
+"hCj" = (
+/obj/structure/disposalpipe/segment,
/turf/closed/wall,
-/area/engine/atmos)
+/area/maintenance/starboard/fore)
"hFo" = (
/obj/structure/lattice,
/obj/structure/disposalpipe/segment{
@@ -125562,34 +125337,38 @@
/obj/effect/spawner/structure/window/reinforced,
/turf/open/floor/plating,
/area/medical/medbay/central)
-"hTX" = (
-/obj/effect/turf_decal/tile/neutral,
-/obj/effect/turf_decal/tile/neutral{
- dir = 4
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 1
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 8
- },
-/turf/open/floor/plasteel/dark,
-/area/chapel/office)
+"hZh" = (
+/turf/open/space/basic,
+/area/space/station_ruins)
"iaF" = (
/obj/effect/turf_decal/bot,
/turf/open/floor/plasteel,
/area/science/research)
-"iho" = (
-/obj/structure/sign/warning/nosmoking,
-/turf/closed/wall,
-/area/medical/surgery)
+"iem" = (
+/obj/machinery/door/poddoor{
+ id = "chapelgun";
+ name = "Chapel Launcher Door"
+ },
+/obj/structure/fans/tiny,
+/turf/open/floor/plating,
+/area/chapel/office)
"ijB" = (
/obj/structure/reagent_dispensers/keg/aphro/strong,
/obj/item/reagent_containers/glass/beaker,
/turf/open/floor/plating,
/area/crew_quarters/abandoned_gambling_den)
-"ioW" = (
-/obj/effect/decal/cleanable/dirt,
+"imI" = (
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/obj/machinery/airalarm{
+ dir = 1;
+ pixel_y = -22
+ },
+/turf/open/floor/plasteel,
+/area/hallway/primary/port)
+"irh" = (
/obj/effect/turf_decal/tile/neutral{
dir = 1
},
@@ -125600,11 +125379,9 @@
/obj/effect/turf_decal/tile/neutral{
dir = 8
},
-/obj/machinery/computer/arcade{
- dir = 1
- },
+/obj/structure/closet/crate/coffin,
/turf/open/floor/plasteel/dark,
-/area/maintenance/starboard/fore)
+/area/chapel/office)
"iwL" = (
/obj/machinery/status_display/evac{
pixel_x = 32
@@ -125623,6 +125400,33 @@
},
/turf/open/floor/engine/vacuum,
/area/science/mixing)
+"iBf" = (
+/obj/effect/spawner/structure/window/reinforced,
+/obj/machinery/atmospherics/pipe/simple/cyan/visible{
+ dir = 6
+ },
+/turf/open/floor/plating,
+/area/engine/atmos)
+"iIl" = (
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral,
+/turf/open/floor/plasteel/dark,
+/area/chapel/office)
+"iNK" = (
+/obj/structure/sign/painting/library{
+ pixel_x = 0;
+ pixel_y = -32
+ },
+/turf/open/floor/wood,
+/area/library)
"iQh" = (
/obj/structure/bodycontainer/morgue{
dir = 1
@@ -125643,6 +125447,24 @@
/obj/machinery/status_display/evac,
/turf/closed/wall,
/area/medical/medbay/central)
+"iRs" = (
+/obj/machinery/light/small,
+/turf/open/floor/plasteel,
+/area/security/prison)
+"iRY" = (
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/green/visible,
+/turf/open/floor/plasteel/dark,
+/area/engine/atmos)
"iTj" = (
/obj/machinery/atmospherics/pipe/simple/general/visible{
dir = 6
@@ -125663,12 +125485,11 @@
},
/turf/open/floor/plasteel/dark,
/area/science/mixing)
-"jaZ" = (
-/obj/machinery/atmospherics/pipe/simple/orange/visible{
- dir = 4
- },
-/turf/closed/wall/r_wall,
-/area/engine/atmos)
+"jdx" = (
+/obj/structure/lattice,
+/obj/structure/grille,
+/turf/open/space/basic,
+/area/space/nearstation)
"jdO" = (
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
dir = 4
@@ -125693,6 +125514,16 @@
},
/turf/open/floor/plasteel,
/area/science/research/abandoned)
+"jiQ" = (
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
+ dir = 8
+ },
+/obj/structure/sign/plaques/kiddie/library{
+ pixel_x = 32;
+ pixel_y = 32
+ },
+/turf/open/floor/plasteel/grimy,
+/area/library)
"jjN" = (
/obj/structure/table/reinforced,
/obj/machinery/camera{
@@ -125709,12 +125540,6 @@
/obj/item/integrated_circuit_printer,
/turf/open/floor/plasteel/white/side,
/area/science/circuit)
-"jqs" = (
-/obj/structure/sign/painting/library{
- pixel_y = 32
- },
-/turf/open/floor/wood,
-/area/library)
"jqM" = (
/obj/effect/decal/cleanable/dirt,
/obj/effect/turf_decal/stripes/line{
@@ -125764,7 +125589,8 @@
},
/turf/open/floor/plasteel/dark,
/area/science/mixing)
-"jwo" = (
+"jvU" = (
+/obj/machinery/flasher/portable,
/obj/effect/turf_decal/tile/neutral{
dir = 1
},
@@ -125775,9 +125601,27 @@
/obj/effect/turf_decal/tile/neutral{
dir = 8
},
-/mob/living/simple_animal/pet/bumbles,
-/turf/open/floor/plasteel,
-/area/hydroponics)
+/obj/structure/sign/poster/official/nt_storm{
+ pixel_y = 32
+ },
+/turf/open/floor/plasteel/dark,
+/area/ai_monitored/security/armory)
+"jyT" = (
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/obj/machinery/computer/arcade{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/maintenance/starboard/fore)
"jBE" = (
/obj/effect/decal/cleanable/dirt,
/obj/effect/turf_decal/tile/neutral{
@@ -125792,10 +125636,19 @@
},
/turf/open/floor/plasteel,
/area/medical/morgue)
-"jOB" = (
-/obj/structure/disposalpipe/segment,
-/turf/closed/wall,
-/area/maintenance/starboard/fore)
+"jGT" = (
+/obj/effect/spawner/structure/window/reinforced,
+/obj/machinery/atmospherics/pipe/simple/green/visible{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/cyan/visible,
+/turf/open/floor/plating,
+/area/engine/atmos)
+"jNQ" = (
+/obj/effect/spawner/structure/window/reinforced,
+/obj/machinery/atmospherics/pipe/simple/cyan/visible,
+/turf/open/floor/plating,
+/area/engine/atmos)
"jOE" = (
/obj/machinery/newscaster{
pixel_x = 32
@@ -125833,17 +125686,11 @@
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
/turf/open/floor/plating,
/area/science/mixing)
-"jVB" = (
-/obj/structure/table/wood/fancy,
-/obj/structure/window/reinforced{
- dir = 8
- },
-/obj/structure/window/reinforced,
-/obj/structure/sign/painting/library_secure{
- pixel_y = 32
- },
-/turf/open/floor/carpet,
-/area/library)
+"jYx" = (
+/obj/effect/turf_decal/bot,
+/obj/machinery/portable_atmospherics/canister/carbon_dioxide,
+/turf/open/floor/plasteel,
+/area/science/storage)
"kam" = (
/obj/effect/decal/cleanable/dirt,
/obj/machinery/conveyor{
@@ -125852,7 +125699,7 @@
},
/turf/open/floor/plating,
/area/quartermaster/storage)
-"kiJ" = (
+"kbU" = (
/obj/effect/turf_decal/tile/neutral{
dir = 1
},
@@ -125863,35 +125710,34 @@
/obj/effect/turf_decal/tile/neutral{
dir = 8
},
-/obj/machinery/computer/arcade{
- dir = 4
- },
+/obj/machinery/atmospherics/components/trinary/filter/atmos/n2o,
/turf/open/floor/plasteel/dark,
-/area/maintenance/starboard/fore)
-"kqa" = (
-/obj/structure/table,
-/obj/effect/decal/cleanable/cobweb,
-/obj/item/storage/crayons,
-/obj/item/storage/crayons,
-/obj/structure/cable/white{
- icon_state = "4-8"
+/area/engine/atmos)
+"klP" = (
+/obj/machinery/atmospherics/pipe/simple/orange/visible{
+ dir = 4
},
-/turf/open/floor/plasteel,
-/area/security/prison)
-"krb" = (
+/turf/closed/wall/r_wall,
+/area/engine/atmos)
+"kmj" = (
+/obj/structure/lattice,
+/obj/machinery/atmospherics/pipe/simple/yellow/visible{
+ dir = 10
+ },
+/turf/open/space,
+/area/engine/atmos)
+"ktK" = (
/obj/effect/turf_decal/tile/neutral{
- dir = 8
+ dir = 4
},
/obj/effect/turf_decal/tile/neutral{
dir = 1
},
/obj/effect/turf_decal/tile/neutral{
- dir = 4
- },
-/obj/effect/turf_decal/tile/neutral,
-/obj/machinery/light{
dir = 8
},
+/obj/effect/turf_decal/tile/neutral,
+/obj/structure/bodycontainer/morgue,
/turf/open/floor/plasteel/dark,
/area/chapel/office)
"kvf" = (
@@ -125919,19 +125765,19 @@
},
/turf/open/floor/plasteel,
/area/maintenance/port)
-"kKn" = (
-/obj/structure/window/reinforced{
- dir = 8
- },
-/obj/structure/window/reinforced{
+"kBV" = (
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
dir = 4
},
-/obj/machinery/door/window{
- req_one_access_txt = "48,50"
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
},
-/obj/effect/turf_decal/bot,
-/turf/open/floor/plasteel,
-/area/quartermaster/sorting)
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/chapel/office)
"kLu" = (
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
dir = 4
@@ -125947,25 +125793,84 @@
},
/turf/open/floor/plasteel/white,
/area/science/mixing)
-"kQS" = (
-/obj/effect/turf_decal/stripes/line{
+"kND" = (
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
dir = 8
},
-/obj/machinery/atmospherics/components/binary/pump{
- dir = 1;
- name = "Port to Turbine"
- },
/turf/open/floor/plasteel,
-/area/engine/atmos)
+/area/maintenance/port/fore)
+"kPJ" = (
+/obj/structure/reagent_dispensers/watertank,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/neutral,
+/turf/open/floor/plasteel,
+/area/maintenance/port/fore)
"lak" = (
/turf/open/floor/plasteel/white/side{
dir = 10
},
/area/science/circuit)
-"lhL" = (
-/obj/structure/lattice/catwalk,
-/obj/machinery/atmospherics/pipe/manifold/yellow/visible,
-/turf/open/space,
+"lbN" = (
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral,
+/turf/open/floor/plasteel/dark,
+/area/chapel/office)
+"lge" = (
+/obj/structure/cable/white{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/structure/disposalpipe/segment,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/neutral,
+/turf/open/floor/plasteel,
+/area/maintenance/port/fore)
+"lkk" = (
+/obj/effect/turf_decal/delivery,
+/obj/machinery/hydroponics/soil,
+/obj/item/seeds/lime{
+ pixel_x = 6
+ },
+/turf/open/floor/plasteel,
+/area/hydroponics/garden/abandoned{
+ name = "Maintenance Garden"
+ })
+"loH" = (
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/green/visible{
+ dir = 10
+ },
+/turf/open/floor/plasteel/dark,
/area/engine/atmos)
"loI" = (
/obj/machinery/autolathe,
@@ -125984,7 +125889,7 @@
},
/turf/open/floor/plasteel/white,
/area/science/lab)
-"lqA" = (
+"lpu" = (
/obj/effect/turf_decal/tile/neutral{
dir = 1
},
@@ -125995,9 +125900,16 @@
/obj/effect/turf_decal/tile/neutral{
dir = 8
},
-/obj/machinery/atmospherics/components/trinary/filter/atmos/n2o,
-/turf/open/floor/plasteel/dark,
-/area/engine/atmos)
+/mob/living/simple_animal/pet/bumbles,
+/turf/open/floor/plasteel,
+/area/hydroponics)
+"lsa" = (
+/obj/machinery/vr_sleeper,
+/obj/structure/cable/white{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plasteel,
+/area/security/prison)
"lti" = (
/obj/machinery/atmospherics/components/trinary/mixer/flipped,
/obj/effect/turf_decal/tile/neutral{
@@ -126034,17 +125946,6 @@
},
/turf/open/floor/plasteel/dark,
/area/medical/medbay/central)
-"lDl" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/turf_decal/tile/brown{
- dir = 4
- },
-/obj/effect/turf_decal/tile/brown,
-/obj/structure/disposalpipe/segment{
- dir = 4
- },
-/turf/open/floor/plasteel,
-/area/maintenance/starboard/fore)
"lEl" = (
/obj/effect/turf_decal/stripes/line{
dir = 1
@@ -126078,20 +125979,22 @@
},
/turf/open/floor/plasteel,
/area/science/circuit)
-"lLY" = (
-/obj/effect/turf_decal/tile/neutral{
+"lKF" = (
+/obj/structure/filingcabinet/chestdrawer,
+/obj/effect/turf_decal/tile/brown{
dir = 1
},
-/obj/effect/turf_decal/tile/neutral,
-/obj/effect/turf_decal/tile/neutral{
+/obj/effect/turf_decal/tile/brown{
dir = 4
},
-/obj/effect/turf_decal/tile/neutral{
+/obj/effect/turf_decal/tile/brown{
dir = 8
},
-/obj/structure/closet/crate/coffin,
-/turf/open/floor/plasteel/dark,
-/area/chapel/office)
+/obj/machinery/keycard_auth{
+ pixel_x = -25
+ },
+/turf/open/floor/plasteel,
+/area/quartermaster/qm)
"lOY" = (
/obj/machinery/atmospherics/components/unary/vent_pump/on{
dir = 4
@@ -126150,16 +126053,6 @@
dir = 1
},
/area/science/circuit)
-"mbd" = (
-/obj/structure/cable/white{
- icon_state = "4-8"
- },
-/obj/effect/turf_decal/tile/neutral,
-/obj/effect/turf_decal/tile/neutral{
- dir = 8
- },
-/turf/open/floor/plasteel,
-/area/maintenance/port/aft)
"mkm" = (
/obj/machinery/atmospherics/components/binary/valve,
/obj/machinery/embedded_controller/radio/airlock_controller/incinerator_toxmix{
@@ -126178,21 +126071,6 @@
},
/turf/open/floor/plasteel/dark,
/area/science/mixing)
-"mpP" = (
-/obj/structure/cable/white{
- icon_state = "4-8"
- },
-/obj/machinery/atmospherics/pipe/simple/supply/hidden{
- dir = 4
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 4
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 1
- },
-/turf/open/floor/plasteel,
-/area/maintenance/port/fore)
"mvm" = (
/obj/effect/decal/cleanable/dirt,
/obj/structure/cable/white{
@@ -126214,36 +126092,25 @@
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
/turf/open/floor/circuit/green,
/area/science/research/abandoned)
-"mxy" = (
-/obj/machinery/atmospherics/pipe/manifold/cyan/visible{
- dir = 8
+"mAL" = (
+/obj/structure/table,
+/obj/effect/decal/cleanable/cobweb,
+/obj/item/storage/crayons,
+/obj/item/storage/crayons,
+/obj/structure/cable/white{
+ icon_state = "4-8"
},
-/obj/machinery/atmospherics/pipe/manifold/cyan/visible{
- dir = 8
- },
-/obj/effect/spawner/structure/window/reinforced,
-/turf/open/floor/plating,
-/area/engine/atmos)
+/turf/open/floor/plasteel,
+/area/security/prison)
+"mEP" = (
+/obj/effect/landmark/barthpot,
+/turf/open/floor/wood,
+/area/library)
"mIi" = (
/obj/item/electropack/shockcollar,
/obj/item/assembly/signaler,
/turf/open/floor/plating,
/area/crew_quarters/abandoned_gambling_den)
-"mPj" = (
-/obj/effect/turf_decal/stripes/line,
-/turf/open/floor/plating,
-/area/chapel/office)
-"mPH" = (
-/obj/structure/table,
-/obj/machinery/computer/libraryconsole/bookmanagement,
-/obj/structure/cable/white{
- icon_state = "1-2"
- },
-/obj/structure/cable/white{
- icon_state = "2-8"
- },
-/turf/open/floor/plating,
-/area/security/prison)
"mQE" = (
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
dir = 4
@@ -126256,12 +126123,14 @@
},
/turf/open/floor/plasteel/white,
/area/science/research)
-"mRS" = (
-/obj/machinery/light{
- dir = 1
+"mUH" = (
+/obj/effect/turf_decal/stripes/line,
+/obj/machinery/atmospherics/components/binary/pump{
+ dir = 4;
+ name = "Ports to Engine"
},
-/turf/open/floor/wood,
-/area/library)
+/turf/open/floor/plasteel,
+/area/engine/atmos)
"mWZ" = (
/obj/machinery/atmospherics/components/binary/pump,
/obj/machinery/atmospherics/pipe/simple/supply/hidden{
@@ -126273,61 +126142,110 @@
},
/turf/open/floor/engine,
/area/science/mixing)
-"nbW" = (
-/obj/structure/grille,
+"nbi" = (
+/obj/effect/decal/cleanable/dirt,
+/turf/closed/wall/r_wall,
+/area/chapel/office)
+"nph" = (
/turf/open/space,
-/area/space/nearstation)
+/area/space)
+"nuw" = (
+/obj/structure/cable/white{
+ icon_state = "4-8"
+ },
+/obj/structure/cable/white{
+ icon_state = "2-4"
+ },
+/obj/effect/turf_decal/tile/blue,
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/maintenance/port/aft)
"nyN" = (
/obj/machinery/vending/kink,
/turf/open/floor/plating,
/area/crew_quarters/abandoned_gambling_den)
-"nFW" = (
-/obj/machinery/door/poddoor{
- id = "chapelgun";
- name = "Chapel Launcher Door"
+"nOz" = (
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/delivery,
+/obj/structure/closet,
+/obj/effect/spawner/lootdrop/maintenance{
+ lootcount = 3;
+ name = "3maintenance loot spawner"
+ },
+/turf/open/floor/plasteel,
+/area/maintenance/port/aft)
+"nQB" = (
+/obj/machinery/atmospherics/pipe/simple/cyan/visible{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
},
-/obj/structure/fans/tiny,
-/turf/open/floor/plating,
-/area/chapel/office)
-"nNX" = (
-/obj/structure/reagent_dispensers/watertank,
/obj/effect/turf_decal/tile/neutral{
dir = 8
},
-/obj/effect/turf_decal/tile/neutral,
-/turf/open/floor/plasteel,
-/area/maintenance/port/fore)
+/obj/machinery/atmospherics/pipe/simple/green/visible,
+/turf/open/floor/plasteel/dark,
+/area/engine/atmos)
"nSh" = (
/obj/machinery/atmospherics/pipe/simple/general/hidden,
/turf/closed/wall/r_wall,
/area/maintenance/disposal/incinerator)
-"oek" = (
-/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+"nSA" = (
+/obj/effect/turf_decal/tile/neutral{
dir = 4
},
-/obj/machinery/camera{
- c_tag = "Library - Aft";
- dir = 2;
- name = "library camera"
- },
-/turf/open/floor/plasteel/grimy,
-/area/library)
-"oHk" = (
/obj/effect/turf_decal/tile/neutral{
dir = 1
},
-/obj/effect/turf_decal/tile/neutral,
-/obj/effect/turf_decal/tile/neutral{
+/turf/open/floor/plasteel,
+/area/maintenance/port/fore)
+"odz" = (
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
+ dir = 1
+ },
+/obj/effect/landmark/event_spawn,
+/turf/open/floor/wood,
+/area/crew_quarters/heads/captain/private)
+"ohn" = (
+/obj/structure/lattice/catwalk,
+/obj/machinery/atmospherics/pipe/manifold/cyan/visible,
+/turf/open/space,
+/area/engine/atmos)
+"omN" = (
+/obj/effect/turf_decal/stripes/line{
dir = 4
},
+/obj/machinery/atmospherics/components/trinary/mixer/airmix{
+ dir = 1
+ },
+/turf/open/floor/plasteel,
+/area/engine/atmos)
+"osD" = (
+/obj/structure/lattice/catwalk,
+/obj/machinery/atmospherics/pipe/manifold/yellow/visible,
+/turf/open/space,
+/area/engine/atmos)
+"oDY" = (
+/obj/effect/turf_decal/tile/neutral,
/obj/effect/turf_decal/tile/neutral{
dir = 8
},
-/obj/machinery/computer/arcade{
- dir = 1
- },
-/turf/open/floor/plasteel/dark,
-/area/maintenance/starboard/fore)
+/obj/machinery/light/small,
+/turf/open/floor/plasteel,
+/area/maintenance/port/fore)
"oIl" = (
/obj/machinery/atmospherics/components/unary/portables_connector/visible{
dir = 1
@@ -126377,6 +126295,10 @@
},
/turf/open/floor/plasteel/dark,
/area/science/mixing)
+"oNF" = (
+/obj/item/twohanded/required/kirbyplants/random,
+/turf/open/floor/plasteel,
+/area/security/prison)
"oSD" = (
/obj/machinery/meter,
/obj/machinery/atmospherics/pipe/manifold/general/visible{
@@ -126410,21 +126332,10 @@
},
/turf/open/floor/plasteel/white,
/area/science/research)
-"oVn" = (
-/obj/effect/turf_decal/stripes/line,
-/obj/machinery/atmospherics/components/binary/pump{
- dir = 4;
- name = "Ports to Engine"
- },
-/turf/open/floor/plasteel,
-/area/engine/atmos)
"oYI" = (
/obj/machinery/igniter/incinerator_toxmix,
/turf/open/floor/engine/vacuum,
/area/science/mixing)
-"oZp" = (
-/turf/open/space/basic,
-/area/space/station_ruins)
"oZC" = (
/obj/machinery/door/firedoor,
/obj/machinery/door/airlock/command{
@@ -126437,39 +126348,32 @@
},
/turf/open/floor/wood,
/area/bridge/showroom/corporate)
-"oZY" = (
-/obj/structure/rack,
-/obj/effect/spawner/lootdrop/maintenance{
- lootcount = 2;
- name = "2maintenance loot spawner"
- },
-/obj/effect/turf_decal/tile/neutral,
-/obj/effect/turf_decal/tile/neutral{
+"pcK" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
dir = 4
},
/obj/effect/turf_decal/tile/neutral{
- dir = 8
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/turf/open/floor/plasteel{
+ heat_capacity = 1e+006
},
-/turf/open/floor/plasteel,
/area/maintenance/port/aft)
-"pfC" = (
-/obj/machinery/seed_extractor,
-/obj/item/reagent_containers/glass/bucket,
-/obj/effect/turf_decal/delivery,
-/turf/open/floor/plasteel,
-/area/hydroponics/garden/abandoned{
- name = "Maintenance Garden"
- })
-"pgU" = (
-/obj/effect/turf_decal/delivery,
-/obj/machinery/hydroponics/soil,
-/obj/item/seeds/lime{
- pixel_x = 6
+"pmK" = (
+/obj/structure/sign/warning/electricshock{
+ pixel_y = 32
},
-/turf/open/floor/plasteel,
-/area/hydroponics/garden/abandoned{
- name = "Maintenance Garden"
- })
+/obj/machinery/vr_sleeper,
+/obj/structure/cable/white{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plating{
+ icon_state = "platingdmg2"
+ },
+/area/security/prison)
"pmQ" = (
/obj/structure/table/reinforced,
/obj/machinery/newscaster{
@@ -126480,22 +126384,6 @@
dir = 1
},
/area/science/circuit)
-"pnK" = (
-/obj/structure/filingcabinet/chestdrawer,
-/obj/effect/turf_decal/tile/brown{
- dir = 1
- },
-/obj/effect/turf_decal/tile/brown{
- dir = 4
- },
-/obj/effect/turf_decal/tile/brown{
- dir = 8
- },
-/obj/machinery/keycard_auth{
- pixel_x = -25
- },
-/turf/open/floor/plasteel,
-/area/quartermaster/qm)
"poI" = (
/obj/structure/bed,
/obj/item/tank/internals/anesthetic,
@@ -126520,6 +126408,10 @@
},
/turf/open/floor/plasteel/dark,
/area/medical/morgue)
+"ptB" = (
+/obj/effect/turf_decal/stripes/line,
+/turf/open/floor/plating,
+/area/chapel/office)
"ptI" = (
/obj/effect/decal/cleanable/dirt,
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
@@ -126527,10 +126419,22 @@
},
/turf/open/floor/plating,
/area/science/research/abandoned)
-"pLF" = (
-/obj/machinery/light,
-/turf/open/floor/wood,
-/area/library)
+"pxR" = (
+/obj/structure/cable/white{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 4
+ },
+/obj/effect/landmark/start/paramedic,
+/turf/open/floor/plasteel/white,
+/area/medical/storage)
"pQm" = (
/obj/effect/decal/cleanable/dirt,
/obj/structure/cable/white{
@@ -126548,37 +126452,28 @@
},
/turf/open/floor/plasteel,
/area/science/research/abandoned)
-"qej" = (
-/obj/effect/turf_decal/tile/neutral{
- dir = 1
+"pWb" = (
+/obj/structure/table/wood/fancy,
+/obj/structure/window/reinforced{
+ dir = 8
},
+/obj/structure/window/reinforced,
+/obj/structure/sign/painting/library_secure{
+ pixel_y = 32
+ },
+/turf/open/floor/carpet,
+/area/library)
+"pZB" = (
/obj/effect/turf_decal/tile/neutral,
-/obj/effect/turf_decal/tile/neutral{
- dir = 4
- },
/obj/effect/turf_decal/tile/neutral{
dir = 8
},
-/obj/machinery/atmospherics/components/trinary/filter/atmos/n2{
- dir = 1
- },
-/turf/open/floor/plasteel/dark,
-/area/engine/atmos)
-"qeN" = (
-/obj/machinery/atmospherics/pipe/manifold/supply/hidden,
-/obj/effect/turf_decal/tile/neutral{
- dir = 1
- },
-/obj/effect/turf_decal/tile/neutral,
-/obj/effect/turf_decal/tile/neutral{
- dir = 4
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 8
- },
-/obj/effect/landmark/start/cyborg,
-/turf/open/floor/plasteel/dark,
-/area/ai_monitored/turret_protected/aisat_interior)
+/turf/open/floor/plasteel,
+/area/maintenance/port/fore)
+"qgU" = (
+/obj/structure/lattice,
+/turf/open/space/basic,
+/area/space/nearstation)
"qhc" = (
/obj/structure/table/reinforced,
/obj/item/integrated_electronics/analyzer,
@@ -126592,83 +126487,16 @@
/obj/machinery/atmospherics/components/unary/outlet_injector/atmos/toxins_mixing_input,
/turf/open/floor/engine/vacuum,
/area/science/mixing)
-"qoc" = (
-/obj/machinery/door/window/northleft{
- name = "Mass Driver"
- },
-/obj/machinery/mass_driver{
- id = "chapelgun";
- name = "Holy Driver"
- },
-/turf/open/floor/plating,
-/area/chapel/office)
"qpq" = (
/turf/open/floor/plasteel/white/side{
dir = 5
},
/area/science/circuit)
-"qAV" = (
-/obj/effect/turf_decal/tile/neutral,
-/obj/effect/turf_decal/tile/neutral{
- dir = 8
- },
-/obj/machinery/light/small,
-/turf/open/floor/plasteel,
-/area/maintenance/port/fore)
"qBG" = (
/obj/effect/spawner/lootdrop/keg,
/turf/open/floor/plating,
/area/crew_quarters/abandoned_gambling_den)
-"qYM" = (
-/obj/effect/landmark/carpspawn,
-/turf/open/space,
-/area/space/station_ruins)
-"ray" = (
-/obj/effect/turf_decal/tile/neutral{
- dir = 8
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 1
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 4
- },
-/obj/effect/turf_decal/tile/neutral,
-/obj/machinery/computer/pod/old{
- density = 0;
- icon = 'icons/obj/airlock_machines.dmi';
- icon_state = "airlock_control_standby";
- id = "chapelgun";
- name = "Mass Driver Controller";
- pixel_x = -24
- },
-/turf/open/floor/plasteel/dark,
-/area/chapel/office)
-"rhO" = (
-/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
- dir = 1
- },
-/turf/open/floor/plasteel/white/side{
- dir = 9
- },
-/area/science/circuit)
-"rjr" = (
-/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
- dir = 1
- },
-/obj/effect/landmark/event_spawn,
-/turf/open/floor/wood,
-/area/crew_quarters/heads/captain/private)
-"rqh" = (
-/obj/structure/lattice,
-/turf/open/space/basic,
-/area/space/nearstation)
-"rCv" = (
-/turf/open/floor/plasteel/white/side{
- dir = 6
- },
-/area/science/circuit)
-"rIi" = (
+"qUn" = (
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
/obj/effect/turf_decal/tile/neutral{
dir = 1
@@ -126682,19 +126510,57 @@
},
/turf/open/floor/plasteel/dark,
/area/chapel/office)
-"rKU" = (
-/obj/structure/cable/white{
- icon_state = "4-8"
+"rhO" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
+ dir = 1
},
-/obj/structure/cable/white{
- icon_state = "2-4"
+/turf/open/floor/plasteel/white/side{
+ dir = 9
},
-/obj/effect/turf_decal/tile/blue,
-/obj/effect/turf_decal/tile/blue{
- dir = 8
+/area/science/circuit)
+"rCv" = (
+/turf/open/floor/plasteel/white/side{
+ dir = 6
+ },
+/area/science/circuit)
+"rEo" = (
+/obj/structure/lattice,
+/obj/machinery/atmospherics/pipe/simple/cyan/visible{
+ dir = 10
+ },
+/turf/open/space,
+/area/engine/atmos)
+"rGq" = (
+/obj/effect/turf_decal/delivery,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
},
/turf/open/floor/plasteel,
-/area/maintenance/port/aft)
+/area/engine/atmos)
+"rPK" = (
+/obj/item/twohanded/required/kirbyplants/random,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/engine/atmos)
+"rSz" = (
+/obj/structure/window/reinforced{
+ dir = 8
+ },
+/obj/structure/closet/crate/coffin,
+/turf/open/floor/plating,
+/area/chapel/office)
"rUD" = (
/obj/machinery/meter,
/obj/machinery/atmospherics/pipe/manifold/general/visible{
@@ -126732,63 +126598,80 @@
"saw" = (
/turf/closed/wall,
/area/science/circuit)
-"sby" = (
-/obj/effect/turf_decal/stripes/line{
- dir = 4
- },
-/obj/machinery/atmospherics/components/trinary/mixer/airmix{
- dir = 1
- },
-/turf/open/floor/plasteel,
-/area/engine/atmos)
"sfo" = (
/obj/effect/decal/remains/xeno,
/turf/open/floor/engine/vacuum,
/area/science/mixing)
-"sfL" = (
-/turf/open/space,
-/area/space)
"svv" = (
/obj/machinery/door/poddoor/incinerator_toxmix,
/turf/open/floor/engine/vacuum,
/area/science/mixing)
-"sww" = (
+"sAr" = (
/obj/effect/decal/cleanable/dirt,
-/turf/closed/wall/r_wall,
-/area/chapel/office)
-"sCQ" = (
-/obj/effect/turf_decal/tile/neutral{
+/obj/effect/turf_decal/tile/brown{
dir = 4
},
-/obj/effect/turf_decal/tile/neutral{
- dir = 1
+/obj/effect/turf_decal/tile/brown,
+/obj/structure/disposalpipe/segment{
+ dir = 4
},
+/turf/open/floor/plasteel,
+/area/maintenance/starboard/fore)
+"sFU" = (
+/obj/structure/sign/warning/nosmoking,
+/turf/closed/wall,
+/area/medical/surgery)
+"sPd" = (
/obj/effect/turf_decal/tile/neutral{
dir = 8
},
/obj/effect/turf_decal/tile/neutral,
-/obj/structure/bodycontainer/morgue,
-/turf/open/floor/plasteel/dark,
-/area/chapel/office)
-"sVX" = (
+/turf/open/floor/plasteel,
+/area/maintenance/port/fore)
+"sPy" = (
+/obj/machinery/light,
+/turf/open/floor/wood,
+/area/library)
+"sRE" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
/obj/effect/turf_decal/tile/neutral{
dir = 8
},
+/obj/machinery/firealarm{
+ dir = 1;
+ pixel_y = -26
+ },
+/turf/open/floor/plasteel,
+/area/hallway/primary/port)
+"sSh" = (
+/obj/effect/decal/cleanable/dirt,
/obj/effect/turf_decal/tile/neutral{
dir = 1
},
+/obj/effect/turf_decal/tile/neutral,
/obj/effect/turf_decal/tile/neutral{
dir = 4
},
-/obj/effect/turf_decal/tile/neutral,
-/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
- dir = 4
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
},
-/obj/machinery/airalarm{
- pixel_y = 22
+/obj/machinery/computer/arcade{
+ dir = 1
},
/turf/open/floor/plasteel/dark,
-/area/chapel/office)
+/area/maintenance/starboard/fore)
+"tgB" = (
+/obj/machinery/atmospherics/pipe/manifold/cyan/visible{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/manifold/cyan/visible{
+ dir = 8
+ },
+/obj/effect/spawner/structure/window/reinforced,
+/turf/open/floor/plating,
+/area/engine/atmos)
"tmi" = (
/obj/effect/turf_decal/stripes/line{
dir = 4
@@ -126802,25 +126685,15 @@
},
/turf/open/floor/plasteel,
/area/crew_quarters/fitness/recreation)
-"tBE" = (
-/obj/structure/cable/white{
- icon_state = "1-2"
- },
-/obj/machinery/atmospherics/pipe/simple/supply/hidden,
-/obj/structure/disposalpipe/segment,
-/obj/effect/turf_decal/tile/neutral{
- dir = 4
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 8
- },
-/obj/effect/turf_decal/tile/neutral,
-/turf/open/floor/plasteel,
-/area/maintenance/port/fore)
"tCh" = (
/turf/closed/wall,
/area/science/misc_lab)
-"tDx" = (
+"tMk" = (
+/turf/open/floor/plasteel/white/side{
+ dir = 10
+ },
+/area/science/misc_lab)
+"tMy" = (
/obj/machinery/atmospherics/pipe/simple/supply/hidden{
dir = 4
},
@@ -126829,11 +126702,20 @@
},
/turf/open/floor/plasteel/grimy,
/area/library)
-"tMk" = (
-/turf/open/floor/plasteel/white/side{
- dir = 10
+"tNT" = (
+/obj/effect/landmark/carpspawn,
+/turf/open/space,
+/area/space/station_ruins)
+"tOY" = (
+/obj/machinery/door/window/northright{
+ name = "Coffin Storage"
},
-/area/science/misc_lab)
+/obj/structure/window/reinforced{
+ dir = 8
+ },
+/obj/structure/closet/crate/coffin,
+/turf/open/floor/plating,
+/area/chapel/office)
"tRT" = (
/obj/effect/turf_decal/tile/blue{
dir = 4
@@ -126844,21 +126726,24 @@
/obj/machinery/chem_heater,
/turf/open/floor/plasteel/white,
/area/medical/medbay/central)
-"tVN" = (
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+"tYG" = (
+/obj/structure/cable/white{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
dir = 4
},
-/obj/effect/turf_decal/tile/neutral,
/obj/effect/turf_decal/tile/neutral{
dir = 4
},
/obj/effect/turf_decal/tile/neutral{
dir = 1
},
-/obj/effect/turf_decal/tile/neutral{
- dir = 8
- },
-/turf/open/floor/plasteel/dark,
+/turf/open/floor/plasteel,
+/area/maintenance/port/fore)
+"ucF" = (
+/obj/structure/sign/warning/vacuum,
+/turf/closed/wall/r_wall,
/area/chapel/office)
"upk" = (
/obj/machinery/door/airlock/public/glass{
@@ -126892,31 +126777,49 @@
},
/turf/open/floor/plasteel/white,
/area/science/misc_lab)
-"usi" = (
-/obj/structure/sign/warning/electricshock{
- pixel_y = 32
+"uqp" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
},
-/obj/machinery/vr_sleeper,
-/obj/structure/cable/white{
- icon_state = "4-8"
- },
-/turf/open/floor/plating{
- icon_state = "platingdmg2"
- },
-/area/security/prison)
-"uuP" = (
+/obj/effect/turf_decal/tile/neutral,
/obj/effect/turf_decal/tile/neutral{
- dir = 8
+ dir = 4
},
/obj/effect/turf_decal/tile/neutral{
dir = 1
},
/obj/effect/turf_decal/tile/neutral{
- dir = 4
+ dir = 8
},
-/obj/effect/turf_decal/tile/neutral,
/turf/open/floor/plasteel/dark,
/area/chapel/office)
+"uqW" = (
+/obj/item/paper_bin,
+/obj/item/pen,
+/obj/structure/table,
+/turf/open/floor/plasteel,
+/area/science/storage)
+"uDs" = (
+/obj/structure/cable/white{
+ icon_state = "1-2"
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/obj/structure/disposalpipe/sorting/mail{
+ dir = 8;
+ name = "Mining Junction";
+ sortType = 22
+ },
+/turf/open/floor/plasteel,
+/area/hallway/primary/central)
"uNP" = (
/obj/machinery/atmospherics/pipe/simple/general/visible,
/obj/effect/turf_decal/stripes/line{
@@ -126934,6 +126837,10 @@
},
/turf/open/floor/plasteel/dark,
/area/science/mixing)
+"uXf" = (
+/obj/structure/sign/poster/official/medical_green_cross,
+/turf/closed/wall,
+/area/medical/medbay/central)
"uYS" = (
/obj/machinery/door/airlock/atmos/glass/critical{
heat_proof = 1;
@@ -126945,10 +126852,74 @@
},
/turf/open/floor/engine,
/area/engine/supermatter)
+"vcs" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 5
+ },
+/turf/open/floor/plasteel,
+/area/hallway/secondary/entry)
+"vcP" = (
+/obj/machinery/door/window/northleft{
+ name = "Mass Driver"
+ },
+/obj/machinery/mass_driver{
+ id = "chapelgun";
+ name = "Holy Driver"
+ },
+/turf/open/floor/plating,
+/area/chapel/office)
"vhA" = (
/obj/item/clothing/under/color/grey,
/turf/open/floor/plating,
/area/crew_quarters/abandoned_gambling_den)
+"voA" = (
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral,
+/obj/machinery/light{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/chapel/office)
+"vrD" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/general/visible,
+/turf/open/floor/plasteel/dark,
+/area/engine/atmos)
+"vwo" = (
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/obj/effect/landmark/start/cyborg,
+/turf/open/floor/plasteel/dark,
+/area/ai_monitored/turret_protected/aisat_interior)
"vAb" = (
/obj/effect/turf_decal/stripes/line{
dir = 4
@@ -126958,47 +126929,106 @@
},
/turf/open/floor/plasteel/white,
/area/science/mixing)
-"vAW" = (
-/obj/machinery/light/small,
-/turf/open/floor/plasteel,
-/area/security/prison)
-"vEq" = (
-/obj/structure/cable/white{
- icon_state = "4-8"
- },
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
- dir = 4
- },
-/obj/effect/turf_decal/tile/blue{
+"vFi" = (
+/obj/effect/turf_decal/tile/neutral{
dir = 1
},
-/obj/effect/turf_decal/tile/blue{
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
dir = 4
},
-/obj/effect/landmark/start/paramedic,
-/turf/open/floor/plasteel/white,
-/area/medical/storage)
-"vFd" = (
-/obj/effect/spawner/structure/window/reinforced,
-/obj/machinery/atmospherics/pipe/simple/cyan/visible{
- dir = 5
- },
-/turf/open/floor/plating,
-/area/engine/atmos)
-"vLX" = (
-/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
+/obj/effect/turf_decal/tile/neutral{
dir = 8
},
-/obj/structure/sign/plaques/kiddie/library{
- pixel_x = 32;
- pixel_y = 32
+/obj/machinery/atmospherics/components/binary/pump{
+ dir = 4;
+ name = "N2O to Pure"
},
-/turf/open/floor/plasteel/grimy,
-/area/library)
+/obj/machinery/atmospherics/pipe/simple/green/visible,
+/turf/open/floor/plasteel/dark,
+/area/engine/atmos)
+"vHN" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/obj/machinery/atmospherics/components/unary/portables_connector/visible{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/engine/atmos)
+"vRf" = (
+/turf/open/floor/plasteel,
+/area/security/prison)
+"vRV" = (
+/obj/structure/rack,
+/obj/effect/spawner/lootdrop/maintenance{
+ lootcount = 2;
+ name = "2maintenance loot spawner"
+ },
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/maintenance/port/aft)
"wei" = (
/obj/effect/turf_decal/stripes/line,
/turf/open/floor/plasteel,
/area/science/circuit)
+"wmL" = (
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral,
+/obj/machinery/computer/pod/old{
+ density = 0;
+ icon = 'icons/obj/airlock_machines.dmi';
+ icon_state = "airlock_control_standby";
+ id = "chapelgun";
+ name = "Mass Driver Controller";
+ pixel_x = -24
+ },
+/turf/open/floor/plasteel/dark,
+/area/chapel/office)
+"wum" = (
+/obj/machinery/atmospherics/pipe/simple/yellow/visible{
+ dir = 4
+ },
+/turf/closed/wall/r_wall,
+/area/engine/atmos)
+"wzu" = (
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/obj/machinery/computer/arcade{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/maintenance/starboard/fore)
"wAA" = (
/obj/structure/sign/nanotrasen,
/turf/closed/wall/r_wall,
@@ -127014,42 +127044,25 @@
/obj/effect/turf_decal/tile/purple,
/turf/open/floor/plasteel/white,
/area/science/misc_lab)
-"wEg" = (
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
- dir = 4
- },
+"wZT" = (
/obj/effect/turf_decal/tile/neutral{
dir = 8
},
-/obj/machinery/firealarm{
- dir = 1;
- pixel_y = -26
- },
-/turf/open/floor/plasteel,
-/area/hallway/primary/port)
-"wFu" = (
-/obj/structure/lattice,
-/obj/structure/grille,
-/turf/open/space/basic,
-/area/space/nearstation)
-"wHv" = (
/obj/effect/turf_decal/tile/neutral{
dir = 1
},
-/obj/effect/turf_decal/tile/neutral,
/obj/effect/turf_decal/tile/neutral{
dir = 4
},
-/obj/effect/turf_decal/tile/neutral{
- dir = 8
+/obj/effect/turf_decal/tile/neutral,
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
+ dir = 4
+ },
+/obj/machinery/airalarm{
+ pixel_y = 22
},
-/obj/machinery/atmospherics/pipe/simple/green/visible,
/turf/open/floor/plasteel/dark,
-/area/engine/atmos)
-"wIf" = (
-/obj/item/twohanded/required/kirbyplants/random,
-/turf/open/floor/plasteel,
-/area/security/prison)
+/area/chapel/office)
"xaf" = (
/obj/machinery/door/airlock/public/glass{
name = "Holodeck Access"
@@ -127068,37 +127081,13 @@
},
/turf/open/floor/plasteel,
/area/crew_quarters/fitness/recreation)
-"xbz" = (
-/obj/machinery/atmospherics/pipe/simple/supply/hidden,
-/obj/effect/turf_decal/tile/neutral{
- dir = 1
+"xcU" = (
+/obj/effect/spawner/structure/window/reinforced,
+/obj/machinery/atmospherics/pipe/simple/cyan/visible{
+ dir = 5
},
-/obj/effect/turf_decal/tile/neutral,
-/obj/effect/turf_decal/tile/neutral{
- dir = 4
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 8
- },
-/obj/machinery/atmospherics/components/unary/portables_connector/visible{
- dir = 8
- },
-/turf/open/floor/plasteel,
+/turf/open/floor/plating,
/area/engine/atmos)
-"xdZ" = (
-/obj/machinery/atmospherics/pipe/simple/supply/hidden{
- dir = 4
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 1
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 4
- },
-/turf/open/floor/plasteel{
- heat_capacity = 1e+006
- },
-/area/maintenance/port/aft)
"xmt" = (
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
dir = 5
@@ -127108,8 +127097,10 @@
},
/turf/open/floor/plasteel/white,
/area/science/mixing)
-"xuu" = (
-/obj/effect/landmark/barthpot,
+"xok" = (
+/obj/machinery/light{
+ dir = 1
+ },
/turf/open/floor/wood,
/area/library)
"xwK" = (
@@ -127137,23 +127128,6 @@
},
/turf/open/floor/plasteel,
/area/science/research/abandoned)
-"xCB" = (
-/obj/machinery/atmospherics/pipe/simple/supply/hidden{
- dir = 4
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 1
- },
-/obj/effect/turf_decal/tile/neutral,
-/obj/effect/turf_decal/tile/neutral{
- dir = 4
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 8
- },
-/obj/effect/landmark/start/cyborg,
-/turf/open/floor/plasteel/dark,
-/area/ai_monitored/turret_protected/aisat_interior)
"xDZ" = (
/obj/machinery/atmospherics/components/unary/portables_connector/visible{
dir = 1
@@ -127172,6 +127146,46 @@
},
/turf/open/floor/plasteel/dark,
/area/science/mixing)
+"xER" = (
+/obj/structure/chair/sofa/left{
+ icon_state = "sofaend_left";
+ dir = 8
+ },
+/turf/open/floor/wood,
+/area/library)
+"xFI" = (
+/obj/machinery/button/crematorium{
+ id = "cremawheat";
+ pixel_x = -26;
+ req_access_txt = "27"
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/obj/structure/table,
+/obj/item/clothing/under/misc/burial,
+/obj/item/clothing/under/misc/burial,
+/obj/item/clothing/under/misc/burial,
+/obj/item/clothing/under/misc/burial,
+/obj/item/clothing/under/misc/burial,
+/obj/item/clothing/under/misc/burial,
+/turf/open/floor/plasteel/dark,
+/area/chapel/office)
+"xGC" = (
+/obj/effect/turf_decal/bot,
+/obj/machinery/atmospherics/components/binary/pump{
+ dir = 4;
+ name = "Port to Waste"
+ },
+/turf/open/floor/plasteel,
+/area/engine/atmos)
"xJl" = (
/obj/structure/table,
/obj/item/folder/white,
@@ -127215,13 +127229,6 @@
/obj/structure/fans/tiny/invisible,
/turf/open/space/basic,
/area/space)
-"yin" = (
-/obj/structure/chair/sofa/left{
- icon_state = "sofaend_left";
- dir = 8
- },
-/turf/open/floor/wood,
-/area/library)
"yiv" = (
/obj/effect/decal/cleanable/dirt,
/obj/effect/turf_decal/tile/neutral{
@@ -127236,6 +127243,13 @@
},
/turf/open/floor/plasteel/dark,
/area/science/mixing)
+"yiP" = (
+/obj/effect/spawner/structure/window/reinforced,
+/obj/machinery/atmospherics/pipe/layer_manifold{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/engine/atmos)
"yjc" = (
/obj/machinery/power/apc{
areastring = "/area/science/research/abandoned";
@@ -127250,3717 +127264,3717 @@
/area/science/research/abandoned)
(1,1,1) = {"
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
"}
(2,1,1) = {"
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
"}
(3,1,1) = {"
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
"}
(4,1,1) = {"
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
"}
(5,1,1) = {"
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
"}
(6,1,1) = {"
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
"}
(7,1,1) = {"
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
"}
(8,1,1) = {"
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
"}
(9,1,1) = {"
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
"}
(10,1,1) = {"
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
"}
(11,1,1) = {"
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
"}
(12,1,1) = {"
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-qYM
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+tNT
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
"}
(13,1,1) = {"
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
"}
(14,1,1) = {"
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
"}
(15,1,1) = {"
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
aaa
aaa
aaa
@@ -130984,240 +130998,240 @@ aaa
aaa
aaa
aaa
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
"}
(16,1,1) = {"
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
aaa
aaa
aaa
@@ -131241,240 +131255,240 @@ aaa
aaa
aaa
aaa
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
"}
(17,1,1) = {"
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
aaa
aaa
aaa
@@ -131498,240 +131512,240 @@ aaa
aaa
aaa
aaa
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
"}
(18,1,1) = {"
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
aaa
aaa
aaa
@@ -131755,227 +131769,227 @@ aaa
aaa
aaa
aaa
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
"}
(19,1,1) = {"
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
aaa
aaa
aaa
@@ -132012,227 +132026,227 @@ ajr
aaa
aaa
aaa
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
"}
(20,1,1) = {"
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
aaa
aaa
aaa
@@ -132269,227 +132283,227 @@ ajr
aaa
aaa
aaa
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
"}
(21,1,1) = {"
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
aaa
aaa
aaa
@@ -132535,218 +132549,218 @@ aaa
aaa
aaa
aaa
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
"}
(22,1,1) = {"
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
aaa
aaa
aaa
@@ -132792,218 +132806,218 @@ aaa
aaa
aaa
aaa
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
"}
(23,1,1) = {"
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
aaa
aaa
aaa
@@ -133049,218 +133063,218 @@ aaa
aaa
aaa
aaa
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
"}
(24,1,1) = {"
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
aaa
aaa
aaa
@@ -133306,218 +133320,218 @@ aaa
aaa
aaa
aaa
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
"}
(25,1,1) = {"
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
aaa
aaa
aaa
@@ -133563,218 +133577,218 @@ aaa
aaa
aaa
aaa
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
"}
(26,1,1) = {"
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
aaa
aaa
aaa
@@ -133820,218 +133834,218 @@ aaa
aaa
aaa
aaa
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
"}
(27,1,1) = {"
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
aaa
aaa
aaa
@@ -134077,218 +134091,218 @@ aaa
aaa
aaa
aaa
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
"}
(28,1,1) = {"
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
aaa
aaa
aaa
@@ -134334,218 +134348,218 @@ aaa
aaa
aaa
aaa
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
"}
(29,1,1) = {"
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
aaa
aaa
aaa
@@ -134591,218 +134605,218 @@ ajr
ajr
aaa
aaa
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
"}
(30,1,1) = {"
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
aaa
aaa
aaa
@@ -134848,218 +134862,218 @@ aaa
ajr
aaa
aaa
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
"}
(31,1,1) = {"
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
aaa
aaa
aaa
@@ -135105,218 +135119,218 @@ brM
ajr
aaa
aaa
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
"}
(32,1,1) = {"
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
aaa
aaa
aaa
@@ -135362,218 +135376,218 @@ brN
ajr
aaa
aaa
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
"}
(33,1,1) = {"
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
aaa
aaa
aaa
@@ -135619,218 +135633,218 @@ brM
aad
aaa
aaa
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-qYM
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+tNT
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
"}
(34,1,1) = {"
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
aaa
aaa
aaa
@@ -135876,218 +135890,218 @@ brN
ajr
aaa
aaa
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
"}
(35,1,1) = {"
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
aaa
aaa
aaa
@@ -136133,218 +136147,218 @@ brM
ajr
aaa
aaa
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
"}
(36,1,1) = {"
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
aaa
aaa
aaa
@@ -136390,218 +136404,218 @@ aaa
ajr
aaa
aaa
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
"}
(37,1,1) = {"
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
aaa
aaa
aaa
@@ -136647,218 +136661,218 @@ ajr
ajr
aaa
aaa
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
"}
(38,1,1) = {"
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
aaa
aaa
aaa
@@ -136904,218 +136918,218 @@ aaa
aaa
aaa
aaa
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
"}
(39,1,1) = {"
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
aaa
aaa
aaa
@@ -137142,7 +137156,7 @@ bPC
bRK
bTC
bVK
-qeN
+vwo
cal
bPC
aaa
@@ -137161,218 +137175,218 @@ aaa
aaa
aaa
aaa
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
"}
(40,1,1) = {"
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
aaa
aaa
aaa
@@ -137399,7 +137413,7 @@ bPC
bRL
bTC
bVx
-xCB
+hrQ
cam
bPC
bRO
@@ -137418,218 +137432,218 @@ aaa
aaa
aaa
aaa
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
"}
(41,1,1) = {"
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
aaa
aaa
aaa
@@ -137656,7 +137670,7 @@ bPC
bRM
bTD
bVL
-xCB
+hrQ
can
bPC
bkE
@@ -137675,218 +137689,218 @@ aaa
aaa
aaa
aaa
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
"}
(42,1,1) = {"
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
aaa
aaa
aaa
@@ -137932,218 +137946,218 @@ aaa
aaa
aaa
aaa
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
"}
(43,1,1) = {"
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
aaa
aaa
aaa
@@ -138189,218 +138203,218 @@ aaa
aaa
aaa
aaa
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
"}
(44,1,1) = {"
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
aaa
aaa
aaa
@@ -138446,38 +138460,38 @@ aaa
aaa
aaa
aaa
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
aaa
aaa
aaa
@@ -138499,165 +138513,165 @@ aaa
aaa
aaa
aaa
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
"}
(45,1,1) = {"
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
aaa
aaa
aaa
@@ -138703,38 +138717,38 @@ aaa
aaa
aaa
aaa
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
aaa
aaa
aaa
@@ -138756,165 +138770,165 @@ aaa
aaa
aaa
aaa
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
"}
(46,1,1) = {"
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
aaa
aaa
aaa
@@ -138953,45 +138967,45 @@ aaa
aad
aaa
aaa
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
aaa
aaa
aaa
@@ -139013,170 +139027,170 @@ aaa
aaa
aaa
aaa
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
"}
(47,1,1) = {"
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
aaa
aaa
aaa
@@ -139210,45 +139224,45 @@ aad
ajr
aaa
aaa
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
aaa
aaa
aaa
@@ -139270,176 +139284,176 @@ aaa
aaa
aaa
aaa
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
"}
(48,1,1) = {"
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
aaa
aaa
aaa
@@ -139467,45 +139481,45 @@ aaa
ajr
aaa
aaa
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
aaa
aaa
aaa
@@ -139527,176 +139541,176 @@ aaa
aaa
aaa
aaa
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
"}
(49,1,1) = {"
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
aaa
aaa
aaa
@@ -139724,45 +139738,45 @@ aad
ajr
aaa
aaa
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
aaa
aaa
aaa
@@ -139784,176 +139798,176 @@ aaa
aaa
aaa
aaa
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
"}
(50,1,1) = {"
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
aaa
aaa
aaa
@@ -139981,41 +139995,41 @@ aaa
ajr
aaa
aaa
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
aaa
aaa
aaa
@@ -140041,176 +140055,176 @@ aaa
aaa
aaa
aaa
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
"}
(51,1,1) = {"
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
aaa
aaa
aaa
@@ -140238,41 +140252,41 @@ aad
ajr
aaa
aaa
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
aaa
aaa
aaa
@@ -140298,176 +140312,176 @@ aaa
aaa
aaa
aaa
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
"}
(52,1,1) = {"
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
aaa
aaa
aaa
@@ -140495,41 +140509,41 @@ aaa
ajr
aaa
aaa
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
aaa
aaa
aaa
@@ -140555,176 +140569,176 @@ aaa
aaa
aaa
aaa
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
"}
(53,1,1) = {"
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
aaa
aaa
aaa
@@ -140752,41 +140766,41 @@ aaa
aad
aaa
aaa
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
aaa
aaa
aaa
@@ -140812,176 +140826,176 @@ aaa
aaa
aaa
aaa
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
"}
(54,1,1) = {"
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
aaa
aaa
aaa
@@ -141009,41 +141023,41 @@ aad
ajr
aaa
aaa
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
aaa
aaa
aaa
@@ -141069,176 +141083,176 @@ aaa
aaa
aaa
aaa
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
"}
(55,1,1) = {"
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
aaa
aaa
aaa
@@ -141266,41 +141280,41 @@ aaa
ajr
aaa
aaa
-oZp
-oZp
-qYM
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+tNT
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
aaa
aaa
aaa
@@ -141326,176 +141340,176 @@ aaa
aaa
aaa
aaa
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
"}
(56,1,1) = {"
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
aaa
aaa
aaa
@@ -141523,41 +141537,41 @@ aad
ajr
aaa
aaa
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
aaa
aaa
aaa
@@ -141583,176 +141597,176 @@ aaa
aaa
aaa
aaa
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
"}
(57,1,1) = {"
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
aaa
aaa
aaa
@@ -141780,41 +141794,41 @@ aaa
ajr
aaa
aaa
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
aaa
aaa
aaa
@@ -141840,140 +141854,140 @@ aaa
aaa
aaa
aaa
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
"}
(58,1,1) = {"
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
aaa
aaa
aaa
@@ -141982,34 +141996,34 @@ aaa
aaa
aaa
aaa
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
aaa
aaa
aaa
@@ -142037,41 +142051,41 @@ aad
ajr
aaa
aaa
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
aaa
aaa
aaa
@@ -142097,140 +142111,140 @@ aaa
aaa
aaa
aaa
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
"}
(59,1,1) = {"
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
aaa
aaa
aaa
@@ -142239,34 +142253,34 @@ aaa
aaa
aaa
aaa
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
aaa
aaa
aaa
@@ -142294,41 +142308,41 @@ aaa
aad
aaa
aaa
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
aaa
aaa
aaa
@@ -142354,126 +142368,126 @@ aaa
aaa
aaa
aaa
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
"}
(60,1,1) = {"
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
aaa
aaa
aaa
@@ -142496,34 +142510,34 @@ aaa
aaa
aaa
aaa
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
aaa
aaa
aaa
@@ -142551,41 +142565,41 @@ aaa
ajr
aaa
aaa
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
aaa
aaa
aaa
@@ -142611,126 +142625,126 @@ aaa
aaa
aaa
aaa
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
"}
(61,1,1) = {"
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
aaa
aaa
aaa
@@ -142753,34 +142767,34 @@ aaa
aaa
aaa
aaa
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
aaa
aaa
aaa
@@ -142808,41 +142822,41 @@ aad
ajr
aaa
aaa
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-qYM
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+tNT
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
aaa
aaa
aaa
@@ -142868,126 +142882,126 @@ aaa
aaa
aaa
aaa
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
"}
(62,1,1) = {"
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
aaa
aaa
aaa
@@ -143010,34 +143024,34 @@ aaa
aaa
aaa
aaa
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
aaa
aaa
aaa
@@ -143065,41 +143079,41 @@ aaa
ajr
aaa
aaa
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
aaa
aaa
aaa
@@ -143125,126 +143139,126 @@ aaa
aaa
aaa
aaa
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
"}
(63,1,1) = {"
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
aaa
aaa
aaa
@@ -143267,34 +143281,34 @@ aaa
aaa
aaa
aaa
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
aaa
aaa
aaa
@@ -143322,41 +143336,41 @@ aad
ajr
aaa
aaa
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
aaa
aaa
aaa
@@ -143382,126 +143396,126 @@ aaa
aab
aaa
aaa
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
"}
(64,1,1) = {"
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
aaa
aaa
aaa
@@ -143524,34 +143538,34 @@ aaa
aaa
aaa
aaa
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
aaa
aaa
aaa
@@ -143579,41 +143593,41 @@ aaa
aad
aaa
aaa
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
aaa
aaa
aaa
@@ -143639,126 +143653,126 @@ aaa
aaa
aaa
aaa
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
"}
(65,1,1) = {"
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
aaa
aaa
aaa
@@ -143781,28 +143795,28 @@ aaa
aaa
aaa
aaa
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
aaa
aaa
aaa
@@ -143836,41 +143850,41 @@ aaa
ajr
aaa
aaa
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
aaa
aaa
aaa
@@ -143896,126 +143910,126 @@ aaa
aaa
aaa
aaa
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
"}
(66,1,1) = {"
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
aaa
aaa
aaa
@@ -144038,28 +144052,28 @@ aaa
aaa
aaa
aaa
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
aaa
aaa
aaa
@@ -144093,41 +144107,41 @@ aad
ajr
aaa
aaa
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
aaa
aaa
aaa
@@ -144153,126 +144167,126 @@ aaa
aaa
aaa
aaa
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
"}
(67,1,1) = {"
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
aaa
aaa
aaa
@@ -144295,28 +144309,28 @@ aad
aac
aac
aaa
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
aaa
aaa
aaa
@@ -144410,126 +144424,126 @@ aaa
aaa
aaa
aaa
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
"}
(68,1,1) = {"
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
aaa
aaa
aaa
@@ -144553,27 +144567,27 @@ aaa
aac
aaa
aaa
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
aaa
aaa
aaa
@@ -144667,126 +144681,126 @@ aaa
aaa
aaa
aaa
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
"}
(69,1,1) = {"
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
aaa
aaa
aaa
@@ -144810,27 +144824,27 @@ aaa
aad
aaa
aaa
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
aaa
aaa
aaa
@@ -144924,126 +144938,126 @@ aaa
aaa
aaa
aaa
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
"}
(70,1,1) = {"
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
aaa
aaa
aaa
@@ -145067,27 +145081,27 @@ aaa
aac
aaa
aaa
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
aaa
aaa
aaa
@@ -145181,126 +145195,126 @@ aaa
aaa
aaa
aaa
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
"}
(71,1,1) = {"
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
aaa
aaa
aaa
@@ -145336,15 +145350,15 @@ aaa
aaa
aaa
aaa
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
aaa
aaa
aaa
@@ -145438,126 +145452,126 @@ aaa
aaa
aaa
aaa
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
"}
(72,1,1) = {"
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
aaa
aaa
aaa
@@ -145593,15 +145607,15 @@ aaa
aaa
aaa
aaa
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
aaa
aaa
aaa
@@ -145695,124 +145709,124 @@ aaa
aaa
aaa
aaa
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
"}
(73,1,1) = {"
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
aaa
aaa
aaa
@@ -145952,124 +145966,124 @@ aaa
aaa
aaa
aaa
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
"}
(74,1,1) = {"
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
aaa
aaa
aaa
@@ -146209,124 +146223,124 @@ aaa
aaa
aaa
aaa
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
"}
(75,1,1) = {"
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
aaa
aaa
aaa
@@ -146466,124 +146480,124 @@ aaa
aaa
aaa
aaa
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
"}
(76,1,1) = {"
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
aaa
aaa
aaa
@@ -146723,124 +146737,124 @@ aaa
aaa
aaa
aaa
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
"}
(77,1,1) = {"
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
aaa
aaa
aaa
@@ -146980,124 +146994,124 @@ aaa
aaa
aaa
aaa
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
"}
(78,1,1) = {"
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
aaa
aaa
aaa
@@ -147237,124 +147251,124 @@ aaa
aaa
aaa
aaa
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
"}
(79,1,1) = {"
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
aaa
aaa
aaa
@@ -147494,124 +147508,124 @@ aaa
aaa
aaa
aaa
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
"}
(80,1,1) = {"
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
aaa
aaa
aaa
@@ -147751,124 +147765,124 @@ aaa
aaa
aaa
aaa
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
"}
(81,1,1) = {"
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
aaa
aaa
aaa
@@ -148008,124 +148022,124 @@ aaa
aaa
aaa
aaa
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
"}
(82,1,1) = {"
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
aaa
aaa
aaa
@@ -148265,124 +148279,124 @@ aaa
aaa
aaa
aaa
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
"}
(83,1,1) = {"
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
aaa
aaa
aaa
@@ -148522,124 +148536,124 @@ aaa
aaa
aaa
aaa
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
"}
(84,1,1) = {"
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
aaa
aaa
aaa
@@ -148779,124 +148793,124 @@ aaa
aaa
aaa
aaa
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
"}
(85,1,1) = {"
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
aaa
aaa
aaa
@@ -149036,124 +149050,124 @@ aaa
aaa
aaa
aaa
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
"}
(86,1,1) = {"
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
aaa
aaa
aaa
@@ -149293,124 +149307,124 @@ aaa
aaa
aaa
aaa
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
"}
(87,1,1) = {"
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
aaa
aaa
aaa
@@ -149446,22 +149460,22 @@ aNY
aMB
aMG
aMG
-aWN
+iBf
aWy
-bol
-emA
-bol
+jNQ
+jGT
+jNQ
aWy
-bol
-emA
-bol
+jNQ
+jGT
+jNQ
aWy
-bol
-emA
-mxy
-emA
-vFd
-aUP
+jNQ
+jGT
+tgB
+jGT
+xcU
+yiP
aMG
aMG
bxE
@@ -149585,89 +149599,89 @@ aaa
aaa
aaa
aaa
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
"}
(88,1,1) = {"
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
aaa
aaa
aaa
@@ -149709,12 +149723,12 @@ aXY
aZT
bbA
bda
-wHv
+iRY
bfU
bhf
-eRX
-wHv
-lqA
+vFi
+iRY
+kbU
bok
bpQ
brV
@@ -149842,89 +149856,89 @@ aaa
aaa
aaa
aaa
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
"}
(89,1,1) = {"
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
aaa
aaa
aaa
@@ -150099,89 +150113,89 @@ aaa
aaa
aaa
aaa
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
"}
(90,1,1) = {"
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
aaa
aaa
aaa
@@ -150213,7 +150227,7 @@ aIv
aJO
aLj
aME
-aOe
+vrD
aPF
aRs
aSV
@@ -150225,10 +150239,10 @@ aWB
bdc
aWB
aWB
-kQS
+aYa
biX
bkK
-bmK
+bmP
aTg
bpS
brX
@@ -150356,89 +150370,89 @@ aaa
aaa
aaa
aaa
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
"}
(91,1,1) = {"
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
aaa
aaa
aaa
@@ -150468,7 +150482,7 @@ aFr
aGW
aIw
aJP
-aLl
+aLk
aMB
aOa
aPG
@@ -150482,7 +150496,7 @@ aWC
aWC
aWC
aWC
-aYn
+bde
biY
bkL
bmL
@@ -150613,89 +150627,89 @@ aaa
aaa
aaa
aaa
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
"}
(92,1,1) = {"
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
aaa
aaa
aaa
@@ -150725,7 +150739,7 @@ alT
aFr
aIx
aJQ
-aLl
+aLk
aMB
aOb
aPH
@@ -150870,89 +150884,89 @@ aaa
aaa
aaa
aaa
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
"}
(93,1,1) = {"
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
aaa
aaa
aaa
@@ -151025,10 +151039,10 @@ car
cbV
cdJ
car
-aax
-aay
-aaz
-aaA
+chv
+cjf
+ckA
+clV
cnC
cpa
cqs
@@ -151036,10 +151050,10 @@ cqr
ctq
cuR
cnC
-aay
-aaD
-aaA
-aax
+cjf
+czs
+clV
+chv
car
cFO
cbV
@@ -151127,89 +151141,89 @@ aaa
aaa
aaa
aaa
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
"}
(94,1,1) = {"
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
aaa
aaa
aaa
@@ -151254,7 +151268,7 @@ aWC
aWC
aWC
aWC
-aYn
+bde
bkN
bmO
aTg
@@ -151384,89 +151398,89 @@ aaa
aaa
aaa
aaa
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
"}
(95,1,1) = {"
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
aaa
aaa
aaa
@@ -151499,7 +151513,7 @@ aJT
aLn
aMG
aOn
-aRu
+rPK
aRv
aSW
aUQ
@@ -151513,7 +151527,7 @@ aWC
aWC
aWC
bkO
-bmP
+xGC
aTg
bpX
aMB
@@ -151543,13 +151557,13 @@ chx
cjh
ckC
clX
-aaB
+cnE
cpc
cqu
cqr
cts
cuT
-aaB
+cnE
clX
czt
cAL
@@ -151581,7 +151595,7 @@ dof
dmi
dry
dta
-aaR
+duk
dvY
dod
dmi
@@ -151641,89 +151655,89 @@ aaa
aaa
aaa
aaa
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
"}
(96,1,1) = {"
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
aaa
aaa
aaa
@@ -151755,8 +151769,8 @@ aIz
aJU
aLo
aMH
-aOf
aPL
+rGq
aRv
aSW
aUR
@@ -151765,7 +151779,7 @@ aYg
aMB
aWH
aMB
-hwV
+etO
aWH
bhj
bjd
@@ -151898,89 +151912,89 @@ aaa
aaa
aaa
aaa
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
"}
(97,1,1) = {"
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-qYM
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+tNT
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
aaa
aaa
aaa
@@ -151999,9 +152013,9 @@ asq
atO
auX
awf
-aaq
-aaq
-aaw
+axv
+axv
+azS
awi
aCk
aDn
@@ -152013,7 +152027,7 @@ aJV
aLp
aMG
aOn
-aRu
+rPK
aRv
aSW
aUS
@@ -152059,9 +152073,9 @@ cjn
clZ
cnF
car
-aaC
+cqw
car
-aaC
+cqw
car
car
cxF
@@ -152155,89 +152169,89 @@ aaa
aaa
aaa
aaa
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
"}
(98,1,1) = {"
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
aaa
aaa
aaa
@@ -152283,7 +152297,7 @@ beC
bga
bhl
bjf
-oVn
+mUH
bmS
bor
bqa
@@ -152412,89 +152426,89 @@ aaa
aaa
aaa
aaa
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
"}
(99,1,1) = {"
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
aaa
aaa
aaa
@@ -152669,89 +152683,89 @@ aaa
aaa
aaa
aaa
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
"}
(100,1,1) = {"
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
aaa
aaa
aaa
@@ -152926,60 +152940,60 @@ aaa
aaa
aaa
aaa
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
"}
(101,1,1) = {"
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
aaa
aaa
aaa
@@ -153183,60 +153197,60 @@ aaa
aaa
aaa
aaa
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
"}
(102,1,1) = {"
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
aaa
aaa
aaa
@@ -153307,7 +153321,7 @@ aYl
bae
bae
bae
-xbz
+vHN
aWL
bhp
bji
@@ -153440,60 +153454,60 @@ aaa
aaa
aaa
aaa
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
"}
(103,1,1) = {"
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
aaa
aaa
aaa
@@ -153697,60 +153711,60 @@ aaa
aaa
aaa
aaa
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
"}
(104,1,1) = {"
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
aaa
aaa
aaa
@@ -153817,12 +153831,12 @@ aRv
aSW
aUO
bxR
-aYn
-aYn
-aYn
-aYn
-beG
-aYn
+bde
+bde
+bde
+bde
+aZX
+bde
bhr
bjk
bkV
@@ -153954,60 +153968,60 @@ aaa
aaa
aaa
aaa
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
"}
(105,1,1) = {"
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
aaa
aaa
aaa
@@ -154055,16 +154069,16 @@ asy
atW
avf
awi
-aar
-aav
-aar
+axD
+ayM
+axD
awf
aCp
aDs
aEv
aFE
aHh
-aaG
+aID
aKb
aLv
aMG
@@ -154075,7 +154089,7 @@ aTd
aUW
aWO
aYo
-sby
+omN
aYo
aYo
aYo
@@ -154211,60 +154225,60 @@ aaa
aaa
aaa
aaa
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
"}
(106,1,1) = {"
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
aaa
aaa
aaa
@@ -154468,60 +154482,60 @@ aaa
aaa
aaa
aaa
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
"}
(107,1,1) = {"
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
aaa
aaa
aaa
@@ -154578,7 +154592,7 @@ aDt
aEx
aFG
aHj
-aaH
+aIF
aKd
aLx
aMG
@@ -154586,8 +154600,8 @@ aOo
aOn
aRD
aTf
-bkU
-bnc
+loH
+nQB
aYq
bai
bbM
@@ -154595,7 +154609,7 @@ bdl
beJ
bge
aXY
-qej
+fRK
bkY
bnb
aMG
@@ -154725,60 +154739,60 @@ aaa
aaa
aaa
aaa
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
"}
(108,1,1) = {"
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
aaa
aaa
aaa
@@ -154841,19 +154855,19 @@ alT
aML
aMG
aMG
-aRw
-aUP
+hnq
+yiP
aMB
aTg
-boo
-aUP
+wum
+yiP
aMB
aZS
-boo
-aUP
+wum
+yiP
aMB
aZS
-jaZ
+klP
aMB
aMG
bqk
@@ -154982,60 +154996,60 @@ aaa
aaa
aaa
aaa
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
"}
(109,1,1) = {"
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
aaa
aaa
aaa
@@ -155098,16 +155112,16 @@ aLy
alT
aad
aad
-aSY
-aWM
+rEo
+ohn
aRE
aTh
-cJl
-lhL
+kmj
+osD
aRE
aZR
-cJl
-lhL
+kmj
+osD
aRE
aZR
bkZ
@@ -155239,60 +155253,60 @@ aaa
aaa
aaa
aaa
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
"}
(110,1,1) = {"
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
aaa
aaa
aaa
@@ -155338,8 +155352,8 @@ aad
alT
alT
alT
-aaF
-aaF
+avk
+avk
alT
alT
azZ
@@ -155496,60 +155510,60 @@ aaa
aaa
aaa
aaa
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
"}
(111,1,1) = {"
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
aaa
aaa
aaa
@@ -155753,60 +155767,60 @@ aaa
aaa
aaa
aaa
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
"}
(112,1,1) = {"
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
aaa
aab
aaa
@@ -156010,60 +156024,60 @@ aab
aaa
aaa
aaa
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
"}
(113,1,1) = {"
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
aaa
aaa
aaa
@@ -156120,7 +156134,7 @@ arB
aug
alg
alg
-eCJ
+kND
aKg
alf
aMO
@@ -156267,60 +156281,60 @@ aaa
aaa
aaa
aaa
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
"}
(114,1,1) = {"
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
aaa
aaa
aaa
@@ -156377,7 +156391,7 @@ aAb
aAb
aAb
aAb
-gKo
+nSA
aKh
alf
aMN
@@ -156524,60 +156538,60 @@ aaa
aaa
aaa
aaa
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
"}
(115,1,1) = {"
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
aaa
aaa
aaa
@@ -156635,7 +156649,7 @@ aCv
aFJ
aAb
aIH
-nNX
+kPJ
alf
aMP
aDw
@@ -156781,60 +156795,60 @@ aaa
aaa
aaa
aaa
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
"}
(116,1,1) = {"
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
aaa
aaa
aaa
@@ -157038,60 +157052,60 @@ aaa
aaa
aaa
aaa
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
"}
(117,1,1) = {"
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
aaa
aaa
aaa
@@ -157149,7 +157163,7 @@ aEB
aFL
aAb
aIH
-ePi
+sPd
avm
arB
arB
@@ -157295,60 +157309,60 @@ aaa
aaa
aaa
aaa
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
"}
(118,1,1) = {"
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
aaa
aaa
aaa
@@ -157401,7 +157415,7 @@ alf
aAb
aBj
aCv
-pfC
+eoB
aEC
aFM
aAb
@@ -157532,7 +157546,7 @@ edL
eep
eff
aad
-rqh
+qgU
aaa
ajr
aaa
@@ -157544,68 +157558,68 @@ aaa
aaa
aaa
aaa
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
"}
(119,1,1) = {"
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
aaa
aaa
aaa
@@ -157658,7 +157672,7 @@ alg
aAb
aBk
aCv
-gLe
+eWr
aEC
aFN
aAb
@@ -157789,7 +157803,7 @@ edM
eeq
dLY
aad
-nbW
+gKn
aaa
aad
aaa
@@ -157801,68 +157815,68 @@ aaa
aaa
aaa
aaa
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
"}
(120,1,1) = {"
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
aaa
aaa
aaa
@@ -157920,7 +157934,7 @@ aED
aFO
aHm
aII
-qAV
+oDY
aLz
aMR
aOq
@@ -158058,68 +158072,68 @@ aaa
aaa
aaa
aaa
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
"}
(121,1,1) = {"
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
aaa
aaa
aaa
@@ -158177,7 +158191,7 @@ aEE
aFP
aHn
aIJ
-gVZ
+pZB
aLz
aMS
aOr
@@ -158222,7 +158236,7 @@ ccq
ceg
ccq
chO
-vLX
+jiQ
ckQ
cmr
ccq
@@ -158315,68 +158329,68 @@ aaa
aaa
aaa
aaa
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
"}
(122,1,1) = {"
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
aaa
aaa
aaa
@@ -158429,12 +158443,12 @@ ayX
aAb
aBn
aCx
-pgU
+lkk
aCv
aFQ
aAb
-mpP
-gVZ
+tYG
+pZB
aLz
aMT
aOs
@@ -158479,7 +158493,7 @@ cwq
ceh
caG
caG
-oek
+gVM
ckR
cms
cnO
@@ -158572,68 +158586,68 @@ aaa
aaa
aaa
aaa
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
"}
(123,1,1) = {"
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
aaa
aaa
aaa
@@ -158681,7 +158695,7 @@ asL
aue
avt
aws
-aaI
+axN
ayY
aAc
aBo
@@ -158730,9 +158744,9 @@ bDl
bDl
bUu
bWE
-gjg
+imI
caG
-mRS
+xok
cxV
cfZ
caG
@@ -158807,7 +158821,7 @@ dXz
dYt
dON
dOl
-rKU
+nuw
eaX
dYu
ect
@@ -158829,68 +158843,68 @@ aaa
aaa
aaa
aaa
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
"}
(124,1,1) = {"
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
aaa
aaa
aaa
@@ -158989,11 +159003,11 @@ bUv
bWC
bYR
caG
-jqs
+fmW
cxV
-gOM
+iNK
caG
-tDx
+tMy
ckR
cmt
cmt
@@ -159063,8 +159077,8 @@ dON
dON
dON
dON
-xdZ
-mbd
+pcK
+hAf
ebc
ebQ
ecu
@@ -159086,75 +159100,75 @@ aaa
aaa
aaa
aaa
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
"}
(125,1,1) = {"
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
aaa
aaa
aaa
aaa
aaa
aaa
-rqh
+qgU
aad
aad
aaa
@@ -159205,7 +159219,7 @@ aAb
aAb
aAb
aIL
-arB
+sPd
aLz
aLz
aLz
@@ -159246,9 +159260,9 @@ bUq
bWI
bYM
caG
-jqs
+fmW
cxV
-gOM
+iNK
caG
cjt
ckR
@@ -159326,12 +159340,12 @@ dZN
dZN
dZN
dZN
-hix
+ucF
dZN
dZN
dLY
aad
-rqh
+qgU
aad
aad
aaa
@@ -159343,68 +159357,68 @@ aaa
aaa
aaa
aaa
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
"}
(126,1,1) = {"
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
aaa
aaa
aaa
@@ -159462,7 +159476,7 @@ aEG
aFS
aHp
aIM
-tBE
+lge
aLB
aFS
aEG
@@ -159503,9 +159517,9 @@ bUq
bWD
bYM
caG
-jqs
+fmW
cxV
-gOM
+iNK
caG
cjt
ckR
@@ -159577,20 +159591,20 @@ dWJ
dLW
dYu
dZg
-fLh
-oZY
+nOz
+vRV
dZN
-gut
-krb
-ray
-qoc
-mPj
-nFW
+lbN
+voA
+wmL
+vcP
+ptB
+iem
aaa
-sfL
+nph
aaa
aaa
-sfL
+nph
aaa
aaa
aaa
@@ -159600,68 +159614,68 @@ aaa
aaa
aaa
aaa
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
"}
(127,1,1) = {"
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
aaa
aaa
aaa
@@ -159669,7 +159683,7 @@ aaa
aaa
aaa
aaO
-aaT
+abe
abp
abC
abC
@@ -159762,11 +159776,11 @@ bYM
caG
ccv
cxV
-pLF
+sPy
caG
cjt
ckR
-xuu
+mEP
cnR
cpv
cqQ
@@ -159836,12 +159850,12 @@ dTw
dTw
dZN
dZN
-sww
-sVX
-hTX
-hTX
-fCs
-giN
+nbi
+wZT
+kBV
+kBV
+tOY
+rSz
dTw
aad
aad
@@ -159857,68 +159871,68 @@ aaa
aaa
aaa
aaa
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
"}
(128,1,1) = {"
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
aaa
aaa
aaa
@@ -159926,8 +159940,8 @@ aaa
aaa
aaa
aaO
-aaU
-aaV
+vcs
+abq
abD
abD
abZ
@@ -160017,7 +160031,7 @@ bUq
bWD
bYS
caG
-jVB
+pWb
cxV
cmt
chV
@@ -160075,7 +160089,7 @@ dHl
dIA
dJZ
dKF
-dLZ
+jYx
dLZ
dOo
dOT
@@ -160085,17 +160099,17 @@ dRB
dSz
dTx
dUi
-lLY
+irh
dVN
-lLY
+irh
dXB
dYv
dTw
dZO
-fXF
-sCQ
-tVN
-uuP
+xFI
+ktK
+uqp
+iIl
dTw
dTw
dTw
@@ -160114,68 +160128,68 @@ aaa
aaa
aaa
aaa
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
"}
(129,1,1) = {"
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
aaa
aaa
aaa
@@ -160253,7 +160267,7 @@ bjt
bli
bnk
boB
-jwo
+lpu
bnj
bnh
bvB
@@ -160331,8 +160345,8 @@ dFN
dHm
dIB
dKa
-dKF
-dLZ
+uqW
+jYx
dLZ
dOo
dOT
@@ -160348,7 +160362,7 @@ dUj
dXC
dYw
dZh
-rIi
+qUn
eau
edr
ebS
@@ -160371,75 +160385,75 @@ aaa
aaa
aaa
aaa
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
"}
(130,1,1) = {"
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
aaa
aaa
aaa
aaa
aaa
aaa
-rqh
+qgU
aad
aad
aaa
@@ -160586,10 +160600,10 @@ drP
dEx
dFO
dHn
-dIC
-dKb
-dKb
+dIB
dKb
+eGi
+eGi
dNB
dOp
dOT
@@ -160628,68 +160642,68 @@ aaa
aaa
aaa
aaa
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
"}
(131,1,1) = {"
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
aaa
aaa
aaa
@@ -160786,11 +160800,11 @@ bQu
bQv
bUr
bWD
-wEg
+sRE
caG
chP
cel
-yin
+xER
chX
cjt
ckR
@@ -160885,68 +160899,68 @@ aaa
aaa
aaa
aaa
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
"}
(132,1,1) = {"
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
aaa
aaa
aaa
@@ -161142,68 +161156,68 @@ aaa
aaa
aaa
aaa
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
"}
(133,1,1) = {"
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
aaa
aaa
aaa
@@ -161399,68 +161413,68 @@ aaa
aaa
aaa
aaa
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
"}
(134,1,1) = {"
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
aaa
aaa
aaa
@@ -161656,68 +161670,68 @@ aaa
aaa
aaa
aaa
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
"}
(135,1,1) = {"
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
aaa
aaa
aaa
@@ -161913,68 +161927,68 @@ aaa
aaa
aaa
aaa
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
"}
(136,1,1) = {"
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
aaa
aaa
aaa
@@ -162170,68 +162184,68 @@ aaa
aaa
aaa
aaa
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
"}
(137,1,1) = {"
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
aaa
aaa
aaa
@@ -162427,68 +162441,68 @@ aaa
aaa
aaa
aaa
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
"}
(138,1,1) = {"
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
aaa
aaa
aaa
@@ -162684,68 +162698,68 @@ aaa
aaa
aaa
aaa
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
"}
(139,1,1) = {"
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
aaa
aaa
aaa
@@ -162941,68 +162955,68 @@ aaa
aaa
aaa
aaa
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
"}
(140,1,1) = {"
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
aaa
aaa
aaa
@@ -163198,68 +163212,68 @@ aaa
aaa
aaa
aaa
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
"}
(141,1,1) = {"
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
aaa
aaa
aaa
@@ -163455,68 +163469,68 @@ aaa
aaa
aaa
aaa
-qYM
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+tNT
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
"}
(142,1,1) = {"
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-qYM
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+tNT
+hZh
+hZh
+hZh
+hZh
aaa
aaa
aaa
@@ -163712,68 +163726,68 @@ aaa
aaa
aaa
aaa
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
"}
(143,1,1) = {"
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
aaa
aaa
aaa
@@ -163969,68 +163983,68 @@ aaa
aaa
aaa
aaa
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
"}
(144,1,1) = {"
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
aaa
aaa
aaa
@@ -164226,68 +164240,68 @@ aaa
aaa
aaa
aaa
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
"}
(145,1,1) = {"
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
aaa
aaa
aaa
@@ -164483,68 +164497,68 @@ aaa
aaa
aaa
aaa
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
"}
(146,1,1) = {"
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
aaa
aaa
aaa
@@ -164740,68 +164754,68 @@ aaa
aaa
aaa
aaa
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
"}
(147,1,1) = {"
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
aaa
aaa
aaa
@@ -164997,68 +165011,68 @@ aaa
aaa
aaa
aaa
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
"}
(148,1,1) = {"
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
aaa
aaa
aaa
@@ -165254,68 +165268,68 @@ aaa
aaa
aaa
aaa
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
"}
(149,1,1) = {"
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
aaa
aaa
aaa
@@ -165511,68 +165525,68 @@ aaa
aaa
aaa
aaa
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
"}
(150,1,1) = {"
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
aaa
aaa
aaa
@@ -165768,68 +165782,68 @@ aaa
aaa
aaa
aaa
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
"}
(151,1,1) = {"
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
aaa
aaa
aaa
@@ -166025,68 +166039,68 @@ aaa
aaa
aaa
aaa
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
"}
(152,1,1) = {"
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
aaa
aaa
aaa
@@ -166282,68 +166296,68 @@ aaa
aaa
aaa
aaa
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
"}
(153,1,1) = {"
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
aaa
aaa
aaa
@@ -166539,68 +166553,68 @@ aaa
aaa
aaa
aaa
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
"}
(154,1,1) = {"
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
aaa
aaa
aaa
@@ -166796,68 +166810,68 @@ aaa
aaa
aaa
aaa
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
"}
(155,1,1) = {"
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
aaa
aaa
aaa
@@ -167053,68 +167067,68 @@ aaa
aaa
aaa
aaa
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
"}
(156,1,1) = {"
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
aaa
aaa
aaa
@@ -167170,7 +167184,7 @@ aCP
avQ
aFe
aGp
-kKn
+adY
aJg
aKF
aLP
@@ -167310,68 +167324,68 @@ aaa
aaa
aaa
aaa
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
"}
(157,1,1) = {"
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
aaa
aaa
aaa
@@ -167567,68 +167581,68 @@ aaa
aaa
aaa
aaa
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
"}
(158,1,1) = {"
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
aaa
aaa
aaa
@@ -167824,68 +167838,68 @@ aaa
aaa
aaa
aaa
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
"}
(159,1,1) = {"
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
aaa
aaa
aaa
@@ -168081,68 +168095,68 @@ aaa
aaa
aaa
aaa
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
"}
(160,1,1) = {"
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
aaa
aaa
aaa
@@ -168338,59 +168352,59 @@ aaa
aaa
aaa
aaa
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
"}
(161,1,1) = {"
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
aaa
aaa
aaa
@@ -168595,59 +168609,59 @@ aaa
aaa
aaa
aaa
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
"}
(162,1,1) = {"
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
aaa
aaa
aaa
@@ -168852,59 +168866,59 @@ aaa
aaa
aaa
aaa
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
"}
(163,1,1) = {"
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
aaa
aaa
aaa
@@ -169012,7 +169026,7 @@ bUO
bXf
bUQ
cbe
-rjr
+odz
ceH
cgu
cij
@@ -169109,59 +169123,59 @@ aaa
aaa
aaa
aaa
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
"}
(164,1,1) = {"
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
aaa
aaa
aaa
@@ -169366,59 +169380,59 @@ aaa
aaa
aaa
aaa
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
"}
(165,1,1) = {"
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
aaa
aaa
aaa
@@ -169623,59 +169637,59 @@ aaa
aaa
aaa
aaa
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
"}
(166,1,1) = {"
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
aaa
aaa
aaa
@@ -169727,7 +169741,7 @@ aox
apu
aqy
arb
-ioW
+sSh
aig
auA
avU
@@ -169880,59 +169894,59 @@ aaa
aaa
aaa
aaa
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
"}
(167,1,1) = {"
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
aaa
aaa
aaa
@@ -170075,7 +170089,7 @@ cNz
dbm
dcX
dev
-aaQ
+uXf
dhe
diz
dkp
@@ -170137,59 +170151,59 @@ aaa
aaa
aaa
aaa
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
"}
(168,1,1) = {"
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
aaa
aaa
aaa
@@ -170394,59 +170408,59 @@ aaa
aaa
aaa
aaa
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
"}
(169,1,1) = {"
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
aaa
aaa
aaa
@@ -170494,7 +170508,7 @@ akU
alI
amE
anz
-kiJ
+jyT
apw
aqA
apy
@@ -170651,59 +170665,59 @@ aaa
aaa
aaa
aaa
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
"}
(170,1,1) = {"
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
aaa
aaa
aaa
@@ -170791,7 +170805,7 @@ blS
baQ
boV
bra
-fiK
+uDs
bus
bvM
bwZ
@@ -170837,7 +170851,7 @@ cKE
bsE
cNE
cPy
-aaN
+cRa
cSK
cUE
cQX
@@ -170908,59 +170922,59 @@ aaa
aaa
aaa
aaa
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
"}
(171,1,1) = {"
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
aaa
aaa
aaa
@@ -171012,7 +171026,7 @@ aiC
apy
apy
apu
-oHk
+wzu
atw
auD
avW
@@ -171165,59 +171179,59 @@ aaa
aaa
aaa
aaa
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
"}
(172,1,1) = {"
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
aaa
aaa
aaa
@@ -171422,59 +171436,59 @@ aaa
aaa
aaa
aaa
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
"}
(173,1,1) = {"
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
aaa
aaa
aaa
@@ -171679,59 +171693,59 @@ aaa
aaa
aaa
aaa
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
"}
(174,1,1) = {"
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
aaa
aaa
aaa
@@ -171936,59 +171950,59 @@ aaa
aaa
aaa
aaa
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
"}
(175,1,1) = {"
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
aaa
aaa
aaa
@@ -172074,7 +172088,7 @@ bio
bjZ
blW
aig
-lDl
+sAr
aig
aad
but
@@ -172193,59 +172207,59 @@ aaa
aaa
aaa
aaa
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
"}
(176,1,1) = {"
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
aaa
aaa
aaa
@@ -172450,59 +172464,59 @@ aaa
aaa
aaa
aaa
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
"}
(177,1,1) = {"
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
aaa
aaa
aaa
@@ -172587,7 +172601,7 @@ bgP
biq
bjZ
blX
-jOB
+hCj
bpa
aig
aaa
@@ -172707,59 +172721,59 @@ aaa
aaa
aaa
aaa
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
"}
(178,1,1) = {"
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
aaa
aaa
aaa
@@ -172964,59 +172978,59 @@ aaa
aaa
aaa
aaa
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
"}
(179,1,1) = {"
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
aaa
aaa
aaa
@@ -173210,70 +173224,70 @@ aaa
aaa
aaa
aaa
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
"}
(180,1,1) = {"
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
aaa
aaa
aaa
@@ -173467,70 +173481,70 @@ aaa
aaa
aaa
aaa
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
"}
(181,1,1) = {"
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
aaa
aaa
aaa
@@ -173724,70 +173738,70 @@ aaa
aaa
aaa
aaa
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
"}
(182,1,1) = {"
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
aaa
aaa
aaa
@@ -173937,7 +173951,7 @@ dkv
dma
dma
dma
-iho
+sFU
dsI
dro
dvz
@@ -173981,70 +173995,70 @@ aaa
aaa
aaa
aaa
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
"}
(183,1,1) = {"
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
aaa
aaa
aaa
@@ -174238,70 +174252,70 @@ aaa
aaa
aaa
aaa
-oZp
-oZp
-oZp
-qYM
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+tNT
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
"}
(184,1,1) = {"
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
aaa
aaa
aaa
@@ -174373,7 +174387,7 @@ aaa
aaa
aad
aQR
-pnK
+lKF
aUq
aVR
aXF
@@ -174433,8 +174447,8 @@ cIc
cAm
cKO
cMm
-aaM
-vEq
+cNO
+pxR
cRi
cSV
cUN
@@ -174495,70 +174509,70 @@ aaa
aaa
aaa
aaa
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
"}
(185,1,1) = {"
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
aaa
aaa
aaa
@@ -174752,70 +174766,70 @@ aaa
aaa
aaa
aaa
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
"}
(186,1,1) = {"
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
aaa
aaa
aaa
@@ -175009,70 +175023,70 @@ aaa
aaa
aaa
aaa
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
"}
(187,1,1) = {"
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
aaa
aaa
aaa
@@ -175266,70 +175280,70 @@ aaa
aaa
aaa
aaa
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
"}
(188,1,1) = {"
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
aaa
aaa
aaa
@@ -175523,70 +175537,70 @@ aaa
aaa
aaa
aaa
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
"}
(189,1,1) = {"
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
aaa
aaa
aaa
@@ -175780,70 +175794,70 @@ aaa
aaa
aaa
aaa
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
"}
(190,1,1) = {"
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
aaa
aaa
aaa
@@ -175873,19 +175887,19 @@ aaa
aaa
aaa
aaa
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
aaa
aaa
aaa
@@ -176037,70 +176051,70 @@ aaa
aaa
aaa
aaa
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
"}
(191,1,1) = {"
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
aaa
aaa
aaa
@@ -176130,19 +176144,19 @@ aaa
aaa
aaa
aaa
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
aaa
aaa
aaa
@@ -176294,70 +176308,70 @@ ajr
aaa
aaa
aaa
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
"}
(192,1,1) = {"
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
aaa
aaa
aaa
@@ -176387,19 +176401,19 @@ aaa
aaa
aaa
aaa
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
aaa
aaa
aaa
@@ -176551,70 +176565,70 @@ ajr
aaa
aaa
aaa
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
"}
(193,1,1) = {"
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
aaa
aaa
aaa
@@ -176641,22 +176655,22 @@ aaa
aaa
aaa
aaa
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
aaa
aaa
aaa
@@ -176808,70 +176822,70 @@ ajr
aaa
aaa
aaa
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
"}
(194,1,1) = {"
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
aaa
aaa
aaa
@@ -176898,22 +176912,22 @@ aaa
aaa
aaa
aaa
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
aaa
aaa
aaa
@@ -177065,70 +177079,70 @@ ajr
aaa
aaa
aaa
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
"}
(195,1,1) = {"
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
aaa
aaa
aaa
@@ -177155,29 +177169,29 @@ aaa
aaa
aaa
aaa
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
aaa
aaa
aaa
@@ -177322,84 +177336,84 @@ ajr
aaa
aaa
aaa
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
"}
(196,1,1) = {"
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
aaa
aaa
aaa
@@ -177412,29 +177426,29 @@ aaa
aaa
aaa
aaa
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
aaa
aaa
aaa
@@ -177579,84 +177593,84 @@ ajr
aaa
aaa
aaa
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
"}
(197,1,1) = {"
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
aaa
aaa
aaa
@@ -177669,29 +177683,29 @@ aaa
aaa
aaa
aaa
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
aaa
aaa
aaa
@@ -177836,119 +177850,119 @@ ajr
aaa
aaa
aaa
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
"}
(198,1,1) = {"
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
aaa
aaa
aaa
@@ -178093,125 +178107,125 @@ aaa
aaa
aaa
aaa
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
"}
(199,1,1) = {"
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
aaa
aaa
aaa
@@ -178350,125 +178364,125 @@ aaa
aaa
aaa
aaa
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
"}
(200,1,1) = {"
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
aaa
aaa
aaa
@@ -178476,7 +178490,7 @@ aaa
aaa
aaa
aaa
-rqh
+qgU
aFm
aIc
aFm
@@ -178607,125 +178621,125 @@ aaa
aaa
aaa
aaa
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
"}
(201,1,1) = {"
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
aaa
aaa
aaa
@@ -178733,9 +178747,9 @@ aaa
aaa
aaa
aaa
-rqh
+qgU
aFm
-kqa
+mAL
bbt
aFm
aMc
@@ -178864,125 +178878,125 @@ aaa
aaa
aaa
aaa
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
"}
(202,1,1) = {"
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
aaa
aaa
aaa
@@ -178990,10 +179004,10 @@ aaa
aaa
aaa
aaa
-rqh
+qgU
aFm
-hsy
-vAW
+lsa
+iRs
aFm
aKV
aNy
@@ -179121,125 +179135,125 @@ aaa
aaa
aaa
aaa
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
"}
(203,1,1) = {"
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
aaa
aaa
aaa
@@ -179249,10 +179263,10 @@ ajr
ajr
aad
aFm
-usi
-gBd
-wIf
-gBd
+pmK
+vRf
+oNF
+vRf
aNz
aPh
aQZ
@@ -179378,125 +179392,125 @@ aaa
aaa
aaa
aaa
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
"}
(204,1,1) = {"
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
aaa
aaa
aaa
@@ -179506,7 +179520,7 @@ ajr
aad
aad
aFn
-mPH
+gqA
aJA
aJA
aMe
@@ -179620,140 +179634,140 @@ aaa
aaa
aaa
aaa
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-qYM
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+tNT
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
"}
(205,1,1) = {"
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
aaa
aaa
aaa
@@ -179877,140 +179891,140 @@ aaa
aaa
aaa
aaa
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
"}
(206,1,1) = {"
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
aaa
aaa
aaa
@@ -180134,140 +180148,140 @@ aaa
aaa
aaa
aaa
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
"}
(207,1,1) = {"
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
aaa
aaa
aaa
@@ -180312,7 +180326,7 @@ bFP
bHI
bJC
bLs
-aaK
+jvU
bNp
bNp
bTi
@@ -180391,140 +180405,140 @@ aaa
aaa
aaa
aaa
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
"}
(208,1,1) = {"
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
aaa
aaa
aaa
@@ -180559,7 +180573,7 @@ bpp
bru
btt
buQ
-aaJ
+bwj
bhd
byO
bAs
@@ -180648,140 +180662,140 @@ aaa
aaa
aaa
aaa
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
"}
(209,1,1) = {"
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
aaa
aaa
aaa
@@ -180905,140 +180919,140 @@ aaa
aaa
aaa
aaa
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
"}
(210,1,1) = {"
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
aaa
aaa
aaa
@@ -181162,140 +181176,140 @@ aaa
aaa
aaa
aaa
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
"}
(211,1,1) = {"
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
aaa
aaa
aaa
@@ -181345,7 +181359,7 @@ bPA
bRw
bTk
bVr
-aaL
+bXR
bZY
cbL
bLs
@@ -181419,140 +181433,140 @@ aaa
aaa
aaa
aaa
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
"}
(212,1,1) = {"
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
aaa
aaa
aaa
@@ -181676,140 +181690,140 @@ aaa
aaa
aaa
aaa
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
"}
(213,1,1) = {"
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
aaa
aaa
aaa
@@ -181933,140 +181947,140 @@ aaa
aaa
aaa
aaa
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
"}
(214,1,1) = {"
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
aaa
aaa
aaa
@@ -182104,7 +182118,7 @@ buU
biQ
aad
ajr
-wFu
+jdx
aad
ajr
ajr
@@ -182190,140 +182204,140 @@ aaa
aaa
aaa
aaa
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
"}
(215,1,1) = {"
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-qYM
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+tNT
+hZh
aaa
aaa
aaa
@@ -182447,140 +182461,140 @@ aaa
aaa
aaa
aaa
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
"}
(216,1,1) = {"
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
aaa
aaa
aaa
@@ -182672,12 +182686,12 @@ aad
aaa
aaa
aaa
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
aaa
aaa
ajr
@@ -182704,140 +182718,140 @@ aaa
aaa
aaa
aaa
-oZp
-qYM
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+tNT
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
"}
(217,1,1) = {"
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
agO
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
aaa
aaa
aaa
@@ -182929,12 +182943,12 @@ aad
ajr
aaa
aaa
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
aaa
aaa
ajr
@@ -182961,140 +182975,140 @@ aaa
aaa
aaa
aaa
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
"}
(218,1,1) = {"
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
aaa
aaa
aaa
@@ -183186,12 +183200,12 @@ aad
ajr
aaa
aaa
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
aaa
aaa
ajr
@@ -183218,140 +183232,140 @@ ajr
aaa
aaa
aaa
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
"}
(219,1,1) = {"
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
aaa
aaa
aaa
@@ -183443,12 +183457,12 @@ aad
aaa
aaa
aaa
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
aaa
aaa
aad
@@ -183475,140 +183489,140 @@ ajr
aaa
aaa
aaa
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
"}
(220,1,1) = {"
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
aaa
aaa
aaa
@@ -183700,12 +183714,12 @@ aad
ajr
aaa
aaa
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
aaa
aaa
ajr
@@ -183732,144 +183746,144 @@ ajr
aaa
aaa
aaa
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
"}
(221,1,1) = {"
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
aaa
aaa
aaa
@@ -183957,12 +183971,12 @@ ajr
ajr
aaa
aaa
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
aaa
aaa
ajr
@@ -183989,144 +184003,144 @@ aad
aaa
aaa
aaa
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
"}
(222,1,1) = {"
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
aaa
aaa
aaa
@@ -184165,23 +184179,23 @@ aaa
aaa
aaa
aaa
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
aaa
aaa
aaa
@@ -184214,12 +184228,12 @@ aaa
aaa
aaa
aaa
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
aaa
aaa
ajr
@@ -184246,144 +184260,144 @@ ajr
aaa
aaa
aaa
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
"}
(223,1,1) = {"
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
aaa
aaa
aaa
@@ -184422,23 +184436,23 @@ aaa
aaa
aaa
aaa
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
aaa
aaa
aaa
@@ -184471,12 +184485,12 @@ aaa
aaa
aaa
aaa
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
aaa
aaa
aaa
@@ -184503,144 +184517,144 @@ aaa
aaa
aaa
aaa
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
"}
(224,1,1) = {"
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
aaa
aaa
aaa
@@ -184679,23 +184693,23 @@ aaa
aaa
aaa
aaa
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
aaa
aaa
aaa
@@ -184728,12 +184742,12 @@ aaa
aaa
aaa
aaa
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
aaa
aaa
aaa
@@ -184760,144 +184774,144 @@ aaa
aaa
aaa
aaa
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
"}
(225,1,1) = {"
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
aaa
aaa
aaa
@@ -184936,23 +184950,23 @@ aaa
aaa
aaa
aaa
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
aaa
aaa
aaa
@@ -184985,12 +184999,12 @@ aaa
aaa
aaa
aaa
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
aaa
aaa
aaa
@@ -185017,144 +185031,144 @@ aaa
aaa
aaa
aaa
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
"}
(226,1,1) = {"
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
aaa
aaa
aaa
@@ -185193,23 +185207,23 @@ aaa
aaa
aaa
aaa
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
aaa
aaa
aaa
@@ -185242,12 +185256,12 @@ aaa
aaa
aaa
aaa
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
aaa
aaa
aaa
@@ -185274,144 +185288,144 @@ aaa
aaa
aaa
aaa
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
"}
(227,1,1) = {"
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
aaa
aaa
aaa
@@ -185450,23 +185464,23 @@ aaa
aaa
aaa
aaa
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
aaa
aaa
aaa
@@ -185499,12 +185513,12 @@ aaa
aaa
aab
aaa
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
aaa
aaa
aaa
@@ -185531,144 +185545,144 @@ aaa
aaa
aaa
aaa
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
"}
(228,1,1) = {"
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
aaa
aaa
aaa
@@ -185707,23 +185721,23 @@ aaa
aaa
aaa
aaa
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
aaa
aaa
aaa
@@ -185754,15 +185768,15 @@ aaa
aaa
aaa
aaa
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
aaa
aaa
aaa
@@ -185788,144 +185802,144 @@ aaa
aaa
aaa
aaa
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
"}
(229,1,1) = {"
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
aaa
aaa
aaa
@@ -185964,23 +185978,23 @@ aaa
aaa
aaa
aaa
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
aab
aaa
aaa
@@ -186011,15 +186025,15 @@ aaa
aaa
aaa
aaa
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
aaa
aaa
aaa
@@ -186045,144 +186059,144 @@ aaa
aaa
aaa
aaa
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
"}
(230,1,1) = {"
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
aaa
aaa
aaa
@@ -186221,23 +186235,23 @@ aaa
aaa
aaa
aaa
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
aaa
aaa
aaa
@@ -186268,15 +186282,15 @@ aaa
aaa
aaa
aaa
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
aaa
aaa
aaa
@@ -186302,144 +186316,144 @@ aaa
aaa
aaa
aaa
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
"}
(231,1,1) = {"
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
aaa
aaa
aaa
@@ -186476,28 +186490,28 @@ aaa
aaa
aaa
aaa
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
aaa
aaa
aaa
@@ -186525,15 +186539,15 @@ aaa
aaa
aaa
aaa
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
aaa
aaa
aaa
@@ -186559,152 +186573,152 @@ aaa
aaa
aaa
aaa
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
"}
(232,1,1) = {"
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-qYM
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+tNT
aaa
aaa
aaa
@@ -186733,28 +186747,28 @@ aaa
aaa
aaa
aaa
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
aaa
aaa
aaa
@@ -186779,21 +186793,21 @@ aaa
aaa
aaa
aaa
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
aaa
aaa
aaa
@@ -186816,152 +186830,152 @@ aaa
aaa
aaa
aaa
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
"}
(233,1,1) = {"
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
aaa
aaa
aaa
@@ -186990,28 +187004,28 @@ aaa
aaa
aaa
aaa
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
aaa
aaa
aaa
@@ -187036,21 +187050,21 @@ aaa
aaa
aaa
aaa
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
aaa
aaa
aaa
@@ -187073,152 +187087,152 @@ aaa
aaa
aaa
aaa
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
"}
(234,1,1) = {"
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
aaa
aaa
aaa
@@ -187247,28 +187261,28 @@ aaa
aaa
aaa
aaa
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
aaa
aaa
aaa
@@ -187293,21 +187307,21 @@ aaa
aaa
aaa
aaa
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
aaa
aaa
aaa
@@ -187330,152 +187344,152 @@ aaa
aaa
aaa
aaa
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
"}
(235,1,1) = {"
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
aaa
aaa
aaa
@@ -187504,28 +187518,28 @@ aaa
aaa
aaa
aaa
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
aaa
aaa
aaa
@@ -187550,21 +187564,21 @@ aaa
aaa
aaa
aaa
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
aaa
aaa
aaa
@@ -187587,152 +187601,152 @@ aaa
aaa
aaa
aaa
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
"}
(236,1,1) = {"
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
aaa
aaa
aaa
@@ -187761,28 +187775,28 @@ aaa
aaa
aaa
aaa
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
aaa
aaa
aaa
@@ -187807,21 +187821,21 @@ aaa
aaa
aaa
aaa
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
aaa
aaa
aaa
@@ -187844,152 +187858,152 @@ aaa
aaa
aaa
aaa
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
"}
(237,1,1) = {"
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
aaa
aaa
aaa
@@ -188018,28 +188032,28 @@ aaa
aaa
aaa
aaa
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
aaa
aaa
aaa
@@ -188064,21 +188078,21 @@ aaa
aaa
aaa
aaa
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
aaa
aaa
aaa
@@ -188101,4686 +188115,4686 @@ aaa
aaa
aaa
aaa
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
"}
(238,1,1) = {"
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
"}
(239,1,1) = {"
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-qYM
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-qYM
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+tNT
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+tNT
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
"}
(240,1,1) = {"
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
"}
(241,1,1) = {"
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
"}
(242,1,1) = {"
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
"}
(243,1,1) = {"
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
"}
(244,1,1) = {"
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
"}
(245,1,1) = {"
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
"}
(246,1,1) = {"
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
"}
(247,1,1) = {"
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
"}
(248,1,1) = {"
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
"}
(249,1,1) = {"
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
"}
(250,1,1) = {"
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
"}
(251,1,1) = {"
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
"}
(252,1,1) = {"
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
"}
(253,1,1) = {"
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
"}
(254,1,1) = {"
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
"}
(255,1,1) = {"
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
-oZp
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
+hZh
"}
diff --git a/_maps/map_files/IceBoxStation/IceBoxStation.dmm b/_maps/map_files/IceBoxStation/IceBoxStation.dmm
index 201418eba1..836f6a996e 100644
--- a/_maps/map_files/IceBoxStation/IceBoxStation.dmm
+++ b/_maps/map_files/IceBoxStation/IceBoxStation.dmm
@@ -34430,7 +34430,10 @@
/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
dir = 4
},
-/turf/open/floor/plasteel,
+/obj/effect/turf_decal/stripes/line{
+ dir = 1
+ },
+/turf/open/floor/engine,
/area/science/storage)
"bCY" = (
/obj/effect/turf_decal/tile/blue{
@@ -34495,7 +34498,10 @@
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
dir = 4
},
-/turf/open/floor/plasteel,
+/obj/effect/turf_decal/stripes/line{
+ dir = 1
+ },
+/turf/open/floor/engine,
/area/science/storage)
"bDg" = (
/obj/structure/rack,
@@ -34514,7 +34520,10 @@
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
dir = 4
},
-/turf/open/floor/plasteel,
+/obj/effect/turf_decal/stripes/line{
+ dir = 1
+ },
+/turf/open/floor/engine,
/area/science/storage)
"bDk" = (
/obj/structure/table,
@@ -34865,7 +34874,8 @@
icon_state = "4-8"
},
/obj/effect/landmark/xeno_spawn,
-/turf/open/floor/plasteel,
+/obj/effect/turf_decal/stripes/line,
+/turf/open/floor/engine,
/area/science/storage)
"bDZ" = (
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
@@ -34886,13 +34896,15 @@
/obj/machinery/atmospherics/components/unary/vent_pump/on{
dir = 4
},
-/turf/open/floor/plasteel,
+/obj/effect/turf_decal/stripes/line,
+/turf/open/floor/engine,
/area/science/storage)
"bEc" = (
/obj/structure/cable{
icon_state = "4-8"
},
-/turf/open/floor/plasteel,
+/obj/effect/turf_decal/stripes/line,
+/turf/open/floor/engine,
/area/science/storage)
"bEd" = (
/obj/structure/disposalpipe/segment{
@@ -35016,7 +35028,7 @@
"bEo" = (
/obj/machinery/portable_atmospherics/canister/toxins,
/obj/effect/turf_decal/delivery,
-/turf/open/floor/plasteel,
+/turf/open/floor/engine,
/area/science/storage)
"bEp" = (
/obj/machinery/portable_atmospherics/canister/toxins,
@@ -35024,7 +35036,7 @@
pixel_y = 32
},
/obj/effect/turf_decal/delivery,
-/turf/open/floor/plasteel,
+/turf/open/floor/engine,
/area/science/storage)
"bEq" = (
/obj/machinery/power/apc{
@@ -35619,7 +35631,10 @@
/obj/machinery/light/small{
dir = 8
},
-/turf/open/floor/plasteel,
+/obj/effect/turf_decal/stripes/line{
+ dir = 1
+ },
+/turf/open/floor/engine,
/area/science/storage)
"bFJ" = (
/obj/structure/bed,
@@ -36155,7 +36170,8 @@
/area/medical/medbay/central)
"bGY" = (
/obj/machinery/portable_atmospherics/scrubber/huge,
-/turf/open/floor/plasteel,
+/obj/effect/turf_decal/bot,
+/turf/open/floor/engine,
/area/science/storage)
"bGZ" = (
/obj/machinery/holopad,
@@ -36218,7 +36234,8 @@
dir = 4;
network = list("ss13","rd")
},
-/turf/open/floor/plasteel,
+/obj/effect/turf_decal/stripes/line,
+/turf/open/floor/engine,
/area/science/storage)
"bHf" = (
/obj/structure/disposalpipe/segment,
@@ -36856,20 +36873,23 @@
"bIz" = (
/obj/machinery/portable_atmospherics/canister/carbon_dioxide,
/obj/effect/turf_decal/bot,
-/turf/open/floor/plasteel,
+/turf/open/floor/engine,
/area/science/storage)
"bIA" = (
/obj/machinery/portable_atmospherics/canister/oxygen,
/obj/effect/turf_decal/bot,
-/turf/open/floor/plasteel,
+/turf/open/floor/engine,
/area/science/storage)
"bIB" = (
/obj/machinery/portable_atmospherics/canister/nitrous_oxide,
/obj/effect/turf_decal/bot,
-/turf/open/floor/plasteel,
+/turf/open/floor/engine,
/area/science/storage)
"bIC" = (
-/turf/open/floor/plasteel,
+/obj/effect/turf_decal/stripes/line{
+ dir = 1
+ },
+/turf/open/floor/engine,
/area/science/storage)
"bID" = (
/obj/structure/disposalpipe/segment{
@@ -37462,8 +37482,9 @@
/area/science/mixing)
"bJY" = (
/obj/structure/tank_dispenser,
-/turf/open/floor/plasteel/white,
-/area/science/mixing)
+/obj/effect/turf_decal/bot,
+/turf/open/floor/engine,
+/area/science/storage)
"bJZ" = (
/obj/item/assembly/timer{
pixel_x = 5;
@@ -107682,7 +107703,7 @@ bzC
bAH
bCb
bDc
-bEo
+bJY
bDf
bEb
bGY
@@ -110770,7 +110791,7 @@ bEy
bFU
bFT
bFU
-bJY
+bFU
bEC
bMv
bNv
diff --git a/_maps/map_files/OmegaStation/OmegaStation.dmm b/_maps/map_files/OmegaStation/OmegaStation.dmm
index ed2403fcfa..ebdda21c5e 100644
--- a/_maps/map_files/OmegaStation/OmegaStation.dmm
+++ b/_maps/map_files/OmegaStation/OmegaStation.dmm
@@ -1300,28 +1300,19 @@
/turf/closed/wall,
/area/asteroid/nearstation)
"abU" = (
+/turf/closed/wall/r_wall,
+/area/crew_quarters/heads/hos)
+"abV" = (
/obj/effect/spawner/structure/window/reinforced,
/obj/machinery/door/poddoor/preopen{
id = "detectivewindows";
- name = "Detective Privacy Blast door"
+ name = "HoS Privacy Blast door"
+ },
+/obj/structure/cable/white{
+ icon_state = "0-2"
},
/turf/open/floor/plating,
-/area/security/detectives_office)
-"abV" = (
-/obj/structure/window/reinforced{
- dir = 8
- },
-/obj/machinery/shower{
- pixel_y = 16
- },
-/obj/structure/curtain,
-/obj/machinery/door/window/brigdoor/southleft{
- name = "Shower"
- },
-/obj/item/soap/deluxe,
-/obj/machinery/atmospherics/components/unary/vent_pump/on,
-/turf/open/floor/plasteel/white,
-/area/security/detectives_office)
+/area/crew_quarters/heads/hos)
"abW" = (
/obj/structure/closet/firecloset,
/obj/machinery/light/small{
@@ -1734,26 +1725,54 @@
/turf/open/floor/plating,
/area/asteroid/nearstation)
"acG" = (
-/obj/structure/door_assembly/door_assembly_mhatch,
+/obj/structure/bed,
+/obj/machinery/atmospherics/components/unary/vent_pump/on,
+/obj/item/bedsheet/hos,
+/obj/effect/landmark/start/head_of_security,
+/obj/structure/cable/white{
+ icon_state = "1-2"
+ },
+/turf/open/floor/wood,
+/area/crew_quarters/heads/hos)
+"acH" = (
+/obj/effect/decal/cleanable/cobweb/cobweb2,
+/turf/open/floor/plating,
+/area/asteroid/nearstation)
+"acI" = (
+/obj/structure/window/reinforced{
+ dir = 8
+ },
+/obj/machinery/shower{
+ pixel_y = 16
+ },
+/obj/structure/curtain,
+/obj/machinery/door/window/brigdoor/southleft{
+ name = "Shower"
+ },
+/obj/item/soap/deluxe,
+/obj/machinery/atmospherics/components/unary/vent_pump/on,
+/turf/open/floor/plasteel/white,
+/area/crew_quarters/heads/hos)
+"acJ" = (
/obj/effect/turf_decal/stripes/line{
dir = 8
},
/obj/effect/turf_decal/stripes/line{
dir = 4
},
+/obj/machinery/door/airlock/maintenance_hatch{
+ name = "Maintenance Hatch";
+ req_access_txt = "12"
+ },
/turf/open/floor/plasteel,
/area/asteroid/nearstation)
-"acH" = (
-/obj/effect/decal/cleanable/cobweb/cobweb2,
-/turf/open/floor/plating,
-/area/asteroid/nearstation)
-"acI" = (
+"acK" = (
/obj/structure/dresser,
/obj/structure/sign/warning/vacuum{
pixel_y = 32
},
/obj/machinery/camera{
- c_tag = "Detective's Office - Quarters"
+ c_tag = "Head of Security's Office - Quarters"
},
/obj/effect/turf_decal/tile/neutral{
dir = 1
@@ -1766,15 +1785,17 @@
dir = 8
},
/turf/open/floor/plasteel/dark,
-/area/security/detectives_office)
-"acJ" = (
-/obj/structure/bed,
-/obj/machinery/atmospherics/components/unary/vent_pump/on,
-/obj/effect/landmark/start/detective,
-/obj/item/bedsheet/brown,
+/area/crew_quarters/heads/hos)
+"acL" = (
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
+ dir = 8
+ },
+/obj/structure/cable/white{
+ icon_state = "1-2"
+ },
/turf/open/floor/wood,
-/area/security/detectives_office)
-"acK" = (
+/area/crew_quarters/heads/hos)
+"acM" = (
/obj/structure/closet/crate/bin,
/obj/machinery/light{
dir = 4
@@ -1784,25 +1805,7 @@
},
/obj/machinery/atmospherics/components/unary/vent_scrubber/on,
/turf/open/floor/wood,
-/area/security/detectives_office)
-"acL" = (
-/obj/machinery/status_display,
-/turf/closed/wall,
-/area/security/detectives_office)
-"acM" = (
-/obj/structure/toilet{
- dir = 4
- },
-/obj/machinery/newscaster{
- pixel_x = 32
- },
-/obj/machinery/light{
- dir = 8
- },
-/obj/machinery/atmospherics/pipe/simple/supply/hidden,
-/obj/effect/landmark/start/detective,
-/turf/open/floor/plasteel/white,
-/area/security/detectives_office)
+/area/crew_quarters/heads/hos)
"acN" = (
/obj/effect/landmark/blobstart,
/turf/open/floor/plating,
@@ -2234,7 +2237,34 @@
/turf/closed/wall,
/area/asteroid/nearstation)
"adA" = (
-/obj/structure/closet/secure_closet/detective,
+/obj/machinery/status_display,
+/turf/closed/wall,
+/area/crew_quarters/heads/hos)
+"adB" = (
+/obj/structure/toilet{
+ dir = 4
+ },
+/obj/machinery/newscaster{
+ pixel_x = 32
+ },
+/obj/machinery/light{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/effect/landmark/start/head_of_security,
+/turf/open/floor/plasteel/white,
+/area/crew_quarters/heads/hos)
+"adC" = (
+/obj/effect/spawner/structure/window/reinforced,
+/obj/structure/sign/nanotrasen{
+ pixel_x = -32
+ },
+/obj/structure/cable/white{
+ icon_state = "0-4"
+ },
+/turf/open/floor/plating,
+/area/crew_quarters/heads/hos)
+"adD" = (
/obj/effect/turf_decal/tile/neutral{
dir = 1
},
@@ -2245,43 +2275,31 @@
/obj/effect/turf_decal/tile/neutral{
dir = 8
},
+/obj/structure/closet/secure_closet/hos,
/turf/open/floor/plasteel/dark,
-/area/security/detectives_office)
-"adB" = (
-/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
- dir = 8
- },
-/turf/open/floor/wood,
-/area/security/detectives_office)
-"adC" = (
-/obj/machinery/atmospherics/pipe/simple/supply/hidden{
- dir = 4
- },
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
-/turf/open/floor/wood,
-/area/security/detectives_office)
-"adD" = (
-/obj/machinery/door/airlock/silver{
- name = "Bathroom"
- },
-/obj/machinery/atmospherics/pipe/simple/supply/hidden{
- dir = 4
- },
-/turf/open/floor/plasteel/white,
-/area/security/detectives_office)
+/area/crew_quarters/heads/hos)
"adE" = (
-/obj/structure/mirror{
- pixel_x = 26
+/obj/machinery/door/firedoor,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/effect/turf_decal/stripes/line,
+/obj/effect/turf_decal/stripes/line{
+ dir = 1
},
-/obj/structure/sink{
- dir = 4;
- pixel_x = 12
+/obj/structure/cable/white{
+ icon_state = "1-2"
},
-/obj/machinery/atmospherics/pipe/simple/supply/hidden{
- dir = 9
+/obj/structure/cable/white{
+ icon_state = "2-4"
},
-/turf/open/floor/plasteel/white,
-/area/security/detectives_office)
+/obj/structure/cable/white{
+ icon_state = "2-8"
+ },
+/obj/machinery/door/airlock/command{
+ name = "Head of Security's Office";
+ req_access_txt = "58"
+ },
+/turf/open/floor/plasteel,
+/area/crew_quarters/heads/hos)
"adF" = (
/obj/machinery/atmospherics/components/unary/vent_pump/on,
/obj/effect/landmark/xeno_spawn,
@@ -2666,45 +2684,47 @@
/turf/open/floor/plasteel,
/area/quartermaster/qm)
"aeo" = (
-/obj/structure/table,
-/obj/item/extinguisher/mini,
-/obj/item/tank/internals/emergency_oxygen/engi,
-/obj/item/clothing/mask/breath,
-/obj/effect/turf_decal/stripes/line{
- dir = 9
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
},
-/turf/open/floor/plasteel,
-/area/asteroid/nearstation)
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/wood,
+/area/crew_quarters/heads/hos)
"aep" = (
/turf/open/floor/plating{
icon_state = "platingdmg2"
},
/area/asteroid/nearstation)
"aeq" = (
-/obj/effect/spawner/structure/window/reinforced,
-/obj/structure/sign/nanotrasen{
- pixel_x = -32
+/obj/machinery/door/airlock/silver{
+ name = "Bathroom"
},
-/turf/open/floor/plating,
-/area/security/detectives_office)
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/white,
+/area/crew_quarters/heads/hos)
"aer" = (
-/obj/machinery/door/firedoor,
-/obj/machinery/door/airlock/security{
- name = "Detective's Office";
- req_access_txt = "4"
+/obj/structure/mirror{
+ pixel_x = 26
},
-/obj/machinery/atmospherics/pipe/simple/supply/hidden,
-/obj/effect/turf_decal/stripes/line,
-/obj/effect/turf_decal/stripes/line{
- dir = 1
+/obj/structure/sink{
+ dir = 4;
+ pixel_x = 12
},
-/turf/open/floor/plasteel,
-/area/security/detectives_office)
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 9
+ },
+/turf/open/floor/plasteel/white,
+/area/crew_quarters/heads/hos)
"aes" = (
/obj/effect/spawner/structure/window/reinforced,
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/structure/cable/white{
+ icon_state = "0-8"
+ },
/turf/open/floor/plating,
-/area/security/detectives_office)
+/area/crew_quarters/heads/hos)
"aet" = (
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
/obj/machinery/power/apc{
@@ -3168,13 +3188,13 @@
/turf/open/floor/plasteel,
/area/quartermaster/storage)
"afb" = (
-/obj/structure/door_assembly/door_assembly_mhatch,
-/obj/effect/turf_decal/stripes/line,
-/obj/effect/turf_decal/stripes/line{
- dir = 1
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
},
-/turf/open/floor/plating,
-/area/asteroid/nearstation)
+/obj/machinery/suit_storage_unit/hos,
+/turf/open/floor/plasteel/dark,
+/area/crew_quarters/heads/hos)
"afc" = (
/obj/effect/landmark/event_spawn,
/obj/effect/turf_decal/tile/neutral{
@@ -3193,71 +3213,60 @@
/turf/open/floor/plasteel,
/area/quartermaster/storage)
"afd" = (
-/obj/structure/table/wood,
-/obj/item/taperecorder,
-/obj/item/restraints/handcuffs,
-/obj/effect/turf_decal/tile/neutral,
-/obj/effect/turf_decal/tile/neutral{
- dir = 4
- },
-/turf/open/floor/plasteel/dark,
-/area/security/detectives_office)
-"afe" = (
/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
dir = 8
},
/obj/structure/cable/white{
icon_state = "2-4"
},
+/obj/structure/cable/white{
+ icon_state = "1-2"
+ },
/turf/open/floor/wood,
-/area/security/detectives_office)
-"aff" = (
-/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+/area/crew_quarters/heads/hos)
+"afe" = (
+/obj/machinery/door/airlock/maintenance_hatch{
+ name = "Security Maintenance";
+ req_access_txt = "63"
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 8
+ },
+/obj/effect/turf_decal/stripes/line{
dir = 4
},
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
-/obj/structure/cable/white{
- icon_state = "4-8"
- },
-/turf/open/floor/wood,
-/area/security/detectives_office)
+/turf/open/floor/plasteel,
+/area/security/brig)
+"aff" = (
+/turf/closed/wall,
+/area/crew_quarters/heads/hos)
"afg" = (
-/obj/machinery/newscaster{
- pixel_y = 32
+/obj/effect/turf_decal/stripes/line,
+/obj/effect/turf_decal/stripes/line{
+ dir = 1
},
+/obj/machinery/door/airlock/maintenance_hatch{
+ name = "Security Maintenance";
+ req_access_txt = "63"
+ },
+/turf/open/floor/plasteel,
+/area/security/brig)
+"afh" = (
+/obj/structure/barricade/wooden,
+/turf/open/floor/plating,
+/area/asteroid/nearstation)
+"afi" = (
/obj/machinery/atmospherics/components/unary/vent_pump/on{
dir = 8
},
/obj/structure/cable/white{
icon_state = "4-8"
},
-/turf/open/floor/wood,
-/area/security/detectives_office)
-"afh" = (
-/obj/machinery/power/apc/highcap/five_k{
- areastring = "/area/security/detectives_office";
- dir = 1;
- name = "Detective's Office APC";
- pixel_y = 25
- },
-/obj/structure/cable/white{
- icon_state = "0-8"
+/obj/machinery/newscaster/security_unit{
+ pixel_y = 32
},
/turf/open/floor/wood,
-/area/security/detectives_office)
-"afi" = (
-/obj/machinery/door/airlock/maintenance_hatch{
- name = "Detective's Office Maintenance";
- req_access_txt = "4"
- },
-/obj/effect/turf_decal/stripes/line{
- dir = 8
- },
-/obj/effect/turf_decal/stripes/line{
- dir = 4
- },
-/turf/open/floor/plating,
-/area/maintenance/fore)
+/area/crew_quarters/heads/hos)
"afj" = (
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
/obj/structure/cable/white{
@@ -3692,10 +3701,11 @@
/turf/open/floor/plating,
/area/asteroid/nearstation)
"afN" = (
-/obj/effect/decal/cleanable/blood/old,
-/obj/effect/turf_decal/sand/plating,
-/turf/open/floor/plating,
-/area/asteroid/nearstation)
+/obj/structure/table/wood,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/item/taperecorder,
+/turf/open/floor/plasteel/grimy,
+/area/crew_quarters/heads/hos)
"afO" = (
/obj/effect/turf_decal/tile/brown{
dir = 1
@@ -3709,60 +3719,71 @@
/turf/open/floor/plasteel,
/area/quartermaster/storage)
"afP" = (
-/obj/structure/table/wood,
-/obj/item/book/manual/wiki/security_space_law,
-/obj/item/camera/detective,
-/obj/item/radio/intercom{
- name = "Station Intercom";
- pixel_x = -26
+/obj/effect/turf_decal/stripes/line{
+ dir = 5
},
-/obj/effect/turf_decal/tile/neutral,
-/obj/effect/turf_decal/tile/neutral{
+/obj/item/poster/random_contraband{
+ pixel_x = 3;
+ pixel_y = 3
+ },
+/obj/item/poster/random_contraband{
+ pixel_x = -3;
+ pixel_y = -3
+ },
+/obj/item/poster/random_contraband,
+/turf/open/floor/plasteel,
+/area/asteroid/nearstation)
+"afQ" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
dir = 4
},
-/turf/open/floor/plasteel/dark,
-/area/security/detectives_office)
-"afQ" = (
-/obj/machinery/atmospherics/pipe/simple/supply/hidden,
-/obj/structure/cable/white{
- icon_state = "1-2"
- },
-/turf/open/floor/plasteel/grimy,
-/area/security/detectives_office)
-"afR" = (
-/obj/structure/table/wood,
-/obj/item/clothing/mask/cigarette/cigar/cohiba{
- pixel_x = 3
- },
-/obj/item/clothing/mask/cigarette/cigar/havana{
- pixel_x = -3
- },
-/obj/item/clothing/mask/cigarette/cigar,
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
-/obj/item/clothing/glasses/sunglasses,
-/turf/open/floor/plasteel/grimy,
-/area/security/detectives_office)
+/obj/structure/cable/white{
+ icon_state = "4-8"
+ },
+/turf/open/floor/wood,
+/area/crew_quarters/heads/hos)
+"afR" = (
+/obj/machinery/door/airlock/maintenance_hatch{
+ name = "Head of Security's Office Maintenance";
+ req_access_txt = "4"
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 8
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/fore)
"afS" = (
-/turf/open/floor/plasteel/grimy,
-/area/security/detectives_office)
+/obj/machinery/power/apc/highcap/five_k{
+ areastring = "/area/crew_quarters/heads/hos";
+ dir = 1;
+ name = "Head of Security's Office APC";
+ pixel_y = 25
+ },
+/obj/structure/cable/white{
+ icon_state = "0-8"
+ },
+/turf/open/floor/wood,
+/area/crew_quarters/heads/hos)
"afT" = (
-/obj/machinery/computer/med_data{
+/obj/effect/turf_decal/stripes/line{
dir = 8
},
-/obj/machinery/requests_console{
- department = "Detective's Office";
- name = "Detective RC";
- pixel_x = 30
+/obj/effect/turf_decal/stripes/line{
+ dir = 4
},
-/obj/machinery/camera{
- c_tag = "Detective's Office - Desk";
- dir = 8
+/obj/machinery/door/airlock/maintenance_hatch{
+ name = "Security Maintenance";
+ req_access_txt = "63"
},
-/turf/open/floor/plasteel/grimy,
-/area/security/detectives_office)
+/turf/open/floor/plasteel,
+/area/security/brig)
"afU" = (
-/turf/closed/wall/r_wall,
-/area/security/detectives_office)
+/turf/open/floor/plasteel/dark,
+/area/security/brig)
"afV" = (
/obj/structure/cable/white{
icon_state = "2-4"
@@ -4230,75 +4251,80 @@
/turf/closed/wall/r_wall,
/area/security/brig)
"agG" = (
-/obj/effect/decal/cleanable/oil,
+/obj/structure/reagent_dispensers/peppertank{
+ pixel_y = 32
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/brig)
+"agH" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 6
+ },
+/obj/effect/turf_decal/delivery,
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/brig)
+"agI" = (
+/obj/structure/table/wood,
+/obj/item/paper_bin,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/structure/cable/white{
+ icon_state = "2-8"
+ },
+/obj/structure/cable/white{
+ icon_state = "4-8"
+ },
+/obj/item/pen/fountain,
+/turf/open/floor/plasteel/grimy,
+/area/crew_quarters/heads/hos)
+"agJ" = (
+/obj/machinery/camera{
+ c_tag = "Head of Security's Office - Desk";
+ dir = 8
+ },
+/obj/machinery/requests_console{
+ announcementConsole = 1;
+ department = "Head of Security's Desk";
+ departmentType = 5;
+ name = "Head of Security RC";
+ pixel_x = 30;
+ pixel_y = 0
+ },
+/obj/machinery/computer/security/hos{
+ icon_state = "computer";
+ dir = 8
+ },
+/turf/open/floor/plasteel/grimy,
+/area/crew_quarters/heads/hos)
+"agK" = (
+/obj/effect/turf_decal/sand/plating,
+/obj/item/stack/ore/iron,
/turf/open/floor/plating,
/area/asteroid/nearstation)
-"agH" = (
-/obj/effect/turf_decal/stripes/line{
- dir = 5
- },
-/turf/open/floor/plasteel,
-/area/asteroid/nearstation)
-"agI" = (
-/obj/structure/rack,
-/obj/item/storage/briefcase{
- pixel_x = -3;
- pixel_y = 3
- },
-/obj/item/storage/secure/briefcase,
-/obj/machinery/airalarm/unlocked{
- dir = 4;
- pixel_x = -23
- },
-/obj/machinery/light{
- dir = 8
+"agL" = (
+/obj/structure/table/wood,
+/obj/item/book/manual/wiki/security_space_law,
+/obj/item/camera/detective,
+/obj/item/radio/intercom{
+ name = "Station Intercom";
+ pixel_x = -26
},
/obj/effect/turf_decal/tile/neutral,
/obj/effect/turf_decal/tile/neutral{
dir = 4
},
/turf/open/floor/plasteel/dark,
-/area/security/detectives_office)
-"agJ" = (
-/obj/machinery/holopad,
+/area/crew_quarters/heads/hos)
+"agM" = (
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
/obj/structure/cable/white{
icon_state = "1-2"
},
/turf/open/floor/plasteel/grimy,
-/area/security/detectives_office)
-"agK" = (
-/obj/structure/table/wood,
-/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{
- dir = 8
- },
-/obj/machinery/computer/security/wooden_tv{
- pixel_x = 2
- },
-/turf/open/floor/plasteel/grimy,
-/area/security/detectives_office)
-"agL" = (
-/obj/structure/chair/office/dark{
- dir = 8
- },
-/obj/effect/landmark/start/detective,
-/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
- dir = 8
- },
-/turf/open/floor/plasteel/grimy,
-/area/security/detectives_office)
-"agM" = (
-/obj/machinery/computer/secure_data{
- dir = 8
- },
-/obj/machinery/light{
- dir = 4
- },
-/obj/machinery/status_display{
- pixel_x = 32
- },
-/turf/open/floor/plasteel/grimy,
-/area/security/detectives_office)
+/area/crew_quarters/heads/hos)
"agN" = (
/obj/structure/cable/white{
icon_state = "1-2"
@@ -4771,81 +4797,70 @@
/turf/closed/wall/r_wall,
/area/asteroid/nearstation)
"ahv" = (
-/obj/machinery/suit_storage_unit/security,
-/obj/structure/extinguisher_cabinet{
- pixel_x = -26
+/obj/machinery/door/firedoor,
+/obj/structure/cable/white{
+ icon_state = "2-8"
},
-/obj/structure/sign/nanotrasen{
- pixel_y = 32
+/obj/structure/cable/white{
+ icon_state = "2-4"
},
-/obj/machinery/atmospherics/components/unary/vent_pump/on{
- dir = 4
+/obj/machinery/door/airlock/security/glass{
+ name = "Security E.V.A. Storage";
+ req_access_txt = "63"
},
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/effect/turf_decal/stripes/line,
/obj/effect/turf_decal/stripes/line{
- dir = 6
- },
-/obj/effect/turf_decal/tile/neutral,
-/obj/effect/turf_decal/tile/neutral{
- dir = 8
- },
-/turf/open/floor/plasteel/dark,
-/area/security/brig)
-"ahw" = (
-/obj/structure/reagent_dispensers/peppertank{
- pixel_y = 32
- },
-/obj/machinery/atmospherics/pipe/simple/supply/hidden{
- dir = 10
- },
-/obj/effect/turf_decal/delivery,
-/obj/effect/turf_decal/tile/neutral,
-/obj/effect/turf_decal/tile/neutral{
- dir = 8
- },
-/turf/open/floor/plasteel/dark,
-/area/security/brig)
-"ahx" = (
-/obj/machinery/status_display/ai{
- pixel_y = 32
- },
-/obj/machinery/light/small{
dir = 1
},
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
- dir = 6
+/turf/open/floor/plasteel,
+/area/security/brig)
+"ahw" = (
+/turf/open/floor/plasteel/grimy,
+/area/crew_quarters/heads/hos)
+"ahx" = (
+/obj/machinery/airalarm/unlocked{
+ dir = 4;
+ pixel_x = -23
},
-/obj/effect/turf_decal/delivery,
-/obj/effect/turf_decal/tile/neutral,
-/obj/effect/turf_decal/tile/neutral{
+/obj/machinery/light{
dir = 8
},
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/machinery/computer/card/minor/hos{
+ icon_state = "computer";
+ dir = 4
+ },
/turf/open/floor/plasteel/dark,
-/area/security/brig)
+/area/crew_quarters/heads/hos)
"ahy" = (
-/obj/machinery/suit_storage_unit/security,
-/obj/machinery/firealarm{
- dir = 8;
- pixel_x = 24
- },
-/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
- dir = 8
+/obj/machinery/door/firedoor,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/structure/cable/white{
+ icon_state = "1-2"
},
+/obj/effect/turf_decal/stripes/line,
/obj/effect/turf_decal/stripes/line{
- dir = 10
+ dir = 1
},
-/obj/effect/turf_decal/tile/neutral,
-/obj/effect/turf_decal/tile/neutral{
- dir = 8
- },
-/turf/open/floor/plasteel/dark,
-/area/security/brig)
-"ahz" = (
-/obj/structure/reagent_dispensers/fueltank,
-/obj/effect/turf_decal/stripes/line{
- dir = 10
+/obj/machinery/door/airlock/command{
+ name = "Head of Security's Office";
+ req_access_txt = "58"
},
/turf/open/floor/plasteel,
-/area/asteroid/nearstation)
+/area/crew_quarters/heads/hos)
+"ahz" = (
+/obj/structure/sign/nanotrasen{
+ pixel_x = -32
+ },
+/obj/machinery/light{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/brig)
"ahA" = (
/obj/structure/rack,
/obj/item/clothing/suit/fire/firefighter,
@@ -4857,78 +4872,40 @@
/turf/open/floor/plasteel,
/area/asteroid/nearstation)
"ahB" = (
-/obj/machinery/photocopier,
-/obj/machinery/firealarm{
- dir = 4;
- pixel_x = -24
- },
-/obj/structure/cable/white{
- icon_state = "2-4"
- },
-/obj/effect/turf_decal/tile/neutral,
-/obj/effect/turf_decal/tile/neutral{
- dir = 4
- },
-/turf/open/floor/plasteel/dark,
-/area/security/detectives_office)
+/obj/effect/turf_decal/sand/plating,
+/obj/item/stack/ore/silver,
+/obj/item/stack/ore/iron,
+/turf/open/floor/plating,
+/area/asteroid/nearstation)
"ahC" = (
-/obj/machinery/atmospherics/pipe/simple/supply/hidden,
-/obj/structure/cable/white{
- icon_state = "4-8"
- },
-/obj/structure/cable/white{
- icon_state = "2-4"
- },
-/obj/structure/cable/white{
- icon_state = "1-8"
- },
-/turf/open/floor/plasteel/grimy,
-/area/security/detectives_office)
-"ahD" = (
-/obj/structure/table/wood,
-/obj/item/paper_bin,
-/obj/item/pen,
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
-/obj/structure/cable/white{
- icon_state = "2-8"
- },
-/obj/structure/cable/white{
- icon_state = "4-8"
- },
-/turf/open/floor/plasteel/grimy,
-/area/security/detectives_office)
-"ahE" = (
-/obj/structure/table/wood,
-/obj/machinery/button/door{
- id = "detectivewindows";
- name = "Privacy Shutters";
- pixel_x = 26;
- pixel_y = -26;
- req_access_txt = "4"
- },
-/obj/machinery/light_switch{
- pixel_x = 38;
- pixel_y = -26
- },
-/obj/structure/cable/white{
- icon_state = "2-8"
- },
-/obj/item/folder/red,
-/obj/item/hand_labeler,
-/turf/open/floor/plasteel/grimy,
-/area/security/detectives_office)
-"ahF" = (
-/obj/structure/table/wood,
-/obj/item/flashlight/lamp,
-/obj/item/storage/secure/safe{
+/obj/machinery/status_display/ai{
pixel_x = 32
},
-/obj/structure/extinguisher_cabinet{
- pixel_x = 24;
- pixel_y = -26
+/turf/open/floor/plasteel/dark,
+/area/security/brig)
+"ahD" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 9
+ },
+/turf/open/floor/plasteel,
+/area/asteroid/nearstation)
+"ahE" = (
+/obj/structure/table/wood,
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{
+ dir = 8
+ },
+/obj/item/folder/red,
+/obj/item/stamp/hos,
+/turf/open/floor/plasteel/grimy,
+/area/crew_quarters/heads/hos)
+"ahF" = (
+/obj/machinery/holopad,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/structure/cable/white{
+ icon_state = "1-2"
},
/turf/open/floor/plasteel/grimy,
-/area/security/detectives_office)
+/area/crew_quarters/heads/hos)
"ahG" = (
/obj/structure/cable/white{
icon_state = "1-2"
@@ -5177,21 +5154,24 @@
/turf/open/floor/plasteel/dark,
/area/hallway/primary/starboard/fore)
"aid" = (
+/obj/structure/table/wood,
+/obj/machinery/button/door{
+ id = "detectivewindows";
+ name = "Privacy Shutters";
+ pixel_x = 26;
+ pixel_y = -26;
+ req_access_txt = "4"
+ },
+/obj/machinery/light_switch{
+ pixel_x = 38;
+ pixel_y = -26
+ },
/obj/structure/cable/white{
- icon_state = "1-2"
+ icon_state = "2-8"
},
-/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
- dir = 8
- },
-/obj/effect/turf_decal/tile/red{
- dir = 1
- },
-/obj/effect/turf_decal/tile/red{
- dir = 4
- },
-/obj/effect/landmark/start/head_of_security,
-/turf/open/floor/plasteel,
-/area/security/brig)
+/obj/machinery/recharger,
+/turf/open/floor/plasteel/grimy,
+/area/crew_quarters/heads/hos)
"aie" = (
/obj/machinery/conveyor{
dir = 1;
@@ -5297,23 +5277,15 @@
/turf/open/floor/plasteel/dark,
/area/medical/morgue)
"aim" = (
-/obj/structure/rack,
-/obj/item/storage/box/rubbershot,
-/obj/item/storage/box/rubbershot,
-/obj/item/storage/box/rubbershot{
- pixel_x = 3;
- pixel_y = -3
+/obj/structure/chair/office/dark{
+ dir = 8
},
-/obj/item/gun/ballistic/shotgun/riot,
-/obj/structure/extinguisher_cabinet{
- pixel_x = -26
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
+ dir = 8
},
-/obj/effect/turf_decal/bot,
-/obj/effect/turf_decal/tile/red{
- dir = 1
- },
-/turf/open/floor/plasteel/dark,
-/area/security/brig)
+/obj/effect/landmark/start/head_of_security,
+/turf/open/floor/plasteel/grimy,
+/area/crew_quarters/heads/hos)
"ain" = (
/obj/machinery/firealarm{
pixel_y = 26
@@ -5379,24 +5351,17 @@
/turf/open/floor/plasteel,
/area/security/brig)
"ais" = (
-/obj/machinery/door/firedoor,
-/obj/structure/cable/white{
- icon_state = "2-8"
+/obj/machinery/computer/secure_data{
+ dir = 8
},
-/obj/structure/cable/white{
- icon_state = "2-4"
+/obj/machinery/light{
+ dir = 4
},
-/obj/machinery/door/airlock/security/glass{
- name = "Security E.V.A. Storage";
- req_access_txt = "63"
+/obj/machinery/status_display{
+ pixel_x = 32
},
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
-/obj/effect/turf_decal/stripes/line,
-/obj/effect/turf_decal/stripes/line{
- dir = 1
- },
-/turf/open/floor/plasteel,
-/area/security/brig)
+/turf/open/floor/plasteel/grimy,
+/area/crew_quarters/heads/hos)
"ait" = (
/obj/structure/cable/white{
icon_state = "0-8"
@@ -5405,40 +5370,44 @@
/turf/open/floor/plating,
/area/security/brig)
"aiu" = (
-/obj/structure/cable/white,
-/obj/effect/spawner/structure/window/reinforced,
-/obj/machinery/door/poddoor/preopen{
- id = "detectivewindows";
- name = "Detective Privacy Blast door"
+/obj/machinery/suit_storage_unit/security,
+/obj/structure/extinguisher_cabinet{
+ pixel_x = -26
},
-/turf/open/floor/plating,
-/area/security/detectives_office)
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/obj/effect/turf_decal/stripes/end{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/brig)
"aiv" = (
-/obj/machinery/door/firedoor,
-/obj/machinery/door/airlock/security{
- name = "Detective's Office";
- req_access_txt = "4"
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 10
},
-/obj/machinery/atmospherics/pipe/simple/supply/hidden,
-/obj/structure/cable/white{
- icon_state = "1-2"
+/obj/effect/turf_decal/delivery,
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
},
-/obj/effect/turf_decal/stripes/line,
-/obj/effect/turf_decal/stripes/line{
- dir = 1
- },
-/turf/open/floor/plasteel,
-/area/security/detectives_office)
+/turf/open/floor/plasteel/dark,
+/area/security/brig)
"aiw" = (
-/obj/structure/cable/white,
-/obj/effect/spawner/structure/window/reinforced,
-/obj/machinery/door/poddoor/preopen{
- id = "detectivewindows";
- name = "Detective Privacy Blast door"
+/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden,
+/obj/item/stack/cable_coil/white,
+/obj/item/stack/cable_coil/white,
+/obj/item/stack/sheet/glass,
+/obj/item/stack/sheet/glass,
+/obj/item/circuitboard/machine/microwave,
+/turf/open/floor/plating{
+ icon_state = "panelscorched"
},
-/obj/machinery/atmospherics/pipe/simple/supply/hidden,
-/turf/open/floor/plating,
-/area/security/detectives_office)
+/area/maintenance/starboard/central)
"aix" = (
/obj/machinery/door/airlock/maintenance_hatch{
name = "Maintenance Hatch";
@@ -5700,34 +5669,33 @@
/turf/open/floor/plasteel,
/area/medical/medbay/zone3)
"aiR" = (
-/obj/structure/rack,
-/obj/item/gun/energy/e_gun/advtaser{
- pixel_x = -3;
- pixel_y = 3
+/obj/machinery/suit_storage_unit/security,
+/obj/machinery/firealarm{
+ dir = 8;
+ pixel_x = 24
},
-/obj/item/gun/energy/e_gun/advtaser,
-/obj/machinery/light{
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
dir = 8
},
-/obj/machinery/status_display{
- pixel_x = -32
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
},
-/obj/effect/turf_decal/bot,
-/obj/effect/turf_decal/tile/red{
- dir = 1
+/obj/effect/turf_decal/stripes/end{
+ dir = 8
},
/turf/open/floor/plasteel/dark,
/area/security/brig)
"aiS" = (
-/obj/machinery/atmospherics/pipe/simple/supply/hidden,
/obj/effect/turf_decal/stripes/line{
- dir = 8
- },
-/obj/effect/turf_decal/stripes/line{
- dir = 4
+ dir = 10
},
+/obj/structure/table,
+/obj/item/extinguisher/mini,
+/obj/item/tank/internals/emergency_oxygen/engi,
+/obj/item/clothing/mask/breath,
/turf/open/floor/plasteel,
-/area/security/brig)
+/area/asteroid/nearstation)
"aiT" = (
/obj/structure/rack,
/obj/item/gun/energy/ionrifle,
@@ -6351,22 +6319,20 @@
/turf/open/floor/plating,
/area/asteroid/nearstation)
"ajR" = (
-/obj/structure/rack,
-/obj/item/gun/energy/e_gun{
- pixel_x = -3;
- pixel_y = 3
+/obj/machinery/photocopier,
+/obj/machinery/firealarm{
+ dir = 4;
+ pixel_x = -24
},
-/obj/item/gun/energy/e_gun,
-/obj/item/radio/intercom{
- name = "Station Intercom";
- pixel_x = -26
+/obj/structure/cable/white{
+ icon_state = "2-4"
},
-/obj/effect/turf_decal/bot,
-/obj/effect/turf_decal/tile/red{
- dir = 1
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
},
/turf/open/floor/plasteel/dark,
-/area/security/brig)
+/area/crew_quarters/heads/hos)
"ajS" = (
/obj/structure/cable/white{
icon_state = "2-4"
@@ -7546,32 +7512,18 @@
/turf/open/floor/plating,
/area/asteroid/nearstation)
"alH" = (
-/obj/item/grenade/barrier{
- pixel_x = -3;
- pixel_y = 1
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/structure/cable/white{
+ icon_state = "4-8"
},
-/obj/item/grenade/barrier,
-/obj/item/grenade/barrier{
- pixel_x = 3;
- pixel_y = -1
+/obj/structure/cable/white{
+ icon_state = "2-4"
},
-/obj/item/grenade/barrier{
- pixel_x = 6;
- pixel_y = -2
+/obj/structure/cable/white{
+ icon_state = "1-8"
},
-/obj/structure/table/reinforced,
-/obj/machinery/newscaster/security_unit{
- pixel_x = -32
- },
-/obj/machinery/camera{
- c_tag = "Brig Control Room";
- dir = 4
- },
-/obj/effect/turf_decal/tile/red{
- dir = 1
- },
-/turf/open/floor/plasteel,
-/area/security/brig)
+/turf/open/floor/plasteel/grimy,
+/area/crew_quarters/heads/hos)
"alI" = (
/turf/closed/wall/r_wall,
/area/crew_quarters/heads/chief)
@@ -8166,27 +8118,11 @@
/turf/open/floor/plating,
/area/asteroid/nearstation)
"amH" = (
-/obj/item/storage/box/chemimp{
- pixel_x = 6
+/obj/structure/sign/warning/nosmoking{
+ pixel_y = 32
},
-/obj/item/storage/box/trackimp{
- pixel_x = -3
- },
-/obj/item/storage/lockbox/loyalty,
-/obj/structure/table/reinforced,
-/obj/machinery/airalarm/unlocked{
- dir = 4;
- pixel_x = -23
- },
-/obj/machinery/camera{
- c_tag = "Security - Office";
- dir = 4
- },
-/obj/effect/turf_decal/tile/red{
- dir = 1
- },
-/turf/open/floor/plasteel,
-/area/security/brig)
+/turf/open/floor/plasteel/dark,
+/area/library)
"amI" = (
/obj/machinery/holopad,
/obj/structure/cable/white{
@@ -8643,24 +8579,15 @@
/turf/closed/wall/r_wall,
/area/engine/atmos)
"any" = (
-/obj/item/storage/box/firingpins,
-/obj/item/storage/box/firingpins,
-/obj/structure/table/reinforced,
-/obj/machinery/light{
- dir = 8
+/obj/structure/table/wood,
+/obj/machinery/newscaster{
+ pixel_y = 32
},
-/obj/machinery/requests_console{
- department = "Security";
- name = "Security RC";
- pixel_x = -32
- },
-/obj/item/gun/energy/e_gun/dragnet,
-/obj/item/gun/energy/e_gun/dragnet,
-/obj/effect/turf_decal/tile/red{
- dir = 8
- },
-/turf/open/floor/plasteel,
-/area/security/brig)
+/obj/item/clipboard,
+/obj/item/folder/red,
+/obj/item/hand_labeler,
+/turf/open/floor/wood,
+/area/security/detectives_office)
"anz" = (
/obj/structure/cable/white{
icon_state = "1-2"
@@ -9241,25 +9168,18 @@
/turf/open/floor/engine/vacuum,
/area/engine/atmos)
"aos" = (
-/obj/item/storage/box/teargas{
- pixel_x = 3;
- pixel_y = 3
+/obj/structure/table/wood,
+/obj/item/flashlight/lamp,
+/obj/item/storage/secure/safe{
+ pixel_x = 32
},
-/obj/item/storage/box/handcuffs,
-/obj/item/storage/box/flashbangs{
- pixel_x = -3;
- pixel_y = -3
+/obj/structure/extinguisher_cabinet{
+ pixel_x = 24;
+ pixel_y = -26
},
-/obj/structure/table/reinforced,
-/obj/machinery/firealarm{
- dir = 4;
- pixel_x = -24
- },
-/obj/effect/turf_decal/tile/red{
- dir = 8
- },
-/turf/open/floor/plasteel,
-/area/security/brig)
+/obj/item/toy/figure/hos,
+/turf/open/floor/plasteel/grimy,
+/area/crew_quarters/heads/hos)
"aot" = (
/obj/structure/cable/white{
icon_state = "1-2"
@@ -9997,6 +9917,21 @@
/obj/machinery/air_sensor/atmos/mix_tank,
/turf/open/floor/engine/vacuum,
/area/engine/atmos)
+"apw" = (
+/obj/structure/extinguisher_cabinet{
+ pixel_x = -26
+ },
+/obj/effect/turf_decal/bot,
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/structure/rack,
+/obj/item/storage/box/firingpins,
+/obj/item/storage/box/firingpins,
+/obj/item/gun/energy/e_gun/dragnet,
+/obj/item/gun/energy/e_gun/dragnet,
+/turf/open/floor/plasteel/dark,
+/area/security/brig)
"apx" = (
/obj/machinery/door/firedoor,
/obj/structure/cable/white{
@@ -10281,6 +10216,21 @@
/obj/item/storage/box/lights/mixed,
/turf/open/floor/plating,
/area/maintenance/port/central)
+"apR" = (
+/obj/structure/rack,
+/obj/item/storage/box/rubbershot,
+/obj/item/storage/box/rubbershot,
+/obj/item/storage/box/rubbershot{
+ pixel_x = 3;
+ pixel_y = -3
+ },
+/obj/item/gun/ballistic/shotgun/riot,
+/obj/effect/turf_decal/bot,
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/brig)
"apS" = (
/obj/machinery/door/airlock/maintenance_hatch{
name = "Maintenance Hatch";
@@ -10562,6 +10512,22 @@
/obj/effect/turf_decal/bot,
/turf/open/floor/plasteel,
/area/hallway/primary/starboard/fore)
+"aqo" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 8
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 4
+ },
+/obj/machinery/door/airlock/external{
+ name = "External Airlock";
+ req_access_txt = "13"
+ },
+/obj/effect/mapping_helpers/airlock/cyclelink_helper{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/maintenance/port)
"aqp" = (
/obj/machinery/autolathe,
/obj/structure/extinguisher_cabinet{
@@ -10639,6 +10605,37 @@
/obj/effect/turf_decal/bot,
/turf/open/floor/plasteel,
/area/quartermaster/miningdock)
+"aqw" = (
+/obj/structure/cable/white,
+/obj/effect/spawner/structure/window/reinforced,
+/obj/machinery/door/poddoor/preopen{
+ id = "detectivewindows";
+ name = "HoS Privacy Blast door"
+ },
+/turf/open/floor/plating,
+/area/crew_quarters/heads/hos)
+"aqx" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 4
+ },
+/obj/effect/landmark/xeno_spawn,
+/obj/structure/sign/warning/vacuum{
+ pixel_x = -32;
+ pixel_y = 32
+ },
+/obj/effect/turf_decal/delivery,
+/turf/open/floor/plasteel,
+/area/maintenance/port)
+"aqy" = (
+/obj/structure/cable/white,
+/obj/effect/spawner/structure/window/reinforced,
+/obj/machinery/door/poddoor/preopen{
+ id = "detectivewindows";
+ name = "HoS Privacy Blast door"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plating,
+/area/crew_quarters/heads/hos)
"aqz" = (
/turf/closed/wall/r_wall,
/area/engine/atmos)
@@ -10646,6 +10643,19 @@
/obj/effect/spawner/structure/window/plasma/reinforced,
/turf/open/floor/plating,
/area/engine/atmos)
+"aqB" = (
+/obj/machinery/status_display{
+ pixel_x = -32
+ },
+/obj/machinery/light{
+ dir = 8
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 1
+ },
+/obj/effect/turf_decal/stripes/line,
+/turf/open/floor/plasteel,
+/area/security/brig)
"aqC" = (
/obj/machinery/meter,
/obj/structure/grille,
@@ -10654,6 +10664,13 @@
},
/turf/closed/wall/r_wall,
/area/engine/atmos)
+"aqD" = (
+/obj/effect/turf_decal/stripes/line,
+/obj/effect/turf_decal/stripes/line{
+ dir = 1
+ },
+/turf/open/floor/plasteel,
+/area/security/brig)
"aqE" = (
/obj/machinery/meter,
/obj/structure/grille,
@@ -10670,10 +10687,35 @@
/turf/closed/wall/r_wall,
/area/engine/atmos)
"aqG" = (
-/obj/structure/door_assembly/door_assembly_mhatch,
-/obj/effect/turf_decal/sand/plating,
-/turf/open/floor/plating,
-/area/maintenance/port/fore)
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/effect/turf_decal/stripes/line{
+ dir = 4
+ },
+/obj/effect/turf_decal/stripes/corner{
+ dir = 1
+ },
+/obj/effect/turf_decal/stripes/corner{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/security/brig)
+"aqH" = (
+/obj/item/radio/intercom{
+ name = "Station Intercom";
+ pixel_x = -26
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/obj/effect/turf_decal/bot,
+/obj/structure/rack,
+/obj/item/gun/energy/e_gun/advtaser{
+ pixel_x = -3;
+ pixel_y = 3
+ },
+/obj/item/gun/energy/e_gun/advtaser,
+/turf/open/floor/plasteel/dark,
+/area/security/brig)
"aqI" = (
/obj/structure/closet/secure_closet/security/sec,
/obj/item/radio/intercom{
@@ -10791,22 +10833,15 @@
/turf/open/floor/plasteel,
/area/security/brig)
"aqQ" = (
-/obj/machinery/door/firedoor,
-/obj/structure/table/reinforced,
-/obj/item/clipboard,
-/obj/item/folder/red,
-/obj/item/toy/figure/hos,
-/obj/machinery/atmospherics/pipe/simple/supply/hidden,
-/obj/effect/turf_decal/tile/red{
- dir = 1
- },
-/obj/effect/turf_decal/tile/red,
-/obj/effect/turf_decal/tile/red{
- dir = 4
+/obj/machinery/firealarm{
+ dir = 4;
+ pixel_x = -24
},
/obj/effect/turf_decal/tile/red{
dir = 8
},
+/obj/structure/closet/secure_closet/warden,
+/obj/item/toy/figure/warden,
/turf/open/floor/plasteel,
/area/security/brig)
"aqR" = (
@@ -11065,6 +11100,36 @@
},
/turf/open/floor/plasteel,
/area/quartermaster/miningdock)
+"arn" = (
+/obj/structure/rack,
+/obj/item/gun/energy/e_gun{
+ pixel_x = -3;
+ pixel_y = 3
+ },
+/obj/item/gun/energy/e_gun,
+/obj/effect/turf_decal/bot,
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/brig)
+"aro" = (
+/turf/closed/wall,
+/area/maintenance/port/fore)
+"arp" = (
+/obj/effect/turf_decal/stripes/line,
+/obj/effect/turf_decal/stripes/line{
+ dir = 1
+ },
+/obj/machinery/door/airlock/maintenance_hatch{
+ name = "Maintenance Hatch";
+ req_access_txt = "12"
+ },
+/turf/open/floor/plasteel,
+/area/maintenance/port/fore)
+"arq" = (
+/turf/closed/wall/r_wall,
+/area/maintenance/port/fore)
"arr" = (
/obj/machinery/atmospherics/components/trinary/filter/atmos/flipped/n2o{
dir = 8
@@ -11082,6 +11147,45 @@
},
/turf/open/floor/plasteel/dark,
/area/engine/atmos)
+"ars" = (
+/turf/open/floor/plating,
+/area/maintenance/port/fore)
+"art" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 10
+ },
+/turf/open/floor/plasteel,
+/area/maintenance/port/fore)
+"aru" = (
+/obj/machinery/newscaster/security_unit{
+ pixel_x = -32
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/structure/table/reinforced,
+/obj/item/grenade/barrier{
+ pixel_x = -3;
+ pixel_y = 1
+ },
+/obj/item/grenade/barrier,
+/obj/item/grenade/barrier{
+ pixel_x = 3;
+ pixel_y = -1
+ },
+/obj/item/grenade/barrier{
+ pixel_x = 6;
+ pixel_y = -2
+ },
+/obj/machinery/camera{
+ c_tag = "Brig Control Room";
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/brig)
"arv" = (
/obj/machinery/atmospherics/pipe/simple/green/visible{
dir = 9
@@ -11183,9 +11287,11 @@
/turf/open/floor/plasteel,
/area/engine/atmos)
"arB" = (
-/obj/effect/turf_decal/sand/plating,
-/turf/open/floor/plating,
-/area/maintenance/port/fore)
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/turf/open/floor/plasteel,
+/area/security/brig)
"arC" = (
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
/turf/closed/wall/r_wall,
@@ -11578,6 +11684,21 @@
icon_state = "platingdmg3"
},
/area/maintenance/port/central)
+"asa" = (
+/obj/structure/cable/white{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/security/brig)
"asb" = (
/obj/structure/cable/white{
icon_state = "2-8"
@@ -11723,6 +11844,47 @@
},
/turf/open/floor/plating,
/area/maintenance/starboard/central)
+"asm" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 8
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 4
+ },
+/obj/machinery/door/airlock/maintenance_hatch{
+ name = "Maintenance Hatch";
+ req_access_txt = "12"
+ },
+/turf/open/floor/plasteel,
+/area/maintenance/port/fore)
+"asn" = (
+/obj/machinery/airalarm/unlocked{
+ dir = 4;
+ pixel_x = -23
+ },
+/obj/machinery/camera{
+ c_tag = "Security - Office";
+ dir = 4
+ },
+/obj/machinery/light{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/structure/table/reinforced,
+/obj/item/storage/box/chemimp{
+ pixel_x = 6
+ },
+/obj/item/storage/box/trackimp{
+ pixel_x = -3
+ },
+/obj/item/storage/lockbox/loyalty,
+/turf/open/floor/plasteel/dark,
+/area/security/brig)
"aso" = (
/obj/machinery/atmospherics/pipe/simple/supply/hidden{
dir = 4
@@ -11743,6 +11905,13 @@
},
/turf/open/floor/plating,
/area/maintenance/starboard/central)
+"asq" = (
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/landmark/start/warden,
+/turf/open/floor/plasteel,
+/area/security/brig)
"asr" = (
/obj/effect/turf_decal/loading_area{
dir = 4
@@ -11779,6 +11948,10 @@
},
/turf/open/floor/plasteel,
/area/maintenance/starboard)
+"asu" = (
+/obj/structure/girder,
+/turf/open/floor/plating,
+/area/maintenance/port/fore)
"asv" = (
/turf/open/floor/engine/n2,
/area/engine/atmos)
@@ -11798,6 +11971,60 @@
},
/turf/open/floor/plasteel,
/area/engine/atmos)
+"asy" = (
+/obj/item/cigbutt,
+/turf/open/floor/plating,
+/area/maintenance/port/fore)
+"asz" = (
+/obj/machinery/requests_console{
+ department = "Security";
+ name = "Security RC";
+ pixel_x = -32
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/structure/table/reinforced,
+/obj/item/storage/box/teargas{
+ pixel_x = 3;
+ pixel_y = 3
+ },
+/obj/item/storage/box/handcuffs,
+/obj/item/storage/box/flashbangs{
+ pixel_x = -3;
+ pixel_y = -3
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/brig)
+"asA" = (
+/obj/structure/reagent_dispensers/fueltank,
+/obj/effect/turf_decal/stripes/line{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/maintenance/port/fore)
+"asB" = (
+/obj/machinery/door/firedoor,
+/obj/structure/table/reinforced,
+/obj/item/clipboard,
+/obj/item/folder/red,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/red,
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/obj/item/toy/figure/secofficer,
+/turf/open/floor/plasteel,
+/area/security/brig)
"asC" = (
/obj/machinery/atmospherics/pipe/simple/yellow/visible{
dir = 10
@@ -11811,6 +12038,26 @@
dir = 1
},
/area/engine/atmos)
+"asD" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 4
+ },
+/obj/structure/chair/comfy/black{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/maintenance/port/fore)
+"asE" = (
+/obj/machinery/door/airlock/maintenance_hatch{
+ name = "Maintenance Hatch";
+ req_access_txt = "12"
+ },
+/obj/effect/turf_decal/stripes/line,
+/obj/effect/turf_decal/stripes/line{
+ dir = 1
+ },
+/turf/open/floor/plasteel,
+/area/maintenance/port/fore)
"asF" = (
/obj/machinery/atmospherics/pipe/simple/supply/visible{
dir = 5
@@ -12166,6 +12413,11 @@
/obj/effect/turf_decal/delivery,
/turf/open/floor/plasteel,
/area/storage/primary)
+"ata" = (
+/obj/structure/window/reinforced/tinted/fulltile,
+/obj/structure/grille,
+/turf/open/floor/plating,
+/area/security/detectives_office)
"atb" = (
/obj/structure/cable/white{
icon_state = "1-8"
@@ -12258,6 +12510,10 @@
},
/turf/open/floor/plasteel/dark,
/area/crew_quarters/bar/atrium)
+"atk" = (
+/obj/effect/spawner/structure/window/reinforced/tinted,
+/turf/open/floor/plating,
+/area/security/detectives_office)
"atl" = (
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
dir = 5
@@ -12314,6 +12570,89 @@
},
/turf/open/floor/plasteel,
/area/maintenance/starboard)
+"atr" = (
+/obj/structure/table/wood,
+/obj/item/storage/secure/briefcase,
+/obj/item/restraints/handcuffs,
+/obj/item/grenade/smokebomb,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/detectives_office)
+"ats" = (
+/obj/item/clothing/suit/jacket{
+ desc = "All the class of a trenchcoat without the security fibers.";
+ icon_state = "greydet";
+ name = "trenchcoat"
+ },
+/obj/item/clothing/suit/jacket{
+ desc = "All the class of a trenchcoat without the security fibers.";
+ icon_state = "detective";
+ name = "trenchcoat"
+ },
+/obj/item/clothing/head/fedora,
+/obj/item/clothing/head/fedora{
+ icon_state = "detective"
+ },
+/obj/machinery/light/small{
+ dir = 1
+ },
+/obj/structure/closet/secure_closet/detective,
+/turf/open/floor/wood,
+/area/security/detectives_office)
+"att" = (
+/obj/structure/dresser,
+/turf/open/floor/wood,
+/area/security/detectives_office)
+"atu" = (
+/obj/structure/table/wood,
+/obj/item/crowbar/red,
+/obj/item/book/manual/wiki/security_space_law{
+ pixel_x = 3;
+ pixel_y = 3
+ },
+/obj/item/book/manual/wiki/detective,
+/obj/item/camera/detective,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/detectives_office)
+"atv" = (
+/obj/effect/landmark/start/detective,
+/obj/structure/chair/comfy/brown{
+ dir = 8
+ },
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on,
+/obj/machinery/light_switch{
+ pixel_x = 8;
+ pixel_y = -24
+ },
+/obj/machinery/camera{
+ c_tag = "Detective's Office - Quarters";
+ dir = 1
+ },
+/turf/open/floor/wood,
+/area/security/detectives_office)
+"atw" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on,
+/turf/open/floor/wood,
+/area/security/detectives_office)
"atx" = (
/obj/machinery/air_sensor/atmos/nitrogen_tank,
/turf/open/floor/engine/n2,
@@ -12328,6 +12667,109 @@
},
/turf/open/floor/plasteel,
/area/engine/atmos)
+"atz" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/closed/wall,
+/area/security/detectives_office)
+"atA" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/effect/turf_decal/stripes/line,
+/obj/effect/turf_decal/stripes/line{
+ dir = 1
+ },
+/obj/machinery/door/airlock/security{
+ name = "Detective's Office";
+ req_access_txt = "4"
+ },
+/turf/open/floor/plasteel,
+/area/security/detectives_office)
+"atB" = (
+/obj/machinery/portable_atmospherics/canister/air,
+/obj/effect/turf_decal/stripes/line{
+ dir = 6
+ },
+/obj/structure/sign/poster/ripped{
+ pixel_x = 32
+ },
+/turf/open/floor/plasteel,
+/area/maintenance/starboard/aft)
+"atC" = (
+/obj/machinery/photocopier,
+/obj/item/newspaper{
+ pixel_x = 3;
+ pixel_y = 3
+ },
+/obj/item/newspaper,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/structure/sign/poster/official/cohiba_robusto_ad{
+ pixel_x = -32
+ },
+/obj/machinery/light_switch{
+ pixel_x = 8;
+ pixel_y = 24
+ },
+/obj/machinery/camera{
+ c_tag = "Detective's Office - Desk"
+ },
+/obj/item/radio/intercom{
+ name = "Station Intercom";
+ pixel_x = -6;
+ pixel_y = 22
+ },
+/turf/open/floor/wood,
+/area/security/detectives_office)
+"atD" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/wood,
+/area/security/detectives_office)
+"atE" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 8
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/machinery/door/airlock/external{
+ name = "External Airlock";
+ req_access_txt = "13"
+ },
+/obj/effect/mapping_helpers/airlock/cyclelink_helper{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/maintenance/port)
+"atF" = (
+/obj/effect/spawner/structure/window/reinforced,
+/turf/open/floor/plating,
+/area/security/detectives_office)
+"atG" = (
+/obj/structure/table/wood,
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{
+ dir = 8
+ },
+/obj/machinery/computer/med_data/laptop{
+ icon_state = "laptop";
+ dir = 4
+ },
+/obj/machinery/requests_console{
+ department = "Detective's Office";
+ name = "Detective RC";
+ pixel_x = -30
+ },
+/turf/open/floor/wood,
+/area/security/detectives_office)
+"atH" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/structure/chair/office/dark,
+/obj/effect/landmark/start/detective,
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
+ dir = 8
+ },
+/turf/open/floor/wood,
+/area/security/detectives_office)
"atI" = (
/obj/structure/cable/white{
icon_state = "0-2"
@@ -12355,6 +12797,9 @@
},
/turf/open/floor/plasteel/dark/corner,
/area/engine/atmos)
+"atJ" = (
+/turf/open/floor/wood,
+/area/security/detectives_office)
"atK" = (
/obj/structure/sign/poster/contraband/random{
pixel_x = 32
@@ -12724,6 +13169,12 @@
/obj/machinery/atmospherics/components/unary/vent_pump/on,
/turf/open/floor/plasteel/dark,
/area/crew_quarters/bar/atrium)
+"auh" = (
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{
+ dir = 1
+ },
+/turf/closed/wall/r_wall,
+/area/science/research)
"aui" = (
/obj/machinery/status_display,
/turf/closed/wall,
@@ -12838,6 +13289,51 @@
/obj/machinery/atmospherics/pipe/manifold/general/visible,
/turf/open/floor/plasteel,
/area/engine/atmos)
+"aur" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/structure/cable/white{
+ icon_state = "1-2"
+ },
+/obj/structure/sign/departments/security{
+ pixel_x = 32
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard/aft)
+"aus" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/closed/wall,
+/area/security/detectives_office)
+"aut" = (
+/obj/structure/table/wood,
+/obj/machinery/light/small{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 9
+ },
+/obj/machinery/computer/security/wooden_tv{
+ pixel_x = 0;
+ pixel_y = 4
+ },
+/turf/open/floor/wood,
+/area/security/detectives_office)
+"auu" = (
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
+ dir = 8
+ },
+/obj/structure/table/wood,
+/obj/machinery/computer/secure_data/laptop{
+ dir = 1;
+ icon_state = "laptop";
+ pixel_y = 4
+ },
+/turf/open/floor/wood,
+/area/security/detectives_office)
"auv" = (
/obj/machinery/atmospherics/pipe/simple/cyan/visible{
dir = 10
@@ -12856,6 +13352,44 @@
},
/turf/open/floor/plasteel,
/area/engine/atmos)
+"aux" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 8
+ },
+/turf/open/floor/wood,
+/area/security/detectives_office)
+"auy" = (
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
+ dir = 8
+ },
+/obj/structure/cable/white{
+ icon_state = "1-2"
+ },
+/obj/structure/cable/white{
+ icon_state = "1-4"
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard/aft)
+"auz" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 8
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 4
+ },
+/obj/machinery/door/airlock/security{
+ name = "Detective's Office";
+ req_access_txt = "4"
+ },
+/obj/machinery/door/firedoor,
+/obj/structure/cable/white{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plasteel,
+/area/security/detectives_office)
"auA" = (
/obj/effect/turf_decal/stripes/line{
dir = 4
@@ -13319,6 +13853,15 @@
},
/turf/open/floor/plasteel/dark,
/area/crew_quarters/bar/atrium)
+"avm" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/structure/cable/white{
+ icon_state = "4-8"
+ },
+/turf/open/floor/wood,
+/area/security/detectives_office)
"avn" = (
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
dir = 4
@@ -13465,12 +14008,66 @@
},
/turf/open/floor/plasteel/dark,
/area/engine/atmos)
+"avz" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 9
+ },
+/obj/structure/cable/white{
+ icon_state = "4-8"
+ },
+/obj/effect/landmark/event_spawn,
+/turf/open/floor/wood,
+/area/security/detectives_office)
+"avA" = (
+/obj/structure/cable/white{
+ icon_state = "2-8"
+ },
+/turf/open/floor/wood,
+/area/security/detectives_office)
+"avB" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/structure/sign/warning/vacuum{
+ pixel_x = -32;
+ pixel_y = 32
+ },
+/turf/open/floor/plating,
+/area/maintenance/port)
+"avC" = (
+/obj/structure/sign/poster/ripped,
+/turf/closed/wall/rust,
+/area/security/detectives_office)
+"avD" = (
+/obj/machinery/vending/cigarette,
+/obj/machinery/firealarm{
+ dir = 1;
+ pixel_y = -26
+ },
+/turf/open/floor/wood,
+/area/security/detectives_office)
"avE" = (
/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{
dir = 10
},
/turf/open/floor/plasteel,
/area/engine/atmos)
+"avF" = (
+/obj/structure/table/wood,
+/obj/machinery/airalarm{
+ dir = 1;
+ pixel_y = -22
+ },
+/obj/item/clothing/mask/cigarette/cigar/cohiba{
+ pixel_x = 3
+ },
+/obj/item/clothing/mask/cigarette/cigar/havana{
+ pixel_x = -3
+ },
+/obj/item/clothing/mask/cigarette/cigar,
+/obj/item/clothing/glasses/sunglasses,
+/turf/open/floor/wood,
+/area/security/detectives_office)
"avG" = (
/obj/machinery/light{
dir = 4
@@ -13489,6 +14086,22 @@
},
/turf/open/floor/plasteel/dark/corner,
/area/engine/atmos)
+"avH" = (
+/obj/structure/table/wood,
+/obj/structure/cable/white,
+/obj/machinery/power/apc{
+ areastring = "/area/security/detectives_office";
+ name = "Detective's Office APC";
+ pixel_y = -26
+ },
+/obj/item/storage/briefcase{
+ pixel_x = -3;
+ pixel_y = 3
+ },
+/obj/item/storage/secure/briefcase,
+/obj/item/taperecorder,
+/turf/open/floor/wood,
+/area/security/detectives_office)
"avI" = (
/obj/structure/cable/white{
icon_state = "2-4"
@@ -14076,6 +14689,12 @@
"awA" = (
/turf/open/floor/engine/o2,
/area/engine/atmos)
+"awB" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/port)
"awC" = (
/obj/machinery/atmospherics/pipe/simple/green/visible{
dir = 4
@@ -14099,11 +14718,39 @@
},
/turf/open/floor/plasteel/dark,
/area/engine/atmos)
+"awD" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/structure/cable/white{
+ icon_state = "1-2"
+ },
+/obj/item/cigbutt,
+/turf/open/floor/plating{
+ icon_state = "panelscorched"
+ },
+/area/maintenance/starboard/aft)
+"awE" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 10
+ },
+/turf/open/floor/plating,
+/area/maintenance/port)
"awF" = (
/obj/machinery/atmospherics/pipe/simple/cyan/visible,
/obj/effect/turf_decal/stripes/line,
/turf/open/floor/plasteel,
/area/engine/atmos)
+"awG" = (
+/obj/effect/spawner/structure/window/reinforced,
+/turf/open/floor/plating,
+/area/maintenance/port)
+"awH" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 1
+ },
+/obj/machinery/light/small,
+/obj/structure/closet/emcloset/anchored,
+/turf/open/floor/plasteel,
+/area/maintenance/port)
"awI" = (
/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{
dir = 5
@@ -14130,6 +14777,12 @@
},
/turf/open/floor/plasteel/dark/corner,
/area/engine/atmos)
+"awL" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 5
+ },
+/turf/open/floor/plating,
+/area/maintenance/port)
"awM" = (
/obj/structure/cable/white{
icon_state = "1-2"
@@ -14391,14 +15044,70 @@
/obj/item/wirecutters,
/turf/open/floor/plasteel,
/area/maintenance/starboard)
+"axh" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating/airless,
+/area/maintenance/port)
"axi" = (
/obj/machinery/air_sensor/atmos/oxygen_tank,
/turf/open/floor/engine/o2,
/area/engine/atmos)
+"axj" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 1
+ },
+/turf/open/floor/plasteel,
+/area/maintenance/port)
+"axk" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 1
+ },
+/obj/structure/closet/crate,
+/obj/item/stack/ore/silver,
+/obj/item/stack/ore/iron,
+/obj/item/stack/ore/iron,
+/obj/item/stack/ore/iron,
+/obj/item/pickaxe/emergency,
+/turf/open/floor/plasteel,
+/area/maintenance/port)
+"axl" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 4
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 8
+ },
+/obj/machinery/door/airlock/maintenance_hatch{
+ name = "Maintenance Hatch";
+ req_access_txt = "12"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/maintenance/port)
"axm" = (
/obj/machinery/atmospherics/components/unary/thermomachine/freezer,
/turf/open/floor/plasteel,
/area/engine/atmos)
+"axn" = (
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/maintenance/port)
"axo" = (
/obj/machinery/atmospherics/pipe/simple/scrubbers/visible,
/obj/effect/turf_decal/stripes/line{
@@ -14674,6 +15383,23 @@
},
/turf/open/floor/carpet,
/area/crew_quarters/dorms)
+"axL" = (
+/obj/machinery/door/airlock/maintenance_hatch{
+ name = "Maintenance Hatch";
+ req_access_txt = "12"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 8
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/maintenance/port)
"axM" = (
/obj/structure/table/wood,
/obj/item/lipstick/random{
@@ -14822,6 +15548,13 @@
},
/turf/open/floor/plasteel/dark,
/area/crew_quarters/bar/atrium)
+"axU" = (
+/obj/structure/table/wood,
+/obj/item/paper_bin,
+/obj/item/pen,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plasteel/dark,
+/area/maintenance/port)
"axV" = (
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
/obj/machinery/newscaster{
@@ -14837,6 +15570,20 @@
"axW" = (
/turf/closed/wall,
/area/hallway/secondary/exit)
+"axX" = (
+/obj/effect/landmark/xeno_spawn,
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 1
+ },
+/turf/open/floor/wood,
+/area/maintenance/port)
+"axY" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/item/cigbutt,
+/turf/open/floor/plating,
+/area/maintenance/port)
"ayh" = (
/obj/machinery/atmospherics/pipe/manifold/scrubbers/visible{
dir = 8
@@ -15699,12 +16446,6 @@
icon_state = "platingdmg1"
},
/area/maintenance/starboard/central)
-"azQ" = (
-/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden,
-/turf/open/floor/plating{
- icon_state = "panelscorched"
- },
-/area/maintenance/starboard/central)
"azR" = (
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
dir = 4
@@ -24213,43 +24954,6 @@
},
/turf/open/floor/plasteel/dark,
/area/hallway/primary/starboard)
-"aPz" = (
-/obj/effect/spawner/structure/window/reinforced/tinted,
-/turf/open/floor/plating,
-/area/maintenance/starboard/aft)
-"aPA" = (
-/obj/structure/table/wood,
-/obj/item/storage/secure/briefcase,
-/obj/item/restraints/handcuffs,
-/obj/item/grenade/smokebomb,
-/obj/effect/decal/cleanable/cobweb,
-/turf/open/floor/plating,
-/area/maintenance/starboard/aft)
-"aPB" = (
-/obj/structure/closet/secure_closet/personal/cabinet,
-/obj/item/clothing/suit/jacket{
- desc = "All the class of a trenchcoat without the security fibers.";
- icon_state = "greydet";
- name = "trenchcoat"
- },
-/obj/item/clothing/suit/jacket{
- desc = "All the class of a trenchcoat without the security fibers.";
- icon_state = "detective";
- name = "trenchcoat"
- },
-/obj/item/clothing/head/fedora,
-/obj/item/clothing/head/fedora{
- icon_state = "detective"
- },
-/obj/machinery/light/small{
- dir = 1
- },
-/turf/open/floor/plating,
-/area/maintenance/starboard/aft)
-"aPC" = (
-/obj/structure/dresser,
-/turf/open/floor/wood,
-/area/maintenance/starboard/aft)
"aPG" = (
/obj/effect/spawner/structure/window/reinforced,
/turf/open/floor/plating,
@@ -24730,41 +25434,6 @@
},
/turf/open/floor/plasteel/dark,
/area/hallway/primary/starboard)
-"aQB" = (
-/obj/structure/table/wood,
-/obj/item/crowbar/red,
-/obj/item/book/manual/wiki/security_space_law{
- pixel_x = 3;
- pixel_y = 3
- },
-/obj/item/book/manual/wiki/detective,
-/obj/item/camera/detective,
-/obj/effect/turf_decal/tile/neutral{
- dir = 1
- },
-/obj/effect/turf_decal/tile/neutral,
-/obj/effect/turf_decal/tile/neutral{
- dir = 4
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 8
- },
-/turf/open/floor/plasteel/dark,
-/area/maintenance/starboard/aft)
-"aQC" = (
-/obj/structure/chair/office/dark{
- dir = 4
- },
-/obj/effect/decal/cleanable/blood/old,
-/turf/open/floor/wood,
-/area/maintenance/starboard/aft)
-"aQD" = (
-/obj/effect/landmark/xeno_spawn,
-/obj/machinery/atmospherics/components/unary/vent_pump/on,
-/turf/open/floor/wood{
- icon_state = "wood-broken"
- },
-/area/maintenance/starboard/aft)
"aQG" = (
/obj/machinery/atmospherics/pipe/simple/general/visible{
dir = 6
@@ -25089,19 +25758,6 @@
"aRz" = (
/turf/closed/wall,
/area/maintenance/starboard)
-"aRA" = (
-/obj/structure/barricade/wooden,
-/obj/machinery/door/airlock/maintenance_hatch{
- name = "Maintenance Hatch";
- req_access_txt = "12"
- },
-/obj/machinery/atmospherics/pipe/simple/supply/hidden,
-/obj/effect/turf_decal/stripes/line,
-/obj/effect/turf_decal/stripes/line{
- dir = 1
- },
-/turf/open/floor/plasteel,
-/area/maintenance/starboard/aft)
"aRB" = (
/obj/effect/turf_decal/bot,
/obj/structure/table,
@@ -25293,13 +25949,6 @@
},
/turf/open/floor/plasteel/dark,
/area/library)
-"aRV" = (
-/obj/structure/sign/warning/nosmoking{
- pixel_y = 32
- },
-/obj/machinery/vending/games,
-/turf/open/floor/plasteel/dark,
-/area/library)
"aRW" = (
/obj/structure/chair/office/dark{
dir = 4
@@ -25634,44 +26283,10 @@
/obj/effect/turf_decal/stripes/line,
/turf/open/floor/plasteel,
/area/maintenance/starboard/aft)
-"aSG" = (
-/obj/machinery/portable_atmospherics/canister/air,
-/obj/effect/turf_decal/stripes/line{
- dir = 6
- },
-/turf/open/floor/plasteel,
-/area/maintenance/starboard/aft)
"aSH" = (
/obj/structure/sign/poster/contraband/random,
/turf/closed/wall,
/area/maintenance/starboard)
-"aSI" = (
-/obj/effect/decal/cleanable/cobweb,
-/obj/machinery/photocopier,
-/obj/item/newspaper{
- pixel_x = 3;
- pixel_y = 3
- },
-/obj/item/newspaper,
-/turf/open/floor/plating,
-/area/maintenance/starboard/aft)
-"aSJ" = (
-/obj/machinery/atmospherics/pipe/simple/supply/hidden,
-/turf/open/floor/wood{
- icon_state = "wood-broken2"
- },
-/area/maintenance/starboard/aft)
-"aSK" = (
-/obj/structure/table/wood,
-/obj/item/storage/fancy/cigarettes/cigpack_uplift{
- pixel_x = 6
- },
-/obj/item/storage/fancy/cigarettes/cigpack_carp{
- pixel_x = -3
- },
-/obj/item/lighter,
-/turf/open/floor/plating,
-/area/maintenance/starboard/aft)
"aSM" = (
/obj/machinery/door/airlock/command{
name = "Telecomms Server Room";
@@ -26266,31 +26881,6 @@
icon_state = "panelscorched"
},
/area/maintenance/starboard/aft)
-"aTU" = (
-/obj/structure/table/wood,
-/obj/item/poster/random_contraband{
- pixel_x = 3;
- pixel_y = 3
- },
-/obj/item/poster/random_contraband{
- pixel_x = -3;
- pixel_y = -3
- },
-/obj/item/poster/random_contraband,
-/turf/open/floor/plating,
-/area/maintenance/starboard/aft)
-"aTV" = (
-/obj/machinery/atmospherics/pipe/simple/supply/hidden,
-/turf/open/floor/wood{
- icon_state = "wood-broken7"
- },
-/area/maintenance/starboard/aft)
-"aTW" = (
-/obj/structure/chair/comfy/black{
- dir = 4
- },
-/turf/open/floor/wood,
-/area/maintenance/starboard/aft)
"aTX" = (
/obj/machinery/light{
dir = 8
@@ -26654,48 +27244,6 @@
},
/turf/closed/wall/r_wall,
/area/science/research)
-"aUJ" = (
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
- dir = 10
- },
-/turf/closed/wall/r_wall,
-/area/science/research)
-"aUK" = (
-/obj/machinery/atmospherics/pipe/simple/supply/hidden,
-/obj/structure/cable/white{
- icon_state = "1-2"
- },
-/turf/open/floor/plating{
- icon_state = "platingdmg3"
- },
-/area/maintenance/starboard/aft)
-"aUL" = (
-/obj/structure/table/wood,
-/obj/item/electronics/firelock,
-/obj/item/electronics/airlock,
-/obj/machinery/light/small{
- dir = 8
- },
-/turf/open/floor/wood,
-/area/maintenance/starboard/aft)
-"aUM" = (
-/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
- dir = 8
- },
-/turf/open/floor/wood,
-/area/maintenance/starboard/aft)
-"aUN" = (
-/obj/structure/chair/comfy/brown{
- dir = 4
- },
-/obj/machinery/atmospherics/components/unary/vent_pump/on{
- dir = 8
- },
-/obj/effect/landmark/xeno_spawn,
-/turf/open/floor/wood{
- icon_state = "wood-broken5"
- },
-/area/maintenance/starboard/aft)
"aUO" = (
/obj/structure/cable{
icon_state = "4-8"
@@ -27153,50 +27701,6 @@
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
/turf/closed/wall/r_wall,
/area/science/research)
-"aVF" = (
-/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
- dir = 8
- },
-/obj/structure/cable/white{
- icon_state = "1-2"
- },
-/turf/open/floor/plating,
-/area/maintenance/starboard/aft)
-"aVG" = (
-/obj/machinery/door/airlock/maintenance_hatch{
- name = "Maintenance Hatch";
- req_access_txt = "12"
- },
-/obj/structure/barricade/wooden,
-/obj/machinery/atmospherics/pipe/simple/supply/hidden{
- dir = 4
- },
-/obj/effect/turf_decal/stripes/line{
- dir = 8
- },
-/obj/effect/turf_decal/stripes/line{
- dir = 4
- },
-/turf/open/floor/plating,
-/area/maintenance/starboard/aft)
-"aVH" = (
-/obj/machinery/atmospherics/pipe/simple/supply/hidden{
- dir = 4
- },
-/turf/open/floor/wood{
- icon_state = "wood-broken"
- },
-/area/maintenance/starboard/aft)
-"aVI" = (
-/obj/machinery/atmospherics/pipe/simple/supply/hidden{
- dir = 9
- },
-/turf/open/floor/wood,
-/area/maintenance/starboard/aft)
-"aVJ" = (
-/obj/machinery/vending/cigarette,
-/turf/open/floor/plating,
-/area/maintenance/starboard/aft)
"aVK" = (
/obj/machinery/atmospherics/pipe/heat_exchanging/simple{
dir = 6
@@ -27645,28 +28149,6 @@
},
/turf/open/floor/circuit/green/telecomms/mainframe,
/area/science/research)
-"aWw" = (
-/obj/structure/table/wood,
-/obj/item/clipboard,
-/obj/item/electronics/airalarm,
-/obj/item/electronics/airlock,
-/turf/open/floor/wood,
-/area/maintenance/starboard/aft)
-"aWx" = (
-/obj/structure/table/wood,
-/obj/item/stack/cable_coil/white,
-/obj/item/stack/cable_coil/white,
-/obj/item/stack/sheet/glass,
-/obj/item/stack/sheet/glass,
-/obj/item/circuitboard/machine/microwave,
-/turf/open/floor/wood,
-/area/maintenance/starboard/aft)
-"aWy" = (
-/obj/structure/table/wood,
-/obj/item/storage/briefcase,
-/obj/item/taperecorder,
-/turf/open/floor/plating,
-/area/maintenance/starboard/aft)
"aWz" = (
/obj/machinery/atmospherics/pipe/heat_exchanging/simple,
/obj/structure/lattice,
@@ -29817,50 +30299,12 @@
"baj" = (
/turf/closed/wall,
/area/maintenance/port)
-"bak" = (
-/turf/open/floor/plasteel/dark,
-/area/maintenance/port)
-"bal" = (
-/obj/effect/landmark/xeno_spawn,
-/obj/machinery/atmospherics/components/unary/vent_pump/on{
- dir = 4
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 1
- },
-/obj/effect/turf_decal/tile/neutral,
-/obj/effect/turf_decal/tile/neutral{
- dir = 4
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 8
- },
-/turf/open/floor/plasteel/dark,
-/area/maintenance/port)
"bam" = (
/obj/machinery/atmospherics/pipe/simple/supply/hidden{
dir = 4
},
/turf/open/floor/plasteel/dark,
/area/maintenance/port)
-"ban" = (
-/obj/machinery/door/airlock/maintenance_hatch{
- name = "Maintenance Hatch";
- req_access_txt = "12"
- },
-/obj/structure/barricade/wooden,
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
-/obj/machinery/atmospherics/pipe/simple/supply/hidden{
- dir = 4
- },
-/obj/effect/turf_decal/stripes/line{
- dir = 8
- },
-/obj/effect/turf_decal/stripes/line{
- dir = 4
- },
-/turf/open/floor/plasteel,
-/area/maintenance/port)
"bao" = (
/obj/structure/cable/white{
icon_state = "1-2"
@@ -30361,12 +30805,6 @@
/obj/item/flashlight/lamp,
/turf/open/floor/plating,
/area/maintenance/port)
-"bbd" = (
-/obj/structure/table/wood,
-/obj/item/paper_bin,
-/obj/item/pen,
-/turf/open/floor/plasteel/dark,
-/area/maintenance/port)
"bbe" = (
/obj/effect/turf_decal/tile/neutral{
dir = 1
@@ -36438,11 +36876,6 @@
},
/turf/open/floor/plasteel,
/area/hallway/secondary/exit)
-"bte" = (
-/obj/structure/window/reinforced/tinted/fulltile,
-/obj/structure/grille,
-/turf/open/floor/plating,
-/area/maintenance/starboard/aft)
"btk" = (
/obj/effect/mapping_helpers/airlock/cyclelink_helper{
dir = 4
@@ -40071,9 +40504,6 @@
"swZ" = (
/turf/closed/wall/r_wall/rust,
/area/security/brig)
-"sxc" = (
-/turf/closed/wall/r_wall/rust,
-/area/asteroid/nearstation)
"sxC" = (
/turf/closed/wall/r_wall/rust,
/area/ai_monitored/turret_protected/ai)
@@ -41056,10 +41486,6 @@
},
/turf/open/floor/plasteel/dark,
/area/tcommsat/server)
-"sJR" = (
-/obj/structure/sign/poster/contraband/random,
-/turf/closed/wall/rust,
-/area/maintenance/starboard/aft)
"sJS" = (
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
/obj/structure/cable/white{
@@ -71508,7 +71934,7 @@ aac
aad
aad
aad
-aac
+bvg
aac
aaa
aaa
@@ -71764,10 +72190,10 @@ aad
aad
aad
aad
-aad
-aad
-aac
-aac
+baj
+aqo
+baj
+baj
aaa
aaa
aaa
@@ -72022,9 +72448,9 @@ aMJ
aMJ
sJV
aMJ
-abu
-aad
-aad
+aqx
+awH
+baj
aaa
aaa
aaa
@@ -72279,9 +72705,9 @@ buJ
buO
sKn
aMJ
-acG
-sxc
-aad
+atE
+sKx
+baj
aac
aaa
aaa
@@ -72536,8 +72962,8 @@ buK
sKj
buR
aMJ
-afM
-afL
+avB
+aOH
aad
aac
aaa
@@ -72793,8 +73219,8 @@ buL
buP
buS
aMJ
-afM
-aad
+awB
+baj
aad
aad
aaa
@@ -73050,8 +73476,8 @@ buK
sKj
buR
aMJ
-aad
-aad
+awB
+baj
aad
aad
aaa
@@ -73307,8 +73733,8 @@ buN
buQ
buU
sJV
-agE
-afL
+awB
+aOH
aad
aaa
aaa
@@ -73564,9 +73990,9 @@ sJV
aMJ
aMJ
sJV
-abi
-ahu
-sxc
+awB
+aOH
+sKx
aac
aaa
aaa
@@ -73820,10 +74246,10 @@ bvo
aad
bvo
aad
-abi
-aad
-aad
-aac
+baj
+awE
+awL
+baj
aac
aac
aac
@@ -74077,10 +74503,10 @@ aUQ
aVK
aUQ
aXc
-aad
-ahu
-aad
-aad
+baj
+aOH
+axY
+awG
aac
aac
aac
@@ -74335,10 +74761,10 @@ aVL
aUR
aUQ
bvo
-sxc
-aad
+sKx
+awB
+baj
aac
-bvI
aad
aac
aad
@@ -74592,9 +75018,9 @@ aUU
aWz
aVL
bvo
-ahu
-bvg
-bvg
+aOH
+axh
+baj
aad
aad
aad
@@ -74805,7 +75231,7 @@ aad
aad
aad
abi
-abu
+agK
abu
aad
aad
@@ -74849,10 +75275,10 @@ aUU
aWz
aUQ
bvg
-bvo
-aad
-aad
-aad
+baj
+awB
+baj
+baj
aad
aad
aad
@@ -75106,10 +75532,10 @@ aUU
aWz
aVL
bvg
-bvg
-aad
-aad
-aad
+awG
+awB
+axj
+baj
aad
aad
aad
@@ -75320,9 +75746,9 @@ aad
aad
aad
adv
+aaW
abj
-abj
-abu
+ahB
abu
acF
pNE
@@ -75363,10 +75789,10 @@ aUU
aUU
aUQ
bvg
-bvo
-aad
-aad
-aad
+baj
+awB
+axk
+baj
aad
aad
aad
@@ -75620,10 +76046,10 @@ aUU
aWz
aVL
bvg
-aad
-aad
-aad
-aad
+baj
+awB
+aZo
+baj
aad
aad
aad
@@ -75836,9 +76262,9 @@ abT
abi
aaV
ajQ
-abi
-abT
-acG
+aro
+aro
+asm
bko
cWv
cWv
@@ -75877,10 +76303,10 @@ aUU
aWz
aUQ
bvo
-aad
-aad
-aad
-aad
+baj
+awE
+awL
+baj
aad
aad
aad
@@ -76089,16 +76515,16 @@ aad
aad
aad
aad
-aad
-aad
-aad
-aad
-aad
-aad
-agE
-abi
-aad
-abi
+aaW
+abj
+abj
+abu
+arp
+ars
+ars
+asu
+asA
+asD
sAx
arA
asH
@@ -76135,8 +76561,8 @@ aWz
aVL
bvo
aOH
-aZo
baj
+axl
sKE
baj
aZo
@@ -76346,16 +76772,16 @@ aad
aad
abi
agE
-aad
-aad
-aad
-aad
-afL
-aad
+abj
abi
aad
aad
-aaV
+arq
+art
+ars
+asy
+ars
+ars
aqz
aqz
aqz
@@ -76393,7 +76819,7 @@ aUQ
aad
sKx
aZp
-bak
+bam
bbc
bbQ
dEa
@@ -76602,19 +77028,19 @@ aad
aad
aad
aad
-aad
-aad
-afL
-aaV
-ajQ
-aik
-afL
-aad
-aad
-abi
-afM
-aqG
-arB
+abj
+agF
+agF
+agF
+agF
+agF
+agF
+agF
+agF
+agF
+ars
+asE
+ars
asI
atK
auD
@@ -76650,9 +77076,9 @@ aVL
aad
aOH
aZq
-bal
-bbd
-bbR
+axn
+axU
+axX
bcG
bdE
bev
@@ -76859,15 +77285,15 @@ aad
aad
aad
aad
-afL
+abu
agF
+apw
+aqB
+aqH
agF
-agF
-swZ
-agF
-agF
-agF
-swZ
+aru
+asn
+asz
agF
agF
agF
@@ -77118,14 +77544,14 @@ aad
abT
agE
swZ
-aim
-aiR
-ajR
+apR
+aqD
+arn
akT
-alH
-amH
-any
-aos
+arB
+asq
+anC
+aqQ
akT
aqI
arD
@@ -77164,7 +77590,7 @@ sJH
aQU
aQU
aZs
-ban
+axL
bap
bbT
bcI
@@ -77371,15 +77797,15 @@ aad
aad
aad
aad
-aad
+ahu
afL
-abj
+aaW
swZ
ain
-aiS
+aqG
ajS
akU
-aid
+asa
amI
anz
aot
@@ -77628,9 +78054,9 @@ aad
aad
aad
aad
-aad
-afM
-aaV
+ahu
+abu
+abj
agF
aio
aiT
@@ -77885,8 +78311,8 @@ abi
abi
swN
abi
-abT
-acG
+agF
+afT
agF
agF
aip
@@ -78142,10 +78568,10 @@ aaW
abj
adv
ael
-swN
-abu
agF
-ahv
+afU
+ahz
+aiu
aiq
aiV
ajV
@@ -78399,10 +78825,10 @@ abj
abS
abu
acF
-abi
-afN
-swZ
-ahw
+agF
+agG
+afU
+aiv
air
aiW
ajW
@@ -78439,7 +78865,7 @@ aEt
aYA
aPT
aQW
-aRV
+amH
aTd
aUe
aUW
@@ -78656,11 +79082,11 @@ abS
acD
acF
aem
-afb
-adw
-agF
-ahx
-ais
+afg
+afU
+afU
+agH
+ahv
aiX
agm
akY
@@ -78913,10 +79339,10 @@ abu
acE
adx
acF
-adz
-adw
agF
-ahy
+afU
+ahC
+aiR
ait
aiY
ajY
@@ -79169,10 +79595,10 @@ aaW
abu
acF
acF
-aeo
-abi
acF
agF
+afe
+agF
swZ
agF
aiZ
@@ -79424,13 +79850,13 @@ aad
aad
abi
abi
-acG
+acJ
adz
swN
-abi
+abT
acF
-agG
-ahz
+ahD
+aiS
agF
aja
aka
@@ -79440,7 +79866,7 @@ aka
ala
aoy
apD
-aqQ
+asB
arM
asR
agF
@@ -79684,9 +80110,9 @@ abT
acH
adw
aep
-acF
+afh
aem
-agH
+afP
ahA
swZ
ajb
@@ -79937,15 +80363,15 @@ aad
aad
aad
aad
-abv
-abv
-abv
-swG
-swG
-abv
-abv
-swG
-agF
+abU
+abU
+abU
+abU
+abU
+abU
+abU
+abU
+abU
ajc
ajc
aip
@@ -80194,15 +80620,15 @@ aac
aac
aac
aad
-abv
-acI
-adA
-aeq
-afd
-afP
-agI
-ahB
-aiu
+abU
+acK
+adD
+adC
+afb
+agL
+ahx
+ajR
+aqw
ajd
iaa
alb
@@ -80451,15 +80877,15 @@ aaa
aaa
aaa
aaa
-abU
-acJ
-adB
-aer
-afe
-afQ
-agJ
-ahC
-aiv
+abV
+acG
+acL
+adE
+afd
+agM
+ahF
+alH
+ahy
aje
akd
alc
@@ -80708,15 +81134,15 @@ aac
aac
aad
aad
-swG
-acK
-adC
+abU
+acM
+aeo
aes
-aff
-afR
-agK
-ahD
-aiw
+afQ
+afN
+ahE
+agI
+aqy
ajf
ake
ald
@@ -80964,16 +81390,16 @@ aad
aad
aad
aad
-abv
-abv
-acL
-adD
-abv
-afg
-afS
-agL
-ahE
-aiu
+abU
+abU
+adA
+aeq
+aff
+afi
+ahw
+aim
+aid
+aqw
ajg
akf
oyD
@@ -81221,16 +81647,16 @@ aad
aad
aad
aad
-abv
-abV
-acM
-adE
-abv
-afh
-afT
-agM
-ahF
-afU
+abU
+acI
+adB
+aer
+aff
+afS
+agJ
+ais
+aos
+abU
ajh
akg
ale
@@ -81478,16 +81904,16 @@ aad
aad
aad
aad
-abv
-abv
-abv
-abv
-swG
-afi
-afU
-afU
-afU
-afU
+abU
+abU
+abU
+abU
+abU
+afR
+abU
+abU
+abU
+abU
aji
akh
alf
@@ -88444,7 +88870,7 @@ aww
aum
sDM
ayT
-azQ
+aiw
aAW
aCf
aCf
@@ -90263,7 +90689,7 @@ aae
aRy
aSF
aTS
-aUJ
+auh
aVE
sKh
aVE
@@ -90514,16 +90940,16 @@ aRz
sJd
sJq
aaa
-bte
-aPz
-aPz
-sOM
-aSG
+ata
+atk
+atk
+abv
+atB
aTT
-aUK
-aVF
+aur
+auy
sOZ
-sPa
+awD
sOT
sPk
aZl
@@ -90771,16 +91197,16 @@ sIU
sJe
sIU
aae
-bte
-aPA
-aQB
-sOM
-sJR
-sON
-sOY
-aVG
-sJR
-sOM
+ata
+atr
+atu
+abv
+swG
+swG
+aus
+auz
+avC
+abv
sOY
sOV
aZm
@@ -91028,16 +91454,16 @@ sIU
sJe
sIU
aaa
-bte
-aPB
-aQC
-sOM
-aSI
-aTU
-aUL
-aVH
-aWw
-sOM
+ata
+ats
+atv
+atz
+atC
+atG
+aut
+avm
+avD
+abv
sPi
aYv
die
@@ -91285,16 +91711,16 @@ sIU
sJg
sIU
aae
-bte
-aPC
-aQD
-aRA
-aSJ
-aTV
-aUM
-aVI
-aWx
-sOM
+ata
+att
+atw
+atA
+atD
+atH
+auu
+avz
+avF
+abv
sON
tms
hXc
@@ -91542,16 +91968,16 @@ sJN
cRz
abN
aaa
-bte
-aPz
-aPz
-sOM
-aSK
-aTW
-aUN
-aVJ
-aWy
-sOM
+ata
+atk
+atk
+abv
+any
+atJ
+aux
+avA
+avH
+abv
aad
orV
iio
@@ -91802,13 +92228,13 @@ aae
aae
aae
aae
-sON
-aRy
-aRy
-aRy
-aRy
-aRy
-sON
+swG
+atF
+atF
+atF
+atF
+atF
+swG
aad
hns
iXB
diff --git a/_maps/map_files/PubbyStation/PubbyStation.dmm b/_maps/map_files/PubbyStation/PubbyStation.dmm
index c4a5c794bf..1b69470873 100644
--- a/_maps/map_files/PubbyStation/PubbyStation.dmm
+++ b/_maps/map_files/PubbyStation/PubbyStation.dmm
@@ -34250,6 +34250,10 @@
"bBC" = (
/obj/machinery/portable_atmospherics/canister/toxins,
/obj/effect/turf_decal/delivery,
+/obj/machinery/light{
+ dir = 1;
+ light_color = "#d1dfff"
+ },
/turf/open/floor/engine,
/area/science/storage)
"bBD" = (
@@ -34259,25 +34263,25 @@
/turf/open/floor/engine,
/area/science/storage)
"bBE" = (
-/obj/machinery/portable_atmospherics/canister/toxins,
-/obj/effect/turf_decal/delivery,
-/obj/machinery/light{
- dir = 1
- },
-/obj/effect/turf_decal/stripes/line{
- dir = 4
+/obj/structure/sign/poster/random{
+ pixel_y = 32
},
+/obj/machinery/portable_atmospherics/canister/oxygen,
+/obj/effect/turf_decal/bot,
/turf/open/floor/engine,
/area/science/storage)
"bBF" = (
-/obj/machinery/portable_atmospherics/scrubber/huge,
-/obj/machinery/airalarm{
- pixel_y = 22
- },
+/obj/machinery/portable_atmospherics/canister/oxygen,
+/obj/effect/turf_decal/bot,
/turf/open/floor/engine,
/area/science/storage)
"bBG" = (
/obj/machinery/portable_atmospherics/scrubber/huge,
+/obj/effect/turf_decal/bot,
+/obj/machinery/light{
+ dir = 1;
+ light_color = "#d1dfff"
+ },
/turf/open/floor/engine,
/area/science/storage)
"bBH" = (
@@ -34987,11 +34991,9 @@
/turf/open/floor/plating,
/area/science/storage)
"bCQ" = (
-/obj/machinery/portable_atmospherics/canister/toxins,
-/obj/effect/turf_decal/delivery,
-/obj/effect/turf_decal/stripes/line{
- dir = 4
- },
+/obj/machinery/portable_atmospherics/canister/oxygen,
+/obj/effect/turf_decal/stripes/line,
+/obj/effect/turf_decal/bot,
/turf/open/floor/engine,
/area/science/storage)
"bCR" = (
@@ -35412,22 +35414,19 @@
/turf/open/floor/plasteel/dark,
/area/hallway/primary/aft)
"bDL" = (
-/obj/machinery/portable_atmospherics/canister/oxygen,
-/obj/effect/turf_decal/bot,
+/obj/structure/sign/warning/nosmoking{
+ pixel_x = -32
+ },
/turf/open/floor/engine,
/area/science/storage)
"bDM" = (
-/obj/machinery/portable_atmospherics/canister/oxygen,
-/obj/effect/turf_decal/bot,
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
/turf/open/floor/engine,
/area/science/storage)
"bDN" = (
-/obj/machinery/portable_atmospherics/canister/oxygen,
-/obj/effect/turf_decal/bot,
-/obj/effect/turf_decal/stripes/line{
- dir = 4
- },
+/obj/machinery/portable_atmospherics/canister/toxins,
+/obj/effect/turf_decal/delivery,
+/obj/effect/turf_decal/stripes/line,
/turf/open/floor/engine,
/area/science/storage)
"bDO" = (
@@ -36211,20 +36210,18 @@
/area/hallway/primary/aft)
"bFa" = (
/obj/effect/turf_decal/bot,
-/obj/machinery/portable_atmospherics/canister/oxygen,
+/obj/machinery/portable_atmospherics/canister/nitrous_oxide,
+/obj/effect/turf_decal/stripes/line{
+ dir = 1
+ },
/turf/open/floor/engine,
/area/science/storage)
"bFb" = (
-/obj/machinery/portable_atmospherics/canister/carbon_dioxide,
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
/obj/effect/turf_decal/bot,
-/turf/open/floor/engine,
-/area/science/storage)
-"bFc" = (
/obj/machinery/portable_atmospherics/canister/nitrous_oxide,
-/obj/effect/turf_decal/bot,
/obj/effect/turf_decal/stripes/line{
- dir = 4
+ dir = 5
},
/turf/open/floor/engine,
/area/science/storage)
@@ -36284,7 +36281,6 @@
/turf/open/floor/plasteel/white,
/area/science/mixing)
"bFl" = (
-/obj/machinery/portable_atmospherics/pump,
/turf/open/floor/plasteel/white,
/area/science/mixing)
"bFm" = (
@@ -36325,6 +36321,9 @@
/obj/effect/turf_decal/tile/neutral{
dir = 8
},
+/obj/structure/sign/warning/nosmoking{
+ pixel_x = 32
+ },
/turf/open/floor/plasteel/dark,
/area/science/mixing)
"bFr" = (
@@ -36666,25 +36665,24 @@
/area/hallway/primary/aft)
"bGf" = (
/obj/effect/turf_decal/bot,
-/obj/machinery/portable_atmospherics/canister/nitrogen,
/obj/effect/turf_decal/stripes/line,
+/obj/machinery/portable_atmospherics/canister/carbon_dioxide,
/turf/open/floor/engine,
/area/science/storage)
"bGg" = (
/obj/machinery/portable_atmospherics/canister/carbon_dioxide,
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
-/obj/effect/turf_decal/stripes/line,
-/obj/effect/turf_decal/bot,
-/turf/open/floor/engine,
-/area/science/storage)
-"bGh" = (
-/obj/machinery/portable_atmospherics/canister/nitrous_oxide,
/obj/effect/turf_decal/bot,
/obj/effect/turf_decal/stripes/line{
dir = 6
},
/turf/open/floor/engine,
/area/science/storage)
+"bGh" = (
+/obj/machinery/portable_atmospherics/scrubber,
+/obj/effect/turf_decal/bot,
+/turf/open/floor/engine,
+/area/science/storage)
"bGi" = (
/obj/structure/cable{
icon_state = "1-2"
@@ -36716,11 +36714,11 @@
/turf/open/floor/plasteel/dark,
/area/science/explab)
"bGl" = (
-/obj/machinery/portable_atmospherics/scrubber,
/obj/effect/turf_decal/tile/purple,
/obj/effect/turf_decal/tile/purple{
dir = 4
},
+/obj/structure/closet/firecloset,
/turf/open/floor/plasteel/dark,
/area/science/explab)
"bGm" = (
@@ -36829,7 +36827,6 @@
/turf/open/floor/plasteel/white,
/area/science/mixing)
"bGr" = (
-/obj/structure/tank_dispenser,
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
dir = 4
},
@@ -36837,6 +36834,7 @@
/obj/effect/turf_decal/tile/purple{
dir = 8
},
+/obj/machinery/portable_atmospherics/pump,
/turf/open/floor/plasteel/white,
/area/science/mixing)
"bGs" = (
@@ -37372,8 +37370,9 @@
/obj/structure/cable{
icon_state = "1-2"
},
-/obj/structure/sign/poster/random{
- pixel_x = 32
+/obj/machinery/airalarm{
+ dir = 8;
+ pixel_x = 24
},
/turf/open/floor/engine,
/area/science/storage)
@@ -37926,54 +37925,56 @@
/turf/open/floor/plasteel/dark,
/area/hallway/primary/aft)
"bIF" = (
-/obj/machinery/power/apc{
- dir = 8;
- name = "Toxins Storage APC";
- pixel_x = -25
+/obj/structure/tank_dispenser,
+/obj/effect/turf_decal/stripes/line{
+ dir = 5
},
-/obj/structure/cable{
- icon_state = "0-4"
- },
-/obj/effect/turf_decal/stripes/line,
+/obj/effect/turf_decal/bot,
+/obj/machinery/light,
/turf/open/floor/engine,
/area/science/storage)
"bIG" = (
-/obj/structure/cable{
- icon_state = "2-8"
- },
-/obj/structure/cable{
- icon_state = "4-8"
- },
/obj/effect/turf_decal/stripes/line,
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
/turf/open/floor/engine,
/area/science/storage)
"bIH" = (
-/obj/machinery/light,
/obj/structure/cable{
icon_state = "4-8"
},
/obj/effect/turf_decal/stripes/line,
-/obj/machinery/pipedispenser,
+/obj/machinery/power/apc{
+ name = "Toxins Storage APC";
+ pixel_y = -25
+ },
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
/turf/open/floor/engine,
/area/science/storage)
"bII" = (
/obj/structure/cable{
icon_state = "4-8"
},
-/obj/structure/sign/warning/nosmoking{
- pixel_y = -32
+/obj/machinery/portable_atmospherics/canister/nitrogen,
+/obj/effect/turf_decal/stripes/line{
+ dir = 9
},
-/obj/effect/turf_decal/stripes/corner{
- dir = 1
- },
-/obj/machinery/pipedispenser/disposal,
+/obj/effect/turf_decal/bot,
/turf/open/floor/engine,
/area/science/storage)
"bIJ" = (
/obj/structure/cable{
icon_state = "1-8"
},
-/obj/machinery/pipedispenser/disposal/transit_tube,
+/obj/machinery/portable_atmospherics/canister/nitrogen,
+/obj/effect/turf_decal/stripes/line{
+ dir = 1
+ },
+/obj/effect/turf_decal/bot,
+/obj/machinery/light,
/turf/open/floor/engine,
/area/science/storage)
"bIK" = (
@@ -42856,6 +42857,7 @@
/obj/effect/turf_decal/tile/yellow{
dir = 4
},
+/obj/machinery/pipedispenser,
/turf/open/floor/plasteel,
/area/engine/atmos)
"bTL" = (
@@ -42871,6 +42873,7 @@
/obj/effect/turf_decal/tile/yellow{
dir = 4
},
+/obj/machinery/pipedispenser/disposal,
/turf/open/floor/plasteel,
/area/engine/atmos)
"bTM" = (
@@ -57023,6 +57026,13 @@
/obj/machinery/atmospherics/components/unary/outlet_injector/on,
/turf/open/floor/plating,
/area/security/execution/transfer)
+"mzE" = (
+/obj/machinery/portable_atmospherics/canister/toxins,
+/obj/effect/turf_decal/delivery,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/effect/turf_decal/stripes/line,
+/turf/open/floor/engine,
+/area/science/storage)
"mzU" = (
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
/turf/closed/wall,
@@ -59367,6 +59377,13 @@
},
/turf/open/floor/plating/airless,
/area/maintenance/department/engine)
+"rNi" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{
+ dir = 4
+ },
+/obj/machinery/pipedispenser/disposal/transit_tube,
+/turf/open/floor/plasteel,
+/area/engine/atmos)
"rNB" = (
/obj/effect/spawner/structure/window/reinforced,
/turf/open/floor/plating,
@@ -61836,6 +61853,12 @@
},
/turf/open/floor/plasteel,
/area/hallway/primary/aft)
+"xEx" = (
+/obj/machinery/portable_atmospherics/scrubber/huge,
+/obj/effect/turf_decal/stripes/line,
+/obj/effect/turf_decal/bot,
+/turf/open/floor/engine,
+/area/science/storage)
"xFl" = (
/obj/machinery/power/apc/highcap/five_k{
areastring = "/area/tcommsat/server";
@@ -97911,7 +97934,7 @@ bPQ
bPQ
bQI
bPQ
-bNc
+rNi
bMf
bMf
hjk
@@ -99950,7 +99973,7 @@ bxt
byS
bAA
bBC
-bBC
+bDN
bDL
bFa
bGf
@@ -100207,7 +100230,7 @@ bxu
byT
bAB
bBD
-bBD
+mzE
bDM
bFb
bGg
@@ -100465,8 +100488,8 @@ byU
bAA
bBE
bCQ
-bDN
-bFc
+bCR
+bGh
bGh
bCR
bIH
@@ -100721,7 +100744,7 @@ bxw
byV
bAA
bBF
-bCR
+bCQ
bDO
bCR
bCR
@@ -100978,7 +101001,7 @@ bxx
byW
bAA
bBG
-bCR
+xEx
bDP
bFd
bGi
diff --git a/code/__DEFINES/flags.dm b/code/__DEFINES/_flags/_flags.dm
similarity index 95%
rename from code/__DEFINES/flags.dm
rename to code/__DEFINES/_flags/_flags.dm
index abc0507bf4..dae3df6f0b 100644
--- a/code/__DEFINES/flags.dm
+++ b/code/__DEFINES/_flags/_flags.dm
@@ -22,8 +22,8 @@ GLOBAL_LIST_INIT(bitflags, list(1, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024, 204
//FLAGS BITMASK
///This flag is what recursive_hear_check() uses to determine wether to add an item to the hearer list or not.
#define HEAR_1 (1<<3)
-///Projectiels will check ricochet on things impacted that have this.
-#define CHECK_RICOCHET_1 (1<<4)
+///Projectiles will use default chance-based ricochet handling on things with this.
+#define DEFAULT_RICOCHET_1 (1<<4)
///Conducts electricity (metal etc.).
#define CONDUCT_1 (1<<5)
///For machines and structures that should not break into parts, eg, holodeck stuff.
@@ -137,3 +137,7 @@ GLOBAL_LIST_INIT(bitflags, list(1, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024, 204
#define MOBILITY_FLAGS_DEFAULT (MOBILITY_MOVE | MOBILITY_STAND | MOBILITY_PICKUP | MOBILITY_USE | MOBILITY_UI | MOBILITY_STORAGE | MOBILITY_PULL | MOBILITY_RESIST)
#define MOBILITY_FLAGS_ANY_INTERACTION (MOBILITY_USE | MOBILITY_PICKUP | MOBILITY_UI | MOBILITY_STORAGE)
+
+// melee_attack_chain() attackchain_flags
+/// The attack is from a parry counterattack.
+#define ATTACKCHAIN_PARRY_COUNTERATTACK (1<<0)
diff --git a/code/__DEFINES/obj_flags.dm b/code/__DEFINES/_flags/item_flags.dm
similarity index 74%
rename from code/__DEFINES/obj_flags.dm
rename to code/__DEFINES/_flags/item_flags.dm
index a904d7a7e6..c6a3886ed3 100644
--- a/code/__DEFINES/obj_flags.dm
+++ b/code/__DEFINES/_flags/item_flags.dm
@@ -1,20 +1,3 @@
-// Flags for the obj_flags var on /obj
-
-
-#define EMAGGED (1<<0)
-#define IN_USE (1<<1) //If we have a user using us, this will be set on. We will check if the user has stopped using us, and thus stop updating and LAGGING EVERYTHING!
-#define CAN_BE_HIT (1<<2) //can this be bludgeoned by items?
-#define BEING_SHOCKED (1<<3) //Whether this thing is currently (already) being shocked by a tesla
-#define DANGEROUS_POSSESSION (1<<4) //Admin possession yes/no
-#define ON_BLUEPRINTS (1<<5) //Are we visible on the station blueprints at roundstart?
-#define UNIQUE_RENAME (1<<6) //can you customize the description/name of the thing?
-#define USES_TGUI (1<<7) //put on things that use tgui on ui_interact instead of custom/old UI.
-#define FROZEN (1<<8)
-#define SHOVABLE_ONTO (1<<9) //called on turf.shove_act() to consider whether an object should have a niche effect (defined in their own shove_act()) when someone is pushed onto it, or do a sanity CanPass() check.
-#define BLOCK_Z_FALL (1<<10)
-
-// If you add new ones, be sure to add them to /obj/Initialize as well for complete mapping support
-
// Flags for the item_flags var on /obj/item
#define BEING_REMOVED (1<<0)
@@ -41,6 +24,10 @@
#define NO_UNIFORM_REQUIRED (1<<11)
///Damage when attacking people is not affected by combat mode.
#define NO_COMBAT_MODE_FORCE_MODIFIER (1<<12)
+/// This item can be used to parry. Only a basic check used to determine if we should proceed with parry chain at all.
+#define ITEM_CAN_PARRY (1<<13)
+/// This item can be used in the directional blocking system. Only a basic check used to determine if we should proceed with directional block handling at all.
+#define ITEM_CAN_BLOCK (1<<14)
// Flags for the clothing_flags var on /obj/item/clothing
diff --git a/code/__DEFINES/_flags/obj_flags.dm b/code/__DEFINES/_flags/obj_flags.dm
new file mode 100644
index 0000000000..ebb9b4bda0
--- /dev/null
+++ b/code/__DEFINES/_flags/obj_flags.dm
@@ -0,0 +1,15 @@
+// Flags for the obj_flags var on /obj
+
+#define EMAGGED (1<<0)
+#define IN_USE (1<<1) //If we have a user using us, this will be set on. We will check if the user has stopped using us, and thus stop updating and LAGGING EVERYTHING!
+#define CAN_BE_HIT (1<<2) //can this be bludgeoned by items?
+#define BEING_SHOCKED (1<<3) //Whether this thing is currently (already) being shocked by a tesla
+#define DANGEROUS_POSSESSION (1<<4) //Admin possession yes/no
+#define ON_BLUEPRINTS (1<<5) //Are we visible on the station blueprints at roundstart?
+#define UNIQUE_RENAME (1<<6) //can you customize the description/name of the thing?
+#define USES_TGUI (1<<7) //put on things that use tgui on ui_interact instead of custom/old UI.
+#define FROZEN (1<<8)
+#define SHOVABLE_ONTO (1<<9) //called on turf.shove_act() to consider whether an object should have a niche effect (defined in their own shove_act()) when someone is pushed onto it, or do a sanity CanPass() check.
+#define BLOCK_Z_FALL (1<<10)
+
+// If you add new ones, be sure to add them to /obj/Initialize as well for complete mapping support
diff --git a/code/__DEFINES/combat.dm b/code/__DEFINES/combat.dm
index eb3c1e32ef..bf053635af 100644
--- a/code/__DEFINES/combat.dm
+++ b/code/__DEFINES/combat.dm
@@ -29,10 +29,11 @@
#define EFFECT_DROWSY "drowsy"
#define EFFECT_JITTER "jitter"
+// mob/living/var/combat_flags variable.
/// Default combat flags for those affected by sprinting (combat mode has been made into its own component)
-#define COMBAT_FLAGS_DEFAULT NONE
+#define COMBAT_FLAGS_DEFAULT (COMBAT_FLAG_PARRY_CAPABLE | COMBAT_FLAG_BLOCK_CAPABLE)
/// Default combat flags for everyone else (so literally everyone but humans).
-#define COMBAT_FLAGS_SPRINT_EXEMPT (COMBAT_FLAG_SPRINT_ACTIVE | COMBAT_FLAG_SPRINT_TOGGLED | COMBAT_FLAG_SPRINT_FORCED)
+#define COMBAT_FLAGS_SPRINT_EXEMPT (COMBAT_FLAG_SPRINT_ACTIVE | COMBAT_FLAG_SPRINT_TOGGLED | COMBAT_FLAG_SPRINT_FORCED | COMBAT_FLAG_PARRY_CAPABLE | COMBAT_FLAG_BLOCK_CAPABLE)
/// The user wants sprint mode on
#define COMBAT_FLAG_SPRINT_TOGGLED (1<<0)
@@ -50,6 +51,16 @@
#define COMBAT_FLAG_SOFT_STAMCRIT (1<<6)
/// Force sprint mode on at all times, overrides everything including sprint disable traits.
#define COMBAT_FLAG_SPRINT_FORCED (1<<7)
+/// This mob is capable of using the active parrying system.
+#define COMBAT_FLAG_PARRY_CAPABLE (1<<8)
+/// This mob is capable of using the active blocking system.
+#define COMBAT_FLAG_BLOCK_CAPABLE (1<<9)
+/// This mob is capable of unarmed parrying
+#define COMBAT_FLAG_UNARMED_PARRY (1<<10)
+/// This mob is currently actively blocking
+#define COMBAT_FLAG_ACTIVE_BLOCKING (1<<11)
+/// This mob is currently starting an active block
+#define COMBAT_FLAG_ACTIVE_BLOCK_STARTING (1<<12)
// Helpers for getting someone's stamcrit state. Cast to living.
#define NOT_STAMCRIT 0
@@ -112,18 +123,6 @@
#define GRAB_NECK 2
#define GRAB_KILL 3
-/// Attack types for check_block()/run_block(). Flags, combinable.
-/// Attack was melee, whether or not armed.
-#define ATTACK_TYPE_MELEE (1<<0)
-/// Attack was with a gun or something that should count as a gun (but not if a gun shouldn't count for a gun, crazy right?)
-#define ATTACK_TYPE_PROJECTILE (1<<1)
-/// Attack was unarmed.. this usually means hand to hand combat.
-#define ATTACK_TYPE_UNARMED (1<<2)
-/// Attack was a thrown atom hitting the victim.
-#define ATTACK_TYPE_THROWN (1<<3)
-/// Attack was a bodyslam/leap/tackle. See: Xenomorph leap tackles.
-#define ATTACK_TYPE_TACKLE (1<<4)
-
//attack visual effects
#define ATTACK_EFFECT_PUNCH "punch"
#define ATTACK_EFFECT_KICK "kick"
@@ -273,72 +272,4 @@ GLOBAL_LIST_INIT(shove_disarming_types, typecacheof(list(
* should the current-attack-damage be lower than the item force multiplied by this value,
* a "inefficiently" prefix will be added to the message.
*/
-#define INEFFICIENT_ATTACK_MSG_THRESHOLD 0.7
-
-
-//bullet_act() return values
-#define BULLET_ACT_HIT "HIT" //It's a successful hit, whatever that means in the context of the thing it's hitting.
-#define BULLET_ACT_BLOCK "BLOCK" //It's a blocked hit, whatever that means in the context of the thing it's hitting.
-#define BULLET_ACT_FORCE_PIERCE "PIERCE" //It pierces through the object regardless of the bullet being piercing by default.
-#define BULLET_ACT_TURF "TURF" //It hit us but it should hit something on the same turf too. Usually used for turfs.
-
-/// Check whether or not we can block, without "triggering" a block. Basically run checks without effects like depleting shields.
-/// Wrapper for do_run_block(). The arguments on that means the same as for this.
-#define mob_check_block(object, damage, attack_text, attack_type, armour_penetration, attacker, def_zone, return_list)\
- do_run_block(FALSE, object, damage, attack_text, attack_type, armour_penetration, attacker, check_zone(def_zone), return_list)
-
-/// Runs a block "sequence", effectively checking and then doing effects if necessary.
-/// Wrapper for do_run_block(). The arguments on that means the same as for this.
-#define mob_run_block(object, damage, attack_text, attack_type, armour_penetration, attacker, def_zone, return_list)\
- do_run_block(TRUE, object, damage, attack_text, attack_type, armour_penetration, attacker, check_zone(def_zone), return_list)
-
-/// Bitflags for check_block() and run_block(). Meant to be combined. You can be hit and still reflect, for example, if you do not use BLOCK_SUCCESS.
-/// Attack was not blocked
-#define BLOCK_NONE NONE
-/// Attack was blocked, do not do damage. THIS FLAG MUST BE THERE FOR DAMAGE/EFFECT PREVENTION!
-#define BLOCK_SUCCESS (1<<1)
-
-/// The below are for "metadata" on "how" the attack was blocked.
-
-/// Attack was and should be redirected according to list argument REDIRECT_METHOD (NOTE: the SHOULD here is important, as it says "the thing blocking isn't handling the reflecting for you so do it yourself"!)
-#define BLOCK_SHOULD_REDIRECT (1<<2)
-/// Attack was redirected (whether by us or by SHOULD_REDIRECT flagging for automatic handling)
-#define BLOCK_REDIRECTED (1<<3)
-/// Attack was blocked by something like a shield.
-#define BLOCK_PHYSICAL_EXTERNAL (1<<4)
-/// Attack was blocked by something worn on you.
-#define BLOCK_PHYSICAL_INTERNAL (1<<5)
-/// Attack outright missed because the target dodged. Should usually be combined with redirection passthrough or something (see martial arts)
-#define BLOCK_TARGET_DODGED (1<<7)
-/// Meta-flag for run_block/do_run_block : By default, BLOCK_SUCCESS tells do_run_block() to assume the attack is completely blocked and not continue the block chain. If this is present, it will continue to check other items in the chain rather than stopping.
-#define BLOCK_CONTINUE_CHAIN (1<<8)
-
-/// For keys in associative list/block_return as we don't want to saturate our (somewhat) limited flags.
-#define BLOCK_RETURN_REDIRECT_METHOD "REDIRECT_METHOD"
- /// Pass through victim
- #define REDIRECT_METHOD_PASSTHROUGH "passthrough"
- /// Deflect at randomish angle
- #define REDIRECT_METHOD_DEFLECT "deflect"
- /// reverse 180 angle, basically (as opposed to "realistic" wall reflections)
- #define REDIRECT_METHOD_REFLECT "reflect"
- /// "do not taser the bad man with the desword" - actually aims at the firer/attacker rather than just reversing
- #define REDIRECT_METHOD_RETURN_TO_SENDER "no_you"
-
-/// These keys are generally only applied to the list if real_attack is FALSE. Used incase we want to make "smarter" mob AI in the future or something.
-/// Tells the caller how likely from 0 (none) to 100 (always) we are to reflect energy projectiles
-#define BLOCK_RETURN_REFLECT_PROJECTILE_CHANCE "reflect_projectile_chance"
-/// Tells the caller how likely we are to block attacks from 0 to 100 in general
-#define BLOCK_RETURN_NORMAL_BLOCK_CHANCE "normal_block_chance"
-/// Tells the caller about how many hits we can soak on average before our blocking fails.
-#define BLOCK_RETURN_BLOCK_CAPACITY "block_capacity"
-
-/// Default if the above isn't set in the list.
-#define DEFAULT_REDIRECT_METHOD_PROJECTILE REDIRECT_METHOD_DEFLECT
-
-/// Block priorities
-#define BLOCK_PRIORITY_HELD_ITEM 100
-#define BLOCK_PRIORITY_WEAR_SUIT 75
-#define BLOCK_PRIORITY_CLOTHING 50
-#define BLOCK_PRIORITY_UNIFORM 25
-
-#define BLOCK_PRIORITY_DEFAULT BLOCK_PRIORITY_HELD_ITEM
+#define FEEBLE_ATTACK_MSG_THRESHOLD 0.5
diff --git a/code/__DEFINES/combat/attack_types.dm b/code/__DEFINES/combat/attack_types.dm
new file mode 100644
index 0000000000..a401c0f2ee
--- /dev/null
+++ b/code/__DEFINES/combat/attack_types.dm
@@ -0,0 +1,32 @@
+// Attack types for check_block()/run_block(). Flags, combinable.
+/// Attack was melee, whether or not armed.
+#define ATTACK_TYPE_MELEE (1<<0)
+/// Attack was with a gun or something that should count as a gun (but not if a gun shouldn't count for a gun, crazy right?)
+#define ATTACK_TYPE_PROJECTILE (1<<1)
+/// Attack was unarmed.. this usually means hand to hand combat.
+#define ATTACK_TYPE_UNARMED (1<<2)
+/// Attack was a thrown atom hitting the victim.
+#define ATTACK_TYPE_THROWN (1<<3)
+/// Attack was a bodyslam/leap/tackle. See: Xenomorph leap tackles.
+#define ATTACK_TYPE_TACKLE (1<<4)
+/// Attack was from a parry counterattack. Do not attempt to parry-this!
+#define ATTACK_TYPE_PARRY_COUNTERATTACK (1<<5)
+
+// Requires for datum definitions to not error with must be a constant statement when used in lists as text associative keys.
+// KEEP IN SYNC WITH ABOVE!
+
+#define TEXT_ATTACK_TYPE_MELEE "1"
+#define TEXT_ATTACK_TYPE_PROJECTILE "2"
+#define TEXT_ATTACK_TYPE_UNARMED "4"
+#define TEXT_ATTACK_TYPE_THROWN "8"
+#define TEXT_ATTACK_TYPE_TACKLE "16"
+#define TEXT_ATTACK_TYPE_PARRY_COUNTERATTACK "32"
+
+GLOBAL_LIST_INIT(attack_type_names, list(
+ TEXT_ATTACK_TYPE_MELEE = "Melee",
+ TEXT_ATTACK_TYPE_PROJECTILE = "Projectile",
+ TEXT_ATTACK_TYPE_UNARMED = "Unarmed",
+ TEXT_ATTACK_TYPE_THROWN = "Thrown",
+ TEXT_ATTACK_TYPE_TACKLE = "Tackle",
+ TEXT_ATTACK_TYPE_PARRY_COUNTERATTACK = "Parry Counterattack"
+))
diff --git a/code/__DEFINES/combat/block.dm b/code/__DEFINES/combat/block.dm
new file mode 100644
index 0000000000..bc85947d71
--- /dev/null
+++ b/code/__DEFINES/combat/block.dm
@@ -0,0 +1,80 @@
+/// Check whether or not we can block, without "triggering" a block. Basically run checks without effects like depleting shields.
+/// Wrapper for do_run_block(). The arguments on that means the same as for this.
+#define mob_check_block(object, damage, attack_text, attack_type, armour_penetration, attacker, def_zone, return_list)\
+ do_run_block(FALSE, object, damage, attack_text, attack_type, armour_penetration, attacker, check_zone(def_zone), return_list)
+
+/// Runs a block "sequence", effectively checking and then doing effects if necessary.
+/// Wrapper for do_run_block(). The arguments on that means the same as for this.
+#define mob_run_block(object, damage, attack_text, attack_type, armour_penetration, attacker, def_zone, return_list)\
+ do_run_block(TRUE, object, damage, attack_text, attack_type, armour_penetration, attacker, check_zone(def_zone), return_list)
+
+// Don't ask why there's block_parry.dm and this. This is for the run_block() system, which is the "parent" system of the directional block and parry systems.
+
+/// Bitflags for check_block() and handle_block(). Meant to be combined. You can be hit and still reflect, for example, if you do not use BLOCK_SUCCESS.
+/// Attack was not blocked
+#define BLOCK_NONE NONE
+/// Attack was blocked, do not do damage. THIS FLAG MUST BE THERE FOR DAMAGE/EFFECT PREVENTION!
+#define BLOCK_SUCCESS (1<<1)
+
+/// The below are for "metadata" on "how" the attack was blocked.
+
+/// Attack was and should be redirected according to list argument REDIRECT_METHOD (NOTE: the SHOULD here is important, as it says "the thing blocking isn't handling the reflecting for you so do it yourself"!)
+#define BLOCK_SHOULD_REDIRECT (1<<2)
+/// Attack was redirected (whether by us or by SHOULD_REDIRECT flagging for automatic handling)
+#define BLOCK_REDIRECTED (1<<3)
+/// Attack was blocked by something like a shield.
+#define BLOCK_PHYSICAL_EXTERNAL (1<<4)
+/// Attack was blocked by something worn on you.
+#define BLOCK_PHYSICAL_INTERNAL (1<<5)
+/// Attack outright missed because the target dodged. Should usually be combined with redirection passthrough or something (see martial arts)
+#define BLOCK_TARGET_DODGED (1<<7)
+/// Meta-flag for run_block/do_run_block : By default, BLOCK_SUCCESS tells do_run_block() to assume the attack is completely blocked and not continue the block chain. If this is present, it will continue to check other items in the chain rather than stopping.
+#define BLOCK_CONTINUE_CHAIN (1<<8)
+/// Attack should change the amount of damage incurred. This means something calling run_block() has to handle it!
+#define BLOCK_SHOULD_CHANGE_DAMAGE (1<<9)
+/// Attack should scale by this percent, 0 for no block and 100 for full blocked
+#define BLOCK_SHOULD_PARTIAL_MITIGATE (1<<10)
+
+/// For keys in associative list/block_return as we don't want to saturate our (somewhat) limited flags.
+#define BLOCK_RETURN_REDIRECT_METHOD "REDIRECT_METHOD"
+ /// Pass through victim
+ #define REDIRECT_METHOD_PASSTHROUGH "passthrough"
+ /// Deflect at randomish angle
+ #define REDIRECT_METHOD_DEFLECT "deflect"
+ /// reverse 180 angle, basically (as opposed to "realistic" wall reflections)
+ #define REDIRECT_METHOD_REFLECT "reflect"
+ /// "do not taser the bad man with the desword" - actually aims at the firer/attacker rather than just reversing
+ #define REDIRECT_METHOD_RETURN_TO_SENDER "no_you"
+
+/// These keys are generally only applied to the list if real_attack is FALSE. Used incase we want to make "smarter" mob AI in the future or something.
+/// Tells the caller how likely from 0 (none) to 100 (always) we are to reflect energy projectiles
+#define BLOCK_RETURN_REFLECT_PROJECTILE_CHANCE "reflect_projectile_chance"
+/// Tells the caller how likely we are to block attacks from 0 to 100 in general
+#define BLOCK_RETURN_NORMAL_BLOCK_CHANCE "normal_block_chance"
+/// Tells the caller about how many hits we can soak on average before our blocking fails.
+#define BLOCK_RETURN_BLOCK_CAPACITY "block_capacity"
+/// Tells the caller we got blocked by active directional block.
+#define BLOCK_RETURN_ACTIVE_BLOCK "active_block"
+/// Tells the caller our damage mitigation for their attack.
+#define BLOCK_RETURN_ACTIVE_BLOCK_DAMAGE_MITIGATED "damage_mitigated"
+/// For [BLOCK_CHANGE_DAMAGE]. Set damage to this.
+#define BLOCK_RETURN_SET_DAMAGE_TO "set_damage_to"
+/// For [BLOCK_SHOULD_PARTIAL_MITIGATE]. Percentage mitigation.
+#define BLOCK_RETURN_MITIGATION_PERCENT "partial_mitigation"
+/// Used internally by run_parry proc, use on an on_active_parry() proc to override parrying efficiency.
+#define BLOCK_RETURN_OVERRIDE_PARRY_EFFICIENCY "override_parry_efficiency"
+/// Always set to 100 by run_block() if BLOCK_SUCCESS is in return value. Otherwise, defaults to mitigation percent if not set. Used by projectile/proc/on_hit().
+#define BLOCK_RETURN_PROJECTILE_BLOCK_PERCENTAGE "projectile_block_percentage"
+
+/// Default if the above isn't set in the list.
+#define DEFAULT_REDIRECT_METHOD_PROJECTILE REDIRECT_METHOD_DEFLECT
+
+/// Block priorities. Higher means it's checked sooner.
+// THESE MUST NEVER BE 0! Block code uses ! instead of isnull for the speed boost.
+#define BLOCK_PRIORITY_ACTIVE_BLOCK 200
+#define BLOCK_PRIORITY_HELD_ITEM 100
+#define BLOCK_PRIORITY_CLOTHING 50
+#define BLOCK_PRIORITY_WEAR_SUIT 75
+#define BLOCK_PRIORITY_UNIFORM 25
+
+#define BLOCK_PRIORITY_DEFAULT BLOCK_PRIORITY_HELD_ITEM
diff --git a/code/__DEFINES/combat/block_parry.dm b/code/__DEFINES/combat/block_parry.dm
new file mode 100644
index 0000000000..d48d7c8713
--- /dev/null
+++ b/code/__DEFINES/combat/block_parry.dm
@@ -0,0 +1,72 @@
+// We can't determine things like NORTHEAST vs NORTH *and* EAST without making our own flags :(
+#define BLOCK_DIR_NORTH (1<<0)
+#define BLOCK_DIR_NORTHEAST (1<<1)
+#define BLOCK_DIR_NORTHWEST (1<<2)
+#define BLOCK_DIR_WEST (1<<3)
+#define BLOCK_DIR_EAST (1<<4)
+#define BLOCK_DIR_SOUTH (1<<5)
+#define BLOCK_DIR_SOUTHEAST (1<<6)
+#define BLOCK_DIR_SOUTHWEST (1<<7)
+#define BLOCK_DIR_ONTOP (1<<8)
+
+GLOBAL_LIST_INIT(dir2blockdir, list(
+ "[NORTH]" = BLOCK_DIR_NORTH,
+ "[NORTHEAST]" = BLOCK_DIR_NORTHEAST,
+ "[NORTHWEST]" = BLOCK_DIR_NORTHWEST,
+ "[WEST]" = BLOCK_DIR_WEST,
+ "[EAST]" = BLOCK_DIR_EAST,
+ "[SOUTH]" = BLOCK_DIR_SOUTH,
+ "[SOUTHEAST]" = BLOCK_DIR_SOUTHEAST,
+ "[SOUTHWEST]" = BLOCK_DIR_SOUTHWEST,
+ "[NONE]" = BLOCK_DIR_ONTOP
+ ))
+
+#define DIR2BLOCKDIR(d) (GLOB.dir2blockdir["[d]"])
+
+GLOBAL_LIST_INIT(block_direction_names, list(
+ "[BLOCK_DIR_NORTH]" = "Front",
+ "[BLOCK_DIR_NORTHEAST]" = "Front Right",
+ "[BLOCK_DIR_NORTHWEST]" = "Front Left",
+ "[BLOCK_DIR_WEST]" = "Left",
+ "[BLOCK_DIR_EAST]" = "Right",
+ "[BLOCK_DIR_SOUTH]" = "Behind",
+ "[BLOCK_DIR_SOUTHEAST]" = "Behind Right",
+ "[BLOCK_DIR_SOUTHWEST]" = "Behind Left",
+ "[BLOCK_DIR_ONTOP]" = "Ontop"
+))
+
+/// If this is the value of active_block_starting it signals we want to interrupt the start
+#define ACTIVE_BLOCK_STARTING_INTERRUPT "INTERRUPT"
+
+/// ""types"" of parry "items"
+#define UNARMED_PARRY "unarmed"
+#define MARTIAL_PARRY "martial"
+#define ITEM_PARRY "item"
+
+/// Parry phase we're in
+#define NOT_PARRYING 0
+#define PARRY_WINDUP 1
+#define PARRY_ACTIVE 2
+#define PARRY_SPINDOWN 3
+
+// /datum/block_parry_data/var/parry_flags
+/// Default handling for audio/visual feedback
+#define PARRY_DEFAULT_HANDLE_FEEDBACK (1<<0)
+/// Lock sprinting while parrying
+#define PARRY_LOCK_SPRINTING (1<<1)
+/// Lock attacking while parrying
+#define PARRY_LOCK_ATTACKING (1<<2)
+
+/// Parry effects.
+/// Automatically melee attacks back normally, LMB equivalent action of an harm intent attack. List association should be defaulting to 1, being the attack damage multiplier for said counterattack
+#define PARRY_COUNTERATTACK_MELEE_ATTACK_CHAIN "melee_counterattack_chain"
+/// List association should be TRUE.
+#define PARRY_DISARM_ATTACKER "disarm_attacker"
+/// List association should be duration or null for just plain knockdown.
+#define PARRY_KNOCKDOWN_ATTACKER "knockdown_attacker"
+/// List association should be duration.
+#define PARRY_STAGGER_ATTACKER "stagger_attacker"
+/// List association should be amount of time to daze attacker.
+#define PARRY_DAZE_ATTACKER "daze_attacker"
+/// Set to TRUE in list association to ignore adjacency checks
+#define PARRY_COUNTERATTACK_IGNORE_ADJACENCY "ignore_adjacency"
diff --git a/code/__DEFINES/construction.dm b/code/__DEFINES/construction.dm
index f1548bbe0f..683681a9a6 100644
--- a/code/__DEFINES/construction.dm
+++ b/code/__DEFINES/construction.dm
@@ -67,7 +67,9 @@
//tablecrafting defines
#define CAT_NONE ""
#define CAT_WEAPONRY "Weaponry"
-#define CAT_WEAPON "Weapons"
+#define CAT_WEAPON "Ranged Weapons"
+#define CAT_MELEE "Melee Weapons"
+#define CAT_OTHER "Misc"
#define CAT_AMMO "Ammunition"
#define CAT_PARTS "Weapon Parts"
#define CAT_ROBOT "Robots"
diff --git a/code/__DEFINES/economy.dm b/code/__DEFINES/economy.dm
index bc9534f527..746267c15b 100644
--- a/code/__DEFINES/economy.dm
+++ b/code/__DEFINES/economy.dm
@@ -33,3 +33,19 @@
#define ID_NO_BANK_ACCOUNT 0
#define ID_FREE_BANK_ACCOUNT 1
#define ID_LOCKED_BANK_ACCOUNT 2
+
+//Some price defines to help standarize the intended vending value of items. Do not bother adding too many examples.
+#define PRICE_FREE 0 // Sustainance/soviet vendor stuff.
+#define PRICE_CHEAP_AS_FREE 10 // Cheap lighters, syringes, soft drinks etc.
+#define PRICE_REALLY_CHEAP 20 // Snacks, hot drinks, tools.
+#define PRICE_PRETTY_CHEAP 30 // Some snacks, beer.
+#define PRICE_CHEAP 40 // Clothings. some electronics
+#define PRICE_ALMOST_CHEAP 60 // Fancy clothing, cig packs, booze-o-mat, seeds, medical.
+#define PRICE_BELOW_NORMAL 80 // Clothesmate and kinkmate premium stuff.
+#define PRICE_NORMAL 100 // Kitchen knife, other stuff.
+#define PRICE_ABOVE_NORMAL 150 // Liberation (capitalism ahoy) and donksoft vendors.
+#define PRICE_ALMOST_EXPENSIVE 200 // Butcher knife, cartridges, some premium stuff.
+#define PRICE_EXPENSIVE 325 // Premium stuff.
+#define PRICE_ABOVE_EXPENSIVE 500 // RCD, Crew pinpointer/monitor, galoshes
+#define PRICE_REALLY_EXPENSIVE 700 // More premium stuff.
+#define PRICE_ALMOST_ONE_GRAND 900 // $$$ Insulated gloves, backpack water-tank spray $$$
diff --git a/code/__DEFINES/flags/do_after.dm b/code/__DEFINES/flags/do_after.dm
new file mode 100644
index 0000000000..26802736cf
--- /dev/null
+++ b/code/__DEFINES/flags/do_after.dm
@@ -0,0 +1,32 @@
+/// Requires absolute stillness from the user
+#define DO_AFTER_DISALLOW_MOVING_ABSOLUTE_USER (1<<0)
+/// Requires absolute stillness from the target
+#define DO_AFTER_DISALLOW_MOVING_ABSOLUTE_TARGET (1<<1)
+/// Requires that the user is on a turf.
+#define DO_AFTER_REQUIRES_USER_ON_TURF (1<<2)
+/// Requires relative stillness to our target via dx and dy coordinate difference but only if both are spacedrifting. Specify DO_AFTER_ALLOW_NONSPACEDRIFT_RELATIVITY to say otherwise.
+#define DO_AFTER_DISALLOW_MOVING_RELATIVE (1<<3)
+/// Breaks if active hand item changes. Requires a tool be specified, otherwise defaults to active item
+#define DO_AFTER_DISALLOW_ACTIVE_ITEM_CHANGE (1<<4)
+/// Breaks if the user has no free hands. If a tool is specified, allows that as well.
+#define DO_AFTER_REQUIRE_FREE_HAND_OR_TOOL (1<<5)
+/// Do not display progressbar.
+#define DO_AFTER_NO_PROGRESSBAR (1<<6)
+/// Do not check do_after_coefficient()
+#define DO_AFTER_NO_COEFFICIENT (1<<7)
+/// For relative stillness, allow non spacedrift relative movement
+#define DO_AFTER_ALLOW_NONSPACEDRIFT_RELATIVITY (1<<8)
+
+/// Ignores checks.
+#define DO_AFTER_PROCEED "PROCEED"
+/// Uses all other checks
+#define DO_AFTER_CONTINUE "CONTINUE"
+/// Breaks
+#define DO_AFTER_STOP "STOP"
+
+/// Stage - initiating a do_after
+#define DO_AFTER_STARTING 1
+/// Stage - main loop of a do_after
+#define DO_AFTER_PROGRESSING 2
+/// Stage - Last check of a do_after
+#define DO_AFTER_FINISHING 3
diff --git a/code/__DEFINES/is_helpers.dm b/code/__DEFINES/is_helpers.dm
index 28ec3383ae..c55662e86f 100644
--- a/code/__DEFINES/is_helpers.dm
+++ b/code/__DEFINES/is_helpers.dm
@@ -1,3 +1,6 @@
+/// Checks if something is a BYOND object datatype rather than a primitive, or whatever's closest to one.
+#define is_object_datatype(object) (object && !ispath(object) && !istext(object) && !isnum(object))
+
// simple is_type and similar inline helpers
#define in_range(source, user) (get_dist(source, user) <= 1 && (get_step(source, 0)?:z) == (get_step(user, 0)?:z))
diff --git a/code/__DEFINES/movespeed_modification.dm b/code/__DEFINES/movespeed_modification.dm
index 1f3ae63940..699f39e79f 100644
--- a/code/__DEFINES/movespeed_modification.dm
+++ b/code/__DEFINES/movespeed_modification.dm
@@ -8,5 +8,68 @@
//ids
#define MOVESPEED_ID_SANITY "mood_sanity"
-#define MOVESPEED_ID_MOB_GRAB_STATE "mob_grab_state"
+#define MOVESPEED_ID_MOB_WALK_RUN_CONFIG_SPEED "MOB_WALK_RUN"
+#define MOVESPEED_ID_MOB_GRAB_STATE "MOB_GRAB_STATE"
+#define MOVESPEED_ID_MOB_EQUIPMENT "MOB_EQUIPMENT"
+#define MOVESPEED_ID_MOB_GRAVITY "MOB_GRAVITY"
+#define MOVESPEED_ID_CONFIG_SPEEDMOD "MOB_CONFIG_MODIFIER"
+
+#define MOVESPEED_ID_SLIME_REAGENTMOD "SLIME_REAGENT_MODIFIER"
+#define MOVESPEED_ID_SLIME_HEALTHMOD "SLIME_HEALTH_MODIFIER"
+#define MOVESPEED_ID_SLIME_TEMPMOD "SLIME_TEMPERATURE_MODIFIER"
+
+#define MOVESPEED_ID_SLIME_STATUS "SLIME_STATUS"
+
+#define MOVESPEED_ID_TARANTULA_WEB "TARANTULA_WEB"
+
+#define MOVESPEED_ID_LIVING_TURF_SPEEDMOD "LIVING_TURF_SPEEDMOD"
+#define MOVESPEED_ID_LIVING_LIMBLESS "LIVING_LIMBLESS"
+
+#define MOVESPEED_ID_CARBON_SOFTCRIT "CARBON_SOFTCRIT"
+#define MOVESPEED_ID_CARBON_OLDSPEED "CARBON_DEPRECATED_SPEED"
+
+#define MOVESPEED_ID_DNA_VAULT "DNA_VAULT"
+
+#define MOVESPEED_ID_YELLOW_ORB "YELLOW_ORB"
+
+#define MOVESPEED_ID_TARFOOT "TARFOOT"
+
+#define MOVESPEED_ID_SEPIA "SEPIA"
+
+#define MOVESPEED_ID_MONKEY_REAGENT_SPEEDMOD "MONKEY_REAGENT_SPEEDMOD"
+#define MOVESPEED_ID_MONKEY_TEMPERATURE_SPEEDMOD "MONKEY_TEMPERATURE_SPEEDMOD"
+#define MOVESPEED_ID_MONKEY_HEALTH_SPEEDMOD "MONKEY_HEALTH_SPEEDMOD"
+
+#define MOVESPEED_ID_CHANGELING_MUSCLES "CHANGELING_MUSCLES"
+
+#define MOVESPEED_ID_SIMPLEMOB_VARSPEED "SIMPLEMOB_VARSPEED_MODIFIER"
+#define MOVESPEED_ID_ADMIN_VAREDIT "ADMIN_VAREDIT_MODIFIER"
+
+#define MOVESPEED_ID_PAI_SPACEWALK_SPEEDMOD "PAI_SPACEWALK_MODIFIER"
+
+#define MOVESPEED_ID_SPECIES "SPECIES_SPEED_MOD"
+
+#define MOVESPEED_ID_PRONE_DRAGGING "PRONE_DRAG"
+#define MOVESPEED_ID_HUMAN_CARRYING "HUMAN_CARRY"
+#define MOVESPEED_ID_SHRINK_RAY "SHRUNKEN_SPEED_MODIFIER"
+
+#define MOVESPEED_ID_SLAUGHTER "SLAUGHTER"
+
+#define MOVESPEED_ID_CYBER_THRUSTER "CYBER_IMPLANT_THRUSTER"
+#define MOVESPEED_ID_JETPACK "JETPACK"
+
+#define MOVESPEED_ID_MKULTRA "MKULTRA"
+
+#define MOVESPEED_ID_TASED_STATUS "TASED"
+#define MOVESPEED_ID_ELECTROSTAFF "ELECTROSTAFF"
+
+#define MOVESPEED_ID_SHOVE "SHOVE"
+#define MOVESPEED_ID_FAT "FAT"
+#define MOVESPEED_ID_COLD "COLD"
+#define MOVESPEED_ID_HUNGRY "HUNGRY"
+#define MOVESPEED_ID_DAMAGE_SLOWDOWN "DAMAGE"
+#define MOVESPEED_ID_DAMAGE_SLOWDOWN_FLYING "FLYING"
+
+#define MOVESPEED_ID_ACTIVE_BLOCK "ACTIVE_BLOCK"
+
#define MOVESPEED_ID_MOB_WALK_RUN "mob_walk_run"
diff --git a/code/__DEFINES/projectiles.dm b/code/__DEFINES/projectiles.dm
new file mode 100644
index 0000000000..1bd67fbe02
--- /dev/null
+++ b/code/__DEFINES/projectiles.dm
@@ -0,0 +1,14 @@
+/// This atom should be ricocheted off of from its inherent properties using standard % chance handling.
+#define PROJECTILE_RICOCHET_YES 1
+/// This atom should not be ricocheted off of from its inherent properties.
+#define PROJECTILE_RICOCHET_NO 2
+/// This atom should prevent any kind of projectile ricochet from its inherent properties.
+#define PROJECTILE_RICOCHET_PREVENT 3
+/// This atom should force a projectile ricochet from its inherent properties.
+#define PROJECTILE_RICOCHET_FORCE 4
+
+//bullet_act() return values
+#define BULLET_ACT_HIT "HIT" //It's a successful hit, whatever that means in the context of the thing it's hitting.
+#define BULLET_ACT_BLOCK "BLOCK" //It's a blocked hit, whatever that means in the context of the thing it's hitting.
+#define BULLET_ACT_FORCE_PIERCE "PIERCE" //It pierces through the object regardless of the bullet being piercing by default.
+#define BULLET_ACT_TURF "TURF" //It hit us but it should hit something on the same turf too. Usually used for turfs.
diff --git a/code/__DEFINES/storage/volumetrics.dm b/code/__DEFINES/storage/volumetrics.dm
index d5da40a722..c3f45976ce 100644
--- a/code/__DEFINES/storage/volumetrics.dm
+++ b/code/__DEFINES/storage/volumetrics.dm
@@ -24,7 +24,7 @@ GLOBAL_LIST_INIT(default_weight_class_to_volume, list(
// Let's keep all of this in one place. given what we put above anyways..
// volume amount for items
-#define ITEM_VOLUME_DISK DEFAULT_VOLUME_TINY
+#define ITEM_VOLUME_DISK 1
// #define SAMPLE_VOLUME_AMOUNT 2
diff --git a/code/__DEFINES/time.dm b/code/__DEFINES/time.dm
index 9233a69108..01990ddc17 100644
--- a/code/__DEFINES/time.dm
+++ b/code/__DEFINES/time.dm
@@ -39,6 +39,8 @@ When using time2text(), please use "DDD" to find the weekday. Refrain from using
#define SATURDAY "Sat"
#define SUNDAY "Sun"
+#define WEEKDAY2NUM(D) (D == SUNDAY ? 1 : D == MONDAY ? 2 : D == TUESDAY ? 3 : D == WEDNESDAY ? 4 : D == THURSDAY ? 5 : D == FRIDAY ? 6 : 7) //this looks ugly, but switch statements can't be used as vars, so *shrug
+
#define SECONDS *10
#define MINUTES SECONDS*60
diff --git a/code/__DEFINES/traits.dm b/code/__DEFINES/traits.dm
index 74470cf72e..f3f9f1e8b5 100644
--- a/code/__DEFINES/traits.dm
+++ b/code/__DEFINES/traits.dm
@@ -67,6 +67,8 @@
#define TRAIT_BLIND "blind"
#define TRAIT_MUTE "mute"
#define TRAIT_EMOTEMUTE "emotemute"
+#define TRAIT_LOOC_MUTE "looc_mute" //Just like unconsciousness, it disables LOOC salt.
+#define TRAIT_AOOC_MUTE "aooc_mute" //Same as above but for AOOC.
#define TRAIT_DEAF "deaf"
#define TRAIT_NEARSIGHT "nearsighted"
#define TRAIT_FAT "fat"
@@ -254,7 +256,7 @@
#define BOOK_TRAIT "granter (book)" // knowledge is power
// unique trait sources, still defines
-#define STATUE_MUTE "statue"
+#define STATUE_TRAIT "statue"
#define CLONING_POD_TRAIT "cloning-pod"
#define VIRTUAL_REALITY_TRAIT "vr_trait"
#define CHANGELING_DRAIN "drain"
@@ -295,3 +297,7 @@
#define CLOWNOP_TRAIT "clown-op"
#define MEGAFAUNA_TRAIT "megafauna"
#define DEATHSQUAD_TRAIT "deathsquad"
+/// This trait is added by the active directional block system.
+#define ACTIVE_BLOCK_TRAIT "active_block"
+/// This trait is added by the parry system.
+#define ACTIVE_PARRY_TRAIT "active_parry"
diff --git a/code/__HELPERS/cmp.dm b/code/__HELPERS/cmp.dm
index 9b877e8fb0..5fb4d05d42 100644
--- a/code/__HELPERS/cmp.dm
+++ b/code/__HELPERS/cmp.dm
@@ -104,7 +104,7 @@ GLOBAL_VAR_INIT(cmp_field, "name")
var/a_sign = num2sign(initial(A.value) * -1)
var/b_sign = num2sign(initial(B.value) * -1)
- // Neutral traits go last.
+ // Neutral traits go last
if(a_sign == 0)
a_sign = 2
if(b_sign == 0)
diff --git a/code/__HELPERS/do_after.dm b/code/__HELPERS/do_after.dm
new file mode 100644
index 0000000000..f1f483c345
--- /dev/null
+++ b/code/__HELPERS/do_after.dm
@@ -0,0 +1,323 @@
+/**
+ * Higher overhead "advanced" version of do_after.
+ * @params
+ * - atom/user is the atom doing the action or the "physical" user
+ * - delay is time in deciseconds
+ * - atom/target is the atom the action is being done to, defaults to user
+ * - do_after_flags see __DEFINES/flags/do_after.dm for details.
+ * - datum/callback/extra_checks - Every time this ticks, extra_checks() is invoked with (user, delay, target, time_left, do_after_flags, required_mobility_flags, required_combat_flags, mob_redirect, stage, initially_held_item, tool).
+ * Stage can be DO_AFTER_STARTING, DO_AFTER_PROGRESSING, DO_AFTER_FINISHING
+ * If it returns DO_AFTER_STOP, this breaks.
+ * If it returns nothing, all other checks are done.
+ * If it returns DO_AFTER_PROCEED, all other checks are ignored.
+ * - required_mobility_flags is checked with CHECK_ALL_MOBILITY. Will immediately fail if the user isn't a mob.
+ * - requried_combat_flags is checked with CHECK_MULTIPLE_BITFIELDS. Will immediately fail if the user isn't a mob.
+ * - mob/living/mob_redirect - advanced option: If this is specified, movement and mobility/combat flag checks will use this instead of user. Progressbars will also go to this.
+ * - obj/item/tool - The tool we're using. See do_after flags for details.
+ */
+#define INVOKE_CALLBACK cb_return = extra_checks?.Invoke(user, delay, target, world.time - starttime, do_after_flags, required_mobility_flags, required_combat_flags, mob_redirect, stage, initially_held_item, tool)
+#define CHECK_FLAG_FAILURE ((required_mobility_flags || required_combat_flags) && (!living_user || (required_mobility_flags && !CHECK_ALL_MOBILITY(living_user, required_mobility_flags)) || (required_combat_flags && !CHECK_MULTIPLE_BITFIELDS(living_user.combat_flags, required_combat_flags))))
+#define TIMELEFT (world.time - starttime)
+/proc/do_after_advanced(atom/user, delay, atom/target, do_after_flags, datum/callback/extra_checks, required_mobility_flags, required_combat_flags, mob/living/mob_redirect, obj/item/tool)
+ // CHECK AND SET VARIABLES
+ if(!user)
+ return FALSE
+ if(!target)
+ target = user
+ if((user.loc == null) || (target.loc == null))
+ return FALSE
+ var/mob/living/living_user = mob_redirect
+ if(!living_user && isliving(user))
+ living_user = user
+ var/stage = DO_AFTER_STARTING
+ var/startlocuser = user.loc
+ var/startloctarget = target.loc
+ var/turf/userturf = get_turf(user)
+ var/turf/targetturf = get_turf(target)
+ if(!userturf || !targetturf)
+ return FALSE
+ if((do_after_flags & DO_AFTER_REQUIRES_USER_ON_TURF) && !isturf(user.loc))
+ return FALSE
+ var/starttime = world.time
+ var/endtime = world.time + delay
+ var/obj/item/initially_held_item = mob_redirect?.get_active_held_item()
+ if(!(do_after_flags & DO_AFTER_NO_COEFFICIENT) && living_user)
+ delay *= living_user.do_after_coefficent()
+ var/atom/movable/AM_user = ismovable(user) && user
+ var/drifting = AM_user?.Process_Spacemove(NONE) && AM_user.inertia_dir
+ var/initial_dx = targetturf.x - userturf.x
+ var/initial_dy = targetturf.y - userturf.y
+ var/dx = initial_dx
+ var/dy = initial_dy
+ // DO OUR STARTING CHECKS
+ var/cb_return
+ INVOKE_CALLBACK
+ if(cb_return == DO_AFTER_STOP)
+ return FALSE
+ else if(cb_return != DO_AFTER_PROCEED)
+ if(CHECK_FLAG_FAILURE)
+ return FALSE
+ // SETUP LOOP
+ var/datum/progressbar/progbar
+ if(living_user)
+ if(!(do_after_flags & DO_AFTER_NO_PROGRESSBAR))
+ progbar = new(living_user, delay, target)
+ // MAIN LOOP
+ . = TRUE
+ if(!delay)
+ return
+ var/obj/item/held
+ var/locchanged
+ var/ctu
+ var/ctt
+ while(world.time < endtime)
+ stoplag(1)
+ progbar?.update(TIMELEFT)
+ if(QDELETED(user) || QDELETED(target) || (user.loc == null) || (target.loc == null))
+ . = FALSE
+ break
+ INVOKE_CALLBACK
+ if(cb_return == DO_AFTER_STOP)
+ . = FALSE
+ break
+ else if(cb_return == DO_AFTER_PROCEED)
+ continue
+ // otherwise, go through our normal checks.
+ if(((do_after_flags & DO_AFTER_DISALLOW_MOVING_ABSOLUTE_USER) && (user.loc != startlocuser)) || ((do_after_flags & DO_AFTER_DISALLOW_MOVING_ABSOLUTE_TARGET) && (target.loc != startloctarget)))
+ . = FALSE
+ break
+ else if(do_after_flags & DO_AFTER_DISALLOW_MOVING_RELATIVE)
+ ctu = get_turf(user)
+ ctt = get_turf(target)
+ locchanged = (userturf != ctu) || (targetturf != ctt)
+ userturf = ctu
+ targetturf = ctt
+ dx = targetturf.x - userturf.x
+ dy = targetturf.y - userturf.y
+ if((dx != initial_dx) || (dy != initial_dy))
+ . = FALSE
+ break
+ if(locchanged && !drifting && !(do_after_flags & DO_AFTER_ALLOW_NONSPACEDRIFT_RELATIVITY))
+ . = FALSE
+ break
+ if(!AM_user.inertia_dir)
+ drifting = FALSE
+ if((do_after_flags & DO_AFTER_REQUIRES_USER_ON_TURF) && !isturf(user.loc))
+ return FALSE
+ if(CHECK_FLAG_FAILURE)
+ . = FALSE
+ break
+ held = living_user?.get_active_held_item()
+ if((do_after_flags & DO_AFTER_DISALLOW_ACTIVE_ITEM_CHANGE) && (held != (tool || initially_held_item)))
+ . = FALSE
+ break
+ if((do_after_flags & DO_AFTER_REQUIRE_FREE_HAND_OR_TOOL) && (!living_user?.is_holding(tool) && !length(living_user?.get_empty_held_indexes())))
+ . = FALSE
+ break
+
+ // CLEANUP
+ qdel(progbar)
+ // If we failed, just return.
+ if(!.)
+ return FALSE
+ // DO FINISHING CHECKS
+ if(QDELETED(user) || QDELETED(target))
+ return FALSE
+ INVOKE_CALLBACK
+ if(cb_return == DO_AFTER_STOP)
+ return FALSE
+ else if(cb_return == DO_AFTER_PROCEED)
+ return TRUE
+ if(CHECK_FLAG_FAILURE)
+ return FALSE
+ if(((do_after_flags & DO_AFTER_DISALLOW_MOVING_ABSOLUTE_USER) && (user.loc != startlocuser)) || ((do_after_flags & DO_AFTER_DISALLOW_MOVING_ABSOLUTE_TARGET) && (target.loc != startloctarget)))
+ return FALSE
+ else if(do_after_flags & DO_AFTER_DISALLOW_MOVING_RELATIVE)
+ ctu = get_turf(user)
+ ctt = get_turf(target)
+ locchanged = (userturf != ctu) || (targetturf != ctt)
+ userturf = ctu
+ targetturf = ctt
+ dx = targetturf.x - userturf.x
+ dy = targetturf.y - userturf.y
+ if((dx != initial_dx) || (dy != initial_dy))
+ return FALSE
+ if(locchanged && !drifting && !(do_after_flags & DO_AFTER_ALLOW_NONSPACEDRIFT_RELATIVITY))
+ return FALSE
+ if((do_after_flags & DO_AFTER_REQUIRES_USER_ON_TURF) && !isturf(user.loc))
+ return FALSE
+ held = living_user?.get_active_held_item()
+ if((do_after_flags & DO_AFTER_DISALLOW_ACTIVE_ITEM_CHANGE) && (held != (tool || initially_held_item)))
+ return FALSE
+ if((do_after_flags & DO_AFTER_REQUIRE_FREE_HAND_OR_TOOL) && (!living_user?.is_holding(tool) && !length(living_user?.get_empty_held_indexes())))
+ return FALSE
+
+#undef INVOKE_CALLBACK
+#undef CHECK_FLAG_FAILURE
+
+/proc/do_mob(mob/user , mob/target, time = 30, uninterruptible = 0, progress = 1, datum/callback/extra_checks = null, ignorehelditem = FALSE, resume_time = 0 SECONDS)
+ if(!user || !target)
+ return 0
+ var/user_loc = user.loc
+
+ var/drifting = 0
+ if(!user.Process_Spacemove(0) && user.inertia_dir)
+ drifting = 1
+
+ var/target_loc = target.loc
+
+ var/holding = user.get_active_held_item()
+ var/datum/progressbar/progbar
+ if (progress)
+ progbar = new(user, time, target)
+
+ var/endtime = world.time+time
+ var/starttime = world.time
+ . = 1
+ while (world.time + resume_time < endtime)
+ stoplag(1)
+ if (progress)
+ progbar.update(world.time - starttime + resume_time)
+ if(QDELETED(user) || QDELETED(target))
+ . = 0
+ break
+ if(uninterruptible)
+ continue
+
+ if(drifting && !user.inertia_dir)
+ drifting = 0
+ user_loc = user.loc
+
+ if((!drifting && user.loc != user_loc) || target.loc != target_loc || (!ignorehelditem && user.get_active_held_item() != holding) || user.incapacitated() || user.lying || (extra_checks && !extra_checks.Invoke()))
+ . = 0
+ break
+ if (progress)
+ qdel(progbar)
+
+
+//some additional checks as a callback for for do_afters that want to break on losing health or on the mob taking action
+/mob/proc/break_do_after_checks(list/checked_health, check_clicks)
+ if(check_clicks && next_move > world.time)
+ return FALSE
+ return TRUE
+
+//pass a list in the format list("health" = mob's health var) to check health during this
+/mob/living/break_do_after_checks(list/checked_health, check_clicks)
+ if(islist(checked_health))
+ if(health < checked_health["health"])
+ return FALSE
+ checked_health["health"] = health
+ return ..()
+
+/proc/do_after(mob/user, var/delay, needhand = 1, atom/target = null, progress = 1, datum/callback/extra_checks = null, required_mobility_flags = (MOBILITY_USE|MOBILITY_MOVE), resume_time = 0 SECONDS)
+ if(!user)
+ return 0
+ var/atom/Tloc = null
+ if(target && !isturf(target))
+ Tloc = target.loc
+
+ var/atom/Uloc = user.loc
+
+ var/drifting = 0
+ if(!user.Process_Spacemove(0) && user.inertia_dir)
+ drifting = 1
+
+ var/holding = user.get_active_held_item()
+
+ var/holdingnull = 1 //User's hand started out empty, check for an empty hand
+ if(holding)
+ holdingnull = 0 //Users hand started holding something, check to see if it's still holding that
+
+ delay *= user.do_after_coefficent()
+
+ var/datum/progressbar/progbar
+ if (progress)
+ progbar = new(user, delay, target)
+
+ var/endtime = world.time + delay
+ var/starttime = world.time
+ . = 1
+ var/mob/living/L = isliving(user) && user //evals to last thing eval'd
+ while (world.time + resume_time < endtime)
+ stoplag(1)
+ if (progress)
+ progbar.update(world.time - starttime + resume_time)
+
+ if(drifting && !user.inertia_dir)
+ drifting = 0
+ Uloc = user.loc
+
+ if(L && !CHECK_ALL_MOBILITY(L, required_mobility_flags))
+ . = 0
+ break
+
+ if(QDELETED(user) || user.stat || (!drifting && user.loc != Uloc) || (extra_checks && !extra_checks.Invoke()))
+ . = 0
+ break
+
+ if(!QDELETED(Tloc) && (QDELETED(target) || Tloc != target.loc))
+ if((Uloc != Tloc || Tloc != user) && !drifting)
+ . = 0
+ break
+
+ if(needhand)
+ //This might seem like an odd check, but you can still need a hand even when it's empty
+ //i.e the hand is used to pull some item/tool out of the construction
+ if(!holdingnull)
+ if(!holding)
+ . = 0
+ break
+ if(user.get_active_held_item() != holding)
+ . = 0
+ break
+ if (progress)
+ qdel(progbar)
+
+/mob/proc/do_after_coefficent() // This gets added to the delay on a do_after, default 1
+ . = 1
+ return
+
+/proc/do_after_mob(mob/user, var/list/targets, time = 30, uninterruptible = 0, progress = 1, datum/callback/extra_checks)
+ if(!user || !targets)
+ return 0
+ if(!islist(targets))
+ targets = list(targets)
+ var/user_loc = user.loc
+
+ var/drifting = 0
+ if(!user.Process_Spacemove(0) && user.inertia_dir)
+ drifting = 1
+
+ var/list/originalloc = list()
+ for(var/atom/target in targets)
+ originalloc[target] = target.loc
+
+ var/holding = user.get_active_held_item()
+ var/datum/progressbar/progbar
+ if(progress)
+ progbar = new(user, time, targets[1])
+
+ var/endtime = world.time + time
+ var/starttime = world.time
+ . = 1
+ mainloop:
+ while(world.time < endtime)
+ stoplag(1)
+ if(progress)
+ progbar.update(world.time - starttime)
+ if(QDELETED(user) || !targets)
+ . = 0
+ break
+ if(uninterruptible)
+ continue
+
+ if(drifting && !user.inertia_dir)
+ drifting = 0
+ user_loc = user.loc
+
+ for(var/atom/target in targets)
+ if((!drifting && user_loc != user.loc) || QDELETED(target) || originalloc[target] != target.loc || user.get_active_held_item() != holding || user.incapacitated() || user.lying || (extra_checks && !extra_checks.Invoke()))
+ . = 0
+ break mainloop
+ if(progbar)
+ qdel(progbar)
diff --git a/code/__HELPERS/mobs.dm b/code/__HELPERS/mobs.dm
index e62bcc6738..91826ee314 100644
--- a/code/__HELPERS/mobs.dm
+++ b/code/__HELPERS/mobs.dm
@@ -320,173 +320,6 @@ GLOBAL_LIST_EMPTY(species_list)
else
return "unknown"
-/proc/do_mob(mob/user , mob/target, time = 30, uninterruptible = 0, progress = 1, datum/callback/extra_checks = null, ignorehelditem = FALSE, resume_time = 0 SECONDS)
- if(!user || !target)
- return 0
- var/user_loc = user.loc
-
- var/drifting = 0
- if(!user.Process_Spacemove(0) && user.inertia_dir)
- drifting = 1
-
- var/target_loc = target.loc
-
- var/holding = user.get_active_held_item()
- var/datum/progressbar/progbar
- if (progress)
- progbar = new(user, time, target)
-
- var/endtime = world.time+time
- var/starttime = world.time
- . = 1
- while (world.time + resume_time < endtime)
- stoplag(1)
- if (progress)
- progbar.update(world.time - starttime + resume_time)
- if(QDELETED(user) || QDELETED(target))
- . = 0
- break
- if(uninterruptible)
- continue
-
- if(drifting && !user.inertia_dir)
- drifting = 0
- user_loc = user.loc
-
- if((!drifting && user.loc != user_loc) || target.loc != target_loc || (!ignorehelditem && user.get_active_held_item() != holding) || user.incapacitated() || user.lying || (extra_checks && !extra_checks.Invoke()))
- . = 0
- break
- if (progress)
- qdel(progbar)
-
-
-//some additional checks as a callback for for do_afters that want to break on losing health or on the mob taking action
-/mob/proc/break_do_after_checks(list/checked_health, check_clicks)
- if(check_clicks && next_move > world.time)
- return FALSE
- return TRUE
-
-//pass a list in the format list("health" = mob's health var) to check health during this
-/mob/living/break_do_after_checks(list/checked_health, check_clicks)
- if(islist(checked_health))
- if(health < checked_health["health"])
- return FALSE
- checked_health["health"] = health
- return ..()
-
-/proc/do_after(mob/user, var/delay, needhand = 1, atom/target = null, progress = 1, datum/callback/extra_checks = null, required_mobility_flags = (MOBILITY_USE|MOBILITY_MOVE), resume_time = 0 SECONDS)
- if(!user)
- return 0
- var/atom/Tloc = null
- if(target && !isturf(target))
- Tloc = target.loc
-
- var/atom/Uloc = user.loc
-
- var/drifting = 0
- if(!user.Process_Spacemove(0) && user.inertia_dir)
- drifting = 1
-
- var/holding = user.get_active_held_item()
-
- var/holdingnull = 1 //User's hand started out empty, check for an empty hand
- if(holding)
- holdingnull = 0 //Users hand started holding something, check to see if it's still holding that
-
- delay *= user.do_after_coefficent()
-
- var/datum/progressbar/progbar
- if (progress)
- progbar = new(user, delay, target)
-
- var/endtime = world.time + delay
- var/starttime = world.time
- . = 1
- var/mob/living/L = isliving(user) && user //evals to last thing eval'd
- while (world.time + resume_time < endtime)
- stoplag(1)
- if (progress)
- progbar.update(world.time - starttime + resume_time)
-
- if(drifting && !user.inertia_dir)
- drifting = 0
- Uloc = user.loc
-
- if(L && !CHECK_ALL_MOBILITY(L, required_mobility_flags))
- . = 0
- break
-
- if(QDELETED(user) || user.stat || (!drifting && user.loc != Uloc) || (extra_checks && !extra_checks.Invoke()))
- . = 0
- break
-
- if(!QDELETED(Tloc) && (QDELETED(target) || Tloc != target.loc))
- if((Uloc != Tloc || Tloc != user) && !drifting)
- . = 0
- break
-
- if(needhand)
- //This might seem like an odd check, but you can still need a hand even when it's empty
- //i.e the hand is used to pull some item/tool out of the construction
- if(!holdingnull)
- if(!holding)
- . = 0
- break
- if(user.get_active_held_item() != holding)
- . = 0
- break
- if (progress)
- qdel(progbar)
-
-/mob/proc/do_after_coefficent() // This gets added to the delay on a do_after, default 1
- . = 1
- return
-
-/proc/do_after_mob(mob/user, var/list/targets, time = 30, uninterruptible = 0, progress = 1, datum/callback/extra_checks)
- if(!user || !targets)
- return 0
- if(!islist(targets))
- targets = list(targets)
- var/user_loc = user.loc
-
- var/drifting = 0
- if(!user.Process_Spacemove(0) && user.inertia_dir)
- drifting = 1
-
- var/list/originalloc = list()
- for(var/atom/target in targets)
- originalloc[target] = target.loc
-
- var/holding = user.get_active_held_item()
- var/datum/progressbar/progbar
- if(progress)
- progbar = new(user, time, targets[1])
-
- var/endtime = world.time + time
- var/starttime = world.time
- . = 1
- mainloop:
- while(world.time < endtime)
- stoplag(1)
- if(progress)
- progbar.update(world.time - starttime)
- if(QDELETED(user) || !targets)
- . = 0
- break
- if(uninterruptible)
- continue
-
- if(drifting && !user.inertia_dir)
- drifting = 0
- user_loc = user.loc
-
- for(var/atom/target in targets)
- if((!drifting && user_loc != user.loc) || QDELETED(target) || originalloc[target] != target.loc || user.get_active_held_item() != holding || user.incapacitated() || user.lying || (extra_checks && !extra_checks.Invoke()))
- . = 0
- break mainloop
- if(progbar)
- qdel(progbar)
-
/proc/is_species(A, species_datum)
. = FALSE
if(ishuman(A))
diff --git a/code/_globalvars/bitfields.dm b/code/_globalvars/bitfields.dm
index e038596151..c3004a4501 100644
--- a/code/_globalvars/bitfields.dm
+++ b/code/_globalvars/bitfields.dm
@@ -49,6 +49,8 @@ GLOBAL_LIST_INIT(bitfields, list(
"DROPDEL" = DROPDEL,
"NOBLUDGEON" = NOBLUDGEON,
"ABSTRACT" = ABSTRACT,
+ "ITEM_CAN_BLOCK" = ITEM_CAN_BLOCK,
+ "ITEM_CAN_PARRY" = ITEM_CAN_PARRY
),
"admin_flags" = list(
"BUILDMODE" = R_BUILDMODE,
@@ -123,7 +125,7 @@ GLOBAL_LIST_INIT(bitfields, list(
"UNUSED_RESERVATION_TURF_1" = UNUSED_RESERVATION_TURF_1,
"CAN_BE_DIRTY_1" = CAN_BE_DIRTY_1,
"HEAR_1" = HEAR_1,
- "CHECK_RICOCHET_1" = CHECK_RICOCHET_1,
+ "DEFAULT_RICOCHET_1" = DEFAULT_RICOCHET_1,
"CONDUCT_1" = CONDUCT_1,
"NO_LAVA_GEN_1" = NO_LAVA_GEN_1,
"NODECONSTRUCT_1" = NODECONSTRUCT_1,
diff --git a/code/_globalvars/lists/maintenance_loot.dm b/code/_globalvars/lists/maintenance_loot.dm
index 30321f5546..396eb87723 100644
--- a/code/_globalvars/lists/maintenance_loot.dm
+++ b/code/_globalvars/lists/maintenance_loot.dm
@@ -118,3 +118,21 @@ GLOBAL_LIST_INIT(maintenance_loot, list(
/obj/item/clothing/gloves/tackler/offbrand = 1,
"" = 3
))
+
+GLOBAL_LIST_INIT(ratking_trash, list(//Garbage: used by the regal rat mob when spawning garbage.
+ /obj/item/cigbutt,
+ /obj/item/trash/cheesie,
+ /obj/item/trash/candy,
+ /obj/item/trash/chips,
+ /obj/item/trash/pistachios,
+ /obj/item/trash/plate,
+ /obj/item/trash/popcorn,
+ /obj/item/trash/raisins,
+ /obj/item/trash/sosjerky,
+ /obj/item/trash/syndi_cakes))
+
+GLOBAL_LIST_INIT(ratking_coins, list(//Coins: Used by the regal rat mob when spawning coins.
+ /obj/item/coin/iron,
+ /obj/item/coin/silver,
+ /obj/item/coin/plastic,
+ /obj/item/coin/titanium))
\ No newline at end of file
diff --git a/code/_onclick/click.dm b/code/_onclick/click.dm
index 357f317450..ecbcb6ec01 100644
--- a/code/_onclick/click.dm
+++ b/code/_onclick/click.dm
@@ -17,6 +17,9 @@
// eg: 10*0.5 = 5 deciseconds of delay
// DOES NOT EFFECT THE BASE 1 DECISECOND DELAY OF NEXT_CLICK
+/mob/proc/timeToNextMove()
+ return max(0, next_move - world.time)
+
/mob/proc/changeNext_move(num)
next_move = world.time + ((num+next_move_adjust)*next_move_modifier)
diff --git a/code/_onclick/item_attack.dm b/code/_onclick/item_attack.dm
index b2d74844cf..106db7f40a 100644
--- a/code/_onclick/item_attack.dm
+++ b/code/_onclick/item_attack.dm
@@ -7,17 +7,17 @@
*and lastly
*afterattack. The return value does not matter.
*/
-/obj/item/proc/melee_attack_chain(mob/user, atom/target, params)
+/obj/item/proc/melee_attack_chain(mob/user, atom/target, params, flags, damage_multiplier = 1)
if(isliving(user))
var/mob/living/L = user
- if(!CHECK_MOBILITY(L, MOBILITY_USE))
+ if(!CHECK_MOBILITY(L, MOBILITY_USE) && !(flags & ATTACKCHAIN_PARRY_COUNTERATTACK))
to_chat(L, "You are unable to swing [src] right now!")
return
if(tool_behaviour && target.tool_act(user, src, tool_behaviour))
return
if(pre_attack(target, user, params))
return
- if(target.attackby(src,user, params))
+ if(target.attackby(src, user, params, flags, damage_multiplier))
return
if(QDELETED(src) || QDELETED(target))
return
@@ -52,15 +52,15 @@
/obj/attackby(obj/item/I, mob/living/user, params)
return ..() || ((obj_flags & CAN_BE_HIT) && I.attack_obj(src, user))
-/mob/living/attackby(obj/item/I, mob/living/user, params)
+/mob/living/attackby(obj/item/I, mob/living/user, params, attackchain_flags, damage_multiplier)
if(..())
return TRUE
I.attack_delay_done = FALSE //Should be set TRUE in pre_attacked_by()
- . = I.attack(src, user)
+ . = I.attack(src, user, attackchain_flags, damage_multiplier)
if(!I.attack_delay_done) //Otherwise, pre_attacked_by() should handle it.
user.changeNext_move(I.click_delay)
-/obj/item/proc/attack(mob/living/M, mob/living/user)
+/obj/item/proc/attack(mob/living/M, mob/living/user, attackchain_flags = NONE, damage_multiplier = 1)
if(SEND_SIGNAL(src, COMSIG_ITEM_ATTACK, M, user) & COMPONENT_ITEM_NO_ATTACK)
return
SEND_SIGNAL(user, COMSIG_MOB_ITEM_ATTACK, M, user)
@@ -79,7 +79,7 @@
M.lastattackerckey = user.ckey
user.do_attack_animation(M)
- M.attacked_by(src, user)
+ M.attacked_by(src, user, attackchain_flags, damage_multiplier)
log_combat(user, M, "attacked", src.name, "(INTENT: [uppertext(user.a_intent)]) (DAMTYPE: [uppertext(damtype)])")
add_fingerprint(user)
@@ -104,8 +104,8 @@
/atom/movable/proc/attacked_by()
return
-/obj/attacked_by(obj/item/I, mob/living/user)
- var/totitemdamage = I.force
+/obj/attacked_by(obj/item/I, mob/living/user, attackchain_flags = NONE, damage_multiplier = 1)
+ var/totitemdamage = I.force * damage_multiplier
var/bad_trait
var/stamloss = user.getStaminaLoss()
@@ -134,10 +134,12 @@
take_damage(totitemdamage, I.damtype, "melee", 1)
return TRUE
-/mob/living/attacked_by(obj/item/I, mob/living/user)
- var/totitemdamage = pre_attacked_by(I, user)
- if((user != src) && mob_run_block(I, totitemdamage, "the [I.name]", ATTACK_TYPE_MELEE, I.armour_penetration, user, null, null) & BLOCK_SUCCESS)
+/mob/living/attacked_by(obj/item/I, mob/living/user, attackchain_flags = NONE, damage_multiplier = 1)
+ var/list/block_return = list()
+ var/totitemdamage = pre_attacked_by(I, user) * damage_multiplier
+ if((user != src) && mob_run_block(I, totitemdamage, "the [I.name]", ((attackchain_flags & ATTACKCHAIN_PARRY_COUNTERATTACK)? ATTACK_TYPE_PARRY_COUNTERATTACK : NONE) | ATTACK_TYPE_MELEE, I.armour_penetration, user, null, block_return) & BLOCK_SUCCESS)
return FALSE
+ totitemdamage = block_calculate_resultant_damage(totitemdamage, block_return)
send_item_attack_message(I, user, null, totitemdamage)
I.do_stagger_action(src, user, totitemdamage)
if(I.force)
@@ -151,7 +153,7 @@
user.add_mob_blood(src)
return TRUE //successful attack
-/mob/living/simple_animal/attacked_by(obj/item/I, mob/living/user)
+/mob/living/simple_animal/attacked_by(obj/item/I, mob/living/user, attackchain_flags = NONE, damage_multiplier = 1)
if(I.force < force_threshold || I.damtype == STAMINA)
playsound(loc, 'sound/weapons/tap.ogg', I.get_clamped_volume(), 1, -1)
user.changeNext_move(I.click_delay) //pre_attacked_by not called
@@ -211,8 +213,8 @@
var/message_verb = "attacked"
if(I.attack_verb && I.attack_verb.len)
message_verb = "[pick(I.attack_verb)]"
- if(current_force < I.force * INEFFICIENT_ATTACK_MSG_THRESHOLD)
- message_verb = "inefficiently [message_verb]"
+ if(current_force < I.force * FEEBLE_ATTACK_MSG_THRESHOLD)
+ message_verb = "[pick("feebly", "limply", "saplessly")] [message_verb]"
else if(!I.force)
return
var/message_hit_area = ""
diff --git a/code/controllers/configuration/entries/game_options.dm b/code/controllers/configuration/entries/game_options.dm
index 79b110a78a..7e7d939c39 100644
--- a/code/controllers/configuration/entries/game_options.dm
+++ b/code/controllers/configuration/entries/game_options.dm
@@ -435,6 +435,10 @@
config_entry_value = 64
min_val = 0
+/datum/config_entry/number/ratcap
+ config_entry_value = 64
+ min_val = 0
+
/datum/config_entry/flag/disable_stambuffer
/datum/config_entry/keyed_list/box_random_engine
diff --git a/code/controllers/subsystem/mobs.dm b/code/controllers/subsystem/mobs.dm
index 8caf2a4623..885587ff55 100644
--- a/code/controllers/subsystem/mobs.dm
+++ b/code/controllers/subsystem/mobs.dm
@@ -8,6 +8,7 @@ SUBSYSTEM_DEF(mobs)
var/static/list/clients_by_zlevel[][]
var/static/list/dead_players_by_zlevel[][] = list(list()) // Needs to support zlevel 1 here, MaxZChanged only happens when z2 is created and new_players can login before that.
var/static/list/cubemonkeys = list()
+ var/static/list/cheeserats = list()
/datum/controller/subsystem/mobs/stat_entry()
..("P:[GLOB.mob_living_list.len]")
diff --git a/code/datums/brain_damage/severe.dm b/code/datums/brain_damage/severe.dm
index bb37129b95..cd8612fd19 100644
--- a/code/datums/brain_damage/severe.dm
+++ b/code/datums/brain_damage/severe.dm
@@ -117,6 +117,11 @@
paralysis_type = "legs"
resilience = TRAUMA_RESILIENCE_ABSOLUTE
+/datum/brain_trauma/severe/paralysis/spinesnapped
+ random_gain = FALSE
+ paralysis_type = "legs"
+ resilience = TRAUMA_RESILIENCE_LOBOTOMY
+
/datum/brain_trauma/severe/narcolepsy
name = "Narcolepsy"
desc = "Patient may involuntarily fall asleep during normal activities."
diff --git a/code/datums/components/combat_mode.dm b/code/datums/components/combat_mode.dm
index b53d407162..b9952e9133 100644
--- a/code/datums/components/combat_mode.dm
+++ b/code/datums/components/combat_mode.dm
@@ -119,6 +119,8 @@
if(hud_icon)
hud_icon.combat_on = FALSE
hud_icon.update_icon()
+ source.stop_active_blocking()
+ source.end_parry_sequence()
///Changes the user direction to (try) keep match the pointer.
/datum/component/combat_mode/proc/on_move(atom/movable/source, dir, atom/oldloc, forced)
diff --git a/code/datums/components/crafting/guncrafting.dm b/code/datums/components/crafting/guncrafting.dm
index f332d53fc8..4626ef69d1 100644
--- a/code/datums/components/crafting/guncrafting.dm
+++ b/code/datums/components/crafting/guncrafting.dm
@@ -35,17 +35,34 @@ k// PARTS //
desc = "A twenty bore shotgun barrel."
icon_state = "barrel_shotgun"
+/obj/item/weaponcrafting/improvised_parts/barrel_pistol
+ name = "pistol barrel"
+ desc = "A pipe with a small diameter and some holes finely cut into it. It fits .32 ACP bullets. Probably."
+ icon_state = "barrel_pistol"
+ w_class = WEIGHT_CLASS_SMALL
+
// RECEIVERS
/obj/item/weaponcrafting/improvised_parts/rifle_receiver
name = "bolt action receiver"
- desc = "A crudely constructed receiver to create an improvised bolt-action breechloaded rifle."
+ desc = "A crudely constructed receiver to create an improvised bolt-action breechloaded rifle. It's generic enough to modify to create other rifles, potentially."
icon_state = "receiver_rifle"
w_class = WEIGHT_CLASS_SMALL
+/obj/item/weaponcrafting/improvised_parts/pistol_receiver
+ name = "pistol receiver"
+ desc = "A receiver to connect house and connects all the parts to make an improvised pistol."
+ icon_state = "receiver_pistol"
+ w_class = WEIGHT_CLASS_SMALL
+
+/obj/item/weaponcrafting/improvised_parts/laser_receiver
+ name = "energy emitter assembly"
+ desc = "A mixture of components haphazardly wired together to form an energy emitter."
+ icon_state = "laser_assembly"
+
/obj/item/weaponcrafting/improvised_parts/shotgun_receiver
name = "break-action assembly"
- desc = "An improvised receiver to create a break-action breechloaded shotgun."
+ desc = "An improvised receiver to create a break-action breechloaded shotgun. Parts of this are still useful if you want to make another type of shotgun, however."
icon_state = "receiver_shotgun"
w_class = WEIGHT_CLASS_SMALL
@@ -62,3 +79,14 @@ k// PARTS //
desc = "A crudely fashioned wooden body to help keep higher calibre improvised weapons from blowing themselves apart."
icon_state = "wooden_body"
+/obj/item/weaponcrafting/improvised_parts/wooden_grip
+ name = "wooden pistol grip"
+ desc = "A nice wooden grip hollowed out for pistol magazines."
+ icon_state = "wooden_pistolgrip"
+ w_class = WEIGHT_CLASS_SMALL
+
+/obj/item/weaponcrafting/improvised_parts/makeshift_lens
+ name = "makeshift focusing lens"
+ desc = "A properly made lens made with actual glassworking tools would perform much better, but this will have to do."
+ icon_state = "focusing_lens"
+ w_class = WEIGHT_CLASS_TINY
diff --git a/code/datums/components/crafting/recipes/recipes_weapon_and_ammo.dm b/code/datums/components/crafting/recipes/recipes_weapon_and_ammo.dm
index 7d608a55b2..9d712ef059 100644
--- a/code/datums/components/crafting/recipes/recipes_weapon_and_ammo.dm
+++ b/code/datums/components/crafting/recipes/recipes_weapon_and_ammo.dm
@@ -6,7 +6,7 @@
tools = list(TOOL_WELDER, TOOL_SCREWDRIVER, TOOL_WIRECUTTER)
time = 50
category = CAT_WEAPONRY
- subcategory = CAT_WEAPON
+ subcategory = CAT_OTHER
/datum/crafting_recipe/pin_removal/check_requirements(mob/user, list/collected_requirements)
var/obj/item/gun/G = collected_requirements[/obj/item/gun][1]
@@ -22,7 +22,7 @@
/obj/item/shield/riot = 1)
time = 40
category = CAT_WEAPONRY
- subcategory = CAT_WEAPON
+ subcategory = CAT_MELEE
/datum/crafting_recipe/strobeshield/New()
..()
@@ -38,7 +38,7 @@
tools = list(TOOL_WELDER, TOOL_SCREWDRIVER, TOOL_WIRECUTTER)
time = 100
category = CAT_WEAPONRY
- subcategory = CAT_WEAPON
+ subcategory = CAT_MELEE
/datum/crafting_recipe/spear
name = "Spear"
@@ -49,7 +49,7 @@
parts = list(/obj/item/shard = 1)
time = 40
category = CAT_WEAPONRY
- subcategory = CAT_WEAPON
+ subcategory = CAT_MELEE
/datum/crafting_recipe/stunprod
name = "Stunprod"
@@ -59,7 +59,7 @@
/obj/item/assembly/igniter = 1)
time = 40
category = CAT_WEAPONRY
- subcategory = CAT_WEAPON
+ subcategory = CAT_MELEE
/datum/crafting_recipe/teleprod
name = "Teleprod"
@@ -70,7 +70,7 @@
/obj/item/stack/ore/bluespace_crystal = 1)
time = 40
category = CAT_WEAPONRY
- subcategory = CAT_WEAPON
+ subcategory = CAT_MELEE
/datum/crafting_recipe/bola
name = "Bola"
@@ -88,7 +88,7 @@
/obj/item/stack/sheet/metal = 1)
time = 40
category = CAT_WEAPONRY
- subcategory = CAT_WEAPON
+ subcategory = CAT_MELEE
/datum/crafting_recipe/tailwhip
name = "Liz O' Nine Tails"
@@ -97,7 +97,7 @@
/obj/item/stack/cable_coil = 1)
time = 40
category = CAT_WEAPONRY
- subcategory = CAT_WEAPON
+ subcategory = CAT_MELEE
/datum/crafting_recipe/catwhip
name = "Cat O' Nine Tails"
@@ -106,7 +106,7 @@
/obj/item/stack/cable_coil = 1)
time = 40
category = CAT_WEAPONRY
- subcategory = CAT_WEAPON
+ subcategory = CAT_MELEE
/datum/crafting_recipe/chainsaw
name = "Chainsaw"
@@ -117,7 +117,7 @@
tools = list(TOOL_WELDER)
time = 50
category = CAT_WEAPONRY
- subcategory = CAT_WEAPON
+ subcategory = CAT_MELEE
//////////////////
///BOMB CRAFTING//
@@ -134,7 +134,7 @@
parts = list(/obj/item/stock_parts/matter_bin = 1, /obj/item/grenade/chem_grenade = 2)
time = 30
category = CAT_WEAPONRY
- subcategory = CAT_WEAPON
+ subcategory = CAT_OTHER
/datum/crafting_recipe/chemical_payload2
name = "Chemical Payload (Gibtonite)"
@@ -147,7 +147,7 @@
parts = list(/obj/item/stock_parts/matter_bin = 1, /obj/item/grenade/chem_grenade = 2)
time = 50
category = CAT_WEAPONRY
- subcategory = CAT_WEAPON
+ subcategory = CAT_OTHER
/datum/crafting_recipe/molotov
name = "Molotov"
@@ -169,7 +169,7 @@
parts = list(/obj/item/reagent_containers/food/drinks/soda_cans = 1)
time = 15
category = CAT_WEAPONRY
- subcategory = CAT_WEAPON
+ subcategory = CAT_OTHER
/datum/crafting_recipe/lance
name = "Explosive Lance (Grenade)"
@@ -180,7 +180,7 @@
/obj/item/grenade = 1)
time = 15
category = CAT_WEAPONRY
- subcategory = CAT_WEAPON
+ subcategory = CAT_MELEE
//////////////////
///GUNS CRAFTING//
@@ -276,6 +276,49 @@
category = CAT_WEAPONRY
subcategory = CAT_WEAPON
+/datum/crafting_recipe/ipistol
+ name = "Improvised Pistol (.32)"
+ result = /obj/item/gun/ballistic/automatic/pistol/improvised/nomag
+ reqs = list(/obj/item/weaponcrafting/improvised_parts/barrel_pistol = 1,
+ /obj/item/weaponcrafting/improvised_parts/pistol_receiver = 1,
+ /obj/item/weaponcrafting/improvised_parts/trigger_assembly = 1,
+ /obj/item/weaponcrafting/improvised_parts/wooden_grip = 1,
+ /obj/item/stack/sheet/plastic = 15,
+ /obj/item/stack/sheet/plasteel = 1)
+ tools = list(TOOL_SCREWDRIVER, TOOL_WELDER, TOOL_WIRECUTTER)
+ time = 100
+ category = CAT_WEAPONRY
+ subcategory = CAT_WEAPON
+
+/datum/crafting_recipe/ilaser
+ name = "Improvised Energy Gun"
+ result = /obj/item/gun/energy/e_gun/old/improvised
+ reqs = list(/obj/item/weaponcrafting/improvised_parts/laser_receiver = 1,
+ /obj/item/weaponcrafting/improvised_parts/trigger_assembly = 1,
+ /obj/item/weaponcrafting/improvised_parts/makeshift_lens = 1,
+ /obj/item/stock_parts/cell = 1,
+ /obj/item/stack/sheet/metal = 10,
+ /obj/item/stack/sheet/plasteel = 5,
+ /obj/item/stack/cable_coil = 10)
+ tools = list(TOOL_SCREWDRIVER)
+ time = 100
+ category = CAT_WEAPONRY
+ subcategory = CAT_WEAPON
+
+/datum/crafting_recipe/ilaser/upgraded
+ name = "Improvised Energy Gun Upgrade"
+ result = /obj/item/gun/energy/e_gun/old/improvised/upgraded
+ reqs = list(/obj/item/gun/energy/e_gun/old/improvised = 1,
+ /obj/item/glasswork/glass_base/lens = 1,
+ /obj/item/stock_parts/capacitor/quadratic = 2,
+ /obj/item/stock_parts/micro_laser/ultra = 1,
+ /obj/item/stock_parts/cell/bluespace = 1,
+ /obj/item/stack/cable_coil = 5)
+ tools = list(TOOL_SCREWDRIVER, TOOL_MULTITOOL)
+ time = 100
+ category = CAT_WEAPONRY
+ subcategory = CAT_WEAPON
+
//////////////////
///AMMO CRAFTING//
//////////////////
@@ -399,6 +442,17 @@
category = CAT_WEAPONRY
subcategory = CAT_AMMO
+/datum/crafting_recipe/m32acp
+ name = ".32ACP Empty Magazine"
+ result = /obj/item/ammo_box/magazine/m32acp/empty
+ reqs = list(/obj/item/stack/sheet/metal = 3,
+ /obj/item/stack/sheet/plasteel = 1,
+ /obj/item/stack/packageWrap = 1)
+ tools = list(TOOL_WELDER,TOOL_SCREWDRIVER)
+ time = 5
+ category = CAT_WEAPONRY
+ subcategory = CAT_AMMO
+
////////////////////
// PARTS CRAFTING //
////////////////////
@@ -423,13 +477,24 @@
category = CAT_WEAPONRY
subcategory = CAT_PARTS
+/datum/crafting_recipe/pistol_barrel
+ name = "Improvised Pistol Barrel"
+ result = /obj/item/weaponcrafting/improvised_parts/barrel_pistol
+ reqs = list(/obj/item/pipe = 1,
+ /obj/item/stack/sheet/plasteel = 1)
+ tools = list(TOOL_WELDER,TOOL_SAW)
+ time = 150
+ category = CAT_WEAPONRY
+ subcategory = CAT_PARTS
+
// RECEIVERS
/datum/crafting_recipe/rifle_receiver
name = "Improvised Rifle Receiver"
result = /obj/item/weaponcrafting/improvised_parts/rifle_receiver
- reqs = list(/obj/item/stack/sheet/metal = 20)
- tools = list(TOOL_SCREWDRIVER, TOOL_WELDER) // Rifle is the easiest to craft and can be made at an autolathe, this is a very light kick in the shin for dual-wielding ishotguns.
+ reqs = list(/obj/item/stack/sheet/metal = 10,
+ /obj/item/stack/sheet/plasteel = 1)
+ tools = list(TOOL_SCREWDRIVER, TOOL_WELDER)
time = 50
category = CAT_WEAPONRY
subcategory = CAT_PARTS
@@ -439,11 +504,33 @@
result = /obj/item/weaponcrafting/improvised_parts/shotgun_receiver
reqs = list(/obj/item/stack/sheet/metal = 10,
/obj/item/stack/sheet/plasteel = 1)
- tools = list(TOOL_SCREWDRIVER, TOOL_WELDER) // Increased cost is to stop dual-wield alpha striking. ishotgun is a rvolver and can be duel-wielded
+ tools = list(TOOL_SCREWDRIVER, TOOL_WELDER) // Dual wielding has been removed, plasteel is a soft timesink to obtain for most to make mass production harder.
time = 50
category = CAT_WEAPONRY
subcategory = CAT_PARTS
+/datum/crafting_recipe/pistol_receiver
+ name = "Improvised Pistol Receiver"
+ result = /obj/item/weaponcrafting/improvised_parts/pistol_receiver
+ reqs = list(/obj/item/stack/sheet/metal = 5,
+ /obj/item/stack/sheet/plasteel = 1)
+ tools = list(TOOL_SCREWDRIVER, TOOL_WELDER, TOOL_SAW)
+ time = 50
+ category = CAT_WEAPONRY
+ subcategory = CAT_PARTS
+
+/datum/crafting_recipe/laser_receiver
+ name = "Energy Weapon Assembly"
+ result = /obj/item/weaponcrafting/improvised_parts/laser_receiver
+ reqs = list(/obj/item/stack/sheet/metal = 10,
+ /obj/item/stock_parts/capacitor = 2,
+ /obj/item/stock_parts/micro_laser = 1,
+ /obj/item/assembly/prox_sensor = 1)
+ tools = list(TOOL_SCREWDRIVER, TOOL_MULTITOOL, TOOL_WELDER) // Prox sensor and multitool for the circuit board, welder for extremely ghetto soldering.
+ time = 150
+ category = CAT_WEAPONRY
+ subcategory = CAT_PARTS
+
// MISC
/datum/crafting_recipe/trigger_assembly
@@ -455,3 +542,13 @@
time = 150
category = CAT_WEAPONRY
subcategory = CAT_PARTS
+
+/datum/crafting_recipe/makeshift_lens
+ name = "Makeshift Lens"
+ result = /obj/item/weaponcrafting/improvised_parts/makeshift_lens
+ reqs = list(/obj/item/stack/sheet/metal = 1,
+ /obj/item/stack/sheet/glass = 2)
+ tools = list(TOOL_WELDER) // Glassmaking lets you make non-makeshift lenses.
+ time = 50
+ category = CAT_WEAPONRY
+ subcategory = CAT_PARTS
diff --git a/code/datums/components/swarming.dm b/code/datums/components/swarming.dm
index 64844c4c32..e840788766 100644
--- a/code/datums/components/swarming.dm
+++ b/code/datums/components/swarming.dm
@@ -11,6 +11,17 @@
RegisterSignal(parent, COMSIG_MOVABLE_CROSSED, .proc/join_swarm)
RegisterSignal(parent, COMSIG_MOVABLE_UNCROSSED, .proc/leave_swarm)
+/datum/component/swarming/Destroy()
+ if(is_swarming)
+ for(var/A in swarm_members)
+ var/datum/component/swarming/other_swarm = A
+ other_swarm.swarm_members -= src
+ swarm_members -= other_swarm
+ if(!length(other_swarm.swarm_members))
+ other_swarm.unswarm()
+ unswarm()
+ return ..()
+
/datum/component/swarming/proc/join_swarm(datum/source, atom/movable/AM)
var/datum/component/swarming/other_swarm = AM.GetComponent(/datum/component/swarming)
if(!other_swarm)
diff --git a/code/datums/components/tackle.dm b/code/datums/components/tackle.dm
index 8b533c2ef0..9a98953985 100644
--- a/code/datums/components/tackle.dm
+++ b/code/datums/components/tackle.dm
@@ -354,7 +354,7 @@
playsound(user, 'sound/effects/blobattack.ogg', 60, TRUE)
playsound(user, 'sound/effects/splat.ogg', 70, TRUE)
user.emote("scream")
- user.gain_trauma(/datum/brain_trauma/severe/paralysis/paraplegic) // oopsie indeed!
+ user.gain_trauma(/datum/brain_trauma/severe/paralysis/spinesnapped) // oopsie indeed!
shake_camera(user, 7, 7)
user.overlay_fullscreen("flash", /obj/screen/fullscreen/flash)
user.clear_fullscreen("flash", 4.5)
diff --git a/code/datums/elements/flavor_text.dm b/code/datums/elements/flavor_text.dm
index f44215d9ac..92251861ed 100644
--- a/code/datums/elements/flavor_text.dm
+++ b/code/datums/elements/flavor_text.dm
@@ -117,9 +117,9 @@ GLOBAL_LIST_EMPTY(mobs_with_editable_flavor_text) //et tu, hacky code
return FALSE
var/lower_name = lowertext(flavor_name)
- var/new_text = stripped_multiline_input(user, "Set the [lower_name] displayed on 'examine'. [addendum]", flavor_name, texts_by_atom[usr], max_len, TRUE)
+ var/new_text = stripped_multiline_input(user, "Set the [lower_name] displayed on 'examine'. [addendum]", flavor_name, html_decode(texts_by_atom[usr]), max_len, TRUE)
if(!isnull(new_text) && (user in texts_by_atom))
- texts_by_atom[user] = html_decode(new_text)
+ texts_by_atom[user] = new_text
to_chat(src, "Your [lower_name] has been updated.")
return TRUE
return FALSE
diff --git a/code/datums/martial/_martial.dm b/code/datums/martial/_martial.dm
index 0877e4021a..8241f685d7 100644
--- a/code/datums/martial/_martial.dm
+++ b/code/datums/martial/_martial.dm
@@ -10,6 +10,10 @@
var/help_verb
var/pacifism_check = TRUE //are the martial arts combos/attacks unable to be used by pacifist.
var/allow_temp_override = TRUE //if this martial art can be overridden by temporary martial arts
+ /// Can we be used to unarmed parry?
+ var/can_martial_parry = FALSE
+ /// Set this variable to something not null, this'll be the preferred unarmed parry in most cases if [can_martial_parry] is TRUE. YOU MUST RUN [get_block_parry_data(this)] INSTEAD OF DIRECTLY ACCESSING!
+ var/datum/block_parry_data/block_parry_data
var/pugilist = FALSE
/datum/martial_art/proc/disarm_act(mob/living/carbon/human/A, mob/living/carbon/human/D)
@@ -91,4 +95,4 @@
///Gets called when a projectile hits the owner. Returning anything other than BULLET_ACT_HIT will stop the projectile from hitting the mob.
/datum/martial_art/proc/on_projectile_hit(mob/living/carbon/human/A, obj/item/projectile/P, def_zone)
- return BULLET_ACT_HIT
\ No newline at end of file
+ return BULLET_ACT_HIT
diff --git a/code/datums/martial/boxing.dm b/code/datums/martial/boxing.dm
index 848fdc6a41..e3c7726d61 100644
--- a/code/datums/martial/boxing.dm
+++ b/code/datums/martial/boxing.dm
@@ -66,9 +66,9 @@
return
/obj/item/clothing/gloves/boxing/dropped(mob/user)
+ . = ..()
if(!ishuman(user))
return
var/mob/living/carbon/human/H = user
if(H.get_item_by_slot(SLOT_GLOVES) == src)
style.remove(H)
- return
diff --git a/code/datums/martial/krav_maga.dm b/code/datums/martial/krav_maga.dm
index f054867de4..50438d9d8d 100644
--- a/code/datums/martial/krav_maga.dm
+++ b/code/datums/martial/krav_maga.dm
@@ -203,6 +203,7 @@
style.teach(H,1)
/obj/item/clothing/gloves/krav_maga/dropped(mob/user)
+ . = ..()
if(!ishuman(user))
return
var/mob/living/carbon/human/H = user
diff --git a/code/datums/martial/wrestling.dm b/code/datums/martial/wrestling.dm
index f7923d029f..87fcf78964 100644
--- a/code/datums/martial/wrestling.dm
+++ b/code/datums/martial/wrestling.dm
@@ -480,12 +480,12 @@
return
/obj/item/storage/belt/champion/wrestling/dropped(mob/user)
+ . = ..()
if(!ishuman(user))
return
var/mob/living/carbon/human/H = user
if(H.get_item_by_slot(SLOT_BELT) == src)
style.remove(H)
- return
//Subtype of wrestling, reserved for the wrestling belts found in the holodeck
/datum/martial_art/wrestling/holodeck
diff --git a/code/game/atoms.dm b/code/game/atoms.dm
index 486ad71a95..640510bcf7 100644
--- a/code/game/atoms.dm
+++ b/code/game/atoms.dm
@@ -141,8 +141,18 @@
return ..()
-/atom/proc/handle_ricochet(obj/item/projectile/P)
- return
+/**
+ * Checks if a projectile should ricochet off of us. Projectiles get final say.
+ * [__DEFINES/projectiles.dm] for return values.
+ */
+/atom/proc/check_projectile_ricochet(obj/item/projectile/P)
+ return (flags_1 & DEFAULT_RICOCHET_1)? PROJECTILE_RICOCHET_YES : PROJECTILE_RICOCHET_NO
+
+/**
+ * Handle a projectile ricochet. Return TRUE if we did something to the projectile like reflecting it/whatnot.
+ */
+/atom/proc/handle_projectile_ricochet(obj/item/projectile/P)
+ return FALSE
/atom/proc/CanPass(atom/movable/mover, turf/target)
return !density
diff --git a/code/game/gamemodes/gangs/dominator.dm b/code/game/gamemodes/gangs/dominator.dm
index a375c4f8b5..db145ffacc 100644
--- a/code/game/gamemodes/gangs/dominator.dm
+++ b/code/game/gamemodes/gangs/dominator.dm
@@ -145,7 +145,7 @@
new /obj/item/stack/sheet/plasteel(src.loc)
qdel(src)
-/obj/machinery/dominator/attacked_by(obj/item/I, mob/living/user)
+/obj/machinery/dominator/attacked_by(obj/item/I, mob/living/user, attackchain_flags = NONE, damage_multiplier = 1)
add_fingerprint(user)
return ..()
@@ -240,4 +240,4 @@
#undef DOM_BLOCKED_SPAM_CAP
#undef DOM_REQUIRED_TURFS
-#undef DOM_HULK_HITS_REQUIRED
\ No newline at end of file
+#undef DOM_HULK_HITS_REQUIRED
diff --git a/code/game/machinery/doors/airlock_electronics.dm b/code/game/machinery/doors/airlock_electronics.dm
index 7d73d1afa7..dd97b965a0 100644
--- a/code/game/machinery/doors/airlock_electronics.dm
+++ b/code/game/machinery/doors/airlock_electronics.dm
@@ -1,7 +1,7 @@
/obj/item/electronics/airlock
name = "airlock electronics"
req_access = list(ACCESS_MAINT_TUNNELS)
- custom_price = 50
+ custom_price = PRICE_CHEAP
var/list/accesses = list()
var/one_access = 0
diff --git a/code/game/machinery/doors/firedoor.dm b/code/game/machinery/doors/firedoor.dm
index 915fad6418..b52cf1a891 100644
--- a/code/game/machinery/doors/firedoor.dm
+++ b/code/game/machinery/doors/firedoor.dm
@@ -260,7 +260,7 @@
/obj/item/electronics/firelock
name = "firelock circuitry"
- custom_price = 50
+ custom_price = PRICE_CHEAP
desc = "A circuit board used in construction of firelocks."
icon_state = "mainboard"
diff --git a/code/game/machinery/firealarm.dm b/code/game/machinery/firealarm.dm
index 8869ea396e..0b23e650d7 100644
--- a/code/game/machinery/firealarm.dm
+++ b/code/game/machinery/firealarm.dm
@@ -2,7 +2,7 @@
/obj/item/electronics/firealarm
name = "fire alarm electronics"
- custom_price = 50
+ custom_price = PRICE_CHEAP
desc = "A fire alarm circuit. Can handle heat levels up to 40 degrees celsius."
/obj/item/wallframe/firealarm
diff --git a/code/game/machinery/porta_turret/portable_turret_cover.dm b/code/game/machinery/porta_turret/portable_turret_cover.dm
index 2403f903a9..7fdb9b38be 100644
--- a/code/game/machinery/porta_turret/portable_turret_cover.dm
+++ b/code/game/machinery/porta_turret/portable_turret_cover.dm
@@ -70,7 +70,7 @@
else
return ..()
-/obj/machinery/porta_turret_cover/attacked_by(obj/item/I, mob/user)
+/obj/machinery/porta_turret_cover/attacked_by(obj/item/I, mob/user, attackchain_flags = NONE, damage_multiplier = 1)
return parent_turret.attacked_by(I, user)
/obj/machinery/porta_turret_cover/attack_alien(mob/living/carbon/alien/humanoid/user)
diff --git a/code/game/mecha/mecha_defense.dm b/code/game/mecha/mecha_defense.dm
index 56bb8cceda..395ac810f4 100644
--- a/code/game/mecha/mecha_defense.dm
+++ b/code/game/mecha/mecha_defense.dm
@@ -282,7 +282,7 @@
else
return ..()
-/obj/mecha/attacked_by(obj/item/I, mob/living/user)
+/obj/mecha/attacked_by(obj/item/I, mob/living/user, attackchain_flags = NONE, damage_multiplier = 1)
mecha_log_message("Attacked by [I]. Attacker - [user]")
return ..()
diff --git a/code/game/objects/effects/spawners/lootdrop.dm b/code/game/objects/effects/spawners/lootdrop.dm
index 9893e9c7d3..5b2006b6f3 100644
--- a/code/game/objects/effects/spawners/lootdrop.dm
+++ b/code/game/objects/effects/spawners/lootdrop.dm
@@ -611,13 +611,13 @@
/obj/item/clothing/mask/breath = 5,
/obj/item/clothing/mask/breath/medical = 1
)
-
+
/obj/effect/spawner/lootdrop/welder_tools/no_turf
spawn_on_turf = FALSE
/obj/effect/spawner/lootdrop/low_tools/no_turf
spawn_on_turf = FALSE
-
+
/obj/effect/spawner/lootdrop/breathing_tanks/no_turf
spawn_on_turf = FALSE
@@ -644,3 +644,90 @@
/obj/effect/spawner/lootdrop/glowstick/no_turf
spawn_on_turf = FALSE
+
+// Random Parts
+
+/obj/effect/spawner/lootdrop/stock_parts
+ name = "random stock parts spawner"
+ lootcount = 1
+ loot = list(
+ /obj/item/stock_parts/capacitor,
+ /obj/item/stock_parts/scanning_module,
+ /obj/item/stock_parts/manipulator,
+ /obj/item/stock_parts/micro_laser,
+ /obj/item/stock_parts/matter_bin,
+ /obj/item/stock_parts/cell
+ )
+
+// Random Weapon Parts
+
+/obj/effect/spawner/lootdrop/weapon_parts
+ name = "random weapon parts spawner 50%"
+ lootcount = 1
+ spawn_on_turf = FALSE
+ loot = list("" = 50,
+ /obj/item/weaponcrafting/improvised_parts/barrel_rifle = 10,
+ /obj/item/weaponcrafting/improvised_parts/barrel_shotgun = 5,
+ /obj/item/weaponcrafting/improvised_parts/barrel_pistol = 5,
+ /obj/item/weaponcrafting/improvised_parts/rifle_receiver = 10,
+ /obj/item/weaponcrafting/improvised_parts/shotgun_receiver = 3,
+ /obj/item/weaponcrafting/improvised_parts/pistol_receiver = 3,
+ /obj/item/weaponcrafting/improvised_parts/laser_receiver = 1,
+ /obj/item/weaponcrafting/improvised_parts/trigger_assembly = 10,
+ /obj/item/weaponcrafting/improvised_parts/makeshift_lens = 3,
+ )
+
+/obj/effect/spawner/lootdrop/weapon_parts
+ name = "random weapon parts spawner 25%"
+ lootcount = 1
+ spawn_on_turf = FALSE
+ loot = list("" = 75,
+ /obj/item/weaponcrafting/improvised_parts/barrel_rifle = 5,
+ /obj/item/weaponcrafting/improvised_parts/barrel_pistol = 5,
+ /obj/item/weaponcrafting/improvised_parts/rifle_receiver = 5,
+ /obj/item/weaponcrafting/improvised_parts/pistol_receiver = 2,
+ /obj/item/weaponcrafting/improvised_parts/trigger_assembly = 5,
+ /obj/item/weaponcrafting/improvised_parts/makeshift_lens = 3,
+ )
+
+/obj/effect/spawner/lootdrop/ammo
+ name = "random ammo 75%"
+ lootcount = 1
+ spawn_on_turf = FALSE
+ loot = list("" = 25,
+ /obj/item/ammo_box/c32mm = 15,
+ /obj/item/ammo_box/r32mm = 15,
+ /obj/item/ammo_box/magazine/wt550m9 = 1,
+ /obj/item/ammo_casing/shotgun/buckshot = 7,
+ /obj/item/ammo_casing/shotgun/rubbershot = 7,
+ /obj/item/ammo_casing/a762 = 15,
+ /obj/item/ammo_box/a762 = 15,
+ )
+
+/obj/effect/spawner/lootdrop/ammo/fiftypercent
+ name = "random ammo 50%"
+ lootcount = 1
+ spawn_on_turf = FALSE
+ loot = list("" = 50,
+ /obj/item/ammo_box/c32mm = 7,
+ /obj/item/ammo_box/r32mm = 7,
+ /obj/item/ammo_box/magazine/wt550m9 = 2,
+ /obj/item/ammo_casing/shotgun/buckshot = 10,
+ /obj/item/ammo_casing/shotgun/rubbershot = 10,
+ /obj/item/ammo_casing/a762 = 7,
+ /obj/item/ammo_box/a762 = 7,
+ )
+
+/obj/effect/spawner/lootdrop/ammo/shotgun
+ name = "random ammo 50%"
+ lootcount = 1
+ spawn_on_turf = FALSE
+ loot = list("" = 50,
+ /obj/item/ammo_box/shotgun/loaded/buckshot = 5,
+ /obj/item/ammo_box/shotgun/loaded/beanbag = 5,
+ /obj/item/ammo_box/shotgun/loaded/incendiary = 5,
+ /obj/item/ammo_casing/shotgun/buckshot = 8,
+ /obj/item/ammo_casing/shotgun/rubbershot = 9,
+ /obj/item/ammo_casing/shotgun = 8,
+ /obj/item/ammo_casing/shotgun/incendiary = 10,
+ )
diff --git a/code/game/objects/items.dm b/code/game/objects/items.dm
index 776980badb..b7e671b9e2 100644
--- a/code/game/objects/items.dm
+++ b/code/game/objects/items.dm
@@ -141,6 +141,13 @@ GLOBAL_VAR_INIT(rpg_loot_items, FALSE)
var/list/grind_results //A reagent list containing the reagents this item produces when ground up in a grinder - this can be an empty list to allow for reagent transferring only
var/list/juice_results //A reagent list containing blah blah... but when JUICED in a grinder!
+ /* Our block parry data. Should be set in init, or something if you are using it.
+ * This won't be accessed without ITEM_CAN_BLOCK or ITEM_CAN_PARRY so do not set it unless you have to to save memory.
+ * If you decide it's a good idea to leave this unset while turning the flags on, you will runtime. Enjoy.
+ * If this is set to a path, it'll run get_block_parry_data(path). YOU MUST RUN [get_block_parry_data(this)] INSTEAD OF DIRECTLY ACCESSING!
+ */
+ var/datum/block_parry_data/block_parry_data
+
///Skills vars
//list of skill PATHS exercised when using this item. An associated bitfield can be set to indicate additional ways the skill is used by this specific item.
var/list/datum/skill/used_skills
@@ -240,9 +247,10 @@ GLOBAL_VAR_INIT(rpg_loot_items, FALSE)
. += "[src] is made of cold-resistant materials."
if(resistance_flags & FIRE_PROOF)
. += "[src] is made of fire-retardant materials."
-
-
-
+
+ if(item_flags & (ITEM_CAN_BLOCK | ITEM_CAN_PARRY))
+ var/datum/block_parry_data/data = return_block_parry_datum(block_parry_data)
+ . += "[src] has the capacity to be used to block and/or parry. \[Show Stats\]"
if(!user.research_scanner)
return
@@ -404,6 +412,7 @@ GLOBAL_VAR_INIT(rpg_loot_items, FALSE)
return ITALICS | REDUCE_RANGE
/obj/item/proc/dropped(mob/user)
+ SHOULD_CALL_PARENT(TRUE)
for(var/X in actions)
var/datum/action/A = X
A.Remove(user)
@@ -416,6 +425,7 @@ GLOBAL_VAR_INIT(rpg_loot_items, FALSE)
// called just as an item is picked up (loc is not yet changed)
/obj/item/proc/pickup(mob/user)
+ SHOULD_CALL_PARENT(TRUE)
SEND_SIGNAL(src, COMSIG_ITEM_PICKUP, user)
item_flags |= IN_INVENTORY
diff --git a/code/game/objects/items/RCD.dm b/code/game/objects/items/RCD.dm
index 5d9c6ee267..2fbb45173b 100644
--- a/code/game/objects/items/RCD.dm
+++ b/code/game/objects/items/RCD.dm
@@ -154,7 +154,8 @@ RLD
icon_state = "rcd"
lefthand_file = 'icons/mob/inhands/equipment/tools_lefthand.dmi'
righthand_file = 'icons/mob/inhands/equipment/tools_righthand.dmi'
- custom_price = 900
+ custom_price = PRICE_ABOVE_EXPENSIVE
+ custom_premium_price = PRICE_ALMOST_ONE_GRAND
max_matter = 160
item_flags = NO_MAT_REDEMPTION | NOBLUDGEON
has_ammobar = TRUE
diff --git a/code/game/objects/items/cards_ids.dm b/code/game/objects/items/cards_ids.dm
index 7036a78bc4..9117df8e6b 100644
--- a/code/game/objects/items/cards_ids.dm
+++ b/code/game/objects/items/cards_ids.dm
@@ -187,6 +187,15 @@
if(ID_LOCKED_BANK_ACCOUNT)
registered_account = new /datum/bank_account/remote/non_transferable(pick(GLOB.redacted_strings))
+/obj/item/card/id/Destroy()
+ if(bank_support == ID_LOCKED_BANK_ACCOUNT)
+ QDEL_NULL(registered_account)
+ else
+ registered_account = null
+ if(my_store)
+ my_store.my_card = null
+ my_store = null
+ return ..()
/obj/item/card/id/vv_edit_var(var_name, var_value)
. = ..()
diff --git a/code/game/objects/items/cigs_lighters.dm b/code/game/objects/items/cigs_lighters.dm
index 6ebeffe90f..bfbacb1a34 100644
--- a/code/game/objects/items/cigs_lighters.dm
+++ b/code/game/objects/items/cigs_lighters.dm
@@ -8,6 +8,9 @@ CIGARS
SMOKING PIPES
CHEAP LIGHTERS
ZIPPO
+ROLLING PAPER
+VAPES
+BONGS
CIGARETTE PACKETS ARE IN FANCY.DM
*/
@@ -506,7 +509,7 @@ CIGARETTE PACKETS ARE IN FANCY.DM
resistance_flags = FIRE_PROOF
light_color = LIGHT_COLOR_FIRE
grind_results = list(/datum/reagent/iron = 1, /datum/reagent/fuel = 5, /datum/reagent/oil = 5)
- custom_price = 55
+ custom_price = PRICE_ALMOST_CHEAP
/obj/item/lighter/Initialize()
. = ..()
@@ -616,6 +619,7 @@ CIGARETTE PACKETS ARE IN FANCY.DM
desc = "A cheap-as-free lighter."
icon_state = "lighter"
fancy = FALSE
+ custom_price = PRICE_CHEAP_AS_FREE
overlay_list = list(
"transp",
"tall",
@@ -799,6 +803,7 @@ CIGARETTE PACKETS ARE IN FANCY.DM
to_chat(user, "You need to close the cap first!")
/obj/item/clothing/mask/vape/dropped(mob/user)
+ . = ..()
var/mob/living/carbon/C = user
if(C.get_item_by_slot(SLOT_WEAR_MASK) == src)
ENABLE_BITFIELD(reagents.reagents_holder_flags, NO_REACT)
diff --git a/code/game/objects/items/devices/flashlight.dm b/code/game/objects/items/devices/flashlight.dm
index aa8c61ae0c..fdc3aa30af 100644
--- a/code/game/objects/items/devices/flashlight.dm
+++ b/code/game/objects/items/devices/flashlight.dm
@@ -1,7 +1,7 @@
/obj/item/flashlight
name = "flashlight"
desc = "A hand-held emergency light."
- custom_price = 100
+ custom_price = PRICE_REALLY_CHEAP
icon = 'icons/obj/lighting.dmi'
icon_state = "flashlight"
item_state = "flashlight"
@@ -211,6 +211,7 @@
light_color = "#CDDDFF"
flashlight_power = 0.9
hitsound = 'sound/weapons/genhit1.ogg'
+ custom_price = PRICE_ALMOST_CHEAP
// the desk lamps are a bit special
/obj/item/flashlight/lamp
@@ -351,12 +352,13 @@
brightness_on = 6 // luminosity when on
light_color = "#FFAA44"
flashlight_power = 0.8
+ custom_price = PRICE_CHEAP
/obj/item/flashlight/lantern/jade
name = "jade lantern"
desc = "An ornate, green lantern."
color = LIGHT_COLOR_GREEN
- light_color = LIGHT_COLOR_GREEN
+ light_color = LIGHT_COLOR_GREEN
/obj/item/flashlight/slime
gender = PLURAL
@@ -429,7 +431,7 @@
/obj/item/flashlight/glowstick
name = "glowstick"
desc = "A military-grade glowstick."
- custom_price = 50
+ custom_price = PRICE_CHEAP_AS_FREE
w_class = WEIGHT_CLASS_SMALL
brightness_on = 4
color = LIGHT_COLOR_GREEN
diff --git a/code/game/objects/items/devices/scanners.dm b/code/game/objects/items/devices/scanners.dm
index a7b22a4c30..28e1e1294f 100644
--- a/code/game/objects/items/devices/scanners.dm
+++ b/code/game/objects/items/devices/scanners.dm
@@ -6,12 +6,14 @@ T-RAY
HEALTH ANALYZER
GAS ANALYZER
SLIME SCANNER
+NANITE SCANNER
+GENETICS SCANNER
*/
/obj/item/t_scanner
name = "\improper T-ray scanner"
desc = "A terahertz-ray emitter and scanner used to detect underfloor objects such as cables and pipes."
- custom_price = 150
+ custom_price = PRICE_REALLY_CHEAP
icon = 'icons/obj/device.dmi'
icon_state = "t-ray0"
var/on = FALSE
@@ -653,9 +655,10 @@ SLIME SCANNER
amount += inaccurate
return DisplayTimeText(max(1,amount))
-/proc/atmosanalyzer_scan(mixture, mob/living/user, atom/target = src)
+/proc/atmosanalyzer_scan(mixture, mob/living/user, atom/target = src, visible = TRUE)
var/icon = target
- user.visible_message("[user] has used the analyzer on [icon2html(icon, viewers(user))] [target].", "You use the analyzer on [icon2html(icon, user)] [target].")
+ if(visible)
+ user.visible_message("[user] has used the analyzer on [icon2html(icon, viewers(user))] [target].", "You use the analyzer on [icon2html(icon, user)] [target].")
to_chat(user, "Results of analysis of [icon2html(icon, user)] [target].")
var/list/airs = islist(mixture) ? mixture : list(mixture)
diff --git a/code/game/objects/items/devices/sensor_device.dm b/code/game/objects/items/devices/sensor_device.dm
index a92d9221c2..a1f4994a64 100644
--- a/code/game/objects/items/devices/sensor_device.dm
+++ b/code/game/objects/items/devices/sensor_device.dm
@@ -5,7 +5,7 @@
icon_state = "scanner"
w_class = WEIGHT_CLASS_SMALL
slot_flags = ITEM_SLOT_BELT
- custom_price = 900
+ custom_price = PRICE_ABOVE_EXPENSIVE
/obj/item/sensor_device/attack_self(mob/user)
GLOB.crewmonitor.show(user,src) //Proc already exists, just had to call it
diff --git a/code/game/objects/items/kitchen.dm b/code/game/objects/items/kitchen.dm
index 77d9f09eff..e44212ba3f 100644
--- a/code/game/objects/items/kitchen.dm
+++ b/code/game/objects/items/kitchen.dm
@@ -71,7 +71,7 @@
sharpness = IS_SHARP_ACCURATE
armor = list("melee" = 0, "bullet" = 0, "laser" = 0, "energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 50, "acid" = 50)
var/bayonet = FALSE //Can this be attached to a gun?
- custom_price = 250
+ custom_price = PRICE_NORMAL
/obj/item/kitchen/knife/Initialize()
. = ..()
@@ -131,7 +131,7 @@
custom_materials = list(/datum/material/iron=18000)
attack_verb = list("cleaved", "slashed", "stabbed", "sliced", "torn", "ripped", "diced", "cut")
w_class = WEIGHT_CLASS_NORMAL
- custom_price = 600
+ custom_price = PRICE_EXPENSIVE
/obj/item/kitchen/knife/combat
name = "combat knife"
@@ -200,7 +200,7 @@
w_class = WEIGHT_CLASS_NORMAL
custom_materials = list(/datum/material/wood = MINERAL_MATERIAL_AMOUNT * 1.5)
attack_verb = list("bashed", "battered", "bludgeoned", "thrashed", "whacked")
- custom_price = 200
+ custom_price = PRICE_ALMOST_CHEAP
/obj/item/kitchen/rollingpin/suicide_act(mob/living/carbon/user)
user.visible_message("[user] begins flattening [user.p_their()] head with \the [src]! It looks like [user.p_theyre()] trying to commit suicide!")
diff --git a/code/game/objects/items/melee/energy.dm b/code/game/objects/items/melee/energy.dm
index cbb72c5432..63279d2ddc 100644
--- a/code/game/objects/items/melee/energy.dm
+++ b/code/game/objects/items/melee/energy.dm
@@ -105,9 +105,28 @@
sharpness = IS_SHARP
embedding = list("embed_chance" = 75, "embedded_impact_pain_multiplier" = 10)
armour_penetration = 35
- block_chance = 50
+ item_flags = NEEDS_PERMIT | ITEM_CAN_PARRY
+ block_parry_data = /datum/block_parry_data/energy_sword
var/list/possible_colors = list("red" = LIGHT_COLOR_RED, "blue" = LIGHT_COLOR_LIGHT_CYAN, "green" = LIGHT_COLOR_GREEN, "purple" = LIGHT_COLOR_LAVENDER)
+/datum/block_parry_data/energy_sword
+ parry_time_windup = 0
+ parry_time_active = 25
+ parry_time_spindown = 0
+ // we want to signal to players the most dangerous phase, the time when automatic counterattack is a thing.
+ parry_time_windup_visual_override = 1
+ parry_time_active_visual_override = 3
+ parry_time_spindown_visual_override = 12
+ parry_flags = PARRY_DEFAULT_HANDLE_FEEDBACK // esword users can attack while
+ parry_time_perfect = 2.5 // first ds isn't perfect
+ parry_time_perfect_leeway = 1.5
+ parry_imperfect_falloff_percent = 5
+ parry_efficiency_to_counterattack = 100
+ parry_efficiency_considered_successful = 65 // VERY generous
+ parry_efficiency_perfect = 100
+ parry_failed_stagger_duration = 4 SECONDS
+ parry_cooldown = 0.5 SECONDS
+
/obj/item/melee/transforming/energy/sword/Initialize(mapload)
. = ..()
set_sword_color()
diff --git a/code/game/objects/items/melee/misc.dm b/code/game/objects/items/melee/misc.dm
index 71437d4706..741607edc3 100644
--- a/code/game/objects/items/melee/misc.dm
+++ b/code/game/objects/items/melee/misc.dm
@@ -61,13 +61,25 @@
force = 18
throwforce = 15
w_class = WEIGHT_CLASS_BULKY
- block_chance = 50
armour_penetration = 75
sharpness = IS_SHARP
attack_verb = list("slashed", "cut")
hitsound = 'sound/weapons/rapierhit.ogg'
custom_materials = list(/datum/material/iron = 1000)
total_mass = 3.4
+ item_flags = NEEDS_PERMIT | ITEM_CAN_PARRY
+ block_parry_data = /datum/block_parry_data/captain_saber
+
+/datum/block_parry_data/captain_saber
+ parry_time_windup = 0.5
+ parry_time_active = 4
+ parry_time_spindown = 1
+ parry_time_perfect = 0.75
+ parry_time_perfect_leeway = 0.75
+ parry_imperfect_falloff_percent = 30
+ parry_efficiency_perfect = 100
+ parry_failed_stagger_duration = 3 SECONDS
+ parry_failed_clickcd_duration = 2 SECONDS
/obj/item/melee/sabre/Initialize()
. = ..()
@@ -150,7 +162,6 @@
righthand_file = 'icons/mob/inhands/weapons/swords_righthand.dmi'
force = 15
throwforce = 25
- block_chance = 50
armour_penetration = 200 //Apparently this gives it the ability to pierce block
flags_1 = CONDUCT_1
obj_flags = UNIQUE_RENAME
@@ -159,16 +170,47 @@
attack_verb = list("stabs", "punctures", "pierces", "pokes")
hitsound = 'sound/weapons/rapierhit.ogg'
total_mass = 0.4
+ item_flags = ITEM_CAN_PARRY | NEEDS_PERMIT
+ block_parry_data = /datum/block_parry_data/traitor_rapier
+
+// Fast, efficient parry.
+/datum/block_parry_data/traitor_rapier
+ parry_time_windup = 0.5
+ parry_time_active = 5
+ parry_time_spindown = 0
+ parry_time_active_visual_override = 3
+ parry_time_spindown_visual_override = 2
+ parry_flags = PARRY_DEFAULT_HANDLE_FEEDBACK | PARRY_LOCK_ATTACKING
+ parry_time_perfect = 0
+ parry_time_perfect_leeway = 3
+ parry_time_perfect_leeway_override = list(
+ TEXT_ATTACK_TYPE_PROJECTILE = 1
+ )
+ parry_imperfect_falloff_percent_override = list(
+ TEXT_ATTACK_TYPE_PROJECTILE = 50 // useless after 3rd decisecond
+ )
+ parry_imperfect_falloff_percent = 30
+ parry_efficiency_to_counterattack = 100
+ parry_efficiency_considered_successful = 1
+ parry_efficiency_perfect = 100
+ parry_data = list(
+ PARRY_DISARM_ATTACKER = TRUE,
+ PARRY_KNOCKDOWN_ATTACKER = 10
+ )
+ parry_failed_stagger_duration = 2 SECONDS
+ parry_failed_clickcd_duration = CLICK_CD_RANGE
+ parry_cooldown = 0
+
+/obj/item/melee/rapier/active_parry_reflex_counter(mob/living/owner, atom/object, damage, attack_text, attack_type, armour_penetration, mob/attacker, def_zone, list/return_list, parry_efficiency, list/effect_text)
+ . = ..()
+ if((attack_type & ATTACK_TYPE_PROJECTILE) && (parry_efficiency >= 100))
+ . |= BLOCK_SHOULD_REDIRECT
+ return_list[BLOCK_RETURN_REDIRECT_METHOD] = REDIRECT_METHOD_DEFLECT
/obj/item/melee/rapier/Initialize()
. = ..()
AddComponent(/datum/component/butchering, 20, 65, 0)
-/obj/item/melee/rapier/run_block(mob/living/owner, atom/object, damage, attack_text, attack_type, armour_penetration, mob/attacker, def_zone, final_block_chance, list/block_return)
- if(attack_type == ATTACK_TYPE_PROJECTILE)
- final_block_chance = 0
- return ..()
-
/obj/item/melee/rapier/on_exit_storage(datum/component/storage/S)
var/obj/item/storage/belt/sabre/rapier/B = S.parent
if(istype(B))
@@ -191,10 +233,9 @@
. = ..()
if(iscarbon(target))
var/mob/living/carbon/H = target
- var/loss = H.getStaminaLoss()
H.Dizzy(10)
H.adjustStaminaLoss(30)
- if((loss > 40) && prob(loss)) // if above 40, roll for sleep using 1% every 1 stamina damage
+ if(CHECK_STAMCRIT(H) != NOT_STAMCRIT)
H.Sleeping(180)
/obj/item/melee/classic_baton
@@ -664,4 +705,4 @@
. = ..()
overlay = mutable_appearance(icon, overlay_state)
overlay.appearance_flags = RESET_COLOR
- add_overlay(overlay)
\ No newline at end of file
+ add_overlay(overlay)
diff --git a/code/game/objects/items/pinpointer.dm b/code/game/objects/items/pinpointer.dm
index a1652fd211..5a395c112a 100644
--- a/code/game/objects/items/pinpointer.dm
+++ b/code/game/objects/items/pinpointer.dm
@@ -78,7 +78,7 @@
name = "crew pinpointer"
desc = "A handheld tracking device that points to crew suit sensors."
icon_state = "pinpointer_crew"
- custom_price = 600
+ custom_price = PRICE_ABOVE_EXPENSIVE
var/has_owner = FALSE
var/pinpointer_owner = null
diff --git a/code/game/objects/items/plushes.dm b/code/game/objects/items/plushes.dm
index a564d7f9f9..00a9ff22f4 100644
--- a/code/game/objects/items/plushes.dm
+++ b/code/game/objects/items/plushes.dm
@@ -140,7 +140,8 @@
if(jsonlist["icon_state"])
icon_state = jsonlist["icon_state"]
item_state = jsonlist["item_state"]
- icon = 'config/plushies/sprites.dmi'
+ var/static/config_sprites = file("config/plushies/sprites.dmi")
+ icon = config_sprites
if(jsonlist["attack_verb"])
attack_verb = jsonlist["attack_verb"]
if(jsonlist["squeak_override"])
@@ -436,13 +437,13 @@ GLOBAL_LIST_INIT(valid_plushie_paths, valid_plushie_paths())
/obj/item/toy/plush/random/Initialize()
var/newtype
var/list/snowflake_list = CONFIG_GET(keyed_list/snowflake_plushies)
-
+
/// If there are no snowflake plushies we'll default to base plush, so we grab from the valid list
if (snowflake_list.len)
newtype = prob(CONFIG_GET(number/snowflake_plushie_prob)) ? /obj/item/toy/plush/random_snowflake : pick(GLOB.valid_plushie_paths)
- else
+ else
newtype = pick(GLOB.valid_plushie_paths)
-
+
new newtype(loc)
return INITIALIZE_HINT_QDEL
diff --git a/code/game/objects/items/robot/robot_items.dm b/code/game/objects/items/robot/robot_items.dm
index 2f697553f5..4b8728e426 100644
--- a/code/game/objects/items/robot/robot_items.dm
+++ b/code/game/objects/items/robot/robot_items.dm
@@ -358,6 +358,7 @@
check_amount()
/obj/item/borg/lollipop/dropped(mob/user)
+ . = ..()
check_amount()
/obj/item/borg/lollipop/proc/check_amount() //Doesn't even use processing ticks.
diff --git a/code/game/objects/items/shields.dm b/code/game/objects/items/shields.dm
index b9cde1664f..aefa5d3cc8 100644
--- a/code/game/objects/items/shields.dm
+++ b/code/game/objects/items/shields.dm
@@ -1,7 +1,8 @@
/obj/item/shield
name = "shield"
icon = 'icons/obj/shields.dmi'
- block_chance = 50
+ item_flags = ITEM_CAN_BLOCK
+ block_parry_data = /datum/block_parry_data/shield
armor = list("melee" = 50, "bullet" = 50, "laser" = 50, "energy" = 0, "bomb" = 30, "bio" = 0, "rad" = 0, "fire" = 80, "acid" = 70)
/// Shield flags
var/shield_flags = SHIELD_FLAGS_DEFAULT
@@ -22,6 +23,18 @@
/// Shield bashing push distance
var/shieldbash_push_distance = 1
+/datum/block_parry_data/shield
+ block_damage_multiplier = 0.25
+ block_stamina_efficiency = 2.5
+ block_stamina_cost_per_second = 3.5
+ block_slowdown = 0
+ block_lock_attacking = FALSE
+ block_lock_sprinting = TRUE
+ block_start_delay = 1.5
+ block_damage_absorption = 5
+ block_resting_stamina_penalty_multiplier = 2
+ block_projectile_mitigation = 75
+
/obj/item/shield/examine(mob/user)
. = ..()
if(shield_flags & SHIELD_CAN_BASH)
@@ -154,6 +167,22 @@
icon_state = "shield_bash"
duration = 3
+/obj/item/shield/run_block(mob/living/owner, atom/object, damage, attack_text, attack_type, armour_penetration, mob/attacker, def_zone, final_block_chance, list/block_return)
+ if(ismovable(object))
+ var/atom/movable/AM = object
+ if(CHECK_BITFIELD(shield_flags, SHIELD_TRANSPARENT) && (AM.pass_flags & PASSGLASS))
+ return BLOCK_NONE
+ if(attack_type & ATTACK_TYPE_THROWN)
+ final_block_chance += 30
+ if(attack_type & ATTACK_TYPE_TACKLE)
+ final_block_chance = 100
+ . = ..()
+ if(. & BLOCK_SUCCESS)
+ on_shield_block(owner, object, damage, attack_text, attack_type, armour_penetration, attacker, def_zone, final_block_chance, block_return)
+
+/obj/item/shield/on_active_block(mob/living/owner, atom/object, damage, damage_blocked, attack_text, attack_type, armour_penetration, mob/attacker, def_zone, final_block_chance, list/block_return, override_direction)
+ on_shield_block(owner, object, damage, attack_text, attack_type, armour_penetration, attacker, def_zone, final_block_chance)
+
/obj/item/shield/riot
name = "riot shield"
desc = "A shield adept at blocking blunt objects from connecting with the torso of the shield wielder."
@@ -172,20 +201,7 @@
var/repair_material = /obj/item/stack/sheet/mineral/titanium
var/can_shatter = TRUE
shield_flags = SHIELD_FLAGS_DEFAULT | SHIELD_TRANSPARENT
- max_integrity = 75
-
-/obj/item/shield/run_block(mob/living/owner, atom/object, damage, attack_text, attack_type, armour_penetration, mob/attacker, def_zone, final_block_chance, list/block_return)
- if(ismovable(object))
- var/atom/movable/AM = object
- if(CHECK_BITFIELD(shield_flags, SHIELD_TRANSPARENT) && (AM.pass_flags & PASSGLASS))
- return BLOCK_NONE
- if(attack_type & ATTACK_TYPE_THROWN)
- final_block_chance += 30
- if(attack_type & ATTACK_TYPE_TACKLE)
- final_block_chance = 100
- . = ..()
- if(. & BLOCK_SUCCESS)
- on_shield_block(owner, object, damage, attack_text, attack_type, armour_penetration, attacker, def_zone, final_block_chance, block_return)
+ max_integrity = 450
/obj/item/shield/riot/attackby(obj/item/W, mob/user, params)
if(istype(W, /obj/item/melee/baton))
@@ -238,13 +254,13 @@
lefthand_file = 'icons/mob/inhands/equipment/shields_lefthand.dmi'
righthand_file = 'icons/mob/inhands/equipment/shields_righthand.dmi'
shield_flags = SHIELD_FLAGS_DEFAULT
- max_integrity = 55 //Weak
+ max_integrity = 300
obj/item/shield/riot/bullet_proof
name = "bullet resistant shield"
desc = "A far more frail shield made of resistant plastics and kevlar meant to block ballistics."
armor = list("melee" = 30, "bullet" = 80, "laser" = 0, "energy" = 0, "bomb" = -40, "bio" = 0, "rad" = 0, "fire" = 0, "acid" = 50)
- max_integrity = 55 //Weaker
+ max_integrity = 300
/obj/item/shield/riot/roman
name = "\improper Roman shield"
@@ -255,13 +271,13 @@ obj/item/shield/riot/bullet_proof
righthand_file = 'icons/mob/inhands/equipment/shields_righthand.dmi'
repair_material = /obj/item/stack/sheet/mineral/wood
shield_flags = SHIELD_FLAGS_DEFAULT
- max_integrity = 65
+ max_integrity = 250
/obj/item/shield/riot/roman/fake
desc = "Bears an inscription on the inside: \"Romanes venio domus\". It appears to be a bit flimsy."
block_chance = 0
armor = list("melee" = 0, "bullet" = 0, "laser" = 0, "energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 0, "acid" = 0)
- max_integrity = 30
+ max_integrity = 40
/obj/item/shield/riot/roman/shatter(mob/living/carbon/human/owner)
playsound(owner, 'sound/effects/grillehit.ogg', 100)
@@ -279,7 +295,7 @@ obj/item/shield/riot/bullet_proof
repair_material = /obj/item/stack/sheet/mineral/wood
block_chance = 30
shield_flags = SHIELD_FLAGS_DEFAULT
- max_integrity = 55
+ max_integrity = 150
/obj/item/shield/riot/buckler/shatter(mob/living/carbon/human/owner)
playsound(owner, 'sound/effects/bang.ogg', 50)
@@ -297,13 +313,16 @@ obj/item/shield/riot/bullet_proof
throw_speed = 3
throw_range = 4
w_class = WEIGHT_CLASS_NORMAL
- var/active = 0
+ var/active = FALSE
/obj/item/shield/riot/tele/run_block(mob/living/owner, atom/object, damage, attack_text, attack_type, armour_penetration, mob/attacker, def_zone, final_block_chance, list/block_return)
if(!active)
return BLOCK_NONE
return ..()
+/obj/item/shield/riot/tele/can_active_block()
+ return ..() && active
+
/obj/item/shield/riot/tele/attack_self(mob/living/user)
active = !active
icon_state = "teleriot[active]"
@@ -335,8 +354,7 @@ obj/item/shield/riot/bullet_proof
icon_state = "makeshift_shield"
custom_materials = list(/datum/material/iron = 18000)
slot_flags = null
- block_chance = 35
- max_integrity = 100 //Made of metal welded together its strong but not unkillable
+ max_integrity = 300 //Made of metal welded together its strong but not unkillable
force = 10
throwforce = 7
@@ -346,7 +364,6 @@ obj/item/shield/riot/bullet_proof
armor = list("melee" = 95, "bullet" = 95, "laser" = 75, "energy" = 60, "bomb" = 90, "bio" = 90, "rad" = 0, "fire" = 90, "acid" = 10) //Armor for the item, dosnt transfer to user
item_state = "metal"
icon_state = "metal"
- block_chance = 75 //1/4 shots will hit*
force = 16
slowdown = 2
throwforce = 15 //Massive pice of metal
@@ -357,19 +374,17 @@ obj/item/shield/riot/bullet_proof
/obj/item/shield/riot/tower/swat
name = "swat shield"
desc = "A massive, heavy shield that can block a lot of attacks, can take a lot of abuse before breaking."
- max_integrity = 175
- block_chance = 50
+ max_integrity = 250
/obj/item/shield/riot/implant
name = "telescoping shield implant"
desc = "A compact, arm-mounted telescopic shield. While nigh-indestructible when powered by a host user, it will eventually overload from damage. Recharges while inside its implant."
item_state = "metal"
icon_state = "metal"
- block_chance = 50
slowdown = 1
shield_flags = SHIELD_FLAGS_DEFAULT
- max_integrity = 60
- obj_integrity = 60
+ max_integrity = 100
+ obj_integrity = 100
can_shatter = FALSE
item_flags = SLOWS_WHILE_IN_HAND
var/recharge_timerid
diff --git a/code/game/objects/items/stacks/medical.dm b/code/game/objects/items/stacks/medical.dm
index 59a993ad96..98bf02906b 100644
--- a/code/game/objects/items/stacks/medical.dm
+++ b/code/game/objects/items/stacks/medical.dm
@@ -96,7 +96,7 @@
var/stop_bleeding = 1800
var/heal_brute = 5
self_delay = 10
- custom_price = 100
+ custom_price = PRICE_REALLY_CHEAP
/obj/item/stack/medical/gauze/heal(mob/living/M, mob/user)
if(ishuman(M))
diff --git a/code/game/objects/items/stacks/sheets/sheet_types.dm b/code/game/objects/items/stacks/sheets/sheet_types.dm
index 5d22e3d61b..3390c5eea4 100644
--- a/code/game/objects/items/stacks/sheets/sheet_types.dm
+++ b/code/game/objects/items/stacks/sheets/sheet_types.dm
@@ -242,6 +242,7 @@ GLOBAL_LIST_INIT(wood_recipes, list ( \
null, \
new/datum/stack_recipe("wooden firearm body", /obj/item/weaponcrafting/improvised_parts/wooden_body, 10, time = 40), \
new/datum/stack_recipe("rifle stock", /obj/item/weaponcrafting/stock, 10, time = 40), \
+ new/datum/stack_recipe("pistol grip", /obj/item/weaponcrafting/improvised_parts/wooden_grip, 5, time = 40), \
new/datum/stack_recipe("rolling pin", /obj/item/kitchen/rollingpin, 2, time = 30), \
new/datum/stack_recipe("wooden bucket", /obj/item/reagent_containers/glass/bucket/wood, 2, time = 30), \
new/datum/stack_recipe("painting frame", /obj/item/wallframe/painting, 1, time = 10),\
diff --git a/code/game/objects/items/storage/bags.dm b/code/game/objects/items/storage/bags.dm
index d687702af5..315b342ea7 100644
--- a/code/game/objects/items/storage/bags.dm
+++ b/code/game/objects/items/storage/bags.dm
@@ -427,3 +427,21 @@
var/datum/component/storage/STR = GetComponent(/datum/component/storage)
STR.max_combined_w_class = INFINITY
STR.max_items = 100
+
+/obj/item/storage/bag/ammo
+ name = "ammo pouch"
+ desc = "A pouch for your ammo that goes in your pocket."
+ icon = 'icons/obj/items_and_weapons.dmi'
+ icon_state = "ammopouch"
+ slot_flags = ITEM_SLOT_POCKET
+ w_class = WEIGHT_CLASS_BULKY
+ resistance_flags = FLAMMABLE
+
+/obj/item/storage/bag/ammo/ComponentInitialize()
+ . = ..()
+ var/datum/component/storage/STR = GetComponent(/datum/component/storage)
+ STR.max_w_class = WEIGHT_CLASS_NORMAL
+ STR.max_combined_w_class = 30
+ STR.max_items = 3
+ STR.display_numerical_stacking = FALSE
+ STR.can_hold = typecacheof(list(/obj/item/ammo_box/magazine, /obj/item/ammo_casing))
\ No newline at end of file
diff --git a/code/game/objects/items/storage/belt.dm b/code/game/objects/items/storage/belt.dm
index 82ae274012..7809f6d73b 100755
--- a/code/game/objects/items/storage/belt.dm
+++ b/code/game/objects/items/storage/belt.dm
@@ -713,7 +713,7 @@
icon_state = "fannypack_leather"
item_state = "fannypack_leather"
dying_key = DYE_REGISTRY_FANNYPACK
- custom_price = 100
+ custom_price = PRICE_ALMOST_CHEAP
/obj/item/storage/belt/fannypack/ComponentInitialize()
. = ..()
diff --git a/code/game/objects/items/storage/boxes.dm b/code/game/objects/items/storage/boxes.dm
index c5b48164a0..41c5204bdc 100644
--- a/code/game/objects/items/storage/boxes.dm
+++ b/code/game/objects/items/storage/boxes.dm
@@ -434,6 +434,7 @@
desc = "Instructions: Heat in microwave. Product will cool if not eaten within seven minutes."
icon_state = "donkpocketbox"
illustration=null
+ custom_premium_price = PRICE_ABOVE_NORMAL // git gud
/obj/item/storage/box/donkpockets/ComponentInitialize()
. = ..()
@@ -622,7 +623,7 @@
item_state = "zippo"
w_class = WEIGHT_CLASS_TINY
slot_flags = ITEM_SLOT_BELT
- custom_price = 20
+ custom_price = PRICE_REALLY_CHEAP
/obj/item/storage/box/matches/ComponentInitialize()
. = ..()
@@ -1343,6 +1344,7 @@
name = "box of marshmallows"
desc = "A box of marshmallows."
illustration = "marshmallow"
+ custom_premium_price = PRICE_BELOW_NORMAL
/obj/item/storage/box/marshmallow/PopulateContents()
for (var/i in 1 to 5)
diff --git a/code/game/objects/items/storage/fancy.dm b/code/game/objects/items/storage/fancy.dm
index 685a3b59f6..b78bd99d92 100644
--- a/code/game/objects/items/storage/fancy.dm
+++ b/code/game/objects/items/storage/fancy.dm
@@ -70,6 +70,7 @@
name = "donut box"
spawn_type = /obj/item/reagent_containers/food/snacks/donut
fancy_open = TRUE
+ custom_price = PRICE_NORMAL
/obj/item/storage/fancy/donut_box/ComponentInitialize()
. = ..()
@@ -136,7 +137,7 @@
slot_flags = ITEM_SLOT_BELT
icon_type = "cigarette"
spawn_type = /obj/item/clothing/mask/cigarette/space_cigarette
- custom_price = 75
+ custom_price = PRICE_ALMOST_CHEAP
/obj/item/storage/fancy/cigarettes/ComponentInitialize()
. = ..()
@@ -278,7 +279,7 @@
///The value in here has NOTHING to do with icons. It needs to be this for the proper examine.
icon_type = "rolling paper"
spawn_type = /obj/item/rollingpaper
- custom_price = 25
+ custom_price = PRICE_REALLY_CHEAP
/obj/item/storage/fancy/rollingpapers/ComponentInitialize()
. = ..()
diff --git a/code/game/objects/items/storage/firstaid.dm b/code/game/objects/items/storage/firstaid.dm
index c7c0a711c8..ba2746844c 100644
--- a/code/game/objects/items/storage/firstaid.dm
+++ b/code/game/objects/items/storage/firstaid.dm
@@ -432,8 +432,8 @@
throw_range = 7
var/empty = FALSE
item_state = "firstaid"
- custom_price = 300
- custom_premium_price = 500
+ custom_price = PRICE_ABOVE_NORMAL
+ custom_premium_price = PRICE_EXPENSIVE
/obj/item/storage/hypospraykit/ComponentInitialize()
. = ..()
diff --git a/code/game/objects/items/stunbaton.dm b/code/game/objects/items/stunbaton.dm
index 60fc761bfe..fa0c9ba693 100644
--- a/code/game/objects/items/stunbaton.dm
+++ b/code/game/objects/items/stunbaton.dm
@@ -170,10 +170,12 @@
return disarming || (user.a_intent != INTENT_HARM)
/obj/item/melee/baton/proc/baton_stun(mob/living/L, mob/user, disarming = FALSE)
- if(L.mob_run_block(src, 0, "[user]'s [name]", ATTACK_TYPE_MELEE, 0, user, null, null) & BLOCK_SUCCESS) //No message; check_shields() handles that
+ var/list/return_list = list()
+ if(L.mob_run_block(src, 0, "[user]'s [name]", ATTACK_TYPE_MELEE, 0, user, null, return_list) & BLOCK_SUCCESS) //No message; check_shields() handles that
playsound(L, 'sound/weapons/genhit.ogg', 50, 1)
return FALSE
var/stunpwr = stamforce
+ stunpwr = block_calculate_resultant_damage(stunpwr, return_list)
var/obj/item/stock_parts/cell/our_cell = get_cell()
if(!our_cell)
switch_status(FALSE)
diff --git a/code/game/objects/items/tanks/tanks.dm b/code/game/objects/items/tanks/tanks.dm
index 96ba2d11d4..399511c032 100644
--- a/code/game/objects/items/tanks/tanks.dm
+++ b/code/game/objects/items/tanks/tanks.dm
@@ -153,6 +153,10 @@
return (BRUTELOSS)
+/obj/item/tank/attack_ghost(mob/dead/observer/O)
+ . = ..()
+ atmosanalyzer_scan(air_contents, O, src, FALSE)
+
/obj/item/tank/attackby(obj/item/W, mob/user, params)
add_fingerprint(user)
if(istype(W, /obj/item/assembly_holder))
diff --git a/code/game/objects/items/tanks/watertank.dm b/code/game/objects/items/tanks/watertank.dm
index de5f332f43..b1c0d3dfbb 100644
--- a/code/game/objects/items/tanks/watertank.dm
+++ b/code/game/objects/items/tanks/watertank.dm
@@ -145,7 +145,7 @@
desc = "A janitorial watertank backpack with nozzle to clean dirt and graffiti."
icon_state = "waterbackpackjani"
item_state = "waterbackpackjani"
- custom_price = 1000
+ custom_price = PRICE_ALMOST_ONE_GRAND
/obj/item/watertank/janitor/Initialize()
. = ..()
diff --git a/code/game/objects/items/toys.dm b/code/game/objects/items/toys.dm
index f3c35b0495..cd630a2c82 100644
--- a/code/game/objects/items/toys.dm
+++ b/code/game/objects/items/toys.dm
@@ -446,6 +446,7 @@
throw_range = 5
force_unwielded = 0
force_wielded = 0
+ block_parry_data = null
attack_verb = list("attacked", "struck", "hit")
total_mass_on = TOTAL_MASS_TOY_SWORD
sharpness = IS_BLUNT
diff --git a/code/game/objects/items/twohanded.dm b/code/game/objects/items/twohanded.dm
index 7c59f2fc63..4437eefbf8 100644
--- a/code/game/objects/items/twohanded.dm
+++ b/code/game/objects/items/twohanded.dm
@@ -30,6 +30,8 @@
var/wieldsound = null
var/unwieldsound = null
var/slowdown_wielded = 0
+ /// Do we need to be wielded to actively block/parry?
+ var/requires_wield_to_block_parry = TRUE
item_flags = SLOWS_WHILE_IN_HAND
/obj/item/twohanded/proc/unwield(mob/living/carbon/user, show_message = TRUE)
@@ -90,6 +92,12 @@
user.put_in_inactive_hand(O)
set_slowdown(slowdown + slowdown_wielded)
+/obj/item/twohanded/can_active_block()
+ return ..() && (!requires_wield_to_block_parry || wielded)
+
+/obj/item/twohanded/can_active_parry()
+ return ..() && (!requires_wield_to_block_parry || wielded)
+
/obj/item/twohanded/dropped(mob/user)
. = ..()
//handles unwielding a twohanded weapon when dropped as well as clearing up the offhand
@@ -129,6 +137,7 @@
return ..()
/obj/item/twohanded/offhand/dropped(mob/living/user, show_message = TRUE) //Only utilized by dismemberment since you can't normally switch to the offhand to drop it.
+ . = ..()
var/obj/I = user.get_active_held_item()
if(I && istype(I, /obj/item/twohanded))
var/obj/item/twohanded/thw = I
@@ -274,6 +283,8 @@
throw_range = 5
w_class = WEIGHT_CLASS_SMALL
var/w_class_on = WEIGHT_CLASS_BULKY
+ item_flags = ITEM_CAN_PARRY | SLOWS_WHILE_IN_HAND | ITEM_CAN_BLOCK
+ block_parry_data = /datum/block_parry_data/dual_esword
force_unwielded = 3
force_wielded = 34
wieldsound = 'sound/weapons/saberon.ogg'
@@ -284,7 +295,6 @@
var/saber_color = "green"
light_color = "#00ff00"//green
attack_verb = list("attacked", "slashed", "stabbed", "sliced", "torn", "ripped", "diced", "cut")
- block_chance = 75
max_integrity = 200
armor = list("melee" = 0, "bullet" = 0, "laser" = 0, "energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 100, "acid" = 70)
resistance_flags = FIRE_PROOF
@@ -298,6 +308,42 @@
total_mass = 0.4 //Survival flashlights typically weigh around 5 ounces.
var/total_mass_on = 3.4
+/datum/block_parry_data/dual_esword
+ block_damage_absorption = 2
+ block_damage_multiplier = 0.15
+ block_damage_multiplier_override = list(
+ ATTACK_TYPE_MELEE = 0.25
+ )
+ block_start_delay = 0 // instantaneous block
+ block_stamina_cost_per_second = 2.5
+ block_stamina_efficiency = 3
+ block_lock_sprinting = TRUE
+ // no attacking while blocking
+ block_lock_attacking = TRUE
+ block_projectile_mitigation = 75
+
+ parry_time_windup = 0
+ parry_time_active = 8
+ parry_time_spindown = 0
+ // we want to signal to players the most dangerous phase, the time when automatic counterattack is a thing.
+ parry_time_windup_visual_override = 1
+ parry_time_active_visual_override = 3
+ parry_time_spindown_visual_override = 4
+ parry_flags = PARRY_DEFAULT_HANDLE_FEEDBACK // esword users can attack while parrying.
+ parry_time_perfect = 2 // first ds isn't perfect
+ parry_time_perfect_leeway = 1
+ parry_imperfect_falloff_percent = 10
+ parry_efficiency_to_counterattack = 100
+ parry_efficiency_considered_successful = 25 // VERY generous
+ parry_efficiency_perfect = 90
+ parry_failed_stagger_duration = 3 SECONDS
+ parry_failed_clickcd_duration = CLICK_CD_MELEE
+
+ // more efficient vs projectiles
+ block_stamina_efficiency_override = list(
+ TEXT_ATTACK_TYPE_PROJECTILE = 4
+ )
+
/obj/item/twohanded/dualsaber/suicide_act(mob/living/carbon/user)
if(wielded)
user.visible_message("[user] begins spinning way too fast! It looks like [user.p_theyre()] trying to commit suicide!")
@@ -849,6 +895,7 @@
return (BRUTELOSS)
/obj/item/twohanded/pitchfork/demonic/pickup(mob/living/user)
+ . = ..()
if(isliving(user) && user.mind && user.owns_soul() && !is_devil(user))
var/mob/living/U = user
U.visible_message("As [U] picks [src] up, [U]'s arms briefly catch fire.", \
@@ -1030,13 +1077,12 @@
force_wielded = 10
throwforce = 15 //if you are a madman and finish someone off with this, power to you.
throw_speed = 1
- item_flags = NO_MAT_REDEMPTION | SLOWS_WHILE_IN_HAND
- block_chance = 30
+ item_flags = NO_MAT_REDEMPTION | SLOWS_WHILE_IN_HAND | ITEM_CAN_BLOCK | ITEM_CAN_PARRY
+ block_parry_data = /datum/block_parry_data/electrostaff
attack_verb = list("struck", "beaten", "thwacked", "pulped")
total_mass = 5 //yeah this is a heavy thing, beating people with it while it's off is not going to do you any favors. (to curb stun-kill rampaging without it being on)
var/obj/item/stock_parts/cell/cell = /obj/item/stock_parts/cell/high
var/on = FALSE
- var/can_block_projectiles = FALSE //can't block guns
var/lethal_cost = 400 //10000/400*20 = 500. decent enough?
var/lethal_damage = 20
var/lethal_stam_cost = 4
@@ -1046,6 +1092,43 @@
var/stun_status_duration = 25
var/stun_stam_cost = 3.5
+// haha security desword time /s
+/datum/block_parry_data/electrostaff
+ block_damage_absorption = 0
+ block_damage_multiplier = 1
+ can_block_attack_types = ~ATTACK_TYPE_PROJECTILE // only able to parry non projectiles
+ block_damage_multiplier_override = list(
+ TEXT_ATTACK_TYPE_MELEE = 0.5, // only useful on melee and unarmed
+ TEXT_ATTACK_TYPE_UNARMED = 0.3
+ )
+ block_start_delay = 0.5 // near instantaneous block
+ block_stamina_cost_per_second = 3
+ block_stamina_efficiency = 2 // haha this is a horrible idea
+ // more slowdown that deswords because security
+ block_slowdown = 2
+ // no attacking while blocking
+ block_lock_attacking = TRUE
+
+ parry_time_windup = 1
+ parry_time_active = 5
+ parry_time_spindown = 0
+ parry_time_spindown_visual_override = 1
+ parry_flags = PARRY_DEFAULT_HANDLE_FEEDBACK | PARRY_LOCK_ATTACKING // no attacking while parrying
+ parry_time_perfect = 0
+ parry_time_perfect_leeway = 0.5
+ parry_efficiency_perfect = 100
+ parry_imperfect_falloff_percent = 1
+ parry_imperfect_falloff_percent_override = list(
+ TEXT_ATTACK_TYPE_PROJECTILE = 45 // really crappy vs projectiles
+ )
+ parry_time_perfect_leeway_override = list(
+ TEXT_ATTACK_TYPE_PROJECTILE = 1 // extremely harsh window for projectiles
+ )
+ // not extremely punishing to fail, but no spamming the parry.
+ parry_cooldown = 2.5 SECONDS
+ parry_failed_stagger_duration = 1.5 SECONDS
+ parry_failed_clickcd_duration = 1 SECONDS
+
/obj/item/twohanded/electrostaff/Initialize(mapload)
. = ..()
if(ispath(cell))
@@ -1061,11 +1144,6 @@
var/mob/living/silicon/robot/R = loc
. = R.get_cell()
-/obj/item/twohanded/electrostaff/run_block(mob/living/owner, atom/object, damage, attack_text, attack_type, armour_penetration, mob/attacker, def_zone, final_block_chance, list/block_return)
- if(!on || (!can_block_projectiles && (attack_type & ATTACK_TYPE_PROJECTILE)))
- return BLOCK_NONE
- return ..()
-
/obj/item/twohanded/electrostaff/proc/min_hitcost()
return min(stun_cost, lethal_cost)
@@ -1183,22 +1261,23 @@
return
if(iscyborg(target))
return ..()
- if(target.mob_run_block(src, 0, "[user]'s [name]", ATTACK_TYPE_MELEE, 0, user, null, null) & BLOCK_SUCCESS) //No message; run_block() handles that
+ var/list/return_list = list()
+ if(target.mob_run_block(src, 0, "[user]'s [name]", ATTACK_TYPE_MELEE, 0, user, null, return_list) & BLOCK_SUCCESS) //No message; run_block() handles that
playsound(target, 'sound/weapons/genhit.ogg', 50, 1)
return FALSE
if(user.a_intent != INTENT_HARM)
- if(stun_act(target, user))
+ if(stun_act(target, user, null, return_list))
user.do_attack_animation(target)
user.adjustStaminaLossBuffered(stun_stam_cost)
return
- else if(!harm_act(target, user))
+ else if(!harm_act(target, user, null, return_list))
return ..() //if you can't fry them just beat them with it
else //we did harm act them
user.do_attack_animation(target)
user.adjustStaminaLossBuffered(lethal_stam_cost)
-/obj/item/twohanded/electrostaff/proc/stun_act(mob/living/target, mob/living/user, no_charge_and_force = FALSE)
- var/stunforce = stun_stamdmg
+/obj/item/twohanded/electrostaff/proc/stun_act(mob/living/target, mob/living/user, no_charge_and_force = FALSE, list/block_return = list())
+ var/stunforce = block_calculate_resultant_damage(stun_stamdmg, block_return)
if(!no_charge_and_force)
if(!on)
target.visible_message("[user] has bapped [target] with [src]. Luckily it was off.", \
@@ -1228,8 +1307,8 @@
H.forcesay(GLOB.hit_appends)
return TRUE
-/obj/item/twohanded/electrostaff/proc/harm_act(mob/living/target, mob/living/user, no_charge_and_force = FALSE)
- var/lethal_force = lethal_damage
+/obj/item/twohanded/electrostaff/proc/harm_act(mob/living/target, mob/living/user, no_charge_and_force = FALSE, list/block_return = list())
+ var/lethal_force = block_calculate_resultant_damage(lethal_damage, block_return)
if(!no_charge_and_force)
if(!on)
return FALSE //standard item attack
diff --git a/code/game/objects/items/weaponry.dm b/code/game/objects/items/weaponry.dm
index f2b3d1ec9b..b48d2a81e4 100644
--- a/code/game/objects/items/weaponry.dm
+++ b/code/game/objects/items/weaponry.dm
@@ -122,11 +122,13 @@ for further reading, please see: https://github.com/tgstation/tgstation/pull/301
/obj/item/claymore/highlander/pickup(mob/living/user)
+ . = ..()
to_chat(user, "The power of Scotland protects you! You are shielded from all stuns and knockdowns.")
user.add_stun_absorption("highlander", INFINITY, 1, " is protected by the power of Scotland!", "The power of Scotland absorbs the stun!", " is protected by the power of Scotland!")
user.ignore_slowdown(HIGHLANDER)
/obj/item/claymore/highlander/dropped(mob/living/user)
+ . = ..()
user.unignore_slowdown(HIGHLANDER)
if(!QDELETED(src))
qdel(src) //If this ever happens, it's because you lost an arm
diff --git a/code/game/objects/structures/petrified_statue.dm b/code/game/objects/structures/petrified_statue.dm
index a8a5a577c2..97eadff5f6 100644
--- a/code/game/objects/structures/petrified_statue.dm
+++ b/code/game/objects/structures/petrified_statue.dm
@@ -4,11 +4,13 @@
icon_state = "human_male"
density = TRUE
anchored = TRUE
+ flags_1 = PREVENT_CONTENTS_EXPLOSION_1
max_integrity = 200
- var/timer = 240 //eventually the person will be freed
+ var/timer = 8 MINUTES //eventually the person will be freed
var/mob/living/petrified_mob
-/obj/structure/statue/petrified/New(loc, mob/living/L, statue_timer)
+/obj/structure/statue/petrified/Initialize(mapload, mob/living/L, statue_timer)
+ . = ..()
if(statue_timer)
timer = statue_timer
if(L)
@@ -17,25 +19,18 @@
L.buckled.unbuckle_mob(L,force=1)
L.visible_message("[L]'s skin rapidly turns to marble!", "Your body freezes up! Can't... move... can't... think...")
L.forceMove(src)
- ADD_TRAIT(L, TRAIT_MUTE, STATUE_MUTE)
+ ADD_TRAIT(L, TRAIT_MUTE, STATUE_TRAIT)
+ ADD_TRAIT(L, TRAIT_EMOTEMUTE, STATUE_TRAIT)
+ ADD_TRAIT(L, TRAIT_LOOC_MUTE, STATUE_TRAIT)
+ ADD_TRAIT(L, TRAIT_AOOC_MUTE, STATUE_TRAIT)
+ ADD_TRAIT(L, TRAIT_MOBILITY_NOMOVE, STATUE_TRAIT)
+ ADD_TRAIT(L, TRAIT_MOBILITY_NOPICKUP, STATUE_TRAIT)
+ ADD_TRAIT(L, TRAIT_MOBILITY_NOUSE, STATUE_TRAIT)
L.faction += "mimic" //Stops mimics from instaqdeling people in statues
L.status_flags |= GODMODE
obj_integrity = L.health + 100 //stoning damaged mobs will result in easier to shatter statues
max_integrity = obj_integrity
- START_PROCESSING(SSobj, src)
- ..()
-
-/obj/structure/statue/petrified/process()
- if(!petrified_mob)
- STOP_PROCESSING(SSobj, src)
- timer--
- petrified_mob.Stun(40) //So they can't do anything while petrified
- if(timer <= 0)
- STOP_PROCESSING(SSobj, src)
- qdel(src)
-
-/obj/structure/statue/petrified/contents_explosion(severity, target)
- return
+ QDEL_IN(src, timer)
/obj/structure/statue/petrified/handle_atom_del(atom/A)
if(A == petrified_mob)
@@ -59,7 +54,13 @@
if(petrified_mob)
petrified_mob.status_flags &= ~GODMODE
petrified_mob.forceMove(loc)
- REMOVE_TRAIT(petrified_mob, TRAIT_MUTE, STATUE_MUTE)
+ REMOVE_TRAIT(petrified_mob, TRAIT_MUTE, STATUE_TRAIT)
+ REMOVE_TRAIT(petrified_mob, TRAIT_EMOTEMUTE, STATUE_TRAIT)
+ REMOVE_TRAIT(petrified_mob, TRAIT_LOOC_MUTE, STATUE_TRAIT)
+ REMOVE_TRAIT(petrified_mob, TRAIT_AOOC_MUTE, STATUE_TRAIT)
+ REMOVE_TRAIT(petrified_mob, TRAIT_MOBILITY_NOMOVE, STATUE_TRAIT)
+ REMOVE_TRAIT(petrified_mob, TRAIT_MOBILITY_NOPICKUP, STATUE_TRAIT)
+ REMOVE_TRAIT(petrified_mob, TRAIT_MOBILITY_NOUSE, STATUE_TRAIT)
petrified_mob.take_overall_damage((petrified_mob.health - obj_integrity + 100)) //any new damage the statue incurred is transfered to the mob
petrified_mob.faction -= "mimic"
petrified_mob = null
diff --git a/code/game/objects/structures/watercloset.dm b/code/game/objects/structures/watercloset.dm
index ddf7fa6bc6..5eecc6962a 100644
--- a/code/game/objects/structures/watercloset.dm
+++ b/code/game/objects/structures/watercloset.dm
@@ -19,6 +19,13 @@
open = round(rand(0, 1))
update_icon()
+/obj/structure/toilet/Destroy()
+ if(loc)
+ for(var/A in contents)
+ var/atom/movable/AM = A
+ AM.forceMove(loc)
+ return ..()
+
/obj/structure/toilet/attack_hand(mob/living/user)
. = ..()
if(.)
diff --git a/code/game/turfs/simulated/wall/mineral_walls.dm b/code/game/turfs/simulated/wall/mineral_walls.dm
index b04f4f0aa0..5c74eb4ecc 100644
--- a/code/game/turfs/simulated/wall/mineral_walls.dm
+++ b/code/game/turfs/simulated/wall/mineral_walls.dm
@@ -191,7 +191,7 @@
icon = 'icons/turf/walls/shuttle_wall.dmi'
icon_state = "map-shuttle"
explosion_block = 3
- flags_1 = CAN_BE_DIRTY_1 | CHECK_RICOCHET_1
+ flags_1 = CAN_BE_DIRTY_1 | DEFAULT_RICOCHET_1
sheet_type = /obj/item/stack/sheet/mineral/titanium
smooth = SMOOTH_MORE|SMOOTH_DIAGONAL
canSmoothWith = list(/turf/closed/wall/mineral/titanium, /obj/machinery/door/airlock/shuttle, /obj/machinery/door/airlock, /obj/structure/window/shuttle, /obj/structure/shuttle/engine/heater, /obj/structure/falsewall/titanium)
@@ -302,4 +302,4 @@
/turf/closed/wall/mineral/plastitanium/copyTurf(turf/T)
. = ..()
- T.transform = transform
\ No newline at end of file
+ T.transform = transform
diff --git a/code/game/turfs/simulated/walls.dm b/code/game/turfs/simulated/walls.dm
index 5243341ac1..da5d3c643d 100644
--- a/code/game/turfs/simulated/walls.dm
+++ b/code/game/turfs/simulated/walls.dm
@@ -41,7 +41,7 @@
/turf/closed/wall/attack_tk()
return
-/turf/closed/wall/handle_ricochet(obj/item/projectile/P) //A huge pile of shitcode!
+/turf/closed/wall/handle_projectile_ricochet(obj/item/projectile/P) //A huge pile of shitcode!
var/turf/p_turf = get_turf(P)
var/face_direction = get_dir(src, p_turf)
var/face_angle = dir2angle(face_direction)
diff --git a/code/modules/admin/verbs/SDQL2/SDQL_2.dm b/code/modules/admin/verbs/SDQL2/SDQL_2.dm
index df54df5c7d..bff431a6c7 100644
--- a/code/modules/admin/verbs/SDQL2/SDQL_2.dm
+++ b/code/modules/admin/verbs/SDQL2/SDQL_2.dm
@@ -346,7 +346,7 @@ GLOBAL_DATUM_INIT(sdql2_vv_statobj, /obj/effect/statclick/SDQL2_VV_all, new(null
//print the key
if(islist(key))
recursive_list_print(output, key, datum_handler, atom_handler)
- else if(is_proper_datum(key) && (datum_handler || (isatom(key) && atom_handler)))
+ else if(is_object_datatype(key) && (datum_handler || (isatom(key) && atom_handler)))
if(isatom(key) && atom_handler)
output += atom_handler.Invoke(key)
else
@@ -360,7 +360,7 @@ GLOBAL_DATUM_INIT(sdql2_vv_statobj, /obj/effect/statclick/SDQL2_VV_all, new(null
var/value = input[key]
if(islist(value))
recursive_list_print(output, value, datum_handler, atom_handler)
- else if(is_proper_datum(value) && (datum_handler || (isatom(value) && atom_handler)))
+ else if(is_object_datatype(value) && (datum_handler || (isatom(value) && atom_handler)))
if(isatom(value) && atom_handler)
output += atom_handler.Invoke(value)
else
@@ -498,7 +498,7 @@ GLOBAL_DATUM_INIT(sdql2_vv_statobj, /obj/effect/statclick/SDQL2_VV_all, new(null
if(length(select_text))
var/text = islist(select_text)? select_text.Join() : select_text
var/static/result_offset = 0
- showmob << browse(text, "window=SDQL-result-[result_offset++]")
+ showmob << browse(text, "window=SDQL-result-[result_offset++];size=800x1200")
show_next_to_key = null
if(qdel_on_finish)
qdel(src)
@@ -646,7 +646,7 @@ GLOBAL_DATUM_INIT(sdql2_vv_statobj, /obj/effect/statclick/SDQL2_VV_all, new(null
switch(query_tree[1])
if("call")
for(var/i in found)
- if(!is_proper_datum(i))
+ if(!is_object_datatype(i))
continue
world.SDQL_var(i, query_tree["call"][1], null, i, superuser, src)
obj_count_finished++
@@ -664,7 +664,10 @@ GLOBAL_DATUM_INIT(sdql2_vv_statobj, /obj/effect/statclick/SDQL2_VV_all, new(null
var/list/text_list = list()
var/print_nulls = !(options & SDQL2_OPTION_SELECT_OUTPUT_SKIP_NULLS)
obj_count_finished = select_refs
+ var/n = 0
for(var/i in found)
+ if(++n == 20000)
+ text_list += "
TRUNCATED - 20000 OBJECT LIMIT HIT"
SDQL_print(i, text_list, print_nulls)
select_refs[REF(i)] = TRUE
SDQL2_TICK_CHECK
@@ -675,7 +678,7 @@ GLOBAL_DATUM_INIT(sdql2_vv_statobj, /obj/effect/statclick/SDQL2_VV_all, new(null
if("set" in query_tree)
var/list/set_list = query_tree["set"]
for(var/d in found)
- if(!is_proper_datum(d))
+ if(!is_object_datatype(d))
continue
SDQL_internal_vv(d, set_list)
obj_count_finished++
@@ -685,47 +688,72 @@ GLOBAL_DATUM_INIT(sdql2_vv_statobj, /obj/effect/statclick/SDQL2_VV_all, new(null
obj_count_finished = length(obj_count_finished)
state = SDQL2_STATE_SWITCHING
-/datum/SDQL2_query/proc/SDQL_print(object, list/text_list, print_nulls = TRUE)
- if(is_proper_datum(object))
- text_list += "[REF(object)] : [object]"
- if(istype(object, /atom))
- var/atom/A = object
- var/turf/T = A.loc
- var/area/a
- if(istype(T))
- text_list += " at [T] [ADMIN_COORDJMP(T)]"
- a = T.loc
- else
- var/turf/final = get_turf(T) //Recursive, hopefully?
- if(istype(final))
- text_list += " at [final] [ADMIN_COORDJMP(final)]"
- a = final.loc
+/**
+ * Recursively prints out an object to text list for SDQL2 output to admins, with VV links and all.
+ * Recursion limit: 50
+ * Limit imposed by callers should be around 10000 objects
+ * Seriously, if you hit those limits, you're doing something wrong.
+ */
+/datum/SDQL2_query/proc/SDQL_print(datum/object, list/text_list, print_nulls = TRUE, recursion = 1, linebreak = TRUE)
+ if(recursion > 50)
+ text_list += "
RECURSION LIMIT REACHED.
"
+ return
+ if(is_object_datatype(object))
+ if(!islist(object))
+ text_list += "[object.type] [REF(object)]: [object]"
+ if(istype(object, /atom))
+ if(istype(object, /turf))
+ var/turf/T = object
+ text_list += " [ADMIN_COORDJMP(T)] at [T.loc]"
else
- text_list += " at nonexistant location"
- if(a)
- text_list += " in area [a]"
- if(T.loc != a)
- text_list += " inside [T]"
- text_list += "
"
- else if(islist(object))
- var/list/L = object
- var/first = TRUE
- text_list += "\["
- for (var/x in L)
- if (!first)
- text_list += ", "
- first = FALSE
- SDQL_print(x, text_list)
- if (!isnull(x) && !isnum(x) && L[x] != null)
- text_list += " -> "
- SDQL_print(L[L[x]], text_list)
- text_list += "]
"
+ var/atom/A = object
+ var/atom/container = A.loc
+ if(isturf(container))
+ text_list += " in [container] [ADMIN_COORDJMP(container)] at [container.loc]"
+ else if(container)
+ var/turf/T = get_turf(container)
+ var/cref = REF(container)
+ text_list += " in [container]([cref])"
+ if(T)
+ text_list += " on [T] [ADMIN_COORDJMP(T)] at[T.loc]"
+ else
+ text_list += " in nullspace"
+ else // lists are snowflake and get special treatment.
+ text_list += "/list [REF(object)] \[
"
+ var/list/L = object
+ if(length(L))
+ for(var/key in object)
+ if(islist(key))
+ text_list += ""
+ SDQL_print(key, text_list, TRUE, recursion + 1, FALSE)
+ text_list += ""
+ else
+ SDQL_print(key, text_list, TRUE, recursion, FALSE)
+ if(IS_VALID_ASSOC_KEY(key) && !isnull(L[key]))
+ var/value = L[key]
+ text_list += " --> "
+ if(islist(value))
+ text_list += ""
+ SDQL_print(value, text_list, TRUE, recursion + 1, FALSE)
+ text_list += ""
+ else
+ SDQL_print(value, text_list, TRUE, recursion, FALSE)
+ text_list += "
"
+ text_list += "\]"
+ if(linebreak)
+ text_list += "
"
else
if(isnull(object))
if(print_nulls)
- text_list += "NULL
"
+ text_list += "NULL"
+ else if(istext(object))
+ text_list += "\"[object]\""
+ else if(isnum(object) || ispath(object))
+ text_list += "[object]"
else
- text_list += "[object]
"
+ text_list += "UNKNOWN: [object]"
+ if(linebreak)
+ text_list += "
"
/datum/SDQL2_query/CanProcCall()
if(!allow_admin_interact)
@@ -957,7 +985,7 @@ GLOBAL_DATUM_INIT(sdql2_vv_statobj, /obj/effect/statclick/SDQL2_VV_all, new(null
var/static/list/exclude = list("usr", "src", "marked", "global")
var/long = start < expression.len
var/datum/D
- if(is_proper_datum(object))
+ if(is_object_datatype(object))
D = object
if (object == world && (!long || expression[start + 1] == ".") && !(expression[start] in exclude)) //3 == length("SS") + 1
@@ -1161,9 +1189,6 @@ GLOBAL_DATUM_INIT(sdql2_vv_statobj, /obj/effect/statclick/SDQL2_VV_all, new(null
query_list += word
return query_list
-/proc/is_proper_datum(thing)
- return istype(thing, /datum) || istype(thing, /client)
-
/obj/effect/statclick/SDQL2_delete/Click()
var/datum/SDQL2_query/Q = target
Q.delete_click()
diff --git a/code/modules/admin/view_variables/debug_variables.dm b/code/modules/admin/view_variables/debug_variables.dm
index 5116cd5cd6..ab9f4a534c 100644
--- a/code/modules/admin/view_variables/debug_variables.dm
+++ b/code/modules/admin/view_variables/debug_variables.dm
@@ -16,11 +16,19 @@
header = "
"
var/item
+ var/name_part = VV_HTML_ENCODE(name)
+ if(level > 0 || islist(D)) //handling keys in assoc lists
+ if(istype(name,/datum))
+ name_part = "[VV_HTML_ENCODE(name)] [REF(name)]"
+ else if(islist(name))
+ var/list/L = name
+ name_part = " /list ([length(L)]) [REF(name)]"
+
if (isnull(value))
- item = "[VV_HTML_ENCODE(name)] = null"
+ item = "[name_part] = null"
else if (istext(value))
- item = "[VV_HTML_ENCODE(name)] = \"[VV_HTML_ENCODE(value)]\""
+ item = "[name_part] = \"[VV_HTML_ENCODE(value)]\""
else if (isicon(value))
#ifdef VARSICON
@@ -28,33 +36,31 @@
var/rnd = rand(1,10000)
var/rname = "tmp[REF(I)][rnd].png"
usr << browse_rsc(I, rname)
- item = "[VV_HTML_ENCODE(name)] = ([value])
"
+ item = "[name_part] = ([value])
"
#else
- item = "[VV_HTML_ENCODE(name)] = /icon ([value])"
+ item = "[name_part] = /icon ([value])"
#endif
else if (isfile(value))
- item = "[VV_HTML_ENCODE(name)] = '[value]'"
+ item = "[name_part] = '[value]'"
- else if(istype(value, /matrix)) // Needs to be before datum
+ else if(istype(value,/matrix)) // Needs to be before datum
var/matrix/M = value
- item = {"[VV_HTML_ENCODE(name)] =
-
- | |
-
- | [M.a] | [M.d] | 0 |
- | [M.b] | [M.e] | 0 |
- | [M.c] | [M.f] | 1 |
- |
- |
-
"} //TODO link to modify_transform wrapper for all matrices
-
+ item = {"[name_part] =
+ | |
+
+
+ | [M.a] | [M.d] | 0 |
+ | [M.b] | [M.e] | 0 |
+ | [M.c] | [M.f] | 1 |
+
+ | |
"} //TODO link to modify_transform wrapper for all matrices
else if (istype(value, /datum))
var/datum/DV = value
if ("[DV]" != "[DV.type]") //if the thing as a name var, lets use it.
- item = "[VV_HTML_ENCODE(name)] [REF(value)] = [DV] [DV.type]"
+ item = "[name_part] = [DV] [DV.type] [REF(value)]"
else
- item = "[VV_HTML_ENCODE(name)] [REF(value)] = [DV.type]"
+ item = "[name_part] = [DV.type] [REF(value)]"
else if (islist(value))
var/list/L = value
@@ -72,19 +78,19 @@
items += debug_variable(key, val, level + 1, sanitize = sanitize)
- item = "[VV_HTML_ENCODE(name)] = /list ([L.len])"
+ item = "[name_part] = /list ([L.len])"
else
- item = "[VV_HTML_ENCODE(name)] = /list ([L.len])"
+ item = "[name_part] = /list ([L.len])"
else if (name in GLOB.bitfields)
var/list/flags = list()
for (var/i in GLOB.bitfields[name])
if (value & GLOB.bitfields[name][i])
flags += i
- item = "[VV_HTML_ENCODE(name)] = [VV_HTML_ENCODE(jointext(flags, ", "))]"
+ item = "[name_part] = [VV_HTML_ENCODE(jointext(flags, ", "))]"
else
- item = "[VV_HTML_ENCODE(name)] = [VV_HTML_ENCODE(value)]"
+ item = "[name_part] = [VV_HTML_ENCODE(value)]"
return "[header][item]"
-#undef VV_HTML_ENCODE
+#undef VV_HTML_ENCODE
\ No newline at end of file
diff --git a/code/modules/antagonists/blob/blob/blobs/shield.dm b/code/modules/antagonists/blob/blob/blobs/shield.dm
index bc4e517ced..384df935f5 100644
--- a/code/modules/antagonists/blob/blob/blobs/shield.dm
+++ b/code/modules/antagonists/blob/blob/blobs/shield.dm
@@ -45,13 +45,15 @@
desc = "A solid wall of slightly twitching tendrils with a reflective glow."
damaged_desc = "A wall of twitching tendrils with a reflective glow."
icon_state = "blob_glow"
- flags_1 = CHECK_RICOCHET_1
point_return = 8
max_integrity = 100
brute_resist = 1
explosion_block = 2
-/obj/structure/blob/shield/reflective/handle_ricochet(obj/item/projectile/P)
+/obj/structure/blob/shield/reflective/check_projectile_ricochet(obj/item/projectile/P)
+ return PROJECTILE_RICOCHET_FORCE
+
+/obj/structure/blob/shield/reflective/handle_projectile_ricochet(obj/item/projectile/P)
var/turf/p_turf = get_turf(P)
var/face_direction = get_dir(src, p_turf)
var/face_angle = dir2angle(face_direction)
@@ -61,4 +63,4 @@
var/new_angle_s = SIMPLIFY_DEGREES(face_angle + incidence_s)
P.setAngle(new_angle_s)
visible_message("[P] reflects off [src]!")
- return TRUE
\ No newline at end of file
+ return TRUE
diff --git a/code/modules/antagonists/bloodsucker/items/bloodsucker_stake.dm b/code/modules/antagonists/bloodsucker/items/bloodsucker_stake.dm
index 4c377f4b82..b13238f199 100644
--- a/code/modules/antagonists/bloodsucker/items/bloodsucker_stake.dm
+++ b/code/modules/antagonists/bloodsucker/items/bloodsucker_stake.dm
@@ -167,4 +167,4 @@
///obj/item/pipe = 2)
time = 80
category = CAT_WEAPONRY
- subcategory = CAT_WEAPON
+ subcategory = CAT_MELEE
diff --git a/code/modules/antagonists/changeling/powers/mutations.dm b/code/modules/antagonists/changeling/powers/mutations.dm
index 5378ea2276..e4417a6d64 100644
--- a/code/modules/antagonists/changeling/powers/mutations.dm
+++ b/code/modules/antagonists/changeling/powers/mutations.dm
@@ -432,15 +432,18 @@
/obj/item/shield/changeling
name = "shield-like mass"
desc = "A mass of tough, boney tissue. You can still see the fingers as a twisted pattern in the shield."
- item_flags = ABSTRACT | DROPDEL
+ item_flags = ABSTRACT | DROPDEL | ITEM_CAN_BLOCK
icon = 'icons/obj/items_and_weapons.dmi'
icon_state = "ling_shield"
lefthand_file = 'icons/mob/inhands/antag/changeling_lefthand.dmi'
righthand_file = 'icons/mob/inhands/antag/changeling_righthand.dmi'
- block_chance = 50
+ block_parry_data = /datum/block_parry_data/shield/changeling
var/remaining_uses //Set by the changeling ability.
+/datum/block_parry_data/shield/changeling
+ block_slowdown = 0
+
/obj/item/shield/changeling/Initialize(mapload)
. = ..()
ADD_TRAIT(src, TRAIT_NODROP, CHANGELING_TRAIT)
@@ -451,7 +454,7 @@
block_return[BLOCK_RETURN_BLOCK_CAPACITY] = (block_return[BLOCK_RETURN_BLOCK_CAPACITY] || 0) + remaining_uses
return ..()
-/obj/item/shield/changeling/run_block(mob/living/owner, atom/object, damage, attack_text, attack_type, armour_penetration, mob/attacker, def_zone, final_block_chance, list/block_return)
+/obj/item/shield/changeling/active_block(mob/living/owner, atom/object, damage, attack_text, attack_type, armour_penetration, mob/attacker, def_zone, final_block_chance, list/block_return)
. = ..()
if(--remaining_uses < 1)
if(ishuman(loc))
diff --git a/code/modules/antagonists/clockcult/clock_structure.dm b/code/modules/antagonists/clockcult/clock_structure.dm
index 13da9c5a42..2464015b6b 100644
--- a/code/modules/antagonists/clockcult/clock_structure.dm
+++ b/code/modules/antagonists/clockcult/clock_structure.dm
@@ -101,7 +101,7 @@
return 1
return ..()
-/obj/structure/destructible/clockwork/attacked_by(obj/item/I, mob/living/user)
+/obj/structure/destructible/clockwork/attacked_by(obj/item/I, mob/living/user, attackchain_flags = NONE, damage_multiplier = 1)
if(is_servant_of_ratvar(user) && immune_to_servant_attacks)
return FALSE
return ..()
diff --git a/code/modules/antagonists/cult/cult_items.dm b/code/modules/antagonists/cult/cult_items.dm
index ffab8174e5..8f0f9a658c 100644
--- a/code/modules/antagonists/cult/cult_items.dm
+++ b/code/modules/antagonists/cult/cult_items.dm
@@ -273,6 +273,7 @@
knockdown = 20
/obj/item/restraints/legcuffs/bola/cult/pickup(mob/living/user)
+ . = ..()
if(!iscultist(user))
to_chat(user, "The bola seems to take on a life of its own!")
ensnare(user)
diff --git a/code/modules/antagonists/devil/true_devil/_true_devil.dm b/code/modules/antagonists/devil/true_devil/_true_devil.dm
index f09592161d..7d7031dad4 100644
--- a/code/modules/antagonists/devil/true_devil/_true_devil.dm
+++ b/code/modules/antagonists/devil/true_devil/_true_devil.dm
@@ -116,8 +116,7 @@
/mob/living/carbon/true_devil/get_ear_protection()
return 2
-
-/mob/living/carbon/true_devil/attacked_by(obj/item/I, mob/living/user, def_zone)
+/mob/living/carbon/true_devil/attacked_by(obj/item/I, mob/living/user, def_zone, attackchain_flags = NONE, damage_multiplier = 1)
var/totitemdamage = pre_attacked_by(I, user)
totitemdamage *= check_weakness(I, user)
apply_damage(totitemdamage, I.damtype, def_zone)
diff --git a/code/modules/antagonists/traitor/classes/hijack.dm b/code/modules/antagonists/traitor/classes/hijack.dm
index dbfa78eb96..bbfb0cb11d 100644
--- a/code/modules/antagonists/traitor/classes/hijack.dm
+++ b/code/modules/antagonists/traitor/classes/hijack.dm
@@ -4,6 +4,7 @@
weight = 3
chaos = 5
threat = 3
+ min_players = 25
uplink_filters = list(/datum/uplink_item/stealthy_weapons/romerol_kit)
/datum/traitor_class/human/hijack/forge_objectives(datum/antagonist/traitor/T)
diff --git a/code/modules/antagonists/traitor/classes/martyr.dm b/code/modules/antagonists/traitor/classes/martyr.dm
index 72f9ac86fc..5c407b70fd 100644
--- a/code/modules/antagonists/traitor/classes/martyr.dm
+++ b/code/modules/antagonists/traitor/classes/martyr.dm
@@ -4,6 +4,7 @@
weight = 2
chaos = 5
threat = 5
+ min_players = 20
uplink_filters = list(/datum/uplink_item/stealthy_weapons/romerol_kit,/datum/uplink_item/bundles_TC/contract_kit)
/datum/traitor_class/human/martyr/forge_objectives(datum/antagonist/traitor/T)
diff --git a/code/modules/antagonists/traitor/classes/traitor_class.dm b/code/modules/antagonists/traitor/classes/traitor_class.dm
index 260e978bec..568619f59d 100644
--- a/code/modules/antagonists/traitor/classes/traitor_class.dm
+++ b/code/modules/antagonists/traitor/classes/traitor_class.dm
@@ -7,6 +7,8 @@ GLOBAL_LIST_EMPTY(traitor_classes)
var/chaos = 0
var/threat = 0
var/TC = 20
+ /// Minimum players for this to randomly roll via get_random_traitor_class().
+ var/min_players = 0
var/list/uplink_filters
/datum/traitor_class/New()
@@ -41,4 +43,4 @@ GLOBAL_LIST_EMPTY(traitor_classes)
/datum/traitor_class/proc/clean_up_traitor(datum/antagonist/traitor/T)
// Any effects that need to be cleaned up if traitor class is being swapped.
-
\ No newline at end of file
+
diff --git a/code/modules/antagonists/traitor/datum_traitor.dm b/code/modules/antagonists/traitor/datum_traitor.dm
index 4422f2f174..0309b7e826 100644
--- a/code/modules/antagonists/traitor/datum_traitor.dm
+++ b/code/modules/antagonists/traitor/datum_traitor.dm
@@ -47,6 +47,8 @@
for(var/C in GLOB.traitor_classes)
if(!(C in blacklist))
var/datum/traitor_class/class = GLOB.traitor_classes[C]
+ if(class.min_players > length(GLOB.joined_player_list))
+ continue
var/weight = LOGISTIC_FUNCTION(1.5*class.weight,chaos_weight,class.chaos,0)
weights[C] = weight * 1000
var/choice = pickweight(weights, 0)
diff --git a/code/modules/atmospherics/machinery/airalarm.dm b/code/modules/atmospherics/machinery/airalarm.dm
index b8a9b6e793..3a8d2c5620 100644
--- a/code/modules/atmospherics/machinery/airalarm.dm
+++ b/code/modules/atmospherics/machinery/airalarm.dm
@@ -36,7 +36,7 @@
/obj/item/electronics/airalarm
name = "air alarm electronics"
icon_state = "airalarm_electronics"
- custom_price = 50
+ custom_price = PRICE_CHEAP
/obj/item/wallframe/airalarm
name = "air alarm frame"
diff --git a/code/modules/atmospherics/machinery/components/components_base.dm b/code/modules/atmospherics/machinery/components/components_base.dm
index c229a4ba27..33fd160b1a 100644
--- a/code/modules/atmospherics/machinery/components/components_base.dm
+++ b/code/modules/atmospherics/machinery/components/components_base.dm
@@ -162,6 +162,9 @@
to_chat(user, "Access denied.")
return UI_CLOSE
+/obj/machinery/atmospherics/components/attack_ghost(mob/dead/observer/O)
+ . = ..()
+ atmosanalyzer_scan(airs, O, src, FALSE)
// Tool acts
diff --git a/code/modules/atmospherics/machinery/pipes/pipes.dm b/code/modules/atmospherics/machinery/pipes/pipes.dm
index c466a422b2..4a6170c251 100644
--- a/code/modules/atmospherics/machinery/pipes/pipes.dm
+++ b/code/modules/atmospherics/machinery/pipes/pipes.dm
@@ -111,3 +111,10 @@
pipe_color = paint_color
update_node_icon()
return TRUE
+
+/obj/machinery/atmospherics/pipe/attack_ghost(mob/dead/observer/O)
+ . = ..()
+ if(parent)
+ atmosanalyzer_scan(parent.air, O, src, FALSE)
+ else
+ to_chat(O, "[src] doesn't have a pipenet, which is probably a bug.")
diff --git a/code/modules/atmospherics/machinery/portable/portable_atmospherics.dm b/code/modules/atmospherics/machinery/portable/portable_atmospherics.dm
index 8bf0554070..952db8315a 100644
--- a/code/modules/atmospherics/machinery/portable/portable_atmospherics.dm
+++ b/code/modules/atmospherics/machinery/portable/portable_atmospherics.dm
@@ -147,10 +147,14 @@
/obj/machinery/portable_atmospherics/analyzer_act(mob/living/user, obj/item/I)
atmosanalyzer_scan(air_contents, user, src)
-/obj/machinery/portable_atmospherics/attacked_by(obj/item/I, mob/user)
+/obj/machinery/portable_atmospherics/attacked_by(obj/item/I, mob/user, attackchain_flags = NONE, damage_multiplier = 1)
if(I.force < 10 && !(stat & BROKEN))
take_damage(0)
else
investigate_log("was smacked with \a [I] by [key_name(user)].", INVESTIGATE_ATMOS)
add_fingerprint(user)
..()
+
+/obj/machinery/portable_atmospherics/attack_ghost(mob/dead/observer/O)
+ . = ..()
+ atmosanalyzer_scan(air_contents, O, src, FALSE)
diff --git a/code/modules/cargo/packs/costumes_toys.dm b/code/modules/cargo/packs/costumes_toys.dm
index dab8cad5b6..c181d6fb74 100644
--- a/code/modules/cargo/packs/costumes_toys.dm
+++ b/code/modules/cargo/packs/costumes_toys.dm
@@ -71,7 +71,8 @@
/obj/item/clothing/mask/gas/syndicate,
/obj/item/clothing/neck/necklace/dope,
/obj/item/vending_refill/donksoft,
- /obj/item/circuitboard/computer/arcade/amputation)
+ /obj/item/circuitboard/computer/arcade/amputation,
+ /obj/item/storage/bag/ammo)
crate_name = "crate"
/datum/supply_pack/costumes_toys/foamforce
diff --git a/code/modules/client/client_defines.dm b/code/modules/client/client_defines.dm
index 7d87a82afb..0402dc683f 100644
--- a/code/modules/client/client_defines.dm
+++ b/code/modules/client/client_defines.dm
@@ -133,3 +133,6 @@
var/parallax_movedir = 0
var/parallax_layers_max = 3
var/parallax_animate_timer
+
+ //world.time of when the crew manifest can be accessed
+ var/crew_manifest_delay
diff --git a/code/modules/client/preferences.dm b/code/modules/client/preferences.dm
index 0b6bf4909d..347a77059a 100644
--- a/code/modules/client/preferences.dm
+++ b/code/modules/client/preferences.dm
@@ -1638,19 +1638,19 @@ GLOBAL_LIST_EMPTY(preferences_datums)
age = max(min( round(text2num(new_age)), AGE_MAX),AGE_MIN)
if("flavor_text")
- var/msg = stripped_multiline_input(usr, "Set the flavor text in your 'examine' verb. This can also be used for OOC notes and preferences!", "Flavor Text", features["flavor_text"], MAX_FLAVOR_LEN, TRUE)
+ var/msg = stripped_multiline_input(usr, "Set the flavor text in your 'examine' verb. This can also be used for OOC notes and preferences!", "Flavor Text", html_decode(features["flavor_text"]), MAX_FLAVOR_LEN, TRUE)
if(!isnull(msg))
- features["flavor_text"] = html_decode(msg)
+ features["flavor_text"] = msg
if("silicon_flavor_text")
- var/msg = stripped_multiline_input(usr, "Set the silicon flavor text in your 'examine' verb. This can also be used for OOC notes and preferences!", "Silicon Flavor Text", features["silicon_flavor_text"], MAX_FLAVOR_LEN, TRUE)
+ var/msg = stripped_multiline_input(usr, "Set the silicon flavor text in your 'examine' verb. This can also be used for OOC notes and preferences!", "Silicon Flavor Text", html_decode(features["silicon_flavor_text"]), MAX_FLAVOR_LEN, TRUE)
if(!isnull(msg))
- features["silicon_flavor_text"] = html_decode(msg)
+ features["silicon_flavor_text"] = msg
if("ooc_notes")
- var/msg = stripped_multiline_input(usr, "Set always-visible OOC notes related to content preferences. THIS IS NOT FOR CHARACTER DESCRIPTIONS!", "OOC notes", features["ooc_notes"], MAX_FLAVOR_LEN, TRUE)
+ var/msg = stripped_multiline_input(usr, "Set always-visible OOC notes related to content preferences. THIS IS NOT FOR CHARACTER DESCRIPTIONS!", "OOC notes", html_decode(features["ooc_notes"]), MAX_FLAVOR_LEN, TRUE)
if(!isnull(msg))
- features["ooc_notes"] = html_decode(msg)
+ features["ooc_notes"] = msg
if("hair")
var/new_hair = input(user, "Choose your character's hair colour:", "Character Preference","#"+hair_color) as color|null
diff --git a/code/modules/client/preferences_savefile.dm b/code/modules/client/preferences_savefile.dm
index ffbdcdd113..1ec3fc6404 100644
--- a/code/modules/client/preferences_savefile.dm
+++ b/code/modules/client/preferences_savefile.dm
@@ -5,7 +5,7 @@
// You do not need to raise this if you are adding new values that have sane defaults.
// Only raise this value when changing the meaning/format/name/layout of an existing value
// where you would want the updater procs below to run
-#define SAVEFILE_VERSION_MAX 32
+#define SAVEFILE_VERSION_MAX 33
/*
SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Carn
@@ -194,6 +194,11 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car
if(current_version < 31)
S["wing_color"] >> features["wings_color"]
S["horn_color"] >> features["horns_color"]
+
+ if(current_version < 33)
+ features["flavor_text"] = html_encode(features["flavor_text"])
+ features["silicon_flavor_text"] = html_encode(features["silicon_flavor_text"])
+ features["ooc_notes"] = html_encode(features["ooc_notes"])
/datum/preferences/proc/load_path(ckey,filename="preferences.sav")
if(!ckey)
diff --git a/code/modules/client/verbs/aooc.dm b/code/modules/client/verbs/aooc.dm
index bc32d3c222..1a019bba80 100644
--- a/code/modules/client/verbs/aooc.dm
+++ b/code/modules/client/verbs/aooc.dm
@@ -13,21 +13,38 @@ GLOBAL_VAR_INIT(normal_aooc_colour, "#ce254f")
if(!mob)
return
+ if(!(prefs.toggles & CHAT_OOC))
+ to_chat(src, " You have OOC muted.")
+ return
+ if(jobban_isbanned(mob, "OOC"))
+ to_chat(src, "You have been banned from OOC.")
+ return
+
if(!holder)
- if(mob.stat == DEAD)
- to_chat(usr, "You cannot use AOOC while dead.")
- return
- if(!is_special_character(mob))
- to_chat(usr, "You aren't an antagonist!")
- if(prefs.muted & MUTE_OOC)
- to_chat(src, "You cannot use AOOC (muted).")
- return
- if(jobban_isbanned(src.mob, "OOC"))
- to_chat(src, "You are banned from OOC.")
- return
if(!GLOB.aooc_allowed)
to_chat(src, "AOOC is currently muted.")
return
+ if(prefs.muted & MUTE_OOC)
+ to_chat(src, "You cannot use AOOC (muted).")
+ return
+ if(!is_special_character(mob))
+ to_chat(usr, "You aren't an antagonist!")
+ if(handle_spam_prevention(msg,MUTE_OOC))
+ return
+ if(findtext(msg, "byond://"))
+ to_chat(src, "Advertising other servers is not allowed.")
+ log_admin("[key_name(src)] has attempted to advertise in LOOC: [msg]")
+ return
+ if(mob.stat)
+ to_chat(usr, "You cannot use AOOC while unconscious or dead.")
+ return
+ if(isdead(mob))
+ to_chat(src, "You cannot use AOOC while ghosting.")
+ return
+ if(HAS_TRAIT(mob, TRAIT_AOOC_MUTE))
+ to_chat(src, "You cannot use AOOC right now.")
+ return
+
if(QDELETED(src))
return
diff --git a/code/modules/client/verbs/looc.dm b/code/modules/client/verbs/looc.dm
index 075cabcbbb..da39eabc12 100644
--- a/code/modules/client/verbs/looc.dm
+++ b/code/modules/client/verbs/looc.dm
@@ -38,11 +38,15 @@ GLOBAL_VAR_INIT(normal_looc_colour, "#6699CC")
log_admin("[key_name(src)] has attempted to advertise in LOOC: [msg]")
return
if(mob.stat)
- to_chat(src, "You cannot salt in LOOC while unconscious or dead.")
+ to_chat(src, "You cannot use LOOC while unconscious or dead.")
return
- if(istype(mob, /mob/dead))
+ if(isdead(mob))
to_chat(src, "You cannot use LOOC while ghosting.")
return
+ if(HAS_TRAIT(mob, TRAIT_LOOC_MUTE))
+ to_chat(src, "You cannot use LOOC right now.")
+ return
+
msg = emoji_parse(msg)
diff --git a/code/modules/clothing/ears/_ears.dm b/code/modules/clothing/ears/_ears.dm
index 39d23c0107..f58be1373a 100644
--- a/code/modules/clothing/ears/_ears.dm
+++ b/code/modules/clothing/ears/_ears.dm
@@ -6,7 +6,7 @@
throwforce = 0
slot_flags = ITEM_SLOT_EARS
resistance_flags = NONE
- custom_price = 250
+ custom_price = PRICE_BELOW_NORMAL
/obj/item/clothing/ears/earmuffs
name = "earmuffs"
@@ -31,7 +31,7 @@
slot_flags = ITEM_SLOT_EARS | ITEM_SLOT_HEAD | ITEM_SLOT_NECK //Fluff item, put it whereever you want!
actions_types = list(/datum/action/item_action/toggle_headphones)
var/headphones_on = FALSE
- custom_price = 125
+ custom_price = PRICE_ALMOST_CHEAP
/obj/item/clothing/ears/headphones/Initialize()
. = ..()
diff --git a/code/modules/clothing/gloves/color.dm b/code/modules/clothing/gloves/color.dm
index 31e9407cdb..1b5cd6c7d2 100644
--- a/code/modules/clothing/gloves/color.dm
+++ b/code/modules/clothing/gloves/color.dm
@@ -10,8 +10,8 @@
permeability_coefficient = 0.05
resistance_flags = NONE
var/can_be_cut = 1
- custom_price = 1200
- custom_premium_price = 1200
+ custom_price = PRICE_EXPENSIVE
+ custom_premium_price = PRICE_ALMOST_ONE_GRAND
/obj/item/toy/sprayoncan
name = "spray-on insulation applicator"
diff --git a/code/modules/clothing/gloves/miscellaneous.dm b/code/modules/clothing/gloves/miscellaneous.dm
index b1c6746351..a8017631bd 100644
--- a/code/modules/clothing/gloves/miscellaneous.dm
+++ b/code/modules/clothing/gloves/miscellaneous.dm
@@ -10,7 +10,7 @@
cold_protection = HANDS
min_cold_protection_temperature = GLOVES_MIN_TEMP_PROTECT
strip_mod = 0.9
- custom_price = 75
+ custom_price = PRICE_ALMOST_CHEAP
/obj/item/clothing/gloves/fingerless/pugilist
name = "armwraps"
diff --git a/code/modules/clothing/gloves/tacklers.dm b/code/modules/clothing/gloves/tacklers.dm
index ddbeeab7f6..11b2afa968 100644
--- a/code/modules/clothing/gloves/tacklers.dm
+++ b/code/modules/clothing/gloves/tacklers.dm
@@ -7,7 +7,7 @@
cold_protection = HANDS
min_cold_protection_temperature = GLOVES_MIN_TEMP_PROTECT
resistance_flags = NONE
- //custom_premium_price = 350
+ //custom_premium_price = PRICE_EXPENSIVE
/// For storing our tackler datum so we can remove it after
var/datum/component/tackler
/// See: [/datum/component/tackler/var/stamina_cost]
diff --git a/code/modules/clothing/head/beanie.dm b/code/modules/clothing/head/beanie.dm
index 79f8931889..4117e88811 100644
--- a/code/modules/clothing/head/beanie.dm
+++ b/code/modules/clothing/head/beanie.dm
@@ -5,7 +5,6 @@
name = "white beanie"
desc = "A stylish beanie. The perfect winter accessory for those with a keen fashion sense, and those who just can't handle a cold breeze on their heads."
icon_state = "beanie" //Default white
- custom_price = 60
/obj/item/clothing/head/beanie/black
name = "black beanie"
diff --git a/code/modules/clothing/head/helmet.dm b/code/modules/clothing/head/helmet.dm
index ae851ec4f1..642888ffaf 100644
--- a/code/modules/clothing/head/helmet.dm
+++ b/code/modules/clothing/head/helmet.dm
@@ -58,7 +58,7 @@
desc = "A reliable, blue tinted helmet reminding you that you still owe that engineer a beer."
icon_state = "blueshift"
item_state = "blueshift"
- custom_premium_price = 750
+ custom_premium_price = PRICE_ABOVE_EXPENSIVE
/obj/item/clothing/head/helmet/riot
name = "riot helmet"
diff --git a/code/modules/clothing/neck/_neck.dm b/code/modules/clothing/neck/_neck.dm
index 3052d7af8e..6a836cad7b 100644
--- a/code/modules/clothing/neck/_neck.dm
+++ b/code/modules/clothing/neck/_neck.dm
@@ -22,7 +22,6 @@
icon_state = "bluetie"
item_state = "" //no inhands
w_class = WEIGHT_CLASS_SMALL
- custom_price = 60
/obj/item/clothing/neck/tie/blue
name = "blue tie"
@@ -88,7 +87,6 @@
/obj/item/clothing/neck/scarf //Default white color, same functionality as beanies.
name = "white scarf"
icon_state = "scarf"
- custom_price = 60
desc = "A stylish scarf. The perfect winter accessory for those with a keen fashion sense, and those who just can't handle a cold breeze on their necks."
dog_fashion = /datum/dog_fashion/head
diff --git a/code/modules/clothing/shoes/colour.dm b/code/modules/clothing/shoes/colour.dm
index 8cadb84cef..df0f03f614 100644
--- a/code/modules/clothing/shoes/colour.dm
+++ b/code/modules/clothing/shoes/colour.dm
@@ -1,6 +1,5 @@
/obj/item/clothing/shoes/sneakers
dying_key = DYE_REGISTRY_SNEAKERS
- custom_price = 50
/obj/item/clothing/shoes/sneakers/black
name = "black shoes"
diff --git a/code/modules/clothing/shoes/miscellaneous.dm b/code/modules/clothing/shoes/miscellaneous.dm
index b197f4cf38..b68bef6329 100644
--- a/code/modules/clothing/shoes/miscellaneous.dm
+++ b/code/modules/clothing/shoes/miscellaneous.dm
@@ -72,7 +72,7 @@
equip_delay_other = 50
resistance_flags = NONE
armor = list("melee" = 0, "bullet" = 0, "laser" = 0, "energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 40, "acid" = 75)
- custom_price = 600
+ custom_price = PRICE_ABOVE_EXPENSIVE
/obj/item/clothing/shoes/galoshes/dry
name = "absorbent galoshes"
@@ -384,7 +384,6 @@
/obj/item/clothing/shoes/cowboyboots
name = "cowboy boots"
desc = "A standard pair of brown cowboy boots."
- custom_price = 60 //remember to replace these lame cosmetics with tg's YEEEEHAW counterparts.
icon_state = "cowboyboots"
/obj/item/clothing/shoes/cowboyboots/black
diff --git a/code/modules/clothing/spacesuits/miscellaneous.dm b/code/modules/clothing/spacesuits/miscellaneous.dm
index 3d55e569dc..4166beef05 100644
--- a/code/modules/clothing/spacesuits/miscellaneous.dm
+++ b/code/modules/clothing/spacesuits/miscellaneous.dm
@@ -469,7 +469,7 @@ Contains:
desc = "Voices echo from the hardsuit, driving the user insane. This one is pretty battle-worn, but still fearsome."
armor = list("melee" = 55, "bullet" = 40, "laser" = 40, "energy" = 40, "bomb" = 40, "bio" = 80, "rad" = 80, "fire" = 60, "acid" = 60)
slowdown = 0.8
- helmettype = /obj/item/clothing/head/helmet/space/hardsuit/ert/paranormal/inquisitor/old
+ helmettype = /obj/item/clothing/head/helmet/space/hardsuit/ert/paranormal/beserker/old
charges = 6
/obj/item/clothing/head/helmet/space/hardsuit/ert/paranormal/beserker/old
diff --git a/code/modules/clothing/suits/armor.dm b/code/modules/clothing/suits/armor.dm
index 21dcd37bc2..557b4860c9 100644
--- a/code/modules/clothing/suits/armor.dm
+++ b/code/modules/clothing/suits/armor.dm
@@ -49,7 +49,7 @@
desc = "A large, yet comfortable piece of armor, protecting you from some threats."
icon_state = "blueshift"
item_state = "blueshift"
- custom_premium_price = 750
+ custom_premium_price = PRICE_ABOVE_EXPENSIVE
/obj/item/clothing/suit/armor/hos
name = "armored greatcoat"
diff --git a/code/modules/clothing/under/miscellaneous.dm b/code/modules/clothing/under/miscellaneous.dm
index cd58571251..997f10a379 100644
--- a/code/modules/clothing/under/miscellaneous.dm
+++ b/code/modules/clothing/under/miscellaneous.dm
@@ -87,7 +87,6 @@
icon_state = "overalls"
item_state = "lb_suit"
can_adjust = FALSE
- custom_price = 60
/obj/item/clothing/under/misc/assistantformal
name = "assistant's formal uniform"
diff --git a/code/modules/clothing/under/pants.dm b/code/modules/clothing/under/pants.dm
index 46fc13d06e..c93cefeae9 100644
--- a/code/modules/clothing/under/pants.dm
+++ b/code/modules/clothing/under/pants.dm
@@ -3,7 +3,6 @@
body_parts_covered = GROIN|LEGS
fitted = NO_FEMALE_UNIFORM
can_adjust = FALSE
- custom_price = 60
mutantrace_variation = STYLE_DIGITIGRADE //how do they show up on taurs otherwise?
/obj/item/clothing/under/pants/classicjeans
@@ -15,7 +14,7 @@
name = "Must Hang jeans"
desc = "Made in the finest space jeans factory this side of Alpha Centauri."
icon_state = "jeansmustang"
- custom_price = 180
+ custom_price = PRICE_ABOVE_NORMAL
/obj/item/clothing/under/pants/blackjeans
name = "black jeans"
diff --git a/code/modules/clothing/under/skirt_dress.dm b/code/modules/clothing/under/skirt_dress.dm
index 0d04193e1f..e1212cf337 100644
--- a/code/modules/clothing/under/skirt_dress.dm
+++ b/code/modules/clothing/under/skirt_dress.dm
@@ -17,7 +17,6 @@
body_parts_covered = CHEST|GROIN|ARMS
fitted = FEMALE_UNIFORM_TOP
can_adjust = FALSE
- custom_price = 60
/obj/item/clothing/under/dress/skirt/red
name = "red skirt"
@@ -27,7 +26,6 @@
body_parts_covered = CHEST|GROIN|ARMS
fitted = FEMALE_UNIFORM_TOP
can_adjust = FALSE
- custom_price = 60
/obj/item/clothing/under/dress/skirt/purple
name = "purple skirt"
@@ -37,7 +35,6 @@
body_parts_covered = CHEST|GROIN|ARMS
fitted = FEMALE_UNIFORM_TOP
can_adjust = FALSE
- custom_price = 60
/obj/item/clothing/under/dress/sundress
name = "sundress"
@@ -151,7 +148,6 @@
fitted = FEMALE_UNIFORM_TOP
can_adjust = TRUE
alt_covers_chest = TRUE
- custom_price = 60
/obj/item/clothing/under/dress/skirt/plaid/blue
name = "blue plaid skirt"
diff --git a/code/modules/events/spacevine.dm b/code/modules/events/spacevine.dm
index 89b70f8951..85bcf4959d 100644
--- a/code/modules/events/spacevine.dm
+++ b/code/modules/events/spacevine.dm
@@ -330,8 +330,8 @@
if(!override)
qdel(src)
-/obj/structure/spacevine/attacked_by(obj/item/I, mob/living/user)
- var/damage_dealt = I.force
+/obj/structure/spacevine/attacked_by(obj/item/I, mob/living/user, attackchain_flags = NONE, damage_multiplier = 1)
+ var/damage_dealt = I.force * damage_multiplier
if(I.get_sharpness())
damage_dealt *= 4
if(I.damtype == BURN)
diff --git a/code/modules/food_and_drinks/drinks/drinks.dm b/code/modules/food_and_drinks/drinks/drinks.dm
index 46600e9fee..2e68c57abd 100644
--- a/code/modules/food_and_drinks/drinks/drinks.dm
+++ b/code/modules/food_and_drinks/drinks/drinks.dm
@@ -268,12 +268,15 @@
/obj/item/reagent_containers/food/drinks/ice
name = "ice cup"
desc = "Careful, cold ice, do not chew."
- custom_price = 15
+ custom_price = PRICE_CHEAP_AS_FREE
icon_state = "coffee"
list_reagents = list(/datum/reagent/consumable/ice = 30)
spillable = TRUE
isGlass = FALSE
+/obj/item/reagent_containers/food/drinks/ice/sustanance
+ custom_price = PRICE_FREE
+
/obj/item/reagent_containers/food/drinks/mug/ // parent type is literally just so empty mug sprites are a thing
name = "mug"
desc = "A drink served in a classy mug."
@@ -303,7 +306,7 @@
list_reagents = list(/datum/reagent/consumable/hot_coco = 30, /datum/reagent/consumable/sugar = 5)
foodtype = SUGAR
resistance_flags = FREEZE_PROOF
- custom_price = 120
+ custom_price = PRICE_ALMOST_CHEAP
/obj/item/reagent_containers/food/drinks/dry_ramen
name = "cup ramen"
@@ -312,7 +315,7 @@
list_reagents = list(/datum/reagent/consumable/dry_ramen = 30)
foodtype = GRAIN
isGlass = FALSE
- custom_price = 95
+ custom_price = PRICE_PRETTY_CHEAP
/obj/item/reagent_containers/food/drinks/beer
name = "space beer"
@@ -320,7 +323,7 @@
icon_state = "beer"
list_reagents = list(/datum/reagent/consumable/ethanol/beer = 30)
foodtype = GRAIN | ALCOHOL
- custom_price = 60
+ custom_price = PRICE_PRETTY_CHEAP
/obj/item/reagent_containers/food/drinks/beer/light
name = "Carp Lite"
@@ -421,7 +424,7 @@
custom_materials = list(/datum/material/iron=250)
volume = 60
isGlass = FALSE
- custom_price = 200
+ custom_price = PRICE_ABOVE_NORMAL
/obj/item/reagent_containers/food/drinks/flask/gold
name = "captain's flask"
@@ -452,7 +455,7 @@
reagent_flags = NONE
spillable = FALSE
isGlass = FALSE
- custom_price = 45
+ custom_price = PRICE_CHEAP_AS_FREE
/obj/item/reagent_containers/food/drinks/soda_cans/suicide_act(mob/living/carbon/user)
user.visible_message("[user] is trying to eat \the [src]! It looks like [user.p_theyre()] trying to commit suicide!")
diff --git a/code/modules/food_and_drinks/drinks/drinks/bottle.dm b/code/modules/food_and_drinks/drinks/drinks/bottle.dm
index 9faf0918ab..d87eb8fbc0 100644
--- a/code/modules/food_and_drinks/drinks/drinks/bottle.dm
+++ b/code/modules/food_and_drinks/drinks/drinks/bottle.dm
@@ -346,7 +346,7 @@
/obj/item/reagent_containers/food/drinks/bottle/applejack
name = "Buckin' Bronco's Applejack"
desc = "Kicks like a horse, tastes like an apple!"
- custom_price = 100
+ custom_price = PRICE_CHEAP
icon_state = "applejack_bottle"
list_reagents = list(/datum/reagent/consumable/ethanol/applejack = 100)
foodtype = FRUIT
@@ -357,7 +357,6 @@
/obj/item/reagent_containers/food/drinks/bottle/champagne
name = "Eau d' Dandy Brut Champagne"
desc = "Finely sourced from only the most pretentious French vineyards."
- custom_premium_price = 250
icon_state = "champagne_bottle"
list_reagents = list(/datum/reagent/consumable/ethanol/champagne = 100)
@@ -376,7 +375,7 @@
/obj/item/reagent_containers/food/drinks/bottle/trappist
name = "Mont de Requin Trappistes Bleu"
desc = "Brewed in space-Belgium. Fancy!"
- custom_premium_price = 170
+ custom_premium_price = PRICE_ABOVE_NORMAL
icon_state = "trappistbottle"
volume = 50
list_reagents = list(/datum/reagent/consumable/ethanol/trappist = 50)
@@ -389,7 +388,7 @@
/obj/item/reagent_containers/food/drinks/bottle/orangejuice
name = "orange juice"
desc = "Full of vitamins and deliciousness!"
- custom_price = 100
+ custom_price = PRICE_CHEAP
icon_state = "orangejuice"
item_state = "carton"
lefthand_file = 'icons/mob/inhands/equipment/kitchen_lefthand.dmi'
@@ -411,7 +410,7 @@
/obj/item/reagent_containers/food/drinks/bottle/cream
name = "milk cream"
desc = "It's cream. Made from milk. What else did you think you'd find in there?"
- custom_price = 100
+ custom_price = PRICE_CHEAP
icon_state = "cream"
item_state = "carton"
lefthand_file = 'icons/mob/inhands/equipment/kitchen_lefthand.dmi'
@@ -423,7 +422,7 @@
/obj/item/reagent_containers/food/drinks/bottle/tomatojuice
name = "tomato juice"
desc = "Well, at least it LOOKS like tomato juice. You can't tell with all that redness."
- custom_price = 100
+ custom_price = PRICE_CHEAP
icon_state = "tomatojuice"
item_state = "carton"
lefthand_file = 'icons/mob/inhands/equipment/kitchen_lefthand.dmi'
@@ -435,7 +434,7 @@
/obj/item/reagent_containers/food/drinks/bottle/limejuice
name = "lime juice"
desc = "Sweet-sour goodness."
- custom_price = 100
+ custom_price = PRICE_CHEAP
icon_state = "limejuice"
item_state = "carton"
lefthand_file = 'icons/mob/inhands/equipment/kitchen_lefthand.dmi'
@@ -469,7 +468,7 @@
/obj/item/reagent_containers/food/drinks/bottle/menthol
name = "menthol"
desc = "Tastes naturally minty, and imparts a very mild numbing sensation."
- custom_price = 100
+ custom_price = PRICE_CHEAP
icon_state = "mentholbox"
item_state = "carton"
lefthand_file = 'icons/mob/inhands/equipment/kitchen_lefthand.dmi'
@@ -480,7 +479,7 @@
/obj/item/reagent_containers/food/drinks/bottle/grenadine
name = "Jester Grenadine"
desc = "Contains 0% real cherries!"
- custom_price = 100
+ custom_price = PRICE_CHEAP
icon_state = "grenadine"
isGlass = TRUE
list_reagents = list(/datum/reagent/consumable/grenadine = 100)
diff --git a/code/modules/food_and_drinks/drinks/drinks/drinkingglass.dm b/code/modules/food_and_drinks/drinks/drinks/drinkingglass.dm
index 5ebcec91b9..7361e50606 100644
--- a/code/modules/food_and_drinks/drinks/drinks/drinkingglass.dm
+++ b/code/modules/food_and_drinks/drinks/drinks/drinkingglass.dm
@@ -11,7 +11,7 @@
spillable = TRUE
resistance_flags = ACID_PROOF
obj_flags = UNIQUE_RENAME
- custom_price = 25
+ custom_price = PRICE_REALLY_CHEAP
/obj/item/reagent_containers/food/drinks/drinkingglass/on_reagent_change(changetype)
cut_overlays()
@@ -47,7 +47,7 @@
possible_transfer_amounts = list()
volume = 15
custom_materials = list(/datum/material/glass=100)
- custom_price = 20
+ custom_price = PRICE_CHEAP_AS_FREE
/obj/item/reagent_containers/food/drinks/drinkingglass/shotglass/on_reagent_change(changetype)
cut_overlays()
diff --git a/code/modules/food_and_drinks/food/snacks_meat.dm b/code/modules/food_and_drinks/food/snacks_meat.dm
index 4e6be19488..c2a58b0821 100644
--- a/code/modules/food_and_drinks/food/snacks_meat.dm
+++ b/code/modules/food_and_drinks/food/snacks_meat.dm
@@ -54,6 +54,15 @@
tastes = list("fish" = 1, "chips" = 1)
foodtype = MEAT | VEGETABLES | FRIED
+/obj/item/reagent_containers/food/snacks/fishfry
+ name = "fish fry"
+ desc = "All that and no bag of chips..."
+ icon_state = "fish_fry"
+ list_reagents = list (/datum/reagent/consumable/nutriment = 6, /datum/reagent/consumable/nutriment/vitamin = 3)
+ filling_color = "#ee7676"
+ tastes = list("fish" = 1, "pan seared vegtables" = 1)
+ foodtype = MEAT | VEGETABLES | FRIED
+
/obj/item/reagent_containers/food/snacks/sushi_basic
name = "funa hosomaki"
desc = "A small cylindrical kudzu skin, filled with rice and fish."
diff --git a/code/modules/food_and_drinks/food/snacks_other.dm b/code/modules/food_and_drinks/food/snacks_other.dm
index 2463ed3ced..bc80ffe621 100644
--- a/code/modules/food_and_drinks/food/snacks_other.dm
+++ b/code/modules/food_and_drinks/food/snacks_other.dm
@@ -12,6 +12,17 @@
tastes = list("cheese" = 1)
foodtype = DAIRY
+
+
+/obj/item/reagent_containers/food/snacks/royalcheese
+ name = "royal cheese"
+ desc = "Ascend the throne. Consume the wheel. Feel the POWER."
+ icon_state = "royalcheese"
+ list_reagents = list(/datum/reagent/consumable/nutriment = 15, /datum/reagent/consumable/nutriment/vitamin = 5, /datum/reagent/gold = 20, /datum/reagent/toxin/mutagen = 5)
+ w_class = WEIGHT_CLASS_BULKY
+ tastes = list("cheese" = 4, "royalty" = 1)
+ foodtype = DAIRY
+
/obj/item/reagent_containers/food/snacks/cheesewedge
name = "cheese wedge"
desc = "A wedge of delicious Cheddar. The cheese wheel it was cut from can't have gone far."
diff --git a/code/modules/food_and_drinks/food/snacks_pastry.dm b/code/modules/food_and_drinks/food/snacks_pastry.dm
index 48bd0f1da4..d65907daea 100644
--- a/code/modules/food_and_drinks/food/snacks_pastry.dm
+++ b/code/modules/food_and_drinks/food/snacks_pastry.dm
@@ -144,6 +144,15 @@
is_decorated = TRUE
filling_color = "#879630"
+/obj/item/reagent_containers/food/snacks/donut/laugh
+ name = "sweet pea donut"
+ desc = "Goes great with a glass of Bastion Burbon!"
+ icon_state = "donut_laugh"
+ bonus_reagents = list(/datum/reagent/consumable/laughter = 3)
+ tastes = list("donut" = 3, "fizzy tutti frutti" = 1,)
+ is_decorated = TRUE
+ filling_color = "#803280"
+
//////////////////////JELLY DONUTS/////////////////////////
/obj/item/reagent_containers/food/snacks/donut/jelly
@@ -234,6 +243,15 @@
is_decorated = TRUE
filling_color = "#879630"
+/obj/item/reagent_containers/food/snacks/donut/jelly/laugh
+ name = "sweet pea jelly donut"
+ desc = "Goes great with a glass of Bastion Burbon!"
+ icon_state = "jelly_laugh"
+ bonus_reagents = list(/datum/reagent/consumable/laughter = 3)
+ tastes = list("jelly" = 3, "donut" = 1, "fizzy tutti frutti" = 1)
+ is_decorated = TRUE
+ filling_color = "#803280"
+
//////////////////////////SLIME DONUTS/////////////////////////
/obj/item/reagent_containers/food/snacks/donut/jelly/slimejelly
@@ -315,6 +333,15 @@
is_decorated = TRUE
filling_color = "#879630"
+/obj/item/reagent_containers/food/snacks/donut/jelly/slimejelly/laugh
+ name = "sweet pea jelly donut"
+ desc = "Goes great with a glass of Bastion Burbon!"
+ icon_state = "jelly_laugh"
+ bonus_reagents = list(/datum/reagent/consumable/laughter = 3)
+ tastes = list("jelly" = 3, "donut" = 1, "fizzy tutti frutti" = 1)
+ is_decorated = TRUE
+ filling_color = "#803280"
+
/obj/item/reagent_containers/food/snacks/donut/glaze
name = "glazed donut"
desc = "A sugar glazed donut."
diff --git a/code/modules/food_and_drinks/food/snacks_salad.dm b/code/modules/food_and_drinks/food/snacks_salad.dm
index a977eac3c2..be7c3d25da 100644
--- a/code/modules/food_and_drinks/food/snacks_salad.dm
+++ b/code/modules/food_and_drinks/food/snacks_salad.dm
@@ -124,4 +124,22 @@
trash = /obj/item/kitchen/knife
bonus_reagents = list(/datum/reagent/medicine/earthsblood = 1, /datum/reagent/iron = 4)
tastes = list("iron" = 1, "conspiracy" = 1)
- foodtype = VEGETABLES
\ No newline at end of file
+ foodtype = VEGETABLES
+
+/obj/item/reagent_containers/food/snacks/salad/edensalad
+ name = "\improper Salad of Eden"
+ desc = "A salad brimming with untapped potential."
+ icon_state = "eden_salad"
+ trash = /obj/item/reagent_containers/glass/bowl
+ list_reagents = list(/datum/reagent/consumable/nutriment = 7, /datum/reagent/consumable/nutriment/vitamin = 5, /datum/reagent/medicine/earthsblood = 3, /datum/reagent/medicine/omnizine = 5, /datum/reagent/drug/happiness = 2)
+ tastes = list("hope" = 1)
+ foodtype = VEGETABLES
+
+/obj/item/reagent_containers/food/snacks/salad/gumbo
+ name = "black eyed gumbo"
+ desc = "A spicy and savory meat and rice dish."
+ icon_state = "gumbo"
+ trash = /obj/item/reagent_containers/glass/bowl
+ list_reagents = list(/datum/reagent/consumable/capsaicin = 2, /datum/reagent/consumable/nutriment/vitamin = 3, /datum/reagent/consumable/nutriment = 5)
+ tastes = list("building heat" = 2, "savory meat and vegtables" = 1)
+ foodtype = GRAIN | MEAT | VEGETABLES
diff --git a/code/modules/food_and_drinks/food/snacks_soup.dm b/code/modules/food_and_drinks/food/snacks_soup.dm
index 3d70b32f2e..a6a251a84c 100644
--- a/code/modules/food_and_drinks/food/snacks_soup.dm
+++ b/code/modules/food_and_drinks/food/snacks_soup.dm
@@ -262,3 +262,13 @@
tastes = list("bungo" = 2, "hot curry" = 4, "tropical sweetness" = 1)
filling_color = "#E6A625"
foodtype = VEGETABLES | FRUIT | DAIRY
+
+/obj/item/reagent_containers/food/snacks/soup/peasoup
+ name = "pea soup"
+ desc = "A humble split pea soup."
+ icon_state = "peasoup"
+ bonus_reagents = list (/datum/reagent/consumable/nutriment/vitamin = 6, /datum/reagent/medicine/oculine = 2)
+ list_reagents = list (/datum/reagent/consumable/nutriment = 8)
+ tastes = list("creamy peas"= 2, "parsnip" = 1)
+ filling_color = "#9dc530"
+ foodtype = VEGETABLES
diff --git a/code/modules/food_and_drinks/food/snacks_vend.dm b/code/modules/food_and_drinks/food/snacks_vend.dm
index a4d924bae4..38f7ecf5b1 100644
--- a/code/modules/food_and_drinks/food/snacks_vend.dm
+++ b/code/modules/food_and_drinks/food/snacks_vend.dm
@@ -41,7 +41,6 @@
filling_color = "#FFD700"
tastes = list("salt" = 1, "crisps" = 1)
foodtype = JUNKFOOD | FRIED
- custom_price = 90
/obj/item/reagent_containers/food/snacks/no_raisin
name = "4no raisins"
@@ -69,7 +68,7 @@
junkiness = 25
filling_color = "#FFD700"
foodtype = JUNKFOOD | GRAIN | SUGAR
- custom_price = 30
+ custom_price = PRICE_CHEAP_AS_FREE
/obj/item/reagent_containers/food/snacks/cheesiehonkers
name = "cheesie honkers"
@@ -81,7 +80,6 @@
filling_color = "#FFD700"
tastes = list("cheese" = 5, "crisps" = 2)
foodtype = JUNKFOOD | DAIRY | SUGAR
- custom_price = 45
/obj/item/reagent_containers/food/snacks/syndicake
name = "syndi-cakes"
@@ -92,3 +90,4 @@
filling_color = "#F5F5DC"
tastes = list("sweetness" = 3, "cake" = 1)
foodtype = GRAIN | FRUIT | VEGETABLES
+ custom_price = PRICE_CHEAP
diff --git a/code/modules/food_and_drinks/kitchen_machinery/food_cart.dm b/code/modules/food_and_drinks/kitchen_machinery/food_cart.dm
index feba35da97..f09d3d6728 100644
--- a/code/modules/food_and_drinks/kitchen_machinery/food_cart.dm
+++ b/code/modules/food_and_drinks/kitchen_machinery/food_cart.dm
@@ -1,5 +1,5 @@
#define STORAGE_CAPACITY 30
-#define LIQUID_CAPACIY 200
+#define LIQUID_CAPACITY 200
#define MIXER_CAPACITY 100
/obj/machinery/food_cart
@@ -19,7 +19,7 @@
/obj/machinery/food_cart/Initialize()
. = ..()
- create_reagents(LIQUID_CAPACIY, OPENCONTAINER | NO_REACT)
+ create_reagents(LIQUID_CAPACITY, OPENCONTAINER | NO_REACT)
mixer = new /obj/item/reagent_containers(src, MIXER_CAPACITY)
mixer.name = "Mixer"
@@ -60,6 +60,9 @@
return food_stored >= STORAGE_CAPACITY
/obj/machinery/food_cart/attackby(obj/item/O, mob/user, params)
+ if(O.tool_behaviour == TOOL_WRENCH)
+ default_unfasten_wrench(user, O, 0)
+ return TRUE
if(istype(O, /obj/item/reagent_containers/food/drinks/drinkingglass))
var/obj/item/reagent_containers/food/drinks/drinkingglass/DG = O
if(!DG.reagents.total_volume) //glass is empty
@@ -106,7 +109,7 @@
return
if(href_list["disposeI"])
- reagents.del_reagent(href_list["disposeI"])
+ reagents.del_reagent(text2path(href_list["disposeI"]))
if(href_list["dispense"])
if(stored_food[href_list["dispense"]]-- <= 0)
@@ -116,9 +119,13 @@
if(sanitize(O.name) == href_list["dispense"])
O.forceMove(drop_location())
break
+ log_combat(usr, src, "dispensed [O] from", null, "with [stored_food[href_list["dispense"]]] remaining")
if(href_list["portion"])
- portion = clamp(input("How much drink do you want to dispense per glass?") as num, 0, 50)
+ portion = clamp(input("How much drink do you want to dispense per glass?") as num|null, 0, 50)
+
+ if (isnull(portion))
+ return
if(href_list["pour"] || href_list["m_pour"])
if(glasses-- <= 0)
@@ -127,16 +134,16 @@
else
var/obj/item/reagent_containers/food/drinks/drinkingglass/DG = new(loc)
if(href_list["pour"])
- reagents.trans_id_to(DG, href_list["pour"], portion)
+ reagents.trans_id_to(DG, text2path(href_list["pour"]), portion)
if(href_list["m_pour"])
- mixer.reagents.trans_id_to(DG, href_list["m_pour"], portion)
+ mixer.reagents.trans_id_to(DG, text2path(href_list["m_pour"]), portion)
if(href_list["mix"])
- if(reagents.trans_id_to(mixer, href_list["mix"], portion) == 0)
+ if(reagents.trans_id_to(mixer, text2path(href_list["mix"]), portion) == 0)
to_chat(usr, "[mixer] is full!")
if(href_list["transfer"])
- if(mixer.reagents.trans_id_to(src, href_list["transfer"], portion) == 0)
+ if(mixer.reagents.trans_id_to(src, text2path(href_list["transfer"]), portion) == 0)
to_chat(usr, "[src] is full!")
updateDialog()
@@ -152,5 +159,5 @@
qdel(src)
#undef STORAGE_CAPACITY
-#undef LIQUID_CAPACIY
+#undef LIQUID_CAPACITY
#undef MIXER_CAPACITY
diff --git a/code/modules/food_and_drinks/recipes/tablecraft/recipes_donut.dm b/code/modules/food_and_drinks/recipes/tablecraft/recipes_donut.dm
index ac5576ac25..c376ab4025 100644
--- a/code/modules/food_and_drinks/recipes/tablecraft/recipes_donut.dm
+++ b/code/modules/food_and_drinks/recipes/tablecraft/recipes_donut.dm
@@ -121,6 +121,15 @@ datum/crafting_recipe/food/donut/meat
)
result = /obj/item/reagent_containers/food/snacks/donut/matcha
+
+/datum/crafting_recipe/food/donut/laugh
+ name = "Sweet Pea Donut"
+ reqs = list(
+ /datum/reagent/consumable/laughsyrup = 3,
+ /obj/item/reagent_containers/food/snacks/donut/plain = 1
+ )
+ result = /obj/item/reagent_containers/food/snacks/donut/laugh
+
////////////////////////////////////////////////////JELLY DONUTS///////////////////////////////////////////////////////
/datum/crafting_recipe/food/donut/jelly/apple
@@ -187,6 +196,14 @@ datum/crafting_recipe/food/donut/meat
)
result = /obj/item/reagent_containers/food/snacks/donut/jelly/trumpet
+/datum/crafting_recipe/food/donut/jelly/laugh
+ name = "Sweet Pea Jelly Donut"
+ reqs = list(
+ /datum/reagent/consumable/laughsyrup = 3,
+ /obj/item/reagent_containers/food/snacks/donut/jelly/plain = 1
+ )
+ result = /obj/item/reagent_containers/food/snacks/donut/jelly/laugh
+
////////////////////////////////////////////////////SLIME DONUTS///////////////////////////////////////////////////////
/datum/crafting_recipe/food/donut/slimejelly/apple
@@ -253,3 +270,11 @@ datum/crafting_recipe/food/donut/meat
/obj/item/reagent_containers/food/snacks/donut/jelly/slimejelly/plain = 1
)
result = /obj/item/reagent_containers/food/snacks/donut/jelly/slimejelly/matcha
+
+/datum/crafting_recipe/food/donut/slimejelly/laugh
+ name = "Sweet Pea Jelly Donut"
+ reqs = list(
+ /datum/reagent/consumable/laughsyrup = 3,
+ /obj/item/reagent_containers/food/snacks/donut/jelly/slimejelly/plain = 1
+ )
+ result = /obj/item/reagent_containers/food/snacks/donut/jelly/slimejelly/laugh
diff --git a/code/modules/food_and_drinks/recipes/tablecraft/recipes_meat.dm b/code/modules/food_and_drinks/recipes/tablecraft/recipes_meat.dm
index e7fdeffe14..60b363c168 100644
--- a/code/modules/food_and_drinks/recipes/tablecraft/recipes_meat.dm
+++ b/code/modules/food_and_drinks/recipes/tablecraft/recipes_meat.dm
@@ -171,3 +171,14 @@
)
result = /obj/item/reagent_containers/food/snacks/salad/ricepork
subcategory = CAT_MEAT
+
+/datum/crafting_recipe/food/gumbo
+ name = "Black eyed gumbo"
+ reqs = list(
+ /obj/item/reagent_containers/food/snacks/salad/boiledrice = 1,
+ /obj/item/reagent_containers/food/snacks/grown/peas = 1,
+ /obj/item/reagent_containers/food/snacks/grown/chili = 1,
+ /obj/item/reagent_containers/food/snacks/meat/cutlet = 1
+ )
+ result = /obj/item/reagent_containers/food/snacks/salad/gumbo
+ subcategory = CAT_MEAT
diff --git a/code/modules/food_and_drinks/recipes/tablecraft/recipes_misc.dm b/code/modules/food_and_drinks/recipes/tablecraft/recipes_misc.dm
index 689345b04f..359fadfb70 100644
--- a/code/modules/food_and_drinks/recipes/tablecraft/recipes_misc.dm
+++ b/code/modules/food_and_drinks/recipes/tablecraft/recipes_misc.dm
@@ -194,3 +194,14 @@
)
result = /mob/living/simple_animal/hostile/bear/butter
subcategory = CAT_MISCFOOD
+
+/datum/crafting_recipe/food/royalcheese
+ name = "Royal Cheese"
+ reqs = list(
+ /obj/item/reagent_containers/food/snacks/store/cheesewheel = 1,
+ /obj/item/clothing/head/crown = 1,
+ /datum/reagent/medicine/strange_reagent = 5,
+ /datum/reagent/toxin/mutagen = 5
+ )
+ result = /obj/item/reagent_containers/food/snacks/royalcheese
+ subcategory = CAT_MISCFOOD
\ No newline at end of file
diff --git a/code/modules/food_and_drinks/recipes/tablecraft/recipes_salad.dm b/code/modules/food_and_drinks/recipes/tablecraft/recipes_salad.dm
index f25aaab6fd..7cf70dacf2 100644
--- a/code/modules/food_and_drinks/recipes/tablecraft/recipes_salad.dm
+++ b/code/modules/food_and_drinks/recipes/tablecraft/recipes_salad.dm
@@ -93,4 +93,17 @@
/obj/item/reagent_containers/food/snacks/grown/cabbage = 1
)
result = /obj/item/reagent_containers/food/snacks/salad/caesar
- subcategory = CAT_SALAD
\ No newline at end of file
+ subcategory = CAT_SALAD
+
+
+/datum/crafting_recipe/food/edensalad
+ name = "Salad of Eden"
+ reqs = list(
+ /obj/item/reagent_containers/glass/bowl =1,
+ /obj/item/reagent_containers/food/snacks/grown/ambrosia/vulgaris = 1,
+ /obj/item/reagent_containers/food/snacks/grown/ambrosia/deus = 1,
+ /obj/item/reagent_containers/food/snacks/grown/ambrosia/gaia = 1,
+ /obj/item/reagent_containers/food/snacks/grown/peace = 1
+ )
+ result = /obj/item/reagent_containers/food/snacks/salad/edensalad
+ subcategory = CAT_SALAD
diff --git a/code/modules/food_and_drinks/recipes/tablecraft/recipes_seafood.dm b/code/modules/food_and_drinks/recipes/tablecraft/recipes_seafood.dm
index 45083e0374..d1c13115a5 100644
--- a/code/modules/food_and_drinks/recipes/tablecraft/recipes_seafood.dm
+++ b/code/modules/food_and_drinks/recipes/tablecraft/recipes_seafood.dm
@@ -135,4 +135,14 @@
/obj/item/reagent_containers/food/snacks/carpmeat = 1
)
result = /obj/item/reagent_containers/food/snacks/fishandchips
- subcategory = CAT_SEAFOOD
\ No newline at end of file
+ subcategory = CAT_SEAFOOD
+
+/datum/crafting_recipe/food/fishfry
+ name = "Fish fry"
+ reqs = list(
+ /obj/item/reagent_containers/food/snacks/grown/corn = 1,
+ /obj/item/reagent_containers/food/snacks/grown/peas =1,
+ /obj/item/reagent_containers/food/snacks/carpmeat = 1
+ )
+ result = /obj/item/reagent_containers/food/snacks/fishfry
+ subcategory = CAT_SEAFOOD
diff --git a/code/modules/food_and_drinks/recipes/tablecraft/recipes_soup.dm b/code/modules/food_and_drinks/recipes/tablecraft/recipes_soup.dm
index ae8bd6a49c..8f4b4c2726 100644
--- a/code/modules/food_and_drinks/recipes/tablecraft/recipes_soup.dm
+++ b/code/modules/food_and_drinks/recipes/tablecraft/recipes_soup.dm
@@ -255,4 +255,16 @@
/obj/item/reagent_containers/glass/bowl = 1
)
result= /obj/item/reagent_containers/food/snacks/soup/wish
- subcategory = CAT_SOUP
\ No newline at end of file
+ subcategory = CAT_SOUP
+
+
+/datum/crafting_recipe/food/peasoup
+ name = "Pea soup"
+ reqs = list(
+ /datum/reagent/water = 10,
+ /obj/item/reagent_containers/food/snacks/grown/peas = 2,
+ /obj/item/reagent_containers/food/snacks/grown/parsnip = 1,
+ /obj/item/reagent_containers/food/snacks/grown/carrot = 1
+ )
+ result = /obj/item/reagent_containers/food/snacks/soup/peasoup
+ subcategory = CAT_SOUP
diff --git a/code/modules/holiday/holidays.dm b/code/modules/holiday/holidays.dm
index d63e011f5b..83bb67b879 100644
--- a/code/modules/holiday/holidays.dm
+++ b/code/modules/holiday/holidays.dm
@@ -189,6 +189,14 @@
begin_day = 22
begin_month = APRIL
+/datum/holiday/lesbianvisibility
+ name = "Lesbian Visibility Day"
+ begin_day = 26
+ begin_month = APRIL
+
+/datum/holiday/lesbianvisibility/greet()
+ return "Today is Lesbian Visibility Day!"
+
/datum/holiday/labor
name = "Labor Day"
begin_day = 1
@@ -292,6 +300,14 @@
/datum/holiday/programmers/getStationPrefix()
return pick("span>","DEBUG: ","null","/list","EVENT PREFIX NOT FOUND") //Portability
+/datum/holiday/bivisibility
+ name = "Bisexual Visibility Day"
+ begin_day = 23
+ begin_month = SEPTEMBER
+
+/datum/holiday/bivisibility/greet()
+ return "Today is Bisexual Visibility Day!"
+
/datum/holiday/questions
name = "Stupid-Questions Day"
begin_day = 28
@@ -314,12 +330,25 @@
begin_month = OCTOBER
drone_hat = /obj/item/clothing/head/papersack/smiley
+/datum/holiday/comingoutday
+ name = "Coming Out Day"
+ begin_day = 11
+ begin_month = OCTOBER
+
/datum/holiday/boss
name = "Boss' Day"
begin_day = 16
begin_month = OCTOBER
drone_hat = /obj/item/clothing/head/that
+/datum/holiday/intersexawareness
+ name = "Intersex Awareness Day"
+ begin_day = 26
+ begin_month = OCTOBER
+
+/datum/holiday/intersexawareness/greet()
+ return "Today is Intersex Awareness Day! It has been [text2num(time2text(world.timeofday, "YYYY")) - 1996] years since the first public protest speaking out against the human rights issues faced by intersex people."
+
/datum/holiday/halloween
name = HALLOWEEN
begin_day = 28
@@ -359,6 +388,23 @@
begin_month = NOVEMBER
drone_hat = /obj/item/reagent_containers/food/snacks/grown/moonflower
+/datum/holiday/transawareness
+ name = "Transgender Awareness Week"
+ begin_day = 13
+ begin_month = NOVEMBER
+ end_day = 19
+
+/datum/holiday/transawareness/greet()
+ return "This week is Transgender Awareness Week!"
+
+/datum/holiday/transremembrance
+ name = "Transgender Day of Remembrance"
+ begin_day = 20
+ begin_month = NOVEMBER
+
+/datum/holiday/transremembrance/greet()
+ return "Today is the Transgender Day of Remembrance."
+
/datum/holiday/hello
name = "Saying-'Hello' Day"
begin_day = 21
@@ -397,6 +443,26 @@
begin_month = OCTOBER
begin_weekday = MONDAY
+/datum/holiday/aceawareness
+ name = "Asexual Awareness Week"
+ begin_month = OCTOBER
+
+/datum/holiday/aceawareness/greet()
+ return "This week is Asexual Awareness Week!"
+
+/datum/holiday/aceawareness/shouldCelebrate(dd, mm, yy, ww, ddd) //Ace awareness week falls on the last full week of October.
+ if(mm != begin_month)
+ return FALSE //it's not even the right month
+ var/daypointer = world.timeofday - ((WEEKDAY2NUM(ddd) - 1) * 24 HOURS)
+ if(text2num(time2text(daypointer, "MM")) != mm)
+ return FALSE //it's the beginning of the month and it isn't even a full week
+ daypointer += (24 HOURS * 6)
+ if(text2num(time2text(daypointer, "MM")) != mm)
+ return FALSE //this is the end of the month, and it is not a full week.
+ daypointer += (24 HOURS * 7)
+ if(text2num(time2text(daypointer, "MM")) != mm)
+ return TRUE //the end of next week falls on a different month, meaning that the current week is the last full week
+
/datum/holiday/mother
name = "Mother's Day"
begin_week = 2
@@ -421,11 +487,30 @@
/datum/holiday/pride/getStationPrefix()
return pick("Pride", "Gay", "Bi", "Trans", "Lesbian", "Ace", "Aro", "Agender", pick("Enby", "Enbie"), "Pan", "Intersex", "Demi", "Poly", "Closeted", "Genderfluid")
+/datum/holiday/stonewall
+ name = "Stonewall Riots Anniversary"
+ begin_day = 28
+ begin_month = JUNE
+
+/datum/holiday/stonewall/greet() //Not gonna lie, I was fairly tempted to make this use the IC year instead of the IRL year, but I was worried that it would have caused too much confusion.
+ return "Today marks the [text2num(time2text(world.timeofday, "YYYY")) - 1969]\th anniversary of the riots at the Stonewall Inn!"
+
/datum/holiday/moth
name = "Moth Week"
+ begin_month = JULY
/datum/holiday/moth/shouldCelebrate(dd, mm, yy, ww, ddd) //National Moth Week falls on the last full week of July
- return mm == JULY && (ww == 4 || (ww == 5 && ddd == SUNDAY))
+ if(mm != begin_month)
+ return FALSE //it's not even the right month
+ var/daypointer = world.timeofday - ((WEEKDAY2NUM(ddd) - 1) * 24 HOURS)
+ if(text2num(time2text(daypointer, "MM")) != mm)
+ return FALSE //it's the beginning of the month and it isn't even a full week
+ daypointer += (24 HOURS * 6)
+ if(text2num(time2text(daypointer, "MM")) != mm)
+ return FALSE //this is the end of the month, and it is not a full week.
+ daypointer += (24 HOURS * 7)
+ if(text2num(time2text(daypointer, "MM")) != mm)
+ return TRUE //the end of next week falls on a different month, meaning that the current week is the last full week
/datum/holiday/moth/getStationPrefix()
return pick("Mothball","Lepidopteran","Lightbulb","Moth","Giant Atlas","Twin-spotted Sphynx","Madagascan Sunset","Luna","Death's Head","Emperor Gum","Polyphenus","Oleander Hawk","Io","Rosy Maple","Cecropia","Noctuidae","Giant Leopard","Dysphania Militaris","Garden Tiger")
diff --git a/code/modules/keybindings/keybind/__defines.dm b/code/modules/keybindings/keybind/__defines.dm
index baa095987c..93d033eea5 100644
--- a/code/modules/keybindings/keybind/__defines.dm
+++ b/code/modules/keybindings/keybind/__defines.dm
@@ -8,6 +8,7 @@
#define CATEGORY_MISC "MISC"
#define CATEGORY_MOVEMENT "MOVEMENT"
#define CATEGORY_TARGETING "TARGETING"
+#define CATEGORY_COMBAT "COMBAT"
#define WEIGHT_HIGHEST 0
#define WEIGHT_ADMIN 10
diff --git a/code/modules/keybindings/keybind/combat.dm b/code/modules/keybindings/keybind/combat.dm
new file mode 100644
index 0000000000..457fbb0cb2
--- /dev/null
+++ b/code/modules/keybindings/keybind/combat.dm
@@ -0,0 +1,38 @@
+/datum/keybinding/living/toggle_combat_mode
+ hotkey_keys = list("C")
+ name = "toggle_combat_mode"
+ full_name = "Toggle combat mode"
+ category = CATEGORY_COMBAT
+ description = "Toggles whether or not you're in combat mode."
+
+/datum/keybinding/living/toggle_combat_mode/down(client/user)
+ SEND_SIGNAL(user.mob, COMSIG_TOGGLE_COMBAT_MODE)
+ return TRUE
+
+/datum/keybinding/living/active_block
+ hotkey_keys = list("Northwest", "F") // HOME
+ name = "active_block"
+ full_name = "Block (Hold)"
+ category = CATEGORY_COMBAT
+ description = "Hold down to actively block with your currently in-hand object."
+
+/datum/keybinding/living/active_block/down(client/user)
+ var/mob/living/L = user.mob
+ L.keybind_start_active_blocking()
+ return TRUE
+
+/datum/keybinding/living/active_block/up(client/user)
+ var/mob/living/L = user.mob
+ L.keybind_stop_active_blocking()
+
+/datum/keybinding/living/active_parry
+ hotkey_keys = list("Insert", "G")
+ name = "active_parry"
+ full_name = "Parry"
+ category = CATEGORY_COMBAT
+ description = "Press to initiate a parry sequence with your currently in-hand object."
+
+/datum/keybinding/living/active_parry/down(client/user)
+ var/mob/living/L = user.mob
+ L.keybind_parry()
+ return TRUE
diff --git a/code/modules/keybindings/keybind/living.dm b/code/modules/keybindings/keybind/living.dm
index 38c666e186..b5921b378a 100644
--- a/code/modules/keybindings/keybind/living.dm
+++ b/code/modules/keybindings/keybind/living.dm
@@ -16,16 +16,6 @@
L.resist()
return TRUE
-/datum/keybinding/living/toggle_combat_mode
- hotkey_keys = list("C")
- name = "toggle_combat_mode"
- full_name = "Toggle combat mode"
- description = "Toggles whether or not you're in combat mode."
-
-/datum/keybinding/living/toggle_combat_mode/down(client/user)
- SEND_SIGNAL(user.mob, COMSIG_TOGGLE_COMBAT_MODE)
- return TRUE
-
/datum/keybinding/living/toggle_resting
hotkey_keys = list("V")
name = "toggle_resting"
diff --git a/code/modules/keybindings/keybind/mob.dm b/code/modules/keybindings/keybind/mob.dm
index 083d4a19fd..2ce4dc35a0 100644
--- a/code/modules/keybindings/keybind/mob.dm
+++ b/code/modules/keybindings/keybind/mob.dm
@@ -17,7 +17,7 @@
return TRUE
/datum/keybinding/mob/cycle_intent_right
- hotkey_keys = list("Northwest", "F") // HOME
+ hotkey_keys = list("Unbound")
name = "cycle_intent_right"
full_name = "Cycle Action Intent Right"
description = ""
@@ -28,7 +28,7 @@
return TRUE
/datum/keybinding/mob/cycle_intent_left
- hotkey_keys = list("Insert", "G")
+ hotkey_keys = list("Unbound")
name = "cycle_intent_left"
full_name = "Cycle Action Intent Left"
description = ""
diff --git a/code/modules/lighting/emissive_blocker.dm b/code/modules/lighting/emissive_blocker.dm
index b69a474009..04c1bb7302 100644
--- a/code/modules/lighting/emissive_blocker.dm
+++ b/code/modules/lighting/emissive_blocker.dm
@@ -11,6 +11,7 @@
plane = EMISSIVE_BLOCKER_PLANE
layer = EMISSIVE_BLOCKER_LAYER
mouse_opacity = MOUSE_OPACITY_TRANSPARENT
+ rad_flags = RAD_NO_CONTAMINATE | RAD_PROTECT_CONTENTS
//Why?
//render_targets copy the transform of the target as well, but vis_contents also applies the transform
//to what's in it. Applying RESET_TRANSFORM here makes vis_contents not apply the transform.
diff --git a/code/modules/mob/dead/new_player/new_player.dm b/code/modules/mob/dead/new_player/new_player.dm
index f7e1f24b63..36babd9b95 100644
--- a/code/modules/mob/dead/new_player/new_player.dm
+++ b/code/modules/mob/dead/new_player/new_player.dm
@@ -176,9 +176,6 @@
SSticker.queue_delay = 4
qdel(src)
- if(!ready && href_list["preference"])
- if(client)
- client.prefs.process_link(src, href_list)
else if(!href_list["late_join"])
new_player_panel()
@@ -582,6 +579,12 @@
qdel(src)
/mob/dead/new_player/proc/ViewManifest()
+ if(!client)
+ return
+ if(world.time < client.crew_manifest_delay)
+ return
+ client.crew_manifest_delay = world.time + (1 SECONDS)
+
var/dat = ""
dat += "Crew Manifest
"
dat += GLOB.data_core.get_manifest(OOC = 1)
diff --git a/code/modules/mob/dead/observer/observer.dm b/code/modules/mob/dead/observer/observer.dm
index 5364486b04..397af1b9d0 100644
--- a/code/modules/mob/dead/observer/observer.dm
+++ b/code/modules/mob/dead/observer/observer.dm
@@ -717,6 +717,12 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp
set name = "View Crew Manifest"
set category = "Ghost"
+ if(!client)
+ return
+ if(world.time < client.crew_manifest_delay)
+ return
+ client.crew_manifest_delay = world.time + (1 SECONDS)
+
var/dat
dat += "Crew Manifest
"
dat += GLOB.data_core.get_manifest()
diff --git a/code/modules/mob/inventory.dm b/code/modules/mob/inventory.dm
index fad3a7e534..74775203b1 100644
--- a/code/modules/mob/inventory.dm
+++ b/code/modules/mob/inventory.dm
@@ -333,6 +333,7 @@
I.moveToNullspace()
else
I.forceMove(newloc)
+ on_item_dropped(I)
if(I.dropped(src) == ITEM_RELOCATED_BY_DROPPED)
return FALSE
return TRUE
diff --git a/code/modules/mob/living/carbon/alien/humanoid/humanoid.dm b/code/modules/mob/living/carbon/alien/humanoid/humanoid.dm
index 11849641ef..727a22f844 100644
--- a/code/modules/mob/living/carbon/alien/humanoid/humanoid.dm
+++ b/code/modules/mob/living/carbon/alien/humanoid/humanoid.dm
@@ -77,20 +77,18 @@
return TRUE
/mob/living/carbon/alien/humanoid/get_standard_pixel_y_offset(lying = 0)
+ . = ..()
if(leaping)
- return -32
- else if(custom_pixel_y_offset)
- return custom_pixel_y_offset
- else
- return initial(pixel_y)
+ . -= 32
+ if(custom_pixel_y_offset)
+ . += custom_pixel_y_offset
/mob/living/carbon/alien/humanoid/get_standard_pixel_x_offset(lying = 0)
+ . = ..()
if(leaping)
- return -32
- else if(custom_pixel_x_offset)
- return custom_pixel_x_offset
- else
- return initial(pixel_x)
+ . -= 32
+ if(custom_pixel_x_offset)
+ . += custom_pixel_x_offset
/mob/living/carbon/alien/humanoid/get_permeability_protection(list/target_zones)
return 0.8
diff --git a/code/modules/mob/living/carbon/carbon.dm b/code/modules/mob/living/carbon/carbon.dm
index 37b364ea6f..e4ec902654 100644
--- a/code/modules/mob/living/carbon/carbon.dm
+++ b/code/modules/mob/living/carbon/carbon.dm
@@ -432,10 +432,9 @@
return
/mob/living/carbon/get_standard_pixel_y_offset(lying = 0)
+ . = ..()
if(lying)
- return -6
- else
- return initial(pixel_y)
+ . -= 6
/mob/living/carbon/proc/accident(obj/item/I)
if(!I || (I.item_flags & ABSTRACT) || HAS_TRAIT(I, TRAIT_NODROP))
diff --git a/code/modules/mob/living/carbon/carbon_defense.dm b/code/modules/mob/living/carbon/carbon_defense.dm
index 6303cf4c5c..f9d38828e3 100644
--- a/code/modules/mob/living/carbon/carbon_defense.dm
+++ b/code/modules/mob/living/carbon/carbon_defense.dm
@@ -76,11 +76,13 @@
visible_message("[I] embeds itself in [src]'s [L.name]!","[I] embeds itself in your [L.name]!")
SEND_SIGNAL(src, COMSIG_ADD_MOOD_EVENT, "embedded", /datum/mood_event/embedded)
-/mob/living/carbon/attacked_by(obj/item/I, mob/living/user)
- var/totitemdamage = pre_attacked_by(I, user)
+/mob/living/carbon/attacked_by(obj/item/I, mob/living/user, attackchain_flags = NONE, damage_multiplier = 1)
+ var/totitemdamage = pre_attacked_by(I, user) * damage_multiplier
var/impacting_zone = (user == src)? check_zone(user.zone_selected) : ran_zone(user.zone_selected)
- if((user != src) && (mob_run_block(I, totitemdamage, "the [I]", ATTACK_TYPE_MELEE, I.armour_penetration, user, impacting_zone, null) & BLOCK_SUCCESS))
+ var/list/block_return = list()
+ if((user != src) && (mob_run_block(I, totitemdamage, "the [I]", ((attackchain_flags & ATTACKCHAIN_PARRY_COUNTERATTACK)? ATTACK_TYPE_PARRY_COUNTERATTACK : NONE) | ATTACK_TYPE_MELEE, I.armour_penetration, user, impacting_zone, block_return) & BLOCK_SUCCESS))
return FALSE
+ totitemdamage = block_calculate_resultant_damage(totitemdamage, block_return)
var/obj/item/bodypart/affecting = get_bodypart(impacting_zone)
if(!affecting) //missing limb? we select the first bodypart (you can never have zero, because of chest)
affecting = bodyparts[1]
diff --git a/code/modules/mob/living/carbon/carbon_movement.dm b/code/modules/mob/living/carbon/carbon_movement.dm
index cc390b9329..65e59d0e29 100644
--- a/code/modules/mob/living/carbon/carbon_movement.dm
+++ b/code/modules/mob/living/carbon/carbon_movement.dm
@@ -20,7 +20,7 @@
if(istype(J) && (movement_dir || J.stabilizers) && J.allow_thrust(0.01, src))
return 1
-/mob/living/carbon/Move(NewLoc, direct)
+/mob/living/carbon/Moved()
. = ..()
if(. && (movement_type & FLOATING)) //floating is easy
if(HAS_TRAIT(src, TRAIT_NOHUNGER))
diff --git a/code/modules/mob/living/carbon/human/human_block.dm b/code/modules/mob/living/carbon/human/human_block.dm
index 8fe0376a08..4ba7e95564 100644
--- a/code/modules/mob/living/carbon/human/human_block.dm
+++ b/code/modules/mob/living/carbon/human/human_block.dm
@@ -1,8 +1,11 @@
/mob/living/carbon/human/get_blocking_items()
. = ..()
if(wear_suit)
- . |= wear_suit
+ if(!.[wear_suit])
+ .[wear_suit] = wear_suit.block_priority
if(w_uniform)
- . |= w_uniform
+ if(!.[w_uniform])
+ .[w_uniform] = w_uniform.block_priority
if(wear_neck)
- . |= wear_neck
+ if(!.[wear_neck])
+ .[wear_neck] = wear_neck.block_priority
diff --git a/code/modules/mob/living/carbon/human/human_defense.dm b/code/modules/mob/living/carbon/human/human_defense.dm
index 3a2d0535e6..6f013f560a 100644
--- a/code/modules/mob/living/carbon/human/human_defense.dm
+++ b/code/modules/mob/living/carbon/human/human_defense.dm
@@ -78,7 +78,7 @@
..()
-/mob/living/carbon/human/attacked_by(obj/item/I, mob/living/user)
+/mob/living/carbon/human/attacked_by(obj/item/I, mob/living/user, attackchain_flags = NONE, damage_multiplier = 1)
if(!I || !user)
return 0
@@ -95,7 +95,7 @@
SSblackbox.record_feedback("tally", "zone_targeted", 1, target_area)
// the attacked_by code varies among species
- return dna.species.spec_attacked_by(I, user, affecting, a_intent, src)
+ return dna.species.spec_attacked_by(I, user, affecting, a_intent, src, attackchain_flags, damage_multiplier)
/mob/living/carbon/human/attack_hulk(mob/living/carbon/human/user, does_attack_animation = FALSE)
if(user.a_intent == INTENT_HARM)
@@ -214,7 +214,7 @@
/mob/living/carbon/human/attack_animal(mob/living/simple_animal/M)
. = ..()
if(.)
- var/damage = rand(M.melee_damage_lower, M.melee_damage_upper)
+ var/damage = .
var/dam_zone = dismembering_strike(M, pick(BODY_ZONE_CHEST, BODY_ZONE_PRECISE_L_HAND, BODY_ZONE_PRECISE_R_HAND, BODY_ZONE_L_LEG, BODY_ZONE_R_LEG))
if(!dam_zone) //Dismemberment successful
return TRUE
diff --git a/code/modules/mob/living/carbon/human/species.dm b/code/modules/mob/living/carbon/human/species.dm
index 5f07f0829c..9b0679b8fe 100644
--- a/code/modules/mob/living/carbon/human/species.dm
+++ b/code/modules/mob/living/carbon/human/species.dm
@@ -1702,12 +1702,14 @@ GLOBAL_LIST_EMPTY(roundstart_race_names)
if("disarm")
disarm(M, H, attacker_style)
-/datum/species/proc/spec_attacked_by(obj/item/I, mob/living/user, obj/item/bodypart/affecting, intent, mob/living/carbon/human/H)
- var/totitemdamage = H.pre_attacked_by(I, user)
+/datum/species/proc/spec_attacked_by(obj/item/I, mob/living/user, obj/item/bodypart/affecting, intent, mob/living/carbon/human/H, attackchain_flags = NONE, damage_multiplier = 1)
+ var/totitemdamage = H.pre_attacked_by(I, user) * damage_multiplier
// Allows you to put in item-specific reactions based on species
if(user != H)
- if(H.mob_run_block(I, totitemdamage, "the [I.name]", ATTACK_TYPE_MELEE, I.armour_penetration, user, affecting.body_zone, null) & BLOCK_SUCCESS)
+ var/list/block_return = list()
+ if(H.mob_run_block(I, totitemdamage, "the [I.name]", ((attackchain_flags & ATTACKCHAIN_PARRY_COUNTERATTACK)? ATTACK_TYPE_PARRY_COUNTERATTACK : NONE) | ATTACK_TYPE_MELEE, I.armour_penetration, user, affecting.body_zone, block_return) & BLOCK_SUCCESS)
return 0
+ totitemdamage = block_calculate_resultant_damage(totitemdamage, block_return)
if(H.check_martial_melee_block())
H.visible_message("[H] blocks [I]!")
return 0
@@ -1722,6 +1724,7 @@ GLOBAL_LIST_EMPTY(roundstart_race_names)
var/armor_block = H.run_armor_check(affecting, "melee", "Your armor has protected your [hit_area].", "Your armor has softened a hit to your [hit_area].",I.armour_penetration)
armor_block = min(90,armor_block) //cap damage reduction at 90%
var/Iforce = I.force //to avoid runtimes on the forcesay checks at the bottom. Some items might delete themselves if you drop them. (stunning yourself, ninja swords)
+
var/weakness = H.check_weakness(I, user)
apply_damage(totitemdamage * weakness, I.damtype, def_zone, armor_block, H) //CIT CHANGE - replaces I.force with totitemdamage
diff --git a/code/modules/mob/living/carbon/human/species_types/jellypeople.dm b/code/modules/mob/living/carbon/human/species_types/jellypeople.dm
index c2cce04053..c699dfe539 100644
--- a/code/modules/mob/living/carbon/human/species_types/jellypeople.dm
+++ b/code/modules/mob/living/carbon/human/species_types/jellypeople.dm
@@ -459,8 +459,18 @@
/datum/action/innate/slime_change/proc/change_form()
var/mob/living/carbon/human/H = owner
- var/select_alteration = input(owner, "Select what part of your form to alter", "Form Alteration", "cancel") in list("Hair Style", "Genitals", "Tail", "Snout", "Markings", "Ears", "Taur body", "Penis", "Vagina", "Penis Length", "Breast Size", "Breast Shape", "Cancel")
- if(select_alteration == "Hair Style")
+ var/select_alteration = input(owner, "Select what part of your form to alter", "Form Alteration", "cancel") in list("Body Color","Hair Style", "Genitals", "Tail", "Snout", "Markings", "Ears", "Taur body", "Penis", "Vagina", "Penis Length", "Breast Size", "Breast Shape", "Cancel")
+
+ if(select_alteration == "Body Color")
+ var/new_color = input(owner, "Choose your skin color:", "Race change","#"+H.dna.features["mcolor"]) as color|null
+ if(new_color)
+ var/temp_hsv = RGBtoHSV(new_color)
+ if(ReadHSV(temp_hsv)[3] >= ReadHSV("#7F7F7F")[3]) // mutantcolors must be bright
+ H.dna.features["mcolor"] = sanitize_hexcolor(new_color)
+ H.update_body()
+ else
+ to_chat(H, "Invalid color. Your color is not bright enough.")
+ else if(select_alteration == "Hair Style")
if(H.gender == MALE)
var/new_style = input(owner, "Select a facial hair style", "Hair Alterations") as null|anything in GLOB.facial_hair_styles_list
if(new_style)
diff --git a/code/modules/mob/living/carbon/monkey/monkey_defense.dm b/code/modules/mob/living/carbon/monkey/monkey_defense.dm
index 50793eb821..8f862af8fa 100644
--- a/code/modules/mob/living/carbon/monkey/monkey_defense.dm
+++ b/code/modules/mob/living/carbon/monkey/monkey_defense.dm
@@ -141,7 +141,7 @@
/mob/living/carbon/monkey/attack_animal(mob/living/simple_animal/M)
. = ..()
if(.)
- var/damage = rand(M.melee_damage_lower, M.melee_damage_upper)
+ var/damage = .
var/dam_zone = dismembering_strike(M, pick(BODY_ZONE_CHEST, BODY_ZONE_PRECISE_L_HAND, BODY_ZONE_PRECISE_R_HAND, BODY_ZONE_L_LEG, BODY_ZONE_R_LEG))
if(!dam_zone) //Dismemberment successful
return TRUE
diff --git a/code/modules/mob/living/damage_procs.dm b/code/modules/mob/living/damage_procs.dm
index 3257b0e3bf..87d5abb89e 100644
--- a/code/modules/mob/living/damage_procs.dm
+++ b/code/modules/mob/living/damage_procs.dm
@@ -78,8 +78,6 @@
apply_damage(brain, BRAIN, def_zone, blocked)
return 1
-
-
/mob/living/proc/apply_effect(effect = 0,effecttype = EFFECT_STUN, blocked = FALSE, knockdown_stamoverride, knockdown_stammax)
var/hit_percent = (100-blocked)/100
if(!effect || (hit_percent <= 0))
@@ -108,7 +106,7 @@
return 1
-/mob/living/proc/apply_effects(stun = 0, knockdown = 0, unconscious = 0, irradiate = 0, slur = 0, stutter = 0, eyeblur = 0, drowsy = 0, blocked = FALSE, stamina = 0, jitter = 0, kd_stamoverride, kd_stammax)
+/mob/living/proc/apply_effects(stun = 0, knockdown = 0, unconscious = 0, irradiate = 0, slur = 0, stutter = 0, eyeblur = 0, drowsy = 0, blocked = 0, stamina = 0, jitter = 0, kd_stamoverride, kd_stammax)
if(blocked >= 100)
return BULLET_ACT_BLOCK
if(stun)
diff --git a/code/modules/mob/living/life.dm b/code/modules/mob/living/life.dm
index d3199d6f8b..5e04e3ec16 100644
--- a/code/modules/mob/living/life.dm
+++ b/code/modules/mob/living/life.dm
@@ -64,6 +64,8 @@
handle_gravity()
+ handle_block_parry(seconds)
+
if(machine)
machine.check_eye(src)
diff --git a/code/modules/mob/living/living.dm b/code/modules/mob/living/living.dm
index c1038fbb41..5b21abfb84 100644
--- a/code/modules/mob/living/living.dm
+++ b/code/modules/mob/living/living.dm
@@ -19,6 +19,8 @@
med_hud_set_status()
/mob/living/Destroy()
+ end_parry_sequence()
+ stop_active_blocking()
if(LAZYLEN(status_effects))
for(var/s in status_effects)
var/datum/status_effect/S = s
diff --git a/code/modules/mob/living/living_active_block.dm b/code/modules/mob/living/living_active_block.dm
new file mode 100644
index 0000000000..e1b90716b6
--- /dev/null
+++ b/code/modules/mob/living/living_active_block.dm
@@ -0,0 +1,275 @@
+// Active directional block system. Shared code is in [living_blocking_parrying.dm]
+/mob/living/proc/stop_active_blocking(was_forced = FALSE)
+ if(!(combat_flags & (COMBAT_FLAG_ACTIVE_BLOCK_STARTING | COMBAT_FLAG_ACTIVE_BLOCKING)))
+ return FALSE
+ var/obj/item/I = active_block_item
+ combat_flags &= ~(COMBAT_FLAG_ACTIVE_BLOCKING | COMBAT_FLAG_ACTIVE_BLOCK_STARTING)
+ active_block_effect_end()
+ active_block_item = null
+ REMOVE_TRAIT(src, TRAIT_MOBILITY_NOUSE, ACTIVE_BLOCK_TRAIT)
+ REMOVE_TRAIT(src, TRAIT_SPRINT_LOCKED, ACTIVE_BLOCK_TRAIT)
+ remove_movespeed_modifier(/datum/movespeed_modifier/active_block)
+ var/datum/block_parry_data/data = I.get_block_parry_data()
+ if(timeToNextMove() < data.block_end_click_cd_add)
+ changeNext_move(data.block_end_click_cd_add)
+ return TRUE
+
+/mob/living/proc/start_active_blocking(obj/item/I)
+ if(combat_flags & (COMBAT_FLAG_ACTIVE_BLOCK_STARTING | COMBAT_FLAG_ACTIVE_BLOCKING))
+ return FALSE
+ if(!(I in held_items))
+ return FALSE
+ var/datum/block_parry_data/data = I.get_block_parry_data()
+ if(!istype(data)) //Typecheck because if an admin/coder screws up varediting or something we do not want someone being broken forever, the CRASH logs feedback so we know what happened.
+ CRASH("start_active_blocking called with an item with no valid data: [I] --> [I.block_parry_data]!")
+ combat_flags |= COMBAT_FLAG_ACTIVE_BLOCKING
+ active_block_item = I
+ if(data.block_lock_attacking)
+ ADD_TRAIT(src, TRAIT_MOBILITY_NOUSE, ACTIVE_BLOCK_TRAIT) //probably should be something else at some point
+ if(data.block_lock_sprinting)
+ ADD_TRAIT(src, TRAIT_SPRINT_LOCKED, ACTIVE_BLOCK_TRAIT)
+ add_or_update_variable_movespeed_modifier(/datum/movespeed_modifier/active_block, multiplicative_slowdown = data.block_slowdown)
+ active_block_effect_start()
+ return TRUE
+
+/// Visual effect setup for starting a directional block
+/mob/living/proc/active_block_effect_start()
+ visible_message("[src] raises their [active_block_item], dropping into a defensive stance!")
+ animate(src, pixel_x = get_standard_pixel_x_offset(), pixel_y = get_standard_pixel_y_offset(), time = 2.5, FALSE, SINE_EASING | EASE_OUT)
+
+/// Visual effect cleanup for starting a directional block
+/mob/living/proc/active_block_effect_end()
+ visible_message("[src] lowers their [active_block_item].")
+ animate(src, pixel_x = get_standard_pixel_x_offset(), pixel_y = get_standard_pixel_y_offset(), time = 2.5, FALSE, SINE_EASING | EASE_IN)
+
+/mob/living/proc/continue_starting_active_block()
+ if(SEND_SIGNAL(src, COMSIG_COMBAT_MODE_CHECK, COMBAT_MODE_INACTIVE))
+ return DO_AFTER_STOP
+ return (combat_flags & COMBAT_FLAG_ACTIVE_BLOCK_STARTING)? DO_AFTER_CONTINUE : DO_AFTER_STOP
+
+/mob/living/get_standard_pixel_x_offset()
+ . = ..()
+ if(combat_flags & (COMBAT_FLAG_ACTIVE_BLOCK_STARTING | COMBAT_FLAG_ACTIVE_BLOCKING))
+ if(dir & EAST)
+ . += 8
+ if(dir & WEST)
+ . -= 8
+
+/mob/living/get_standard_pixel_y_offset()
+ . = ..()
+ if(combat_flags & (COMBAT_FLAG_ACTIVE_BLOCK_STARTING | COMBAT_FLAG_ACTIVE_BLOCKING))
+ if(dir & NORTH)
+ . += 8
+ if(dir & SOUTH)
+ . -= 8
+
+/**
+ * Proc called by keybindings to toggle active blocking.
+ */
+/mob/living/proc/keybind_toggle_active_blocking()
+ if(combat_flags & (COMBAT_FLAG_ACTIVE_BLOCK_STARTING | COMBAT_FLAG_ACTIVE_BLOCKING))
+ return keybind_stop_active_blocking()
+ else
+ return keybind_start_active_blocking()
+
+/**
+ * Proc called by keybindings to start active blocking.
+ */
+/mob/living/proc/keybind_start_active_blocking()
+ if(combat_flags & (COMBAT_FLAG_ACTIVE_BLOCK_STARTING | COMBAT_FLAG_ACTIVE_BLOCKING))
+ return FALSE
+ if(!(combat_flags & COMBAT_FLAG_BLOCK_CAPABLE))
+ to_chat(src, "You're not something that can actively block.")
+ return FALSE
+ // QOL: Instead of trying to just block with held item, grab first available item.
+ var/obj/item/I = find_active_block_item()
+ if(!I)
+ to_chat(src, "You can't block with your bare hands!")
+ return
+ if(!I.can_active_block())
+ to_chat(src, "[I] is either not capable of being used to actively block, or is not currently in a state that can! (Try wielding it if it's twohanded, for example.)")
+ return
+ // QOL: Attempt to toggle on combat mode if it isn't already
+ SEND_SIGNAL(src, COMSIG_ENABLE_COMBAT_MODE)
+ if(!SEND_SIGNAL(src, COMSIG_COMBAT_MODE_CHECK, COMBAT_MODE_ACTIVE))
+ to_chat(src, "You must be in combat mode to actively block!")
+ return FALSE
+ var/datum/block_parry_data/data = I.get_block_parry_data()
+ var/delay = data.block_start_delay
+ combat_flags |= COMBAT_FLAG_ACTIVE_BLOCK_STARTING
+ animate(src, pixel_x = get_standard_pixel_x_offset(), pixel_y = get_standard_pixel_y_offset(), time = delay, FALSE, SINE_EASING | EASE_IN)
+ if(!do_after_advanced(src, delay, src, DO_AFTER_REQUIRES_USER_ON_TURF|DO_AFTER_NO_COEFFICIENT, CALLBACK(src, .proc/continue_starting_active_block), MOBILITY_USE, null, null, I))
+ to_chat(src, "You fail to raise [I].")
+ combat_flags &= ~(COMBAT_FLAG_ACTIVE_BLOCK_STARTING)
+ animate(src, pixel_x = get_standard_pixel_x_offset(), pixel_y = get_standard_pixel_y_offset(), time = 2.5, FALSE, SINE_EASING | EASE_IN, ANIMATION_END_NOW)
+ return
+ combat_flags &= ~(COMBAT_FLAG_ACTIVE_BLOCK_STARTING)
+ start_active_blocking(I)
+
+/**
+ * Gets the first item we can that can block, but if that fails, default to active held item.COMSIG_ENABLE_COMBAT_MODE
+ */
+/mob/living/proc/find_active_block_item()
+ var/obj/item/held = get_active_held_item()
+ if(!held?.can_active_block())
+ for(var/obj/item/I in held_items - held)
+ if(I.can_active_block())
+ return I
+ return held
+
+/**
+ * Proc called by keybindings to stop active blocking.
+ */
+/mob/living/proc/keybind_stop_active_blocking()
+ combat_flags &= ~(COMBAT_FLAG_ACTIVE_BLOCK_STARTING)
+ if(combat_flags & COMBAT_FLAG_ACTIVE_BLOCKING)
+ stop_active_blocking(FALSE)
+ return TRUE
+
+/**
+ * Returns if we can actively block.
+ */
+/obj/item/proc/can_active_block()
+ return block_parry_data && (item_flags & ITEM_CAN_BLOCK)
+
+/**
+ * Calculates FINAL ATTACK DAMAGE after mitigation
+ */
+/obj/item/proc/active_block_calculate_final_damage(mob/living/owner, atom/object, damage, attack_text, attack_type, armour_penetration, mob/attacker, def_zone, final_block_chance, list/block_return)
+ var/datum/block_parry_data/data = get_block_parry_data()
+ var/absorption = data.attack_type_list_scan(data.block_damage_absorption_override, attack_type)
+ var/efficiency = data.attack_type_list_scan(data.block_damage_multiplier_override, attack_type)
+ var/limit = data.attack_type_list_scan(data.block_damage_limit_override, attack_type)
+ // must use isnulls to handle 0's.
+ if(isnull(absorption))
+ absorption = data.block_damage_absorption
+ if(isnull(efficiency))
+ efficiency = data.block_damage_multiplier
+ if(isnull(limit))
+ limit = data.block_damage_limit
+ // now we calculate damage to reduce.
+ var/final_damage = 0
+ // apply limit
+ if(damage > limit) //clamp and apply overrun
+ final_damage += (damage - limit)
+ damage = limit
+ // apply absorption
+ damage -= min(absorption, damage) //this way if damage is less than absorption it 0's properly.
+ // apply multiplier to remaining
+ final_damage += (damage * efficiency)
+ return final_damage
+
+/// Amount of stamina from damage blocked. Note that the damage argument is damage_blocked.
+/obj/item/proc/active_block_stamina_cost(mob/living/owner, atom/object, damage_blocked, attack_text, attack_type, armour_penetration, mob/attacker, def_zone, final_block_chance, list/block_return)
+ var/datum/block_parry_data/data = get_block_parry_data()
+ var/efficiency = data.attack_type_list_scan(data.block_stamina_efficiency_override, attack_type)
+ if(isnull(efficiency))
+ efficiency = data.block_stamina_efficiency
+ var/multiplier = 1
+ if(!CHECK_MOBILITY(owner, MOBILITY_STAND))
+ multiplier = data.attack_type_list_scan(data.block_resting_stamina_penalty_multiplier_override, attack_type)
+ if(isnull(multiplier))
+ multiplier = data.block_resting_stamina_penalty_multiplier
+ return (damage_blocked / efficiency) * multiplier
+
+/// Apply the stamina damage to our user, notice how damage argument is stamina_amount.
+/obj/item/proc/active_block_do_stamina_damage(mob/living/owner, atom/object, stamina_amount, attack_text, attack_type, armour_penetration, mob/attacker, def_zone, final_block_chance, list/block_return)
+ var/datum/block_parry_data/data = get_block_parry_data()
+ if(iscarbon(owner))
+ var/mob/living/carbon/C = owner
+ var/held_index = C.get_held_index_of_item(src)
+ var/obj/item/bodypart/BP = C.hand_bodyparts[held_index]
+ if(!BP?.body_zone)
+ return C.adjustStaminaLossBuffered(stamina_amount) //nah
+ var/zone = BP.body_zone
+ var/stamina_to_zone = data.block_stamina_limb_ratio * stamina_amount
+ var/stamina_to_chest = stamina_amount - stamina_to_zone
+ var/stamina_buffered = stamina_to_chest * data.block_stamina_buffer_ratio
+ stamina_to_chest -= stamina_buffered
+ C.apply_damage(stamina_to_zone, STAMINA, zone)
+ C.apply_damage(stamina_to_chest, STAMINA, BODY_ZONE_CHEST)
+ C.adjustStaminaLossBuffered(stamina_buffered)
+ else
+ owner.adjustStaminaLossBuffered(stamina_amount)
+
+/obj/item/proc/on_active_block(mob/living/owner, atom/object, damage, damage_blocked, attack_text, attack_type, armour_penetration, mob/attacker, def_zone, final_block_chance, list/block_return, override_direction)
+ return
+
+/obj/item/proc/active_block(mob/living/owner, atom/object, damage, attack_text, attack_type, armour_penetration, mob/attacker, def_zone, final_block_chance, list/block_return, override_direction)
+ if(!can_active_block())
+ return BLOCK_NONE
+ var/datum/block_parry_data/data = get_block_parry_data()
+ if(attack_type && !(attack_type & data.can_block_attack_types))
+ return BLOCK_NONE
+ var/incoming_direction
+ if(isnull(override_direction))
+ if(istype(object, /obj/item/projectile))
+ var/obj/item/projectile/P = object
+ incoming_direction = angle2dir(P.Angle)
+ else
+ incoming_direction = get_dir(get_turf(attacker) || get_turf(object), src)
+ if(!CHECK_MOBILITY(owner, MOBILITY_STAND) && !(data.block_resting_attack_types_anydir & attack_type) && (!(data.block_resting_attack_types_directional & attack_type) || !can_block_direction(owner.dir, incoming_direction)))
+ return BLOCK_NONE
+ else if(!can_block_direction(owner.dir, incoming_direction))
+ return BLOCK_NONE
+ block_return[BLOCK_RETURN_ACTIVE_BLOCK] = TRUE
+ var/final_damage = active_block_calculate_final_damage(owner, object, damage, attack_text, attack_type, armour_penetration, attacker, def_zone, final_block_chance, block_return)
+ var/damage_blocked = damage - final_damage
+ var/stamina_cost = active_block_stamina_cost(owner, object, damage_blocked, attack_text, attack_type, armour_penetration, attacker, def_zone, final_block_chance, block_return)
+ active_block_do_stamina_damage(owner, object, stamina_cost, attack_text, attack_type, armour_penetration, attacker, def_zone, final_block_chance, block_return)
+ block_return[BLOCK_RETURN_ACTIVE_BLOCK_DAMAGE_MITIGATED] = damage - final_damage
+ block_return[BLOCK_RETURN_SET_DAMAGE_TO] = final_damage
+ . = BLOCK_SHOULD_CHANGE_DAMAGE
+ if((final_damage <= 0) || (damage <= 0))
+ . |= BLOCK_SUCCESS //full block
+ owner.visible_message("[owner] blocks \the [attack_text] with [src]!")
+ else
+ owner.visible_message("[owner] dampens \the [attack_text] with [src]!")
+ block_return[BLOCK_RETURN_PROJECTILE_BLOCK_PERCENTAGE] = data.block_projectile_mitigation
+ if(length(data.block_sounds))
+ playsound(loc, pickweight(data.block_sounds), 75, TRUE)
+ on_active_block(owner, object, damage, damage_blocked, attack_text, attack_type, armour_penetration, attacker, def_zone, final_block_chance, block_return, override_direction)
+
+/obj/item/proc/check_active_block(mob/living/owner, atom/object, damage, attack_text, attack_type, armour_penetration, mob/attacker, def_zone, final_block_chance, list/block_return)
+ if(!can_active_block())
+ return
+ var/incoming_direction = get_dir(get_turf(attacker) || get_turf(object), src)
+ if(!can_block_direction(owner.dir, incoming_direction))
+ return
+ block_return[BLOCK_RETURN_ACTIVE_BLOCK] = TRUE
+ block_return[BLOCK_RETURN_ACTIVE_BLOCK_DAMAGE_MITIGATED] = damage - active_block_calculate_final_damage(owner, object, damage, attack_text, attack_type, armour_penetration, attacker, def_zone, final_block_chance, block_return)
+
+/**
+ * Gets the block direction bitflags of what we can block.
+ */
+/obj/item/proc/blockable_directions()
+ var/datum/block_parry_data/data = get_block_parry_data()
+ return data.can_block_directions
+
+/**
+ * Checks if we can block from a specific direction from our direction.
+ *
+ * @params
+ * * our_dir - our direction.
+ * * their_dir - their direction. Must be a single direction, or NONE for an attack from the same tile. This is incoming direction.
+ */
+/obj/item/proc/can_block_direction(our_dir, their_dir)
+ their_dir = turn(their_dir, 180)
+ if(our_dir != NORTH)
+ var/turn_angle = dir2angle(our_dir)
+ // dir2angle(), ss13 proc is clockwise so dir2angle(EAST) == 90
+ // turn(), byond proc is counterclockwise so turn(NORTH, 90) == WEST
+ their_dir = turn(their_dir, turn_angle)
+ return (DIR2BLOCKDIR(their_dir) & blockable_directions())
+
+/**
+ * can_block_direction but for "compound" directions to check all of them and return the number of directions that were blocked.
+ *
+ * @params
+ * * our_dir - our direction.
+ * * their_dirs - list of their directions as we cannot use bitfields here.
+ */
+/obj/item/proc/can_block_directions_multiple(our_dir, list/their_dirs)
+ . = FALSE
+ for(var/i in their_dirs)
+ . |= can_block_direction(our_dir, i)
diff --git a/code/modules/mob/living/living_active_parry.dm b/code/modules/mob/living/living_active_parry.dm
new file mode 100644
index 0000000000..50b51d4d95
--- /dev/null
+++ b/code/modules/mob/living/living_active_parry.dm
@@ -0,0 +1,332 @@
+// Active parry system goes in here.
+/**
+ * Determines if we can actively parry.
+ */
+/obj/item/proc/can_active_parry()
+ return block_parry_data && (item_flags & ITEM_CAN_PARRY)
+
+/**
+ * Called from keybindings.
+ */
+/mob/living/proc/keybind_parry()
+ initiate_parry_sequence()
+
+/**
+ * Initiates a parrying sequence.
+ */
+/mob/living/proc/initiate_parry_sequence()
+ if(parrying)
+ return // already parrying
+ if(!(combat_flags & COMBAT_FLAG_PARRY_CAPABLE))
+ to_chat(src, "You are not something that can parry attacks.")
+ return
+ // Prioritize item, then martial art, then unarmed.
+ // yanderedev else if time
+ var/obj/item/using_item = get_active_held_item()
+ var/datum/block_parry_data/data
+ var/method
+ if(using_item?.can_active_parry())
+ data = using_item.block_parry_data
+ method = ITEM_PARRY
+ else if(mind?.martial_art?.can_martial_parry)
+ data = mind.martial_art.block_parry_data
+ method = MARTIAL_PARRY
+ else if(combat_flags & COMBAT_FLAG_UNARMED_PARRY)
+ data = block_parry_data
+ method = UNARMED_PARRY
+ else
+ // QOL: If none of the above work, try to find another item.
+ var/obj/item/backup = find_backup_parry_item()
+ if(!backup)
+ to_chat(src, "You have nothing to parry with!")
+ return FALSE
+ data = backup.block_parry_data
+ using_item = backup
+ method = ITEM_PARRY
+ //QOL: Try to enable combat mode if it isn't already
+ SEND_SIGNAL(src, COMSIG_ENABLE_COMBAT_MODE)
+ if(!SEND_SIGNAL(src, COMSIG_COMBAT_MODE_CHECK, COMBAT_MODE_ACTIVE))
+ to_chat(src, "You must be in combat mode to parry!")
+ return FALSE
+ data = return_block_parry_datum(data)
+ var/full_parry_duration = data.parry_time_windup + data.parry_time_active + data.parry_time_spindown
+ // no system in place to "fallback" if out of the 3 the top priority one can't parry due to constraints but something else can.
+ // can always implement it later, whatever.
+ if((data.parry_respect_clickdelay && (next_move > world.time)) || ((parry_end_time_last + data.parry_cooldown) > world.time))
+ to_chat(src, "You are not ready to parry (again)!")
+ return
+ // Point of no return, make sure everything is set.
+ parrying = method
+ if(method == ITEM_PARRY)
+ active_parry_item = using_item
+ adjustStaminaLossBuffered(data.parry_stamina_cost)
+ parry_start_time = world.time
+ successful_parries = list()
+ addtimer(CALLBACK(src, .proc/end_parry_sequence), full_parry_duration)
+ if(data.parry_flags & PARRY_LOCK_ATTACKING)
+ ADD_TRAIT(src, TRAIT_MOBILITY_NOUSE, ACTIVE_PARRY_TRAIT)
+ if(data.parry_flags & PARRY_LOCK_SPRINTING)
+ ADD_TRAIT(src, TRAIT_SPRINT_LOCKED, ACTIVE_PARRY_TRAIT)
+ handle_parry_starting_effects(data)
+ return TRUE
+
+/**
+ * Tries to find a backup parry item.
+ * Does not look at active held item.
+ */
+/mob/living/proc/find_backup_parry_item()
+ for(var/obj/item/I in held_items - get_active_held_item())
+ if(I.can_active_parry())
+ return I
+
+/**
+ * Called via timer when the parry sequence ends.
+ */
+/mob/living/proc/end_parry_sequence()
+ if(!parrying)
+ return
+ REMOVE_TRAIT(src, TRAIT_MOBILITY_NOUSE, ACTIVE_PARRY_TRAIT)
+ REMOVE_TRAIT(src, TRAIT_SPRINT_LOCKED, ACTIVE_PARRY_TRAIT)
+ if(parry_visual_effect)
+ QDEL_NULL(parry_visual_effect)
+ var/datum/block_parry_data/data = get_parry_data()
+ var/list/effect_text = list()
+ var/successful = FALSE
+ for(var/efficiency in successful_parries)
+ if(efficiency >= data.parry_efficiency_considered_successful)
+ successful = TRUE
+ break
+ if(!successful) // didn't parry anything successfully
+ if(data.parry_failed_stagger_duration)
+ Stagger(data.parry_failed_stagger_duration)
+ effect_text += "staggering themselves"
+ if(data.parry_failed_clickcd_duration)
+ changeNext_move(data.parry_failed_clickcd_duration)
+ effect_text += "throwing themselves off balance"
+ handle_parry_ending_effects(data, effect_text)
+ parrying = NOT_PARRYING
+ parry_start_time = 0
+ parry_end_time_last = world.time
+ successful_parries = null
+
+/**
+ * Handles starting effects for parrying.
+ */
+/mob/living/proc/handle_parry_starting_effects(datum/block_parry_data/data)
+ playsound(src, data.parry_start_sound, 75, 1)
+ parry_visual_effect = new /obj/effect/abstract/parry/main(null, TRUE, src, data.parry_effect_icon_state, data.parry_time_windup_visual_override || data.parry_time_windup, data.parry_time_active_visual_override || data.parry_time_active, data.parry_time_spindown_visual_override || data.parry_time_spindown)
+ switch(parrying)
+ if(ITEM_PARRY)
+ visible_message("[src] swings [active_parry_item]!")
+ else
+ visible_message("[src] rushes forwards!")
+
+/**
+ * Handles ending effects for parrying.
+ */
+/mob/living/proc/handle_parry_ending_effects(datum/block_parry_data/data, list/failed_effect_text)
+ if(length(successful_parries))
+ return
+ visible_message("[src] fails to connect their parry[failed_effect_text? ", [english_list(failed_effect_text)]" : ""]!")
+
+/**
+ * Gets this item's datum/block_parry_data
+ */
+/obj/item/proc/get_block_parry_data()
+ return return_block_parry_datum(block_parry_data)
+
+//Stubs.
+
+/**
+ * Called when an attack is parried using this, whether or not the parry was successful.
+ */
+/obj/item/proc/on_active_parry(mob/living/owner, atom/object, damage, attack_text, attack_type, armour_penetration, mob/attacker, def_zone, final_block_chance, list/block_return, parry_efficiency, parry_time)
+
+/**
+ * Called when an attack is parried innately, whether or not the parry was successful.
+ */
+/mob/living/proc/on_active_parry(mob/living/owner, atom/object, damage, attack_text, attack_type, armour_penetration, mob/attacker, def_zone, final_block_chance, list/block_return, parry_efficiency, parry_time)
+
+/**
+ * Called when an attack is parried using this, whether or not the parry was successful.
+ */
+/datum/martial_art/proc/on_active_parry(mob/living/owner, atom/object, damage, attack_text, attack_type, armour_penetration, mob/attacker, def_zone, final_block_chance, list/block_return, parry_efficiency, parry_time)
+
+/**
+ * Called when an attack is parried and block_parra_data indicates to use a proc to handle counterattack.
+ */
+/obj/item/proc/active_parry_reflex_counter(mob/living/owner, atom/object, damage, attack_text, attack_type, armour_penetration, mob/attacker, def_zone, list/return_list, parry_efficiency, list/effect_text)
+
+/**
+ * Called when an attack is parried and block_parra_data indicates to use a proc to handle counterattack.
+ */
+/mob/living/proc/active_parry_reflex_counter(mob/living/owner, atom/object, damage, attack_text, attack_type, armour_penetration, mob/attacker, def_zone, list/return_list, parry_efficiency, list/effect_text)
+
+/**
+ * Called when an attack is parried and block_parra_data indicates to use a proc to handle counterattack.
+ */
+/datum/martial_art/proc/active_parry_reflex_counter(mob/living/owner, atom/object, damage, attack_text, attack_type, armour_penetration, mob/attacker, def_zone, list/return_list, parry_efficiency, list/effect_text)
+
+/**
+ * Gets the stage of our parry sequence we're currently in.
+ */
+/mob/living/proc/get_parry_stage()
+ if(!parrying)
+ return NOT_PARRYING
+ var/datum/block_parry_data/data = get_parry_data()
+ var/windup_end = data.parry_time_windup
+ var/active_end = windup_end + data.parry_time_active
+ var/spindown_end = active_end + data.parry_time_spindown
+ var/current_time = get_parry_time()
+ // Not a switch statement because byond switch statements don't support floats at time of writing with "to" keyword.
+ if(current_time < 0)
+ return NOT_PARRYING
+ else if(current_time < windup_end)
+ return PARRY_WINDUP
+ else if(current_time <= active_end) // this uses <= on purpose, give a slight bit of advantage because time is rounded to world.tick_lag
+ return PARRY_ACTIVE
+ else if(current_time <= spindown_end)
+ return PARRY_SPINDOWN
+ else
+ return NOT_PARRYING
+
+/**
+ * Gets the current decisecond "frame" of an active parry.
+ */
+/mob/living/proc/get_parry_time()
+ return world.time - parry_start_time
+
+/// same return values as normal blocking, called with absolute highest priority in the block "chain".
+/mob/living/proc/run_parry(atom/object, damage, attack_text, attack_type, armour_penetration, mob/attacker, def_zone, list/return_list = list())
+ var/stage = get_parry_stage()
+ if(stage != PARRY_ACTIVE)
+ return BLOCK_NONE
+ var/datum/block_parry_data/data = get_parry_data()
+ if(attack_type && (!(attack_type & data.parry_attack_types) || (attack_type & ATTACK_TYPE_PARRY_COUNTERATTACK))) // if this attack is from a parry do not parry it lest we infinite loop.
+ return BLOCK_NONE
+ var/efficiency = data.get_parry_efficiency(attack_type, get_parry_time())
+ switch(parrying)
+ if(ITEM_PARRY)
+ if(!active_parry_item.can_active_parry())
+ return BLOCK_NONE
+ . = active_parry_item.on_active_parry(src, object, damage, attack_text, attack_type, armour_penetration, attacker, def_zone, return_list, efficiency, get_parry_time())
+ if(UNARMED_PARRY)
+ . = on_active_parry(src, object, damage, attack_text, attack_type, armour_penetration, attacker, def_zone, return_list, efficiency, get_parry_time())
+ if(MARTIAL_PARRY)
+ . = mind.martial_art.on_active_parry(src, object, damage, attack_text, attack_type, armour_penetration, attacker, def_zone, return_list, efficiency, get_parry_time())
+ if(!isnull(return_list[BLOCK_RETURN_OVERRIDE_PARRY_EFFICIENCY])) // one of our procs overrode
+ efficiency = return_list[BLOCK_RETURN_OVERRIDE_PARRY_EFFICIENCY]
+ if(efficiency <= 0) // Do not allow automatically handled/standardized parries that increase damage for now.
+ return
+ . |= BLOCK_SHOULD_PARTIAL_MITIGATE
+ if(isnull(return_list[BLOCK_RETURN_MITIGATION_PERCENT])) // if one of the on_active_parry procs overrode. We don't have to worry about interference since parries are the first thing checked in the [do_run_block()] sequence.
+ return_list[BLOCK_RETURN_MITIGATION_PERCENT] = clamp(efficiency, 0, 100) // do not allow > 100% or < 0% for now.
+ if((return_list[BLOCK_RETURN_MITIGATION_PERCENT] >= 100) || (damage <= 0))
+ . |= BLOCK_SUCCESS
+ var/list/effect_text
+ if(efficiency >= data.parry_efficiency_to_counterattack)
+ run_parry_countereffects(object, damage, attack_text, attack_type, armour_penetration, attacker, def_zone, return_list, efficiency)
+ if(data.parry_flags & PARRY_DEFAULT_HANDLE_FEEDBACK)
+ handle_parry_feedback(object, damage, attack_text, attack_type, armour_penetration, attacker, def_zone, return_list, efficiency, effect_text)
+ successful_parries += efficiency
+ if(length(successful_parries) >= data.parry_max_attacks)
+ end_parry_sequence()
+
+/mob/living/proc/handle_parry_feedback(atom/object, damage, attack_text, attack_type, armour_penetration, mob/attacker, def_zone, list/return_list = list(), parry_efficiency, list/effect_text)
+ var/datum/block_parry_data/data = get_parry_data()
+ if(data.parry_sounds)
+ playsound(src, pick(data.parry_sounds), 75)
+ visible_message("[src] parries \the [attack_text][length(effect_text)? ", [english_list(effect_text)] [attacker]" : ""]!")
+
+/// Run counterattack if any
+/mob/living/proc/run_parry_countereffects(atom/object, damage, attack_text, attack_type, armour_penetration, mob/attacker, def_zone, list/return_list = list(), parry_efficiency)
+ if(!isliving(attacker))
+ return
+ var/mob/living/L = attacker
+ var/datum/block_parry_data/data = get_parry_data()
+ var/list/effect_text = list()
+ // Always proc so items can override behavior easily
+ switch(parrying)
+ if(ITEM_PARRY)
+ active_parry_item.active_parry_reflex_counter(src, object, damage, attack_text, attack_type, armour_penetration, attacker, def_zone, return_list, parry_efficiency, effect_text)
+ if(UNARMED_PARRY)
+ active_parry_reflex_counter(src, object, damage, attack_text, attack_type, armour_penetration, attacker, def_zone, return_list, parry_efficiency, effect_text)
+ if(MARTIAL_PARRY)
+ mind.martial_art.active_parry_reflex_counter(src, object, damage, attack_text, attack_type, armour_penetration, attacker, def_zone, return_list, parry_efficiency, effect_text)
+ if(Adjacent(attacker) || data.parry_data[PARRY_COUNTERATTACK_IGNORE_ADJACENCY])
+ if(data.parry_data[PARRY_COUNTERATTACK_MELEE_ATTACK_CHAIN])
+ switch(parrying)
+ if(ITEM_PARRY)
+ active_parry_item.melee_attack_chain(src, attacker, null, ATTACKCHAIN_PARRY_COUNTERATTACK, data.parry_data[PARRY_COUNTERATTACK_MELEE_ATTACK_CHAIN])
+ effect_text += "reflexively counterattacking with [active_parry_item]"
+ if(UNARMED_PARRY) // WARNING: If you are using these two, the attackchain parry counterattack flags and damage multipliers are unimplemented. Be careful with how you handle this.
+ UnarmedAttack(attacker)
+ effect_text += "reflexively counterattacking in the process"
+ if(MARTIAL_PARRY) // Not well implemeneted, recommend custom implementation using the martial art datums.
+ UnarmedAttack(attacker)
+ effect_text += "reflexively maneuvering to retaliate"
+ if(data.parry_data[PARRY_DISARM_ATTACKER])
+ L.drop_all_held_items()
+ effect_text += "disarming"
+ if(data.parry_data[PARRY_KNOCKDOWN_ATTACKER])
+ L.DefaultCombatKnockdown(data.parry_data[PARRY_KNOCKDOWN_ATTACKER])
+ effect_text += "knocking them to the ground"
+ if(data.parry_data[PARRY_STAGGER_ATTACKER])
+ L.Stagger(data.parry_data[PARRY_STAGGER_ATTACKER])
+ effect_text += "staggering"
+ if(data.parry_data[PARRY_DAZE_ATTACKER])
+ L.Daze(data.parry_data[PARRY_DAZE_ATTACKER])
+ effect_text += "dazing"
+ return effect_text
+
+/// Gets the datum/block_parry_data we're going to use to parry.
+/mob/living/proc/get_parry_data()
+ if(parrying == ITEM_PARRY)
+ return active_parry_item.get_block_parry_data()
+ else if(parrying == UNARMED_PARRY)
+ return return_block_parry_datum(block_parry_data)
+ else if(parrying == MARTIAL_PARRY)
+ return return_block_parry_datum(mind.martial_art.block_parry_data)
+
+/// Effects
+/obj/effect/abstract/parry
+ icon = 'icons/effects/block_parry.dmi'
+ mouse_opacity = MOUSE_OPACITY_TRANSPARENT
+ layer = FLOAT_LAYER
+ plane = FLOAT_PLANE
+ vis_flags = VIS_INHERIT_LAYER|VIS_INHERIT_PLANE
+ /// The person we're on
+ var/mob/living/owner
+
+/obj/effect/abstract/parry/main
+ name = null
+
+/obj/effect/abstract/parry/main/Initialize(mapload, autorun, mob/living/owner, set_icon_state, windup, active, spindown)
+ . = ..()
+ icon_state = set_icon_state
+ if(owner)
+ attach_to(owner)
+ if(autorun)
+ INVOKE_ASYNC(src, .proc/run_animation, windup, active, spindown)
+
+/obj/effect/abstract/parry/main/Destroy()
+ detach_from(owner)
+ return ..()
+
+/obj/effect/abstract/parry/main/proc/attach_to(mob/living/attaching)
+ if(owner)
+ detach_from(owner)
+ owner = attaching
+ owner.vis_contents += src
+
+/obj/effect/abstract/parry/main/proc/detach_from(mob/living/detaching)
+ if(detaching == owner)
+ owner = null
+ detaching.vis_contents -= src
+
+/obj/effect/abstract/parry/main/proc/run_animation(windup_time = 2, active_time = 5, spindown_time = 3)
+ var/matrix/current = transform
+ transform = matrix(0.1, 0, 0, 0, 0.1, 0)
+ animate(src, transform = current, time = windup_time)
+ sleep(active_time)
+ animate(src, alpha = 0, spindown_time)
diff --git a/code/modules/mob/living/living_block.dm b/code/modules/mob/living/living_block.dm
index 817863f257..d32265e478 100644
--- a/code/modules/mob/living/living_block.dm
+++ b/code/modules/mob/living/living_block.dm
@@ -1,31 +1,6 @@
// This file has a weird name, but it's for anything related to the checks for shields, blocking, dodging,
// and similar "stop this attack before it actually impacts the target" as opposed to "defend once it has hit".
-/*
-/// You can find the mob_check_block() and mob_run_block() macros in __DEFINES/combat.dm
-
-/// Bitflags for check_block() and run_block(). Meant to be combined. You can be hit and still reflect, for example, if you do not use BLOCK_SUCCESS.
-/// Attack was not blocked
-#define BLOCK_NONE NONE
-/// Attack was blocked, do not do damage. THIS FLAG MUST BE THERE FOR DAMAGE/EFFECT PREVENTION!
-#define BLOCK_SUCCESS (1<<1)
-
-/// The below are for "metadata" on "how" the attack was blocked.
-
-/// Attack was and should be reflected (NOTE: the SHOULD here is important, as it says "the thing blocking isn't handling the reflecting for you so do it yourself"!)
-#define BLOCK_SHOULD_REFLECT (1<<2)
-/// Attack was manually redirected (including reflected) by any means by the defender. For when YOU are handling the reflection, rather than the thing hitting you. (see sleeping carp)
-#define BLOCK_REDIRECTED (1<<3)
-/// Attack was blocked by something like a shield.
-#define BLOCK_PHYSICAL_EXTERNAL (1<<4)
-/// Attack was blocked by something worn on you.
-#define BLOCK_PHYSICAL_INTERNAL (1<<5)
-/// Attack should pass through. Like SHOULD_REFLECT but for.. well, passing through harmlessly.
-#define BLOCK_SHOULD_PASSTHROUGH (1<<6)
-/// Attack outright missed because the target dodged. Should usually be combined with SHOULD_PASSTHROUGH or something (see martial arts)
-#define BLOCK_TARGET_DODGED (1<<7)
-*/
-
/** The actual proc for block checks. DO NOT USE THIS DIRECTLY UNLESS YOU HAVE VERY GOOD REASON TO. To reduce copypaste for differences between handling for real attacks and virtual checks.
* Automatically checks all held items for /obj/item/proc/run_block() with the same parameters.
* @params
@@ -39,21 +14,31 @@
* attacker - Set to the mob attacking IF KNOWN. Do not expect this to always be set!
* def_zone - The zone this'll impact.
* return_list - If something wants to grab things from what items/whatever put into list/block_return on obj/item/run_block and the comsig, pass in a list so you can grab anything put in it after block runs.
+ * attack_direction - Direction of the attack. It is highly recommended to put this in, as the automatic guesswork that's done otherwise is quite inaccurate at times.
*/
-/mob/living/proc/do_run_block(real_attack = TRUE, atom/object, damage, attack_text, attack_type, armour_penetration, mob/attacker, def_zone, list/return_list = list())
+/mob/living/proc/do_run_block(real_attack = TRUE, atom/object, damage, attack_text, attack_type, armour_penetration, mob/attacker, def_zone, list/return_list = list(), attack_direction)
+ if(real_attack)
+ . = run_parry(object, damage, attack_text, attack_type, armour_penetration, attacker, def_zone, return_list) //Parry - Highest priority!
+ if((. & BLOCK_SUCCESS) && !(. & BLOCK_CONTINUE_CHAIN))
+ return
// Component signal block runs have highest priority.. for now.
- . = SEND_SIGNAL(src, COMSIG_LIVING_RUN_BLOCK, real_attack, object, damage, attack_text, attack_type, armour_penetration, attacker, def_zone, return_list)
+ . = SEND_SIGNAL(src, COMSIG_LIVING_RUN_BLOCK, real_attack, object, damage, attack_text, attack_type, armour_penetration, attacker, def_zone, return_list, attack_direction)
if((. & BLOCK_SUCCESS) && !(. & BLOCK_CONTINUE_CHAIN))
+ return_list[BLOCK_RETURN_PROJECTILE_BLOCK_PERCENTAGE] = 100
return
var/list/obj/item/tocheck = get_blocking_items()
- sortTim(tocheck, /proc/cmp_item_block_priority_asc)
+ sortTim(tocheck, /proc/cmp_numeric_dsc, TRUE)
// i don't like this
var/block_chance_modifier = round(damage / -3)
if(real_attack)
for(var/obj/item/I in tocheck)
// i don't like this too
var/final_block_chance = I.block_chance - (clamp((armour_penetration-I.armour_penetration)/2,0,100)) + block_chance_modifier //So armour piercing blades can still be parried by other blades, for example
- var/results = I.run_block(src, object, damage, attack_text, attack_type, armour_penetration, attacker, def_zone, final_block_chance, return_list)
+ var/results
+ if(I == active_block_item)
+ results = I.active_block(src, object, damage, attack_text, attack_type, armour_penetration, attacker, def_zone, final_block_chance, return_list, attack_direction)
+ else
+ results = I.run_block(src, object, damage, attack_text, attack_type, armour_penetration, attacker, def_zone, final_block_chance, return_list)
. |= results
if((results & BLOCK_SUCCESS) && !(results & BLOCK_CONTINUE_CHAIN))
break
@@ -61,17 +46,29 @@
for(var/obj/item/I in tocheck)
// i don't like this too
var/final_block_chance = I.block_chance - (clamp((armour_penetration-I.armour_penetration)/2,0,100)) + block_chance_modifier //So armour piercing blades can still be parried by other blades, for example
- I.check_block(src, object, damage, attack_text, attack_type, armour_penetration, attacker, def_zone, final_block_chance, return_list)
+ if(I == active_block_item) //block is long termed enough we give a damn. parry, not so much.
+ I.check_active_block(src, object, damage, attack_text, attack_type, armour_penetration, attacker, def_zone, final_block_chance, return_list, attack_direction)
+ else
+ I.check_block(src, object, damage, attack_text, attack_type, armour_penetration, attacker, def_zone, final_block_chance, return_list)
+ if(. & BLOCK_SUCCESS)
+ return_list[BLOCK_RETURN_PROJECTILE_BLOCK_PERCENTAGE] = 100
+ else if(isnull(return_list[BLOCK_RETURN_PROJECTILE_BLOCK_PERCENTAGE]))
+ return_list[BLOCK_RETURN_PROJECTILE_BLOCK_PERCENTAGE] = return_list[BLOCK_RETURN_MITIGATION_PERCENT]
-/// Gets an unsortedlist of objects to run block checks on.
+/// Gets an unsortedlist of objects to run block checks on. List must have associative values for priorities!
/mob/living/proc/get_blocking_items()
. = list()
+ if(active_block_item)
+ var/datum/block_parry_data/data = active_block_item.get_block_parry_data()
+ .[active_block_item] = data.block_active_priority
SEND_SIGNAL(src, COMSIG_LIVING_GET_BLOCKING_ITEMS, .)
for(var/obj/item/I in held_items)
// this is a bad check but i am not removing it until a better catchall is made
if(istype(I, /obj/item/clothing))
continue
- . |= I
+ if(.[I]) //don't override block/parry.
+ continue
+ .[I] = I.block_priority
/obj/item
/// The 0% to 100% chance for the default implementation of random block rolls.
@@ -95,3 +92,15 @@
SEND_SIGNAL(src, COMSIG_ITEM_CHECK_BLOCK, owner, object, damage, attack_text, attack_type, armour_penetration, attacker, def_zone, final_block_chance, block_return)
var/existing = block_return[BLOCK_RETURN_NORMAL_BLOCK_CHANCE]
block_return[BLOCK_RETURN_NORMAL_BLOCK_CHANCE] = max(existing || 0, final_block_chance)
+
+// HELPER PROCS
+
+/**
+ * Considers a block return_list and calculates damage to use from that.
+ */
+/proc/block_calculate_resultant_damage(damage, list/block_return)
+ if(!isnull(block_return[BLOCK_RETURN_SET_DAMAGE_TO])) // higher priority
+ return block_return[BLOCK_RETURN_SET_DAMAGE_TO]
+ else if(!isnull(block_return[BLOCK_RETURN_MITIGATION_PERCENT]))
+ return damage * ((100 - block_return[BLOCK_RETURN_MITIGATION_PERCENT]) * 0.01)
+ return damage
diff --git a/code/modules/mob/living/living_blocking_parrying.dm b/code/modules/mob/living/living_blocking_parrying.dm
new file mode 100644
index 0000000000..9f1ad1c27a
--- /dev/null
+++ b/code/modules/mob/living/living_blocking_parrying.dm
@@ -0,0 +1,310 @@
+// yell at me later for file naming
+// This file contains stuff relating to the new directional blocking and parry system.
+GLOBAL_LIST_EMPTY(block_parry_data)
+
+/proc/return_block_parry_datum(datum/block_parry_data/type_id_datum)
+ if(istype(type_id_datum))
+ return type_id_datum
+ if(ispath(type_id_datum))
+ . = GLOB.block_parry_data["[type_id_datum]"]
+ if(!.)
+ . = GLOB.block_parry_data["[type_id_datum]"] = new type_id_datum
+ else //text id
+ return GLOB.block_parry_data["[type_id_datum]"]
+
+/proc/set_block_parry_datum(id, datum/block_parry_data/data)
+ if(ispath(id))
+ CRASH("Path-fetching of block parry data is only to grab static data, do not attempt to modify global caches of paths. Use string IDs.")
+ GLOB.block_parry_data["[id]"] = data
+
+/// Carries data like list data that would be a waste of memory if we initialized the list on every /item as we can cache datums easier.
+/datum/block_parry_data
+ /////////// BLOCKING ////////////
+
+ /// NOTE: FOR ATTACK_TYPE_DEFINE, you MUST wrap it in "[DEFINE_HERE]"! The defines are bitflags, and therefore, NUMBERS!
+
+ /// See defines. Point of reference is someone facing north.
+ var/can_block_directions = BLOCK_DIR_NORTH | BLOCK_DIR_NORTHEAST | BLOCK_DIR_NORTHWEST
+ /// Attacks we can block
+ var/can_block_attack_types = ALL
+ /// Our slowdown added while blocking
+ var/block_slowdown = 1
+ /// Clickdelay added to user after block ends
+ var/block_end_click_cd_add = 0
+ /// Disallow attacking during block
+ var/block_lock_attacking = TRUE
+ /// Disallow sprinting during block
+ var/block_lock_sprinting = FALSE
+ /// The priority we get in [mob/do_run_block()] while we're being used to parry.
+ var/block_active_priority = BLOCK_PRIORITY_ACTIVE_BLOCK
+ /// Windup before we have our blocking active.
+ var/block_start_delay = 5
+
+ /// Amount of "free" damage blocking absorbs
+ var/block_damage_absorption = 10
+ /// Override absorption, list("[ATTACK_TYPE_DEFINE]" = absorption), see [block_damage_absorption]
+ var/list/block_damage_absorption_override
+
+ /// Ratio of damage to allow through above absorption and below limit. Multiplied by damage to determine how much to let through. Lower is better.
+ var/block_damage_multiplier = 0.5
+ /// Override damage overrun efficiency, list("[ATTACK_TYPE_DEFINE]" = absorption), see [block_damage_efficiency]
+ var/list/block_damage_multiplier_override
+
+ /// Upper bound of damage block, anything above this will go right through.
+ var/block_damage_limit = 80
+ /// Override upper bound of damage block, list("[ATTACK_TYPE_DEFINE]" = absorption), see [block_damage_limit]
+ var/list/block_damage_limit_override
+
+ /// The blocked variable of on_hit() on projectiles is impacted by this. Higher is better, 0 to 100, percentage.
+ var/block_projectile_mitigation = 50
+
+ /*
+ * NOTE: Overrides for attack types for most the block_stamina variables were removed,
+ * because at the time of writing nothing needed to use it. Add them if you need it,
+ * it should be pretty easy, just copy [active_block_damage_mitigation]
+ * for how to override with list.
+ */
+
+ /// Default damage-to-stamina coefficient, higher is better. This is based on amount of damage BLOCKED, not initial damage, to prevent damage from "double dipping".
+ var/block_stamina_efficiency = 2
+ /// Override damage-to-stamina coefficient, see [block_efficiency], this should be list("[ATTACK_TYPE_DEFINE]" = coefficient_number)
+ var/list/block_stamina_efficiency_override
+ /// Ratio of stamina incurred by blocking that goes to the arm holding the object instead of the chest. Has no effect if this is not held in hand.
+ var/block_stamina_limb_ratio = 0.5
+ /// Ratio of stamina incurred by chest (so after [block_stamina_limb_ratio] runs) that is buffered.
+ var/block_stamina_buffer_ratio = 1
+
+ /// Stamina dealt directly via adjustStaminaLossBuffered() per SECOND of block.
+ var/block_stamina_cost_per_second = 1.5
+
+ /// Bitfield for attack types that we can block while down. This will work in any direction.
+ var/block_resting_attack_types_anydir = ATTACK_TYPE_MELEE | ATTACK_TYPE_UNARMED | ATTACK_TYPE_TACKLE
+ /// Bitfield for attack types that we can block while down but only in our normal directions.
+ var/block_resting_attack_types_directional = ATTACK_TYPE_PROJECTILE | ATTACK_TYPE_THROWN
+ /// Multiplier to stamina damage taken for attacks blocked while downed.
+ var/block_resting_stamina_penalty_multiplier = 1.5
+ /// Override list for multiplier to stamina damage taken for attacks blocked while down. list("[ATTACK_TYPE_DEFINE]" = multiplier_number)
+ var/list/block_resting_stamina_penalty_multiplier_override
+
+ /// Sounds for blocking
+ var/list/block_sounds = list('sound/block_parry/block_metal1.ogg' = 1, 'sound/block_parry/block_metal1.ogg' = 1)
+
+ /////////// PARRYING ////////////
+ /// Prioriry for [mob/do_run_block()] while we're being used to parry.
+ // None - Parry is always highest priority!
+ /// Parry doesn't work if you aren't able to otherwise attack due to clickdelay
+ var/parry_respect_clickdelay = TRUE
+ /// Parry stamina cost
+ var/parry_stamina_cost = 5
+ /// Attack types we can block
+ var/parry_attack_types = ALL
+ /// Parry flags
+ var/parry_flags = PARRY_DEFAULT_HANDLE_FEEDBACK | PARRY_LOCK_ATTACKING
+
+ /// Parry windup duration in deciseconds. 0 to this is windup, afterwards is main stage.
+ var/parry_time_windup = 2
+ /// Parry spindown duration in deciseconds. main stage end to this is the spindown stage, afterwards the parry fully ends.
+ var/parry_time_spindown = 3
+ /// Main parry window in deciseconds. This is between [parry_time_windup] and [parry_time_spindown]
+ var/parry_time_active = 5
+ // Visual overrides
+ /// If set, overrides visual duration of windup
+ var/parry_time_windup_visual_override
+ /// If set, overrides visual duration of active period
+ var/parry_time_active_visual_override
+ /// If set, overrides visual duration of spindown
+ var/parry_time_spindown_visual_override
+ /// Perfect parry window in deciseconds from the start of the main window. 3 with main 5 = perfect on third decisecond of main window.
+ var/parry_time_perfect = 2.5
+ /// Time on both sides of perfect parry that still counts as part of the perfect window.
+ var/parry_time_perfect_leeway = 1
+ /// [parry_time_perfect_leeway] override for attack types, list("[ATTACK_TYPE_DEFINE]" = deciseconds)
+ var/list/parry_time_perfect_leeway_override
+ /// Parry "efficiency" falloff in percent per decisecond once perfect window is over.
+ var/parry_imperfect_falloff_percent = 20
+ /// [parry_imperfect_falloff_percent] override for attack types, list("[ATTACK_TYPE_DEFINE]" = deciseconds)
+ var/list/parry_imperfect_falloff_percent_override
+ /// Efficiency in percent on perfect parry.
+ var/parry_efficiency_perfect = 120
+ /// Parry effect data.
+ var/list/parry_data = list(
+ PARRY_COUNTERATTACK_MELEE_ATTACK_CHAIN = 1
+ )
+ /// Efficiency must be at least this to be considered successful
+ var/parry_efficiency_considered_successful = 0.1
+ /// Efficiency must be at least this to run automatic counterattack
+ var/parry_efficiency_to_counterattack = 0.1
+ /// Maximum attacks to parry successfully or unsuccessfully (but not efficiency < 0) during active period, hitting this immediately ends the sequence.
+ var/parry_max_attacks = INFINITY
+ /// Visual icon state override for parrying
+ var/parry_effect_icon_state = "parry_bm_hold"
+ /// Parrying cooldown, separate of clickdelay. It must be this much deciseconds since their last parry for them to parry with this object.
+ var/parry_cooldown = 0
+ /// Parry start sound
+ var/parry_start_sound = 'sound/block_parry/sfx-parry.ogg'
+ /// Sounds for parrying
+ var/list/parry_sounds = list('sound/block_parry/block_metal1.ogg' = 1, 'sound/block_parry/block_metal1.ogg' = 1)
+ /// Stagger duration post-parry if you fail to parry an attack
+ var/parry_failed_stagger_duration = 3.5 SECONDS
+ /// Clickdelay duration post-parry if you fail to parry an attack
+ var/parry_failed_clickcd_duration = 2 SECONDS
+
+/**
+ * Quirky proc to get average of flags in list that are in attack_type because why is attack_type a flag.
+ */
+/datum/block_parry_data/proc/attack_type_list_scan(list/L, attack_type)
+ var/total = 0
+ var/div = 0
+ for(var/flagtext in L)
+ if(attack_type & text2num(flagtext))
+ total += L[flagtext]
+ div++
+ // if none, return null.
+ if(!div)
+ return
+ return total/div //groan
+
+
+/**
+ * Gets the percentage efficiency of our parry.
+ *
+ * Returns a percentage in normal 0 to 100 scale, but not clamped to just 0 to 100.
+ * This is a proc to allow for overriding.
+ * @params
+ * * attack_type - int, bitfield of the attack type(s)
+ * * parry_time - deciseconds since start of the parry.
+ */
+/datum/block_parry_data/proc/get_parry_efficiency(attack_type, parry_time)
+ var/difference = abs(parry_time - (parry_time_perfect + parry_time_windup))
+ var/leeway = attack_type_list_scan(parry_time_perfect_leeway_override, attack_type)
+ if(isnull(leeway))
+ leeway = parry_time_perfect_leeway
+ difference -= leeway
+ . = parry_efficiency_perfect
+ if(difference <= 0)
+ return
+ var/falloff = attack_type_list_scan(parry_imperfect_falloff_percent_override, attack_type)
+ if(isnull(falloff))
+ falloff = parry_imperfect_falloff_percent
+ . -= falloff * difference
+
+#define RENDER_VARIABLE_SIMPLE(varname, desc) dat += "[#varname] [desc] | [varname] |
"
+#define RENDER_OVERRIDE_LIST(varname, desc) \
+ dat += "[#varname] [desc] | "; \
+ var/list/assembled__##varname = list(); \
+ for(var/textbit in varname){ \
+ assembled__##varname += "[GLOB.attack_type_names[textbit]] = [varname[textbit]]"; \
+ } \
+ dat += "[english_list(assembled__##varname)] | ";
+#define RENDER_ATTACK_TYPES(varname, desc) dat += "
|---|
[#varname] [desc] | "; \
+ var/list/assembled__##varname = list(); \
+ for(var/bit in bitfield2list(varname)){ \
+ var/name = GLOB.attack_type_names[num2text(bit)]; \
+ if(name){ \
+ assembled__##varname += "[name]"; \
+ } \
+ } \
+ dat += "[english_list(assembled__##varname)] | ";
+#define RENDER_BLOCK_DIRECTIONS(varname, desc) \
+ dat += "
|---|
[#varname] [desc] | "; \
+ var/list/assembled__##varname = list(); \
+ for(var/bit in bitfield2list(varname)){ \
+ var/name = GLOB.block_direction_names[num2text(bit)]; \
+ if(name){ \
+ assembled__##varname += "[name]"; \
+ } \
+ } \
+ dat += "[english_list(assembled__##varname)] | ";
+
+/datum/block_parry_data/Topic(href, href_list)
+ . = ..()
+ if(.)
+ return
+ if(href_list["render"])
+ var/datum/browser/B = new(usr, REF(src), href_list["name"], 800, 1000)
+ B.set_content(render_html_readout(href_list["block"], href_list["parry"]))
+ B.open()
+
+/**
+ * Generates a HTML render of this datum for self-documentation
+ * Maybe make this tgui-next someday haha god this is ugly as sin.
+ * Does NOT include the popout or title or anything. Just the variables and explanations..
+ */
+/datum/block_parry_data/proc/render_html_readout(block_data = FALSE, parry_data = FALSE)
+ var/list/dat = list()
+ if(block_data)
+ dat += "Block Stats
| Name/Description | Value |
"
+ RENDER_BLOCK_DIRECTIONS(can_block_directions, "Which directions this can block in.")
+ RENDER_ATTACK_TYPES(can_block_attack_types, "The kinds of attacks this can block.")
+ RENDER_VARIABLE_SIMPLE(block_slowdown, "How much slowdown is applied to the user while blocking. Lower is better.")
+ RENDER_VARIABLE_SIMPLE(block_end_click_cd_add, "How much click delay in deciseconds is applied to the user when blocking ends. Lower is better.")
+ RENDER_VARIABLE_SIMPLE(block_lock_attacking, "Whether or not (1 or 0) the user is locked from atacking and/or item usage while blocking.")
+ RENDER_VARIABLE_SIMPLE(block_active_priority, "The priority of this item in the block sequence. This will probably mean nothing to you unless you are a coder.")
+ RENDER_VARIABLE_SIMPLE(block_start_delay, "The amount of time in deciseconds it takes to start a block with this item. Lower is better.")
+ RENDER_VARIABLE_SIMPLE(block_damage_absorption, "The amount of damage that is absorbed by default. Higher is better.")
+ RENDER_OVERRIDE_LIST(block_damage_absorption_override, "Overrides for the above for each attack type")
+ RENDER_VARIABLE_SIMPLE(block_damage_multiplier, "Damage between absorption and limit is multiplied by this. Lower is better.")
+ RENDER_OVERRIDE_LIST(block_damage_multiplier_override, "Overrides for the above for each attack type")
+ RENDER_VARIABLE_SIMPLE(block_damage_limit, "Damage above this passes right through and is not impacted. Higher is better.")
+ RENDER_OVERRIDE_LIST(block_damage_limit_override, "Overrides for the above for each attack type.")
+ RENDER_VARIABLE_SIMPLE(block_stamina_efficiency, "Coefficient for stamina damage dealt to user by damage blocked. Higher is better.")
+ RENDER_OVERRIDE_LIST(block_stamina_efficiency_override, "Overrides for the above for each attack type.")
+ RENDER_VARIABLE_SIMPLE(block_stamina_limb_ratio, "The ratio of stamina that is applied to the limb holding this object (if applicable) rather than whole body/chest.")
+ RENDER_VARIABLE_SIMPLE(block_stamina_buffer_ratio, "The ratio of stamina incurred by chest/whole body that is buffered rather than direct (buffer = your stamina buffer, direct = direct stamina damage like from a disabler.)")
+ RENDER_VARIABLE_SIMPLE(block_stamina_cost_per_second, "The buffered stamina damage the user incurs per second of block. Lower is better.")
+ RENDER_ATTACK_TYPES(block_resting_attack_types_anydir, "The kinds of attacks you can block while resting/otherwise knocked to the floor from any direction. can_block_attack_types takes precedence.")
+ RENDER_ATTACK_TYPES(block_resting_attack_types_directional, "The kinds of attacks you can block wihle resting/otherwise knocked to the floor that are directional only. can_block_attack_types takes precedence.")
+ RENDER_VARIABLE_SIMPLE(block_resting_stamina_penalty_multiplier, "Multiplier to stamina damage incurred from blocking while downed. Lower is better.")
+ RENDER_OVERRIDE_LIST(block_resting_stamina_penalty_multiplier, "Overrides for the above for each attack type.")
+ dat += "
"
+ if(parry_data)
+ dat += "
Parry Stats
| Name/Description | Value |
"
+ RENDER_VARIABLE_SIMPLE(parry_respect_clickdelay, "Whether or not (1 or 0) you can only parry if your attack cooldown isn't in effect.")
+ RENDER_VARIABLE_SIMPLE(parry_stamina_cost, "Buffered stamina damage incurred by you for parrying with this.")
+ RENDER_ATTACK_TYPES(parry_attack_types, "Attack types you can parry.")
+ // parry_flags
+ dat += ""
+ RENDER_VARIABLE_SIMPLE(parry_time_windup, "Deciseconds of parry windup.")
+ RENDER_VARIABLE_SIMPLE(parry_time_spindown, "Deciseconds of parry spindown.")
+ RENDER_VARIABLE_SIMPLE(parry_time_active, "Deciseconds of active parry window - This is the ONLY time your parry is active.")
+ RENDER_VARIABLE_SIMPLE(parry_time_windup_visual_override, "Visual effect length override")
+ RENDER_VARIABLE_SIMPLE(parry_time_spindown_visual_override, "Visual effect length override")
+ RENDER_VARIABLE_SIMPLE(parry_time_active_visual_override, "Visual effect length override")
+ RENDER_VARIABLE_SIMPLE(parry_time_perfect, "Deciseconds into the active window considered the 'center' of the perfect period.")
+ RENDER_VARIABLE_SIMPLE(parry_time_perfect_leeway, "Leeway on both sides of the perfect period's center still considered perfect.")
+ RENDER_OVERRIDE_LIST(parry_time_perfect_leeway_override, "Override for the above for each attack type")
+ RENDER_VARIABLE_SIMPLE(parry_imperfect_falloff_percent, "Linear falloff in percent per decisecond for attacks parried outside of perfect window.")
+ RENDER_OVERRIDE_LIST(parry_imperfect_falloff_percent_override, "Override for the above for each attack type")
+ RENDER_VARIABLE_SIMPLE(parry_efficiency_perfect, "Efficiency in percentage a parry in the perfect window is considered.")
+ // parry_data
+ dat += ""
+ RENDER_VARIABLE_SIMPLE(parry_efficiency_considered_successful, "Minimum parry efficiency to be considered a successful parry.")
+ RENDER_VARIABLE_SIMPLE(parry_efficiency_to_counterattack, "Minimum parry efficiency to trigger counterattack effects.")
+ RENDER_VARIABLE_SIMPLE(parry_max_attacks, "Max attacks parried per parry cycle.")
+ RENDER_VARIABLE_SIMPLE(parry_effect_icon_state, "Parry effect image name")
+ RENDER_VARIABLE_SIMPLE(parry_cooldown, "Deciseconds it has to be since the last time a parry sequence ended for you before you can parry again.")
+ RENDER_VARIABLE_SIMPLE(parry_failed_stagger_duration, "Deciseconds you are staggered for at the of the parry sequence if you do not successfully parry anything.")
+ RENDER_VARIABLE_SIMPLE(parry_failed_clickcd_duration, "Deciseconds you are put on attack cooldown at the end of the parry sequence if you do not successfully parry anything.")
+ dat += "
"
+ return dat.Join("")
+#undef RENDER_VARIABLE_SIMPLE
+#undef RENDER_OVERRIDE_LIST
+#undef RENDER_ATTACK_TYPES
+#undef RENDER_BLOCK_DIRECTIONS
+
+// MOB PROCS
+
+/**
+ * Called every life tick to handle blocking/parrying effects.
+ */
+/mob/living/proc/handle_block_parry(seconds = 1)
+ if(combat_flags & COMBAT_FLAG_ACTIVE_BLOCKING)
+ var/datum/block_parry_data/data = return_block_parry_datum(active_block_item.block_parry_data)
+ adjustStaminaLossBuffered(data.block_stamina_cost_per_second * seconds)
+
+/mob/living/on_item_dropped(obj/item/I)
+ if(I == active_block_item)
+ stop_active_blocking()
+ if(I == active_parry_item)
+ end_parry_sequence()
+ return ..()
diff --git a/code/modules/mob/living/living_defense.dm b/code/modules/mob/living/living_defense.dm
index 17eb51b154..2ca1b63b14 100644
--- a/code/modules/mob/living/living_defense.dm
+++ b/code/modules/mob/living/living_defense.dm
@@ -66,22 +66,30 @@
CRASH("Invalid rediretion mode [redirection_mode]")
/mob/living/bullet_act(obj/item/projectile/P, def_zone)
+ var/totaldamage = P.damage
+ var/final_percent = 0
if(P.original != src || P.firer != src) //try to block or reflect the bullet, can't do so when shooting oneself
var/list/returnlist = list()
var/returned = mob_run_block(P, P.damage, "the [P.name]", ATTACK_TYPE_PROJECTILE, P.armour_penetration, P.firer, def_zone, returnlist)
+ final_percent = returnlist[BLOCK_RETURN_PROJECTILE_BLOCK_PERCENTAGE]
if(returned & BLOCK_SHOULD_REDIRECT)
handle_projectile_attack_redirection(P, returnlist[BLOCK_RETURN_REDIRECT_METHOD])
if(returned & BLOCK_REDIRECTED)
return BULLET_ACT_FORCE_PIERCE
if(returned & BLOCK_SUCCESS)
- P.on_hit(src, 100, def_zone)
+ P.on_hit(src, final_percent, def_zone)
return BULLET_ACT_BLOCK
+ totaldamage = block_calculate_resultant_damage(totaldamage, returnlist)
var/armor = run_armor_check(def_zone, P.flag, null, null, P.armour_penetration, null)
if(!P.nodamage)
- apply_damage(P.damage, P.damage_type, def_zone, armor)
+ apply_damage(totaldamage, P.damage_type, def_zone, armor)
if(P.dismemberment)
check_projectile_dismemberment(P, def_zone)
- return P.on_hit(src, armor) ? BULLET_ACT_HIT : BULLET_ACT_BLOCK
+ var/missing = 100 - final_percent
+ var/armor_ratio = armor * 0.01
+ if(missing > 0)
+ final_percent += missing * armor_ratio
+ return P.on_hit(src, final_percent, def_zone) ? BULLET_ACT_HIT : BULLET_ACT_BLOCK
/mob/living/proc/check_projectile_dismemberment(obj/item/projectile/P, def_zone)
return 0
@@ -111,10 +119,13 @@
I = AM
throwpower = I.throwforce
var/impacting_zone = ran_zone(BODY_ZONE_CHEST, 65)//Hits a random part of the body, geared towards the chest
- if(mob_run_block(AM, throwpower, "\the [AM.name]", ATTACK_TYPE_THROWN, 0, throwingdatum?.thrower, impacting_zone, null) & BLOCK_SUCCESS)
+ var/list/block_return = list()
+ var/total_damage = I.throwforce
+ if(mob_run_block(AM, throwpower, "\the [AM.name]", ATTACK_TYPE_THROWN, 0, throwingdatum?.thrower, impacting_zone, block_return) & BLOCK_SUCCESS)
hitpush = FALSE
skipcatch = TRUE
blocked = TRUE
+ total_damage = block_calculate_resultant_damage(total_damage, block_return)
else if(I && I.throw_speed >= EMBED_THROWSPEED_THRESHOLD && can_embed(I, src) && prob(I.embedding.embed_chance) && !HAS_TRAIT(src, TRAIT_PIERCEIMMUNE) && (!HAS_TRAIT(src, TRAIT_AUTO_CATCH_ITEM) || incapacitated() || get_active_held_item()))
embed_item(I)
hitpush = FALSE
@@ -143,7 +154,7 @@
visible_message("
[src] has been hit by [I].", \
"
You have been hit by [I].")
var/armor = run_armor_check(impacting_zone, "melee", "Your armor has protected your [parse_zone(impacting_zone)].", "Your armor has softened hit to your [parse_zone(impacting_zone)].",I.armour_penetration)
- apply_damage(I.throwforce, dtype, impacting_zone, armor)
+ apply_damage(total_damage, dtype, impacting_zone, armor)
if(I.thrownby)
log_combat(I.thrownby, src, "threw and hit", I)
else
@@ -313,8 +324,10 @@
var/damage = rand(5, 35)
if(M.is_adult)
damage = rand(20, 40)
- if(mob_run_block(M, damage, "the [M.name]", ATTACK_TYPE_MELEE, null, M, check_zone(M.zone_selected), null) & BLOCK_SUCCESS)
+ var/list/block_return = list()
+ if(mob_run_block(M, damage, "the [M.name]", ATTACK_TYPE_MELEE, null, M, check_zone(M.zone_selected), block_return) & BLOCK_SUCCESS)
return FALSE
+ damage = block_calculate_resultant_damage(damage, block_return)
if (stat != DEAD)
log_combat(M, src, "attacked")
@@ -330,13 +343,16 @@
M.visible_message("
\The [M] [M.friendly_verb_continuous] [src]!",
"
You [M.friendly_verb_simple] [src]!", target = src,
target_message = "
\The [M] [M.friendly_verb_continuous] you!")
- return FALSE
+ return 0
else
if(HAS_TRAIT(M, TRAIT_PACIFISM))
to_chat(M, "
You don't want to hurt anyone!")
return FALSE
- if(mob_run_block(M, rand(M.melee_damage_lower, M.melee_damage_upper), "the [M.name]", ATTACK_TYPE_MELEE, M.armour_penetration, M, check_zone(M.zone_selected), null) & BLOCK_SUCCESS)
- return FALSE
+ var/damage = rand(M.melee_damage_lower, M.melee_damage_upper)
+ var/list/return_list = list()
+ if(mob_run_block(M, damage, "the [M.name]", ATTACK_TYPE_MELEE, M.armour_penetration, M, check_zone(M.zone_selected), return_list) & BLOCK_SUCCESS)
+ return 0
+ damage = block_calculate_resultant_damage(damage, return_list)
if(M.attack_sound)
playsound(loc, M.attack_sound, 50, 1, 1)
M.do_attack_animation(src)
@@ -344,7 +360,7 @@
"
\The [M] [M.attack_verb_continuous] you!", null, COMBAT_MESSAGE_RANGE, null,
M, "
You [M.attack_verb_simple] [src]!")
log_combat(M, src, "attacked")
- return TRUE
+ return damage
/mob/living/attack_paw(mob/living/carbon/monkey/M)
if (M.a_intent == INTENT_HARM)
diff --git a/code/modules/mob/living/living_defines.dm b/code/modules/mob/living/living_defines.dm
index da24f190e8..b037221e2c 100644
--- a/code/modules/mob/living/living_defines.dm
+++ b/code/modules/mob/living/living_defines.dm
@@ -29,6 +29,26 @@
var/mobility_flags = MOBILITY_FLAGS_DEFAULT
+ // Combat - Blocking/Parrying system
+ /// Our block_parry_data for unarmed blocks/parries. Currently only used for parrying, as unarmed block isn't implemented yet. YOU MUST RUN [get_block_parry_data(this)] INSTEAD OF DIRECTLY ACCESSING!
+ var/datum/block_parry_data/block_parry_data = /datum/block_parry_data // defaults to *something* because [combat_flags] dictates whether or not we can unarmed block/parry.
+ // Blocking
+ /// The item the user is actively blocking with if any.
+ var/obj/item/active_block_item
+ // Parrying
+ /// Whether or not the user is in the middle of an active parry. Set to [UNARMED_PARRY], [ITEM_PARRY], [MARTIAL_PARRY] if parrying.
+ var/parrying = FALSE
+ /// The itme the user is currently parrying with, if any.
+ var/obj/item/active_parry_item
+ /// world.time of parry action start
+ var/parry_start_time = 0
+ /// Current parry effect.
+ var/obj/effect/abstract/parry/parry_visual_effect
+ /// world.time of last parry end
+ var/parry_end_time_last = 0
+ /// Successful parries within the current parry cycle. It's a list of efficiency percentages.
+ var/list/successful_parries
+
var/confused = 0 //Makes the mob move in random directions.
var/hallucination = 0 //Directly affects how long a mob will hallucinate for
diff --git a/code/modules/mob/living/living_movement.dm b/code/modules/mob/living/living_movement.dm
index 4b90191dcc..71bcef9aca 100644
--- a/code/modules/mob/living/living_movement.dm
+++ b/code/modules/mob/living/living_movement.dm
@@ -3,10 +3,21 @@
update_turf_movespeed(loc)
//Hide typing indicator if we move.
clear_typing_indicator()
- if(is_shifted)
- is_shifted = FALSE
- pixel_x = get_standard_pixel_x_offset(lying)
- pixel_y = get_standard_pixel_y_offset(lying)
+ update_pixel_shifting(TRUE)
+
+/mob/living/setDir(newdir, ismousemovement)
+ . = ..()
+ if(ismousemovement)
+ update_pixel_shifting()
+
+/mob/living/proc/update_pixel_shifting(moved = FALSE)
+ if(combat_flags & COMBAT_FLAG_ACTIVE_BLOCKING)
+ animate(src, pixel_x = get_standard_pixel_x_offset(), pixel_y = get_standard_pixel_y_offset(), time = 2.5, flags = ANIMATION_END_NOW)
+ else if(moved)
+ if(is_shifted)
+ is_shifted = FALSE
+ pixel_x = get_standard_pixel_x_offset(lying)
+ pixel_y = get_standard_pixel_y_offset(lying)
/mob/living/CanPass(atom/movable/mover, turf/target)
if((mover.pass_flags & PASSMOB))
diff --git a/code/modules/mob/living/silicon/ai/ai_defense.dm b/code/modules/mob/living/silicon/ai/ai_defense.dm
index 2bcb3c9b5a..9cefa7a12f 100644
--- a/code/modules/mob/living/silicon/ai/ai_defense.dm
+++ b/code/modules/mob/living/silicon/ai/ai_defense.dm
@@ -1,4 +1,4 @@
-/mob/living/silicon/ai/attacked_by(obj/item/I, mob/living/user, def_zone)
+/mob/living/silicon/ai/attacked_by(obj/item/I, mob/living/user, def_zone, attackchain_flags = NONE, damage_multiplier = 1)
. = ..()
if(!.)
return FALSE
diff --git a/code/modules/mob/living/silicon/robot/robot_modules.dm b/code/modules/mob/living/silicon/robot/robot_modules.dm
index 59dfcd3003..bf66556399 100644
--- a/code/modules/mob/living/silicon/robot/robot_modules.dm
+++ b/code/modules/mob/living/silicon/robot/robot_modules.dm
@@ -359,7 +359,8 @@
"Sleek" = image(icon = 'modular_citadel/icons/mob/robots.dmi', icon_state = "sleekmed"),
"Marina" = image(icon = 'modular_citadel/icons/mob/robots.dmi', icon_state = "marinamed"),
"Eyebot" = image(icon = 'modular_citadel/icons/mob/robots.dmi', icon_state = "eyebotmed"),
- "Heavy" = image(icon = 'modular_citadel/icons/mob/robots.dmi', icon_state = "heavymed")
+ "Heavy" = image(icon = 'modular_citadel/icons/mob/robots.dmi', icon_state = "heavymed"),
+ "Zoomba" = image(icon = 'icons/mob/robots.dmi', icon_state = "zoomba_med")
)
var/list/L = list("Medihound" = "medihound", "Medihound Dark" = "medihounddark", "Vale" = "valemed")
for(var/a in L)
@@ -375,6 +376,8 @@
switch(med_borg_icon)
if("Default")
cyborg_base_icon = "medical"
+ if("Zoomba")
+ cyborg_base_icon = "zoomba_med"
if("Droid")
cyborg_base_icon = "medical"
cyborg_icon_override = 'modular_citadel/icons/mob/robots.dmi'
@@ -476,7 +479,8 @@
"Can" = image(icon = 'modular_citadel/icons/mob/robots.dmi', icon_state = "caneng"),
"Marina" = image(icon = 'modular_citadel/icons/mob/robots.dmi', icon_state = "marinaeng"),
"Spider" = image(icon = 'modular_citadel/icons/mob/robots.dmi', icon_state = "spidereng"),
- "Heavy" = image(icon = 'modular_citadel/icons/mob/robots.dmi', icon_state = "heavyeng")
+ "Heavy" = image(icon = 'modular_citadel/icons/mob/robots.dmi', icon_state = "heavyeng"),
+ "Zoomba" = image(icon = 'icons/mob/robots.dmi', icon_state = "zoomba_engi")
)
var/list/L = list("Pup Dozer" = "pupdozer", "Vale" = "valeeng")
for(var/a in L)
@@ -492,6 +496,8 @@
switch(engi_borg_icon)
if("Default")
cyborg_base_icon = "engineer"
+ if("Zoomba")
+ cyborg_base_icon = "zoomba_engi"
if("Default - Treads")
cyborg_base_icon = "engi-tread"
special_light_key = "engineer"
@@ -572,7 +578,8 @@
"Can" = image(icon = 'modular_citadel/icons/mob/robots.dmi', icon_state = "cansec"),
"Marina" = image(icon = 'modular_citadel/icons/mob/robots.dmi', icon_state = "marinasec"),
"Spider" = image(icon = 'modular_citadel/icons/mob/robots.dmi', icon_state = "spidersec"),
- "Heavy" = image(icon = 'modular_citadel/icons/mob/robots.dmi', icon_state = "heavysec")
+ "Heavy" = image(icon = 'modular_citadel/icons/mob/robots.dmi', icon_state = "heavysec"),
+ "Zoomba" = image(icon = 'icons/mob/robots.dmi', icon_state = "zoomba_sec")
)
var/list/L = list("K9" = "k9", "Vale" = "valesec", "K9 Dark" = "k9dark")
for(var/a in L)
@@ -588,6 +595,8 @@
switch(sec_borg_icon)
if("Default")
cyborg_base_icon = "sec"
+ if("Zoomba")
+ cyborg_base_icon = "zoomba_sec"
if("Default - Treads")
cyborg_base_icon = "sec-tread"
special_light_key = "sec"
@@ -827,6 +836,7 @@
"(Janitor) Sleek" = image(icon = 'modular_citadel/icons/mob/robots.dmi', icon_state = "sleekjan"),
"(Janitor) Can" = image(icon = 'modular_citadel/icons/mob/robots.dmi', icon_state = "canjan"),
"(Janitor) Heavy" = image(icon = 'modular_citadel/icons/mob/robots.dmi', icon_state = "heavyjan"),
+ "Zoomba" = image(icon = 'icons/mob/robots.dmi', icon_state = "zoomba_jani")
)
var/list/L = list("(Service) DarkK9" = "k50", "(Service) Vale" = "valeserv", "(Service) ValeDark" = "valeservdark",
"(Janitor) Scrubpuppy" = "scrubpup")
@@ -841,6 +851,8 @@
service_icons = sortList(service_icons)
var/service_robot_icon = show_radial_menu(R, R , service_icons, custom_check = CALLBACK(src, .proc/check_menu, R), radius = 42, require_near = TRUE)
switch(service_robot_icon)
+ if("Zoomba")
+ cyborg_base_icon = "zoomba_jani"
if("(Service) Waitress")
cyborg_base_icon = "service_f"
special_light_key = "service"
@@ -944,6 +956,7 @@
"Marina" = image(icon = 'modular_citadel/icons/mob/robots.dmi', icon_state = "marinamin"),
"Can" = image(icon = 'modular_citadel/icons/mob/robots.dmi', icon_state = "canmin"),
"Heavy" = image(icon = 'modular_citadel/icons/mob/robots.dmi', icon_state = "heavymin"),
+ "Zoomba" = image(icon = 'icons/mob/robots.dmi', icon_state = "zoomba_miner")
)
var/list/L = list("Blade" = "blade", "Vale" = "valemine")
for(var/a in L)
@@ -987,6 +1000,8 @@
cyborg_icon_override = 'modular_citadel/icons/mob/widerobot.dmi'
sleeper_overlay = "valeminesleeper"
dogborg = TRUE
+ if("Zoomba")
+ cyborg_base_icon = "zoomba_miner"
else
return FALSE
return ..()
diff --git a/code/modules/mob/living/silicon/silicon.dm b/code/modules/mob/living/silicon/silicon.dm
index 173db6f69b..7a9610fb53 100644
--- a/code/modules/mob/living/silicon/silicon.dm
+++ b/code/modules/mob/living/silicon/silicon.dm
@@ -396,6 +396,12 @@
return aicamera.selectpicture(user)
/mob/living/silicon/proc/ai_roster()
+ if(!client)
+ return
+ if(world.time < client.crew_manifest_delay)
+ return
+ client.crew_manifest_delay = world.time + (1 SECONDS)
+
var/dat = "
Crew RosterCrew Roster:"
dat += GLOB.data_core.get_manifest()
diff --git a/code/modules/mob/living/silicon/silicon_defense.dm b/code/modules/mob/living/silicon/silicon_defense.dm
index cd50ffbae6..0850f0f886 100644
--- a/code/modules/mob/living/silicon/silicon_defense.dm
+++ b/code/modules/mob/living/silicon/silicon_defense.dm
@@ -33,7 +33,7 @@
/mob/living/silicon/attack_animal(mob/living/simple_animal/M)
. = ..()
if(.)
- var/damage = rand(M.melee_damage_lower, M.melee_damage_upper)
+ var/damage = .
if(prob(damage))
for(var/mob/living/N in buckled_mobs)
N.DefaultCombatKnockdown(20)
@@ -120,6 +120,7 @@
flash_act(affect_silicon = 1)
/mob/living/silicon/bullet_act(obj/item/projectile/P, def_zone)
+ var/totaldamage = P.damage
if(P.original != src || P.firer != src) //try to block or reflect the bullet, can't do so when shooting oneself
var/list/returnlist = list()
var/returned = mob_run_block(P, P.damage, "the [P.name]", ATTACK_TYPE_PROJECTILE, P.armour_penetration, P.firer, def_zone, returnlist)
@@ -128,22 +129,18 @@
if(returned & BLOCK_REDIRECTED)
return BULLET_ACT_FORCE_PIERCE
if(returned & BLOCK_SUCCESS)
- P.on_hit(src, 100, def_zone)
+ P.on_hit(src, returnlist[BLOCK_RETURN_PROJECTILE_BLOCK_PERCENTAGE], def_zone)
return BULLET_ACT_BLOCK
+ totaldamage = block_calculate_resultant_damage(totaldamage, returnlist)
if((P.damage_type == BRUTE || P.damage_type == BURN))
- adjustBruteLoss(P.damage)
- if(prob(P.damage*1.5))
- for(var/mob/living/M in buckled_mobs)
- M.visible_message("
[M] is knocked off of [src]!",
- "
You are knocked off of [src]!")
- unbuckle_mob(M)
- M.DefaultCombatKnockdown(40)
- if(P.stun || P.knockdown)
+ adjustBruteLoss(totaldamage)
+ if((P.damage >= 10) || P.stun || P.knockdown || (P.stamina >= 20))
for(var/mob/living/M in buckled_mobs)
- unbuckle_mob(M)
M.visible_message("
[M] is knocked off of [src] by the [P]!",
"
You are knocked off of [src] by the [P]!")
- P.on_hit(src)
+ unbuckle_mob(M)
+ M.DefaultCombatKnockdown(40)
+ P.on_hit(src, 0, def_zone)
return BULLET_ACT_HIT
/mob/living/silicon/flash_act(intensity = 1, override_blindness_check = 0, affect_silicon = 0, visual = 0, type = /obj/screen/fullscreen/flash/static)
diff --git a/code/modules/mob/living/simple_animal/animal_defense.dm b/code/modules/mob/living/simple_animal/animal_defense.dm
index 1e56e91ae1..278bb37d0d 100644
--- a/code/modules/mob/living/simple_animal/animal_defense.dm
+++ b/code/modules/mob/living/simple_animal/animal_defense.dm
@@ -94,7 +94,7 @@
/mob/living/simple_animal/attack_animal(mob/living/simple_animal/M)
. = ..()
if(.)
- var/damage = rand(M.melee_damage_lower, M.melee_damage_upper)
+ var/damage = .
return attack_threshold_check(damage, M.melee_damage_type)
/mob/living/simple_animal/attack_slime(mob/living/simple_animal/slime/M)
diff --git a/code/modules/mob/living/simple_animal/bot/bot.dm b/code/modules/mob/living/simple_animal/bot/bot.dm
index 97f3dad3f0..39eccf9ad4 100644
--- a/code/modules/mob/living/simple_animal/bot/bot.dm
+++ b/code/modules/mob/living/simple_animal/bot/bot.dm
@@ -98,6 +98,10 @@
hud_possible = list(DIAG_STAT_HUD, DIAG_BOT_HUD, DIAG_HUD, DIAG_PATH_HUD = HUD_LIST_LIST) //Diagnostic HUD views
+ var/commissioned = FALSE // Will other (noncommissioned) bots salute this bot?
+ var/can_salute = TRUE
+ var/salute_delay = 60 SECONDS
+
/mob/living/simple_animal/bot/proc/get_mode()
if(client) //Player bots do not have modes, thus the override. Also an easy way for PDA users/AI to know when a bot is a player.
if(paicard)
@@ -251,6 +255,14 @@
if(!on || client)
return
+ if(!commissioned && can_salute)
+ for(var/mob/living/simple_animal/bot/B in get_hearers_in_view(5, get_turf(src)))
+ if(B.commissioned)
+ visible_message("
[src] performs an elaborate salute for [B]!")
+ can_salute = FALSE
+ addtimer(VARSET_CALLBACK(src, can_salute, TRUE), salute_delay)
+ break
+
switch(mode) //High-priority overrides are processed first. Bots can do nothing else while under direct command.
if(BOT_RESPONDING) //Called by the AI.
call_mode()
diff --git a/code/modules/mob/living/simple_animal/bot/cleanbot.dm b/code/modules/mob/living/simple_animal/bot/cleanbot.dm
index 73099d8d9f..f6aad5c03f 100644
--- a/code/modules/mob/living/simple_animal/bot/cleanbot.dm
+++ b/code/modules/mob/living/simple_animal/bot/cleanbot.dm
@@ -14,7 +14,7 @@
model = "Cleanbot"
bot_core_type = /obj/machinery/bot_core/cleanbot
window_id = "autoclean"
- window_name = "Automatic Station Cleaner v1.2"
+ window_name = "Automatic Station Cleaner v1.3"
pass_flags = PASSMOB
path_image_color = "#993299"
weather_immunities = list("lava","ash")
@@ -36,8 +36,62 @@
var/next_dest
var/next_dest_loc
+ var/obj/item/weapon
+ var/weapon_orig_force = 0
+ var/chosen_name
+
+ var/list/stolen_valor
+
+ var/static/list/officers = list("Captain", "Head of Personnel", "Head of Security")
+ var/static/list/command = list("Captain" = "Cpt.","Head of Personnel" = "Lt.")
+ var/static/list/security = list("Head of Security" = "Maj.", "Warden" = "Sgt.", "Detective" = "Det.", "Security Officer" = "Officer")
+ var/static/list/engineering = list("Chief Engineer" = "Chief Engineer", "Station Engineer" = "Engineer", "Atmospherics Technician" = "Technician")
+ var/static/list/medical = list("Chief Medical Officer" = "C.M.O.", "Medical Doctor" = "M.D.", "Chemist" = "Pharm.D.")
+ var/static/list/research = list("Research Director" = "Ph.D.", "Roboticist" = "M.S.", "Scientist" = "B.S.")
+ var/static/list/legal = list("Lawyer" = "Esq.")
+
+ var/list/prefixes
+ var/list/suffixes
+
+/mob/living/simple_animal/bot/cleanbot/proc/deputize(obj/item/W, mob/user)
+ if(in_range(src, user))
+ to_chat(user, "
You attach \the [W] to \the [src].")
+ user.transferItemToLoc(W, src)
+ weapon = W
+ weapon_orig_force = weapon.force
+ if(!emagged)
+ weapon.force = weapon.force / 2
+ add_overlay(image(icon=weapon.lefthand_file,icon_state=weapon.item_state))
+
+/mob/living/simple_animal/bot/cleanbot/proc/update_titles()
+ var/working_title = ""
+
+ for(var/pref in prefixes)
+ for(var/title in pref)
+ if(title in stolen_valor)
+ working_title += pref[title] + " "
+ if(title in officers)
+ commissioned = TRUE
+ break
+
+ working_title += chosen_name
+
+ for(var/suf in suffixes)
+ for(var/title in suf)
+ if(title in stolen_valor)
+ working_title += " " + suf[title]
+ break
+
+ name = working_title
+
+/mob/living/simple_animal/bot/cleanbot/examine(mob/user)
+ . = ..()
+ if(weapon)
+ . += "
Is that \a [weapon] taped to it...?"
+
/mob/living/simple_animal/bot/cleanbot/Initialize()
. = ..()
+ chosen_name = name
get_targets()
icon_state = "cleanbot[on]"
@@ -45,6 +99,18 @@
access_card.access += J.get_access()
prev_access = access_card.access
+ stolen_valor = list()
+
+ prefixes = list(command, security, engineering)
+ suffixes = list(research, medical, legal)
+
+/mob/living/simple_animal/bot/cleanbot/Destroy()
+ if(weapon)
+ var/atom/Tsec = drop_location()
+ weapon.force = weapon_orig_force
+ drop_part(weapon, Tsec)
+ return ..()
+
/mob/living/simple_animal/bot/cleanbot/turn_on()
..()
icon_state = "cleanbot[on]"
@@ -57,6 +123,8 @@
/mob/living/simple_animal/bot/cleanbot/bot_reset()
..()
+ if(weapon && (emagged == 2))
+ weapon.force = weapon_orig_force
ignore_list = list() //Allows the bot to clean targets it previously ignored due to being unreachable.
target = null
oldloc = null
@@ -66,6 +134,22 @@
text_dehack = "[name]'s software has been reset!"
text_dehack_fail = "[name] does not seem to respond to your repair code!"
+/mob/living/simple_animal/bot/cleanbot/Crossed(atom/movable/AM)
+ . = ..()
+
+ zone_selected = pick(BODY_ZONE_L_LEG, BODY_ZONE_R_LEG)
+ if(weapon && has_gravity() && ismob(AM))
+ var/mob/living/carbon/C = AM
+ if(!istype(C))
+ return
+
+ if(!(C.job in stolen_valor))
+ stolen_valor += C.job
+ update_titles()
+
+ weapon.attack(C, src)
+ C.Knockdown(20)
+
/mob/living/simple_animal/bot/cleanbot/attackby(obj/item/W, mob/user, params)
if(istype(W, /obj/item/card/id)||istype(W, /obj/item/pda))
if(bot_core.allowed(user) && !open && !emagged)
@@ -79,6 +163,11 @@
else
to_chat(user, "
The [src] doesn't seem to respect your authority.")
+ else if(istype(W, /obj/item/kitchen/knife) && user.a_intent != INTENT_HARM)
+ to_chat(user, "
You start attaching \the [W] to \the [src]...")
+ if(do_after(user, 25, target = src))
+ deputize(W, user)
+
else if(istype(W, /obj/item/mop/advanced))
if(bot_core.allowed(user) && open && !CHECK_BITFIELD(upgrades,UPGRADE_CLEANER_ADVANCED_MOP))
to_chat(user, "
You replace \the [src] old mop with a new better one!")
@@ -87,10 +176,10 @@
window_name = "Automatic Station Cleaner v2.1 BETA" //New!
qdel(W)
if(!open)
- to_chat(user, "
The [src] access pannle is not open!")
+ to_chat(user, "
The [src] access panel is not open!")
return
if(!bot_core.allowed(user))
- to_chat(user, "
The [src] access pannel locked off to you!")
+ to_chat(user, "
The [src] access panel locked off to you!")
return
else
to_chat(user, "
The [src] already has this mop!")
@@ -116,6 +205,8 @@
/mob/living/simple_animal/bot/cleanbot/emag_act(mob/user)
. = ..()
if(emagged == 2)
+ if(weapon)
+ weapon.force = weapon_orig_force
if(user)
to_chat(user, "
[src] buzzes and beeps.")
diff --git a/code/modules/mob/living/simple_animal/friendly/cockroach.dm b/code/modules/mob/living/simple_animal/friendly/cockroach.dm
index 9a34f2c176..384fa8146f 100644
--- a/code/modules/mob/living/simple_animal/friendly/cockroach.dm
+++ b/code/modules/mob/living/simple_animal/friendly/cockroach.dm
@@ -23,6 +23,7 @@
speak_emote = list("chitters")
density = FALSE
ventcrawler = VENTCRAWLER_ALWAYS
+ mob_size = MOB_SIZE_TINY
gold_core_spawnable = FRIENDLY_SPAWN
verb_say = "chitters"
verb_ask = "chitters inquisitively"
diff --git a/code/modules/mob/living/simple_animal/friendly/crab.dm b/code/modules/mob/living/simple_animal/friendly/crab.dm
index d86362c974..e00e0648b5 100644
--- a/code/modules/mob/living/simple_animal/friendly/crab.dm
+++ b/code/modules/mob/living/simple_animal/friendly/crab.dm
@@ -22,6 +22,7 @@
friendly_verb_continuous = "pinches"
friendly_verb_simple = "pinch"
ventcrawler = VENTCRAWLER_ALWAYS
+ mob_size = MOB_SIZE_TINY
var/obj/item/inventory_head
var/obj/item/inventory_mask
gold_core_spawnable = FRIENDLY_SPAWN
diff --git a/code/modules/mob/living/simple_animal/friendly/mouse.dm b/code/modules/mob/living/simple_animal/friendly/mouse.dm
index 50d1e44d2a..51c903ee16 100644
--- a/code/modules/mob/living/simple_animal/friendly/mouse.dm
+++ b/code/modules/mob/living/simple_animal/friendly/mouse.dm
@@ -29,6 +29,7 @@
var/body_color //brown, gray and white, leave blank for random
gold_core_spawnable = FRIENDLY_SPAWN
var/chew_probability = 1
+ faction = list("rat")
/mob/living/simple_animal/mouse/Initialize()
. = ..()
@@ -59,11 +60,15 @@
else
..(gibbed)
+
/mob/living/simple_animal/mouse/Crossed(AM as mob|obj)
if( ishuman(AM) )
if(!stat)
var/mob/M = AM
to_chat(M, "
[icon2html(src, M)] Squeak!")
+ if(istype(AM, /obj/item/reagent_containers/food/snacks/royalcheese))
+ evolve()
+ qdel(AM)
..()
/mob/living/simple_animal/mouse/handle_automated_action()
@@ -84,6 +89,40 @@
C.deconstruct()
visible_message("
[src] chews through the [C].")
+ for(var/obj/item/reagent_containers/food/snacks/cheesewedge/cheese in range(1, src))
+ if(prob(10))
+ be_fruitful()
+ qdel(cheese)
+ return
+ for(var/obj/item/reagent_containers/food/snacks/royalcheese/bigcheese in range(1, src))
+ qdel(bigcheese)
+ evolve()
+ return
+
+/**
+ *Checks the mouse cap, if it's above the cap, doesn't spawn a mouse. If below, spawns a mouse and adds it to cheeserats.
+ */
+
+/mob/living/simple_animal/mouse/proc/be_fruitful()
+ var/cap = CONFIG_GET(number/ratcap)
+ if(LAZYLEN(SSmobs.cheeserats) >= cap)
+ visible_message("
[src] carefully eats the cheese, hiding it from the [cap] mice on the station!")
+ return
+ var/mob/living/newmouse = new /mob/living/simple_animal/mouse(loc)
+ SSmobs.cheeserats += newmouse
+ visible_message("
[src] nibbles through the cheese, attracting another mouse!")
+
+/**
+ *Spawns a new regal rat, says some good jazz, and if sentient, transfers the relivant mind.
+ */
+/mob/living/simple_animal/mouse/proc/evolve()
+ var/mob/living/simple_animal/hostile/regalrat = new /mob/living/simple_animal/hostile/regalrat(loc)
+ visible_message("
[src] devours the cheese! He morphs into something... greater!")
+ regalrat.say("RISE, MY SUBJECTS! SCREEEEEEE!")
+ if(mind)
+ mind.transfer_to(regalrat)
+ qdel(src)
+
/*
* Mouse types
*/
@@ -100,6 +139,10 @@
body_color = "brown"
icon_state = "mouse_brown"
+/mob/living/simple_animal/mouse/Destroy()
+ SSmobs.cheeserats -= src
+ return ..()
+
GLOBAL_VAR(tom_existed)
//TOM IS ALIVE! SQUEEEEEEEE~K :)
diff --git a/code/modules/mob/living/simple_animal/friendly/plushie.dm b/code/modules/mob/living/simple_animal/friendly/plushie.dm
new file mode 100644
index 0000000000..d992c704f5
--- /dev/null
+++ b/code/modules/mob/living/simple_animal/friendly/plushie.dm
@@ -0,0 +1,79 @@
+//simplemob plushie that can be controlled by players
+/mob/living/simple_animal/pet/plushie
+ name = "Plushie"
+ desc = "A living plushie!"
+ icon = 'icons/obj/plushes.dmi'
+ icon_state = "debug"
+ icon_living = "debug"
+ icon_dead = "debug"
+ speak_emote = list("squeaks")
+ maxHealth = 50
+ health = 50
+ density = FALSE
+ pass_flags = PASSTABLE | PASSGRILLE | PASSMOB
+ mob_size = MOB_SIZE_TINY
+ mob_biotypes = MOB_ORGANIC
+ verb_say = "squeaks"
+ verb_ask = "squeaks inquisitively"
+ verb_exclaim = "squeaks intensely"
+ verb_yell = "squeaks intensely"
+ attack_sound = 'sound/items/toysqueak1.ogg'
+ attacked_sound = 'sound/items/toysqueak1.ogg'
+ melee_damage_type = STAMINA
+ melee_damage_lower = 0
+ melee_damage_upper = 1
+ attack_verb_continuous = "squeaks"
+ attack_verb_simple = "squeak"
+ deathmessage = "lets out a faint squeak as the glint in its eyes disappears"
+ footstep_type = FOOTSTEP_MOB_BAREFOOT
+ atmos_requirements = list("min_oxy" = 0, "max_oxy" = 0, "min_tox" = 0, "max_tox" = 0, "min_co2" = 0, "max_co2" = 0, "min_n2" = 0, "max_n2" = 0)
+ minbodytemp = 0
+ pressure_resistance = 200
+
+/mob/living/simple_animal/pet/plushie/ComponentInitialize()
+ . = ..()
+ AddElement(/datum/element/mob_holder, "plushie")
+
+//shell that lets people turn into the plush or poll for ghosts
+/obj/item/toy/plushie_shell
+ name = "Plushie Shell"
+ desc = "A plushie. Its eyes seem to be staring right back at you. Something isn't quite right."
+ icon = 'icons/obj/plushes.dmi'
+ icon_state = "debug"
+ var/obj/item/toy/plush/stored_plush = null
+
+//attacking yourself transfers your mind into the plush!
+/obj/item/toy/plushie_shell/attack_self(mob/user)
+ if(user.mind)
+ var/safety = alert(user, "The plushie is staring back at you intensely, it seems cursed! (Permanently become a plushie)", "Hugging this is a bad idea.", "Hug it!", "Cancel")
+ if(safety == "Cancel" || !in_range(src, user))
+ return
+ to_chat(user, "
You hug the strange plushie. You fool.")
+
+ //setup the mob
+ var/mob/living/simple_animal/pet/plushie/new_plushie = new /mob/living/simple_animal/pet/plushie/(user.loc)
+ new_plushie.icon = src.icon
+ new_plushie.icon_living = src.icon_state
+ new_plushie.icon_dead = src.icon_state
+ new_plushie.icon_state = src.icon_state
+ new_plushie.name = src.name
+
+ //make the mob sentient
+ user.mind.transfer_to(new_plushie)
+
+ //add sounds to mob
+ new_plushie.AddComponent(/datum/component/squeak, stored_plush.squeak_override)
+ if(length(stored_plush.squeak_override) > 0)
+ new_plushie.attack_sound = stored_plush.squeak_override[1]
+ new_plushie.attacked_sound = stored_plush.squeak_override[1]
+
+ //take care of the user's old body and the old shell
+ user.dust(drop_items = TRUE)
+ qdel(src)
+
+//low regen over time
+/mob/living/simple_animal/pet/plushie/Life()
+ if(stat)
+ return
+ if(health < maxHealth)
+ heal_overall_damage(5) //Decent life regen, they're not able to hurt anyone so this shouldn't be an issue (butterbear for reference has 10 regen)
diff --git a/code/modules/mob/living/simple_animal/friendly/sloth.dm b/code/modules/mob/living/simple_animal/friendly/sloth.dm
index df416047e2..bb93f95ee4 100644
--- a/code/modules/mob/living/simple_animal/friendly/sloth.dm
+++ b/code/modules/mob/living/simple_animal/friendly/sloth.dm
@@ -17,6 +17,7 @@
response_disarm_simple = "gently push aside"
response_harm_continuous = "kicks"
response_harm_simple = "kick"
+ mob_size = MOB_SIZE_SMALL
mob_biotypes = MOB_ORGANIC|MOB_BEAST
gold_core_spawnable = FRIENDLY_SPAWN
melee_damage_lower = 18
diff --git a/code/modules/mob/living/simple_animal/hostile/hostile.dm b/code/modules/mob/living/simple_animal/hostile/hostile.dm
index e41fa7c896..e8991df358 100644
--- a/code/modules/mob/living/simple_animal/hostile/hostile.dm
+++ b/code/modules/mob/living/simple_animal/hostile/hostile.dm
@@ -117,7 +117,7 @@
Move(get_step(src,chosen_dir))
face_atom(target) //Looks better if they keep looking at you when dodging
-/mob/living/simple_animal/hostile/attacked_by(obj/item/I, mob/living/user)
+/mob/living/simple_animal/hostile/attacked_by(obj/item/I, mob/living/user, attackchain_flags = NONE, damage_multiplier = 1)
if(stat == CONSCIOUS && !target && AIStatus != AI_OFF && !client && user)
FindTarget(list(user), 1)
return ..()
diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs/curse_blob.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs/curse_blob.dm
index 9d395ca5ff..c4f78b6e26 100644
--- a/code/modules/mob/living/simple_animal/hostile/mining_mobs/curse_blob.dm
+++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs/curse_blob.dm
@@ -103,7 +103,7 @@ IGNORE_PROC_IF_NOT_TARGET(attack_slime)
return BULLET_ACT_FORCE_PIERCE
return ..()
-/mob/living/simple_animal/hostile/asteroid/curseblob/attacked_by(obj/item/I, mob/living/L)
+/mob/living/simple_animal/hostile/asteroid/curseblob/attacked_by(obj/item/I, mob/living/L, attackchain_flags = NONE, damage_multiplier = 1)
if(L != set_target)
L.changeNext_move(I.click_delay) //pre_attacked_by not called
return
diff --git a/code/modules/mob/living/simple_animal/hostile/regalrat.dm b/code/modules/mob/living/simple_animal/hostile/regalrat.dm
new file mode 100644
index 0000000000..e21514b37e
--- /dev/null
+++ b/code/modules/mob/living/simple_animal/hostile/regalrat.dm
@@ -0,0 +1,239 @@
+/mob/living/simple_animal/hostile/regalrat
+ name = "regal rat"
+ desc = "An evolved rat, created through some strange science. It leads nearby rats with deadly efficiency to protect its kingdom. Not technically a king."
+ icon_state = "regalrat"
+ icon_living = "regalrat"
+ icon_dead = "regalrat_dead"
+ gender = NEUTER
+ speak_chance = 0
+ turns_per_move = 5
+ maxHealth = 70
+ health = 70
+ see_in_dark = 5
+ obj_damage = 10
+ butcher_results = list(/obj/item/clothing/head/crown = 1,)
+ response_help_continuous = "glares at"
+ response_help_simple = "glare at"
+ response_disarm_continuous = "skoffs at"
+ response_disarm_simple = "skoff at"
+ response_harm_continuous = "slashes"
+ response_harm_simple = "slash"
+ melee_damage_lower = 10
+ melee_damage_upper = 12
+ attack_verb_continuous = "slashes"
+ attack_verb_simple = "slash"
+ attack_sound = 'sound/weapons/punch1.ogg'
+ ventcrawler = VENTCRAWLER_ALWAYS
+ unique_name = TRUE
+ faction = list("rat")
+ var/datum/action/cooldown/coffer
+ var/datum/action/cooldown/riot
+ ///Number assigned to rats and mice, checked when determining infighting.
+
+/mob/living/simple_animal/hostile/regalrat/Initialize()
+ . = ..()
+ coffer = new /datum/action/cooldown/coffer
+ coffer.Grant(src)
+ riot = new /datum/action/cooldown/riot
+ riot.Grant(src)
+ var/list/mob/dead/observer/candidates = pollGhostCandidates("Do you want to play as the Royal Rat, cheesey be his crown?", ROLE_SENTIENCE, null, FALSE, 100, POLL_IGNORE_SENTIENCE_POTION)
+ if(LAZYLEN(candidates) && !mind)
+ var/mob/dead/observer/C = pick(candidates)
+ key = C.key
+ notify_ghosts("All rise for the rat king, ascendant to the throne in \the [get_area(src)].", source = src, action = NOTIFY_ORBIT, flashwindow = FALSE)
+
+/mob/living/simple_animal/hostile/regalrat/handle_automated_action()
+ if(prob(20))
+ riot.Trigger()
+ else if(prob(50))
+ coffer.Trigger()
+ return ..()
+
+/mob/living/simple_animal/hostile/regalrat/CanAttack(atom/the_target)
+ if(istype(the_target,/mob/living/simple_animal))
+ var/mob/living/A = the_target
+ if(istype(the_target, /mob/living/simple_animal/hostile/regalrat) && A.stat == CONSCIOUS)
+ return TRUE
+ if(istype(the_target, /mob/living/simple_animal/hostile/rat) && A.stat == CONSCIOUS)
+ var/mob/living/simple_animal/hostile/rat/R = the_target
+ if(R.faction_check_mob(src, TRUE))
+ return FALSE
+ else
+ return TRUE
+ return ..()
+
+/mob/living/simple_animal/hostile/regalrat/examine(mob/user)
+ . = ..()
+ if(istype(user,/mob/living/simple_animal/hostile/rat))
+ var/mob/living/simple_animal/hostile/rat/ratself = user
+ if(ratself.faction_check_mob(src, TRUE))
+ . += "
This is your king. Long live his majesty!"
+ else
+ . += "
This is a false king! Strike him down!"
+ else if(istype(user,/mob/living/simple_animal/hostile/regalrat))
+ . += "
Who is this foolish false king? This will not stand!"
+
+/**
+ *This action creates trash, money, dirt, and cheese.
+ */
+
+/datum/action/cooldown/coffer
+ name = "Fill Coffers"
+ desc = "Your newly granted regality and poise let you scavenge for lost junk, but more importantly, cheese."
+ icon_icon = 'icons/mob/actions/actions_animal.dmi'
+ background_icon_state = "bg_clock"
+ button_icon_state = "coffer"
+ cooldown_time = 50
+
+/datum/action/cooldown/coffer/Trigger()
+ . = ..()
+ if(!.)
+ return
+ var/turf/T = get_turf(owner)
+ var/loot = rand(1,100)
+ switch(loot)
+ if(1 to 5)
+ to_chat(owner, "
Score! You find some cheese!")
+ new /obj/item/reagent_containers/food/snacks/cheesewedge(T)
+ if(6 to 10)
+ var/pickedcoin = pick(GLOB.ratking_coins)
+ to_chat(owner, "
You find some leftover coins. More for the royal treasury!")
+ for(var/i = 1 to rand(1,3))
+ new pickedcoin(T)
+ if(11)
+ to_chat(owner, "
You find a... Hunh. This coin doesn't look right.")
+ var/rarecoin = rand(1,2)
+ if (rarecoin == 1)
+ new /obj/item/coin/twoheaded(T)
+ else
+ new /obj/item/coin/antagtoken(T)
+ if(12 to 40)
+ var/pickedtrash = pick(GLOB.ratking_trash)
+ to_chat(owner, "
You just find more garbage and dirt. Lovely, but beneath you now.")
+ new /obj/effect/decal/cleanable/dirt(T)
+ new pickedtrash(T)
+ if(41 to 100)
+ to_chat(owner, "
Drat. Nothing.")
+ new /obj/effect/decal/cleanable/dirt(T)
+ StartCooldown()
+
+/**
+ *This action checks all nearby mice, and converts them into hostile rats. If no mice are nearby, creates a new one.
+ */
+
+/datum/action/cooldown/riot
+ name = "Raise Army"
+ desc = "Raise an army out of the hordes of mice and pests crawling around the maintenance shafts."
+ icon_icon = 'icons/mob/actions/actions_animal.dmi'
+ button_icon_state = "riot"
+ background_icon_state = "bg_clock"
+ cooldown_time = 80
+ ///Checks to see if there are any nearby mice. Does not count Rats.
+
+/datum/action/cooldown/riot/Trigger()
+ . = ..()
+ if(!.)
+ return
+ var/cap = CONFIG_GET(number/ratcap)
+ var/something_from_nothing = FALSE
+ for(var/mob/living/simple_animal/mouse/M in oview(owner, 5))
+ var/mob/living/simple_animal/hostile/rat/new_rat = new(get_turf(M))
+ something_from_nothing = TRUE
+ if(M.mind && M.stat == CONSCIOUS)
+ M.mind.transfer_to(new_rat)
+ if(istype(owner,/mob/living/simple_animal/hostile/regalrat))
+ var/mob/living/simple_animal/hostile/regalrat/giantrat = owner
+ new_rat.faction = giantrat.faction
+ qdel(M)
+ if(!something_from_nothing)
+ if(LAZYLEN(SSmobs.cheeserats) >= cap)
+ to_chat(owner,"
There's too many mice on this station to beckon a new one! Find them first!")
+ return
+ new /mob/living/simple_animal/mouse(owner.loc)
+ owner.visible_message("
[owner] commands a mouse to its side!")
+ else
+ owner.visible_message("
[owner] commands its army to action, mutating them into rats!")
+ StartCooldown()
+
+/mob/living/simple_animal/hostile/rat
+ name = "rat"
+ desc = "It's a nasty, ugly, evil, disease-ridden rodent with anger issues."
+ icon_state = "mouse_gray"
+ icon_living = "mouse_gray"
+ icon_dead = "mouse_gray_dead"
+ speak = list("Skree!","SKREEE!","Squeak?")
+ speak_emote = list("squeaks")
+ emote_hear = list("Hisses.")
+ emote_see = list("runs in a circle.", "stands on its hind legs.")
+ melee_damage_lower = 3
+ melee_damage_upper = 5
+ obj_damage = 5
+ speak_chance = 1
+ turns_per_move = 5
+ see_in_dark = 6
+ maxHealth = 15
+ health = 15
+ butcher_results = list(/obj/item/reagent_containers/food/snacks/meat/slab = 1)
+ density = FALSE
+ ventcrawler = VENTCRAWLER_ALWAYS
+ pass_flags = PASSTABLE | PASSGRILLE | PASSMOB
+ mob_size = MOB_SIZE_TINY
+ mob_biotypes = MOB_ORGANIC|MOB_BEAST
+ faction = list("rat")
+
+/mob/living/simple_animal/hostile/rat/Initialize()
+ . = ..()
+ SSmobs.cheeserats += src
+
+/mob/living/simple_animal/hostile/rat/Destroy()
+ SSmobs.cheeserats -= src
+ return ..()
+
+/mob/living/simple_animal/hostile/rat/examine(mob/user)
+ . = ..()
+ if(istype(user,/mob/living/simple_animal/hostile/rat))
+ var/mob/living/simple_animal/hostile/rat/ratself = user
+ if(ratself.faction_check_mob(src, TRUE))
+ . += "
You both serve the same king."
+ else
+ . += "
This fool serves a different king!"
+ else if(istype(user,/mob/living/simple_animal/hostile/regalrat))
+ var/mob/living/simple_animal/hostile/regalrat/ratking = user
+ if(ratking.faction_check_mob(src, TRUE))
+ . += "
This rat serves under you."
+ else
+ . += "
This peasant serves a different king! Strike him down!"
+
+/mob/living/simple_animal/hostile/rat/CanAttack(atom/the_target)
+ if(istype(the_target,/mob/living/simple_animal))
+ var/mob/living/A = the_target
+ if(istype(the_target, /mob/living/simple_animal/hostile/regalrat) && A.stat == CONSCIOUS)
+ var/mob/living/simple_animal/hostile/regalrat/ratking = the_target
+ if(ratking.faction_check_mob(src, TRUE))
+ return FALSE
+ else
+ return TRUE
+ if(istype(the_target, /mob/living/simple_animal/hostile/rat) && A.stat == CONSCIOUS)
+ var/mob/living/simple_animal/hostile/rat/R = the_target
+ if(R.faction_check_mob(src, TRUE))
+ return FALSE
+ else
+ return TRUE
+ return ..()
+
+/mob/living/simple_animal/hostile/rat/handle_automated_action()
+ . = ..()
+ if(prob(40))
+ var/turf/open/floor/F = get_turf(src)
+ if(istype(F) && !F.intact)
+ var/obj/structure/cable/C = locate() in F
+ if(C && prob(15))
+ if(C.avail())
+ visible_message("
[src] chews through the [C]. It's toast!")
+ playsound(src, 'sound/effects/sparks2.ogg', 100, TRUE)
+ C.deconstruct()
+ death()
+ else if(C && C.avail())
+ visible_message("
[src] chews through the [C]. It looks unharmed!")
+ playsound(src, 'sound/effects/sparks2.ogg', 100, TRUE)
+ C.deconstruct()
diff --git a/code/modules/mob/living/simple_animal/slime/slime.dm b/code/modules/mob/living/simple_animal/slime/slime.dm
index 0ef5cabc91..f7876b3516 100644
--- a/code/modules/mob/living/simple_animal/slime/slime.dm
+++ b/code/modules/mob/living/simple_animal/slime/slime.dm
@@ -3,6 +3,7 @@
icon = 'icons/mob/slimes.dmi'
icon_state = "grey baby slime"
pass_flags = PASSTABLE
+ mob_size = MOB_SIZE_SMALL
ventcrawler = VENTCRAWLER_ALWAYS
gender = NEUTER
var/is_adult = 0
diff --git a/code/modules/mob/mob.dm b/code/modules/mob/mob.dm
index e14ff2f721..4c692e7175 100644
--- a/code/modules/mob/mob.dm
+++ b/code/modules/mob/mob.dm
@@ -1086,3 +1086,10 @@ GLOBAL_VAR_INIT(exploit_warn_spam_prevention, 0)
for(var/obj/item/I in held_items)
if(I.item_flags & SLOWS_WHILE_IN_HAND)
. += I.slowdown
+
+/**
+ * Mostly called by doUnEquip()
+ * Like item dropped() on mob side.
+ */
+/mob/proc/on_item_dropped(obj/item/I)
+ return
diff --git a/code/modules/modular_computers/hardware/hard_drive.dm b/code/modules/modular_computers/hardware/hard_drive.dm
index 76463c6867..e27eaa53ae 100644
--- a/code/modules/modular_computers/hardware/hard_drive.dm
+++ b/code/modules/modular_computers/hardware/hard_drive.dm
@@ -157,7 +157,7 @@
max_capacity = 64
icon_state = "ssd_mini"
w_class = WEIGHT_CLASS_TINY
- custom_price = 150
+ custom_price = PRICE_ABOVE_NORMAL
/obj/item/computer_hardware/hard_drive/small/syndicate // Syndicate variant - very slight better
desc = "An efficient SSD for portable devices developed by a rival organisation."
diff --git a/code/modules/movespeed/modifiers/mobs.dm b/code/modules/movespeed/modifiers/mobs.dm
index d20fc4c6c0..a2176ca95e 100644
--- a/code/modules/movespeed/modifiers/mobs.dm
+++ b/code/modules/movespeed/modifiers/mobs.dm
@@ -119,3 +119,7 @@
/datum/movespeed_modifier/liver_cirrhosis
blacklisted_movetypes = FLOATING
variable = TRUE
+
+/datum/movespeed_modifier/active_block
+ variable = TRUE
+ flags = IGNORE_NOSLOW
diff --git a/code/modules/photography/camera/camera.dm b/code/modules/photography/camera/camera.dm
index 705888a427..3e76fc874a 100644
--- a/code/modules/photography/camera/camera.dm
+++ b/code/modules/photography/camera/camera.dm
@@ -15,7 +15,7 @@
flags_1 = CONDUCT_1
slot_flags = ITEM_SLOT_NECK
custom_materials = list(/datum/material/iron = 50, /datum/material/glass = 150)
- custom_price = 120
+ custom_price = PRICE_NORMAL
var/flash_enabled = TRUE
var/state_on = "camera"
var/state_off = "camera_off"
diff --git a/code/modules/power/apc.dm b/code/modules/power/apc.dm
index 60532028da..c7b54a0882 100644
--- a/code/modules/power/apc.dm
+++ b/code/modules/power/apc.dm
@@ -1575,5 +1575,5 @@
/obj/item/electronics/apc
name = "power control module"
icon_state = "power_mod"
- custom_price = 50
+ custom_price = PRICE_CHEAP
desc = "Heavy-duty switching circuits for power control."
diff --git a/code/modules/power/cable.dm b/code/modules/power/cable.dm
index 0d674a2f77..eb456a3f44 100644
--- a/code/modules/power/cable.dm
+++ b/code/modules/power/cable.dm
@@ -488,7 +488,7 @@ By design, d1 is the smallest direction and d2 is the highest
/obj/item/stack/cable_coil
name = "cable coil"
- custom_price = 75
+ custom_price = PRICE_CHEAP_AS_FREE
gender = NEUTER //That's a cable coil sounds better than that's some cable coils
icon = 'icons/obj/power.dmi'
icon_state = "coil"
diff --git a/code/modules/power/lighting.dm b/code/modules/power/lighting.dm
index 3c3f3c9541..c18eebbb55 100644
--- a/code/modules/power/lighting.dm
+++ b/code/modules/power/lighting.dm
@@ -506,7 +506,7 @@
cell = null
qdel(src)
-/obj/machinery/light/attacked_by(obj/item/I, mob/living/user)
+/obj/machinery/light/attacked_by(obj/item/I, mob/living/user, attackchain_flags = NONE, damage_multiplier = 1)
..()
if(status == LIGHT_BROKEN || status == LIGHT_EMPTY)
if(on && (I.flags_1 & CONDUCT_1))
diff --git a/code/modules/projectiles/ammunition/ballistic/pistol.dm b/code/modules/projectiles/ammunition/ballistic/pistol.dm
index 461166ab0d..2077b108d7 100644
--- a/code/modules/projectiles/ammunition/ballistic/pistol.dm
+++ b/code/modules/projectiles/ammunition/ballistic/pistol.dm
@@ -44,7 +44,6 @@
desc = "A 9mm incendiary bullet casing."
projectile_type = /obj/item/projectile/bullet/incendiary/c9mm
-
// .50AE (Desert Eagle)
/obj/item/ammo_casing/a50AE
@@ -53,3 +52,16 @@
caliber = ".50"
projectile_type = /obj/item/projectile/bullet/a50AE
+// .32 ACP (Improvised Pistol)
+
+/obj/item/ammo_casing/c32acp
+ name = ".32 bullet casing"
+ desc = "A .32 bullet casing."
+ caliber = "c32acp"
+ projectile_type = /obj/item/projectile/bullet/c32acp
+
+/obj/item/ammo_casing/r32acp
+ name = ".32 rubber bullet casing"
+ desc = "A .32 rubber bullet casing."
+ caliber = "c32acp"
+ projectile_type = /obj/item/projectile/bullet/r32acp
diff --git a/code/modules/projectiles/ammunition/energy/laser.dm b/code/modules/projectiles/ammunition/energy/laser.dm
index 174645dd11..492b91ec2d 100644
--- a/code/modules/projectiles/ammunition/energy/laser.dm
+++ b/code/modules/projectiles/ammunition/energy/laser.dm
@@ -12,6 +12,15 @@
e_cost = 200
select_name = "kill"
+/obj/item/ammo_casing/energy/lasergun/improvised
+ projectile_type = /obj/item/projectile/beam/weak/improvised
+ e_cost = 200
+ select_name = "kill"
+
+/obj/item/ammo_casing/energy/lasergun/improvised/upgraded
+ projectile_type = /obj/item/projectile/beam/weak
+ e_cost = 100
+
/obj/item/ammo_casing/energy/laser/hos
e_cost = 100
diff --git a/code/modules/projectiles/boxes_magazines/ammo_boxes.dm b/code/modules/projectiles/boxes_magazines/ammo_boxes.dm
index 597c7203b4..4e638ce1fc 100644
--- a/code/modules/projectiles/boxes_magazines/ammo_boxes.dm
+++ b/code/modules/projectiles/boxes_magazines/ammo_boxes.dm
@@ -40,6 +40,18 @@
desc = "Designed to quickly reload revolvers. Iceblox bullets contain a cryogenic payload."
ammo_type = /obj/item/ammo_casing/c38/iceblox
+/obj/item/ammo_box/c32mm
+ name = "ammo box (.32 acp)"
+ desc = "Lethal .32 acp bullets, there's forty in the box."
+ ammo_type = /obj/item/ammo_casing/c32acp
+ max_ammo = 40
+
+/obj/item/ammo_box/r32mm
+ name = "ammo box (rubber .32 acp)"
+ desc = "Non-lethal .32 acp bullets, there's forty in the box."
+ ammo_type = /obj/item/ammo_casing/r32acp
+ max_ammo = 40
+
/obj/item/ammo_box/c9mm
name = "ammo box (9mm)"
icon_state = "9mmbox"
diff --git a/code/modules/projectiles/boxes_magazines/external/pistol.dm b/code/modules/projectiles/boxes_magazines/external/pistol.dm
index 63b0483875..1852b839f4 100644
--- a/code/modules/projectiles/boxes_magazines/external/pistol.dm
+++ b/code/modules/projectiles/boxes_magazines/external/pistol.dm
@@ -66,3 +66,15 @@
caliber = ".50"
max_ammo = 7
multiple_sprites = 1
+
+/obj/item/ammo_box/magazine/m32acp
+ name = "pistol magazine (.32)"
+ desc = "A crudely construction pistol magazine that holds .32 ACP rounds. It looks like it can only fit eight bullets."
+ icon_state = "32acp"
+ ammo_type = /obj/item/ammo_casing/c32acp
+ caliber = "c32acp"
+ max_ammo = 8
+ multiple_sprites = 2
+
+/obj/item/ammo_box/magazine/m32acp/empty
+ start_empty = 1
diff --git a/code/modules/projectiles/guns/ballistic/laser_gatling.dm b/code/modules/projectiles/guns/ballistic/laser_gatling.dm
index 7029cd4071..c2dd5bb42d 100644
--- a/code/modules/projectiles/guns/ballistic/laser_gatling.dm
+++ b/code/modules/projectiles/guns/ballistic/laser_gatling.dm
@@ -53,6 +53,7 @@
..()
/obj/item/minigunpack/dropped(mob/user)
+ . = ..()
if(armed)
user.dropItemToGround(gun, TRUE)
@@ -125,6 +126,7 @@
return
/obj/item/gun/ballistic/minigun/dropped(mob/user)
+ . = ..()
if(ammo_pack)
ammo_pack.attach_gun(user)
else
@@ -144,4 +146,5 @@
. = ..()
/obj/item/gun/ballistic/minigun/dropped(mob/living/user)
+ . = ..()
ammo_pack.attach_gun(user)
diff --git a/code/modules/projectiles/guns/ballistic/pistol.dm b/code/modules/projectiles/guns/ballistic/pistol.dm
index e15c49b891..319ec16345 100644
--- a/code/modules/projectiles/guns/ballistic/pistol.dm
+++ b/code/modules/projectiles/guns/ballistic/pistol.dm
@@ -115,6 +115,7 @@
icon_state = "flatgun"
/obj/item/gun/ballistic/automatic/pistol/stickman/pickup(mob/living/user)
+ . = ..()
to_chat(user, "
As you try to pick up [src], it slips out of your grip..")
if(prob(50))
to_chat(user, "
..and vanishes from your vision! Where the hell did it go?")
@@ -155,3 +156,19 @@
name = "Syndicate Anti Tank Pistol"
desc = "A massively impractical and silly monstrosity of a pistol that fires .50 calliber rounds. The recoil is likely to dislocate a variety of joints without proper bracing."
pin = /obj/item/firing_pin/implant/pindicate
+
+////////////Improvised Pistol////////////
+
+/obj/item/gun/ballistic/automatic/pistol/improvised
+ name = "Improvised Pistol"
+ desc = "An improvised pocket-sized pistol that fires .32 calibre rounds. It looks incredibly flimsy."
+ icon_state = "ipistol"
+ item_state = "pistol"
+ mag_type = /obj/item/ammo_box/magazine/m32acp
+ fire_delay = 7.5
+ can_suppress = FALSE
+ w_class = WEIGHT_CLASS_SMALL
+ spread = 15 // Keep the spread between 15 and 20. This hardlocks it into being a mid-range pistol, the magazine size means you're allowed to miss. Fills the mid-range niche that slugs/rifle and buckshot doesn't fill.
+
+/obj/item/gun/ballistic/automatic/pistol/improvised/nomag
+ spawnwithmagazine = FALSE // For crafting as you shouldn't get eight bullets for free otherwise people will reaper reload.
diff --git a/code/modules/projectiles/guns/ballistic/revolver.dm b/code/modules/projectiles/guns/ballistic/revolver.dm
index b8b5ad6ec3..f34dbc6abc 100644
--- a/code/modules/projectiles/guns/ballistic/revolver.dm
+++ b/code/modules/projectiles/guns/ballistic/revolver.dm
@@ -319,7 +319,6 @@
/obj/item/gun/ballistic/revolver/doublebarrel/improvised
name = "improvised shotgun"
- desc = "Essentially a tube that aims shotgun shells."
desc = "A shoddy break-action breechloaded shotgun. Its lacklustre construction will probably result in it hurting people less than a normal shotgun."
icon_state = "ishotgun"
item_state = "shotgun"
@@ -330,8 +329,9 @@
mag_type = /obj/item/ammo_box/magazine/internal/shot/improvised
sawn_desc = "I'm just here for the gasoline."
unique_reskin = null
- projectile_damage_multiplier = 0.8
+ projectile_damage_multiplier = 0.9
var/slung = FALSE
+ weapon_weight = WEAPON_HEAVY
/obj/item/gun/ballistic/revolver/doublebarrel/improvised/attackby(obj/item/A, mob/user, params)
..()
@@ -358,7 +358,7 @@
/obj/item/gun/ballistic/revolver/doublebarrel/improvised/sawn
name = "sawn-off improvised shotgun"
- desc = "A single-shot shotgun. Better not miss."
+ desc = "The barrel and stock have been sawn and filed down; it can fit in backpacks. You still need two hands to fire this, if you value unbroken wrists."
icon_state = "ishotgun"
item_state = "gun"
w_class = WEIGHT_CLASS_NORMAL
diff --git a/code/modules/projectiles/guns/ballistic/shotgun.dm b/code/modules/projectiles/guns/ballistic/shotgun.dm
index a182ce2e35..8b8c5dceb1 100644
--- a/code/modules/projectiles/guns/ballistic/shotgun.dm
+++ b/code/modules/projectiles/guns/ballistic/shotgun.dm
@@ -131,6 +131,7 @@
desc = "A bolt-action breechloaded rifle that takes 7.62mm bullets."
mag_type = /obj/item/ammo_box/magazine/internal/boltaction/improvised
can_bayonet = FALSE
+ var/slung = FALSE
/obj/item/gun/ballistic/shotgun/boltaction/pump(mob/M)
playsound(M, 'sound/weapons/shotgunpump.ogg', 60, 1)
@@ -152,6 +153,22 @@
. = ..()
. += "The bolt is [bolt_open ? "open" : "closed"]."
+/obj/item/gun/ballistic/shotgun/boltaction/improvised/attackby(obj/item/A, mob/user, params)
+ ..()
+ if(istype(A, /obj/item/stack/cable_coil) && !sawn_off)
+ if(A.use_tool(src, user, 0, 10, max_level = JOB_SKILL_BASIC))
+ slot_flags = ITEM_SLOT_BACK
+ to_chat(user, "
You tie the lengths of cable to the rifle, making a sling.")
+ slung = TRUE
+ update_icon()
+ else
+ to_chat(user, "
You need at least ten lengths of cable if you want to make a sling!")
+
+/obj/item/gun/ballistic/shotgun/boltaction/improvised/update_icon()
+ ..()
+ if(slung)
+ icon_state += "sling"
+
/obj/item/gun/ballistic/shotgun/boltaction/enchanted
name = "enchanted bolt action rifle"
desc = "Careful not to lose your head."
diff --git a/code/modules/projectiles/guns/energy/laser.dm b/code/modules/projectiles/guns/energy/laser.dm
index 72ac9620b5..e64da116f3 100644
--- a/code/modules/projectiles/guns/energy/laser.dm
+++ b/code/modules/projectiles/guns/energy/laser.dm
@@ -240,3 +240,20 @@
chambered.BB.damage *= 5
process_fire(target, user, TRUE, params)
+
+////////////////
+// IMPROVISED //
+////////////////
+
+/obj/item/gun/energy/e_gun/old/improvised
+ name = "improvised energy rifle"
+ desc = "A crude imitation of an energy gun. It works, however the beams are poorly focused and most of the energy is wasted before it reaches the target. Welp, it still burns things."
+ icon_state = "improvised"
+ ammo_x_offset = 1
+ shaded_charge = 1
+ ammo_type = list(/obj/item/ammo_casing/energy/lasergun/improvised)
+
+/obj/item/gun/energy/e_gun/old/improvised/upgraded
+ name = "makeshift energy rifle"
+ desc = "The new lens and upgraded parts gives this a higher capacity and more energy output, however, the shoddy construction still leaves it inferior to Nanotrasen's own energy weapons."
+ ammo_type = list(/obj/item/ammo_casing/energy/lasergun/improvised/upgraded)
diff --git a/code/modules/projectiles/projectile.dm b/code/modules/projectiles/projectile.dm
index a5938c2758..d2643eeeb7 100644
--- a/code/modules/projectiles/projectile.dm
+++ b/code/modules/projectiles/projectile.dm
@@ -45,6 +45,8 @@
var/pixels_range_leftover = 0
/// "leftover" tick pixels and stuff yeah, so we don't round off things and introducing tracing inaccuracy.
var/pixels_tick_leftover = 0
+ /// Used to detect jumps in the middle of a pixel_move. Yes, this is ugly as sin code-wise but it works.
+ var/pixel_move_interrupted = FALSE
/// Pixels moved per second.
var/pixels_per_second = TILES_TO_PIXELS(12.5)
@@ -162,7 +164,15 @@
/obj/item/projectile/proc/prehit(atom/target)
return TRUE
-/obj/item/projectile/proc/on_hit(atom/target, blocked = FALSE)
+/**
+ * Called when we hit something.
+ *
+ * @params
+ * * target - what we hit
+ * * blocked - 0 to 100 percentage mitigation/block
+ * * def zone - where we hit if we hit a mob.
+ */
+/obj/item/projectile/proc/on_hit(atom/target, blocked = 0, def_zone)
if(fired_from)
SEND_SIGNAL(fired_from, COMSIG_PROJECTILE_ON_HIT, firer, target, Angle)
var/turf/target_loca = get_turf(target)
@@ -249,27 +259,54 @@
else
return 50 //if the projectile doesn't do damage, play its hitsound at 50% volume
-/obj/item/projectile/proc/on_ricochet(atom/A)
- return
-
/obj/item/projectile/proc/store_hitscan_collision(datum/point/pcache)
beam_segments[beam_index] = pcache
beam_index = pcache
beam_segments[beam_index] = null
-/obj/item/projectile/Bump(atom/A)
- var/turf/T = get_turf(A)
- if(trajectory && check_ricochet(A) && check_ricochet_flag(A) && ricochets < ricochets_max)
- var/datum/point/pcache = trajectory.copy_to()
- ricochets++
- if(A.handle_ricochet(src))
- on_ricochet(A)
- ignore_source_check = TRUE
- decayedRange = max(0, decayedRange - reflect_range_decrease)
- range = decayedRange
- if(hitscan)
- store_hitscan_collision(pcache)
+/**
+ * Determines if we should ricochet off of something.
+ * By default, asks the thing if we should ricochet off it, but because we're called first, we get final say.
+ * Returns TRUE or FALSE.
+ */
+/obj/item/projectile/proc/check_ricochet(atom/A)
+ if(ricochets > ricochets_max) //safety thing, we don't care about what the other thing says about this.
+ return FALSE
+ var/them = A.check_projectile_ricochet(src)
+ switch(them)
+ if(PROJECTILE_RICOCHET_PREVENT)
+ return FALSE
+ if(PROJECTILE_RICOCHET_FORCE)
return TRUE
+ if(PROJECTILE_RICOCHET_NO)
+ return FALSE
+ if(PROJECTILE_RICOCHET_YES)
+ return prob(ricochet_chance)
+ else
+ CRASH("Invalid return value for projectile ricochet check from [A].")
+
+/**
+ * Handles ricocheting off of something.
+ * By default, also asks the thing to handle it, but because we're called first, we get final say.
+ */
+/obj/item/projectile/proc/handle_ricochet(atom/A)
+ ricochets++
+ ignore_source_check = TRUE
+ decayedRange = max(0, decayedRange - reflect_range_decrease)
+ pixel_move_interrupted = TRUE
+ range = decayedRange
+ return A.handle_projectile_ricochet(src)
+
+/obj/item/projectile/Bump(atom/A)
+ if(!trajectory)
+ return
+ var/turf/T = get_turf(A)
+ if(check_ricochet(A))
+ var/datum/point/pcache = trajectory.copy_to()
+ if(hitscan)
+ store_hitscan_collision(pcache)
+ handle_ricochet(A)
+ return TRUE
var/distance = get_dist(T, starting) // Get the distance between the turf shot from and the mob we hit and use that for the calculations.
if(def_zone && check_zone(def_zone) != BODY_ZONE_CHEST)
@@ -344,16 +381,6 @@
return T
//Returns null if nothing at all was found.
-/obj/item/projectile/proc/check_ricochet()
- if(prob(ricochet_chance))
- return TRUE
- return FALSE
-
-/obj/item/projectile/proc/check_ricochet_flag(atom/A)
- if(A.flags_1 & CHECK_RICOCHET_1)
- return TRUE
- return FALSE
-
/// one move is a tile.
/obj/item/projectile/proc/return_predicted_turf_after_moves(moves, forced_angle) //I say predicted because there's no telling that the projectile won't change direction/location in flight.
if(!trajectory && isnull(forced_angle) && isnull(Angle))
@@ -431,6 +458,7 @@
/obj/item/projectile/proc/setAngle(new_angle, hitscan_store_segment = TRUE) //wrapper for overrides.
Angle = new_angle
+ pixel_move_interrupted = TRUE
if(!nondirectional_sprite)
var/matrix/M = new
M.Turn(Angle)
@@ -457,6 +485,7 @@
trajectory.initialize_location(target.x, target.y, target.z, 0, 0)
if(hitscan)
record_hitscan_start(RETURN_PRECISE_POINT(src))
+ pixel_move_interrupted = TRUE
if(zc)
after_z_change(old, target)
@@ -505,7 +534,7 @@
* The proc to make the projectile go, using a simulated pixel movement line trace.
* Note: deciseconds_equivalent is currently only used for homing, times is the number of times to move pixel_increment_amount.
* Trajectory multiplier directly modifies the factor of pixel_increment_amount to go per time.
- * It's complicated, so probably just don'ot mess with this unless you know what you're doing.
+ * It's complicated, so probably just don't mess with this unless you know what you're doing.
*/
/obj/item/projectile/proc/pixel_move(times, hitscanning = FALSE, deciseconds_equivalent = world.tick_lag, trajectory_multiplier = 1, allow_animation = TRUE)
if(!loc || !trajectory)
@@ -515,6 +544,7 @@
M.Turn(Angle)
transform = M
var/forcemoved = FALSE
+ pixel_move_interrupted = FALSE // reset that
var/turf/oldloc = loc
var/old_px = pixel_x
var/old_py = pixel_y
@@ -550,7 +580,9 @@
if(!--safety)
CRASH("[type] took too long (allowed: [CEILING(pixel_increment_amount/world.icon_size,1)*2] moves) to get to its location.")
step_towards(src, T)
- if(QDELETED(src))
+ if(QDELETED(src) || pixel_move_interrupted) // this doesn't take into account with pixel_move_interrupted the portion of the move cut off by any forcemoves, but we're opting to ignore that for now
+ // the reason is the entire point of moving to pixel speed rather than tile speed is smoothness, which will be crucial when pixel movement is done in the future
+ // reverting back to tile is more or less the only way of fixing this issue.
return
pixels_range_leftover += pixel_increment_amount
if(pixels_range_leftover > world.icon_size)
diff --git a/code/modules/projectiles/projectile/beams.dm b/code/modules/projectiles/projectile/beams.dm
index 2f12f0f69b..d95c3b5028 100644
--- a/code/modules/projectiles/projectile/beams.dm
+++ b/code/modules/projectiles/projectile/beams.dm
@@ -39,6 +39,9 @@
/obj/item/projectile/beam/weak
damage = 15
+/obj/item/projectile/beam/weak/improvised
+ damage = 10
+
/obj/item/projectile/beam/weak/penetrator
armour_penetration = 50
diff --git a/code/modules/projectiles/projectile/bullets/pistol.dm b/code/modules/projectiles/projectile/bullets/pistol.dm
index 319640a4d5..62ff4adb11 100644
--- a/code/modules/projectiles/projectile/bullets/pistol.dm
+++ b/code/modules/projectiles/projectile/bullets/pistol.dm
@@ -47,4 +47,16 @@
if(L.getStaminaLoss() >= 60)
L.Sleeping(300)
else
- L.adjustStaminaLoss(25)
\ No newline at end of file
+ L.adjustStaminaLoss(25)
+
+// .32 ACP (Improvised Pistol)
+
+/obj/item/projectile/bullet/c32acp
+ name = ".32 bullet"
+ damage = 13
+
+/obj/item/projectile/bullet/r32acp
+ name = ".32 rubber bullet"
+ damage = 3
+ eyeblur = 1
+ stamina = 20
diff --git a/code/modules/reagents/chemistry/machinery/chem_master.dm b/code/modules/reagents/chemistry/machinery/chem_master.dm
index d5cd4ab8d0..4ad9cc06ff 100644
--- a/code/modules/reagents/chemistry/machinery/chem_master.dm
+++ b/code/modules/reagents/chemistry/machinery/chem_master.dm
@@ -32,7 +32,7 @@
for (var/x in 1 to PILL_STYLE_COUNT)
var/list/SL = list()
SL["id"] = x
- SL["htmltag"] = assets.icon_tag("pill[x]")
+ SL["htmltag"] = assets.icon_class_name("pill[x]")
pillStyles += list(SL)
. = ..()
diff --git a/code/modules/reagents/chemistry/reagents/food_reagents.dm b/code/modules/reagents/chemistry/reagents/food_reagents.dm
index 0e0056f958..52fd89e37c 100644
--- a/code/modules/reagents/chemistry/reagents/food_reagents.dm
+++ b/code/modules/reagents/chemistry/reagents/food_reagents.dm
@@ -857,3 +857,13 @@
taste_mult = 2.5 //sugar's 1.5, capsacin's 1.5, so a good middle ground.
taste_description = "smokey sweetness"
value = REAGENT_VALUE_COMMON
+
+/datum/reagent/consumable/laughsyrup
+ name = "Laughin' Syrup"
+ description = "The product of juicing Laughin' Peas. Fizzy, and seems to change flavour based on what it's used with!"
+ nutriment_factor = 5 * REAGENTS_METABOLISM
+ color = "#803280"
+ taste_mult = 2
+ taste_description = "fizzy sweetness"
+ value = REAGENT_VALUE_COMMON
+
\ No newline at end of file
diff --git a/code/modules/reagents/reagent_containers/bottle.dm b/code/modules/reagents/reagent_containers/bottle.dm
index cc1cd21bac..ad8d722b61 100644
--- a/code/modules/reagents/reagent_containers/bottle.dm
+++ b/code/modules/reagents/reagent_containers/bottle.dm
@@ -8,7 +8,6 @@
possible_transfer_amounts = list(5,10,15,25,30)
volume = 30
-
/obj/item/reagent_containers/glass/bottle/Initialize()
. = ..()
if(!icon_state)
@@ -40,7 +39,6 @@
. += filling
-
/obj/item/reagent_containers/glass/bottle/epinephrine
name = "epinephrine bottle"
desc = "A small bottle. Contains epinephrine - used to stabilize patients."
@@ -228,6 +226,13 @@
desc = "A small bottle of atropine."
list_reagents = list(/datum/reagent/medicine/atropine = 30)
+/obj/item/reagent_containers/glass/bottle/zeolites
+ name = "Zeolites bottle"
+ desc = "A small bottle of lab made Zeolite, which removes radiation from people quickly as well as contamination on items."
+ list_reagents = list(/datum/reagent/fermi/zeolites = 30)
+
+// Viro bottles
+
/obj/item/reagent_containers/glass/bottle/romerol
name = "romerol bottle"
desc = "A small bottle of Romerol. The REAL zombie powder."
diff --git a/code/modules/reagents/reagent_containers/dropper.dm b/code/modules/reagents/reagent_containers/dropper.dm
index b4c570dfc6..3ed946d0c5 100644
--- a/code/modules/reagents/reagent_containers/dropper.dm
+++ b/code/modules/reagents/reagent_containers/dropper.dm
@@ -7,7 +7,7 @@
possible_transfer_amounts = list(1, 2, 3, 4, 5)
volume = 5
reagent_flags = TRANSPARENT
- custom_price = 75
+ custom_price = PRICE_CHEAP_AS_FREE
/obj/item/reagent_containers/dropper/afterattack(obj/target, mob/user , proximity)
. = ..()
diff --git a/code/modules/reagents/reagent_containers/glass.dm b/code/modules/reagents/reagent_containers/glass.dm
index 549f4eb48c..328b30d092 100644
--- a/code/modules/reagents/reagent_containers/glass.dm
+++ b/code/modules/reagents/reagent_containers/glass.dm
@@ -361,7 +361,7 @@
icon = 'icons/obj/drinks.dmi'
icon_state = "smallbottle"
item_state = "bottle"
- custom_price = 30
+ custom_price = PRICE_CHEAP_AS_FREE
list_reagents = list(/datum/reagent/water = 49.5, /datum/reagent/fluorine = 0.5)//see desc, don't think about it too hard
custom_materials = list(/datum/material/glass=0)
volume = 50
diff --git a/code/modules/reagents/reagent_containers/hypospray.dm b/code/modules/reagents/reagent_containers/hypospray.dm
index 99a93e58dc..799a6db9f5 100644
--- a/code/modules/reagents/reagent_containers/hypospray.dm
+++ b/code/modules/reagents/reagent_containers/hypospray.dm
@@ -96,8 +96,7 @@
reagent_flags = DRAWABLE
flags_1 = null
list_reagents = list(/datum/reagent/medicine/epinephrine = 10, /datum/reagent/preservahyde = 3)
- custom_price = 150
- custom_premium_price = 300
+ custom_premium_price = PRICE_ALMOST_EXPENSIVE
/obj/item/reagent_containers/hypospray/medipen/suicide_act(mob/living/carbon/user)
user.visible_message("
[user] begins to choke on \the [src]! It looks like [user.p_theyre()] trying to commit suicide!")
diff --git a/code/modules/reagents/reagent_containers/syringes.dm b/code/modules/reagents/reagent_containers/syringes.dm
index 4782a80c62..4ab1470667 100644
--- a/code/modules/reagents/reagent_containers/syringes.dm
+++ b/code/modules/reagents/reagent_containers/syringes.dm
@@ -15,7 +15,7 @@
var/show_filling = TRUE
custom_materials = list(/datum/material/iron=10, /datum/material/glass=20)
reagent_flags = TRANSPARENT
- custom_price = 100
+ custom_price = PRICE_CHEAP_AS_FREE
/obj/item/reagent_containers/syringe/Initialize()
. = ..()
diff --git a/code/modules/research/bepis.dm b/code/modules/research/bepis.dm
index 6b3493b797..87aec72646 100644
--- a/code/modules/research/bepis.dm
+++ b/code/modules/research/bepis.dm
@@ -33,8 +33,8 @@
var/inaccuracy_percentage = 1.5
var/positive_cash_offset = 0
var/negative_cash_offset = 0
- var/minor_rewards = list(/obj/item/stack/circuit_stack/full, //To add a new minor reward, add it here.
- /obj/item/airlock_painter/decal,
+ var/minor_rewards = list(/obj/item/stack/circuit_stack/full, //To add a new minor reward, add it here.
+ /obj/item/flashlight/flashdark,
/obj/item/pen/survival,
/obj/item/circuitboard/machine/sleeper/party,
/obj/item/toy/sprayoncan)
diff --git a/code/modules/research/designs/autolathe_desings/autolathe_designs_sec_and_hacked.dm b/code/modules/research/designs/autolathe_desings/autolathe_designs_sec_and_hacked.dm
index 9cbef4abdd..9768d80a59 100644
--- a/code/modules/research/designs/autolathe_desings/autolathe_designs_sec_and_hacked.dm
+++ b/code/modules/research/designs/autolathe_desings/autolathe_designs_sec_and_hacked.dm
@@ -30,6 +30,14 @@
build_path = /obj/item/ammo_box/c38
category = list("initial", "Security")
+/datum/design/r32acp
+ name = "Rubber Pistol Bullet (.32)"
+ id = "r32acp"
+ build_type = AUTOLATHE
+ materials = list(/datum/material/iron = 250)
+ build_path = /obj/item/ammo_casing/r32acp
+ category = list("initial", "Security")
+
/////////////////
///Hacked Gear //
/////////////////
@@ -78,7 +86,7 @@
name = "Rifle Receiver"
id = "rifle_receiver"
build_type = AUTOLATHE
- materials = list(/datum/material/iron = 40000)
+ materials = list(/datum/material/iron = 24000)
build_path = /obj/item/weaponcrafting/improvised_parts/rifle_receiver
category = list("hacked", "Security")
@@ -197,3 +205,23 @@
materials = list(/datum/material/iron = 5500)
build_path = /obj/item/clothing/head/foilhat
category = list("hacked", "Misc")
+
+/datum/design/c32acp
+ name = "Pistol Bullet (.32)"
+ id = "c32acp"
+ build_type = AUTOLATHE
+ materials = list(/datum/material/iron = 500)
+ build_path = /obj/item/ammo_casing/c32acp
+ category = list("hacked", "Security")
+
+/////////////////
+// Magazines //
+/////////////////
+
+/datum/design/m32acp
+ name = "Empty .32 Magazine"
+ id = "m32acp"
+ build_type = AUTOLATHE
+ materials = list(/datum/material/iron = 10000)
+ build_path = /obj/item/ammo_box/magazine/m32acp/empty
+ category = list("hacked", "Security")
diff --git a/code/modules/research/designs/autolathe_desings/autolathe_designs_tcomms_and_misc.dm b/code/modules/research/designs/autolathe_desings/autolathe_designs_tcomms_and_misc.dm
index ea73df568f..320f856b35 100644
--- a/code/modules/research/designs/autolathe_desings/autolathe_designs_tcomms_and_misc.dm
+++ b/code/modules/research/designs/autolathe_desings/autolathe_designs_tcomms_and_misc.dm
@@ -281,3 +281,10 @@
build_path = /obj/item/weaponcrafting/improvised_parts/trigger_assembly
category = list("initial", "Misc")
+/datum/design/focusing_lens
+ name = "Makeshift Lens"
+ id = "makeshift_lens"
+ build_type = AUTOLATHE
+ materials = list(/datum/material/iron = 2000, /datum/material/glass = 4000)
+ build_path = /obj/item/weaponcrafting/improvised_parts/makeshift_lens
+ category = list("initial", "Misc")
diff --git a/code/modules/surgery/advanced/lobotomy.dm b/code/modules/surgery/advanced/lobotomy.dm
index 2b2d11e54f..4a52e446bc 100644
--- a/code/modules/surgery/advanced/lobotomy.dm
+++ b/code/modules/surgery/advanced/lobotomy.dm
@@ -1,6 +1,6 @@
/datum/surgery/advanced/lobotomy
name = "Lobotomy"
- desc = "An invasive surgical procedure which guarantees removal of almost all brain traumas, but might cause another permanent trauma in return."
+ desc = "An invasive surgical procedure which guarantees removal of almost all brain traumas, at the cost of severe, albeit repairable, brain damage."
steps = list(
/datum/surgery_step/incise,
/datum/surgery_step/retract_skin,
@@ -43,11 +43,14 @@
target.mind.remove_antag_datum(/datum/antagonist/brainwashed)
switch(rand(1,6))//Now let's see what hopefully-not-important part of the brain we cut off
if(1)
- target.gain_trauma_type(BRAIN_TRAUMA_MILD, TRAUMA_RESILIENCE_MAGIC)
+ target.gain_trauma_type(BRAIN_TRAUMA_MILD, TRAUMA_RESILIENCE_SURGERY)
if(2)
- target.gain_trauma_type(BRAIN_TRAUMA_SEVERE, TRAUMA_RESILIENCE_MAGIC)
+ target.gain_trauma_type(BRAIN_TRAUMA_SEVERE, TRAUMA_RESILIENCE_SURGERY)
if(3)
- target.gain_trauma_type(BRAIN_TRAUMA_SPECIAL, TRAUMA_RESILIENCE_MAGIC)
+ target.gain_trauma_type(BRAIN_TRAUMA_SPECIAL, TRAUMA_RESILIENCE_SURGERY)
+ // you're cutting off a part of the brain.w
+ var/obj/item/organ/brain/B = target.getorganslot(ORGAN_SLOT_BRAIN)
+ B.applyOrganDamage(50, 100)
return TRUE
/datum/surgery_step/lobotomize/failure(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery)
@@ -59,11 +62,11 @@
B.applyOrganDamage(80)
switch(rand(1,3))
if(1)
- target.gain_trauma_type(BRAIN_TRAUMA_MILD, TRAUMA_RESILIENCE_MAGIC)
+ target.gain_trauma_type(BRAIN_TRAUMA_MILD, TRAUMA_RESILIENCE_LOBOTOMY)
if(2)
- target.gain_trauma_type(BRAIN_TRAUMA_SEVERE, TRAUMA_RESILIENCE_MAGIC)
+ target.gain_trauma_type(BRAIN_TRAUMA_SEVERE, TRAUMA_RESILIENCE_LOBOTOMY)
if(3)
- target.gain_trauma_type(BRAIN_TRAUMA_SPECIAL, TRAUMA_RESILIENCE_MAGIC)
+ target.gain_trauma_type(BRAIN_TRAUMA_SPECIAL, TRAUMA_RESILIENCE_LOBOTOMY)
else
user.visible_message("
[user] suddenly notices that the brain [user.p_they()] [user.p_were()] working on is not there anymore.", "You suddenly notice that the brain you were working on is not there anymore.")
return FALSE
diff --git a/code/modules/uplink/uplink_items/uplink_devices.dm b/code/modules/uplink/uplink_items/uplink_devices.dm
index 2d20fd0b7b..df6373b8de 100644
--- a/code/modules/uplink/uplink_items/uplink_devices.dm
+++ b/code/modules/uplink/uplink_items/uplink_devices.dm
@@ -100,6 +100,12 @@
cost = 1
exclude_modes = list(/datum/game_mode/nuclear, /datum/game_mode/nuclear/clown_ops)
+/datum/uplink_item/device_tools/ammo_pouch
+ name = "Ammo Pouch"
+ desc = "A small yet large enough pouch that can fit in your pocket, and has room for three magazines."
+ item = /obj/item/storage/bag/ammo
+ cost = 1
+
/datum/uplink_item/device_tools/fakenucleardisk
name = "Decoy Nuclear Authentication Disk"
desc = "It's just a normal disk. Visually it's identical to the real deal, but it won't hold up under closer scrutiny by the Captain. \
diff --git a/code/modules/vehicles/cars/car.dm b/code/modules/vehicles/cars/car.dm
index 958a4e65c4..d45cb8d26f 100644
--- a/code/modules/vehicles/cars/car.dm
+++ b/code/modules/vehicles/cars/car.dm
@@ -49,7 +49,7 @@
mob_exit(M, silent)
return TRUE
-/obj/vehicle/sealed/car/attacked_by(obj/item/I, mob/living/user)
+/obj/vehicle/sealed/car/attacked_by(obj/item/I, mob/living/user, attackchain_flags = NONE, damage_multiplier = 1)
if(!I.force)
return FALSE
if(occupants[user])
@@ -85,4 +85,4 @@
if(!silent)
M.visible_message("[M] is forced into \the [src]!")
M.forceMove(src)
- add_occupant(M, VEHICLE_CONTROL_KIDNAPPED)
\ No newline at end of file
+ add_occupant(M, VEHICLE_CONTROL_KIDNAPPED)
diff --git a/code/modules/vehicles/cars/clowncar.dm b/code/modules/vehicles/cars/clowncar.dm
index 2b9890b863..cd21b61dbe 100644
--- a/code/modules/vehicles/cars/clowncar.dm
+++ b/code/modules/vehicles/cars/clowncar.dm
@@ -36,7 +36,7 @@
visible_message("[src] spews out a ton of space lube!")
new /obj/effect/particle_effect/foam(loc) //YEET
-/obj/vehicle/sealed/car/clowncar/attacked_by(obj/item/I, mob/living/user)
+/obj/vehicle/sealed/car/clowncar/attacked_by(obj/item/I, mob/living/user, attackchain_flags = NONE, damage_multiplier = 1)
. = ..()
if(istype(I, /obj/item/reagent_containers/food/snacks/grown/banana))
var/obj/item/reagent_containers/food/snacks/grown/banana/banana = I
@@ -129,4 +129,4 @@
icon_state = initial(icon_state)
/obj/vehicle/sealed/car/clowncar/proc/StopDroppingOil()
- droppingoil = FALSE
\ No newline at end of file
+ droppingoil = FALSE
diff --git a/code/modules/vending/assist.dm b/code/modules/vending/assist.dm
index 25dbee66bc..92e40bc3a8 100644
--- a/code/modules/vending/assist.dm
+++ b/code/modules/vending/assist.dm
@@ -14,14 +14,15 @@
/obj/item/stock_parts/cell/upgraded = 2)
premium = list(/obj/item/stock_parts/cell/upgraded/plus = 2,
/obj/item/flashlight/lantern = 2,
- /obj/item/beacon = 2)
+ /obj/item/beacon = 2,
+ /obj/item/airlock_painter/decal = 5)
product_ads = "Only the finest!;Have some tools.;The most robust equipment.;The finest gear in space!"
armor = list("melee" = 100, "bullet" = 100, "laser" = 100, "energy" = 100, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 100, "acid" = 50)
refill_canister = /obj/item/vending_refill/assist
resistance_flags = FIRE_PROOF
- default_price = 50
- extra_price = 100
+ default_price = PRICE_REALLY_CHEAP
+ extra_price = PRICE_ALMOST_CHEAP
payment_department = NO_FREEBIES
/obj/item/vending_refill/assist
- icon_state = "refill_engi"
\ No newline at end of file
+ icon_state = "refill_engi"
diff --git a/code/modules/vending/autodrobe.dm b/code/modules/vending/autodrobe.dm
index 216b95145d..9dfb4c76a0 100644
--- a/code/modules/vending/autodrobe.dm
+++ b/code/modules/vending/autodrobe.dm
@@ -139,8 +139,8 @@
/obj/item/clothing/under/costume/drfreeze = 1)
refill_canister = /obj/item/vending_refill/autodrobe
- default_price = 180
- extra_price = 360
+ default_price = PRICE_ALMOST_CHEAP
+ extra_price = PRICE_ALMOST_EXPENSIVE
payment_department = ACCOUNT_SRV
/obj/machinery/vending/autodrobe/Initialize()
diff --git a/code/modules/vending/boozeomat.dm b/code/modules/vending/boozeomat.dm
index e24813c2e9..97efbecb77 100644
--- a/code/modules/vending/boozeomat.dm
+++ b/code/modules/vending/boozeomat.dm
@@ -40,8 +40,8 @@
product_slogans = "I hope nobody asks me for a bloody cup o' tea...;Alcohol is humanity's friend. Would you abandon a friend?;Quite delighted to serve you!;Is nobody thirsty on this station?"
product_ads = "Drink up!;Booze is good for you!;Alcohol is humanity's best friend.;Quite delighted to serve you!;Care for a nice, cold beer?;Nothing cures you like booze!;Have a sip!;Have a drink!;Have a beer!;Beer is good for you!;Only the finest alcohol!;Best quality booze since 2053!;Award-winning wine!;Maximum alcohol!;Man loves beer.;A toast for progress!"
refill_canister = /obj/item/vending_refill/boozeomat
- default_price = 120
- extra_price = 100
+ default_price = PRICE_ALMOST_CHEAP
+ extra_price = PRICE_EXPENSIVE
payment_department = ACCOUNT_SRV
cost_multiplier_per_dept = list(ACCOUNT_SRV = 0)
diff --git a/code/modules/vending/cartridge.dm b/code/modules/vending/cartridge.dm
index 79380ca1f3..beaf6bb873 100644
--- a/code/modules/vending/cartridge.dm
+++ b/code/modules/vending/cartridge.dm
@@ -10,16 +10,19 @@
/obj/item/cartridge/security = 10,
/obj/item/cartridge/janitor = 10,
/obj/item/cartridge/signal/toxins = 10,
- /obj/item/pda/heads = 10,
- /obj/item/cartridge/captain = 3,
- /obj/item/cartridge/quartermaster = 10)
+ /obj/item/pda/heads = 10)
+ premium = list(/obj/item/cartridge/captain = 2,
+ /obj/item/cartridge/quartermaster = 2)
armor = list("melee" = 100, "bullet" = 100, "laser" = 100, "energy" = 100, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 100, "acid" = 50)
refill_canister = /obj/item/vending_refill/cart
resistance_flags = FIRE_PROOF
- default_price = 250
- extra_price = 500
+ default_price = PRICE_ALMOST_EXPENSIVE
+ extra_price = PRICE_ALMOST_ONE_GRAND
payment_department = ACCOUNT_SRV
- cost_multiplier_per_dept = list(ACCOUNT_SRV = 0)
+
+/obj/machinery/vending/cart/Initialize()
+ . = ..()
+ cost_multiplier_per_dept = list("[ACCESS_CHANGE_IDS]" = 0)
/obj/item/vending_refill/cart
icon_state = "refill_pda"
diff --git a/code/modules/vending/cigarette.dm b/code/modules/vending/cigarette.dm
index 6f535b2c6d..0f26abde1d 100644
--- a/code/modules/vending/cigarette.dm
+++ b/code/modules/vending/cigarette.dm
@@ -20,8 +20,8 @@
/obj/item/storage/fancy/cigarettes/cigars/havana = 1,
/obj/item/storage/fancy/cigarettes/cigars/cohiba = 1)
refill_canister = /obj/item/vending_refill/cigarette
- default_price = 75
- extra_price = 250
+ default_price = PRICE_ALMOST_CHEAP
+ extra_price = PRICE_ABOVE_NORMAL
payment_department = ACCOUNT_SRV
/obj/machinery/vending/cigarette/syndicate
diff --git a/code/modules/vending/clothesmate.dm b/code/modules/vending/clothesmate.dm
index 2155d0fe8b..963fff9368 100644
--- a/code/modules/vending/clothesmate.dm
+++ b/code/modules/vending/clothesmate.dm
@@ -173,8 +173,8 @@
/obj/item/clothing/suit/jacket/letterman_nanotrasen = 5,
/obj/item/clothing/suit/hooded/wintercoat/polychromic = 5)
refill_canister = /obj/item/vending_refill/clothing
- default_price = 60
- extra_price = 120
+ default_price = PRICE_CHEAP
+ extra_price = PRICE_BELOW_NORMAL
payment_department = NO_FREEBIES
/obj/machinery/vending/clothing/canLoadItem(obj/item/I,mob/user)
diff --git a/code/modules/vending/coffee.dm b/code/modules/vending/coffee.dm
index f4a8b2503e..ab64756868 100644
--- a/code/modules/vending/coffee.dm
+++ b/code/modules/vending/coffee.dm
@@ -8,14 +8,13 @@
/obj/item/reagent_containers/food/drinks/mug/tea = 25,
/obj/item/reagent_containers/food/drinks/mug/coco = 25)
contraband = list(/obj/item/reagent_containers/food/drinks/ice = 12)
- premium = list(/obj/item/reagent_containers/food/snacks/chocolatebar = 3,
- /obj/item/reagent_containers/food/condiment/milk = 2,
+ premium = list(/obj/item/reagent_containers/food/condiment/milk = 2,
/obj/item/reagent_containers/food/drinks/bottle/cream = 2,
/obj/item/reagent_containers/food/condiment/sugar = 1)
refill_canister = /obj/item/vending_refill/coffee
- default_price = 45
- extra_price = 150
+ default_price = PRICE_REALLY_CHEAP
+ extra_price = PRICE_PRETTY_CHEAP
payment_department = ACCOUNT_SRV
/obj/item/vending_refill/coffee
diff --git a/code/modules/vending/cola.dm b/code/modules/vending/cola.dm
index 5bbd0c3d02..b667f4c7c9 100644
--- a/code/modules/vending/cola.dm
+++ b/code/modules/vending/cola.dm
@@ -21,8 +21,8 @@
/obj/item/reagent_containers/food/drinks/soda_cans/grey_bull = 1,
/obj/item/reagent_containers/food/drinks/soda_cans/monkey_energy = 1)
refill_canister = /obj/item/vending_refill/cola
- default_price = 45
- extra_price = 200
+ default_price = PRICE_CHEAP_AS_FREE
+ extra_price = PRICE_ABOVE_NORMAL
payment_department = ACCOUNT_SRV
/obj/item/vending_refill/cola
diff --git a/code/modules/vending/dinnerware.dm b/code/modules/vending/dinnerware.dm
index 521e76b5e2..b78af9c46b 100644
--- a/code/modules/vending/dinnerware.dm
+++ b/code/modules/vending/dinnerware.dm
@@ -27,8 +27,8 @@
armor = list("melee" = 100, "bullet" = 100, "laser" = 100, "energy" = 100, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 100, "acid" = 50)
refill_canister = /obj/item/vending_refill/dinnerware
resistance_flags = FIRE_PROOF
- default_price = 50
- extra_price = 250
+ default_price = PRICE_REALLY_CHEAP
+ extra_price = PRICE_ALMOST_EXPENSIVE
payment_department = ACCOUNT_SRV
cost_multiplier_per_dept = list(ACCOUNT_SRV = 0)
diff --git a/code/modules/vending/engineering.dm b/code/modules/vending/engineering.dm
index 36bacd4259..ef4edd6b67 100644
--- a/code/modules/vending/engineering.dm
+++ b/code/modules/vending/engineering.dm
@@ -28,7 +28,7 @@
/obj/item/stock_parts/manipulator = 5)
armor = list("melee" = 100, "bullet" = 100, "laser" = 100, "energy" = 100, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 100, "acid" = 50)
resistance_flags = FIRE_PROOF
- default_price = 450
- extra_price = 500
+ default_price = PRICE_NORMAL
+ extra_price = PRICE_NORMAL
payment_department = ACCOUNT_ENG
cost_multiplier_per_dept = list(ACCOUNT_ENG = 0)
diff --git a/code/modules/vending/engivend.dm b/code/modules/vending/engivend.dm
index ca45483ff5..50e0fb9cde 100644
--- a/code/modules/vending/engivend.dm
+++ b/code/modules/vending/engivend.dm
@@ -15,6 +15,7 @@
/obj/item/electronics/airalarm = 10,
/obj/item/electronics/firealarm = 10,
/obj/item/electronics/firelock = 10,
+ /obj/item/airlock_painter/decal = 5,
/obj/item/rcd_ammo = 3
)
contraband = list(/obj/item/stock_parts/cell/potato = 3,
@@ -29,10 +30,10 @@
armor = list("melee" = 100, "bullet" = 100, "laser" = 100, "energy" = 100, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 100, "acid" = 50)
refill_canister = /obj/item/vending_refill/engivend
resistance_flags = FIRE_PROOF
- default_price = 450
- extra_price = 500
+ default_price = PRICE_ALMOST_EXPENSIVE
+ extra_price = PRICE_ABOVE_EXPENSIVE
payment_department = ACCOUNT_ENG
cost_multiplier_per_dept = list(ACCOUNT_ENG = 0)
/obj/item/vending_refill/engivend
- icon_state = "refill_engi"
\ No newline at end of file
+ icon_state = "refill_engi"
diff --git a/code/modules/vending/games.dm b/code/modules/vending/games.dm
index 641e52dd13..7bed27b0bd 100644
--- a/code/modules/vending/games.dm
+++ b/code/modules/vending/games.dm
@@ -12,8 +12,8 @@
premium = list(/obj/item/melee/skateboard/pro = 3,
/obj/item/melee/skateboard/hoverboard = 1)
refill_canister = /obj/item/vending_refill/games
- default_price = 50
- extra_price = 250
+ default_price = PRICE_CHEAP
+ extra_price = PRICE_ALMOST_EXPENSIVE
payment_department = ACCOUNT_SRV
cost_multiplier_per_dept = list(ACCOUNT_SRV = 0)
diff --git a/code/modules/vending/kinkmate.dm b/code/modules/vending/kinkmate.dm
index 37f4e380ce..24fb685eac 100644
--- a/code/modules/vending/kinkmate.dm
+++ b/code/modules/vending/kinkmate.dm
@@ -20,7 +20,11 @@
/obj/item/clothing/under/misc/gear_harness = 10,
/obj/item/dildo/custom = 5,
/obj/item/electropack/shockcollar = 3,
- /obj/item/assembly/signaler = 3
+ /obj/item/assembly/signaler = 3,
+ /obj/item/clothing/under/shorts/polychromic/pantsu,
+ /obj/item/clothing/under/misc/poly_bottomless,
+ /obj/item/clothing/under/misc/poly_tanktop,
+ /obj/item/clothing/under/misc/poly_tanktop/female
)
contraband = list(
/obj/item/clothing/neck/petcollar/locked = 2,
@@ -40,8 +44,8 @@
/obj/item/clothing/under/pants/chaps = 5
)
refill_canister = /obj/item/vending_refill/kink
- default_price = 80
- extra_price = 250
+ default_price = PRICE_CHEAP
+ extra_price = PRICE_BELOW_NORMAL
payment_department = NO_FREEBIES
/obj/item/vending_refill/kink
diff --git a/code/modules/vending/liberation.dm b/code/modules/vending/liberation.dm
index c75d313c52..81afab3a70 100644
--- a/code/modules/vending/liberation.dm
+++ b/code/modules/vending/liberation.dm
@@ -28,6 +28,6 @@
/obj/item/reagent_containers/food/snacks/burger/superbite = 3) //U S A
armor = list("melee" = 100, "bullet" = 100, "laser" = 100, "energy" = 100, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 100, "acid" = 50)
resistance_flags = FIRE_PROOF
- default_price = 150
- extra_price = 500
+ default_price = PRICE_ABOVE_NORMAL
+ extra_price = PRICE_ABOVE_EXPENSIVE
payment_department = ACCOUNT_SEC
diff --git a/code/modules/vending/liberation_toy.dm b/code/modules/vending/liberation_toy.dm
index 8ed4cd85ae..1ce0b6cfaf 100644
--- a/code/modules/vending/liberation_toy.dm
+++ b/code/modules/vending/liberation_toy.dm
@@ -25,8 +25,8 @@
armor = list("melee" = 100, "bullet" = 100, "laser" = 100, "energy" = 100, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 100, "acid" = 50)
resistance_flags = FIRE_PROOF
refill_canister = /obj/item/vending_refill/donksoft
- default_price = 150
- extra_price = 300
+ default_price = PRICE_ABOVE_NORMAL
+ extra_price = PRICE_EXPENSIVE
payment_department = NO_FREEBIES
/obj/machinery/vending/toyliberationstation/Initialize()
diff --git a/code/modules/vending/magivend.dm b/code/modules/vending/magivend.dm
index 525b9f1af2..9dcd77e4ab 100644
--- a/code/modules/vending/magivend.dm
+++ b/code/modules/vending/magivend.dm
@@ -16,6 +16,6 @@
contraband = list(/obj/item/reagent_containers/glass/bottle/wizarditis = 1) //No one can get to the machine to hack it anyways; for the lulz - Microwave
armor = list("melee" = 100, "bullet" = 100, "laser" = 100, "energy" = 100, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 100, "acid" = 50, "magic" = 100)
resistance_flags = FIRE_PROOF
- default_price = 250
- extra_price = 500
+ default_price = PRICE_EXPENSIVE
+ extra_price = PRICE_ABOVE_EXPENSIVE
payment_department = ACCOUNT_SRV
diff --git a/code/modules/vending/medical.dm b/code/modules/vending/medical.dm
index 797fdabce7..fbd9a10bf2 100644
--- a/code/modules/vending/medical.dm
+++ b/code/modules/vending/medical.dm
@@ -46,8 +46,8 @@
armor = list("melee" = 100, "bullet" = 100, "laser" = 100, "energy" = 100, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 100, "acid" = 50)
resistance_flags = FIRE_PROOF
refill_canister = /obj/item/vending_refill/medical
- default_price = 200
- extra_price = 250
+ default_price = PRICE_ALMOST_CHEAP
+ extra_price = PRICE_ABOVE_NORMAL
payment_department = ACCOUNT_MED
cost_multiplier_per_dept = list(ACCOUNT_MED = 0)
diff --git a/code/modules/vending/medical_wall.dm b/code/modules/vending/medical_wall.dm
index b51705c7e1..694d2b0c34 100644
--- a/code/modules/vending/medical_wall.dm
+++ b/code/modules/vending/medical_wall.dm
@@ -18,8 +18,8 @@
armor = list("melee" = 100, "bullet" = 100, "laser" = 100, "energy" = 100, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 100, "acid" = 50)
resistance_flags = FIRE_PROOF
refill_canister = /obj/item/vending_refill/wallmed
- default_price = 0
- extra_price = 100
+ default_price = PRICE_FREE
+ extra_price = PRICE_NORMAL
payment_department = ACCOUNT_MED
cost_multiplier_per_dept = list(ACCOUNT_MED = 0)
diff --git a/code/modules/vending/megaseed.dm b/code/modules/vending/megaseed.dm
index df1e5eaba8..2eb68aaf4a 100644
--- a/code/modules/vending/megaseed.dm
+++ b/code/modules/vending/megaseed.dm
@@ -58,8 +58,8 @@
armor = list("melee" = 100, "bullet" = 100, "laser" = 100, "energy" = 100, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 100, "acid" = 50)
refill_canister = /obj/item/vending_refill/hydroseeds
resistance_flags = FIRE_PROOF
- default_price = 100
- extra_price = 350
+ default_price = PRICE_ALMOST_CHEAP
+ extra_price = PRICE_NORMAL
payment_department = ACCOUNT_SRV
cost_multiplier_per_dept = list(ACCOUNT_SRV = 0)
diff --git a/code/modules/vending/nutrimax.dm b/code/modules/vending/nutrimax.dm
index 95ba4e23e8..40ca06b78b 100644
--- a/code/modules/vending/nutrimax.dm
+++ b/code/modules/vending/nutrimax.dm
@@ -19,8 +19,8 @@
armor = list("melee" = 100, "bullet" = 100, "laser" = 100, "energy" = 100, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 100, "acid" = 50)
refill_canister = /obj/item/vending_refill/hydronutrients
resistance_flags = FIRE_PROOF
- default_price = 100
- extra_price = 250
+ default_price = PRICE_REALLY_CHEAP
+ extra_price = PRICE_CHEAP
payment_department = ACCOUNT_SRV
cost_multiplier_per_dept = list(ACCOUNT_SRV = 0)
diff --git a/code/modules/vending/plasmaresearch.dm b/code/modules/vending/plasmaresearch.dm
index 410154fa20..bb16570ab3 100644
--- a/code/modules/vending/plasmaresearch.dm
+++ b/code/modules/vending/plasmaresearch.dm
@@ -11,7 +11,7 @@
/obj/item/assembly/prox_sensor = 6,
/obj/item/assembly/igniter = 6)
contraband = list(/obj/item/assembly/health = 3)
- default_price = 400
- extra_price = 600
+ default_price = PRICE_EXPENSIVE
+ extra_price = PRICE_REALLY_EXPENSIVE
payment_department = ACCOUNT_SCI
cost_multiplier_per_dept = list(ACCOUNT_SCI = 0)
diff --git a/code/modules/vending/robotics.dm b/code/modules/vending/robotics.dm
index 3ad7134498..88f65506a6 100644
--- a/code/modules/vending/robotics.dm
+++ b/code/modules/vending/robotics.dm
@@ -20,6 +20,6 @@
/obj/item/crowbar = 5)
armor = list("melee" = 100, "bullet" = 100, "laser" = 100, "energy" = 100, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 100, "acid" = 50)
resistance_flags = FIRE_PROOF
- default_price = 600
+ default_price = PRICE_EXPENSIVE
payment_department = ACCOUNT_SCI
cost_multiplier_per_dept = list(ACCOUNT_SCI = 0)
diff --git a/code/modules/vending/security.dm b/code/modules/vending/security.dm
index 284e957864..43f3a96d3d 100644
--- a/code/modules/vending/security.dm
+++ b/code/modules/vending/security.dm
@@ -15,18 +15,20 @@
/obj/item/secbat = 5)
contraband = list(/obj/item/clothing/glasses/sunglasses = 2,
/obj/item/storage/fancy/donut_box = 2,
- /obj/item/ssword_kit = 1)
+ /obj/item/ssword_kit = 1,
+ /obj/item/storage/bag/ammo = 1)
premium = list(/obj/item/coin/antagtoken = 1,
/obj/item/clothing/head/helmet/blueshirt = 1,
/obj/item/clothing/suit/armor/vest/blueshirt = 1,
/obj/item/clothing/under/rank/security/officer/blueshirt = 1,
/obj/item/clothing/gloves/tackler = 5,
- /obj/item/ssword_kit = 1)
+ /obj/item/ssword_kit = 1,
+ /obj/item/storage/bag/ammo = 2)
armor = list("melee" = 100, "bullet" = 100, "laser" = 100, "energy" = 100, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 100, "acid" = 50)
resistance_flags = FIRE_PROOF
refill_canister = /obj/item/vending_refill/security
- default_price = 650
- extra_price = 700
+ default_price = PRICE_ALMOST_EXPENSIVE
+ extra_price = PRICE_REALLY_EXPENSIVE
payment_department = ACCOUNT_SEC
cost_multiplier_per_dept = list(ACCOUNT_SEC = 0)
diff --git a/code/modules/vending/snack.dm b/code/modules/vending/snack.dm
index e051d6135b..7aef2b627c 100644
--- a/code/modules/vending/snack.dm
+++ b/code/modules/vending/snack.dm
@@ -27,8 +27,8 @@
refill_canister = /obj/item/vending_refill/snack
canload_access_list = list(ACCESS_KITCHEN)
- default_price = 60
- extra_price = 160
+ default_price = PRICE_REALLY_CHEAP
+ extra_price = PRICE_ALMOST_CHEAP
payment_department = ACCOUNT_SRV
cost_multiplier_per_dept = list(ACCOUNT_SRV = 0)
input_display_header = "Chef's Food Selection"
diff --git a/code/modules/vending/sovietsoda.dm b/code/modules/vending/sovietsoda.dm
index d820794660..88aba484e1 100644
--- a/code/modules/vending/sovietsoda.dm
+++ b/code/modules/vending/sovietsoda.dm
@@ -7,6 +7,6 @@
contraband = list(/obj/item/reagent_containers/food/drinks/drinkingglass/filled/cola = 20)
armor = list("melee" = 100, "bullet" = 100, "laser" = 100, "energy" = 100, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 100, "acid" = 50)
resistance_flags = FIRE_PROOF
- default_price = 1
- extra_price = 1
+ default_price = PRICE_FREE
+ extra_price = PRICE_FREE
payment_department = NO_FREEBIES
diff --git a/code/modules/vending/sovietvend.dm b/code/modules/vending/sovietvend.dm
index daf64d5f3e..71547e6198 100644
--- a/code/modules/vending/sovietvend.dm
+++ b/code/modules/vending/sovietvend.dm
@@ -23,8 +23,8 @@
premium = list()
refill_canister = /obj/item/vending_refill/soviet
- default_price = 1
- extra_price = 1
+ default_price = PRICE_FREE
+ extra_price = PRICE_FREE
payment_department = NO_FREEBIES
/obj/item/vending_refill/soviet
diff --git a/code/modules/vending/sustenance.dm b/code/modules/vending/sustenance.dm
index 55e6b02e8e..2dcc1e99f7 100644
--- a/code/modules/vending/sustenance.dm
+++ b/code/modules/vending/sustenance.dm
@@ -5,7 +5,7 @@
product_ads = "Sufficiently healthy.;Efficiently produced tofu!;Mmm! So good!;Have a meal.;You need food to live!;Have some more candy corn!;Try our new ice cups!"
icon_state = "sustenance"
products = list(/obj/item/reagent_containers/food/snacks/tofu = 24,
- /obj/item/reagent_containers/food/drinks/ice = 12,
+ /obj/item/reagent_containers/food/drinks/ice/sustanance = 12,
/obj/item/reagent_containers/food/snacks/candy_corn = 6)
contraband = list(/obj/item/kitchen/knife = 6,
/obj/item/reagent_containers/food/drinks/coffee = 12,
@@ -14,8 +14,8 @@
armor = list("melee" = 100, "bullet" = 100, "laser" = 100, "energy" = 100, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 100, "acid" = 50)
refill_canister = /obj/item/vending_refill/sustenance
resistance_flags = FIRE_PROOF
- default_price = 0
- extra_price = 0
+ default_price = PRICE_FREE
+ extra_price = PRICE_FREE
payment_department = NO_FREEBIES
/obj/item/vending_refill/sustenance
diff --git a/code/modules/vending/toys.dm b/code/modules/vending/toys.dm
index a00dd17a9c..d628c888a5 100644
--- a/code/modules/vending/toys.dm
+++ b/code/modules/vending/toys.dm
@@ -25,8 +25,8 @@
armor = list("melee" = 100, "bullet" = 100, "laser" = 100, "energy" = 100, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 100, "acid" = 50)
resistance_flags = FIRE_PROOF
refill_canister = /obj/item/vending_refill/donksoft
- default_price = 150
- extra_price = 300
+ default_price = PRICE_ABOVE_NORMAL
+ extra_price = PRICE_EXPENSIVE
payment_department = ACCOUNT_SRV
/obj/item/vending_refill/donksoft
diff --git a/code/modules/vending/wardrobes.dm b/code/modules/vending/wardrobes.dm
index 41fa9a99f8..76ef5e6f23 100644
--- a/code/modules/vending/wardrobes.dm
+++ b/code/modules/vending/wardrobes.dm
@@ -2,8 +2,8 @@
icon_state = "refill_clothes"
/obj/machinery/vending/wardrobe
- default_price = 350
- extra_price = 400
+ default_price = PRICE_NORMAL
+ extra_price = PRICE_EXPENSIVE
payment_department = NO_FREEBIES
input_display_header = "Returned Clothing"
@@ -33,6 +33,8 @@
refill_canister = /obj/item/vending_refill/wardrobe/sec_wardrobe
payment_department = ACCOUNT_SEC
cost_multiplier_per_dept = list(ACCOUNT_SEC = 0)
+ default_price = PRICE_ABOVE_NORMAL
+ extra_price = PRICE_EXPENSIVE
/obj/item/vending_refill/wardrobe/sec_wardrobe
machine_name = "SecDrobe"
@@ -480,6 +482,8 @@
/obj/item/clothing/gloves/color/captain = 1)
refill_canister = /obj/item/vending_refill/wardrobe/cap_wardrobe
payment_department = ACCOUNT_CIV
+ default_price = PRICE_ALMOST_EXPENSIVE
+ extra_price = PRICE_ABOVE_EXPENSIVE
/obj/machinery/vending/wardrobe/cap_wardrobe/Initialize()
. = ..()
diff --git a/code/modules/vending/youtool.dm b/code/modules/vending/youtool.dm
index 6b38ec0b9d..c936d9c32c 100644
--- a/code/modules/vending/youtool.dm
+++ b/code/modules/vending/youtool.dm
@@ -18,14 +18,15 @@
/obj/item/clothing/gloves/color/fyellow = 4,
/obj/item/multitool = 2)
premium = list(/obj/item/clothing/gloves/color/yellow = 2,
- /obj/item/weldingtool/hugetank = 2)
+ /obj/item/weldingtool/hugetank = 2,
+ /obj/item/airlock_painter/decal = 3)
armor = list("melee" = 100, "bullet" = 100, "laser" = 100, "energy" = 100, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 100, "acid" = 70)
refill_canister = /obj/item/vending_refill/tool
resistance_flags = FIRE_PROOF
- default_price = 50
- extra_price = 300
+ default_price = PRICE_REALLY_CHEAP
+ extra_price = PRICE_EXPENSIVE
payment_department = ACCOUNT_ENG
cost_multiplier_per_dept = list(ACCOUNT_ENG = 0)
/obj/item/vending_refill/tool
- icon_state = "refill_engi"
\ No newline at end of file
+ icon_state = "refill_engi"
diff --git a/config/game_options.txt b/config/game_options.txt
index f65c1bfff5..405ec0405a 100644
--- a/config/game_options.txt
+++ b/config/game_options.txt
@@ -603,6 +603,9 @@ NIGHTSHIFT_TOGGLE_PUBLIC_REQUIRES_AUTH
## A cap on how many monkeys may be created via monkey cubes
MONKEYCAP 64
+## A cap on how many mice can be bred via cheese wedges
+RATCAP 64
+
## Enable the capitalist agenda on your server.
ECONOMY
diff --git a/config/plushies/defines.txt b/config/plushies/defines.txt
index e69de29bb2..7cd1d88f3e 100644
--- a/config/plushies/defines.txt
+++ b/config/plushies/defines.txt
@@ -0,0 +1,2 @@
+# EXAMPLE
+# SNOWFLAKE_PLUSHIES example {"name":"example","desc":"thanks, coders.","icon_state":"","attack_verb":["thumped","whomped","bumped"],"squeak_override":{"sound/weapons/magout.ogg":1}}
diff --git a/config/plushies/plushie_config.txt b/config/plushies/plushie_config.txt
deleted file mode 100644
index 7cd1d88f3e..0000000000
--- a/config/plushies/plushie_config.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-# EXAMPLE
-# SNOWFLAKE_PLUSHIES example {"name":"example","desc":"thanks, coders.","icon_state":"","attack_verb":["thumped","whomped","bumped"],"squeak_override":{"sound/weapons/magout.ogg":1}}
diff --git a/html/changelog.html b/html/changelog.html
index 2f03aa2815..ce00531001 100644
--- a/html/changelog.html
+++ b/html/changelog.html
@@ -50,6 +50,123 @@
-->
+
15 June 2020
+
Anturk, kevinz000 updated:
+
+ - VV now properly allows access to datums in associative lists
+ - SDQL2 printout has been upgraded for the 5th time.
+
+
kevinz000 updated:
+
+ - plushies now work. credits to timothytea.
+ - You can now tape knives to cleanbots
+
+
kevinz000 (port from VOREStation) updated:
+
+ - Ported zoomba skins for cyborgs.
+
+
+
14 June 2020
+
Bhijn updated:
+
+ - raw HTML can no longer be used in flavortext
+ - Added Lesbian Visibility Day (April 26th)
+ - Added Bisexual Visibility Day (September 23rd)
+ - Added Coming Out Day! (October 11th)
+ - Added Intersex Awareness Day (October 26th)
+ - Added Transgender Awareness Week (November 13th - 19th)
+ - Added the Transgender Day of Remembrance (November 20th)
+ - Added Asexual Awareness Week (Last full week of October, this year it'll be Oct. 25-31)
+ - Added the Stonewall Riot Anniversary (June 28)
+ - Moth week is now *actually* the last full week of July, instead of the 4th of every weekday + the 5th Sunday.
+
+
Floof Ball / Kathrin Morrison / Floof Ball#0798 updated:
+
+ - Improvised Pistol + 32 ACP ammo.
+ - Improvised Energy Gun. Fires 5 shots of 10 burn damage each. Can be upgraded with a lens made from glassworking and T4 parts for a minor buff.
+ - Ammo + gun part loot spawners for mappers.
+ - New sprites for Improvised Rifle, the ability to sling the rifle and a sprite for that.
+ - New sprites for the Improvised Shotgun and its sling sprite.
+ - Improvised shotguns are now two-handed only.
+ - Improvised shotguns now only have a much less harsh 0.9* modifier, keeping them two hits to crit with slugs and buckshot. It can no longer be dual-wielded but can still be sawn off for w_class medium (can fit in backpacks).
+ - Missing handsaw icons added in.
+ - Crafting table cleaned up into sections.
+
+
Ghommie updated:
+
+ - changed the weak attack message prefix from "inefficiently" to "limply", "feebly" and "saplessly" and lowered the threshold.
+ - Fixing old beserker hardsuits having the wrong helmet type.
+
+
The0bserver and Stewydeadmike updated:
+
+ - Hey, there's a bit of dust in this recipe book! Recipes using peas? How many recipes does this book even have?
+ - Adds 6 new food items, and 1 new consumable reagent using all forms of the recently discovered peas. Ask your local botanist and chef for them today!
+
+
YakumoChen updated:
+
+ - Adds polychrome options to loadout
+ - Adds risque polychrome options to Kinkmate vendors
+
+
kevinz000 updated:
+
+ - emissive blockers can no longer be radioactive.
+ - Ghosts can now scan air inside most objects that contain air by clicking on them.
+ - Directional blocking has been added, keybound to G. This will reduce a portion of incoming damage if done with eligible items at the cost of stamina damage incurred to the user based on damage blocked as well as while active, as well as in most cases preventing the user from doing any attacks while this is active.
+ - Parrying has been added, keybound to F. Timing-based counterattacks, effect heavily dependent on the item, WIP.
+ - Disks are now smaller.
+
+
+
12 June 2020
+
EmeraldSundisk updated:
+
+ - The Detective's Office has been commandeered in order to serve a Head of Security. Detectives will find their new office within starboard maintenance.
+ - Adds the Head of Security's standard equipment to their new office.
+ - Slight adjustment/expansion to the main security department
+ - Additional maintenance work
+
+
timothyteakettle updated:
+
+ - Crabs, cockroaches, slimes and crabs are now small enough to fit in pet carriers
+
+
+
11 June 2020
+
Ghommie updated:
+
+ - Balanced vending machine prices to be generally more affordable, a minority has been priced up though.
+
+
+
10 June 2020
+
DeltaFire15 updated:
+
+ - Golems / simillar now inherit the neutered antag datum if the creator is neutered.
+
+
Ghommie updated:
+
+ - Fixing missing pill type buttons from the chem master UI.
+
+
Naksu updated:
+
+ - Lighting corner updates are ever so slightly faster.
+
+
Putnam for helping me code the contamination clearing on people updated:
+
+ - Lab made Zeolites have been remade anew and more affective now that they refined the best possable way to mix and make a supper Zeolite capable of clearing contamination form not only people but items!
+
+
Trilbyspaceclone updated:
+
+ - Tank Dispender has been moved into toxin storage from toxins
+
+
kevinz000 updated:
+
+ - traitor classes can now be poplocked. hijack/glorious death are now locked to 25/20 respectively.
+
+
timothyteakettle updated:
+
+ - adds a new fermichem, used for creating sentient plushies!
+ - Mice can now breed using cheese wedges
+ - Royal cheese can be crafted to convert a mouse into king rat
+
+
09 June 2020
Anonymous updated:
diff --git a/html/changelogs/.all_changelog.yml b/html/changelogs/.all_changelog.yml
index abd5de1785..a25fb6595c 100644
--- a/html/changelogs/.all_changelog.yml
+++ b/html/changelogs/.all_changelog.yml
@@ -25863,3 +25863,99 @@ DO NOT EDIT THIS FILE BY HAND! AUTOMATICALLY GENERATED BY ss13_genchangelog.py.
kevinz000:
- balance: plantpeople should stop dying in the halls now
- rscadd: Modifier-independent hotkey bindings have been added.
+2020-06-10:
+ DeltaFire15:
+ - bugfix: Golems / simillar now inherit the neutered antag datum if the creator
+ is neutered.
+ Ghommie:
+ - bugfix: Fixing missing pill type buttons from the chem master UI.
+ Naksu:
+ - code_imp: Lighting corner updates are ever so slightly faster.
+ Putnam for helping me code the contamination clearing on people:
+ - rscadd: Lab made Zeolites have been remade anew and more affective now that they
+ refined the best possable way to mix and make a supper Zeolite capable of clearing
+ contamination form not only people but items!
+ Trilbyspaceclone:
+ - tweak: Tank Dispender has been moved into toxin storage from toxins
+ kevinz000:
+ - rscadd: traitor classes can now be poplocked. hijack/glorious death are now locked
+ to 25/20 respectively.
+ timothyteakettle:
+ - rscadd: adds a new fermichem, used for creating sentient plushies!
+ - rscadd: Mice can now breed using cheese wedges
+ - rscadd: Royal cheese can be crafted to convert a mouse into king rat
+2020-06-11:
+ Ghommie:
+ - balance: Balanced vending machine prices to be generally more affordable, a minority
+ has been priced up though.
+2020-06-12:
+ EmeraldSundisk:
+ - tweak: The Detective's Office has been commandeered in order to serve a Head of
+ Security. Detectives will find their new office within starboard maintenance.
+ - rscadd: Adds the Head of Security's standard equipment to their new office.
+ - tweak: Slight adjustment/expansion to the main security department
+ - rscadd: Additional maintenance work
+ timothyteakettle:
+ - rscadd: Crabs, cockroaches, slimes and crabs are now small enough to fit in pet
+ carriers
+2020-06-14:
+ Bhijn:
+ - bugfix: raw HTML can no longer be used in flavortext
+ - rscadd: Added Lesbian Visibility Day (April 26th)
+ - rscadd: Added Bisexual Visibility Day (September 23rd)
+ - rscadd: Added Coming Out Day! (October 11th)
+ - rscadd: Added Intersex Awareness Day (October 26th)
+ - rscadd: Added Transgender Awareness Week (November 13th - 19th)
+ - rscadd: Added the Transgender Day of Remembrance (November 20th)
+ - rscadd: Added Asexual Awareness Week (Last full week of October, this year it'll
+ be Oct. 25-31)
+ - rscadd: Added the Stonewall Riot Anniversary (June 28)
+ - bugfix: Moth week is now *actually* the last full week of July, instead of the
+ 4th of every weekday + the 5th Sunday.
+ Floof Ball / Kathrin Morrison / Floof Ball#0798:
+ - rscadd: Improvised Pistol + 32 ACP ammo.
+ - rscadd: Improvised Energy Gun. Fires 5 shots of 10 burn damage each. Can be upgraded
+ with a lens made from glassworking and T4 parts for a minor buff.
+ - rscadd: Ammo + gun part loot spawners for mappers.
+ - rscadd: New sprites for Improvised Rifle, the ability to sling the rifle and a
+ sprite for that.
+ - rscadd: New sprites for the Improvised Shotgun and its sling sprite.
+ - balance: Improvised shotguns are now two-handed only.
+ - balance: Improvised shotguns now only have a much less harsh 0.9* modifier, keeping
+ them two hits to crit with slugs and buckshot. It can no longer be dual-wielded
+ but can still be sawn off for w_class medium (can fit in backpacks).
+ - bugfix: Missing handsaw icons added in.
+ - tweak: Crafting table cleaned up into sections.
+ Ghommie:
+ - tweak: changed the weak attack message prefix from "inefficiently" to "limply",
+ "feebly" and "saplessly" and lowered the threshold.
+ - bugfix: Fixing old beserker hardsuits having the wrong helmet type.
+ The0bserver and Stewydeadmike:
+ - rscadd: Hey, there's a bit of dust in this recipe book! Recipes using peas? How
+ many recipes does this book even have?
+ - rscadd: Adds 6 new food items, and 1 new consumable reagent using all forms of
+ the recently discovered peas. Ask your local botanist and chef for them today!
+ YakumoChen:
+ - tweak: Adds polychrome options to loadout
+ - tweak: Adds risque polychrome options to Kinkmate vendors
+ kevinz000:
+ - bugfix: emissive blockers can no longer be radioactive.
+ - rscadd: Ghosts can now scan air inside most objects that contain air by clicking
+ on them.
+ - rscadd: Directional blocking has been added, keybound to G. This will reduce a
+ portion of incoming damage if done with eligible items at the cost of stamina
+ damage incurred to the user based on damage blocked as well as while active,
+ as well as in most cases preventing the user from doing any attacks while this
+ is active.
+ - rscadd: Parrying has been added, keybound to F. Timing-based counterattacks, effect
+ heavily dependent on the item, WIP.
+ - balance: Disks are now smaller.
+2020-06-15:
+ Anturk, kevinz000:
+ - bugfix: VV now properly allows access to datums in associative lists
+ - rscadd: SDQL2 printout has been upgraded for the 5th time.
+ kevinz000:
+ - bugfix: plushies now work. credits to timothytea.
+ - rscadd: You can now tape knives to cleanbots
+ kevinz000 (port from VOREStation):
+ - imageadd: Ported zoomba skins for cyborgs.
diff --git a/html/changelogs/AutoChangeLog-pr-12375.yml b/html/changelogs/AutoChangeLog-pr-12375.yml
new file mode 100644
index 0000000000..9d9b79a3a6
--- /dev/null
+++ b/html/changelogs/AutoChangeLog-pr-12375.yml
@@ -0,0 +1,4 @@
+author: "Ghommie"
+delete-after: True
+changes:
+ - bugfix: "You can't blink nor use LOOC/AOOC as a petrified statue anymore."
diff --git a/html/changelogs/AutoChangeLog-pr-12393.yml b/html/changelogs/AutoChangeLog-pr-12393.yml
new file mode 100644
index 0000000000..28136bed22
--- /dev/null
+++ b/html/changelogs/AutoChangeLog-pr-12393.yml
@@ -0,0 +1,4 @@
+author: "Trilbyspaceclone"
+delete-after: True
+changes:
+ - tweak: "BEPIS decal painter has been moved to venders, replacing it being the flashdark"
diff --git a/html/changelogs/AutoChangeLog-pr-12493.yml b/html/changelogs/AutoChangeLog-pr-12493.yml
deleted file mode 100644
index 61710ce9bb..0000000000
--- a/html/changelogs/AutoChangeLog-pr-12493.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-author: "DeltaFire15"
-delete-after: True
-changes:
- - bugfix: "Golems / simillar now inherit the neutered antag datum if the creator is neutered."
diff --git a/html/changelogs/AutoChangeLog-pr-12496.yml b/html/changelogs/AutoChangeLog-pr-12496.yml
deleted file mode 100644
index 7fc967d123..0000000000
--- a/html/changelogs/AutoChangeLog-pr-12496.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-author: "Naksu"
-delete-after: True
-changes:
- - code_imp: "Lighting corner updates are ever so slightly faster."
diff --git a/html/changelogs/AutoChangeLog-pr-12509.yml b/html/changelogs/AutoChangeLog-pr-12509.yml
new file mode 100644
index 0000000000..a5e13bada0
--- /dev/null
+++ b/html/changelogs/AutoChangeLog-pr-12509.yml
@@ -0,0 +1,4 @@
+author: "timothyteakettle"
+delete-after: True
+changes:
+ - rscadd: "slimes can now change their color using alter form"
diff --git a/html/changelogs/AutoChangeLog-pr-12518.yml b/html/changelogs/AutoChangeLog-pr-12518.yml
new file mode 100644
index 0000000000..91580faf20
--- /dev/null
+++ b/html/changelogs/AutoChangeLog-pr-12518.yml
@@ -0,0 +1,5 @@
+author: "kevinz000"
+delete-after: True
+changes:
+ - refactor: "projectile ricochets now use a less hilariously terrible way of being handled and should be easier to w"
+ - bugfix: "projectile runtime/ricocheting"
diff --git a/html/changelogs/AutoChangeLog-pr-12520.yml b/html/changelogs/AutoChangeLog-pr-12520.yml
new file mode 100644
index 0000000000..22890dc4fd
--- /dev/null
+++ b/html/changelogs/AutoChangeLog-pr-12520.yml
@@ -0,0 +1,4 @@
+author: "kevinz000"
+delete-after: True
+changes:
+ - balance: "Lobotomy no longer has a 50% chance of giving you a nigh-unremovable trauma, but does 50 brain damage even on success. On failure, it will give you a lobotomy-class trauma."
diff --git a/html/changelogs/AutoChangeLog-pr-12521.yml b/html/changelogs/AutoChangeLog-pr-12521.yml
new file mode 100644
index 0000000000..1977538e26
--- /dev/null
+++ b/html/changelogs/AutoChangeLog-pr-12521.yml
@@ -0,0 +1,4 @@
+author: "kevinz000"
+delete-after: True
+changes:
+ - balance: "spinesnapping from tackling now only gives a lobotomy class trauma instead of magic."
diff --git a/html/changelogs/AutoChangeLog-pr-12523.yml b/html/changelogs/AutoChangeLog-pr-12523.yml
new file mode 100644
index 0000000000..58f1c7fe28
--- /dev/null
+++ b/html/changelogs/AutoChangeLog-pr-12523.yml
@@ -0,0 +1,4 @@
+author: "timothyteakettle"
+delete-after: True
+changes:
+ - bugfix: "Food carts now function as intended, allowing the pouring and mixing of drinks."
diff --git a/icons/effects/block_parry.dmi b/icons/effects/block_parry.dmi
new file mode 100644
index 0000000000..4a0ade5e61
Binary files /dev/null and b/icons/effects/block_parry.dmi differ
diff --git a/icons/mob/actions/actions_animal.dmi b/icons/mob/actions/actions_animal.dmi
index aefa471dd2..78eb9f5fe5 100644
Binary files a/icons/mob/actions/actions_animal.dmi and b/icons/mob/actions/actions_animal.dmi differ
diff --git a/icons/mob/clothing/back.dmi b/icons/mob/clothing/back.dmi
index d307b5b6c9..0a1372ac2b 100644
Binary files a/icons/mob/clothing/back.dmi and b/icons/mob/clothing/back.dmi differ
diff --git a/icons/mob/robots.dmi b/icons/mob/robots.dmi
index 082bfb3c3e..9bb41bf527 100644
Binary files a/icons/mob/robots.dmi and b/icons/mob/robots.dmi differ
diff --git a/icons/obj/ammo.dmi b/icons/obj/ammo.dmi
index c75afde4cc..bebb625440 100644
Binary files a/icons/obj/ammo.dmi and b/icons/obj/ammo.dmi differ
diff --git a/icons/obj/food/donut.dmi b/icons/obj/food/donut.dmi
index 395739eccc..534e0e37bc 100644
Binary files a/icons/obj/food/donut.dmi and b/icons/obj/food/donut.dmi differ
diff --git a/icons/obj/food/food.dmi b/icons/obj/food/food.dmi
index 9affc07f88..e7196190cf 100644
Binary files a/icons/obj/food/food.dmi and b/icons/obj/food/food.dmi differ
diff --git a/icons/obj/food/soupsalad.dmi b/icons/obj/food/soupsalad.dmi
index fd47e89aa8..378927e8f9 100644
Binary files a/icons/obj/food/soupsalad.dmi and b/icons/obj/food/soupsalad.dmi differ
diff --git a/icons/obj/guns/energy.dmi b/icons/obj/guns/energy.dmi
index 691d5c8362..33872719fe 100644
Binary files a/icons/obj/guns/energy.dmi and b/icons/obj/guns/energy.dmi differ
diff --git a/icons/obj/guns/gun_parts.dmi b/icons/obj/guns/gun_parts.dmi
index 8e3168769d..7f088f6af5 100644
Binary files a/icons/obj/guns/gun_parts.dmi and b/icons/obj/guns/gun_parts.dmi differ
diff --git a/icons/obj/guns/projectile.dmi b/icons/obj/guns/projectile.dmi
index 5c8fab82e8..8c50e7da27 100644
Binary files a/icons/obj/guns/projectile.dmi and b/icons/obj/guns/projectile.dmi differ
diff --git a/icons/obj/items_and_weapons.dmi b/icons/obj/items_and_weapons.dmi
index c95e6e5cb7..c5b2b3fc42 100644
Binary files a/icons/obj/items_and_weapons.dmi and b/icons/obj/items_and_weapons.dmi differ
diff --git a/icons/obj/tools.dmi b/icons/obj/tools.dmi
index 0ff7d4a607..90eea65cb3 100644
Binary files a/icons/obj/tools.dmi and b/icons/obj/tools.dmi differ
diff --git a/modular_citadel/code/modules/client/loadout/uniform.dm b/modular_citadel/code/modules/client/loadout/uniform.dm
index a4d6c2cd09..e667626968 100644
--- a/modular_citadel/code/modules/client/loadout/uniform.dm
+++ b/modular_citadel/code/modules/client/loadout/uniform.dm
@@ -254,6 +254,30 @@
category = SLOT_W_UNIFORM
path = /obj/item/clothing/under/misc/keyholesweater
+/datum/gear/polyjump
+ name = "Polychromic Jumpsuit"
+ category = SLOT_W_UNIFORM
+ path = /obj/item/clothing/under/misc/polyjumpsuit
+ cost = 2
+
+/datum/gear/polyskirt
+ name = "Polychromic Jumpskirt"
+ category = SLOT_W_UNIFORM
+ path = /obj/item/clothing/under/dress/skirt/polychromic
+ cost = 2
+
+/datum/gear/polysuit
+ name = "Polychromic Button-up Shirt"
+ category = SLOT_W_UNIFORM
+ path = /obj/item/clothing/under/misc/poly_shirt
+ cost = 3
+
+/datum/gear/polypleated
+ name = "Polychromic Pleated Sweaterskirt"
+ category = SLOT_W_UNIFORM
+ path = /obj/item/clothing/under/dress/skirt/polychromic/pleated
+ cost = 3
+
/datum/gear/polykilt
name = "Polychromic Kilt"
category = SLOT_W_UNIFORM
diff --git a/modular_citadel/code/modules/reagents/chemistry/reagents/fermi_reagents.dm b/modular_citadel/code/modules/reagents/chemistry/reagents/fermi_reagents.dm
index 82efabc4e2..56ad24c599 100644
--- a/modular_citadel/code/modules/reagents/chemistry/reagents/fermi_reagents.dm
+++ b/modular_citadel/code/modules/reagents/chemistry/reagents/fermi_reagents.dm
@@ -159,6 +159,35 @@
log_reagent("FERMICHEM: [M] ckey: [M.key]'s tongue has been made permanent")
+////////////////////////////////////////////////////////////////////////////////////////////////////
+// PLUSHMIUM
+///////////////////////////////////////////////////////////////////////////////////////////////////
+//A chemical you can spray on plushies to turn them into a 'shell'
+//Hugging the plushie turns yourself into the plushie!
+/datum/reagent/fermi/plushmium
+ name = "Plushmium"
+ description = "A strange chemical, seeming almost fluffy, if it were not for it being a liquid. Known to have a strange effect on plushies."
+ color = "#fbcbd7"
+ taste_description = "the soft feeling of a plushie"
+ pH = 5
+ value = 50
+ can_synth = TRUE
+
+/datum/reagent/fermi/plushmium/reaction_obj(obj/O, reac_volume)
+ if(istype(O, /obj/item/toy/plush) && reac_volume >= 5)
+ O.loc.visible_message("The plushie seems to be staring back at you.")
+ var/obj/item/toy/plushie_shell/new_shell = new /obj/item/toy/plushie_shell(O.loc)
+ new_shell.name = O.name
+ new_shell.icon = O.icon
+ new_shell.icon_state = O.icon_state
+ new_shell.stored_plush = O
+ O.forceMove(new_shell)
+
+//Extra interaction for which spraying it on an existing sentient plushie aheals them, so they can be revived!
+/datum/reagent/fermi/plushmium/reaction_mob(mob/living/M, method=TOUCH, reac_volume)
+ if(istype(M, /mob/living/simple_animal/pet/plushie) && reac_volume >= 1)
+ M.revive(full_heal = 1, admin_revive = 1)
+
///////////////////////////////////////////////////////////////////////////////////////////////
//Nanite removal
//Writen by Trilby!! Embellsished a little by me.
diff --git a/modular_citadel/code/modules/reagents/chemistry/reagents/healing.dm b/modular_citadel/code/modules/reagents/chemistry/reagents/healing.dm
index 48c9ffb7e6..ca6bb302da 100644
--- a/modular_citadel/code/modules/reagents/chemistry/reagents/healing.dm
+++ b/modular_citadel/code/modules/reagents/chemistry/reagents/healing.dm
@@ -197,3 +197,25 @@
M.stat = DEAD
M.visible_message("The synthetic tissue degrades off [M]'s wounds as they collapse to the floor.")
//NEEDS ON_MOB_DEAD()
+
+/datum/reagent/fermi/zeolites
+ name = "Artificial Zeolites"
+ description = "Lab made Zeolite, used to clear radiation form people and items alike! Splashing just a small amounts(5u) onto any item can clear away large amouts of contamination."
+ pH = 8
+ color = "#FFDADA"
+ metabolization_rate = 8 * REAGENTS_METABOLISM //Lastes not long in body but heals a lot!
+ value = REAGENT_VALUE_COMMON
+
+/datum/reagent/fermi/zeolites/on_mob_life(mob/living/carbon/M)
+ var/datum/component/radioactive/contamination = M.GetComponent(/datum/component/radioactive)
+ if(M.radiation > 0)
+ M.radiation -= min(M.radiation, 60)
+ if(contamination.strength > 0)
+ contamination.strength -= min(contamination.strength, 100)
+ ..()
+
+/datum/reagent/fermi/zeolites/reaction_obj(obj/O, reac_volume)
+ var/datum/component/radioactive/contamination = O.GetComponent(/datum/component/radioactive)
+ if(contamination && reac_volume >= 5)
+ qdel(contamination)
+ return
diff --git a/modular_citadel/code/modules/reagents/chemistry/recipes/fermi.dm b/modular_citadel/code/modules/reagents/chemistry/recipes/fermi.dm
index a8998a51ac..b2c80e4a16 100644
--- a/modular_citadel/code/modules/reagents/chemistry/recipes/fermi.dm
+++ b/modular_citadel/code/modules/reagents/chemistry/recipes/fermi.dm
@@ -480,6 +480,33 @@
RateUpLim = 15
FermiChem = TRUE
+/datum/chemical_reaction/fermi/plushmium // done
+ name = "Plushification serum"
+ id = /datum/reagent/fermi/plushmium
+ results = list(/datum/reagent/fermi/plushmium = 5)
+ required_reagents = list(/datum/reagent/medicine/strange_reagent = 5, /datum/reagent/drug/happiness = 3, /datum/reagent/blood = 10, /datum/reagent/consumable/laughter = 5, /datum/reagent/toxin/bad_food = 6)
+ //mix_message = ""
+ //FermiChem vars:
+ OptimalTempMin = 400
+ OptimalTempMax = 666
+ ExplodeTemp = 800
+ OptimalpHMin = 2
+ OptimalpHMax = 5
+ ReactpHLim = 6
+ //CatalystFact = 0 //To do 1
+ CurveSharpT = 8
+ CurveSharppH = 0.5
+ ThermicConstant = -2
+ HIonRelease = -0.1
+ RateUpLim = 2
+ FermiChem = TRUE
+ FermiExplode = TRUE
+ PurityMin = 0.6
+
+/datum/chemical_reaction/fermi/plushmium/FermiExplode(datum/reagents, var/atom/my_atom, volume, temp, pH)
+ new /obj/item/toy/plush/random(get_turf(my_atom))
+ my_atom.visible_message("The reaction suddenly zaps, creating a plushie!")
+ my_atom.reagents.clear_reagents()
/datum/chemical_reaction/fermi/basic_buffer/FermiFinish(datum/reagents/holder, atom/my_atom) //might need this
var/datum/reagent/fermi/basic_buffer/Fb = locate(/datum/reagent/fermi/basic_buffer) in my_atom.reagents.reagent_list
@@ -561,3 +588,23 @@
HIonRelease = 0.1
RateUpLim = 2
FermiChem = TRUE
+
+/datum/chemical_reaction/fermi/zeolites
+ name = "Zeolites"
+ id = /datum/reagent/fermi/zeolites
+ results = list(/datum/reagent/fermi/zeolites = 5) //We make a lot!
+ required_reagents = list(/datum/reagent/medicine/potass_iodide = 1, /datum/reagent/aluminium = 1, /datum/reagent/silicon = 1, /datum/reagent/oxygen = 1)
+ //FermiChem vars:
+ OptimalTempMin = 300
+ OptimalTempMax = 900
+ ExplodeTemp = 1000 //check to see overflow doesn't happen!
+ OptimalpHMin = 4.0
+ OptimalpHMax = 6.0
+ ReactpHLim = 4
+ //CatalystFact = 0
+ CurveSharpT = 4
+ CurveSharppH = 0
+ ThermicConstant = 0
+ HIonRelease = 0.01
+ RateUpLim = 15
+ FermiChem = TRUE
\ No newline at end of file
diff --git a/sound/block_parry/block_metal1.ogg b/sound/block_parry/block_metal1.ogg
new file mode 100644
index 0000000000..c0f98249cd
Binary files /dev/null and b/sound/block_parry/block_metal1.ogg differ
diff --git a/sound/block_parry/block_metal2.ogg b/sound/block_parry/block_metal2.ogg
new file mode 100644
index 0000000000..58c1233cea
Binary files /dev/null and b/sound/block_parry/block_metal2.ogg differ
diff --git a/sound/block_parry/block_wood1.ogg b/sound/block_parry/block_wood1.ogg
new file mode 100644
index 0000000000..a01f3dbe01
Binary files /dev/null and b/sound/block_parry/block_wood1.ogg differ
diff --git a/sound/block_parry/block_wood2.ogg b/sound/block_parry/block_wood2.ogg
new file mode 100644
index 0000000000..398a59e248
Binary files /dev/null and b/sound/block_parry/block_wood2.ogg differ
diff --git a/sound/block_parry/sfx-parry.ogg b/sound/block_parry/sfx-parry.ogg
new file mode 100644
index 0000000000..3429031bd9
Binary files /dev/null and b/sound/block_parry/sfx-parry.ogg differ
diff --git a/tgstation.dme b/tgstation.dme
index 114090dccc..5a19adc0f1 100644
--- a/tgstation.dme
+++ b/tgstation.dme
@@ -48,7 +48,6 @@
#include "code\__DEFINES\events.dm"
#include "code\__DEFINES\exports.dm"
#include "code\__DEFINES\fantasy_affixes.dm"
-#include "code\__DEFINES\flags.dm"
#include "code\__DEFINES\food.dm"
#include "code\__DEFINES\footsteps.dm"
#include "code\__DEFINES\hud.dm"
@@ -77,7 +76,6 @@
#include "code\__DEFINES\movespeed_modification.dm"
#include "code\__DEFINES\nanites.dm"
#include "code\__DEFINES\networks.dm"
-#include "code\__DEFINES\obj_flags.dm"
#include "code\__DEFINES\pinpointers.dm"
#include "code\__DEFINES\pipe_construction.dm"
#include "code\__DEFINES\pool.dm"
@@ -85,6 +83,7 @@
#include "code\__DEFINES\preferences.dm"
#include "code\__DEFINES\procpath.dm"
#include "code\__DEFINES\profile.dm"
+#include "code\__DEFINES\projectiles.dm"
#include "code\__DEFINES\qdel.dm"
#include "code\__DEFINES\radiation.dm"
#include "code\__DEFINES\radio.dm"
@@ -119,10 +118,17 @@
#include "code\__DEFINES\vv.dm"
#include "code\__DEFINES\wall_dents.dm"
#include "code\__DEFINES\wires.dm"
+#include "code\__DEFINES\_flags\_flags.dm"
+#include "code\__DEFINES\_flags\item_flags.dm"
+#include "code\__DEFINES\_flags\obj_flags.dm"
#include "code\__DEFINES\admin\keybindings.dm"
+#include "code\__DEFINES\combat\attack_types.dm"
+#include "code\__DEFINES\combat\block.dm"
+#include "code\__DEFINES\combat\block_parry.dm"
#include "code\__DEFINES\dcs\flags.dm"
#include "code\__DEFINES\dcs\helpers.dm"
#include "code\__DEFINES\dcs\signals.dm"
+#include "code\__DEFINES\flags\do_after.dm"
#include "code\__DEFINES\flags\shields.dm"
#include "code\__DEFINES\mapping\maploader.dm"
#include "code\__DEFINES\material\worth.dm"
@@ -144,6 +150,7 @@
#include "code\__HELPERS\custom_holoforms.dm"
#include "code\__HELPERS\dates.dm"
#include "code\__HELPERS\dna.dm"
+#include "code\__HELPERS\do_after.dm"
#include "code\__HELPERS\donator_groupings.dm"
#include "code\__HELPERS\files.dm"
#include "code\__HELPERS\game.dm"
@@ -2168,6 +2175,7 @@
#include "code\modules\keybindings\keybind\admin.dm"
#include "code\modules\keybindings\keybind\carbon.dm"
#include "code\modules\keybindings\keybind\client.dm"
+#include "code\modules\keybindings\keybind\combat.dm"
#include "code\modules\keybindings\keybind\emote.dm"
#include "code\modules\keybindings\keybind\human.dm"
#include "code\modules\keybindings\keybind\living.dm"
@@ -2318,7 +2326,10 @@
#include "code\modules\mob\living\emote.dm"
#include "code\modules\mob\living\life.dm"
#include "code\modules\mob\living\living.dm"
+#include "code\modules\mob\living\living_active_block.dm"
+#include "code\modules\mob\living\living_active_parry.dm"
#include "code\modules\mob\living\living_block.dm"
+#include "code\modules\mob\living\living_blocking_parrying.dm"
#include "code\modules\mob\living\living_defense.dm"
#include "code\modules\mob\living\living_defines.dm"
#include "code\modules\mob\living\living_mobility.dm"
@@ -2526,6 +2537,7 @@
#include "code\modules\mob\living\simple_animal\friendly\panda.dm"
#include "code\modules\mob\living\simple_animal\friendly\penguin.dm"
#include "code\modules\mob\living\simple_animal\friendly\pet.dm"
+#include "code\modules\mob\living\simple_animal\friendly\plushie.dm"
#include "code\modules\mob\living\simple_animal\friendly\sloth.dm"
#include "code\modules\mob\living\simple_animal\friendly\snake.dm"
#include "code\modules\mob\living\simple_animal\friendly\drone\_drone.dm"
@@ -2569,6 +2581,7 @@
#include "code\modules\mob\living\simple_animal\hostile\nanotrasen.dm"
#include "code\modules\mob\living\simple_animal\hostile\netherworld.dm"
#include "code\modules\mob\living\simple_animal\hostile\pirate.dm"
+#include "code\modules\mob\living\simple_animal\hostile\regalrat.dm"
#include "code\modules\mob\living\simple_animal\hostile\russian.dm"
#include "code\modules\mob\living\simple_animal\hostile\sharks.dm"
#include "code\modules\mob\living\simple_animal\hostile\skeleton.dm"
|---|