shufflecom-calculations 6.12.1 → 6.13.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.
@@ -14,4 +14,4 @@ export declare const STONKS_ROUND_TICK_COUNT: number;
14
14
  export declare const STONKS_MAX_TICK_HISTORY_MS: number;
15
15
  export declare const STONKS_CHECKPOINT_INTERVAL_TICKS = 500;
16
16
  export declare const STONKS_PRICE_BAR_INTERVAL_TICKS: number;
17
- export declare const STONKS_PROFIT_FEE_RATE: BigNumber;
17
+ export declare const STONKS_PAYOUT_FEE_RATE: BigNumber;
@@ -3,7 +3,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.STONKS_PROFIT_FEE_RATE = exports.STONKS_PRICE_BAR_INTERVAL_TICKS = exports.STONKS_CHECKPOINT_INTERVAL_TICKS = exports.STONKS_MAX_TICK_HISTORY_MS = exports.STONKS_ROUND_TICK_COUNT = exports.STONKS_ROUND_DURATION_MS = exports.STONKS_MAX_STALE_CLIENT_TICKS = exports.STONKS_SET_TICK_RETRY_DELAY_MS = exports.STONKS_TICK_DURATION_MS = exports.STONKS_PRICE_DECIMAL_PLACES = exports.STONKS_VOLATILITY = exports.STONKS_START_PRICE = exports.STONKS_MAX_LEVERAGE = exports.STONKS_MIN_LEVERAGE = exports.STONKS_INTERNAL_PRICE_DECIMAL_PLACES = exports.STONKS_MIN_TAKE_PROFIT_MULTIPLIER = void 0;
6
+ exports.STONKS_PAYOUT_FEE_RATE = exports.STONKS_PRICE_BAR_INTERVAL_TICKS = exports.STONKS_CHECKPOINT_INTERVAL_TICKS = exports.STONKS_MAX_TICK_HISTORY_MS = exports.STONKS_ROUND_TICK_COUNT = exports.STONKS_ROUND_DURATION_MS = exports.STONKS_MAX_STALE_CLIENT_TICKS = exports.STONKS_SET_TICK_RETRY_DELAY_MS = exports.STONKS_TICK_DURATION_MS = exports.STONKS_PRICE_DECIMAL_PLACES = exports.STONKS_VOLATILITY = exports.STONKS_START_PRICE = exports.STONKS_MAX_LEVERAGE = exports.STONKS_MIN_LEVERAGE = exports.STONKS_INTERNAL_PRICE_DECIMAL_PLACES = exports.STONKS_MIN_TAKE_PROFIT_MULTIPLIER = void 0;
7
7
  const bignumber_js_1 = __importDefault(require("bignumber.js"));
8
8
  exports.STONKS_MIN_TAKE_PROFIT_MULTIPLIER = (0, bignumber_js_1.default)(1.05);
9
9
  exports.STONKS_INTERNAL_PRICE_DECIMAL_PLACES = 10;
@@ -20,5 +20,5 @@ exports.STONKS_ROUND_TICK_COUNT = exports.STONKS_ROUND_DURATION_MS / exports.STO
20
20
  exports.STONKS_MAX_TICK_HISTORY_MS = 48 * 60 * 60 * 1000;
21
21
  exports.STONKS_CHECKPOINT_INTERVAL_TICKS = 500;
22
22
  exports.STONKS_PRICE_BAR_INTERVAL_TICKS = 5000 / exports.STONKS_TICK_DURATION_MS;
23
- exports.STONKS_PROFIT_FEE_RATE = (0, bignumber_js_1.default)(0.05);
23
+ exports.STONKS_PAYOUT_FEE_RATE = (0, bignumber_js_1.default)(0.02);
24
24
  //# sourceMappingURL=constants.js.map
@@ -24,7 +24,6 @@ export interface StonksTerminalBetState extends StonksOpenBetState {
24
24
  readonly terminalTick: number;
25
25
  readonly terminalPrice: BigNumber;
26
26
  readonly multiplier: BigNumber;
27
- readonly grossPayout: BigNumber;
28
27
  readonly netPayout: BigNumber;
29
28
  }
30
29
  export type StonksSettlementReason = {
@@ -59,12 +58,14 @@ export declare class StonksRules {
59
58
  static tickAtOrAfter(startedAtMs: number, atMs: number): number;
60
59
  static tickBefore(startedAtMs: number, atMs: number): number;
61
60
  static tickStartTime(startedAtMs: number, tick: number): Date;
62
- static hasReachedTargetPrice(direction: StonksDirection, currentPrice: BigNumber, targetPrice: BigNumber): boolean;
61
+ static hasReachedTakeProfit(bet: Pick<StonksOpenBetState, 'leverage' | 'entryPrice' | 'direction'>, price: BigNumber, takeProfitMultiplier: BigNumber): boolean;
63
62
  static hasReachedBust(direction: StonksDirection, price: BigNumber, bustPrice: BigNumber): boolean;
64
63
  static evaluateTriggers(bet: StonksOpenBetState, tickPrice: BigNumber, liveMaxPayoutCap: BigNumber): StonksTriggerOutcome;
65
- static multiplierAtPrice(bet: StonksOpenBetState, price: BigNumber): BigNumber;
64
+ static multiplierAtPrice(bet: Pick<StonksOpenBetState, 'leverage' | 'entryPrice' | 'direction'>, price: BigNumber): BigNumber;
66
65
  static grossPayoutAtPrice(bet: StonksOpenBetState, price: BigNumber): BigNumber;
67
- static grossPayoutForReason(bet: StonksOpenBetState, reason: StonksSettlementReason, price: BigNumber): BigNumber;
66
+ static netPayoutAtPrice(bet: StonksOpenBetState, price: BigNumber): BigNumber;
67
+ static netPayoutForReason(bet: StonksOpenBetState, reason: StonksSettlementReason, price: BigNumber): BigNumber;
68
68
  static multiplierForReason(bet: StonksOpenBetState, reason: StonksSettlementReason, price: BigNumber): BigNumber;
69
- static netPayout(grossPayout: BigNumber, amount: BigNumber): BigNumber;
69
+ static netOfFee(gross: BigNumber): BigNumber;
70
+ static grossOfFee(net: BigNumber): BigNumber;
70
71
  }
@@ -31,7 +31,7 @@ class StonksRules {
31
31
  }
32
32
  static impliedPriceForMultiplier(bet, targetMultiplier) {
33
33
  const directionSign = bet.direction === StonksDirection.UP ? 1 : -1;
34
- const multiplierDelta = targetMultiplier.minus(1);
34
+ const multiplierDelta = StonksRules.grossOfFee(targetMultiplier).minus(1);
35
35
  const priceChange = (0, bignumber_js_1.default)(directionSign).multipliedBy(multiplierDelta).dividedBy(bet.leverage);
36
36
  return bet.entryPrice.multipliedBy((0, bignumber_js_1.default)(1).plus(priceChange));
37
37
  }
@@ -64,8 +64,8 @@ class StonksRules {
64
64
  static tickStartTime(startedAtMs, tick) {
65
65
  return new Date(startedAtMs + tick * constants_1.STONKS_TICK_DURATION_MS);
66
66
  }
67
- static hasReachedTargetPrice(direction, currentPrice, targetPrice) {
68
- return direction === StonksDirection.UP ? currentPrice.isGreaterThanOrEqualTo(targetPrice) : currentPrice.isLessThanOrEqualTo(targetPrice);
67
+ static hasReachedTakeProfit(bet, price, takeProfitMultiplier) {
68
+ return StonksRules.multiplierAtPrice(bet, price).isGreaterThanOrEqualTo(takeProfitMultiplier);
69
69
  }
70
70
  static hasReachedBust(direction, price, bustPrice) {
71
71
  return direction === StonksDirection.UP ? price.isLessThanOrEqualTo(bustPrice) : price.isGreaterThanOrEqualTo(bustPrice);
@@ -74,13 +74,13 @@ class StonksRules {
74
74
  const hitBust = StonksRules.hasReachedBust(bet.direction, tickPrice, bet.bustPrice);
75
75
  if (bet.takeProfitMultiplier != null) {
76
76
  const takeProfitMultiplier = bet.takeProfitMultiplier;
77
- const hitTakeProfit = StonksRules.hasReachedTargetPrice(bet.direction, tickPrice, StonksRules.impliedPriceForMultiplier(bet, takeProfitMultiplier));
77
+ const hitTakeProfit = StonksRules.hasReachedTakeProfit(bet, tickPrice, takeProfitMultiplier);
78
78
  if (hitTakeProfit && hitBust) {
79
79
  throw new Error('StonksRules.evaluateTriggers: take profit and liquidation both fired');
80
80
  }
81
81
  if (hitTakeProfit) {
82
82
  const reason = { kind: StonksBetTerminalReason.TAKE_PROFIT, takeProfitMultiplier };
83
- if (StonksRules.grossPayoutForReason(bet, reason, tickPrice).isGreaterThan(liveMaxPayoutCap)) {
83
+ if (StonksRules.netPayoutForReason(bet, reason, tickPrice).isGreaterThan(liveMaxPayoutCap)) {
84
84
  return { fired: true, reason: { kind: StonksBetTerminalReason.MAX_PAYOUT, appliedCap: liveMaxPayoutCap } };
85
85
  }
86
86
  return { fired: true, reason };
@@ -89,7 +89,7 @@ class StonksRules {
89
89
  if (hitBust) {
90
90
  return { fired: true, reason: { kind: StonksBetTerminalReason.LIQUIDATION } };
91
91
  }
92
- if (StonksRules.grossPayoutAtPrice(bet, tickPrice).isGreaterThanOrEqualTo(liveMaxPayoutCap)) {
92
+ if (StonksRules.netPayoutAtPrice(bet, tickPrice).isGreaterThanOrEqualTo(liveMaxPayoutCap)) {
93
93
  return { fired: true, reason: { kind: StonksBetTerminalReason.MAX_PAYOUT, appliedCap: liveMaxPayoutCap } };
94
94
  }
95
95
  return { fired: false };
@@ -98,15 +98,18 @@ class StonksRules {
98
98
  const directionSign = bet.direction === StonksDirection.UP ? 1 : -1;
99
99
  const percentagePriceChange = price.minus(bet.entryPrice).dividedBy(bet.entryPrice);
100
100
  const leveragedPriceChange = (0, bignumber_js_1.default)(directionSign).multipliedBy(bet.leverage).multipliedBy(percentagePriceChange);
101
- const multiplier = (0, bignumber_js_1.default)(1).plus(leveragedPriceChange);
102
- return bignumber_js_1.default.maximum(0, multiplier);
101
+ const grossMultiplier = (0, bignumber_js_1.default)(1).plus(leveragedPriceChange);
102
+ return StonksRules.netOfFee(bignumber_js_1.default.maximum(0, grossMultiplier));
103
103
  }
104
104
  static grossPayoutAtPrice(bet, price) {
105
105
  const position = StonksRules.position(bet.amount, bet.leverage, bet.direction);
106
106
  const pnl = position.multipliedBy(price.minus(bet.entryPrice)).dividedBy(bet.entryPrice);
107
107
  return bignumber_js_1.default.maximum(0, bet.amount.plus(pnl));
108
108
  }
109
- static grossPayoutForReason(bet, reason, price) {
109
+ static netPayoutAtPrice(bet, price) {
110
+ return StonksRules.netOfFee(StonksRules.grossPayoutAtPrice(bet, price));
111
+ }
112
+ static netPayoutForReason(bet, reason, price) {
110
113
  switch (reason.kind) {
111
114
  case StonksBetTerminalReason.TAKE_PROFIT:
112
115
  return (0, calculate_payout_1.calculatePayoutBN)(bet.amount, reason.takeProfitMultiplier);
@@ -116,10 +119,10 @@ class StonksRules {
116
119
  return reason.appliedCap;
117
120
  case StonksBetTerminalReason.CASHOUT:
118
121
  case StonksBetTerminalReason.ROUND_END:
119
- return StonksRules.grossPayoutAtPrice(bet, price);
122
+ return StonksRules.netPayoutAtPrice(bet, price);
120
123
  default:
121
124
  reason;
122
- throw new Error(`StonksRules.grossPayoutForReason: unhandled reason`);
125
+ throw new Error(`StonksRules.netPayoutForReason: unhandled reason`);
123
126
  }
124
127
  }
125
128
  static multiplierForReason(bet, reason, price) {
@@ -128,12 +131,11 @@ class StonksRules {
128
131
  }
129
132
  return StonksRules.multiplierAtPrice(bet, price);
130
133
  }
131
- static netPayout(grossPayout, amount) {
132
- if (grossPayout.lte(amount)) {
133
- return grossPayout;
134
- }
135
- const profit = grossPayout.minus(amount);
136
- return amount.plus(profit.multipliedBy((0, bignumber_js_1.default)(1).minus(constants_1.STONKS_PROFIT_FEE_RATE)));
134
+ static netOfFee(gross) {
135
+ return gross.multipliedBy((0, bignumber_js_1.default)(1).minus(constants_1.STONKS_PAYOUT_FEE_RATE));
136
+ }
137
+ static grossOfFee(net) {
138
+ return net.dividedBy((0, bignumber_js_1.default)(1).minus(constants_1.STONKS_PAYOUT_FEE_RATE));
137
139
  }
138
140
  }
139
141
  exports.StonksRules = StonksRules;
@@ -1 +1 @@
1
- {"version":3,"file":"stonks-rules.js","sourceRoot":"","sources":["../../../src/games/stonks/stonks-rules.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"stonks-rules.js","sourceRoot":"","sources":["../../../src/games/stonks/stonks-rules.ts"],"names":[],"mappings":";;;;;;AAAA,gEAAqC;AACrC,mEAAiE;AACjE,2CAQqB;AAErB,IAAY,eAGX;AAHD,WAAY,eAAe;IACzB,4BAAS,CAAA;IACT,gCAAa,CAAA;AACf,CAAC,EAHW,eAAe,+BAAf,eAAe,QAG1B;AAED,IAAY,uBAMX;AAND,WAAY,uBAAuB;IACjC,8CAAmB,CAAA;IACnB,sDAA2B,CAAA;IAC3B,sDAA2B,CAAA;IAC3B,oDAAyB,CAAA;IACzB,kDAAuB,CAAA;AACzB,CAAC,EANW,uBAAuB,uCAAvB,uBAAuB,QAMlC;AA6BD,MAAa,WAAW;IACtB,MAAM,CAAC,SAAS,CAAC,UAAqB,EAAE,QAAmB,EAAE,SAA0B;QACrF,MAAM,MAAM,GAAG,UAAU,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;QAC9C,OAAO,SAAS,KAAK,eAAe,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC/F,CAAC;IAED,MAAM,CAAC,QAAQ,CAAC,MAAiB,EAAE,QAAmB,EAAE,SAA0B;QAChF,MAAM,SAAS,GAAG,MAAM,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;QAChD,OAAO,SAAS,KAAK,eAAe,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC;IAC5E,CAAC;IAED,MAAM,CAAC,yBAAyB,CAC9B,GAAsE,EACtE,gBAA2B;QAE3B,MAAM,aAAa,GAAG,GAAG,CAAC,SAAS,KAAK,eAAe,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACpE,MAAM,eAAe,GAAG,WAAW,CAAC,UAAU,CAAC,gBAAgB,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAC1E,MAAM,WAAW,GAAG,IAAA,sBAAS,EAAC,aAAa,CAAC,CAAC,YAAY,CAAC,eAAe,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QACnG,OAAO,GAAG,CAAC,UAAU,CAAC,YAAY,CAAC,IAAA,sBAAS,EAAC,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC;IACrE,CAAC;IAED,MAAM,CAAC,2BAA2B,CAAC,oBAA+B;QAChE,OAAO,oBAAoB,CAAC,sBAAsB,CAAC,6CAAiC,CAAC,CAAC;IACxF,CAAC;IAED,MAAM,CAAC,4BAA4B,CAAC,UAAqB,EAAE,SAAoB;QAC7E,OAAO,CAAC,UAAU;aACf,aAAa,CAAC,gDAAoC,CAAC;aACnD,SAAS,CAAC,SAAS,CAAC,aAAa,CAAC,gDAAoC,CAAC,CAAC,CAAC;IAC9E,CAAC;IAED,MAAM,CAAC,WAAW,CAAC,UAAkB;QACnC,OAAO,UAAU,IAAI,mCAAuB,GAAG,CAAC,CAAC;IACnD,CAAC;IAED,MAAM,CAAC,wBAAwB,CAAC,UAAkB,EAAE,YAAoB;QACtE,OAAO,UAAU,GAAG,YAAY,IAAI,yCAA6B,CAAC;IACpE,CAAC;IAED,MAAM,CAAC,mBAAmB,CAAC,GAAS,EAAE,OAAe;QACnD,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,OAAO,CAAC,GAAG,oCAAwB,CAAC,CAAC;IAC1E,CAAC;IAED,MAAM,CAAC,0BAA0B,CAAC,OAAe,EAAE,OAAe;QAChE,OAAO,IAAI,IAAI,CAAC,OAAO,GAAG,OAAO,GAAG,oCAAwB,CAAC,CAAC;IAChE,CAAC;IAMD,MAAM,CAAC,aAAa,CAAC,WAAmB,EAAE,IAAY;QACpD,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,GAAG,WAAW,CAAC,GAAG,mCAAuB,CAAC,CAAC;IACnE,CAAC;IAED,MAAM,CAAC,UAAU,CAAC,WAAmB,EAAE,IAAY;QACjD,OAAO,WAAW,CAAC,aAAa,CAAC,WAAW,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;IAC1D,CAAC;IAED,MAAM,CAAC,aAAa,CAAC,WAAmB,EAAE,IAAY;QACpD,OAAO,IAAI,IAAI,CAAC,WAAW,GAAG,IAAI,GAAG,mCAAuB,CAAC,CAAC;IAChE,CAAC;IAED,MAAM,CAAC,oBAAoB,CACzB,GAAsE,EACtE,KAAgB,EAChB,oBAA+B;QAE/B,OAAO,WAAW,CAAC,iBAAiB,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,sBAAsB,CAAC,oBAAoB,CAAC,CAAC;IAChG,CAAC;IAED,MAAM,CAAC,cAAc,CAAC,SAA0B,EAAE,KAAgB,EAAE,SAAoB;QACtF,OAAO,SAAS,KAAK,eAAe,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,mBAAmB,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,sBAAsB,CAAC,SAAS,CAAC,CAAC;IAC3H,CAAC;IAED,MAAM,CAAC,gBAAgB,CAAC,GAAuB,EAAE,SAAoB,EAAE,gBAA2B;QAChG,MAAM,OAAO,GAAG,WAAW,CAAC,cAAc,CAAC,GAAG,CAAC,SAAS,EAAE,SAAS,EAAE,GAAG,CAAC,SAAS,CAAC,CAAC;QAEpF,IAAI,GAAG,CAAC,oBAAoB,IAAI,IAAI,EAAE,CAAC;YACrC,MAAM,oBAAoB,GAAG,GAAG,CAAC,oBAAoB,CAAC;YACtD,MAAM,aAAa,GAAG,WAAW,CAAC,oBAAoB,CAAC,GAAG,EAAE,SAAS,EAAE,oBAAoB,CAAC,CAAC;YAC7F,IAAI,aAAa,IAAI,OAAO,EAAE,CAAC;gBAC7B,MAAM,IAAI,KAAK,CAAC,sEAAsE,CAAC,CAAC;YAC1F,CAAC;YAED,IAAI,aAAa,EAAE,CAAC;gBAClB,MAAM,MAAM,GAAG,EAAE,IAAI,EAAE,uBAAuB,CAAC,WAAW,EAAE,oBAAoB,EAAW,CAAC;gBAI5F,IAAI,WAAW,CAAC,kBAAkB,CAAC,GAAG,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC,aAAa,CAAC,gBAAgB,CAAC,EAAE,CAAC;oBAC3F,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,uBAAuB,CAAC,UAAU,EAAE,UAAU,EAAE,gBAAgB,EAAE,EAAE,CAAC;gBAC7G,CAAC;gBACD,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;YACjC,CAAC;QACH,CAAC;QAED,IAAI,OAAO,EAAE,CAAC;YACZ,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,uBAAuB,CAAC,WAAW,EAAE,EAAE,CAAC;QAChF,CAAC;QAED,IAAI,WAAW,CAAC,gBAAgB,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC,sBAAsB,CAAC,gBAAgB,CAAC,EAAE,CAAC;YAC1F,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,uBAAuB,CAAC,UAAU,EAAE,UAAU,EAAE,gBAAgB,EAAE,EAAE,CAAC;QAC7G,CAAC;QACD,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;IAC1B,CAAC;IAED,MAAM,CAAC,iBAAiB,CAAC,GAAsE,EAAE,KAAgB;QAC/G,MAAM,aAAa,GAAG,GAAG,CAAC,SAAS,KAAK,eAAe,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACpE,MAAM,qBAAqB,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QACpF,MAAM,oBAAoB,GAAG,IAAA,sBAAS,EAAC,aAAa,CAAC,CAAC,YAAY,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,YAAY,CAAC,qBAAqB,CAAC,CAAC;QAErH,MAAM,eAAe,GAAG,IAAA,sBAAS,EAAC,CAAC,CAAC,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;QAChE,OAAO,WAAW,CAAC,QAAQ,CAAC,sBAAS,CAAC,OAAO,CAAC,CAAC,EAAE,eAAe,CAAC,CAAC,CAAC;IACrE,CAAC;IAED,MAAM,CAAC,kBAAkB,CAAC,GAAuB,EAAE,KAAgB;QACjE,MAAM,QAAQ,GAAG,WAAW,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,QAAQ,EAAE,GAAG,CAAC,SAAS,CAAC,CAAC;QAC/E,MAAM,GAAG,GAAG,QAAQ,CAAC,YAAY,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QACzF,OAAO,sBAAS,CAAC,OAAO,CAAC,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;IACpD,CAAC;IAED,MAAM,CAAC,gBAAgB,CAAC,GAAuB,EAAE,KAAgB;QAC/D,OAAO,WAAW,CAAC,QAAQ,CAAC,WAAW,CAAC,kBAAkB,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC;IAC1E,CAAC;IAED,MAAM,CAAC,kBAAkB,CAAC,GAAuB,EAAE,MAA8B,EAAE,KAAgB;QACjG,QAAQ,MAAM,CAAC,IAAI,EAAE,CAAC;YACpB,KAAK,uBAAuB,CAAC,WAAW;gBACtC,OAAO,IAAA,oCAAiB,EAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,oBAAoB,CAAC,CAAC;YACpE,KAAK,uBAAuB,CAAC,WAAW;gBACtC,OAAO,IAAA,sBAAS,EAAC,CAAC,CAAC,CAAC;YACtB,KAAK,uBAAuB,CAAC,UAAU;gBACrC,OAAO,MAAM,CAAC,UAAU,CAAC;YAC3B,KAAK,uBAAuB,CAAC,OAAO,CAAC;YACrC,KAAK,uBAAuB,CAAC,SAAS;gBACpC,OAAO,WAAW,CAAC,gBAAgB,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;YAClD;gBACE,MAAsB,CAAC;gBACvB,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAC;QACxE,CAAC;IACH,CAAC;IAED,MAAM,CAAC,mBAAmB,CAAC,GAAuB,EAAE,MAA8B,EAAE,KAAgB;QAClG,IAAI,MAAM,CAAC,IAAI,KAAK,uBAAuB,CAAC,WAAW,EAAE,CAAC;YACxD,OAAO,MAAM,CAAC,oBAAoB,CAAC;QACrC,CAAC;QACD,OAAO,WAAW,CAAC,iBAAiB,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IACnD,CAAC;IAED,MAAM,CAAC,QAAQ,CAAC,KAAgB;QAC9B,OAAO,KAAK,CAAC,YAAY,CAAC,IAAA,sBAAS,EAAC,CAAC,CAAC,CAAC,KAAK,CAAC,kCAAsB,CAAC,CAAC,CAAC;IACxE,CAAC;IAED,MAAM,CAAC,UAAU,CAAC,GAAc;QAC9B,OAAO,GAAG,CAAC,SAAS,CAAC,IAAA,sBAAS,EAAC,CAAC,CAAC,CAAC,KAAK,CAAC,kCAAsB,CAAC,CAAC,CAAC;IACnE,CAAC;CACF;AA7JD,kCA6JC"}