@d8x/perpetuals-sdk 2.1.0-alpha2 → 2.1.1-alpha2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/abi/IPerpetualManager.json +30 -1
- package/dist/cjs/accountTrade.d.ts +3 -3
- package/dist/cjs/accountTrade.js +1 -1
- package/dist/cjs/accountTrade.js.map +1 -1
- package/dist/cjs/brokerTool.js +7 -7
- package/dist/cjs/brokerTool.js.map +1 -1
- package/dist/cjs/config/defaultConfig.json +0 -12
- package/dist/cjs/config/priceFeedConfig.json +1 -1
- package/dist/cjs/constants.d.ts +0 -1
- package/dist/cjs/constants.js +2 -3
- package/dist/cjs/constants.js.map +1 -1
- package/dist/cjs/contracts/IPerpetualManager.d.ts +20 -4
- package/dist/cjs/contracts/factories/IPerpetualManager__factory.d.ts +23 -1
- package/dist/cjs/contracts/factories/IPerpetualManager__factory.js +30 -1
- package/dist/cjs/contracts/factories/IPerpetualManager__factory.js.map +1 -1
- package/dist/cjs/d8XMath.d.ts +16 -1
- package/dist/cjs/d8XMath.js +28 -5
- package/dist/cjs/d8XMath.js.map +1 -1
- package/dist/cjs/liquidatorTool.js +2 -2
- package/dist/cjs/liquidatorTool.js.map +1 -1
- package/dist/cjs/marketData.d.ts +3 -3
- package/dist/cjs/marketData.js +38 -16
- package/dist/cjs/marketData.js.map +1 -1
- package/dist/cjs/nodeSDKTypes.d.ts +3 -2
- package/dist/cjs/nodeSDKTypes.js.map +1 -1
- package/dist/cjs/perpetualDataHandler.d.ts +9 -8
- package/dist/cjs/perpetualDataHandler.js +17 -6
- package/dist/cjs/perpetualDataHandler.js.map +1 -1
- package/dist/cjs/polyMktsPxFeed.d.ts +1 -1
- package/dist/cjs/polyMktsPxFeed.js +15 -4
- package/dist/cjs/polyMktsPxFeed.js.map +1 -1
- package/dist/cjs/priceFeeds.js +2 -2
- package/dist/cjs/priceFeeds.js.map +1 -1
- package/dist/cjs/version.d.ts +1 -1
- package/dist/cjs/version.js +1 -1
- package/dist/cjs/writeAccessHandler.js +1 -1
- package/dist/cjs/writeAccessHandler.js.map +1 -1
- package/dist/esm/abi/IPerpetualManager.json +30 -1
- package/dist/esm/accountTrade.d.ts +3 -3
- package/dist/esm/accountTrade.js +1 -1
- package/dist/esm/accountTrade.js.map +1 -1
- package/dist/esm/brokerTool.js +7 -7
- package/dist/esm/brokerTool.js.map +1 -1
- package/dist/esm/config/defaultConfig.json +0 -12
- package/dist/esm/config/priceFeedConfig.json +1 -1
- package/dist/esm/constants.d.ts +0 -1
- package/dist/esm/constants.js +1 -2
- package/dist/esm/constants.js.map +1 -1
- package/dist/esm/contracts/IPerpetualManager.d.ts +20 -4
- package/dist/esm/contracts/factories/IPerpetualManager__factory.d.ts +23 -1
- package/dist/esm/contracts/factories/IPerpetualManager__factory.js +30 -1
- package/dist/esm/contracts/factories/IPerpetualManager__factory.js.map +1 -1
- package/dist/esm/d8XMath.d.ts +16 -1
- package/dist/esm/d8XMath.js +26 -4
- package/dist/esm/d8XMath.js.map +1 -1
- package/dist/esm/liquidatorTool.js +2 -2
- package/dist/esm/liquidatorTool.js.map +1 -1
- package/dist/esm/marketData.d.ts +3 -3
- package/dist/esm/marketData.js +39 -17
- package/dist/esm/marketData.js.map +1 -1
- package/dist/esm/nodeSDKTypes.d.ts +3 -2
- package/dist/esm/nodeSDKTypes.js.map +1 -1
- package/dist/esm/perpetualDataHandler.d.ts +9 -8
- package/dist/esm/perpetualDataHandler.js +19 -8
- package/dist/esm/perpetualDataHandler.js.map +1 -1
- package/dist/esm/polyMktsPxFeed.d.ts +1 -1
- package/dist/esm/polyMktsPxFeed.js +15 -4
- package/dist/esm/polyMktsPxFeed.js.map +1 -1
- package/dist/esm/priceFeeds.js +2 -2
- package/dist/esm/priceFeeds.js.map +1 -1
- package/dist/esm/version.d.ts +1 -1
- package/dist/esm/version.js +1 -1
- package/dist/esm/writeAccessHandler.js +3 -3
- package/dist/esm/writeAccessHandler.js.map +1 -1
- package/doc/brokerTool.md +3 -1
- package/doc/d8x-perpetuals-sdk.md +804 -132
- package/doc/marketData.md +813 -0
- package/doc/perpetualDataHandler.md +76 -7
- package/package.json +1 -1
- package/src/abi/IPerpetualManager.json +30 -1
- package/src/accountTrade.ts +3 -3
- package/src/brokerTool.ts +7 -7
- package/src/config/defaultConfig.json +0 -13
- package/src/config/priceFeedConfig.json +1 -1
- package/src/constants.ts +1 -2
- package/src/contracts/IPerpetualManager.ts +33 -3
- package/src/contracts/factories/IPerpetualManager__factory.ts +30 -1
- package/src/d8XMath.ts +27 -4
- package/src/liquidatorTool.ts +2 -2
- package/src/marketData.ts +41 -20
- package/src/nodeSDKTypes.ts +3 -2
- package/src/perpetualDataHandler.ts +26 -15
- package/src/polyMktsPxFeed.ts +15 -4
- package/src/priceFeeds.ts +2 -2
- package/src/version.ts +1 -1
- package/src/writeAccessHandler.ts +2 -2
- package/src/abi-zkevm/IPerpetualManager.json +0 -5366
package/dist/esm/marketData.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Contract, formatUnits, Interface, JsonRpcProvider } from "ethers";
|
|
2
2
|
import { BUY_SIDE, CLOSED_SIDE, COLLATERAL_CURRENCY_BASE, COLLATERAL_CURRENCY_QUANTO, ERC20_ABI, MULTICALL_ADDRESS, ORDER_TYPE_MARKET, PERP_STATE_STR, SELL_SIDE, ZERO_ADDRESS, ZERO_ORDER_ID, } from "./constants";
|
|
3
|
-
import { ERC20__factory, Multicall3__factory, } from "./contracts";
|
|
3
|
+
import { ERC20__factory, IPerpetualManager__factory, Multicall3__factory, } from "./contracts";
|
|
4
4
|
import { ABK64x64ToFloat, dec18ToFloat, decNToFloat, floatToABK64x64, getDepositAmountForLvgTrade, getMaxSignedPositionSize, pmExchangeFee, pmFindMaxTradeSize, } from "./d8XMath";
|
|
5
5
|
import PerpetualDataHandler from "./perpetualDataHandler";
|
|
6
6
|
import { contractSymbolToSymbol, toBytes4 } from "./utils";
|
|
@@ -47,7 +47,7 @@ export default class MarketData extends PerpetualDataHandler {
|
|
|
47
47
|
const mktData = providerOrMarketData;
|
|
48
48
|
this.nodeURL = mktData.config.nodeURL;
|
|
49
49
|
this.provider = new JsonRpcProvider(mktData.config.nodeURL, mktData.network, { staticNetwork: true });
|
|
50
|
-
this.proxyContract =
|
|
50
|
+
this.proxyContract = IPerpetualManager__factory.connect(mktData.getProxyAddress(), this.provider);
|
|
51
51
|
this.multicall = Multicall3__factory.connect(this.config.multicall ?? MULTICALL_ADDRESS, this.provider);
|
|
52
52
|
({
|
|
53
53
|
nestedPerpetualIDs: this.nestedPerpetualIDs,
|
|
@@ -101,7 +101,7 @@ export default class MarketData extends PerpetualDataHandler {
|
|
|
101
101
|
* }
|
|
102
102
|
* main();
|
|
103
103
|
*
|
|
104
|
-
* @returns
|
|
104
|
+
* @returns read-only proxy instance
|
|
105
105
|
*/
|
|
106
106
|
getReadOnlyProxyInstance() {
|
|
107
107
|
if (this.proxyContract == null) {
|
|
@@ -318,7 +318,7 @@ export default class MarketData extends PerpetualDataHandler {
|
|
|
318
318
|
const isPredMkt = this.isPredictionMarket(symbol);
|
|
319
319
|
// create all calls
|
|
320
320
|
const perpId = PerpetualDataHandler.symbolToPerpetualId(symbol, this.symbolToPerpStaticInfo);
|
|
321
|
-
const [fS2, fS3, fEma] = [indexPriceInfo.s2, indexPriceInfo.s3, indexPriceInfo.ema].map((x) => floatToABK64x64(x));
|
|
321
|
+
const [fS2, fS3, fEma] = [indexPriceInfo.s2, indexPriceInfo.s3 ?? 0, indexPriceInfo.ema].map((x) => floatToABK64x64(x));
|
|
322
322
|
const proxyCalls = [
|
|
323
323
|
// 0: traderState
|
|
324
324
|
{
|
|
@@ -378,7 +378,7 @@ export default class MarketData extends PerpetualDataHandler {
|
|
|
378
378
|
fPrice = this.proxyContract.interface.decodeFunctionResult("queryPerpetualPrice", encodedResults[1].returnData)[0];
|
|
379
379
|
}
|
|
380
380
|
else {
|
|
381
|
-
fPrice = await this.proxyContract.queryPerpetualPrice(perpId, floatToABK64x64(tradeAmountBC), [indexPriceInfo.s2, indexPriceInfo.s3], indexPriceInfo.conf, indexPriceInfo.predMktCLOBParams);
|
|
381
|
+
fPrice = await this.proxyContract.queryPerpetualPrice(perpId, floatToABK64x64(tradeAmountBC), [floatToABK64x64(indexPriceInfo.s2), floatToABK64x64(indexPriceInfo.s3 ?? 0)], indexPriceInfo.conf, indexPriceInfo.predMktCLOBParams);
|
|
382
382
|
}
|
|
383
383
|
ammPrice = ABK64x64ToFloat(fPrice);
|
|
384
384
|
}
|
|
@@ -539,11 +539,21 @@ export default class MarketData extends PerpetualDataHandler {
|
|
|
539
539
|
let newMarginCashCC = currentMarginCashCC + deltaCashCC + traderDepositCC;
|
|
540
540
|
let newEntryPrice = newPositionBC == 0 ? 0 : Math.abs(newLockedInValueQC / newPositionBC);
|
|
541
541
|
let newMarginBalanceCC = newMarginCashCC + (newPositionBC * Sm - newLockedInValueQC) / S3;
|
|
542
|
-
let newLeverage
|
|
543
|
-
|
|
544
|
-
|
|
545
|
-
|
|
546
|
-
|
|
542
|
+
let newLeverage;
|
|
543
|
+
if (newPositionBC === 0) {
|
|
544
|
+
newLeverage = 0;
|
|
545
|
+
}
|
|
546
|
+
else if (newMarginBalanceCC <= 0) {
|
|
547
|
+
newLeverage = Infinity;
|
|
548
|
+
}
|
|
549
|
+
else {
|
|
550
|
+
let p = Sm;
|
|
551
|
+
if (isPredMkt) {
|
|
552
|
+
p -= 1;
|
|
553
|
+
p = newPositionBC > 0 ? p : 1 - p;
|
|
554
|
+
}
|
|
555
|
+
newLeverage = Math.abs(newPositionBC * p) / S3 / newMarginBalanceCC;
|
|
556
|
+
}
|
|
547
557
|
// Liquidation params
|
|
548
558
|
let [S2Liq, S3Liq, tau] = MarketData._getLiquidationParams(account.symbol, newLockedInValueQC, newPositionBC, newMarginCashCC, Sm, S3, S2, this.symbolToPerpStaticInfo);
|
|
549
559
|
// New position risk
|
|
@@ -893,7 +903,7 @@ export default class MarketData extends PerpetualDataHandler {
|
|
|
893
903
|
const perpId = PerpetualDataHandler.symbolToPerpetualId(symbol, this.symbolToPerpStaticInfo);
|
|
894
904
|
const poolInfo = this.poolStaticInfos[this.getPoolStaticInfoIndexFromSymbol(symbol)];
|
|
895
905
|
const indexPriceInfo = await this.priceFeedGetter.fetchPricesForPerpetual(symbol);
|
|
896
|
-
const [fS2, fS3, fEma] = [indexPriceInfo.s2, indexPriceInfo.s3, indexPriceInfo.ema].map((x) => floatToABK64x64(x));
|
|
906
|
+
const [fS2, fS3, fEma] = [indexPriceInfo.s2, indexPriceInfo.s3 ?? 0, indexPriceInfo.ema].map((x) => floatToABK64x64(x));
|
|
897
907
|
const proxyCalls = [
|
|
898
908
|
// 0: traderState
|
|
899
909
|
{
|
|
@@ -938,8 +948,8 @@ export default class MarketData extends PerpetualDataHandler {
|
|
|
938
948
|
const availCashCC = account.collateralCC + walletBalance + account.unrealizedFundingCollateralCCY;
|
|
939
949
|
const idxNotional = 4;
|
|
940
950
|
const [maxShortPosPerp, maxLongPosPerp] = await this.getMaxShortLongPos(perpId, traderState[idxNotional], overrides);
|
|
941
|
-
const maxShort = pmFindMaxTradeSize(-1, currentPositionBC, availCashCC, account.entryPrice * currentPositionBC, Sm, Sm, indexPriceInfo.s3, totLong, totShort, maxShortPosPerp, maxLongPosPerp);
|
|
942
|
-
const maxLong = pmFindMaxTradeSize(
|
|
951
|
+
const maxShort = pmFindMaxTradeSize(-1, currentPositionBC, availCashCC, account.entryPrice * currentPositionBC, Sm, Sm, indexPriceInfo.s3 ?? 0, totLong, totShort, maxShortPosPerp, maxLongPosPerp);
|
|
952
|
+
const maxLong = pmFindMaxTradeSize(1, currentPositionBC, availCashCC, account.entryPrice * currentPositionBC, Sm, Sm, indexPriceInfo.s3 ?? 0, totLong, totShort, maxShortPosPerp, maxLongPosPerp);
|
|
943
953
|
return { buy: maxLong, sell: maxShort };
|
|
944
954
|
}
|
|
945
955
|
/**
|
|
@@ -996,7 +1006,7 @@ export default class MarketData extends PerpetualDataHandler {
|
|
|
996
1006
|
const isPredMkt = false;
|
|
997
1007
|
const indexPriceInfo = await this.priceFeedGetter.fetchPricesForPerpetual(symbol);
|
|
998
1008
|
let coll2SettlePromise = this.fetchCollateralToSettlementConversion(symbol);
|
|
999
|
-
const [fS2, fS3, fEma] = [indexPriceInfo.s2, indexPriceInfo.s3, indexPriceInfo.ema].map((x) => floatToABK64x64(x));
|
|
1009
|
+
const [fS2, fS3, fEma] = [indexPriceInfo.s2, indexPriceInfo.s3 ?? 0, indexPriceInfo.ema].map((x) => floatToABK64x64(x));
|
|
1000
1010
|
if (!this.proxyContract || !this.multicall) {
|
|
1001
1011
|
throw new Error("proxy contract not initialized");
|
|
1002
1012
|
}
|
|
@@ -1103,8 +1113,7 @@ export default class MarketData extends PerpetualDataHandler {
|
|
|
1103
1113
|
if (!this.proxyContract) {
|
|
1104
1114
|
throw Error("no proxy contract initialized. Use createProxyInstance().");
|
|
1105
1115
|
}
|
|
1106
|
-
|
|
1107
|
-
return px == undefined ? undefined : ABK64x64ToFloat(px);
|
|
1116
|
+
return await this.proxyContract.getOraclePrice([toBytes4(base), toBytes4(quote)], overrides || {});
|
|
1108
1117
|
}
|
|
1109
1118
|
/**
|
|
1110
1119
|
* Get the status of an order given a symbol and order Id
|
|
@@ -1228,7 +1237,7 @@ export default class MarketData extends PerpetualDataHandler {
|
|
|
1228
1237
|
// fetch from API
|
|
1229
1238
|
priceInfo = await this.priceFeedGetter.fetchPricesForPerpetual(symbol);
|
|
1230
1239
|
}
|
|
1231
|
-
return await PerpetualDataHandler._queryPerpetualPrice(symbol, quantity, this.symbolToPerpStaticInfo, this.proxyContract, [priceInfo.s2, priceInfo.s3], //s2,s3
|
|
1240
|
+
return await PerpetualDataHandler._queryPerpetualPrice(symbol, quantity, this.symbolToPerpStaticInfo, this.proxyContract, [priceInfo.s2, priceInfo.s3 ?? 0], //s2,s3
|
|
1232
1241
|
priceInfo.conf, //conf
|
|
1233
1242
|
priceInfo.predMktCLOBParams, //params
|
|
1234
1243
|
overrides);
|
|
@@ -1732,6 +1741,7 @@ export default class MarketData extends PerpetualDataHandler {
|
|
|
1732
1741
|
indexPrice: 0,
|
|
1733
1742
|
collToQuoteIndexPrice: 0,
|
|
1734
1743
|
markPremium: ABK64x64ToFloat(perp.currentMarkPremiumRate.fPrice),
|
|
1744
|
+
markPrice: 0,
|
|
1735
1745
|
midPrice: 0,
|
|
1736
1746
|
currentFundingRateBps: 1e4 * ABK64x64ToFloat(perp.fCurrentFundingRate),
|
|
1737
1747
|
openInterestBC: ABK64x64ToFloat(perp.fOpenInterest),
|
|
@@ -1788,6 +1798,18 @@ export default class MarketData extends PerpetualDataHandler {
|
|
|
1788
1798
|
indexS3 = idxPriceS3Pair[0];
|
|
1789
1799
|
}
|
|
1790
1800
|
perp.collToQuoteIndexPrice = indexS3;
|
|
1801
|
+
const emaKey = info.S2Symbol + ":ema";
|
|
1802
|
+
let markPrice;
|
|
1803
|
+
if (idxPriceMap.has(emaKey)) {
|
|
1804
|
+
let ema;
|
|
1805
|
+
let res = idxPriceMap.get(emaKey);
|
|
1806
|
+
ema = res[0];
|
|
1807
|
+
markPrice = ema + perp.markPremium;
|
|
1808
|
+
}
|
|
1809
|
+
else {
|
|
1810
|
+
markPrice = perp.indexPrice * (1 + perp.markPremium);
|
|
1811
|
+
}
|
|
1812
|
+
perp.markPrice = markPrice;
|
|
1791
1813
|
perp.midPrice = midPriceMap.get(symbol3s);
|
|
1792
1814
|
// which pool?
|
|
1793
1815
|
const poolId = info.poolId;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"marketData.js","sourceRoot":"","sources":["../../src/marketData.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,SAAS,EAAE,eAAe,EAAuB,MAAM,QAAQ,CAAC;AAChG,OAAO,EACL,QAAQ,EACR,WAAW,EACX,wBAAwB,EACxB,0BAA0B,EAE1B,SAAS,EACT,iBAAiB,EAEjB,iBAAiB,EACjB,cAAc,EACd,SAAS,EACT,YAAY,EACZ,aAAa,GACd,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,cAAc,EAEd,mBAAmB,GAGpB,MAAM,aAAa,CAAC;AAIrB,OAAO,EACL,eAAe,EAIf,YAAY,EACZ,WAAW,EACX,eAAe,EACf,2BAA2B,EAC3B,wBAAwB,EAGxB,aAAa,EACb,kBAAkB,GACnB,MAAM,WAAW,CAAC;AAanB,OAAO,oBAAoB,MAAM,wBAAwB,CAAC;AAE1D,OAAO,EAAE,sBAAsB,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAE3D;;;;;GAKG;AACH,MAAM,CAAC,OAAO,OAAO,UAAW,SAAQ,oBAAoB;IAC1D;;;;;;;;;;;;;;;;;OAiBG;IACH,YAAmB,MAAqB;QACtC,KAAK,CAAC,MAAM,CAAC,CAAC;IAChB,CAAC;IAkBD;;;;;OAKG;IACI,KAAK,CAAC,mBAAmB,CAAC,oBAA4C,EAAE,SAAqB;QAClG,IAAI,oBAAoB,IAAI,SAAS,IAAI,CAAC,CAAC,qBAAqB,IAAI,oBAAoB,CAAC,EAAE;YACzF,IAAI,CAAC,QAAQ,GAAG,oBAAoB,IAAI,IAAI,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAC1E,MAAM,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;SAC3D;aAAM;YACL,MAAM,OAAO,GAAG,oBAAoB,CAAC;YACrC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC;YACtC,IAAI,CAAC,QAAQ,GAAG,IAAI,eAAe,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;YACtG,IAAI,CAAC,aAAa,GAAG,IAAI,QAAQ,CAAC,OAAO,CAAC,eAAe,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC,QAAS,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;YACnG,IAAI,CAAC,SAAS,GAAG,mBAAmB,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,IAAI,iBAAiB,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;YACxG,CAAC;gBACC,kBAAkB,EAAE,IAAI,CAAC,kBAAkB;gBAC3C,eAAe,EAAE,IAAI,CAAC,eAAe;gBACrC,oBAAoB,EAAE,IAAI,CAAC,oBAAoB;gBAC/C,sBAAsB,EAAE,IAAI,CAAC,sBAAsB;gBACnD,mBAAmB,EAAE,IAAI,CAAC,mBAAmB;aAC9C,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC,CAAC;YAC9B,IAAI,CAAC,eAAe,CAAC,iBAAiB,CAAC,OAAO,CAAC,iBAAiB,EAAE,CAAC,CAAC;YACpE,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,QAAQ,CAAC;SACvC;IACH,CAAC;IAED;;;OAGG;IACI,eAAe;QACpB,IAAI,IAAI,CAAC,aAAa,IAAI,IAAI,EAAE;YAC9B,MAAM,KAAK,CAAC,2DAA2D,CAAC,CAAC;SAC1E;QACD,OAAO,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;IAC9C,CAAC;IAED;;;OAGG;IACI,iBAAiB;QACtB,OAAO,IAAI,CAAC,eAAe,CAAC,iBAAiB,EAAE,CAAC;IAClD,CAAC;IAED;;;;OAIG;IACI,yBAAyB,CAC9B,OAKwC;QAExC,OAAO,oBAAoB,CAAC,sBAAsB,CAAC,OAAO,EAAE,IAAI,CAAC,sBAAsB,CAAC,CAAC;IAC3F,CAAC;IAED;;;;;;;;;;;;;;;;;OAiBG;IACI,wBAAwB;QAC7B,IAAI,IAAI,CAAC,aAAa,IAAI,IAAI,EAAE;YAC9B,MAAM,KAAK,CAAC,2DAA2D,CAAC,CAAC;SAC1E;QACD,OAAO,IAAI,CAAC,aAAa,CAAC;IAC5B,CAAC;IAED;;;;;;;;;;;;;;;;;OAiBG;IACI,KAAK,CAAC,YAAY,CAAC,SAA2C;QACnE,IAAI,IAAI,CAAC,aAAa,IAAI,IAAI,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,EAAE;YACxD,MAAM,KAAK,CAAC,2DAA2D,CAAC,CAAC;SAC1E;QACD,IAAI,MAA0B,CAAC;QAC/B,IAAI,SAAS,EAAE;YACb,CAAC,EAAE,MAAM,EAAE,GAAG,SAAS,EAAE,GAAG,SAAS,CAAC,CAAC;SACxC;QACD,MAAM,QAAQ,GAAG,IAAI,eAAe,CAAC,MAAM,IAAI,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;QACpG,OAAO,MAAM,UAAU,CAAC,aAAa,CACnC,IAAI,QAAQ,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,QAAS,EAAE,QAAQ,CAAC,EAC7D,mBAAmB,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,IAAI,iBAAiB,EAAE,QAAQ,CAAC,EACjF,IAAI,CAAC,eAAe,EACpB,IAAI,CAAC,sBAAsB,EAC3B,IAAI,CAAC,mBAAmB,EACxB,IAAI,CAAC,kBAAkB,EACvB,IAAI,CAAC,UAAU,EACf,IAAI,CAAC,eAAe,EACpB,IAAI,CAAC,iBAAkB,EAAE,kDAAkD;QAC3E,SAAsB,CACvB,CAAC;IACJ,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;OAsBG;IACI,KAAK,CAAC,UAAU,CACrB,UAAkB,EAClB,MAAe,EACf,SAA2C;QAE3C,8CAA8C;QAC9C,IAAI,QAAQ,GAAmD,EAAE,CAAC;QAClE,IAAI,OAAsB,CAAC;QAC3B,IAAI,MAAM,EAAE;YACV,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,yBAAyB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;SAC7F;aAAM;YACL,OAAO,GAAG,IAAI,CAAC,eAAe,CAAC,MAAM,CACnC,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,yBAAyB,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,EAClF,IAAI,KAAK,EAAU,CACpB,CAAC;SACH;QACD,IAAI,MAA0B,CAAC;QAC/B,IAAI,SAAS,EAAE;YACb,CAAC,EAAE,MAAM,EAAE,GAAG,SAAS,EAAE,GAAG,SAAS,CAAC,CAAC;SACxC;QACD,MAAM,QAAQ,GAAG,IAAI,eAAe,CAAC,MAAM,IAAI,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;QACpG,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE;YACtB,MAAM,IAAI,KAAK,CAAC,kCAAkC,MAAM,EAAE,CAAC,CAAC;SAC7D;aAAM,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE;YAC7B,IAAI,GAAG,GAAG,MAAM,IAAI,CAAC,sBAAsB,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC;YACzF,QAAQ,CAAC,IAAI,CAAC,GAAI,CAAC,CAAC;SACrB;aAAM;YACL,QAAQ,GAAG,MAAM,IAAI,CAAC,uBAAuB,CAAC,UAAU,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC;SACzF;QACD,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED;;;;;;OAMG;IACK,KAAK,CAAC,sBAAsB,CAClC,UAAkB,EAClB,MAAc,EACd,QAAkB,EAClB,SAAqB;QAErB,8CAA8C;QAC9C,MAAM,iBAAiB,GAAG,IAAI,CAAC,oBAAoB,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;QACtE,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,qBAAqB,CACnD,UAAU,EACV,iBAAiB,EACjB,IAAI,CAAC,sBAAsB,EAC3B,SAAS,CACV,CAAC;QACF,MAAM,OAAO,GAAG,MAAM,UAAU,CAAC,gBAAgB,CAAC,UAAU,EAAE,iBAAiB,EAAE,SAAS,CAAC,CAAC;QAC5F,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC;IAC/C,CAAC;IAED;;;;;;OAMG;IACK,KAAK,CAAC,uBAAuB,CACnC,UAAkB,EAClB,OAAiB,EACjB,QAAkB,EAClB,SAAqB;QAErB,6CAA6C;QAC7C,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,IAAI,CAAC,sBAAsB,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,kBAAkB,KAAK,YAAY,CAAC,CAAC;QACnH,8CAA8C;QAC9C,MAAM,kBAAkB,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,IAAI,CAAC,oBAAoB,CAAC,MAAM,EAAE,QAAQ,CAAC,EAAE,IAAI,CAAC,CAAC;QACtG,MAAM,SAAS,GAAG,mBAAmB,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,IAAI,iBAAiB,EAAE,QAAQ,CAAC,CAAC;QACpG,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,UAAU,CAAC,uBAAuB,CAClE,UAAU,EACV,kBAAkB,EAClB,SAAS,EACT,IAAI,CAAC,sBAAsB,EAC3B,SAAS,CACV,CAAC;QACF,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACpF,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;OAuBG;IACI,KAAK,CAAC,YAAY,CACvB,UAAkB,EAClB,MAAe,EACf,SAA2C;QAE3C,IAAI,IAAI,CAAC,aAAa,IAAI,IAAI,EAAE;YAC9B,MAAM,KAAK,CAAC,2DAA2D,CAAC,CAAC;SAC1E;QACD,IAAI,QAAQ,GAAyB,EAAE,CAAC;QACxC,IAAI,OAAsB,CAAC;QAC3B,IAAI,MAAM,EAAE;YACV,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,yBAAyB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;SAC7F;aAAM;YACL,OAAO,GAAG,IAAI,CAAC,eAAe,CAAC,MAAM,CACnC,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,yBAAyB,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,EAClF,IAAI,KAAK,EAAU,CACpB,CAAC;SACH;QACD,IAAI,MAA0B,CAAC;QAC/B,IAAI,SAAS,EAAE;YACb,CAAC,EAAE,MAAM,EAAE,GAAG,SAAS,EAAE,GAAG,SAAS,CAAC,CAAC;SACxC;QACD,MAAM,QAAQ,GAAG,IAAI,eAAe,CAAC,MAAM,IAAI,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;QAEpG,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE;YACtB,MAAM,IAAI,KAAK,CAAC,kCAAkC,MAAM,EAAE,CAAC,CAAC;SAC7D;aAAM,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE;YAC7B,IAAI,GAAG,GAAG,MAAM,IAAI,CAAC,iCAAiC,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC;YACpG,QAAQ,CAAC,IAAI,CAAC,GAAI,CAAC,CAAC;SACrB;aAAM;YACL,QAAQ,GAAG,MAAM,IAAI,CAAC,kCAAkC,CAAC,UAAU,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC;SACpG;QACD,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED;;;;;;OAMG;IACO,KAAK,CAAC,iCAAiC,CAC/C,UAAkB,EAClB,MAAc,EACd,QAAkB,EAClB,SAAqB;QAErB,IAAI,GAAG,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,uBAAuB,CAAC,MAAM,CAAC,CAAC;QACrE,MAAM,MAAM,GAAG,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC;QAC/C,IAAI,OAAO,GAAG,MAAM,oBAAoB,CAAC,gBAAgB,CACvD,UAAU,EACV,MAAM,EACN,IAAI,CAAC,sBAAsB,EAC3B,IAAI,QAAQ,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,QAAS,EAAE,QAAQ,CAAC,EAC7D,GAAG,EACH,MAAM,EACN,SAAS,CACV,CAAC;QACF,OAAO,OAAO,CAAC;IACjB,CAAC;IAED;;;;;;OAMG;IACO,KAAK,CAAC,kCAAkC,CAChD,UAAkB,EAClB,OAAiB,EACjB,QAAkB,EAClB,SAAqB;QAErB,MAAM,oBAAoB,GAAG,EAAE,CAAC;QAChC,MAAM,MAAM,GAAG,IAAI,KAAK,EAAgB,CAAC;QACzC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACvC,IAAI,GAAG,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,uBAAuB,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;YACzE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;SAClB;QACD,IAAI,OAAO,GAAoB,EAAE,CAAC;QAClC,IAAI,WAAW,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,oBAAoB,CAAC,CAAC;QACzD,IAAI,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,oBAAoB,CAAC,CAAC;QAChD,OAAO,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE;YAC7B,MAAM,MAAM,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC;YACxE,IAAI,GAAG,GAAG,MAAM,oBAAoB,CAAC,iBAAiB,CACpD,KAAK,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,EAC1C,WAAW,EACX,IAAI,CAAC,sBAAsB,EAC3B,mBAAmB,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,IAAI,iBAAiB,EAAE,QAAQ,CAAC,EACjF,IAAI,QAAQ,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,QAAS,EAAE,QAAQ,CAAC,EAC7D,GAAG,EACH,MAAM,EACN,SAAS,CACV,CAAC;YACF,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YAC9B,WAAW,GAAG,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,MAAM,GAAG,oBAAoB,CAAC,CAAC;YACnF,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,MAAM,GAAG,oBAAoB,CAAC,CAAC;SAC3E;QACD,OAAO,OAAO,CAAC;IACjB,CAAC;IAEO,KAAK,CAAC,0BAA0B,CACtC,MAAc,EACd,UAAkB,EAClB,aAAqB,EACrB,cAA4B,EAC5B,6BAAqC,EACrC,SAAqB;QAErB,IAAI,IAAI,CAAC,aAAa,IAAI,IAAI,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,EAAE;YACxD,MAAM,KAAK,CAAC,2DAA2D,CAAC,CAAC;SAC1E;QACD,MAAM,SAAS,GAAG,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC;QAClD,mBAAmB;QACnB,MAAM,MAAM,GAAG,oBAAoB,CAAC,mBAAmB,CAAC,MAAM,EAAE,IAAI,CAAC,sBAAsB,CAAC,CAAC;QAC7F,MAAM,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,EAAE,EAAE,cAAc,CAAC,EAAE,EAAE,cAAc,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAC5F,eAAe,CAAC,CAAC,CAAC,CACS,CAAC;QAC9B,MAAM,UAAU,GAA6B;YAC3C,iBAAiB;YACjB;gBACE,MAAM,EAAE,IAAI,CAAC,aAAa,CAAC,MAAM;gBACjC,YAAY,EAAE,IAAI;gBAClB,QAAQ,EAAE,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,kBAAkB,CAAC,gBAAgB,EAAE,CAAC,MAAM,EAAE,UAAU,EAAE,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC;aAC/G;YACD,qBAAqB;YACrB;gBACE,MAAM,EAAE,IAAI,CAAC,aAAa,CAAC,MAAM;gBACjC,YAAY,EAAE,IAAI;gBAClB,QAAQ,EAAE,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,kBAAkB,CAAC,qBAAqB,EAAE;oBAC/E,MAAM;oBACN,eAAe,CAAC,aAAa,CAAC;oBAC9B,CAAC,GAAG,EAAE,GAAG,CAAC;oBACV,cAAc,CAAC,IAAI;oBACnB,cAAc,CAAC,iBAAiB;iBACjC,CAAC;aACH;YACD,kBAAkB;YAClB;gBACE,MAAM,EAAE,IAAI,CAAC,aAAa,CAAC,MAAM;gBACjC,YAAY,EAAE,KAAK;gBACnB,QAAQ,EAAE,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,kBAAkB,CAAC,iCAAiC,EAAE;oBAC3F,MAAM;oBACN,eAAe,CAAC,6BAA6B,CAAC;oBAC9C,IAAI;iBACL,CAAC;aACH;YACD,mBAAmB;YACnB;gBACE,MAAM,EAAE,IAAI,CAAC,aAAa,CAAC,MAAM;gBACjC,YAAY,EAAE,KAAK;gBACnB,QAAQ,EAAE,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,kBAAkB,CAAC,iCAAiC,EAAE;oBAC3F,MAAM;oBACN,eAAe,CAAC,6BAA6B,CAAC;oBAC9C,KAAK;iBACN,CAAC;aACH;SACF,CAAC;QAEF,YAAY;QACZ,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,UAAU,CAAC,UAAU,EAAE,CAAC,SAAS,IAAI,EAAE,CAAc,CAAC,CAAC;QAE9G,+FAA+F;QAC/F,IAAI,WAAqB,CAAC;QAC1B,IAAI,cAAc,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE;YAC7B,WAAW,GAAG,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,oBAAoB,CAC7D,gBAAgB,EAChB,cAAc,CAAC,CAAC,CAAC,CAAC,UAAU,CAC7B,CAAC,CAAC,CAAC,CAAC;SACN;aAAM;YACL,WAAW,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,MAAM,EAAE,UAAU,EAAE,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC;SACxF;QACD,MAAM,OAAO,GAAG,UAAU,CAAC,2BAA2B,CACpD,MAAM,EACN,WAAW,EACX,IAAI,CAAC,sBAAsB,EAC3B,cAAe,EACf,SAAS,CACV,CAAC;QAEF,kCAAkC;QAClC,IAAI,QAAgB,CAAC;QACrB;YACE,IAAI,MAAc,CAAC;YACnB,IAAI,cAAc,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE;gBAC7B,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,oBAAoB,CACxD,qBAAqB,EACrB,cAAc,CAAC,CAAC,CAAC,CAAC,UAAU,CAC7B,CAAC,CAAC,CAAC,CAAC;aACN;iBAAM;gBACL,MAAM,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,mBAAmB,CACnD,MAAM,EACN,eAAe,CAAC,aAAa,CAAC,EAC9B,CAAC,cAAc,CAAC,EAAE,EAAE,cAAc,CAAC,EAAE,CAAC,EACtC,cAAc,CAAC,IAAI,EACnB,cAAc,CAAC,iBAAiB,CACjC,CAAC;aACH;YACD,QAAQ,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC;SACpC;QAED,UAAU;QACV,MAAM,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,oBAAoB,CAChE,iCAAiC,EACjC,cAAc,CAAC,CAAC,CAAC,CAAC,UAAU,CAC7B,CAAC,CAAC,CAAW,CAAC;QACf,MAAM,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,eAAe,CAAC,QAAQ,CAAC,GAAG,6BAA6B,CAAC,CAAC;QAC5F,WAAW;QACX,MAAM,SAAS,GAAG,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,oBAAoB,CACjE,iCAAiC,EACjC,cAAc,CAAC,CAAC,CAAC,CAAC,UAAU,CAC7B,CAAC,CAAC,CAAW,CAAC;QACf,MAAM,aAAa,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC,GAAG,6BAA6B,CAAC,CAAC;QACxG,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,aAAa,EAAE,aAAa,EAAE,YAAY,EAAE,YAAY,EAAE,CAAC;IAC5G,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA6BG;IACI,KAAK,CAAC,mBAAmB,CAC9B,UAAkB,EAClB,KAAY,EACZ,6BAAqC,EACrC,cAAsB,EACtB,cAA6B,EAC7B,SAAqB;QAErB,IAAI,IAAI,CAAC,aAAa,IAAI,IAAI,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,EAAE;YACxD,MAAM,KAAK,CAAC,2DAA2D,CAAC,CAAC;SAC1E;QACD,MAAM,SAAS,GAAG,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QACxD,eAAe;QACf,IAAI,cAAc,IAAI,SAAS,EAAE;YAC/B,cAAc,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,uBAAuB,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;SACnF;QAED,sBAAsB;QACtB,IAAI,aAAa,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,IAAI,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACjF,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC;QAE5B,IAAI,GAAG,GAAG,MAAM,IAAI,CAAC,0BAA0B,CAC7C,MAAM,EACN,UAAU,EACV,aAAa,EACb,cAAc,EACd,6BAA6B,EAC7B,SAAS,CACV,CAAC;QACF,MAAM,OAAO,GAAG,GAAG,CAAC,OAAO,CAAC;QAC5B,MAAM,YAAY,GAAG,GAAG,CAAC,YAAY,CAAC;QACtC,MAAM,aAAa,GAAG,GAAG,CAAC,aAAa,CAAC;QACxC,MAAM,QAAQ,GAAG,GAAG,CAAC,QAAQ,CAAC;QAC9B,IAAI,EAAE,GAAG,OAAO,CAAC,SAAS,CAAC;QAC3B,IAAI,EAAE,GAAG,cAAc,CAAC,EAAE,CAAC;QAC3B,IAAI,EAAE,GAAG,OAAO,CAAC,qBAAqB,CAAC;QAEvC,mFAAmF;QACnF,IAAI,UAAkB,CAAC;QACvB,IAAI,KAAK,CAAC,UAAU,IAAI,SAAS,EAAE;YACjC,UAAU,GAAG,QAAQ,CAAC;SACvB;aAAM;YACL,IAAI,KAAK,CAAC,IAAI,IAAI,iBAAiB,EAAE;gBACnC,IAAI,KAAK,CAAC,IAAI,IAAI,QAAQ,EAAE;oBAC1B,6EAA6E;oBAC7E,mGAAmG;oBACnG,UAAU,GAAG,GAAG,GAAG,CAAC,KAAK,CAAC,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC,CAAC;iBAC9E;qBAAM;oBACL,UAAU,GAAG,GAAG,GAAG,CAAC,KAAK,CAAC,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC,CAAC;iBAC9E;aACF;iBAAM;gBACL,+EAA+E;gBAC/E,IACE,CAAC,KAAK,CAAC,IAAI,IAAI,QAAQ,IAAI,KAAK,CAAC,UAAU,GAAG,QAAQ,CAAC;oBACvD,CAAC,KAAK,CAAC,IAAI,IAAI,SAAS,IAAI,KAAK,CAAC,UAAU,GAAG,QAAQ,CAAC,EACxD;oBACA,kCAAkC;oBAClC,UAAU,GAAG,QAAQ,CAAC;iBACvB;qBAAM;oBACL,oFAAoF;oBACpF,MAAM,QAAQ,GAAG,QAAQ,GAAG,EAAE,CAAC;oBAC/B,EAAE,GAAG,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,UAAU,GAAG,QAAQ,CAAC,CAAC;oBAC/C,EAAE,GAAG,KAAK,CAAC,UAAU,GAAG,QAAQ,CAAC;oBACjC,UAAU,GAAG,KAAK,CAAC,UAAU,CAAC;oBAC9B,IAAI,IAAI,CAAC,sBAAsB,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,sBAAsB,IAAI,wBAAwB,EAAE;wBAChG,EAAE,GAAG,EAAE,CAAC;qBACT;iBACF;aACF;SACF;QAED,iBAAiB;QACjB,IAAI,SAAS,GAAG,UAAU,CAAC,WAAW,CAAC,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC,sBAAsB,CAAC,CAAC;QAClF,kCAAkC;QAClC,IAAI,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,SAAS,EAAE;YACxC,OAAO,EAAE,eAAe,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC,EAAE,YAAY,EAAE,YAAY,EAAE,aAAa,EAAE,aAAa,EAAE,CAAC;SAC7G;QACD,wEAAwE;QACxE,IAAI,mBAAmB,GAAG,OAAO,CAAC,YAAY,CAAC;QAC/C,yDAAyD;QACzD,IAAI,iBAAiB,GAAG,CAAC,OAAO,CAAC,IAAI,IAAI,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,uBAAuB,CAAC;QAC9F,yBAAyB;QACzB,IAAI,iBAAiB,GAAG,OAAO,CAAC,UAAU,GAAG,iBAAiB,CAAC;QAE/D,oBAAoB;QACpB,kBAAkB;QAClB,IAAI,aAAa,GAAG,iBAAiB,GAAG,aAAa,CAAC;QACtD,IAAI,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,GAAG,EAAE,GAAG,SAAS,EAAE;YAC5C,eAAe;YACf,aAAa,GAAG,CAAC,iBAAiB,CAAC;YACnC,aAAa,GAAG,CAAC,CAAC;SACnB;QACD,IAAI,OAAO,GAAG,aAAa,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,aAAa,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,WAAW,CAAC;QAEzF,IAAI,YAAY,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,GAAG,cAAc,GAAG,IAAI,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC;QAC/E,IAAI,aAAa,GAAG,IAAI,CAAC,sBAAsB,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,CAAE,CAAC,cAAc,CAAC;QACpF,cAAc;QACd,IAAI,OAAO,GAAG,aAAa,IAAI,CAAC,IAAI,aAAa,GAAG,aAAa,GAAG,CAAC,CAAC;QACtE,IAAI,MAAM,GAAG,aAAa,IAAI,CAAC,IAAI,CAAC,iBAAiB,IAAI,CAAC,IAAI,aAAa,GAAG,iBAAiB,GAAG,CAAC,CAAC,CAAC,CAAC,wBAAwB;QAC9H,IAAI,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,iBAAiB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,uCAAuC;QACtH,IAAI,sBAAsB,GAAG,CAAC,KAAK,CAAC,eAAe,IAAI,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC;QAEzE,uCAAuC;QACvC,2BAA2B;QAC3B,4BAA4B;QAC5B,iCAAiC;QACjC,yEAAyE;QACzE,IAAI,eAAuB,CAAC;QAC5B,IAAI,SAAiB,CAAC;QACtB,IAAI,KAAK,CAAC,QAAQ,IAAI,SAAS,IAAI,aAAa,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,IAAI,CAAC,MAAM,IAAI,CAAC,sBAAsB,CAAC,EAAE;YACxG,eAAe,GAAG,CAAC,CAAC;YACpB,SAAS,GAAG,CAAC,CAAC;SACf;aAAM;YACL,yFAAyF;YACzF,8CAA8C;YAC9C,IAAI,iBAAiB,GAAG,IAAI,CAAC,sBAAsB,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,CAAE,CAAC,iBAAiB,CAAC;YAC3F,SAAS,GAAG,MAAM,IAAI,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,IAAI,CAAC,GAAG,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC;YAC3E,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,YAAY,EAAE,iBAAiB,CAAC,CAAC;YAC7E,eAAe,GAAG,2BAA2B,CAAC,IAAI,EAAE,EAAE,EAAE,aAAa,EAAE,SAAS,EAAE,UAAU,EAAE,EAAE,EAAE,EAAE,EAAE,SAAS,CAAC,CAAC;YACjH,yCAAyC;YACzC,eAAe,IAAI,YAAY,GAAG,aAAa,CAAC;SACjD;QAED,0BAA0B;QAC1B,IAAI,WAAW,GAAG,CAAC,CAAC,aAAa,GAAG,CAAC,UAAU,GAAG,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC;QAC5D,IAAI,aAAa,GAAG,aAAa,GAAG,EAAE,CAAC;QACvC,IAAI,OAAO,EAAE;YACX,IAAI,GAAG,GAAG,OAAO,CAAC,UAAU,GAAG,aAAa,GAAG,aAAa,CAAC;YAC7D,aAAa,IAAI,GAAG,CAAC;YACrB,WAAW,IAAI,GAAG,GAAG,EAAE,CAAC;SACzB;QACD,mBAAmB;QACnB,WAAW,GAAG,WAAW,GAAG,OAAO,CAAC,8BAA8B,GAAG,YAAY,GAAG,aAAa,CAAC;QAElG,0DAA0D;QAC1D,IAAI,kBAAkB,GAAG,iBAAiB,GAAG,aAAa,CAAC;QAC3D,IAAI,eAAe,GAAG,mBAAmB,GAAG,WAAW,GAAG,eAAe,CAAC;QAC1E,IAAI,aAAa,GAAG,aAAa,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,kBAAkB,GAAG,aAAa,CAAC,CAAC;QAC1F,IAAI,kBAAkB,GAAG,eAAe,GAAG,CAAC,aAAa,GAAG,EAAE,GAAG,kBAAkB,CAAC,GAAG,EAAE,CAAC;QAC1F,IAAI,WAAW,GACb,aAAa,IAAI,CAAC;YAChB,CAAC,CAAC,CAAC;YACH,CAAC,CAAC,kBAAkB,IAAI,CAAC;gBACzB,CAAC,CAAC,QAAQ;gBACV,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,GAAG,kBAAkB,CAAC;QAE/D,qBAAqB;QACrB,IAAI,CAAC,KAAK,EAAE,KAAK,EAAE,GAAG,CAAC,GAAG,UAAU,CAAC,qBAAqB,CACxD,OAAO,CAAC,MAAM,EACd,kBAAkB,EAClB,aAAa,EACb,eAAe,EACf,EAAE,EACF,EAAE,EACF,EAAE,EACF,IAAI,CAAC,sBAAsB,CAC5B,CAAC;QAEF,oBAAoB;QACpB,IAAI,eAAe,GAAkB;YACnC,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,uBAAuB,EAAE,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC;YAChD,IAAI,EAAE,OAAO;YACb,UAAU,EAAE,aAAa;YACzB,QAAQ,EAAE,WAAW;YACrB,SAAS,EAAE,EAAE;YACb,qBAAqB,EAAE,aAAa,GAAG,EAAE,GAAG,kBAAkB;YAC9D,8BAA8B,EAAE,CAAC;YACjC,YAAY,EAAE,eAAe;YAC7B,qBAAqB,EAAE,EAAE;YACzB,gBAAgB,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC;YAChC,cAAc,EAAE,CAAC,GAAG,GAAG;SACxB,CAAC;QACF,OAAO;YACL,eAAe,EAAE,eAAe;YAChC,SAAS,EAAE,eAAe;YAC1B,YAAY,EAAE,YAAY;YAC1B,aAAa,EAAE,aAAa;SAC7B,CAAC;IACJ,CAAC;IAED;;;;;;;;OAQG;IACI,MAAM,CAAC,kBAAkB,CAC9B,KAAqB,EACrB,eAAuB,EACvB,EAAU,EACV,UAAkB,EAClB,YAAoB;QAEpB,OAAO,aAAa,CAAC,EAAE,GAAG,CAAC,EAAE,eAAe,EAAE,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,MAAM,EAAE,UAAU,EAAE,YAAY,CAAC,CAAC;IACvG,CAAC;IAED;;;;;;;;;;;;;;;;;;;;OAoBG;IACI,KAAK,CAAC,8BAA8B,CACzC,eAAuB,EACvB,OAAsB,EACtB,cAA6B,EAC7B,SAAqB;QAErB,IAAI,IAAI,CAAC,aAAa,IAAI,IAAI,EAAE;YAC9B,MAAM,IAAI,KAAK,CAAC,2DAA2D,CAAC,CAAC;SAC9E;QACD,IAAI,eAAe,GAAG,OAAO,CAAC,YAAY,GAAG,OAAO,CAAC,8BAA8B,GAAG,CAAC,EAAE;YACvF,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC;SAChD;QACD,IAAI,cAAc,IAAI,SAAS,EAAE;YAC/B,cAAc,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,uBAAuB,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;SACrF;QACD,IAAI,cAAc,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,MAAM,EAAE,cAAc,EAAE,SAAS,CAAC,CAAC;QAC7F,IAAI,EAAE,CAAC,CAAC,YAAY;QACpB,IAAI,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;YAC3C,EAAE,GAAG,cAAc,CAAC,GAAG,GAAG,cAAc,CAAC,WAAW,CAAC;SACtD;aAAM;YACL,EAAE,GAAG,cAAc,CAAC,UAAU,GAAG,CAAC,CAAC,GAAG,cAAc,CAAC,WAAW,CAAC,CAAC;SACnE;QAED,IAAI,CAAC,EAAE,EAAE,EAAE,CAAC,GAAG,CAAC,cAAc,CAAC,UAAU,EAAE,cAAc,CAAC,qBAAqB,CAAC,CAAC;QAEjF,kEAAkE;QAClE,IAAI,OAAO,CAAC,uBAAuB,IAAI,CAAC,EAAE;YACxC,OAAO;gBACL,MAAM,EAAE,OAAO,CAAC,MAAM;gBACtB,uBAAuB,EAAE,OAAO,CAAC,uBAAuB;gBACxD,IAAI,EAAE,OAAO,CAAC,IAAI;gBAClB,UAAU,EAAE,OAAO,CAAC,UAAU;gBAC9B,QAAQ,EAAE,OAAO,CAAC,QAAQ;gBAC1B,SAAS,EAAE,EAAE;gBACb,qBAAqB,EAAE,OAAO,CAAC,qBAAqB;gBACpD,8BAA8B,EAAE,OAAO,CAAC,8BAA8B;gBACtE,YAAY,EAAE,OAAO,CAAC,YAAY,GAAG,eAAe;gBACpD,qBAAqB,EAAE,EAAE;gBACzB,gBAAgB,EAAE,CAAC,CAAC,EAAE,SAAS,CAAC;gBAChC,cAAc,EAAE,QAAQ;aACzB,CAAC;SACH;QAED,IAAI,UAAU,GAAG,OAAO,CAAC,uBAAuB,GAAG,CAAC,OAAO,CAAC,IAAI,IAAI,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACvF,IAAI,UAAU,GAAG,OAAO,CAAC,UAAU,GAAG,UAAU,CAAC;QACjD,IAAI,eAAe,GAAG,OAAO,CAAC,YAAY,GAAG,eAAe,CAAC;QAC7D,IAAI,kBAAkB,GACpB,eAAe,GAAG,OAAO,CAAC,8BAA8B,GAAG,CAAC,UAAU,GAAG,EAAE,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC;QACjG,IAAI,kBAAkB,IAAI,CAAC,EAAE;YAC3B,OAAO;gBACL,MAAM,EAAE,OAAO,CAAC,MAAM;gBACtB,uBAAuB,EAAE,OAAO,CAAC,uBAAuB;gBACxD,IAAI,EAAE,OAAO,CAAC,IAAI;gBAClB,UAAU,EAAE,OAAO,CAAC,UAAU;gBAC9B,QAAQ,EAAE,QAAQ;gBAClB,SAAS,EAAE,EAAE;gBACb,qBAAqB,EAAE,OAAO,CAAC,qBAAqB;gBACpD,8BAA8B,EAAE,OAAO,CAAC,8BAA8B;gBACtE,YAAY,EAAE,eAAe;gBAC7B,qBAAqB,EAAE,EAAE;gBACzB,gBAAgB,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC;gBAC1B,cAAc,EAAE,CAAC;aAClB,CAAC;SACH;QACD,IAAI,WAAW,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,GAAG,kBAAkB,CAAC;QAExE,qBAAqB;QACrB,IAAI,CAAC,KAAK,EAAE,KAAK,EAAE,GAAG,CAAC,GAAG,UAAU,CAAC,qBAAqB,CACxD,OAAO,CAAC,MAAM,EACd,UAAU,EACV,UAAU,EACV,eAAe,EACf,EAAE,EACF,EAAE,EACF,EAAE,EACF,IAAI,CAAC,sBAAsB,CAC5B,CAAC;QAEF,oBAAoB;QACpB,IAAI,eAAe,GAAkB;YACnC,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,uBAAuB,EAAE,OAAO,CAAC,uBAAuB;YACxD,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,UAAU,EAAE,OAAO,CAAC,UAAU;YAC9B,QAAQ,EAAE,WAAW;YACrB,SAAS,EAAE,EAAE;YACb,qBAAqB,EAAE,OAAO,CAAC,qBAAqB;YACpD,8BAA8B,EAAE,OAAO,CAAC,8BAA8B;YACtE,YAAY,EAAE,eAAe;YAC7B,qBAAqB,EAAE,EAAE;YACzB,gBAAgB,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC;YAChC,cAAc,EAAE,CAAC,GAAG,GAAG;SACxB,CAAC;QACF,OAAO,eAAe,CAAC;IACzB,CAAC;IAED;;;;;;;;;;;;;OAaG;IACO,MAAM,CAAC,qBAAqB,CACpC,MAAc,EACd,UAAkB,EAClB,gBAAwB,EACxB,YAAoB,EACpB,SAAiB,EACjB,qBAA6B,EAC7B,EAAU,EACV,sBAAwD;QAExD,IAAI,KAAa,EAAE,KAAyB,CAAC;QAC7C,MAAM,UAAU,GAAG,sBAAsB,CAAC,GAAG,CAAC,MAAM,CAAE,CAAC;QACvD,IAAI,GAAG,GAAG,UAAU,CAAC,qBAAqB,CAAC;QAC3C,IAAI,OAAO,GAAG,UAAU,CAAC,sBAAsB,CAAC;QAChD,MAAM,MAAM,GAAG,UAAU,CAAC,wBAAwB,CAAC,UAAU,CAAC,CAAC;QAC/D,MAAM,mBAAmB,GAAG,CAAC,CAAC;QAC9B,MAAM,QAAQ,GAAG,CAAC,CAAC;QACnB,MAAM,YAAY,GAAG,CAAC,CAAC;QACvB,MAAM,aAAa,GAAG,CAAC,CAAC;QACxB,MAAM,cAAc,GAAG,CAAC,CAAC;QACzB,MAAM,MAAM,GAAG,CAAC,CAAC;QACjB,IAAI,WAAW,GAAG,IAAI,KAAK,CAAS,EAAE,CAAC,CAAC;QACxC,WAAW,CAAC,mBAAmB,CAAC,GAAG,eAAe,CAAC,YAAY,CAAC,CAAC;QACjE,WAAW,CAAC,QAAQ,CAAC,GAAG,WAAW,CAAC,mBAAmB,CAAC,CAAC;QACzD,WAAW,CAAC,YAAY,CAAC,GAAG,eAAe,CAAC,gBAAgB,CAAC,CAAC;QAC9D,WAAW,CAAC,aAAa,CAAC,GAAG,eAAe,CAAC,UAAU,CAAC,CAAC;QACzD,WAAW,CAAC,cAAc,CAAC,GAAG,eAAe,CAAC,SAAS,CAAC,CAAC;QACzD,WAAW,CAAC,MAAM,CAAC,GAAG,eAAe,CAAC,qBAAqB,CAAC,CAAC;QAE7D,CAAC,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,AAAD,EAAG,GAAG,UAAU,CAAC,0BAA0B,CAC5D,MAAM,EACN,WAAW,EACX,EAAE,EACF,sBAAsB,EACtB,MAAM,CACP,CAAC;QACF,OAAO,CAAC,KAAK,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC;IAC7B,CAAC;IAED;;;;;;;;;;;;;;;;;;;OAmBG;IACI,KAAK,CAAC,gBAAgB,CAAC,OAAe,EAAE,MAAc,EAAE,SAAqB;QAClF,IAAI,OAAO,GAAG,IAAI,CAAC,gCAAgC,CAAC,MAAM,CAAC,CAAC;QAC5D,IAAI,eAAe,GAAG,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,mBAAmB,CAAC;QACxE,IAAI,KAAK,GAAG,cAAc,CAAC,OAAO,CAAC,eAAe,EAAE,IAAI,CAAC,QAAS,CAAC,CAAC;QACpE,IAAI,aAAa,GAAG,MAAM,KAAK,CAAC,SAAS,CAAC,OAAO,EAAE,SAAS,IAAI,EAAE,CAAC,CAAC;QACpE,IAAI,QAAQ,GAAG,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,uBAAuB,CAAC;QACrE,OAAO,MAAM,CAAC,WAAW,CAAC,aAAa,EAAE,QAAQ,CAAC,CAAC,CAAC;IACtD,CAAC;IAED;;;;;;;;;;;;;;;;;;OAkBG;IACI,KAAK,CAAC,wBAAwB,CACnC,OAAe,EACf,UAA2B,EAC3B,SAAqB;QAErB,IAAI,MAAM,GAAG,IAAI,CAAC,uBAAuB,CAAC,UAAU,CAAC,CAAC;QACtD,OAAO,IAAI,CAAC,+BAA+B,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC;IAC1E,CAAC;IAED;;;;;;OAMG;IACK,KAAK,CAAC,+BAA+B,CAC3C,OAAe,EACf,MAAc,EACd,SAAqB;QAErB,IAAI,cAAc,GAAG,IAAI,CAAC,eAAe,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,cAAc,CAAC;QACrE,IAAI,UAAU,GAAG,cAAc,CAAC,OAAO,CAAC,cAAc,EAAE,IAAI,CAAC,QAAS,CAAC,CAAC;QACxE,IAAI,0BAA0B,GAAG,MAAM,UAAU,CAAC,SAAS,CAAC,OAAO,EAAE,SAAS,IAAI,EAAE,CAAC,CAAC;QACtF,OAAO,YAAY,CAAC,0BAA0B,CAAC,CAAC;IAClD,CAAC;IAED;;;;;;;;;;;;;;;;;OAiBG;IACI,KAAK,CAAC,kBAAkB,CAAC,UAA2B,EAAE,SAAqB;QAChF,IAAI,MAAM,GAAG,IAAI,CAAC,uBAAuB,CAAC,UAAU,CAAC,CAAC;QACtD,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,aAAc,CAAC,qBAAqB,CAAC,MAAM,EAAE,SAAS,IAAI,EAAE,CAAC,CAAC;QAC5F,MAAM,KAAK,GAAG,YAAY,CAAC,UAAU,CAAC,CAAC;QACvC,OAAO,KAAK,CAAC;IACf,CAAC;IAED;;;;;;;;;;;;;;;;;;;OAmBG;IACI,KAAK,CAAC,qBAAqB,CAChC,OAAe,EACf,UAA2B,EAC3B,SAAqB;QAErB,IAAI,MAAM,GAAG,IAAI,CAAC,uBAAuB,CAAC,UAAU,CAAC,CAAC;QACtD,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,+BAA+B,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC;QAC3F,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,aAAc,CAAC,qBAAqB,CAAC,MAAM,EAAE,SAAS,IAAI,EAAE,CAAC,CAAC;QAC5F,MAAM,KAAK,GAAG,YAAY,CAAC,UAAU,CAAC,CAAC;QACvC,MAAM,KAAK,GAAG,KAAK,GAAG,WAAW,CAAC;QAClC,MAAM,cAAc,GAAG,IAAI,CAAC,eAAe,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,cAAc,CAAC;QACvE,OAAO;YACL,KAAK,EAAE,KAAK;YACZ,iBAAiB,EAAE,WAAW;YAC9B,cAAc,EAAE,cAAc;SAC/B,CAAC;IACJ,CAAC;IAED;;;;;OAKG;IACK,uBAAuB,CAAC,cAA+B;QAC7D,IAAI,IAAI,CAAC,aAAa,IAAI,IAAI,IAAI,IAAI,CAAC,eAAe,CAAC,MAAM,IAAI,CAAC,EAAE;YAClE,MAAM,KAAK,CAAC,6EAA6E,CAAC,CAAC;SAC5F;QACD,IAAI,MAAc,CAAC;QACnB,IAAI,KAAK,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,EAAE;YACjC,MAAM,GAAG,oBAAoB,CAAC,oBAAoB,CAAC,cAAwB,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC;SACpG;aAAM;YACL,MAAM,GAAG,MAAM,CAAC,cAAc,CAAC,CAAC;SACjC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;;;;;;;;;;;;;;;;;;;OAoBG;IACI,KAAK,CAAC,qBAAqB,CAChC,UAAkB,EAClB,MAAc,EACd,SAAqB;QAErB,IAAI,CAAC,IAAI,CAAC,aAAa,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;YAC1C,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;SACnD;QACD,IAAI,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,EAAE;YACnC,qBAAqB;YACrB,OAAO,IAAI,CAAC,uBAAuB,CAAC,UAAU,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC;SACpE;QACD,kBAAkB;QAClB,OAAO,IAAI,CAAC,uBAAuB,CAAC,UAAU,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC;IACrE,CAAC;IAEO,KAAK,CAAC,uBAAuB,CACnC,UAAkB,EAClB,MAAc,EACd,SAAqB;QAErB,IAAI,CAAC,IAAI,CAAC,aAAa,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;YAC1C,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;SACnD;QACD,MAAM,MAAM,GAAG,IAAI,SAAS,CAAC,SAAS,CAAmB,CAAC;QAC1D,MAAM,MAAM,GAAG,oBAAoB,CAAC,mBAAmB,CAAC,MAAM,EAAE,IAAI,CAAC,sBAAsB,CAAC,CAAC;QAC7F,MAAM,QAAQ,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,gCAAgC,CAAC,MAAM,CAAC,CAAC,CAAC;QACrF,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,uBAAuB,CAAC,MAAM,CAAC,CAAC;QAClF,MAAM,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,EAAE,EAAE,cAAc,CAAC,EAAE,EAAE,cAAc,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAC5F,eAAe,CAAC,CAAC,CAAC,CACS,CAAC;QAC9B,MAAM,UAAU,GAA6B;YAC3C,iBAAiB;YACjB;gBACE,MAAM,EAAE,IAAI,CAAC,aAAa,CAAC,MAAM;gBACjC,YAAY,EAAE,KAAK;gBACnB,QAAQ,EAAE,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,kBAAkB,CAAC,gBAAgB,EAAE,CAAC,MAAM,EAAE,UAAU,EAAE,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC;aAC/G;YAED,oBAAoB;YACpB;gBACE,MAAM,EAAE,QAAQ,CAAC,mBAAmB;gBACpC,YAAY,EAAE,KAAK;gBACnB,QAAQ,EAAE,MAAM,CAAC,kBAAkB,CAAC,WAAW,EAAE,CAAC,UAAU,CAAC,CAAC;aAC/D;YACD,eAAe;YACf;gBACE,MAAM,EAAE,IAAI,CAAC,aAAa,CAAC,MAAM;gBACjC,YAAY,EAAE,KAAK;gBACnB,QAAQ,EAAE,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,kBAAkB,CAAC,aAAa,EAAE,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;aAC/F;SACF,CAAC;QAEF,YAAY;QACZ,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,UAAU,CAAC,UAAU,EAAE,SAAS,IAAI,EAAE,CAAC,CAAC;QAC/F,MAAM,WAAW,GAAG,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,oBAAoB,CACnE,gBAAgB,EAChB,cAAc,CAAC,CAAC,CAAC,CAAC,UAAU,CAC7B,CAAC,CAAC,CAAC,CAAC;QACL,MAAM,aAAa,GAAG,WAAW,CAC/B,MAAM,CAAC,oBAAoB,CAAC,WAAW,EAAE,cAAc,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,EACzE,QAAQ,CAAC,uBAAuB,CACjC,CAAC;QACF,MAAM,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,oBAAoB,CAAC,aAAa,EAAE,cAAc,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;QAEnH,MAAM,OAAO,GAAG,UAAU,CAAC,2BAA2B,CACpD,MAAM,EACN,WAAW,EACX,IAAI,CAAC,sBAAsB,EAC3B,cAAc,EACd,IAAI,CAAC,WAAW;SACjB,CAAC;QACF,MAAM,cAAc,GAAG,eAAe,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC;QACrD,MAAM,GAAG,GAAG,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;QAC1C,IAAI,OAAO,EAAE,QAAQ,CAAC;QACtB,IAAI,GAAG,GAAG,CAAC,EAAE;YACX,OAAO,GAAG,cAAc,CAAC;YACzB,QAAQ,GAAG,cAAc,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;SAC3C;aAAM;YACL,OAAO,GAAG,cAAc,GAAG,GAAG,CAAC;YAC/B,QAAQ,GAAG,cAAc,CAAC;SAC3B;QAED,IAAI,iBAAiB,GAAG,CAAC,OAAO,CAAC,IAAI,IAAI,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,uBAAuB,CAAC;QAC9F,MAAM,EAAE,GAAG,eAAe,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;QAC3C,qFAAqF;QACrF,MAAM,WAAW,GAAG,OAAO,CAAC,YAAY,GAAG,aAAa,GAAG,OAAO,CAAC,8BAA8B,CAAC;QAClG,MAAM,WAAW,GAAG,CAAC,CAAC;QACtB,MAAM,CAAC,eAAe,EAAE,cAAc,CAAC,GAAG,MAAM,IAAI,CAAC,kBAAkB,CACrE,MAAM,EACN,WAAW,CAAC,WAAW,CAAC,EACxB,SAAS,CACV,CAAC;QAEF,MAAM,QAAQ,GAAG,kBAAkB,CACjC,CAAC,CAAC,EACF,iBAAiB,EACjB,WAAW,EACX,OAAO,CAAC,UAAU,GAAG,iBAAiB,EACtC,EAAE,EACF,EAAE,EACF,cAAc,CAAC,EAAE,EACjB,OAAO,EACP,QAAQ,EACR,eAAe,EACf,cAAc,CACf,CAAC;QACF,MAAM,OAAO,GAAG,kBAAkB,CAChC,CAAC,CAAC,EACF,iBAAiB,EACjB,WAAW,EACX,OAAO,CAAC,UAAU,GAAG,iBAAiB,EACtC,EAAE,EACF,EAAE,EACF,cAAc,CAAC,EAAE,EACjB,OAAO,EACP,QAAQ,EACR,eAAe,EACf,cAAc,CACf,CAAC;QACF,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;IAC1C,CAAC;IAED;;;;;;;OAOG;IACI,KAAK,CAAC,kBAAkB,CAC7B,MAAc,EACd,gBAAwB,EACxB,SAAqB;QAErB,IAAI,CAAC,IAAI,CAAC,aAAa,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;YAC1C,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;SACnD;QACD,MAAM,WAAW,GAA6B;YAC5C,cAAc;YACd;gBACE,MAAM,EAAE,IAAI,CAAC,aAAa,CAAC,MAAM;gBACjC,YAAY,EAAE,KAAK;gBACnB,QAAQ,EAAE,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,kBAAkB,CAAC,iCAAiC,EAAE;oBAC3F,MAAM;oBACN,gBAAgB;oBAChB,IAAI;iBACL,CAAC;aACH;YACD,eAAe;YACf;gBACE,MAAM,EAAE,IAAI,CAAC,aAAa,CAAC,MAAM;gBACjC,YAAY,EAAE,KAAK;gBACnB,QAAQ,EAAE,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,kBAAkB,CAAC,iCAAiC,EAAE;oBAC3F,MAAM;oBACN,gBAAgB;oBAChB,KAAK;iBACN,CAAC;aACH;SACF,CAAC;QAEF,YAAY;QACZ,MAAM,eAAe,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,UAAU,CAAC,WAAW,EAAE,SAAS,IAAI,EAAE,CAAC,CAAC;QAEjG,qBAAqB;QACrB,UAAU;QACV,MAAM,gBAAgB,GAAG,eAAe,CACtC,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,oBAAoB,CAC/C,iCAAiC,EACjC,eAAe,CAAC,CAAC,CAAC,CAAC,UAAU,CAC9B,CAAC,CAAC,CAAW,CACf,CAAC;QACF,MAAM,cAAc,GAAG,gBAAgB,GAAG,eAAe,CAAC,gBAAgB,CAAC,CAAC;QAC5E,YAAY;QACZ,MAAM,iBAAiB,GAAG,eAAe,CACvC,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,oBAAoB,CAC/C,iCAAiC,EACjC,eAAe,CAAC,CAAC,CAAC,CAAC,UAAU,CAC9B,CAAC,CAAC,CAAW,CACf,CAAC;QACF,MAAM,eAAe,GAAG,iBAAiB,GAAG,eAAe,CAAC,gBAAgB,CAAC,CAAC;QAC9E,OAAO,CAAC,eAAe,EAAE,cAAc,CAAC,CAAC;IAC3C,CAAC;IAEO,KAAK,CAAC,uBAAuB,CACnC,UAAkB,EAClB,MAAc,EACd,SAAqB;QAErB,MAAM,MAAM,GAAG,oBAAoB,CAAC,mBAAmB,CAAC,MAAM,EAAE,IAAI,CAAC,sBAAsB,CAAC,CAAC;QAC7F,MAAM,MAAM,GAAG,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC;QAChD,MAAM,QAAQ,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,gCAAgC,CAAC,MAAM,CAAC,CAAC,CAAC;QACrF,MAAM,QAAQ,GAAG,IAAI,CAAC,sBAAsB,CAAC,MAAM,CAAC,CAAC;QACrD,MAAM,MAAM,GAAG,IAAI,SAAS,CAAC,SAAS,CAAmB,CAAC;QAC1D,MAAM,SAAS,GAAG,KAAK,CAAC;QACxB,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,uBAAuB,CAAC,MAAM,CAAC,CAAC;QAClF,IAAI,kBAAkB,GAAG,IAAI,CAAC,qCAAqC,CAAC,MAAM,CAAC,CAAC;QAC5E,MAAM,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,EAAE,EAAE,cAAc,CAAC,EAAE,EAAE,cAAc,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAC5F,eAAe,CAAC,CAAC,CAAC,CACS,CAAC;QAC9B,IAAI,CAAC,IAAI,CAAC,aAAa,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;YAC1C,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;SACnD;QACD,MAAM,UAAU,GAA6B;YAC3C,iBAAiB;YACjB;gBACE,MAAM,EAAE,IAAI,CAAC,aAAa,CAAC,MAAM;gBACjC,YAAY,EAAE,KAAK;gBACnB,QAAQ,EAAE,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,kBAAkB,CAAC,gBAAgB,EAAE,CAAC,MAAM,EAAE,UAAU,EAAE,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC;aAC/G;YAED,oBAAoB;YACpB;gBACE,MAAM,EAAE,QAAQ,CAAC,mBAAmB;gBACpC,YAAY,EAAE,KAAK;gBACnB,QAAQ,EAAE,MAAM,CAAC,kBAAkB,CAAC,WAAW,EAAE,CAAC,UAAU,CAAC,CAAC;aAC/D;YACD,kBAAkB;YAClB;gBACE,MAAM,EAAE,IAAI,CAAC,aAAa,CAAC,MAAM;gBACjC,YAAY,EAAE,KAAK;gBACnB,QAAQ,EAAE,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,kBAAkB,CAAC,kBAAkB,EAAE;oBAC5E,MAAM;oBACN,UAAU;oBACV,YAAY;iBACb,CAAC;aACH;SACF,CAAC;QAEF,YAAY;QACZ,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,UAAU,CAAC,UAAU,EAAE,SAAS,IAAI,EAAE,CAAC,CAAC;QAE/F,gBAAgB;QAChB,MAAM,WAAW,GAAG,CAAC,CAAC;QACtB,MAAM,WAAW,GAAG,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,oBAAoB,CACnE,gBAAgB,EAChB,cAAc,CAAC,CAAC,CAAC,CAAC,UAAU,CAC7B,CAAC,CAAC,CAAC,CAAC;QACL,MAAM,OAAO,GAAG,UAAU,CAAC,2BAA2B,CACpD,MAAM,EACN,WAAW,EACX,IAAI,CAAC,sBAAsB,EAC3B,cAAc,EACd,SAAS,CACV,CAAC;QAEF,WAAW;QACX,MAAM,WAAW,GAAG,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,oBAAoB,CACnE,kBAAkB,EAClB,cAAc,CAAC,CAAC,CAAC,CAAC,UAAU,CAC7B,CAAC,CAAC,CAAW,CAAC;QAEf,MAAM,OAAO,GAAG,IAAI,GAAG,MAAM,CAAC,WAAW,CAAC,CAAC;QAE3C,oCAAoC;QACpC,MAAM,aAAa,GAAG,WAAW,CAC/B,MAAM,CAAC,oBAAoB,CAAC,WAAW,EAAE,cAAc,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,EACzE,QAAQ,CAAC,uBAAuB,CACjC,CAAC;QAEF,MAAM,CAAC,eAAe,EAAE,cAAc,CAAC,GAAG,MAAM,IAAI,CAAC,kBAAkB,CACrE,MAAM,EACN,WAAW,CAAC,WAAW,CAAC,EACxB,SAAS,CACV,CAAC;QACF,MAAM,MAAM,GAAG,CAAC,OAAO,CAAC,IAAI,IAAI,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,uBAAuB,CAAC;QAErF,MAAM,EAAE,GAAW,MAAM,kBAAkB,CAAC;QAC5C,MAAM,uBAAuB,GAAG,aAAa,GAAG,EAAE,CAAC;QACnD,MAAM,iBAAiB,GAAG,wBAAwB,CAChD,OAAO,CAAC,YAAY,GAAG,uBAAuB,GAAG,OAAO,CAAC,8BAA8B,EACvF,MAAM,EACN,OAAO,CAAC,UAAU,GAAG,MAAM,EAC3B,CAAC,EACD,OAAO,CAAC,SAAS,EACjB,QAAQ,CAAC,iBAAiB,EAC1B,OAAO,EACP,OAAO,CAAC,SAAS,EACjB,cAAc,CAAC,EAAE,EACjB,OAAO,CAAC,qBAAqB,CAC9B,CAAC;QACF,MAAM,kBAAkB,GAAG,wBAAwB,CACjD,OAAO,CAAC,YAAY,GAAG,uBAAuB,GAAG,OAAO,CAAC,8BAA8B,EACvF,MAAM,EACN,OAAO,CAAC,UAAU,GAAG,MAAM,EAC3B,CAAC,CAAC,EACF,OAAO,CAAC,SAAS,EACjB,QAAQ,CAAC,iBAAiB,EAC1B,OAAO,EACP,OAAO,CAAC,SAAS,EACjB,cAAc,CAAC,EAAE,EACjB,OAAO,CAAC,qBAAqB,CAC9B,CAAC;QAEF,mCAAmC;QACnC,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC,CAAC;QAChF,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,eAAe,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC,CAAC;QAEnF,iBAAiB;QACjB,MAAM,YAAY,GAChB,OAAO,CAAC,IAAI,IAAI,QAAQ;YACtB,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,uBAAuB,CAAC;YACxD,CAAC,CAAC,OAAO,GAAG,OAAO,CAAC,uBAAuB,CAAC;QAChD,kBAAkB;QAClB,MAAM,aAAa,GACjB,OAAO,CAAC,IAAI,IAAI,SAAS;YACvB,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,QAAQ,GAAG,OAAO,CAAC,uBAAuB,CAAC;YACzD,CAAC,CAAC,QAAQ,GAAG,OAAO,CAAC,uBAAuB,CAAC;QAEjD,OAAO,EAAE,GAAG,EAAE,YAAY,EAAE,IAAI,EAAE,aAAa,EAAE,CAAC;IACpD,CAAC;IAED;;;;;;;;;;;;;;;;;;OAkBG;IACI,KAAK,CAAC,iBAAiB,CAAC,IAAY,EAAE,MAAc,EAAE,SAAqB;QAChF,IAAI,MAAM,GAAG,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC;QAC9C,IAAI,KAAK,GAAG,IAAI,IAAI,QAAQ,CAAC;QAC7B,IAAI,YAAY,GAAG,MAAM,IAAI,CAAC,aAAc,CAAC,+BAA+B,CAAC,MAAM,EAAE,EAAE,EAAE,KAAK,EAAE,SAAS,IAAI,EAAE,CAAC,CAAC;QACjH,OAAO,eAAe,CAAC,YAAY,CAAC,CAAC;IACvC,CAAC;IAED;;;;;;;;;;;;;;;;;;;OAmBG;IACI,KAAK,CAAC,cAAc,CAAC,IAAY,EAAE,KAAa,EAAE,SAAqB;QAC5E,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE;YACvB,MAAM,KAAK,CAAC,2DAA2D,CAAC,CAAC;SAC1E;QACD,IAAI,EAAE,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,SAAS,IAAI,EAAE,CAAC,CAAC;QACrG,OAAO,EAAE,IAAI,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC;IAC3D,CAAC;IAED;;;;;;;;;;;;;;;;;;;;OAoBG;IACI,KAAK,CAAC,cAAc,CAAC,MAAc,EAAE,OAAe,EAAE,SAAqB;QAChF,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE;YACvB,MAAM,KAAK,CAAC,2DAA2D,CAAC,CAAC;SAC1E;QACD,MAAM,iBAAiB,GAAG,IAAI,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC;QAC5D,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,iBAAiB,CAAC,cAAc,CAAC,OAAO,EAAE,SAAS,IAAI,EAAE,CAAC,CAAgB,CAAC;QACvG,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;;;;;;;;;;;;;;;;;;OAmBG;IACI,KAAK,CAAC,eAAe,CAAC,MAAc,EAAE,OAAiB,EAAE,SAAqB;QACnF,IAAI,CAAC,IAAI,CAAC,aAAa,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;YAC1C,MAAM,KAAK,CAAC,2DAA2D,CAAC,CAAC;SAC1E;QACD,MAAM,iBAAiB,GAAG,IAAI,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC;QAE5D,MAAM,WAAW,GAA6B,OAAO,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;YACjE,MAAM,EAAE,iBAAiB,CAAC,MAAM;YAChC,YAAY,EAAE,KAAK;YACnB,QAAQ,EAAE,iBAAiB,CAAC,SAAS,CAAC,kBAAkB,CAAC,gBAAgB,EAAE,CAAC,EAAE,CAAC,CAAC;SACjF,CAAC,CAAC,CAAC;QACJ,YAAY;QACZ,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,UAAU,CAAC,WAAW,EAAE,SAAS,IAAI,EAAE,CAAC,CAAC;QAChG,eAAe;QACf,OAAO,cAAc,CAAC,GAAG,CACvB,CAAC,aAAa,EAAE,EAAE,CAChB,iBAAiB,CAAC,SAAS,CAAC,oBAAoB,CAAC,gBAAgB,EAAE,aAAa,CAAC,UAAU,CAAC,CAAC,CAAC,CAAgB,CACjH,CAAC;IACJ,CAAC;IAED;;;;;;;;;;;;;;;;;;;OAmBG;IACI,KAAK,CAAC,YAAY,CAAC,MAAc,EAAE,WAA0B;QAClE,IAAI,IAAI,CAAC,aAAa,IAAI,IAAI,EAAE;YAC9B,MAAM,KAAK,CAAC,2DAA2D,CAAC,CAAC;SAC1E;QACD,IAAI,WAAW,IAAI,SAAS,EAAE;YAC5B,WAAW,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,uBAAuB,CAAC,MAAM,CAAC,CAAC;SAC1E;QACD,OAAO,MAAM,oBAAoB,CAAC,wBAAwB,CACxD,MAAM,EACN,IAAI,CAAC,sBAAsB,EAC3B,IAAI,CAAC,aAAa,EAClB,WAAW,EACX,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAChC,CAAC;IACJ,CAAC;IAED;;;;;;;;;;;;;;;;;;;;OAoBG;IACI,KAAK,CAAC,iBAAiB,CAC5B,MAAc,EACd,QAAgB,EAChB,SAAwB,EACxB,SAAqB;QAErB,IAAI,IAAI,CAAC,aAAa,IAAI,IAAI,EAAE;YAC9B,MAAM,KAAK,CAAC,2DAA2D,CAAC,CAAC;SAC1E;QACD,IAAI,SAAS,IAAI,SAAS,EAAE;YAC1B,iBAAiB;YACjB,SAAS,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,uBAAuB,CAAC,MAAM,CAAC,CAAC;SACxE;QACD,OAAO,MAAM,oBAAoB,CAAC,oBAAoB,CACpD,MAAM,EACN,QAAQ,EACR,IAAI,CAAC,sBAAsB,EAC3B,IAAI,CAAC,aAAa,EAClB,CAAC,SAAS,CAAC,EAAE,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,OAAO;QACrC,SAAS,CAAC,IAAI,EAAE,MAAM;QACtB,SAAS,CAAC,iBAAiB,EAAE,QAAQ;QACrC,SAAS,CACV,CAAC;IACJ,CAAC;IAED;;;;OAIG;IACI,KAAK,CAAC,iBAAiB,CAC5B,MAAc,EACd,cAA6B,EAC7B,SAAqB;QAErB,IAAI,IAAI,CAAC,aAAa,IAAI,IAAI,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,EAAE;YACxD,MAAM,KAAK,CAAC,2DAA2D,CAAC,CAAC;SAC1E;QACD,IAAI,cAAc,IAAI,SAAS,EAAE;YAC/B,cAAc,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,uBAAuB,CAAC,MAAM,CAAC,CAAC;SAC7E;QACD,IAAI,KAAK,GAAmB,MAAM,oBAAoB,CAAC,oBAAoB,CACzE,MAAM,EACN,IAAI,CAAC,sBAAsB,EAC3B,IAAI,CAAC,aAAa,EAClB,IAAI,CAAC,SAAS,EACd,cAAc,EACd,SAAS,CACV,CAAC;QACF,OAAO,KAAK,CAAC;IACf,CAAC;IAED;;;;OAIG;IACI,KAAK,CAAC,YAAY,CAAC,UAAkB,EAAE,SAAqB;QACjE,IAAI,IAAI,CAAC,aAAa,IAAI,IAAI,EAAE;YAC9B,MAAM,IAAI,KAAK,CAAC,2DAA2D,CAAC,CAAC;SAC9E;QACD,MAAM,MAAM,GAAG,IAAI,CAAC,uBAAuB,CAAC,UAAU,CAAC,CAAC;QACxD,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,gBAAgB,CAAC,MAAM,EAAE,SAAS,IAAI,EAAE,CAAC,CAAC;QAChF,IAAI,KAAK,GAAc;YACrB,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,UAAU,EAAE,UAAU;YACtB,eAAe,EAAE,IAAI,CAAC,kBAAkB;YACxC,kBAAkB,EAAE,IAAI,CAAC,iBAAiB;YAC1C,iBAAiB,EAAE,eAAe,CAAC,IAAI,CAAC,kBAAkB,CAAC;YAC3D,oBAAoB,EAAE,eAAe,CAAC,IAAI,CAAC,sBAAsB,CAAC;YAClE,wBAAwB,EAAE,eAAe,CAAC,IAAI,CAAC,kBAAkB,CAAC;YAClE,uBAAuB,EAAE,eAAe,CAAC,IAAI,CAAC,wBAAwB,CAAC;YACvE,UAAU,EAAE,EAAE;YACd,YAAY,EAAE,IAAI,CAAC,eAAe,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,gBAAgB;YAC/D,eAAe,EAAE,IAAI,CAAC,eAAe,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,mBAAmB;SACtE,CAAC;QACF,OAAO,KAAK,CAAC;IACf,CAAC;IAED;;;;;;OAMG;IACI,sBAAsB,CAAC,MAAc;QAC1C,IAAI,QAAQ,GAAG,IAAI,CAAC,sBAAsB,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QACvD,IAAI,QAAQ,IAAI,SAAS,EAAE;YACzB,MAAM,IAAI,KAAK,CAAC,yBAAyB,MAAM,wDAAwD,CAAC,CAAC;SAC1G;QACD,mCAAmC;QACnC,IAAI,GAAG,GAAwB;YAC7B,EAAE,EAAE,QAAQ,CAAC,EAAE;YACf,MAAM,EAAE,QAAQ,CAAC,MAAM;YACvB,kBAAkB,EAAE,QAAQ,CAAC,kBAAkB;YAC/C,iBAAiB,EAAE,QAAQ,CAAC,iBAAiB;YAC7C,qBAAqB,EAAE,QAAQ,CAAC,qBAAqB;YACrD,sBAAsB,EAAE,QAAQ,CAAC,sBAAsB;YACvD,QAAQ,EAAE,QAAQ,CAAC,QAAQ;YAC3B,QAAQ,EAAE,QAAQ,CAAC,QAAQ;YAC3B,SAAS,EAAE,QAAQ,CAAC,SAAS;YAC7B,cAAc,EAAE,QAAQ,CAAC,cAAc;YACvC,QAAQ,EAAE,QAAQ,CAAC,QAAQ;YAC3B,MAAM,EAAE,QAAQ,CAAC,MAAM;YACvB,SAAS,EAAE,QAAQ,CAAC,SAAS;SAC9B,CAAC;QACF,OAAO,GAAG,CAAC;IACb,CAAC;IAED;;;;;;;;;;;;;;;;;;OAkBG;IACI,KAAK,CAAC,oBAAoB,CAAC,MAAc;QAC9C,IAAI,IAAI,CAAC,aAAa,IAAI,IAAI,EAAE;YAC9B,MAAM,KAAK,CAAC,2DAA2D,CAAC,CAAC;SAC1E;QACD,OAAO,MAAM,IAAI,CAAC,iBAAiB,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;IACjD,CAAC;IAED;;;;;;OAMG;IACO,MAAM,CAAC,KAAK,CAAC,qBAAqB,CAC1C,UAAkB,EAClB,iBAAiC,EACjC,sBAAwD,EACxD,SAAqB;QAErB,wDAAwD;QACxD,IAAI,kBAAkB,GAAY,IAAI,KAAK,EAAS,CAAC;QACrD,IAAI,cAAc,GAAG,IAAI,CAAC;QAC1B,IAAI,IAAI,GAAG,CAAC,CAAC;QACb,MAAM,QAAQ,GAAG,EAAE,CAAC;QACpB,OAAO,cAAc,EAAE;YACrB,IAAI,MAAM,GAA2C,MAAM,iBAAiB,CAAC,SAAS,CACpF,UAAU,EACV,IAAI,EACJ,QAAQ,EACR,SAAS,IAAI,EAAE,CAChB,CAAC;YACF,IAAI,CAAC,GAAG,CAAC,CAAC;YACV,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,UAAU,KAAK,YAAY,EAAE;gBACjE,kBAAkB,CAAC,IAAI,CAAC,oBAAoB,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,sBAAsB,CAAC,CAAC,CAAC;gBACjG,CAAC,EAAE,CAAC;aACL;YACD,cAAc,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,UAAU,KAAK,YAAY,CAAC;YACvE,IAAI,GAAG,IAAI,GAAG,QAAQ,CAAC;SACxB;QACD,OAAO,kBAAkB,CAAC;IAC5B,CAAC;IAED;;;;;;OAMG;IACO,MAAM,CAAC,KAAK,CAAC,uBAAuB,CAC5C,UAAkB,EAClB,kBAAoC,EACpC,SAAqB,EACrB,sBAAwD,EACxD,SAAqB;QAErB,yDAAyD;QACzD,MAAM,MAAM,GAAG,kBAAkB,CAAC,MAAM,CAAC;QAEzC,IAAI,kBAAkB,GAAG,IAAI,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,IAAI,KAAK,EAAS,CAAC,CAAC;QACjF,IAAI,YAAY,GAAG,IAAI,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,IAAI,KAAK,EAAU,CAAC,CAAC;QAE5E,IAAI,cAAc,GAAG,IAAI,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAClD,IAAI,IAAI,GAAG,IAAI,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACrC,MAAM,QAAQ,GAAG,EAAE,CAAC;QAEpB,OAAO,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE;YACpC,wCAAwC;YACxC,MAAM,SAAS,GAAG,kBAAkB,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC;YAC1E,gBAAgB;YAChB,MAAM,WAAW,GAA6B,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;gBACrE,MAAM,EAAE,CAAC,CAAC,MAAM;gBAChB,YAAY,EAAE,IAAI;gBAClB,QAAQ,EAAE,CAAC,CAAC,SAAS,CAAC,kBAAkB,CAAC,WAAW,EAAE,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC;aACvF,CAAC,CAAC,CAAC;YACJ,MAAM,YAAY,GAA6B,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;gBACtE,MAAM,EAAE,CAAC,CAAC,MAAM;gBAChB,YAAY,EAAE,IAAI;gBAClB,QAAQ,EAAE,CAAC,CAAC,SAAS,CAAC,kBAAkB,CAAC,sBAAsB,EAAE,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC;aAClG,CAAC,CAAC,CAAC;YACJ,OAAO;YACP,MAAM,cAAc,GAAG,MAAM,SAAS,CAAC,UAAU,CAAC,UAAU,CAAC,WAAW,CAAC,MAAM,CAAC,YAAY,CAAC,EAAE,SAAS,IAAI,EAAE,CAAC,CAAC;YAChH,MAAM,aAAa,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;YAClE,MAAM,cAAc,GAAG,cAAc,CAAC,KAAK,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;YAChE,QAAQ;YACR,MAAM,SAAS,GAA6C,aAAa;iBACtE,KAAK,CAAC,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC;iBAC5B,GAAG,CAAC,CAAC,EAAE,OAAO,EAAE,UAAU,EAAE,EAAE,CAAC,EAAE,EAAE;gBAClC,IAAI,CAAC,OAAO;oBAAE,MAAM,IAAI,KAAK,CAAC,uCAAuC,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;gBAC5F,OAAO,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,oBAAoB,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;YACjF,CAAC,CAAC,CAAC;YACL,MAAM,UAAU,GAAe,cAAc,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,EAAE,UAAU,EAAE,EAAE,CAAC,EAAE,EAAE;gBAC/E,IAAI,CAAC,OAAO;oBAAE,MAAM,IAAI,KAAK,CAAC,uCAAuC,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;gBAC5F,OAAO,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,oBAAoB,CAAC,sBAAsB,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;YAC5F,CAAC,CAAC,CAAC;YACH,UAAU;YACV,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBACzC,IAAI,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,IAAI,YAAY,CAAC,CAAC;gBACtE,IAAI,OAAO,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,aAAa,CAAC,CAAC;gBAE9D,IAAI,CAAC,GAAG,kBAAkB,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,IAAI,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;gBAC7E,IAAI,CAAC,GAAG,CAAC,CAAC;gBACV,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,UAAU,IAAI,YAAY,EAAE;oBAChE,kBAAkB,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,oBAAoB,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,sBAAsB,CAAC,CAAC,CAAC;oBACpG,YAAY,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;oBACjC,CAAC,EAAE,CAAC;iBACL;gBACD,cAAc,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,GAAG,CAAC,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,UAAU,IAAI,YAAY,CAAC;gBAC9F,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC;aAC9B;SACF;QACD,OAAO,EAAE,MAAM,EAAE,kBAAkB,EAAE,OAAO,EAAE,YAAY,EAAE,CAAC;IAC/D,CAAC;IAED;;;;;;OAMG;IACI,MAAM,CAAC,KAAK,CAAC,gBAAgB,CAClC,UAAkB,EAClB,iBAAiC,EACjC,SAAqB;QAErB,IAAI,UAAU,GAAa,MAAM,iBAAiB,CAAC,oBAAoB,CAAC,UAAU,EAAE,CAAC,EAAE,EAAE,EAAE,SAAS,IAAI,EAAE,CAAC,CAAC;QAC5G,IAAI,CAAC,GAAW,CAAC,CAAC;QAClB,IAAI,OAAO,GAAa,EAAE,CAAC;QAC3B,OAAO,CAAC,GAAG,UAAU,CAAC,MAAM,IAAI,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,EAAE;YAC1D,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;YAC5B,CAAC,EAAE,CAAC;SACL;QACD,OAAO,OAAO,CAAC;IACjB,CAAC;IAED;;;;;;;;;;;;;;;;;;;;OAoBG;IACI,KAAK,CAAC,kBAAkB,CAC7B,UAAkB,EAClB,MAAc,EACd,WAA0B,EAC1B,SAAqB;QAErB,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE;YACvB,MAAM,KAAK,CAAC,2DAA2D,CAAC,CAAC;SAC1E;QAED,IAAI,WAAW,IAAI,SAAS,EAAE;YAC5B,iBAAiB;YACjB,WAAW,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,uBAAuB,CAAC,MAAM,CAAC,CAAC;SAC1E;QACD,IAAI,MAAM,GAAG,oBAAoB,CAAC,mBAAmB,CAAC,MAAM,EAAE,IAAI,CAAC,sBAAsB,CAAC,CAAC;QAC3F,IAAI,WAAW,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,cAAc,CACvD,MAAM,EACN,UAAU,EACV,CAAC,WAAW,CAAC,EAAE,EAAE,WAAW,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,eAAe,CAAC,CAAC,IAAI,SAAS,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAGrG,EACD,SAAS,IAAI,EAAE,CAChB,CAAC;QACF,MAAM,mBAAmB,GAAG,CAAC,CAAC;QAC9B,IAAI,GAAG,GAAG,eAAe,CAAC,WAAW,CAAC,mBAAmB,CAAC,CAAC,CAAC;QAC5D,OAAO,GAAG,CAAC;IACb,CAAC;IAED;;;;;;;;;;;;;;;;;OAiBG;IACI,KAAK,CAAC,sBAAsB,CAAC,UAAkB,EAAE,SAAqB;QAC3E,IAAI,IAAI,CAAC,aAAa,IAAI,IAAI,EAAE;YAC9B,MAAM,KAAK,CAAC,qEAAqE,CAAC,CAAC;SACpF;QACD,wCAAwC;QACxC,IAAI,UAAU,GAA2B,EAAE,CAAC;QAC5C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACpD,IAAI,OAAO,GAAG,IAAI,CAAC,aAAa,CAAC,sBAAsB,CACrD,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,MAAM,EAC9B,UAAU,EACV,SAAS,IAAI,EAAE,CAChB,CAAC;YACF,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;SAC1B;QACD,MAAM;QACN,IAAI,iBAAiB,GAAG,CAAC,CAAC;QAC1B,IAAI,iBAAiB,GAAG,CAAC,CAAC;QAC1B,IAAI,OAAO,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QAC5C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACpD,iBAAiB,IAAI,eAAe,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;SAClD;QACD,MAAM,SAAS,GAAG,MAAO,CAAC;QAC1B,IAAI,KAAK,GAAG,iBAAiB,IAAI,CAAC,CAAC,CAAC,CAAC,iBAAiB,GAAG,SAAS,CAAC,CAAC,CAAC,iBAAiB,CAAC;QACvF,8DAA8D;QAC9D,IAAI,KAAK,GAAG,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;QAC3D,2DAA2D;QAC3D,OAAO,CAAC,GAAG,KAAK,CAAC;IACnB,CAAC;IAED;;;;;;OAMG;IACK,MAAM,CAAC,KAAK,CAAC,kBAAkB,CACrC,uBAAyD,EACzD,gBAA4B;QAE5B,8CAA8C;QAC9C,IAAI,MAAM,GAAG,IAAI,GAAG,EAAU,CAAC;QAC/B,KAAK,IAAI,UAAU,IAAI,uBAAuB,CAAC,IAAI,EAAE,EAAE;YACrD,IAAI,KAAK,GAAoC,uBAAuB,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;YACrF,MAAM,CAAC,GAAG,CAAC,KAAM,CAAC,QAAQ,CAAC,CAAC;YAC5B,IAAI,KAAM,CAAC,QAAQ,IAAI,EAAE,EAAE;gBACzB,MAAM,CAAC,GAAG,CAAC,KAAM,CAAC,QAAQ,CAAC,CAAC;aAC7B;SACF;QACD,IAAI,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;QAC5C,IAAI,WAAW,GAAmC,MAAM,gBAAgB,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;QAChG,OAAO,WAAW,CAAC;IACrB,CAAC;IAED;;;;;;;;;;;;;;;;;OAiBG;IACI,KAAK,CAAC,cAAc,CAAC,MAAc;QACxC,IAAI,IAAI,CAAC,aAAa,IAAI,IAAI,EAAE;YAC9B,MAAM,KAAK,CAAC,2DAA2D,CAAC,CAAC;SAC1E;QACD,OAAO,MAAM,UAAU,CAAC,eAAe,CAAC,MAAM,EAAE,IAAI,CAAC,sBAAsB,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC;IACrG,CAAC;IAED;;;;;;OAMG;IACK,MAAM,CAAC,KAAK,CAAC,eAAe,CAClC,MAAc,EACd,uBAAyD,EACzD,gBAA4B;QAE5B,MAAM,KAAK,GAAoC,uBAAuB,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QACnF,IAAI,YAAY,GAAa,EAAE,CAAC;QAChC,IAAI,KAAK,EAAE,QAAQ,IAAI,SAAS,IAAI,KAAK,CAAC,QAAQ,IAAI,EAAE,EAAE;YACxD,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;SACnC;QACD,IAAI,KAAK,EAAE,QAAQ,IAAI,SAAS,IAAI,KAAK,CAAC,QAAQ,IAAI,EAAE,EAAE;YACxD,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;SACnC;QACD,IAAI,YAAY,CAAC,MAAM,IAAI,CAAC,EAAE;YAC5B,MAAM,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAC;SACrC;QACD,MAAM,UAAU,GAAG,MAAM,gBAAgB,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;QACpE,OAAO,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACpD,CAAC;IAED;;;;;;;;;OASG;IACK,MAAM,CAAC,KAAK,CAAC,eAAe,CAClC,cAAwB,EACxB,UAAsB,EACtB,mBAAyC,EACzC,uBAAyD,EACzD,oBAAyC,EACzC,YAA4C,EAC5C,SAAqB;QAErB,iDAAiD;QACjD,MAAM,SAAS,GAAG,EAAE,CAAC;QACrB,IAAI,iBAAiB,GAAyB,oBAAoB,CAAC,iBAAiB,CAClF,SAAS,EACT,mBAAmB,CACpB,CAAC;QACF,gBAAgB;QAChB,MAAM,UAAU,GAA6B,EAAE,CAAC;QAChD,IAAI,WAAW,GAAG,IAAI,GAAG,EAAkB,CAAC;QAC5C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,iBAAiB,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACjD,IAAI,WAAW,GAAa,EAAE,CAAC;YAC/B,iCAAiC;YACjC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,iBAAiB,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBACpD,IAAI,EAAE,GAAG,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBACjC,IAAI,QAAQ,GAAG,oBAAoB,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;gBAC5C,IAAI,IAAI,GAAG,uBAAuB,CAAC,GAAG,CAAC,QAAS,CAAC,CAAC;gBAClD,IAAI,EAAE,GAAG,eAAe,CAAC,YAAY,CAAC,GAAG,CAAC,IAAK,CAAC,QAAQ,CAAE,CAAC,CAAC,CAAC,CAAC,CAAC;gBAC/D,IAAI,EAAE,GAAG,EAAE,CAAC;gBACZ,IAAI,IAAK,CAAC,QAAQ,IAAI,EAAE,EAAE;oBACxB,EAAE,GAAG,eAAe,CAAC,YAAY,CAAC,GAAG,CAAC,IAAK,CAAC,QAAQ,CAAE,CAAC,CAAC,CAAC,CAAC,CAAC;iBAC5D;gBACD,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gBACrB,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;aACtB;YACD,UAAU,CAAC,IAAI,CAAC;gBACd,MAAM,EAAE,cAAc,CAAC,MAAM;gBAC7B,YAAY,EAAE,KAAK;gBACnB,QAAQ,EAAE,cAAc,CAAC,SAAS,CAAC,kBAAkB,CAAC,gBAAgB,EAAE,CAAC,iBAAiB,CAAC,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC;aAC7G,CAAC,CAAC;SACJ;QACD,YAAY;QACZ,MAAM,cAAc,GAAG,MAAM,UAAU,CAAC,UAAU,CAAC,UAAU,CAAC,UAAU,EAAE,SAAS,IAAI,EAAE,CAAC,CAAC;QAC3F,gBAAgB;QAChB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,iBAAiB,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACjD,IAAI,SAAS,GAAG,cAAc,CAAC,SAAS,CAAC,oBAAoB,CAC3D,gBAAgB,EAChB,cAAc,CAAC,CAAC,CAAC,CAAC,UAAU,CAC7B,CAAC,CAAC,CAAa,CAAC;YACjB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBACzC,IAAI,EAAE,GAAG,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBACjC,IAAI,QAAQ,GAAG,oBAAoB,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;gBAC5C,WAAW,CAAC,GAAG,CAAC,QAAS,EAAE,eAAe,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;aAC3D;SACF;QACD,OAAO,WAAW,CAAC;IACrB,CAAC;IAED;;;;;;;;OAQG;IACK,MAAM,CAAC,KAAK,CAAC,4BAA4B,CAC/C,cAAwB,EACxB,UAAsB,EACtB,gBAAkC,EAClC,WAAgC,EAChC,mBAAyC,EACzC,SAAqB;QAErB,MAAM,SAAS,GAAG,CAAC,CAAC;QACpB,MAAM,QAAQ,GAAG,mBAAmB,CAAC,MAAM,CAAC;QAC5C,IAAI,KAAK,GAAG,CAAC,CAAC;QACd,IAAI,UAAU,GAAqB,EAAE,CAAC;QACtC,IAAI,UAAU,GAA0B,EAAE,CAAC;QAC3C,IAAI,SAAS,GAA4B,EAAE,CAAC;QAC5C,OAAO,KAAK,IAAI,QAAQ,EAAE;YACxB,MAAM,UAAU,GAA6B;gBAC3C,oBAAoB;gBACpB;oBACE,MAAM,EAAE,cAAc,CAAC,MAAM;oBAC7B,YAAY,EAAE,KAAK;oBACnB,QAAQ,EAAE,cAAc,CAAC,SAAS,CAAC,kBAAkB,CAAC,mBAAmB,EAAE,CAAC,KAAK,EAAE,KAAK,GAAG,SAAS,GAAG,CAAC,CAAC,CAAC,EAAE,wBAAwB;iBACrI;gBACD,gBAAgB;gBAChB;oBACE,MAAM,EAAE,cAAc,CAAC,MAAM;oBAC7B,YAAY,EAAE,KAAK;oBACnB,QAAQ,EAAE,cAAc,CAAC,SAAS,CAAC,kBAAkB,CAAC,eAAe,EAAE;wBACrE,mBAAmB,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,SAAS,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,gCAAgC;qBACrG,CAAC;iBACH;gBACD;oBACE,MAAM,EAAE,cAAc,CAAC,MAAM;oBAC7B,YAAY,EAAE,KAAK;oBACnB,QAAQ,EAAE,cAAc,CAAC,SAAS,CAAC,kBAAkB,CAAC,mBAAmB,EAAE;wBACzE,mBAAmB,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,SAAS,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE;wBAClE,YAAY;qBACb,CAAC;iBACH;aACF,CAAC;YAEF,YAAY;YACZ,MAAM,cAAc,GAAG,MAAM,UAAU,CAAC,UAAU,CAAC,UAAU,CAAC,UAAU,EAAE,SAAS,IAAI,EAAE,CAAC,CAAC;YAC3F,MAAM,KAAK,GAAG,cAAc,CAAC,SAAS,CAAC,oBAAoB,CACzD,mBAAmB,EACnB,cAAc,CAAC,CAAC,CAAC,CAAC,UAAU,CAC7B,CAAC,CAAC,CAAyD,CAAC;YAC7D,MAAM,KAAK,GAAG,cAAc,CAAC,SAAS,CAAC,oBAAoB,CACzD,eAAe,EACf,cAAc,CAAC,CAAC,CAAC,CAAC,UAAU,CAC7B,CAAC,CAAC,CAA4C,CAAC;YAChD,MAAM,OAAO,GAAG,cAAc,CAAC,SAAS,CAAC,oBAAoB,CAC3D,mBAAmB,EACnB,cAAc,CAAC,CAAC,CAAC,CAAC,UAAU,CAC7B,CAAC,CAAC,CAA4C,CAAC;YAChD,SAAS,GAAG,SAAS,CAAC,MAAM,CAAC,UAAU,CAAC,sBAAsB,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC;YAChF,UAAU,GAAG,UAAU,CAAC,MAAM,CAAC,UAAU,CAAC,oBAAoB,CAAC,KAAK,EAAE,gBAAgB,CAAC,CAAC,CAAC;YACzF,UAAU,GAAG,UAAU,CAAC,MAAM,CAAC,UAAU,CAAC,8BAA8B,CAAC,KAAK,EAAE,SAAS,EAAE,WAAW,CAAC,CAAC,CAAC;YACzG,KAAK,GAAG,KAAK,GAAG,SAAS,GAAG,CAAC,CAAC;SAC/B;QACD,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,CAAC;IACvD,CAAC;IAES,MAAM,CAAC,sBAAsB,CACrC,EAA2C,EAC3C,CAA0C;QAE1C,IAAI,SAAS,GAAG,IAAI,KAAK,EAAoB,CAAC;QAC9C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YAClC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC;YAC9B,MAAM,MAAM,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC;YACjC,SAAS,CAAC,IAAI,CAAC,oBAAoB,CAAC,uBAAuB,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC;SAC1E;QACD,OAAO,SAAS,CAAC;IACnB,CAAC;IAED;;;;;OAKG;IACO,MAAM,CAAC,oBAAoB,CACnC,eAAqE,EACrE,gBAAkC;QAElC,MAAM,UAAU,GAAG,eAAe,CAAC,GAAG,CACpC,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,CACV,CAAC;YACC,SAAS,EAAE,IAAI,CAAC,SAAU;YAC1B,UAAU,EAAE,gBAAgB,CAAC,CAAC,CAAC,CAAC,gBAAgB;YAChD,eAAe,EAAE,IAAI,CAAC,kBAAmB;YACzC,kBAAkB,EAAE,IAAI,CAAC,iBAAkB;YAC3C,iBAAiB,EAAE,eAAe,CAAC,IAAI,CAAC,kBAAmB,CAAC;YAC5D,oBAAoB,EAAE,eAAe,CAAC,IAAI,CAAC,sBAAuB,CAAC;YACnE,wBAAwB,EAAE,eAAe,CAAC,IAAI,CAAC,kBAAmB,CAAC;YACnE,uBAAuB,EAAE,eAAe,CAAC,IAAI,CAAC,wBAAyB,CAAC;YACxE,UAAU,EAAE,EAAE;YACd,YAAY,EAAE,gBAAgB,CAAC,CAAC,CAAC,CAAC,gBAAgB;YAClD,eAAe,EAAE,gBAAgB,CAAC,CAAC,CAAC,CAAC,mBAAmB;SAC3C,CAAA,CAClB,CAAC;QACF,OAAO,UAAU,CAAC;IACpB,CAAC;IAED;;;;;OAKG;IACO,MAAM,CAAC,8BAA8B,CAC7C,WAAkB,EAClB,YAAgC,EAChC,WAAgC;QAEhC,MAAM,UAAU,GAAG,IAAI,KAAK,EAAkB,CAAC;QAC/C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YAC3C,MAAM,IAAI,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;YAC5B,UAAU,CAAC,IAAI,CAAC;gBACd,gBAAgB;gBAChB,EAAE,EAAE,MAAM,CAAC,IAAI,CAAC,EAAG,CAAC;gBACpB,KAAK,EAAE,cAAc,CAAC,IAAI,CAAC,KAAM,CAAC;gBAClC,YAAY,EAAE,sBAAsB,CAAC,IAAI,CAAC,SAAU,EAAE,WAAW,CAAE;gBACnE,aAAa,EAAE,sBAAsB,CAAC,IAAI,CAAC,UAAW,EAAE,WAAW,CAAE;gBACrE,UAAU,EAAE,CAAC;gBACb,qBAAqB,EAAE,CAAC;gBACxB,WAAW,EAAE,eAAe,CAAC,IAAI,CAAC,sBAAuB,CAAC,MAAM,CAAC;gBACjE,QAAQ,EAAE,CAAC;gBACX,qBAAqB,EAAE,GAAG,GAAG,eAAe,CAAC,IAAI,CAAC,mBAAoB,CAAC;gBACvE,cAAc,EAAE,eAAe,CAAC,IAAI,CAAC,aAAc,CAAC;gBACpD,cAAc,EAAE,KAAK;gBACrB,MAAM,EAAE,eAAe,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBAC3C,OAAO,EAAE,eAAe,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;aAC7C,CAAC,CAAC;SACJ;QACD,OAAO,UAAU,CAAC;IACpB,CAAC;IAED;;;;;;;;;;;;;OAaG;IACI,MAAM,CAAC,KAAK,CAAC,aAAa,CAC/B,cAAwB,EACxB,UAAsB,EACtB,gBAAuC,EACvC,uBAAyD,EACzD,oBAAyC,EACzC,mBAAyC,EACzC,WAAgC,EAChC,gBAA4B,EAC5B,kBAA0B,EAC1B,SAAqB;QAErB,mDAAmD;QACnD,IAAI,IAAI,GAAiB;YACvB,KAAK,EAAE,EAAE;YACT,iBAAiB,EAAE,kBAAkB;YACrC,SAAS,EAAE,cAAc,CAAC,MAAM,CAAC,QAAQ,EAAE;SAC5C,CAAC;QAEF,4DAA4D;QAC5D,IAAI,WAAW,GAAG,MAAM,UAAU,CAAC,kBAAkB,CAAC,uBAAuB,EAAE,gBAAgB,CAAC,CAAC;QACjG,qEAAqE;QACrE,IAAI,WAAW,GAAwB,MAAM,UAAU,CAAC,eAAe,CACrE,cAAc,EACd,UAAU,EACV,mBAAmB,EACnB,uBAAuB,EACvB,oBAAoB,EACpB,WAAW,EACX,SAAS,CACV,CAAC;QACF,MAAM,EAAE,KAAK,EAAE,cAAc,EAAE,UAAU,EAAE,cAAc,EAAE,GAAG,MAAM,UAAU,CAAC,4BAA4B,CACzG,cAAc,EACd,UAAU,EACV,gBAAgB,EAChB,WAAW,EACX,mBAAmB,EACnB,SAAS,CACV,CAAC;QACF,wBAAwB;QACxB,KAAK,MAAM,IAAI,IAAI,cAAc,EAAE;YACjC,IAAI,QAAQ,GAAG,oBAAoB,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACjD,IAAI,IAAI,GAAG,uBAAuB,CAAC,GAAG,CAAC,QAAS,CAAC,CAAC;YAClD,MAAM,cAAc,GAAG,WAAW,CAAC,GAAG,CAAC,IAAK,CAAC,QAAQ,CAAC,CAAC;YACvD,IAAI,cAAc,GAAsB,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;YACnD,IAAI,CAAC,cAAc,GAAG,cAAe,CAAC,CAAC,CAAC,CAAC;YACzC,IAAI,IAAK,CAAC,QAAQ,IAAI,EAAE,EAAE;gBACxB,cAAc,GAAG,WAAW,CAAC,GAAG,CAAC,IAAK,CAAC,QAAQ,CAAE,CAAC;gBAClD,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,IAAI,cAAe,CAAC,CAAC,CAAC,CAAC;aACjE;YACD,IAAI,CAAC,UAAU,GAAG,cAAe,CAAC,CAAC,CAAC,CAAC;YACrC,IAAI,OAAO,GAAG,CAAC,CAAC;YAChB,IAAI,IAAK,CAAC,sBAAsB,IAAI,wBAAwB,EAAE;gBAC5D,OAAO,GAAG,cAAe,CAAC,CAAC,CAAC,CAAC;aAC9B;iBAAM,IAAI,IAAK,CAAC,sBAAsB,IAAI,0BAA0B,EAAE;gBACrE,OAAO,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC;aAC7B;YACD,IAAI,CAAC,qBAAqB,GAAG,OAAO,CAAC;YACrC,IAAI,CAAC,QAAQ,GAAG,WAAW,CAAC,GAAG,CAAC,QAAS,CAAE,CAAC;YAC5C,cAAc;YACd,MAAM,MAAM,GAAG,IAAK,CAAC,MAAM,CAAC;YAC5B,cAAc,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;SAClD;QACD,IAAI,CAAC,KAAK,GAAG,cAAc,CAAC;QAC5B,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;;;;;;;;;;;;;;;;;OAoBG;IACI,KAAK,CAAC,aAAa,CAAC,MAAe;QACxC,IAAI,CAAC,IAAI,CAAC,aAAa,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;YAC1C,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC;SACpD;QACD,IAAI,OAAiB,CAAC;QACtB,IAAI,MAAM,EAAE;YACV,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,yBAAyB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;SAC7F;aAAM;YACL,OAAO,GAAG,IAAI,CAAC,eAAe,CAAC,MAAM,CACnC,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,yBAAyB,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,EAClF,IAAI,KAAK,EAAU,CACpB,CAAC;SACH;QACD,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,SAAS,CAAC,EAAE;YAC7D,MAAM,IAAI,KAAK,CAAC,kCAAkC,MAAM,EAAE,CAAC,CAAC;SAC7D;QACD,MAAM,GAAG,GAAwB,IAAI,GAAG,EAAE,CAAC;QAC3C,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,kBAAkB,EAAE,CAAC;QACnE,IAAI,YAAY,GAAG,IAAI,CAAC;QAExB,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE;YAC5B,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;YAClC,MAAM,CAAC,GAAG,GAAG,IAAI,MAAM,CAAC;YACxB,IAAI,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE;gBACrB,IAAI,EAAE,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,CAAE,CAAC,CAAC,CAAC,CAAC;gBAC/B,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;aAChB;iBAAM,IAAI,UAAU,CAAC,GAAG,CAAC,OAAO,IAAI,EAAE,CAAC,EAAE;gBACxC,IAAI,EAAE,GAAG,CAAC,GAAG,UAAU,CAAC,GAAG,CAAC,OAAO,IAAI,EAAE,CAAE,CAAC,CAAC,CAAC,CAAC;gBAC/C,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;aAChB;iBAAM;gBACL,YAAY,GAAG,KAAK,CAAC;aACtB;SACF;QACD,IAAI,YAAY,EAAE;YAChB,OAAO,GAAG,CAAC;SACZ;QACD,mDAAmD;QACnD,MAAM,UAAU,GAA6B,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YAC/D,MAAM,EAAE,IAAI,CAAC,SAAS;YACtB,YAAY,EAAE,KAAK;YACnB,QAAQ,EAAE,IAAI,CAAC,aAAc,CAAC,SAAS,CAAC,kBAAkB,CAAC,qCAAqC,EAAE;gBAChG,IAAI,CAAC,mBAAmB,CAAC,CAAC,CAAC;aAC5B,CAAC;SACH,CAAC,CAAC,CAAC;QACJ,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;QAC9E,MAAM,MAAM,GAAG,cAAc,CAAC,GAAG,CAC/B,CAAC,MAAM,EAAE,EAAE,CACT,IAAI,CAAC,aAAc,CAAC,SAAS,CAAC,oBAAoB,CAChD,qCAAqC,EACrC,MAAM,CAAC,UAAU,CAClB,CAAC,CAAC,CAAW,CACjB,CAAC;QAEF,MAAM,CAAC,OAAO,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE;YACvB,MAAM,CAAC,GAAG,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;YAC5C,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE;gBACf,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,eAAe,CAAC,EAAE,CAAC,CAAC,CAAC;aACjC;QACH,CAAC,CAAC,CAAC;QACH,OAAO,GAAG,CAAC;IACb,CAAC;IAED;;;;OAIG;IACI,KAAK,CAAC,uBAAuB,CAAC,MAAc;QACjD,OAAO,IAAI,CAAC,eAAe,CAAC,uBAAuB,CAAC,MAAM,CAAC,CAAC;IAC9D,CAAC;CACF"}
|
|
1
|
+
{"version":3,"file":"marketData.js","sourceRoot":"","sources":["../../src/marketData.ts"],"names":[],"mappings":"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"}
|
|
@@ -119,6 +119,7 @@ export interface PerpetualState {
|
|
|
119
119
|
indexPrice: number;
|
|
120
120
|
collToQuoteIndexPrice: number;
|
|
121
121
|
markPremium: number;
|
|
122
|
+
markPrice: number;
|
|
122
123
|
midPrice: number;
|
|
123
124
|
currentFundingRateBps: number;
|
|
124
125
|
openInterestBC: number;
|
|
@@ -434,10 +435,10 @@ export declare const referralTypes: {
|
|
|
434
435
|
};
|
|
435
436
|
export interface IdxPriceInfo {
|
|
436
437
|
s2: number;
|
|
437
|
-
s3
|
|
438
|
+
s3?: number;
|
|
438
439
|
ema: number;
|
|
439
440
|
s2MktClosed: boolean;
|
|
440
|
-
s3MktClosed
|
|
441
|
+
s3MktClosed?: boolean;
|
|
441
442
|
conf: bigint;
|
|
442
443
|
predMktCLOBParams: bigint;
|
|
443
444
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nodeSDKTypes.js","sourceRoot":"","sources":["../../src/nodeSDKTypes.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"nodeSDKTypes.js","sourceRoot":"","sources":["../../src/nodeSDKTypes.ts"],"names":[],"mappings":"AA6fA,kBAAkB;AAClB,MAAM,CAAC,MAAM,cAAc,GAAG;IAC5B,IAAI,EAAE,iBAAiB;CACxB,CAAC;AACF,MAAM,CAAC,MAAM,aAAa,GAAG;IAC3B,+CAA+C;IAC/C,mFAAmF;IACnF,OAAO,EAAE;QACP,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE;QAChC,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,SAAS,EAAE;QACzC,EAAE,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,QAAQ,EAAE;QACzC,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,SAAS,EAAE;KACvC;IACD,+CAA+C;IAC/C,uFAAuF;IACvF,WAAW,EAAE;QACX,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,SAAS,EAAE;QACvC,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,SAAS,EAAE;QACxC,EAAE,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,QAAQ,EAAE;QACzC,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,SAAS,EAAE;KACvC;IACD,uFAAuF;IACvF,aAAa,EAAE;QACb,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE;QAChC,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,SAAS,EAAE;QACvC,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,SAAS,EAAE;KACvC;CACF,CAAC"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { BaseContract, Contract, Interface, Network, Overrides, Provider, Signer } from "ethers";
|
|
2
2
|
import { LimitOrderBook, LimitOrderBookFactory, Multicall3 } from "./contracts";
|
|
3
|
+
import { IPerpetualManager } from "./contracts/IPerpetualManager";
|
|
3
4
|
import { IClientOrder, IPerpetualOrder } from "./contracts/LimitOrderBook";
|
|
4
5
|
import { TypeSafeOrder, type ClientOrder, type MarginAccount, type NodeSDKConfig, type Order, type PerpetualState, type PerpetualStaticInfo, type PoolStaticInfo, type PriceFeedSubmission, type SmartContractOrder, type PerpetualData, LiquidityPoolData, SettlementConfig, IdxPriceInfo } from "./nodeSDKTypes";
|
|
5
6
|
import PriceFeeds from "./priceFeeds";
|
|
@@ -18,7 +19,7 @@ export default class PerpetualDataHandler {
|
|
|
18
19
|
protected symbolToTokenAddrMap: Map<string, string>;
|
|
19
20
|
chainId: bigint;
|
|
20
21
|
network: Network;
|
|
21
|
-
protected proxyContract:
|
|
22
|
+
protected proxyContract: IPerpetualManager | null;
|
|
22
23
|
protected proxyABI: Interface;
|
|
23
24
|
protected proxyAddr: string;
|
|
24
25
|
protected oraclefactoryAddr: string | undefined;
|
|
@@ -176,7 +177,7 @@ export default class PerpetualDataHandler {
|
|
|
176
177
|
* @param {Map<string, string>} symbolList mapping of symbols to convert long-format <-> blockchain-format
|
|
177
178
|
* @returns array with PerpetualStaticInfo for each perpetual
|
|
178
179
|
*/
|
|
179
|
-
static getPerpetualStaticInfo(_proxyContract:
|
|
180
|
+
static getPerpetualStaticInfo(_proxyContract: IPerpetualManager, nestedPerpetualIDs: Array<Array<number>>, symbolList: Map<string, string>, overrides?: Overrides): Promise<Array<PerpetualStaticInfo>>;
|
|
180
181
|
/**
|
|
181
182
|
* Breaks up an array of nested arrays into chunks of a specified size.
|
|
182
183
|
* @param {number} chunkSize The size of each chunk.
|
|
@@ -192,7 +193,7 @@ export default class PerpetualDataHandler {
|
|
|
192
193
|
* @param overrides optional
|
|
193
194
|
* @returns array of PerpetualData converted into decimals
|
|
194
195
|
*/
|
|
195
|
-
static _getLiquidityPools(fromIdx: number, toIdx: number, _proxyContract:
|
|
196
|
+
static _getLiquidityPools(fromIdx: number, toIdx: number, _proxyContract: IPerpetualManager, _symbolList: Map<string, string>, overrides?: Overrides): Promise<LiquidityPoolData[]>;
|
|
196
197
|
/**
|
|
197
198
|
* Query perpetuals
|
|
198
199
|
* @param ids perpetual ids
|
|
@@ -201,8 +202,8 @@ export default class PerpetualDataHandler {
|
|
|
201
202
|
* @param overrides optional
|
|
202
203
|
* @returns array of PerpetualData converted into decimals
|
|
203
204
|
*/
|
|
204
|
-
static _getPerpetuals(ids: number[], _proxyContract:
|
|
205
|
-
static getPoolStaticInfo(_proxyContract:
|
|
205
|
+
static _getPerpetuals(ids: number[], _proxyContract: IPerpetualManager, _symbolList: Map<string, string>, overrides?: Overrides): Promise<PerpetualData[]>;
|
|
206
|
+
static getPoolStaticInfo(_proxyContract: IPerpetualManager, overrides?: Overrides): Promise<{
|
|
206
207
|
nestedPerpetualIDs: Array<Array<number>>;
|
|
207
208
|
poolShareTokenAddr: Array<string>;
|
|
208
209
|
poolMarginTokenAddr: Array<string>;
|
|
@@ -302,7 +303,7 @@ export default class PerpetualDataHandler {
|
|
|
302
303
|
* @returns List of margin accounts
|
|
303
304
|
*/
|
|
304
305
|
static getMarginAccounts(traderAddrs: string[], symbols: string[], symbolToPerpStaticInfo: Map<string, PerpetualStaticInfo>, _multicall: Multicall3, _proxyContract: Contract, _pxInfo: IdxPriceInfo[], isPredMkt: boolean[], overrides?: Overrides): Promise<MarginAccount[]>;
|
|
305
|
-
protected static _queryPerpetualPrice(symbol: string, tradeAmount: number, symbolToPerpStaticInfo: Map<string, PerpetualStaticInfo>, _proxyContract:
|
|
306
|
+
protected static _queryPerpetualPrice(symbol: string, tradeAmount: number, symbolToPerpStaticInfo: Map<string, PerpetualStaticInfo>, _proxyContract: IPerpetualManager, indexPrices: [number, number], conf: bigint, params: bigint, overrides?: Overrides): Promise<number>;
|
|
306
307
|
/**
|
|
307
308
|
*
|
|
308
309
|
* @param symbol perpetual symbol of the form BTC-USDC-USDC
|
|
@@ -313,8 +314,8 @@ export default class PerpetualDataHandler {
|
|
|
313
314
|
* @param overrides
|
|
314
315
|
* @returns mark price
|
|
315
316
|
*/
|
|
316
|
-
protected static _queryPerpetualMarkPrice(symbol: string, symbolToPerpStaticInfo: Map<string, PerpetualStaticInfo>, _proxyContract:
|
|
317
|
-
protected static _queryPerpetualState(symbol: string, symbolToPerpStaticInfo: Map<string, PerpetualStaticInfo>, _proxyContract:
|
|
317
|
+
protected static _queryPerpetualMarkPrice(symbol: string, symbolToPerpStaticInfo: Map<string, PerpetualStaticInfo>, _proxyContract: IPerpetualManager, indexPrices: IdxPriceInfo, isPredMkt: boolean, overrides?: Overrides): Promise<number>;
|
|
318
|
+
protected static _queryPerpetualState(symbol: string, symbolToPerpStaticInfo: Map<string, PerpetualStaticInfo>, _proxyContract: IPerpetualManager, _multicall: Multicall3, indexPrices: IdxPriceInfo, overrides?: Overrides): Promise<PerpetualState>;
|
|
318
319
|
/**
|
|
319
320
|
* Calculate long and short exposures from open interest and long/short
|
|
320
321
|
* @param oi open interest
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { JsonRpcProvider, Network, ZeroAddress, } from "ethers";
|
|
2
2
|
import { BUY_SIDE, CLOSED_SIDE, COLLATERAL_CURRENCY_BASE, COLLATERAL_CURRENCY_QUOTE, CollaterlCCY, DEFAULT_CONFIG, MASK_CLOSE_ONLY, MASK_KEEP_POS_LEVERAGE, MASK_LIMIT_ORDER, MASK_MARKET_ORDER, MASK_PREDICTION_MARKET, MASK_STOP_ORDER, MAX_64x64, MULTICALL_ADDRESS, ORDER_MAX_DURATION_SEC, ORDER_TYPE_LIMIT, ORDER_TYPE_MARKET, ORDER_TYPE_STOP_LIMIT, ORDER_TYPE_STOP_MARKET, PERP_STATE_STR, SELL_SIDE, SYMBOL_LIST, ZERO_ADDRESS, ZERO_ORDER_ID, } from "./constants";
|
|
3
|
-
import { ERC20__factory, LimitOrderBookFactory__factory, LimitOrderBook__factory, Multicall3__factory, OracleFactory__factory, } from "./contracts";
|
|
3
|
+
import { ERC20__factory, IPerpetualManager__factory, LimitOrderBookFactory__factory, LimitOrderBook__factory, Multicall3__factory, OracleFactory__factory, } from "./contracts";
|
|
4
4
|
import { ABDK29ToFloat, ABK64x64ToFloat, calculateLiquidationPriceCollateralBase, calculateLiquidationPriceCollateralQuanto, calculateLiquidationPriceCollateralQuote, div64x64, floatToABK64x64, dec18ToFloat, priceToProb, probToPrice, pmFindLiquidationPrice, pmMaintenanceMarginRate, } from "./d8XMath";
|
|
5
5
|
import PriceFeeds from "./priceFeeds";
|
|
6
6
|
import { combineFlags, containsFlag, contractSymbolToSymbol, loadConfigAbis, symbol4BToLongSymbol, fromBytes4, to4Chars, } from "./utils";
|
|
@@ -60,7 +60,7 @@ export default class PerpetualDataHandler {
|
|
|
60
60
|
if (network.chainId !== this.chainId) {
|
|
61
61
|
throw new Error(`Provider: chain id ${network.chainId} does not match config (${this.chainId})`);
|
|
62
62
|
}
|
|
63
|
-
this.proxyContract =
|
|
63
|
+
this.proxyContract = IPerpetualManager__factory.connect(this.proxyAddr, signerOrProvider);
|
|
64
64
|
this.multicall = Multicall3__factory.connect(this.config.multicall ?? MULTICALL_ADDRESS, this.signerOrProvider);
|
|
65
65
|
await this._fillSymbolMaps(overrides);
|
|
66
66
|
}
|
|
@@ -693,7 +693,7 @@ export default class PerpetualDataHandler {
|
|
|
693
693
|
if (isNaN(perpId)) {
|
|
694
694
|
perpId = PerpetualDataHandler.symbolToPerpetualId(symbol, symbolToPerpStaticInfo);
|
|
695
695
|
}
|
|
696
|
-
let traderState = await _proxyContract.getTraderState(perpId, traderAddr, [_pxInfo.ema, _pxInfo.s3].map((x) => floatToABK64x64(x)), overrides || {});
|
|
696
|
+
let traderState = await _proxyContract.getTraderState(perpId, traderAddr, [_pxInfo.ema, _pxInfo.s3 ?? 0].map((x) => floatToABK64x64(x)), overrides || {});
|
|
697
697
|
return PerpetualDataHandler.buildMarginAccountFromState(symbol, traderState, symbolToPerpStaticInfo, _pxInfo, isPredMkt);
|
|
698
698
|
}
|
|
699
699
|
/**
|
|
@@ -864,7 +864,7 @@ export default class PerpetualDataHandler {
|
|
|
864
864
|
callData: _proxyContract.interface.encodeFunctionData("getTraderState", [
|
|
865
865
|
PerpetualDataHandler.symbolToPerpetualId(symbols[i], symbolToPerpStaticInfo),
|
|
866
866
|
_addr,
|
|
867
|
-
[_pxInfo[i].ema, _pxInfo[i].s3].map((x) => floatToABK64x64(x)),
|
|
867
|
+
[_pxInfo[i].ema, _pxInfo[i].s3 ?? 0].map((x) => floatToABK64x64(x)),
|
|
868
868
|
]),
|
|
869
869
|
}));
|
|
870
870
|
const encodedResults = await _multicall.aggregate3.staticCall(proxyCalls, overrides || {});
|
|
@@ -917,7 +917,7 @@ export default class PerpetualDataHandler {
|
|
|
917
917
|
allowFailure: false,
|
|
918
918
|
callData: _proxyContract.interface.encodeFunctionData("getAMMState", [
|
|
919
919
|
perpId,
|
|
920
|
-
[indexPrices.s2, indexPrices.s3].map(floatToABK64x64),
|
|
920
|
+
[indexPrices.s2, indexPrices.s3 ?? 0].map(floatToABK64x64),
|
|
921
921
|
]),
|
|
922
922
|
},
|
|
923
923
|
{
|
|
@@ -962,18 +962,29 @@ export default class PerpetualDataHandler {
|
|
|
962
962
|
else if (staticInfo.collateralCurrencyType == CollaterlCCY.QUOTE) {
|
|
963
963
|
S3 = 1;
|
|
964
964
|
}
|
|
965
|
+
const isPred = PerpetualDataHandler.isPredictionMarketStatic(staticInfo);
|
|
966
|
+
let markPrice;
|
|
967
|
+
if (isPred) {
|
|
968
|
+
// ema + premium
|
|
969
|
+
markPrice = indexPrices.ema + ABK64x64ToFloat(ammState[8]);
|
|
970
|
+
}
|
|
971
|
+
else {
|
|
972
|
+
// S2 * (1+premium)
|
|
973
|
+
markPrice = indexPrices.s2 * (1 + ABK64x64ToFloat(ammState[8]));
|
|
974
|
+
}
|
|
965
975
|
let state = {
|
|
966
976
|
id: perpId,
|
|
967
977
|
state: PERP_STATE_STR[Number(ammState[13])],
|
|
968
978
|
baseCurrency: ccy[0],
|
|
969
979
|
quoteCurrency: ccy[1],
|
|
970
980
|
indexPrice: S2,
|
|
971
|
-
collToQuoteIndexPrice: S3,
|
|
981
|
+
collToQuoteIndexPrice: S3 ?? (ccy[0] === ccy[1] ? S2 : 1),
|
|
972
982
|
markPremium: ABK64x64ToFloat(ammState[8]),
|
|
983
|
+
markPrice: markPrice,
|
|
973
984
|
midPrice: ABK64x64ToFloat(ammState[10]),
|
|
974
985
|
currentFundingRateBps: ABK64x64ToFloat(ammState[14]) * 1e4,
|
|
975
986
|
openInterestBC: ABK64x64ToFloat(ammState[11]),
|
|
976
|
-
isMarketClosed: indexPrices.s2MktClosed || indexPrices.s3MktClosed,
|
|
987
|
+
isMarketClosed: indexPrices.s2MktClosed || (indexPrices.s3MktClosed !== undefined && indexPrices.s3MktClosed),
|
|
977
988
|
longBC: ABK64x64ToFloat(longShort[0]),
|
|
978
989
|
shortBC: ABK64x64ToFloat(longShort[1]),
|
|
979
990
|
};
|