dexbot 1.5.0 → 1.5.1
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/CHANGELOG.md +26 -0
- package/analysis/ama_fitting/package.json +1 -1
- package/analysis/trend_detection/package.json +1 -1
- package/claw/package.json +1 -1
- package/claw/runtimes/openclaw-plugin/openclaw.plugin.json +1 -1
- package/claw/runtimes/openclaw-plugin/package.json +1 -1
- package/claw/tests/test_claw_mcp_transport.ts +2 -2
- package/dist/modules/account_orders.d.ts +7 -1
- package/dist/modules/account_orders.d.ts.map +1 -1
- package/dist/modules/account_orders.js +34 -1
- package/dist/modules/account_orders.js.map +1 -1
- package/dist/modules/constants.d.ts +2 -0
- package/dist/modules/constants.d.ts.map +1 -1
- package/dist/modules/constants.js +12 -0
- package/dist/modules/constants.js.map +1 -1
- package/dist/modules/dexbot_class.d.ts +1 -0
- package/dist/modules/dexbot_class.d.ts.map +1 -1
- package/dist/modules/dexbot_cow_runtime.d.ts +18 -1
- package/dist/modules/dexbot_cow_runtime.d.ts.map +1 -1
- package/dist/modules/dexbot_cow_runtime.js +223 -32
- package/dist/modules/dexbot_cow_runtime.js.map +1 -1
- package/dist/modules/dexbot_startup_runtime.d.ts +1 -0
- package/dist/modules/dexbot_startup_runtime.d.ts.map +1 -1
- package/dist/modules/dexbot_startup_runtime.js +12 -1
- package/dist/modules/dexbot_startup_runtime.js.map +1 -1
- package/dist/modules/dexbot_state_recovery.d.ts.map +1 -1
- package/dist/modules/dexbot_state_recovery.js +7 -0
- package/dist/modules/dexbot_state_recovery.js.map +1 -1
- package/dist/modules/order/accounting.d.ts +34 -0
- package/dist/modules/order/accounting.d.ts.map +1 -1
- package/dist/modules/order/accounting.js +182 -5
- package/dist/modules/order/accounting.js.map +1 -1
- package/dist/modules/order/grid.d.ts.map +1 -1
- package/dist/modules/order/grid.js +21 -16
- package/dist/modules/order/grid.js.map +1 -1
- package/dist/modules/order/grid_reconcile_internal.d.ts.map +1 -1
- package/dist/modules/order/grid_reconcile_internal.js +72 -0
- package/dist/modules/order/grid_reconcile_internal.js.map +1 -1
- package/dist/modules/order/manager.d.ts +41 -1
- package/dist/modules/order/manager.d.ts.map +1 -1
- package/dist/modules/order/manager.js +144 -15
- package/dist/modules/order/manager.js.map +1 -1
- package/dist/modules/order/strategy.d.ts.map +1 -1
- package/dist/modules/order/strategy.js +17 -2
- package/dist/modules/order/strategy.js.map +1 -1
- package/dist/modules/order/sync_engine.d.ts.map +1 -1
- package/dist/modules/order/sync_engine.js +58 -8
- package/dist/modules/order/sync_engine.js.map +1 -1
- package/dist/modules/order/utils/math.d.ts +42 -1
- package/dist/modules/order/utils/math.d.ts.map +1 -1
- package/dist/modules/order/utils/math.js +91 -1
- package/dist/modules/order/utils/math.js.map +1 -1
- package/dist/modules/order/utils/order.d.ts +52 -1
- package/dist/modules/order/utils/order.d.ts.map +1 -1
- package/dist/modules/order/utils/order.js +137 -7
- package/dist/modules/order/utils/order.js.map +1 -1
- package/dist/modules/order/utils/system.d.ts +14 -0
- package/dist/modules/order/utils/system.d.ts.map +1 -1
- package/dist/modules/order/utils/system.js +51 -3
- package/dist/modules/order/utils/system.js.map +1 -1
- package/dist/modules/order/utils/validate.d.ts +29 -2
- package/dist/modules/order/utils/validate.d.ts.map +1 -1
- package/dist/modules/order/utils/validate.js +165 -10
- package/dist/modules/order/utils/validate.js.map +1 -1
- package/docs/DEXBOT_COMPARISON.md +3 -3
- package/docs/EVOLUTION.md +6 -5
- package/docs/FUND_MOVEMENT_AND_ACCOUNTING.md +3 -1
- package/docs/GRID_RECONCILE.md +1 -0
- package/docs/LOGGING.md +3 -0
- package/docs/README.md +2 -2
- package/package.json +1 -1
|
@@ -101,6 +101,30 @@ declare function checkFundDrift(orders: Map<string, any>, accountTotals: any, as
|
|
|
101
101
|
allowedDriftSell: number;
|
|
102
102
|
reason: string | null;
|
|
103
103
|
};
|
|
104
|
+
/**
|
|
105
|
+
* Stamp a rotation UPDATE as a gap-evacuation when plan-build geometry says
|
|
106
|
+
* it moves a live order OUT of the gap band onto its rail. The stamp freezes
|
|
107
|
+
* the boundary + gap width AT PLAN-BUILD TIME (B-stamp) so the COW executor's
|
|
108
|
+
* LAST-FILL guard validates against the geometry the plan was built for —
|
|
109
|
+
* plans can otherwise validate against a later-committed boundary and the
|
|
110
|
+
* evacuation gets misjudged. Stamping requires BOTH:
|
|
111
|
+
* - geometry: source slot index strictly inside the gap band, destination on
|
|
112
|
+
* the same side's rail (pure parseSlotIndex vs frozen boundary/gapSlots —
|
|
113
|
+
* never the stored slot type),
|
|
114
|
+
* - allowance: isEvacuationRotationAllowed(oldPrice, oldSize, newPrice,
|
|
115
|
+
* newSize, type) — outward repricing with bit-exact non-growing size.
|
|
116
|
+
* Anything else stays unstamped and obeys the guard normally (safe default).
|
|
117
|
+
*
|
|
118
|
+
* @param {Object} action - Rotation UPDATE action being built
|
|
119
|
+
* @param {Object} sourceMaster - Live master-grid order for the source slot
|
|
120
|
+
* @param {number|string} destPrice - Destination (hole) price
|
|
121
|
+
* @param {number} destSize - Destination (clamped) size
|
|
122
|
+
* @param {string} type - ORDER_TYPES.BUY or SELL
|
|
123
|
+
* @param {number} frozenBoundary - Plan-build boundary index
|
|
124
|
+
* @param {number} frozenGapSlots - Plan-build gap slot count
|
|
125
|
+
* @returns {Object} The action, stamped when it qualifies
|
|
126
|
+
*/
|
|
127
|
+
declare function stampGapEvacuationRotation(action: any, sourceMaster: any, destPrice: any, destSize: any, type: any, frozenBoundary: any, frozenGapSlots: any, assets?: any): any;
|
|
104
128
|
/**
|
|
105
129
|
* Reconcile target grid against master state
|
|
106
130
|
* @param {Map} masterGrid - Current master grid
|
|
@@ -113,6 +137,7 @@ declare function reconcileGrid(masterGrid: any, targetGrid: any, targetBoundary:
|
|
|
113
137
|
actions: any[];
|
|
114
138
|
aborted: boolean;
|
|
115
139
|
boundaryIdx: any;
|
|
140
|
+
evacReady: any[];
|
|
116
141
|
summary: {
|
|
117
142
|
total: any;
|
|
118
143
|
creates: any;
|
|
@@ -140,11 +165,13 @@ declare function hasExecutableActions(rebalanceResult: any): boolean;
|
|
|
140
165
|
/**
|
|
141
166
|
* Validate that CREATE actions target slots that are not already occupied on-chain
|
|
142
167
|
* and that no CREATE price collides with an existing placed order or unmatched
|
|
143
|
-
* on-chain order. Checks
|
|
168
|
+
* on-chain order. Checks five layers:
|
|
144
169
|
* 1. Slot occupancy — target grid slot already has a placed order
|
|
145
170
|
* 2. Master grid slot collision — same slotId already placed (priceSlotEqual)
|
|
146
171
|
* 3. Chain orphan slot collision — chain order's nearest slotId equals target slotId
|
|
147
172
|
* 4. Same-batch duplicate slotId — two CREATEs target same slotId
|
|
173
|
+
* 5. Same-batch bit-identical duplicate price — two CREATEs on different
|
|
174
|
+
* target slots at the exact same price (same side)
|
|
148
175
|
*
|
|
149
176
|
* Cancel and rotation-released slots are considered free.
|
|
150
177
|
*
|
|
@@ -243,5 +270,5 @@ declare function evaluateCommit(workingGrid: any, options?: any): {
|
|
|
243
270
|
reason?: undefined;
|
|
244
271
|
level?: undefined;
|
|
245
272
|
};
|
|
246
|
-
export { validateOrder, validateGridForPersistence, validateWorkingGridFunds, checkFundDrift, reconcileGrid, optimizeRebalanceActions, hasExecutableActions, validateCreateTargetSlots, hasActionForOrder, removeActionsForOrder, projectTargetToWorkingGrid, buildStateUpdates, buildAbortedResult, buildSuccessResult, evaluateCommit };
|
|
273
|
+
export { validateOrder, validateGridForPersistence, validateWorkingGridFunds, checkFundDrift, reconcileGrid, optimizeRebalanceActions, hasExecutableActions, validateCreateTargetSlots, hasActionForOrder, removeActionsForOrder, projectTargetToWorkingGrid, buildStateUpdates, buildAbortedResult, buildSuccessResult, evaluateCommit, stampGapEvacuationRotation };
|
|
247
274
|
//# sourceMappingURL=validate.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validate.d.ts","sourceRoot":"","sources":["../../../../modules/order/utils/validate.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;
|
|
1
|
+
{"version":3,"file":"validate.d.ts","sourceRoot":"","sources":["../../../../modules/order/utils/validate.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AA2CH;;;;;;GAMG;AACH,iBAAS,aAAa,CAAC,KAAK,EAAE,GAAG,EAAE,QAAQ,GAAE,GAAU,EAAE,OAAO,GAAE,GAAgB;;;;;EAwFjF;AAED;;;;;GAKG;AACH,iBAAS,0BAA0B,CAAC,MAAM,EAAE,GAAG,EAAE,aAAa,EAAE,GAAG;;;;;;EAkBlE;AAsCD;;;;;;;GAOG;AACH,iBAAS,wBAAwB,CAAC,WAAW,EAAE,GAAG,EAAE,cAAc,EAAE,GAAG,EAAE,UAAU,GAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAM,EAAE,MAAM,GAAE,GAAU;;;;;;;;;;;;;;EAoDhI;AAED;;;;;;GAMG;AACH,iBAAS,cAAc,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,aAAa,EAAE,GAAG,EAAE,MAAM,GAAE,GAAU,EAAE,UAAU,GAAE,GAAU;;;;;;;;;;;;;;EAmD/G;AA+CD;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,iBAAS,0BAA0B,CAAC,MAAM,EAAE,GAAG,EAAE,YAAY,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,EAAE,QAAQ,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,cAAc,EAAE,GAAG,EAAE,cAAc,EAAE,GAAG,EAAE,MAAM,GAAE,GAAU,OAoBzK;AAGD;;;;;;;GAOG;AACH,iBAAS,aAAa,CAAC,UAAU,EAAE,GAAG,EAAE,UAAU,EAAE,GAAG,EAAE,cAAc,EAAE,GAAG,EAAE,OAAO,GAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAM;;;;;;;;;;;EA4M9G;AAED;;;;;;;;GAQG;AACH,iBAAS,wBAAwB,CAAC,OAAO,EAAE,GAAG,EAAE,UAAU,EAAE,GAAG,EAAE,OAAO,GAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAM,SA4FjG;AAgBD;;;;;GAKG;AACH,iBAAS,oBAAoB,CAAC,eAAe,EAAE,GAAG,WAGjD;AAED;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,iBAAS,yBAAyB,CAAC,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,GAAE,GAAU,EAAE,oBAAoB,GAAE,GAAG,EAAO;;;;EA2IlH;AAkBD;;;;;;;GAOG;AACH,iBAAS,iBAAiB,CAAC,OAAO,EAAE,GAAG,EAAE,UAAU,EAAE,GAAG,EAAE,QAAQ,EAAE,GAAG,WAMtE;AAED;;;;;;;GAOG;AACH,iBAAS,qBAAqB,CAAC,OAAO,EAAE,GAAG,EAAE,UAAU,EAAE,GAAG,EAAE,QAAQ,EAAE,GAAG,UAW1E;AA4DD;;;;;;;GAOG;AACH,iBAAS,0BAA0B,CAAC,WAAW,EAAE,GAAG,EAAE,UAAU,EAAE,GAAG,EAAE,OAAO,GAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAM,QAkEvG;AAED;;;;;GAKG;AACH,iBAAS,iBAAiB,CAAC,OAAO,EAAE,GAAG,EAAE,UAAU,EAAE,GAAG,SAyBvD;AAED;;;;GAIG;AACH,iBAAS,kBAAkB,CAAC,MAAM,EAAE,GAAG;;;;;;;;;;EAYtC;AAED;;;;GAIG;AACH,iBAAS,kBAAkB,CAAC,EACxB,OAAO,EACP,YAAY,EACZ,WAAW,EACX,eAAe,EACf,gBAAgB,EACnB,EAAE,GAAG;;;;;;;;;EAWL;AAED;;;;;GAKG;AACH,iBAAS,cAAc,CAAC,WAAW,EAAE,GAAG,EAAE,OAAO,GAAE,GAAQ;;;;;;;;EAgE1D;AAMD,OAAO,EAAE,aAAa,EAAE,0BAA0B,EAAE,wBAAwB,EAAE,cAAc,EAAE,aAAa,EAAE,wBAAwB,EAAE,oBAAoB,EAAE,yBAAyB,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,0BAA0B,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,cAAc,EAAE,0BAA0B,EAAE,CAAA"}
|
|
@@ -35,9 +35,9 @@
|
|
|
35
35
|
// ===============================================================================
|
|
36
36
|
import * as Format from '../format.js';
|
|
37
37
|
import { ORDER_STATES, ORDER_TYPES, COW_ACTIONS, GRID_LIMITS } from '../../constants.js';
|
|
38
|
-
import { floatToBlockchainInt, blockchainToFloat, getPrecisionSlack, getDoubleDustThreshold, clamp } from './math.js';
|
|
38
|
+
import { floatToBlockchainInt, blockchainToFloat, getPrecisionSlack, getPrecisionByOrderType, getDoubleDustThreshold, getSellStartIdx, isSlotIndexInGapBand, isEvacuationRotationAllowed, clamp } from './math.js';
|
|
39
39
|
import { parseSlotIndex } from './slot.js';
|
|
40
|
-
import { isOrderOnChain, isPhantomOrder, convertToSpreadPlaceholder } from './order.js';
|
|
40
|
+
import { isOrderOnChain, isPhantomOrder, convertToSpreadPlaceholder, detectGapEvacuationCandidates, updateGapEvacuationStreaks } from './order.js';
|
|
41
41
|
const { isValidNumber, toFiniteNumber } = Format;
|
|
42
42
|
// Pre-computed valid sets
|
|
43
43
|
const VALID_ORDER_STATES = new Set(Object.values(ORDER_STATES));
|
|
@@ -85,6 +85,12 @@ function validateOrder(order, oldOrder = null, context = 'validate') {
|
|
|
85
85
|
});
|
|
86
86
|
normalizedOrder.size = 0;
|
|
87
87
|
}
|
|
88
|
+
// RAIL-HOLE PRESERVATION (Phase 2): a sized BUY/SELL VIRTUAL slot with no
|
|
89
|
+
// orderId is a rail-typed hole (rotation source, fill-consumed rail slot),
|
|
90
|
+
// NOT a spread placeholder — it must pass through untouched. Only SPREAD
|
|
91
|
+
// is size-normalized above; the phantom and ILLEGAL_SPREAD_STATE checks
|
|
92
|
+
// below fire solely for on-chain states, so rail holes are never
|
|
93
|
+
// zeroed, retyped, or rejected here. Locked by test_gap_evacuation.
|
|
88
94
|
const isOnChainState = (normalizedOrder.state === ORDER_STATES.ACTIVE ||
|
|
89
95
|
normalizedOrder.state === ORDER_STATES.PARTIAL);
|
|
90
96
|
if (normalizedOrder.type === ORDER_TYPES.SPREAD && isOnChainState) {
|
|
@@ -325,6 +331,61 @@ function clampRotationSizeForPartial(surplusMaster, holeSize, logger = null, hol
|
|
|
325
331
|
}
|
|
326
332
|
return target;
|
|
327
333
|
}
|
|
334
|
+
/**
|
|
335
|
+
* Stamp a rotation UPDATE as a gap-evacuation when plan-build geometry says
|
|
336
|
+
* it moves a live order OUT of the gap band onto its rail. The stamp freezes
|
|
337
|
+
* the boundary + gap width AT PLAN-BUILD TIME (B-stamp) so the COW executor's
|
|
338
|
+
* LAST-FILL guard validates against the geometry the plan was built for —
|
|
339
|
+
* plans can otherwise validate against a later-committed boundary and the
|
|
340
|
+
* evacuation gets misjudged. Stamping requires BOTH:
|
|
341
|
+
* - geometry: source slot index strictly inside the gap band, destination on
|
|
342
|
+
* the same side's rail (pure parseSlotIndex vs frozen boundary/gapSlots —
|
|
343
|
+
* never the stored slot type),
|
|
344
|
+
* - allowance: isEvacuationRotationAllowed(oldPrice, oldSize, newPrice,
|
|
345
|
+
* newSize, type) — outward repricing with bit-exact non-growing size.
|
|
346
|
+
* Anything else stays unstamped and obeys the guard normally (safe default).
|
|
347
|
+
*
|
|
348
|
+
* @param {Object} action - Rotation UPDATE action being built
|
|
349
|
+
* @param {Object} sourceMaster - Live master-grid order for the source slot
|
|
350
|
+
* @param {number|string} destPrice - Destination (hole) price
|
|
351
|
+
* @param {number} destSize - Destination (clamped) size
|
|
352
|
+
* @param {string} type - ORDER_TYPES.BUY or SELL
|
|
353
|
+
* @param {number} frozenBoundary - Plan-build boundary index
|
|
354
|
+
* @param {number} frozenGapSlots - Plan-build gap slot count
|
|
355
|
+
* @returns {Object} The action, stamped when it qualifies
|
|
356
|
+
*/
|
|
357
|
+
function stampGapEvacuationRotation(action, sourceMaster, destPrice, destSize, type, frozenBoundary, frozenGapSlots, assets = null) {
|
|
358
|
+
const b = Number(frozenBoundary);
|
|
359
|
+
const g = Number(frozenGapSlots);
|
|
360
|
+
if (!Number.isFinite(b) || !Number.isFinite(g) || g < 0)
|
|
361
|
+
return action;
|
|
362
|
+
const srcIdx = parseSlotIndex(sourceMaster?.id ?? action?.id);
|
|
363
|
+
const dstIdx = parseSlotIndex(action?.newGridId);
|
|
364
|
+
if (srcIdx === null || srcIdx === undefined || dstIdx === null || dstIdx === undefined)
|
|
365
|
+
return action;
|
|
366
|
+
if (!isSlotIndexInGapBand(srcIdx, b, g))
|
|
367
|
+
return action;
|
|
368
|
+
if (isSlotIndexInGapBand(dstIdx, b, g))
|
|
369
|
+
return action;
|
|
370
|
+
const sellStartIdx = getSellStartIdx(b, g);
|
|
371
|
+
const dstInRail = type === ORDER_TYPES.SELL ? Number(dstIdx) >= sellStartIdx : Number(dstIdx) <= b;
|
|
372
|
+
if (!dstInRail)
|
|
373
|
+
return action;
|
|
374
|
+
// Bit-exact size check with the side's on-chain precision (mirrors the
|
|
375
|
+
// live unstamped probe in dexbot_cow_runtime) — a 1-satoshi size growth
|
|
376
|
+
// must be refused at stamp time, not just at execution.
|
|
377
|
+
let stampPrecision = null;
|
|
378
|
+
try {
|
|
379
|
+
stampPrecision = assets ? getPrecisionByOrderType(assets, type) : null;
|
|
380
|
+
}
|
|
381
|
+
catch {
|
|
382
|
+
stampPrecision = null;
|
|
383
|
+
}
|
|
384
|
+
const check = isEvacuationRotationAllowed(sourceMaster?.price, sourceMaster?.size, destPrice, destSize, type, stampPrecision);
|
|
385
|
+
if (!check.allowed)
|
|
386
|
+
return action;
|
|
387
|
+
return { ...action, origin: 'gap-evacuation', evacBoundary: b, evacGapSlots: Math.floor(g) };
|
|
388
|
+
}
|
|
328
389
|
/**
|
|
329
390
|
* Reconcile target grid against master state
|
|
330
391
|
* @param {Map} masterGrid - Current master grid
|
|
@@ -335,6 +396,12 @@ function clampRotationSizeForPartial(surplusMaster, holeSize, logger = null, hol
|
|
|
335
396
|
*/
|
|
336
397
|
function reconcileGrid(masterGrid, targetGrid, targetBoundary, options = {}) {
|
|
337
398
|
const { logger = null, dustThresholdPercent = GRID_LIMITS.PARTIAL_DUST_THRESHOLD_PERCENTAGE } = options;
|
|
399
|
+
// B-stamp inputs for gap-evacuation rotation stamping (frozen at
|
|
400
|
+
// plan-build): callers pass the geometry this plan was built for. Absent
|
|
401
|
+
// or non-finite => no stamping (guarded default, never fail-open).
|
|
402
|
+
const planGapSlots = Number(options?.gapSlots);
|
|
403
|
+
const hasPlanGeometry = Number.isFinite(planGapSlots) && planGapSlots >= 0;
|
|
404
|
+
const evacAssets = options?.assets ?? null;
|
|
338
405
|
const actions = [];
|
|
339
406
|
const surplusesBuy = [];
|
|
340
407
|
const surplusesSell = [];
|
|
@@ -451,16 +518,25 @@ function reconcileGrid(masterGrid, targetGrid, targetBoundary, options = {}) {
|
|
|
451
518
|
for (let i = 0; i < rotationCount; i++) {
|
|
452
519
|
const surplus = surpluses[i];
|
|
453
520
|
const hole = healthyHoles[i];
|
|
454
|
-
|
|
521
|
+
const clampedSize = clampRotationSizeForPartial(surplus.master, hole.order.size, logger, hole.id);
|
|
522
|
+
let rotation = {
|
|
455
523
|
type: COW_ACTIONS.UPDATE,
|
|
456
524
|
id: surplus.id,
|
|
457
525
|
orderId: surplus.master.orderId,
|
|
458
526
|
newGridId: hole.id,
|
|
459
|
-
newSize:
|
|
527
|
+
newSize: clampedSize,
|
|
460
528
|
newPrice: hole.order.price,
|
|
461
529
|
order: hole.order,
|
|
462
530
|
isRotation: true
|
|
463
|
-
}
|
|
531
|
+
};
|
|
532
|
+
// Gap-evacuation B-stamp (plan-build frozen boundary): a surplus
|
|
533
|
+
// stranded in the gap band rotating onto its rail bypasses the
|
|
534
|
+
// LAST-FILL guard at execution — the rotation reduces the
|
|
535
|
+
// violation surface instead of adding exposure.
|
|
536
|
+
if (hasPlanGeometry) {
|
|
537
|
+
rotation = stampGapEvacuationRotation(rotation, surplus.master, hole.order.price, clampedSize, surplus.master?.type, validatedBoundary, planGapSlots, evacAssets);
|
|
538
|
+
}
|
|
539
|
+
actions.push(rotation);
|
|
464
540
|
}
|
|
465
541
|
for (let i = rotationCount; i < healthyHoles.length; i++) {
|
|
466
542
|
actions.push({ type: COW_ACTIONS.CREATE, id: healthyHoles[i].id, order: healthyHoles[i].order });
|
|
@@ -475,10 +551,28 @@ function reconcileGrid(masterGrid, targetGrid, targetBoundary, options = {}) {
|
|
|
475
551
|
actions.push({ type: COW_ACTIONS.CANCEL, id, orderId: masterOrder.orderId, reason: 'orphan-slot' });
|
|
476
552
|
}
|
|
477
553
|
}
|
|
554
|
+
// Phase 3: tick the per-slot gap-evacuation streak counter when the
|
|
555
|
+
// caller supplies a Map (in-memory on the manager; resets on restart).
|
|
556
|
+
// Detection is geometry-only (parse slot idx vs frozen boundary/gapSlots).
|
|
557
|
+
let evacReady = [];
|
|
558
|
+
try {
|
|
559
|
+
if (options?.evacStreaks instanceof Map && hasPlanGeometry) {
|
|
560
|
+
const candidates = detectGapEvacuationCandidates(masterGrid, validatedBoundary, planGapSlots);
|
|
561
|
+
const tick = updateGapEvacuationStreaks(options.evacStreaks, candidates);
|
|
562
|
+
evacReady = tick.ready;
|
|
563
|
+
if (evacReady.length > 0 && logger) {
|
|
564
|
+
logger(`[GAP-EVAC] ${evacReady.length} stuck in-band order(s) ` +
|
|
565
|
+
`(boundary ${validatedBoundary}, gap ${planGapSlots}): ` +
|
|
566
|
+
evacReady.map((c) => `${c.id}(x${tick.streaks[c.id] ?? '?'})`).join(', '), 'warn');
|
|
567
|
+
}
|
|
568
|
+
}
|
|
569
|
+
}
|
|
570
|
+
catch { /* streak tracking is best-effort */ }
|
|
478
571
|
return {
|
|
479
572
|
actions,
|
|
480
573
|
aborted: false,
|
|
481
574
|
boundaryIdx: validatedBoundary,
|
|
575
|
+
evacReady,
|
|
482
576
|
summary: summarizeActions(actions)
|
|
483
577
|
};
|
|
484
578
|
}
|
|
@@ -495,6 +589,13 @@ function optimizeRebalanceActions(actions, masterGrid, options = {}) {
|
|
|
495
589
|
if (!Array.isArray(actions) || actions.length === 0)
|
|
496
590
|
return [];
|
|
497
591
|
const { logger = null } = options;
|
|
592
|
+
// B-stamp inputs (same contract as reconcileGrid): frozen plan-build
|
|
593
|
+
// boundary + gap width for gap-evacuation rotation stamping. Absent =>
|
|
594
|
+
// no stamping, guarded default.
|
|
595
|
+
const optBoundary = Number(options?.boundaryIdx);
|
|
596
|
+
const optGapSlots = Number(options?.gapSlots);
|
|
597
|
+
const hasOptGeometry = Number.isFinite(optBoundary) && Number.isFinite(optGapSlots) && optGapSlots >= 0;
|
|
598
|
+
const optAssets = options?.assets ?? null;
|
|
498
599
|
const creates = [];
|
|
499
600
|
const cancels = [];
|
|
500
601
|
const passthrough = [];
|
|
@@ -543,16 +644,21 @@ function optimizeRebalanceActions(actions, masterGrid, options = {}) {
|
|
|
543
644
|
continue;
|
|
544
645
|
}
|
|
545
646
|
const createAction = remainingCreates.splice(bestIdx, 1)[0];
|
|
546
|
-
|
|
647
|
+
const clampedSize = clampRotationSizeForPartial(masterOrder, toFiniteNumber(createAction?.order?.size), logger, createAction.id);
|
|
648
|
+
let rotation = {
|
|
547
649
|
type: COW_ACTIONS.UPDATE,
|
|
548
650
|
id: cancelAction.id,
|
|
549
651
|
orderId: cancelAction.orderId,
|
|
550
652
|
newGridId: createAction.id,
|
|
551
|
-
newSize:
|
|
653
|
+
newSize: clampedSize,
|
|
552
654
|
newPrice: toFiniteNumber(createAction?.order?.price),
|
|
553
655
|
order: createAction.order,
|
|
554
656
|
isRotation: true
|
|
555
|
-
}
|
|
657
|
+
};
|
|
658
|
+
if (hasOptGeometry) {
|
|
659
|
+
rotation = stampGapEvacuationRotation(rotation, masterOrder, toFiniteNumber(createAction?.order?.price), clampedSize, cancelType, optBoundary, optGapSlots, optAssets);
|
|
660
|
+
}
|
|
661
|
+
optimized.push(rotation);
|
|
556
662
|
}
|
|
557
663
|
for (const createAction of remainingCreates) {
|
|
558
664
|
optimized.push(createAction);
|
|
@@ -585,11 +691,13 @@ function hasExecutableActions(rebalanceResult) {
|
|
|
585
691
|
/**
|
|
586
692
|
* Validate that CREATE actions target slots that are not already occupied on-chain
|
|
587
693
|
* and that no CREATE price collides with an existing placed order or unmatched
|
|
588
|
-
* on-chain order. Checks
|
|
694
|
+
* on-chain order. Checks five layers:
|
|
589
695
|
* 1. Slot occupancy — target grid slot already has a placed order
|
|
590
696
|
* 2. Master grid slot collision — same slotId already placed (priceSlotEqual)
|
|
591
697
|
* 3. Chain orphan slot collision — chain order's nearest slotId equals target slotId
|
|
592
698
|
* 4. Same-batch duplicate slotId — two CREATEs target same slotId
|
|
699
|
+
* 5. Same-batch bit-identical duplicate price — two CREATEs on different
|
|
700
|
+
* target slots at the exact same price (same side)
|
|
593
701
|
*
|
|
594
702
|
* Cancel and rotation-released slots are considered free.
|
|
595
703
|
*
|
|
@@ -698,6 +806,53 @@ function validateCreateTargetSlots(actions, orders, _assets = null, chainOrderCa
|
|
|
698
806
|
else
|
|
699
807
|
seen.add(entry.targetId);
|
|
700
808
|
}
|
|
809
|
+
// Same-batch bit-identical duplicate price across DIFFERENT target slots.
|
|
810
|
+
// The genesis-frozen slot mapping gives every slot a distinct price
|
|
811
|
+
// level, so two CREATEs at the exact same price on different slots
|
|
812
|
+
// indicate a degenerate plan (production incident 2026-08-29: several
|
|
813
|
+
// slots planned at one price; every batch was filtered down to a
|
|
814
|
+
// single op and the grid rebuild crawled at one placement per cycle).
|
|
815
|
+
// The tolerance-based price-collision check that caught this class was
|
|
816
|
+
// removed with the slot-based rewrite; this exact-equality check
|
|
817
|
+
// restores the protection without tolerance false-positives. First
|
|
818
|
+
// target per (type, price) wins; later duplicates are skipped by the
|
|
819
|
+
// caller via violatingTargetIds.
|
|
820
|
+
const priceOwner = new Map();
|
|
821
|
+
for (const entry of createEntries) {
|
|
822
|
+
const priceNum = Number(entry.price);
|
|
823
|
+
if (!Number.isFinite(priceNum))
|
|
824
|
+
continue;
|
|
825
|
+
// Key on the on-chain integer repr when the side precision is
|
|
826
|
+
// known (bit-exact: prices that quantize to the same chain int
|
|
827
|
+
// ARE the same price on the DEX); float fallback preserves the
|
|
828
|
+
// old behavior for callers without assets context.
|
|
829
|
+
let key;
|
|
830
|
+
let sidePrecision = null;
|
|
831
|
+
try {
|
|
832
|
+
sidePrecision = _assets ? getPrecisionByOrderType(_assets, entry.type) : null;
|
|
833
|
+
}
|
|
834
|
+
catch {
|
|
835
|
+
sidePrecision = null;
|
|
836
|
+
}
|
|
837
|
+
if (Number.isFinite(Number(sidePrecision)) && Number(sidePrecision) > 0) {
|
|
838
|
+
try {
|
|
839
|
+
key = `${String(entry.type)}:i${floatToBlockchainInt(priceNum, Number(sidePrecision))}`;
|
|
840
|
+
}
|
|
841
|
+
catch {
|
|
842
|
+
key = `${String(entry.type)}:${priceNum}`;
|
|
843
|
+
}
|
|
844
|
+
}
|
|
845
|
+
else {
|
|
846
|
+
key = `${String(entry.type)}:${priceNum}`;
|
|
847
|
+
}
|
|
848
|
+
const owner = priceOwner.get(key);
|
|
849
|
+
if (owner === undefined) {
|
|
850
|
+
priceOwner.set(key, entry.targetId);
|
|
851
|
+
}
|
|
852
|
+
else if (owner !== entry.targetId) {
|
|
853
|
+
violations.push({ targetId: entry.targetId, currentOrderId: null, currentType: entry.type, currentState: 'CREATE', reason: 'same_batch_price_duplicate', duplicateOf: owner });
|
|
854
|
+
}
|
|
855
|
+
}
|
|
701
856
|
}
|
|
702
857
|
const violatingTargetIds = new Set(violations.map(v => v.targetId));
|
|
703
858
|
return {
|
|
@@ -1023,5 +1178,5 @@ function evaluateCommit(workingGrid, options = {}) {
|
|
|
1023
1178
|
// ===============================================================================
|
|
1024
1179
|
// EXPORTS
|
|
1025
1180
|
// ===============================================================================
|
|
1026
|
-
export { validateOrder, validateGridForPersistence, validateWorkingGridFunds, checkFundDrift, reconcileGrid, optimizeRebalanceActions, hasExecutableActions, validateCreateTargetSlots, hasActionForOrder, removeActionsForOrder, projectTargetToWorkingGrid, buildStateUpdates, buildAbortedResult, buildSuccessResult, evaluateCommit };
|
|
1181
|
+
export { validateOrder, validateGridForPersistence, validateWorkingGridFunds, checkFundDrift, reconcileGrid, optimizeRebalanceActions, hasExecutableActions, validateCreateTargetSlots, hasActionForOrder, removeActionsForOrder, projectTargetToWorkingGrid, buildStateUpdates, buildAbortedResult, buildSuccessResult, evaluateCommit, stampGapEvacuationRotation };
|
|
1027
1182
|
//# sourceMappingURL=validate.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validate.js","sourceRoot":"","sources":["../../../../modules/order/utils/validate.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AAEH,kFAAkF;AAClF,mCAAmC;AACnC,kFAAkF;AAGlF,OAAO,KAAK,MAAM,MAAM,cAAc,CAAC;AACvC,OAAO,EACH,YAAY,EACZ,WAAW,EACX,WAAW,EACX,WAAW,EACd,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACH,oBAAoB,EACpB,iBAAiB,EACjB,iBAAiB,EACjB,sBAAsB,EACtB,KAAK,EACR,MAAM,WAAW,CAAC;AACnB,OAAO,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAC3C,OAAO,EACH,cAAc,EACd,cAAc,EACd,0BAA0B,EAC7B,MAAM,YAAY,CAAC;AACpB,MAAM,EAAE,aAAa,EAAE,cAAc,EAAE,GAAG,MAAM,CAAC;AAEjD,0BAA0B;AAC1B,MAAM,kBAAkB,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC;AAChE,MAAM,iBAAiB,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC;AAE9D,kFAAkF;AAClF,wBAAwB;AACxB,kFAAkF;AAElF;;;;;;GAMG;AACH,SAAS,aAAa,CAAC,KAAU,EAAE,WAAgB,IAAI,EAAE,UAAe,UAAU;IAC9E,MAAM,MAAM,GAAU,EAAE,CAAC;IACzB,MAAM,QAAQ,GAAU,EAAE,CAAC;IAC3B,IAAI,eAAe,GAAG,EAAE,GAAG,CAAC,QAAQ,IAAI,EAAE,CAAC,EAAE,GAAG,KAAK,EAAE,CAAC;IAExD,IAAI,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC;QACtB,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,sCAAsC,EAAE,CAAC,CAAC;QACrF,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,eAAe,EAAE,IAAI,EAAE,CAAC;IACvE,CAAC;IAED,IAAI,CAAC,eAAe,CAAC,IAAI,IAAI,eAAe,CAAC,KAAK,KAAK,YAAY,CAAC,OAAO,EAAE,CAAC;QAC1E,MAAM,eAAe,GAAG,cAAc,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;QAC7D,IAAI,eAAe,KAAK,CAAC,EAAE,CAAC;YACxB,eAAe,CAAC,IAAI,GAAG,WAAW,CAAC,MAAM,CAAC;QAC9C,CAAC;IACL,CAAC;IAED,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,eAAe,CAAC,KAAK,CAAC,EAAE,CAAC;QACjD,MAAM,CAAC,IAAI,CAAC;YACR,IAAI,EAAE,eAAe;YACrB,OAAO,EAAE,4BAA4B,KAAK,CAAC,EAAE,oBAAoB,eAAe,CAAC,KAAK,eAAe,OAAO,GAAG;SAClH,CAAC,CAAC;IACP,CAAC;IAED,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,eAAe,CAAC,IAAI,CAAC,EAAE,CAAC;QAC/C,MAAM,CAAC,IAAI,CAAC;YACR,IAAI,EAAE,cAAc;YACpB,OAAO,EAAE,4BAA4B,KAAK,CAAC,EAAE,mBAAmB,eAAe,CAAC,IAAI,eAAe,OAAO,GAAG;SAChH,CAAC,CAAC;IACP,CAAC;IAED,IAAI,eAAe,CAAC,IAAI,KAAK,WAAW,CAAC,MAAM,IAAI,cAAc,CAAC,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;QAC5F,QAAQ,CAAC,IAAI,CAAC;YACV,IAAI,EAAE,wBAAwB;YAC9B,OAAO,EAAE,wCAAwC,KAAK,CAAC,EAAE,SAAS,eAAe,CAAC,IAAI,mBAAmB,OAAO,GAAG;SACtH,CAAC,CAAC;QACH,eAAe,CAAC,IAAI,GAAG,CAAC,CAAC;IAC7B,CAAC;IAED,MAAM,cAAc,GAAG,CACnB,eAAe,CAAC,KAAK,KAAK,YAAY,CAAC,MAAM;QAC7C,eAAe,CAAC,KAAK,KAAK,YAAY,CAAC,OAAO,CACjD,CAAC;IAEF,IAAI,eAAe,CAAC,IAAI,KAAK,WAAW,CAAC,MAAM,IAAI,cAAc,EAAE,CAAC;QAChE,MAAM,CAAC,IAAI,CAAC;YACR,IAAI,EAAE,sBAAsB;YAC5B,OAAO,EAAE,gDAAgD,KAAK,CAAC,EAAE,OAAO,eAAe,CAAC,KAAK,sCAAsC;YACnI,OAAO,EAAE,IAAI;SAChB,CAAC,CAAC;IACP,CAAC;IAED,IAAI,cAAc,CAAC,eAAe,CAAC,EAAE,CAAC;QAClC,MAAM,CAAC,IAAI,CAAC;YACR,IAAI,EAAE,eAAe;YACrB,OAAO,EAAE,wCAAwC,KAAK,CAAC,EAAE,OAAO,eAAe,CAAC,KAAK,8BAA8B,OAAO,iEAAiE;YAC3L,WAAW,EAAE;gBACT,KAAK,EAAE,YAAY,CAAC,OAAO;gBAC3B,OAAO,EAAE,IAAI;gBACb,UAAU,EAAE,IAAI;gBAChB,IAAI,EAAE,CAAC;aACV;SACJ,CAAC,CAAC;IACP,CAAC;IAED,IAAI,eAAe,CAAC,IAAI,KAAK,WAAW,CAAC,GAAG,IAAI,eAAe,CAAC,IAAI,KAAK,WAAW,CAAC,IAAI,EAAE,CAAC;QACxF,eAAe,CAAC,aAAa,GAAG,eAAe,CAAC,IAAI,CAAC;IACzD,CAAC;SAAM,IAAI,CAAC,eAAe,CAAC,aAAa,IAAI,QAAQ,EAAE,CAAC;QACpD,IAAI,QAAQ,CAAC,aAAa,EAAE,CAAC;YACzB,eAAe,CAAC,aAAa,GAAG,QAAQ,CAAC,aAAa,CAAC;QAC3D,CAAC;aAAM,IAAI,QAAQ,CAAC,IAAI,KAAK,WAAW,CAAC,GAAG,IAAI,QAAQ,CAAC,IAAI,KAAK,WAAW,CAAC,IAAI,EAAE,CAAC;YACjF,eAAe,CAAC,aAAa,GAAG,QAAQ,CAAC,IAAI,CAAC;QAClD,CAAC;IACL,CAAC;IAED,OAAO;QACH,OAAO,EAAE,MAAM,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC;QACnE,MAAM;QACN,QAAQ;QACR,eAAe;KAClB,CAAC;AACN,CAAC;AAED;;;;;GAKG;AACH,SAAS,0BAA0B,CAAC,MAAW,EAAE,aAAkB;IAC/D,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,MAAM,EAAE,EAAE,CAAC;QAClC,IAAI,cAAc,CAAC,KAAK,CAAC,EAAE,CAAC;YACxB,OAAO;gBACH,OAAO,EAAE,KAAK;gBACd,MAAM,EAAE,iCAAiC,KAAK,CAAC,EAAE,OAAO,KAAK,CAAC,KAAK,qBAAqB;aAC3F,CAAC;QACN,CAAC;IACL,CAAC;IAED,IAAI,CAAC,aAAa,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,CAAC;QAC5F,OAAO;YACH,OAAO,EAAE,KAAK;YACd,MAAM,EAAE,gCAAgC;SAC3C,CAAC;IACN,CAAC;IAED,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;AAC3C,CAAC;AAED;;;;;GAKG;AACH,SAAS,sBAAsB,CAAC,IAAS,EAAE,aAAkC,EAAE;IAC3E,MAAM,YAAY,GAAG,UAAU,CAAC,YAAY,CAAC;IAC7C,MAAM,aAAa,GAAG,UAAU,CAAC,aAAa,CAAC;IAE/C,IAAI,cAAc,GAAG,CAAC,CAAC;IACvB,IAAI,eAAe,GAAG,CAAC,CAAC;IAExB,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC;QAChC,MAAM,IAAI,GAAG,cAAc,CAAC,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,MAAM,CAAC,CAAC;QAExD,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC;QAC1B,MAAM,QAAQ,GAAG,KAAK,KAAK,YAAY,CAAC,MAAM,IAAI,KAAK,KAAK,YAAY,CAAC,OAAO,CAAC;QAEjF,IAAI,QAAQ,IAAI,cAAc,CAAC,KAAK,CAAC,EAAE,CAAC;YACpC,IAAI,KAAK,CAAC,IAAI,KAAK,WAAW,CAAC,GAAG,EAAE,CAAC;gBACjC,cAAc,IAAI,oBAAoB,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;YAC/D,CAAC;iBAAM,IAAI,KAAK,CAAC,IAAI,KAAK,WAAW,CAAC,IAAI,EAAE,CAAC;gBACzC,eAAe,IAAI,oBAAoB,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC;YACjE,CAAC;QACL,CAAC;IACL,CAAC;IAED,OAAO;QACH,MAAM,EAAE,cAAc;QACtB,OAAO,EAAE,eAAe;QACxB,GAAG,EAAE,iBAAiB,CAAC,cAAc,EAAE,YAAY,CAAC;QACpD,IAAI,EAAE,iBAAiB,CAAC,eAAe,EAAE,aAAa,CAAC;KAC1D,CAAC;AACN,CAAC;AAED;;;;;;;GAOG;AACH,SAAS,wBAAwB,CAAC,WAAgB,EAAE,cAAmB,EAAE,aAAkC,EAAE,EAAE,SAAc,IAAI;IAC7H,MAAM,YAAY,GAAG,UAAU,CAAC,YAAY,IAAI,MAAM,EAAE,MAAM,EAAE,SAAS,CAAC;IAC1E,MAAM,aAAa,GAAG,UAAU,CAAC,aAAa,IAAI,MAAM,EAAE,MAAM,EAAE,SAAS,CAAC;IAE5E,MAAM,QAAQ,GAAG,sBAAsB,CAAC,WAAW,EAAE,EAAE,YAAY,EAAE,aAAa,EAAE,CAAC,CAAC;IAEtF,MAAM,YAAY,GAAG,aAAa,CAAC,cAAc,EAAE,YAAY,CAAC;QAC5D,CAAC,CAAC,MAAM,CAAC,cAAc,CAAC,YAAY,CAAC;QACrC,CAAC,CAAC,aAAa,CAAC,cAAc,EAAE,aAAa,CAAC;YAC1C,CAAC,CAAC,MAAM,CAAC,cAAc,CAAC,aAAa,CAAC;YACtC,CAAC,CAAC,cAAc,CAAC,cAAc,EAAE,OAAO,IAAI,cAAc,EAAE,YAAY,CAAC,CAAC;IAElF,MAAM,aAAa,GAAG,aAAa,CAAC,cAAc,EAAE,aAAa,CAAC;QAC9D,CAAC,CAAC,MAAM,CAAC,cAAc,CAAC,aAAa,CAAC;QACtC,CAAC,CAAC,aAAa,CAAC,cAAc,EAAE,cAAc,CAAC;YAC3C,CAAC,CAAC,MAAM,CAAC,cAAc,CAAC,cAAc,CAAC;YACvC,CAAC,CAAC,cAAc,CAAC,cAAc,EAAE,QAAQ,IAAI,cAAc,EAAE,aAAa,CAAC,CAAC;IAEpF,MAAM,UAAU,GAAU,EAAE,CAAC;IAE7B,MAAM,eAAe,GAAG,oBAAoB,CAAC,YAAY,EAAE,YAAY,CAAC,CAAC;IACzE,MAAM,gBAAgB,GAAG,oBAAoB,CAAC,aAAa,EAAE,aAAa,CAAC,CAAC;IAE5E,IAAI,QAAQ,CAAC,MAAM,GAAG,eAAe,EAAE,CAAC;QACpC,MAAM,gBAAgB,GAAG,iBAAiB,CAAC,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;QAC1E,MAAM,iBAAiB,GAAG,iBAAiB,CAAC,eAAe,EAAE,YAAY,CAAC,CAAC;QAC3E,UAAU,CAAC,IAAI,CAAC;YACZ,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,IAAI,UAAU;YAC3C,QAAQ,EAAE,gBAAgB;YAC1B,SAAS,EAAE,iBAAiB;YAC5B,OAAO,EAAE,iBAAiB,CAAC,QAAQ,CAAC,MAAM,GAAG,eAAe,EAAE,YAAY,CAAC;SAC9E,CAAC,CAAC;IACP,CAAC;IAED,IAAI,QAAQ,CAAC,OAAO,GAAG,gBAAgB,EAAE,CAAC;QACtC,MAAM,iBAAiB,GAAG,iBAAiB,CAAC,QAAQ,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC;QAC7E,MAAM,kBAAkB,GAAG,iBAAiB,CAAC,gBAAgB,EAAE,aAAa,CAAC,CAAC;QAC9E,UAAU,CAAC,IAAI,CAAC;YACZ,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,IAAI,WAAW;YAC5C,QAAQ,EAAE,iBAAiB;YAC3B,SAAS,EAAE,kBAAkB;YAC7B,OAAO,EAAE,iBAAiB,CAAC,QAAQ,CAAC,OAAO,GAAG,gBAAgB,EAAE,aAAa,CAAC;SACjF,CAAC,CAAC;IACP,CAAC;IAED,OAAO;QACH,OAAO,EAAE,UAAU,CAAC,MAAM,KAAK,CAAC;QAChC,MAAM,EAAE,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,mBAAmB,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI;QACtF,UAAU;QACV,QAAQ;QACR,SAAS,EAAE,EAAE,GAAG,EAAE,YAAY,EAAE,IAAI,EAAE,aAAa,EAAE;KACxD,CAAC;AACN,CAAC;AAED;;;;;;GAMG;AACH,SAAS,cAAc,CAAC,MAAwB,EAAE,aAAkB,EAAE,SAAc,IAAI,EAAE,aAAkB,IAAI;IAC5G,IAAI,OAAO,GAAG,CAAC,EAAE,QAAQ,GAAG,CAAC,CAAC;IAC9B,KAAK,MAAM,KAAK,IAAI,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC;QAC9C,MAAM,IAAI,GAAG,cAAc,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACxC,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC;YAAE,SAAS;QAElD,IAAI,KAAK,CAAC,IAAI,KAAK,WAAW,CAAC,GAAG;YAAE,OAAO,IAAI,IAAI,CAAC;aAC/C,IAAI,KAAK,CAAC,IAAI,KAAK,WAAW,CAAC,IAAI;YAAE,QAAQ,IAAI,IAAI,CAAC;IAC/D,CAAC;IAED,MAAM,YAAY,GAAG,aAAa,EAAE,OAAO,IAAI,CAAC,CAAC;IACjD,MAAM,aAAa,GAAG,aAAa,EAAE,QAAQ,IAAI,CAAC,CAAC;IACnD,MAAM,SAAS,GAAG,aAAa,EAAE,GAAG,IAAI,CAAC,CAAC;IAC1C,MAAM,UAAU,GAAG,aAAa,EAAE,IAAI,IAAI,CAAC,CAAC;IAE5C,MAAM,WAAW,GAAG,YAAY,GAAG,OAAO,CAAC;IAC3C,MAAM,YAAY,GAAG,aAAa,GAAG,QAAQ,CAAC;IAE9C,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,GAAG,WAAW,CAAC,CAAC;IACnD,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,UAAU,GAAG,YAAY,CAAC,CAAC;IAEtD,MAAM,YAAY,GAAG,MAAM,EAAE,MAAM,EAAE,SAAS,CAAC;IAC/C,MAAM,aAAa,GAAG,MAAM,EAAE,MAAM,EAAE,SAAS,CAAC;IAEhD,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,EAAE,CAAC;QAChE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,kCAAkC,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC;IAC9F,CAAC;IAED,MAAM,iBAAiB,GAAG,iBAAiB,CAAC,YAAY,CAAC,CAAC;IAC1D,MAAM,kBAAkB,GAAG,iBAAiB,CAAC,aAAa,CAAC,CAAC;IAC5D,MAAM,sBAAsB,GAAG,UAAU,EAAE,gCAAgC,IAAI,WAAW,CAAC,gCAAgC,CAAC;IAC5H,MAAM,gBAAgB,GAAG,sBAAsB,GAAG,GAAG,CAAC;IAEtD,MAAM,eAAe,GAAG,IAAI,CAAC,GAAG,CAAC,iBAAiB,EAAE,SAAS,GAAG,gBAAgB,CAAC,CAAC;IAClF,MAAM,gBAAgB,GAAG,IAAI,CAAC,GAAG,CAAC,kBAAkB,EAAE,UAAU,GAAG,gBAAgB,CAAC,CAAC;IAErF,MAAM,KAAK,GAAG,QAAQ,IAAI,eAAe,CAAC;IAC1C,MAAM,MAAM,GAAG,SAAS,IAAI,gBAAgB,CAAC;IAE7C,OAAO;QACH,OAAO,EAAE,KAAK,IAAI,MAAM;QACxB,QAAQ;QACR,SAAS;QACT,eAAe;QACf,gBAAgB;QAChB,MAAM,EAAE,CAAC,KAAK;YACV,CAAC,CAAC,aAAa,MAAM,CAAC,uBAAuB,CAAC,QAAQ,EAAE,YAAY,CAAC,MAAM,MAAM,CAAC,uBAAuB,CAAC,eAAe,EAAE,YAAY,CAAC,EAAE;YAC1I,CAAC,CAAC,CAAC,MAAM;gBACL,CAAC,CAAC,cAAc,MAAM,CAAC,uBAAuB,CAAC,SAAS,EAAE,aAAa,CAAC,MAAM,MAAM,CAAC,uBAAuB,CAAC,gBAAgB,EAAE,aAAa,CAAC,EAAE;gBAC/I,CAAC,CAAC,IAAI;KACjB,CAAC;AACN,CAAC;AAED,kFAAkF;AAClF,gDAAgD;AAChD,kFAAkF;AAElF;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,SAAS,2BAA2B,CAAC,aAAkB,EAAE,QAAgB,EAAE,SAAc,IAAI,EAAE,SAAiB,EAAE;IAC9G,MAAM,MAAM,GAAG,cAAc,CAAC,QAAQ,CAAC,CAAC;IACxC,IAAI,CAAC,aAAa,IAAI,aAAa,CAAC,KAAK,KAAK,YAAY,CAAC,OAAO;QAAE,OAAO,MAAM,CAAC;IAClF,MAAM,MAAM,GAAG,cAAc,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;IAClD,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,MAAM,IAAI,CAAC;QAAE,OAAO,MAAM,CAAC;IACvF,IAAI,MAAM,GAAG,MAAM,EAAE,CAAC;QAClB,IAAI,MAAM,EAAE,CAAC;YACT,MAAM,CACF,iCAAiC,aAAa,CAAC,EAAE,OAAO,MAAM,IAAI,GAAG,IAAI;gBACzE,4CAA4C,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,GAAG;gBAC3E,oBAAoB,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,gCAAgC;gBAChF,yDAAyD,EACzD,MAAM,CACT,CAAC;QACN,CAAC;QACD,OAAO,MAAM,CAAC;IAClB,CAAC;IACD,OAAO,MAAM,CAAC;AAClB,CAAC;AAED;;;;;;;GAOG;AACH,SAAS,aAAa,CAAC,UAAe,EAAE,UAAe,EAAE,cAAmB,EAAE,UAA+B,EAAE;IAC3G,MAAM,EAAE,MAAM,GAAG,IAAI,EAAE,oBAAoB,GAAG,WAAW,CAAC,iCAAiC,EAAE,GAAG,OAAO,CAAC;IACxG,MAAM,OAAO,GAAU,EAAE,CAAC;IAE1B,MAAM,YAAY,GAAU,EAAE,CAAC;IAC/B,MAAM,aAAa,GAAU,EAAE,CAAC;IAChC,MAAM,QAAQ,GAAU,EAAE,CAAC;IAC3B,MAAM,SAAS,GAAU,EAAE,CAAC;IAE5B,MAAM,eAAe,GAAG,CAAC,KAAU,EAAE,EAAE;QACnC,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC;YAAE,OAAO,KAAK,CAAC;QAC5C,MAAM,SAAS,GAAG,cAAc,CAAC,KAAK,CAAC,SAAS,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC;QAChE,IAAI,SAAS,IAAI,CAAC;YAAE,OAAO,IAAI,CAAC;QAChC,MAAM,UAAU,GAAG,sBAAsB,CAAC,SAAS,EAAE,oBAAoB,CAAC,CAAC;QAC3E,IAAI,KAAK,CAAC,IAAI,GAAG,UAAU,EAAE,CAAC;YAC1B,IAAI,MAAM,EAAE,CAAC;gBACT,MAAM,CACF,2CAA2C,KAAK,CAAC,EAAE,GAAG;oBACtD,QAAQ,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,CAAC,iBAAiB,MAAM,CAAC,aAAa,CAAC,UAAU,CAAC,GAAG;oBAC5F,UAAU,MAAM,CAAC,aAAa,CAAC,SAAS,CAAC,eAAe,oBAAoB,GAAG,CAAC,IAAI,EACpF,MAAM,CACT,CAAC;YACN,CAAC;YACD,OAAO,KAAK,CAAC;QACjB,CAAC;QACD,OAAO,IAAI,CAAC;IAChB,CAAC,CAAC;IAEF,IAAI,iBAAiB,GAAG,cAAc,CAAC;IACvC,IAAI,cAAc,KAAK,IAAI,EAAE,CAAC;QAC1B,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,UAAU,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC;QAChD,IAAI,cAAc,GAAG,CAAC,IAAI,cAAc,GAAG,MAAM,EAAE,CAAC;YAChD,MAAM,OAAO,GAAG,KAAK,CAAC,cAAc,EAAE,CAAC,EAAE,MAAM,CAAC,CAAC;YACjD,IAAI,MAAM,EAAE,CAAC;gBACT,MAAM,CAAC,wCAAwC,cAAc,OAAO,OAAO,SAAS,MAAM,IAAI,EAAE,MAAM,CAAC,CAAC;YAC5G,CAAC;YACD,iBAAiB,GAAG,OAAO,CAAC;QAChC,CAAC;IACL,CAAC;IAED,KAAK,MAAM,CAAC,EAAE,EAAE,WAAW,CAAC,IAAI,UAAU,EAAE,CAAC;QACzC,MAAM,WAAW,GAAG,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAEvC,IAAI,CAAC,WAAW,IAAI,WAAW,CAAC,KAAK,KAAK,YAAY,CAAC,OAAO,EAAE,CAAC;YAC7D,yDAAyD;YACzD,IAAI,WAAW,CAAC,IAAI,GAAG,CAAC,IAAI,WAAW,CAAC,KAAK,KAAK,YAAY,CAAC,MAAM,EAAE,CAAC;gBACpE,oCAAoC;gBACpC,IAAI,WAAW,CAAC,IAAI,KAAK,WAAW,CAAC,GAAG,EAAE,CAAC;oBACvC,QAAQ,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC,CAAC;gBAC9C,CAAC;qBAAM,IAAI,WAAW,CAAC,IAAI,KAAK,WAAW,CAAC,IAAI,EAAE,CAAC;oBAC/C,SAAS,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC,CAAC;gBAC/C,CAAC;YACL,CAAC;YACD,SAAS;QACb,CAAC;QAED,IAAI,WAAW,CAAC,IAAI,KAAK,WAAW,CAAC,IAAI,EAAE,CAAC;YACxC,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,WAAW,CAAC,MAAM,EAAE,EAAE,EAAE,OAAO,EAAE,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,eAAe,EAAE,CAAC,CAAC;YACtG,IAAI,WAAW,CAAC,IAAI,GAAG,CAAC,IAAI,WAAW,CAAC,KAAK,KAAK,YAAY,CAAC,MAAM,IAAI,eAAe,CAAC,WAAW,CAAC,EAAE,CAAC;gBACpG,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,WAAW,CAAC,MAAM,EAAE,EAAE,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC,CAAC;YACvE,CAAC;YACD,SAAS;QACb,CAAC;QAED,uEAAuE;QACvE,4CAA4C;QAC5C,IAAI,cAAc,CAAC,WAAW,CAAC,IAAI,WAAW,CAAC,KAAK,KAAK,YAAY,CAAC,OAAO,EAAE,CAAC;YAC5E,IAAI,WAAW,CAAC,IAAI,KAAK,WAAW,CAAC,GAAG,EAAE,CAAC;gBACvC,YAAY,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC,CAAC;YACxE,CAAC;iBAAM,IAAI,WAAW,CAAC,IAAI,KAAK,WAAW,CAAC,IAAI,EAAE,CAAC;gBAC/C,aAAa,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC,CAAC;YACzE,CAAC;YACD,SAAS;QACb,CAAC;QAED,IAAI,WAAW,CAAC,IAAI,KAAK,WAAW,CAAC,IAAI,EAAE,CAAC;YACxC,IAAI,WAAW,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;gBACzB,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,WAAW,CAAC,MAAM,EAAE,EAAE,EAAE,OAAO,EAAE,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,kBAAkB,EAAE,CAAC,CAAC;YAC7G,CAAC;YACD,8CAA8C;YAC9C,0EAA0E;YAC1E,2EAA2E;YAC3E,qDAAqD;QACzD,CAAC;IACL,CAAC;IAED,MAAM,eAAe,GAAG,CAAC,SAAc,EAAE,EAAE;QACvC,KAAK,MAAM,OAAO,IAAI,SAAS,EAAE,CAAC;YAC9B,IAAI,OAAO,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;gBACzB,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,WAAW,CAAC,MAAM,EAAE,EAAE,EAAE,OAAO,CAAC,EAAE,EAAE,OAAO,EAAE,OAAO,CAAC,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,4BAA4B,EAAE,CAAC,CAAC;YACtI,CAAC;QACL,CAAC;IACL,CAAC,CAAC;IAEF,MAAM,aAAa,GAAG,CAAC,SAAc,EAAE,KAAU,EAAE,EAAE;QACjD,MAAM,YAAY,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,IAAS,EAAE,EAAE,CAAC,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;QAE9E,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC5B,8DAA8D;YAC9D,eAAe,CAAC,SAAS,CAAC,CAAC;YAC3B,OAAO;QACX,CAAC;QAED,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACzB,KAAK,MAAM,IAAI,IAAI,YAAY,EAAE,CAAC;gBAC9B,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,WAAW,CAAC,MAAM,EAAE,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;YAC/E,CAAC;YACD,OAAO;QACX,CAAC;QAED,MAAM,KAAK,GAAG,SAAS,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,KAAK,WAAW,CAAC,GAAG,CAAC;QAC7D,MAAM,OAAO,GAAG,CAAC,EAAU,EAAE,EAAE,GAAG,MAAM,CAAC,GAAG,cAAc,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAClH,YAAY,CAAC,IAAI,CAAC,CAAC,CAAM,EAAE,CAAM,EAAE,EAAE;YACjC,MAAM,EAAE,GAAG,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;YACzB,MAAM,EAAE,GAAG,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;YACzB,IAAI,EAAE,KAAK,EAAE;gBAAE,OAAO,EAAE,GAAG,EAAE,CAAC;YAC9B,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC;QACjF,CAAC,CAAC,CAAC;QACH,SAAS,CAAC,IAAI,CAAC,CAAC,CAAM,EAAE,CAAM,EAAE,EAAE;YAC9B,MAAM,EAAE,GAAG,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;YACzB,MAAM,EAAE,GAAG,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;YACzB,IAAI,EAAE,KAAK,EAAE;gBAAE,OAAO,EAAE,GAAG,EAAE,CAAC;YAC9B,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,GAAG,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,GAAG,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;QACrF,CAAC,CAAC,CAAC;QAEH,MAAM,aAAa,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,MAAM,EAAE,YAAY,CAAC,MAAM,CAAC,CAAC;QACtE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,aAAa,EAAE,CAAC,EAAE,EAAE,CAAC;YACrC,MAAM,OAAO,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;YAC7B,MAAM,IAAI,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC;YAE7B,OAAO,CAAC,IAAI,CAAC;gBACT,IAAI,EAAE,WAAW,CAAC,MAAM;gBACxB,EAAE,EAAE,OAAO,CAAC,EAAE;gBACd,OAAO,EAAE,OAAO,CAAC,MAAM,CAAC,OAAO;gBAC/B,SAAS,EAAE,IAAI,CAAC,EAAE;gBAClB,OAAO,EAAE,2BAA2B,CAAC,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,CAAC;gBACtF,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK;gBAC1B,KAAK,EAAE,IAAI,CAAC,KAAK;gBACjB,UAAU,EAAE,IAAI;aACnB,CAAC,CAAC;QACP,CAAC;QAED,KAAK,IAAI,CAAC,GAAG,aAAa,EAAE,CAAC,GAAG,YAAY,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACvD,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,WAAW,CAAC,MAAM,EAAE,EAAE,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,KAAK,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC;QACrG,CAAC;QAED,2DAA2D;QAC3D,eAAe,CAAC,SAAS,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC;IACpD,CAAC,CAAC;IAEF,aAAa,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC;IACtC,aAAa,CAAC,aAAa,EAAE,SAAS,CAAC,CAAC;IAExC,KAAK,MAAM,CAAC,EAAE,EAAE,WAAW,CAAC,IAAI,UAAU,EAAE,CAAC;QACzC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,cAAc,CAAC,WAAW,CAAC,EAAE,CAAC;YACrD,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,WAAW,CAAC,MAAM,EAAE,EAAE,EAAE,OAAO,EAAE,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,CAAC,CAAC;QACxG,CAAC;IACL,CAAC;IAED,OAAO;QACH,OAAO;QACP,OAAO,EAAE,KAAK;QACd,WAAW,EAAE,iBAAiB;QAC9B,OAAO,EAAE,gBAAgB,CAAC,OAAO,CAAC;KACrC,CAAC;AACN,CAAC;AAED;;;;;;;;GAQG;AACH,SAAS,wBAAwB,CAAC,OAAY,EAAE,UAAe,EAAE,UAA+B,EAAE;IAC9F,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IAC/D,MAAM,EAAE,MAAM,GAAG,IAAI,EAAE,GAAG,OAAO,CAAC;IAElC,MAAM,OAAO,GAAU,EAAE,CAAC;IAC1B,MAAM,OAAO,GAAU,EAAE,CAAC;IAC1B,MAAM,WAAW,GAAU,EAAE,CAAC;IAE9B,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC3B,IAAI,MAAM,EAAE,IAAI,KAAK,WAAW,CAAC,MAAM,EAAE,CAAC;YACtC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACzB,CAAC;aAAM,IAAI,MAAM,EAAE,IAAI,KAAK,WAAW,CAAC,MAAM,EAAE,CAAC;YAC7C,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACzB,CAAC;aAAM,CAAC;YACJ,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC7B,CAAC;IACL,CAAC;IAED,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC/C,OAAO,OAAO,CAAC;IACnB,CAAC;IAED,MAAM,gBAAgB,GAAG,CAAC,GAAG,OAAO,CAAC,CAAC;IACtC,MAAM,SAAS,GAAG,CAAC,GAAG,WAAW,CAAC,CAAC;IAEnC,KAAK,MAAM,YAAY,IAAI,OAAO,EAAE,CAAC;QACjC,MAAM,WAAW,GAAG,UAAU,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;QACpD,MAAM,UAAU,GAAG,WAAW,EAAE,IAAI,CAAC;QAErC,IAAI,CAAC,WAAW,IAAI,CAAC,YAAY,CAAC,OAAO,IAAI,CAAC,UAAU,EAAE,CAAC;YACvD,SAAS,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YAC7B,SAAS;QACb,CAAC;QAED,IAAI,OAAO,GAAG,CAAC,CAAC,CAAC;QACjB,IAAI,YAAY,GAAG,QAAQ,CAAC;QAE5B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,gBAAgB,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAC/C,MAAM,YAAY,GAAG,gBAAgB,CAAC,CAAC,CAAC,CAAC;YACzC,MAAM,UAAU,GAAG,YAAY,EAAE,KAAK,EAAE,IAAI,CAAC;YAC7C,IAAI,UAAU,KAAK,UAAU;gBAAE,SAAS;YAExC,MAAM,OAAO,GAAG,cAAc,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;YAChD,MAAM,KAAK,GAAG,cAAc,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;YAC9C,MAAM,SAAS,GAAG,cAAc,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;YACpD,MAAM,OAAO,GAAG,cAAc,CAAC,YAAY,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;YAC3D,MAAM,QAAQ,GAAG,CAAC,OAAO,IAAI,IAAI,IAAI,KAAK,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,GAAG,SAAS,CAAC,CAAC;YAEhH,IAAI,QAAQ,GAAG,YAAY,EAAE,CAAC;gBAC1B,YAAY,GAAG,QAAQ,CAAC;gBACxB,OAAO,GAAG,CAAC,CAAC;YAChB,CAAC;QACL,CAAC;QAED,IAAI,OAAO,KAAK,CAAC,CAAC,EAAE,CAAC;YACjB,SAAS,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YAC7B,SAAS;QACb,CAAC;QAED,MAAM,YAAY,GAAG,gBAAgB,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC5D,SAAS,CAAC,IAAI,CAAC;YACX,IAAI,EAAE,WAAW,CAAC,MAAM;YACxB,EAAE,EAAE,YAAY,CAAC,EAAE;YACnB,OAAO,EAAE,YAAY,CAAC,OAAO;YAC7B,SAAS,EAAE,YAAY,CAAC,EAAE;YAC1B,OAAO,EAAE,2BAA2B,CAAC,WAAW,EAAE,cAAc,CAAC,YAAY,EAAE,KAAK,EAAE,IAAI,CAAC,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,CAAC;YACrH,QAAQ,EAAE,cAAc,CAAC,YAAY,EAAE,KAAK,EAAE,KAAK,CAAC;YACpD,KAAK,EAAE,YAAY,CAAC,KAAK;YACzB,UAAU,EAAE,IAAI;SACnB,CAAC,CAAC;IACP,CAAC;IAED,KAAK,MAAM,YAAY,IAAI,gBAAgB,EAAE,CAAC;QAC1C,SAAS,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IACjC,CAAC;IAED,OAAO,SAAS,CAAC;AACrB,CAAC;AAED;;;;GAIG;AACH,SAAS,gBAAgB,CAAC,OAAY;IAClC,OAAO;QACH,KAAK,EAAE,OAAO,CAAC,MAAM;QACrB,OAAO,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,WAAW,CAAC,MAAM,CAAC,CAAC,MAAM;QACzE,OAAO,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,WAAW,CAAC,MAAM,CAAC,CAAC,MAAM;QACzE,OAAO,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,WAAW,CAAC,MAAM,CAAC,CAAC,MAAM;KAC5E,CAAC;AACN,CAAC;AAED;;;;;GAKG;AACH,SAAS,oBAAoB,CAAC,eAAoB;IAC9C,MAAM,OAAO,GAAG,eAAe,EAAE,OAAO,CAAC;IACzC,OAAO,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC;AACxD,CAAC;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,SAAS,yBAAyB,CAAC,OAAY,EAAE,MAAW,EAAE,UAAe,IAAI,EAAE,uBAA8B,EAAE;IAC/G,MAAM,WAAW,GAAG,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;IAC1D,MAAM,QAAQ,GAAG,MAAM,YAAY,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,GAAG,EAAE,CAAC;IAC5D,MAAM,eAAe,GAAG,IAAI,GAAG,EAAE,CAAC;IAElC,KAAK,MAAM,MAAM,IAAI,WAAW,EAAE,CAAC;QAC/B,IAAI,MAAM,EAAE,IAAI,KAAK,WAAW,CAAC,MAAM,IAAI,MAAM,CAAC,EAAE,EAAE,CAAC;YACnD,eAAe,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;YAC/B,SAAS;QACb,CAAC;QAED,IACI,MAAM,EAAE,IAAI,KAAK,WAAW,CAAC,MAAM;YACnC,MAAM,CAAC,EAAE;YACT,MAAM,CAAC,SAAS;YAChB,MAAM,CAAC,SAAS,KAAK,MAAM,CAAC,EAAE,EAChC,CAAC;YACC,eAAe,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QACnC,CAAC;IACL,CAAC;IAED,MAAM,UAAU,GAAU,EAAE,CAAC;IAC7B,MAAM,aAAa,GAAsF,EAAE,CAAC;IAE5G,KAAK,MAAM,MAAM,IAAI,WAAW,EAAE,CAAC;QAC/B,IAAI,MAAM,EAAE,IAAI,KAAK,WAAW,CAAC,MAAM;YAAE,SAAS;QAElD,MAAM,QAAQ,GAAG,MAAM,CAAC,EAAE,IAAI,MAAM,CAAC,KAAK,EAAE,EAAE,CAAC;QAC/C,IAAI,CAAC,QAAQ,IAAI,eAAe,CAAC,GAAG,CAAC,QAAQ,CAAC;YAAE,SAAS;QAEzD,MAAM,OAAO,GAAG,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAEvC,kDAAkD;QAClD,IAAI,OAAO,IAAI,cAAc,CAAC,OAAO,CAAC,EAAE,CAAC;YACrC,UAAU,CAAC,IAAI,CAAC;gBACZ,QAAQ;gBACR,cAAc,EAAE,OAAO,CAAC,OAAO;gBAC/B,WAAW,EAAE,OAAO,CAAC,IAAI;gBACzB,YAAY,EAAE,OAAO,CAAC,KAAK;gBAC3B,MAAM,EAAE,eAAe;aAC1B,CAAC,CAAC;QACP,CAAC;QAED,IAAI,MAAM,CAAC,KAAK,EAAE,KAAK,IAAI,IAAI,IAAI,MAAM,CAAC,KAAK,EAAE,IAAI,IAAI,IAAI,EAAE,CAAC;YAC5D,MAAM,QAAQ,GAAG,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YACxC,MAAM,SAAS,GAAG,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;gBACjE,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC;gBACxB,CAAC,CAAC,IAAI,CAAC;YACX,MAAM,cAAc,GAAG,SAAS,KAAK,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YACnF,aAAa,CAAC,IAAI,CAAC;gBACf,QAAQ;gBACR,MAAM;gBACN,KAAK,EAAE,cAAc;gBACrB,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,CAAC;gBACpC,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,IAAI;aAC1B,CAAC,CAAC;QACP,CAAC;IACL,CAAC;IAED,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC3B,iEAAiE;QACjE,MAAM,oBAAoB,GAAG,oBAAoB,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAC5H,IAAI,oBAAoB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAClC,MAAM,YAAY,GAAG,IAAI,GAAG,CAAC,oBAAoB,CAAC,GAAG,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,IAAI,CAAC,CAAC,eAAe,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;YACvH,KAAK,MAAM,KAAK,IAAI,aAAa,EAAE,CAAC;gBAChC,IAAI,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC;oBACnC,UAAU,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,EAAE,cAAc,EAAE,KAAK,CAAC,QAAQ,EAAE,WAAW,EAAE,KAAK,CAAC,IAAI,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,EAAE,wBAAwB,EAAE,CAAC,CAAC;gBAC3K,CAAC;YACL,CAAC;YACD,iGAAiG;YACjG,IAAI,YAAY,CAAC,IAAI,KAAK,CAAC,IAAI,OAAO,EAAE,CAAC;gBACrC,IAAI,CAAC;oBACD,MAAM,EAAE,cAAc,EAAE,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;oBAChD,KAAK,MAAM,KAAK,IAAI,aAAa,EAAE,CAAC;wBAChC,IAAI,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,KAAK,CAAC,QAAQ,CAAC;4BAAE,SAAS;wBAClE,KAAK,MAAM,CAAC,IAAI,oBAAoB,EAAE,CAAC;4BACnC,IAAI,CAAC,CAAC,KAAK,IAAI,IAAI,IAAI,KAAK,CAAC,KAAK,IAAI,IAAI;gCAAE,SAAS;4BACrD,IAAI,CAAC,CAAC,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,CAAC,IAAI,KAAK,KAAK,CAAC,IAAI;gCAAE,SAAS;4BAC5D,MAAM,SAAS,GAAG,KAAK,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,SAAS,CAAC;4BAChG,IAAI,CAAC;gCAAC,IAAI,cAAc,CAAC,CAAC,CAAC,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,SAAS,CAAC,EAAE,CAAC;oCAAC,UAAU,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,EAAE,cAAc,EAAE,CAAC,CAAC,YAAY,EAAE,WAAW,EAAE,KAAK,CAAC,IAAI,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,EAAE,wBAAwB,EAAE,CAAC,CAAC;oCAAC,MAAM;gCAAC,CAAC;4BAAC,CAAC;4BAAC,MAAM,CAAC,CAAA,CAAC;wBAC5P,CAAC;oBACL,CAAC;gBACL,CAAC;gBAAC,MAAM,CAAC,CAAA,CAAC;YACd,CAAC;QACL,CAAC;QACD,4BAA4B;QAC5B,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;QAC/B,KAAK,MAAM,KAAK,IAAI,aAAa,EAAE,CAAC;YAChC,IAAI,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC;gBAC3B,UAAU,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,EAAE,cAAc,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,CAAC,IAAI,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,EAAE,4BAA4B,EAAE,CAAC,CAAC;YAC/J,CAAC;;gBAAM,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QACpC,CAAC;IACL,CAAC;IAED,MAAM,kBAAkB,GAAG,IAAI,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;IAEpE,OAAO;QACH,OAAO,EAAE,UAAU,CAAC,MAAM,KAAK,CAAC;QAChC,UAAU;QACV,kBAAkB;KACrB,CAAC;AACN,CAAC;AAED;;;;;;;GAOG;AACH,SAAS,kBAAkB,CAAC,MAAW,EAAE,QAAa;IAClD,IAAI,CAAC,MAAM,IAAI,CAAC,QAAQ;QAAE,OAAO,KAAK,CAAC;IACvC,IAAI,QAAQ,CAAC,OAAO,IAAI,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC;QAC5F,OAAO,IAAI,CAAC;IAChB,CAAC;IACD,OAAO,CAAC,CAAC,QAAQ,CAAC,EAAE,IAAI,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,KAAK,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;AACtE,CAAC;AAED;;;;;;;GAOG;AACH,SAAS,iBAAiB,CAAC,OAAY,EAAE,UAAe,EAAE,QAAa;IACnE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC;QAAE,OAAO,KAAK,CAAC;IAC1C,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC,MAAW,EAAE,EAAE;QAChC,IAAI,UAAU,IAAI,MAAM,EAAE,IAAI,KAAK,UAAU;YAAE,OAAO,KAAK,CAAC;QAC5D,OAAO,kBAAkB,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IAChD,CAAC,CAAC,CAAC;AACP,CAAC;AAED;;;;;;;GAOG;AACH,SAAS,qBAAqB,CAAC,OAAY,EAAE,UAAe,EAAE,QAAa;IACvE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC;QAAE,OAAO,CAAC,CAAC;IACtC,IAAI,OAAO,GAAG,CAAC,CAAC;IAChB,KAAK,IAAI,CAAC,GAAG,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QAC3C,MAAM,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;QAC1B,IAAI,UAAU,IAAI,MAAM,EAAE,IAAI,KAAK,UAAU;YAAE,SAAS;QACxD,IAAI,CAAC,kBAAkB,CAAC,MAAM,EAAE,QAAQ,CAAC;YAAE,SAAS;QACpD,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QACrB,OAAO,EAAE,CAAC;IACd,CAAC;IACD,OAAO,OAAO,CAAC;AACnB,CAAC;AAED;;;GAGG;AACH,SAAS,qBAAqB,CAAC,OAAY;IACvC,MAAM,SAAS,GAAG;QACd,OAAO,EAAE,IAAI,GAAG,EAAE;QAClB,QAAQ,EAAE,IAAI,GAAG,EAAE;KACtB,CAAC;IAEF,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC;QAAE,OAAO,SAAS,CAAC;IAE9C,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC3B,IAAI,MAAM,EAAE,IAAI,KAAK,WAAW,CAAC,MAAM;YAAE,SAAS;QAClD,IAAI,MAAM,CAAC,EAAE;YAAE,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;QACxD,IAAI,MAAM,CAAC,SAAS;YAAE,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC;QACtE,IAAI,MAAM,CAAC,OAAO;YAAE,SAAS,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;IACvE,CAAC;IAED,OAAO,SAAS,CAAC;AACrB,CAAC;AAED;;;;;GAKG;AACH,SAAS,0BAA0B,CAAC,SAAc,EAAE,OAAY,EAAE,EAAO;IACrE,IAAI,CAAC,SAAS;QAAE,OAAO,KAAK,CAAC;IAE7B,IAAI,EAAE,IAAI,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;QAC1C,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,MAAM,OAAO,GAAG,OAAO,EAAE,OAAO,CAAC;IACjC,OAAO,CAAC,CAAC,OAAO,IAAI,SAAS,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;AAChE,CAAC;AAED;;;;;;;GAOG;AACH,SAAS,sBAAsB,CAAC,OAAY,EAAE,WAAgB,EAAE,UAAe,EAAE,WAAgB,EAAE,aAAkB;IACjH,IAAI,OAAO,CAAC,KAAK,KAAK,WAAW,CAAC,KAAK;QACnC,OAAO,CAAC,IAAI,KAAK,WAAW,CAAC,IAAI;QACjC,OAAO,CAAC,KAAK,KAAK,WAAW;QAC7B,OAAO,CAAC,IAAI,KAAK,UAAU;QAC3B,OAAO,CAAC,OAAO,KAAK,aAAa,EAAE,CAAC;QACpC,OAAO,IAAI,CAAC;IAChB,CAAC;IACD,OAAO,KAAK,CAAC;AACjB,CAAC;AAED;;;;;;;GAOG;AACH,SAAS,0BAA0B,CAAC,WAAgB,EAAE,UAAe,EAAE,UAA+B,EAAE;IACpG,MAAM,eAAe,GAAG,qBAAqB,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IAC/D,MAAM,SAAS,GAAG,IAAI,GAAG,EAAE,CAAC;IAE5B,KAAK,MAAM,CAAC,EAAE,EAAE,WAAW,CAAC,IAAI,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC;QACnD,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAElB,MAAM,OAAO,GAAG,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACpC,MAAM,UAAU,GAAG,cAAc,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;QAErD,IAAI,CAAC,OAAO,EAAE,CAAC;YACX,qFAAqF;YACrF,iFAAiF;YACjF,WAAW,CAAC,GAAG,CAAC,EAAE,EAAE;gBAChB,GAAG,WAAW;gBACd,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,UAAU,CAAC;gBAC7B,KAAK,EAAE,YAAY,CAAC,OAAO;gBAC3B,OAAO,EAAE,IAAI;aAChB,CAAC,CAAC;YACH,SAAS;QACb,CAAC;QAED,IAAI,UAAU,GAAG,CAAC,EAAE,CAAC;YACjB,MAAM,WAAW,GAAG,cAAc,CAAC,OAAO,CAAC,IAAI,OAAO,CAAC,IAAI,KAAK,WAAW,CAAC,IAAI,CAAC;YACjF,MAAM,iBAAiB,GAAG,0BAA0B,CAAC,eAAe,EAAE,OAAO,EAAE,EAAE,CAAC,CAAC;YACnF,uEAAuE;YACvE,mEAAmE;YACnE,EAAE;YACF,kFAAkF;YAClF,iEAAiE;YACjE,oEAAoE;YACpE,iDAAiD;YACjD,MAAM,kBAAkB,GAAG,WAAW,IAAI,CAAC,iBAAiB,CAAC;YAC7D,MAAM,aAAa,GAAG,kBAAkB;gBACpC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,cAAc,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;gBAC3C,CAAC,CAAC,UAAU,CAAC;YACjB,MAAM,WAAW,GAAG,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,YAAY,CAAC,OAAO,CAAC;YACvE,MAAM,aAAa,GAAG,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC;YAC3D,IAAI,CAAC,sBAAsB,CAAC,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,WAAW,EAAE,aAAa,CAAC,EAAE,CAAC;gBAC3F,WAAW,CAAC,GAAG,CAAC,EAAE,EAAE;oBAChB,GAAG,OAAO;oBACV,GAAG,WAAW;oBACd,IAAI,EAAE,aAAa;oBACnB,KAAK,EAAE,WAAW;oBAClB,OAAO,EAAE,aAAa;iBACzB,CAAC,CAAC;YACP,CAAC;QACL,CAAC;aAAM,CAAC;YACJ,IAAI,CAAC,sBAAsB,CAAC,OAAO,EAAE,WAAW,EAAE,CAAC,EAAE,YAAY,CAAC,OAAO,EAAE,IAAI,CAAC,EAAE,CAAC;gBAC/E,WAAW,CAAC,GAAG,CAAC,EAAE,EAAE;oBAChB,GAAG,OAAO;oBACV,GAAG,WAAW;oBACd,IAAI,EAAE,CAAC;oBACP,KAAK,EAAE,YAAY,CAAC,OAAO;oBAC3B,OAAO,EAAE,IAAI;iBAChB,CAAC,CAAC;YACP,CAAC;QACL,CAAC;IACL,CAAC;IAED,KAAK,MAAM,CAAC,EAAE,EAAE,OAAO,CAAC,IAAI,WAAW,CAAC,OAAO,EAAE,EAAE,CAAC;QAChD,IAAI,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC;YAAE,SAAS;QAChC,IAAI,cAAc,CAAC,OAAO,CAAC,EAAE,CAAC;YAC1B,WAAW,CAAC,GAAG,CAAC,EAAE,EAAE,0BAA0B,CAAC,OAAO,CAAC,CAAC,CAAC;QAC7D,CAAC;IACL,CAAC;AACL,CAAC;AAED;;;;;GAKG;AACH,SAAS,iBAAiB,CAAC,OAAY,EAAE,UAAe;IACpD,MAAM,YAAY,GAAU,EAAE,CAAC;IAE/B,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC3B,IAAI,MAAM,CAAC,IAAI,KAAK,WAAW,CAAC,MAAM,EAAE,CAAC;YACrC,YAAY,CAAC,IAAI,CAAC;gBACd,GAAG,MAAM,CAAC,KAAK;gBACf,KAAK,EAAE,YAAY,CAAC,OAAO;gBAC3B,OAAO,EAAE,IAAI;aAChB,CAAC,CAAC;QACP,CAAC;aAAM,IAAI,MAAM,CAAC,IAAI,KAAK,WAAW,CAAC,MAAM,EAAE,CAAC;YAC5C,MAAM,WAAW,GAAG,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;YAC9C,IAAI,WAAW,EAAE,CAAC;gBACd,YAAY,CAAC,IAAI,CAAC,0BAA0B,CAAC,WAAW,CAAC,CAAC,CAAC;YAC/D,CAAC;QACL,CAAC;aAAM,IAAI,MAAM,CAAC,IAAI,KAAK,WAAW,CAAC,MAAM,EAAE,CAAC;YAC5C,MAAM,WAAW,GAAG,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;YAC9C,IAAI,WAAW,EAAE,CAAC;gBACd,MAAM,OAAO,GAAG,cAAc,CAAC,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;gBACrE,YAAY,CAAC,IAAI,CAAC,EAAE,GAAG,WAAW,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC;YACzD,CAAC;QACL,CAAC;IACL,CAAC;IAED,OAAO,YAAY,CAAC;AACxB,CAAC;AAED;;;;GAIG;AACH,SAAS,kBAAkB,CAAC,MAAW;IACnC,OAAO;QACH,OAAO,EAAE,EAAE;QACX,YAAY,EAAE,EAAE;QAChB,WAAW,EAAE,KAAK;QAClB,WAAW,EAAE,IAAI;QACjB,cAAc,EAAE,IAAI;QACpB,eAAe,EAAE,IAAI;QACrB,gBAAgB,EAAE,CAAC;QACnB,OAAO,EAAE,IAAI;QACb,MAAM;KACT,CAAC;AACN,CAAC;AAED;;;;GAIG;AACH,SAAS,kBAAkB,CAAC,EACxB,OAAO,EACP,YAAY,EACZ,WAAW,EACX,eAAe,EACf,gBAAgB,EACd;IACF,OAAO;QACH,OAAO;QACP,YAAY;QACZ,WAAW,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,WAAW,CAAC,MAAM,IAAI,CAAC,CAAC,IAAI,KAAK,WAAW,CAAC,MAAM,CAAC;QACrG,WAAW;QACX,cAAc,EAAE,WAAW,CAAC,UAAU,EAAE;QACxC,eAAe;QACf,gBAAgB;QAChB,OAAO,EAAE,KAAK;KACjB,CAAC;AACN,CAAC;AAED;;;;;GAKG;AACH,SAAS,cAAc,CAAC,WAAgB,EAAE,UAAe,EAAE;IACvD,MAAM,OAAO,GAAG,OAAO,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,OAAO,CAAC;IAC5E,MAAM,cAAc,GAAG,cAAc,CAAC,OAAO,EAAE,cAAc,EAAE,IAAI,CAAC,CAAC;IACrE,MAAM,UAAU,GAAG,OAAO,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC;IAE3E,IAAI,CAAC,WAAW,EAAE,CAAC;QACf,OAAO;YACH,SAAS,EAAE,KAAK;YAChB,MAAM,EAAE,2BAA2B;YACnC,KAAK,EAAE,OAAO;SACjB,CAAC;IACN,CAAC;IAED,IAAI,WAAW,CAAC,OAAO,EAAE,EAAE,CAAC;QACxB,OAAO;YACH,SAAS,EAAE,KAAK;YAChB,MAAM,EAAE,qCAAqC,OAAO,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,KAAK,WAAW,CAAC,cAAc,EAAE,IAAI,qCAAqC,EAAE;YACvJ,KAAK,EAAE,MAAM;SAChB,CAAC;IACN,CAAC;IAED,MAAM,WAAW,GAAG,WAAW,CAAC,WAAW,CAAC;IAE5C,IAAI,WAAW,KAAK,IAAI,IAAI,WAAW,KAAK,SAAS,EAAE,CAAC;QACpD,OAAO;YACH,SAAS,EAAE,KAAK;YAChB,MAAM,EAAE,kCAAkC;YAC1C,KAAK,EAAE,OAAO;SACjB,CAAC;IACN,CAAC;IAED,IAAI,cAAc,KAAK,IAAI,IAAI,aAAa,CAAC,WAAW,CAAC,IAAI,MAAM,CAAC,WAAW,CAAC,KAAK,cAAc,EAAE,CAAC;QAClG,OAAO;YACH,SAAS,EAAE,KAAK;YAChB,MAAM,EAAE,8CAA8C,MAAM,CAAC,WAAW,CAAC,eAAe,cAAc,EAAE;YACxG,KAAK,EAAE,MAAM;SAChB,CAAC;IACN,CAAC;IAED,IAAI,UAAU,IAAI,OAAO,WAAW,CAAC,UAAU,KAAK,UAAU,EAAE,CAAC;QAC7D,MAAM,KAAK,GAAG,WAAW,CAAC,UAAU,CAAC,UAAU,EAAE;YAC7C,UAAU,EAAE,OAAO,EAAE,iBAAiB,IAAI,IAAI;SACjD,CAAC,CAAC;QACH,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC7C,OAAO;gBACH,SAAS,EAAE,KAAK;gBAChB,MAAM,EAAE,2CAA2C;gBACnD,KAAK,EAAE,OAAO;aACjB,CAAC;QACN,CAAC;IACL,CAAC;IAED,IAAI,OAAO,EAAE,CAAC;QACV,MAAM,KAAK,GAAG,WAAW,CAAC,cAAc,EAAE,CAAC;QAC3C,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;YACnB,OAAO;gBACH,SAAS,EAAE,KAAK;gBAChB,MAAM,EAAE,uBAAuB;gBAC/B,KAAK,EAAE,MAAM;aAChB,CAAC;QACN,CAAC;IACL,CAAC;IAED,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;AAC/B,CAAC;AAED,kFAAkF;AAClF,UAAU;AACV,kFAAkF;AAElF,OAAO,EAAE,aAAa,EAAE,0BAA0B,EAAE,wBAAwB,EAAE,cAAc,EAAE,aAAa,EAAE,wBAAwB,EAAE,oBAAoB,EAAE,yBAAyB,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,0BAA0B,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,cAAc,EAAE,CAAA"}
|
|
1
|
+
{"version":3,"file":"validate.js","sourceRoot":"","sources":["../../../../modules/order/utils/validate.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
# DEXBot vs DEXBot2 — Detailed Comparison Report
|
|
2
2
|
|
|
3
3
|
> **Date:** 2026-09-02 *(metrics refreshed against local source trees)*
|
|
4
|
-
> **Scope:** Full architectural, functional, and operational comparison between the original [DEXBot](https://github.com/Codaone/DEXBot) (Python, v1.0.0) and DEXBot2 (TypeScript, v1.5.
|
|
4
|
+
> **Scope:** Full architectural, functional, and operational comparison between the original [DEXBot](https://github.com/Codaone/DEXBot) (Python, v1.0.0) and DEXBot2 (TypeScript, v1.5.1).
|
|
5
5
|
> **Audience:** Developers, contributors, and operators evaluating or migrating between the two projects.
|
|
6
6
|
|
|
7
7
|
---
|
|
@@ -36,7 +36,7 @@
|
|
|
36
36
|
|
|
37
37
|
| Attribute | DEXBot (original) | DEXBot2 |
|
|
38
38
|
|---|---|---|
|
|
39
|
-
| **Release Track** | 1.0.0 | v1.5.
|
|
39
|
+
| **Release Track** | 1.0.0 | v1.5.1 |
|
|
40
40
|
| **Language** | Python 3.6+ | TypeScript 5.x |
|
|
41
41
|
| **Status** | Released 1.0.0, unmaintained | Active development |
|
|
42
42
|
| **Last Repo Activity** | May 23, 2020 | 2026-09-02 |
|
|
@@ -780,7 +780,7 @@ Where:
|
|
|
780
780
|
|
|
781
781
|
| Metric | DEXBot | DEXBot2 |
|
|
782
782
|
|---|---|---|
|
|
783
|
-
| **Release Track** | 1.0.0 | v1.5.
|
|
783
|
+
| **Release Track** | 1.0.0 | v1.5.1 |
|
|
784
784
|
| **Active Since** | ~2018 | December 2025 |
|
|
785
785
|
| **Last Commit** | May 23, 2020 | 2026-09-02 |
|
|
786
786
|
| **Total Commits** | 2281 | 2,125 (v1.4.25) |
|
package/docs/EVOLUTION.md
CHANGED
|
@@ -2,14 +2,14 @@
|
|
|
2
2
|
|
|
3
3
|
## Executive Summary
|
|
4
4
|
|
|
5
|
-
DEXBot2 is a sophisticated decentralized exchange trading bot for the BitShares blockchain. This report documents the complete evolution of the project from its inception in December 2025 through the current 1.5.
|
|
5
|
+
DEXBot2 is a sophisticated decentralized exchange trading bot for the BitShares blockchain. This report documents the complete evolution of the project from its inception in December 2025 through the current 1.5.1 stable release.
|
|
6
6
|
|
|
7
7
|
### Key Milestones
|
|
8
8
|
- **Project Inception**: December 2, 2025
|
|
9
9
|
- **Growth Phase**: 2,141 commits over ~9 active months
|
|
10
10
|
- **Code Maturity**: Evolution from basic utilities to a ~100,000+ LoC intelligent TypeScript system
|
|
11
11
|
- **Stability**: Progression from manual testing to a suite of 248 automated test files
|
|
12
|
-
- **Releases**: 102 release entries (v0.1.0 to v1.5.
|
|
12
|
+
- **Releases**: 102 release entries (v0.1.0 to v1.5.1)
|
|
13
13
|
|
|
14
14
|
---
|
|
15
15
|
|
|
@@ -110,11 +110,12 @@ Compact, era-level view; per-release commit detail lives in [CHANGELOG.md](../CH
|
|
|
110
110
|
| v1.4.23 → v1.4.24 | 3 | Native fill gap recovery with eager coalesced retry, LP collateral offer-first pricing |
|
|
111
111
|
| v1.4.24 → v1.4.25 | 26 | Genesis-frozen price-slots, self-trade & fill-guard hardening, orphan & gap-band fixes, trigger/shutdown hardening, bot poll, grid monotonicity gate, whitelist scoped overwrite, Range legend |
|
|
112
112
|
| v1.4.25 → v1.5.0 | 13 | Credit overview CLI + whitelist-scoped CR on shared pricing math, one-step TradingView chart, daemon-safe reload, offline account-ID cache, case-insensitive bot identity, stale-pivot guard fix, partial-surplus rotation clamp, adapter ownership centralization, op-77 bot discovery split |
|
|
113
|
+
| v1.5.0 → v1.5.1 | 11 | Gap-evacuation guard allowance + rail-typed holes, persisted streaks with cancel-only teeth, vacated-rail refill, adoption/accounting/duplicate-guard hardening |
|
|
113
114
|
|
|
114
115
|
---
|
|
115
116
|
|
|
116
117
|
**Report Originally Generated**: February 19, 2026
|
|
117
|
-
**Last Updated**: September
|
|
118
|
-
**Total Commits**: 2,
|
|
119
|
-
**Date Range**: December 2, 2025 – September
|
|
118
|
+
**Last Updated**: September 06, 2026
|
|
119
|
+
**Total Commits**: 2,153
|
|
120
|
+
**Date Range**: December 2, 2025 – September 06, 2026
|
|
120
121
|
**Repository**: DEXBot2 (BitShares DEX Trading Bot)
|
|
@@ -787,9 +787,11 @@ To prevent "Time-of-Check to Time-of-Use" errors:
|
|
|
787
787
|
|
|
788
788
|
**Stale `accountTotals` does not abort COW commit.** Transient staleness (e.g., the periodic balance fetch overlaps with a COW commit) logs a `WARN` and schedules recovery instead of throwing `ACCOUNTING_COMMITMENT_FAILED`. Totals are also refreshed after bootstrap to prevent a spurious full recovery on the first maintenance cycle.
|
|
789
789
|
|
|
790
|
+
**Recovery verifies the fetch before trusting balances.** State recovery checks that the chain read actually refreshed (`_lastFetchedAt` advanced) and defers the attempt otherwise, so drift is never re-measured against stale/optimistic numbers. When drift persists after sync, `_recalibrateTrackedFundsFromChain` rebuilds the tracked commitment from the fresh chain read (matched slots forced to chain size, fully-consumed and stale-absent slots virtualized under the sync orphan pass's recent-commit lag guards; free balances never derived from totals), then re-runs `recalculateFunds` and re-checks drift.
|
|
791
|
+
|
|
790
792
|
**Fee-deduction failure logs at `error`.** When `getAssetFees` throws during fill processing (e.g., network blip), `_deductFeesFromProceeds` skips the deduction and logs at `error` with explicit "fund tracking will over-credit" language so operators can detect the drift source in production logs.
|
|
791
793
|
|
|
792
794
|
**TOCTOU protection in `processFillAccounting`.** `_buildBtsDeferredRefundAdjustment` reads `btsFeeState` from `mgr.orders` while the order lock is held — the lock is acquired before accounting runs, and the POST-RESET and BOOTSTRAP tracked-fill accounting paths follow the same locking pattern.
|
|
793
795
|
|
|
794
796
|
---
|
|
795
|
-
*Technical Reference for DEXBot2 v1.5.
|
|
797
|
+
*Technical Reference for DEXBot2 v1.5.1 release*
|
package/docs/GRID_RECONCILE.md
CHANGED
|
@@ -94,6 +94,7 @@ Phase 2 and 3 both respect the `dryRun` flag: when true, no on-chain mutations a
|
|
|
94
94
|
- Detect grid-edge lock and plan a largest-order cancel
|
|
95
95
|
- Plan creates for remaining slots
|
|
96
96
|
- Plan excess cancellations (guarded by `matchedOnGrid > 0`)
|
|
97
|
+
- **Vacated-rail refill**: each PROCEEDING update whose vacated price exactly matches (`priceSlotEqual`) an empty, sized, in-rail slot of the same side queues a refill CREATE in the same plan (`source startupVacatedRailRefill`) — skipped updates, ghost prices (lattice moved), in-band slots, and already-desired slots never refill; refill targets require VIRTUAL state with no `orderId`
|
|
97
98
|
|
|
98
99
|
Returns `{ plannedCreates, plannedUpdates, plannedCancels, chainSellCount, chainBuyCount }`.
|
|
99
100
|
|
package/docs/LOGGING.md
CHANGED
|
@@ -243,6 +243,9 @@ Prefix tags used in log messages to help operators identify event types. To find
|
|
|
243
243
|
| `[SPREAD-CORRECTION]` | `order/grid.ts` | Partial order spread correction |
|
|
244
244
|
| `[STRATEGY]` | `order/strategy.ts` | Fee event cache and strategy decisions |
|
|
245
245
|
| `[RECONCILE]` | `order/utils/validate.ts` | Grid reconciliation ([GRID_RECONCILE.md](GRID_RECONCILE.md)) |
|
|
246
|
+
| `[GAP-EVAC]` | `order/utils/validate.ts`, `order/manager.ts`, `dexbot_startup_runtime.ts`, `dexbot_state_recovery.ts` | Stuck in-band (gap-band) order streak warnings, cancel-only evacuation teeth, persisted-streak restore counts |
|
|
247
|
+
| `[GRID-TYPE-CORRECT]` | `order/grid.ts` | One-time backfill retype of legacy empty slots to rail-typed holes on load |
|
|
248
|
+
| `[LAST-FILL-GUARD]` | `dexbot_cow_runtime.ts` | Last-fill-guard blocks plus gap-evacuation bypass allows/stale-stamp downgrades |
|
|
246
249
|
| `[TRANSPORT]` | `bitshares-native/transport.ts` | WebSocket keep-alive and reconnect |
|
|
247
250
|
|
|
248
251
|
## 1.4.8 Markers
|
package/docs/README.md
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
This directory contains the comprehensive technical documentation for the DEXBot2 trading bot. It is designed to guide developers from high-level architecture down to the nuances of fund accounting and state management.
|
|
4
4
|
|
|
5
|
-
**Version context:** v1.5.
|
|
5
|
+
**Version context:** v1.5.1 (released).
|
|
6
6
|
|
|
7
7
|
---
|
|
8
8
|
|
|
@@ -144,7 +144,7 @@ This directory contains the comprehensive technical documentation for the DEXBot
|
|
|
144
144
|
|
|
145
145
|
### 🧭 [Evolution Report](EVOLUTION.md)
|
|
146
146
|
*Project timeline and major architecture phases.*
|
|
147
|
-
- **Coverage**: Historical milestones from the initial December 2025 bootstrap through the v1.5.
|
|
147
|
+
- **Coverage**: Historical milestones from the initial December 2025 bootstrap through the v1.5.1 stable release (grid persistence safety, dust pipeline fix, net inventory lots); credit/debt runtime and maintenance hardening are covered under Phase 5 (Mar–Jun 2026)
|
|
148
148
|
- **Focus**: Architecture evolution, release history, test growth, and documentation changes
|
|
149
149
|
|
|
150
150
|
### 🗒️ [Changelog](../CHANGELOG.md)
|
package/package.json
CHANGED