@keplr-wallet/background 0.12.53 → 0.12.54-rc.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/build/recent-send-history/service.d.ts +2 -0
- package/build/recent-send-history/service.js +200 -14
- package/build/recent-send-history/service.js.map +1 -1
- package/build/recent-send-history/types.d.ts +1 -0
- package/package.json +13 -13
- package/src/recent-send-history/service.ts +278 -26
- package/src/recent-send-history/types.ts +1 -0
|
@@ -73,6 +73,8 @@ export declare class RecentSendHistoryService {
|
|
|
73
73
|
denom: string;
|
|
74
74
|
}[];
|
|
75
75
|
protected getIBCAcknowledgementPacketIndexFromTx(tx: any, sourcePortId: string, sourceChannelId: string, sequence: string): number;
|
|
76
|
+
protected getIBCTimeoutPacketIndexFromTx(tx: any, sourcePortId: string, sourceChannelId: string, sequence: string): number;
|
|
77
|
+
protected getLastIBCTimeoutPacketBeforeIndexFromTx(tx: any, index: number): number;
|
|
76
78
|
protected getIBCRecvPacketIndexFromTx(tx: any, sourcePortId: string, sourceChannelId: string, sequence: string): number;
|
|
77
79
|
protected getIBCPacketSequenceFromTx(tx: any, sourcePortId: string, sourceChannelId: string, startingEventIndex?: number): string;
|
|
78
80
|
protected readonly onChainRemoved: (chainInfo: ChainInfo) => void;
|
|
@@ -52,8 +52,12 @@ class RecentSendHistoryService {
|
|
|
52
52
|
}
|
|
53
53
|
return history.ibcHistory.find((h) => h.error != null) != null;
|
|
54
54
|
})();
|
|
55
|
-
if (needRewind
|
|
56
|
-
|
|
55
|
+
if (needRewind) {
|
|
56
|
+
if (history.ibcHistory.find((h) => h.rewoundButNextRewindingBlocked)) {
|
|
57
|
+
onFulfill();
|
|
58
|
+
return;
|
|
59
|
+
}
|
|
60
|
+
const isTimeoutPacket = history.packetTimeout || false;
|
|
57
61
|
const lastRewoundChannelIndex = history.ibcHistory.findIndex((h) => {
|
|
58
62
|
if (h.rewound) {
|
|
59
63
|
return true;
|
|
@@ -88,11 +92,17 @@ class RecentSendHistoryService {
|
|
|
88
92
|
txTracer.addEventListener("close", onClose);
|
|
89
93
|
txTracer.addEventListener("error", onError);
|
|
90
94
|
txTracer
|
|
91
|
-
.traceTx(
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
95
|
+
.traceTx(isTimeoutPacket
|
|
96
|
+
? {
|
|
97
|
+
// "timeout_packet.packet_src_port": targetChannel.portId,
|
|
98
|
+
"timeout_packet.packet_src_channel": targetChannel.channelId,
|
|
99
|
+
"timeout_packet.packet_sequence": targetChannel.sequence,
|
|
100
|
+
}
|
|
101
|
+
: {
|
|
102
|
+
// "acknowledge_packet.packet_src_port": targetChannel.portId,
|
|
103
|
+
"acknowledge_packet.packet_src_channel": targetChannel.channelId,
|
|
104
|
+
"acknowledge_packet.packet_sequence": targetChannel.sequence,
|
|
105
|
+
})
|
|
96
106
|
.then((res) => {
|
|
97
107
|
txTracer.close();
|
|
98
108
|
if (!res) {
|
|
@@ -106,9 +116,20 @@ class RecentSendHistoryService {
|
|
|
106
116
|
if (txs && Array.isArray(txs)) {
|
|
107
117
|
for (const tx of txs) {
|
|
108
118
|
if (targetChannel.sequence && "swapReceiver" in history) {
|
|
109
|
-
const index =
|
|
119
|
+
const index = isTimeoutPacket
|
|
120
|
+
? this.getIBCTimeoutPacketIndexFromTx(tx, targetChannel.portId, targetChannel.channelId, targetChannel.sequence)
|
|
121
|
+
: this.getIBCAcknowledgementPacketIndexFromTx(tx, targetChannel.portId, targetChannel.channelId, targetChannel.sequence);
|
|
110
122
|
if (index >= 0) {
|
|
111
|
-
|
|
123
|
+
// 좀 빡치게 timeout packet은 refund 로직이 실행되고 나서 "timeout_packet" event가 발생한다.
|
|
124
|
+
const refunded = isTimeoutPacket
|
|
125
|
+
? this.getIBCSwapResAmountFromTx(tx, history.swapReceiver[history.swapChannelIndex + 1], (() => {
|
|
126
|
+
const i = this.getLastIBCTimeoutPacketBeforeIndexFromTx(tx, index);
|
|
127
|
+
if (i < 0) {
|
|
128
|
+
return 0;
|
|
129
|
+
}
|
|
130
|
+
return i;
|
|
131
|
+
})(), index)
|
|
132
|
+
: this.getIBCSwapResAmountFromTx(tx, history.swapReceiver[history.swapChannelIndex + 1], index);
|
|
112
133
|
history.swapRefundInfo = {
|
|
113
134
|
chainId: prevChainInfo.chainId,
|
|
114
135
|
amount: refunded,
|
|
@@ -174,6 +195,46 @@ class RecentSendHistoryService {
|
|
|
174
195
|
? history.ibcHistory[targetChannelIndex + 1]
|
|
175
196
|
: undefined;
|
|
176
197
|
if (targetChannel && targetChannel.sequence) {
|
|
198
|
+
const closables = [];
|
|
199
|
+
let _onFulfillOnce = false;
|
|
200
|
+
const onFulfillOnce = () => {
|
|
201
|
+
if (!_onFulfillOnce) {
|
|
202
|
+
_onFulfillOnce = true;
|
|
203
|
+
closables.forEach((closable) => {
|
|
204
|
+
if (closable.readyState === cosmos_1.WsReadyState.OPEN ||
|
|
205
|
+
closable.readyState === cosmos_1.WsReadyState.CONNECTING) {
|
|
206
|
+
closable.close();
|
|
207
|
+
}
|
|
208
|
+
});
|
|
209
|
+
onFulfill();
|
|
210
|
+
}
|
|
211
|
+
};
|
|
212
|
+
let _onCloseOnce = false;
|
|
213
|
+
const onCloseOnce = () => {
|
|
214
|
+
if (!_onCloseOnce) {
|
|
215
|
+
_onCloseOnce = true;
|
|
216
|
+
closables.forEach((closable) => {
|
|
217
|
+
if (closable.readyState === cosmos_1.WsReadyState.OPEN ||
|
|
218
|
+
closable.readyState === cosmos_1.WsReadyState.CONNECTING) {
|
|
219
|
+
closable.close();
|
|
220
|
+
}
|
|
221
|
+
});
|
|
222
|
+
onClose();
|
|
223
|
+
}
|
|
224
|
+
};
|
|
225
|
+
let _onErrorOnce = false;
|
|
226
|
+
const onErrorOnce = () => {
|
|
227
|
+
if (!_onErrorOnce) {
|
|
228
|
+
_onErrorOnce = true;
|
|
229
|
+
closables.forEach((closable) => {
|
|
230
|
+
if (closable.readyState === cosmos_1.WsReadyState.OPEN ||
|
|
231
|
+
closable.readyState === cosmos_1.WsReadyState.CONNECTING) {
|
|
232
|
+
closable.close();
|
|
233
|
+
}
|
|
234
|
+
});
|
|
235
|
+
onError();
|
|
236
|
+
}
|
|
237
|
+
};
|
|
177
238
|
const chainInfo = this.chainsService.getChainInfo(targetChannel.counterpartyChainId);
|
|
178
239
|
if (chainInfo) {
|
|
179
240
|
const queryEvents = {
|
|
@@ -182,8 +243,9 @@ class RecentSendHistoryService {
|
|
|
182
243
|
"recv_packet.packet_sequence": targetChannel.sequence,
|
|
183
244
|
};
|
|
184
245
|
const txTracer = new cosmos_1.TendermintTxTracer(chainInfo.rpc, "/websocket");
|
|
185
|
-
|
|
186
|
-
txTracer.addEventListener("
|
|
246
|
+
closables.push(txTracer);
|
|
247
|
+
txTracer.addEventListener("close", onCloseOnce);
|
|
248
|
+
txTracer.addEventListener("error", onErrorOnce);
|
|
187
249
|
txTracer.traceTx(queryEvents).then((res) => {
|
|
188
250
|
txTracer.close();
|
|
189
251
|
if (!res) {
|
|
@@ -206,7 +268,7 @@ class RecentSendHistoryService {
|
|
|
206
268
|
// XXX: {key: 'packet_ack', value: '{"error":"ABCI code: 6: error handling packet: see events for details"}'}
|
|
207
269
|
// 오류가 있을 경우 이딴식으로 오류가 나오기 때문에 뭐 유저에게 보여줄 방법이 없다...
|
|
208
270
|
targetChannel.error = "Packet processing failed";
|
|
209
|
-
|
|
271
|
+
onFulfillOnce();
|
|
210
272
|
this.trackIBCPacketForwardingRecursive(id);
|
|
211
273
|
break;
|
|
212
274
|
}
|
|
@@ -227,7 +289,7 @@ class RecentSendHistoryService {
|
|
|
227
289
|
}
|
|
228
290
|
if (nextChannel) {
|
|
229
291
|
nextChannel.sequence = this.getIBCPacketSequenceFromTx(tx, nextChannel.portId, nextChannel.channelId, index);
|
|
230
|
-
|
|
292
|
+
onFulfillOnce();
|
|
231
293
|
this.trackIBCPacketForwardingRecursive(id);
|
|
232
294
|
break;
|
|
233
295
|
}
|
|
@@ -288,7 +350,7 @@ class RecentSendHistoryService {
|
|
|
288
350
|
}
|
|
289
351
|
}
|
|
290
352
|
}
|
|
291
|
-
|
|
353
|
+
onFulfillOnce();
|
|
292
354
|
break;
|
|
293
355
|
}
|
|
294
356
|
}
|
|
@@ -301,6 +363,47 @@ class RecentSendHistoryService {
|
|
|
301
363
|
}
|
|
302
364
|
});
|
|
303
365
|
}
|
|
366
|
+
let prevChainId = "";
|
|
367
|
+
if (targetChannelIndex > 0) {
|
|
368
|
+
prevChainId =
|
|
369
|
+
history.ibcHistory[targetChannelIndex - 1].counterpartyChainId;
|
|
370
|
+
}
|
|
371
|
+
else {
|
|
372
|
+
prevChainId = history.chainId;
|
|
373
|
+
}
|
|
374
|
+
if (prevChainId) {
|
|
375
|
+
const prevChainInfo = this.chainsService.getChainInfo(prevChainId);
|
|
376
|
+
if (prevChainInfo) {
|
|
377
|
+
const queryEvents = {
|
|
378
|
+
// acknowledge_packet과는 다르게 timeout_packet은 이전의 체인의 이벤트로부터만 알 수 있다.
|
|
379
|
+
// 방법이 없기 때문에 여기서 이전의 체인으로부터 subscribe를 해서 이벤트를 받아야 한다.
|
|
380
|
+
// 하지만 이 경우 ibc error tracking 로직에서 이것과 똑같은 subscription을 한번 더 하게 된다.
|
|
381
|
+
// 이미 로직이 많이 복잡하기 때문에 로직을 덜 복잡하게 하기 위해서 이러한 비효율성(?)을 감수한다.
|
|
382
|
+
// "timeout_packet.packet_src_port": targetChannel.portId,
|
|
383
|
+
"timeout_packet.packet_src_channel": targetChannel.channelId,
|
|
384
|
+
"timeout_packet.packet_sequence": targetChannel.sequence,
|
|
385
|
+
};
|
|
386
|
+
const txTracer = new cosmos_1.TendermintTxTracer(prevChainInfo.rpc, "/websocket");
|
|
387
|
+
closables.push(txTracer);
|
|
388
|
+
txTracer.addEventListener("close", onCloseOnce);
|
|
389
|
+
txTracer.addEventListener("error", onErrorOnce);
|
|
390
|
+
txTracer.traceTx(queryEvents).then((res) => {
|
|
391
|
+
txTracer.close();
|
|
392
|
+
if (!res) {
|
|
393
|
+
return;
|
|
394
|
+
}
|
|
395
|
+
// 이 event가 발생한 시점에서 이미 timeout packet은 받은 상태이고
|
|
396
|
+
// 이 경우 따로 정보를 얻을 필요는 없으므로 이후에 res를 쓰지는 않는다.
|
|
397
|
+
// 위에 res null check는 사실 필요 없지만 혹시나 해서 넣어둔다.
|
|
398
|
+
(0, mobx_1.runInAction)(() => {
|
|
399
|
+
targetChannel.error = "Packet timeout";
|
|
400
|
+
history.packetTimeout = true;
|
|
401
|
+
onFulfillOnce();
|
|
402
|
+
this.trackIBCPacketForwardingRecursive(id);
|
|
403
|
+
});
|
|
404
|
+
});
|
|
405
|
+
}
|
|
406
|
+
}
|
|
304
407
|
}
|
|
305
408
|
}
|
|
306
409
|
};
|
|
@@ -741,6 +844,89 @@ class RecentSendHistoryService {
|
|
|
741
844
|
}
|
|
742
845
|
return events.indexOf(packetEvent);
|
|
743
846
|
}
|
|
847
|
+
getIBCTimeoutPacketIndexFromTx(tx, sourcePortId, sourceChannelId, sequence) {
|
|
848
|
+
const events = tx.events;
|
|
849
|
+
if (!events) {
|
|
850
|
+
throw new Error("Invalid tx");
|
|
851
|
+
}
|
|
852
|
+
if (!Array.isArray(events)) {
|
|
853
|
+
throw new Error("Invalid tx");
|
|
854
|
+
}
|
|
855
|
+
// In injective, events from tendermint rpc is not encoded as base64.
|
|
856
|
+
// I don't know that this is the difference from tendermint version, or just custom from injective.
|
|
857
|
+
const compareStringWithBase64OrPlain = (target, value) => {
|
|
858
|
+
if (target === value) {
|
|
859
|
+
return [true, false];
|
|
860
|
+
}
|
|
861
|
+
if (target === buffer_1.Buffer.from(value).toString("base64")) {
|
|
862
|
+
return [true, true];
|
|
863
|
+
}
|
|
864
|
+
return [false, false];
|
|
865
|
+
};
|
|
866
|
+
const packetEvent = events.find((event) => {
|
|
867
|
+
if (event.type !== "timeout_packet") {
|
|
868
|
+
return false;
|
|
869
|
+
}
|
|
870
|
+
const sourcePortAttr = event.attributes.find((attr) => {
|
|
871
|
+
return compareStringWithBase64OrPlain(attr.key, "packet_src_port")[0];
|
|
872
|
+
});
|
|
873
|
+
if (!sourcePortAttr) {
|
|
874
|
+
return false;
|
|
875
|
+
}
|
|
876
|
+
const sourceChannelAttr = event.attributes.find((attr) => {
|
|
877
|
+
return compareStringWithBase64OrPlain(attr.key, "packet_src_channel")[0];
|
|
878
|
+
});
|
|
879
|
+
if (!sourceChannelAttr) {
|
|
880
|
+
return false;
|
|
881
|
+
}
|
|
882
|
+
let isBase64 = false;
|
|
883
|
+
const sequenceAttr = event.attributes.find((attr) => {
|
|
884
|
+
const c = compareStringWithBase64OrPlain(attr.key, "packet_sequence");
|
|
885
|
+
isBase64 = c[1];
|
|
886
|
+
return c[0];
|
|
887
|
+
});
|
|
888
|
+
if (!sequenceAttr) {
|
|
889
|
+
return false;
|
|
890
|
+
}
|
|
891
|
+
if (isBase64) {
|
|
892
|
+
return (buffer_1.Buffer.from(sourcePortAttr.value, "base64").toString() ===
|
|
893
|
+
sourcePortId &&
|
|
894
|
+
buffer_1.Buffer.from(sourceChannelAttr.value, "base64").toString() ===
|
|
895
|
+
sourceChannelId &&
|
|
896
|
+
buffer_1.Buffer.from(sequenceAttr.value, "base64").toString() === sequence);
|
|
897
|
+
}
|
|
898
|
+
else {
|
|
899
|
+
return (sourcePortAttr.value === sourcePortId &&
|
|
900
|
+
sourceChannelAttr.value === sourceChannelId &&
|
|
901
|
+
sequenceAttr.value === sequence);
|
|
902
|
+
}
|
|
903
|
+
});
|
|
904
|
+
if (!packetEvent) {
|
|
905
|
+
return -1;
|
|
906
|
+
}
|
|
907
|
+
return events.indexOf(packetEvent);
|
|
908
|
+
}
|
|
909
|
+
getLastIBCTimeoutPacketBeforeIndexFromTx(tx, index) {
|
|
910
|
+
const events = tx.events;
|
|
911
|
+
if (!events) {
|
|
912
|
+
throw new Error("Invalid tx");
|
|
913
|
+
}
|
|
914
|
+
if (!Array.isArray(events)) {
|
|
915
|
+
throw new Error("Invalid tx");
|
|
916
|
+
}
|
|
917
|
+
const reversedIndex = events
|
|
918
|
+
.slice(0, index)
|
|
919
|
+
.reverse()
|
|
920
|
+
.findIndex((event) => {
|
|
921
|
+
if (event.type === "timeout_packet") {
|
|
922
|
+
return true;
|
|
923
|
+
}
|
|
924
|
+
});
|
|
925
|
+
if (reversedIndex >= 0) {
|
|
926
|
+
return index - reversedIndex - 1;
|
|
927
|
+
}
|
|
928
|
+
return -1;
|
|
929
|
+
}
|
|
744
930
|
getIBCRecvPacketIndexFromTx(tx, sourcePortId, sourceChannelId, sequence) {
|
|
745
931
|
const events = tx.events;
|
|
746
932
|
if (!events) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"service.js","sourceRoot":"","sources":["../../src/recent-send-history/service.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"service.js","sourceRoot":"","sources":["../../src/recent-send-history/service.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;AACA,iDAK8B;AAE9B,+BAOc;AACd,iDAAsD;AAEtD,oCAAiC;AAEjC,6CAAgD;AAEhD,MAAa,wBAAwB;IAYnC,YACqB,OAAgB,EAChB,aAA4B,EAC5B,SAA8B,EAC9B,YAA0B;QAH1B,YAAO,GAAP,OAAO,CAAS;QAChB,kBAAa,GAAb,aAAa,CAAe;QAC5B,cAAS,GAAT,SAAS,CAAqB;QAC9B,iBAAY,GAAZ,YAAY,CAAc;QAf/C,iCAAiC;QAEd,yBAAoB,GACrC,IAAI,GAAG,EAAE,CAAC;QAGF,wBAAmB,GAAW,CAAC,CAAC;QAC1C,2DAA2D;QAExC,wBAAmB,GAA4B,IAAI,GAAG,EAAE,CAAC;QA2P5E,kDAAkD;QAClD,8BAA8B;QAC9B,wCAAwC;QACxC,iDAAiD;QACjD,wCAAwC;QAC9B,8CAAyC,GAAG,CACpD,EAAU,EACV,SAAqB,EACrB,OAAmB,EACnB,OAAmB,EACb,EAAE;YACR,MAAM,OAAO,GAAG,IAAI,CAAC,mBAAmB,CAAC,EAAE,CAAC,CAAC;YAC7C,IAAI,CAAC,OAAO,EAAE;gBACZ,SAAS,EAAE,CAAC;gBACZ,OAAO;aACR;YAED,MAAM,UAAU,GAAG,CAAC,GAAG,EAAE;gBACvB,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE;oBACxB,OAAO,KAAK,CAAC;iBACd;gBAED,IAAI,OAAO,CAAC,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE;oBACnC,OAAO,KAAK,CAAC;iBACd;gBAED,OAAO,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,IAAI,IAAI,CAAC,IAAI,IAAI,CAAC;YACjE,CAAC,CAAC,EAAE,CAAC;YAEL,IAAI,UAAU,EAAE;gBACd,IAAI,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,8BAA8B,CAAC,EAAE;oBACpE,SAAS,EAAE,CAAC;oBACZ,OAAO;iBACR;gBACD,MAAM,eAAe,GAAG,OAAO,CAAC,aAAa,IAAI,KAAK,CAAC;gBACvD,MAAM,uBAAuB,GAAG,OAAO,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE;oBACjE,IAAI,CAAC,CAAC,OAAO,EAAE;wBACb,OAAO,IAAI,CAAC;qBACb;gBACH,CAAC,CAAC,CAAC;gBACH,MAAM,aAAa,GAAG,CAAC,GAAG,EAAE;oBAC1B,IAAI,uBAAuB,IAAI,CAAC,EAAE;wBAChC,IAAI,uBAAuB,KAAK,CAAC,EAAE;4BACjC,OAAO,SAAS,CAAC;yBAClB;wBAED,OAAO,OAAO,CAAC,UAAU,CAAC,uBAAuB,GAAG,CAAC,CAAC,CAAC;qBACxD;oBACD,OAAO,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,IAAI,IAAI,CAAC,CAAC;gBACzD,CAAC,CAAC,EAAE,CAAC;gBACL,MAAM,mBAAmB,GACvB,aAAa;oBACb,kBAAkB,IAAI,OAAO;oBAC7B,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,aAAa,CAAC;wBACvC,OAAO,CAAC,gBAAgB,GAAG,CAAC,CAAC;gBAEjC,IAAI,aAAa,IAAI,aAAa,CAAC,QAAQ,EAAE;oBAC3C,MAAM,aAAa,GAAG,CAAC,GAAG,EAAE;wBAC1B,MAAM,kBAAkB,GAAG,OAAO,CAAC,UAAU,CAAC,SAAS,CACrD,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,aAAa,CAC3B,CAAC;wBACF,IAAI,kBAAkB,GAAG,CAAC,EAAE;4BAC1B,OAAO,SAAS,CAAC;yBAClB;wBACD,IAAI,kBAAkB,KAAK,CAAC,EAAE;4BAC5B,OAAO,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;yBACzD;wBACD,OAAO,IAAI,CAAC,aAAa,CAAC,YAAY,CACpC,OAAO,CAAC,UAAU,CAAC,kBAAkB,GAAG,CAAC,CAAC,CAAC,mBAAmB,CAC/D,CAAC;oBACJ,CAAC,CAAC,EAAE,CAAC;oBACL,IAAI,aAAa,EAAE;wBACjB,MAAM,QAAQ,GAAG,IAAI,2BAAkB,CACrC,aAAa,CAAC,GAAG,EACjB,YAAY,CACb,CAAC;wBACF,QAAQ,CAAC,gBAAgB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;wBAC5C,QAAQ,CAAC,gBAAgB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;wBAC5C,QAAQ;6BACL,OAAO,CACN,eAAe;4BACb,CAAC,CAAC;gCACE,0DAA0D;gCAC1D,mCAAmC,EACjC,aAAa,CAAC,SAAS;gCACzB,gCAAgC,EAAE,aAAa,CAAC,QAAQ;6BACzD;4BACH,CAAC,CAAC;gCACE,8DAA8D;gCAC9D,uCAAuC,EACrC,aAAa,CAAC,SAAS;gCACzB,oCAAoC,EAClC,aAAa,CAAC,QAAQ;6BACzB,CACN;6BACA,IAAI,CAAC,CAAC,GAAQ,EAAE,EAAE;4BACjB,QAAQ,CAAC,KAAK,EAAE,CAAC;4BAEjB,IAAI,CAAC,GAAG,EAAE;gCACR,OAAO;6BACR;4BAED,IAAA,kBAAW,EAAC,GAAG,EAAE;gCACf,IAAI,mBAAmB,EAAE;oCACvB,MAAM,GAAG,GAAG,GAAG,CAAC,GAAG;wCACjB,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAQ,EAAE,EAAE,CAAC,GAAG,CAAC,SAAS,IAAI,GAAG,CAAC;wCACjD,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,IAAI,GAAG,CAAC,CAAC;oCAC3B,IAAI,GAAG,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;wCAC7B,KAAK,MAAM,EAAE,IAAI,GAAG,EAAE;4CACpB,IAAI,aAAa,CAAC,QAAQ,IAAI,cAAc,IAAI,OAAO,EAAE;gDACvD,MAAM,KAAK,GAAG,eAAe;oDAC3B,CAAC,CAAC,IAAI,CAAC,8BAA8B,CACjC,EAAE,EACF,aAAa,CAAC,MAAM,EACpB,aAAa,CAAC,SAAS,EACvB,aAAa,CAAC,QAAQ,CACvB;oDACH,CAAC,CAAC,IAAI,CAAC,sCAAsC,CACzC,EAAE,EACF,aAAa,CAAC,MAAM,EACpB,aAAa,CAAC,SAAS,EACvB,aAAa,CAAC,QAAQ,CACvB,CAAC;gDACN,IAAI,KAAK,IAAI,CAAC,EAAE;oDACd,yEAAyE;oDACzE,MAAM,QAAQ,GAAG,eAAe;wDAC9B,CAAC,CAAC,IAAI,CAAC,yBAAyB,CAC5B,EAAE,EACF,OAAO,CAAC,YAAY,CAClB,OAAO,CAAC,gBAAgB,GAAG,CAAC,CAC7B,EACD,CAAC,GAAG,EAAE;4DACJ,MAAM,CAAC,GACL,IAAI,CAAC,wCAAwC,CAC3C,EAAE,EACF,KAAK,CACN,CAAC;4DAEJ,IAAI,CAAC,GAAG,CAAC,EAAE;gEACT,OAAO,CAAC,CAAC;6DACV;4DACD,OAAO,CAAC,CAAC;wDACX,CAAC,CAAC,EAAE,EACJ,KAAK,CACN;wDACH,CAAC,CAAC,IAAI,CAAC,yBAAyB,CAC5B,EAAE,EACF,OAAO,CAAC,YAAY,CAClB,OAAO,CAAC,gBAAgB,GAAG,CAAC,CAC7B,EACD,KAAK,CACN,CAAC;oDACN,OAAO,CAAC,cAAc,GAAG;wDACvB,OAAO,EAAE,aAAa,CAAC,OAAO;wDAC9B,MAAM,EAAE,QAAQ;qDACjB,CAAC;oDAEF,aAAa,CAAC,8BAA8B,GAAG,IAAI,CAAC;oDACpD,MAAM;iDACP;6CACF;yCACF;qCACF;iCACF;gCACD,aAAa,CAAC,OAAO,GAAG,IAAI,CAAC;4BAC/B,CAAC,CAAC,CAAC;4BACH,SAAS,EAAE,CAAC;4BACZ,IAAI,CAAC,iCAAiC,CAAC,EAAE,CAAC,CAAC;wBAC7C,CAAC,CAAC,CAAC;qBACN;iBACF;aACF;iBAAM,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE;gBAC/B,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;gBAChC,MAAM,SAAS,GAAG,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;gBAC3D,MAAM,MAAM,GAAG,eAAM,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;gBAElD,IAAI,SAAS,EAAE;oBACb,MAAM,QAAQ,GAAG,IAAI,2BAAkB,CAAC,SAAS,CAAC,GAAG,EAAE,YAAY,CAAC,CAAC;oBACrE,QAAQ,CAAC,gBAAgB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;oBAC5C,QAAQ,CAAC,gBAAgB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;oBAC5C,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE;wBACnC,QAAQ,CAAC,KAAK,EAAE,CAAC;wBAEjB,IAAA,kBAAW,EAAC,GAAG,EAAE;4BACf,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC;4BAC3B,IAAI,EAAE,CAAC,IAAI,IAAI,IAAI,IAAI,EAAE,CAAC,IAAI,KAAK,CAAC,EAAE;gCACpC,OAAO,CAAC,OAAO,GAAG,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,OAAO,IAAI,eAAe,CAAC;gCAE1D,sFAAsF;gCACtF,6EAA6E;gCAC7E,IAAI,CAAC,sBAAsB,CAAC,EAAE,CAAC,CAAC;6BACjC;iCAAM;gCACL,IAAI,cAAc,IAAI,OAAO,EAAE;oCAC7B,MAAM,SAAS,GAAG,IAAI,CAAC,yBAAyB,CAC9C,EAAE,EACF,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,CACxB,CAAC;oCAEF,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;iCACnC;gCAED,IAAI,OAAO,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE;oCACjC,MAAM,YAAY,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;oCAE3C,YAAY,CAAC,QAAQ,GAAG,IAAI,CAAC,0BAA0B,CACrD,EAAE,EACF,YAAY,CAAC,MAAM,EACnB,YAAY,CAAC,SAAS,CACvB,CAAC;oCAEF,SAAS,EAAE,CAAC;oCACZ,IAAI,CAAC,iCAAiC,CAAC,EAAE,CAAC,CAAC;iCAC5C;6BACF;wBACH,CAAC,CAAC,CAAC;oBACL,CAAC,CAAC,CAAC;iBACJ;aACF;iBAAM,IAAI,OAAO,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE;gBACxC,MAAM,kBAAkB,GAAG,OAAO,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE,EAAE;oBAClE,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC;gBAC5B,CAAC,CAAC,CAAC;gBACH,MAAM,aAAa,GACjB,kBAAkB,IAAI,CAAC;oBACrB,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,kBAAkB,CAAC;oBACxC,CAAC,CAAC,SAAS,CAAC;gBAChB,MAAM,WAAW,GACf,kBAAkB,IAAI,CAAC;oBACvB,kBAAkB,GAAG,CAAC,GAAG,OAAO,CAAC,UAAU,CAAC,MAAM;oBAChD,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,kBAAkB,GAAG,CAAC,CAAC;oBAC5C,CAAC,CAAC,SAAS,CAAC;gBAEhB,IAAI,aAAa,IAAI,aAAa,CAAC,QAAQ,EAAE;oBAC3C,MAAM,SAAS,GAGT,EAAE,CAAC;oBACT,IAAI,cAAc,GAAG,KAAK,CAAC;oBAC3B,MAAM,aAAa,GAAG,GAAG,EAAE;wBACzB,IAAI,CAAC,cAAc,EAAE;4BACnB,cAAc,GAAG,IAAI,CAAC;4BACtB,SAAS,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,EAAE;gCAC7B,IACE,QAAQ,CAAC,UAAU,KAAK,qBAAY,CAAC,IAAI;oCACzC,QAAQ,CAAC,UAAU,KAAK,qBAAY,CAAC,UAAU,EAC/C;oCACA,QAAQ,CAAC,KAAK,EAAE,CAAC;iCAClB;4BACH,CAAC,CAAC,CAAC;4BACH,SAAS,EAAE,CAAC;yBACb;oBACH,CAAC,CAAC;oBACF,IAAI,YAAY,GAAG,KAAK,CAAC;oBACzB,MAAM,WAAW,GAAG,GAAG,EAAE;wBACvB,IAAI,CAAC,YAAY,EAAE;4BACjB,YAAY,GAAG,IAAI,CAAC;4BACpB,SAAS,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,EAAE;gCAC7B,IACE,QAAQ,CAAC,UAAU,KAAK,qBAAY,CAAC,IAAI;oCACzC,QAAQ,CAAC,UAAU,KAAK,qBAAY,CAAC,UAAU,EAC/C;oCACA,QAAQ,CAAC,KAAK,EAAE,CAAC;iCAClB;4BACH,CAAC,CAAC,CAAC;4BACH,OAAO,EAAE,CAAC;yBACX;oBACH,CAAC,CAAC;oBACF,IAAI,YAAY,GAAG,KAAK,CAAC;oBACzB,MAAM,WAAW,GAAG,GAAG,EAAE;wBACvB,IAAI,CAAC,YAAY,EAAE;4BACjB,YAAY,GAAG,IAAI,CAAC;4BACpB,SAAS,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,EAAE;gCAC7B,IACE,QAAQ,CAAC,UAAU,KAAK,qBAAY,CAAC,IAAI;oCACzC,QAAQ,CAAC,UAAU,KAAK,qBAAY,CAAC,UAAU,EAC/C;oCACA,QAAQ,CAAC,KAAK,EAAE,CAAC;iCAClB;4BACH,CAAC,CAAC,CAAC;4BACH,OAAO,EAAE,CAAC;yBACX;oBACH,CAAC,CAAC;oBAEF,MAAM,SAAS,GAAG,IAAI,CAAC,aAAa,CAAC,YAAY,CAC/C,aAAa,CAAC,mBAAmB,CAClC,CAAC;oBACF,IAAI,SAAS,EAAE;wBACb,MAAM,WAAW,GAAQ;4BACvB,uDAAuD;4BACvD,gCAAgC,EAAE,aAAa,CAAC,SAAS;4BACzD,6BAA6B,EAAE,aAAa,CAAC,QAAQ;yBACtD,CAAC;wBAEF,MAAM,QAAQ,GAAG,IAAI,2BAAkB,CAAC,SAAS,CAAC,GAAG,EAAE,YAAY,CAAC,CAAC;wBACrE,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;wBACzB,QAAQ,CAAC,gBAAgB,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;wBAChD,QAAQ,CAAC,gBAAgB,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;wBAChD,QAAQ,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE;4BACzC,QAAQ,CAAC,KAAK,EAAE,CAAC;4BAEjB,IAAI,CAAC,GAAG,EAAE;gCACR,OAAO;6BACR;4BAED,MAAM,GAAG,GAAG,GAAG,CAAC,GAAG;gCACjB,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAQ,EAAE,EAAE,CAAC,GAAG,CAAC,SAAS,IAAI,GAAG,CAAC;gCACjD,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,IAAI,GAAG,CAAC,CAAC;4BAC3B,IAAI,GAAG,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;gCAC7B,IAAA,kBAAW,EAAC,GAAG,EAAE;oCACf,aAAa,CAAC,SAAS,GAAG,IAAI,CAAC;oCAE/B,KAAK,MAAM,EAAE,IAAI,GAAG,EAAE;wCACpB,IAAI;4CACF,MAAM,GAAG,GAAG,IAAI,CAAC,mCAAmC,CAClD,EAAE,EACF,aAAa,CAAC,MAAM,EACpB,aAAa,CAAC,SAAS,EACvB,aAAa,CAAC,QAAS,CACxB,CAAC;4CAEF,IAAI,GAAG,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,EAAE;gDACzB,MAAM,GAAG,GAAG,eAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gDAC7B,IAAI;oDACF,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC;oDAC3C,IAAI,OAAO,CAAC,KAAK,EAAE;wDACjB,6GAA6G;wDAC7G,wDAAwD;wDACxD,aAAa,CAAC,KAAK,GAAG,0BAA0B,CAAC;wDACjD,aAAa,EAAE,CAAC;wDAChB,IAAI,CAAC,iCAAiC,CAAC,EAAE,CAAC,CAAC;wDAC3C,MAAM;qDACP;iDACF;gDAAC,OAAO,CAAC,EAAE;oDACV,4BAA4B;oDAC5B,4BAA4B;oDAC5B,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;iDAChB;6CACF;4CAED,6FAA6F;4CAC7F,oFAAoF;4CACpF,MAAM,KAAK,GAAG,IAAI,CAAC,2BAA2B,CAC5C,EAAE,EACF,aAAa,CAAC,MAAM,EACpB,aAAa,CAAC,SAAS,EACvB,aAAa,CAAC,QAAS,CACxB,CAAC;4CAEF,IAAI,KAAK,IAAI,CAAC,EAAE;gDACd,IAAI,cAAc,IAAI,OAAO,EAAE;oDAC7B,MAAM,GAAG,GAGH,IAAI,CAAC,yBAAyB,CAClC,EAAE,EACF,OAAO,CAAC,YAAY,CAAC,kBAAkB,GAAG,CAAC,CAAC,EAC5C,KAAK,CACN,CAAC;oDAEF,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;iDAC7B;gDAED,IAAI,WAAW,EAAE;oDACf,WAAW,CAAC,QAAQ,GAAG,IAAI,CAAC,0BAA0B,CACpD,EAAE,EACF,WAAW,CAAC,MAAM,EAClB,WAAW,CAAC,SAAS,EACrB,KAAK,CACN,CAAC;oDACF,aAAa,EAAE,CAAC;oDAChB,IAAI,CAAC,iCAAiC,CAAC,EAAE,CAAC,CAAC;oDAC3C,MAAM;iDACP;qDAAM;oDACL,wCAAwC;oDACxC,IAAI,OAAO,CAAC,gBAAgB,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE;wDACjD,IAAA,kBAAW,EAAC,GAAG,EAAE;4DACf,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC;wDAC1B,CAAC,CAAC,CAAC;wDAEH,MAAM,SAAS,GAAG,IAAI,CAAC,aAAa,CAAC,YAAY,CAC/C,OAAO,CAAC,kBAAkB,CAC3B,CAAC;wDACF,IAAI,SAAS,EAAE;4DACb,IAAI,UAAU,IAAI,OAAO,EAAE;gEACzB,IAAI,OAAO,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE;oEAChC,MAAM,MAAM,GACV,OAAO,CAAC,SAAS,CACf,OAAO,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAC7B,CAAC;oEACJ,MAAM,UAAU,GAAG,MAAM;yEACtB,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CACd,OAAO,CAAC,gBAAiB,CAAC,UAAU,CAAC,IAAI,CACvC,CAAC,GAAG,EAAE,EAAE,CACN,GAAG,CAAC,gBAAgB,KAAK,GAAG,CAAC,KAAK,CACrC,CACF;yEACA,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE;wEACX,MAAM,QAAQ,GACZ,OAAO,CAAC,gBAAiB,CAAC,UAAU,CAAC,IAAI,CACvC,CAAC,GAAG,EAAE,EAAE,CACN,GAAG,CAAC,gBAAgB,KAAK,GAAG,CAAC,KAAK,CACrC,CAAC;wEACJ,OAAO,IAAI,iBAAU,CAAC,QAAS,EAAE,GAAG,CAAC,MAAM,CAAC;6EACzC,eAAe,CAAC,IAAI,CAAC;6EACrB,MAAM,CAAC,IAAI,CAAC;6EACZ,WAAW,CAAC,CAAC,CAAC;6EACd,gBAAgB,CAAC,IAAI,CAAC;6EACtB,IAAI,CAAC,IAAI,CAAC;6EACV,QAAQ,EAAE,CAAC;oEAChB,CAAC,CAAC,CAAC;oEACL,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE;wEACzB,cAAc;wEACd,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC;4EACvB,eAAe,EAAE,qBAAqB;4EACtC,KAAK,EAAE,oBAAoB;4EAC3B,OAAO,EAAE,GAAG,UAAU,CAAC,IAAI,CACzB,IAAI,CACL,gBAAgB,SAAS,CAAC,SAAS,EAAE;yEACvC,CAAC,CAAC;qEACJ;iEACF;6DACF;iEAAM;gEACL,MAAM,UAAU,GAAG,OAAO,CAAC,MAAM;qEAC9B,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CACd,OAAO,CAAC,gBAAiB,CAAC,UAAU,CAAC,IAAI,CACvC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,gBAAgB,KAAK,GAAG,CAAC,KAAK,CAC5C,CACF;qEACA,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE;oEACX,MAAM,QAAQ,GACZ,OAAO,CAAC,gBAAiB,CAAC,UAAU,CAAC,IAAI,CACvC,CAAC,GAAG,EAAE,EAAE,CACN,GAAG,CAAC,gBAAgB,KAAK,GAAG,CAAC,KAAK,CACrC,CAAC;oEACJ,OAAO,IAAI,iBAAU,CAAC,QAAS,EAAE,GAAG,CAAC,MAAM,CAAC;yEACzC,eAAe,CAAC,IAAI,CAAC;yEACrB,MAAM,CAAC,IAAI,CAAC;yEACZ,WAAW,CAAC,CAAC,CAAC;yEACd,gBAAgB,CAAC,IAAI,CAAC;yEACtB,IAAI,CAAC,IAAI,CAAC;yEACV,QAAQ,EAAE,CAAC;gEAChB,CAAC,CAAC,CAAC;gEACL,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE;oEACzB,cAAc;oEACd,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC;wEACvB,eAAe,EAAE,qBAAqB;wEACtC,KAAK,EAAE,wBAAwB;wEAC/B,OAAO,EAAE,GAAG,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,YAC/B,SAAS,CAAC,SACZ,EAAE;qEACH,CAAC,CAAC;iEACJ;6DACF;yDACF;qDACF;oDACD,aAAa,EAAE,CAAC;oDAChB,MAAM;iDACP;6CACF;yCACF;wCAAC,WAAM;4CACN,OAAO;yCACR;qCACF;gCACH,CAAC,CAAC,CAAC;6BACJ;wBACH,CAAC,CAAC,CAAC;qBACJ;oBAED,IAAI,WAAW,GAAW,EAAE,CAAC;oBAC7B,IAAI,kBAAkB,GAAG,CAAC,EAAE;wBAC1B,WAAW;4BACT,OAAO,CAAC,UAAU,CAAC,kBAAkB,GAAG,CAAC,CAAC,CAAC,mBAAmB,CAAC;qBAClE;yBAAM;wBACL,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC;qBAC/B;oBACD,IAAI,WAAW,EAAE;wBACf,MAAM,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC;wBACnE,IAAI,aAAa,EAAE;4BACjB,MAAM,WAAW,GAAQ;gCACvB,mEAAmE;gCACnE,uDAAuD;gCACvD,qEAAqE;gCACrE,0DAA0D;gCAC1D,0DAA0D;gCAC1D,mCAAmC,EAAE,aAAa,CAAC,SAAS;gCAC5D,gCAAgC,EAAE,aAAa,CAAC,QAAQ;6BACzD,CAAC;4BAEF,MAAM,QAAQ,GAAG,IAAI,2BAAkB,CACrC,aAAa,CAAC,GAAG,EACjB,YAAY,CACb,CAAC;4BACF,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;4BACzB,QAAQ,CAAC,gBAAgB,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;4BAChD,QAAQ,CAAC,gBAAgB,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;4BAChD,QAAQ,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE;gCACzC,QAAQ,CAAC,KAAK,EAAE,CAAC;gCAEjB,IAAI,CAAC,GAAG,EAAE;oCACR,OAAO;iCACR;gCAED,+CAA+C;gCAC/C,4CAA4C;gCAC5C,4CAA4C;gCAC5C,IAAA,kBAAW,EAAC,GAAG,EAAE;oCACf,aAAa,CAAC,KAAK,GAAG,gBAAgB,CAAC;oCACvC,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC;oCAC7B,aAAa,EAAE,CAAC;oCAChB,IAAI,CAAC,iCAAiC,CAAC,EAAE,CAAC,CAAC;gCAC7C,CAAC,CAAC,CAAC;4BACL,CAAC,CAAC,CAAC;yBACJ;qBACF;iBACF;aACF;QACH,CAAC,CAAC;QAouBiB,mBAAc,GAAG,CAAC,SAAoB,EAAE,EAAE;YAC3D,MAAM,eAAe,GAAG,sBAAa,CAAC,KAAK,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,UAAU,CAAC;YAE1E,IAAA,kBAAW,EAAC,GAAG,EAAE;gBACf,MAAM,WAAW,GAAa,EAAE,CAAC;gBACjC,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,mBAAmB,CAAC,MAAM,EAAE,EAAE;oBACvD,IACE,sBAAa,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,UAAU,KAAK,eAAe,EACnE;wBACA,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;wBAC7B,SAAS;qBACV;oBAED,IACE,sBAAa,CAAC,KAAK,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC,UAAU;wBAC1D,eAAe,EACf;wBACA,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;wBAC7B,SAAS;qBACV;oBAED,IACE,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE;wBAClC,OAAO,CACL,sBAAa,CAAC,KAAK,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAC,UAAU;4BAC3D,eAAe,CAChB,CAAC;oBACJ,CAAC,CAAC,EACF;wBACA,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;wBAC7B,SAAS;qBACV;iBACF;gBAED,KAAK,MAAM,EAAE,IAAI,WAAW,EAAE;oBAC5B,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;iBACrC;YACH,CAAC,CAAC,CAAC;QACL,CAAC,CAAC;QAhgDA,IAAA,qBAAc,EAAC,IAAI,CAAC,CAAC;IACvB,CAAC;IAEK,IAAI;;YACR,MAAM,yBAAyB,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,GAAG,CAEtD,sBAAsB,CAAC,CAAC;YAC1B,IAAI,yBAAyB,EAAE;gBAC7B,IAAA,kBAAW,EAAC,GAAG,EAAE;oBACf,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,yBAAyB,CAAC,EAAE;wBACpE,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;qBAC3C;gBACH,CAAC,CAAC,CAAC;aACJ;YACD,IAAA,cAAO,EAAC,GAAG,EAAE;gBACX,MAAM,EAAE,GAAG,IAAA,WAAI,EAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;gBAC3C,MAAM,GAAG,GAAG,MAAM,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;gBACnC,IAAI,CAAC,OAAO,CAAC,GAAG,CACd,sBAAsB,EACtB,GAAG,CACJ,CAAC;YACJ,CAAC,CAAC,CAAC;YAEH,wCAAwC;YACxC,qCAAqC;YACrC,qBAAqB;YACrB,iCAAiC;YACjC,MAAM,wBAAwB,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,GAAG,CACrD,6BAA6B,CAC9B,CAAC;YACF,IAAI,wBAAwB,EAAE;gBAC5B,IAAA,kBAAW,EAAC,GAAG,EAAE;oBACf,IAAI,CAAC,mBAAmB,GAAG,wBAAwB,CAAC;gBACtD,CAAC,CAAC,CAAC;aACJ;YACD,IAAA,cAAO,EAAC,GAAG,EAAE;gBACX,MAAM,EAAE,GAAG,IAAA,WAAI,EAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;gBAC1C,IAAI,CAAC,OAAO,CAAC,GAAG,CAAS,6BAA6B,EAAE,EAAE,CAAC,CAAC;YAC9D,CAAC,CAAC,CAAC;YAEH,MAAM,wBAAwB,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,GAAG,CAErD,6BAA6B,CAAC,CAAC;YACjC,IAAI,wBAAwB,EAAE;gBAC5B,IAAA,kBAAW,EAAC,GAAG,EAAE;oBACf,IAAI,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,wBAAwB,CAAC,CAAC;oBACvD,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE;wBACtC,6FAA6F;wBAC7F,2BAA2B;wBAC3B,iCAAiC;wBACjC,wBAAwB;wBACxB,OAAO,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;oBACzC,CAAC,CAAC,CAAC;oBACH,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,OAAO,EAAE;wBAClC,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;qBAC1C;gBACH,CAAC,CAAC,CAAC;aACJ;YACD,IAAA,cAAO,EAAC,GAAG,EAAE;gBACX,MAAM,EAAE,GAAG,IAAA,WAAI,EAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;gBAC1C,MAAM,GAAG,GAAG,MAAM,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;gBACnC,IAAI,CAAC,OAAO,CAAC,GAAG,CACd,6BAA6B,EAC7B,GAAG,CACJ,CAAC;YACJ,CAAC,CAAC,CAAC;YAEH,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,qBAAqB,EAAE,EAAE;gBAClD,IAAI,CAAC,iCAAiC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;aACpD;YAED,IAAI,CAAC,aAAa,CAAC,sBAAsB,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QACjE,CAAC;KAAA;IAEK,eAAe,CACnB,IAAY,EACZ,aAAqB,EACrB,kBAA0B,EAC1B,EAAW,EACX,IAAgC,EAChC,MAAe,EACf,MAAc,EACd,SAAiB,EACjB,MAGG,EACH,IAAY,EACZ,WAMa,EACb,gBAEC;;YAED,MAAM,eAAe,GACnB,IAAI,CAAC,aAAa,CAAC,mBAAmB,CAAC,aAAa,CAAC,CAAC;YACxD,sBAAa,CAAC,QAAQ,CACpB,MAAM,EACN,eAAe,CAAC,YAAY,CAAC,mBAAmB,CACjD,CAAC;YAEF,MAAM,oBAAoB,GACxB,IAAI,CAAC,aAAa,CAAC,mBAAmB,CAAC,kBAAkB,CAAC,CAAC;YAC7D,sBAAa,CAAC,QAAQ,CACpB,SAAS,EACT,oBAAoB,CAAC,YAAY,CAAC,mBAAmB,CACtD,CAAC;YAEF,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,aAAa,EAAE,EAAE,EAAE,IAAI,EAAE;gBAClE,MAAM;gBACN,SAAS,EAAE,CAAC,EAAE,EAAE,EAAE;oBAChB,IAAI,EAAE,CAAC,IAAI,IAAI,IAAI,IAAI,EAAE,CAAC,IAAI,KAAK,CAAC,EAAE;wBACpC,IAAI,CAAC,oBAAoB,CAAC,kBAAkB,EAAE,IAAI,EAAE;4BAClD,MAAM;4BACN,SAAS;4BACT,MAAM;4BACN,IAAI;4BACJ,WAAW;yBACZ,CAAC,CAAC;qBACJ;gBACH,CAAC;aACF,CAAC,CAAC;YAEH,IAAI,WAAW,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE;gBACzC,MAAM,EAAE,GAAG,IAAI,CAAC,2BAA2B,CACzC,aAAa,EACb,kBAAkB,EAClB,MAAM,EACN,SAAS,EACT,MAAM,EACN,IAAI,EACJ,WAAW,EACX,gBAAgB,EAChB,MAAM,CACP,CAAC;gBAEF,IAAI,CAAC,iCAAiC,CAAC,EAAE,CAAC,CAAC;aAC5C;YAED,OAAO,MAAM,CAAC;QAChB,CAAC;KAAA;IAEK,sBAAsB,CAC1B,QAAoC,EACpC,aAAqB,EACrB,kBAA0B,EAC1B,EAAW,EACX,IAAgC,EAChC,MAAe,EACf,MAAc,EACd,MAGG,EACH,IAAY,EACZ,WAKO,EACP,gBAGC,EACD,gBAAwB,EACxB,YAAsB,EACtB,gBAEC;;YAED,MAAM,eAAe,GACnB,IAAI,CAAC,aAAa,CAAC,mBAAmB,CAAC,aAAa,CAAC,CAAC;YACxD,sBAAa,CAAC,QAAQ,CACpB,MAAM,EACN,eAAe,CAAC,YAAY,CAAC,mBAAmB,CACjD,CAAC;YAEF,IAAI,CAAC,aAAa,CAAC,mBAAmB,CAAC,kBAAkB,CAAC,CAAC;YAE3D,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,aAAa,EAAE,EAAE,EAAE,IAAI,EAAE;gBAClE,MAAM;aACP,CAAC,CAAC;YAEH,MAAM,EAAE,GAAG,IAAI,CAAC,uBAAuB,CACrC,QAAQ,EACR,aAAa,EACb,kBAAkB,EAClB,MAAM,EACN,MAAM,EACN,IAAI,EACJ,WAAW,EACX,gBAAgB,EAChB,gBAAgB,EAChB,YAAY,EACZ,gBAAgB,EAChB,MAAM,CACP,CAAC;YAEF,IAAI,CAAC,iCAAiC,CAAC,EAAE,CAAC,CAAC;YAE3C,OAAO,MAAM,CAAC;QAChB,CAAC;KAAA;IAED,iCAAiC,CAAC,EAAU;QAC1C,IAAA,cAAK,EACH,GAAG,EAAE;YACH,OAAO,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;gBAC3C,IAAI,CAAC,yCAAyC,CAC5C,EAAE,EACF,GAAG,EAAE;oBACH,OAAO,EAAE,CAAC;gBACZ,CAAC,EACD,GAAG,EAAE;oBACH,uCAAuC;oBACvC,wCAAwC;oBACxC,eAAe;oBACf,6EAA6E;oBAC7E,WAAW;oBACX,UAAU,CAAC,GAAG,EAAE;wBACd,MAAM,EAAE,CAAC;oBACX,CAAC,EAAE,GAAG,CAAC,CAAC;gBACV,CAAC,EACD,GAAG,EAAE;oBACH,+CAA+C;oBAC/C,MAAM,EAAE,CAAC;gBACX,CAAC,CACF,CAAC;YACJ,CAAC,CAAC,CAAC;QACL,CAAC,EACD;YACE,UAAU,EAAE,EAAE;YACd,gBAAgB,EAAE,EAAE,GAAG,IAAI;YAC3B,mBAAmB,EAAE,CAAC,GAAG,EAAE,GAAG,IAAI,EAAE,OAAO;SAC5C,CACF,CAAC;IACJ,CAAC;IAugBD,sBAAsB,CAAC,OAAe,EAAE,IAAY;;QAClD,MAAM,GAAG,GAAG,GAAG,sBAAa,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,UAAU,IAAI,IAAI,EAAE,CAAC;QACjE,OAAO,CAAC,MAAA,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,GAAG,CAAC,mCAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IACjE,CAAC;IAGD,oBAAoB,CAClB,OAAe,EACf,IAAY,EACZ,OAA6C;;QAE7C,MAAM,GAAG,GAAG,GAAG,sBAAa,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,UAAU,IAAI,IAAI,EAAE,CAAC;QAEjE,IAAI,SAAS,GAAG,MAAA,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,GAAG,CAAC,mCAAI,EAAE,CAAC;QACzD,SAAS,CAAC,OAAO,iBACf,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,IAClB,OAAO,EACV,CAAC;QACH,SAAS,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QAEnC,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;IAChD,CAAC;IAGD,2BAA2B,CACzB,OAAe,EACf,kBAA0B,EAC1B,MAAc,EACd,SAAiB,EACjB,MAGG,EACH,IAAY,EACZ,WAKO,EACP,gBAEC,EACD,MAAkB;QAElB,MAAM,EAAE,GAAG,CAAC,IAAI,CAAC,mBAAmB,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC;QAEnD,MAAM,OAAO,GAAe;YAC1B,EAAE;YACF,OAAO;YACP,kBAAkB;YAClB,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;YACrB,MAAM;YACN,SAAS;YACT,MAAM;YACN,IAAI;YAEJ,UAAU,EAAE,WAAW,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE;gBACtC,OAAO;oBACL,MAAM,EAAE,OAAO,CAAC,MAAM;oBACtB,SAAS,EAAE,OAAO,CAAC,SAAS;oBAC5B,mBAAmB,EAAE,OAAO,CAAC,mBAAmB;oBAEhD,SAAS,EAAE,KAAK;iBACjB,CAAC;YACJ,CAAC,CAAC;YACF,gBAAgB;YAChB,MAAM,EAAE,eAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC;SAC5C,CAAC;QAEF,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;QAE1C,OAAO,EAAE,CAAC;IACZ,CAAC;IAGD,uBAAuB,CACrB,QAAoC,EACpC,OAAe,EACf,kBAA0B,EAC1B,MAAc,EACd,MAGG,EACH,IAAY,EACZ,WAKO,EACP,gBAGC,EACD,gBAAwB,EACxB,YAAsB,EACtB,gBAEC,EACD,MAAkB;QAElB,MAAM,EAAE,GAAG,CAAC,IAAI,CAAC,mBAAmB,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC;QAEnD,MAAM,OAAO,GAAe;YAC1B,EAAE;YACF,QAAQ;YACR,OAAO;YACP,kBAAkB;YAClB,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;YACrB,MAAM;YACN,MAAM;YACN,IAAI;YAEJ,UAAU,EAAE,WAAW,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE;gBACtC,OAAO;oBACL,MAAM,EAAE,OAAO,CAAC,MAAM;oBACtB,SAAS,EAAE,OAAO,CAAC,SAAS;oBAC5B,mBAAmB,EAAE,OAAO,CAAC,mBAAmB;oBAEhD,SAAS,EAAE,KAAK;iBACjB,CAAC;YACJ,CAAC,CAAC;YACF,gBAAgB;YAChB,gBAAgB;YAChB,YAAY;YACZ,SAAS,EAAE,EAAE;YACb,gBAAgB;YAChB,MAAM,EAAE,eAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC;SAC5C,CAAC;QAEF,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;QAE1C,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,mBAAmB,CAAC,EAAU;QAC5B,OAAO,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAC1C,CAAC;IAED,qBAAqB;QACnB,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE;YACtE,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE;gBACrD,OAAO,KAAK,CAAC;aACd;YAED,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC,OAAO,CAAC,kBAAkB,CAAC,EAAE;gBAChE,OAAO,KAAK,CAAC;aACd;YAED,IACE,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE;gBAClC,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAC;YACvE,CAAC,CAAC,EACF;gBACA,OAAO,KAAK,CAAC;aACd;YAED,OAAO,IAAI,CAAC;QACd,CAAC,CAAC,CAAC;IACL,CAAC;IAGD,sBAAsB,CAAC,EAAU;QAC/B,OAAO,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IAC7C,CAAC;IAGD,wBAAwB;QACtB,IAAI,CAAC,mBAAmB,CAAC,KAAK,EAAE,CAAC;IACnC,CAAC;IAES,mCAAmC,CAC3C,EAAO,EACP,YAAoB,EACpB,eAAuB,EACvB,QAAgB;QAEhB,MAAM,MAAM,GAAG,EAAE,CAAC,MAAM,CAAC;QACzB,IAAI,CAAC,MAAM,EAAE;YACX,MAAM,IAAI,KAAK,CAAC,YAAY,CAAC,CAAC;SAC/B;QACD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;YAC1B,MAAM,IAAI,KAAK,CAAC,YAAY,CAAC,CAAC;SAC/B;QAED,qEAAqE;QACrE,mGAAmG;QACnG,MAAM,8BAA8B,GAAG,CACrC,MAAc,EACd,KAAa,EACO,EAAE;YACtB,IAAI,MAAM,KAAK,KAAK,EAAE;gBACpB,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;aACtB;YAED,IAAI,MAAM,KAAK,eAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE;gBACpD,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;aACrB;YAED,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;QACxB,CAAC,CAAC;QAEF,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,KAAU,EAAE,EAAE;YAC7C,IAAI,KAAK,CAAC,IAAI,KAAK,uBAAuB,EAAE;gBAC1C,OAAO,KAAK,CAAC;aACd;YACD,MAAM,cAAc,GAAG,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,IAAqB,EAAE,EAAE;gBACrE,OAAO,8BAA8B,CAAC,IAAI,CAAC,GAAG,EAAE,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC;YACxE,CAAC,CAAC,CAAC;YACH,IAAI,CAAC,cAAc,EAAE;gBACnB,OAAO,KAAK,CAAC;aACd;YACD,MAAM,iBAAiB,GAAG,KAAK,CAAC,UAAU,CAAC,IAAI,CAC7C,CAAC,IAAqB,EAAE,EAAE;gBACxB,OAAO,8BAA8B,CACnC,IAAI,CAAC,GAAG,EACR,oBAAoB,CACrB,CAAC,CAAC,CAAC,CAAC;YACP,CAAC,CACF,CAAC;YACF,IAAI,CAAC,iBAAiB,EAAE;gBACtB,OAAO,KAAK,CAAC;aACd;YACD,IAAI,QAAQ,GAAG,KAAK,CAAC;YACrB,MAAM,YAAY,GAAG,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,IAAqB,EAAE,EAAE;gBACnE,MAAM,CAAC,GAAG,8BAA8B,CAAC,IAAI,CAAC,GAAG,EAAE,iBAAiB,CAAC,CAAC;gBACtE,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;gBAChB,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;YACd,CAAC,CAAC,CAAC;YACH,IAAI,CAAC,YAAY,EAAE;gBACjB,OAAO,KAAK,CAAC;aACd;YAED,IAAI,QAAQ,EAAE;gBACZ,OAAO,CACL,eAAM,CAAC,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC,QAAQ,EAAE;oBACpD,YAAY;oBACd,eAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC,QAAQ,EAAE;wBACvD,eAAe;oBACjB,eAAM,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC,QAAQ,EAAE,KAAK,QAAQ,CAClE,CAAC;aACH;iBAAM;gBACL,OAAO,CACL,cAAc,CAAC,KAAK,KAAK,YAAY;oBACrC,iBAAiB,CAAC,KAAK,KAAK,eAAe;oBAC3C,YAAY,CAAC,KAAK,KAAK,QAAQ,CAChC,CAAC;aACH;QACH,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,WAAW,EAAE;YAChB,OAAO;SACR;QAED,IAAI,QAAQ,GAAG,KAAK,CAAC;QACrB,MAAM,OAAO,GAAG,WAAW,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,IAAqB,EAAE,EAAE;YACpE,MAAM,CAAC,GAAG,8BAA8B,CAAC,IAAI,CAAC,GAAG,EAAE,YAAY,CAAC,CAAC;YACjE,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;YAChB,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;QACd,CAAC,CAAC,CAAC;QAEH,IAAI,OAAO,EAAE;YACX,IAAI,QAAQ,EAAE;gBACZ,OAAO,eAAM,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;aAC7C;iBAAM;gBACL,OAAO,eAAM,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;aACnC;SACF;QAED,OAAO;IACT,CAAC;IAES,yBAAyB,CACjC,EAAO,EACP,QAAgB,EAChB,mBAA2B,CAAC,EAC5B,iBAAyB,CAAC,CAAC;QAK3B,kDAAkD;QAClD,0BAA0B;QAC1B,0CAA0C;QAC1C,MAAM,MAAM,GAAG,EAAE,CAAC,MAAM,CAAC,KAAK,CAC5B,gBAAgB,EAChB,cAAc,IAAI,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,SAAS,CAO/C,CAAC;QAEJ,qEAAqE;QACrE,mGAAmG;QACnG,MAAM,8BAA8B,GAAG,CACrC,MAAc,EACd,KAAa,EACO,EAAE;YACtB,IAAI,MAAM,KAAK,KAAK,EAAE;gBACpB,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;aACtB;YAED,IAAI,MAAM,KAAK,eAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE;gBACpD,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;aACrB;YAED,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;QACxB,CAAC,CAAC;QAEF,+CAA+C;QAC/C,kCAAkC;QAClC,MAAM,YAAY,GAAG,MAAM,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE;YACnD,IAAI,KAAK,CAAC,IAAI,KAAK,eAAe,EAAE;gBAClC,MAAM,IAAI,GAAG,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE;oBAC1C,OAAO,CACL,8BAA8B,CAAC,IAAI,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC;wBACvD,8BAA8B,CAAC,IAAI,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,CACxD,CAAC;gBACJ,CAAC,CAAC,CAAC;gBAEH,IAAI,IAAI,EAAE;oBACR,OAAO,IAAI,CAAC;iBACb;aACF;YAED,OAAO,KAAK,CAAC;QACf,CAAC,CAAC,CAAC;QAEH,IAAI,YAAY,EAAE;YAChB,IAAI,QAAQ,GAAG,KAAK,CAAC;YACrB,MAAM,UAAU,GAAG,YAAY,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE;gBACvD,MAAM,CAAC,GAAG,8BAA8B,CAAC,IAAI,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;gBAC7D,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;gBAChB,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;YACd,CAAC,CAAC,CAAC;YACH,IAAI,UAAU,EAAE;gBACd,MAAM,MAAM,GAAG,QAAQ;oBACrB,CAAC,CAAC,eAAM,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC,QAAQ,EAAE;oBACpD,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC;gBACrB,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,yCAAyC,CAAC,CAAC;gBAEtE,6DAA6D;gBAC7D,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE;oBACtB,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;oBACxB,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;oBACvB,OAAO;wBACL;4BACE,KAAK;4BACL,MAAM;yBACP;qBACF,CAAC;iBACH;aACF;SACF;QAED,OAAO,EAAE,CAAC;IACZ,CAAC;IAES,sCAAsC,CAC9C,EAAO,EACP,YAAoB,EACpB,eAAuB,EACvB,QAAgB;QAEhB,MAAM,MAAM,GAAG,EAAE,CAAC,MAAM,CAAC;QACzB,IAAI,CAAC,MAAM,EAAE;YACX,MAAM,IAAI,KAAK,CAAC,YAAY,CAAC,CAAC;SAC/B;QACD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;YAC1B,MAAM,IAAI,KAAK,CAAC,YAAY,CAAC,CAAC;SAC/B;QAED,qEAAqE;QACrE,mGAAmG;QACnG,MAAM,8BAA8B,GAAG,CACrC,MAAc,EACd,KAAa,EACO,EAAE;YACtB,IAAI,MAAM,KAAK,KAAK,EAAE;gBACpB,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;aACtB;YAED,IAAI,MAAM,KAAK,eAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE;gBACpD,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;aACrB;YAED,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;QACxB,CAAC,CAAC;QAEF,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,KAAU,EAAE,EAAE;YAC7C,IAAI,KAAK,CAAC,IAAI,KAAK,oBAAoB,EAAE;gBACvC,OAAO,KAAK,CAAC;aACd;YACD,MAAM,cAAc,GAAG,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,IAAqB,EAAE,EAAE;gBACrE,OAAO,8BAA8B,CAAC,IAAI,CAAC,GAAG,EAAE,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC;YACxE,CAAC,CAAC,CAAC;YACH,IAAI,CAAC,cAAc,EAAE;gBACnB,OAAO,KAAK,CAAC;aACd;YACD,MAAM,iBAAiB,GAAG,KAAK,CAAC,UAAU,CAAC,IAAI,CAC7C,CAAC,IAAqB,EAAE,EAAE;gBACxB,OAAO,8BAA8B,CACnC,IAAI,CAAC,GAAG,EACR,oBAAoB,CACrB,CAAC,CAAC,CAAC,CAAC;YACP,CAAC,CACF,CAAC;YACF,IAAI,CAAC,iBAAiB,EAAE;gBACtB,OAAO,KAAK,CAAC;aACd;YACD,IAAI,QAAQ,GAAG,KAAK,CAAC;YACrB,MAAM,YAAY,GAAG,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,IAAqB,EAAE,EAAE;gBACnE,MAAM,CAAC,GAAG,8BAA8B,CAAC,IAAI,CAAC,GAAG,EAAE,iBAAiB,CAAC,CAAC;gBACtE,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;gBAChB,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;YACd,CAAC,CAAC,CAAC;YACH,IAAI,CAAC,YAAY,EAAE;gBACjB,OAAO,KAAK,CAAC;aACd;YAED,IAAI,QAAQ,EAAE;gBACZ,OAAO,CACL,eAAM,CAAC,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC,QAAQ,EAAE;oBACpD,YAAY;oBACd,eAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC,QAAQ,EAAE;wBACvD,eAAe;oBACjB,eAAM,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC,QAAQ,EAAE,KAAK,QAAQ,CAClE,CAAC;aACH;iBAAM;gBACL,OAAO,CACL,cAAc,CAAC,KAAK,KAAK,YAAY;oBACrC,iBAAiB,CAAC,KAAK,KAAK,eAAe;oBAC3C,YAAY,CAAC,KAAK,KAAK,QAAQ,CAChC,CAAC;aACH;QACH,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,WAAW,EAAE;YAChB,OAAO,CAAC,CAAC,CAAC;SACX;QAED,OAAO,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;IACrC,CAAC;IAES,8BAA8B,CACtC,EAAO,EACP,YAAoB,EACpB,eAAuB,EACvB,QAAgB;QAEhB,MAAM,MAAM,GAAG,EAAE,CAAC,MAAM,CAAC;QACzB,IAAI,CAAC,MAAM,EAAE;YACX,MAAM,IAAI,KAAK,CAAC,YAAY,CAAC,CAAC;SAC/B;QACD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;YAC1B,MAAM,IAAI,KAAK,CAAC,YAAY,CAAC,CAAC;SAC/B;QAED,qEAAqE;QACrE,mGAAmG;QACnG,MAAM,8BAA8B,GAAG,CACrC,MAAc,EACd,KAAa,EACO,EAAE;YACtB,IAAI,MAAM,KAAK,KAAK,EAAE;gBACpB,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;aACtB;YAED,IAAI,MAAM,KAAK,eAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE;gBACpD,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;aACrB;YAED,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;QACxB,CAAC,CAAC;QAEF,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,KAAU,EAAE,EAAE;YAC7C,IAAI,KAAK,CAAC,IAAI,KAAK,gBAAgB,EAAE;gBACnC,OAAO,KAAK,CAAC;aACd;YACD,MAAM,cAAc,GAAG,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,IAAqB,EAAE,EAAE;gBACrE,OAAO,8BAA8B,CAAC,IAAI,CAAC,GAAG,EAAE,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC;YACxE,CAAC,CAAC,CAAC;YACH,IAAI,CAAC,cAAc,EAAE;gBACnB,OAAO,KAAK,CAAC;aACd;YACD,MAAM,iBAAiB,GAAG,KAAK,CAAC,UAAU,CAAC,IAAI,CAC7C,CAAC,IAAqB,EAAE,EAAE;gBACxB,OAAO,8BAA8B,CACnC,IAAI,CAAC,GAAG,EACR,oBAAoB,CACrB,CAAC,CAAC,CAAC,CAAC;YACP,CAAC,CACF,CAAC;YACF,IAAI,CAAC,iBAAiB,EAAE;gBACtB,OAAO,KAAK,CAAC;aACd;YACD,IAAI,QAAQ,GAAG,KAAK,CAAC;YACrB,MAAM,YAAY,GAAG,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,IAAqB,EAAE,EAAE;gBACnE,MAAM,CAAC,GAAG,8BAA8B,CAAC,IAAI,CAAC,GAAG,EAAE,iBAAiB,CAAC,CAAC;gBACtE,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;gBAChB,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;YACd,CAAC,CAAC,CAAC;YACH,IAAI,CAAC,YAAY,EAAE;gBACjB,OAAO,KAAK,CAAC;aACd;YAED,IAAI,QAAQ,EAAE;gBACZ,OAAO,CACL,eAAM,CAAC,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC,QAAQ,EAAE;oBACpD,YAAY;oBACd,eAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC,QAAQ,EAAE;wBACvD,eAAe;oBACjB,eAAM,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC,QAAQ,EAAE,KAAK,QAAQ,CAClE,CAAC;aACH;iBAAM;gBACL,OAAO,CACL,cAAc,CAAC,KAAK,KAAK,YAAY;oBACrC,iBAAiB,CAAC,KAAK,KAAK,eAAe;oBAC3C,YAAY,CAAC,KAAK,KAAK,QAAQ,CAChC,CAAC;aACH;QACH,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,WAAW,EAAE;YAChB,OAAO,CAAC,CAAC,CAAC;SACX;QAED,OAAO,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;IACrC,CAAC;IAES,wCAAwC,CAChD,EAAO,EACP,KAAa;QAEb,MAAM,MAAM,GAAG,EAAE,CAAC,MAAM,CAAC;QACzB,IAAI,CAAC,MAAM,EAAE;YACX,MAAM,IAAI,KAAK,CAAC,YAAY,CAAC,CAAC;SAC/B;QACD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;YAC1B,MAAM,IAAI,KAAK,CAAC,YAAY,CAAC,CAAC;SAC/B;QACD,MAAM,aAAa,GAAG,MAAM;aACzB,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC;aACf,OAAO,EAAE;aACT,SAAS,CAAC,CAAC,KAAK,EAAE,EAAE;YACnB,IAAI,KAAK,CAAC,IAAI,KAAK,gBAAgB,EAAE;gBACnC,OAAO,IAAI,CAAC;aACb;QACH,CAAC,CAAC,CAAC;QAEL,IAAI,aAAa,IAAI,CAAC,EAAE;YACtB,OAAO,KAAK,GAAG,aAAa,GAAG,CAAC,CAAC;SAClC;QACD,OAAO,CAAC,CAAC,CAAC;IACZ,CAAC;IAES,2BAA2B,CACnC,EAAO,EACP,YAAoB,EACpB,eAAuB,EACvB,QAAgB;QAEhB,MAAM,MAAM,GAAG,EAAE,CAAC,MAAM,CAAC;QACzB,IAAI,CAAC,MAAM,EAAE;YACX,MAAM,IAAI,KAAK,CAAC,YAAY,CAAC,CAAC;SAC/B;QACD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;YAC1B,MAAM,IAAI,KAAK,CAAC,YAAY,CAAC,CAAC;SAC/B;QAED,qEAAqE;QACrE,mGAAmG;QACnG,MAAM,8BAA8B,GAAG,CACrC,MAAc,EACd,KAAa,EACO,EAAE;YACtB,IAAI,MAAM,KAAK,KAAK,EAAE;gBACpB,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;aACtB;YAED,IAAI,MAAM,KAAK,eAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE;gBACpD,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;aACrB;YAED,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;QACxB,CAAC,CAAC;QAEF,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,KAAU,EAAE,EAAE;YAC7C,IAAI,KAAK,CAAC,IAAI,KAAK,aAAa,EAAE;gBAChC,OAAO,KAAK,CAAC;aACd;YACD,MAAM,cAAc,GAAG,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,IAAqB,EAAE,EAAE;gBACrE,OAAO,8BAA8B,CAAC,IAAI,CAAC,GAAG,EAAE,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC;YACxE,CAAC,CAAC,CAAC;YACH,IAAI,CAAC,cAAc,EAAE;gBACnB,OAAO,KAAK,CAAC;aACd;YACD,MAAM,iBAAiB,GAAG,KAAK,CAAC,UAAU,CAAC,IAAI,CAC7C,CAAC,IAAqB,EAAE,EAAE;gBACxB,OAAO,8BAA8B,CACnC,IAAI,CAAC,GAAG,EACR,oBAAoB,CACrB,CAAC,CAAC,CAAC,CAAC;YACP,CAAC,CACF,CAAC;YACF,IAAI,CAAC,iBAAiB,EAAE;gBACtB,OAAO,KAAK,CAAC;aACd;YACD,IAAI,QAAQ,GAAG,KAAK,CAAC;YACrB,MAAM,YAAY,GAAG,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,IAAqB,EAAE,EAAE;gBACnE,MAAM,CAAC,GAAG,8BAA8B,CAAC,IAAI,CAAC,GAAG,EAAE,iBAAiB,CAAC,CAAC;gBACtE,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;gBAChB,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;YACd,CAAC,CAAC,CAAC;YACH,IAAI,CAAC,YAAY,EAAE;gBACjB,OAAO,KAAK,CAAC;aACd;YAED,IAAI,QAAQ,EAAE;gBACZ,OAAO,CACL,eAAM,CAAC,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC,QAAQ,EAAE;oBACpD,YAAY;oBACd,eAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC,QAAQ,EAAE;wBACvD,eAAe;oBACjB,eAAM,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC,QAAQ,EAAE,KAAK,QAAQ,CAClE,CAAC;aACH;iBAAM;gBACL,OAAO,CACL,cAAc,CAAC,KAAK,KAAK,YAAY;oBACrC,iBAAiB,CAAC,KAAK,KAAK,eAAe;oBAC3C,YAAY,CAAC,KAAK,KAAK,QAAQ,CAChC,CAAC;aACH;QACH,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,WAAW,EAAE;YAChB,OAAO,CAAC,CAAC,CAAC;SACX;QAED,OAAO,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;IACrC,CAAC;IAES,0BAA0B,CAClC,EAAO,EACP,YAAoB,EACpB,eAAuB,EACvB,kBAAkB,GAAG,CAAC;QAEtB,IAAI,MAAM,GAAG,EAAE,CAAC,MAAM,CAAC;QACvB,IAAI,CAAC,MAAM,EAAE;YACX,MAAM,IAAI,KAAK,CAAC,YAAY,CAAC,CAAC;SAC/B;QACD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;YAC1B,MAAM,IAAI,KAAK,CAAC,YAAY,CAAC,CAAC;SAC/B;QAED,qEAAqE;QACrE,mGAAmG;QACnG,MAAM,8BAA8B,GAAG,CACrC,MAAc,EACd,KAAa,EACO,EAAE;YACtB,IAAI,MAAM,KAAK,KAAK,EAAE;gBACpB,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;aACtB;YAED,IAAI,MAAM,KAAK,eAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE;gBACpD,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;aACrB;YAED,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;QACxB,CAAC,CAAC;QAEF,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC;QAE1C,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,KAAU,EAAE,EAAE;YAC7C,IAAI,KAAK,CAAC,IAAI,KAAK,aAAa,EAAE;gBAChC,OAAO,KAAK,CAAC;aACd;YACD,MAAM,cAAc,GAAG,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,IAAqB,EAAE,EAAE;gBACrE,OAAO,8BAA8B,CAAC,IAAI,CAAC,GAAG,EAAE,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC;YACxE,CAAC,CAAC,CAAC;YACH,IAAI,CAAC,cAAc,EAAE;gBACnB,OAAO,KAAK,CAAC;aACd;YACD,IAAI,QAAQ,GAAG,KAAK,CAAC;YACrB,MAAM,iBAAiB,GAAG,KAAK,CAAC,UAAU,CAAC,IAAI,CAC7C,CAAC,IAAqB,EAAE,EAAE;gBACxB,MAAM,CAAC,GAAG,8BAA8B,CACtC,IAAI,CAAC,GAAG,EACR,oBAAoB,CACrB,CAAC;gBACF,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;gBAChB,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;YACd,CAAC,CACF,CAAC;YACF,IAAI,CAAC,iBAAiB,EAAE;gBACtB,OAAO,KAAK,CAAC;aACd;YACD,IAAI,QAAQ,EAAE;gBACZ,OAAO,CACL,cAAc,CAAC,KAAK;oBAClB,eAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC;oBAC9C,iBAAiB,CAAC,KAAK;wBACrB,eAAM,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAClD,CAAC;aACH;iBAAM;gBACL,OAAO,CACL,cAAc,CAAC,KAAK,KAAK,YAAY;oBACrC,iBAAiB,CAAC,KAAK,KAAK,eAAe,CAC5C,CAAC;aACH;QACH,CAAC,CAAC,CAAC;QAEH,IAAI,QAAQ,GAAG,KAAK,CAAC;QACrB,IAAI,WAAW,EAAE;YACf,MAAM,YAAY,GAAG,WAAW,CAAC,UAAU,CAAC,IAAI,CAC9C,CAAC,IAAqB,EAAE,EAAE;gBACxB,MAAM,CAAC,GAAG,8BAA8B,CAAC,IAAI,CAAC,GAAG,EAAE,iBAAiB,CAAC,CAAC;gBACtE,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;gBAChB,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;YACd,CAAC,CACF,CAAC;YACF,IAAI,CAAC,YAAY,EAAE;gBACjB,MAAM,IAAI,KAAK,CAAC,YAAY,CAAC,CAAC;aAC/B;YAED,IAAI,QAAQ,EAAE;gBACZ,OAAO,eAAM,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC,QAAQ,EAAE,CAAC;aAC7D;iBAAM;gBACL,OAAO,YAAY,CAAC,KAAK,CAAC;aAC3B;SACF;QAED,MAAM,IAAI,KAAK,CAAC,YAAY,CAAC,CAAC;IAChC,CAAC;CAyCF;AAhhDC;IADC,iBAAU;sEAEC;AAGZ;IADC,iBAAU;qEAC+B;AAG1C;IADC,iBAAU;qEACiE;AAswB5E;IADC,aAAM;oEAgBN;AAGD;IADC,aAAM;2EAkDN;AAGD;IADC,aAAM;uEA4DN;AA6BD;IADC,aAAM;sEAGN;AAGD;IADC,aAAM;wEAGN;AAr7BH,4DAmhDC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@keplr-wallet/background",
|
|
3
|
-
"version": "0.12.
|
|
3
|
+
"version": "0.12.54-rc.0",
|
|
4
4
|
"main": "build/index.js",
|
|
5
5
|
"author": "chainapsis",
|
|
6
6
|
"license": "Apache-2.0",
|
|
@@ -28,17 +28,17 @@
|
|
|
28
28
|
"@ethersproject/hash": "^5.7.0",
|
|
29
29
|
"@ethersproject/transactions": "^5.7.0",
|
|
30
30
|
"@ethersproject/wallet": "^5.7.0",
|
|
31
|
-
"@keplr-wallet/chain-validator": "0.12.
|
|
32
|
-
"@keplr-wallet/common": "0.12.
|
|
33
|
-
"@keplr-wallet/cosmos": "0.12.
|
|
34
|
-
"@keplr-wallet/crypto": "0.12.
|
|
35
|
-
"@keplr-wallet/ledger-cosmos": "0.12.
|
|
36
|
-
"@keplr-wallet/popup": "0.12.
|
|
37
|
-
"@keplr-wallet/proto-types": "0.12.
|
|
38
|
-
"@keplr-wallet/router": "0.12.
|
|
39
|
-
"@keplr-wallet/simple-fetch": "0.12.
|
|
40
|
-
"@keplr-wallet/types": "0.12.
|
|
41
|
-
"@keplr-wallet/unit": "0.12.
|
|
31
|
+
"@keplr-wallet/chain-validator": "0.12.54-rc.0",
|
|
32
|
+
"@keplr-wallet/common": "0.12.54-rc.0",
|
|
33
|
+
"@keplr-wallet/cosmos": "0.12.54-rc.0",
|
|
34
|
+
"@keplr-wallet/crypto": "0.12.54-rc.0",
|
|
35
|
+
"@keplr-wallet/ledger-cosmos": "0.12.54-rc.0",
|
|
36
|
+
"@keplr-wallet/popup": "0.12.54-rc.0",
|
|
37
|
+
"@keplr-wallet/proto-types": "0.12.54-rc.0",
|
|
38
|
+
"@keplr-wallet/router": "0.12.54-rc.0",
|
|
39
|
+
"@keplr-wallet/simple-fetch": "0.12.54-rc.0",
|
|
40
|
+
"@keplr-wallet/types": "0.12.54-rc.0",
|
|
41
|
+
"@keplr-wallet/unit": "0.12.54-rc.0",
|
|
42
42
|
"@ledgerhq/hw-app-eth": "^6.29.3",
|
|
43
43
|
"@ledgerhq/hw-transport": "^6.20.0",
|
|
44
44
|
"@ledgerhq/hw-transport-webhid": "^6.20.0",
|
|
@@ -58,5 +58,5 @@
|
|
|
58
58
|
"pbkdf2": "^3.1.2",
|
|
59
59
|
"utility-types": "^3.10.0"
|
|
60
60
|
},
|
|
61
|
-
"gitHead": "
|
|
61
|
+
"gitHead": "10cdf59570c290bb644d1051b65414b86e8898c7"
|
|
62
62
|
}
|
|
@@ -3,6 +3,7 @@ import {
|
|
|
3
3
|
Bech32Address,
|
|
4
4
|
ChainIdHelper,
|
|
5
5
|
TendermintTxTracer,
|
|
6
|
+
WsReadyState,
|
|
6
7
|
} from "@keplr-wallet/cosmos";
|
|
7
8
|
import { BackgroundTxService, Notification } from "../tx";
|
|
8
9
|
import {
|
|
@@ -309,10 +310,12 @@ export class RecentSendHistoryService {
|
|
|
309
310
|
return history.ibcHistory.find((h) => h.error != null) != null;
|
|
310
311
|
})();
|
|
311
312
|
|
|
312
|
-
if (
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
313
|
+
if (needRewind) {
|
|
314
|
+
if (history.ibcHistory.find((h) => h.rewoundButNextRewindingBlocked)) {
|
|
315
|
+
onFulfill();
|
|
316
|
+
return;
|
|
317
|
+
}
|
|
318
|
+
const isTimeoutPacket = history.packetTimeout || false;
|
|
316
319
|
const lastRewoundChannelIndex = history.ibcHistory.findIndex((h) => {
|
|
317
320
|
if (h.rewound) {
|
|
318
321
|
return true;
|
|
@@ -357,11 +360,22 @@ export class RecentSendHistoryService {
|
|
|
357
360
|
txTracer.addEventListener("close", onClose);
|
|
358
361
|
txTracer.addEventListener("error", onError);
|
|
359
362
|
txTracer
|
|
360
|
-
.traceTx(
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
363
|
+
.traceTx(
|
|
364
|
+
isTimeoutPacket
|
|
365
|
+
? {
|
|
366
|
+
// "timeout_packet.packet_src_port": targetChannel.portId,
|
|
367
|
+
"timeout_packet.packet_src_channel":
|
|
368
|
+
targetChannel.channelId,
|
|
369
|
+
"timeout_packet.packet_sequence": targetChannel.sequence,
|
|
370
|
+
}
|
|
371
|
+
: {
|
|
372
|
+
// "acknowledge_packet.packet_src_port": targetChannel.portId,
|
|
373
|
+
"acknowledge_packet.packet_src_channel":
|
|
374
|
+
targetChannel.channelId,
|
|
375
|
+
"acknowledge_packet.packet_sequence":
|
|
376
|
+
targetChannel.sequence,
|
|
377
|
+
}
|
|
378
|
+
)
|
|
365
379
|
.then((res: any) => {
|
|
366
380
|
txTracer.close();
|
|
367
381
|
|
|
@@ -377,19 +391,48 @@ export class RecentSendHistoryService {
|
|
|
377
391
|
if (txs && Array.isArray(txs)) {
|
|
378
392
|
for (const tx of txs) {
|
|
379
393
|
if (targetChannel.sequence && "swapReceiver" in history) {
|
|
380
|
-
const index =
|
|
381
|
-
this.
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
|
|
394
|
+
const index = isTimeoutPacket
|
|
395
|
+
? this.getIBCTimeoutPacketIndexFromTx(
|
|
396
|
+
tx,
|
|
397
|
+
targetChannel.portId,
|
|
398
|
+
targetChannel.channelId,
|
|
399
|
+
targetChannel.sequence
|
|
400
|
+
)
|
|
401
|
+
: this.getIBCAcknowledgementPacketIndexFromTx(
|
|
402
|
+
tx,
|
|
403
|
+
targetChannel.portId,
|
|
404
|
+
targetChannel.channelId,
|
|
405
|
+
targetChannel.sequence
|
|
406
|
+
);
|
|
387
407
|
if (index >= 0) {
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
|
|
408
|
+
// 좀 빡치게 timeout packet은 refund 로직이 실행되고 나서 "timeout_packet" event가 발생한다.
|
|
409
|
+
const refunded = isTimeoutPacket
|
|
410
|
+
? this.getIBCSwapResAmountFromTx(
|
|
411
|
+
tx,
|
|
412
|
+
history.swapReceiver[
|
|
413
|
+
history.swapChannelIndex + 1
|
|
414
|
+
],
|
|
415
|
+
(() => {
|
|
416
|
+
const i =
|
|
417
|
+
this.getLastIBCTimeoutPacketBeforeIndexFromTx(
|
|
418
|
+
tx,
|
|
419
|
+
index
|
|
420
|
+
);
|
|
421
|
+
|
|
422
|
+
if (i < 0) {
|
|
423
|
+
return 0;
|
|
424
|
+
}
|
|
425
|
+
return i;
|
|
426
|
+
})(),
|
|
427
|
+
index
|
|
428
|
+
)
|
|
429
|
+
: this.getIBCSwapResAmountFromTx(
|
|
430
|
+
tx,
|
|
431
|
+
history.swapReceiver[
|
|
432
|
+
history.swapChannelIndex + 1
|
|
433
|
+
],
|
|
434
|
+
index
|
|
435
|
+
);
|
|
393
436
|
history.swapRefundInfo = {
|
|
394
437
|
chainId: prevChainInfo.chainId,
|
|
395
438
|
amount: refunded,
|
|
@@ -470,6 +513,56 @@ export class RecentSendHistoryService {
|
|
|
470
513
|
: undefined;
|
|
471
514
|
|
|
472
515
|
if (targetChannel && targetChannel.sequence) {
|
|
516
|
+
const closables: {
|
|
517
|
+
readyState: WsReadyState;
|
|
518
|
+
close: () => void;
|
|
519
|
+
}[] = [];
|
|
520
|
+
let _onFulfillOnce = false;
|
|
521
|
+
const onFulfillOnce = () => {
|
|
522
|
+
if (!_onFulfillOnce) {
|
|
523
|
+
_onFulfillOnce = true;
|
|
524
|
+
closables.forEach((closable) => {
|
|
525
|
+
if (
|
|
526
|
+
closable.readyState === WsReadyState.OPEN ||
|
|
527
|
+
closable.readyState === WsReadyState.CONNECTING
|
|
528
|
+
) {
|
|
529
|
+
closable.close();
|
|
530
|
+
}
|
|
531
|
+
});
|
|
532
|
+
onFulfill();
|
|
533
|
+
}
|
|
534
|
+
};
|
|
535
|
+
let _onCloseOnce = false;
|
|
536
|
+
const onCloseOnce = () => {
|
|
537
|
+
if (!_onCloseOnce) {
|
|
538
|
+
_onCloseOnce = true;
|
|
539
|
+
closables.forEach((closable) => {
|
|
540
|
+
if (
|
|
541
|
+
closable.readyState === WsReadyState.OPEN ||
|
|
542
|
+
closable.readyState === WsReadyState.CONNECTING
|
|
543
|
+
) {
|
|
544
|
+
closable.close();
|
|
545
|
+
}
|
|
546
|
+
});
|
|
547
|
+
onClose();
|
|
548
|
+
}
|
|
549
|
+
};
|
|
550
|
+
let _onErrorOnce = false;
|
|
551
|
+
const onErrorOnce = () => {
|
|
552
|
+
if (!_onErrorOnce) {
|
|
553
|
+
_onErrorOnce = true;
|
|
554
|
+
closables.forEach((closable) => {
|
|
555
|
+
if (
|
|
556
|
+
closable.readyState === WsReadyState.OPEN ||
|
|
557
|
+
closable.readyState === WsReadyState.CONNECTING
|
|
558
|
+
) {
|
|
559
|
+
closable.close();
|
|
560
|
+
}
|
|
561
|
+
});
|
|
562
|
+
onError();
|
|
563
|
+
}
|
|
564
|
+
};
|
|
565
|
+
|
|
473
566
|
const chainInfo = this.chainsService.getChainInfo(
|
|
474
567
|
targetChannel.counterpartyChainId
|
|
475
568
|
);
|
|
@@ -481,8 +574,9 @@ export class RecentSendHistoryService {
|
|
|
481
574
|
};
|
|
482
575
|
|
|
483
576
|
const txTracer = new TendermintTxTracer(chainInfo.rpc, "/websocket");
|
|
484
|
-
|
|
485
|
-
txTracer.addEventListener("
|
|
577
|
+
closables.push(txTracer);
|
|
578
|
+
txTracer.addEventListener("close", onCloseOnce);
|
|
579
|
+
txTracer.addEventListener("error", onErrorOnce);
|
|
486
580
|
txTracer.traceTx(queryEvents).then((res) => {
|
|
487
581
|
txTracer.close();
|
|
488
582
|
|
|
@@ -514,7 +608,7 @@ export class RecentSendHistoryService {
|
|
|
514
608
|
// XXX: {key: 'packet_ack', value: '{"error":"ABCI code: 6: error handling packet: see events for details"}'}
|
|
515
609
|
// 오류가 있을 경우 이딴식으로 오류가 나오기 때문에 뭐 유저에게 보여줄 방법이 없다...
|
|
516
610
|
targetChannel.error = "Packet processing failed";
|
|
517
|
-
|
|
611
|
+
onFulfillOnce();
|
|
518
612
|
this.trackIBCPacketForwardingRecursive(id);
|
|
519
613
|
break;
|
|
520
614
|
}
|
|
@@ -555,7 +649,7 @@ export class RecentSendHistoryService {
|
|
|
555
649
|
nextChannel.channelId,
|
|
556
650
|
index
|
|
557
651
|
);
|
|
558
|
-
|
|
652
|
+
onFulfillOnce();
|
|
559
653
|
this.trackIBCPacketForwardingRecursive(id);
|
|
560
654
|
break;
|
|
561
655
|
} else {
|
|
@@ -641,7 +735,7 @@ export class RecentSendHistoryService {
|
|
|
641
735
|
}
|
|
642
736
|
}
|
|
643
737
|
}
|
|
644
|
-
|
|
738
|
+
onFulfillOnce();
|
|
645
739
|
break;
|
|
646
740
|
}
|
|
647
741
|
}
|
|
@@ -653,6 +747,53 @@ export class RecentSendHistoryService {
|
|
|
653
747
|
}
|
|
654
748
|
});
|
|
655
749
|
}
|
|
750
|
+
|
|
751
|
+
let prevChainId: string = "";
|
|
752
|
+
if (targetChannelIndex > 0) {
|
|
753
|
+
prevChainId =
|
|
754
|
+
history.ibcHistory[targetChannelIndex - 1].counterpartyChainId;
|
|
755
|
+
} else {
|
|
756
|
+
prevChainId = history.chainId;
|
|
757
|
+
}
|
|
758
|
+
if (prevChainId) {
|
|
759
|
+
const prevChainInfo = this.chainsService.getChainInfo(prevChainId);
|
|
760
|
+
if (prevChainInfo) {
|
|
761
|
+
const queryEvents: any = {
|
|
762
|
+
// acknowledge_packet과는 다르게 timeout_packet은 이전의 체인의 이벤트로부터만 알 수 있다.
|
|
763
|
+
// 방법이 없기 때문에 여기서 이전의 체인으로부터 subscribe를 해서 이벤트를 받아야 한다.
|
|
764
|
+
// 하지만 이 경우 ibc error tracking 로직에서 이것과 똑같은 subscription을 한번 더 하게 된다.
|
|
765
|
+
// 이미 로직이 많이 복잡하기 때문에 로직을 덜 복잡하게 하기 위해서 이러한 비효율성(?)을 감수한다.
|
|
766
|
+
// "timeout_packet.packet_src_port": targetChannel.portId,
|
|
767
|
+
"timeout_packet.packet_src_channel": targetChannel.channelId,
|
|
768
|
+
"timeout_packet.packet_sequence": targetChannel.sequence,
|
|
769
|
+
};
|
|
770
|
+
|
|
771
|
+
const txTracer = new TendermintTxTracer(
|
|
772
|
+
prevChainInfo.rpc,
|
|
773
|
+
"/websocket"
|
|
774
|
+
);
|
|
775
|
+
closables.push(txTracer);
|
|
776
|
+
txTracer.addEventListener("close", onCloseOnce);
|
|
777
|
+
txTracer.addEventListener("error", onErrorOnce);
|
|
778
|
+
txTracer.traceTx(queryEvents).then((res) => {
|
|
779
|
+
txTracer.close();
|
|
780
|
+
|
|
781
|
+
if (!res) {
|
|
782
|
+
return;
|
|
783
|
+
}
|
|
784
|
+
|
|
785
|
+
// 이 event가 발생한 시점에서 이미 timeout packet은 받은 상태이고
|
|
786
|
+
// 이 경우 따로 정보를 얻을 필요는 없으므로 이후에 res를 쓰지는 않는다.
|
|
787
|
+
// 위에 res null check는 사실 필요 없지만 혹시나 해서 넣어둔다.
|
|
788
|
+
runInAction(() => {
|
|
789
|
+
targetChannel.error = "Packet timeout";
|
|
790
|
+
history.packetTimeout = true;
|
|
791
|
+
onFulfillOnce();
|
|
792
|
+
this.trackIBCPacketForwardingRecursive(id);
|
|
793
|
+
});
|
|
794
|
+
});
|
|
795
|
+
}
|
|
796
|
+
}
|
|
656
797
|
}
|
|
657
798
|
}
|
|
658
799
|
};
|
|
@@ -1104,6 +1245,117 @@ export class RecentSendHistoryService {
|
|
|
1104
1245
|
return events.indexOf(packetEvent);
|
|
1105
1246
|
}
|
|
1106
1247
|
|
|
1248
|
+
protected getIBCTimeoutPacketIndexFromTx(
|
|
1249
|
+
tx: any,
|
|
1250
|
+
sourcePortId: string,
|
|
1251
|
+
sourceChannelId: string,
|
|
1252
|
+
sequence: string
|
|
1253
|
+
): number {
|
|
1254
|
+
const events = tx.events;
|
|
1255
|
+
if (!events) {
|
|
1256
|
+
throw new Error("Invalid tx");
|
|
1257
|
+
}
|
|
1258
|
+
if (!Array.isArray(events)) {
|
|
1259
|
+
throw new Error("Invalid tx");
|
|
1260
|
+
}
|
|
1261
|
+
|
|
1262
|
+
// In injective, events from tendermint rpc is not encoded as base64.
|
|
1263
|
+
// I don't know that this is the difference from tendermint version, or just custom from injective.
|
|
1264
|
+
const compareStringWithBase64OrPlain = (
|
|
1265
|
+
target: string,
|
|
1266
|
+
value: string
|
|
1267
|
+
): [boolean, boolean] => {
|
|
1268
|
+
if (target === value) {
|
|
1269
|
+
return [true, false];
|
|
1270
|
+
}
|
|
1271
|
+
|
|
1272
|
+
if (target === Buffer.from(value).toString("base64")) {
|
|
1273
|
+
return [true, true];
|
|
1274
|
+
}
|
|
1275
|
+
|
|
1276
|
+
return [false, false];
|
|
1277
|
+
};
|
|
1278
|
+
|
|
1279
|
+
const packetEvent = events.find((event: any) => {
|
|
1280
|
+
if (event.type !== "timeout_packet") {
|
|
1281
|
+
return false;
|
|
1282
|
+
}
|
|
1283
|
+
const sourcePortAttr = event.attributes.find((attr: { key: string }) => {
|
|
1284
|
+
return compareStringWithBase64OrPlain(attr.key, "packet_src_port")[0];
|
|
1285
|
+
});
|
|
1286
|
+
if (!sourcePortAttr) {
|
|
1287
|
+
return false;
|
|
1288
|
+
}
|
|
1289
|
+
const sourceChannelAttr = event.attributes.find(
|
|
1290
|
+
(attr: { key: string }) => {
|
|
1291
|
+
return compareStringWithBase64OrPlain(
|
|
1292
|
+
attr.key,
|
|
1293
|
+
"packet_src_channel"
|
|
1294
|
+
)[0];
|
|
1295
|
+
}
|
|
1296
|
+
);
|
|
1297
|
+
if (!sourceChannelAttr) {
|
|
1298
|
+
return false;
|
|
1299
|
+
}
|
|
1300
|
+
let isBase64 = false;
|
|
1301
|
+
const sequenceAttr = event.attributes.find((attr: { key: string }) => {
|
|
1302
|
+
const c = compareStringWithBase64OrPlain(attr.key, "packet_sequence");
|
|
1303
|
+
isBase64 = c[1];
|
|
1304
|
+
return c[0];
|
|
1305
|
+
});
|
|
1306
|
+
if (!sequenceAttr) {
|
|
1307
|
+
return false;
|
|
1308
|
+
}
|
|
1309
|
+
|
|
1310
|
+
if (isBase64) {
|
|
1311
|
+
return (
|
|
1312
|
+
Buffer.from(sourcePortAttr.value, "base64").toString() ===
|
|
1313
|
+
sourcePortId &&
|
|
1314
|
+
Buffer.from(sourceChannelAttr.value, "base64").toString() ===
|
|
1315
|
+
sourceChannelId &&
|
|
1316
|
+
Buffer.from(sequenceAttr.value, "base64").toString() === sequence
|
|
1317
|
+
);
|
|
1318
|
+
} else {
|
|
1319
|
+
return (
|
|
1320
|
+
sourcePortAttr.value === sourcePortId &&
|
|
1321
|
+
sourceChannelAttr.value === sourceChannelId &&
|
|
1322
|
+
sequenceAttr.value === sequence
|
|
1323
|
+
);
|
|
1324
|
+
}
|
|
1325
|
+
});
|
|
1326
|
+
if (!packetEvent) {
|
|
1327
|
+
return -1;
|
|
1328
|
+
}
|
|
1329
|
+
|
|
1330
|
+
return events.indexOf(packetEvent);
|
|
1331
|
+
}
|
|
1332
|
+
|
|
1333
|
+
protected getLastIBCTimeoutPacketBeforeIndexFromTx(
|
|
1334
|
+
tx: any,
|
|
1335
|
+
index: number
|
|
1336
|
+
): number {
|
|
1337
|
+
const events = tx.events;
|
|
1338
|
+
if (!events) {
|
|
1339
|
+
throw new Error("Invalid tx");
|
|
1340
|
+
}
|
|
1341
|
+
if (!Array.isArray(events)) {
|
|
1342
|
+
throw new Error("Invalid tx");
|
|
1343
|
+
}
|
|
1344
|
+
const reversedIndex = events
|
|
1345
|
+
.slice(0, index)
|
|
1346
|
+
.reverse()
|
|
1347
|
+
.findIndex((event) => {
|
|
1348
|
+
if (event.type === "timeout_packet") {
|
|
1349
|
+
return true;
|
|
1350
|
+
}
|
|
1351
|
+
});
|
|
1352
|
+
|
|
1353
|
+
if (reversedIndex >= 0) {
|
|
1354
|
+
return index - reversedIndex - 1;
|
|
1355
|
+
}
|
|
1356
|
+
return -1;
|
|
1357
|
+
}
|
|
1358
|
+
|
|
1107
1359
|
protected getIBCRecvPacketIndexFromTx(
|
|
1108
1360
|
tx: any,
|
|
1109
1361
|
sourcePortId: string,
|