@dreadwood-types/types 0.1.8 → 0.1.11

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/landmarks.js CHANGED
@@ -2,6 +2,16 @@ import { BEACH_GATE_X, BEACH_START_Z, CHUNK_SIZE, UNDERGROUND_ORIGIN_X, WORLD_NO
2
2
  import { DEADLANDS_DEFENSE_DEPTH, DEADLANDS_MAX_X, DEADLANDS_MAX_Z, DEADLANDS_MIN_X, } from './zones.js';
3
3
  export const CROSSROADS_WORLD_X = BEACH_GATE_X;
4
4
  export const CROSSROADS_LOCAL_Z = 17;
5
+ /**
6
+ * Bounty Board and Bruce - on the south side of the Crossroads, the first thing a
7
+ * player meets coming up the road from Lil Beach. Inside the existing `crossroads`
8
+ * discovery zone; no new zone.
9
+ */
10
+ export const BOUNTY_BOARD_X = CROSSROADS_WORLD_X + 3;
11
+ export const BOUNTY_BOARD_LOCAL_Z = CROSSROADS_LOCAL_Z + 3;
12
+ /** Bruce stands two tiles west of the board, clear of its posts rather than tucked against them. */
13
+ export const BOUNTY_BRUCE_X = CROSSROADS_WORLD_X + 1;
14
+ export const BOUNTY_BRUCE_LOCAL_Z = CROSSROADS_LOCAL_Z + 3;
5
15
  export const EAST_ROAD_START_X = CROSSROADS_WORLD_X + 7;
6
16
  export const HIJACK_SITE_X = 402;
7
17
  export const HIJACK_SITE_LOCAL_Z = 22;
@@ -55,6 +65,198 @@ export function inAmazonTrail(x, z) {
55
65
  z >= AMAZON_TRAIL_NORTH_WORLD_Z &&
56
66
  z <= AMAZON_TRAIL_SOUTH_WORLD_Z);
57
67
  }
68
+ /* ------------------------------------------------------------------ *
69
+ * Calverton Town - the walled town at the north end of the Amazon Trail.
70
+ *
71
+ * The trail was always described as running "between the Amazonian cave and the
72
+ * town" and the ground north of it was left clear for exactly this. The site is
73
+ * 73 x 53 tiles of empty grass in the `east` map area, so the town does not
74
+ * displace anything.
75
+ *
76
+ * Everything here is world Z (lower Z is north). The south gate sits on the
77
+ * trail centre line, so walking north off the lake crossing brings you straight
78
+ * to the gate.
79
+ * ------------------------------------------------------------------ */
80
+ /**
81
+ * Wall footprint, inclusive. The wall itself stands ON these rows/columns.
82
+ *
83
+ * Grown from 57x43 to fit the larger buildings: an 11x11 pub and hall need real
84
+ * blocks around them or the streets close up. The empty grass on this site runs
85
+ * x 711-783 by z 596-648, so this uses nearly all of it and still clears the
86
+ * trail's tree belt to the south.
87
+ */
88
+ export const TOWN_MIN_X = AMAZON_TRAIL_X - 32;
89
+ export const TOWN_MAX_X = AMAZON_TRAIL_X + 32;
90
+ export const TOWN_SOUTH_Z = AMAZON_TRAIL_NORTH_WORLD_Z - 2;
91
+ export const TOWN_NORTH_Z = TOWN_SOUTH_Z - 48;
92
+ /** Walkable interior, one tile inside the wall on every side. */
93
+ export const TOWN_INNER_MIN_X = TOWN_MIN_X + 1;
94
+ export const TOWN_INNER_MAX_X = TOWN_MAX_X - 1;
95
+ export const TOWN_INNER_NORTH_Z = TOWN_NORTH_Z + 1;
96
+ export const TOWN_INNER_SOUTH_Z = TOWN_SOUTH_Z - 1;
97
+ /** The whole town sits on one level so streets and buildings do not stair-step. */
98
+ export const TOWN_GROUND_HEIGHT = 3;
99
+ /** Gates. The south gate is on the trail; the north gate opens onto open ground. */
100
+ export const TOWN_GATE_X = AMAZON_TRAIL_X;
101
+ /**
102
+ * Half-width of a gate opening, so a gate is (2 * this + 1) tiles wide. Five
103
+ * tiles, matching the main street, so the road runs into town at full width
104
+ * instead of pinching. The gatehouse carries it on a pair of deep piers with a
105
+ * proper arch, which is what stops a span this wide reading as a gap in the
106
+ * wall rather than a gate.
107
+ */
108
+ export const TOWN_GATE_HALF_W = 2;
109
+ /** Main street runs north-south on the trail line; the cross street runs east-west. */
110
+ export const TOWN_MAIN_STREET_HALF_W = 2;
111
+ export const TOWN_CROSS_STREET_Z = TOWN_NORTH_Z + 26;
112
+ export const TOWN_CROSS_STREET_HALF_W = 1;
113
+ /** Market square, centred where the two streets meet. */
114
+ export const TOWN_SQUARE_HALF_W = 6;
115
+ export const TOWN_SQUARE_HALF_D = 4;
116
+ export function inTownWalls(x, z) {
117
+ return x >= TOWN_MIN_X && x <= TOWN_MAX_X && z >= TOWN_NORTH_Z && z <= TOWN_SOUTH_Z;
118
+ }
119
+ /** Town plus a margin, for keeping wild scatter and NPC spawns out of the streets. */
120
+ export function nearTown(x, z, margin = 6) {
121
+ return (x >= TOWN_MIN_X - margin &&
122
+ x <= TOWN_MAX_X + margin &&
123
+ z >= TOWN_NORTH_Z - margin &&
124
+ z <= TOWN_SOUTH_Z + margin);
125
+ }
126
+ /* ------------------------------------------------------------------ *
127
+ * The Trout Fishery - a stocked reservoir north of Calverton, walled off and
128
+ * charged for by the gate.
129
+ *
130
+ * Laid out as a compound rather than open water: the lodge and its guard sit on
131
+ * the south side where the road from the town's north gate arrives, and the
132
+ * reservoir fills the rest with pegs along its banks. You pay at the lodge door,
133
+ * which is what admits you past it to the water.
134
+ * ------------------------------------------------------------------ */
135
+ /** Compound footprint, inclusive - the perimeter fence stands on these rows. */
136
+ export const FISHERY_MIN_X = AMAZON_TRAIL_X - 30;
137
+ export const FISHERY_MAX_X = AMAZON_TRAIL_X + 30;
138
+ /**
139
+ * The road north out of Calverton to the fishery gate, in tiles. At
140
+ * MOVE_SPEED_TILES_PER_SEC (3.9) this is about a thirty second walk - the
141
+ * fishery is somewhere you set out for, not somewhere on the town doorstep.
142
+ */
143
+ export const FISHERY_WALK_TILES = 117;
144
+ export const FISHERY_SOUTH_Z = TOWN_NORTH_Z - FISHERY_WALK_TILES;
145
+ export const FISHERY_NORTH_Z = FISHERY_SOUTH_Z - 46;
146
+ export const FISHERY_INNER_MIN_X = FISHERY_MIN_X + 1;
147
+ export const FISHERY_INNER_MAX_X = FISHERY_MAX_X - 1;
148
+ export const FISHERY_INNER_NORTH_Z = FISHERY_NORTH_Z + 1;
149
+ export const FISHERY_INNER_SOUTH_Z = FISHERY_SOUTH_Z - 1;
150
+ /** The whole compound sits level, so pegs and water meet cleanly. */
151
+ export const FISHERY_GROUND_HEIGHT = 3;
152
+ /** Gate in the south fence, on the road up from the town's north gate. */
153
+ export const FISHERY_GATE_X = AMAZON_TRAIL_X;
154
+ export const FISHERY_GATE_HALF_W = 1;
155
+ /**
156
+ * Where a player is put when their paid time runs out: on the road, outside the
157
+ * gate, facing the fishery. Deliberately outside the fence, so an expired timer
158
+ * cannot leave anyone standing on the paid side of the door.
159
+ */
160
+ export const FISHERY_EXIT_X = FISHERY_GATE_X;
161
+ export const FISHERY_EXIT_Z = FISHERY_SOUTH_Z + 3;
162
+ /** The guard stands beside the gate, inside the throat of it. */
163
+ export const FISHERY_GUARD_X = FISHERY_GATE_X + 3;
164
+ export const FISHERY_GUARD_Z = FISHERY_SOUTH_Z + 1;
165
+ /** Reservoir - an inset basin, leaving a bank all the way round for the pegs. */
166
+ export const FISHERY_WATER_MIN_X = FISHERY_INNER_MIN_X + 4;
167
+ export const FISHERY_WATER_MAX_X = FISHERY_INNER_MAX_X - 4;
168
+ export const FISHERY_WATER_NORTH_Z = FISHERY_INNER_NORTH_Z + 3;
169
+ export const FISHERY_WATER_SOUTH_Z = FISHERY_INNER_SOUTH_Z - 15;
170
+ /* ------------------------------------------------------------------ *
171
+ * The Western Massif - the mountain past the goblin camps.
172
+ *
173
+ * Fills the whole western flank, from the Deadlands' west wall out to the edge
174
+ * of the map. Walking north off the goblin camps you cross the old wire and the
175
+ * ground simply goes up: it is the wall on that side of the world.
176
+ *
177
+ * A cone rather than a ridge, because the path is a spiral. The track wraps the
178
+ * peak as it climbs, so the way up is a walk round the mountain rather than a
179
+ * staircase cut into one face, and the cave mouth at the top is set into the
180
+ * rock where the spiral runs out.
181
+ * ------------------------------------------------------------------ */
182
+ export const MOUNTAIN_MIN_X = 0;
183
+ /** Stops at the Deadlands wall - the massif is the flank beside it, not on it. */
184
+ export const MOUNTAIN_MAX_X = DEADLANDS_MIN_X - 1;
185
+ /** Foot on the south side, clear of the Deadlands defence band below it. */
186
+ export const MOUNTAIN_SOUTH_Z = 628;
187
+ export const MOUNTAIN_NORTH_Z = 380;
188
+ export const MOUNTAIN_CENTER_X = Math.round((MOUNTAIN_MIN_X + MOUNTAIN_MAX_X) / 2);
189
+ export const MOUNTAIN_CENTER_Z = Math.round((MOUNTAIN_NORTH_Z + MOUNTAIN_SOUTH_Z) / 2);
190
+ /** Elliptical footprint, so it fills a flank that is deeper than it is wide. */
191
+ export const MOUNTAIN_RX = Math.round((MOUNTAIN_MAX_X - MOUNTAIN_MIN_X) / 2) + 8;
192
+ export const MOUNTAIN_RZ = Math.round((MOUNTAIN_SOUTH_Z - MOUNTAIN_NORTH_Z) / 2);
193
+ /** Height at the foot and at the summit plateau, in terrain steps. */
194
+ export const MOUNTAIN_FOOT_H = 2;
195
+ /**
196
+ * 26 steps over a 120 tile radius read as a low dome, not a mountain - at
197
+ * HEIGHT_STEP 0.45 that is a 1 in 9 slope. This is the tallest thing in the
198
+ * world by a long way (Base Camp's rim is 10) and it needs to be: a massif
199
+ * this wide only reads as one if the face is genuinely steep.
200
+ */
201
+ export const MOUNTAIN_SUMMIT_H = 62;
202
+ /** How many times the spiral wraps the peak between the foot and the summit. */
203
+ export const MOUNTAIN_PATH_TURNS = 3.4;
204
+ /** Half-width of the walkable track, so the path is (2 * this + 1) tiles wide. */
205
+ export const MOUNTAIN_PATH_HALF_W = 2;
206
+ /** Explorer needed to enter the cave the spiral leads to. */
207
+ export const MOUNTAIN_CAVE_EXPLORER_LEVEL = 20;
208
+ export const MOUNTAIN_CAVE_STYLE = 'massif-summit';
209
+ /** Normalised distance from the peak: 0 at the summit, 1 at the foot. */
210
+ export function mountainFalloff(x, z) {
211
+ const dx = (x - MOUNTAIN_CENTER_X) / MOUNTAIN_RX;
212
+ const dz = (z - MOUNTAIN_CENTER_Z) / MOUNTAIN_RZ;
213
+ return Math.sqrt(dx * dx + dz * dz);
214
+ }
215
+ export function inMountain(x, z) {
216
+ if (x < MOUNTAIN_MIN_X || x > MOUNTAIN_MAX_X)
217
+ return false;
218
+ if (z < MOUNTAIN_NORTH_Z || z > MOUNTAIN_SOUTH_Z)
219
+ return false;
220
+ return mountainFalloff(x, z) <= 1;
221
+ }
222
+ /** True inside the paid area: past the fence line, which is what the timer guards. */
223
+ export function inFishery(x, z) {
224
+ return x >= FISHERY_MIN_X && x <= FISHERY_MAX_X && z >= FISHERY_NORTH_Z && z <= FISHERY_SOUTH_Z;
225
+ }
226
+ /**
227
+ * Fishery plus a margin. Wandering spawns are kept out of this: a wolf den mouth
228
+ * opening inside the compound would be a free way in past a door people pay for,
229
+ * and one against the fence reads as wilderness pushed up against a built place.
230
+ */
231
+ export function nearFishery(x, z, margin = 8) {
232
+ return (x >= FISHERY_MIN_X - margin &&
233
+ x <= FISHERY_MAX_X + margin &&
234
+ z >= FISHERY_NORTH_Z - margin &&
235
+ z <= FISHERY_SOUTH_Z + margin);
236
+ }
237
+ /** Cave mouth east of Calverton's east gate, on the new eastern pad. */
238
+ /**
239
+ * Spider Cave - out on the eastern rim of the map rather than tucked against
240
+ * Calverton. It used to sit 18 tiles off the town wall, which made a cave full
241
+ * of spiders feel like a suburb; bedding it on the edge gives the walk east
242
+ * some point to it.
243
+ */
244
+ export const SPIDER_CAVE_MOUTH_X = WORLD_WIDTH - 26;
245
+ export const SPIDER_CAVE_MOUTH_Z = TOWN_CROSS_STREET_Z;
246
+ /** Stand just west of the mouth after climbing out. */
247
+ export const SPIDER_CAVE_OUTSIDE = {
248
+ x: SPIDER_CAVE_MOUTH_X - 2,
249
+ z: SPIDER_CAVE_MOUTH_Z,
250
+ };
251
+ /**
252
+ * Bob's Bounties - on the hall's south wall, east of the door, facing the
253
+ * square. Z is the first walkable tile south of the hall footprint
254
+ * (`TOWN_CROSS_STREET_Z - 7` = hallCz + hallRadius + 1).
255
+ */
256
+ export const CALVERTON_BOUNTY_BOARD_X = TOWN_GATE_X + 4;
257
+ export const CALVERTON_BOUNTY_BOARD_Z = TOWN_CROSS_STREET_Z - 7;
258
+ export const BOB_SPAWN_X = TOWN_GATE_X + 4;
259
+ export const BOB_SPAWN_Z = TOWN_CROSS_STREET_Z - 6;
58
260
  /**
59
261
  * Anne's cottage - a longer walk north of the east road, halfway between
60
262
  * Crossroads and Base Camp. Lower local Z is north (toward WORLD_NORTH_PAD).
@@ -302,6 +504,81 @@ export function forestDenByCavern(worldX, worldZ) {
302
504
  export function inForestDenCavern(x, z) {
303
505
  return forestDenByCavern(x, z) !== null;
304
506
  }
507
+ const WOLF_DEN_CAVERN_X = UNDERGROUND_ORIGIN_X + 70;
508
+ const WOLF_DEN_CAVERN_Z0 = 40;
509
+ const WOLF_DEN_CAVERN_GAP = 18;
510
+ function wolfDenSite(id, entranceX, entranceLocalZ, facing, cavernIndex) {
511
+ return {
512
+ id,
513
+ entranceX,
514
+ entranceLocalZ,
515
+ facing,
516
+ cavernX: WOLF_DEN_CAVERN_X,
517
+ cavernZ: WOLF_DEN_CAVERN_Z0 + cavernIndex * WOLF_DEN_CAVERN_GAP,
518
+ };
519
+ }
520
+ const TOWN_NORTH_LOCAL_Z = TOWN_NORTH_Z - WORLD_NORTH_PAD;
521
+ const TOWN_SOUTH_LOCAL_Z = TOWN_SOUTH_Z - WORLD_NORTH_PAD;
522
+ const TOWN_CROSS_LOCAL_Z = TOWN_CROSS_STREET_Z - WORLD_NORTH_PAD;
523
+ const SPIDER_MOUTH_LOCAL_Z = SPIDER_CAVE_MOUTH_Z - WORLD_NORTH_PAD;
524
+ /**
525
+ * Wolf dens in the woods around Calverton. Same rotating-mouth idea as the
526
+ * forest rat caves: every site is built, only WOLF_DEN_ACTIVE_COUNT show a
527
+ * mouth at once, and crawling out relocates that mouth.
528
+ */
529
+ export const WOLF_DEN_SITES = [
530
+ wolfDenSite('calverton-west', TOWN_MIN_X - 10, TOWN_CROSS_LOCAL_Z, 'east', 0),
531
+ wolfDenSite('calverton-nw', TOWN_MIN_X - 16, TOWN_NORTH_LOCAL_Z - 8, 'south', 1),
532
+ wolfDenSite('calverton-sw', TOWN_MIN_X - 8, TOWN_SOUTH_LOCAL_Z + 10, 'north', 2),
533
+ wolfDenSite('calverton-east', TOWN_MAX_X + 8, TOWN_CROSS_LOCAL_Z + 10, 'west', 3),
534
+ wolfDenSite('calverton-ne', TOWN_MAX_X + 12, TOWN_NORTH_LOCAL_Z - 10, 'south', 4),
535
+ wolfDenSite('spider-approach', SPIDER_CAVE_MOUTH_X - 10, SPIDER_MOUTH_LOCAL_Z + 14, 'north', 5),
536
+ wolfDenSite('calverton-south', TOWN_GATE_X - 22, TOWN_SOUTH_LOCAL_Z + 14, 'north', 6),
537
+ // Moved west, out of the Trout Fishery. At its old spot (gate +22, north -14)
538
+ // this mouth opened inside the compound, which would have been a free way past
539
+ // a door people pay for. Kept honest by wolfDenSiteAllowed below.
540
+ wolfDenSite('calverton-nw-far', TOWN_GATE_X - 36, TOWN_NORTH_LOCAL_Z - 16, 'east', 7),
541
+ ];
542
+ /**
543
+ * A den site is only usable if its mouth is clear of the authored places around
544
+ * it. Applied where dens are built rather than trusted to the table above, so a
545
+ * site nudged in later cannot quietly reopen the hole in the fishery fence.
546
+ */
547
+ export function wolfDenSiteAllowed(site) {
548
+ const worldZ = toWorldZ(site.entranceLocalZ);
549
+ if (nearFishery(site.entranceX, worldZ))
550
+ return false;
551
+ if (inTownWalls(site.entranceX, worldZ))
552
+ return false;
553
+ return true;
554
+ }
555
+ export const WOLF_DEN_ACTIVE_COUNT = 2;
556
+ export const WOLF_DEN_EXPLORER_XP = 33;
557
+ export function wolfDenEntranceStyle(facing) {
558
+ return `wolfden-${facing}`;
559
+ }
560
+ export function wolfDenExitStyle(facing) {
561
+ return `wolfdenexit-${facing}`;
562
+ }
563
+ export function wolfDenByEntrance(worldX, worldZ) {
564
+ for (const den of WOLF_DEN_SITES) {
565
+ if (den.entranceX === worldX && toWorldZ(den.entranceLocalZ) === worldZ)
566
+ return den;
567
+ }
568
+ return null;
569
+ }
570
+ export function wolfDenByCavern(worldX, worldZ) {
571
+ for (const den of WOLF_DEN_SITES) {
572
+ if (Math.abs(worldX - den.cavernX) <= FOREST_DEN_RX + FOREST_DEN_WALL &&
573
+ Math.abs(worldZ - den.cavernZ) <= FOREST_DEN_RZ + FOREST_DEN_WALL) {
574
+ return den;
575
+ }
576
+ }
577
+ return null;
578
+ }
579
+ export function inWolfDenCavern(x, z) {
580
+ return wolfDenByCavern(x, z) !== null;
581
+ }
305
582
  function roomSpawnSpots(minZ, maxZ, count) {
306
583
  const cx = DUNGEON_CENTER_X;
307
584
  if (count <= 1)
@@ -599,6 +876,35 @@ export const DISCOVERY_ZONES = [
599
876
  minZ: BATTLEFIELD_MIN_LOCAL_Z,
600
877
  maxZ: BATTLEFIELD_MAX_LOCAL_Z,
601
878
  },
879
+ {
880
+ // The town is discovered as one place. Its walls, gates and houses are all
881
+ // non-identifiable (see IDENTIFIABLE_KINDS), so arriving names the town
882
+ // once instead of paying out for every section of masonry you walk past.
883
+ // Zone Z is playable-LOCAL, hence the pad subtraction - the town sits north
884
+ // of the playable origin, so these are negative.
885
+ id: 'calverton',
886
+ label: 'Calverton Town',
887
+ minX: TOWN_MIN_X - 3,
888
+ maxX: TOWN_MAX_X + 3,
889
+ minZ: TOWN_NORTH_Z - 3 - WORLD_NORTH_PAD,
890
+ maxZ: TOWN_SOUTH_Z + 4 - WORLD_NORTH_PAD,
891
+ },
892
+ {
893
+ id: 'spider-cave',
894
+ label: 'Spider Cave',
895
+ minX: SPIDER_CAVE_MOUTH_X - 6,
896
+ maxX: SPIDER_CAVE_MOUTH_X + 6,
897
+ minZ: SPIDER_CAVE_MOUTH_Z - 6 - WORLD_NORTH_PAD,
898
+ maxZ: SPIDER_CAVE_MOUTH_Z + 6 - WORLD_NORTH_PAD,
899
+ },
900
+ {
901
+ id: 'trout-fishery',
902
+ label: 'Trout Fishery',
903
+ minX: FISHERY_MIN_X - 3,
904
+ maxX: FISHERY_MAX_X + 3,
905
+ minZ: FISHERY_NORTH_Z - 3 - WORLD_NORTH_PAD,
906
+ maxZ: FISHERY_SOUTH_Z + 5 - WORLD_NORTH_PAD,
907
+ },
602
908
  ];
603
909
  export function discoveryZoneAt(worldX, worldZ) {
604
910
  for (const zone of DISCOVERY_ZONES) {
@@ -632,6 +938,8 @@ export const WORLD_MAP_LANDMARKS = [
632
938
  { ...discoveryZoneCenter('lil-beach'), label: 'Lil Beach' },
633
939
  { ...discoveryZoneCenter('basecamp'), label: 'Base Camp' },
634
940
  { x: BATTLEFIELD_BRIDGE_X, z: BATTLEFIELD_LAKE_MID_Z, label: 'Battlefield' },
941
+ { x: TOWN_GATE_X, z: TOWN_CROSS_STREET_Z, label: 'Calverton Town' },
942
+ { x: SPIDER_CAVE_MOUTH_X, z: SPIDER_CAVE_MOUTH_Z, label: 'Spider Cave' },
635
943
  {
636
944
  x: BASECAMP_CAVE_X,
637
945
  z: toWorldZ(BASECAMP_CAVE_LOCAL_Z),
@@ -1 +1 @@
1
- {"version":3,"file":"landmarks.js","sourceRoot":"","sources":["../src/landmarks.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"landmarks.js","sourceRoot":"","sources":["../src/landmarks.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,YAAY,EACZ,aAAa,EACb,UAAU,EACV,oBAAoB,EACpB,eAAe,EACf,WAAW,EACX,QAAQ,GACT,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,uBAAuB,EACvB,eAAe,EACf,eAAe,EACf,eAAe,GAChB,MAAM,YAAY,CAAC;AAEpB,MAAM,CAAC,MAAM,kBAAkB,GAAG,YAAY,CAAC;AAC/C,MAAM,CAAC,MAAM,kBAAkB,GAAG,EAAE,CAAC;AAErC;;;;GAIG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,kBAAkB,GAAG,CAAC,CAAC;AACrD,MAAM,CAAC,MAAM,oBAAoB,GAAG,kBAAkB,GAAG,CAAC,CAAC;AAC3D,oGAAoG;AACpG,MAAM,CAAC,MAAM,cAAc,GAAG,kBAAkB,GAAG,CAAC,CAAC;AACrD,MAAM,CAAC,MAAM,oBAAoB,GAAG,kBAAkB,GAAG,CAAC,CAAC;AAE3D,MAAM,CAAC,MAAM,iBAAiB,GAAG,kBAAkB,GAAG,CAAC,CAAC;AACxD,MAAM,CAAC,MAAM,aAAa,GAAG,GAAG,CAAC;AACjC,MAAM,CAAC,MAAM,mBAAmB,GAAG,EAAE,CAAC;AAEtC,MAAM,CAAC,MAAM,iBAAiB,GAAG,GAAG,CAAC;AACrC,MAAM,CAAC,MAAM,uBAAuB,GAAG,EAAE,CAAC;AAC1C,MAAM,CAAC,MAAM,WAAW,GAAG,EAAE,CAAC;AAC9B,MAAM,CAAC,MAAM,WAAW,GAAG,EAAE,CAAC;AAC9B,MAAM,CAAC,MAAM,kBAAkB,GAAG,GAAG,CAAC;AACtC,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,CAAC;AAClC,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,CAAC;AACpC,MAAM,CAAC,MAAM,cAAc,GAAG,EAAE,CAAC;AACjC,MAAM,CAAC,MAAM,qBAAqB,GAAG,uBAAuB,CAAC;AAC7D,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,CAAC;AACpC,MAAM,CAAC,MAAM,eAAe,GAAG,GAAG,CAAC;AACnC;;;GAGG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,eAAe,CAAC;AAClD,MAAM,CAAC,MAAM,oBAAoB,GAAG,GAAG,CAAC;AACxC,MAAM,CAAC,MAAM,oBAAoB,GAAG,GAAG,CAAC;AACxC,MAAM,CAAC,MAAM,eAAe,GAAG,iBAAiB,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,GAAG,IAAI,CAAC,CAAC;AAClF,MAAM,CAAC,MAAM,qBAAqB,GAAG,uBAAuB,CAAC;AAC7D,sFAAsF;AACtF,MAAM,CAAC,MAAM,mBAAmB,GAAG,eAAe,GAAG,EAAE,CAAC;AACxD,MAAM,CAAC,MAAM,yBAAyB,GAAG,qBAAqB,CAAC;AAE/D;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,mBAAmB,CAAC;AAClD,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,CAAC;AACrC,oFAAoF;AACpF,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,CAAC;AACvC,0FAA0F;AAC1F,MAAM,CAAC,MAAM,0BAA0B,GAAG,QAAQ,CAAC,yBAAyB,CAAC,GAAG,CAAC,CAAC;AAClF,MAAM,CAAC,MAAM,mBAAmB,GAAG,GAAG,CAAC;AACvC,MAAM,CAAC,MAAM,0BAA0B,GAAG,0BAA0B,GAAG,mBAAmB,CAAC;AAE3F,uEAAuE;AACvE,MAAM,UAAU,aAAa,CAAC,CAAS,EAAE,CAAS;IAChD,OAAO,CACL,CAAC,IAAI,cAAc,GAAG,mBAAmB;QACzC,CAAC,IAAI,cAAc,GAAG,mBAAmB;QACzC,CAAC,IAAI,0BAA0B;QAC/B,CAAC,IAAI,0BAA0B,CAChC,CAAC;AACJ,CAAC;AAED;;;;;;;;;;;wEAWwE;AAExE;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG,cAAc,GAAG,EAAE,CAAC;AAC9C,MAAM,CAAC,MAAM,UAAU,GAAG,cAAc,GAAG,EAAE,CAAC;AAC9C,MAAM,CAAC,MAAM,YAAY,GAAG,0BAA0B,GAAG,CAAC,CAAC;AAC3D,MAAM,CAAC,MAAM,YAAY,GAAG,YAAY,GAAG,EAAE,CAAC;AAE9C,iEAAiE;AACjE,MAAM,CAAC,MAAM,gBAAgB,GAAG,UAAU,GAAG,CAAC,CAAC;AAC/C,MAAM,CAAC,MAAM,gBAAgB,GAAG,UAAU,GAAG,CAAC,CAAC;AAC/C,MAAM,CAAC,MAAM,kBAAkB,GAAG,YAAY,GAAG,CAAC,CAAC;AACnD,MAAM,CAAC,MAAM,kBAAkB,GAAG,YAAY,GAAG,CAAC,CAAC;AAEnD,mFAAmF;AACnF,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,CAAC;AAEpC,oFAAoF;AACpF,MAAM,CAAC,MAAM,WAAW,GAAG,cAAc,CAAC;AAC1C;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,CAAC;AAElC,uFAAuF;AACvF,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,CAAC;AACzC,MAAM,CAAC,MAAM,mBAAmB,GAAG,YAAY,GAAG,EAAE,CAAC;AACrD,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,CAAC;AAE1C,yDAAyD;AACzD,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,CAAC;AACpC,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,CAAC;AAEpC,MAAM,UAAU,WAAW,CAAC,CAAS,EAAE,CAAS;IAC9C,OAAO,CAAC,IAAI,UAAU,IAAI,CAAC,IAAI,UAAU,IAAI,CAAC,IAAI,YAAY,IAAI,CAAC,IAAI,YAAY,CAAC;AACtF,CAAC;AAED,sFAAsF;AACtF,MAAM,UAAU,QAAQ,CAAC,CAAS,EAAE,CAAS,EAAE,MAAM,GAAG,CAAC;IACvD,OAAO,CACL,CAAC,IAAI,UAAU,GAAG,MAAM;QACxB,CAAC,IAAI,UAAU,GAAG,MAAM;QACxB,CAAC,IAAI,YAAY,GAAG,MAAM;QAC1B,CAAC,IAAI,YAAY,GAAG,MAAM,CAC3B,CAAC;AACJ,CAAC;AAED;;;;;;;;wEAQwE;AAExE,gFAAgF;AAChF,MAAM,CAAC,MAAM,aAAa,GAAG,cAAc,GAAG,EAAE,CAAC;AACjD,MAAM,CAAC,MAAM,aAAa,GAAG,cAAc,GAAG,EAAE,CAAC;AACjD;;;;GAIG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,GAAG,CAAC;AACtC,MAAM,CAAC,MAAM,eAAe,GAAG,YAAY,GAAG,kBAAkB,CAAC;AACjE,MAAM,CAAC,MAAM,eAAe,GAAG,eAAe,GAAG,EAAE,CAAC;AAEpD,MAAM,CAAC,MAAM,mBAAmB,GAAG,aAAa,GAAG,CAAC,CAAC;AACrD,MAAM,CAAC,MAAM,mBAAmB,GAAG,aAAa,GAAG,CAAC,CAAC;AACrD,MAAM,CAAC,MAAM,qBAAqB,GAAG,eAAe,GAAG,CAAC,CAAC;AACzD,MAAM,CAAC,MAAM,qBAAqB,GAAG,eAAe,GAAG,CAAC,CAAC;AAEzD,qEAAqE;AACrE,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,CAAC;AAEvC,0EAA0E;AAC1E,MAAM,CAAC,MAAM,cAAc,GAAG,cAAc,CAAC;AAC7C,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,CAAC;AAErC;;;;GAIG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,cAAc,CAAC;AAC7C,MAAM,CAAC,MAAM,cAAc,GAAG,eAAe,GAAG,CAAC,CAAC;AAElD,iEAAiE;AACjE,MAAM,CAAC,MAAM,eAAe,GAAG,cAAc,GAAG,CAAC,CAAC;AAClD,MAAM,CAAC,MAAM,eAAe,GAAG,eAAe,GAAG,CAAC,CAAC;AAEnD,iFAAiF;AACjF,MAAM,CAAC,MAAM,mBAAmB,GAAG,mBAAmB,GAAG,CAAC,CAAC;AAC3D,MAAM,CAAC,MAAM,mBAAmB,GAAG,mBAAmB,GAAG,CAAC,CAAC;AAC3D,MAAM,CAAC,MAAM,qBAAqB,GAAG,qBAAqB,GAAG,CAAC,CAAC;AAC/D,MAAM,CAAC,MAAM,qBAAqB,GAAG,qBAAqB,GAAG,EAAE,CAAC;AAEhE;;;;;;;;;;;wEAWwE;AAExE,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,CAAC;AAChC,kFAAkF;AAClF,MAAM,CAAC,MAAM,cAAc,GAAG,eAAe,GAAG,CAAC,CAAC;AAClD,4EAA4E;AAC5E,MAAM,CAAC,MAAM,gBAAgB,GAAG,GAAG,CAAC;AACpC,MAAM,CAAC,MAAM,gBAAgB,GAAG,GAAG,CAAC;AAEpC,MAAM,CAAC,MAAM,iBAAiB,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,cAAc,GAAG,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC;AACnF,MAAM,CAAC,MAAM,iBAAiB,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,gBAAgB,GAAG,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC;AACvF,gFAAgF;AAChF,MAAM,CAAC,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,cAAc,GAAG,cAAc,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;AACjF,MAAM,CAAC,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,gBAAgB,GAAG,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC;AAEjF,sEAAsE;AACtE,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,CAAC;AACjC;;;;;GAKG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,EAAE,CAAC;AAEpC,gFAAgF;AAChF,MAAM,CAAC,MAAM,mBAAmB,GAAG,GAAG,CAAC;AACvC,kFAAkF;AAClF,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,CAAC;AAEtC,6DAA6D;AAC7D,MAAM,CAAC,MAAM,4BAA4B,GAAG,EAAE,CAAC;AAC/C,MAAM,CAAC,MAAM,mBAAmB,GAAG,eAAe,CAAC;AAEnD,yEAAyE;AACzE,MAAM,UAAU,eAAe,CAAC,CAAS,EAAE,CAAS;IAClD,MAAM,EAAE,GAAG,CAAC,CAAC,GAAG,iBAAiB,CAAC,GAAG,WAAW,CAAC;IACjD,MAAM,EAAE,GAAG,CAAC,CAAC,GAAG,iBAAiB,CAAC,GAAG,WAAW,CAAC;IACjD,OAAO,IAAI,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC;AACtC,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,CAAS,EAAE,CAAS;IAC7C,IAAI,CAAC,GAAG,cAAc,IAAI,CAAC,GAAG,cAAc;QAAE,OAAO,KAAK,CAAC;IAC3D,IAAI,CAAC,GAAG,gBAAgB,IAAI,CAAC,GAAG,gBAAgB;QAAE,OAAO,KAAK,CAAC;IAC/D,OAAO,eAAe,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;AACpC,CAAC;AAED,sFAAsF;AACtF,MAAM,UAAU,SAAS,CAAC,CAAS,EAAE,CAAS;IAC5C,OAAO,CAAC,IAAI,aAAa,IAAI,CAAC,IAAI,aAAa,IAAI,CAAC,IAAI,eAAe,IAAI,CAAC,IAAI,eAAe,CAAC;AAClG,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,WAAW,CAAC,CAAS,EAAE,CAAS,EAAE,MAAM,GAAG,CAAC;IAC1D,OAAO,CACL,CAAC,IAAI,aAAa,GAAG,MAAM;QAC3B,CAAC,IAAI,aAAa,GAAG,MAAM;QAC3B,CAAC,IAAI,eAAe,GAAG,MAAM;QAC7B,CAAC,IAAI,eAAe,GAAG,MAAM,CAC9B,CAAC;AACJ,CAAC;AAED,wEAAwE;AACxE;;;;;GAKG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,WAAW,GAAG,EAAE,CAAC;AACpD,MAAM,CAAC,MAAM,mBAAmB,GAAG,mBAAmB,CAAC;AACvD,uDAAuD;AACvD,MAAM,CAAC,MAAM,mBAAmB,GAAG;IACjC,CAAC,EAAE,mBAAmB,GAAG,CAAC;IAC1B,CAAC,EAAE,mBAAmB;CACd,CAAC;AAEX;;;;GAIG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAG,WAAW,GAAG,CAAC,CAAC;AACxD,MAAM,CAAC,MAAM,wBAAwB,GAAG,mBAAmB,GAAG,CAAC,CAAC;AAChE,MAAM,CAAC,MAAM,WAAW,GAAG,WAAW,GAAG,CAAC,CAAC;AAC3C,MAAM,CAAC,MAAM,WAAW,GAAG,mBAAmB,GAAG,CAAC,CAAC;AAEnD;;;;GAIG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,EAAE,CAAC;AACnC,MAAM,CAAC,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,kBAAkB,GAAG,iBAAiB,CAAC,GAAG,CAAC,CAAC,CAAC;AAChF,MAAM,CAAC,MAAM,mBAAmB,GAC9B,IAAI,CAAC,KAAK,CAAC,CAAC,kBAAkB,GAAG,uBAAuB,CAAC,GAAG,CAAC,CAAC,GAAG,gBAAgB,CAAC;AACpF,MAAM,CAAC,MAAM,aAAa,GAAG,EAAE,CAAC;AAChC,MAAM,CAAC,MAAM,gBAAgB,GAAG,EAAE,CAAC;AACnC,MAAM,CAAC,MAAM,gBAAgB,GAAG,EAAE,CAAC;AAEnC;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,eAAe,GAAG,EAAE,CAAC;AACxD,MAAM,CAAC,MAAM,yBAAyB,GAAG,qBAAqB,CAAC;AAC/D,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,CAAC;AAC/B,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,CAAC;AAC/B,MAAM,CAAC,MAAM,wBAAwB,GAAG,eAAe,GAAG,CAAC,CAAC;AAC5D,MAAM,CAAC,MAAM,8BAA8B,GAAG,qBAAqB,CAAC;AAEpE;;;;;;;;;;;;;;GAcG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,oBAAoB,GAAG,UAAU,GAAG,CAAC,CAAC;AAEtE;;;;;;;;;;;;;GAaG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,EAAE,CAAC;AACtC,mFAAmF;AACnF,MAAM,CAAC,MAAM,6BAA6B,GAAG,EAAE,CAAC;AAChD,MAAM,CAAC,MAAM,mBAAmB,GAAG,EAAE,CAAC;AACtC,8CAA8C;AAC9C,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,CAAC;AAC1C,qEAAqE;AACrE,MAAM,CAAC,MAAM,wBAAwB,GAAG,EAAE,CAAC;AAC3C,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,CAAC;AAEzC;;;;;GAKG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,EAAE,CAAC;AACtC,MAAM,CAAC,MAAM,mBAAmB,GAAG,EAAE,CAAC;AACtC,kFAAkF;AAClF,MAAM,CAAC,MAAM,mBAAmB,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,mBAAmB,GAAG,mBAAmB,CAAC,GAAG,CAAC,CAAC,CAAC;AAC/F,MAAM,CAAC,MAAM,mBAAmB,GAAG,EAAE,CAAC;AACtC,MAAM,CAAC,MAAM,mBAAmB,GAAG,GAAG,CAAC;AACvC,+CAA+C;AAC/C,MAAM,CAAC,MAAM,mBAAmB,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,mBAAmB,GAAG,mBAAmB,CAAC,GAAG,CAAC,CAAC,CAAC;AAC/F,MAAM,CAAC,MAAM,mBAAmB,GAAG,GAAG,CAAC;AACvC,MAAM,CAAC,MAAM,mBAAmB,GAAG,GAAG,CAAC;AACvC,MAAM,CAAC,MAAM,mBAAmB,GAAG,GAAG,CAAC;AACvC,MAAM,CAAC,MAAM,mBAAmB,GAAG,GAAG,CAAC;AACvC,MAAM,CAAC,MAAM,mBAAmB,GAAG,GAAG,CAAC;AACvC,MAAM,CAAC,MAAM,mBAAmB,GAAG,GAAG,CAAC;AAEvC,MAAM,CAAC,MAAM,aAAa,GAAG,gBAAgB,GAAG,mBAAmB,CAAC;AACpE,MAAM,CAAC,MAAM,aAAa,GAAG,gBAAgB,GAAG,mBAAmB,CAAC;AACpE,MAAM,CAAC,MAAM,aAAa,GAAG,mBAAmB,CAAC;AACjD,MAAM,CAAC,MAAM,aAAa,GAAG,mBAAmB,CAAC;AAEjD,8FAA8F;AAC9F,MAAM,CAAC,MAAM,eAAe,GAAG,mBAAmB,CAAC;AACnD,MAAM,CAAC,MAAM,eAAe,GAAG,mBAAmB,CAAC;AACnD,MAAM,CAAC,MAAM,eAAe,GAAG,mBAAmB,CAAC;AACnD,MAAM,CAAC,MAAM,eAAe,GAAG,mBAAmB,CAAC;AAEnD,MAAM,CAAC,MAAM,eAAe,GAAG,gBAAgB,CAAC;AAChD,MAAM,CAAC,MAAM,eAAe,GAAG,mBAAmB,GAAG,CAAC,CAAC;AACvD,MAAM,CAAC,MAAM,qBAAqB,GAAG,gBAAgB,CAAC;AACtD;;;;GAIG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG,mBAAmB,CAAC;AACzD,qFAAqF;AACrF,MAAM,CAAC,MAAM,yBAAyB,GAAG,YAAY,CAAC;AACtD;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG,qBAAqB,CAAC;AAC5D,MAAM,CAAC,MAAM,sBAAsB,GAAG,qBAAqB,GAAG,CAAC,CAAC;AAChE,2EAA2E;AAC3E,MAAM,UAAU,uBAAuB,CAAC,KAAyB;IAC/D,OAAO,KAAK,KAAK,yBAAyB,IAAI,KAAK,KAAK,WAAW,CAAC;AACtE,CAAC;AACD;;;;;GAKG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,gBAAgB,CAAC;AACnD,MAAM,CAAC,MAAM,kBAAkB,GAAG,mBAAmB,CAAC;AACtD,MAAM,CAAC,MAAM,sBAAsB,GAAG,YAAY,CAAC;AAEnD,kHAAkH;AAClH,MAAM,CAAC,MAAM,kBAAkB,GAAG,eAAe,CAAC;AAClD,MAAM,CAAC,MAAM,wBAAwB,GAAG,eAAe,GAAG,eAAe,CAAC;AAC1E,8EAA8E;AAC9E,MAAM,CAAC,MAAM,iBAAiB,GAAG,qBAAqB,CAAC;AACvD,MAAM,CAAC,MAAM,uBAAuB,GAAG,qBAAqB,GAAG,eAAe,CAAC;AAE/E,MAAM,CAAC,MAAM,kBAAkB,GAAG,gBAAgB,GAAG,uBAAuB,CAAC;AAC7E,MAAM,CAAC,MAAM,kBAAkB,GAAG,gBAAgB,GAAG,uBAAuB,CAAC;AAC7E;;;;GAIG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,CAAC;AAErC;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,EAAE,CAAC;AAErC,MAAM,UAAU,aAAa,CAAC,CAAS,EAAE,CAAS;IAChD,OAAO,CACL,CAAC,IAAI,aAAa,GAAG,mBAAmB;QACxC,CAAC,IAAI,aAAa,GAAG,mBAAmB;QACxC,CAAC,IAAI,aAAa,GAAG,mBAAmB;QACxC,CAAC,IAAI,aAAa,GAAG,mBAAmB,CACzC,CAAC;AACJ,CAAC;AAeD;;;;GAIG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,CAAC;AACtC,MAAM,CAAC,MAAM,qBAAqB,GAAG,EAAE,CAAC;AACxC,mFAAmF;AACnF,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,CAAC;AAEzC,wEAAwE;AACxE,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,CAAC;AAC/B,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,CAAC;AAC/B,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,CAAC;AACjC,MAAM,CAAC,MAAM,sBAAsB,GAAG,EAAE,CAAC;AAEzC,MAAM,mBAAmB,GAAG,oBAAoB,GAAG,aAAa,GAAG,eAAe,GAAG,CAAC,CAAC;AACvF,MAAM,oBAAoB,GAAG,GAAG,CAAC;AACjC,MAAM,qBAAqB,GAAG,EAAE,CAAC;AAEjC,SAAS,aAAa,CACpB,EAAU,EACV,SAAiB,EACjB,cAAsB,EACtB,MAAuB,EACvB,WAAmB;IAEnB,OAAO;QACL,EAAE;QACF,SAAS;QACT,cAAc;QACd,MAAM;QACN,OAAO,EAAE,mBAAmB;QAC5B,OAAO,EAAE,oBAAoB,GAAG,WAAW,GAAG,qBAAqB;KACpE,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH;;;;;;;;;;;;GAYG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAA6B;IACxD,aAAa,CAAC,YAAY,EAAE,GAAG,EAAE,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC;IAChD,oEAAoE;IACpE,uEAAuE;IACvE,4EAA4E;IAC5E,aAAa,CAAC,YAAY,EAAE,GAAG,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;IAC9C,aAAa,CAAC,aAAa,EAAE,GAAG,EAAE,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC;IACjD,aAAa,CAAC,aAAa,EAAE,GAAG,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;IAC/C,aAAa,CAAC,WAAW,EAAE,GAAG,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC;IAC9C,aAAa,CAAC,YAAY,EAAE,GAAG,EAAE,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC;IAChD,aAAa,CAAC,WAAW,EAAE,GAAG,EAAE,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC;IAC/C,aAAa,CAAC,WAAW,EAAE,GAAG,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;IAC9C,aAAa,CAAC,eAAe,EAAE,GAAG,EAAE,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC;IACnD,aAAa,CAAC,YAAY,EAAE,GAAG,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC;IAC/C,aAAa,CAAC,YAAY,EAAE,GAAG,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC;IAChD,aAAa,CAAC,YAAY,EAAE,GAAG,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,CAAC;IACjD,aAAa,CAAC,WAAW,EAAE,GAAG,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,CAAC;CAC/C,CAAC;AAEF,iEAAiE;AACjE,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,CAAC;AAEzC,MAAM,UAAU,sBAAsB,CAAC,MAAuB;IAC5D,OAAO,OAAO,MAAM,EAAE,CAAC;AACzB,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,MAAuB;IACxD,OAAO,WAAW,MAAM,EAAE,CAAC;AAC7B,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,MAAc,EAAE,MAAc;IAChE,KAAK,MAAM,GAAG,IAAI,gBAAgB,EAAE,CAAC;QACnC,IAAI,GAAG,CAAC,SAAS,KAAK,MAAM,IAAI,QAAQ,CAAC,GAAG,CAAC,cAAc,CAAC,KAAK,MAAM;YAAE,OAAO,GAAG,CAAC;IACtF,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,MAAc,EAAE,MAAc;IAC9D,KAAK,MAAM,GAAG,IAAI,gBAAgB,EAAE,CAAC;QACnC,IACE,IAAI,CAAC,GAAG,CAAC,MAAM,GAAG,GAAG,CAAC,OAAO,CAAC,IAAI,aAAa,GAAG,eAAe;YACjE,IAAI,CAAC,GAAG,CAAC,MAAM,GAAG,GAAG,CAAC,OAAO,CAAC,IAAI,aAAa,GAAG,eAAe,EACjE,CAAC;YACD,OAAO,GAAG,CAAC;QACb,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,CAAS,EAAE,CAAS;IACpD,OAAO,iBAAiB,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC;AAC1C,CAAC;AAKD,MAAM,iBAAiB,GAAG,oBAAoB,GAAG,EAAE,CAAC;AACpD,MAAM,kBAAkB,GAAG,EAAE,CAAC;AAC9B,MAAM,mBAAmB,GAAG,EAAE,CAAC;AAE/B,SAAS,WAAW,CAClB,EAAU,EACV,SAAiB,EACjB,cAAsB,EACtB,MAAuB,EACvB,WAAmB;IAEnB,OAAO;QACL,EAAE;QACF,SAAS;QACT,cAAc;QACd,MAAM;QACN,OAAO,EAAE,iBAAiB;QAC1B,OAAO,EAAE,kBAAkB,GAAG,WAAW,GAAG,mBAAmB;KAChE,CAAC;AACJ,CAAC;AAED,MAAM,kBAAkB,GAAG,YAAY,GAAG,eAAe,CAAC;AAC1D,MAAM,kBAAkB,GAAG,YAAY,GAAG,eAAe,CAAC;AAC1D,MAAM,kBAAkB,GAAG,mBAAmB,GAAG,eAAe,CAAC;AACjE,MAAM,oBAAoB,GAAG,mBAAmB,GAAG,eAAe,CAAC;AAEnE;;;;GAIG;AACH,MAAM,CAAC,MAAM,cAAc,GAA2B;IACpD,WAAW,CAAC,gBAAgB,EAAE,UAAU,GAAG,EAAE,EAAE,kBAAkB,EAAE,MAAM,EAAE,CAAC,CAAC;IAC7E,WAAW,CAAC,cAAc,EAAE,UAAU,GAAG,EAAE,EAAE,kBAAkB,GAAG,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC;IAChF,WAAW,CAAC,cAAc,EAAE,UAAU,GAAG,CAAC,EAAE,kBAAkB,GAAG,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC;IAChF,WAAW,CAAC,gBAAgB,EAAE,UAAU,GAAG,CAAC,EAAE,kBAAkB,GAAG,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;IACjF,WAAW,CAAC,cAAc,EAAE,UAAU,GAAG,EAAE,EAAE,kBAAkB,GAAG,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC;IACjF,WAAW,CAAC,iBAAiB,EAAE,mBAAmB,GAAG,EAAE,EAAE,oBAAoB,GAAG,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC;IAC/F,WAAW,CAAC,iBAAiB,EAAE,WAAW,GAAG,EAAE,EAAE,kBAAkB,GAAG,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC;IACrF,8EAA8E;IAC9E,+EAA+E;IAC/E,kEAAkE;IAClE,WAAW,CAAC,kBAAkB,EAAE,WAAW,GAAG,EAAE,EAAE,kBAAkB,GAAG,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;CACtF,CAAC;AAEF;;;;GAIG;AACH,MAAM,UAAU,kBAAkB,CAAC,IAAiB;IAClD,MAAM,MAAM,GAAG,QAAQ,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;IAC7C,IAAI,WAAW,CAAC,IAAI,CAAC,SAAS,EAAE,MAAM,CAAC;QAAE,OAAO,KAAK,CAAC;IACtD,IAAI,WAAW,CAAC,IAAI,CAAC,SAAS,EAAE,MAAM,CAAC;QAAE,OAAO,KAAK,CAAC;IACtD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,CAAC;AACvC,MAAM,CAAC,MAAM,oBAAoB,GAAG,EAAE,CAAC;AAEvC,MAAM,UAAU,oBAAoB,CAAC,MAAuB;IAC1D,OAAO,WAAW,MAAM,EAAE,CAAC;AAC7B,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,MAAuB;IACtD,OAAO,eAAe,MAAM,EAAE,CAAC;AACjC,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,MAAc,EAAE,MAAc;IAC9D,KAAK,MAAM,GAAG,IAAI,cAAc,EAAE,CAAC;QACjC,IAAI,GAAG,CAAC,SAAS,KAAK,MAAM,IAAI,QAAQ,CAAC,GAAG,CAAC,cAAc,CAAC,KAAK,MAAM;YAAE,OAAO,GAAG,CAAC;IACtF,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,MAAc,EAAE,MAAc;IAC5D,KAAK,MAAM,GAAG,IAAI,cAAc,EAAE,CAAC;QACjC,IACE,IAAI,CAAC,GAAG,CAAC,MAAM,GAAG,GAAG,CAAC,OAAO,CAAC,IAAI,aAAa,GAAG,eAAe;YACjE,IAAI,CAAC,GAAG,CAAC,MAAM,GAAG,GAAG,CAAC,OAAO,CAAC,IAAI,aAAa,GAAG,eAAe,EACjE,CAAC;YACD,OAAO,GAAG,CAAC;QACb,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,CAAS,EAAE,CAAS;IAClD,OAAO,eAAe,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC;AACxC,CAAC;AAID,SAAS,cAAc,CACrB,IAAY,EACZ,IAAY,EACZ,KAAa;IAEb,MAAM,EAAE,GAAG,gBAAgB,CAAC;IAC5B,IAAI,KAAK,IAAI,CAAC;QAAE,OAAO,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC;IACrE,MAAM,MAAM,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;IACrC,MAAM,MAAM,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;IAC9C,MAAM,KAAK,GAA+B,EAAE,CAAC;IAC7C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC;QAC/B,MAAM,EAAE,GAAG,MAAM,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,CAAE,CAAC;QACtC,KAAK,CAAC,IAAI,CAAC;YACT,CAAC,EAAE,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YACxC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;SACzC,CAAC,CAAC;IACL,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,mEAAmE;AACnE,SAAS,qBAAqB;IAC5B,MAAM,EAAE,GAAG,gBAAgB,CAAC;IAC5B,MAAM,EAAE,GAAG,mBAAmB,CAAC;IAC/B,MAAM,OAAO,GAA6C;QACxD,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QACR,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QACP,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QACP,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QACP,CAAC,CAAC,EAAE,CAAC,CAAC;QACN,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QACP,CAAC,CAAC,EAAE,CAAC,CAAC;KACP,CAAC;IACF,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC;AACjE,CAAC;AAED,4EAA4E;AAC5E,SAAS,kBAAkB;IACzB,MAAM,EAAE,GAAG,gBAAgB,CAAC;IAC5B,MAAM,IAAI,GAAG,mBAAmB,CAAC;IACjC,MAAM,IAAI,GAAG,mBAAmB,CAAC;IACjC,gFAAgF;IAChF,MAAM,OAAO,GAA6C;QACxD,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC;QACV,CAAC,CAAC,EAAE,IAAI,CAAC;QACT,CAAC,CAAC,EAAE,IAAI,CAAC;QACT,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC;QACV,CAAC,CAAC,EAAE,IAAI,CAAC;QACT,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC;QACV,CAAC,CAAC,EAAE,IAAI,CAAC;QACT,CAAC,CAAC,EAAE,IAAI,CAAC;QACT,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC;QACV,CAAC,CAAC,EAAE,IAAI,CAAC;QACT,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC;QACV,CAAC,CAAC,EAAE,IAAI,CAAC;QACT,CAAC,CAAC,EAAE,IAAI,CAAC;QACT,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC;QACV,CAAC,CAAC,EAAE,IAAI,CAAC;QACT,CAAC,CAAC,EAAE,IAAI,CAAC;KACV,CAAC;IACF,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QAC/B,CAAC,EAAE,EAAE,GAAG,EAAE;QACV,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC;KACxC,CAAC,CAAC,CAAC;AACN,CAAC;AAED,4EAA4E;AAC5E,MAAM,CAAC,MAAM,mBAAmB,GAAsD;IACpF,CAAC,EAAE,kBAAkB,EAAE;IACvB,CAAC,EAAE,qBAAqB,EAAE;IAC1B,CAAC,EAAE,cAAc,CAAC,mBAAmB,EAAE,mBAAmB,EAAE,CAAC,CAAC;IAC9D,CAAC,EAAE,cAAc,CAAC,mBAAmB,EAAE,mBAAmB,EAAE,CAAC,CAAC;CAC/D,CAAC;AAEF;;;;;GAKG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,EAAE,CAAC;AACpC,MAAM,CAAC,MAAM,iBAAiB,GAAG,eAAe,GAAG,CAAC,CAAC;AACrD,MAAM,CAAC,MAAM,uBAAuB,GAAG,GAAG,CAAC;AAC3C,4EAA4E;AAC5E,MAAM,CAAC,MAAM,uBAAuB,GAAG,GAAG,CAAC;AAC3C,MAAM,CAAC,MAAM,uBAAuB,GAAG,uBAAuB,GAAG,eAAe,CAAC;AACjF,MAAM,CAAC,MAAM,uBAAuB,GAAG,uBAAuB,GAAG,eAAe,CAAC;AACjF;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG,GAAG,CAAC;AAC1C,MAAM,CAAC,MAAM,sBAAsB,GAAG,GAAG,CAAC;AAC1C,kFAAkF;AAClF,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,eAAe,EAAE,eAAe,CAAU,CAAC;AACnF,MAAM,CAAC,MAAM,0BAA0B,GAAG,sBAAsB,GAAG,CAAC,CAAC;AAErE,oFAAoF;AACpF,MAAM,UAAU,6BAA6B,CAAC,CAAS,EAAE,CAAS;IAChE,OAAO,CACL,CAAC,IAAI,eAAe,GAAG,uBAAuB;QAC9C,CAAC,IAAI,0BAA0B;QAC/B,uBAAuB,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,IAAI,uBAAuB,CAAC,CACxF,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,MAAM,0BAA0B,GAAG,kBAAkB,CAAC;AAC7D,MAAM,CAAC,MAAM,8BAA8B,GAAG,sBAAsB,GAAG,CAAC,CAAC;AACzE,MAAM,CAAC,MAAM,8BAA8B,GAAG,eAAe,GAAG,CAAC,CAAC;AAClE;;;;GAIG;AACH,MAAM,CAAC,MAAM,0BAA0B,GAAG,WAAW,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AAClE,MAAM,CAAC,MAAM,8BAA8B,GAAG,sBAAsB,CAAC;AACrE,MAAM,CAAC,MAAM,8BAA8B,GAAG,eAAe,GAAG,CAAC,CAAC;AAClE;;GAEG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAG,0BAA0B,GAAG,CAAC,CAAC;AACtE,MAAM,CAAC,MAAM,sBAAsB,GAAG,IAAI,CAAC,KAAK,CAC9C,CAAC,sBAAsB,GAAG,sBAAsB,CAAC,GAAG,CAAC,CACtD,CAAC;AACF,mEAAmE;AACnE,MAAM,CAAC,MAAM,2BAA2B,GAAG,sBAAsB,CAAC;AAClE,yCAAyC;AACzC,MAAM,CAAC,MAAM,2BAA2B,GAAG,sBAAsB,CAAC;AAClE,yCAAyC;AACzC,MAAM,CAAC,MAAM,2BAA2B,GAAG,sBAAsB,CAAC;AAElE;;;;GAIG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,EAAE,CAAC;AACvC,8EAA8E;AAC9E,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAAC,CAAC;AAC3C;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,iCAAiC,GAAG,EAAE,CAAC;AACpD;;;GAGG;AACH,MAAM,CAAC,MAAM,4BAA4B,GAAG,sBAAsB,GAAG,CAAC,CAAC;AACvE,MAAM,CAAC,MAAM,4BAA4B,GAAG,sBAAsB,GAAG,CAAC,CAAC;AAEvE,+EAA+E;AAC/E,MAAM,UAAU,0BAA0B,CAAC,CAAS,EAAE,CAAS;IAC7D,OAAO,CACL,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,oBAAoB,CAAC,IAAI,yBAAyB;QAC/D,CAAC,IAAI,4BAA4B;QACjC,CAAC,IAAI,4BAA4B,CAClC,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,iCAAiC,CAAC,CAAS,EAAE,CAAS;IACpE,OAAO,CAAC,KAAK,oBAAoB,IAAI,CAAC,KAAK,sBAAsB,CAAC;AACpE,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,CAAC;AACtC;;;GAGG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,oBAAoB,GAAG,yBAAyB,GAAG,EAAE,CAAC;AACvF,MAAM,CAAC,MAAM,iBAAiB,GAAG,sBAAsB,GAAG,CAAC,CAAC;AAC5D,MAAM,CAAC,MAAM,iBAAiB,GAAG,iBAAiB,CAAC;AACnD,MAAM,CAAC,MAAM,iBAAiB,GAAG,sBAAsB,GAAG,CAAC,CAAC;AAC5D,sDAAsD;AACtD,MAAM,CAAC,MAAM,kBAAkB,GAAG,iBAAiB,GAAG,CAAC,CAAC;AACxD,MAAM,CAAC,MAAM,kBAAkB,GAAG,iBAAiB,CAAC;AAEpD,MAAM,CAAC,MAAM,6BAA6B,GAAG,CAAC,CAAC;AAC/C,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAAC,CAAC;AAC3C;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,4BAA4B,GAAG,CAAC,CAAC;AAC9C,4EAA4E;AAC5E,MAAM,CAAC,MAAM,kCAAkC,GAAG,MAAM,CAAC;AAEzD,8EAA8E;AAC9E,MAAM,CAAC,MAAM,yBAAyB,GAAwC;IAC5E,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE;IACjB,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE;IACjB,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE;IACjB,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE;IAClB,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE;IAClB,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE;IAClB,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE;IACjB,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE;IACjB,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE;IACjB,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE;IAClB,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE;IAClB,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE;IAClB,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE;IACjB,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE;CACnB,CAAC;AAEF,8EAA8E;AAC9E,MAAM,CAAC,MAAM,wBAAwB,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAW,CAAC;AAEpE,4EAA4E;AAC5E,MAAM,CAAC,MAAM,wBAAwB,GAAwC;IAC3E,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE;IACjB,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE;IACjB,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE;IACjB,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE;IAClB,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE;IAClB,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE;IACjB,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE;IAClB,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE;IAClB,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE;IACjB,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE;CACnB,CAAC;AAEF;;;GAGG;AACH,MAAM,CAAC,MAAM,yBAAyB,GAKhC;IACJ,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE;IAC5C,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE;IAC5C,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE;IAC9C,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE;IAC9C,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE;CAC/C,CAAC;AAWF,MAAM,CAAC,MAAM,eAAe,GAA6B;IACvD;QACE,EAAE,EAAE,cAAc;QAClB,KAAK,EAAE,cAAc;QACrB,IAAI,EAAE,CAAC;QACP,IAAI,EAAE,EAAE;QACR,IAAI,EAAE,EAAE;QACR,IAAI,EAAE,EAAE;KACT;IACD;QACE,EAAE,EAAE,YAAY;QAChB,KAAK,EAAE,gBAAgB;QACvB,IAAI,EAAE,kBAAkB,GAAG,CAAC;QAC5B,IAAI,EAAE,kBAAkB,GAAG,CAAC;QAC5B,IAAI,EAAE,kBAAkB,GAAG,CAAC;QAC5B,IAAI,EAAE,kBAAkB,GAAG,CAAC;KAC7B;IACD;QACE,EAAE,EAAE,WAAW;QACf,KAAK,EAAE,WAAW;QAClB,IAAI,EAAE,YAAY,GAAG,EAAE;QACvB,IAAI,EAAE,YAAY,GAAG,EAAE;QACvB,IAAI,EAAE,EAAE;QACR,IAAI,EAAE,EAAE;KACT;IACD;QACE,EAAE,EAAE,aAAa;QACjB,KAAK,EAAE,aAAa;QACpB,IAAI,EAAE,GAAG;QACT,IAAI,EAAE,GAAG;QACT,IAAI,EAAE,EAAE;QACR,IAAI,EAAE,EAAE;KACT;IACD;QACE,EAAE,EAAE,OAAO;QACX,KAAK,EAAE,QAAQ;QACf,IAAI,EAAE,OAAO,GAAG,aAAa;QAC7B,IAAI,EAAE,OAAO,GAAG,aAAa;QAC7B,IAAI,EAAE,mBAAmB,GAAG,gBAAgB;QAC5C,IAAI,EAAE,mBAAmB,GAAG,gBAAgB;KAC7C;IACD;QACE,EAAE,EAAE,UAAU;QACd,KAAK,EAAE,WAAW;QAClB,IAAI,EAAE,eAAe;QACrB,IAAI,EAAE,iBAAiB,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,GAAG,kBAAkB,CAAC;QACtE,IAAI,EAAE,IAAI,CAAC,GAAG,CACZ,CAAC,EACD,uBAAuB,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,GAAG,kBAAkB,CAAC,CACvE;QACD,IAAI,EAAE,uBAAuB,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,GAAG,kBAAkB,CAAC;KAC7E;IACD;QACE,EAAE,EAAE,YAAY;QAChB,KAAK,EAAE,YAAY;QACnB,IAAI,EAAE,mBAAmB,GAAG,aAAa;QACzC,IAAI,EAAE,mBAAmB,GAAG,aAAa;QACzC,IAAI,EAAE,yBAAyB,GAAG,aAAa;QAC/C,IAAI,EAAE,yBAAyB,GAAG,aAAa;KAChD;IACD;QACE,EAAE,EAAE,gBAAgB;QACpB,KAAK,EAAE,uBAAuB;QAC9B,IAAI,EAAE,iBAAiB;QACvB,IAAI,EAAE,iBAAiB;QACvB,IAAI,EAAE,uBAAuB;QAC7B,IAAI,EAAE,uBAAuB;KAC9B;IACD;QACE,2EAA2E;QAC3E,wEAAwE;QACxE,yEAAyE;QACzE,4EAA4E;QAC5E,iDAAiD;QACjD,EAAE,EAAE,WAAW;QACf,KAAK,EAAE,gBAAgB;QACvB,IAAI,EAAE,UAAU,GAAG,CAAC;QACpB,IAAI,EAAE,UAAU,GAAG,CAAC;QACpB,IAAI,EAAE,YAAY,GAAG,CAAC,GAAG,eAAe;QACxC,IAAI,EAAE,YAAY,GAAG,CAAC,GAAG,eAAe;KACzC;IACD;QACE,EAAE,EAAE,aAAa;QACjB,KAAK,EAAE,aAAa;QACpB,IAAI,EAAE,mBAAmB,GAAG,CAAC;QAC7B,IAAI,EAAE,mBAAmB,GAAG,CAAC;QAC7B,IAAI,EAAE,mBAAmB,GAAG,CAAC,GAAG,eAAe;QAC/C,IAAI,EAAE,mBAAmB,GAAG,CAAC,GAAG,eAAe;KAChD;IACD;QACE,EAAE,EAAE,eAAe;QACnB,KAAK,EAAE,eAAe;QACtB,IAAI,EAAE,aAAa,GAAG,CAAC;QACvB,IAAI,EAAE,aAAa,GAAG,CAAC;QACvB,IAAI,EAAE,eAAe,GAAG,CAAC,GAAG,eAAe;QAC3C,IAAI,EAAE,eAAe,GAAG,CAAC,GAAG,eAAe;KAC5C;CACF,CAAC;AAEF,MAAM,UAAU,eAAe,CAAC,MAAc,EAAE,MAAc;IAC5D,KAAK,MAAM,IAAI,IAAI,eAAe,EAAE,CAAC;QACnC,IAAI,MAAM,GAAG,IAAI,CAAC,IAAI,IAAI,MAAM,GAAG,IAAI,CAAC,IAAI;YAAE,SAAS;QACvD,IAAI,MAAM,GAAG,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,MAAM,GAAG,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC;YAAE,SAAS;QAC3E,OAAO,IAAI,CAAC;IACd,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAWD,SAAS,mBAAmB,CAAC,EAAU;IACrC,MAAM,IAAI,GAAG,eAAe,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;IAC9D,IAAI,CAAC,IAAI;QAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;IACjC,OAAO;QACL,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC1C,CAAC,EAAE,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;KACrD,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAgC;IAC9D,EAAE,GAAG,mBAAmB,CAAC,cAAc,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE;IACzD,EAAE,CAAC,EAAE,kBAAkB,EAAE,CAAC,EAAE,QAAQ,CAAC,kBAAkB,CAAC,EAAE,KAAK,EAAE,YAAY,EAAE;IAC/E,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,QAAQ,CAAC,mBAAmB,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE;IACjE,EAAE,GAAG,mBAAmB,CAAC,aAAa,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE;IACxD,EAAE,GAAG,mBAAmB,CAAC,WAAW,CAAC,EAAE,KAAK,EAAE,WAAW,EAAE;IAC3D,EAAE,GAAG,mBAAmB,CAAC,UAAU,CAAC,EAAE,KAAK,EAAE,WAAW,EAAE;IAC1D,EAAE,CAAC,EAAE,oBAAoB,EAAE,CAAC,EAAE,sBAAsB,EAAE,KAAK,EAAE,aAAa,EAAE;IAC5E,EAAE,CAAC,EAAE,WAAW,EAAE,CAAC,EAAE,mBAAmB,EAAE,KAAK,EAAE,gBAAgB,EAAE;IACnE,EAAE,CAAC,EAAE,mBAAmB,EAAE,CAAC,EAAE,mBAAmB,EAAE,KAAK,EAAE,aAAa,EAAE;IACxE;QACE,CAAC,EAAE,eAAe;QAClB,CAAC,EAAE,QAAQ,CAAC,qBAAqB,CAAC;QAClC,KAAK,EAAE,SAAS;QAChB,IAAI,EAAE,SAAS;KAChB;CACF,CAAC;AAsBF;;;;;;;GAOG;AACH,MAAM,UAAU,UAAU,CAAC,CAAS,EAAE,CAAS;IAC7C,4EAA4E;IAC5E,4EAA4E;IAC5E,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,oBAAoB;QAAE,OAAO,KAAK,CAAC;IACrD,4EAA4E;IAC5E,gDAAgD;IAChD,MAAM,aAAa,GAAG,mBAAmB,GAAG,qBAAqB,GAAG,CAAC,CAAC;IACtE,IACE,CAAC,IAAI,cAAc,GAAG,aAAa;QACnC,CAAC,IAAI,cAAc,GAAG,aAAa;QACnC,CAAC,IAAI,0BAA0B,GAAG,CAAC;QACnC,CAAC,IAAI,QAAQ,CAAC,yBAAyB,CAAC,GAAG,EAAE,EAC7C,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IACD,6EAA6E;IAC7E,yDAAyD;IACzD,IAAI,CAAC,IAAI,sBAAsB,GAAG,CAAC,IAAI,CAAC,IAAI,eAAe,GAAG,uBAAuB,GAAG,CAAC,EAAE,CAAC;QAC1F,OAAO,IAAI,CAAC;IACd,CAAC;IACD,8EAA8E;IAC9E,8EAA8E;IAC9E,yBAAyB;IACzB,OAAO,CACL,CAAC,GAAG,sBAAsB;QAC1B,CAAC,GAAG,aAAa;QACjB,CAAC,IAAI,cAAc,GAAG,CAAC,CACxB,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,CAAS,EAAE,CAAS;IAC5C,IAAI,UAAU,CAAC,CAAC,EAAE,CAAC,CAAC;QAAE,OAAO,MAAM,CAAC;IACpC,OAAO,OAAO,CAAC;AACjB,CAAC"}
@@ -2,6 +2,8 @@ import type { ChunkCoord, ChunkData, NpcKind, WorldEntity } from './constants.js
2
2
  import type { CharacterAppearance } from './appearance.js';
3
3
  import type { ClientConfig, PartialClientConfig } from './clientConfig.js';
4
4
  import type { QuestId, QuestReward, QuestsSnapshot } from './quests.js';
5
+ import type { ActiveBounty, BountyOffer, BountyTargetKind } from './bounty.js';
6
+ import type { TimedAreaId } from './timedAccess.js';
5
7
  import type { EquipmentSlots } from './equipment.js';
6
8
  import type { WorldZoneId } from './zones.js';
7
9
  export type { WorldZoneId } from './zones.js';
@@ -23,6 +25,8 @@ export type CharacterStats = {
23
25
  foraging: number;
24
26
  woodwork: number;
25
27
  explorer: number;
28
+ /** Bounty Hunter - trained only by completing Bounty Board contracts. */
29
+ bounty: number;
26
30
  combatXp: number;
27
31
  strengthXp: number;
28
32
  archeryXp: number;
@@ -32,6 +36,7 @@ export type CharacterStats = {
32
36
  foragingXp: number;
33
37
  woodworkXp: number;
34
38
  explorerXp: number;
39
+ bountyXp: number;
35
40
  };
36
41
  /** The currently selected combat training style. */
37
42
  export type CombatStance = 'strength' | 'archery' | 'mastery' | 'balanced';
@@ -68,6 +73,15 @@ export type PlayerPublic = {
68
73
  carving?: boolean;
69
74
  /** Cooking at a campfire (crouched, tending the fire). */
70
75
  cooking?: boolean;
76
+ /**
77
+ * Channelled world action (e.g. squeezing a webbed path). `endsAt` is
78
+ * Date.now() on the server when the channel completes.
79
+ */
80
+ channel?: {
81
+ label: string;
82
+ endsAt: number;
83
+ durationMs: number;
84
+ };
71
85
  weapon?: string;
72
86
  boots?: string;
73
87
  gloves?: string;
@@ -119,7 +133,7 @@ export type InventorySlot = {
119
133
  /** Craft quality for weapons (woodwork level when carved). */
120
134
  precision?: number;
121
135
  };
122
- export type ItemAction = 'eat' | 'drop' | 'equip' | 'unequip';
136
+ export type ItemAction = 'eat' | 'drop' | 'equip' | 'unequip' | 'open';
123
137
  /**
124
138
  * A shop listing a player can buy. Normally costed in gold via `price`, but a
125
139
  * listing can instead be a barter (e.g. Wilson's rod-for-maggots trade) by
@@ -145,7 +159,7 @@ export type JoinRejectedReason = 'name_taken' | 'invalid_name';
145
159
  * information.
146
160
  */
147
161
  export type NoticeStyle = 'warning' | 'quiet' | 'combat' | 'reward' | 'area' | 'quest';
148
- export type LevelUpSkill = 'combat' | 'strength' | 'archery' | 'precision' | 'fishing' | 'cooking' | 'foraging' | 'woodwork' | 'explorer';
162
+ export type LevelUpSkill = 'combat' | 'strength' | 'archery' | 'precision' | 'fishing' | 'cooking' | 'foraging' | 'woodwork' | 'explorer' | 'bounty';
149
163
  export declare function skillDisplayName(skill: LevelUpSkill): string;
150
164
  export type TradeOfferSlot = {
151
165
  kind: string;
@@ -291,6 +305,28 @@ export type ClientMessage =
291
305
  type: 'npc_action';
292
306
  npcId: string;
293
307
  action: string;
308
+ }
309
+ /** Open the Bounty Board - via the board entity or by talking to Bruce. */
310
+ | {
311
+ type: 'bounty_open';
312
+ entityId?: string;
313
+ npcId?: string;
314
+ } | {
315
+ type: 'bounty_accept';
316
+ target: BountyTargetKind;
317
+ } | {
318
+ type: 'bounty_abandon';
319
+ }
320
+ /** Buy `blocks` blocks of time at a paid area's door. */
321
+ | {
322
+ type: 'timed_access_buy';
323
+ area: TimedAreaId;
324
+ blocks: number;
325
+ npcId?: string;
326
+ } | {
327
+ type: 'bounty_claim';
328
+ entityId?: string;
329
+ npcId?: string;
294
330
  } | {
295
331
  type: 'use_item';
296
332
  item: string;
@@ -416,7 +452,7 @@ export type ServerMessage = {
416
452
  fishingSpots?: Vec2[];
417
453
  /** Fixed lake fishing spots (perch / tench). */
418
454
  lakeFishingSpots?: Array<{
419
- kind: 'perch' | 'tench';
455
+ kind: 'perch' | 'tench' | 'trout';
420
456
  x: number;
421
457
  y: number;
422
458
  }>;
@@ -432,6 +468,8 @@ export type ServerMessage = {
432
468
  anneFoxKills?: number;
433
469
  /** Persistent Goblin Soldier kill count for the Battlefield Captain. */
434
470
  captainGoblinKills?: number;
471
+ /** The player's current Bounty Board contract, if any. */
472
+ activeBounty?: ActiveBounty | null;
435
473
  } | {
436
474
  type: 'join_rejected';
437
475
  reason: JoinRejectedReason;
@@ -578,11 +616,47 @@ export type ServerMessage = {
578
616
  hasKnife: boolean;
579
617
  } | {
580
618
  type: 'woodcraft_close';
619
+ }
620
+ /**
621
+ * Remaining time inside a paid area, or null once it is spent.
622
+ *
623
+ * Sent on login, on purchase, and then only every TIMED_ACCESS_PUSH_MS while
624
+ * the clock runs. The HUD counts down locally between pushes, so this is a
625
+ * correction rather than a per-second tick - the timer must not cost a message
626
+ * a second per player standing in the fishery.
627
+ */
628
+ | {
629
+ type: 'timed_access';
630
+ area: TimedAreaId | null;
631
+ msRemaining: number;
632
+ }
633
+ /**
634
+ * Time is up. The client fades out, and the server has already moved the
635
+ * player, so the fade back in lands them outside the gate.
636
+ */
637
+ | {
638
+ type: 'timed_access_expired';
639
+ area: TimedAreaId;
640
+ fadeMs: number;
581
641
  } | {
582
642
  type: 'quests';
583
643
  quests: QuestsSnapshot;
584
644
  anneFoxKills?: number;
585
645
  captainGoblinKills?: number;
646
+ } | {
647
+ type: 'bounty_state';
648
+ /** The player's active contract, or null when they have none. */
649
+ active: ActiveBounty | null;
650
+ /** Offers Bruce currently shows for the player's Combat level. */
651
+ offers: BountyOffer[];
652
+ /** True when the active contract is done and can be handed in. */
653
+ canClaim: boolean;
654
+ /**
655
+ * True only when this is the reply to the player opening the board or
656
+ * Bruce - the client shows the panel. Absent for the login snapshot and
657
+ * for kill-progress refreshes, which update the panel silently.
658
+ */
659
+ opened?: boolean;
586
660
  } | {
587
661
  type: 'quest_offer';
588
662
  quest: QuestId;
@@ -619,7 +693,7 @@ export type ServerMessage = {
619
693
  } | {
620
694
  type: 'lake_fishing_spots';
621
695
  spots: Array<{
622
- kind: 'perch' | 'tench';
696
+ kind: 'perch' | 'tench' | 'trout';
623
697
  x: number;
624
698
  y: number;
625
699
  }>;
@@ -668,7 +742,7 @@ export type ServerMessage = {
668
742
  health: number;
669
743
  healthMax: number;
670
744
  /** Ranged attack flavor - client renders a projectile instead of a melee punch. */
671
- projectile?: 'blueberry' | 'arrow';
745
+ projectile?: 'blueberry' | 'arrow' | 'venom';
672
746
  } | {
673
747
  type: 'combat_end';
674
748
  playerId: string;