@provable-games/dm-engine 0.5.1 → 0.6.0
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/constants/game.d.ts +2 -0
- package/dist/constants/game.d.ts.map +1 -1
- package/dist/constants/game.js +2 -0
- package/dist/constants/game.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/packing.d.ts +51 -3
- package/dist/packing.d.ts.map +1 -1
- package/dist/packing.js +99 -8
- package/dist/packing.js.map +1 -1
- package/dist/protocol.d.ts +8 -0
- package/dist/protocol.d.ts.map +1 -1
- package/dist/protocol.js +9 -1
- package/dist/protocol.js.map +1 -1
- package/dist/replay.d.ts +22 -9
- package/dist/replay.d.ts.map +1 -1
- package/dist/replay.js +170 -45
- package/dist/replay.js.map +1 -1
- package/dist/rules/boosts.d.ts +39 -0
- package/dist/rules/boosts.d.ts.map +1 -0
- package/dist/rules/boosts.js +105 -0
- package/dist/rules/boosts.js.map +1 -0
- package/dist/rules/game.d.ts +19 -3
- package/dist/rules/game.d.ts.map +1 -1
- package/dist/rules/game.js +66 -42
- package/dist/rules/game.js.map +1 -1
- package/dist/rules/gameSimulation.d.ts +22 -6
- package/dist/rules/gameSimulation.d.ts.map +1 -1
- package/dist/rules/gameSimulation.js +89 -44
- package/dist/rules/gameSimulation.js.map +1 -1
- package/dist/rules/loot.d.ts +39 -4
- package/dist/rules/loot.d.ts.map +1 -1
- package/dist/rules/loot.js +75 -142
- package/dist/rules/loot.js.map +1 -1
- package/dist/transcript.d.ts +6 -1
- package/dist/transcript.d.ts.map +1 -1
- package/dist/transcript.js.map +1 -1
- package/dist/view.d.ts +7 -2
- package/dist/view.d.ts.map +1 -1
- package/dist/view.js +10 -4
- package/dist/view.js.map +1 -1
- package/package.json +1 -1
|
@@ -3,10 +3,11 @@
|
|
|
3
3
|
* Pure functions porting Cairo contract formulas for use in useGameCore.
|
|
4
4
|
*/
|
|
5
5
|
import { BEAST_NAMES, BEAST_SPECIAL_NAME_LEVEL_UNLOCK } from "../constants/beast.js";
|
|
6
|
-
import { MAX_ADVENTURER_HEALTH, MAX_ADVENTURER_XP, MAX_GOLD, MIN_DAMAGE_FROM_OBSTACLES, } from "../constants/game.js";
|
|
6
|
+
import { MAX_ADVENTURER_HEALTH, MAX_ADVENTURER_XP, MAX_GOLD, MAX_STAT_UPGRADES_AVAILABLE, MAX_STAT_VALUE, MIN_DAMAGE_FROM_OBSTACLES, } from "../constants/game.js";
|
|
7
7
|
import { ItemId, SUFFIX_UNLOCK_GREATNESS } from "../constants/loot.js";
|
|
8
8
|
import { getBeastName, getBeastTier, getBeastType } from "./beast.js";
|
|
9
|
-
import {
|
|
9
|
+
import { addToBag, bagIsFull, removeFromBag } from "../packing.js";
|
|
10
|
+
import { calculateAttackDamage, calculateBeastDamage, calculateLevel, elementalAdjustedDamage, jewelryArmorBonus, } from "./game.js";
|
|
10
11
|
import { getMaxHealth } from "./health.js";
|
|
11
12
|
import { isPinned, ItemUtils, Tier } from "./loot.js";
|
|
12
13
|
import { generateStartingStatsFromSeed } from "./processFutures.js";
|
|
@@ -274,7 +275,7 @@ export const generateObstacle = (adventurerLevel, rolls) => {
|
|
|
274
275
|
return { id, level, tier, type };
|
|
275
276
|
};
|
|
276
277
|
// ─── Obstacle damage ─────────────────────────────────────────────
|
|
277
|
-
export const calculateObstacleDamage = (obstacle, armor, adventurerLevel, baseDamageReduction, rolls) => {
|
|
278
|
+
export const calculateObstacleDamage = (obstacle, armor, adventurerLevel, baseDamageReduction, rolls, neck = { id: 0, xp: 0 }) => {
|
|
278
279
|
const slot = getAttackLocation(rolls?.attackLocationRnd);
|
|
279
280
|
const attackPower = obstacle.level * getTierMultiplier(obstacle.tier);
|
|
280
281
|
const armorType = getArmorType(armor.id);
|
|
@@ -289,6 +290,13 @@ export const calculateObstacleDamage = (obstacle, armor, adventurerLevel, baseDa
|
|
|
289
290
|
adjustedAttack *= 2;
|
|
290
291
|
}
|
|
291
292
|
let damage = Math.max(MIN_DAMAGE_FROM_OBSTACLES, adjustedAttack - armorPower);
|
|
293
|
+
// A matching necklace reduces obstacle damage exactly as it reduces a beast's:
|
|
294
|
+
// `get_obstacle_damage` applies `jewelry_armor_bonus` and re-floors, and this used to be
|
|
295
|
+
// missing here entirely even though the beast path had it.
|
|
296
|
+
const neckReduction = jewelryArmorBonus(armor, neck);
|
|
297
|
+
if (neckReduction > 0) {
|
|
298
|
+
damage = Math.max(MIN_DAMAGE_FROM_OBSTACLES, damage - neckReduction);
|
|
299
|
+
}
|
|
292
300
|
// The clamp above is Cairo's: `get_obstacle_damage` passes MINIMUM_DAMAGE_FROM_OBSTACLES into
|
|
293
301
|
// `calculate_damage`. `_obstacle_encounter` then reduces what came back and does NOT re-apply
|
|
294
302
|
// it, so neither does this — same seam as the ambush path above.
|
|
@@ -347,9 +355,13 @@ export const increaseXp = (adventurer, amount) => {
|
|
|
347
355
|
adventurer.xp = Math.min(MAX_ADVENTURER_XP, adventurer.xp + amount);
|
|
348
356
|
const newLevel = calculateLevel(adventurer.xp);
|
|
349
357
|
if (newLevel > previousLevel) {
|
|
350
|
-
adventurer
|
|
358
|
+
grantStatUpgrades(adventurer, newLevel - previousLevel);
|
|
351
359
|
}
|
|
352
360
|
};
|
|
361
|
+
/** `ImplAdventurer::increase_stat_upgrades_available` -- saturates at 15, the field's width. */
|
|
362
|
+
export const grantStatUpgrades = (adventurer, amount) => {
|
|
363
|
+
adventurer.stat_upgrades_available = Math.min(MAX_STAT_UPGRADES_AVAILABLE, adventurer.stat_upgrades_available + amount);
|
|
364
|
+
};
|
|
353
365
|
export const canExplore = (adventurer) => {
|
|
354
366
|
return (adventurer.health > 0 &&
|
|
355
367
|
adventurer.beast_health === 0 &&
|
|
@@ -384,7 +396,9 @@ export const getLootDiscoveryGoldConversion = (adventurer, bag, itemId) => {
|
|
|
384
396
|
const slot = ItemUtils.getItemSlot(itemId);
|
|
385
397
|
const slotKey = slot.toLowerCase();
|
|
386
398
|
const slotFree = equipment[slotKey]?.id === 0;
|
|
387
|
-
|
|
399
|
+
// `ImplBag::is_full` counts OCCUPIED slots. `bag.length` is 15 for every bag now that holes are
|
|
400
|
+
// carried, so reading the length here would convert every discovery to gold.
|
|
401
|
+
const bagFull = bagIsFull(bag);
|
|
388
402
|
let reason;
|
|
389
403
|
if (equipped || inBag) {
|
|
390
404
|
reason = "owned";
|
|
@@ -429,8 +443,8 @@ export const processLootDiscovery = (adventurer, bag, itemId) => {
|
|
|
429
443
|
equipment[slotKey].xp = newItem.xp;
|
|
430
444
|
}
|
|
431
445
|
else {
|
|
432
|
-
//
|
|
433
|
-
bag
|
|
446
|
+
// The first EMPTY slot, which after a drop is not the end of the bag.
|
|
447
|
+
addToBag(bag, newItem);
|
|
434
448
|
}
|
|
435
449
|
return null;
|
|
436
450
|
};
|
|
@@ -456,14 +470,14 @@ export const isCriticalHit = (luck, criticalHitRnd) => {
|
|
|
456
470
|
* Delegates to calculateAttackDamage from game.ts which includes weapon specials,
|
|
457
471
|
* ring name-match bonus, and ring critical hit bonus.
|
|
458
472
|
*/
|
|
459
|
-
export const calculateAdventurerAttackDamage = (adventurer, beast, specialsOverride = 0n) => {
|
|
460
|
-
const { baseDamage, criticalDamage } = calculateAttackDamage(adventurer.equipment.weapon, adventurer, beast, specialsOverride);
|
|
473
|
+
export const calculateAdventurerAttackDamage = (adventurer, beast, adventurerId, specialsOverride = 0n) => {
|
|
474
|
+
const { baseDamage, criticalDamage } = calculateAttackDamage(adventurer.equipment.weapon, adventurer, beast, adventurerId, specialsOverride);
|
|
461
475
|
return { normal: baseDamage, crit: criticalDamage };
|
|
462
476
|
};
|
|
463
|
-
export const calculateBeastCounterAttack = (beast, adventurer, baseDamageReduction, isAmbush = false, rolls, specialsOverride = 0n) => {
|
|
477
|
+
export const calculateBeastCounterAttack = (beast, adventurer, baseDamageReduction, isAmbush = false, rolls, adventurerId, specialsOverride = 0n) => {
|
|
464
478
|
const slot = getAttackLocation(rolls?.attackLocationRnd);
|
|
465
479
|
const armor = getArmorAtSlot(adventurer, slot);
|
|
466
|
-
const beastDmg = calculateBeastDamage(beast, adventurer, armor, specialsOverride);
|
|
480
|
+
const beastDmg = calculateBeastDamage(beast, adventurer, armor, adventurerId, specialsOverride);
|
|
467
481
|
// Level-based crit check for beasts
|
|
468
482
|
const adventurerLevel = calculateLevel(adventurer.xp);
|
|
469
483
|
const critChance = Math.min(adventurerLevel, 100);
|
|
@@ -487,14 +501,19 @@ export const calculateBeastCounterAttack = (beast, adventurer, baseDamageReducti
|
|
|
487
501
|
* 12 random point allocations across 6 stats.
|
|
488
502
|
*/
|
|
489
503
|
// ─── Inventory: equip / drop ─────────────────────────────────────
|
|
490
|
-
/**
|
|
491
|
-
|
|
504
|
+
/**
|
|
505
|
+
* The suffix an item is currently granting, or null below greatness 15.
|
|
506
|
+
*
|
|
507
|
+
* Takes the DERIVED `getItemSpecialsSeed(salt, adventurer_id)`, never the raw salt -- the two
|
|
508
|
+
* name different specials for every one of the 101 items.
|
|
509
|
+
*/
|
|
510
|
+
const getItemSuffix = (item, itemSpecialsSeed, specialsOverride) => {
|
|
492
511
|
if (item.id === 0)
|
|
493
512
|
return null;
|
|
494
513
|
const greatness = getItemGreatness(item);
|
|
495
514
|
if (greatness < SUFFIX_UNLOCK_GREATNESS)
|
|
496
515
|
return null;
|
|
497
|
-
const specials = ItemUtils.getSpecials(item.id, greatness,
|
|
516
|
+
const specials = ItemUtils.getSpecials(item.id, greatness, itemSpecialsSeed, specialsOverride);
|
|
498
517
|
return specials.special1;
|
|
499
518
|
};
|
|
500
519
|
/** Apply suffix boost to stats (matches contract apply_suffix_boost). */
|
|
@@ -676,7 +695,7 @@ export const grantXpToEquippedItems = (adventurer, xpAmount, adventurerId, itemS
|
|
|
676
695
|
if (newLevel <= previousLevel || itemSpecialsRnd === undefined)
|
|
677
696
|
continue;
|
|
678
697
|
if (newLevel === ITEM_MAX_GREATNESS) {
|
|
679
|
-
adventurer
|
|
698
|
+
grantStatUpgrades(adventurer, MAX_GREATNESS_STAT_BONUS);
|
|
680
699
|
}
|
|
681
700
|
const { suffixUnlocked, prefixesUnlocked } = unlockedSpecials(previousLevel, newLevel);
|
|
682
701
|
if (!suffixUnlocked && !prefixesUnlocked)
|
|
@@ -751,17 +770,11 @@ const removeBagBoost = (stats, suffix) => {
|
|
|
751
770
|
* Equip a single item from bag into the correct equipment slot.
|
|
752
771
|
* If the slot is occupied, the displaced item moves to the bag.
|
|
753
772
|
*/
|
|
754
|
-
export const equipItem = (adventurer, bag, itemId, specialsOverride = 0n) => {
|
|
755
|
-
const
|
|
756
|
-
// Find and remove item from bag (preserve XP)
|
|
757
|
-
|
|
758
|
-
|
|
759
|
-
if (bagIndex >= 0) {
|
|
760
|
-
item = bag.splice(bagIndex, 1)[0];
|
|
761
|
-
}
|
|
762
|
-
else {
|
|
763
|
-
item = { id: itemId, xp: 0 };
|
|
764
|
-
}
|
|
773
|
+
export const equipItem = (adventurer, bag, itemId, adventurerId, specialsOverride = 0n) => {
|
|
774
|
+
const seed = ItemUtils.getItemSpecialsSeed(adventurer.item_specials_salt, adventurerId);
|
|
775
|
+
// Find and remove item from bag (preserve XP). The slot it leaves stays empty, and the
|
|
776
|
+
// displaced item below fills the first hole -- which is that one, exactly as `equip_item` does.
|
|
777
|
+
const item = removeFromBag(bag, itemId) ?? { id: itemId, xp: 0 };
|
|
765
778
|
// Determine target slot
|
|
766
779
|
const slotName = ItemUtils.getItemSlot(itemId);
|
|
767
780
|
const slotKey = slotName.toLowerCase();
|
|
@@ -769,17 +782,17 @@ export const equipItem = (adventurer, bag, itemId, specialsOverride = 0n) => {
|
|
|
769
782
|
// Displace current item to bag if it exists
|
|
770
783
|
if (current && current.id !== 0) {
|
|
771
784
|
// Remove suffix boost for displaced item (contract: remove_suffix_boost)
|
|
772
|
-
const displacedSuffix = getItemSuffix(current,
|
|
785
|
+
const displacedSuffix = getItemSuffix(current, seed, specialsOverride);
|
|
773
786
|
if (displacedSuffix) {
|
|
774
787
|
removeSuffixBoost(adventurer.stats, displacedSuffix);
|
|
775
788
|
}
|
|
776
|
-
bag
|
|
789
|
+
addToBag(bag, current);
|
|
777
790
|
}
|
|
778
791
|
// Equip new item
|
|
779
792
|
adventurer.equipment[slotKey].id = item.id;
|
|
780
793
|
adventurer.equipment[slotKey].xp = item.xp;
|
|
781
794
|
// Apply suffix boost for newly equipped item (contract: apply_suffix_boost)
|
|
782
|
-
const newSuffix = getItemSuffix(item,
|
|
795
|
+
const newSuffix = getItemSuffix(item, seed, specialsOverride);
|
|
783
796
|
if (newSuffix) {
|
|
784
797
|
applySuffixBoost(adventurer.stats, newSuffix);
|
|
785
798
|
}
|
|
@@ -787,8 +800,13 @@ export const equipItem = (adventurer, bag, itemId, specialsOverride = 0n) => {
|
|
|
787
800
|
/**
|
|
788
801
|
* Drop a single item from equipment or bag.
|
|
789
802
|
*/
|
|
790
|
-
|
|
791
|
-
|
|
803
|
+
/**
|
|
804
|
+
* `Inventory::_drop` for one item. Returns false when the adventurer does not own it, which the
|
|
805
|
+
* contract answers with a `'Item not owned by adventurer'` panic -- so a caller replaying a
|
|
806
|
+
* transcript has to treat false as a refused action, not a no-op.
|
|
807
|
+
*/
|
|
808
|
+
export const dropItem = (adventurer, bag, itemId, adventurerId, specialsOverride = 0n) => {
|
|
809
|
+
const seed = ItemUtils.getItemSpecialsSeed(adventurer.item_specials_salt, adventurerId);
|
|
792
810
|
// Check equipment first
|
|
793
811
|
for (const slotKey of [
|
|
794
812
|
"weapon",
|
|
@@ -802,10 +820,12 @@ export const dropItem = (adventurer, bag, itemId, specialsOverride = 0n) => {
|
|
|
802
820
|
]) {
|
|
803
821
|
const item = adventurer.equipment[slotKey];
|
|
804
822
|
if (item.id === itemId) {
|
|
805
|
-
//
|
|
806
|
-
|
|
823
|
+
// An equipped item was granting BOTH halves of its suffix, so both come off. The bag half
|
|
824
|
+
// used to be missing here, which left vitality and charisma permanently inflated.
|
|
825
|
+
const suffix = getItemSuffix(item, seed, specialsOverride);
|
|
807
826
|
if (suffix) {
|
|
808
827
|
removeSuffixBoost(adventurer.stats, suffix);
|
|
828
|
+
removeBagBoost(adventurer.stats, suffix);
|
|
809
829
|
}
|
|
810
830
|
item.id = 0;
|
|
811
831
|
item.xp = 0;
|
|
@@ -813,26 +833,51 @@ export const dropItem = (adventurer, bag, itemId, specialsOverride = 0n) => {
|
|
|
813
833
|
const maxHp = getMaxHealth(adventurer.stats.vitality);
|
|
814
834
|
if (adventurer.health > maxHp)
|
|
815
835
|
adventurer.health = maxHp;
|
|
816
|
-
return;
|
|
836
|
+
return true;
|
|
817
837
|
}
|
|
818
838
|
}
|
|
819
839
|
// Check bag
|
|
820
|
-
const
|
|
821
|
-
if (
|
|
822
|
-
|
|
823
|
-
|
|
824
|
-
|
|
825
|
-
|
|
826
|
-
|
|
827
|
-
|
|
828
|
-
|
|
829
|
-
}
|
|
840
|
+
const bagItem = bag.find((i) => i.id === itemId && i.id !== 0);
|
|
841
|
+
if (!bagItem)
|
|
842
|
+
return false;
|
|
843
|
+
// Remove bag boost for bag item (contract: remove_bag_boost)
|
|
844
|
+
const suffix = getItemSuffix(bagItem, seed, specialsOverride);
|
|
845
|
+
if (suffix) {
|
|
846
|
+
removeBagBoost(adventurer.stats, suffix);
|
|
847
|
+
}
|
|
848
|
+
removeFromBag(bag, itemId);
|
|
830
849
|
// Clamp health
|
|
831
850
|
const maxHp = getMaxHealth(adventurer.stats.vitality);
|
|
832
851
|
if (adventurer.health > maxHp)
|
|
833
852
|
adventurer.health = maxHp;
|
|
853
|
+
return true;
|
|
834
854
|
};
|
|
835
855
|
// ─── Combat: Starting stats ─────────────────────────────────────
|
|
856
|
+
/**
|
|
857
|
+
* `ImplStats::apply_random_stats` -- deal `count` points onto stats that are ALREADY there.
|
|
858
|
+
*
|
|
859
|
+
* Point by point, each one saturating at `MAX_STAT_VALUE`. Dealing them into a fresh delta and
|
|
860
|
+
* adding it afterwards is not the same thing: the contract clamps against the running total, so a
|
|
861
|
+
* stat that is already at 31 -- which an overridden start or a boosted one can be -- swallows the
|
|
862
|
+
* point instead of overflowing the 5-bit field.
|
|
863
|
+
*/
|
|
864
|
+
export const applyRandomStats = (stats, seed, count) => {
|
|
865
|
+
const order = [
|
|
866
|
+
"strength",
|
|
867
|
+
"dexterity",
|
|
868
|
+
"vitality",
|
|
869
|
+
"intelligence",
|
|
870
|
+
"wisdom",
|
|
871
|
+
"charisma",
|
|
872
|
+
];
|
|
873
|
+
let entropy = seed & ((1n << 64n) - 1n);
|
|
874
|
+
for (let i = 0; i < count; i += 1) {
|
|
875
|
+
const key = order[Number(entropy % 6n)];
|
|
876
|
+
if (stats[key] < MAX_STAT_VALUE)
|
|
877
|
+
stats[key] += 1;
|
|
878
|
+
entropy /= 6n;
|
|
879
|
+
}
|
|
880
|
+
};
|
|
836
881
|
export const generateStartingStats = (levelSeed, count = 12) => {
|
|
837
882
|
// Seeded, this is `ImplStats::apply_random_stats`: the same points, dealt by repeated
|
|
838
883
|
// `divmod 6` over the seed instead of by that many independent random draws.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gameSimulation.js","sourceRoot":"","sources":["../../src/rules/gameSimulation.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"gameSimulation.js","sourceRoot":"","sources":["../../src/rules/gameSimulation.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,WAAW,EAAE,+BAA+B,EAAE,MAAM,uBAAuB,CAAC;AACrF,OAAO,EACL,qBAAqB,EACrB,iBAAiB,EACjB,QAAQ,EACR,2BAA2B,EAC3B,cAAc,EACd,yBAAyB,GAC1B,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,MAAM,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAC;AAGvE,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AACtE,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AACnE,OAAO,EACL,qBAAqB,EACrB,oBAAoB,EACpB,cAAc,EACd,uBAAuB,EACvB,iBAAiB,GAClB,MAAM,WAAW,CAAC;AACnB,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACtD,OAAO,EAAE,6BAA6B,EAAE,MAAM,qBAAqB,CAAC;AAEpE,wFAAwF;AAExF,MAAM,kBAAkB,GAAG,EAAE,CAAC;AAC9B,MAAM,wBAAwB,GAAG,CAAC,CAAC;AACnC,MAAM,uBAAuB,GAAG,EAAE,CAAC;AACnC,MAAM,6BAA6B,GAAG,EAAE,CAAC;AACzC,MAAM,WAAW,GAAG,GAAG,CAAC;AACxB,MAAM,eAAe,GAAG;IACtB,QAAQ;IACR,OAAO;IACP,MAAM;IACN,OAAO;IACP,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;CACE,CAAC;AAEX,oEAAoE;AAEpE,MAAM,CAAC,MAAM,QAAQ,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,GAAG,CAAC,CAAC;AAC9D,MAAM,CAAC,MAAM,SAAS,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,KAAK,CAAC,CAAC;AACjE,MAAM,CAAC,MAAM,SAAS,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,WAAW,CAAC,CAAC;AAEvE,mEAAmE;AAEnE,MAAM,CAAC,MAAM,QAAQ,GAAG;IACtB,MAAM,CAAC,IAAI;IACX,MAAM,CAAC,IAAI;IACX,MAAM,CAAC,IAAI;IACX,MAAM,CAAC,IAAI;IACX,MAAM,CAAC,KAAK;IACZ,MAAM,CAAC,KAAK;IACZ,MAAM,CAAC,MAAM;IACb,MAAM,CAAC,IAAI;IACX,MAAM,CAAC,IAAI;IACX,MAAM,CAAC,QAAQ;IACf,MAAM,CAAC,UAAU;IACjB,MAAM,CAAC,SAAS;IAChB,MAAM,CAAC,WAAW;IAClB,MAAM,CAAC,UAAU;IACjB,MAAM,CAAC,WAAW;IAClB,MAAM,CAAC,YAAY;IACnB,MAAM,CAAC,YAAY;IACnB,MAAM,CAAC,aAAa;IACpB,MAAM,CAAC,GAAG;CACX,CAAC;AAEF,MAAM,CAAC,MAAM,QAAQ,GAAG;IACtB,MAAM,CAAC,SAAS;IAChB,MAAM,CAAC,eAAe;IACtB,MAAM,CAAC,gBAAgB;IACvB,MAAM,CAAC,gBAAgB;IACvB,MAAM,CAAC,UAAU;IACjB,MAAM,CAAC,iBAAiB;IACxB,MAAM,CAAC,IAAI;IACX,MAAM,CAAC,SAAS;IAChB,MAAM,CAAC,QAAQ;IACf,MAAM,CAAC,UAAU;IACjB,MAAM,CAAC,WAAW;IAClB,MAAM,CAAC,QAAQ;IACf,MAAM,CAAC,IAAI;IACX,MAAM,CAAC,SAAS;IAChB,MAAM,CAAC,SAAS;IAChB,MAAM,CAAC,UAAU;IACjB,MAAM,CAAC,WAAW;CACnB,CAAC;AAEF,MAAM,CAAC,MAAM,QAAQ,GAAG;IACtB,MAAM,CAAC,IAAI;IACX,MAAM,CAAC,QAAQ;IACf,MAAM,CAAC,SAAS;IAChB,MAAM,CAAC,QAAQ;IACf,MAAM,CAAC,QAAQ;IACf,MAAM,CAAC,SAAS;IAChB,MAAM,CAAC,UAAU;IACjB,MAAM,CAAC,QAAQ;IACf,MAAM,CAAC,mBAAmB;IAC1B,MAAM,CAAC,mBAAmB;IAC1B,MAAM,CAAC,kBAAkB;IACzB,MAAM,CAAC,oBAAoB;IAC3B,MAAM,CAAC,MAAM;IACb,MAAM,CAAC,IAAI;IACX,MAAM,CAAC,OAAO;IACd,MAAM,CAAC,SAAS;IAChB,MAAM,CAAC,SAAS;IAChB,MAAM,CAAC,SAAS;IAChB,MAAM,CAAC,UAAU;CAClB,CAAC;AAEF,MAAM,CAAC,MAAM,QAAQ,GAAG;IACtB,MAAM,CAAC,SAAS;IAChB,MAAM,CAAC,SAAS;IAChB,MAAM,CAAC,QAAQ;IACf,MAAM,CAAC,UAAU;IACjB,MAAM,CAAC,QAAQ;IACf,MAAM,CAAC,YAAY;IACnB,MAAM,CAAC,UAAU;IACjB,MAAM,CAAC,QAAQ;IACf,MAAM,CAAC,YAAY;IACnB,MAAM,CAAC,cAAc;IACrB,MAAM,CAAC,eAAe;IACtB,MAAM,CAAC,eAAe;IACtB,MAAM,CAAC,gBAAgB;IACvB,MAAM,CAAC,YAAY;IACnB,MAAM,CAAC,gBAAgB;IACvB,MAAM,CAAC,OAAO;IACd,MAAM,CAAC,UAAU;IACjB,MAAM,CAAC,aAAa;IACpB,MAAM,CAAC,eAAe;CACvB,CAAC;AAEF,MAAM,CAAC,MAAM,QAAQ,GAAG;IACtB,MAAM,CAAC,SAAS;IAChB,MAAM,CAAC,QAAQ;IACf,MAAM,CAAC,UAAU;IACjB,MAAM,CAAC,KAAK;IACZ,MAAM,CAAC,cAAc;IACrB,MAAM,CAAC,cAAc;IACrB,MAAM,CAAC,YAAY;IACnB,MAAM,CAAC,MAAM;IACb,MAAM,CAAC,SAAS;IAChB,MAAM,CAAC,UAAU;IACjB,MAAM,CAAC,aAAa;IACpB,MAAM,CAAC,WAAW;IAClB,MAAM,CAAC,cAAc;IACrB,MAAM,CAAC,SAAS;IAChB,MAAM,CAAC,cAAc;IACrB,MAAM,CAAC,WAAW;IAClB,MAAM,CAAC,WAAW;IAClB,MAAM,CAAC,aAAa;IACpB,MAAM,CAAC,UAAU;CAClB,CAAC;AAEF,oEAAoE;AAEpE,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,IAAY,EAAU,EAAE;IACxD,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,+BAA+B;AAC/D,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,MAAc,EAAE,gBAAwB,EAAU,EAAE;IACvF,IAAI,MAAM,IAAI,CAAC,IAAI,gBAAgB,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;IACrE,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,gBAAgB,CAAC,CAAC,CAAC;IAC7D,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,GAAG,CAAC,GAAG,GAAG,OAAO,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;AACnE,CAAC,CAAC;AAEF;;;GAGG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,KAAa,EAAE,IAAY,EAAW,EAAE;IAC9E,IAAI,IAAI,IAAI,KAAK;QAAE,OAAO,IAAI,CAAC;IAC/B,MAAM,GAAG,GAAG,QAAQ,EAAE,CAAC;IACvB,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,KAAK,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC;IACrD,OAAO,IAAI,GAAG,YAAY,CAAC;AAC7B,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,+BAA+B,GAAG,CAC7C,KAAa,EACb,IAAY,EACZ,QAAiB,EACkB,EAAE;IACrC,IAAI,IAAI,IAAI,KAAK;QAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;IACpD,MAAM,GAAG,GAAG,QAAQ,IAAI,QAAQ,EAAE,CAAC;IACnC,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,KAAK,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC;IACrD,OAAO,EAAE,OAAO,EAAE,IAAI,GAAG,YAAY,EAAE,GAAG,EAAE,CAAC;AAC/C,CAAC,CAAC;AAEF,oEAAoE;AAEpE,MAAM,mBAAmB,GAAG,CAAC,eAAuB,EAAU,EAAE;IAC9D,IAAI,eAAe,IAAI,EAAE;QAAE,OAAO,EAAE,CAAC;IACrC,IAAI,eAAe,IAAI,EAAE;QAAE,OAAO,EAAE,CAAC;IACrC,IAAI,eAAe,IAAI,EAAE;QAAE,OAAO,EAAE,CAAC;IACrC,IAAI,eAAe,IAAI,EAAE;QAAE,OAAO,EAAE,CAAC;IACrC,OAAO,CAAC,CAAC;AACX,CAAC,CAAC;AAEF,MAAM,eAAe,GAAG,CAAC,eAAuB,EAAU,EAAE;IAC1D,IAAI,eAAe,IAAI,EAAE;QAAE,OAAO,GAAG,CAAC;IACtC,IAAI,eAAe,IAAI,EAAE;QAAE,OAAO,GAAG,CAAC;IACtC,IAAI,eAAe,IAAI,EAAE;QAAE,OAAO,GAAG,CAAC;IACtC,IAAI,eAAe,IAAI,EAAE;QAAE,OAAO,GAAG,CAAC;IACtC,OAAO,EAAE,CAAC;AACZ,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,eAAuB,EAAE,QAAiB,EAAU,EAAE;IACtF,MAAM,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,IAAI,SAAS,EAAE,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,eAAe,GAAG,CAAC,CAAC,CAAC,CAAC;IAChF,OAAO,IAAI,GAAG,mBAAmB,CAAC,eAAe,CAAC,CAAC;AACrD,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,eAAuB,EAAE,SAAkB,EAAU,EAAE;IACxF,MAAM,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,SAAS,IAAI,SAAS,EAAE,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,eAAe,GAAG,EAAE,CAAC,CAAC,CAAC;IAClF,OAAO,IAAI,CAAC,GAAG,CAAC,qBAAqB,EAAE,IAAI,GAAG,eAAe,CAAC,eAAe,CAAC,CAAC,CAAC;AAClF,CAAC,CAAC;AAEF,oEAAoE;AAEpE,MAAM,YAAY,GAAG,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,CAAU,CAAC;AAGzE,6FAA6F;AAC7F,gGAAgG;AAChG,mGAAmG;AACnG,mGAAmG;AACnG,uDAAuD;AACvD,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,GAAY,EAAc,EAAE;IAC5D,OAAO,YAAY,CAAC,CAAC,GAAG,IAAI,QAAQ,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;AAC/C,CAAC,CAAC;AAEF,MAAM,kBAAkB,GAA2B;IACjD,KAAK,EAAE,OAAO;IACd,IAAI,EAAE,MAAM;IACZ,KAAK,EAAE,OAAO;IACd,IAAI,EAAE,MAAM;IACZ,IAAI,EAAE,MAAM;CACb,CAAC;AAEF,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,IAAY,EAAU,EAAE;IACzD,OAAO,kBAAkB,CAAC,IAAI,CAAC,IAAI,MAAM,CAAC;AAC5C,CAAC,CAAC;AAEF,oEAAoE;AAEpE,MAAM,eAAe,GAAG,CAAC,EAAU,EAAU,EAAE;IAC7C,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,GAAG,EAAE;QAAE,OAAO,OAAO,CAAC;IACvC,IAAI,EAAE,GAAG,EAAE;QAAE,OAAO,OAAO,CAAC;IAC5B,OAAO,UAAU,CAAC;AACpB,CAAC,CAAC;AAEF,MAAM,eAAe,GAAG,CAAC,EAAU,EAAU,EAAE;IAC7C,MAAM,MAAM,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;IAC7B,IAAI,MAAM,GAAG,CAAC;QAAE,OAAO,CAAC,CAAC;IACzB,IAAI,MAAM,GAAG,EAAE;QAAE,OAAO,CAAC,CAAC;IAC1B,IAAI,MAAM,GAAG,EAAE;QAAE,OAAO,CAAC,CAAC;IAC1B,IAAI,MAAM,GAAG,EAAE;QAAE,OAAO,CAAC,CAAC;IAC1B,OAAO,CAAC,CAAC;AACX,CAAC,CAAC;AAEF,oEAAoE;AAEpE,MAAM,YAAY,GAAG,CAAC,MAAc,EAAU,EAAE;IAC9C,IAAI,MAAM,KAAK,CAAC;QAAE,OAAO,MAAM,CAAC;IAChC,MAAM,IAAI,GAAG,SAAS,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;IAC3C,0DAA0D;IAC1D,IAAI,IAAI,KAAK,OAAO,IAAI,IAAI,KAAK,MAAM,IAAI,IAAI,KAAK,OAAO;QAAE,OAAO,IAAI,CAAC;IACzE,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC;AAaF,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,eAAuB,EAAkB,EAAE;IACvE,MAAM,EAAE,GAAG,CAAC,GAAG,CAAC,SAAS,EAAE,GAAG,EAAE,CAAC,CAAC;IAClC,MAAM,KAAK,GAAG,iBAAiB,CAAC,eAAe,CAAC,CAAC;IACjD,MAAM,MAAM,GAAG,kBAAkB,CAAC,eAAe,CAAC,CAAC;IACnD,MAAM,IAAI,GAAG,YAAY,CAAC,EAAE,CAAC,CAAC;IAC9B,MAAM,WAAW,GAAG,KAAK,IAAI,+BAA+B,CAAC;IAC7D,MAAM,QAAQ,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACzD,MAAM,QAAQ,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAEzD,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC;AACzD,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,KAAqB,EAAS,EAAE,CAAC,CAAC;IAClE,EAAE,EAAE,KAAK,CAAC,EAAE;IACZ,QAAQ,EAAE,WAAW,CAAC,KAAK,CAAC,EAAE,CAAC;IAC/B,IAAI,EAAE,YAAY,CAAC,KAAK,CAAC,EAAE,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,QAAQ,EAAE,KAAK,CAAC,QAAQ,CAAC;IACzE,MAAM,EAAE,KAAK,CAAC,MAAM;IACpB,KAAK,EAAE,KAAK,CAAC,KAAK;IAClB,IAAI,EAAE,YAAY,CAAC,KAAK,CAAC,EAAE,CAAC;IAC5B,IAAI,EAAE,KAAK,CAAC,IAAI;IAChB,aAAa,EAAE,KAAK,CAAC,KAAK,IAAI,+BAA+B,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI;IAC7F,aAAa,EAAE,KAAK,CAAC,KAAK,IAAI,+BAA+B,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI;IAC7F,aAAa,EAAE,KAAK;IACpB,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC;CACrB,CAAC,CAAC;AAmBH,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAC9B,eAAuB,EACvB,KAAqB,EACF,EAAE;IACrB,MAAM,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,KAAK,IAAI,SAAS,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;IACpD,MAAM,KAAK,GAAG,iBAAiB,CAAC,eAAe,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;IAClE,MAAM,IAAI,GAAG,eAAe,CAAC,EAAE,CAAC,CAAC;IACjC,MAAM,IAAI,GAAG,eAAe,CAAC,EAAE,CAAC,CAAC;IACjC,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;AACnC,CAAC,CAAC;AAEF,oEAAoE;AAEpE,MAAM,CAAC,MAAM,uBAAuB,GAAG,CACrC,QAA2B,EAC3B,KAAW,EACX,eAAuB,EACvB,mBAA2B,EAC3B,KAAwB,EACxB,OAAa,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EACgC,EAAE;IAC/D,MAAM,IAAI,GAAG,iBAAiB,CAAC,KAAK,EAAE,iBAAiB,CAAC,CAAC;IAEzD,MAAM,WAAW,GAAG,QAAQ,CAAC,KAAK,GAAG,iBAAiB,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IACtE,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IACzC,MAAM,UAAU,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,cAAc,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC3D,MAAM,SAAS,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,WAAW,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC;IACvE,MAAM,UAAU,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,GAAG,iBAAiB,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAE5E,IAAI,cAAc,GAAG,uBAAuB,CAAC,WAAW,EAAE,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;IAEpF,qBAAqB;IACrB,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,eAAe,EAAE,GAAG,CAAC,CAAC;IAClD,MAAM,MAAM,GAAG,aAAa,CAAC,UAAU,EAAE,KAAK,EAAE,cAAc,CAAC,CAAC;IAChE,IAAI,MAAM,EAAE,CAAC;QACX,cAAc,IAAI,CAAC,CAAC;IACtB,CAAC;IAED,IAAI,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,yBAAyB,EAAE,cAAc,GAAG,UAAU,CAAC,CAAC;IAE9E,+EAA+E;IAC/E,yFAAyF;IACzF,2DAA2D;IAC3D,MAAM,aAAa,GAAG,iBAAiB,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;IACrD,IAAI,aAAa,GAAG,CAAC,EAAE,CAAC;QACtB,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,yBAAyB,EAAE,MAAM,GAAG,aAAa,CAAC,CAAC;IACvE,CAAC;IAED,8FAA8F;IAC9F,8FAA8F;IAC9F,iEAAiE;IACjE,IAAI,mBAAmB,GAAG,CAAC,EAAE,CAAC;QAC5B,MAAM,GAAG,oBAAoB,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAC;IAC7D,CAAC;IAED,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,kBAAkB,CAAC,IAAI,CAAC,EAAE,YAAY,EAAE,MAAM,EAAE,CAAC;AAC9E,CAAC,CAAC;AAEF,oEAAoE;AAEpE,MAAM,CAAC,MAAM,eAAe,GAAG,CAC7B,IAAY,EACZ,WAAmB,EACnB,eAAuB,EACf,EAAE;IACV,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,eAAe,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC;IACrD,MAAM,QAAQ,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAC;IACzC,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,QAAQ,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC;IACxD,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,GAAG,CAAC,GAAG,GAAG,UAAU,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC;IAChE,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,wBAAwB;AACvD,CAAC,CAAC;AAiBF,MAAM,CAAC,MAAM,YAAY,GAAG,CAC1B,eAAuB,EACvB,KAAsB,EACL,EAAE;IACnB,MAAM,OAAO,GAAG,KAAK,EAAE,OAAO,IAAI,QAAQ,EAAE,CAAC;IAC7C,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,OAAO,GAAG,GAAG,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC;IAC3D,MAAM,UAAU,GAAG,KAAK,EAAE,UAAU,IAAI,QAAQ,EAAE,CAAC;IACnD,MAAM,UAAU,GAAG,KAAK,EAAE,UAAU,IAAI,QAAQ,EAAE,CAAC;IAEnD,IAAI,UAAU,GAAG,EAAE,EAAE,CAAC;QACpB,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,eAAe,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC;IACnF,CAAC;IACD,IAAI,UAAU,GAAG,EAAE,EAAE,CAAC;QACpB,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,eAAe,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC;IAC3F,CAAC;IAED,OAAO;IACP,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,UAAU,GAAG,GAAG,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC;IAC3D,IAAI,KAAe,CAAC;IACpB,IAAI,OAAO,GAAG,EAAE;QAAE,KAAK,GAAG,QAAQ,CAAC;SAC9B,IAAI,OAAO,GAAG,EAAE;QAAE,KAAK,GAAG,QAAQ,CAAC;SACnC,IAAI,OAAO,GAAG,EAAE;QAAE,KAAK,GAAG,QAAQ,CAAC;SACnC,IAAI,OAAO,GAAG,EAAE;QAAE,KAAK,GAAG,QAAQ,CAAC;;QACnC,KAAK,GAAG,QAAQ,CAAC;IAEtB,MAAM,MAAM,GAAG,KAAK,CAAC,UAAU,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC;IAChD,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;AAClD,CAAC,CAAC;AAEF,oEAAoE;AAEpE,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,UAAsB,EAAE,MAAc,EAAQ,EAAE;IAC7E,UAAU,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,UAAU,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,UAAU,CAAC,MAAM,GAAG,MAAM,CAAC,CAAC;AACpG,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,UAAsB,EAAE,MAAc,EAAQ,EAAE;IAC7E,UAAU,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,UAAU,CAAC,MAAM,GAAG,MAAM,CAAC,CAAC;AAC9D,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,UAAsB,EAAE,MAAc,EAAQ,EAAE;IAC3E,UAAU,CAAC,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,UAAU,CAAC,IAAI,GAAG,MAAM,CAAC,CAAC;AACjE,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,UAAsB,EAAE,MAAc,EAAQ,EAAE;IACzE,MAAM,aAAa,GAAG,cAAc,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;IACpD,UAAU,CAAC,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,iBAAiB,EAAE,UAAU,CAAC,EAAE,GAAG,MAAM,CAAC,CAAC;IACpE,MAAM,QAAQ,GAAG,cAAc,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;IAC/C,IAAI,QAAQ,GAAG,aAAa,EAAE,CAAC;QAC7B,iBAAiB,CAAC,UAAU,EAAE,QAAQ,GAAG,aAAa,CAAC,CAAC;IAC1D,CAAC;AACH,CAAC,CAAC;AAEF,gGAAgG;AAChG,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,UAAsB,EAAE,MAAc,EAAQ,EAAE;IAChF,UAAU,CAAC,uBAAuB,GAAG,IAAI,CAAC,GAAG,CAC3C,2BAA2B,EAC3B,UAAU,CAAC,uBAAuB,GAAG,MAAM,CAC5C,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,UAAsB,EAAW,EAAE;IAC5D,OAAO,CACL,UAAU,CAAC,MAAM,GAAG,CAAC;QACrB,UAAU,CAAC,YAAY,KAAK,CAAC;QAC7B,UAAU,CAAC,uBAAuB,KAAK,CAAC,CACzC,CAAC;AACJ,CAAC,CAAC;AAEF,oEAAoE;AAEpE;;GAEG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,UAAsB,EAAE,IAAgB,EAAQ,EAAE;IAC/E,OAAO,UAAU,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC;AACxD,CAAC,CAAC;AAOF;;;;;GAKG;AACH,MAAM,CAAC,MAAM,8BAA8B,GAAG,CAC5C,UAAsB,EACtB,GAAoB,EACpB,MAAc,EACa,EAAE;IAC7B,MAAM,SAAS,GAAG,UAAU,CAAC,SAAS,CAAC;IACvC,MAAM,QAAQ,GAAG;QACf,SAAS,CAAC,MAAM;QAChB,SAAS,CAAC,KAAK;QACf,SAAS,CAAC,IAAI;QACd,SAAS,CAAC,KAAK;QACf,SAAS,CAAC,IAAI;QACd,SAAS,CAAC,IAAI;QACd,SAAS,CAAC,IAAI;QACd,SAAS,CAAC,IAAI;KACf,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,KAAK,MAAM,CAAC,CAAC;IAErC,MAAM,KAAK,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,KAAK,MAAM,CAAC,CAAC;IAErD,MAAM,IAAI,GAAG,SAAS,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;IAC3C,MAAM,OAAO,GAAG,IAAI,CAAC,WAAW,EAA4B,CAAC;IAC7D,MAAM,QAAQ,GAAI,SAAS,CAAC,OAAO,CAAU,EAAE,EAAE,KAAK,CAAC,CAAC;IACxD,gGAAgG;IAChG,6EAA6E;IAC7E,MAAM,OAAO,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC;IAE/B,IAAI,MAAoC,CAAC;IACzC,IAAI,QAAQ,IAAI,KAAK,EAAE,CAAC;QACtB,MAAM,GAAG,OAAO,CAAC;IACnB,CAAC;SAAM,IAAI,OAAO,IAAI,CAAC,QAAQ,EAAE,CAAC;QAChC,MAAM,GAAG,gBAAgB,CAAC;IAC5B,CAAC;SAAM,CAAC;QACN,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,IAAI,GAAG,SAAS,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;IAC3C,QAAQ,IAAI,EAAE,CAAC;QACb,KAAK,CAAC;YACJ,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC;QAC9B,KAAK,CAAC;YACJ,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC;QAC9B,KAAK,CAAC;YACJ,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC;QAC9B,KAAK,CAAC;YACJ,OAAO,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC;QAC7B;YACE,OAAO,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC;IAC/B,CAAC;AACH,CAAC,CAAC;AAEF;;;;GAIG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAClC,UAAsB,EACtB,GAAW,EACX,MAAc,EACa,EAAE;IAC7B,MAAM,UAAU,GAAG,8BAA8B,CAAC,UAAU,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC;IAC3E,IAAI,UAAU,EAAE,CAAC;QACf,OAAO,UAAU,CAAC;IACpB,CAAC;IAED,MAAM,SAAS,GAAG,UAAU,CAAC,SAAS,CAAC;IACvC,MAAM,OAAO,GAAG,SAAS,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,WAAW,EAA4B,CAAC;IACtF,MAAM,QAAQ,GAAI,SAAS,CAAC,OAAO,CAAU,EAAE,EAAE,KAAK,CAAC,CAAC;IAExD,MAAM,OAAO,GAAG,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC;IACtC,IAAI,QAAQ,EAAE,CAAC;QACb,iBAAiB;QAChB,SAAS,CAAC,OAAO,CAAU,CAAC,EAAE,GAAG,OAAO,CAAC,EAAE,CAAC;QAC5C,SAAS,CAAC,OAAO,CAAU,CAAC,EAAE,GAAG,OAAO,CAAC,EAAE,CAAC;IAC/C,CAAC;SAAM,CAAC;QACN,sEAAsE;QACtE,QAAQ,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;IACzB,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC,CAAC;AAEF,oEAAoE;AAEpE;;GAEG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,IAAU,EAAU,EAAE;IACrD,IAAI,IAAI,CAAC,EAAE,KAAK,CAAC;QAAE,OAAO,CAAC,CAAC;IAC5B,OAAO,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AACtD,CAAC,CAAC;AAEF;;GAEG;AACH,8EAA8E;AAC9E,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,IAAY,EAAE,cAAuB,EAAW,EAAE;IAC9E,MAAM,GAAG,GAAG,cAAc,IAAI,QAAQ,EAAE,CAAC;IACzC,OAAO,IAAI,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;AAChC,CAAC,CAAC;AAEF;;;;GAIG;AACH,MAAM,CAAC,MAAM,+BAA+B,GAAG,CAC7C,UAAsB,EACtB,KAAY,EACZ,YAA6B,EAC7B,mBAA2B,EAAE,EACK,EAAE;IACpC,MAAM,EAAE,UAAU,EAAE,cAAc,EAAE,GAAG,qBAAqB,CAC1D,UAAU,CAAC,SAAS,CAAC,MAAM,EAC3B,UAAU,EACV,KAAK,EACL,YAAY,EACZ,gBAAgB,CACjB,CAAC;IACF,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE,cAAc,EAAE,CAAC;AACtD,CAAC,CAAC;AAgBF,MAAM,CAAC,MAAM,2BAA2B,GAAG,CACzC,KAAY,EACZ,UAAsB,EACtB,mBAA2B,EAC3B,WAAoB,KAAK,EACzB,KAAmC,EACnC,YAA6B,EAC7B,mBAA2B,EAAE,EACkD,EAAE;IACjF,MAAM,IAAI,GAAG,iBAAiB,CAAC,KAAK,EAAE,iBAAiB,CAAC,CAAC;IACzD,MAAM,KAAK,GAAG,cAAc,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;IAE/C,MAAM,QAAQ,GAAG,oBAAoB,CAAC,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,YAAY,EAAE,gBAAgB,CAAC,CAAC;IAEhG,oCAAoC;IACpC,MAAM,eAAe,GAAG,cAAc,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;IACtD,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,eAAe,EAAE,GAAG,CAAC,CAAC;IAClD,MAAM,MAAM,GAAG,aAAa,CAAC,UAAU,EAAE,KAAK,EAAE,cAAc,CAAC,CAAC;IAEhE,IAAI,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC;IAEpE,4CAA4C;IAC5C,EAAE;IACF,yEAAyE;IACzE,4EAA4E;IAC5E,yFAAyF;IACzF,8FAA8F;IAC9F,2FAA2F;IAC3F,2DAA2D;IAC3D,IAAI,QAAQ,IAAI,mBAAmB,GAAG,CAAC,EAAE,CAAC;QACxC,MAAM,GAAG,oBAAoB,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAC;IAC7D,CAAC;IAED,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,kBAAkB,CAAC,IAAI,CAAC,EAAE,YAAY,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;AACpF,CAAC,CAAC;AAEF;;;GAGG;AACH,oEAAoE;AAEpE;;;;;GAKG;AACH,MAAM,aAAa,GAAG,CACpB,IAAU,EACV,gBAAwB,EACxB,gBAAwB,EACT,EAAE;IACjB,IAAI,IAAI,CAAC,EAAE,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IAC/B,MAAM,SAAS,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAC;IACzC,IAAI,SAAS,GAAG,uBAAuB;QAAE,OAAO,IAAI,CAAC;IACrD,MAAM,QAAQ,GAAG,SAAS,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,EAAE,SAAS,EAAE,gBAAgB,EAAE,gBAAgB,CAAC,CAAC;IAC/F,OAAO,QAAQ,CAAC,QAAQ,CAAC;AAC3B,CAAC,CAAC;AAEF,yEAAyE;AACzE,MAAM,gBAAgB,GAAG,CAAC,KAAY,EAAE,MAAc,EAAQ,EAAE;IAC9D,IAAI,MAAM,KAAK,UAAU,EAAE,CAAC;QAC1B,KAAK,CAAC,QAAQ,IAAI,CAAC,CAAC;IACtB,CAAC;SAAM,IAAI,MAAM,KAAK,WAAW,EAAE,CAAC;QAClC,KAAK,CAAC,QAAQ,IAAI,CAAC,CAAC;IACtB,CAAC;SAAM,IAAI,MAAM,KAAK,UAAU,EAAE,CAAC;QACjC,KAAK,CAAC,SAAS,IAAI,CAAC,CAAC;IACvB,CAAC;SAAM,IAAI,MAAM,KAAK,eAAe,EAAE,CAAC;QACtC,KAAK,CAAC,QAAQ,IAAI,CAAC,CAAC;QACpB,KAAK,CAAC,SAAS,IAAI,CAAC,CAAC;IACvB,CAAC;SAAM,IAAI,MAAM,KAAK,eAAe,EAAE,CAAC;QACtC,KAAK,CAAC,YAAY,IAAI,CAAC,CAAC;IAC1B,CAAC;SAAM,IAAI,MAAM,KAAK,kBAAkB,EAAE,CAAC;QACzC,KAAK,CAAC,MAAM,IAAI,CAAC,CAAC;IACpB,CAAC;SAAM,IAAI,MAAM,KAAK,eAAe,EAAE,CAAC;QACtC,KAAK,CAAC,SAAS,IAAI,CAAC,CAAC;IACvB,CAAC;SAAM,IAAI,MAAM,KAAK,UAAU,EAAE,CAAC;QACjC,KAAK,CAAC,QAAQ,IAAI,CAAC,CAAC;QACpB,KAAK,CAAC,SAAS,IAAI,CAAC,CAAC;IACvB,CAAC;SAAM,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;QAChC,KAAK,CAAC,QAAQ,IAAI,CAAC,CAAC;QACpB,KAAK,CAAC,MAAM,IAAI,CAAC,CAAC;IACpB,CAAC;SAAM,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;QAChC,KAAK,CAAC,YAAY,IAAI,CAAC,CAAC;IAC1B,CAAC;SAAM,IAAI,MAAM,KAAK,YAAY,EAAE,CAAC;QACnC,KAAK,CAAC,YAAY,IAAI,CAAC,CAAC;QACxB,KAAK,CAAC,MAAM,IAAI,CAAC,CAAC;IACpB,CAAC;SAAM,IAAI,MAAM,KAAK,YAAY,EAAE,CAAC;QACnC,KAAK,CAAC,SAAS,IAAI,CAAC,CAAC;IACvB,CAAC;SAAM,IAAI,MAAM,KAAK,cAAc,EAAE,CAAC;QACrC,KAAK,CAAC,MAAM,IAAI,CAAC,CAAC;QAClB,KAAK,CAAC,SAAS,IAAI,CAAC,CAAC;IACvB,CAAC;SAAM,IAAI,MAAM,KAAK,eAAe,EAAE,CAAC;QACtC,KAAK,CAAC,YAAY,IAAI,CAAC,CAAC;QACxB,KAAK,CAAC,MAAM,IAAI,CAAC,CAAC;IACpB,CAAC;AACH,CAAC,CAAC;AAEF,6EAA6E;AAC7E,MAAM,iBAAiB,GAAG,CAAC,KAAY,EAAE,MAAc,EAAQ,EAAE;IAC/D,IAAI,MAAM,KAAK,UAAU,EAAE,CAAC;QAC1B,KAAK,CAAC,QAAQ,IAAI,CAAC,CAAC;IACtB,CAAC;SAAM,IAAI,MAAM,KAAK,WAAW,EAAE,CAAC;QAClC,KAAK,CAAC,QAAQ,IAAI,CAAC,CAAC;IACtB,CAAC;SAAM,IAAI,MAAM,KAAK,UAAU,EAAE,CAAC;QACjC,KAAK,CAAC,SAAS,IAAI,CAAC,CAAC;IACvB,CAAC;SAAM,IAAI,MAAM,KAAK,eAAe,EAAE,CAAC;QACtC,KAAK,CAAC,QAAQ,IAAI,CAAC,CAAC;QACpB,KAAK,CAAC,SAAS,IAAI,CAAC,CAAC;IACvB,CAAC;SAAM,IAAI,MAAM,KAAK,eAAe,EAAE,CAAC;QACtC,KAAK,CAAC,YAAY,IAAI,CAAC,CAAC;IAC1B,CAAC;SAAM,IAAI,MAAM,KAAK,kBAAkB,EAAE,CAAC;QACzC,KAAK,CAAC,MAAM,IAAI,CAAC,CAAC;IACpB,CAAC;SAAM,IAAI,MAAM,KAAK,eAAe,EAAE,CAAC;QACtC,KAAK,CAAC,SAAS,IAAI,CAAC,CAAC;IACvB,CAAC;SAAM,IAAI,MAAM,KAAK,UAAU,EAAE,CAAC;QACjC,KAAK,CAAC,QAAQ,IAAI,CAAC,CAAC;QACpB,KAAK,CAAC,SAAS,IAAI,CAAC,CAAC;IACvB,CAAC;SAAM,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;QAChC,KAAK,CAAC,QAAQ,IAAI,CAAC,CAAC;QACpB,KAAK,CAAC,MAAM,IAAI,CAAC,CAAC;IACpB,CAAC;SAAM,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;QAChC,KAAK,CAAC,YAAY,IAAI,CAAC,CAAC;IAC1B,CAAC;SAAM,IAAI,MAAM,KAAK,YAAY,EAAE,CAAC;QACnC,KAAK,CAAC,YAAY,IAAI,CAAC,CAAC;QACxB,KAAK,CAAC,MAAM,IAAI,CAAC,CAAC;IACpB,CAAC;SAAM,IAAI,MAAM,KAAK,YAAY,EAAE,CAAC;QACnC,KAAK,CAAC,SAAS,IAAI,CAAC,CAAC;IACvB,CAAC;SAAM,IAAI,MAAM,KAAK,cAAc,EAAE,CAAC;QACrC,KAAK,CAAC,MAAM,IAAI,CAAC,CAAC;QAClB,KAAK,CAAC,SAAS,IAAI,CAAC,CAAC;IACvB,CAAC;SAAM,IAAI,MAAM,KAAK,eAAe,EAAE,CAAC;QACtC,KAAK,CAAC,YAAY,IAAI,CAAC,CAAC;QACxB,KAAK,CAAC,MAAM,IAAI,CAAC,CAAC;IACpB,CAAC;AACH,CAAC,CAAC;AAEF,uEAAuE;AACvE,0EAA0E;AAC1E,MAAM,aAAa,GAAG,CAAC,KAAY,EAAE,MAAc,EAAQ,EAAE;IAC3D,IAAI,MAAM,KAAK,UAAU,EAAE,CAAC;QAC1B,KAAK,CAAC,QAAQ,IAAI,CAAC,CAAC;IACtB,CAAC;SAAM,IAAI,MAAM,KAAK,WAAW,EAAE,CAAC;QAClC,KAAK,CAAC,QAAQ,IAAI,CAAC,CAAC;IACtB,CAAC;SAAM,IAAI,MAAM,KAAK,eAAe,EAAE,CAAC;QACtC,KAAK,CAAC,QAAQ,IAAI,CAAC,CAAC;IACtB,CAAC;SAAM,IAAI,MAAM,KAAK,eAAe,EAAE,CAAC;QACtC,KAAK,CAAC,QAAQ,IAAI,CAAC,CAAC;IACtB,CAAC;SAAM,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;QAChC,KAAK,CAAC,QAAQ,IAAI,CAAC,CAAC;IACtB,CAAC;SAAM,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;QAChC,KAAK,CAAC,QAAQ,IAAI,CAAC,CAAC;QACpB,KAAK,CAAC,QAAQ,IAAI,CAAC,CAAC;IACtB,CAAC;SAAM,IAAI,MAAM,KAAK,YAAY,EAAE,CAAC;QACnC,KAAK,CAAC,QAAQ,IAAI,CAAC,CAAC;IACtB,CAAC;SAAM,IAAI,MAAM,KAAK,cAAc,EAAE,CAAC;QACrC,KAAK,CAAC,QAAQ,IAAI,CAAC,CAAC;IACtB,CAAC;AACH,CAAC,CAAC;AAEF,uFAAuF;AACvF,MAAM,iBAAiB,GAAG,CAAC,MAAc,EAAU,EAAE;IACnD,IAAI,MAAM,KAAK,UAAU;QAAE,OAAO,CAAC,CAAC;IACpC,IAAI,MAAM,KAAK,eAAe;QAAE,OAAO,CAAC,CAAC;IACzC,IAAI,MAAM,KAAK,eAAe;QAAE,OAAO,CAAC,CAAC;IACzC,IAAI,MAAM,KAAK,SAAS;QAAE,OAAO,CAAC,CAAC;IACnC,OAAO,CAAC,CAAC;AACX,CAAC,CAAC;AAEF,sEAAsE;AACtE,MAAM,gBAAgB,GAAG,CACvB,aAAqB,EACrB,QAAgB,EACwC,EAAE;IAC1D,IAAI,aAAa,GAAG,uBAAuB,IAAI,QAAQ,IAAI,uBAAuB,EAAE,CAAC;QACnF,OAAO,EAAE,cAAc,EAAE,IAAI,EAAE,gBAAgB,EAAE,IAAI,EAAE,CAAC;IAC1D,CAAC;IACD,IAAI,aAAa,GAAG,uBAAuB,IAAI,QAAQ,IAAI,uBAAuB,EAAE,CAAC;QACnF,OAAO,EAAE,cAAc,EAAE,IAAI,EAAE,gBAAgB,EAAE,KAAK,EAAE,CAAC;IAC3D,CAAC;IACD,IAAI,aAAa,GAAG,uBAAuB,IAAI,QAAQ,IAAI,uBAAuB,EAAE,CAAC;QACnF,OAAO,EAAE,cAAc,EAAE,KAAK,EAAE,gBAAgB,EAAE,IAAI,EAAE,CAAC;IAC3D,CAAC;IACD,OAAO,EAAE,cAAc,EAAE,KAAK,EAAE,gBAAgB,EAAE,KAAK,EAAE,CAAC;AAC5D,CAAC,CAAC;AAEF;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG,CACpC,UAAsB,EACtB,QAAgB,EAChB,YAA6B,EAC7B,eAAwB,EACxB,mBAA2B,EAAE,EACvB,EAAE;IACR,KAAK,MAAM,OAAO,IAAI,eAAe,EAAE,CAAC;QACtC,MAAM,IAAI,GAAG,UAAU,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;QAC3C,IAAI,IAAI,CAAC,EAAE,KAAK,CAAC;YAAE,SAAS;QAE5B,MAAM,aAAa,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAC;QAC7C,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,IAAI,CAAC,EAAE,GAAG,QAAQ,CAAC,CAAC;QACpD,MAAM,QAAQ,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAC;QACxC,IAAI,QAAQ,IAAI,aAAa,IAAI,eAAe,KAAK,SAAS;YAAE,SAAS;QAEzE,IAAI,QAAQ,KAAK,kBAAkB,EAAE,CAAC;YACpC,iBAAiB,CAAC,UAAU,EAAE,wBAAwB,CAAC,CAAC;QAC1D,CAAC;QAED,MAAM,EAAE,cAAc,EAAE,gBAAgB,EAAE,GAAG,gBAAgB,CAAC,aAAa,EAAE,QAAQ,CAAC,CAAC;QACvF,IAAI,CAAC,cAAc,IAAI,CAAC,gBAAgB;YAAE,SAAS;QAEnD,4FAA4F;QAC5F,6FAA6F;QAC7F,iEAAiE;QACjE,IAAI,QAAQ,CAAC,gBAAgB,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC;YACxC,IAAI,cAAc,EAAE,CAAC;gBACnB,MAAM,QAAQ,GAAG,SAAS,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,EAAE,QAAQ,EAAE,CAAC,EAAE,gBAAgB,CAAC,CAAC;gBAC/E,mBAAmB,CAAC,UAAU,EAAE,QAAQ,CAAC,QAAQ,CAAC,CAAC;YACrD,CAAC;YACD,SAAS;QACX,CAAC;QAED,2FAA2F;QAC3F,iFAAiF;QACjF,MAAM,YAAY,GAAG,SAAS,CAAC,mBAAmB,CAAC,UAAU,CAAC,kBAAkB,EAAE,YAAY,CAAC,CAAC;QAChG,IAAI,YAAY,KAAK,CAAC,EAAE,CAAC;YACvB,IAAI,cAAc,EAAE,CAAC;gBACnB,MAAM,QAAQ,GAAG,SAAS,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,EAAE,QAAQ,EAAE,YAAY,CAAC,CAAC;gBACxE,mBAAmB,CAAC,UAAU,EAAE,QAAQ,CAAC,QAAQ,CAAC,CAAC;YACrD,CAAC;YACD,SAAS;QACX,CAAC;QAED,MAAM,MAAM,GAAG,eAAe,GAAG,MAAM,CAAC;QACxC,UAAU,CAAC,kBAAkB,GAAG,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;QAC1D,IAAI,cAAc,EAAE,CAAC;YACnB,MAAM,OAAO,GAAG,SAAS,CAAC,mBAAmB,CAAC,UAAU,CAAC,kBAAkB,EAAE,YAAY,CAAC,CAAC;YAC3F,MAAM,QAAQ,GAAG,SAAS,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;YACnE,mBAAmB,CAAC,UAAU,EAAE,QAAQ,CAAC,QAAQ,CAAC,CAAC;QACrD,CAAC;IACH,CAAC;AACH,CAAC,CAAC;AAEF,MAAM,mBAAmB,GAAG,CAAC,UAAsB,EAAE,MAAqB,EAAQ,EAAE;IAClF,IAAI,CAAC,MAAM;QAAE,OAAO;IACpB,gBAAgB,CAAC,UAAU,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IAC3C,aAAa,CAAC,UAAU,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IACxC,MAAM,QAAQ,GAAG,iBAAiB,CAAC,MAAM,CAAC,CAAC;IAC3C,IAAI,QAAQ,KAAK,CAAC,EAAE,CAAC;QACnB,cAAc,CAAC,UAAU,EAAE,QAAQ,GAAG,6BAA6B,CAAC,CAAC;IACvE,CAAC;AACH,CAAC,CAAC;AAEF,MAAM,cAAc,GAAG,CAAC,KAAY,EAAE,MAAc,EAAQ,EAAE;IAC5D,IAAI,MAAM,KAAK,UAAU,EAAE,CAAC;QAC1B,KAAK,CAAC,QAAQ,IAAI,CAAC,CAAC;IACtB,CAAC;SAAM,IAAI,MAAM,KAAK,WAAW,EAAE,CAAC;QAClC,KAAK,CAAC,QAAQ,IAAI,CAAC,CAAC;IACtB,CAAC;SAAM,IAAI,MAAM,KAAK,eAAe,EAAE,CAAC;QACtC,KAAK,CAAC,QAAQ,IAAI,CAAC,CAAC;IACtB,CAAC;SAAM,IAAI,MAAM,KAAK,eAAe,EAAE,CAAC;QACtC,KAAK,CAAC,QAAQ,IAAI,CAAC,CAAC;IACtB,CAAC;SAAM,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;QAChC,KAAK,CAAC,QAAQ,IAAI,CAAC,CAAC;IACtB,CAAC;SAAM,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;QAChC,KAAK,CAAC,QAAQ,IAAI,CAAC,CAAC;QACpB,KAAK,CAAC,QAAQ,IAAI,CAAC,CAAC;IACtB,CAAC;SAAM,IAAI,MAAM,KAAK,YAAY,EAAE,CAAC;QACnC,KAAK,CAAC,QAAQ,IAAI,CAAC,CAAC;IACtB,CAAC;SAAM,IAAI,MAAM,KAAK,cAAc,EAAE,CAAC;QACrC,KAAK,CAAC,QAAQ,IAAI,CAAC,CAAC;IACtB,CAAC;AACH,CAAC,CAAC;AAEF;;;GAGG;AACH,MAAM,CAAC,MAAM,SAAS,GAAG,CACvB,UAAsB,EACtB,GAAW,EACX,MAAc,EACd,YAA6B,EAC7B,mBAA2B,EAAE,EACvB,EAAE;IACR,MAAM,IAAI,GAAG,SAAS,CAAC,mBAAmB,CAAC,UAAU,CAAC,kBAAkB,EAAE,YAAY,CAAC,CAAC;IAExF,uFAAuF;IACvF,gGAAgG;IAChG,MAAM,IAAI,GAAS,aAAa,CAAC,GAAG,EAAE,MAAM,CAAC,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC;IAEvE,wBAAwB;IACxB,MAAM,QAAQ,GAAG,SAAS,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;IAC/C,MAAM,OAAO,GAAG,QAAQ,CAAC,WAAW,EAAuC,CAAC;IAC5E,MAAM,OAAO,GAAG,UAAU,CAAC,SAAS,CAAC,OAAO,CAAS,CAAC;IAEtD,4CAA4C;IAC5C,IAAI,OAAO,IAAI,OAAO,CAAC,EAAE,KAAK,CAAC,EAAE,CAAC;QAChC,yEAAyE;QACzE,MAAM,eAAe,GAAG,aAAa,CAAC,OAAO,EAAE,IAAI,EAAE,gBAAgB,CAAC,CAAC;QACvE,IAAI,eAAe,EAAE,CAAC;YACpB,iBAAiB,CAAC,UAAU,CAAC,KAAK,EAAE,eAAe,CAAC,CAAC;QACvD,CAAC;QACD,QAAQ,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;IACzB,CAAC;IAED,iBAAiB;IAChB,UAAU,CAAC,SAAS,CAAC,OAAO,CAAU,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,CAAC;IACpD,UAAU,CAAC,SAAS,CAAC,OAAO,CAAU,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,CAAC;IAErD,4EAA4E;IAC5E,MAAM,SAAS,GAAG,aAAa,CAAC,IAAI,EAAE,IAAI,EAAE,gBAAgB,CAAC,CAAC;IAC9D,IAAI,SAAS,EAAE,CAAC;QACd,gBAAgB,CAAC,UAAU,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;IAChD,CAAC;AACH,CAAC,CAAC;AAEF;;GAEG;AACH;;;;GAIG;AACH,MAAM,CAAC,MAAM,QAAQ,GAAG,CACtB,UAAsB,EACtB,GAAW,EACX,MAAc,EACd,YAA6B,EAC7B,mBAA2B,EAAE,EACpB,EAAE;IACX,MAAM,IAAI,GAAG,SAAS,CAAC,mBAAmB,CAAC,UAAU,CAAC,kBAAkB,EAAE,YAAY,CAAC,CAAC;IAExF,wBAAwB;IACxB,KAAK,MAAM,OAAO,IAAI;QACpB,QAAQ;QACR,OAAO;QACP,MAAM;QACN,OAAO;QACP,MAAM;QACN,MAAM;QACN,MAAM;QACN,MAAM;KACE,EAAE,CAAC;QACX,MAAM,IAAI,GAAG,UAAU,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;QAC3C,IAAI,IAAI,CAAC,EAAE,KAAK,MAAM,EAAE,CAAC;YACvB,0FAA0F;YAC1F,kFAAkF;YAClF,MAAM,MAAM,GAAG,aAAa,CAAC,IAAI,EAAE,IAAI,EAAE,gBAAgB,CAAC,CAAC;YAC3D,IAAI,MAAM,EAAE,CAAC;gBACX,iBAAiB,CAAC,UAAU,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;gBAC5C,cAAc,CAAC,UAAU,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;YAC3C,CAAC;YAED,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC;YACZ,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC;YACZ,qDAAqD;YACrD,MAAM,KAAK,GAAG,YAAY,CAAC,UAAU,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;YACtD,IAAI,UAAU,CAAC,MAAM,GAAG,KAAK;gBAAE,UAAU,CAAC,MAAM,GAAG,KAAK,CAAC;YACzD,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAED,YAAY;IACZ,MAAM,OAAO,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,MAAM,IAAI,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC;IAC/D,IAAI,CAAC,OAAO;QAAE,OAAO,KAAK,CAAC;IAE3B,6DAA6D;IAC7D,MAAM,MAAM,GAAG,aAAa,CAAC,OAAO,EAAE,IAAI,EAAE,gBAAgB,CAAC,CAAC;IAC9D,IAAI,MAAM,EAAE,CAAC;QACX,cAAc,CAAC,UAAU,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IAC3C,CAAC;IACD,aAAa,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;IAE3B,eAAe;IACf,MAAM,KAAK,GAAG,YAAY,CAAC,UAAU,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IACtD,IAAI,UAAU,CAAC,MAAM,GAAG,KAAK;QAAE,UAAU,CAAC,MAAM,GAAG,KAAK,CAAC;IACzD,OAAO,IAAI,CAAC;AACd,CAAC,CAAC;AAEF,mEAAmE;AAEnE;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,KAAY,EAAE,IAAY,EAAE,KAAa,EAAQ,EAAE;IAClF,MAAM,KAAK,GAAG;QACZ,UAAU;QACV,WAAW;QACX,UAAU;QACV,cAAc;QACd,QAAQ;QACR,UAAU;KACF,CAAC;IACX,IAAI,OAAO,GAAG,IAAI,GAAG,CAAC,CAAC,EAAE,IAAI,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC;IACxC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;QAClC,MAAM,GAAG,GAAG,KAAK,CAAC,MAAM,CAAC,OAAO,GAAG,EAAE,CAAC,CAAC,CAAC;QACxC,IAAI,KAAK,CAAC,GAAG,CAAC,GAAG,cAAc;YAAE,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACjD,OAAO,IAAI,EAAE,CAAC;IAChB,CAAC;AACH,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,SAAkB,EAAE,QAAgB,EAAE,EAAS,EAAE;IACrF,sFAAsF;IACtF,6EAA6E;IAC7E,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;QAC5B,OAAO,6BAA6B,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;IACzD,CAAC;IAED,MAAM,KAAK,GAAU;QACnB,QAAQ,EAAE,CAAC;QACX,SAAS,EAAE,CAAC;QACZ,QAAQ,EAAE,CAAC;QACX,YAAY,EAAE,CAAC;QACf,MAAM,EAAE,CAAC;QACT,QAAQ,EAAE,CAAC;QACX,IAAI,EAAE,CAAC;KACR,CAAC;IAEF,MAAM,QAAQ,GAAoB;QAChC,UAAU;QACV,WAAW;QACX,UAAU;QACV,cAAc;QACd,QAAQ;QACR,UAAU;KACX,CAAC;IACF,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC;QAC/B,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC;QAC1C,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;IACzB,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC,CAAC"}
|
package/dist/rules/loot.d.ts
CHANGED
|
@@ -117,6 +117,14 @@ export declare const ItemUtils: {
|
|
|
117
117
|
getItemBasePrice: (tier: Tier) => number;
|
|
118
118
|
getCharismaAdjustedItemPrice: (basePrice: number, charisma: number) => number;
|
|
119
119
|
getItemPrice: (tier: Tier, charisma: number) => number;
|
|
120
|
+
/**
|
|
121
|
+
* `ImplAdventurer::get_item_specials_seed` -- `poseidon([salt, adventurer_id]) % 2^16`.
|
|
122
|
+
*
|
|
123
|
+
* Memoised because it sits under `getSpecials`, which the damage helpers call once per armour
|
|
124
|
+
* slot per sample: a Monte Carlo combat estimate hashes tens of thousands of times otherwise,
|
|
125
|
+
* for one answer that is fixed for the whole run. The salt is write-once and the id is a
|
|
126
|
+
* constant, so the pair is a safe cache key; a run only ever contributes one entry.
|
|
127
|
+
*/
|
|
120
128
|
getItemSpecialsSeed: (salt: number, adventurerId: string | bigint) => number;
|
|
121
129
|
getSpecialsSeed: (itemId: number, entropy: number) => number;
|
|
122
130
|
/**
|
|
@@ -148,12 +156,39 @@ export declare const ItemUtils: {
|
|
|
148
156
|
imageUrl: string;
|
|
149
157
|
};
|
|
150
158
|
getTierColor: (tier: Tier) => string;
|
|
151
|
-
|
|
159
|
+
/**
|
|
160
|
+
* `itemSpecialsSeed` is `getItemSpecialsSeed(item_specials_salt, adventurer_id)`, NOT the raw
|
|
161
|
+
* salt -- the two name different specials, so a caller that passes the salt reports the wrong
|
|
162
|
+
* matches.
|
|
163
|
+
*/
|
|
164
|
+
isNameMatch: (itemId: number, itemLevel: number, itemSpecialsSeed: number, beast: Beast, specialsOverride?: bigint) => boolean;
|
|
152
165
|
getStatBonus: (special1: string) => "+3 STR" | "+3 VIT" | "+2 STR +1 CHA" | "+3 DEX" | "+1 STR +1 DEX +1 VIT" | "+3 INT" | "+3 WIS" | "+2 VIT +1 DEX" | "+2 STR +1 DEX" | "+1 STR +1 CHA +1 WIS" | "+1 VIT +1 CHA +1 INT" | "+2 INT +1 WIS" | "+2 DEX +1 CHA" | "+2 WIS +1 DEX" | "+1 INT +2 WIS" | "+3 CHA" | undefined;
|
|
153
|
-
|
|
154
|
-
|
|
166
|
+
/**
|
|
167
|
+
* The stat delta one item grants: `apply_suffix_boost` + `apply_bag_boost`
|
|
168
|
+
* (`stats.cairo:139` and `:215`), which is exactly what `fullItemBoost` already computes.
|
|
169
|
+
*
|
|
170
|
+
* There used to be two tables here. This one -- applied by the client store on an optimistic
|
|
171
|
+
* equip -- omitted every vitality and charisma component and carried a bespoke silver-ring
|
|
172
|
+
* `luck` term the contract does not have, while `fullItemBoost` below, which every stat read
|
|
173
|
+
* went through, had the vit/cha and no luck. A store that equipped `of Giant` could therefore
|
|
174
|
+
* never agree with the comparison that read it. One table now, and `luck` is not in it: it is
|
|
175
|
+
* derived from the whole loadout by `calculateLuck`, never accumulated per item.
|
|
176
|
+
*/
|
|
177
|
+
addItemBoosts: (item: Item, itemSpecialsSeed: number, stats: Stats, specialsOverride?: bigint) => Stats;
|
|
178
|
+
/** `remove_suffix_boost` + `remove_bag_boost` -- the exact inverse of `addItemBoosts`. */
|
|
179
|
+
removeItemBoosts: (item: Item, itemSpecialsSeed: number, stats: Stats, specialsOverride?: bigint) => Stats;
|
|
155
180
|
fullItemBoost: (item: Item, item_specials_salt: number, stats: Stats, specialsOverride?: bigint) => Stats;
|
|
156
|
-
|
|
181
|
+
/**
|
|
182
|
+
* `Equipment::get_stat_boosts` + `Bag::get_stat_boosts` -- the stat half of `add_stat_boosts`.
|
|
183
|
+
*
|
|
184
|
+
* Equipment grants the whole suffix (`apply_suffix_boost` AND `apply_bag_boost`); a bagged item
|
|
185
|
+
* grants only the bag half, which is vitality and charisma. `luck` is NOT here -- it is derived
|
|
186
|
+
* from jewellery by `calculateLuck` in `rules/boosts.ts` and assigned, not summed.
|
|
187
|
+
*
|
|
188
|
+
* `adventurerId` is required because the seed every specials lookup takes is
|
|
189
|
+
* `poseidon([item_specials_salt, adventurer_id]) % 2^16`, not the salt itself.
|
|
190
|
+
*/
|
|
191
|
+
getEquippedItemStats: (adventurer: Adventurer, bag: readonly Item[], adventurerId: string | bigint, specialsOverride?: bigint) => Stats;
|
|
157
192
|
getJewelryEffect: (id: number) => string;
|
|
158
193
|
getCurrentJewelryEffect: (id: number, level: number) => string;
|
|
159
194
|
};
|
package/dist/rules/loot.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"loot.d.ts","sourceRoot":"","sources":["../../src/rules/loot.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"loot.d.ts","sourceRoot":"","sources":["../../src/rules/loot.ts"],"names":[],"mappings":"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"}
|