@optimystic/db-p2p 1.0.0 → 1.2.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/src/cluster/cluster-repo.d.ts +58 -9
- package/dist/src/cluster/cluster-repo.d.ts.map +1 -1
- package/dist/src/cluster/cluster-repo.js +113 -21
- package/dist/src/cluster/cluster-repo.js.map +1 -1
- package/dist/src/repo/cluster-coordinator.d.ts +100 -31
- package/dist/src/repo/cluster-coordinator.d.ts.map +1 -1
- package/dist/src/repo/cluster-coordinator.js +288 -192
- package/dist/src/repo/cluster-coordinator.js.map +1 -1
- package/dist/src/repo/coordinator-repo.d.ts +2 -0
- package/dist/src/repo/coordinator-repo.d.ts.map +1 -1
- package/dist/src/repo/coordinator-repo.js +7 -5
- package/dist/src/repo/coordinator-repo.js.map +1 -1
- package/dist/src/storage/storage-repo.d.ts.map +1 -1
- package/dist/src/storage/storage-repo.js +24 -6
- package/dist/src/storage/storage-repo.js.map +1 -1
- package/package.json +2 -2
- package/src/cluster/cluster-repo.ts +116 -21
- package/src/repo/cluster-coordinator.ts +1409 -1296
- package/src/repo/coordinator-repo.ts +9 -5
- package/src/storage/storage-repo.ts +1781 -1762
|
@@ -738,10 +738,20 @@ export class StorageRepo {
|
|
|
738
738
|
*/
|
|
739
739
|
async commit(request, _options, proof) {
|
|
740
740
|
log('commit actionId=%s rev=%d blockIds=%d', request.actionId, request.rev, request.blockIds.length);
|
|
741
|
-
// Deduped ONCE,
|
|
742
|
-
// are acquired in sorted order by `acquireBlockWriteLatches` over this same set,
|
|
743
|
-
// `latches.get(blockId)!` below resolves.
|
|
744
|
-
|
|
741
|
+
// Deduped ONCE, tail first, then request order — the order blocks are committed and reported
|
|
742
|
+
// in. The latches are acquired in sorted order by `acquireBlockWriteLatches` over this same set,
|
|
743
|
+
// so every `latches.get(blockId)!` below resolves.
|
|
744
|
+
//
|
|
745
|
+
// Tail first is the invariant "no member commits a non-tail block of an action without its
|
|
746
|
+
// tail". The apply loop below stops at the first failure, and every whole-batch refusal (the
|
|
747
|
+
// stale partition, the missing-pend throw) returns before anything is applied, so a tail applied
|
|
748
|
+
// first means a member holding a committed non-tail block of this action also holds the tail.
|
|
749
|
+
// `Collection.bootstrapContext` reads the tail with no revision context and relies on exactly
|
|
750
|
+
// that; `NetworkTransactor.commit` sends the tail and the other blocks in one request when one
|
|
751
|
+
// coordinator covers them all, so the order is enforced here rather than trusted to the sender.
|
|
752
|
+
// (The read-driven promotion in `get` is the other landing path; it acts only on a context
|
|
753
|
+
// proving the action committed, so the tail is committed somewhere in the cohort by then.)
|
|
754
|
+
const blockIds = tailFirst(Array.from(new Set(request.blockIds)), request.tailId);
|
|
745
755
|
// Collects the blocks newly committed in this call, grouped by collection,
|
|
746
756
|
// so we can emit change events once locks are released. Blocks that land before
|
|
747
757
|
// a mid-loop failure stay here and are still emitted (Option A — emit eagerly):
|
|
@@ -754,8 +764,8 @@ export class StorageRepo {
|
|
|
754
764
|
const { latches, release } = await acquireBlockWriteLatches(blockIds);
|
|
755
765
|
try {
|
|
756
766
|
// --- Start of Critical Section ---
|
|
757
|
-
//
|
|
758
|
-
// blocks are committed and reported in change events, which callers may observe.
|
|
767
|
+
// Tail first, then request order, deduped (NOT the sorted acquisition order): the order here
|
|
768
|
+
// is the order blocks are committed and reported in change events, which callers may observe.
|
|
759
769
|
const blockStorages = blockIds.map(blockId => ({
|
|
760
770
|
blockId,
|
|
761
771
|
storage: this.createBlockStorage(blockId),
|
|
@@ -1530,4 +1540,12 @@ function perBlockActionTransformsToPerAction(missing) {
|
|
|
1530
1540
|
transforms: emptyTransforms()
|
|
1531
1541
|
}));
|
|
1532
1542
|
}
|
|
1543
|
+
/** `blockIds` with `tailId` moved to the front and the rest left in their order. Returns `blockIds`
|
|
1544
|
+
* itself when there is no tail, the tail is not in the list, or it is already first. */
|
|
1545
|
+
function tailFirst(blockIds, tailId) {
|
|
1546
|
+
if (tailId === undefined || blockIds[0] === tailId || !blockIds.includes(tailId)) {
|
|
1547
|
+
return blockIds;
|
|
1548
|
+
}
|
|
1549
|
+
return [tailId, ...blockIds.filter(id => id !== tailId)];
|
|
1550
|
+
}
|
|
1533
1551
|
//# sourceMappingURL=storage-repo.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"storage-repo.js","sourceRoot":"","sources":["../../../src/storage/storage-repo.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"storage-repo.js","sourceRoot":"","sources":["../../../src/storage/storage-repo.ts"],"names":[],"mappings":"AASA,OAAO,EACN,mBAAmB,EAAE,cAAc,EAAE,OAAO,EAAE,eAAe,EAAE,eAAe,EAC9E,qBAAqB,EAAE,uBAAuB,EAAE,cAAc,EAAE,aAAa,EAAE,kBAAkB,EAAE,eAAe,EAClH,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AAExD,OAAO,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,eAAe,EAAqB,MAAM,oBAAoB,CAAC;AAEjH,OAAO,EAAE,mBAAmB,EAAyB,MAAM,4BAA4B,CAAC;AACxF,OAAO,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAC;AAC/D,OAAO,EAAE,wBAAwB,EAAE,mBAAmB,EAAwB,MAAM,kBAAkB,CAAC;AACvG,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAE5D,MAAM,GAAG,GAAG,YAAY,CAAC,cAAc,CAAC,CAAC;AAEzC;;;;;GAKG;AACH,MAAM,CAAC,MAAM,4BAA4B,GAAG,uBAAuB,CAAC;AAEpE;;;;;GAKG;AACH,OAAO,EAAE,oBAAoB,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAE9E;;;;;;GAMG;AACH,MAAM,OAAO,wBAAyB,SAAQ,KAAK;IAC7B;IAA2B;IAAhD,YAAqB,OAAgB,EAAW,GAAW,EAAE,MAAc;QAC1E,KAAK,CAAC,GAAG,4BAA4B,WAAW,OAAO,2BAA2B,GAAG,MAAM,MAAM,EAAE,CAAC,CAAC;QADjF,YAAO,GAAP,OAAO,CAAS;QAAW,QAAG,GAAH,GAAG,CAAQ;QAE1D,IAAI,CAAC,IAAI,GAAG,0BAA0B,CAAC;IACxC,CAAC;CACD;AAED;;;;GAIG;AACH,MAAM,UAAU,4BAA4B,CAAC,MAAoB;IAChE,OAAO,CAAC,MAAM,CAAC,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,4BAA4B,CAAC,IAAI,KAAK,CAAC,CAAC;AAC9F,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,yBAAyB,GAAG,oBAAoB,CAAC;AAE9D;;;;GAIG;AACH,MAAM,UAAU,yBAAyB,CAAC,MAAoB;IAC7D,OAAO,CAAC,MAAM,CAAC,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,yBAAyB,CAAC,IAAI,KAAK,CAAC,CAAC;AAC3F,CAAC;AAmGD,MAAM,OAAO,WAAW;IAYL;IAXD,YAAY,CAAsB;IAClC,uBAAuB,CAA0B;IAClE,6EAA6E;IAC5D,eAAe,GAAG,IAAI,GAAG,EAA+C,CAAC;IAC1F,oFAAoF;IACnE,kBAAkB,GAAG,IAAI,GAAG,EAA4B,CAAC;IAC1E;6EACyE;IACxD,mBAAmB,GAAG,IAAI,GAAG,EAA2B,CAAC;IAE1E,YACkB,kBAAuD,EACxE,OAA4B;QADX,uBAAkB,GAAlB,kBAAkB,CAAqC;QAGxE,IAAI,CAAC,YAAY,GAAG,OAAO,EAAE,YAAY,CAAC;QAC1C,IAAI,CAAC,uBAAuB,GAAG,OAAO,EAAE,uBAAuB,IAAI,QAAQ,CAAC;IAC7E,CAAC;IAED;;;OAGG;IACH,kBAAkB,CAAC,YAA0B,EAAE,QAAkC;QAChF,IAAI,GAAG,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;QACjD,IAAI,CAAC,GAAG,EAAE,CAAC;YACV,GAAG,GAAG,IAAI,GAAG,EAAE,CAAC;YAChB,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,YAAY,EAAE,GAAG,CAAC,CAAC;QAC7C,CAAC;QACD,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAClB,IAAI,YAAY,GAAG,KAAK,CAAC;QACzB,OAAO,GAAG,EAAE;YACX,IAAI,YAAY;gBAAE,OAAO;YACzB,YAAY,GAAG,IAAI,CAAC;YACpB,MAAM,OAAO,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;YACvD,IAAI,OAAO,EAAE,CAAC;gBACb,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;gBACzB,IAAI,OAAO,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;oBACxB,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;gBAC3C,CAAC;YACF,CAAC;QACF,CAAC,CAAC;IACH,CAAC;IAED;;;;;;OAMG;IACH,qBAAqB,CAAC,QAAkC;QACvD,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QACtC,IAAI,YAAY,GAAG,KAAK,CAAC;QACzB,OAAO,GAAG,EAAE;YACX,IAAI,YAAY;gBAAE,OAAO;YACzB,YAAY,GAAG,IAAI,CAAC;YACpB,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QAC1C,CAAC,CAAC;IACH,CAAC;IAED;;;;;;;;;;OAUG;IACK,qBAAqB,CAAC,gBAA8C,EAAE,QAAkB,EAAE,GAAW,EAAE,MAAgB;QAC9H,MAAM,WAAW,GAAG,IAAI,CAAC,kBAAkB,CAAC,IAAI,GAAG,CAAC,CAAC;QACrD,KAAK,MAAM,CAAC,YAAY,EAAE,QAAQ,CAAC,IAAI,gBAAgB,EAAE,CAAC;YACzD,MAAM,SAAS,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;YACzD,IAAI,CAAC,CAAC,SAAS,IAAI,SAAS,CAAC,IAAI,KAAK,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;gBAC1D,SAAS;YACV,CAAC;YACD,MAAM,KAAK,GAA0B,EAAE,YAAY,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC;YACvF,IAAI,SAAS,IAAI,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;gBACrC,IAAI,CAAC,mBAAmB,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;YAC5C,CAAC;YACD,IAAI,WAAW,EAAE,CAAC;gBACjB,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,kBAAkB,EAAE,KAAK,CAAC,CAAC;YAC1D,CAAC;QACF,CAAC;IACF,CAAC;IAED,wHAAwH;IAChH,mBAAmB,CAAC,SAAwC,EAAE,KAA4B;QACjG,KAAK,MAAM,QAAQ,IAAI,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC;YAC9C,IAAI,CAAC;gBACJ,QAAQ,CAAC,KAAK,CAAC,CAAC;YACjB,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACd,GAAG,CAAC,yDAAyD,EAAE,KAAK,CAAC,YAAY,EAAE,GAAG,CAAC,CAAC;YACzF,CAAC;QACF,CAAC;IACF,CAAC;IAED,kFAAkF;IAClF,wBAAwB,CAAC,QAAiC;QACzD,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QACvC,IAAI,YAAY,GAAG,KAAK,CAAC;QACzB,OAAO,GAAG,EAAE;YACX,IAAI,YAAY;gBAAE,OAAO;YACzB,YAAY,GAAG,IAAI,CAAC;YACpB,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QAC3C,CAAC,CAAC;IACH,CAAC;IAED;;;;;OAKG;IACH,0BAA0B,CAAC,KAAkC;QAC5D,KAAK,MAAM,QAAQ,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC,EAAE,CAAC;YAC7D,IAAI,CAAC;gBACJ,QAAQ,CAAC,KAAK,CAAC,CAAC;YACjB,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACd,GAAG,CAAC,2DAA2D,EAAE,KAAK,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;YACvF,CAAC;QACF,CAAC;IACF,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAa,EAAE,QAAyB;QAC/E,MAAM,gBAAgB,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC;QACvD,GAAG,CAAC,iBAAiB,EAAE,gBAAgB,CAAC,MAAM,CAAC,CAAC;QAChD,2EAA2E;QAC3E,8EAA8E;QAC9E,2EAA2E;QAC3E,6EAA6E;QAC7E,wDAAwD;QACxD,MAAM,UAAU,GAAwF,EAAE,CAAC;QAC3G,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,GAAG,CAAC,KAAK,EAAE,OAAO,EAAsC,EAAE;YAC5G,MAAM,YAAY,GAAG,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC;YACtD,8EAA8E;YAC9E,6EAA6E;YAC7E,iFAAiF;YACjF,2EAA2E;YAC3E,IAAI,WAA+C,CAAC;YAEpD,yEAAyE;YACzE,gFAAgF;YAChF,mFAAmF;YACnF,8EAA8E;YAC9E,+EAA+E;YAC/E,wEAAwE;YACxE,4EAA4E;YAC5E,sDAAsD;YACtD,IAAI,OAAO,EAAE,CAAC;gBACb,MAAM,SAAS,GAAG,MAAM,YAAY,CAAC,SAAS,EAAE,CAAC;gBACjD,MAAM,UAAU,GAAG,SAAS;oBAC3B,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,GAAG,SAAS,CAAC,GAAG,CAAC;oBACtD,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC;gBACrB,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBAC3B,MAAM,mBAAmB,CAAC,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE;wBAClD,4EAA4E;wBAC5E,4EAA4E;wBAC5E,2EAA2E;wBAC3E,2EAA2E;wBAC3E,qEAAqE;wBACrE,2EAA2E;wBAC3E,gBAAgB;wBAChB,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,SAAS,EAAE,CAAC;wBAC9C,MAAM,OAAO,GAAG,MAAM;4BACrB,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC;4BACnD,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC;wBACrB,0EAA0E;wBAC1E,gFAAgF;wBAChF,2CAA2C;wBAC3C,EAAE;wBACF,kFAAkF;wBAClF,8EAA8E;wBAC9E,8EAA8E;wBAC9E,8EAA8E;wBAC9E,gFAAgF;wBAChF,gFAAgF;wBAChF,gFAAgF;wBAChF,gFAAgF;wBAChF,wBAAwB;wBACxB,IAAI,CAAC;4BACJ,KAAK,MAAM,EAAE,QAAQ,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC;gCAC5E,MAAM,OAAO,GAAG,MAAM,YAAY,CAAC,qBAAqB,CAAC,QAAQ,CAAC,CAAC;gCACnE,IAAI,CAAC,OAAO,EAAE,CAAC;oCACd,SAAS;gCACV,CAAC;gCACD,4FAA4F;gCAC5F,MAAM,IAAI,GAAG,MAAM,YAAY,CAAC,SAAS,EAAE,CAAC;gCAC5C,IAAI,CAAC,CAAC,MAAM,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC;oCACpF,0EAA0E;oCAC1E,oEAAoE;oCACpE,2EAA2E;oCAC3E,2EAA2E;oCAC3E,4EAA4E;oCAC5E,iDAAiD;oCACjD,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;wCACxB,WAAW,GAAG,kBAAkB,CAAC;oCAClC,CAAC;oCACD,MAAM;gCACP,CAAC;gCACD,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,QAAQ,EAAE,GAAG,EAAE,YAAY,EAAE,KAAK,CAAC,CAAC;gCAC5F,IAAI,YAAY,KAAK,SAAS,EAAE,CAAC;oCAChC,UAAU,CAAC,IAAI,CAAC,EAAE,YAAY,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC,CAAC;gCAC3D,CAAC;4BACF,CAAC;wBACF,CAAC;wBAAC,OAAO,GAAG,EAAE,CAAC;4BACd,+EAA+E;4BAC/E,gFAAgF;4BAChF,4EAA4E;4BAC5E,6EAA6E;4BAC7E,kFAAkF;4BAClF,yEAAyE;4BACzE,kEAAkE;4BAClE,IAAI,CAAC,CAAC,GAAG,YAAY,wBAAwB,CAAC,EAAE,CAAC;gCAChD,MAAM,GAAG,CAAC;4BACX,CAAC;4BACD,2EAA2E;4BAC3E,4EAA4E;4BAC5E,wCAAwC;4BACxC,WAAW,GAAG,kBAAkB,CAAC;4BACjC,GAAG,CAAC,8DAA8D,EAAE,OAAO,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC;wBACpG,CAAC;oBACF,CAAC,CAAC,CAAC;gBACJ,CAAC;YACF,CAAC;YAED,uFAAuF;YACvF,qFAAqF;YACrF,sFAAsF;YACtF,sFAAsF;YACtF,0FAA0F;YAC1F,qFAAqF;YACrF,6EAA6E;YAC7E,EAAE;YACF,kFAAkF;YAClF,wFAAwF;YACxF,2FAA2F;YAC3F,uFAAuF;YACvF,wEAAwE;YACxE,IAAI,QAAwD,CAAC;YAC7D,IAAI,CAAC;gBACJ,QAAQ,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,YAAY,EAAE,OAAO,EAAE,GAAG,CAAC,CAAC;YAC7E,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACd,wFAAwF;gBACxF,0FAA0F;gBAC1F,sFAAsF;gBACtF,wFAAwF;gBACxF,oFAAoF;gBACpF,qFAAqF;gBACrF,GAAG,CAAC,0CAA0C,EAAE,OAAO,EACtD,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;gBACnD,OAAO,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,WAAW,EAAE,kBAAkB,EAAoB,CAAC,CAAC;YACpF,CAAC;YAED,oFAAoF;YACpF,mFAAmF;YACnF,yFAAyF;YACzF,IAAI,OAAO,EAAE,QAAQ,KAAK,SAAS,EAAE,CAAC;gBACrC,MAAM,gBAAgB,GAAG,MAAM,YAAY,CAAC,qBAAqB,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;gBACpF,IAAI,CAAC,gBAAgB,EAAE,CAAC;oBACvB,IAAI,WAAW,KAAK,SAAS,EAAE,CAAC;wBAC/B,+DAA+D;wBAC/D,gFAAgF;wBAChF,+EAA+E;wBAC/E,kFAAkF;wBAClF,OAAO,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,WAAW,EAAoB,CAAC,CAAC;oBAChE,CAAC;oBACD,mFAAmF;oBACnF,uFAAuF;oBACvF,EAAE;oBACF,kFAAkF;oBAClF,6EAA6E;oBAC7E,oFAAoF;oBACpF,mFAAmF;oBACnF,sFAAsF;oBACtF,oFAAoF;oBACpF,sFAAsF;oBACtF,gDAAgD;oBAChD,wDAAwD;oBACxD,MAAM,IAAI,KAAK,CAAC,kBAAkB,OAAO,CAAC,QAAQ,YAAY,CAAC,CAAC;gBACjE,CAAC;gBACD,yFAAyF;gBACzF,wFAAwF;gBACxF,wFAAwF;gBACxF,mFAAmF;gBACnF,sEAAsE;gBACtE,MAAM,KAAK,GAAG,cAAc,CAAC,QAAQ,EAAE,KAAK,EAAE,gBAAgB,CAAC,CAAC;gBAChE,OAAO,CAAC,OAAO,EAAE;wBAChB,KAAK;wBACL,KAAK,EAAE;4BACN,MAAM,EAAE,MAAM,YAAY,CAAC,SAAS,EAAE;4BACtC,QAAQ,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC;yBAC5B;wBACD,mFAAmF;wBACnF,oFAAoF;wBACpF,mFAAmF;wBACnF,8EAA8E;wBAC9E,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,QAAQ,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;wBACzD,oFAAoF;wBACpF,qFAAqF;wBACrF,oFAAoF;wBACpF,kFAAkF;wBAClF,oFAAoF;wBACpF,kFAAkF;wBAClF,gFAAgF;wBAChF,oFAAoF;wBACpF,2DAA2D;wBAC3D,GAAG,CAAC,KAAK,KAAK,SAAS,IAAI,CAAC,WAAW,KAAK,SAAS,IAAI,QAAQ,KAAK,SAAS,CAAC;4BAC/E,CAAC,CAAC,EAAE,WAAW,EAAE,WAAW,IAAI,kBAAkB,EAAE;4BACpD,CAAC,CAAC,EAAE,CAAC;qBACY,CAAC,CAAC;YACtB,CAAC;YAED,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACf,sFAAsF;gBACtF,oFAAoF;gBACpF,sFAAsF;gBACtF,uFAAuF;gBACvF,4BAA4B;gBAC5B,OAAO,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,GAAG,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAoB,CAAC,CAAC;YAC1G,CAAC;YAED,MAAM,QAAQ,GAAG,MAAM,oBAAoB,CAAC,YAAY,CAAC,uBAAuB,EAAE,CAAC,CAAC;YACpF,OAAO,CAAC,OAAO,EAAE;oBAChB,KAAK,EAAE,QAAQ,CAAC,KAAK;oBACrB,sFAAsF;oBACtF,iFAAiF;oBACjF,sFAAsF;oBACtF,sFAAsF;oBACtF,wFAAwF;oBACxF,YAAY,EAAE,QAAQ,CAAC,SAAS;oBAChC,KAAK,EAAE;wBACN,MAAM,EAAE,MAAM,YAAY,CAAC,SAAS,EAAE;wBACtC,QAAQ;qBACR;iBACD,CAAC,CAAC;QACJ,CAAC,CAAC,CAAC,CAAC;QAEJ,iFAAiF;QACjF,iFAAiF;QACjF,sDAAsD;QACtD,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC;QAEhC,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;YAC7B,MAAM,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;QAC9C,CAAC;QAED,OAAO,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;IACpC,CAAC;IAED;;;;;;;;OAQG;IACK,KAAK,CAAC,aAAa,CAAC,OAAoC,EAAE,MAAiB;QAClF,MAAM,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,OAAO,EAAE,KAAK,CAAC,EAAE,EAAE;YACxD,IAAI,CAAC;gBACJ,KAAK,CAAC,OAAO,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;YAC1E,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACd,GAAG,CAAC,mDAAmD,EAAE,OAAO,EAAE,MAAM,CAAC,GAAG,EAC3E,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;gBACnD,KAAK,CAAC,OAAO,GAAG,SAAS,CAAC;YAC3B,CAAC;QACF,CAAC,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;;;;;;;;;;;;;;OAeG;IACK,KAAK,CAAC,gBAAgB,CAC7B,OAAgB,EAChB,OAAsB,EACtB,GAAuB;QAEvB,IAAI,CAAC;YACJ,OAAO,MAAM,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;QACpC,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACd,IAAI,CAAC,CAAC,GAAG,YAAY,uBAAuB,CAAC,EAAE,CAAC;gBAC/C,MAAM,GAAG,CAAC;YACX,CAAC;YACD,IAAI,CAAC;gBACJ,uFAAuF;gBACvF,iFAAiF;gBACjF,+EAA+E;gBAC/E,uFAAuF;gBACvF,gEAAgE;gBAChE,MAAM,mBAAmB,CAAC,OAAO,EAAE,KAAK,CAAC,EAAE,CAAC,OAAO,CAAC,eAAe,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC;YACtF,CAAC;YAAC,OAAO,UAAU,EAAE,CAAC;gBACrB,IAAI,MAAM,OAAO,CAAC,SAAS,EAAE,KAAK,SAAS,EAAE,CAAC;oBAC7C,GAAG,CAAC,4DAA4D,EAAE,OAAO,EAAE,GAAG,CAAC,GAAG,EACjF,UAAU,YAAY,KAAK,CAAC,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC;oBACxE,OAAO,SAAS,CAAC;gBAClB,CAAC;gBACD,MAAM,UAAU,CAAC;YAClB,CAAC;YACD,OAAO,MAAM,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;QACpC,CAAC;IACF,CAAC;IAED;;;;;OAKG;IACK,cAAc,CAAC,UAA+F;QACrH,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC7B,OAAO;QACR,CAAC;QACD,MAAM,MAAM,GAAG,IAAI,GAAG,EAA+F,CAAC;QACtH,KAAK,MAAM,EAAE,YAAY,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,EAAE,IAAI,UAAU,EAAE,CAAC;YACnE,MAAM,GAAG,GAAG,GAAG,QAAQ,IAAI,GAAG,EAAE,CAAC;YACjC,IAAI,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YAC5B,IAAI,CAAC,KAAK,EAAE,CAAC;gBACZ,KAAK,GAAG,EAAE,QAAQ,EAAE,GAAG,EAAE,gBAAgB,EAAE,IAAI,GAAG,EAAE,EAAE,CAAC;gBACvD,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;YACxB,CAAC;YACD,MAAM,IAAI,GAAG,KAAK,CAAC,gBAAgB,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC;YAC5D,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACnB,KAAK,CAAC,gBAAgB,CAAC,GAAG,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC;QAChD,CAAC;QACD,KAAK,MAAM,EAAE,QAAQ,EAAE,GAAG,EAAE,gBAAgB,EAAE,IAAI,MAAM,CAAC,MAAM,EAAE,EAAE,CAAC;YACnE,IAAI,CAAC,qBAAqB,CAAC,gBAAgB,EAAE,QAAQ,EAAE,GAAG,CAAC,CAAC;QAC7D,CAAC;IACF,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,OAAoB,EAAE,QAAyB;QACzD,yFAAyF;QACzF,4FAA4F;QAC5F,oEAAoE;QACpE,MAAM,IAAI,GAAG,IAAI,CAAC,YAAY,CAAC;QAC/B,MAAM,UAAU,GAAG,MAAM,mBAAmB,CAC3C,OAAO,EACP,IAAI,IAAI,CAAC,CAAC,EAAE,WAAW,EAAE,cAAc,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,WAAW,EAAE,cAAc,CAAC,CAAC,EAChF,IAAI,CAAC,uBAAuB,EAC5B,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,eAAe;YACtC,CAAC,CAAC,GAAG,CAAC,0CAA0C,EAAE,OAAO,CAAC,QAAQ,EAAE,KAAK,CAAC,MAAM,CAAC;YACjF,CAAC,CAAC,GAAG,CAAC,2CAA2C,EAAE,OAAO,CAAC,QAAQ,EAAE,KAAK,CAAC,KAAK,CAAC,CAClF,CAAC;QACF,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;YACvB,yFAAyF;YACzF,qDAAqD;YACrD,OAAO;gBACN,OAAO,EAAE,KAAK;gBACd,MAAM,EAAE,UAAU,CAAC,MAAM,IAAI,+BAA+B;aAC5D,CAAC;QACH,CAAC;QAED,+FAA+F;QAC/F,2FAA2F;QAC3F,MAAM,QAAQ,GAAG,qBAAqB,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;QAC3D,GAAG,CAAC,qCAAqC,EAAE,OAAO,CAAC,QAAQ,EAAE,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC;QAC3F,MAAM,QAAQ,GAAoB,EAAE,CAAC;QACrC,MAAM,OAAO,GAAuB,EAAE,CAAC;QACvC,uFAAuF;QACvF,wFAAwF;QACxF,yFAAyF;QACzF,IAAI,OAAgC,CAAC;QACrC,4FAA4F;QAC5F,sFAAsF;QACtF,0FAA0F;QAC1F,yBAAyB;QACzB,MAAM,SAAS,GAAG,IAAI,GAAG,EAAW,CAAC;QACrC,4FAA4F;QAC5F,+FAA+F;QAC/F,sFAAsF;QACtF,wFAAwF;QACxF,2FAA2F;QAC3F,6FAA6F;QAC7F,4FAA4F;QAC5F,gDAAgD;QAChD,IAAI,UAAU,GAAG,CAAC,CAAC;QAEnB,6FAA6F;QAC7F,2FAA2F;QAC3F,6FAA6F;QAC7F,uFAAuF;QACvF,yFAAyF;QACzF,oFAAoF;QACpF,2FAA2F;QAC3F,oFAAoF;QACpF,EAAE;QACF,2FAA2F;QAC3F,2FAA2F;QAC3F,4FAA4F;QAC5F,6FAA6F;QAC7F,EAAE;QACF,yFAAyF;QACzF,yFAAyF;QACzF,2FAA2F;QAC3F,6FAA6F;QAC7F,sFAAsF;QACtF,2FAA2F;QAC3F,mBAAmB;QACnB,EAAE;QACF,4FAA4F;QAC5F,0FAA0F;QAC1F,2FAA2F;QAC3F,4FAA4F;QAC5F,6FAA6F;QAC7F,qFAAqF;QACrF,4FAA4F;QAC5F,oDAAoD;QACpD,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,MAAM,wBAAwB,CAAC,QAAQ,CAAC,CAAC;QACtE,IAAI,CAAC;YACJ,kEAAkE;YAClE,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;gBAChC,MAAM,YAAY,GAAG,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC;gBACtD,MAAM,UAAU,GAAG,mBAAmB,CAAC,OAAO,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;gBAEpE,wFAAwF;gBACxF,iFAAiF;gBACjF,gCAAgC;gBAChC,IAAI,OAAO,CAAC,GAAG,KAAK,SAAS,IAAI,UAAU,CAAC,MAAM,EAAE,CAAC;oBACpD,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,SAAS,EAAE,CAAC;oBAC9C,kFAAkF;oBAClF,4EAA4E;oBAC5E,gFAAgF;oBAChF,mFAAmF;oBACnF,mFAAmF;oBACnF,kFAAkF;oBAClF,gFAAgF;oBAChF,IAAI,aAAa,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,EAAE,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;wBAC1D,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;wBACvB,SAAS;oBACV,CAAC;oBACD,IAAI,MAAM,IAAI,MAAM,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,CAAC,EAAE,CAAC;wBAChD,iFAAiF;wBACjF,oFAAoF;wBACpF,iFAAiF;wBACjF,mEAAmE;wBACnE,IAAI,OAAO,CAAC,GAAG,KAAK,SAAS,EAAE,CAAC;4BAC/B,OAAO,GAAG,cAAc,CAAC,CAAC,OAAO,EAAE,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;wBACnE,CAAC;wBACD,UAAU,EAAE,CAAC;wBACb,MAAM,eAAe,GAAG,MAAM,oBAAoB,CAAC,YAAY,CAAC,aAAa,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;wBAC7G,KAAK,MAAM,SAAS,IAAI,eAAe,EAAE,CAAC;4BACzC,MAAM,SAAS,GAAG,MAAM,YAAY,CAAC,cAAc,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;4BACxE,IAAI,CAAC,SAAS,EAAE,CAAC;gCAChB,MAAM,IAAI,KAAK,CAAC,kBAAkB,SAAS,CAAC,QAAQ,cAAc,OAAO,EAAE,CAAC,CAAC;4BAC9E,CAAC;4BACD,OAAO,CAAC,IAAI,CAAC;gCACZ,QAAQ,EAAE,SAAS,CAAC,QAAQ;gCAC5B,GAAG,EAAE,SAAS,CAAC,GAAG;gCAClB,UAAU,EAAE,uBAAuB,CAAC,SAAS,EAAE,OAAO,CAAC;6BACvD,CAAC,CAAC;wBACJ,CAAC;oBACF,CAAC;gBACF,CAAC;gBACD,sFAAsF;gBACtF,uFAAuF;gBACvF,8EAA8E;gBAC9E,mFAAmF;gBACnF,qFAAqF;gBACrF,qFAAqF;gBACrF,+EAA+E;gBAC/E,uFAAuF;gBACvF,kFAAkF;gBAClF,oFAAoF;gBACpF,mBAAmB;gBAEnB,4FAA4F;gBAC5F,sFAAsF;gBACtF,uFAAuF;gBACvF,0FAA0F;gBAC1F,oFAAoF;gBACpF,2FAA2F;gBAC3F,2FAA2F;gBAC3F,8FAA8F;gBAC9F,KAAK,MAAM,KAAK,IAAI,MAAM,YAAY,CAAC,iBAAiB,EAAE,EAAE,CAAC;oBAC5D,IAAI,oBAAoB,CAAC,KAAK,EAAE,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC;wBACvD,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC;oBACtD,CAAC;yBAAM,CAAC;wBACP,GAAG,CAAC,qFAAqF,EACxF,OAAO,CAAC,QAAQ,EAAE,OAAO,EAAE,KAAK,CAAC,QAAQ,EAAE,KAAK,CAAC,GAAG,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC;oBACrE,CAAC;gBACF,CAAC;YACF,CAAC;YAED,wFAAwF;YACxF,uCAAuC;YACvC,IAAI,UAAU,GAAG,CAAC,EAAE,CAAC;gBACpB,GAAG,CAAC,4CAA4C,EAAE,OAAO,CAAC,QAAQ,EAAE,UAAU,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;gBAChG,OAAO;oBACN,OAAO,EAAE,KAAK;oBACd,QAAQ,EAAE,IAAI;oBACd,OAAO;oBACP,GAAG,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC;iBAC7C,CAAC;YACH,CAAC;YAED,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACzB,IAAI,OAAO,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC,CAAC,0BAA0B;oBACvD,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC;gBAC9D,CAAC;qBAAM,IAAI,OAAO,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC,CAAC,mCAAmC;oBACvE,OAAO;wBACN,OAAO,EAAE,KAAK;wBACd,QAAQ,EAAE,IAAI;wBACd,OAAO,EAAE,MAAM,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,EAAC,MAAM,EAAC,EAAE;4BACtD,MAAM,YAAY,GAAG,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;4BAC7D,OAAO;gCACN,OAAO,EAAE,MAAM,CAAC,OAAO;gCACvB,QAAQ,EAAE,MAAM,CAAC,QAAQ;gCACzB,+EAA+E;gCAC/E,8EAA8E;gCAC9E,6CAA6C;gCAC7C,SAAS,EAAE,CAAC,MAAM,YAAY,CAAC,qBAAqB,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;uCAClE,CAAC,MAAM,YAAY,CAAC,cAAc,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAE;6BACzD,CAAA;wBACF,CAAC,CAAC,CAAC;qBACH,CAAC;gBACH,CAAC;YACF,CAAC;YAED,yFAAyF;YACzF,EAAE;YACF,2FAA2F;YAC3F,2FAA2F;YAC3F,0FAA0F;YAC1F,4FAA4F;YAC5F,sFAAsF;YACtF,+EAA+E;YAC/E,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;gBAChC,IAAI,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC;oBAC5B,SAAS;gBACV,CAAC;gBACD,MAAM,YAAY,GAAG,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC;gBACtD,MAAM,cAAc,GAAG,mBAAmB,CAAC,OAAO,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;gBACxE,MAAM,YAAY,CAAC,sBAAsB,CAAC,OAAO,CAAC,QAAQ,EAAE,cAAc,EAAE,OAAO,CAAC,GAAG,EACtF,eAAe,CAAC,OAAO,CAAC,QAAQ,EAAE,OAAO,EAAE,cAAc,CAAC,EAAE,OAAO,CAAC,GAAG,CAAC,OAAO,CAAE,CAAC,CAAC;YACrF,CAAC;YAED,yFAAyF;YACzF,+FAA+F;YAC/F,OAAO;gBACN,OAAO,EAAE,IAAI;gBACb,OAAO,EAAE,QAAQ;gBACjB,QAAQ;gBACR,UAAU,EAAE,eAAe,EAAE;aACd,CAAC;QAClB,CAAC;gBAAS,CAAC;YACV,oEAAoE;YACpE,sDAAsD;YACtD,OAAO,EAAE,CAAC;QACX,CAAC;IACF,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,SAAuB,EAAE,QAAyB;QAC9D,GAAG,CAAC,gCAAgC,EAAE,SAAS,CAAC,QAAQ,EAAE,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QACrF,MAAM,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE;YAClD,MAAM,YAAY,GAAG,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC;YACtD,OAAO,mBAAmB,CAAC,OAAO,EAAE,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,wBAAwB,CAAC,SAAS,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC,CAAC;QAChH,CAAC,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;;;;;OA2BG;IACH,KAAK,CAAC,MAAM,CAAC,OAAsB,EAAE,QAAyB,EAAE,KAAwB;QACvF,GAAG,CAAC,uCAAuC,EAAE,OAAO,CAAC,QAAQ,EAAE,OAAO,CAAC,GAAG,EAAE,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QACrG,6FAA6F;QAC7F,iGAAiG;QACjG,mDAAmD;QACnD,EAAE;QACF,2FAA2F;QAC3F,6FAA6F;QAC7F,iGAAiG;QACjG,8FAA8F;QAC9F,8FAA8F;QAC9F,+FAA+F;QAC/F,gGAAgG;QAChG,2FAA2F;QAC3F,2FAA2F;QAC3F,MAAM,QAAQ,GAAG,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;QAClF,2EAA2E;QAC3E,gFAAgF;QAChF,gFAAgF;QAChF,sEAAsE;QACtE,MAAM,gBAAgB,GAAG,IAAI,GAAG,EAA2B,CAAC;QAC5D,8EAA8E;QAC9E,iFAAiF;QACjF,IAAI,OAAuC,CAAC;QAE5C,+FAA+F;QAC/F,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,MAAM,wBAAwB,CAAC,QAAQ,CAAC,CAAC;QAEtE,IAAI,CAAC;YACJ,oCAAoC;YAEpC,6FAA6F;YAC7F,8FAA8F;YAC9F,MAAM,aAAa,GAAG,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;gBAC9C,OAAO;gBACP,OAAO,EAAE,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC;gBACzC,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC,OAAO,CAAE;aAC5B,CAAC,CAAC,CAAC;YAEJ,yBAAyB;YACzB,sFAAsF;YACtF,kFAAkF;YAClF,kFAAkF;YAClF,kEAAkE;YAClE,gGAAgG;YAChG,gFAAgF;YAChF,MAAM,QAAQ,GAA2E,EAAE,CAAC;YAC5F,MAAM,aAAa,GAA0D,EAAE,CAAC;YAChF,gFAAgF;YAChF,sFAAsF;YACtF,0BAA0B;YAC1B,IAAI,OAAgC,CAAC;YACrC,KAAK,MAAM,KAAK,IAAI,aAAa,EAAE,CAAC;gBACnC,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,KAAK,CAAC;gBAC1C,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,SAAS,EAAE,CAAC;gBACzC,IAAI,MAAM,IAAI,MAAM,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;oBACzC,IAAI,aAAa,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,EAAE,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;wBAC1D,uFAAuF;wBACvF,oFAAoF;wBACpF,oFAAoF;wBACpF,qEAAqE;wBACrE,MAAM,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,GAAG,EAAE,OAAO,CAAC,QAAQ,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;wBACxF,SAAS;oBACV,CAAC;oBACD,OAAO,GAAG,cAAc,CAAC,CAAC,OAAO,EAAE,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;oBAClE,MAAM,UAAU,GAAsB,EAAE,CAAC;oBACzC,IAAI,KAAK,EAAE,MAAM,SAAS,IAAI,OAAO,CAAC,aAAa,CAAC,OAAO,CAAC,GAAG,EAAE,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC;wBAC9E,MAAM,SAAS,GAAG,MAAM,OAAO,CAAC,cAAc,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;wBACnE,IAAI,CAAC,SAAS,EAAE,CAAC;4BAChB,MAAM,IAAI,KAAK,CAAC,kBAAkB,SAAS,CAAC,QAAQ,cAAc,OAAO,EAAE,CAAC,CAAC;wBAC9E,CAAC;wBACD,UAAU,CAAC,IAAI,CAAC;4BACf,QAAQ,EAAE,SAAS,CAAC,QAAQ;4BAC5B,GAAG,EAAE,SAAS,CAAC,GAAG;4BAClB,SAAS;yBACT,CAAC,CAAC;oBACJ,CAAC;oBACD,aAAa,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC,iFAAiF;oBAC9H,SAAS;gBACV,CAAC;gBACD,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACtB,CAAC;YAED,IAAI,aAAa,CAAC,MAAM,EAAE,CAAC;gBAC1B,GAAG,CAAC,oCAAoC,EAAE,OAAO,CAAC,QAAQ,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;gBAClF,OAAO;oBACN,OAAO,EAAE,KAAK;oBACd,OAAO,EAAE,mCAAmC,CAAC,aAAa,CAAC;oBAC3D,GAAG,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC;iBAC7C,CAAC;YACH,CAAC;YAED,8EAA8E;YAC9E,kFAAkF;YAClF,iDAAiD;YACjD,EAAE;YACF,iEAAiE;YACjE,sFAAsF;YACtF,uFAAuF;YACvF,uFAAuF;YACvF,wFAAwF;YACxF,wFAAwF;YACxF,6FAA6F;YAC7F,8EAA8E;YAC9E,kCAAkC;YAClC,wFAAwF;YACxF,6DAA6D;YAC7D,2EAA2E;YAC3E,MAAM,YAAY,GAA+C,EAAE,CAAC;YACpE,MAAM,SAAS,GAAG,IAAI,GAAG,EAAW,CAAC;YACrC,KAAK,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,QAAQ,EAAE,CAAC;gBACpD,MAAM,aAAa,GAAG,MAAM,OAAO,CAAC,qBAAqB,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;gBAC5E,IAAI,aAAa,EAAE,CAAC;oBACnB,SAAS;gBACV,CAAC;gBACD,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,cAAc,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;gBAChE,IAAI,CAAC,QAAQ,EAAE,CAAC;oBACf,YAAY,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;oBAC3D,SAAS;gBACV,CAAC;gBACD,0FAA0F;gBAC1F,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;gBAC5C,IAAI,MAAM,CAAC,MAAM,KAAK,SAAS,IAAI,MAAM,CAAC,MAAM,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;oBACrE,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;gBACxB,CAAC;qBAAM,CAAC;oBACP,kFAAkF;oBAClF,mFAAmF;oBACnF,yFAAyF;oBACzF,YAAY,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;gBAC5D,CAAC;YACF,CAAC;YAED,yFAAyF;YACzF,0FAA0F;YAC1F,uFAAuF;YACvF,0FAA0F;YAC1F,qFAAqF;YACrF,wFAAwF;YACxF,8EAA8E;YAC9E,IAAI,YAAY,CAAC,MAAM,EAAE,CAAC;gBACzB,uFAAuF;gBACvF,+EAA+E;gBAC/E,uFAAuF;gBACvF,sFAAsF;gBACtF,uFAAuF;gBACvF,MAAM,IAAI,CAAC,wBAAwB,CAAC,QAAQ,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;gBAChE,MAAM,IAAI,KAAK,CAAC,kBAAkB,OAAO,CAAC,QAAQ,4BAA4B,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAC9H,CAAC;YAED,wFAAwF;YACxF,wFAAwF;YACxF,wFAAwF;YACxF,yFAAyF;YACzF,2FAA2F;YAC3F,2FAA2F;YAC3F,wFAAwF;YACxF,gEAAgE;YAChE,KAAK,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,QAAQ,EAAE,CAAC;gBACpD,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC;oBAC7B,SAAS;gBACV,CAAC;gBACD,MAAM,YAAY,GAAG,CAAC,MAAM,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,YAAY;uBACjF,CAAC,MAAM,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,YAAY,CAAC;gBACzE,IAAI,YAAY,KAAK,SAAS,EAAE,CAAC;oBAChC,MAAM,IAAI,GAAG,gBAAgB,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC;oBACtD,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;oBACnB,gBAAgB,CAAC,GAAG,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC;gBAC1C,CAAC;gBACD,+EAA+E;gBAC/E,oFAAoF;gBACpF,+EAA+E;gBAC/E,MAAM,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,GAAG,EAAE,OAAO,CAAC,QAAQ,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;YACzF,CAAC;YAED,wDAAwD;YACxD,8EAA8E;YAC9E,wFAAwF;YACxF,iFAAiF;YACjF,EAAE;YACF,yFAAyF;YACzF,uFAAuF;YACvF,IAAI,gBAAgB,GAAG,KAAK,CAAC;YAC7B,KAAK,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,QAAQ,EAAE,CAAC;gBACpD,IAAI,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC;oBAC5B,SAAS;gBACV,CAAC;gBACD,IAAI,CAAC;oBACJ,sDAAsD;oBACtD,wFAAwF;oBACxF,uFAAuF;oBACvF,sFAAsF;oBACtF,iDAAiD;oBACjD,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,OAAO,CAAC,QAAQ,EAAE,OAAO,CAAC,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,CAAC,YAAY,EAAE,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC,CAAC;oBACxJ,IAAI,YAAY,KAAK,SAAS,EAAE,CAAC;wBAChC,MAAM,IAAI,GAAG,gBAAgB,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC;wBACtD,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;wBACnB,gBAAgB,CAAC,GAAG,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC;oBAC1C,CAAC;gBACF,CAAC;gBAAC,OAAO,GAAG,EAAE,CAAC;oBACd,uEAAuE;oBACvE,qEAAqE;oBACrE,qEAAqE;oBACrE,uEAAuE;oBACvE,OAAO,GAAG,EAAE,MAAM,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,6BAA6B,EAAE,CAAC;oBACzF,gBAAgB,GAAG,GAAG,YAAY,wBAAwB,CAAC;oBAC3D,MAAM;gBACP,CAAC;YACF,CAAC;YAED,uFAAuF;YACvF,oFAAoF;YACpF,gFAAgF;YAChF,sFAAsF;YACtF,uFAAuF;YACvF,2EAA2E;YAC3E,IAAI,gBAAgB,EAAE,CAAC;gBACtB,MAAM,IAAI,CAAC,wBAAwB,CAAC,QAAQ,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;YACjE,CAAC;QACF,CAAC;gBACO,CAAC;YACR,4DAA4D;YAC5D,OAAO,EAAE,CAAC;QACX,CAAC;QAED,4EAA4E;QAC5E,6EAA6E;QAC7E,8CAA8C;QAC9C,IAAI,CAAC,qBAAqB,CAAC,gBAAgB,EAAE,OAAO,CAAC,QAAQ,EAAE,OAAO,CAAC,GAAG,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;QAE5F,2EAA2E;QAC3E,OAAO,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,eAAe,EAAE,EAAE,CAAC;IAChH,CAAC;IAED;;;;;;;;;;;;;;;;;;;OAmBG;IACK,KAAK,CAAC,wBAAwB,CACrC,MAA8E,EAC9E,QAAkB;QAElB,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACzB,OAAO;QACR,CAAC;QACD,GAAG,CAAC,2DAA2D,EAAE,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;QAC1F,MAAM,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE;YAClE,IAAI,CAAC;gBACJ,MAAM,OAAO,CAAC,wBAAwB,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;YACzD,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACd,GAAG,CAAC,yEAAyE,EAAE,OAAO,EAAE,QAAQ,EAC/F,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;YACpD,CAAC;QACF,CAAC,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,YAAY,CAAC,OAAgB;QAClC,GAAG,CAAC,yBAAyB,EAAE,OAAO,CAAC,CAAC;QACxC,MAAM,OAAO,GAAG,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC;QACjD,yFAAyF;QACzF,2FAA2F;QAC3F,2FAA2F;QAC3F,wFAAwF;QACxF,uFAAuF;QACvF,sDAAsD;QACtD,MAAM,mBAAmB,CAAC,OAAO,EAAE,KAAK,CAAC,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;IACrE,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;;;OAyBG;IACH,KAAK,CAAC,mBAAmB,CAAC,OAAgB,EAAE,KAAa,EAAE,MAAkB,EAAE,aAAgC;QAC9G,GAAG,CAAC,uCAAuC,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,CAAC,CAAC;QACnE,MAAM,OAAO,GAAG,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC;QACjD,8EAA8E;QAC9E,IAAI,MAAmF,CAAC;QACxF,MAAM,mBAAmB,CAAC,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE;YAClD,MAAM,WAAW,GAAG,MAAM,OAAO,CAAC,SAAS,EAAE,CAAC;YAC9C,MAAM,SAAS,GAAG,MAAM,OAAO,CAAC,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,aAAa,EAAE,KAAK,CAAC,CAAC;YACjF,sFAAsF;YACtF,sGAAsG;YACtG,MAAM,QAAQ,GAAG,WAAW,KAAK,SAAS,IAAI,SAAS,CAAC,GAAG,GAAG,WAAW,CAAC,GAAG,CAAC;YAC9E,MAAM,YAAY,GAAG,KAAK,CAAC,MAAM,EAAE,YAAY,CAAC;YAChD,IAAI,QAAQ,IAAI,YAAY,KAAK,SAAS,EAAE,CAAC;gBAC5C,MAAM,GAAG,EAAE,YAAY,EAAE,QAAQ,EAAE,SAAS,CAAC,QAAQ,EAAE,GAAG,EAAE,SAAS,CAAC,GAAG,EAAE,CAAC;YAC7E,CAAC;YACD,IAAI,CAAC,QAAQ,IAAI,aAAa,KAAK,SAAS,IAAI,MAAM,KAAK,SAAS;mBAChE,SAAS,CAAC,GAAG,KAAK,MAAM,CAAC,GAAG,IAAI,SAAS,CAAC,QAAQ,KAAK,MAAM,CAAC,QAAQ,EAAE,CAAC;gBAC5E,sFAAsF;gBACtF,2FAA2F;gBAC3F,yFAAyF;gBACzF,4EAA4E;gBAC5E,EAAE;gBACF,6FAA6F;gBAC7F,yFAAyF;gBACzF,uEAAuE;gBACvE,EAAE;gBACF,sFAAsF;gBACtF,uFAAuF;gBACvF,sFAAsF;gBACtF,WAAW;gBACX,EAAE;gBACF,8EAA8E;gBAC9E,wFAAwF;gBACxF,qFAAqF;gBACrF,yFAAyF;gBACzF,2FAA2F;gBAC3F,oDAAoD;gBACpD,MAAM,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,OAAO,EAAE,SAAS,CAAC,GAAG,EAAE,SAAS,CAAC,QAAQ,EAAE,aAAa,EAAE,KAAK,CAAC,CAAC;YACrG,CAAC;QACF,CAAC,CAAC,CAAC;QACH,wFAAwF;QACxF,qFAAqF;QACrF,0FAA0F;QAC1F,mBAAmB;QACnB,IAAI,MAAM,EAAE,CAAC;YACZ,IAAI,CAAC,qBAAqB,CACzB,IAAI,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAC3C,MAAM,CAAC,QAAQ,EACf,MAAM,CAAC,GAAG,CACV,CAAC;QACH,CAAC;IACF,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;OAsBG;IACH,KAAK,CAAC,mBAAmB,CAAC,OAAgB,EAAE,QAAkB,EAAE,GAAW;QAC1E,MAAM,OAAO,GAAG,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC;QACjD,MAAM,SAAS,GAAG,MAAM,OAAO,CAAC,qBAAqB,CAAC,QAAQ,CAAC,CAAC;QAChE,IAAI,CAAC,SAAS,EAAE,CAAC;YAChB,OAAO,SAAS,CAAC;QAClB,CAAC;QAED,4FAA4F;QAC5F,+FAA+F;QAC/F,uFAAuF;QACvF,MAAM,eAAe,GAAG,SAAS,CAAC,MAAM,KAAK,SAAS,CAAC;QACvD,IAAI,IAAwB,CAAC;QAC7B,IAAI,OAA2B,CAAC;QAChC,IAAI,CAAC,eAAe,EAAE,CAAC;YACtB,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,SAAS,EAAE,CAAC;YACzC,IAAI,MAAM,EAAE,CAAC;gBACZ,OAAO,GAAG,MAAM,CAAC,GAAG,CAAC;gBACrB,IAAI,CAAC;oBACJ,IAAI,GAAG,CAAC,MAAM,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC;gBACpD,CAAC;gBAAC,OAAO,GAAG,EAAE,CAAC;oBACd,mFAAmF;oBACnF,iFAAiF;oBACjF,iFAAiF;oBACjF,mFAAmF;oBACnF,GAAG,CAAC,iFAAiF,EACpF,OAAO,EAAE,MAAM,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;oBAC7E,OAAO,EAAE,eAAe,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC;gBAC/D,CAAC;YACF,CAAC;QACF,CAAC;QAED,yFAAyF;QACzF,+FAA+F;QAC/F,iGAAiG;QACjG,kGAAkG;QAClG,8FAA8F;QAC9F,iGAAiG;QACjG,6FAA6F;QAC7F,4FAA4F;QAC5F,MAAM,QAAQ,GAAG,cAAc,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,YAAY,CAAC,SAAS,CAAC,CAAC,CAAC;QAC7E,+FAA+F;QAC/F,qFAAqF;QACrF,MAAM,MAAM,GAAG,QAAQ,CAAC,CAAC,CAAC,MAAM,kBAAkB,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QACzE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,eAAe,EAAE,CAAC;IAC7C,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,iBAAiB,CAAC,OAAgB,EAAE,GAAW;QACpD,MAAM,OAAO,GAAG,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC;QACjD,IAAI,KAAK,EAAE,MAAM,SAAS,IAAI,OAAO,CAAC,aAAa,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,CAAC;YAC/D,OAAO,SAAS,CAAC,QAAQ,CAAC;QAC3B,CAAC;QACD,OAAO,SAAS,CAAC;IAClB,CAAC;IAED,uCAAuC;IACvC,KAAK,CAAC,iBAAiB,CAAC,OAAgB;QACvC,OAAO,MAAM,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC,iBAAiB,EAAE,CAAC;IACnE,CAAC;IAED,uCAAuC;IACvC,KAAK,CAAC,cAAc,CAAC,OAAgB,EAAE,QAAkB;QACxD,OAAO,MAAM,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;IACxE,CAAC;IAED;;;;;;;;;;;OAWG;IACH,KAAK,CAAC,aAAa,CAAC,OAAgB,EAAE,GAAW;QAChD,OAAO,MAAM,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;IAClE,CAAC;IAED;;;;;;;OAOG;IACK,KAAK,CAAC,cAAc,CAAC,OAAgB,EAAE,QAAkB,EAAE,GAAW,EAAE,OAAsB,EAAE,KAAsB,EAAE,KAAwB,EAAE,eAAyB;QAClL,2FAA2F;QAC3F,4FAA4F;QAC5F,sFAAsF;QACtF,0FAA0F;QAC1F,+DAA+D;QAC/D,EAAE;QACF,2FAA2F;QAC3F,wFAAwF;QACxF,+CAA+C;QAE/C,MAAM,SAAS,GAAG,MAAM,OAAO,CAAC,qBAAqB,CAAC,QAAQ,CAAC,CAAC;QAChE,qFAAqF;QACrF,gGAAgG;QAChG,IAAI,CAAC,SAAS,EAAE,CAAC;YAChB,MAAM,IAAI,KAAK,CAAC,qCAAqC,QAAQ,0BAA0B,OAAO,2BAA2B,CAAC,CAAC;QAC5H,CAAC;QAED,4CAA4C;QAC5C,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,SAAS,EAAE,CAAC;QAEzC,8FAA8F;QAC9F,MAAM,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,QAAQ,EAAE,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,eAAe,CAAC,CAAC;QAEvG,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,QAAQ,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;QAE7F,8CAA8C;QAC9C,oEAAoE;QACpE,MAAM,QAAQ,GAAG,cAAc,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC;QAEvD,oFAAoF;QACpF,0FAA0F;QAC1F,8FAA8F;QAC9F,2FAA2F;QAC3F,+FAA+F;QAC/F,gGAAgG;QAChG,iGAAiG;QACjG,IAAI,CAAC,QAAQ,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;YACvC,OAAO,MAAM,IAAI,CAAC,iBAAiB,CAAC,OAAO,EAAE,QAAQ,EAAE,GAAG,EAAE,OAAO,EAAE,KAAK,EACzE,iDAAiD,CAAC,CAAC;QACrD,CAAC;QAED,IAAI,QAAQ,EAAE,CAAC;YACd,MAAM,OAAO,CAAC,qBAAqB,CAAC,QAAQ,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC;QAChE,CAAC;QAED,4DAA4D;QAC5D,gEAAgE;QAChE,oFAAoF;QACpF,MAAM,OAAO,CAAC,YAAY,CAAC,GAAG,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC;QACjD,MAAM,OAAO,CAAC,yBAAyB,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;QAEzD,4FAA4F;QAC5F,4EAA4E;QAC5E,MAAM,OAAO,CAAC,SAAS,CAAC,EAAE,QAAQ,EAAE,GAAG,EAAE,EAAE,SAAS,CAAC,MAAM,KAAK,SAAS,EAAE,KAAK,CAAC,CAAC;QAElF,sFAAsF;QACtF,2FAA2F;QAC3F,0FAA0F;QAC1F,2FAA2F;QAC3F,0DAA0D;QAC1D,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACzB,MAAM,IAAI,CAAC,4BAA4B,CAAC,OAAO,EAAE,QAAQ,EAAE,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC;QAClG,CAAC;QAED,+FAA+F;QAC/F,6FAA6F;QAC7F,yFAAyF;QACzF,iGAAiG;QACjG,iGAAiG;QACjG,8FAA8F;QAC9F,oGAAoG;QACpG,oGAAoG;QACpG,oGAAoG;QACpG,sGAAsG;QACtG,gGAAgG;QAChG,0EAA0E;QAC1E,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;YAC1B,MAAM,OAAO,CAAC,8BAA8B,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;QAC7D,CAAC;QAED,4EAA4E;QAC5E,6EAA6E;QAC7E,sEAAsE;QACtE,uEAAuE;QACvE,OAAO,QAAQ,EAAE,MAAM,CAAC,YAAY,IAAI,UAAU,EAAE,MAAM,CAAC,YAAY,CAAC;IACzE,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAgDG;IACK,KAAK,CAAC,eAAe,CAC5B,OAAgB,EAAE,QAAkB,EAAE,GAAW,EAAE,OAAsB,EAAE,KAAsB,EACjG,SAAoB,EAAE,MAA6B,EAAE,eAAwB;QAE7E,IAAI,iBAAiB,CAAC,SAAS,CAAC,EAAE,CAAC;YAClC,OAAO;QACR,CAAC;QACD,gGAAgG;QAChG,4FAA4F;QAC5F,8FAA8F;QAC9F,8BAA8B;QAC9B,MAAM,MAAM,GAAG,CAAC,MAAM,OAAO,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC,EAAE,OAAO,CAAC;QACjE,MAAM,QAAQ,GAAG,OAAO,eAAe,KAAK,QAAQ,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,SAAS,CAAC;QACnF,IAAI,MAAM,KAAK,SAAS,IAAI,QAAQ,KAAK,SAAS,IAAI,MAAM,KAAK,QAAQ,EAAE,CAAC;YAC3E,GAAG,CAAC,8EAA8E,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;YAC9H,OAAO,MAAM,IAAI,CAAC,iBAAiB,CAAC,OAAO,EAAE,QAAQ,EAAE,GAAG,EAAE,OAAO,EAAE,KAAK,EACzE,eAAe,MAAM,iCAAiC,QAAQ,WAAW,GAAG,EAAE,CAAC,CAAC;QAClF,CAAC;QACD,MAAM,SAAS,GAAG,MAAM,IAAI,QAAQ,CAAC;QACrC,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;YAC7B,+FAA+F;YAC/F,8FAA8F;YAC9F,iFAAiF;YACjF,GAAG,CAAC,gEAAgE,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,IAAI,MAAM,CAAC,CAAC;YACrH,OAAO;QACR,CAAC;QACD,IAAI,MAAM,EAAE,GAAG,KAAK,SAAS,EAAE,CAAC;YAC/B,OAAO,MAAM,IAAI,CAAC,iBAAiB,CAAC,OAAO,EAAE,QAAQ,EAAE,GAAG,EAAE,OAAO,EAAE,KAAK,EACzE,gBAAgB,MAAM,EAAE,GAAG,IAAI,MAAM,eAAe,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,UAAU,SAAS,SAAS,WAAW,GAAG,EAAE,CAAC,CAAC;QACtI,CAAC;IACF,CAAC;IAED;;;;;;;;;;;;;;;;;;OAkBG;IACK,KAAK,CAAC,gBAAgB,CAAC,OAAgB,EAAE,OAAsB,EAAE,QAAkB,EAAE,OAAkB,EAAE,MAA6B;QAC7I,IAAI,iBAAiB,CAAC,OAAO,CAAC,EAAE,CAAC;YAChC,OAAO,IAAI,CAAC;QACb,CAAC;QACD,MAAM,MAAM,GAAG,CAAC,MAAM,OAAO,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC,EAAE,OAAO,CAAC;QACjE,IAAI,MAAM,KAAK,SAAS,IAAI,MAAM,EAAE,GAAG,KAAK,MAAM,EAAE,CAAC;YACpD,OAAO,IAAI,CAAC;QACb,CAAC;QACD,GAAG,CAAC,qEAAqE,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,IAAI,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,MAAM,CAAC,CAAC;QACvI,OAAO,KAAK,CAAC;IACd,CAAC;IAED;;;;;;;;;;;;;;OAcG;IACK,KAAK,CAAC,aAAa,CAC1B,OAAgB,EAAE,OAAsB,EAAE,GAAW,EAAE,QAAkB,EAAE,KAAmC,EAC9G,KAAsB;QAEtB,IAAI,KAAK,KAAK,SAAS,IAAI,MAAM,OAAO,CAAC,aAAa,CAAC,GAAG,CAAC,KAAK,SAAS,EAAE,CAAC;YAC3E,OAAO;QACR,CAAC;QACD,IAAI,cAAkC,CAAC;QACvC,IAAI,CAAC;YACJ,cAAc,GAAG,CAAC,MAAM,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC;QACvD,CAAC;QAAC,MAAM,CAAC;YACR,cAAc,GAAG,SAAS,CAAC;QAC5B,CAAC;QACD,MAAM,IAAI,CAAC,4BAA4B,CAAC,OAAO,EAAE,QAAQ,EAAE,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,cAAc,EAAE,KAAK,CAAC,CAAC;IACxG,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;;;;OA0BG;IACK,KAAK,CAAC,4BAA4B,CACzC,OAAgB,EAChB,QAAkB,EAClB,GAAW,EACX,OAAsB,EACtB,KAAuB,EACvB,KAAyB,EACzB,KAAsB;QAEtB,IAAI,CAAC;YACJ,MAAM,cAAc,GAAG,mBAAmB,CAAC,KAAK,EAAE,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,EAAE,CAAC,CAAC;YAC9E,IAAI,cAAc,KAAK,SAAS,EAAE,CAAC;gBAClC,GAAG,CAAC,uDAAuD,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,CAAC,CAAC;gBACrF,OAAO;YACR,CAAC;YACD,yFAAyF;YACzF,uFAAuF;YACvF,MAAM,WAAW,GAAG,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,kBAAkB,CAAC,KAAK,CAAC,CAAC;YACtF,IAAI,WAAW,KAAK,cAAc,EAAE,CAAC;gBACpC,GAAG,CAAC,iFAAiF,EACpF,OAAO,EAAE,GAAG,EAAE,QAAQ,EAAE,cAAc,EAAE,WAAW,CAAC,CAAC;gBACtD,OAAO;YACR,CAAC;YACD,MAAM,OAAO,CAAC,cAAc,CAAC,GAAG,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;QACjD,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACd,GAAG,CAAC,oEAAoE,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,EAC/F,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;QACpD,CAAC;IACF,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;OAsBG;IACK,KAAK,CAAC,cAAc,CAC3B,OAAgB,EAChB,QAAkB,EAClB,GAAW,EACX,OAAsB,EACtB,MAA6B,EAC7B,KAAsB;QAEtB,IAAI,CAAC,MAAM,EAAE,CAAC;YACb,OAAO,SAAS,CAAC;QAClB,CAAC;QACD,8FAA8F;QAC9F,kGAAkG;QAClG,iGAAiG;QACjG,iGAAiG;QACjG,kGAAkG;QAClG,iGAAiG;QACjG,6FAA6F;QAC7F,+FAA+F;QAC/F,2FAA2F;QAC3F,4FAA4F;QAC5F,iGAAiG;QACjG,kDAAkD;QAClD,EAAE;QACF,qFAAqF;QACrF,4FAA4F;QAC5F,6FAA6F;QAC7F,0FAA0F;QAC1F,8FAA8F;QAC9F,+FAA+F;QAC/F,2FAA2F;QAC3F,4DAA4D;QAC5D,IAAI,CAAC;YACJ,OAAO,CAAC,MAAM,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC;QACpD,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACd,GAAG,CAAC,6DAA6D,EAAE,OAAO,EAAE,MAAM,CAAC,GAAG,EACrF,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;YACnD,OAAO,MAAM,IAAI,CAAC,iBAAiB,CAAC,OAAO,EAAE,QAAQ,EAAE,GAAG,EAAE,OAAO,EAAE,KAAK,EACzE,aAAa,MAAM,CAAC,GAAG,6BAA6B,CAAC,CAAC;QACxD,CAAC;IACF,CAAC;IAED;;;;;;;;;OASG;IACK,KAAK,CAAC,iBAAiB,CAC9B,OAAgB,EAChB,QAAkB,EAClB,GAAW,EACX,OAAsB,EACtB,KAAsB,EACtB,MAAc;QAEd,MAAM,OAAO,CAAC,wBAAwB,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;QACxD,GAAG,CAAC,6DAA6D,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;QACnG,MAAM,IAAI,wBAAwB,CAAC,OAAO,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC;IAC1D,CAAC;CACD;AAED;;;;;;;;GAQG;AACH,SAAS,mCAAmC,CAAC,OAA+D;IAC3G,MAAM,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,EAAE,OAAO,EAAE,UAAU,EAAE,EAAE,EAAE,CAC/D,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC,CAAC,CACrD,CAAC;IACF,MAAM,iBAAiB,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;IACtF,OAAO,MAAM,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,EAAE,KAAK,CAAC,EAAE,EAAE,CAClE,KAAK,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE,EAAE,EAAE;QAC5C,GAAG,CAAC,UAAU,GAAG,eAAe,CAAC,GAAG,CAAC,UAAU,EAAE,OAAO,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;QAC/E,OAAO,GAAG,CAAC;IACZ,CAAC,EAAE;QACF,QAAQ,EAAE,QAAoB;QAC9B,GAAG,EAAE,KAAK,CAAC,CAAC,CAAE,CAAC,SAAS,CAAC,GAAG,EAAE,oJAAoJ;QAClL,UAAU,EAAE,eAAe,EAAE;KAC7B,CAAC,CACF,CAAC;AACH,CAAC;AAED;wFACwF;AACxF,SAAS,SAAS,CAAC,QAAmB,EAAE,MAA2B;IAClE,IAAI,MAAM,KAAK,SAAS,IAAI,QAAQ,CAAC,CAAC,CAAC,KAAK,MAAM,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;QAClF,OAAO,QAAQ,CAAC;IACjB,CAAC;IACD,OAAO,CAAC,MAAM,EAAE,GAAG,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,MAAM,CAAC,CAAC,CAAC;AAC1D,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@optimystic/db-p2p",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.2.0",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "P2P database functionality for Optimystic",
|
|
6
6
|
"main": "dist/src/index.js",
|
|
@@ -86,7 +86,7 @@
|
|
|
86
86
|
"@multiformats/multiaddr": "^13.0.1",
|
|
87
87
|
"@noble/curves": "^2.0.1",
|
|
88
88
|
"@noble/hashes": "^2.0.1",
|
|
89
|
-
"@optimystic/db-core": "^1.
|
|
89
|
+
"@optimystic/db-core": "^1.2.0",
|
|
90
90
|
"async-mutex": "^0.5.0",
|
|
91
91
|
"debug": "^4.4.3",
|
|
92
92
|
"it-all": "^3.0.9",
|
|
@@ -363,6 +363,12 @@ export class ClusterMember implements ICluster {
|
|
|
363
363
|
// applyConsensusOperation swallowed a refusal whose real cause was a RIVAL action holding the
|
|
364
364
|
// requested revision. Pruned alongside executedTransactions (same TTL).
|
|
365
365
|
private executedCommitResults: Map<string, CommitResult> = new Map();
|
|
366
|
+
// The messageHashes whose retained commit refusal above has the BEHIND shape (missing pend or
|
|
367
|
+
// missing base — this member held no usable revision), as opposed to the ahead shape, which must
|
|
368
|
+
// never be reconciled downward. Recorded from the apply branch that produced the refusal rather
|
|
369
|
+
// than read back from its prose. Only these are eligible for reconcileRefusedCommit. Same TTL,
|
|
370
|
+
// pruning and rollback as executedCommitResults.
|
|
371
|
+
private behindCommitRefusals: Set<string> = new Set();
|
|
366
372
|
// Conflict-shaped pend refusals this member's storage produced at consensus-apply, keyed by the
|
|
367
373
|
// refused action's id rather than by messageHash. The messageHash-keyed map above cannot serve the
|
|
368
374
|
// commit-promise guard: a commit is a DIFFERENT message with a different hash, so a member holding
|
|
@@ -491,6 +497,7 @@ export class ClusterMember implements ICluster {
|
|
|
491
497
|
this.cleanupQueue.length = 0;
|
|
492
498
|
this.executedPendResults.clear();
|
|
493
499
|
this.executedCommitResults.clear();
|
|
500
|
+
this.behindCommitRefusals.clear();
|
|
494
501
|
this.refusedPendActions.clear();
|
|
495
502
|
}
|
|
496
503
|
|
|
@@ -773,12 +780,13 @@ export class ClusterMember implements ICluster {
|
|
|
773
780
|
}
|
|
774
781
|
|
|
775
782
|
/**
|
|
776
|
-
* Add this member's own apply
|
|
777
|
-
*
|
|
778
|
-
* {@link MemberApplyOutcome}:
|
|
779
|
-
*
|
|
780
|
-
*
|
|
781
|
-
*
|
|
783
|
+
* Add this member's own apply report to a record's {@link ClusterRecord.applyOutcomes}, when it
|
|
784
|
+
* has anything to report for this transaction. The fields follow the rules on
|
|
785
|
+
* {@link MemberApplyOutcome}: `executed` is set once this member has run the consensus apply; the
|
|
786
|
+
* pend arm carries ONLY a conflict-shaped refusal (a success, a bare-reason fault, or no retained
|
|
787
|
+
* verdict leaves it off — the coordinator's rule is "an entry means retry", so an entry that does
|
|
788
|
+
* not mean retry must not exist); the commit arm carries the retained durable verdict whatever it
|
|
789
|
+
* says, because the coordinator counts the successes.
|
|
782
790
|
*
|
|
783
791
|
* The member never signs this and never writes another peer's entry.
|
|
784
792
|
*/
|
|
@@ -786,6 +794,7 @@ export class ClusterMember implements ICluster {
|
|
|
786
794
|
const pend = this.executedPendResults.get(record.messageHash);
|
|
787
795
|
const commit = this.executedCommitResults.get(record.messageHash);
|
|
788
796
|
const own: MemberApplyOutcome = {
|
|
797
|
+
...(this.executedTransactions.has(record.messageHash) ? { executed: true } : {}),
|
|
789
798
|
...(pend !== undefined && !pend.success && isConflictFailure(pend) ? { pend } : {}),
|
|
790
799
|
...(commit !== undefined ? { commit } : {})
|
|
791
800
|
};
|
|
@@ -2295,14 +2304,14 @@ export class ClusterMember implements ICluster {
|
|
|
2295
2304
|
// Check persistent store first for post-recovery dedup (in-memory map is cleared on restart).
|
|
2296
2305
|
// wasTransactionExecutedAsync also checks the in-memory map as a fast path.
|
|
2297
2306
|
if (await this.wasTransactionExecutedAsync(record.messageHash)) {
|
|
2298
|
-
|
|
2307
|
+
await this.handleAlreadyExecuted(record);
|
|
2299
2308
|
return;
|
|
2300
2309
|
}
|
|
2301
2310
|
// Check-and-set ATOMICALLY to prevent race condition where multiple calls
|
|
2302
2311
|
// pass the async check before any completes. Since JavaScript is single-threaded,
|
|
2303
2312
|
// this synchronous check-and-set is atomic before any await.
|
|
2304
2313
|
if (this.executedTransactions.has(record.messageHash)) {
|
|
2305
|
-
|
|
2314
|
+
await this.handleAlreadyExecuted(record);
|
|
2306
2315
|
return;
|
|
2307
2316
|
}
|
|
2308
2317
|
// Set the in-memory guard IMMEDIATELY, before any async operations: its synchronous
|
|
@@ -2329,6 +2338,7 @@ export class ClusterMember implements ICluster {
|
|
|
2329
2338
|
this.executedTransactions.delete(record.messageHash);
|
|
2330
2339
|
this.executedPendResults.delete(record.messageHash);
|
|
2331
2340
|
this.executedCommitResults.delete(record.messageHash);
|
|
2341
|
+
this.behindCommitRefusals.delete(record.messageHash);
|
|
2332
2342
|
for (const operation of record.message.operations) {
|
|
2333
2343
|
if ('pend' in operation) this.refusedPendActions.delete(operation.pend.actionId);
|
|
2334
2344
|
}
|
|
@@ -2349,6 +2359,20 @@ export class ClusterMember implements ICluster {
|
|
|
2349
2359
|
.catch(err => log('cluster-member:persist-executed-error', { messageHash: record.messageHash, error: (err as Error).message }));
|
|
2350
2360
|
}
|
|
2351
2361
|
|
|
2362
|
+
/**
|
|
2363
|
+
* A delivery of a record this member already applied. Nothing is applied again, but a retained
|
|
2364
|
+
* behind-shaped commit refusal gets one more reconcile ({@link reconcileRefusedCommit}, a no-op for
|
|
2365
|
+
* every other verdict). This is how a behind remote member heals when it applied on receipt of the
|
|
2366
|
+
* commit round, before the coordinating member held the revision: the coordinator re-sends it the
|
|
2367
|
+
* merged record once its own member has applied, and this delivery's response carries the
|
|
2368
|
+
* refreshed verdict (`withOwnApplyOutcome`), which the durability gate reads. A scheduled commit
|
|
2369
|
+
* retry reaching such a member heals it the same way.
|
|
2370
|
+
*/
|
|
2371
|
+
private async handleAlreadyExecuted(record: ClusterRecord): Promise<void> {
|
|
2372
|
+
log('cluster-member:consensus-already-executed', { messageHash: record.messageHash });
|
|
2373
|
+
await this.reconcileRefusedCommit(record);
|
|
2374
|
+
}
|
|
2375
|
+
|
|
2352
2376
|
/**
|
|
2353
2377
|
* Applies one consensus-approved operation to local storage.
|
|
2354
2378
|
*
|
|
@@ -2476,7 +2500,7 @@ export class ClusterMember implements ICluster {
|
|
|
2476
2500
|
membershipVersion: record.membershipVersion
|
|
2477
2501
|
});
|
|
2478
2502
|
}
|
|
2479
|
-
const applied = await this.applyCommitToStorage(record, commit, proof);
|
|
2503
|
+
const { applied, behind } = await this.applyCommitToStorage(record, commit, proof);
|
|
2480
2504
|
// Retain the POST-RECONCILE durable verdict (see getExecutedCommitResult and
|
|
2481
2505
|
// withOwnApplyOutcome): what this member's storage holds NOW, after any behind-reconcile the
|
|
2482
2506
|
// apply triggered — not what the first apply attempt said. A member that pulled the
|
|
@@ -2485,9 +2509,7 @@ export class ClusterMember implements ICluster {
|
|
|
2485
2509
|
// verdicts — its own member's through getExecutedCommitResult, every other member's off the
|
|
2486
2510
|
// response record — and the two readers must see the same answer, hence one verdict,
|
|
2487
2511
|
// computed once, retained here for both.
|
|
2488
|
-
|
|
2489
|
-
this.executedCommitResults.set(messageHash, verdict);
|
|
2490
|
-
if (verdict.success) this.reportCommittedHolders(record, commit);
|
|
2512
|
+
this.retainCommitVerdict(record, commit, await this.durableCommitVerdict(commit, applied), behind);
|
|
2491
2513
|
return;
|
|
2492
2514
|
}
|
|
2493
2515
|
if ('invalidate' in operation) {
|
|
@@ -2499,12 +2521,14 @@ export class ClusterMember implements ICluster {
|
|
|
2499
2521
|
/**
|
|
2500
2522
|
* Apply one consensus commit to local storage, tolerating every divergence shape the way the
|
|
2501
2523
|
* doc comment on {@link applyConsensusOperation} describes and reconciling the behind ones.
|
|
2502
|
-
*
|
|
2524
|
+
* `applied` is storage's own result — or, for the thrown missing-pend shape, which produces no
|
|
2503
2525
|
* `CommitResult` at all, a refusal built from the throw — so {@link durableCommitVerdict} works
|
|
2504
|
-
* from one uniform shape.
|
|
2505
|
-
*
|
|
2526
|
+
* from one uniform shape. `behind` is true exactly when one of the two behind branches ran, which
|
|
2527
|
+
* is what makes a refusal eligible for {@link reconcileRefusedCommit}. Genuine faults (a
|
|
2528
|
+
* bare-reason returned failure, an unrecognized throw) propagate so {@link handleConsensus} rolls
|
|
2529
|
+
* back the executed marker and rethrows.
|
|
2506
2530
|
*/
|
|
2507
|
-
private async applyCommitToStorage(record: ClusterRecord, commit: CommitRequest, proof: BlockCommitProof | undefined): Promise<CommitResult> {
|
|
2531
|
+
private async applyCommitToStorage(record: ClusterRecord, commit: CommitRequest, proof: BlockCommitProof | undefined): Promise<{ applied: CommitResult; behind: boolean }> {
|
|
2508
2532
|
const messageHash = record.messageHash;
|
|
2509
2533
|
let result: CommitResult;
|
|
2510
2534
|
try {
|
|
@@ -2524,12 +2548,12 @@ export class ClusterMember implements ICluster {
|
|
|
2524
2548
|
// cohort peer so the block is no longer under-replicated. Best-effort:
|
|
2525
2549
|
// failures are logged inside, never thrown (a throw would reset the stream).
|
|
2526
2550
|
await this.reconcileDivergentCommit(record, commit);
|
|
2527
|
-
return { success: false, reason: (err as Error).message };
|
|
2551
|
+
return { applied: { success: false, reason: (err as Error).message }, behind: true };
|
|
2528
2552
|
}
|
|
2529
2553
|
throw err;
|
|
2530
2554
|
}
|
|
2531
2555
|
if (result.success) {
|
|
2532
|
-
return result;
|
|
2556
|
+
return { applied: result, behind: false };
|
|
2533
2557
|
}
|
|
2534
2558
|
// success:false is a StaleFailure. `missing` ⇒ ahead/stale divergence
|
|
2535
2559
|
// (we already hold ≥ this rev): tolerate, do NOT reconcile downward. A
|
|
@@ -2559,7 +2583,7 @@ export class ClusterMember implements ICluster {
|
|
|
2559
2583
|
reason: result.reason,
|
|
2560
2584
|
hasMissing: true
|
|
2561
2585
|
});
|
|
2562
|
-
return result;
|
|
2586
|
+
return { applied: result, behind: false };
|
|
2563
2587
|
}
|
|
2564
2588
|
// This member holds no materializable base for one of the blocks, so
|
|
2565
2589
|
// `StorageRepo.commit` REFUSED rather than record a revision it could never serve.
|
|
@@ -2575,11 +2599,66 @@ export class ClusterMember implements ICluster {
|
|
|
2575
2599
|
reason: result.reason
|
|
2576
2600
|
});
|
|
2577
2601
|
await this.reconcileDivergentCommit(record, commit);
|
|
2578
|
-
return result;
|
|
2602
|
+
return { applied: result, behind: true };
|
|
2579
2603
|
}
|
|
2580
2604
|
throw new Error(`Consensus commit for action ${commit.actionId} failed: ${result.reason ?? 'unknown reason'}`);
|
|
2581
2605
|
}
|
|
2582
2606
|
|
|
2607
|
+
/**
|
|
2608
|
+
* Retain `verdict` as this member's durable verdict for `record`'s commit (see
|
|
2609
|
+
* {@link executedCommitResults}), remember whether a refusal was the behind shape, and — once the
|
|
2610
|
+
* verdict is a success — report the committed holders. Shared by the consensus apply and
|
|
2611
|
+
* {@link reconcileRefusedCommit} so both leave the same state behind.
|
|
2612
|
+
*/
|
|
2613
|
+
private retainCommitVerdict(record: ClusterRecord, commit: CommitRequest, verdict: CommitResult, behind: boolean): void {
|
|
2614
|
+
this.executedCommitResults.set(record.messageHash, verdict);
|
|
2615
|
+
if (verdict.success) {
|
|
2616
|
+
this.behindCommitRefusals.delete(record.messageHash);
|
|
2617
|
+
this.reportCommittedHolders(record, commit);
|
|
2618
|
+
} else if (behind) {
|
|
2619
|
+
this.behindCommitRefusals.add(record.messageHash);
|
|
2620
|
+
}
|
|
2621
|
+
}
|
|
2622
|
+
|
|
2623
|
+
/**
|
|
2624
|
+
* One more reconcile for a commit this member already applied at consensus but could not hold:
|
|
2625
|
+
* its retained verdict is a BEHIND-shaped refusal (missing pend or missing base), and the
|
|
2626
|
+
* reconcile that ran during the apply found no cohort peer holding the revision yet. Two callers.
|
|
2627
|
+
* The coordinating node calls it for its own member once a remote member reports holding the
|
|
2628
|
+
* revision (`ClusterCoordinator.broadcastMergedRecord`), for a cohort where the remote members
|
|
2629
|
+
* applied after it did. And every member runs it on a redelivery of a record it already applied
|
|
2630
|
+
* ({@link handleAlreadyExecuted}), which is how a remote member that applied on receipt of the
|
|
2631
|
+
* commit round, before anyone held the revision, heals once the coordinator re-sends it the merged
|
|
2632
|
+
* record. The holder's copy carries the cohort's commit proof, so the existing certified
|
|
2633
|
+
* single-holder path adopts it; no new trust is involved.
|
|
2634
|
+
*
|
|
2635
|
+
* Does nothing unless the retained verdict for `record.messageHash` is a behind refusal; in
|
|
2636
|
+
* particular an ahead-shaped refusal (`missing`) is never reconciled downward. Recomputes and
|
|
2637
|
+
* re-retains the durable verdict afterwards, so `getExecutedCommitResult` then answers a success
|
|
2638
|
+
* when the revision landed. Bounded by the same per-block reconcile timeout and never throws.
|
|
2639
|
+
*/
|
|
2640
|
+
async reconcileRefusedCommit(record: ClusterRecord): Promise<void> {
|
|
2641
|
+
const messageHash = record.messageHash;
|
|
2642
|
+
const refused = this.executedCommitResults.get(messageHash);
|
|
2643
|
+
if (refused === undefined || refused.success || !this.behindCommitRefusals.has(messageHash)) {
|
|
2644
|
+
return;
|
|
2645
|
+
}
|
|
2646
|
+
const operation = record.message.operations.find((op): op is { commit: CommitRequest } => 'commit' in op);
|
|
2647
|
+
if (operation === undefined) {
|
|
2648
|
+
return;
|
|
2649
|
+
}
|
|
2650
|
+
const commit = operation.commit;
|
|
2651
|
+
log('cluster-member:consensus-commit-reconcile-again', { messageHash, actionId: commit.actionId, rev: commit.rev });
|
|
2652
|
+
await this.reconcileDivergentCommit(record, commit);
|
|
2653
|
+
const verdict = await this.durableCommitVerdict(commit, refused);
|
|
2654
|
+
// The apply's retention may have been pruned or rolled back while the reconcile ran; never
|
|
2655
|
+
// resurrect it.
|
|
2656
|
+
if (this.executedCommitResults.get(messageHash) !== refused) {
|
|
2657
|
+
return;
|
|
2658
|
+
}
|
|
2659
|
+
this.retainCommitVerdict(record, commit, verdict, true);
|
|
2660
|
+
}
|
|
2661
|
+
|
|
2583
2662
|
/**
|
|
2584
2663
|
* The durable verdict for a consensus commit: `applied` itself when storage landed it (a
|
|
2585
2664
|
* success from `StorageRepo.commit` means every block is committed, or already was, under this
|
|
@@ -2722,6 +2801,16 @@ export class ClusterMember implements ICluster {
|
|
|
2722
2801
|
* **synchronous** (no `await` here) so the cert is retained before `StorageRepo.commit` emits its
|
|
2723
2802
|
* change event. No-op (zero cost) when no sink is configured; a throwing sink is isolated + logged so
|
|
2724
2803
|
* it can never break consensus.
|
|
2804
|
+
*
|
|
2805
|
+
* A record carrying fewer approving commit signatures than `minSigs` retains no cert, so the bridge
|
|
2806
|
+
* skips origination on this member rather than forwarding a cert below its own threshold. Consensus
|
|
2807
|
+
* needs only a simple majority of commits, so a member can apply with fewer.
|
|
2808
|
+
*
|
|
2809
|
+
* NOTE: in a three-member cohort that is the ordinary case for the two remote members. Each applies
|
|
2810
|
+
* on receipt of the commit round holding its own commit and the coordinator's (2 of `minSigs` 3), and
|
|
2811
|
+
* the coordinator does not broadcast the full set to a member that already applied, so only the
|
|
2812
|
+
* coordinating member, which applies with every commit merged, originates. If origination from the
|
|
2813
|
+
* other members is ever needed, have the coordinator deliver the merged record to them too.
|
|
2725
2814
|
*/
|
|
2726
2815
|
private captureCommitCert(record: ClusterRecord, actionId: ActionId, signedPayload: Uint8Array): void {
|
|
2727
2816
|
if (!this.onCommitCertificate) {
|
|
@@ -2729,7 +2818,12 @@ export class ClusterMember implements ICluster {
|
|
|
2729
2818
|
}
|
|
2730
2819
|
const minSigs = Math.ceil(Object.keys(record.peers).length * this.superMajorityThreshold);
|
|
2731
2820
|
try {
|
|
2732
|
-
|
|
2821
|
+
const cert = buildCommitCert(record, minSigs, signedPayload);
|
|
2822
|
+
if (cert.signers.length < minSigs) {
|
|
2823
|
+
log('cluster-member:commit-cert-below-threshold', { actionId, signers: cert.signers.length, minSigs });
|
|
2824
|
+
return;
|
|
2825
|
+
}
|
|
2826
|
+
this.onCommitCertificate(actionId, cert);
|
|
2733
2827
|
} catch (err) {
|
|
2734
2828
|
log('cluster-member:commit-cert-sink-error', { actionId, error: (err as Error).message });
|
|
2735
2829
|
}
|
|
@@ -2982,6 +3076,7 @@ export class ClusterMember implements ICluster {
|
|
|
2982
3076
|
this.executedTransactions.delete(messageHash);
|
|
2983
3077
|
this.executedPendResults.delete(messageHash);
|
|
2984
3078
|
this.executedCommitResults.delete(messageHash);
|
|
3079
|
+
this.behindCommitRefusals.delete(messageHash);
|
|
2985
3080
|
}
|
|
2986
3081
|
}
|
|
2987
3082
|
// Prune actionId-keyed pend refusals on the same TTL as the verdicts they were derived from.
|