dealpos 25.44.0 → 25.45.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/browser/{chunk-7VKFVS7K.js → chunk-235POOLV.js} +1 -1
- package/browser/{chunk-Z2LCSWV4.js → chunk-24A2APSJ.js} +1 -1
- package/browser/{chunk-TSIYPTYI.js → chunk-2525CDKJ.js} +1 -1
- package/browser/chunk-2557JAG4.js +1 -0
- package/browser/chunk-27KLJCCF.js +1 -0
- package/browser/chunk-2CWEU47S.js +1 -0
- package/browser/chunk-2EEKMQEX.js +1 -0
- package/browser/chunk-2IE6U5ND.js +1 -0
- package/browser/chunk-2ILW7WWJ.js +2 -0
- package/browser/chunk-2IOQJSBS.js +1 -0
- package/browser/chunk-2MGVRRAP.js +57 -0
- package/browser/{chunk-6PGUQ3CR.js → chunk-2PIAS2C5.js} +1 -1
- package/browser/chunk-2SFQGHFV.js +9 -0
- package/browser/{chunk-LLQVL4JL.js → chunk-2SJZWKFD.js} +1 -1
- package/browser/{chunk-QUHI6RHC.js → chunk-2YGMAT2F.js} +1 -1
- package/browser/chunk-32GJXDHR.js +1 -0
- package/browser/{chunk-6774R2EL.js → chunk-3AHCNKRE.js} +6 -6
- package/browser/{chunk-7ENDP7TZ.js → chunk-3JW3NITX.js} +1 -1
- package/browser/chunk-3UKPPC6K.js +131 -0
- package/browser/chunk-3XJHHRJT.js +92 -0
- package/browser/chunk-3XRT75ZN.js +1 -0
- package/browser/{chunk-BJBJJUF7.js → chunk-44LXIDEF.js} +1 -1
- package/browser/chunk-4DH3BDE3.js +151 -0
- package/browser/chunk-4KOOWCML.js +4 -0
- package/browser/{chunk-OXQJYOVG.js → chunk-4MFA5Y4Y.js} +1 -1
- package/browser/chunk-4UJTVSL2.js +191 -0
- package/browser/chunk-4XD6LZU6.js +1 -0
- package/browser/{chunk-S4Z6ZYZ4.js → chunk-4ZMJFXGW.js} +1 -1
- package/browser/{chunk-HCSPFPLE.js → chunk-5574BNHI.js} +1 -1
- package/browser/chunk-5J2SNOT2.js +1 -0
- package/browser/chunk-5JQ2TYZU.js +2 -0
- package/browser/chunk-5NRBDWB4.js +663 -0
- package/browser/chunk-5RLB3NV4.js +315 -0
- package/browser/chunk-5VGCSK5N.js +1 -0
- package/browser/chunk-5XDBC6O7.js +1 -0
- package/browser/chunk-5YCIPH6P.js +1 -0
- package/browser/chunk-62E2JEWQ.js +1 -0
- package/browser/chunk-63WMMXIG.js +1 -0
- package/browser/chunk-66DT3BE2.js +1 -0
- package/browser/{chunk-MK4KDIMG.js → chunk-6B56KYAF.js} +1 -1
- package/browser/chunk-6BWXSO4B.js +1 -0
- package/browser/chunk-6EP37ICB.js +334 -0
- package/browser/chunk-6IVR565J.js +82 -0
- package/browser/chunk-6M6QFFLT.js +1 -0
- package/browser/{chunk-RKCLO5OA.js → chunk-6QKBTWAT.js} +1 -1
- package/browser/chunk-74B5JZ5G.js +1 -0
- package/browser/chunk-7H3GMZJN.js +5 -0
- package/browser/{chunk-4SKJU2FQ.js → chunk-7NQ56KZ6.js} +1 -1
- package/browser/chunk-7WXTIXID.js +1 -0
- package/browser/chunk-7YKHGYIG.js +1 -0
- package/browser/chunk-7ZTWH3L6.js +1 -0
- package/browser/{chunk-QHRP323Q.js → chunk-A3FTQA6E.js} +1 -1
- package/browser/chunk-AF5V3BUB.js +1 -0
- package/browser/{chunk-XMYLHF4C.js → chunk-AFCABMLQ.js} +1 -1
- package/browser/chunk-AOQIZ6M2.js +376 -0
- package/browser/chunk-AXUFQOIY.js +1 -0
- package/browser/chunk-B7QNQTF3.js +2 -0
- package/browser/chunk-BFHHIWRM.js +149 -0
- package/browser/chunk-CABP6X3M.js +2 -0
- package/browser/chunk-CANN2XN6.js +39 -0
- package/browser/{chunk-OYSMMJMB.js → chunk-CF4MHWEX.js} +1 -1
- package/browser/chunk-CFSYN7MV.js +16 -0
- package/browser/chunk-CJFDTLOQ.js +54 -0
- package/browser/{chunk-ODOWAGLZ.js → chunk-CKN6D7N7.js} +1 -1
- package/browser/{chunk-JPXXXD26.js → chunk-CKRLMZHY.js} +1 -1
- package/browser/chunk-CNCKIVTQ.js +1 -0
- package/browser/{chunk-BMW3GOBJ.js → chunk-CQPKVO7W.js} +1 -1
- package/browser/chunk-CRMTCX6F.js +3 -0
- package/browser/chunk-CRU6KO53.js +1 -0
- package/browser/{chunk-QVPSWY5E.js → chunk-CTPHJSLU.js} +1 -1
- package/browser/chunk-CUY227OT.js +118 -0
- package/browser/chunk-D75PDB6P.js +1 -0
- package/browser/{chunk-EVWNBQBC.js → chunk-D7J7CQGT.js} +1 -1
- package/browser/{chunk-AEHOR4RJ.js → chunk-DDM5K7MP.js} +1 -1
- package/browser/chunk-DMZ5HEOT.js +1 -0
- package/browser/chunk-E5HC3WFJ.js +1 -0
- package/browser/chunk-EE3OKRUQ.js +1 -0
- package/browser/chunk-EI2XG4ML.js +1 -0
- package/browser/chunk-EIBM6U5N.js +1 -0
- package/browser/chunk-EQLHPWVB.js +1 -0
- package/browser/chunk-ERFYUZ7W.js +1 -0
- package/browser/chunk-EUQGYTUL.js +1 -0
- package/browser/chunk-EXIKKRCD.js +15 -0
- package/browser/{chunk-WDQ4UKKY.js → chunk-FPGIRAZZ.js} +1 -1
- package/browser/chunk-FW2LVBF2.js +1 -0
- package/browser/chunk-G2QZRGKV.js +2 -0
- package/browser/chunk-GDRHD33K.js +157 -0
- package/browser/chunk-GERGGB25.js +1 -0
- package/browser/chunk-GHGFRLKE.js +1 -0
- package/browser/chunk-GIW2PDIG.js +311 -0
- package/browser/chunk-GZXTL4RE.js +1 -0
- package/browser/chunk-HD6ETXDZ.js +2 -0
- package/browser/chunk-HEGIEXS3.js +21 -0
- package/browser/{chunk-NMR7EZWC.js → chunk-HG6BRXAC.js} +1 -1
- package/browser/{chunk-AGTR6PKD.js → chunk-HNLSUZUH.js} +1 -1
- package/browser/{chunk-5M3JINH2.js → chunk-HNU2JIBP.js} +1 -1
- package/browser/chunk-HPWVZRZF.js +480 -0
- package/browser/chunk-HPXDTBZD.js +1 -0
- package/browser/{chunk-XPWSJXFB.js → chunk-IEYBKFX7.js} +1 -1
- package/browser/chunk-IH5OCDKI.js +1 -0
- package/browser/chunk-IMO77OHS.js +4 -0
- package/browser/chunk-IRPQWJZH.js +5 -0
- package/browser/chunk-IWPVMLPY.js +1 -0
- package/browser/chunk-IZK2IN4R.js +1 -0
- package/browser/chunk-J4J3XVRF.js +6 -0
- package/browser/{chunk-UWGTJ4UH.js → chunk-J55W7XV7.js} +1 -1
- package/browser/chunk-JHYJTTAR.js +5 -0
- package/browser/chunk-JJ55MEGU.js +3 -0
- package/browser/{chunk-DH3PTQ3P.js → chunk-JKBDSVHR.js} +1 -1
- package/browser/chunk-JL56QKED.js +1 -0
- package/browser/chunk-JQOVAMQC.js +1 -0
- package/browser/{chunk-O2QTP22K.js → chunk-JR6SBNDP.js} +2 -2
- package/browser/chunk-JTLGGNCW.js +1 -0
- package/browser/chunk-K2M625FR.js +3 -0
- package/browser/chunk-K2U4QSXW.js +1 -0
- package/browser/chunk-K5ERLQ63.js +3 -0
- package/browser/{chunk-7IDMO3VZ.js → chunk-K6YQ5CRH.js} +1 -1
- package/browser/chunk-KHDFH3GS.js +1 -0
- package/browser/chunk-KHDUUG2S.js +1 -0
- package/browser/chunk-KHFL6T5N.js +33 -0
- package/browser/chunk-KJROORJO.js +3 -0
- package/browser/chunk-KLKZQABE.js +1 -0
- package/browser/chunk-L6YGMZJK.js +1 -0
- package/browser/chunk-LBIXL2NM.js +5 -0
- package/browser/chunk-LBWSX76J.js +1 -0
- package/browser/chunk-LC5JP6E6.js +1 -0
- package/browser/{chunk-DAIHPIA2.js → chunk-LIH722A3.js} +1 -1
- package/browser/chunk-LLXEUJDC.js +1 -0
- package/browser/chunk-LPD3H6QQ.js +1 -0
- package/browser/{chunk-OKIBXXRJ.js → chunk-LQDIK5ZH.js} +1 -1
- package/browser/{chunk-XA6BOS45.js → chunk-M5IOFMBZ.js} +1 -1
- package/browser/chunk-M67ULXNR.js +2 -0
- package/browser/chunk-M6PA26FM.js +1 -0
- package/browser/chunk-M6UB4WVK.js +1 -0
- package/browser/chunk-MCPXNQRW.js +5 -0
- package/browser/chunk-MIW5EYCH.js +1 -0
- package/browser/chunk-MJV24UTS.js +3 -0
- package/browser/{chunk-SGFSKIUE.js → chunk-MLFDP74G.js} +1 -1
- package/browser/chunk-MSSTCYNC.js +1 -0
- package/browser/chunk-MVCDG4KS.js +14 -0
- package/browser/chunk-NBMH5YL2.css +1 -0
- package/browser/chunk-NCXT27M5.js +1 -0
- package/browser/chunk-NE57UXZU.js +1 -0
- package/browser/chunk-NEJRKLYO.js +1 -0
- package/browser/{chunk-TSEZZNO5.js → chunk-NJOOFJNE.js} +1 -1
- package/browser/chunk-NSNUUKNK.js +1 -0
- package/browser/chunk-NUVM5VMH.js +1 -0
- package/browser/{chunk-XZR3IMWZ.js → chunk-NWBLFLVC.js} +1 -1
- package/browser/{chunk-57Q3ENW2.js → chunk-NYTOBW2G.js} +1 -1
- package/browser/chunk-ODEK2WQO.js +137 -0
- package/browser/chunk-ODGFQ7QJ.js +1 -0
- package/browser/{chunk-APF7PDRI.js → chunk-OIMBKUXO.js} +1 -1
- package/browser/{chunk-XQ6JBIMX.js → chunk-OLC5OIWO.js} +1 -1
- package/browser/chunk-ORP2SVPR.js +1 -0
- package/browser/chunk-OVSWMLB3.js +1 -0
- package/browser/chunk-OYNVXKZ3.js +257 -0
- package/browser/{chunk-6ABP4TP7.js → chunk-P3BUVJKX.js} +1 -1
- package/browser/chunk-PF3TLOCL.js +1 -0
- package/browser/chunk-PHWHZQFM.js +1 -0
- package/browser/chunk-PO2OKV6Q.js +1 -0
- package/browser/chunk-PRROMENK.js +1 -0
- package/browser/chunk-PT3R3NCF.js +1 -0
- package/browser/chunk-PVSXCHI3.js +1 -0
- package/browser/chunk-PY3PDRRW.js +5 -0
- package/browser/chunk-PZVPROT6.js +22 -0
- package/browser/chunk-Q2GPSDAM.js +112 -0
- package/browser/chunk-Q32BQBU5.js +2 -0
- package/browser/chunk-Q5FKQWU2.js +149 -0
- package/browser/chunk-Q7YUJXQP.js +1 -0
- package/browser/chunk-QBNQANTG.js +24 -0
- package/browser/{chunk-VHAM2DWK.js → chunk-QNJH27F5.js} +1 -1
- package/browser/chunk-QOTJ7B7C.js +1 -0
- package/browser/chunk-R4K5X4RE.js +1 -0
- package/browser/chunk-RCMYO542.js +1 -0
- package/browser/chunk-RHVNZ2DF.js +11 -0
- package/browser/{chunk-B5VF422M.js → chunk-RINV4BX7.js} +1 -1
- package/browser/chunk-RJJZC7JC.js +1 -0
- package/browser/chunk-RUE7RBU6.js +1 -0
- package/browser/chunk-S6FVFOZM.js +1 -0
- package/browser/{chunk-4JM455M6.js → chunk-SII6VICE.js} +1 -1
- package/browser/chunk-SLDIBIUY.js +1 -0
- package/browser/chunk-SNAKHGZS.js +1 -0
- package/browser/chunk-SQVN35HO.js +1 -0
- package/browser/chunk-SUP23S2E.js +209 -0
- package/browser/{chunk-6PWFGFWQ.js → chunk-SWQE65GY.js} +1 -1
- package/browser/chunk-SZ24MNHM.js +1 -0
- package/browser/chunk-SZDTKNUH.js +1 -0
- package/browser/chunk-T4K6XBGC.js +2 -0
- package/browser/chunk-T4MVTLYE.js +1 -0
- package/browser/chunk-TEH7D4QV.js +1 -0
- package/browser/chunk-TIBTGPW2.js +2 -0
- package/browser/chunk-TKJUJYEI.js +1095 -0
- package/browser/chunk-TKZU227J.js +1 -0
- package/browser/chunk-TQZVYC7J.js +1 -0
- package/browser/chunk-TW3MVM2R.js +2 -0
- package/browser/chunk-TY7JJASH.js +7 -0
- package/browser/chunk-UAOWLJEF.js +2 -0
- package/browser/chunk-UARWMJ5H.js +2 -0
- package/browser/chunk-UAVXXCN2.js +1 -0
- package/browser/chunk-UZMFXHQD.js +2 -0
- package/browser/chunk-V2PGBJHJ.js +4 -0
- package/browser/chunk-V432I4ZE.js +21 -0
- package/browser/chunk-VJQA5UAH.js +1 -0
- package/browser/chunk-WFIKDWZE.js +1 -0
- package/browser/chunk-WFMAM73Y.js +1 -0
- package/browser/chunk-WGBW2YLG.js +2 -0
- package/browser/chunk-WGWBCLKM.js +1 -0
- package/browser/{chunk-YNDNTAII.js → chunk-WIYO452T.js} +1 -1
- package/browser/chunk-WOMVTVEQ.js +2 -0
- package/browser/{chunk-C2KD7R6L.js → chunk-WPKJOXVT.js} +1 -1
- package/browser/chunk-WPTBNQ2V.js +1 -0
- package/browser/chunk-WR3A6SD3.js +18 -0
- package/browser/{chunk-YZHVQD5P.js → chunk-WSFK2BTV.js} +1 -1
- package/browser/chunk-WT6PMWGG.js +1 -0
- package/browser/chunk-WVCZAPRZ.js +1 -0
- package/browser/chunk-X34LKMFX.js +5 -0
- package/browser/chunk-XDJAJP7W.js +1 -0
- package/browser/chunk-XF27FA5V.js +1 -0
- package/browser/{chunk-K7KRPIN7.js → chunk-XLE4M4WS.js} +1 -1
- package/browser/chunk-XOOFBNDP.js +1 -0
- package/browser/{chunk-42T2PR4J.js → chunk-XYHPCRIZ.js} +1 -1
- package/browser/{chunk-WO3LDDSF.js → chunk-Y3BA3YGC.js} +1 -1
- package/browser/{chunk-TLJ2NGVG.js → chunk-Y5GN5XOG.js} +1 -1
- package/browser/chunk-YBLSVIMZ.js +1 -0
- package/browser/chunk-YFMVQJRL.js +14 -0
- package/browser/{chunk-WEQFFBAF.js → chunk-YNRHLKM5.js} +1 -1
- package/browser/chunk-YX5ADQPF.js +152 -0
- package/browser/chunk-Z4NZP4NH.js +1 -0
- package/browser/chunk-ZDX5LF2K.js +507 -0
- package/browser/{chunk-EWZ63XSS.js → chunk-ZGPKGJBM.js} +1 -1
- package/browser/{chunk-7CMBWKFF.js → chunk-ZHTSXEVO.js} +1 -1
- package/browser/chunk-ZJ4AGOKX.js +1 -0
- package/browser/{chunk-AER2U57P.js → chunk-ZKQFRAZ2.js} +1 -1
- package/browser/chunk-ZOPOSPVC.js +90 -0
- package/browser/chunk-ZRAK4HYU.js +1 -0
- package/browser/chunk-ZRNGBR7A.js +3 -0
- package/browser/chunk-ZWPJWDYN.js +1 -0
- package/browser/index.html +2 -2
- package/browser/main-H2XKB5YR.js +3 -0
- package/browser/main-WPNH2WGQ.css +1 -0
- package/browser/polyfills-KVI7ACYJ.js +2 -0
- package/browser/scripts-Z64TTWXD.js +10 -0
- package/browser/styles-CA5KWC36.css +1 -0
- package/package.json +1 -1
- package/browser/chunk-23PJKOTU.js +0 -108
- package/browser/chunk-2FWXO7SV.js +0 -1
- package/browser/chunk-2HUEFC2T.js +0 -1
- package/browser/chunk-2KCCP5UQ.js +0 -1
- package/browser/chunk-2OWHEMAL.js +0 -671
- package/browser/chunk-2PX7ZCAH.js +0 -231
- package/browser/chunk-2YDEXJE5.js +0 -2
- package/browser/chunk-35WLGG74.js +0 -1
- package/browser/chunk-3AW2HE63.js +0 -1
- package/browser/chunk-3CUWPIMQ.js +0 -2
- package/browser/chunk-3GOO5E5D.js +0 -33
- package/browser/chunk-3LBZDIW2.js +0 -1
- package/browser/chunk-3PTKHKTZ.js +0 -82
- package/browser/chunk-3YKVLHZG.js +0 -7
- package/browser/chunk-476U7URX.js +0 -5
- package/browser/chunk-4G344XSZ.js +0 -1
- package/browser/chunk-4NHG4RRM.js +0 -1
- package/browser/chunk-4PPRFE5H.js +0 -1
- package/browser/chunk-4QQTEPQT.js +0 -51
- package/browser/chunk-4TW7XHFP.js +0 -1
- package/browser/chunk-4UYZJCFI.js +0 -5
- package/browser/chunk-5HX73JZ3.js +0 -1
- package/browser/chunk-5JJSLRVS.js +0 -70
- package/browser/chunk-5QXTT2Q4.js +0 -1
- package/browser/chunk-5YRS6BWA.js +0 -2
- package/browser/chunk-6647Y35T.js +0 -3
- package/browser/chunk-6CWGCLY5.js +0 -3
- package/browser/chunk-6JAL37Y4.js +0 -93
- package/browser/chunk-6SNK3MMW.js +0 -1
- package/browser/chunk-7DCB7DB2.js +0 -1
- package/browser/chunk-7J36T25H.js +0 -1
- package/browser/chunk-7NGYBSTA.js +0 -127
- package/browser/chunk-7QWJJPNG.js +0 -1
- package/browser/chunk-7V7QIPRV.js +0 -1
- package/browser/chunk-7WKHBXTJ.js +0 -1
- package/browser/chunk-A4HMT7IS.js +0 -16
- package/browser/chunk-AJLKESQV.js +0 -1
- package/browser/chunk-ALNSA73T.js +0 -1
- package/browser/chunk-ARKU4MG5.js +0 -140
- package/browser/chunk-B5SDXVDR.js +0 -1
- package/browser/chunk-B6LPY2IZ.js +0 -2
- package/browser/chunk-BBGWXLHJ.js +0 -1
- package/browser/chunk-BMMZ2W3C.js +0 -1
- package/browser/chunk-BQOD2C6M.js +0 -1
- package/browser/chunk-BSQJETW6.js +0 -1
- package/browser/chunk-BX366TSG.js +0 -1
- package/browser/chunk-BXQFYW4R.js +0 -1
- package/browser/chunk-C2W6JXEB.js +0 -3
- package/browser/chunk-C6DVD3VG.js +0 -1
- package/browser/chunk-CM4CUWDT.js +0 -1
- package/browser/chunk-CN4B6FUG.js +0 -1
- package/browser/chunk-CSQD5JSK.js +0 -1
- package/browser/chunk-CWITQVZH.js +0 -1
- package/browser/chunk-CXTL5YYJ.js +0 -2
- package/browser/chunk-DEBIFZGN.js +0 -1
- package/browser/chunk-DEVO5OTP.js +0 -1
- package/browser/chunk-E4DPE3J5.js +0 -1
- package/browser/chunk-ECOW7JD7.js +0 -5
- package/browser/chunk-EDXMXTEK.js +0 -1
- package/browser/chunk-EEEAUYZ6.js +0 -193
- package/browser/chunk-ENVG4BZI.js +0 -105
- package/browser/chunk-EOVI4KWG.js +0 -2
- package/browser/chunk-F4F5V5CZ.js +0 -4
- package/browser/chunk-FA4ADELT.js +0 -1
- package/browser/chunk-FHMDB7MQ.js +0 -1
- package/browser/chunk-FIHWJAIR.js +0 -2
- package/browser/chunk-FKDZ5OWB.js +0 -297
- package/browser/chunk-FP4HFB5J.js +0 -1
- package/browser/chunk-FRDFUCRO.js +0 -2
- package/browser/chunk-G454AF6P.js +0 -1
- package/browser/chunk-G6USNHW7.js +0 -1
- package/browser/chunk-GBQSPBVZ.js +0 -1
- package/browser/chunk-GIDGCFLX.js +0 -5
- package/browser/chunk-GV2PUDWZ.js +0 -3
- package/browser/chunk-GYNHYLZQ.js +0 -1
- package/browser/chunk-H3OZSV6V.js +0 -11
- package/browser/chunk-H7F34T25.js +0 -17
- package/browser/chunk-HKJLMHAD.js +0 -1
- package/browser/chunk-HKZQN5TX.js +0 -14
- package/browser/chunk-HOM424UE.js +0 -1
- package/browser/chunk-HT35KHLT.js +0 -1
- package/browser/chunk-HWEYOOFD.js +0 -1
- package/browser/chunk-IAZFUBFX.js +0 -1
- package/browser/chunk-IHFA5AEL.js +0 -1
- package/browser/chunk-IOJ4YVHD.js +0 -397
- package/browser/chunk-IQHU4MKW.js +0 -1
- package/browser/chunk-IQQGAD2W.js +0 -222
- package/browser/chunk-JLXCN2NR.js +0 -1
- package/browser/chunk-JOXTERIM.js +0 -2
- package/browser/chunk-JUTITMC7.js +0 -18
- package/browser/chunk-JXYRDQVO.js +0 -22
- package/browser/chunk-K4LAZCXZ.js +0 -3
- package/browser/chunk-KHILQH3P.js +0 -1
- package/browser/chunk-KKRF45KI.js +0 -141
- package/browser/chunk-KTCV3KOE.js +0 -30
- package/browser/chunk-KWTU2B2D.js +0 -1
- package/browser/chunk-KXCEORNJ.js +0 -1
- package/browser/chunk-KZDE63UL.js +0 -1
- package/browser/chunk-L7RHCBKX.js +0 -1
- package/browser/chunk-L7YSVT7G.js +0 -1
- package/browser/chunk-LE3BKIDY.js +0 -15
- package/browser/chunk-LFGL4ACG.css +0 -1
- package/browser/chunk-LI2NYODY.js +0 -1
- package/browser/chunk-LMJVRREP.js +0 -180
- package/browser/chunk-LVYO35LX.js +0 -1
- package/browser/chunk-M3HHWYKD.js +0 -1
- package/browser/chunk-M4TPGDOJ.js +0 -21
- package/browser/chunk-M5PJHCX4.js +0 -1
- package/browser/chunk-MFCXEITE.js +0 -2
- package/browser/chunk-MPSML3FA.js +0 -1
- package/browser/chunk-MUJ6277G.js +0 -5
- package/browser/chunk-NRYWKVQ2.js +0 -1
- package/browser/chunk-NVWJ6HZD.js +0 -1
- package/browser/chunk-OISKO6QJ.js +0 -1
- package/browser/chunk-PANAC2WS.js +0 -24
- package/browser/chunk-PD445FIT.js +0 -1
- package/browser/chunk-PIYM2FOP.js +0 -1
- package/browser/chunk-PQDYHLJ2.js +0 -1
- package/browser/chunk-Q4CKRRGM.js +0 -430
- package/browser/chunk-QHBWVJIQ.js +0 -1
- package/browser/chunk-QHGWF2RX.js +0 -1
- package/browser/chunk-QXU66IK7.js +0 -1
- package/browser/chunk-RABEENVP.js +0 -6
- package/browser/chunk-RF2OEHPO.js +0 -285
- package/browser/chunk-RFO7MTFT.js +0 -2
- package/browser/chunk-RHUDY63D.js +0 -4
- package/browser/chunk-RMOQAAKS.js +0 -5
- package/browser/chunk-RVXZOIFQ.js +0 -1
- package/browser/chunk-RW4LIELV.js +0 -1
- package/browser/chunk-RX7JS4CO.js +0 -1
- package/browser/chunk-S22XRS4J.js +0 -1
- package/browser/chunk-S2QC3PGR.js +0 -112
- package/browser/chunk-S5ZMZ6ZK.js +0 -1
- package/browser/chunk-SEFALU4U.js +0 -1
- package/browser/chunk-SJPYABFR.js +0 -2
- package/browser/chunk-SMZ4VMLX.js +0 -1
- package/browser/chunk-SRRURHLT.js +0 -9
- package/browser/chunk-SVV5ZTGZ.js +0 -1
- package/browser/chunk-T6WJAS3H.js +0 -1
- package/browser/chunk-TAVO3B4U.js +0 -1
- package/browser/chunk-TGFYFTBV.js +0 -1
- package/browser/chunk-TMADIQOR.js +0 -1
- package/browser/chunk-U6TUYK6J.js +0 -1
- package/browser/chunk-UBWKI2NL.js +0 -158
- package/browser/chunk-UMDNTO5M.js +0 -1
- package/browser/chunk-UO2JNN6O.js +0 -3
- package/browser/chunk-USUWU5NE.js +0 -1
- package/browser/chunk-UXRO4UFY.js +0 -8
- package/browser/chunk-V26H2UIF.js +0 -947
- package/browser/chunk-V2LFW5D3.js +0 -1
- package/browser/chunk-V5ZK5RT7.js +0 -178
- package/browser/chunk-V7UEUV6F.js +0 -2
- package/browser/chunk-VFTGIP5A.js +0 -78
- package/browser/chunk-VIJLHA7Q.js +0 -1
- package/browser/chunk-VIPGZJM3.js +0 -1
- package/browser/chunk-VQBXUZ6U.js +0 -2
- package/browser/chunk-VZEPVRCY.js +0 -5
- package/browser/chunk-W5U5OOLP.js +0 -57
- package/browser/chunk-WAMC5CEY.js +0 -1
- package/browser/chunk-WLGAEGPV.js +0 -1
- package/browser/chunk-WQDFMYT7.js +0 -449
- package/browser/chunk-WQDUNDSA.js +0 -1
- package/browser/chunk-WXQELZWQ.js +0 -1
- package/browser/chunk-XBRBYCWJ.js +0 -2
- package/browser/chunk-XDINGYNX.js +0 -2
- package/browser/chunk-XJ7SOVB2.js +0 -2
- package/browser/chunk-XKUQPHUA.js +0 -1
- package/browser/chunk-XPZUZ5XJ.js +0 -1
- package/browser/chunk-XYB3YDKL.js +0 -2
- package/browser/chunk-XZELBTQR.js +0 -94
- package/browser/chunk-Y75LR4GR.js +0 -1
- package/browser/chunk-YAFVFDTG.js +0 -156
- package/browser/chunk-YEAPJ2OC.js +0 -1
- package/browser/chunk-YEDKRNXU.js +0 -1
- package/browser/chunk-YRGGDRUH.js +0 -25
- package/browser/chunk-Z65FTA7V.js +0 -1
- package/browser/chunk-ZHY3BUQJ.js +0 -3
- package/browser/chunk-ZVDY66SR.js +0 -1
- package/browser/chunk-ZZGSAFGO.js +0 -1
- package/browser/chunk-ZZYILM3B.js +0 -1
- package/browser/main-GH4LELYQ.js +0 -3
- package/browser/main-YYIZ54AR.css +0 -1
- package/browser/polyfills-22A7LMHG.js +0 -2
- package/browser/scripts-3E2G6IZ4.js +0 -10
- package/browser/styles-NK7HCBOK.css +0 -1
|
@@ -0,0 +1,157 @@
|
|
|
1
|
+
import{a as ts,b as ga,f as Mn,h as wn}from"./chunk-SNAKHGZS.js";var od=Mn((fa,Xl)=>{(function(dt,qt){typeof fa=="object"&&typeof Xl=="object"?(dt._Highcharts=qt(),Xl.exports=dt._Highcharts):typeof define=="function"&&define.amd?define("highcharts/highcharts",[],qt):typeof fa=="object"?(dt._Highcharts=qt(),fa.highcharts=dt._Highcharts):(dt.Highcharts&&dt.Highcharts.error(16,!0),dt.Highcharts=qt())})(typeof window>"u"?fa:window,()=>(()=>{"use strict";let dt,qt;var ie,Hi,Ae,xs,bs,Pe,ys,Ws,ce,Fi,Mi,Hs,Ei,Bt,vs,es,ut,ks,ft={};ft.d=(l,t)=>{for(var e in t)ft.o(t,e)&&!ft.o(l,e)&&Object.defineProperty(l,e,{enumerable:!0,get:t[e]})},ft.o=(l,t)=>Object.prototype.hasOwnProperty.call(l,t);var Zt={};ft.d(Zt,{default:()=>Bp}),(function(l){l.SVG_NS="http://www.w3.org/2000/svg",l.product="Highcharts",l.version="12.2.0",l.win=typeof window<"u"?window:{},l.doc=l.win.document,l.svg=!!l.doc?.createElementNS?.(l.SVG_NS,"svg")?.createSVGRect,l.pageLang=l.doc?.documentElement?.closest("[lang]")?.lang,l.userAgent=l.win.navigator?.userAgent||"",l.isChrome=l.win.chrome,l.isFirefox=l.userAgent.indexOf("Firefox")!==-1,l.isMS=/(edge|msie|trident)/i.test(l.userAgent)&&!l.win.opera,l.isSafari=!l.isChrome&&l.userAgent.indexOf("Safari")!==-1,l.isTouchDevice=/(Mobile|Android|Windows Phone)/.test(l.userAgent),l.isWebKit=l.userAgent.indexOf("AppleWebKit")!==-1,l.deg2rad=2*Math.PI/360,l.marginNames=["plotTop","marginRight","marginBottom","plotLeft"],l.noop=function(){},l.supportsPassiveEvents=(function(){let t=!1;if(!l.isMS){let e=Object.defineProperty({},"passive",{get:function(){t=!0}});l.win.addEventListener&&l.win.removeEventListener&&(l.win.addEventListener("testPassive",l.noop,e),l.win.removeEventListener("testPassive",l.noop,e))}return t})(),l.charts=[],l.composed=[],l.dateFormats={},l.seriesTypes={},l.symbolSizes={},l.chartCount=0})(ie||(ie={}));let V=ie,{charts:is,doc:ro,win:wi}=V;function Gi(l,t,e,i){let s=t?"Highcharts error":"Highcharts warning";l===32&&(l=`${s}: Deprecated member`);let o=Co(l),r=o?`${s} #${l}: www.highcharts.com/errors/${l}/`:l.toString();if(i!==void 0){let a="";o&&(r+="?"),bi(i,function(n,d){a+=`
|
|
2
|
+
- ${d}: ${n}`,o&&(r+=encodeURI(d)+"="+encodeURI(n))}),r+=a}Oo(V,"displayError",{chart:e,code:l,message:r,params:i},function(){if(t)throw Error(r);wi.console&&Gi.messages.indexOf(r)===-1&&console.warn(r)}),Gi.messages.push(r)}function To(l,t){return parseInt(l,t||10)}function Ai(l){return typeof l=="string"}function Ms(l){let t=Object.prototype.toString.call(l);return t==="[object Array]"||t==="[object Array Iterator]"}function Ui(l,t){return!!l&&typeof l=="object"&&(!t||!Ms(l))}function ao(l){return Ui(l)&&typeof l.nodeType=="number"}function dr(l){let t=l?.constructor;return!!(Ui(l,!0)&&!ao(l)&&t?.name&&t.name!=="Object")}function Co(l){return typeof l=="number"&&!isNaN(l)&&l<1/0&&l>-1/0}function ji(l){return l!=null}function Fs(l,t,e){let i,s=Ai(t)&&!ji(e),o=(r,a)=>{ji(r)?l.setAttribute(a,r):s?(i=l.getAttribute(a))||a!=="class"||(i=l.getAttribute(a+"Name")):l.removeAttribute(a)};return Ai(t)?o(e,t):bi(t,o),i}function Lo(l){return Ms(l)?l:[l]}function ws(l,t){let e;for(e in l||(l={}),t)l[e]=t[e];return l}function ss(){let l=arguments,t=l.length;for(let e=0;e<t;e++){let i=l[e];if(i!=null)return i}}function Vi(l,t){ws(l.style,t)}function no(l){return Math.pow(10,Math.floor(Math.log(l)/Math.LN10))}function Eo(l,t){return l>1e14?l:parseFloat(l.toPrecision(t||14))}(Gi||(Gi={})).messages=[],Math.easeInOutSine=function(l){return-.5*(Math.cos(Math.PI*l)-1)};let Gs=Array.prototype.find?function(l,t){return l.find(t)}:function(l,t){let e,i=l.length;for(e=0;e<i;e++)if(t(l[e],e))return l[e]};function bi(l,t,e){for(let i in l)Object.hasOwnProperty.call(l,i)&&t.call(e||l[i],l[i],i,l)}function Oi(l,t,e){function i(r,a){let n=l.removeEventListener;n&&n.call(l,r,a,!1)}function s(r){let a,n;l.nodeName&&(t?(a={})[t]=!0:a=r,bi(a,function(d,p){if(r[p])for(n=r[p].length;n--;)i(p,r[p][n].fn)}))}let o=typeof l=="function"&&l.prototype||l;if(Object.hasOwnProperty.call(o,"hcEvents")){let r=o.hcEvents;if(t){let a=r[t]||[];e?(r[t]=a.filter(function(n){return e!==n.fn}),i(t,e)):(s(r),r[t]=[])}else s(r),delete o.hcEvents}}function Oo(l,t,e,i){if(e=e||{},ro?.createEvent&&(l.dispatchEvent||l.fireEvent&&l!==V)){let s=ro.createEvent("Events");s.initEvent(t,!0,!0),e=ws(s,e),l.dispatchEvent?l.dispatchEvent(e):l.fireEvent(t,e)}else if(l.hcEvents){e.target||ws(e,{preventDefault:function(){e.defaultPrevented=!0},target:l,type:t});let s=[],o=l,r=!1;for(;o.hcEvents;)Object.hasOwnProperty.call(o,"hcEvents")&&o.hcEvents[t]&&(s.length&&(r=!0),s.unshift.apply(s,o.hcEvents[t])),o=Object.getPrototypeOf(o);r&&s.sort((a,n)=>a.order-n.order),s.forEach(a=>{a.fn.call(l,e)===!1&&e.preventDefault()})}i&&!e.defaultPrevented&&i.call(l,e)}let As=(function(){let l=Math.random().toString(36).substring(2,9)+"-",t=0;return function(){return"highcharts-"+(dt?"":l)+t++}})();wi.jQuery&&(wi.jQuery.fn.highcharts=function(){let l=[].slice.call(arguments);if(this[0])return l[0]?(new V[Ai(l[0])?l.shift():"Chart"](this[0],l[0],l[1]),this):is[Fs(this[0],"data-highcharts-chart")]});let mt={addEvent:function(l,t,e,i={}){let s=typeof l=="function"&&l.prototype||l;Object.hasOwnProperty.call(s,"hcEvents")||(s.hcEvents={});let o=s.hcEvents;V.Point&&l instanceof V.Point&&l.series&&l.series.chart&&(l.series.chart.runTrackerClick=!0);let r=l.addEventListener;r&&r.call(l,t,e,!!V.supportsPassiveEvents&&{passive:i.passive===void 0?t.indexOf("touch")!==-1:i.passive,capture:!1}),o[t]||(o[t]=[]);let a={fn:e,order:typeof i.order=="number"?i.order:1/0};return o[t].push(a),o[t].sort((n,d)=>n.order-d.order),function(){Oi(l,t,e)}},arrayMax:function(l){let t=l.length,e=l[0];for(;t--;)l[t]>e&&(e=l[t]);return e},arrayMin:function(l){let t=l.length,e=l[0];for(;t--;)l[t]<e&&(e=l[t]);return e},attr:Fs,clamp:function(l,t,e){return l>t?l<e?l:e:t},clearTimeout:function(l){ji(l)&&clearTimeout(l)},correctFloat:Eo,createElement:function(l,t,e,i,s){let o=ro.createElement(l);return t&&ws(o,t),s&&Vi(o,{padding:"0",border:"none",margin:"0"}),e&&Vi(o,e),i&&i.appendChild(o),o},crisp:function(l,t=0,e){let i=t%2/2,s=e?-1:1;return(Math.round(l*s-i)+i)*s},css:Vi,defined:ji,destroyObjectProperties:function(l,t,e){bi(l,function(i,s){i!==t&&i?.destroy&&i.destroy(),(i?.destroy||!e)&&delete l[s]})},diffObjects:function(l,t,e,i){let s={};return(function o(r,a,n,d){let p=e?a:r;bi(r,function(c,g){if(!d&&i&&i.indexOf(g)>-1&&a[g]){c=Lo(c),n[g]=[];for(let m=0;m<Math.max(c.length,a[g].length);m++)a[g][m]&&(c[m]===void 0?n[g][m]=a[g][m]:(n[g][m]={},o(c[m],a[g][m],n[g][m],d+1)))}else Ui(c,!0)&&!c.nodeType?(n[g]=Ms(c)?[]:{},o(c,a[g]||{},n[g],d+1),Object.keys(n[g]).length===0&&(g!=="colorAxis"||d!==0)&&delete n[g]):(r[g]!==a[g]||g in r&&!(g in a))&&g!=="__proto__"&&g!=="constructor"&&(n[g]=p[g])})})(l,t,s,0),s},discardElement:function(l){l?.parentElement?.removeChild(l)},erase:function(l,t){let e=l.length;for(;e--;)if(l[e]===t){l.splice(e,1);break}},error:Gi,extend:ws,extendClass:function(l,t){let e=function(){};return e.prototype=new l,ws(e.prototype,t),e},find:Gs,fireEvent:Oo,getAlignFactor:(l="")=>({center:.5,right:1,middle:.5,bottom:1})[l]||0,getClosestDistance:function(l,t){let e,i,s,o,r=!t;return l.forEach(a=>{if(a.length>1)for(o=i=a.length-1;o>0;o--)(s=a[o]-a[o-1])<0&&!r?(t?.(),t=void 0):s&&(e===void 0||s<e)&&(e=s)}),e},getMagnitude:no,getNestedProperty:function(l,t){let e=l.split(".");for(;e.length&&ji(t);){let i=e.shift();if(i===void 0||i==="__proto__")return;if(i==="this"){let o;return Ui(t)&&(o=t["@this"]),o??t}let s=t[i.replace(/[\\'"]/g,"")];if(!ji(s)||typeof s=="function"||typeof s.nodeType=="number"||s===wi)return;t=s}return t},getStyle:function l(t,e,i){let s;if(e==="width"){let r=Math.min(t.offsetWidth,t.scrollWidth),a=t.getBoundingClientRect?.().width;return a<r&&a>=r-1&&(r=Math.floor(a)),Math.max(0,r-(l(t,"padding-left",!0)||0)-(l(t,"padding-right",!0)||0))}if(e==="height")return Math.max(0,Math.min(t.offsetHeight,t.scrollHeight)-(l(t,"padding-top",!0)||0)-(l(t,"padding-bottom",!0)||0));let o=wi.getComputedStyle(t,void 0);return o&&(s=o.getPropertyValue(e),ss(i,e!=="opacity")&&(s=To(s))),s},insertItem:function(l,t){let e,i=l.options.index,s=t.length;for(e=l.options.isInternal?s:0;e<s+1;e++)if(!t[e]||Co(i)&&i<ss(t[e].options.index,t[e]._i)||t[e].options.isInternal){t.splice(e,0,l);break}return e},isArray:Ms,isClass:dr,isDOMElement:ao,isFunction:function(l){return typeof l=="function"},isNumber:Co,isObject:Ui,isString:Ai,merge:function(l,...t){let e,i=[l,...t],s={},o=function(a,n){return typeof a!="object"&&(a={}),bi(n,function(d,p){p!=="__proto__"&&p!=="constructor"&&(!Ui(d,!0)||dr(d)||ao(d)?a[p]=n[p]:a[p]=o(a[p]||{},d))}),a};l===!0&&(s=i[1],i=Array.prototype.slice.call(i,2));let r=i.length;for(e=0;e<r;e++)s=o(s,i[e]);return s},normalizeTickInterval:function(l,t,e,i,s){let o,r=l;e=ss(e,no(l));let a=l/e;for(!t&&(t=s?[1,1.2,1.5,2,2.5,3,4,5,6,8,10]:[1,2,2.5,5,10],i===!1&&(e===1?t=t.filter(function(n){return n%1==0}):e<=.1&&(t=[1/e]))),o=0;o<t.length&&(r=t[o],(!s||!(r*e>=l))&&(s||!(a<=(t[o]+(t[o+1]||t[o]))/2)));o++);return Eo(r*e,-Math.round(Math.log(.001)/Math.LN10))},objectEach:bi,offset:function(l){let t=ro.documentElement,e=l.parentElement||l.parentNode?l.getBoundingClientRect():{top:0,left:0,width:0,height:0};return{top:e.top+(wi.pageYOffset||t.scrollTop)-(t.clientTop||0),left:e.left+(wi.pageXOffset||t.scrollLeft)-(t.clientLeft||0),width:e.width,height:e.height}},pad:function(l,t,e){return Array((t||2)+1-String(l).replace("-","").length).join(e||"0")+l},pick:ss,pInt:To,pushUnique:function(l,t){return 0>l.indexOf(t)&&!!l.push(t)},relativeLength:function(l,t,e){return/%$/.test(l)?t*parseFloat(l)/100+(e||0):parseFloat(l)},removeEvent:Oi,replaceNested:function(l,...t){let e,i;do for(i of(e=l,t))l=l.replace(i[0],i[1]);while(l!==e);return l},splat:Lo,stableSort:function(l,t){let e,i,s=l.length;for(i=0;i<s;i++)l[i].safeI=i;for(l.sort(function(o,r){return(e=t(o,r))===0?o.safeI-r.safeI:e}),i=0;i<s;i++)delete l[i].safeI},syncTimeout:function(l,t,e){return t>0?setTimeout(l,t,e):(l.call(0,e),-1)},timeUnits:{millisecond:1,second:1e3,minute:6e4,hour:36e5,day:864e5,week:6048e5,month:24192e5,year:314496e5},ucfirst:function(l){return Ai(l)?l.substring(0,1).toUpperCase()+l.substring(1):String(l)},uniqueKey:As,useSerialIds:function(l){return dt=ss(l,dt)},wrap:function(l,t,e){let i=l[t];l[t]=function(){let s=arguments,o=this;return e.apply(this,[function(){return i.apply(o,arguments.length?arguments:s)}].concat([].slice.call(arguments)))}}},{pageLang:Nr,win:Us}=V,{defined:Ii,error:Io,extend:js,isNumber:No,isObject:Ps,isString:Ss,merge:Do,objectEach:Ro,pad:Pi,splat:Ne,timeUnits:Ts,ucfirst:Dr}=mt,_i=V.isSafari&&Us.Intl&&!Us.Intl.DateTimeFormat.prototype.formatRange,Rr=l=>l.main===void 0,lo=class{constructor(l,t){this.options={timezone:"UTC"},this.variableTimezone=!1,this.Date=Us.Date,this.update(l),this.lang=t}update(l={}){this.dTLCache={},this.options=l=Do(!0,this.options,l);let{timezoneOffset:t,useUTC:e}=l;this.Date=l.Date||Us.Date||Date;let i=l.timezone;Ii(e)&&(i=e?"UTC":void 0),t&&t%60==0&&(i="Etc/GMT"+(t>0?"+":"")+t/60),this.variableTimezone=i!=="UTC"&&i?.indexOf("Etc/GMT")!==0,this.timezone=i,["months","shortMonths","weekdays","shortWeekdays"].forEach(s=>{let o=/months/i.test(s),r=/short/.test(s),a={timeZone:"UTC"};a[o?"month":"weekday"]=r?"short":"long",this[s]=(o?[0,1,2,3,4,5,6,7,8,9,10,11]:[3,4,5,6,7,8,9]).map(n=>this.dateFormat(a,(o?31:1)*24*36e5*n))})}toParts(l){let[t,e,i,s,o,r,a]=this.dateTimeFormat({weekday:"narrow",day:"numeric",month:"numeric",year:"numeric",hour:"numeric",minute:"numeric",second:"numeric"},l,"es").split(/(?:, | |\/|:)/g);return[s,+i-1,e,o,r,a,Math.floor(Number(l)||0)%1e3,"DLMXJVS".indexOf(t)].map(Number)}dateTimeFormat(l,t,e=this.options.locale||Nr){let i=JSON.stringify(l)+e;Ss(l)&&(l=this.str2dtf(l));let s=this.dTLCache[i];if(!s){l.timeZone??(l.timeZone=this.timezone);try{s=new Intl.DateTimeFormat(e,l)}catch(o){/Invalid time zone/i.test(o.message)?(Io(34),l.timeZone="UTC",s=new Intl.DateTimeFormat(e,l)):Io(o.message,!1)}}return this.dTLCache[i]=s,s?.format(t)||""}str2dtf(l,t={}){let e={L:{fractionalSecondDigits:3},S:{second:"2-digit"},M:{minute:"numeric"},H:{hour:"2-digit"},k:{hour:"numeric"},E:{weekday:"narrow"},a:{weekday:"short"},A:{weekday:"long"},d:{day:"2-digit"},e:{day:"numeric"},b:{month:"short"},B:{month:"long"},m:{month:"2-digit"},o:{month:"numeric"},y:{year:"2-digit"},Y:{year:"numeric"}};return Object.keys(e).forEach(i=>{l.indexOf(i)!==-1&&js(t,e[i])}),t}makeTime(l,t,e=1,i=0,s,o,r){let a=this.Date.UTC(l,t,e,i,s||0,o||0,r||0);if(this.timezone!=="UTC"){let n=this.getTimezoneOffset(a);if(a+=n,[2,3,8,9,10,11].indexOf(t)!==-1&&(i<5||i>20)){let d=this.getTimezoneOffset(a);n!==d?a+=d-n:n-36e5!==this.getTimezoneOffset(a-36e5)||_i||(a-=36e5)}}return a}parse(l){if(!Ss(l))return l??void 0;let t=(l=l.replace(/\//g,"-").replace(/(GMT|UTC)/,"")).indexOf("Z")>-1||/([+-][0-9]{2}):?[0-9]{2}$/.test(l),e=/^[0-9]{4}-[0-9]{2}(-[0-9]{2}|)$/.test(l);t||e||(l+="Z");let i=Date.parse(l);if(No(i))return i+(!t||e?this.getTimezoneOffset(i):0)}getTimezoneOffset(l){if(this.timezone!=="UTC"){let[t,e,i,s,o=0]=this.dateTimeFormat({timeZoneName:"shortOffset"},l,"en").split(/(GMT|:)/).map(Number),r=-(36e5*(i+o/60));if(No(r))return r}return 0}dateFormat(l,t,e){let i=this.lang;if(!Ii(t)||isNaN(t))return i?.invalidDate||"";if(Ss(l=l??"%Y-%m-%d %H:%M:%S")){let s,o=/%\[([a-zA-Z]+)\]/g;for(;s=o.exec(l);)l=l.replace(s[0],this.dateTimeFormat(s[1],t,i?.locale))}if(Ss(l)&&l.indexOf("%")!==-1){let s=this,[o,r,a,n,d,p,c,g]=this.toParts(t),m=i?.weekdays||this.weekdays,x=i?.shortWeekdays||this.shortWeekdays,y=i?.months||this.months,k=i?.shortMonths||this.shortMonths;Ro(js({a:x?x[g]:m[g].substr(0,3),A:m[g],d:Pi(a),e:Pi(a,2," "),w:g,v:i?.weekFrom??"",b:k[r],B:y[r],m:Pi(r+1),o:r+1,y:o.toString().substr(2,2),Y:o,H:Pi(n),k:n,I:Pi(n%12||12),l:n%12||12,M:Pi(d),p:n<12?"AM":"PM",P:n<12?"am":"pm",S:Pi(p),L:Pi(c,3)},V.dateFormats),function(v,P){if(Ss(l))for(;l.indexOf("%"+P)!==-1;)l=l.replace("%"+P,typeof v=="function"?v.call(s,t):v)})}else if(Ps(l)){let s=(this.getTimezoneOffset(t)||0)/36e5,o=this.timezone||"Etc/GMT"+(s>=0?"+":"")+s,{prefix:r="",suffix:a=""}=l;l=r+this.dateTimeFormat(js({timeZone:o},l),t)+a}return e?Dr(l):l}resolveDTLFormat(l){return Ps(l,!0)?Ps(l,!0)&&Rr(l)?{main:l}:l:{main:(l=Ne(l))[0],from:l[1],to:l[2]}}getDateFormat(l,t,e,i){let s=this.dateFormat("%m-%d %H:%M:%S.%L",t),o="01-01 00:00:00.000",r={millisecond:15,second:12,minute:9,hour:6,day:3},a="millisecond",n=a;for(a in Ts){if(l&&l===Ts.week&&+this.dateFormat("%w",t)===e&&s.substr(6)===o.substr(6)){a="week";break}if(l&&Ts[a]>l){a=n;break}if(r[a]&&s.substr(r[a])!==o.substr(r[a]))break;a!=="week"&&(n=a)}return this.resolveDTLFormat(i[a]).main}},{defined:zo,extend:Vs,timeUnits:re}=mt,We=class extends lo{getTimeTicks(l,t,e,i){let s=this,o=[],r={},{count:a=1,unitRange:n}=l,[d,p,c,g,m,x]=s.toParts(t),y=(t||0)%1e3,k;if(i??(i=1),zo(t)){if(y=n>=re.second?0:a*Math.floor(y/a),n>=re.second&&(x=n>=re.minute?0:a*Math.floor(x/a)),n>=re.minute&&(m=n>=re.hour?0:a*Math.floor(m/a)),n>=re.hour&&(g=n>=re.day?0:a*Math.floor(g/a)),n>=re.day&&(c=n>=re.month?1:Math.max(1,a*Math.floor(c/a))),n>=re.month&&(p=n>=re.year?0:a*Math.floor(p/a)),n>=re.year&&(d-=d%a),n===re.week){a&&(t=s.makeTime(d,p,c,g,m,x,y));let T=this.dateTimeFormat({timeZone:this.timezone,weekday:"narrow"},t,"es"),O="DLMXJVS".indexOf(T);c+=-O+i+(O<i?-7:0)}t=s.makeTime(d,p,c,g,m,x,y),s.variableTimezone&&zo(e)&&(k=e-t>4*re.month||s.getTimezoneOffset(t)!==s.getTimezoneOffset(e));let v=t,P=1;for(;v<e;)o.push(v),n===re.year?v=s.makeTime(d+P*a,0):n===re.month?v=s.makeTime(d,p+P*a):k&&(n===re.day||n===re.week)?v=s.makeTime(d,p,c+P*a*(n===re.day?1:7)):k&&n===re.hour&&a>1?v=s.makeTime(d,p,c,g+P*a):v+=n*a,P++;o.push(v),n<=re.hour&&o.length<1e4&&o.forEach(T=>{T%18e5==0&&s.dateFormat("%H%M%S%L",T)==="000000000"&&(r[T]="day")})}return o.info=Vs(l,{higherRanks:r,totalRange:n*a}),o}},{isTouchDevice:cr}=V,{fireEvent:Bo,merge:Xo}=mt,Ni={colors:["#2caffe","#544fc5","#00e272","#fe6a35","#6b8abc","#d568fb","#2ee0ca","#fa4b42","#feb56a","#91e8e1"],symbols:["circle","diamond","square","triangle","triangle-down"],lang:{weekFrom:"week from",chartTitle:"Chart title",locale:void 0,loading:"Loading...",months:void 0,seriesName:"Series {add index 1}",shortMonths:void 0,weekdays:void 0,numericSymbols:["k","M","G","T","P","E"],pieSliceName:"Slice",resetZoom:"Reset zoom",yAxisTitle:"Values",resetZoomTitle:"Reset zoom level 1:1"},global:{buttonTheme:{fill:"#f7f7f7",padding:8,r:2,stroke:"#cccccc","stroke-width":1,style:{color:"#333333",cursor:"pointer",fontSize:"0.8em",fontWeight:"normal"},states:{hover:{fill:"#e6e6e6"},select:{fill:"#e6e9ff",style:{color:"#000000",fontWeight:"bold"}},disabled:{style:{color:"#cccccc"}}}}},time:{Date:void 0,timezone:"UTC",timezoneOffset:0,useUTC:void 0},chart:{alignThresholds:!1,panning:{enabled:!1,type:"x"},styledMode:!1,borderRadius:0,colorCount:10,allowMutatingData:!0,ignoreHiddenSeries:!0,spacing:[10,10,15,10],resetZoomButton:{theme:{},position:{}},reflow:!0,type:"line",zooming:{singleTouch:!1,resetButton:{theme:{zIndex:6},position:{align:"right",x:-10,y:10}}},width:null,height:null,borderColor:"#334eff",backgroundColor:"#ffffff",plotBorderColor:"#cccccc"},title:{style:{color:"#333333",fontWeight:"bold"},text:"Chart title",margin:15,minScale:.67},subtitle:{style:{color:"#666666",fontSize:"0.8em"},text:""},caption:{margin:15,style:{color:"#666666",fontSize:"0.8em"},text:"",align:"left",verticalAlign:"bottom"},plotOptions:{},legend:{enabled:!0,align:"center",alignColumns:!0,className:"highcharts-no-tooltip",events:{},layout:"horizontal",itemMarginBottom:2,itemMarginTop:2,labelFormatter:function(){return this.name},borderColor:"#999999",borderRadius:0,navigation:{style:{fontSize:"0.8em"},activeColor:"#0022ff",inactiveColor:"#cccccc"},itemStyle:{color:"#333333",cursor:"pointer",fontSize:"0.8em",textDecoration:"none",textOverflow:"ellipsis"},itemHoverStyle:{color:"#000000"},itemHiddenStyle:{color:"#666666",textDecoration:"line-through"},shadow:!1,itemCheckboxStyle:{position:"absolute",width:"13px",height:"13px"},squareSymbol:!0,symbolPadding:5,verticalAlign:"bottom",x:0,y:0,title:{style:{fontSize:"0.8em",fontWeight:"bold"}}},loading:{labelStyle:{fontWeight:"bold",position:"relative",top:"45%"},style:{position:"absolute",backgroundColor:"#ffffff",opacity:.5,textAlign:"center"}},tooltip:{enabled:!0,animation:{duration:300,easing:l=>Math.sqrt(1-Math.pow(l-1,2))},borderRadius:3,dateTimeLabelFormats:{millisecond:"%[AebHMSL]",second:"%[AebHMS]",minute:"%[AebHM]",hour:"%[AebHM]",day:"%[AebY]",week:"%v %[AebY]",month:"%[BY]",year:"%Y"},footerFormat:"",headerShape:"callout",hideDelay:500,padding:8,position:{x:0,y:3},shared:!1,snap:cr?25:10,headerFormat:'<span style="font-size: 0.8em">{ucfirst point.key}</span><br/>',pointFormat:'<span style="color:{point.color}">\u25CF</span> {series.name}: <b>{point.y}</b><br/>',backgroundColor:"#ffffff",borderWidth:void 0,stickOnContact:!1,style:{color:"#333333",cursor:"default",fontSize:"0.8em"},useHTML:!1},credits:{enabled:!0,href:"https://www.highcharts.com?credits",position:{align:"right",x:-10,verticalAlign:"bottom",y:-5},style:{cursor:"pointer",color:"#999999",fontSize:"0.6em"},text:"Highcharts.com"}},os=new We(Ni.time,Ni.lang),Ze={defaultOptions:Ni,defaultTime:os,getOptions:function(){return Ni},setOptions:function(l){return Bo(V,"setOptions",{options:l}),Xo(!0,Ni,l),l.time&&os.update(Ni.time),l.lang&&"locale"in l.lang&&os.update({locale:l.lang.locale}),l.lang?.chartTitle&&(Ni.title=ga(ts({},Ni.title),{text:l.lang.chartTitle})),Ni}},{win:zr}=V,{isNumber:_s,isString:Br,merge:Xr,pInt:He,defined:pr}=mt,Yo=(l,t,e)=>`color-mix(in srgb,${l},${t} ${100*e}%)`,rs=l=>Br(l)&&!!l&&l!=="none";class $t{static parse(t){return t?new $t(t):$t.None}constructor(t){let e,i,s,o;this.rgba=[NaN,NaN,NaN,NaN],this.input=t;let r=V.Color;if(r&&r!==$t)return new r(t);if(typeof t=="object"&&t.stops!==void 0)this.stops=t.stops.map(a=>new $t(a[1]));else if(typeof t=="string")for(this.input=t=$t.names[t.toLowerCase()]||t,s=$t.parsers.length;s--&&!i;)(e=(o=$t.parsers[s]).regex.exec(t))&&(i=o.parse(e));i&&(this.rgba=i)}get(t){let e=this.input,i=this.rgba;if(this.output)return this.output;if(typeof e=="object"&&this.stops!==void 0){let s=Xr(e);return s.stops=[].slice.call(s.stops),this.stops.forEach((o,r)=>{s.stops[r]=[s.stops[r][0],o.get(t)]}),s}return i&&_s(i[0])?t!=="rgb"&&(t||i[3]!==1)?t==="a"?`${i[3]}`:"rgba("+i.join(",")+")":"rgb("+i[0]+","+i[1]+","+i[2]+")":e}brighten(t){let e=this.rgba;if(this.stops)this.stops.forEach(function(i){i.brighten(t)});else if(_s(t)&&t!==0)if(_s(e[0]))for(let i=0;i<3;i++)e[i]+=He(255*t),e[i]<0&&(e[i]=0),e[i]>255&&(e[i]=255);else $t.useColorMix&&rs(this.input)&&(this.output=Yo(this.input,t>0?"white":"black",Math.abs(t)));return this}setOpacity(t){return this.rgba[3]=t,this}tweenTo(t,e){let i=this.rgba,s=t.rgba;if(!_s(i[0])||!_s(s[0]))return $t.useColorMix&&rs(this.input)&&rs(t.input)&&e<.99?Yo(this.input,t.input,e):t.input||"none";let o=s[3]!==1||i[3]!==1,r=(n,d)=>n+(i[d]-n)*(1-e),a=s.slice(0,3).map(r).map(Math.round);return o&&a.push(r(s[3],3)),(o?"rgba(":"rgb(")+a.join(",")+")"}}$t.names={white:"#ffffff",black:"#000000"},$t.parsers=[{regex:/rgba\(\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*(\d?(?:\.\d+)?)\s*\)/,parse:function(l){return[He(l[1]),He(l[2]),He(l[3]),parseFloat(l[4],10)]}},{regex:/rgb\(\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*(\d{1,3})\s*\)/,parse:function(l){return[He(l[1]),He(l[2]),He(l[3]),1]}},{regex:/^#([a-f0-9])([a-f0-9])([a-f0-9])([a-f0-9])?$/i,parse:function(l){return[He(l[1]+l[1],16),He(l[2]+l[2],16),He(l[3]+l[3],16),pr(l[4])?He(l[4]+l[4],16)/255:1]}},{regex:/^#([a-f0-9]{2})([a-f0-9]{2})([a-f0-9]{2})([a-f0-9]{2})?$/i,parse:function(l){return[He(l[1],16),He(l[2],16),He(l[3],16),pr(l[4])?He(l[4],16)/255:1]}}],$t.useColorMix=zr.CSS?.supports("color","color-mix(in srgb,red,blue 9%)"),$t.None=new $t("");let{parse:ur}=$t,{win:Yr}=V,{isNumber:Wo,objectEach:gr}=mt,Di=(()=>{class l{constructor(e,i,s){this.pos=NaN,this.options=i,this.elem=e,this.prop=s}dSetter(){let e=this.paths,i=e?.[0],s=e?.[1],o=this.now||0,r=[];if(o!==1&&i&&s)if(i.length===s.length&&o<1)for(let a=0;a<s.length;a++){let n=i[a],d=s[a],p=[];for(let c=0;c<d.length;c++){let g=n[c],m=d[c];Wo(g)&&Wo(m)&&(d[0]!=="A"||c!==4&&c!==5)?p[c]=g+o*(m-g):p[c]=m}r.push(p)}else r=s;else r=this.toD||[];this.elem.attr("d",r,void 0,!0)}update(){let e=this.elem,i=this.prop,s=this.now,o=this.options.step;this[i+"Setter"]?this[i+"Setter"]():e.attr?e.element&&e.attr(i,s,null,!0):e.style[i]=s+this.unit,o&&o.call(e,s,this)}run(e,i,s){let o=this,r=o.options,a=function(p){return!a.stopped&&o.step(p)},n=Yr.requestAnimationFrame||function(p){setTimeout(p,13)},d=function(){for(let p=0;p<l.timers.length;p++)l.timers[p]()||l.timers.splice(p--,1);l.timers.length&&n(d)};e!==i||this.elem["forceAnimate:"+this.prop]?(this.startTime=+new Date,this.start=e,this.end=i,this.unit=s,this.now=this.start,this.pos=0,a.elem=this.elem,a.prop=this.prop,a()&&l.timers.push(a)===1&&n(d)):(delete r.curAnim[this.prop],r.complete&&Object.keys(r.curAnim).length===0&&r.complete.call(this.elem))}step(e){let i,s,o=+new Date,r=this.options,a=this.elem,n=r.complete,d=r.duration,p=r.curAnim;return a.attr&&!a.element?i=!1:e||o>=d+this.startTime?(this.now=this.end,this.pos=1,this.update(),p[this.prop]=!0,s=!0,gr(p,function(c){c!==!0&&(s=!1)}),s&&n&&n.call(a),i=!1):(this.pos=r.easing((o-this.startTime)/d),this.now=this.start+(this.end-this.start)*this.pos,this.update(),i=!0),i}initPath(e,i,s){let o=e.startX,r=e.endX,a=s.slice(),n=e.isArea,d=n?2:1,p=i&&s.length>i.length&&s.hasStackedCliffs,c,g,m,x,y=i?.slice();if(!y||p)return[a,a];function k(P,T){for(;P.length<g;){let O=P[0],Y=T[g-P.length];if(Y&&O[0]==="M"&&(Y[0]==="C"?P[0]=["C",O[1],O[2],O[1],O[2],O[1],O[2]]:P[0]=["L",O[1],O[2]]),P.unshift(O),n){let B=P.pop();P.push(P[P.length-1],B)}}}function v(P){for(;P.length<g;){let T=P[Math.floor(P.length/d)-1].slice();if(T[0]==="C"&&(T[1]=T[5],T[2]=T[6]),n){let O=P[Math.floor(P.length/d)].slice();P.splice(P.length/2,0,T,O)}else P.push(T)}}if(o&&r&&r.length){for(m=0;m<o.length;m++){if(o[m]===r[0]){c=m;break}if(o[0]===r[r.length-o.length+m]){c=m,x=!0;break}if(o[o.length-1]===r[r.length-o.length+m]){c=o.length-m;break}}c===void 0&&(y=[])}return y.length&&Wo(c)&&(g=a.length+c*d,x?(k(y,a),v(a)):(k(a,y),v(y))),[y,a]}fillSetter(){l.prototype.strokeSetter.apply(this,arguments)}strokeSetter(){this.elem.attr(this.prop,ur(this.start).tweenTo(ur(this.end),this.pos),void 0,!0)}}return l.timers=[],l})(),{defined:fr,getStyle:as,isArray:Wr,isNumber:C,isObject:S,merge:E,objectEach:H,pick:W}=mt;function tt(l){return S(l)?E({duration:500,defer:0},l):{duration:500*!!l,defer:0}}function it(l,t){let e=Di.timers.length;for(;e--;)Di.timers[e].elem!==l||t&&t!==Di.timers[e].prop||(Di.timers[e].stopped=!0)}let K={animate:function(l,t,e){let i,s="",o,r,a;S(e)||(a=arguments,e={duration:a[2],easing:a[3],complete:a[4]}),C(e.duration)||(e.duration=400),e.easing=typeof e.easing=="function"?e.easing:Math[e.easing]||Math.easeInOutSine,e.curAnim=E(t),H(t,function(n,d){it(l,d),r=new Di(l,e,d),o=void 0,d==="d"&&Wr(t.d)?(r.paths=r.initPath(l,l.pathArray,t.d),r.toD=t.d,i=0,o=1):l.attr?i=l.attr(d):(i=parseFloat(as(l,d))||0,d!=="opacity"&&(s="px")),o||(o=n),typeof o=="string"&&o.match("px")&&(o=o.replace(/px/g,"")),r.run(i,o,s)})},animObject:tt,getDeferredAnimation:function(l,t,e){let i=tt(t),s=e?[e]:l.series,o=0,r=0;return s.forEach(a=>{let n=tt(a.options.animation);o=S(t)&&fr(t.defer)?i.defer:Math.max(o,n.duration+n.defer),r=Math.min(i.duration,n.duration)}),l.renderer.forExport&&(o=0),{defer:Math.max(0,o-r),duration:Math.min(o,r)}},setAnimation:function(l,t){t.renderer.globalAnimation=W(l,t.options.chart.animation,!0)},stop:it},{SVG_NS:ot,win:U}=V,{attr:Nt,createElement:kt,css:ae,error:pe,isFunction:Se,isString:ye,objectEach:xe,splat:De}=mt,{trustedTypes:Fe}=U,ge=Fe&&Se(Fe.createPolicy)&&Fe.createPolicy("highcharts",{createHTML:l=>l}),di=ge?ge.createHTML(""):"";class Pt{static filterUserAttributes(t){return xe(t,(e,i)=>{let s=!0;Pt.allowedAttributes.indexOf(i)===-1&&(s=!1),["background","dynsrc","href","lowsrc","src"].indexOf(i)!==-1&&(s=ye(e)&&Pt.allowedReferences.some(o=>e.indexOf(o)===0)),s||(pe(33,!1,void 0,{"Invalid attribute in config":`${i}`}),delete t[i]),ye(e)&&t[i]&&(t[i]=e.replace(/</g,"<"))}),t}static parseStyle(t){return t.split(";").reduce((e,i)=>{let s=i.split(":").map(r=>r.trim()),o=s.shift();return o&&s.length&&(e[o.replace(/-([a-z])/g,r=>r[1].toUpperCase())]=s.join(":")),e},{})}static setElementHTML(t,e){t.innerHTML=Pt.emptyHTML,e&&new Pt(e).addToDOM(t)}constructor(t){this.nodes=typeof t=="string"?this.parseMarkup(t):t}addToDOM(t){return(function e(i,s){let o;return De(i).forEach(function(r){let a,n=r.tagName,d=r.textContent?V.doc.createTextNode(r.textContent):void 0,p=Pt.bypassHTMLFiltering;if(n)if(n==="#text")a=d;else if(Pt.allowedTags.indexOf(n)!==-1||p){let c=n==="svg"?ot:s.namespaceURI||ot,g=V.doc.createElementNS(c,n),m=r.attributes||{};xe(r,function(x,y){y!=="tagName"&&y!=="attributes"&&y!=="children"&&y!=="style"&&y!=="textContent"&&(m[y]=x)}),Nt(g,p?m:Pt.filterUserAttributes(m)),r.style&&ae(g,r.style),d&&g.appendChild(d),e(r.children||[],g),a=g}else pe(33,!1,void 0,{"Invalid tagName in config":n});a&&s.appendChild(a),o=a}),o})(this.nodes,t)}parseMarkup(t){let e,i=[];t=t.trim().replace(/ style=(["'])/g," data-style=$1");try{e=new DOMParser().parseFromString(ge?ge.createHTML(t):t,"text/html")}catch{}if(!e){let o=kt("div");o.innerHTML=t,e={body:o}}let s=(o,r)=>{let a=o.nodeName.toLowerCase(),n={tagName:a};a==="#text"&&(n.textContent=o.textContent||"");let d=o.attributes;if(d){let p={};[].forEach.call(d,c=>{c.name==="data-style"?n.style=Pt.parseStyle(c.value):p[c.name]=c.value}),n.attributes=p}if(o.childNodes.length){let p=[];[].forEach.call(o.childNodes,c=>{s(c,p)}),p.length&&(n.children=p)}r.push(n)};return[].forEach.call(e.body.childNodes,o=>s(o,i)),i}}Pt.allowedAttributes=["alt","aria-controls","aria-describedby","aria-expanded","aria-haspopup","aria-hidden","aria-label","aria-labelledby","aria-live","aria-pressed","aria-readonly","aria-roledescription","aria-selected","class","clip-path","color","colspan","cx","cy","d","dx","dy","disabled","fill","filterUnits","flood-color","flood-opacity","height","href","id","in","in2","markerHeight","markerWidth","offset","opacity","operator","orient","padding","paddingLeft","paddingRight","patternUnits","r","radius","refX","refY","role","scope","slope","src","startOffset","stdDeviation","stroke","stroke-linecap","stroke-width","style","tableValues","result","rowspan","summary","target","tabindex","text-align","text-anchor","textAnchor","textLength","title","type","valign","width","x","x1","x2","xlink:href","y","y1","y2","zIndex"],Pt.allowedReferences=["https://","http://","mailto:","/","../","./","#"],Pt.allowedTags=["a","abbr","b","br","button","caption","circle","clipPath","code","dd","defs","div","dl","dt","em","feComponentTransfer","feComposite","feDropShadow","feFlood","feFuncA","feFuncB","feFuncG","feFuncR","feGaussianBlur","feMorphology","feOffset","feMerge","feMergeNode","filter","h1","h2","h3","h4","h5","h6","hr","i","img","li","linearGradient","marker","ol","p","path","pattern","pre","rect","small","span","stop","strong","style","sub","sup","svg","table","text","textPath","thead","title","tbody","tspan","td","th","tr","u","ul","#text"],Pt.emptyHTML=di,Pt.bypassHTMLFiltering=!1;let{defaultOptions:Jt,defaultTime:ci}=Ze,{pageLang:ve}=V,{extend:si,getNestedProperty:Te,isArray:Ge,isNumber:Re,isObject:Ho,isString:ns,pick:qs,ucfirst:Ri}=mt,Si={add:(l,t)=>l+t,divide:(l,t)=>t!==0?l/t:"",eq:(l,t)=>l==t,each:function(l){let t=arguments[arguments.length-1];return!!Ge(l)&&l.map((e,i)=>oi(t.body,si(Ho(e)?e:{"@this":e},{"@index":i,"@first":i===0,"@last":i===l.length-1}))).join("")},ge:(l,t)=>l>=t,gt:(l,t)=>l>t,if:l=>!!l,le:(l,t)=>l<=t,lt:(l,t)=>l<t,multiply:(l,t)=>l*t,ne:(l,t)=>l!=t,subtract:(l,t)=>l-t,ucfirst:Ri,unless:l=>!l},yi={},pi=l=>/^["'].+["']$/.test(l);function oi(l="",t,e){let i=/\{([a-zA-Z\u00C0-\u017F\d:\.,;\-\/<>\[\]%_@+"'’= #\(\)]+)\}/g,s=/\(([a-zA-Z\u00C0-\u017F\d:\.,;\-\/<>\[\]%_@+"'= ]+)\)/g,o=[],r=/f$/,a=/\.(\d)/,n=e?.options?.lang||Jt.lang,d=e?.time||ci,p=e?.numberFormatter||Ee,c=(k="")=>{let v;return k==="true"||k!=="false"&&((v=Number(k)).toString()===k?v:pi(k)?k.slice(1,-1):Te(k,t))},g,m,x=0,y;for(;(g=i.exec(l))!==null;){let k=g,v=s.exec(g[1]);v&&(g=v,y=!0),m?.isBlock||(m={ctx:t,expression:g[1],find:g[0],isBlock:g[1].charAt(0)==="#",start:g.index,startInner:g.index+g[0].length,length:g[0].length});let P=(m.isBlock?k:g)[1].split(" ")[0].replace("#","");Si[P]&&(m.isBlock&&P===m.fn&&x++,m.fn||(m.fn=P));let T=g[1]==="else";if(m.isBlock&&m.fn&&(g[1]===`/${m.fn}`||T))if(x)!T&&x--;else{let O=m.startInner,Y=l.substr(O,g.index-O);m.body===void 0?(m.body=Y,m.startInner=g.index+g[0].length):m.elseBody=Y,m.find+=Y+g[0],T||(o.push(m),m=void 0)}else m.isBlock||o.push(m);if(v&&!m?.isBlock)break}return o.forEach(k=>{let v,P,{body:T,elseBody:O,expression:Y,fn:B}=k;if(B){let R=[k],X=[],j=Y.length,$=0,Z;for(P=0;P<=j;P++){let rt=Y.charAt(P);Z||rt!=='"'&&rt!=="'"?Z===rt&&(Z=""):Z=rt,Z||rt!==" "&&P!==j||(X.push(Y.substr($,P-$)),$=P+1)}for(P=Si[B].length;P--;)R.unshift(c(X[P+1]));v=Si[B].apply(t,R),k.isBlock&&typeof v=="boolean"&&(v=oi(v?T:O,t,e))}else{let R=pi(Y)?[Y]:Y.split(":");if(v=c(R.shift()||""),R.length&&typeof v=="number"){let X=R.join(":");if(r.test(X)){let j=parseInt((X.match(a)||["","-1"])[1],10);v!==null&&(v=p(v,j,n.decimalPoint,X.indexOf(",")>-1?n.thousandsSep:""))}else v=d.dateFormat(X,v)}s.lastIndex=0,s.test(k.find)&&ns(v)&&(v=`"${v}"`)}l=l.replace(k.find,qs(v,""))}),y?oi(l,t,e):l}function Ee(l,t,e,i){t*=1;let s,o,[r,a]=(l=+l||0).toString().split("e").map(Number),n=this?.options?.lang||Jt.lang,d=(l.toString().split(".")[1]||"").split("e")[0].length,p=t,c={};e??(e=n.decimalPoint),i??(i=n.thousandsSep),t===-1?t=Math.min(d,20):Re(t)?t&&a<0&&((o=t+a)>=0?(r=+r.toExponential(o).split("e")[0],t=o):(r=Math.floor(r),l=t<20?+(r*Math.pow(10,a)).toFixed(t):0,a=0)):t=2,a&&(t??(t=2),l=r),Re(t)&&t>=0&&(c.minimumFractionDigits=t,c.maximumFractionDigits=t),i===""&&(c.useGrouping=!1);let g=i||e,m=g?"en":this?.locale||n.locale||ve,x=JSON.stringify(c)+m;return s=(yi[x]??(yi[x]=new Intl.NumberFormat(m,c))).format(l),g&&(s=s.replace(/([,\.])/g,"_$1").replace(/_\,/g,i??",").replace("_.",e??".")),(t||+s!=0)&&(!(a<0)||p)||(s="0"),a&&+s!=0&&(s+="e"+(a<0?"":"+")+a),s}let fe={dateFormat:function(l,t,e){return ci.dateFormat(l,t,e)},format:oi,helpers:Si,numberFormat:Ee};(function(l){let t;l.rendererTypes={},l.getRendererType=function(e=t){return l.rendererTypes[e]||l.rendererTypes[t]},l.registerRendererType=function(e,i,s){l.rendererTypes[e]=i,(!t||s)&&(t=e,V.Renderer=i)}})(Hi||(Hi={}));let ri=Hi,{clamp:ke,pick:Ue,pushUnique:Yt,stableSort:Wt}=mt;(Ae||(Ae={})).distribute=function l(t,e,i){let s=t,o=s.reducedLen||e,r=(T,O)=>T.target-O.target,a=[],n=t.length,d=[],p=a.push,c,g,m,x=!0,y,k,v=0,P;for(c=n;c--;)v+=t[c].size;if(v>o){for(Wt(t,(T,O)=>(O.rank||0)-(T.rank||0)),m=(P=t[0].rank===t[t.length-1].rank)?n/2:-1,g=P?m:n-1;m&&v>o;)y=t[c=Math.floor(g)],Yt(d,c)&&(v-=y.size),g+=m,P&&g>=t.length&&(m/=2,g=m);d.sort((T,O)=>O-T).forEach(T=>p.apply(a,t.splice(T,1)))}for(Wt(t,r),t=t.map(T=>({size:T.size,targets:[T.target],align:Ue(T.align,.5)}));x;){for(c=t.length;c--;)y=t[c],k=(Math.min.apply(0,y.targets)+Math.max.apply(0,y.targets))/2,y.pos=ke(k-y.size*y.align,0,e-y.size);for(c=t.length,x=!1;c--;)c>0&&t[c-1].pos+t[c-1].size>t[c].pos&&(t[c-1].size+=t[c].size,t[c-1].targets=t[c-1].targets.concat(t[c].targets),t[c-1].align=.5,t[c-1].pos+t[c-1].size>e&&(t[c-1].pos=e-t[c-1].size),t.splice(c,1),x=!0)}return p.apply(s,a),c=0,t.some(T=>{let O=0;return(T.targets||[]).some(()=>(s[c].pos=T.pos+O,i!==void 0&&Math.abs(s[c].pos-s[c].target)>i?(s.slice(0,c+1).forEach(Y=>delete Y.pos),s.reducedLen=(s.reducedLen||e)-.1*e,s.reducedLen>.1*e&&l(s,e,i),!0):(O+=s[c].size,c++,!1)))}),Wt(s,r),s};let Dt=Ae,{animate:je,animObject:Vt,stop:ai}=K,{deg2rad:Ve,doc:Ke,svg:ho,SVG_NS:Cs,win:Qe,isFirefox:Fo}=V,{addEvent:Ls,attr:co,createElement:Es,crisp:Je,css:po,defined:ni,erase:qi,extend:ti,fireEvent:ls,getAlignFactor:Os,isArray:$s,isFunction:Go,isNumber:wt,isObject:Ut,isString:ne,merge:Ce,objectEach:Kt,pick:ui,pInt:hs,pushUnique:$i,replaceNested:An,syncTimeout:Pn,uniqueKey:Uo}=mt;class Oe{_defaultGetter(t){let e=ui(this[t+"Value"],this[t],this.element?this.element.getAttribute(t):null,0);return/^-?[\d\.]+$/.test(e)&&(e=parseFloat(e)),e}_defaultSetter(t,e,i){i.setAttribute(e,t)}add(t){let e,i=this.renderer,s=this.element;return t&&(this.parentGroup=t),this.textStr!==void 0&&this.element.nodeName==="text"&&i.buildText(this),this.added=!0,(!t||t.handleZ||this.zIndex)&&(e=this.zIndexSetter()),e||(t?t.element:i.box).appendChild(s),this.onAdd&&this.onAdd(),this}addClass(t,e){let i=e?"":this.attr("class")||"";return(t=(t||"").split(/ /g).reduce(function(s,o){return i.indexOf(o)===-1&&s.push(o),s},i?[i]:[]).join(" "))!==i&&this.attr("class",t),this}afterSetters(){this.doTransform&&(this.updateTransform(),this.doTransform=!1)}align(t,e,i,s=!0){let o=this.renderer,r=o.alignedObjects,a=!!t;t?(this.alignOptions=t,this.alignByTranslate=e,this.alignTo=i):(t=this.alignOptions||{},e=this.alignByTranslate,i=this.alignTo);let n=!i||ne(i)?i||"renderer":void 0;n&&(a&&$i(r,this),i=void 0);let d=ui(i,o[n],o),p=(d.x||0)+(t.x||0)+((d.width||0)-(t.width||0))*Os(t.align),c=(d.y||0)+(t.y||0)+((d.height||0)-(t.height||0))*Os(t.verticalAlign),g={"text-align":t?.align};return g[e?"translateX":"x"]=Math.round(p),g[e?"translateY":"y"]=Math.round(c),s&&(this[this.placed?"animate":"attr"](g),this.placed=!0),this.alignAttr=g,this}alignSetter(t){let e={left:"start",center:"middle",right:"end"};e[t]&&(this.alignValue=t,this.element.setAttribute("text-anchor",e[t]))}animate(t,e,i){let s=Vt(ui(e,this.renderer.globalAnimation,!0)),o=s.defer;return Ke.hidden&&(s.duration=0),s.duration!==0?(i&&(s.complete=i),Pn(()=>{this.element&&je(this,t,s)},o)):(this.attr(t,void 0,i||s.complete),Kt(t,function(r,a){s.step&&s.step.call(this,r,{prop:a,pos:1,elem:this})},this)),this}applyTextOutline(t){let e=this.element;t.indexOf("contrast")!==-1&&(t=t.replace(/contrast/g,this.renderer.getContrast(e.style.fill)));let i=t.indexOf(" "),s=t.substring(i+1),o=t.substring(0,i);if(o&&o!=="none"&&V.svg){this.fakeTS=!0,o=o.replace(/(^[\d\.]+)(.*?)$/g,function(p,c,g){return 2*Number(c)+g}),this.removeTextOutline();let r=Ke.createElementNS(Cs,"tspan");co(r,{class:"highcharts-text-outline",fill:s,stroke:s,"stroke-width":o,"stroke-linejoin":"round"});let a=e.querySelector("textPath")||e;[].forEach.call(a.childNodes,p=>{let c=p.cloneNode(!0);c.removeAttribute&&["fill","stroke","stroke-width","stroke"].forEach(g=>c.removeAttribute(g)),r.appendChild(c)});let n=0;[].forEach.call(a.querySelectorAll("text tspan"),p=>{n+=Number(p.getAttribute("dy"))});let d=Ke.createElementNS(Cs,"tspan");d.textContent="\u200B",co(d,{x:Number(e.getAttribute("x")),dy:-n}),r.appendChild(d),a.insertBefore(r,a.firstChild)}}attr(t,e,i,s){let{element:o}=this,r=Oe.symbolCustomAttribs,a,n,d=this,p;return typeof t=="string"&&e!==void 0&&(a=t,(t={})[a]=e),typeof t=="string"?d=(this[t+"Getter"]||this._defaultGetter).call(this,t,o):(Kt(t,function(c,g){p=!1,s||ai(this,g),this.symbolName&&r.indexOf(g)!==-1&&(n||(this.symbolAttr(t),n=!0),p=!0),this.rotation&&(g==="x"||g==="y")&&(this.doTransform=!0),p||(this[g+"Setter"]||this._defaultSetter).call(this,c,g,o)},this),this.afterSetters()),i&&i.call(this),d}clip(t){if(t&&!t.clipPath){let e=Uo()+"-",i=this.renderer.createElement("clipPath").attr({id:e}).add(this.renderer.defs);ti(t,{clipPath:i,id:e,count:0}),t.add(i)}return this.attr("clip-path",t?`url(${this.renderer.url}#${t.id})`:"none")}crisp(t,e){e=Math.round(e||t.strokeWidth||0);let i=t.x||this.x||0,s=t.y||this.y||0,o=(t.width||this.width||0)+i,r=(t.height||this.height||0)+s,a=Je(i,e),n=Je(s,e);return ti(t,{x:a,y:n,width:Je(o,e)-a,height:Je(r,e)-n}),ni(t.strokeWidth)&&(t.strokeWidth=e),t}complexColor(t,e,i){let s=this.renderer,o,r,a,n,d,p,c,g,m,x,y=[],k;ls(this.renderer,"complexColor",{args:arguments},function(){if(t.radialGradient?r="radialGradient":t.linearGradient&&(r="linearGradient"),r){if(a=t[r],d=s.gradients,p=t.stops,m=i.radialReference,$s(a)&&(t[r]=a={x1:a[0],y1:a[1],x2:a[2],y2:a[3],gradientUnits:"userSpaceOnUse"}),r==="radialGradient"&&m&&!ni(a.gradientUnits)&&(n=a,a=Ce(a,s.getRadialAttr(m,n),{gradientUnits:"userSpaceOnUse"})),Kt(a,function(v,P){P!=="id"&&y.push(P,v)}),Kt(p,function(v){y.push(v)}),d[y=y.join(",")])x=d[y].attr("id");else{a.id=x=Uo();let v=d[y]=s.createElement(r).attr(a).add(s.defs);v.radAttr=n,v.stops=[],p.forEach(function(P){P[1].indexOf("rgba")===0?(c=(o=$t.parse(P[1])).get("rgb"),g=o.get("a")):(c=P[1],g=1);let T=s.createElement("stop").attr({offset:P[0],"stop-color":c,"stop-opacity":g}).add(v);v.stops.push(T)})}k="url("+s.url+"#"+x+")",i.setAttribute(e,k),i.gradient=y,t.toString=function(){return k}}})}css(t){let e=this.styles,i={},s=this.element,o,r=!e;if(e&&Kt(t,function(a,n){e&&e[n]!==a&&(i[n]=a,r=!0)}),r){e&&(t=ti(e,i)),t.width===null||t.width==="auto"?delete this.textWidth:s.nodeName.toLowerCase()==="text"&&t.width&&(o=this.textWidth=hs(t.width)),ti(this.styles,t),o&&!ho&&this.renderer.forExport&&delete t.width;let a=Fo&&t.fontSize||null;a&&(wt(a)||/^\d+$/.test(a))&&(t.fontSize+="px");let n=Ce(t);s.namespaceURI===this.SVG_NS&&(["textOutline","textOverflow","whiteSpace","width"].forEach(d=>n&&delete n[d]),n.color&&(n.fill=n.color,delete n.color)),po(s,n)}return this.added&&(this.element.nodeName==="text"&&this.renderer.buildText(this),t.textOutline&&this.applyTextOutline(t.textOutline)),this}dashstyleSetter(t){let e,i=this["stroke-width"];if(i==="inherit"&&(i=1),t){let s=(t=t.toLowerCase()).replace("shortdashdotdot","3,1,1,1,1,1,").replace("shortdashdot","3,1,1,1").replace("shortdot","1,1,").replace("shortdash","3,1,").replace("longdash","8,3,").replace(/dot/g,"1,3,").replace("dash","4,3,").replace(/,$/,"").split(",");for(e=s.length;e--;)s[e]=""+hs(s[e])*ui(i,NaN);t=s.join(",").replace(/NaN/g,"none"),this.element.setAttribute("stroke-dasharray",t)}}destroy(){let t=this,e=t.element||{},i=t.renderer,s=e.ownerSVGElement,o=e.nodeName==="SPAN"&&t.parentGroup||void 0,r,a;if(e.onclick=e.onmouseout=e.onmouseover=e.onmousemove=e.point=null,ai(t),t.clipPath&&s){let n=t.clipPath;[].forEach.call(s.querySelectorAll("[clip-path],[CLIP-PATH]"),function(d){d.getAttribute("clip-path").indexOf(n.element.id)>-1&&d.removeAttribute("clip-path")}),t.clipPath=n.destroy()}if(t.stops){for(a=0;a<t.stops.length;a++)t.stops[a].destroy();t.stops.length=0,t.stops=void 0}for(t.safeRemoveChild(e);o?.div&&o.div.childNodes.length===0;)r=o.parentGroup,t.safeRemoveChild(o.div),delete o.div,o=r;t.alignOptions&&qi(i.alignedObjects,t),Kt(t,(n,d)=>{(t[d]?.parentGroup===t||["connector","foreignObject"].indexOf(d)!==-1)&&t[d]?.destroy?.(),delete t[d]})}dSetter(t,e,i){$s(t)&&(typeof t[0]=="string"&&(t=this.renderer.pathToSegments(t)),this.pathArray=t,t=t.reduce((s,o,r)=>o?.join?(r?s+" ":"")+o.join(" "):(o||"").toString(),"")),/(NaN| {2}|^$)/.test(t)&&(t="M 0 0"),this[e]!==t&&(i.setAttribute(e,t),this[e]=t)}fillSetter(t,e,i){typeof t=="string"?i.setAttribute(e,t):t&&this.complexColor(t,e,i)}hrefSetter(t,e,i){i.setAttributeNS("http://www.w3.org/1999/xlink",e,t)}getBBox(t,e){let i,s,o,r,{alignValue:a,element:n,renderer:d,styles:p,textStr:c}=this,{cache:g,cacheKeys:m}=d,x=n.namespaceURI===this.SVG_NS,y=ui(e,this.rotation,0),k=d.styledMode?n&&Oe.prototype.getStyle.call(n,"font-size"):p.fontSize;if(ni(c)&&((r=c.toString()).indexOf("<")===-1&&(r=r.replace(/\d/g,"0")),r+=["",d.rootFontSize,k,y,this.textWidth,a,p.lineClamp,p.textOverflow,p.fontWeight].join(",")),r&&!t&&(i=g[r]),!i||i.polygon){if(x||d.forExport){try{o=this.fakeTS&&function(P){let T=n.querySelector(".highcharts-text-outline");T&&po(T,{display:P})},Go(o)&&o("none"),i=n.getBBox?ti({},n.getBBox()):{width:n.offsetWidth,height:n.offsetHeight,x:0,y:0},Go(o)&&o("")}catch{}(!i||i.width<0)&&(i={x:0,y:0,width:0,height:0})}else i=this.htmlGetBBox();s=i.height,x&&(i.height=s={"11px,17":14,"13px,20":16}[`${k||""},${Math.round(s)}`]||s),y&&(i=this.getRotatedBox(i,y));let v={bBox:i};ls(this,"afterGetBBox",v),i=v.bBox}if(r&&(c===""||i.height>0)){for(;m.length>250;)delete g[m.shift()];g[r]||m.push(r),g[r]=i}return i}getRotatedBox(t,e){let{x:i,y:s,width:o,height:r}=t,{alignValue:a,translateY:n,rotationOriginX:d=0,rotationOriginY:p=0}=this,c=Os(a),g=Number(this.element.getAttribute("y")||0)-(n?0:s),m=e*Ve,x=(e-90)*Ve,y=Math.cos(m),k=Math.sin(m),v=o*y,P=o*k,T=Math.cos(x),O=Math.sin(x),[[Y,B],[R,X]]=[d,p].map(Tt=>[Tt-Tt*y,Tt*k]),j=i+c*(o-v)+Y+X+g*T,$=j+v,Z=$-r*T,rt=Z-v,nt=s+g-c*P-B+R+g*O,pt=nt+P,bt=pt-r*O,ht=bt-P,yt=Math.min(j,$,Z,rt),de=Math.min(nt,pt,bt,ht),Ft=Math.max(j,$,Z,rt)-yt,mi=Math.max(nt,pt,bt,ht)-de;return{x:yt,y:de,width:Ft,height:mi,polygon:[[j,nt],[$,pt],[Z,bt],[rt,ht]]}}getStyle(t){return Qe.getComputedStyle(this.element||this,"").getPropertyValue(t)}hasClass(t){return(""+this.attr("class")).split(" ").indexOf(t)!==-1}hide(){return this.attr({visibility:"hidden"})}htmlGetBBox(){return{height:0,width:0,x:0,y:0}}constructor(t,e){this.onEvents={},this.opacity=1,this.SVG_NS=Cs,this.element=e==="span"||e==="body"?Es(e):Ke.createElementNS(this.SVG_NS,e),this.renderer=t,this.styles={},ls(this,"afterInit")}on(t,e){let{onEvents:i}=this;return i[t]&&i[t](),i[t]=Ls(this.element,t,e),this}opacitySetter(t,e,i){let s=Number(Number(t).toFixed(3));this.opacity=s,i.setAttribute(e,s)}reAlign(){this.alignOptions?.width&&this.alignOptions.align!=="left"&&(this.alignOptions.width=this.getBBox().width,this.placed=!1,this.align())}removeClass(t){return this.attr("class",(""+this.attr("class")).replace(ne(t)?RegExp(`(^| )${t}( |$)`):t," ").replace(/ +/g," ").trim())}removeTextOutline(){let t=this.element.querySelector("tspan.highcharts-text-outline");t&&this.safeRemoveChild(t)}safeRemoveChild(t){let e=t.parentNode;e&&e.removeChild(t)}setRadialReference(t){let e=this.element.gradient&&this.renderer.gradients[this.element.gradient]||void 0;return this.element.radialReference=t,e?.radAttr&&e.animate(this.renderer.getRadialAttr(t,e.radAttr)),this}shadow(t){let{renderer:e}=this,i=Ce(this.parentGroup?.rotation===90?{offsetX:-1,offsetY:-1}:{},Ut(t)?t:{}),s=e.shadowDefinition(i);return this.attr({filter:t?`url(${e.url}#${s})`:"none"})}show(t=!0){return this.attr({visibility:t?"inherit":"visible"})}"stroke-widthSetter"(t,e,i){this[e]=t,i.setAttribute(e,t)}strokeWidth(){if(!this.renderer.styledMode)return this["stroke-width"]||0;let t=this.getStyle("stroke-width"),e=0,i;return/px$/.test(t)?e=hs(t):t!==""&&(co(i=Ke.createElementNS(Cs,"rect"),{width:t,"stroke-width":0}),this.element.parentNode.appendChild(i),e=i.getBBox().width,i.parentNode.removeChild(i)),e}symbolAttr(t){let e=this;Oe.symbolCustomAttribs.forEach(function(i){e[i]=ui(t[i],e[i])}),e.attr({d:e.renderer.symbols[e.symbolName](e.x,e.y,e.width,e.height,e)})}textSetter(t){t!==this.textStr&&(delete this.textPxLength,this.textStr=t,this.added&&this.renderer.buildText(this),this.reAlign())}titleSetter(t){let e=this.element,i=e.getElementsByTagName("title")[0]||Ke.createElementNS(this.SVG_NS,"title");e.insertBefore?e.insertBefore(i,e.firstChild):e.appendChild(i),i.textContent=An(ui(t,""),[/<[^>]*>/g,""]).replace(/</g,"<").replace(/>/g,">")}toFront(){let t=this.element;return t.parentNode.appendChild(t),this}translate(t,e){return this.attr({translateX:t,translateY:e})}updateTransform(t="transform"){let{element:e,foreignObject:i,matrix:s,padding:o,rotation:r=0,rotationOriginX:a,rotationOriginY:n,scaleX:d,scaleY:p,text:c,translateX:g=0,translateY:m=0}=this,x=["translate("+g+","+m+")"];ni(s)&&x.push("matrix("+s.join(",")+")"),r&&(x.push("rotate("+r+" "+(a??e.getAttribute("x")??this.x??0)+" "+(n??e.getAttribute("y")??this.y??0)+")"),c?.element.tagName!=="SPAN"||c?.foreignObject||c.attr({rotation:r,rotationOriginX:(a||0)-o,rotationOriginY:(n||0)-o})),(ni(d)||ni(p))&&x.push("scale("+ui(d,1)+" "+ui(p,1)+")"),x.length&&!(c||this).textPath&&(i?.element||e).setAttribute(t,x.join(" "))}visibilitySetter(t,e,i){t==="inherit"?i.removeAttribute(e):this[e]!==t&&i.setAttribute(e,t),this[e]=t}xGetter(t){return this.element.nodeName==="circle"&&(t==="x"?t="cx":t==="y"&&(t="cy")),this._defaultGetter(t)}zIndexSetter(t,e){let i=this.renderer,s=this.parentGroup,o=(s||i).element||i.box,r=this.element,a=o===i.box,n,d,p,c=!1,g,m=this.added,x;if(ni(t)?(r.setAttribute("data-z-index",t),t*=1,this[e]===t&&(m=!1)):ni(this[e])&&r.removeAttribute("data-z-index"),this[e]=t,m){for((t=this.zIndex)&&s&&(s.handleZ=!0),x=(n=o.childNodes).length-1;x>=0&&!c;x--)g=!ni(p=(d=n[x]).getAttribute("data-z-index")),d!==r&&(t<0&&g&&!a&&!x?(o.insertBefore(r,n[x]),c=!0):(hs(p)<=t||g&&(!ni(t)||t>=0))&&(o.insertBefore(r,n[x+1]),c=!0));c||(o.insertBefore(r,n[3*!!a]),c=!0)}return c}}Oe.symbolCustomAttribs=["anchorX","anchorY","clockwise","end","height","innerR","r","start","width","x","y"],Oe.prototype.strokeSetter=Oe.prototype.fillSetter,Oe.prototype.yGetter=Oe.prototype.xGetter,Oe.prototype.matrixSetter=Oe.prototype.rotationOriginXSetter=Oe.prototype.rotationOriginYSetter=Oe.prototype.rotationSetter=Oe.prototype.scaleXSetter=Oe.prototype.scaleYSetter=Oe.prototype.translateXSetter=Oe.prototype.translateYSetter=Oe.prototype.verticalAlignSetter=function(l,t){this[t]=l,this.doTransform=!0};let Zi=Oe,{defined:ya,extend:Sn,getAlignFactor:va,isNumber:gi,merge:Tn,pick:mr,removeEvent:ka}=mt;class Zs extends Zi{constructor(t,e,i,s,o,r,a,n,d,p){let c;super(t,"g"),this.paddingLeftSetter=this.paddingSetter,this.paddingRightSetter=this.paddingSetter,this.doUpdate=!1,this.textStr=e,this.x=i,this.y=s,this.anchorX=r,this.anchorY=a,this.baseline=d,this.className=p,this.addClass(p==="button"?"highcharts-no-tooltip":"highcharts-label"),p&&this.addClass("highcharts-"+p),this.text=t.text(void 0,0,0,n).attr({zIndex:1}),typeof o=="string"&&((c=/^url\((.*?)\)$/.test(o))||this.renderer.symbols[o])&&(this.symbolKey=o),this.bBox=Zs.emptyBBox,this.padding=3,this.baselineOffset=0,this.needsBox=t.styledMode||c,this.deferredAttr={},this.alignFactor=0}alignSetter(t){let e=va(t);this.textAlign=t,e!==this.alignFactor&&(this.alignFactor=e,this.bBox&&gi(this.xSetting)&&this.attr({x:this.xSetting}))}anchorXSetter(t,e){this.anchorX=t,this.boxAttr(e,Math.round(t)-this.getCrispAdjust()-this.xSetting)}anchorYSetter(t,e){this.anchorY=t,this.boxAttr(e,t-this.ySetting)}boxAttr(t,e){this.box?this.box.attr(t,e):this.deferredAttr[t]=e}css(t){if(t){let e={};t=Tn(t),Zs.textProps.forEach(i=>{t[i]!==void 0&&(e[i]=t[i],delete t[i])}),this.text.css(e),"fontSize"in e||"fontWeight"in e?this.updateTextPadding():("width"in e||"textOverflow"in e)&&this.updateBoxSize()}return Zi.prototype.css.call(this,t)}destroy(){ka(this.element,"mouseenter"),ka(this.element,"mouseleave"),this.text&&this.text.destroy(),this.box&&(this.box=this.box.destroy()),Zi.prototype.destroy.call(this)}fillSetter(t,e){t&&(this.needsBox=!0),this.fill=t,this.boxAttr(e,t)}getBBox(t,e){this.textStr&&this.bBox.width===0&&this.bBox.height===0&&this.updateBoxSize();let{padding:i,height:s=0,translateX:o=0,translateY:r=0,width:a=0}=this,n=mr(this.paddingLeft,i),d=e??(this.rotation||0),p={width:a,height:s,x:o+this.bBox.x-n,y:r+this.bBox.y-i+this.baselineOffset};return d&&(p=this.getRotatedBox(p,d)),p}getCrispAdjust(){return(this.renderer.styledMode&&this.box?this.box.strokeWidth():this["stroke-width"]?parseInt(this["stroke-width"],10):0)%2/2}heightSetter(t){this.heightSetting=t,this.doUpdate=!0}afterSetters(){super.afterSetters(),this.doUpdate&&(this.updateBoxSize(),this.doUpdate=!1)}onAdd(){this.text.add(this),this.attr({text:mr(this.textStr,""),x:this.x||0,y:this.y||0}),this.box&&ya(this.anchorX)&&this.attr({anchorX:this.anchorX,anchorY:this.anchorY})}paddingSetter(t,e){gi(t)?t!==this[e]&&(this[e]=t,this.updateTextPadding()):this[e]=void 0}rSetter(t,e){this.boxAttr(e,t)}strokeSetter(t,e){this.stroke=t,this.boxAttr(e,t)}"stroke-widthSetter"(t,e){t&&(this.needsBox=!0),this["stroke-width"]=t,this.boxAttr(e,t)}"text-alignSetter"(t){this.textAlign=this["text-align"]=t,this.updateTextPadding()}textSetter(t){t!==void 0&&this.text.attr({text:t}),this.updateTextPadding(),this.reAlign()}updateBoxSize(){let t,e=this.text,i={},s=this.padding,o=this.bBox=(!gi(this.widthSetting)||!gi(this.heightSetting)||this.textAlign)&&ya(e.textStr)?e.getBBox(void 0,0):Zs.emptyBBox;this.width=this.getPaddedWidth(),this.height=(this.heightSetting||o.height||0)+2*s;let r=this.renderer.fontMetrics(e);if(this.baselineOffset=s+Math.min((this.text.firstLineMetrics||r).b,o.height||1/0),this.heightSetting&&(this.baselineOffset+=(this.heightSetting-r.h)/2),this.needsBox&&!e.textPath){if(!this.box){let a=this.box=this.symbolKey?this.renderer.symbol(this.symbolKey):this.renderer.rect();a.addClass((this.className==="button"?"":"highcharts-label-box")+(this.className?" highcharts-"+this.className+"-box":"")),a.add(this)}i.x=t=this.getCrispAdjust(),i.y=(this.baseline?-this.baselineOffset:0)+t,i.width=Math.round(this.width),i.height=Math.round(this.height),this.box.attr(Sn(i,this.deferredAttr)),this.deferredAttr={}}}updateTextPadding(){let t=this.text,e=t.styles.textAlign||this.textAlign;if(!t.textPath){this.updateBoxSize();let i=this.baseline?0:this.baselineOffset,s=(this.paddingLeft??this.padding)+va(e)*(this.widthSetting??this.bBox.width);(s!==t.x||i!==t.y)&&(t.attr({align:e,x:s}),i!==void 0&&t.attr("y",i)),t.x=s,t.y=i}}widthSetter(t){this.widthSetting=gi(t)?t:void 0,this.doUpdate=!0}getPaddedWidth(){let t=this.padding,e=mr(this.paddingLeft,t),i=mr(this.paddingRight,t);return(this.widthSetting||this.bBox.width||0)+e+i}xSetter(t){this.x=t,this.alignFactor&&(t-=this.alignFactor*this.getPaddedWidth(),this["forceAnimate:x"]=!0),this.xSetting=Math.round(t),this.attr("translateX",this.xSetting)}ySetter(t){this.ySetting=this.y=Math.round(t),this.attr("translateY",this.ySetting)}}Zs.emptyBBox={width:0,height:0,x:0,y:0},Zs.textProps=["color","direction","fontFamily","fontSize","fontStyle","fontWeight","lineClamp","lineHeight","textAlign","textDecoration","textOutline","textOverflow","whiteSpace","width"];let{defined:Ma,isNumber:wa,pick:jo}=mt;function Aa(l,t,e,i,s){let o=[];if(s){let r=s.start||0,a=s.end||0,n=jo(s.r,e),d=jo(s.r,i||e),p=2e-4/(s.borderRadius?1:Math.max(n,1)),c=Math.abs(a-r-2*Math.PI)<p;c&&(r=Math.PI/2,a=2.5*Math.PI-p);let g=s.innerR,m=jo(s.open,c),x=Math.cos(r),y=Math.sin(r),k=Math.cos(a),v=Math.sin(a),P=jo(s.longArc,a-r-Math.PI<p?0:1),T=["A",n,d,0,P,jo(s.clockwise,1),l+n*k,t+d*v];T.params={start:r,end:a,cx:l,cy:t},o.push(["M",l+n*x,t+d*y],T),Ma(g)&&((T=["A",g,g,0,P,Ma(s.clockwise)?1-s.clockwise:0,l+g*x,t+g*y]).params={start:a,end:r,cx:l,cy:t},o.push(m?["M",l+g*k,t+g*v]:["L",l+g*k,t+g*v],T)),m||o.push(["Z"])}return o}function Pa(l,t,e,i,s){return s?.r?ds(l,t,e,i,s):[["M",l,t],["L",l+e,t],["L",l+e,t+i],["L",l,t+i],["Z"]]}function ds(l,t,e,i,s){let o=s?.r||0;return[["M",l+o,t],["L",l+e-o,t],["A",o,o,0,0,1,l+e,t+o],["L",l+e,t+i-o],["A",o,o,0,0,1,l+e-o,t+i],["L",l+o,t+i],["A",o,o,0,0,1,l,t+i-o],["L",l,t+o],["A",o,o,0,0,1,l+o,t],["Z"]]}let Sa={arc:Aa,callout:function(l,t,e,i,s){let o=Math.min(s?.r||0,e,i),r=o+6,a=s?.anchorX,n=s?.anchorY||0,d=ds(l,t,e,i,{r:o});if(!wa(a)||a<e&&a>0&&n<i&&n>0)return d;if(l+a>e-r)if(n>t+r&&n<t+i-r)d.splice(3,1,["L",l+e,n-6],["L",l+e+6,n],["L",l+e,n+6],["L",l+e,t+i-o]);else if(a<e){let p=n<t+r,c=p?t:t+i;d.splice(p?2:5,0,["L",a,n],["L",l+e-o,c])}else d.splice(3,1,["L",l+e,i/2],["L",a,n],["L",l+e,i/2],["L",l+e,t+i-o]);else if(l+a<r)if(n>t+r&&n<t+i-r)d.splice(7,1,["L",l,n+6],["L",l-6,n],["L",l,n-6],["L",l,t+o]);else if(a>0){let p=n<t+r,c=p?t:t+i;d.splice(p?1:6,0,["L",a,n],["L",l+o,c])}else d.splice(7,1,["L",l,i/2],["L",a,n],["L",l,i/2],["L",l,t+o]);else n>i&&a<e-r?d.splice(5,1,["L",a+6,t+i],["L",a,t+i+6],["L",a-6,t+i],["L",l+o,t+i]):n<0&&a>r&&d.splice(1,1,["L",a-6,t],["L",a,t-6],["L",a+6,t],["L",e-o,t]);return d},circle:function(l,t,e,i){return Aa(l+e/2,t+i/2,e/2,i/2,{start:.5*Math.PI,end:2.5*Math.PI,open:!1})},diamond:function(l,t,e,i){return[["M",l+e/2,t],["L",l+e,t+i/2],["L",l+e/2,t+i],["L",l,t+i/2],["Z"]]},rect:Pa,roundedRect:ds,square:Pa,triangle:function(l,t,e,i){return[["M",l+e/2,t],["L",l+e,t+i],["L",l,t+i],["Z"]]},"triangle-down":function(l,t,e,i){return[["M",l,t],["L",l+e,t],["L",l+e/2,t+i],["Z"]]}},{doc:Vo,SVG_NS:Ta,win:Hr}=V,{attr:Fr,extend:Cn,fireEvent:Is,isString:Gr,objectEach:Ca,pick:Ln}=mt,Ur=(l,t)=>l.substring(0,t)+"\u2026",La=class{constructor(l){let t=l.styles;this.renderer=l.renderer,this.svgElement=l,this.width=l.textWidth,this.textLineHeight=t?.lineHeight,this.textOutline=t?.textOutline,this.ellipsis=t?.textOverflow==="ellipsis",this.lineClamp=t?.lineClamp,this.noWrap=t?.whiteSpace==="nowrap"}buildSVG(){let l=this.svgElement,t=l.element,e=l.renderer,i=Ln(l.textStr,"").toString(),s=i.indexOf("<")!==-1,o=t.childNodes,r=!l.added&&e.box,a=[i,this.ellipsis,this.noWrap,this.textLineHeight,this.textOutline,l.getStyle("font-size"),l.styles.lineClamp,this.width].join(",");if(a!==l.textCache){l.textCache=a,delete l.actualWidth;for(let n=o.length;n--;)t.removeChild(o[n]);if(s||this.ellipsis||this.width||l.textPath||i.indexOf(" ")!==-1&&(!this.noWrap||/<br.*?>/g.test(i))){if(i!==""){r&&r.appendChild(t);let n=new Pt(i);this.modifyTree(n.nodes),n.addToDOM(t),this.modifyDOM(),this.ellipsis&&(t.textContent||"").indexOf("\u2026")!==-1&&l.attr("title",this.unescapeEntities(l.textStr||"",["<",">"])),r&&r.removeChild(t)}}else t.appendChild(Vo.createTextNode(this.unescapeEntities(i)));Gr(this.textOutline)&&l.applyTextOutline&&l.applyTextOutline(this.textOutline)}}modifyDOM(){let l,t=this.svgElement,e=Fr(t.element,"x");for(t.firstLineMetrics=void 0;(l=t.element.firstChild)&&/^[\s\u200B]*$/.test(l.textContent||" ");)t.element.removeChild(l);[].forEach.call(t.element.querySelectorAll("tspan.highcharts-br"),(r,a)=>{r.nextSibling&&r.previousSibling&&(a===0&&r.previousSibling.nodeType===1&&(t.firstLineMetrics=t.renderer.fontMetrics(r.previousSibling)),Fr(r,{dy:this.getLineHeight(r.nextSibling),x:e}))});let i=this.width||0;if(!i)return;let s=(r,a)=>{let n=r.textContent||"",d=n.replace(/([^\^])-/g,"$1- ").split(" "),p=!this.noWrap&&(d.length>1||t.element.childNodes.length>1),c=this.getLineHeight(a),g=Math.max(0,i-.8*c),m=0,x=t.actualWidth;if(p){let y=[],k=[];for(;a.firstChild&&a.firstChild!==r;)k.push(a.firstChild),a.removeChild(a.firstChild);for(;d.length;)if(d.length&&!this.noWrap&&m>0&&(y.push(r.textContent||""),r.textContent=d.join(" ").replace(/- /g,"-")),this.truncate(r,void 0,d,m===0&&x||0,i,g,(v,P)=>d.slice(0,P).join(" ").replace(/- /g,"-")),x=t.actualWidth,m++,this.lineClamp&&m>=this.lineClamp){d.length&&(this.truncate(r,r.textContent||"",void 0,0,i,g,Ur),r.textContent=r.textContent?.replace("\u2026","")+"\u2026");break}k.forEach(v=>{a.insertBefore(v,r)}),y.forEach(v=>{a.insertBefore(Vo.createTextNode(v),r);let P=Vo.createElementNS(Ta,"tspan");P.textContent="\u200B",Fr(P,{dy:c,x:e}),a.insertBefore(P,r)})}else this.ellipsis&&n&&this.truncate(r,n,void 0,0,i,g,Ur)},o=r=>{[].slice.call(r.childNodes).forEach(a=>{a.nodeType===Hr.Node.TEXT_NODE?s(a,r):(a.className.baseVal.indexOf("highcharts-br")!==-1&&(t.actualWidth=0),o(a))})};o(t.element)}getLineHeight(l){let t=l.nodeType===Hr.Node.TEXT_NODE?l.parentElement:l;return this.textLineHeight?parseInt(this.textLineHeight.toString(),10):this.renderer.fontMetrics(t||this.svgElement.element).h}modifyTree(l){let t=(e,i)=>{let{attributes:s={},children:o,style:r={},tagName:a}=e,n=this.renderer.styledMode;if(a==="b"||a==="strong"?n?s.class="highcharts-strong":r.fontWeight="bold":(a==="i"||a==="em")&&(n?s.class="highcharts-emphasized":r.fontStyle="italic"),r?.color&&(r.fill=r.color),a==="br"){s.class="highcharts-br",e.textContent="\u200B";let d=l[i+1];d?.textContent&&(d.textContent=d.textContent.replace(/^ +/gm,""))}else a==="a"&&o&&o.some(d=>d.tagName==="#text")&&(e.children=[{children:o,tagName:"tspan"}]);a!=="#text"&&a!=="a"&&(e.tagName="tspan"),Cn(e,{attributes:s,style:r}),o&&o.filter(d=>d.tagName!=="#text").forEach(t)};l.forEach(t),Is(this.svgElement,"afterModifyTree",{nodes:l})}truncate(l,t,e,i,s,o,r){let a,n,d=this.svgElement,{rotation:p}=d,c=[],g=e&&!i?1:0,m=(t||e||"").length,x=m;e||(s=o);let y=function(k,v){let P=v||k,T=l.parentNode;if(T&&c[P]===void 0&&T.getSubStringLength)try{c[P]=i+T.getSubStringLength(0,e?P+1:P)}catch{}return c[P]};if(d.rotation=0,i+(n=y(l.textContent.length))>s){for(;g<=m;)x=Math.ceil((g+m)/2),e&&(a=r(e,x)),n=y(x,a&&a.length-1),g===m?g=m+1:n>s?m=x-1:g=x;m===0?l.textContent="":t&&m===t.length-1||(l.textContent=a||r(t||e,x)),this.ellipsis&&n>s&&this.truncate(l,l.textContent||"",void 0,0,s,o,Ur)}e&&e.splice(0,x),d.actualWidth=n,d.rotation=p}unescapeEntities(l,t){return Ca(this.renderer.escapes,function(e,i){t&&t.indexOf(e)!==-1||(l=l.toString().replace(RegExp(e,"g"),i))}),l}},{defaultOptions:En}=Ze,{charts:On,deg2rad:_o,doc:uo,isFirefox:Ea,isMS:Oa,isWebKit:In,noop:Nn,SVG_NS:Dn,symbolSizes:qo,win:jr}=V,{addEvent:xr,attr:$o,createElement:Rn,crisp:Ia,css:br,defined:Ks,destroyObjectProperties:Na,extend:Ns,isArray:Ds,isNumber:Rs,isObject:Zo,isString:zn,merge:Vr,pick:yr,pInt:zs,replaceNested:Da,uniqueKey:Bn}=mt;class Ko{constructor(t,e,i,s,o,r,a){let n,d;this.x=0,this.y=0;let p=this.createElement("svg").attr({version:"1.1",class:"highcharts-root"}),c=p.element;a||p.css(this.getStyle(s||{})),t.appendChild(c),$o(t,"dir","ltr"),t.innerHTML.indexOf("xmlns")===-1&&$o(c,"xmlns",this.SVG_NS),this.box=c,this.boxWrapper=p,this.alignedObjects=[],this.url=this.getReferenceURL(),this.createElement("desc").add().element.appendChild(uo.createTextNode("Created with Highcharts 12.2.0")),this.defs=this.createElement("defs").add(),this.allowHTML=r,this.forExport=o,this.styledMode=a,this.gradients={},this.cache={},this.cacheKeys=[],this.imgCount=0,this.rootFontSize=p.getStyle("font-size"),this.setSize(e,i,!1),Ea&&t.getBoundingClientRect&&((n=function(){br(t,{left:0,top:0}),d=t.getBoundingClientRect(),br(t,{left:Math.ceil(d.left)-d.left+"px",top:Math.ceil(d.top)-d.top+"px"})})(),this.unSubPixelFix=xr(jr,"resize",n))}definition(t){return new Pt([t]).addToDOM(this.defs.element)}getReferenceURL(){if((Ea||In)&&uo.getElementsByTagName("base").length){if(!Ks(qt)){let t=Bn(),e=new Pt([{tagName:"svg",attributes:{width:8,height:8},children:[{tagName:"defs",children:[{tagName:"clipPath",attributes:{id:t},children:[{tagName:"rect",attributes:{width:4,height:4}}]}]},{tagName:"rect",attributes:{id:"hitme",width:8,height:8,"clip-path":`url(#${t})`,fill:"rgba(0,0,0,0.001)"}}]}]).addToDOM(uo.body);br(e,{position:"fixed",top:0,left:0,zIndex:9e5}),qt=uo.elementFromPoint(6,6)?.id==="hitme",uo.body.removeChild(e)}if(qt)return Da(jr.location.href.split("#")[0],[/<[^>]*>/g,""],[/([\('\)])/g,"\\$1"],[/ /g,"%20"])}return""}getStyle(t){return this.style=Ns({fontFamily:'-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", sans-serif',fontSize:"1rem"},t),this.style}setStyle(t){this.boxWrapper.css(this.getStyle(t))}isHidden(){return!this.boxWrapper.getBBox().width}destroy(){let t=this.defs;return this.box=null,this.boxWrapper=this.boxWrapper.destroy(),Na(this.gradients||{}),this.gradients=null,this.defs=t.destroy(),this.unSubPixelFix&&this.unSubPixelFix(),this.alignedObjects=null,null}createElement(t){return new this.Element(this,t)}getRadialAttr(t,e){return{cx:t[0]-t[2]/2+(e.cx||0)*t[2],cy:t[1]-t[2]/2+(e.cy||0)*t[2],r:(e.r||0)*t[2]}}shadowDefinition(t){let e=[`highcharts-drop-shadow-${this.chartIndex}`,...Object.keys(t).map(s=>`${s}-${t[s]}`)].join("-").toLowerCase().replace(/[^a-z\d\-]/g,""),i=Vr({color:"#000000",offsetX:1,offsetY:1,opacity:.15,width:5},t);return this.defs.element.querySelector(`#${e}`)||this.definition({tagName:"filter",attributes:{id:e,filterUnits:i.filterUnits},children:this.getShadowFilterContent(i)}),e}getShadowFilterContent(t){return[{tagName:"feDropShadow",attributes:{dx:t.offsetX,dy:t.offsetY,"flood-color":t.color,"flood-opacity":Math.min(5*t.opacity,1),stdDeviation:t.width/2}}]}buildText(t){new La(t).buildSVG()}getContrast(t){let e=$t.parse(t).rgba,i=" clamp(0,calc(9e9*(0.5 - (0.2126*r + 0.7152*g + 0.0722*b))),1)";if(Rs(e[0])||!$t.useColorMix){let s=e.map(r=>{let a=r/255;return a<=.04?a/12.92:Math.pow((a+.055)/1.055,2.4)}),o=.2126*s[0]+.7152*s[1]+.0722*s[2];return 1.05/(o+.05)>(o+.05)/.05?"#FFFFFF":"#000000"}return"color(from "+t+" srgb"+i+i+i+")"}button(t,e,i,s,o={},r,a,n,d,p){let c=this.label(t,e,i,d,void 0,void 0,p,void 0,"button"),g=this.styledMode,m=arguments,x=0;o=Vr(En.global.buttonTheme,o),g&&(delete o.fill,delete o.stroke,delete o["stroke-width"]);let y=o.states||{},k=o.style||{};delete o.states,delete o.style;let v=[Pt.filterUserAttributes(o)],P=[k];return g||["hover","select","disabled"].forEach((T,O)=>{v.push(Vr(v[0],Pt.filterUserAttributes(m[O+5]||y[T]||{}))),P.push(v[O+1].style),delete v[O+1].style}),xr(c.element,Oa?"mouseover":"mouseenter",function(){x!==3&&c.setState(1)}),xr(c.element,Oa?"mouseout":"mouseleave",function(){x!==3&&c.setState(x)}),c.setState=(T=0)=>{if(T!==1&&(c.state=x=T),c.removeClass(/highcharts-button-(normal|hover|pressed|disabled)/).addClass("highcharts-button-"+["normal","hover","pressed","disabled"][T]),!g){c.attr(v[T]);let O=P[T];Zo(O)&&c.css(O)}},c.attr(v[0]),!g&&(c.css(Ns({cursor:"default"},k)),p&&c.text.css({pointerEvents:"none"})),c.on("touchstart",T=>T.stopPropagation()).on("click",function(T){x!==3&&s?.call(c,T)})}crispLine(t,e){let[i,s]=t;return Ks(i[1])&&i[1]===s[1]&&(i[1]=s[1]=Ia(i[1],e)),Ks(i[2])&&i[2]===s[2]&&(i[2]=s[2]=Ia(i[2],e)),t}path(t){let e=this.styledMode?{}:{fill:"none"};return Ds(t)?e.d=t:Zo(t)&&Ns(e,t),this.createElement("path").attr(e)}circle(t,e,i){let s=Zo(t)?t:t===void 0?{}:{x:t,y:e,r:i},o=this.createElement("circle");return o.xSetter=o.ySetter=function(r,a,n){n.setAttribute("c"+a,r)},o.attr(s)}arc(t,e,i,s,o,r){let a;Zo(t)?(e=(a=t).y,i=a.r,s=a.innerR,o=a.start,r=a.end,t=a.x):a={innerR:s,start:o,end:r};let n=this.symbol("arc",t,e,i,i,a);return n.r=i,n}rect(t,e,i,s,o,r){let a=Zo(t)?t:t===void 0?{}:{x:t,y:e,r:o,width:Math.max(i||0,0),height:Math.max(s||0,0)},n=this.createElement("rect");return this.styledMode||(r!==void 0&&(a["stroke-width"]=r,Ns(a,n.crisp(a))),a.fill="none"),n.rSetter=function(d,p,c){n.r=d,$o(c,{rx:d,ry:d})},n.rGetter=function(){return n.r||0},n.attr(a)}roundedRect(t){return this.symbol("roundedRect").attr(t)}setSize(t,e,i){this.width=t,this.height=e,this.boxWrapper.animate({width:t,height:e},{step:function(){this.attr({viewBox:"0 0 "+this.attr("width")+" "+this.attr("height")})},duration:yr(i,!0)?void 0:0}),this.alignElements()}g(t){let e=this.createElement("g");return t?e.attr({class:"highcharts-"+t}):e}image(t,e,i,s,o,r){let a={preserveAspectRatio:"none"};Rs(e)&&(a.x=e),Rs(i)&&(a.y=i),Rs(s)&&(a.width=s),Rs(o)&&(a.height=o);let n=this.createElement("image").attr(a),d=function(p){n.attr({href:t}),r.call(n,p)};if(r){n.attr({href:"data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw=="});let p=new jr.Image;xr(p,"load",d),p.src=t,p.complete&&d({})}else n.attr({href:t});return n}symbol(t,e,i,s,o,r){let a,n,d,p,c=this,g=/^url\((.*?)\)$/,m=g.test(t),x=!m&&(this.symbols[t]?t:"circle"),y=x&&this.symbols[x];if(y)typeof e=="number"&&(n=y.call(this.symbols,e||0,i||0,s||0,o||0,r)),a=this.path(n),c.styledMode||a.attr("fill","none"),Ns(a,{symbolName:x||void 0,x:e,y:i,width:s,height:o}),r&&Ns(a,r);else if(m){d=t.match(g)[1];let k=a=this.image(d);k.imgwidth=yr(r?.width,qo[d]?.width),k.imgheight=yr(r?.height,qo[d]?.height),p=v=>v.attr({width:v.width,height:v.height}),["width","height"].forEach(v=>{k[`${v}Setter`]=function(P,T){this[T]=P;let{alignByTranslate:O,element:Y,width:B,height:R,imgwidth:X,imgheight:j}=this,$=T==="width"?X:j,Z=1;r&&r.backgroundSize==="within"&&B&&R&&X&&j?(Z=Math.min(B/X,R/j),$o(Y,{width:Math.round(X*Z),height:Math.round(j*Z)})):Y&&$&&Y.setAttribute(T,$),!O&&X&&j&&this.translate(((B||0)-X*Z)/2,((R||0)-j*Z)/2)}}),Ks(e)&&k.attr({x:e,y:i}),k.isImg=!0,k.symbolUrl=t,Ks(k.imgwidth)&&Ks(k.imgheight)?p(k):(k.attr({width:0,height:0}),Rn("img",{onload:function(){let v=On[c.chartIndex];this.width===0&&(br(this,{position:"absolute",top:"-999em"}),uo.body.appendChild(this)),qo[d]={width:this.width,height:this.height},k.imgwidth=this.width,k.imgheight=this.height,k.element&&p(k),this.parentNode&&this.parentNode.removeChild(this),c.imgCount--,c.imgCount||!v||v.hasLoaded||v.onload()},src:d}),this.imgCount++)}return a}clipRect(t,e,i,s){return this.rect(t,e,i,s,0)}text(t,e,i,s){let o={};if(s&&(this.allowHTML||!this.forExport))return this.html(t,e,i);o.x=Math.round(e||0),i&&(o.y=Math.round(i)),Ks(t)&&(o.text=t);let r=this.createElement("text").attr(o);return s&&(!this.forExport||this.allowHTML)||(r.xSetter=function(a,n,d){let p=d.getElementsByTagName("tspan"),c=d.getAttribute(n);for(let g=0,m;g<p.length;g++)(m=p[g]).getAttribute(n)===c&&m.setAttribute(n,a);d.setAttribute(n,a)}),r}fontMetrics(t){let e=zs(Zi.prototype.getStyle.call(t,"font-size")||0),i=e<24?e+3:Math.round(1.2*e),s=Math.round(.8*i);return{h:i,b:s,f:e}}rotCorr(t,e,i){let s=t;return e&&i&&(s=Math.max(s*Math.cos(e*_o),4)),{x:-t/3*Math.sin(e*_o),y:s}}pathToSegments(t){let e=[],i=[],s={A:8,C:7,H:2,L:3,M:3,Q:5,S:5,T:3,V:2};for(let o=0;o<t.length;o++)zn(i[0])&&Rs(t[o])&&i.length===s[i[0].toUpperCase()]&&t.splice(o,0,i[0].replace("M","L").replace("m","l")),typeof t[o]=="string"&&(i.length&&e.push(i.slice(0)),i.length=0),i.push(t[o]);return e.push(i.slice(0)),e}label(t,e,i,s,o,r,a,n,d){return new Zs(this,t,e,i,s,o,r,a,n,d)}alignElements(){this.alignedObjects.forEach(t=>t.align())}}Ns(Ko.prototype,{Element:Zi,SVG_NS:Dn,escapes:{"&":"&","<":"<",">":">","'":"'",'"':"""},symbols:Sa,draw:Nn}),ri.registerRendererType("svg",Ko,!0);let{composed:Ra,isFirefox:Qo}=V,{attr:vr,css:zi,createElement:Xn,defined:za,extend:Ba,getAlignFactor:Xa,isNumber:kr,pInt:Yn,pushUnique:_r}=mt;function Ya(l,t,e){let i=this.div?.style||e.style;Zi.prototype[`${t}Setter`].call(this,l,t,e),i&&(i[t]=l)}let go=(l,t)=>{if(!l.div){let e=vr(l.element,"class"),i=l.css,s=Xn("div",e?{className:e}:void 0,ga(ts({position:"absolute",left:`${l.translateX||0}px`,top:`${l.translateY||0}px`},l.styles),{display:l.display,opacity:l.opacity,visibility:l.visibility}),l.parentGroup?.div||t);l.classSetter=(o,r,a)=>{a.setAttribute("class",o),s.className=o},l.translateXSetter=l.translateYSetter=(o,r)=>{l[r]=o,s.style[r==="translateX"?"left":"top"]=`${o}px`,l.doTransform=!0},l.opacitySetter=l.visibilitySetter=Ya,l.css=o=>(i.call(l,o),o.cursor&&(s.style.cursor=o.cursor),o.pointerEvents&&(s.style.pointerEvents=o.pointerEvents),l),l.on=function(){return Zi.prototype.on.apply({element:s,onEvents:l.onEvents},arguments),l},l.div=s}return l.div};class fo extends Zi{static compose(t){_r(Ra,this.compose)&&(t.prototype.html=function(e,i,s){return new fo(this,"span").attr({text:e,x:Math.round(i),y:Math.round(s)})})}constructor(t,e){super(t,e),fo.useForeignObject?this.foreignObject=t.createElement("foreignObject").attr({zIndex:2}):this.css(ts({position:"absolute"},t.styledMode?{}:{fontFamily:t.style.fontFamily,fontSize:t.style.fontSize})),this.element.style.whiteSpace="nowrap"}getSpanCorrection(t,e,i){this.xCorr=-t*i,this.yCorr=-e}css(t){let e,{element:i}=this,s=i.tagName==="SPAN"&&t&&"width"in t,o=s&&t.width;return s&&(delete t.width,this.textWidth=Yn(o)||void 0,e=!0),t?.textOverflow==="ellipsis"&&(t.overflow="hidden",t.whiteSpace="nowrap"),t?.lineClamp&&(t.display="-webkit-box",t.WebkitLineClamp=t.lineClamp,t.WebkitBoxOrient="vertical",t.overflow="hidden"),kr(Number(t?.fontSize))&&(t.fontSize+="px"),Ba(this.styles,t),zi(i,t),e&&this.updateTransform(),this}htmlGetBBox(){let{element:t}=this;return{x:t.offsetLeft,y:t.offsetTop,width:t.offsetWidth,height:t.offsetHeight}}updateTransform(){if(!this.added){this.alignOnAdd=!0;return}let{element:t,foreignObject:e,oldTextWidth:i,renderer:s,rotation:o,rotationOriginX:r,rotationOriginY:a,scaleX:n,scaleY:d,styles:{display:p="inline-block",whiteSpace:c},textAlign:g="left",textWidth:m,translateX:x=0,translateY:y=0,x:k=0,y:v=0}=this;if(e||zi(t,{marginLeft:`${x}px`,marginTop:`${y}px`}),t.tagName==="SPAN"){let P,T=[o,g,t.innerHTML,m,this.textAlign].join(","),O=-(this.parentGroup?.padding*1)||0;if(m!==i){let X=this.textPxLength?this.textPxLength:(zi(t,{width:"",whiteSpace:c||"nowrap"}),t.offsetWidth),j=m||0,$=t.style.textOverflow===""&&t.style.webkitLineClamp;(j>i||X>j||$)&&(/[\-\s\u00AD]/.test(t.textContent||t.innerText)||t.style.textOverflow==="ellipsis")&&(zi(t,{width:(o||n||X>j||$)&&kr(m)?m+"px":"auto",display:p,whiteSpace:c||"normal"}),this.oldTextWidth=m)}e&&(zi(t,{display:"inline-block",verticalAlign:"top"}),e.attr({width:s.width,height:s.height})),T!==this.cTT&&(P=s.fontMetrics(t).b,za(o)&&!e&&(o!==(this.oldRotation||0)||g!==this.oldAlign)&&zi(t,{transform:`rotate(${o}deg)`,transformOrigin:`${O}% ${O}px`}),this.getSpanCorrection(!za(o)&&!this.textWidth&&this.textPxLength||t.offsetWidth,P,Xa(g)));let{xCorr:Y=0,yCorr:B=0}=this,R={left:`${k+Y}px`,top:`${v+B}px`,textAlign:g,transformOrigin:`${(r??k)-Y-k-O}px ${(a??v)-B-v-O}px`};(n||d)&&(R.transform=`scale(${n??1},${d??1})`),e?(super.updateTransform(),kr(k)&&kr(v)?(e.attr({x:k+Y,y:v+B,width:t.offsetWidth+3,height:t.offsetHeight,"transform-origin":t.getAttribute("transform-origin")||"0 0"}),zi(t,{display:p,textAlign:g})):Qo&&e.attr({width:0,height:0})):zi(t,R),this.cTT=T,this.oldRotation=o,this.oldAlign=g}}add(t){let{foreignObject:e,renderer:i}=this,s=i.box.parentNode,o=[];if(e)e.add(t),super.add(i.createElement("body").attr({xmlns:"http://www.w3.org/1999/xhtml"}).css({background:"transparent",margin:"0 3px 0 0"}).add(e));else{let r;if(this.parentGroup=t,t&&!(r=t.div)){let a=t;for(;a;)o.push(a),a=a.parentGroup;for(let n of o.reverse())r=go(n,s)}(r||s).appendChild(this.element)}return this.added=!0,this.alignOnAdd&&this.updateTransform(),this}textSetter(t){t!==this.textStr&&(delete this.bBox,delete this.oldTextWidth,Pt.setElementHTML(this.element,t??""),this.textStr=t,this.doTransform=!0)}alignSetter(t){this.alignValue=this.textAlign=t,this.doTransform=!0}xSetter(t,e){this[e]=t,this.doTransform=!0}}let Bi=fo.prototype;Bi.visibilitySetter=Bi.opacitySetter=Ya,Bi.ySetter=Bi.rotationSetter=Bi.rotationOriginXSetter=Bi.rotationOriginYSetter=Bi.xSetter,(function(l){l.xAxis={alignTicks:!0,allowDecimals:void 0,panningEnabled:!0,zIndex:2,zoomEnabled:!0,dateTimeLabelFormats:{millisecond:{main:"%[HMSL]",range:!1},second:{main:"%[HMS]",range:!1},minute:{main:"%[HM]",range:!1},hour:{main:"%[HM]",range:!1},day:{main:"%[eb]"},week:{main:"%[eb]"},month:{main:"%[bY]"},year:{main:"%Y"}},endOnTick:!1,gridLineDashStyle:"Solid",gridZIndex:1,labels:{autoRotationLimit:80,distance:15,enabled:!0,indentation:10,overflow:"justify",reserveSpace:void 0,rotation:void 0,staggerLines:0,step:0,useHTML:!1,zIndex:7,style:{color:"#333333",cursor:"default",fontSize:"0.8em",textOverflow:"ellipsis"}},maxPadding:.01,minorGridLineDashStyle:"Solid",minorTickLength:2,minorTickPosition:"outside",minorTicksPerMajor:5,minPadding:.01,offset:void 0,reversed:void 0,reversedStacks:!1,showEmpty:!0,showFirstLabel:!0,showLastLabel:!0,startOfWeek:1,startOnTick:!1,tickLength:10,tickPixelInterval:100,tickmarkPlacement:"between",tickPosition:"outside",title:{align:"middle",useHTML:!1,x:0,y:0,style:{color:"#666666",fontSize:"0.8em"}},visible:!0,minorGridLineColor:"#f2f2f2",minorGridLineWidth:1,minorTickColor:"#999999",lineColor:"#333333",lineWidth:1,gridLineColor:"#e6e6e6",gridLineWidth:void 0,tickColor:"#333333"},l.yAxis={reversedStacks:!0,endOnTick:!0,maxPadding:.05,minPadding:.05,tickPixelInterval:72,showLastLabel:!0,labels:{x:void 0},startOnTick:!0,title:{},stackLabels:{animation:{},allowOverlap:!1,enabled:!1,crop:!0,overflow:"justify",formatter:function(){let{numberFormatter:t}=this.axis.chart;return t(this.total||0,-1)},style:{color:"#000000",fontSize:"0.7em",fontWeight:"bold",textOutline:"1px contrast"}},gridLineWidth:1,lineWidth:0}})(xs||(xs={}));let Bs=xs,{addEvent:Wa,isFunction:Qs,objectEach:Wn,removeEvent:Hn}=mt;(bs||(bs={})).registerEventOptions=function(l,t){l.eventOptions=l.eventOptions||{},Wn(t.events,function(e,i){l.eventOptions[i]!==e&&(l.eventOptions[i]&&(Hn(l,i,l.eventOptions[i]),delete l.eventOptions[i]),Qs(e)&&(l.eventOptions[i]=e,Wa(l,i,e,{order:0})))})};let Mr=bs,{deg2rad:cs}=V,{clamp:Xi,correctFloat:wr,defined:Jo,destroyObjectProperties:Fn,extend:qr,fireEvent:tr,getAlignFactor:Gn,isNumber:Ti,merge:er,objectEach:$r,pick:ze}=mt,Js=class{constructor(l,t,e,i,s){this.isNew=!0,this.isNewLabel=!0,this.axis=l,this.pos=t,this.type=e||"",this.parameters=s||{},this.tickmarkOffset=this.parameters.tickmarkOffset,this.options=this.parameters.options,tr(this,"init"),e||i||this.addLabel()}addLabel(){let l=this,t=l.axis,e=t.options,i=t.chart,s=t.categories,o=t.logarithmic,r=t.names,a=l.pos,n=ze(l.options?.labels,e.labels),d=t.tickPositions,p=a===d[0],c=a===d[d.length-1],g=(!n.step||n.step===1)&&t.tickInterval===1,m=d.info,x=l.label,y,k,v,P=this.parameters.category||(s?ze(s[a],r[a],a):a);o&&Ti(P)&&(P=wr(o.lin2log(P))),t.dateTime&&(m?y=(k=i.time.resolveDTLFormat(e.dateTimeLabelFormats[!e.grid&&m.higherRanks[a]||m.unitName])).main:Ti(P)&&(y=t.dateTime.getXDateFormat(P,e.dateTimeLabelFormats||{}))),l.isFirst=p,l.isLast=c;let T={axis:t,chart:i,dateTimeLabelFormat:y,isFirst:p,isLast:c,pos:a,tick:l,tickPositionInfo:m,value:P};tr(this,"labelFormat",T);let O=R=>n.formatter?n.formatter.call(R,R):n.format?(R.text=t.defaultLabelFormatter.call(R),fe.format(n.format,R,i)):t.defaultLabelFormatter.call(R),Y=O.call(T,T),B=k?.list;B?l.shortenLabel=function(){for(v=0;v<B.length;v++)if(qr(T,{dateTimeLabelFormat:B[v]}),x.attr({text:O.call(T,T)}),x.getBBox().width<t.getSlotWidth(l)-2*(n.padding||0))return;x.attr({text:""})}:l.shortenLabel=void 0,g&&t._addedPlotLB&&l.moveLabel(Y,n),Jo(x)||l.movedLabel?x&&x.textStr!==Y&&!g&&(!x.textWidth||n.style.width||x.styles.width||x.css({width:null}),x.attr({text:Y}),x.textPxLength=x.getBBox().width):(l.label=x=l.createLabel(Y,n),l.rotation=0)}createLabel(l,t,e){let i=this.axis,{renderer:s,styledMode:o}=i.chart,r=t.style.whiteSpace,a=Jo(l)&&t.enabled?s.text(l,e?.x,e?.y,t.useHTML).add(i.labelGroup):void 0;return a&&(o||a.css(er(t.style)),a.textPxLength=a.getBBox().width,!o&&r&&a.css({whiteSpace:r})),a}destroy(){Fn(this,this.axis)}getPosition(l,t,e,i){let s=this.axis,o=s.chart,r=i&&o.oldChartHeight||o.chartHeight,a={x:l?wr(s.translate(t+e,void 0,void 0,i)+s.transB):s.left+s.offset+(s.opposite?(i&&o.oldChartWidth||o.chartWidth)-s.right-s.left:0),y:l?r-s.bottom+s.offset-(s.opposite?s.height:0):wr(r-s.translate(t+e,void 0,void 0,i)-s.transB)};return a.y=Xi(a.y,-1e9,1e9),tr(this,"afterGetPosition",{pos:a}),a}getLabelPosition(l,t,e,i,s,o,r,a){let n,d,p=this.axis,c=p.transA,g=p.isLinked&&p.linkedParent?p.linkedParent.reversed:p.reversed,m=p.staggerLines,x=p.tickRotCorr||{x:0,y:0},y=i||p.reserveSpaceDefault?0:-p.labelOffset*(p.labelAlign==="center"?.5:1),k=s.distance,v={};return n=p.side===0?e.rotation?-k:-e.getBBox().height:p.side===2?x.y+k:Math.cos(e.rotation*cs)*(x.y-e.getBBox(!1,0).height/2),Jo(s.y)&&(n=p.side===0&&p.horiz?s.y+n:s.y),l=l+ze(s.x,[0,1,0,-1][p.side]*k)+y+x.x-(o&&i?o*c*(g?-1:1):0),t=t+n-(o&&!i?o*c*(g?1:-1):0),m&&(d=r/(a||1)%m,p.opposite&&(d=m-d-1),t+=d*(p.labelOffset/m)),v.x=l,v.y=Math.round(t),tr(this,"afterGetLabelPosition",{pos:v,tickmarkOffset:o,index:r}),v}getLabelSize(){return this.label?this.label.getBBox()[this.axis.horiz?"height":"width"]:0}getMarkPath(l,t,e,i,s=!1,o){return o.crispLine([["M",l,t],["L",l+(s?0:-e),t+(s?e:0)]],i)}handleOverflow(l){let t=this.axis,e=t.options.labels,i=l.x,s=t.chart.chartWidth,o=t.chart.spacing,r=ze(t.labelLeft,Math.min(t.pos,o[3])),a=ze(t.labelRight,Math.max(t.isRadial?0:t.pos+t.len,s-o[1])),n=this.label,d=this.rotation,p=Gn(t.labelAlign||n.attr("align")),c=n.getBBox().width,g=t.getSlotWidth(this),m=g,x=1,y;d||e.overflow!=="justify"?d<0&&i-p*c<r?y=Math.round(i/Math.cos(d*cs)-r):d>0&&i+p*c>a&&(y=Math.round((s-i)/Math.cos(d*cs))):(i-p*c<r?m=l.x+m*(1-p)-r:i+(1-p)*c>a&&(m=a-l.x+m*p,x=-1),(m=Math.min(g,m))<g&&t.labelAlign==="center"&&(l.x+=x*(g-m-p*(g-Math.min(c,m)))),(c>m||t.autoRotation&&n?.styles?.width)&&(y=m)),y&&n&&(this.shortenLabel?this.shortenLabel():n.css(qr({},{width:Math.floor(y)+"px",lineClamp:+!t.isRadial})))}moveLabel(l,t){let e=this,i=e.label,s=e.axis,o=!1,r;i&&i.textStr===l?(e.movedLabel=i,o=!0,delete e.label):$r(s.ticks,function(a){o||a.isNew||a===e||!a.label||a.label.textStr!==l||(e.movedLabel=a.label,o=!0,a.labelPos=e.movedLabel.xy,delete a.label)}),!o&&(e.labelPos||i)&&(r=e.labelPos||i.xy,e.movedLabel=e.createLabel(l,t,r),e.movedLabel&&e.movedLabel.attr({opacity:0}))}render(l,t,e){let i=this.axis,s=i.horiz,o=this.pos,r=ze(this.tickmarkOffset,i.tickmarkOffset),a=this.getPosition(s,o,r,t),n=a.x,d=a.y,p=i.pos,c=p+i.len,g=s?n:d,m=ze(e,this.label?.newOpacity,1);!i.chart.polar&&(wr(g)<p||g>c)&&(e=0),e??(e=1),this.isActive=!0,this.renderGridLine(t,e),this.renderMark(a,e),this.renderLabel(a,t,m,l),this.isNew=!1,tr(this,"afterRender")}renderGridLine(l,t){let e=this.axis,i=e.options,s={},o=this.pos,r=this.type,a=ze(this.tickmarkOffset,e.tickmarkOffset),n=e.chart.renderer,d=this.gridLine,p,c=i.gridLineWidth,g=i.gridLineColor,m=i.gridLineDashStyle;this.type==="minor"&&(c=i.minorGridLineWidth,g=i.minorGridLineColor,m=i.minorGridLineDashStyle),d||(e.chart.styledMode||(s.stroke=g,s["stroke-width"]=c||0,s.dashstyle=m),r||(s.zIndex=1),l&&(t=0),this.gridLine=d=n.path().attr(s).addClass("highcharts-"+(r?r+"-":"")+"grid-line").add(e.gridGroup)),d&&(p=e.getPlotLinePath({value:o+a,lineWidth:d.strokeWidth(),force:"pass",old:l,acrossPanes:!1}))&&d[l||this.isNew?"attr":"animate"]({d:p,opacity:t})}renderMark(l,t){let e=this.axis,i=e.options,s=e.chart.renderer,o=this.type,r=e.tickSize(o?o+"Tick":"tick"),a=l.x,n=l.y,d=ze(i[o!=="minor"?"tickWidth":"minorTickWidth"],!o&&e.isXAxis?1:0),p=i[o!=="minor"?"tickColor":"minorTickColor"],c=this.mark,g=!c;r&&(e.opposite&&(r[0]=-r[0]),c||(this.mark=c=s.path().addClass("highcharts-"+(o?o+"-":"")+"tick").add(e.axisGroup),e.chart.styledMode||c.attr({stroke:p,"stroke-width":d})),c[g?"attr":"animate"]({d:this.getMarkPath(a,n,r[0],c.strokeWidth(),e.horiz,s),opacity:t}))}renderLabel(l,t,e,i){let s=this.axis,o=s.horiz,r=s.options,a=this.label,n=r.labels,d=n.step,p=ze(this.tickmarkOffset,s.tickmarkOffset),c=l.x,g=l.y,m=!0;a&&Ti(c)&&(a.xy=l=this.getLabelPosition(c,g,a,o,n,p,i,d),(!this.isFirst||this.isLast||r.showFirstLabel)&&(!this.isLast||this.isFirst||r.showLastLabel)?!o||n.step||n.rotation||t||e===0||this.handleOverflow(l):m=!1,d&&i%d&&(m=!1),m&&Ti(l.y)?(l.opacity=e,a[this.isNewLabel?"attr":"animate"](l).show(!0),this.isNewLabel=!1):(a.hide(),this.isNewLabel=!0))}replaceMovedLabel(){let l=this.label,t=this.axis;l&&!this.isNew&&(l.animate({opacity:0},void 0,l.destroy),delete this.label),t.isDirty=!0,this.label=this.movedLabel,delete this.movedLabel}},{animObject:mo}=K,{xAxis:Ha,yAxis:Un}=Bs,{defaultOptions:Zr}=Ze,{registerEventOptions:jn}=Mr,{deg2rad:ps}=V,{arrayMax:Fa,arrayMin:Vn,clamp:Kr,correctFloat:vi,defined:Qt,destroyObjectProperties:_n,erase:Ga,error:Qr,extend:xo,fireEvent:ue,getClosestDistance:Ua,insertItem:qn,isArray:ja,isNumber:vt,isString:Va,merge:ir,normalizeTickInterval:$n,objectEach:Ar,pick:Ot,relativeLength:Pr,removeEvent:_a,splat:Zn,syncTimeout:Sr}=mt,Jr=(l,t)=>$n(t,void 0,void 0,Ot(l.options.allowDecimals,t<.5||l.tickAmount!==void 0),!!l.tickAmount);xo(Zr,{xAxis:Ha,yAxis:ir(Ha,Un)});let ta=(()=>{class l{constructor(e,i,s){this.init(e,i,s)}init(e,i,s=this.coll){let o=s==="xAxis",r=this.isZAxis||(e.inverted?!o:o);this.chart=e,this.horiz=r,this.isXAxis=o,this.coll=s,ue(this,"init",{userOptions:i}),this.opposite=Ot(i.opposite,this.opposite),this.side=Ot(i.side,this.side,r?2*!this.opposite:this.opposite?1:3),this.setOptions(i);let a=this.options,n=a.labels;this.type??(this.type=a.type||"linear"),this.uniqueNames??(this.uniqueNames=a.uniqueNames??!0),ue(this,"afterSetType"),this.userOptions=i,this.minPixelPadding=0,this.reversed=Ot(a.reversed,this.reversed),this.visible=a.visible,this.zoomEnabled=a.zoomEnabled,this.hasNames=this.type==="category"||a.categories===!0,this.categories=ja(a.categories)&&a.categories||(this.hasNames?[]:void 0),this.names||(this.names=[],this.names.keys={}),this.plotLinesAndBandsGroups={},this.positiveValuesOnly=!!this.logarithmic,this.isLinked=Qt(a.linkedTo),this.ticks={},this.labelEdge=[],this.minorTicks={},this.plotLinesAndBands=[],this.alternateBands={},this.len??(this.len=0),this.minRange=this.userMinRange=a.minRange||a.maxZoom,this.range=a.range,this.offset=a.offset||0,this.max=void 0,this.min=void 0;let d=Ot(a.crosshair,Zn(e.options.tooltip.crosshairs)[+!o]);this.crosshair=d===!0?{}:d,e.axes.indexOf(this)===-1&&(o?e.axes.splice(e.xAxis.length,0,this):e.axes.push(this),qn(this,e[this.coll])),e.orderItems(this.coll),this.series=this.series||[],e.inverted&&!this.isZAxis&&o&&!Qt(this.reversed)&&(this.reversed=!0),this.labelRotation=vt(n.rotation)?n.rotation:void 0,jn(this,a),ue(this,"afterInit")}setOptions(e){let i=this.horiz?{labels:{autoRotation:[-45],padding:3},margin:15}:{labels:{padding:1},title:{rotation:90*this.side}};this.options=ir(i,this.coll==="yAxis"?{title:{text:this.chart.options.lang.yAxisTitle}}:{},Zr[this.coll],e),ue(this,"afterSetOptions",{userOptions:e})}defaultLabelFormatter(){let e=this.axis,{numberFormatter:i}=this.chart,s=vt(this.value)?this.value:NaN,o=e.chart.time,r=e.categories,a=this.dateTimeLabelFormat,n=Zr.lang,d=n.numericSymbols,p=n.numericSymbolMagnitude||1e3,c=e.logarithmic?Math.abs(s):e.tickInterval,g=d?.length,m,x;if(r)x=`${this.value}`;else if(a)x=o.dateFormat(a,s,!0);else if(g&&d&&c>=1e3)for(;g--&&x===void 0;)c>=(m=Math.pow(p,g+1))&&10*s%m==0&&d[g]!==null&&s!==0&&(x=i(s/m,-1)+d[g]);return x===void 0&&(x=Math.abs(s)>=1e4?i(s,-1):i(s,-1,void 0,"")),x}getSeriesExtremes(){let e,i=this;ue(this,"getSeriesExtremes",null,function(){i.hasVisibleSeries=!1,i.dataMin=i.dataMax=i.threshold=void 0,i.softThreshold=!i.isXAxis,i.series.forEach(s=>{if(s.reserveSpace()){let o=s.options,r,a=o.threshold,n,d;if(i.hasVisibleSeries=!0,i.positiveValuesOnly&&0>=(a||0)&&(a=void 0),i.isXAxis)(r=s.getColumn("x")).length&&(r=i.logarithmic?r.filter(p=>p>0):r,n=(e=s.getXExtremes(r)).min,d=e.max,vt(n)||n instanceof Date||(r=r.filter(vt),n=(e=s.getXExtremes(r)).min,d=e.max),r.length&&(i.dataMin=Math.min(Ot(i.dataMin,n),n),i.dataMax=Math.max(Ot(i.dataMax,d),d)));else{let p=s.applyExtremes();vt(p.dataMin)&&(n=p.dataMin,i.dataMin=Math.min(Ot(i.dataMin,n),n)),vt(p.dataMax)&&(d=p.dataMax,i.dataMax=Math.max(Ot(i.dataMax,d),d)),Qt(a)&&(i.threshold=a),(!o.softThreshold||i.positiveValuesOnly)&&(i.softThreshold=!1)}}})}),ue(this,"afterGetSeriesExtremes")}translate(e,i,s,o,r,a){let n=this.linkedParent||this,d=o&&n.old?n.old.min:n.min;if(!vt(d))return NaN;let p=n.minPixelPadding,c=(n.isOrdinal||n.brokenAxis?.hasBreaks||n.logarithmic&&r)&&n.lin2val,g=1,m=0,x=o&&n.old?n.old.transA:n.transA,y=0;return x||(x=n.transA),s&&(g*=-1,m=n.len),n.reversed&&(g*=-1,m-=g*(n.sector||n.len)),i?(y=(e=e*g+m-p)/x+d,c&&(y=n.lin2val(y))):(c&&(e=n.val2lin(e)),y=g*(e-d)*x+m+g*p+(vt(a)?x*a:0),n.isRadial||(y=vi(y))),y}toPixels(e,i){return this.translate(this.chart?.time.parse(e)??NaN,!1,!this.horiz,void 0,!0)+(i?0:this.pos)}toValue(e,i){return this.translate(e-(i?0:this.pos),!0,!this.horiz,void 0,!0)}getPlotLinePath(e){let i=this,s=i.chart,o=i.left,r=i.top,a=e.old,n=e.value,d=e.lineWidth,p=a&&s.oldChartHeight||s.chartHeight,c=a&&s.oldChartWidth||s.chartWidth,g=i.transB,m=e.translatedValue,x=e.force,y,k,v,P,T;function O(B,R,X){return x!=="pass"&&(B<R||B>X)&&(x?B=Kr(B,R,X):T=!0),B}let Y={value:n,lineWidth:d,old:a,force:x,acrossPanes:e.acrossPanes,translatedValue:m};return ue(this,"getPlotLinePath",Y,function(B){y=v=(m=Kr(m=Ot(m,i.translate(n,void 0,void 0,a)),-1e9,1e9))+g,k=P=p-m-g,vt(m)?i.horiz?(k=r,P=p-i.bottom+(i.options.isInternal?0:s.scrollablePixelsY||0),y=v=O(y,o,o+i.width)):(y=o,v=c-i.right+(s.scrollablePixelsX||0),k=P=O(k,r,r+i.height)):(T=!0,x=!1),B.path=T&&!x?void 0:s.renderer.crispLine([["M",y,k],["L",v,P]],d||1)}),Y.path}getLinearTickPositions(e,i,s){let o,r,a,n=vi(Math.floor(i/e)*e),d=vi(Math.ceil(s/e)*e),p=[];if(vi(n+e)===n&&(a=20),this.single)return[i];for(o=n;o<=d&&(p.push(o),(o=vi(o+e,a))!==r);)r=o;return p}getMinorTickInterval(){let{minorTicks:e,minorTickInterval:i}=this.options;return e===!0?Ot(i,"auto"):e!==!1?i:void 0}getMinorTickPositions(){let e=this.options,i=this.tickPositions,s=this.minorTickInterval,o=this.pointRangePadding||0,r=(this.min||0)-o,a=(this.max||0)+o,n=this.brokenAxis?.hasBreaks?this.brokenAxis.unitLength:a-r,d=[],p;if(n&&n/s<this.len/3){let c=this.logarithmic;if(c)this.paddedTicks.forEach(function(g,m,x){m&&d.push.apply(d,c.getLogTickPositions(s,x[m-1],x[m],!0))});else if(this.dateTime&&this.getMinorTickInterval()==="auto")d=d.concat(this.getTimeTicks(this.dateTime.normalizeTimeTickInterval(s),r,a,e.startOfWeek));else for(p=r+(i[0]-r)%s;p<=a&&p!==d[0];p+=s)d.push(p)}return d.length!==0&&this.trimTicks(d),d}adjustForMinRange(){let e=this.options,i=this.logarithmic,s=this.chart.time,{max:o,min:r,minRange:a}=this,n,d,p,c;this.isXAxis&&a===void 0&&!i&&(a=Qt(e.min)||Qt(e.max)||Qt(e.floor)||Qt(e.ceiling)?null:Math.min(5*(Ua(this.series.map(g=>{let m=g.getColumn("x");return g.xIncrement?m.slice(0,2):m}))||0),this.dataMax-this.dataMin)),vt(o)&&vt(r)&&vt(a)&&o-r<a&&(d=this.dataMax-this.dataMin>=a,n=(a-o+r)/2,p=[r-n,s.parse(e.min)??r-n],d&&(p[2]=i?i.log2lin(this.dataMin):this.dataMin),c=[(r=Fa(p))+a,s.parse(e.max)??r+a],d&&(c[2]=i?i.log2lin(this.dataMax):this.dataMax),(o=Vn(c))-r<a&&(p[0]=o-a,p[1]=s.parse(e.min)??o-a,r=Fa(p))),this.minRange=a,this.min=r,this.max=o}getClosest(){let e,i;if(this.categories)i=1;else{let s=[];this.series.forEach(function(o){let r=o.closestPointRange,a=o.getColumn("x");a.length===1?s.push(a[0]):o.sorted&&Qt(r)&&o.reserveSpace()&&(i=Qt(i)?Math.min(i,r):r)}),s.length&&(s.sort((o,r)=>o-r),e=Ua([s]))}return e&&i?Math.min(e,i):e||i}nameToX(e){let i=ja(this.options.categories),s=i?this.categories:this.names,o=e.options.x,r;return e.series.requireSorting=!1,Qt(o)||(o=this.uniqueNames&&s?i?s.indexOf(e.name):Ot(s.keys[e.name],-1):e.series.autoIncrement()),o===-1?!i&&s&&(r=s.length):vt(o)&&(r=o),r!==void 0?(this.names[r]=e.name,this.names.keys[e.name]=r):e.x&&(r=e.x),r}updateNames(){let e=this,i=this.names;i.length>0&&(Object.keys(i.keys).forEach(function(s){delete i.keys[s]}),i.length=0,this.minRange=this.userMinRange,(this.series||[]).forEach(s=>{s.xIncrement=null,(!s.points||s.isDirtyData)&&(e.max=Math.max(e.max||0,s.dataTable.rowCount-1),s.processData(),s.generatePoints());let o=s.getColumn("x").slice();s.data.forEach((r,a)=>{let n=o[a];r?.options&&r.name!==void 0&&(n=e.nameToX(r))!==void 0&&n!==r.x&&(o[a]=r.x=n)}),s.dataTable.setColumn("x",o)}))}setAxisTranslation(){let e=this,i=e.max-e.min,s=e.linkedParent,o=!!e.categories,r=e.isXAxis,a=e.axisPointRange||0,n,d=0,p=0,c,g=e.transA;(r||o||a)&&(n=e.getClosest(),s?(d=s.minPointOffset,p=s.pointRangePadding):e.series.forEach(function(m){let x=o?1:r?Ot(m.options.pointRange,n,0):e.axisPointRange||0,y=m.options.pointPlacement;if(a=Math.max(a,x),!e.single||o){let k=m.is("xrange")?!r:r;d=Math.max(d,k&&Va(y)?0:x/2),p=Math.max(p,k&&y==="on"?0:x)}}),c=e.ordinal?.slope&&n?e.ordinal.slope/n:1,e.minPointOffset=d*=c,e.pointRangePadding=p*=c,e.pointRange=Math.min(a,e.single&&o?1:i),r&&(e.closestPointRange=n)),e.translationSlope=e.transA=g=e.staticScale||e.len/(i+p||1),e.transB=e.horiz?e.left:e.bottom,e.minPixelPadding=g*d,ue(this,"afterSetAxisTranslation")}minFromRange(){let{max:e,min:i}=this;return vt(e)&&vt(i)&&e-i||void 0}setTickInterval(e){let{categories:i,chart:s,dataMax:o,dataMin:r,dateTime:a,isXAxis:n,logarithmic:d,options:p,softThreshold:c}=this,g=s.time,m=vt(this.threshold)?this.threshold:void 0,x=this.minRange||0,{ceiling:y,floor:k,linkedTo:v,softMax:P,softMin:T}=p,O=vt(v)&&s[this.coll]?.[v],Y=p.tickPixelInterval,B=p.maxPadding,R=p.minPadding,X=0,j,$=vt(p.tickInterval)&&p.tickInterval>=0?p.tickInterval:void 0,Z,rt,nt,pt;if(a||i||O||this.getTickAmount(),nt=Ot(this.userMin,g.parse(p.min)),pt=Ot(this.userMax,g.parse(p.max)),O?(this.linkedParent=O,j=O.getExtremes(),this.min=Ot(j.min,j.dataMin),this.max=Ot(j.max,j.dataMax),this.type!==O.type&&Qr(11,!0,s)):(c&&Qt(m)&&vt(o)&&vt(r)&&(r>=m?(Z=m,R=0):o<=m&&(rt=m,B=0)),this.min=Ot(nt,Z,r),this.max=Ot(pt,rt,o)),vt(this.max)&&vt(this.min)&&(d&&(this.positiveValuesOnly&&!e&&0>=Math.min(this.min,Ot(r,this.min))&&Qr(10,!0,s),this.min=vi(d.log2lin(this.min),16),this.max=vi(d.log2lin(this.max),16)),this.range&&vt(r)&&(this.userMin=this.min=nt=Math.max(r,this.minFromRange()||0),this.userMax=pt=this.max,this.range=void 0)),ue(this,"foundExtremes"),this.adjustForMinRange(),vt(this.min)&&vt(this.max)){if(!vt(this.userMin)&&vt(T)&&T<this.min&&(this.min=nt=T),!vt(this.userMax)&&vt(P)&&P>this.max&&(this.max=pt=P),i||this.axisPointRange||this.stacking?.usePercentage||O||!(X=this.max-this.min)||(!Qt(nt)&&R&&(this.min-=X*R),Qt(pt)||!B||(this.max+=X*B)),!vt(this.userMin)&&vt(k)&&(this.min=Math.max(this.min,k)),!vt(this.userMax)&&vt(y)&&(this.max=Math.min(this.max,y)),c&&vt(r)&&vt(o)){let ht=m||0;!Qt(nt)&&this.min<ht&&r>=ht?this.min=p.minRange?Math.min(ht,this.max-x):ht:!Qt(pt)&&this.max>ht&&o<=ht&&(this.max=p.minRange?Math.max(ht,this.min+x):ht)}!s.polar&&this.min>this.max&&(Qt(p.min)?this.max=this.min:Qt(p.max)&&(this.min=this.max)),X=this.max-this.min}if(this.min!==this.max&&vt(this.min)&&vt(this.max)?O&&!$&&Y===O.options.tickPixelInterval?this.tickInterval=$=O.tickInterval:this.tickInterval=Ot($,this.tickAmount?X/Math.max(this.tickAmount-1,1):void 0,i?1:X*Y/Math.max(this.len,Y)):this.tickInterval=1,n&&!e){let ht=this.min!==this.old?.min||this.max!==this.old?.max;this.series.forEach(function(yt){yt.forceCrop=yt.forceCropping?.(),yt.processData(ht)}),ue(this,"postProcessData",{hasExtremesChanged:ht})}this.setAxisTranslation(),ue(this,"initialAxisTranslation"),this.pointRange&&!$&&(this.tickInterval=Math.max(this.pointRange,this.tickInterval));let bt=Ot(p.minTickInterval,a&&!this.series.some(ht=>!ht.sorted)?this.closestPointRange:0);!$&&bt&&this.tickInterval<bt&&(this.tickInterval=bt),a||d||$||(this.tickInterval=Jr(this,this.tickInterval)),this.tickAmount||(this.tickInterval=this.unsquish()),this.setTickPositions()}setTickPositions(){let e=this.options,i=e.tickPositions,s=e.tickPositioner,o=this.getMinorTickInterval(),r=!this.isPanning,a=r&&e.startOnTick,n=r&&e.endOnTick,d=[],p;if(this.tickmarkOffset=this.categories&&e.tickmarkPlacement==="between"&&this.tickInterval===1?.5:0,this.single=this.min===this.max&&Qt(this.min)&&!this.tickAmount&&(this.min%1==0||e.allowDecimals!==!1),i)d=i.slice();else if(vt(this.min)&&vt(this.max)){if(!this.ordinal?.positions&&(this.max-this.min)/this.tickInterval>Math.max(2*this.len,200))d=[this.min,this.max],Qr(19,!1,this.chart);else if(this.dateTime)d=this.getTimeTicks(this.dateTime.normalizeTimeTickInterval(this.tickInterval,e.units),this.min,this.max,e.startOfWeek,this.ordinal?.positions,this.closestPointRange,!0);else if(this.logarithmic)d=this.logarithmic.getLogTickPositions(this.tickInterval,this.min,this.max);else{let c=this.tickInterval,g=c;for(;g<=2*c&&(d=this.getLinearTickPositions(this.tickInterval,this.min,this.max),this.tickAmount&&d.length>this.tickAmount);)this.tickInterval=Jr(this,g*=1.1)}d.length>this.len&&(d=[d[0],d[d.length-1]])[0]===d[1]&&(d.length=1),s&&(this.tickPositions=d,(p=s.apply(this,[this.min,this.max]))&&(d=p))}this.tickPositions=d,this.minorTickInterval=o==="auto"&&this.tickInterval?this.tickInterval/e.minorTicksPerMajor:o,this.paddedTicks=d.slice(0),this.trimTicks(d,a,n),!this.isLinked&&vt(this.min)&&vt(this.max)&&(this.single&&d.length<2&&!this.categories&&!this.series.some(c=>c.is("heatmap")&&c.options.pointPlacement==="between")&&(this.min-=.5,this.max+=.5),i||p||this.adjustTickAmount()),ue(this,"afterSetTickPositions")}trimTicks(e,i,s){let o=e[0],r=e[e.length-1],a=!this.isOrdinal&&this.minPointOffset||0;if(ue(this,"trimTicks"),!this.isLinked||!this.grid){if(i&&o!==-1/0)this.min=o;else for(;this.min-a>e[0];)e.shift();if(s)this.max=r;else for(;this.max+a<e[e.length-1];)e.pop();e.length===0&&Qt(o)&&!this.options.tickPositions&&e.push((r+o)/2)}}alignToOthers(){let e,i=this,s=i.chart,o=[this],r=i.options,a=s.options.chart,n=this.coll==="yAxis"&&a.alignThresholds,d=[];if(i.thresholdAlignment=void 0,(a.alignTicks!==!1&&r.alignTicks||n)&&r.startOnTick!==!1&&r.endOnTick!==!1&&!i.logarithmic){let p=g=>{let{horiz:m,options:x}=g;return[m?x.left:x.top,x.width,x.height,x.pane].join(",")},c=p(this);s[this.coll].forEach(function(g){let{series:m}=g;m.length&&m.some(x=>x.visible)&&g!==i&&p(g)===c&&(e=!0,o.push(g))})}if(e&&n){o.forEach(c=>{let g=c.getThresholdAlignment(i);vt(g)&&d.push(g)});let p=d.length>1?d.reduce((c,g)=>c+=g,0)/d.length:void 0;o.forEach(c=>{c.thresholdAlignment=p})}return e}getThresholdAlignment(e){if((!vt(this.dataMin)||this!==e&&this.series.some(i=>i.isDirty||i.isDirtyData))&&this.getSeriesExtremes(),vt(this.threshold)){let i=Kr((this.threshold-(this.dataMin||0))/((this.dataMax||0)-(this.dataMin||0)),0,1);return this.options.reversed&&(i=1-i),i}}getTickAmount(){let e=this.options,i=e.tickPixelInterval,s=e.tickAmount;Qt(e.tickInterval)||s||!(this.len<i)||this.isRadial||this.logarithmic||!e.startOnTick||!e.endOnTick||(s=2),!s&&this.alignToOthers()&&(s=Math.ceil(this.len/i)+1),s<4&&(this.finalTickAmt=s,s=5),this.tickAmount=s}adjustTickAmount(){let e=this,{finalTickAmt:i,max:s,min:o,options:r,tickPositions:a,tickAmount:n,thresholdAlignment:d}=e,p=a?.length,c=Ot(e.threshold,e.softThreshold?0:null),g,m,x=e.tickInterval,y,k=()=>a.push(vi(a[a.length-1]+x)),v=()=>a.unshift(vi(a[0]-x));if(vt(d)&&(y=d<.5?Math.ceil(d*(n-1)):Math.floor(d*(n-1)),r.reversed&&(y=n-1-y)),e.hasData()&&vt(o)&&vt(s)){let P=()=>{e.transA*=(p-1)/(n-1),e.min=r.startOnTick?a[0]:Math.min(o,a[0]),e.max=r.endOnTick?a[a.length-1]:Math.max(s,a[a.length-1])};if(vt(y)&&vt(e.threshold)){for(;a[y]!==c||a.length!==n||a[0]>o||a[a.length-1]<s;){for(a.length=0,a.push(e.threshold);a.length<n;)a[y]===void 0||a[y]>e.threshold?v():k();if(x>8*e.tickInterval)break;x*=2}P()}else if(p<n){for(;a.length<n;)a.length%2||o===c?k():v();P()}if(Qt(i)){for(m=g=a.length;m--;)(i===3&&m%2==1||i<=2&&m>0&&m<g-1)&&a.splice(m,1);e.finalTickAmt=void 0}}}setScale(){let{coll:e,stacking:i}=this,s=!1,o=!1;this.series.forEach(a=>{s=s||a.isDirtyData||a.isDirty,o=o||a.xAxis?.isDirty||!1}),this.setAxisSize();let r=this.len!==this.old?.len;r||s||o||this.isLinked||this.forceRedraw||this.userMin!==this.old?.userMin||this.userMax!==this.old?.userMax||this.alignToOthers()?(i&&e==="yAxis"&&i.buildStacks(),this.forceRedraw=!1,this.userMinRange||(this.minRange=void 0),this.getSeriesExtremes(),this.setTickInterval(),i&&e==="xAxis"&&i.buildStacks(),this.isDirty||(this.isDirty=r||this.min!==this.old?.min||this.max!==this.old?.max)):i&&i.cleanStacks(),s&&delete this.allExtremes,ue(this,"afterSetScale")}setExtremes(e,i,s=!0,o,r){let a=this.chart;this.series.forEach(n=>{delete n.kdTree}),e=a.time.parse(e),i=a.time.parse(i),ue(this,"setExtremes",r=xo(r,{min:e,max:i}),n=>{this.userMin=n.min,this.userMax=n.max,this.eventArgs=n,s&&a.redraw(o)})}setAxisSize(){let e=this.chart,i=this.options,s=i.offsets||[0,0,0,0],o=this.horiz,r=this.width=Math.round(Pr(Ot(i.width,e.plotWidth-s[3]+s[1]),e.plotWidth)),a=this.height=Math.round(Pr(Ot(i.height,e.plotHeight-s[0]+s[2]),e.plotHeight)),n=this.top=Math.round(Pr(Ot(i.top,e.plotTop+s[0]),e.plotHeight,e.plotTop)),d=this.left=Math.round(Pr(Ot(i.left,e.plotLeft+s[3]),e.plotWidth,e.plotLeft));this.bottom=e.chartHeight-a-n,this.right=e.chartWidth-r-d,this.len=Math.max(o?r:a,0),this.pos=o?d:n}getExtremes(){let e=this.logarithmic;return{min:e?vi(e.lin2log(this.min)):this.min,max:e?vi(e.lin2log(this.max)):this.max,dataMin:this.dataMin,dataMax:this.dataMax,userMin:this.userMin,userMax:this.userMax}}getThreshold(e){let i=this.logarithmic,s=i?i.lin2log(this.min):this.min,o=i?i.lin2log(this.max):this.max;return e===null||e===-1/0?e=s:e===1/0?e=o:s>e?e=s:o<e&&(e=o),this.translate(e,0,1,0,1)}autoLabelAlign(e){let i=(Ot(e,0)-90*this.side+720)%360,s={align:"center"};return ue(this,"autoLabelAlign",s,function(o){i>15&&i<165?o.align="right":i>195&&i<345&&(o.align="left")}),s.align}tickSize(e){let i=this.options,s=Ot(i[e==="tick"?"tickWidth":"minorTickWidth"],e==="tick"&&this.isXAxis&&!this.categories?1:0),o=i[e==="tick"?"tickLength":"minorTickLength"],r;s&&o&&(i[e+"Position"]==="inside"&&(o=-o),r=[o,s]);let a={tickSize:r};return ue(this,"afterTickSize",a),a.tickSize}labelMetrics(){let e=this.chart.renderer,i=this.ticks,s=i[Object.keys(i)[0]]||{};return this.chart.renderer.fontMetrics(s.label||s.movedLabel||e.box)}unsquish(){let e=this.options.labels,i=e.padding||0,s=this.horiz,o=this.tickInterval,r=this.len/((+!!this.categories+this.max-this.min)/o),a=e.rotation,n=vi(.8*this.labelMetrics().h),d=Math.max(this.max-this.min,0),p=function(y){let k=(y+2*i)/(r||1);return(k=k>1?Math.ceil(k):1)*o>d&&y!==1/0&&r!==1/0&&d&&(k=Math.ceil(d/o)),vi(k*o)},c=o,g,m=Number.MAX_VALUE,x;if(s){if(!e.staggerLines&&(vt(a)?x=[a]:r<e.autoRotationLimit&&(x=e.autoRotation)),x){let y,k;for(let v of x)(v===a||v&&v>=-90&&v<=90)&&(k=(y=p(Math.abs(n/Math.sin(ps*v))))+Math.abs(v/360))<m&&(m=k,g=v,c=y)}}else c=p(.75*n);return this.autoRotation=x,this.labelRotation=Ot(g,vt(a)?a:0),e.step?o:c}getSlotWidth(e){let i=this.chart,s=this.horiz,o=this.options.labels,r=Math.max(this.tickPositions.length-+!this.categories,1),a=i.margin[3];if(e&&vt(e.slotWidth))return e.slotWidth;if(s&&o.step<2&&!this.isRadial)return o.rotation?0:(this.staggerLines||1)*this.len/r;if(!s){let n=o.style.width;if(n!==void 0)return parseInt(String(n),10);if(a)return a-i.spacing[3]}return .33*i.chartWidth}renderUnsquish(){let e=this.chart,i=e.renderer,s=this.tickPositions,o=this.ticks,r=this.options.labels,a=r.style,n=this.horiz,d=this.getSlotWidth(),p=Math.max(1,Math.round(d-(n?2*(r.padding||0):r.distance||0))),c={},g=this.labelMetrics(),m=a.lineClamp,x,y=m??(Math.floor(this.len/(s.length*g.h))||1),k=0;Va(r.rotation)||(c.rotation=r.rotation||0),s.forEach(function(v){let P=o[v];P.movedLabel&&P.replaceMovedLabel();let T=P.label?.textPxLength||0;T>k&&(k=T)}),this.maxLabelLength=k,this.autoRotation?k>p&&k>g.h?c.rotation=this.labelRotation:this.labelRotation=0:d&&(x=p),c.rotation&&(x=k>.5*e.chartHeight?.33*e.chartHeight:k,m||(y=1)),this.labelAlign=r.align||this.autoLabelAlign(this.labelRotation),this.labelAlign&&(c.align=this.labelAlign),s.forEach(function(v){let P=o[v],T=P?.label,O=a.width,Y={};T&&(T.attr(c),P.shortenLabel?P.shortenLabel():x&&!O&&a.whiteSpace!=="nowrap"&&(x<(T.textPxLength||0)||T.element.tagName==="SPAN")?T.css(xo(Y,{width:`${x}px`,lineClamp:y})):!T.styles.width||Y.width||O||T.css({width:"auto"}),P.rotation=c.rotation)},this),this.tickRotCorr=i.rotCorr(g.b,this.labelRotation||0,this.side!==0)}hasData(){return this.series.some(function(e){return e.hasData()})||this.options.showEmpty&&Qt(this.min)&&Qt(this.max)}addTitle(e){let i,s=this.chart.renderer,o=this.horiz,r=this.opposite,a=this.options.title,n=this.chart.styledMode;this.axisTitle||((i=a.textAlign)||(i=(o?{low:"left",middle:"center",high:"right"}:{low:r?"right":"left",middle:"center",high:r?"left":"right"})[a.align]),this.axisTitle=s.text(a.text||"",0,0,a.useHTML).attr({zIndex:7,rotation:a.rotation||0,align:i}).addClass("highcharts-axis-title"),n||this.axisTitle.css(ir(a.style)),this.axisTitle.add(this.axisGroup),this.axisTitle.isNew=!0),n||a.style.width||this.isRadial||this.axisTitle.css({width:this.len+"px"}),this.axisTitle[e?"show":"hide"](e)}generateTick(e){let i=this.ticks;i[e]?i[e].addLabel():i[e]=new Js(this,e)}createGroups(){let{axisParent:e,chart:i,coll:s,options:o}=this,r=i.renderer,a=(n,d,p)=>r.g(n).attr({zIndex:p}).addClass(`highcharts-${s.toLowerCase()}${d} `+(this.isRadial?`highcharts-radial-axis${d} `:"")+(o.className||"")).add(e);this.axisGroup||(this.gridGroup=a("grid","-grid",o.gridZIndex),this.axisGroup=a("axis","",o.zIndex),this.labelGroup=a("axis-labels","-labels",o.labels.zIndex))}getOffset(){let e=this,{chart:i,horiz:s,options:o,side:r,ticks:a,tickPositions:n,coll:d}=e,p=i.inverted&&!e.isZAxis?[1,0,3,2][r]:r,c=e.hasData(),g=o.title,m=o.labels,x=vt(o.crossing),y=i.axisOffset,k=i.clipOffset,v=[-1,1,1,-1][r],P,T=0,O,Y=0,B=0,R,X;if(e.showAxis=P=c||o.showEmpty,e.staggerLines=e.horiz&&m.staggerLines||void 0,e.createGroups(),c||e.isLinked?(n.forEach(function(j){e.generateTick(j)}),e.renderUnsquish(),e.reserveSpaceDefault=r===0||r===2||{1:"left",3:"right"}[r]===e.labelAlign,Ot(m.reserveSpace,!x&&null,e.labelAlign==="center"||null,e.reserveSpaceDefault)&&n.forEach(function(j){B=Math.max(a[j].getLabelSize(),B)}),e.staggerLines&&(B*=e.staggerLines),e.labelOffset=B*(e.opposite?-1:1)):Ar(a,function(j,$){j.destroy(),delete a[$]}),g?.text&&g.enabled!==!1&&(e.addTitle(P),P&&!x&&g.reserveSpace!==!1&&(e.titleOffset=T=e.axisTitle.getBBox()[s?"height":"width"],Y=Qt(O=g.offset)?0:Ot(g.margin,s?5:10))),e.renderLine(),e.offset=v*Ot(o.offset,y[r]?y[r]+(o.margin||0):0),e.tickRotCorr=e.tickRotCorr||{x:0,y:0},X=r===0?-e.labelMetrics().h:r===2?e.tickRotCorr.y:0,R=Math.abs(B)+Y,B&&(R-=X,R+=v*(s?Ot(m.y,e.tickRotCorr.y+v*m.distance):Ot(m.x,v*m.distance))),e.axisTitleMargin=Ot(O,R),e.getMaxLabelDimensions&&(e.maxLabelDimensions=e.getMaxLabelDimensions(a,n)),d!=="colorAxis"&&k){let j=this.tickSize("tick");y[r]=Math.max(y[r],(e.axisTitleMargin||0)+T+v*e.offset,R,n?.length&&j?j[0]+v*e.offset:0);let $=!e.axisLine||o.offset?0:e.axisLine.strokeWidth()/2;k[p]=Math.max(k[p],$)}ue(this,"afterGetOffset")}getLinePath(e){let i=this.chart,s=this.opposite,o=this.offset,r=this.horiz,a=this.left+(s?this.width:0)+o,n=i.chartHeight-this.bottom-(s?this.height:0)+o;return s&&(e*=-1),i.renderer.crispLine([["M",r?this.left:a,r?n:this.top],["L",r?i.chartWidth-this.right:a,r?n:i.chartHeight-this.bottom]],e)}renderLine(){this.axisLine||(this.axisLine=this.chart.renderer.path().addClass("highcharts-axis-line").add(this.axisGroup),this.chart.styledMode||this.axisLine.attr({stroke:this.options.lineColor,"stroke-width":this.options.lineWidth,zIndex:7}))}getTitlePosition(e){let i=this.horiz,s=this.left,o=this.top,r=this.len,a=this.options.title,n=i?s:o,d=this.opposite,p=this.offset,c=a.x,g=a.y,m=this.chart.renderer.fontMetrics(e),x=e?Math.max(e.getBBox(!1,0).height-m.h-1,0):0,y={low:n+(i?0:r),middle:n+r/2,high:n+(i?r:0)}[a.align],k=(i?o+this.height:s)+(i?1:-1)*(d?-1:1)*(this.axisTitleMargin||0)+[-x,x,m.f,-x][this.side],v={x:i?y+c:k+(d?this.width:0)+p+c,y:i?k+g-(d?this.height:0)+p:y+g};return ue(this,"afterGetTitlePosition",{titlePosition:v}),v}renderMinorTick(e,i){let s=this.minorTicks;s[e]||(s[e]=new Js(this,e,"minor")),i&&s[e].isNew&&s[e].render(null,!0),s[e].render(null,!1,1)}renderTick(e,i,s){let o=this.isLinked,r=this.ticks;(!o||e>=this.min&&e<=this.max||this.grid?.isColumn)&&(r[e]||(r[e]=new Js(this,e)),s&&r[e].isNew&&r[e].render(i,!0,-1),r[e].render(i))}render(){let e,i,s=this,o=s.chart,r=s.logarithmic,a=o.renderer,n=s.options,d=s.isLinked,p=s.tickPositions,c=s.axisTitle,g=s.ticks,m=s.minorTicks,x=s.alternateBands,y=n.stackLabels,k=n.alternateGridColor,v=n.crossing,P=s.tickmarkOffset,T=s.axisLine,O=s.showAxis,Y=mo(a.globalAnimation);if(s.labelEdge.length=0,s.overlap=!1,[g,m,x].forEach(function(B){Ar(B,function(R){R.isActive=!1})}),vt(v)){let B=this.isXAxis?o.yAxis[0]:o.xAxis[0],R=[1,-1,-1,1][this.side];if(B){let X=B.toPixels(v,!0);s.horiz&&(X=B.len-X),s.offset=R*X}}if(s.hasData()||d){let B=s.chart.hasRendered&&s.old&&vt(s.old.min);s.minorTickInterval&&!s.categories&&s.getMinorTickPositions().forEach(function(R){s.renderMinorTick(R,B)}),p.length&&(p.forEach(function(R,X){s.renderTick(R,X,B)}),P&&(s.min===0||s.single)&&(g[-1]||(g[-1]=new Js(s,-1,null,!0)),g[-1].render(-1))),k&&p.forEach(function(R,X){i=p[X+1]!==void 0?p[X+1]+P:s.max-P,X%2==0&&R<s.max&&i<=s.max+(o.polar?-P:P)&&(x[R]||(x[R]=new V.PlotLineOrBand(s,{})),e=R+P,x[R].options={from:r?r.lin2log(e):e,to:r?r.lin2log(i):i,color:k,className:"highcharts-alternate-grid"},x[R].render(),x[R].isActive=!0)}),s._addedPlotLB||(s._addedPlotLB=!0,(n.plotLines||[]).concat(n.plotBands||[]).forEach(function(R){s.addPlotBandOrLine(R)}))}[g,m,x].forEach(function(B){let R=[],X=Y.duration;Ar(B,function(j,$){j.isActive||(j.render($,!1,0),j.isActive=!1,R.push($))}),Sr(function(){let j=R.length;for(;j--;)B[R[j]]&&!B[R[j]].isActive&&(B[R[j]].destroy(),delete B[R[j]])},B!==x&&o.hasRendered&&X?X:0)}),T&&(T[T.isPlaced?"animate":"attr"]({d:this.getLinePath(T.strokeWidth())}),T.isPlaced=!0,T[O?"show":"hide"](O)),c&&O&&(c[c.isNew?"attr":"animate"](s.getTitlePosition(c)),c.isNew=!1),y?.enabled&&s.stacking&&s.stacking.renderStackTotals(),s.old={len:s.len,max:s.max,min:s.min,transA:s.transA,userMax:s.userMax,userMin:s.userMin},s.isDirty=!1,ue(this,"afterRender")}redraw(){this.visible&&(this.render(),this.plotLinesAndBands.forEach(function(e){e.render()})),this.series.forEach(function(e){e.isDirty=!0})}getKeepProps(){return this.keepProps||l.keepProps}destroy(e){let i=this,s=i.plotLinesAndBands,o=this.eventOptions;if(ue(this,"destroy",{keepEvents:e}),e||_a(i),[i.ticks,i.minorTicks,i.alternateBands].forEach(function(r){_n(r)}),s){let r=s.length;for(;r--;)s[r].destroy()}for(let r in["axisLine","axisTitle","axisGroup","gridGroup","labelGroup","cross","scrollbar"].forEach(function(a){i[a]&&(i[a]=i[a].destroy())}),i.plotLinesAndBandsGroups)i.plotLinesAndBandsGroups[r]=i.plotLinesAndBandsGroups[r].destroy();Ar(i,function(r,a){i.getKeepProps().indexOf(a)===-1&&delete i[a]}),this.eventOptions=o}drawCrosshair(e,i){let s=this.crosshair,o=s?.snap??!0,r=this.chart,a,n,d,p=this.cross,c;if(ue(this,"drawCrosshair",{e,point:i}),e||(e=this.cross?.e),s&&(Qt(i)||!o)!==!1){if(o?Qt(i)&&(n=Ot(this.coll!=="colorAxis"?i.crosshairPos:null,this.isXAxis?i.plotX:this.len-i.plotY)):n=e&&(this.horiz?e.chartX-this.pos:this.len-e.chartY+this.pos),Qt(n)&&(c={value:i&&(this.isXAxis?i.x:Ot(i.stackY,i.y)),translatedValue:n},r.polar&&xo(c,{isCrosshair:!0,chartX:e?.chartX,chartY:e?.chartY,point:i}),a=this.getPlotLinePath(c)||null),!Qt(a)){this.hideCrosshair();return}d=this.categories&&!this.isRadial,p||(this.cross=p=r.renderer.path().addClass("highcharts-crosshair highcharts-crosshair-"+(d?"category ":"thin ")+(s.className||"")).attr({zIndex:Ot(s.zIndex,2)}).add(),!r.styledMode&&(p.attr({stroke:s.color||(d?$t.parse("#ccd3ff").setOpacity(.25).get():"#cccccc"),"stroke-width":Ot(s.width,1)}).css({"pointer-events":"none"}),s.dashStyle&&p.attr({dashstyle:s.dashStyle}))),p.show().attr({d:a}),d&&!s.width&&p.attr({"stroke-width":this.transA}),this.cross.e=e}else this.hideCrosshair();ue(this,"afterDrawCrosshair",{e,point:i})}hideCrosshair(){this.cross&&this.cross.hide(),ue(this,"afterHideCrosshair")}update(e,i){let s=this.chart;e=ir(this.userOptions,e),this.destroy(!0),this.init(s,e),s.isDirtyBox=!0,Ot(i,!0)&&s.redraw()}remove(e){let i=this.chart,s=this.coll,o=this.series,r=o.length;for(;r--;)o[r]&&o[r].remove(!1);Ga(i.axes,this),Ga(i[s]||[],this),i.orderItems(s),this.destroy(),i.isDirtyBox=!0,Ot(e,!0)&&i.redraw()}setTitle(e,i){this.update({title:e},i)}setCategories(e,i){this.update({categories:e},i)}}return l.keepProps=["coll","extKey","hcEvents","len","names","series","userMax","userMin"],l})(),{addEvent:Kn,getMagnitude:Qn,normalizeTickInterval:Jn,timeUnits:to}=mt;(function(l){function t(){return this.chart.time.getTimeTicks.apply(this.chart.time,arguments)}function e(){if(this.type!=="datetime"){this.dateTime=void 0;return}this.dateTime||(this.dateTime=new i(this))}l.compose=function(s){return s.keepProps.includes("dateTime")||(s.keepProps.push("dateTime"),s.prototype.getTimeTicks=t,Kn(s,"afterSetType",e)),s};class i{constructor(o){this.axis=o}normalizeTimeTickInterval(o,r){let a=r||[["millisecond",[1,2,5,10,20,25,50,100,200,500]],["second",[1,2,5,10,15,30]],["minute",[1,2,5,10,15,30]],["hour",[1,2,3,4,6,8,12]],["day",[1,2]],["week",[1,2]],["month",[1,2,3,4,6]],["year",null]],n=a[a.length-1],d=to[n[0]],p=n[1],c;for(c=0;c<a.length&&(d=to[(n=a[c])[0]],p=n[1],!a[c+1]||!(o<=(d*p[p.length-1]+to[a[c+1][0]])/2));c++);d===to.year&&o<5*d&&(p=[1,2,5]);let g=Jn(o/d,p,n[0]==="year"?Math.max(Qn(o/d),1):1);return{unitRange:d,count:g,unitName:n[0]}}getXDateFormat(o,r){let{axis:a}=this,n=a.chart.time;return a.closestPointRange?n.getDateFormat(a.closestPointRange,o,a.options.startOfWeek,r)||n.resolveDTLFormat(r.year).main:n.resolveDTLFormat(r.day).main}}l.Additions=i})(Pe||(Pe={}));let tl=Pe,{addEvent:qa,normalizeTickInterval:$a,pick:Za}=mt;(function(l){function t(){this.type!=="logarithmic"?this.logarithmic=void 0:this.logarithmic??(this.logarithmic=new i(this))}function e(){let s=this.logarithmic;s&&(this.lin2val=function(o){return s.lin2log(o)},this.val2lin=function(o){return s.log2lin(o)})}l.compose=function(s){return s.keepProps.includes("logarithmic")||(s.keepProps.push("logarithmic"),qa(s,"afterSetType",t),qa(s,"afterInit",e)),s};class i{constructor(o){this.axis=o}getLogTickPositions(o,r,a,n){let d=this.axis,p=d.len,c=d.options,g=[];if(n||(this.minorAutoInterval=void 0),o>=.5)o=Math.round(o),g=d.getLinearTickPositions(o,r,a);else if(o>=.08){let m,x,y,k,v,P,T,O=Math.floor(r);for(m=o>.3?[1,2,4]:o>.15?[1,2,4,6,8]:[1,2,3,4,5,6,7,8,9],x=O;x<a+1&&!T;x++)for(y=0,k=m.length;y<k&&!T;y++)(v=this.log2lin(this.lin2log(x)*m[y]))>r&&(!n||P<=a)&&P!==void 0&&g.push(P),P>a&&(T=!0),P=v}else{let m=this.lin2log(r),x=this.lin2log(a),y=n?d.getMinorTickInterval():c.tickInterval,k=c.tickPixelInterval/(n?5:1),v=n?p/d.tickPositions.length:p;o=$a(o=Za(y==="auto"?null:y,this.minorAutoInterval,(x-m)*k/(v||1))),g=d.getLinearTickPositions(o,m,x).map(this.log2lin),n||(this.minorAutoInterval=o/5)}return n||(d.tickInterval=o),g}lin2log(o){return Math.pow(10,o)}log2lin(o){return Math.log(o)/Math.LN10}}l.Additions=i})(ys||(ys={}));let ea=ys,{erase:Tr,extend:Ka,isNumber:eo}=mt;(function(l){let t;function e(d){return this.addPlotBandOrLine(d,"plotBands")}function i(d,p){let c=this.userOptions,g=new t(this,d);if(this.visible&&(g=g.render()),g){if(this._addedPlotLB||(this._addedPlotLB=!0,(c.plotLines||[]).concat(c.plotBands||[]).forEach(m=>{this.addPlotBandOrLine(m)})),p){let m=c[p]||[];m.push(d),c[p]=m}this.plotLinesAndBands.push(g)}return g}function s(d){return this.addPlotBandOrLine(d,"plotLines")}function o(d,p,c){c=c||this.options;let g=this.getPlotLinePath({value:p,force:!0,acrossPanes:c.acrossPanes}),m=[],x=this.horiz,y=!eo(this.min)||!eo(this.max)||d<this.min&&p<this.min||d>this.max&&p>this.max,k=this.getPlotLinePath({value:d,force:!0,acrossPanes:c.acrossPanes}),v,P=1,T;if(k&&g)for(y&&(T=k.toString()===g.toString(),P=0),v=0;v<k.length;v+=2){let O=k[v],Y=k[v+1],B=g[v],R=g[v+1];(O[0]==="M"||O[0]==="L")&&(Y[0]==="M"||Y[0]==="L")&&(B[0]==="M"||B[0]==="L")&&(R[0]==="M"||R[0]==="L")&&(x&&B[1]===O[1]?(B[1]+=P,R[1]+=P):x||B[2]!==O[2]||(B[2]+=P,R[2]+=P),m.push(["M",O[1],O[2]],["L",Y[1],Y[2]],["L",R[1],R[2]],["L",B[1],B[2]],["Z"])),m.isFlat=T}return m}function r(d){this.removePlotBandOrLine(d)}function a(d){let p=this.plotLinesAndBands,c=this.options,g=this.userOptions;if(p){let m=p.length;for(;m--;)p[m].id===d&&p[m].destroy();[c.plotLines||[],g.plotLines||[],c.plotBands||[],g.plotBands||[]].forEach(function(x){for(m=x.length;m--;)x[m]?.id===d&&Tr(x,x[m])})}}function n(d){this.removePlotBandOrLine(d)}l.compose=function(d,p){let c=p.prototype;return c.addPlotBand||(t=d,Ka(c,{addPlotBand:e,addPlotLine:s,addPlotBandOrLine:i,getPlotBandPath:o,removePlotBand:r,removePlotLine:n,removePlotBandOrLine:a})),p}})(Ws||(Ws={}));let Qa=Ws,{addEvent:Ja,arrayMax:tn,arrayMin:sr,defined:li,destroyObjectProperties:Be,erase:el,fireEvent:b,merge:h,objectEach:u,pick:f}=mt;class M{static compose(t,e){return Ja(t,"afterInit",function(){this.labelCollectors.push(()=>{let i=[];for(let s of this.axes)for(let{label:o,options:r}of s.plotLinesAndBands)o&&!r?.label?.allowOverlap&&i.push(o);return i})}),Qa.compose(M,e)}constructor(t,e){this.axis=t,this.options=e,this.id=e.id}render(){b(this,"render");let{axis:t,options:e}=this,{horiz:i,logarithmic:s}=t,{color:o,events:r,zIndex:a=0}=e,{renderer:n,time:d}=t.chart,p={},c=d.parse(e.to),g=d.parse(e.from),m=d.parse(e.value),x=e.borderWidth,y=e.label,{label:k,svgElem:v}=this,P=[],T,O=li(g)&&li(c),Y=li(m),B=!v,R={class:"highcharts-plot-"+(O?"band ":"line ")+(e.className||"")},X=O?"bands":"lines";if(!t.chart.styledMode&&(Y?(R.stroke=o||"#999999",R["stroke-width"]=f(e.width,1),e.dashStyle&&(R.dashstyle=e.dashStyle)):O&&(R.fill=o||"#e6e9ff",x&&(R.stroke=e.borderColor,R["stroke-width"]=x))),p.zIndex=a,X+="-"+a,(T=t.plotLinesAndBandsGroups[X])||(t.plotLinesAndBandsGroups[X]=T=n.g("plot-"+X).attr(p).add()),v||(this.svgElem=v=n.path().attr(R).add(T)),li(m))P=t.getPlotLinePath({value:s?.log2lin(m)??m,lineWidth:v.strokeWidth(),acrossPanes:e.acrossPanes});else{if(!(li(g)&&li(c)))return;P=t.getPlotBandPath(s?.log2lin(g)??g,s?.log2lin(c)??c,e)}return!this.eventsAdded&&r&&(u(r,(j,$)=>{v?.on($,Z=>{r[$].apply(this,[Z])})}),this.eventsAdded=!0),(B||!v.d)&&P?.length?v.attr({d:P}):v&&(P?(v.show(),v.animate({d:P})):v.d&&(v.hide(),k&&(this.label=k=k.destroy()))),y&&(li(y.text)||li(y.formatter))&&P?.length&&t.width>0&&t.height>0&&!P.isFlat?(y=h(ts({align:i&&O?"center":void 0,x:i?!O&&4:10,verticalAlign:!i&&O?"middle":void 0,y:i?O?16:10:O?6:-4,rotation:i&&!O?90:0},O?{inside:!0}:{}),y),this.renderLabel(y,P,O,a)):k&&k.hide(),this}renderLabel(t,e,i,s){let o=this.axis,r=o.chart.renderer,a=t.inside,n=this.label;n||(this.label=n=r.text(this.getLabelText(t),0,0,t.useHTML).attr({align:t.textAlign||t.align,rotation:t.rotation,class:"highcharts-plot-"+(i?"band":"line")+"-label "+(t.className||""),zIndex:s}),o.chart.styledMode||n.css(h({fontSize:"0.8em",textOverflow:i&&!a?"":"ellipsis"},t.style)),n.add());let d=e.xBounds||[e[0][1],e[1][1],i?e[2][1]:e[0][1]],p=e.yBounds||[e[0][2],e[1][2],i?e[2][2]:e[0][2]],c=sr(d),g=sr(p),m=tn(d)-c;n.align(t,!1,{x:c,y:g,width:m,height:tn(p)-g}),n.alignAttr.y-=r.fontMetrics(n).b,(!n.alignValue||n.alignValue==="left"||li(a))&&n.css({width:(t.style?.width||(i&&a?m:n.rotation===90?o.height-(n.alignAttr.y-o.top):(t.clip?o.width:o.chart.chartWidth)-(n.alignAttr.x-o.left)))+"px"}),n.show(!0)}getLabelText(t){return li(t.formatter)?t.formatter.call(this):t.text}destroy(){el(this.axis.plotLinesAndBands,this),delete this.axis,Be(this)}}let{animObject:A}=K,{format:w}=fe,{composed:L,dateFormats:I,doc:D,isSafari:z}=V,{distribute:N}=Dt,{addEvent:G,clamp:F,css:Q,discardElement:et,extend:q,fireEvent:st,getAlignFactor:_,isArray:St,isNumber:gt,isObject:Rt,isString:Et,merge:xt,pick:It,pushUnique:le,splat:J,syncTimeout:lt}=mt;class at{constructor(t,e,i){this.allowShared=!0,this.crosshairs=[],this.distance=0,this.isHidden=!0,this.isSticky=!1,this.options={},this.outside=!1,this.chart=t,this.init(t,e),this.pointer=i}bodyFormatter(t){return t.map(e=>{let i=e.series.tooltipOptions,s=e.formatPrefix||"point";return(i[s+"Formatter"]||e.tooltipFormatter).call(e,i[s+"Format"]||"")})}cleanSplit(t){this.chart.series.forEach(function(e){let i=e?.tt;i&&(!i.isActive||t?e.tt=i.destroy():i.isActive=!1)})}defaultFormatter(t){let e,i=this.points||J(this);return(e=(e=[t.headerFooterFormatter(i[0])]).concat(t.bodyFormatter(i))).push(t.headerFooterFormatter(i[0],!0)),e}destroy(){this.label&&(this.label=this.label.destroy()),this.split&&(this.cleanSplit(!0),this.tt&&(this.tt=this.tt.destroy())),this.renderer&&(this.renderer=this.renderer.destroy(),et(this.container)),mt.clearTimeout(this.hideTimer)}getAnchor(t,e){let i,{chart:s,pointer:o}=this,r=s.inverted,a=s.plotTop,n=s.plotLeft;if(t=J(t),t[0].series?.yAxis&&!t[0].series.yAxis.options.reversedStacks&&(t=t.slice().reverse()),this.followPointer&&e)e.chartX===void 0&&(e=o.normalize(e)),i=[e.chartX-n,e.chartY-a];else if(t[0].tooltipPos)i=t[0].tooltipPos;else{let d=0,p=0;t.forEach(function(c){let g=c.pos(!0);g&&(d+=g[0],p+=g[1])}),d/=t.length,p/=t.length,this.shared&&t.length>1&&e&&(r?d=e.chartX:p=e.chartY),i=[d-n,p-a]}return i.map(Math.round)}getClassName(t,e,i){let s=this.options,o=t.series,r=o.options;return[s.className,"highcharts-label",i&&"highcharts-tooltip-header",e?"highcharts-tooltip-box":"highcharts-tooltip",!i&&"highcharts-color-"+It(t.colorIndex,o.colorIndex),r?.className].filter(Et).join(" ")}getLabel({anchorX:t,anchorY:e}={anchorX:0,anchorY:0}){let i=this,s=this.chart.styledMode,o=this.options,r=this.split&&this.allowShared,a=this.container,n=this.chart.renderer;if(this.label){let d=!this.label.hasClass("highcharts-label");(!r&&d||r&&!d)&&this.destroy()}if(!this.label){if(this.outside){let d=this.chart,p=d.options.chart.style,c=ri.getRendererType();this.container=a=V.doc.createElement("div"),a.className="highcharts-tooltip-container "+(d.renderTo.className.match(/(highcharts[a-zA-Z0-9-]+)\s?/gm)||""),Q(a,{position:"absolute",top:"1px",pointerEvents:"none",zIndex:Math.max(this.options.style.zIndex||0,(p?.zIndex||0)+3)}),this.renderer=n=new c(a,0,0,p,void 0,void 0,n.styledMode)}if(r?this.label=n.g("tooltip"):(this.label=n.label("",t,e,o.shape||"callout",void 0,void 0,o.useHTML,void 0,"tooltip").attr({padding:o.padding,r:o.borderRadius}),s||this.label.attr({fill:o.backgroundColor,"stroke-width":o.borderWidth||0}).css(o.style).css({pointerEvents:o.style.pointerEvents||(this.shouldStickOnContact()?"auto":"none")})),i.outside){let d=this.label;[d.xSetter,d.ySetter].forEach((p,c)=>{d[c?"ySetter":"xSetter"]=g=>{p.call(d,i.distance),d[c?"y":"x"]=g,a&&(a.style[c?"top":"left"]=`${g}px`)}})}this.label.attr({zIndex:8}).shadow(o.shadow??!o.fixed).add()}return a&&!a.parentElement&&V.doc.body.appendChild(a),this.label}getPlayingField(){let{body:t,documentElement:e}=D,{chart:i,distance:s,outside:o}=this;return{width:o?Math.max(t.scrollWidth,e.scrollWidth,t.offsetWidth,e.offsetWidth,e.clientWidth)-2*s-2:i.chartWidth,height:o?Math.max(t.scrollHeight,e.scrollHeight,t.offsetHeight,e.offsetHeight,e.clientHeight):i.chartHeight}}getPosition(t,e,i){let{distance:s,chart:o,outside:r,pointer:a}=this,{inverted:n,plotLeft:d,plotTop:p,polar:c}=o,{plotX:g=0,plotY:m=0}=i,x={},y=n&&i.h||0,{height:k,width:v}=this.getPlayingField(),P=a.getChartPosition(),T=bt=>bt*P.scaleX,O=bt=>bt*P.scaleY,Y=bt=>{let ht=bt==="x";return[bt,ht?v:k,ht?t:e].concat(r?[ht?T(t):O(e),ht?P.left-s+T(g+d):P.top-s+O(m+p),0,ht?v:k]:[ht?t:e,ht?g+d:m+p,ht?d:p,ht?d+o.plotWidth:p+o.plotHeight])},B=Y("y"),R=Y("x"),X,j=!!i.negative;!c&&o.hoverSeries?.yAxis?.reversed&&(j=!j);let $=!this.followPointer&&It(i.ttBelow,!c&&!n===j),Z=function(bt,ht,yt,de,Ft,mi,Tt){let Ct=r?bt==="y"?O(s):T(s):s,Gt=(yt-de)/2,zt=de<Ft-s,ee=Ft+s+de<ht,oe=Ft-Ct-yt+Gt,jt=Ft+Ct-Gt;if($&&ee)x[bt]=jt;else if(!$&&zt)x[bt]=oe;else if(zt)x[bt]=Math.min(Tt-de,oe-y<0?oe:oe-y);else{if(!ee)return x[bt]=0,!1;x[bt]=Math.max(mi,jt+y+yt>ht?jt:jt+y)}},rt=function(bt,ht,yt,de,Ft){if(Ft<s||Ft>ht-s)return!1;Ft<yt/2?x[bt]=1:Ft>ht-de/2?x[bt]=ht-de-2:x[bt]=Ft-yt/2},nt=function(bt){[B,R]=[R,B],X=bt},pt=()=>{Z.apply(0,B)!==!1?rt.apply(0,R)!==!1||X||(nt(!0),pt()):X?x.x=x.y=0:(nt(!0),pt())};return(n&&!c||this.len>1)&&nt(),pt(),x}getFixedPosition(t,e,i){let s=i.series,{chart:o,options:r,split:a}=this,n=r.position,d=n.relativeTo,p=r.shared||s?.yAxis?.isRadial&&(d==="pane"||!d)?"plotBox":d,c=p==="chart"?o.renderer:o[p]||o.getClipBox(s,!0);return{x:c.x+(c.width-t)*_(n.align)+n.x,y:c.y+(c.height-e)*_(n.verticalAlign)+(!a&&n.y||0)}}hide(t){let e=this;mt.clearTimeout(this.hideTimer),t=It(t,this.options.hideDelay),this.isHidden||(this.hideTimer=lt(function(){let i=e.getLabel();e.getLabel().animate({opacity:0},{duration:t&&150,complete:()=>{i.hide(),e.container&&e.container.remove()}}),e.isHidden=!0},t))}init(t,e){this.chart=t,this.options=e,this.crosshairs=[],this.isHidden=!0,this.split=e.split&&!t.inverted&&!t.polar,this.shared=e.shared||this.split,this.outside=It(e.outside,!!(t.scrollablePixelsX||t.scrollablePixelsY))}shouldStickOnContact(t){return!!(!this.followPointer&&this.options.stickOnContact&&(!t||this.pointer.inClass(t.target,"highcharts-tooltip")))}move(t,e,i,s){let{followPointer:o,options:r}=this,a=A(!o&&!this.isHidden&&!r.fixed&&r.animation),n=o||(this.len||0)>1,d={x:t,y:e};n?d.anchorX=d.anchorY=NaN:(d.anchorX=i,d.anchorY=s),a.step=()=>this.drawTracker(),this.getLabel().animate(d,a)}refresh(t,e){let{chart:i,options:s,pointer:o,shared:r}=this,a=J(t),n=a[0],d=s.format,p=s.formatter||this.defaultFormatter,c=i.styledMode,g=this.allowShared;if(!s.enabled||!n.series)return;mt.clearTimeout(this.hideTimer),this.allowShared=!(!St(t)&&t.series&&t.series.noSharedTooltip),g=g&&!this.allowShared,this.followPointer=!this.split&&n.series.tooltipOptions.followPointer;let m=this.getAnchor(t,e),x=m[0],y=m[1];r&&this.allowShared&&(o.applyInactiveState(a),a.forEach(P=>P.setState("hover")),n.points=a),this.len=a.length;let k=Et(d)?w(d,n,i):p.call(n,this);n.points=void 0;let v=n.series;if(this.distance=It(v.tooltipOptions.distance,16),k===!1)this.hide();else{if(this.split&&this.allowShared)this.renderSplit(k,a);else{let P=x,T=y;if(e&&o.isDirectTouch&&(P=e.chartX-i.plotLeft,T=e.chartY-i.plotTop),i.polar||v.options.clip===!1||a.some(O=>o.isDirectTouch||O.series.shouldShowTooltip(P,T))){let O=this.getLabel(g&&this.tt||{});(!s.style.width||c)&&O.css({width:(this.outside?this.getPlayingField():i.spacingBox).width+"px"}),O.attr({class:this.getClassName(n),text:k&&k.join?k.join(""):k}),this.outside&&O.attr({x:F(O.x||0,0,this.getPlayingField().width-(O.width||0)-1)}),c||O.attr({stroke:s.borderColor||n.color||v.color||"#666666"}),this.updatePosition({plotX:x,plotY:y,negative:n.negative,ttBelow:n.ttBelow,series:v,h:m[2]||0})}else{this.hide();return}}this.isHidden&&this.label&&this.label.attr({opacity:1}).show(),this.isHidden=!1}st(this,"refresh")}renderSplit(t,e){let i=this,{chart:s,chart:{chartWidth:o,chartHeight:r,plotHeight:a,plotLeft:n,plotTop:d,scrollablePixelsY:p=0,scrollablePixelsX:c,styledMode:g},distance:m,options:x,options:{fixed:y,position:k,positioner:v},pointer:P}=i,{scrollLeft:T=0,scrollTop:O=0}=s.scrollablePlotArea?.scrollingContainer||{},Y=i.outside&&typeof c!="number"?D.documentElement.getBoundingClientRect():{left:T,right:T+o,top:O,bottom:O+r},B=i.getLabel(),R=this.renderer||s.renderer,X=!!s.xAxis[0]?.opposite,{left:j,top:$}=P.getChartPosition(),Z=v||y,rt=d+O,nt=0,pt=a-p,bt=function(Tt,Ct,Gt,zt=[0,0],ee=!0){let oe,jt;if(Gt.isHeader)jt=X?0:pt,oe=F(zt[0]-Tt/2,Y.left,Y.right-Tt-(i.outside?j:0));else if(y&&Gt){let me=i.getFixedPosition(Tt,Ct,Gt);oe=me.x,jt=me.y-rt}else jt=zt[1]-rt,oe=F(oe=ee?zt[0]-Tt-m:zt[0]+m,ee?oe:Y.left,Y.right);return{x:oe,y:jt}};Et(t)&&(t=[!1,t]);let ht=t.slice(0,e.length+1).reduce(function(Tt,Ct,Gt){if(Ct!==!1&&Ct!==""){let zt=e[Gt-1]||{isHeader:!0,plotX:e[0].plotX,plotY:a,series:{}},ee=zt.isHeader,oe=ee?i:zt.series,jt=oe.tt=(function(Or,Ji,pa){let So=Or,{isHeader:hr,series:ua}=Ji,ms=ua.tooltipOptions||x;if(!So){let Ir={padding:ms.padding,r:ms.borderRadius};g||(Ir.fill=ms.backgroundColor,Ir["stroke-width"]=ms.borderWidth??(y&&!hr?0:1)),So=R.label("",0,0,ms[hr?"headerShape":"shape"]||(y&&!hr?"rect":"callout"),void 0,void 0,ms.useHTML).addClass(i.getClassName(Ji,!0,hr)).attr(Ir).add(B)}return So.isActive=!0,So.attr({text:pa}),g||So.css(ms.style).attr({stroke:ms.borderColor||Ji.color||ua.color||"#333333"}),So})(oe.tt,zt,Ct.toString()),me=jt.getBBox(),xi=me.width+jt.strokeWidth();ee&&(nt=me.height,pt+=nt,X&&(rt-=nt));let{anchorX:Li,anchorY:Po}=(function(Or){let Ji,pa,{isHeader:So,plotX:hr=0,plotY:ua=0,series:ms}=Or;if(So)Ji=Math.max(n+hr,n),pa=d+a/2;else{let{xAxis:Ir,yAxis:sd}=ms;Ji=Ir.pos+F(hr,-m,Ir.len+m),ms.shouldShowTooltip(0,sd.pos-d+ua,{ignoreX:!0})&&(pa=sd.pos+ua)}return{anchorX:Ji=F(Ji,Y.left-m,Y.right+m),anchorY:pa}})(zt);if(typeof Po=="number"){let Or=me.height+1,Ji=(v||bt).call(i,xi,Or,zt,[Li,Po]);Tt.push({align:Z?0:void 0,anchorX:Li,anchorY:Po,boxWidth:xi,point:zt,rank:It(Ji.rank,+!!ee),size:Or,target:Ji.y,tt:jt,x:Ji.x})}else jt.isActive=!1}return Tt},[]);!Z&&ht.some(Tt=>{let{outside:Ct}=i,Gt=(Ct?j:0)+Tt.anchorX;return Gt<Y.left&&Gt+Tt.boxWidth<Y.right||Gt<j-Y.left+Tt.boxWidth&&Y.right-Gt>Gt})&&(ht=ht.map(Tt=>{let{x:Ct,y:Gt}=bt.call(this,Tt.boxWidth,Tt.size,Tt.point,[Tt.anchorX,Tt.anchorY],!1);return q(Tt,{target:Gt,x:Ct})})),i.cleanSplit(),N(ht,pt);let yt={left:j,right:j};ht.forEach(function(Tt){let{x:Ct,boxWidth:Gt,isHeader:zt}=Tt;!zt&&(i.outside&&j+Ct<yt.left&&(yt.left=j+Ct),!zt&&i.outside&&yt.left+Gt>yt.right&&(yt.right=j+Ct))}),ht.forEach(function(Tt){let{x:Ct,anchorX:Gt,anchorY:zt,pos:ee,point:{isHeader:oe}}=Tt,jt={visibility:ee===void 0?"hidden":"inherit",x:Ct,y:(ee||0)+rt+(y&&k.y||0),anchorX:Gt,anchorY:zt};if(i.outside&&Ct<Gt){let me=j-yt.left;me>0&&(oe||(jt.x=Ct+me,jt.anchorX=Gt+me),oe&&(jt.x=(yt.right-yt.left)/2,jt.anchorX=Gt+me))}Tt.tt.attr(jt)});let{container:de,outside:Ft,renderer:mi}=i;if(Ft&&de&&mi){let{width:Tt,height:Ct,x:Gt,y:zt}=B.getBBox();mi.setSize(Tt+Gt,Ct+zt,!1),de.style.left=yt.left+"px",de.style.top=$+"px"}z&&B.attr({opacity:B.opacity===1?.999:1})}drawTracker(){if(!this.shouldStickOnContact()){this.tracker&&(this.tracker=this.tracker.destroy());return}let t=this.chart,e=this.label,i=this.shared?t.hoverPoints:t.hoverPoint;if(!e||!i)return;let s={x:0,y:0,width:0,height:0},o=this.getAnchor(i),r=e.getBBox();o[0]+=t.plotLeft-(e.translateX||0),o[1]+=t.plotTop-(e.translateY||0),s.x=Math.min(0,o[0]),s.y=Math.min(0,o[1]),s.width=o[0]<0?Math.max(Math.abs(o[0]),r.width-o[0]):Math.max(Math.abs(o[0]),r.width),s.height=o[1]<0?Math.max(Math.abs(o[1]),r.height-Math.abs(o[1])):Math.max(Math.abs(o[1]),r.height),this.tracker?this.tracker.attr(s):(this.tracker=e.renderer.rect(s).addClass("highcharts-tracker").add(e),t.styledMode||this.tracker.attr({fill:"rgba(0,0,0,0)"}))}styledModeFormat(t){return t.replace('style="font-size: 0.8em"','class="highcharts-header"').replace(/style="color:{(point|series)\.color}"/g,'class="highcharts-color-{$1.colorIndex} {series.options.className} {point.options.className}"')}headerFooterFormatter(t,e){let i=t.series,s=i.tooltipOptions,o=i.xAxis,r=o?.dateTime,a={isFooter:e,point:t},n=s.xDateFormat||"",d=s[e?"footerFormat":"headerFormat"];return st(this,"headerFormatter",a,function(p){if(r&&!n&>(t.key)&&(n=r.getXDateFormat(t.key,s.dateTimeLabelFormats)),r&&n){if(Rt(n)){let c=n;I[0]=g=>i.chart.time.dateFormat(c,g),n="%0"}(t.tooltipDateKeys||["key"]).forEach(c=>{d=d.replace(RegExp("point\\."+c+"([ \\)}])"),`(point.${c}:${n})$1`)})}i.chart.styledMode&&(d=this.styledModeFormat(d)),p.text=w(d,t,this.chart)}),a.text||""}update(t){this.destroy(),this.init(this.chart,xt(!0,this.options,t))}updatePosition(t){let{chart:e,container:i,distance:s,options:o,pointer:r,renderer:a}=this,{height:n=0,width:d=0}=this.getLabel(),{fixed:p,positioner:c}=o,{left:g,top:m,scaleX:x,scaleY:y}=r.getChartPosition(),k=(c||p&&this.getFixedPosition||this.getPosition).call(this,d,n,t),v=V.doc,P=(t.plotX||0)+e.plotLeft,T=(t.plotY||0)+e.plotTop,O;if(a&&i){if(c||p){let{scrollLeft:Y=0,scrollTop:B=0}=e.scrollablePlotArea?.scrollingContainer||{};k.x+=Y+g-s,k.y+=B+m-s}O=(o.borderWidth||0)+2*s+2,a.setSize(F(d+O,0,v.documentElement.clientWidth)-1,n+O,!1),(x!==1||y!==1)&&(Q(i,{transform:`scale(${x}, ${y})`}),P*=x,T*=y),P+=g-k.x,T+=m-k.y}this.move(Math.round(k.x),Math.round(k.y||0),P,T)}}(function(l){l.compose=function(t){le(L,"Core.Tooltip")&&G(t,"afterInit",function(){let e=this.chart;e.options.tooltip&&(e.tooltip=new l(e,e.options.tooltip,this))})}})(at||(at={}));let ct=at,{animObject:Lt}=K,{defaultOptions:Mt}=Ze,{format:At}=fe,{addEvent:_t,crisp:se,erase:he,extend:ki,fireEvent:fi,getNestedProperty:Xe,isArray:Xt,isFunction:Le,isNumber:te,isObject:ei,merge:us,pick:Ie,syncTimeout:Yi,removeEvent:Ci,uniqueKey:bo}=mt;class _e{animateBeforeDestroy(){let t=this,e={x:t.startXPos,opacity:0},i=t.getGraphicalProps();i.singular.forEach(function(s){t[s]=t[s].animate(s==="dataLabel"?{x:t[s].startXPos,y:t[s].startYPos,opacity:0}:e)}),i.plural.forEach(function(s){t[s].forEach(function(o){o.element&&o.animate(ki({x:t.startXPos},o.startYPos?{x:o.startXPos,y:o.startYPos}:{}))})})}applyOptions(t,e){let i=this.series,s=i.options.pointValKey||i.pointValKey;return ki(this,t=_e.prototype.optionsToObject.call(this,t)),this.options=this.options?ki(this.options,t):t,t.group&&delete this.group,t.dataLabels&&delete this.dataLabels,s&&(this.y=_e.prototype.getNestedProperty.call(this,s)),this.selected&&(this.state="select"),"name"in this&&e===void 0&&i.xAxis&&i.xAxis.hasNames&&(this.x=i.xAxis.nameToX(this)),this.x===void 0&&i?this.x=e??i.autoIncrement():te(t.x)&&i.options.relativeXValue?this.x=i.autoIncrement(t.x):typeof this.x=="string"&&(e??(e=i.chart.time.parse(this.x)),te(e)&&(this.x=e)),this.isNull=this.isValid&&!this.isValid(),this.formatPrefix=this.isNull?"null":"point",this}destroy(){if(!this.destroyed){let t=this,e=t.series,i=e.chart,s=e.options.dataSorting,o=i.hoverPoints,r=Lt(t.series.chart.renderer.globalAnimation),a=()=>{for(let n in(t.graphic||t.graphics||t.dataLabel||t.dataLabels)&&(Ci(t),t.destroyElements()),t)delete t[n]};t.legendItem&&i.legend.destroyItem(t),o&&(t.setState(),he(o,t),o.length||(i.hoverPoints=null)),t===i.hoverPoint&&t.onMouseOut(),s?.enabled?(this.animateBeforeDestroy(),Yi(a,r.duration)):a(),i.pointCount--}this.destroyed=!0}destroyElements(t){let e=this,i=e.getGraphicalProps(t);i.singular.forEach(function(s){e[s]=e[s].destroy()}),i.plural.forEach(function(s){e[s].forEach(function(o){o?.element&&o.destroy()}),delete e[s]})}firePointEvent(t,e,i){let s=this,o=this.series.options;s.manageEvent(t),t==="click"&&o.allowPointSelect&&(i=function(r){!s.destroyed&&s.select&&s.select(null,r.ctrlKey||r.metaKey||r.shiftKey)}),fi(s,t,e,i)}getClassName(){return"highcharts-point"+(this.selected?" highcharts-point-select":"")+(this.negative?" highcharts-negative":"")+(this.isNull?" highcharts-null-point":"")+(this.colorIndex!==void 0?" highcharts-color-"+this.colorIndex:"")+(this.options.className?" "+this.options.className:"")+(this.zone?.className?" "+this.zone.className.replace("highcharts-negative",""):"")}getGraphicalProps(t){let e,i,s=this,o=[],r={singular:[],plural:[]};for((t=t||{graphic:1,dataLabel:1}).graphic&&o.push("graphic","connector"),t.dataLabel&&o.push("dataLabel","dataLabelPath","dataLabelUpper"),i=o.length;i--;)s[e=o[i]]&&r.singular.push(e);return["graphic","dataLabel"].forEach(function(a){let n=a+"s";t[a]&&s[n]&&r.plural.push(n)}),r}getNestedProperty(t){return t?t.indexOf("custom.")===0?Xe(t,this.options):this[t]:void 0}getZone(){let t=this.series,e=t.zones,i=t.zoneAxis||"y",s,o=0;for(s=e[0];this[i]>=s.value;)s=e[++o];return this.nonZonedColor||(this.nonZonedColor=this.color),s?.color&&!this.options.color?this.color=s.color:this.color=this.nonZonedColor,s}hasNewShapeType(){return(this.graphic&&(this.graphic.symbolName||this.graphic.element.nodeName))!==this.shapeType}constructor(t,e,i){this.formatPrefix="point",this.visible=!0,this.point=this,this.series=t,this.applyOptions(e,i),this.id??(this.id=bo()),this.resolveColor(),this.dataLabelOnNull??(this.dataLabelOnNull=t.options.nullInteraction),t.chart.pointCount++,fi(this,"afterInit")}isValid(){return(te(this.x)||this.x instanceof Date)&&te(this.y)}optionsToObject(t){let e=this.series,i=e.options.keys,s=i||e.pointArrayMap||["y"],o=s.length,r={},a,n=0,d=0;if(te(t)||t===null)r[s[0]]=t;else if(Xt(t))for(!i&&t.length>o&&((a=typeof t[0])=="string"?e.xAxis?.dateTime?r.x=e.chart.time.parse(t[0]):r.name=t[0]:a==="number"&&(r.x=t[0]),n++);d<o;)i&&t[n]===void 0||(s[d].indexOf(".")>0?_e.prototype.setNestedProperty(r,t[n],s[d]):r[s[d]]=t[n]),n++,d++;else typeof t=="object"&&(r=t,t.dataLabels&&(e.hasDataLabels=()=>!0),t.marker&&(e._hasPointMarkers=!0));return r}pos(t,e=this.plotY){if(!this.destroyed){let{plotX:i,series:s}=this,{chart:o,xAxis:r,yAxis:a}=s,n=0,d=0;if(te(i)&&te(e))return t&&(n=r?r.pos:o.plotLeft,d=a?a.pos:o.plotTop),o.inverted&&r&&a?[a.len-e+d,r.len-i+n]:[i+n,e+d]}}resolveColor(){let t=this.series,e=t.chart.options.chart,i=t.chart.styledMode,s,o,r=e.colorCount,a;delete this.nonZonedColor,t.options.colorByPoint?(i||(s=(o=t.options.colors||t.chart.options.colors)[t.colorCounter],r=o.length),a=t.colorCounter,t.colorCounter++,t.colorCounter===r&&(t.colorCounter=0)):(i||(s=t.color),a=t.colorIndex),this.colorIndex=Ie(this.options.colorIndex,a),this.color=Ie(this.options.color,s)}setNestedProperty(t,e,i){return i.split(".").reduce(function(s,o,r,a){let n=a.length-1===r;return s[o]=n?e:ei(s[o],!0)?s[o]:{},s[o]},t),t}shouldDraw(){return!this.isNull}tooltipFormatter(t){let{chart:e,pointArrayMap:i=["y"],tooltipOptions:s}=this.series,{valueDecimals:o="",valuePrefix:r="",valueSuffix:a=""}=s;return e.styledMode&&(t=e.tooltip?.styledModeFormat(t)||t),i.forEach(n=>{n="{point."+n,(r||a)&&(t=t.replace(RegExp(n+"}","g"),r+n+"}"+a)),t=t.replace(RegExp(n+"}","g"),n+":,."+o+"f}")}),At(t,this,e)}update(t,e,i,s){let o,r=this,a=r.series,n=r.graphic,d=a.chart,p=a.options;function c(){r.applyOptions(t);let g=n&&r.hasMockGraphic,m=r.y===null?!g:g;n&&m&&(r.graphic=n.destroy(),delete r.hasMockGraphic),ei(t,!0)&&(n?.element&&t&&t.marker&&t.marker.symbol!==void 0&&(r.graphic=n.destroy()),t?.dataLabels&&r.dataLabel&&(r.dataLabel=r.dataLabel.destroy())),o=r.index;let x={};for(let y of a.dataColumnKeys())x[y]=r[y];a.dataTable.setRow(x,o),p.data[o]=ei(p.data[o],!0)||ei(t,!0)?r.options:Ie(t,p.data[o]),a.isDirty=a.isDirtyData=!0,!a.fixedBox&&a.hasCartesianSeries&&(d.isDirtyBox=!0),p.legendType==="point"&&(d.isDirtyLegend=!0),e&&d.redraw(i)}e=Ie(e,!0),s===!1?c():r.firePointEvent("update",{options:t},c)}remove(t,e){this.series.removePoint(this.series.data.indexOf(this),t,e)}select(t,e){let i=this,s=i.series,o=s.chart;t=Ie(t,!i.selected),this.selectedStaging=t,i.firePointEvent(t?"select":"unselect",{accumulate:e},function(){i.selected=i.options.selected=t,s.options.data[s.data.indexOf(i)]=i.options,i.setState(t&&"select"),e||o.getSelectedPoints().forEach(function(r){let a=r.series;r.selected&&r!==i&&(r.selected=r.options.selected=!1,a.options.data[a.data.indexOf(r)]=r.options,r.setState(o.hoverPoints&&a.options.inactiveOtherPoints?"inactive":""),r.firePointEvent("unselect"))})}),delete this.selectedStaging}onMouseOver(t){let{inverted:e,pointer:i}=this.series.chart;i&&(t=t?i.normalize(t):i.getChartCoordinatesFromPoint(this,e),i.runPointActions(t,this))}onMouseOut(){let t=this.series.chart;this.firePointEvent("mouseOut"),this.series.options.inactiveOtherPoints||(t.hoverPoints||[]).forEach(function(e){e.setState()}),t.hoverPoints=t.hoverPoint=null}manageEvent(t){let e=us(this.series.options.point,this.options),i=e.events?.[t];Le(i)&&(!this.hcEvents?.[t]||this.hcEvents?.[t]?.map(s=>s.fn).indexOf(i)===-1)?(this.importedUserEvent?.(),this.importedUserEvent=_t(this,t,i),this.hcEvents&&(this.hcEvents[t].userEvent=!0)):this.importedUserEvent&&!i&&this.hcEvents?.[t]&&this.hcEvents?.[t].userEvent&&(Ci(this,t),delete this.hcEvents[t],Object.keys(this.hcEvents)||delete this.importedUserEvent)}setState(t,e){let i=this.series,s=this.state,o=i.options.states[t||"normal"]||{},r=Mt.plotOptions[i.type].marker&&i.options.marker,a=r&&r.enabled===!1,n=r?.states?.[t||"normal"]||{},d=n.enabled===!1,p=this.marker||{},c=i.chart,g=r&&i.markerAttribs,m=i.halo,x,y,k,v=i.stateMarkerGraphic,P;if((t=t||"")===this.state&&!e||this.selected&&t!=="select"||o.enabled===!1||t&&(d||a&&n.enabled===!1)||t&&p.states&&p.states[t]&&p.states[t].enabled===!1)return;if(this.state=t,g&&(x=i.markerAttribs(this,t)),this.graphic&&!this.hasMockGraphic){if(s&&this.graphic.removeClass("highcharts-point-"+s),t&&this.graphic.addClass("highcharts-point-"+t),!c.styledMode){y=i.pointAttribs(this,t),k=Ie(c.options.chart.animation,o.animation);let B=y.opacity;i.options.inactiveOtherPoints&&te(B)&&(this.dataLabels||[]).forEach(function(R){R&&!R.hasClass("highcharts-data-label-hidden")&&(R.animate({opacity:B},k),R.connector&&R.connector.animate({opacity:B},k))}),this.graphic.animate(y,k)}x&&this.graphic.animate(x,Ie(c.options.chart.animation,n.animation,r.animation)),v&&v.hide()}else t&&n&&(P=p.symbol||i.symbol,v&&v.currentSymbol!==P&&(v=v.destroy()),x&&(v?v[e?"animate":"attr"]({x:x.x,y:x.y}):P&&(i.stateMarkerGraphic=v=c.renderer.symbol(P,x.x,x.y,x.width,x.height,us(r,n)).add(i.markerGroup),v.currentSymbol=P)),!c.styledMode&&v&&this.state!=="inactive"&&v.attr(i.pointAttribs(this,t))),v&&(v[t&&this.isInside?"show":"hide"](),v.element.point=this,v.addClass(this.getClassName(),!0));let T=o.halo,O=this.graphic||v,Y=O?.visibility||"inherit";T?.size&&O&&Y!=="hidden"&&!this.isCluster?(m||(i.halo=m=c.renderer.path().add(O.parentGroup)),m.show()[e?"animate":"attr"]({d:this.haloPath(T.size)}),m.attr({class:"highcharts-halo highcharts-color-"+Ie(this.colorIndex,i.colorIndex)+(this.className?" "+this.className:""),visibility:Y,zIndex:-1}),m.point=this,c.styledMode||m.attr(ki({fill:this.color||i.color,"fill-opacity":T.opacity},Pt.filterUserAttributes(T.attributes||{})))):m?.point?.haloPath&&!m.point.destroyed&&m.animate({d:m.point.haloPath(0)},null,m.hide),fi(this,"afterSetState",{state:t})}haloPath(t){let e=this.pos();return e?this.series.chart.renderer.symbols.circle(se(e[0],1)-t,e[1]-t,2*t,2*t):[]}}let ii=_e,{parse:or}=$t,{charts:io,composed:so,isTouchDevice:cd}=V,{addEvent:Ki,attr:pd,css:il,extend:sl,find:Ul,fireEvent:yo,isNumber:en,isObject:sn,objectEach:ud,offset:gd,pick:Xs,pushUnique:fd,splat:jl}=mt;class qe{applyInactiveState(t=[]){let e=[];t.forEach(i=>{let s=i.series;e.push(s),s.linkedParent&&e.push(s.linkedParent),s.linkedSeries&&e.push.apply(e,s.linkedSeries),s.navigatorSeries&&e.push(s.navigatorSeries),s.boosted&&s.markerGroup&&e.push.apply(e,this.chart.series.filter(o=>o.markerGroup===s.markerGroup))}),this.chart.series.forEach(i=>{e.indexOf(i)===-1?i.setState("inactive",!0):i.options.inactiveOtherPoints&&i.setAllPointsToState("inactive")})}destroy(){let t=this;this.eventsToUnbind.forEach(e=>e()),this.eventsToUnbind=[],!V.chartCount&&(qe.unbindDocumentMouseUp.forEach(e=>e.unbind()),qe.unbindDocumentMouseUp.length=0,qe.unbindDocumentTouchEnd&&(qe.unbindDocumentTouchEnd=qe.unbindDocumentTouchEnd())),clearInterval(t.tooltipTimeout),ud(t,function(e,i){t[i]=void 0})}getSelectionMarkerAttrs(t,e){let i={args:{chartX:t,chartY:e},attrs:{},shapeType:"rect"};return yo(this,"getSelectionMarkerAttrs",i,s=>{let o,{chart:r,zoomHor:a,zoomVert:n}=this,{mouseDownX:d=0,mouseDownY:p=0}=r,c=s.attrs;c.x=r.plotLeft,c.y=r.plotTop,c.width=a?1:r.plotWidth,c.height=n?1:r.plotHeight,a&&(c.width=Math.max(1,Math.abs(o=t-d)),c.x=(o>0?0:o)+d),n&&(c.height=Math.max(1,Math.abs(o=e-p)),c.y=(o>0?0:o)+p)}),i}drag(t){let{chart:e}=this,{mouseDownX:i=0,mouseDownY:s=0}=e,{panning:o,panKey:r,selectionMarkerFill:a}=e.options.chart,n=e.plotLeft,d=e.plotTop,p=e.plotWidth,c=e.plotHeight,g=sn(o)?o.enabled:o,m=r&&t[`${r}Key`],x=t.chartX,y=t.chartY,k,v=this.selectionMarker;if((!v||!v.touch)&&(x<n?x=n:x>n+p&&(x=n+p),y<d?y=d:y>d+c&&(y=d+c),this.hasDragged=Math.sqrt(Math.pow(i-x,2)+Math.pow(s-y,2)),this.hasDragged>10)){k=e.isInsidePlot(i-n,s-d,{visiblePlotOnly:!0});let{shapeType:P,attrs:T}=this.getSelectionMarkerAttrs(x,y);(e.hasCartesianSeries||e.mapView)&&this.hasZoom&&k&&!m&&!v&&(this.selectionMarker=v=e.renderer[P](),v.attr({class:"highcharts-selection-marker",zIndex:7}).add(),e.styledMode||v.attr({fill:a||or("#334eff").setOpacity(.25).get()})),v&&v.attr(T),k&&!v&&g&&e.pan(t,o)}}dragStart(t){let e=this.chart;e.mouseIsDown=t.type,e.cancelClick=!1,e.mouseDownX=t.chartX,e.mouseDownY=t.chartY}getSelectionBox(t){let e={args:{marker:t},result:t.getBBox()};return yo(this,"getSelectionBox",e),e.result}drop(t){let e,{chart:i,selectionMarker:s}=this;for(let o of i.axes)o.isPanning&&(o.isPanning=!1,(o.options.startOnTick||o.options.endOnTick||o.series.some(r=>r.boosted))&&(o.forceRedraw=!0,o.setExtremes(o.userMin,o.userMax,!1),e=!0));if(e&&i.redraw(),s&&t){if(this.hasDragged){let o=this.getSelectionBox(s);i.transform({axes:i.axes.filter(r=>r.zoomEnabled&&(r.coll==="xAxis"&&this.zoomX||r.coll==="yAxis"&&this.zoomY)),selection:ts({originalEvent:t,xAxis:[],yAxis:[]},o),from:o})}en(i.index)&&(this.selectionMarker=s.destroy())}i&&en(i.index)&&(il(i.container,{cursor:i._cursor}),i.cancelClick=this.hasDragged>10,i.mouseIsDown=!1,this.hasDragged=0,this.pinchDown=[])}findNearestKDPoint(t,e,i){let s;return t.forEach(function(o){let r=!(o.noSharedTooltip&&e)&&0>o.options.findNearestPointBy.indexOf("y"),a=o.searchPoint(i,r);sn(a,!0)&&a.series&&(!sn(s,!0)||(function(n,d){let p,c=n.distX-d.distX,g=n.dist-d.dist,m=d.series.group?.zIndex-n.series.group?.zIndex;return c!==0&&e?c:g!==0?g:m!==0?m:n.series.index>d.series.index?-1:1})(s,a)>0)&&(s=a)}),s}getChartCoordinatesFromPoint(t,e){let{xAxis:i,yAxis:s}=t.series,o=t.shapeArgs;if(i&&s){let r=t.clientX??t.plotX??0,a=t.plotY||0;return t.isNode&&o&&en(o.x)&&en(o.y)&&(r=o.x,a=o.y),e?{chartX:s.len+s.pos-a,chartY:i.len+i.pos-r}:{chartX:r+i.pos,chartY:a+s.pos}}if(o?.x&&o.y)return{chartX:o.x,chartY:o.y}}getChartPosition(){if(this.chartPosition)return this.chartPosition;let{container:t}=this.chart,e=gd(t);this.chartPosition={left:e.left,top:e.top,scaleX:1,scaleY:1};let{offsetHeight:i,offsetWidth:s}=t;return s>2&&i>2&&(this.chartPosition.scaleX=e.width/s,this.chartPosition.scaleY=e.height/i),this.chartPosition}getCoordinates(t){let e={xAxis:[],yAxis:[]};for(let i of this.chart.axes)e[i.isXAxis?"xAxis":"yAxis"].push({axis:i,value:i.toValue(t[i.horiz?"chartX":"chartY"])});return e}getHoverData(t,e,i,s,o,r){let a=[],n=function(m){return m.visible&&!(!o&&m.directTouch)&&Xs(m.options.enableMouseTracking,!0)},d=e,p,c={chartX:r?r.chartX:void 0,chartY:r?r.chartY:void 0,shared:o};yo(this,"beforeGetHoverData",c),p=d&&!d.stickyTracking?[d]:i.filter(m=>m.stickyTracking&&(c.filter||n)(m));let g=s&&t||!r?t:this.findNearestKDPoint(p,o,r);return d=g?.series,g&&(o&&!d.noSharedTooltip?(p=i.filter(function(m){return c.filter?c.filter(m):n(m)&&!m.noSharedTooltip})).forEach(function(m){let x=m.options?.nullInteraction,y=Ul(m.points,function(k){return k.x===g.x&&(!k.isNull||!!x)});sn(y)&&(m.boosted&&m.boost&&(y=m.boost.getPoint(y)),a.push(y))}):a.push(g)),yo(this,"afterGetHoverData",c={hoverPoint:g}),{hoverPoint:c.hoverPoint,hoverSeries:d,hoverPoints:a}}getPointFromEvent(t){let e=t.target,i;for(;e&&!i;)i=e.point,e=e.parentNode;return i}onTrackerMouseOut(t){let e=this.chart,i=t.relatedTarget,s=e.hoverSeries;this.isDirectTouch=!1,!s||!i||s.stickyTracking||this.inClass(i,"highcharts-tooltip")||this.inClass(i,"highcharts-series-"+s.index)&&this.inClass(i,"highcharts-tracker")||s.onMouseOut()}inClass(t,e){let i=t,s;for(;i;){if(s=pd(i,"class")){if(s.indexOf(e)!==-1)return!0;if(s.indexOf("highcharts-container")!==-1)return!1}i=i.parentElement}}constructor(t,e){this.hasDragged=0,this.pointerCaptureEventsToUnbind=[],this.eventsToUnbind=[],this.options=e,this.chart=t,this.runChartClick=!!e.chart.events?.click,this.pinchDown=[],this.setDOMEvents(),yo(this,"afterInit")}normalize(t,e){let i=t.touches,s=i?i.length?i.item(0):Xs(i.changedTouches,t.changedTouches)[0]:t;e||(e=this.getChartPosition());let o=s.pageX-e.left,r=s.pageY-e.top;return sl(t,{chartX:Math.round(o/=e.scaleX),chartY:Math.round(r/=e.scaleY)})}onContainerClick(t){let e=this.chart,i=e.hoverPoint,s=this.normalize(t),o=e.plotLeft,r=e.plotTop;!e.cancelClick&&(i&&this.inClass(s.target,"highcharts-tracker")?(yo(i.series,"click",sl(s,{point:i})),e.hoverPoint&&i.firePointEvent("click",s)):(sl(s,this.getCoordinates(s)),e.isInsidePlot(s.chartX-o,s.chartY-r,{visiblePlotOnly:!0})&&yo(e,"click",s)))}onContainerMouseDown(t){let e=(1&(t.buttons||t.button))==1;t=this.normalize(t),V.isFirefox&&t.button!==0&&this.onContainerMouseMove(t),(t.button===void 0||e)&&(this.zoomOption(t),e&&t.preventDefault?.(),this.dragStart(t))}onContainerMouseLeave(t){let{pointer:e}=io[Xs(qe.hoverChartIndex,-1)]||{};t=this.normalize(t),this.onContainerMouseMove(t),e&&!this.inClass(t.relatedTarget,"highcharts-tooltip")&&(e.reset(),e.chartPosition=void 0)}onContainerMouseEnter(){delete this.chartPosition}onContainerMouseMove(t){let e=this.chart,i=e.tooltip,s=this.normalize(t);this.setHoverChartIndex(t),(e.mouseIsDown==="mousedown"||this.touchSelect(s))&&this.drag(s),!e.openMenu&&(this.inClass(s.target,"highcharts-tracker")||e.isInsidePlot(s.chartX-e.plotLeft,s.chartY-e.plotTop,{visiblePlotOnly:!0}))&&!i?.shouldStickOnContact(s)&&(this.inClass(s.target,"highcharts-no-tooltip")?this.reset(!1,0):this.runPointActions(s))}onDocumentTouchEnd(t){this.onDocumentMouseUp(t)}onContainerTouchMove(t){this.touchSelect(t)?this.onContainerMouseMove(t):this.touch(t)}onContainerTouchStart(t){this.touchSelect(t)?this.onContainerMouseDown(t):(this.zoomOption(t),this.touch(t,!0))}onDocumentMouseMove(t){let e=this.chart,i=e.tooltip,s=this.chartPosition,o=this.normalize(t,s);!s||e.isInsidePlot(o.chartX-e.plotLeft,o.chartY-e.plotTop,{visiblePlotOnly:!0})||i?.shouldStickOnContact(o)||o.target!==e.container.ownerDocument&&this.inClass(o.target,"highcharts-tracker")||this.reset()}onDocumentMouseUp(t){io[Xs(qe.hoverChartIndex,-1)]?.pointer?.drop(t)}pinch(t){let e=this,{chart:i,hasZoom:s,lastTouches:o}=e,r=[].map.call(t.touches||[],c=>e.normalize(c)),a=r.length,n=a===1&&(e.inClass(t.target,"highcharts-tracker")&&i.runTrackerClick||e.runChartClick),d=i.tooltip,p=a===1&&Xs(d?.options.followTouchMove,!0);a>1?e.initiated=!0:p&&(e.initiated=!1),s&&e.initiated&&!n&&t.cancelable!==!1&&t.preventDefault(),t.type==="touchstart"?(e.pinchDown=r,e.res=!0,i.mouseDownX=t.chartX):p?this.runPointActions(e.normalize(t)):o&&(yo(i,"touchpan",{originalEvent:t,touches:r},()=>{let c=g=>{let m=g[0],x=g[1]||m;return{x:m.chartX,y:m.chartY,width:x.chartX-m.chartX,height:x.chartY-m.chartY}};i.transform({axes:i.axes.filter(g=>g.zoomEnabled&&(this.zoomHor&&g.horiz||this.zoomVert&&!g.horiz)),to:c(r),from:c(o),trigger:t.type})}),e.res&&(e.res=!1,this.reset(!1,0))),e.lastTouches=r}reset(t,e){let i=this.chart,s=i.hoverSeries,o=i.hoverPoint,r=i.hoverPoints,a=i.tooltip,n=a?.shared?r:o;t&&n&&jl(n).forEach(function(d){d.series.isCartesian&&d.plotX===void 0&&(t=!1)}),t?a&&n&&jl(n).length&&(a.refresh(n),a.shared&&r?r.forEach(function(d){d.setState(d.state,!0),d.series.isCartesian&&(d.series.xAxis.crosshair&&d.series.xAxis.drawCrosshair(null,d),d.series.yAxis.crosshair&&d.series.yAxis.drawCrosshair(null,d))}):o&&(o.setState(o.state,!0),i.axes.forEach(function(d){d.crosshair&&o.series[d.coll]===d&&d.drawCrosshair(null,o)}))):(o&&o.onMouseOut(),r&&r.forEach(function(d){d.setState()}),s&&s.onMouseOut(),a&&a.hide(e),this.unDocMouseMove&&(this.unDocMouseMove=this.unDocMouseMove()),i.axes.forEach(function(d){d.hideCrosshair()}),i.hoverPoints=i.hoverPoint=void 0)}runPointActions(t,e,i){let s=this.chart,o=s.series,r=s.tooltip?.options.enabled?s.tooltip:void 0,a=!!r&&r.shared,n=e||s.hoverPoint,d=n?.series||s.hoverSeries,p=(!t||t.type!=="touchmove")&&(!!e||d?.directTouch&&this.isDirectTouch),c=this.getHoverData(n,d,o,p,a,t);n=c.hoverPoint,d=c.hoverSeries;let g=c.hoverPoints,m=d?.tooltipOptions.followPointer&&!d.tooltipOptions.split,x=a&&d&&!d.noSharedTooltip;if(n&&(i||n!==s.hoverPoint||r?.isHidden)){if((s.hoverPoints||[]).forEach(function(y){g.indexOf(y)===-1&&y.setState()}),s.hoverSeries!==d&&d.onMouseOver(),this.applyInactiveState(g),(g||[]).forEach(function(y){y.setState("hover")}),s.hoverPoint&&s.hoverPoint.firePointEvent("mouseOut"),!n.series)return;s.hoverPoints=g,s.hoverPoint=n,n.firePointEvent("mouseOver",void 0,()=>{r&&n&&r.refresh(x?g:n,t)})}else if(m&&r&&!r.isHidden){let y=r.getAnchor([{}],t);s.isInsidePlot(y[0],y[1],{visiblePlotOnly:!0})&&r.updatePosition({plotX:y[0],plotY:y[1]})}this.unDocMouseMove||(this.unDocMouseMove=Ki(s.container.ownerDocument,"mousemove",y=>io[qe.hoverChartIndex??-1]?.pointer?.onDocumentMouseMove(y)),this.eventsToUnbind.push(this.unDocMouseMove)),s.axes.forEach(function(y){let k,v=y.crosshair?.snap??!0;!v||(k=s.hoverPoint)&&k.series[y.coll]===y||(k=Ul(g,P=>P.series?.[y.coll]===y)),k||!v?y.drawCrosshair(t,k):y.hideCrosshair()})}setDOMEvents(){let t=this.chart.container,e=t.ownerDocument;t.onmousedown=this.onContainerMouseDown.bind(this),t.onmousemove=this.onContainerMouseMove.bind(this),t.onclick=this.onContainerClick.bind(this),this.eventsToUnbind.push(Ki(t,"mouseenter",this.onContainerMouseEnter.bind(this)),Ki(t,"mouseleave",this.onContainerMouseLeave.bind(this))),qe.unbindDocumentMouseUp.some(s=>s.doc===e)||qe.unbindDocumentMouseUp.push({doc:e,unbind:Ki(e,"mouseup",this.onDocumentMouseUp.bind(this))});let i=this.chart.renderTo.parentElement;for(;i&&i.tagName!=="BODY";)this.eventsToUnbind.push(Ki(i,"scroll",()=>{delete this.chartPosition})),i=i.parentElement;this.eventsToUnbind.push(Ki(t,"touchstart",this.onContainerTouchStart.bind(this),{passive:!1}),Ki(t,"touchmove",this.onContainerTouchMove.bind(this),{passive:!1})),qe.unbindDocumentTouchEnd||(qe.unbindDocumentTouchEnd=Ki(e,"touchend",this.onDocumentTouchEnd.bind(this),{passive:!1})),this.setPointerCapture(),Ki(this.chart,"redraw",this.setPointerCapture.bind(this))}setPointerCapture(){if(!cd)return;let t=this.pointerCaptureEventsToUnbind,e=this.chart,i=e.container,s=Xs(e.options.tooltip?.followTouchMove,!0)&&e.series.some(o=>o.options.findNearestPointBy.indexOf("y")>-1);!this.hasPointerCapture&&s?(t.push(Ki(i,"pointerdown",o=>{o.target?.hasPointerCapture(o.pointerId)&&o.target?.releasePointerCapture(o.pointerId)}),Ki(i,"pointermove",o=>{e.pointer?.getPointFromEvent(o)?.onMouseOver(o)})),e.styledMode||il(i,{"touch-action":"none"}),i.className+=" highcharts-no-touch-action",this.hasPointerCapture=!0):this.hasPointerCapture&&!s&&(t.forEach(o=>o()),t.length=0,e.styledMode||il(i,{"touch-action":Xs(e.options.chart.style?.["touch-action"],"manipulation")}),i.className=i.className.replace(" highcharts-no-touch-action",""),this.hasPointerCapture=!1)}setHoverChartIndex(t){let e=this.chart,i=V.charts[Xs(qe.hoverChartIndex,-1)];if(i&&i!==e){let s={relatedTarget:e.container};t&&!t?.relatedTarget&&Object.assign({},t,s),i.pointer?.onContainerMouseLeave(t||s)}i?.mouseIsDown||(qe.hoverChartIndex=e.index)}touch(t,e){let i,{chart:s,pinchDown:o=[]}=this;this.setHoverChartIndex(),(t=this.normalize(t)).touches.length===1?s.isInsidePlot(t.chartX-s.plotLeft,t.chartY-s.plotTop,{visiblePlotOnly:!0})&&!s.openMenu?(e&&this.runPointActions(t),t.type==="touchmove"&&(i=!!o[0]&&Math.pow(o[0].chartX-t.chartX,2)+Math.pow(o[0].chartY-t.chartY,2)>=16),Xs(i,!0)&&this.pinch(t)):e&&this.reset():t.touches.length===2&&this.pinch(t)}touchSelect(t){return!!(this.chart.zooming.singleTouch&&t.touches&&t.touches.length===1)}zoomOption(t){let e=this.chart,i=e.inverted,s=e.zooming.type||"",o,r;/touch/.test(t.type)&&(s=Xs(e.zooming.pinchType,s)),this.zoomX=o=/x/.test(s),this.zoomY=r=/y/.test(s),this.zoomHor=o&&!i||r&&i,this.zoomVert=r&&!i||o&&i,this.hasZoom=o||r}}qe.unbindDocumentMouseUp=[],(function(l){l.compose=function(t){fd(so,"Core.Pointer")&&Ki(t,"beforeRender",function(){this.pointer=new l(this,this.options)})}})(qe||(qe={}));let Vl=qe;(function(l){l.setLength=function(t,e,i){return Array.isArray(t)?(t.length=e,t):t[i?"subarray":"slice"](0,e)},l.splice=function(t,e,i,s,o=[]){if(Array.isArray(t))return Array.isArray(o)||(o=Array.from(o)),{removed:t.splice(e,i,...o),array:t};let r=Object.getPrototypeOf(t).constructor,a=t[s?"subarray":"slice"](e,e+i),n=new r(t.length-i+o.length);return n.set(t.subarray(0,e),0),n.set(o,e),n.set(t.subarray(e+i),e+o.length),{removed:a,array:n}}})(ce||(ce={}));let{setLength:md,splice:_l}=ce,{fireEvent:ol,objectEach:ia,uniqueKey:sa}=mt,on=class{constructor(l={}){this.autoId=!l.id,this.columns={},this.id=l.id||sa(),this.modified=this,this.rowCount=0,this.versionTag=sa();let t=0;ia(l.columns||{},(e,i)=>{this.columns[i]=e.slice(),t=Math.max(t,e.length)}),this.applyRowCount(t)}applyRowCount(l){this.rowCount=l,ia(this.columns,(t,e)=>{t.length!==l&&(this.columns[e]=md(t,l))})}deleteRows(l,t=1){if(t>0&&l<this.rowCount){let e=0;ia(this.columns,(i,s)=>{this.columns[s]=_l(i,l,t).array,e=i.length}),this.rowCount=e}ol(this,"afterDeleteRows",{rowIndex:l,rowCount:t}),this.versionTag=sa()}getColumn(l,t){return this.columns[l]}getColumns(l,t){return(l||Object.keys(this.columns)).reduce((e,i)=>(e[i]=this.columns[i],e),{})}getRow(l,t){return(t||Object.keys(this.columns)).map(e=>this.columns[e]?.[l])}setColumn(l,t=[],e=0,i){this.setColumns({[l]:t},e,i)}setColumns(l,t,e){let i=this.rowCount;ia(l,(s,o)=>{this.columns[o]=s.slice(),i=s.length}),this.applyRowCount(i),e?.silent||(ol(this,"afterSetColumns"),this.versionTag=sa())}setRow(l,t=this.rowCount,e,i){let{columns:s}=this,o=e?this.rowCount+1:t+1;ia(l,(r,a)=>{let n=s[a]||i?.addColumns!==!1&&Array(o);n&&(e?n=_l(n,t,0,!0,[r]).array:n[t]=r,s[a]=n)}),o>this.rowCount&&this.applyRowCount(o),i?.silent||(ol(this,"afterSetRows"),this.versionTag=sa())}},{extend:xd,merge:bd,pick:ql}=mt;(function(l){function t(e,i,s){let o=this.legendItem=this.legendItem||{},{chart:r,options:a}=this,{baseline:n=0,symbolWidth:d,symbolHeight:p}=e,c=this.symbol||"circle",g=p/2,m=r.renderer,x=o.group,y=n-Math.round((e.fontMetrics?.b||p)*(s?.4:.3)),k={},v,P=a.marker,T=0;if(r.styledMode||(k["stroke-width"]=Math.min(a.lineWidth||0,24),a.dashStyle?k.dashstyle=a.dashStyle:a.linecap==="square"||(k["stroke-linecap"]="round")),o.line=m.path().addClass("highcharts-graph").attr(k).add(x),s&&(o.area=m.path().addClass("highcharts-area").add(x)),k["stroke-linecap"]&&(T=Math.min(o.line.strokeWidth(),d)/2),d){let O=[["M",T,y],["L",d-T,y]];o.line.attr({d:O}),o.area?.attr({d:[...O,["L",d-T,n],["L",T,n]]})}if(P&&P.enabled!==!1&&d){let O=Math.min(ql(P.radius,g),g);c.indexOf("url")===0&&(P=bd(P,{width:p,height:p}),O=0),o.symbol=v=m.symbol(c,d/2-O,y-O,2*O,2*O,xd({context:"legend"},P)).addClass("highcharts-point").add(x),v.isMarker=!0}}l.areaMarker=function(e,i){t.call(this,e,i,!0)},l.lineMarker=t,l.rectangle=function(e,i){let s=i.legendItem||{},o=e.options,r=e.symbolHeight,a=o.squareSymbol,n=a?r:e.symbolWidth;s.symbol=this.chart.renderer.rect(a?(e.symbolWidth-r)/2:0,e.baseline-r+1,n,r,ql(e.options.symbolRadius,r/2)).addClass("highcharts-point").attr({zIndex:3}).add(s.group)}})(Fi||(Fi={}));let $l=Fi,{defaultOptions:Zl}=Ze,{extend:yd,extendClass:vd,merge:kd}=mt;(function(l){function t(e,i){let s=Zl.plotOptions||{},o=i.defaultOptions,r=i.prototype;return r.type=e,r.pointClass||(r.pointClass=ii),!l.seriesTypes[e]&&(o&&(s[e]=o),l.seriesTypes[e]=i,!0)}l.seriesTypes=V.seriesTypes,l.registerSeriesType=t,l.seriesType=function(e,i,s,o,r){let a=Zl.plotOptions||{};if(i=i||"",a[e]=kd(a[i],s),delete l.seriesTypes[e],t(e,vd(l.seriesTypes[i]||function(){},o)),l.seriesTypes[e].prototype.type=e,r){class n extends ii{}yd(n.prototype,r),l.seriesTypes[e].prototype.pointClass=n}return l.seriesTypes[e]}})(Mi||(Mi={}));let Me=Mi,{animObject:Kl,setAnimation:Md}=K,{defaultOptions:rn}=Ze,{registerEventOptions:wd}=Mr,{svg:Ad,win:Pd}=V,{seriesTypes:Cr}=Me,{format:Sd}=fe,{arrayMax:rl,arrayMin:Ql,clamp:Jl,correctFloat:th,crisp:Td,defined:Ye,destroyObjectProperties:Cd,diffObjects:Ld,erase:eh,error:an,extend:Lr,find:Ed,fireEvent:we,getClosestDistance:Od,getNestedProperty:ih,insertItem:sh,isArray:oh,isNumber:$e,isString:Id,merge:oa,objectEach:al,pick:be,removeEvent:Nd,syncTimeout:rh}=mt;class gs{constructor(){this.zoneAxis="y"}init(t,e){let i;we(this,"init",{options:e}),this.dataTable??(this.dataTable=new on);let s=t.series;this.eventsToUnbind=[],this.chart=t,this.options=this.setOptions(e);let o=this.options,r=o.visible!==!1;this.linkedSeries=[],this.bindAxes(),Lr(this,{name:o.name,state:"",visible:r,selected:o.selected===!0}),wd(this,o),(o.events?.click||o.point?.events?.click||o.allowPointSelect)&&(t.runTrackerClick=!0),this.getColor(),this.getSymbol(),this.isCartesian&&(t.hasCartesianSeries=!0),s.length&&(i=s[s.length-1]),this._i=be(i?._i,-1)+1,this.opacity=this.options.opacity,t.orderItems("series",sh(this,s)),o.dataSorting?.enabled?this.setDataSortingOptions():this.points||this.data||this.setData(o.data,!1),we(this,"afterInit")}is(t){return Cr[t]&&this instanceof Cr[t]}bindAxes(){let t,e=this,i=e.options,s=e.chart;we(this,"bindAxes",null,function(){(e.axisTypes||[]).forEach(function(o){(s[o]||[]).forEach(function(r){t=r.options,(be(i[o],0)===r.index||i[o]!==void 0&&i[o]===t.id)&&(sh(e,r.series),e[o]=r,r.isDirty=!0)}),e[o]||e.optionalAxis===o||an(18,!0,s)})}),we(this,"afterBindAxes")}hasData(){return this.visible&&this.dataMax!==void 0&&this.dataMin!==void 0||this.visible&&this.dataTable.rowCount>0}hasMarkerChanged(t,e){let i=t.marker,s=e.marker||{};return i&&(s.enabled&&!i.enabled||s.symbol!==i.symbol||s.height!==i.height||s.width!==i.width)}autoIncrement(t){let e,i=this.options,{pointIntervalUnit:s,relativeXValue:o}=this.options,r=this.chart.time,a=this.xIncrement??r.parse(i.pointStart)??0;if(this.pointInterval=e=be(this.pointInterval,i.pointInterval,1),o&&$e(t)&&(e*=t),s){let n=r.toParts(a);s==="day"?n[2]+=e:s==="month"?n[1]+=e:s==="year"&&(n[0]+=e),e=r.makeTime.apply(r,n)-a}return o&&$e(t)?a+e:(this.xIncrement=a+e,a)}setDataSortingOptions(){let t=this.options;Lr(this,{requireSorting:!1,sorted:!1,enabledDataSorting:!0,allowDG:!1}),Ye(t.pointRange)||(t.pointRange=1)}setOptions(t){let e,i=this.chart,s=i.options.plotOptions,o=i.userOptions||{},r=oa(t),a=i.styledMode,n={plotOptions:s,userOptions:r};we(this,"setOptions",n);let d=n.plotOptions[this.type],p=o.plotOptions||{},c=p.series||{},g=rn.plotOptions[this.type]||{},m=p[this.type]||{};d.dataLabels=this.mergeArrays(g.dataLabels,d.dataLabels),this.userOptions=n.userOptions;let x=oa(d,s.series,m,r);this.tooltipOptions=oa(rn.tooltip,rn.plotOptions.series?.tooltip,g?.tooltip,i.userOptions.tooltip,p.series?.tooltip,m.tooltip,r.tooltip),this.stickyTracking=be(r.stickyTracking,m.stickyTracking,c.stickyTracking,!!this.tooltipOptions.shared&&!this.noSharedTooltip||x.stickyTracking),d.marker===null&&delete x.marker,this.zoneAxis=x.zoneAxis||"y";let y=this.zones=(x.zones||[]).map(k=>ts({},k));return(x.negativeColor||x.negativeFillColor)&&!x.zones&&(e={value:x[this.zoneAxis+"Threshold"]||x.threshold||0,className:"highcharts-negative"},a||(e.color=x.negativeColor,e.fillColor=x.negativeFillColor),y.push(e)),y.length&&Ye(y[y.length-1].value)&&y.push(a?{}:{color:this.color,fillColor:this.fillColor}),we(this,"afterSetOptions",{options:x}),x}getName(){return this.options.name??Sd(this.chart.options.lang.seriesName,this,this.chart)}getCyclic(t,e,i){let s,o,r=this.chart,a=`${t}Index`,n=`${t}Counter`,d=i?.length||r.options.chart.colorCount;!e&&(Ye(o=be(t==="color"?this.options.colorIndex:void 0,this[a]))?s=o:(r.series.length||(r[n]=0),s=r[n]%d,r[n]+=1),i&&(e=i[s])),s!==void 0&&(this[a]=s),this[t]=e}getColor(){this.chart.styledMode?this.getCyclic("color"):this.options.colorByPoint?this.color="#cccccc":this.getCyclic("color",this.options.color||rn.plotOptions[this.type].color,this.chart.options.colors)}getPointsCollection(){return(this.hasGroupedData?this.points:this.data)||[]}getSymbol(){let t=this.options.marker;this.getCyclic("symbol",t.symbol,this.chart.options.symbols)}getColumn(t,e){return(e?this.dataTable.modified:this.dataTable).getColumn(t,!0)||[]}findPointIndex(t,e){let i,s,o,{id:r,x:a}=t,n=this.points,d=this.options.dataSorting,p=this.cropStart||0;if(r){let c=this.chart.get(r);c instanceof ii&&(i=c)}else if(this.linkedParent||this.enabledDataSorting||this.options.relativeXValue){let c=g=>!g.touched&&g.index===t.index;if(d?.matchByName?c=g=>!g.touched&&g.name===t.name:this.options.relativeXValue&&(c=g=>!g.touched&&g.options.x===t.x),!(i=Ed(n,c)))return}return i&&(o=i?.index)!==void 0&&(s=!0),o===void 0&&$e(a)&&(o=this.getColumn("x").indexOf(a,e)),o!==-1&&o!==void 0&&this.cropped&&(o=o>=p?o-p:o),!s&&$e(o)&&n[o]?.touched&&(o=void 0),o}updateData(t,e){let{options:i,requireSorting:s}=this,o=i.dataSorting,r=this.points,a=[],n=t.length===r.length,d,p,c,g,m=!0;if(this.xIncrement=null,t.forEach((y,k)=>{let v,P=Ye(y)&&this.pointClass.prototype.optionsToObject.call({series:this},y)||{},{id:T,x:O}=P;T||$e(O)?((v=this.findPointIndex(P,g))===-1||v===void 0?a.push(y):r[v]&&y!==i.data?.[v]?(r[v].update(y,!1,void 0,!1),r[v].touched=!0,s&&(g=v+1)):r[v]&&(r[v].touched=!0),(!n||k!==v||o?.enabled||this.hasDerivedData)&&(d=!0)):a.push(y)},this),d)for(p=r.length;p--;)(c=r[p])&&!c.touched&&c.remove?.(!1,e);else n&&!o?.enabled?(t.forEach((y,k)=>{y===r[k].y||r[k].destroyed||r[k].update(y,!1,void 0,!1)}),a.length=0):m=!1;if(r.forEach(y=>{y&&(y.touched=!1)}),!m)return!1;a.forEach(y=>{this.addPoint(y,!1,void 0,void 0,!1)},this);let x=this.getColumn("x");return this.xIncrement===null&&x.length&&(this.xIncrement=rl(x),this.autoIncrement()),!0}dataColumnKeys(){return["x",...this.pointArrayMap||["y"]]}setData(t,e=!0,i,s){let o=this.points,r=o?.length||0,a=this.options,n=this.chart,d=a.dataSorting,p=this.xAxis,c=a.turboThreshold,g=this.dataTable,m=this.dataColumnKeys(),x=this.pointValKey||"y",y=(this.pointArrayMap||[]).length,k=a.keys,v,P,T=0,O=1,Y;n.options.chart.allowMutatingData||(a.data&&delete this.options.data,this.userOptions.data&&delete this.userOptions.data,Y=oa(!0,t));let B=(t=Y||t||[]).length;if(d?.enabled&&(t=this.sortData(t)),n.options.chart.allowMutatingData&&s!==!1&&B&&r&&!this.cropped&&!this.hasGroupedData&&this.visible&&!this.boosted&&(P=this.updateData(t,i)),!P){this.xIncrement=null,this.colorCounter=0;let R=c&&B>c;if(R){let X=this.getFirstValidPoint(t),j=this.getFirstValidPoint(t,B-1,-1),$=Z=>!!(oh(Z)&&(k||$e(Z[0])));if($e(X)&&$e(j)){let Z=[],rt=[];for(let nt of t)Z.push(this.autoIncrement()),rt.push(nt);g.setColumns({x:Z,[x]:rt})}else if($(X)&&$(j))if(y){let Z=+(X.length===y),rt=Array(m.length).fill(0).map(()=>[]);for(let nt of t){Z&&rt[0].push(this.autoIncrement());for(let pt=Z;pt<=y;pt++)rt[pt]?.push(nt[pt-Z])}g.setColumns(m.reduce((nt,pt,bt)=>(nt[pt]=rt[bt],nt),{}))}else{k&&(T=k.indexOf("x"),O=k.indexOf("y"),T=T>=0?T:0,O=O>=0?O:1),X.length===1&&(O=0);let Z=[],rt=[];if(T===O)for(let nt of t)Z.push(this.autoIncrement()),rt.push(nt[O]);else for(let nt of t)Z.push(nt[T]),rt.push(nt[O]);g.setColumns({x:Z,[x]:rt})}else R=!1}if(!R){let X=m.reduce((j,$)=>(j[$]=[],j),{});for(v=0;v<B;v++){let j=this.pointClass.prototype.applyOptions.apply({series:this},[t[v]]);for(let $ of m)X[$][v]=j[$]}g.setColumns(X)}for(Id(this.getColumn("y")[0])&&an(14,!0,n),this.data=[],this.options.data=this.userOptions.data=t,v=r;v--;)o[v]?.destroy();p&&(p.minRange=p.userMinRange),this.isDirty=n.isDirtyBox=!0,this.isDirtyData=!!o,i=!1}a.legendType==="point"&&(this.processData(),this.generatePoints()),e&&n.redraw(i)}sortData(t){let e=this,i=e.options.dataSorting.sortKey||"y",s=function(o,r){return Ye(r)&&o.pointClass.prototype.optionsToObject.call({series:o},r)||{}};return t.forEach(function(o,r){t[r]=s(e,o),t[r].index=r},this),t.concat().sort((o,r)=>{let a=ih(i,o),n=ih(i,r);return n<a?-1:+(n>a)}).forEach(function(o,r){o.x=r},this),e.linkedSeries&&e.linkedSeries.forEach(function(o){let r=o.options,a=r.data;!r.dataSorting?.enabled&&a&&(a.forEach(function(n,d){a[d]=s(o,n),t[d]&&(a[d].x=t[d].x,a[d].index=d)}),o.setData(a,!1))}),t}getProcessedData(t){let e=this,{dataTable:i,isCartesian:s,options:o,xAxis:r}=e,a=o.cropThreshold,n=t||e.getExtremesFromAll,d=r?.logarithmic,p=i.rowCount,c,g,m=0,x,y,k,v=e.getColumn("x"),P=i,T=!1;return r&&(y=(x=r.getExtremes()).min,k=x.max,T=!!(r.categories&&!r.names.length),s&&e.sorted&&!n&&(!a||p>a||e.forceCrop)&&(v[p-1]<y||v[0]>k?P=new on:e.getColumn(e.pointValKey||"y").length&&(v[0]<y||v[p-1]>k)&&(P=(c=this.cropData(i,y,k)).modified,m=c.start,g=!0))),v=P.getColumn("x")||[],{modified:P,cropped:g,cropStart:m,closestPointRange:Od([d?v.map(d.log2lin):v],()=>e.requireSorting&&!T&&an(15,!1,e.chart))}}processData(t){let e=this.xAxis,i=this.dataTable;if(this.isCartesian&&!this.isDirty&&!e.isDirty&&!this.yAxis.isDirty&&!t)return!1;let s=this.getProcessedData();i.modified=s.modified,this.cropped=s.cropped,this.cropStart=s.cropStart,this.closestPointRange=this.basePointRange=s.closestPointRange,we(this,"afterProcessData")}cropData(t,e,i){let s=t.getColumn("x",!0)||[],o=s.length,r={},a,n,d=0,p=o;for(a=0;a<o;a++)if(s[a]>=e){d=Math.max(0,a-1);break}for(n=a;n<o;n++)if(s[n]>i){p=n+1;break}for(let c of this.dataColumnKeys()){let g=t.getColumn(c,!0);g&&(r[c]=g.slice(d,p))}return{modified:new on({columns:r}),start:d,end:p}}generatePoints(){let t=this.options,e=this.processedData||t.data,i=this.dataTable.modified,s=this.getColumn("x",!0),o=this.pointClass,r=i.rowCount,a=this.cropStart||0,n=this.hasGroupedData,d=t.keys,p=[],c=t.dataGrouping?.groupAll?a:0,g=this.xAxis?.categories,m=this.pointArrayMap||["y"],x=this.dataColumnKeys(),y,k,v,P,T=this.data,O;if(!T&&!n){let Y=[];Y.length=e?.length||0,T=this.data=Y}for(d&&n&&(this.options.keys=!1),P=0;P<r;P++)k=a+P,n?((v=new o(this,i.getRow(P,x)||[])).dataGroup=this.groupMap[c+P],v.dataGroup?.options&&(v.options=v.dataGroup.options,Lr(v,v.dataGroup.options),delete v.dataLabels)):(v=T[k],O=e?e[k]:i.getRow(P,m),v||O===void 0||(T[k]=v=new o(this,O,s[P]))),v&&(v.index=n?c+P:k,p[P]=v,v.category=g?.[v.x]??v.x,v.key=v.name??v.category);if(this.options.keys=d,T&&(r!==(y=T.length)||n))for(P=0;P<y;P++)P!==a||n||(P+=r),T[P]&&(T[P].destroyElements(),T[P].plotX=void 0);this.data=T,this.points=p,we(this,"afterGeneratePoints")}getXExtremes(t){return{min:Ql(t),max:rl(t)}}getExtremes(t,e){let{xAxis:i,yAxis:s}=this,o=e||this.getExtremesFromAll||this.options.getExtremesFromAll,r=o&&this.cropped?this.dataTable:this.dataTable.modified,a=r.rowCount,n=t||this.stackedYData,d=n?[n]:(this.keysAffectYAxis||this.pointArrayMap||["y"])?.map(Y=>r.getColumn(Y,!0)||[])||[],p=this.getColumn("x",!0),c=[],g=this.requireSorting&&!this.is("column")?1:0,m=!!s&&s.positiveValuesOnly,x=o||this.cropped||!i,y,k,v,P=0,T=0;for(i&&(P=(y=i.getExtremes()).min,T=y.max),v=0;v<a;v++)if(k=p[v],x||(p[v+g]||k)>=P&&(p[v-g]||k)<=T)for(let Y of d){let B=Y[v];$e(B)&&(B>0||!m)&&c.push(B)}let O={activeYData:c,dataMin:Ql(c),dataMax:rl(c)};return we(this,"afterGetExtremes",{dataExtremes:O}),O}applyExtremes(){let t=this.getExtremes();return this.dataMin=t.dataMin,this.dataMax=t.dataMax,t}getFirstValidPoint(t,e=0,i=1){let s=t.length,o=e;for(;o>=0&&o<s;){if(Ye(t[o]))return t[o];o+=i}}translate(){this.generatePoints();let t=this.options,e=t.stacking,i=this.xAxis,s=this.enabledDataSorting,o=this.yAxis,r=this.points,a=r.length,n=this.pointPlacementToXValue(),d=!!n,p=t.threshold,c=t.startFromThreshold?p:0,g=t?.nullInteraction&&o.len,m,x,y,k,v=Number.MAX_VALUE;function P(T){return Jl(T,-1e9,1e9)}for(m=0;m<a;m++){let T,O=r[m],Y=O.x,B,R,X=O.y,j=O.low,$=e&&o.stacking?.stacks[(this.negStacks&&X<(c?0:p)?"-":"")+this.stackKey];O.plotX=$e(x=i.translate(Y,!1,!1,!1,!0,n))?th(P(x)):void 0,e&&this.visible&&$&&$[Y]&&(k=this.getStackIndicator(k,Y,this.index),!O.isNull&&k.key&&(R=(B=$[Y]).points[k.key]),B&&oh(R)&&(j=R[0],X=R[1],j===c&&k.key===$[Y].base&&(j=be($e(p)?p:o.min)),o.positiveValuesOnly&&Ye(j)&&j<=0&&(j=void 0),O.total=O.stackTotal=be(B.total),O.percentage=Ye(O.y)&&B.total?O.y/B.total*100:void 0,O.stackY=X,this.irregularWidths||B.setOffset(this.pointXOffset||0,this.barW||0,void 0,void 0,void 0,this.xAxis))),O.yBottom=Ye(j)?P(o.translate(j,!1,!0,!1,!0)):void 0,this.dataModify&&(X=this.dataModify.modifyValue(X,m)),$e(X)&&O.plotX!==void 0?T=$e(T=o.translate(X,!1,!0,!1,!0))?P(T):void 0:!$e(X)&&g&&(T=g),O.plotY=T,O.isInside=this.isPointInside(O),O.clientX=d?th(i.translate(Y,!1,!1,!1,!0,n)):x,O.negative=(O.y||0)<(p||0),O.isNull||O.visible===!1||(y!==void 0&&(v=Math.min(v,Math.abs(x-y))),y=x),O.zone=this.zones.length?O.getZone():void 0,!O.graphic&&this.group&&s&&(O.isNew=!0)}this.closestPointRangePx=v,we(this,"afterTranslate")}getValidPoints(t,e,i){let s=this.chart;return(t||this.points||[]).filter(function(o){let{plotX:r,plotY:a}=o;return!!((i||!o.isNull&&$e(a))&&(!e||s.isInsidePlot(r,a,{inverted:s.inverted})))&&o.visible!==!1})}getSharedClipKey(){return this.sharedClipKey=(this.options.xAxis||0)+","+(this.options.yAxis||0),this.sharedClipKey}setClip(){let{chart:t,group:e,markerGroup:i}=this,s=t.sharedClips,o=t.renderer,r=t.getClipBox(this),a=this.getSharedClipKey(),n=s[a];n?n.animate(r):s[a]=n=o.clipRect(r),e&&e.clip(this.options.clip===!1?void 0:n),i&&i.clip()}animate(t){let{chart:e,group:i,markerGroup:s}=this,o=e.inverted,r=Kl(this.options.animation),a=[this.getSharedClipKey(),r.duration,r.easing,r.defer].join(","),n=e.sharedClips[a],d=e.sharedClips[a+"m"];if(t&&i){let p=e.getClipBox(this);if(n)n.attr("height",p.height);else{p.width=0,o&&(p.x=e.plotHeight),n=e.renderer.clipRect(p),e.sharedClips[a]=n;let c={x:-99,y:-99,width:o?e.plotWidth+199:99,height:o?99:e.plotHeight+199};d=e.renderer.clipRect(c),e.sharedClips[a+"m"]=d}i.clip(n),s?.clip(d)}else if(n&&!n.hasClass("highcharts-animating")){let p=e.getClipBox(this),c=r.step;(s?.element.childNodes.length||e.series.length>1)&&(r.step=function(g,m){c&&c.apply(m,arguments),m.prop==="width"&&d?.element&&d.attr(o?"height":"width",g+99)}),n.addClass("highcharts-animating").animate(p,r)}}afterAnimate(){this.setClip(),al(this.chart.sharedClips,(t,e,i)=>{t&&!this.chart.container.querySelector(`[clip-path="url(#${t.id})"]`)&&(t.destroy(),delete i[e])}),this.finishedAnimating=!0,we(this,"afterAnimate")}drawPoints(t=this.points){let e,i,s,o,r,a,n,d=this.chart,p=d.styledMode,{colorAxis:c,options:g}=this,m=g.marker,x=g.nullInteraction,y=this[this.specialGroup||"markerGroup"],k=this.xAxis,v=be(m.enabled,!k||!!k.isRadial||null,this.closestPointRangePx>=m.enabledThreshold*m.radius);if(m.enabled!==!1||this._hasPointMarkers)for(e=0;e<t.length;e++){o=(s=(i=t[e]).graphic)?"animate":"attr",r=i.marker||{},a=!!i.marker;let P=i.isNull;if((v&&!Ye(r.enabled)||r.enabled)&&(!P||x)&&i.visible!==!1){let T=be(r.symbol,this.symbol,"rect");n=this.markerAttribs(i,i.selected&&"select"),this.enabledDataSorting&&(i.startXPos=k.reversed?-(n.width||0):k.width);let O=i.isInside!==!1;if(!s&&O&&((n.width||0)>0||i.hasImage)&&(i.graphic=s=d.renderer.symbol(T,n.x,n.y,n.width,n.height,a?r:m).add(y),this.enabledDataSorting&&d.hasRendered&&(s.attr({x:i.startXPos}),o="animate")),s&&o==="animate"&&s[O?"show":"hide"](O).animate(n),s){let Y=this.pointAttribs(i,p||!i.selected?void 0:"select");p?c&&s.css({fill:Y.fill}):s[o](Y)}s&&s.addClass(i.getClassName(),!0)}else s&&(i.graphic=s.destroy())}}markerAttribs(t,e){let i=this.options,s=i.marker,o=t.marker||{},r=o.symbol||s.symbol,a={},n,d,p=be(o.radius,s?.radius);e&&(n=s.states[e],d=o.states&&o.states[e],p=be(d?.radius,n?.radius,p&&p+(n?.radiusPlus||0))),t.hasImage=r&&r.indexOf("url")===0,t.hasImage&&(p=0);let c=t.pos();return $e(p)&&c&&(i.crisp&&(c[0]=Td(c[0],t.hasImage?0:r==="rect"?s?.lineWidth||0:1)),a.x=c[0]-p,a.y=c[1]-p),p&&(a.width=a.height=2*p),a}pointAttribs(t,e){let i=this.options,s=i.marker,o=t?.options,r=o?.marker||{},a=o?.color,n=t?.color,d=t?.zone?.color,p,c,g=this.color,m,x,y=be(r.lineWidth,s.lineWidth),k=t?.isNull&&i.nullInteraction?0:1;return g=a||d||n||g,m=r.fillColor||s.fillColor||g,x=r.lineColor||s.lineColor||g,e=e||"normal",p=s.states[e]||{},y=be((c=r.states&&r.states[e]||{}).lineWidth,p.lineWidth,y+be(c.lineWidthPlus,p.lineWidthPlus,0)),m=c.fillColor||p.fillColor||m,x=c.lineColor||p.lineColor||x,{stroke:x,"stroke-width":y,fill:m,opacity:k=be(c.opacity,p.opacity,k)}}destroy(t){let e,i,s=this,o=s.chart,r=/AppleWebKit\/533/.test(Pd.navigator.userAgent),a=s.data||[];for(we(s,"destroy",{keepEventsForUpdate:t}),this.removeEvents(t),(s.axisTypes||[]).forEach(function(n){i=s[n],i?.series&&(eh(i.series,s),i.isDirty=i.forceRedraw=!0)}),s.legendItem&&s.chart.legend.destroyItem(s),e=a.length;e--;)a[e]?.destroy?.();for(let n of s.zones)Cd(n,void 0,!0);mt.clearTimeout(s.animationTimeout),al(s,function(n,d){n instanceof Zi&&!n.survive&&n[r&&d==="group"?"hide":"destroy"]()}),o.hoverSeries===s&&(o.hoverSeries=void 0),eh(o.series,s),o.orderItems("series"),al(s,function(n,d){t&&d==="hcEvents"||delete s[d]})}applyZones(){let{area:t,chart:e,graph:i,zones:s,points:o,xAxis:r,yAxis:a,zoneAxis:n}=this,{inverted:d,renderer:p}=e,c=this[`${n}Axis`],{isXAxis:g,len:m=0,minPointOffset:x=0}=c||{},y=(i?.strokeWidth()||0)/2+1,k=(v,P=0,T=0)=>{d&&(T=m-T);let{translated:O=0,lineClip:Y}=v,B=T-O;Y?.push(["L",P,Math.abs(B)<y?T-y*(B<=0?-1:1):O])};if(s.length&&(i||t)&&c&&$e(c.min)){let v=c.getExtremes().max+x,P=Y=>{Y.forEach((B,R)=>{(B[0]==="M"||B[0]==="L")&&(Y[R]=[B[0],g?m-B[1]:B[1],g?B[2]:m-B[2]])})};if(s.forEach(Y=>{Y.lineClip=[],Y.translated=Jl(c.toPixels(be(Y.value,v),!0)||0,0,m)}),i&&!this.showLine&&i.hide(),t&&t.hide(),n==="y"&&o.length<r.len)for(let Y of o){let{plotX:B,plotY:R,zone:X}=Y,j=X&&s[s.indexOf(X)-1];X&&k(X,B,R),j&&k(j,B,R)}let T=[],O=c.toPixels(c.getExtremes().min-x,!0);s.forEach(Y=>{let B=Y.lineClip||[],R=Math.round(Y.translated||0);r.reversed&&B.reverse();let{clip:X,simpleClip:j}=Y,$=0,Z=0,rt=r.len,nt=a.len;g?($=R,rt=O):(Z=R,nt=O);let pt=[["M",$,Z],["L",rt,Z],["L",rt,nt],["L",$,nt],["Z"]],bt=[pt[0],...B,pt[1],pt[2],...T,pt[3],pt[4]];T=B.reverse(),O=R,d&&(P(bt),t&&P(pt)),X?(X.animate({d:bt}),j?.animate({d:pt})):(X=Y.clip=p.path(bt),t&&(j=Y.simpleClip=p.path(pt))),i&&Y.graph?.clip(X),t&&Y.area?.clip(j)})}else this.visible&&(i&&i.show(),t&&t.show())}plotGroup(t,e,i,s,o){let r=this[t],a=!r,n={visibility:i,zIndex:s||.1};return Ye(this.opacity)&&!this.chart.styledMode&&this.state!=="inactive"&&(n.opacity=this.opacity),r||(this[t]=r=this.chart.renderer.g().add(o)),r.addClass("highcharts-"+e+" highcharts-series-"+this.index+" highcharts-"+this.type+"-series "+(Ye(this.colorIndex)?"highcharts-color-"+this.colorIndex+" ":"")+(this.options.className||"")+(r.hasClass("highcharts-tracker")?" highcharts-tracker":""),!0),r.attr(n)[a?"attr":"animate"](this.getPlotBox(e)),r}getPlotBox(t){let e=this.xAxis,i=this.yAxis,s=this.chart,o=s.inverted&&!s.polar&&e&&this.invertible&&t==="series";return s.inverted&&(e=i,i=this.xAxis),{translateX:e?e.left:s.plotLeft,translateY:i?i.top:s.plotTop,rotation:90*!!o,rotationOriginX:o?(e.len-i.len)/2:0,rotationOriginY:o?(e.len+i.len)/2:0,scaleX:o?-1:1,scaleY:1}}removeEvents(t){let{eventsToUnbind:e}=this;t||Nd(this),e.length&&(e.forEach(i=>{i()}),e.length=0)}render(){let t=this,{chart:e,options:i,hasRendered:s}=t,o=Kl(i.animation),r=t.visible?"inherit":"hidden",a=i.zIndex,n=e.seriesGroup,d=t.finishedAnimating?0:o.duration;we(this,"render"),t.plotGroup("group","series",r,a,n),t.markerGroup=t.plotGroup("markerGroup","markers",r,a,n),i.clip!==!1&&t.setClip(),d&&t.animate?.(!0),t.drawGraph&&(t.drawGraph(),t.applyZones()),t.visible&&t.drawPoints(),t.drawDataLabels?.(),t.redrawPoints?.(),i.enableMouseTracking&&t.drawTracker?.(),d&&t.animate?.(),s||(d&&o.defer&&(d+=o.defer),t.animationTimeout=rh(()=>{t.afterAnimate()},d||0)),t.isDirty=!1,t.hasRendered=!0,we(t,"afterRender")}redraw(){let t=this.isDirty||this.isDirtyData;this.translate(),this.render(),t&&delete this.kdTree}reserveSpace(){return this.visible||!this.chart.options.chart.ignoreHiddenSeries}searchPoint(t,e){let{xAxis:i,yAxis:s}=this,o=this.chart.inverted;return this.searchKDTree({clientX:o?i.len-t.chartY+i.pos:t.chartX-i.pos,plotY:o?s.len-t.chartX+s.pos:t.chartY-s.pos},e,t)}buildKDTree(t){this.buildingKdTree=!0;let e=this,i=e.options,s=i.findNearestPointBy.indexOf("y")>-1?2:1;delete e.kdTree,rh(function(){e.kdTree=(function o(r,a,n){let d,p,c=r?.length;if(c)return d=e.kdAxisArray[a%n],r.sort((g,m)=>(g[d]||0)-(m[d]||0)),{point:r[p=Math.floor(c/2)],left:o(r.slice(0,p),a+1,n),right:o(r.slice(p+1),a+1,n)}})(e.getValidPoints(void 0,!e.directTouch,i?.nullInteraction),s,s),e.buildingKdTree=!1},i.kdNow||t?.type==="touchstart"?0:1)}searchKDTree(t,e,i,s,o){let r=this,[a,n]=this.kdAxisArray,d=e?"distX":"dist",p=(r.options.findNearestPointBy||"").indexOf("y")>-1?2:1,c=!!r.isBubble,g=s||((x,y,k)=>{let v=x[k]||0,P=y[k]||0;return[v===P&&x.index>y.index||v<P?x:y,!1]}),m=o||((x,y)=>x<y);if(this.kdTree||this.buildingKdTree||this.buildKDTree(i),this.kdTree)return(function x(y,k,v,P){let T=k.point,O=r.kdAxisArray[v%P],Y=T,B=!1;(function($,Z){let rt=$[a],nt=Z[a],pt=Ye(rt)&&Ye(nt)?rt-nt:null,bt=$[n],ht=Z[n],yt=Ye(bt)&&Ye(ht)?bt-ht:0,de=c&&Z.marker?.radius||0;Z.dist=Math.sqrt((pt&&pt*pt||0)+yt*yt)-de,Z.distX=Ye(pt)?Math.abs(pt)-de:Number.MAX_VALUE})(y,T);let R=(y[O]||0)-(T[O]||0)+(c&&T.marker?.radius||0),X=R<0?"left":"right",j=R<0?"right":"left";return k[X]&&([Y,B]=g(T,x(y,k[X],v+1,P),d)),k[j]&&m(Math.sqrt(R*R),Y[d],B)&&(Y=g(Y,x(y,k[j],v+1,P),d)[0]),Y})(t,this.kdTree,p,p)}pointPlacementToXValue(){let{options:t,xAxis:e}=this,i=t.pointPlacement;return i==="between"&&(i=e.reversed?-.5:.5),$e(i)?i*(t.pointRange||e.pointRange):0}isPointInside(t){let{chart:e,xAxis:i,yAxis:s}=this,{plotX:o=-1,plotY:r=-1}=t;return r>=0&&r<=(s?s.len:e.plotHeight)&&o>=0&&o<=(i?i.len:e.plotWidth)}drawTracker(){let t=this,e=t.options,i=e.trackByArea,s=[].concat((i?t.areaPath:t.graphPath)||[]),o=t.chart,r=o.pointer,a=o.renderer,n=o.options.tooltip?.snap||0,d=()=>{e.enableMouseTracking&&o.hoverSeries!==t&&t.onMouseOver()},p="rgba(192,192,192,"+(Ad?1e-4:.002)+")",c=t.tracker;c?c.attr({d:s}):t.graph&&(t.tracker=c=a.path(s).attr({visibility:t.visible?"inherit":"hidden",zIndex:2}).addClass(i?"highcharts-tracker-area":"highcharts-tracker-line").add(t.group),o.styledMode||c.attr({"stroke-linecap":"round","stroke-linejoin":"round",stroke:p,fill:i?p:"none","stroke-width":t.graph.strokeWidth()+(i?0:2*n)}),[t.tracker,t.markerGroup,t.dataLabelsGroup].forEach(g=>{g&&(g.addClass("highcharts-tracker").on("mouseover",d).on("mouseout",m=>{r?.onTrackerMouseOut(m)}),e.cursor&&!o.styledMode&&g.css({cursor:e.cursor}),g.on("touchstart",d))})),we(this,"afterDrawTracker")}addPoint(t,e,i,s,o){let r,a,n=this.options,{chart:d,data:p,dataTable:c,xAxis:g}=this,m=g?.hasNames&&g.names,x=n.data,y=this.getColumn("x");e=be(e,!0);let k={series:this};this.pointClass.prototype.applyOptions.apply(k,[t]);let v=k.x;if(a=y.length,this.requireSorting&&v<y[a-1])for(r=!0;a&&y[a-1]>v;)a--;c.setRow(k,a,!0,{addColumns:!1}),m&&k.name&&(m[v]=k.name),x?.splice(a,0,t),(r||this.processedData)&&(this.data.splice(a,0,null),this.processData()),n.legendType==="point"&&this.generatePoints(),i&&(p[0]&&p[0].remove?p[0].remove(!1):([p,x].filter(Ye).forEach(P=>{P.shift()}),c.deleteRows(0))),o!==!1&&we(this,"addPoint",{point:k}),this.isDirty=!0,this.isDirtyData=!0,e&&d.redraw(s)}removePoint(t,e,i){let s=this,{chart:o,data:r,points:a,dataTable:n}=s,d=r[t],p=function(){[a?.length===r.length?a:void 0,r,s.options.data].filter(Ye).forEach(c=>{c.splice(t,1)}),n.deleteRows(t),d?.destroy(),s.isDirty=!0,s.isDirtyData=!0,e&&o.redraw()};Md(i,o),e=be(e,!0),d?d.firePointEvent("remove",null,p):p()}remove(t,e,i,s){let o=this,r=o.chart;function a(){o.destroy(s),r.isDirtyLegend=r.isDirtyBox=!0,r.linkSeries(s),be(t,!0)&&r.redraw(e)}i!==!1?we(o,"remove",null,a):a()}update(t,e){we(this,"update",{options:t=Ld(t,this.userOptions)});let i=this,s=i.chart,o=i.userOptions,r=i.initialType||i.type,a=s.options.plotOptions,n=Cr[r].prototype,d=i.finishedAnimating&&{animation:!1},p={},c,g,m=gs.keepProps.slice(),x=t.type||o.type||s.options.chart.type,y=!(this.hasDerivedData||x&&x!==this.type||t.keys!==void 0||t.pointStart!==void 0||t.pointInterval!==void 0||t.relativeXValue!==void 0||t.joinBy||t.mapData||["dataGrouping","pointStart","pointInterval","pointIntervalUnit","keys"].some(v=>i.hasOptionChanged(v)));x=x||r,y?(m.push.apply(m,gs.keepPropsForPoints),t.visible!==!1&&m.push("area","graph"),i.parallelArrays.forEach(function(v){m.push(v+"Data")}),t.data&&(t.dataSorting&&Lr(i.options.dataSorting,t.dataSorting),this.setData(t.data,!1))):this.dataTable.modified=this.dataTable,t=oa(o,{index:o.index===void 0?i.index:o.index,pointStart:a?.series?.pointStart??o.pointStart??i.getColumn("x")[0]},!y&&{data:i.options.data},t,d),y&&t.data&&(t.data=i.options.data),(m=["group","markerGroup","dataLabelsGroup","transformGroup"].concat(m)).forEach(function(v){m[v]=i[v],delete i[v]});let k=!1;if(Cr[x]){if(k=x!==i.type,i.remove(!1,!1,!1,!0),k)if(s.propFromSeries(),Object.setPrototypeOf)Object.setPrototypeOf(i,Cr[x].prototype);else{let v=Object.hasOwnProperty.call(i,"hcEvents")&&i.hcEvents;for(g in n)i[g]=void 0;Lr(i,Cr[x].prototype),v?i.hcEvents=v:delete i.hcEvents}}else an(17,!0,s,{missingModuleFor:x});if(m.forEach(function(v){i[v]=m[v]}),i.init(s,t),y&&this.points)for(let v of((c=i.options).visible===!1?(p.graphic=1,p.dataLabel=1):(this.hasMarkerChanged(c,o)&&(p.graphic=1),i.hasDataLabels?.()||(p.dataLabel=1)),this.points))v?.series&&(v.resolveColor(),Object.keys(p).length&&v.destroyElements(p),c.showInLegend===!1&&v.legendItem&&s.legend.destroyItem(v));i.initialType=r,s.linkSeries(),s.setSortedData(),k&&i.linkedSeries.length&&(i.isDirtyData=!0),we(this,"afterUpdate"),be(e,!0)&&s.redraw(!!y&&void 0)}setName(t){this.name=this.options.name=this.userOptions.name=t,this.chart.isDirtyLegend=!0}hasOptionChanged(t){let e=this.chart,i=this.options[t],s=e.options.plotOptions,o=this.userOptions[t],r=be(s?.[this.type]?.[t],s?.series?.[t]);return o&&!Ye(r)?i!==o:i!==be(r,i)}onMouseOver(){let t=this.chart,e=t.hoverSeries;t.pointer?.setHoverChartIndex(),e&&e!==this&&e.onMouseOut(),this.options.events.mouseOver&&we(this,"mouseOver"),this.setState("hover"),t.hoverSeries=this}onMouseOut(){let t=this.options,e=this.chart,i=e.tooltip,s=e.hoverPoint;e.hoverSeries=null,s&&s.onMouseOut(),this&&t.events.mouseOut&&we(this,"mouseOut"),i&&!this.stickyTracking&&(!i.shared||this.noSharedTooltip)&&i.hide(),e.series.forEach(function(o){o.setState("",!0)})}setState(t,e){let i=this,s=i.options,o=i.graph,r=s.inactiveOtherPoints,a=s.states,n=be(a[t||"normal"]&&a[t||"normal"].animation,i.chart.options.chart.animation),d=s.lineWidth,p=s.opacity;if(t=t||"",i.state!==t&&([i.group,i.markerGroup,i.dataLabelsGroup].forEach(function(c){c&&(i.state&&c.removeClass("highcharts-series-"+i.state),t&&c.addClass("highcharts-series-"+t))}),i.state=t,!i.chart.styledMode)){if(a[t]&&a[t].enabled===!1)return;if(t&&(d=a[t].lineWidth||d+(a[t].lineWidthPlus||0),p=be(a[t].opacity,p)),o&&!o.dashstyle&&$e(d))for(let c of[o,...this.zones.map(g=>g.graph)])c?.animate({"stroke-width":d},n);r||[i.group,i.markerGroup,i.dataLabelsGroup,i.labelBySeries].forEach(function(c){c&&c.animate({opacity:p},n)})}e&&r&&i.points&&i.setAllPointsToState(t||void 0)}setAllPointsToState(t){this.points.forEach(function(e){e.setState&&e.setState(t)})}setVisible(t,e){let i=this,s=i.chart,o=s.options.chart.ignoreHiddenSeries,r=i.visible;i.visible=t=i.options.visible=i.userOptions.visible=t===void 0?!r:t;let a=t?"show":"hide";["group","dataLabelsGroup","markerGroup","tracker","tt"].forEach(n=>{i[n]?.[a]()}),(s.hoverSeries===i||s.hoverPoint?.series===i)&&i.onMouseOut(),i.legendItem&&s.legend.colorizeItem(i,t),i.isDirty=!0,i.options.stacking&&s.series.forEach(n=>{n.options.stacking&&n.visible&&(n.isDirty=!0)}),i.linkedSeries.forEach(n=>{n.setVisible(t,!1)}),o&&(s.isDirtyBox=!0),we(i,a),e!==!1&&s.redraw()}show(){this.setVisible(!0)}hide(){this.setVisible(!1)}select(t){this.selected=t=this.options.selected=t===void 0?!this.selected:t,this.checkbox&&(this.checkbox.checked=t),we(this,t?"select":"unselect")}shouldShowTooltip(t,e,i={}){return i.series=this,i.visiblePlotOnly=!0,this.chart.isInsidePlot(t,e,i)}drawLegendSymbol(t,e){$l[this.options.legendSymbol||"rectangle"]?.call(this,t,e)}}gs.defaultOptions={lineWidth:2,allowPointSelect:!1,crisp:!0,showCheckbox:!1,animation:{duration:1e3},enableMouseTracking:!0,events:{},marker:{enabledThreshold:2,lineColor:"#ffffff",lineWidth:0,radius:4,states:{normal:{animation:!0},hover:{animation:{duration:150},enabled:!0,radiusPlus:2,lineWidthPlus:1},select:{fillColor:"#cccccc",lineColor:"#000000",lineWidth:2}}},point:{events:{}},dataLabels:{animation:{},align:"center",borderWidth:0,defer:!0,formatter:function(){let{numberFormatter:l}=this.series.chart;return typeof this.y!="number"?"":l(this.y,-1)},padding:5,style:{fontSize:"0.7em",fontWeight:"bold",color:"contrast",textOutline:"1px contrast"},verticalAlign:"bottom",x:0,y:0},cropThreshold:300,opacity:1,pointRange:0,softThreshold:!0,states:{normal:{animation:!0},hover:{animation:{duration:150},lineWidthPlus:1,marker:{},halo:{size:10,opacity:.25}},select:{animation:{duration:0}},inactive:{animation:{duration:150},opacity:.2}},stickyTracking:!0,turboThreshold:1e3,findNearestPointBy:"x"},gs.types=Me.seriesTypes,gs.registerType=Me.registerSeriesType,gs.keepProps=["colorIndex","eventOptions","navigatorSeries","symbolIndex","baseSeries"],gs.keepPropsForPoints=["data","isDirtyData","isDirtyCanvas","points","dataTable","processedData","xIncrement","cropped","_hasPointMarkers","hasDataLabels","nodes","layout","level","mapMap","mapData","minY","maxY","minX","maxX","transformGroups"],Lr(gs.prototype,{axisTypes:["xAxis","yAxis"],coll:"series",colorCounter:0,directTouch:!1,invertible:!0,isCartesian:!0,kdAxisArray:["clientX","plotY"],parallelArrays:["x","y"],pointClass:ii,requireSorting:!0,sorted:!0}),Me.series=gs;let Wi=gs,{animObject:Dd,setAnimation:Rd}=K,{registerEventOptions:ah}=Mr,{composed:zd,marginNames:nh}=V,{distribute:Bd}=Dt,{format:Xd}=fe,{addEvent:nn,createElement:Yd,css:Wd,defined:nl,discardElement:Hd,find:Fd,fireEvent:oo,isNumber:lh,merge:rr,pick:Qi,pushUnique:Gd,relativeLength:Ud,stableSort:jd,syncTimeout:Vd}=mt;class ll{constructor(t,e){this.allItems=[],this.initialItemY=0,this.itemHeight=0,this.itemMarginBottom=0,this.itemMarginTop=0,this.itemX=0,this.itemY=0,this.lastItemY=0,this.lastLineHeight=0,this.legendHeight=0,this.legendWidth=0,this.maxItemWidth=0,this.maxLegendWidth=0,this.offsetWidth=0,this.padding=0,this.pages=[],this.symbolHeight=0,this.symbolWidth=0,this.titleHeight=0,this.totalItemWidth=0,this.widthOption=0,this.chart=t,this.setOptions(e),e.enabled&&(this.render(),ah(this,e),nn(this.chart,"endResize",function(){this.legend.positionCheckboxes()})),nn(this.chart,"render",()=>{this.options.enabled&&this.proximate&&(this.proximatePositions(),this.positionItems())})}setOptions(t){let e=Qi(t.padding,8);this.options=t,this.chart.styledMode||(this.itemStyle=t.itemStyle,this.itemHiddenStyle=rr(this.itemStyle,t.itemHiddenStyle)),this.itemMarginTop=t.itemMarginTop,this.itemMarginBottom=t.itemMarginBottom,this.padding=e,this.initialItemY=e-5,this.symbolWidth=Qi(t.symbolWidth,16),this.pages=[],this.proximate=t.layout==="proximate"&&!this.chart.inverted,this.baseline=void 0}update(t,e){let i=this.chart;this.setOptions(rr(!0,this.options,t)),"events"in this.options&&ah(this,this.options),this.destroy(),i.isDirtyLegend=i.isDirtyBox=!0,Qi(e,!0)&&i.redraw(),oo(this,"afterUpdate",{redraw:e})}colorizeItem(t,e){let i=t.color,{area:s,group:o,label:r,line:a,symbol:n}=t.legendItem||{};if((t instanceof Wi||t instanceof ii)&&(t.color=t.options?.legendSymbolColor||i),o?.[e?"removeClass":"addClass"]("highcharts-legend-item-hidden"),!this.chart.styledMode){let{itemHiddenStyle:d={}}=this,p=d.color,{fillColor:c,fillOpacity:g,lineColor:m,marker:x}=t.options,y=k=>(!e&&(k.fill&&(k.fill=p),k.stroke&&(k.stroke=p)),k);r?.css(rr(e?this.itemStyle:d)),a?.attr(y({stroke:m||t.color})),n&&n.attr(y(x&&n.isMarker?t.pointAttribs():{fill:t.color})),s?.attr(y({fill:c||t.color,"fill-opacity":c?1:g??.75}))}t.color=i,oo(this,"afterColorizeItem",{item:t,visible:e})}positionItems(){this.allItems.forEach(this.positionItem,this),this.chart.isResizing||this.positionCheckboxes()}positionItem(t){let{group:e,x:i=0,y:s=0}=t.legendItem||{},o=this.options,r=o.symbolPadding,a=!o.rtl,n=t.checkbox;if(e?.element){let d={translateX:a?i:this.legendWidth-i-2*r-4,translateY:s};e[nl(e.translateY)?"animate":"attr"](d,void 0,()=>{oo(this,"afterPositionItem",{item:t})})}n&&(n.x=i,n.y=s)}destroyItem(t){let e=t.checkbox,i=t.legendItem||{};for(let s of["group","label","line","symbol"])i[s]&&(i[s]=i[s].destroy());e&&Hd(e),t.legendItem=void 0}destroy(){for(let t of this.getAllItems())this.destroyItem(t);for(let t of["clipRect","up","down","pager","nav","box","title","group"])this[t]&&(this[t]=this[t].destroy());this.display=null}positionCheckboxes(){let t,e=this.group?.alignAttr,i=this.clipHeight||this.legendHeight,s=this.titleHeight;e&&(t=e.translateY,this.allItems.forEach(function(o){let r,a=o.checkbox;a&&(r=t+s+a.y+(this.scrollOffset||0)+3,Wd(a,{left:e.translateX+o.checkboxOffset+a.x-20+"px",top:r+"px",display:this.proximate||r>t-6&&r<t+i-6?"":"none"}))},this))}renderTitle(){let t=this.options,e=this.padding,i=t.title,s,o=0;i.text&&(this.title||(this.title=this.chart.renderer.label(i.text,e-3,e-4,void 0,void 0,void 0,t.useHTML,void 0,"legend-title").attr({zIndex:1}),this.chart.styledMode||this.title.css(i.style),this.title.add(this.group)),i.width||this.title.css({width:this.maxLegendWidth+"px"}),o=(s=this.title.getBBox()).height,this.offsetWidth=s.width,this.contentGroup.attr({translateY:o})),this.titleHeight=o}setText(t){let e=this.options;t.legendItem.label.attr({text:e.labelFormat?Xd(e.labelFormat,t,this.chart):e.labelFormatter.call(t)})}renderItem(t){let e=t.legendItem=t.legendItem||{},i=this.chart,s=i.renderer,o=this.options,r=o.layout==="horizontal",a=this.symbolWidth,n=o.symbolPadding||0,d=this.itemStyle,p=this.itemHiddenStyle,c=r?Qi(o.itemDistance,20):0,g=!o.rtl,m=!t.series,x=!m&&t.series.drawLegendSymbol?t.series:t,y=x.options,k=!!this.createCheckboxForItem&&y&&y.showCheckbox,v=o.useHTML,P=t.options.className,T=e.label,O=a+n+c+20*!!k;!T&&(e.group=s.g("legend-item").addClass("highcharts-"+x.type+"-series highcharts-color-"+t.colorIndex+(P?" "+P:"")+(m?" highcharts-series-"+t.index:"")).attr({zIndex:1}).add(this.scrollGroup),e.label=T=s.text("",g?a+n:-n,this.baseline||0,v),i.styledMode||T.css(rr(t.visible?d:p)),T.attr({align:g?"left":"right",zIndex:2}).add(e.group),!this.baseline&&(this.fontMetrics=s.fontMetrics(T),this.baseline=this.fontMetrics.f+3+this.itemMarginTop,T.attr("y",this.baseline),this.symbolHeight=Qi(o.symbolHeight,this.fontMetrics.f),o.squareSymbol&&(this.symbolWidth=Qi(o.symbolWidth,Math.max(this.symbolHeight,16)),O=this.symbolWidth+n+c+20*!!k,g&&T.attr("x",this.symbolWidth+n))),x.drawLegendSymbol(this,t),this.setItemEvents&&this.setItemEvents(t,T,v)),k&&!t.checkbox&&this.createCheckboxForItem&&this.createCheckboxForItem(t),this.colorizeItem(t,t.visible),(i.styledMode||!d.width)&&T.css({width:(o.itemWidth||this.widthOption||i.spacingBox.width)-O+"px"}),this.setText(t);let Y=T.getBBox(),B=this.fontMetrics?.h||0;t.itemWidth=t.checkboxOffset=o.itemWidth||e.labelWidth||Y.width+O,this.maxItemWidth=Math.max(this.maxItemWidth,t.itemWidth),this.totalItemWidth+=t.itemWidth,this.itemHeight=t.itemHeight=Math.round(e.labelHeight||(Y.height>1.5*B?Y.height:B))}layoutItem(t){let e=this.options,i=this.padding,s=e.layout==="horizontal",o=t.itemHeight,r=this.itemMarginBottom,a=this.itemMarginTop,n=s?Qi(e.itemDistance,20):0,d=this.maxLegendWidth,p=e.alignColumns&&this.totalItemWidth>d?this.maxItemWidth:t.itemWidth,c=t.legendItem||{};s&&this.itemX-i+p>d&&(this.itemX=i,this.lastLineHeight&&(this.itemY+=a+this.lastLineHeight+r),this.lastLineHeight=0),this.lastItemY=a+this.itemY+r,this.lastLineHeight=Math.max(o,this.lastLineHeight),c.x=this.itemX,c.y=this.itemY,s?this.itemX+=p:(this.itemY+=a+o+r,this.lastLineHeight=o),this.offsetWidth=this.widthOption||Math.max((s?this.itemX-i-(t.checkbox?0:n):p)+i,this.offsetWidth)}getAllItems(){let t=[];return this.chart.series.forEach(function(e){let i=e?.options;e&&Qi(i.showInLegend,!nl(i.linkedTo)&&void 0,!0)&&(t=t.concat(e.legendItem?.labels||(i.legendType==="point"?e.data:e)))}),oo(this,"afterGetAllItems",{allItems:t}),t}getAlignment(){let t=this.options;return this.proximate?t.align.charAt(0)+"tv":t.floating?"":t.align.charAt(0)+t.verticalAlign.charAt(0)+t.layout.charAt(0)}adjustMargins(t,e){let i=this.chart,s=this.options,o=this.getAlignment();o&&[/(lth|ct|rth)/,/(rtv|rm|rbv)/,/(rbh|cb|lbh)/,/(lbv|lm|ltv)/].forEach(function(r,a){r.test(o)&&!nl(t[a])&&(i[nh[a]]=Math.max(i[nh[a]],i.legend[(a+1)%2?"legendHeight":"legendWidth"]+[1,-1,-1,1][a]*s[a%2?"x":"y"]+Qi(s.margin,12)+e[a]+(i.titleOffset[a]||0)))})}proximatePositions(){let t,e=this.chart,i=[],s=this.options.align==="left";for(let o of(this.allItems.forEach(function(r){let a,n,d=s,p,c;r.yAxis&&(r.xAxis.options.reversed&&(d=!d),r.points&&(a=Fd(d?r.points:r.points.slice(0).reverse(),function(g){return lh(g.plotY)})),n=this.itemMarginTop+r.legendItem.label.getBBox().height+this.itemMarginBottom,c=r.yAxis.top-e.plotTop,p=r.visible?(a?a.plotY:r.yAxis.height)+(c-.3*n):c+r.yAxis.height,i.push({target:p,size:n,item:r}))},this),Bd(i,e.plotHeight)))t=o.item.legendItem||{},lh(o.pos)&&(t.y=e.plotTop-e.spacing[0]+o.pos)}render(){let t=this.chart,e=t.renderer,i=this.options,s=this.padding,o=this.getAllItems(),r,a,n,d=this.group,p,c=this.box;this.itemX=s,this.itemY=this.initialItemY,this.offsetWidth=0,this.lastItemY=0,this.widthOption=Ud(i.width,t.spacingBox.width-s),p=t.spacingBox.width-2*s-i.x,["rm","lm"].indexOf(this.getAlignment().substring(0,2))>-1&&(p/=2),this.maxLegendWidth=this.widthOption||p,d||(this.group=d=e.g("legend").addClass(i.className||"").attr({zIndex:7}).add(),this.contentGroup=e.g().attr({zIndex:1}).add(d),this.scrollGroup=e.g().add(this.contentGroup)),this.renderTitle(),jd(o,(g,m)=>(g.options?.legendIndex||0)-(m.options?.legendIndex||0)),i.reversed&&o.reverse(),this.allItems=o,this.display=r=!!o.length,this.lastLineHeight=0,this.maxItemWidth=0,this.totalItemWidth=0,this.itemHeight=0,o.forEach(this.renderItem,this),o.forEach(this.layoutItem,this),a=(this.widthOption||this.offsetWidth)+s,n=this.lastItemY+this.lastLineHeight+this.titleHeight,n=this.handleOverflow(n)+s,c||(this.box=c=e.rect().addClass("highcharts-legend-box").attr({r:i.borderRadius}).add(d)),t.styledMode||c.attr({stroke:i.borderColor,"stroke-width":i.borderWidth||0,fill:i.backgroundColor||"none"}).shadow(i.shadow),a>0&&n>0&&c[c.placed?"animate":"attr"](c.crisp.call({},{x:0,y:0,width:a,height:n},c.strokeWidth())),d[r?"show":"hide"](),t.styledMode&&d.getStyle("display")==="none"&&(a=n=0),this.legendWidth=a,this.legendHeight=n,r&&this.align(),this.proximate||this.positionItems(),oo(this,"afterRender")}align(t=this.chart.spacingBox){let e=this.chart,i=this.options,s=t.y;/(lth|ct|rth)/.test(this.getAlignment())&&e.titleOffset[0]>0?s+=e.titleOffset[0]:/(lbh|cb|rbh)/.test(this.getAlignment())&&e.titleOffset[2]>0&&(s-=e.titleOffset[2]),s!==t.y&&(t=rr(t,{y:s})),e.hasRendered||(this.group.placed=!1),this.group.align(rr(i,{width:this.legendWidth,height:this.legendHeight,verticalAlign:this.proximate?"top":i.verticalAlign}),!0,t)}handleOverflow(t){let e=this,i=this.chart,s=i.renderer,o=this.options,r=o.y,a=o.verticalAlign==="top",n=this.padding,d=o.maxHeight,p=o.navigation,c=Qi(p.animation,!0),g=p.arrowSize||12,m=this.pages,x=this.allItems,y=function(X){typeof X=="number"?R.attr({height:X}):R&&(e.clipRect=R.destroy(),e.contentGroup.clip()),e.contentGroup.div&&(e.contentGroup.div.style.clip=X?"rect("+n+"px,9999px,"+(n+X)+"px,0)":"auto")},k=function(X){return e[X]=s.circle(0,0,1.3*g).translate(g/2,g/2).add(B),i.styledMode||e[X].attr("fill","rgba(0,0,0,0.0001)"),e[X]},v,P,T,O,Y=i.spacingBox.height+(a?-r:r)-n,B=this.nav,R=this.clipRect;return o.layout!=="horizontal"||o.verticalAlign==="middle"||o.floating||(Y/=2),d&&(Y=Math.min(Y,d)),m.length=0,t&&Y>0&&t>Y&&p.enabled!==!1?(this.clipHeight=v=Math.max(Y-20-this.titleHeight-n,0),this.currentPage=Qi(this.currentPage,1),this.fullHeight=t,x.forEach((X,j)=>{let $=(T=X.legendItem||{}).y||0,Z=Math.round(T.label.getBBox().height),rt=m.length;(!rt||$-m[rt-1]>v&&(P||$)!==m[rt-1])&&(m.push(P||$),rt++),T.pageIx=rt-1,P&&O&&(O.pageIx=rt-1),j===x.length-1&&$+Z-m[rt-1]>v&&$>m[rt-1]&&(m.push($),T.pageIx=rt),$!==P&&(P=$),O=T}),R||(R=e.clipRect=s.clipRect(0,n-2,9999,0),e.contentGroup.clip(R)),y(v),B||(this.nav=B=s.g().attr({zIndex:1}).add(this.group),this.up=s.symbol("triangle",0,0,g,g).add(B),k("upTracker").on("click",function(){e.scroll(-1,c)}),this.pager=s.text("",15,10).addClass("highcharts-legend-navigation"),!i.styledMode&&p.style&&this.pager.css(p.style),this.pager.add(B),this.down=s.symbol("triangle-down",0,0,g,g).add(B),k("downTracker").on("click",function(){e.scroll(1,c)})),e.scroll(0),t=Y):B&&(y(),this.nav=B.destroy(),this.scrollGroup.attr({translateY:1}),this.clipHeight=0),t}scroll(t,e){let i=this.chart,s=this.pages,o=s.length,r=this.clipHeight,a=this.options.navigation,n=this.pager,d=this.padding,p=this.currentPage+t;p>o&&(p=o),p>0&&(e!==void 0&&Rd(e,i),this.nav.attr({translateX:d,translateY:r+this.padding+7+this.titleHeight,visibility:"inherit"}),[this.up,this.upTracker].forEach(function(c){c.attr({class:p===1?"highcharts-legend-nav-inactive":"highcharts-legend-nav-active"})}),n.attr({text:p+"/"+o}),[this.down,this.downTracker].forEach(function(c){c.attr({x:18+this.pager.getBBox().width,class:p===o?"highcharts-legend-nav-inactive":"highcharts-legend-nav-active"})},this),i.styledMode||(this.up.attr({fill:p===1?a.inactiveColor:a.activeColor}),this.upTracker.css({cursor:p===1?"default":"pointer"}),this.down.attr({fill:p===o?a.inactiveColor:a.activeColor}),this.downTracker.css({cursor:p===o?"default":"pointer"})),this.scrollOffset=-s[p-1]+this.initialItemY,this.scrollGroup.animate({translateY:this.scrollOffset}),this.currentPage=p,this.positionCheckboxes(),Vd(()=>{oo(this,"afterScroll",{currentPage:p})},Dd(Qi(e,i.renderer.globalAnimation,!0)).duration))}setItemEvents(t,e,i){let s=this,o=t.legendItem||{},r=s.chart.renderer.boxWrapper,a=t instanceof ii,n=t instanceof Wi,d="highcharts-legend-"+(a?"point":"series")+"-active",p=s.chart.styledMode,c=i?[e,o.symbol]:[o.group],g=m=>{s.allItems.forEach(x=>{t!==x&&[x].concat(x.linkedSeries||[]).forEach(y=>{y.setState(m,!a)})})};for(let m of c)m&&m.on("mouseover",function(){t.visible&&g("inactive"),t.setState("hover"),t.visible&&r.addClass(d),p||e.css(s.options.itemHoverStyle)}).on("mouseout",function(){s.chart.styledMode||e.css(rr(t.visible?s.itemStyle:s.itemHiddenStyle)),g(""),r.removeClass(d),t.setState()}).on("click",function(x){let y=function(){t.setVisible&&t.setVisible(),g(t.visible?"inactive":"")};r.removeClass(d),oo(s,"itemClick",{browserEvent:x,legendItem:t},y),a?t.firePointEvent("legendItemClick",{browserEvent:x}):n&&oo(t,"legendItemClick",{browserEvent:x})})}createCheckboxForItem(t){t.checkbox=Yd("input",{type:"checkbox",className:"highcharts-legend-checkbox",checked:t.selected,defaultChecked:t.selected},this.options.itemCheckboxStyle,this.chart.container),nn(t.checkbox,"click",function(e){let i=e.target;oo(t.series||t,"checkboxClick",{checked:i.checked,item:t},function(){t.select()})})}}(function(l){l.compose=function(t){Gd(zd,"Core.Legend")&&nn(t,"beforeMargins",function(){this.legend=new l(this,this.options.legend)})}})(ll||(ll={}));let hh=ll,{animate:hl,animObject:_d,setAnimation:dl}=K,{defaultOptions:cl}=Ze,{numberFormat:qd}=fe,{registerEventOptions:dh}=Mr,{charts:ar,doc:ra,marginNames:ch,svg:$d,win:ph}=V,{seriesTypes:pl}=Me,{addEvent:ul,attr:uh,createElement:gl,css:fs,defined:vo,diffObjects:gh,discardElement:Zd,erase:Kd,error:fl,extend:ko,find:ml,fireEvent:Ht,getAlignFactor:Qd,getStyle:xl,isArray:Jd,isNumber:Er,isObject:tc,isString:ln,merge:Ys,objectEach:bl,pick:hi,pInt:ec,relativeLength:fh,removeEvent:mh,splat:hn,syncTimeout:ic,uniqueKey:sc}=mt;class Mo{static chart(t,e,i){return new Mo(t,e,i)}constructor(t,e,i){this.sharedClips={};let s=[...arguments];(ln(t)||t.nodeName)&&(this.renderTo=s.shift()),this.init(s[0],s[1])}setZoomOptions(){let t=this.options.chart,e=t.zooming;this.zooming=ga(ts({},e),{type:hi(t.zoomType,e.type),key:hi(t.zoomKey,e.key),pinchType:hi(t.pinchType,e.pinchType),singleTouch:hi(t.zoomBySingleTouch,e.singleTouch,!1),resetButton:Ys(e.resetButton,t.resetZoomButton)})}init(t,e){Ht(this,"init",{args:arguments},function(){let i=Ys(cl,t),s=i.chart,o=this.renderTo||s.renderTo;this.userOptions=ko({},t),(this.renderTo=ln(o)?ra.getElementById(o):o)||fl(13,!0,this),this.margin=[],this.spacing=[],this.labelCollectors=[],this.callback=e,this.isResizing=0,this.options=i,this.axes=[],this.series=[],this.locale=i.lang.locale??this.renderTo.closest("[lang]")?.lang,this.time=new We(ko(i.time||{},{locale:this.locale}),i.lang),i.time=this.time.options,this.numberFormatter=(s.numberFormatter||qd).bind(this),this.styledMode=s.styledMode,this.hasCartesianSeries=s.showAxes,this.index=ar.length,ar.push(this),V.chartCount++,dh(this,s),this.xAxis=[],this.yAxis=[],this.pointCount=this.colorCounter=this.symbolCounter=0,this.setZoomOptions(),Ht(this,"afterInit"),this.firstRender()})}initSeries(t){let e=this.options.chart,i=t.type||e.type,s=pl[i];s||fl(17,!0,this,{missingModuleFor:i});let o=new s;return typeof o.init=="function"&&o.init(this,t),o}setSortedData(){this.getSeriesOrderByLinks().forEach(function(t){t.points||t.data||!t.enabledDataSorting||t.setData(t.options.data,!1)})}getSeriesOrderByLinks(){return this.series.concat().sort(function(t,e){return t.linkedSeries.length||e.linkedSeries.length?e.linkedSeries.length-t.linkedSeries.length:0})}orderItems(t,e=0){let i=this[t],s=this.options[t]=hn(this.options[t]).slice(),o=this.userOptions[t]=this.userOptions[t]?hn(this.userOptions[t]).slice():[];if(this.hasRendered&&(s.splice(e),o.splice(e)),i)for(let r=e,a=i.length;r<a;++r){let n=i[r];n&&(n.index=r,n instanceof Wi&&(n.name=n.getName()),n.options.isInternal||(s[r]=n.options,o[r]=n.userOptions))}}getClipBox(t,e){let i=this.inverted,{xAxis:s,yAxis:o}=t||{},{x:r,y:a,width:n,height:d}=Ys(this.clipBox);return t&&(s&&s.len!==this.plotSizeX&&(n=s.len),o&&o.len!==this.plotSizeY&&(d=o.len),i&&!t.invertible&&([n,d]=[d,n])),e&&(r+=(i?o:s)?.pos??this.plotLeft,a+=(i?s:o)?.pos??this.plotTop),{x:r,y:a,width:n,height:d}}isInsidePlot(t,e,i={}){let{inverted:s,plotBox:o,plotLeft:r,plotTop:a,scrollablePlotBox:n}=this,{scrollLeft:d=0,scrollTop:p=0}=i.visiblePlotOnly&&this.scrollablePlotArea?.scrollingContainer||{},c=i.series,g=i.visiblePlotOnly&&n||o,m=i.inverted?e:t,x=i.inverted?t:e,y={x:m,y:x,isInsidePlot:!0,options:i};if(!i.ignoreX){let k=c&&(s&&!this.polar?c.yAxis:c.xAxis)||{pos:r,len:1/0},v=i.paneCoordinates?k.pos+m:r+m;v>=Math.max(d+r,k.pos)&&v<=Math.min(d+r+g.width,k.pos+k.len)||(y.isInsidePlot=!1)}if(!i.ignoreY&&y.isInsidePlot){let k=!s&&i.axis&&!i.axis.isXAxis&&i.axis||c&&(s?c.xAxis:c.yAxis)||{pos:a,len:1/0},v=i.paneCoordinates?k.pos+x:a+x;v>=Math.max(p+a,k.pos)&&v<=Math.min(p+a+g.height,k.pos+k.len)||(y.isInsidePlot=!1)}return Ht(this,"afterIsInsidePlot",y),y.isInsidePlot}redraw(t){Ht(this,"beforeRedraw");let e=this.hasCartesianSeries?this.axes:this.colorAxis||[],i=this.series,s=this.pointer,o=this.legend,r=this.userOptions.legend,a=this.renderer,n=a.isHidden(),d=[],p,c,g,m=this.isDirtyBox,x=this.isDirtyLegend,y;for(a.rootFontSize=a.boxWrapper.getStyle("font-size"),this.setResponsive&&this.setResponsive(!1),dl(!!this.hasRendered&&t,this),n&&this.temporaryDisplay(),this.layOutTitles(!1),g=i.length;g--;)if(((y=i[g]).options.stacking||y.options.centerInCategory)&&(c=!0,y.isDirty)){p=!0;break}if(p)for(g=i.length;g--;)(y=i[g]).options.stacking&&(y.isDirty=!0);i.forEach(function(k){k.isDirty&&(k.options.legendType==="point"?(typeof k.updateTotals=="function"&&k.updateTotals(),x=!0):r&&(r.labelFormatter||r.labelFormat)&&(x=!0)),k.isDirtyData&&Ht(k,"updatedData")}),x&&o&&o.options.enabled&&(o.render(),this.isDirtyLegend=!1),c&&this.getStacks(),e.forEach(function(k){k.updateNames(),k.setScale()}),this.getMargins(),e.forEach(function(k){k.isDirty&&(m=!0)}),e.forEach(function(k){let v=k.min+","+k.max;k.extKey!==v&&(k.extKey=v,d.push(function(){Ht(k,"afterSetExtremes",ko(k.eventArgs,k.getExtremes())),delete k.eventArgs})),(m||c)&&k.redraw()}),m&&this.drawChartBox(),Ht(this,"predraw"),i.forEach(function(k){(m||k.isDirty)&&k.visible&&k.redraw(),k.isDirtyData=!1}),s&&s.reset(!0),a.draw(),Ht(this,"redraw"),Ht(this,"render"),n&&this.temporaryDisplay(!0),d.forEach(function(k){k.call()})}get(t){let e=this.series;function i(o){return o.id===t||o.options&&o.options.id===t}let s=ml(this.axes,i)||ml(this.series,i);for(let o=0;!s&&o<e.length;o++)s=ml(e[o].points||[],i);return s}createAxes(){let t=this.userOptions;for(let e of(Ht(this,"createAxes"),["xAxis","yAxis"]))for(let i of t[e]=hn(t[e]||{}))new ta(this,i,e);Ht(this,"afterCreateAxes")}getSelectedPoints(){return this.series.reduce((t,e)=>(e.getPointsCollection().forEach(i=>{hi(i.selectedStaging,i.selected)&&t.push(i)}),t),[])}getSelectedSeries(){return this.series.filter(t=>t.selected)}setTitle(t,e,i){this.applyDescription("title",t),this.applyDescription("subtitle",e),this.applyDescription("caption",void 0),this.layOutTitles(i)}applyDescription(t,e){let i=this,s=this.options[t]=Ys(this.options[t],e),o=this[t];o&&e&&(this[t]=o=o.destroy()),s&&!o&&((o=this.renderer.text(s.text,0,0,s.useHTML).attr({align:s.align,class:"highcharts-"+t,zIndex:s.zIndex||4}).css({textOverflow:"ellipsis",whiteSpace:"nowrap"}).add()).update=function(r,a){i.applyDescription(t,r),i.layOutTitles(a)},this.styledMode||o.css(ko(t==="title"?{fontSize:this.options.isStock?"1em":"1.2em"}:{},s.style)),o.textPxLength=o.getBBox().width,o.css({whiteSpace:s.style?.whiteSpace}),this[t]=o)}layOutTitles(t=!0){let e=[0,0,0],{options:i,renderer:s,spacingBox:o}=this;["title","subtitle","caption"].forEach(a=>{let n=this[a],d=this.options[a],p=Ys(o),c=n?.textPxLength||0;if(n&&d){Ht(this,"layOutTitle",{alignTo:p,key:a,textPxLength:c});let g=s.fontMetrics(n),m=g.b,x=g.h,y=d.verticalAlign||"top",k=y==="top",v=k&&d.minScale||1,P=a==="title"?k?-3:0:k?e[0]+2:0,T=Math.min(p.width/c,1),O=Math.max(v,T),Y=Ys({y:y==="bottom"?m:P+m},{align:a==="title"?T<v?"left":"center":this.title?.alignValue},d),B=(d.width||(T>v?this.chartWidth:p.width)/O)+"px";n.alignValue!==Y.align&&(n.placed=!1);let R=Math.round(n.css({width:B}).getBBox(d.useHTML).height);if(Y.height=R,n.align(Y,!1,p).attr({align:Y.align,scaleX:O,scaleY:O,"transform-origin":`${p.x+c*O*Qd(Y.align)} ${x}`}),!d.floating){let X=R*(R<1.2*x?1:O);y==="top"?e[0]=Math.ceil(e[0]+X):y==="bottom"&&(e[2]=Math.ceil(e[2]+X))}}},this),e[0]&&(i.title?.verticalAlign||"top")==="top"&&(e[0]+=i.title?.margin||0),e[2]&&i.caption?.verticalAlign==="bottom"&&(e[2]+=i.caption?.margin||0);let r=!this.titleOffset||this.titleOffset.join(",")!==e.join(",");this.titleOffset=e,Ht(this,"afterLayOutTitles"),!this.isDirtyBox&&r&&(this.isDirtyBox=this.isDirtyLegend=r,this.hasRendered&&t&&this.isDirtyBox&&this.redraw())}getContainerBox(){let t=[].map.call(this.renderTo.children,i=>{if(i!==this.container){let s=i.style.display;return i.style.display="none",[i,s]}}),e={width:xl(this.renderTo,"width",!0)||0,height:xl(this.renderTo,"height",!0)||0};return t.filter(Boolean).forEach(([i,s])=>{i.style.display=s}),e}getChartSize(){let t=this.options.chart,e=t.width,i=t.height,s=this.getContainerBox(),o=s.height<=1||!this.renderTo.parentElement?.style.height&&this.renderTo.style.height==="100%";this.chartWidth=Math.max(0,e||s.width||600),this.chartHeight=Math.max(0,fh(i,this.chartWidth)||(o?400:s.height)),this.containerBox=s}temporaryDisplay(t){let e=this.renderTo,i;if(t)for(;e?.style;)e.hcOrigStyle&&(fs(e,e.hcOrigStyle),delete e.hcOrigStyle),e.hcOrigDetached&&(ra.body.removeChild(e),e.hcOrigDetached=!1),e=e.parentNode;else for(;e?.style&&(ra.body.contains(e)||e.parentNode||(e.hcOrigDetached=!0,ra.body.appendChild(e)),(xl(e,"display",!1)==="none"||e.hcOricDetached)&&(e.hcOrigStyle={display:e.style.display,height:e.style.height,overflow:e.style.overflow},i={display:"block",overflow:"hidden"},e!==this.renderTo&&(i.height=0),fs(e,i),e.offsetWidth||e.style.setProperty("display","block","important")),(e=e.parentNode)!==ra.body););}setClassName(t){this.container.className="highcharts-container "+(t||"")}getContainer(){let t,e=this.options,i=e.chart,s="data-highcharts-chart",o=sc(),r=this.renderTo,a=ec(uh(r,s));Er(a)&&ar[a]&&ar[a].hasRendered&&ar[a].destroy(),uh(r,s,this.index),r.innerHTML=Pt.emptyHTML,i.skipClone||r.offsetWidth||this.temporaryDisplay(),this.getChartSize();let n=this.chartHeight,d=this.chartWidth;fs(r,{overflow:"hidden"}),this.styledMode||(t=ko({position:"relative",overflow:"hidden",width:d+"px",height:n+"px",textAlign:"left",lineHeight:"normal",zIndex:0,"-webkit-tap-highlight-color":"rgba(0,0,0,0)",userSelect:"none","touch-action":"manipulation",outline:"none",padding:"0px"},i.style||{}));let p=gl("div",{id:o},t,r);this.container=p,this.getChartSize(),d===this.chartWidth||(d=this.chartWidth,this.styledMode||fs(p,{width:hi(i.style?.width,d+"px")})),this.containerBox=this.getContainerBox(),this._cursor=p.style.cursor;let c=i.renderer||!$d?ri.getRendererType(i.renderer):Ko;if(this.renderer=new c(p,d,n,void 0,i.forExport,e.exporting?.allowHTML,this.styledMode),dl(void 0,this),this.setClassName(i.className),this.styledMode)for(let g in e.defs)this.renderer.definition(e.defs[g]);else this.renderer.setStyle(i.style);this.renderer.chartIndex=this.index,Ht(this,"afterGetContainer")}getMargins(t){let{spacing:e,margin:i,titleOffset:s}=this;this.resetMargins(),s[0]&&!vo(i[0])&&(this.plotTop=Math.max(this.plotTop,s[0]+e[0])),s[2]&&!vo(i[2])&&(this.marginBottom=Math.max(this.marginBottom,s[2]+e[2])),this.legend?.display&&this.legend.adjustMargins(i,e),Ht(this,"getMargins"),t||this.getAxisMargins()}getAxisMargins(){let t=this,e=t.axisOffset=[0,0,0,0],i=t.colorAxis,s=t.margin,o=function(r){r.forEach(function(a){a.visible&&a.getOffset()})};t.hasCartesianSeries?o(t.axes):i?.length&&o(i),ch.forEach(function(r,a){vo(s[a])||(t[r]+=e[a])}),t.setChartSize()}getOptions(){return gh(this.userOptions,cl)}reflow(t){let e=this,i=e.containerBox,s=e.getContainerBox();delete e.pointer?.chartPosition,!e.isPrinting&&!e.isResizing&&i&&s.width&&((s.width!==i.width||s.height!==i.height)&&(mt.clearTimeout(e.reflowTimeout),e.reflowTimeout=ic(function(){e.container&&e.setSize(void 0,void 0,!1)},100*!!t)),e.containerBox=s)}setReflow(){let t=this,e=i=>{t.options?.chart.reflow&&t.hasLoaded&&t.reflow(i)};if(typeof ResizeObserver=="function")new ResizeObserver(e).observe(t.renderTo);else{let i=ul(ph,"resize",e);ul(this,"destroy",i)}}setSize(t,e,i){let s=this,o=s.renderer;s.isResizing+=1,dl(i,s);let r=o.globalAnimation;s.oldChartHeight=s.chartHeight,s.oldChartWidth=s.chartWidth,t!==void 0&&(s.options.chart.width=t),e!==void 0&&(s.options.chart.height=e),s.getChartSize();let{chartWidth:a,chartHeight:n,scrollablePixelsX:d=0,scrollablePixelsY:p=0}=s;(s.isDirtyBox||a!==s.oldChartWidth||n!==s.oldChartHeight)&&(s.styledMode||(r?hl:fs)(s.container,{width:`${a+d}px`,height:`${n+p}px`},r),s.setChartSize(!0),o.setSize(a,n,r),s.axes.forEach(function(c){c.isDirty=!0,c.setScale()}),s.isDirtyLegend=!0,s.isDirtyBox=!0,s.layOutTitles(),s.getMargins(),s.redraw(r),s.oldChartHeight=void 0,Ht(s,"resize"),setTimeout(()=>{s&&Ht(s,"endResize")},_d(r).duration)),s.isResizing-=1}setChartSize(t){let e,i,s,o,{chartHeight:r,chartWidth:a,inverted:n,spacing:d,renderer:p}=this,c=this.clipOffset,g=Math[n?"floor":"round"];this.plotLeft=e=Math.round(this.plotLeft),this.plotTop=i=Math.round(this.plotTop),this.plotWidth=s=Math.max(0,Math.round(a-e-(this.marginRight??0))),this.plotHeight=o=Math.max(0,Math.round(r-i-(this.marginBottom??0))),this.plotSizeX=n?o:s,this.plotSizeY=n?s:o,this.spacingBox=p.spacingBox={x:d[3],y:d[0],width:a-d[3]-d[1],height:r-d[0]-d[2]},this.plotBox=p.plotBox={x:e,y:i,width:s,height:o},c&&(this.clipBox={x:g(c[3]),y:g(c[0]),width:g(this.plotSizeX-c[1]-c[3]),height:g(this.plotSizeY-c[0]-c[2])}),t||(this.axes.forEach(function(m){m.setAxisSize(),m.setAxisTranslation()}),p.alignElements()),Ht(this,"afterSetChartSize",{skipAxes:t})}resetMargins(){Ht(this,"resetMargins");let t=this,e=t.options.chart,i=e.plotBorderWidth||0,s=Math.round(i)/2;["margin","spacing"].forEach(function(o){let r=e[o],a=tc(r)?r:[r,r,r,r];["Top","Right","Bottom","Left"].forEach(function(n,d){t[o][d]=hi(e[o+n],a[d])})}),ch.forEach(function(o,r){t[o]=hi(t.margin[r],t.spacing[r])}),t.axisOffset=[0,0,0,0],t.clipOffset=[s,s,s,s],t.plotBorderWidth=i}drawChartBox(){let t=this.options.chart,e=this.renderer,i=this.chartWidth,s=this.chartHeight,o=this.styledMode,r=this.plotBGImage,a=t.backgroundColor,n=t.plotBackgroundColor,d=t.plotBackgroundImage,p=this.plotLeft,c=this.plotTop,g=this.plotWidth,m=this.plotHeight,x=this.plotBox,y=this.clipRect,k=this.clipBox,v=this.chartBackground,P=this.plotBackground,T=this.plotBorder,O,Y,B,R="animate";v||(this.chartBackground=v=e.rect().addClass("highcharts-background").add(),R="attr"),o?O=Y=v.strokeWidth():(Y=(O=t.borderWidth||0)+8*!!t.shadow,B={fill:a||"none"},(O||v["stroke-width"])&&(B.stroke=t.borderColor,B["stroke-width"]=O),v.attr(B).shadow(t.shadow)),v[R]({x:Y/2,y:Y/2,width:i-Y-O%2,height:s-Y-O%2,r:t.borderRadius}),R="animate",P||(R="attr",this.plotBackground=P=e.rect().addClass("highcharts-plot-background").add()),P[R](x),!o&&(P.attr({fill:n||"none"}).shadow(t.plotShadow),d&&(r?(d!==r.attr("href")&&r.attr("href",d),r.animate(x)):this.plotBGImage=e.image(d,p,c,g,m).add())),y?y.animate({width:k.width,height:k.height}):this.clipRect=e.clipRect(k),R="animate",T||(R="attr",this.plotBorder=T=e.rect().addClass("highcharts-plot-border").attr({zIndex:1}).add()),o||T.attr({stroke:t.plotBorderColor,"stroke-width":t.plotBorderWidth||0,fill:"none"}),T[R](T.crisp(x,-T.strokeWidth())),this.isDirtyBox=!1,Ht(this,"afterDrawChartBox")}propFromSeries(){let t,e,i,s=this,o=s.options.chart,r=s.options.series;["inverted","angular","polar"].forEach(function(a){for(e=pl[o.type],i=o[a]||e&&e.prototype[a],t=r?.length;!i&&t--;)(e=pl[r[t].type])&&e.prototype[a]&&(i=!0);s[a]=i})}linkSeries(t){let e=this,i=e.series;i.forEach(function(s){s.linkedSeries.length=0}),i.forEach(function(s){let{linkedTo:o}=s.options;if(ln(o)){let r;(r=o===":previous"?e.series[s.index-1]:e.get(o))&&r.linkedParent!==s&&(r.linkedSeries.push(s),s.linkedParent=r,r.enabledDataSorting&&s.setDataSortingOptions(),s.visible=hi(s.options.visible,r.options.visible,s.visible))}}),Ht(this,"afterLinkSeries",{isUpdating:t})}renderSeries(){this.series.forEach(function(t){t.translate(),t.render()})}render(){let t=this.axes,e=this.colorAxis,i=this.renderer,s=this.options.chart.axisLayoutRuns||2,o=p=>{p.forEach(c=>{c.visible&&c.render()})},r=0,a=!0,n,d=0;for(let p of(this.setTitle(),Ht(this,"beforeMargins"),this.getStacks?.(),this.getMargins(!0),this.setChartSize(),t)){let{options:c}=p,{labels:g}=c;if(this.hasCartesianSeries&&p.horiz&&p.visible&&g.enabled&&p.series.length&&p.coll!=="colorAxis"&&!this.polar){r=c.tickLength,p.createGroups();let m=new Js(p,0,"",!0),x=m.createLabel("x",g);if(m.destroy(),x&&hi(g.reserveSpace,!Er(c.crossing))&&(r=x.getBBox().height+g.distance+Math.max(c.offset||0,0)),r){x?.destroy();break}}}for(this.plotHeight=Math.max(this.plotHeight-r,0);(a||n||s>1)&&d<s;){let p=this.plotWidth,c=this.plotHeight;for(let g of t)d===0?g.setScale():(g.horiz&&a||!g.horiz&&n)&&g.setTickInterval(!0);d===0?this.getAxisMargins():this.getMargins(),a=p/this.plotWidth>(d?1:1.1),n=c/this.plotHeight>(d?1:1.05),d++}this.drawChartBox(),this.hasCartesianSeries?o(t):e?.length&&o(e),this.seriesGroup||(this.seriesGroup=i.g("series-group").attr({zIndex:3}).shadow(this.options.chart.seriesGroupShadow).add()),this.renderSeries(),this.addCredits(),this.setResponsive&&this.setResponsive(),this.hasRendered=!0}addCredits(t){let e=this,i=Ys(!0,this.options.credits,t);i.enabled&&!this.credits&&(this.credits=this.renderer.text(i.text+(this.mapCredits||""),0,0).addClass("highcharts-credits").on("click",function(){i.href&&(ph.location.href=i.href)}).attr({align:i.position.align,zIndex:8}),e.styledMode||this.credits.css(i.style),this.credits.add().align(i.position),this.credits.update=function(s){e.credits=e.credits.destroy(),e.addCredits(s)})}destroy(){let t,e=this,i=e.axes,s=e.series,o=e.container,r=o?.parentNode;for(Ht(e,"destroy"),e.renderer.forExport?Kd(ar,e):ar[e.index]=void 0,V.chartCount--,e.renderTo.removeAttribute("data-highcharts-chart"),mh(e),t=i.length;t--;)i[t]=i[t].destroy();for(this.scroller?.destroy?.(),t=s.length;t--;)s[t]=s[t].destroy();["title","subtitle","chartBackground","plotBackground","plotBGImage","plotBorder","seriesGroup","clipRect","credits","pointer","rangeSelector","legend","resetZoomButton","tooltip","renderer"].forEach(a=>{e[a]=e[a]?.destroy?.()}),o&&(o.innerHTML=Pt.emptyHTML,mh(o),r&&Zd(o)),bl(e,function(a,n){delete e[n]})}firstRender(){let t=this,e=t.options;t.getContainer(),t.resetMargins(),t.setChartSize(),t.propFromSeries(),t.createAxes();let i=Jd(e.series)?e.series:[];e.series=[],i.forEach(function(s){t.initSeries(s)}),t.linkSeries(),t.setSortedData(),Ht(t,"beforeRender"),t.render(),t.pointer?.getChartPosition(),t.renderer.imgCount||t.hasLoaded||t.onload(),t.temporaryDisplay(!0)}onload(){this.callbacks.concat([this.callback]).forEach(function(t){t&&this.index!==void 0&&t.apply(this,[this])},this),Ht(this,"load"),Ht(this,"render"),vo(this.index)&&this.setReflow(),this.warnIfA11yModuleNotLoaded(),this.hasLoaded=!0}warnIfA11yModuleNotLoaded(){let{options:t,title:e}=this;!t||this.accessibility||(this.renderer.boxWrapper.attr({role:"img","aria-label":(e?.element.textContent||"").replace(/</g,"<")}),t.accessibility&&t.accessibility.enabled===!1||fl('Highcharts warning: Consider including the "accessibility.js" module to make your chart more usable for people with disabilities. Set the "accessibility.enabled" option to false to remove this warning. See https://www.highcharts.com/docs/accessibility/accessibility-module.',!1,this))}addSeries(t,e,i){let s,o=this;return t&&(e=hi(e,!0),Ht(o,"addSeries",{options:t},function(){s=o.initSeries(t),o.isDirtyLegend=!0,o.linkSeries(),s.enabledDataSorting&&s.setData(t.data,!1),Ht(o,"afterAddSeries",{series:s}),e&&o.redraw(i)})),s}addAxis(t,e,i,s){return this.createAxis(e?"xAxis":"yAxis",{axis:t,redraw:i,animation:s})}addColorAxis(t,e,i){return this.createAxis("colorAxis",{axis:t,redraw:e,animation:i})}createAxis(t,e){let i=new ta(this,e.axis,t);return hi(e.redraw,!0)&&this.redraw(e.animation),i}showLoading(t){let e=this,i=e.options,s=i.loading,o=function(){r&&fs(r,{left:e.plotLeft+"px",top:e.plotTop+"px",width:e.plotWidth+"px",height:e.plotHeight+"px"})},r=e.loadingDiv,a=e.loadingSpan;r||(e.loadingDiv=r=gl("div",{className:"highcharts-loading highcharts-loading-hidden"},null,e.container)),a||(e.loadingSpan=a=gl("span",{className:"highcharts-loading-inner"},null,r),ul(e,"redraw",o)),r.className="highcharts-loading",Pt.setElementHTML(a,hi(t,i.lang.loading,"")),e.styledMode||(fs(r,ko(s.style,{zIndex:10})),fs(a,s.labelStyle),e.loadingShown||(fs(r,{opacity:0,display:""}),hl(r,{opacity:s.style.opacity||.5},{duration:s.showDuration||0}))),e.loadingShown=!0,o()}hideLoading(){let t=this.options,e=this.loadingDiv;e&&(e.className="highcharts-loading highcharts-loading-hidden",this.styledMode||hl(e,{opacity:0},{duration:t.loading.hideDuration||100,complete:function(){fs(e,{display:"none"})}})),this.loadingShown=!1}update(t,e,i,s){let o,r,a,n=this,d={credits:"addCredits",title:"setTitle",subtitle:"setSubtitle",caption:"setCaption"},p=t.isResponsiveOptions,c=[];Ht(n,"update",{options:t}),p||n.setResponsive(!1,!0),t=gh(t,n.options),n.userOptions=Ys(n.userOptions,t);let g=t.chart;g&&(Ys(!0,n.options.chart,g),this.setZoomOptions(),"className"in g&&n.setClassName(g.className),("inverted"in g||"polar"in g||"type"in g)&&(n.propFromSeries(),o=!0),"alignTicks"in g&&(o=!0),"events"in g&&dh(this,g),bl(g,function(y,k){n.propsRequireUpdateSeries.indexOf("chart."+k)!==-1&&(r=!0),n.propsRequireDirtyBox.indexOf(k)!==-1&&(n.isDirtyBox=!0),n.propsRequireReflow.indexOf(k)===-1||(n.isDirtyBox=!0,p||(a=!0))}),!n.styledMode&&g.style&&n.renderer.setStyle(n.options.chart.style||{})),!n.styledMode&&t.colors&&(this.options.colors=t.colors),bl(t,function(y,k){n[k]&&typeof n[k].update=="function"?n[k].update(y,!1):typeof n[d[k]]=="function"?n[d[k]](y):k!=="colors"&&n.collectionsWithUpdate.indexOf(k)===-1&&Ys(!0,n.options[k],t[k]),k!=="chart"&&n.propsRequireUpdateSeries.indexOf(k)!==-1&&(r=!0)}),this.collectionsWithUpdate.forEach(function(y){t[y]&&(hn(t[y]).forEach(function(k,v){let P,T=vo(k.id);T&&(P=n.get(k.id)),!P&&n[y]&&(P=n[y][hi(k.index,v)])&&(T&&vo(P.options.id)||P.options.isInternal)&&(P=void 0),P&&P.coll===y&&(P.update(k,!1),i&&(P.touched=!0)),!P&&i&&n.collectionsWithInit[y]&&(n.collectionsWithInit[y][0].apply(n,[k].concat(n.collectionsWithInit[y][1]||[]).concat([!1])).touched=!0)}),i&&n[y].forEach(function(k){k.touched||k.options.isInternal?delete k.touched:c.push(k)}))}),c.forEach(function(y){y.chart&&y.remove&&y.remove(!1)}),o&&n.axes.forEach(function(y){y.update({},!1)}),r&&n.getSeriesOrderByLinks().forEach(function(y){y.chart&&y.update({},!1)},this);let m=g?.width,x=g&&(ln(g.height)?fh(g.height,m||n.chartWidth):g.height);a||Er(m)&&m!==n.chartWidth||Er(x)&&x!==n.chartHeight?n.setSize(m,x,s):hi(e,!0)&&n.redraw(s),Ht(n,"afterUpdate",{options:t,redraw:e,animation:s})}setSubtitle(t,e){this.applyDescription("subtitle",t),this.layOutTitles(e)}setCaption(t,e){this.applyDescription("caption",t),this.layOutTitles(e)}showResetZoom(){let t=this,e=cl.lang,i=t.zooming.resetButton,s=i.theme,o=i.relativeTo==="chart"||i.relativeTo==="spacingBox"?null:"plotBox";function r(){t.zoomOut()}Ht(this,"beforeShowResetZoom",null,function(){t.resetZoomButton=t.renderer.button(e.resetZoom,null,null,r,s).attr({align:i.position.align,title:e.resetZoomTitle}).addClass("highcharts-reset-zoom").add().align(i.position,!1,o)}),Ht(this,"afterShowResetZoom")}zoomOut(){Ht(this,"selection",{resetSelection:!0},()=>this.transform({reset:!0,trigger:"zoom"}))}pan(t,e){let i=this,s=typeof e=="object"?e:{enabled:e,type:"x"},o=s.type,r=o&&i[{x:"xAxis",xy:"axes",y:"yAxis"}[o]].filter(n=>n.options.panningEnabled&&!n.options.isInternal),a=i.options.chart;a?.panning&&(a.panning=s),Ht(this,"pan",{originalEvent:t},()=>{i.transform({axes:r,event:t,to:{x:t.chartX-(i.mouseDownX||0),y:t.chartY-(i.mouseDownY||0)},trigger:"pan"}),fs(i.container,{cursor:"move"})})}transform(t){let{axes:e=this.axes,event:i,from:s={},reset:o,selection:r,to:a={},trigger:n}=t,{inverted:d,time:p}=this,c=!1,g,m;for(let x of(this.hoverPoints?.forEach(y=>y.setState()),e)){let{horiz:y,len:k,minPointOffset:v=0,options:P,reversed:T}=x,O=y?"width":"height",Y=y?"x":"y",B=hi(a[O],x.len),R=hi(s[O],x.len),X=10>Math.abs(B)?1:B/R,j=(s[Y]||0)+R/2-x.pos,$=j-((a[Y]??x.pos)+B/2-x.pos)/X,Z=T&&!d||!T&&d?-1:1;if(!o&&(j<0||j>x.len))continue;let rt=x.toValue($,!0)+(r||x.isOrdinal?0:v*Z),nt=x.toValue($+k/X,!0)-(r||x.isOrdinal?0:v*Z||0),pt=x.allExtremes;if(rt>nt&&([rt,nt]=[nt,rt]),X===1&&!o&&x.coll==="yAxis"&&!pt){for(let Li of x.series){let Po=Li.getExtremes(Li.getProcessedData(!0).modified.getColumn("y")||[],!0);pt??(pt={dataMin:Number.MAX_VALUE,dataMax:-Number.MAX_VALUE}),Er(Po.dataMin)&&Er(Po.dataMax)&&(pt.dataMin=Math.min(Po.dataMin,pt.dataMin),pt.dataMax=Math.max(Po.dataMax,pt.dataMax))}x.allExtremes=pt}let{dataMin:bt,dataMax:ht,min:yt,max:de}=ko(x.getExtremes(),pt||{}),Ft=p.parse(P.min),mi=p.parse(P.max),Tt=bt??Ft,Ct=ht??mi,Gt=nt-rt,zt=x.categories?0:Math.min(Gt,Ct-Tt),ee=Tt-zt*(vo(Ft)?0:P.minPadding),oe=Ct+zt*(vo(mi)?0:P.maxPadding),jt=x.allowZoomOutside||X===1||n!=="zoom"&&X>1,me=Math.min(Ft??ee,ee,jt?yt:ee),xi=Math.max(mi??oe,oe,jt?de:oe);(!x.isOrdinal||x.options.overscroll||X!==1||o)&&(rt<me&&(rt=me,X>=1&&(nt=rt+Gt)),nt>xi&&(nt=xi,X>=1&&(rt=nt-Gt)),(o||x.series.length&&(rt!==yt||nt!==de)&&rt>=me&&nt<=xi)&&(r?r[x.coll].push({axis:x,min:rt,max:nt}):(x.isPanning=n!=="zoom",x.isPanning&&(m=!0),x.setExtremes(o?void 0:rt,o?void 0:nt,!1,!1,{move:$,trigger:n,scale:X}),!o&&(rt>me||nt<xi)&&n!=="mousewheel"&&(g=!0)),c=!0),i&&(this[y?"mouseDownX":"mouseDownY"]=i[y?"chartX":"chartY"]))}return c&&(r?Ht(this,"selection",r,()=>{delete t.selection,t.trigger="zoom",this.transform(t)}):(!g||m||this.resetZoomButton?!g&&this.resetZoomButton&&(this.resetZoomButton=this.resetZoomButton.destroy()):this.showResetZoom(),this.redraw(n==="zoom"&&(this.options.chart.animation??this.pointCount<100)))),c}}ko(Mo.prototype,{callbacks:[],collectionsWithInit:{xAxis:[Mo.prototype.addAxis,[!0]],yAxis:[Mo.prototype.addAxis,[!1]],series:[Mo.prototype.addSeries]},collectionsWithUpdate:["xAxis","yAxis","series"],propsRequireDirtyBox:["backgroundColor","borderColor","borderWidth","borderRadius","plotBackgroundColor","plotBackgroundImage","plotBorderColor","plotBorderWidth","plotShadow","shadow"],propsRequireReflow:["margin","marginTop","marginRight","marginBottom","marginLeft","spacing","spacingTop","spacingRight","spacingBottom","spacingLeft"],propsRequireUpdateSeries:["chart.inverted","chart.polar","chart.ignoreHiddenSeries","chart.type","colors","plotOptions","time","tooltip"]});let{stop:oc}=K,{composed:rc}=V,{addEvent:wo,createElement:dn,css:yl,defined:vl,erase:ac,merge:xh,pushUnique:bh}=mt;function nc(){let l=this.scrollablePlotArea;(this.scrollablePixelsX||this.scrollablePixelsY)&&!l&&(this.scrollablePlotArea=l=new vh(this)),l?.applyFixed()}function yh(){this.chart.scrollablePlotArea&&(this.chart.scrollablePlotArea.isDirty=!0)}let vh=(()=>{class l{static compose(e,i,s){bh(rc,this.compose)&&(wo(e,"afterInit",yh),wo(i,"afterSetChartSize",o=>this.afterSetSize(o.target,o)),wo(i,"render",nc),wo(s,"show",yh))}static afterSetSize(e,i){let s,o,r,{minWidth:a,minHeight:n}=e.options.chart.scrollablePlotArea||{},{clipBox:d,plotBox:p,inverted:c,renderer:g}=e;if(!g.forExport&&(a?(e.scrollablePixelsX=s=Math.max(0,a-e.chartWidth),s&&(e.scrollablePlotBox=xh(e.plotBox),p.width=e.plotWidth+=s,d[c?"height":"width"]+=s,r=!0)):n&&(e.scrollablePixelsY=o=Math.max(0,n-e.chartHeight),vl(o)&&(e.scrollablePlotBox=xh(e.plotBox),p.height=e.plotHeight+=o,d[c?"width":"height"]+=o,r=!1)),vl(r)&&!i.skipAxes))for(let m of e.axes)(m.horiz===r||e.hasParallelCoordinates&&m.coll==="yAxis")&&(m.setAxisSize(),m.setAxisTranslation())}constructor(e){let i,s=e.options.chart,o=ri.getRendererType(),r=s.scrollablePlotArea||{},a=this.moveFixedElements.bind(this),n={WebkitOverflowScrolling:"touch",overflowX:"hidden",overflowY:"hidden"};e.scrollablePixelsX&&(n.overflowX="auto"),e.scrollablePixelsY&&(n.overflowY="auto"),this.chart=e;let d=this.parentDiv=dn("div",{className:"highcharts-scrolling-parent"},{position:"relative"},e.renderTo),p=this.scrollingContainer=dn("div",{className:"highcharts-scrolling"},n,d),c=this.innerContainer=dn("div",{className:"highcharts-inner-container"},void 0,p),g=this.fixedDiv=dn("div",{className:"highcharts-fixed"},{position:"absolute",overflow:"hidden",pointerEvents:"none",zIndex:(s.style?.zIndex||0)+2,top:0},void 0,!0),m=this.fixedRenderer=new o(g,e.chartWidth,e.chartHeight,s.style);this.mask=m.path().attr({fill:s.backgroundColor||"#fff","fill-opacity":r.opacity??.85,zIndex:-1}).addClass("highcharts-scrollable-mask").add(),p.parentNode.insertBefore(g,p),yl(e.renderTo,{overflow:"visible"}),wo(e,"afterShowResetZoom",a),wo(e,"afterApplyDrilldown",a),wo(e,"afterLayOutTitles",a),wo(p,"scroll",()=>{let{pointer:x,hoverPoint:y}=e;x&&(delete x.chartPosition,y&&(i=y),x.runPointActions(void 0,i,!0))}),c.appendChild(e.container)}applyFixed(){let{chart:e,fixedRenderer:i,isDirty:s,scrollingContainer:o}=this,{axisOffset:r,chartWidth:a,chartHeight:n,container:d,plotHeight:p,plotLeft:c,plotTop:g,plotWidth:m,scrollablePixelsX:x=0,scrollablePixelsY:y=0}=e,{scrollPositionX:k=0,scrollPositionY:v=0}=e.options.chart.scrollablePlotArea||{},P=a+x,T=n+y;i.setSize(a,n),(s??!0)&&(this.isDirty=!1,this.moveFixedElements()),oc(e.container),yl(d,{width:`${P}px`,height:`${T}px`}),e.renderer.boxWrapper.attr({width:P,height:T,viewBox:[0,0,P,T].join(" ")}),e.chartBackground?.attr({width:P,height:T}),yl(o,{width:`${a}px`,height:`${n}px`}),vl(s)||(o.scrollLeft=x*k,o.scrollTop=y*v);let O=g-r[0]-1,Y=c-r[3]-1,B=g+p+r[2]+1,R=c+m+r[1]+1,X=c+m-x,j=g+p-y,$=[["M",0,0]];x?$=[["M",0,O],["L",c-1,O],["L",c-1,B],["L",0,B],["Z"],["M",X,O],["L",a,O],["L",a,B],["L",X,B],["Z"]]:y&&($=[["M",Y,0],["L",Y,g-1],["L",R,g-1],["L",R,0],["Z"],["M",Y,j],["L",Y,n],["L",R,n],["L",R,j],["Z"]]),e.redrawTrigger!=="adjustHeight"&&this.mask.attr({d:$})}moveFixedElements(){let e,{container:i,inverted:s,scrollablePixelsX:o,scrollablePixelsY:r}=this.chart,a=this.fixedRenderer,n=l.fixedSelectors;if(o&&!s?e=".highcharts-yaxis":o&&s||r&&!s?e=".highcharts-xaxis":r&&s&&(e=".highcharts-yaxis"),e&&!(this.chart.hasParallelCoordinates&&e===".highcharts-yaxis"))for(let d of[`${e}:not(.highcharts-radial-axis)`,`${e}-labels:not(.highcharts-radial-axis-labels)`])bh(n,d);else for(let d of[".highcharts-xaxis",".highcharts-yaxis"])for(let p of[`${d}:not(.highcharts-radial-axis)`,`${d}-labels:not(.highcharts-radial-axis-labels)`])ac(n,p);for(let d of n)[].forEach.call(i.querySelectorAll(d),p=>{(p.namespaceURI===a.SVG_NS?a.box:a.box.parentNode).appendChild(p),p.style.pointerEvents="auto"})}}return l.fixedSelectors=[".highcharts-breadcrumbs-group",".highcharts-contextbutton",".highcharts-caption",".highcharts-credits",".highcharts-drillup-button",".highcharts-legend",".highcharts-legend-checkbox",".highcharts-navigator-series",".highcharts-navigator-xaxis",".highcharts-navigator-yaxis",".highcharts-navigator",".highcharts-range-selector-group",".highcharts-reset-zoom",".highcharts-scrollbar",".highcharts-subtitle",".highcharts-title"],l})(),{format:lc}=fe,{series:hc}=Me,{destroyObjectProperties:dc,fireEvent:kh,getAlignFactor:kl,isNumber:Ml,pick:aa}=mt,Mh=class{constructor(l,t,e,i,s){let o=l.chart.inverted,r=l.reversed;this.axis=l;let a=this.isNegative=!!e!=!!r;this.options=t=t||{},this.x=i,this.total=null,this.cumulative=null,this.points={},this.hasValidPoints=!1,this.stack=s,this.leftCliff=0,this.rightCliff=0,this.alignOptions={align:t.align||(o?a?"left":"right":"center"),verticalAlign:t.verticalAlign||(o?"middle":a?"bottom":"top"),y:t.y,x:t.x},this.textAlign=t.textAlign||(o?a?"right":"left":"center")}destroy(){dc(this,this.axis)}render(l){let t=this.axis.chart,e=this.options,i=e.format,s=i?lc(i,this,t):e.formatter.call(this);if(this.label)this.label.attr({text:s,visibility:"hidden"});else{this.label=t.renderer.label(s,null,void 0,e.shape,void 0,void 0,e.useHTML,!1,"stack-labels");let o={r:e.borderRadius||0,text:s,padding:aa(e.padding,5),visibility:"hidden"};t.styledMode||(o.fill=e.backgroundColor,o.stroke=e.borderColor,o["stroke-width"]=e.borderWidth,this.label.css(e.style||{})),this.label.attr(o),this.label.added||this.label.add(l)}this.label.labelrank=t.plotSizeY,kh(this,"afterRender")}setOffset(l,t,e,i,s,o){let{alignOptions:r,axis:a,label:n,options:d,textAlign:p}=this,c=a.chart,g=this.getStackBox({xOffset:l,width:t,boxBottom:e,boxTop:i,defaultX:s,xAxis:o}),{verticalAlign:m}=r;if(n&&g){let x=n.getBBox(void 0,0),y=n.padding,k=aa(d.overflow,"justify")==="justify",v;r.x=d.x||0,r.y=d.y||0;let{x:P,y:T}=this.adjustStackPosition({labelBox:x,verticalAlign:m,textAlign:p});g.x-=P,g.y-=T,n.align(r,!1,g),(v=c.isInsidePlot(n.alignAttr.x+r.x+P,n.alignAttr.y+r.y+T))||(k=!1),k&&hc.prototype.justifyDataLabel.call(a,n,r,n.alignAttr,x,g),n.attr({x:n.alignAttr.x,y:n.alignAttr.y,rotation:d.rotation,rotationOriginX:x.width*kl(d.textAlign||"center"),rotationOriginY:x.height/2}),aa(!k&&d.crop,!0)&&(v=Ml(n.x)&&Ml(n.y)&&c.isInsidePlot(n.x-y+(n.width||0),n.y)&&c.isInsidePlot(n.x+y,n.y)),n[v?"show":"hide"]()}kh(this,"afterSetOffset",{xOffset:l,width:t})}adjustStackPosition({labelBox:l,verticalAlign:t,textAlign:e}){return{x:l.width/2+l.width/2*(2*kl(e)-1),y:l.height/2*2*(1-kl(t))}}getStackBox(l){let t=this.axis,e=t.chart,{boxTop:i,defaultX:s,xOffset:o,width:r,boxBottom:a}=l,n=t.stacking.usePercentage?100:aa(i,this.total,0),d=t.toPixels(n),p=l.xAxis||e.xAxis[0],c=aa(s,p.translate(this.x))+o,g=Math.abs(d-t.toPixels(a||Ml(t.min)&&t.logarithmic&&t.logarithmic.lin2log(t.min)||0)),m=e.inverted,x=this.isNegative;return m?{x:(x?d:d-g)-e.plotLeft,y:p.height-c-r+p.top-e.plotTop,width:g,height:r}:{x:c+p.transB-e.plotLeft,y:(x?d-g:d)-e.plotTop,width:r,height:g}}},{getDeferredAnimation:cc}=K,{series:{prototype:pc}}=Me,{addEvent:wh,correctFloat:na,defined:Ah,destroyObjectProperties:uc,fireEvent:gc,isNumber:wl,objectEach:nr,pick:Al}=mt;function fc(){let l=this.inverted;this.axes.forEach(t=>{t.stacking?.stacks&&t.hasVisibleSeries&&(t.stacking.oldStacks=t.stacking.stacks)}),this.series.forEach(t=>{let e=t.xAxis?.options||{};t.options.stacking&&t.reserveSpace()&&(t.stackKey=[t.type,Al(t.options.stack,""),l?e.top:e.left,l?e.height:e.width].join(","))})}function mc(){let l=this.stacking;if(l){let t=l.stacks;nr(t,(e,i)=>{uc(e),delete t[i]}),l.stackTotalGroup?.destroy()}}function xc(){this.stacking||(this.stacking=new wc(this))}function bc(l,t,e,i){return!Ah(l)||l.x!==t||i&&l.stackKey!==i?l={x:t,index:0,key:i,stackKey:i}:l.index++,l.key=[e,t,l.index].join(","),l}function yc(){let l,t=this,e=t.yAxis,i=t.stackKey||"",s=e.stacking.stacks,o=t.getColumn("x",!0),r=t.options.stacking,a=t[r+"Stacker"];a&&[i,"-"+i].forEach(n=>{let d=o.length,p,c,g;for(;d--;)p=o[d],l=t.getStackIndicator(l,p,t.index,n),c=s[n]?.[p],(g=c?.points[l.key||""])&&a.call(t,g,c,d)})}function vc(l,t,e){let i=t.total?100/t.total:0;l[0]=na(l[0]*i),l[1]=na(l[1]*i),this.stackedYData[e]=l[1]}function kc(l){(this.is("column")||this.is("columnrange"))&&(this.options.centerInCategory&&this.chart.series.length>1?pc.setStackedPoints.call(this,l,"group"):l.stacking.resetStacks())}function Mc(l,t){let e,i,s,o,r,a,n,d=t||this.options.stacking;if(!d||!this.reserveSpace()||({group:"xAxis"}[d]||"yAxis")!==l.coll)return;let p=this.getColumn("x",!0),c=this.getColumn(this.pointValKey||"y",!0),g=[],m=c.length,x=this.options,y=x.threshold||0,k=x.startFromThreshold?y:0,v=x.stack,P=t?`${this.type},${d}`:this.stackKey||"",T="-"+P,O=this.negStacks,Y=l.stacking,B=Y.stacks,R=Y.oldStacks;for(Y.stacksTouched+=1,n=0;n<m;n++){let X=p[n]||0,j=c[n],$=wl(j)&&j||0;a=(e=this.getStackIndicator(e,X,this.index)).key||"",B[r=(i=O&&$<(k?0:y))?T:P]||(B[r]={}),B[r][X]||(R[r]?.[X]?(B[r][X]=R[r][X],B[r][X].total=null):B[r][X]=new Mh(l,l.options.stackLabels,!!i,X,v)),s=B[r][X],j!==null?(s.points[a]=s.points[this.index]=[Al(s.cumulative,k)],Ah(s.cumulative)||(s.base=a),s.touched=Y.stacksTouched,e.index>0&&this.singleStacks===!1&&(s.points[a][0]=s.points[this.index+","+X+",0"][0])):(delete s.points[a],delete s.points[this.index]);let Z=s.total||0;d==="percent"?(o=i?P:T,Z=O&&B[o]?.[X]?(o=B[o][X]).total=Math.max(o.total||0,Z)+Math.abs($):na(Z+Math.abs($))):d==="group"?wl(j)&&Z++:Z=na(Z+$),d==="group"?s.cumulative=(Z||1)-1:s.cumulative=na(Al(s.cumulative,k)+$),s.total=Z,j!==null&&(s.points[a].push(s.cumulative),g[n]=s.cumulative,s.hasValidPoints=!0)}d==="percent"&&(Y.usePercentage=!0),d!=="group"&&(this.stackedYData=g),Y.oldStacks={}}class wc{constructor(t){this.oldStacks={},this.stacks={},this.stacksTouched=0,this.axis=t}buildStacks(){let t,e,i=this.axis,s=i.series,o=i.coll==="xAxis",r=i.options.reversedStacks,a=s.length;for(this.resetStacks(),this.usePercentage=!1,e=a;e--;)t=s[r?e:a-e-1],o&&t.setGroupedPoints(i),t.setStackedPoints(i);if(!o)for(e=0;e<a;e++)s[e].modifyStacks();gc(i,"afterBuildStacks")}cleanStacks(){this.oldStacks&&(this.stacks=this.oldStacks,nr(this.stacks,t=>{nr(t,e=>{e.cumulative=e.total})}))}resetStacks(){nr(this.stacks,t=>{nr(t,(e,i)=>{wl(e.touched)&&e.touched<this.stacksTouched?(e.destroy(),delete t[i]):(e.total=null,e.cumulative=null)})})}renderStackTotals(){let t=this.axis,e=t.chart,i=e.renderer,s=this.stacks,o=cc(e,t.options.stackLabels?.animation||!1),r=this.stackTotalGroup=this.stackTotalGroup||i.g("stack-labels").attr({zIndex:6,opacity:0}).add();r.translate(e.plotLeft,e.plotTop),nr(s,a=>{nr(a,n=>{n.render(r)})}),r.animate({opacity:1},o)}}(Hs||(Hs={})).compose=function(l,t,e){let i=t.prototype,s=e.prototype;i.getStacks||(wh(l,"init",xc),wh(l,"destroy",mc),i.getStacks=fc,s.getStackIndicator=bc,s.modifyStacks=yc,s.percentStacker=vc,s.setGroupedPoints=kc,s.setStackedPoints=Mc)};let Ac=Hs,{defined:Pc,merge:Ph,isObject:Sc}=mt;class Sh extends Wi{drawGraph(){let t=this.options,e=(this.gappedPath||this.getGraphPath).call(this),i=this.chart.styledMode;[this,...this.zones].forEach((s,o)=>{let r,a=s.graph,n=a?"animate":"attr",d=s.dashStyle||t.dashStyle;a?(a.endX=this.preventGraphAnimation?null:e.xMap,a.animate({d:e})):e.length&&(s.graph=a=this.chart.renderer.path(e).addClass("highcharts-graph"+(o?` highcharts-zone-graph-${o-1} `:" ")+(o&&s.className||"")).attr({zIndex:1}).add(this.group)),a&&!i&&(r={stroke:!o&&t.lineColor||s.color||this.color||"#cccccc","stroke-width":t.lineWidth||0,fill:this.fillGraph&&this.color||"none"},d?r.dashstyle=d:t.linecap!=="square"&&(r["stroke-linecap"]=r["stroke-linejoin"]="round"),a[n](r).shadow(t.shadow&&Ph({filterUnits:"userSpaceOnUse"},Sc(t.shadow)?t.shadow:{}))),a&&(a.startX=e.xMap,a.isArea=e.isArea)})}getGraphPath(t,e,i){let s=this,o=s.options,r=[],a=[],n,d=o.step,p=(t=t||s.points).reversed;return p&&t.reverse(),(d={right:1,center:2}[d]||d&&3)&&p&&(d=4-d),(t=this.getValidPoints(t,!1,o.nullInteraction||!(o.connectNulls&&!e&&!i))).forEach(function(c,g){let m,x=c.plotX,y=c.plotY,k=t[g-1],v=c.isNull||typeof y!="number";(c.leftCliff||k?.rightCliff)&&!i&&(n=!0),v&&!Pc(e)&&g>0?n=!o.connectNulls:v&&!e?n=!0:(g===0||n?m=[["M",c.plotX,c.plotY]]:s.getPointSpline?m=[s.getPointSpline(t,c,g)]:d?(m=d===1?[["L",k.plotX,y]]:d===2?[["L",(k.plotX+x)/2,k.plotY],["L",(k.plotX+x)/2,y]]:[["L",x,k.plotY]]).push(["L",x,y]):m=[["L",x,y]],a.push(c.x),d&&(a.push(c.x),d===2&&a.push(c.x)),r.push.apply(r,m),n=!1)}),r.xMap=a,s.graphPath=r,r}}Sh.defaultOptions=Ph(Wi.defaultOptions,{legendSymbol:"lineMarker"}),Me.registerSeriesType("line",Sh);let{seriesTypes:{line:Pl}}=Me,{extend:Tc,merge:Cc,objectEach:Lc,pick:cn}=mt;class Sl extends Pl{drawGraph(){this.areaPath=[],super.drawGraph.apply(this);let{areaPath:t,options:e}=this;[this,...this.zones].forEach((i,s)=>{let o={},r=i.fillColor||e.fillColor,a=i.area,n=a?"animate":"attr";a?(a.endX=this.preventGraphAnimation?null:t.xMap,a.animate({d:t})):(o.zIndex=0,(a=i.area=this.chart.renderer.path(t).addClass("highcharts-area"+(s?` highcharts-zone-area-${s-1} `:" ")+(s&&i.className||"")).add(this.group)).isArea=!0),this.chart.styledMode||(o.fill=r||i.color||this.color,o["fill-opacity"]=r?1:e.fillOpacity??.75,a.css({pointerEvents:this.stickyTracking?"none":"auto"})),a[n](o),a.startX=t.xMap,a.shiftUnit=e.step?2:1})}getGraphPath(t){let e,i,s,o=Pl.prototype.getGraphPath,r=this.options,a=r.stacking,n=this.yAxis,d=[],p=[],c=this.index,g=n.stacking.stacks[this.stackKey],m=r.threshold,x=Math.round(n.getThreshold(r.threshold)),y=cn(r.connectNulls,a==="percent"),k=function(B,R,X){let j=t[B],$=a&&g[j.x].points[c],Z=j[X+"Null"]||0,rt=j[X+"Cliff"]||0,nt,pt,bt=!0;rt||Z?(nt=(Z?$[0]:$[1])+rt,pt=$[0]+rt,bt=!!Z):!a&&t[R]&&t[R].isNull&&(nt=pt=m),nt!==void 0&&(p.push({plotX:e,plotY:nt===null?x:n.getThreshold(nt),isNull:bt,isCliff:!0}),d.push({plotX:e,plotY:pt===null?x:n.getThreshold(pt),doCurve:!1}))};t=t||this.points,a&&(t=this.getStackPoints(t));for(let B=0,R=t.length;B<R;++B)a||(t[B].leftCliff=t[B].rightCliff=t[B].leftNull=t[B].rightNull=void 0),i=t[B].isNull,e=cn(t[B].rectPlotX,t[B].plotX),s=a?cn(t[B].yBottom,x):x,i&&!y||(y||k(B,B-1,"left"),i&&!a&&y||(p.push(t[B]),d.push({x:B,plotX:e,plotY:s})),y||k(B,B+1,"right"));let v=o.call(this,p,!0,!0);d.reversed=!0;let P=o.call(this,d,!0,!0),T=P[0];T&&T[0]==="M"&&(P[0]=["L",T[1],T[2]]);let O=v.concat(P);O.length&&O.push(["Z"]);let Y=o.call(this,p,!1,y);return this.chart.series.length>1&&a&&p.some(B=>B.isCliff)&&(O.hasStackedCliffs=Y.hasStackedCliffs=!0),O.xMap=v.xMap,this.areaPath=O,Y}getStackPoints(t){let e=this,i=[],s=[],o=this.xAxis,r=this.yAxis,a=r.stacking.stacks[this.stackKey],n={},d=r.series,p=d.length,c=r.options.reversedStacks?1:-1,g=d.indexOf(e);if(t=t||this.points,this.options.stacking){for(let x=0;x<t.length;x++)t[x].leftNull=t[x].rightNull=void 0,n[t[x].x]=t[x];Lc(a,function(x,y){x.total!==null&&s.push(y)}),s.sort(function(x,y){return x-y});let m=d.map(x=>x.visible);s.forEach(function(x,y){let k=0,v,P;if(n[x]&&!n[x].isNull)i.push(n[x]),[-1,1].forEach(function(T){let O=T===1?"rightNull":"leftNull",Y=a[s[y+T]],B=0;if(Y){let R=g;for(;R>=0&&R<p;){let X=d[R].index;!(v=Y.points[X])&&(X===e.index?n[x][O]=!0:m[R]&&(P=a[x].points[X])&&(B-=P[1]-P[0])),R+=c}}n[x][T===1?"rightCliff":"leftCliff"]=B});else{let T=g;for(;T>=0&&T<p;){let O=d[T].index;if(v=a[x].points[O]){k=v[1];break}T+=c}k=cn(k,0),k=r.translate(k,0,1,0,1),i.push({isNull:!0,plotX:o.translate(x,0,0,0,1),x,plotY:k,yBottom:k})}})}return i}}Sl.defaultOptions=Cc(Pl.defaultOptions,{threshold:0,legendSymbol:"areaMarker"}),Tc(Sl.prototype,{singleStacks:!1}),Me.registerSeriesType("area",Sl);let{line:Th}=Me.seriesTypes,{merge:Ec,pick:pn}=mt;class Tl extends Th{getPointSpline(t,e,i){let s,o,r,a,n=e.plotX||0,d=e.plotY||0,p=t[i-1],c=t[i+1];function g(x){return x&&!x.isNull&&x.doCurve!==!1&&!e.isCliff}if(g(p)&&g(c)){let x=p.plotX||0,y=p.plotY||0,k=c.plotX||0,v=c.plotY||0,P=0;s=(1.5*n+x)/2.5,o=(1.5*d+y)/2.5,r=(1.5*n+k)/2.5,a=(1.5*d+v)/2.5,r!==s&&(P=(a-o)*(r-n)/(r-s)+d-a),o+=P,a+=P,o>y&&o>d?(o=Math.max(y,d),a=2*d-o):o<y&&o<d&&(o=Math.min(y,d),a=2*d-o),a>v&&a>d?(a=Math.max(v,d),o=2*d-a):a<v&&a<d&&(a=Math.min(v,d),o=2*d-a),e.rightContX=r,e.rightContY=a,e.controlPoints={low:[s,o],high:[r,a]}}let m=["C",pn(p.rightContX,p.plotX,0),pn(p.rightContY,p.plotY,0),pn(s,n,0),pn(o,d,0),n,d];return p.rightContX=p.rightContY=void 0,m}}Tl.defaultOptions=Ec(Th.defaultOptions),Me.registerSeriesType("spline",Tl);let Ch=Tl,{area:Oc,area:{prototype:Cl}}=Me.seriesTypes,{extend:Ic,merge:Nc}=mt;class Ll extends Ch{}Ll.defaultOptions=Nc(Ch.defaultOptions,Oc.defaultOptions),Ic(Ll.prototype,{getGraphPath:Cl.getGraphPath,getStackPoints:Cl.getStackPoints,drawGraph:Cl.drawGraph}),Me.registerSeriesType("areaspline",Ll);let{animObject:Dc}=K,{parse:Rc}=$t,{noop:zc}=V,{clamp:un,crisp:gn,defined:Lh,extend:Eh,fireEvent:Oh,isArray:Ih,isNumber:fn,merge:El,pick:la,objectEach:Bc}=mt;class mn extends Wi{animate(t){let e,i,s=this,o=this.yAxis,r=o.pos,a=o.reversed,n=s.options,{clipOffset:d,inverted:p}=this.chart,c={},g=p?"translateX":"translateY";t&&d?(c.scaleY=.001,i=un(o.toPixels(n.threshold||0),r,r+o.len),p?c.translateX=(i+=a?-Math.floor(d[0]):Math.ceil(d[2]))-o.len:c.translateY=i+=a?Math.ceil(d[0]):-Math.floor(d[2]),s.clipBox&&s.setClip(),s.group.attr(c)):(e=Number(s.group.attr(g)),s.group.animate({scaleY:1},Eh(Dc(s.options.animation),{step:function(m,x){s.group&&(c[g]=e+x.pos*(r-e),s.group.attr(c))}})))}init(t,e){super.init.apply(this,arguments);let i=this;(t=i.chart).hasRendered&&t.series.forEach(function(s){s.type===i.type&&(s.isDirty=!0)})}getColumnMetrics(){let t=this,e=t.options,i=t.xAxis,s=t.yAxis,o=i.options.reversedStacks,r=i.reversed&&!o||!i.reversed&&o,a={},n,d=0;e.grouping===!1?d=1:t.chart.series.forEach(function(y){let k,v=y.yAxis,P=y.options;y.type===t.type&&y.reserveSpace()&&s.len===v.len&&s.pos===v.pos&&(P.stacking&&P.stacking!=="group"?(a[n=y.stackKey]===void 0&&(a[n]=d++),k=a[n]):P.grouping!==!1&&(k=d++),y.columnIndex=k)});let p=Math.min(Math.abs(i.transA)*(!i.brokenAxis?.hasBreaks&&i.ordinal?.slope||e.pointRange||i.closestPointRange||i.tickInterval||1),i.len),c=p*e.groupPadding,g=(p-2*c)/(d||1),m=Math.min(e.maxPointWidth||i.len,la(e.pointWidth,g*(1-2*e.pointPadding))),x=(t.columnIndex||0)+ +!!r;return t.columnMetrics={width:m,offset:(g-m)/2+(c+x*g-p/2)*(r?-1:1),paddedWidth:g,columnCount:d},t.columnMetrics}crispCol(t,e,i,s){let o=this.borderWidth,r=this.chart.inverted;return s=gn(e+s,o,r)-(e=gn(e,o,r)),this.options.crisp&&(i=gn(t+i,o)-(t=gn(t,o))),{x:t,y:e,width:i,height:s}}adjustForMissingColumns(t,e,i,s){if(!i.isNull&&s.columnCount>1){let o=this.xAxis.series.filter(d=>d.visible).map(d=>d.index),r=0,a=0;Bc(this.xAxis.stacking?.stacks,d=>{let p=typeof i.x=="number"?d[i.x.toString()]?.points:void 0,c=p?.[this.index],g={};if(p&&Ih(c)){let m=this.index,x=Object.keys(p).filter(y=>!y.match(",")&&p[y]&&p[y].length>1).map(parseFloat).filter(y=>o.indexOf(y)!==-1).filter(y=>{let k=this.chart.series[y].options,v=k.stacking&&k.stack;if(Lh(v)){if(fn(g[v]))return m===y&&(m=g[v]),!1;g[v]=y}return!0}).sort((y,k)=>k-y);r=x.indexOf(m),a=x.length}}),r=this.xAxis.reversed?a-1-r:r;let n=(a-1)*s.paddedWidth+e;t=(i.plotX||0)+n/2-e-r*s.paddedWidth}return t}translate(){let t=this,e=t.chart,i=t.options,s=t.dense=t.closestPointRange*t.xAxis.transA<2,o=t.borderWidth=la(i.borderWidth,+!s),r=t.xAxis,a=t.yAxis,n=i.threshold,d=la(i.minPointLength,5),p=t.getColumnMetrics(),c=p.width,g=t.pointXOffset=p.offset,m=t.dataMin,x=t.dataMax,y=t.translatedThreshold=a.getThreshold(n),k=t.barW=Math.max(c,1+2*o);i.pointPadding&&i.crisp&&(k=Math.ceil(k)),Wi.prototype.translate.apply(t),t.points.forEach(function(v){let P=la(v.yBottom,y),T=999+Math.abs(P),O=v.plotX||0,Y=un(v.plotY,-T,a.len+T),B,R=Math.min(Y,P),X=Math.max(Y,P)-R,j=c,$=O+g,Z=k;d&&Math.abs(X)<d&&(X=d,B=!a.reversed&&!v.negative||a.reversed&&v.negative,fn(n)&&fn(x)&&v.y===n&&x<=n&&(a.min||0)<n&&(m!==x||(a.max||0)<=n)&&(B=!B,v.negative=!v.negative),R=Math.abs(R-y)>d?P-d:y-(B?d:0)),Lh(v.options.pointWidth)&&($-=Math.round(((j=Z=Math.ceil(v.options.pointWidth))-c)/2)),i.centerInCategory&&($=t.adjustForMissingColumns($,j,v,p)),v.barX=$,v.pointWidth=j,v.tooltipPos=e.inverted?[un(a.len+a.pos-e.plotLeft-Y,a.pos-e.plotLeft,a.len+a.pos-e.plotLeft),r.len+r.pos-e.plotTop-$-Z/2,X]:[r.left-e.plotLeft+$+Z/2,un(Y+a.pos-e.plotTop,a.pos-e.plotTop,a.len+a.pos-e.plotTop),X],v.shapeType=t.pointClass.prototype.shapeType||"roundedRect",v.shapeArgs=t.crispCol($,R,Z,v.isNull?0:X)}),Oh(this,"afterColumnTranslate")}drawGraph(){this.group[this.dense?"addClass":"removeClass"]("highcharts-dense-data")}pointAttribs(t,e){let i=this.options,s=this.pointAttrToOptions||{},o=s.stroke||"borderColor",r=s["stroke-width"]||"borderWidth",a,n,d,p=t&&t.color||this.color,c=t&&t[o]||i[o]||p,g=t&&t.options.dashStyle||i.dashStyle,m=t&&t[r]||i[r]||this[r]||0,x=t?.isNull&&i.nullInteraction?0:t?.opacity??i.opacity??1;t&&this.zones.length&&(n=t.getZone(),p=t.options.color||n&&(n.color||t.nonZonedColor)||this.color,n&&(c=n.borderColor||c,g=n.dashStyle||g,m=n.borderWidth||m)),e&&t&&(d=(a=El(i.states[e],t.options.states&&t.options.states[e]||{})).brightness,p=a.color||d!==void 0&&Rc(p).brighten(a.brightness).get()||p,c=a[o]||c,m=a[r]||m,g=a.dashStyle||g,x=la(a.opacity,x));let y={fill:p,stroke:c,"stroke-width":m,opacity:x};return g&&(y.dashstyle=g),y}drawPoints(t=this.points){let e,i=this,s=this.chart,o=i.options,r=o.nullInteraction,a=s.renderer,n=o.animationLimit||250;t.forEach(function(d){let p=d.plotY,c=d.graphic,g=!!c,m=c&&s.pointCount<n?"animate":"attr";fn(p)&&(d.y!==null||r)?(e=d.shapeArgs,c&&d.hasNewShapeType()&&(c=c.destroy()),i.enabledDataSorting&&(d.startXPos=i.xAxis.reversed?-(e&&e.width||0):i.xAxis.width),!c&&(d.graphic=c=a[d.shapeType](e).add(d.group||i.group),c&&i.enabledDataSorting&&s.hasRendered&&s.pointCount<n&&(c.attr({x:d.startXPos}),g=!0,m="animate")),c&&g&&c[m](El(e)),s.styledMode||c[m](i.pointAttribs(d,d.selected&&"select")).shadow(d.allowShadow!==!1&&o.shadow),c&&(c.addClass(d.getClassName(),!0),c.attr({visibility:d.visible?"inherit":"hidden"}))):c&&(d.graphic=c.destroy())})}drawTracker(t=this.points){let e,i=this,s=i.chart,o=s.pointer,r=function(a){o?.normalize(a);let n=o?.getPointFromEvent(a);o&&n&&i.options.enableMouseTracking&&(s.isInsidePlot(a.chartX-s.plotLeft,a.chartY-s.plotTop,{visiblePlotOnly:!0})||o?.inClass(a.target,"highcharts-data-label"))&&(o.isDirectTouch=!0,n.onMouseOver(a))};t.forEach(function(a){e=Ih(a.dataLabels)?a.dataLabels:a.dataLabel?[a.dataLabel]:[],a.graphic&&(a.graphic.element.point=a),e.forEach(function(n){(n.div||n.element).point=a})}),i._hasTracking||(i.trackerGroups.forEach(function(a){i[a]&&(i[a].addClass("highcharts-tracker").on("mouseover",r).on("mouseout",function(n){o?.onTrackerMouseOut(n)}).on("touchstart",r),!s.styledMode&&i.options.cursor&&i[a].css({cursor:i.options.cursor}))}),i._hasTracking=!0),Oh(this,"afterDrawTracker")}remove(){let t=this,e=t.chart;e.hasRendered&&e.series.forEach(function(i){i.type===t.type&&(i.isDirty=!0)}),Wi.prototype.remove.apply(t,arguments)}}mn.defaultOptions=El(Wi.defaultOptions,{borderRadius:3,centerInCategory:!1,groupPadding:.2,marker:null,pointPadding:.1,minPointLength:0,cropThreshold:50,pointRange:null,states:{hover:{halo:!1,brightness:.1},select:{color:"#cccccc",borderColor:"#000000"}},dataLabels:{align:void 0,verticalAlign:void 0,y:void 0},startFromThreshold:!0,stickyTracking:!1,tooltip:{distance:6},threshold:0,borderColor:"#ffffff"}),Eh(mn.prototype,{directTouch:!0,getSymbol:zc,negStacks:!0,trackerGroups:["group","dataLabelsGroup"]}),Me.registerSeriesType("column",mn);let xn=mn,{getDeferredAnimation:Xc}=K,{format:Yc}=fe,{defined:lr,extend:Nh,fireEvent:Ol,getAlignFactor:Dh,isArray:Ao,isString:ha,merge:da,objectEach:Wc,pick:ca,pInt:Hc,splat:Rh}=mt;(function(l){function t(){return n(this).some(p=>p?.enabled)}function e(p,c,g,m,x){let{chart:y,enabledDataSorting:k}=this,v=this.isCartesian&&y.inverted,P=p.plotX,T=p.plotY,O=g.rotation||0,Y=lr(P)&&lr(T)&&y.isInsidePlot(P,Math.round(T),{inverted:v,paneCoordinates:!0,series:this}),B=O===0&&ca(g.overflow,k?"none":"justify")==="justify",R=this.visible&&p.visible!==!1&&lr(P)&&(p.series.forceDL||k&&!B||Y||ca(g.inside,!!this.options.stacking)&&m&&y.isInsidePlot(P,v?m.x+1:m.y+m.height-1,{inverted:v,paneCoordinates:!0,series:this})),X=p.pos();if(R&&X){var j;let $=c.getBBox(),Z=c.getBBox(void 0,0);if(m=Nh({x:X[0],y:Math.round(X[1]),width:0,height:0},m||{}),g.alignTo==="plotEdges"&&this.isCartesian&&(m[v?"x":"y"]=0,m[v?"width":"height"]=this.yAxis?.len||0),Nh(g,{width:$.width,height:$.height}),j=m,k&&this.xAxis&&!B&&this.setDataLabelStartPos(p,c,x,Y,j),c.align(da(g,{width:Z.width,height:Z.height}),!1,m,!1),c.alignAttr.x+=Dh(g.align)*(Z.width-$.width),c.alignAttr.y+=Dh(g.verticalAlign)*(Z.height-$.height),c[c.placed?"animate":"attr"]({"text-align":c.alignAttr["text-align"]||"center",x:c.alignAttr.x+($.width-Z.width)/2,y:c.alignAttr.y+($.height-Z.height)/2,rotationOriginX:(c.width||0)/2,rotationOriginY:(c.height||0)/2}),B&&m.height>=0)this.justifyDataLabel(c,g,c.alignAttr,$,m,x);else if(ca(g.crop,!0)){let{x:rt,y:nt}=c.alignAttr;R=y.isInsidePlot(rt,nt,{paneCoordinates:!0,series:this})&&y.isInsidePlot(rt+$.width-1,nt+$.height-1,{paneCoordinates:!0,series:this})}g.shape&&!O&&c[x?"attr":"animate"]({anchorX:X[0],anchorY:X[1]})}x&&k&&(c.placed=!1),R||k&&!B?(c.show(),c.placed=!0):(c.hide(),c.placed=!1)}function i(){return this.plotGroup("dataLabelsGroup","data-labels",this.hasRendered?"inherit":"hidden",this.options.dataLabels.zIndex||6)}function s(p){let c=this.hasRendered||0,g=this.initDataLabelsGroup().attr({opacity:+c});return!c&&g&&(this.visible&&g.show(),this.options.animation?g.animate({opacity:1},p):g.attr({opacity:1})),g}function o(p){let c;p=p||this.points;let g=this,m=g.chart,x=g.options,y=m.renderer,{backgroundColor:k,plotBackgroundColor:v}=m.options.chart,P=y.getContrast(ha(v)&&v||ha(k)&&k||"#000000"),T=n(g),{animation:O,defer:Y}=T[0],B=Y?Xc(m,O,g):{defer:0,duration:0};Ol(this,"drawDataLabels"),g.hasDataLabels?.()&&(c=this.initDataLabels(B),p.forEach(R=>{let X=R.dataLabels||[],j=R.color||g.color;Rh(a(T,R.dlOptions||R.options?.dataLabels)).forEach((Z,rt)=>{let nt=Z.enabled&&(R.visible||R.dataLabelOnHidden)&&(!R.isNull||R.dataLabelOnNull)&&(function(ee,oe){let jt=oe.filter;if(jt){let me=jt.operator,xi=ee[jt.property],Li=jt.value;return me===">"&&xi>Li||me==="<"&&xi<Li||me===">="&&xi>=Li||me==="<="&&xi<=Li||me==="=="&&xi==Li||me==="==="&&xi===Li||me==="!="&&xi!=Li||me==="!=="&&xi!==Li||!1}return!0})(R,Z),{backgroundColor:pt,borderColor:bt,distance:ht,style:yt={}}=Z,de,Ft,mi,Tt={},Ct=X[rt],Gt=!Ct,zt;nt&&(Ft=lr(de=ca(Z[R.formatPrefix+"Format"],Z.format))?Yc(de,R,m):(Z[R.formatPrefix+"Formatter"]||Z.formatter).call(R,Z),mi=Z.rotation,!m.styledMode&&(yt.color=ca(Z.color,yt.color,ha(g.color)?g.color:void 0,"#000000"),yt.color==="contrast"?(pt!=="none"&&(zt=pt),R.contrastColor=y.getContrast(zt!=="auto"&&ha(zt)&&zt||(ha(j)?j:"")),yt.color=zt||!lr(ht)&&Z.inside||0>Hc(ht||0)||x.stacking?R.contrastColor:P):delete R.contrastColor,x.cursor&&(yt.cursor=x.cursor)),Tt={r:Z.borderRadius||0,rotation:mi,padding:Z.padding,zIndex:1},m.styledMode||(Tt.fill=pt==="auto"?R.color:pt,Tt.stroke=bt==="auto"?R.color:bt,Tt["stroke-width"]=Z.borderWidth),Wc(Tt,(ee,oe)=>{ee===void 0&&delete Tt[oe]})),!Ct||nt&&lr(Ft)&&!!(Ct.div||Ct.text?.foreignObject)==!!Z.useHTML&&(Ct.rotation&&Z.rotation||Ct.rotation===Z.rotation)||(Ct=void 0,Gt=!0),nt&&lr(Ft)&&(Ct?Tt.text=Ft:(Ct=y.label(Ft,0,0,Z.shape,void 0,void 0,Z.useHTML,void 0,"data-label")).addClass(" highcharts-data-label-color-"+R.colorIndex+" "+(Z.className||"")+(Z.useHTML?" highcharts-tracker":"")),Ct&&(Ct.options=Z,Ct.attr(Tt),m.styledMode?yt.width&&Ct.css({width:yt.width,textOverflow:yt.textOverflow,whiteSpace:yt.whiteSpace}):Ct.css(yt).shadow(Z.shadow),Ol(Ct,"beforeAddingDataLabel",{labelOptions:Z,point:R}),Ct.added||Ct.add(c),g.alignDataLabel(R,Ct,Z,void 0,Gt),Ct.isActive=!0,X[rt]&&X[rt]!==Ct&&X[rt].destroy(),X[rt]=Ct))});let $=X.length;for(;$--;)X[$]?.isActive?X[$].isActive=!1:(X[$]?.destroy(),X.splice($,1));R.dataLabel=X[0],R.dataLabels=X})),Ol(this,"afterDrawDataLabels")}function r(p,c,g,m,x,y){let k=this.chart,v=c.align,P=c.verticalAlign,T=p.box?0:p.padding||0,O=k.inverted?this.yAxis:this.xAxis,Y=O?O.left-k.plotLeft:0,B=k.inverted?this.xAxis:this.yAxis,R=B?B.top-k.plotTop:0,{x:X=0,y:j=0}=c,$,Z;return($=(g.x||0)+T+Y)<0&&(v==="right"&&X>=0?(c.align="left",c.inside=!0):X-=$,Z=!0),($=(g.x||0)+m.width-T+Y)>k.plotWidth&&(v==="left"&&X<=0?(c.align="right",c.inside=!0):X+=k.plotWidth-$,Z=!0),($=g.y+T+R)<0&&(P==="bottom"&&j>=0?(c.verticalAlign="top",c.inside=!0):j-=$,Z=!0),($=(g.y||0)+m.height-T+R)>k.plotHeight&&(P==="top"&&j<=0?(c.verticalAlign="bottom",c.inside=!0):j+=k.plotHeight-$,Z=!0),Z&&(c.x=X,c.y=j,p.placed=!y,p.align(c,void 0,x)),Z}function a(p,c){let g=[],m;if(Ao(p)&&!Ao(c))g=p.map(function(x){return da(x,c)});else if(Ao(c)&&!Ao(p))g=c.map(function(x){return da(p,x)});else if(Ao(p)||Ao(c)){if(Ao(p)&&Ao(c))for(m=Math.max(p.length,c.length);m--;)g[m]=da(p[m],c[m])}else g=da(p,c);return g}function n(p){let c=p.chart.options.plotOptions;return Rh(a(a(c?.series?.dataLabels,c?.[p.type]?.dataLabels),p.options.dataLabels))}function d(p,c,g,m,x){let y=this.chart,k=y.inverted,v=this.xAxis,P=v.reversed,T=((k?c.height:c.width)||0)/2,O=p.pointWidth,Y=O?O/2:0;c.startXPos=k?x.x:P?-T-Y:v.width-T+Y,c.startYPos=k?P?this.yAxis.height-T+Y:-T-Y:x.y,m?c.visibility==="hidden"&&(c.show(),c.attr({opacity:0}).animate({opacity:1})):c.attr({opacity:1}).animate({opacity:0},void 0,c.hide),y.hasRendered&&(g&&c.attr({x:c.startXPos,y:c.startYPos}),c.placed=!0)}l.compose=function(p){let c=p.prototype;c.initDataLabels||(c.initDataLabels=s,c.initDataLabelsGroup=i,c.alignDataLabel=e,c.drawDataLabels=o,c.justifyDataLabel=r,c.mergeArrays=a,c.setDataLabelStartPos=d,c.hasDataLabels=t)}})(Ei||(Ei={}));let bn=Ei,{composed:Fc}=V,{series:zh}=Me,{merge:Gc,pushUnique:Uc}=mt;(function(l){function t(e,i,s,o,r){let{chart:a,options:n}=this,d=a.inverted,p=this.xAxis?.len||a.plotSizeX||0,c=this.yAxis?.len||a.plotSizeY||0,g=e.dlBox||e.shapeArgs,m=e.below??(e.plotY||0)>(this.translatedThreshold??c),x=s.inside??!!n.stacking;if(g){if(o=Gc(g),s.overflow!=="allow"||s.crop!==!1||n.clip!==!1){o.y<0&&(o.height+=o.y,o.y=0);let y=o.y+o.height-c;y>0&&y<o.height-1&&(o.height-=y)}d&&(o={x:c-o.y-o.height,y:p-o.x-o.width,width:o.height,height:o.width}),x||(d?(o.x+=m?0:o.width,o.width=0):(o.y+=m?o.height:0,o.height=0))}s.align??(s.align=!d||x?"center":m?"right":"left"),s.verticalAlign??(s.verticalAlign=d||x?"middle":m?"top":"bottom"),zh.prototype.alignDataLabel.call(this,e,i,s,o,r),s.inside&&e.contrastColor&&i.css({color:e.contrastColor})}l.compose=function(e){bn.compose(zh),Uc(Fc,"ColumnDataLabel")&&(e.prototype.alignDataLabel=t)}})(Bt||(Bt={}));let jc=Bt,{extend:Vc,merge:_c}=mt;class Il extends xn{}Il.defaultOptions=_c(xn.defaultOptions,{}),Vc(Il.prototype,{inverted:!0}),Me.registerSeriesType("bar",Il);let{column:qc,line:Bh}=Me.seriesTypes,{addEvent:$c,extend:Zc,merge:Kc}=mt;class yn extends Bh{applyJitter(){let t=this,e=this.options.jitter,i=this.points.length;e&&this.points.forEach(function(s,o){["x","y"].forEach(function(r,a){if(e[r]&&!s.isNull){let n=`plot${r.toUpperCase()}`,d=t[`${r}Axis`],p=e[r]*d.transA;if(d&&!d.logarithmic){let c=Math.max(0,(s[n]||0)-p),g=Math.min(d.len,(s[n]||0)+p);s[n]=c+(g-c)*(function(m){let x=1e4*Math.sin(m);return x-Math.floor(x)})(o+a*i),r==="x"&&(s.clientX=s.plotX)}}})})}drawGraph(){this.options.lineWidth?super.drawGraph():this.graph&&(this.graph=this.graph.destroy())}}yn.defaultOptions=Kc(Bh.defaultOptions,{lineWidth:0,findNearestPointBy:"xy",jitter:{x:0,y:0},marker:{enabled:!0},tooltip:{headerFormat:'<span style="color:{point.color}">\u25CF</span> <span style="font-size: 0.8em"> {series.name}</span><br/>',pointFormat:"x: <b>{point.x}</b><br/>y: <b>{point.y}</b><br/>"}}),Zc(yn.prototype,{drawTracker:qc.prototype.drawTracker,sorted:!1,requireSorting:!1,noSharedTooltip:!0,trackerGroups:["group","markerGroup","dataLabelsGroup"]}),$c(yn,"afterTranslate",function(){this.applyJitter()}),Me.registerSeriesType("scatter",yn);let{deg2rad:Xh}=V,{fireEvent:Qc,isNumber:Nl,pick:vn,relativeLength:Jc}=mt;(function(l){l.getCenter=function(){let t=this.options,e=this.chart,i=2*(t.slicedOffset||0),s=e.plotWidth-2*i,o=e.plotHeight-2*i,r=t.center,a=Math.min(s,o),n=t.thickness,d,p=t.size,c=t.innerSize||0,g,m;typeof p=="string"&&(p=parseFloat(p)),typeof c=="string"&&(c=parseFloat(c));let x=[vn(r?.[0],"50%"),vn(r?.[1],"50%"),vn(p&&p<0?void 0:t.size,"100%"),vn(c&&c<0?void 0:t.innerSize||0,"0%")];for(!e.angular||this instanceof Wi||(x[3]=0),g=0;g<4;++g)m=x[g],d=g<2||g===2&&/%$/.test(m),x[g]=Jc(m,[s,o,a,x[2]][g])+(d?i:0);return x[3]>x[2]&&(x[3]=x[2]),Nl(n)&&2*n<x[2]&&n>0&&(x[3]=x[2]-2*n),Qc(this,"afterGetCenter",{positions:x}),x},l.getStartAndEndRadians=function(t,e){let i=Nl(t)?t:0,s=Nl(e)&&e>i&&e-i<360?e:i+360;return{start:Xh*(i+-90),end:Xh*(s+-90)}}})(vs||(vs={}));let Yh=vs,{setAnimation:tp}=K,{addEvent:Wh,defined:ep,extend:ip,isNumber:sp,pick:op,relativeLength:rp}=mt;class Hh extends ii{getConnectorPath(t){let e=t.dataLabelPosition,i=t.options||{},s=i.connectorShape,o=this.connectorShapes[s]||s;return e&&o.call(this,ga(ts({},e.computed),{alignment:e.alignment}),e.connectorPosition,i)||[]}getTranslate(){return this.sliced&&this.slicedTranslation||{translateX:0,translateY:0}}haloPath(t){let e=this.shapeArgs;return this.sliced||!this.visible?[]:this.series.chart.renderer.symbols.arc(e.x,e.y,e.r+t,e.r+t,{innerR:e.r-1,start:e.start,end:e.end,borderRadius:e.borderRadius})}constructor(t,e,i){super(t,e,i),this.half=0,this.name??(this.name=t.chart.options.lang.pieSliceName);let s=o=>{this.slice(o.type==="select")};Wh(this,"select",s),Wh(this,"unselect",s)}isValid(){return sp(this.y)&&this.y>=0}setVisible(t,e=!0){t!==this.visible&&this.update({visible:t??!this.visible},e,void 0,!1)}slice(t,e,i){let s=this.series;tp(i,s.chart),e=op(e,!0),this.sliced=this.options.sliced=t=ep(t)?t:!this.sliced,s.options.data[s.data.indexOf(this)]=this.options,this.graphic&&this.graphic.animate(this.getTranslate())}}ip(Hh.prototype,{connectorShapes:{fixedOffset:function(l,t,e){let i=t.breakAt,s=t.touchingSliceAt,o=e.softConnector?["C",l.x+(l.alignment==="left"?-5:5),l.y,2*i.x-s.x,2*i.y-s.y,i.x,i.y]:["L",i.x,i.y];return[["M",l.x,l.y],o,["L",s.x,s.y]]},straight:function(l,t){let e=t.touchingSliceAt;return[["M",l.x,l.y],["L",e.x,e.y]]},crookedLine:function(l,t,e){let{angle:i=this.angle||0,breakAt:s,touchingSliceAt:o}=t,{series:r}=this,[a,n,d]=r.center,p=d/2,{plotLeft:c,plotWidth:g}=r.chart,m=l.alignment==="left",{x,y}=l,k=s.x;if(e.crookDistance){let P=rp(e.crookDistance,1);k=m?a+p+(g+c-a-p)*(1-P):c+(a-p)*P}else k=a+(n-y)*Math.tan(i-Math.PI/2);let v=[["M",x,y]];return(m?k<=x&&k>=s.x:k>=x&&k<=s.x)&&v.push(["L",k,y]),v.push(["L",s.x,s.y],["L",o.x,o.y]),v}}});let{getStartAndEndRadians:ap}=Yh,{noop:Fh}=V,{clamp:np,extend:lp,fireEvent:Gh,merge:Dl,pick:hp}=mt;class Rl extends Wi{animate(t){let e=this,i=e.points,s=e.startAngleRad;t||i.forEach(function(o){let r=o.graphic,a=o.shapeArgs;r&&a&&(r.attr({r:hp(o.startR,e.center&&e.center[3]/2),start:s,end:s}),r.animate({r:a.r,start:a.start,end:a.end},e.options.animation))})}drawEmpty(){let t,e,i=this.startAngleRad,s=this.endAngleRad,o=this.options;this.total===0&&this.center?(t=this.center[0],e=this.center[1],this.graph||(this.graph=this.chart.renderer.arc(t,e,this.center[1]/2,0,i,s).addClass("highcharts-empty-series").add(this.group)),this.graph.attr({d:Sa.arc(t,e,this.center[2]/2,0,{start:i,end:s,innerR:this.center[3]/2})}),this.chart.styledMode||this.graph.attr({"stroke-width":o.borderWidth,fill:o.fillColor||"none",stroke:o.color||"#cccccc"})):this.graph&&(this.graph=this.graph.destroy())}drawPoints(){let t=this.chart.renderer;this.points.forEach(function(e){e.graphic&&e.hasNewShapeType()&&(e.graphic=e.graphic.destroy()),e.graphic||(e.graphic=t[e.shapeType](e.shapeArgs).add(e.series.group),e.delayedRendering=!0)})}generatePoints(){super.generatePoints(),this.updateTotals()}getX(t,e,i,s){let o=this.center,r=this.radii?this.radii[i.index]||0:o[2]/2,a=s.dataLabelPosition,n=a?.distance||0,d=Math.asin(np((t-o[1])/(r+n),-1,1));return o[0]+Math.cos(d)*(r+n)*(e?-1:1)+(n>0?(e?-1:1)*(s.padding||0):0)}hasData(){return!!this.dataTable.rowCount}redrawPoints(){let t,e,i,s,o=this,r=o.chart;this.drawEmpty(),o.group&&!r.styledMode&&o.group.shadow(o.options.shadow),o.points.forEach(function(a){let n={};e=a.graphic,!a.isNull&&e?(s=a.shapeArgs,t=a.getTranslate(),r.styledMode||(i=o.pointAttribs(a,a.selected&&"select")),a.delayedRendering?(e.setRadialReference(o.center).attr(s).attr(t),r.styledMode||e.attr(i).attr({"stroke-linejoin":"round"}),a.delayedRendering=!1):(e.setRadialReference(o.center),r.styledMode||Dl(!0,n,i),Dl(!0,n,s,t),e.animate(n)),e.attr({visibility:a.visible?"inherit":"hidden"}),e.addClass(a.getClassName(),!0)):e&&(a.graphic=e.destroy())})}sortByAngle(t,e){t.sort(function(i,s){return i.angle!==void 0&&(s.angle-i.angle)*e})}translate(t){Gh(this,"translate"),this.generatePoints();let e=this.options,i=e.slicedOffset,s=ap(e.startAngle,e.endAngle),o=this.startAngleRad=s.start,r=(this.endAngleRad=s.end)-o,a=this.points,n=e.ignoreHiddenPoint,d=a.length,p,c,g,m,x,y,k,v=0;for(t||(this.center=t=this.getCenter()),y=0;y<d;y++){k=a[y],p=o+v*r,k.isValid()&&(!n||k.visible)&&(v+=k.percentage/100),c=o+v*r;let P={x:t[0],y:t[1],r:t[2]/2,innerR:t[3]/2,start:Math.round(1e3*p)/1e3,end:Math.round(1e3*c)/1e3};k.shapeType="arc",k.shapeArgs=P,(g=(c+p)/2)>1.5*Math.PI?g-=2*Math.PI:g<-Math.PI/2&&(g+=2*Math.PI),k.slicedTranslation={translateX:Math.round(Math.cos(g)*i),translateY:Math.round(Math.sin(g)*i)},m=Math.cos(g)*t[2]/2,x=Math.sin(g)*t[2]/2,k.tooltipPos=[t[0]+.7*m,t[1]+.7*x],k.half=+(g<-Math.PI/2||g>Math.PI/2),k.angle=g}Gh(this,"afterTranslate")}updateTotals(){let t=this.points,e=t.length,i=this.options.ignoreHiddenPoint,s,o,r=0;for(s=0;s<e;s++)(o=t[s]).isValid()&&(!i||o.visible)&&(r+=o.y);for(s=0,this.total=r;s<e;s++)(o=t[s]).percentage=r>0&&(o.visible||!i)?o.y/r*100:0,o.total=r}}Rl.defaultOptions=Dl(Wi.defaultOptions,{borderRadius:3,center:[null,null],clip:!1,colorByPoint:!0,dataLabels:{connectorPadding:5,connectorShape:"crookedLine",crookDistance:void 0,distance:30,enabled:!0,formatter:function(){return this.isNull?void 0:this.name},softConnector:!0,x:0},fillColor:void 0,ignoreHiddenPoint:!0,inactiveOtherPoints:!0,legendType:"point",marker:null,size:null,showInLegend:!1,slicedOffset:10,stickyTracking:!1,tooltip:{followPointer:!0},borderColor:"#ffffff",borderWidth:1,lineWidth:void 0,states:{hover:{brightness:.1}}}),lp(Rl.prototype,{axisTypes:[],directTouch:!0,drawGraph:void 0,drawTracker:xn.prototype.drawTracker,getCenter:Yh.getCenter,getSymbol:Fh,invertible:!1,isCartesian:!1,noSharedTooltip:!0,pointAttribs:xn.prototype.pointAttribs,pointClass:Hh,requireSorting:!1,searchPoint:Fh,trackerGroups:["group","dataLabelsGroup"]}),Me.registerSeriesType("pie",Rl);let{composed:dp,noop:cp}=V,{distribute:pp}=Dt,{series:Uh}=Me,{arrayMax:up,clamp:jh,defined:Vh,pick:gp,pushUnique:fp,relativeLength:_h}=mt;(function(l){let t={radialDistributionY:function(r,a){return(a.dataLabelPosition?.top||0)+r.distributeBox.pos},radialDistributionX:function(r,a,n,d,p){let c=p.dataLabelPosition;return r.getX(n<(c?.top||0)+2||n>(c?.bottom||0)-2?d:n,a.half,a,p)},justify:function(r,a,n,d){return d[0]+(r.half?-1:1)*(n+(a.dataLabelPosition?.distance||0))},alignToPlotEdges:function(r,a,n,d){let p=r.getBBox().width;return a?p+d:n-p-d},alignToConnectors:function(r,a,n,d){let p=0,c;return r.forEach(function(g){(c=g.dataLabel.getBBox().width)>p&&(p=c)}),a?p+d:n-p-d}};function e(r,a){let n=Math.PI/2,{start:d=0,end:p=0}=r.shapeArgs||{},c=r.angle||0;a>0&&d<n&&p>n&&c>n/2&&c<1.5*n&&(c=c<=n?Math.max(n/2,(d+n)/2):Math.min(1.5*n,(n+p)/2));let{center:g,options:m}=this,x=g[2]/2,y=Math.cos(c),k=Math.sin(c),v=g[0]+y*x,P=g[1]+k*x,T=Math.min((m.slicedOffset||0)+(m.borderWidth||0),a/5);return{natural:{x:v+y*a,y:P+k*a},computed:{},alignment:a<0?"center":r.half?"right":"left",connectorPosition:{angle:c,breakAt:{x:v+y*T,y:P+k*T},touchingSliceAt:{x:v,y:P}},distance:a}}function i(){let r=this,a=r.points,n=r.chart,d=n.plotWidth,p=n.plotHeight,c=n.plotLeft,g=Math.round(n.chartWidth/3),m=r.center,x=m[2]/2,y=m[1],k=[[],[]],v=[0,0,0,0],P=r.dataLabelPositioners,T,O,Y,B=0;r.visible&&r.hasDataLabels?.()&&(a.forEach(R=>{(R.dataLabels||[]).forEach(X=>{X.shortened&&(X.attr({width:"auto"}).css({width:"auto",textOverflow:"clip"}),X.shortened=!1)})}),Uh.prototype.drawDataLabels.apply(r),a.forEach(R=>{(R.dataLabels||[]).forEach((X,j)=>{let $=m[2]/2,Z=X.options,rt=_h(Z?.distance||0,$);j===0&&k[R.half].push(R),!Vh(Z?.style?.width)&&X.getBBox().width>g&&(X.css({width:Math.round(.7*g)+"px"}),X.shortened=!0),X.dataLabelPosition=this.getDataLabelPosition(R,rt),B=Math.max(B,rt)})}),k.forEach((R,X)=>{let j=R.length,$=[],Z,rt,nt=0,pt;j&&(r.sortByAngle(R,X-.5),B>0&&(Z=Math.max(0,y-x-B),rt=Math.min(y+x+B,n.plotHeight),R.forEach(bt=>{(bt.dataLabels||[]).forEach(ht=>{let yt=ht.dataLabelPosition;yt&&yt.distance>0&&(yt.top=Math.max(0,y-x-yt.distance),yt.bottom=Math.min(y+x+yt.distance,n.plotHeight),nt=ht.getBBox().height||21,ht.lineHeight=n.renderer.fontMetrics(ht.text||ht).h+2*ht.padding,bt.distributeBox={target:(ht.dataLabelPosition?.natural.y||0)-yt.top+ht.lineHeight/2,size:nt,rank:bt.y},$.push(bt.distributeBox))})}),pp($,pt=rt+nt-Z,pt/5)),R.forEach(bt=>{(bt.dataLabels||[]).forEach(ht=>{let yt=ht.options||{},de=bt.distributeBox,Ft=ht.dataLabelPosition,mi=Ft?.natural.y||0,Tt=yt.connectorPadding||0,Ct=ht.lineHeight||21,Gt=(Ct-ht.getBBox().height)/2,zt=0,ee=mi,oe="inherit";if(Ft){if($&&Vh(de)&&Ft.distance>0&&(de.pos===void 0?oe="hidden":(Y=de.size,ee=P.radialDistributionY(bt,ht))),yt.justify)zt=P.justify(bt,ht,x,m);else switch(yt.alignTo){case"connectors":zt=P.alignToConnectors(R,X,d,c);break;case"plotEdges":zt=P.alignToPlotEdges(ht,X,d,c);break;default:zt=P.radialDistributionX(r,bt,ee-Gt,mi,ht)}if(Ft.attribs={visibility:oe,align:Ft.alignment},Ft.posAttribs={x:zt+(yt.x||0)+({left:Tt,right:-Tt}[Ft.alignment]||0),y:ee+(yt.y||0)-Ct/2},Ft.computed.x=zt,Ft.computed.y=ee-Gt,gp(yt.crop,!0)){let jt;zt-(O=ht.getBBox().width)<Tt&&X===1?(jt=Math.round(O-zt+Tt),v[3]=Math.max(jt,v[3])):zt+O>d-Tt&&X===0&&(jt=Math.round(zt+O-d+Tt),v[1]=Math.max(jt,v[1])),ee-Y/2<0?v[0]=Math.max(Math.round(-ee+Y/2),v[0]):ee+Y/2>p&&(v[2]=Math.max(Math.round(ee+Y/2-p),v[2])),Ft.sideOverflow=jt}}})}))}),(up(v)===0||this.verifyDataLabelOverflow(v))&&(this.placeDataLabels(),this.points.forEach(R=>{(R.dataLabels||[]).forEach(X=>{let{connectorColor:j,connectorWidth:$=1}=X.options||{},Z=X.dataLabelPosition;if($){let rt;T=X.connector,Z&&Z.distance>0?(rt=!T,T||(X.connector=T=n.renderer.path().addClass("highcharts-data-label-connector highcharts-color-"+R.colorIndex+(R.className?" "+R.className:"")).add(r.dataLabelsGroup)),n.styledMode||T.attr({"stroke-width":$,stroke:j||R.color||"#666666"}),T[rt?"attr":"animate"]({d:R.getConnectorPath(X)}),T.attr({visibility:Z.attribs?.visibility})):T&&(X.connector=T.destroy())}})})))}function s(){this.points.forEach(r=>{(r.dataLabels||[]).forEach(a=>{let n=a.dataLabelPosition;n?(n.sideOverflow&&(a.css({width:Math.max(a.getBBox().width-n.sideOverflow,0)+"px",textOverflow:a.options?.style?.textOverflow||"ellipsis"}),a.shortened=!0),a.attr(n.attribs),a[a.moved?"animate":"attr"](n.posAttribs),a.moved=!0):a&&a.attr({y:-9999})}),delete r.distributeBox},this)}function o(r){let a=this.center,n=this.options,d=n.center,p=n.minSize||80,c=p,g=n.size!==null;return!g&&(d[0]!==null?c=Math.max(a[2]-Math.max(r[1],r[3]),p):(c=Math.max(a[2]-r[1]-r[3],p),a[0]+=(r[3]-r[1])/2),d[1]!==null?c=jh(c,p,a[2]-Math.max(r[0],r[2])):(c=jh(c,p,a[2]-r[0]-r[2]),a[1]+=(r[0]-r[2])/2),c<a[2]?(a[2]=c,a[3]=Math.min(n.thickness?Math.max(0,c-2*n.thickness):Math.max(0,_h(n.innerSize||0,c)),c),this.translate(a),this.drawDataLabels&&this.drawDataLabels()):g=!0),g}l.compose=function(r){if(bn.compose(Uh),fp(dp,"PieDataLabel")){let a=r.prototype;a.dataLabelPositioners=t,a.alignDataLabel=cp,a.drawDataLabels=i,a.getDataLabelPosition=e,a.placeDataLabels=s,a.verifyDataLabelOverflow=o}}})(es||(es={}));let mp=es;(function(l){l.getCenterOfPoints=function(t){let e=t.reduce((i,s)=>(i.x+=s.x,i.y+=s.y,i),{x:0,y:0});return{x:e.x/t.length,y:e.y/t.length}},l.getDistanceBetweenPoints=function(t,e){return Math.sqrt(Math.pow(e.x-t.x,2)+Math.pow(e.y-t.y,2))},l.getAngleBetweenPoints=function(t,e){return Math.atan2(e.x-t.x,e.y-t.y)},l.pointInPolygon=function({x:t,y:e},i){let s=i.length,o,r,a=!1;for(o=0,r=s-1;o<s;r=o++){let[n,d]=i[o],[p,c]=i[r];d>e!=c>e&&t<(p-n)*(e-d)/(c-d)+n&&(a=!a)}return a}})(ut||(ut={}));let{pointInPolygon:xp}=ut,{addEvent:bp,getAlignFactor:yp,fireEvent:qh,objectEach:$h,pick:vp}=mt;function kp(l){let t=l.length,e=(p,c)=>!(c.x>=p.x+p.width||c.x+c.width<=p.x||c.y>=p.y+p.height||c.y+c.height<=p.y),i=(p,c)=>{for(let g of p)if(xp({x:g[0],y:g[1]},c))return!0;return!1},s,o,r,a,n,d=!1;for(let p=0;p<t;p++)(s=l[p])&&(s.oldOpacity=s.opacity,s.newOpacity=1,s.absoluteBox=(function(c){if(c&&(!c.alignAttr||c.placed)){let g=c.box?0:c.padding||0,m=c.alignAttr||{x:c.attr("x"),y:c.attr("y")},{height:x,polygon:y,width:k}=c.getBBox(),v=yp(c.alignValue)*k;return c.width=k,c.height=x,{x:m.x+(c.parentGroup?.translateX||0)+g-v,y:m.y+(c.parentGroup?.translateY||0)+g,width:k-2*g,height:x-2*g,polygon:y}}})(s));l.sort((p,c)=>(c.labelrank||0)-(p.labelrank||0));for(let p=0;p<t;++p){a=(o=l[p])&&o.absoluteBox;let c=a?.polygon;for(let g=p+1;g<t;++g){n=(r=l[g])&&r.absoluteBox;let m=!1;if(a&&n&&o!==r&&o.newOpacity!==0&&r.newOpacity!==0&&o.visibility!=="hidden"&&r.visibility!=="hidden"){let x=n.polygon;if(c&&x&&c!==x?i(c,x)&&(m=!0):e(a,n)&&(m=!0),m){let y=o.labelrank<r.labelrank?o:r,k=y.text;y.newOpacity=0,k?.element.querySelector("textPath")&&k.hide()}}}}for(let p of l)Zh(p,this)&&(d=!0);d&&qh(this,"afterHideAllOverlappingLabels")}function Zh(l,t){let e,i=!1;return l&&(e=l.newOpacity,l.oldOpacity!==e&&(l.hasClass("highcharts-data-label")?(l[e?"removeClass":"addClass"]("highcharts-data-label-hidden"),i=!0,l[l.isOld?"animate":"attr"]({opacity:e},void 0,function(){t.styledMode||l.css({pointerEvents:e?"auto":"none"})}),qh(t,"afterHideOverlappingLabel")):l.attr({opacity:e})),l.isOld=!0),i}function Mp(){let l=this,t=[];for(let e of l.labelCollectors||[])t=t.concat(e());for(let e of l.yAxis||[])e.stacking&&e.options.stackLabels&&!e.options.stackLabels.allowOverlap&&$h(e.stacking.stacks,i=>{$h(i,s=>{s.label&&t.push(s.label)})});for(let e of l.series||[])if(e.visible&&e.hasDataLabels?.()){let i=s=>{for(let o of s)o.visible&&(o.dataLabels||[]).forEach(r=>{let a=r.options||{};r.labelrank=vp(a.labelrank,o.labelrank,o.shapeArgs?.height),a.allowOverlap??Number(a.distance)>0?(r.oldOpacity=r.opacity,r.newOpacity=1,Zh(r,l)):t.push(r)})};i(e.nodes||[]),i(e.points)}this.hideOverlappingLabels(t)}let Kh={compose:function(l){let t=l.prototype;t.hideOverlappingLabels||(t.hideOverlappingLabels=kp,bp(l,"render",Mp))}},{defaultOptions:wp}=Ze,{noop:Qh}=V,{addEvent:Jh,extend:Ap,isObject:td,merge:Pp,relativeLength:zl}=mt,Sp={radius:0,scope:"stack",where:void 0},ed=Qh,id=Qh;function Tp(l,t,e,i,s={}){let o=ed(l,t,e,i,s),{innerR:r=0,r:a=e,start:n=0,end:d=0}=s;if(s.open||!s.borderRadius)return o;let p=d-n,c=Math.sin(p/2),g=Math.max(Math.min(zl(s.borderRadius||0,a-r),(a-r)/2,a*c/(1+c)),0),m=Math.min(g,p/Math.PI*2*r),x=o.length-1;for(;x--;)(function(y,k,v){let P,T,O,Y=y[k],B=y[k+1];if(B[0]==="Z"&&(B=y[0]),(Y[0]==="M"||Y[0]==="L")&&B[0]==="A"?(P=Y,T=B,O=!0):Y[0]==="A"&&(B[0]==="M"||B[0]==="L")&&(P=B,T=Y),P&&T&&T.params){let R=T[1],X=T[5],j=T.params,{start:$,end:Z,cx:rt,cy:nt}=j,pt=X?R-v:R+v,bt=pt?Math.asin(v/pt):0,ht=X?bt:-bt,yt=Math.cos(bt)*pt;O?(j.start=$+ht,P[1]=rt+yt*Math.cos($),P[2]=nt+yt*Math.sin($),y.splice(k+1,0,["A",v,v,0,0,1,rt+R*Math.cos(j.start),nt+R*Math.sin(j.start)])):(j.end=Z-ht,T[6]=rt+R*Math.cos(j.end),T[7]=nt+R*Math.sin(j.end),y.splice(k+1,0,["A",v,v,0,0,1,rt+yt*Math.cos(Z),nt+yt*Math.sin(Z)])),T[4]=Math.abs(j.end-j.start)<Math.PI?0:1}})(o,x,x>1?m:g);return o}function Cp(){if(this.options.borderRadius&&!(this.chart.is3d&&this.chart.is3d())){let{options:l,yAxis:t}=this,e=l.stacking==="percent",i=wp.plotOptions?.[this.type]?.borderRadius,s=Bl(l.borderRadius,td(i)?i:{}),o=t.options.reversed;for(let r of this.points){let{shapeArgs:a}=r;if(r.shapeType==="roundedRect"&&a){let{width:n=0,height:d=0,y:p=0}=a,c=p,g=d;if(s.scope==="stack"&&r.stackTotal){let k=t.translate(e?100:r.stackTotal,!1,!0,!1,!0),v=t.translate(l.threshold||0,!1,!0,!1,!0),P=this.crispCol(0,Math.min(k,v),0,Math.abs(k-v));c=P.y,g=P.height}let m=(r.negative?-1:1)*(o?-1:1)==-1,x=s.where;!x&&this.is("waterfall")&&Math.abs((r.yBottom||0)-(this.translatedThreshold||0))>this.borderWidth&&(x="all"),x||(x="end");let y=Math.min(zl(s.radius,n),n/2,x==="all"?d/2:1/0)||0;x==="end"&&(m&&(c-=y),g+=y),Ap(a,{brBoxHeight:g,brBoxY:c,r:y})}}}}function Bl(l,t){return td(l)||(l={radius:l||0}),Pp(Sp,t,l)}function Lp(){let l=Bl(this.options.borderRadius);for(let t of this.points){let e=t.shapeArgs;e&&(e.borderRadius=zl(l.radius,(e.r||0)-(e.innerR||0)))}}function Ep(l,t,e,i,s={}){let o=id(l,t,e,i,s),{r=0,brBoxHeight:a=i,brBoxY:n=t}=s,d=t-n,p=n+a-(t+i),c=d-r>-.1?0:r,g=p-r>-.1?0:r,m=Math.max(c&&d,0),x=Math.max(g&&p,0),y=[l+c,t],k=[l+e-c,t],v=[l+e,t+c],P=[l+e,t+i-g],T=[l+e-g,t+i],O=[l+g,t+i],Y=[l,t+i-g],B=[l,t+c],R=(X,j)=>Math.sqrt(Math.pow(X,2)-Math.pow(j,2));if(m){let X=R(c,c-m);y[0]-=X,k[0]+=X,v[1]=B[1]=t+c-m}if(i<c-m){let X=R(c,c-m-i);v[0]=P[0]=l+e-c+X,T[0]=Math.min(v[0],T[0]),O[0]=Math.max(P[0],O[0]),Y[0]=B[0]=l+c-X,v[1]=B[1]=t+i}if(x){let X=R(g,g-x);T[0]+=X,O[0]-=X,P[1]=Y[1]=t+i-g+x}if(i<g-x){let X=R(g,g-x-i);v[0]=P[0]=l+e-g+X,k[0]=Math.min(v[0],k[0]),y[0]=Math.max(P[0],y[0]),Y[0]=B[0]=l+g-X,P[1]=Y[1]=t}return o.length=0,o.push(["M",...y],["L",...k],["A",c,c,0,0,1,...v],["L",...P],["A",g,g,0,0,1,...T],["L",...O],["A",g,g,0,0,1,...Y],["L",...B],["A",c,c,0,0,1,...y],["Z"]),o}let{diffObjects:Op,extend:Ip,find:Np,merge:Dp,pick:kn,uniqueKey:Rp}=mt;(function(l){function t(i,s){let o=i.condition;(o.callback||function(){return this.chartWidth<=kn(o.maxWidth,Number.MAX_VALUE)&&this.chartHeight<=kn(o.maxHeight,Number.MAX_VALUE)&&this.chartWidth>=kn(o.minWidth,0)&&this.chartHeight>=kn(o.minHeight,0)}).call(this)&&s.push(i._id)}function e(i,s){let o=this.options.responsive,r=this.currentResponsive,a=[],n;!s&&o&&o.rules&&o.rules.forEach(c=>{c._id===void 0&&(c._id=Rp()),this.matchResponsiveRule(c,a)},this);let d=Dp(...a.map(c=>Np(o?.rules||[],g=>g._id===c)).map(c=>c?.chartOptions));d.isResponsiveOptions=!0,a=a.toString()||void 0;let p=r?.ruleIds;a===p||(r&&(this.currentResponsive=void 0,this.updatingResponsive=!0,this.update(r.undoOptions,i,!0),this.updatingResponsive=!1),a?((n=Op(d,this.options,!0,this.collectionsWithUpdate)).isResponsiveOptions=!0,this.currentResponsive={ruleIds:a,mergedOptions:d,undoOptions:n},this.updatingResponsive||this.update(d,i,!0)):this.currentResponsive=void 0)}l.compose=function(i){let s=i.prototype;return s.matchResponsiveRule||Ip(s,{matchResponsiveRule:t,setResponsive:e}),i}})(ks||(ks={}));let zp=ks;V.AST=Pt,V.Axis=ta,V.Chart=Mo,V.Color=$t,V.DataLabel=bn,V.DataTableCore=on,V.Fx=Di,V.HTMLElement=fo,V.Legend=hh,V.LegendSymbol=$l,V.OverlappingDataLabels=V.OverlappingDataLabels||Kh,V.PlotLineOrBand=M,V.Point=ii,V.Pointer=Vl,V.RendererRegistry=ri,V.Series=Wi,V.SeriesRegistry=Me,V.StackItem=Mh,V.SVGElement=Zi,V.SVGRenderer=Ko,V.Templating=fe,V.Tick=Js,V.Time=We,V.Tooltip=ct,V.animate=K.animate,V.animObject=K.animObject,V.chart=Mo.chart,V.color=$t.parse,V.dateFormat=fe.dateFormat,V.defaultOptions=Ze.defaultOptions,V.distribute=Dt.distribute,V.format=fe.format,V.getDeferredAnimation=K.getDeferredAnimation,V.getOptions=Ze.getOptions,V.numberFormat=fe.numberFormat,V.seriesType=Me.seriesType,V.setAnimation=K.setAnimation,V.setOptions=Ze.setOptions,V.stop=K.stop,V.time=Ze.defaultTime,V.timers=Di.timers,{compose:function(l,t,e){let i=l.types.pie;if(!t.symbolCustomAttribs.includes("borderRadius")){let s=e.prototype.symbols;Jh(l,"afterColumnTranslate",Cp,{order:9}),Jh(i,"afterTranslate",Lp),t.symbolCustomAttribs.push("borderRadius","brBoxHeight","brBoxY"),ed=s.arc,id=s.roundedRect,s.arc=Tp,s.roundedRect=Ep}},optionsToObject:Bl}.compose(V.Series,V.SVGElement,V.SVGRenderer),jc.compose(V.Series.types.column),bn.compose(V.Series),tl.compose(V.Axis),fo.compose(V.SVGRenderer),hh.compose(V.Chart),ea.compose(V.Axis),Kh.compose(V.Chart),mp.compose(V.Series.types.pie),M.compose(V.Chart,V.Axis),Vl.compose(V.Chart),zp.compose(V.Chart),vh.compose(V.Axis,V.Chart,V.Series),Ac.compose(V.Axis,V.Chart,V.Series),ct.compose(V.Pointer),mt.extend(V,mt);let Bp=V;return Zt.default})())});var rd=Mn((ma,Yl)=>{(function(dt,qt){typeof ma=="object"&&typeof Yl=="object"?Yl.exports=qt(dt._Highcharts,dt._Highcharts.SeriesRegistry,dt._Highcharts.Series,dt._Highcharts.Series.types.column,dt._Highcharts.Templating,dt._Highcharts.Point,dt._Highcharts.Color,dt._Highcharts.Chart,dt._Highcharts.SVGElement,dt._Highcharts.StackItem):typeof define=="function"&&define.amd?define("highcharts/highcharts-more",["highcharts/highcharts"],function(ie){return qt(ie,ie.SeriesRegistry,ie.Series,ie.Series,["types"],["column"],ie.Templating,ie.Point,ie.Color,ie.Chart,ie.SVGElement,ie.StackItem)}):typeof ma=="object"?ma["highcharts/highcharts-more"]=qt(dt._Highcharts,dt._Highcharts.SeriesRegistry,dt._Highcharts.Series,dt._Highcharts.Series.types.column,dt._Highcharts.Templating,dt._Highcharts.Point,dt._Highcharts.Color,dt._Highcharts.Chart,dt._Highcharts.SVGElement,dt._Highcharts.StackItem):dt.Highcharts=qt(dt.Highcharts,dt.Highcharts.SeriesRegistry,dt.Highcharts.Series,dt.Highcharts.Series.types.column,dt.Highcharts.Templating,dt.Highcharts.Point,dt.Highcharts.Color,dt.Highcharts.Chart,dt.Highcharts.SVGElement,dt.Highcharts.StackItem)})(typeof window>"u"?ma:window,(dt,qt,ie,Hi,Ae,xs,bs,Pe,ys,Ws)=>(()=>{"use strict";var ce,Fi,Mi,Hs={28:b=>{b.exports=ys},184:b=>{b.exports=Ws},260:b=>{b.exports=xs},448:b=>{b.exports=Hi},512:b=>{b.exports=qt},620:b=>{b.exports=bs},820:b=>{b.exports=ie},944:b=>{b.exports=dt},960:b=>{b.exports=Pe},984:b=>{b.exports=Ae}},Ei={};function Bt(b){var h=Ei[b];if(h!==void 0)return h.exports;var u=Ei[b]={exports:{}};return Hs[b](u,u.exports,Bt),u.exports}Bt.n=b=>{var h=b&&b.__esModule?()=>b.default:()=>b;return Bt.d(h,{a:h}),h},Bt.d=(b,h)=>{for(var u in h)Bt.o(h,u)&&!Bt.o(b,u)&&Object.defineProperty(b,u,{enumerable:!0,get:h[u]})},Bt.o=(b,h)=>Object.prototype.hasOwnProperty.call(b,h);var vs={};Bt.d(vs,{default:()=>el});var es=Bt(944),ut=Bt.n(es),ks=Bt(512),ft=Bt.n(ks),Zt=Bt(820),V=Bt.n(Zt);let{deg2rad:is}=ut(),{fireEvent:ro,isNumber:wi,pick:Gi,relativeLength:To}=ut();(function(b){b.getCenter=function(){let h=this.options,u=this.chart,f=2*(h.slicedOffset||0),M=u.plotWidth-2*f,A=u.plotHeight-2*f,w=h.center,L=Math.min(M,A),I=h.thickness,D,z=h.size,N=h.innerSize||0,G,F;typeof z=="string"&&(z=parseFloat(z)),typeof N=="string"&&(N=parseFloat(N));let Q=[Gi(w?.[0],"50%"),Gi(w?.[1],"50%"),Gi(z&&z<0?void 0:h.size,"100%"),Gi(N&&N<0?void 0:h.innerSize||0,"0%")];for(!u.angular||this instanceof V()||(Q[3]=0),G=0;G<4;++G)F=Q[G],D=G<2||G===2&&/%$/.test(F),Q[G]=To(F,[M,A,L,Q[2]][G])+(D?f:0);return Q[3]>Q[2]&&(Q[3]=Q[2]),wi(I)&&2*I<Q[2]&&I>0&&(Q[3]=Q[2]-2*I),ro(this,"afterGetCenter",{positions:Q}),Q},b.getStartAndEndRadians=function(h,u){let f=wi(h)?h:0,M=wi(u)&&u>f&&u-f<360?u:f+360;return{start:is*(f+-90),end:is*(M+-90)}}})(ce||(ce={}));let Ai=ce,{addEvent:Ms,correctFloat:Ui,defined:ao,pick:dr}=ut();function Co(b){let h,u=this;return b&&u.pane.forEach(f=>{ji(b.chartX-u.plotLeft,b.chartY-u.plotTop,f.center)&&(h=f)}),h}function ji(b,h,u,f,M){let A=!0,w=u[0],L=u[1],I=Math.sqrt(Math.pow(b-w,2)+Math.pow(h-L,2));if(ao(f)&&ao(M)){let D=Math.atan2(Ui(h-L,8),Ui(b-w,8));M!==f&&(A=f>M?D>=f&&D<=Math.PI||D<=M&&D>=-Math.PI:D>=f&&D<=Ui(M,8))}return I<=Math.ceil(u[2]/2)&&A}function Fs(b){this.polar&&(b.options.inverted&&([b.x,b.y]=[b.y,b.x]),b.isInsidePlot=this.pane.some(h=>ji(b.x,b.y,h.center,h.axis&&h.axis.normalizedStartAngleRad,h.axis&&h.axis.normalizedEndAngleRad)))}function Lo(b){let h=this.chart;b.hoverPoint&&b.hoverPoint.plotX&&b.hoverPoint.plotY&&h.hoverPane&&!ji(b.hoverPoint.plotX,b.hoverPoint.plotY,h.hoverPane.center)&&(b.hoverPoint=void 0)}function ws(b){let h=this.chart;h.polar?(h.hoverPane=h.getHoverPane(b),b.filter=function(u){return u.visible&&!(!b.shared&&u.directTouch)&&dr(u.options.enableMouseTracking,!0)&&(!h.hoverPane||u.xAxis.pane===h.hoverPane)}):h.hoverPane=void 0}let ss={pane:{center:["50%","50%"],size:"85%",innerSize:"0%",startAngle:0},background:{shape:"circle",borderRadius:0,borderWidth:1,borderColor:"#cccccc",backgroundColor:{linearGradient:{x1:0,y1:0,x2:0,y2:1},stops:[[0,"#ffffff"],[1,"#e6e6e6"]]},from:-Number.MAX_VALUE,innerRadius:0,to:Number.MAX_VALUE,outerRadius:"105%"}},{extend:Vi,merge:no,splat:Eo}=ut(),Gs=(()=>{class b{constructor(u,f){this.coll="pane",this.init(u,f)}init(u,f){this.chart=f,this.background=[],f.pane.push(this),this.setOptions(u)}setOptions(u){this.options=u=no(ss.pane,this.chart.angular?{background:{}}:void 0,u)}render(){let u=this.options,f=this.chart.renderer;this.group||(this.group=f.g("pane-group").attr({zIndex:u.zIndex||0}).add()),this.updateCenter();let M=this.options.background;if(M){let A=Math.max((M=Eo(M)).length,this.background.length||0);for(let w=0;w<A;w++)M[w]&&this.axis?this.renderBackground(no(ss.background,M[w]),w):this.background[w]&&(this.background[w]=this.background[w].destroy(),this.background.splice(w,1))}}renderBackground(u,f){let M={class:"highcharts-pane "+(u.className||"")},A="animate";this.chart.styledMode||Vi(M,{fill:u.backgroundColor,stroke:u.borderColor,"stroke-width":u.borderWidth}),this.background[f]||(this.background[f]=this.chart.renderer.path().add(this.group),A="attr"),this.background[f][A]({d:this.axis.getPlotBandPath(u.from,u.to,u)}).attr(M)}updateCenter(u){this.center=(u||this.axis||{}).center=Ai.getCenter.call(this)}update(u,f){no(!0,this.options,u),this.setOptions(this.options),this.render(),this.chart.axes.forEach(function(M){M.pane===this&&(M.pane=null,M.update({},f))},this)}}return b.compose=function(h,u){let f=h.prototype;f.getHoverPane||(f.collectionsWithUpdate.push("pane"),f.getHoverPane=Co,Ms(h,"afterIsInsidePlot",Fs),Ms(u,"afterGetHoverData",Lo),Ms(u,"beforeGetHoverData",ws))},b})(),{area:{prototype:{pointClass:bi,pointClass:{prototype:Oi}}}}=ft().seriesTypes,{defined:Oo,isNumber:As}=ut(),mt=class extends bi{setState(){let b=this.state,h=this.series,u=h.chart.polar;Oo(this.plotHigh)||(this.plotHigh=h.yAxis.toPixels(this.high,!0)),Oo(this.plotLow)||(this.plotLow=this.plotY=h.yAxis.toPixels(this.low,!0)),h.lowerStateMarkerGraphic=h.stateMarkerGraphic,h.stateMarkerGraphic=h.upperStateMarkerGraphic,this.graphic=this.graphics&&this.graphics[1],this.plotY=this.plotHigh,u&&As(this.plotHighX)&&(this.plotX=this.plotHighX),Oi.setState.apply(this,arguments),this.state=b,this.plotY=this.plotLow,this.graphic=this.graphics&&this.graphics[0],u&&As(this.plotLowX)&&(this.plotX=this.plotLowX),h.upperStateMarkerGraphic=h.stateMarkerGraphic,h.stateMarkerGraphic=h.lowerStateMarkerGraphic,h.lowerStateMarkerGraphic=void 0;let f=h.modifyMarkerSettings();Oi.setState.apply(this,arguments),h.restoreMarkerSettings(f)}haloPath(){let b=this.series.chart.polar,h=[];return this.plotY=this.plotLow,b&&As(this.plotLowX)&&(this.plotX=this.plotLowX),this.isInside&&(h=Oi.haloPath.apply(this,arguments)),this.plotY=this.plotHigh,b&&As(this.plotHighX)&&(this.plotX=this.plotHighX),this.isTopInside&&(h=h.concat(Oi.haloPath.apply(this,arguments))),h}isValid(){return As(this.low)&&As(this.high)}},{noop:Nr}=ut(),{area:Us,area:{prototype:Ii},column:{prototype:Io}}=ft().seriesTypes,{addEvent:js,defined:No,extend:Ps,isArray:Ss,isNumber:Do,pick:Ro,merge:Pi}=ut();class Ne extends Us{toYData(h){return[h.low,h.high]}highToXY(h){let u=this.chart,f=this.xAxis.postTranslate(h.rectPlotX||0,this.yAxis.len-(h.plotHigh||0));h.plotHighX=f.x-u.plotLeft,h.plotHigh=f.y-u.plotTop,h.plotLowX=h.plotX}getGraphPath(h){let u=[],f=[],M=Ii.getGraphPath,A=this.options,w=this.chart.polar,L=w&&A.connectEnds!==!1,I=A.connectNulls,D,z,N,G=A.step;for(D=(h=h||this.points).length;D--;){z=h[D];let st=w?{plotX:z.rectPlotX,plotY:z.yBottom,doCurve:!1}:{plotX:z.plotX,plotY:z.plotY,doCurve:!1};z.isNull||L||I||h[D+1]&&!h[D+1].isNull||f.push(st),N={polarPlotY:z.polarPlotY,rectPlotX:z.rectPlotX,yBottom:z.yBottom,plotX:Ro(z.plotHighX,z.plotX),plotY:z.plotHigh,isNull:z.isNull},f.push(N),u.push(N),z.isNull||L||I||h[D-1]&&!h[D-1].isNull||f.push(st)}let F=M.call(this,h);G&&(G===!0&&(G="left"),A.step={left:"right",center:"center",right:"left"}[G]);let Q=M.call(this,u),et=M.call(this,f);A.step=G;let q=[].concat(F,Q);return!this.chart.polar&&et[0]&&et[0][0]==="M"&&(et[0]=["L",et[0][1],et[0][2]]),this.graphPath=q,this.areaPath=F.concat(et),q.isArea=!0,q.xMap=F.xMap,this.areaPath.xMap=F.xMap,q}drawDataLabels(){let h,u,f,M,A,w=this.points,L=w.length,I=[],D=this.options.dataLabels,z=this.chart.inverted;if(D){if(Ss(D)?(M=D[0]||{enabled:!1},A=D[1]||{enabled:!1}):((M=Ps({},D)).x=D.xHigh,M.y=D.yHigh,(A=Ps({},D)).x=D.xLow,A.y=D.yLow),M.enabled||this.hasDataLabels?.()){for(h=L;h--;)if(u=w[h]){let{plotHigh:N=0,plotLow:G=0}=u;f=M.inside?N<G:N>G,u.y=u.high,u._plotY=u.plotY,u.plotY=N,I[h]=u.dataLabel,u.dataLabel=u.dataLabelUpper,u.below=f,z?M.align||(M.align=f?"right":"left"):M.verticalAlign||(M.verticalAlign=f?"top":"bottom")}for(this.options.dataLabels=M,Ii.drawDataLabels&&Ii.drawDataLabels.apply(this,arguments),h=L;h--;)(u=w[h])&&(u.dataLabelUpper=u.dataLabel,u.dataLabel=I[h],delete u.dataLabels,u.y=u.low,u.plotY=u._plotY)}if(A.enabled||this.hasDataLabels?.()){for(h=L;h--;)if(u=w[h]){let{plotHigh:N=0,plotLow:G=0}=u;f=A.inside?N<G:N>G,u.below=!f,z?A.align||(A.align=f?"left":"right"):A.verticalAlign||(A.verticalAlign=f?"bottom":"top")}this.options.dataLabels=A,Ii.drawDataLabels&&Ii.drawDataLabels.apply(this,arguments)}if(M.enabled)for(h=L;h--;)(u=w[h])&&(u.dataLabels=[u.dataLabelUpper,u.dataLabel].filter(function(N){return!!N}));this.options.dataLabels=D}}alignDataLabel(){Io.alignDataLabel.apply(this,arguments)}modifyMarkerSettings(){let h={marker:this.options.marker,symbol:this.symbol};if(this.options.lowMarker){let{options:{marker:u,lowMarker:f}}=this;this.options.marker=Pi(u,f),f.symbol&&(this.symbol=f.symbol)}return h}restoreMarkerSettings(h){this.options.marker=h.marker,this.symbol=h.symbol}drawPoints(){let h,u,f=this.points.length,M=this.modifyMarkerSettings();for(Ii.drawPoints.apply(this,arguments),this.restoreMarkerSettings(M),h=0;h<f;)(u=this.points[h]).graphics=u.graphics||[],u.origProps={plotY:u.plotY,plotX:u.plotX,isInside:u.isInside,negative:u.negative,zone:u.zone,y:u.y},(u.graphic||u.graphics[0])&&(u.graphics[0]=u.graphic),u.graphic=u.graphics[1],u.plotY=u.plotHigh,No(u.plotHighX)&&(u.plotX=u.plotHighX),u.y=Ro(u.high,u.origProps.y),u.negative=u.y<(this.options.threshold||0),this.zones.length&&(u.zone=u.getZone()),this.chart.polar||(u.isInside=u.isTopInside=u.plotY!==void 0&&u.plotY>=0&&u.plotY<=this.yAxis.len&&u.plotX>=0&&u.plotX<=this.xAxis.len),h++;for(Ii.drawPoints.apply(this,arguments),h=0;h<f;)(u=this.points[h]).graphics=u.graphics||[],(u.graphic||u.graphics[1])&&(u.graphics[1]=u.graphic),u.graphic=u.graphics[0],u.origProps&&(Ps(u,u.origProps),delete u.origProps),h++}hasMarkerChanged(h,u){let f=h.lowMarker,M=u.lowMarker||{};return f&&(f.enabled===!1||M.symbol!==f.symbol||M.height!==f.height||M.width!==f.width)||super.hasMarkerChanged(h,u)}}Ne.defaultOptions=Pi(Us.defaultOptions,{lineWidth:1,threshold:null,tooltip:{pointFormat:'<span style="color:{series.color}">\u25CF</span> {series.name}: <b>{point.low}</b> - <b>{point.high}</b><br/>'},trackByArea:!0,dataLabels:{align:void 0,verticalAlign:void 0,xLow:0,xHigh:0,yLow:0,yHigh:0}}),js(Ne,"afterTranslate",function(){this.pointArrayMap.join(",")==="low,high"&&this.points.forEach(b=>{let h=b.high,u=b.plotY;b.isNull?b.plotY=void 0:(b.plotLow=u,b.plotHigh=Do(h)?this.yAxis.translate(this.dataModify?this.dataModify.modifyValue(h):h,!1,!0,void 0,!0):void 0,this.dataModify&&(b.yBottom=b.plotHigh))})},{order:0}),js(Ne,"afterTranslate",function(){this.points.forEach(b=>{if(this.chart.polar)this.highToXY(b),b.plotLow=b.plotY,b.tooltipPos=[((b.plotHighX||0)+(b.plotLowX||0))/2,((b.plotHigh||0)+(b.plotLow||0))/2];else{let h=b.pos(!1,b.plotLow),u=b.pos(!1,b.plotHigh);h&&u&&(h[0]=(h[0]+u[0])/2,h[1]=(h[1]+u[1])/2),b.tooltipPos=h}})},{order:3}),Ps(Ne.prototype,{deferTranslatePolar:!0,pointArrayMap:["low","high"],pointClass:mt,pointValKey:"low",setStackedPoints:Nr}),ft().registerSeriesType("arearange",Ne);let Ts=Ne,{spline:{prototype:Dr}}=ft().seriesTypes,{merge:_i,extend:Rr}=ut();class lo extends Ts{}lo.defaultOptions=_i(Ts.defaultOptions),Rr(lo.prototype,{getPointSpline:Dr.getPointSpline}),ft().registerSeriesType("areasplinerange",lo);var zo=Bt(448),Vs=Bt.n(zo);let{noop:re}=ut(),{crisp:We,extend:cr,merge:Bo,pick:Xo,relativeLength:Ni}=ut();class os extends Vs(){pointAttribs(){return{}}getWhiskerPair(h,u,f,M,A){let w=A.whiskers.strokeWidth(),L=(I,D)=>{let z=Ni(I,2*h)/2,N=We(D,w);return[["M",We(u-z),N],["L",We(u+z),N]]};return[...L(f,A.highPlot),...L(M,A.lowPlot)]}translate(){let h=this.yAxis,u=this.pointArrayMap;super.translate.apply(this),this.points.forEach(function(f){u.forEach(function(M){f[M]!==null&&(f[M+"Plot"]=h.translate(f[M],0,1,0,1))}),f.plotHigh=f.highPlot})}drawPoints(){let h,u,f,M,A,w,L,I,D,z,N,G=this.points,F=this.options,Q=this.chart,et=Q.renderer,q=this.doQuartiles!==!1,st=this.options.whiskerLength;for(let _ of G){let St=(I=_.graphic)?"animate":"attr",gt=_.shapeArgs,Rt={},Et={},xt={},It={},le=_.color||this.color,J=_.options.whiskerLength||st;if(_.plotY!==void 0){let lt;D=gt.width,N=(z=gt.x)+D,h=q?_.q1Plot:_.lowPlot,u=q?_.q3Plot:_.lowPlot,f=_.highPlot,M=_.lowPlot,I||(_.graphic=I=et.g("point").add(this.group),_.stem=et.path().addClass("highcharts-boxplot-stem").add(I),st&&(_.whiskers=et.path().addClass("highcharts-boxplot-whisker").add(I)),q&&(_.box=et.path(L).addClass("highcharts-boxplot-box").add(I)),_.medianShape=et.path(w).addClass("highcharts-boxplot-median").add(I)),Q.styledMode||(Et.stroke=_.stemColor||F.stemColor||le,Et["stroke-width"]=Xo(_.stemWidth,F.stemWidth,F.lineWidth),Et.dashstyle=_.stemDashStyle||F.stemDashStyle||F.dashStyle,_.stem.attr(Et),J&&(xt.stroke=_.whiskerColor||F.whiskerColor||le,xt["stroke-width"]=Xo(_.whiskerWidth,F.whiskerWidth,F.lineWidth),xt.dashstyle=_.whiskerDashStyle||F.whiskerDashStyle||F.dashStyle,_.whiskers.attr(xt)),q&&(Rt.fill=_.fillColor||F.fillColor||le,Rt.stroke=F.lineColor||le,Rt["stroke-width"]=F.lineWidth||0,Rt.dashstyle=_.boxDashStyle||F.boxDashStyle||F.dashStyle,_.box.attr(Rt)),It.stroke=_.medianColor||F.medianColor||le,It["stroke-width"]=Xo(_.medianWidth,F.medianWidth,F.lineWidth),It.dashstyle=_.medianDashStyle||F.medianDashStyle||F.dashStyle,_.medianShape.attr(It));let at=We((_.plotX||0)+(this.pointXOffset||0)+(this.barW||0)/2,_.stem.strokeWidth());if(lt=[["M",at,u],["L",at,f],["M",at,h],["L",at,M]],_.stem[St]({d:lt}),q){let ct=_.box.strokeWidth();h=We(h,ct),u=We(u,ct),lt=[["M",z=We(z,ct),u],["L",z,h],["L",N=We(N,ct),h],["L",N,u],["L",z,u],["Z"]],_.box[St]({d:lt})}if(J){let ct=D/2,Lt=this.getWhiskerPair(ct,at,_.upperWhiskerLength??F.upperWhiskerLength??J,_.lowerWhiskerLength??F.lowerWhiskerLength??J,_);_.whiskers[St]({d:Lt})}lt=[["M",z,A=We(_.medianPlot,_.medianShape.strokeWidth())],["L",N,A]],_.medianShape[St]({d:lt})}}}toYData(h){return[h.low,h.q1,h.median,h.q3,h.high]}}os.defaultOptions=Bo(Vs().defaultOptions,{threshold:null,tooltip:{pointFormat:'<span style="color:{point.color}">\u25CF</span> <b>{series.name}</b><br/>Maximum: {point.high}<br/>Upper quartile: {point.q3}<br/>Median: {point.median}<br/>Lower quartile: {point.q1}<br/>Minimum: {point.low}<br/>'},whiskerLength:"50%",fillColor:"#ffffff",lineWidth:1,medianWidth:2,whiskerWidth:2}),cr(os.prototype,{pointArrayMap:["low","q1","median","q3","high"],pointValKey:"high",drawDataLabels:re,setStackedPoints:re}),ft().registerSeriesType("boxplot",os);let Ze=os,zr={borderColor:void 0,borderWidth:2,className:void 0,color:void 0,connectorClassName:void 0,connectorColor:void 0,connectorDistance:60,connectorWidth:1,enabled:!1,labels:{className:void 0,allowOverlap:!1,format:"",formatter:void 0,align:"right",style:{fontSize:"0.9em",color:"#000000"},x:0,y:0},maxSize:60,minSize:10,legendIndex:0,ranges:{value:void 0,borderColor:void 0,color:void 0,connectorColor:void 0},sizeBy:"area",sizeByAbsoluteValue:!1,zIndex:1,zThreshold:0};var _s=Bt(984),Br=Bt.n(_s);let{noop:Xr}=ut(),{arrayMax:He,arrayMin:pr,isNumber:Yo,merge:rs,pick:$t,stableSort:ur}=ut(),Yr=class{constructor(b,h){this.setState=Xr,this.init(b,h)}init(b,h){this.options=b,this.visible=!0,this.chart=h.chart,this.legend=h}addToLegend(b){b.splice(this.options.legendIndex,0,this)}drawLegendSymbol(b){let h,u=$t(b.options.itemDistance,20),f=this.legendItem||{},M=this.options,A=M.ranges,w=M.connectorDistance;if(!A||!A.length||!Yo(A[0].value)){b.options.bubbleLegend.autoRanges=!0;return}ur(A,function(z,N){return N.value-z.value}),this.ranges=A,this.setOptions(),this.render();let L=this.getMaxLabelSize(),I=this.ranges[0].radius,D=2*I;h=(h=w-I+L.width)>0?h:0,this.maxLabel=L,this.movementX=M.labels.align==="left"?h:0,f.labelWidth=D+h+u,f.labelHeight=D+L.height/2}setOptions(){let b=this.ranges,h=this.options,u=this.chart.series[h.seriesIndex],f=this.legend.baseline,M={zIndex:h.zIndex,"stroke-width":h.borderWidth},A={zIndex:h.zIndex,"stroke-width":h.connectorWidth},w={align:this.legend.options.rtl||h.labels.align==="left"?"right":"left",zIndex:h.zIndex},L=u.options.marker.fillOpacity,I=this.chart.styledMode;b.forEach(function(D,z){I||(M.stroke=$t(D.borderColor,h.borderColor,u.color),M.fill=D.color||h.color,M.fill||(M.fill=u.color,M["fill-opacity"]=L??1),A.stroke=$t(D.connectorColor,h.connectorColor,u.color)),b[z].radius=this.getRangeRadius(D.value),b[z]=rs(b[z],{center:b[0].radius-b[z].radius+f}),I||rs(!0,b[z],{bubbleAttribs:rs(M),connectorAttribs:rs(A),labelAttribs:w})},this)}getRangeRadius(b){let h=this.options,u=this.options.seriesIndex,f=this.chart.series[u],M=h.ranges[0].value,A=h.ranges[h.ranges.length-1].value,w=h.minSize,L=h.maxSize;return f.getRadius.call(this,A,M,w,L,b)}render(){let b=this.legendItem||{},h=this.chart.renderer,u=this.options.zThreshold;for(let f of(this.symbols||(this.symbols={connectors:[],bubbleItems:[],labels:[]}),b.symbol=h.g("bubble-legend"),b.label=h.g("bubble-legend-item").css(this.legend.itemStyle||{}),b.symbol.translateX=0,b.symbol.translateY=0,b.symbol.add(b.label),b.label.add(b.group),this.ranges))f.value>=u&&this.renderRange(f);this.hideOverlappingLabels()}renderRange(b){let h=this.ranges[0],u=this.legend,f=this.options,M=f.labels,A=this.chart,w=A.series[f.seriesIndex],L=A.renderer,I=this.symbols,D=I.labels,z=b.center,N=Math.abs(b.radius),G=f.connectorDistance||0,F=M.align,Q=u.options.rtl,et=f.borderWidth,q=f.connectorWidth,st=h.radius||0,_=z-N-et/2+q/2,St=(_%1?1:.5)-(q%2?0:.5),gt=L.styledMode,Rt=Q||F==="left"?-G:G;F==="center"&&(Rt=0,f.connectorDistance=0,b.labelAttribs.align="center"),I.bubbleItems.push(L.circle(st,z+St,N).attr(gt?{}:b.bubbleAttribs).addClass((gt?"highcharts-color-"+w.colorIndex+" ":"")+"highcharts-bubble-legend-symbol "+(f.className||"")).add(this.legendItem.symbol)),I.connectors.push(L.path(L.crispLine([["M",st,_],["L",st+Rt,_]],f.connectorWidth)).attr(gt?{}:b.connectorAttribs).addClass((gt?"highcharts-color-"+this.options.seriesIndex+" ":"")+"highcharts-bubble-legend-connectors "+(f.connectorClassName||"")).add(this.legendItem.symbol));let Et=L.text(this.formatLabel(b)).attr(gt?{}:b.labelAttribs).css(gt?{}:M.style).addClass("highcharts-bubble-legend-labels "+(f.labels.className||"")).add(this.legendItem.symbol),xt={x:st+Rt+f.labels.x,y:_+f.labels.y+.4*Et.getBBox().height};Et.attr(xt),D.push(Et),Et.placed=!0,Et.alignAttr=xt}getMaxLabelSize(){let b,h;return this.symbols.labels.forEach(function(u){h=u.getBBox(!0),b=b?h.width>b.width?h:b:h}),b||{}}formatLabel(b){let h=this.options,u=h.labels.formatter,f=h.labels.format,{numberFormatter:M}=this.chart;return f?Br().format(f,b,this.chart):u?u.call(b):M(b.value,1)}hideOverlappingLabels(){let b=this.chart,h=this.options.labels.allowOverlap,u=this.symbols;!h&&u&&(b.hideOverlappingLabels(u.labels),u.labels.forEach(function(f,M){f.newOpacity?f.newOpacity!==f.oldOpacity&&u.connectors[M].show():u.connectors[M].hide()}))}getRanges(){let b=this.legend.bubbleLegend,h=b.chart.series,u=b.options.ranges,f,M,A=Number.MAX_VALUE,w=-Number.MAX_VALUE;return h.forEach(function(L){L.isBubble&&!L.ignoreSeries&&(M=L.getColumn("z").filter(Yo)).length&&(A=$t(L.options.zMin,Math.min(A,Math.max(pr(M),L.options.displayNegative===!1?L.options.zThreshold:-Number.MAX_VALUE))),w=$t(L.options.zMax,Math.max(w,He(M))))}),f=A===w?[{value:w}]:[{value:A},{value:(A+w)/2},{value:w,autoRanges:!0}],u.length&&u[0].radius&&f.reverse(),f.forEach(function(L,I){u&&u[I]&&(f[I]=rs(u[I],L))}),f}predictBubbleSizes(){let b=this.chart,h=b.legend.options,u=h.floating,f=h.layout==="horizontal",M=f?b.legend.lastLineHeight:0,A=b.plotSizeX,w=b.plotSizeY,L=b.series[this.options.seriesIndex],I=L.getPxExtremes(),D=Math.ceil(I.minPxSize),z=Math.ceil(I.maxPxSize),N=Math.min(w,A),G,F=L.options.maxSize;return u||!/%$/.test(F)?G=z:(G=(N+M)*(F=parseFloat(F))/100/(F/100+1),(f&&w-G>=A||!f&&A-G>=w)&&(G=z)),[D,Math.ceil(G)]}updateRanges(b,h){let u=this.legend.options.bubbleLegend;u.minSize=b,u.maxSize=h,u.ranges=this.getRanges()}correctSizes(){let b=this.legend,h=this.chart.series[this.options.seriesIndex].getPxExtremes();Math.abs(Math.ceil(h.maxPxSize)-this.options.maxSize)>1&&(this.updateRanges(this.options.minSize,h.maxPxSize),b.render())}},{setOptions:Wo}=ut(),{composed:gr}=ut(),{addEvent:Di,objectEach:fr,pushUnique:as,wrap:Wr}=ut();function C(b,h,u){let f,M,A,w=this.legend,L=S(this)>=0;w&&w.options.enabled&&w.bubbleLegend&&w.options.bubbleLegend.autoRanges&&L?(f=w.bubbleLegend.options,M=w.bubbleLegend.predictBubbleSizes(),w.bubbleLegend.updateRanges(M[0],M[1]),f.placed||(w.group.placed=!1,w.allItems.forEach(I=>{(A=I.legendItem||{}).group&&(A.group.translateY=void 0)})),w.render(),f.placed||(this.getMargins(),this.axes.forEach(I=>{I.setScale(),I.updateNames(),fr(I.ticks,function(D){D.isNew=!0,D.isNewLabel=!0})}),this.getMargins()),f.placed=!0,b.call(this,h,u),w.bubbleLegend.correctSizes(),tt(w,E(w))):(b.call(this,h,u),w&&w.options.enabled&&w.bubbleLegend&&(w.render(),tt(w,E(w))))}function S(b){let h=b.series,u=0;for(;u<h.length;){if(h[u]&&h[u].isBubble&&h[u].visible&&h[u].dataTable.rowCount)return u;u++}return-1}function E(b){let h=b.allItems,u=[],f=h.length,M,A,w,L=0,I=0;for(L=0;L<f;L++)if(A=h[L].legendItem||{},w=(h[L+1]||{}).legendItem||{},A.labelHeight&&(h[L].itemHeight=A.labelHeight),h[L]===h[f-1]||A.y!==w.y){for(u.push({height:0}),M=u[u.length-1];I<=L;I++)h[I].itemHeight>M.height&&(M.height=h[I].itemHeight);M.step=L}return u}function H(b){let h=this.bubbleLegend,u=this.options,f=u.bubbleLegend,M=S(this.chart);h&&h.ranges&&h.ranges.length&&(f.ranges.length&&(f.autoRanges=!!f.ranges[0].autoRanges),this.destroyItem(h)),M>=0&&u.enabled&&f.enabled&&(f.seriesIndex=M,this.bubbleLegend=new Yr(f,this),this.bubbleLegend.addToLegend(b.allItems))}function W(b){let h;if(b.defaultPrevented)return!1;let u=b.legendItem,f=this.chart,M=u.visible;this&&this.bubbleLegend&&(u.visible=!M,u.ignoreSeries=M,h=S(f)>=0,this.bubbleLegend.visible!==h&&(this.update({bubbleLegend:{enabled:h}}),this.bubbleLegend.visible=h),u.visible=M)}function tt(b,h){let u=b.allItems,f=b.options.rtl,M,A,w,L,I=0;u.forEach((D,z)=>{(L=D.legendItem||{}).group&&(M=L.group.translateX||0,A=L.y||0,((w=D.movementX)||f&&D.ranges)&&(w=f?M-D.options.maxSize/2:M+w,L.group.attr({translateX:w})),z>h[I].step&&I++,L.group.attr({translateY:Math.round(A+h[I].height/2)}),L.y=A+h[I].height/2)})}let it={compose:function(b,h){as(gr,"Series.BubbleLegend")&&(Wo({legend:{bubbleLegend:zr}}),Wr(b.prototype,"drawChartBox",C),Di(h,"afterGetAllItems",H),Di(h,"itemClick",W))}};var K=Bt(260),ot=Bt.n(K);let{seriesTypes:{scatter:{prototype:{pointClass:U}}}}=ft(),{extend:Nt}=ut();class kt extends U{haloPath(h){let u=(h&&this.marker&&this.marker.radius||0)+h;if(this.series.chart.inverted){let f=this.pos()||[0,0],{xAxis:M,yAxis:A,chart:w}=this.series;return w.renderer.symbols.circle(M.len-f[1]-u,A.len-f[0]-u,2*u,2*u)}return ot().prototype.haloPath.call(this,u)}}Nt(kt.prototype,{ttBelow:!1});let{composed:ae,noop:pe}=ut(),{series:Se,seriesTypes:{column:{prototype:ye},scatter:xe}}=ft(),{addEvent:De,arrayMax:Fe,arrayMin:ge,clamp:di,extend:Pt,isNumber:Jt,merge:ci,pick:ve,pushUnique:si}=ut();function Te(){let b=this.len,{coll:h,isXAxis:u,min:f}=this,M=(this.max||0)-(f||0),A=0,w=b,L=b/M,I;(h==="xAxis"||h==="yAxis")&&(this.series.forEach(D=>{if(D.bubblePadding&&D.reserveSpace()){this.allowZoomOutside=!0,I=!0;let z=D.getColumn(u?"x":"y");if(u&&((D.onPoint||D).getRadii(0,0,D),D.onPoint&&(D.radii=D.onPoint.radii)),M>0){let N=z.length;for(;N--;)if(Jt(z[N])&&this.dataMin<=z[N]&&z[N]<=this.max){let G=D.radii&&D.radii[N]||0;A=Math.min((z[N]-f)*L-G,A),w=Math.max((z[N]-f)*L+G,w)}}}}),I&&M>0&&!this.logarithmic&&(w-=b,L*=(b+Math.max(0,A)-Math.min(w,b))/b,[["min","userMin",A],["max","userMax",w]].forEach(D=>{ve(this.options[D[0]],this[D[1]])===void 0&&(this[D[0]]+=D[2]/L)})))}function Ge(){let{ticks:b,tickPositions:h,dataMin:u=0,dataMax:f=0,categories:M}=this,A=this.options.type;if((M?.length||A==="category")&&this.series.find(w=>w.bubblePadding)){let w=h.length;for(;w--;){let L=b[h[w]],I=L.pos||0;(I>f||I<u)&&L.label?.hide()}}}class Re extends xe{static compose(h,u,f){it.compose(u,f),si(ae,"Series.Bubble")&&(De(h,"foundExtremes",Te),De(h,"afterRender",Ge))}animate(h){!h&&this.points.length<this.options.animationLimit&&this.points.forEach(function(u){let{graphic:f,plotX:M=0,plotY:A=0}=u;f&&f.width&&(this.hasRendered||f.attr({x:M,y:A,width:1,height:1}),f.animate(this.markerAttribs(u),this.options.animation))},this)}getRadii(){let h=this.getColumn("z"),u=this.getColumn("y"),f=[],M,A,w,L=this.chart.bubbleZExtremes,{minPxSize:I,maxPxSize:D}=this.getPxExtremes();if(!L){let z,N=Number.MAX_VALUE,G=-Number.MAX_VALUE;this.chart.series.forEach(F=>{if(F.bubblePadding&&F.reserveSpace()){let Q=(F.onPoint||F).getZExtremes();Q&&(N=Math.min(ve(N,Q.zMin),Q.zMin),G=Math.max(ve(G,Q.zMax),Q.zMax),z=!0)}}),z?(L={zMin:N,zMax:G},this.chart.bubbleZExtremes=L):L={zMin:0,zMax:0}}for(A=0,M=h.length;A<M;A++)w=h[A],f.push(this.getRadius(L.zMin,L.zMax,I,D,w,u&&u[A]));this.radii=f}getRadius(h,u,f,M,A,w){let L=this.options,I=L.sizeBy!=="width",D=L.zThreshold,z=u-h,N=.5;if(w===null||A===null)return null;if(Jt(A)){if(L.sizeByAbsoluteValue&&(A=Math.abs(A-D),u=z=Math.max(u-D,Math.abs(h-D)),h=0),A<h)return f/2-1;z>0&&(N=(A-h)/z)}return I&&N>=0&&(N=Math.sqrt(N)),Math.ceil(f+N*(M-f))/2}hasData(){return!!this.dataTable.rowCount}markerAttribs(h,u){let f=super.markerAttribs(h,u),{height:M=0,width:A=0}=f;return this.chart.inverted?Pt(f,{x:(h.plotX||0)-A/2,y:(h.plotY||0)-M/2}):f}pointAttribs(h,u){let f=this.options.marker,M=f?.fillOpacity,A=Se.prototype.pointAttribs.call(this,h,u);return A["fill-opacity"]=M??1,A}translate(){super.translate.call(this),this.getRadii(),this.translateBubble()}translateBubble(){let{data:h,options:u,radii:f}=this,{minPxSize:M}=this.getPxExtremes(),A=h.length;for(;A--;){let w=h[A],L=f?f[A]:0;this.zoneAxis==="z"&&(w.negative=(w.z||0)<(u.zThreshold||0)),Jt(L)&&L>=M/2?(w.marker=Pt(w.marker,{radius:L,width:2*L,height:2*L}),w.dlBox={x:w.plotX-L,y:w.plotY-L,width:2*L,height:2*L}):(w.shapeArgs=w.plotY=w.dlBox=void 0,w.isInside=!1)}}getPxExtremes(){let h=Math.min(this.chart.plotWidth,this.chart.plotHeight),u=A=>{let w;return typeof A=="string"&&(w=/%$/.test(A),A=parseInt(A,10)),w?h*A/100:A},f=u(ve(this.options.minSize,8)),M=Math.max(u(ve(this.options.maxSize,"20%")),f);return{minPxSize:f,maxPxSize:M}}getZExtremes(){let h=this.options,u=this.getColumn("z").filter(Jt);if(u.length){let f=ve(h.zMin,di(ge(u),h.displayNegative===!1?h.zThreshold||0:-Number.MAX_VALUE,Number.MAX_VALUE)),M=ve(h.zMax,Fe(u));if(Jt(f)&&Jt(M))return{zMin:f,zMax:M}}}searchKDTree(h,u,f,M=pe,A=pe){return M=(w,L,I)=>{let D=w[I]||0,z=L[I]||0,N,G=!1;return D===z?N=w.index>L.index?w:L:D<0&&z<0?(N=D-(w.marker?.radius||0)>=z-(L.marker?.radius||0)?w:L,G=!0):N=D<z?w:L,[N,G]},A=(w,L,I)=>!I&&w>L||w<L,super.searchKDTree(h,u,f,M,A)}}Re.defaultOptions=ci(xe.defaultOptions,{dataLabels:{formatter:function(){let{numberFormatter:b}=this.series.chart,{z:h}=this.point;return Jt(h)?b(h,-1):""},inside:!0,verticalAlign:"middle"},animationLimit:250,marker:{lineColor:null,lineWidth:1,fillOpacity:.5,radius:null,states:{hover:{radiusPlus:0}},symbol:"circle"},minSize:8,maxSize:"20%",softThreshold:!1,states:{hover:{halo:{size:5}}},tooltip:{pointFormat:"({point.x}, {point.y}), Size: {point.z}"},turboThreshold:0,zThreshold:0,zoneAxis:"z"}),Pt(Re.prototype,{alignDataLabel:ye.alignDataLabel,applyZones:pe,bubblePadding:!0,isBubble:!0,keysAffectYAxis:["y"],pointArrayMap:["y","z"],pointClass:kt,parallelArrays:["x","y","z"],trackerGroups:["group","dataLabelsGroup"],specialGroup:"group",zoneAxis:"z"}),De(Re,"updatedData",b=>{delete b.target.chart.bubbleZExtremes}),De(Re,"remove",b=>{delete b.target.chart.bubbleZExtremes}),ft().registerSeriesType("bubble",Re);let{seriesTypes:{column:{prototype:{pointClass:{prototype:Ho}}},arearange:{prototype:{pointClass:ns}}}}=ft(),{extend:qs,isNumber:Ri}=ut();class Si extends ns{isValid(){return Ri(this.low)}}qs(Si.prototype,{setState:Ho.setState});let{noop:yi}=ut(),{seriesTypes:{arearange:pi,column:oi,column:{prototype:Ee}}}=ft(),{addEvent:fe,clamp:ri,extend:ke,isNumber:Ue,merge:Yt,pick:Wt}=ut();class Dt extends pi{setOptions(){return Yt(!0,arguments[0],{stacking:void 0}),pi.prototype.setOptions.apply(this,arguments)}translate(){return Ee.translate.apply(this)}pointAttribs(){return Ee.pointAttribs.apply(this,arguments)}translate3dPoints(){return Ee.translate3dPoints.apply(this,arguments)}translate3dShapes(){return Ee.translate3dShapes.apply(this,arguments)}afterColumnTranslate(){let h,u,f,M,A=this.yAxis,w=this.xAxis,L=w.startAngleRad,I=this.chart,D=this.xAxis.isRadial,z=Math.max(I.chartWidth,I.chartHeight)+999;this.points.forEach(N=>{let G=N.shapeArgs||{},F=this.options.minPointLength,Q=N.plotY,et=A.translate(N.high,0,1,0,1);if(Ue(et)&&Ue(Q))if(N.plotHigh=ri(et,-z,z),N.plotLow=ri(Q,-z,z),M=N.plotHigh,Math.abs(h=Wt(N.rectPlotY,N.plotY)-N.plotHigh)<F?(u=F-h,h+=u,M-=u/2):h<0&&(h*=-1,M-=h),D&&this.polar)f=N.barX+L,N.shapeType="arc",N.shapeArgs=this.polar.arc(M+h,M,f,f+N.pointWidth);else{G.height=h,G.y=M;let{x:q=0,width:st=0}=G;N.shapeArgs=Yt(N.shapeArgs,this.crispCol(q,M,st,h)),N.tooltipPos=I.inverted?[A.len+A.pos-I.plotLeft-M-h/2,w.len+w.pos-I.plotTop-q-st/2,h]:[w.left-I.plotLeft+q+st/2,A.pos-I.plotTop+M+h/2,h]}})}}Dt.defaultOptions=Yt(oi.defaultOptions,pi.defaultOptions,{borderRadius:{where:"all"},pointRange:null,legendSymbol:"rectangle",marker:null,states:{hover:{halo:!1}}}),fe(Dt,"afterColumnTranslate",function(){Dt.prototype.afterColumnTranslate.apply(this)},{order:5}),ke(Dt.prototype,{directTouch:!0,pointClass:Si,trackerGroups:["group","dataLabelsGroup"],adjustForMissingColumns:Ee.adjustForMissingColumns,animate:Ee.animate,crispCol:Ee.crispCol,drawGraph:yi,drawPoints:Ee.drawPoints,getSymbol:yi,drawTracker:Ee.drawTracker,getColumnMetrics:Ee.getColumnMetrics}),ft().registerSeriesType("columnrange",Dt);let{column:je}=ft().seriesTypes,{clamp:Vt,merge:ai,pick:Ve}=ut();class Ke extends je{translate(){let h=this.chart,u=this.options,f=this.dense=this.closestPointRange*this.xAxis.transA<2,M=this.borderWidth=Ve(u.borderWidth,+!f),A=this.yAxis,w=u.threshold,L=Ve(u.minPointLength,5),I=this.getColumnMetrics(),D=I.width,z=this.pointXOffset=I.offset,N=this.translatedThreshold=A.getThreshold(w),G=this.barW=Math.max(D,1+2*M);for(let F of(h.inverted&&(N-=.5),u.pointPadding&&(G=Math.ceil(G)),super.translate(),this.points)){let Q=Ve(F.yBottom,N),et=999+Math.abs(Q),q=Vt(F.plotY,-et,A.len+et),st=G/2,_=Math.min(q,Q),St=Math.max(q,Q)-_,gt=F.plotX+z,Rt,Et,xt,It,le,J,lt,at,ct,Lt,Mt;u.centerInCategory&&(gt=this.adjustForMissingColumns(gt,D,F,I)),F.barX=gt,F.pointWidth=D,F.tooltipPos=h.inverted?[A.len+A.pos-h.plotLeft-q,this.xAxis.len-gt-st,St]:[gt+st,q+A.pos-h.plotTop,St],Rt=w+(F.total||F.y),u.stacking==="percent"&&(Rt=w+(F.y<0)?-100:100);let At=A.toPixels(Rt,!0);xt=(Et=h.plotHeight-At-(h.plotHeight-N))?st*(_-At)/Et:0,It=Et?st*(_+St-At)/Et:0,J=gt-xt+st,lt=gt+xt+st,at=gt+It+st,ct=gt-It+st,Lt=_-L,Mt=_+St,F.y<0&&(Lt=_,Mt=_+St+L),h.inverted&&(le=A.width-_,Et=At-(A.width-N),xt=st*(At-le)/Et,It=st*(At-(le-St))/Et,lt=(J=gt+st+xt)-2*xt,at=gt-It+st,ct=gt+It+st,Lt=_,Mt=_+St-L,F.y<0&&(Mt=_+St+L)),F.shapeType="path",F.shapeArgs={x:J,y:Lt,width:lt-J,height:St,d:[["M",J,Lt],["L",lt,Lt],["L",at,Mt],["L",ct,Mt],["Z"]]}}}}Ke.defaultOptions=ai(je.defaultOptions,{}),ft().registerSeriesType("columnpyramid",Ke);let{arearange:ho}=ft().seriesTypes,{addEvent:Cs,merge:Qe,extend:Fo}=ut();class Ls extends Ze{getColumnMetrics(){return this.linkedParent&&this.linkedParent.columnMetrics||Vs().prototype.getColumnMetrics.call(this)}drawDataLabels(){let h=this.pointValKey;if(ho)for(let u of(ho.prototype.drawDataLabels.call(this),this.points))u.y=u[h]}toYData(h){return[h.low,h.high]}}Ls.defaultOptions=Qe(Ze.defaultOptions,{color:"#000000",grouping:!1,linkedTo:":previous",tooltip:{pointFormat:'<span style="color:{point.color}">\u25CF</span> {series.name}: <b>{point.low}</b> - <b>{point.high}</b><br/>'},whiskerWidth:null}),Cs(Ls,"afterTranslate",function(){for(let b of this.points)b.plotLow=b.plotY},{order:0}),Fo(Ls.prototype,{pointArrayMap:["low","high"],pointValKey:"high",doQuartiles:!1}),ft().registerSeriesType("errorbar",Ls);let{series:{prototype:{pointClass:co}}}=ft(),{noop:Es}=ut(),{series:Je,seriesTypes:{column:po}}=ft(),{clamp:ni,isNumber:qi,extend:ti,merge:ls,pick:Os,pInt:$s,defined:Go}=ut();class wt extends Je{translate(){let h=this.yAxis,u=this.options,f=h.center;this.generatePoints(),this.points.forEach(M=>{let A=ls(u.dial,M.dial),w=$s(A.radius)*f[2]/200,L=$s(A.baseLength)*w/100,I=$s(A.rearLength)*w/100,D=A.baseWidth,z=A.topWidth,N=u.overshoot,G=h.startAngleRad+h.translate(M.y,void 0,void 0,void 0,!0);(qi(N)||u.wrap===!1)&&(N=qi(N)?N/180*Math.PI:0,G=ni(G,h.startAngleRad-N,h.endAngleRad+N)),G=180*G/Math.PI,M.shapeType="path",M.shapeArgs={d:A.path||[["M",-I,-D/2],["L",L,-D/2],["L",w,-z/2],["L",w,z/2],["L",L,D/2],["L",-I,D/2],["Z"]],translateX:f[0],translateY:f[1],rotation:G},M.plotX=f[0],M.plotY=f[1],Go(M.y)&&h.max-h.min&&(M.percentage=(M.y-h.min)/(h.max-h.min)*100)})}drawPoints(){let h=this,u=h.chart,f=h.yAxis.center,M=h.pivot,A=h.options,w=A.pivot,L=u.renderer;h.points.forEach(I=>{let D=I.graphic,z=I.shapeArgs,N=z.d,G=ls(A.dial,I.dial);D?(D.animate(z),z.d=N):I.graphic=L[I.shapeType](z).addClass("highcharts-dial").add(h.group),u.styledMode||I.graphic[D?"animate":"attr"]({stroke:G.borderColor,"stroke-width":G.borderWidth,fill:G.backgroundColor})}),M?M.animate({translateX:f[0],translateY:f[1]}):w&&(h.pivot=L.circle(0,0,w.radius).attr({zIndex:2}).addClass("highcharts-pivot").translate(f[0],f[1]).add(h.group),u.styledMode||h.pivot.attr({fill:w.backgroundColor,stroke:w.borderColor,"stroke-width":w.borderWidth}))}animate(h){let u=this;h||u.points.forEach(f=>{let M=f.graphic;M&&(M.attr({rotation:180*u.yAxis.startAngleRad/Math.PI}),M.animate({rotation:f.shapeArgs.rotation},u.options.animation))})}render(){this.group=this.plotGroup("group","series",this.visible?"inherit":"hidden",this.options.zIndex,this.chart.seriesGroup),Je.prototype.render.call(this),this.group.clip(this.chart.clipRect)}setData(h,u){Je.prototype.setData.call(this,h,!1),this.processData(),this.generatePoints(),Os(u,!0)&&this.chart.redraw()}hasData(){return!!this.points.length}}wt.defaultOptions=ls(Je.defaultOptions,{dataLabels:{borderColor:"#cccccc",borderRadius:3,borderWidth:1,crop:!1,defer:!1,enabled:!0,verticalAlign:"top",y:15,zIndex:2},dial:{backgroundColor:"#000000",baseLength:"70%",baseWidth:3,borderColor:"#cccccc",borderWidth:0,radius:"80%",rearLength:"10%",topWidth:1},pivot:{radius:5,borderWidth:0,borderColor:"#cccccc",backgroundColor:"#000000"},tooltip:{headerFormat:""},showInLegend:!1}),ti(wt.prototype,{angular:!0,directTouch:!0,drawGraph:Es,drawTracker:po.prototype.drawTracker,fixedBox:!0,forceDL:!0,noSharedTooltip:!0,pointClass:class extends co{setState(b){this.state=b}},trackerGroups:["group","dataLabelsGroup"]}),ft().registerSeriesType("gauge",wt);var Ut=Bt(620),ne=Bt.n(Ut);let{composed:Ce}=ut(),{addEvent:Kt,pushUnique:ui}=ut();function hs(){let b,h,u,f,M=this;M.container&&(b=Kt(M.container,"mousedown",A=>{h&&h(),u&&u(),(f=M.hoverPoint)&&f.series&&f.series.hasDraggableNodes&&f.series.options.draggable&&(f.series.onMouseDown(f,A),h=Kt(M.container,"mousemove",w=>f&&f.series&&f.series.onMouseMove(f,w)),u=Kt(M.container.ownerDocument,"mouseup",w=>(h(),u(),f&&f.series&&f.series.onMouseUp(f,w))))})),Kt(M,"destroy",function(){b()})}let $i={compose:function(b){ui(Ce,"DragNodes")&&Kt(b,"load",hs)},onMouseDown:function(b,h){let u=this.chart.pointer?.normalize(h)||h;b.fixedPosition={chartX:u.chartX,chartY:u.chartY,plotX:b.plotX,plotY:b.plotY},b.inDragMode=!0},onMouseMove:function(b,h){if(b.fixedPosition&&b.inDragMode){let u,f,M=this.chart,A=M.pointer?.normalize(h)||h,w=b.fixedPosition.chartX-A.chartX,L=b.fixedPosition.chartY-A.chartY,I=M.graphLayoutsLookup;(Math.abs(w)>5||Math.abs(L)>5)&&(u=b.fixedPosition.plotX-w,f=b.fixedPosition.plotY-L,M.isInsidePlot(u,f)&&(b.plotX=u,b.plotY=f,b.hasDragged=!0,this.redrawHalo(b),I.forEach(D=>{D.restartSimulation()})))}},onMouseUp:function(b){b.fixedPosition&&(b.hasDragged&&(this.layout.enableSimulation?this.layout.start():this.chart.redraw()),b.inDragMode=b.hasDragged=!1,this.options.fixedDraggable||delete b.fixedPosition)},redrawHalo:function(b){b&&this.halo&&this.halo.attr({d:b.haloPath(this.options.states.hover.halo.size)})}},{setAnimation:An}=ut(),{composed:Pn}=ut(),{addEvent:Uo,pushUnique:Oe}=ut();function Zi(){this.graphLayoutsLookup&&(this.graphLayoutsLookup.forEach(b=>{b.updateSimulation()}),this.redraw())}function ya(){this.graphLayoutsLookup&&(this.graphLayoutsLookup.forEach(b=>{b.updateSimulation(!1)}),this.redraw())}function Sn(){this.graphLayoutsLookup&&this.graphLayoutsLookup.forEach(b=>{b.stop()})}function va(){let b,h=!1,u=f=>{f.maxIterations--&&isFinite(f.temperature)&&!f.isStable()&&!f.enableSimulation&&(f.beforeStep&&f.beforeStep(),f.step(),b=!1,h=!0)};if(this.graphLayoutsLookup){for(An(!1,this),this.graphLayoutsLookup.forEach(f=>f.start());!b;)b=!0,this.graphLayoutsLookup.forEach(u);h&&this.series.forEach(f=>{f&&f.layout&&f.render()})}}let gi={compose:function(b){Oe(Pn,"GraphLayout")&&(Uo(b,"afterPrint",Zi),Uo(b,"beforePrint",ya),Uo(b,"predraw",Sn),Uo(b,"render",va))},integrations:{},layouts:{}};var Tn=Bt(960),mr=Bt.n(Tn);let{seriesTypes:{bubble:{prototype:{pointClass:ka}}}}=ft(),Zs=class extends ka{destroy(){return this.series?.layout&&this.series.layout.removeElementFromCollection(this,this.series.layout.nodes),ot().prototype.destroy.apply(this,arguments)}firePointEvent(){let b=this.series.options;if(this.isParentNode&&b.parentNode){let h=b.allowPointSelect;b.allowPointSelect=b.parentNode.allowPointSelect,ot().prototype.firePointEvent.apply(this,arguments),b.allowPointSelect=h}else ot().prototype.firePointEvent.apply(this,arguments)}select(){let b=this.series.chart;this.isParentNode?(b.getSelectedPoints=b.getSelectedParentNodes,ot().prototype.select.apply(this,arguments),b.getSelectedPoints=mr().prototype.getSelectedPoints):ot().prototype.select.apply(this,arguments)}},{isNumber:Ma}=ut(),wa={attractive:function(b,h,u){let f=b.getMass(),M=-u.x*h*this.diffTemperature,A=-u.y*h*this.diffTemperature;b.fromNode.fixedPosition||(b.fromNode.plotX-=M*f.fromNode/b.fromNode.degree,b.fromNode.plotY-=A*f.fromNode/b.fromNode.degree),b.toNode.fixedPosition||(b.toNode.plotX+=M*f.toNode/b.toNode.degree,b.toNode.plotY+=A*f.toNode/b.toNode.degree)},attractiveForceFunction:function(b,h){return(h-b)/b},barycenter:function(){let b=this.options.gravitationalConstant||0,h=(this.barycenter.xFactor-(this.box.left+this.box.width)/2)*b,u=(this.barycenter.yFactor-(this.box.top+this.box.height)/2)*b;this.nodes.forEach(function(f){f.fixedPosition||(f.plotX-=h/f.mass/f.degree,f.plotY-=u/f.mass/f.degree)})},getK:function(b){return Math.pow(b.box.width*b.box.height/b.nodes.length,.5)},integrate:function(b,h){let u=-b.options.friction,f=b.options.maxSpeed,M=h.prevX,A=h.prevY,w=(h.plotX+h.dispX-M)*u,L=(h.plotY+h.dispY-A)*u,I=Math.abs,D=I(w)/(w||1),z=I(L)/(L||1),N=D*Math.min(f,Math.abs(w)),G=z*Math.min(f,Math.abs(L));h.prevX=h.plotX+h.dispX,h.prevY=h.plotY+h.dispY,h.plotX+=N,h.plotY+=G,h.temperature=b.vectorLength({x:N,y:G})},repulsive:function(b,h,u){let f=h*this.diffTemperature/b.mass/b.degree;b.fixedPosition||(b.plotX+=u.x*f,b.plotY+=u.y*f)},repulsiveForceFunction:function(b,h){return(h-b)/b*+(h>b)}},{noop:jo}=ut(),Aa={barycenter:function(){let b,h,u=this.options.gravitationalConstant||0,f=this.box,M=this.nodes,A=Math.sqrt(M.length);for(let w of M)if(!w.fixedPosition){let L=w.mass*A,I=w.plotX||0,D=w.plotY||0,z=w.series,N=z.parentNode;this.resolveSplitSeries(w)&&N&&!w.isParentNode?(b=N.plotX||0,h=N.plotY||0):(b=f.width/2,h=f.height/2),w.plotX=I-(I-b)*u/L,w.plotY=D-(D-h)*u/L,z.chart.hoverPoint===w&&z.redrawHalo&&z.halo&&z.redrawHalo(w)}},getK:jo,integrate:wa.integrate,repulsive:function(b,h,u,f){let M=h*this.diffTemperature/b.mass/b.degree,A=u.x*M,w=u.y*M;b.fixedPosition||(b.plotX+=A,b.plotY+=w),f.fixedPosition||(f.plotX-=A,f.plotY-=w)},repulsiveForceFunction:function(b,h,u,f){return Math.min(b,(u.marker.radius+f.marker.radius)/2)}},Pa={attractive:function(b,h,u,f){let M=b.getMass(),A=u.x/f*h,w=u.y/f*h;b.fromNode.fixedPosition||(b.fromNode.dispX-=A*M.fromNode/b.fromNode.degree,b.fromNode.dispY-=w*M.fromNode/b.fromNode.degree),b.toNode.fixedPosition||(b.toNode.dispX+=A*M.toNode/b.toNode.degree,b.toNode.dispY+=w*M.toNode/b.toNode.degree)},attractiveForceFunction:function(b,h){return b*b/h},barycenter:function(){let b=this.options.gravitationalConstant,h=this.barycenter.xFactor,u=this.barycenter.yFactor;this.nodes.forEach(function(f){if(!f.fixedPosition){let M=f.getDegree(),A=M*(1+M/2);f.dispX+=(h-f.plotX)*b*A/f.degree,f.dispY+=(u-f.plotY)*b*A/f.degree}})},getK:function(b){return Math.pow(b.box.width*b.box.height/b.nodes.length,.3)},integrate:function(b,h){h.dispX+=h.dispX*b.options.friction,h.dispY+=h.dispY*b.options.friction;let u=h.temperature=b.vectorLength({x:h.dispX,y:h.dispY});u!==0&&(h.plotX+=h.dispX/u*Math.min(Math.abs(h.dispX),b.temperature),h.plotY+=h.dispY/u*Math.min(Math.abs(h.dispY),b.temperature))},repulsive:function(b,h,u,f){b.dispX+=u.x/f*h/b.degree,b.dispY+=u.y/f*h/b.degree},repulsiveForceFunction:function(b,h){return h*h/b}};class ds{constructor(h){this.body=!1,this.isEmpty=!1,this.isInternal=!1,this.nodes=[],this.box=h,this.boxSize=Math.min(h.width,h.height)}divideBox(){let h=this.box.width/2,u=this.box.height/2;this.nodes[0]=new ds({left:this.box.left,top:this.box.top,width:h,height:u}),this.nodes[1]=new ds({left:this.box.left+h,top:this.box.top,width:h,height:u}),this.nodes[2]=new ds({left:this.box.left+h,top:this.box.top+u,width:h,height:u}),this.nodes[3]=new ds({left:this.box.left,top:this.box.top+u,width:h,height:u})}getBoxPosition(h){let u=h.plotX<this.box.left+this.box.width/2,f=h.plotY<this.box.top+this.box.height/2;return u?3*!f:f?1:2}insert(h,u){let f;this.isInternal?this.nodes[this.getBoxPosition(h)].insert(h,u-1):(this.isEmpty=!1,this.body?u?(this.isInternal=!0,this.divideBox(),this.body!==!0&&(this.nodes[this.getBoxPosition(this.body)].insert(this.body,u-1),this.body=!0),this.nodes[this.getBoxPosition(h)].insert(h,u-1)):((f=new ds({top:h.plotX||NaN,left:h.plotY||NaN,width:.1,height:.1})).body=h,f.isInternal=!1,this.nodes.push(f)):(this.isInternal=!1,this.body=h))}updateMassAndCenter(){let h=0,u=0,f=0;if(this.isInternal){for(let M of this.nodes)M.isEmpty||(h+=M.mass,u+=M.plotX*M.mass,f+=M.plotY*M.mass);u/=h,f/=h}else this.body&&(h=this.body.mass,u=this.body.plotX,f=this.body.plotY);this.mass=h,this.plotX=u,this.plotY=f}}let Sa=class{constructor(b,h,u,f){this.box={left:b,top:h,width:u,height:f},this.maxDepth=25,this.root=new ds(this.box),this.root.isInternal=!0,this.root.isRoot=!0,this.root.divideBox()}calculateMassAndCenter(){this.visitNodeRecursive(null,null,function(b){b.updateMassAndCenter()})}insertNodes(b){for(let h of b)this.root.insert(h,this.maxDepth)}visitNodeRecursive(b,h,u){let f;if(b||(b=this.root),b===this.root&&h&&(f=h(b)),f!==!1){for(let M of b.nodes){if(M.isInternal){if(h&&(f=h(M)),f===!1)continue;this.visitNodeRecursive(M,h,u)}else M.body&&h&&h(M.body);u&&u(M)}b===this.root&&u&&u(b)}}},{win:Vo}=ut(),{clamp:Ta,defined:Hr,isFunction:Fr,fireEvent:Cn,pick:Is}=ut();class Gr{constructor(){this.box={},this.currentStep=0,this.initialRendering=!0,this.links=[],this.nodes=[],this.series=[],this.simulation=!1}static compose(h){gi.compose(h),gi.integrations.euler=Pa,gi.integrations.verlet=wa,gi.layouts["reingold-fruchterman"]=Gr}init(h){this.options=h,this.nodes=[],this.links=[],this.series=[],this.box={x:0,y:0,width:0,height:0},this.setInitialRendering(!0),this.integration=gi.integrations[h.integration],this.enableSimulation=h.enableSimulation,this.attractiveForce=Is(h.attractiveForce,this.integration.attractiveForceFunction),this.repulsiveForce=Is(h.repulsiveForce,this.integration.repulsiveForceFunction),this.approximation=h.approximation}updateSimulation(h){this.enableSimulation=Is(h,this.options.enableSimulation)}start(){let h=this.series,u=this.options;this.currentStep=0,this.forces=h[0]&&h[0].forces||[],this.chart=h[0]&&h[0].chart,this.initialRendering&&(this.initPositions(),h.forEach(function(f){f.finishedAnimating=!0,f.render()})),this.setK(),this.resetSimulation(u),this.enableSimulation&&this.step()}step(){let h=this.series;for(let u of(this.currentStep++,this.approximation==="barnes-hut"&&(this.createQuadTree(),this.quadTree.calculateMassAndCenter()),this.forces||[]))this[u+"Forces"](this.temperature);if(this.applyLimits(),this.temperature=this.coolDown(this.startTemperature,this.diffTemperature,this.currentStep),this.prevSystemTemperature=this.systemTemperature,this.systemTemperature=this.getSystemTemperature(),this.enableSimulation){for(let u of h)u.chart&&u.render();this.maxIterations--&&isFinite(this.temperature)&&!this.isStable()?(this.simulation&&Vo.cancelAnimationFrame(this.simulation),this.simulation=Vo.requestAnimationFrame(()=>this.step())):(this.simulation=!1,this.series.forEach(u=>{Cn(u,"afterSimulation")}))}}stop(){this.simulation&&Vo.cancelAnimationFrame(this.simulation)}setArea(h,u,f,M){this.box={left:h,top:u,width:f,height:M}}setK(){this.k=this.options.linkLength||this.integration.getK(this)}addElementsToCollection(h,u){for(let f of h)u.indexOf(f)===-1&&u.push(f)}removeElementFromCollection(h,u){let f=u.indexOf(h);f!==-1&&u.splice(f,1)}clear(){this.nodes.length=0,this.links.length=0,this.series.length=0,this.resetSimulation()}resetSimulation(){this.forcedStop=!1,this.systemTemperature=0,this.setMaxIterations(),this.setTemperature(),this.setDiffTemperature()}restartSimulation(){this.simulation?this.resetSimulation():(this.setInitialRendering(!1),this.enableSimulation?this.start():this.setMaxIterations(1),this.chart&&this.chart.redraw(),this.setInitialRendering(!0))}setMaxIterations(h){this.maxIterations=Is(h,this.options.maxIterations)}setTemperature(){this.temperature=this.startTemperature=Math.sqrt(this.nodes.length)}setDiffTemperature(){this.diffTemperature=this.startTemperature/(this.options.maxIterations+1)}setInitialRendering(h){this.initialRendering=h}createQuadTree(){this.quadTree=new Sa(this.box.left,this.box.top,this.box.width,this.box.height),this.quadTree.insertNodes(this.nodes)}initPositions(){let h=this.options.initialPositions;if(Fr(h))for(let u of(h.call(this),this.nodes))Hr(u.prevX)||(u.prevX=u.plotX),Hr(u.prevY)||(u.prevY=u.plotY),u.dispX=0,u.dispY=0;else h==="circle"?this.setCircularPositions():this.setRandomPositions()}setCircularPositions(){let h,u=this.box,f=this.nodes,M=2*Math.PI/(f.length+1),A=f.filter(function(z){return z.linksTo.length===0}),w={},L=this.options.initialPositionRadius,I=z=>{for(let N of z.linksFrom||[])w[N.toNode.id]||(w[N.toNode.id]=!0,D.push(N.toNode),I(N.toNode))},D=[];for(let z of A)D.push(z),I(z);if(D.length)for(let z of f)D.indexOf(z)===-1&&D.push(z);else D=f;for(let z=0,N=D.length;z<N;++z)(h=D[z]).plotX=h.prevX=Is(h.plotX,u.width/2+L*Math.cos(z*M)),h.plotY=h.prevY=Is(h.plotY,u.height/2+L*Math.sin(z*M)),h.dispX=0,h.dispY=0}setRandomPositions(){let h,u=this.box,f=this.nodes,M=f.length+1,A=w=>{let L=w*w/Math.PI;return L-Math.floor(L)};for(let w=0,L=f.length;w<L;++w)(h=f[w]).plotX=h.prevX=Is(h.plotX,u.width*A(w)),h.plotY=h.prevY=Is(h.plotY,u.height*A(M+w)),h.dispX=0,h.dispY=0}force(h,...u){this.integration[h].apply(this,u)}barycenterForces(){this.getBarycenter(),this.force("barycenter")}getBarycenter(){let h=0,u=0,f=0;for(let M of this.nodes)u+=M.plotX*M.mass,f+=M.plotY*M.mass,h+=M.mass;return this.barycenter={x:u,y:f,xFactor:u/h,yFactor:f/h},this.barycenter}barnesHutApproximation(h,u){let f,M,A=this.getDistXY(h,u),w=this.vectorLength(A);return h!==u&&w!==0&&(u.isInternal?u.boxSize/w<this.options.theta&&w!==0?(M=this.repulsiveForce(w,this.k),this.force("repulsive",h,M*u.mass,A,w),f=!1):f=!0:(M=this.repulsiveForce(w,this.k),this.force("repulsive",h,M*u.mass,A,w))),f}repulsiveForces(){if(this.approximation==="barnes-hut")for(let h of this.nodes)this.quadTree.visitNodeRecursive(null,u=>this.barnesHutApproximation(h,u));else{let h,u,f;for(let M of this.nodes)for(let A of this.nodes)M===A||M.fixedPosition||(f=this.getDistXY(M,A),(u=this.vectorLength(f))!==0&&(h=this.repulsiveForce(u,this.k),this.force("repulsive",M,h*A.mass,f,u)))}}attractiveForces(){let h,u,f;for(let M of this.links)M.fromNode&&M.toNode&&(h=this.getDistXY(M.fromNode,M.toNode),(u=this.vectorLength(h))!==0&&(f=this.attractiveForce(u,this.k),this.force("attractive",M,f,h,u)))}applyLimits(){for(let h of this.nodes)!h.fixedPosition&&(this.integration.integrate(this,h),this.applyLimitBox(h,this.box),h.dispX=0,h.dispY=0)}applyLimitBox(h,u){let f=h.radius;h.plotX=Ta(h.plotX,u.left+f,u.width-f),h.plotY=Ta(h.plotY,u.top+f,u.height-f)}coolDown(h,u,f){return h-u*f}isStable(){return 1e-5>Math.abs(this.systemTemperature-this.prevSystemTemperature)||this.temperature<=0}getSystemTemperature(){let h=0;for(let u of this.nodes)h+=u.temperature;return h}vectorLength(h){return Math.sqrt(h.x*h.x+h.y*h.y)}getDistR(h,u){let f=this.getDistXY(h,u);return this.vectorLength(f)}getDistXY(h,u){let f=h.plotX-u.plotX,M=h.plotY-u.plotY;return{x:f,y:M,absX:Math.abs(f),absY:Math.abs(M)}}}let Ca=Gr,{addEvent:Ln,defined:Ur,pick:La}=ut();function En(){let b=this.series,h=[];return b.forEach(u=>{u.parentNode&&u.parentNode.selected&&h.push(u.parentNode)}),h}function On(){this.allDataPoints&&delete this.allDataPoints}class _o extends Ca{constructor(){super(...arguments),this.index=NaN,this.nodes=[],this.series=[]}static compose(h){Ca.compose(h),gi.integrations.packedbubble=Aa,gi.layouts.packedbubble=_o;let u=h.prototype;u.getSelectedParentNodes||(Ln(h,"beforeRedraw",On),u.getSelectedParentNodes=En),u.allParentNodes||(u.allParentNodes=[])}beforeStep(){this.options.marker&&this.series.forEach(h=>{h&&h.calculateParentRadius()})}isStable(){let h=Math.abs(this.prevSystemTemperature-this.systemTemperature);return 1>Math.abs(10*this.systemTemperature/Math.sqrt(this.nodes.length))&&h<1e-5||this.temperature<=0}setCircularPositions(){let h=this.box,u=[...this.nodes,...this?.chart?.allParentNodes||[]],f=2*Math.PI/(u.length+1),M=this.options.initialPositionRadius,A,w,L=0;for(let I of u)this.resolveSplitSeries(I)&&!I.isParentNode?(A=I.series.parentNode.plotX,w=I.series.parentNode.plotY):(A=h.width/2,w=h.height/2),I.plotX=I.prevX=La(I.plotX,A+M*Math.cos(I.index||L*f)),I.plotY=I.prevY=La(I.plotY,w+M*Math.sin(I.index||L*f)),I.dispX=0,I.dispY=0,L++}repulsiveForces(){let{options:h,k:u}=this,{bubblePadding:f=0,seriesInteraction:M}=h,A=[...this.nodes,...this?.chart?.allParentNodes||[]];for(let w of A){let L=w.series,I=w.fixedPosition,D=(w.marker?.radius||0)+f;for(let z of(w.degree=w.mass,w.neighbours=0,A)){let N=z.series;if(w!==z&&!I&&(M||L===N)&&!(L===N&&(z.isParentNode||w.isParentNode))){let G,F=this.getDistXY(w,z),Q=this.vectorLength(F)-(D+(z.marker?.radius||0));Q<0&&(w.degree+=.01,G=this.repulsiveForce(-Q/Math.sqrt(++w.neighbours),u,w,z)*z.mass),this.force("repulsive",w,G||0,F,z,Q)}}}}resolveSplitSeries(h){let u=h.series?.options?.layoutAlgorithm?.splitSeries;return!Ur(u)&&h.series.chart?.options?.plotOptions?.packedbubble?.layoutAlgorithm?.splitSeries||u||!1}applyLimitBox(h,u){let f,M;this.resolveSplitSeries(h)&&!h.isParentNode&&this.options.parentNodeLimit&&(f=this.getDistXY(h,h.series.parentNode),(M=h.series.parentNodeRadius-h.marker.radius-this.vectorLength(f))<0&&M>-2*h.marker.radius&&(h.plotX-=.01*f.x,h.plotY-=.01*f.y)),super.applyLimitBox(h,u)}}gi.layouts.packedbubble=_o;let{merge:uo,syncTimeout:Ea}=ut(),{animObject:Oa}=ut();var In=Bt(28),Nn=Bt.n(In);let{deg2rad:Dn}=ut(),{addEvent:qo,merge:jr,uniqueKey:xr,defined:$o,extend:Rn}=ut();function Ia(b,h){h=jr(!0,{enabled:!0,attributes:{dy:-5,startOffset:"50%",textAnchor:"middle"}},h);let u=this.renderer.url,f=this.text||this,M=f.textPath,{attributes:A,enabled:w}=h;if(b=b||M&&M.path,M&&M.undo(),b&&w){let L=qo(f,"afterModifyTree",I=>{if(b&&w){let D=b.attr("id");D||b.attr("id",D=xr());let z={x:0,y:0};$o(A.dx)&&(z.dx=A.dx,delete A.dx),$o(A.dy)&&(z.dy=A.dy,delete A.dy),f.attr(z),this.attr({transform:""}),this.box&&(this.box=this.box.destroy());let N=I.nodes.slice(0);I.nodes.length=0,I.nodes[0]={tagName:"textPath",attributes:Rn(A,{"text-anchor":A.textAnchor,href:`${u}#${D}`}),children:N}}});f.textPath={path:b,undo:L}}else f.attr({dx:0,dy:0}),delete f.textPath;return this.added&&(f.textCache="",this.renderer.buildText(f)),this}function br(b){let h=b.bBox,u=this.element?.querySelector("textPath");if(u){let f=[],{b:M,h:A}=this.renderer.fontMetrics(this.element),w=A-M,L=RegExp('(<tspan>|<tspan(?!\\sclass="highcharts-br")[^>]*>|<\\/tspan>)',"g"),I=u.innerHTML.replace(L,"").split(/<tspan class="highcharts-br"[^>]*>/),D=I.length,z=(N,G)=>{let{x:F,y:Q}=G,et=(u.getRotationOfChar(N)-90)*Dn,q=Math.cos(et),st=Math.sin(et);return[[F-w*q,Q-w*st],[F+M*q,Q+M*st]]};for(let N=0,G=0;G<D;G++){let F=I[G].length;for(let Q=0;Q<F;Q+=5)try{let et=N+Q+G,[q,st]=z(et,u.getStartPositionOfChar(et));Q===0?(f.push(st),f.push(q)):(G===0&&f.unshift(st),G===D-1&&f.push(q))}catch{break}N+=F-1;try{let Q=N+G,et=u.getEndPositionOfChar(Q),[q,st]=z(Q,et);f.unshift(st),f.unshift(q)}catch{break}}f.length&&f.push(f[0].slice()),h.polygon=f}return h}function Ks(b){let h=b.labelOptions,u=b.point,f=h[u.formatPrefix+"TextPath"]||h.textPath;f&&!h.useHTML&&(this.setTextPath(u.getDataLabelPath?.(this)||u.graphic,f),u.dataLabelPath&&!f.enabled&&(u.dataLabelPath=u.dataLabelPath.destroy()))}let{parse:Na}=ne(),{noop:Ns}=ut(),{series:{prototype:Ds},seriesTypes:{bubble:Rs}}=ft(),{initDataLabels:Zo,initDataLabelsDefer:zn}={initDataLabels:function(){let b=this.options.dataLabels;if(!this.dataLabelsGroup){let h=this.initDataLabelsGroup();return!this.chart.styledMode&&b?.style&&h.css(b.style),h.attr({opacity:0}),this.visible&&h.show(),h}return this.dataLabelsGroup.attr(uo({opacity:1},this.getPlotBox("data-labels"))),this.dataLabelsGroup},initDataLabelsDefer:function(){let b=this.options.dataLabels;b?.defer&&this.options.layoutAlgorithm?.enableSimulation?Ea(()=>{this.deferDataLabels=!1},b?Oa(b.animation).defer:0):this.deferDataLabels=!1}},{addEvent:Vr,clamp:yr,defined:zs,extend:Da,fireEvent:Bn,isArray:Ko,isNumber:Ra,merge:Qo,pick:vr}=ut();({compose:function(b){qo(b,"afterGetBBox",br),qo(b,"beforeAddingDataLabel",Ks);let h=b.prototype;h.setTextPath||(h.setTextPath=Ia)}}).compose(Nn());class zi extends Rs{constructor(){super(...arguments),this.parentNodeMass=0,this.deferDataLabels=!0}static compose(h,u,f){Rs.compose(h,u,f),$i.compose(u),_o.compose(u)}accumulateAllPoints(){let h=this.chart,u=[];for(let f of h.series)if(f.is("packedbubble")&&f.reserveSpace()){let M=f.getColumn("value");for(let A=0;A<M.length;A++)u.push([null,null,M[A],f.index,A,{id:A,marker:{radius:0}}])}return u}addLayout(){let h=this.options.layoutAlgorithm=this.options.layoutAlgorithm||{},u=h.type||"packedbubble",f=this.chart.options.chart,M=this.chart.graphLayoutsStorage,A=this.chart.graphLayoutsLookup,w;M||(this.chart.graphLayoutsStorage=M={},this.chart.graphLayoutsLookup=A=[]),(w=M[u])||(h.enableSimulation=zs(f.forExport)?!f.forExport:h.enableSimulation,M[u]=w=new gi.layouts[u],w.init(h),A.splice(w.index,0,w)),this.layout=w,this.points.forEach(L=>{L.mass=2,L.degree=1,L.collisionNmb=1}),w.setArea(0,0,this.chart.plotWidth,this.chart.plotHeight),w.addElementsToCollection([this],w.series),w.addElementsToCollection(this.points,w.nodes)}addSeriesLayout(){let h=this.options.layoutAlgorithm=this.options.layoutAlgorithm||{},u=h.type||"packedbubble",f=this.chart.graphLayoutsStorage,M=this.chart.graphLayoutsLookup,A=Qo(h,h.parentNodeOptions,{enableSimulation:this.layout.options.enableSimulation}),w=f[u+"-series"];w||(f[u+"-series"]=w=new gi.layouts[u],w.init(A),M.splice(w.index,0,w)),this.parentNodeLayout=w,this.createParentNodes()}calculateParentRadius(){let h=this.seriesBox();this.parentNodeRadius=yr(Math.sqrt(2*this.parentNodeMass/Math.PI)+20,20,h?Math.max(Math.sqrt(Math.pow(h.width,2)+Math.pow(h.height,2))/2+20,20):Math.sqrt(2*this.parentNodeMass/Math.PI)+20),this.parentNode&&(this.parentNode.marker.radius=this.parentNode.radius=this.parentNodeRadius)}calculateZExtremes(){let h=this.chart.series,u=this.options.zMin,f=this.options.zMax,M=1/0,A=-1/0;return u&&f?[u,f]:(h.forEach(w=>{w.getColumn("value").forEach(L=>{zs(L)&&(L>A&&(A=L),L<M&&(M=L))})}),[u=vr(u,M),f=vr(f,A)])}checkOverlap(h,u){let f=h[0]-u[0],M=h[1]-u[1];return Math.sqrt(f*f+M*M)-Math.abs(h[2]+u[2])<-.001}createParentNodes(){let h=this.pointClass,u=this.chart,f=this.parentNodeLayout,M=this.layout.options,A,w=this.parentNode,L={radius:this.parentNodeRadius,lineColor:this.color,fillColor:Na(this.color).brighten(.4).get()};M.parentNodeOptions&&(L=Qo(M.parentNodeOptions.marker||{},L)),this.parentNodeMass=0,this.points.forEach(I=>{this.parentNodeMass+=Math.PI*Math.pow(I.marker.radius,2)}),this.calculateParentRadius(),f.nodes.forEach(I=>{I.seriesIndex===this.index&&(A=!0)}),f.setArea(0,0,u.plotWidth,u.plotHeight),A||(w||(w=new h(this,{mass:this.parentNodeRadius/2,marker:L,dataLabels:{inside:!1},states:{normal:{marker:L},hover:{marker:L}},dataLabelOnNull:!0,degree:this.parentNodeRadius,isParentNode:!0,seriesIndex:this.index}),this.chart.allParentNodes.push(w)),this.parentNode&&(w.plotX=this.parentNode.plotX,w.plotY=this.parentNode.plotY),this.parentNode=w,f.addElementsToCollection([this],f.series),f.addElementsToCollection([w],f.nodes))}deferLayout(){let h=this.options.layoutAlgorithm;this.visible&&(this.addLayout(),h.splitSeries&&this.addSeriesLayout())}destroy(){this.chart.graphLayoutsLookup&&this.chart.graphLayoutsLookup.forEach(h=>{h.removeElementFromCollection(this,h.series)},this),this.parentNode&&this.parentNodeLayout&&(this.parentNodeLayout.removeElementFromCollection(this.parentNode,this.parentNodeLayout.nodes),this.parentNode.dataLabel&&(this.parentNode.dataLabel=this.parentNode.dataLabel.destroy())),Ds.destroy.apply(this,arguments)}drawDataLabels(){!this.deferDataLabels&&(Ds.drawDataLabels.call(this,this.points),this.parentNode&&(this.parentNode.formatPrefix="parentNode",Ds.drawDataLabels.call(this,[this.parentNode])))}drawGraph(){if(!this.layout||!this.layout.options.splitSeries)return;let h=this.chart,u=this.layout.options.parentNodeOptions.marker,f={fill:u.fillColor||Na(this.color).brighten(.4).get(),opacity:u.fillOpacity,stroke:u.lineColor||this.color,"stroke-width":vr(u.lineWidth,this.options.lineWidth)},M={};this.parentNodesGroup=this.plotGroup("parentNodesGroup","parentNode",this.visible?"inherit":"hidden",.1,h.seriesGroup),this.group?.attr({zIndex:2}),this.calculateParentRadius(),this.parentNode&&zs(this.parentNode.plotX)&&zs(this.parentNode.plotY)&&zs(this.parentNodeRadius)&&(M=Qo({x:this.parentNode.plotX-this.parentNodeRadius,y:this.parentNode.plotY-this.parentNodeRadius,width:2*this.parentNodeRadius,height:2*this.parentNodeRadius},f),this.parentNode.graphic||(this.graph=this.parentNode.graphic=h.renderer.symbol(f.symbol).add(this.parentNodesGroup)),this.parentNode.graphic.attr(M))}drawTracker(){let h,u=this.parentNode;super.drawTracker(),u&&(h=Ko(u.dataLabels)?u.dataLabels:u.dataLabel?[u.dataLabel]:[],u.graphic&&(u.graphic.element.point=u),h.forEach(f=>{(f.div||f.element).point=u}))}getPointRadius(){let h,u,f,M,A=this.chart,w=A.plotWidth,L=A.plotHeight,I=this.options,D=I.useSimulation,z=Math.min(w,L),N={},G=[],F=A.allDataPoints||[],Q=F.length;["minSize","maxSize"].forEach(q=>{let st=parseInt(I[q],10),_=/%$/.test(I[q]);N[q]=_?z*st/100:st*Math.sqrt(Q)}),A.minRadius=h=N.minSize/Math.sqrt(Q),A.maxRadius=u=N.maxSize/Math.sqrt(Q);let et=D?this.calculateZExtremes():[h,u];F.forEach((q,st)=>{f=D?yr(q[2],et[0],et[1]):q[2],(M=this.getRadius(et[0],et[1],h,u,f))===0&&(M=null),F[st][2]=M,G.push(M)}),this.radii=G}init(){return Ds.init.apply(this,arguments),zn.call(this),this.eventsToUnbind.push(Vr(this,"updatedData",function(){this.chart.series.forEach(h=>{h.type===this.type&&(h.isDirty=!0)},this)})),this}onMouseUp(h){if(h.fixedPosition&&!h.removed){let u,f=this.layout,M=this.parentNodeLayout;!h.isParentNode&&M&&f.options.dragBetweenSeries&&M.nodes.forEach(A=>{h&&h.marker&&A!==h.series.parentNode&&(u=f.getDistXY(h,A),f.vectorLength(u)-A.marker.radius-h.marker.radius<0&&(A.series.addPoint(Qo(h.options,{plotX:h.plotX,plotY:h.plotY}),!1),f.removeElementFromCollection(h,f.nodes),h.remove()))}),$i.onMouseUp.apply(this,arguments)}}placeBubbles(h){let u=this.checkOverlap,f=this.positionBubble,M=[],A=1,w=0,L=0,I,D=[],z,N=h.sort((G,F)=>F[2]-G[2]);if(N.length){if(M.push([[0,0,N[0][2],N[0][3],N[0][4]]]),N.length>1)for(M.push([[0,0-N[1][2]-N[0][2],N[1][2],N[1][3],N[1][4]]]),z=2;z<N.length;z++)N[z][2]=N[z][2]||1,u(I=f(M[A][w],M[A-1][L],N[z]),M[A][0])?(M.push([]),L=0,M[A+1].push(f(M[A][w],M[A][0],N[z])),A++,w=0):A>1&&M[A-1][L+1]&&u(I,M[A-1][L+1])?(L++,M[A].push(f(M[A][w],M[A-1][L],N[z])),w++):(w++,M[A].push(I));this.chart.stages=M,this.chart.rawPositions=[].concat.apply([],M),this.resizeRadius(),D=this.chart.rawPositions}return D}pointAttribs(h,u){let f=this.options,M=h&&h.isParentNode,A=f.marker;M&&f.layoutAlgorithm&&f.layoutAlgorithm.parentNodeOptions&&(A=f.layoutAlgorithm.parentNodeOptions.marker);let w=A.fillOpacity,L=Ds.pointAttribs.call(this,h,u);return w!==1&&(L["fill-opacity"]=w),L}positionBubble(h,u,f){let M=Math.asin,A=Math.acos,w=Math.pow,L=Math.abs,I=(0,Math.sqrt)(w(h[0]-u[0],2)+w(h[1]-u[1],2)),D=A((w(I,2)+w(f[2]+u[2],2)-w(f[2]+h[2],2))/(2*(f[2]+u[2])*I)),z=M(L(h[0]-u[0])/I),N=(h[1]-u[1]<0?0:Math.PI)+D+z*((h[0]-u[0])*(h[1]-u[1])<0?1:-1),G=Math.cos(N),F=Math.sin(N);return[u[0]+(u[2]+f[2])*F,u[1]-(u[2]+f[2])*G,f[2],f[3],f[4]]}render(){let h=[];Ds.render.apply(this,arguments),!this.options.dataLabels.allowOverlap&&(this.data.forEach(u=>{Ko(u.dataLabels)&&u.dataLabels.forEach(f=>{h.push(f)})}),this.options.useSimulation&&this.chart.hideOverlappingLabels(h))}resizeRadius(){let h,u,f,M,A,w=this.chart,L=w.rawPositions,I=Math.min,D=Math.max,z=w.plotLeft,N=w.plotTop,G=w.plotHeight,F=w.plotWidth;for(let st of(h=f=Number.POSITIVE_INFINITY,u=M=Number.NEGATIVE_INFINITY,L))A=st[2],h=I(h,st[0]-A),u=D(u,st[0]+A),f=I(f,st[1]-A),M=D(M,st[1]+A);let Q=[u-h,M-f],et=[(F-z)/Q[0],(G-N)/Q[1]],q=I.apply([],et);if(Math.abs(q-1)>1e-10){for(let st of L)st[2]*=q;this.placeBubbles(L)}else w.diffY=G/2+N-f-(M-f)/2,w.diffX=F/2+z-h-(u-h)/2}seriesBox(){let h,u=this.chart,f=this.data,M=Math.max,A=Math.min,w=[u.plotLeft,u.plotLeft+u.plotWidth,u.plotTop,u.plotTop+u.plotHeight];return f.forEach(L=>{zs(L.plotX)&&zs(L.plotY)&&L.marker.radius&&(h=L.marker.radius,w[0]=A(w[0],L.plotX-h),w[1]=M(w[1],L.plotX+h),w[2]=A(w[2],L.plotY-h),w[3]=M(w[3],L.plotY+h))}),Ra(w.width/w.height)?w:null}setVisible(){let h=this;Ds.setVisible.apply(h,arguments),h.parentNodeLayout&&h.graph?h.visible?(h.graph.show(),h.parentNode.dataLabel&&h.parentNode.dataLabel.show()):(h.graph.hide(),h.parentNodeLayout.removeElementFromCollection(h.parentNode,h.parentNodeLayout.nodes),h.parentNode.dataLabel&&h.parentNode.dataLabel.hide()):h.layout&&(h.visible?h.layout.addElementsToCollection(h.points,h.layout.nodes):h.points.forEach(u=>{h.layout.removeElementFromCollection(u,h.layout.nodes)}))}translate(){let h,u,f,M=this.chart,A=this.data,w=this.index,L=this.options.useSimulation;for(let I of(this.generatePoints(),zs(M.allDataPoints)||(M.allDataPoints=this.accumulateAllPoints(),this.getPointRadius()),L?f=M.allDataPoints:(f=this.placeBubbles(M.allDataPoints),this.options.draggable=!1),f))I[3]===w&&(h=A[I[4]],u=vr(I[2],void 0),L||(h.plotX=I[0]-M.plotLeft+M.diffX,h.plotY=I[1]-M.plotTop+M.diffY),Ra(u)&&(h.marker=Da(h.marker,{radius:u,width:2*u,height:2*u}),h.radius=u));L&&this.deferLayout(),Bn(this,"afterTranslate")}}zi.defaultOptions=Qo(Rs.defaultOptions,{minSize:"10%",maxSize:"50%",sizeBy:"area",zoneAxis:"y",crisp:!1,tooltip:{pointFormat:"Value: {point.value}"},draggable:!0,useSimulation:!0,parentNode:{allowPointSelect:!1},dataLabels:{formatter:function(){let{numberFormatter:b}=this.series.chart,{value:h}=this.point;return Ma(h)?b(h,-1):""},parentNodeFormatter:function(){return this.name||""},parentNodeTextPath:{enabled:!0},padding:0,style:{transition:"opacity 2000ms"}},layoutAlgorithm:{initialPositions:"circle",initialPositionRadius:20,bubblePadding:5,parentNodeLimit:!1,seriesInteraction:!0,dragBetweenSeries:!1,parentNodeOptions:{maxIterations:400,gravitationalConstant:.03,maxSpeed:50,initialPositionRadius:100,seriesInteraction:!0,marker:{fillColor:null,fillOpacity:1,lineWidth:null,lineColor:null,symbol:"circle"}},enableSimulation:!0,type:"packedbubble",integration:"packedbubble",maxIterations:1e3,splitSeries:!1,maxSpeed:5,gravitationalConstant:.01,friction:-.981},stickyTracking:!1}),Da(zi.prototype,{pointClass:Zs,axisTypes:[],directTouch:!0,forces:["barycenter","repulsive"],hasDraggableNodes:!0,invertible:!1,isCartesian:!1,noSharedTooltip:!0,pointArrayMap:["value"],pointValKey:"value",requireSorting:!1,trackerGroups:["group","dataLabelsGroup","parentNodesGroup"],initDataLabels:Zo,alignDataLabel:Ds.alignDataLabel,indexateNodes:Ns,onMouseDown:$i.onMouseDown,onMouseMove:$i.onMouseMove,redrawHalo:$i.redrawHalo,searchPoint:Ns}),ft().registerSeriesType("packedbubble",zi);let{noop:Xn}=ut(),{area:za,line:Ba,scatter:Xa}=ft().seriesTypes,{extend:kr,merge:Yn}=ut();class _r extends Xa{getGraphPath(){let h=Ba.prototype.getGraphPath.call(this),u=h.length+1;for(;u--;)(u===h.length||h[u][0]==="M")&&u>0&&h.splice(u,0,["Z"]);return this.areaPath=h,h}drawGraph(){this.options.fillColor=this.color,za.prototype.drawGraph.call(this)}}_r.defaultOptions=Yn(Xa.defaultOptions,{marker:{enabled:!1,states:{hover:{enabled:!1}}},stickyTracking:!1,tooltip:{followPointer:!0,pointFormat:""},trackByArea:!0,legendSymbol:"rectangle"}),kr(_r.prototype,{type:"polygon",drawTracker:Ba.prototype.drawTracker,setStackedPoints:Xn}),ft().registerSeriesType("polygon",_r);let Ya={circular:{gridLineWidth:1,labels:{align:void 0,x:0,y:void 0},maxPadding:0,minPadding:0,showLastLabel:!1,tickLength:0},radial:{gridLineInterpolation:"circle",gridLineWidth:1,labels:{align:"right",padding:5,x:-3,y:-2},showLastLabel:!1,title:{x:4,text:null,rotation:90}},radialGauge:{endOnTick:!1,gridLineWidth:0,labels:{align:"center",distance:-25,x:0,y:void 0},lineWidth:1,minorGridLineWidth:0,minorTickInterval:"auto",minorTickLength:10,minorTickPosition:"inside",minorTickWidth:1,startOnTick:!1,tickLength:10,tickPixelInterval:100,tickPosition:"inside",tickWidth:2,title:{rotation:0,text:""},zIndex:2}},{defaultOptions:go}=ut(),{composed:fo,noop:Bi}=ut(),{addEvent:Bs,correctFloat:Wa,defined:Qs,extend:Wn,fireEvent:Hn,isObject:Mr,merge:cs,pick:Xi,pushUnique:wr,relativeLength:Jo,wrap:Fn}=ut();(function(b){function h(){this.autoConnect=this.isCircular&&Xi(this.userMax,this.options.max)===void 0&&Wa(this.endAngleRad-this.startAngleRad)===Wa(2*Math.PI),!this.isCircular&&this.chart.inverted&&this.max++,this.autoConnect&&(this.max+=this.categories&&1||this.pointRange||this.closestPointRange||0)}function u(){return()=>{if(this.isRadial&&this.tickPositions&&this.options.labels&&this.options.labels.allowOverlap!==!0)return this.tickPositions.map(J=>this.ticks[J]?.label).filter(J=>!!J)}}function f(){return Bi}function M(J,lt,at){let ct=this.pane.center,Lt=J.value,Mt,At,_t;return this.isCircular?(Qs(Lt)?J.point&&(J.point.shapeArgs||{}).start&&(Lt=this.chart.inverted?this.translate(J.point.rectPlotY,!0):J.point.x):(At=J.chartX||0,_t=J.chartY||0,Lt=this.translate(Math.atan2(_t-at,At-lt)-this.startAngleRad,!0)),At=(Mt=this.getPosition(Lt)).x,_t=Mt.y):(Qs(Lt)||(At=J.chartX,_t=J.chartY),Qs(At)&&Qs(_t)&&(at=ct[1]+this.chart.plotTop,Lt=this.translate(Math.min(Math.sqrt(Math.pow(At-lt,2)+Math.pow(_t-at,2)),ct[2]/2)-ct[3]/2,!0))),[Lt,At||0,_t||0]}function A(J,lt,at){let ct=this.pane.center,Lt=this.chart,Mt=this.left||0,At=this.top||0,_t,se=Xi(lt,ct[2]/2-this.offset),he;return at===void 0&&(at=this.horiz?0:this.center&&-this.center[3]/2),at&&(se+=at),this.isCircular||lt!==void 0?((he=this.chart.renderer.symbols.arc(Mt+ct[0],At+ct[1],se,se,{start:this.startAngleRad,end:this.endAngleRad,open:!0,innerR:0})).xBounds=[Mt+ct[0]],he.yBounds=[At+ct[1]-se]):(_t=this.postTranslate(this.angleRad,se),he=[["M",this.center[0]+Lt.plotLeft,this.center[1]+Lt.plotTop],["L",_t.x,_t.y]]),he}function w(){this.constructor.prototype.getOffset.call(this),this.chart.axisOffset[this.side]=0}function L(J,lt,at){let ct=this.chart,Lt=_e=>{if(typeof _e=="string"){let ii=parseInt(_e,10);return fi.test(_e)&&(ii=ii*_t/100),ii}return _e},Mt=this.center,At=this.startAngleRad,_t=Mt[2]/2,se=Math.min(this.offset,0),he=this.left||0,ki=this.top||0,fi=/%$/,Xe=this.isCircular,Xt,Le,te,ei,us,Ie,Yi=Xi(Lt(at.outerRadius),_t),Ci=Lt(at.innerRadius),bo=Xi(Lt(at.thickness),10);if(this.options.gridLineInterpolation==="polygon")Ie=this.getPlotLinePath({value:J}).concat(this.getPlotLinePath({value:lt,reverse:!0}));else{J=Math.max(J,this.min),lt=Math.min(lt,this.max);let _e=this.translate(J),ii=this.translate(lt);Xe||(Yi=_e||0,Ci=ii||0),at.shape!=="circle"&&Xe?(Xt=At+(_e||0),Le=At+(ii||0)):(Xt=-Math.PI/2,Le=1.5*Math.PI,us=!0),Yi-=se,bo-=se,Ie=ct.renderer.symbols.arc(he+Mt[0],ki+Mt[1],Yi,Yi,{start:Math.min(Xt,Le),end:Math.max(Xt,Le),innerR:Xi(Ci,Yi-bo),open:us,borderRadius:at.borderRadius}),Xe&&(te=(Le+Xt)/2,ei=he+Mt[0]+Mt[2]/2*Math.cos(te),Ie.xBounds=te>-Math.PI/2&&te<Math.PI/2?[ei,ct.plotWidth]:[0,ei],Ie.yBounds=[ki+Mt[1]+Mt[2]/2*Math.sin(te)],Ie.yBounds[0]+=te>-Math.PI&&te<0||te>Math.PI?-10:10)}return Ie}function I(J){let lt=this.pane.center,at=this.chart,ct=at.inverted,Lt=J.reverse,Mt=this.pane.options.background?this.pane.options.background[0]||this.pane.options.background:{},At=Mt.innerRadius||"0%",_t=Mt.outerRadius||"100%",se=lt[0]+at.plotLeft,he=lt[1]+at.plotTop,ki=this.height,fi=J.isCrosshair,Xe=lt[3]/2,Xt=J.value,Le,te,ei,us,Ie,Yi,Ci,bo,_e,ii=this.getPosition(Xt),or=ii.x,io=ii.y;if(fi&&(Xt=(bo=this.getCrosshairPosition(J,se,he))[0],or=bo[1],io=bo[2]),this.isCircular)te=Math.sqrt(Math.pow(or-se,2)+Math.pow(io-he,2)),ei=typeof At=="string"?Jo(At,1):At/te,us=typeof _t=="string"?Jo(_t,1):_t/te,lt&&Xe&&(ei<(Le=Xe/te)&&(ei=Le),us<Le&&(us=Le)),_e=[["M",se+ei*(or-se),he-ei*(he-io)],["L",or-(1-us)*(or-se),io+(1-us)*(he-io)]];else if((Xt=this.translate(Xt))&&(Xt<0||Xt>ki)&&(Xt=0),this.options.gridLineInterpolation==="circle")_e=this.getLinePath(0,Xt,Xe);else if(_e=[],at[ct?"yAxis":"xAxis"].forEach(so=>{so.pane===this.pane&&(Ie=so)}),Ie){Ci=Ie.tickPositions,Ie.autoConnect&&(Ci=Ci.concat([Ci[0]])),Lt&&(Ci=Ci.slice().reverse()),Xt&&(Xt+=Xe);for(let so=0;so<Ci.length;so++)Yi=Ie.getPosition(Ci[so],Xt),_e.push(so?["L",Yi.x,Yi.y]:["M",Yi.x,Yi.y])}return _e}function D(J,lt){let at=this.translate(J);return this.postTranslate(this.isCircular?at:this.angleRad,Xi(this.isCircular?lt:at<0?0:at,this.center[2]/2)-this.offset)}function z(){let J=this.center,lt=this.chart,at=this.options.title;return{x:lt.plotLeft+J[0]+(at.x||0),y:lt.plotTop+J[1]-{high:.5,middle:.25,low:0}[at.align]*J[2]+(at.y||0)}}function N(J){J.beforeSetTickPositions=h,J.createLabelCollector=u,J.getCrosshairPosition=M,J.getLinePath=A,J.getOffset=w,J.getPlotBandPath=L,J.getPlotLinePath=I,J.getPosition=D,J.getTitlePosition=z,J.postTranslate=gt,J.setAxisSize=Et,J.setAxisTranslation=xt,J.setOptions=It}function G(){let J=this.chart,lt=this.options,at=J.angular&&this.isXAxis,ct=this.pane,Lt=ct?.options;if(!at&&ct&&(J.angular||J.polar)){let Mt=2*Math.PI,At=(Xi(Lt.startAngle,0)-90)*Math.PI/180,_t=(Xi(Lt.endAngle,Xi(Lt.startAngle,0)+360)-90)*Math.PI/180;this.angleRad=(lt.angle||0)*Math.PI/180,this.startAngleRad=At,this.endAngleRad=_t,this.offset=lt.offset||0;let se=(At%Mt+Mt)%Mt,he=(_t%Mt+Mt)%Mt;se>Math.PI&&(se-=Mt),he>Math.PI&&(he-=Mt),this.normalizedStartAngleRad=se,this.normalizedEndAngleRad=he}}function F(J){this.isRadial&&(J.align=void 0,J.preventDefault())}function Q(){if(this.chart?.labelCollectors){let J=this.labelCollector?this.chart.labelCollectors.indexOf(this.labelCollector):-1;J>=0&&this.chart.labelCollectors.splice(J,1)}}function et(J){let lt,at=this.chart,ct=at.angular,Lt=at.polar,Mt=this.isXAxis,At=this.coll,_t=J.userOptions.pane||0,se=this.pane=at.pane&&at.pane[_t];if(At==="colorAxis"){this.isRadial=!1;return}ct?(ct&&Mt?(this.isHidden=!0,this.createLabelCollector=f,this.getOffset=Bi,this.redraw=Rt,this.render=Rt,this.setScale=Bi,this.setCategories=Bi,this.setTitle=Bi):N(this),lt=!Mt):Lt&&(N(this),lt=this.horiz),ct||Lt?(this.isRadial=!0,this.labelCollector||(this.labelCollector=this.createLabelCollector()),this.labelCollector&&at.labelCollectors.push(this.labelCollector)):this.isRadial=!1,se&<&&(se.axis=this),this.isCircular=lt}function q(){this.isRadial&&this.beforeSetTickPositions()}function st(J){let lt=this.label;if(!lt)return;let at=this.axis,ct=lt.getBBox(),Lt=at.options.labels,Mt=(at.translate(this.pos)+at.startAngleRad+Math.PI/2)/Math.PI*180%360,At=Math.round(Mt),_t=Qs(Lt.y)?0:-(.3*ct.height),se=Lt.y,he,ki=20,fi=Lt.align,Xe="end",Xt=At<0?At+360:At,Le=Xt,te=0,ei=0;at.isRadial&&(he=at.getPosition(this.pos,at.center[2]/2+Jo(Xi(Lt.distance,-25),at.center[2]/2,-at.center[2]/2)),Lt.rotation==="auto"?lt.attr({rotation:Mt}):Qs(se)||(se=at.chart.renderer.fontMetrics(lt).b-ct.height/2),Qs(fi)||(at.isCircular?(ct.width>at.len*at.tickInterval/(at.max-at.min)&&(ki=0),fi=Mt>ki&&Mt<180-ki?"left":Mt>180+ki&&Mt<360-ki?"right":"center"):fi="center",lt.attr({align:fi})),fi==="auto"&&at.tickPositions.length===2&&at.isCircular&&(Xt>90&&Xt<180?Xt=180-Xt:Xt>270&&Xt<=360&&(Xt=540-Xt),Le>180&&Le<=360&&(Le=360-Le),(at.pane.options.startAngle===At||at.pane.options.startAngle===At+360||at.pane.options.startAngle===At-360)&&(Xe="start"),fi=At>=-90&&At<=90||At>=-360&&At<=-270||At>=270&&At<=360?Xe==="start"?"right":"left":Xe==="start"?"left":"right",Le>70&&Le<110&&(fi="center"),Xt<15||Xt>=180&&Xt<195?te=.3*ct.height:Xt>=15&&Xt<=35?te=Xe==="start"?0:.75*ct.height:Xt>=195&&Xt<=215?te=Xe==="start"?.75*ct.height:0:Xt>35&&Xt<=90?te=Xe==="start"?-(.25*ct.height):ct.height:Xt>215&&Xt<=270&&(te=Xe==="start"?ct.height:-(.25*ct.height)),Le<15?ei=Xe==="start"?-(.15*ct.height):.15*ct.height:Le>165&&Le<=180&&(ei=Xe==="start"?.15*ct.height:-(.15*ct.height)),lt.attr({align:fi}),lt.translate(ei,te+_t)),J.pos.x=he.x+(Lt.x||0),J.pos.y=he.y+(se||0))}function _(J){this.axis.getPosition&&Wn(J.pos,this.axis.getPosition(this.pos))}function St({options:J}){J.xAxis&&cs(!0,b.radialDefaultOptions.circular,J.xAxis),J.yAxis&&cs(!0,b.radialDefaultOptions.radialGauge,J.yAxis)}function gt(J,lt){let at=this.chart,ct=this.center;return J=this.startAngleRad+J,{x:at.plotLeft+ct[0]+Math.cos(J)*lt,y:at.plotTop+ct[1]+Math.sin(J)*lt}}function Rt(){this.isDirty=!1}function Et(){let J,lt;this.constructor.prototype.setAxisSize.call(this),this.isRadial&&(this.pane.updateCenter(this),J=this.center=this.pane.center.slice(),this.isCircular?this.sector=this.endAngleRad-this.startAngleRad:(lt=this.postTranslate(this.angleRad,J[3]/2),J[0]=lt.x-this.chart.plotLeft,J[1]=lt.y-this.chart.plotTop),this.len=this.width=this.height=(J[2]-J[3])*Xi(this.sector,1)/2)}function xt(){this.constructor.prototype.setAxisTranslation.call(this),this.center&&(this.isCircular?this.transA=(this.endAngleRad-this.startAngleRad)/(this.max-this.min||1):this.transA=(this.center[2]-this.center[3])/2/(this.max-this.min||1),this.isXAxis?this.minPixelPadding=this.transA*this.minPointOffset:this.minPixelPadding=0)}function It(J){let{coll:lt}=this,{angular:at,inverted:ct,polar:Lt}=this.chart,Mt={};at?this.isXAxis||(Mt=cs(go.yAxis,b.radialDefaultOptions.radialGauge)):Lt&&(Mt=this.horiz?cs(go.xAxis,b.radialDefaultOptions.circular):cs(lt==="xAxis"?go.xAxis:go.yAxis,b.radialDefaultOptions.radial)),ct&<==="yAxis"&&(Mt.stackLabels=Mr(go.yAxis,!0)?go.yAxis.stackLabels:{},Mt.reversedStacks=!0);let At=this.options=cs(Mt,J);At.plotBands||(At.plotBands=[]),Hn(this,"afterSetOptions")}function le(J,lt,at,ct,Lt,Mt,At){let _t,se,he=this.axis;return he.isRadial?["M",lt,at,"L",(_t=he.getPosition(this.pos,he.center[2]/2+ct)).x,_t.y]:J.call(this,lt,at,ct,Lt,Mt,At)}b.radialDefaultOptions=cs(Ya),b.compose=function(J,lt){return wr(fo,"Axis.Radial")&&(Bs(J,"afterInit",G),Bs(J,"autoLabelAlign",F),Bs(J,"destroy",Q),Bs(J,"init",et),Bs(J,"initialAxisTranslation",q),Bs(lt,"afterGetLabelPosition",st),Bs(lt,"afterGetPosition",_),Bs(ut(),"setOptions",St),Fn(lt.prototype,"getMarkPath",le)),J}})(Fi||(Fi={}));let qr=Fi,{animObject:tr}=ut(),{composed:Gn}=ut(),{addEvent:Ti,defined:er,find:$r,isNumber:ze,merge:Js,pick:mo,pushUnique:Ha,relativeLength:Un,splat:Zr,uniqueKey:jn,wrap:ps}=ut();function Fa(){(this.pane||[]).forEach(b=>{b.render()})}function Vn(b){let h=b.args[0].xAxis,u=b.args[0].yAxis,f=b.args[0].chart;h&&u&&(u.gridLineInterpolation==="polygon"?(h.startOnTick=!0,h.endOnTick=!0):h.gridLineInterpolation==="polygon"&&f.inverted&&(u.startOnTick=!0,u.endOnTick=!0))}function Kr(){this.pane||(this.pane=[]),this.options.pane=Zr(this.options.pane||{}),this.options.pane.forEach(b=>{new Gs(b,this)},this)}function vi(b){let h=b.args.marker,u=this.chart.xAxis[0],f=this.chart.yAxis[0],M=this.chart.inverted,A=M?f:u,w=M?u:f;if(this.chart.polar){b.preventDefault();let L=(h.attr?h.attr("start"):h.start)-A.startAngleRad,I=h.attr?h.attr("r"):h.r,D=(h.attr?h.attr("end"):h.end)-A.startAngleRad,z=h.attr?h.attr("innerR"):h.innerR;b.result.x=L+A.pos,b.result.width=D-L,b.result.y=w.len+w.pos-I,b.result.height=I-z}}function Qt(b){let h=this.chart;if(h.polar&&h.hoverPane&&h.hoverPane.axis){b.preventDefault();let u=h.hoverPane.center,f=h.mouseDownX||0,M=h.mouseDownY||0,A=b.args.chartY,w=b.args.chartX,L=2*Math.PI,I=h.hoverPane.axis.startAngleRad,D=h.hoverPane.axis.endAngleRad,z=h.inverted?h.xAxis[0]:h.yAxis[0],N={},G="arc";if(N.x=u[0]+h.plotLeft,N.y=u[1]+h.plotTop,this.zoomHor){let F=I>0?D-I:Math.abs(I)+Math.abs(D),Q=Math.atan2(M-h.plotTop-u[1],f-h.plotLeft-u[0])-I,et=Math.atan2(A-h.plotTop-u[1],w-h.plotLeft-u[0])-I;N.r=u[2]/2,N.innerR=u[3]/2,Q<=0&&(Q+=L),et<=0&&(et+=L),et<Q&&(et=[Q,Q=et][0]),F<L&&I+et>D+(L-F)/2&&(et=Q,Q=I<=0?I:0);let q=N.start=Math.max(Q+I,I),st=N.end=Math.min(et+I,D);if(z.options.gridLineInterpolation==="polygon"){let _=h.hoverPane.axis,St=q-_.startAngleRad+_.pos,gt=z.getPlotLinePath({value:z.max}),Rt=_.toValue(St),Et=_.toValue(St+(st-q));if(Rt<_.getExtremes().min){let{min:xt,max:It}=_.getExtremes();Rt=It-(xt-Rt)}if(Et<_.getExtremes().min){let{min:xt,max:It}=_.getExtremes();Et=It-(xt-Et)}Et<Rt&&(Et=[Rt,Rt=Et][0]),(gt=xo(gt,Rt,Et,_)).push(["L",u[0]+h.plotLeft,h.plotTop+u[1]]),N.d=gt,G="path"}}if(this.zoomVert){let F=h.inverted?h.xAxis[0]:h.yAxis[0],Q=Math.sqrt(Math.pow(f-h.plotLeft-u[0],2)+Math.pow(M-h.plotTop-u[1],2)),et=Math.sqrt(Math.pow(w-h.plotLeft-u[0],2)+Math.pow(A-h.plotTop-u[1],2));if(et<Q&&(Q=[et,et=Q][0]),et>u[2]/2&&(et=u[2]/2),Q<u[3]/2&&(Q=u[3]/2),this.zoomHor||(N.start=I,N.end=D),N.r=et,N.innerR=Q,F.options.gridLineInterpolation==="polygon"){let q=F.toValue(F.len+F.pos-Q),st=F.toValue(F.len+F.pos-et);N.d=F.getPlotLinePath({value:st}).concat(F.getPlotLinePath({value:q,reverse:!0})),G="path"}}if(this.zoomHor&&this.zoomVert&&z.options.gridLineInterpolation==="polygon"){let F=h.hoverPane.axis,Q=N.start||0,et=N.end||0,q=Q-F.startAngleRad+F.pos,st=F.toValue(q),_=F.toValue(q+(et-Q));if(N.d instanceof Array){let St=N.d.slice(0,N.d.length/2),gt=N.d.slice(N.d.length/2,N.d.length);gt=[...gt].reverse();let Rt=h.hoverPane.axis;St=xo(St,st,_,Rt),(gt=xo(gt,st,_,Rt))&&(gt[0][0]="L"),gt=[...gt].reverse(),N.d=St.concat(gt),G="path"}}b.attrs=N,b.shapeType=G}}function _n(){let b=this.chart;b.polar&&(this.polar=new Ot(this),b.inverted&&(this.isRadialSeries=!0,this.is("column")&&(this.isRadialBar=!0)))}function Ga(){if(this.chart.polar&&this.xAxis){let{xAxis:b,yAxis:h}=this,u=this.chart;this.kdByAngle=u.tooltip&&u.tooltip.shared,this.kdByAngle||u.inverted?this.searchPoint=Qr:this.options.findNearestPointBy="xy";let f=this.points,M=f.length;for(;M--;)this.is("column")||this.is("columnrange")||this.polar.toXY(f[M]),u.hasParallelCoordinates||this.yAxis.reversed||(mo(f[M].y,Number.MIN_VALUE)<h.min||f[M].x<b.min||f[M].x>b.max?(f[M].isNull=!0,f[M].plotY=NaN):f[M].isNull=f[M].isValid&&!f[M].isValid());this.hasClipCircleSetter||(this.hasClipCircleSetter=!!this.eventsToUnbind.push(Ti(this,"afterRender",function(){let A;u.polar&&this.options.clip!==!1&&(A=this.yAxis.pane.center,this.clipCircle?this.clipCircle.animate({x:A[0],y:A[1],r:A[2]/2,innerR:A[3]/2}):this.clipCircle=(function(w,L,I,D,z){let N=jn(),G=w.createElement("clipPath").attr({id:N}).add(w.defs),F=z?w.arc(L,I,D,z,0,2*Math.PI).add(G):w.circle(L,I,D).add(G);return F.id=N,F.clipPath=G,F})(u.renderer,A[0],A[1],A[2]/2,A[3]/2),this.group.clip(this.clipCircle),this.setClip=ut().noop)})))}}function Qr(b){let h=this.chart,u=this.xAxis,f=this.yAxis,M=u.pane&&u.pane.center,A=b.chartX-(M&&M[0]||0)-h.plotLeft,w=b.chartY-(M&&M[1]||0)-h.plotTop,L=h.inverted?{clientX:b.chartX-f.pos,plotY:b.chartY-u.pos}:{clientX:180+-180/Math.PI*Math.atan2(A,w)};return this.searchKDTree(L)}function xo(b,h,u,f){let M=f.tickInterval,A=f.tickPositions,w=$r(A,I=>I>=u),L=$r([...A].reverse(),I=>I<=h);return er(w)||(w=A[A.length-1]),er(L)||(L=A[0],w+=M,b[0][0]="L",b.unshift(b[b.length-3])),(b=b.slice(A.indexOf(L),A.indexOf(w)+1))[0][0]="M",b}function ue(b,h){return $r(this.pane||[],u=>u.options.id===h)||b.call(this,h)}function Ua(b,h,u,f,M,A){let w,L,I,D=this.chart,z=mo(f.inside,!!this.options.stacking);if(D.polar){if(w=h.rectPlotX/Math.PI*180,D.inverted)this.forceDL=D.isInsidePlot(h.plotX,h.plotY),z&&h.shapeArgs?(L=h.shapeArgs,M=Js(M,{x:(I=this.yAxis.postTranslate(((L.start||0)+(L.end||0))/2-this.xAxis.startAngleRad,h.barX+h.pointWidth/2)).x-D.plotLeft,y:I.y-D.plotTop})):h.tooltipPos&&(M=Js(M,{x:h.tooltipPos[0],y:h.tooltipPos[1]})),f.align=mo(f.align,"center"),f.verticalAlign=mo(f.verticalAlign,"middle");else{var N;(N=f).align===null&&(N.align=w>20&&w<160?"left":w>200&&w<340?"right":"center"),N.verticalAlign===null&&(N.verticalAlign=w<45||w>315?"bottom":w>135&&w<225?"top":"middle"),f=N}V().prototype.alignDataLabel.call(this,h,u,f,M,A),this.isRadialBar&&h.shapeArgs&&h.shapeArgs.start===h.shapeArgs.end?u.hide():u.show()}else b.call(this,h,u,f,M,A)}function qn(){let b=this.options,h=b.stacking,u=this.chart,f=this.xAxis,M=this.yAxis,A=M.reversed,w=M.center,L=f.startAngleRad,I=f.endAngleRad-L,D=b.threshold,z=0,N,G,F,Q,et,q=0,st=0,_,St,gt,Rt,Et,xt,It,le;if(f.isRadial)for(F=(N=this.points).length,Q=M.translate(M.min),et=M.translate(M.max),D=b.threshold||0,u.inverted&&ze(D)&&er(z=M.translate(D))&&(z<0?z=0:z>I&&(z=I),this.translatedThreshold=z+L);F--;){if(xt=(G=N[F]).barX,St=G.x,gt=G.y,G.shapeType="arc",u.inverted){G.plotY=M.translate(gt),h&&M.stacking?(Et=M.stacking.stacks[(gt<0?"-":"")+this.stackKey],this.visible&&Et&&Et[St]&&!G.isNull&&(Rt=Et[St].points[this.getStackIndicator(void 0,St,this.index).key],q=M.translate(Rt[0]),st=M.translate(Rt[1]),er(q)&&(q=ut().clamp(q,0,I)))):(q=z,st=G.plotY),q>st&&(st=[q,q=st][0]),A?st>Q?st=Q:q<et?q=et:(q>Q||st<et)&&(q=st=I):q<Q?q=Q:st>et?st=et:(st<Q||q>et)&&(q=st=0),M.min>M.max&&(q=st=A?I:0),q+=L,st+=L,w&&(G.barX=xt+=w[3]/2),It=Math.max(xt,0),le=Math.max(xt+G.pointWidth,0);let J=b.borderRadius,lt=Un((typeof J=="object"?J.radius:J)||0,le-It);G.shapeArgs={x:w[0],y:w[1],r:le,innerR:It,start:q,end:st,borderRadius:lt},G.opacity=q===st?0:void 0,G.plotY=(er(this.translatedThreshold)&&(q<this.translatedThreshold?q:st))-L}else q=xt+L,G.shapeArgs=this.polar.arc(G.yBottom,G.plotY,q,q+G.pointWidth),G.shapeArgs.borderRadius=0;this.polar.toXY(G),u.inverted?(_=M.postTranslate(G.rectPlotY,xt+G.pointWidth/2),G.tooltipPos=[_.x-u.plotLeft,_.y-u.plotTop]):G.tooltipPos=[G.plotX,G.plotY],w&&(G.ttBelow=G.plotY>w[1])}}function ja(b,h){let u,f,M=this;if(this.chart.polar){h=h||this.points;for(let w=0;w<h.length;w++)if(!h[w].isNull){u=w;break}this.options.connectEnds!==!1&&u!==void 0&&(this.connectEnds=!0,h.splice(h.length,0,h[u]),f=!0),h.forEach(w=>{w.polarPlotY===void 0&&M.polar.toXY(w)})}let A=b.apply(this,[].slice.call(arguments,1));return f&&h.pop(),A}function vt(b,h){let u=this.chart,f={xAxis:[],yAxis:[]};return u.polar?u.axes.forEach(M=>{if(M.coll==="colorAxis")return;let A=M.isXAxis,w=M.center,L=h.chartX-w[0]-u.plotLeft,I=h.chartY-w[1]-u.plotTop;f[A?"xAxis":"yAxis"].push({axis:M,value:M.translate(A?Math.PI-Math.atan2(L,I):Math.sqrt(Math.pow(L,2)+Math.pow(I,2)),!0)})}):f=b.call(this,h),f}function Va(b,h){!this.chart.polar&&b.call(this,h)}function ir(b,h){let u=this,f=this.chart,M=this.group,A=this.markerGroup,w=this.xAxis&&this.xAxis.center,L=f.plotLeft,I=f.plotTop,D=this.options.animation,z,N,G,F,Q,et;f.polar?u.isRadialBar?h||(u.startAngleRad=mo(u.translatedThreshold,u.xAxis.startAngleRad),ut().seriesTypes.pie.prototype.animate.call(u,h)):(D=tr(D),u.is("column")?h||(N=w[3]/2,u.points.forEach(q=>{G=q.graphic,Q=(F=q.shapeArgs)&&F.r,et=F&&F.innerR,G&&F&&(G.attr({r:N,innerR:N}),G.animate({r:Q,innerR:et},u.options.animation))})):h?(z={translateX:w[0]+L,translateY:w[1]+I,scaleX:.001,scaleY:.001},M.attr(z),A&&A.attr(z)):(z={translateX:L,translateY:I,scaleX:1,scaleY:1},M.animate(z,D),A&&A.animate(z,D))):b.call(this,h)}function $n(b,h,u,f){let M,A;if(this.chart.polar)if(f){let w=(A=(function I(D,z,N,G){let F,Q,et,q,st,_,St=+!!G,gt=(F=z>=0&&z<=D.length-1?z:z<0?D.length-1+z:0)-1<0?D.length-(1+St):F-1,Rt=F+1>D.length-1?St:F+1,Et=D[gt],xt=D[Rt],It=Et.plotX,le=Et.plotY,J=xt.plotX,lt=xt.plotY,at=D[F].plotX,ct=D[F].plotY;Q=(1.5*at+It)/2.5,et=(1.5*ct+le)/2.5,q=(1.5*at+J)/2.5,st=(1.5*ct+lt)/2.5;let Lt=Math.sqrt(Math.pow(Q-at,2)+Math.pow(et-ct,2)),Mt=Math.sqrt(Math.pow(q-at,2)+Math.pow(st-ct,2)),At=Math.atan2(et-ct,Q-at);_=Math.PI/2+(At+Math.atan2(st-ct,q-at))/2,Math.abs(At-_)>Math.PI/2&&(_-=Math.PI),Q=at+Math.cos(_)*Lt,et=ct+Math.sin(_)*Lt;let _t={rightContX:q=at+Math.cos(Math.PI+_)*Mt,rightContY:st=ct+Math.sin(Math.PI+_)*Mt,leftContX:Q,leftContY:et,plotX:at,plotY:ct};return N&&(_t.prevPointCont=I(D,gt,!1,G)),_t})(h,f,!0,this.connectEnds)).prevPointCont&&A.prevPointCont.rightContX,L=A.prevPointCont&&A.prevPointCont.rightContY;M=["C",ze(w)?w:A.plotX,ze(L)?L:A.plotY,ze(A.leftContX)?A.leftContX:A.plotX,ze(A.leftContY)?A.leftContY:A.plotY,A.plotX,A.plotY]}else M=["M",u.plotX,u.plotY];else M=b.call(this,h,u,f);return M}function Ar(b,h,u=this.plotY){if(!this.destroyed){let{plotX:f,series:M}=this,{chart:A}=M;return A.polar&&ze(f)&&ze(u)?[f+(h?A.plotLeft:0),u+(h?A.plotTop:0)]:b.call(this,h,u)}}class Ot{static compose(h,u,f,M,A,w,L,I,D,z){if(Gs.compose(u,f),qr.compose(h,A),Ha(Gn,"Polar")){let N=u.prototype,G=w.prototype,F=f.prototype,Q=M.prototype;if(Ti(u,"afterDrawChartBox",Fa),Ti(u,"createAxes",Kr),Ti(u,"init",Vn),ps(N,"get",ue),ps(F,"getCoordinates",vt),ps(F,"pinch",Va),Ti(f,"getSelectionMarkerAttrs",Qt),Ti(f,"getSelectionBox",vi),Ti(M,"afterInit",_n),Ti(M,"afterTranslate",Ga,{order:2}),Ti(M,"afterColumnTranslate",qn,{order:4}),ps(Q,"animate",ir),ps(G,"pos",Ar),I){let et=I.prototype;ps(et,"alignDataLabel",Ua),ps(et,"animate",ir)}if(D&&ps(D.prototype,"getGraphPath",ja),z){let et=z.prototype;ps(et,"getPointSpline",$n),L&&(L.prototype.getPointSpline=et.getPointSpline)}}}constructor(h){this.series=h}arc(h,u,f,M){let A=this.series,w=A.xAxis.center,L=A.yAxis.len,I=w[3]/2,D=L-u+I,z=L-mo(h,L)+I;return A.yAxis.reversed&&(D<0&&(D=I),z<0&&(z=I)),{x:w[0],y:w[1],r:D,innerR:z,start:f,end:M}}toXY(h){let u=this.series,f=u.chart,M=u.xAxis,A=u.yAxis,w=h.plotX,L=f.inverted,I=h.y,D=h.plotY,z=L?w:A.len-D,N;if(L&&u&&!u.isRadialBar&&(h.plotY=D=ze(I)?A.translate(I):0),h.rectPlotX=w,h.rectPlotY=D,A.center&&(z+=A.center[3]/2),ze(D)){let G=L?A.postTranslate(D,z):M.postTranslate(w,z);h.plotX=h.polarPlotX=G.x-f.plotLeft,h.plotY=h.polarPlotY=G.y-f.plotTop}u.kdByAngle?((N=(w/Math.PI*180+M.pane.options.startAngle)%360)<0&&(N+=360),h.clientX=N):h.clientX=h.plotX}}var Pr=Bt(184),_a=Bt.n(Pr);let{composed:Zn}=ut(),{addEvent:Sr,objectEach:Jr,pushUnique:ta}=ut();(function(b){function h(){let w=this.waterfall.stacks;w&&(w.changed=!1,delete w.alreadyChanged)}function u(){this.options.stackLabels?.enabled&&this.waterfall.stacks&&this.waterfall.renderStackTotals()}function f(){this.waterfall||(this.waterfall=new A(this))}function M(){let w=this.axes;for(let L of this.series)if(L.options.stacking){for(let I of w)I.isXAxis||(I.waterfall.stacks.changed=!0);break}}b.compose=function(w,L){ta(Zn,"Axis.Waterfall")&&(Sr(w,"init",f),Sr(w,"afterBuildStacks",h),Sr(w,"afterRender",u),Sr(L,"beforeRedraw",M))};class A{constructor(L){this.axis=L,this.stacks={changed:!1}}renderStackTotals(){let L=this.axis,I=L.waterfall.stacks,D=L.stacking?.stackTotalGroup,z=new(_a())(L,L.options.stackLabels||{},!1,0,void 0);this.dummyStackItem=z,D&&Jr(I,N=>{Jr(N,(G,F)=>{z.total=G.stackTotal,z.x=+F,G.label&&(z.label=G.label),_a().prototype.render.call(z,D),G.label=z.label,delete z.label})}),z.total=null}}b.Composition=A})(Mi||(Mi={}));let Kn=Mi,{isNumber:Qn}=ut();class Jn extends Vs().prototype.pointClass{getClassName(){let h=ot().prototype.getClassName.call(this);return this.isSum?h+=" highcharts-sum":this.isIntermediateSum&&(h+=" highcharts-intermediate-sum"),h}isValid(){return Qn(this.y)||this.isSum||!!this.isIntermediateSum}}let{column:to,line:tl}=ft().seriesTypes,{addEvent:qa,arrayMax:$a,arrayMin:Za,correctFloat:ea,crisp:Tr,extend:Ka,isNumber:eo,merge:Qa,objectEach:Ja,pick:tn}=ut();function sr(b,h){return Object.hasOwnProperty.call(b,h)}class li extends to{generatePoints(){to.prototype.generatePoints.apply(this);let h=this.getColumn("y",!0);for(let u=0,f=this.points.length;u<f;u++){let M=this.points[u],A=h[u];eo(A)&&(M.isIntermediateSum||M.isSum)&&(M.y=ea(A))}}processData(h){let u,f,M,A,w,L,I=this.options,D=this.getColumn("y"),z=I.data,N=D.length,G=I.threshold||0;M=f=A=w=0;for(let F=0;F<N;F++)L=D[F],u=z?.[F]||{},L==="sum"||u.isSum?D[F]=ea(M):L==="intermediateSum"||u.isIntermediateSum?(D[F]=ea(f),f=0):(M+=L,f+=L),A=Math.min(M,A),w=Math.max(M,w);super.processData.call(this,h),I.stacking||(this.dataMin=A+G,this.dataMax=w)}toYData(h){return h.isSum?"sum":h.isIntermediateSum?"intermediateSum":h.y}pointAttribs(h,u){let f=this.options.upColor;f&&!h.options.color&&eo(h.y)&&(h.color=h.y>0?f:void 0);let M=to.prototype.pointAttribs.call(this,h,u);return delete M.dashstyle,M}getGraphPath(){return[["M",0,0]]}getCrispPath(){let h=this.data.filter(D=>eo(D.y)),u=this.yAxis,f=h.length,M=this.graph?.strokeWidth()||0,A=this.xAxis.reversed,w=this.yAxis.reversed,L=this.options.stacking,I=[];for(let D=1;D<f;D++){if(!(this.options.connectNulls||eo(this.data[h[D].index-1].y)))continue;let z=h[D].box,N=h[D-1],G=N.y||0,F=h[D-1].box;if(!z||!F)continue;let Q=u.waterfall.stacks[this.stackKey],et=G>0?-F.height:0;if(Q&&F&&z){let q,st=Q[D-1];if(L){let _=st.connectorThreshold;q=Tr(u.translate(_,!1,!0,!1,!0)+(w?et:0),M)}else q=Tr(F.y+(N.minPointLengthOffset||0),M);I.push(["M",(F.x||0)+(A?0:F.width||0),q],["L",(z.x||0)+(A&&z.width||0),q])}if(F&&I.length&&(!L&&G<0&&!w||G>0&&w)){let q=I[I.length-2];q&&typeof q[2]=="number"&&(q[2]+=F.height||0);let st=I[I.length-1];st&&typeof st[2]=="number"&&(st[2]+=F.height||0)}}return I}drawGraph(){tl.prototype.drawGraph.call(this),this.graph&&this.graph.attr({d:this.getCrispPath()})}setStackedPoints(h){let u=this.options,f=h.waterfall?.stacks,M=u.threshold||0,A=this.stackKey,w=this.getColumn("x"),L=this.getColumn("y"),I=w.length,D=M,z=D,N,G=0,F=0,Q=0,et,q,st,_,St,gt,Rt,Et,xt=(It,le,J,lt)=>{if(N){if(et)for(;J<et;J++)N.stackState[J]+=lt;else N.stackState[0]=It,et=N.stackState.length;N.stackState.push(N.stackState[et-1]+le)}};if(h.stacking&&f&&this.reserveSpace()){Et=f.changed,(Rt=f.alreadyChanged)&&0>Rt.indexOf(A)&&(Et=!0),f[A]||(f[A]={});let It=f[A];if(It)for(let le=0;le<I;le++)(!It[gt=w[le]]||Et)&&(It[gt]={negTotal:0,posTotal:0,stackTotal:0,threshold:0,stateIndex:0,stackState:[],label:Et&&It[gt]?It[gt].label:void 0}),N=It[gt],(St=L[le])>=0?N.posTotal+=St:N.negTotal+=St,_=u.data[le],q=N.absolutePos=N.posTotal,st=N.absoluteNeg=N.negTotal,N.stackTotal=q+st,et=N.stackState.length,_?.isIntermediateSum?(xt(Q,F,0,Q),Q=F,F=M,D^=z,z^=D,D^=z):_?.isSum?(xt(M,G,et,0),D=M):(xt(D,St,0,G),_&&(G+=St,F+=St)),N.stateIndex++,N.threshold=D,D+=N.stackTotal;f.changed=!1,f.alreadyChanged||(f.alreadyChanged=[]),f.alreadyChanged.push(A)}}getExtremes(){let h,u,f,M=this.options.stacking;return M?(h=this.yAxis.waterfall.stacks,u=this.stackedYNeg=[],f=this.stackedYPos=[],M==="overlap"?Ja(h[this.stackKey],function(A){u.push(Za(A.stackState)),f.push($a(A.stackState))}):Ja(h[this.stackKey],function(A){u.push(A.negTotal+A.threshold),f.push(A.posTotal+A.threshold)}),{dataMin:Za(u),dataMax:$a(f)}):{dataMin:this.dataMin,dataMax:this.dataMax}}}li.defaultOptions=Qa(to.defaultOptions,{dataLabels:{inside:!0},lineWidth:1,lineColor:"#333333",dashStyle:"Dot",borderColor:"#333333",states:{hover:{lineWidthPlus:0}}}),li.compose=Kn.compose,Ka(li.prototype,{pointValKey:"y",showLine:!0,pointClass:Jn}),qa(li,"afterColumnTranslate",function(){let{options:b,points:h,yAxis:u}=this,f=tn(b.minPointLength,5),M=f/2,A=b.threshold||0,w=b.stacking,L=u.waterfall.stacks[this.stackKey],I=this.getColumn("y",!0),D=A,z=A,N,G,F,Q;for(let et=0;et<h.length;et++){let q=h[et],st=I[et],_=Ka({x:0,y:0,width:0,height:0},q.shapeArgs||{});q.box=_;let St=[0,st],gt=q.y||0;if(w){if(L){let xt=L[et];w==="overlap"?(G=xt.stackState[xt.stateIndex--],N=gt>=0?G:G-gt,sr(xt,"absolutePos")&&delete xt.absolutePos,sr(xt,"absoluteNeg")&&delete xt.absoluteNeg):(gt>=0?(G=xt.threshold+xt.posTotal,xt.posTotal-=gt,N=G):(G=xt.threshold+xt.negTotal,xt.negTotal-=gt,N=G-gt),!xt.posTotal&&eo(xt.absolutePos)&&sr(xt,"absolutePos")&&(xt.posTotal=xt.absolutePos,delete xt.absolutePos),!xt.negTotal&&eo(xt.absoluteNeg)&&sr(xt,"absoluteNeg")&&(xt.negTotal=xt.absoluteNeg,delete xt.absoluteNeg)),q.isSum||(xt.connectorThreshold=xt.threshold+xt.stackTotal),u.reversed?(F=gt>=0?N-gt:N+gt,Q=N):(F=N,Q=N-gt),q.below=F<=A,_.y=u.translate(F,!1,!0,!1,!0),_.height=Math.abs(_.y-u.translate(Q,!1,!0,!1,!0));let It=u.waterfall.dummyStackItem;It&&(It.x=et,It.label=L[et].label,It.setOffset(this.pointXOffset||0,this.barW||0,this.stackedYNeg[et],this.stackedYPos[et],void 0,this.xAxis))}}else N=Math.max(z,z+gt)+St[0],_.y=u.translate(N,!1,!0,!1,!0),q.isSum?(_.y=u.translate(St[1],!1,!0,!1,!0),_.height=Math.min(u.translate(St[0],!1,!0,!1,!0),u.len)-_.y,q.below=St[1]<=A):q.isIntermediateSum?(gt>=0?(F=St[1]+D,Q=D):(F=D,Q=St[1]+D),u.reversed&&(F^=Q,Q^=F,F^=Q),_.y=u.translate(F,!1,!0,!1,!0),_.height=Math.abs(_.y-Math.min(u.translate(Q,!1,!0,!1,!0),u.len)),D+=St[1],q.below=F<=A):(_.height=st>0?u.translate(z,!1,!0,!1,!0)-_.y:u.translate(z,!1,!0,!1,!0)-u.translate(z-st,!1,!0,!1,!0),q.below=(z+=st)<A),_.height<0&&(_.y+=_.height,_.height*=-1);q.plotY=_.y,q.yBottom=_.y+_.height,_.height<=f&&!q.isNull?(_.height=f,_.y-=M,q.yBottom=_.y+_.height,q.plotY=_.y,gt<0?q.minPointLengthOffset=-M:q.minPointLengthOffset=M):(q.isNull&&(_.width=0),q.minPointLengthOffset=0);let Rt=q.plotY+(q.negative?_.height:0);q.below&&(q.plotY+=_.height),q.tooltipPos&&(this.chart.inverted?q.tooltipPos[0]=u.len-Rt:q.tooltipPos[1]=Rt),q.isInside=this.isPointInside(q);let Et=Tr(q.yBottom,this.borderWidth);_.y=Tr(_.y,this.borderWidth),_.height=Et-_.y,Qa(!0,q.shapeArgs,_)}},{order:2}),ft().registerSeriesType("waterfall",li);let Be=ut();Be.RadialAxis=qr,Re.compose(Be.Axis,Be.Chart,Be.Legend),zi.compose(Be.Axis,Be.Chart,Be.Legend),Gs.compose(Be.Chart,Be.Pointer),Ot.compose(Be.Axis,Be.Chart,Be.Pointer,Be.Series,Be.Tick,Be.Point,ft().seriesTypes.areasplinerange,ft().seriesTypes.column,ft().seriesTypes.line,ft().seriesTypes.spline),li.compose(Be.Axis,Be.Chart);let el=Be;return vs.default})())});var ad=Mn((xa,Wl)=>{(function(dt,qt){typeof xa=="object"&&typeof Wl=="object"?Wl.exports=qt(dt._Highcharts,dt._Highcharts.Color):typeof define=="function"&&define.amd?define("highcharts/modules/boost",["highcharts/highcharts"],function(ie){return qt(ie,ie.Color)}):typeof xa=="object"?xa["highcharts/modules/boost"]=qt(dt._Highcharts,dt._Highcharts.Color):dt.Highcharts=qt(dt.Highcharts,dt.Highcharts.Color)})(typeof window>"u"?xa:window,(dt,qt)=>(()=>{"use strict";let ie,Hi;var Ae,xs={620:C=>{C.exports=qt},944:C=>{C.exports=dt}},bs={};function Pe(C){var S=bs[C];if(S!==void 0)return S.exports;var E=bs[C]={exports:{}};return xs[C](E,E.exports,Pe),E.exports}Pe.n=C=>{var S=C&&C.__esModule?()=>C.default:()=>C;return Pe.d(S,{a:S}),S},Pe.d=(C,S)=>{for(var E in S)Pe.o(S,E)&&!Pe.o(C,E)&&Object.defineProperty(C,E,{enumerable:!0,get:S[E]})},Pe.o=(C,S)=>Object.prototype.hasOwnProperty.call(C,S);var ys={};Pe.d(ys,{default:()=>Wr});var Ws=Pe(944),ce=Pe.n(Ws);let Fi=["area","areaspline","arearange","column","columnrange","bar","line","scatter","heatmap","bubble","treemap"],Mi={};Fi.forEach(C=>{Mi[C]=!0});let{composed:Hs}=ce(),{addEvent:Ei,pick:Bt,pushUnique:vs}=ce();function es(C){let S=C.series,E=C.boost=C.boost||{},H=C.options.boost||{},W=Bt(H.seriesThreshold,50);if(S.length>=W)return!0;if(S.length===1)return!1;let tt=H.allowForce;if(tt===void 0){for(let U of(tt=!0,C.xAxis))if(Bt(U.min,-1/0)>Bt(U.dataMin,-1/0)||Bt(U.max,1/0)<Bt(U.dataMax,1/0)){tt=!1;break}}if(E.forceChartBoost!==void 0){if(tt)return E.forceChartBoost;E.forceChartBoost=void 0}let it=0,K=0,ot;for(let U of S)(ot=U.options).boostThreshold!==0&&U.visible!==!1&&U.type!=="heatmap"&&(Mi[U.type]&&++it,(function(...Nt){let kt=-Number.MAX_VALUE;return Nt.forEach(ae=>{if(ae!=null&&ae.length!==void 0&&ae.length>0)return kt=ae.length,!0}),kt})(U.getColumn("x",!0),ot.data,U.points)>=(ot.boostThreshold||Number.MAX_VALUE)&&++K);return E.forceChartBoost=tt&&(it===S.length&&K===it||K>5),E.forceChartBoost}function ut(C){function S(){C.boost&&C.boost.wgl&&es(C)&&C.boost.wgl.render(C)}Ei(C,"predraw",function(){C.boost=C.boost||{},C.boost.forceChartBoost=void 0,C.boosted=!1,C.axes.some(W=>W.isPanning)||C.boost.clear?.(),C.boost.canvas&&C.boost.wgl&&es(C)&&C.boost.wgl.allocateBuffer(C),C.boost.markerGroup&&C.xAxis&&C.xAxis.length>0&&C.yAxis&&C.yAxis.length>0&&C.boost.markerGroup.translate(C.xAxis[0].pos,C.yAxis[0].pos)}),Ei(C,"load",S,{order:-1}),Ei(C,"redraw",S);let E=-1,H=-1;Ei(C.pointer,"afterGetHoverData",W=>{let tt=W.hoverPoint?.series;if(C.boost=C.boost||{},C.boost.markerGroup&&tt){let it=C.inverted?tt.yAxis:tt.xAxis,K=C.inverted?tt.xAxis:tt.yAxis;(it&&it.pos!==E||K&&K.pos!==H)&&(C.series.forEach(ot=>{ot.halo?.hide()}),C.boost.markerGroup.translate(it.pos,K.pos),E=it.pos,H=K.pos)}})}let ks={compose:function(C,S){return S&&vs(Hs,"Boost.Chart")&&C.prototype.callbacks.push(ut),C},getBoostClipRect:function(C,S){let E=C.navigator,H={x:C.plotLeft,y:C.plotTop,width:C.plotWidth,height:C.plotHeight};if(E&&C.inverted?(H.width+=E.top+E.height,E.opposite||(H.x=E.left)):E&&!C.inverted&&(H.height=E.top+E.height-C.plotTop),S.is){let{xAxis:W,yAxis:tt}=S;if(H=C.getClipBox(S),C.inverted){let it=H.width;H.width=H.height,H.height=it,H.x=tt.pos,H.y=W.pos}else H.x=W.pos,H.y=tt.pos}if(S===C){let W=C.inverted?C.xAxis:C.yAxis;W.length<=1&&(H.y=Math.min(W[0].pos,H.y),H.height=W[0].pos-C.plotTop+W[0].len)}return H},isChartSeriesBoosting:es};var ft=Pe(620),Zt=Pe.n(ft);let V={area:"LINES",arearange:"LINES",areaspline:"LINES",column:"LINES",columnrange:"LINES",bar:"LINES",line:"LINE_STRIP",scatter:"POINTS",heatmap:"TRIANGLES",treemap:"TRIANGLES",bubble:"POINTS"},{clamp:is,error:ro,pick:wi}=ce(),Gi=class{constructor(C){this.errors=[],this.uLocations={},this.gl=C,C&&this.createShader()}bind(){this.gl&&this.shaderProgram&&this.gl.useProgram(this.shaderProgram)}createShader(){let C=this.stringToProgram(`#version 100
|
|
3
|
+
#define LN10 2.302585092994046
|
|
4
|
+
precision highp float;
|
|
5
|
+
attribute vec4 aVertexPosition;
|
|
6
|
+
attribute vec4 aColor;
|
|
7
|
+
varying highp vec2 position;
|
|
8
|
+
varying highp vec4 vColor;
|
|
9
|
+
uniform mat4 uPMatrix;
|
|
10
|
+
uniform float pSize;
|
|
11
|
+
uniform float translatedThreshold;
|
|
12
|
+
uniform bool hasThreshold;
|
|
13
|
+
uniform bool skipTranslation;
|
|
14
|
+
uniform float xAxisTrans;
|
|
15
|
+
uniform float xAxisMin;
|
|
16
|
+
uniform float xAxisMinPad;
|
|
17
|
+
uniform float xAxisPointRange;
|
|
18
|
+
uniform float xAxisLen;
|
|
19
|
+
uniform bool xAxisPostTranslate;
|
|
20
|
+
uniform float xAxisOrdinalSlope;
|
|
21
|
+
uniform float xAxisOrdinalOffset;
|
|
22
|
+
uniform float xAxisPos;
|
|
23
|
+
uniform bool xAxisCVSCoord;
|
|
24
|
+
uniform bool xAxisIsLog;
|
|
25
|
+
uniform bool xAxisReversed;
|
|
26
|
+
uniform float yAxisTrans;
|
|
27
|
+
uniform float yAxisMin;
|
|
28
|
+
uniform float yAxisMinPad;
|
|
29
|
+
uniform float yAxisPointRange;
|
|
30
|
+
uniform float yAxisLen;
|
|
31
|
+
uniform bool yAxisPostTranslate;
|
|
32
|
+
uniform float yAxisOrdinalSlope;
|
|
33
|
+
uniform float yAxisOrdinalOffset;
|
|
34
|
+
uniform float yAxisPos;
|
|
35
|
+
uniform bool yAxisCVSCoord;
|
|
36
|
+
uniform bool yAxisIsLog;
|
|
37
|
+
uniform bool yAxisReversed;
|
|
38
|
+
uniform bool isBubble;
|
|
39
|
+
uniform bool bubbleSizeByArea;
|
|
40
|
+
uniform float bubbleZMin;
|
|
41
|
+
uniform float bubbleZMax;
|
|
42
|
+
uniform float bubbleZThreshold;
|
|
43
|
+
uniform float bubbleMinSize;
|
|
44
|
+
uniform float bubbleMaxSize;
|
|
45
|
+
uniform bool bubbleSizeAbs;
|
|
46
|
+
uniform bool isInverted;
|
|
47
|
+
float bubbleRadius(){
|
|
48
|
+
float value = aVertexPosition.w;
|
|
49
|
+
float zMax = bubbleZMax;
|
|
50
|
+
float zMin = bubbleZMin;
|
|
51
|
+
float radius = 0.0;
|
|
52
|
+
float pos = 0.0;
|
|
53
|
+
float zRange = zMax - zMin;
|
|
54
|
+
if (bubbleSizeAbs){
|
|
55
|
+
value = value - bubbleZThreshold;
|
|
56
|
+
zMax = max(zMax - bubbleZThreshold, zMin - bubbleZThreshold);
|
|
57
|
+
zMin = 0.0;
|
|
58
|
+
}
|
|
59
|
+
if (value < zMin){
|
|
60
|
+
radius = bubbleZMin / 2.0 - 1.0;
|
|
61
|
+
} else {
|
|
62
|
+
pos = zRange > 0.0 ? (value - zMin) / zRange : 0.5;
|
|
63
|
+
if (bubbleSizeByArea && pos > 0.0){
|
|
64
|
+
pos = sqrt(pos);
|
|
65
|
+
}
|
|
66
|
+
radius = ceil(bubbleMinSize + pos * (bubbleMaxSize - bubbleMinSize)) / 2.0;
|
|
67
|
+
}
|
|
68
|
+
return radius * 2.0;
|
|
69
|
+
}
|
|
70
|
+
float translate(float val,
|
|
71
|
+
float pointPlacement,
|
|
72
|
+
float localA,
|
|
73
|
+
float localMin,
|
|
74
|
+
float minPixelPadding,
|
|
75
|
+
float pointRange,
|
|
76
|
+
float len,
|
|
77
|
+
bool cvsCoord,
|
|
78
|
+
bool isLog,
|
|
79
|
+
bool reversed
|
|
80
|
+
){
|
|
81
|
+
float sign = 1.0;
|
|
82
|
+
float cvsOffset = 0.0;
|
|
83
|
+
if (cvsCoord) {
|
|
84
|
+
sign *= -1.0;
|
|
85
|
+
cvsOffset = len;
|
|
86
|
+
}
|
|
87
|
+
if (isLog) {
|
|
88
|
+
val = log(val) / LN10;
|
|
89
|
+
}
|
|
90
|
+
if (reversed) {
|
|
91
|
+
sign *= -1.0;
|
|
92
|
+
cvsOffset -= sign * len;
|
|
93
|
+
}
|
|
94
|
+
return sign * (val - localMin) * localA + cvsOffset +
|
|
95
|
+
(sign * minPixelPadding);
|
|
96
|
+
}
|
|
97
|
+
float xToPixels(float value) {
|
|
98
|
+
if (skipTranslation){
|
|
99
|
+
return value;// + xAxisPos;
|
|
100
|
+
}
|
|
101
|
+
return translate(value, 0.0, xAxisTrans, xAxisMin, xAxisMinPad, xAxisPointRange, xAxisLen, xAxisCVSCoord, xAxisIsLog, xAxisReversed);// + xAxisPos;
|
|
102
|
+
}
|
|
103
|
+
float yToPixels(float value, float checkTreshold) {
|
|
104
|
+
float v;
|
|
105
|
+
if (skipTranslation){
|
|
106
|
+
v = value;// + yAxisPos;
|
|
107
|
+
} else {
|
|
108
|
+
v = translate(value, 0.0, yAxisTrans, yAxisMin, yAxisMinPad, yAxisPointRange, yAxisLen, yAxisCVSCoord, yAxisIsLog, yAxisReversed);// + yAxisPos;
|
|
109
|
+
if (v > yAxisLen) {
|
|
110
|
+
v = yAxisLen;
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
if (checkTreshold > 0.0 && hasThreshold) {
|
|
114
|
+
v = min(v, translatedThreshold);
|
|
115
|
+
}
|
|
116
|
+
return v;
|
|
117
|
+
}
|
|
118
|
+
void main(void) {
|
|
119
|
+
if (isBubble){
|
|
120
|
+
gl_PointSize = bubbleRadius();
|
|
121
|
+
} else {
|
|
122
|
+
gl_PointSize = pSize;
|
|
123
|
+
}
|
|
124
|
+
vColor = aColor;
|
|
125
|
+
if (skipTranslation && isInverted) {
|
|
126
|
+
gl_Position = uPMatrix * vec4(aVertexPosition.y + yAxisPos, aVertexPosition.x + xAxisPos, 0.0, 1.0);
|
|
127
|
+
} else if (isInverted) {
|
|
128
|
+
gl_Position = uPMatrix * vec4(yToPixels(aVertexPosition.y, aVertexPosition.z) + yAxisPos, xToPixels(aVertexPosition.x) + xAxisPos, 0.0, 1.0);
|
|
129
|
+
} else {
|
|
130
|
+
gl_Position = uPMatrix * vec4(xToPixels(aVertexPosition.x) + xAxisPos, yToPixels(aVertexPosition.y, aVertexPosition.z) + yAxisPos, 0.0, 1.0);
|
|
131
|
+
}
|
|
132
|
+
}`,"vertex"),S=this.stringToProgram(`precision highp float;
|
|
133
|
+
uniform vec4 fillColor;
|
|
134
|
+
varying highp vec2 position;
|
|
135
|
+
varying highp vec4 vColor;
|
|
136
|
+
uniform sampler2D uSampler;
|
|
137
|
+
uniform bool isCircle;
|
|
138
|
+
uniform bool hasColor;
|
|
139
|
+
void main(void) {
|
|
140
|
+
vec4 col = fillColor;
|
|
141
|
+
vec4 tcol = texture2D(uSampler, gl_PointCoord.st);
|
|
142
|
+
if (hasColor) {
|
|
143
|
+
col = vColor;
|
|
144
|
+
}
|
|
145
|
+
if (isCircle) {
|
|
146
|
+
col *= tcol;
|
|
147
|
+
if (tcol.r < 0.0) {
|
|
148
|
+
discard;
|
|
149
|
+
} else {
|
|
150
|
+
gl_FragColor = col;
|
|
151
|
+
}
|
|
152
|
+
} else {
|
|
153
|
+
gl_FragColor = col;
|
|
154
|
+
}
|
|
155
|
+
}`,"fragment"),E=H=>this.gl.getUniformLocation(this.shaderProgram,H);return C&&S?(this.shaderProgram=this.gl.createProgram(),this.gl.attachShader(this.shaderProgram,C),this.gl.attachShader(this.shaderProgram,S),this.gl.linkProgram(this.shaderProgram),this.gl.getProgramParameter(this.shaderProgram,this.gl.LINK_STATUS)?(this.gl.useProgram(this.shaderProgram),this.gl.bindAttribLocation(this.shaderProgram,0,"aVertexPosition"),this.pUniform=E("uPMatrix"),this.psUniform=E("pSize"),this.fcUniform=E("fillColor"),this.isBubbleUniform=E("isBubble"),this.bubbleSizeAbsUniform=E("bubbleSizeAbs"),this.bubbleSizeAreaUniform=E("bubbleSizeByArea"),this.uSamplerUniform=E("uSampler"),this.skipTranslationUniform=E("skipTranslation"),this.isCircleUniform=E("isCircle"),this.isInverted=E("isInverted"),!0):(this.errors.push(this.gl.getProgramInfoLog(this.shaderProgram)),this.handleErrors(),this.shaderProgram=!1,!1)):(this.shaderProgram=!1,this.handleErrors(),!1)}handleErrors(){this.errors.length&&ro("[highcharts boost] shader error - "+this.errors.join(`
|
|
156
|
+
`))}stringToProgram(C,S){let E=this.gl.createShader(S==="vertex"?this.gl.VERTEX_SHADER:this.gl.FRAGMENT_SHADER);return this.gl.shaderSource(E,C),this.gl.compileShader(E),this.gl.getShaderParameter(E,this.gl.COMPILE_STATUS)?E:(this.errors.push("when compiling "+S+` shader:
|
|
157
|
+
`+this.gl.getShaderInfoLog(E)),!1)}destroy(){this.gl&&this.shaderProgram&&(this.gl.deleteProgram(this.shaderProgram),this.shaderProgram=!1)}fillColorUniform(){return this.fcUniform}getProgram(){return this.shaderProgram}pointSizeUniform(){return this.psUniform}perspectiveUniform(){return this.pUniform}reset(){this.gl&&this.shaderProgram&&(this.gl.uniform1i(this.isBubbleUniform,0),this.gl.uniform1i(this.isCircleUniform,0))}setBubbleUniforms(C,S,E,H=1){let W=C.options,tt=Number.MAX_VALUE,it=-Number.MAX_VALUE;if(this.gl&&this.shaderProgram&&C.is("bubble")){let K=C.getPxExtremes();tt=wi(W.zMin,is(S,W.displayNegative===!1?W.zThreshold:-Number.MAX_VALUE,tt)),it=wi(W.zMax,Math.max(it,E)),this.gl.uniform1i(this.isBubbleUniform,1),this.gl.uniform1i(this.isCircleUniform,1),this.gl.uniform1i(this.bubbleSizeAreaUniform,C.options.sizeBy!=="width"),this.gl.uniform1i(this.bubbleSizeAbsUniform,C.options.sizeByAbsoluteValue),this.setUniform("bubbleMinSize",K.minPxSize*H),this.setUniform("bubbleMaxSize",K.maxPxSize*H),this.setUniform("bubbleZMin",tt),this.setUniform("bubbleZMax",it),this.setUniform("bubbleZThreshold",C.options.zThreshold)}}setColor(C){this.gl&&this.shaderProgram&&this.gl.uniform4f(this.fcUniform,C[0]/255,C[1]/255,C[2]/255,C[3])}setDrawAsCircle(C){this.gl&&this.shaderProgram&&this.gl.uniform1i(this.isCircleUniform,+!!C)}setInverted(C){this.gl&&this.shaderProgram&&this.gl.uniform1i(this.isInverted,C)}setPMatrix(C){this.gl&&this.shaderProgram&&this.gl.uniformMatrix4fv(this.pUniform,!1,C)}setPointSize(C){this.gl&&this.shaderProgram&&this.gl.uniform1f(this.psUniform,C)}setSkipTranslation(C){this.gl&&this.shaderProgram&&this.gl.uniform1i(this.skipTranslationUniform,+(C===!0))}setTexture(C){this.gl&&this.shaderProgram&&this.gl.uniform1i(this.uSamplerUniform,C)}setUniform(C,S){if(this.gl&&this.shaderProgram){let E=this.uLocations[C]=this.uLocations[C]||this.gl.getUniformLocation(this.shaderProgram,C);this.gl.uniform1f(E,S)}}},To=class{constructor(C,S,E){this.buffer=!1,this.iterator=0,this.preAllocated=!1,this.vertAttribute=!1,this.components=E||2,this.dataComponents=E,this.gl=C,this.shader=S}allocate(C){this.iterator=-1,this.preAllocated=new Float32Array(4*C)}bind(){if(!this.buffer)return!1;this.gl.vertexAttribPointer(this.vertAttribute,this.components,this.gl.FLOAT,!1,0,0)}build(C,S,E){let H;return this.data=C||[],this.data&&this.data.length!==0||this.preAllocated?(this.components=E||this.components,this.buffer&&this.gl.deleteBuffer(this.buffer),this.preAllocated||(H=new Float32Array(this.data)),this.buffer=this.gl.createBuffer(),this.gl.bindBuffer(this.gl.ARRAY_BUFFER,this.buffer),this.gl.bufferData(this.gl.ARRAY_BUFFER,this.preAllocated||H,this.gl.STATIC_DRAW),this.vertAttribute=this.gl.getAttribLocation(this.shader.getProgram(),S),this.gl.enableVertexAttribArray(this.vertAttribute),H=!1,!0):(this.destroy(),!1)}destroy(){this.buffer&&(this.gl.deleteBuffer(this.buffer),this.buffer=!1,this.vertAttribute=!1),this.iterator=0,this.components=this.dataComponents||2,this.data=[]}push(C,S,E,H){this.preAllocated&&(this.preAllocated[++this.iterator]=C,this.preAllocated[++this.iterator]=S,this.preAllocated[++this.iterator]=E,this.preAllocated[++this.iterator]=H)}render(C,S,E){let H=this.preAllocated?this.preAllocated.length:this.data.length;return!!this.buffer&&!!H&&((!C||C>H||C<0)&&(C=0),(!S||S>H)&&(S=H),!(C>=S)&&(E=E||"POINTS",this.gl.drawArrays(this.gl[E],C/this.components,(S-C)/this.components),!0))}},{parse:Ai}=Zt(),{doc:Ms,win:Ui}=ce(),{isNumber:ao,isObject:dr,merge:Co,objectEach:ji,pick:Fs}=ce(),Lo={column:!0,columnrange:!0,bar:!0,area:!0,areaspline:!0,arearange:!0},ws={scatter:!0,bubble:!0},ss=["webgl","experimental-webgl","moz-webgl","webkit-3d"];class Vi{static orthoMatrix(S,E){return[2/S,0,0,0,0,-(2/E),0,0,0,0,-2,0,-1,1,-1,1]}static seriesPointCount(S){let E,H,W;return S.boosted?(E=!!S.options.stacking,H=(S.getColumn("x").length?S.getColumn("x"):void 0)||S.options.xData||S.getColumn("x",!0),W=(E?S.data:H||S.options.data).length,S.type==="treemap"?W*=12:S.type==="heatmap"?W*=6:Lo[S.type]&&(W*=2),W):0}constructor(S){this.data=[],this.height=0,this.isInited=!1,this.markerData=[],this.series=[],this.textureHandles={},this.width=0,this.postRenderCallback=S,this.settings={pointSize:1,lineWidth:1,fillColor:"#AA00AA",useAlpha:!0,usePreallocated:!1,useGPUTranslations:!1,debug:{timeRendering:!1,timeSeriesProcessing:!1,timeSetup:!1,timeBufferCopy:!1,timeKDTree:!1,showSkipSummary:!1}}}getPixelRatio(){return this.settings.pixelRatio||Ui.devicePixelRatio||1}setOptions(S){"pixelRatio"in S||(S.pixelRatio=1),Co(!0,this.settings,S)}allocateBuffer(S){let E=this.vbuffer,H=0;this.settings.usePreallocated&&(S.series.forEach(W=>{W.boosted&&(H+=Vi.seriesPointCount(W))}),E&&E.allocate(H))}allocateBufferForSingleSeries(S){let E=this.vbuffer,H=0;this.settings.usePreallocated&&(S.boosted&&(H=Vi.seriesPointCount(S)),E&&E.allocate(H))}clear(){let S=this.gl;S&&S.clear(S.COLOR_BUFFER_BIT|S.DEPTH_BUFFER_BIT)}pushSeriesData(S,E){let H=this.data,W=this.settings,tt=this.vbuffer,it=S.pointArrayMap&&S.pointArrayMap.join(",")==="low,high",{chart:K,options:ot,sorted:U,xAxis:Nt,yAxis:kt}=S,ae=!!ot.stacking,pe=ot.data,Se=S.xAxis.getExtremes(),ye=Se.min-(S.xAxis.minPointOffset||0),xe=Se.max+(S.xAxis.minPointOffset||0),De=S.yAxis.getExtremes(),Fe=De.min-(S.yAxis.minPointOffset||0),ge=De.max+(S.yAxis.minPointOffset||0),di=(S.getColumn("x").length?S.getColumn("x"):void 0)||ot.xData||S.getColumn("x",!0),Pt=(S.getColumn("y").length?S.getColumn("y"):void 0)||ot.yData||S.getColumn("y",!0),Jt=(S.getColumn("z").length?S.getColumn("z"):void 0)||ot.zData||S.getColumn("z",!0),ci=!di||di.length===0,ve=ot.connectNulls,si=S.points||!1,Te=ae?S.data:di||pe,Ge={x:Number.MAX_VALUE,y:0},Re={x:-Number.MAX_VALUE,y:0},Ho=K.index===void 0,ns=Lo[S.type],qs=ot.zoneAxis||"y",Ri=ot.zones||!1,Si=ot.threshold,yi=this.getPixelRatio(),pi=S.chart.plotWidth,oi=!1,Ee=!1,fe,ri,ke=0,Ue=!1,Yt,Wt,Dt,je,Vt=-1,ai=!1,Ve=!1,Ke,ho=!1,Cs=!1,Qe=!1,Fo=!1,Ls=!0,co=!0,Es,Je=!1,po=!1,ni=0;if(ot.boostData&&ot.boostData.length>0)return;ot.gapSize&&(po=ot.gapUnit!=="value"?ot.gapSize*S.closestPointRange:ot.gapSize),Ri&&(Es=[],Ri.forEach((wt,Ut)=>{if(wt.color){let ne=Ai(wt.color).rgba;ne[0]/=255,ne[1]/=255,ne[2]/=255,Es[Ut]=ne,Je||wt.value!==void 0||(Je=ne)}}),Je||(Je=Ai(S.pointAttribs&&S.pointAttribs().fill||S.color).rgba,Je[0]/=255,Je[1]/=255,Je[2]/=255)),K.inverted&&(pi=S.chart.plotHeight),S.closestPointRangePx=Number.MAX_VALUE;let qi=wt=>{wt&&(E.colorData.push(wt[0]),E.colorData.push(wt[1]),E.colorData.push(wt[2]),E.colorData.push(wt[3]))},ti=(wt,Ut,ne,Ce=1,Kt)=>{qi(Kt),yi!==1&&(!W.useGPUTranslations||E.skipTranslation)&&(wt*=yi,Ut*=yi,Ce*=yi),W.usePreallocated&&tt?(tt.push(wt,Ut,+!!ne,Ce),ni+=4):(H.push(wt),H.push(Ut),H.push(ne?yi:0),H.push(Ce))},ls=()=>{E.segments.length&&(E.segments[E.segments.length-1].to=H.length||ni)},Os=()=>{(!E.segments.length||E.segments[E.segments.length-1].from!==(H.length||ni))&&(ls(),E.segments.push({from:H.length||ni}))},$s=(wt,Ut,ne,Ce,Kt)=>{qi(Kt),ti(wt+ne,Ut),qi(Kt),ti(wt,Ut),qi(Kt),ti(wt,Ut+Ce),qi(Kt),ti(wt,Ut+Ce),qi(Kt),ti(wt+ne,Ut+Ce),qi(Kt),ti(wt+ne,Ut)};if(Os(),si&&si.length>0){E.skipTranslation=!0,E.drawMode="TRIANGLES",si[0].node&&si[0].node.levelDynamic&&si.sort((wt,Ut)=>{if(wt.node){if(wt.node.levelDynamic>Ut.node.levelDynamic)return 1;if(wt.node.levelDynamic<Ut.node.levelDynamic)return-1}return 0}),si.forEach(wt=>{let Ut,ne,Ce=wt.plotY;if(Ce!==void 0&&!isNaN(Ce)&&wt.y!==null&&wt.shapeArgs){let{x:Kt=0,y:ui=0,width:hs=0,height:$i=0}=wt.shapeArgs;Ut=(ne=K.styledMode?wt.series.colorAttribs(wt):ne=wt.series.pointAttribs(wt))["stroke-width"]||0,Qe=Ai(ne.fill).rgba,Qe[0]/=255,Qe[1]/=255,Qe[2]/=255,S.is("treemap")&&(Ut=Ut||1,ri=Ai(ne.stroke).rgba,ri[0]/=255,ri[1]/=255,ri[2]/=255,$s(Kt,ui,hs,$i,ri),Ut/=2),S.is("heatmap")&&K.inverted&&(Kt=Nt.len-Kt,ui=kt.len-ui,hs=-hs,$i=-$i),$s(Kt+Ut,ui+Ut,hs-2*Ut,$i-2*Ut,Qe)}}),ls();return}for(;Vt<Te.length-1;){if((Dt=Te[++Vt])===void 0)continue;if(Ho)break;let wt=pe&&pe[Vt];if(!ci&&dr(wt,!0)&&wt.color&&(Qe=Ai(wt.color).rgba,Qe[0]/=255,Qe[1]/=255,Qe[2]/=255),ci?(Yt=Dt[0],Wt=Dt[1],Te[Vt+1]&&(Ve=Te[Vt+1][0]),Te[Vt-1]&&(ai=Te[Vt-1][0]),Dt.length>=3&&(je=Dt[2],Dt[2]>E.zMax&&(E.zMax=Dt[2]),Dt[2]<E.zMin&&(E.zMin=Dt[2]))):(Yt=Dt,Wt=Pt?.[Vt],Te[Vt+1]&&(Ve=Te[Vt+1]),Te[Vt-1]&&(ai=Te[Vt-1]),Jt&&Jt.length&&(je=Jt[Vt],Jt[Vt]>E.zMax&&(E.zMax=Jt[Vt]),Jt[Vt]<E.zMin&&(E.zMin=Jt[Vt]))),!ve&&(Yt===null||Wt===null)){Os();continue}if(Ve&&Ve>=ye&&Ve<=xe&&(ho=!0),ai&&ai>=ye&&ai<=xe&&(Cs=!0),it?(ci&&(Wt=Dt.slice(1,3)),Ke=S.getColumn("low",!0)?.[Vt],Wt=S.getColumn("high",!0)?.[Vt]||0):ae&&(Yt=Dt.x,Ke=(Wt=Dt.stackY)-Dt.y),Fe!=null&&ge!=null&&(Ls=Wt>=Fe&&Wt<=ge),!(!U&&!Ls||(Yt>xe&&Re.x<xe&&(Re.x=Yt,Re.y=Wt),Yt<ye&&Ge.x>ye&&(Ge.x=Yt,Ge.y=Wt),Wt===null&&ve))){if(Wt===null||!Ls&&Te.length>1&&!ho&&!Cs){Os();continue}if((U&&(Ve>=ye||Yt>=ye)&&(ai<=xe||Yt<=xe)||!U&&Yt>=ye&&Yt<=xe)&&(Fo=!0),Fo||ho||Cs){if(po&&Yt-ai>po&&Os(),Ri){let Ut;Ri.some((ne,Ce)=>{let Kt=Ri[Ce-1];return qs==="x"?ne.value!==void 0&&Yt<=ne.value&&(Es[Ce]&&(!Kt||Yt>=Kt.value)&&(Ut=Es[Ce]),!0):ne.value!==void 0&&Wt<=ne.value&&(Es[Ce]&&(!Kt||Wt>=Kt.value)&&(Ut=Es[Ce]),!0)}),Qe=Ut||Je||Qe}if(W.useGPUTranslations||(E.skipTranslation=!0,Yt=Nt.toPixels(Yt,!0),Wt=kt.toPixels(Wt,!0),!(Yt>pi)||E.drawMode!=="POINTS")){if(E.hasMarkers&&Fo&&oi!==!1&&(S.closestPointRangePx=Math.min(S.closestPointRangePx,Math.abs(Yt-oi))),!W.useGPUTranslations&&!W.usePreallocated&&oi&&1>Math.abs(Yt-oi)&&Ee&&1>Math.abs(Wt-Ee)){W.debug.showSkipSummary&&++ke;continue}ns&&(fe=Ke||0,(Ke===!1||Ke===void 0)&&(fe=Wt<0?Wt:0),(it||ae)&&!kt.logarithmic||(fe=Math.max(Si===null?Fe:Si,Fe)),W.useGPUTranslations||(fe=kt.toPixels(fe,!0)),ti(Yt,fe,0,0,Qe)),ot.step&&!co&&ti(Yt,Ee,0,2,Qe),ti(Yt,Wt,0,S.type==="bubble"?je||1:2,Qe),oi=Yt,Ee=Wt,Ue=!0,co=!1}}}}W.debug.showSkipSummary&&console.log("skipped points:",ke);let Go=(wt,Ut)=>{if(W.useGPUTranslations||(E.skipTranslation=!0,wt.x=Nt.toPixels(wt.x,!0),wt.y=kt.toPixels(wt.y,!0)),Ut){this.data=[wt.x,wt.y,0,2].concat(this.data);return}ti(wt.x,wt.y,0,2)};!Ue&&ve!==!1&&S.drawMode==="line_strip"&&(Ge.x<Number.MAX_VALUE&&Go(Ge,!0),Re.x>-Number.MAX_VALUE&&Go(Re)),ls()}pushSeries(S){let E=this.markerData,H=this.series,W=this.settings;H.length>0&&H[H.length-1].hasMarkers&&(H[H.length-1].markerTo=E.length),W.debug.timeSeriesProcessing&&console.time("building "+S.type+" series");let tt={segments:[],markerFrom:E.length,colorData:[],series:S,zMin:Number.MAX_VALUE,zMax:-Number.MAX_VALUE,hasMarkers:!!S.options.marker&&S.options.marker.enabled!==!1,showMarkers:!0,drawMode:V[S.type]||"LINE_STRIP"};S.index>=H.length?H.push(tt):H[S.index]=tt,this.pushSeriesData(S,tt),W.debug.timeSeriesProcessing&&console.timeEnd("building "+S.type+" series")}flush(){let S=this.vbuffer;this.data=[],this.markerData=[],this.series=[],S&&S.destroy()}setXAxis(S){let E=this.shader;if(!E)return;let H=this.getPixelRatio();E.setUniform("xAxisTrans",S.transA*H),E.setUniform("xAxisMin",S.min),E.setUniform("xAxisMinPad",S.minPixelPadding*H),E.setUniform("xAxisPointRange",S.pointRange),E.setUniform("xAxisLen",S.len*H),E.setUniform("xAxisPos",S.pos*H),E.setUniform("xAxisCVSCoord",!S.horiz),E.setUniform("xAxisIsLog",!!S.logarithmic),E.setUniform("xAxisReversed",!!S.reversed)}setYAxis(S){let E=this.shader;if(!E)return;let H=this.getPixelRatio();E.setUniform("yAxisTrans",S.transA*H),E.setUniform("yAxisMin",S.min),E.setUniform("yAxisMinPad",S.minPixelPadding*H),E.setUniform("yAxisPointRange",S.pointRange),E.setUniform("yAxisLen",S.len*H),E.setUniform("yAxisPos",S.pos*H),E.setUniform("yAxisCVSCoord",!S.horiz),E.setUniform("yAxisIsLog",!!S.logarithmic),E.setUniform("yAxisReversed",!!S.reversed)}setThreshold(S,E){let H=this.shader;H&&(H.setUniform("hasThreshold",S),H.setUniform("translatedThreshold",E))}renderChart(S){let E=this.gl,H=this.settings,W=this.shader,tt=this.vbuffer,it=this.getPixelRatio();if(!S)return!1;this.width=S.chartWidth*it,this.height=S.chartHeight*it;let K=this.height,ot=this.width;if(!E||!W||!ot||!K)return!1;H.debug.timeRendering&&console.time("gl rendering"),E.canvas.width=ot,E.canvas.height=K,W.bind(),E.viewport(0,0,ot,K),W.setPMatrix(Vi.orthoMatrix(ot,K)),H.lineWidth>1&&!ce().isMS&&E.lineWidth(H.lineWidth),tt&&(tt.build(this.data,"aVertexPosition",4),tt.bind()),W.setInverted(S.inverted),this.series.forEach((U,Nt)=>{let kt=U.series.options,ae=kt.marker,pe=kt.lineWidth!==void 0?kt.lineWidth:1,Se=kt.threshold,ye=ao(Se),xe=U.series.yAxis.getThreshold(Se),De=Fs(kt.marker?kt.marker.enabled:null,!!U.series.xAxis.isRadial||null,U.series.closestPointRangePx>2*((kt.marker?kt.marker.radius:10)||10)),Fe=this.textureHandles[ae&&ae.symbol||U.series.symbol]||this.textureHandles.circle,ge,di,Pt,Jt=[];if(U.segments.length!==0&&U.segments[0].from!==U.segments[0].to&&(Fe.isReady&&(E.bindTexture(E.TEXTURE_2D,Fe.handle),W.setTexture(Fe.handle)),S.styledMode?U.series.markerGroup===U.series.chart.boost?.markerGroup?(delete U.series.markerGroup,U.series.markerGroup=U.series.plotGroup("markerGroup","markers","visible",1,S.seriesGroup).addClass("highcharts-tracker"),Pt=U.series.markerGroup.getStyle("fill"),U.series.markerGroup.destroy(),U.series.markerGroup=U.series.chart.boost?.markerGroup):Pt=U.series.markerGroup?.getStyle("fill"):(Pt=U.drawMode==="POINTS"&&U.series.pointAttribs&&U.series.pointAttribs().fill||U.series.color,kt.colorByPoint&&(Pt=U.series.chart.options.colors[Nt])),U.series.fillOpacity&&kt.fillOpacity&&(Pt=new(Zt())(Pt).setOpacity(Fs(kt.fillOpacity,1)).get()),Jt=Ai(Pt).rgba,H.useAlpha||(Jt[3]=1),kt.boostBlending==="add"?(E.blendFunc(E.SRC_ALPHA,E.ONE),E.blendEquation(E.FUNC_ADD)):kt.boostBlending==="mult"||kt.boostBlending==="multiply"?E.blendFunc(E.DST_COLOR,E.ZERO):kt.boostBlending==="darken"?(E.blendFunc(E.ONE,E.ONE),E.blendEquation(E.FUNC_MIN)):E.blendFuncSeparate(E.SRC_ALPHA,E.ONE_MINUS_SRC_ALPHA,E.ONE,E.ONE_MINUS_SRC_ALPHA),W.reset(),U.colorData.length>0?(W.setUniform("hasColor",1),(di=new To(E,W)).build(Array(U.segments[0].from).concat(U.colorData),"aColor",4),di.bind()):(W.setUniform("hasColor",0),E.disableVertexAttribArray(E.getAttribLocation(W.getProgram(),"aColor"))),W.setColor(Jt),this.setXAxis(U.series.xAxis),this.setYAxis(U.series.yAxis),this.setThreshold(ye,xe),U.drawMode==="POINTS"&&W.setPointSize(2*Fs(kt.marker&&kt.marker.radius,.5)*it),W.setSkipTranslation(U.skipTranslation),U.series.type==="bubble"&&W.setBubbleUniforms(U.series,U.zMin,U.zMax,it),W.setDrawAsCircle(ws[U.series.type]||!1),tt)){if(pe>0||U.drawMode!=="LINE_STRIP")for(ge=0;ge<U.segments.length;ge++)tt.render(U.segments[ge].from,U.segments[ge].to,U.drawMode);if(U.hasMarkers&&De)for(W.setPointSize(2*Fs(kt.marker&&kt.marker.radius,5)*it),W.setDrawAsCircle(!0),ge=0;ge<U.segments.length;ge++)tt.render(U.segments[ge].from,U.segments[ge].to,"POINTS")}}),H.debug.timeRendering&&console.timeEnd("gl rendering"),this.postRenderCallback&&this.postRenderCallback(this),this.flush()}render(S){if(this.clear(),S.renderer.forExport)return this.renderChart(S);this.isInited?this.renderChart(S):setTimeout(()=>{this.render(S)},1)}setSize(S,E){let H=this.shader;H&&(this.width!==S||this.height!==E)&&(this.width=S,this.height=E,H.bind(),H.setPMatrix(Vi.orthoMatrix(S,E)))}init(S,E){let H=this.settings;if(this.isInited=!1,!S)return!1;H.debug.timeSetup&&console.time("gl setup");for(let K=0;K<ss.length&&(this.gl=S.getContext(ss[K],{}),!this.gl);++K);let W=this.gl;if(!W)return!1;E||this.flush(),W.enable(W.BLEND),W.blendFunc(W.SRC_ALPHA,W.ONE_MINUS_SRC_ALPHA),W.disable(W.DEPTH_TEST),W.depthFunc(W.LESS);let tt=this.shader=new Gi(W);if(!tt)return!1;this.vbuffer=new To(W,tt);let it=(K,ot)=>{let U={isReady:!1,texture:Ms.createElement("canvas"),handle:W.createTexture()},Nt=U.texture.getContext("2d");this.textureHandles[K]=U,U.texture.width=512,U.texture.height=512,Nt.mozImageSmoothingEnabled=!1,Nt.webkitImageSmoothingEnabled=!1,Nt.msImageSmoothingEnabled=!1,Nt.imageSmoothingEnabled=!1,Nt.strokeStyle="rgba(255, 255, 255, 0)",Nt.fillStyle="#FFF",ot(Nt);try{W.activeTexture(W.TEXTURE0),W.bindTexture(W.TEXTURE_2D,U.handle),W.texImage2D(W.TEXTURE_2D,0,W.RGBA,W.RGBA,W.UNSIGNED_BYTE,U.texture),W.texParameteri(W.TEXTURE_2D,W.TEXTURE_WRAP_S,W.CLAMP_TO_EDGE),W.texParameteri(W.TEXTURE_2D,W.TEXTURE_WRAP_T,W.CLAMP_TO_EDGE),W.texParameteri(W.TEXTURE_2D,W.TEXTURE_MAG_FILTER,W.LINEAR),W.texParameteri(W.TEXTURE_2D,W.TEXTURE_MIN_FILTER,W.LINEAR),W.bindTexture(W.TEXTURE_2D,null),U.isReady=!0}catch{}};return it("circle",K=>{K.beginPath(),K.arc(256,256,256,0,2*Math.PI),K.stroke(),K.fill()}),it("square",K=>{K.fillRect(0,0,512,512)}),it("diamond",K=>{K.beginPath(),K.moveTo(256,0),K.lineTo(512,256),K.lineTo(256,512),K.lineTo(0,256),K.lineTo(256,0),K.fill()}),it("triangle",K=>{K.beginPath(),K.moveTo(0,512),K.lineTo(256,0),K.lineTo(512,512),K.lineTo(0,512),K.fill()}),it("triangle-down",K=>{K.beginPath(),K.moveTo(0,0),K.lineTo(256,512),K.lineTo(512,0),K.lineTo(0,0),K.fill()}),this.isInited=!0,H.debug.timeSetup&&console.timeEnd("gl setup"),!0}destroy(){let S=this.gl,E=this.shader,H=this.vbuffer;this.flush(),H&&H.destroy(),E&&E.destroy(),S&&(ji(this.textureHandles,W=>{W.handle&&S.deleteTexture(W.handle)}),S.canvas.width=1,S.canvas.height=1)}}(function(C){C.setLength=function(S,E,H){return Array.isArray(S)?(S.length=E,S):S[H?"subarray":"slice"](0,E)},C.splice=function(S,E,H,W,tt=[]){if(Array.isArray(S))return Array.isArray(tt)||(tt=Array.from(tt)),{removed:S.splice(E,H,...tt),array:S};let it=Object.getPrototypeOf(S).constructor,K=S[W?"subarray":"slice"](E,E+H),ot=new it(S.length-H+tt.length);return ot.set(S.subarray(0,E),0),ot.set(tt,E),ot.set(S.subarray(E+H),E+tt.length),{removed:K,array:ot}}})(Ae||(Ae={}));let{setLength:no,splice:Eo}=Ae,{fireEvent:Gs,objectEach:bi,uniqueKey:Oi}=ce(),Oo=class{constructor(C={}){this.autoId=!C.id,this.columns={},this.id=C.id||Oi(),this.modified=this,this.rowCount=0,this.versionTag=Oi();let S=0;bi(C.columns||{},(E,H)=>{this.columns[H]=E.slice(),S=Math.max(S,E.length)}),this.applyRowCount(S)}applyRowCount(C){this.rowCount=C,bi(this.columns,(S,E)=>{S.length!==C&&(this.columns[E]=no(S,C))})}deleteRows(C,S=1){if(S>0&&C<this.rowCount){let E=0;bi(this.columns,(H,W)=>{this.columns[W]=Eo(H,C,S).array,E=H.length}),this.rowCount=E}Gs(this,"afterDeleteRows",{rowIndex:C,rowCount:S}),this.versionTag=Oi()}getColumn(C,S){return this.columns[C]}getColumns(C,S){return(C||Object.keys(this.columns)).reduce((E,H)=>(E[H]=this.columns[H],E),{})}getRow(C,S){return(S||Object.keys(this.columns)).map(E=>this.columns[E]?.[C])}setColumn(C,S=[],E=0,H){this.setColumns({[C]:S},E,H)}setColumns(C,S,E){let H=this.rowCount;bi(C,(W,tt)=>{this.columns[tt]=W.slice(),H=W.length}),this.applyRowCount(H),E?.silent||(Gs(this,"afterSetColumns"),this.versionTag=Oi())}setRow(C,S=this.rowCount,E,H){let{columns:W}=this,tt=E?this.rowCount+1:S+1;bi(C,(it,K)=>{let ot=W[K]||H?.addColumns!==!1&&Array(tt);ot&&(E?ot=Eo(ot,S,0,!0,[it]).array:ot[S]=it,W[K]=ot)}),tt>this.rowCount&&this.applyRowCount(tt),H?.silent||(Gs(this,"afterSetRows"),this.versionTag=Oi())}},{getBoostClipRect:As,isChartSeriesBoosting:mt}=ks,{getOptions:Nr}=ce(),{composed:Us,doc:Ii,noop:Io,win:js}=ce(),{addEvent:No,destroyObjectProperties:Ps,error:Ss,extend:Do,fireEvent:Ro,isArray:Pi,isNumber:Ne,pick:Ts,pushUnique:Dr,wrap:_i,defined:Rr}=ce();function lo(C,S){let E=S.boost;C&&E&&E.target&&E.canvas&&!mt(S.chart)&&C.allocateBufferForSingleSeries(S)}function zo(C){return Ts(C&&C.options&&C.options.boost&&C.options.boost.enabled,!0)}function Vs(C,S){let E=C.constructor,H=C.seriesGroup||S.group,W=C.chartWidth,tt=C.chartHeight,it=C,K=typeof SVGForeignObjectElement<"u",ot=!1;mt(C)?it=C:(it=S,ot=!!(S.options.events?.click||S.options.point?.events?.click));let U=it.boost=it.boost||{};if(K=!1,Hi||(Hi=Ii.createElement("canvas")),!U.target&&(U.canvas=Hi,C.renderer.forExport||!K?(it.renderTarget=U.target=C.renderer.image("",0,0,W,tt).addClass("highcharts-boost-canvas").add(H),U.clear=function(){U.target.attr({href:"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNkYAAAAAYAAjCB0C8AAAAASUVORK5CYII="})},U.copy=function(){U.resize(),U.target.attr({href:U.canvas.toDataURL("image/png")})}):(U.targetFo=C.renderer.createElement("foreignObject").add(H),it.renderTarget=U.target=Ii.createElement("canvas"),U.targetCtx=U.target.getContext("2d"),U.targetFo.element.appendChild(U.target),U.clear=function(){U.target.width=U.canvas.width,U.target.height=U.canvas.height},U.copy=function(){U.target.width=U.canvas.width,U.target.height=U.canvas.height,U.targetCtx.drawImage(U.canvas,0,0)}),U.resize=function(){W=C.chartWidth,tt=C.chartHeight,(U.targetFo||U.target).attr({x:0,y:0,width:W,height:tt}).css({pointerEvents:ot?void 0:"none",mixedBlendMode:"normal",opacity:1}).addClass(ot?"highcharts-tracker":""),it instanceof E&&it.boost?.markerGroup?.translate(C.plotLeft,C.plotTop)},U.clipRect=C.renderer.clipRect(),(U.targetFo||U.target).attr({zIndex:S.options.zIndex}),it instanceof E&&(it.boost.markerGroup=it.renderer.g().add(H).translate(S.xAxis.pos,S.yAxis.pos))),U.canvas.width=W,U.canvas.height=tt,U.clipRect){let Nt=As(C,it),kt=Nt.width===C.clipBox.width&&Nt.height===C.clipBox.height?H:U.targetFo||U.target;U.clipRect.attr(Nt),kt?.clip(U.clipRect)}return U.resize(),U.clear(),!U.wgl&&(U.wgl=new Vi(Nt=>{Nt.settings.debug.timeBufferCopy&&console.time("buffer copy"),U.copy(),Nt.settings.debug.timeBufferCopy&&console.timeEnd("buffer copy")}),U.wgl.init(U.canvas)||Ss("[highcharts boost] - unable to init WebGL renderer"),U.wgl.setOptions(C.options.boost||{}),it instanceof E&&U.wgl.allocateBuffer(C)),U.wgl.setSize(W,tt),U.wgl}function re(C){let S=C.points;if(S){let E,H;for(H=0;H<S.length;H+=1)(E=S[H])&&E.destroyElements&&E.destroyElements()}for(let E of(["graph","area","tracker"].forEach(H=>{let W=C[H];W&&(C[H]=W.destroy())}),C.zones))Ps(E,void 0,!0)}function We(C,S,E,H,W,tt){let it=(W=W||0)+(H=H||3e3),K=!0;for(;K&&W<it&&W<C.length;)K=S(C[W],W),++W;K&&(W<C.length?tt?We(C,S,E,H,W,tt):js.requestAnimationFrame?js.requestAnimationFrame(function(){We(C,S,E,H,W)}):setTimeout(We,0,C,S,E,H,W):E&&E())}function cr(C,S){let E=C.options,H=C.dataTable.modified.rowCount,W=C.xAxis&&C.xAxis.options,tt=C.yAxis&&C.yAxis.options,it=C.colorAxis&&C.colorAxis.options;return H>(E.boostThreshold||Number.MAX_VALUE)&&Ne(tt.min)&&Ne(tt.max)&&(!S||Ne(W.min)&&Ne(W.max))&&(!it||Ne(it.min)&&Ne(it.max))}let Bo=(C,S)=>!C.forceCrop&&(mt(C.chart)||(S?S.length:0)>=(C.options.boostThreshold||Number.MAX_VALUE));function Xo(){let C=this,S=C.chart;S.boost&&S.boost.markerGroup===C.markerGroup&&(C.markerGroup=null),S.hoverPoints&&(S.hoverPoints=S.hoverPoints.filter(function(E){return E.series===C})),S.hoverPoint&&S.hoverPoint.series===C&&(S.hoverPoint=null)}function Ni(){let C=this.boost;C&&C.canvas&&C.target&&(C.wgl&&C.wgl.clear(),C.clear&&C.clear())}function os(C){let S=C.boost;S&&S.canvas&&S.target&&S.wgl&&!mt(C.chart)&&S.wgl.render(C.chart)}function Ze(C,S){let E=C.options,H=C.xAxis,W=C.pointClass;if(S instanceof W)return S;let tt=C.is("scatter"),it=(tt&&C.getColumn("x",!0).length?C.getColumn("x",!0):void 0)||(C.getColumn("x").length?C.getColumn("x"):void 0)||E.xData||C.getColumn("x",!0)||!1,K=C.getColumn("y",!0)||E.yData||!1,ot=new W(C,tt&&it&&K?[it[S.i],K[S.i]]:(Pi(C.options.data)?C.options.data:[])[S.i],it?it[S.i]:void 0);return ot.category=Ts(H.categories?H.categories[ot.x]:ot.x,ot.x),ot.key=ot.name??ot.category,ot.dist=S.dist,ot.distX=S.distX,ot.plotX=S.plotX,ot.plotY=S.plotY,ot.index=S.i,ot.percentage=S.percentage,ot.isInside=C.isPointInside(ot),ot}function zr(C){let{options:S,xAxis:E,yAxis:H}=this;if(!this.isDirty&&!E.isDirty&&!H.isDirty&&!C)return!1;this.yAxis.setTickInterval();let W=S.boostThreshold||0,tt=S.cropThreshold,it=this.getColumn("x"),K=E.getExtremes(),ot=K.max??Number.MAX_VALUE,U=K.min??-Number.MAX_VALUE,Nt=this.getColumn("y"),kt=H.getExtremes(),ae=kt.max??Number.MAX_VALUE,pe=kt.min??-Number.MAX_VALUE;if(!this.boosted&&E.old&&H.old&&U>=(E.old.min??-Number.MAX_VALUE)&&ot<=(E.old.max??Number.MAX_VALUE)&&pe>=(H.old.min??-Number.MAX_VALUE)&&ae<=(H.old.max??Number.MAX_VALUE))return this.dataTable.modified.setColumns({x:it,y:Nt}),!0;let Se=this.dataTable.rowCount;if(!W||Se<W||tt&&!this.forceCrop&&!this.getExtremesFromAll&&!S.getExtremesFromAll&&Se<tt)return this.dataTable.modified.setColumns({x:it,y:Nt}),!0;let ye=[],xe=[],De=[],Fe=!(Ne(K.max)||Ne(K.min)),ge=!(Ne(kt.max)||Ne(kt.min)),di=!1,Pt,Jt=it[0],ci=it[0],ve,si=Nt?.[0],Te=Nt?.[0];for(let Ge=0,Re=it.length;Ge<Re;++Ge)Pt=it[Ge],ve=Nt?.[Ge],Pt>=U&&Pt<=ot&&ve>=pe&&ve<=ae?(ye.push({x:Pt,y:ve}),xe.push(Pt),De.push(ve),Fe&&(Jt=Math.max(Jt,Pt),ci=Math.min(ci,Pt)),ge&&(si=Math.max(si,ve),Te=Math.min(Te,ve))):di=!0;return Fe&&(E.dataMax=Math.max(Jt,E.dataMax||0),E.dataMin=Math.min(ci,E.dataMin||0)),ge&&(H.dataMax=Math.max(si,H.dataMax||0),H.dataMin=Math.min(Te,H.dataMin||0)),this.cropped=di,this.cropStart=0,di&&this.dataTable.modified===this.dataTable&&(this.dataTable.modified=new Oo),this.dataTable.modified.setColumns({x:xe,y:De}),Bo(this,xe)||(this.processedData=ye),!0}function _s(){let C=this.options||{},S=this.chart,E=S.boost,H=this.boost,W=this.xAxis,tt=this.yAxis,it=C.xData||this.getColumn("x",!0),K=C.yData||this.getColumn("y",!0),ot=this.getColumn("low",!0),U=this.getColumn("high",!0),Nt=this.processedData||C.data,kt=W.getExtremes(),ae=kt.min-(W.minPointOffset||0),pe=kt.max+(W.minPointOffset||0),Se=tt.getExtremes(),ye=Se.min-(tt.minPointOffset||0),xe=Se.max+(tt.minPointOffset||0),De={},Fe=!!this.sampling,ge=C.enableMouseTracking,di=C.threshold,Pt=this.pointArrayMap&&this.pointArrayMap.join(",")==="low,high",Jt=!!C.stacking,ci=this.cropStart||0,ve=this.requireSorting,si=!it,Te=C.findNearestPointBy==="x",Ge=(this.getColumn("x").length?this.getColumn("x"):void 0)||this.options.xData||this.getColumn("x",!0),Re=Ts(C.lineWidth,1),Ho=C.nullInteraction&&ye,ns=!1,qs,Ri=tt.getThreshold(di),Si,yi,pi,oi;if(W.isPanning||tt.isPanning||(ns=Vs(S,this),S.boosted=!0,!this.visible))return;(this.points||this.graph)&&re(this),mt(S)?(this.markerGroup&&this.markerGroup!==E?.markerGroup&&this.markerGroup.destroy(),this.markerGroup=E?.markerGroup,H&&H.target&&(this.renderTarget=H.target=H.target.destroy())):(this.markerGroup===E?.markerGroup&&(this.markerGroup=void 0),this.markerGroup=this.plotGroup("markerGroup","markers","visible",1,S.seriesGroup).addClass("highcharts-tracker"));let Ee=this.points=[],fe=(ke,Ue,Yt,Wt)=>{let Dt=!!Ge&&Ge[ci+Yt],je=Vt=>{S.inverted&&(Vt=W.len-Vt,Ue=tt.len-Ue),Ee.push({destroy:Io,x:Dt,clientX:Vt,plotX:Vt,plotY:Ue,i:ci+Yt,percentage:Wt})};ke=Math.ceil(ke),ie=Te?ke:ke+","+Ue,ge&&(De[ie]?Dt===Ge[Ge.length-1]&&(Ee.length--,je(ke)):(De[ie]=!0,je(ke)))};this.buildKDTree=Io,Ro(this,"renderCanvas"),this.is("line")&&Re>1&&H?.target&&E&&!E.lineWidthFilter&&(E.lineWidthFilter=S.renderer.definition({tagName:"filter",children:[{tagName:"feMorphology",attributes:{operator:"dilate",radius:.25*Re}}],attributes:{id:"linewidth"}}),H.target.attr({filter:"url(#linewidth)"})),ns&&(lo(ns,this),ns.pushSeries(this),os(this));let ri=ns.settings;S.renderer.forExport||(ri.debug.timeKDTree&&console.time("kd tree building"),We(Jt?this.data.slice(ci):it||Nt,function(ke,Ue){let Yt=S.index===void 0,Wt,Dt,je,Vt,ai,Ve=!1,Ke=!0;return!Rr(ke)||(!Yt&&(si?(Wt=ke[0],Dt=ke[1]):(Wt=ke,Dt=K[Ue]??Ho??null),Pt?(si&&(Dt=ke.slice(1,3)),Ve=ot[Ue],Dt=U[Ue]):Jt&&(Wt=ke.x,Ve=(Dt=ke.stackY)-ke.y,ai=ke.percentage),ve||(Ke=(Dt||0)>=ye&&Dt<=xe),Dt!==null&&Wt>=ae&&Wt<=pe&&Ke&&(je=W.toPixels(Wt,!0),Fe?((pi===void 0||je===qs)&&(Pt||(Ve=Dt),(oi===void 0||Dt>yi)&&(yi=Dt,oi=Ue),(pi===void 0||Ve<Si)&&(Si=Ve,pi=Ue)),Te&&je===qs||(pi!==void 0&&(Vt=tt.toPixels(yi,!0),Ri=tt.toPixels(Si,!0),fe(je,Vt,oi,ai),Ri!==Vt&&fe(je,Ri,pi,ai)),pi=oi=void 0,qs=je)):fe(je,Vt=Math.ceil(tt.toPixels(Dt,!0)),Ue,ai))),!Yt)},()=>{Ro(this,"renderedCanvas"),delete this.buildKDTree,this.options&&this.buildKDTree(),ri.debug.timeKDTree&&console.timeEnd("kd tree building")}))}function Br(C){let S=!0;if(this.chart.options&&this.chart.options.boost&&(S=this.chart.options.boost.enabled===void 0||this.chart.options.boost.enabled),!S||!this.boosted)return C.call(this);this.chart.boosted=!0;let E=Vs(this.chart,this);E&&(lo(E,this),E.pushSeries(this)),os(this)}function Xr(C){if(this.boosted){if(cr(this))return{};if(this.xAxis.isPanning||this.yAxis.isPanning)return this}return C.apply(this,[].slice.call(arguments,1))}function He(C){let S=this.options.data;if(zo(this.chart)&&Mi[this.type]){let E=this.is("scatter")&&!this.is("bubble")&&!this.is("treemap")&&!this.is("heatmap");if(!Bo(this,S)||E||this.is("treemap")||this.options.stacking||!cr(this,!0)){if(this.boosted&&(this.xAxis?.isPanning||this.yAxis?.isPanning))return;E&&this.yAxis.type!=="treegrid"?zr.call(this,arguments[1]):C.apply(this,[].slice.call(arguments,1)),S=this.getColumn("x",!0)}if(this.boosted=Bo(this,S),this.boosted){let H;!this.options.data?.length||Ne(H=this.getFirstValidPoint(this.options.data))||Pi(H)||this.is("treemap")||Ss(12,!1,this.chart),(function(W){W.boost=W.boost||{getPoint:it=>Ze(W,it)};let tt=W.boost.altered=[];if(["allowDG","directTouch","stickyTracking"].forEach(it=>{tt.push({prop:it,val:W[it],own:Object.hasOwnProperty.call(W,it)})}),W.allowDG=!1,W.directTouch=!1,W.stickyTracking=!0,W.finishedAnimating=!0,W.labelBySeries&&(W.labelBySeries=W.labelBySeries.destroy()),W.is("scatter")&&!W.is("treemap")&&W.data.length){for(let it of W.data)it?.destroy?.();W.data.length=0,W.points.length=0,delete W.processedData}})(this)}else(function(H){let W=H.boost,tt=H.chart,it=tt.boost;if(it?.markerGroup)for(let K of(it.markerGroup.destroy(),it.markerGroup=void 0,tt.series))K.markerGroup=void 0,K.markerGroup=K.plotGroup("markerGroup","markers","visible",1,tt.seriesGroup).addClass("highcharts-tracker");W&&((W.altered||[]).forEach(K=>{K.own?H[K.prop]=K.val:delete H[K.prop]}),W.clear&&W.clear()),(tt.seriesGroup||H.group)?.clip()})(this)}else C.apply(this,[].slice.call(arguments,1))}function pr(C){let S=C.apply(this,[].slice.call(arguments,1));return this.boost&&S?this.boost.getPoint(S):S}let Yo={compose:function(C,S,E,H){if(Dr(Us,"Boost.Series")){let W=Nr().plotOptions,tt=C.prototype;if(No(C,"destroy",Xo),No(C,"hide",Ni),H&&(tt.renderCanvas=_s),_i(tt,"getExtremes",Xr),_i(tt,"processData",He),_i(tt,"searchPoint",pr),["translate","generatePoints","drawTracker","drawPoints","render"].forEach(it=>(function(K,ot,U){function Nt(kt){let ae=this.options.stacking&&(U==="translate"||U==="generatePoints");this.boosted&&!ae&&zo(this.chart)&&this.type!=="heatmap"&&this.type!=="treemap"&&Mi[this.type]&&this.options.boostThreshold!==0?U==="render"&&this.renderCanvas&&this.renderCanvas():kt.call(this)}if(_i(K,U,Nt),U==="translate")for(let kt of["column","arearange","columnrange","heatmap","treemap"])ot[kt]&&_i(ot[kt].prototype,U,Nt)})(tt,S,it)),_i(E.prototype,"firePointEvent",function(it,K,ot){if(K==="click"&&this.series.boosted){let U=ot.point;if((U.dist||U.distX)>=(U.series.options.marker?.radius??10))return}return it.apply(this,[].slice.call(arguments,1))}),Fi.forEach(it=>{let K=W[it];K&&(K.boostThreshold=5e3,K.boostData=[],S[it].prototype.fillOpacity=!0)}),H){let{area:it,areaspline:K,bubble:ot,column:U,heatmap:Nt,scatter:kt,treemap:ae}=S;if(it&&Do(it.prototype,{fill:!0,fillOpacity:!0,sampling:!0}),K&&Do(K.prototype,{fill:!0,fillOpacity:!0,sampling:!0}),ot){let pe=ot.prototype;delete pe.buildKDTree,_i(pe,"markerAttribs",function(Se){return!this.boosted&&Se.apply(this,[].slice.call(arguments,1))})}U&&Do(U.prototype,{fill:!0,sampling:!0}),kt&&(kt.prototype.fill=!0),[Nt,ae].forEach(pe=>{pe&&_i(pe.prototype,"drawPoints",Br)})}}return C},destroyGraphics:re,eachAsync:We,getPoint:Ze},rs={defaultHTMLColorMap:{aliceblue:"#f0f8ff",antiquewhite:"#faebd7",aqua:"#00ffff",aquamarine:"#7fffd4",azure:"#f0ffff",beige:"#f5f5dc",bisque:"#ffe4c4",blanchedalmond:"#ffebcd",blue:"#0000ff",blueviolet:"#8a2be2",brown:"#a52a2a",burlywood:"#deb887",cadetblue:"#5f9ea0",chartreuse:"#7fff00",chocolate:"#d2691e",coral:"#ff7f50",cornflowerblue:"#6495ed",cornsilk:"#fff8dc",crimson:"#dc143c",cyan:"#00ffff",darkblue:"#00008b",darkcyan:"#008b8b",darkgoldenrod:"#b8860b",darkgray:"#a9a9a9",darkgreen:"#006400",darkkhaki:"#bdb76b",darkmagenta:"#8b008b",darkolivegreen:"#556b2f",darkorange:"#ff8c00",darkorchid:"#9932cc",darkred:"#8b0000",darksalmon:"#e9967a",darkseagreen:"#8fbc8f",darkslateblue:"#483d8b",darkslategray:"#2f4f4f",darkturquoise:"#00ced1",darkviolet:"#9400d3",deeppink:"#ff1493",deepskyblue:"#00bfff",dimgray:"#696969",dodgerblue:"#1e90ff",feldspar:"#d19275",firebrick:"#b22222",floralwhite:"#fffaf0",forestgreen:"#228b22",fuchsia:"#ff00ff",gainsboro:"#dcdcdc",ghostwhite:"#f8f8ff",gold:"#ffd700",goldenrod:"#daa520",gray:"#808080",grey:"#808080",green:"#008000",greenyellow:"#adff2f",honeydew:"#f0fff0",hotpink:"#ff69b4",indianred:"#cd5c5c",indigo:"#4b0082",ivory:"#fffff0",khaki:"#f0e68c",lavender:"#e6e6fa",lavenderblush:"#fff0f5",lawngreen:"#7cfc00",lemonchiffon:"#fffacd",lightblue:"#add8e6",lightcoral:"#f08080",lightcyan:"#e0ffff",lightgoldenrodyellow:"#fafad2",lightgrey:"#d3d3d3",lightgreen:"#90ee90",lightpink:"#ffb6c1",lightsalmon:"#ffa07a",lightseagreen:"#20b2aa",lightskyblue:"#87cefa",lightslateblue:"#8470ff",lightslategray:"#778899",lightsteelblue:"#b0c4de",lightyellow:"#ffffe0",lime:"#00ff00",limegreen:"#32cd32",linen:"#faf0e6",magenta:"#ff00ff",maroon:"#800000",mediumaquamarine:"#66cdaa",mediumblue:"#0000cd",mediumorchid:"#ba55d3",mediumpurple:"#9370d8",mediumseagreen:"#3cb371",mediumslateblue:"#7b68ee",mediumspringgreen:"#00fa9a",mediumturquoise:"#48d1cc",mediumvioletred:"#c71585",midnightblue:"#191970",mintcream:"#f5fffa",mistyrose:"#ffe4e1",moccasin:"#ffe4b5",navajowhite:"#ffdead",navy:"#000080",oldlace:"#fdf5e6",olive:"#808000",olivedrab:"#6b8e23",orange:"#ffa500",orangered:"#ff4500",orchid:"#da70d6",palegoldenrod:"#eee8aa",palegreen:"#98fb98",paleturquoise:"#afeeee",palevioletred:"#d87093",papayawhip:"#ffefd5",peachpuff:"#ffdab9",peru:"#cd853f",pink:"#ffc0cb",plum:"#dda0dd",powderblue:"#b0e0e6",purple:"#800080",red:"#ff0000",rosybrown:"#bc8f8f",royalblue:"#4169e1",saddlebrown:"#8b4513",salmon:"#fa8072",sandybrown:"#f4a460",seagreen:"#2e8b57",seashell:"#fff5ee",sienna:"#a0522d",silver:"#c0c0c0",skyblue:"#87ceeb",slateblue:"#6a5acd",slategray:"#708090",snow:"#fffafa",springgreen:"#00ff7f",steelblue:"#4682b4",tan:"#d2b48c",teal:"#008080",thistle:"#d8bfd8",tomato:"#ff6347",turquoise:"#40e0d0",violet:"#ee82ee",violetred:"#d02090",wheat:"#f5deb3",whitesmoke:"#f5f5f5",yellow:"#ffff00",yellowgreen:"#9acd32"}},{doc:$t,win:ur}=ce(),{addEvent:Yr,error:Wo}=ce(),gr=["webgl","experimental-webgl","moz-webgl","webkit-3d"];function Di(){let C,S=!1;if(ur.WebGLRenderingContext!==void 0){C=$t.createElement("canvas");for(let E=0;E<gr.length;++E)try{if(C.getContext(gr[E])!=null)return!0}catch{}}return!1}let fr={compose:function(C,S,E,H,W,tt){let it=Di();it||(ce().initCanvasBoost!==void 0?ce().initCanvasBoost():Wo(26)),tt&&!tt.names.lightgoldenrodyellow&&(tt.names=ts(ts({},tt.names),rs.defaultHTMLColorMap)),ks.compose(C,it),Yo.compose(E,H,W,it),Yr(S,"setExtremes",function(K){for(let ot of[this.chart,...this.series].map(U=>U.renderTarget).filter(Boolean)){let{horiz:U,pos:Nt}=this,kt=U?"scaleX":"scaleY",ae=U?"translateX":"translateY",pe=ot?.[kt]??1,Se=1,ye=0,xe=1,De="none";this.isPanning&&(Se=(K.scale??1)*pe,ye=(ot?.[ae]||0)-Se*(K.move||0)+pe*Nt-Se*Nt,xe=.7,De="blur(3px)"),ot?.attr({[kt]:Se,[ae]:ye}).css({transition:"250ms filter, 250ms opacity",filter:De,opacity:xe})}})},hasWebGLSupport:Di},as=ce();as.hasWebGLSupport=fr.hasWebGLSupport,fr.compose(as.Chart,as.Axis,as.Series,as.seriesTypes,as.Point,as.Color);let Wr=ce();return ys.default})())});var nd=Mn((ba,Hl)=>{(function(dt,qt){typeof ba=="object"&&typeof Hl=="object"?Hl.exports=qt(dt._Highcharts,dt._Highcharts.AST):typeof define=="function"&&define.amd?define("highcharts/modules/no-data-to-display",["highcharts/highcharts"],function(ie){return qt(ie,ie.AST)}):typeof ba=="object"?ba["highcharts/modules/no-data-to-display"]=qt(dt._Highcharts,dt._Highcharts.AST):dt.Highcharts=qt(dt.Highcharts,dt.Highcharts.AST)})(typeof window>"u"?ba:window,(dt,qt)=>(()=>{"use strict";var ie={660:ft=>{ft.exports=qt},944:ft=>{ft.exports=dt}},Hi={};function Ae(ft){var Zt=Hi[ft];if(Zt!==void 0)return Zt.exports;var V=Hi[ft]={exports:{}};return ie[ft](V,V.exports,Ae),V.exports}Ae.n=ft=>{var Zt=ft&&ft.__esModule?()=>ft.default:()=>ft;return Ae.d(Zt,{a:Zt}),Zt},Ae.d=(ft,Zt)=>{for(var V in Zt)Ae.o(Zt,V)&&!Ae.o(ft,V)&&Object.defineProperty(ft,V,{enumerable:!0,get:Zt[V]})},Ae.o=(ft,Zt)=>Object.prototype.hasOwnProperty.call(ft,Zt);var xs={};Ae.d(xs,{default:()=>ks});var bs=Ae(944),Pe=Ae.n(bs),ys=Ae(660),Ws=Ae.n(ys);let ce={lang:{noData:"No data to display"},noData:{attr:{zIndex:1},position:{x:0,y:0,align:"center",verticalAlign:"middle"},style:{fontWeight:"bold",fontSize:"0.8em",color:"#666666"}}},{addEvent:Fi,extend:Mi,merge:Hs}=Pe();function Ei(){let ft=this.series||[],Zt=ft.length;for(;Zt--;)if(ft[Zt].hasData()&&!ft[Zt].options.isInternal)return!0;return this.loadingShown}function Bt(){this.noDataLabel&&(this.noDataLabel=this.noDataLabel.destroy())}function vs(ft){let Zt=this.options,V=ft||Zt&&Zt.lang.noData||"",is=Zt&&(Zt.noData||{});this.renderer&&(this.noDataLabel||(this.noDataLabel=this.renderer.label(V,0,0,void 0,void 0,void 0,is.useHTML,void 0,"no-data").add()),this.styledMode||this.noDataLabel.attr(Ws().filterUserAttributes(is.attr||{})).css(is.style||{}),this.noDataLabel.align(Mi(this.noDataLabel.getBBox(),is.position||{}),!1,"plotBox"))}function es(){this.hasData()?this.hideNoData():this.showNoData()}let ut=Pe();({compose:function(ft,Zt){let V=ft.prototype;V.showNoData||(V.hasData=Ei,V.hideNoData=Bt,V.showNoData=vs,Fi(ft,"render",es),Hs(!0,Zt,ce))}}).compose(ut.Chart,ut.defaultOptions);let ks=Pe();return xs.default})())});var Fl=wn(od()),ld=wn(rd()),hd=wn(ad()),dd=wn(nd()),Gl=dt=>{let qt=dt&&(dt.default||dt);typeof qt=="function"&&qt(Fl.default)};Gl(ld.default);Gl(hd.default);Gl(dd.default);var tu=Fl.default;export{Gl as a,tu as b};
|