react-klinecharts-ui 0.6.0 → 1.0.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.
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/overlays/index.ts","../src/overlays/utils.ts","../src/overlays/arrow.ts","../src/overlays/circle.ts","../src/overlays/rect.ts","../src/overlays/triangle.ts","../src/overlays/parallelogram.ts","../src/overlays/fibonacciCircle.ts","../src/overlays/fibonacciSegment.ts","../src/overlays/fibonacciSpiral.ts","../src/overlays/fibonacciSpeedResistanceFan.ts","../src/overlays/fibonacciExtension.ts","../src/overlays/fibRetracement.ts","../src/overlays/gannBox.ts","../src/overlays/gannFan.ts","../src/overlays/threeWaves.ts","../src/overlays/fiveWaves.ts","../src/overlays/eightWaves.ts","../src/overlays/anyWaves.ts","../src/overlays/elliottWave.ts","../src/overlays/abcd.ts","../src/overlays/xabcd.ts","../src/overlays/ray.ts","../src/overlays/parallelChannel.ts","../src/overlays/longPosition.ts","../src/overlays/shortPosition.ts","../src/overlays/measure.ts","../src/overlays/brush.ts","../src/indicators/index.ts","../src/utils/TA.ts","../src/indicators/bollTv.ts","../src/indicators/cci.ts","../src/indicators/hma.ts","../src/indicators/ichimoku.ts","../src/indicators/maRibbon.ts","../src/indicators/macdTv.ts","../src/indicators/pivotPoints.ts","../src/indicators/rsiTv.ts","../src/indicators/stochastic.ts","../src/indicators/superTrend.ts","../src/indicators/vwap.ts","../src/extensions/overlays/orderLine.ts","../src/extensions/overlays/depthOverlay.ts","../src/extensions/overlays/alertLine.ts","../src/extensions/index.ts"],"names":["utils","registerFigure","DEFAULT_FONT_FAMILY","registerOverlay","registerIndicator"],"mappings":";;;;;;;;;;;AAAA,IAAA,gBAAA,GAAA,EAAA;AAAA,QAAA,CAAA,gBAAA,EAAA;AAAA,EAAA,IAAA,EAAA,MAAA,YAAA;AAAA,EAAA,QAAA,EAAA,MAAA,gBAAA;AAAA,EAAA,KAAA,EAAA,MAAA,aAAA;AAAA,EAAA,KAAA,EAAA,MAAA,aAAA;AAAA,EAAA,MAAA,EAAA,MAAA,cAAA;AAAA,EAAA,UAAA,EAAA,MAAA,kBAAA;AAAA,EAAA,WAAA,EAAA,MAAA,mBAAA;AAAA,EAAA,cAAA,EAAA,MAAA,sBAAA;AAAA,EAAA,eAAA,EAAA,MAAA,uBAAA;AAAA,EAAA,kBAAA,EAAA,MAAA,0BAAA;AAAA,EAAA,gBAAA,EAAA,MAAA,wBAAA;AAAA,EAAA,2BAAA,EAAA,MAAA,mCAAA;AAAA,EAAA,eAAA,EAAA,MAAA,uBAAA;AAAA,EAAA,SAAA,EAAA,MAAA,iBAAA;AAAA,EAAA,OAAA,EAAA,MAAA,eAAA;AAAA,EAAA,OAAA,EAAA,MAAA,eAAA;AAAA,EAAA,YAAA,EAAA,MAAA,oBAAA;AAAA,EAAA,OAAA,EAAA,MAAA,eAAA;AAAA,EAAA,eAAA,EAAA,MAAA,uBAAA;AAAA,EAAA,aAAA,EAAA,MAAA,qBAAA;AAAA,EAAA,GAAA,EAAA,MAAA,WAAA;AAAA,EAAA,IAAA,EAAA,MAAA,YAAA;AAAA,EAAA,aAAA,EAAA,MAAA,qBAAA;AAAA,EAAA,UAAA,EAAA,MAAA,kBAAA;AAAA,EAAA,QAAA,EAAA,MAAA,gBAAA;AAAA,EAAA,KAAA,EAAA,MAAA;AAAA,CAAA,CAAA;ACGO,SAAS,mBAAA,CACd,UAAA,EACA,gBAAA,EACA,KAAA,EACY;AACZ,EAAA,MAAM,KACH,UAAA,CAAW,CAAA,GAAI,gBAAA,CAAiB,CAAA,IAAK,KAAK,GAAA,CAAI,KAAK,CAAA,GAAA,CACnD,UAAA,CAAW,IAAI,gBAAA,CAAiB,CAAA,IAAK,KAAK,GAAA,CAAI,KAAK,IACpD,gBAAA,CAAiB,CAAA;AACnB,EAAA,MAAM,KACH,UAAA,CAAW,CAAA,GAAI,gBAAA,CAAiB,CAAA,IAAK,KAAK,GAAA,CAAI,KAAK,CAAA,GAAA,CACnD,UAAA,CAAW,IAAI,gBAAA,CAAiB,CAAA,IAAK,KAAK,GAAA,CAAI,KAAK,IACpD,gBAAA,CAAiB,CAAA;AACnB,EAAA,OAAO,EAAE,GAAG,CAAA,EAAE;AAChB;AAEO,SAAS,UAAA,CACd,aACA,QAAA,EACyB;AACzB,EAAA,IAAI,WAAA,CAAY,SAAS,CAAA,EAAG;AAC1B,IAAA,IAAI,UAAA;AACJ,IAAA,IACE,WAAA,CAAY,CAAC,CAAA,CAAE,CAAA,KAAM,YAAY,CAAC,CAAA,CAAE,CAAA,IACpC,WAAA,CAAY,CAAC,CAAA,CAAE,CAAA,KAAM,WAAA,CAAY,CAAC,EAAE,CAAA,EACpC;AACA,MAAA,IAAI,YAAY,CAAC,CAAA,CAAE,IAAI,WAAA,CAAY,CAAC,EAAE,CAAA,EAAG;AACvC,QAAA,UAAA,GAAa,EAAE,GAAG,WAAA,CAAY,CAAC,EAAE,CAAA,EAAG,CAAA,EAAG,SAAS,MAAA,EAAO;AAAA,MACzD,CAAA,MAAO;AACL,QAAA,UAAA,GAAa,EAAE,CAAA,EAAG,WAAA,CAAY,CAAC,CAAA,CAAE,CAAA,EAAG,GAAG,CAAA,EAAE;AAAA,MAC3C;AAAA,IACF,CAAA,MAAA,IAAW,YAAY,CAAC,CAAA,CAAE,IAAI,WAAA,CAAY,CAAC,EAAE,CAAA,EAAG;AAC9C,MAAA,UAAA,GAAa;AAAA,QACX,CAAA,EAAG,CAAA;AAAA,QACH,CAAA,EAAGA,kBAAM,yBAAA,CAA0B,WAAA,CAAY,CAAC,CAAA,EAAG,WAAA,CAAY,CAAC,CAAA,EAAG;AAAA,UACjE,CAAA,EAAG,CAAA;AAAA,UACH,CAAA,EAAG,WAAA,CAAY,CAAC,CAAA,CAAE;AAAA,SACnB;AAAA,OACH;AAAA,IACF,CAAA,MAAO;AACL,MAAA,UAAA,GAAa;AAAA,QACX,GAAG,QAAA,CAAS,KAAA;AAAA,QACZ,CAAA,EAAGA,kBAAM,yBAAA,CAA0B,WAAA,CAAY,CAAC,CAAA,EAAG,WAAA,CAAY,CAAC,CAAA,EAAG;AAAA,UACjE,GAAG,QAAA,CAAS,KAAA;AAAA,UACZ,CAAA,EAAG,WAAA,CAAY,CAAC,CAAA,CAAE;AAAA,SACnB;AAAA,OACH;AAAA,IACF;AACA,IAAA,OAAO,EAAE,WAAA,EAAa,CAAC,YAAY,CAAC,CAAA,EAAG,UAAU,CAAA,EAAE;AAAA,EACrD;AACA,EAAA,OAAO,EAAC;AACV;AAEO,SAAS,WAAA,CACd,aACA,WAAA,EACQ;AACR,EAAA,MAAM,OAAO,IAAA,CAAK,GAAA,CAAI,WAAA,CAAY,CAAA,GAAI,YAAY,CAAC,CAAA;AACnD,EAAA,MAAM,OAAO,IAAA,CAAK,GAAA,CAAI,WAAA,CAAY,CAAA,GAAI,YAAY,CAAC,CAAA;AACnD,EAAA,OAAO,IAAA,CAAK,IAAA,CAAK,IAAA,GAAO,IAAA,GAAO,OAAO,IAAI,CAAA;AAC5C;;;AC3DA,IAAM,KAAA,GAAyB;AAAA,EAC7B,IAAA,EAAM,OAAA;AAAA,EACN,SAAA,EAAW,CAAA;AAAA,EACX,sBAAA,EAAwB,IAAA;AAAA,EACxB,sBAAA,EAAwB,IAAA;AAAA,EACxB,sBAAA,EAAwB,IAAA;AAAA,EACxB,kBAAA,EAAoB,CAAC,EAAE,WAAA,EAAY,KAAM;AACvC,IAAA,IAAI,WAAA,CAAY,SAAS,CAAA,EAAG;AAC1B,MAAA,MAAM,IAAA,GAAO,YAAY,CAAC,CAAA,CAAE,IAAI,WAAA,CAAY,CAAC,CAAA,CAAE,CAAA,GAAI,CAAA,GAAI,CAAA;AACvD,MAAA,MAAM,EAAA,GAAKA,kBAAM,uBAAA,CAAwB,WAAA,CAAY,CAAC,CAAA,EAAG,WAAA,CAAY,CAAC,CAAC,CAAA;AACvE,MAAA,IAAI,WAAA;AACJ,MAAA,IAAI,EAAA,EAAI;AACN,QAAA,WAAA,GAAc,KAAK,IAAA,CAAK,EAAA,CAAG,CAAC,CAAC,CAAA,GAAI,KAAK,EAAA,GAAK,IAAA;AAAA,MAC7C,CAAA,MAAO;AACL,QAAA,IAAI,YAAY,CAAC,CAAA,CAAE,IAAI,WAAA,CAAY,CAAC,EAAE,CAAA,EAAG;AACvC,UAAA,WAAA,GAAc,KAAK,EAAA,GAAK,CAAA;AAAA,QAC1B,CAAA,MAAO;AACL,UAAA,WAAA,GAAe,IAAA,CAAK,KAAK,CAAA,GAAK,CAAA;AAAA,QAChC;AAAA,MACF;AACA,MAAA,MAAM,iBAAA,GAAoB,mBAAA;AAAA,QACxB,EAAE,CAAA,EAAG,WAAA,CAAY,CAAC,CAAA,CAAE,CAAA,GAAI,CAAA,EAAG,CAAA,EAAG,WAAA,CAAY,CAAC,CAAA,CAAE,CAAA,GAAI,CAAA,EAAE;AAAA,QACnD,YAAY,CAAC,CAAA;AAAA,QACb;AAAA,OACF;AACA,MAAA,MAAM,iBAAA,GAAoB,mBAAA;AAAA,QACxB,EAAE,CAAA,EAAG,WAAA,CAAY,CAAC,CAAA,CAAE,CAAA,GAAI,CAAA,EAAG,CAAA,EAAG,WAAA,CAAY,CAAC,CAAA,CAAE,CAAA,GAAI,CAAA,EAAE;AAAA,QACnD,YAAY,CAAC,CAAA;AAAA,QACb;AAAA,OACF;AACA,MAAA,OAAO;AAAA,QACL,EAAE,IAAA,EAAM,MAAA,EAAQ,KAAA,EAAO,EAAE,aAAY,EAAE;AAAA,QACvC;AAAA,UACE,IAAA,EAAM,MAAA;AAAA,UACN,WAAA,EAAa,IAAA;AAAA,UACb,KAAA,EAAO;AAAA,YACL,aAAa,CAAC,iBAAA,EAAmB,WAAA,CAAY,CAAC,GAAG,iBAAiB;AAAA;AACpE;AACF,OACF;AAAA,IACF;AACA,IAAA,OAAO,EAAC;AAAA,EACV;AACF,CAAA;AAEA,IAAO,aAAA,GAAQ;;;AC9Cf,IAAM,MAAA,GAA0B;AAAA,EAC9B,IAAA,EAAM,QAAA;AAAA,EACN,SAAA,EAAW,CAAA;AAAA,EACX,sBAAA,EAAwB,IAAA;AAAA,EACxB,sBAAA,EAAwB,IAAA;AAAA,EACxB,sBAAA,EAAwB,IAAA;AAAA,EACxB,QAAQ,EAAE,MAAA,EAAQ,EAAE,KAAA,EAAO,4BAA2B,EAAE;AAAA,EACxD,kBAAA,EAAoB,CAAC,EAAE,WAAA,EAAY,KAAM;AACvC,IAAA,IAAI,WAAA,CAAY,SAAS,CAAA,EAAG;AAC1B,MAAA,MAAM,SAAS,WAAA,CAAY,WAAA,CAAY,CAAC,CAAA,EAAG,WAAA,CAAY,CAAC,CAAC,CAAA;AACzD,MAAA,OAAO;AAAA,QACL,IAAA,EAAM,QAAA;AAAA,QACN,OAAO,EAAE,GAAG,YAAY,CAAC,CAAA,EAAG,GAAG,MAAA,EAAO;AAAA,QACtC,MAAA,EAAQ,EAAE,KAAA,EAAO,aAAA;AAAc,OACjC;AAAA,IACF;AACA,IAAA,OAAO,EAAC;AAAA,EACV;AACF,CAAA;AAEA,IAAO,cAAA,GAAQ;;;ACrBf,IAAM,IAAA,GAAwB;AAAA,EAC5B,IAAA,EAAM,MAAA;AAAA,EACN,SAAA,EAAW,CAAA;AAAA,EACX,sBAAA,EAAwB,IAAA;AAAA,EACxB,sBAAA,EAAwB,IAAA;AAAA,EACxB,sBAAA,EAAwB,IAAA;AAAA,EACxB,QAAQ,EAAE,OAAA,EAAS,EAAE,KAAA,EAAO,4BAA2B,EAAE;AAAA,EACzD,kBAAA,EAAoB,CAAC,EAAE,WAAA,EAAY,KAAM;AACvC,IAAA,IAAI,WAAA,CAAY,SAAS,CAAA,EAAG;AAC1B,MAAA,OAAO;AAAA,QACL;AAAA,UACE,IAAA,EAAM,SAAA;AAAA,UACN,KAAA,EAAO;AAAA,YACL,WAAA,EAAa;AAAA,cACX,YAAY,CAAC,CAAA;AAAA,cACb,EAAE,CAAA,EAAG,WAAA,CAAY,CAAC,CAAA,CAAE,GAAG,CAAA,EAAG,WAAA,CAAY,CAAC,CAAA,CAAE,CAAA,EAAE;AAAA,cAC3C,YAAY,CAAC,CAAA;AAAA,cACb,EAAE,CAAA,EAAG,WAAA,CAAY,CAAC,CAAA,CAAE,GAAG,CAAA,EAAG,WAAA,CAAY,CAAC,CAAA,CAAE,CAAA;AAAE;AAC7C,WACF;AAAA,UACA,MAAA,EAAQ,EAAE,KAAA,EAAO,aAAA;AAAc;AACjC,OACF;AAAA,IACF;AACA,IAAA,OAAO,EAAC;AAAA,EACV;AACF,CAAA;AAEA,IAAO,YAAA,GAAQ;;;AC5Bf,IAAM,QAAA,GAA4B;AAAA,EAChC,IAAA,EAAM,UAAA;AAAA,EACN,SAAA,EAAW,CAAA;AAAA,EACX,sBAAA,EAAwB,IAAA;AAAA,EACxB,sBAAA,EAAwB,IAAA;AAAA,EACxB,sBAAA,EAAwB,IAAA;AAAA,EACxB,QAAQ,EAAE,OAAA,EAAS,EAAE,KAAA,EAAO,4BAA2B,EAAE;AAAA,EACzD,kBAAA,EAAoB,CAAC,EAAE,WAAA,EAAY,KAAM;AACvC,IAAA,OAAO;AAAA,MACL;AAAA,QACE,IAAA,EAAM,SAAA;AAAA,QACN,KAAA,EAAO,EAAE,WAAA,EAAY;AAAA,QACrB,MAAA,EAAQ,EAAE,KAAA,EAAO,aAAA;AAAc;AACjC,KACF;AAAA,EACF;AACF,CAAA;AAEA,IAAO,gBAAA,GAAQ;;;AClBf,IAAM,aAAA,GAAiC;AAAA,EACrC,IAAA,EAAM,eAAA;AAAA,EACN,SAAA,EAAW,CAAA;AAAA,EACX,sBAAA,EAAwB,IAAA;AAAA,EACxB,sBAAA,EAAwB,IAAA;AAAA,EACxB,sBAAA,EAAwB,IAAA;AAAA,EACxB,QAAQ,EAAE,OAAA,EAAS,EAAE,KAAA,EAAO,4BAA2B,EAAE;AAAA,EACzD,kBAAA,EAAoB,CAAC,EAAE,WAAA,EAAY,KAAM;AACvC,IAAA,IAAI,WAAA,CAAY,WAAW,CAAA,EAAG;AAC5B,MAAA,OAAO,CAAC,EAAE,IAAA,EAAM,MAAA,EAAQ,WAAA,EAAa,MAAM,KAAA,EAAO,EAAE,WAAA,EAAY,EAAG,CAAA;AAAA,IACrE;AACA,IAAA,IAAI,WAAA,CAAY,WAAW,CAAA,EAAG;AAC5B,MAAA,MAAM,UAAA,GAAa;AAAA,QACjB,CAAA,EAAG,WAAA,CAAY,CAAC,CAAA,CAAE,CAAA,IAAK,WAAA,CAAY,CAAC,CAAA,CAAE,CAAA,GAAI,WAAA,CAAY,CAAC,CAAA,CAAE,CAAA,CAAA;AAAA,QACzD,CAAA,EAAG,WAAA,CAAY,CAAC,CAAA,CAAE,CAAA,GAAI,WAAA,CAAY,CAAC,CAAA,CAAE,CAAA,GAAI,WAAA,CAAY,CAAC,CAAA,CAAE;AAAA,OAC1D;AACA,MAAA,OAAO;AAAA,QACL;AAAA,UACE,IAAA,EAAM,SAAA;AAAA,UACN,KAAA,EAAO;AAAA,YACL,WAAA,EAAa;AAAA,cACX,YAAY,CAAC,CAAA;AAAA,cACb,YAAY,CAAC,CAAA;AAAA,cACb,YAAY,CAAC,CAAA;AAAA,cACb;AAAA;AACF,WACF;AAAA,UACA,MAAA,EAAQ,EAAE,KAAA,EAAO,aAAA;AAAc;AACjC,OACF;AAAA,IACF;AACA,IAAA,OAAO,EAAC;AAAA,EACV,CAAA;AAAA,EACA,yBAAyB,CAAC,EAAE,MAAA,EAAQ,iBAAA,EAAmB,cAAa,KAAM;AACxE,IAAA,IAAI,oBAAoB,CAAA,EAAG;AACzB,MAAA,IAAI,MAAA,CAAO,CAAC,CAAA,EAAI,OAAO,CAAC,CAAA,CAAU,QAAS,YAAA,CAAqB,KAAA;AAChE,MAAA,IAAI,MAAA,CAAO,CAAC,CAAA,EAAI,OAAO,CAAC,CAAA,CAAU,QAAS,YAAA,CAAqB,KAAA;AAAA,IAClE;AAAA,EACF,CAAA;AAAA,EACA,4BAA4B,CAAC,EAAE,WAAA,EAAa,MAAA,EAAQ,cAAa,KAAM;AACrE,IAAA,IAAI,gBAAgB,CAAA,EAAG;AACrB,MAAA,IAAI,MAAA,CAAO,CAAC,CAAA,EAAI,OAAO,CAAC,CAAA,CAAU,QAAS,YAAA,CAAqB,KAAA;AAAA,IAClE;AAAA,EACF;AACF,CAAA;AAEA,IAAO,qBAAA,GAAQ;;;AC9Cf,IAAM,eAAA,GAAmC;AAAA,EACvC,IAAA,EAAM,iBAAA;AAAA,EACN,SAAA,EAAW,CAAA;AAAA,EACX,sBAAA,EAAwB,IAAA;AAAA,EACxB,sBAAA,EAAwB,IAAA;AAAA,EACxB,sBAAA,EAAwB,IAAA;AAAA,EACxB,kBAAA,EAAoB,CAAC,EAAE,WAAA,EAAY,KAAM;AACvC,IAAA,IAAI,WAAA,CAAY,SAAS,CAAA,EAAG;AAC1B,MAAA,MAAM,IAAA,GAAO,IAAA,CAAK,GAAA,CAAI,WAAA,CAAY,CAAC,EAAE,CAAA,GAAI,WAAA,CAAY,CAAC,CAAA,CAAE,CAAC,CAAA;AACzD,MAAA,MAAM,IAAA,GAAO,IAAA,CAAK,GAAA,CAAI,WAAA,CAAY,CAAC,EAAE,CAAA,GAAI,WAAA,CAAY,CAAC,CAAA,CAAE,CAAC,CAAA;AACzD,MAAA,MAAM,SAAS,IAAA,CAAK,IAAA,CAAK,IAAA,GAAO,IAAA,GAAO,OAAO,IAAI,CAAA;AAClD,MAAA,MAAM,WAAW,CAAC,KAAA,EAAO,OAAO,GAAA,EAAK,KAAA,EAAO,OAAO,CAAC,CAAA;AACpD,MAAA,MAAM,UAAyB,EAAC;AAChC,MAAA,MAAM,QAAqB,EAAC;AAC5B,MAAA,QAAA,CAAS,OAAA,CAAQ,CAAC,OAAA,KAAY;AAC5B,QAAA,MAAM,IAAI,MAAA,GAAS,OAAA;AACnB,QAAA,OAAA,CAAQ,KAAK,EAAE,GAAG,YAAY,CAAC,CAAA,EAAG,GAAG,CAAA;AACrC,QAAA,KAAA,CAAM,IAAA,CAAK;AAAA,UACT,CAAA,EAAG,WAAA,CAAY,CAAC,CAAA,CAAE,CAAA;AAAA,UAClB,CAAA,EAAG,WAAA,CAAY,CAAC,CAAA,CAAE,IAAI,CAAA,GAAI,CAAA;AAAA,UAC1B,MAAM,CAAA,EAAA,CAAI,OAAA,GAAU,GAAA,EAAK,OAAA,CAAQ,CAAC,CAAC,CAAA,CAAA;AAAA,SACpC,CAAA;AAAA,MACH,CAAC,CAAA;AACD,MAAA,OAAO;AAAA,QACL,EAAE,MAAM,QAAA,EAAU,KAAA,EAAO,SAAS,MAAA,EAAQ,EAAE,KAAA,EAAO,QAAA,EAAS,EAAE;AAAA,QAC9D,EAAE,IAAA,EAAM,MAAA,EAAQ,WAAA,EAAa,IAAA,EAAM,OAAO,KAAA;AAAM,OAClD;AAAA,IACF;AACA,IAAA,OAAO,EAAC;AAAA,EACV;AACF,CAAA;AAEA,IAAO,uBAAA,GAAQ;;;AChCf,IAAM,gBAAA,GAAoC;AAAA,EACxC,IAAA,EAAM,kBAAA;AAAA,EACN,SAAA,EAAW,CAAA;AAAA,EACX,sBAAA,EAAwB,IAAA;AAAA,EACxB,sBAAA,EAAwB,IAAA;AAAA,EACxB,sBAAA,EAAwB,IAAA;AAAA,EACxB,oBAAoB,CAAC,EAAE,WAAA,EAAa,OAAA,EAAS,OAAM,KAAM;AACvD,IAAA,MAAM,SAAA,GAAY,KAAA,CAAM,SAAA,EAAU,EAAG,cAAA,IAAkB,CAAA;AACvD,IAAA,MAAM,QAAqB,EAAC;AAC5B,IAAA,MAAM,QAAqB,EAAC;AAC5B,IAAA,IAAI,WAAA,CAAY,SAAS,CAAA,EAAG;AAC1B,MAAA,MAAM,KAAA,GACJ,WAAA,CAAY,CAAC,CAAA,CAAE,IAAI,WAAA,CAAY,CAAC,CAAA,CAAE,CAAA,GAC9B,YAAY,CAAC,CAAA,CAAE,CAAA,GACf,WAAA,CAAY,CAAC,CAAA,CAAE,CAAA;AACrB,MAAA,MAAM,QAAA,GAAW,CAAC,CAAA,EAAG,KAAA,EAAO,OAAO,GAAA,EAAK,KAAA,EAAO,OAAO,CAAC,CAAA;AACvD,MAAA,MAAM,OAAO,WAAA,CAAY,CAAC,EAAE,CAAA,GAAI,WAAA,CAAY,CAAC,CAAA,CAAE,CAAA;AAC/C,MAAA,MAAM,SAAS,OAAA,CAAQ,MAAA;AACvB,MAAA,MAAM,WAAW,MAAA,CAAO,CAAC,EAAE,KAAA,GAAQ,MAAA,CAAO,CAAC,CAAA,CAAE,KAAA;AAC7C,MAAA,QAAA,CAAS,OAAA,CAAQ,CAAC,OAAA,KAAY;AAC5B,QAAA,MAAM,CAAA,GAAI,WAAA,CAAY,CAAC,CAAA,CAAE,IAAI,IAAA,GAAO,OAAA;AACpC,QAAA,MAAM,KAAA,GAAA,CAAS,OAAO,CAAC,CAAA,CAAE,QAAQ,QAAA,GAAW,OAAA,EAAS,QAAQ,SAAS,CAAA;AACtE,QAAA,KAAA,CAAM,IAAA,CAAK;AAAA,UACT,WAAA,EAAa;AAAA,YACX,EAAE,CAAA,EAAG,WAAA,CAAY,CAAC,CAAA,CAAE,GAAG,CAAA,EAAE;AAAA,YACzB,EAAE,CAAA,EAAG,WAAA,CAAY,CAAC,CAAA,CAAE,GAAG,CAAA;AAAE;AAC3B,SACD,CAAA;AACD,QAAA,KAAA,CAAM,IAAA,CAAK;AAAA,UACT,CAAA,EAAG,KAAA;AAAA,UACH,CAAA;AAAA,UACA,IAAA,EAAM,GAAG,KAAK,CAAA,EAAA,EAAA,CAAM,UAAU,GAAA,EAAK,OAAA,CAAQ,CAAC,CAAC,CAAA,EAAA,CAAA;AAAA,UAC7C,QAAA,EAAU;AAAA,SACX,CAAA;AAAA,MACH,CAAC,CAAA;AAAA,IACH;AACA,IAAA,OAAO;AAAA,MACL,EAAE,IAAA,EAAM,MAAA,EAAQ,KAAA,EAAO,KAAA,EAAM;AAAA,MAC7B,EAAE,IAAA,EAAM,MAAA,EAAQ,WAAA,EAAa,IAAA,EAAM,OAAO,KAAA;AAAM,KAClD;AAAA,EACF;AACF,CAAA;AAEA,IAAO,wBAAA,GAAQ;ACzCf,IAAM,eAAA,GAAmC;AAAA,EACvC,IAAA,EAAM,iBAAA;AAAA,EACN,SAAA,EAAW,CAAA;AAAA,EACX,sBAAA,EAAwB,IAAA;AAAA,EACxB,sBAAA,EAAwB,IAAA;AAAA,EACxB,sBAAA,EAAwB,IAAA;AAAA,EACxB,kBAAA,EAAoB,CAAC,EAAE,WAAA,EAAa,UAAS,KAAM;AACjD,IAAA,IAAI,WAAA,CAAY,SAAS,CAAA,EAAG;AAC1B,MAAA,MAAM,WAAA,GACJ,WAAA,CAAY,WAAA,CAAY,CAAC,CAAA,EAAG,WAAA,CAAY,CAAC,CAAC,CAAA,GAAI,IAAA,CAAK,IAAA,CAAK,EAAE,CAAA;AAC5D,MAAA,MAAM,IAAA,GAAO,YAAY,CAAC,CAAA,CAAE,IAAI,WAAA,CAAY,CAAC,CAAA,CAAE,CAAA,GAAI,CAAA,GAAI,CAAA;AACvD,MAAA,MAAM,EAAA,GAAKA,kBAAM,uBAAA,CAAwB,WAAA,CAAY,CAAC,CAAA,EAAG,WAAA,CAAY,CAAC,CAAC,CAAA;AACvE,MAAA,IAAI,WAAA;AACJ,MAAA,IAAI,EAAA,EAAI;AACN,QAAA,WAAA,GAAc,KAAK,IAAA,CAAK,EAAA,CAAG,CAAC,CAAC,CAAA,GAAI,KAAK,EAAA,GAAK,IAAA;AAAA,MAC7C,CAAA,MAAO;AACL,QAAA,IAAI,YAAY,CAAC,CAAA,CAAE,IAAI,WAAA,CAAY,CAAC,EAAE,CAAA,EAAG;AACvC,UAAA,WAAA,GAAc,KAAK,EAAA,GAAK,CAAA;AAAA,QAC1B,CAAA,MAAO;AACL,UAAA,WAAA,GAAe,IAAA,CAAK,KAAK,CAAA,GAAK,CAAA;AAAA,QAChC;AAAA,MACF;AACA,MAAA,MAAM,iBAAA,GAAoB,mBAAA;AAAA,QACxB,EAAE,CAAA,EAAG,WAAA,CAAY,CAAC,CAAA,CAAE,CAAA,GAAI,WAAA,EAAa,CAAA,EAAG,WAAA,CAAY,CAAC,CAAA,CAAE,CAAA,EAAE;AAAA,QACzD,YAAY,CAAC,CAAA;AAAA,QACb;AAAA,OACF;AACA,MAAA,MAAM,iBAAA,GAAoB,mBAAA;AAAA,QACxB;AAAA,UACE,CAAA,EAAG,WAAA,CAAY,CAAC,CAAA,CAAE,CAAA,GAAI,WAAA;AAAA,UACtB,CAAA,EAAG,WAAA,CAAY,CAAC,CAAA,CAAE,CAAA,GAAI;AAAA,SACxB;AAAA,QACA,YAAY,CAAC,CAAA;AAAA,QACb;AAAA,OACF;AACA,MAAA,MAAM,IAAA,GAAO;AAAA,QACX;AAAA,UACE,GAAG,iBAAA;AAAA,UACH,CAAA,EAAG,WAAA;AAAA,UACH,UAAA,EAAY,WAAA;AAAA,UACZ,QAAA,EAAU,WAAA,GAAc,IAAA,CAAK,EAAA,GAAK;AAAA,SACpC;AAAA,QACA;AAAA,UACE,GAAG,iBAAA;AAAA,UACH,GAAG,WAAA,GAAc,CAAA;AAAA,UACjB,UAAA,EAAY,WAAA,GAAc,IAAA,CAAK,EAAA,GAAK,CAAA;AAAA,UACpC,QAAA,EAAU,cAAc,IAAA,CAAK;AAAA;AAC/B,OACF;AACA,MAAA,IAAI,CAAA,GAAI,WAAA,CAAY,CAAC,CAAA,CAAE,CAAA,GAAI,WAAA;AAC3B,MAAA,IAAI,CAAA,GAAI,WAAA,CAAY,CAAC,CAAA,CAAE,CAAA,GAAI,WAAA;AAC3B,MAAA,KAAA,IAAS,CAAA,GAAI,CAAA,EAAG,CAAA,GAAI,CAAA,EAAG,CAAA,EAAA,EAAK;AAC1B,QAAA,MAAM,CAAA,GAAI,KAAK,CAAA,GAAI,CAAC,EAAE,CAAA,GAAI,IAAA,CAAK,CAAA,GAAI,CAAC,CAAA,CAAE,CAAA;AACtC,QAAA,IAAI,UAAA,GAAa,CAAA;AACjB,QAAA,QAAQ,IAAI,CAAA;AAAG,UACb,KAAK,CAAA;AACH,YAAA,UAAA,GAAa,WAAA;AACb,YAAA,CAAA,IAAK,IAAA,CAAK,CAAA,GAAI,CAAC,CAAA,CAAE,CAAA;AACjB,YAAA;AAAA,UACF,KAAK,CAAA;AACH,YAAA,UAAA,GAAa,WAAA,GAAc,KAAK,EAAA,GAAK,CAAA;AACrC,YAAA,CAAA,IAAK,IAAA,CAAK,CAAA,GAAI,CAAC,CAAA,CAAE,CAAA;AACjB,YAAA;AAAA,UACF,KAAK,CAAA;AACH,YAAA,UAAA,GAAa,cAAc,IAAA,CAAK,EAAA;AAChC,YAAA,CAAA,IAAK,IAAA,CAAK,CAAA,GAAI,CAAC,CAAA,CAAE,CAAA;AACjB,YAAA;AAAA,UACF,KAAK,CAAA;AACH,YAAA,UAAA,GAAa,WAAA,GAAe,IAAA,CAAK,EAAA,GAAK,CAAA,GAAK,CAAA;AAC3C,YAAA,CAAA,IAAK,IAAA,CAAK,CAAA,GAAI,CAAC,CAAA,CAAE,CAAA;AACjB,YAAA;AAAA;AAEJ,QAAA,MAAM,QAAA,GAAW,UAAA,GAAa,IAAA,CAAK,EAAA,GAAK,CAAA;AACxC,QAAA,MAAM,gBAAA,GAAmB,mBAAA;AAAA,UACvB,EAAE,GAAG,CAAA,EAAE;AAAA,UACP,YAAY,CAAC,CAAA;AAAA,UACb;AAAA,SACF;AACA,QAAA,IAAA,CAAK,KAAK,EAAE,GAAG,kBAAkB,CAAA,EAAG,UAAA,EAAY,UAAU,CAAA;AAAA,MAC5D;AACA,MAAA,OAAO;AAAA,QACL,EAAE,IAAA,EAAM,KAAA,EAAO,KAAA,EAAO,IAAA,EAAK;AAAA,QAC3B,EAAE,IAAA,EAAM,MAAA,EAAQ,OAAO,UAAA,CAAW,WAAA,EAAa,QAAQ,CAAA;AAAE,OAC3D;AAAA,IACF;AACA,IAAA,OAAO,EAAC;AAAA,EACV;AACF,CAAA;AAEA,IAAO,uBAAA,GAAQ;;;AC1Ff,IAAM,2BAAA,GAA+C;AAAA,EACnD,IAAA,EAAM,6BAAA;AAAA,EACN,SAAA,EAAW,CAAA;AAAA,EACX,sBAAA,EAAwB,IAAA;AAAA,EACxB,sBAAA,EAAwB,IAAA;AAAA,EACxB,sBAAA,EAAwB,IAAA;AAAA,EACxB,kBAAA,EAAoB,CAAC,EAAE,WAAA,EAAa,UAAS,KAAM;AACjD,IAAA,MAAM,SAAsB,EAAC;AAC7B,IAAA,IAAI,SAAsB,EAAC;AAC3B,IAAA,MAAM,QAAqB,EAAC;AAC5B,IAAA,IAAI,WAAA,CAAY,SAAS,CAAA,EAAG;AAC1B,MAAA,MAAM,OAAA,GAAU,YAAY,CAAC,CAAA,CAAE,IAAI,WAAA,CAAY,CAAC,CAAA,CAAE,CAAA,GAAI,GAAA,GAAM,CAAA;AAC5D,MAAA,MAAM,OAAA,GAAU,YAAY,CAAC,CAAA,CAAE,IAAI,WAAA,CAAY,CAAC,CAAA,CAAE,CAAA,GAAI,EAAA,GAAK,EAAA;AAC3D,MAAA,MAAM,YAAY,WAAA,CAAY,CAAC,EAAE,CAAA,GAAI,WAAA,CAAY,CAAC,CAAA,CAAE,CAAA;AACpD,MAAA,MAAM,YAAY,WAAA,CAAY,CAAC,EAAE,CAAA,GAAI,WAAA,CAAY,CAAC,CAAA,CAAE,CAAA;AACpD,MAAA,MAAM,QAAA,GAAW,CAAC,CAAA,EAAG,IAAA,EAAM,OAAO,GAAA,EAAK,KAAA,EAAO,MAAM,CAAC,CAAA;AACrD,MAAA,QAAA,CAAS,OAAA,CAAQ,CAAC,OAAA,KAAY;AAC5B,QAAA,MAAM,CAAA,GAAI,WAAA,CAAY,CAAC,CAAA,CAAE,IAAI,SAAA,GAAY,OAAA;AACzC,QAAA,MAAM,CAAA,GAAI,WAAA,CAAY,CAAC,CAAA,CAAE,IAAI,SAAA,GAAY,OAAA;AACzC,QAAA,MAAA,CAAO,IAAA,CAAK;AAAA,UACV,WAAA,EAAa;AAAA,YACX,EAAE,CAAA,EAAG,CAAA,EAAG,WAAA,CAAY,CAAC,EAAE,CAAA,EAAE;AAAA,YACzB,EAAE,CAAA,EAAG,CAAA,EAAG,WAAA,CAAY,CAAC,EAAE,CAAA;AAAE;AAC3B,SACD,CAAA;AACD,QAAA,MAAA,CAAO,IAAA,CAAK;AAAA,UACV,WAAA,EAAa;AAAA,YACX,EAAE,CAAA,EAAG,WAAA,CAAY,CAAC,CAAA,CAAE,GAAG,CAAA,EAAE;AAAA,YACzB,EAAE,CAAA,EAAG,WAAA,CAAY,CAAC,CAAA,CAAE,GAAG,CAAA;AAAE;AAC3B,SACD,CAAA;AACD,QAAA,MAAA,GAAS,MAAA,CAAO,MAAA;AAAA,UACd,UAAA;AAAA,YACE,CAAC,WAAA,CAAY,CAAC,CAAA,EAAG,EAAE,CAAA,EAAG,CAAA,EAAG,WAAA,CAAY,CAAC,CAAA,CAAE,CAAA,EAAG,CAAA;AAAA,YAC3C;AAAA;AACF,SACF;AACA,QAAA,MAAA,GAAS,MAAA,CAAO,MAAA;AAAA,UACd,UAAA;AAAA,YACE,CAAC,WAAA,CAAY,CAAC,CAAA,EAAG,EAAE,CAAA,EAAG,WAAA,CAAY,CAAC,CAAA,CAAE,CAAA,EAAG,CAAA,EAAG,CAAA;AAAA,YAC3C;AAAA;AACF,SACF;AACA,QAAA,KAAA,CAAM,OAAA,CAAQ;AAAA,UACZ,CAAA,EAAG,WAAA,CAAY,CAAC,CAAA,CAAE,CAAA,GAAI,OAAA;AAAA,UACtB,GAAG,CAAA,GAAI,EAAA;AAAA,UACP,IAAA,EAAM,CAAA,EAAG,OAAA,CAAQ,OAAA,CAAQ,CAAC,CAAC,CAAA;AAAA,SAC5B,CAAA;AACD,QAAA,KAAA,CAAM,OAAA,CAAQ;AAAA,UACZ,GAAG,CAAA,GAAI,EAAA;AAAA,UACP,CAAA,EAAG,WAAA,CAAY,CAAC,CAAA,CAAE,CAAA,GAAI,OAAA;AAAA,UACtB,IAAA,EAAM,CAAA,EAAG,OAAA,CAAQ,OAAA,CAAQ,CAAC,CAAC,CAAA;AAAA,SAC5B,CAAA;AAAA,MACH,CAAC,CAAA;AAAA,IACH;AACA,IAAA,OAAO;AAAA,MACL,EAAE,IAAA,EAAM,MAAA,EAAQ,KAAA,EAAO,MAAA,EAAO;AAAA,MAC9B,EAAE,IAAA,EAAM,MAAA,EAAQ,KAAA,EAAO,MAAA,EAAO;AAAA,MAC9B,EAAE,IAAA,EAAM,MAAA,EAAQ,WAAA,EAAa,IAAA,EAAM,OAAO,KAAA;AAAM,KAClD;AAAA,EACF;AACF,CAAA;AAEA,IAAO,mCAAA,GAAQ;;;AChEf,IAAM,kBAAA,GAAsC;AAAA,EAC1C,IAAA,EAAM,oBAAA;AAAA,EACN,SAAA,EAAW,CAAA;AAAA,EACX,sBAAA,EAAwB,IAAA;AAAA,EACxB,sBAAA,EAAwB,IAAA;AAAA,EACxB,sBAAA,EAAwB,IAAA;AAAA,EACxB,oBAAoB,CAAC,EAAE,WAAA,EAAa,OAAA,EAAS,OAAM,KAAM;AACvD,IAAA,MAAM,SAAA,GAAY,KAAA,CAAM,SAAA,EAAU,EAAG,cAAA,IAAkB,CAAA;AACvD,IAAA,MAAM,UAAuB,EAAC;AAC9B,IAAA,MAAM,QAAqB,EAAC;AAC5B,IAAA,IAAI,WAAA,CAAY,SAAS,CAAA,EAAG;AAC1B,MAAA,MAAM,SAAS,OAAA,CAAQ,MAAA;AACvB,MAAA,MAAM,WAAW,MAAA,CAAO,CAAC,EAAE,KAAA,GAAQ,MAAA,CAAO,CAAC,CAAA,CAAE,KAAA;AAC7C,MAAA,MAAM,OAAO,WAAA,CAAY,CAAC,EAAE,CAAA,GAAI,WAAA,CAAY,CAAC,CAAA,CAAE,CAAA;AAC/C,MAAA,MAAM,QAAA,GAAW,CAAC,CAAA,EAAG,KAAA,EAAO,OAAO,GAAA,EAAK,KAAA,EAAO,OAAO,CAAC,CAAA;AACvD,MAAA,MAAM,KAAA,GACJ,WAAA,CAAY,CAAC,CAAA,CAAE,IAAI,WAAA,CAAY,CAAC,CAAA,CAAE,CAAA,GAC9B,YAAY,CAAC,CAAA,CAAE,CAAA,GACf,WAAA,CAAY,CAAC,CAAA,CAAE,CAAA;AACrB,MAAA,QAAA,CAAS,OAAA,CAAQ,CAAC,OAAA,KAAY;AAC5B,QAAA,MAAM,CAAA,GAAI,WAAA,CAAY,CAAC,CAAA,CAAE,IAAI,IAAA,GAAO,OAAA;AACpC,QAAA,MAAM,KAAA,GAAA,CAAS,OAAO,CAAC,CAAA,CAAE,QAAQ,QAAA,GAAW,OAAA,EAAS,QAAQ,SAAS,CAAA;AACtE,QAAA,OAAA,CAAQ,IAAA,CAAK;AAAA,UACX,WAAA,EAAa;AAAA,YACX,EAAE,CAAA,EAAG,WAAA,CAAY,CAAC,CAAA,CAAE,GAAG,CAAA,EAAE;AAAA,YACzB,EAAE,CAAA,EAAG,WAAA,CAAY,CAAC,CAAA,CAAE,GAAG,CAAA;AAAE;AAC3B,SACD,CAAA;AACD,QAAA,KAAA,CAAM,IAAA,CAAK;AAAA,UACT,CAAA,EAAG,KAAA;AAAA,UACH,CAAA;AAAA,UACA,IAAA,EAAM,GAAG,KAAK,CAAA,EAAA,EAAA,CAAM,UAAU,GAAA,EAAK,OAAA,CAAQ,CAAC,CAAC,CAAA,EAAA,CAAA;AAAA,UAC7C,QAAA,EAAU;AAAA,SACX,CAAA;AAAA,MACH,CAAC,CAAA;AAAA,IACH;AACA,IAAA,OAAO;AAAA,MACL;AAAA,QACE,IAAA,EAAM,MAAA;AAAA,QACN,KAAA,EAAO,EAAE,WAAA,EAAY;AAAA,QACrB,MAAA,EAAQ,EAAE,KAAA,EAAO,QAAA;AAAS,OAC5B;AAAA,MACA,EAAE,IAAA,EAAM,MAAA,EAAQ,KAAA,EAAO,OAAA,EAAQ;AAAA,MAC/B,EAAE,IAAA,EAAM,MAAA,EAAQ,WAAA,EAAa,IAAA,EAAM,OAAO,KAAA;AAAM,KAClD;AAAA,EACF;AACF,CAAA;AAEA,IAAO,0BAAA,GAAQ;;;AChDf,IAAM,cAAA,GAAkC;AAAA,EACtC,IAAA,EAAM,gBAAA;AAAA,EACN,SAAA,EAAW,CAAA;AAAA,EACX,sBAAA,EAAwB,IAAA;AAAA,EACxB,sBAAA,EAAwB,IAAA;AAAA,EACxB,sBAAA,EAAwB,IAAA;AAAA,EACxB,kBAAA,EAAoB,CAAC,EAAE,WAAA,EAAa,UAAS,KAAW;AACtD,IAAA,IAAI,WAAA,CAAY,SAAS,CAAA,EAAG;AAC1B,MAAA,MAAM,QAAe,EAAC;AACtB,MAAA,MAAM,QAAe,EAAC;AACtB,MAAA,MAAM,EAAA,GAAK,WAAA,CAAY,CAAC,CAAA,CAAE,CAAA;AAC1B,MAAA,MAAM,KAAK,QAAA,CAAS,KAAA;AACpB,MAAA,MAAM,EAAA,GAAK,WAAA,CAAY,CAAC,CAAA,CAAE,CAAA;AAC1B,MAAA,MAAM,EAAA,GAAK,WAAA,CAAY,CAAC,CAAA,CAAE,CAAA;AAC1B,MAAA,MAAM,OAAO,EAAA,GAAK,EAAA;AAClB,MAAA,MAAM,MAAA,GAAS;AAAA,QACb,EAAE,KAAA,EAAO,CAAA,EAAG,IAAA,EAAM,WAAA,EAAY;AAAA,QAC9B,EAAE,KAAA,EAAO,KAAA,EAAO,IAAA,EAAM,eAAA,EAAgB;AAAA,QACtC,EAAE,KAAA,EAAO,KAAA,EAAO,IAAA,EAAM,eAAA,EAAgB;AAAA,QACtC,EAAE,KAAA,EAAO,GAAA,EAAK,IAAA,EAAM,aAAA,EAAc;AAAA,QAClC,EAAE,KAAA,EAAO,KAAA,EAAO,IAAA,EAAM,eAAA,EAAgB;AAAA,QACtC,EAAE,KAAA,EAAO,KAAA,EAAO,IAAA,EAAM,eAAA,EAAgB;AAAA,QACtC,EAAE,KAAA,EAAO,CAAA,EAAG,IAAA,EAAM,YAAA;AAAa,OACjC;AACA,MAAA,MAAA,CAAO,OAAA,CAAQ,CAAC,CAAA,KAAM;AACpB,QAAA,MAAM,CAAA,GAAI,EAAA,GAAK,IAAA,GAAO,CAAA,CAAE,KAAA;AACxB,QAAA,KAAA,CAAM,IAAA,CAAK,EAAE,WAAA,EAAa,CAAC,EAAE,CAAA,EAAG,EAAA,EAAI,CAAA,EAAE,EAAG,EAAE,CAAA,EAAG,EAAA,EAAI,CAAA,EAAG,GAAG,CAAA;AACxD,QAAA,KAAA,CAAM,IAAA,CAAK;AAAA,UACT,CAAA,EAAG,EAAA;AAAA,UACH,CAAA;AAAA,UACA,MAAM,CAAA,CAAE,IAAA;AAAA,UACR,KAAA,EAAO,MAAA;AAAA,UACP,QAAA,EAAU;AAAA,SACX,CAAA;AAAA,MACH,CAAC,CAAA;AACD,MAAA,OAAO;AAAA,QACL,EAAE,IAAA,EAAM,MAAA,EAAQ,KAAA,EAAO,KAAA,EAAM;AAAA,QAC7B,EAAE,IAAA,EAAM,MAAA,EAAQ,KAAA,EAAO,KAAA;AAAM,OAC/B;AAAA,IACF;AACA,IAAA,OAAO,EAAC;AAAA,EACV;AACF,CAAA;AAEA,IAAO,sBAAA,GAAQ;;;AC5Cf,IAAM,OAAA,GAA2B;AAAA,EAC/B,IAAA,EAAM,SAAA;AAAA,EACN,SAAA,EAAW,CAAA;AAAA,EACX,sBAAA,EAAwB,IAAA;AAAA,EACxB,sBAAA,EAAwB,IAAA;AAAA,EACxB,sBAAA,EAAwB,IAAA;AAAA,EACxB,QAAQ,EAAE,OAAA,EAAS,EAAE,KAAA,EAAO,4BAA2B,EAAE;AAAA,EACzD,kBAAA,EAAoB,CAAC,EAAE,WAAA,EAAY,KAAM;AACvC,IAAA,IAAI,WAAA,CAAY,SAAS,CAAA,EAAG;AAC1B,MAAA,MAAM,WAAA,GAAA,CAAe,YAAY,CAAC,CAAA,CAAE,IAAI,WAAA,CAAY,CAAC,EAAE,CAAA,IAAK,CAAA;AAC5D,MAAA,MAAM,OAAO,WAAA,CAAY,CAAC,EAAE,CAAA,GAAI,WAAA,CAAY,CAAC,CAAA,CAAE,CAAA;AAC/C,MAAA,MAAM,WAAA,GAAc;AAAA,QAClB;AAAA,UACE,WAAA,EAAa;AAAA,YACX,YAAY,CAAC,CAAA;AAAA,YACb,EAAE,CAAA,EAAG,WAAA,CAAY,CAAC,CAAA,CAAE,CAAA,EAAG,CAAA,EAAG,WAAA,CAAY,CAAC,CAAA,CAAE,CAAA,GAAI,WAAA;AAAY;AAC3D,SACF;AAAA,QACA;AAAA,UACE,WAAA,EAAa;AAAA,YACX,YAAY,CAAC,CAAA;AAAA,YACb,EAAE,CAAA,EAAG,WAAA,CAAY,CAAC,CAAA,CAAE,CAAA,EAAG,CAAA,EAAG,WAAA,CAAY,CAAC,CAAA,CAAE,CAAA,GAAI,WAAA,GAAc,CAAA;AAAE;AAC/D,SACF;AAAA,QACA;AAAA,UACE,WAAA,EAAa;AAAA,YACX,EAAE,CAAA,EAAG,WAAA,CAAY,CAAC,CAAA,CAAE,GAAG,CAAA,EAAG,WAAA,CAAY,CAAC,CAAA,CAAE,CAAA,EAAE;AAAA,YAC3C,EAAE,CAAA,EAAG,WAAA,CAAY,CAAC,CAAA,CAAE,CAAA,EAAG,CAAA,EAAG,WAAA,CAAY,CAAC,CAAA,CAAE,CAAA,GAAI,WAAA;AAAY;AAC3D,SACF;AAAA,QACA;AAAA,UACE,WAAA,EAAa;AAAA,YACX,EAAE,CAAA,EAAG,WAAA,CAAY,CAAC,CAAA,CAAE,GAAG,CAAA,EAAG,WAAA,CAAY,CAAC,CAAA,CAAE,CAAA,EAAE;AAAA,YAC3C,EAAE,CAAA,EAAG,WAAA,CAAY,CAAC,CAAA,CAAE,CAAA,EAAG,CAAA,EAAG,WAAA,CAAY,CAAC,CAAA,CAAE,CAAA,GAAI,WAAA,GAAc,CAAA;AAAE;AAC/D,SACF;AAAA,QACA;AAAA,UACE,WAAA,EAAa;AAAA,YACX,EAAE,GAAG,WAAA,CAAY,CAAC,CAAA,EAAE;AAAA,YACpB,EAAE,CAAA,EAAG,WAAA,CAAY,CAAC,CAAA,CAAE,CAAA,GAAI,IAAA,GAAO,KAAA,EAAO,CAAA,EAAG,WAAA,CAAY,CAAC,CAAA,CAAE,CAAA;AAAE;AAC5D,SACF;AAAA,QACA;AAAA,UACE,WAAA,EAAa;AAAA,YACX,EAAE,GAAG,WAAA,CAAY,CAAC,CAAA,EAAE;AAAA,YACpB,EAAE,CAAA,EAAG,WAAA,CAAY,CAAC,CAAA,CAAE,CAAA,GAAI,IAAA,GAAO,GAAA,EAAK,CAAA,EAAG,WAAA,CAAY,CAAC,CAAA,CAAE,CAAA;AAAE;AAC1D,SACF;AAAA,QACA;AAAA,UACE,WAAA,EAAa;AAAA,YACX,EAAE,CAAA,EAAG,WAAA,CAAY,CAAC,CAAA,CAAE,GAAG,CAAA,EAAG,WAAA,CAAY,CAAC,CAAA,CAAE,CAAA,EAAE;AAAA,YAC3C,EAAE,CAAA,EAAG,WAAA,CAAY,CAAC,CAAA,CAAE,CAAA,GAAI,IAAA,GAAO,KAAA,EAAO,CAAA,EAAG,WAAA,CAAY,CAAC,CAAA,CAAE,CAAA;AAAE;AAC5D,SACF;AAAA,QACA;AAAA,UACE,WAAA,EAAa;AAAA,YACX,EAAE,CAAA,EAAG,WAAA,CAAY,CAAC,CAAA,CAAE,GAAG,CAAA,EAAG,WAAA,CAAY,CAAC,CAAA,CAAE,CAAA,EAAE;AAAA,YAC3C,EAAE,CAAA,EAAG,WAAA,CAAY,CAAC,CAAA,CAAE,CAAA,GAAI,IAAA,GAAO,GAAA,EAAK,CAAA,EAAG,WAAA,CAAY,CAAC,CAAA,CAAE,CAAA;AAAE;AAC1D;AACF,OACF;AACA,MAAA,MAAM,UAAA,GAAa;AAAA,QACjB,EAAE,aAAa,CAAC,WAAA,CAAY,CAAC,CAAA,EAAG,WAAA,CAAY,CAAC,CAAC,CAAA,EAAE;AAAA,QAChD;AAAA,UACE,WAAA,EAAa;AAAA,YACX,EAAE,CAAA,EAAG,WAAA,CAAY,CAAC,CAAA,CAAE,GAAG,CAAA,EAAG,WAAA,CAAY,CAAC,CAAA,CAAE,CAAA,EAAE;AAAA,YAC3C,EAAE,CAAA,EAAG,WAAA,CAAY,CAAC,CAAA,CAAE,GAAG,CAAA,EAAG,WAAA,CAAY,CAAC,CAAA,CAAE,CAAA;AAAE;AAC7C;AACF,OACF;AACA,MAAA,OAAO;AAAA,QACL;AAAA,UACE,IAAA,EAAM,MAAA;AAAA,UACN,KAAA,EAAO;AAAA,YACL;AAAA,cACE,WAAA,EAAa;AAAA,gBACX,YAAY,CAAC,CAAA;AAAA,gBACb,EAAE,CAAA,EAAG,WAAA,CAAY,CAAC,CAAA,CAAE,GAAG,CAAA,EAAG,WAAA,CAAY,CAAC,CAAA,CAAE,CAAA;AAAE;AAC7C,aACF;AAAA,YACA;AAAA,cACE,WAAA,EAAa;AAAA,gBACX,EAAE,CAAA,EAAG,WAAA,CAAY,CAAC,CAAA,CAAE,GAAG,CAAA,EAAG,WAAA,CAAY,CAAC,CAAA,CAAE,CAAA,EAAE;AAAA,gBAC3C,YAAY,CAAC;AAAA;AACf,aACF;AAAA,YACA;AAAA,cACE,WAAA,EAAa;AAAA,gBACX,YAAY,CAAC,CAAA;AAAA,gBACb,EAAE,CAAA,EAAG,WAAA,CAAY,CAAC,CAAA,CAAE,GAAG,CAAA,EAAG,WAAA,CAAY,CAAC,CAAA,CAAE,CAAA;AAAE;AAC7C,aACF;AAAA,YACA;AAAA,cACE,WAAA,EAAa;AAAA,gBACX,EAAE,CAAA,EAAG,WAAA,CAAY,CAAC,CAAA,CAAE,GAAG,CAAA,EAAG,WAAA,CAAY,CAAC,CAAA,CAAE,CAAA,EAAE;AAAA,gBAC3C,YAAY,CAAC;AAAA;AACf;AACF;AACF,SACF;AAAA,QACA;AAAA,UACE,IAAA,EAAM,SAAA;AAAA,UACN,WAAA,EAAa,IAAA;AAAA,UACb,KAAA,EAAO;AAAA,YACL,WAAA,EAAa;AAAA,cACX,YAAY,CAAC,CAAA;AAAA,cACb,EAAE,CAAA,EAAG,WAAA,CAAY,CAAC,CAAA,CAAE,GAAG,CAAA,EAAG,WAAA,CAAY,CAAC,CAAA,CAAE,CAAA,EAAE;AAAA,cAC3C,YAAY,CAAC,CAAA;AAAA,cACb,EAAE,CAAA,EAAG,WAAA,CAAY,CAAC,CAAA,CAAE,GAAG,CAAA,EAAG,WAAA,CAAY,CAAC,CAAA,CAAE,CAAA;AAAE;AAC7C,WACF;AAAA,UACA,MAAA,EAAQ,EAAE,KAAA,EAAO,MAAA;AAAO,SAC1B;AAAA,QACA,EAAE,MAAM,MAAA,EAAQ,KAAA,EAAO,aAAa,MAAA,EAAQ,EAAE,KAAA,EAAO,QAAA,EAAS,EAAE;AAAA,QAChE,EAAE,IAAA,EAAM,MAAA,EAAQ,KAAA,EAAO,UAAA;AAAW,OACpC;AAAA,IACF;AACA,IAAA,OAAO,EAAC;AAAA,EACV;AACF,CAAA;AAEA,IAAO,eAAA,GAAQ;;;ACzHf,IAAM,OAAA,GAA2B;AAAA,EAC/B,IAAA,EAAM,SAAA;AAAA,EACN,SAAA,EAAW,CAAA;AAAA,EACX,sBAAA,EAAwB,IAAA;AAAA,EACxB,sBAAA,EAAwB,IAAA;AAAA,EACxB,sBAAA,EAAwB,IAAA;AAAA,EACxB,kBAAA,EAAoB,CAAC,EAAE,WAAA,EAAa,UAAS,KAAW;AACtD,IAAA,IAAI,WAAA,CAAY,SAAS,CAAA,EAAG;AAC1B,MAAA,MAAM,EAAA,GAAK,YAAY,CAAC,CAAA;AACxB,MAAA,MAAM,EAAA,GAAK,WAAA,CAAY,CAAC,CAAA,IAAK,EAAA;AAC7B,MAAA,MAAM,QAAe,EAAC;AAEtB,MAAA,MAAM,EAAA,GAAK,EAAA,CAAG,CAAA,GAAI,EAAA,CAAG,CAAA;AACrB,MAAA,MAAM,EAAA,GAAK,EAAA,CAAG,CAAA,GAAI,EAAA,CAAG,CAAA;AAErB,MAAA,MAAM,MAAA,GAAS,CAAC,CAAA,EAAG,CAAA,EAAG,CAAA,EAAG,GAAG,CAAA,EAAG,GAAA,EAAK,KAAA,EAAO,IAAA,EAAM,KAAK,CAAA;AAEtD,MAAA,MAAA,CAAO,OAAA,CAAQ,CAAC,KAAA,KAAU;AACxB,QAAA,MAAM,UAAU,QAAA,CAAS,KAAA;AACzB,QAAA,MAAM,OAAA,GACJ,GAAG,CAAA,GAAI,EAAA,IAAM,UAAU,OAAA,GAAU,EAAA,CAAG,MAAM,EAAA,IAAM,CAAA,CAAA,CAAA,CAAA;AAClD,QAAA,KAAA,CAAM,IAAA,CAAK,EAAE,WAAA,EAAa,CAAC,EAAA,EAAI,EAAE,CAAA,EAAG,OAAA,EAAS,CAAA,EAAG,OAAA,EAAS,CAAA,EAAG,CAAA;AAAA,MAC9D,CAAC,CAAA;AAED,MAAA,OAAO,CAAC,EAAE,IAAA,EAAM,MAAA,EAAQ,KAAA,EAAO,OAAO,CAAA;AAAA,IACxC;AACA,IAAA,OAAO,EAAC;AAAA,EACV;AACF,CAAA;AAEA,IAAO,eAAA,GAAQ;;;AC9Bf,IAAM,UAAA,GAA8B;AAAA,EAClC,IAAA,EAAM,YAAA;AAAA,EACN,SAAA,EAAW,CAAA;AAAA,EACX,sBAAA,EAAwB,IAAA;AAAA,EACxB,sBAAA,EAAwB,IAAA;AAAA,EACxB,sBAAA,EAAwB,IAAA;AAAA,EACxB,kBAAA,EAAoB,CAAC,EAAE,WAAA,EAAY,KAAM;AACvC,IAAA,MAAM,KAAA,GAAQ,WAAA,CAAY,GAAA,CAAI,CAAC,YAAY,CAAA,MAAO;AAAA,MAChD,GAAG,UAAA;AAAA,MACH,IAAA,EAAM,IAAI,CAAC,CAAA,CAAA,CAAA;AAAA,MACX,QAAA,EAAU;AAAA,KACZ,CAAE,CAAA;AACF,IAAA,OAAO;AAAA,MACL,EAAE,IAAA,EAAM,MAAA,EAAQ,KAAA,EAAO,EAAE,aAAY,EAAE;AAAA,MACvC,EAAE,IAAA,EAAM,MAAA,EAAQ,WAAA,EAAa,IAAA,EAAM,OAAO,KAAA;AAAM,KAClD;AAAA,EACF;AACF,CAAA;AAEA,IAAO,kBAAA,GAAQ;;;ACnBf,IAAM,SAAA,GAA6B;AAAA,EACjC,IAAA,EAAM,WAAA;AAAA,EACN,SAAA,EAAW,CAAA;AAAA,EACX,sBAAA,EAAwB,IAAA;AAAA,EACxB,sBAAA,EAAwB,IAAA;AAAA,EACxB,sBAAA,EAAwB,IAAA;AAAA,EACxB,kBAAA,EAAoB,CAAC,EAAE,WAAA,EAAY,KAAM;AACvC,IAAA,MAAM,KAAA,GAAQ,WAAA,CAAY,GAAA,CAAI,CAAC,YAAY,CAAA,MAAO;AAAA,MAChD,GAAG,UAAA;AAAA,MACH,IAAA,EAAM,IAAI,CAAC,CAAA,CAAA,CAAA;AAAA,MACX,QAAA,EAAU;AAAA,KACZ,CAAE,CAAA;AACF,IAAA,OAAO;AAAA,MACL,EAAE,IAAA,EAAM,MAAA,EAAQ,KAAA,EAAO,EAAE,aAAY,EAAE;AAAA,MACvC,EAAE,IAAA,EAAM,MAAA,EAAQ,WAAA,EAAa,IAAA,EAAM,OAAO,KAAA;AAAM,KAClD;AAAA,EACF;AACF,CAAA;AAEA,IAAO,iBAAA,GAAQ;;;ACnBf,IAAM,UAAA,GAA8B;AAAA,EAClC,IAAA,EAAM,YAAA;AAAA,EACN,SAAA,EAAW,EAAA;AAAA,EACX,sBAAA,EAAwB,IAAA;AAAA,EACxB,sBAAA,EAAwB,IAAA;AAAA,EACxB,sBAAA,EAAwB,IAAA;AAAA,EACxB,kBAAA,EAAoB,CAAC,EAAE,WAAA,EAAY,KAAM;AACvC,IAAA,MAAM,KAAA,GAAQ,WAAA,CAAY,GAAA,CAAI,CAAC,YAAY,CAAA,MAAO;AAAA,MAChD,GAAG,UAAA;AAAA,MACH,IAAA,EAAM,IAAI,CAAC,CAAA,CAAA,CAAA;AAAA,MACX,QAAA,EAAU;AAAA,KACZ,CAAE,CAAA;AACF,IAAA,OAAO;AAAA,MACL,EAAE,IAAA,EAAM,MAAA,EAAQ,KAAA,EAAO,EAAE,aAAY,EAAE;AAAA,MACvC,EAAE,IAAA,EAAM,MAAA,EAAQ,WAAA,EAAa,IAAA,EAAM,OAAO,KAAA;AAAM,KAClD;AAAA,EACF;AACF,CAAA;AAEA,IAAO,kBAAA,GAAQ;;;ACnBf,IAAM,QAAA,GAA4B;AAAA,EAChC,IAAA,EAAM,UAAA;AAAA,EACN,WAAW,MAAA,CAAO,gBAAA;AAAA,EAClB,sBAAA,EAAwB,IAAA;AAAA,EACxB,sBAAA,EAAwB,IAAA;AAAA,EACxB,sBAAA,EAAwB,IAAA;AAAA,EACxB,kBAAA,EAAoB,CAAC,EAAE,WAAA,EAAY,KAAM;AACvC,IAAA,MAAM,KAAA,GAAQ,WAAA,CAAY,GAAA,CAAI,CAAC,YAAY,CAAA,MAAO;AAAA,MAChD,GAAG,UAAA;AAAA,MACH,IAAA,EAAM,IAAI,CAAC,CAAA,CAAA,CAAA;AAAA,MACX,QAAA,EAAU;AAAA,KACZ,CAAE,CAAA;AACF,IAAA,OAAO;AAAA,MACL,EAAE,IAAA,EAAM,MAAA,EAAQ,KAAA,EAAO,EAAE,aAAY,EAAE;AAAA,MACvC,EAAE,IAAA,EAAM,MAAA,EAAQ,WAAA,EAAa,IAAA,EAAM,OAAO,KAAA;AAAM,KAClD;AAAA,EACF;AACF,CAAA;AAEA,IAAO,gBAAA,GAAQ;;;ACnBf,IAAM,WAAA,GAA+B;AAAA,EACnC,IAAA,EAAM,aAAA;AAAA,EACN,SAAA,EAAW,CAAA;AAAA,EACX,sBAAA,EAAwB,IAAA;AAAA,EACxB,sBAAA,EAAwB,IAAA;AAAA,EACxB,sBAAA,EAAwB,IAAA;AAAA,EACxB,kBAAA,EAAoB,CAAC,EAAE,WAAA,EAAY,KAAW;AAC5C,IAAA,IAAI,WAAA,CAAY,SAAS,CAAA,EAAG;AAC1B,MAAA,MAAM,QAAe,EAAC;AACtB,MAAA,MAAM,QAAe,EAAC;AACtB,MAAA,KAAA,IAAS,IAAI,CAAA,EAAG,CAAA,GAAI,WAAA,CAAY,MAAA,GAAS,GAAG,CAAA,EAAA,EAAK;AAC/C,QAAA,KAAA,CAAM,IAAA,CAAK;AAAA,UACT,WAAA,EAAa,CAAC,WAAA,CAAY,CAAC,GAAG,WAAA,CAAY,CAAA,GAAI,CAAC,CAAC;AAAA,SACjD,CAAA;AACD,QAAA,KAAA,CAAM,IAAA,CAAK;AAAA,UACT,GAAG,YAAY,CAAC,CAAA;AAAA,UAChB,IAAA,EAAM,IAAI,CAAC,CAAA,CAAA,CAAA;AAAA,UACX,KAAA,EAAO,QAAA;AAAA,UACP,QAAA,EAAU;AAAA,SACX,CAAA;AAAA,MACH;AACA,MAAA,IAAI,WAAA,CAAY,WAAW,CAAA,EAAG;AAC5B,QAAA,KAAA,CAAM,IAAA,CAAK;AAAA,UACT,GAAG,YAAY,CAAC,CAAA;AAAA,UAChB,IAAA,EAAM,KAAA;AAAA,UACN,KAAA,EAAO,QAAA;AAAA,UACP,QAAA,EAAU;AAAA,SACX,CAAA;AAAA,MACH;AACA,MAAA,OAAO;AAAA,QACL,EAAE,IAAA,EAAM,MAAA,EAAQ,KAAA,EAAO,KAAA,EAAM;AAAA,QAC7B,EAAE,IAAA,EAAM,MAAA,EAAQ,KAAA,EAAO,KAAA;AAAM,OAC/B;AAAA,IACF;AACA,IAAA,OAAO,EAAC;AAAA,EACV;AACF,CAAA;AAEA,IAAO,mBAAA,GAAQ;;;ACtCf,IAAM,IAAA,GAAwB;AAAA,EAC5B,IAAA,EAAM,MAAA;AAAA,EACN,SAAA,EAAW,CAAA;AAAA,EACX,sBAAA,EAAwB,IAAA;AAAA,EACxB,sBAAA,EAAwB,IAAA;AAAA,EACxB,sBAAA,EAAwB,IAAA;AAAA,EACxB,kBAAA,EAAoB,CAAC,EAAE,WAAA,EAAY,KAAM;AACvC,IAAA,IAAI,oBAAkC,EAAC;AACvC,IAAA,IAAI,oBAAkC,EAAC;AACvC,IAAA,MAAM,IAAA,GAAO,CAAC,GAAA,EAAK,GAAA,EAAK,KAAK,GAAG,CAAA;AAChC,IAAA,MAAM,KAAA,GAAQ,WAAA,CAAY,GAAA,CAAI,CAAC,YAAY,CAAA,MAAO;AAAA,MAChD,GAAG,UAAA;AAAA,MACH,QAAA,EAAU,QAAA;AAAA,MACV,IAAA,EAAM,CAAA,CAAA,EAAI,IAAA,CAAK,CAAC,CAAC,CAAA,CAAA;AAAA,KACnB,CAAE,CAAA;AACF,IAAA,IAAI,WAAA,CAAY,SAAS,CAAA,EAAG;AAC1B,MAAA,iBAAA,GAAoB,CAAC,WAAA,CAAY,CAAC,CAAA,EAAG,WAAA,CAAY,CAAC,CAAC,CAAA;AACnD,MAAA,IAAI,WAAA,CAAY,SAAS,CAAA,EAAG;AAC1B,QAAA,iBAAA,GAAoB,CAAC,WAAA,CAAY,CAAC,CAAA,EAAG,WAAA,CAAY,CAAC,CAAC,CAAA;AAAA,MACrD;AAAA,IACF;AACA,IAAA,OAAO;AAAA,MACL,EAAE,IAAA,EAAM,MAAA,EAAQ,KAAA,EAAO,EAAE,aAAY,EAAE;AAAA,MACvC;AAAA,QACE,IAAA,EAAM,MAAA;AAAA,QACN,KAAA,EAAO;AAAA,UACL,EAAE,aAAa,iBAAA,EAAkB;AAAA,UACjC,EAAE,aAAa,iBAAA;AAAkB,SACnC;AAAA,QACA,MAAA,EAAQ,EAAE,KAAA,EAAO,QAAA;AAAS,OAC5B;AAAA,MACA,EAAE,IAAA,EAAM,MAAA,EAAQ,WAAA,EAAa,IAAA,EAAM,OAAO,KAAA;AAAM,KAClD;AAAA,EACF;AACF,CAAA;AAEA,IAAO,YAAA,GAAQ;;;ACpCf,IAAM,KAAA,GAAyB;AAAA,EAC7B,IAAA,EAAM,OAAA;AAAA,EACN,SAAA,EAAW,CAAA;AAAA,EACX,sBAAA,EAAwB,IAAA;AAAA,EACxB,sBAAA,EAAwB,IAAA;AAAA,EACxB,sBAAA,EAAwB,IAAA;AAAA,EACxB,QAAQ,EAAE,OAAA,EAAS,EAAE,KAAA,EAAO,4BAA2B,EAAE;AAAA,EACzD,kBAAA,EAAoB,CAAC,EAAE,WAAA,EAAY,KAAM;AACvC,IAAA,MAAM,cAA2B,EAAC;AAClC,IAAA,MAAM,WAA2B,EAAC;AAClC,IAAA,MAAM,OAAO,CAAC,GAAA,EAAK,GAAA,EAAK,GAAA,EAAK,KAAK,GAAG,CAAA;AACrC,IAAA,MAAM,KAAA,GAAQ,WAAA,CAAY,GAAA,CAAI,CAAC,YAAY,CAAA,MAAO;AAAA,MAChD,GAAG,UAAA;AAAA,MACH,QAAA,EAAU,QAAA;AAAA,MACV,IAAA,EAAM,CAAA,CAAA,EAAI,IAAA,CAAK,CAAC,CAAC,CAAA,CAAA;AAAA,KACnB,CAAE,CAAA;AACF,IAAA,IAAI,WAAA,CAAY,SAAS,CAAA,EAAG;AAC1B,MAAA,WAAA,CAAY,IAAA,CAAK,EAAE,WAAA,EAAa,CAAC,WAAA,CAAY,CAAC,CAAA,EAAG,WAAA,CAAY,CAAC,CAAC,CAAA,EAAG,CAAA;AAClE,MAAA,QAAA,CAAS,IAAA,CAAK;AAAA,QACZ,WAAA,EAAa,CAAC,WAAA,CAAY,CAAC,CAAA,EAAG,YAAY,CAAC,CAAA,EAAG,WAAA,CAAY,CAAC,CAAC;AAAA,OAC7D,CAAA;AACD,MAAA,IAAI,WAAA,CAAY,SAAS,CAAA,EAAG;AAC1B,QAAA,WAAA,CAAY,IAAA,CAAK,EAAE,WAAA,EAAa,CAAC,WAAA,CAAY,CAAC,CAAA,EAAG,WAAA,CAAY,CAAC,CAAC,CAAA,EAAG,CAAA;AAClE,QAAA,IAAI,WAAA,CAAY,SAAS,CAAA,EAAG;AAC1B,UAAA,WAAA,CAAY,IAAA,CAAK,EAAE,WAAA,EAAa,CAAC,WAAA,CAAY,CAAC,CAAA,EAAG,WAAA,CAAY,CAAC,CAAC,CAAA,EAAG,CAAA;AAClE,UAAA,QAAA,CAAS,IAAA,CAAK;AAAA,YACZ,WAAA,EAAa,CAAC,WAAA,CAAY,CAAC,CAAA,EAAG,YAAY,CAAC,CAAA,EAAG,WAAA,CAAY,CAAC,CAAC;AAAA,WAC7D,CAAA;AAAA,QACH;AAAA,MACF;AAAA,IACF;AACA,IAAA,OAAO;AAAA,MACL,EAAE,IAAA,EAAM,MAAA,EAAQ,KAAA,EAAO,EAAE,aAAY,EAAE;AAAA,MACvC,EAAE,MAAM,MAAA,EAAQ,KAAA,EAAO,aAAa,MAAA,EAAQ,EAAE,KAAA,EAAO,QAAA,EAAS,EAAE;AAAA,MAChE,EAAE,IAAA,EAAM,SAAA,EAAW,WAAA,EAAa,IAAA,EAAM,OAAO,QAAA,EAAS;AAAA,MACtD,EAAE,IAAA,EAAM,MAAA,EAAQ,WAAA,EAAa,IAAA,EAAM,OAAO,KAAA;AAAM,KAClD;AAAA,EACF;AACF,CAAA;AAEA,IAAO,aAAA,GAAQ;;;ACxCf,IAAM,GAAA,GAAuB;AAAA,EAC3B,IAAA,EAAM,KAAA;AAAA,EACN,SAAA,EAAW,CAAA;AAAA,EACX,sBAAA,EAAwB,IAAA;AAAA,EACxB,sBAAA,EAAwB,IAAA;AAAA,EACxB,sBAAA,EAAwB,IAAA;AAAA,EACxB,kBAAA,EAAoB,CAAC,EAAE,WAAA,EAAa,UAAS,KAAW;AACtD,IAAA,IAAI,WAAA,CAAY,SAAS,CAAA,EAAG;AAC1B,MAAA,MAAM,cAAc,MAAM;AACxB,QAAA,IACE,WAAA,CAAY,CAAC,CAAA,CAAE,CAAA,KAAM,YAAY,CAAC,CAAA,CAAE,CAAA,IACpC,WAAA,CAAY,CAAC,CAAA,CAAE,CAAA,KAAM,WAAA,CAAY,CAAC,EAAE,CAAA,EACpC;AACA,UAAA,OAAO,WAAA,CAAY,CAAC,CAAA,CAAE,CAAA,GAAI,WAAA,CAAY,CAAC,CAAA,CAAE,CAAA,GACrC,EAAE,CAAA,EAAG,WAAA,CAAY,CAAC,EAAE,CAAA,EAAG,CAAA,EAAG,QAAA,CAAS,MAAA,EAAO,GAC1C,EAAE,CAAA,EAAG,WAAA,CAAY,CAAC,CAAA,CAAE,CAAA,EAAG,CAAA,EAAG,CAAA,EAAE;AAAA,QAClC;AACA,QAAA,MAAM,CAAA,GAAI,WAAA,CAAY,CAAC,CAAA,CAAE,CAAA,GAAI,YAAY,CAAC,CAAA,CAAE,CAAA,GAAI,QAAA,CAAS,KAAA,GAAQ,CAAA;AACjE,QAAA,MAAM,CAAA,GAAA,CACF,WAAA,CAAY,CAAC,CAAA,CAAE,CAAA,GAAI,YAAY,CAAC,CAAA,CAAE,CAAA,KACjC,WAAA,CAAY,CAAC,CAAA,CAAE,IAAI,WAAA,CAAY,CAAC,CAAA,CAAE,CAAA,CAAA,IAClC,CAAA,GAAI,WAAA,CAAY,CAAC,CAAA,CAAE,CAAA,CAAA,GACtB,WAAA,CAAY,CAAC,CAAA,CAAE,CAAA;AACjB,QAAA,OAAO,EAAE,GAAG,CAAA,EAAE;AAAA,MAChB,CAAA,GAAG;AACH,MAAA,OAAO;AAAA,QACL;AAAA,UACE,IAAA,EAAM,MAAA;AAAA,UACN,KAAA,EAAO,EAAE,WAAA,EAAa,CAAC,YAAY,CAAC,CAAA,EAAG,UAAU,CAAA;AAAE;AACrD,OACF;AAAA,IACF;AACA,IAAA,OAAO,EAAC;AAAA,EACV;AACF,CAAA;AAEA,IAAO,WAAA,GAAQ;;;ACpCf,IAAM,eAAA,GAAmC;AAAA,EACvC,IAAA,EAAM,iBAAA;AAAA,EACN,SAAA,EAAW,CAAA;AAAA,EACX,sBAAA,EAAwB,IAAA;AAAA,EACxB,sBAAA,EAAwB,IAAA;AAAA,EACxB,sBAAA,EAAwB,IAAA;AAAA,EACxB,kBAAA,EAAoB,CAAC,EAAE,WAAA,EAAY,KAAW;AAC5C,IAAA,IAAI,WAAA,CAAY,SAAS,CAAA,EAAG;AAC1B,MAAA,MAAM,EAAA,GAAK,YAAY,CAAC,CAAA;AACxB,MAAA,MAAM,EAAA,GAAK,YAAY,CAAC,CAAA;AACxB,MAAA,MAAM,EAAA,GAAK,WAAA,CAAY,CAAC,CAAA,IAAK,EAAA;AAE7B,MAAA,MAAM,EAAA,GAAK,EAAA,CAAG,CAAA,GAAI,EAAA,CAAG,CAAA;AACrB,MAAA,MAAM,EAAA,GAAK,EAAA,CAAG,CAAA,GAAI,EAAA,CAAG,CAAA;AAErB,MAAA,MAAM,EAAA,GAAK;AAAA,QACT,CAAA,EAAG,GAAG,CAAA,GAAI,EAAA;AAAA,QACV,CAAA,EAAG,GAAG,CAAA,GAAI;AAAA,OACZ;AAEA,MAAA,OAAO;AAAA,QACL;AAAA,UACE,IAAA,EAAM,MAAA;AAAA,UACN,KAAA,EAAO;AAAA,YACL,EAAE,WAAA,EAAa,CAAC,EAAA,EAAI,EAAE,CAAA,EAAE;AAAA,YACxB,EAAE,WAAA,EAAa,CAAC,EAAA,EAAI,EAAE,CAAA,EAAE;AAAA,YACxB,EAAE,WAAA,EAAa,CAAC,EAAA,EAAI,EAAE,CAAA,EAAE;AAAA,YACxB,EAAE,WAAA,EAAa,CAAC,EAAA,EAAI,EAAE,CAAA;AAAE;AAC1B,SACF;AAAA,QACA;AAAA,UACE,IAAA,EAAM,SAAA;AAAA,UACN,KAAA,EAAO,EAAE,WAAA,EAAa,CAAC,IAAI,EAAA,EAAI,EAAA,EAAI,EAAE,CAAA,EAAE;AAAA,UACvC,MAAA,EAAQ,EAAE,KAAA,EAAO,MAAA;AAAO;AAC1B,OACF;AAAA,IACF;AACA,IAAA,OAAO,EAAC;AAAA,EACV;AACF,CAAA;AAEA,IAAO,uBAAA,GAAQ;;;ACzCf,IAAM,YAAA,GAAgC;AAAA,EACpC,IAAA,EAAM,cAAA;AAAA;AAAA;AAAA;AAAA,EAIN,SAAA,EAAW,CAAA;AAAA,EACX,sBAAA,EAAwB,IAAA;AAAA,EACxB,sBAAA,EAAwB,IAAA;AAAA,EACxB,sBAAA,EAAwB,IAAA;AAAA,EACxB,kBAAA,EAAoB,CAAC,MAAA,KAAgB;AACnC,IAAA,MAAM,EAAE,WAAA,EAAa,OAAA,EAAS,KAAA,EAAM,GAAI,MAAA;AACxC,IAAA,MAAM,UAAiB,EAAC;AACxB,IAAA,IAAI,WAAA,CAAY,MAAA,GAAS,CAAA,IAAK,KAAA,EAAO;AACnC,MAAA,MAAM,MAAA,GAAS,WAAA,CAAY,CAAC,CAAA,CAAE,CAAA;AAC9B,MAAA,MAAM,IAAA,GAAO,WAAA,CAAY,CAAC,CAAA,CAAE,CAAA;AAC5B,MAAA,MAAM,MAAA,GAAS,WAAA,CAAY,CAAC,CAAA,CAAE,CAAA;AAC9B,MAAA,MAAM,OAAA,GAAU,WAAA,CAAY,CAAC,CAAA,CAAE,CAAA;AAC/B,MAAA,MAAM,KAAA,GACJ,YAAY,MAAA,GAAS,CAAA,GAAI,YAAY,CAAC,CAAA,CAAE,IAAI,MAAA,GAAS,EAAA;AAEvD,MAAA,MAAM,UAAA,GAAa,OAAA,CAAQ,MAAA,CAAO,CAAC,CAAA,CAAE,KAAA;AACrC,MAAA,MAAM,WAAA,GAAc,OAAA,CAAQ,MAAA,CAAO,CAAC,CAAA,CAAE,KAAA;AACtC,MAAA,MAAM,SAAA,GACJ,QAAQ,MAAA,CAAO,CAAC,GAAG,KAAA,IAAS,KAAA,CAAM,iBAAiB,KAAK,CAAA;AAE1D,MAAA,MAAM,SAAS,WAAA,GAAc,UAAA;AAC7B,MAAA,MAAM,OAAO,UAAA,GAAa,SAAA;AAC1B,MAAA,MAAM,KAAK,IAAA,GAAO,CAAA,GAAA,CAAK,SAAS,IAAA,EAAM,OAAA,CAAQ,CAAC,CAAA,GAAI,MAAA;AAEnD,MAAA,MAAM,aAAA,GAAA,CAAkB,MAAA,GAAS,UAAA,GAAc,GAAA,EAAK,QAAQ,CAAC,CAAA;AAC7D,MAAA,MAAM,WAAA,GAAA,CAAgB,IAAA,GAAO,UAAA,GAAc,GAAA,EAAK,QAAQ,CAAC,CAAA;AAGzD,MAAA,OAAA,CAAQ,IAAA,CAAK;AAAA,QACX,IAAA,EAAM,MAAA;AAAA,QACN,KAAA,EAAO;AAAA,UACL,CAAA,EAAG,IAAA,CAAK,GAAA,CAAI,MAAA,EAAQ,IAAI,CAAA;AAAA,UACxB,CAAA,EAAG,IAAA,CAAK,GAAA,CAAI,MAAA,EAAQ,OAAO,CAAA;AAAA,UAC3B,KAAA,EAAO,IAAA,CAAK,GAAA,CAAI,MAAA,GAAS,IAAI,CAAA;AAAA,UAC7B,MAAA,EAAQ,IAAA,CAAK,GAAA,CAAI,MAAA,GAAS,OAAO;AAAA,SACnC;AAAA,QACA,MAAA,EAAQ,EAAE,KAAA,EAAO,yBAAA,EAA2B,OAAO,MAAA;AAAO,OAC3D,CAAA;AAGD,MAAA,OAAA,CAAQ,IAAA,CAAK;AAAA,QACX,IAAA,EAAM,MAAA;AAAA,QACN,KAAA,EAAO;AAAA,UACL,CAAA,EAAG,IAAA,CAAK,GAAA,CAAI,MAAA,EAAQ,IAAI,CAAA;AAAA,UACxB,CAAA,EAAG,IAAA,CAAK,GAAA,CAAI,MAAA,EAAQ,KAAK,CAAA;AAAA,UACzB,KAAA,EAAO,IAAA,CAAK,GAAA,CAAI,MAAA,GAAS,IAAI,CAAA;AAAA,UAC7B,MAAA,EAAQ,IAAA,CAAK,GAAA,CAAI,MAAA,GAAS,KAAK;AAAA,SACjC;AAAA,QACA,MAAA,EAAQ,EAAE,KAAA,EAAO,wBAAA,EAA0B,OAAO,MAAA;AAAO,OAC1D,CAAA;AAGD,MAAA,OAAA,CAAQ,IAAA,CAAK;AAAA,QACX,IAAA,EAAM,MAAA;AAAA,QACN,KAAA,EAAO;AAAA,UACL,WAAA,EAAa;AAAA,YACX,EAAE,CAAA,EAAG,MAAA,EAAQ,CAAA,EAAG,MAAA,EAAO;AAAA,YACvB,EAAE,CAAA,EAAG,IAAA,EAAM,CAAA,EAAG,MAAA;AAAO;AACvB,SACF;AAAA,QACA,MAAA,EAAQ,EAAE,KAAA,EAAO,SAAA,EAAW,MAAM,CAAA;AAAE,OACrC,CAAA;AAGD,MAAA,OAAA,CAAQ,IAAA,CAAK;AAAA,QACX,IAAA,EAAM,MAAA;AAAA,QACN,KAAA,EAAO;AAAA,UACL,CAAA,EAAG,IAAA;AAAA,UACH,CAAA,EAAG,OAAA;AAAA,UACH,MAAM,CAAA,QAAA,EAAW,WAAA,CAAY,QAAQ,CAAC,CAAC,KAAK,aAAa,CAAA,EAAA,CAAA;AAAA,UACzD,KAAA,EAAO,MAAA;AAAA,UACP,QAAA,EAAU;AAAA,SACZ;AAAA,QACA,MAAA,EAAQ;AAAA,UACN,KAAA,EAAO,SAAA;AAAA,UACP,eAAA,EAAiB,iBAAA;AAAA,UACjB,WAAA,EAAa,CAAA;AAAA,UACb,YAAA,EAAc;AAAA;AAChB,OACD,CAAA;AAGD,MAAA,OAAA,CAAQ,IAAA,CAAK;AAAA,QACX,IAAA,EAAM,MAAA;AAAA,QACN,KAAA,EAAO;AAAA,UACL,CAAA,EAAG,IAAA;AAAA,UACH,CAAA,EAAG,KAAA;AAAA,UACH,MAAM,CAAA,MAAA,EAAS,SAAA,CAAU,QAAQ,CAAC,CAAC,KAAK,WAAW,CAAA,EAAA,CAAA;AAAA,UACnD,KAAA,EAAO,MAAA;AAAA,UACP,QAAA,EAAU;AAAA,SACZ;AAAA,QACA,MAAA,EAAQ;AAAA,UACN,KAAA,EAAO,SAAA;AAAA,UACP,eAAA,EAAiB,iBAAA;AAAA,UACjB,WAAA,EAAa,CAAA;AAAA,UACb,YAAA,EAAc;AAAA;AAChB,OACD,CAAA;AAGD,MAAA,OAAA,CAAQ,IAAA,CAAK;AAAA,QACX,IAAA,EAAM,MAAA;AAAA,QACN,KAAA,EAAO;AAAA,UACL,CAAA,EAAG,IAAA,CAAK,GAAA,CAAI,MAAA,EAAQ,IAAI,IAAI,IAAA,CAAK,GAAA,CAAI,MAAA,GAAS,IAAI,CAAA,GAAI,CAAA;AAAA,UACtD,CAAA,EAAG,MAAA;AAAA,UACH,IAAA,EAAM,cAAc,EAAE,CAAA,CAAA;AAAA,UACtB,KAAA,EAAO,QAAA;AAAA,UACP,QAAA,EAAU;AAAA,SACZ;AAAA,QACA,MAAA,EAAQ;AAAA,UACN,KAAA,EAAO,SAAA;AAAA,UACP,eAAA,EAAiB,iBAAA;AAAA,UACjB,WAAA,EAAa,CAAA;AAAA,UACb,YAAA,EAAc,CAAA;AAAA,UACd,YAAA,EAAc;AAAA;AAChB,OACD,CAAA;AAAA,IACH;AACA,IAAA,OAAO,OAAA;AAAA,EACT;AACF,CAAA;AAEA,IAAO,oBAAA,GAAQ;;;AC/Hf,IAAM,aAAA,GAAiC;AAAA,EACrC,IAAA,EAAM,eAAA;AAAA;AAAA;AAAA;AAAA,EAIN,SAAA,EAAW,CAAA;AAAA,EACX,sBAAA,EAAwB,IAAA;AAAA,EACxB,sBAAA,EAAwB,IAAA;AAAA,EACxB,sBAAA,EAAwB,IAAA;AAAA,EACxB,kBAAA,EAAoB,CAAC,MAAA,KAAgB;AACnC,IAAA,MAAM,EAAE,WAAA,EAAa,OAAA,EAAS,KAAA,EAAM,GAAI,MAAA;AACxC,IAAA,MAAM,UAAiB,EAAC;AACxB,IAAA,IAAI,WAAA,CAAY,MAAA,GAAS,CAAA,IAAK,KAAA,EAAO;AACnC,MAAA,MAAM,MAAA,GAAS,WAAA,CAAY,CAAC,CAAA,CAAE,CAAA;AAC9B,MAAA,MAAM,IAAA,GAAO,WAAA,CAAY,CAAC,CAAA,CAAE,CAAA;AAC5B,MAAA,MAAM,MAAA,GAAS,WAAA,CAAY,CAAC,CAAA,CAAE,CAAA;AAC9B,MAAA,MAAM,OAAA,GAAU,WAAA,CAAY,CAAC,CAAA,CAAE,CAAA;AAC/B,MAAA,MAAM,KAAA,GACJ,YAAY,MAAA,GAAS,CAAA,GAAI,YAAY,CAAC,CAAA,CAAE,IAAI,MAAA,GAAS,EAAA;AAEvD,MAAA,MAAM,UAAA,GAAa,OAAA,CAAQ,MAAA,CAAO,CAAC,CAAA,CAAE,KAAA;AACrC,MAAA,MAAM,WAAA,GAAc,OAAA,CAAQ,MAAA,CAAO,CAAC,CAAA,CAAE,KAAA;AACtC,MAAA,MAAM,SAAA,GACJ,QAAQ,MAAA,CAAO,CAAC,GAAG,KAAA,IAAS,KAAA,CAAM,iBAAiB,KAAK,CAAA;AAE1D,MAAA,MAAM,SAAS,UAAA,GAAa,WAAA;AAC5B,MAAA,MAAM,OAAO,SAAA,GAAY,UAAA;AACzB,MAAA,MAAM,KAAK,IAAA,GAAO,CAAA,GAAA,CAAK,SAAS,IAAA,EAAM,OAAA,CAAQ,CAAC,CAAA,GAAI,MAAA;AAEnD,MAAA,MAAM,aAAA,GAAA,CAAkB,MAAA,GAAS,UAAA,GAAc,GAAA,EAAK,QAAQ,CAAC,CAAA;AAC7D,MAAA,MAAM,WAAA,GAAA,CAAgB,IAAA,GAAO,UAAA,GAAc,GAAA,EAAK,QAAQ,CAAC,CAAA;AAGzD,MAAA,OAAA,CAAQ,IAAA,CAAK;AAAA,QACX,IAAA,EAAM,MAAA;AAAA,QACN,KAAA,EAAO;AAAA,UACL,CAAA,EAAG,IAAA,CAAK,GAAA,CAAI,MAAA,EAAQ,IAAI,CAAA;AAAA,UACxB,CAAA,EAAG,IAAA,CAAK,GAAA,CAAI,MAAA,EAAQ,OAAO,CAAA;AAAA,UAC3B,KAAA,EAAO,IAAA,CAAK,GAAA,CAAI,MAAA,GAAS,IAAI,CAAA;AAAA,UAC7B,MAAA,EAAQ,IAAA,CAAK,GAAA,CAAI,MAAA,GAAS,OAAO;AAAA,SACnC;AAAA,QACA,MAAA,EAAQ,EAAE,KAAA,EAAO,yBAAA,EAA2B,OAAO,MAAA;AAAO,OAC3D,CAAA;AAGD,MAAA,OAAA,CAAQ,IAAA,CAAK;AAAA,QACX,IAAA,EAAM,MAAA;AAAA,QACN,KAAA,EAAO;AAAA,UACL,CAAA,EAAG,IAAA,CAAK,GAAA,CAAI,MAAA,EAAQ,IAAI,CAAA;AAAA,UACxB,CAAA,EAAG,IAAA,CAAK,GAAA,CAAI,MAAA,EAAQ,KAAK,CAAA;AAAA,UACzB,KAAA,EAAO,IAAA,CAAK,GAAA,CAAI,MAAA,GAAS,IAAI,CAAA;AAAA,UAC7B,MAAA,EAAQ,IAAA,CAAK,GAAA,CAAI,MAAA,GAAS,KAAK;AAAA,SACjC;AAAA,QACA,MAAA,EAAQ,EAAE,KAAA,EAAO,wBAAA,EAA0B,OAAO,MAAA;AAAO,OAC1D,CAAA;AAGD,MAAA,OAAA,CAAQ,IAAA,CAAK;AAAA,QACX,IAAA,EAAM,MAAA;AAAA,QACN,KAAA,EAAO;AAAA,UACL,WAAA,EAAa;AAAA,YACX,EAAE,CAAA,EAAG,MAAA,EAAQ,CAAA,EAAG,MAAA,EAAO;AAAA,YACvB,EAAE,CAAA,EAAG,IAAA,EAAM,CAAA,EAAG,MAAA;AAAO;AACvB,SACF;AAAA,QACA,MAAA,EAAQ,EAAE,KAAA,EAAO,SAAA,EAAW,MAAM,CAAA;AAAE,OACrC,CAAA;AAGD,MAAA,OAAA,CAAQ,IAAA,CAAK;AAAA,QACX,IAAA,EAAM,MAAA;AAAA,QACN,KAAA,EAAO;AAAA,UACL,CAAA,EAAG,IAAA;AAAA,UACH,CAAA,EAAG,OAAA;AAAA,UACH,MAAM,CAAA,QAAA,EAAW,WAAA,CAAY,QAAQ,CAAC,CAAC,KAAK,aAAa,CAAA,EAAA,CAAA;AAAA,UACzD,KAAA,EAAO,MAAA;AAAA,UACP,QAAA,EAAU;AAAA,SACZ;AAAA,QACA,MAAA,EAAQ;AAAA,UACN,KAAA,EAAO,SAAA;AAAA,UACP,eAAA,EAAiB,iBAAA;AAAA,UACjB,WAAA,EAAa,CAAA;AAAA,UACb,YAAA,EAAc;AAAA;AAChB,OACD,CAAA;AAGD,MAAA,OAAA,CAAQ,IAAA,CAAK;AAAA,QACX,IAAA,EAAM,MAAA;AAAA,QACN,KAAA,EAAO;AAAA,UACL,CAAA,EAAG,IAAA;AAAA,UACH,CAAA,EAAG,KAAA;AAAA,UACH,MAAM,CAAA,MAAA,EAAS,SAAA,CAAU,QAAQ,CAAC,CAAC,KAAK,WAAW,CAAA,EAAA,CAAA;AAAA,UACnD,KAAA,EAAO,MAAA;AAAA,UACP,QAAA,EAAU;AAAA,SACZ;AAAA,QACA,MAAA,EAAQ;AAAA,UACN,KAAA,EAAO,SAAA;AAAA,UACP,eAAA,EAAiB,iBAAA;AAAA,UACjB,WAAA,EAAa,CAAA;AAAA,UACb,YAAA,EAAc;AAAA;AAChB,OACD,CAAA;AAGD,MAAA,OAAA,CAAQ,IAAA,CAAK;AAAA,QACX,IAAA,EAAM,MAAA;AAAA,QACN,KAAA,EAAO;AAAA,UACL,CAAA,EAAG,IAAA,CAAK,GAAA,CAAI,MAAA,EAAQ,IAAI,IAAI,IAAA,CAAK,GAAA,CAAI,MAAA,GAAS,IAAI,CAAA,GAAI,CAAA;AAAA,UACtD,CAAA,EAAG,MAAA;AAAA,UACH,IAAA,EAAM,cAAc,EAAE,CAAA,CAAA;AAAA,UACtB,KAAA,EAAO,QAAA;AAAA,UACP,QAAA,EAAU;AAAA,SACZ;AAAA,QACA,MAAA,EAAQ;AAAA,UACN,KAAA,EAAO,SAAA;AAAA,UACP,eAAA,EAAiB,iBAAA;AAAA,UACjB,WAAA,EAAa,CAAA;AAAA,UACb,YAAA,EAAc,CAAA;AAAA,UACd,YAAA,EAAc;AAAA;AAChB,OACD,CAAA;AAAA,IACH;AACA,IAAA,OAAO,OAAA;AAAA,EACT;AACF,CAAA;AAEA,IAAO,qBAAA,GAAQ;;;AC/Hf,SAAS,eAAe,EAAA,EAAoB;AAC1C,EAAA,MAAM,OAAA,GAAU,IAAA,CAAK,KAAA,CAAM,EAAA,GAAK,GAAI,CAAA;AACpC,EAAA,MAAM,OAAA,GAAU,IAAA,CAAK,KAAA,CAAM,OAAA,GAAU,EAAE,CAAA;AACvC,EAAA,MAAM,KAAA,GAAQ,IAAA,CAAK,KAAA,CAAM,OAAA,GAAU,EAAE,CAAA;AACrC,EAAA,MAAM,IAAA,GAAO,IAAA,CAAK,KAAA,CAAM,KAAA,GAAQ,EAAE,CAAA;AAElC,EAAA,IAAI,OAAO,CAAA,EAAG,OAAO,GAAG,IAAI,CAAA,EAAA,EAAK,QAAQ,EAAE,CAAA,CAAA,CAAA;AAC3C,EAAA,IAAI,QAAQ,CAAA,EAAG,OAAO,GAAG,KAAK,CAAA,EAAA,EAAK,UAAU,EAAE,CAAA,CAAA,CAAA;AAC/C,EAAA,OAAO,GAAG,OAAO,CAAA,CAAA,CAAA;AACnB;AAEA,IAAM,OAAA,GAA2B;AAAA,EAC/B,IAAA,EAAM,SAAA;AAAA,EACN,SAAA,EAAW,CAAA;AAAA,EACX,sBAAA,EAAwB,IAAA;AAAA,EACxB,sBAAA,EAAwB,IAAA;AAAA,EACxB,sBAAA,EAAwB,IAAA;AAAA,EACxB,kBAAA,EAAoB,CAAC,MAAA,KAAgB;AACnC,IAAA,MAAM,EAAE,OAAA,EAAS,WAAA,EAAa,KAAA,EAAM,GAAI,MAAA;AACxC,IAAA,IAAI,YAAY,MAAA,GAAS,CAAA,IAAK,CAAC,KAAA,SAAc,EAAC;AAE9C,IAAA,MAAM,UAAA,GAAa,OAAA,CAAQ,MAAA,CAAO,CAAC,CAAA;AACnC,IAAA,MAAM,QAAA,GAAW,OAAA,CAAQ,MAAA,CAAO,CAAC,CAAA;AACjC,IAAA,MAAM,UAAA,GAAa,YAAY,CAAC,CAAA;AAChC,IAAA,MAAM,QAAA,GAAW,YAAY,CAAC,CAAA;AAE9B,IAAA,MAAM,UAAA,GAAa,WAAW,KAAA,IAAS,CAAA;AACvC,IAAA,MAAM,QAAA,GAAW,SAAS,KAAA,IAAS,CAAA;AACnC,IAAA,MAAM,OAAO,QAAA,GAAW,UAAA;AACxB,IAAA,MAAM,OAAA,GACJ,eAAe,CAAA,GAAA,CAAM,IAAA,GAAO,aAAc,GAAA,EAAK,OAAA,CAAQ,CAAC,CAAA,GAAI,MAAA;AAC9D,IAAA,MAAM,OAAO,IAAA,CAAK,GAAA;AAAA,MAAA,CACf,QAAA,CAAS,SAAA,IAAa,CAAA,KAAM,UAAA,CAAW,SAAA,IAAa,CAAA;AAAA,KACvD;AACA,IAAA,MAAM,IAAA,GAAO,cAAA;AAAA,MACX,KAAK,GAAA,CAAA,CAAK,QAAA,CAAS,aAAa,CAAA,KAAM,UAAA,CAAW,aAAa,CAAA,CAAE;AAAA,KAClE;AAEA,IAAA,MAAM,OAAO,IAAA,IAAQ,CAAA;AACrB,IAAA,MAAM,KAAA,GAAQ,OACV,yBAAA,GACA,wBAAA;AACJ,IAAA,MAAM,WAAA,GAAc,OAAO,SAAA,GAAY,SAAA;AAEvC,IAAA,MAAM,QAAQ,IAAA,CAAK,GAAA,CAAI,UAAA,CAAW,CAAA,EAAG,SAAS,CAAC,CAAA;AAC/C,IAAA,MAAM,QAAQ,IAAA,CAAK,GAAA,CAAI,UAAA,CAAW,CAAA,EAAG,SAAS,CAAC,CAAA;AAC/C,IAAA,MAAM,YAAY,IAAA,CAAK,GAAA,CAAI,UAAA,CAAW,CAAA,GAAI,SAAS,CAAC,CAAA;AACpD,IAAA,MAAM,aAAa,IAAA,CAAK,GAAA,CAAI,UAAA,CAAW,CAAA,GAAI,SAAS,CAAC,CAAA;AAErD,IAAA,MAAM,SAAA,GAAY;AAAA,MAChB,CAAA,EAAG,IAAA,GAAO,QAAA,GAAW,QAAQ,CAAA,CAAA,EAAI,KAAK,OAAA,CAAQ,CAAC,CAAC,CAAA,EAAA,EAAK,OAAO,CAAA,EAAA,CAAA;AAAA,MAC5D,CAAA,EAAG,IAAI,CAAA,OAAA,EAAU,IAAI,CAAA;AAAA,KACvB;AAEA,IAAA,MAAM,QAAQ,QAAA,CAAS,CAAA;AACvB,IAAA,MAAM,KAAA,GAAQ,QAAA,CAAS,CAAA,IAAK,IAAA,GAAO,GAAA,GAAM,EAAA,CAAA;AAEzC,IAAA,MAAM,WAAA,GAAc,SAAA,CAAU,GAAA,CAAI,CAAC,MAAM,CAAA,MAAO;AAAA,MAC9C,IAAA,EAAM,MAAA;AAAA,MACN,KAAA,EAAO;AAAA,QACL,CAAA,EAAG,KAAA;AAAA,QACH,CAAA,EAAG,QAAQ,CAAA,GAAI,EAAA;AAAA,QACf,IAAA,EAAM,IAAA;AAAA,QACN,KAAA,EAAO,QAAA;AAAA,QACP,QAAA,EAAU;AAAA,OACZ;AAAA,MACA,MAAA,EAAQ;AAAA,QACN,KAAA,EAAO,MAAA;AAAA,QACP,eAAA,EAAiB,WAAA;AAAA,QACjB,WAAA,EAAa,CAAA;AAAA,QACb,YAAA,EAAc,CAAA;AAAA,QACd,UAAA,EAAY,CAAA;AAAA,QACZ,aAAA,EAAe,CAAA;AAAA,QACf,YAAA,EAAc;AAAA;AAChB,KACF,CAAE,CAAA;AAEF,IAAA,OAAO;AAAA,MACL;AAAA,QACE,IAAA,EAAM,MAAA;AAAA,QACN,KAAA,EAAO;AAAA,UACL,CAAA,EAAG,KAAA;AAAA,UACH,CAAA,EAAG,KAAA;AAAA,UACH,KAAA,EAAO,SAAA;AAAA,UACP,MAAA,EAAQ;AAAA,SACV;AAAA,QACA,MAAA,EAAQ,EAAE,KAAA,EAAO,MAAA,EAAQ,KAAA;AAAM,OACjC;AAAA,MACA;AAAA,QACE,IAAA,EAAM,MAAA;AAAA,QACN,OAAO,EAAE,WAAA,EAAa,CAAC,UAAA,EAAY,QAAQ,CAAA,EAAE;AAAA,QAC7C,MAAA,EAAQ,EAAE,KAAA,EAAO,WAAA,EAAa,OAAO,QAAA;AAAS,OAChD;AAAA,MACA,GAAG;AAAA,KACL;AAAA,EACF;AACF,CAAA;AAEA,IAAO,eAAA,GAAQ;ACjGf,SAAS,YAAA,CACP,CAAA,EACA,EAAA,EACA,EAAA,EACA;AACA,EAAA,IAAI,IAAI,EAAA,CAAG,CAAA;AACX,EAAA,IAAI,IAAI,EAAA,CAAG,CAAA;AACX,EAAA,IAAI,EAAA,GAAK,GAAG,CAAA,GAAI,CAAA;AAChB,EAAA,IAAI,EAAA,GAAK,GAAG,CAAA,GAAI,CAAA;AAEhB,EAAA,IAAI,EAAA,KAAO,CAAA,IAAK,EAAA,KAAO,CAAA,EAAG;AACxB,IAAA,MAAM,CAAA,GAAA,CAAA,CAAM,CAAA,CAAE,CAAA,GAAI,CAAA,IAAK,EAAA,GAAA,CAAM,CAAA,CAAE,CAAA,GAAI,CAAA,IAAK,EAAA,KAAO,EAAA,GAAK,EAAA,GAAK,EAAA,GAAK,EAAA,CAAA;AAC9D,IAAA,IAAI,IAAI,CAAA,EAAG;AACT,MAAA,CAAA,GAAI,EAAA,CAAG,CAAA;AACP,MAAA,CAAA,GAAI,EAAA,CAAG,CAAA;AAAA,IACT,CAAA,MAAA,IAAW,IAAI,CAAA,EAAG;AAChB,MAAA,CAAA,IAAK,EAAA,GAAK,CAAA;AACV,MAAA,CAAA,IAAK,EAAA,GAAK,CAAA;AAAA,IACZ;AAAA,EACF;AAEA,EAAA,EAAA,GAAK,EAAE,CAAA,GAAI,CAAA;AACX,EAAA,EAAA,GAAK,EAAE,CAAA,GAAI,CAAA;AACX,EAAA,OAAO,EAAA,GAAK,KAAK,EAAA,GAAK,EAAA;AACxB;AAEA,SAAS,GAAA,CAAI,QAAoC,OAAA,EAAiB;AAChE,EAAA,MAAM,MAAM,MAAA,CAAO,MAAA;AACnB,EAAA,IAAI,GAAA,IAAO,GAAG,OAAO,MAAA;AAErB,EAAA,MAAM,YAAY,OAAA,GAAU,OAAA;AAC5B,EAAA,MAAM,OAAA,GAAU,IAAI,UAAA,CAAW,GAAG,CAAA;AAClC,EAAA,OAAA,CAAQ,CAAC,CAAA,GAAI,OAAA,CAAQ,GAAA,GAAM,CAAC,CAAA,GAAI,CAAA;AAEhC,EAAA,MAAM,QAA4B,CAAC,CAAC,CAAA,EAAG,GAAA,GAAM,CAAC,CAAC,CAAA;AAC/C,EAAA,OAAO,KAAA,CAAM,SAAS,CAAA,EAAG;AACvB,IAAA,MAAM,CAAC,KAAA,EAAO,IAAI,CAAA,GAAI,MAAM,GAAA,EAAI;AAChC,IAAA,IAAI,SAAA,GAAY,CAAA;AAChB,IAAA,IAAI,KAAA,GAAQ,CAAA;AAEZ,IAAA,KAAA,IAAS,CAAA,GAAI,KAAA,GAAQ,CAAA,EAAG,CAAA,GAAI,MAAM,CAAA,EAAA,EAAK;AACrC,MAAA,MAAM,MAAA,GAAS,YAAA,CAAa,MAAA,CAAO,CAAC,CAAA,EAAG,OAAO,KAAK,CAAA,EAAG,MAAA,CAAO,IAAI,CAAC,CAAA;AAClE,MAAA,IAAI,SAAS,SAAA,EAAW;AACtB,QAAA,SAAA,GAAY,MAAA;AACZ,QAAA,KAAA,GAAQ,CAAA;AAAA,MACV;AAAA,IACF;AAEA,IAAA,IAAI,YAAY,SAAA,EAAW;AACzB,MAAA,OAAA,CAAQ,KAAK,CAAA,GAAI,CAAA;AACjB,MAAA,KAAA,CAAM,IAAA,CAAK,CAAC,KAAA,EAAO,KAAK,CAAC,CAAA;AACzB,MAAA,KAAA,CAAM,IAAA,CAAK,CAAC,KAAA,EAAO,IAAI,CAAC,CAAA;AAAA,IAC1B;AAAA,EACF;AAEA,EAAA,MAAM,SAAqC,EAAC;AAC5C,EAAA,KAAA,IAAS,CAAA,GAAI,CAAA,EAAG,CAAA,GAAI,GAAA,EAAK,CAAA,EAAA,EAAK;AAC5B,IAAA,IAAI,QAAQ,CAAC,CAAA,SAAU,IAAA,CAAK,MAAA,CAAO,CAAC,CAAC,CAAA;AAAA,EACvC;AACA,EAAA,OAAO,MAAA;AACT;AAEAC,0BAAA,CAAe;AAAA,EACb,IAAA,EAAM,YAAA;AAAA,EACN,IAAA,EAAM,CAAC,GAAA,EAA+B,KAAA,EAAY,MAAA,KAAgB;AAChE,IAAA,MAAM,EAAE,aAAY,GAAI,KAAA;AACxB,IAAA,IAAI,WAAA,CAAY,SAAS,CAAA,EAAG;AAE5B,IAAA,GAAA,CAAI,IAAA,EAAK;AACT,IAAA,GAAA,CAAI,WAAA,CAAY,EAAE,CAAA;AAClB,IAAA,GAAA,CAAI,WAAA,GAAc,OAAO,KAAA,IAAS,MAAA;AAClC,IAAA,GAAA,CAAI,SAAA,GAAY,OAAO,IAAA,IAAQ,CAAA;AAC/B,IAAA,GAAA,CAAI,OAAA,GAAU,OAAA;AACd,IAAA,GAAA,CAAI,QAAA,GAAW,OAAA;AAEf,IAAA,GAAA,CAAI,SAAA,EAAU;AACd,IAAA,GAAA,CAAI,MAAA,CAAO,YAAY,CAAC,CAAA,CAAE,GAAG,WAAA,CAAY,CAAC,EAAE,CAAC,CAAA;AAE7C,IAAA,IAAI,WAAA,CAAY,WAAW,CAAA,EAAG;AAC5B,MAAA,GAAA,CAAI,MAAA,CAAO,YAAY,CAAC,CAAA,CAAE,GAAG,WAAA,CAAY,CAAC,EAAE,CAAC,CAAA;AAAA,IAC/C,CAAA,MAAO;AACL,MAAA,KAAA,IAAS,IAAI,CAAA,EAAG,CAAA,GAAI,WAAA,CAAY,MAAA,GAAS,GAAG,CAAA,EAAA,EAAK;AAC/C,QAAA,MAAM,EAAA,GAAA,CAAM,YAAY,CAAC,CAAA,CAAE,IAAI,WAAA,CAAY,CAAA,GAAI,CAAC,CAAA,CAAE,CAAA,IAAK,CAAA;AACvD,QAAA,MAAM,EAAA,GAAA,CAAM,YAAY,CAAC,CAAA,CAAE,IAAI,WAAA,CAAY,CAAA,GAAI,CAAC,CAAA,CAAE,CAAA,IAAK,CAAA;AACvD,QAAA,GAAA,CAAI,gBAAA,CAAiB,WAAA,CAAY,CAAC,CAAA,CAAE,CAAA,EAAG,YAAY,CAAC,CAAA,CAAE,CAAA,EAAG,EAAA,EAAI,EAAE,CAAA;AAAA,MACjE;AACA,MAAA,MAAM,IAAA,GAAO,YAAY,MAAA,GAAS,CAAA;AAClC,MAAA,GAAA,CAAI,gBAAA;AAAA,QACF,WAAA,CAAY,IAAI,CAAA,CAAE,CAAA;AAAA,QAClB,WAAA,CAAY,IAAI,CAAA,CAAE,CAAA;AAAA,QAClB,WAAA,CAAY,IAAA,GAAO,CAAC,CAAA,CAAE,CAAA;AAAA,QACtB,WAAA,CAAY,IAAA,GAAO,CAAC,CAAA,CAAE;AAAA,OACxB;AAAA,IACF;AAEA,IAAA,GAAA,CAAI,MAAA,EAAO;AACX,IAAA,GAAA,CAAI,OAAA,EAAQ;AAAA,EACd,CAAA;AAAA,EACA,YAAA,EAAc,CACZ,UAAA,EACA,KAAA,EACA,MAAA,KACG;AACH,IAAA,MAAM,EAAE,aAAY,GAAI,KAAA;AACxB,IAAA,IAAI,CAAC,WAAA,IAAe,WAAA,CAAY,MAAA,GAAS,GAAG,OAAO,KAAA;AAEnD,IAAA,MAAM,MAAA,GAAA,CAAU,MAAA,EAAQ,IAAA,IAAQ,CAAA,IAAK,CAAA,GAAI,CAAA;AACzC,IAAA,MAAM,WAAW,MAAA,GAAS,MAAA;AAE1B,IAAA,KAAA,IAAS,IAAI,CAAA,EAAG,CAAA,GAAI,WAAA,CAAY,MAAA,GAAS,GAAG,CAAA,EAAA,EAAK;AAC/C,MAAA,MAAM,MAAA,GAAS,YAAA;AAAA,QACb,UAAA;AAAA,QACA,YAAY,CAAC,CAAA;AAAA,QACb,WAAA,CAAY,IAAI,CAAC;AAAA,OACnB;AACA,MAAA,IAAI,MAAA,IAAU,UAAU,OAAO,IAAA;AAAA,IACjC;AACA,IAAA,OAAO,KAAA;AAAA,EACT;AACF,CAAC,CAAA;AAcD,IAAM,KAAA,GAAyB;AAAA,EAC7B,IAAA,EAAM,OAAA;AAAA,EACN,SAAA,EAAW,CAAA;AAAA,EACX,sBAAA,EAAwB,KAAA;AAAA,EACxB,sBAAA,EAAwB,KAAA;AAAA,EACxB,sBAAA,EAAwB,KAAA;AAAA,EACxB,SAAA,EAAW,CAAC,MAAA,KAAgB;AAC1B,IAAA,MAAM,EAAE,OAAA,EAAS,CAAA,EAAG,CAAA,EAAE,GAAI,MAAA;AAC1B,IAAA,MAAM,SAAS,MAAA,CAAO,MAAA;AACtB,IAAA,IAAI,CAAA,KAAM,MAAA,IAAa,CAAA,KAAM,MAAA,EAAW,OAAO,IAAA;AAC/C,IAAA,IAAI,OAAA,CAAQ,WAAA,KAAgB,CAAA,EAAG,OAAO,IAAA;AAEtC,IAAA,IAAI,CAAC,QAAQ,UAAA,EAAY;AACvB,MAAA,OAAA,CAAQ,UAAA,GAAa;AAAA,QACnB,QAAQ,EAAC;AAAA,QACT,QAAQ,EAAC;AAAA,QACT,OAAA,EAAS,KAAA;AAAA,QACT;AAAA,OACF;AAAA,IACF;AAEA,IAAA,MAAM,OAAO,OAAA,CAAQ,UAAA;AACrB,IAAA,IAAI,IAAA,CAAK,MAAA,IAAU,IAAA,CAAK,MAAA,KAAW,QAAQ,OAAO,IAAA;AAElD,IAAA,MAAM,YAAY,IAAA,CAAK,MAAA,CAAO,IAAA,CAAK,MAAA,CAAO,SAAS,CAAC,CAAA;AACpD,IAAA,IAAI,SAAA,EAAW;AACb,MAAA,MAAM,EAAA,GAAK,IAAI,SAAA,CAAU,CAAA;AACzB,MAAA,MAAM,EAAA,GAAK,IAAI,SAAA,CAAU,CAAA;AACzB,MAAA,IAAI,EAAA,GAAK,EAAA,GAAK,EAAA,GAAK,EAAA,GAAK,GAAG,OAAO,IAAA;AAAA,IACpC;AAEA,IAAA,IAAA,CAAK,MAAA,CAAO,IAAA,CAAK,EAAE,CAAA,EAAG,GAAG,CAAA;AACzB,IAAA,OAAO,IAAA;AAAA,EACT,CAAA;AAAA,EACA,SAAA,EAAW,CAAC,MAAA,KAAgB;AAC1B,IAAA,MAAM,EAAE,SAAQ,GAAI,MAAA;AACpB,IAAA,MAAM,OAAO,OAAA,CAAQ,UAAA;AACrB,IAAA,IAAI,IAAA,EAAM;AACR,MAAA,IAAA,CAAK,OAAA,GAAU,IAAA;AAAA,IACjB;AACA,IAAA,OAAO,IAAA;AAAA,EACT,CAAA;AAAA,EACA,oBAAoB,CAAC,EAAE,SAAS,KAAA,EAAO,KAAA,EAAO,eAAc,KAAW;AACrE,IAAA,MAAM,OAAO,OAAA,CAAQ,UAAA;AACrB,IAAA,IAAI,CAAC,IAAA,IAAQ,CAAC,SAAS,CAAC,KAAA,SAAc,EAAC;AAEvC,IAAA,IAAI,IAAA,CAAK,MAAA,CAAO,MAAA,GAAS,CAAA,EAAG;AAC1B,MAAA,KAAA,MAAW,CAAA,IAAK,KAAK,MAAA,EAAQ;AAC3B,QAAA,IAAA,CAAK,OAAO,IAAA,CAAK;AAAA,UACf,SAAA,EAAW,KAAA,CAAM,gBAAA,CAAiB,CAAA,CAAE,CAAC,CAAA;AAAA,UACrC,KAAA,EAAO,KAAA,CAAM,gBAAA,CAAiB,CAAA,CAAE,CAAC;AAAA,SAClC,CAAA;AAAA,MACH;AACA,MAAA,IAAA,CAAK,SAAS,EAAC;AAAA,IACjB;AAEA,IAAA,IAAI,EAAE,QAAO,GAAI,IAAA;AAEjB,IAAA,IAAI,IAAA,CAAK,OAAA,IAAW,MAAA,CAAO,MAAA,GAAS,CAAA,EAAG;AACrC,MAAA,MAAM,WAAA,GAAc,MAAA,CAAO,GAAA,CAAI,CAAC,CAAA,MAAO;AAAA,QACrC,CAAA,EAAG,KAAA,CAAM,cAAA,CAAe,CAAA,CAAE,SAAS,CAAA;AAAA,QACnC,CAAA,EAAG,KAAA,CAAM,cAAA,CAAe,CAAA,CAAE,KAAK;AAAA,OACjC,CAAE,CAAA;AAEF,MAAA,MAAM,UAAA,GAAa,GAAA,CAAI,WAAA,EAAa,GAAG,CAAA;AAEvC,MAAA,IAAA,CAAK,MAAA,GAAS,UAAA,CAAW,GAAA,CAAI,CAAC,CAAA,MAAO;AAAA,QACnC,SAAA,EAAW,KAAA,CAAM,gBAAA,CAAiB,CAAA,CAAE,CAAC,CAAA;AAAA,QACrC,KAAA,EAAO,KAAA,CAAM,gBAAA,CAAiB,CAAA,CAAE,CAAC;AAAA,OACnC,CAAE,CAAA;AACF,MAAA,MAAA,GAAS,IAAA,CAAK,MAAA;AACd,MAAA,IAAA,CAAK,OAAA,GAAU,KAAA;AAAA,IACjB;AAEA,IAAA,IAAI,MAAA,CAAO,MAAA,GAAS,CAAA,EAAG,OAAO,EAAC;AAE/B,IAAA,MAAM,WAAA,GAAc,MAAA,CAAO,GAAA,CAAI,CAAC,CAAA,MAAO;AAAA,MACrC,CAAA,EAAG,KAAA,CAAM,cAAA,CAAe,CAAA,CAAE,SAAS,CAAA;AAAA,MACnC,CAAA,EAAG,KAAA,CAAM,cAAA,CAAe,CAAA,CAAE,KAAK;AAAA,KACjC,CAAE,CAAA;AAEF,IAAA,OAAO;AAAA,MACL;AAAA,QACE,IAAA,EAAM,YAAA;AAAA,QACN,KAAA,EAAO,EAAE,WAAA,EAAY;AAAA,QACrB,MAAA,EAAQ;AAAA,UACN,OACE,OAAA,CAAQ,MAAA,EAAQ,MAAM,KAAA,IACtB,aAAA,EAAe,MAAM,KAAA,IACrB,SAAA;AAAA,UACF,MACE,OAAA,CAAQ,MAAA,EAAQ,MAAM,IAAA,IAAQ,aAAA,EAAe,MAAM,IAAA,IAAQ;AAAA;AAC/D;AACF,KACF;AAAA,EACF;AACF,CAAA;AAEA,IAAO,aAAA,GAAQ;;;AC1Of,IAAA,kBAAA,GAAA,EAAA;AAAA,QAAA,CAAA,kBAAA,EAAA;AAAA,EAAA,MAAA,EAAA,MAAA,cAAA;AAAA,EAAA,GAAA,EAAA,MAAA,WAAA;AAAA,EAAA,GAAA,EAAA,MAAA,WAAA;AAAA,EAAA,QAAA,EAAA,MAAA,gBAAA;AAAA,EAAA,QAAA,EAAA,MAAA,gBAAA;AAAA,EAAA,MAAA,EAAA,MAAA,cAAA;AAAA,EAAA,WAAA,EAAA,MAAA,mBAAA;AAAA,EAAA,KAAA,EAAA,MAAA,aAAA;AAAA,EAAA,UAAA,EAAA,MAAA,kBAAA;AAAA,EAAA,UAAA,EAAA,MAAA,kBAAA;AAAA,EAAA,IAAA,EAAA,MAAA;AAAA,CAAA,CAAA;;;ACKA,IAAM,EAAA,GAAK;AAAA;AAAA;AAAA;AAAA;AAAA,EAKT,GAAA,EAAK,CAAC,IAAA,EAAgB,MAAA,KAAsC;AAC1D,IAAA,MAAM,SAA4B,EAAC;AACnC,IAAA,IAAI,GAAA,GAAM,CAAA;AACV,IAAA,KAAA,IAAS,CAAA,GAAI,CAAA,EAAG,CAAA,GAAI,IAAA,CAAK,QAAQ,CAAA,EAAA,EAAK;AACpC,MAAA,GAAA,IAAO,KAAK,CAAC,CAAA;AACb,MAAA,IAAI,KAAK,MAAA,EAAQ;AACf,QAAA,GAAA,IAAO,IAAA,CAAK,IAAI,MAAM,CAAA;AAAA,MACxB;AACA,MAAA,IAAI,CAAA,IAAK,SAAS,CAAA,EAAG;AACnB,QAAA,MAAA,CAAO,IAAA,CAAK,MAAM,MAAM,CAAA;AAAA,MAC1B,CAAA,MAAO;AACL,QAAA,MAAA,CAAO,KAAK,IAAI,CAAA;AAAA,MAClB;AAAA,IACF;AACA,IAAA,OAAO,MAAA;AAAA,EACT,CAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,GAAA,EAAK,CAAC,IAAA,EAAgB,MAAA,KAAsC;AAC1D,IAAA,MAAM,SAA4B,EAAC;AACnC,IAAA,MAAM,KAAA,GAAQ,KAAK,MAAA,GAAS,CAAA,CAAA;AAC5B,IAAA,IAAI,OAAA,GAAyB,IAAA;AAE7B,IAAA,KAAA,IAAS,CAAA,GAAI,CAAA,EAAG,CAAA,GAAI,IAAA,CAAK,QAAQ,CAAA,EAAA,EAAK;AACpC,MAAA,IAAI,YAAY,IAAA,EAAM;AACpB,QAAA,IAAI,CAAA,KAAM,SAAS,CAAA,EAAG;AACpB,UAAA,IAAI,GAAA,GAAM,CAAA;AACV,UAAA,KAAA,IAAS,IAAI,CAAA,EAAG,CAAA,IAAK,GAAG,CAAA,EAAA,EAAK,GAAA,IAAO,KAAK,CAAC,CAAA;AAC1C,UAAA,OAAA,GAAU,GAAA,GAAM,MAAA;AAChB,UAAA,MAAA,CAAO,KAAK,OAAO,CAAA;AAAA,QACrB,CAAA,MAAO;AACL,UAAA,MAAA,CAAO,KAAK,IAAI,CAAA;AAAA,QAClB;AAAA,MACF,CAAA,MAAO;AACL,QAAA,OAAA,GAAU,IAAA,CAAK,CAAC,CAAA,GAAI,KAAA,GAAQ,WAAW,CAAA,GAAI,KAAA,CAAA;AAC3C,QAAA,MAAA,CAAO,KAAK,OAAO,CAAA;AAAA,MACrB;AAAA,IACF;AACA,IAAA,OAAO,MAAA;AAAA,EACT,CAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,GAAA,EAAK,CAAC,IAAA,EAAgB,MAAA,KAAsC;AAC1D,IAAA,MAAM,SAA4B,EAAC;AACnC,IAAA,MAAM,QAAQ,CAAA,GAAI,MAAA;AAClB,IAAA,IAAI,OAAA,GAAyB,IAAA;AAE7B,IAAA,KAAA,IAAS,CAAA,GAAI,CAAA,EAAG,CAAA,GAAI,IAAA,CAAK,QAAQ,CAAA,EAAA,EAAK;AACpC,MAAA,IAAI,YAAY,IAAA,EAAM;AACpB,QAAA,IAAI,CAAA,KAAM,SAAS,CAAA,EAAG;AACpB,UAAA,IAAI,GAAA,GAAM,CAAA;AACV,UAAA,KAAA,IAAS,IAAI,CAAA,EAAG,CAAA,IAAK,GAAG,CAAA,EAAA,EAAK,GAAA,IAAO,KAAK,CAAC,CAAA;AAC1C,UAAA,OAAA,GAAU,GAAA,GAAM,MAAA;AAChB,UAAA,MAAA,CAAO,KAAK,OAAO,CAAA;AAAA,QACrB,CAAA,MAAO;AACL,UAAA,MAAA,CAAO,KAAK,IAAI,CAAA;AAAA,QAClB;AAAA,MACF,CAAA,MAAO;AACL,QAAA,OAAA,GAAU,IAAA,CAAK,CAAC,CAAA,GAAI,KAAA,GAAQ,WAAW,CAAA,GAAI,KAAA,CAAA;AAC3C,QAAA,MAAA,CAAO,KAAK,OAAO,CAAA;AAAA,MACrB;AAAA,IACF;AACA,IAAA,OAAO,MAAA;AAAA,EACT,CAAA;AAAA;AAAA;AAAA;AAAA,EAKA,KAAA,EAAO,CAAC,IAAA,EAAgB,MAAA,KAAsC;AAC5D,IAAA,MAAM,SAA4B,EAAC;AACnC,IAAA,MAAM,GAAA,GAAM,EAAA,CAAG,GAAA,CAAI,IAAA,EAAM,MAAM,CAAA;AAE/B,IAAA,KAAA,IAAS,CAAA,GAAI,CAAA,EAAG,CAAA,GAAI,IAAA,CAAK,QAAQ,CAAA,EAAA,EAAK;AACpC,MAAA,MAAM,UAAA,GAAa,IAAI,CAAC,CAAA;AACxB,MAAA,IAAI,eAAe,IAAA,EAAM;AACvB,QAAA,MAAA,CAAO,KAAK,IAAI,CAAA;AAAA,MAClB,CAAA,MAAO;AACL,QAAA,IAAI,KAAA,GAAQ,CAAA;AACZ,QAAA,KAAA,IAAS,CAAA,GAAI,CAAA,EAAG,CAAA,GAAI,MAAA,EAAQ,CAAA,EAAA,EAAK;AAC/B,UAAA,KAAA,IAAS,KAAK,GAAA,CAAI,IAAA,CAAK,IAAI,CAAC,CAAA,GAAI,YAAY,CAAC,CAAA;AAAA,QAC/C;AACA,QAAA,MAAA,CAAO,IAAA,CAAK,IAAA,CAAK,IAAA,CAAK,KAAA,GAAQ,MAAM,CAAC,CAAA;AAAA,MACvC;AAAA,IACF;AACA,IAAA,OAAO,MAAA;AAAA,EACT,CAAA;AAAA;AAAA;AAAA;AAAA,EAKA,GAAA,EAAK,CAAC,IAAA,EAAgB,MAAA,KAAsC;AAC1D,IAAA,MAAM,OAAA,GAAoB,CAAC,CAAC,CAAA;AAC5B,IAAA,KAAA,IAAS,CAAA,GAAI,CAAA,EAAG,CAAA,GAAI,IAAA,CAAK,QAAQ,CAAA,EAAA,EAAK;AACpC,MAAA,OAAA,CAAQ,KAAK,IAAA,CAAK,CAAC,IAAI,IAAA,CAAK,CAAA,GAAI,CAAC,CAAC,CAAA;AAAA,IACpC;AAEA,IAAA,MAAM,GAAA,GAAM,QAAQ,GAAA,CAAI,CAAC,MAAM,IAAA,CAAK,GAAA,CAAI,CAAA,EAAG,CAAC,CAAC,CAAA;AAC7C,IAAA,MAAM,KAAA,GAAQ,OAAA,CAAQ,GAAA,CAAI,CAAC,CAAA,KAAM,KAAK,GAAA,CAAI,CAAC,CAAA,EAAG,CAAC,CAAC,CAAA;AAEhD,IAAA,MAAM,MAAA,GAAS,EAAA,CAAG,GAAA,CAAI,GAAA,EAAK,MAAM,CAAA;AACjC,IAAA,MAAM,QAAA,GAAW,EAAA,CAAG,GAAA,CAAI,KAAA,EAAO,MAAM,CAAA;AAErC,IAAA,OAAO,MAAA,CAAO,GAAA,CAAI,CAAC,EAAA,EAAI,CAAA,KAAM;AAC3B,MAAA,MAAM,IAAA,GAAO,SAAS,CAAC,CAAA;AACvB,MAAA,IAAI,EAAA,KAAO,IAAA,IAAQ,IAAA,KAAS,IAAA,EAAM,OAAO,IAAA;AACzC,MAAA,IAAI,IAAA,KAAS,GAAG,OAAO,GAAA;AACvB,MAAA,MAAM,KAAK,EAAA,GAAK,IAAA;AAChB,MAAA,OAAO,GAAA,GAAM,OAAO,CAAA,GAAI,EAAA,CAAA;AAAA,IAC1B,CAAC,CAAA;AAAA,EACH,CAAA;AAAA;AAAA;AAAA;AAAA,EAKA,IAAA,EAAM,CACJ,IAAA,EACA,UAAA,EACA,YACA,YAAA,KACG;AACH,IAAA,MAAM,OAAA,GAAU,EAAA,CAAG,GAAA,CAAI,IAAA,EAAM,UAAU,CAAA;AACvC,IAAA,MAAM,OAAA,GAAU,EAAA,CAAG,GAAA,CAAI,IAAA,EAAM,UAAU,CAAA;AACvC,IAAA,MAAM,MAAM,OAAA,CAAQ,GAAA;AAAA,MAAI,CAAC,CAAA,EAAG,CAAA,KAC1B,CAAA,KAAM,IAAA,IAAQ,OAAA,CAAQ,CAAC,CAAA,KAAM,IAAA,GACzB,CAAA,GAAK,OAAA,CAAQ,CAAC,CAAA,GACd;AAAA,KACN;AACA,IAAA,MAAM,MAAM,EAAA,CAAG,GAAA;AAAA,MACb,GAAA,CAAI,MAAA,CAAO,CAAC,CAAA,KAAM,MAAM,IAAI,CAAA;AAAA,MAC5B;AAAA,KACF;AAEA,IAAA,IAAI,MAAA,GAAS,CAAA;AACb,IAAA,MAAM,OAAA,GAAU,GAAA,CAAI,GAAA,CAAI,CAAC,CAAA,KAAO,MAAM,IAAA,GAAO,IAAA,GAAO,GAAA,CAAI,MAAA,EAAQ,CAAE,CAAA;AAClE,IAAA,MAAM,OAAO,GAAA,CAAI,GAAA;AAAA,MAAI,CAAC,CAAA,EAAG,CAAA,KACvB,CAAA,KAAM,IAAA,IAAQ,OAAA,CAAQ,CAAC,CAAA,KAAM,IAAA,GACzB,CAAA,GAAK,OAAA,CAAQ,CAAC,CAAA,GACd;AAAA,KACN;AAEA,IAAA,OAAO,EAAE,GAAA,EAAK,GAAA,EAAK,OAAA,EAAS,IAAA,EAAK;AAAA,EACnC,CAAA;AAAA;AAAA;AAAA;AAAA,EAKA,SAAA,EAAW,CAAC,IAAA,EAAgB,MAAA,EAAgB,UAAA,KAAuB;AACjE,IAAA,MAAM,GAAA,GAAM,EAAA,CAAG,GAAA,CAAI,IAAA,EAAM,MAAM,CAAA;AAC/B,IAAA,MAAM,GAAA,GAAM,EAAA,CAAG,KAAA,CAAM,IAAA,EAAM,MAAM,CAAA;AACjC,IAAA,MAAM,QAAQ,GAAA,CAAI,GAAA;AAAA,MAAI,CAAC,CAAA,EAAG,CAAA,KACxB,CAAA,KAAM,IAAA,IAAQ,GAAA,CAAI,CAAC,CAAA,KAAM,IAAA,GACrB,CAAA,GAAI,UAAA,GAAc,GAAA,CAAI,CAAC,CAAA,GACvB;AAAA,KACN;AACA,IAAA,MAAM,QAAQ,GAAA,CAAI,GAAA;AAAA,MAAI,CAAC,CAAA,EAAG,CAAA,KACxB,CAAA,KAAM,IAAA,IAAQ,GAAA,CAAI,CAAC,CAAA,KAAM,IAAA,GACrB,CAAA,GAAI,UAAA,GAAc,GAAA,CAAI,CAAC,CAAA,GACvB;AAAA,KACN;AAEA,IAAA,OAAO,EAAE,GAAA,EAAK,KAAA,EAAO,KAAA,EAAM;AAAA,EAC7B,CAAA;AAAA;AAAA;AAAA;AAAA,EAKA,GAAA,EAAK,CAAC,IAAA,EAAgB,MAAA,KAAsC;AAC1D,IAAA,MAAM,SAA4B,EAAC;AACnC,IAAA,IAAI,SAAA,GAAY,CAAA;AAChB,IAAA,KAAA,IAAS,CAAA,GAAI,CAAA,EAAG,CAAA,IAAK,MAAA,EAAQ,KAAK,SAAA,IAAa,CAAA;AAE/C,IAAA,KAAA,IAAS,CAAA,GAAI,CAAA,EAAG,CAAA,GAAI,IAAA,CAAK,QAAQ,CAAA,EAAA,EAAK;AACpC,MAAA,IAAI,CAAA,GAAI,SAAS,CAAA,EAAG;AAClB,QAAA,MAAA,CAAO,KAAK,IAAI,CAAA;AAAA,MAClB,CAAA,MAAO;AACL,QAAA,IAAI,GAAA,GAAM,CAAA;AACV,QAAA,KAAA,IAAS,CAAA,GAAI,CAAA,EAAG,CAAA,GAAI,MAAA,EAAQ,CAAA,EAAA,EAAK;AAC/B,UAAA,GAAA,IAAO,IAAA,CAAK,CAAA,GAAI,CAAC,CAAA,IAAK,MAAA,GAAS,CAAA,CAAA;AAAA,QACjC;AACA,QAAA,MAAA,CAAO,IAAA,CAAK,MAAM,SAAS,CAAA;AAAA,MAC7B;AAAA,IACF;AACA,IAAA,OAAO,MAAA;AAAA,EACT,CAAA;AAAA;AAAA;AAAA;AAAA,EAKA,EAAA,EAAI,CAAC,KAAA,EAAiB,IAAA,EAAgB,MAAA,KAA+B;AACnE,IAAA,MAAM,SAAmB,EAAC;AAC1B,IAAA,KAAA,IAAS,CAAA,GAAI,CAAA,EAAG,CAAA,GAAI,KAAA,CAAM,QAAQ,CAAA,EAAA,EAAK;AACrC,MAAA,IAAI,MAAM,CAAA,EAAG;AACX,QAAA,MAAA,CAAO,KAAK,KAAA,CAAM,CAAC,CAAA,GAAI,IAAA,CAAK,CAAC,CAAC,CAAA;AAAA,MAChC,CAAA,MAAO;AACL,QAAA,MAAM,KAAK,IAAA,CAAK,GAAA;AAAA,UACd,KAAA,CAAM,CAAC,CAAA,GAAI,IAAA,CAAK,CAAC,CAAA;AAAA,UACjB,IAAA,CAAK,IAAI,KAAA,CAAM,CAAC,IAAI,MAAA,CAAO,CAAA,GAAI,CAAC,CAAC,CAAA;AAAA,UACjC,IAAA,CAAK,IAAI,IAAA,CAAK,CAAC,IAAI,MAAA,CAAO,CAAA,GAAI,CAAC,CAAC;AAAA,SAClC;AACA,QAAA,MAAA,CAAO,KAAK,EAAE,CAAA;AAAA,MAChB;AAAA,IACF;AACA,IAAA,OAAO,MAAA;AAAA,EACT,CAAA;AAAA;AAAA;AAAA;AAAA,EAKA,GAAA,EAAK,CACH,KAAA,EACA,IAAA,EACA,QACA,MAAA,KACsB;AACtB,IAAA,MAAM,EAAA,GAAK,EAAA,CAAG,EAAA,CAAG,KAAA,EAAO,MAAM,MAAM,CAAA;AACpC,IAAA,OAAO,EAAA,CAAG,GAAA,CAAI,EAAA,EAAI,MAAM,CAAA;AAAA,EAC1B,CAAA;AAAA;AAAA;AAAA;AAAA,EAKA,IAAA,EAAM,CACJ,KAAA,EACA,IAAA,EACA,QACA,OAAA,KACsB;AACtB,IAAA,IAAI,WAAA,GAAc,CAAA;AAClB,IAAA,IAAI,gBAAA,GAAmB,CAAA;AACvB,IAAA,OAAO,KAAA,CAAM,GAAA,CAAI,CAAC,CAAA,EAAG,CAAA,KAAM;AACzB,MAAA,MAAM,SAAS,CAAA,GAAI,IAAA,CAAK,CAAC,CAAA,GAAI,MAAA,CAAO,CAAC,CAAA,IAAK,CAAA;AAC1C,MAAA,WAAA,IAAe,QAAQ,CAAC,CAAA;AACxB,MAAA,gBAAA,IAAoB,KAAA,GAAQ,QAAQ,CAAC,CAAA;AACrC,MAAA,OAAO,WAAA,KAAgB,CAAA,GAAI,KAAA,GAAQ,gBAAA,GAAmB,WAAA;AAAA,IACxD,CAAC,CAAA;AAAA,EACH,CAAA;AAAA;AAAA;AAAA;AAAA,EAKA,GAAA,EAAK,CACH,KAAA,EACA,IAAA,EACA,QACA,MAAA,KACsB;AACtB,IAAA,MAAM,EAAA,GAAK,KAAA,CAAM,GAAA,CAAI,CAAC,CAAA,EAAG,CAAA,KAAA,CAAO,CAAA,GAAI,IAAA,CAAK,CAAC,CAAA,GAAI,MAAA,CAAO,CAAC,KAAK,CAAC,CAAA;AAC5D,IAAA,MAAM,KAAA,GAAQ,EAAA,CAAG,GAAA,CAAI,EAAA,EAAI,MAAM,CAAA;AAC/B,IAAA,MAAM,SAA4B,EAAC;AAEnC,IAAA,KAAA,IAAS,CAAA,GAAI,CAAA,EAAG,CAAA,GAAI,EAAA,CAAG,QAAQ,CAAA,EAAA,EAAK;AAClC,MAAA,MAAM,UAAA,GAAa,MAAM,CAAC,CAAA;AAC1B,MAAA,IAAI,eAAe,IAAA,EAAM;AACvB,QAAA,MAAA,CAAO,KAAK,IAAI,CAAA;AAAA,MAClB,CAAA,MAAO;AACL,QAAA,IAAI,OAAA,GAAU,CAAA;AACd,QAAA,KAAA,IAAS,CAAA,GAAI,CAAA,EAAG,CAAA,GAAI,MAAA,EAAQ,CAAA,EAAA,EAAK;AAC/B,UAAA,OAAA,IAAW,KAAK,GAAA,CAAI,EAAA,CAAG,CAAA,GAAI,CAAC,IAAI,UAAU,CAAA;AAAA,QAC5C;AACA,QAAA,OAAA,IAAW,MAAA;AACX,QAAA,IAAI,YAAY,CAAA,EAAG;AACjB,UAAA,MAAA,CAAO,KAAK,CAAC,CAAA;AAAA,QACf,CAAA,MAAO;AACL,UAAA,MAAA,CAAO,MAAM,EAAA,CAAG,CAAC,CAAA,GAAI,UAAA,KAAe,QAAQ,OAAA,CAAQ,CAAA;AAAA,QACtD;AAAA,MACF;AAAA,IACF;AACA,IAAA,OAAO,MAAA;AAAA,EACT,CAAA;AAAA;AAAA;AAAA;AAAA,EAKA,GAAA,EAAK,CAAC,IAAA,EAAgB,MAAA,KAAsC;AAC1D,IAAA,MAAM,UAAA,GAAa,IAAA,CAAK,KAAA,CAAM,MAAA,GAAS,CAAC,CAAA;AACxC,IAAA,MAAM,aAAa,IAAA,CAAK,KAAA,CAAM,IAAA,CAAK,IAAA,CAAK,MAAM,CAAC,CAAA;AAC/C,IAAA,MAAM,IAAA,GAAO,EAAA,CAAG,GAAA,CAAI,IAAA,EAAM,UAAU,CAAA;AACpC,IAAA,MAAM,IAAA,GAAO,EAAA,CAAG,GAAA,CAAI,IAAA,EAAM,MAAM,CAAA;AAEhC,IAAA,MAAM,IAAA,GAAO,IAAA,CAAK,GAAA,CAAI,CAAC,GAAG,CAAA,KAAM;AAC9B,MAAA,IAAI,CAAA,KAAM,IAAA,IAAQ,IAAA,CAAK,CAAC,MAAM,IAAA,EAAM;AAClC,QAAA,OAAO,CAAA,GAAI,CAAA,GAAK,IAAA,CAAK,CAAC,CAAA;AAAA,MACxB;AACA,MAAA,OAAO,IAAA;AAAA,IACT,CAAC,CAAA;AAED,IAAA,MAAM,aAAa,IAAA,CAAK,MAAA,CAAO,CAAC,CAAA,KAAM,MAAM,IAAI,CAAA;AAChD,IAAA,MAAM,QAAA,GAAW,EAAA,CAAG,GAAA,CAAI,UAAA,EAAY,UAAU,CAAA;AAE9C,IAAA,IAAI,UAAA,GAAa,CAAA;AACjB,IAAA,OAAO,IAAA,CAAK,GAAA,CAAI,CAAC,CAAA,KAAM;AACrB,MAAA,IAAI,CAAA,KAAM,MAAM,OAAO,IAAA;AACvB,MAAA,OAAO,QAAA,CAAS,YAAY,CAAA,IAAK,IAAA;AAAA,IACnC,CAAC,CAAA;AAAA,EACH;AACF,CAAA;AAEA,IAAO,UAAA,GAAQ;;;ACtTf,IAAM,MAAA,GAA4B;AAAA,EAChC,IAAA,EAAM,SAAA;AAAA,EACN,SAAA,EAAW,WAAA;AAAA,EACX,UAAA,EAAY,CAAC,EAAA,EAAI,CAAC,CAAA;AAAA,EAClB,OAAA,EAAS;AAAA,IACP,EAAE,GAAA,EAAK,KAAA,EAAO,KAAA,EAAO,OAAA,EAAS,MAAM,MAAA,EAAO;AAAA,IAC3C,EAAE,GAAA,EAAK,OAAA,EAAS,KAAA,EAAO,SAAA,EAAW,MAAM,MAAA,EAAO;AAAA,IAC/C,EAAE,GAAA,EAAK,OAAA,EAAS,KAAA,EAAO,SAAA,EAAW,MAAM,MAAA;AAAO,GACjD;AAAA,EACA,IAAA,EAAM,CAAC,QAAA,EAAuB,SAAA,KAAyB;AACrD,IAAA,MAAM,MAAA,GAAS,SAAA,CAAU,UAAA,CAAW,CAAC,CAAA;AACrC,IAAA,MAAM,UAAA,GAAa,SAAA,CAAU,UAAA,CAAW,CAAC,CAAA;AACzC,IAAA,MAAM,SAAS,QAAA,CAAS,GAAA,CAAI,CAAC,CAAA,KAAM,EAAE,KAAK,CAAA;AAC1C,IAAA,MAAM,EAAE,KAAK,KAAA,EAAO,KAAA,KAAU,UAAA,CAAG,SAAA,CAAU,MAAA,EAAQ,MAAA,EAAQ,UAAU,CAAA;AACrE,IAAA,OAAO,QAAA,CAAS,GAAA,CAAI,CAAC,CAAA,EAAG,CAAA,MAAO;AAAA,MAC7B,GAAA,EAAK,IAAI,CAAC,CAAA;AAAA,MACV,KAAA,EAAO,MAAM,CAAC,CAAA;AAAA,MACd,KAAA,EAAO,MAAM,CAAC;AAAA,KAChB,CAAE,CAAA;AAAA,EACJ;AACF,CAAA;AAEA,IAAO,cAAA,GAAQ;;;ACtBf,IAAM,GAAA,GAAyB;AAAA,EAC7B,IAAA,EAAM,QAAA;AAAA,EACN,SAAA,EAAW,KAAA;AAAA,EACX,UAAA,EAAY,CAAC,EAAE,CAAA;AAAA,EACf,OAAA,EAAS,CAAC,EAAE,GAAA,EAAK,OAAO,KAAA,EAAO,OAAA,EAAS,IAAA,EAAM,MAAA,EAAQ,CAAA;AAAA,EACtD,IAAA,EAAM,CAAC,QAAA,EAAuB,SAAA,KAAyB;AACrD,IAAA,MAAM,MAAA,GAAS,SAAA,CAAU,UAAA,CAAW,CAAC,CAAA;AACrC,IAAA,MAAM,QAAQ,QAAA,CAAS,GAAA,CAAI,CAAC,CAAA,KAAM,EAAE,IAAI,CAAA;AACxC,IAAA,MAAM,OAAO,QAAA,CAAS,GAAA,CAAI,CAAC,CAAA,KAAM,EAAE,GAAG,CAAA;AACtC,IAAA,MAAM,SAAS,QAAA,CAAS,GAAA,CAAI,CAAC,CAAA,KAAM,EAAE,KAAK,CAAA;AAC1C,IAAA,MAAM,YAAY,UAAA,CAAG,GAAA,CAAI,KAAA,EAAO,IAAA,EAAM,QAAQ,MAAM,CAAA;AACpD,IAAA,OAAO,UAAU,GAAA,CAAI,CAAC,OAAO,EAAE,GAAA,EAAK,GAAE,CAAE,CAAA;AAAA,EAC1C;AACF,CAAA;AAEA,IAAO,WAAA,GAAQ;;;ACff,IAAM,GAAA,GAAyB;AAAA,EAC7B,IAAA,EAAM,KAAA;AAAA,EACN,SAAA,EAAW,KAAA;AAAA,EACX,UAAA,EAAY,CAAC,CAAC,CAAA;AAAA,EACd,OAAA,EAAS,CAAC,EAAE,GAAA,EAAK,OAAO,KAAA,EAAO,OAAA,EAAS,IAAA,EAAM,MAAA,EAAQ,CAAA;AAAA,EACtD,IAAA,EAAM,CAAC,QAAA,EAAuB,SAAA,KAAyB;AACrD,IAAA,MAAM,MAAA,GAAS,SAAA,CAAU,UAAA,CAAW,CAAC,CAAA;AACrC,IAAA,MAAM,UAAA,GAAa,IAAA,CAAK,KAAA,CAAM,MAAA,GAAS,CAAC,CAAA;AACxC,IAAA,MAAM,aAAa,IAAA,CAAK,KAAA,CAAM,IAAA,CAAK,IAAA,CAAK,MAAM,CAAC,CAAA;AAE/C,IAAA,MAAM,SAAS,QAAA,CAAS,GAAA,CAAI,CAAC,CAAA,KAAM,EAAE,KAAK,CAAA;AAC1C,IAAA,MAAM,IAAA,GAAO,UAAA,CAAG,GAAA,CAAI,MAAA,EAAQ,UAAU,CAAA;AACtC,IAAA,MAAM,IAAA,GAAO,UAAA,CAAG,GAAA,CAAI,MAAA,EAAQ,MAAM,CAAA;AAElC,IAAA,MAAM,IAAA,GAAO,IAAA,CAAK,GAAA,CAAI,CAAC,GAAG,CAAA,KAAM;AAC9B,MAAA,IAAI,CAAA,KAAM,IAAA,IAAQ,IAAA,CAAK,CAAC,MAAM,IAAA,EAAM;AAClC,QAAA,OAAO,CAAA,GAAI,CAAA,GAAK,IAAA,CAAK,CAAC,CAAA;AAAA,MACxB;AACA,MAAA,OAAO,IAAA;AAAA,IACT,CAAC,CAAA;AAED,IAAA,MAAM,aAAa,IAAA,CAAK,MAAA,CAAO,CAAC,CAAA,KAAM,MAAM,IAAI,CAAA;AAChD,IAAA,MAAM,QAAA,GAAW,UAAA,CAAG,GAAA,CAAI,UAAA,EAAY,UAAU,CAAA;AAE9C,IAAA,IAAI,UAAA,GAAa,CAAA;AACjB,IAAA,OAAO,IAAA,CAAK,GAAA,CAAI,CAAC,CAAA,KAAM;AACrB,MAAA,IAAI,CAAA,KAAM,IAAA,EAAM,OAAO,EAAE,KAAK,IAAA,EAAK;AACnC,MAAA,MAAM,GAAA,GAAM,SAAS,UAAA,EAAY,CAAA;AACjC,MAAA,OAAO,EAAE,KAAK,GAAA,EAAI;AAAA,IACpB,CAAC,CAAA;AAAA,EACH;AACF,CAAA;AAEA,IAAO,WAAA,GAAQ;;;AClCf,IAAM,QAAA,GAA8B;AAAA,EAClC,IAAA,EAAM,UAAA;AAAA,EACN,SAAA,EAAW,UAAA;AAAA,EACX,UAAA,EAAY,CAAC,CAAA,EAAG,EAAA,EAAI,IAAI,EAAE,CAAA;AAAA,EAC1B,OAAA,EAAS;AAAA,IACP,EAAE,GAAA,EAAK,QAAA,EAAU,KAAA,EAAO,UAAA,EAAY,MAAM,MAAA,EAAO;AAAA,IACjD,EAAE,GAAA,EAAK,OAAA,EAAS,KAAA,EAAO,SAAA,EAAW,MAAM,MAAA,EAAO;AAAA,IAC/C,EAAE,GAAA,EAAK,QAAA,EAAU,KAAA,EAAO,UAAA,EAAY,MAAM,MAAA,EAAO;AAAA,IACjD,EAAE,GAAA,EAAK,OAAA,EAAS,KAAA,EAAO,UAAA,EAAY,MAAM,MAAA,EAAO;AAAA,IAChD,EAAE,GAAA,EAAK,OAAA,EAAS,KAAA,EAAO,UAAA,EAAY,MAAM,MAAA;AAAO,GAClD;AAAA,EACA,IAAA,EAAM,CAAC,QAAA,EAAuB,SAAA,KAAyB;AACrD,IAAA,MAAM,SAAS,SAAA,CAAU,UAAA;AACzB,IAAA,MAAM,YAAA,GAAe,OAAO,CAAC,CAAA;AAC7B,IAAA,MAAM,WAAA,GAAc,OAAO,CAAC,CAAA;AAC5B,IAAA,MAAM,WAAA,GAAc,OAAO,CAAC,CAAA;AAC5B,IAAA,MAAM,MAAA,GAAS,OAAO,CAAC,CAAA;AAEvB,IAAA,MAAM,UAAA,GAAa,CAAC,IAAA,EAAmB,KAAA,EAAe,GAAA,KAAgB;AACpE,MAAA,IAAI,IAAA,GAAO,CAAA,QAAA;AACX,MAAA,IAAI,GAAA,GAAM,QAAA;AACV,MAAA,KAAA,IAAS,CAAA,GAAI,KAAA,EAAO,CAAA,IAAK,GAAA,EAAK,CAAA,EAAA,EAAK;AACjC,QAAA,IAAA,GAAO,KAAK,GAAA,CAAI,IAAA,EAAM,IAAA,CAAK,CAAC,EAAE,IAAI,CAAA;AAClC,QAAA,GAAA,GAAM,KAAK,GAAA,CAAI,GAAA,EAAK,IAAA,CAAK,CAAC,EAAE,GAAG,CAAA;AAAA,MACjC;AACA,MAAA,OAAA,CAAQ,OAAO,GAAA,IAAO,CAAA;AAAA,IACxB,CAAA;AAEA,IAAA,OAAO,QAAA,CAAS,GAAA,CAAI,CAAC,UAAA,EAAuB,KAAA,KAAkB;AAC5D,MAAA,MAAM,IAAA,GAAsC;AAAA,QAC1C,MAAA,EAAQ,IAAA;AAAA,QACR,KAAA,EAAO,IAAA;AAAA,QACP,MAAA,EAAQ,IAAA;AAAA,QACR,KAAA,EAAO,IAAA;AAAA,QACP,KAAA,EAAO;AAAA,OACT;AAEA,MAAA,IAAI,KAAA,IAAS,eAAe,CAAA,EAAG;AAC7B,QAAA,IAAA,CAAK,MAAA,GAAS,UAAA;AAAA,UACZ,QAAA;AAAA,UACA,QAAQ,YAAA,GAAe,CAAA;AAAA,UACvB;AAAA,SACF;AAAA,MACF;AAEA,MAAA,IAAI,KAAA,IAAS,cAAc,CAAA,EAAG;AAC5B,QAAA,IAAA,CAAK,QAAQ,UAAA,CAAW,QAAA,EAAU,KAAA,GAAQ,WAAA,GAAc,GAAG,KAAK,CAAA;AAAA,MAClE;AAMA,MAAA,MAAM,cAAc,KAAA,GAAQ,MAAA;AAC5B,MAAA,IAAI,eAAe,CAAA,EAAG;AACpB,QAAA,IAAA,CAAK,MAAA,GAAS,QAAA,CAAS,WAAW,CAAA,CAAE,KAAA;AAAA,MACtC;AAEA,MAAA,MAAM,YAAY,KAAA,GAAQ,MAAA;AAC1B,MAAA,IAAI,aAAa,CAAA,EAAG;AAClB,QAAA,MAAM,UAAA,GACJ,SAAA,IAAa,YAAA,GAAe,CAAA,GACxB,UAAA,CAAW,UAAU,SAAA,GAAY,YAAA,GAAe,CAAA,EAAG,SAAS,CAAA,GAC5D,IAAA;AACN,QAAA,MAAM,SAAA,GACJ,SAAA,IAAa,WAAA,GAAc,CAAA,GACvB,UAAA,CAAW,UAAU,SAAA,GAAY,WAAA,GAAc,CAAA,EAAG,SAAS,CAAA,GAC3D,IAAA;AAEN,QAAA,IAAI,UAAA,KAAe,IAAA,IAAQ,SAAA,KAAc,IAAA,EAAM;AAC7C,UAAA,IAAA,CAAK,KAAA,GAAA,CAAS,aAAa,SAAA,IAAa,CAAA;AAAA,QAC1C;AAEA,QAAA,IAAI,SAAA,IAAa,cAAc,CAAA,EAAG;AAChC,UAAA,IAAA,CAAK,KAAA,GAAQ,UAAA;AAAA,YACX,QAAA;AAAA,YACA,YAAY,WAAA,GAAc,CAAA;AAAA,YAC1B;AAAA,WACF;AAAA,QACF;AAAA,MACF;AAEA,MAAA,OAAO,IAAA;AAAA,IACT,CAAC,CAAA;AAAA,EACH;AACF,CAAA;AAEA,IAAO,gBAAA,GAAQ;;;ACtFf,IAAM,MAAA,GAAS;AAAA,EACb,SAAA;AAAA,EAAW,SAAA;AAAA,EAAW,SAAA;AAAA,EAAW,SAAA;AAAA,EAAW,SAAA;AAAA,EAC5C,SAAA;AAAA,EAAW,SAAA;AAAA,EAAW,SAAA;AAAA,EAAW,SAAA;AAAA,EAAW,SAAA;AAAA,EAC5C,SAAA;AAAA,EAAW,SAAA;AAAA,EAAW,SAAA;AAAA,EAAW,SAAA;AAAA,EAAW;AAC9C,CAAA;AAEA,IAAM,QAAA,GAA8B;AAAA,EAClC,IAAA,EAAM,WAAA;AAAA,EACN,SAAA,EAAW,QAAA;AAAA,EACX,MAAA,EAAQ,OAAA;AAAA,EACR,UAAA,EAAY,CAAC,EAAA,EAAI,EAAA,EAAI,IAAI,EAAE,CAAA;AAAA,EAC3B,OAAA,EAAS,KAAA,CAAM,IAAA,CAAK,EAAE,MAAA,EAAQ,EAAA,EAAI,CAAA,CAAE,GAAA,CAAI,CAAC,CAAA,EAAG,CAAA,MAAO;AAAA,IACjD,GAAA,EAAK,KAAK,CAAC,CAAA,CAAA;AAAA,IACX,KAAA,EAAO,CAAA,EAAA,EAAK,CAAA,GAAI,CAAC,CAAA,EAAA,CAAA;AAAA,IACjB,IAAA,EAAM,MAAA;AAAA,IACN,QAAQ,OAAO,EAAE,KAAA,EAAO,MAAA,CAAO,CAAC,CAAA,EAAE;AAAA,GACpC,CAAE,CAAA;AAAA,EACF,IAAA,EAAM,CAAC,QAAA,EAAuB,SAAA,KAAyB;AACrD,IAAA,MAAM,SAAS,SAAA,CAAU,UAAA;AACzB,IAAA,MAAM,SAAS,QAAA,CAAS,GAAA,CAAI,CAAC,CAAA,KAAM,EAAE,KAAK,CAAA;AAC1C,IAAA,MAAM,QAAQ,IAAA,CAAK,GAAA,CAAI,MAAA,CAAO,MAAA,EAAQ,OAAO,MAAM,CAAA;AAEnD,IAAA,MAAM,OAA4B,EAAC;AACnC,IAAA,KAAA,IAAS,CAAA,GAAI,CAAA,EAAG,CAAA,GAAI,KAAA,EAAO,CAAA,EAAA,EAAK;AAC9B,MAAA,IAAA,CAAK,KAAK,UAAA,CAAG,GAAA,CAAI,QAAQ,MAAA,CAAO,CAAC,CAAC,CAAC,CAAA;AAAA,IACrC;AAEA,IAAA,OAAO,QAAA,CAAS,GAAA,CAAI,CAAC,CAAA,EAAG,CAAA,KAAM;AAC5B,MAAA,MAAM,UAAyC,EAAC;AAChD,MAAA,KAAA,IAAS,CAAA,GAAI,CAAA,EAAG,CAAA,GAAI,KAAA,EAAO,CAAA,EAAA,EAAK;AAC9B,QAAA,OAAA,CAAQ,KAAK,CAAC,CAAA,CAAE,IAAI,IAAA,CAAK,CAAC,EAAE,CAAC,CAAA;AAAA,MAC/B;AACA,MAAA,OAAO,OAAA;AAAA,IACT,CAAC,CAAA;AAAA,EACH;AACF,CAAA;AAEA,IAAO,gBAAA,GAAQ;;;ACrCf,IAAM,MAAA,GAA4B;AAAA,EAChC,IAAA,EAAM,SAAA;AAAA,EACN,SAAA,EAAW,WAAA;AAAA,EACX,UAAA,EAAY,CAAC,EAAA,EAAI,EAAA,EAAI,CAAC,CAAA;AAAA,EACtB,OAAA,EAAS;AAAA,IACP;AAAA,MACE,GAAA,EAAK,WAAA;AAAA,MACL,KAAA,EAAO,aAAA;AAAA,MACP,IAAA,EAAM,KAAA;AAAA,MACN,SAAA,EAAW,CAAA;AAAA,MACX,MAAA,EAAQ,CAAC,IAAA,KAAc;AACrB,QAAA,MAAM,OAAA,GAAU,IAAA,CAAK,OAAA,EAAS,SAAA,IAAa,CAAA;AAC3C,QAAA,MAAM,GAAA,GAAM,IAAA,CAAK,IAAA,EAAM,SAAA,IAAa,CAAA;AAEpC,QAAA,MAAM,KAAA,GACJ,OAAA,GAAU,CAAA,GACN,OAAA,GAAU,GAAA,GACR,SAAA,GACA,SAAA,GACF,OAAA,GAAU,CAAA,GACR,OAAA,GAAU,GAAA,GACR,SAAA,GACA,SAAA,GACF,SAAA;AAER,QAAA,OAAO,EAAE,KAAA,EAAM;AAAA,MACjB;AAAA,KACF;AAAA,IACA;AAAA,MACE,GAAA,EAAK,MAAA;AAAA,MACL,KAAA,EAAO,QAAA;AAAA,MACP,IAAA,EAAM,MAAA;AAAA,MACN,MAAA,EAAQ,OAAO,EAAE,KAAA,EAAO,SAAA,EAAU;AAAA,KACpC;AAAA,IACA;AAAA,MACE,GAAA,EAAK,QAAA;AAAA,MACL,KAAA,EAAO,UAAA;AAAA,MACP,IAAA,EAAM,MAAA;AAAA,MACN,MAAA,EAAQ,OAAO,EAAE,KAAA,EAAO,SAAA,EAAU;AAAA;AACpC,GACF;AAAA,EACA,IAAA,EAAM,CAAC,QAAA,EAAuB,SAAA,KAAyB;AACrD,IAAA,MAAM,IAAA,GAAO,SAAA,CAAU,UAAA,CAAW,CAAC,CAAA;AACnC,IAAA,MAAM,IAAA,GAAO,SAAA,CAAU,UAAA,CAAW,CAAC,CAAA;AACnC,IAAA,MAAM,SAAA,GAAY,SAAA,CAAU,UAAA,CAAW,CAAC,CAAA;AAExC,IAAA,MAAM,SAAS,QAAA,CAAS,GAAA,CAAI,CAAC,CAAA,KAAM,EAAE,KAAK,CAAA;AAC1C,IAAA,MAAM,EAAE,GAAA,EAAK,GAAA,EAAK,IAAA,EAAK,GAAI,WAAG,IAAA,CAAK,MAAA,EAAQ,IAAA,EAAM,IAAA,EAAM,SAAS,CAAA;AAEhE,IAAA,OAAO,QAAA,CAAS,GAAA,CAAI,CAAC,CAAA,EAAG,CAAA,MAAO;AAAA,MAC7B,IAAA,EAAM,IAAI,CAAC,CAAA;AAAA,MACX,MAAA,EAAQ,IAAI,CAAC,CAAA;AAAA,MACb,SAAA,EAAW,KAAK,CAAC;AAAA,KACnB,CAAE,CAAA;AAAA,EACJ;AACF,CAAA;AAEA,IAAO,cAAA,GAAQ;;;AC1Df,IAAM,WAAA,GAAiC;AAAA,EACrC,IAAA,EAAM,aAAA;AAAA,EACN,SAAA,EAAW,OAAA;AAAA,EACX,YAAY,EAAC;AAAA,EACb,OAAA,EAAS;AAAA,IACP,EAAE,GAAA,EAAK,GAAA,EAAK,KAAA,EAAO,KAAA,EAAO,MAAM,MAAA,EAAO;AAAA,IACvC,EAAE,GAAA,EAAK,IAAA,EAAM,KAAA,EAAO,MAAA,EAAQ,MAAM,MAAA,EAAO;AAAA,IACzC,EAAE,GAAA,EAAK,IAAA,EAAM,KAAA,EAAO,MAAA,EAAQ,MAAM,MAAA,EAAO;AAAA,IACzC,EAAE,GAAA,EAAK,IAAA,EAAM,KAAA,EAAO,MAAA,EAAQ,MAAM,MAAA,EAAO;AAAA,IACzC,EAAE,GAAA,EAAK,IAAA,EAAM,KAAA,EAAO,MAAA,EAAQ,MAAM,MAAA;AAAO,GAC3C;AAAA,EACA,IAAA,EAAM,CAAC,QAAA,KAA0B;AAC/B,IAAA,IAAI,KAAA,GAAuB,IAAA;AAC3B,IAAA,IAAI,MAAA,GAAwB,IAAA;AAC5B,IAAA,IAAI,MAAA,GAAwB,IAAA;AAC5B,IAAA,IAAI,MAAA,GAAwB,IAAA;AAC5B,IAAA,IAAI,MAAA,GAAwB,IAAA;AAC5B,IAAA,IAAI,QAAA,GAAW,EAAA;AACf,IAAA,IAAI,OAAA,GAAU,CAAA,QAAA;AACd,IAAA,IAAI,MAAA,GAAS,QAAA;AACb,IAAA,IAAI,QAAA,GAAW,CAAA;AAEf,IAAA,OAAO,QAAA,CAAS,GAAA,CAAI,CAAC,SAAA,KAAyB;AAG5C,MAAA,MAAM,IAAA,GAAO,IAAI,IAAA,CAAK,SAAA,CAAU,SAAS,EAAE,WAAA,EAAY,CAAE,KAAA,CAAM,CAAA,EAAG,EAAE,CAAA;AACpE,MAAA,IAAI,SAAS,QAAA,EAAU;AACrB,QAAA,IAAI,aAAa,EAAA,EAAI;AACnB,UAAA,KAAA,GAAA,CAAS,OAAA,GAAU,SAAS,QAAA,IAAY,CAAA;AACxC,UAAA,MAAA,GAAS,IAAI,KAAA,GAAQ,MAAA;AACrB,UAAA,MAAA,GAAS,IAAI,KAAA,GAAQ,OAAA;AACrB,UAAA,MAAA,GAAS,SAAS,OAAA,GAAU,MAAA,CAAA;AAC5B,UAAA,MAAA,GAAS,SAAS,OAAA,GAAU,MAAA,CAAA;AAAA,QAC9B;AACA,QAAA,OAAA,GAAU,SAAA,CAAU,IAAA;AACpB,QAAA,MAAA,GAAS,SAAA,CAAU,GAAA;AACnB,QAAA,QAAA,GAAW,SAAA,CAAU,KAAA;AACrB,QAAA,QAAA,GAAW,IAAA;AAAA,MACb,CAAA,MAAO;AACL,QAAA,OAAA,GAAU,IAAA,CAAK,GAAA,CAAI,OAAA,EAAS,SAAA,CAAU,IAAI,CAAA;AAC1C,QAAA,MAAA,GAAS,IAAA,CAAK,GAAA,CAAI,MAAA,EAAQ,SAAA,CAAU,GAAG,CAAA;AACvC,QAAA,QAAA,GAAW,SAAA,CAAU,KAAA;AAAA,MACvB;AAEA,MAAA,OAAO;AAAA,QACL,CAAA,EAAG,KAAA;AAAA,QACH,EAAA,EAAI,MAAA;AAAA,QACJ,EAAA,EAAI,MAAA;AAAA,QACJ,EAAA,EAAI,MAAA;AAAA,QACJ,EAAA,EAAI;AAAA,OACN;AAAA,IACF,CAAC,CAAA;AAAA,EACH;AACF,CAAA;AAEA,IAAO,mBAAA,GAAQ;;;AClDf,IAAM,KAAA,GAA2B;AAAA,EAC/B,IAAA,EAAM,QAAA;AAAA,EACN,SAAA,EAAW,UAAA;AAAA,EACX,UAAA,EAAY,CAAC,EAAA,EAAI,EAAE,CAAA;AAAA,EACnB,OAAA,EAAS;AAAA,IACP;AAAA,MACE,GAAA,EAAK,KAAA;AAAA,MACL,KAAA,EAAO,OAAA;AAAA,MACP,IAAA,EAAM,MAAA;AAAA,MACN,QAAQ,OAAO,EAAE,KAAA,EAAO,SAAA,EAAW,MAAM,GAAA,EAAI;AAAA,KAC/C;AAAA,IACA;AAAA,MACE,GAAA,EAAK,QAAA;AAAA,MACL,KAAA,EAAO,MAAA;AAAA,MACP,IAAA,EAAM,MAAA;AAAA,MACN,QAAQ,OAAO,EAAE,KAAA,EAAO,SAAA,EAAW,MAAM,GAAA,EAAI;AAAA;AAC/C,GACF;AAAA,EACA,IAAA,EAAM,CAAC,QAAA,EAAuB,SAAA,KAAyB;AACrD,IAAA,MAAM,SAAA,GAAY,SAAA,CAAU,UAAA,CAAW,CAAC,CAAA;AACxC,IAAA,MAAM,QAAA,GAAW,SAAA,CAAU,UAAA,CAAW,CAAC,CAAA;AACvC,IAAA,MAAM,SAAS,QAAA,CAAS,GAAA,CAAI,CAAC,CAAA,KAAM,EAAE,KAAK,CAAA;AAE1C,IAAA,MAAM,SAAA,GAAY,UAAA,CAAG,GAAA,CAAI,MAAA,EAAQ,SAAS,CAAA;AAM1C,IAAA,MAAM,QAA2B,IAAI,KAAA,CAAM,UAAU,MAAM,CAAA,CAAE,KAAK,IAAI,CAAA;AACtE,IAAA,KAAA,IAAS,CAAA,GAAI,CAAA,EAAG,CAAA,GAAI,SAAA,CAAU,QAAQ,CAAA,EAAA,EAAK;AACzC,MAAA,IAAI,SAAA,CAAU,CAAC,CAAA,KAAM,IAAA,EAAM;AAG3B,MAAA,MAAM,QAAkB,EAAC;AACzB,MAAA,KAAA,IAAS,IAAI,CAAA,EAAG,CAAA,IAAK,KAAK,KAAA,CAAM,MAAA,GAAS,UAAU,CAAA,EAAA,EAAK;AACtD,QAAA,IAAI,SAAA,CAAU,CAAC,CAAA,KAAM,IAAA,QAAY,IAAA,CAAK,SAAA,CAAU,CAAC,CAAW,CAAA;AAAA,MAC9D;AACA,MAAA,IAAI,KAAA,CAAM,WAAW,QAAA,EAAU;AAC7B,QAAA,KAAA,CAAM,CAAC,CAAA,GAAI,KAAA,CAAM,MAAA,CAAO,CAAC,GAAG,CAAA,KAAM,CAAA,GAAI,CAAA,EAAG,CAAC,CAAA,GAAI,QAAA;AAAA,MAChD;AAAA,IACF;AAEA,IAAA,OAAO,QAAA,CAAS,GAAA,CAAI,CAAC,CAAA,EAAG,CAAA,KAAM;AAC5B,MAAA,MAAM,GAAA,GAAM,UAAU,CAAC,CAAA;AACvB,MAAA,MAAM,MAAA,GAAS,GAAA,KAAQ,IAAA,GAAO,KAAA,CAAM,CAAC,CAAA,GAAI,IAAA;AACzC,MAAA,OAAO,EAAE,KAAK,MAAA,EAAO;AAAA,IACvB,CAAC,CAAA;AAAA,EACH,CAAA;AAAA,EACA,MAAM,CAAC;AAAA,IACL,GAAA;AAAA,IACA,KAAA;AAAA,IACA,SAAA;AAAA,IACA,QAAA;AAAA,IACA;AAAA,GACF,KAAoB;AAClB,IAAA,MAAM,EAAE,IAAA,EAAM,EAAA,EAAG,GAAI,MAAM,eAAA,EAAgB;AAC3C,IAAA,MAAM,QAAA,GAAW,MAAM,WAAA,EAAY;AACnC,IAAA,MAAM,aAAa,SAAA,CAAU,MAAA;AAI7B,IAAA,MAAM,GAAA,GAAM,KAAA,CAAM,cAAA,CAAe,EAAE,CAAA;AACnC,IAAA,MAAM,GAAA,GAAM,KAAA,CAAM,cAAA,CAAe,EAAE,CAAA;AACnC,IAAA,MAAM,GAAA,GAAM,KAAA,CAAM,cAAA,CAAe,EAAE,CAAA;AAEnC,IAAA,MAAM,OAAO,QAAA,CAAS,IAAA;AACtB,IAAA,MAAM,KAAA,GAAQ,QAAA,CAAS,IAAA,GAAO,QAAA,CAAS,KAAA;AAEvC,IAAA,MAAM,IAAA,GAAO,CAAC,CAAA,KACZ,KAAA,GAAQ,SAAS,OAAA,GAAA,CAAW,EAAA,GAAK,CAAA,GAAI,CAAA,IAAK,QAAA,CAAS,GAAA;AAErD,IAAA,GAAA,CAAI,IAAA,EAAK;AAET,IAAA,MAAM,QAAA,GAAW,CACf,UAAA,EACA,KAAA,EACA,UACA,MAAA,KACG;AACH,MAAA,MAAM,OAAA,GAAU,QACZ,CAAC,CAAA,KAAc,IAAI,EAAA,GACnB,CAAC,MAAc,CAAA,GAAI,EAAA;AAEvB,MAAA,IAAI,CAAA,GAAI,IAAA;AACR,MAAA,OAAO,IAAI,EAAA,EAAI;AACb,QAAA,OAAO,IAAI,EAAA,EAAI;AACb,UAAA,MAAM,CAAA,GAAI,WAAW,CAAC,CAAA;AACtB,UAAA,MAAM,IAAI,CAAA,EAAG,GAAA;AACb,UAAA,IAAI,MAAM,IAAA,IAAQ,CAAA,KAAM,MAAA,IAAa,OAAA,CAAQ,CAAC,CAAA,EAAG;AACjD,UAAA,CAAA,EAAA;AAAA,QACF;AACA,QAAA,IAAI,KAAK,EAAA,EAAI;AAEb,QAAA,MAAM,MAAkC,EAAC;AACzC,QAAA,OAAO,IAAI,EAAA,EAAI;AACb,UAAA,MAAM,CAAA,GAAI,WAAW,CAAC,CAAA;AACtB,UAAA,MAAM,IAAI,CAAA,EAAG,GAAA;AACb,UAAA,IAAI,MAAM,IAAA,IAAQ,CAAA,KAAM,UAAa,CAAC,OAAA,CAAQ,CAAC,CAAA,EAAG;AAClD,UAAA,GAAA,CAAI,IAAA,CAAK,EAAE,CAAA,EAAG,IAAA,CAAK,CAAC,CAAA,EAAG,CAAA,EAAG,KAAA,CAAM,cAAA,CAAe,CAAC,CAAA,EAAG,CAAA;AACnD,UAAA,CAAA,EAAA;AAAA,QACF;AACA,QAAA,IAAI,GAAA,CAAI,WAAW,CAAA,EAAG;AAEtB,QAAA,GAAA,CAAI,SAAA,EAAU;AACd,QAAA,GAAA,CAAI,MAAA,CAAO,GAAA,CAAI,CAAC,CAAA,CAAE,GAAG,UAAU,CAAA;AAC/B,QAAA,KAAA,MAAW,KAAK,GAAA,EAAK,GAAA,CAAI,OAAO,CAAA,CAAE,CAAA,EAAG,EAAE,CAAC,CAAA;AACxC,QAAA,GAAA,CAAI,OAAO,GAAA,CAAI,GAAA,CAAI,SAAS,CAAC,CAAA,CAAE,GAAG,UAAU,CAAA;AAC5C,QAAA,GAAA,CAAI,SAAA,EAAU;AAEd,QAAA,MAAM,MAAA,GAAS,UAAA;AACf,QAAA,MAAM,MAAA,GAAS,KAAA,GACX,IAAA,CAAK,GAAA,CAAI,GAAG,IAAI,GAAA,CAAI,CAAC,CAAA,KAAM,CAAA,CAAE,CAAC,CAAC,IAAI,CAAA,GACnC,IAAA,CAAK,GAAA,CAAI,GAAG,GAAA,CAAI,GAAA,CAAI,CAAC,CAAA,KAAM,CAAA,CAAE,CAAC,CAAC,CAAA,GAAI,CAAA;AACvC,QAAA,MAAM,OAAO,GAAA,CAAI,oBAAA,CAAqB,CAAA,EAAG,MAAA,EAAQ,GAAG,MAAM,CAAA;AAC1D,QAAA,IAAA,CAAK,YAAA,CAAa,GAAG,QAAQ,CAAA;AAC7B,QAAA,IAAA,CAAK,YAAA,CAAa,GAAG,MAAM,CAAA;AAE3B,QAAA,GAAA,CAAI,WAAA,GAAc,CAAA;AAClB,QAAA,GAAA,CAAI,SAAA,GAAY,IAAA;AAChB,QAAA,GAAA,CAAI,IAAA,EAAK;AAAA,MACX;AAAA,IACF,CAAA;AAEA,IAAA,QAAA;AAAA,MACE,GAAA;AAAA,MACA,IAAA;AAAA,MACA,qBAAA;AAAA,MACA;AAAA,KACF;AACA,IAAA,QAAA;AAAA,MACE,GAAA;AAAA,MACA,KAAA;AAAA,MACA,sBAAA;AAAA,MACA;AAAA,KACF;AAEA,IAAA,MAAM,QAAA,GAAW,CAAC,CAAA,EAAW,KAAA,EAAe,KAAA,KAAkB;AAC5D,MAAA,GAAA,CAAI,SAAA,EAAU;AACd,MAAA,GAAA,CAAI,WAAA,GAAc,KAAA;AAClB,MAAA,GAAA,CAAI,WAAA,CAAY,CAAC,CAAA,EAAG,CAAC,CAAC,CAAA;AACtB,MAAA,GAAA,CAAI,WAAA,GAAc,KAAA;AAClB,MAAA,GAAA,CAAI,SAAA,GAAY,CAAA;AAChB,MAAA,GAAA,CAAI,MAAA,CAAO,MAAM,CAAC,CAAA;AAClB,MAAA,GAAA,CAAI,MAAA,CAAO,OAAO,CAAC,CAAA;AACnB,MAAA,GAAA,CAAI,MAAA,EAAO;AAAA,IACb,CAAA;AAEA,IAAA,GAAA,CAAI,WAAA,GAAc,CAAA;AAClB,IAAA,QAAA,CAAS,GAAA,EAAK,WAAW,GAAG,CAAA;AAC5B,IAAA,QAAA,CAAS,GAAA,EAAK,WAAW,GAAG,CAAA;AAC5B,IAAA,QAAA,CAAS,GAAA,EAAK,WAAW,GAAG,CAAA;AAE5B,IAAA,GAAA,CAAI,OAAA,EAAQ;AACZ,IAAA,OAAO,KAAA;AAAA,EACT;AACF,CAAA;AAEA,IAAO,aAAA,GAAQ;;;ACnKf,SAAS,aAAA,CACP,MACA,MAAA,EACkC;AAClC,EAAA,MAAM,MAAgB,EAAC;AACvB,EAAA,MAAM,MAAgB,EAAC;AACvB,EAAA,KAAA,IAAS,CAAA,GAAI,CAAA,EAAG,CAAA,GAAI,IAAA,CAAK,QAAQ,CAAA,EAAA,EAAK;AACpC,IAAA,IAAI,CAAA,GAAI,SAAS,CAAA,EAAG;AAClB,MAAA,GAAA,CAAI,KAAK,GAAG,CAAA;AACZ,MAAA,GAAA,CAAI,KAAK,GAAG,CAAA;AAAA,IACd,CAAA,MAAO;AACL,MAAA,IAAI,EAAA,GAAK,KAAK,CAAC,CAAA;AACf,MAAA,IAAI,EAAA,GAAK,KAAK,CAAC,CAAA;AACf,MAAA,KAAA,IAAS,CAAA,GAAI,CAAA,EAAG,CAAA,GAAI,MAAA,EAAQ,CAAA,EAAA,EAAK;AAC/B,QAAA,IAAI,IAAA,CAAK,IAAI,CAAC,CAAA,GAAI,IAAI,EAAA,GAAK,IAAA,CAAK,IAAI,CAAC,CAAA;AACrC,QAAA,IAAI,IAAA,CAAK,IAAI,CAAC,CAAA,GAAI,IAAI,EAAA,GAAK,IAAA,CAAK,IAAI,CAAC,CAAA;AAAA,MACvC;AACA,MAAA,GAAA,CAAI,KAAK,EAAE,CAAA;AACX,MAAA,GAAA,CAAI,KAAK,EAAE,CAAA;AAAA,IACb;AAAA,EACF;AACA,EAAA,OAAO,EAAE,KAAK,GAAA,EAAI;AACpB;AAEA,SAAS,UAAA,CAAW,MAAgB,MAAA,EAA0B;AAC5D,EAAA,MAAM,SAAmB,EAAC;AAC1B,EAAA,IAAI,GAAA,GAAM,CAAA;AACV,EAAA,IAAI,KAAA,GAAQ,CAAA;AACZ,EAAA,IAAI,WAAA,GAAc,CAAA;AAElB,EAAA,KAAA,IAAS,CAAA,GAAI,CAAA,EAAG,CAAA,GAAI,IAAA,CAAK,QAAQ,CAAA,EAAA,EAAK;AACpC,IAAA,IAAI,CAAC,KAAA,CAAM,IAAA,CAAK,CAAC,CAAC,CAAA,EAAG;AACnB,MAAA,GAAA,IAAO,KAAK,CAAC,CAAA;AACb,MAAA,KAAA,EAAA;AAAA,IACF;AACA,IAAA,IAAI,KAAK,MAAA,EAAQ;AACf,MAAA,IAAI,CAAC,KAAA,CAAM,IAAA,CAAK,WAAW,CAAC,CAAA,EAAG;AAC7B,QAAA,GAAA,IAAO,KAAK,WAAW,CAAA;AACvB,QAAA,KAAA,EAAA;AAAA,MACF;AACA,MAAA,WAAA,EAAA;AAAA,IACF;AACA,IAAA,MAAA,CAAO,IAAA,CAAK,KAAA,KAAU,MAAA,GAAS,GAAA,GAAM,SAAS,GAAG,CAAA;AAAA,EACnD;AACA,EAAA,OAAO,MAAA;AACT;AAEA,IAAM,UAAA,GAAgC;AAAA,EACpC,IAAA,EAAM,YAAA;AAAA,EACN,SAAA,EAAW,OAAA;AAAA,EACX,UAAA,EAAY,CAAC,EAAA,EAAI,CAAA,EAAG,CAAC,CAAA;AAAA,EACrB,OAAA,EAAS;AAAA,IACP,EAAE,GAAA,EAAK,GAAA,EAAK,KAAA,EAAO,MAAA,EAAQ,MAAM,MAAA,EAAO;AAAA,IACxC,EAAE,GAAA,EAAK,GAAA,EAAK,KAAA,EAAO,MAAA,EAAQ,MAAM,MAAA;AAAO,GAC1C;AAAA,EACA,IAAA,EAAM,CAAC,QAAA,EAAuB,SAAA,KAAyB;AACrD,IAAA,MAAM,CAAC,MAAA,EAAQ,OAAA,EAAS,OAAO,IAAI,SAAA,CAAU,UAAA;AAE7C,IAAA,MAAM,QAAQ,QAAA,CAAS,GAAA,CAAI,CAAC,CAAA,KAAM,EAAE,IAAI,CAAA;AACxC,IAAA,MAAM,OAAO,QAAA,CAAS,GAAA,CAAI,CAAC,CAAA,KAAM,EAAE,GAAG,CAAA;AACtC,IAAA,MAAM,SAAS,QAAA,CAAS,GAAA,CAAI,CAAC,CAAA,KAAM,EAAE,KAAK,CAAA;AAE1C,IAAA,MAAM,EAAE,GAAA,EAAK,SAAA,EAAU,GAAI,aAAA,CAAc,MAAM,MAAM,CAAA;AACrD,IAAA,MAAM,EAAE,GAAA,EAAK,WAAA,EAAY,GAAI,aAAA,CAAc,OAAO,MAAM,CAAA;AAExD,IAAA,MAAM,IAAA,GAAO,MAAA,CAAO,GAAA,CAAI,CAAC,GAAG,CAAA,KAAM;AAChC,MAAA,MAAM,EAAA,GAAK,UAAU,CAAC,CAAA;AACtB,MAAA,MAAM,EAAA,GAAK,YAAY,CAAC,CAAA;AACxB,MAAA,IAAI,KAAA,CAAM,EAAE,CAAA,IAAK,KAAA,CAAM,EAAE,CAAA,IAAK,EAAA,KAAO,IAAI,OAAO,IAAA;AAChD,MAAA,OAAA,CAAS,CAAA,GAAI,EAAA,KAAO,EAAA,GAAK,EAAA,CAAA,GAAO,GAAA;AAAA,IAClC,CAAC,CAAA;AAED,IAAA,MAAM,SAAS,IAAA,CAAK,GAAA,CAAI,CAAC,CAAA,KAAM,KAAK,GAAG,CAAA;AACvC,IAAA,MAAM,SAAA,GAAY,UAAA,CAAW,MAAA,EAAQ,OAAO,CAAA;AAC5C,IAAA,MAAM,KAAA,GAAQ,UAAA,CAAW,SAAA,EAAW,OAAO,CAAA;AAE3C,IAAA,OAAO,SAAA,CAAU,GAAA,CAAI,CAAC,CAAA,EAAG,CAAA,MAAO;AAAA,MAC9B,CAAA,EAAG,KAAA,CAAM,CAAC,CAAA,GAAI,IAAA,GAAO,CAAA;AAAA,MACrB,CAAA,EAAG,MAAM,KAAA,CAAM,CAAC,CAAC,CAAA,GAAI,IAAA,GAAO,MAAM,CAAC;AAAA,KACrC,CAAE,CAAA;AAAA,EACJ;AACF,CAAA;AAEA,IAAO,kBAAA,GAAQ;;;AClFf,IAAM,UAAA,GAAgC;AAAA,EACpC,IAAA,EAAM,YAAA;AAAA,EACN,SAAA,EAAW,YAAA;AAAA,EACX,UAAA,EAAY,CAAC,EAAA,EAAI,CAAC,CAAA;AAAA,EAClB,OAAA,EAAS;AAAA,IACP,EAAE,GAAA,EAAK,IAAA,EAAM,KAAA,EAAO,MAAA,EAAQ,MAAM,MAAA,EAAO;AAAA,IACzC,EAAE,GAAA,EAAK,MAAA,EAAQ,KAAA,EAAO,QAAA,EAAU,MAAM,MAAA;AAAO,GAC/C;AAAA,EACA,IAAA,EAAM,CAAC,QAAA,EAAuB,SAAA,KAAyB;AACrD,IAAA,MAAM,MAAA,GAAS,SAAA,CAAU,UAAA,CAAW,CAAC,CAAA;AACrC,IAAA,MAAM,MAAA,GAAS,SAAA,CAAU,UAAA,CAAW,CAAC,CAAA;AAErC,IAAA,MAAM,QAAQ,QAAA,CAAS,GAAA,CAAI,CAAC,CAAA,KAAM,EAAE,IAAI,CAAA;AACxC,IAAA,MAAM,OAAO,QAAA,CAAS,GAAA,CAAI,CAAC,CAAA,KAAM,EAAE,GAAG,CAAA;AACtC,IAAA,MAAM,SAAS,QAAA,CAAS,GAAA,CAAI,CAAC,CAAA,KAAM,EAAE,KAAK,CAAA;AAC1C,IAAA,MAAM,MAAM,UAAA,CAAG,GAAA,CAAI,KAAA,EAAO,IAAA,EAAM,QAAQ,MAAM,CAAA;AAE9C,IAAA,IAAI,KAAA,GAAQ,CAAA;AACZ,IAAA,IAAI,EAAA,GAAK,CAAA;AACT,IAAA,IAAI,IAAA,GAAO,CAAA;AAEX,IAAA,OAAO,QAAA,CAAS,GAAA,CAAI,CAAC,SAAA,EAAsB,KAAA,KAAkB;AAC3D,MAAA,MAAM,UAAA,GAAa,IAAI,KAAK,CAAA;AAC5B,MAAA,IAAI,eAAe,IAAA,EAAM,OAAO,EAAE,EAAA,EAAI,IAAA,EAAM,MAAM,IAAA,EAAK;AAEvD,MAAA,MAAM,GAAA,GAAA,CAAO,SAAA,CAAU,IAAA,GAAO,SAAA,CAAU,GAAA,IAAO,CAAA;AAC/C,MAAA,MAAM,UAAA,GAAa,MAAM,MAAA,GAAS,UAAA;AAClC,MAAA,MAAM,UAAA,GAAa,MAAM,MAAA,GAAS,UAAA;AAElC,MAAA,IAAI,UAAU,CAAA,IAAK,GAAA,CAAI,KAAA,GAAQ,CAAC,MAAM,IAAA,EAAM;AAC1C,QAAA,EAAA,GAAK,UAAA;AACL,QAAA,IAAA,GAAO,UAAA;AAAA,MACT,CAAA,MAAO;AACL,QAAA,MAAM,MAAA,GAAS,EAAA;AACf,QAAA,MAAM,QAAA,GAAW,IAAA;AACjB,QAAA,MAAM,SAAA,GAAY,QAAA,CAAS,KAAA,GAAQ,CAAC,CAAA,CAAE,KAAA;AAEtC,QAAA,EAAA,GACE,UAAA,GAAa,MAAA,IAAU,SAAA,GAAY,MAAA,GAC/B,UAAA,GACA,MAAA;AACN,QAAA,IAAA,GACE,UAAA,GAAa,QAAA,IAAY,SAAA,GAAY,QAAA,GACjC,UAAA,GACA,QAAA;AAAA,MACR;AAEA,MAAA,IAAI,KAAA,KAAU,CAAA,IAAK,SAAA,CAAU,KAAA,GAAQ,IAAA,EAAM;AACzC,QAAA,KAAA,GAAQ,EAAA;AAAA,MACV,CAAA,MAAA,IAAW,KAAA,KAAU,EAAA,IAAM,SAAA,CAAU,QAAQ,EAAA,EAAI;AAC/C,QAAA,KAAA,GAAQ,CAAA;AAAA,MACV;AAMA,MAAA,OAAO;AAAA,QACL,EAAA,EAAI,KAAA,KAAU,CAAA,GAAI,IAAA,GAAO,IAAA;AAAA,QACzB,IAAA,EAAM,KAAA,KAAU,EAAA,GAAK,EAAA,GAAK;AAAA,OAC5B;AAAA,IACF,CAAC,CAAA;AAAA,EACH;AACF,CAAA;AAEA,IAAO,kBAAA,GAAQ;;;AClEf,IAAM,IAAA,GAA0B;AAAA,EAC9B,IAAA,EAAM,MAAA;AAAA,EACN,SAAA,EAAW,MAAA;AAAA,EACX,YAAY,EAAC;AAAA,EACb,OAAA,EAAS,CAAC,EAAE,GAAA,EAAK,QAAQ,KAAA,EAAO,QAAA,EAAU,IAAA,EAAM,MAAA,EAAQ,CAAA;AAAA,EACxD,IAAA,EAAM,CAAC,QAAA,KAA0B;AAC/B,IAAA,IAAI,gBAAA,GAAmB,CAAA;AACvB,IAAA,IAAI,qBAAA,GAAwB,CAAA;AAC5B,IAAA,IAAI,QAAA,GAAW,EAAA;AACf,IAAA,OAAO,QAAA,CAAS,GAAA,CAAI,CAAC,SAAA,KAAyB;AAM5C,MAAA,MAAM,IAAA,GAAO,IAAI,IAAA,CAAK,SAAA,CAAU,SAAS,EAAE,WAAA,EAAY,CAAE,KAAA,CAAM,CAAA,EAAG,EAAE,CAAA;AACpE,MAAA,IAAI,SAAS,QAAA,EAAU;AACrB,QAAA,gBAAA,GAAmB,CAAA;AACnB,QAAA,qBAAA,GAAwB,CAAA;AACxB,QAAA,QAAA,GAAW,IAAA;AAAA,MACb;AACA,MAAA,MAAM,SAAS,SAAA,CAAU,IAAA,GAAO,SAAA,CAAU,GAAA,GAAM,UAAU,KAAA,IAAS,CAAA;AACnE,MAAA,gBAAA,IAAoB,UAAU,MAAA,IAAU,CAAA;AACxC,MAAA,qBAAA,IAAyB,KAAA,IAAS,UAAU,MAAA,IAAU,CAAA,CAAA;AACtD,MAAA,OAAO;AAAA,QACL,IAAA,EAAM,yBAAyB,gBAAA,IAAoB,CAAA;AAAA,OACrD;AAAA,IACF,CAAC,CAAA;AAAA,EACH;AACF,CAAA;AAEA,IAAO,YAAA,GAAQ;;;ACiCf,IAAM,mBAAA,GAAsB,mCAAA;AAE5B,IAAM,SAAA,GAA6B;AAAA,EACjC,IAAA,EAAM,WAAA;AAAA,EACN,SAAA,EAAW,CAAA;AAAA,EACX,sBAAA,EAAwB,KAAA;AAAA,EACxB,sBAAA,EAAwB,KAAA;AAAA,EACxB,sBAAA,EAAwB,KAAA;AAAA,EACxB,oBAAoB,CAAC,EAAE,KAAA,EAAO,OAAA,EAAS,aAAY,KAAM;AACvD,IAAA,IAAI,WAAA,CAAY,MAAA,GAAS,CAAA,EAAG,OAAO,EAAC;AACpC,IAAA,MAAM,CAAA,GAAI,WAAA,CAAY,CAAC,CAAA,CAAE,CAAA;AACzB,IAAA,MAAM,KAAA,GAAQ,OAAA,CAAQ,MAAA,CAAO,CAAC,CAAA,EAAG,KAAA;AACjC,IAAA,IAAI,KAAA,IAAS,IAAA,EAAM,OAAO,EAAC;AAC3B,IAAA,MAAM,CAAA,GAAK,OAAA,CAAQ,UAAA,IAAc,EAAC;AAClC,IAAA,MAAM,KAAA,GAAQ,EAAE,KAAA,IAAS,yBAAA;AACzB,IAAA,MAAM,IAAI,CAAA,CAAE,IAAA;AACZ,IAAA,MAAM,SAAA,GAAY,KAAA,CAAM,SAAA,EAAU,EAAG,cAAA,IAAkB,CAAA;AACvD,IAAA,OAAO;AAAA,MACL;AAAA,QACE,IAAA,EAAM,MAAA;AAAA,QACN,KAAA,EAAO;AAAA,UACL,CAAA,EAAG,CAAA;AAAA,UACH,CAAA;AAAA,UACA,IAAA,EAAM,KAAA,CAAM,OAAA,CAAQ,SAAS,CAAA;AAAA,UAC7B,KAAA,EAAO,MAAA;AAAA,UACP,QAAA,EAAU;AAAA,SACZ;AAAA,QACA,MAAA,EAAQ;AAAA,UACN,KAAA,EAAO,GAAG,KAAA,IAAS,SAAA;AAAA,UACnB,IAAA,EAAM,CAAA,EAAG,IAAA,EAAM,IAAA,IAAQ,EAAA;AAAA,UACvB,MAAA,EAAQ,CAAA,EAAG,IAAA,EAAM,MAAA,IAAU,mBAAA;AAAA,UAC3B,MAAA,EAAQ,CAAA,EAAG,IAAA,EAAM,MAAA,IAAU,MAAA;AAAA,UAC3B,WAAA,EAAa,CAAA,EAAG,OAAA,EAAS,CAAA,IAAK,CAAA;AAAA,UAC9B,YAAA,EAAc,CAAA,EAAG,OAAA,EAAS,CAAA,IAAK,CAAA;AAAA,UAC/B,UAAA,EAAY,CAAA,EAAG,OAAA,EAAS,CAAA,IAAK,CAAA;AAAA,UAC7B,aAAA,EAAe,CAAA,EAAG,OAAA,EAAS,CAAA,IAAK,CAAA;AAAA,UAChC,eAAA,EAAiB,GAAG,EAAA,IAAM,KAAA;AAAA,UAC1B,YAAA,EAAc,GAAG,YAAA,IAAgB;AAAA;AACnC;AACF,KACF;AAAA,EACF,CAAA;AAAA,EACA,oBAAoB,CAAC,EAAE,WAAA,EAAa,QAAA,EAAU,SAAQ,KAAM;AAC1D,IAAA,IAAI,WAAA,CAAY,MAAA,GAAS,CAAA,EAAG,OAAO,EAAC;AAEpC,IAAA,MAAM,CAAA,GAAI,WAAA,CAAY,CAAC,CAAA,CAAE,CAAA;AACzB,IAAA,MAAM,CAAA,GAAK,OAAA,CAAQ,UAAA,IAAc,EAAC;AAClC,IAAA,MAAM,KAAA,GAAQ,EAAE,KAAA,IAAS,yBAAA;AACzB,IAAA,MAAM,KAAK,CAAA,CAAE,IAAA;AAEb,IAAA,MAAM,OAAA,GAEF;AAAA,MACF;AAAA,QACE,IAAA,EAAM,MAAA;AAAA,QACN,KAAA,EAAO;AAAA,UACL,WAAA,EAAa;AAAA,YACX,EAAE,CAAA,EAAG,CAAA,EAAG,CAAA,EAAE;AAAA,YACV,EAAE,CAAA,EAAG,QAAA,CAAS,KAAA,EAAO,CAAA;AAAE;AACzB,SACF;AAAA,QACA,MAAA,EAAQ;AAAA,UACN,KAAA,EAAO,IAAI,KAAA,IAAS,QAAA;AAAA,UACpB,KAAA;AAAA,UACA,IAAA,EAAM,IAAI,KAAA,IAAS,CAAA;AAAA,UACnB,WAAA,EAAa,EAAA,EAAI,WAAA,IAAe,CAAC,GAAG,CAAC;AAAA;AACvC;AACF,KACF;AAEA,IAAA,IAAI,EAAE,IAAA,EAAM;AACV,MAAA,MAAM,KAAK,CAAA,CAAE,KAAA;AACb,MAAA,OAAA,CAAQ,IAAA,CAAK;AAAA,QACX,IAAA,EAAM,MAAA;AAAA,QACN,WAAA,EAAa,IAAA;AAAA,QACb,KAAA,EAAO;AAAA,UACL,CAAA,EAAG,EAAA,EAAI,MAAA,EAAQ,CAAA,IAAK,CAAA;AAAA,UACpB,CAAA,EAAG,CAAA,IAAK,EAAA,EAAI,MAAA,EAAQ,CAAA,IAAK,CAAA,CAAA;AAAA,UACzB,MAAM,CAAA,CAAE,IAAA;AAAA,UACR,KAAA,EAAO,MAAA;AAAA,UACP,QAAA,EAAU;AAAA,SACZ;AAAA,QACA,MAAA,EAAQ;AAAA,UACN,KAAA,EAAO,IAAI,KAAA,IAAS,KAAA;AAAA,UACpB,IAAA,EAAM,EAAA,EAAI,IAAA,EAAM,IAAA,IAAQ,EAAA;AAAA,UACxB,MAAA,EAAQ,EAAA,EAAI,IAAA,EAAM,MAAA,IAAU,mBAAA;AAAA,UAC5B,MAAA,EAAQ,EAAA,EAAI,IAAA,EAAM,MAAA,IAAU,QAAA;AAAA,UAC5B,WAAA,EAAa,EAAA,EAAI,OAAA,EAAS,CAAA,IAAK,CAAA;AAAA,UAC/B,YAAA,EAAc,EAAA,EAAI,OAAA,EAAS,CAAA,IAAK,CAAA;AAAA,UAChC,UAAA,EAAY,EAAA,EAAI,OAAA,EAAS,CAAA,IAAK,CAAA;AAAA,UAC9B,aAAA,EAAe,EAAA,EAAI,OAAA,EAAS,CAAA,IAAK,CAAA;AAAA,UACjC,eAAA,EAAiB,IAAI,EAAA,IAAM,aAAA;AAAA,UAC3B,YAAA,EAAc,IAAI,YAAA,IAAgB;AAAA;AACpC,OACD,CAAA;AAAA,IACH;AAEA,IAAA,OAAO,OAAA;AAAA,EACT,CAAA;AAAA,EACA,uBAAA,EAAyB,CAAC,EAAE,MAAA,EAAQ,cAAa,KAAM;AACrD,IAAA,MAAA,CAAO,CAAC,CAAA,CAAE,KAAA,GAAQ,YAAA,CAAa,KAAA;AAAA,EACjC;AACF,CAAA;AAEA,IAAO,iBAAA,GAAQ;;;ACvJf,IAAM,YAAA,GAAgC;AAAA,EACpC,IAAA,EAAM,cAAA;AAAA,EACN,SAAA,EAAW,CAAA;AAAA,EACX,sBAAA,EAAwB,KAAA;AAAA,EACxB,sBAAA,EAAwB,KAAA;AAAA,EACxB,sBAAA,EAAwB,KAAA;AAAA,EACxB,IAAA,EAAM,IAAA;AAAA,EACN,OAAA,EAAS,IAAA;AAAA,EACT,MAAA,EAAQ,EAAA;AAAA,EACR,oBAAoB,CAAC,EAAE,OAAA,EAAS,QAAA,EAAU,OAAM,KAAM;AACpD,IAAA,MAAM,IAAI,OAAA,CAAQ,UAAA;AAClB,IAAA,IAAI,CAAC,CAAA,IAAK,CAAC,CAAA,CAAE,IAAA,IAAQ,CAAA,CAAE,IAAA,CAAK,MAAA,KAAW,CAAA,IAAK,CAAC,KAAA,EAAO,OAAO,EAAC;AAE5D,IAAA,MAAM,cAAA,GAAiB,EAAE,WAAA,IAAe,GAAA;AACxC,IAAA,MAAM,QAAA,GAAW,SAAS,KAAA,GAAQ,cAAA;AAClC,IAAA,MAAM,QAAA,GAAW,EAAE,QAAA,IAAY,sBAAA;AAC/B,IAAA,MAAM,QAAA,GAAW,EAAE,QAAA,IAAY,uBAAA;AAG/B,IAAA,MAAM,MAAA,GAAS,EAAE,MAAA,IAAU,CAAA;AAE3B,IAAA,MAAM,UAAiB,EAAC;AAExB,IAAA,KAAA,MAAW,GAAA,IAAO,EAAE,IAAA,EAAM;AACxB,MAAA,MAAM,CAAA,GAAK,KAAA,CAAc,cAAA,CAAe,GAAA,CAAI,KAAK,CAAA;AACjD,MAAA,IAAI,KAAK,IAAA,IAAQ,CAAA,GAAI,CAAA,IAAK,CAAA,GAAI,SAAS,MAAA,EAAQ;AAE/C,MAAA,MAAM,QAAA,GAAY,GAAA,CAAI,GAAA,GAAM,MAAA,GAAU,QAAA;AACtC,MAAA,MAAM,SAAA,GAAY,KAAK,GAAA,CAAI,CAAA,EAAG,SAAS,MAAA,GAAS,CAAA,CAAE,IAAA,CAAK,MAAA,GAAS,GAAG,CAAA;AACnE,MAAA,MAAM,KAAA,GAAQ,GAAA,CAAI,IAAA,KAAS,KAAA,GAAQ,QAAA,GAAW,QAAA;AAG9C,MAAA,OAAA,CAAQ,IAAA,CAAK;AAAA,QACX,IAAA,EAAM,MAAA;AAAA,QACN,KAAA,EAAO;AAAA,UACL,CAAA,EAAG,SAAS,KAAA,GAAQ,QAAA;AAAA,UACpB,CAAA,EAAG,IAAI,SAAA,GAAY,CAAA;AAAA,UACnB,KAAA,EAAO,QAAA;AAAA,UACP,MAAA,EAAQ;AAAA,SACV;AAAA,QACA,MAAA,EAAQ;AAAA,UACN;AAAA,SACF;AAAA,QACA,WAAA,EAAa;AAAA,OACd,CAAA;AAAA,IACH;AAEA,IAAA,OAAO,OAAA;AAAA,EACT;AACF,CAAA;AAEA,IAAO,oBAAA,GAAQ;;;AChDf,IAAMC,oBAAAA,GAAsB,mCAAA;AAC5B,IAAM,aAAA,GAAgB,SAAA;AAEtB,IAAM,SAAA,GAAY,WAAA;AAElB,IAAM,SAAA,GAA6B;AAAA,EACjC,IAAA,EAAM,WAAA;AAAA,EACN,SAAA,EAAW,CAAA;AAAA,EACX,sBAAA,EAAwB,KAAA;AAAA,EACxB,sBAAA,EAAwB,KAAA;AAAA,EACxB,sBAAA,EAAwB,KAAA;AAAA,EACxB,oBAAoB,CAAC,EAAE,KAAA,EAAO,OAAA,EAAS,aAAY,KAAM;AACvD,IAAA,IAAI,WAAA,CAAY,MAAA,GAAS,CAAA,EAAG,OAAO,EAAC;AACpC,IAAA,MAAM,CAAA,GAAI,WAAA,CAAY,CAAC,CAAA,CAAE,CAAA;AACzB,IAAA,MAAM,KAAA,GAAQ,OAAA,CAAQ,MAAA,CAAO,CAAC,CAAA,EAAG,KAAA;AACjC,IAAA,IAAI,KAAA,IAAS,IAAA,EAAM,OAAO,EAAC;AAC3B,IAAA,MAAM,CAAA,GAAK,OAAA,CAAQ,UAAA,IAAc,EAAC;AAClC,IAAA,MAAM,KAAA,GAAQ,EAAE,KAAA,IAAS,aAAA;AACzB,IAAA,MAAM,IAAI,CAAA,CAAE,IAAA;AACZ,IAAA,MAAM,SAAA,GAAY,KAAA,CAAM,SAAA,EAAU,EAAG,cAAA,IAAkB,CAAA;AACvD,IAAA,OAAO;AAAA,MACL;AAAA,QACE,IAAA,EAAM,MAAA;AAAA,QACN,KAAA,EAAO;AAAA,UACL,CAAA,EAAG,CAAA;AAAA,UACH,CAAA;AAAA,UACA,IAAA,EAAM,KAAA,CAAM,OAAA,CAAQ,SAAS,CAAA;AAAA,UAC7B,KAAA,EAAO,MAAA;AAAA,UACP,QAAA,EAAU;AAAA,SACZ;AAAA,QACA,MAAA,EAAQ;AAAA,UACN,KAAA,EAAO,GAAG,KAAA,IAAS,SAAA;AAAA,UACnB,IAAA,EAAM,CAAA,EAAG,IAAA,EAAM,IAAA,IAAQ,EAAA;AAAA,UACvB,MAAA,EAAQ,CAAA,EAAG,IAAA,EAAM,MAAA,IAAUA,oBAAAA;AAAA,UAC3B,MAAA,EAAQ,CAAA,EAAG,IAAA,EAAM,MAAA,IAAU,MAAA;AAAA,UAC3B,WAAA,EAAa,CAAA,EAAG,OAAA,EAAS,CAAA,IAAK,CAAA;AAAA,UAC9B,YAAA,EAAc,CAAA,EAAG,OAAA,EAAS,CAAA,IAAK,CAAA;AAAA,UAC/B,UAAA,EAAY,CAAA,EAAG,OAAA,EAAS,CAAA,IAAK,CAAA;AAAA,UAC7B,aAAA,EAAe,CAAA,EAAG,OAAA,EAAS,CAAA,IAAK,CAAA;AAAA,UAChC,eAAA,EAAiB,GAAG,EAAA,IAAM,KAAA;AAAA,UAC1B,YAAA,EAAc,GAAG,YAAA,IAAgB;AAAA;AACnC;AACF,KACF;AAAA,EACF,CAAA;AAAA,EACA,oBAAoB,CAAC,EAAE,OAAO,WAAA,EAAa,QAAA,EAAU,SAAQ,KAAM;AACjE,IAAA,IAAI,WAAA,CAAY,MAAA,GAAS,CAAA,EAAG,OAAO,EAAC;AAEpC,IAAA,MAAM,CAAA,GAAI,WAAA,CAAY,CAAC,CAAA,CAAE,CAAA;AACzB,IAAA,MAAM,CAAA,GAAK,OAAA,CAAQ,UAAA,IAAc,EAAC;AAClC,IAAA,MAAM,KAAA,GAAQ,EAAE,KAAA,IAAS,aAAA;AACzB,IAAA,MAAM,KAAK,CAAA,CAAE,IAAA;AAEb,IAAA,MAAM,OAAA,GAEF;AAAA,MACF;AAAA,QACE,IAAA,EAAM,MAAA;AAAA,QACN,KAAA,EAAO;AAAA,UACL,WAAA,EAAa;AAAA,YACX,EAAE,CAAA,EAAG,CAAA,EAAG,CAAA,EAAE;AAAA,YACV,EAAE,CAAA,EAAG,QAAA,CAAS,KAAA,EAAO,CAAA;AAAE;AACzB,SACF;AAAA,QACA,MAAA,EAAQ;AAAA,UACN,KAAA,EAAO,IAAI,KAAA,IAAS,QAAA;AAAA,UACpB,KAAA;AAAA,UACA,IAAA,EAAM,IAAI,KAAA,IAAS,CAAA;AAAA,UACnB,WAAA,EAAa,EAAA,EAAI,WAAA,IAAe,CAAC,GAAG,CAAC;AAAA;AACvC;AACF,KACF;AAIA,IAAA,MAAM,KAAA,GAAQ,OAAA,CAAQ,MAAA,CAAO,CAAC,CAAA,EAAG,KAAA;AACjC,IAAA,MAAM,SAAA,GAAY,KAAA,CAAM,SAAA,EAAU,EAAG,cAAA,IAAkB,CAAA;AACvD,IAAA,MAAM,QAAA,GACJ,EAAE,IAAA,KAAS,KAAA,IAAS,OAAO,KAAA,CAAM,OAAA,CAAQ,SAAS,CAAA,GAAI,EAAA,CAAA;AACxD,IAAA,MAAM,QAAA,GAAW,EAAE,QAAA,IAAY,IAAA;AAC/B,IAAA,MAAM,IAAA,GAAO,QAAA,GACT,QAAA,GACE,CAAA,EAAG,SAAS,IAAI,QAAQ,CAAA,CAAA,GACxB,QAAA,GACF,QAAA,GACE,SAAA,GACA,EAAA;AAEN,IAAA,IAAI,IAAA,EAAM;AACR,MAAA,MAAM,KAAK,CAAA,CAAE,KAAA;AACb,MAAA,OAAA,CAAQ,IAAA,CAAK;AAAA,QACX,IAAA,EAAM,MAAA;AAAA,QACN,WAAA,EAAa,IAAA;AAAA,QACb,KAAA,EAAO;AAAA,UACL,CAAA,EAAG,EAAA,EAAI,MAAA,EAAQ,CAAA,IAAK,CAAA;AAAA,UACpB,CAAA,EAAG,CAAA,IAAK,EAAA,EAAI,MAAA,EAAQ,CAAA,IAAK,CAAA,CAAA;AAAA,UACzB,IAAA;AAAA,UACA,KAAA,EAAO,MAAA;AAAA,UACP,QAAA,EAAU;AAAA,SACZ;AAAA,QACA,MAAA,EAAQ;AAAA,UACN,KAAA,EAAO,IAAI,KAAA,IAAS,KAAA;AAAA,UACpB,IAAA,EAAM,EAAA,EAAI,IAAA,EAAM,IAAA,IAAQ,EAAA;AAAA,UACxB,MAAA,EAAQ,EAAA,EAAI,IAAA,EAAM,MAAA,IAAUA,oBAAAA;AAAA,UAC5B,MAAA,EAAQ,EAAA,EAAI,IAAA,EAAM,MAAA,IAAU,QAAA;AAAA,UAC5B,WAAA,EAAa,EAAA,EAAI,OAAA,EAAS,CAAA,IAAK,CAAA;AAAA,UAC/B,YAAA,EAAc,EAAA,EAAI,OAAA,EAAS,CAAA,IAAK,CAAA;AAAA,UAChC,UAAA,EAAY,EAAA,EAAI,OAAA,EAAS,CAAA,IAAK,CAAA;AAAA,UAC9B,aAAA,EAAe,EAAA,EAAI,OAAA,EAAS,CAAA,IAAK,CAAA;AAAA,UACjC,eAAA,EAAiB,IAAI,EAAA,IAAM,aAAA;AAAA,UAC3B,YAAA,EAAc,IAAI,YAAA,IAAgB;AAAA;AACpC,OACD,CAAA;AAAA,IACH;AAEA,IAAA,OAAO,OAAA;AAAA,EACT,CAAA;AAAA,EACA,uBAAA,EAAyB,CAAC,EAAE,MAAA,EAAQ,cAAa,KAAM;AACrD,IAAA,MAAA,CAAO,CAAC,CAAA,CAAE,KAAA,GAAQ,YAAA,CAAa,KAAA;AAAA,EACjC;AACF,CAAA;AAEA,IAAO,iBAAA,GAAQ;;;ACtIR,IAAM,QAAA,GAAW,MAAA,CAAO,MAAA,CAAO,gBAAe;AAc9C,IAAM,eAAA,GAAkB,CAAC,iBAAA,EAAW,oBAAA,EAAc,iBAAS;AAK3D,IAAM,UAAA,GAAa,MAAA,CAAO,MAAA,CAAO,kBAAgB;AAExD,IAAI,UAAA,GAAa,KAAA;AAEV,SAAS,kBAAA,GAA2B;AACzC,EAAA,IAAI,UAAA,EAAY;AAChB,EAAA,QAAA,CAAS,OAAA,CAAQ,CAAC,OAAA,KAAYC,2BAAA,CAAgB,OAAO,CAAC,CAAA;AACtD,EAAA,eAAA,CAAgB,OAAA,CAAQ,CAAC,OAAA,KAAYA,2BAAA,CAAgB,OAAO,CAAC,CAAA;AAC7D,EAAA,UAAA,CAAW,OAAA,CAAQ,CAAC,SAAA,KAAcC,6BAAA,CAAkB,SAAS,CAAC,CAAA;AAC9D,EAAA,UAAA,GAAa,IAAA;AACf;AAEA,IAAI,mBAAA,GAAsB,KAAA;AAOnB,SAAS,yBAAA,GAAkC;AAChD,EAAA,IAAI,mBAAA,EAAqB;AACzB,EAAAD,2BAAA,CAAgB,iBAAS,CAAA;AACzB,EAAA,mBAAA,GAAsB,IAAA;AACxB","file":"chunk-LGYYJ2GP.cjs","sourcesContent":["export { default as arrow } from \"./arrow\";\nexport { default as circle } from \"./circle\";\nexport { default as rect } from \"./rect\";\nexport { default as triangle } from \"./triangle\";\nexport { default as parallelogram } from \"./parallelogram\";\nexport { default as fibonacciCircle } from \"./fibonacciCircle\";\nexport { default as fibonacciSegment } from \"./fibonacciSegment\";\nexport { default as fibonacciSpiral } from \"./fibonacciSpiral\";\nexport { default as fibonacciSpeedResistanceFan } from \"./fibonacciSpeedResistanceFan\";\nexport { default as fibonacciExtension } from \"./fibonacciExtension\";\nexport { default as fibRetracement } from \"./fibRetracement\";\nexport { default as gannBox } from \"./gannBox\";\nexport { default as gannFan } from \"./gannFan\";\nexport { default as threeWaves } from \"./threeWaves\";\nexport { default as fiveWaves } from \"./fiveWaves\";\nexport { default as eightWaves } from \"./eightWaves\";\nexport { default as anyWaves } from \"./anyWaves\";\nexport { default as elliottWave } from \"./elliottWave\";\nexport { default as abcd } from \"./abcd\";\nexport { default as xabcd } from \"./xabcd\";\nexport { default as ray } from \"./ray\";\nexport { default as parallelChannel } from \"./parallelChannel\";\nexport { default as longPosition } from \"./longPosition\";\nexport { default as shortPosition } from \"./shortPosition\";\nexport { default as measure } from \"./measure\";\nexport { default as brush } from \"./brush\";\n","import type { Coordinate, Bounding, LineAttrs } from \"klinecharts\";\nimport { utils } from \"klinecharts\";\n\nexport function getRotateCoordinate(\n coordinate: Coordinate,\n targetCoordinate: Coordinate,\n angle: number\n): Coordinate {\n const x =\n (coordinate.x - targetCoordinate.x) * Math.cos(angle) -\n (coordinate.y - targetCoordinate.y) * Math.sin(angle) +\n targetCoordinate.x;\n const y =\n (coordinate.x - targetCoordinate.x) * Math.sin(angle) +\n (coordinate.y - targetCoordinate.y) * Math.cos(angle) +\n targetCoordinate.y;\n return { x, y };\n}\n\nexport function getRayLine(\n coordinates: Coordinate[],\n bounding: Bounding\n): LineAttrs | LineAttrs[] {\n if (coordinates.length > 1) {\n let coordinate: Coordinate;\n if (\n coordinates[0].x === coordinates[1].x &&\n coordinates[0].y !== coordinates[1].y\n ) {\n if (coordinates[0].y < coordinates[1].y) {\n coordinate = { x: coordinates[0].x, y: bounding.height };\n } else {\n coordinate = { x: coordinates[0].x, y: 0 };\n }\n } else if (coordinates[0].x > coordinates[1].x) {\n coordinate = {\n x: 0,\n y: utils.getLinearYFromCoordinates(coordinates[0], coordinates[1], {\n x: 0,\n y: coordinates[0].y,\n }),\n };\n } else {\n coordinate = {\n x: bounding.width,\n y: utils.getLinearYFromCoordinates(coordinates[0], coordinates[1], {\n x: bounding.width,\n y: coordinates[0].y,\n }),\n };\n }\n return { coordinates: [coordinates[0], coordinate] };\n }\n return [];\n}\n\nexport function getDistance(\n coordinate1: Coordinate,\n coordinate2: Coordinate\n): number {\n const xDis = Math.abs(coordinate1.x - coordinate2.x);\n const yDis = Math.abs(coordinate1.y - coordinate2.y);\n return Math.sqrt(xDis * xDis + yDis * yDis);\n}\n","import type { OverlayTemplate } from \"klinecharts\";\nimport { utils } from \"klinecharts\";\nimport { getRotateCoordinate } from \"./utils\";\n\nconst arrow: OverlayTemplate = {\n name: \"arrow\",\n totalStep: 3,\n needDefaultPointFigure: true,\n needDefaultXAxisFigure: true,\n needDefaultYAxisFigure: true,\n createPointFigures: ({ coordinates }) => {\n if (coordinates.length > 1) {\n const flag = coordinates[1].x > coordinates[0].x ? 0 : 1;\n const kb = utils.getLinearSlopeIntercept(coordinates[0], coordinates[1]);\n let offsetAngle: number;\n if (kb) {\n offsetAngle = Math.atan(kb[0]) + Math.PI * flag;\n } else {\n if (coordinates[1].y > coordinates[0].y) {\n offsetAngle = Math.PI / 2;\n } else {\n offsetAngle = (Math.PI / 2) * 3;\n }\n }\n const rotateCoordinate1 = getRotateCoordinate(\n { x: coordinates[1].x - 8, y: coordinates[1].y + 4 },\n coordinates[1],\n offsetAngle\n );\n const rotateCoordinate2 = getRotateCoordinate(\n { x: coordinates[1].x - 8, y: coordinates[1].y - 4 },\n coordinates[1],\n offsetAngle\n );\n return [\n { type: \"line\", attrs: { coordinates } },\n {\n type: \"line\",\n ignoreEvent: true,\n attrs: {\n coordinates: [rotateCoordinate1, coordinates[1], rotateCoordinate2],\n },\n },\n ];\n }\n return [];\n },\n};\n\nexport default arrow;\n","import type { OverlayTemplate } from \"klinecharts\";\nimport { getDistance } from \"./utils\";\n\nconst circle: OverlayTemplate = {\n name: \"circle\",\n totalStep: 3,\n needDefaultPointFigure: true,\n needDefaultXAxisFigure: true,\n needDefaultYAxisFigure: true,\n styles: { circle: { color: \"rgba(22, 119, 255, 0.15)\" } },\n createPointFigures: ({ coordinates }) => {\n if (coordinates.length > 1) {\n const radius = getDistance(coordinates[0], coordinates[1]);\n return {\n type: \"circle\",\n attrs: { ...coordinates[0], r: radius },\n styles: { style: \"stroke_fill\" },\n };\n }\n return [];\n },\n};\n\nexport default circle;\n","import type { OverlayTemplate } from \"klinecharts\";\n\nconst rect: OverlayTemplate = {\n name: \"rect\",\n totalStep: 3,\n needDefaultPointFigure: true,\n needDefaultXAxisFigure: true,\n needDefaultYAxisFigure: true,\n styles: { polygon: { color: \"rgba(22, 119, 255, 0.15)\" } },\n createPointFigures: ({ coordinates }) => {\n if (coordinates.length > 1) {\n return [\n {\n type: \"polygon\",\n attrs: {\n coordinates: [\n coordinates[0],\n { x: coordinates[1].x, y: coordinates[0].y },\n coordinates[1],\n { x: coordinates[0].x, y: coordinates[1].y },\n ],\n },\n styles: { style: \"stroke_fill\" },\n },\n ];\n }\n return [];\n },\n};\n\nexport default rect;\n","import type { OverlayTemplate } from \"klinecharts\";\n\nconst triangle: OverlayTemplate = {\n name: \"triangle\",\n totalStep: 4,\n needDefaultPointFigure: true,\n needDefaultXAxisFigure: true,\n needDefaultYAxisFigure: true,\n styles: { polygon: { color: \"rgba(22, 119, 255, 0.15)\" } },\n createPointFigures: ({ coordinates }) => {\n return [\n {\n type: \"polygon\",\n attrs: { coordinates },\n styles: { style: \"stroke_fill\" },\n },\n ];\n },\n};\n\nexport default triangle;\n","import type { OverlayTemplate } from \"klinecharts\";\n\nconst parallelogram: OverlayTemplate = {\n name: \"parallelogram\",\n totalStep: 4,\n needDefaultPointFigure: true,\n needDefaultXAxisFigure: true,\n needDefaultYAxisFigure: true,\n styles: { polygon: { color: \"rgba(22, 119, 255, 0.15)\" } },\n createPointFigures: ({ coordinates }) => {\n if (coordinates.length === 2) {\n return [{ type: \"line\", ignoreEvent: true, attrs: { coordinates } }];\n }\n if (coordinates.length === 3) {\n const coordinate = {\n x: coordinates[0].x + (coordinates[2].x - coordinates[1].x),\n y: coordinates[2].y - coordinates[1].y + coordinates[0].y,\n };\n return [\n {\n type: \"polygon\",\n attrs: {\n coordinates: [\n coordinates[0],\n coordinates[1],\n coordinates[2],\n coordinate,\n ],\n },\n styles: { style: \"stroke_fill\" },\n },\n ];\n }\n return [];\n },\n performEventPressedMove: ({ points, performPointIndex, performPoint }) => {\n if (performPointIndex < 2) {\n if (points[0]) (points[0] as any).price = (performPoint as any).price;\n if (points[1]) (points[1] as any).price = (performPoint as any).price;\n }\n },\n performEventMoveForDrawing: ({ currentStep, points, performPoint }) => {\n if (currentStep === 2) {\n if (points[0]) (points[0] as any).price = (performPoint as any).price;\n }\n },\n};\n\nexport default parallelogram;\n","import type { OverlayTemplate, CircleAttrs, TextAttrs } from \"klinecharts\";\n\nconst fibonacciCircle: OverlayTemplate = {\n name: \"fibonacciCircle\",\n totalStep: 3,\n needDefaultPointFigure: true,\n needDefaultXAxisFigure: true,\n needDefaultYAxisFigure: true,\n createPointFigures: ({ coordinates }) => {\n if (coordinates.length > 1) {\n const xDis = Math.abs(coordinates[0].x - coordinates[1].x);\n const yDis = Math.abs(coordinates[0].y - coordinates[1].y);\n const radius = Math.sqrt(xDis * xDis + yDis * yDis);\n const percents = [0.236, 0.382, 0.5, 0.618, 0.786, 1];\n const circles: CircleAttrs[] = [];\n const texts: TextAttrs[] = [];\n percents.forEach((percent) => {\n const r = radius * percent;\n circles.push({ ...coordinates[0], r });\n texts.push({\n x: coordinates[0].x,\n y: coordinates[0].y + r + 6,\n text: `${(percent * 100).toFixed(1)}%`,\n });\n });\n return [\n { type: \"circle\", attrs: circles, styles: { style: \"stroke\" } },\n { type: \"text\", ignoreEvent: true, attrs: texts },\n ];\n }\n return [];\n },\n};\n\nexport default fibonacciCircle;\n","import type { OverlayTemplate, LineAttrs, TextAttrs } from \"klinecharts\";\n\nconst fibonacciSegment: OverlayTemplate = {\n name: \"fibonacciSegment\",\n totalStep: 3,\n needDefaultPointFigure: true,\n needDefaultXAxisFigure: true,\n needDefaultYAxisFigure: true,\n createPointFigures: ({ coordinates, overlay, chart }) => {\n const precision = chart.getSymbol()?.pricePrecision ?? 2;\n const lines: LineAttrs[] = [];\n const texts: TextAttrs[] = [];\n if (coordinates.length > 1) {\n const textX =\n coordinates[1].x > coordinates[0].x\n ? coordinates[0].x\n : coordinates[1].x;\n const percents = [1, 0.786, 0.618, 0.5, 0.382, 0.236, 0];\n const yDif = coordinates[0].y - coordinates[1].y;\n const points = overlay.points as any[];\n const valueDif = points[0].value - points[1].value;\n percents.forEach((percent) => {\n const y = coordinates[1].y + yDif * percent;\n const price = (points[1].value + valueDif * percent).toFixed(precision);\n lines.push({\n coordinates: [\n { x: coordinates[0].x, y },\n { x: coordinates[1].x, y },\n ],\n });\n texts.push({\n x: textX,\n y,\n text: `${price} (${(percent * 100).toFixed(1)}%)`,\n baseline: \"bottom\",\n });\n });\n }\n return [\n { type: \"line\", attrs: lines },\n { type: \"text\", ignoreEvent: true, attrs: texts },\n ];\n },\n};\n\nexport default fibonacciSegment;\n","import type { OverlayTemplate } from \"klinecharts\";\nimport { utils } from \"klinecharts\";\nimport { getDistance, getRotateCoordinate, getRayLine } from \"./utils\";\n\nconst fibonacciSpiral: OverlayTemplate = {\n name: \"fibonacciSpiral\",\n totalStep: 3,\n needDefaultPointFigure: true,\n needDefaultXAxisFigure: true,\n needDefaultYAxisFigure: true,\n createPointFigures: ({ coordinates, bounding }) => {\n if (coordinates.length > 1) {\n const startRadius =\n getDistance(coordinates[0], coordinates[1]) / Math.sqrt(24);\n const flag = coordinates[1].x > coordinates[0].x ? 0 : 1;\n const kb = utils.getLinearSlopeIntercept(coordinates[0], coordinates[1]);\n let offsetAngle: number;\n if (kb) {\n offsetAngle = Math.atan(kb[0]) + Math.PI * flag;\n } else {\n if (coordinates[1].y > coordinates[0].y) {\n offsetAngle = Math.PI / 2;\n } else {\n offsetAngle = (Math.PI / 2) * 3;\n }\n }\n const rotateCoordinate1 = getRotateCoordinate(\n { x: coordinates[0].x - startRadius, y: coordinates[0].y },\n coordinates[0],\n offsetAngle\n );\n const rotateCoordinate2 = getRotateCoordinate(\n {\n x: coordinates[0].x - startRadius,\n y: coordinates[0].y - startRadius,\n },\n coordinates[0],\n offsetAngle\n );\n const arcs = [\n {\n ...rotateCoordinate1,\n r: startRadius,\n startAngle: offsetAngle,\n endAngle: offsetAngle + Math.PI / 2,\n },\n {\n ...rotateCoordinate2,\n r: startRadius * 2,\n startAngle: offsetAngle + Math.PI / 2,\n endAngle: offsetAngle + Math.PI,\n },\n ];\n let x = coordinates[0].x - startRadius;\n let y = coordinates[0].y - startRadius;\n for (let i = 2; i < 9; i++) {\n const r = arcs[i - 2].r + arcs[i - 1].r;\n let startAngle = 0;\n switch (i % 4) {\n case 0:\n startAngle = offsetAngle;\n x -= arcs[i - 2].r;\n break;\n case 1:\n startAngle = offsetAngle + Math.PI / 2;\n y -= arcs[i - 2].r;\n break;\n case 2:\n startAngle = offsetAngle + Math.PI;\n x += arcs[i - 2].r;\n break;\n case 3:\n startAngle = offsetAngle + (Math.PI / 2) * 3;\n y += arcs[i - 2].r;\n break;\n }\n const endAngle = startAngle + Math.PI / 2;\n const rotateCoordinate = getRotateCoordinate(\n { x, y },\n coordinates[0],\n offsetAngle\n );\n arcs.push({ ...rotateCoordinate, r, startAngle, endAngle });\n }\n return [\n { type: \"arc\", attrs: arcs },\n { type: \"line\", attrs: getRayLine(coordinates, bounding) },\n ];\n }\n return [];\n },\n};\n\nexport default fibonacciSpiral;\n","import type { OverlayTemplate, LineAttrs, TextAttrs } from \"klinecharts\";\nimport { getRayLine } from \"./utils\";\n\nconst fibonacciSpeedResistanceFan: OverlayTemplate = {\n name: \"fibonacciSpeedResistanceFan\",\n totalStep: 3,\n needDefaultPointFigure: true,\n needDefaultXAxisFigure: true,\n needDefaultYAxisFigure: true,\n createPointFigures: ({ coordinates, bounding }) => {\n const lines1: LineAttrs[] = [];\n let lines2: LineAttrs[] = [];\n const texts: TextAttrs[] = [];\n if (coordinates.length > 1) {\n const xOffset = coordinates[1].x > coordinates[0].x ? -38 : 4;\n const yOffset = coordinates[1].y > coordinates[0].y ? -2 : 20;\n const xDistance = coordinates[1].x - coordinates[0].x;\n const yDistance = coordinates[1].y - coordinates[0].y;\n const percents = [1, 0.75, 0.618, 0.5, 0.382, 0.25, 0];\n percents.forEach((percent) => {\n const x = coordinates[1].x - xDistance * percent;\n const y = coordinates[1].y - yDistance * percent;\n lines1.push({\n coordinates: [\n { x, y: coordinates[0].y },\n { x, y: coordinates[1].y },\n ],\n });\n lines1.push({\n coordinates: [\n { x: coordinates[0].x, y },\n { x: coordinates[1].x, y },\n ],\n });\n lines2 = lines2.concat(\n getRayLine(\n [coordinates[0], { x, y: coordinates[1].y }],\n bounding\n ) as LineAttrs[]\n );\n lines2 = lines2.concat(\n getRayLine(\n [coordinates[0], { x: coordinates[1].x, y }],\n bounding\n ) as LineAttrs[]\n );\n texts.unshift({\n x: coordinates[0].x + xOffset,\n y: y + 10,\n text: `${percent.toFixed(3)}`,\n });\n texts.unshift({\n x: x - 18,\n y: coordinates[0].y + yOffset,\n text: `${percent.toFixed(3)}`,\n });\n });\n }\n return [\n { type: \"line\", attrs: lines1 },\n { type: \"line\", attrs: lines2 },\n { type: \"text\", ignoreEvent: true, attrs: texts },\n ];\n },\n};\n\nexport default fibonacciSpeedResistanceFan;\n","import type { OverlayTemplate, LineAttrs, TextAttrs } from \"klinecharts\";\n\nconst fibonacciExtension: OverlayTemplate = {\n name: \"fibonacciExtension\",\n totalStep: 4,\n needDefaultPointFigure: true,\n needDefaultXAxisFigure: true,\n needDefaultYAxisFigure: true,\n createPointFigures: ({ coordinates, overlay, chart }) => {\n const precision = chart.getSymbol()?.pricePrecision ?? 2;\n const fbLines: LineAttrs[] = [];\n const texts: TextAttrs[] = [];\n if (coordinates.length > 2) {\n const points = overlay.points as any[];\n const valueDif = points[1].value - points[0].value;\n const yDif = coordinates[1].y - coordinates[0].y;\n const percents = [0, 0.236, 0.382, 0.5, 0.618, 0.786, 1];\n const textX =\n coordinates[2].x > coordinates[1].x\n ? coordinates[1].x\n : coordinates[2].x;\n percents.forEach((percent) => {\n const y = coordinates[2].y + yDif * percent;\n const price = (points[2].value + valueDif * percent).toFixed(precision);\n fbLines.push({\n coordinates: [\n { x: coordinates[1].x, y },\n { x: coordinates[2].x, y },\n ],\n });\n texts.push({\n x: textX,\n y,\n text: `${price} (${(percent * 100).toFixed(1)}%)`,\n baseline: \"bottom\",\n });\n });\n }\n return [\n {\n type: \"line\",\n attrs: { coordinates },\n styles: { style: \"dashed\" },\n },\n { type: \"line\", attrs: fbLines },\n { type: \"text\", ignoreEvent: true, attrs: texts },\n ];\n },\n};\n\nexport default fibonacciExtension;\n","import type { OverlayTemplate } from \"klinecharts\";\n\nconst fibRetracement: OverlayTemplate = {\n name: \"fibRetracement\",\n totalStep: 3,\n needDefaultPointFigure: true,\n needDefaultXAxisFigure: true,\n needDefaultYAxisFigure: true,\n createPointFigures: ({ coordinates, bounding }: any) => {\n if (coordinates.length > 1) {\n const lines: any[] = [];\n const texts: any[] = [];\n const x1 = coordinates[0].x;\n const x2 = bounding.width;\n const y1 = coordinates[0].y;\n const y2 = coordinates[1].y;\n const diff = y2 - y1;\n const levels = [\n { level: 0, text: \"0 (0.00%)\" },\n { level: 0.236, text: \"0.236 (23.6%)\" },\n { level: 0.382, text: \"0.382 (38.2%)\" },\n { level: 0.5, text: \"0.5 (50.0%)\" },\n { level: 0.618, text: \"0.618 (61.8%)\" },\n { level: 0.786, text: \"0.786 (78.6%)\" },\n { level: 1, text: \"1 (100.0%)\" },\n ];\n levels.forEach((l) => {\n const y = y1 + diff * l.level;\n lines.push({ coordinates: [{ x: x1, y }, { x: x2, y }] });\n texts.push({\n x: x1,\n y,\n text: l.text,\n align: \"left\",\n baseline: \"bottom\",\n });\n });\n return [\n { type: \"line\", attrs: lines },\n { type: \"text\", attrs: texts },\n ];\n }\n return [];\n },\n};\n\nexport default fibRetracement;\n","import type { OverlayTemplate } from \"klinecharts\";\n\nconst gannBox: OverlayTemplate = {\n name: \"gannBox\",\n totalStep: 3,\n needDefaultPointFigure: true,\n needDefaultXAxisFigure: true,\n needDefaultYAxisFigure: true,\n styles: { polygon: { color: \"rgba(22, 119, 255, 0.15)\" } },\n createPointFigures: ({ coordinates }) => {\n if (coordinates.length > 1) {\n const quarterYDis = (coordinates[1].y - coordinates[0].y) / 4;\n const xDis = coordinates[1].x - coordinates[0].x;\n const dashedLines = [\n {\n coordinates: [\n coordinates[0],\n { x: coordinates[1].x, y: coordinates[1].y - quarterYDis },\n ],\n },\n {\n coordinates: [\n coordinates[0],\n { x: coordinates[1].x, y: coordinates[1].y - quarterYDis * 2 },\n ],\n },\n {\n coordinates: [\n { x: coordinates[0].x, y: coordinates[1].y },\n { x: coordinates[1].x, y: coordinates[0].y + quarterYDis },\n ],\n },\n {\n coordinates: [\n { x: coordinates[0].x, y: coordinates[1].y },\n { x: coordinates[1].x, y: coordinates[0].y + quarterYDis * 2 },\n ],\n },\n {\n coordinates: [\n { ...coordinates[0] },\n { x: coordinates[0].x + xDis * 0.236, y: coordinates[1].y },\n ],\n },\n {\n coordinates: [\n { ...coordinates[0] },\n { x: coordinates[0].x + xDis * 0.5, y: coordinates[1].y },\n ],\n },\n {\n coordinates: [\n { x: coordinates[0].x, y: coordinates[1].y },\n { x: coordinates[0].x + xDis * 0.236, y: coordinates[0].y },\n ],\n },\n {\n coordinates: [\n { x: coordinates[0].x, y: coordinates[1].y },\n { x: coordinates[0].x + xDis * 0.5, y: coordinates[0].y },\n ],\n },\n ];\n const solidLines = [\n { coordinates: [coordinates[0], coordinates[1]] },\n {\n coordinates: [\n { x: coordinates[0].x, y: coordinates[1].y },\n { x: coordinates[1].x, y: coordinates[0].y },\n ],\n },\n ];\n return [\n {\n type: \"line\",\n attrs: [\n {\n coordinates: [\n coordinates[0],\n { x: coordinates[1].x, y: coordinates[0].y },\n ],\n },\n {\n coordinates: [\n { x: coordinates[1].x, y: coordinates[0].y },\n coordinates[1],\n ],\n },\n {\n coordinates: [\n coordinates[1],\n { x: coordinates[0].x, y: coordinates[1].y },\n ],\n },\n {\n coordinates: [\n { x: coordinates[0].x, y: coordinates[1].y },\n coordinates[0],\n ],\n },\n ],\n },\n {\n type: \"polygon\",\n ignoreEvent: true,\n attrs: {\n coordinates: [\n coordinates[0],\n { x: coordinates[1].x, y: coordinates[0].y },\n coordinates[1],\n { x: coordinates[0].x, y: coordinates[1].y },\n ],\n },\n styles: { style: \"fill\" },\n },\n { type: \"line\", attrs: dashedLines, styles: { style: \"dashed\" } },\n { type: \"line\", attrs: solidLines },\n ];\n }\n return [];\n },\n};\n\nexport default gannBox;\n","import type { OverlayTemplate } from \"klinecharts\";\n\nconst gannFan: OverlayTemplate = {\n name: \"gannFan\",\n totalStep: 2,\n needDefaultPointFigure: true,\n needDefaultXAxisFigure: true,\n needDefaultYAxisFigure: true,\n createPointFigures: ({ coordinates, bounding }: any) => {\n if (coordinates.length > 0) {\n const p1 = coordinates[0];\n const p2 = coordinates[1] || p1;\n const lines: any[] = [];\n\n const dx = p2.x - p1.x;\n const dy = p2.y - p1.y;\n\n const ratios = [8, 4, 3, 2, 1, 0.5, 0.333, 0.25, 0.125];\n\n ratios.forEach((ratio) => {\n const targetX = bounding.width;\n const targetY =\n p1.y + dy * (ratio * ((targetX - p1.x) / (dx || 1)));\n lines.push({ coordinates: [p1, { x: targetX, y: targetY }] });\n });\n\n return [{ type: \"line\", attrs: lines }];\n }\n return [];\n },\n};\n\nexport default gannFan;\n","import type { OverlayTemplate } from \"klinecharts\";\n\nconst threeWaves: OverlayTemplate = {\n name: \"threeWaves\",\n totalStep: 5,\n needDefaultPointFigure: true,\n needDefaultXAxisFigure: true,\n needDefaultYAxisFigure: true,\n createPointFigures: ({ coordinates }) => {\n const texts = coordinates.map((coordinate, i) => ({\n ...coordinate,\n text: `(${i})`,\n baseline: \"bottom\" as const,\n }));\n return [\n { type: \"line\", attrs: { coordinates } },\n { type: \"text\", ignoreEvent: true, attrs: texts },\n ];\n },\n};\n\nexport default threeWaves;\n","import type { OverlayTemplate } from \"klinecharts\";\n\nconst fiveWaves: OverlayTemplate = {\n name: \"fiveWaves\",\n totalStep: 7,\n needDefaultPointFigure: true,\n needDefaultXAxisFigure: true,\n needDefaultYAxisFigure: true,\n createPointFigures: ({ coordinates }) => {\n const texts = coordinates.map((coordinate, i) => ({\n ...coordinate,\n text: `(${i})`,\n baseline: \"bottom\" as const,\n }));\n return [\n { type: \"line\", attrs: { coordinates } },\n { type: \"text\", ignoreEvent: true, attrs: texts },\n ];\n },\n};\n\nexport default fiveWaves;\n","import type { OverlayTemplate } from \"klinecharts\";\n\nconst eightWaves: OverlayTemplate = {\n name: \"eightWaves\",\n totalStep: 10,\n needDefaultPointFigure: true,\n needDefaultXAxisFigure: true,\n needDefaultYAxisFigure: true,\n createPointFigures: ({ coordinates }) => {\n const texts = coordinates.map((coordinate, i) => ({\n ...coordinate,\n text: `(${i})`,\n baseline: \"bottom\" as const,\n }));\n return [\n { type: \"line\", attrs: { coordinates } },\n { type: \"text\", ignoreEvent: true, attrs: texts },\n ];\n },\n};\n\nexport default eightWaves;\n","import type { OverlayTemplate } from \"klinecharts\";\n\nconst anyWaves: OverlayTemplate = {\n name: \"anyWaves\",\n totalStep: Number.MAX_SAFE_INTEGER,\n needDefaultPointFigure: true,\n needDefaultXAxisFigure: true,\n needDefaultYAxisFigure: true,\n createPointFigures: ({ coordinates }) => {\n const texts = coordinates.map((coordinate, i) => ({\n ...coordinate,\n text: `(${i})`,\n baseline: \"bottom\" as const,\n }));\n return [\n { type: \"line\", attrs: { coordinates } },\n { type: \"text\", ignoreEvent: true, attrs: texts },\n ];\n },\n};\n\nexport default anyWaves;\n","import type { OverlayTemplate } from \"klinecharts\";\n\nconst elliottWave: OverlayTemplate = {\n name: \"elliottWave\",\n totalStep: 6,\n needDefaultPointFigure: true,\n needDefaultXAxisFigure: true,\n needDefaultYAxisFigure: true,\n createPointFigures: ({ coordinates }: any) => {\n if (coordinates.length > 1) {\n const lines: any[] = [];\n const texts: any[] = [];\n for (let i = 0; i < coordinates.length - 1; i++) {\n lines.push({\n coordinates: [coordinates[i], coordinates[i + 1]],\n });\n texts.push({\n ...coordinates[i],\n text: `(${i})`,\n align: \"center\",\n baseline: \"bottom\",\n });\n }\n if (coordinates.length === 6) {\n texts.push({\n ...coordinates[5],\n text: \"(5)\",\n align: \"center\",\n baseline: \"bottom\",\n });\n }\n return [\n { type: \"line\", attrs: lines },\n { type: \"text\", attrs: texts },\n ];\n }\n return [];\n },\n};\n\nexport default elliottWave;\n","import type { OverlayTemplate, Coordinate } from \"klinecharts\";\n\nconst abcd: OverlayTemplate = {\n name: \"abcd\",\n totalStep: 5,\n needDefaultPointFigure: true,\n needDefaultXAxisFigure: true,\n needDefaultYAxisFigure: true,\n createPointFigures: ({ coordinates }) => {\n let acLineCoordinates: Coordinate[] = [];\n let bdLineCoordinates: Coordinate[] = [];\n const tags = [\"A\", \"B\", \"C\", \"D\"];\n const texts = coordinates.map((coordinate, i) => ({\n ...coordinate,\n baseline: \"bottom\" as const,\n text: `(${tags[i]})`,\n }));\n if (coordinates.length > 2) {\n acLineCoordinates = [coordinates[0], coordinates[2]];\n if (coordinates.length > 3) {\n bdLineCoordinates = [coordinates[1], coordinates[3]];\n }\n }\n return [\n { type: \"line\", attrs: { coordinates } },\n {\n type: \"line\",\n attrs: [\n { coordinates: acLineCoordinates },\n { coordinates: bdLineCoordinates },\n ],\n styles: { style: \"dashed\" },\n },\n { type: \"text\", ignoreEvent: true, attrs: texts },\n ];\n },\n};\n\nexport default abcd;\n","import type { OverlayTemplate, PolygonAttrs, LineAttrs } from \"klinecharts\";\n\nconst xabcd: OverlayTemplate = {\n name: \"xabcd\",\n totalStep: 6,\n needDefaultPointFigure: true,\n needDefaultXAxisFigure: true,\n needDefaultYAxisFigure: true,\n styles: { polygon: { color: \"rgba(22, 119, 255, 0.15)\" } },\n createPointFigures: ({ coordinates }) => {\n const dashedLines: LineAttrs[] = [];\n const polygons: PolygonAttrs[] = [];\n const tags = [\"X\", \"A\", \"B\", \"C\", \"D\"];\n const texts = coordinates.map((coordinate, i) => ({\n ...coordinate,\n baseline: \"bottom\" as const,\n text: `(${tags[i]})`,\n }));\n if (coordinates.length > 2) {\n dashedLines.push({ coordinates: [coordinates[0], coordinates[2]] });\n polygons.push({\n coordinates: [coordinates[0], coordinates[1], coordinates[2]],\n });\n if (coordinates.length > 3) {\n dashedLines.push({ coordinates: [coordinates[1], coordinates[3]] });\n if (coordinates.length > 4) {\n dashedLines.push({ coordinates: [coordinates[2], coordinates[4]] });\n polygons.push({\n coordinates: [coordinates[2], coordinates[3], coordinates[4]],\n });\n }\n }\n }\n return [\n { type: \"line\", attrs: { coordinates } },\n { type: \"line\", attrs: dashedLines, styles: { style: \"dashed\" } },\n { type: \"polygon\", ignoreEvent: true, attrs: polygons },\n { type: \"text\", ignoreEvent: true, attrs: texts },\n ];\n },\n};\n\nexport default xabcd;\n","import type { OverlayTemplate } from \"klinecharts\";\n\nconst ray: OverlayTemplate = {\n name: \"ray\",\n totalStep: 3,\n needDefaultPointFigure: true,\n needDefaultXAxisFigure: true,\n needDefaultYAxisFigure: true,\n createPointFigures: ({ coordinates, bounding }: any) => {\n if (coordinates.length > 1) {\n const coordinate = (() => {\n if (\n coordinates[0].x === coordinates[1].x &&\n coordinates[0].y !== coordinates[1].y\n ) {\n return coordinates[0].y < coordinates[1].y\n ? { x: coordinates[0].x, y: bounding.height }\n : { x: coordinates[0].x, y: 0 };\n }\n const x = coordinates[0].x < coordinates[1].x ? bounding.width : 0;\n const y =\n ((coordinates[1].y - coordinates[0].y) /\n (coordinates[1].x - coordinates[0].x)) *\n (x - coordinates[0].x) +\n coordinates[0].y;\n return { x, y };\n })();\n return [\n {\n type: \"line\",\n attrs: { coordinates: [coordinates[0], coordinate] },\n },\n ];\n }\n return [];\n },\n};\n\nexport default ray;\n","import type { OverlayTemplate } from \"klinecharts\";\n\nconst parallelChannel: OverlayTemplate = {\n name: \"parallelChannel\",\n totalStep: 4,\n needDefaultPointFigure: true,\n needDefaultXAxisFigure: true,\n needDefaultYAxisFigure: true,\n createPointFigures: ({ coordinates }: any) => {\n if (coordinates.length > 1) {\n const p1 = coordinates[0];\n const p2 = coordinates[1];\n const p3 = coordinates[2] || p2;\n\n const dx = p1.x - p2.x;\n const dy = p1.y - p2.y;\n\n const p4 = {\n x: p3.x + dx,\n y: p3.y + dy,\n };\n\n return [\n {\n type: \"line\",\n attrs: [\n { coordinates: [p1, p2] },\n { coordinates: [p3, p4] },\n { coordinates: [p1, p4] },\n { coordinates: [p2, p3] },\n ],\n },\n {\n type: \"polygon\",\n attrs: { coordinates: [p1, p2, p3, p4] },\n styles: { style: \"fill\" },\n },\n ];\n }\n return [];\n },\n};\n\nexport default parallelChannel;\n","import type { OverlayTemplate } from \"klinecharts\";\n\nconst longPosition: OverlayTemplate = {\n name: \"longPosition\",\n // totalStep 4 → the user places 3 points interactively (entry, target, stop).\n // With the previous value of 3, only 2 points were captured and the stop was\n // always a hardcoded 40px offset, so R/R was meaningless.\n totalStep: 4,\n needDefaultPointFigure: true,\n needDefaultXAxisFigure: true,\n needDefaultYAxisFigure: true,\n createPointFigures: (params: any) => {\n const { coordinates, overlay, yAxis } = params;\n const figures: any[] = [];\n if (coordinates.length > 1 && yAxis) {\n const startX = coordinates[0].x;\n const endX = coordinates[1].x;\n const entryY = coordinates[0].y;\n const targetY = coordinates[1].y;\n const stopY =\n coordinates.length > 2 ? coordinates[2].y : entryY + 40;\n\n const entryPrice = overlay.points[0].value!;\n const targetPrice = overlay.points[1].value!;\n const stopPrice =\n overlay.points[2]?.value ?? yAxis.convertFromPixel(stopY);\n\n const reward = targetPrice - entryPrice;\n const risk = entryPrice - stopPrice;\n const rr = risk > 0 ? (reward / risk).toFixed(2) : \"0.00\";\n\n const profitPercent = ((reward / entryPrice) * 100).toFixed(2);\n const lossPercent = ((risk / entryPrice) * 100).toFixed(2);\n\n // Target Box (Profit) - Green\n figures.push({\n type: \"rect\",\n attrs: {\n x: Math.min(startX, endX),\n y: Math.min(entryY, targetY),\n width: Math.abs(startX - endX),\n height: Math.abs(entryY - targetY),\n },\n styles: { color: \"rgba(38, 166, 154, 0.2)\", style: \"fill\" },\n });\n\n // Stop Box (Loss) - Red\n figures.push({\n type: \"rect\",\n attrs: {\n x: Math.min(startX, endX),\n y: Math.min(entryY, stopY),\n width: Math.abs(startX - endX),\n height: Math.abs(entryY - stopY),\n },\n styles: { color: \"rgba(239, 83, 80, 0.2)\", style: \"fill\" },\n });\n\n // Entry Line\n figures.push({\n type: \"line\",\n attrs: {\n coordinates: [\n { x: startX, y: entryY },\n { x: endX, y: entryY },\n ],\n },\n styles: { color: \"#888888\", size: 2 },\n });\n\n // Profit Label\n figures.push({\n type: \"text\",\n attrs: {\n x: endX,\n y: targetY,\n text: `Target: ${targetPrice.toFixed(2)} (${profitPercent}%)`,\n align: \"left\",\n baseline: \"bottom\",\n },\n styles: {\n color: \"#26a69a\",\n backgroundColor: \"rgba(0,0,0,0.6)\",\n paddingLeft: 4,\n paddingRight: 4,\n },\n });\n\n // Loss Label\n figures.push({\n type: \"text\",\n attrs: {\n x: endX,\n y: stopY,\n text: `Stop: ${stopPrice.toFixed(2)} (${lossPercent}%)`,\n align: \"left\",\n baseline: \"top\",\n },\n styles: {\n color: \"#ef5350\",\n backgroundColor: \"rgba(0,0,0,0.6)\",\n paddingLeft: 4,\n paddingRight: 4,\n },\n });\n\n // R/R Label (Center)\n figures.push({\n type: \"text\",\n attrs: {\n x: Math.min(startX, endX) + Math.abs(startX - endX) / 2,\n y: entryY,\n text: `R/R Ratio: ${rr}`,\n align: \"center\",\n baseline: \"middle\",\n },\n styles: {\n color: \"#ffffff\",\n backgroundColor: \"rgba(0,0,0,0.8)\",\n paddingLeft: 6,\n paddingRight: 6,\n borderRadius: 2,\n },\n });\n }\n return figures;\n },\n};\n\nexport default longPosition;\n","import type { OverlayTemplate } from \"klinecharts\";\n\nconst shortPosition: OverlayTemplate = {\n name: \"shortPosition\",\n // totalStep 4 → the user places 3 points interactively (entry, target, stop).\n // With the previous value of 3, only 2 points were captured and the stop was\n // always a hardcoded 40px offset, so R/R was meaningless.\n totalStep: 4,\n needDefaultPointFigure: true,\n needDefaultXAxisFigure: true,\n needDefaultYAxisFigure: true,\n createPointFigures: (params: any) => {\n const { coordinates, overlay, yAxis } = params;\n const figures: any[] = [];\n if (coordinates.length > 1 && yAxis) {\n const startX = coordinates[0].x;\n const endX = coordinates[1].x;\n const entryY = coordinates[0].y;\n const targetY = coordinates[1].y;\n const stopY =\n coordinates.length > 2 ? coordinates[2].y : entryY - 40;\n\n const entryPrice = overlay.points[0].value!;\n const targetPrice = overlay.points[1].value!;\n const stopPrice =\n overlay.points[2]?.value ?? yAxis.convertFromPixel(stopY);\n\n const reward = entryPrice - targetPrice;\n const risk = stopPrice - entryPrice;\n const rr = risk > 0 ? (reward / risk).toFixed(2) : \"0.00\";\n\n const profitPercent = ((reward / entryPrice) * 100).toFixed(2);\n const lossPercent = ((risk / entryPrice) * 100).toFixed(2);\n\n // Target Box (Profit) - Green\n figures.push({\n type: \"rect\",\n attrs: {\n x: Math.min(startX, endX),\n y: Math.min(entryY, targetY),\n width: Math.abs(startX - endX),\n height: Math.abs(entryY - targetY),\n },\n styles: { color: \"rgba(38, 166, 154, 0.2)\", style: \"fill\" },\n });\n\n // Stop Box (Loss) - Red\n figures.push({\n type: \"rect\",\n attrs: {\n x: Math.min(startX, endX),\n y: Math.min(entryY, stopY),\n width: Math.abs(startX - endX),\n height: Math.abs(entryY - stopY),\n },\n styles: { color: \"rgba(239, 83, 80, 0.2)\", style: \"fill\" },\n });\n\n // Entry Line\n figures.push({\n type: \"line\",\n attrs: {\n coordinates: [\n { x: startX, y: entryY },\n { x: endX, y: entryY },\n ],\n },\n styles: { color: \"#888888\", size: 2 },\n });\n\n // Profit Label\n figures.push({\n type: \"text\",\n attrs: {\n x: endX,\n y: targetY,\n text: `Target: ${targetPrice.toFixed(2)} (${profitPercent}%)`,\n align: \"left\",\n baseline: \"top\",\n },\n styles: {\n color: \"#26a69a\",\n backgroundColor: \"rgba(0,0,0,0.6)\",\n paddingLeft: 4,\n paddingRight: 4,\n },\n });\n\n // Loss Label\n figures.push({\n type: \"text\",\n attrs: {\n x: endX,\n y: stopY,\n text: `Stop: ${stopPrice.toFixed(2)} (${lossPercent}%)`,\n align: \"left\",\n baseline: \"bottom\",\n },\n styles: {\n color: \"#ef5350\",\n backgroundColor: \"rgba(0,0,0,0.6)\",\n paddingLeft: 4,\n paddingRight: 4,\n },\n });\n\n // R/R Label (Center)\n figures.push({\n type: \"text\",\n attrs: {\n x: Math.min(startX, endX) + Math.abs(startX - endX) / 2,\n y: entryY,\n text: `R/R Ratio: ${rr}`,\n align: \"center\",\n baseline: \"middle\",\n },\n styles: {\n color: \"#ffffff\",\n backgroundColor: \"rgba(0,0,0,0.8)\",\n paddingLeft: 6,\n paddingRight: 6,\n borderRadius: 2,\n },\n });\n }\n return figures;\n },\n};\n\nexport default shortPosition;\n","import type { OverlayTemplate } from \"klinecharts\";\n\nfunction formatDuration(ms: number): string {\n const seconds = Math.floor(ms / 1000);\n const minutes = Math.floor(seconds / 60);\n const hours = Math.floor(minutes / 60);\n const days = Math.floor(hours / 24);\n\n if (days > 0) return `${days}d ${hours % 24}h`;\n if (hours > 0) return `${hours}h ${minutes % 60}m`;\n return `${minutes}m`;\n}\n\nconst measure: OverlayTemplate = {\n name: \"measure\",\n totalStep: 3,\n needDefaultPointFigure: true,\n needDefaultXAxisFigure: true,\n needDefaultYAxisFigure: true,\n createPointFigures: (params: any) => {\n const { overlay, coordinates, yAxis } = params;\n if (coordinates.length < 2 || !yAxis) return [];\n\n const startPoint = overlay.points[0];\n const endPoint = overlay.points[1];\n const startCoord = coordinates[0];\n const endCoord = coordinates[1];\n\n const startValue = startPoint.value ?? 0;\n const endValue = endPoint.value ?? 0;\n const diff = endValue - startValue;\n const percent =\n startValue !== 0 ? ((diff / startValue) * 100).toFixed(2) : \"0.00\";\n const bars = Math.abs(\n (endPoint.dataIndex ?? 0) - (startPoint.dataIndex ?? 0),\n );\n const time = formatDuration(\n Math.abs((endPoint.timestamp ?? 0) - (startPoint.timestamp ?? 0)),\n );\n\n const isUp = diff >= 0;\n const color = isUp\n ? \"rgba(38, 166, 154, 0.2)\"\n : \"rgba(239, 83, 80, 0.2)\";\n const strokeColor = isUp ? \"#26a69a\" : \"#ef5350\";\n\n const rectX = Math.min(startCoord.x, endCoord.x);\n const rectY = Math.min(startCoord.y, endCoord.y);\n const rectWidth = Math.abs(startCoord.x - endCoord.x);\n const rectHeight = Math.abs(startCoord.y - endCoord.y);\n\n const infoLines = [\n `${isUp ? \"\\u25B2\" : \"\\u25BC\"} ${diff.toFixed(2)} (${percent}%)`,\n `${bars} bars, ${time}`,\n ];\n\n const textX = endCoord.x;\n const textY = endCoord.y + (isUp ? -40 : 20);\n\n const textFigures = infoLines.map((line, i) => ({\n type: \"text\",\n attrs: {\n x: textX,\n y: textY + i * 16,\n text: line,\n align: \"center\",\n baseline: \"middle\",\n },\n styles: {\n color: \"#fff\",\n backgroundColor: strokeColor,\n paddingLeft: 4,\n paddingRight: 4,\n paddingTop: 2,\n paddingBottom: 2,\n borderRadius: 2,\n },\n }));\n\n return [\n {\n type: \"rect\",\n attrs: {\n x: rectX,\n y: rectY,\n width: rectWidth,\n height: rectHeight,\n },\n styles: { style: \"fill\", color },\n },\n {\n type: \"line\",\n attrs: { coordinates: [startCoord, endCoord] },\n styles: { color: strokeColor, style: \"dashed\" },\n },\n ...textFigures,\n ];\n },\n};\n\nexport default measure;\n","import type { OverlayTemplate } from \"klinecharts\";\nimport { registerFigure } from \"klinecharts\";\n\nfunction getSqSegDist(\n p: { x: number; y: number },\n p1: { x: number; y: number },\n p2: { x: number; y: number },\n) {\n let x = p1.x;\n let y = p1.y;\n let dx = p2.x - x;\n let dy = p2.y - y;\n\n if (dx !== 0 || dy !== 0) {\n const t = ((p.x - x) * dx + (p.y - y) * dy) / (dx * dx + dy * dy);\n if (t > 1) {\n x = p2.x;\n y = p2.y;\n } else if (t > 0) {\n x += dx * t;\n y += dy * t;\n }\n }\n\n dx = p.x - x;\n dy = p.y - y;\n return dx * dx + dy * dy;\n}\n\nfunction rdp(points: { x: number; y: number }[], epsilon: number) {\n const len = points.length;\n if (len <= 2) return points;\n\n const sqEpsilon = epsilon * epsilon;\n const markers = new Uint8Array(len);\n markers[0] = markers[len - 1] = 1;\n\n const stack: [number, number][] = [[0, len - 1]];\n while (stack.length > 0) {\n const [first, last] = stack.pop()!;\n let maxSqDist = 0;\n let index = 0;\n\n for (let i = first + 1; i < last; i++) {\n const sqDist = getSqSegDist(points[i], points[first], points[last]);\n if (sqDist > maxSqDist) {\n maxSqDist = sqDist;\n index = i;\n }\n }\n\n if (maxSqDist > sqEpsilon) {\n markers[index] = 1;\n stack.push([first, index]);\n stack.push([index, last]);\n }\n }\n\n const result: { x: number; y: number }[] = [];\n for (let i = 0; i < len; i++) {\n if (markers[i]) result.push(points[i]);\n }\n return result;\n}\n\nregisterFigure({\n name: \"brush_path\",\n draw: (ctx: CanvasRenderingContext2D, attrs: any, styles: any) => {\n const { coordinates } = attrs;\n if (coordinates.length < 2) return;\n\n ctx.save();\n ctx.setLineDash([]);\n ctx.strokeStyle = styles.color || \"#f00\";\n ctx.lineWidth = styles.size || 2;\n ctx.lineCap = \"round\";\n ctx.lineJoin = \"round\";\n\n ctx.beginPath();\n ctx.moveTo(coordinates[0].x, coordinates[0].y);\n\n if (coordinates.length === 2) {\n ctx.lineTo(coordinates[1].x, coordinates[1].y);\n } else {\n for (let i = 1; i < coordinates.length - 2; i++) {\n const xc = (coordinates[i].x + coordinates[i + 1].x) / 2;\n const yc = (coordinates[i].y + coordinates[i + 1].y) / 2;\n ctx.quadraticCurveTo(coordinates[i].x, coordinates[i].y, xc, yc);\n }\n const last = coordinates.length - 2;\n ctx.quadraticCurveTo(\n coordinates[last].x,\n coordinates[last].y,\n coordinates[last + 1].x,\n coordinates[last + 1].y,\n );\n }\n\n ctx.stroke();\n ctx.restore();\n },\n checkEventOn: (\n coordinate: { x: number; y: number },\n attrs: any,\n styles: any,\n ) => {\n const { coordinates } = attrs;\n if (!coordinates || coordinates.length < 2) return false;\n\n const radius = (styles?.size ?? 2) / 2 + 4;\n const sqRadius = radius * radius;\n\n for (let i = 0; i < coordinates.length - 1; i++) {\n const sqDist = getSqSegDist(\n coordinate,\n coordinates[i],\n coordinates[i + 1],\n );\n if (sqDist <= sqRadius) return true;\n }\n return false;\n },\n});\n\ninterface BrushDataPoint {\n timestamp: number;\n value: number;\n}\n\ninterface BrushData {\n pixels: Array<{ x: number; y: number }>;\n points: BrushDataPoint[];\n isDirty: boolean;\n paneId?: string;\n}\n\nconst brush: OverlayTemplate = {\n name: \"brush\",\n totalStep: 3,\n needDefaultPointFigure: false,\n needDefaultXAxisFigure: false,\n needDefaultYAxisFigure: false,\n onDrawing: (params: any) => {\n const { overlay, x, y } = params;\n const paneId = params.paneId;\n if (x === undefined || y === undefined) return true;\n if (overlay.currentStep !== 2) return true;\n\n if (!overlay.extendData) {\n overlay.extendData = {\n pixels: [],\n points: [],\n isDirty: false,\n paneId,\n } as BrushData;\n }\n\n const data = overlay.extendData as BrushData;\n if (data.paneId && data.paneId !== paneId) return true;\n\n const lastPixel = data.pixels[data.pixels.length - 1];\n if (lastPixel) {\n const dx = x - lastPixel.x;\n const dy = y - lastPixel.y;\n if (dx * dx + dy * dy < 4) return true;\n }\n\n data.pixels.push({ x, y });\n return true;\n },\n onDrawEnd: (params: any) => {\n const { overlay } = params;\n const data = overlay.extendData as BrushData | undefined;\n if (data) {\n data.isDirty = true;\n }\n return true;\n },\n createPointFigures: ({ overlay, xAxis, yAxis, defaultStyles }: any) => {\n const data = overlay.extendData as BrushData | undefined;\n if (!data || !xAxis || !yAxis) return [];\n\n if (data.pixels.length > 0) {\n for (const p of data.pixels) {\n data.points.push({\n timestamp: xAxis.convertFromPixel(p.x),\n value: yAxis.convertFromPixel(p.y),\n });\n }\n data.pixels = [];\n }\n\n let { points } = data;\n\n if (data.isDirty && points.length > 2) {\n const pixelPoints = points.map((p) => ({\n x: xAxis.convertToPixel(p.timestamp),\n y: yAxis.convertToPixel(p.value),\n }));\n\n const simplified = rdp(pixelPoints, 1.5);\n\n data.points = simplified.map((p) => ({\n timestamp: xAxis.convertFromPixel(p.x),\n value: yAxis.convertFromPixel(p.y),\n }));\n points = data.points;\n data.isDirty = false;\n }\n\n if (points.length < 2) return [];\n\n const coordinates = points.map((p) => ({\n x: xAxis.convertToPixel(p.timestamp),\n y: yAxis.convertToPixel(p.value),\n }));\n\n return [\n {\n type: \"brush_path\",\n attrs: { coordinates },\n styles: {\n color:\n overlay.styles?.line?.color ??\n defaultStyles?.line?.color ??\n \"#1677ff\",\n size:\n overlay.styles?.line?.size ?? defaultStyles?.line?.size ?? 2,\n },\n },\n ];\n },\n};\n\nexport default brush;\n","export { default as bollTv } from \"./bollTv\";\nexport { default as cci } from \"./cci\";\nexport { default as hma } from \"./hma\";\nexport { default as ichimoku } from \"./ichimoku\";\nexport { default as maRibbon } from \"./maRibbon\";\nexport { default as macdTv } from \"./macdTv\";\nexport { default as pivotPoints } from \"./pivotPoints\";\nexport { default as rsiTv } from \"./rsiTv\";\nexport { default as stochastic } from \"./stochastic\";\nexport { default as superTrend } from \"./superTrend\";\nexport { default as vwap } from \"./vwap\";\n","/**\n * Technical Analysis (TA) Utility Library\n * Ported logic to match TradingView / Pine Script calculations.\n */\n\nconst TA = {\n /**\n * Simple Moving Average (SMA)\n * Optimized with running sum.\n */\n sma: (data: number[], period: number): (number | null)[] => {\n const result: (number | null)[] = [];\n let sum = 0;\n for (let i = 0; i < data.length; i++) {\n sum += data[i];\n if (i >= period) {\n sum -= data[i - period];\n }\n if (i >= period - 1) {\n result.push(sum / period);\n } else {\n result.push(null);\n }\n }\n return result;\n },\n\n /**\n * Exponential Moving Average (EMA)\n * alpha = 2 / (period + 1)\n */\n ema: (data: number[], period: number): (number | null)[] => {\n const result: (number | null)[] = [];\n const alpha = 2 / (period + 1);\n let prevEma: number | null = null;\n\n for (let i = 0; i < data.length; i++) {\n if (prevEma === null) {\n if (i === period - 1) {\n let sum = 0;\n for (let j = 0; j <= i; j++) sum += data[j];\n prevEma = sum / period;\n result.push(prevEma);\n } else {\n result.push(null);\n }\n } else {\n prevEma = data[i] * alpha + prevEma * (1 - alpha);\n result.push(prevEma);\n }\n }\n return result;\n },\n\n /**\n * Running Moving Average (RMA / Wilder's MA)\n * Used in RSI, alpha = 1 / period\n */\n rma: (data: number[], period: number): (number | null)[] => {\n const result: (number | null)[] = [];\n const alpha = 1 / period;\n let prevRma: number | null = null;\n\n for (let i = 0; i < data.length; i++) {\n if (prevRma === null) {\n if (i === period - 1) {\n let sum = 0;\n for (let j = 0; j <= i; j++) sum += data[j];\n prevRma = sum / period;\n result.push(prevRma);\n } else {\n result.push(null);\n }\n } else {\n prevRma = data[i] * alpha + prevRma * (1 - alpha);\n result.push(prevRma);\n }\n }\n return result;\n },\n\n /**\n * Standard Deviation\n */\n stdev: (data: number[], period: number): (number | null)[] => {\n const result: (number | null)[] = [];\n const sma = TA.sma(data, period);\n\n for (let i = 0; i < data.length; i++) {\n const currentSma = sma[i];\n if (currentSma === null) {\n result.push(null);\n } else {\n let sumSq = 0;\n for (let j = 0; j < period; j++) {\n sumSq += Math.pow(data[i - j] - currentSma, 2);\n }\n result.push(Math.sqrt(sumSq / period));\n }\n }\n return result;\n },\n\n /**\n * Relative Strength Index (RSI)\n */\n rsi: (data: number[], period: number): (number | null)[] => {\n const changes: number[] = [0];\n for (let i = 1; i < data.length; i++) {\n changes.push(data[i] - data[i - 1]);\n }\n\n const ups = changes.map((c) => Math.max(c, 0));\n const downs = changes.map((c) => Math.max(-c, 0));\n\n const avgUps = TA.rma(ups, period);\n const avgDowns = TA.rma(downs, period);\n\n return avgUps.map((up, i) => {\n const down = avgDowns[i];\n if (up === null || down === null) return null;\n if (down === 0) return 100;\n const rs = up / down;\n return 100 - 100 / (1 + rs);\n });\n },\n\n /**\n * Moving Average Convergence Divergence (MACD)\n */\n macd: (\n data: number[],\n fastPeriod: number,\n slowPeriod: number,\n signalPeriod: number,\n ) => {\n const fastEma = TA.ema(data, fastPeriod);\n const slowEma = TA.ema(data, slowPeriod);\n const dif = fastEma.map((f, i) =>\n f !== null && slowEma[i] !== null\n ? f - (slowEma[i] as number)\n : null,\n );\n const dea = TA.ema(\n dif.filter((v) => v !== null) as number[],\n signalPeriod,\n );\n\n let deaIdx = 0;\n const fullDea = dif.map((v) => (v === null ? null : dea[deaIdx++]));\n const macd = dif.map((v, i) =>\n v !== null && fullDea[i] !== null\n ? v - (fullDea[i] as number)\n : null,\n );\n\n return { dif, dea: fullDea, macd };\n },\n\n /**\n * Bollinger Bands (BOLL)\n */\n bollinger: (data: number[], period: number, multiplier: number) => {\n const mid = TA.sma(data, period);\n const std = TA.stdev(data, period);\n const upper = mid.map((m, i) =>\n m !== null && std[i] !== null\n ? m + multiplier * (std[i] as number)\n : null,\n );\n const lower = mid.map((m, i) =>\n m !== null && std[i] !== null\n ? m - multiplier * (std[i] as number)\n : null,\n );\n\n return { mid, upper, lower };\n },\n\n /**\n * Weighted Moving Average (WMA)\n */\n wma: (data: number[], period: number): (number | null)[] => {\n const result: (number | null)[] = [];\n let sumWeight = 0;\n for (let i = 1; i <= period; i++) sumWeight += i;\n\n for (let i = 0; i < data.length; i++) {\n if (i < period - 1) {\n result.push(null);\n } else {\n let sum = 0;\n for (let j = 0; j < period; j++) {\n sum += data[i - j] * (period - j);\n }\n result.push(sum / sumWeight);\n }\n }\n return result;\n },\n\n /**\n * True Range (TR)\n */\n tr: (highs: number[], lows: number[], closes: number[]): number[] => {\n const result: number[] = [];\n for (let i = 0; i < highs.length; i++) {\n if (i === 0) {\n result.push(highs[i] - lows[i]);\n } else {\n const tr = Math.max(\n highs[i] - lows[i],\n Math.abs(highs[i] - closes[i - 1]),\n Math.abs(lows[i] - closes[i - 1]),\n );\n result.push(tr);\n }\n }\n return result;\n },\n\n /**\n * Average True Range (ATR)\n */\n atr: (\n highs: number[],\n lows: number[],\n closes: number[],\n period: number,\n ): (number | null)[] => {\n const tr = TA.tr(highs, lows, closes);\n return TA.rma(tr, period);\n },\n\n /**\n * Volume Weighted Average Price (VWAP)\n */\n vwap: (\n highs: number[],\n lows: number[],\n closes: number[],\n volumes: number[],\n ): (number | null)[] => {\n let totalVolume = 0;\n let totalVolumePrice = 0;\n return highs.map((h, i) => {\n const price = (h + lows[i] + closes[i]) / 3;\n totalVolume += volumes[i];\n totalVolumePrice += price * volumes[i];\n return totalVolume === 0 ? price : totalVolumePrice / totalVolume;\n });\n },\n\n /**\n * Commodity Channel Index (CCI)\n */\n cci: (\n highs: number[],\n lows: number[],\n closes: number[],\n period: number,\n ): (number | null)[] => {\n const tp = highs.map((h, i) => (h + lows[i] + closes[i]) / 3);\n const smaTp = TA.sma(tp, period);\n const result: (number | null)[] = [];\n\n for (let i = 0; i < tp.length; i++) {\n const currentSma = smaTp[i];\n if (currentSma === null) {\n result.push(null);\n } else {\n let meanDev = 0;\n for (let j = 0; j < period; j++) {\n meanDev += Math.abs(tp[i - j] - currentSma);\n }\n meanDev /= period;\n if (meanDev === 0) {\n result.push(0);\n } else {\n result.push((tp[i] - currentSma) / (0.015 * meanDev));\n }\n }\n }\n return result;\n },\n\n /**\n * Hull Moving Average (HMA)\n */\n hma: (data: number[], period: number): (number | null)[] => {\n const halfPeriod = Math.floor(period / 2);\n const sqrtPeriod = Math.floor(Math.sqrt(period));\n const wma1 = TA.wma(data, halfPeriod);\n const wma2 = TA.wma(data, period);\n\n const diff = wma1.map((v, i) => {\n if (v !== null && wma2[i] !== null) {\n return 2 * v - (wma2[i] as number);\n }\n return null;\n });\n\n const diffValues = diff.filter((v) => v !== null) as number[];\n const finalHma = TA.wma(diffValues, sqrtPeriod);\n\n let finalIndex = 0;\n return diff.map((v) => {\n if (v === null) return null;\n return finalHma[finalIndex++] ?? null;\n });\n },\n};\n\nexport default TA;\n","import type { IndicatorTemplate, KLineData, Indicator } from \"klinecharts\";\nimport TA from \"../utils/TA\";\n\nconst bollTv: IndicatorTemplate = {\n name: \"BOLL_TV\",\n shortName: \"BOLL (TV)\",\n calcParams: [20, 2],\n figures: [\n { key: \"mid\", title: \"Mid: \", type: \"line\" },\n { key: \"upper\", title: \"Upper: \", type: \"line\" },\n { key: \"lower\", title: \"Lower: \", type: \"line\" },\n ],\n calc: (dataList: KLineData[], indicator: Indicator) => {\n const period = indicator.calcParams[0] as number;\n const multiplier = indicator.calcParams[1] as number;\n const closes = dataList.map((d) => d.close);\n const { mid, upper, lower } = TA.bollinger(closes, period, multiplier);\n return dataList.map((_, i) => ({\n mid: mid[i],\n upper: upper[i],\n lower: lower[i],\n }));\n },\n};\n\nexport default bollTv;\n","import type { IndicatorTemplate, KLineData, Indicator } from \"klinecharts\";\nimport TA from \"../utils/TA\";\n\nconst cci: IndicatorTemplate = {\n name: \"CCI_TV\",\n shortName: \"CCI\",\n calcParams: [20],\n figures: [{ key: \"cci\", title: \"CCI: \", type: \"line\" }],\n calc: (dataList: KLineData[], indicator: Indicator) => {\n const period = indicator.calcParams[0] as number;\n const highs = dataList.map((d) => d.high);\n const lows = dataList.map((d) => d.low);\n const closes = dataList.map((d) => d.close);\n const cciValues = TA.cci(highs, lows, closes, period);\n return cciValues.map((v) => ({ cci: v }));\n },\n};\n\nexport default cci;\n","import type { IndicatorTemplate, KLineData, Indicator } from \"klinecharts\";\nimport TA from \"../utils/TA\";\n\nconst hma: IndicatorTemplate = {\n name: \"HMA\",\n shortName: \"HMA\",\n calcParams: [9],\n figures: [{ key: \"hma\", title: \"HMA: \", type: \"line\" }],\n calc: (dataList: KLineData[], indicator: Indicator) => {\n const period = indicator.calcParams[0] as number;\n const halfPeriod = Math.floor(period / 2);\n const sqrtPeriod = Math.floor(Math.sqrt(period));\n\n const closes = dataList.map((d) => d.close);\n const wma1 = TA.wma(closes, halfPeriod);\n const wma2 = TA.wma(closes, period);\n\n const diff = wma1.map((v, i) => {\n if (v !== null && wma2[i] !== null) {\n return 2 * v - (wma2[i] as number);\n }\n return null;\n });\n\n const diffValues = diff.filter((v) => v !== null) as number[];\n const finalHma = TA.wma(diffValues, sqrtPeriod);\n\n let finalIndex = 0;\n return diff.map((v) => {\n if (v === null) return { hma: null };\n const res = finalHma[finalIndex++];\n return { hma: res };\n });\n },\n};\n\nexport default hma;\n","import type { IndicatorTemplate, KLineData, Indicator } from \"klinecharts\";\n\nconst ichimoku: IndicatorTemplate = {\n name: \"Ichimoku\",\n shortName: \"Ichimoku\",\n calcParams: [9, 26, 52, 26],\n figures: [\n { key: \"tenkan\", title: \"Tenkan: \", type: \"line\" },\n { key: \"kijun\", title: \"Kijun: \", type: \"line\" },\n { key: \"chikou\", title: \"Chikou: \", type: \"line\" },\n { key: \"spanA\", title: \"Span A: \", type: \"line\" },\n { key: \"spanB\", title: \"Span B: \", type: \"line\" },\n ],\n calc: (dataList: KLineData[], indicator: Indicator) => {\n const params = indicator.calcParams as number[];\n const tenkanPeriod = params[0];\n const kijunPeriod = params[1];\n const spanBPeriod = params[2];\n const offset = params[3];\n\n const highLowAvg = (data: KLineData[], start: number, end: number) => {\n let high = -Infinity;\n let low = Infinity;\n for (let i = start; i <= end; i++) {\n high = Math.max(high, data[i].high);\n low = Math.min(low, data[i].low);\n }\n return (high + low) / 2;\n };\n\n return dataList.map((_kLineData: KLineData, index: number) => {\n const item: Record<string, number | null> = {\n tenkan: null,\n kijun: null,\n chikou: null,\n spanA: null,\n spanB: null,\n };\n\n if (index >= tenkanPeriod - 1) {\n item.tenkan = highLowAvg(\n dataList,\n index - tenkanPeriod + 1,\n index,\n );\n }\n\n if (index >= kijunPeriod - 1) {\n item.kijun = highLowAvg(dataList, index - kijunPeriod + 1, index);\n }\n\n // Chikou span = the current close plotted `offset` bars into the future.\n // Reading `dataList[index + offset]` leaks a future close into the past\n // (look-ahead bias). Instead read the close from `offset` bars ago, so\n // the lagged line matches TradingView's Chikou.\n const chikouIndex = index - offset;\n if (chikouIndex >= 0) {\n item.chikou = dataList[chikouIndex].close;\n }\n\n const prevIndex = index - offset;\n if (prevIndex >= 0) {\n const prevTenkan =\n prevIndex >= tenkanPeriod - 1\n ? highLowAvg(dataList, prevIndex - tenkanPeriod + 1, prevIndex)\n : null;\n const prevKijun =\n prevIndex >= kijunPeriod - 1\n ? highLowAvg(dataList, prevIndex - kijunPeriod + 1, prevIndex)\n : null;\n\n if (prevTenkan !== null && prevKijun !== null) {\n item.spanA = (prevTenkan + prevKijun) / 2;\n }\n\n if (prevIndex >= spanBPeriod - 1) {\n item.spanB = highLowAvg(\n dataList,\n prevIndex - spanBPeriod + 1,\n prevIndex,\n );\n }\n }\n\n return item;\n });\n },\n};\n\nexport default ichimoku;\n","import type { IndicatorTemplate, KLineData, Indicator } from \"klinecharts\";\nimport TA from \"../utils/TA\";\n\nconst COLORS = [\n \"#001CFF\", \"#0055FF\", \"#008CFF\", \"#00C4FF\", \"#00FFED\",\n \"#00FF8E\", \"#2EFF00\", \"#B7FF00\", \"#FFE100\", \"#FF9100\",\n \"#FF4400\", \"#FF0000\", \"#C4003E\", \"#8A007B\", \"#4E00B8\",\n];\n\nconst maRibbon: IndicatorTemplate = {\n name: \"MA_Ribbon\",\n shortName: \"Ribbon\",\n series: \"price\",\n calcParams: [10, 20, 30, 40],\n figures: Array.from({ length: 15 }).map((_, i) => ({\n key: `ma${i}`,\n title: `MA${i + 1}: `,\n type: \"line\" as const,\n styles: () => ({ color: COLORS[i] }),\n })),\n calc: (dataList: KLineData[], indicator: Indicator) => {\n const params = indicator.calcParams as number[];\n const closes = dataList.map((d) => d.close);\n const count = Math.min(params.length, COLORS.length);\n\n const emas: (number | null)[][] = [];\n for (let i = 0; i < count; i++) {\n emas.push(TA.ema(closes, params[i]));\n }\n\n return dataList.map((_, i) => {\n const barData: Record<string, number | null> = {};\n for (let j = 0; j < count; j++) {\n barData[`ma${j}`] = emas[j][i];\n }\n return barData;\n });\n },\n};\n\nexport default maRibbon;\n","import type { IndicatorTemplate, KLineData, Indicator } from \"klinecharts\";\nimport TA from \"../utils/TA\";\n\nconst macdTv: IndicatorTemplate = {\n name: \"MACD_TV\",\n shortName: \"MACD (TV)\",\n calcParams: [12, 26, 9],\n figures: [\n {\n key: \"histogram\",\n title: \"Histogram: \",\n type: \"bar\",\n baseValue: 0,\n styles: (data: any) => {\n const current = data.current?.histogram ?? 0;\n const pre = data.prev?.histogram ?? 0;\n\n const color =\n current > 0\n ? current > pre\n ? \"#26A69A\"\n : \"#B2DFDB\"\n : current < 0\n ? current < pre\n ? \"#FF5252\"\n : \"#FFCDD2\"\n : \"#B2DFDB\";\n\n return { color };\n },\n },\n {\n key: \"macd\",\n title: \"MACD: \",\n type: \"line\",\n styles: () => ({ color: \"#2962FF\" }),\n },\n {\n key: \"signal\",\n title: \"Signal: \",\n type: \"line\",\n styles: () => ({ color: \"#FF6D00\" }),\n },\n ],\n calc: (dataList: KLineData[], indicator: Indicator) => {\n const fast = indicator.calcParams[0] as number;\n const slow = indicator.calcParams[1] as number;\n const signalLen = indicator.calcParams[2] as number;\n\n const closes = dataList.map((d) => d.close);\n const { dif, dea, macd } = TA.macd(closes, fast, slow, signalLen);\n\n return dataList.map((_, i) => ({\n macd: dif[i],\n signal: dea[i],\n histogram: macd[i],\n }));\n },\n};\n\nexport default macdTv;\n","import type { IndicatorTemplate, KLineData } from \"klinecharts\";\n\nconst pivotPoints: IndicatorTemplate = {\n name: \"PivotPoints\",\n shortName: \"Pivot\",\n calcParams: [],\n figures: [\n { key: \"p\", title: \"P: \", type: \"line\" },\n { key: \"r1\", title: \"R1: \", type: \"line\" },\n { key: \"s1\", title: \"S1: \", type: \"line\" },\n { key: \"r2\", title: \"R2: \", type: \"line\" },\n { key: \"s2\", title: \"S2: \", type: \"line\" },\n ],\n calc: (dataList: KLineData[]) => {\n let lastP: number | null = null;\n let lastR1: number | null = null;\n let lastS1: number | null = null;\n let lastR2: number | null = null;\n let lastS2: number | null = null;\n let lastDate = \"\";\n let dayHigh = -Infinity;\n let dayLow = Infinity;\n let dayClose = 0;\n\n return dataList.map((kLineData: KLineData) => {\n // Derive the day key from UTC (see vwap.ts for rationale): a stable\n // boundary independent of the host's local timezone.\n const date = new Date(kLineData.timestamp).toISOString().slice(0, 10);\n if (date !== lastDate) {\n if (lastDate !== \"\") {\n lastP = (dayHigh + dayLow + dayClose) / 3;\n lastR1 = 2 * lastP - dayLow;\n lastS1 = 2 * lastP - dayHigh;\n lastR2 = lastP + (dayHigh - dayLow);\n lastS2 = lastP - (dayHigh - dayLow);\n }\n dayHigh = kLineData.high;\n dayLow = kLineData.low;\n dayClose = kLineData.close;\n lastDate = date;\n } else {\n dayHigh = Math.max(dayHigh, kLineData.high);\n dayLow = Math.min(dayLow, kLineData.low);\n dayClose = kLineData.close;\n }\n\n return {\n p: lastP,\n r1: lastR1,\n s1: lastS1,\n r2: lastR2,\n s2: lastS2,\n };\n });\n },\n};\n\nexport default pivotPoints;\n","import type { IndicatorTemplate, KLineData, Indicator } from \"klinecharts\";\nimport TA from \"../utils/TA\";\n\n/**\n * TradingView-style RSI with RMA-based calculation,\n * dashed level lines at 70/50/30, and gradient fills.\n */\nconst rsiTv: IndicatorTemplate = {\n name: \"RSI_TV\",\n shortName: \"RSI (TV)\",\n calcParams: [14, 14],\n figures: [\n {\n key: \"rsi\",\n title: \"RSI: \",\n type: \"line\",\n styles: () => ({ color: \"#7E57C2\", size: 1.5 }),\n },\n {\n key: \"rsi_ma\",\n title: \"MA: \",\n type: \"line\",\n styles: () => ({ color: \"#FFEE58\", size: 1.2 }),\n },\n ],\n calc: (dataList: KLineData[], indicator: Indicator) => {\n const rsiPeriod = indicator.calcParams[0] as number;\n const maPeriod = indicator.calcParams[1] as number;\n const closes = dataList.map((d) => d.close);\n\n const rsiValues = TA.rsi(closes, rsiPeriod);\n\n // Compute the RSI moving average only over valid RSI values, propagating\n // `null` through the warm-up. The previous implementation substituted the\n // warm-up `null`s with `0`, which pulled the MA toward zero and produced\n // wrong values for the first `rsiPeriod + maPeriod` bars.\n const rsiMa: (number | null)[] = new Array(rsiValues.length).fill(null);\n for (let i = 0; i < rsiValues.length; i++) {\n if (rsiValues[i] === null) continue;\n // Collect the last `maPeriod` valid RSI values ending at i. Once we have\n // that many, the SMA is defined.\n const valid: number[] = [];\n for (let j = i; j >= 0 && valid.length < maPeriod; j--) {\n if (rsiValues[j] !== null) valid.push(rsiValues[j] as number);\n }\n if (valid.length === maPeriod) {\n rsiMa[i] = valid.reduce((a, b) => a + b, 0) / maPeriod;\n }\n }\n\n return dataList.map((_, i) => {\n const rsi = rsiValues[i];\n const rsi_ma = rsi !== null ? rsiMa[i] : null;\n return { rsi, rsi_ma };\n });\n },\n draw: ({\n ctx,\n chart,\n indicator,\n bounding,\n yAxis,\n }: any): boolean => {\n const { from, to } = chart.getVisibleRange();\n const barSpace = chart.getBarSpace();\n const resultData = indicator.result as Array<{\n rsi: number | null;\n } | null>;\n\n const y70 = yAxis.convertToPixel(70);\n const y50 = yAxis.convertToPixel(50);\n const y30 = yAxis.convertToPixel(30);\n\n const left = bounding.left;\n const right = bounding.left + bounding.width;\n\n const getX = (i: number): number =>\n right - barSpace.halfBar - (to - 1 - i) * barSpace.bar;\n\n ctx.save();\n\n const fillZone = (\n yThreshold: number,\n above: boolean,\n gradFrom: string,\n gradTo: string,\n ) => {\n const compare = above\n ? (v: number) => v > 70\n : (v: number) => v < 30;\n\n let i = from;\n while (i < to) {\n while (i < to) {\n const d = resultData[i];\n const v = d?.rsi;\n if (v !== null && v !== undefined && compare(v)) break;\n i++;\n }\n if (i >= to) break;\n\n const pts: { x: number; y: number }[] = [];\n while (i < to) {\n const d = resultData[i];\n const v = d?.rsi;\n if (v === null || v === undefined || !compare(v)) break;\n pts.push({ x: getX(i), y: yAxis.convertToPixel(v) });\n i++;\n }\n if (pts.length === 0) continue;\n\n ctx.beginPath();\n ctx.moveTo(pts[0].x, yThreshold);\n for (const p of pts) ctx.lineTo(p.x, p.y);\n ctx.lineTo(pts[pts.length - 1].x, yThreshold);\n ctx.closePath();\n\n const gradY1 = yThreshold;\n const gradY2 = above\n ? Math.min(...pts.map((p) => p.y)) - 5\n : Math.max(...pts.map((p) => p.y)) + 5;\n const grad = ctx.createLinearGradient(0, gradY1, 0, gradY2);\n grad.addColorStop(0, gradFrom);\n grad.addColorStop(1, gradTo);\n\n ctx.globalAlpha = 1;\n ctx.fillStyle = grad;\n ctx.fill();\n }\n };\n\n fillZone(\n y70,\n true,\n \"rgba(239,83,80,0.0)\",\n \"rgba(239,83,80,0.35)\",\n );\n fillZone(\n y30,\n false,\n \"rgba(38,166,154,0.0)\",\n \"rgba(38,166,154,0.35)\",\n );\n\n const drawDash = (y: number, color: string, alpha: number) => {\n ctx.beginPath();\n ctx.globalAlpha = alpha;\n ctx.setLineDash([5, 4]);\n ctx.strokeStyle = color;\n ctx.lineWidth = 1;\n ctx.moveTo(left, y);\n ctx.lineTo(right, y);\n ctx.stroke();\n };\n\n ctx.globalAlpha = 1;\n drawDash(y70, \"#EF5350\", 0.7);\n drawDash(y30, \"#26A69A\", 0.7);\n drawDash(y50, \"#aaaaaa\", 0.3);\n\n ctx.restore();\n return false;\n },\n};\n\nexport default rsiTv;\n","import type { IndicatorTemplate, KLineData, Indicator } from \"klinecharts\";\n\nfunction rollingMinMax(\n data: number[],\n period: number,\n): { min: number[]; max: number[] } {\n const min: number[] = [];\n const max: number[] = [];\n for (let i = 0; i < data.length; i++) {\n if (i < period - 1) {\n min.push(NaN);\n max.push(NaN);\n } else {\n let lo = data[i];\n let hi = data[i];\n for (let j = 1; j < period; j++) {\n if (data[i - j] < lo) lo = data[i - j];\n if (data[i - j] > hi) hi = data[i - j];\n }\n min.push(lo);\n max.push(hi);\n }\n }\n return { min, max };\n}\n\nfunction smaWithNaN(data: number[], period: number): number[] {\n const result: number[] = [];\n let sum = 0;\n let count = 0;\n let windowStart = 0;\n\n for (let i = 0; i < data.length; i++) {\n if (!isNaN(data[i])) {\n sum += data[i];\n count++;\n }\n if (i >= period) {\n if (!isNaN(data[windowStart])) {\n sum -= data[windowStart];\n count--;\n }\n windowStart++;\n }\n result.push(count === period ? sum / period : NaN);\n }\n return result;\n}\n\nconst stochastic: IndicatorTemplate = {\n name: \"Stochastic\",\n shortName: \"STOCH\",\n calcParams: [14, 3, 3],\n figures: [\n { key: \"k\", title: \"%K: \", type: \"line\" },\n { key: \"d\", title: \"%D: \", type: \"line\" },\n ],\n calc: (dataList: KLineData[], indicator: Indicator) => {\n const [period, smoothK, smoothD] = indicator.calcParams as number[];\n\n const highs = dataList.map((d) => d.high);\n const lows = dataList.map((d) => d.low);\n const closes = dataList.map((d) => d.close);\n\n const { min: lowestLow } = rollingMinMax(lows, period);\n const { max: highestHigh } = rollingMinMax(highs, period);\n\n const rawK = closes.map((c, i) => {\n const lo = lowestLow[i];\n const hi = highestHigh[i];\n if (isNaN(lo) || isNaN(hi) || hi === lo) return null;\n return ((c - lo) / (hi - lo)) * 100;\n });\n\n const validK = rawK.map((v) => v ?? NaN);\n const kSmoothed = smaWithNaN(validK, smoothK);\n const dLine = smaWithNaN(kSmoothed, smoothD);\n\n return kSmoothed.map((k, i) => ({\n k: isNaN(k) ? null : k,\n d: isNaN(dLine[i]) ? null : dLine[i],\n }));\n },\n};\n\nexport default stochastic;\n","import type { IndicatorTemplate, KLineData, Indicator } from \"klinecharts\";\nimport TA from \"../utils/TA\";\n\nconst superTrend: IndicatorTemplate = {\n name: \"SuperTrend\",\n shortName: \"SuperTrend\",\n calcParams: [10, 3],\n figures: [\n { key: \"up\", title: \"Up: \", type: \"line\" },\n { key: \"down\", title: \"Down: \", type: \"line\" },\n ],\n calc: (dataList: KLineData[], indicator: Indicator) => {\n const period = indicator.calcParams[0] as number;\n const factor = indicator.calcParams[1] as number;\n\n const highs = dataList.map((d) => d.high);\n const lows = dataList.map((d) => d.low);\n const closes = dataList.map((d) => d.close);\n const atr = TA.atr(highs, lows, closes, period);\n\n let trend = 1;\n let up = 0;\n let down = 0;\n\n return dataList.map((kLineData: KLineData, index: number) => {\n const currentAtr = atr[index];\n if (currentAtr === null) return { up: null, down: null };\n\n const mid = (kLineData.high + kLineData.low) / 2;\n const basicUpper = mid + factor * currentAtr;\n const basicLower = mid - factor * currentAtr;\n\n if (index === 0 || atr[index - 1] === null) {\n up = basicUpper;\n down = basicLower;\n } else {\n const prevUp = up;\n const prevDown = down;\n const prevClose = dataList[index - 1].close;\n\n up =\n basicUpper < prevUp || prevClose > prevUp\n ? basicUpper\n : prevUp;\n down =\n basicLower > prevDown || prevClose < prevDown\n ? basicLower\n : prevDown;\n }\n\n if (trend === 1 && kLineData.close < down) {\n trend = -1;\n } else if (trend === -1 && kLineData.close > up) {\n trend = 1;\n }\n\n // `up` is the SuperTrend line drawn during an uptrend (the lower /\n // support band, derived from the lower basic band); `down` is the line\n // drawn during a downtrend (the upper / resistance band). Only one is\n // non-null at a time, producing the characteristic single trend line.\n return {\n up: trend === 1 ? down : null,\n down: trend === -1 ? up : null,\n };\n });\n },\n};\n\nexport default superTrend;\n","import type { IndicatorTemplate, KLineData } from \"klinecharts\";\n\nconst vwap: IndicatorTemplate = {\n name: \"VWAP\",\n shortName: \"VWAP\",\n calcParams: [],\n figures: [{ key: \"vwap\", title: \"VWAP: \", type: \"line\" }],\n calc: (dataList: KLineData[]) => {\n let cumulativeVolume = 0;\n let cumulativePriceVolume = 0;\n let lastDate = \"\";\n return dataList.map((kLineData: KLineData) => {\n // Derive the day key from UTC so server-side and browser-side rendering\n // agree on the session boundary. `toLocaleDateString()` would resolve\n // against the host's local timezone and produce inconsistent resets\n // across machines. (Note: this is still \"UTC day\", not the chart's\n // configured timezone — klinecharts' calc has no access to it.)\n const date = new Date(kLineData.timestamp).toISOString().slice(0, 10);\n if (date !== lastDate) {\n cumulativeVolume = 0;\n cumulativePriceVolume = 0;\n lastDate = date;\n }\n const price = (kLineData.high + kLineData.low + kLineData.close) / 3;\n cumulativeVolume += kLineData.volume ?? 0;\n cumulativePriceVolume += price * (kLineData.volume ?? 0);\n return {\n vwap: cumulativePriceVolume / (cumulativeVolume || 1),\n };\n });\n },\n};\n\nexport default vwap;\n","import type { OverlayTemplate } from \"klinecharts\";\n\nexport interface OrderLineFontStyle {\n size?: number;\n family?: string;\n weight?: string;\n}\n\nexport interface OrderLinePadding {\n x?: number;\n y?: number;\n}\n\nexport interface OrderLineMarkStyle {\n /** Mark text color. Default: \"#ffffff\" */\n color?: string;\n /** Mark background color (falls back to top-level `color`). */\n bg?: string;\n /** Mark border radius. Default: 2 */\n borderRadius?: number;\n /** Mark font. Defaults: size=11, family=\"Helvetica Neue, Arial, sans-serif\", weight=\"bold\" */\n font?: OrderLineFontStyle;\n /** Mark padding. Defaults: x=4, y=2 */\n padding?: OrderLinePadding;\n}\n\nexport interface OrderLineLabelStyle {\n /** Label text color (falls back to top-level `color`). */\n color?: string;\n /** Label background color. Default: \"transparent\" */\n bg?: string;\n /** Label border radius. Default: 0 */\n borderRadius?: number;\n /** Label font. Defaults: size=11, family=\"Helvetica Neue, Arial, sans-serif\", weight=\"normal\" */\n font?: OrderLineFontStyle;\n /** Label padding. Defaults: x=0, y=0 */\n padding?: OrderLinePadding;\n /** Label offset from anchor. Defaults: x=8, y=3 */\n offset?: OrderLinePadding;\n}\n\nexport interface OrderLineLineStyle {\n /**\n * Line dash style. Default: \"dashed\". Note klinecharts only supports\n * \"solid\" and \"dashed\"; a dotted effect is achieved via `dashedValue`.\n */\n style?: \"solid\" | \"dashed\";\n /** Line thickness. Default: 1 */\n width?: number;\n /** Dash pattern [dash, gap]. Default: [4, 2] (matches chart built-in lines) */\n dashedValue?: [number, number];\n}\n\nexport interface OrderLineExtendData {\n /** Primary color for line, mark bg, and label fallback. Default: \"rgba(255, 165, 0, 0.85)\" */\n color?: string;\n /** Optional text label displayed above the line. */\n text?: string;\n /** Line style overrides. */\n line?: OrderLineLineStyle;\n /** Y-axis price mark style overrides. */\n mark?: OrderLineMarkStyle;\n /** Text label style overrides. */\n label?: OrderLineLabelStyle;\n}\n\nconst DEFAULT_FONT_FAMILY = \"Helvetica Neue, Arial, sans-serif\";\n\nconst orderLine: OverlayTemplate = {\n name: \"orderLine\",\n totalStep: 2,\n needDefaultPointFigure: false,\n needDefaultXAxisFigure: false,\n needDefaultYAxisFigure: false,\n createYAxisFigures: ({ chart, overlay, coordinates }) => {\n if (coordinates.length < 1) return [];\n const y = coordinates[0].y;\n const price = overlay.points[0]?.value;\n if (price == null) return [];\n const d = (overlay.extendData ?? {}) as OrderLineExtendData;\n const color = d.color ?? \"rgba(255, 165, 0, 0.85)\";\n const m = d.mark;\n const precision = chart.getSymbol()?.pricePrecision ?? 2;\n return [\n {\n type: \"text\",\n attrs: {\n x: 0,\n y,\n text: price.toFixed(precision),\n align: \"left\",\n baseline: \"middle\",\n },\n styles: {\n color: m?.color ?? \"#ffffff\",\n size: m?.font?.size ?? 11,\n family: m?.font?.family ?? DEFAULT_FONT_FAMILY,\n weight: m?.font?.weight ?? \"bold\",\n paddingLeft: m?.padding?.x ?? 4,\n paddingRight: m?.padding?.x ?? 4,\n paddingTop: m?.padding?.y ?? 4,\n paddingBottom: m?.padding?.y ?? 4,\n backgroundColor: m?.bg ?? color,\n borderRadius: m?.borderRadius ?? 2,\n },\n },\n ];\n },\n createPointFigures: ({ coordinates, bounding, overlay }) => {\n if (coordinates.length < 1) return [];\n\n const y = coordinates[0].y;\n const d = (overlay.extendData ?? {}) as OrderLineExtendData;\n const color = d.color ?? \"rgba(255, 165, 0, 0.85)\";\n const ln = d.line;\n\n const figures: ReturnType<\n NonNullable<OverlayTemplate[\"createPointFigures\"]>\n > = [\n {\n type: \"line\",\n attrs: {\n coordinates: [\n { x: 0, y },\n { x: bounding.width, y },\n ],\n },\n styles: {\n style: ln?.style ?? \"dashed\",\n color,\n size: ln?.width ?? 1,\n dashedValue: ln?.dashedValue ?? [4, 2],\n },\n },\n ];\n\n if (d.text) {\n const lb = d.label;\n figures.push({\n type: \"text\",\n ignoreEvent: true,\n attrs: {\n x: lb?.offset?.x ?? 8,\n y: y - (lb?.offset?.y ?? 3),\n text: d.text,\n align: \"left\",\n baseline: \"bottom\",\n },\n styles: {\n color: lb?.color ?? color,\n size: lb?.font?.size ?? 11,\n family: lb?.font?.family ?? DEFAULT_FONT_FAMILY,\n weight: lb?.font?.weight ?? \"normal\",\n paddingLeft: lb?.padding?.x ?? 0,\n paddingRight: lb?.padding?.x ?? 0,\n paddingTop: lb?.padding?.y ?? 0,\n paddingBottom: lb?.padding?.y ?? 0,\n backgroundColor: lb?.bg ?? \"transparent\",\n borderRadius: lb?.borderRadius ?? 0,\n },\n });\n }\n\n return figures;\n },\n performEventPressedMove: ({ points, performPoint }) => {\n points[0].value = performPoint.value;\n },\n};\n\nexport default orderLine;\n","import type { OverlayTemplate } from \"klinecharts\";\n\nexport interface DepthOverlayRow {\n price: number;\n qty: number;\n side: \"bid\" | \"ask\";\n}\n\nexport interface DepthOverlayExtendData {\n rows: DepthOverlayRow[];\n maxQty: number;\n /** Max bar width as fraction of chart width (0–1). Default: 0.3 */\n maxBarWidth?: number;\n /** Ask bar color. Default: \"rgba(239,83,80,0.25)\" */\n askColor?: string;\n /** Bid bar color. Default: \"rgba(38,166,154,0.25)\" */\n bidColor?: string;\n}\n\nconst depthOverlay: OverlayTemplate = {\n name: \"depthOverlay\",\n totalStep: 2,\n needDefaultPointFigure: false,\n needDefaultXAxisFigure: false,\n needDefaultYAxisFigure: false,\n lock: true,\n visible: true,\n zLevel: -1,\n createPointFigures: ({ overlay, bounding, yAxis }) => {\n const d = overlay.extendData as DepthOverlayExtendData | undefined;\n if (!d || !d.rows || d.rows.length === 0 || !yAxis) return [];\n\n const maxBarFraction = d.maxBarWidth ?? 0.3;\n const maxBarPx = bounding.width * maxBarFraction;\n const askColor = d.askColor ?? \"rgba(239,83,80,0.25)\";\n const bidColor = d.bidColor ?? \"rgba(38,166,154,0.25)\";\n // `?? 1` (not `|| 1`) so a legitimately-zero maxQty is still respected\n // when explicitly provided, and only `null`/`undefined` fall back to 1.\n const maxQty = d.maxQty ?? 1;\n\n const figures: any[] = [];\n\n for (const row of d.rows) {\n const y = (yAxis as any).convertToPixel(row.price);\n if (y == null || y < 0 || y > bounding.height) continue;\n\n const barWidth = (row.qty / maxQty) * maxBarPx;\n const barHeight = Math.max(2, bounding.height / d.rows.length * 0.8);\n const color = row.side === \"ask\" ? askColor : bidColor;\n\n // Draw from right edge toward left\n figures.push({\n type: \"rect\",\n attrs: {\n x: bounding.width - barWidth,\n y: y - barHeight / 2,\n width: barWidth,\n height: barHeight,\n },\n styles: {\n color,\n },\n ignoreEvent: true,\n });\n }\n\n return figures;\n },\n};\n\nexport default depthOverlay;\n","import type { OverlayTemplate } from \"klinecharts\";\nimport type {\n OrderLineLineStyle,\n OrderLineMarkStyle,\n OrderLineLabelStyle,\n} from \"./orderLine\";\n\nexport interface AlertLineExtendData {\n /** Primary color for the line, the y-axis mark bg, and label fallback. Default: \"#ff9800\" */\n color?: string;\n /** Text label displayed above the line. Defaults to the formatted price. */\n text?: string;\n /** Line style overrides. Default: dashed. */\n line?: OrderLineLineStyle;\n /** Y-axis price mark style overrides. */\n mark?: OrderLineMarkStyle;\n /** Text label style overrides. */\n label?: OrderLineLabelStyle;\n /** Whether to show a bell marker before the label text. Default: true */\n showBell?: boolean;\n}\n\nconst DEFAULT_FONT_FAMILY = \"Helvetica Neue, Arial, sans-serif\";\nconst DEFAULT_COLOR = \"#ff9800\";\n/** Bell glyph rendered before the label text when `showBell` is enabled. */\nconst BELL_MARK = \"🔔\"; // 🔔\n\nconst alertLine: OverlayTemplate = {\n name: \"alertLine\",\n totalStep: 2,\n needDefaultPointFigure: false,\n needDefaultXAxisFigure: false,\n needDefaultYAxisFigure: false,\n createYAxisFigures: ({ chart, overlay, coordinates }) => {\n if (coordinates.length < 1) return [];\n const y = coordinates[0].y;\n const price = overlay.points[0]?.value;\n if (price == null) return [];\n const d = (overlay.extendData ?? {}) as AlertLineExtendData;\n const color = d.color ?? DEFAULT_COLOR;\n const m = d.mark;\n const precision = chart.getSymbol()?.pricePrecision ?? 2;\n return [\n {\n type: \"text\",\n attrs: {\n x: 0,\n y,\n text: price.toFixed(precision),\n align: \"left\",\n baseline: \"middle\",\n },\n styles: {\n color: m?.color ?? \"#ffffff\",\n size: m?.font?.size ?? 11,\n family: m?.font?.family ?? DEFAULT_FONT_FAMILY,\n weight: m?.font?.weight ?? \"bold\",\n paddingLeft: m?.padding?.x ?? 4,\n paddingRight: m?.padding?.x ?? 4,\n paddingTop: m?.padding?.y ?? 4,\n paddingBottom: m?.padding?.y ?? 4,\n backgroundColor: m?.bg ?? color,\n borderRadius: m?.borderRadius ?? 2,\n },\n },\n ];\n },\n createPointFigures: ({ chart, coordinates, bounding, overlay }) => {\n if (coordinates.length < 1) return [];\n\n const y = coordinates[0].y;\n const d = (overlay.extendData ?? {}) as AlertLineExtendData;\n const color = d.color ?? DEFAULT_COLOR;\n const ln = d.line;\n\n const figures: ReturnType<\n NonNullable<OverlayTemplate[\"createPointFigures\"]>\n > = [\n {\n type: \"line\",\n attrs: {\n coordinates: [\n { x: 0, y },\n { x: bounding.width, y },\n ],\n },\n styles: {\n style: ln?.style ?? \"dashed\",\n color,\n size: ln?.width ?? 1,\n dashedValue: ln?.dashedValue ?? [4, 2],\n },\n },\n ];\n\n // Label text defaults to the formatted price so an alert is always\n // labelled even when no explicit text was supplied.\n const price = overlay.points[0]?.value;\n const precision = chart.getSymbol()?.pricePrecision ?? 2;\n const baseText =\n d.text ?? (price != null ? price.toFixed(precision) : \"\");\n const showBell = d.showBell ?? true;\n const text = baseText\n ? showBell\n ? `${BELL_MARK} ${baseText}`\n : baseText\n : showBell\n ? BELL_MARK\n : \"\";\n\n if (text) {\n const lb = d.label;\n figures.push({\n type: \"text\",\n ignoreEvent: true,\n attrs: {\n x: lb?.offset?.x ?? 8,\n y: y - (lb?.offset?.y ?? 3),\n text,\n align: \"left\",\n baseline: \"bottom\",\n },\n styles: {\n color: lb?.color ?? color,\n size: lb?.font?.size ?? 11,\n family: lb?.font?.family ?? DEFAULT_FONT_FAMILY,\n weight: lb?.font?.weight ?? \"normal\",\n paddingLeft: lb?.padding?.x ?? 0,\n paddingRight: lb?.padding?.x ?? 0,\n paddingTop: lb?.padding?.y ?? 0,\n paddingBottom: lb?.padding?.y ?? 0,\n backgroundColor: lb?.bg ?? \"transparent\",\n borderRadius: lb?.borderRadius ?? 0,\n },\n });\n }\n\n return figures;\n },\n performEventPressedMove: ({ points, performPoint }) => {\n points[0].value = performPoint.value;\n },\n};\n\nexport default alertLine;\n","import { registerOverlay, registerIndicator } from \"klinecharts\";\nimport * as drawingOverlays from \"../overlays\";\nimport * as customIndicators from \"../indicators\";\nimport orderLine from \"./overlays/orderLine\";\nimport depthOverlay from \"./overlays/depthOverlay\";\nimport alertLine from \"./overlays/alertLine\";\n\n/**\n * Drawing-tool overlays registered by default.\n */\nexport const overlays = Object.values(drawingOverlays);\n\n/**\n * Optional feature overlays that are also registered automatically, so\n * consumers don't have to pass them through the `overlays` provider prop:\n *\n * - `orderLine` — drawn by `useOrderLines`.\n * - `alertLine` — drawn by `useAlerts`.\n * - `depthOverlay` — order-book depth visualization.\n *\n * `useAlerts` additionally registers `alertLine` lazily (see\n * `ensureAlertLineRegistered`) so it works even when automatic registration\n * is disabled on the provider.\n */\nexport const featureOverlays = [orderLine, depthOverlay, alertLine];\n\n/**\n * Custom indicator templates (TradingView-style) registered by default.\n */\nexport const indicators = Object.values(customIndicators);\n\nlet registered = false;\n\nexport function registerExtensions(): void {\n if (registered) return;\n overlays.forEach((overlay) => registerOverlay(overlay));\n featureOverlays.forEach((overlay) => registerOverlay(overlay));\n indicators.forEach((indicator) => registerIndicator(indicator));\n registered = true;\n}\n\nlet alertLineRegistered = false;\n\n/**\n * Idempotently registers the `alertLine` overlay. Called by `useAlerts` before\n * creating its first overlay so the template is always available regardless of\n * whether the provider ran `registerExtensions()`.\n */\nexport function ensureAlertLineRegistered(): void {\n if (alertLineRegistered) return;\n registerOverlay(alertLine);\n alertLineRegistered = true;\n}\n\nexport { orderLine };\nexport { depthOverlay };\nexport { alertLine };\nexport type {\n OrderLineExtendData,\n OrderLineLineStyle,\n OrderLineMarkStyle,\n OrderLineLabelStyle,\n OrderLineFontStyle,\n OrderLinePadding,\n} from \"./overlays/orderLine\";\nexport type {\n DepthOverlayExtendData,\n DepthOverlayRow,\n} from \"./overlays/depthOverlay\";\nexport type { AlertLineExtendData } from \"./overlays/alertLine\";\n"]}
@@ -1,40 +1,40 @@
1
1
  'use strict';
2
2
 
3
- var chunkFSHI2ZDB_cjs = require('./chunk-FSHI2ZDB.cjs');
3
+ var chunkLGYYJ2GP_cjs = require('./chunk-LGYYJ2GP.cjs');
4
4
 
5
5
 
6
6
 
7
7
  Object.defineProperty(exports, "alertLine", {
8
8
  enumerable: true,
9
- get: function () { return chunkFSHI2ZDB_cjs.alertLine_default; }
9
+ get: function () { return chunkLGYYJ2GP_cjs.alertLine_default; }
10
10
  });
11
11
  Object.defineProperty(exports, "depthOverlay", {
12
12
  enumerable: true,
13
- get: function () { return chunkFSHI2ZDB_cjs.depthOverlay_default; }
13
+ get: function () { return chunkLGYYJ2GP_cjs.depthOverlay_default; }
14
14
  });
15
15
  Object.defineProperty(exports, "ensureAlertLineRegistered", {
16
16
  enumerable: true,
17
- get: function () { return chunkFSHI2ZDB_cjs.ensureAlertLineRegistered; }
17
+ get: function () { return chunkLGYYJ2GP_cjs.ensureAlertLineRegistered; }
18
18
  });
19
19
  Object.defineProperty(exports, "featureOverlays", {
20
20
  enumerable: true,
21
- get: function () { return chunkFSHI2ZDB_cjs.featureOverlays; }
21
+ get: function () { return chunkLGYYJ2GP_cjs.featureOverlays; }
22
22
  });
23
23
  Object.defineProperty(exports, "indicators", {
24
24
  enumerable: true,
25
- get: function () { return chunkFSHI2ZDB_cjs.indicators; }
25
+ get: function () { return chunkLGYYJ2GP_cjs.indicators; }
26
26
  });
27
27
  Object.defineProperty(exports, "orderLine", {
28
28
  enumerable: true,
29
- get: function () { return chunkFSHI2ZDB_cjs.orderLine_default; }
29
+ get: function () { return chunkLGYYJ2GP_cjs.orderLine_default; }
30
30
  });
31
31
  Object.defineProperty(exports, "overlays", {
32
32
  enumerable: true,
33
- get: function () { return chunkFSHI2ZDB_cjs.overlays; }
33
+ get: function () { return chunkLGYYJ2GP_cjs.overlays; }
34
34
  });
35
35
  Object.defineProperty(exports, "registerExtensions", {
36
36
  enumerable: true,
37
- get: function () { return chunkFSHI2ZDB_cjs.registerExtensions; }
37
+ get: function () { return chunkLGYYJ2GP_cjs.registerExtensions; }
38
38
  });
39
39
  //# sourceMappingURL=extensions.cjs.map
40
40
  //# sourceMappingURL=extensions.cjs.map
@@ -1,5 +1,5 @@
1
- import * as react_klinecharts from 'react-klinecharts';
2
- import { OverlayTemplate } from 'react-klinecharts';
1
+ import * as klinecharts from 'klinecharts';
2
+ import { OverlayTemplate } from 'klinecharts';
3
3
 
4
4
  interface OrderLineFontStyle {
5
5
  size?: number;
@@ -37,8 +37,11 @@ interface OrderLineLabelStyle {
37
37
  offset?: OrderLinePadding;
38
38
  }
39
39
  interface OrderLineLineStyle {
40
- /** Line dash style. Default: "dashed" */
41
- style?: "solid" | "dashed" | "dotted";
40
+ /**
41
+ * Line dash style. Default: "dashed". Note klinecharts only supports
42
+ * "solid" and "dashed"; a dotted effect is achieved via `dashedValue`.
43
+ */
44
+ style?: "solid" | "dashed";
42
45
  /** Line thickness. Default: 1 */
43
46
  width?: number;
44
47
  /** Dash pattern [dash, gap]. Default: [4, 2] (matches chart built-in lines) */
@@ -94,7 +97,7 @@ declare const depthOverlay: OverlayTemplate;
94
97
  /**
95
98
  * Drawing-tool overlays registered by default.
96
99
  */
97
- declare const overlays: react_klinecharts.OverlayTemplate[];
100
+ declare const overlays: klinecharts.OverlayTemplate[];
98
101
  /**
99
102
  * Optional feature overlays that are also registered automatically, so
100
103
  * consumers don't have to pass them through the `overlays` provider prop:
@@ -107,11 +110,11 @@ declare const overlays: react_klinecharts.OverlayTemplate[];
107
110
  * `ensureAlertLineRegistered`) so it works even when automatic registration
108
111
  * is disabled on the provider.
109
112
  */
110
- declare const featureOverlays: react_klinecharts.OverlayTemplate[];
113
+ declare const featureOverlays: klinecharts.OverlayTemplate[];
111
114
  /**
112
115
  * Custom indicator templates (TradingView-style) registered by default.
113
116
  */
114
- declare const indicators: react_klinecharts.IndicatorTemplate[];
117
+ declare const indicators: klinecharts.IndicatorTemplate[];
115
118
  declare function registerExtensions(): void;
116
119
  /**
117
120
  * Idempotently registers the `alertLine` overlay. Called by `useAlerts` before
@@ -1,5 +1,5 @@
1
- import * as react_klinecharts from 'react-klinecharts';
2
- import { OverlayTemplate } from 'react-klinecharts';
1
+ import * as klinecharts from 'klinecharts';
2
+ import { OverlayTemplate } from 'klinecharts';
3
3
 
4
4
  interface OrderLineFontStyle {
5
5
  size?: number;
@@ -37,8 +37,11 @@ interface OrderLineLabelStyle {
37
37
  offset?: OrderLinePadding;
38
38
  }
39
39
  interface OrderLineLineStyle {
40
- /** Line dash style. Default: "dashed" */
41
- style?: "solid" | "dashed" | "dotted";
40
+ /**
41
+ * Line dash style. Default: "dashed". Note klinecharts only supports
42
+ * "solid" and "dashed"; a dotted effect is achieved via `dashedValue`.
43
+ */
44
+ style?: "solid" | "dashed";
42
45
  /** Line thickness. Default: 1 */
43
46
  width?: number;
44
47
  /** Dash pattern [dash, gap]. Default: [4, 2] (matches chart built-in lines) */
@@ -94,7 +97,7 @@ declare const depthOverlay: OverlayTemplate;
94
97
  /**
95
98
  * Drawing-tool overlays registered by default.
96
99
  */
97
- declare const overlays: react_klinecharts.OverlayTemplate[];
100
+ declare const overlays: klinecharts.OverlayTemplate[];
98
101
  /**
99
102
  * Optional feature overlays that are also registered automatically, so
100
103
  * consumers don't have to pass them through the `overlays` provider prop:
@@ -107,11 +110,11 @@ declare const overlays: react_klinecharts.OverlayTemplate[];
107
110
  * `ensureAlertLineRegistered`) so it works even when automatic registration
108
111
  * is disabled on the provider.
109
112
  */
110
- declare const featureOverlays: react_klinecharts.OverlayTemplate[];
113
+ declare const featureOverlays: klinecharts.OverlayTemplate[];
111
114
  /**
112
115
  * Custom indicator templates (TradingView-style) registered by default.
113
116
  */
114
- declare const indicators: react_klinecharts.IndicatorTemplate[];
117
+ declare const indicators: klinecharts.IndicatorTemplate[];
115
118
  declare function registerExtensions(): void;
116
119
  /**
117
120
  * Idempotently registers the `alertLine` overlay. Called by `useAlerts` before
@@ -1,3 +1,3 @@
1
- export { alertLine_default as alertLine, depthOverlay_default as depthOverlay, ensureAlertLineRegistered, featureOverlays, indicators, orderLine_default as orderLine, overlays, registerExtensions } from './chunk-MVD3ILJT.js';
1
+ export { alertLine_default as alertLine, depthOverlay_default as depthOverlay, ensureAlertLineRegistered, featureOverlays, indicators, orderLine_default as orderLine, overlays, registerExtensions } from './chunk-JD4NBJ5F.js';
2
2
  //# sourceMappingURL=extensions.js.map
3
3
  //# sourceMappingURL=extensions.js.map