accounts 0.8.9 → 0.9.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/CHANGELOG.md +30 -0
- package/dist/core/Dialog.d.ts +2 -4
- package/dist/core/Dialog.d.ts.map +1 -1
- package/dist/core/Dialog.js +0 -2
- package/dist/core/Dialog.js.map +1 -1
- package/dist/core/Messenger.d.ts +1 -1
- package/dist/core/Messenger.d.ts.map +1 -1
- package/dist/react/Remote.d.ts.map +1 -1
- package/dist/react/Remote.js +52 -36
- package/dist/react/Remote.js.map +1 -1
- package/dist/server/internal/handlers/relay.d.ts.map +1 -1
- package/dist/server/internal/handlers/relay.js +193 -65
- package/dist/server/internal/handlers/relay.js.map +1 -1
- package/package.json +1 -1
- package/src/core/Dialog.ts +2 -5
- package/src/core/Messenger.ts +1 -1
- package/src/react/Remote.ts +57 -36
- package/src/server/internal/handlers/relay.test.ts +56 -2
- package/src/server/internal/handlers/relay.ts +303 -129
|
@@ -1,13 +1,14 @@
|
|
|
1
1
|
import { AbiEvent, Hex, RpcRequest, RpcResponse } from 'ox';
|
|
2
2
|
import { Transaction as core_Transaction } from 'ox/tempo';
|
|
3
|
-
import { createClient, formatUnits, http, parseEventLogs, zeroAddress, } from 'viem';
|
|
3
|
+
import { createClient, decodeFunctionData, formatUnits, http, isAddress, parseEventLogs, zeroAddress, } from 'viem';
|
|
4
4
|
import { simulateCalls } from 'viem/actions';
|
|
5
5
|
import { tempo, tempoDevnet, tempoModerato } from 'viem/chains';
|
|
6
|
-
import { Abis, Actions, Addresses, Capabilities, Transaction } from 'viem/tempo';
|
|
6
|
+
import { Abis, Actions, Addresses, Capabilities, Transaction, VirtualAddress } from 'viem/tempo';
|
|
7
7
|
import * as ExecutionError from '../../../core/ExecutionError.js';
|
|
8
8
|
import * as Schema from '../../../core/Schema.js';
|
|
9
9
|
import { from } from '../../Handler.js';
|
|
10
10
|
import * as Kv from '../../Kv.js';
|
|
11
|
+
import { cached } from '../kv.js';
|
|
11
12
|
import * as Tokenlist from '../tokenlist.js';
|
|
12
13
|
import * as Sponsorship from './sponsorship.js';
|
|
13
14
|
import * as Utils from './utils.js';
|
|
@@ -106,6 +107,11 @@ export function relay(options = {}) {
|
|
|
106
107
|
const requestFeeToken = typeof parameters.feeToken === 'string' ? parameters.feeToken : undefined;
|
|
107
108
|
const externalFeePayerUrl = typeof parameters.feePayer === 'string' ? parameters.feePayer : undefined;
|
|
108
109
|
const requestsSponsorship = (!!feePayerOptions || !!externalFeePayerUrl) && parameters.feePayer !== false;
|
|
110
|
+
const capabilities = (parameters.capabilities ?? {});
|
|
111
|
+
// Default to `true`. Dapps that don't render diffs can pass
|
|
112
|
+
// `capabilities.balanceDiffs: false` to skip the post-fill
|
|
113
|
+
// `tempo_simulateV1` round trip (~250-400ms).
|
|
114
|
+
const requireBalanceDiffs = capabilities.balanceDiffs !== false;
|
|
109
115
|
const { feePayer: _feePayer, ...normalized } = Utils.normalizeFillTransactionRequest(parameters);
|
|
110
116
|
const baseTx = {
|
|
111
117
|
...normalized,
|
|
@@ -120,6 +126,7 @@ export function relay(options = {}) {
|
|
|
120
126
|
? async (insufficientToken) => resolveFeeToken(client, {
|
|
121
127
|
account: from,
|
|
122
128
|
feeToken: undefined,
|
|
129
|
+
kv,
|
|
123
130
|
tokens: (await getTokens(chainId)).filter((t) => t.toLowerCase() !== insufficientToken.toLowerCase()),
|
|
124
131
|
})
|
|
125
132
|
: undefined;
|
|
@@ -156,6 +163,7 @@ export function relay(options = {}) {
|
|
|
156
163
|
filled = await fill(fillClient, {
|
|
157
164
|
autoSwap,
|
|
158
165
|
feeToken,
|
|
166
|
+
kv,
|
|
159
167
|
resolveFeeToken: resolveFeeTokenForSwap,
|
|
160
168
|
transaction,
|
|
161
169
|
});
|
|
@@ -163,8 +171,11 @@ export function relay(options = {}) {
|
|
|
163
171
|
sponsored = true;
|
|
164
172
|
}
|
|
165
173
|
else if (requestsSponsorship && feePayerOptions?.validate) {
|
|
166
|
-
// Path B: sponsorship possible but may be rejected
|
|
167
|
-
//
|
|
174
|
+
// Path B: sponsorship possible but may be rejected.
|
|
175
|
+
// Speculatively fill the sponsored variant, validate, and only
|
|
176
|
+
// fall back to the unsponsored path on rejection. The accept
|
|
177
|
+
// case (common) avoids the upfront `resolveFeeToken` round
|
|
178
|
+
// trips and the second `eth_fillTransaction`.
|
|
168
179
|
const sponsoredTx = { ...baseTx, feePayer: true };
|
|
169
180
|
if (Sponsorship.isPreparedTransaction(sponsoredTx)) {
|
|
170
181
|
// Already prepared — skip fills, just validate sponsorship.
|
|
@@ -180,39 +191,45 @@ export function relay(options = {}) {
|
|
|
180
191
|
filled = prepared;
|
|
181
192
|
}
|
|
182
193
|
else {
|
|
183
|
-
|
|
184
|
-
// node doesn't pick one the user has zero balance of.
|
|
185
|
-
const unsponsoredFeeToken = features.feeTokenResolution
|
|
186
|
-
? await resolveFeeToken(client, {
|
|
187
|
-
account: from,
|
|
188
|
-
feeToken: requestFeeToken,
|
|
189
|
-
tokens: unsponsoredTokens,
|
|
190
|
-
})
|
|
191
|
-
: requestFeeToken;
|
|
192
|
-
const unsponsoredTx = {
|
|
193
|
-
...baseTx,
|
|
194
|
-
...(unsponsoredFeeToken ? { feeToken: unsponsoredFeeToken } : {}),
|
|
195
|
-
};
|
|
196
|
-
const fillOptions = {
|
|
194
|
+
const options = {
|
|
197
195
|
autoSwap,
|
|
196
|
+
kv,
|
|
198
197
|
resolveFeeToken: resolveFeeTokenForSwap,
|
|
199
198
|
};
|
|
200
|
-
const
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
transaction: unsponsoredTx,
|
|
206
|
-
}),
|
|
207
|
-
]);
|
|
199
|
+
const fill_sponsored = await fill(fillClient, {
|
|
200
|
+
...options,
|
|
201
|
+
feeToken,
|
|
202
|
+
transaction: sponsoredTx,
|
|
203
|
+
});
|
|
208
204
|
sponsored = await Sponsorship.shouldSponsor({
|
|
209
205
|
sender: from,
|
|
210
|
-
transaction:
|
|
206
|
+
transaction: fill_sponsored.transaction,
|
|
211
207
|
validate: feePayerOptions.validate,
|
|
212
208
|
});
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
209
|
+
if (sponsored) {
|
|
210
|
+
filled = fill_sponsored;
|
|
211
|
+
}
|
|
212
|
+
else {
|
|
213
|
+
// Sponsor rejected — resolve fee token and fill unsponsored.
|
|
214
|
+
const feeToken_unsponsored = features.feeTokenResolution
|
|
215
|
+
? await resolveFeeToken(client, {
|
|
216
|
+
account: from,
|
|
217
|
+
feeToken: requestFeeToken,
|
|
218
|
+
kv,
|
|
219
|
+
tokens: unsponsoredTokens,
|
|
220
|
+
})
|
|
221
|
+
: requestFeeToken;
|
|
222
|
+
const tx_unsponsored = {
|
|
223
|
+
...baseTx,
|
|
224
|
+
...(feeToken_unsponsored ? { feeToken: feeToken_unsponsored } : {}),
|
|
225
|
+
};
|
|
226
|
+
filled = await fill(client, {
|
|
227
|
+
...options,
|
|
228
|
+
feeToken: feeToken_unsponsored,
|
|
229
|
+
transaction: tx_unsponsored,
|
|
230
|
+
});
|
|
231
|
+
feeToken = feeToken_unsponsored;
|
|
232
|
+
}
|
|
216
233
|
}
|
|
217
234
|
}
|
|
218
235
|
else {
|
|
@@ -221,6 +238,7 @@ export function relay(options = {}) {
|
|
|
221
238
|
? await resolveFeeToken(client, {
|
|
222
239
|
account: from,
|
|
223
240
|
feeToken: requestFeeToken,
|
|
241
|
+
kv,
|
|
224
242
|
tokens: unsponsoredTokens,
|
|
225
243
|
})
|
|
226
244
|
: requestFeeToken;
|
|
@@ -228,6 +246,7 @@ export function relay(options = {}) {
|
|
|
228
246
|
filled = await fill(client, {
|
|
229
247
|
autoSwap,
|
|
230
248
|
feeToken,
|
|
249
|
+
kv,
|
|
231
250
|
resolveFeeToken: resolveFeeTokenForSwap,
|
|
232
251
|
transaction,
|
|
233
252
|
});
|
|
@@ -240,29 +259,49 @@ export function relay(options = {}) {
|
|
|
240
259
|
// Parallelize: simulate, fee payer signing, and autoSwap metadata.
|
|
241
260
|
const alreadySigned = 'feePayerSignature' in transaction_filled &&
|
|
242
261
|
transaction_filled.feePayerSignature != null;
|
|
243
|
-
const
|
|
262
|
+
const calls = extractCalls(transaction_filled);
|
|
263
|
+
const [simulation, transaction_final, autoSwap_, virtualAddresses] = await Promise.all([
|
|
244
264
|
// Simulate and compute balance diffs + fee.
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
265
|
+
// When `capabilities.balanceDiffs` is `false`, skip simulate
|
|
266
|
+
// and compute fee directly from cached metadata.
|
|
267
|
+
(async () => {
|
|
268
|
+
if (!features.simulate)
|
|
269
|
+
return { balanceDiffs: undefined, fee: undefined };
|
|
270
|
+
if (requireBalanceDiffs)
|
|
271
|
+
return simulateAndParseDiffs(client, {
|
|
272
|
+
account: from,
|
|
273
|
+
calls,
|
|
274
|
+
swap,
|
|
275
|
+
feeToken,
|
|
276
|
+
gas: transaction_filled.gas,
|
|
277
|
+
kv,
|
|
278
|
+
maxFeePerGas: transaction_filled.maxFeePerGas,
|
|
279
|
+
});
|
|
280
|
+
const fee = await computeFee(client, {
|
|
250
281
|
feeToken,
|
|
251
282
|
gas: transaction_filled.gas,
|
|
283
|
+
kv,
|
|
252
284
|
maxFeePerGas: transaction_filled.maxFeePerGas,
|
|
253
|
-
})
|
|
254
|
-
|
|
285
|
+
}).catch(() => undefined);
|
|
286
|
+
return { balanceDiffs: undefined, fee };
|
|
287
|
+
})(),
|
|
255
288
|
// Sign as fee payer (if sponsored and not already signed).
|
|
256
|
-
|
|
257
|
-
|
|
289
|
+
(async () => {
|
|
290
|
+
if (!(sponsored && feePayerOptions && !alreadySigned))
|
|
291
|
+
return transaction_filled;
|
|
292
|
+
return Sponsorship.sign({
|
|
258
293
|
account: feePayerOptions.account,
|
|
259
294
|
sender: from,
|
|
260
295
|
transaction: transaction_filled,
|
|
261
|
-
})
|
|
262
|
-
|
|
296
|
+
});
|
|
297
|
+
})(),
|
|
263
298
|
// Resolve autoSwap metadata (when AMM path was taken).
|
|
264
|
-
resolveAutoSwapMetadata(client, { autoSwap, swap }),
|
|
299
|
+
resolveAutoSwapMetadata(client, { autoSwap, kv, swap }),
|
|
300
|
+
// Resolve virtual-address recipients so wallets can show the
|
|
301
|
+
// eventual master address before signing.
|
|
302
|
+
resolveVirtualAddresses(client, { calls }),
|
|
265
303
|
]);
|
|
304
|
+
const { balanceDiffs, fee } = simulation;
|
|
266
305
|
const sponsor = (() => {
|
|
267
306
|
if (!sponsored)
|
|
268
307
|
return undefined;
|
|
@@ -283,6 +322,7 @@ export function relay(options = {}) {
|
|
|
283
322
|
sponsored: !!sponsor,
|
|
284
323
|
...(sponsor ? { sponsor } : {}),
|
|
285
324
|
...(autoSwap_ ? { autoSwap: autoSwap_ } : {}),
|
|
325
|
+
...(virtualAddresses ? { virtualAddresses } : {}),
|
|
286
326
|
},
|
|
287
327
|
},
|
|
288
328
|
}, { request });
|
|
@@ -307,17 +347,21 @@ export function relay(options = {}) {
|
|
|
307
347
|
const normalized = Utils.normalizeFillTransactionRequest(parameters);
|
|
308
348
|
// Simulate from zero address for optimistic balance diffs.
|
|
309
349
|
const optimisticCalls = normalized ? extractCalls(normalized) : undefined;
|
|
310
|
-
const { balanceDiffs } = optimisticCalls
|
|
311
|
-
? await
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
350
|
+
const [{ balanceDiffs }, virtualAddresses] = optimisticCalls
|
|
351
|
+
? await Promise.all([
|
|
352
|
+
simulateAndParseDiffs(client, {
|
|
353
|
+
account: zeroAddress,
|
|
354
|
+
calls: optimisticCalls,
|
|
355
|
+
kv,
|
|
356
|
+
}),
|
|
357
|
+
resolveVirtualAddresses(client, { calls: optimisticCalls }),
|
|
358
|
+
])
|
|
359
|
+
: [{ balanceDiffs: undefined }, undefined];
|
|
316
360
|
// Re-key balance diffs from zero address to the real sender.
|
|
317
361
|
const senderDiffs = parameters.from && balanceDiffs
|
|
318
362
|
? { [parameters.from]: balanceDiffs[zeroAddress] ?? [] }
|
|
319
363
|
: balanceDiffs;
|
|
320
|
-
const metadata = await resolveTokenMetadata(client, token).catch(() => undefined);
|
|
364
|
+
const metadata = await resolveTokenMetadata(client, { token, kv }).catch(() => undefined);
|
|
321
365
|
const deficit = required - available;
|
|
322
366
|
return RpcResponse.from({
|
|
323
367
|
result: {
|
|
@@ -335,16 +379,22 @@ export function relay(options = {}) {
|
|
|
335
379
|
}
|
|
336
380
|
: undefined,
|
|
337
381
|
sponsored: false,
|
|
382
|
+
...(virtualAddresses ? { virtualAddresses } : {}),
|
|
338
383
|
},
|
|
339
384
|
},
|
|
340
385
|
}, { request });
|
|
341
386
|
}
|
|
387
|
+
const normalized = Utils.normalizeFillTransactionRequest(parameters);
|
|
388
|
+
const virtualAddresses = normalized
|
|
389
|
+
? await resolveVirtualAddresses(client, { calls: extractCalls(normalized) }).catch(() => undefined)
|
|
390
|
+
: undefined;
|
|
342
391
|
return RpcResponse.from({
|
|
343
392
|
result: {
|
|
344
393
|
tx: stub,
|
|
345
394
|
capabilities: {
|
|
346
395
|
error: ExecutionError.serialize(revert),
|
|
347
396
|
sponsored: false,
|
|
397
|
+
...(virtualAddresses ? { virtualAddresses } : {}),
|
|
348
398
|
},
|
|
349
399
|
},
|
|
350
400
|
}, { request });
|
|
@@ -409,7 +459,7 @@ export function relay(options = {}) {
|
|
|
409
459
|
}
|
|
410
460
|
// TODO: cleanup
|
|
411
461
|
async function fill(client, options) {
|
|
412
|
-
const { autoSwap, feeToken, transaction: request } = options;
|
|
462
|
+
const { autoSwap, feeToken, kv, transaction: request } = options;
|
|
413
463
|
// Skip re-formatting if already in RPC format (e.g. from viem's fillTransaction).
|
|
414
464
|
const format = (value) => value.type === '0x76' ? value : Utils.formatFillTransactionRequest(client, value);
|
|
415
465
|
// Re-fill the transaction with prepended swap calls so the user can
|
|
@@ -505,7 +555,7 @@ async function fill(client, options) {
|
|
|
505
555
|
Actions.token
|
|
506
556
|
.getBalance(client, { account: fromAddress, token: resolvedFeeToken })
|
|
507
557
|
.catch(() => 0n),
|
|
508
|
-
resolveTokenMetadata(client, resolvedFeeToken).catch(() => undefined),
|
|
558
|
+
resolveTokenMetadata(client, { token: resolvedFeeToken, kv }).catch(() => undefined),
|
|
509
559
|
]);
|
|
510
560
|
if (metadata) {
|
|
511
561
|
const requiredFee = (gas * maxFeePerGas) / 10n ** BigInt(Math.max(0, 18 - metadata.decimals));
|
|
@@ -545,13 +595,26 @@ async function fill(client, options) {
|
|
|
545
595
|
}
|
|
546
596
|
}
|
|
547
597
|
async function resolveFeeToken(client, options) {
|
|
548
|
-
const { feeToken, account, tokens } = options;
|
|
598
|
+
const { feeToken, account, kv, tokens } = options;
|
|
549
599
|
if (feeToken)
|
|
550
600
|
return feeToken;
|
|
551
601
|
if (!account)
|
|
552
602
|
return undefined;
|
|
603
|
+
// Cache the user's preferred fee token for `userTokenCacheTtl` seconds.
|
|
604
|
+
// The on-chain preference rarely changes; a short TTL avoids the
|
|
605
|
+
// ~150-250ms `userTokens` multicall on every unsponsored fill while
|
|
606
|
+
// still picking up updates within a minute. The cached value is just a
|
|
607
|
+
// hint — if the user's balance is 0 we fall back to the highest-balance
|
|
608
|
+
// token from the configured list.
|
|
609
|
+
const getUserToken = () => Actions.fee.getUserToken(client, { account }).catch(() => null);
|
|
610
|
+
const userTokenPromise = kv
|
|
611
|
+
? cached(kv, `fee.userToken:${client.chain?.id ?? 0}:${account.toLowerCase()}`, async () => {
|
|
612
|
+
const result = await getUserToken();
|
|
613
|
+
return result ? { address: result.address } : null;
|
|
614
|
+
}, { ttl: options.userTokenCacheTtl ?? 60 })
|
|
615
|
+
: getUserToken();
|
|
553
616
|
const [userToken, balances] = await Promise.all([
|
|
554
|
-
|
|
617
|
+
userTokenPromise,
|
|
555
618
|
tokens
|
|
556
619
|
? Promise.all(tokens.map(async (token) => ({
|
|
557
620
|
address: token,
|
|
@@ -613,6 +676,57 @@ function callTargetTokens(transaction) {
|
|
|
613
676
|
}
|
|
614
677
|
return out;
|
|
615
678
|
}
|
|
679
|
+
async function resolveVirtualAddresses(client, options) {
|
|
680
|
+
const targets = getVirtualAddressTargets(options.calls);
|
|
681
|
+
if (targets.length === 0)
|
|
682
|
+
return undefined;
|
|
683
|
+
const masters = new Map();
|
|
684
|
+
for (const address of targets) {
|
|
685
|
+
const { masterId } = VirtualAddress.parse(address);
|
|
686
|
+
const lower = masterId.toLowerCase();
|
|
687
|
+
const entry = masters.get(lower) ?? { addresses: [], masterId };
|
|
688
|
+
entry.addresses.push(address);
|
|
689
|
+
masters.set(lower, entry);
|
|
690
|
+
}
|
|
691
|
+
const entries = await Promise.all([...masters.values()].map(async ({ addresses, masterId }) => {
|
|
692
|
+
const master = await Actions.virtualAddress.getMasterAddress(client, { masterId });
|
|
693
|
+
return addresses.map((address) => [address, master]);
|
|
694
|
+
}));
|
|
695
|
+
return Object.fromEntries(entries.flat());
|
|
696
|
+
}
|
|
697
|
+
function getVirtualAddressTargets(calls) {
|
|
698
|
+
const targets = new Set();
|
|
699
|
+
for (const call of calls) {
|
|
700
|
+
for (const address of [call.to, decodeTransferRecipient(call.data)]) {
|
|
701
|
+
if (!address || !isAddress(address) || !VirtualAddress.isVirtual(address))
|
|
702
|
+
continue;
|
|
703
|
+
targets.add(address.toLowerCase());
|
|
704
|
+
}
|
|
705
|
+
}
|
|
706
|
+
return [...targets];
|
|
707
|
+
}
|
|
708
|
+
function decodeTransferRecipient(data) {
|
|
709
|
+
if (!data)
|
|
710
|
+
return undefined;
|
|
711
|
+
const selector = data.slice(0, 10).toLowerCase();
|
|
712
|
+
if (!transferSelectors.has(selector))
|
|
713
|
+
return undefined;
|
|
714
|
+
try {
|
|
715
|
+
const { args, functionName } = decodeFunctionData({
|
|
716
|
+
abi: Abis.tip20,
|
|
717
|
+
data: data,
|
|
718
|
+
});
|
|
719
|
+
if ((functionName === 'transfer' || functionName === 'transferWithMemo') &&
|
|
720
|
+
typeof args[0] === 'string')
|
|
721
|
+
return args[0];
|
|
722
|
+
if ((functionName === 'transferFrom' || functionName === 'transferFromWithMemo') &&
|
|
723
|
+
typeof args[1] === 'string')
|
|
724
|
+
return args[1];
|
|
725
|
+
}
|
|
726
|
+
catch { }
|
|
727
|
+
return undefined;
|
|
728
|
+
}
|
|
729
|
+
const transferSelectors = new Set(['0xa9059cbb', '0x95777d59', '0x23b872dd', '0x929c2539']);
|
|
616
730
|
// TODO: cleanup/remove
|
|
617
731
|
function extractCalls(transaction) {
|
|
618
732
|
const calls = transaction.calls;
|
|
@@ -656,7 +770,7 @@ async function simulate(client, options) {
|
|
|
656
770
|
}
|
|
657
771
|
}
|
|
658
772
|
async function simulateAndParseDiffs(client, options) {
|
|
659
|
-
const { account, calls, swap, feeToken, gas, maxFeePerGas } = options;
|
|
773
|
+
const { account, calls, swap, feeToken, gas, kv, maxFeePerGas } = options;
|
|
660
774
|
try {
|
|
661
775
|
const { results, tokenMetadata } = await simulate(client, {
|
|
662
776
|
account: account === zeroAddress ? undefined : account,
|
|
@@ -671,6 +785,7 @@ async function simulateAndParseDiffs(client, options) {
|
|
|
671
785
|
const balanceDiffs = account
|
|
672
786
|
? await buildBalanceDiffs(client, {
|
|
673
787
|
account,
|
|
788
|
+
kv,
|
|
674
789
|
logs,
|
|
675
790
|
swap,
|
|
676
791
|
tokenMetadata: tokenMetadata,
|
|
@@ -680,6 +795,7 @@ async function simulateAndParseDiffs(client, options) {
|
|
|
680
795
|
const fee = await computeFee(client, {
|
|
681
796
|
feeToken,
|
|
682
797
|
gas,
|
|
798
|
+
kv,
|
|
683
799
|
maxFeePerGas,
|
|
684
800
|
tokenMetadata: tokenMetadata,
|
|
685
801
|
}).catch(() => undefined);
|
|
@@ -688,12 +804,12 @@ async function simulateAndParseDiffs(client, options) {
|
|
|
688
804
|
catch {
|
|
689
805
|
// Simulation failures should not block the fill response —
|
|
690
806
|
// return empty diffs with fee computed from transaction fields.
|
|
691
|
-
const fee = await computeFee(client, { feeToken, gas, maxFeePerGas });
|
|
807
|
+
const fee = await computeFee(client, { feeToken, gas, kv, maxFeePerGas });
|
|
692
808
|
return { balanceDiffs: undefined, fee };
|
|
693
809
|
}
|
|
694
810
|
}
|
|
695
811
|
async function buildBalanceDiffs(client, options) {
|
|
696
|
-
const { account, logs, swap, tokenMetadata } = options;
|
|
812
|
+
const { account, kv, logs, swap, tokenMetadata } = options;
|
|
697
813
|
const accountLower = account.toLowerCase();
|
|
698
814
|
const dexLower = Addresses.stablecoinDex.toLowerCase();
|
|
699
815
|
const swapTokenIn = swap?.tokenIn.toLowerCase();
|
|
@@ -772,7 +888,11 @@ async function buildBalanceDiffs(client, options) {
|
|
|
772
888
|
const metadataMap = new Map();
|
|
773
889
|
await Promise.all(entries.map(async (entry) => {
|
|
774
890
|
try {
|
|
775
|
-
const metadata = await resolveTokenMetadata(client,
|
|
891
|
+
const metadata = await resolveTokenMetadata(client, {
|
|
892
|
+
token: entry.token,
|
|
893
|
+
tokenMetadata,
|
|
894
|
+
kv,
|
|
895
|
+
});
|
|
776
896
|
metadataMap.set(entry.token.toLowerCase(), metadata);
|
|
777
897
|
}
|
|
778
898
|
catch { }
|
|
@@ -799,9 +919,17 @@ async function buildBalanceDiffs(client, options) {
|
|
|
799
919
|
}
|
|
800
920
|
return { [account]: diffs };
|
|
801
921
|
}
|
|
802
|
-
async function resolveTokenMetadata(client,
|
|
922
|
+
async function resolveTokenMetadata(client, options) {
|
|
923
|
+
const { token, tokenMetadata, kv } = options;
|
|
803
924
|
const meta = tokenMetadata?.[token] ?? tokenMetadata?.[token.toLowerCase()];
|
|
804
|
-
|
|
925
|
+
// TIP-20 metadata (decimals/symbol/name) is immutable per token, so cache
|
|
926
|
+
// long-term in KV. Skips the multicall RPC on cache hits.
|
|
927
|
+
const fetcher = () => Actions.token.getMetadata(client, { token });
|
|
928
|
+
const fallback = kv
|
|
929
|
+
? await cached(kv, `tokenMetadata:${client.chain?.id ?? 0}:${token.toLowerCase()}`, fetcher, {
|
|
930
|
+
ttl: 24 * 60 * 60,
|
|
931
|
+
})
|
|
932
|
+
: await fetcher();
|
|
805
933
|
return {
|
|
806
934
|
decimals: fallback.decimals ?? 6,
|
|
807
935
|
symbol: meta?.symbol || fallback.symbol,
|
|
@@ -809,12 +937,12 @@ async function resolveTokenMetadata(client, token, tokenMetadata) {
|
|
|
809
937
|
};
|
|
810
938
|
}
|
|
811
939
|
async function resolveAutoSwapMetadata(client, options) {
|
|
812
|
-
const { autoSwap, swap } = options;
|
|
940
|
+
const { autoSwap, kv, swap } = options;
|
|
813
941
|
if (!autoSwap || !swap)
|
|
814
942
|
return undefined;
|
|
815
943
|
const [inMeta, outMeta] = await Promise.all([
|
|
816
|
-
resolveTokenMetadata(client, swap.tokenIn).catch(() => undefined),
|
|
817
|
-
resolveTokenMetadata(client, swap.tokenOut).catch(() => undefined),
|
|
944
|
+
resolveTokenMetadata(client, { token: swap.tokenIn, kv }).catch(() => undefined),
|
|
945
|
+
resolveTokenMetadata(client, { token: swap.tokenOut, kv }).catch(() => undefined),
|
|
818
946
|
]);
|
|
819
947
|
if (!inMeta || !outMeta)
|
|
820
948
|
return undefined;
|
|
@@ -840,11 +968,11 @@ async function resolveAutoSwapMetadata(client, options) {
|
|
|
840
968
|
};
|
|
841
969
|
}
|
|
842
970
|
async function computeFee(client, options) {
|
|
843
|
-
const { feeToken, gas, maxFeePerGas, tokenMetadata } = options;
|
|
971
|
+
const { feeToken, gas, kv, maxFeePerGas, tokenMetadata } = options;
|
|
844
972
|
if (!feeToken || !gas || !maxFeePerGas)
|
|
845
973
|
return undefined;
|
|
846
974
|
try {
|
|
847
|
-
const metadata = await resolveTokenMetadata(client, feeToken, tokenMetadata);
|
|
975
|
+
const metadata = await resolveTokenMetadata(client, { token: feeToken, tokenMetadata, kv });
|
|
848
976
|
const raw = gas * maxFeePerGas;
|
|
849
977
|
const amount = raw / 10n ** BigInt(18 - metadata.decimals);
|
|
850
978
|
return {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"relay.js","sourceRoot":"","sources":["../../../../src/server/internal/handlers/relay.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"relay.js","sourceRoot":"","sources":["../../../../src/server/internal/handlers/relay.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,GAAG,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,IAAI,CAAA;AAC3D,OAAO,EAAE,WAAW,IAAI,gBAAgB,EAAE,MAAM,UAAU,CAAA;AAC1D,OAAO,EAKL,YAAY,EACZ,kBAAkB,EAClB,WAAW,EACX,IAAI,EACJ,SAAS,EAET,cAAc,EAEd,WAAW,GACZ,MAAM,MAAM,CAAA;AAEb,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAA;AAC5C,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAC/D,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,YAAY,CAAA;AAEhG,OAAO,KAAK,cAAc,MAAM,iCAAiC,CAAA;AACjE,OAAO,KAAK,MAAM,MAAM,yBAAyB,CAAA;AACjD,OAAO,EAAgB,IAAI,EAAE,MAAM,kBAAkB,CAAA;AACrD,OAAO,KAAK,EAAE,MAAM,aAAa,CAAA;AACjC,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAA;AACjC,OAAO,KAAK,SAAS,MAAM,iBAAiB,CAAA;AAC5C,OAAO,KAAK,WAAW,MAAM,kBAAkB,CAAA;AAC/C,OAAO,KAAK,KAAK,MAAM,YAAY,CAAA;AAEnC,4EAA4E;AAC5E,MAAM,eAAe,GAAG,EAAE,GAAG,EAAE,CAAA;AAE/B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AACH,MAAM,UAAU,KAAK,CAAC,UAAyB,EAAE;IAC/C,MAAM,EACJ,QAAQ,GAAG,eAAe,EAC1B,MAAM,GAAG,CAAC,KAAK,EAAE,aAAa,EAAE,WAAW,CAAC,EAC5C,EAAE,GAAG,EAAE,CAAC,MAAM,EAAE,EAChB,SAAS,EACT,IAAI,GAAG,GAAG,EACV,aAAa,EACb,UAAU,GAAG,EAAE,EACf,GAAG,IAAI,EACR,GAAG,OAAO,CAAA;IACX,MAAM,eAAe,GAAG,OAAO,CAAC,QAAQ,CAAA;IAExC,2EAA2E;IAC3E,0EAA0E;IAC1E,sEAAsE;IACtE,MAAM,SAAS,GAAG,KAAK,EAAE,OAAe,EAA+B,EAAE;QACvE,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,KAAK,CAAC,OAAO,EAAE,EAAE,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,aAAa,EAAE,CAAC,CAAA;QACxF,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAA;IACrC,CAAC,CAAA;IAED,MAAM,QAAQ,GAAG;QACf,QAAQ,EAAE,OAAO,CAAC,QAAQ,IAAI,OAAO,CAAC,QAAQ,KAAK,KAAK;QACxD,kBAAkB,EAAE,OAAO,CAAC,aAAa,IAAI,OAAO,CAAC,QAAQ,KAAK,KAAK;QACvE,QAAQ,EAAE,OAAO,CAAC,QAAQ,KAAK,KAAK;KACrC,CAAA;IAED,MAAM,QAAQ,GAAG,CAAC,GAAG,EAAE;QACrB,IAAI,CAAC,QAAQ,CAAC,QAAQ;YAAE,OAAO,SAAS,CAAA;QACxC,IAAI,OAAO,CAAC,QAAQ,KAAK,KAAK;YAAE,OAAO,SAAS,CAAA;QAChD,OAAO;YACL,QAAQ,EACN,CAAC,OAAO,OAAO,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,IAAI;SAC1F,CAAA;IACH,CAAC,CAAC,EAAE,CAAA;IAEJ,MAAM,OAAO,GAAG,IAAI,GAAG,EAAkB,CAAA;IACzC,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,MAAM,SAAS,GAAG,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,IAAI,EAAE,CAAA;QAChD,OAAO,CAAC,GAAG,CACT,KAAK,CAAC,EAAE,EACR,YAAY,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,SAAS,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,EAAE,EAAE,SAAS,EAAE,CAAC,CAC/E,CAAA;IACH,CAAC;IAED,SAAS,SAAS,CAAC,OAAgB;QACjC,IAAI,OAAO,EAAE,CAAC;YACZ,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;YACnC,IAAI,CAAC,MAAM;gBAAE,MAAM,IAAI,KAAK,CAAC,SAAS,OAAO,iBAAiB,CAAC,CAAA;YAC/D,OAAO,MAAM,CAAA;QACf,CAAC;QACD,OAAO,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAE,CAAC,EAAE,CAAE,CAAA;IACpC,CAAC;IAED,KAAK,UAAU,aAAa,CAC1B,OAAyC,EACzC,OAA0C;QAE1C,MAAM,SAAS,EAAE,CAAC,OAAO,CAAC,CAAA;QAE1B,gGAAgG;QAChG,MAAM,MAAM,GAAG,QAAQ,IAAI,OAAO,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAA;QACzF,MAAM,KAAK,GACT,OAAO,MAAM,CAAC,CAAC,CAAC,KAAK,QAAQ,IAAI,MAAM,CAAC,CAAC,CAAC;YACxC,CAAC,CAAE,MAAM,CAAC,CAAC,CAA6B;YACxC,CAAC,CAAC,SAAS,CAAA;QACf,MAAM,OAAO,GAAG,KAAK,CAAC,cAAc,CAAC,KAAK,EAAE,OAAO,CAAC,IAAI,OAAO,EAAE,OAAO,IAAI,MAAM,CAAC,CAAC,CAAE,CAAC,EAAE,CAAA;QACzF,MAAM,MAAM,GAAG,SAAS,CAAC,OAAO,CAAC,CAAA;QAEjC,QAAQ,OAAO,CAAC,MAAM,EAAE,CAAC;YACvB,KAAK,qBAAqB,CAAC,CAAC,CAAC;gBAC3B,IAAI,CAAC;oBACH,MAAM,UAAU,GAAG,MAAM,CAAC,CAAC,CAA4B,CAAA;oBACvD,MAAM,IAAI,GACR,OAAO,UAAU,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAE,UAAU,CAAC,IAAgB,CAAC,CAAC,CAAC,SAAS,CAAA;oBAChF,MAAM,eAAe,GACnB,OAAO,UAAU,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAE,UAAU,CAAC,QAAoB,CAAC,CAAC,CAAC,SAAS,CAAA;oBACxF,MAAM,mBAAmB,GACvB,OAAO,UAAU,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAA;oBAC3E,MAAM,mBAAmB,GACvB,CAAC,CAAC,CAAC,eAAe,IAAI,CAAC,CAAC,mBAAmB,CAAC,IAAI,UAAU,CAAC,QAAQ,KAAK,KAAK,CAAA;oBAC/E,MAAM,YAAY,GAAG,CAAC,UAAU,CAAC,YAAY,IAAI,EAAE,CAA4B,CAAA;oBAC/E,4DAA4D;oBAC5D,2DAA2D;oBAC3D,8CAA8C;oBAC9C,MAAM,mBAAmB,GAAG,YAAY,CAAC,YAAY,KAAK,KAAK,CAAA;oBAE/D,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,GAAG,UAAU,EAAE,GAC1C,KAAK,CAAC,+BAA+B,CAAC,UAAU,CAAC,CAAA;oBACnD,MAAM,MAAM,GAAG;wBACb,GAAG,UAAU;wBACb,GAAG,CAAC,OAAO,OAAO,KAAK,WAAW,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;wBACtD,GAAG,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,eAAe,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;qBAC1D,CAAA;oBAED,IAAI,MAAwC,CAAA;oBAC5C,IAAI,SAAS,GAAG,KAAK,CAAA;oBACrB,IAAI,QAAQ,GAAG,eAAe,CAAA;oBAE9B,8DAA8D;oBAC9D,MAAM,sBAAsB,GAAG,IAAI;wBACjC,CAAC,CAAC,KAAK,EAAE,iBAA0B,EAAE,EAAE,CACnC,eAAe,CAAC,MAAM,EAAE;4BACtB,OAAO,EAAE,IAAI;4BACb,QAAQ,EAAE,SAAS;4BACnB,EAAE;4BACF,MAAM,EAAE,CAAC,MAAM,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CACvC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,KAAK,iBAAiB,CAAC,WAAW,EAAE,CAC3D;yBACF,CAAC;wBACN,CAAC,CAAC,SAAS,CAAA;oBAEb,gEAAgE;oBAChE,+DAA+D;oBAC/D,yDAAyD;oBACzD,6DAA6D;oBAC7D,4DAA4D;oBAC5D,MAAM,gBAAgB,GAAG,MAAM,SAAS,CAAC,OAAO,CAAC,CAAA;oBACjD,MAAM,iBAAiB,GAAG;wBACxB,GAAG,gBAAgB;wBACnB,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAC,MAAM,CAChC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC,WAAW,EAAE,CAAC,CAC5E;qBACF,CAAA;oBAED,8DAA8D;oBAC9D,uDAAuD;oBACvD,MAAM,UAAU,GAAG,mBAAmB;wBACpC,CAAC,CAAC,YAAY,CAAC;4BACX,KAAK,EAAE,MAAM,CAAC,KAAK;4BACnB,KAAK,EAAE,EAAE,SAAS,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,EAAE;4BAC1C,SAAS,EAAE,IAAI,CAAC,mBAAmB,CAAC;yBACrC,CAAC;wBACJ,CAAC,CAAC,MAAM,CAAA;oBAEV,IAAI,mBAAmB,IAAI,CAAC,eAAe,EAAE,QAAQ,EAAE,CAAC;wBACtD,gEAAgE;wBAChE,kEAAkE;wBAClE,MAAM,WAAW,GAAG,EAAE,GAAG,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAA;wBACjD,IAAI,WAAW,CAAC,qBAAqB,CAAC,WAAW,CAAC,EAAE,CAAC;4BACnD,MAAM,GAAG;gCACP,WAAW,EAAE,KAAK,CAAC,yBAAyB,CAAC,WAAW,CAAC;gCACzD,OAAO,EAAE,SAAS;6BACnB,CAAA;wBACH,CAAC;6BAAM,CAAC;4BACN,MAAM,GAAG,MAAM,IAAI,CAAC,UAAU,EAAE;gCAC9B,QAAQ;gCACR,QAAQ;gCACR,EAAE;gCACF,eAAe,EAAE,sBAAsB;gCACvC,WAAW;6BACZ,CAAC,CAAA;wBACJ,CAAC;wBACD,SAAS,GAAG,IAAI,CAAA;oBAClB,CAAC;yBAAM,IAAI,mBAAmB,IAAI,eAAe,EAAE,QAAQ,EAAE,CAAC;wBAC5D,oDAAoD;wBACpD,+DAA+D;wBAC/D,6DAA6D;wBAC7D,2DAA2D;wBAC3D,8CAA8C;wBAC9C,MAAM,WAAW,GAAG,EAAE,GAAG,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAA;wBAEjD,IAAI,WAAW,CAAC,qBAAqB,CAAC,WAAW,CAAC,EAAE,CAAC;4BACnD,4DAA4D;4BAC5D,MAAM,QAAQ,GAAG;gCACf,WAAW,EAAE,KAAK,CAAC,yBAAyB,CAAC,WAAW,CAAC;gCACzD,OAAO,EAAE,SAAS;6BACnB,CAAA;4BACD,SAAS,GAAG,MAAM,WAAW,CAAC,aAAa,CAAC;gCAC1C,MAAM,EAAE,IAAI;gCACZ,WAAW,EAAE,QAAQ,CAAC,WAAW;gCACjC,QAAQ,EAAE,eAAgB,CAAC,QAAQ;6BACpC,CAAC,CAAA;4BACF,MAAM,GAAG,QAAQ,CAAA;wBACnB,CAAC;6BAAM,CAAC;4BACN,MAAM,OAAO,GAAG;gCACd,QAAQ;gCACR,EAAE;gCACF,eAAe,EAAE,sBAAsB;6BACxC,CAAA;4BACD,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,UAAU,EAAE;gCAC5C,GAAG,OAAO;gCACV,QAAQ;gCACR,WAAW,EAAE,WAAW;6BACzB,CAAC,CAAA;4BACF,SAAS,GAAG,MAAM,WAAW,CAAC,aAAa,CAAC;gCAC1C,MAAM,EAAE,IAAI;gCACZ,WAAW,EAAE,cAAc,CAAC,WAAW;gCACvC,QAAQ,EAAE,eAAgB,CAAC,QAAQ;6BACpC,CAAC,CAAA;4BACF,IAAI,SAAS,EAAE,CAAC;gCACd,MAAM,GAAG,cAAc,CAAA;4BACzB,CAAC;iCAAM,CAAC;gCACN,6DAA6D;gCAC7D,MAAM,oBAAoB,GAAG,QAAQ,CAAC,kBAAkB;oCACtD,CAAC,CAAC,MAAM,eAAe,CAAC,MAAM,EAAE;wCAC5B,OAAO,EAAE,IAAI;wCACb,QAAQ,EAAE,eAAe;wCACzB,EAAE;wCACF,MAAM,EAAE,iBAAiB;qCAC1B,CAAC;oCACJ,CAAC,CAAC,eAAe,CAAA;gCACnB,MAAM,cAAc,GAAG;oCACrB,GAAG,MAAM;oCACT,GAAG,CAAC,oBAAoB,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,oBAAoB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;iCACpE,CAAA;gCACD,MAAM,GAAG,MAAM,IAAI,CAAC,MAAM,EAAE;oCAC1B,GAAG,OAAO;oCACV,QAAQ,EAAE,oBAAoB;oCAC9B,WAAW,EAAE,cAAc;iCAC5B,CAAC,CAAA;gCACF,QAAQ,GAAG,oBAAoB,CAAA;4BACjC,CAAC;wBACH,CAAC;oBACH,CAAC;yBAAM,CAAC;wBACN,oEAAoE;wBACpE,QAAQ,GAAG,QAAQ,CAAC,kBAAkB;4BACpC,CAAC,CAAC,MAAM,eAAe,CAAC,MAAM,EAAE;gCAC5B,OAAO,EAAE,IAAI;gCACb,QAAQ,EAAE,eAAe;gCACzB,EAAE;gCACF,MAAM,EAAE,iBAAiB;6BAC1B,CAAC;4BACJ,CAAC,CAAC,eAAe,CAAA;wBACnB,MAAM,WAAW,GAAG,EAAE,GAAG,MAAM,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAA;wBACpE,MAAM,GAAG,MAAM,IAAI,CAAC,MAAM,EAAE;4BAC1B,QAAQ;4BACR,QAAQ;4BACR,EAAE;4BACF,eAAe,EAAE,sBAAsB;4BACvC,WAAW;yBACZ,CAAC,CAAA;oBACJ,CAAC;oBAED,MAAM,kBAAkB,GAAG,MAAM,CAAC,WAAW,CAAA;oBAC7C,MAAM,IAAI,GAAG,MAAM,IAAI,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAA;oBACvD,IAAI,CAAC,QAAQ;wBACX,QAAQ;4BACL,kBAAkB,CAAC,QAAgC,IAAI,CAAC,MAAM,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;oBAEzF,mEAAmE;oBACnE,MAAM,aAAa,GACjB,mBAAmB,IAAI,kBAAkB;wBACzC,kBAAkB,CAAC,iBAAiB,IAAI,IAAI,CAAA;oBAE9C,MAAM,KAAK,GAAG,YAAY,CAAC,kBAAkB,CAAC,CAAA;oBAC9C,MAAM,CAAC,UAAU,EAAE,iBAAiB,EAAE,SAAS,EAAE,gBAAgB,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;wBACrF,4CAA4C;wBAC5C,6DAA6D;wBAC7D,iDAAiD;wBACjD,CAAC,KAAK,IAAI,EAAE;4BACV,IAAI,CAAC,QAAQ,CAAC,QAAQ;gCAAE,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,GAAG,EAAE,SAAS,EAAE,CAAA;4BAC1E,IAAI,mBAAmB;gCACrB,OAAO,qBAAqB,CAAC,MAAM,EAAE;oCACnC,OAAO,EAAE,IAAI;oCACb,KAAK;oCACL,IAAI;oCACJ,QAAQ;oCACR,GAAG,EAAE,kBAAkB,CAAC,GAAG;oCAC3B,EAAE;oCACF,YAAY,EAAE,kBAAkB,CAAC,YAAY;iCAC9C,CAAC,CAAA;4BACJ,MAAM,GAAG,GAAG,MAAM,UAAU,CAAC,MAAM,EAAE;gCACnC,QAAQ;gCACR,GAAG,EAAE,kBAAkB,CAAC,GAAG;gCAC3B,EAAE;gCACF,YAAY,EAAE,kBAAkB,CAAC,YAAY;6BAC9C,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAA;4BACzB,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,GAAG,EAAE,CAAA;wBACzC,CAAC,CAAC,EAAE;wBACJ,2DAA2D;wBAC3D,CAAC,KAAK,IAAI,EAAE;4BACV,IAAI,CAAC,CAAC,SAAS,IAAI,eAAe,IAAI,CAAC,aAAa,CAAC;gCAAE,OAAO,kBAAkB,CAAA;4BAChF,OAAO,WAAW,CAAC,IAAI,CAAC;gCACtB,OAAO,EAAE,eAAe,CAAC,OAAO;gCAChC,MAAM,EAAE,IAAI;gCACZ,WAAW,EAAE,kBAAkB;6BAChC,CAAC,CAAA;wBACJ,CAAC,CAAC,EAAE;wBACJ,uDAAuD;wBACvD,uBAAuB,CAAC,MAAM,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC;wBACvD,6DAA6D;wBAC7D,0CAA0C;wBAC1C,uBAAuB,CAAC,MAAM,EAAE,EAAE,KAAK,EAAE,CAAC;qBAC3C,CAAC,CAAA;oBACF,MAAM,EAAE,YAAY,EAAE,GAAG,EAAE,GAAG,UAAU,CAAA;oBAExC,MAAM,OAAO,GAAG,CAAC,GAAG,EAAE;wBACpB,IAAI,CAAC,SAAS;4BAAE,OAAO,SAAS,CAAA;wBAChC,6EAA6E;wBAC7E,IAAI,mBAAmB;4BAAE,OAAO,MAAM,CAAC,OAAO,CAAA;wBAC9C,IAAI,eAAe;4BAAE,OAAO,WAAW,CAAC,UAAU,CAAC,eAAe,CAAC,CAAA;wBACnE,OAAO,MAAM,CAAC,OAAO,CAAA;oBACvB,CAAC,CAAC,EAAE,CAAA;oBAEJ,OAAO,WAAW,CAAC,IAAI,CACrB;wBACE,MAAM,EAAE;4BACN,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;4BAC/B,EAAE,EAAE,gBAAgB,CAAC,KAAK,CAAC,iBAAiD,CAAC;4BAC7E,YAAY,EAAE;gCACZ,YAAY;gCACZ,GAAG;gCACH,SAAS,EAAE,CAAC,CAAC,OAAO;gCACpB,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gCAC/B,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gCAC7C,GAAG,CAAC,gBAAgB,CAAC,CAAC,CAAC,EAAE,gBAAgB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;6BAClD;yBACF;qBACF,EACD,EAAE,OAAO,EAAE,CACZ,CAAA;gBACH,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,IAAI,CAAC,CAAC,KAAK,YAAY,KAAK,CAAC;wBAAE,OAAO,KAAK,CAAC,YAAY,CAAC,OAAO,EAAE,KAAK,CAAC,CAAA;oBAExE,MAAM,MAAM,GAAG,cAAc,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;oBAE1C,MAAM,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAA;oBACpC,MAAM,IAAI,GAAG;wBACX,IAAI,EAAE,UAAU,CAAC,IAAI;wBACrB,EAAE,EAAE,UAAU,CAAC,EAAE,IAAI,IAAI;wBACzB,GAAG,EAAE,KAAK;wBACV,KAAK,EAAE,KAAK;wBACZ,KAAK,EAAE,KAAK;wBACZ,YAAY,EAAE,KAAK;wBACnB,oBAAoB,EAAE,KAAK;qBAC5B,CAAA;oBAED,IAAI,MAAM,EAAE,SAAS,KAAK,qBAAqB,EAAE,CAAC;wBAChD,MAAM,IAAI,GAAG,MAAM,CAAC,IAAiC,CAAA;wBACrD,MAAM,CAAC,SAAS,EAAE,QAAQ,EAAE,KAAK,CAAC,GAAG,IAAI,CAAA;wBAEzC,MAAM,UAAU,GAAG,KAAK,CAAC,+BAA+B,CAAC,UAAU,CAAC,CAAA;wBAEpE,2DAA2D;wBAC3D,MAAM,eAAe,GAAG,UAAU,CAAC,CAAC,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;wBACzE,MAAM,CAAC,EAAE,YAAY,EAAE,EAAE,gBAAgB,CAAC,GAAG,eAAe;4BAC1D,CAAC,CAAC,MAAM,OAAO,CAAC,GAAG,CAAC;gCAChB,qBAAqB,CAAC,MAAM,EAAE;oCAC5B,OAAO,EAAE,WAAW;oCACpB,KAAK,EAAE,eAAe;oCACtB,EAAE;iCACH,CAAC;gCACF,uBAAuB,CAAC,MAAM,EAAE,EAAE,KAAK,EAAE,eAAe,EAAE,CAAC;6BAC5D,CAAC;4BACJ,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,SAAS,EAAE,EAAE,SAAS,CAAC,CAAA;wBAE5C,6DAA6D;wBAC7D,MAAM,WAAW,GACf,UAAU,CAAC,IAAI,IAAI,YAAY;4BAC7B,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,YAAY,CAAC,WAAW,CAAC,IAAI,EAAE,EAAE;4BACxD,CAAC,CAAC,YAAY,CAAA;wBAElB,MAAM,QAAQ,GAAG,MAAM,oBAAoB,CAAC,MAAM,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC,KAAK,CACtE,GAAG,EAAE,CAAC,SAAS,CAChB,CAAA;wBACD,MAAM,OAAO,GAAG,QAAQ,GAAG,SAAS,CAAA;wBACpC,OAAO,WAAW,CAAC,IAAI,CACrB;4BACE,MAAM,EAAE;gCACN,EAAE,EAAE,IAAI;gCACR,YAAY,EAAE;oCACZ,YAAY,EAAE,WAAW;oCACzB,KAAK,EAAE,cAAc,CAAC,SAAS,CAAC,MAAM,CAAC;oCACvC,YAAY,EAAE,QAAQ;wCACpB,CAAC,CAAC;4CACE,MAAM,EAAE,GAAG,CAAC,UAAU,CAAC,OAAO,CAAkB;4CAChD,QAAQ,EAAE,QAAQ,CAAC,QAAQ;4CAC3B,SAAS,EAAE,WAAW,CAAC,OAAO,EAAE,QAAQ,CAAC,QAAQ,CAAC;4CAClD,KAAK;4CACL,MAAM,EAAE,QAAQ,CAAC,MAAM;yCACxB;wCACH,CAAC,CAAC,SAAS;oCACb,SAAS,EAAE,KAAK;oCAChB,GAAG,CAAC,gBAAgB,CAAC,CAAC,CAAC,EAAE,gBAAgB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;iCAClD;6BACF;yBACF,EACD,EAAE,OAAO,EAAE,CACZ,CAAA;oBACH,CAAC;oBAED,MAAM,UAAU,GAAG,KAAK,CAAC,+BAA+B,CAAC,UAAU,CAAC,CAAA;oBACpE,MAAM,gBAAgB,GAAG,UAAU;wBACjC,CAAC,CAAC,MAAM,uBAAuB,CAAC,MAAM,EAAE,EAAE,KAAK,EAAE,YAAY,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,KAAK,CAC9E,GAAG,EAAE,CAAC,SAAS,CAChB;wBACH,CAAC,CAAC,SAAS,CAAA;oBAEb,OAAO,WAAW,CAAC,IAAI,CACrB;wBACE,MAAM,EAAE;4BACN,EAAE,EAAE,IAAI;4BACR,YAAY,EAAE;gCACZ,KAAK,EAAE,cAAc,CAAC,SAAS,CAAC,MAAM,CAAC;gCACvC,SAAS,EAAE,KAAK;gCAChB,GAAG,CAAC,gBAAgB,CAAC,CAAC,CAAC,EAAE,gBAAgB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;6BAClD;yBACF;qBACF,EACD,EAAE,OAAO,EAAE,CACZ,CAAA;gBACH,CAAC;YACH,CAAC;YAED,mBAAmB;YACnB,KAAK,wBAAwB,CAAC;YAC9B,KAAK,wBAAwB,CAAC;YAC9B,KAAK,4BAA4B,CAAC,CAAC,CAAC;gBAClC,IAAI,CAAC;oBACH,IAAI,CAAC,eAAe,EAAE,CAAC;wBACrB,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,OAAgB,CAAC,CAAA;wBACrD,OAAO,WAAW,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,OAAO,EAAE,CAAC,CAAA;oBAClD,CAAC;oBAED,MAAM,UAAU,GAAG,MAAM,CAAC,CAAC,CAAC,CAAA;oBAC5B,IACE,OAAO,UAAU,KAAK,QAAQ;wBAC9B,CAAC,WAAW,CAAC,sBAAsB,CAAC,UAA2B,CAAC,EAChE,CAAC;wBACD,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,OAAgB,CAAC,CAAA;wBACrD,OAAO,WAAW,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,OAAO,EAAE,CAAC,CAAA;oBAClD,CAAC;oBAED,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,oBAAoB,CAAC;wBACpD,OAAO,EAAE,eAAe,CAAC,OAAO;wBAChC,SAAS;wBACT,MAAM,EAAE,OAAO,CAAC,MAA4D;wBAC5E,OAAO,EAAE,EAAE,MAAM,EAAE,QAAQ,IAAI,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,EAAE;wBACrE,QAAQ,EAAE,eAAe,CAAC,QAAQ;qBACnC,CAAC,CAAA;oBACF,OAAO,WAAW,CAAC,IAAI,CAAC,EAAE,MAAM,EAAW,EAAE,EAAE,OAAO,EAAW,CAAC,CAAA;gBACpE,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,OAAO,KAAK,CAAC,YAAY,CAAC,OAAO,EAAE,KAAK,CAAC,CAAA;gBAC3C,CAAC;YACH,CAAC;YAED,OAAO,CAAC,CAAC,CAAC;gBACR,IAAI,CAAC;oBACH,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,OAAgB,CAAC,CAAA;oBACrD,OAAO,WAAW,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,OAAO,EAAE,CAAC,CAAA;gBAClD,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,OAAO,KAAK,CAAC,YAAY,CAAC,OAAO,EAAE,KAAK,CAAC,CAAA;gBAC3C,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAED,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,CAAA;IAEzB,KAAK,UAAU,UAAU,CAAC,CAA4D;QACpF,MAAM,OAAO,GAAG,KAAK,CAAC,cAAc,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAA;QAC5D,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,CAAA;QACnC,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;QAEnC,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,MAAM,OAAO,GAAG,UAAU,CAAC,IAAI,CAAC,IAAa,CAAqC,CAAA;YAClF,OAAO,QAAQ,CAAC,IAAI,CAAC,MAAM,aAAa,CAAC,OAAO,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC,CAAA;QACjE,CAAC;QAED,MAAM,SAAS,GAAG,MAAM,OAAO,CAAC,GAAG,CAChC,IAAkB,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAC/B,aAAa,CAAC,UAAU,CAAC,IAAI,CAAC,IAAa,CAAqC,EAAE;YAChF,OAAO;SACR,CAAC,CACH,CACF,CAAA;QACD,OAAO,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;IACjC,CAAC;IAED,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,UAAmB,CAAC,CAAA;IACtC,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI,KAAK,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,WAAW,EAAE,UAAmB,CAAC,CAAA;IAExE,OAAO,MAAM,CAAA;AACf,CAAC;AA+ED,gBAAgB;AAChB,KAAK,UAAU,IAAI,CAAC,MAAc,EAAE,OAAqB;IACvD,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,WAAW,EAAE,OAAO,EAAE,GAAG,OAAO,CAAA;IAEhE,kFAAkF;IAClF,MAAM,MAAM,GAAG,CAAC,KAA8B,EAAE,EAAE,CAChD,KAAK,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,4BAA4B,CAAC,MAAM,EAAE,KAAK,CAAC,CAAA;IAEnF,oEAAoE;IACpE,sEAAsE;IACtE,gEAAgE;IAChE,qCAAqC;IACrC,KAAK,UAAU,YAAY,CAAC,iBAA0B,EAAE,OAAe;QACrE,IAAI,CAAC,QAAQ;YAAE,OAAO,IAAI,CAAA;QAC1B,MAAM,WAAW,GACf,QAAQ,IAAI,QAAQ,CAAC,WAAW,EAAE,KAAK,iBAAiB,CAAC,WAAW,EAAE;YACpE,CAAC,CAAC,QAAQ;YACV,CAAC,CAAC,MAAM,OAAO,CAAC,eAAe,EAAE,CAAC,iBAAiB,CAAC,CAAA;QACxD,IAAI,CAAC,WAAW,IAAI,WAAW,CAAC,WAAW,EAAE,KAAK,iBAAiB,CAAC,WAAW,EAAE;YAAE,OAAO,IAAI,CAAA;QAE9F,MAAM,WAAW,GAAG,OAAO,GAAG,CAAC,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,QAAQ,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG,KAAK,CAAA;QAC9F,MAAM,aAAa,GAAI,OAAO,CAAC,KAA4B,IAAI,EAAE,CAAA;QACjE,MAAM,SAAS,GAAG,cAAc,CAAC,WAAW,EAAE,iBAAiB,EAAE,OAAO,EAAE,WAAW,CAAC,CAAA;QAEtF,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC;YAClC,MAAM,EAAE,qBAAqB;YAC7B,MAAM,EAAE;gBACN,MAAM,CAAC;oBACL,GAAG,OAAO;oBACV,KAAK,EAAE,CAAC,GAAG,SAAS,EAAE,GAAG,aAAa,CAAC;iBACxC,CAAU;aACZ;SACF,CAAC,CAAA;QACF,MAAM,OAAO,GAAI,MAA8B,CAAC,YAAY,EAAE,OAEjD,CAAA;QACb,MAAM,QAAQ,GAAG,qBAAqB,CAAC,MAAM,CAAC,EAA6B,EAAE;YAC3E,GAAG,OAAO;YACV,KAAK,EAAE,CAAC,GAAG,SAAS,EAAE,GAAG,aAAa,CAAC;SACxC,CAAC,CAAA;QACF,OAAO;YACL,WAAW,EAAE,KAAK,CAAC,yBAAyB,CAAC,QAAQ,CAAC;YACtD,OAAO;YACP,IAAI,EAAE;gBACJ,KAAK,EAAE,SAAS;gBAChB,OAAO,EAAE,WAAW;gBACpB,QAAQ,EAAE,iBAAiB;gBAC3B,SAAS,EAAE,OAAO;gBAClB,WAAW;aACZ;SACF,CAAA;IACH,CAAC;IAED,IAAI,CAAC;QACH,MAAM,SAAS,GAAG,MAAM,CAAC,OAAO,CAAC,CAAA;QACjC,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC;YAClC,MAAM,EAAE,qBAAqB;YAC7B,MAAM,EAAE,CAAC,SAAkB,CAAC;SAC7B,CAAC,CAAA;QACF,+EAA+E;QAC/E,4EAA4E;QAC5E,qEAAqE;QACrE,yEAAyE;QACzE,mBAAmB;QACnB,IAAI,MAAM,CAAC,EAAE,CAAC,GAAG,IAAI,OAAO,CAAC,QAAQ,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,iBAAiB;YACnE,MAAM,CAAC,EAAE,CAAC,GAAG,GAAG,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,MAAO,CAAC,CAAA;QACjE,MAAM,oBAAoB,GAAI,MAAqD,CAAC,YAAY,CAAA;QAChG,MAAM,OAAO,GAAG,oBAAoB,EAAE,OAEzB,CAAA;QACb,6EAA6E;QAC7E,2EAA2E;QAC3E,2EAA2E;QAC3E,yCAAyC;QACzC,MAAM,aAAa,GAAG,oBAAoB,EAAE,KAE/B,CAAA;QACb,IAAI,aAAa,EAAE,SAAS,KAAK,qBAAqB,EAAE,CAAC;YACvD,MAAM,SAAS,GAAG,IAAI,KAAK,CAAC,aAAa,CAAC,OAAO,IAAI,qBAAqB,CAAC,CAAA;YAC3E,SAAS,CAAC,IAAI,GAAG,qBAAqB,CACrC;YAAC,SAAkD,CAAC,IAAI,GAAG,aAAa,CAAC,IAAI,CAAA;YAC9E,MAAM,SAAS,CAAA;QACjB,CAAC;QACD,4EAA4E;QAC5E,uEAAuE;QACvE,0EAA0E;QAC1E,MAAM,IAAI,GAAG,2BAA2B,CAAC,oBAAoB,EAAE,QAAQ,CAAC,CAAA;QACxE,wEAAwE;QACxE,uEAAuE;QACvE,uEAAuE;QACvE,MAAM,QAAQ,GAAG,qBAAqB,CAAC,MAAM,CAAC,EAA6B,EAAE,OAAO,CAAC,CAAA;QAErF,iEAAiE;QACjE,8DAA8D;QAC9D,iEAAiE;QACjE,kEAAkE;QAClE,gEAAgE;QAChE,2DAA2D;QAC3D,IAAI,QAAQ,IAAI,CAAC,IAAI,EAAE,CAAC;YACtB,MAAM,WAAW,GAAG,OAAO,CAAC,IAA2B,CAAA;YACvD,MAAM,gBAAgB,GAAG,CAAE,QAAQ,CAAC,QAAgC,IAAI,QAAQ,CAEnE,CAAA;YACb,MAAM,GAAG,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAoB,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;YACrE,MAAM,YAAY,GAAG,QAAQ,CAAC,YAAY;gBACxC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,YAA6B,CAAC;gBAChD,CAAC,CAAC,EAAE,CAAA;YACN,IAAI,WAAW,IAAI,gBAAgB,IAAI,GAAG,GAAG,EAAE,IAAI,YAAY,GAAG,EAAE,EAAE,CAAC;gBACrE,MAAM,CAAC,OAAO,EAAE,QAAQ,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;oBAC5C,OAAO,CAAC,KAAK;yBACV,UAAU,CAAC,MAAM,EAAE,EAAE,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,gBAAgB,EAAE,CAAC;yBACrE,KAAK,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC;oBAClB,oBAAoB,CAAC,MAAM,EAAE,EAAE,KAAK,EAAE,gBAAgB,EAAE,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC;iBACrF,CAAC,CAAA;gBACF,IAAI,QAAQ,EAAE,CAAC;oBACb,MAAM,WAAW,GACf,CAAC,GAAG,GAAG,YAAY,CAAC,GAAG,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,GAAG,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAA;oBAC3E,IAAI,OAAO,GAAG,WAAW,EAAE,CAAC;wBAC1B,4DAA4D;wBAC5D,4DAA4D;wBAC5D,wDAAwD;wBACxD,yCAAyC;wBACzC,MAAM,UAAU,GAAG,MAAM,YAAY,CAAC,gBAAgB,EAAE,WAAW,GAAG,OAAO,CAAC,CAAC,KAAK,CAClF,GAAG,EAAE,CAAC,IAAI,CACX,CAAA;wBACD,IAAI,UAAU;4BAAE,OAAO,UAAU,CAAA;oBACnC,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;QAED,OAAO;YACL,WAAW,EAAE,KAAK,CAAC,yBAAyB,CAAC,QAAQ,CAAC;YACtD,OAAO;YACP,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAC1B,CAAA;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,CAAC,CAAC,KAAK,YAAY,KAAK,CAAC;YAAE,MAAM,KAAK,CAAA;QAC1C,IAAI,CAAC,QAAQ;YAAE,MAAM,KAAK,CAAA;QAE1B,MAAM,MAAM,GAAG,cAAc,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;QAC1C,IAAI,MAAM,EAAE,SAAS,KAAK,qBAAqB;YAAE,MAAM,KAAK,CAAA;QAE5D,MAAM,CAAC,SAAS,EAAE,QAAQ,EAAE,KAAK,CAAC,GAAG,MAAM,CAAC,IAAI,CAAA;QAChD,IAAI,OAAO,SAAS,KAAK,WAAW,IAAI,OAAO,QAAQ,KAAK,WAAW,IAAI,CAAC,KAAK;YAAE,MAAM,KAAK,CAAA;QAE9F,MAAM,UAAU,GAAG,MAAM,YAAY,CAAC,KAAgB,EAAE,QAAQ,GAAG,SAAS,CAAC,CAAA;QAC7E,IAAI,CAAC,UAAU;YAAE,MAAM,KAAK,CAAA;QAC5B,OAAO,UAAU,CAAA;IACnB,CAAC;AACH,CAAC;AAYD,KAAK,UAAU,eAAe,CAC5B,MAAc,EACd,OAAgC;IAEhC,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,OAAO,CAAA;IACjD,IAAI,QAAQ;QAAE,OAAO,QAAQ,CAAA;IAC7B,IAAI,CAAC,OAAO;QAAE,OAAO,SAAS,CAAA;IAE9B,wEAAwE;IACxE,iEAAiE;IACjE,oEAAoE;IACpE,uEAAuE;IACvE,wEAAwE;IACxE,kCAAkC;IAClC,MAAM,YAAY,GAAG,GAAG,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,MAAM,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAA;IAC1F,MAAM,gBAAgB,GAAG,EAAE;QACzB,CAAC,CAAC,MAAM,CACJ,EAAE,EACF,iBAAiB,MAAM,CAAC,KAAK,EAAE,EAAE,IAAI,CAAC,IAAI,OAAO,CAAC,WAAW,EAAE,EAAE,EACjE,KAAK,IAAI,EAAE;YACT,MAAM,MAAM,GAAG,MAAM,YAAY,EAAE,CAAA;YACnC,OAAO,MAAM,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,IAAI,CAAA;QACpD,CAAC,EACD,EAAE,GAAG,EAAE,OAAO,CAAC,iBAAiB,IAAI,EAAE,EAAE,CACzC;QACH,CAAC,CAAC,YAAY,EAAE,CAAA;IAElB,MAAM,CAAC,SAAS,EAAE,QAAQ,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;QAC9C,gBAAgB;QAChB,MAAM;YACJ,CAAC,CAAC,OAAO,CAAC,GAAG,CACT,MAAM,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC;gBAC3B,OAAO,EAAE,KAAK;gBACd,OAAO,EAAE,MAAM,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,MAAM,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC;aACpF,CAAC,CAAC,CACJ;YACH,CAAC,CAAC,EAAE;KACP,CAAC,CAAA;IAEF,8DAA8D;IAC9D,IAAI,SAAS,EAAE,CAAC;QACd,MAAM,KAAK,GAAG,QAAQ,CAAC,IAAI,CACzB,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,WAAW,EAAE,KAAK,SAAS,CAAC,OAAO,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC,OAAO,GAAG,EAAE,CACrF,CAAA;QACD,IAAI,KAAK;YAAE,OAAO,SAAS,CAAC,OAAO,CAAA;QAEnC,uEAAuE;QACvE,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,IAAI,CAAC;gBACH,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,MAAM,EAAE;oBACrD,OAAO;oBACP,KAAK,EAAE,SAAS,CAAC,OAAO;iBACzB,CAAC,CAAA;gBACF,IAAI,OAAO,GAAG,EAAE;oBAAE,OAAO,SAAS,CAAC,OAAO,CAAA;YAC5C,CAAC;YAAC,MAAM,CAAC,CAAA,CAAC;QACZ,CAAC;IACH,CAAC;IAED,2CAA2C;IAC3C,IAAI,IAAuD,CAAA;IAC3D,KAAK,MAAM,KAAK,IAAI,QAAQ,EAAE,CAAC;QAC7B,IAAI,KAAK,CAAC,OAAO,IAAI,EAAE;YAAE,SAAQ;QACjC,IAAI,CAAC,IAAI,IAAI,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO;YAAE,IAAI,GAAG,KAAK,CAAA;IACzD,CAAC;IACD,IAAI,IAAI;QAAE,OAAO,IAAI,CAAC,OAAO,CAAA;AAC/B,CAAC;AAaD;;;;;GAKG;AACH,SAAS,gBAAgB,CAAC,WAAoC;IAC5D,MAAM,KAAK,GAAG,WAAW,CAAC,KAAgD,CAAA;IAC1E,IAAI,CAAC,KAAK;QAAE,OAAO,EAAE,CAAA;IACrB,MAAM,GAAG,GAAc,EAAE,CAAA;IACzB,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAA;IAC9B,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;QACtB,IAAI,CAAC,CAAC,CAAC,EAAE;YAAE,SAAQ;QACnB,MAAM,KAAK,GAAG,CAAC,CAAC,EAAE,CAAC,WAAW,EAAE,CAAA;QAChC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,QAAQ,CAAC;YAAE,SAAQ;QACzC,IAAI,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC;YAAE,SAAQ;QAC7B,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;QACf,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAA;IAChB,CAAC;IACD,OAAO,GAAG,CAAA;AACZ,CAAC;AAKD,KAAK,UAAU,uBAAuB,CACpC,MAAc,EACd,OAAmC;IAEnC,MAAM,OAAO,GAAG,wBAAwB,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;IACvD,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,SAAS,CAAA;IAE1C,MAAM,OAAO,GAAG,IAAI,GAAG,EAAuD,CAAA;IAC9E,KAAK,MAAM,OAAO,IAAI,OAAO,EAAE,CAAC;QAC9B,MAAM,EAAE,QAAQ,EAAE,GAAG,cAAc,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;QAClD,MAAM,KAAK,GAAG,QAAQ,CAAC,WAAW,EAAE,CAAA;QACpC,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,SAAS,EAAE,EAAE,EAAE,QAAQ,EAAE,CAAA;QAC/D,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;QAC7B,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,CAAC,CAAA;IAC3B,CAAC;IAED,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,GAAG,CAC/B,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,KAAK,EAAE,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,EAAE;QAC1D,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,cAAc,CAAC,gBAAgB,CAAC,MAAM,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAA;QAClF,OAAO,SAAS,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,MAAM,CAAU,CAAC,CAAA;IAC/D,CAAC,CAAC,CACH,CAAA;IACD,OAAO,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,IAAI,EAAE,CAAqB,CAAA;AAC/D,CAAC;AAED,SAAS,wBAAwB,CAAC,KAAsB;IACtD,MAAM,OAAO,GAAG,IAAI,GAAG,EAAW,CAAA;IAClC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,KAAK,MAAM,OAAO,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,uBAAuB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;YACpE,IAAI,CAAC,OAAO,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,OAAO,CAAC;gBAAE,SAAQ;YACnF,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,WAAW,EAAa,CAAC,CAAA;QAC/C,CAAC;IACH,CAAC;IACD,OAAO,CAAC,GAAG,OAAO,CAAC,CAAA;AACrB,CAAC;AAED,SAAS,uBAAuB,CAAC,IAAyB;IACxD,IAAI,CAAC,IAAI;QAAE,OAAO,SAAS,CAAA;IAC3B,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,WAAW,EAAE,CAAA;IAChD,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,QAAQ,CAAC;QAAE,OAAO,SAAS,CAAA;IACtD,IAAI,CAAC;QACH,MAAM,EAAE,IAAI,EAAE,YAAY,EAAE,GAAG,kBAAkB,CAAC;YAChD,GAAG,EAAE,IAAI,CAAC,KAAK;YACf,IAAI,EAAE,IAAe;SACtB,CAAC,CAAA;QACF,IACE,CAAC,YAAY,KAAK,UAAU,IAAI,YAAY,KAAK,kBAAkB,CAAC;YACpE,OAAO,IAAI,CAAC,CAAC,CAAC,KAAK,QAAQ;YAE3B,OAAO,IAAI,CAAC,CAAC,CAAC,CAAA;QAChB,IACE,CAAC,YAAY,KAAK,cAAc,IAAI,YAAY,KAAK,sBAAsB,CAAC;YAC5E,OAAO,IAAI,CAAC,CAAC,CAAC,KAAK,QAAQ;YAE3B,OAAO,IAAI,CAAC,CAAC,CAAC,CAAA;IAClB,CAAC;IAAC,MAAM,CAAC,CAAA,CAAC;IACV,OAAO,SAAS,CAAA;AAClB,CAAC;AAED,MAAM,iBAAiB,GAAG,IAAI,GAAG,CAAC,CAAC,YAAY,EAAE,YAAY,EAAE,YAAY,EAAE,YAAY,CAAC,CAAC,CAAA;AAE3F,uBAAuB;AACvB,SAAS,YAAY,CAAC,WAAoC;IACxD,MAAM,KAAK,GAAG,WAAW,CAAC,KAAoC,CAAA;IAC9D,IAAI,KAAK,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC;QAC3B,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YACvB,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC7B,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACnC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACvC,CAAC,CAAoB,CAAA;IACxB,OAAO;QACL;YACE,GAAG,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,WAAW,CAAC,EAAa,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC5D,GAAG,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,WAAW,CAAC,IAAqB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACxE,GAAG,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,WAAW,CAAC,KAAe,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACrE;KACiB,CAAA;AACtB,CAAC;AAED,uBAAuB;AACvB,KAAK,UAAU,QAAQ,CAAC,MAAc,EAAE,OAAyB;IAC/D,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,OAAO,CAAA;IAClC,IAAI,CAAC;QACH,OAAO,MAAM,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC,MAAM,EAAE;YAClD,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC/B,KAAK,EAAE,KAAe;YACtB,cAAc,EAAE,IAAI;SACrB,CAAC,CAAA;IACJ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,iEAAiE;QACjE,kEAAkE;QAClE,8CAA8C;QAC9C,MAAM,IAAI,GACP,KAAuC,CAAC,IAAI;YAC5C,KAA+D,CAAC,KAAK,EAAE,IAAI,CAAA;QAC9E,IAAI,IAAI,KAAK,CAAC,KAAK;YAAE,MAAM,KAAK,CAAA;QAChC,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,aAAa,CAAC,MAAM,EAAE;YAC9C,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC/B,KAAK,EAAE,KAAe;SACvB,CAAC,CAAA;QACF,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,SAAS,EAAE,CAAA;IAC9C,CAAC;AACH,CAAC;AASD,KAAK,UAAU,qBAAqB,CAAC,MAAc,EAAE,OAAsC;IACzF,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE,EAAE,EAAE,YAAY,EAAE,GAAG,OAAO,CAAA;IAEzE,IAAI,CAAC;QACH,MAAM,EAAE,OAAO,EAAE,aAAa,EAAE,GAAG,MAAM,QAAQ,CAAC,MAAM,EAAE;YACxD,OAAO,EAAE,OAAO,KAAK,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO;YACtD,KAAK;SACN,CAAC,CAAA;QAEF,4CAA4C;QAC5C,MAAM,IAAI,GAAqC,EAAE,CAAA;QACjD,KAAK,MAAM,MAAM,IAAI,OAA2D;YAC9E,IAAI,MAAM,CAAC,IAAI;gBAAE,IAAI,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,CAAA;QAE5C,wDAAwD;QACxD,MAAM,YAAY,GAAG,OAAO;YAC1B,CAAC,CAAC,MAAM,iBAAiB,CAAC,MAAM,EAAE;gBAC9B,OAAO;gBACP,EAAE;gBACF,IAAI;gBACJ,IAAI;gBACJ,aAAa,EAAE,aAAsB;aACtC,CAAC;YACJ,CAAC,CAAC,EAAE,CAAA;QAEN,yBAAyB;QACzB,MAAM,GAAG,GAAG,MAAM,UAAU,CAAC,MAAM,EAAE;YACnC,QAAQ;YACR,GAAG;YACH,EAAE;YACF,YAAY;YACZ,aAAa,EAAE,aAAsB;SACtC,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAA;QAEzB,OAAO,EAAE,YAAY,EAAE,GAAG,EAAE,CAAA;IAC9B,CAAC;IAAC,MAAM,CAAC;QACP,2DAA2D;QAC3D,gEAAgE;QAChE,MAAM,GAAG,GAAG,MAAM,UAAU,CAAC,MAAM,EAAE,EAAE,QAAQ,EAAE,GAAG,EAAE,EAAE,EAAE,YAAY,EAAE,CAAC,CAAA;QACzE,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,GAAG,EAAE,CAAA;IACzC,CAAC;AACH,CAAC;AAcD,KAAK,UAAU,iBAAiB,CAAC,MAAc,EAAE,OAAkC;IACjF,MAAM,EAAE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,aAAa,EAAE,GAAG,OAAO,CAAA;IAC1D,MAAM,YAAY,GAAG,OAAO,CAAC,WAAW,EAAE,CAAA;IAC1C,MAAM,QAAQ,GAAG,SAAS,CAAC,aAAa,CAAC,WAAW,EAAE,CAAA;IACtD,MAAM,WAAW,GAAG,IAAI,EAAE,OAAO,CAAC,WAAW,EAAE,CAAA;IAC/C,MAAM,YAAY,GAAG,IAAI,EAAE,QAAQ,CAAC,WAAW,EAAE,CAAA;IAEjD,MAAM,YAAY,GAAG,cAAc,CAAC;QAClC,GAAG,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;QAC/C,SAAS,EAAE,UAAU;QACrB,IAAI;KACL,CAAC,CAAA;IACF,MAAM,YAAY,GAAG,cAAc,CAAC;QAClC,GAAG,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;QAC/C,SAAS,EAAE,UAAU;QACrB,IAAI;KACL,CAAC,CAAA;IAEF,sDAAsD;IACtD,MAAM,QAAQ,GAAG,IAAI,GAAG,EAGrB,CAAA;IAEH,qFAAqF;IACrF,MAAM,oBAAoB,GAAG,IAAI,GAAG,EAAkB,CAAA;IAEtD,KAAK,MAAM,GAAG,IAAI,YAAY,EAAE,CAAC;QAC/B,MAAM,KAAK,GAAG,GAAG,CAAC,OAAO,CAAC,WAAW,EAAE,CAAA;QACvC,MAAM,SAAS,GAAG,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAA;QAC7C,MAAM,OAAO,GAAG,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,WAAW,EAAE,CAAA;QAEzC,2EAA2E;QAC3E,IAAI,IAAI,EAAE,CAAC;YACT,IAAI,KAAK,KAAK,WAAW,IAAI,SAAS,KAAK,YAAY,IAAI,OAAO,KAAK,QAAQ;gBAAE,SAAQ;YACzF,IAAI,KAAK,KAAK,YAAY,IAAI,SAAS,KAAK,QAAQ,IAAI,OAAO,KAAK,YAAY;gBAAE,SAAQ;QAC5F,CAAC;QAED,MAAM,KAAK,GAAG,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI;YACnC,QAAQ,EAAE,EAAE;YACZ,QAAQ,EAAE,EAAE;YACZ,UAAU,EAAE,IAAI,GAAG,EAAW;YAC9B,KAAK,EAAE,GAAG,CAAC,OAAO;SACnB,CAAA;QACD,IAAI,SAAS,KAAK,YAAY,EAAE,CAAC;YAC/B,KAAK,CAAC,QAAQ,IAAI,GAAG,CAAC,IAAI,CAAC,MAAM,CAAA;YACjC,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;YACjC,MAAM,GAAG,GAAG,GAAG,KAAK,IAAI,OAAO,EAAE,CAAA;YACjC,oBAAoB,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,oBAAoB,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,GAAG,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;QACxF,CAAC;QACD,IAAI,OAAO,KAAK,YAAY;YAAE,KAAK,CAAC,QAAQ,IAAI,GAAG,CAAC,IAAI,CAAC,MAAM,CAAA;QAC/D,QAAQ,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,CAAC,CAAA;IAC5B,CAAC;IAED,yFAAyF;IACzF,KAAK,MAAM,GAAG,IAAI,YAAY,EAAE,CAAC;QAC/B,IAAI,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,KAAK,YAAY;YAAE,SAAQ;QAC3D,MAAM,KAAK,GAAG,GAAG,CAAC,OAAO,CAAC,WAAW,EAAE,CAAA;QAEvC,2EAA2E;QAC3E,IAAI,IAAI,IAAI,KAAK,KAAK,WAAW,IAAI,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,KAAK,QAAQ;YAAE,SAAQ;QAE1F,MAAM,UAAU,GAAG,GAAG,KAAK,IAAI,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,EAAE,CAAA;QAC/D,MAAM,WAAW,GAAG,oBAAoB,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,EAAE,CAAA;QAC9D,IAAI,GAAG,CAAC,IAAI,CAAC,MAAM,IAAI,WAAW;YAAE,SAAQ;QAE5C,MAAM,KAAK,GAAG,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI;YACnC,QAAQ,EAAE,EAAE;YACZ,QAAQ,EAAE,EAAE;YACZ,UAAU,EAAE,IAAI,GAAG,EAAW;YAC9B,KAAK,EAAE,GAAG,CAAC,OAAO;SACnB,CAAA;QACD,KAAK,CAAC,QAAQ,IAAI,GAAG,CAAC,IAAI,CAAC,MAAM,GAAG,WAAW,CAAA;QAC/C,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;QACtC,QAAQ,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,CAAC,CAAA;IAC5B,CAAC;IAED,4CAA4C;IAC5C,MAAM,OAAO,GAAG,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE;QAClD,MAAM,GAAG,GAAG,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,QAAQ,CAAA;QACvF,OAAO,GAAG,GAAG,EAAE,CAAA;IACjB,CAAC,CAAC,CAAA;IACF,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAA;IAEnC,yFAAyF;IACzF,MAAM,WAAW,GAAG,IAAI,GAAG,EAA8D,CAAA;IACzF,MAAM,OAAO,CAAC,GAAG,CACf,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;QAC1B,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,oBAAoB,CAAC,MAAM,EAAE;gBAClD,KAAK,EAAE,KAAK,CAAC,KAAK;gBAClB,aAAa;gBACb,EAAE;aACH,CAAC,CAAA;YACF,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,WAAW,EAAE,EAAE,QAAQ,CAAC,CAAA;QACtD,CAAC;QAAC,MAAM,CAAC,CAAA,CAAC;IACZ,CAAC,CAAC,CACH,CAAA;IAED,yCAAyC;IACzC,MAAM,KAAK,GAA+B,EAAE,CAAA;IAC5C,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;QAC5B,MAAM,GAAG,GACP,KAAK,CAAC,QAAQ,GAAG,KAAK,CAAC,QAAQ;YAC7B,CAAC,CAAC,KAAK,CAAC,QAAQ,GAAG,KAAK,CAAC,QAAQ;YACjC,CAAC,CAAC,KAAK,CAAC,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAA;QAErC,MAAM,SAAS,GAAG,KAAK,CAAC,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,UAAU,CAAA;QAC3E,MAAM,IAAI,GAAG,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,CAAA;QACvD,MAAM,QAAQ,GAAG,IAAI,EAAE,QAAQ,IAAI,CAAC,CAAA;QACpC,KAAK,CAAC,IAAI,CAAC;YACT,OAAO,EAAE,KAAK,CAAC,KAAK;YACpB,QAAQ;YACR,SAAS;YACT,SAAS,EAAE,WAAW,CAAC,GAAG,EAAE,QAAQ,CAAC;YACrC,IAAI,EAAE,IAAI,EAAE,IAAI,IAAI,EAAE;YACtB,MAAM,EAAE,IAAI,EAAE,MAAM,IAAI,EAAE;YAC1B,UAAU,EAAE,CAAC,GAAG,KAAK,CAAC,UAAU,CAAc;YAC9C,KAAK,EAAE,GAAG,CAAC,UAAU,CAAC,GAAG,CAAkB;SAC5C,CAAC,CAAA;IACJ,CAAC;IAED,OAAO,EAAE,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,CAAA;AAC7B,CAAC;AAYD,KAAK,UAAU,oBAAoB,CAAC,MAAc,EAAE,OAAqC;IACvF,MAAM,EAAE,KAAK,EAAE,aAAa,EAAE,EAAE,EAAE,GAAG,OAAO,CAAA;IAC5C,MAAM,IAAI,GAAG,aAAa,EAAE,CAAC,KAAK,CAAC,IAAI,aAAa,EAAE,CAAC,KAAK,CAAC,WAAW,EAAa,CAAC,CAAA;IACtF,0EAA0E;IAC1E,0DAA0D;IAC1D,MAAM,OAAO,GAAG,GAAG,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC,MAAM,EAAE,EAAE,KAAK,EAAE,CAAC,CAAA;IAClE,MAAM,QAAQ,GAAG,EAAE;QACjB,CAAC,CAAC,MAAM,MAAM,CAAC,EAAE,EAAE,iBAAiB,MAAM,CAAC,KAAK,EAAE,EAAE,IAAI,CAAC,IAAI,KAAK,CAAC,WAAW,EAAE,EAAE,EAAE,OAAO,EAAE;YACzF,GAAG,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE;SAClB,CAAC;QACJ,CAAC,CAAC,MAAM,OAAO,EAAE,CAAA;IACnB,OAAO;QACL,QAAQ,EAAE,QAAQ,CAAC,QAAQ,IAAI,CAAC;QAChC,MAAM,EAAE,IAAI,EAAE,MAAM,IAAI,QAAQ,CAAC,MAAM;QACvC,IAAI,EAAE,IAAI,EAAE,IAAI,IAAI,QAAQ,CAAC,IAAI;KAClC,CAAA;AACH,CAAC;AAUD,KAAK,UAAU,uBAAuB,CAAC,MAAc,EAAE,OAAwC;IAC7F,MAAM,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,OAAO,CAAA;IACtC,IAAI,CAAC,QAAQ,IAAI,CAAC,IAAI;QAAE,OAAO,SAAS,CAAA;IACxC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;QAC1C,oBAAoB,CAAC,MAAM,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,OAAO,EAAE,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC;QAChF,oBAAoB,CAAC,MAAM,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,QAAQ,EAAE,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC;KAClF,CAAC,CAAA;IACF,IAAI,CAAC,MAAM,IAAI,CAAC,OAAO;QAAE,OAAO,SAAS,CAAA;IACzC,OAAO;QACL,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;QAC1D,QAAQ,EAAE,QAAQ,CAAC,QAAQ;QAC3B,KAAK,EAAE;YACL,KAAK,EAAE,IAAI,CAAC,OAAO;YACnB,KAAK,EAAE,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,WAAW,CAAkB;YACxD,SAAS,EAAE,WAAW,CAAC,IAAI,CAAC,WAAW,EAAE,MAAM,CAAC,QAAQ,CAAC;YACzD,QAAQ,EAAE,MAAM,CAAC,QAAQ;YACzB,MAAM,EAAE,MAAM,CAAC,MAAM;YACrB,IAAI,EAAE,MAAM,CAAC,IAAI;SAClB;QACD,MAAM,EAAE;YACN,KAAK,EAAE,IAAI,CAAC,QAAQ;YACpB,KAAK,EAAE,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAkB;YACtD,SAAS,EAAE,WAAW,CAAC,IAAI,CAAC,SAAS,EAAE,OAAO,CAAC,QAAQ,CAAC;YACxD,QAAQ,EAAE,OAAO,CAAC,QAAQ;YAC1B,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,IAAI,EAAE,OAAO,CAAC,IAAI;SACnB;KACF,CAAA;AACH,CAAC;AAkBD,KAAK,UAAU,UAAU,CAAC,MAAc,EAAE,OAA2B;IACnE,MAAM,EAAE,QAAQ,EAAE,GAAG,EAAE,EAAE,EAAE,YAAY,EAAE,aAAa,EAAE,GAAG,OAAO,CAAA;IAClE,IAAI,CAAC,QAAQ,IAAI,CAAC,GAAG,IAAI,CAAC,YAAY;QAAE,OAAO,SAAS,CAAA;IAExD,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,oBAAoB,CAAC,MAAM,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,aAAa,EAAE,EAAE,EAAE,CAAC,CAAA;QAC3F,MAAM,GAAG,GAAG,GAAG,GAAG,YAAY,CAAA;QAC9B,MAAM,MAAM,GAAG,GAAG,GAAG,GAAG,IAAI,MAAM,CAAC,EAAE,GAAG,QAAQ,CAAC,QAAQ,CAAC,CAAA;QAC1D,OAAO;YACL,MAAM,EAAE,GAAG,CAAC,UAAU,CAAC,MAAM,CAAkB;YAC/C,QAAQ,EAAE,QAAQ,CAAC,QAAQ;YAC3B,SAAS,EAAE,WAAW,CAAC,MAAM,EAAE,QAAQ,CAAC,QAAQ,CAAC;YACjD,MAAM,EAAE,QAAQ,CAAC,MAAM;SACxB,CAAA;IACH,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAA;IAClB,CAAC;AACH,CAAC;AAYD,SAAS,cAAc,CACrB,WAAoB,EACpB,WAAoB,EACpB,OAAe,EACf,WAAmB;IAEnB,MAAM,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC;QACzC,KAAK,EAAE,WAAW;QAClB,OAAO,EAAE,SAAS,CAAC,aAAa;QAChC,MAAM,EAAE,WAAW;KACpB,CAAC,CAAA;IACF,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC;QAC/B,OAAO,EAAE,WAAW;QACpB,QAAQ,EAAE,WAAW;QACrB,SAAS,EAAE,OAAO;QAClB,WAAW;KACZ,CAAC,CAAA;IACF,OAAO;QACL,EAAE,EAAE,EAAE,OAAO,CAAC,EAAE,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE;QACjD,EAAE,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE;KACjC,CAAA;AACZ,CAAC;AAED;;;;;;;;;;;GAWG;AACH,SAAS,qBAAqB,CAC5B,QAAiC,EACjC,OAAgC;IAEhC,MAAM,MAAM,GAA4B,EAAE,GAAG,OAAO,EAAE,GAAG,QAAQ,EAAE,CAAA;IACnE,MAAM,WAAW,GAAG,QAAQ,CAAC,KAAK,CAAA;IAClC,IAAI,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC;QAAE,OAAO,MAAM,CAAA;IAEvE,MAAM,QAAQ,GAAG,OAAO,CAAC,KAAK,CAAA;IAC9B,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACnD,MAAM,CAAC,KAAK,GAAG,QAAQ,CAAA;QACvB,OAAO,MAAM,CAAA;IACf,CAAC;IAED,MAAM,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,OAAO,CAAA;IACnC,IAAI,OAAO,EAAE,KAAK,WAAW,IAAI,OAAO,IAAI,KAAK,WAAW,IAAI,OAAO,KAAK,KAAK,WAAW;QAC1F,OAAO,MAAM,CAAA;IAEf,MAAM,CAAC,KAAK,GAAG;QACb;YACE,GAAG,CAAC,OAAO,EAAE,KAAK,WAAW,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC5C,GAAG,CAAC,OAAO,IAAI,KAAK,WAAW,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAChD,GAAG,CAAC,OAAO,KAAK,KAAK,WAAW,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACnD;KACF,CAAA;IACD,OAAO,MAAM,CAAA;AACf,CAAC;AAED;;;;;GAKG;AACH,SAAS,2BAA2B,CAAC,QAAiB;IASpD,IAAI,CAAC,QAAQ,IAAI,OAAO,QAAQ,KAAK,QAAQ;QAAE,OAAO,SAAS,CAAA;IAC/D,MAAM,CAAC,GAAG,QAIT,CAAA;IACD,IAAI,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,KAAK,EAAE,KAAK,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,MAAM,EAAE,KAAK,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK;QACtF,OAAO,SAAS,CAAA;IAClB,OAAO;QACL,KAAK,EAAE,CAAC,CAAC,KAAK;QACd,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,KAAK;QACtB,QAAQ,EAAE,CAAC,CAAC,MAAM,CAAC,KAAK;QACxB,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;QACjC,WAAW,EAAE,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC;KACnC,CAAA;AACH,CAAC"}
|